pax_global_header00006660000000000000000000000064131473645460014527gustar00rootroot0000000000000052 comment=d4b9eec6038fd1a2e986f0bb371c4e5cf13e2f74 ginkgocadx-3.8.7/000077500000000000000000000000001314736454600136645ustar00rootroot00000000000000ginkgocadx-3.8.7/.gitignore000066400000000000000000000000371314736454600156540ustar00rootroot00000000000000*~ build* CMakeLists.txt.user ginkgocadx-3.8.7/.travis.yml000066400000000000000000000030631314736454600157770ustar00rootroot00000000000000sudo: required dist: trusty language: generic env: matrix: - BUILD_TYPE=Release - BUILD_TYPE=Debug global: - secure: ZUaYb2lsUb31Oz54glD1ol8Skjw0N/lqI1C7cYmjaiU8HDRAomlbVAW8Mw8IKZr6cNAI1DaD41P45YGG8zu40VFLySdfHblBGed01VkH8G9bHelRTmWS86Si64TwBrFYk5YCKhw8CEQrOmItSqbSmIg9y1Jm37NJR4OroqObzyA7lHHkFxRADoP69dS1esSMgPIS5mkMrvuVd9YpsnEC2Nxja0CtUAlzSj1LTh4H1t5RCOZzgq1+zPZZE64BRFfrWzwfudyJ4Tzrx0mJ1063yAhhbLbkLjheYNK/f0yOCB6bUUGay618Ify9DmAwZk8iQzCFc23H5+3U17vhTP9ohmvdRYb8NfxZ3bDCmCBeJYHg+ImrLABIqZtfCbv2Fwd5gf2ApF7/iYcrTccTJLG/hfDLe8GfQrZ29Led2JDYsjvYNQvsP8fvI0Ag3ldZBo4MZ9NNZeXdxxxg0oU5fvtj8zsFf+r13osdMlwxwZ8U/AyTc1byCX2FSEUBYTXBG8o4MliDB5QIJOKCJ0O8NEcojoe8fYepDxg1KawTUD5mcwTvNrYIbOqEzx8HLFCfdtqyFo2QDQwoPdeNBeVpvAu8amgip5wNJTd7KOSzQGpainDYSdOKu96OQ6h0nEhnFcdUHrqwuuOLKRdP108O1DsGW+KB5eh/qs+nAWOE5rFhk0Q= install: - sudo add-apt-repository ppa:gert-die/trusty-mia -y - sudo add-apt-repository ppa:rebuntu16/avogadro+unofficial -y - sudo apt-get update -qq - sudo apt-get install -y libvtk6-dev libinsighttoolkit4-dev libdcmtk-dev libcairo2-dev libcurl4-gnutls-dev libfftw3-dev libfreetype6-dev libgtk2.0-dev libjsoncpp-dev libmysqlclient-dev libsqlite3-dev libssl-dev libwrap0 libwrap0-dev libwxgtk3.0-dev libxml2-dev libgdcm-tools libhdf5-dev before_script: - mkdir build - cd build - cmake -DCMAKE_BUILD_TYPE=${BUILD_TYPE} .. script: - make -j2 addons: coverity_scan: project: name: gerddie/ginkgocadx version: 3.7.5+ description: notification_email: gw.fossdev@gmail.com build_command: make -j2 branch_pattern: coverity_scan ginkgocadx-3.8.7/AUTHORS000066400000000000000000000001401314736454600147270ustar00rootroot00000000000000Current contributors: Gert Wollny Original development: MetaEmotion ginkgocadx-3.8.7/CMake/000077500000000000000000000000001314736454600146445ustar00rootroot00000000000000ginkgocadx-3.8.7/CMake/LinuxProperties.cmake000066400000000000000000000334101314736454600210230ustar00rootroot00000000000000 ############################################################################################# MACRO(PACKAGE_RULES TPROJECT ARCH DEST) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/ginkgocadx-launcher.in ${DEST}/ginkgocadx) ADD_CUSTOM_COMMAND( TARGET ${TPROJECT} POST_BUILD COMMAND echo "\\>\\>\\> Purging dist/" COMMAND rm -f \"${DEST}/ginkgocadx-${ARCH}\" "${DEST}/*.so*" COMMAND rm -rf \"${DEST}/Plugins\" \"${DEST}/lang\" \"${DEST}/resources\" COMMAND echo "\\>\\>\\> Making subdirs Plugins, resources, resources/cadxcore, lang, lang/el, lang/es, lang/ja, lang/de, lang/tr, lang/pl, lang/pt, lang/pt_BR, lang/fr, lang/sr" COMMAND mkdir \"${DEST}/resources\" COMMAND chmod 755 \"${DEST}/resources\" COMMAND mkdir \"${DEST}/resources/cadxcore\" COMMAND chmod 755 \"${DEST}/resources/cadxcore\" COMMAND mkdir -p \"${DEST}/Plugins\" COMMAND mkdir -p \"${DEST}/lang/el\" \"${DEST}/lang/es\" \"${DEST}/lang/ja\" \"${DEST}/lang/de\" \"${DEST}/lang/tr\" \"${DEST}/lang/pl\" \"${DEST}/lang/pt\" \"${DEST}/lang/pt_BR\" \"${DEST}/lang/fr\" \"${DEST}/lang/sr\" COMMAND echo "\\>\\>\\> Copying dicom conformance to dist/" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/resources/conformance.xml" "${DEST}/" COMMAND echo "\\>\\>\\> Copying dicom test card to dist/" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/resources/test_card.dcm" "${DEST}/" COMMAND echo "\\>\\>\\> Copying cadxcore resources to dist/" COMMAND cp -r "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/resources/files/*" "${DEST}/resources/cadxcore/" COMMAND echo "\\>\\>\\> Copying ginkgo binary to dist/" COMMAND cp "${CMAKE_CURRENT_BINARY_DIR}/ginkgocadx/ginkgocadx-${ARCH}" "${DEST}/ginkgocadx-${ARCH}" COMMAND echo "\\>\\>\\> changing RPATH of ginkgo" COMMAND chrpath "${DEST}/ginkgocadx-${ARCH}" -r "." ">/dev/null" COMMAND echo "\\>\\>\\> Stripping ginkgo" COMMAND strip -s "${DEST}/ginkgocadx-${ARCH}" COMMAND echo "\\>\\>\\> Applying perms" COMMAND chmod +x "${DEST}/ginkgocadx-${ARCH}" "${DEST}/ginkgocadx" COMMAND echo "\\>\\>\\> Copying libs to dist \\(${ARCH}\\)/" COMMAND cp -a "${CMAKE_CURRENT_BINARY_DIR}/../../lib/${OS}-${ARCH}/*/lib/${DTYPE}/*.so*" \"${DEST}\" COMMAND echo "\\>\\>\\> Applying perms" COMMAND chmod -x "${DEST}/*so*" #COMMAND echo "\\>\\>\\> changing RPATH of libCADxCore.so" #COMMAND chrpath "${DEST}/libCADxCore.so" -r "." ">/dev/null" #COMMAND echo "\\>\\>\\> Stripping CADxCore" #COMMAND strip -s "${DEST}/libCADxCore.so" COMMAND echo "\\>\\>\\> Installing translations" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/el/cadxcore.mo" "${DEST}/lang/el" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/el/wxstd.mo" "${DEST}/lang/el" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/es/cadxcore.mo" "${DEST}/lang/es" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/es/wxstd.mo" "${DEST}/lang/es" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/ja/cadxcore.mo" "${DEST}/lang/ja" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/ja/wxstd.mo" "${DEST}/lang/ja" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/de/cadxcore.mo" "${DEST}/lang/de" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/de/wxstd.mo" "${DEST}/lang/de" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/tr/cadxcore.mo" "${DEST}/lang/tr" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/tr/wxstd.mo" "${DEST}/lang/tr" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/pl/cadxcore.mo" "${DEST}/lang/pl" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/pl/wxstd.mo" "${DEST}/lang/pl" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/pt/cadxcore.mo" "${DEST}/lang/pt" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/pt/wxstd.mo" "${DEST}/lang/pt" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/pt_BR/cadxcore.mo" "${DEST}/lang/pt_BR" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/pt_BR/wxstd.mo" "${DEST}/lang/pt_BR" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/fr/cadxcore.mo" "${DEST}/lang/fr" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/fr/wxstd.mo" "${DEST}/lang/fr" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/cadxcore/lang/sr/cadxcore.mo" "${DEST}/lang/sr" ) IF(BUILD_VISUALIZATION_EXT) ADD_CUSTOM_COMMAND( TARGET ${TPROJECT} POST_BUILD #COMMAND echo "\\>\\>\\> Copying visualizator libs to dist/Plugins \\(${ARCH}\\)" #COMMAND cp -a ${CMAKE_CURRENT_BINARY_DIR}/visualizator/libvisualizator.so* "${DEST}/Plugins" #COMMAND cp -a ${CMAKE_CURRENT_BINARY_DIR}/visualizator/visualizator.inf "${DEST}/Plugins" #COMMAND echo "\\>\\>\\> changing RPATH of Plugins/libvisualizator.so" #COMMAND chrpath "${DEST}/Plugins/libvisualizator.so" -d ">/dev/null" #COMMAND echo "\\>\\>\\> Stripping visualizator libs" #COMMAND strip -s "${DEST}/Plugins/libvisualizator.so" COMMAND echo "\\>\\>\\> Making subdirs resources/visualizator" COMMAND chmod 755 \"${DEST}/resources\" COMMAND mkdir \"${DEST}/resources/visualizator\" COMMAND chmod 755 \"${DEST}/resources\" COMMAND chmod 755 \"${DEST}/resources/visualizator\" COMMAND echo "\\>\\>\\> Copying visualizator resources to dist/" COMMAND cp -r "${CMAKE_CURRENT_SOURCE_DIR}/visualizator/resources/files/*" "${DEST}/resources/visualizator/" COMMAND echo "\\>\\>\\> Installing translations" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/visualizator/lang/el/visualizator.mo" "${DEST}/lang/el" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/visualizator/lang/es/visualizator.mo" "${DEST}/lang/es" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/visualizator/lang/ja/visualizator.mo" "${DEST}/lang/ja" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/visualizator/lang/de/visualizator.mo" "${DEST}/lang/de" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/visualizator/lang/tr/visualizator.mo" "${DEST}/lang/tr" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/visualizator/lang/pl/visualizator.mo" "${DEST}/lang/pl" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/visualizator/lang/pt/visualizator.mo" "${DEST}/lang/pt" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/visualizator/lang/pt_BR/visualizator.mo" "${DEST}/lang/pt_BR" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/visualizator/lang/fr/visualizator.mo" "${DEST}/lang/fr" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/visualizator/lang/sr/visualizator.mo" "${DEST}/lang/sr" ) ENDIF() IF(BUILD_OCT_EXT) ADD_CUSTOM_COMMAND( TARGET ${TPROJECT} POST_BUILD COMMAND echo "\\>\\>\\> Copying octextension libs to dist/Plugins \\(${ARCH}\\)" COMMAND cp -a ${CMAKE_CURRENT_BINARY_DIR}/octextension/liboctextension.so* "${DEST}/Plugins" COMMAND cp -a ${CMAKE_CURRENT_BINARY_DIR}/octextension/octextension.inf "${DEST}/Plugins" COMMAND echo "\\>\\>\\> changing RPATH of Plugins/liboctextension.so" COMMAND chrpath "${DEST}/Plugins/liboctextension.so" -d ">/dev/null" COMMAND echo "\\>\\>\\> Stripping octextension libs" COMMAND strip -s "${DEST}/Plugins/liboctextension.so" COMMAND echo "\\>\\>\\> Installing translations" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/octextension/lang/es/octextension.mo" "${DEST}/lang/es" ) ENDIF() IF(BUILD_DERMATHOLOGY_EXT) ADD_CUSTOM_COMMAND( TARGET ${TPROJECT} POST_BUILD COMMAND echo "\\>\\>\\> Copying dermatologia libs to dist/Plugins \\(${ARCH}\\)" COMMAND cp -a ${CMAKE_CURRENT_BINARY_DIR}/dermatologia/libdermatologia.so* "${DEST}/Plugins" COMMAND cp -a ${CMAKE_CURRENT_BINARY_DIR}/dermatologia/dermatologia.inf "${DEST}/Plugins" COMMAND echo "\\>\\>\\> changing RPATH of Plugins/libdermatologia.so" COMMAND chrpath "${DEST}/Plugins/libdermatologia.so" -d ">/dev/null" COMMAND echo "\\>\\>\\> Stripping dermatologia libs" COMMAND strip -s "${DEST}/Plugins/libdermatologia.so" COMMAND echo "\\>\\>\\> Installing translations" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/dermatologia/lang/es/derma.mo" "${DEST}/lang/es" ) ENDIF() IF(BUILD_OPHTALMOLOGY_EXT) ADD_CUSTOM_COMMAND( TARGET ${TPROJECT} POST_BUILD COMMAND echo "\\>\\>\\> Copying oftalmologia libs to dist/Plugins \\(${ARCH}\\)" COMMAND cp -a ${CMAKE_CURRENT_BINARY_DIR}/oftalmologia/liboftalmologia.so* "${DEST}/Plugins" COMMAND cp -a ${CMAKE_CURRENT_BINARY_DIR}/oftalmologia/oftalmologia.inf "${DEST}/Plugins" COMMAND echo "\\>\\>\\> changing RPATH of Plugins/liboftalmologia.so" COMMAND chrpath "${DEST}/Plugins/liboftalmologia.so" -d ">/dev/null" COMMAND echo "\\>\\>\\> Stripping oftalmologia libs" COMMAND strip -s "${DEST}/Plugins/liboftalmologia.so" COMMAND echo "\\>\\>\\> Installing translations" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/oftalmologia/lang/es/oftal.mo" "${DEST}/lang/es" ) ENDIF() IF(BUILD_SCANNER_EXT) ADD_CUSTOM_COMMAND( TARGET ${TPROJECT} POST_BUILD COMMAND echo "\\>\\>\\> Copying scanne libs to dist/Plugins \\(${ARCH}\\)" COMMAND cp -a ${CMAKE_CURRENT_BINARY_DIR}/scannerextension/libscannerextension.so* "${DEST}/Plugins" COMMAND cp -a ${CMAKE_CURRENT_BINARY_DIR}/scannerextension/scannerextension.inf "${DEST}/Plugins" COMMAND echo "\\>\\>\\> changing RPATH of Plugins/libscannerextension.so" COMMAND chrpath "${DEST}/Plugins/libscannerextension.so" -d ">/dev/null" COMMAND echo "\\>\\>\\> Stripping scannerextension libs" COMMAND strip -s "${DEST}/Plugins/libscannerextension.so" COMMAND echo "\\>\\>\\> Installing translations" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/scannerextension/lang/es/scannerextension.mo" "${DEST}/lang/es" ) ENDIF() IF(BUILD_DERMATHOLOGY_EXT OR BUILD_OPHTALMOLOGY_EXT OR BUILD_SCANNER_EXT) ADD_CUSTOM_COMMAND( TARGET ${TPROJECT} POST_BUILD COMMAND echo "\\>\\>\\> Installing translations" COMMAND cp "${CMAKE_CURRENT_SOURCE_DIR}/lib_activation/lang/es/lib_activation.mo" "${DEST}/lang/es" ) ENDIF() ENDMACRO(PACKAGE_RULES) ############################################################################################# MACRO(ADD_GINKGO_DEFINITIONS) ADD_GLOBAL_GINKGO_DEFINITIONS() ADD_DEFINITIONS(-DLINUX -DMONOLITIC) IF(CUSTOM_PACKAGE) ADD_DEFINITIONS(-DCUSTOM_PACKAGE) ENDIF() ENDMACRO(ADD_GINKGO_DEFINITIONS) ############################################################################################# MACRO(ADD_EXTENSION_DEFINITIONS) ADD_GLOBAL_EXTENSION_DEFINITIONS() ENDMACRO(ADD_EXTENSION_DEFINITIONS) ############################################################################################# MACRO(ADD_CORE_DEFINITIONS) ADD_GLOBAL_CORE_DEFINITIONS() ENDMACRO(ADD_CORE_DEFINITIONS) ############################################################################################# MACRO (SET_CUSTOM_libcurl_PACKAGE) SET(libcurl_FOUND TRUE) SET(libcurl_defines -DCURL_STATICLIB) SET(libcurl_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/libcurl-7.28.1/include ) SET(libcurl_LIBRARIES curl) SET(libcurl_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/libcurl-7.28.1/lib/${DTYPE}) ENDMACRO() MACRO(SET_CUSTOM_wxWidgets_PACKAGE) SET(wxWidgets_FOUND TRUE) SET(wxWidgets_defines -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXGTK__ -DHAVE_CONFIG_H -D_REENTRANT -DNDEBUG -DwxDEBUG_LEVEL=0) SET(wxWidgets_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/WX-3.0.1/gtk2-unicode-${DTYPE}-3.0 ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/WX-3.0.1/include ) SET(wxWidgets_LIBRARIES wx_gtk2u-3.0 wx_gtk2u_gl-3.0) SET(wxWidgets_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/WX-3.0.1/lib/${DTYPE}) ENDMACRO() MACRO(SET_CUSTOM_VTK_PACKAGE) SET(VTK_FOUND TRUE) SET(VTK_defines -DVTK_DEBUG_LEAKS) SET(VTK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/VTK-5.6.1/include) SET(VTK_LIBRARIES vtkCommon vtkGraphics vtkFiltering vtkHybrid vtkIO vtkRendering vtkImaging vtkGenericFiltering vtkWidgets vtkftgl vtkVolumeRendering vtkexoIIc vtkDICOMParser vtkjpeg vtktiff vtkpng vtkzlib vtkexpat vtksys vtkfreetype ) SET(VTK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/VTK-5.6.1/lib/${DTYPE}) ENDMACRO() MACRO(SET_CUSTOM_ITK_PACKAGE) SET(ITK_FOUND TRUE) SET(ITK_defines) SET(ITK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include/gdcm/src ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include/Common ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include/IO ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include/BasicFilters ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include/Algorithms ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include/Numerics ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include/Numerics/Statistics ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include/Utilities ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include/Utilities/vxl/core ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include/Utilities/vxl/vcl ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/include/gdcm/src ) SET(ITK_LIBRARIES ITKCommon ITKIO ITKMetaIO ITKAlgorithms itkgdcm itksys itkgdcm itkjpeg8 itkjpeg12 itkjpeg16 itktiff itkpng itkzlib itkopenjpeg ITKDICOMParser itkv3p_netlib itkvcl itkvnl itkvnl_algo itkvnl_inst ITKniftiio ITKStatistics ITKBasicFilters ITKNrrdIO ITKMetaIO ITKznz ) SET(ITK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/ITK-3.20.0/lib/${DTYPE}) ENDMACRO() MACRO(SET_CUSTOM_DCMTK_PACKAGE) SET(DCMTK_FOUND TRUE) SET(DCMTK_defines) SET(DCMTK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/DCMTK-3.6.0/include ) SET(DCMTK_LIBRARIES dcmdata dcmtls dcmnet ofstd oflog dcmjpeg dcmimage dcmimgle dcmsr ijg8 ijg12 ijg16 ) SET(DCMTK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../lib/${OS}-${ARCH}/DCMTK-3.6.0/lib/${DTYPE}) ENDMACRO() ginkgocadx-3.8.7/CMake/MacProperties.cmake000066400000000000000000000105111314736454600204210ustar00rootroot00000000000000 ############################################################################################# SET(Cairo_FOUND TRUE) SET(Cairo_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/cairo-1.8.10/include) SET(Cairo_LIBRARIES cairo-1.8.10) SET(Cairo_LIB ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/cairo-1.8.10/lib/${DTYPE}) SET(Pixman_FOUND TRUE) SET(Pixman_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/cairo-1.8.10/include) SET(Pixman_LIBRARIES pixman-0.17.10) SET(Pixman_LIB ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/pixman-0.17.10/lib/${DTYPE}) ############################################################################################# MACRO(PACKAGE_RULES PROJECT_NAME ARCH DEST) ENDMACRO(PACKAGE_RULES) ############################################################################################# MACRO(ADD_GINKGO_DEFINITIONS) ADD_GLOBAL_GINKGO_DEFINITIONS() ENDMACRO(ADD_GINKGO_DEFINITIONS) ############################################################################################# MACRO(ADD_EXTENSION_DEFINITIONS) ADD_GLOBAL_EXTENSION_DEFINITIONS() ENDMACRO(ADD_EXTENSION_DEFINITIONS) ############################################################################################# MACRO(ADD_CORE_DEFINITIONS) ADD_GLOBAL_CORE_DEFINITIONS() ENDMACRO(ADD_CORE_DEFINITIONS) ############################################################################################# MACRO(SET_CUSTOM_wxWidgets_PACKAGE) SET(wxWidgets_FOUND TRUE) SET(wxWidgets_defines -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXMAC__ -DHAVE_CONFIG_H -D_REENTRANT) SET(wxWidgets_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/WX-2.8.11/mac-unicode-${DTYPE}-2.8 ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/WX-2.8.11/include ) IF (DEBUG) SET(wxWidgets_LIBRARIES wx_macud-2.8) ELSE() SET(wxWidgets_LIBRARIES wx_macu-2.8) ENDIF() SET(wxWidgets_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/WX-2.8.11/lib/${DTYPE}) ENDMACRO() MACRO(SET_CUSTOM_VTK_PACKAGE) SET(VTK_FOUND TRUE) SET(VTK_defines -DVTK_DEBUG_LEAKS) SET(VTK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/VTK-5.6.1/include) SET(VTK_LIBRARIES vtkCommon vtkGraphics vtkFiltering vtkHybrid vtkIO vtkRendering vtkImaging vtkGenericFiltering vtkWidgets vtkftgl vtkVolumeRendering vtkexoIIc vtkDICOMParser vtkjpeg vtktiff vtkpng vtkzlib vtkexpat vtksys vtkfreetype ) SET(VTK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/VTK-5.6.1/lib/${DTYPE}) ENDMACRO() MACRO(SET_CUSTOM_ITK_PACKAGE) SET(ITK_FOUND TRUE) SET(ITK_defines) SET(ITK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include/gdcm/src ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include/Common ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include/IO ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include/BasicFilters ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include/Algorithms ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include/Numerics ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include/Numerics/Statistics ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include/Utilities ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include/Utilities/vxl/core ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include/Utilities/vxl/vcl ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/include/gdcm/src ) SET(ITK_LIBRARIES ITKCommon ITKIO ITKMetaIO ITKAlgorithms itkgdcm itksys itkgdcm itkjpeg8 itkjpeg12 itkjpeg16 itktiff itkpng itkzlib itkopenjpeg ITKDICOMParser itkv3p_netlib itkvcl itkvnl itkvnl_algo itkvnl_inst ITKniftiio ITKStatistics ITKBasicFilters ITKNrrdIO ITKMetaIO ITKznz ) SET(ITK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/ITK-3.20.0/lib/${DTYPE}) ENDMACRO() MACRO(SET_CUSTOM_DCMTK_PACKAGE) SET(DCMTK_FOUND TRUE) SET(DCMTK_defines) SET(DCMTK_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/DCMTK-3.6.0/include ) SET(DCMTK_LIBRARIES dcmdata dcmtls dcmnet ofstd oflog dcmjpeg dcmimage dcmimgle dcmsr ijg8 ijg12 ijg16 ) SET(DCMTK_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../dll/${OS}-${ARCH}/DCMTK-3.6.0/lib/${DTYPE}) ENDMACRO() ginkgocadx-3.8.7/CMake/PrvExtDeps.cmake000066400000000000000000000000601314736454600177060ustar00rootroot00000000000000SUBDIRS( lib_activation derma_pasi lib_retina ) ginkgocadx-3.8.7/CMake/SysDefs.cmake000066400000000000000000000041121314736454600172240ustar00rootroot00000000000000IF(${CMAKE_BUILD_TYPE} MATCHES "^Deb") SET(DEBUG TRUE) SET(DTYPE "debug") ELSE() SET(DTYPE "release") ENDIF() IF(${CMAKE_SYSTEM_NAME} MATCHES "Windows") SET(OS "Windows") SET(ARCH "x86") SET(WINDOWS TRUE) INCLUDE(WinPackage) ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux") SET(OS "Linux") SET(LINUX TRUE) IF (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64") SET(ARCH "x86_64") ELSEIF(${CMAKE_SYSTEM_PROCESSOR} MATCHES "i?86") SET(ARCH "x86") ELSE() MESSAGE("UNSUPPORTED ARCH") ENDIF() INCLUDE(LinuxProperties) ELSEIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") SET(OS "OSX") SET(MACOS TRUE) SET(ARCH "x86") INCLUDE(MacProperties) ELSE() MESSAGE("UNSUPPORTED OS") ENDIF() ############################################################################################# IF(WINDOWS) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2") ELSEIF(LINUX OR APPLE) IF(FORCE_SSE2) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -msse2") ELSE() SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") ENDIF() ENDIF() ############################################################################################# MACRO(ADD_GLOBAL_GINKGO_DEFINITIONS) IF (DEBUG) ADD_DEFINITIONS(-D_GINKGO_DEBUG -DVTK_DEBUG_LEAKS -DDEBUG -D__WXDEBUG__) ENDIF() ADD_DEFINITIONS(-DUSING_EXTENSIONS -DGINKGO_ARCH_${ARCH}) IF (USE_PATCHED_LIBS) ADD_DEFINITIONS(-DUSE_PATCHED_LIBS) ENDIF() IF(INTERNET_DIST) ADD_DEFINITIONS(-DINTERNET_DIST) ENDIF() ENDMACRO(ADD_GLOBAL_GINKGO_DEFINITIONS) ############################################################################################# MACRO(ADD_GLOBAL_EXTENSION_DEFINITIONS) ADD_GINKGO_DEFINITIONS() ENDMACRO(ADD_GLOBAL_EXTENSION_DEFINITIONS) ############################################################################################# MACRO(ADD_GLOBAL_CORE_DEFINITIONS) ADD_GINKGO_DEFINITIONS() ADD_DEFINITIONS(-DAPIEXPORT) ADD_DEFINITIONS(-DGINKGO_VERSION="${GINKGO_VERSION}") ADD_DEFINITIONS(-DGINKGO_CODENAME="${GINKGO_CODENAME}") IF(USE_SYSTEM_SQLITE) ADD_DEFINITIONS(-DUSE_SYSTEM_SQLITE) ENDIF() ENDMACRO(ADD_GLOBAL_CORE_DEFINITIONS) ginkgocadx-3.8.7/CMake/WinProperties.cmake000066400000000000000000000001061314736454600204550ustar00rootroot00000000000000MACRO(PACKAGE_RULES PROJECT_NAME ARCH DEST) ENDMACRO(PACKAGE_RULES) ginkgocadx-3.8.7/CMakeLists.txt000066400000000000000000000122741314736454600164320ustar00rootroot00000000000000CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(BUILD_ALL) SET( GINKGO_VERSION 3.8.6) SET( USE_PATCHED_LIBS FALSE CACHE BOOL "Use patched libraries") SET( BUILD_VISUALIZATION_EXT TRUE CACHE BOOL "Build Visualization extention") SET( USE_SYSTEM_SQLITE TRUE CACHE BOOL "Build with system SQLite library") SET( USE_CUSTOM_WX FALSE CACHE BOOL "Build with custom WX library") SET( USE_CUSTOM_VTK FALSE CACHE BOOL "Build with custom VTK library") SET( USE_CUSTOM_ITK FALSE CACHE BOOL "Build with custom ITK library") SET( USE_CUSTOM_DCMTK FALSE CACHE BOOL "Build with custom DCMTK library") SET( CUSTOM_PACKAGE FALSE CACHE BOOL "Custom package") SET( FORCE_SSE FALSE CACHE BOOL "Force SSE Flag") SET( INTERNET_DIST TRUE CACHE BOOL "Public distribution") SET( CMAKE_OSX_ARCHITECTURES "i386" CACHE STRING "MacOSX Architectures" FORCE) SET( GINKGO_VERSION_STR ${GINKGO_VERSION}) ############################################################################################# SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/CMake) INCLUDE(SysDefs) ############################################################################################# include(FindPkgConfig) include(CheckCXXCompilerFlag) IF (((${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.3.0)) OR ((${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang") AND (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 3.3.0))) MESSAGE(STATUS "Compiler has full c++11 support") # g++ >= 6.0 sets std=c++14 by default IF (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU") IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0.0) SET(CXX_11_FLAG "-std=c++11") ENDIF() ELSE() SET(CXX_11_FLAG "-std=c++11") ENDIF() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_11_FLAG}") ELSE() CHECK_CXX_COMPILER_FLAG("-std=c++11" HAS_GNU_CXX11_FLAG) IF(HAS_GNU_CXX11_FLAG) SET(CXX_11_FLAG "-std=c++11") ELSE(HAS_GNU_CXX11_FLAG) CHECK_CXX_COMPILER_FLAG("-std=c++0x" HAS_GNU_CXX0X_FLAG) IF(HAS_GNU_CXX0X_FLAG) SET(CXX_11_FLAG "-std=c++0x") ELSE(HAS_GNU_CXX0X_FLAG) MESSAGE(WARNING "Don't know how to enable C++11, if you are lucky, they are enabled by default") ENDIF(HAS_GNU_CXX0X_FLAG) ENDIF(HAS_GNU_CXX11_FLAG) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_11_FLAG}") ENDIF() #doesn't work... using custom build #IF(LINUX) #FIND_PACKAGE(LIBCURL REQUIRED) #ENDIF() SET_CUSTOM_libcurl_PACKAGE() IF(NOT USE_CUSTOM_WX) FIND_PACKAGE(wxWidgets 3.0.2 COMPONENTS core base html gl net xml aui adv richtext xrc propgrid REQUIRED) ELSE() MESSAGE(STATUS "Using custom wxWidgets") SET_CUSTOM_wxWidgets_PACKAGE() ENDIF() IF(NOT USE_CUSTOM_VTK) FIND_PACKAGE(VTK 7.0.0) IF (NOT VTK_FOUND) FIND_PACKAGE(VTK 6.2.0 REQUIRED) ENDIF() ELSE() MESSAGE(STATUS "Using custom VTK") SET_CUSTOM_VTK_PACKAGE() ENDIF() IF(NOT USE_CUSTOM_ITK) FIND_PACKAGE(ITK 4.8.0 REQUIRED COMPONENTS ITKCommon ITKGDCM ITKIOImageBase ITKIOVTK ITKVTK ITKIOGDCM) ELSE() MESSAGE(STATUS "Using custom ITK") SET_CUSTOM_ITK_PACKAGE() ENDIF() IF(NOT USE_CUSTOM_DCMTK) FIND_PACKAGE(DCMTK 3.6.1 REQUIRED) ELSE() MESSAGE(STATUS "Using custom DCMTK") SET_CUSTOM_DCMTK_PACKAGE() ENDIF() SET(CMAKE_REQUIRED_INCLUDES ${DCMTK_INCLUDES}) SET(CMAKE_REQUIRED_LIBRARIES ${DCMTK_LIBRARIES}) CHECK_CXX_SOURCE_COMPILES( "#include #include int main(int argc, char *args[]) { DcmTagKey tag(DCM_StudyDate); DcmElement *test = DcmItem::newDicomElement(tag); return test == 0; } " DCMTK_newDicomElement_IS_STATIC_MEMBER_OF_DcmItem) IF(DCMTK_newDicomElement_IS_STATIC_MEMBER_OF_DcmItem) ADD_DEFINITIONS(-DDCMTK_POST_20170228) ENDIF() IF(NOT USE_SYSTEM_SQLITE) MESSAGE(STATUS "Using builtin SQLite") ELSE() MESSAGE(STATUS "Using system SQLite") #FIND_PACKAGE(sqlite REQUIRED) ENDIF() # require cairo includes PKG_CHECK_MODULES(CAIRO REQUIRED cairo) INCLUDE_DIRECTORIES(${CAIRO_INCLUDE_DIRS}) LINK_DIRECTORIES(${CAIRO_LIBRARY_DIRS}) IF(LINUX) PKG_CHECK_MODULES(GTK REQUIRED gtk+-2.0) INCLUDE_DIRECTORIES(${GTK_INCLUDE_DIRS}) LINK_DIRECTORIES(${GTK_LIBRARY_DIRS}) PKG_CHECK_MODULES(LIBCURL REQUIRED libcurl) INCLUDE_DIRECTORIES(${LIBCURL_INCLUDE_DIRS}) LINK_DIRECTORIES(${LIBCURL_LIBRARY_DIRS}) ENDIF() ############################################################################################# IF(MACOS) SET(GINKGO_PROJECT "Ginkgo CADx" CACHE PARENT_SCOPE "") ELSEIF(LINUX AND CUSTOM_PACKAGE) SET(GINKGO_PROJECT "ginkgocadx-${ARCH}" CACHE PARENT_SCOPE "") ELSE() SET(GINKGO_PROJECT "ginkgocadx" CACHE PARENT_SCOPE "") ENDIF() SET(GINKGO_PLUGINS "" CACHE PARENT_SCOPE "") ADD_SUBDIRECTORY(cadxcore) ADD_SUBDIRECTORY(ginkgocadx) IF(BUILD_VISUALIZATION_EXT) ADD_SUBDIRECTORY(visualizator) ENDIF() ADD_CUSTOM_TARGET(${PROJECT_NAME} echo) MESSAGE(STATUS "Building ${GINKGO_PROJECT} ${GINKGO_VERSION_STR}") ADD_DEPENDENCIES(${PROJECT_NAME} "${GINKGO_PROJECT}") IF(BUILD_VISUALIZATION_EXT) ADD_DEPENDENCIES(${PROJECT_NAME} visualizator) LIST(APPEND GINKGO_PLUGINS "visualizator") ENDIF() IF(CUSTOM_PACKAGE) SET( DEST "${CMAKE_CURRENT_BINARY_DIR}/dist" ) PACKAGE_RULES( "${PROJECT_NAME}" "${ARCH}" "${DEST}" ) ENDIF() ginkgocadx-3.8.7/ChangeLog000066400000000000000000000560051314736454600154440ustar00rootroot00000000000000Version 3.8.4 (2016-01-08) ------------------------- * Correct shaders again, because the llvm based shader compiler is really restrictive with the clamp function. Version 3.8.3 (2015-04-12) ------------------------- * Remove some un-used code that fails to compile with the upcoming openssl-1.1.0 Version 3.8.2 (2015-04-12) ------------------------- * Correct shaders for image coloring. Closes: #18 Version 3.8.1 (2015-04-12) ------------------------- * Correct display of ECG series loaded from files with more then one data set. Closes #17 Version 3.8.0 (2015-03-16) ------------------------- * Silence warning log that blocks the program when opening a data set, Closes #11 * Fix crash when views would be changed from 1x2 or 2x1 to 1x1 Closes: #14 * Run the code through Coverity and fix a lot of issues. Closes: #15 * Clean up the version number handling to make sure that is used what is given in CMakeLists.txt Version 3.7.5 (2016-02-25) -------------------------- * Correct regression that MOVE answers from PACS server time out * Work around that clang++ uses move constructor instead of copy constructor * Remove __DATE__ macros from code, Closes: #9 * Remove pre VTK-6 code path Closes: #7 * Remove calls to SetMaxLength on multiline widgets Closes: #10 * Update DCMTK version specifier * Remove pre-3.0 wxWidget code Closes: #6 Version 3.7.4 (2016-02-25) -------------------------- * Disable forced maximization on non-windows (Closes:#5) Version 3.7.3 (2016-02-25) -------------------------- * don't reparent vtkwxRenderWindow to NULL (Closes: #2) * correct some stelling errors. Version 3.7.2 (2016-02-23) -------------------------- * Move to github and start fork of abandoned version * Update build to use VTK-6, ITK-4, and DCMTK 3.6.1 * Fix some possible race conditions by using std::atomic * Clean up licenses * remove embedded jsoncpp Version 3.7.1 (2014-12-01) --------------------------- * Orientation label fixes in CR and MG modalities. * Widgets interactuation and selection usability enhances. * Deadlock fix in smart retrieve. * Bug fix in upload permission. * wxWidgets update to 3.0.1. * Compilation fix provided by Olly Betts (http://bugs.debian.org/749487) * Some issues fixes provided by Dmitry Smirnov. * Set process default to LTR layout in Windows. Version 3.7.0 (2014-06-16) --------------------------- * Ortogonal rule tool for ECG * Added Maximum number of C-Find responses parametrization in profiles. * MPR layout enhances. * Text and annotations enhances. * Other visual and style improvements: contrast, colors.. * Bug fix in export window. * Bug fix expanding empty results iun PACS search. * Fixed series double click behaviour. * DOC modality added. * Tool selection memorization * EC modality added in ECG viewer modality support list * Other usability enhances and behavior fixes. Version 3.6.1 (2014-02-27) --------------------------- * UI migrated to wxWidgets 3.0.0 all forms has changed * Smart retrieve feature, allows user to automatically download studies. * User can store favourite queries * WADO retrieves in CD/DVD/USB recording workflow * Added translation to french and serbian * Traslation updates * Allow to specify config file by command line: --config-file= * Usability enhances in mouse button processing. * Search restrictions removed performing Q/R from integration profiles * Other minor bug fixes Version 3.6.0 (2013-12-18) --------------------------- * Added permission to specify what Storage SOP Class to use in dicomization * Added permision to allow specify accession number in dicomization window * Final cancel ignored in DICOM communications, when maximum response limit is reached, for the responses to appear in the window. * Error fixes in cloud dialog. * Anonymous usage statistics. * Corner annotations are now fully customizable. * Allow new attributes to be added on anonymization tool. * Added permission to specify what Storage SOP Class to use in dicomization * Added permision to allow specify accession number in dicomization window * Cloud API enhances. * Error fixes in cloud dialog. * Pure WADO integration through XML integration file * Resources directory bug fixed. * Final cancel ignored in DICOM communications, when maximum response limit is reached, for the responses to appear in the window. Version 3.5.1 (2013-10-23) --------------------------- * Bugfixes. Versión 3.5.0 (2013-10-10) --------------------------- * Better hanging protocols support. * Camera rotation tool. * Added new LUTs for PET/Fussion * GUI usability enhances. * Internal refactoring. * Other internal improvements and bug fixes. Versión 3.4.1 (2013-08-05) --------------------------- * Mainteinance release. Versión 3.4.0 (2013-07-17) --------------------------- * Fixed bug viewing CT Dose * Fixed bug checking if a slice belongs to a volume * Cloud bugfixes and API update * Show the free disk space before import. * Fixed bug in viewer layout. * Zoom level visual helper. * Show architecture (32 or 64 bits) in main window. * Show a warning before overwriting studies. * Static rule widget. * Check minimum and maximum values to verify representation. * Multiple monitor support enhances in GinkgoCADx Hanging Reports. Versión 3.3.0 (2013-04-17) * Ginkgo Cloud for sharing anonymized studies: Search and download support. * Query/Retrieve panel ui enhances * History and tools ui enhances * Internal threads managing enhances. * Image Orientation (L,R,S,I,A,P) annotations. * SC Image report generation * Minor enhances * Some tools are now available in top menu bar. * Allow to paste images through clipboard when importing. Version 3.2.0 (2013-02-15) --------------------------- * PACS downloads simplified. * Enhanced error notification in PACS operations. * WADO download support * URI integration support ginkgo:// (automatically registered with Windows installer.) * Bug fixes : - Rotation + flip behaviour fix Version 3.1.0 (2012-12-12) --------------------------- * Custom Hanging protocols support. * GinkgoCADx now can open studies directly. * Drag&Drop support. * Some fixes suggested by users: - Linux launcher - Show Slice Thickness. * Resources extracted from executable: - Images * DICOM Nodes specific charset configuration * wrong LGPL3 aditional clause removed * DICOMDir now imports in link-mode * Task retry feature * Log monitor charset fixed * Open automatically feature fixed * Some speed enhances * Polish traslation * HL7 not enabled by default * Added a DICOM grayscale test card to verify visuallization * Open automatically behavior restored (at drag&drop, file as arg...) * Retry feature sending to PACS. * Look&Feel enhancements * PACS localization selection support. * Many bug fixes. Version 3.0.0 rc (2012-09-14) --------------------------- * Binary architecture of modules back to static * Grid layout removed * 1:1 zoom * Look&Feel enhancements * Stability and accuracy deep revision. Code review and refactoring. * Unit test support * Tool system refactoring. * History refactoring. * Many bug fixes. Version 2.14.0.4972 final (2012-06-26) --------------------------- * Fixed bug in DICOM print with compressed images. * Fixed bug in DICOM loader. * Some enhancements and minor corrections. * Translation updates. * Linux official distribution binaries upgraded for Ubuntu Precise Pangolin: 12.04 LTS. MD5 of the released files with this version: d91260f97856f90c065817a966824cf7 Ginkgo_CADx-2.14.0.4972_linux_x86.tgz 9961cd7e078d8f5f379806434e226f15 Ginkgo_CADx-2.14.0.4972_linux_x86_64.tgz eae562b09e2528c3e84fbdf943770441 Ginkgo_CADx-2.14.0.4972_installer.exe e67d82359487aaa742cb2e949791f143 Ginkgo_CADx-2.14.0.4972_win32.zip a52f7d2319195224e675b6e1af088947 ginkgocadx-2.14.0.4972.tgz Version 2.12.0.4869 final (2012-04-19) --------------------------- * Window level speed has been enhanced using Pixels shaders when possible. * Brazillian portuguese translation * Charset of dicomized files can be selected in configuration * Some window/level related bugs has been corrected * Image description tag is shown in corner annotations * Other minor improvements and bug fixes MD5 of the released files with this version: 7ac293aa10427c82368bcbf0dc853f35 Ginkgo_CADx-2.12.0.4889_linux_x86_64.tgz 11acbd3a039f14b3f3cfe5e64124fd78 Ginkgo_CADx-2.12.0.4889_linux_x86.tgz 7d2902f89ac90f93f6cfd754e5d1e50f ginkgocadx-2.12.0.4889.tgz f9cb7b89b28f1cc3094cd4774f4531da Ginkgo_CADx-2.12.0.4889_installer.exe 85c3b368c1bbf37d2dfa484e8b5cd383 Ginkgo_CADx-2.12.0.4889_win32.zip Version 2.10.0.4786 final (2012-03-08) --------------------------- * UID root of dicomized files changed to metaemotion's uid * Second surname field has been deleted from dicomization * PDF's could be dicomized in opensource dicomization workflow * Refactoring of profiles configuration * Refactoring of integration subsystem, ORU mensaje is specified in a template MD5 of the released files with this version: f66cb29d5da6a9478e9ba0f7f6e49097 Ginkgo_CADx-2.10.0.4786_linux_x86_64.tgz e8e4d256c347059d628bca3e59c1a32a Ginkgo_CADx-2.10.0.4786_linux_x86.tgz fbb5b602f33c6305954d4314c41e0553 Ginkgo_CADx-2.10.0.4786_installer.exe b2e1ed41f84e8ef73da009d3e24e33b7 Ginkgo_CADx-2.10.0.4786_win32.zip a08c8e8fe03b9063a015319556d93e76 ginkgocadx-2.10.0.4786.tgz Version 2.8.0.4540 final (2012-01-26) ---------------------------- * Stable version * corrected error in CMake building * Other minor improvements and bug fixes MD5 of the released files with this version: ab7bbcc41b8cdd41bc8e5327e897972b Ginkgo_CADx-2.8.0.4602_final_installer.exe 5cad9495c728115119bc9899aaad736d Ginkgo_CADx-2.8.0.4602_final_win32.zip 656c7449334fd294ca95dd00a1effb08 Ginkgo_CADx-2.8.0.4602_linux_x86.tgz c865b6f1ecef528983525db5e3ad66c2 Ginkgo_CADx-2.8.0.4602_linux_x86_64.tgz c5a42f5d44b68653a89321cee0775d1a ginkgocadx-2.8.0.4602.tgz Version 2.8.0.4540 rc (2012-01-16) ---------------------------- * Full tools subsystem refactoring. Now it's possible to bind a mouse button to a tool. * New zoom and pan tools has been included * Corrected bug in connections to ClearCanvas PACS server * Corrected menu bug in Unity, menu is shown as it was in ubuntu 9.x * Change name/surname order in patient name at importation * Export/import configuration from xml has been deprecated, now you can export/import using ini files * New open removable unit menu option has been included in Windows release * If there is not metric information rule and area tools uses pixels * Default photometric interpretation has been changed form YBR_FULL to YBR_FULL_422 that is commonly used in JPEG * Some changes in log system, tree view has been deleted and log level is persistent MD5 of the released files with this version: e9a2fc2dcd2b84d382657e3abe1403a8 Ginkgo_CADx-2.8.0.4540_rc.dmg 610e7db74a35dbfb5dc262ca1d62d237 Ginkgo_CADx-2.8.0.4540_rc_linux_x86_64.tgz 1f2c40dec224b98fe2c8c4ab255b54c2 Ginkgo_CADx-2.8.0.4540_rc_linux_x86.tgz 1805b20061deb94a262c619feeb22a3d ginkgocadx-2.8.0.4540_rc.tgz d142f76d67fab65e777c9bfa45c9d4a0 Ginkgo_CADx-2.8.0.4540_rc_installer.exe e77b097914cfc8dc7c77c7641bb3b26d Ginkgo_CADx-2.8.0.4540_rc_win32.zip Version 2.6.0.1 final (2011-11-18) ---------------------------- * Added proxy support for http connections (check for updates and start up page) * Added slider tool to move between slices of a series * New functionallity: export to DICOM Dir with anonymization support * Corrected problems in downloading huge files from PACS * Other minor improvements and bug fixes * ITK patches applied to Linux x86 version MD5 of the released files with this version: d57ef1b76a764559a0c75871f6884e1d Ginkgo_CADx-2.6.0.0_final.dmg 872dd7a0825852470d0e2a19757890e6 Ginkgo_CADx-2.6.0.0_final_linux_x86_64.tgz 3cfeb2ebfff9f4fded6b6d64dad99d89 Ginkgo_CADx-2.6.0.0_final_linux_x86.tgz a14935041cf5e882c84d70e97de961f3 ginkgocadx-2.6.0.0_final.tgz 30eac5bf001484aa438b2fbe1c49d4de Ginkgo_CADx-2.6.0.0_installer.exe 5b965b2614403cb6d4a02a180d0bd153 Ginkgo_CADx-2.6.0.0_win32.zip Version 2.6.0.0 rc (2011-11-04) ---------------------------- * Enhanced ECG initial zoom and position. * Initial image 2D/3D view maximized. * Load extensions module has been redesigned, now extensions use manifest file * Date search fails in some PACS, corrected date format in PACS searches * Position and zoom has been synchronized in grid mode * Now position is not reseted in slice changing * Log format modified * Windows installer has been improved * Metadata is included in generated files when Ginkgo CADx executes an integration workflow * DICOM parser improved, file reading speed has been improved. * Spanish translations deep correction * Restyling of some dialogs (Dicom inspector, pacs configuration, progress dialog...) * Other minor improvements and bug fixes MD5 of the released files with this version: fd6b3595774a5c3e85cb70aeaad7e26c Ginkgo_CADx-2.6.0.0_rc.dmg 95dfc48e4fd4cdbdc59bad58c31a67e3 Ginkgo_CADx-2.6.0.0_rc_installer.exe 48864c42e4fdf7e9b7dcfeda532ae801 Ginkgo_CADx-2.6.0.0_rc_linux_x86_64.tgz d1615a1481e836c8182442c48fb4fb2f Ginkgo_CADx-2.6.0.0_rc_linux_x86.tgz 0a8a4de4a2e3267d8943c3043c7dc0fc ginkgocadx-2.6.0.0_rc.tgz dca3442541ab4edbba45dc3dfc1b871b Ginkgo_CADx-2.6.0.0_rc_win32.zip Version 2.5.4.1 final (2011-09-23) ---------------------------- * Stable version release * Welcome screen added * Bug resolved in parameters interpretation * Other minor improvements and bug fixes MD5 of the released files with this version: c7193a4a6f8b988bf76a167667f7400f Ginkgo_CADx-2.5.4.1_win32.zip 938875c68ddd0eeb6d31a7eb283704e5 Ginkgo_CADx-2.5.4.1_installer.exe 5737e667cb70689d0d251c94b598a597 Ginkgo_CADx-2.5.4.1_linux_x86_64.tgz 89672165ecb1ab6e27a7c15020607538 Ginkgo_CADx-2.5.4.1_linux_x86.tgz fd85e6fdc007d855cefbfb27ffded671 Ginkgo_CADx-2.5.4.1.dmg 8618e01cb1a2ef4b7b5397919d8c9f8d ginkgocadx-2.5.4.1.tgz Version 2.5.4.0 rc (2011-09-02) ---------------------------- * Compilation instructions document updated * Microsoft Redistributable libraries incuded in Ginkgo CADx release (in the instalator) * Corrected a bug in acquisition from a DicomDir in Linux * Corrected a bug in Windows when Ginkgo CADx tries to open an integration file stored in a path with special characters (á,ó,ñ,...) * Import files from a location has been improved, you can import files from a directory where files are stored with the medical image system, Ginkgo CADx can be configured to delete images after importation, monitoring images of a directory... * Integration XML parsing has changed, XML without pid parameter are valid. If you send an XML file without this parameter you can select importation workflow in Ginkgo CADx instead of doing it in the EHR application * GXML and GKXML files are registered as Ginkgo CADx files in Windows installer, so you can open it automatically doing double click and they are associated automatically in the navigator with Ginkgo CADx application * Maximum number of opened tabs can be limited in profiles section * A timer can be set to control inactivity time, if the timer reaches to 0 inactive tab will be closed * Hotkeys has been asociated with Ginkgo CADx tools * Restyling of download tab from a PACS dialog * Restyling of PACS dialog it's now more compact * Restyling of extensions sections from configuration * Corner annotations hidden by default, status of hidden/shown are stored in configuration * HL7 monitor redesigned, now is executed as a Ginkgo CADx command and shows progress and errors in the progress bar, problems related with HL7 connections can be detected easily * Pixel interpolation can be selected in Image menu, a linear interpolation at pixel level is applied to avoid pixelization * Windows build file (Ginkgo-CADx.sln) has been updated and checked, now you can compile core and extensions without any problem MD5 of the released files with this version: 9f8e09a99c16ee63d0167d1e3dd35fa2 Ginkgo_CADx-2.5.4.0_rc_win32.zip c9bb3ed05d30db89b949ad034a91fc01 Ginkgo_CADx-2.5.4.0_rc_installer.exe f811687755bed3507f3c37e62d36007b Ginkgo_CADx-2.5.4.0_rc_linux_x86_64.tgz 527399d7d4b9740e4e19b4c0b05c8aaa Ginkgo_CADx-2.5.4.0_rc_linux_x86.tgz 201663079ef5074abfb0e9f5b43b4e8d ginkgocadx-2.5.4.0_rc.tgz e2e4c948b9f4a2b1bbf47e6803668e16 Ginkgo_CADx-2.5.4.0_rc.dmg Version 2.5.2 (2011-07-22) ---------------------------- * Bug fixed: xml invocation with parser english results in exception * Bug fixed: dicom acquisition didn't work with japanese language * Other minor improvements and bug fixes MD5 of the released files with this version: 5cbfeb23f50099e0cc2eb47db329f271 ginkgocadx-2.5.2.0.tgz e293085ab0c8f0dd9d31ee6fd4bf4a30 Ginkgo_CADx-2.5.2.0.dmg b3cca5def6e74018592bc61998f0e31e Ginkgo_CADx-2.5.2.0_installer.exe cfcd65a81c351436c14a399ccf81447f Ginkgo_CADx-2.5.2.0_linux_x86.tgz f9563583e2ebe33ae5b286220e467803 Ginkgo_CADx-2.5.2.0_linux_x86_64.tgz 0c3cc48fb19ed18934d2910a3238fe65 Ginkgo_CADx-2.5.2.0_win32.zip Version 2.5.1 (2011-07-13) ---------------------------- * Feature: Workflows started by external applications (xml, xml-rpc) can be reprocessed if somethings failed (uploading to pacs or sending the HL7 message). * Fixed: Windows 32 version doesn't load properly conformance.xml * Other minor improvements and bug fixes MD5 of the released files with this version: 8d65fcc57f6a77ea74dfe3b24f8ce5cc Ginkgo_CADx-2.5.1.0.dmg 1a2626e474cf38c4b83699d8eb177b9f Ginkgo_CADx-2.5.1.0_installer.exe 8ee57d98c358bb0d521de07e083bd027 Ginkgo_CADx-2.5.1.0_linux_x86_64.tgz ffeeed59c8974f8f487fcea47a6edcc2 Ginkgo_CADx-2.5.1.0_linux_x86.tgz 85fc0b84af2c351d4e001c092395381b Ginkgo_CADx-2.5.1.0_win32.zip Version 2.5.0.0 (2011-07-06) ---------------------------- * Refactorization of DICOM network layer, starts constructing conformance.xml to enhance C-GET interoperability * Improve error handling of DICOM network errors * Removes dependency of wxWidgets configuration, Ginkgo CADx implements it's own configuration controller to handle one configuration file for sytem properties and other for user properties * New Ginkgo CADx extension released: Ginkgo CADx Lite Visualizator, it's focused to work with computers without 3D acceleration, you can use Ginkgo CADx in old computers! * New translations incorporated: German, Turkish * Restyling of Importation first step * Other minor improvements and bug fixes MD5 of the released files with this version: 73818708b08a477751544259925b85f9 Ginkgo_CADx-2.5.0.0.dmg 37e3c9f92917c5371cf23f34113e900e Ginkgo_CADx-2.5.0.0_installer.exe dd08d8b0f7ec8b245c6b6603297f5440 Ginkgo_CADx-2.5.0.0_win32.zip ae8b9f9978236dde03fe1d4713030a30 Ginkgo_CADx-2.5.0.0_linux_x86_64.tgz 34485fab2496cffa19ace239cbf31780 Ginkgo_CADx-2.5.0.0_linux_x86.tgz 7c1d69fd2f360c51e079ba453393fd51 ginkgocadx-2.5.0.0.tgz Version 2.4.1.0 (2011-04-29) ---------------------------- * Log layout has changed, logs are grouped by thread * Mayor bug fix problem in Windows when Ginkgo CADx receives an integration xml as parameter, Ginkgo CADx didn't find plugins * wxSQLite3 update to version 2.1.1 * wxTreeListCtrl update to release 1104 * openssl update to openssl 1.0.0d Version 2.4.0.0 (2011-04-15) ---------------------------- * New architecture, refactoring of Ginkgo CADx Core. * ITK, VTK and wxWidgets are compiled as dll library. It's opened the possibility of make extensions containing full modules with it's own views, studies... * New ECG view has been created, full support of ECG. (thanks to Generalitat de Catalunya for the support) * Sequencial instance number is now included in all slices of each imported series (thanks to Guillermo Lopez) * Internationalization support improved, you can easily translate Ginkgo CADx and incorporate compiled gettext files in lang folder * Upload to PACS improved we have done a full restyling of user interaction. * You can configure Ginkgo CADx download implementation to work with PACS that only allows download full studies. You can select series/studies download mode. * User/password validation when communicating with PACS server has been implemented. * XML Integration parser has been translated to English to provide a easier way of integration. * DCMTK migration to version 3.6.0 * Log4cplus has been replaced by log4cplus of DCMTK * Bug fixes MD5 of the released files with this version: a5e51c1b505ebc3fa44bfa111fa2932b Ginkgo_CADx-2.4.0.0_installer.exe 0b0e9518564590a1940af8fcb20850ea Ginkgo_CADx-2.4.0.0_linux_x86_64.tgz e5744efdfac2463b2b02c5bc753471e2 Ginkgo_CADx-2.4.0.0_linux_x86.tgz 6ab0df05cac9a9c3765f7c353609b292 Ginkgo_CADx-2.4.0.0_win32.zip Version 2.3.0.0 (2011-02-25) ---------------------------- * Volume reconstruction totally functional * Surface reconstruction totally functional * XML-RPC interface implemented * Corrections in C-GET to get complete studies * Updated Ginkgo Translations * Bug fixes MD5 of the released files with this version: a35dc7dac51fe22899f48a9a51fad3c6 Ginkgo_CADx-2.3.0.0.dmg (OSX DMG). fbcf44e2a7b5364712c2e7fe57e3b708 Ginkgo_CADx-2.3.0.0_installer.exe (Windows32 Installer). 1474d94324f3076f9083c3494d9cd846 Ginkgo_CADx-2.3.0.0_linux_x64.tgz (Linux64 Executable). 6d22ab840fc886b8ee49376328385d8c Ginkgo_CADx-2.3.0.0_linux_x86.tgz (Linux32 Executable). ab1ddab3e2745c533e42c1231916a514 Ginkgo_CADx-2.3.0.0_src.tgz (Source code). 2781fd9ae11cb07fc95b9594ca37963a Ginkgo_CADx-2.3.0.0_win32_standalone.zip (Windows32 Executable). Version 2.2.1.0 (2011-02-15) ---------------------------- * Ginkgo CADs acceps -version parameter * Modifications in the definition of the integration XML and HL7 message of dicomization * Default PACS server selection, it will be used when Ginkgo CADx is executed with a dicomization XML * Spanish translation updated * Japanese translations * Improved verbose level in DICOM operations * Overlay interpretation improved in series with slices with different number of overlays * Correction of "No Options" bar refresh problem * Series with spacing 0 are interpreted as spacing 1x1 * Restyling of medical history bar with collapsible nodes and searching filters * Restyling of PACS acquisition dialog * Restyling of About Ginkgo dialog * Restyling of license dialog * Correction of virtual memory leak * Improved update support * DICOM exportation and diagnostics upload system change, when a diagnostic is uploaded to a PACS the diagnostic is merged with the original file. * Images without metric information are detected and the user is warned about it. * Integration of CharLS library to read JPEG-LS DICOMs * Optimization of PACS commands, GET retrieve is improved and exhaustive tested with DCM4CHEE pacs * Bug Fixes * Printing bug on Linux (thanks to André Alvim Tolentino). * EXPERIMENTAL 3D reconstruction (buggy and feature incomplete): CT Surface Rendering. Disabled by default. Can be enabled with permission profiles: Tools -> Settings -> Profiles -> New/Edit; Set 3D Reconstruction: "true", 3D Surface Rendering: "true". MD5 of the released files with this version: e8116a4ee3671743cd6f7020386f8fe6 Ginkgo_CADx-2.2.1.0.dmg Mac (OSX DMG). ca21f42b9daa4525e6c6d3216791bab4 Ginkgo_CADx-2.2.1.0_installer.exe (Windows32 Installer). 29053b222edf07ed758fe5e232b13016 Ginkgo_CADx-2.2.1.0_linux_x64.tgz (Linux64 Executable). 6bc50d307d536f9a2262c114a770aa0e Ginkgo_CADx-2.2.1.0_linux_x86.tgz (Linux32 Executable). ad7299db649942708952a9f49884b723 Ginkgo_CADx-2.2.1.0.tgz (Source code). 0b51df0bba3f1d25fc161447d5836932 Ginkgo_CADx-2.2.1.0_win32_standalone.zip (Windows32 Executable). ginkgocadx-3.8.7/LGPL3.txt000066400000000000000000000172061314736454600152540ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.ginkgocadx-3.8.7/README.md000066400000000000000000000052611314736454600151470ustar00rootroot00000000000000[![Build Status](https://travis-ci.org/gerddie/ginkgocadx.svg?branch=master)](https://travis-ci.org/gerddie/ginkgocadx) [![Coverity Status](https://scan.coverity.com/projects/8214/badge.svg)](https://scan.coverity.com/projects/ginkgocadx) # Ginkgo CADx # ## Preface ## * Currently the project is maintained on a voluntary basis. * There is no PRO version. * I can't help you with compiling this on MS Windows or Mac OS X ## Introduction ## Ginkgo CADx is an advanced DICOM viewer and dicomizer that can also be used to convert png, jpeg, bmp, pdf, tiff to DICOM files. The version developed here is a continuation of the now abandoned free version developed by MetaEmotion: http://ginkgo-cadx.com/en/ ## License ## Ginkgo CADx is licensed under the terms of the Lesser GNU Public Licence 3. ## Build ## To build Ginkgo CADx the following software packages are required: * ITK (>= 4.8) * VTK (>= 6.2), Please note that the code does currently not compile with the VTK OpenGL2 rendering backend (see #21 and #34). VTK >= 7.0 defaults to this newer backend when configured without parameters, and currently you will have to set VTK_RENDERING_BACKEND=OpenGL when building VTK to sucessfully compile ginkgocadx. * wxWidgets (>= 3.0.1) * DCMTK (>= 3.6.1-20150924) * A C++ compiler that supports the *C++11* standard * CMake With these prerequisites available run *cmake* on the Ginkgo CADx source tree and then use the selected build system to build the software. After the software was sucessfully compiled run the install target. The original Ginkgo CADx implementation was done with cross-platform compatibility in mind, i.e. the software should compile on MS Windows, Mac OS X, and flavours of Linux. However, currently the main development platforms are Debian GNU/Linux and Gentoo Linux using the GNU gcc compiler tool chain. Hence incompatibilities may creep in and bug reports with fixes for other platforms are very welcome. ### Debian/Ubuntu specific build instructions ### The following packages must be installed in order to compile it: chrpath cmake libcairo2-dev libcurl4-gnutls-dev libdcmtk-dev libfftw3-dev libfreetype6-dev libgtk2.0-dev libinsighttoolkit4-dev libjsoncpp-dev libmysqlclient-dev libsqlite3-dev libssl-dev libvtk6-dev libwrap0-dev libwxgtk3.0-dev libxml2-dev libgdcm-tools On Debian *Stretch* and *Sid* these packages can be installed by simply running apt build-dep ginkgocadx On Ubuntu Xenial (16.04 )the package can be installed from the Xenial ports PPA: https://launchpad.net/~gert-die/+archive/ubuntu/xenial-mia For Yantal the package available from the usual Ubuntu repositories. ginkgocadx-3.8.7/cadxcore/000077500000000000000000000000001314736454600154545ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/CMakeLists.txt000066400000000000000000000314361314736454600202230ustar00rootroot00000000000000CMAKE_MINIMUM_REQUIRED(VERSION 2.8) PROJECT(CADxCore) ################ SOURCES ################ AUX_SOURCE_DIRECTORY(api SRCS) AUX_SOURCE_DIRECTORY(api/controllers SRCS) AUX_SOURCE_DIRECTORY(api/controllers/proxies SRCS) AUX_SOURCE_DIRECTORY(api/helpers SRCS) AUX_SOURCE_DIRECTORY(api/math SRCS) AUX_SOURCE_DIRECTORY(api/observers SRCS) AUX_SOURCE_DIRECTORY(api/dicom SRCS) AUX_SOURCE_DIRECTORY(api/threads SRCS) AUX_SOURCE_DIRECTORY(api/internationalization SRCS) AUX_SOURCE_DIRECTORY(api/toolsystem SRCS) AUX_SOURCE_DIRECTORY(api/utils SRCS) AUX_SOURCE_DIRECTORY(export SRCS) AUX_SOURCE_DIRECTORY(export/tools SRCS) AUX_SOURCE_DIRECTORY(export/observers SRCS) AUX_SOURCE_DIRECTORY(export/contracts SRCS) AUX_SOURCE_DIRECTORY(main SRCS) AUX_SOURCE_DIRECTORY(main/controllers SRCS) AUX_SOURCE_DIRECTORY(main/filtering SRCS) AUX_SOURCE_DIRECTORY(main/utils SRCS) AUX_SOURCE_DIRECTORY(main/gui SRCS) AUX_SOURCE_DIRECTORY(main/gui/anonymize SRCS) AUX_SOURCE_DIRECTORY(main/gui/acquisition SRCS) AUX_SOURCE_DIRECTORY(main/gui/callibration SRCS) AUX_SOURCE_DIRECTORY(main/gui/configuration SRCS) AUX_SOURCE_DIRECTORY(main/gui/countdownmessage SRCS) AUX_SOURCE_DIRECTORY(main/gui/dicomeditor SRCS) AUX_SOURCE_DIRECTORY(main/gui/dicomdirexport SRCS) AUX_SOURCE_DIRECTORY(main/gui/dicomdirmigration SRCS) AUX_SOURCE_DIRECTORY(main/gui/export SRCS) AUX_SOURCE_DIRECTORY(main/gui/ginkgocloud SRCS) AUX_SOURCE_DIRECTORY(main/gui/history3 SRCS) AUX_SOURCE_DIRECTORY(main/gui/hl7controlwindow SRCS) AUX_SOURCE_DIRECTORY(main/gui/import SRCS) AUX_SOURCE_DIRECTORY(main/gui/license SRCS) AUX_SOURCE_DIRECTORY(main/gui/logcontrolwindow SRCS) AUX_SOURCE_DIRECTORY(main/gui/login SRCS) AUX_SOURCE_DIRECTORY(main/gui/mainwindow SRCS) AUX_SOURCE_DIRECTORY(main/gui/open SRCS) AUX_SOURCE_DIRECTORY(main/gui/pacsupload SRCS) AUX_SOURCE_DIRECTORY(main/gui/paneltags SRCS) AUX_SOURCE_DIRECTORY(main/gui/previewpanel SRCS) AUX_SOURCE_DIRECTORY(main/gui/print SRCS) AUX_SOURCE_DIRECTORY(main/gui/dicomprint SRCS) AUX_SOURCE_DIRECTORY(main/gui/progress SRCS) AUX_SOURCE_DIRECTORY(main/gui/selectpacsserver SRCS) AUX_SOURCE_DIRECTORY(main/gui/startup SRCS) AUX_SOURCE_DIRECTORY(main/gui/tabtoolbar SRCS) AUX_SOURCE_DIRECTORY(main/gui/taskcontrol SRCS) AUX_SOURCE_DIRECTORY(main/gui/toolsystem SRCS) AUX_SOURCE_DIRECTORY(main/managers SRCS) AUX_SOURCE_DIRECTORY(main/tools SRCS) AUX_SOURCE_DIRECTORY(main/toolsystem SRCS) AUX_SOURCE_DIRECTORY(main/controllers/dcmtk SRCS) AUX_SOURCE_DIRECTORY(main/controllers/dcmtk/libi2d SRCS) AUX_SOURCE_DIRECTORY(main/controllers/dcmtk/ofstd SRCS) AUX_SOURCE_DIRECTORY(main/controllers/dcmtk/tls SRCS) #AUX_SOURCE_DIRECTORY(main/controllers/dcmtk/tls/win-only SRCS) AUX_SOURCE_DIRECTORY(main/controllers/log4cplus SRCS) AUX_SOURCE_DIRECTORY(main/controllers/streaming SRCS) AUX_SOURCE_DIRECTORY(commands SRCS) AUX_SOURCE_DIRECTORY(net SRCS) AUX_SOURCE_DIRECTORY(resources SRCS) IF(NOT USE_SYSTEM_SQLITE) AUX_SOURCE_DIRECTORY(sqlite SRCS) ENDIF() AUX_SOURCE_DIRECTORY(endpoint SRCS) AUX_SOURCE_DIRECTORY(vtk SRCS) AUX_SOURCE_DIRECTORY(vtk/command SRCS) AUX_SOURCE_DIRECTORY(vtk/interactor SRCS) AUX_SOURCE_DIRECTORY(vtk/widgets SRCS) AUX_SOURCE_DIRECTORY(widgets SRCS) AUX_SOURCE_DIRECTORY(widgets/gui SRCS) AUX_SOURCE_DIRECTORY(widgets/observers SRCS) AUX_SOURCE_DIRECTORY(wx SRCS) AUX_SOURCE_DIRECTORY(wx/ginkgostyle SRCS) AUX_SOURCE_DIRECTORY(wx/gnkinforme SRCS) AUX_SOURCE_DIRECTORY(wx/iconoimagenctrl SRCS) AUX_SOURCE_DIRECTORY(wx/maskedtextctrl SRCS) AUX_SOURCE_DIRECTORY(wx/propgrid SRCS) AUX_SOURCE_DIRECTORY(wx/propiedades SRCS) AUX_SOURCE_DIRECTORY(wx/thumbnailctrl SRCS) AUX_SOURCE_DIRECTORY(wx/timectrl SRCS) AUX_SOURCE_DIRECTORY(wx/treelistctrl SRCS) AUX_SOURCE_DIRECTORY(wx/VTK SRCS) AUX_SOURCE_DIRECTORY(wx/wizardginkgo SRCS) AUX_SOURCE_DIRECTORY(wx/wxsqlite3 SRCS) AUX_SOURCE_DIRECTORY(wx/wxhttpengine SRCS) AUX_SOURCE_DIRECTORY(VTKInria3D SRCS) AUX_SOURCE_DIRECTORY(VTKInria3D/vtkVISUManagement SRCS) AUX_SOURCE_DIRECTORY(VTKInria3D/wxVTK SRCS) AUX_SOURCE_DIRECTORY(resources SRCS) IF (LINUX OR MACOS) AUX_SOURCE_DIRECTORY(xmlrpc SRCS) ENDIF() IF (LINUX OR MACOS) LIST(REMOVE_ITEM SRCS endpoint/interfaces.cpp) LIST(REMOVE_ITEM SRCS endpoint/sockatmark.cpp) ELSEIF(WINDOWS) SET(SRCS stdafx.cpp ${SRCS}) ENDIF() ################ DEFINITIONS ################ ADD_CORE_DEFINITIONS() ################ INCLUDE DIRECTORIES ################ SET(${PROJECT_NAME}_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/vtk ${CMAKE_CURRENT_SOURCE_DIR}/itk ${CMAKE_CURRENT_SOURCE_DIR}/wx ${CMAKE_CURRENT_SOURCE_DIR}/wx/VTK ${CMAKE_CURRENT_SOURCE_DIR}/VTKInria3D ${CMAKE_CURRENT_SOURCE_DIR}/VTKInria3D/wxVTK CACHE INTERNAL "" ) INCLUDE_DIRECTORIES(${PROJECT_NAME} ${${PROJECT_NAME}_INCLUDE_DIR} ) ################ LIBS ################ FIND_PATH(libjsoncpp_INCLUDE_DIR json/json.h /usr/include/jsoncpp ) INCLUDE_DIRECTORIES(${libjsoncpp_INCLUDE_DIR}) set(libjsoncpp_LIBRARIES jsoncpp) MESSAGE(STATUS "libjsoncpp_LIBRARIES=${libjsoncpp_LIBRARIES} libjsoncpp_INCLUDE_DIR=${libjsoncpp_INCLUDE_DIR}") ADD_DEFINITIONS(${libcurl_defines}) INCLUDE_DIRECTORIES(${libcurl_INCLUDE_DIR}) LINK_DIRECTORIES(${libcurl_DIR}) #MESSAGE("LIBCURLLibx = ${libcurl_LIBRARIES} LIBCURL_include = ${libcurl_INCLUDE_DIR} LIBCURL_LINK_DIR= ${libcurl_DIR} LIBCURL_DEFINES=${libcurl_defines}") IF(USE_CUSTOM_WX) ADD_DEFINITIONS(${wxWidgets_CXX_FLAGS}) INCLUDE_DIRECTORIES(${wxWidgets_INCLUDE_DIR}) LINK_DIRECTORIES(${wxWidgets_DIR}) ELSE() FIND_PACKAGE(wxWidgets 3.0.1 REQUIRED) foreach(d ${wxWidgets_DEFINITIONS}) ADD_DEFINITIONS("-D${d}") endforeach() INCLUDE_DIRECTORIES(${wxWidgets_INCLUDE_DIRS}) ENDIF() IF (USE_CUSTOM_VTK) ADD_DEFINITIONS(${VTK_defines}) INCLUDE_DIRECTORIES(${VTK_INCLUDE_DIR}) LINK_DIRECTORIES(${VTK_DIR}) ELSE() INCLUDE(${VTK_USE_FILE}) ENDIF() IF(USE_CUSTOM_ITK) ADD_DEFINITIONS(${ITK_defines}) INCLUDE_DIRECTORIES(${ITK_INCLUDE_DIR}) LINK_DIRECTORIES(${ITK_DIR}) ELSE() INCLUDE(${ITK_USE_FILE}) #MESSAGE("ITKLIBS = ${ITK_LIBRARIES}") ENDIF() IF(USE_CUSTOM_DCMTK) ADD_DEFINITIONS(${DCMTK_defines}) INCLUDE_DIRECTORIES(${DCMTK_INCLUDE_DIR}) LINK_DIRECTORIES(${DCMTK_DIR}) ELSE() ADD_DEFINITIONS(-DHAVE_CONFIG_H) INCLUDE_DIRECTORIES(${DCMTK_INCLUDE_DIRS}) #MESSAGE("DCMTKLIBS = ${DCMTK_LIBRARIES}") #MESSAGE("DCMTKINC = ${DCMTK_INCLUDE_DIRS}") ENDIF() ADD_DEFINITIONS(${Cairo_defines}) INCLUDE_DIRECTORIES(${Cairo_INCLUDE_DIR}) LINK_DIRECTORIES(${Cairo_LIB}) ADD_DEFINITIONS(${Pixman_defines}) INCLUDE_DIRECTORIES(${Pixman_INCLUDE_DIR}) LINK_DIRECTORIES(${Pixman_LIB}) IF (MACOS) ADD_DEFINITIONS(${XmlRpc++_defines}) INCLUDE_DIRECTORIES(${XmlRpc++_INCLUDE_DIR}) LINK_DIRECTORIES(${XmlRpc++_DIR}) ENDIF() IF (LINUX) IF (GTK2_FOUND) INCLUDE_DIRECTORIES(${GTK2_INCLUDE_DIRS}) ELSE () MESSAGE("-----------------GTK2 NOT FOUND--------------------") INCLUDE_DIRECTORIES(/usr/include/gtk-2.0 /usr/include/atk-1.0 /usr/include/pango-1.0 /usr/include/gio-unix-2.0/ /usr/include/glib-2.0 /usr/lib/i386-linux-gnu/glib-2.0/include /usr/include/freetype2 /usr/include/libpng12 /usr/lib/gtk-2.0/include /usr/include/cairo /usr/include/gdk-pixbuf-2.0 /usr/include/pixman-1 ) ENDIF () ENDIF() ################ TARGET ################ ADD_LIBRARY(${PROJECT_NAME} STATIC ${SRCS} ) #ADD_EXECUTABLE(${PROJECT_NAME} WIN32 MACOSX_BUNDLE ${SRCS}) SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES VERSION "${GINKGO_VERSION_STR}" SOVERSION "${GINKGO_VERSION_STR}" LINK_INTERFACE_LIBRARIES "" INSTALL_RPATH_USE_LINK_PATH FALSE ) #INSTALL(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib/ginkgocadx) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/acquisition DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/big_icons DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/cursors DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/history DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/logos DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/marking_bar DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/menu_tabs DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/tool_icons DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/wizards DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/angle_bar DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/cine_bar DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/grid_bar DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/layout_bar DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/magnifier_bar DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/menu_icons DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/progress_bar DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/resources/files/windowlevel_bar DESTINATION share/ginkgocadx/resources/cadxcore) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/zh_CN/cadxcore.mo DESTINATION share/ginkgocadx/lang/zh_CN) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/zh_CN/wxstd.mo DESTINATION share/ginkgocadx/lang/zh_CN) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/de/cadxcore.mo DESTINATION share/ginkgocadx/lang/de) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/de/wxstd.mo DESTINATION share/ginkgocadx/lang/de) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/el/wxstd.mo DESTINATION share/ginkgocadx/lang/el) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/el/cadxcore.mo DESTINATION share/ginkgocadx/lang/el) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/es/wxstd.mo DESTINATION share/ginkgocadx/lang/es) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/es/cadxcore.mo DESTINATION share/ginkgocadx/lang/es) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/fr/wxstd.mo DESTINATION share/ginkgocadx/lang/fr) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/fr/cadxcore.mo DESTINATION share/ginkgocadx/lang/fr) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/ja/wxstd.mo DESTINATION share/ginkgocadx/lang/ja) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/ja/cadxcore.mo DESTINATION share/ginkgocadx/lang/ja) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/pl/wxstd.mo DESTINATION share/ginkgocadx/lang/pl) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/pl/cadxcore.mo DESTINATION share/ginkgocadx/lang/pl) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/pt/wxstd.mo DESTINATION share/ginkgocadx/lang/pt) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/pt/cadxcore.mo DESTINATION share/ginkgocadx/lang/pt) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/sr/cadxcore.mo DESTINATION share/ginkgocadx/lang/sr) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/tr/wxstd.mo DESTINATION share/ginkgocadx/lang/tr) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/lang/tr/cadxcore.mo DESTINATION share/ginkgocadx/lang/tr) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/resources/conformance.xml DESTINATION share/ginkgocadx) ################ LIBS ################ TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${libjsoncpp_LIBRARIES}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${libcurl_LIBRARIES}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${wxWidgets_LIBRARIES}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${VTK_LIBRARIES}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${ITK_LIBRARIES}) IF(USE_CUSTOM_DCMTK) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${DCMTK_LIBRARIES}) ELSE() TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${DCMTK_LIBRARIES} wrap) ENDIF() IF(USE_SYSTEM_SQLITE) TARGET_LINK_LIBRARIES(${PROJECT_NAME} sqlite3) ENDIF() TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Cairo_LIBRARIES}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${Pixman_LIBRARIES}) IF (MACOS) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${XmlRpc++_LIBRARIES}) ENDIF() IF(LINUX) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${GTK2_LIBRARIES}) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ssl GL crypto xml2) ENDIF() IF(MACOS) FIND_LIBRARY( CARBON_LIB Carbon ) FIND_LIBRARY( OPENGL_LIB OpenGL ) MARK_AS_ADVANCED( CARBON_LIB OPENGL_LIB ) SET(LIBS ${CARBON_LIB} ${OPENGL_LIB} ) LIST( APPEND LIBS ssl crypto xml2 z ) TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${LIBS}) SET_TARGET_PROPERTIES( PROPERTIES LINK_FLAGS "-Wl ${XCODE_LINK_FLAGS}" ) ENDIF() MESSAGE(STATUS "OS=[${OS}], Arch=[${ARCH}], Target=[${CMAKE_BUILD_TYPE}], Project=[${PROJECT_NAME}]") ginkgocadx-3.8.7/cadxcore/Info.plist.in000066400000000000000000000033211314736454600200300ustar00rootroot00000000000000 CFBundleDevelopmentRegion English CFBundleExecutable ${PLUGIN_NAME} CFBundleGetInfoString ${PLUGIN_NAME} ${FBSTRING_PLUGIN_VERSION}, ${FBSTRING_LegalCopyright} CFBundleIdentifier com.${ACTIVEX_PROGID} CFBundleIconFile cadxcore.icns CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType BRPL CFBundleShortVersionString ${PLUGIN_NAME} ${FBSTRING_PLUGIN_VERSION} CFBundleSignature ???? CFBundleVersion ${FBSTRING_PLUGIN_VERSION} CFPlugInDynamicRegisterFunction CFPlugInDynamicRegistration NO CFPlugInFactories 00000000-0000-0000-0000-000000000000 MyFactoryFunction CFPlugInTypes 00000000-0000-0000-0000-000000000000 00000000-0000-0000-0000-000000000000 CFPlugInUnloadFunction WebPluginName ${FBSTRING_ProductName} WebPluginDescription ${FBSTRING_FileDescription} WebPluginMIMETypes ${FBSTRING_MIMEType} WebPluginTypeDescription ${FBSTRING_FileDescription} ginkgocadx-3.8.7/cadxcore/License.txt000066400000000000000000000172061314736454600176050ustar00rootroot00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.ginkgocadx-3.8.7/cadxcore/VTKInria3D/000077500000000000000000000000001314736454600172725ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkINRIA3DConfigure.h000066400000000000000000000002631314736454600230640ustar00rootroot00000000000000//#define VTK_RENDERING_EXPORT #define VTK_RENDERINGADDON_EXPORT #define VTK_DATAMANAGEMENT_EXPORT #define VTK_VISUMANAGEMENT_EXPORT #define WX_VTK_EXPORT #define WX_ADDON_EXPORT ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/000077500000000000000000000000001314736454600226025ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/000077500000000000000000000000001314736454600234065ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/Asymmetry.h000066400000000000000000000253601314736454600255570ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: Asymmetry.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar 20 de nov de 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_asymmetry_h_ #define _lut_asymmetry_h_ static const float AsymmetryLUT[256][3] = { {0.000000, 0.000000, 1.000000}, {0.000000, 0.019608, 1.000000}, {0.000000, 0.039216, 1.000000}, {0.000000, 0.058824, 1.000000}, {0.000000, 0.078431, 1.000000}, {0.000000, 0.098039, 1.000000}, {0.000000, 0.117647, 1.000000}, {0.000000, 0.137255, 1.000000}, {0.000000, 0.156863, 1.000000}, {0.000000, 0.176471, 1.000000}, {0.000000, 0.196078, 1.000000}, {0.000000, 0.215686, 1.000000}, {0.000000, 0.235294, 1.000000}, {0.000000, 0.254902, 1.000000}, {0.000000, 0.274510, 1.000000}, {0.000000, 0.294118, 1.000000}, {0.000000, 0.313725, 1.000000}, {0.000000, 0.333333, 1.000000}, {0.000000, 0.352941, 1.000000}, {0.000000, 0.372549, 1.000000}, {0.000000, 0.392157, 1.000000}, {0.000000, 0.411765, 1.000000}, {0.000000, 0.431373, 1.000000}, {0.000000, 0.450980, 1.000000}, {0.000000, 0.470588, 1.000000}, {0.000000, 0.490196, 1.000000}, {0.000000, 0.509804, 1.000000}, {0.000000, 0.529412, 1.000000}, {0.000000, 0.549020, 1.000000}, {0.000000, 0.568627, 1.000000}, {0.000000, 0.588235, 1.000000}, {0.000000, 0.607843, 1.000000}, {0.000000, 0.627451, 1.000000}, {0.000000, 0.647059, 1.000000}, {0.000000, 0.666667, 1.000000}, {0.000000, 0.686275, 1.000000}, {0.000000, 0.705882, 1.000000}, {0.000000, 0.725490, 1.000000}, {0.000000, 0.745098, 1.000000}, {0.000000, 0.764706, 1.000000}, {0.000000, 0.784314, 1.000000}, {0.000000, 0.803922, 1.000000}, {0.000000, 0.823529, 1.000000}, {0.000000, 0.843137, 1.000000}, {0.000000, 0.862745, 1.000000}, {0.000000, 0.882353, 1.000000}, {0.000000, 0.901961, 1.000000}, {0.000000, 0.921569, 1.000000}, {0.000000, 0.941176, 1.000000}, {0.000000, 0.960784, 1.000000}, {0.000000, 0.980392, 1.000000}, {0.000000, 1.000000, 1.000000}, {0.000000, 1.000000, 0.980392}, {0.000000, 1.000000, 0.960784}, {0.000000, 1.000000, 0.941176}, {0.000000, 1.000000, 0.921569}, {0.000000, 1.000000, 0.901961}, {0.000000, 1.000000, 0.882353}, {0.000000, 1.000000, 0.862745}, {0.000000, 1.000000, 0.843137}, {0.000000, 1.000000, 0.823529}, {0.000000, 1.000000, 0.803922}, {0.000000, 1.000000, 0.784314}, {0.000000, 1.000000, 0.764706}, {0.000000, 1.000000, 0.745098}, {0.000000, 1.000000, 0.725490}, {0.000000, 1.000000, 0.705882}, {0.000000, 1.000000, 0.686275}, {0.000000, 1.000000, 0.666667}, {0.000000, 1.000000, 0.647059}, {0.000000, 1.000000, 0.627451}, {0.000000, 1.000000, 0.607843}, {0.000000, 1.000000, 0.588235}, {0.000000, 1.000000, 0.568627}, {0.000000, 1.000000, 0.549020}, {0.000000, 1.000000, 0.529412}, {0.000000, 1.000000, 0.509804}, {0.000000, 1.000000, 0.490196}, {0.000000, 1.000000, 0.470588}, {0.000000, 1.000000, 0.450980}, {0.000000, 1.000000, 0.431373}, {0.000000, 1.000000, 0.411765}, {0.000000, 1.000000, 0.392157}, {0.000000, 1.000000, 0.372549}, {0.000000, 1.000000, 0.352941}, {0.000000, 1.000000, 0.333333}, {0.000000, 1.000000, 0.313725}, {0.000000, 1.000000, 0.294118}, {0.000000, 1.000000, 0.274510}, {0.000000, 1.000000, 0.254902}, {0.000000, 1.000000, 0.235294}, {0.000000, 1.000000, 0.215686}, {0.000000, 1.000000, 0.196078}, {0.000000, 1.000000, 0.176471}, {0.000000, 1.000000, 0.156863}, {0.000000, 1.000000, 0.137255}, {0.000000, 1.000000, 0.117647}, {0.000000, 1.000000, 0.098039}, {0.000000, 1.000000, 0.078431}, {0.000000, 1.000000, 0.058824}, {0.000000, 1.000000, 0.039216}, {0.000000, 1.000000, 0.019608}, {0.000000, 1.000000, 0.000000}, {0.019608, 1.000000, 0.000000}, {0.039216, 1.000000, 0.000000}, {0.058824, 1.000000, 0.000000}, {0.078431, 1.000000, 0.000000}, {0.098039, 1.000000, 0.000000}, {0.117647, 1.000000, 0.000000}, {0.137255, 1.000000, 0.000000}, {0.156863, 1.000000, 0.000000}, {0.176471, 1.000000, 0.000000}, {0.196078, 1.000000, 0.000000}, {0.215686, 1.000000, 0.000000}, {0.235294, 1.000000, 0.000000}, {0.254902, 1.000000, 0.000000}, {0.274510, 1.000000, 0.000000}, {0.294118, 1.000000, 0.000000}, {0.313725, 1.000000, 0.000000}, {0.333333, 1.000000, 0.000000}, {0.352941, 1.000000, 0.000000}, {0.372549, 1.000000, 0.000000}, {0.392157, 1.000000, 0.000000}, {0.411765, 1.000000, 0.000000}, {0.431373, 1.000000, 0.000000}, {0.450980, 1.000000, 0.000000}, {0.470588, 1.000000, 0.000000}, {0.490196, 1.000000, 0.000000}, {0.509804, 1.000000, 0.000000}, {0.529412, 1.000000, 0.000000}, {0.549020, 1.000000, 0.000000}, {0.568627, 1.000000, 0.000000}, {0.588235, 1.000000, 0.000000}, {0.607843, 1.000000, 0.000000}, {0.627451, 1.000000, 0.000000}, {0.647059, 1.000000, 0.000000}, {0.666667, 1.000000, 0.000000}, {0.686275, 1.000000, 0.000000}, {0.705882, 1.000000, 0.000000}, {0.725490, 1.000000, 0.000000}, {0.745098, 1.000000, 0.000000}, {0.764706, 1.000000, 0.000000}, {0.784314, 1.000000, 0.000000}, {0.803922, 1.000000, 0.000000}, {0.823529, 1.000000, 0.000000}, {0.843137, 1.000000, 0.000000}, {0.862745, 1.000000, 0.000000}, {0.882353, 1.000000, 0.000000}, {0.901961, 1.000000, 0.000000}, {0.921569, 1.000000, 0.000000}, {0.941176, 1.000000, 0.000000}, {0.960784, 1.000000, 0.000000}, {0.980392, 1.000000, 0.000000}, {1.000000, 1.000000, 0.000000}, {1.000000, 0.980392, 0.000000}, {1.000000, 0.960784, 0.000000}, {1.000000, 0.941176, 0.000000}, {1.000000, 0.921569, 0.000000}, {1.000000, 0.901961, 0.000000}, {1.000000, 0.882353, 0.000000}, {1.000000, 0.862745, 0.000000}, {1.000000, 0.843137, 0.000000}, {1.000000, 0.823529, 0.000000}, {1.000000, 0.803922, 0.000000}, {1.000000, 0.784314, 0.000000}, {1.000000, 0.764706, 0.000000}, {1.000000, 0.745098, 0.000000}, {1.000000, 0.725490, 0.000000}, {1.000000, 0.705882, 0.000000}, {1.000000, 0.686275, 0.000000}, {1.000000, 0.666667, 0.000000}, {1.000000, 0.647059, 0.000000}, {1.000000, 0.627451, 0.000000}, {1.000000, 0.607843, 0.000000}, {1.000000, 0.588235, 0.000000}, {1.000000, 0.568627, 0.000000}, {1.000000, 0.549020, 0.000000}, {1.000000, 0.529412, 0.000000}, {1.000000, 0.509804, 0.000000}, {1.000000, 0.490196, 0.000000}, {1.000000, 0.470588, 0.000000}, {1.000000, 0.450980, 0.000000}, {1.000000, 0.431373, 0.000000}, {1.000000, 0.411765, 0.000000}, {1.000000, 0.392157, 0.000000}, {1.000000, 0.372549, 0.000000}, {1.000000, 0.352941, 0.000000}, {1.000000, 0.333333, 0.000000}, {1.000000, 0.313725, 0.000000}, {1.000000, 0.294118, 0.000000}, {1.000000, 0.274510, 0.000000}, {1.000000, 0.254902, 0.000000}, {1.000000, 0.235294, 0.000000}, {1.000000, 0.215686, 0.000000}, {1.000000, 0.196078, 0.000000}, {1.000000, 0.176471, 0.000000}, {1.000000, 0.156863, 0.000000}, {1.000000, 0.137255, 0.000000}, {1.000000, 0.117647, 0.000000}, {1.000000, 0.098039, 0.000000}, {1.000000, 0.078431, 0.000000}, {1.000000, 0.058824, 0.000000}, {1.000000, 0.039216, 0.000000}, {1.000000, 0.019608, 0.000000}, {1.000000, 0.000000, 0.000000}, {1.000000, 0.000000, 0.019608}, {1.000000, 0.000000, 0.039216}, {1.000000, 0.000000, 0.058824}, {1.000000, 0.000000, 0.078431}, {1.000000, 0.000000, 0.098039}, {1.000000, 0.000000, 0.117647}, {1.000000, 0.000000, 0.137255}, {1.000000, 0.000000, 0.156863}, {1.000000, 0.000000, 0.176471}, {1.000000, 0.000000, 0.196078}, {1.000000, 0.000000, 0.215686}, {1.000000, 0.000000, 0.235294}, {1.000000, 0.000000, 0.254902}, {1.000000, 0.000000, 0.274510}, {1.000000, 0.000000, 0.294118}, {1.000000, 0.000000, 0.313725}, {1.000000, 0.000000, 0.333333}, {1.000000, 0.000000, 0.352941}, {1.000000, 0.000000, 0.372549}, {1.000000, 0.000000, 0.392157}, {1.000000, 0.000000, 0.411765}, {1.000000, 0.000000, 0.431373}, {1.000000, 0.000000, 0.450980}, {1.000000, 0.000000, 0.470588}, {1.000000, 0.000000, 0.490196}, {1.000000, 0.000000, 0.509804}, {1.000000, 0.000000, 0.529412}, {1.000000, 0.000000, 0.549020}, {1.000000, 0.000000, 0.568627}, {1.000000, 0.000000, 0.588235}, {1.000000, 0.000000, 0.607843}, {1.000000, 0.000000, 0.627451}, {1.000000, 0.000000, 0.647059}, {1.000000, 0.000000, 0.666667}, {1.000000, 0.000000, 0.686275}, {1.000000, 0.000000, 0.705882}, {1.000000, 0.000000, 0.725490}, {1.000000, 0.000000, 0.745098}, {1.000000, 0.000000, 0.764706}, {1.000000, 0.000000, 0.784314}, {1.000000, 0.000000, 0.803922}, {1.000000, 0.000000, 0.823529}, {1.000000, 0.000000, 0.843137}, {1.000000, 0.000000, 0.862745}, {1.000000, 0.000000, 0.882353}, {1.000000, 0.000000, 0.901961}, {1.000000, 0.000000, 0.921569}, {1.000000, 0.000000, 0.941176}, {1.000000, 0.000000, 0.960784}, {1.000000, 0.000000, 0.980392}, {1.000000, 0.000000, 1.000000} }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/BlackBody.h000066400000000000000000000235611314736454600254200ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: HotMetal.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar, 20 nov 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_blackBody_h_ #define _lut_blackBody_h_ static const int BlackBody[256*3]= { 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 189, 192, 195, 198, 201, 204, 207, 210, 213, 216, 219, 222, 225, 228, 231, 234, 237, 240, 243, 246, 249, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 189, 192, 195, 198, 201, 204, 207, 210, 213, 216, 219, 222, 225, 228, 231, 234, 237, 240, 243, 246, 249, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126, 129, 132, 135, 138, 141, 144, 147, 150, 153, 156, 159, 162, 165, 168, 171, 174, 177, 180, 183, 186, 189, 192, 195, 198, 201, 204, 207, 210, 213, 216, 219, 222, 225, 228, 231, 234, 237, 240, 243, 246, 249, 252, 255 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/Cardiac.h000066400000000000000000000236221314736454600251120ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: HotMetal.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar, 20 nov 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_cardiac_h_ #define _lut_cardiac_h_ static const int Cardiac[256*3]= { 73, 72, 70, 69, 68, 66, 65, 63, 62, 61, 59, 58, 57, 55, 54, 52, 51, 48, 45, 41, 38, 35, 32, 29, 26, 22, 19, 16, 13, 10, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 21, 22, 22, 23, 24, 25, 25, 26, 27, 28, 28, 29, 30, 31, 31, 32, 36, 39, 43, 47, 50, 54, 57, 61, 65, 68, 72, 76, 79, 83, 86, 90, 95, 99, 104, 109, 113, 118, 123, 128, 132, 137, 142, 146, 151, 156, 160, 165, 169, 172, 176, 179, 183, 186, 190, 194, 197, 201, 204, 208, 211, 215, 218, 222, 224, 226, 228, 230, 232, 234, 236, 239, 241, 243, 245, 247, 249, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 245, 240, 236, 231, 226, 221, 216, 211, 206, 201, 197, 192, 187, 182, 177, 171, 164, 158, 151, 145, 138, 132, 125, 119, 112, 106, 99, 93, 86, 73, 193, 195, 197, 198, 200, 202, 204, 206, 208, 209, 211, 213, 215, 217, 218, 220, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 216, 211, 205, 200, 194, 188, 183, 177, 171, 166, 160, 155, 149, 143, 138, 132, 128, 125, 121, 118, 114, 110, 107, 103, 99, 96, 92, 89, 85, 81, 78, 74, 70, 67, 63, 60, 56, 52, 49, 45, 41, 38, 34, 31, 27, 23, 20, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 6, 8, 10, 12, 14, 17, 19, 21, 23, 25, 27, 29, 31, 33, 37, 41, 45, 50, 54, 58, 62, 66, 70, 74, 78, 83, 87, 91, 95, 99, 103, 107, 111, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165, 170, 174, 179, 184, 188, 193, 197, 202, 207, 211, 216, 221, 225, 230, 234, 239, 238, 237, 236, 235, 234, 233, 232, 231, 229, 228, 227, 226, 225, 224, 223, 222, 220, 218, 217, 215, 213, 211, 209, 208, 206, 204, 202, 200, 198, 197, 193, 3, 12, 20, 29, 37, 46, 54, 63, 71, 80, 88, 97, 105, 114, 122, 131, 139, 146, 154, 161, 168, 175, 183, 190, 197, 204, 212, 219, 226, 233, 241, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 252, 250, 249, 247, 246, 244, 243, 241, 239, 238, 236, 235, 233, 232, 230, 229, 227, 226, 224, 223, 221, 220, 218, 217, 215, 214, 212, 211, 209, 208, 206, 203, 201, 198, 196, 193, 191, 188, 186, 183, 180, 178, 175, 173, 170, 168, 165, 163, 161, 159, 157, 155, 153, 151, 149, 146, 144, 142, 140, 138, 136, 134, 132, 127, 123, 118, 113, 109, 104, 99, 95, 90, 85, 80, 76, 71, 66, 62, 57, 53, 50, 46, 43, 39, 36, 32, 29, 25, 21, 18, 14, 11, 7, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 11, 11, 12, 11, 11, 10, 10, 9, 9, 8, 8, 7, 6, 6, 5, 5, 4, 3 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/Flow.h000066400000000000000000000234251314736454600244740ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: Flow.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar 20 de nov de 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_Flow_h_ #define _lut_Flow_h_ static const int Flow[3*256]= { 32, 32, 32, 32, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29, 29, 29, 29, 29, 28, 28, 28, 28, 28, 27, 27, 27, 27, 27, 26, 26, 26, 26, 26, 25, 25, 25, 25, 25, 24, 24, 24, 24, 24, 23, 23, 23, 23, 23, 22, 22, 22, 22, 22, 21, 21, 21, 21, 21, 20, 20, 20, 20, 19, 19, 19, 19, 18, 18, 18, 17, 17, 17, 16, 16, 16, 16, 15, 15, 15, 14, 14, 14, 13, 13, 13, 13, 12, 12, 12, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 130, 134, 138, 142, 146, 150, 154, 158, 162, 166, 170, 174, 178, 182, 186, 190, 194, 198, 202, 206, 210, 215, 219, 223, 227, 231, 235, 239, 243, 247, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 200, 197, 194, 191, 188, 185, 182, 179, 176, 173, 170, 167, 164, 161, 158, 155, 152, 149, 146, 143, 140, 137, 134, 131, 128, 125, 122, 119, 116, 113, 110, 107, 104, 101, 98, 95, 92, 89, 86, 83, 80, 77, 74, 71, 68, 65, 62, 59, 56, 53, 50, 47, 44, 41, 38, 35, 32, 29, 26, 23, 20, 20, 20, 19, 19, 19, 19, 18, 18, 18, 17, 17, 17, 16, 16, 16, 16, 15, 15, 15, 14, 14, 14, 13, 13, 13, 13, 12, 12, 12, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 8, 8, 8, 7, 7, 7, 7, 6, 6, 6, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62, 66, 70, 74, 78, 82, 86, 90, 94, 98, 102, 106, 110, 114, 118, 122, 126, 130, 134, 138, 142, 146, 150, 154, 158, 162, 166, 170, 174, 178, 182, 186, 190, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 251, 247, 244, 240, 236, 232, 228, 225, 221, 217, 213, 209, 206, 202, 198, 194, 190, 186, 183, 179, 175, 171, 167, 164, 160, 156, 152, 148, 145, 141, 137, 133, 129, 126, 122, 118, 114, 110, 107, 103, 99, 95, 91, 88, 84, 80, 76, 72, 69, 65, 61, 57, 53, 49, 46, 42, 38, 34, 30, 27, 23, 19, 15, 11, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128, 136, 144, 152, 160, 168, 176, 184, 192, 200, 208, 216, 224, 232, 240, 248, 255 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/GEColor.h000066400000000000000000000240241314736454600250530ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: GEColor.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar 20 de nov de 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_GEColor_h_ #define _lut_GEColor_h_ static const int GEColor[3*256]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 128, 126, 124, 122, 120, 118, 116, 114, 112, 110, 108, 106, 104, 102, 100, 98, 96, 94, 92, 90, 88, 86, 84, 82, 80, 78, 76, 74, 72, 70, 68, 66, 64, 63, 61, 59, 57, 55, 53, 51, 49, 47, 45, 43, 41, 39, 37, 35, 33, 31, 29, 27, 25, 23, 21, 19, 17, 15, 13, 11, 9, 7, 5, 3, 1, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 255, 0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 252, 248, 244, 240, 236, 232, 228, 224, 220, 216, 212, 208, 204, 200, 196, 192, 188, 184, 180, 176, 172, 168, 164, 160, 156, 152, 148, 144, 140, 136, 132, 128, 124, 120, 116, 112, 108, 104, 100, 96, 92, 88, 84, 80, 76, 72, 68, 64, 60, 56, 52, 48, 44, 40, 36, 32, 28, 24, 20, 16, 12, 8, 4, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 85, 89, 93, 97, 101, 105, 109, 113, 117, 121, 125, 129, 133, 137, 141, 145, 149, 153, 157, 161, 165, 170, 174, 178, 182, 186, 190, 194, 198, 202, 206, 210, 214, 218, 222, 226, 230, 234, 238, 242, 246, 250, 255 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/GrayRainbow.h000066400000000000000000000242131314736454600260050ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: HotMetal.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar, 20 nov 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_grayRainbow_h_ #define _lut_grayRainbow_h_ static const int GrayRainbow[256*3]= { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 175, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 95, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 15, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 0, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 0, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 0, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 0, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 0, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 35, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 115, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 195, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 255, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 255, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 255, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 145, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 225, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 255, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 255, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 255, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 255, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 255, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 255, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 235, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 155, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 75, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 255, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 255, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 255, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 255, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 255, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 255, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 205, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 125, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 45, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 0, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 0, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 0, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 0, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 0, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/HotGreen.h000066400000000000000000000233541314736454600253010ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: HotMetal.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar, 20 nov 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_hotGreen_h_ #define _lut_hotGreen_h_ static const int HotGreen[256*3]= { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 5, 7, 8, 10, 12, 14, 16, 17, 19, 21, 23, 24, 26, 28, 30, 32, 33, 35, 37, 39, 40, 42, 44, 46, 48, 49, 51, 53, 55, 56, 58, 60, 62, 64, 65, 67, 69, 71, 72, 74, 76, 78, 80, 81, 83, 85, 87, 88, 90, 92, 94, 96, 97, 99, 101, 103, 104, 106, 108, 110, 112, 113, 115, 117, 119, 120, 122, 124, 126, 128, 129, 131, 133, 135, 136, 138, 140, 142, 144, 145, 147, 149, 151, 152, 154, 156, 158, 160, 161, 163, 165, 167, 168, 170, 172, 174, 176, 177, 179, 181, 183, 184, 186, 188, 190, 192, 193, 195, 197, 199, 200, 202, 204, 206, 208, 209, 211, 213, 215, 216, 218, 220, 222, 224, 225, 227, 229, 231, 232, 234, 236, 238, 240, 241, 243, 245, 247, 248, 250, 252, 254, 0, 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16, 18, 19, 21, 22, 24, 25, 27, 28, 30, 31, 33, 34, 36, 37, 39, 40, 42, 43, 45, 46, 48, 49, 51, 52, 54, 55, 57, 58, 60, 61, 63, 64, 66, 67, 69, 70, 72, 73, 75, 76, 78, 79, 81, 82, 84, 85, 87, 88, 90, 91, 93, 94, 96, 97, 99, 100, 102, 103, 105, 106, 108, 109, 111, 112, 114, 115, 117, 118, 120, 121, 123, 124, 126, 127, 129, 130, 132, 133, 135, 136, 138, 139, 141, 142, 144, 145, 147, 148, 150, 151, 153, 154, 156, 157, 159, 160, 162, 163, 165, 166, 168, 169, 171, 172, 174, 175, 177, 178, 180, 181, 183, 184, 186, 187, 189, 190, 192, 193, 195, 196, 198, 199, 201, 202, 204, 205, 207, 208, 210, 211, 213, 214, 216, 217, 219, 220, 222, 223, 225, 226, 228, 229, 231, 232, 234, 235, 237, 238, 240, 241, 243, 244, 246, 247, 249, 250, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 10, 13, 16, 20, 23, 26, 30, 33, 37, 40, 43, 47, 50, 53, 57, 60, 64, 67, 70, 74, 77, 80, 84, 87, 90, 94, 97, 101, 104, 107, 111, 114, 117, 121, 124, 128, 131, 134, 138, 141, 144, 148, 151, 154, 158, 161, 165, 168, 171, 175, 178, 181, 185, 188, 192, 195, 198, 202, 205, 208, 212, 215, 218, 222, 225, 229, 232, 235, 239, 242, 245, 249, 252 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/HotIron.h000066400000000000000000000233231314736454600251440ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: HotMetal.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar, 20 nov 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_hotIron_h_ #define _lut_hotIron_h_ static const int HotIron[256*3]= { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 56, 60, 64, 68, 72, 76, 80, 84, 88, 92, 96, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 148, 152, 156, 160, 164, 168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 208, 212, 216, 220, 224, 228, 232, 236, 240, 244, 248, 252, 255 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/HotMetal.h000066400000000000000000000233161314736454600253010ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: HotMetal.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar 20 de nov de 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_HotMetal_h_ #define _lut_HotMetal_h_ static const int HotMetal[256*3]= { 0, 1, 2, 4, 5, 7, 8, 9, 11, 12, 14, 15, 16, 18, 19, 21, 22, 23, 25, 26, 28, 29, 30, 32, 33, 35, 36, 37, 39, 40, 42, 43, 44, 46, 47, 49, 50, 51, 53, 54, 56, 57, 58, 60, 61, 63, 64, 65, 67, 68, 70, 71, 72, 74, 75, 77, 78, 79, 81, 82, 84, 85, 86, 88, 89, 91, 92, 93, 95, 96, 98, 99, 100, 102, 103, 105, 106, 107, 109, 110, 112, 113, 114, 116, 117, 119, 120, 121, 123, 124, 126, 127, 128, 130, 131, 133, 134, 135, 137, 138, 140, 141, 142, 144, 145, 147, 148, 149, 151, 152, 154, 155, 156, 158, 159, 161, 162, 163, 165, 166, 168, 169, 170, 172, 173, 175, 176, 177, 179, 180, 182, 183, 184, 186, 187, 189, 190, 191, 193, 194, 196, 197, 198, 200, 201, 203, 204, 205, 207, 208, 210, 211, 212, 214, 215, 217, 218, 219, 221, 222, 224, 225, 226, 228, 229, 231, 232, 233, 235, 236, 238, 239, 240, 242, 243, 245, 246, 247, 249, 250, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5, 8, 11, 14, 16, 19, 22, 25, 28, 30, 33, 36, 39, 42, 44, 47, 50, 53, 56, 58, 61, 64, 67, 70, 72, 75, 78, 81, 84, 86, 89, 92, 95, 98, 100, 103, 106, 109, 112, 114, 117, 120, 123, 126, 128, 131, 134, 137, 140, 142, 145, 148, 151, 154, 156, 159, 162, 165, 168, 170, 173, 176, 179, 182, 184, 187, 190, 193, 196, 198, 201, 204, 207, 210, 212, 215, 218, 221, 224, 226, 229, 232, 235, 238, 240, 243, 246, 249, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 7, 11, 15, 19, 23, 27, 31, 35, 39, 43, 47, 51, 55, 59, 63, 67, 71, 75, 79, 83, 87, 91, 95, 99, 103, 107, 111, 115, 119, 123, 127, 131, 135, 139, 143, 147, 151, 155, 159, 163, 167, 171, 175, 179, 183, 187, 191, 195, 199, 203, 207, 211, 215, 219, 223, 227, 231, 235, 239, 243, 247, 251 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/LONI.h000066400000000000000000000202231314736454600243170ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: LONI.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar 20 de nov de 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_LONI_h_ #define _lut_LONI_h_ static const float LONI[203][3] = { {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0, 1.0000}, {0, 0.0244, 1.0000}, {0, 0.0488, 1.0000}, {0, 0.0732, 1.0000}, {0, 0.0976, 1.0000}, {0, 0.1220, 1.0000}, {0, 0.1463, 1.0000}, {0, 0.1707, 1.0000}, {0, 0.1951, 1.0000}, {0, 0.2195, 1.0000}, {0, 0.2439, 1.0000}, {0, 0.2683, 1.0000}, {0, 0.2927, 1.0000}, {0, 0.3171, 1.0000}, {0, 0.3415, 1.0000}, {0, 0.3659, 1.0000}, {0, 0.3902, 1.0000}, {0, 0.4146, 1.0000}, {0, 0.4390, 1.0000}, {0, 0.4634, 1.0000}, {0, 0.4878, 1.0000}, {0, 0.5122, 1.0000}, {0, 0.5366, 1.0000}, {0, 0.5610, 1.0000}, {0, 0.5854, 1.0000}, {0, 0.6098, 1.0000}, {0, 0.6341, 1.0000}, {0, 0.6585, 1.0000}, {0, 0.6829, 1.0000}, {0, 0.7073, 1.0000}, {0, 0.7317, 1.0000}, {0, 0.7561, 1.0000}, {0, 0.7805, 1.0000}, {0, 0.8049, 1.0000}, {0, 0.8293, 1.0000}, {0, 0.8537, 1.0000}, {0, 0.8780, 1.0000}, {0, 0.9024, 1.0000}, {0, 0.9268, 1.0000}, {0, 0.9512, 1.0000}, {0, 0.9756, 1.0000}, {0, 1.0000, 1.0000}, {0, 1.0000, 0.9756}, {0, 1.0000, 0.9512}, {0, 1.0000, 0.9268}, {0, 1.0000, 0.9024}, {0, 1.0000, 0.8780}, {0, 1.0000, 0.8537}, {0, 1.0000, 0.8293}, {0, 1.0000, 0.8049}, {0, 1.0000, 0.7805}, {0, 1.0000, 0.7561}, {0, 1.0000, 0.7317}, {0, 1.0000, 0.7073}, {0, 1.0000, 0.6829}, {0, 1.0000, 0.6585}, {0, 1.0000, 0.6341}, {0, 1.0000, 0.6098}, {0, 1.0000, 0.5854}, {0, 1.0000, 0.5610}, {0, 1.0000, 0.5366}, {0, 1.0000, 0.5122}, {0, 1.0000, 0.4878}, {0, 1.0000, 0.4634}, {0, 1.0000, 0.4390}, {0, 1.0000, 0.4146}, {0, 1.0000, 0.3902}, {0, 1.0000, 0.3659}, {0, 1.0000, 0.3415}, {0, 1.0000, 0.3171}, {0, 1.0000, 0.2927}, {0, 1.0000, 0.2683}, {0, 1.0000, 0.2439}, {0, 1.0000, 0.2195}, {0, 1.0000, 0.1951}, {0, 1.0000, 0.1707}, {0, 1.0000, 0.1463}, {0, 1.0000, 0.1220}, {0, 1.0000, 0.0976}, {0, 1.0000, 0.0732}, {0, 1.0000, 0.0488}, {0, 1.0000, 0.0244}, {0, 1.0000, 0}, {0.0244, 1.0000, 0}, {0.0488, 1.0000, 0}, {0.0732, 1.0000, 0}, {0.0976, 1.0000, 0}, {0.1220, 1.0000, 0}, {0.1463, 1.0000, 0}, {0.1707, 1.0000, 0}, {0.1951, 1.0000, 0}, {0.2195, 1.0000, 0}, {0.2439, 1.0000, 0}, {0.2683, 1.0000, 0}, {0.2927, 1.0000, 0}, {0.3171, 1.0000, 0}, {0.3415, 1.0000, 0}, {0.3659, 1.0000, 0}, {0.3902, 1.0000, 0}, {0.4146, 1.0000, 0}, {0.4390, 1.0000, 0}, {0.4634, 1.0000, 0}, {0.4878, 1.0000, 0}, {0.5122, 1.0000, 0}, {0.5366, 1.0000, 0}, {0.5610, 1.0000, 0}, {0.5854, 1.0000, 0}, {0.6098, 1.0000, 0}, {0.6341, 1.0000, 0}, {0.6585, 1.0000, 0}, {0.6829, 1.0000, 0}, {0.7073, 1.0000, 0}, {0.7317, 1.0000, 0}, {0.7561, 1.0000, 0}, {0.7805, 1.0000, 0}, {0.8049, 1.0000, 0}, {0.8293, 1.0000, 0}, {0.8537, 1.0000, 0}, {0.8780, 1.0000, 0}, {0.9024, 1.0000, 0}, {0.9268, 1.0000, 0}, {0.9512, 1.0000, 0}, {0.9756, 1.0000, 0}, {1.0000, 1.0000, 0}, {1.0000, 0.9756, 0}, {1.0000, 0.9512, 0}, {1.0000, 0.9268, 0}, {1.0000, 0.9024, 0}, {1.0000, 0.8780, 0}, {1.0000, 0.8537, 0}, {1.0000, 0.8293, 0}, {1.0000, 0.8049, 0}, {1.0000, 0.7805, 0}, {1.0000, 0.7561, 0}, {1.0000, 0.7317, 0}, {1.0000, 0.7073, 0}, {1.0000, 0.6829, 0}, {1.0000, 0.6585, 0}, {1.0000, 0.6341, 0}, {1.0000, 0.6098, 0}, {1.0000, 0.5854, 0}, {1.0000, 0.5610, 0}, {1.0000, 0.5366, 0}, {1.0000, 0.5122, 0}, {1.0000, 0.4878, 0}, {1.0000, 0.4634, 0}, {1.0000, 0.4390, 0}, {1.0000, 0.4146, 0}, {1.0000, 0.3902, 0}, {1.0000, 0.3659, 0}, {1.0000, 0.3415, 0}, {1.0000, 0.3171, 0}, {1.0000, 0.2927, 0}, {1.0000, 0.2683, 0}, {1.0000, 0.2439, 0}, {1.0000, 0.2195, 0}, {1.0000, 0.1951, 0}, {1.0000, 0.1707, 0}, {1.0000, 0.1463, 0}, {1.0000, 0.1220, 0}, {1.0000, 0.0976, 0}, {1.0000, 0.0732, 0}, {1.0000, 0.0488, 0}, {1.0000, 0.0244, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0}, {1.0000, 0, 0} }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/LONI2.h000066400000000000000000000126331314736454600244070ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: LONI2.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar 20 de nov de 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_LONI2_h_ #define _lut_LONI2_h_ static const float LONI2[120][3] = { {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.000000, 1.000000}, {0.000000, 0.111111, 1.000000}, {0.000000, 0.222222, 1.000000}, {0.000000, 0.333333, 1.000000}, {0.000000, 0.444444, 1.000000}, {0.000000, 0.555556, 1.000000}, {0.000000, 0.666667, 1.000000}, {0.000000, 0.777778, 1.000000}, {0.000000, 0.888889, 1.000000}, {0.000000, 1.000000, 1.000000}, {0.000000, 1.000000, 1.000000}, {0.000000, 1.000000, 0.888889}, {0.000000, 1.000000, 0.777778}, {0.000000, 1.000000, 0.666667}, {0.000000, 1.000000, 0.555556}, {0.000000, 1.000000, 0.444444}, {0.000000, 1.000000, 0.333333}, {0.000000, 1.000000, 0.222222}, {0.000000, 1.000000, 0.111111}, {0.000000, 1.000000, 0.000000}, {0.000000, 1.000000, 0.000000}, {0.111111, 1.000000, 0.000000}, {0.222222, 1.000000, 0.000000}, {0.333333, 1.000000, 0.000000}, {0.444444, 1.000000, 0.000000}, {0.555556, 1.000000, 0.000000}, {0.666667, 1.000000, 0.000000}, {0.777778, 1.000000, 0.000000}, {0.888889, 1.000000, 0.000000}, {1.000000, 1.000000, 0.000000}, {1.000000, 1.000000, 0.000000}, {1.000000, 0.947368, 0.000000}, {1.000000, 0.894737, 0.000000}, {1.000000, 0.842105, 0.000000}, {1.000000, 0.789474, 0.000000}, {1.000000, 0.736842, 0.000000}, {1.000000, 0.684211, 0.000000}, {1.000000, 0.631579, 0.000000}, {1.000000, 0.578947, 0.000000}, {1.000000, 0.526316, 0.000000}, {1.000000, 0.473684, 0.000000}, {1.000000, 0.421053, 0.000000}, {1.000000, 0.368421, 0.000000}, {1.000000, 0.315789, 0.000000}, {1.000000, 0.263158, 0.000000}, {1.000000, 0.210526, 0.000000}, {1.000000, 0.157895, 0.000000}, {1.000000, 0.105263, 0.000000}, {1.000000, 0.052632, 0.000000}, {1.000000, 0.000000, 0.000000}, {1.000000, 0.000000, 0.000000}, {1.000000, 0.000000, 0.052632}, {1.000000, 0.000000, 0.105263}, {1.000000, 0.000000, 0.157895}, {1.000000, 0.000000, 0.210526}, {1.000000, 0.000000, 0.263158}, {1.000000, 0.000000, 0.315789}, {1.000000, 0.000000, 0.368421}, {1.000000, 0.000000, 0.421053}, {1.000000, 0.000000, 0.473684}, {1.000000, 0.000000, 0.526316}, {1.000000, 0.000000, 0.578947}, {1.000000, 0.000000, 0.631579}, {1.000000, 0.000000, 0.684211}, {1.000000, 0.000000, 0.736842}, {1.000000, 0.000000, 0.789474}, {1.000000, 0.000000, 0.842105}, {1.000000, 0.000000, 0.894737}, {1.000000, 0.000000, 0.947368}, {1.000000, 0.000000, 1.000000} }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/PERFUSION.h000066400000000000000000000221151314736454600251320ustar00rootroot00000000000000#ifndef _PERFUSION_H_ #define _PERFUSION_H_ static const int PERFUSION[3*256]= { // Red 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 8, 10, 14, 16, 18, 22, 24, 26, 28, 32, 34, 36, 40, 42, 44, 48, 50, 52, 54, 58, 60, 62, 66, 68, 70, 74, 76, 78, 80, 84, 86, 88, 92, 94, 96, 98, 102, 104, 106, 110, 112, 114, 118, 120, 122, 124, 128, 130, 132, 136, 138, 140, 144, 146, 148, 150, 154, 156, 158, 162, 164, 166, 168, 172, 174, 176, 180, 182, 184, 188, 190, 192, 194, 198, 200, 202, 206, 208, 210, 214, 216, 218, 220, 224, 226, 228, 232, 234, 236, 240, 242, 244, 246, 250, 252, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, // Green 0, 6, 8, 10, 12, 14, 14, 16, 18, 20, 22, 22, 24, 26, 28, 30, 30, 32, 34, 36, 38, 38, 40, 42, 44, 46, 46, 48, 50, 52, 54, 54, 56, 58, 60, 62, 62, 64, 66, 68, 70, 70, 72, 74, 76, 78, 78, 76, 78, 76, 76, 74, 74, 72, 72, 70, 68, 68, 66, 66, 64, 64, 62, 60, 60, 58, 58, 56, 56, 54, 52, 52, 50, 50, 48, 48, 46, 46, 44, 42, 42, 40, 40, 38, 38, 36, 34, 34, 32, 32, 30, 30, 28, 26, 26, 24, 24, 22, 22, 20, 18, 18, 16, 16, 14, 14, 12, 12, 10, 8, 8, 6, 6, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 4, 6, 10, 12, 14, 18, 20, 22, 26, 28, 30, 34, 36, 38, 42, 44, 46, 50, 52, 54, 58, 60, 62, 66, 68, 70, 74, 76, 78, 82, 84, 86, 90, 92, 94, 98, 100, 102, 106, 108, 110, 114, 116, 118, 122, 124, 126, 130, 132, 134, 138, 140, 142, 146, 148, 150, 154, 156, 158, 162, 164, 166, 170, 172, 174, 178, 180, 182, 186, 188, 190, 194, 196, 198, 202, 204, 206, 210, 212, 214, 218, 220, 222, 226, 228, 230, 234, 236, 238, 242, 244, 246, 250, 252, 254, //Blue 0, 6, 12, 16, 22, 26, 32, 36, 42, 46, 52, 56, 62, 68, 72, 78, 82, 88, 92, 98, 102, 108, 112, 118, 122, 128, 134, 138, 144, 148, 154, 158, 164, 168, 174, 178, 184, 188, 194, 200, 204, 210, 214, 220, 224, 230, 234, 240, 244, 250, 252, 250, 246, 244, 240, 238, 234, 232, 230, 226, 224, 220, 218, 214, 212, 210, 206, 204, 200, 198, 194, 192, 190, 186, 184, 180, 178, 174, 172, 170, 166, 164, 160, 158, 154, 152, 150, 146, 144, 140, 138, 134, 132, 130, 126, 124, 120, 118, 114, 112, 110, 106, 104, 100, 98, 94, 92, 90, 86, 84, 80, 78, 74, 72, 70, 66, 64, 60, 58, 54, 52, 50, 46, 44, 40, 38, 34, 32, 30, 26, 24, 20, 18, 14, 12, 10, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 28, 42, 56, 68, 82, 96, 110, 124, 136, 150, 164, 178, 190, }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/Spectrum.h000066400000000000000000000235711314736454600253710ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: Spectrum.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar 20 de nov de 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_Spectrum_h_ #define _lut_Spectrum_h_ static const int Spectrum[256*3]= { 255, 250, 245, 240, 235, 230, 225, 220, 215, 210, 205, 200, 195, 190, 185, 180, 175, 170, 165, 160, 155, 150, 145, 140, 135, 130, 125, 120, 115, 110, 105, 100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225, 230, 235, 240, 245, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 140, 145, 150, 155, 160, 165, 170, 175, 180, 185, 190, 195, 200, 205, 210, 215, 220, 225, 230, 235, 240, 245, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 245, 240, 235, 230, 225, 220, 215, 210, 205, 200, 195, 190, 185, 180, 175, 170, 165, 160, 155, 150, 145, 140, 135, 130, 125, 120, 115, 110, 105, 100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 245, 240, 235, 230, 225, 220, 215, 210, 205, 200, 195, 190, 185, 180, 175, 170, 165, 160, 155, 150, 145, 140, 135, 130, 125, 120, 115, 110, 105, 100, 95, 90, 85, 80, 75, 70, 65, 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/Stern.h000066400000000000000000000242661314736454600246640ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: HotMetal.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar, 20 nov 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_stern_h_ #define _lut_stern_h_ static const int Stern[256*3]= { 0, 18, 36, 54, 72, 90, 108, 127, 145, 163, 181, 199, 217, 235, 254, 249, 244, 239, 234, 229, 223, 218, 213, 208, 203, 197, 192, 187, 182, 177, 172, 166, 161, 156, 151, 146, 140, 135, 130, 125, 120, 115, 109, 104, 99, 94, 89, 83, 78, 73, 68, 63, 58, 52, 47, 42, 37, 32, 26, 21, 16, 11, 6, 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, 157, 159, 161, 163, 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, 185, 187, 189, 191, 193, 195, 197, 199, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 247, 249, 251, 253, 255, 251, 247, 243, 238, 234, 230, 226, 221, 217, 213, 209, 204, 200, 196, 192, 187, 183, 179, 175, 170, 166, 162, 158, 153, 149, 145, 141, 136, 132, 128, 124, 119, 115, 111, 107, 102, 98, 94, 90, 85, 81, 77, 73, 68, 64, 60, 56, 51, 47, 43, 39, 34, 30, 26, 22, 17, 13, 9, 5, 0, 3, 7, 11, 15, 19, 22, 26, 30, 34, 38, 41, 45, 49, 53, 57, 60, 64, 68, 72, 76, 79, 83, 87, 91, 95, 98, 102, 106, 110, 114, 117, 121, 125, 129, 133, 137, 140, 144, 148, 152, 156, 159, 163, 167, 171, 175, 178, 182, 186, 190, 194, 197, 201, 205, 209, 213, 216, 220, 224, 228, 232, 235, 239, 243, 247, 251, 255 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/VRBones.h000066400000000000000000000240471314736454600251040ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: HotMetal.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar, 20 nov 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_vrBones_h_ #define _lut_vrBones_h_ static const int VRBones[256*3]= { 0, 1, 3, 5, 7, 8, 10, 12, 14, 15, 17, 19, 21, 22, 24, 26, 28, 29, 31, 33, 35, 37, 38, 40, 42, 44, 45, 47, 49, 51, 52, 54, 56, 58, 59, 61, 63, 65, 67, 68, 70, 72, 74, 75, 77, 79, 81, 82, 84, 86, 88, 89, 91, 93, 95, 96, 98, 100, 102, 104, 105, 107, 109, 111, 112, 114, 116, 118, 119, 121, 123, 125, 126, 128, 130, 132, 134, 135, 137, 139, 141, 142, 144, 146, 148, 149, 151, 153, 155, 156, 158, 160, 162, 164, 165, 167, 169, 171, 172, 174, 176, 178, 179, 181, 183, 185, 186, 188, 190, 192, 193, 195, 197, 199, 201, 202, 204, 206, 208, 209, 211, 213, 215, 216, 217, 217, 218, 218, 219, 219, 220, 220, 221, 221, 222, 222, 223, 223, 224, 224, 225, 225, 226, 226, 227, 227, 228, 228, 229, 229, 230, 230, 231, 231, 232, 232, 233, 233, 234, 234, 235, 235, 236, 236, 237, 237, 238, 238, 239, 239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 28, 29, 30, 32, 33, 34, 35, 37, 38, 39, 40, 41, 43, 44, 45, 46, 48, 49, 50, 51, 53, 54, 55, 56, 57, 59, 60, 61, 62, 64, 65, 66, 67, 69, 70, 71, 72, 74, 75, 76, 77, 78, 80, 81, 82, 83, 85, 86, 87, 88, 90, 91, 92, 93, 94, 96, 97, 98, 99, 101, 102, 103, 104, 106, 107, 108, 109, 111, 112, 113, 114, 115, 117, 118, 119, 120, 122, 123, 124, 125, 127, 128, 129, 130, 131, 133, 134, 135, 136, 138, 139, 140, 141, 143, 144, 145, 146, 148, 149, 150, 151, 152, 153, 153, 154, 154, 155, 156, 156, 157, 158, 158, 159, 160, 160, 161, 162, 162, 163, 164, 164, 165, 166, 166, 167, 168, 168, 169, 170, 170, 171, 172, 172, 173, 174, 174, 175, 175, 176, 177, 177, 178, 179, 179, 180, 181, 181, 182, 183, 183, 184, 185, 185, 186, 187, 187, 188, 189, 189, 190, 191, 191, 192, 193, 193, 194, 195, 195, 196, 196, 197, 198, 198, 199, 200, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 251, 252, 252, 252, 253, 253, 253, 254, 254, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 31, 31, 31, 32, 32, 32, 32, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 36, 36, 36, 36, 36, 37, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, 47, 48, 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 50, 51, 51, 51, 51, 51, 52, 52, 52, 53, 53, 53, 54, 54, 54, 55, 55, 55, 56, 56, 56, 56, 57, 57, 57, 58, 58, 58, 59, 59, 59, 60, 60, 60, 61, 61, 61, 62, 62, 62, 63, 63, 63, 64, 64, 64, 65, 65, 65, 66, 66, 66, 67, 84, 101, 118, 135, 152, 169, 186, 203, 220, 237 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/VRMusclesBones.h000066400000000000000000000240431314736454600264340ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: HotMetal.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar, 20 nov 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_vrMusclesBones_h_ #define _lut_vrMusclesBones_h_ static const int VRMusclesBones[256*3]= { 0, 2, 5, 8, 10, 13, 16, 18, 21, 24, 26, 29, 32, 34, 37, 40, 42, 45, 48, 51, 53, 56, 59, 61, 64, 67, 69, 72, 75, 77, 80, 83, 85, 88, 91, 93, 96, 99, 102, 104, 107, 110, 112, 115, 118, 120, 123, 126, 128, 131, 134, 136, 139, 142, 144, 147, 150, 153, 155, 158, 161, 163, 166, 169, 171, 174, 177, 179, 182, 185, 187, 190, 193, 195, 198, 201, 204, 206, 209, 212, 214, 217, 220, 222, 225, 228, 230, 233, 236, 238, 241, 244, 246, 249, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 120, 123, 126, 129, 131, 134, 137, 140, 143, 146, 149, 152, 155, 158, 161, 164, 167, 170, 173, 176, 177, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 191, 192, 193, 194, 195, 197, 198, 199, 200, 201, 203, 204, 205, 206, 207, 209, 210, 211, 212, 213, 215, 216, 217, 218, 220, 221, 222, 223, 224, 226, 227, 228, 229, 230, 232, 233, 234, 235, 236, 238, 239, 240, 241, 241, 242, 242, 242, 242, 243, 243, 243, 243, 244, 244, 244, 244, 245, 245, 245, 245, 246, 246, 246, 246, 247, 247, 247, 247, 248, 248, 248, 248, 248, 249, 249, 249, 249, 250, 250, 250, 250, 251, 251, 251, 251, 252, 252, 252, 252, 253, 253, 253, 253, 254, 254, 254, 254, 0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 27, 27, 27, 27, 27, 27, 26, 26, 26, 25, 25, 25, 24, 24, 24, 23, 23, 22, 22, 22, 21, 21, 21, 20, 20, 20, 19, 19, 19, 18, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 14, 14, 14, 13, 13, 13, 12, 12, 11, 11, 11, 10, 10, 10, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 36, 36, 37, 37, 38, 38, 39, 43, 47, 51, 55, 58, 62, 66, 70, 74, 78, 82, 86, 90, 94, 98, 102, 105, 109, 113, 117, 121, 125, 129, 133, 137, 141, 145, 149, 153, 156, 160, 164, 168, 172, 176, 180, 184, 188, 192, 196, 200, 204, 207, 211, 215, 219, 223, 227, 231, 235, 239, 243, 247, 251 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/lut/VRRedVessels.h000066400000000000000000000232321314736454600261100ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: HotMetal.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2007-11-20 18:46:10 +0100 (mar, 20 nov 2007) $ Version: $Revision: 477 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _lut_vrRedVessels_h_ #define _lut_vrRedVessels_h_ static const int VRRedVessels[256*3]= { 0, 1, 2, 3, 5, 6, 7, 9, 10, 11, 12, 14, 15, 16, 18, 19, 20, 21, 23, 24, 25, 27, 28, 29, 30, 32, 33, 34, 36, 37, 38, 39, 41, 42, 43, 45, 46, 47, 49, 50, 51, 52, 54, 55, 56, 58, 59, 60, 61, 63, 64, 65, 67, 68, 69, 70, 72, 73, 74, 76, 77, 78, 79, 81, 82, 83, 85, 86, 87, 88, 90, 91, 92, 94, 95, 96, 98, 99, 100, 101, 103, 104, 105, 107, 108, 109, 110, 112, 113, 114, 116, 117, 118, 119, 121, 122, 123, 125, 126, 127, 128, 130, 131, 132, 134, 135, 136, 137, 139, 140, 141, 143, 144, 145, 147, 148, 149, 150, 152, 153, 154, 156, 157, 158, 159, 161, 162, 163, 165, 166, 167, 168, 170, 171, 172, 174, 175, 176, 177, 179, 180, 181, 183, 184, 185, 186, 188, 189, 190, 192, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 204, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 5, 6, 8, 10, 11, 13, 15, 16, 18, 20, 21, 23, 25, 26, 28, 30, 32, 33, 35, 37, 38, 40, 42, 43, 45, 47, 48, 50, 52, 53, 55, 57, 59, 60, 62, 64, 65, 67, 69, 70, 72, 74, 75, 77, 79, 80, 82, 84, 86, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 164, 170, 176, 182, 188, 194, 200, 206, 212, 218, 224, 230, 236, 242, 248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 57, 59, 61, 64, 66, 68, 70, 72, 75, 77, 79, 81, 84, 86, 88, 90, 92, 95, 97, 99, 101, 103, 106, 108, 110, 112, 114, 117, 119, 121, 123, 126, 128, 136, 144, 152, 159, 167, 175, 183, 191, 199, 207, 215, 223, 231, 239, 247 }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp000066400000000000000000000471751314736454600275650ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: vtkLookupTableManager.cpp $ Language: C++ Author: $Author: ntoussaint $ Date: $Date: 2008-05-20 18:57:09 +0200 (mar, 20 may 2008) $ Version: $Revision: 842 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include "vtkLookupTableManager.h" #include vtkStandardNewMacro(vtkLookupTableManager); #include "lut/BlackBody.h" #include "lut/Cardiac.h" #include "lut/VRBones.h" #include "lut/VRMusclesBones.h" #include "lut/VRRedVessels.h" #include "lut/GrayRainbow.h" #include "lut/Stern.h" #include "lut/Spectrum.h" #include "lut/HotMetal.h" #include "lut/HotIron.h" #include "lut/HotGreen.h" #include "lut/GEColor.h" #include "lut/PERFUSION.h" #include "lut/Flow.h" #include "lut/LONI.h" #include "lut/LONI2.h" #include "lut/Asymmetry.h" #include #include #include vtkLookupTableManager::vtkLookupTableManager() {} vtkLookupTableManager::~vtkLookupTableManager() {} std::list vtkLookupTableManager::GetAvailableLookupTables() { std::string lutNames[]= {_Std("B/W"),_Std("B/W Inverse"),_Std("Barten"), _Std("Black Body"), _Std("Cardiac"), _Std("VR Bones"), _Std("VR Muscles & Bones"), _Std("VR Red Vessels"), _Std("Gray Rainbow"), _Std("Stern"), _Std("Spectrum"), _Std("Hot Metal"), _Std("Hot Iron"), _Std("Hot Green"), _Std("GE Color"), _Std("PERFusion"), _Std("PET"), _Std("Flow"), _Std("LONI"), _Std("LONI2"), _Std("Asymmetry"), _Std("P-Value"), _Std("ROI")}; std::list v_lutNames; for ( int i=0; i<22; i++) { v_lutNames.push_back(lutNames[i]); } return v_lutNames; } vtkLookupTable* vtkLookupTableManager::GetLookupTable(const int& n) { vtkLookupTable* lut = 0; switch (n) { case LUT_LINEAR: lut = vtkLookupTableManager::GetLinearLookupTable(); break; case LUT_LINEAR_INV: lut = vtkLookupTableManager::GetLinearInverseLookupTable(); break; case LUT_BARTEN: lut = vtkLookupTableManager::GetBartenLookupTable(); break; case LUT_BLACKBODY: lut = vtkLookupTableManager::GetBlackBodyLookupTable(); break; case LUT_CARDIAC: lut = vtkLookupTableManager::GetCardiacLookupTable(); break; case LUT_VRBONES: lut = vtkLookupTableManager::GetVRBonesLookupTable(); break; case LUT_VRMUSCLESBONES: lut = vtkLookupTableManager::GetVRMusclesBonesLookupTable(); break; case LUT_VRREDVESSELS: lut = vtkLookupTableManager::GetVRRedVesselsLookupTable(); break; case LUT_GRAYRAINBOW: lut = vtkLookupTableManager::GetGrayRainbowLookupTable(); break; case LUT_STERN: lut = vtkLookupTableManager::GetSternLookupTable(); break; case LUT_SPECTRUM: lut = vtkLookupTableManager::GetSpectrumLookupTable(); break; case LUT_HOTMETAL: lut = vtkLookupTableManager::GetHotMetalLookupTable(); break; case LUT_HOTIRON: lut = vtkLookupTableManager::GetHotIronLookupTable(); break; case LUT_HOTGREEN: lut = vtkLookupTableManager::GetHotGreenLookupTable(); break; case LUT_GECOLORS: lut = vtkLookupTableManager::GetGEColorLookupTable(); break; case LUT_PERFUSION: lut = vtkLookupTableManager::GetPERFusionLookupTable(); break; case LUT_PET: lut = vtkLookupTableManager::GetPETLookupTable(); break; case LUT_FLOW: lut = vtkLookupTableManager::GetFlowLookupTable(); break; case LUT_LONI: lut = vtkLookupTableManager::GetLONILookupTable(); break; case LUT_LONI2: lut = vtkLookupTableManager::GetLONI2LookupTable(); break; case LUT_ASYMETRY: lut = vtkLookupTableManager::GetAsymmetryLookupTable(); break; case LUT_PVALUE: lut = vtkLookupTableManager::GetPValueLookupTable(); break; case LUT_ROI: lut = vtkLookupTableManager::GetROILookupTable(); break; default: break; } return lut; } vtkLookupTable* vtkLookupTableManager::GetBartenLookupTable() { double tablaBarten[1024]; const double a = -1.3011877; const double b = -2.5840191E-2; const double c = 8.0242636E-2; const double d = -1.0320229E-1; const double e = 1.3646699E-1; const double f = 2.8745620E-2; const double g = -2.5468404E-2; const double h = -3.1978977E-3; const double k = 1.2992634E-4; const double m = 1.3635334E-3; double logaritmoJ; double minimo = 3.402823466E+38; double maximo = -3.402823466E+38; int indice; for ( int j=1; j<=1024; j++) { indice = j-1; logaritmoJ = std::log((double)j); tablaBarten[indice] = ( a + c * logaritmoJ + e * std::pow(logaritmoJ,(double)2.0f) + g * std::pow(logaritmoJ,(double)3.0f) + m * std::pow(logaritmoJ,(double)4.0f) ) / ( 1.0f + b * logaritmoJ + d * std::pow(logaritmoJ,(double)2.0f) + f * std::pow(logaritmoJ,(double)3.0f) + h * std::pow(logaritmoJ,(double)4.0f) + k * std::pow(logaritmoJ,(double)5.0f) ); if(maximo < tablaBarten[indice]) maximo = tablaBarten[indice]; if(minimo > tablaBarten[indice]) minimo = tablaBarten[indice]; } const int numeroValores = 1024; vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(numeroValores); lut->Build(); for (int i = 0; iSetTableValue(i, v, v, v, 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetLinearLookupTable() { const int numeroValores = 1024; vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(numeroValores); lut->Build(); for (int i = 0; i < numeroValores; i++) { double v = ((float) i) / 1024.0f; lut->SetTableValue(i, v, v, v, 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetLinearInverseLookupTable() { const int numeroValores = 1024; vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(numeroValores); lut->Build(); for (int i = 0; i < numeroValores; i++) { double v = ((float) numeroValores - i - 1) / 1024.0f; lut->SetTableValue(i, v, v, v, 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetSpectrumLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)Spectrum[i]/255.0, (double)Spectrum[256+i]/255.0, (double)Spectrum[256*2+i]/255.0, 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetHotMetalLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)HotMetal[i]/255.0, (double)HotMetal[256+i]/255.0, (double)HotMetal[256*2+i]/255.0, 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetGEColorLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)GEColor[i]/255.0, (double)GEColor[256+i]/255.0, (double)GEColor[256*2+i]/255.0, 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetFlowLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)Flow[i]/255.0, (double)Flow[256+i]/255.0, (double)Flow[256*2+i]/255.0, 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetLONILookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(203); lut->Build(); for ( int i=0; i<203; i++) { lut->SetTableValue(i, (double)LONI[i][0], (double)LONI[i][1], (double)LONI[i][2], 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetLONI2LookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(120); lut->Build(); for ( int i=0; i<120; i++) { lut->SetTableValue(i, (double)LONI2[i][0], (double)LONI2[i][1], (double)LONI2[i][2], 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetAsymmetryLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)AsymmetryLUT[i][0], (double)AsymmetryLUT[i][1], (double)AsymmetryLUT[i][2], 1.0); } return lut; } vtkLookupTable* vtkLookupTableManager::GetPValueLookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetTableRange (0, 1); lut->SetSaturationRange (1.0, 1.5); lut->SetHueRange (0.666, 0.8333); //lut->SetHueRange (0.666, 0.0); lut->SetValueRange (0.5, 1.0); lut->Build(); return lut; } // Nuevos vtkLookupTable* vtkLookupTableManager::GetBlackBodyLookupTable(void) { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)BlackBody[i]/255.0, (double)BlackBody[256+i]/255.0, (double)BlackBody[256*2+i]/255.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } return lut; } vtkLookupTable* vtkLookupTableManager::GetCardiacLookupTable(void) { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)Cardiac[i]/255.0, (double)Cardiac[256+i]/255.0, (double)Cardiac[256*2+i]/255.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } return lut; } vtkLookupTable* vtkLookupTableManager::GetVRBonesLookupTable(void) { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)VRBones[i]/255.0, (double)VRBones[256+i]/255.0, (double)VRBones[256*2+i]/255.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } return lut; } vtkLookupTable* vtkLookupTableManager::GetVRMusclesBonesLookupTable(void) { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)VRMusclesBones[i]/255.0, (double)VRMusclesBones[256+i]/255.0, (double)VRMusclesBones[256*2+i]/255.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } return lut; } vtkLookupTable* vtkLookupTableManager::GetVRRedVesselsLookupTable(void) { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)VRRedVessels[i]/255.0, (double)VRRedVessels[256+i]/255.0, (double)VRRedVessels[256*2+i]/255.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } return lut; } vtkLookupTable* vtkLookupTableManager::GetGrayRainbowLookupTable(void) { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)GrayRainbow[i]/255.0, (double)GrayRainbow[256+i]/255.0, (double)GrayRainbow[256*2+i]/255.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } return lut; } vtkLookupTable* vtkLookupTableManager::GetSternLookupTable(void) { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)Stern[i]/255.0, (double)Stern[256+i]/255.0, (double)Stern[256*2+i]/255.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } return lut; } vtkLookupTable* vtkLookupTableManager::GetHotIronLookupTable(void) { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)HotIron[i]/255.0, (double)HotIron[256+i]/255.0, (double)HotIron[256*2+i]/255.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } return lut; } vtkLookupTable* vtkLookupTableManager::GetHotGreenLookupTable(void) { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i=0; i<256; i++) { lut->SetTableValue(i, (double)HotGreen[i]/255.0, (double)HotGreen[256+i]/255.0, (double)HotGreen[256*2+i]/255.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } return lut; } vtkLookupTable* vtkLookupTableManager::GetPETLookupTable(void) { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); for ( int i = 0; i < 256; i++) { if (i < 128) { lut->SetTableValue(i, (double)(i << 1) / 255.0, 0.0, 0.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } else if (i < 192) { lut->SetTableValue(i, 1.0, (double) ( (i-128) << 2 ) / 255.0, 0.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } else { lut->SetTableValue(i, 1.0, 1.0, (double) ( (i-192) << 2 ) / 255.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } } return lut; } vtkLookupTable* vtkLookupTableManager::GetPERFusionLookupTable(void) { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(256); lut->Build(); const int* R = PERFUSION; const int* G = R + 256; const int* B = G + 256; for ( int i = 0; i < 256; i++) { lut->SetTableValue(i, (double)R[i]/255.0, (double)G[i]/255.0, (double)B[i]/255.0, /*(double)(i)/255.0*/ log (1.0+(double)(i)/255.0*9.0)/log (10.0) ); } return lut; } vtkLookupTable* vtkLookupTableManager::GetROILookupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues (256); lut->SetTableValue (0, 0.0, 0.0, 0.0, 0.0); // erase color lut->SetTableValue (1, 1.0, 0.0, 0.0, 0.5); lut->SetTableValue (2, 0.0, 1.0, 0.0, 0.5); lut->SetTableValue (3, 0.0, 0.0, 1.0, 0.5); lut->SetTableValue (4, 1.0, 1.0, 0.0, 0.5); lut->SetTableValue (5, 0.0, 1.0, 1.0, 0.5); lut->SetTableValue (6, 1.0, 0.0, 1.0, 0.5); lut->SetTableValue (7, 1.0, 0.5, 0.0, 0.5); lut->SetTableValue (8, 0.0, 1.0, 0.5, 0.5); lut->SetTableValue (9, 0.5, 0.0, 1.0, 0.5); lut->SetTableValue (10, 1.0, 1.0, 0.5, 0.5); lut->SetTableValue (11, 0.5, 1.0, 1.0, 0.5); lut->SetTableValue (12, 1.0, 0.5, 1.0, 0.5); // Fill the rest of the labels with color ramps, code taken from SNAP // for (int i = 13; i < 256; i++) // { // if (i < 85) // { // lut->SetTableValue (i, ((84.0-i)/85.0 * 200.0 + 50.0)/255.0, (i/85.0 * 200.0 + 50.0)/255.0, 0, 0.5); // } // else if (i < 170) // { // lut->SetTableValue (i, 0, ((169.0-i)/85.0 * 200.0 + 50)/255.0, ((i-85)/85.0 * 200.0 + 50)/255.0, 0.5); // } // else // { // lut->SetTableValue (i, ((i-170)/85.0 * 200.0 + 50)/255.0, 0.0, ((255.0-i)/85.0 * 200.0 + 50)/255.0, 0.5); // } // } // Fill the rest with random colors // for (int i = 13; i < 256; i++) // { // srand (clock()); // // put a random color // int i1 = 1 + (int) (100.0 * ((double)rand() / (RAND_MAX + 1.0))); // int i2 = 1 + (int) (100.0 * ((double)rand() / (RAND_MAX + 1.0))); // int i3 = 1 + (int) (100.0 * ((double)rand() / (RAND_MAX + 1.0))); // double rand_1 = (double)(i1)/(100.0); // double rand_2 = (double)(i2)/(100.0); // double rand_3 = (double)(i3)/(100.0); // double r = rand_1, g = rand_2, b = rand_3; // if (i1 < 33) // r = 1; // else if (i1 < 66) // g = 1; // else if (i1 < 100) // b = 1; // lut->SetTableValue (i, r, g, b, 0.5); // } for (int i = 12; i < 256; i++) { if (i%12 == 0) lut->SetTableValue (i, 1.0, 0.0, 0.0, 0.5); else if (i%12 == 1) lut->SetTableValue (i, 0.0, 1.0, 0.0, 0.5); else if (i%12 == 2) lut->SetTableValue (i, 0.0, 0.0, 1.0, 0.5); else if (i%12 == 3) lut->SetTableValue (i, 1.0, 1.0, 0.0, 0.5); else if (i%12 == 4) lut->SetTableValue (i, 0.0, 1.0, 1.0, 0.5); else if (i%12 == 5) lut->SetTableValue (i, 1.0, 0.0, 1.0, 0.5); else if (i%12 == 6) lut->SetTableValue (i, 1.0, 0.5, 0.0, 0.5); else if (i%12 == 7) lut->SetTableValue (i, 0.0, 1.0, 0.5, 0.5); else if (i%12 == 8) lut->SetTableValue (i, 0.5, 0.0, 1.0, 0.5); else if (i%12 == 9) lut->SetTableValue (i, 1.0, 1.0, 0.5, 0.5); else if (i%12 == 10) lut->SetTableValue (i, 0.5, 1.0, 1.0, 0.5); else if (i%12 == 11) lut->SetTableValue (i, 1.0, 0.5, 1.0, 0.5); } return lut; } vtkLookupTable* vtkLookupTableManager::GetOverlayLooupTable() { vtkLookupTable* lut = vtkLookupTable::New(); lut->SetNumberOfTableValues(2); lut->Build(); lut->SetTableValue(0, 0.0, 0.0, 0.0, 0.0); lut->SetTableValue(1, 1.0, 1.0, 1.0, 1.0); return lut; } ginkgocadx-3.8.7/cadxcore/VTKInria3D/vtkVISUManagement/vtkLookupTableManager.h000066400000000000000000000070551314736454600272230ustar00rootroot00000000000000/*========================================================================= Program: vtkINRIA3D Module: $Id: vtkLookupTableManager.h $ Language: C++ Author: $Author: filus $ Date: $Date: 2008-02-22 17:19:25 +0100 (vie, 22 feb 2008) $ Version: $Revision: 700 $ Copyright (c) 2007 INRIA - Asclepios Project. All rights reserved. See Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef _vtk_LookupTableManager_h_ #define _vtk_LookupTableManager_h_ #include #include #include "vtkINRIA3DConfigure.h" #include #include #include class EXTAPI vtkLookupTableManager: public vtkObject { public: //BTX enum LookupTableIds { LUT_LINEAR = 0, LUT_LINEAR_INV, LUT_BARTEN, LUT_BLACKBODY, // LUT_CARDIAC, // LUT_VRBONES, // LUT_VRMUSCLESBONES, // LUT_VRREDVESSELS, // LUT_GRAYRAINBOW, // LUT_STERN, // LUT_SPECTRUM, // LUT_HOTMETAL, LUT_HOTIRON, // LUT_HOTGREEN, // LUT_GECOLORS, LUT_PERFUSION, LUT_PET, LUT_FLOW, LUT_LONI, LUT_LONI2, LUT_ASYMETRY, LUT_PVALUE, LUT_ROI }; //ETX static vtkLookupTableManager* New(); vtkTypeMacro (vtkLookupTableManager, vtkObject); static vtkLookupTable* GetBartenLookupTable (void); static vtkLookupTable* GetLinearLookupTable (void); static vtkLookupTable* GetLinearInverseLookupTable (void); static vtkLookupTable* GetSpectrumLookupTable (void); static vtkLookupTable* GetHotMetalLookupTable (void); static vtkLookupTable* GetGEColorLookupTable (void); static vtkLookupTable* GetFlowLookupTable (void); static vtkLookupTable* GetLONILookupTable (void); static vtkLookupTable* GetLONI2LookupTable (void); static vtkLookupTable* GetAsymmetryLookupTable (void); static vtkLookupTable* GetPValueLookupTable (void); static std::list GetAvailableLookupTables(void); static vtkLookupTable* GetROILookupTable (void); static vtkLookupTable* GetOverlayLooupTable (void); // Nuevos static vtkLookupTable* GetBlackBodyLookupTable(void); static vtkLookupTable* GetCardiacLookupTable(void); static vtkLookupTable* GetVRBonesLookupTable(void); static vtkLookupTable* GetVRMusclesBonesLookupTable(void); static vtkLookupTable* GetVRRedVesselsLookupTable(void); static vtkLookupTable* GetGrayRainbowLookupTable(void); static vtkLookupTable* GetSternLookupTable(void); static vtkLookupTable* GetHotIronLookupTable(void); static vtkLookupTable* GetHotGreenLookupTable(void); // PERFUSION static vtkLookupTable* GetPERFusionLookupTable(void); // PET static vtkLookupTable* GetPETLookupTable(void); static vtkLookupTable* GetLookupTable(const int&); protected: vtkLookupTableManager(); ~vtkLookupTableManager(); private: }; #endif ginkgocadx-3.8.7/cadxcore/VTKInria3D/wxVTK/000077500000000000000000000000001314736454600203155ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/VTKInria3D/wxVTK/wxVTKRenderWindowInteractor.cpp000066400000000000000000001513651314736454600264420ustar00rootroot00000000000000/*========================================================================= Program: Visualization Toolkit Module: $RCSfile: wxVTKRenderWindowInteractor.cxx,v $ Language: C++ Date: $Date: 2009-09-26 18:46:34 +0200 (Sat, 26 Sep 2009) $ Version: $Revision: 1276 $ Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #include #include "wxVTKRenderWindowInteractor.h" #include #include #include #include //This is needed for vtk 3.1 : #ifndef VTK_MAJOR_VERSION # include "vtkVersion.h" #endif #include "vtkDebugLeaks.h" #include "vtkCommand.h" #ifdef __WXMAC__ #ifdef __WXCOCOA__ #include "vtkCocoaRenderWindow.h" #else #include "vtkCarbonRenderWindow.h" #endif #endif #include #include #include #include #include #include // function to get VTK keysyms from ascii characters static const char* ascii_to_key_sym(int); // function to get VTK keysyms from Qt keys static const char* wx_key_to_key_sym(int); class Timer { private: #if defined(_WINDOWS) LARGE_INTEGER mInicio; LARGE_INTEGER mFin; LARGE_INTEGER mFrecuencia; #else #endif public: Timer() { } void start() { #if defined(_WINDOWS) QueryPerformanceCounter( &mInicio ); #else #endif } void restart() { #if defined(_WINDOWS) QueryPerformanceCounter( &mInicio ); #else #endif } void stop() { #if defined(_WINDOWS) QueryPerformanceCounter(&mFin); QueryPerformanceFrequency(&mFrecuencia); #else #endif } #ifdef _WINDOWS #define UNUSED #else #define UNUSED __attribute__((unused)) #endif friend std::ostream& operator<<(std::ostream& out, const Timer& t UNUSED ) { #if defined(_WINDOWS) const double tiempo = (double)(t.mFin.QuadPart - t.mInicio.QuadPart ) / (double) t.mFrecuencia.QuadPart; return out << tiempo << " seg. " << 1.0 / tiempo << " Op./seg."; #else return out << "No implementado"; #endif } friend std::ostream& operator<<(std::ostream& out, const Timer* t) { if (t == NULL) { return out << "NULL"; } else { return out << *t; } } }; // To access objc calls on cocoa #ifdef __WXCOCOA__ #ifdef VTK_USE_COCOA #import // This trick is no longer need in VTK CVS, should get rid of that: #define id Id #else #error Build mismatch you need both wxWidgets and VTK to be configure against Cocoa to work #endif //VTK_USE_COCOA #endif //__WXCOCOA__ #ifdef __WXGTK__ #include #include "gdk/gdkprivate.h" #include #endif #ifdef __WXX11__ #include "wx/x11/privx.h" #define GetXWindow(wxwin) ((Window)(wxwin)->GetHandle()) #endif //For more info on this class please go to: //http://wxvtk.sf.net //This hack is for some buggy wxGTK version: #define WX_USE_X_CAPTURE 1 #define ID_wxVTKRenderWindowInteractor_TIMER 1001 #if defined(__WXGTK__) && defined(wxUSE_GLCANVAS) IMPLEMENT_DYNAMIC_CLASS(wxVTKRenderWindowInteractor, wxGLCanvas) #else IMPLEMENT_DYNAMIC_CLASS(wxVTKRenderWindowInteractor, wxWindow) #endif //__WXGTK__ //--------------------------------------------------------------------------- #if defined(__WXGTK__) && defined(wxUSE_GLCANVAS) BEGIN_EVENT_TABLE(wxVTKRenderWindowInteractor, wxGLCanvas) #else BEGIN_EVENT_TABLE(wxVTKRenderWindowInteractor, wxWindow) #endif //__WXGTK__ //refresh window by doing a Render EVT_PAINT (wxVTKRenderWindowInteractor::OnPaint) EVT_ERASE_BACKGROUND(wxVTKRenderWindowInteractor::OnEraseBackground) EVT_MOTION (wxVTKRenderWindowInteractor::OnMotion) //Bind the events to the event converters EVT_LEFT_DCLICK (wxVTKRenderWindowInteractor::OnMouseDoubleClick) EVT_MIDDLE_DCLICK (wxVTKRenderWindowInteractor::OnMouseDoubleClick) EVT_RIGHT_DCLICK (wxVTKRenderWindowInteractor::OnMouseDoubleClick) EVT_LEFT_DOWN (wxVTKRenderWindowInteractor::OnButtonDown) EVT_MIDDLE_DOWN (wxVTKRenderWindowInteractor::OnButtonDown) EVT_RIGHT_DOWN (wxVTKRenderWindowInteractor::OnButtonDown) EVT_LEFT_UP (wxVTKRenderWindowInteractor::OnButtonUp) EVT_MIDDLE_UP (wxVTKRenderWindowInteractor::OnButtonUp) EVT_RIGHT_UP (wxVTKRenderWindowInteractor::OnButtonUp) EVT_ENTER_WINDOW(wxVTKRenderWindowInteractor::OnEnter) EVT_LEAVE_WINDOW(wxVTKRenderWindowInteractor::OnLeave) EVT_MOUSEWHEEL (wxVTKRenderWindowInteractor::OnMouseWheel) EVT_MOUSE_CAPTURE_LOST(wxVTKRenderWindowInteractor::OnMouseCaptureLost) EVT_KEY_DOWN (wxVTKRenderWindowInteractor::OnKeyDown) EVT_KEY_UP (wxVTKRenderWindowInteractor::OnKeyUp) EVT_CHAR (wxVTKRenderWindowInteractor::OnChar) EVT_TIMER (ID_wxVTKRenderWindowInteractor_TIMER, wxVTKRenderWindowInteractor::OnTimer) EVT_SIZE (wxVTKRenderWindowInteractor::OnSize) END_EVENT_TABLE() //vtkCxxMacro(wxVTKRenderWindowInteractor, "$Revision: 1276 $") vtkInstantiatorNewMacro(wxVTKRenderWindowInteractor) #if defined(__WXGTK__) && defined(wxUSE_GLCANVAS) static int wxvtk_attributes[]= { WX_GL_DOUBLEBUFFER, WX_GL_RGBA, WX_GL_DEPTH_SIZE, 16, 0 }; #endif //--------------------------------------------------------------------------- wxVTKRenderWindowInteractor::wxVTKRenderWindowInteractor() #if defined(__WXGTK__) && defined(wxUSE_GLCANVAS) : wxGLCanvas(0, -1, wxvtk_attributes, wxDefaultPosition, wxDefaultSize, 0, wxT("wxVTKRenderWindowInteractor")), vtkRenderWindowInteractor() #else : wxWindow(), vtkRenderWindowInteractor() #endif //__WXGTK__ , timer(this, ID_wxVTKRenderWindowInteractor_TIMER) , ActiveButton(wxEVT_NULL) , Stereo(0) , Handle(0) , Created(true) , RenderWhenDisabled(1) , UseCaptureMouse(1) #if defined(__WXGTK__) && defined(wxUSE_GLCANVAS) , GLContext(new wxGLContext (this)) #endif { vtkDebugLeaks::ConstructClass("wxVTKRenderWindowInteractor"); #if defined(__WXMSW__) || defined(__WXMAC__) this->SetUseCaptureMouse(0); #endif this->RenderWindow = NULL; this->SetRenderWindow(vtkRenderWindow::New()); this->RenderWindow->Delete(); this->m_pPicker = vtkWorldPointPicker::New(); this->m_c = new TContexto(); this->m_c->Reset(); this->m_c->pWindow = this; this->m_c->pRenderer = this; } //--------------------------------------------------------------------------- wxVTKRenderWindowInteractor::wxVTKRenderWindowInteractor(wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, long style, const wxString &name) #if defined(__WXGTK__) && defined(wxUSE_GLCANVAS) : wxGLCanvas(parent, id, wxvtk_attributes, pos, size, style, name), vtkRenderWindowInteractor(), #else : wxWindow(parent, id, pos, size, style, name), vtkRenderWindowInteractor(), #endif //__WXGTK__ timer(this, ID_wxVTKRenderWindowInteractor_TIMER), ActiveButton(wxEVT_NULL), Stereo(0), Handle(0), Created(true), RenderWhenDisabled(1), UseCaptureMouse(0) #if defined(__WXGTK__) && defined(wxUSE_GLCANVAS) , GLContext(new wxGLContext (this)) #endif { vtkDebugLeaks::ConstructClass("wxVTKRenderWindowInteractor"); #if defined(__WXMSW__) || defined(__WXMAC__) this->SetUseCaptureMouse(1); #endif this->RenderWindow = NULL; this->SetRenderWindow(vtkRenderWindow::New()); this->RenderWindow->Delete(); this->m_c = new TContexto(); this->m_c->Reset(); #ifdef __WXMAC__ // On Mac (Carbon) we don't get notified of the initial window size with an EVT_SIZE event, // so we update the size information of the interactor/renderwindow here this->UpdateSize(size.x, size.y); #endif this->m_pPicker = vtkWorldPointPicker::New(); this->m_c->pWindow = this; this->m_c->pRenderer = this; } //--------------------------------------------------------------------------- wxVTKRenderWindowInteractor::~wxVTKRenderWindowInteractor() { DestruirContexto3D(); if (this->m_pPicker != NULL) { this->m_pPicker->Delete(); this->m_pPicker = NULL; } delete m_c; SetRenderWindow(NULL); SetInteractorStyle(NULL); // this is a leak, but for some reason, deleting the context here // results in a segfault. My bet is that vtkRenderWindowInteractor // does still hold a resource that makes X11[xcb] fail on an unknown // sequence number, but since wxVTKRenderWindowInteractor is derived // from vtkRenderWindowInteractor the tear-down can not be done in // the right order. // delete GLContext; } //--------------------------------------------------------------------------- wxVTKRenderWindowInteractor * wxVTKRenderWindowInteractor::New() { // we don't make use of the objectfactory, because we're not registered return new wxVTKRenderWindowInteractor; } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::Initialize() { int *size = RenderWindow->GetSize(); // enable everything and start rendering Enable(); //RenderWindow->Start(); // set the size in the render window interactor Size[0] = size[0]; Size[1] = size[1]; // this is initialized Initialized = 1; if (Size[0] > 0 && Size[1] > 0) { CrearContexto3D(Size[0],Size[1]); } } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::Enable() { // if already enabled then done if (Enabled) return; // that's it Enabled = 1; #if defined(__WXGTK__) && defined(wxUSE_GLCANVAS) SetCurrent( *GLContext ); #endif Modified(); } //--------------------------------------------------------------------------- bool wxVTKRenderWindowInteractor::Enable(bool enable) { #if defined(__WXGTK__) && defined(wxUSE_GLCANVAS) return wxGLCanvas::Enable(enable); #else return wxWindow::Enable(enable); #endif } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::Disable() { // if already disabled then done if (!Enabled) return; // that's it (we can't remove the event handler like it should be...) Enabled = 0; Modified(); } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::Start() { // the interactor cannot control the event loop vtkErrorMacro( << "wxVTKRenderWindowInteractor::Start() " "interactor cannot control event loop."); } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::UpdateSize(int x, int y) { if( RenderWindow ) { // if the size changed tell render window if ( x != Size[0] || y != Size[1] ) { // adjust our (vtkRenderWindowInteractor size) Size[0] = x; Size[1] = y; // and our RenderWindow's size RenderWindow->SetSize(x, y); } if (x > 0 && y > 0) { CrearContexto3D(x,y); } else { DestruirContexto3D(); } if (x > 0 && y > 0) { CalcularRelacionPixelsPantalla(FindPokedRenderer(0,0)); } } } //--------------------------------------------------------------------------- int wxVTKRenderWindowInteractor::CreateTimer(int WXUNUSED(timertype)) { // it's a one shot timer if (!timer.Start(10, TRUE)) return 0; return 1; } //------------------------------------------------------------------ int wxVTKRenderWindowInteractor::InternalCreateTimer(int /*timerId*/, int timerType, unsigned long duration) { if (!timer.Start(duration, timerType == OneShotTimer)) return 0; return ID_wxVTKRenderWindowInteractor_TIMER; } //------------------------------------------------------------------ int wxVTKRenderWindowInteractor::InternalDestroyTimer(int /*platformTimerId*/) { timer.Stop(); return 1; } //--------------------------------------------------------------------------- int wxVTKRenderWindowInteractor::DestroyTimer() { // do nothing return 1; } bool wxVTKRenderWindowInteractor::Reparent( wxWindowBase *newParent ) { // should not reparent to NULL , because then it is turned into a toplevel windows // which it is not assert(newParent); LOG_DEBUG("Core/GL", "Reparenting to " << (void*) newParent << std::endl); return wxWindowBase::Reparent(newParent); } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnTimer(wxTimerEvent& WXUNUSED(event)) { if (!Enabled) return; // pass the right timer id int timerId = this->GetCurrentTimerId(); this->InvokeEvent(vtkCommand::TimerEvent, &timerId); } //--------------------------------------------------------------------------- // NOTE on implementation: // Bad luck you ended up in the only tricky place of this code. // A few note, wxWidgets still refuse to provide such convenient method // so I have to maintain it myself, eventhough this is completely integrated // in wxPython... // Anyway if this happen to break for you then compare to a recent version of wxPython // and look for the function long wxPyGetWinHandle(wxWindow* win) // in wxPython/src/helpers.cpp long wxVTKRenderWindowInteractor::GetHandleHack() { // __WXMSW__ is for Win32 //__WXMAC__ stands for using Carbon C-headers, using either the CarbonLib/CFM or the native Mach-O builds (which then also use the latest features available) // __WXGTK__ is for both gtk 1.2.x and gtk 2.x #if defined(__WXMSW__) || defined(__WXMAC__) long handle_tmp = 0; handle_tmp = (long)this->GetHandle(); #endif //__WXMSW__ //__WXCOCOA__ stands for using the objective-c Cocoa API #ifdef __WXCOCOA__ // Here is how to find the NSWindow wxTopLevelWindow* toplevel = dynamic_cast( wxGetTopLevelParent( this ) ); if (toplevel != NULL ) { handle_tmp = (long)toplevel->GetNSWindow(); } // The NSView will be deducted from // [(NSWindow*)Handle contentView] // if only I knew how to write that in c++ #endif //__WXCOCOA__ // Find and return the actual X-Window. #if defined(__WXGTK__) || defined(__WXX11__) return this->GetXWindow(); #else return handle_tmp; #endif } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnPaint(wxPaintEvent& WXUNUSED(event)) { //must always be here wxPaintDC pDC(this); //do it here rather than in the cstor: this is safer. if(!Handle) { Handle = GetHandleHack(); RenderWindow->SetWindowId(reinterpret_cast(Handle)); // Cocoa // this->GetNSView() <-> DisplayId // this->GetTopLevel()->GetNSWindow() <-> WindowId #ifdef __WXMSW__ RenderWindow->SetParentId(reinterpret_cast(this->GetParent()->GetHWND())); #endif //__WXMSW__ // This is another hack to prevent the VTK Render Window from closing the display. // If VTK closes the display, ~wxContext chashes while trying to destroy its // glContext (because the display is closed). The Get -> Set makes this VTK // object think someone else is responsible for the display. this->RenderWindow->SetDisplayId(this->RenderWindow->GetGenericDisplayId()); } // get vtk to render to the wxWindows WSetCurrent(); Render(); #ifdef __WXMAC__ // This solves a problem with repainting after a window resize // See also: http://sourceforge.net/mailarchive/forum.php?thread_id=31690967&forum_id=41789 #ifdef __WXCOCOA__ vtkCocoaRenderWindow * rwin = vtkCocoaRenderWindow::SafeDownCast(RenderWindow); if( rwin ) { rwin->UpdateContext(); } #else vtkCarbonRenderWindow* rwin = vtkCarbonRenderWindow::SafeDownCast(RenderWindow); if( rwin ) { rwin->UpdateGLRegion(); } #endif #endif } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnEraseBackground(wxEraseEvent &event) { #if defined (_WINDOWS) //turn off background erase to reduce flickering on MSW //event.Skip(true); //std::cout << "wxVTKRenderWindowInteractor::OnEraseBackground()" << std::endl; event.Skip(false); /* event.GetDC()->SetBrush(wxBrush(wxColor(0,0,0))); event.GetDC()->DrawRectangle(this->GetClientRect()); */ #else event.Skip(false); #endif } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnSize(wxSizeEvent& /*event*/) { int w, h; GetClientSize(&w, &h); #if defined(__WXGTK__) GtkWidget *widget = GetHandle(); if (widget != NULL) { GtkWidget* parent_widget = GetParent()->GetHandle(); if (parent_widget != NULL) { gtk_widget_realize(parent_widget); Window parent_wid = GDK_WINDOW_XWINDOW( parent_widget->window ); RenderWindow->SetParentId(reinterpret_cast(parent_wid)); } else { RenderWindow->SetParentId(NULL); } gtk_widget_realize(widget); Window wid = GDK_WINDOW_XWINDOW( widget->window ); RenderWindow->SetWindowId(reinterpret_cast(wid)); SetCurrent(*GLContext); UpdateSize(w, h); return; } else { return; } #else UpdateSize(w, h); if (!Enabled) { return; } InvokeEvent(vtkCommand::ConfigureEvent, NULL); #endif } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnMotion(wxMouseEvent &event) { if (!Enabled) { return; } SetEventInformationFlipY(event.GetX(), event.GetY(), event.ControlDown(), event.ShiftDown(), '\0', 0, NULL); InvokeEvent(vtkCommand::MouseMoveEvent, NULL); TransformarEvento(event); } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnEnter(wxMouseEvent &event) { if (!Enabled) { return; } SetEventInformationFlipY(event.GetX(), event.GetY(), event.ControlDown(), event.ShiftDown(), '\0', 0, NULL); InvokeEvent(vtkCommand::EnterEvent, NULL); TransformarEvento(event); } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnLeave(wxMouseEvent &event) { if (!Enabled) { return; } SetEventInformationFlipY(event.GetX(), event.GetY(), event.ControlDown(), event.ShiftDown(), '\0', 0, NULL); InvokeEvent(vtkCommand::LeaveEvent, NULL); TransformarEvento(event); } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnKeyDown(wxKeyEvent &event) { if (!Enabled) { return; } Activar(); // new style int keycode = event.GetKeyCode(); char key = '\0'; if (((unsigned int)keycode) < 256) { // TODO: Unicode in non-Unicode mode ?? key = (char)keycode; } const char* keysym = ascii_to_key_sym( keycode ); if(!keysym) { // get virtual keys keysym = wx_key_to_key_sym( keycode ); } if(!keysym) { keysym = "None"; } // we don't get a valid mouse position inside the key event on every platform // so we retrieve the mouse position explicitly and pass it along wxPoint mousePos = ScreenToClient(wxGetMousePosition()); SetEventInformationFlipY(mousePos.x, mousePos.y, event.ControlDown(), event.ShiftDown(), key, 0, keysym); InvokeEvent(vtkCommand::KeyPressEvent, NULL); TransformarEvento(event); if (event.GetSkipped()) { event.ResumePropagation(20); } } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnKeyUp(wxKeyEvent &event) { if (!Enabled) { return; } Activar(); // new style int keycode = event.GetKeyCode(); char key = '\0'; if (((unsigned int)keycode) < 256) { // TODO: Unicode in non-Unicode mode ?? key = (char)keycode; } const char* keysym = ascii_to_key_sym( keycode ); if(!keysym) { // get virtual keys keysym = wx_key_to_key_sym( keycode ); } if(!keysym) { keysym = "None"; } // we don't get a valid mouse position inside the key event on every platform // so we retrieve the mouse position explicitly and pass it along wxPoint mousePos = ScreenToClient(wxGetMousePosition()); SetEventInformationFlipY(mousePos.x, mousePos.y, event.ControlDown(), event.ShiftDown(), key, 0, keysym); InvokeEvent(vtkCommand::KeyReleaseEvent, NULL); TransformarEvento(event); if (event.GetSkipped()) { event.ResumePropagation(20); } event.Skip(); } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnChar(wxKeyEvent &event) { if (!Enabled) { return; } TransformarEvento(event); // new style int keycode = event.GetKeyCode(); char key = '\0'; if (((unsigned int)keycode) < 256) { // TODO: Unicode in non-Unicode mode ?? key = (char)keycode; } const char* keysym = ascii_to_key_sym( keycode ); if(!keysym) { // get virtual keys keysym = wx_key_to_key_sym( keycode ); } if(!keysym) { keysym = "None"; } // we don't get a valid mouse position inside the key event on every platform // so we retrieve the mouse position explicitly and pass it along wxPoint mousePos = ScreenToClient(wxGetMousePosition()); SetEventInformationFlipY(mousePos.x, mousePos.y, event.ControlDown(), event.ShiftDown(), key, 0, keysym); InvokeEvent(vtkCommand::CharEvent, NULL); TransformarEvento(event); if (event.GetSkipped()) { event.ResumePropagation(20); } event.Skip(); } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnButtonDown(wxMouseEvent &event) { if (!Enabled || (ActiveButton != wxEVT_NULL)) { return; } Activar(); ActiveButton = event.GetEventType(); // On Mac (Carbon) and Windows we don't automatically get the focus when // you click inside the window // we therefore set the focus explicitly // Apparently we need that on linux (GTK) too: this->SetFocus(); SetEventInformationFlipY(event.GetX(), event.GetY(), event.ControlDown(), event.ShiftDown(), '\0', 0, NULL); if(event.RightDown()) { InvokeEvent(vtkCommand::RightButtonPressEvent, NULL); } else if(event.LeftDown()) { InvokeEvent(vtkCommand::LeftButtonPressEvent, NULL); } else if (event.LeftDClick()) { InvokeEvent(vtkCommand::LeftButtonPressEvent, NULL); } else if(event.MiddleDown()) { InvokeEvent(vtkCommand::MiddleButtonPressEvent, NULL); } //save the button and capture mouse until the button is released //Only if : //1. it is possible (WX_USE_X_CAPTURE) //2. user decided to. if ((ActiveButton != wxEVT_NULL) && WX_USE_X_CAPTURE && UseCaptureMouse) { CaptureMouse(); } TransformarEvento(event); } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnButtonUp(wxMouseEvent &event) { //EVT_xxx_DOWN == EVT_xxx_UP - 1 //This is only needed if two mouse buttons are pressed at the same time. //In wxWindows 2.4 and later: better use of wxMOUSE_BTN_RIGHT or //wxEVT_COMMAND_RIGHT_CLICK if (!Enabled || (ActiveButton != (event.GetEventType()-1))) { return; } Activar(); // See report by Shang Mu / Kerry Loux on wxVTK mailing list this->SetFocus(); SetEventInformationFlipY(event.GetX(), event.GetY(), event.ControlDown(), event.ShiftDown(), '\0', 0, NULL); if(ActiveButton == wxEVT_RIGHT_DOWN) { InvokeEvent(vtkCommand::RightButtonReleaseEvent, NULL); } else if(ActiveButton == wxEVT_LEFT_DOWN) { InvokeEvent(vtkCommand::LeftButtonReleaseEvent, NULL); } else if(ActiveButton == wxEVT_MIDDLE_DOWN) { InvokeEvent(vtkCommand::MiddleButtonReleaseEvent, NULL); } //if the ActiveButton is realeased, then release mouse capture if ((ActiveButton != wxEVT_NULL) && WX_USE_X_CAPTURE && UseCaptureMouse) { ReleaseMouse(); } ActiveButton = wxEVT_NULL; TransformarEvento(event); } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnMouseWheel(wxMouseEvent& event) { Activar(); // Mouse wheel was only added after VTK 4.4 (I think...) // new style //Set vtk event information ... The numebr of wheel rotations is stored in //the x varible. y varible is zero SetEventInformationFlipY(event.GetX() , event.GetY(), event.ControlDown(), event.ShiftDown(), '\0', 0, NULL); //si esta el control pulsado no se procesa, lo procesaran mas adelante if(!event.ControlDown()) { if(event.GetWheelRotation() > 0) { //Send event to VTK InvokeEvent(vtkCommand::MouseWheelForwardEvent, NULL); } else { //Send event to VTK InvokeEvent(vtkCommand::MouseWheelBackwardEvent, NULL); } } TransformarEvento(event); } void wxVTKRenderWindowInteractor::OnMouseCaptureLost(wxMouseCaptureLostEvent& /*event*/) { if (ActiveButton != wxEVT_NULL) { //ReleaseMouse(); } // Reset ActiveButton so that // 1. we do not process mouse button up events any more, // 2. the next button down event will be processed and call CaptureMouse(). // Otherwise ReleaseMouse() will be called // without a previous CaptureMouse(). ActiveButton = wxEVT_NULL; } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::Render() { //Timer t; //t.start(); int renderAllowed = !IsFrozen(); if (renderAllowed && !RenderWhenDisabled) { //the user doesn't want us to render when the toplevel frame //is disabled - first find the top level parent wxWindow *topParent = wxGetTopLevelParent(this); if (topParent) { //if it exists, check whether it's enabled //if it's not enabeld, renderAllowed will be false renderAllowed = topParent->IsEnabled(); } } if (renderAllowed) { if(Handle && (Handle == GetHandleHack()) ) { CalcularRelacionPixelsPantalla(FindPokedRenderer(0,0)); RenderWindow->Render(); //t.stop(); //std::cout << "wxVTKRenderWindowInteractor::Render(1) " << t << std::endl; } else if(GetHandleHack()) { //this means the user has reparented us; let's adapt to the //new situation by doing the WindowRemap dance //store the new situation Handle = GetHandleHack(); #if defined(__WXOSX__) RenderWindow->SetParentId(reinterpret_cast(this->GetParent()->GetHandle())); RenderWindow->SetWindowId(reinterpret_cast(Handle)); #elif defined(__WXMSW__) RenderWindow->SetParentId(reinterpret_cast(this->GetParent()->GetHWND())); RenderWindow->SetWindowId(reinterpret_cast(Handle)); #endif CalcularRelacionPixelsPantalla(FindPokedRenderer(0,0)); bool doPlot = !Initialized; RenderWindow->Render(); if (doPlot) { GNC::GCS::IControladorLog* cLog = GNC::GCS::IControladorLog::Instance(); if (cLog != NULL && cLog->IsEnabledFor(GNC::GCS::IControladorLog::DebugLog) ) { const char* str; LOG_DEBUG("Core/GL", "OpenGL Subsytem initiallized." << std::endl); str = (const char*) glGetString(GL_VENDOR); if (str != NULL) { LOG_DEBUG("Core/GL", "GL_VENDOR:" << str << std::endl); } str = (const char*) glGetString(GL_RENDERER); if (str != NULL) { LOG_DEBUG("Core/GL", "GL_RENDERER:" << str << std::endl); } str = (const char*) glGetString(GL_VERSION); if (str != NULL) { LOG_DEBUG("Core/GL", "GL_VERSION:" << str << std::endl); } if (cLog->IsEnabledFor(GNC::GCS::IControladorLog::TraceLog)) { str = (const char*) glGetString(GL_EXTENSIONS); if (str != NULL) { LOG_TRACE("Core/GL", "GL_EXTENSIONS:" << str << std::endl); } } } } //t.stop(); //std::cerr << "wxVTKRenderWindowInteractor::Render(2) " << t << std::endl; } } } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::SetRenderWhenDisabled(int newValue) { //Change value of __RenderWhenDisabled ivar. //If __RenderWhenDisabled is false (the default), this widget will not //call Render() on the RenderWindow if the top level frame (i.e. the //containing frame) has been disabled. //This prevents recursive rendering during wxSafeYield() calls. //wxSafeYield() can be called during the ProgressMethod() callback of //a VTK object to have progress bars and other GUI elements updated - //it does this by disabling all windows (disallowing user-input to //prevent re-entrancy of code) and then handling all outstanding //GUI events. //However, this often triggers an OnPaint() method for wxVTKRWIs, //resulting in a Render(), resulting in Update() being called whilst //still in progress. RenderWhenDisabled = (newValue != 0); } //--------------------------------------------------------------------------- // // Set the variable that indicates that we want a stereo capable window // be created. This method can only be called before a window is realized. // void wxVTKRenderWindowInteractor::SetStereo(int capable) { if (Stereo != capable) { Stereo = capable; RenderWindow->StereoCapableWindowOn(); RenderWindow->SetStereoTypeToCrystalEyes(); Modified(); } } //--------------------------------------------------------------------------- // // void wxVTKRenderWindowInteractor::PrintSelf(ostream& os, vtkIndent indent) { this->Superclass::PrintSelf(os, indent); } // ***** keysym stuff below ***** static const char *AsciiToKeySymTable[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, "Tab", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "space", "exclam", "quotedbl", "numbersign", "dollar", "percent", "ampersand", "quoteright", "parenleft", "parenright", "asterisk", "plus", "comma", "minus", "period", "slash", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "colon", "semicolon", "less", "equal", "greater", "question", "at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "bracketleft", "backslash", "bracketright", "asciicircum", "underscore", "quoteleft", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "braceleft", "bar", "braceright", "asciitilde", "Delete", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; const char* ascii_to_key_sym(int i) { if(i >= 0 && i<256 ) { return AsciiToKeySymTable[i]; } return 0; } #define WXVTK_HANDLE(x,y) \ case x : \ ret = y; \ break; const char* wx_key_to_key_sym(int i) { const char* ret = 0; switch(i) { WXVTK_HANDLE(WXK_CLEAR, "Clear") WXVTK_HANDLE(WXK_BACK, "BackSpace") WXVTK_HANDLE(WXK_TAB, "Tab") WXVTK_HANDLE(WXK_RETURN, "Return") WXVTK_HANDLE(WXK_SHIFT, "Shift_L") WXVTK_HANDLE(WXK_CONTROL, "Control_L") WXVTK_HANDLE(WXK_ALT, "Alt_L") WXVTK_HANDLE(WXK_PAUSE, "Pause") WXVTK_HANDLE(WXK_CAPITAL, "Caps_Lock") WXVTK_HANDLE(WXK_ESCAPE, "Escape") WXVTK_HANDLE(WXK_SPACE, "space") WXVTK_HANDLE(WXK_END, "End") WXVTK_HANDLE(WXK_HOME, "Home") WXVTK_HANDLE(WXK_LEFT, "Left") WXVTK_HANDLE(WXK_UP, "Up") WXVTK_HANDLE(WXK_RIGHT, "Right") WXVTK_HANDLE(WXK_DOWN, "Down") WXVTK_HANDLE(WXK_SNAPSHOT, "Snapshot") WXVTK_HANDLE(WXK_INSERT, "Insert") WXVTK_HANDLE(WXK_DELETE, "Delete") WXVTK_HANDLE(WXK_HELP, "Help") WXVTK_HANDLE(WXK_NUMPAD0, "0") WXVTK_HANDLE(WXK_NUMPAD1, "1") WXVTK_HANDLE(WXK_NUMPAD2, "2") WXVTK_HANDLE(WXK_NUMPAD3, "3") WXVTK_HANDLE(WXK_NUMPAD4, "4") WXVTK_HANDLE(WXK_NUMPAD5, "5") WXVTK_HANDLE(WXK_NUMPAD6, "6") WXVTK_HANDLE(WXK_NUMPAD7, "7") WXVTK_HANDLE(WXK_NUMPAD8, "8") WXVTK_HANDLE(WXK_NUMPAD9, "9") // KP_0 - KP_9 WXVTK_HANDLE(WXK_MULTIPLY, "asterisk") WXVTK_HANDLE(WXK_ADD, "plus") // bar WXVTK_HANDLE(WXK_SUBTRACT, "minus") WXVTK_HANDLE(WXK_DECIMAL, "period") WXVTK_HANDLE(WXK_SEPARATOR, "slash") WXVTK_HANDLE(WXK_F1, "F1") WXVTK_HANDLE(WXK_F2, "F2") WXVTK_HANDLE(WXK_F3, "F3") WXVTK_HANDLE(WXK_F4, "F4") WXVTK_HANDLE(WXK_F5, "F5") WXVTK_HANDLE(WXK_F6, "F6") WXVTK_HANDLE(WXK_F7, "F7") WXVTK_HANDLE(WXK_F8, "F8") WXVTK_HANDLE(WXK_F9, "F9") WXVTK_HANDLE(WXK_F10, "F10") WXVTK_HANDLE(WXK_F11, "F11") WXVTK_HANDLE(WXK_F12, "F12") WXVTK_HANDLE(WXK_F13, "F13") WXVTK_HANDLE(WXK_F14, "F14") WXVTK_HANDLE(WXK_F15, "F15") WXVTK_HANDLE(WXK_F16, "F16") WXVTK_HANDLE(WXK_F17, "F17") WXVTK_HANDLE(WXK_F18, "F18") WXVTK_HANDLE(WXK_F19, "F19") WXVTK_HANDLE(WXK_F20, "F20") WXVTK_HANDLE(WXK_F21, "F21") WXVTK_HANDLE(WXK_F22, "F22") WXVTK_HANDLE(WXK_F23, "F23") WXVTK_HANDLE(WXK_F24, "F24") WXVTK_HANDLE(WXK_NUMLOCK, "Num_Lock") WXVTK_HANDLE(WXK_SCROLL, "Scroll_Lock") WXVTK_HANDLE(WXK_PAGEUP, "Page_Up") WXVTK_HANDLE(WXK_PAGEDOWN, "Page_Down") #if WXWIN_COMPATIBILITY_2_6 WXVTK_HANDLE(WXK_NUMPAD_PRIOR, "Page_Up") WXVTK_HANDLE(WXK_NUMPAD_NEXT, "Page_Down") #endif WXVTK_HANDLE(WXK_NUMPAD_END, "End") WXVTK_HANDLE(WXK_NUMPAD_BEGIN, "Begin") WXVTK_HANDLE(WXK_NUMPAD_INSERT, "Insert") WXVTK_HANDLE(WXK_NUMPAD_DELETE, "Delete") WXVTK_HANDLE(WXK_NUMPAD_EQUAL, "Equal") WXVTK_HANDLE(WXK_NUMPAD_MULTIPLY, "asterix") WXVTK_HANDLE(WXK_NUMPAD_ADD, "plus") WXVTK_HANDLE(WXK_NUMPAD_SEPARATOR, "slash") WXVTK_HANDLE(WXK_NUMPAD_SUBTRACT, "minus") WXVTK_HANDLE(WXK_NUMPAD_DECIMAL, "period") WXVTK_HANDLE(WXK_NUMPAD_DIVIDE, "slash") WXVTK_HANDLE(WXK_WINDOWS_LEFT, "Win_L") WXVTK_HANDLE(WXK_WINDOWS_RIGHT, "Win_R") WXVTK_HANDLE(WXK_WINDOWS_MENU, "Menu") //NOTHING TO DO..WXK_COMMAND IS "Control_L" WXVTK_HANDLE(WXK_COMMAND, "Command") default: break; } return ret; } //--------------------------------------------------------------------------- void wxVTKRenderWindowInteractor::OnMouseDoubleClick(wxMouseEvent &event) { if (!Enabled || (ActiveButton != wxEVT_NULL)) { return; } Activar(); ActiveButton = event.GetEventType(); // On Mac (Carbon) and Windows we don't automatically get the focus when // you click inside the window // we therefore set the focus explicitly // Apparently we need that on linux (GTK) too: this->SetFocus(); SetEventInformationFlipY(event.GetX(), event.GetY(), event.ControlDown(), event.ShiftDown(), '\0', 1, NULL); if (event.LeftDClick()) { InvokeEvent(vtkCommand::LeftButtonPressEvent, NULL); InvokeEvent(vtkCommand::LeftButtonReleaseEvent, NULL); } ActiveButton = wxEVT_NULL; TransformarEvento(event); } //---------------------------------------------------------------------------------------------------- //region Interfaz IWidgetsRenderer void wxVTKRenderWindowInteractor::PostRender(bool inmediato) { if(inmediato) { //this->Refresh(false); //this->Update(); this->Render(); } else { this->Refresh(false); } } void wxVTKRenderWindowInteractor::WSetCurrent() { this->RenderWindow->MakeCurrent(); } void wxVTKRenderWindowInteractor::OnActivar() { this->SetFocus(); } //---------------------------------------------------------------------------------------------------- //region "Interfaz de transformacion de coordenadas" void wxVTKRenderWindowInteractor::DisplayToWorld(double displayPos[3], double worldPos[4]) { worldPos[0] = worldPos[1] = worldPos[2] = worldPos[3] = 0.0; if (m_pPicker != NULL && m_pImageViewer != NULL) { int x = displayPos[0]; int y = displayPos[1]; vtkRenderer* ren = FindPokedRenderer(x, y); if (ren != NULL) { vtkCamera* cam = ren->GetActiveCamera(); if (cam != NULL) { double pt[3] = { static_cast(x), static_cast(y), 0.0}; double world[4] = {0.0f, 0.0f, 0.0f, 0.0f}; m_pPicker->Pick(pt, ren); m_pPicker->GetPickPosition(world); double cpos[3]; double cdir[3]; cam->GetPosition(cpos); cam->GetDirectionOfProjection(cdir); if (cam->GetParallelProjection()) { this->m_pImageViewer->IntersectarRayo(world, cdir, worldPos); worldPos[3] = 1.0; } } } } } void wxVTKRenderWindowInteractor::WorldToDisplay(double worldPos[4], double displayPos[3]) { if (!Enabled || !Initialized) { return; } vtkRenderer* pRenderer = FindPokedRenderer(0,0); if (pRenderer == NULL || !pRenderer->IsActiveCameraCreated()) { return; } vtkInteractorObserver::ComputeWorldToDisplay(pRenderer, worldPos[0], worldPos[1], worldPos[2], displayPos); } void wxVTKRenderWindowInteractor::GetCamVectors(double camPos[4], double camDir[4], double camUp[4]) { bool available = false; if (m_pPicker != NULL && m_pImageViewer != NULL) { int x = Size[0] >> 1; int y = Size[1] >> 1; vtkRenderer* ren = FindPokedRenderer(x, y); if (ren != NULL) { vtkCamera* cam = ren->GetActiveCamera(); cam->GetPosition(camPos); cam->GetDirectionOfProjection(camDir); cam->GetViewUp(camUp); camPos[3] = camDir[3] = camUp[3] = 1.0; available = true; } } if (!available) { for (int i = 0; i < 4; i++) { camPos[i] = camDir[i] = camUp[i] = std::numeric_limits::quiet_NaN(); } } } void wxVTKRenderWindowInteractor::RayPick(double displayPos[2], double worldPos[4]) { bool error = true; if (m_pPicker != NULL && m_pImageViewer != NULL) { int x = (int)(displayPos[0]); int y = Size[1] - (int)(displayPos[1]) - 1; vtkRenderer* ren = FindPokedRenderer(x, y); if (ren != NULL) { vtkCamera* cam = ren->GetActiveCamera(); double pt[3] = { static_cast(x), static_cast(y), 0.0 }; double world[4] = {0.0f, 0.0f, 0.0f, 0.0f}; m_pPicker->Pick(pt, ren); m_pPicker->GetPickPosition(world); double cpos[3]; double cdir[3]; cam->GetPosition(cpos); cam->GetDirectionOfProjection(cdir); if (cam->GetParallelProjection()) { this->m_pImageViewer->IntersectarRayo(world, cdir, worldPos); worldPos[3] = 1.0; error = false; } } } if (error) { worldPos[0] = worldPos[1] = worldPos[2] = worldPos[3] = std::numeric_limits::quiet_NaN(); } } void wxVTKRenderWindowInteractor::RayPick(double worldPos[4]) { bool error = true; if (m_pPicker != NULL && m_pImageViewer != NULL) { int x = Size[0] >> 1; int y = Size[1] >> 1; vtkRenderer* ren = FindPokedRenderer(x, y); if (ren != NULL) { vtkCamera* cam = ren->GetActiveCamera(); double cpos[3]; double cdir[3]; cam->GetPosition(cpos); cam->GetDirectionOfProjection(cdir); this->m_pImageViewer->IntersectarRayo(cpos, cdir, worldPos); worldPos[3] = 1.0; error = false; } } if (error) { worldPos[0] = worldPos[1] = worldPos[2] = worldPos[3] = std::numeric_limits::quiet_NaN(); } } //endregion //---------------------------------------------------------------------------------------------------- //region "Helpers de contexto de dibujado" void wxVTKRenderWindowInteractor::TransformarEvento(wxMouseEvent &event) { if (m_pPicker != NULL && m_pImageViewer != NULL) { GNC::GCS::Events::EventoRaton wrappedEvent(&event, m_c); int x = event.GetX(); int y = Size[1] - event.GetY() - 1; vtkRenderer* ren = FindPokedRenderer(x, y); if (ren != NULL) { vtkCamera* cam = ren->GetActiveCamera(); if (cam != NULL) { double pt[3] = { static_cast(x), static_cast(y), 0.0f }; double world[4] = {0.0f, 0.0f, 0.0f, 0.0f}; m_pPicker->Pick(pt, ren); m_pPicker->GetPickPosition(world); double cpos[3]; double cdir[3]; cam->GetPosition(cpos); cam->GetDirectionOfProjection(cdir); if (cam->GetParallelProjection()) { double ipt[3]; this->m_pImageViewer->IntersectarRayo(world, cdir, wrappedEvent.wP.v); wrappedEvent.wP.v[3] = 1.0; this->m_pImageViewer->Proyect2D(wrappedEvent.wP, ipt); wrappedEvent.iP.Asignar(ipt[0], ipt[1]); } else { //std::cout << "Error: Reproyeccion en proyeccion perspectiva no soportado" << std::endl; event.Skip(wrappedEvent.GetSkipped()); } CalcularRelacionPixelsPantalla(ren); PropagarEvento(wrappedEvent); event.Skip(wrappedEvent.GetSkipped()); } } } } void wxVTKRenderWindowInteractor::TransformarEvento(wxKeyEvent &event) { GNC::GCS::Events::EventoTeclado wrappedEvent(&event, m_c); PropagarEvento(wrappedEvent); event.Skip(wrappedEvent.GetSkipped()); } /** Proyecta worlPos sobre el viewport, crea un rectangulo de lado 1, lo reproyecta al mundo y devuelve las dimensiones del cubo envolvente de esta ultima reproyección. * El resultado obtenido, sirve para calcular la proporcion pixels pantalla <-> coordenadas mundo. * Si pos es NULL, se utiliza el centro del viewport como punto generador del rectángulo. * El resultado queda almacenado en el contexto de dibujado (miembro relacionMundoPantalla_{x,y,z}) */ void wxVTKRenderWindowInteractor::CalcularRelacionPixelsPantalla(vtkRenderer* pRenderer) { if (pRenderer == NULL || !pRenderer->IsActiveCameraCreated() || this->m_pImageViewer == NULL || m_c == NULL) { return; } GNC::GCS::Vector screenCenter(Size[0] >> 1, Size[1] >> 1); GNC::GCS::Vector screenPoint[4]; // Screen Points: {center.top_left, center.top_right, center.bottom_right, center.bottom_left}: OpenGL Covention, 0,0 = lower,left GNC::GCS::Vector3D worldPoint[4]; // World points GNC::GCS::Vector3D planePoint[4]; // World points proyected in plane point (in world coords) GNC::GCS::Vector3D imagePoint[4]; // World points proyected in plane point (in image coords) /* screenPoint[0].Asignar(screenCenter.x - 0.5, screenCenter.y - 0.5); // s[0] = bottom,left [0,0] screenPoint[1].Asignar(screenCenter.x + 0.5, screenCenter.y - 0.5); // s[1] = top,left [x,0] screenPoint[2].Asignar(screenCenter.x + 0.5, screenCenter.y + 0.5); // s[2] = top,right [x,y] screenPoint[3].Asignar(screenCenter.x - 0.5, screenCenter.y + 0.5); // s[3] = bottom,right [0,y] */ screenPoint[0].Asignar(screenCenter.x - 0.5, screenCenter.y + 0.5); // s[0] = top,left [0,0] screenPoint[1].Asignar(screenCenter.x + 0.5, screenCenter.y + 0.5); // s[1] = top,right [x,0] screenPoint[2].Asignar(screenCenter.x + 0.5, screenCenter.y - 0.5); // s[2] = bottom,right [x,y] screenPoint[3].Asignar(screenCenter.x - 0.5, screenCenter.y - 0.5); // s[3] = bottom,left [y,0] // Transform the screen coords => plane points GNC::GCS::Vector3D camDir = pRenderer->GetActiveCamera()->GetDirectionOfProjection(); for (int i = 0; i < 4; ++i) { vtkInteractorObserver::ComputeDisplayToWorld(pRenderer, screenPoint[i].x, screenPoint[i].y, 0, worldPoint[i].v); this->m_pImageViewer->IntersectarRayo(worldPoint[i].v, camDir.v, planePoint[i].v); this->m_pImageViewer->Proyect2D(planePoint[i].v, imagePoint[i].v); } // Calculate ScreenDirectionCosines this->m_c->ScreenDirectionCosines[0] = GNC::GCS::Vector(imagePoint[1].x - imagePoint[0].x , imagePoint[1].y - imagePoint[0].y).Normalizar(); // xdir [x, 0] this->m_c->ScreenDirectionCosines[1] = GNC::GCS::Vector(imagePoint[3].x - imagePoint[0].x , imagePoint[3].y - imagePoint[0].y).Normalizar(); // ydir [0, y] GNC::GCS::Vector3D rel((imagePoint[1] - imagePoint[0]).Norma2(), (imagePoint[3] - imagePoint[0]).Norma2(),1); //std::cout << "Dir : { " << this->m_c->ScreenDirectionCosines[0] << " }, { " << this->m_c->ScreenDirectionCosines[1] << " }" << std::endl; //std::cout << "Rel : { " << rel << " }" << std::endl; if (m_pImageViewer) { this->m_c->rotacion = this->m_pImageViewer->GetCameraRotation(); this->m_c->flipHorizontal = this->m_pImageViewer->GetCameraFlipHorizontal(); this->m_c->flipVertical = this->m_pImageViewer->GetCameraFlipVertical(); } this->m_c->SetupImageScreenRel(rel.x, rel.y, rel.z); } void wxVTKRenderWindowInteractor::CrearContexto3D(int ancho, int alto) { DestruirContexto3D(); m_c->ancho = ancho; m_c->alto = alto; } void wxVTKRenderWindowInteractor::DestruirContexto3D() { m_c->Reset(); } //endregion ginkgocadx-3.8.7/cadxcore/VTKInria3D/wxVTK/wxVTKRenderWindowInteractor.h000066400000000000000000000210651314736454600261000ustar00rootroot00000000000000/*========================================================================= Program: Visualization Toolkit Module: $RCSfile: wxVTKRenderWindowInteractor.h,v $ Language: C++ Date: $Date: 2009-09-26 18:46:34 +0200 (Sat, 26 Sep 2009) $ Version: $Revision: 1276 $ Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ // .NAME wxVTKRenderWindowInteractor - class to enable VTK to render to // and interact with wxWindow. // .SECTION Description // wxVTKRenderWindowInteractor provide a VTK widget for wxWindow. This class // was completely rewrote to have the 'Look & Feel' of the python version: // wxVTKRenderWindowInteractor.py // .SECTION Caveats // - There is a know bug that prevent this class to works for more info see // WX_USE_X_CAPTURE. This bug only affect wxGTK from 2.3.2 to wxGTK 2.4.0. // - Furthermore this class is tempated over either wxWindows or wxGLCanvas, // in wxWindows 2.3.1 and earlier, the wxGLCanvas had scroll bars, you can avoid // this effect by playing with WX_BASE_CLASS at your risk (you might end up with // lot of flickering.) // - This class might not be easily readable as it tried to work with VTK 3.2 // and 4.x. This class doesn't support reparenting with VTK 4.2 and earlier. // .SECTION see also // wxVTKRenderWindowInteractor.py wxVTKRenderWindow.py #ifndef _wxVTKRenderWindowInteractor_h_ #define _wxVTKRenderWindowInteractor_h_ // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" #include #include #ifdef __BORLANDC__ # pragma hdrstop #endif #ifndef WX_PRECOMP #include #endif #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif // vtk includes #include "vtkRenderWindowInteractor.h" #include "vtkRenderWindow.h" #include "vtkINRIA3DConfigure.h" #if defined(__WXGTK__) #if defined(wxUSE_GLCANVAS) # include # include # else # error "problem of wxGLCanvas, you need to build wxWidgets with opengl" #endif #endif //__WXGTK__ // Motif version (renamed into wxX11 for wxWindow 2.4 and newer) #if defined(__WXMOTIF__) # error This GUI is not supported by wxVTKRenderWindowInteractor for now #endif // wx forward declarations class wxPaintEvent; class wxMouseEvent; class wxTimerEvent; class wxKeyEvent; class wxSizeEvent; class wxGLContext; #include #include #include #if defined(__WXGTK__) && defined(wxUSE_GLCANVAS) class wxVTKRenderWindowInteractor : public wxGLCanvas, public vtkRenderWindowInteractor, public GNC::GCS::IWidgetsRenderer #else class EXTAPI wxVTKRenderWindowInteractor : public wxWindow, public vtkRenderWindowInteractor, public GNC::GCS::IWidgetsRenderer #endif //__WXGTK__ { DECLARE_DYNAMIC_CLASS(wxVTKRenderWindowInteractor) public: //constructors wxVTKRenderWindowInteractor(); wxVTKRenderWindowInteractor(wxWindow *parent, wxWindowID id, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = wxWANTS_CHARS | wxNO_FULL_REPAINT_ON_RESIZE | wxCLIP_CHILDREN, const wxString &name = wxPanelNameStr); vtkTypeMacro(wxVTKRenderWindowInteractor,vtkRenderWindowInteractor); static wxVTKRenderWindowInteractor * New(); void PrintSelf(ostream& os, vtkIndent indent); //destructor ~wxVTKRenderWindowInteractor(); // vtkRenderWindowInteractor overrides void Initialize(); void Enable(); bool Enable(bool enable); void Disable(); void Start(); void UpdateSize(int x, int y); int CreateTimer(int timertype); int DestroyTimer(); void TerminateApp() {}; virtual bool Reparent( wxWindowBase *newParent ); // event handlers virtual void OnPaint(wxPaintEvent &event); virtual void OnEraseBackground (wxEraseEvent& event); virtual void OnMotion(wxMouseEvent &event); virtual void OnButtonDown(wxMouseEvent &event); virtual void OnButtonUp(wxMouseEvent &event); virtual void OnMouseDoubleClick(wxMouseEvent &event); #if !(VTK_MAJOR_VERSION == 3 && VTK_MINOR_VERSION == 1) virtual void OnEnter(wxMouseEvent &event); virtual void OnLeave(wxMouseEvent &event); virtual void OnMouseWheel(wxMouseEvent& event); virtual void OnMouseCaptureLost(wxMouseCaptureLostEvent& event); virtual void OnKeyDown(wxKeyEvent &event); virtual void OnKeyUp(wxKeyEvent &event); virtual void OnChar(wxKeyEvent &event); #endif virtual void OnTimer(wxTimerEvent &event); virtual void OnSize(wxSizeEvent &event); void Render(); void SetRenderWhenDisabled(int newValue); // Description: // Prescribe that the window be created in a stereo-capable mode. This // method must be called before the window is realized. Default if off. vtkGetMacro(Stereo,int); vtkBooleanMacro(Stereo,int); virtual void SetStereo(int capable); // Description: // As CaptureMouse could be a problem sometimes on a window box // This method allow to set or not the CaptureMouse. // This method actually will works only if WX_USE_X_CAPTURE was set to 1 vtkSetMacro(UseCaptureMouse,int); vtkBooleanMacro(UseCaptureMouse,int); #if VTK_MAJOR_VERSION > 5 || (VTK_MAJOR_VERSION == 5 && VTK_MINOR_VERSION >= 2) protected: virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration); virtual int InternalDestroyTimer(int platformTimerId); #endif protected: wxTimer timer; int ActiveButton; long GetHandleHack(); int Stereo; private: long Handle; bool Created; int RenderWhenDisabled; int UseCaptureMouse; #if defined(__WXGTK__) && defined(wxUSE_GLCANVAS) wxGLContext *GLContext; #endif //---------------------------------------------------------------------------------------------------- //region Interfaz IWidgetsRenderer public: virtual void PostRender(bool inmediato = false); virtual void WSetCurrent(); virtual void OnActivar(); //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de transformacion de coordenadas" public: virtual void DisplayToWorld(double displayPos[3], double worldPos[4]); virtual void WorldToDisplay(double worldPos[4], double displayPos[3]); /** Gets camera vectors (camPos, camDir, camUp) **/ void GetCamVectors(double camPos[4], double camDir[4], double camUp[4]); /** shots a ray from unproyected displayPos with camera direction and intersects with image plane **/ void RayPick(double displayPos[3], double worldPos[4]); /** shots a ray from campPos with camera direction and intersects with image plane **/ void RayPick(double worldPos[4]); //endregion //---------------------------------------------------------------------------------------------------- //region "Helpers de contexto de dibujado" protected: virtual void TransformarEvento(wxMouseEvent &event); virtual void TransformarEvento(wxKeyEvent &event); virtual void CrearContexto3D(int ancho, int alto); virtual void DestruirContexto3D(); /* Proyecta worlPos sobre el viewport, crea un rectángulo de lado 1, lo reproyecta al mundo y devuelve las dimensiones del cubo envolvente de esta ultima reproyección. * El resultado obtenido, sirve para calcular la proporción pixels pantalla <-> coordenadas mundo. * Si pos es NULL, se utiliza el centro del viewport como punto generador del rectángulo. * El resultado queda almacenado en el contexto de dibujado (miembro relacionMundoPantalla_{x,y,z}) */ virtual void CalcularRelacionPixelsPantalla(vtkRenderer* pRenderer); //endregion DECLARE_EVENT_TABLE() }; #endif //_wxVTKRenderWindowInteractor_h_ ginkgocadx-3.8.7/cadxcore/api/000077500000000000000000000000001314736454600162255ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/api.h000066400000000000000000000032421314736454600171500ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef API_H #define API_H #if defined(_WINDOWS) #pragma warning (disable : 4231) #pragma warning (disable : 4275) #pragma warning (disable : 4251) #define DEPRECATED(reason) __declspec(deprecated(reason)) #if defined(APIEXPORT) #if !defined(MONOLITIC) #define EXTAPI _declspec(dllexport) #define EXTAPI_TEMPLATE #else #define EXTAPI #define EXTAPI_TEMPLATE #endif #define NOINCLUDE #else #if !defined(MONOLITIC) #define EXTAPI _declspec(dllimport) #define EXTAPI_TEMPLATE extern #else #define EXTAPI #define EXTAPI_TEMPLATE #endif #define NOINCLUDE #error This file could not been included externally #endif #else #define DEPRECATED(reason) __attribute__((deprecated)) #if defined(APIEXPORT) #define EXTAPI __attribute__((visibility("default"))) #define EXTAPI_TEMPLATE #define NOINCLUDE #else #define EXTAPI #define EXTAPI_TEMPLATE extern #define NOINCLUDE #error This file could not been included externally #endif #endif #endif ginkgocadx-3.8.7/cadxcore/api/apitest.h000066400000000000000000000021471314736454600200530ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #if defined(_WINDOWS) #pragma warning (disable : 4231) #pragma warning (disable : 4275) #pragma warning (disable : 4251) #if defined(LIBTEST_EXPORTS) #define EXTTEST _declspec(dllimport) #else #define EXTTEST _declspec(dllexport) #endif #else #if defined(LIBTEST_EXPORTS) #define EXTTEST #else #define EXTTEST __attribute__((visibility("default"))) #endif #endif ginkgocadx-3.8.7/cadxcore/api/autoptr.cpp000066400000000000000000000026001314736454600204250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include //---------------------------------------------------------------------------------------------------- GNC::GCS::NullPointerException::NullPointerException() throw() : GNC::GCS::IException(_Std("Attempted to dereference null pointer")) { } GNC::GCS::NullPointerException::~NullPointerException() throw() { } //---------------------------------------------------------------------------------------------------- GNC::PtrCounter::PtrCounter(unsigned c) : count(c) { } //---------------------------------------------------------------------------------------------------- ginkgocadx-3.8.7/cadxcore/api/autoptr.h000066400000000000000000000323751314736454600201060ustar00rootroot00000000000000#pragma once /* * * $Id: autoptr.h $ * Ginkgo CADx Project * * Code based on yasper * ========================== * * yasper - A non-intrusive reference counted pointer. * Version: 1.04 * * Many ideas borrowed from Yonat Sharon and * Andrei Alexandrescu. * * (zlib license) * ---------------------------------------------------------------------------------- * Copyright (C) 2005-2007 Alex Rubinsteyn * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * 3. This notice may not be removed or altered from any source distribution. * * ----------------------------------------------------------------------------------- * * Send all questions, comments and bug reports to: * Alex Rubinsteyn (alex.rubinsteyn {at-nospam} gmail {dot} com) */ #ifndef AUTOPTR_H #define AUTOPTR_H #include #include #include #include #include #include namespace GNC { //---------------------------------------------------------------------------------------------------- class EXTAPI PtrCounter : public GNC::GCS::ILockable { public: PtrCounter(unsigned c = 1); unsigned count; }; } namespace GNC { namespace GCS { //---------------------------------------------------------------------------------------------------- class EXTAPI NullPointerException : public GNC::GCS::IException { public: NullPointerException() throw(); ~NullPointerException() throw(); }; template class Ptr : public ILockable { public: typedef X element_type; /* Ptr needs to be its own friend so Ptr< X > and Ptr< Y > can access each other's private data members */ template friend class Ptr; /** default constructor - don't create Counter **/ Ptr() : rawPtr(0), counter(0) { } /** Construct from a raw pointer **/ Ptr(X* raw, PtrCounter* c = 0) : rawPtr(0), counter(0) { if (raw) { if (c) { GNC::GCS::ILocker clock(c); acquire(c); rawPtr = raw; } else { counter = new PtrCounter; rawPtr = raw; } } } template explicit Ptr(Y* raw, PtrCounter* c = 0) : rawPtr(0), counter(0) { if (raw) { if (c) { GNC::GCS::ILocker clock(c); acquire(c); rawPtr = static_cast( raw ); } else { rawPtr = static_cast( raw ); counter = new PtrCounter; } } } /* Copy constructor */ Ptr(const Ptr< X >& otherPtr) { GNC::GCS::ILocker olock((Ptr*) &otherPtr); if (otherPtr.counter) { GNC::GCS::ILocker clock(otherPtr.counter); acquire( otherPtr.counter ); rawPtr = otherPtr.rawPtr; } else { counter = NULL; rawPtr = NULL; } } template explicit Ptr(const Ptr< Y >& otherPtr) : rawPtr(0), counter(0) { GNC::GCS::ILocker olock( (Ptr*) &otherPtr ); if (otherPtr.counter) { GNC::GCS::ILocker clock(otherPtr.counter); acquire(otherPtr.counter); rawPtr = static_cast( otherPtr.rawPtr ); } } /* Destructor */ ~Ptr() { GNC::GCS::ILocker lock(this); release(); } /* Assignment to another Ptr */ Ptr& operator=(const Ptr< X >& otherPtr) { if (this != &otherPtr) { release(); if (otherPtr.counter) { GNC::GCS::ILocker cLock(otherPtr.counter); acquire(otherPtr.counter); rawPtr = static_cast (otherPtr.rawPtr); } else { rawPtr = NULL; counter = NULL; } } return *this; } template Ptr& operator=(const Ptr< Y >& otherPtr) { GNC::GCS::ILocker lock(this); GNC::GCS::ILocker olock((Ptr*) &otherPtr); if ( this != (Ptr< X >*) &otherPtr ) { release(); if (otherPtr.counter) { GNC::GCS::ILocker clock (otherPtr.counter); acquire(otherPtr.counter); rawPtr = static_cast (otherPtr.rawPtr); } } return *this; } /* Assignment to raw pointers is really dangerous business. If the raw pointer is also being used elsewhere, we might prematurely delete it, causing much pain. Use sparingly/with caution. */ Ptr& operator=(X* raw) { GNC::GCS::ILocker lock(this); if (raw) { release(); PtrCounter* c = new PtrCounter; GNC::GCS::ILocker lock(c); counter = c; rawPtr = raw; } return *this; } template Ptr& operator=(Y* raw) { GNC::GCS::ILocker lock(this); if (raw) { release(); PtrCounter* c = new PtrCounter(); GNC::GCS::ILocker lock(c); counter = c; rawPtr = static_cast(raw); } return *this; } /* assignment to long to allow Ptr< X > = NULL, also allows raw pointer assignment by conversion. Raw pointer assignment is really dangerous! If the raw pointer is being used elsewhere, it will get deleted prematurely. */ Ptr& operator=(long num) { GNC::GCS::ILocker lock(this); if (num == 0) { //pointer set to null release(); } else { //assign raw pointer by conversion release(); PtrCounter* c = new PtrCounter(); GNC::GCS::ILocker lock(c); counter = c; rawPtr = reinterpret_cast(num); } return *this; } /* Member Access */ X* operator->() const { return GetRawPointer(); } /* Dereference the pointer */ X& operator* () const { return *GetRawPointer(); } /* Conversion/casting operators */ operator bool() const { return IsValid(); } /* implicit casts to base types of the the pointer we're storing */ template operator Y*() const { return static_cast(rawPtr); } template operator const Y*() const { return static_cast(rawPtr); } template operator Ptr() { //new Ptr must also take our counter or else the reference counts //will go out of sync return Ptr(rawPtr, counter); } /* Provide access to the raw pointer */ X* GetRawPointer() const { X* r = NULL; r = rawPtr; if (r == 0) { throw new GNC::GCS::NullPointerException; } return r; } /* Is there only one reference on the counter? */ bool IsUnique() const { bool unique = false; if (counter) { unique = (counter->count == 1); } else { unique = true; } return unique; } bool IsValid() const { bool valid = false; if (counter) { valid = (rawPtr != NULL); } return valid; } unsigned GetCount() const { int count = 0; if (counter) { count = counter->count; } return 0; } private: X* rawPtr; PtrCounter* counter; // increment the count void acquire(PtrCounter* c) { counter = c; (c->count)++; } // decrement the count, delete if it is 0 void release() { if (counter) { PtrCounter* c = counter; bool doDelete = false; X* r = NULL; { GNC::GCS::ILocker lock(c); r = rawPtr; (c->count)--; if (c->count == 0) { counter = NULL; rawPtr = NULL; doDelete = true; } } if (doDelete) { delete c; delete r; } } } }; template bool operator==(const Ptr< X >& lPtr, const Ptr< Y >& rPtr) { return lPtr.GetRawPointer() == rPtr.GetRawPointer(); } template bool operator==(const Ptr< X >& lPtr, Y* raw) { return lPtr.GetRawPointer() == raw ; } template bool operator==(const Ptr< X >& lPtr, long num) { if (num == 0 && !lPtr.IsValid()) { //both pointer and address are null return true; } else { //convert num to a pointer, compare addresses return lPtr == reinterpret_cast(num); } } template bool operator!=(const Ptr< X >& lPtr, const Ptr< Y >& rPtr) { return ( !operator==(lPtr, rPtr) ); } template bool operator!=(const Ptr< X >& lPtr, Y* raw) { return ( !operator==(lPtr, raw) ); } template bool operator!=(const Ptr< X >& lPtr, long num) { return (!operator==(lPtr, num) ); } template bool operator&&(const Ptr< X >& lPtr, const Ptr< Y >& rPtr) { return lPtr.IsValid() && rPtr.IsValid(); } template bool operator&&(const Ptr< X >& lPtr, bool rval) { return lPtr.IsValid() && rval; } template bool operator&&(bool lval, const Ptr< X >& rPtr) { return lval && rPtr.IsValid(); } template bool operator||(const Ptr< X >& lPtr, const Ptr< Y >& rPtr) { return lPtr.IsValid() || rPtr.IsValid(); } template bool operator||(const Ptr< X >& lPtr, bool rval) { return lPtr.IsValid() || rval; } template bool operator||(bool lval, const Ptr< X >& rPtr) { return lval || rPtr.IsValid(); } template bool operator!(const Ptr< X >& p) { return (!p.IsValid()); } /* less than comparisons for storage in containers */ template bool operator< (const Ptr< X >& lPtr, const Ptr < Y >& rPtr) { return lPtr.GetRawPointer() < rPtr.GetRawPointer(); } template bool operator< (const Ptr< X >& lPtr, Y* raw) { return lPtr.GetRawPointer() < raw; } template bool operator< (X* raw, const Ptr< Y >& rPtr) { return raw < rPtr.GetRawPointer(); } } } #endif ginkgocadx-3.8.7/cadxcore/api/cloud.h000066400000000000000000000015001314736454600175000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #define GINKGO_CLOUD_URI "" #define GINKGO_CLOUD_DEFAULT_BUCKET "public" ginkgocadx-3.8.7/cadxcore/api/controllers/000077500000000000000000000000001314736454600205735ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/controllers/anonusagestatsids.h000066400000000000000000000034241314736454600245060ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once /**Ids use to send anonymous statistics about usage of the app*/ //viewers usage #define ANON_STAT_VIEW_OS "VIEW_OS" #define ANON_STAT_VIEW_ECG "VIEW_ECG" //dicomizers usage #define ANON_STAT_DICOMIZE "DICOMIZE_" //file acquisition usage #define ANON_STAT_OPEN_FILE "OPEN_FILE" #define ANON_STAT_OPEN_FOLDER "OPEN_FOLDER" #define ANON_STAT_OPEN_CD "OPEN_CD" #define ANON_STAT_OPEN_CLOUD "OPEN_CLOUD" //system usage #define ANON_STAT_RUN_GINKGO "RUN_GINKGO" //other options usage #define ANON_STAT_DLG_CLOUD_SEARCH "DLG_CLOUD_SEARCH" #define ANON_STAT_DLG_PACS_SEARCH "DLG_PACS_SEARCH" #define ANON_STAT_DLG_PACS_UPLOAD "DLG_PACS_UPLOAD" #define ANON_STAT_DLG_HISTORY "DLG_HISTORY" #define ANON_STAT_DLG_EXPORT "DLG_EXPORT" #define ANON_STAT_DLG_DICOM_DIR_EXPORT "DLG_DICOM_DIR_EXPORT" //integration usage #define ANON_STAT_INT_URL "INT_URL" #define ANON_STAT_INT_DICOMIZE "INT_DICOMIZE" #define ANON_STAT_INT_RETRIEVE "INT_RETRIEVE" #define ANON_STAT_INT_OPEN "INT_OPEN" //license acceptance #define ANON_STAT_ACCEPT_LICENSE "ACCEPT_LICENSE" ginkgocadx-3.8.7/cadxcore/api/controllers/icommandcontroller.cpp000066400000000000000000000025271314736454600252000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "icommandcontroller.h" #include
GNC::GCS::CommandControllerException::CommandControllerException(const std::string& msg, const std::string& componente, bool fatal) throw() : GNC::GCS::IException(msg, componente, fatal) { } GNC::GCS::ICommandController::ICommandController() { } GNC::GCS::ICommandController::~ICommandController() { } GNC::GCS::ICommandController* GNC::GCS::ICommandController::Instance() { return GNC::CommandController::Instance(); } void GNC::GCS::ICommandController::FreeInstance() { GNC::CommandController::FreeInstance(); } ginkgocadx-3.8.7/cadxcore/api/controllers/icommandcontroller.h000066400000000000000000000036231314736454600246430ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ICOMMANDSCONTROLLER_H #define ICOMMANDSCONTROLLER_H #include #include #include namespace GNC { namespace GCS { class EXTAPI CommandControllerException : public GNC::GCS::IException { public: CommandControllerException(const std::string& msg, const std::string& componente = "Model", bool fatal = true) throw(); }; class EXTAPI ICommandController { protected: ICommandController(); virtual ~ICommandController(); public: static ICommandController* Instance(); static void FreeInstance(); virtual void ProcessSync(IComando*, bool autodelete, bool update = true, GNC::INotificadorProgreso* pNotifier = NULL) = 0; virtual void ProcessAsync(const std::string& descr, IComando*, void* owner) = 0; virtual void AbortarComando(long threadId, bool sincrono = true) = 0; virtual void AbortarComandosDeOwner(void* owner) = 0; virtual void AbortarComandosDeOwnerAsincrono(void* owner) = 0; virtual void AbortarComando(IComando* pComando, bool sincrono = true) = 0; virtual unsigned int GetNumActiveCommands() = 0; }; } } #endif ginkgocadx-3.8.7/cadxcore/api/controllers/iconfigurationcontroller.cpp000066400000000000000000000024141314736454600264240ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iconfigurationcontroller.h" #include #include #include
GNC::GCS::IConfigurationController::IConfigurationController() { } GNC::GCS::IConfigurationController::~IConfigurationController() { } GNC::GCS::IConfigurationController* GNC::GCS::IConfigurationController::Instance() { return GNC::GCS::ConfigurationController::Instance(); } void GNC::GCS::IConfigurationController::FreeInstance() { GNC::GCS::ConfigurationController::FreeInstance(); } ginkgocadx-3.8.7/cadxcore/api/controllers/iconfigurationcontroller.h000066400000000000000000000124041314736454600260710ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include namespace GNC { namespace GCS { class EXTAPI IConfigurationController { public: class TMapValues: public std::map { public: bool readStringValue(const std::string& key, std::string& value, const std::string& defaultValue = "") { if (find(key) != end()) { value = (*this)[key]; return true; } else { value = defaultValue; return false; } } bool readBoolValue(const std::string& key, bool& value, bool defaultValue = true) { if (find(key) != end()) { std::istringstream istr((*this)[key]); istr >> value; return true; } else { value = defaultValue; return false; } } bool readIntValue(const std::string& key, int& value, int defaultValue = 0) { if (find(key) != end()) { std::istringstream istr((*this)[key]); istr >> value; return true; } else { value = defaultValue; return false; } } void insertInt(const std::string& key, int value) { std::ostringstream ostr; ostr << value; (*this)[key] = ostr.str(); } void insertBool(const std::string& key, bool value) { std::ostringstream ostr; ostr << value; (*this)[key] = ostr.str(); } }; typedef std::list TListGroups; virtual void Flush() = 0; virtual bool deleteEntryGeneral(const std::string& scope, const std::string&key = "") = 0; virtual bool writeStringGeneral(const std::string& scope, const std::string& key, const std::string& value) = 0; virtual bool readStringGeneral(const std::string& scope, const std::string& key, std::string& value, const std::string& defaultValue = "") = 0; virtual bool writeBoolGeneral(const std::string& scope, const std::string& key, bool value) = 0; virtual bool readBoolGeneral(const std::string& scope, const std::string& key, bool& value, bool defaultValue = true) = 0; virtual bool readIntGeneral(const std::string& scope, const std::string& key, int& value, int defaultValue = 0) = 0; virtual bool writeIntGeneral(const std::string& scope, const std::string& key, int value) = 0; virtual bool writeGroupGeneral(const std::string& scope, const TListGroups& listOfGroups, const std::string& prefix = "") = 0; virtual bool readGroupGeneral(const std::string& scope, TListGroups& listOfGroups) = 0; virtual bool deleteEntryUser(const std::string& scope, const std::string&key = "") = 0; virtual bool writeStringUser(const std::string& scope, const std::string& key, const std::string& value) = 0; virtual bool readStringUser(const std::string& scope, const std::string& key, std::string& value, const std::string& defaultValue = "") = 0; virtual bool readBoolUser(const std::string& scope, const std::string& key, bool& value, bool defaultValue = true) = 0; virtual bool writeBoolUser(const std::string& scope, const std::string& key, bool value) = 0; virtual bool readIntUser(const std::string& scope, const std::string& key, int& value, int defaultValue = 0) = 0; virtual bool writeIntUser(const std::string& scope, const std::string& key, int value) = 0; virtual bool writeGroupUser(const std::string& scope, const TListGroups& listOfGroups, const std::string& prefix = "") = 0; virtual bool readGroupUser(const std::string& scope, TListGroups& listOfGroups) = 0; static IConfigurationController* Instance(); static void FreeInstance(); protected: IConfigurationController(); virtual ~IConfigurationController(); }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladoracciones.cpp000066400000000000000000000033161314736454600255060ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "icontroladoracciones.h" #include #include #include
GNC::GCS::Accion::Accion(const std::string& nombre, bool puedeRehacerse, const int peso) : m_nombre(nombre), m_peso(peso), m_puedeRehacerse(puedeRehacerse) { } GNC::GCS::Accion::~Accion() { } const std::string& GNC::GCS::Accion::GetNombre() { return m_nombre; } bool GNC::GCS::Accion::PuedeRehacer() { return m_puedeRehacerse; } void GNC::GCS::Accion::SetPuedeRehacerse(bool puedeRehacerse) { m_puedeRehacerse = puedeRehacerse; } void GNC::GCS::Accion::Hacer() { } GNC::GCS::IControladorAcciones::IControladorAcciones() { } GNC::GCS::IControladorAcciones::~IControladorAcciones() { } GNC::GCS::IControladorAcciones* GNC::GCS::IControladorAcciones::Instance() { return GNC::GCS::ControladorAcciones::Instance(); } void GNC::GCS::IControladorAcciones::FreeInstance() { GNC::GCS::ControladorAcciones::FreeInstance(); } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladoracciones.h000066400000000000000000000032151314736454600251510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { namespace GCS { class IVista; } } namespace GNC { namespace GCS { class EXTAPI Accion { public: Accion(const std::string& nombre, bool puedeRehacerse = true, const int peso = 1); virtual ~Accion(); virtual const std::string& GetNombre(); virtual void Deshacer() = 0; virtual bool PuedeRehacer(); virtual void Hacer(); protected: virtual void SetPuedeRehacerse(bool puedeRehacerse = true); std::string m_nombre; int m_peso; bool m_puedeRehacerse; }; class EXTAPI IControladorAcciones { protected: IControladorAcciones(); ~IControladorAcciones(); public: static IControladorAcciones* Instance(); static void FreeInstance(); virtual void PushAccion(GNC::GCS::IVista* pVista, GNC::GCS::Ptr pAccion) = 0; protected: }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladorautenticacion.h000066400000000000000000000030031314736454600262060ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include class IModeloDicom; namespace GNC { namespace GCS { class IEntorno; } class IProxyNotificadorProgreso; } namespace GSEC { namespace Auth { class AuthException : GNC::GCS::IException { public: AuthException(const std::string& msg, const std::string& componente="GSEC/Auth", bool _fatal = true) : GNC::GCS::IException(msg, componente, _fatal) { } ~AuthException() throw() { } }; class EXTAPI IControladorAutenticacion { public: virtual bool Auth (const std::string& usuario, const std::string& password) = 0; protected: IControladorAutenticacion() { } virtual ~IControladorAutenticacion() { } }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladorcarga.cpp000066400000000000000000000023501314736454600247740ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "icontroladorcarga.h" GNC::GCS::ControladorCargaException::ControladorCargaException(const std::string& msg, const std::string& componente, bool fatal) : GNC::GCS::IException(msg, componente, fatal) { } GNC::GCS::ControladorCargaException::~ControladorCargaException() throw() { } GNC::GCS::IControladorCarga::IControladorCarga() { } GNC::GCS::IControladorCarga::~IControladorCarga() { } GNC::GCS::IStreamingLoader::IStreamingLoader() { } GNC::GCS::IStreamingLoader::~IStreamingLoader() { } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladorcarga.h000066400000000000000000000063141314736454600244450ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include namespace GIL { class IModeloIntegracion; } namespace GNC { namespace GCS { class IVista; } } class vtkImageData; class vtkAlgorithmOutput; namespace GNC { namespace GCS { class ControladorCargaException : public GNC::GCS::IException { public: ControladorCargaException(const std::string& msg, const std::string& componente="Modelo", bool fatal = true); ~ControladorCargaException() throw(); protected: }; class IStreamingLoader; class IControladorCarga { public: typedef std::list ListaRutas; typedef std::list TListaDeListaDeRutas; virtual vtkSmartPointer CargarITKMultidimensional(IComando* cmd, ListaRutas& listaFicheros, int* orientacion, double* spacing = NULL) = 0; virtual vtkSmartPointer CargarITK(IComando* cmd, std::string& path, int* orientacion, double* spacing = NULL) = 0; virtual void CargaAsincrona(GNC::GCS::IVista* pVista, const bool loadFirst = true) = 0; //region Creacion y destruccion de componente de carga en streaming virtual IStreamingLoader* NewLoader() = 0; virtual void FreeLoader(GNC::GCS::IStreamingLoader** loader) = 0; //endregion protected: IControladorCarga(); ~IControladorCarga(); }; class EXTAPI IStreamingLoader : public IPipelineProperties, public GNC::GCS::ILockable { public: //region Constructor IStreamingLoader(); virtual ~IStreamingLoader(); virtual bool IsSignalFile() = 0; /** Fija un fichero de entrada y reestablece el pipeline interno de carga si es necesario **/ virtual void SetInput(const std::string& fichero) = 0; /** Devuelve el puerto de salida **/ virtual vtkSmartPointer GetOutputPort() = 0; /** Devuelve por parametro una copia de la imagen **/ virtual void GetOutputCopy(vtkSmartPointer& output) = 0; /** establece el spacing **/ virtual void SetOutputSpacing(double spacing[3]) = 0; /** establece el origen **/ virtual void SetOutputOrigin(double origin[3]) = 0; /** **/ virtual std::string GetPatientPosition() = 0; }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladorextensiones.h000066400000000000000000000050021314736454600257250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include class PrivateExtension; namespace GADVAPI { class EXTAPI IPrivateExtensionWrapper { public: virtual ~IPrivateExtensionWrapper() {} #if defined(MONOLITIC) virtual bool Load(PrivateExtension* pExt) = 0; #else virtual bool Load() = 0; #endif virtual bool UnLoad() = 0; virtual bool IsLoaded() const = 0; virtual bool IsActivated() const { return true; } virtual const std::string& GetProvider() const = 0; virtual const std::string& GetDescription() const = 0; virtual const std::string& GetUpdateURL() const = 0; virtual const std::string& GetError() const = 0; virtual PrivateExtension* GetExtension() = 0; }; class EXTAPI PrivateExtensionManager : private std::map { public: typedef std::map Base; typedef Base::iterator iterator; PrivateExtensionManager(); ~PrivateExtensionManager(); IPrivateExtensionWrapper* GetExtension(const std::string& nombre); void Scan(); void UnLoadAll(); iterator begin(); iterator end(); }; } namespace GNC { namespace GCS { class EXTAPI IExtensionException : public IException { public: protected: IExtensionException(const std::string& msg, const std::string& component="GNC", bool fatal = true) throw(); ~IExtensionException() throw(); }; class EXTAPI IControladorExtensiones { public: virtual GADVAPI::PrivateExtensionManager& GetPrivateExtensionsManager() = 0; protected: IControladorExtensiones(); virtual ~IControladorExtensiones(); }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladorinternacionalizacion.h000066400000000000000000000020211314736454600275620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include namespace GNC { namespace GCS { class IControladorInternacionalizacion { public: IControladorInternacionalizacion() { } virtual ~IControladorInternacionalizacion() { } virtual void AddCatalog(const std::string& catalogName) = 0; }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladorlog.cpp000066400000000000000000000021641314736454600245030ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "icontroladorlog.h" #include
GNC::GCS::IControladorLog* GNC::GCS::IControladorLog::Instance() { return GNC::ControladorLog::Instance(); } void GNC::GCS::IControladorLog::FreeInstance() { GNC::ControladorLog::FreeInstance(); } GNC::GCS::IControladorLog::IControladorLog() { } GNC::GCS::IControladorLog::~IControladorLog() { } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladorlog.h000066400000000000000000000103031314736454600241420ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ILOGCONTROLLER_H #define ILOGCONTROLLER_H #include #include #include #define LOG_FATAL(logger, mensaje) \ { \ GNC::GCS::IControladorLog* cL = GNC::GCS::IControladorLog::Instance(); \ if (cL != NULL && cL->IsEnabledFor(GNC::GCS::IControladorLog::FatalLog) ) { \ std::ostringstream _buf;\ _buf << mensaje;\ cL->Log(logger,_buf.str(),GNC::GCS::IControladorLog::FatalLog);\ } \ } #define LOG_ERROR(logger, mensaje) \ { \ GNC::GCS::IControladorLog* cL = GNC::GCS::IControladorLog::Instance(); \ if (cL != NULL && cL->IsEnabledFor(GNC::GCS::IControladorLog::ErrorLog) ) { \ std::ostringstream _buf;\ _buf << mensaje;\ cL->Log(logger,_buf.str(),GNC::GCS::IControladorLog::ErrorLog);\ } \ } #define LOG_WARN(logger, mensaje) \ { \ GNC::GCS::IControladorLog* cL = GNC::GCS::IControladorLog::Instance(); \ if (cL != NULL && cL->IsEnabledFor(GNC::GCS::IControladorLog::WarnLog) ) { \ std::ostringstream _buf;\ _buf << mensaje;\ cL->Log(logger,_buf.str(),GNC::GCS::IControladorLog::WarnLog);\ } \ } #define LOG_INFO(logger, mensaje) \ { \ GNC::GCS::IControladorLog* cL = GNC::GCS::IControladorLog::Instance(); \ if (cL != NULL && cL->IsEnabledFor(GNC::GCS::IControladorLog::InfoLog) ) { \ std::ostringstream _buf;\ _buf << mensaje;\ cL->Log(logger,_buf.str(),GNC::GCS::IControladorLog::InfoLog);\ } \ } #define LOG_DEBUG(logger, mensaje) \ { \ GNC::GCS::IControladorLog* cL = GNC::GCS::IControladorLog::Instance(); \ if (cL != NULL && cL->IsEnabledFor(GNC::GCS::IControladorLog::DebugLog) ) { \ std::ostringstream _buf;\ _buf << mensaje;\ cL->Log(logger,_buf.str(),GNC::GCS::IControladorLog::DebugLog);\ } \ } #define LOG_TRACE(logger, mensaje) \ { \ GNC::GCS::IControladorLog* cL = GNC::GCS::IControladorLog::Instance(); \ if (cL != NULL && cL->IsEnabledFor(GNC::GCS::IControladorLog::TraceLog) ) { \ std::ostringstream _buf;\ _buf << mensaje;\ cL->Log(logger,_buf.str(),GNC::GCS::IControladorLog::TraceLog);\ } \ } namespace GNC { namespace GCS { class EXTAPI IControladorLog { public: typedef std::map MapaLogLevels; public: typedef enum { NoLog = 0, FatalLog, ErrorLog, WarnLog, InfoLog, DebugLog, TraceLog } LogLevel; static IControladorLog* Instance(); static void FreeInstance(); protected: //--- Constructores IControladorLog(); virtual ~IControladorLog(); public: //log en el logger por defecto virtual void Log(const std::string& mensaje, LogLevel logLevel = DebugLog) = 0; //log en otro logger virtual void Log(const std::string& logger, const std::string& mensaje,LogLevel logLevel = DebugLog) = 0; //logs con contexto virtual void LogConContexto(const std::string& contexto, const std::string& mensaje,LogLevel logLevel = DebugLog) = 0; //logs en logger especifico con contexto virtual void LogConContexto(const std::string& logger, const std::string& contexto, const std::string& mensaje,LogLevel logLevel = DebugLog) = 0; virtual bool IsEnabledFor(LogLevel logLevel) = 0; virtual void GetLogLevelsMap(GNC::GCS::IControladorLog::MapaLogLevels& levels) = 0; virtual int GetLogLevelCode(const std::string& level) = 0; virtual int GetActiveLogLevel() = 0; virtual void SetActiveLogLevel(int logLevel) = 0; }; } } #endif ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladorpermisos.cpp000066400000000000000000000025141314736454600255620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "icontroladorpermisos.h" #include
GNC::GCS::ControladorPermisosException::ControladorPermisosException(const std::string& msg, bool fatal) throw() : GNC::GCS::IException(msg, "GNC", fatal) { } GNC::GCS::IControladorPermisos::IControladorPermisos() { } GNC::GCS::IControladorPermisos::~IControladorPermisos() { } GNC::GCS::IControladorPermisos* GNC::GCS::IControladorPermisos::Instance() { return GNC::ControladorPermisos::Instance(); } void GNC::GCS::IControladorPermisos::FreeInstance() { GNC::ControladorPermisos::FreeInstance(); } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladorpermisos.h000066400000000000000000000122321314736454600252250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include namespace GNC { namespace GCS { class EXTAPI ControladorPermisosException : public GNC::GCS::IException { public: ControladorPermisosException(const std::string& msg, bool fatal = true) throw(); }; namespace Permisos { class EstadoPermiso { public: EstadoPermiso() { m_Activo = m_ActivoPorDefecto = false; m_PermisoValido = false; } EstadoPermiso(const EstadoPermiso* const o) { if (o != NULL) { *this = *o; } else { m_Activo = m_ActivoPorDefecto = true; m_PermisoValido = false; } } EstadoPermiso(const EstadoPermiso& o) { *this = o; } EstadoPermiso(const std::string& valorPorDefecto, bool activoPorDefecto) : m_ActivoPorDefecto(activoPorDefecto), m_ValorPorDefecto(valorPorDefecto) { m_PermisoValido = true; Reset(); } EstadoPermiso(const std::string& valorPorDefecto, const std::string& valor, bool activoPorDefecto, bool activo) : m_Activo(activo), m_ActivoPorDefecto(activoPorDefecto), m_Valor(valor), m_ValorPorDefecto(valorPorDefecto) { m_PermisoValido = true; } void Reset() { m_Activo = m_ActivoPorDefecto; m_Valor = m_ValorPorDefecto; } void Activar(bool activo) { m_Activo = activo; } bool Activo() const { return m_Activo; } bool TieneValorPorDefecto() const { return m_Valor == m_ValorPorDefecto && m_Activo == m_ActivoPorDefecto; } const std::string& GetRawValue() const { return m_Valor; } template T ObtenerValor() const { T v; if (!m_Activo) { std::istringstream is(m_ValorPorDefecto); is >> v; } else { std::istringstream is(m_Valor); is >> v; } return v; } template void AsignarValor(T valor) { std::ostringstream os; os << valor; m_Valor = os.str(); } EstadoPermiso& operator = (const EstadoPermiso& o) { this->m_Valor = o.m_Valor; this->m_ValorPorDefecto = o.m_ValorPorDefecto; this->m_Activo = o.m_Activo; this->m_ActivoPorDefecto = o.m_ActivoPorDefecto; this->m_PermisoValido = o.m_PermisoValido; return *this; } bool ValidoYActivo() const { return m_PermisoValido && m_Activo; } operator bool () const { return ValidoYActivo(); } private: bool m_Activo; bool m_ActivoPorDefecto; std::string m_Valor; std::string m_ValorPorDefecto; bool m_PermisoValido; }; } class EXTAPI IControladorPermisos { protected: IControladorPermisos(); virtual ~IControladorPermisos(); public: static IControladorPermisos* Instance(); static void FreeInstance(); /** Carga el fichero XML de permisos **/ virtual void CargarXMLPermisos(const std::string& xmlPermisos, bool privados = false) = 0; /** Resetea el estado y valor de todos los permisos a sus valores por defecto **/ virtual void ResetearValoresPorDefecto() = 0; /** Metodo recomendado para obtener permisos **/ virtual GNC::GCS::Permisos::EstadoPermiso* ObtenerPermiso(const std::string& stdNamespace, const std::string& idSujeto) = 0; /** Metodo recomendado para comprobar permisos **/ virtual GNC::GCS::Permisos::EstadoPermiso Get(const std::string& stdNamespace, const std::string& idSujeto) = 0; /** Anyade una nueva definicion de permiso al conjunto **/ virtual void AddDefinicionPermiso(const std::string& espacioNombres, const std::string& descripcionNamespace, const std::string& id, const std::string& descripcion, bool privado, const std::string& valorPorDefecto, bool activoPorDefecto) = 0; }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladorvistas.cpp000066400000000000000000000022371314736454600252340ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "icontroladorvistas.h" #include
GNC::GCS::IControladorVistas::IControladorVistas() { } GNC::GCS::IControladorVistas::~IControladorVistas() { } GNC::GCS::IControladorVistas* GNC::GCS::IControladorVistas::Instance() { return GNC::GCS::ControladorVistas::Instance(); } void GNC::GCS::IControladorVistas::FreeInstance() { GNC::GCS::ControladorVistas::FreeInstance(); } ginkgocadx-3.8.7/cadxcore/api/controllers/icontroladorvistas.h000066400000000000000000000040171314736454600246770ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include class wxWindow; namespace GNC { namespace GCS { class EXTAPI IControladorVistas { public: typedef std::list TipoListaVistas; static IControladorVistas* Instance(); static void FreeInstance(); virtual wxWindow* GetRootWindow() = 0; virtual void Freeze() = 0; virtual void Thaw() = 0; virtual void SetTitulo(GNC::GCS::IVista* pVista, const std::string& titulo) = 0; virtual std::string GetTitulo(GNC::GCS::IVista* pVista) = 0; virtual void Registrar(GNC::GCS::IVista* pVista) = 0; virtual void Destruir(GNC::GCS::IVista* pVista) = 0; virtual void Destruir(wxWindow* pVentana) = 0; //region "Getters de vistas activas" virtual GNC::GCS::IVista* GetVistaActiva() = 0; //endregion //region "Propagacion de eventos de cambios de configuracion virtual void PropagarConfiguracionCambiada() = 0; //endregion //region "Gestion de carga y descarga de vistas" virtual void SolicitarActivarVista(GNC::GCS::IVista* pVista) = 0; //endregion virtual TipoListaVistas GetVistas() = 0; protected: virtual ~IControladorVistas(); IControladorVistas(); }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/ieventscontroller.cpp000066400000000000000000000022321314736454600250570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ieventscontroller.h" #include
GNC::GCS::IEventsController::IEventsController() { } GNC::GCS::IEventsController::~IEventsController() { } GNC::GCS::IEventsController* GNC::GCS::IEventsController::Instance() { return GNC::GCS::ControladorEventos::Instance(); } void GNC::GCS::IEventsController::FreeInstance() { GNC::GCS::ControladorEventos::FreeInstance(); } ginkgocadx-3.8.7/cadxcore/api/controllers/ieventscontroller.h000066400000000000000000000041031314736454600245230ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include //---------------------------------------------------------------------------------------------------- //region Forward Declarations namespace GNC { namespace GCS { class IEventsObserver; namespace Events { class IEvent; } } } //endregion namespace GNC { namespace GCS { //==================================================================================================== //= Interfaz del controlador de eventos //==================================================================================================== class EXTAPI IEventsController { protected: IEventsController(); virtual ~IEventsController(); public: static IEventsController* Instance(); static void FreeInstance(); //se apunta a escuchar un evento virtual void Registrar (GNC::GCS::IEventsObserver* pObservador, const GNC::GCS::Events::IEvent& evento) = 0; //se desapunta de escuchar un evento virtual void DesRegistrar (GNC::GCS::IEventsObserver* pObservador, const GNC::GCS::Events::IEvent& evento) = 0; //se desapunta de todos los eventos a los que escucha virtual void DesRegistrar (GNC::GCS::IEventsObserver* pObservador) = 0; //avisa a los observadores registrados a este evento virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt) = 0; }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/ihistorycontroller.cpp000066400000000000000000000057421314736454600252650ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ihistorycontroller.h" #include
GNC::GCS::IHistoryController::IHistoryController() { } GNC::GCS::IHistoryController::~IHistoryController() { } GNC::GCS::IHistoryController::StudyModel::StudyModel() : pk(-1), pat_sex('?'), num_series(-1), num_instances(-1), location(TL_LocalDatabase) { } GNC::GCS::IHistoryController::SeriesModel::SeriesModel() : pk(-1), study_fk(-1), num_instances(-1), location(TL_LocalDatabase) { pk = -1; } GNC::GCS::IHistoryController::FileModel::FileModel() : pk(-1), series_fk(-1), orientation('A'), slice_location(0.0), slice_thickness(0.0), height(0), width(0), number_of_frames(0), instance_number(0), location(TL_LocalDatabase) { image_position[0] = 0.0; image_position[1] = 0.0; image_position[2] = 0.0; } GNC::GCS::IHistoryController::FileModel::~FileModel() { } GNC::GCS::IHistoryController::LightFileModel::LightFileModel() : pk(-1), series_fk(-1), location(TL_LocalDatabase) { } GNC::GCS::IHistoryController::LightFileModel::~LightFileModel() { } GNC::GCS::IHistoryController::TAddError::TAddError(TError error, const std::string& path) { this->error = error; this->path = path; } GNC::GCS::IHistoryController* GNC::GCS::IHistoryController::Instance() { return GNC::GCS::HistoryController::Instance(); } void GNC::GCS::IHistoryController::FreeInstance() { GNC::GCS::HistoryController::FreeInstance(); } char GNC::GCS::IHistoryController::LocationToChar(GNC::GCS::IHistoryController::TLocation location) { switch (location) { case TL_LocalLinked: return 'L'; case TL_WadoLinked: return 'W'; case TL_LocalDatabase: default: return 'B'; } } GNC::GCS::IHistoryController::TLocation GNC::GCS::IHistoryController::CharToLocation(char loc) { switch (loc) { case 'L': return TL_LocalLinked; case 'W': return TL_WadoLinked; case 'B': default: return TL_LocalDatabase; } } ginkgocadx-3.8.7/cadxcore/api/controllers/ihistorycontroller.h000066400000000000000000000167771314736454600247440ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include namespace GNC { namespace GCS { class IPersistentCommand; class EXTAPI IHistoryController { public: typedef struct EXTAPI PatientModel { std::string id; std::string id_issuer; std::string bithdate; char sex; std::string name; } PatientModel; typedef std::list StringList; typedef enum TLocation { TL_LocalDatabase, TL_LocalLinked, TL_WadoLinked } TLocation; typedef struct EXTAPI StudyModel { long pk; std::string pat_id; std::string pat_id_issuer; std::string pat_bithdate; char pat_sex; std::string pat_name; std::string study_iuid; std::string study_id; std::string study_datetime; //timestamp std::string study_acc_no; std::string ref_physician; std::string study_desc; std::list mods_in_study; std::list cuids_in_study; int num_series; int num_instances; std::string created_time; std::string updated_time; TLocation location; StudyModel(); } StudyModel; typedef struct EXTAPI SeriesModel { public: long pk; long study_fk; std::string series_iuid; std::string series_datetime; std::string series_no; std::string series_modality; std::string body_part; std::string laterality; std::string series_desc; std::string institution; std::string station_name; std::string department; std::string perf_physician; std::string uid_importer; std::string frame_of_reference; StringList tsuids; int num_instances; std::string created_time; std::string updated_time; TLocation location; SeriesModel(); } SeriesModel; typedef struct EXTAPI FileModel { public: long pk; long series_fk; std::string real_path; std::string file_path; std::string sopiuid; std::string tsuid; std::string content_datetime; std::string sopcuid; std::string file_desc; char orientation; double image_position[3]; double slice_location; double slice_thickness; int height; int width; int number_of_frames; std::string direction_cosines; std::string spacing; long instance_number; std::string created_time; std::string updated_time; TLocation location; FileModel(); ~FileModel(); } FileModel; /** only important attributes **/ typedef struct EXTAPI LightFileModel { public: long pk; long series_fk; std::string real_path; std::string file_path; std::string sopiuid; std::string tsuid; std::string sopcuid; TLocation location; LightFileModel(); ~LightFileModel(); } LightFileModel; typedef struct EXTAPI DICOMFileModel { StudyModel study; SeriesModel series; FileModel file; } DICOMFileModel; typedef std::list PatientModelList; typedef std::list StudyModelList; typedef std::list SeriesModelList; typedef std::list FileModelList; typedef std::list LightFileModelList; typedef std::list DICOMFileModelList; typedef struct EXTAPI TAddError { typedef enum TError { // FIXME WARNING: Redefinition TE_FileNotExist, TE_WrongFormat, TE_DICOMDir } TError; TError error; std::string path; TAddError(TError error, const std::string& path); } TAddError; typedef std::list TAddErrorList; typedef enum TAddAction { TAA_MOVE, TAA_COPY, TAA_LINK } TAddAction; static char LocationToChar(TLocation location); static TLocation CharToLocation(char loc); virtual SeriesModel GetSeriesModel(long series_pk) = 0; virtual void GetSeriesModelFromUIDs(const StringList& uids, SeriesModelList& series) = 0; virtual void GetSeriesModelFromUID(const std::string& uids, SeriesModelList& series) = 0; virtual void GetSeriesFromStudy(long study_pk, SeriesModelList& listOfSeries) = 0; virtual StudyModel GetStudyModel(long study_pk) = 0; virtual FileModel GetFrameOfReference(long series_pk) = 0; virtual FileModel GetFrameOfReference(const std::string& series_pk) = 0; virtual FileModel GetFileModel(long file_pk) = 0; virtual FileModel GetFileModelFromSopInstance(const std::string& sopInstanceUID, long study_pk = -1) = 0; virtual bool IsOk() = 0; virtual void GetAllPatients(GNC::GCS::IHistoryController::PatientModelList& patientList) = 0; virtual bool ExistsSeriesWithUID(const std::string& seriesUID) = 0; virtual int GetNumberOfFiles() = 0; virtual void GetSeriesSortedFileModels(long series_pk, FileModelList& fileList, bool onlyFirst = false) = 0; virtual void GetSeriesSortedFileModels(long series_pk, LightFileModelList& fileList, bool onlyFirst = false) = 0; virtual StringList GetSeriesSortedPathsByUID(const std::string& seriesUID) = 0; virtual StringList GetSeriesSortedPaths(const std::string& series_pk) = 0; virtual StringList GetSeriesSortedPaths(long series_pk) = 0; virtual StringList GetSeriesSopClasses(long series_pk) = 0; virtual char GetSeriesOrientation(long series_pk) = 0; virtual bool EmptyHistory(bool eliminarDelDisco) = 0; static IHistoryController* Instance(); static void FreeInstance(); protected: IHistoryController(); ~IHistoryController(); }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/imodulecontroller.cpp000066400000000000000000000162221314736454600250440ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include "imodulecontroller.h" #include
#include #include GNC::GCS::ModoControlador::ModoControlador(int _id, const std::string& _descripcion, const TipoListaModalidades& listaModalidades, const TipoListaUIDsImportacion& listaImportacion, wxBitmap* _bitmap, T_HangingProtocolSupportLevel supportLevel) : id(_id), descripcion(_descripcion), m_listaModalidades(listaModalidades), m_hangingSupportLevel(supportLevel), m_listImportationUIDs(listaImportacion), bitmap(_bitmap) { } GNC::GCS::ModoControlador::~ModoControlador() { m_listaModalidades.clear(); } const GNC::GCS::ModoControlador::TipoListaModalidades GNC::GCS::ModoControlador::GetModalidades() { return m_listaModalidades; } const std::string& GNC::GCS::ModoControlador::GetDescripcion() { return descripcion; } wxBitmap* GNC::GCS::ModoControlador::GetBitmap() { return bitmap; } int GNC::GCS::ModoControlador::GetId() const { return id; } bool GNC::GCS::ModoControlador::SupportsModalityFile(const std::string &modalidad, const std::string& transferSyntax) const { for(TipoListaModalidades::const_iterator it = m_listaModalidades.begin(); it!= m_listaModalidades.end(); ++it) { if((*it) == modalidad) { if (transferSyntax != "1.2.840.10008.1.2.4.100" && transferSyntax != "1.2.840.10008.1.2.4.101") { return true; } else { return false; } } } return false; } GNC::GCS::ModoControlador::T_HangingProtocolSupportLevel GNC::GCS::ModoControlador::GetHangingSupportLevel() const { return m_hangingSupportLevel; } bool GNC::GCS::ModoControlador::SupportsImportationUID(const std::string &importationUID) const { for(TipoListaUIDsImportacion::const_iterator it = m_listImportationUIDs.begin(); it!= m_listImportationUIDs.end(); ++it) { if((*it) == importationUID) { return true; } } return false; } GNC::GCS::IdHL7::IdHL7() { } GNC::GCS::IdHL7::IdHL7(const IdHL7& o) { *this = o; } GNC::GCS::IdHL7::IdHL7(const std::string& e, const std::string& c, const std::string& d, const std::string& n, const std::string& t, const std::string& td, const std::string& v) : etiqueta(e), codigo(c), namespaceid(n), descripcion(d), tipoobservacion(t), tipodatos(td), version(v) { } GNC::GCS::IdHL7& GNC::GCS::IdHL7::operator = (const GNC::GCS::IdHL7& o) { etiqueta = o.etiqueta; codigo = o.codigo; descripcion = o.descripcion; namespaceid = o.namespaceid; tipoobservacion = o.tipoobservacion; tipodatos = o.tipodatos; version = o.version; return *this; } GNC::GCS::IdHL7::operator std::string() const { return codigo + "^" + descripcion + "^" + namespaceid; } GNC::GCS::IModuleController::IModuleController(GNC::GCS::IEntorno* pEntorno, const std::string& uid, int priority) : m_pEntorno(pEntorno), m_UID(uid), m_priority(priority) { } /* Destructor */ GNC::GCS::IModuleController::~IModuleController() { } void GNC::GCS::IModuleController::RegistrarConfiguracion() { bool written = false; std::string key; std::string val; GNC::GCS::ConfigurationController * pConfig = GNC::GCS::ConfigurationController::Instance(); for (TipoListaIdsHL7::iterator it = m_ListaInformes.begin(); it != m_ListaInformes.end(); ++it) { const IdHL7& i = *it; key = i.etiqueta; if ( !pConfig->readStringGeneral("/GinkgoCore/HCE/Plantillas",key, val)) { pConfig->writeStringGeneral("/GinkgoCore/HCE/Plantillas",key,(const std::string)i); written = true; } } if (written) { pConfig->Flush(); } } void GNC::GCS::IModuleController::GetTagsPrivadosReplace(GNC::GCS::IModuleController::TMapaTagsPrivados& mapaTags) { if (mapaTags.find(UID_TAGS_PRIVADOS_COMUNES) == mapaTags.end()) { mapaTags[UID_TAGS_PRIVADOS_COMUNES] = TListaIdsTagsPrivados(); } mapaTags[UID_TAGS_PRIVADOS_COMUNES].push_back(GNC::GCS::IModuleController::TPrivateTagReemplazable(TAG_WIDGETS, GNC::GCS::IModuleController::TPrivateTagReemplazable::XML)); } bool GNC::GCS::IModuleController::SupportsImportationUID(const std::string &) { return false; } bool GNC::GCS::IModuleController::MakeThumbnail(const GNC::GCS::IHistoryController::FileModel& /*model*/, ImgProxy& /*thumbnail*/) { return false; } GNC::GCS::IModuleController::TExtraLicensesMap GNC::GCS::IModuleController::GetExtraLicenses() { GNC::GCS::IModuleController::TExtraLicensesMap map; return map; } const std::string& GNC::GCS::IModuleController::GetUID() const { return m_UID; } bool GNC::GCS::IModuleController::SoportaImportacion() const { return false; } //si importa series true, si importa estudios false bool GNC::GCS::IModuleController::ImportaSeries() const { return true; } const std::string& GNC::GCS::IModuleController::GetImporterDescription() const { return m_ImporterDescription; } wxBitmap GNC::GCS::IModuleController::GetImporterIcon() const { return GinkgoResourcesManager::BigIcons::GetIcoDefaultDicomizer(); } void GNC::GCS::IModuleController::GetPasosImportacion(IWizard* , std::list &, wxWindow* , std::string &, GNC::GCS::Ptr ) { } void GNC::GCS::IModuleController::GetPasosConfiguracion( std::list &, wxWindow*, IDialogoConfiguracion* ) const { } GNC::GCS::ModoControlador* GNC::GCS::IModuleController::GetModo(int id) { if (id >= (int)m_ListaModos.size()) { return NULL; } else { int top = id - 1; IteradorListaModos it = m_ListaModos.begin(); for (int i = 0; i < top; ++i, ++it); return *it; } } GNC::GCS::IModuleController::ListaModos& GNC::GCS::IModuleController::GetListaModos() { return m_ListaModos; } int GNC::GCS::IModuleController::GetPriority() { return m_priority; } ginkgocadx-3.8.7/cadxcore/api/controllers/imodulecontroller.h000066400000000000000000000160651314736454600245160ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include #include #include #include #include class IPasoConfiguracion; class IDialogoConfiguracion; class IWizard; class IPasoWizard; class wxWindow; namespace GNC { namespace GCS { class IEntorno; class IVista; } } class IPACSController; #define GINKGO_PARAMS_SEPARATOR "=" namespace GNC { namespace GCS { class HangingProtocol; /* Appender / formatter para reordenar y/o añadir tags DICOM necesarios por el controlador o vista en la importacion */ class EXTAPI TagsDICOM { public: typedef std::list ListaArbolesPersonalizados; typedef std::map MapaTags; // Vector de nombres de raices de tags DICOM que el modo necesita ListaArbolesPersonalizados ArbolesPersonalizados; // Mapa de tags a insertar/sobreescribir con sus id de raices asociadas (donde se insertaran) MapaTags TagsAInsertar; }; class EXTAPI ModoControlador { public: typedef std::list TipoListaModalidades; typedef std::list TipoListaUIDsImportacion; typedef enum { THSL_FULL, THSL_ONLY_REGULAR, THSL_ONLY_1x1 } T_HangingProtocolSupportLevel; ModoControlador(int id, const std::string& descripcion, const TipoListaModalidades& listaModalidades, const TipoListaUIDsImportacion& listaImportacion, wxBitmap * bitmap = NULL, T_HangingProtocolSupportLevel supportLevel = THSL_ONLY_1x1); virtual ~ModoControlador(); const TipoListaModalidades GetModalidades(); const std::string& GetDescripcion(); wxBitmap* GetBitmap(); int GetId() const; T_HangingProtocolSupportLevel GetHangingSupportLevel() const; virtual bool SupportsModalityFile(const std::string &modalidad, const std::string& transferSyntax) const; virtual bool SupportsImportationUID(const std::string &importationUID) const; protected: int id; std::string descripcion; TipoListaModalidades m_listaModalidades; T_HangingProtocolSupportLevel m_hangingSupportLevel; TipoListaUIDsImportacion m_listImportationUIDs; wxBitmap* bitmap; }; class EXTAPI IdHL7 { public: std::string etiqueta; // Etiqueta que usa Ginkgo para localizar el codigo std::string codigo; // Codigo formal para la etiqueta std::string namespaceid; // NamespaceID de la entidad asignatoria std::string descripcion; // Descripcion del codigo std::string tipoobservacion; // Tipo de observacion. Solo se usa para Ids transportados en OBX std::string tipodatos; std::string version; //version of the id IdHL7(); IdHL7(const IdHL7& o); IdHL7(const std::string& e, const std::string& c, const std::string& d, const std::string& n, const std::string& t, const std::string& td, const std::string& v = ""); IdHL7& operator = (const IdHL7& o); // return value should be const, but clang++ 3.7 doesn't like it operator std::string () const; }; /** Module controller. Responsable de proveer una factoría de controladores de estudios y registrarlos mediante el controlador de vistas. **/ class EXTAPI IModuleController { public: typedef struct TPrivateTagReemplazable { typedef enum {STD, XML} TType; unsigned char id; TType type; TPrivateTagReemplazable (unsigned char _id, TType _type) : id(_id), type(_type) { } } TPrivateTagReemplazable; typedef std::list TListaIdsTagsPrivados; //first element uid provider, second list of tags typedef std::map TMapaTagsPrivados; typedef std::list TipoListaIdsHL7; typedef std::map TipoMapaIdsHL7; typedef std::map TExtraLicensesMap; /* Constructor */ IModuleController(GNC::GCS::IEntorno* pEntorno, const std::string& uid, int priority); /* Destructor */ virtual ~IModuleController(); /* Obtiene el UID único del módulo */ const std::string& GetUID() const; virtual bool SoportaImportacion() const; //si importa series true, si importa estudios false virtual bool ImportaSeries() const; const std::string& GetImporterDescription() const; virtual wxBitmap GetImporterIcon() const; virtual void GetPasosImportacion(IWizard* , std::list &, wxWindow* , std::string &, GNC::GCS::Ptr ); virtual void GetPasosConfiguracion( std::list &, wxWindow* , IDialogoConfiguracion* ) const; // Metodos de inicializacion de configuracion del modulo void RegistrarConfiguracion(); //registra las vistas virtual void RegistrarVistas() = 0; const IdHL7 GetIdInforme(const std::string& key) const; /* Abre un estudio de manera no interactiva desde un directorio y devuelve su controlador específico */ virtual GNC::GCS::IVista* OpenView(int modo, GNC::GCS::IHistoryController::SeriesModelList& series, GNC::GCS::Ptr hangingProtocol) = 0; typedef std::vector ListaModos; typedef std::vector::iterator IteradorListaModos; virtual ModoControlador* GetModo(int id); virtual ListaModos& GetListaModos(); virtual int GetPriority(); virtual void GetTagsPrivadosReplace(GNC::GCS::IModuleController::TMapaTagsPrivados& mapaTags); virtual bool SupportsImportationUID(const std::string &importationUID); virtual bool MakeThumbnail(const GNC::GCS::IHistoryController::FileModel& model, ImgProxy& thumbnail); virtual TExtraLicensesMap GetExtraLicenses(); protected: GNC::GCS::IEntorno* m_pEntorno; ListaModos m_ListaModos; TipoListaIdsHL7 m_ListaInformes; std::string m_UID; std::string m_ImporterDescription; int m_priority; }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/ipacscontroller.cpp000066400000000000000000000023201314736454600244770ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif GIL::DICOM::PACSException::PACSException(const std::string& msg, const std::string& component, bool fatal) throw() : GNC::GCS::IException(msg, component, fatal) { } GIL::DICOM::IPACSController::IPACSController() { } GIL::DICOM::IPACSController::~IPACSController() { } ginkgocadx-3.8.7/cadxcore/api/controllers/ipacscontroller.h000066400000000000000000000140061314736454600241500ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include class IModeloDicom; class DcmElement; namespace GIL { namespace DICOM { class IInspectCallBack; } } namespace GIL { namespace DICOM { class ICustomAssociation; /** PACS Exception **/ class EXTAPI PACSException : public GNC::GCS::IException { public: /** PACS Exception constructor **/ PACSException(const std::string& msg, const std::string& component="GIL/PACS", bool fatal = true) throw() ; }; typedef struct ContextoResultado { bool error; std::string UIDPaciente; std::string UIDEstudio; std::list RutaDICOM; std::string ServidorPACSID; bool fromPACS; bool recursivo; inline ContextoResultado() { error = false; fromPACS=false; recursivo = false; } inline ~ContextoResultado() { } } ContextoResultado; typedef enum TipoTransferSyntaxEnvio { SendExplicitLittleEndian, SendImplicitLittleEndian, SendJPEG2000Lossless, SendJPEG2000Lossy10, SendJPEG2000Lossy20, SendJPEG2000Lossy50, SendJPEGLossless, SendJPEGLossy9, SendJPEGLossy8, SendJPEGLossy7, SendDefault } TipoTransferSyntaxEnvio; class EXTAPI IPACSController { public: virtual ~IPACSController(); virtual bool QueryRetrieve( void* connectionKey, const std::string& serverId, IModeloDicom* pModelo, const GIL::DICOM::DicomDataset& base, GNC::IProxyNotificadorProgreso* pNotificador, bool link ) = 0; virtual bool Print( void* connectionKey, const std::string& serverId, const GIL::DICOM::DicomDataset& film, const GIL::DICOM::DicomDataset& layout, const GIL::DICOM::DicomDataset& job, const std::list files, GNC::IProxyNotificadorProgreso* pNotificador ) = 0; /** Perform query */ virtual bool Query( void* connectionKey, const std::string& abstractSyntax, const GIL::DICOM::DicomDataset& query, std::list< GNC::GCS::Ptr >& resultsWraper, const std::string& serverId, GNC::IProxyNotificadorProgreso* pNotificador ) = 0; /** Test WADO URL **/ virtual void TestWADOURL(const std::string& url) = 0; /** Downloads url to specified file */ virtual bool DownloadFileFromURL(const std::string& url, const std::string& filePath, GNC::IProxyNotificadorProgreso* pNotifier) = 0; virtual GIL::DICOM::ICustomAssociation* CreateCustomAssociation(void* connectionKey, const std::string& ambitolog, GNC::IProxyNotificadorProgreso* pNotificador = NULL) = 0; virtual void DestroyCustomAssociation(GIL::DICOM::ICustomAssociation* assoc) = 0; virtual void SubirArchivos(void* connectionKey, const std::string& serverId, const std::list& pathsSubida, GNC::IProxyNotificadorProgreso * pNotificador, TipoTransferSyntaxEnvio transferSyntax) =0; virtual void GetConnection(void* connectionKey) = 0; virtual void ReleaseConnection(void* connectionKey) = 0; virtual bool LeerDicomDir(const std::string& pathDicomDir, IModeloDicom* pModelo) = 0; virtual bool findAndGetTagFromFile(const std::string& ruta, unsigned short group, unsigned short element, std::string& value) = 0; virtual bool EsDICOM(const std::string& path, bool accept_dicomdir, bool accept_dicomfile) const = 0; virtual bool EsPDF(const std::string& path) const = 0; /* Devuelve la ruta en disco (asignada a la variable ruta pasada por referencia) en base a los IDs unicos de estudio y serie de una serie de imagenes obtenida*/ /*virtual bool GetRutaImagen(const std::string& uidPaciente, const std::string& uidEstudio, const std::string& uidSerie, const std::string& uidImagen, const std::string& dicomDirPath, std::string& ruta, bool crearDirectorios = true) = 0;*/ virtual bool GetRutaImagenTemp(const std::string& uidPaciente, const std::string& uidEstudio, const std::string& uidSerie, const std::string& uidImagen, std::string& ruta, bool crearDirectorios = true) = 0; void DumpFileElements(const std::string& rutaFichero, IInspectCallBack* callback); //region "Metodos de Dicomizacion" virtual IDICOMImg2DCM* CrearInstanciaDeImportacion() = 0; virtual void LiberarInstanciaDeImportacion(IDICOMImg2DCM* instancia) = 0; //endregion //region "Metodos de carga/almacenamiento de DICOMS" virtual IDICOMManager* CrearInstanciaDeDICOMManager() = 0; virtual void LiberarInstanciaDeDICOMManager(IDICOMManager* instancia) = 0; //endregion protected: IPACSController(); }; } } ginkgocadx-3.8.7/cadxcore/api/controllers/iprogresscontroller.cpp000066400000000000000000000037561314736454600254330ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iprogresscontroller.h" //------------------------------------------------------------------------- GNC::IControladorProgreso::IControladorProgreso() { } GNC::IControladorProgreso::~IControladorProgreso() { } //------------------------------------------------------------------------- GNC::INotificadorProgreso::INotificadorProgreso() { m_ProgresoNormalizado = 0; } GNC::INotificadorProgreso::~INotificadorProgreso() { } /** Cuidado! hay que proteger estos accesos con un cerrojo **/ float GNC::INotificadorProgreso::GetProgresoNormalizado() { return m_ProgresoNormalizado; } /** Cuidado! hay que proteger estos accesos con un cerrojo **/ std::string GNC::INotificadorProgreso::GetTextoProgreso() { return m_Texto; } /** Cuidado! hay que proteger estos accesos con un cerrojo **/ void GNC::INotificadorProgreso::SetProgresoNormalizado(float progresoNormalizado) { m_ProgresoNormalizado = progresoNormalizado; } /** Cuidado! hay que proteger estos accesos con un cerrojo **/ void GNC::INotificadorProgreso::SetTextoProgreso(const std::string& texto) { m_Texto = texto; } void GNC::INotificadorProgreso::LockProgreso() { this->Lock(); } void GNC::INotificadorProgreso::UnLockProgreso() { this->UnLock(); } ginkgocadx-3.8.7/cadxcore/api/controllers/iprogresscontroller.h000066400000000000000000000044271314736454600250740ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { //------------------------------------------------------------------------- class EXTAPI IControladorProgreso { public: IControladorProgreso(); virtual ~IControladorProgreso(); /** Interface **/ virtual void InsertarTarea(long taskId, const std::string& texto) = 0; /** Interface **/ virtual void EliminarTarea(long taskId) = 0; /** Interface **/ virtual void SetProgresoTarea(long taskId, float normalizedProgress, const std::string& texto) = 0; }; //------------------------------------------------------------------------- class EXTAPI INotificadorProgreso : public GNC::GCS::ILockable { public: INotificadorProgreso(); virtual ~INotificadorProgreso(); /** Cuidado! hay que proteger estos accesos con un cerrojo **/ float GetProgresoNormalizado(); /** Cuidado! hay que proteger estos accesos con un cerrojo **/ std::string GetTextoProgreso(); /** Cuidado! hay que proteger estos accesos con un cerrojo **/ void SetProgresoNormalizado(float progresoNormalizado); /** Cuidado! hay que proteger estos accesos con un cerrojo **/ void SetTextoProgreso(const std::string& texto); void LockProgreso(); void UnLockProgreso(); /** Interface **/ virtual bool NotificarProgreso(float progresoNormalizado, const std::string& texto) = 0; protected: std::string m_Texto; float m_ProgresoNormalizado; }; } ginkgocadx-3.8.7/cadxcore/api/controllers/proxies/000077500000000000000000000000001314736454600222645ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/controllers/proxies/ipipelineproperties.cpp000066400000000000000000000035341314736454600270700ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ipipelineproperties.h" GNC::GCS::IPipelineProperties::IPipelineProperties() { } GNC::GCS::IPipelineProperties::~IPipelineProperties() { } void GNC::GCS::IPipelineProperties::GetFPDimensions(double dims[3]) { int idims[3] = {0, 0, 0}; GetDimensions(idims); dims[0] = (double) idims[0]; dims[1] = (double) idims[1]; dims[2] = (double) idims[2]; } /**Gets the slice output dimensions **/ void GNC::GCS::IPipelineProperties::GetFPOutputDimensions(double dims[3]) { int odims[3] = {0, 0, 0}; GetOutputDimensions(odims); dims[0] = (double) odims[0]; dims[1] = (double) odims[1]; dims[2] = (double) odims[2]; } //endregion //------------------------------------------------------------------------------------------------ //region optional /** Sets camera custom orientation **/ void GNC::GCS::IPipelineProperties::SetCustomOrientation(GNC::GCS::Vector3D&, GNC::GCS::Vector3D&, GNC::GCS::Vector3D&, double&) { } /** Gets the output current slice number **/ int GNC::GCS::IPipelineProperties::GetCurrentSliceIndex() const { return 0; } ginkgocadx-3.8.7/cadxcore/api/controllers/proxies/ipipelineproperties.h000066400000000000000000000067151314736454600265410ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifndef IPIPELINEPROPERTIES_H #define IPIPELINEPROPERTIES_H #include #include //---------------------------------------------------------------------------------------------------- //region Forward Declarations //endregion namespace GNC { namespace GCS { class IGinkgoMatrix4x4; class Vector3D; //---------------------------------------------------------------------------------------------------- /** Pipeline Properties Proxy class **/ class EXTAPI IPipelineProperties { public: IPipelineProperties(); virtual ~IPipelineProperties(); //------------------------------------------------------------------------------------------------ //region mandatory /** Updates **/ virtual void Update() = 0; /** Updates output information **/ virtual void UpdateInformation() = 0; /** Gets original (3D Volume) direction cosines **/ virtual const GNC::GCS::Ptr GetDirection() = 0; /** Gets the original (3D Volume) origin **/ virtual void GetOrigin(double origin[3]) = 0; /** Gets the original (3D Volume) spacing **/ virtual void GetSpacing(double spacing[3]) = 0; /** Gets the original (3D Volume) dimensions **/ virtual void GetDimensions(int dims[3]) = 0; /* Gets the slice direction cosines */ virtual const GNC::GCS::Ptr GetOutputDirection() = 0; /** Gets the slice output origin **/ virtual void GetOutputOrigin(double origin[3]) = 0; /** Gets the slice output spacing **/ virtual void GetOutputSpacing(double spacing[3]) = 0; /**Gets the slice output dimensions **/ virtual void GetOutputDimensions(int currentDimensions[3]) = 0; //endregion //------------------------------------------------------------------------------------------------ //region helpers /**Gets the original (3D Volume) dimensions as double floating point**/ void GetFPDimensions(double dims[3]); /**Gets the slice output dimensions as double floating point**/ void GetFPOutputDimensions(double currentDimensions[3]); //endregion //------------------------------------------------------------------------------------------------ //region optional /** Sets camera custom orientation **/ virtual void SetCustomOrientation(GNC::GCS::Vector3D& camera_focal_point, GNC::GCS::Vector3D& camera_position, GNC::GCS::Vector3D& camera_view_up, double& rotation); /** Gets the output current slice number **/ virtual int GetCurrentSliceIndex() const; //endregion }; //endregion } } #endif ginkgocadx-3.8.7/cadxcore/api/dicom/000077500000000000000000000000001314736454600173205ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/dicom/dcmdictionary.h000066400000000000000000006440341314736454600223350ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once /* ** Fixed Tags in ascending (gggg,eeee" order. ** Number of entries: 3250 ** Tags with a repeating component (repeating tags" are listed later. */ #define GKDCM_CommandGroupLength "0000|0000" #define GKDCM_ACR_NEMA_CommandGroupLengthToEnd "0000|0001" #define GKDCM_AffectedSOPClassUID "0000|0002" #define GKDCM_RequestedSOPClassUID "0000|0003" #define GKDCM_ACR_NEMA_CommandRecognitionCode "0000|0010" #define GKDCM_CommandField "0000|0100" #define GKDCM_MessageID "0000|0110" #define GKDCM_MessageIDBeingRespondedTo "0000|0120" #define GKDCM_ACR_NEMA_Initiator "0000|0200" #define GKDCM_ACR_NEMA_Receiver "0000|0300" #define GKDCM_ACR_NEMA_FindLocation "0000|0400" #define GKDCM_MoveDestination "0000|0600" #define GKDCM_Priority "0000|0700" #define GKDCM_DataSetType "0000|0800" #define GKDCM_ACR_NEMA_NumberOfMatches "0000|0850" #define GKDCM_ACR_NEMA_ResponseSequenceNumber "0000|0860" #define GKDCM_Status "0000|0900" #define GKDCM_OffendingElement "0000|0901" #define GKDCM_ErrorComment "0000|0902" #define GKDCM_ErrorID "0000|0903" #define GKDCM_AffectedSOPInstanceUID "0000|1000" #define GKDCM_RequestedSOPInstanceUID "0000|1001" #define GKDCM_EventTypeID "0000|1002" #define GKDCM_AttributeIdentifierList "0000|1005" #define GKDCM_ActionTypeID "0000|1008" #define GKDCM_NumberOfRemainingSubOperations "0000|1020" #define GKDCM_NumberOfCompletedSubOperations "0000|1021" #define GKDCM_NumberOfFailedSubOperations "0000|1022" #define GKDCM_NumberOfWarningSubOperations "0000|1023" #define GKDCM_MoveOriginatorApplicationEntityTitle "0000|1030" #define GKDCM_MoveOriginatorMessageID "0000|1031" #define GKDCM_ACR_NEMA_DialogReceiver "0000|4000" #define GKDCM_ACR_NEMA_TerminalType "0000|4010" #define GKDCM_ACR_NEMA_MessageSetID "0000|5010" #define GKDCM_ACR_NEMA_EndMessageSet "0000|5020" #define GKDCM_ACR_NEMA_DisplayFormat "0000|5110" #define GKDCM_ACR_NEMA_PagePositionID "0000|5120" #define GKDCM_ACR_NEMA_TextFormatID "0000|5130" #define GKDCM_ACR_NEMA_NormalReverse "0000|5140" #define GKDCM_ACR_NEMA_AddGrayScale "0000|5150" #define GKDCM_ACR_NEMA_Borders "0000|5160" #define GKDCM_ACR_NEMA_Copies "0000|5170" #define GKDCM_ACR_NEMA_MagnificationType "0000|5180" #define GKDCM_ACR_NEMA_Erase "0000|5190" #define GKDCM_ACR_NEMA_Print "0000|51a0" #define GKDCM_ACR_NEMA_Overlays "0000|51b0" #define GKDCM_FileMetaInformationGroupLength "0002|0000" #define GKDCM_FileMetaInformationVersion "0002|0001" #define GKDCM_MediaStorageSOPClassUID "0002|0002" #define GKDCM_MediaStorageSOPInstanceUID "0002|0003" #define GKDCM_TransferSyntaxUID "0002|0010" #define GKDCM_ImplementationClassUID "0002|0012" #define GKDCM_ImplementationVersionName "0002|0013" #define GKDCM_SourceApplicationEntityTitle "0002|0016" #define GKDCM_PrivateInformationCreatorUID "0002|0100" #define GKDCM_PrivateInformation "0002|0102" #define GKDCM_FileSetID "0004|1130" #define GKDCM_FileSetDescriptorFileID "0004|1141" #define GKDCM_SpecificCharacterSetOfFileSetDescriptorFile "0004|1142" #define GKDCM_OffsetOfTheFirstDirectoryRecordOfTheRootDirectoryEntity "0004|1200" #define GKDCM_OffsetOfTheLastDirectoryRecordOfTheRootDirectoryEntity "0004|1202" #define GKDCM_FileSetConsistencyFlag "0004|1212" #define GKDCM_DirectoryRecordSequence "0004|1220" #define GKDCM_OffsetOfTheNextDirectoryRecord "0004|1400" #define GKDCM_RecordInUseFlag "0004|1410" #define GKDCM_OffsetOfReferencedLowerLevelDirectoryEntity "0004|1420" #define GKDCM_DirectoryRecordType "0004|1430" #define GKDCM_PrivateRecordUID "0004|1432" #define GKDCM_ReferencedFileID "0004|1500" #define GKDCM_RETIRED_MRDRDirectoryRecordOffset "0004|1504" #define GKDCM_ReferencedSOPClassUIDInFile "0004|1510" #define GKDCM_ReferencedSOPInstanceUIDInFile "0004|1511" #define GKDCM_ReferencedTransferSyntaxUIDInFile "0004|1512" #define GKDCM_ReferencedRelatedGeneralSOPClassUIDInFile "0004|151a" #define GKDCM_RETIRED_NumberOfReferences "0004|1600" #define GKDCM_ACR_NEMA_IdentifyingGroupLengthToEnd "0008|0001" #define GKDCM_SpecificCharacterSet "0008|0005" #define GKDCM_LanguageCodeSequence "0008|0006" #define GKDCM_ImageType "0008|0008" #define GKDCM_ACR_NEMA_RecognitionCode "0008|0010" #define GKDCM_InstanceCreationDate "0008|0012" #define GKDCM_InstanceCreationTime "0008|0013" #define GKDCM_InstanceCreatorUID "0008|0014" #define GKDCM_SOPClassUID "0008|0016" #define GKDCM_SOPInstanceUID "0008|0018" #define GKDCM_RelatedGeneralSOPClassUID "0008|001a" #define GKDCM_OriginalSpecializedSOPClassUID "0008|001b" #define GKDCM_StudyDate "0008|0020" #define GKDCM_SeriesDate "0008|0021" #define GKDCM_AcquisitionDate "0008|0022" #define GKDCM_ContentDate "0008|0023" #define GKDCM_RETIRED_OverlayDate "0008|0024" #define GKDCM_RETIRED_CurveDate "0008|0025" #define GKDCM_AcquisitionDateTime "0008|002a" #define GKDCM_StudyTime "0008|0030" #define GKDCM_SeriesTime "0008|0031" #define GKDCM_AcquisitionTime "0008|0032" #define GKDCM_ContentTime "0008|0033" #define GKDCM_RETIRED_OverlayTime "0008|0034" #define GKDCM_RETIRED_CurveTime "0008|0035" #define GKDCM_ACR_NEMA_OldDataSetType "0008|0040" #define GKDCM_ACR_NEMA_DataSetSubtype "0008|0041" #define GKDCM_RETIRED_NuclearMedicineSeriesType "0008|0042" #define GKDCM_AccessionNumber "0008|0050" #define GKDCM_IssuerOfAccessionNumberSequence "0008|0051" #define GKDCM_QueryRetrieveLevel "0008|0052" #define GKDCM_RetrieveAETitle "0008|0054" #define GKDCM_InstanceAvailability "0008|0056" #define GKDCM_FailedSOPInstanceUIDList "0008|0058" #define GKDCM_Modality "0008|0060" #define GKDCM_ModalitiesInStudy "0008|0061" #define GKDCM_SOPClassesInStudy "0008|0062" #define GKDCM_ConversionType "0008|0064" #define GKDCM_PresentationIntentType "0008|0068" #define GKDCM_Manufacturer "0008|0070" #define GKDCM_InstitutionName "0008|0080" #define GKDCM_InstitutionAddress "0008|0081" #define GKDCM_InstitutionCodeSequence "0008|0082" #define GKDCM_ReferringPhysicianName "0008|0090" #define GKDCM_ReferringPhysicianAddress "0008|0092" #define GKDCM_ReferringPhysicianTelephoneNumbers "0008|0094" #define GKDCM_ReferringPhysicianIdentificationSequence "0008|0096" #define GKDCM_CodeValue "0008|0100" #define GKDCM_CodingSchemeDesignator "0008|0102" #define GKDCM_CodingSchemeVersion "0008|0103" #define GKDCM_CodeMeaning "0008|0104" #define GKDCM_MappingResource "0008|0105" #define GKDCM_ContextGroupVersion "0008|0106" #define GKDCM_ContextGroupLocalVersion "0008|0107" #define GKDCM_ContextGroupExtensionFlag "0008|010b" #define GKDCM_CodingSchemeUID "0008|010c" #define GKDCM_ContextGroupExtensionCreatorUID "0008|010d" #define GKDCM_ContextIdentifier "0008|010f" #define GKDCM_CodingSchemeIdentificationSequence "0008|0110" #define GKDCM_CodingSchemeRegistry "0008|0112" #define GKDCM_CodingSchemeExternalID "0008|0114" #define GKDCM_CodingSchemeName "0008|0115" #define GKDCM_CodingSchemeResponsibleOrganization "0008|0116" #define GKDCM_ContextUID "0008|0117" #define GKDCM_TimezoneOffsetFromUTC "0008|0201" #define GKDCM_ACR_NEMA_NetworkID "0008|1000" #define GKDCM_StationName "0008|1010" #define GKDCM_StudyDescription "0008|1030" #define GKDCM_ProcedureCodeSequence "0008|1032" #define GKDCM_SeriesDescription "0008|103e" #define GKDCM_SeriesDescriptionCodeSequence "0008|103f" #define GKDCM_InstitutionalDepartmentName "0008|1040" #define GKDCM_PhysiciansOfRecord "0008|1048" #define GKDCM_PhysiciansOfRecordIdentificationSequence "0008|1049" #define GKDCM_PerformingPhysicianName "0008|1050" #define GKDCM_PerformingPhysicianIdentificationSequence "0008|1052" #define GKDCM_NameOfPhysiciansReadingStudy "0008|1060" #define GKDCM_PhysiciansReadingStudyIdentificationSequence "0008|1062" #define GKDCM_OperatorsName "0008|1070" #define GKDCM_OperatorIdentificationSequence "0008|1072" #define GKDCM_AdmittingDiagnosesDescription "0008|1080" #define GKDCM_AdmittingDiagnosesCodeSequence "0008|1084" #define GKDCM_ManufacturerModelName "0008|1090" #define GKDCM_RETIRED_ReferencedResultsSequence "0008|1100" #define GKDCM_ReferencedStudySequence "0008|1110" #define GKDCM_ReferencedPerformedProcedureStepSequence "0008|1111" #define GKDCM_ReferencedSeriesSequence "0008|1115" #define GKDCM_ReferencedPatientSequence "0008|1120" #define GKDCM_ReferencedVisitSequence "0008|1125" #define GKDCM_RETIRED_ReferencedOverlaySequence "0008|1130" #define GKDCM_ReferencedStereometricInstanceSequence "0008|1134" #define GKDCM_ReferencedWaveformSequence "0008|113a" #define GKDCM_ReferencedImageSequence "0008|1140" #define GKDCM_RETIRED_ReferencedCurveSequence "0008|1145" #define GKDCM_ReferencedInstanceSequence "0008|114a" #define GKDCM_ReferencedRealWorldValueMappingInstanceSequence "0008|114b" #define GKDCM_ReferencedSOPClassUID "0008|1150" #define GKDCM_ReferencedSOPInstanceUID "0008|1155" #define GKDCM_SOPClassesSupported "0008|115a" #define GKDCM_ReferencedFrameNumber "0008|1160" #define GKDCM_SimpleFrameList "0008|1161" #define GKDCM_CalculatedFrameList "0008|1162" #define GKDCM_TimeRange "0008|1163" #define GKDCM_FrameExtractionSequence "0008|1164" #define GKDCM_MultiFrameSourceSOPInstanceUID "0008|1167" #define GKDCM_TransactionUID "0008|1195" #define GKDCM_FailureReason "0008|1197" #define GKDCM_FailedSOPSequence "0008|1198" #define GKDCM_ReferencedSOPSequence "0008|1199" #define GKDCM_StudiesContainingOtherReferencedInstancesSequence "0008|1200" #define GKDCM_RelatedSeriesSequence "0008|1250" #define GKDCM_RETIRED_LossyImageCompressionRetired "0008|2110" #define GKDCM_DerivationDescription "0008|2111" #define GKDCM_SourceImageSequence "0008|2112" #define GKDCM_StageName "0008|2120" #define GKDCM_StageNumber "0008|2122" #define GKDCM_NumberOfStages "0008|2124" #define GKDCM_ViewName "0008|2127" #define GKDCM_ViewNumber "0008|2128" #define GKDCM_NumberOfEventTimers "0008|2129" #define GKDCM_NumberOfViewsInStage "0008|212a" #define GKDCM_EventElapsedTimes "0008|2130" #define GKDCM_EventTimerNames "0008|2132" #define GKDCM_EventTimerSequence "0008|2133" #define GKDCM_EventTimeOffset "0008|2134" #define GKDCM_EventCodeSequence "0008|2135" #define GKDCM_StartTrim "0008|2142" #define GKDCM_StopTrim "0008|2143" #define GKDCM_RecommendedDisplayFrameRate "0008|2144" #define GKDCM_RETIRED_TransducerPosition "0008|2200" #define GKDCM_RETIRED_TransducerOrientation "0008|2204" #define GKDCM_RETIRED_AnatomicStructure "0008|2208" #define GKDCM_AnatomicRegionSequence "0008|2218" #define GKDCM_AnatomicRegionModifierSequence "0008|2220" #define GKDCM_PrimaryAnatomicStructureSequence "0008|2228" #define GKDCM_AnatomicStructureSpaceOrRegionSequence "0008|2229" #define GKDCM_PrimaryAnatomicStructureModifierSequence "0008|2230" #define GKDCM_RETIRED_TransducerPositionSequence "0008|2240" #define GKDCM_RETIRED_TransducerPositionModifierSequence "0008|2242" #define GKDCM_RETIRED_TransducerOrientationSequence "0008|2244" #define GKDCM_RETIRED_TransducerOrientationModifierSequence "0008|2246" #define GKDCM_RETIRED_AnatomicStructureSpaceOrRegionCodeSequenceTrial "0008|2251" #define GKDCM_RETIRED_AnatomicPortalOfEntranceCodeSequenceTrial "0008|2253" #define GKDCM_RETIRED_AnatomicApproachDirectionCodeSequenceTrial "0008|2255" #define GKDCM_RETIRED_AnatomicPerspectiveDescriptionTrial "0008|2256" #define GKDCM_RETIRED_AnatomicPerspectiveCodeSequenceTrial "0008|2257" #define GKDCM_RETIRED_AnatomicLocationOfExaminingInstrumentDescriptionTrial "0008|2258" #define GKDCM_RETIRED_AnatomicLocationOfExaminingInstrumentCodeSequenceTrial "0008|2259" #define GKDCM_RETIRED_AnatomicStructureSpaceOrRegionModifierCodeSequenceTrial "0008|225a" #define GKDCM_RETIRED_OnAxisBackgroundAnatomicStructureCodeSequenceTrial "0008|225c" #define GKDCM_AlternateRepresentationSequence "0008|3001" #define GKDCM_IrradiationEventUID "0008|3010" #define GKDCM_ACR_NEMA_IdentifyingComments "0008|4000" #define GKDCM_FrameType "0008|9007" #define GKDCM_ReferencedImageEvidenceSequence "0008|9092" #define GKDCM_ReferencedRawDataSequence "0008|9121" #define GKDCM_CreatorVersionUID "0008|9123" #define GKDCM_DerivationImageSequence "0008|9124" #define GKDCM_SourceImageEvidenceSequence "0008|9154" #define GKDCM_PixelPresentation "0008|9205" #define GKDCM_VolumetricProperties "0008|9206" #define GKDCM_VolumeBasedCalculationTechnique "0008|9207" #define GKDCM_ComplexImageComponent "0008|9208" #define GKDCM_AcquisitionContrast "0008|9209" #define GKDCM_DerivationCodeSequence "0008|9215" #define GKDCM_ReferencedPresentationStateSequence "0008|9237" #define GKDCM_ReferencedOtherPlaneSequence "0008|9410" #define GKDCM_FrameDisplaySequence "0008|9458" #define GKDCM_RecommendedDisplayFrameRateInFloat "0008|9459" #define GKDCM_SkipFrameRangeFlag "0008|9460" #define GKDCM_PatientName "0010|0010" #define GKDCM_PatientID "0010|0020" #define GKDCM_IssuerOfPatientID "0010|0021" #define GKDCM_TypeOfPatientID "0010|0022" #define GKDCM_IssuerOfPatientIDQualifiersSequence "0010|0024" #define GKDCM_PatientBirthDate "0010|0030" #define GKDCM_PatientBirthTime "0010|0032" #define GKDCM_PatientSex "0010|0040" #define GKDCM_PatientInsurancePlanCodeSequence "0010|0050" #define GKDCM_PatientPrimaryLanguageCodeSequence "0010|0101" #define GKDCM_PatientPrimaryLanguageModifierCodeSequence "0010|0102" #define GKDCM_OtherPatientIDs "0010|1000" #define GKDCM_OtherPatientNames "0010|1001" #define GKDCM_OtherPatientIDsSequence "0010|1002" #define GKDCM_PatientBirthName "0010|1005" #define GKDCM_PatientAge "0010|1010" #define GKDCM_PatientSize "0010|1020" #define GKDCM_PatientSizeCodeSequence "0010|1021" #define GKDCM_PatientWeight "0010|1030" #define GKDCM_PatientAddress "0010|1040" #define GKDCM_ACR_NEMA_InsurancePlanIdentification "0010|1050" #define GKDCM_PatientMotherBirthName "0010|1060" #define GKDCM_MilitaryRank "0010|1080" #define GKDCM_BranchOfService "0010|1081" #define GKDCM_MedicalRecordLocator "0010|1090" #define GKDCM_MedicalAlerts "0010|2000" #define GKDCM_Allergies "0010|2110" #define GKDCM_CountryOfResidence "0010|2150" #define GKDCM_RegionOfResidence "0010|2152" #define GKDCM_PatientTelephoneNumbers "0010|2154" #define GKDCM_EthnicGroup "0010|2160" #define GKDCM_Occupation "0010|2180" #define GKDCM_SmokingStatus "0010|21a0" #define GKDCM_AdditionalPatientHistory "0010|21b0" #define GKDCM_PregnancyStatus "0010|21c0" #define GKDCM_LastMenstrualDate "0010|21d0" #define GKDCM_PatientReligiousPreference "0010|21f0" #define GKDCM_PatientSpeciesDescription "0010|2201" #define GKDCM_PatientSpeciesCodeSequence "0010|2202" #define GKDCM_PatientSexNeutered "0010|2203" #define GKDCM_AnatomicalOrientationType "0010|2210" #define GKDCM_PatientBreedDescription "0010|2292" #define GKDCM_PatientBreedCodeSequence "0010|2293" #define GKDCM_BreedRegistrationSequence "0010|2294" #define GKDCM_BreedRegistrationNumber "0010|2295" #define GKDCM_BreedRegistryCodeSequence "0010|2296" #define GKDCM_ResponsiblePerson "0010|2297" #define GKDCM_ResponsiblePersonRole "0010|2298" #define GKDCM_ResponsibleOrganization "0010|2299" #define GKDCM_PatientComments "0010|4000" #define GKDCM_ExaminedBodyThickness "0010|9431" #define GKDCM_ClinicalTrialSponsorName "0012|0010" #define GKDCM_ClinicalTrialProtocolID "0012|0020" #define GKDCM_ClinicalTrialProtocolName "0012|0021" #define GKDCM_ClinicalTrialSiteID "0012|0030" #define GKDCM_ClinicalTrialSiteName "0012|0031" #define GKDCM_ClinicalTrialSubjectID "0012|0040" #define GKDCM_ClinicalTrialSubjectReadingID "0012|0042" #define GKDCM_ClinicalTrialTimePointID "0012|0050" #define GKDCM_ClinicalTrialTimePointDescription "0012|0051" #define GKDCM_ClinicalTrialCoordinatingCenterName "0012|0060" #define GKDCM_PatientIdentityRemoved "0012|0062" #define GKDCM_DeidentificationMethod "0012|0063" #define GKDCM_DeidentificationMethodCodeSequence "0012|0064" #define GKDCM_ClinicalTrialSeriesID "0012|0071" #define GKDCM_ClinicalTrialSeriesDescription "0012|0072" #define GKDCM_ClinicalTrialProtocolEthicsCommitteeName "0012|0081" #define GKDCM_ClinicalTrialProtocolEthicsCommitteeApprovalNumber "0012|0082" #define GKDCM_ConsentForClinicalTrialUseSequence "0012|0083" #define GKDCM_DistributionType "0012|0084" #define GKDCM_ConsentForDistributionFlag "0012|0085" #define GKDCM_ContrastBolusAgent "0018|0010" #define GKDCM_ContrastBolusAgentSequence "0018|0012" #define GKDCM_ContrastBolusAdministrationRouteSequence "0018|0014" #define GKDCM_BodyPartExamined "0018|0015" #define GKDCM_ScanningSequence "0018|0020" #define GKDCM_SequenceVariant "0018|0021" #define GKDCM_ScanOptions "0018|0022" #define GKDCM_MRAcquisitionType "0018|0023" #define GKDCM_SequenceName "0018|0024" #define GKDCM_AngioFlag "0018|0025" #define GKDCM_InterventionDrugInformationSequence "0018|0026" #define GKDCM_InterventionDrugStopTime "0018|0027" #define GKDCM_InterventionDrugDose "0018|0028" #define GKDCM_InterventionDrugCodeSequence "0018|0029" #define GKDCM_AdditionalDrugSequence "0018|002a" #define GKDCM_RETIRED_Radionuclide "0018|0030" #define GKDCM_Radiopharmaceutical "0018|0031" #define GKDCM_RETIRED_EnergyWindowCenterline "0018|0032" #define GKDCM_RETIRED_EnergyWindowTotalWidth "0018|0033" #define GKDCM_InterventionDrugName "0018|0034" #define GKDCM_InterventionDrugStartTime "0018|0035" #define GKDCM_InterventionSequence "0018|0036" #define GKDCM_RETIRED_TherapyType "0018|0037" #define GKDCM_InterventionStatus "0018|0038" #define GKDCM_RETIRED_TherapyDescription "0018|0039" #define GKDCM_InterventionDescription "0018|003a" #define GKDCM_CineRate "0018|0040" #define GKDCM_InitialCineRunState "0018|0042" #define GKDCM_SliceThickness "0018|0050" #define GKDCM_KVP "0018|0060" #define GKDCM_CountsAccumulated "0018|0070" #define GKDCM_AcquisitionTerminationCondition "0018|0071" #define GKDCM_EffectiveDuration "0018|0072" #define GKDCM_AcquisitionStartCondition "0018|0073" #define GKDCM_AcquisitionStartConditionData "0018|0074" #define GKDCM_AcquisitionTerminationConditionData "0018|0075" #define GKDCM_RepetitionTime "0018|0080" #define GKDCM_EchoTime "0018|0081" #define GKDCM_InversionTime "0018|0082" #define GKDCM_NumberOfAverages "0018|0083" #define GKDCM_ImagingFrequency "0018|0084" #define GKDCM_ImagedNucleus "0018|0085" #define GKDCM_EchoNumbers "0018|0086" #define GKDCM_MagneticFieldStrength "0018|0087" #define GKDCM_SpacingBetweenSlices "0018|0088" #define GKDCM_NumberOfPhaseEncodingSteps "0018|0089" #define GKDCM_DataCollectionDiameter "0018|0090" #define GKDCM_EchoTrainLength "0018|0091" #define GKDCM_PercentSampling "0018|0093" #define GKDCM_PercentPhaseFieldOfView "0018|0094" #define GKDCM_PixelBandwidth "0018|0095" #define GKDCM_DeviceSerialNumber "0018|1000" #define GKDCM_DeviceUID "0018|1002" #define GKDCM_DeviceID "0018|1003" #define GKDCM_PlateID "0018|1004" #define GKDCM_GeneratorID "0018|1005" #define GKDCM_GridID "0018|1006" #define GKDCM_CassetteID "0018|1007" #define GKDCM_GantryID "0018|1008" #define GKDCM_SecondaryCaptureDeviceID "0018|1010" #define GKDCM_RETIRED_HardcopyCreationDeviceID "0018|1011" #define GKDCM_DateOfSecondaryCapture "0018|1012" #define GKDCM_TimeOfSecondaryCapture "0018|1014" #define GKDCM_SecondaryCaptureDeviceManufacturer "0018|1016" #define GKDCM_RETIRED_HardcopyDeviceManufacturer "0018|1017" #define GKDCM_SecondaryCaptureDeviceManufacturerModelName "0018|1018" #define GKDCM_SecondaryCaptureDeviceSoftwareVersions "0018|1019" #define GKDCM_RETIRED_HardcopyDeviceSoftwareVersion "0018|101a" #define GKDCM_RETIRED_HardcopyDeviceManufacturerModelName "0018|101b" #define GKDCM_SoftwareVersions "0018|1020" #define GKDCM_VideoImageFormatAcquired "0018|1022" #define GKDCM_DigitalImageFormatAcquired "0018|1023" #define GKDCM_ProtocolName "0018|1030" #define GKDCM_ContrastBolusRoute "0018|1040" #define GKDCM_ContrastBolusVolume "0018|1041" #define GKDCM_ContrastBolusStartTime "0018|1042" #define GKDCM_ContrastBolusStopTime "0018|1043" #define GKDCM_ContrastBolusTotalDose "0018|1044" #define GKDCM_SyringeCounts "0018|1045" #define GKDCM_ContrastFlowRate "0018|1046" #define GKDCM_ContrastFlowDuration "0018|1047" #define GKDCM_ContrastBolusIngredient "0018|1048" #define GKDCM_ContrastBolusIngredientConcentration "0018|1049" #define GKDCM_SpatialResolution "0018|1050" #define GKDCM_TriggerTime "0018|1060" #define GKDCM_TriggerSourceOrType "0018|1061" #define GKDCM_NominalInterval "0018|1062" #define GKDCM_FrameTime "0018|1063" #define GKDCM_CardiacFramingType "0018|1064" #define GKDCM_FrameTimeVector "0018|1065" #define GKDCM_FrameDelay "0018|1066" #define GKDCM_ImageTriggerDelay "0018|1067" #define GKDCM_MultiplexGroupTimeOffset "0018|1068" #define GKDCM_TriggerTimeOffset "0018|1069" #define GKDCM_SynchronizationTrigger "0018|106a" #define GKDCM_SynchronizationChannel "0018|106c" #define GKDCM_TriggerSamplePosition "0018|106e" #define GKDCM_RadiopharmaceuticalRoute "0018|1070" #define GKDCM_RadiopharmaceuticalVolume "0018|1071" #define GKDCM_RadiopharmaceuticalStartTime "0018|1072" #define GKDCM_RadiopharmaceuticalStopTime "0018|1073" #define GKDCM_RadionuclideTotalDose "0018|1074" #define GKDCM_RadionuclideHalfLife "0018|1075" #define GKDCM_RadionuclidePositronFraction "0018|1076" #define GKDCM_RadiopharmaceuticalSpecificActivity "0018|1077" #define GKDCM_RadiopharmaceuticalStartDateTime "0018|1078" #define GKDCM_RadiopharmaceuticalStopDateTime "0018|1079" #define GKDCM_BeatRejectionFlag "0018|1080" #define GKDCM_LowRRValue "0018|1081" #define GKDCM_HighRRValue "0018|1082" #define GKDCM_IntervalsAcquired "0018|1083" #define GKDCM_IntervalsRejected "0018|1084" #define GKDCM_PVCRejection "0018|1085" #define GKDCM_SkipBeats "0018|1086" #define GKDCM_HeartRate "0018|1088" #define GKDCM_CardiacNumberOfImages "0018|1090" #define GKDCM_TriggerWindow "0018|1094" #define GKDCM_ReconstructionDiameter "0018|1100" #define GKDCM_DistanceSourceToDetector "0018|1110" #define GKDCM_DistanceSourceToPatient "0018|1111" #define GKDCM_EstimatedRadiographicMagnificationFactor "0018|1114" #define GKDCM_GantryDetectorTilt "0018|1120" #define GKDCM_GantryDetectorSlew "0018|1121" #define GKDCM_TableHeight "0018|1130" #define GKDCM_TableTraverse "0018|1131" #define GKDCM_TableMotion "0018|1134" #define GKDCM_TableVerticalIncrement "0018|1135" #define GKDCM_TableLateralIncrement "0018|1136" #define GKDCM_TableLongitudinalIncrement "0018|1137" #define GKDCM_TableAngle "0018|1138" #define GKDCM_TableType "0018|113a" #define GKDCM_RotationDirection "0018|1140" #define GKDCM_RETIRED_AngularPosition "0018|1141" #define GKDCM_RadialPosition "0018|1142" #define GKDCM_ScanArc "0018|1143" #define GKDCM_AngularStep "0018|1144" #define GKDCM_CenterOfRotationOffset "0018|1145" #define GKDCM_RETIRED_RotationOffset "0018|1146" #define GKDCM_FieldOfViewShape "0018|1147" #define GKDCM_FieldOfViewDimensions "0018|1149" #define GKDCM_ExposureTime "0018|1150" #define GKDCM_XRayTubeCurrent "0018|1151" #define GKDCM_Exposure "0018|1152" #define GKDCM_ExposureInuAs "0018|1153" #define GKDCM_AveragePulseWidth "0018|1154" #define GKDCM_RadiationSetting "0018|1155" #define GKDCM_RectificationType "0018|1156" #define GKDCM_RadiationMode "0018|115a" #define GKDCM_ImageAndFluoroscopyAreaDoseProduct "0018|115e" #define GKDCM_FilterType "0018|1160" #define GKDCM_TypeOfFilters "0018|1161" #define GKDCM_IntensifierSize "0018|1162" #define GKDCM_ImagerPixelSpacing "0018|1164" #define GKDCM_Grid "0018|1166" #define GKDCM_GeneratorPower "0018|1170" #define GKDCM_CollimatorGridName "0018|1180" #define GKDCM_CollimatorType "0018|1181" #define GKDCM_FocalDistance "0018|1182" #define GKDCM_XFocusCenter "0018|1183" #define GKDCM_YFocusCenter "0018|1184" #define GKDCM_FocalSpots "0018|1190" #define GKDCM_AnodeTargetMaterial "0018|1191" #define GKDCM_BodyPartThickness "0018|11a0" #define GKDCM_CompressionForce "0018|11a2" #define GKDCM_DateOfLastCalibration "0018|1200" #define GKDCM_TimeOfLastCalibration "0018|1201" #define GKDCM_ConvolutionKernel "0018|1210" #define GKDCM_ACR_NEMA_UpperLowerPixelValues "0018|1240" #define GKDCM_ActualFrameDuration "0018|1242" #define GKDCM_CountRate "0018|1243" #define GKDCM_PreferredPlaybackSequencing "0018|1244" #define GKDCM_ReceiveCoilName "0018|1250" #define GKDCM_TransmitCoilName "0018|1251" #define GKDCM_PlateType "0018|1260" #define GKDCM_PhosphorType "0018|1261" #define GKDCM_ScanVelocity "0018|1300" #define GKDCM_WholeBodyTechnique "0018|1301" #define GKDCM_ScanLength "0018|1302" #define GKDCM_AcquisitionMatrix "0018|1310" #define GKDCM_InPlanePhaseEncodingDirection "0018|1312" #define GKDCM_FlipAngle "0018|1314" #define GKDCM_VariableFlipAngleFlag "0018|1315" #define GKDCM_SAR "0018|1316" #define GKDCM_dBdt "0018|1318" #define GKDCM_AcquisitionDeviceProcessingDescription "0018|1400" #define GKDCM_AcquisitionDeviceProcessingCode "0018|1401" #define GKDCM_CassetteOrientation "0018|1402" #define GKDCM_CassetteSize "0018|1403" #define GKDCM_ExposuresOnPlate "0018|1404" #define GKDCM_RelativeXRayExposure "0018|1405" #define GKDCM_ExposureIndex "0018|1411" #define GKDCM_TargetExposureIndex "0018|1412" #define GKDCM_DeviationIndex "0018|1413" #define GKDCM_ColumnAngulation "0018|1450" #define GKDCM_TomoLayerHeight "0018|1460" #define GKDCM_TomoAngle "0018|1470" #define GKDCM_TomoTime "0018|1480" #define GKDCM_TomoType "0018|1490" #define GKDCM_TomoClass "0018|1491" #define GKDCM_NumberOfTomosynthesisSourceImages "0018|1495" #define GKDCM_PositionerMotion "0018|1500" #define GKDCM_PositionerType "0018|1508" #define GKDCM_PositionerPrimaryAngle "0018|1510" #define GKDCM_PositionerSecondaryAngle "0018|1511" #define GKDCM_PositionerPrimaryAngleIncrement "0018|1520" #define GKDCM_PositionerSecondaryAngleIncrement "0018|1521" #define GKDCM_DetectorPrimaryAngle "0018|1530" #define GKDCM_DetectorSecondaryAngle "0018|1531" #define GKDCM_ShutterShape "0018|1600" #define GKDCM_ShutterLeftVerticalEdge "0018|1602" #define GKDCM_ShutterRightVerticalEdge "0018|1604" #define GKDCM_ShutterUpperHorizontalEdge "0018|1606" #define GKDCM_ShutterLowerHorizontalEdge "0018|1608" #define GKDCM_CenterOfCircularShutter "0018|1610" #define GKDCM_RadiusOfCircularShutter "0018|1612" #define GKDCM_VerticesOfThePolygonalShutter "0018|1620" #define GKDCM_ShutterPresentationValue "0018|1622" #define GKDCM_ShutterOverlayGroup "0018|1623" #define GKDCM_ShutterPresentationColorCIELabValue "0018|1624" #define GKDCM_CollimatorShape "0018|1700" #define GKDCM_CollimatorLeftVerticalEdge "0018|1702" #define GKDCM_CollimatorRightVerticalEdge "0018|1704" #define GKDCM_CollimatorUpperHorizontalEdge "0018|1706" #define GKDCM_CollimatorLowerHorizontalEdge "0018|1708" #define GKDCM_CenterOfCircularCollimator "0018|1710" #define GKDCM_RadiusOfCircularCollimator "0018|1712" #define GKDCM_VerticesOfThePolygonalCollimator "0018|1720" #define GKDCM_AcquisitionTimeSynchronized "0018|1800" #define GKDCM_TimeSource "0018|1801" #define GKDCM_TimeDistributionProtocol "0018|1802" #define GKDCM_NTPSourceAddress "0018|1803" #define GKDCM_PageNumberVector "0018|2001" #define GKDCM_FrameLabelVector "0018|2002" #define GKDCM_FramePrimaryAngleVector "0018|2003" #define GKDCM_FrameSecondaryAngleVector "0018|2004" #define GKDCM_SliceLocationVector "0018|2005" #define GKDCM_DisplayWindowLabelVector "0018|2006" #define GKDCM_NominalScannedPixelSpacing "0018|2010" #define GKDCM_DigitizingDeviceTransportDirection "0018|2020" #define GKDCM_RotationOfScannedFilm "0018|2030" #define GKDCM_IVUSAcquisition "0018|3100" #define GKDCM_IVUSPullbackRate "0018|3101" #define GKDCM_IVUSGatedRate "0018|3102" #define GKDCM_IVUSPullbackStartFrameNumber "0018|3103" #define GKDCM_IVUSPullbackStopFrameNumber "0018|3104" #define GKDCM_LesionNumber "0018|3105" #define GKDCM_ACR_NEMA_AcquisitionComments "0018|4000" #define GKDCM_OutputPower "0018|5000" #define GKDCM_TransducerData "0018|5010" #define GKDCM_FocusDepth "0018|5012" #define GKDCM_ProcessingFunction "0018|5020" #define GKDCM_RETIRED_PostprocessingFunction "0018|5021" #define GKDCM_MechanicalIndex "0018|5022" #define GKDCM_BoneThermalIndex "0018|5024" #define GKDCM_CranialThermalIndex "0018|5026" #define GKDCM_SoftTissueThermalIndex "0018|5027" #define GKDCM_SoftTissueFocusThermalIndex "0018|5028" #define GKDCM_SoftTissueSurfaceThermalIndex "0018|5029" #define GKDCM_ACR_NEMA_DynamicRange "0018|5030" #define GKDCM_ACR_NEMA_TotalGain "0018|5040" #define GKDCM_DepthOfScanField "0018|5050" #define GKDCM_PatientPosition "0018|5100" #define GKDCM_ViewPosition "0018|5101" #define GKDCM_ProjectionEponymousNameCodeSequence "0018|5104" #define GKDCM_RETIRED_ImageTransformationMatrix "0018|5210" #define GKDCM_RETIRED_ImageTranslationVector "0018|5212" #define GKDCM_Sensitivity "0018|6000" #define GKDCM_SequenceOfUltrasoundRegions "0018|6011" #define GKDCM_RegionSpatialFormat "0018|6012" #define GKDCM_RegionDataType "0018|6014" #define GKDCM_RegionFlags "0018|6016" #define GKDCM_RegionLocationMinX0 "0018|6018" #define GKDCM_RegionLocationMinY0 "0018|601a" #define GKDCM_RegionLocationMaxX1 "0018|601c" #define GKDCM_RegionLocationMaxY1 "0018|601e" #define GKDCM_ReferencePixelX0 "0018|6020" #define GKDCM_ReferencePixelY0 "0018|6022" #define GKDCM_PhysicalUnitsXDirection "0018|6024" #define GKDCM_PhysicalUnitsYDirection "0018|6026" #define GKDCM_ReferencePixelPhysicalValueX "0018|6028" #define GKDCM_ReferencePixelPhysicalValueY "0018|602a" #define GKDCM_PhysicalDeltaX "0018|602c" #define GKDCM_PhysicalDeltaY "0018|602e" #define GKDCM_TransducerFrequency "0018|6030" #define GKDCM_TransducerType "0018|6031" #define GKDCM_PulseRepetitionFrequency "0018|6032" #define GKDCM_DopplerCorrectionAngle "0018|6034" #define GKDCM_SteeringAngle "0018|6036" #define GKDCM_RETIRED_DopplerSampleVolumeXPositionRetired "0018|6038" #define GKDCM_DopplerSampleVolumeXPosition "0018|6039" #define GKDCM_RETIRED_DopplerSampleVolumeYPositionRetired "0018|603a" #define GKDCM_DopplerSampleVolumeYPosition "0018|603b" #define GKDCM_RETIRED_TMLinePositionX0Retired "0018|603c" #define GKDCM_TMLinePositionX0 "0018|603d" #define GKDCM_RETIRED_TMLinePositionY0Retired "0018|603e" #define GKDCM_TMLinePositionY0 "0018|603f" #define GKDCM_RETIRED_TMLinePositionX1Retired "0018|6040" #define GKDCM_TMLinePositionX1 "0018|6041" #define GKDCM_RETIRED_TMLinePositionY1Retired "0018|6042" #define GKDCM_TMLinePositionY1 "0018|6043" #define GKDCM_PixelComponentOrganization "0018|6044" #define GKDCM_PixelComponentMask "0018|6046" #define GKDCM_PixelComponentRangeStart "0018|6048" #define GKDCM_PixelComponentRangeStop "0018|604a" #define GKDCM_PixelComponentPhysicalUnits "0018|604c" #define GKDCM_PixelComponentDataType "0018|604e" #define GKDCM_NumberOfTableBreakPoints "0018|6050" #define GKDCM_TableOfXBreakPoints "0018|6052" #define GKDCM_TableOfYBreakPoints "0018|6054" #define GKDCM_NumberOfTableEntries "0018|6056" #define GKDCM_TableOfPixelValues "0018|6058" #define GKDCM_TableOfParameterValues "0018|605a" #define GKDCM_RWaveTimeVector "0018|6060" #define GKDCM_DetectorConditionsNominalFlag "0018|7000" #define GKDCM_DetectorTemperature "0018|7001" #define GKDCM_DetectorType "0018|7004" #define GKDCM_DetectorConfiguration "0018|7005" #define GKDCM_DetectorDescription "0018|7006" #define GKDCM_DetectorMode "0018|7008" #define GKDCM_DetectorID "0018|700a" #define GKDCM_DateOfLastDetectorCalibration "0018|700c" #define GKDCM_TimeOfLastDetectorCalibration "0018|700e" #define GKDCM_ExposuresOnDetectorSinceLastCalibration "0018|7010" #define GKDCM_ExposuresOnDetectorSinceManufactured "0018|7011" #define GKDCM_DetectorTimeSinceLastExposure "0018|7012" #define GKDCM_DetectorActiveTime "0018|7014" #define GKDCM_DetectorActivationOffsetFromExposure "0018|7016" #define GKDCM_DetectorBinning "0018|701a" #define GKDCM_DetectorElementPhysicalSize "0018|7020" #define GKDCM_DetectorElementSpacing "0018|7022" #define GKDCM_DetectorActiveShape "0018|7024" #define GKDCM_DetectorActiveDimensions "0018|7026" #define GKDCM_DetectorActiveOrigin "0018|7028" #define GKDCM_DetectorManufacturerName "0018|702a" #define GKDCM_DetectorManufacturerModelName "0018|702b" #define GKDCM_FieldOfViewOrigin "0018|7030" #define GKDCM_FieldOfViewRotation "0018|7032" #define GKDCM_FieldOfViewHorizontalFlip "0018|7034" #define GKDCM_GridAbsorbingMaterial "0018|7040" #define GKDCM_GridSpacingMaterial "0018|7041" #define GKDCM_GridThickness "0018|7042" #define GKDCM_GridPitch "0018|7044" #define GKDCM_GridAspectRatio "0018|7046" #define GKDCM_GridPeriod "0018|7048" #define GKDCM_GridFocalDistance "0018|704c" #define GKDCM_FilterMaterial "0018|7050" #define GKDCM_FilterThicknessMinimum "0018|7052" #define GKDCM_FilterThicknessMaximum "0018|7054" #define GKDCM_FilterBeamPathLengthMinimum "0018|7056" #define GKDCM_FilterBeamPathLengthMaximum "0018|7058" #define GKDCM_ExposureControlMode "0018|7060" #define GKDCM_ExposureControlModeDescription "0018|7062" #define GKDCM_ExposureStatus "0018|7064" #define GKDCM_PhototimerSetting "0018|7065" #define GKDCM_ExposureTimeInuS "0018|8150" #define GKDCM_XRayTubeCurrentInuA "0018|8151" #define GKDCM_ContentQualification "0018|9004" #define GKDCM_PulseSequenceName "0018|9005" #define GKDCM_MRImagingModifierSequence "0018|9006" #define GKDCM_EchoPulseSequence "0018|9008" #define GKDCM_InversionRecovery "0018|9009" #define GKDCM_FlowCompensation "0018|9010" #define GKDCM_MultipleSpinEcho "0018|9011" #define GKDCM_MultiPlanarExcitation "0018|9012" #define GKDCM_PhaseContrast "0018|9014" #define GKDCM_TimeOfFlightContrast "0018|9015" #define GKDCM_Spoiling "0018|9016" #define GKDCM_SteadyStatePulseSequence "0018|9017" #define GKDCM_EchoPlanarPulseSequence "0018|9018" #define GKDCM_TagAngleFirstAxis "0018|9019" #define GKDCM_MagnetizationTransfer "0018|9020" #define GKDCM_T2Preparation "0018|9021" #define GKDCM_BloodSignalNulling "0018|9022" #define GKDCM_SaturationRecovery "0018|9024" #define GKDCM_SpectrallySelectedSuppression "0018|9025" #define GKDCM_SpectrallySelectedExcitation "0018|9026" #define GKDCM_SpatialPresaturation "0018|9027" #define GKDCM_Tagging "0018|9028" #define GKDCM_OversamplingPhase "0018|9029" #define GKDCM_TagSpacingFirstDimension "0018|9030" #define GKDCM_GeometryOfKSpaceTraversal "0018|9032" #define GKDCM_SegmentedKSpaceTraversal "0018|9033" #define GKDCM_RectilinearPhaseEncodeReordering "0018|9034" #define GKDCM_TagThickness "0018|9035" #define GKDCM_PartialFourierDirection "0018|9036" #define GKDCM_CardiacSynchronizationTechnique "0018|9037" #define GKDCM_ReceiveCoilManufacturerName "0018|9041" #define GKDCM_MRReceiveCoilSequence "0018|9042" #define GKDCM_ReceiveCoilType "0018|9043" #define GKDCM_QuadratureReceiveCoil "0018|9044" #define GKDCM_MultiCoilDefinitionSequence "0018|9045" #define GKDCM_MultiCoilConfiguration "0018|9046" #define GKDCM_MultiCoilElementName "0018|9047" #define GKDCM_MultiCoilElementUsed "0018|9048" #define GKDCM_MRTransmitCoilSequence "0018|9049" #define GKDCM_TransmitCoilManufacturerName "0018|9050" #define GKDCM_TransmitCoilType "0018|9051" #define GKDCM_SpectralWidth "0018|9052" #define GKDCM_ChemicalShiftReference "0018|9053" #define GKDCM_VolumeLocalizationTechnique "0018|9054" #define GKDCM_MRAcquisitionFrequencyEncodingSteps "0018|9058" #define GKDCM_Decoupling "0018|9059" #define GKDCM_DecoupledNucleus "0018|9060" #define GKDCM_DecouplingFrequency "0018|9061" #define GKDCM_DecouplingMethod "0018|9062" #define GKDCM_DecouplingChemicalShiftReference "0018|9063" #define GKDCM_KSpaceFiltering "0018|9064" #define GKDCM_TimeDomainFiltering "0018|9065" #define GKDCM_NumberOfZeroFills "0018|9066" #define GKDCM_BaselineCorrection "0018|9067" #define GKDCM_ParallelReductionFactorInPlane "0018|9069" #define GKDCM_CardiacRRIntervalSpecified "0018|9070" #define GKDCM_AcquisitionDuration "0018|9073" #define GKDCM_FrameAcquisitionDateTime "0018|9074" #define GKDCM_DiffusionDirectionality "0018|9075" #define GKDCM_DiffusionGradientDirectionSequence "0018|9076" #define GKDCM_ParallelAcquisition "0018|9077" #define GKDCM_ParallelAcquisitionTechnique "0018|9078" #define GKDCM_InversionTimes "0018|9079" #define GKDCM_MetaboliteMapDescription "0018|9080" #define GKDCM_PartialFourier "0018|9081" #define GKDCM_EffectiveEchoTime "0018|9082" #define GKDCM_MetaboliteMapCodeSequence "0018|9083" #define GKDCM_ChemicalShiftSequence "0018|9084" #define GKDCM_CardiacSignalSource "0018|9085" #define GKDCM_DiffusionBValue "0018|9087" #define GKDCM_DiffusionGradientOrientation "0018|9089" #define GKDCM_VelocityEncodingDirection "0018|9090" #define GKDCM_VelocityEncodingMinimumValue "0018|9091" #define GKDCM_VelocityEncodingAcquisitionSequence "0018|9092" #define GKDCM_NumberOfKSpaceTrajectories "0018|9093" #define GKDCM_CoverageOfKSpace "0018|9094" #define GKDCM_SpectroscopyAcquisitionPhaseRows "0018|9095" #define GKDCM_RETIRED_ParallelReductionFactorInPlaneRetired "0018|9096" #define GKDCM_TransmitterFrequency "0018|9098" #define GKDCM_ResonantNucleus "0018|9100" #define GKDCM_FrequencyCorrection "0018|9101" #define GKDCM_MRSpectroscopyFOVGeometrySequence "0018|9103" #define GKDCM_SlabThickness "0018|9104" #define GKDCM_SlabOrientation "0018|9105" #define GKDCM_MidSlabPosition "0018|9106" #define GKDCM_MRSpatialSaturationSequence "0018|9107" #define GKDCM_MRTimingAndRelatedParametersSequence "0018|9112" #define GKDCM_MREchoSequence "0018|9114" #define GKDCM_MRModifierSequence "0018|9115" #define GKDCM_MRDiffusionSequence "0018|9117" #define GKDCM_CardiacSynchronizationSequence "0018|9118" #define GKDCM_MRAveragesSequence "0018|9119" #define GKDCM_MRFOVGeometrySequence "0018|9125" #define GKDCM_VolumeLocalizationSequence "0018|9126" #define GKDCM_SpectroscopyAcquisitionDataColumns "0018|9127" #define GKDCM_DiffusionAnisotropyType "0018|9147" #define GKDCM_FrameReferenceDateTime "0018|9151" #define GKDCM_MRMetaboliteMapSequence "0018|9152" #define GKDCM_ParallelReductionFactorOutOfPlane "0018|9155" #define GKDCM_SpectroscopyAcquisitionOutOfPlanePhaseSteps "0018|9159" #define GKDCM_RETIRED_BulkMotionStatus "0018|9166" #define GKDCM_ParallelReductionFactorSecondInPlane "0018|9168" #define GKDCM_CardiacBeatRejectionTechnique "0018|9169" #define GKDCM_RespiratoryMotionCompensationTechnique "0018|9170" #define GKDCM_RespiratorySignalSource "0018|9171" #define GKDCM_BulkMotionCompensationTechnique "0018|9172" #define GKDCM_BulkMotionSignalSource "0018|9173" #define GKDCM_ApplicableSafetyStandardAgency "0018|9174" #define GKDCM_ApplicableSafetyStandardDescription "0018|9175" #define GKDCM_OperatingModeSequence "0018|9176" #define GKDCM_OperatingModeType "0018|9177" #define GKDCM_OperatingMode "0018|9178" #define GKDCM_SpecificAbsorptionRateDefinition "0018|9179" #define GKDCM_GradientOutputType "0018|9180" #define GKDCM_SpecificAbsorptionRateValue "0018|9181" #define GKDCM_GradientOutput "0018|9182" #define GKDCM_FlowCompensationDirection "0018|9183" #define GKDCM_TaggingDelay "0018|9184" #define GKDCM_RespiratoryMotionCompensationTechniqueDescription "0018|9185" #define GKDCM_RespiratorySignalSourceID "0018|9186" #define GKDCM_RETIRED_ChemicalShiftMinimumIntegrationLimitInHz "0018|9195" #define GKDCM_RETIRED_ChemicalShiftMaximumIntegrationLimitInHz "0018|9196" #define GKDCM_MRVelocityEncodingSequence "0018|9197" #define GKDCM_FirstOrderPhaseCorrection "0018|9198" #define GKDCM_WaterReferencedPhaseCorrection "0018|9199" #define GKDCM_MRSpectroscopyAcquisitionType "0018|9200" #define GKDCM_RespiratoryCyclePosition "0018|9214" #define GKDCM_VelocityEncodingMaximumValue "0018|9217" #define GKDCM_TagSpacingSecondDimension "0018|9218" #define GKDCM_TagAngleSecondAxis "0018|9219" #define GKDCM_FrameAcquisitionDuration "0018|9220" #define GKDCM_MRImageFrameTypeSequence "0018|9226" #define GKDCM_MRSpectroscopyFrameTypeSequence "0018|9227" #define GKDCM_MRAcquisitionPhaseEncodingStepsInPlane "0018|9231" #define GKDCM_MRAcquisitionPhaseEncodingStepsOutOfPlane "0018|9232" #define GKDCM_SpectroscopyAcquisitionPhaseColumns "0018|9234" #define GKDCM_CardiacCyclePosition "0018|9236" #define GKDCM_SpecificAbsorptionRateSequence "0018|9239" #define GKDCM_RFEchoTrainLength "0018|9240" #define GKDCM_GradientEchoTrainLength "0018|9241" #define GKDCM_ChemicalShiftMinimumIntegrationLimitInppm "0018|9295" #define GKDCM_ChemicalShiftMaximumIntegrationLimitInppm "0018|9296" #define GKDCM_CTAcquisitionTypeSequence "0018|9301" #define GKDCM_AcquisitionType "0018|9302" #define GKDCM_TubeAngle "0018|9303" #define GKDCM_CTAcquisitionDetailsSequence "0018|9304" #define GKDCM_RevolutionTime "0018|9305" #define GKDCM_SingleCollimationWidth "0018|9306" #define GKDCM_TotalCollimationWidth "0018|9307" #define GKDCM_CTTableDynamicsSequence "0018|9308" #define GKDCM_TableSpeed "0018|9309" #define GKDCM_TableFeedPerRotation "0018|9310" #define GKDCM_SpiralPitchFactor "0018|9311" #define GKDCM_CTGeometrySequence "0018|9312" #define GKDCM_DataCollectionCenterPatient "0018|9313" #define GKDCM_CTReconstructionSequence "0018|9314" #define GKDCM_ReconstructionAlgorithm "0018|9315" #define GKDCM_ConvolutionKernelGroup "0018|9316" #define GKDCM_ReconstructionFieldOfView "0018|9317" #define GKDCM_ReconstructionTargetCenterPatient "0018|9318" #define GKDCM_ReconstructionAngle "0018|9319" #define GKDCM_ImageFilter "0018|9320" #define GKDCM_CTExposureSequence "0018|9321" #define GKDCM_ReconstructionPixelSpacing "0018|9322" #define GKDCM_ExposureModulationType "0018|9323" #define GKDCM_EstimatedDoseSaving "0018|9324" #define GKDCM_CTXRayDetailsSequence "0018|9325" #define GKDCM_CTPositionSequence "0018|9326" #define GKDCM_TablePosition "0018|9327" #define GKDCM_ExposureTimeInms "0018|9328" #define GKDCM_CTImageFrameTypeSequence "0018|9329" #define GKDCM_XRayTubeCurrentInmA "0018|9330" #define GKDCM_ExposureInmAs "0018|9332" #define GKDCM_ConstantVolumeFlag "0018|9333" #define GKDCM_FluoroscopyFlag "0018|9334" #define GKDCM_DistanceSourceToDataCollectionCenter "0018|9335" #define GKDCM_ContrastBolusAgentNumber "0018|9337" #define GKDCM_ContrastBolusIngredientCodeSequence "0018|9338" #define GKDCM_ContrastAdministrationProfileSequence "0018|9340" #define GKDCM_ContrastBolusUsageSequence "0018|9341" #define GKDCM_ContrastBolusAgentAdministered "0018|9342" #define GKDCM_ContrastBolusAgentDetected "0018|9343" #define GKDCM_ContrastBolusAgentPhase "0018|9344" #define GKDCM_CTDIvol "0018|9345" #define GKDCM_CTDIPhantomTypeCodeSequence "0018|9346" #define GKDCM_CalciumScoringMassFactorPatient "0018|9351" #define GKDCM_CalciumScoringMassFactorDevice "0018|9352" #define GKDCM_EnergyWeightingFactor "0018|9353" #define GKDCM_CTAdditionalXRaySourceSequence "0018|9360" #define GKDCM_ProjectionPixelCalibrationSequence "0018|9401" #define GKDCM_DistanceSourceToIsocenter "0018|9402" #define GKDCM_DistanceObjectToTableTop "0018|9403" #define GKDCM_ObjectPixelSpacingInCenterOfBeam "0018|9404" #define GKDCM_PositionerPositionSequence "0018|9405" #define GKDCM_TablePositionSequence "0018|9406" #define GKDCM_CollimatorShapeSequence "0018|9407" #define GKDCM_XAXRFFrameCharacteristicsSequence "0018|9412" #define GKDCM_FrameAcquisitionSequence "0018|9417" #define GKDCM_XRayReceptorType "0018|9420" #define GKDCM_AcquisitionProtocolName "0018|9423" #define GKDCM_AcquisitionProtocolDescription "0018|9424" #define GKDCM_ContrastBolusIngredientOpaque "0018|9425" #define GKDCM_DistanceReceptorPlaneToDetectorHousing "0018|9426" #define GKDCM_IntensifierActiveShape "0018|9427" #define GKDCM_IntensifierActiveDimensions "0018|9428" #define GKDCM_PhysicalDetectorSize "0018|9429" #define GKDCM_PositionOfIsocenterProjection "0018|9430" #define GKDCM_FieldOfViewSequence "0018|9432" #define GKDCM_FieldOfViewDescription "0018|9433" #define GKDCM_ExposureControlSensingRegionsSequence "0018|9434" #define GKDCM_ExposureControlSensingRegionShape "0018|9435" #define GKDCM_ExposureControlSensingRegionLeftVerticalEdge "0018|9436" #define GKDCM_ExposureControlSensingRegionRightVerticalEdge "0018|9437" #define GKDCM_ExposureControlSensingRegionUpperHorizontalEdge "0018|9438" #define GKDCM_ExposureControlSensingRegionLowerHorizontalEdge "0018|9439" #define GKDCM_CenterOfCircularExposureControlSensingRegion "0018|9440" #define GKDCM_RadiusOfCircularExposureControlSensingRegion "0018|9441" #define GKDCM_VerticesOfThePolygonalExposureControlSensingRegion "0018|9442" #define GKDCM_ColumnAngulationPatient "0018|9447" #define GKDCM_BeamAngle "0018|9449" #define GKDCM_FrameDetectorParametersSequence "0018|9451" #define GKDCM_CalculatedAnatomyThickness "0018|9452" #define GKDCM_CalibrationSequence "0018|9455" #define GKDCM_ObjectThicknessSequence "0018|9456" #define GKDCM_PlaneIdentification "0018|9457" #define GKDCM_FieldOfViewDimensionsInFloat "0018|9461" #define GKDCM_IsocenterReferenceSystemSequence "0018|9462" #define GKDCM_PositionerIsocenterPrimaryAngle "0018|9463" #define GKDCM_PositionerIsocenterSecondaryAngle "0018|9464" #define GKDCM_PositionerIsocenterDetectorRotationAngle "0018|9465" #define GKDCM_TableXPositionToIsocenter "0018|9466" #define GKDCM_TableYPositionToIsocenter "0018|9467" #define GKDCM_TableZPositionToIsocenter "0018|9468" #define GKDCM_TableHorizontalRotationAngle "0018|9469" #define GKDCM_TableHeadTiltAngle "0018|9470" #define GKDCM_TableCradleTiltAngle "0018|9471" #define GKDCM_FrameDisplayShutterSequence "0018|9472" #define GKDCM_AcquiredImageAreaDoseProduct "0018|9473" #define GKDCM_CArmPositionerTabletopRelationship "0018|9474" #define GKDCM_XRayGeometrySequence "0018|9476" #define GKDCM_IrradiationEventIdentificationSequence "0018|9477" #define GKDCM_XRay3DFrameTypeSequence "0018|9504" #define GKDCM_ContributingSourcesSequence "0018|9506" #define GKDCM_XRay3DAcquisitionSequence "0018|9507" #define GKDCM_PrimaryPositionerScanArc "0018|9508" #define GKDCM_SecondaryPositionerScanArc "0018|9509" #define GKDCM_PrimaryPositionerScanStartAngle "0018|9510" #define GKDCM_SecondaryPositionerScanStartAngle "0018|9511" #define GKDCM_PrimaryPositionerIncrement "0018|9514" #define GKDCM_SecondaryPositionerIncrement "0018|9515" #define GKDCM_StartAcquisitionDateTime "0018|9516" #define GKDCM_EndAcquisitionDateTime "0018|9517" #define GKDCM_ApplicationName "0018|9524" #define GKDCM_ApplicationVersion "0018|9525" #define GKDCM_ApplicationManufacturer "0018|9526" #define GKDCM_AlgorithmType "0018|9527" #define GKDCM_AlgorithmDescription "0018|9528" #define GKDCM_XRay3DReconstructionSequence "0018|9530" #define GKDCM_ReconstructionDescription "0018|9531" #define GKDCM_PerProjectionAcquisitionSequence "0018|9538" #define GKDCM_DiffusionBMatrixSequence "0018|9601" #define GKDCM_DiffusionBValueXX "0018|9602" #define GKDCM_DiffusionBValueXY "0018|9603" #define GKDCM_DiffusionBValueXZ "0018|9604" #define GKDCM_DiffusionBValueYY "0018|9605" #define GKDCM_DiffusionBValueYZ "0018|9606" #define GKDCM_DiffusionBValueZZ "0018|9607" #define GKDCM_DecayCorrectionDateTime "0018|9701" #define GKDCM_StartDensityThreshold "0018|9715" #define GKDCM_StartRelativeDensityDifferenceThreshold "0018|9716" #define GKDCM_StartCardiacTriggerCountThreshold "0018|9717" #define GKDCM_StartRespiratoryTriggerCountThreshold "0018|9718" #define GKDCM_TerminationCountsThreshold "0018|9719" #define GKDCM_TerminationDensityThreshold "0018|9720" #define GKDCM_TerminationRelativeDensityThreshold "0018|9721" #define GKDCM_TerminationTimeThreshold "0018|9722" #define GKDCM_TerminationCardiacTriggerCountThreshold "0018|9723" #define GKDCM_TerminationRespiratoryTriggerCountThreshold "0018|9724" #define GKDCM_DetectorGeometry "0018|9725" #define GKDCM_TransverseDetectorSeparation "0018|9726" #define GKDCM_AxialDetectorDimension "0018|9727" #define GKDCM_RadiopharmaceuticalAgentNumber "0018|9729" #define GKDCM_PETFrameAcquisitionSequence "0018|9732" #define GKDCM_PETDetectorMotionDetailsSequence "0018|9733" #define GKDCM_PETTableDynamicsSequence "0018|9734" #define GKDCM_PETPositionSequence "0018|9735" #define GKDCM_PETFrameCorrectionFactorsSequence "0018|9736" #define GKDCM_RadiopharmaceuticalUsageSequence "0018|9737" #define GKDCM_AttenuationCorrectionSource "0018|9738" #define GKDCM_NumberOfIterations "0018|9739" #define GKDCM_NumberOfSubsets "0018|9740" #define GKDCM_PETReconstructionSequence "0018|9749" #define GKDCM_PETFrameTypeSequence "0018|9751" #define GKDCM_TimeOfFlightInformationUsed "0018|9755" #define GKDCM_ReconstructionType "0018|9756" #define GKDCM_DecayCorrected "0018|9758" #define GKDCM_AttenuationCorrected "0018|9759" #define GKDCM_ScatterCorrected "0018|9760" #define GKDCM_DeadTimeCorrected "0018|9761" #define GKDCM_GantryMotionCorrected "0018|9762" #define GKDCM_PatientMotionCorrected "0018|9763" #define GKDCM_CountLossNormalizationCorrected "0018|9764" #define GKDCM_RandomsCorrected "0018|9765" #define GKDCM_NonUniformRadialSamplingCorrected "0018|9766" #define GKDCM_SensitivityCalibrated "0018|9767" #define GKDCM_DetectorNormalizationCorrection "0018|9768" #define GKDCM_IterativeReconstructionMethod "0018|9769" #define GKDCM_AttenuationCorrectionTemporalRelationship "0018|9770" #define GKDCM_PatientPhysiologicalStateSequence "0018|9771" #define GKDCM_PatientPhysiologicalStateCodeSequence "0018|9772" #define GKDCM_DepthsOfFocus "0018|9801" #define GKDCM_ExcludedIntervalsSequence "0018|9803" #define GKDCM_ExclusionStartDatetime "0018|9804" #define GKDCM_ExclusionDuration "0018|9805" #define GKDCM_USImageDescriptionSequence "0018|9806" #define GKDCM_ImageDataTypeSequence "0018|9807" #define GKDCM_DataType "0018|9808" #define GKDCM_TransducerScanPatternCodeSequence "0018|9809" #define GKDCM_AliasedDataType "0018|980b" #define GKDCM_PositionMeasuringDeviceUsed "0018|980c" #define GKDCM_TransducerGeometryCodeSequence "0018|980d" #define GKDCM_TransducerBeamSteeringCodeSequence "0018|980e" #define GKDCM_TransducerApplicationCodeSequence "0018|980f" #define GKDCM_ContributingEquipmentSequence "0018|a001" #define GKDCM_ContributionDateTime "0018|a002" #define GKDCM_ContributionDescription "0018|a003" #define GKDCM_StudyInstanceUID "0020|000d" #define GKDCM_SeriesInstanceUID "0020|000e" #define GKDCM_StudyID "0020|0010" #define GKDCM_SeriesNumber "0020|0011" #define GKDCM_AcquisitionNumber "0020|0012" #define GKDCM_InstanceNumber "0020|0013" #define GKDCM_RETIRED_IsotopeNumber "0020|0014" #define GKDCM_RETIRED_PhaseNumber "0020|0015" #define GKDCM_RETIRED_IntervalNumber "0020|0016" #define GKDCM_RETIRED_TimeSlotNumber "0020|0017" #define GKDCM_RETIRED_AngleNumber "0020|0018" #define GKDCM_ItemNumber "0020|0019" #define GKDCM_PatientOrientation "0020|0020" #define GKDCM_RETIRED_OverlayNumber "0020|0022" #define GKDCM_RETIRED_CurveNumber "0020|0024" #define GKDCM_RETIRED_LUTNumber "0020|0026" #define GKDCM_ACR_NEMA_ImagePosition "0020|0030" #define GKDCM_ImagePositionPatient "0020|0032" #define GKDCM_ACR_NEMA_ImageOrientation "0020|0035" #define GKDCM_ImageOrientationPatient "0020|0037" #define GKDCM_ACR_NEMA_Location "0020|0050" #define GKDCM_FrameOfReferenceUID "0020|0052" #define GKDCM_Laterality "0020|0060" #define GKDCM_ImageLaterality "0020|0062" #define GKDCM_ACR_NEMA_ImageGeometryType "0020|0070" #define GKDCM_ACR_NEMA_MaskingImage "0020|0080" #define GKDCM_TemporalPositionIdentifier "0020|0100" #define GKDCM_NumberOfTemporalPositions "0020|0105" #define GKDCM_TemporalResolution "0020|0110" #define GKDCM_SynchronizationFrameOfReferenceUID "0020|0200" #define GKDCM_SOPInstanceUIDOfConcatenationSource "0020|0242" #define GKDCM_RETIRED_SeriesInStudy "0020|1000" #define GKDCM_ACR_NEMA_AcquisitionsInSeries "0020|1001" #define GKDCM_ImagesInAcquisition "0020|1002" #define GKDCM_ACR_NEMA_ImagesInSeries "0020|1003" #define GKDCM_RETIRED_AcquisitionsInStudy "0020|1004" #define GKDCM_ACR_NEMA_ImagesInStudy "0020|1005" #define GKDCM_ACR_NEMA_Reference "0020|1020" #define GKDCM_PositionReferenceIndicator "0020|1040" #define GKDCM_SliceLocation "0020|1041" #define GKDCM_RETIRED_OtherStudyNumbers "0020|1070" #define GKDCM_NumberOfPatientRelatedStudies "0020|1200" #define GKDCM_NumberOfPatientRelatedSeries "0020|1202" #define GKDCM_NumberOfPatientRelatedInstances "0020|1204" #define GKDCM_NumberOfStudyRelatedSeries "0020|1206" #define GKDCM_NumberOfStudyRelatedInstances "0020|1208" #define GKDCM_NumberOfSeriesRelatedInstances "0020|1209" #define GKDCM_ACR_NEMA_ModifyingDeviceID "0020|3401" #define GKDCM_ACR_NEMA_ModifiedImageID "0020|3402" #define GKDCM_ACR_NEMA_ModifiedImageDate "0020|3403" #define GKDCM_ACR_NEMA_ModifyingDeviceManufacturer "0020|3404" #define GKDCM_ACR_NEMA_ModifiedImageTime "0020|3405" #define GKDCM_ACR_NEMA_ModifiedImageDescription "0020|3406" #define GKDCM_ImageComments "0020|4000" #define GKDCM_ACR_NEMA_OriginalImageIdentification "0020|5000" #define GKDCM_ACR_NEMA_OriginalImageIdentificationNomenclature "0020|5002" #define GKDCM_StackID "0020|9056" #define GKDCM_InStackPositionNumber "0020|9057" #define GKDCM_FrameAnatomySequence "0020|9071" #define GKDCM_FrameLaterality "0020|9072" #define GKDCM_FrameContentSequence "0020|9111" #define GKDCM_PlanePositionSequence "0020|9113" #define GKDCM_PlaneOrientationSequence "0020|9116" #define GKDCM_TemporalPositionIndex "0020|9128" #define GKDCM_NominalCardiacTriggerDelayTime "0020|9153" #define GKDCM_FrameAcquisitionNumber "0020|9156" #define GKDCM_DimensionIndexValues "0020|9157" #define GKDCM_FrameComments "0020|9158" #define GKDCM_ConcatenationUID "0020|9161" #define GKDCM_InConcatenationNumber "0020|9162" #define GKDCM_InConcatenationTotalNumber "0020|9163" #define GKDCM_DimensionOrganizationUID "0020|9164" #define GKDCM_DimensionIndexPointer "0020|9165" #define GKDCM_FunctionalGroupPointer "0020|9167" #define GKDCM_DimensionIndexPrivateCreator "0020|9213" #define GKDCM_DimensionOrganizationSequence "0020|9221" #define GKDCM_DimensionIndexSequence "0020|9222" #define GKDCM_ConcatenationFrameOffsetNumber "0020|9228" #define GKDCM_FunctionalGroupPrivateCreator "0020|9238" #define GKDCM_NominalPercentageOfCardiacPhase "0020|9241" #define GKDCM_NominalPercentageOfRespiratoryPhase "0020|9245" #define GKDCM_StartingRespiratoryAmplitude "0020|9246" #define GKDCM_StartingRespiratoryPhase "0020|9247" #define GKDCM_EndingRespiratoryAmplitude "0020|9248" #define GKDCM_EndingRespiratoryPhase "0020|9249" #define GKDCM_RespiratoryTriggerType "0020|9250" #define GKDCM_RRIntervalTimeNominal "0020|9251" #define GKDCM_ActualCardiacTriggerDelayTime "0020|9252" #define GKDCM_RespiratorySynchronizationSequence "0020|9253" #define GKDCM_RespiratoryIntervalTime "0020|9254" #define GKDCM_NominalRespiratoryTriggerDelayTime "0020|9255" #define GKDCM_RespiratoryTriggerDelayThreshold "0020|9256" #define GKDCM_ActualRespiratoryTriggerDelayTime "0020|9257" #define GKDCM_ImagePositionVolume "0020|9301" #define GKDCM_ImageOrientationVolume "0020|9302" #define GKDCM_UltrasoundAcquisitionGeometry "0020|9307" #define GKDCM_ApexPosition "0020|9308" #define GKDCM_VolumeToTransducerMappingMatrix "0020|9309" #define GKDCM_VolumeToTableMappingMatrix "0020|930a" #define GKDCM_PatientFrameOfReferenceSource "0020|930c" #define GKDCM_TemporalPositionTimeOffset "0020|930d" #define GKDCM_PlanePositionVolumeSequence "0020|930e" #define GKDCM_PlaneOrientationVolumeSequence "0020|930f" #define GKDCM_TemporalPositionSequence "0020|9310" #define GKDCM_DimensionOrganizationType "0020|9311" #define GKDCM_VolumeFrameOfReferenceUID "0020|9312" #define GKDCM_TableFrameOfReferenceUID "0020|9313" #define GKDCM_DimensionDescriptionLabel "0020|9421" #define GKDCM_PatientOrientationInFrameSequence "0020|9450" #define GKDCM_FrameLabel "0020|9453" #define GKDCM_AcquisitionIndex "0020|9518" #define GKDCM_ContributingSOPInstancesReferenceSequence "0020|9529" #define GKDCM_ReconstructionIndex "0020|9536" #define GKDCM_LightPathFilterPassThroughWavelength "0022|0001" #define GKDCM_LightPathFilterPassBand "0022|0002" #define GKDCM_ImagePathFilterPassThroughWavelength "0022|0003" #define GKDCM_ImagePathFilterPassBand "0022|0004" #define GKDCM_PatientEyeMovementCommanded "0022|0005" #define GKDCM_PatientEyeMovementCommandCodeSequence "0022|0006" #define GKDCM_SphericalLensPower "0022|0007" #define GKDCM_CylinderLensPower "0022|0008" #define GKDCM_CylinderAxis "0022|0009" #define GKDCM_EmmetropicMagnification "0022|000a" #define GKDCM_IntraOcularPressure "0022|000b" #define GKDCM_HorizontalFieldOfView "0022|000c" #define GKDCM_PupilDilated "0022|000d" #define GKDCM_DegreeOfDilation "0022|000e" #define GKDCM_StereoBaselineAngle "0022|0010" #define GKDCM_StereoBaselineDisplacement "0022|0011" #define GKDCM_StereoHorizontalPixelOffset "0022|0012" #define GKDCM_StereoVerticalPixelOffset "0022|0013" #define GKDCM_StereoRotation "0022|0014" #define GKDCM_AcquisitionDeviceTypeCodeSequence "0022|0015" #define GKDCM_IlluminationTypeCodeSequence "0022|0016" #define GKDCM_LightPathFilterTypeStackCodeSequence "0022|0017" #define GKDCM_ImagePathFilterTypeStackCodeSequence "0022|0018" #define GKDCM_LensesCodeSequence "0022|0019" #define GKDCM_ChannelDescriptionCodeSequence "0022|001a" #define GKDCM_RefractiveStateSequence "0022|001b" #define GKDCM_MydriaticAgentCodeSequence "0022|001c" #define GKDCM_RelativeImagePositionCodeSequence "0022|001d" #define GKDCM_StereoPairsSequence "0022|0020" #define GKDCM_LeftImageSequence "0022|0021" #define GKDCM_RightImageSequence "0022|0022" #define GKDCM_AxialLengthOfTheEye "0022|0030" #define GKDCM_OphthalmicFrameLocationSequence "0022|0031" #define GKDCM_ReferenceCoordinates "0022|0032" #define GKDCM_DepthSpatialResolution "0022|0035" #define GKDCM_MaximumDepthDistortion "0022|0036" #define GKDCM_AlongScanSpatialResolution "0022|0037" #define GKDCM_MaximumAlongScanDistortion "0022|0038" #define GKDCM_OphthalmicImageOrientation "0022|0039" #define GKDCM_DepthOfTransverseImage "0022|0041" #define GKDCM_MydriaticAgentConcentrationUnitsSequence "0022|0042" #define GKDCM_AcrossScanSpatialResolution "0022|0048" #define GKDCM_MaximumAcrossScanDistortion "0022|0049" #define GKDCM_MydriaticAgentConcentration "0022|004e" #define GKDCM_IlluminationWaveLength "0022|0055" #define GKDCM_IlluminationPower "0022|0056" #define GKDCM_IlluminationBandwidth "0022|0057" #define GKDCM_MydriaticAgentSequence "0022|0058" #define GKDCM_OphthalmicAxialMeasurementsRightEyeSequence "0022|1007" #define GKDCM_OphthalmicAxialMeasurementsLeftEyeSequence "0022|1008" #define GKDCM_OphthalmicAxialMeasurementsDeviceType "0022|1009" #define GKDCM_OphthalmicAxialLengthMeasurementsType "0022|1010" #define GKDCM_OphthalmicAxialLengthSequence "0022|1012" #define GKDCM_OphthalmicAxialLength "0022|1019" #define GKDCM_LensStatusCodeSequence "0022|1024" #define GKDCM_VitreousStatusCodeSequence "0022|1025" #define GKDCM_IOLFormulaCodeSequence "0022|1028" #define GKDCM_IOLFormulaDetail "0022|1029" #define GKDCM_KeratometerIndex "0022|1033" #define GKDCM_SourceofOphthalmicAxialLengthCodeSequence "0022|1035" #define GKDCM_TargetRefraction "0022|1037" #define GKDCM_RefractiveProcedureOccurred "0022|1039" #define GKDCM_RefractiveSurgeryTypeCodeSequence "0022|1040" #define GKDCM_OphthalmicUltrasoundMethodCodeSequence "0022|1044" #define GKDCM_OphthalmicAxialLengthMeasurementsSequence "0022|1050" #define GKDCM_IOLPower "0022|1053" #define GKDCM_PredictedRefractiveError "0022|1054" #define GKDCM_OphthalmicAxialLengthVelocity "0022|1059" #define GKDCM_LensStatusDescription "0022|1065" #define GKDCM_VitreousStatusDescription "0022|1066" #define GKDCM_IOLPowerSequence "0022|1090" #define GKDCM_LensConstantSequence "0022|1092" #define GKDCM_IOLManufacturer "0022|1093" #define GKDCM_ImplantName "0022|1095" #define GKDCM_KeratometryMeasurementTypeCodeSequence "0022|1096" #define GKDCM_ImplantPartNumber "0022|1097" #define GKDCM_ReferencedOphthalmicAxialMeasurementsSequence "0022|1100" #define GKDCM_OphthalmicAxialLengthMeasurementsSegmentNameCodeSequence "0022|1101" #define GKDCM_RefractiveErrorBeforeRefractiveSurgeryCodeSequence "0022|1103" #define GKDCM_IOLPowerForExactEmmetropia "0022|1121" #define GKDCM_IOLPowerForExactTargetRefraction "0022|1122" #define GKDCM_AnteriorChamberDepthDefinitionCodeSequence "0022|1125" #define GKDCM_LensThicknessSequence "0022|1127" #define GKDCM_AnteriorChamberDepthSequence "0022|1128" #define GKDCM_LensThickness "0022|1130" #define GKDCM_AnteriorChamberDepth "0022|1131" #define GKDCM_SourceofLensThicknessDataCodeSequence "0022|1132" #define GKDCM_SourceofAnteriorChamberDepthDataCodeSequence "0022|1133" #define GKDCM_SourceofRefractiveMeasurementsSequence "0022|1134" #define GKDCM_SourceofRefractiveMeasurementsCodeSequence "0022|1135" #define GKDCM_OphthalmicAxialLengthMeasurementModified "0022|1140" #define GKDCM_OphthalmicAxialLengthDataSourceCodeSequence "0022|1150" #define GKDCM_SignaltoNoiseRatio "0022|1155" #define GKDCM_OphthalmicAxialLengthDataSourceDescription "0022|1159" #define GKDCM_OphthalmicAxialLengthMeasurementsTotalLengthSequence "0022|1210" #define GKDCM_OphthalmicAxialLengthMeasurementsSegmentalLengthSequence "0022|1211" #define GKDCM_OphthalmicAxialLengthMeasurementsLengthSummationSequence "0022|1212" #define GKDCM_UltrasoundOphthalmicAxialLengthMeasurementsSequence "0022|1220" #define GKDCM_OpticalOphthalmicAxialLengthMeasurementsSequence "0022|1225" #define GKDCM_UltrasoundSelectedOphthalmicAxialLengthSequence "0022|1230" #define GKDCM_OphthalmicAxialLengthSelectionMethodCodeSequence "0022|1250" #define GKDCM_OpticalSelectedOphthalmicAxialLengthSequence "0022|1255" #define GKDCM_SelectedSegmentalOphthalmicAxialLengthSequence "0022|1257" #define GKDCM_SelectedTotalOphthalmicAxialLengthSequence "0022|1260" #define GKDCM_OphthalmicAxialLengthQualityMetricSequence "0022|1262" #define GKDCM_OphthalmicAxialLengthQualityMetricTypeCodeSequence "0022|1265" #define GKDCM_IntraocularLensCalculationsRightEyeSequence "0022|1300" #define GKDCM_IntraocularLensCalculationsLeftEyeSequence "0022|1310" #define GKDCM_ReferencedOphthalmicAxialLengthMeasurementQCImageSequence "0022|1330" #define GKDCM_VisualFieldHorizontalExtent "0024|0010" #define GKDCM_VisualFieldVerticalExtent "0024|0011" #define GKDCM_VisualFieldShape "0024|0012" #define GKDCM_ScreeningTestModeCodeSequence "0024|0016" #define GKDCM_MaximumStimulusLuminance "0024|0018" #define GKDCM_BackgroundLuminance "0024|0020" #define GKDCM_StimulusColorCodeSequence "0024|0021" #define GKDCM_BackgroundIlluminationColorCodeSequence "0024|0024" #define GKDCM_StimulusArea "0024|0025" #define GKDCM_StimulusPresentationTime "0024|0028" #define GKDCM_FixationSequence "0024|0032" #define GKDCM_FixationMonitoringCodeSequence "0024|0033" #define GKDCM_VisualFieldCatchTrialSequence "0024|0034" #define GKDCM_FixationCheckedQuantity "0024|0035" #define GKDCM_PatientNotProperlyFixatedQuantity "0024|0036" #define GKDCM_PresentedVisualStimuliDataFlag "0024|0037" #define GKDCM_NumberOfVisualStimuli "0024|0038" #define GKDCM_ExcessiveFixationLossesDataFlag "0024|0039" #define GKDCM_ExcessiveFixationLosses "0024|0040" #define GKDCM_StimuliRetestingQuantity "0024|0042" #define GKDCM_CommentsOnPatientPerformanceOfVisualField "0024|0044" #define GKDCM_FalseNegativesEstimateFlag "0024|0045" #define GKDCM_FalseNegativesEstimate "0024|0046" #define GKDCM_NegativeCatchTrialsQuantity "0024|0048" #define GKDCM_FalseNegativesQuantity "0024|0050" #define GKDCM_ExcessiveFalseNegativesDataFlag "0024|0051" #define GKDCM_ExcessiveFalseNegatives "0024|0052" #define GKDCM_FalsePositivesEstimateFlag "0024|0053" #define GKDCM_FalsePositivesEstimate "0024|0054" #define GKDCM_CatchTrialsDataFlag "0024|0055" #define GKDCM_PositiveCatchTrialsQuantity "0024|0056" #define GKDCM_TestPointNormalsDataFlag "0024|0057" #define GKDCM_TestPointNormalsSequence "0024|0058" #define GKDCM_GlobalDeviationProbabilityNormalsFlag "0024|0059" #define GKDCM_FalsePositivesQuantity "0024|0060" #define GKDCM_ExcessiveFalsePositivesDataFlag "0024|0061" #define GKDCM_ExcessiveFalsePositives "0024|0062" #define GKDCM_VisualFieldTestNormalsFlag "0024|0063" #define GKDCM_ResultsNormalsSequence "0024|0064" #define GKDCM_AgeCorrectedSensitivityDeviationAlgorithmSequence "0024|0065" #define GKDCM_GlobalDeviationFromNormal "0024|0066" #define GKDCM_GeneralizedDefectSensitivityDeviationAlgorithmSequence "0024|0067" #define GKDCM_LocalizedDeviationfromNormal "0024|0068" #define GKDCM_PatientReliabilityIndicator "0024|0069" #define GKDCM_VisualFieldMeanSensitivity "0024|0070" #define GKDCM_GlobalDeviationProbability "0024|0071" #define GKDCM_LocalDeviationProbabilityNormalsFlag "0024|0072" #define GKDCM_LocalizedDeviationProbability "0024|0073" #define GKDCM_ShortTermFluctuationCalculated "0024|0074" #define GKDCM_ShortTermFluctuation "0024|0075" #define GKDCM_ShortTermFluctuationProbabilityCalculated "0024|0076" #define GKDCM_ShortTermFluctuationProbability "0024|0077" #define GKDCM_CorrectedLocalizedDeviationFromNormalCalculated "0024|0078" #define GKDCM_CorrectedLocalizedDeviationFromNormal "0024|0079" #define GKDCM_CorrectedLocalizedDeviationFromNormalProbabilityCalculated "0024|0080" #define GKDCM_CorrectedLocalizedDeviationFromNormalProbability "0024|0081" #define GKDCM_GlobalDeviationProbabilitySequence "0024|0083" #define GKDCM_LocalizedDeviationProbabilitySequence "0024|0085" #define GKDCM_FovealSensitivityMeasured "0024|0086" #define GKDCM_FovealSensitivity "0024|0087" #define GKDCM_VisualFieldTestDuration "0024|0088" #define GKDCM_VisualFieldTestPointSequence "0024|0089" #define GKDCM_VisualFieldTestPointXCoordinate "0024|0090" #define GKDCM_VisualFieldTestPointYCoordinate "0024|0091" #define GKDCM_AgeCorrectedSensitivityDeviationValue "0024|0092" #define GKDCM_StimulusResults "0024|0093" #define GKDCM_SensitivityValue "0024|0094" #define GKDCM_RetestStimulusSeen "0024|0095" #define GKDCM_RetestSensitivityValue "0024|0096" #define GKDCM_VisualFieldTestPointNormalsSequence "0024|0097" #define GKDCM_QuantifiedDefect "0024|0098" #define GKDCM_GeneralizedDefectCorrectedSensitivityDeviationFlag "0024|0102" #define GKDCM_GeneralizedDefectCorrectedSensitivityDeviationValue "0024|0103" #define GKDCM_GeneralizedDefectCorrectedSensitivityDeviationProbabilityValue "0024|0104" #define GKDCM_MinimumSensitivityValue "0024|0105" #define GKDCM_BlindSpotLocalized "0024|0106" #define GKDCM_BlindSpotXCoordinate "0024|0107" #define GKDCM_BlindSpotYCoordinate "0024|0108" #define GKDCM_VisualAcuityMeasurementSequence "0024|0110" #define GKDCM_RefractiveParametersUsedOnPatientSequence "0024|0112" #define GKDCM_MeasurementLaterality "0024|0113" #define GKDCM_OphthalmicPatientClinicalInformationLeftEyeSequence "0024|0114" #define GKDCM_OphthalmicPatientClinicalInformationRightEyeSequence "0024|0115" #define GKDCM_FovealPointNormativeDataFlag "0024|0117" #define GKDCM_FovealPointProbabilityValue "0024|0118" #define GKDCM_ScreeningBaselineMeasured "0024|0120" #define GKDCM_ScreeningBaselineMeasuredSequence "0024|0122" #define GKDCM_ScreeningBaselineType "0024|0124" #define GKDCM_ScreeningBaselineValue "0024|0126" #define GKDCM_AlgorithmSource "0024|0202" #define GKDCM_DataSetName "0024|0306" #define GKDCM_DataSetVersion "0024|0307" #define GKDCM_DataSetSource "0024|0308" #define GKDCM_DataSetDescription "0024|0309" #define GKDCM_VisualFieldTestReliabilityGlobalIndexSequence "0024|0317" #define GKDCM_VisualFieldGlobalResultsIndexSequence "0024|0320" #define GKDCM_DataObservationSequence "0024|0325" #define GKDCM_IndexNormalsFlag "0024|0338" #define GKDCM_IndexProbability "0024|0341" #define GKDCM_IndexProbabilitySequence "0024|0344" #define GKDCM_SamplesPerPixel "0028|0002" #define GKDCM_SamplesPerPixelUsed "0028|0003" #define GKDCM_PhotometricInterpretation "0028|0004" #define GKDCM_ACR_NEMA_ImageDimensions "0028|0005" #define GKDCM_PlanarConfiguration "0028|0006" #define GKDCM_NumberOfFrames "0028|0008" #define GKDCM_FrameIncrementPointer "0028|0009" #define GKDCM_FrameDimensionPointer "0028|000a" #define GKDCM_Rows "0028|0010" #define GKDCM_Columns "0028|0011" #define GKDCM_RETIRED_Planes "0028|0012" #define GKDCM_UltrasoundColorDataPresent "0028|0014" #define GKDCM_PixelSpacing "0028|0030" #define GKDCM_ImagerPixelSpacing "0018|1164" #define GKDCM_ZoomFactor "0028|0031" #define GKDCM_ZoomCenter "0028|0032" #define GKDCM_PixelAspectRatio "0028|0034" #define GKDCM_ACR_NEMA_ImageFormat "0028|0040" #define GKDCM_ACR_NEMA_ManipulatedImage "0028|0050" #define GKDCM_CorrectedImage "0028|0051" #define GKDCM_ACR_NEMA_2C_CompressionRecognitionCode "0028|005f" #define GKDCM_ACR_NEMA_CompressionCode "0028|0060" #define GKDCM_ACR_NEMA_2C_CompressionOriginator "0028|0061" #define GKDCM_ACR_NEMA_2C_CompressionLabel "0028|0062" #define GKDCM_ACR_NEMA_2C_CompressionDescription "0028|0063" #define GKDCM_ACR_NEMA_2C_CompressionSequence "0028|0065" #define GKDCM_ACR_NEMA_2C_CompressionStepPointers "0028|0066" #define GKDCM_ACR_NEMA_2C_RepeatInterval "0028|0068" #define GKDCM_ACR_NEMA_2C_BitsGrouped "0028|0069" #define GKDCM_ACR_NEMA_2C_PerimeterTable "0028|0070" #define GKDCM_ACR_NEMA_2C_PerimeterValue "0028|0071" #define GKDCM_ACR_NEMA_2C_PredictorRows "0028|0080" #define GKDCM_ACR_NEMA_2C_PredictorColumns "0028|0081" #define GKDCM_ACR_NEMA_2C_PredictorConstants "0028|0082" #define GKDCM_ACR_NEMA_2C_BlockedPixels "0028|0090" #define GKDCM_ACR_NEMA_2C_BlockRows "0028|0091" #define GKDCM_ACR_NEMA_2C_BlockColumns "0028|0092" #define GKDCM_ACR_NEMA_2C_RowOverlap "0028|0093" #define GKDCM_ACR_NEMA_2C_ColumnOverlap "0028|0094" #define GKDCM_BitsAllocated "0028|0100" #define GKDCM_BitsStored "0028|0101" #define GKDCM_HighBit "0028|0102" #define GKDCM_PixelRepresentation "0028|0103" #define GKDCM_ACR_NEMA_SmallestValidPixelValue "0028|0104" #define GKDCM_ACR_NEMA_LargestValidPixelValue "0028|0105" #define GKDCM_SmallestImagePixelValue "0028|0106" #define GKDCM_LargestImagePixelValue "0028|0107" #define GKDCM_SmallestPixelValueInSeries "0028|0108" #define GKDCM_LargestPixelValueInSeries "0028|0109" #define GKDCM_RETIRED_SmallestImagePixelValueInPlane "0028|0110" #define GKDCM_RETIRED_LargestImagePixelValueInPlane "0028|0111" #define GKDCM_PixelPaddingValue "0028|0120" #define GKDCM_PixelPaddingRangeLimit "0028|0121" #define GKDCM_ACR_NEMA_ImageLocation "0028|0200" #define GKDCM_QualityControlImage "0028|0300" #define GKDCM_BurnedInAnnotation "0028|0301" #define GKDCM_ACR_NEMA_2C_TransformLabel "0028|0400" #define GKDCM_ACR_NEMA_2C_TransformVersionNumber "0028|0401" #define GKDCM_ACR_NEMA_2C_NumberOfTransformSteps "0028|0402" #define GKDCM_ACR_NEMA_2C_SequenceOfCompressedData "0028|0403" #define GKDCM_ACR_NEMA_2C_DetailsOfCoefficients "0028|0404" #define GKDCM_ACR_NEMA_2C_RowsForNthOrderCoefficients "0028|0410" #define GKDCM_ACR_NEMA_2C_ColumnsForNthOrderCoefficients "0028|0411" #define GKDCM_ACR_NEMA_2C_CoefficientCoding "0028|0412" #define GKDCM_ACR_NEMA_2C_CoefficientCodingPointers "0028|0413" #define GKDCM_ACR_NEMA_2C_DCTLabel "0028|0700" #define GKDCM_ACR_NEMA_2C_DataBlockDescription "0028|0701" #define GKDCM_ACR_NEMA_2C_DataBlock "0028|0702" #define GKDCM_ACR_NEMA_2C_NormalizationFactorFormat "0028|0710" #define GKDCM_ACR_NEMA_2C_ZonalMapNumberFormat "0028|0720" #define GKDCM_ACR_NEMA_2C_ZonalMapLocation "0028|0721" #define GKDCM_ACR_NEMA_2C_ZonalMapFormat "0028|0722" #define GKDCM_ACR_NEMA_2C_AdaptiveMapFormat "0028|0730" #define GKDCM_ACR_NEMA_2C_CodeNumberFormat "0028|0740" #define GKDCM_ACR_NEMA_2C_CodeLabel "0028|0800" #define GKDCM_ACR_NEMA_2C_NumberOfTables "0028|0802" #define GKDCM_ACR_NEMA_2C_CodeTableLocation "0028|0803" #define GKDCM_ACR_NEMA_2C_BitsForCodeWord "0028|0804" #define GKDCM_ACR_NEMA_2C_ImageDataLocation "0028|0808" #define GKDCM_PixelSpacingCalibrationType "0028|0a02" #define GKDCM_PixelSpacingCalibrationDescription "0028|0a04" #define GKDCM_PixelIntensityRelationship "0028|1040" #define GKDCM_PixelIntensityRelationshipSign "0028|1041" #define GKDCM_WindowCenter "0028|1050" #define GKDCM_WindowWidth "0028|1051" #define GKDCM_RescaleIntercept "0028|1052" #define GKDCM_RescaleSlope "0028|1053" #define GKDCM_RescaleType "0028|1054" #define GKDCM_WindowCenterWidthExplanation "0028|1055" #define GKDCM_VOILUTFunction "0028|1056" #define GKDCM_ACR_NEMA_GrayScale "0028|1080" #define GKDCM_RecommendedViewingMode "0028|1090" #define GKDCM_ACR_NEMA_GrayLookupTableDescriptor "0028|1100" #define GKDCM_RedPaletteColorLookupTableDescriptor "0028|1101" #define GKDCM_GreenPaletteColorLookupTableDescriptor "0028|1102" #define GKDCM_BluePaletteColorLookupTableDescriptor "0028|1103" #define GKDCM_AlphaPaletteColorLookupTableDescriptor "0028|1104" #define GKDCM_RETIRED_LargeRedPaletteColorLookupTableDescriptor "0028|1111" #define GKDCM_RETIRED_LargeGreenPaletteColorLookupTableDescriptor "0028|1112" #define GKDCM_RETIRED_LargeBluePaletteColorLookupTableDescriptor "0028|1113" #define GKDCM_PaletteColorLookupTableUID "0028|1199" #define GKDCM_ACR_NEMA_GrayLookupTableData "0028|1200" #define GKDCM_RedPaletteColorLookupTableData "0028|1201" #define GKDCM_GreenPaletteColorLookupTableData "0028|1202" #define GKDCM_BluePaletteColorLookupTableData "0028|1203" #define GKDCM_AlphaPaletteColorLookupTableData "0028|1204" #define GKDCM_RETIRED_LargeRedPaletteColorLookupTableData "0028|1211" #define GKDCM_RETIRED_LargeGreenPaletteColorLookupTableData "0028|1212" #define GKDCM_RETIRED_LargeBluePaletteColorLookupTableData "0028|1213" #define GKDCM_RETIRED_LargePaletteColorLookupTableUID "0028|1214" #define GKDCM_SegmentedRedPaletteColorLookupTableData "0028|1221" #define GKDCM_SegmentedGreenPaletteColorLookupTableData "0028|1222" #define GKDCM_SegmentedBluePaletteColorLookupTableData "0028|1223" #define GKDCM_BreastImplantPresent "0028|1300" #define GKDCM_PartialView "0028|1350" #define GKDCM_PartialViewDescription "0028|1351" #define GKDCM_PartialViewCodeSequence "0028|1352" #define GKDCM_SpatialLocationsPreserved "0028|135a" #define GKDCM_DataFrameAssignmentSequence "0028|1401" #define GKDCM_DataPathAssignment "0028|1402" #define GKDCM_BitsMappedToColorLookupTable "0028|1403" #define GKDCM_BlendingLUT1Sequence "0028|1404" #define GKDCM_BlendingLUT1TransferFunction "0028|1405" #define GKDCM_BlendingWeightConstant "0028|1406" #define GKDCM_BlendingLookupTableDescriptor "0028|1407" #define GKDCM_BlendingLookupTableData "0028|1408" #define GKDCM_EnhancedPaletteColorLookupTableSequence "0028|140b" #define GKDCM_BlendingLUT2Sequence "0028|140c" #define GKDCM_BlendingLUT2TransferFunction "0028|140d" #define GKDCM_DataPathID "0028|140e" #define GKDCM_RGBLUTTransferFunction "0028|140f" #define GKDCM_AlphaLUTTransferFunction "0028|1410" #define GKDCM_ICCProfile "0028|2000" #define GKDCM_LossyImageCompression "0028|2110" #define GKDCM_LossyImageCompressionRatio "0028|2112" #define GKDCM_LossyImageCompressionMethod "0028|2114" #define GKDCM_ModalityLUTSequence "0028|3000" #define GKDCM_LUTDescriptor "0028|3002" #define GKDCM_LUTExplanation "0028|3003" #define GKDCM_ModalityLUTType "0028|3004" #define GKDCM_LUTData "0028|3006" #define GKDCM_VOILUTSequence "0028|3010" #define GKDCM_SoftcopyVOILUTSequence "0028|3110" #define GKDCM_ACR_NEMA_ImagePresentationComments "0028|4000" #define GKDCM_RETIRED_BiPlaneAcquisitionSequence "0028|5000" #define GKDCM_RepresentativeFrameNumber "0028|6010" #define GKDCM_FrameNumbersOfInterest "0028|6020" #define GKDCM_FrameOfInterestDescription "0028|6022" #define GKDCM_FrameOfInterestType "0028|6023" #define GKDCM_RETIRED_MaskPointers "0028|6030" #define GKDCM_RWavePointer "0028|6040" #define GKDCM_MaskSubtractionSequence "0028|6100" #define GKDCM_MaskOperation "0028|6101" #define GKDCM_ApplicableFrameRange "0028|6102" #define GKDCM_MaskFrameNumbers "0028|6110" #define GKDCM_ContrastFrameAveraging "0028|6112" #define GKDCM_MaskSubPixelShift "0028|6114" #define GKDCM_TIDOffset "0028|6120" #define GKDCM_MaskOperationExplanation "0028|6190" #define GKDCM_PixelDataProviderURL "0028|7fe0" #define GKDCM_DataPointRows "0028|9001" #define GKDCM_DataPointColumns "0028|9002" #define GKDCM_SignalDomainColumns "0028|9003" #define GKDCM_RETIRED_LargestMonochromePixelValue "0028|9099" #define GKDCM_DataRepresentation "0028|9108" #define GKDCM_PixelMeasuresSequence "0028|9110" #define GKDCM_FrameVOILUTSequence "0028|9132" #define GKDCM_PixelValueTransformationSequence "0028|9145" #define GKDCM_SignalDomainRows "0028|9235" #define GKDCM_DisplayFilterPercentage "0028|9411" #define GKDCM_FramePixelShiftSequence "0028|9415" #define GKDCM_SubtractionItemID "0028|9416" #define GKDCM_PixelIntensityRelationshipLUTSequence "0028|9422" #define GKDCM_FramePixelDataPropertiesSequence "0028|9443" #define GKDCM_GeometricalProperties "0028|9444" #define GKDCM_GeometricMaximumDistortion "0028|9445" #define GKDCM_ImageProcessingApplied "0028|9446" #define GKDCM_MaskSelectionMode "0028|9454" #define GKDCM_LUTFunction "0028|9474" #define GKDCM_MaskVisibilityPercentage "0028|9478" #define GKDCM_PixelShiftSequence "0028|9501" #define GKDCM_RegionPixelShiftSequence "0028|9502" #define GKDCM_VerticesOfTheRegion "0028|9503" #define GKDCM_MultiFramePresentationSequence "0028|9505" #define GKDCM_PixelShiftFrameRange "0028|9506" #define GKDCM_LUTFrameRange "0028|9507" #define GKDCM_ImageToEquipmentMappingMatrix "0028|9520" #define GKDCM_EquipmentCoordinateSystemIdentification "0028|9537" #define GKDCM_RETIRED_StudyStatusID "0032|000a" #define GKDCM_RETIRED_StudyPriorityID "0032|000c" #define GKDCM_RETIRED_StudyIDIssuer "0032|0012" #define GKDCM_RETIRED_StudyVerifiedDate "0032|0032" #define GKDCM_RETIRED_StudyVerifiedTime "0032|0033" #define GKDCM_RETIRED_StudyReadDate "0032|0034" #define GKDCM_RETIRED_StudyReadTime "0032|0035" #define GKDCM_RETIRED_ScheduledStudyStartDate "0032|1000" #define GKDCM_RETIRED_ScheduledStudyStartTime "0032|1001" #define GKDCM_RETIRED_ScheduledStudyStopDate "0032|1010" #define GKDCM_RETIRED_ScheduledStudyStopTime "0032|1011" #define GKDCM_RETIRED_ScheduledStudyLocation "0032|1020" #define GKDCM_RETIRED_ScheduledStudyLocationAETitle "0032|1021" #define GKDCM_RETIRED_ReasonForStudy "0032|1030" #define GKDCM_RequestingPhysicianIdentificationSequence "0032|1031" #define GKDCM_RequestingPhysician "0032|1032" #define GKDCM_RequestingService "0032|1033" #define GKDCM_RequestingServiceCodeSequence "0032|1034" #define GKDCM_RETIRED_StudyArrivalDate "0032|1040" #define GKDCM_RETIRED_StudyArrivalTime "0032|1041" #define GKDCM_RETIRED_StudyCompletionDate "0032|1050" #define GKDCM_RETIRED_StudyCompletionTime "0032|1051" #define GKDCM_RETIRED_StudyComponentStatusID "0032|1055" #define GKDCM_RequestedProcedureDescription "0032|1060" #define GKDCM_RequestedProcedureCodeSequence "0032|1064" #define GKDCM_RequestedContrastAgent "0032|1070" #define GKDCM_RETIRED_StudyComments "0032|4000" #define GKDCM_ReferencedPatientAliasSequence "0038|0004" #define GKDCM_VisitStatusID "0038|0008" #define GKDCM_AdmissionID "0038|0010" #define GKDCM_RETIRED_IssuerOfAdmissionID "0038|0011" #define GKDCM_IssuerOfAdmissionIDSequence "0038|0014" #define GKDCM_RouteOfAdmissions "0038|0016" #define GKDCM_RETIRED_ScheduledAdmissionDate "0038|001a" #define GKDCM_RETIRED_ScheduledAdmissionTime "0038|001b" #define GKDCM_RETIRED_ScheduledDischargeDate "0038|001c" #define GKDCM_RETIRED_ScheduledDischargeTime "0038|001d" #define GKDCM_RETIRED_ScheduledPatientInstitutionResidence "0038|001e" #define GKDCM_AdmittingDate "0038|0020" #define GKDCM_AdmittingTime "0038|0021" #define GKDCM_RETIRED_DischargeDate "0038|0030" #define GKDCM_RETIRED_DischargeTime "0038|0032" #define GKDCM_RETIRED_DischargeDiagnosisDescription "0038|0040" #define GKDCM_RETIRED_DischargeDiagnosisCodeSequence "0038|0044" #define GKDCM_SpecialNeeds "0038|0050" #define GKDCM_ServiceEpisodeID "0038|0060" #define GKDCM_RETIRED_IssuerOfServiceEpisodeID "0038|0061" #define GKDCM_ServiceEpisodeDescription "0038|0062" #define GKDCM_IssuerOfServiceEpisodeIDSequence "0038|0064" #define GKDCM_PertinentDocumentsSequence "0038|0100" #define GKDCM_CurrentPatientLocation "0038|0300" #define GKDCM_PatientInstitutionResidence "0038|0400" #define GKDCM_PatientState "0038|0500" #define GKDCM_PatientClinicalTrialParticipationSequence "0038|0502" #define GKDCM_VisitComments "0038|4000" #define GKDCM_WaveformOriginality "003a|0004" #define GKDCM_NumberOfWaveformChannels "003a|0005" #define GKDCM_NumberOfWaveformSamples "003a|0010" #define GKDCM_SamplingFrequency "003a|001a" #define GKDCM_MultiplexGroupLabel "003a|0020" #define GKDCM_ChannelDefinitionSequence "003a|0200" #define GKDCM_WaveformChannelNumber "003a|0202" #define GKDCM_ChannelLabel "003a|0203" #define GKDCM_ChannelStatus "003a|0205" #define GKDCM_ChannelSourceSequence "003a|0208" #define GKDCM_ChannelSourceModifiersSequence "003a|0209" #define GKDCM_SourceWaveformSequence "003a|020a" #define GKDCM_ChannelDerivationDescription "003a|020c" #define GKDCM_ChannelSensitivity "003a|0210" #define GKDCM_ChannelSensitivityUnitsSequence "003a|0211" #define GKDCM_ChannelSensitivityCorrectionFactor "003a|0212" #define GKDCM_ChannelBaseline "003a|0213" #define GKDCM_ChannelTimeSkew "003a|0214" #define GKDCM_ChannelSampleSkew "003a|0215" #define GKDCM_ChannelOffset "003a|0218" #define GKDCM_WaveformBitsStored "003a|021a" #define GKDCM_FilterLowFrequency "003a|0220" #define GKDCM_FilterHighFrequency "003a|0221" #define GKDCM_NotchFilterFrequency "003a|0222" #define GKDCM_NotchFilterBandwidth "003a|0223" #define GKDCM_WaveformDataDisplayScale "003a|0230" #define GKDCM_WaveformDisplayBackgroundCIELabValue "003a|0231" #define GKDCM_WaveformPresentationGroupSequence "003a|0240" #define GKDCM_PresentationGroupNumber "003a|0241" #define GKDCM_ChannelDisplaySequence "003a|0242" #define GKDCM_ChannelRecommendedDisplayCIELabValue "003a|0244" #define GKDCM_ChannelPosition "003a|0245" #define GKDCM_DisplayShadingFlag "003a|0246" #define GKDCM_FractionalChannelDisplayScale "003a|0247" #define GKDCM_AbsoluteChannelDisplayScale "003a|0248" #define GKDCM_MultiplexedAudioChannelsDescriptionCodeSequence "003a|0300" #define GKDCM_ChannelIdentificationCode "003a|0301" #define GKDCM_ChannelMode "003a|0302" #define GKDCM_ScheduledStationAETitle "0040|0001" #define GKDCM_ScheduledProcedureStepStartDate "0040|0002" #define GKDCM_ScheduledProcedureStepStartTime "0040|0003" #define GKDCM_ScheduledProcedureStepEndDate "0040|0004" #define GKDCM_ScheduledProcedureStepEndTime "0040|0005" #define GKDCM_ScheduledPerformingPhysicianName "0040|0006" #define GKDCM_ScheduledProcedureStepDescription "0040|0007" #define GKDCM_ScheduledProtocolCodeSequence "0040|0008" #define GKDCM_ScheduledProcedureStepID "0040|0009" #define GKDCM_StageCodeSequence "0040|000a" #define GKDCM_ScheduledPerformingPhysicianIdentificationSequence "0040|000b" #define GKDCM_ScheduledStationName "0040|0010" #define GKDCM_ScheduledProcedureStepLocation "0040|0011" #define GKDCM_PreMedication "0040|0012" #define GKDCM_ScheduledProcedureStepStatus "0040|0020" #define GKDCM_OrderPlacerIdentifierSequence "0040|0026" #define GKDCM_OrderFillerIdentifierSequence "0040|0027" #define GKDCM_LocalNamespaceEntityID "0040|0031" #define GKDCM_UniversalEntityID "0040|0032" #define GKDCM_UniversalEntityIDType "0040|0033" #define GKDCM_IdentifierTypeCode "0040|0035" #define GKDCM_AssigningFacilitySequence "0040|0036" #define GKDCM_AssigningJurisdictionCodeSequence "0040|0039" #define GKDCM_AssigningAgencyOrDepartmentCodeSequence "0040|003a" #define GKDCM_ScheduledProcedureStepSequence "0040|0100" #define GKDCM_ReferencedNonImageCompositeSOPInstanceSequence "0040|0220" #define GKDCM_PerformedStationAETitle "0040|0241" #define GKDCM_PerformedStationName "0040|0242" #define GKDCM_PerformedLocation "0040|0243" #define GKDCM_PerformedProcedureStepStartDate "0040|0244" #define GKDCM_PerformedProcedureStepStartTime "0040|0245" #define GKDCM_PerformedProcedureStepEndDate "0040|0250" #define GKDCM_PerformedProcedureStepEndTime "0040|0251" #define GKDCM_PerformedProcedureStepStatus "0040|0252" #define GKDCM_PerformedProcedureStepID "0040|0253" #define GKDCM_PerformedProcedureStepDescription "0040|0254" #define GKDCM_PerformedProcedureTypeDescription "0040|0255" #define GKDCM_PerformedProtocolCodeSequence "0040|0260" #define GKDCM_PerformedProtocolType "0040|0261" #define GKDCM_ScheduledStepAttributesSequence "0040|0270" #define GKDCM_RequestAttributesSequence "0040|0275" #define GKDCM_CommentsOnThePerformedProcedureStep "0040|0280" #define GKDCM_PerformedProcedureStepDiscontinuationReasonCodeSequence "0040|0281" #define GKDCM_QuantitySequence "0040|0293" #define GKDCM_Quantity "0040|0294" #define GKDCM_MeasuringUnitsSequence "0040|0295" #define GKDCM_BillingItemSequence "0040|0296" #define GKDCM_TotalTimeOfFluoroscopy "0040|0300" #define GKDCM_TotalNumberOfExposures "0040|0301" #define GKDCM_EntranceDose "0040|0302" #define GKDCM_ExposedArea "0040|0303" #define GKDCM_DistanceSourceToEntrance "0040|0306" #define GKDCM_RETIRED_DistanceSourceToSupport "0040|0307" #define GKDCM_ExposureDoseSequence "0040|030e" #define GKDCM_CommentsOnRadiationDose "0040|0310" #define GKDCM_XRayOutput "0040|0312" #define GKDCM_HalfValueLayer "0040|0314" #define GKDCM_OrganDose "0040|0316" #define GKDCM_OrganExposed "0040|0318" #define GKDCM_BillingProcedureStepSequence "0040|0320" #define GKDCM_FilmConsumptionSequence "0040|0321" #define GKDCM_BillingSuppliesAndDevicesSequence "0040|0324" #define GKDCM_RETIRED_ReferencedProcedureStepSequence "0040|0330" #define GKDCM_PerformedSeriesSequence "0040|0340" #define GKDCM_CommentsOnTheScheduledProcedureStep "0040|0400" #define GKDCM_ProtocolContextSequence "0040|0440" #define GKDCM_ContentItemModifierSequence "0040|0441" #define GKDCM_ScheduledSpecimenSequence "0040|0500" #define GKDCM_RETIRED_SpecimenAccessionNumber "0040|050a" #define GKDCM_ContainerIdentifier "0040|0512" #define GKDCM_IssuerOfTheContainerIdentifierSequence "0040|0513" #define GKDCM_AlternateContainerIdentifierSequence "0040|0515" #define GKDCM_ContainerTypeCodeSequence "0040|0518" #define GKDCM_ContainerDescription "0040|051a" #define GKDCM_ContainerComponentSequence "0040|0520" #define GKDCM_RETIRED_SpecimenSequence "0040|0550" #define GKDCM_SpecimenIdentifier "0040|0551" #define GKDCM_RETIRED_SpecimenDescriptionSequenceTrial "0040|0552" #define GKDCM_RETIRED_SpecimenDescriptionTrial "0040|0553" #define GKDCM_SpecimenUID "0040|0554" #define GKDCM_AcquisitionContextSequence "0040|0555" #define GKDCM_AcquisitionContextDescription "0040|0556" #define GKDCM_SpecimenDescriptionSequence "0040|0560" #define GKDCM_IssuerOfTheSpecimenIdentifierSequence "0040|0562" #define GKDCM_SpecimenTypeCodeSequence "0040|059a" #define GKDCM_SpecimenShortDescription "0040|0600" #define GKDCM_SpecimenDetailedDescription "0040|0602" #define GKDCM_SpecimenPreparationSequence "0040|0610" #define GKDCM_SpecimenPreparationStepContentItemSequence "0040|0612" #define GKDCM_SpecimenLocalizationContentItemSequence "0040|0620" #define GKDCM_RETIRED_SlideIdentifier "0040|06fa" #define GKDCM_ImageCenterPointCoordinatesSequence "0040|071a" #define GKDCM_XOffsetInSlideCoordinateSystem "0040|072a" #define GKDCM_YOffsetInSlideCoordinateSystem "0040|073a" #define GKDCM_ZOffsetInSlideCoordinateSystem "0040|074a" #define GKDCM_RETIRED_PixelSpacingSequence "0040|08d8" #define GKDCM_RETIRED_CoordinateSystemAxisCodeSequence "0040|08da" #define GKDCM_MeasurementUnitsCodeSequence "0040|08ea" #define GKDCM_RETIRED_VitalStainCodeSequenceTrial "0040|09f8" #define GKDCM_RequestedProcedureID "0040|1001" #define GKDCM_ReasonForTheRequestedProcedure "0040|1002" #define GKDCM_RequestedProcedurePriority "0040|1003" #define GKDCM_PatientTransportArrangements "0040|1004" #define GKDCM_RequestedProcedureLocation "0040|1005" #define GKDCM_RETIRED_PlacerOrderNumberProcedure "0040|1006" #define GKDCM_RETIRED_FillerOrderNumberProcedure "0040|1007" #define GKDCM_ConfidentialityCode "0040|1008" #define GKDCM_ReportingPriority "0040|1009" #define GKDCM_ReasonForRequestedProcedureCodeSequence "0040|100a" #define GKDCM_NamesOfIntendedRecipientsOfResults "0040|1010" #define GKDCM_IntendedRecipientsOfResultsIdentificationSequence "0040|1011" #define GKDCM_ReasonForPerformedProcedureCodeSequence "0040|1012" #define GKDCM_PersonIdentificationCodeSequence "0040|1101" #define GKDCM_PersonAddress "0040|1102" #define GKDCM_PersonTelephoneNumbers "0040|1103" #define GKDCM_RequestedProcedureComments "0040|1400" #define GKDCM_RETIRED_ReasonForTheImagingServiceRequest "0040|2001" #define GKDCM_IssueDateOfImagingServiceRequest "0040|2004" #define GKDCM_IssueTimeOfImagingServiceRequest "0040|2005" #define GKDCM_RETIRED_PlacerOrderNumberImagingServiceRequestRetired "0040|2006" #define GKDCM_RETIRED_FillerOrderNumberImagingServiceRequestRetired "0040|2007" #define GKDCM_OrderEnteredBy "0040|2008" #define GKDCM_OrderEntererLocation "0040|2009" #define GKDCM_OrderCallbackPhoneNumber "0040|2010" #define GKDCM_PlacerOrderNumberImagingServiceRequest "0040|2016" #define GKDCM_FillerOrderNumberImagingServiceRequest "0040|2017" #define GKDCM_ImagingServiceRequestComments "0040|2400" #define GKDCM_ConfidentialityConstraintOnPatientDataDescription "0040|3001" #define GKDCM_GeneralPurposeScheduledProcedureStepStatus "0040|4001" #define GKDCM_GeneralPurposePerformedProcedureStepStatus "0040|4002" #define GKDCM_GeneralPurposeScheduledProcedureStepPriority "0040|4003" #define GKDCM_ScheduledProcessingApplicationsCodeSequence "0040|4004" #define GKDCM_ScheduledProcedureStepStartDateTime "0040|4005" #define GKDCM_MultipleCopiesFlag "0040|4006" #define GKDCM_PerformedProcessingApplicationsCodeSequence "0040|4007" #define GKDCM_HumanPerformerCodeSequence "0040|4009" #define GKDCM_ScheduledProcedureStepModificationDateTime "0040|4010" #define GKDCM_ExpectedCompletionDateTime "0040|4011" #define GKDCM_ResultingGeneralPurposePerformedProcedureStepsSequence "0040|4015" #define GKDCM_ReferencedGeneralPurposeScheduledProcedureStepSequence "0040|4016" #define GKDCM_ScheduledWorkitemCodeSequence "0040|4018" #define GKDCM_PerformedWorkitemCodeSequence "0040|4019" #define GKDCM_InputAvailabilityFlag "0040|4020" #define GKDCM_InputInformationSequence "0040|4021" #define GKDCM_RelevantInformationSequence "0040|4022" #define GKDCM_ReferencedGeneralPurposeScheduledProcedureStepTransactionUID "0040|4023" #define GKDCM_ScheduledStationNameCodeSequence "0040|4025" #define GKDCM_ScheduledStationClassCodeSequence "0040|4026" #define GKDCM_ScheduledStationGeographicLocationCodeSequence "0040|4027" #define GKDCM_PerformedStationNameCodeSequence "0040|4028" #define GKDCM_PerformedStationClassCodeSequence "0040|4029" #define GKDCM_PerformedStationGeographicLocationCodeSequence "0040|4030" #define GKDCM_RequestedSubsequentWorkitemCodeSequence "0040|4031" #define GKDCM_NonDICOMOutputCodeSequence "0040|4032" #define GKDCM_OutputInformationSequence "0040|4033" #define GKDCM_ScheduledHumanPerformersSequence "0040|4034" #define GKDCM_ActualHumanPerformersSequence "0040|4035" #define GKDCM_HumanPerformerOrganization "0040|4036" #define GKDCM_HumanPerformerName "0040|4037" #define GKDCM_RawDataHandling "0040|4040" #define GKDCM_EntranceDoseInmGy "0040|8302" #define GKDCM_ReferencedImageRealWorldValueMappingSequence "0040|9094" #define GKDCM_RealWorldValueMappingSequence "0040|9096" #define GKDCM_PixelValueMappingCodeSequence "0040|9098" #define GKDCM_LUTLabel "0040|9210" #define GKDCM_RealWorldValueLastValueMapped "0040|9211" #define GKDCM_RealWorldValueLUTData "0040|9212" #define GKDCM_RealWorldValueFirstValueMapped "0040|9216" #define GKDCM_RealWorldValueIntercept "0040|9224" #define GKDCM_RealWorldValueSlope "0040|9225" #define GKDCM_RelationshipType "0040|a010" #define GKDCM_VerifyingOrganization "0040|a027" #define GKDCM_VerificationDateTime "0040|a030" #define GKDCM_ObservationDateTime "0040|a032" #define GKDCM_ValueType "0040|a040" #define GKDCM_ConceptNameCodeSequence "0040|a043" #define GKDCM_ContinuityOfContent "0040|a050" #define GKDCM_VerifyingObserverSequence "0040|a073" #define GKDCM_VerifyingObserverName "0040|a075" #define GKDCM_AuthorObserverSequence "0040|a078" #define GKDCM_ParticipantSequence "0040|a07a" #define GKDCM_CustodialOrganizationSequence "0040|a07c" #define GKDCM_ParticipationType "0040|a080" #define GKDCM_ParticipationDateTime "0040|a082" #define GKDCM_ObserverType "0040|a084" #define GKDCM_VerifyingObserverIdentificationCodeSequence "0040|a088" #define GKDCM_RETIRED_EquivalentCDADocumentSequence "0040|a090" #define GKDCM_ReferencedWaveformChannels "0040|a0b0" #define GKDCM_DateTime "0040|a120" #define GKDCM_Date "0040|a121" #define GKDCM_Time "0040|a122" #define GKDCM_PersonName "0040|a123" #define GKDCM_UID "0040|a124" #define GKDCM_TemporalRangeType "0040|a130" #define GKDCM_ReferencedSamplePositions "0040|a132" #define GKDCM_ReferencedFrameNumbers "0040|a136" #define GKDCM_ReferencedTimeOffsets "0040|a138" #define GKDCM_ReferencedDateTime "0040|a13a" #define GKDCM_TextValue "0040|a160" #define GKDCM_ConceptCodeSequence "0040|a168" #define GKDCM_PurposeOfReferenceCodeSequence "0040|a170" #define GKDCM_AnnotationGroupNumber "0040|a180" #define GKDCM_ModifierCodeSequence "0040|a195" #define GKDCM_MeasuredValueSequence "0040|a300" #define GKDCM_NumericValueQualifierCodeSequence "0040|a301" #define GKDCM_NumericValue "0040|a30a" #define GKDCM_RETIRED_AddressTrial "0040|a353" #define GKDCM_RETIRED_TelephoneNumberTrial "0040|a354" #define GKDCM_PredecessorDocumentsSequence "0040|a360" #define GKDCM_ReferencedRequestSequence "0040|a370" #define GKDCM_PerformedProcedureCodeSequence "0040|a372" #define GKDCM_CurrentRequestedProcedureEvidenceSequence "0040|a375" #define GKDCM_PertinentOtherEvidenceSequence "0040|a385" #define GKDCM_HL7StructuredDocumentReferenceSequence "0040|a390" #define GKDCM_CompletionFlag "0040|a491" #define GKDCM_CompletionFlagDescription "0040|a492" #define GKDCM_VerificationFlag "0040|a493" #define GKDCM_ArchiveRequested "0040|a494" #define GKDCM_PreliminaryFlag "0040|a496" #define GKDCM_ContentTemplateSequence "0040|a504" #define GKDCM_IdenticalDocumentsSequence "0040|a525" #define GKDCM_ContentSequence "0040|a730" #define GKDCM_WaveformAnnotationSequence "0040|b020" #define GKDCM_TemplateIdentifier "0040|db00" #define GKDCM_RETIRED_TemplateVersion "0040|db06" #define GKDCM_RETIRED_TemplateLocalVersion "0040|db07" #define GKDCM_RETIRED_TemplateExtensionFlag "0040|db0b" #define GKDCM_RETIRED_TemplateExtensionOrganizationUID "0040|db0c" #define GKDCM_RETIRED_TemplateExtensionCreatorUID "0040|db0d" #define GKDCM_ReferencedContentItemIdentifier "0040|db73" #define GKDCM_HL7InstanceIdentifier "0040|e001" #define GKDCM_HL7DocumentEffectiveTime "0040|e004" #define GKDCM_HL7DocumentTypeCodeSequence "0040|e006" #define GKDCM_RetrieveURI "0040|e010" #define GKDCM_RetrieveLocationUID "0040|e011" #define GKDCM_DocumentTitle "0042|0010" #define GKDCM_EncapsulatedDocument "0042|0011" #define GKDCM_MIMETypeOfEncapsulatedDocument "0042|0012" #define GKDCM_SourceInstanceSequence "0042|0013" #define GKDCM_ListOfMIMETypes "0042|0014" #define GKDCM_ProductPackageIdentifier "0044|0001" #define GKDCM_SubstanceAdministrationApproval "0044|0002" #define GKDCM_ApprovalStatusFurtherDescription "0044|0003" #define GKDCM_ApprovalStatusDateTime "0044|0004" #define GKDCM_ProductTypeCodeSequence "0044|0007" #define GKDCM_ProductName "0044|0008" #define GKDCM_ProductDescription "0044|0009" #define GKDCM_ProductLotIdentifier "0044|000a" #define GKDCM_ProductExpirationDateTime "0044|000b" #define GKDCM_SubstanceAdministrationDateTime "0044|0010" #define GKDCM_SubstanceAdministrationNotes "0044|0011" #define GKDCM_SubstanceAdministrationDeviceID "0044|0012" #define GKDCM_ProductParameterSequence "0044|0013" #define GKDCM_SubstanceAdministrationParameterSequence "0044|0019" #define GKDCM_LensDescription "0046|0012" #define GKDCM_RightLensSequence "0046|0014" #define GKDCM_LeftLensSequence "0046|0015" #define GKDCM_UnspecifiedLateralityLensSequence "0046|0016" #define GKDCM_CylinderSequence "0046|0018" #define GKDCM_PrismSequence "0046|0028" #define GKDCM_HorizontalPrismPower "0046|0030" #define GKDCM_HorizontalPrismBase "0046|0032" #define GKDCM_VerticalPrismPower "0046|0034" #define GKDCM_VerticalPrismBase "0046|0036" #define GKDCM_LensSegmentType "0046|0038" #define GKDCM_OpticalTransmittance "0046|0040" #define GKDCM_ChannelWidth "0046|0042" #define GKDCM_PupilSize "0046|0044" #define GKDCM_CornealSize "0046|0046" #define GKDCM_AutorefractionRightEyeSequence "0046|0050" #define GKDCM_AutorefractionLeftEyeSequence "0046|0052" #define GKDCM_DistancePupillaryDistance "0046|0060" #define GKDCM_NearPupillaryDistance "0046|0062" #define GKDCM_IntermediatePupillaryDistance "0046|0063" #define GKDCM_OtherPupillaryDistance "0046|0064" #define GKDCM_KeratometryRightEyeSequence "0046|0070" #define GKDCM_KeratometryLeftEyeSequence "0046|0071" #define GKDCM_SteepKeratometricAxisSequence "0046|0074" #define GKDCM_RadiusOfCurvature "0046|0075" #define GKDCM_KeratometricPower "0046|0076" #define GKDCM_KeratometricAxis "0046|0077" #define GKDCM_FlatKeratometricAxisSequence "0046|0080" #define GKDCM_BackgroundColor "0046|0092" #define GKDCM_Optotype "0046|0094" #define GKDCM_OptotypePresentation "0046|0095" #define GKDCM_SubjectiveRefractionRightEyeSequence "0046|0097" #define GKDCM_SubjectiveRefractionLeftEyeSequence "0046|0098" #define GKDCM_AddNearSequence "0046|0100" #define GKDCM_AddIntermediateSequence "0046|0101" #define GKDCM_AddOtherSequence "0046|0102" #define GKDCM_AddPower "0046|0104" #define GKDCM_ViewingDistance "0046|0106" #define GKDCM_VisualAcuityTypeCodeSequence "0046|0121" #define GKDCM_VisualAcuityRightEyeSequence "0046|0122" #define GKDCM_VisualAcuityLeftEyeSequence "0046|0123" #define GKDCM_VisualAcuityBothEyesOpenSequence "0046|0124" #define GKDCM_ViewingDistanceType "0046|0125" #define GKDCM_VisualAcuityModifiers "0046|0135" #define GKDCM_DecimalVisualAcuity "0046|0137" #define GKDCM_OptotypeDetailedDefinition "0046|0139" #define GKDCM_ReferencedRefractiveMeasurementsSequence "0046|0145" #define GKDCM_SpherePower "0046|0146" #define GKDCM_CylinderPower "0046|0147" #define GKDCM_ImagedVolumeWidth "0048|0001" #define GKDCM_ImagedVolumeHeight "0048|0002" #define GKDCM_ImagedVolumeDepth "0048|0003" #define GKDCM_TotalPixelMatrixColumns "0048|0006" #define GKDCM_TotalPixelMatrixRows "0048|0007" #define GKDCM_TotalPixelMatrixOriginSequence "0048|0008" #define GKDCM_SpecimenLabelInImage "0048|0010" #define GKDCM_FocusMethod "0048|0011" #define GKDCM_ExtendedDepthOfField "0048|0012" #define GKDCM_NumberOfFocalPlanes "0048|0013" #define GKDCM_DistanceBetweenFocalPlanes "0048|0014" #define GKDCM_RecommendedAbsentPixelCIELabValue "0048|0015" #define GKDCM_IlluminatorTypeCodeSequence "0048|0100" #define GKDCM_ImageOrientationSlide "0048|0102" #define GKDCM_OpticalPathSequence "0048|0105" #define GKDCM_OpticalPathIdentifier "0048|0106" #define GKDCM_OpticalPathDescription "0048|0107" #define GKDCM_IlluminationColorCodeSequence "0048|0108" #define GKDCM_SpecimenReferenceSequence "0048|0110" #define GKDCM_CondenserLensPower "0048|0111" #define GKDCM_ObjectiveLensPower "0048|0112" #define GKDCM_ObjectiveLensNumericalAperture "0048|0113" #define GKDCM_PaletteColorLookupTableSequence "0048|0120" #define GKDCM_ReferencedImageNavigationSequence "0048|0200" #define GKDCM_TopLeftHandCornerOfLocalizerArea "0048|0201" #define GKDCM_BottomRightHandCornerOfLocalizerArea "0048|0202" #define GKDCM_OpticalPathIdentificationSequence "0048|0207" #define GKDCM_PlanePositionSlideSequence "0048|021a" #define GKDCM_ColumnPositionInTotalImagePixelMatrix "0048|021e" #define GKDCM_RowPositionInTotalImagePixelMatrix "0048|021f" #define GKDCM_PixelOriginInterpretation "0048|0301" #define GKDCM_CalibrationImage "0050|0004" #define GKDCM_DeviceSequence "0050|0010" #define GKDCM_ContainerComponentTypeCodeSequence "0050|0012" #define GKDCM_ContainerComponentThickness "0050|0013" #define GKDCM_DeviceLength "0050|0014" #define GKDCM_ContainerComponentWidth "0050|0015" #define GKDCM_DeviceDiameter "0050|0016" #define GKDCM_DeviceDiameterUnits "0050|0017" #define GKDCM_DeviceVolume "0050|0018" #define GKDCM_InterMarkerDistance "0050|0019" #define GKDCM_ContainerComponentMaterial "0050|001a" #define GKDCM_ContainerComponentID "0050|001b" #define GKDCM_ContainerComponentLength "0050|001c" #define GKDCM_ContainerComponentDiameter "0050|001d" #define GKDCM_ContainerComponentDescription "0050|001e" #define GKDCM_DeviceDescription "0050|0020" #define GKDCM_EnergyWindowVector "0054|0010" #define GKDCM_NumberOfEnergyWindows "0054|0011" #define GKDCM_EnergyWindowInformationSequence "0054|0012" #define GKDCM_EnergyWindowRangeSequence "0054|0013" #define GKDCM_EnergyWindowLowerLimit "0054|0014" #define GKDCM_EnergyWindowUpperLimit "0054|0015" #define GKDCM_RadiopharmaceuticalInformationSequence "0054|0016" #define GKDCM_ResidualSyringeCounts "0054|0017" #define GKDCM_EnergyWindowName "0054|0018" #define GKDCM_DetectorVector "0054|0020" #define GKDCM_NumberOfDetectors "0054|0021" #define GKDCM_DetectorInformationSequence "0054|0022" #define GKDCM_PhaseVector "0054|0030" #define GKDCM_NumberOfPhases "0054|0031" #define GKDCM_PhaseInformationSequence "0054|0032" #define GKDCM_NumberOfFramesInPhase "0054|0033" #define GKDCM_PhaseDelay "0054|0036" #define GKDCM_PauseBetweenFrames "0054|0038" #define GKDCM_PhaseDescription "0054|0039" #define GKDCM_RotationVector "0054|0050" #define GKDCM_NumberOfRotations "0054|0051" #define GKDCM_RotationInformationSequence "0054|0052" #define GKDCM_NumberOfFramesInRotation "0054|0053" #define GKDCM_RRIntervalVector "0054|0060" #define GKDCM_NumberOfRRIntervals "0054|0061" #define GKDCM_GatedInformationSequence "0054|0062" #define GKDCM_DataInformationSequence "0054|0063" #define GKDCM_TimeSlotVector "0054|0070" #define GKDCM_NumberOfTimeSlots "0054|0071" #define GKDCM_TimeSlotInformationSequence "0054|0072" #define GKDCM_TimeSlotTime "0054|0073" #define GKDCM_SliceVector "0054|0080" #define GKDCM_NumberOfSlices "0054|0081" #define GKDCM_AngularViewVector "0054|0090" #define GKDCM_TimeSliceVector "0054|0100" #define GKDCM_NumberOfTimeSlices "0054|0101" #define GKDCM_StartAngle "0054|0200" #define GKDCM_TypeOfDetectorMotion "0054|0202" #define GKDCM_TriggerVector "0054|0210" #define GKDCM_NumberOfTriggersInPhase "0054|0211" #define GKDCM_ViewCodeSequence "0054|0220" #define GKDCM_ViewModifierCodeSequence "0054|0222" #define GKDCM_RadionuclideCodeSequence "0054|0300" #define GKDCM_AdministrationRouteCodeSequence "0054|0302" #define GKDCM_RadiopharmaceuticalCodeSequence "0054|0304" #define GKDCM_CalibrationDataSequence "0054|0306" #define GKDCM_EnergyWindowNumber "0054|0308" #define GKDCM_ImageID "0054|0400" #define GKDCM_PatientOrientationCodeSequence "0054|0410" #define GKDCM_PatientOrientationModifierCodeSequence "0054|0412" #define GKDCM_PatientGantryRelationshipCodeSequence "0054|0414" #define GKDCM_SliceProgressionDirection "0054|0500" #define GKDCM_SeriesType "0054|1000" #define GKDCM_Units "0054|1001" #define GKDCM_CountsSource "0054|1002" #define GKDCM_ReprojectionMethod "0054|1004" #define GKDCM_RandomsCorrectionMethod "0054|1100" #define GKDCM_AttenuationCorrectionMethod "0054|1101" #define GKDCM_DecayCorrection "0054|1102" #define GKDCM_ReconstructionMethod "0054|1103" #define GKDCM_DetectorLinesOfResponseUsed "0054|1104" #define GKDCM_ScatterCorrectionMethod "0054|1105" #define GKDCM_AxialAcceptance "0054|1200" #define GKDCM_AxialMash "0054|1201" #define GKDCM_TransverseMash "0054|1202" #define GKDCM_DetectorElementSize "0054|1203" #define GKDCM_CoincidenceWindowWidth "0054|1210" #define GKDCM_SecondaryCountsType "0054|1220" #define GKDCM_FrameReferenceTime "0054|1300" #define GKDCM_PrimaryPromptsCountsAccumulated "0054|1310" #define GKDCM_SecondaryCountsAccumulated "0054|1311" #define GKDCM_SliceSensitivityFactor "0054|1320" #define GKDCM_DecayFactor "0054|1321" #define GKDCM_DoseCalibrationFactor "0054|1322" #define GKDCM_ScatterFractionFactor "0054|1323" #define GKDCM_DeadTimeFactor "0054|1324" #define GKDCM_ImageIndex "0054|1330" #define GKDCM_RETIRED_CountsIncluded "0054|1400" #define GKDCM_RETIRED_DeadTimeCorrectionFlag "0054|1401" #define GKDCM_HistogramSequence "0060|3000" #define GKDCM_HistogramNumberOfBins "0060|3002" #define GKDCM_HistogramFirstBinValue "0060|3004" #define GKDCM_HistogramLastBinValue "0060|3006" #define GKDCM_HistogramBinWidth "0060|3008" #define GKDCM_HistogramExplanation "0060|3010" #define GKDCM_HistogramData "0060|3020" #define GKDCM_SegmentationType "0062|0001" #define GKDCM_SegmentSequence "0062|0002" #define GKDCM_SegmentedPropertyCategoryCodeSequence "0062|0003" #define GKDCM_SegmentNumber "0062|0004" #define GKDCM_SegmentLabel "0062|0005" #define GKDCM_SegmentDescription "0062|0006" #define GKDCM_SegmentAlgorithmType "0062|0008" #define GKDCM_SegmentAlgorithmName "0062|0009" #define GKDCM_SegmentIdentificationSequence "0062|000a" #define GKDCM_ReferencedSegmentNumber "0062|000b" #define GKDCM_RecommendedDisplayGrayscaleValue "0062|000c" #define GKDCM_RecommendedDisplayCIELabValue "0062|000d" #define GKDCM_MaximumFractionalValue "0062|000e" #define GKDCM_SegmentedPropertyTypeCodeSequence "0062|000f" #define GKDCM_SegmentationFractionalType "0062|0010" #define GKDCM_DeformableRegistrationSequence "0064|0002" #define GKDCM_SourceFrameOfReferenceUID "0064|0003" #define GKDCM_DeformableRegistrationGridSequence "0064|0005" #define GKDCM_GridDimensions "0064|0007" #define GKDCM_GridResolution "0064|0008" #define GKDCM_VectorGridData "0064|0009" #define GKDCM_PreDeformationMatrixRegistrationSequence "0064|000f" #define GKDCM_PostDeformationMatrixRegistrationSequence "0064|0010" #define GKDCM_NumberOfSurfaces "0066|0001" #define GKDCM_SurfaceSequence "0066|0002" #define GKDCM_SurfaceNumber "0066|0003" #define GKDCM_SurfaceComments "0066|0004" #define GKDCM_SurfaceProcessing "0066|0009" #define GKDCM_SurfaceProcessingRatio "0066|000a" #define GKDCM_SurfaceProcessingDescription "0066|000b" #define GKDCM_RecommendedPresentationOpacity "0066|000c" #define GKDCM_RecommendedPresentationType "0066|000d" #define GKDCM_FiniteVolume "0066|000e" #define GKDCM_Manifold "0066|0010" #define GKDCM_SurfacePointsSequence "0066|0011" #define GKDCM_SurfacePointsNormalsSequence "0066|0012" #define GKDCM_SurfaceMeshPrimitivesSequence "0066|0013" #define GKDCM_NumberOfSurfacePoints "0066|0015" #define GKDCM_PointCoordinatesData "0066|0016" #define GKDCM_PointPositionAccuracy "0066|0017" #define GKDCM_MeanPointDistance "0066|0018" #define GKDCM_MaximumPointDistance "0066|0019" #define GKDCM_PointsBoundingBoxCoordinates "0066|001a" #define GKDCM_AxisOfRotation "0066|001b" #define GKDCM_CenterOfRotation "0066|001c" #define GKDCM_NumberOfVectors "0066|001e" #define GKDCM_VectorDimensionality "0066|001f" #define GKDCM_VectorAccuracy "0066|0020" #define GKDCM_VectorCoordinateData "0066|0021" #define GKDCM_TrianglePointIndexList "0066|0023" #define GKDCM_EdgePointIndexList "0066|0024" #define GKDCM_VertexPointIndexList "0066|0025" #define GKDCM_TriangleStripSequence "0066|0026" #define GKDCM_TriangleFanSequence "0066|0027" #define GKDCM_LineSequence "0066|0028" #define GKDCM_PrimitivePointIndexList "0066|0029" #define GKDCM_SurfaceCount "0066|002a" #define GKDCM_ReferencedSurfaceSequence "0066|002b" #define GKDCM_ReferencedSurfaceNumber "0066|002c" #define GKDCM_SegmentSurfaceGenerationAlgorithmIdentificationSequence "0066|002d" #define GKDCM_SegmentSurfaceSourceInstanceSequence "0066|002e" #define GKDCM_AlgorithmFamilyCodeSequence "0066|002f" #define GKDCM_AlgorithmNameCodeSequence "0066|0030" #define GKDCM_AlgorithmVersion "0066|0031" #define GKDCM_AlgorithmParameters "0066|0032" #define GKDCM_FacetSequence "0066|0034" #define GKDCM_SurfaceProcessingAlgorithmIdentificationSequence "0066|0035" #define GKDCM_AlgorithmName "0066|0036" #define GKDCM_ImplantSize "0068|6210" #define GKDCM_ImplantTemplateVersion "0068|6221" #define GKDCM_ReplacedImplantTemplateSequence "0068|6222" #define GKDCM_ImplantType "0068|6223" #define GKDCM_DerivationImplantTemplateSequence "0068|6224" #define GKDCM_OriginalImplantTemplateSequence "0068|6225" #define GKDCM_EffectiveDateTime "0068|6226" #define GKDCM_ImplantTargetAnatomySequence "0068|6230" #define GKDCM_InformationFromManufacturerSequence "0068|6260" #define GKDCM_NotificationFromManufacturerSequence "0068|6265" #define GKDCM_InformationIssueDateTime "0068|6270" #define GKDCM_InformationSummary "0068|6280" #define GKDCM_ImplantRegulatoryDisapprovalCodeSequence "0068|62a0" #define GKDCM_OverallTemplateSpatialTolerance "0068|62a5" #define GKDCM_HPGLDocumentSequence "0068|62c0" #define GKDCM_HPGLDocumentID "0068|62d0" #define GKDCM_HPGLDocumentLabel "0068|62d5" #define GKDCM_ViewOrientationCodeSequence "0068|62e0" #define GKDCM_ViewOrientationModifier "0068|62f0" #define GKDCM_HPGLDocumentScaling "0068|62f2" #define GKDCM_HPGLDocument "0068|6300" #define GKDCM_HPGLContourPenNumber "0068|6310" #define GKDCM_HPGLPenSequence "0068|6320" #define GKDCM_HPGLPenNumber "0068|6330" #define GKDCM_HPGLPenLabel "0068|6340" #define GKDCM_HPGLPenDescription "0068|6345" #define GKDCM_RecommendedRotationPoint "0068|6346" #define GKDCM_BoundingRectangle "0068|6347" #define GKDCM_ImplantTemplate3DModelSurfaceNumber "0068|6350" #define GKDCM_SurfaceModelDescriptionSequence "0068|6360" #define GKDCM_SurfaceModelLabel "0068|6380" #define GKDCM_SurfaceModelScalingFactor "0068|6390" #define GKDCM_MaterialsCodeSequence "0068|63a0" #define GKDCM_CoatingMaterialsCodeSequence "0068|63a4" #define GKDCM_ImplantTypeCodeSequence "0068|63a8" #define GKDCM_FixationMethodCodeSequence "0068|63ac" #define GKDCM_MatingFeatureSetsSequence "0068|63b0" #define GKDCM_MatingFeatureSetID "0068|63c0" #define GKDCM_MatingFeatureSetLabel "0068|63d0" #define GKDCM_MatingFeatureSequence "0068|63e0" #define GKDCM_MatingFeatureID "0068|63f0" #define GKDCM_MatingFeatureDegreeOfFreedomSequence "0068|6400" #define GKDCM_DegreeOfFreedomID "0068|6410" #define GKDCM_DegreeOfFreedomType "0068|6420" #define GKDCM_TwoDMatingFeatureCoordinatesSequence "0068|6430" #define GKDCM_ReferencedHPGLDocumentID "0068|6440" #define GKDCM_TwoDMatingPoint "0068|6450" #define GKDCM_TwoDMatingAxes "0068|6460" #define GKDCM_TwoDDegreeOfFreedomSequence "0068|6470" #define GKDCM_ThreeDDegreeOfFreedomAxis "0068|6490" #define GKDCM_RangeOfFreedom "0068|64a0" #define GKDCM_ThreeDMatingPoint "0068|64c0" #define GKDCM_ThreeDMatingAxes "0068|64d0" #define GKDCM_TwoDDegreeOfFreedomAxis "0068|64f0" #define GKDCM_PlanningLandmarkPointSequence "0068|6500" #define GKDCM_PlanningLandmarkLineSequence "0068|6510" #define GKDCM_PlanningLandmarkPlaneSequence "0068|6520" #define GKDCM_PlanningLandmarkID "0068|6530" #define GKDCM_PlanningLandmarkDescription "0068|6540" #define GKDCM_PlanningLandmarkIdentificationCodeSequence "0068|6545" #define GKDCM_TwoDPointCoordinatesSequence "0068|6550" #define GKDCM_TwoDPointCoordinates "0068|6560" #define GKDCM_ThreeDPointCoordinates "0068|6590" #define GKDCM_TwoDLineCoordinatesSequence "0068|65a0" #define GKDCM_TwoDLineCoordinates "0068|65b0" #define GKDCM_ThreeDLineCoordinates "0068|65d0" #define GKDCM_TwoDPlaneCoordinatesSequence "0068|65e0" #define GKDCM_TwoDPlaneIntersection "0068|65f0" #define GKDCM_ThreeDPlaneOrigin "0068|6610" #define GKDCM_ThreeDPlaneNormal "0068|6620" #define GKDCM_GraphicAnnotationSequence "0070|0001" #define GKDCM_GraphicLayer "0070|0002" #define GKDCM_BoundingBoxAnnotationUnits "0070|0003" #define GKDCM_AnchorPointAnnotationUnits "0070|0004" #define GKDCM_GraphicAnnotationUnits "0070|0005" #define GKDCM_UnformattedTextValue "0070|0006" #define GKDCM_TextObjectSequence "0070|0008" #define GKDCM_GraphicObjectSequence "0070|0009" #define GKDCM_BoundingBoxTopLeftHandCorner "0070|0010" #define GKDCM_BoundingBoxBottomRightHandCorner "0070|0011" #define GKDCM_BoundingBoxTextHorizontalJustification "0070|0012" #define GKDCM_AnchorPoint "0070|0014" #define GKDCM_AnchorPointVisibility "0070|0015" #define GKDCM_GraphicDimensions "0070|0020" #define GKDCM_NumberOfGraphicPoints "0070|0021" #define GKDCM_GraphicData "0070|0022" #define GKDCM_GraphicType "0070|0023" #define GKDCM_GraphicFilled "0070|0024" #define GKDCM_RETIRED_ImageRotationRetired "0070|0040" #define GKDCM_ImageHorizontalFlip "0070|0041" #define GKDCM_ImageRotation "0070|0042" #define GKDCM_RETIRED_DisplayedAreaTopLeftHandCornerTrial "0070|0050" #define GKDCM_RETIRED_DisplayedAreaBottomRightHandCornerTrial "0070|0051" #define GKDCM_DisplayedAreaTopLeftHandCorner "0070|0052" #define GKDCM_DisplayedAreaBottomRightHandCorner "0070|0053" #define GKDCM_DisplayedAreaSelectionSequence "0070|005a" #define GKDCM_GraphicLayerSequence "0070|0060" #define GKDCM_GraphicLayerOrder "0070|0062" #define GKDCM_GraphicLayerRecommendedDisplayGrayscaleValue "0070|0066" #define GKDCM_RETIRED_GraphicLayerRecommendedDisplayRGBValue "0070|0067" #define GKDCM_GraphicLayerDescription "0070|0068" #define GKDCM_ContentLabel "0070|0080" #define GKDCM_ContentDescription "0070|0081" #define GKDCM_PresentationCreationDate "0070|0082" #define GKDCM_PresentationCreationTime "0070|0083" #define GKDCM_ContentCreatorName "0070|0084" #define GKDCM_ContentCreatorIdentificationCodeSequence "0070|0086" #define GKDCM_AlternateContentDescriptionSequence "0070|0087" #define GKDCM_PresentationSizeMode "0070|0100" #define GKDCM_PresentationPixelSpacing "0070|0101" #define GKDCM_PresentationPixelAspectRatio "0070|0102" #define GKDCM_PresentationPixelMagnificationRatio "0070|0103" #define GKDCM_GraphicGroupLabel "0070|0207" #define GKDCM_GraphicGroupDescription "0070|0208" #define GKDCM_CompoundGraphicSequence "0070|0209" #define GKDCM_CompoundGraphicInstanceID "0070|0226" #define GKDCM_FontName "0070|0227" #define GKDCM_FontNameType "0070|0228" #define GKDCM_CSSFontName "0070|0229" #define GKDCM_RotationAngle "0070|0230" #define GKDCM_TextStyleSequence "0070|0231" #define GKDCM_LineStyleSequence "0070|0232" #define GKDCM_FillStyleSequence "0070|0233" #define GKDCM_GraphicGroupSequence "0070|0234" #define GKDCM_TextColorCIELabValue "0070|0241" #define GKDCM_HorizontalAlignment "0070|0242" #define GKDCM_VerticalAlignment "0070|0243" #define GKDCM_ShadowStyle "0070|0244" #define GKDCM_ShadowOffsetX "0070|0245" #define GKDCM_ShadowOffsetY "0070|0246" #define GKDCM_ShadowColorCIELabValue "0070|0247" #define GKDCM_Underlined "0070|0248" #define GKDCM_Bold "0070|0249" #define GKDCM_Italic "0070|0250" #define GKDCM_PatternOnColorCIELabValue "0070|0251" #define GKDCM_PatternOffColorCIELabValue "0070|0252" #define GKDCM_LineThickness "0070|0253" #define GKDCM_LineDashingStyle "0070|0254" #define GKDCM_LinePattern "0070|0255" #define GKDCM_FillPattern "0070|0256" #define GKDCM_FillMode "0070|0257" #define GKDCM_ShadowOpacity "0070|0258" #define GKDCM_GapLength "0070|0261" #define GKDCM_DiameterOfVisibility "0070|0262" #define GKDCM_RotationPoint "0070|0273" #define GKDCM_TickAlignment "0070|0274" #define GKDCM_ShowTickLabel "0070|0278" #define GKDCM_TickLabelAlignment "0070|0279" #define GKDCM_CompoundGraphicUnits "0070|0282" #define GKDCM_PatternOnOpacity "0070|0284" #define GKDCM_PatternOffOpacity "0070|0285" #define GKDCM_MajorTicksSequence "0070|0287" #define GKDCM_TickPosition "0070|0288" #define GKDCM_TickLabel "0070|0289" #define GKDCM_CompoundGraphicType "0070|0294" #define GKDCM_GraphicGroupID "0070|0295" #define GKDCM_ShapeType "0070|0306" #define GKDCM_RegistrationSequence "0070|0308" #define GKDCM_MatrixRegistrationSequence "0070|0309" #define GKDCM_MatrixSequence "0070|030a" #define GKDCM_FrameOfReferenceTransformationMatrixType "0070|030c" #define GKDCM_RegistrationTypeCodeSequence "0070|030d" #define GKDCM_FiducialDescription "0070|030f" #define GKDCM_FiducialIdentifier "0070|0310" #define GKDCM_FiducialIdentifierCodeSequence "0070|0311" #define GKDCM_ContourUncertaintyRadius "0070|0312" #define GKDCM_UsedFiducialsSequence "0070|0314" #define GKDCM_GraphicCoordinatesDataSequence "0070|0318" #define GKDCM_FiducialUID "0070|031a" #define GKDCM_FiducialSetSequence "0070|031c" #define GKDCM_FiducialSequence "0070|031e" #define GKDCM_GraphicLayerRecommendedDisplayCIELabValue "0070|0401" #define GKDCM_BlendingSequence "0070|0402" #define GKDCM_RelativeOpacity "0070|0403" #define GKDCM_ReferencedSpatialRegistrationSequence "0070|0404" #define GKDCM_BlendingPosition "0070|0405" #define GKDCM_HangingProtocolName "0072|0002" #define GKDCM_HangingProtocolDescription "0072|0004" #define GKDCM_HangingProtocolLevel "0072|0006" #define GKDCM_HangingProtocolCreator "0072|0008" #define GKDCM_HangingProtocolCreationDateTime "0072|000a" #define GKDCM_HangingProtocolDefinitionSequence "0072|000c" #define GKDCM_HangingProtocolUserIdentificationCodeSequence "0072|000e" #define GKDCM_HangingProtocolUserGroupName "0072|0010" #define GKDCM_SourceHangingProtocolSequence "0072|0012" #define GKDCM_NumberOfPriorsReferenced "0072|0014" #define GKDCM_ImageSetsSequence "0072|0020" #define GKDCM_ImageSetSelectorSequence "0072|0022" #define GKDCM_ImageSetSelectorUsageFlag "0072|0024" #define GKDCM_SelectorAttribute "0072|0026" #define GKDCM_SelectorValueNumber "0072|0028" #define GKDCM_TimeBasedImageSetsSequence "0072|0030" #define GKDCM_ImageSetNumber "0072|0032" #define GKDCM_ImageSetSelectorCategory "0072|0034" #define GKDCM_RelativeTime "0072|0038" #define GKDCM_RelativeTimeUnits "0072|003a" #define GKDCM_AbstractPriorValue "0072|003c" #define GKDCM_AbstractPriorCodeSequence "0072|003e" #define GKDCM_ImageSetLabel "0072|0040" #define GKDCM_SelectorAttributeVR "0072|0050" #define GKDCM_SelectorSequencePointer "0072|0052" #define GKDCM_SelectorSequencePointerPrivateCreator "0072|0054" #define GKDCM_SelectorAttributePrivateCreator "0072|0056" #define GKDCM_SelectorATValue "0072|0060" #define GKDCM_SelectorCSValue "0072|0062" #define GKDCM_SelectorISValue "0072|0064" #define GKDCM_SelectorLOValue "0072|0066" #define GKDCM_SelectorLTValue "0072|0068" #define GKDCM_SelectorPNValue "0072|006a" #define GKDCM_SelectorSHValue "0072|006c" #define GKDCM_SelectorSTValue "0072|006e" #define GKDCM_SelectorUTValue "0072|0070" #define GKDCM_SelectorDSValue "0072|0072" #define GKDCM_SelectorFDValue "0072|0074" #define GKDCM_SelectorFLValue "0072|0076" #define GKDCM_SelectorULValue "0072|0078" #define GKDCM_SelectorUSValue "0072|007a" #define GKDCM_SelectorSLValue "0072|007c" #define GKDCM_SelectorSSValue "0072|007e" #define GKDCM_SelectorCodeSequenceValue "0072|0080" #define GKDCM_NumberOfScreens "0072|0100" #define GKDCM_NominalScreenDefinitionSequence "0072|0102" #define GKDCM_NumberOfVerticalPixels "0072|0104" #define GKDCM_NumberOfHorizontalPixels "0072|0106" #define GKDCM_DisplayEnvironmentSpatialPosition "0072|0108" #define GKDCM_ScreenMinimumGrayscaleBitDepth "0072|010a" #define GKDCM_ScreenMinimumColorBitDepth "0072|010c" #define GKDCM_ApplicationMaximumRepaintTime "0072|010e" #define GKDCM_DisplaySetsSequence "0072|0200" #define GKDCM_DisplaySetNumber "0072|0202" #define GKDCM_DisplaySetLabel "0072|0203" #define GKDCM_DisplaySetPresentationGroup "0072|0204" #define GKDCM_DisplaySetPresentationGroupDescription "0072|0206" #define GKDCM_PartialDataDisplayHandling "0072|0208" #define GKDCM_SynchronizedScrollingSequence "0072|0210" #define GKDCM_DisplaySetScrollingGroup "0072|0212" #define GKDCM_NavigationIndicatorSequence "0072|0214" #define GKDCM_NavigationDisplaySet "0072|0216" #define GKDCM_ReferenceDisplaySets "0072|0218" #define GKDCM_ImageBoxesSequence "0072|0300" #define GKDCM_ImageBoxNumber "0072|0302" #define GKDCM_ImageBoxLayoutType "0072|0304" #define GKDCM_ImageBoxTileHorizontalDimension "0072|0306" #define GKDCM_ImageBoxTileVerticalDimension "0072|0308" #define GKDCM_ImageBoxScrollDirection "0072|0310" #define GKDCM_ImageBoxSmallScrollType "0072|0312" #define GKDCM_ImageBoxSmallScrollAmount "0072|0314" #define GKDCM_ImageBoxLargeScrollType "0072|0316" #define GKDCM_ImageBoxLargeScrollAmount "0072|0318" #define GKDCM_ImageBoxOverlapPriority "0072|0320" #define GKDCM_CineRelativeToRealTime "0072|0330" #define GKDCM_FilterOperationsSequence "0072|0400" #define GKDCM_FilterByCategory "0072|0402" #define GKDCM_FilterByAttributePresence "0072|0404" #define GKDCM_FilterByOperator "0072|0406" #define GKDCM_StructuredDisplayBackgroundCIELabValue "0072|0420" #define GKDCM_EmptyImageBoxCIELabValue "0072|0421" #define GKDCM_StructuredDisplayImageBoxSequence "0072|0422" #define GKDCM_StructuredDisplayTextBoxSequence "0072|0424" #define GKDCM_ReferencedFirstFrameSequence "0072|0427" #define GKDCM_ImageBoxSynchronizationSequence "0072|0430" #define GKDCM_SynchronizedImageBoxList "0072|0432" #define GKDCM_TypeOfSynchronization "0072|0434" #define GKDCM_BlendingOperationType "0072|0500" #define GKDCM_ReformattingOperationType "0072|0510" #define GKDCM_ReformattingThickness "0072|0512" #define GKDCM_ReformattingInterval "0072|0514" #define GKDCM_ReformattingOperationInitialViewDirection "0072|0516" #define GKDCM_ThreeDRenderingType "0072|0520" #define GKDCM_SortingOperationsSequence "0072|0600" #define GKDCM_SortByCategory "0072|0602" #define GKDCM_SortingDirection "0072|0604" #define GKDCM_DisplaySetPatientOrientation "0072|0700" #define GKDCM_VOIType "0072|0702" #define GKDCM_PseudoColorType "0072|0704" #define GKDCM_ShowGrayscaleInverted "0072|0706" #define GKDCM_ShowImageTrueSizeFlag "0072|0710" #define GKDCM_ShowGraphicAnnotationFlag "0072|0712" #define GKDCM_ShowPatientDemographicsFlag "0072|0714" #define GKDCM_ShowAcquisitionTechniquesFlag "0072|0716" #define GKDCM_DisplaySetHorizontalJustification "0072|0717" #define GKDCM_DisplaySetVerticalJustification "0072|0718" #define GKDCM_UnifiedProcedureStepState "0074|1000" #define GKDCM_UnifiedProcedureStepProgressInformationSequence "0074|1002" #define GKDCM_UnifiedProcedureStepProgress "0074|1004" #define GKDCM_UnifiedProcedureStepProgressDescription "0074|1006" #define GKDCM_UnifiedProcedureStepCommunicationsURISequence "0074|1008" #define GKDCM_ContactURI "0074|100a" #define GKDCM_ContactDisplayName "0074|100c" #define GKDCM_UnifiedProcedureStepDiscontinuationReasonCodeSequence "0074|100e" #define GKDCM_BeamTaskSequence "0074|1020" #define GKDCM_BeamTaskType "0074|1022" #define GKDCM_BeamOrderIndex "0074|1024" #define GKDCM_DeliveryVerificationImageSequence "0074|1030" #define GKDCM_VerificationImageTiming "0074|1032" #define GKDCM_DoubleExposureFlag "0074|1034" #define GKDCM_DoubleExposureOrdering "0074|1036" #define GKDCM_DoubleExposureMeterset "0074|1038" #define GKDCM_DoubleExposureFieldDelta "0074|103a" #define GKDCM_RelatedReferenceRTImageSequence "0074|1040" #define GKDCM_GeneralMachineVerificationSequence "0074|1042" #define GKDCM_ConventionalMachineVerificationSequence "0074|1044" #define GKDCM_IonMachineVerificationSequence "0074|1046" #define GKDCM_FailedAttributesSequence "0074|1048" #define GKDCM_OverriddenAttributesSequence "0074|104a" #define GKDCM_ConventionalControlPointVerificationSequence "0074|104c" #define GKDCM_IonControlPointVerificationSequence "0074|104e" #define GKDCM_AttributeOccurrenceSequence "0074|1050" #define GKDCM_AttributeOccurrencePointer "0074|1052" #define GKDCM_AttributeItemSelector "0074|1054" #define GKDCM_AttributeOccurrencePrivateCreator "0074|1056" #define GKDCM_ScheduledProcedureStepPriority "0074|1200" #define GKDCM_WorklistLabel "0074|1202" #define GKDCM_ProcedureStepLabel "0074|1204" #define GKDCM_ScheduledProcessingParametersSequence "0074|1210" #define GKDCM_PerformedProcessingParametersSequence "0074|1212" #define GKDCM_UnifiedProcedureStepPerformedProcedureSequence "0074|1216" #define GKDCM_RelatedProcedureStepSequence "0074|1220" #define GKDCM_ProcedureStepRelationshipType "0074|1222" #define GKDCM_DeletionLock "0074|1230" #define GKDCM_ReceivingAE "0074|1234" #define GKDCM_RequestingAE "0074|1236" #define GKDCM_ReasonForCancellation "0074|1238" #define GKDCM_SCPStatus "0074|1242" #define GKDCM_SubscriptionListStatus "0074|1244" #define GKDCM_UnifiedProcedureStepListStatus "0074|1246" #define GKDCM_ImplantAssemblyTemplateName "0076|0001" #define GKDCM_ImplantAssemblyTemplateIssuer "0076|0003" #define GKDCM_ImplantAssemblyTemplateVersion "0076|0006" #define GKDCM_ReplacedImplantAssemblyTemplateSequence "0076|0008" #define GKDCM_ImplantAssemblyTemplateType "0076|000a" #define GKDCM_OriginalImplantAssemblyTemplateSequence "0076|000c" #define GKDCM_DerivationImplantAssemblyTemplateSequence "0076|000e" #define GKDCM_ImplantAssemblyTemplateTargetAnatomySequence "0076|0010" #define GKDCM_ProcedureTypeCodeSequence "0076|0020" #define GKDCM_SurgicalTechnique "0076|0030" #define GKDCM_ComponentTypesSequence "0076|0032" #define GKDCM_ComponentTypeCodeSequence "0076|0034" #define GKDCM_ExclusiveComponentType "0076|0036" #define GKDCM_MandatoryComponentType "0076|0038" #define GKDCM_ComponentSequence "0076|0040" #define GKDCM_ComponentID "0076|0055" #define GKDCM_ComponentAssemblySequence "0076|0060" #define GKDCM_Component1ReferencedID "0076|0070" #define GKDCM_Component1ReferencedMatingFeatureSetID "0076|0080" #define GKDCM_Component1ReferencedMatingFeatureID "0076|0090" #define GKDCM_Component2ReferencedID "0076|00a0" #define GKDCM_Component2ReferencedMatingFeatureSetID "0076|00b0" #define GKDCM_Component2ReferencedMatingFeatureID "0076|00c0" #define GKDCM_ImplantTemplateGroupName "0078|0000" #define GKDCM_ImplantTemplateGroupDescription "0078|0010" #define GKDCM_ImplantTemplateGroupIssuer "0078|0020" #define GKDCM_ImplantTemplateGroupVersion "0078|0024" #define GKDCM_ReplacedImplantTemplateGroupSequence "0078|0026" #define GKDCM_ImplantTemplateGroupTargetAnatomySequence "0078|0028" #define GKDCM_ImplantTemplateGroupMembersSequence "0078|002a" #define GKDCM_ImplantTemplateGroupMemberID "0078|002e" #define GKDCM_ThreeDImplantTemplateGroupMemberMatchingPoint "0078|0050" #define GKDCM_ThreeDImplantTemplateGroupMemberMatchingAxes "0078|0060" #define GKDCM_ImplantTemplateGroupMemberMatching2DCoordinatesSequence "0078|0070" #define GKDCM_TwoDImplantTemplateGroupMemberMatchingPoint "0078|0090" #define GKDCM_TwoDImplantTemplateGroupMemberMatchingAxes "0078|00a0" #define GKDCM_ImplantTemplateGroupVariationDimensionSequence "0078|00b0" #define GKDCM_ImplantTemplateGroupVariationDimensionName "0078|00b2" #define GKDCM_ImplantTemplateGroupVariationDimensionRankSequence "0078|00b4" #define GKDCM_ReferencedImplantTemplateGroupMemberID "0078|00b6" #define GKDCM_ImplantTemplateGroupVariationDimensionRank "0078|00b8" #define GKDCM_StorageMediaFileSetID "0088|0130" #define GKDCM_StorageMediaFileSetUID "0088|0140" #define GKDCM_IconImageSequence "0088|0200" #define GKDCM_RETIRED_TopicTitle "0088|0904" #define GKDCM_RETIRED_TopicSubject "0088|0906" #define GKDCM_RETIRED_TopicAuthor "0088|0910" #define GKDCM_RETIRED_TopicKeywords "0088|0912" #define GKDCM_SOPInstanceStatus "0100|0410" #define GKDCM_SOPAuthorizationDateTime "0100|0420" #define GKDCM_SOPAuthorizationComment "0100|0424" #define GKDCM_AuthorizationEquipmentCertificationNumber "0100|0426" #define GKDCM_MACIDNumber "0400|0005" #define GKDCM_MACCalculationTransferSyntaxUID "0400|0010" #define GKDCM_MACAlgorithm "0400|0015" #define GKDCM_DataElementsSigned "0400|0020" #define GKDCM_DigitalSignatureUID "0400|0100" #define GKDCM_DigitalSignatureDateTime "0400|0105" #define GKDCM_CertificateType "0400|0110" #define GKDCM_CertificateOfSigner "0400|0115" #define GKDCM_Signature "0400|0120" #define GKDCM_CertifiedTimestampType "0400|0305" #define GKDCM_CertifiedTimestamp "0400|0310" #define GKDCM_DigitalSignaturePurposeCodeSequence "0400|0401" #define GKDCM_ReferencedDigitalSignatureSequence "0400|0402" #define GKDCM_ReferencedSOPInstanceMACSequence "0400|0403" #define GKDCM_MAC "0400|0404" #define GKDCM_EncryptedAttributesSequence "0400|0500" #define GKDCM_EncryptedContentTransferSyntaxUID "0400|0510" #define GKDCM_EncryptedContent "0400|0520" #define GKDCM_ModifiedAttributesSequence "0400|0550" #define GKDCM_OriginalAttributesSequence "0400|0561" #define GKDCM_AttributeModificationDateTime "0400|0562" #define GKDCM_ModifyingSystem "0400|0563" #define GKDCM_SourceOfPreviousValues "0400|0564" #define GKDCM_ReasonForTheAttributeModification "0400|0565" #define GKDCM_ACR_NEMA_2C_CodeTableGroupLength "1000|0000" #define GKDCM_ACR_NEMA_2C_EscapeTriplet "1000|0010" #define GKDCM_ACR_NEMA_2C_RunLengthTriplet "1000|0011" #define GKDCM_ACR_NEMA_2C_HuffmanTableSize "1000|0012" #define GKDCM_ACR_NEMA_2C_HuffmanTableTriplet "1000|0013" #define GKDCM_ACR_NEMA_2C_ShiftTableSize "1000|0014" #define GKDCM_ACR_NEMA_2C_ShiftTableTriplet "1000|0015" #define GKDCM_ACR_NEMA_2C_ZonalMapGroupLength "1010|0000" #define GKDCM_ACR_NEMA_2C_ZonalMap "1010|0004" #define GKDCM_NumberOfCopies "2000|0010" #define GKDCM_PrinterConfigurationSequence "2000|001e" #define GKDCM_PrintPriority "2000|0020" #define GKDCM_MediumType "2000|0030" #define GKDCM_FilmDestination "2000|0040" #define GKDCM_FilmSessionLabel "2000|0050" #define GKDCM_MemoryAllocation "2000|0060" #define GKDCM_MaximumMemoryAllocation "2000|0061" #define GKDCM_RETIRED_ColorImagePrintingFlag "2000|0062" #define GKDCM_RETIRED_CollationFlag "2000|0063" #define GKDCM_RETIRED_AnnotationFlag "2000|0065" #define GKDCM_RETIRED_ImageOverlayFlag "2000|0067" #define GKDCM_RETIRED_PresentationLUTFlag "2000|0069" #define GKDCM_RETIRED_ImageBoxPresentationLUTFlag "2000|006a" #define GKDCM_MemoryBitDepth "2000|00a0" #define GKDCM_PrintingBitDepth "2000|00a1" #define GKDCM_MediaInstalledSequence "2000|00a2" #define GKDCM_OtherMediaAvailableSequence "2000|00a4" #define GKDCM_SupportedImageDisplayFormatsSequence "2000|00a8" #define GKDCM_ReferencedFilmBoxSequence "2000|0500" #define GKDCM_RETIRED_ReferencedStoredPrintSequence "2000|0510" #define GKDCM_ImageDisplayFormat "2010|0010" #define GKDCM_AnnotationDisplayFormatID "2010|0030" #define GKDCM_FilmOrientation "2010|0040" #define GKDCM_FilmSizeID "2010|0050" #define GKDCM_PrinterResolutionID "2010|0052" #define GKDCM_DefaultPrinterResolutionID "2010|0054" #define GKDCM_MagnificationType "2010|0060" #define GKDCM_SmoothingType "2010|0080" #define GKDCM_DefaultMagnificationType "2010|00a6" #define GKDCM_OtherMagnificationTypesAvailable "2010|00a7" #define GKDCM_DefaultSmoothingType "2010|00a8" #define GKDCM_OtherSmoothingTypesAvailable "2010|00a9" #define GKDCM_BorderDensity "2010|0100" #define GKDCM_EmptyImageDensity "2010|0110" #define GKDCM_MinDensity "2010|0120" #define GKDCM_MaxDensity "2010|0130" #define GKDCM_Trim "2010|0140" #define GKDCM_ConfigurationInformation "2010|0150" #define GKDCM_ConfigurationInformationDescription "2010|0152" #define GKDCM_MaximumCollatedFilms "2010|0154" #define GKDCM_Illumination "2010|015e" #define GKDCM_ReflectedAmbientLight "2010|0160" #define GKDCM_PrinterPixelSpacing "2010|0376" #define GKDCM_ReferencedFilmSessionSequence "2010|0500" #define GKDCM_ReferencedImageBoxSequence "2010|0510" #define GKDCM_ReferencedBasicAnnotationBoxSequence "2010|0520" #define GKDCM_ImageBoxPosition "2020|0010" #define GKDCM_Polarity "2020|0020" #define GKDCM_RequestedImageSize "2020|0030" #define GKDCM_RequestedDecimateCropBehavior "2020|0040" #define GKDCM_RequestedResolutionID "2020|0050" #define GKDCM_RequestedImageSizeFlag "2020|00a0" #define GKDCM_DecimateCropResult "2020|00a2" #define GKDCM_BasicGrayscaleImageSequence "2020|0110" #define GKDCM_BasicColorImageSequence "2020|0111" #define GKDCM_RETIRED_ReferencedImageOverlayBoxSequence "2020|0130" #define GKDCM_RETIRED_ReferencedVOILUTBoxSequence "2020|0140" #define GKDCM_AnnotationPosition "2030|0010" #define GKDCM_TextString "2030|0020" #define GKDCM_RETIRED_ReferencedOverlayPlaneSequence "2040|0010" #define GKDCM_RETIRED_ReferencedOverlayPlaneGroups "2040|0011" #define GKDCM_RETIRED_OverlayPixelDataSequence "2040|0020" #define GKDCM_RETIRED_OverlayMagnificationType "2040|0060" #define GKDCM_RETIRED_OverlaySmoothingType "2040|0070" #define GKDCM_RETIRED_OverlayOrImageMagnification "2040|0072" #define GKDCM_RETIRED_MagnifyToNumberOfColumns "2040|0074" #define GKDCM_RETIRED_OverlayForegroundDensity "2040|0080" #define GKDCM_RETIRED_OverlayBackgroundDensity "2040|0082" #define GKDCM_RETIRED_OverlayMode "2040|0090" #define GKDCM_RETIRED_ThresholdDensity "2040|0100" #define GKDCM_RETIRED_ReferencedImageBoxSequenceRetired "2040|0500" #define GKDCM_PresentationLUTSequence "2050|0010" #define GKDCM_PresentationLUTShape "2050|0020" #define GKDCM_ReferencedPresentationLUTSequence "2050|0500" #define GKDCM_RETIRED_PrintJobID "2100|0010" #define GKDCM_ExecutionStatus "2100|0020" #define GKDCM_ExecutionStatusInfo "2100|0030" #define GKDCM_CreationDate "2100|0040" #define GKDCM_CreationTime "2100|0050" #define GKDCM_Originator "2100|0070" #define GKDCM_RETIRED_DestinationAE "2100|0140" #define GKDCM_OwnerID "2100|0160" #define GKDCM_NumberOfFilms "2100|0170" #define GKDCM_RETIRED_ReferencedPrintJobSequencePullStoredPrint "2100|0500" #define GKDCM_PrinterStatus "2110|0010" #define GKDCM_PrinterStatusInfo "2110|0020" #define GKDCM_PrinterName "2110|0030" #define GKDCM_RETIRED_PrintQueueID "2110|0099" #define GKDCM_RETIRED_QueueStatus "2120|0010" #define GKDCM_RETIRED_PrintJobDescriptionSequence "2120|0050" #define GKDCM_RETIRED_ReferencedPrintJobSequence "2120|0070" #define GKDCM_RETIRED_PrintManagementCapabilitiesSequence "2130|0010" #define GKDCM_RETIRED_PrinterCharacteristicsSequence "2130|0015" #define GKDCM_RETIRED_FilmBoxContentSequence "2130|0030" #define GKDCM_RETIRED_ImageBoxContentSequence "2130|0040" #define GKDCM_RETIRED_AnnotationContentSequence "2130|0050" #define GKDCM_RETIRED_ImageOverlayBoxContentSequence "2130|0060" #define GKDCM_RETIRED_PresentationLUTContentSequence "2130|0080" #define GKDCM_RETIRED_ProposedStudySequence "2130|00a0" #define GKDCM_RETIRED_OriginalImageSequence "2130|00c0" #define GKDCM_LabelUsingInformationExtractedFromInstances "2200|0001" #define GKDCM_LabelText "2200|0002" #define GKDCM_LabelStyleSelection "2200|0003" #define GKDCM_MediaDisposition "2200|0004" #define GKDCM_BarcodeValue "2200|0005" #define GKDCM_BarcodeSymbology "2200|0006" #define GKDCM_AllowMediaSplitting "2200|0007" #define GKDCM_IncludeNonDICOMObjects "2200|0008" #define GKDCM_IncludeDisplayApplication "2200|0009" #define GKDCM_PreserveCompositeInstancesAfterMediaCreation "2200|000a" #define GKDCM_TotalNumberOfPiecesOfMediaCreated "2200|000b" #define GKDCM_RequestedMediaApplicationProfile "2200|000c" #define GKDCM_ReferencedStorageMediaSequence "2200|000d" #define GKDCM_FailureAttributes "2200|000e" #define GKDCM_AllowLossyCompression "2200|000f" #define GKDCM_RequestPriority "2200|0020" #define GKDCM_RTImageLabel "3002|0002" #define GKDCM_RTImageName "3002|0003" #define GKDCM_RTImageDescription "3002|0004" #define GKDCM_ReportedValuesOrigin "3002|000a" #define GKDCM_RTImagePlane "3002|000c" #define GKDCM_XRayImageReceptorTranslation "3002|000d" #define GKDCM_XRayImageReceptorAngle "3002|000e" #define GKDCM_RTImageOrientation "3002|0010" #define GKDCM_ImagePlanePixelSpacing "3002|0011" #define GKDCM_RTImagePosition "3002|0012" #define GKDCM_RadiationMachineName "3002|0020" #define GKDCM_RadiationMachineSAD "3002|0022" #define GKDCM_RadiationMachineSSD "3002|0024" #define GKDCM_RTImageSID "3002|0026" #define GKDCM_SourceToReferenceObjectDistance "3002|0028" #define GKDCM_FractionNumber "3002|0029" #define GKDCM_ExposureSequence "3002|0030" #define GKDCM_MetersetExposure "3002|0032" #define GKDCM_DiaphragmPosition "3002|0034" #define GKDCM_FluenceMapSequence "3002|0040" #define GKDCM_FluenceDataSource "3002|0041" #define GKDCM_FluenceDataScale "3002|0042" #define GKDCM_PrimaryFluenceModeSequence "3002|0050" #define GKDCM_FluenceMode "3002|0051" #define GKDCM_FluenceModeID "3002|0052" #define GKDCM_DVHType "3004|0001" #define GKDCM_DoseUnits "3004|0002" #define GKDCM_DoseType "3004|0004" #define GKDCM_DoseComment "3004|0006" #define GKDCM_NormalizationPoint "3004|0008" #define GKDCM_DoseSummationType "3004|000a" #define GKDCM_GridFrameOffsetVector "3004|000c" #define GKDCM_DoseGridScaling "3004|000e" #define GKDCM_RTDoseROISequence "3004|0010" #define GKDCM_DoseValue "3004|0012" #define GKDCM_TissueHeterogeneityCorrection "3004|0014" #define GKDCM_DVHNormalizationPoint "3004|0040" #define GKDCM_DVHNormalizationDoseValue "3004|0042" #define GKDCM_DVHSequence "3004|0050" #define GKDCM_DVHDoseScaling "3004|0052" #define GKDCM_DVHVolumeUnits "3004|0054" #define GKDCM_DVHNumberOfBins "3004|0056" #define GKDCM_DVHData "3004|0058" #define GKDCM_DVHReferencedROISequence "3004|0060" #define GKDCM_DVHROIContributionType "3004|0062" #define GKDCM_DVHMinimumDose "3004|0070" #define GKDCM_DVHMaximumDose "3004|0072" #define GKDCM_DVHMeanDose "3004|0074" #define GKDCM_StructureSetLabel "3006|0002" #define GKDCM_StructureSetName "3006|0004" #define GKDCM_StructureSetDescription "3006|0006" #define GKDCM_StructureSetDate "3006|0008" #define GKDCM_StructureSetTime "3006|0009" #define GKDCM_ReferencedFrameOfReferenceSequence "3006|0010" #define GKDCM_RTReferencedStudySequence "3006|0012" #define GKDCM_RTReferencedSeriesSequence "3006|0014" #define GKDCM_ContourImageSequence "3006|0016" #define GKDCM_StructureSetROISequence "3006|0020" #define GKDCM_ROINumber "3006|0022" #define GKDCM_ReferencedFrameOfReferenceUID "3006|0024" #define GKDCM_ROIName "3006|0026" #define GKDCM_ROIDescription "3006|0028" #define GKDCM_ROIDisplayColor "3006|002a" #define GKDCM_ROIVolume "3006|002c" #define GKDCM_RTRelatedROISequence "3006|0030" #define GKDCM_RTROIRelationship "3006|0033" #define GKDCM_ROIGenerationAlgorithm "3006|0036" #define GKDCM_ROIGenerationDescription "3006|0038" #define GKDCM_ROIContourSequence "3006|0039" #define GKDCM_ContourSequence "3006|0040" #define GKDCM_ContourGeometricType "3006|0042" #define GKDCM_ContourSlabThickness "3006|0044" #define GKDCM_ContourOffsetVector "3006|0045" #define GKDCM_NumberOfContourPoints "3006|0046" #define GKDCM_ContourNumber "3006|0048" #define GKDCM_AttachedContours "3006|0049" #define GKDCM_ContourData "3006|0050" #define GKDCM_RTROIObservationsSequence "3006|0080" #define GKDCM_ObservationNumber "3006|0082" #define GKDCM_ReferencedROINumber "3006|0084" #define GKDCM_ROIObservationLabel "3006|0085" #define GKDCM_RTROIIdentificationCodeSequence "3006|0086" #define GKDCM_ROIObservationDescription "3006|0088" #define GKDCM_RelatedRTROIObservationsSequence "3006|00a0" #define GKDCM_RTROIInterpretedType "3006|00a4" #define GKDCM_ROIInterpreter "3006|00a6" #define GKDCM_ROIPhysicalPropertiesSequence "3006|00b0" #define GKDCM_ROIPhysicalProperty "3006|00b2" #define GKDCM_ROIPhysicalPropertyValue "3006|00b4" #define GKDCM_ROIElementalCompositionSequence "3006|00b6" #define GKDCM_ROIElementalCompositionAtomicNumber "3006|00b7" #define GKDCM_ROIElementalCompositionAtomicMassFraction "3006|00b8" #define GKDCM_FrameOfReferenceRelationshipSequence "3006|00c0" #define GKDCM_RelatedFrameOfReferenceUID "3006|00c2" #define GKDCM_FrameOfReferenceTransformationType "3006|00c4" #define GKDCM_FrameOfReferenceTransformationMatrix "3006|00c6" #define GKDCM_FrameOfReferenceTransformationComment "3006|00c8" #define GKDCM_MeasuredDoseReferenceSequence "3008|0010" #define GKDCM_MeasuredDoseDescription "3008|0012" #define GKDCM_MeasuredDoseType "3008|0014" #define GKDCM_MeasuredDoseValue "3008|0016" #define GKDCM_TreatmentSessionBeamSequence "3008|0020" #define GKDCM_TreatmentSessionIonBeamSequence "3008|0021" #define GKDCM_CurrentFractionNumber "3008|0022" #define GKDCM_TreatmentControlPointDate "3008|0024" #define GKDCM_TreatmentControlPointTime "3008|0025" #define GKDCM_TreatmentTerminationStatus "3008|002a" #define GKDCM_TreatmentTerminationCode "3008|002b" #define GKDCM_TreatmentVerificationStatus "3008|002c" #define GKDCM_ReferencedTreatmentRecordSequence "3008|0030" #define GKDCM_SpecifiedPrimaryMeterset "3008|0032" #define GKDCM_SpecifiedSecondaryMeterset "3008|0033" #define GKDCM_DeliveredPrimaryMeterset "3008|0036" #define GKDCM_DeliveredSecondaryMeterset "3008|0037" #define GKDCM_SpecifiedTreatmentTime "3008|003a" #define GKDCM_DeliveredTreatmentTime "3008|003b" #define GKDCM_ControlPointDeliverySequence "3008|0040" #define GKDCM_IonControlPointDeliverySequence "3008|0041" #define GKDCM_SpecifiedMeterset "3008|0042" #define GKDCM_DeliveredMeterset "3008|0044" #define GKDCM_MetersetRateSet "3008|0045" #define GKDCM_MetersetRateDelivered "3008|0046" #define GKDCM_ScanSpotMetersetsDelivered "3008|0047" #define GKDCM_DoseRateDelivered "3008|0048" #define GKDCM_TreatmentSummaryCalculatedDoseReferenceSequence "3008|0050" #define GKDCM_CumulativeDoseToDoseReference "3008|0052" #define GKDCM_FirstTreatmentDate "3008|0054" #define GKDCM_MostRecentTreatmentDate "3008|0056" #define GKDCM_NumberOfFractionsDelivered "3008|005a" #define GKDCM_OverrideSequence "3008|0060" #define GKDCM_ParameterSequencePointer "3008|0061" #define GKDCM_OverrideParameterPointer "3008|0062" #define GKDCM_ParameterItemIndex "3008|0063" #define GKDCM_MeasuredDoseReferenceNumber "3008|0064" #define GKDCM_ParameterPointer "3008|0065" #define GKDCM_OverrideReason "3008|0066" #define GKDCM_CorrectedParameterSequence "3008|0068" #define GKDCM_CorrectionValue "3008|006a" #define GKDCM_CalculatedDoseReferenceSequence "3008|0070" #define GKDCM_CalculatedDoseReferenceNumber "3008|0072" #define GKDCM_CalculatedDoseReferenceDescription "3008|0074" #define GKDCM_CalculatedDoseReferenceDoseValue "3008|0076" #define GKDCM_StartMeterset "3008|0078" #define GKDCM_EndMeterset "3008|007a" #define GKDCM_ReferencedMeasuredDoseReferenceSequence "3008|0080" #define GKDCM_ReferencedMeasuredDoseReferenceNumber "3008|0082" #define GKDCM_ReferencedCalculatedDoseReferenceSequence "3008|0090" #define GKDCM_ReferencedCalculatedDoseReferenceNumber "3008|0092" #define GKDCM_BeamLimitingDeviceLeafPairsSequence "3008|00a0" #define GKDCM_RecordedWedgeSequence "3008|00b0" #define GKDCM_RecordedCompensatorSequence "3008|00c0" #define GKDCM_RecordedBlockSequence "3008|00d0" #define GKDCM_TreatmentSummaryMeasuredDoseReferenceSequence "3008|00e0" #define GKDCM_RecordedSnoutSequence "3008|00f0" #define GKDCM_RecordedRangeShifterSequence "3008|00f2" #define GKDCM_RecordedLateralSpreadingDeviceSequence "3008|00f4" #define GKDCM_RecordedRangeModulatorSequence "3008|00f6" #define GKDCM_RecordedSourceSequence "3008|0100" #define GKDCM_SourceSerialNumber "3008|0105" #define GKDCM_TreatmentSessionApplicationSetupSequence "3008|0110" #define GKDCM_ApplicationSetupCheck "3008|0116" #define GKDCM_RecordedBrachyAccessoryDeviceSequence "3008|0120" #define GKDCM_ReferencedBrachyAccessoryDeviceNumber "3008|0122" #define GKDCM_RecordedChannelSequence "3008|0130" #define GKDCM_SpecifiedChannelTotalTime "3008|0132" #define GKDCM_DeliveredChannelTotalTime "3008|0134" #define GKDCM_SpecifiedNumberOfPulses "3008|0136" #define GKDCM_DeliveredNumberOfPulses "3008|0138" #define GKDCM_SpecifiedPulseRepetitionInterval "3008|013a" #define GKDCM_DeliveredPulseRepetitionInterval "3008|013c" #define GKDCM_RecordedSourceApplicatorSequence "3008|0140" #define GKDCM_ReferencedSourceApplicatorNumber "3008|0142" #define GKDCM_RecordedChannelShieldSequence "3008|0150" #define GKDCM_ReferencedChannelShieldNumber "3008|0152" #define GKDCM_BrachyControlPointDeliveredSequence "3008|0160" #define GKDCM_SafePositionExitDate "3008|0162" #define GKDCM_SafePositionExitTime "3008|0164" #define GKDCM_SafePositionReturnDate "3008|0166" #define GKDCM_SafePositionReturnTime "3008|0168" #define GKDCM_CurrentTreatmentStatus "3008|0200" #define GKDCM_TreatmentStatusComment "3008|0202" #define GKDCM_FractionGroupSummarySequence "3008|0220" #define GKDCM_ReferencedFractionNumber "3008|0223" #define GKDCM_FractionGroupType "3008|0224" #define GKDCM_BeamStopperPosition "3008|0230" #define GKDCM_FractionStatusSummarySequence "3008|0240" #define GKDCM_TreatmentDate "3008|0250" #define GKDCM_TreatmentTime "3008|0251" #define GKDCM_RTPlanLabel "300a|0002" #define GKDCM_RTPlanName "300a|0003" #define GKDCM_RTPlanDescription "300a|0004" #define GKDCM_RTPlanDate "300a|0006" #define GKDCM_RTPlanTime "300a|0007" #define GKDCM_TreatmentProtocols "300a|0009" #define GKDCM_PlanIntent "300a|000a" #define GKDCM_TreatmentSites "300a|000b" #define GKDCM_RTPlanGeometry "300a|000c" #define GKDCM_PrescriptionDescription "300a|000e" #define GKDCM_DoseReferenceSequence "300a|0010" #define GKDCM_DoseReferenceNumber "300a|0012" #define GKDCM_DoseReferenceUID "300a|0013" #define GKDCM_DoseReferenceStructureType "300a|0014" #define GKDCM_NominalBeamEnergyUnit "300a|0015" #define GKDCM_DoseReferenceDescription "300a|0016" #define GKDCM_DoseReferencePointCoordinates "300a|0018" #define GKDCM_NominalPriorDose "300a|001a" #define GKDCM_DoseReferenceType "300a|0020" #define GKDCM_ConstraintWeight "300a|0021" #define GKDCM_DeliveryWarningDose "300a|0022" #define GKDCM_DeliveryMaximumDose "300a|0023" #define GKDCM_TargetMinimumDose "300a|0025" #define GKDCM_TargetPrescriptionDose "300a|0026" #define GKDCM_TargetMaximumDose "300a|0027" #define GKDCM_TargetUnderdoseVolumeFraction "300a|0028" #define GKDCM_OrganAtRiskFullVolumeDose "300a|002a" #define GKDCM_OrganAtRiskLimitDose "300a|002b" #define GKDCM_OrganAtRiskMaximumDose "300a|002c" #define GKDCM_OrganAtRiskOverdoseVolumeFraction "300a|002d" #define GKDCM_ToleranceTableSequence "300a|0040" #define GKDCM_ToleranceTableNumber "300a|0042" #define GKDCM_ToleranceTableLabel "300a|0043" #define GKDCM_GantryAngleTolerance "300a|0044" #define GKDCM_BeamLimitingDeviceAngleTolerance "300a|0046" #define GKDCM_BeamLimitingDeviceToleranceSequence "300a|0048" #define GKDCM_BeamLimitingDevicePositionTolerance "300a|004a" #define GKDCM_SnoutPositionTolerance "300a|004b" #define GKDCM_PatientSupportAngleTolerance "300a|004c" #define GKDCM_TableTopEccentricAngleTolerance "300a|004e" #define GKDCM_TableTopPitchAngleTolerance "300a|004f" #define GKDCM_TableTopRollAngleTolerance "300a|0050" #define GKDCM_TableTopVerticalPositionTolerance "300a|0051" #define GKDCM_TableTopLongitudinalPositionTolerance "300a|0052" #define GKDCM_TableTopLateralPositionTolerance "300a|0053" #define GKDCM_RTPlanRelationship "300a|0055" #define GKDCM_FractionGroupSequence "300a|0070" #define GKDCM_FractionGroupNumber "300a|0071" #define GKDCM_FractionGroupDescription "300a|0072" #define GKDCM_NumberOfFractionsPlanned "300a|0078" #define GKDCM_NumberOfFractionPatternDigitsPerDay "300a|0079" #define GKDCM_RepeatFractionCycleLength "300a|007a" #define GKDCM_FractionPattern "300a|007b" #define GKDCM_NumberOfBeams "300a|0080" #define GKDCM_BeamDoseSpecificationPoint "300a|0082" #define GKDCM_BeamDose "300a|0084" #define GKDCM_BeamMeterset "300a|0086" #define GKDCM_BeamDosePointDepth "300a|0088" #define GKDCM_BeamDosePointEquivalentDepth "300a|0089" #define GKDCM_BeamDosePointSSD "300a|008a" #define GKDCM_NumberOfBrachyApplicationSetups "300a|00a0" #define GKDCM_BrachyApplicationSetupDoseSpecificationPoint "300a|00a2" #define GKDCM_BrachyApplicationSetupDose "300a|00a4" #define GKDCM_BeamSequence "300a|00b0" #define GKDCM_TreatmentMachineName "300a|00b2" #define GKDCM_PrimaryDosimeterUnit "300a|00b3" #define GKDCM_SourceAxisDistance "300a|00b4" #define GKDCM_BeamLimitingDeviceSequence "300a|00b6" #define GKDCM_RTBeamLimitingDeviceType "300a|00b8" #define GKDCM_SourceToBeamLimitingDeviceDistance "300a|00ba" #define GKDCM_IsocenterToBeamLimitingDeviceDistance "300a|00bb" #define GKDCM_NumberOfLeafJawPairs "300a|00bc" #define GKDCM_LeafPositionBoundaries "300a|00be" #define GKDCM_BeamNumber "300a|00c0" #define GKDCM_BeamName "300a|00c2" #define GKDCM_BeamDescription "300a|00c3" #define GKDCM_BeamType "300a|00c4" #define GKDCM_RadiationType "300a|00c6" #define GKDCM_HighDoseTechniqueType "300a|00c7" #define GKDCM_ReferenceImageNumber "300a|00c8" #define GKDCM_PlannedVerificationImageSequence "300a|00ca" #define GKDCM_ImagingDeviceSpecificAcquisitionParameters "300a|00cc" #define GKDCM_TreatmentDeliveryType "300a|00ce" #define GKDCM_NumberOfWedges "300a|00d0" #define GKDCM_WedgeSequence "300a|00d1" #define GKDCM_WedgeNumber "300a|00d2" #define GKDCM_WedgeType "300a|00d3" #define GKDCM_WedgeID "300a|00d4" #define GKDCM_WedgeAngle "300a|00d5" #define GKDCM_WedgeFactor "300a|00d6" #define GKDCM_TotalWedgeTrayWaterEquivalentThickness "300a|00d7" #define GKDCM_WedgeOrientation "300a|00d8" #define GKDCM_IsocenterToWedgeTrayDistance "300a|00d9" #define GKDCM_SourceToWedgeTrayDistance "300a|00da" #define GKDCM_WedgeThinEdgePosition "300a|00db" #define GKDCM_BolusID "300a|00dc" #define GKDCM_BolusDescription "300a|00dd" #define GKDCM_NumberOfCompensators "300a|00e0" #define GKDCM_MaterialID "300a|00e1" #define GKDCM_TotalCompensatorTrayFactor "300a|00e2" #define GKDCM_CompensatorSequence "300a|00e3" #define GKDCM_CompensatorNumber "300a|00e4" #define GKDCM_CompensatorID "300a|00e5" #define GKDCM_SourceToCompensatorTrayDistance "300a|00e6" #define GKDCM_CompensatorRows "300a|00e7" #define GKDCM_CompensatorColumns "300a|00e8" #define GKDCM_CompensatorPixelSpacing "300a|00e9" #define GKDCM_CompensatorPosition "300a|00ea" #define GKDCM_CompensatorTransmissionData "300a|00eb" #define GKDCM_CompensatorThicknessData "300a|00ec" #define GKDCM_NumberOfBoli "300a|00ed" #define GKDCM_CompensatorType "300a|00ee" #define GKDCM_NumberOfBlocks "300a|00f0" #define GKDCM_TotalBlockTrayFactor "300a|00f2" #define GKDCM_TotalBlockTrayWaterEquivalentThickness "300a|00f3" #define GKDCM_BlockSequence "300a|00f4" #define GKDCM_BlockTrayID "300a|00f5" #define GKDCM_SourceToBlockTrayDistance "300a|00f6" #define GKDCM_IsocenterToBlockTrayDistance "300a|00f7" #define GKDCM_BlockType "300a|00f8" #define GKDCM_AccessoryCode "300a|00f9" #define GKDCM_BlockDivergence "300a|00fa" #define GKDCM_BlockMountingPosition "300a|00fb" #define GKDCM_BlockNumber "300a|00fc" #define GKDCM_BlockName "300a|00fe" #define GKDCM_BlockThickness "300a|0100" #define GKDCM_BlockTransmission "300a|0102" #define GKDCM_BlockNumberOfPoints "300a|0104" #define GKDCM_BlockData "300a|0106" #define GKDCM_ApplicatorSequence "300a|0107" #define GKDCM_ApplicatorID "300a|0108" #define GKDCM_ApplicatorType "300a|0109" #define GKDCM_ApplicatorDescription "300a|010a" #define GKDCM_CumulativeDoseReferenceCoefficient "300a|010c" #define GKDCM_FinalCumulativeMetersetWeight "300a|010e" #define GKDCM_NumberOfControlPoints "300a|0110" #define GKDCM_ControlPointSequence "300a|0111" #define GKDCM_ControlPointIndex "300a|0112" #define GKDCM_NominalBeamEnergy "300a|0114" #define GKDCM_DoseRateSet "300a|0115" #define GKDCM_WedgePositionSequence "300a|0116" #define GKDCM_WedgePosition "300a|0118" #define GKDCM_BeamLimitingDevicePositionSequence "300a|011a" #define GKDCM_LeafJawPositions "300a|011c" #define GKDCM_GantryAngle "300a|011e" #define GKDCM_GantryRotationDirection "300a|011f" #define GKDCM_BeamLimitingDeviceAngle "300a|0120" #define GKDCM_BeamLimitingDeviceRotationDirection "300a|0121" #define GKDCM_PatientSupportAngle "300a|0122" #define GKDCM_PatientSupportRotationDirection "300a|0123" #define GKDCM_TableTopEccentricAxisDistance "300a|0124" #define GKDCM_TableTopEccentricAngle "300a|0125" #define GKDCM_TableTopEccentricRotationDirection "300a|0126" #define GKDCM_TableTopVerticalPosition "300a|0128" #define GKDCM_TableTopLongitudinalPosition "300a|0129" #define GKDCM_TableTopLateralPosition "300a|012a" #define GKDCM_IsocenterPosition "300a|012c" #define GKDCM_SurfaceEntryPoint "300a|012e" #define GKDCM_SourceToSurfaceDistance "300a|0130" #define GKDCM_CumulativeMetersetWeight "300a|0134" #define GKDCM_TableTopPitchAngle "300a|0140" #define GKDCM_TableTopPitchRotationDirection "300a|0142" #define GKDCM_TableTopRollAngle "300a|0144" #define GKDCM_TableTopRollRotationDirection "300a|0146" #define GKDCM_HeadFixationAngle "300a|0148" #define GKDCM_GantryPitchAngle "300a|014a" #define GKDCM_GantryPitchRotationDirection "300a|014c" #define GKDCM_GantryPitchAngleTolerance "300a|014e" #define GKDCM_PatientSetupSequence "300a|0180" #define GKDCM_PatientSetupNumber "300a|0182" #define GKDCM_PatientSetupLabel "300a|0183" #define GKDCM_PatientAdditionalPosition "300a|0184" #define GKDCM_FixationDeviceSequence "300a|0190" #define GKDCM_FixationDeviceType "300a|0192" #define GKDCM_FixationDeviceLabel "300a|0194" #define GKDCM_FixationDeviceDescription "300a|0196" #define GKDCM_FixationDevicePosition "300a|0198" #define GKDCM_FixationDevicePitchAngle "300a|0199" #define GKDCM_FixationDeviceRollAngle "300a|019a" #define GKDCM_ShieldingDeviceSequence "300a|01a0" #define GKDCM_ShieldingDeviceType "300a|01a2" #define GKDCM_ShieldingDeviceLabel "300a|01a4" #define GKDCM_ShieldingDeviceDescription "300a|01a6" #define GKDCM_ShieldingDevicePosition "300a|01a8" #define GKDCM_SetupTechnique "300a|01b0" #define GKDCM_SetupTechniqueDescription "300a|01b2" #define GKDCM_SetupDeviceSequence "300a|01b4" #define GKDCM_SetupDeviceType "300a|01b6" #define GKDCM_SetupDeviceLabel "300a|01b8" #define GKDCM_SetupDeviceDescription "300a|01ba" #define GKDCM_SetupDeviceParameter "300a|01bc" #define GKDCM_SetupReferenceDescription "300a|01d0" #define GKDCM_TableTopVerticalSetupDisplacement "300a|01d2" #define GKDCM_TableTopLongitudinalSetupDisplacement "300a|01d4" #define GKDCM_TableTopLateralSetupDisplacement "300a|01d6" #define GKDCM_BrachyTreatmentTechnique "300a|0200" #define GKDCM_BrachyTreatmentType "300a|0202" #define GKDCM_TreatmentMachineSequence "300a|0206" #define GKDCM_SourceSequence "300a|0210" #define GKDCM_SourceNumber "300a|0212" #define GKDCM_SourceType "300a|0214" #define GKDCM_SourceManufacturer "300a|0216" #define GKDCM_ActiveSourceDiameter "300a|0218" #define GKDCM_ActiveSourceLength "300a|021a" #define GKDCM_SourceEncapsulationNominalThickness "300a|0222" #define GKDCM_SourceEncapsulationNominalTransmission "300a|0224" #define GKDCM_SourceIsotopeName "300a|0226" #define GKDCM_SourceIsotopeHalfLife "300a|0228" #define GKDCM_SourceStrengthUnits "300a|0229" #define GKDCM_ReferenceAirKermaRate "300a|022a" #define GKDCM_SourceStrength "300a|022b" #define GKDCM_SourceStrengthReferenceDate "300a|022c" #define GKDCM_SourceStrengthReferenceTime "300a|022e" #define GKDCM_ApplicationSetupSequence "300a|0230" #define GKDCM_ApplicationSetupType "300a|0232" #define GKDCM_ApplicationSetupNumber "300a|0234" #define GKDCM_ApplicationSetupName "300a|0236" #define GKDCM_ApplicationSetupManufacturer "300a|0238" #define GKDCM_TemplateNumber "300a|0240" #define GKDCM_TemplateType "300a|0242" #define GKDCM_TemplateName "300a|0244" #define GKDCM_TotalReferenceAirKerma "300a|0250" #define GKDCM_BrachyAccessoryDeviceSequence "300a|0260" #define GKDCM_BrachyAccessoryDeviceNumber "300a|0262" #define GKDCM_BrachyAccessoryDeviceID "300a|0263" #define GKDCM_BrachyAccessoryDeviceType "300a|0264" #define GKDCM_BrachyAccessoryDeviceName "300a|0266" #define GKDCM_BrachyAccessoryDeviceNominalThickness "300a|026a" #define GKDCM_BrachyAccessoryDeviceNominalTransmission "300a|026c" #define GKDCM_ChannelSequence "300a|0280" #define GKDCM_ChannelNumber "300a|0282" #define GKDCM_ChannelLength "300a|0284" #define GKDCM_ChannelTotalTime "300a|0286" #define GKDCM_SourceMovementType "300a|0288" #define GKDCM_NumberOfPulses "300a|028a" #define GKDCM_PulseRepetitionInterval "300a|028c" #define GKDCM_SourceApplicatorNumber "300a|0290" #define GKDCM_SourceApplicatorID "300a|0291" #define GKDCM_SourceApplicatorType "300a|0292" #define GKDCM_SourceApplicatorName "300a|0294" #define GKDCM_SourceApplicatorLength "300a|0296" #define GKDCM_SourceApplicatorManufacturer "300a|0298" #define GKDCM_SourceApplicatorWallNominalThickness "300a|029c" #define GKDCM_SourceApplicatorWallNominalTransmission "300a|029e" #define GKDCM_SourceApplicatorStepSize "300a|02a0" #define GKDCM_TransferTubeNumber "300a|02a2" #define GKDCM_TransferTubeLength "300a|02a4" #define GKDCM_ChannelShieldSequence "300a|02b0" #define GKDCM_ChannelShieldNumber "300a|02b2" #define GKDCM_ChannelShieldID "300a|02b3" #define GKDCM_ChannelShieldName "300a|02b4" #define GKDCM_ChannelShieldNominalThickness "300a|02b8" #define GKDCM_ChannelShieldNominalTransmission "300a|02ba" #define GKDCM_FinalCumulativeTimeWeight "300a|02c8" #define GKDCM_BrachyControlPointSequence "300a|02d0" #define GKDCM_ControlPointRelativePosition "300a|02d2" #define GKDCM_ControlPoint3DPosition "300a|02d4" #define GKDCM_CumulativeTimeWeight "300a|02d6" #define GKDCM_CompensatorDivergence "300a|02e0" #define GKDCM_CompensatorMountingPosition "300a|02e1" #define GKDCM_SourceToCompensatorDistance "300a|02e2" #define GKDCM_TotalCompensatorTrayWaterEquivalentThickness "300a|02e3" #define GKDCM_IsocenterToCompensatorTrayDistance "300a|02e4" #define GKDCM_CompensatorColumnOffset "300a|02e5" #define GKDCM_IsocenterToCompensatorDistances "300a|02e6" #define GKDCM_CompensatorRelativeStoppingPowerRatio "300a|02e7" #define GKDCM_CompensatorMillingToolDiameter "300a|02e8" #define GKDCM_IonRangeCompensatorSequence "300a|02ea" #define GKDCM_CompensatorDescription "300a|02eb" #define GKDCM_RadiationMassNumber "300a|0302" #define GKDCM_RadiationAtomicNumber "300a|0304" #define GKDCM_RadiationChargeState "300a|0306" #define GKDCM_ScanMode "300a|0308" #define GKDCM_VirtualSourceAxisDistances "300a|030a" #define GKDCM_SnoutSequence "300a|030c" #define GKDCM_SnoutPosition "300a|030d" #define GKDCM_SnoutID "300a|030f" #define GKDCM_NumberOfRangeShifters "300a|0312" #define GKDCM_RangeShifterSequence "300a|0314" #define GKDCM_RangeShifterNumber "300a|0316" #define GKDCM_RangeShifterID "300a|0318" #define GKDCM_RangeShifterType "300a|0320" #define GKDCM_RangeShifterDescription "300a|0322" #define GKDCM_NumberOfLateralSpreadingDevices "300a|0330" #define GKDCM_LateralSpreadingDeviceSequence "300a|0332" #define GKDCM_LateralSpreadingDeviceNumber "300a|0334" #define GKDCM_LateralSpreadingDeviceID "300a|0336" #define GKDCM_LateralSpreadingDeviceType "300a|0338" #define GKDCM_LateralSpreadingDeviceDescription "300a|033a" #define GKDCM_LateralSpreadingDeviceWaterEquivalentThickness "300a|033c" #define GKDCM_NumberOfRangeModulators "300a|0340" #define GKDCM_RangeModulatorSequence "300a|0342" #define GKDCM_RangeModulatorNumber "300a|0344" #define GKDCM_RangeModulatorID "300a|0346" #define GKDCM_RangeModulatorType "300a|0348" #define GKDCM_RangeModulatorDescription "300a|034a" #define GKDCM_BeamCurrentModulationID "300a|034c" #define GKDCM_PatientSupportType "300a|0350" #define GKDCM_PatientSupportID "300a|0352" #define GKDCM_PatientSupportAccessoryCode "300a|0354" #define GKDCM_FixationLightAzimuthalAngle "300a|0356" #define GKDCM_FixationLightPolarAngle "300a|0358" #define GKDCM_MetersetRate "300a|035a" #define GKDCM_RangeShifterSettingsSequence "300a|0360" #define GKDCM_RangeShifterSetting "300a|0362" #define GKDCM_IsocenterToRangeShifterDistance "300a|0364" #define GKDCM_RangeShifterWaterEquivalentThickness "300a|0366" #define GKDCM_LateralSpreadingDeviceSettingsSequence "300a|0370" #define GKDCM_LateralSpreadingDeviceSetting "300a|0372" #define GKDCM_IsocenterToLateralSpreadingDeviceDistance "300a|0374" #define GKDCM_RangeModulatorSettingsSequence "300a|0380" #define GKDCM_RangeModulatorGatingStartValue "300a|0382" #define GKDCM_RangeModulatorGatingStopValue "300a|0384" #define GKDCM_RangeModulatorGatingStartWaterEquivalentThickness "300a|0386" #define GKDCM_RangeModulatorGatingStopWaterEquivalentThickness "300a|0388" #define GKDCM_IsocenterToRangeModulatorDistance "300a|038a" #define GKDCM_ScanSpotTuneID "300a|0390" #define GKDCM_NumberOfScanSpotPositions "300a|0392" #define GKDCM_ScanSpotPositionMap "300a|0394" #define GKDCM_ScanSpotMetersetWeights "300a|0396" #define GKDCM_ScanningSpotSize "300a|0398" #define GKDCM_NumberOfPaintings "300a|039a" #define GKDCM_IonToleranceTableSequence "300a|03a0" #define GKDCM_IonBeamSequence "300a|03a2" #define GKDCM_IonBeamLimitingDeviceSequence "300a|03a4" #define GKDCM_IonBlockSequence "300a|03a6" #define GKDCM_IonControlPointSequence "300a|03a8" #define GKDCM_IonWedgeSequence "300a|03aa" #define GKDCM_IonWedgePositionSequence "300a|03ac" #define GKDCM_ReferencedSetupImageSequence "300a|0401" #define GKDCM_SetupImageComment "300a|0402" #define GKDCM_MotionSynchronizationSequence "300a|0410" #define GKDCM_ControlPointOrientation "300a|0412" #define GKDCM_GeneralAccessorySequence "300a|0420" #define GKDCM_GeneralAccessoryID "300a|0421" #define GKDCM_GeneralAccessoryDescription "300a|0422" #define GKDCM_GeneralAccessoryType "300a|0423" #define GKDCM_GeneralAccessoryNumber "300a|0424" #define GKDCM_ApplicatorGeometrySequence "300a|0431" #define GKDCM_ApplicatorApertureShape "300a|0432" #define GKDCM_ApplicatorOpening "300a|0433" #define GKDCM_ApplicatorOpeningX "300a|0434" #define GKDCM_ApplicatorOpeningY "300a|0435" #define GKDCM_SourceToApplicatorMountingPositionDistance "300a|0436" #define GKDCM_ReferencedRTPlanSequence "300c|0002" #define GKDCM_ReferencedBeamSequence "300c|0004" #define GKDCM_ReferencedBeamNumber "300c|0006" #define GKDCM_ReferencedReferenceImageNumber "300c|0007" #define GKDCM_StartCumulativeMetersetWeight "300c|0008" #define GKDCM_EndCumulativeMetersetWeight "300c|0009" #define GKDCM_ReferencedBrachyApplicationSetupSequence "300c|000a" #define GKDCM_ReferencedBrachyApplicationSetupNumber "300c|000c" #define GKDCM_ReferencedSourceNumber "300c|000e" #define GKDCM_ReferencedFractionGroupSequence "300c|0020" #define GKDCM_ReferencedFractionGroupNumber "300c|0022" #define GKDCM_ReferencedVerificationImageSequence "300c|0040" #define GKDCM_ReferencedReferenceImageSequence "300c|0042" #define GKDCM_ReferencedDoseReferenceSequence "300c|0050" #define GKDCM_ReferencedDoseReferenceNumber "300c|0051" #define GKDCM_BrachyReferencedDoseReferenceSequence "300c|0055" #define GKDCM_ReferencedStructureSetSequence "300c|0060" #define GKDCM_ReferencedPatientSetupNumber "300c|006a" #define GKDCM_ReferencedDoseSequence "300c|0080" #define GKDCM_ReferencedToleranceTableNumber "300c|00a0" #define GKDCM_ReferencedBolusSequence "300c|00b0" #define GKDCM_ReferencedWedgeNumber "300c|00c0" #define GKDCM_ReferencedCompensatorNumber "300c|00d0" #define GKDCM_ReferencedBlockNumber "300c|00e0" #define GKDCM_ReferencedControlPointIndex "300c|00f0" #define GKDCM_ReferencedControlPointSequence "300c|00f2" #define GKDCM_ReferencedStartControlPointIndex "300c|00f4" #define GKDCM_ReferencedStopControlPointIndex "300c|00f6" #define GKDCM_ReferencedRangeShifterNumber "300c|0100" #define GKDCM_ReferencedLateralSpreadingDeviceNumber "300c|0102" #define GKDCM_ReferencedRangeModulatorNumber "300c|0104" #define GKDCM_ApprovalStatus "300e|0002" #define GKDCM_ReviewDate "300e|0004" #define GKDCM_ReviewTime "300e|0005" #define GKDCM_ReviewerName "300e|0008" #define GKDCM_ACR_NEMA_TextGroupLength "4000|0000" #define GKDCM_ACR_NEMA_TextArbitrary "4000|0010" #define GKDCM_ACR_NEMA_TextComments "4000|4000" #define GKDCM_RETIRED_ResultsID "4008|0040" #define GKDCM_RETIRED_ResultsIDIssuer "4008|0042" #define GKDCM_RETIRED_ReferencedInterpretationSequence "4008|0050" #define GKDCM_RETIRED_InterpretationRecordedDate "4008|0100" #define GKDCM_RETIRED_InterpretationRecordedTime "4008|0101" #define GKDCM_RETIRED_InterpretationRecorder "4008|0102" #define GKDCM_RETIRED_ReferenceToRecordedSound "4008|0103" #define GKDCM_RETIRED_InterpretationTranscriptionDate "4008|0108" #define GKDCM_RETIRED_InterpretationTranscriptionTime "4008|0109" #define GKDCM_RETIRED_InterpretationTranscriber "4008|010a" #define GKDCM_RETIRED_InterpretationText "4008|010b" #define GKDCM_RETIRED_InterpretationAuthor "4008|010c" #define GKDCM_RETIRED_InterpretationApproverSequence "4008|0111" #define GKDCM_RETIRED_InterpretationApprovalDate "4008|0112" #define GKDCM_RETIRED_InterpretationApprovalTime "4008|0113" #define GKDCM_RETIRED_PhysicianApprovingInterpretation "4008|0114" #define GKDCM_RETIRED_InterpretationDiagnosisDescription "4008|0115" #define GKDCM_RETIRED_InterpretationDiagnosisCodeSequence "4008|0117" #define GKDCM_RETIRED_ResultsDistributionListSequence "4008|0118" #define GKDCM_RETIRED_DistributionName "4008|0119" #define GKDCM_RETIRED_DistributionAddress "4008|011a" #define GKDCM_RETIRED_InterpretationID "4008|0200" #define GKDCM_RETIRED_InterpretationIDIssuer "4008|0202" #define GKDCM_RETIRED_InterpretationTypeID "4008|0210" #define GKDCM_RETIRED_InterpretationStatusID "4008|0212" #define GKDCM_RETIRED_Impressions "4008|0300" #define GKDCM_RETIRED_ResultsComments "4008|4000" #define GKDCM_MACParametersSequence "4ffe|0001" #define GKDCM_SharedFunctionalGroupsSequence "5200|9229" #define GKDCM_PerFrameFunctionalGroupsSequence "5200|9230" #define GKDCM_WaveformSequence "5400|0100" #define GKDCM_ChannelMinimumValue "5400|0110" #define GKDCM_ChannelMaximumValue "5400|0112" #define GKDCM_WaveformBitsAllocated "5400|1004" #define GKDCM_WaveformSampleInterpretation "5400|1006" #define GKDCM_WaveformPaddingValue "5400|100a" #define GKDCM_WaveformData "5400|1010" #define GKDCM_FirstOrderPhaseCorrectionAngle "5600|0010" #define GKDCM_SpectroscopyData "5600|0020" #define GKDCM_PixelData "7fe0|0010" #define GKDCM_ACR_NEMA_2C_CoefficientsSDVN "7fe0|0020" #define GKDCM_ACR_NEMA_2C_CoefficientsSDHN "7fe0|0030" #define GKDCM_ACR_NEMA_2C_CoefficientsSDDN "7fe0|0040" #define GKDCM_DigitalSignaturesSequence "fffa|fffa" #define GKDCM_DataSetTrailingPadding "fffc|fffc" #define GKDCM_Item "fffe|e000" #define GKDCM_ItemDelimitationItem "fffe|e00d" #define GKDCM_SequenceDelimitationItem "fffe|e0dd" /* ** Tags where the group/element can vary (repeating tags". ** Number of entries: 78 */ #define GKDCM_OverlayRows "6000|0010" /* (0x6000-0x60ff,0x0010" */ #define GKDCM_OverlayColumns "6000|0011" /* (0x6000-0x60ff,0x0011" */ #define GKDCM_NumberOfFramesInOverlay "6000|0015" /* (0x6000-0x60ff,0x0015" */ #define GKDCM_OverlayDescription "6000|0022" /* (0x6000-0x60ff,0x0022" */ #define GKDCM_OverlayType "6000|0040" /* (0x6000-0x60ff,0x0040" */ #define GKDCM_OverlaySubtype "6000|0045" /* (0x6000-0x60ff,0x0045" */ #define GKDCM_OverlayOrigin "6000|0050" /* (0x6000-0x60ff,0x0050" */ #define GKDCM_ImageFrameOrigin "6000|0051" /* (0x6000-0x60ff,0x0051" */ #define GKDCM_OverlayBitsAllocated "6000|0100" /* (0x6000-0x60ff,0x0100" */ #define GKDCM_OverlayBitPosition "6000|0102" /* (0x6000-0x60ff,0x0102" */ #define GKDCM_OverlayActivationLayer "6000|1001" /* (0x6000-0x60ff,0x1001" */ #define GKDCM_ROIArea "6000|1301" /* (0x6000-0x60ff,0x1301" */ #define GKDCM_ROIMean "6000|1302" /* (0x6000-0x60ff,0x1302" */ #define GKDCM_ROIStandardDeviation "6000|1303" /* (0x6000-0x60ff,0x1303" */ #define GKDCM_OverlayLabel "6000|1500" /* (0x6000-0x60ff,0x1500" */ #define GKDCM_OverlayData "6000|3000" /* (0x6000-0x60ff,0x3000" */ #define GKDCM_ACR_NEMA_2C_VariablePixelDataGroupLength "7f00|0000" /* (0x7f00-0x7fff,0x0000" */ #define GKDCM_PrivateGroupLength "0009|0000" /* (0x0009-o-0xffff,0x0000" */ #define GKDCM_RETIRED_NumberOfPoints "5000|0010" /* (0x5000-0x50ff,0x0010" */ #define GKDCM_RETIRED_TypeOfData "5000|0020" /* (0x5000-0x50ff,0x0020" */ #define GKDCM_RETIRED_CurveDescription "5000|0022" /* (0x5000-0x50ff,0x0022" */ #define GKDCM_RETIRED_AxisUnits "5000|0030" /* (0x5000-0x50ff,0x0030" */ #define GKDCM_RETIRED_AxisLabels "5000|0040" /* (0x5000-0x50ff,0x0040" */ #define GKDCM_RETIRED_OverlayPlanes "6000|0012" /* (0x6000-0x60ff,0x0012" */ #define GKDCM_RETIRED_OverlayPlaneOrigin "6000|0052" /* (0x6000-0x60ff,0x0052" */ #define GKDCM_ACR_NEMA_2C_OverlayCompressionCode "6000|0060" /* (0x6000-0x60ff,0x0060" */ #define GKDCM_ACR_NEMA_2C_OverlayCompressionOriginator "6000|0061" /* (0x6000-0x60ff,0x0061" */ #define GKDCM_ACR_NEMA_2C_OverlayCompressionLabel "6000|0062" /* (0x6000-0x60ff,0x0062" */ #define GKDCM_ACR_NEMA_2C_OverlayCompressionDescription "6000|0063" /* (0x6000-0x60ff,0x0063" */ #define GKDCM_ACR_NEMA_2C_OverlayCompressionStepPointers "6000|0066" /* (0x6000-0x60ff,0x0066" */ #define GKDCM_ACR_NEMA_2C_OverlayRepeatInterval "6000|0068" /* (0x6000-0x60ff,0x0068" */ #define GKDCM_ACR_NEMA_2C_OverlayBitsGrouped "6000|0069" /* (0x6000-0x60ff,0x0069" */ #define GKDCM_ACR_NEMA_2C_VariablePixelData "7f00|0010" /* (0x7f00-0x7fff,0x0010" */ #define GKDCM_ACR_NEMA_2C_VariableNextDataGroup "7f00|0011" /* (0x7f00-0x7fff,0x0011" */ #define GKDCM_ACR_NEMA_2C_VariableCoefficientsSDVN "7f00|0020" /* (0x7f00-0x7fff,0x0020" */ #define GKDCM_ACR_NEMA_2C_VariableCoefficientsSDHN "7f00|0030" /* (0x7f00-0x7fff,0x0030" */ #define GKDCM_ACR_NEMA_2C_VariableCoefficientsSDDN "7f00|0040" /* (0x7f00-0x7fff,0x0040" */ #define GKDCM_PrivateCreator "0009|0010" /* (0x0009-o-0xffff,0x0010-u-0x00ff" */ #define GKDCM_IllegalGroupLength "0001|0000" /* (0x0001-o-0x0007,0x0000" */ #define GKDCM_IllegalPrivateCreator "0001|0010" /* (0x0001-o-0x0007,0x0010-u-0x00ff" */ #define GKDCM_GenericGroupLength "0000|0000" /* (0x0000-u-0xffff,0x0000" */ #define GKDCM_ACR_NEMA_SourceImageID "0020|3100" /* (0x0020,0x3100-0x31ff" */ #define GKDCM_RETIRED_CurveDimensions "5000|0005" /* (0x5000-0x50ff,0x0005" */ #define GKDCM_RETIRED_DataValueRepresentation "5000|0103" /* (0x5000-0x50ff,0x0103" */ #define GKDCM_RETIRED_MinimumCoordinateValue "5000|0104" /* (0x5000-0x50ff,0x0104" */ #define GKDCM_RETIRED_MaximumCoordinateValue "5000|0105" /* (0x5000-0x50ff,0x0105" */ #define GKDCM_RETIRED_CurveRange "5000|0106" /* (0x5000-0x50ff,0x0106" */ #define GKDCM_RETIRED_CurveDataDescriptor "5000|0110" /* (0x5000-0x50ff,0x0110" */ #define GKDCM_RETIRED_CoordinateStartValue "5000|0112" /* (0x5000-0x50ff,0x0112" */ #define GKDCM_RETIRED_CoordinateStepValue "5000|0114" /* (0x5000-0x50ff,0x0114" */ #define GKDCM_RETIRED_CurveActivationLayer "5000|1001" /* (0x5000-0x50ff,0x1001" */ #define GKDCM_RETIRED_AudioType "5000|2000" /* (0x5000-0x50ff,0x2000" */ #define GKDCM_RETIRED_AudioSampleFormat "5000|2002" /* (0x5000-0x50ff,0x2002" */ #define GKDCM_RETIRED_NumberOfChannels "5000|2004" /* (0x5000-0x50ff,0x2004" */ #define GKDCM_RETIRED_NumberOfSamples "5000|2006" /* (0x5000-0x50ff,0x2006" */ #define GKDCM_RETIRED_SampleRate "5000|2008" /* (0x5000-0x50ff,0x2008" */ #define GKDCM_RETIRED_TotalTime "5000|200a" /* (0x5000-0x50ff,0x200a" */ #define GKDCM_RETIRED_AudioSampleData "5000|200c" /* (0x5000-0x50ff,0x200c" */ #define GKDCM_RETIRED_AudioComments "5000|200e" /* (0x5000-0x50ff,0x200e" */ #define GKDCM_RETIRED_CurveLabel "5000|2500" /* (0x5000-0x50ff,0x2500" */ #define GKDCM_RETIRED_CurveReferencedOverlaySequence "5000|2600" /* (0x5000-0x50ff,0x2600" */ #define GKDCM_RETIRED_CurveReferencedOverlayGroup "5000|2610" /* (0x5000-0x50ff,0x2610" */ #define GKDCM_RETIRED_CurveData "5000|3000" /* (0x5000-0x50ff,0x3000" */ #define GKDCM_ACR_NEMA_OverlayFormat "6000|0110" /* (0x6000-0x60ff,0x0110" */ #define GKDCM_ACR_NEMA_OverlayLocation "6000|0200" /* (0x6000-0x60ff,0x0200" */ #define GKDCM_ACR_NEMA_2C_OverlayCodeLabel "6000|0800" /* (0x6000-0x60ff,0x0800" */ #define GKDCM_ACR_NEMA_2C_OverlayNumberOfTables "6000|0802" /* (0x6000-0x60ff,0x0802" */ #define GKDCM_ACR_NEMA_2C_OverlayCodeTableLocation "6000|0803" /* (0x6000-0x60ff,0x0803" */ #define GKDCM_ACR_NEMA_2C_OverlayBitsForCodeWord "6000|0804" /* (0x6000-0x60ff,0x0804" */ #define GKDCM_RETIRED_OverlayDescriptorGray "6000|1100" /* (0x6000-0x60ff,0x1100" */ #define GKDCM_RETIRED_OverlayDescriptorRed "6000|1101" /* (0x6000-0x60ff,0x1101" */ #define GKDCM_RETIRED_OverlayDescriptorGreen "6000|1102" /* (0x6000-0x60ff,0x1102" */ #define GKDCM_RETIRED_OverlayDescriptorBlue "6000|1103" /* (0x6000-0x60ff,0x1103" */ #define GKDCM_RETIRED_OverlaysGray "6000|1200" /* (0x6000-0x60ff,0x1200" */ #define GKDCM_RETIRED_OverlaysRed "6000|1201" /* (0x6000-0x60ff,0x1201" */ #define GKDCM_RETIRED_OverlaysGreen "6000|1202" /* (0x6000-0x60ff,0x1202" */ #define GKDCM_RETIRED_OverlaysBlue "6000|1203" /* (0x6000-0x60ff,0x1203" */ #define GKDCM_ACR_NEMA_OverlayComments "6000|4000" /* (0x6000-0x60ff,0x4000" */ ginkgocadx-3.8.7/cadxcore/api/dicom/dcmuiddictionary.h000066400000000000000000001043541314736454600230330ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once /* ** String Constants */ /* ** Defined Transfer Syntax UIDs */ /// Implicit VR Little Endian: Default Transfer Syntax for DICOM #define GKUID_LittleEndianImplicitTransferSyntax "1.2.840.10008.1.2" /// Explicit VR Little Endian #define GKUID_LittleEndianExplicitTransferSyntax "1.2.840.10008.1.2.1" /// Explicit VR Big Endian #define GKUID_BigEndianExplicitTransferSyntax "1.2.840.10008.1.2.2" /// Deflated Explicit VR Little Endian #define GKUID_DeflatedExplicitVRLittleEndianTransferSyntax "1.2.840.10008.1.2.1.99" /** JPEG Baseline (Process 1): Default Transfer Syntax * for Lossy JPEG 8 Bit Image Compression */ #define GKUID_JPEGProcess1TransferSyntax "1.2.840.10008.1.2.4.50" /** JPEG Extended (Process 2 & 4): Default Transfer Syntax * for Lossy JPEG 12 Bit Image Compression (Process 4 only) */ #define GKUID_JPEGProcess2_4TransferSyntax "1.2.840.10008.1.2.4.51" /// JPEG Extended (Process 3 & 5) - RETIRED #define GKUID_JPEGProcess3_5TransferSyntax "1.2.840.10008.1.2.4.52" /// JPEG Spectral Selection, Non-Hierarchical (Process 6 & 8) - RETIRED #define GKUID_JPEGProcess6_8TransferSyntax "1.2.840.10008.1.2.4.53" /// JPEG Spectral Selection, Non-Hierarchical (Process 7 & 9) - RETIRED #define GKUID_JPEGProcess7_9TransferSyntax "1.2.840.10008.1.2.4.54" /// JPEG Full Progression, Non-Hierarchical (Process 10 & 12) - RETIRED #define GKUID_JPEGProcess10_12TransferSyntax "1.2.840.10008.1.2.4.55" /// JPEG Full Progression, Non-Hierarchical (Process 11 & 13) - RETIRED #define GKUID_JPEGProcess11_13TransferSyntax "1.2.840.10008.1.2.4.56" /// JPEG Lossless, Non-Hierarchical (Process 14) #define GKUID_JPEGProcess14TransferSyntax "1.2.840.10008.1.2.4.57" /// JPEG Lossless, Non-Hierarchical (Process 15) - RETIRED #define GKUID_JPEGProcess15TransferSyntax "1.2.840.10008.1.2.4.58" /// JPEG Extended, Hierarchical (Process 16 & 18) - RETIRED #define GKUID_JPEGProcess16_18TransferSyntax "1.2.840.10008.1.2.4.59" /// JPEG Extended, Hierarchical (Process 17 & 19) - RETIRED #define GKUID_JPEGProcess17_19TransferSyntax "1.2.840.10008.1.2.4.60" /// JPEG Spectral Selection, Hierarchical (Process 20 & 22) - RETIRED #define GKUID_JPEGProcess20_22TransferSyntax "1.2.840.10008.1.2.4.61" /// JPEG Spectral Selection, Hierarchical (Process 21 & 23) - RETIRED #define GKUID_JPEGProcess21_23TransferSyntax "1.2.840.10008.1.2.4.62" /// JPEG Full Progression, Hierarchical (Process 24 & 26) - RETIRED #define GKUID_JPEGProcess24_26TransferSyntax "1.2.840.10008.1.2.4.63" /// JPEG Full Progression, Hierarchical (Process 25 & 27) - RETIRED #define GKUID_JPEGProcess25_27TransferSyntax "1.2.840.10008.1.2.4.64" /// JPEG Lossless, Hierarchical (Process 28) - RETIRED #define GKUID_JPEGProcess28TransferSyntax "1.2.840.10008.1.2.4.65" /// JPEG Lossless, Hierarchical (Process 29) - RETIRED #define GKUID_JPEGProcess29TransferSyntax "1.2.840.10008.1.2.4.66" /** JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 * [Selection Value 1]): Default Transfer Syntax for Lossless JPEG Image Compression */ #define GKUID_JPEGProcess14SV1TransferSyntax "1.2.840.10008.1.2.4.70" /// JPEG-LS Lossless Image Compression #define GKUID_JPEGLSLosslessTransferSyntax "1.2.840.10008.1.2.4.80" /// JPEG-LS Lossy (Near-Lossless) Image Compression #define GKUID_JPEGLSLossyTransferSyntax "1.2.840.10008.1.2.4.81" /// JPEG 2000 Image Compression (Lossless Only) #define GKUID_JPEG2000LosslessOnlyTransferSyntax "1.2.840.10008.1.2.4.90" /// JPEG 2000 Image Compression (Lossless or Lossy) #define GKUID_JPEG2000TransferSyntax "1.2.840.10008.1.2.4.91" /// JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only) #define GKUID_JPEG2000Part2MulticomponentImageCompressionLosslessOnlyTransferSyntax "1.2.840.10008.1.2.4.92" /// JPEG 2000 Part 2 Multi-component Image Compression (Lossless or Lossy) #define GKUID_JPEG2000Part2MulticomponentImageCompressionTransferSyntax "1.2.840.10008.1.2.4.93" /// JPIP Referenced #define GKUID_JPIPReferencedTransferSyntax "1.2.840.10008.1.2.4.94" /// JPIP Referenced Deflate #define GKUID_JPIPReferencedDeflateTransferSyntax "1.2.840.10008.1.2.4.95" /// MPEG2 Main Profile @ Main Level #define GKUID_MPEG2MainProfileAtMainLevelTransferSyntax "1.2.840.10008.1.2.4.100" /// MPEG2 Main Profile @ High Level #define GKUID_MPEG2MainProfileAtHighLevelTransferSyntax "1.2.840.10008.1.2.4.101" /// RLE Lossless #define GKUID_RLELosslessTransferSyntax "1.2.840.10008.1.2.5" /** MIME encapsulation (Supplement 101) is only a pseudo transfer syntax used to * refer to MIME encapsulated HL7 CDA documents from a DICOMDIR when stored * on a DICOM storage medium. It is never used for network communication * or encoding of DICOM objects. */ #define GKUID_RFC2557MIMEEncapsulationTransferSyntax "1.2.840.10008.1.2.6.1" /** XML encoding (Supplement 114) is only a pseudo transfer syntax used to refer to * encapsulated HL7 CDA documents from a DICOMDIR when stored on a DICOM storage * medium. It is never used for network communication or encoding of DICOM objects. */ #define GKUID_XMLEncodingTransferSyntax "1.2.840.10008.1.2.6.2" /* ** Defined SOP Class UIDs according to DICOM standard */ // Storage #define GKUID_RETIRED_StoredPrintStorage "1.2.840.10008.5.1.1.27" #define GKUID_RETIRED_HardcopyGrayscaleImageStorage "1.2.840.10008.5.1.1.29" #define GKUID_RETIRED_HardcopyColorImageStorage "1.2.840.10008.5.1.1.30" #define GKUID_ComputedRadiographyImageStorage "1.2.840.10008.5.1.4.1.1.1" #define GKUID_DigitalXRayImageStorageForPresentation "1.2.840.10008.5.1.4.1.1.1.1" #define GKUID_DigitalXRayImageStorageForProcessing "1.2.840.10008.5.1.4.1.1.1.1.1" #define GKUID_DigitalMammographyXRayImageStorageForPresentation "1.2.840.10008.5.1.4.1.1.1.2" #define GKUID_DigitalMammographyXRayImageStorageForProcessing "1.2.840.10008.5.1.4.1.1.1.2.1" #define GKUID_DigitalIntraOralXRayImageStorageForPresentation "1.2.840.10008.5.1.4.1.1.1.3" #define GKUID_DigitalIntraOralXRayImageStorageForProcessing "1.2.840.10008.5.1.4.1.1.1.3.1" #define GKUID_CTImageStorage "1.2.840.10008.5.1.4.1.1.2" #define GKUID_EnhancedCTImageStorage "1.2.840.10008.5.1.4.1.1.2.1" #define GKUID_RETIRED_UltrasoundMultiframeImageStorage "1.2.840.10008.5.1.4.1.1.3" #define GKUID_UltrasoundMultiframeImageStorage "1.2.840.10008.5.1.4.1.1.3.1" #define GKUID_MRImageStorage "1.2.840.10008.5.1.4.1.1.4" #define GKUID_EnhancedMRImageStorage "1.2.840.10008.5.1.4.1.1.4.1" #define GKUID_MRSpectroscopyStorage "1.2.840.10008.5.1.4.1.1.4.2" #define GKUID_EnhancedMRColorImageStorage "1.2.840.10008.5.1.4.1.1.4.3" #define GKUID_RETIRED_NuclearMedicineImageStorage "1.2.840.10008.5.1.4.1.1.5" #define GKUID_RETIRED_UltrasoundImageStorage "1.2.840.10008.5.1.4.1.1.6" #define GKUID_UltrasoundImageStorage "1.2.840.10008.5.1.4.1.1.6.1" #define GKUID_EnhancedUSVolumeStorage "1.2.840.10008.5.1.4.1.1.6.2" #define GKUID_SecondaryCaptureImageStorage "1.2.840.10008.5.1.4.1.1.7" #define GKUID_MultiframeSingleBitSecondaryCaptureImageStorage "1.2.840.10008.5.1.4.1.1.7.1" #define GKUID_MultiframeGrayscaleByteSecondaryCaptureImageStorage "1.2.840.10008.5.1.4.1.1.7.2" #define GKUID_MultiframeGrayscaleWordSecondaryCaptureImageStorage "1.2.840.10008.5.1.4.1.1.7.3" #define GKUID_MultiframeTrueColorSecondaryCaptureImageStorage "1.2.840.10008.5.1.4.1.1.7.4" #define GKUID_RETIRED_StandaloneOverlayStorage "1.2.840.10008.5.1.4.1.1.8" #define GKUID_RETIRED_StandaloneCurveStorage "1.2.840.10008.5.1.4.1.1.9" #define GKUID_TwelveLeadECGWaveformStorage "1.2.840.10008.5.1.4.1.1.9.1.1" #define GKUID_GeneralECGWaveformStorage "1.2.840.10008.5.1.4.1.1.9.1.2" #define GKUID_AmbulatoryECGWaveformStorage "1.2.840.10008.5.1.4.1.1.9.1.3" #define GKUID_HemodynamicWaveformStorage "1.2.840.10008.5.1.4.1.1.9.2.1" #define GKUID_CardiacElectrophysiologyWaveformStorage "1.2.840.10008.5.1.4.1.1.9.3.1" #define GKUID_BasicVoiceAudioWaveformStorage "1.2.840.10008.5.1.4.1.1.9.4.1" #define GKUID_GeneralAudioWaveformStorage "1.2.840.10008.5.1.4.1.1.9.4.2" #define GKUID_ArterialPulseWaveformStorage "1.2.840.10008.5.1.4.1.1.9.5.1" #define GKUID_RespiratoryWaveformStorage "1.2.840.10008.5.1.4.1.1.9.6.1" #define GKUID_RETIRED_StandaloneModalityLUTStorage "1.2.840.10008.5.1.4.1.1.10" #define GKUID_RETIRED_StandaloneVOILUTStorage "1.2.840.10008.5.1.4.1.1.11" #define GKUID_GrayscaleSoftcopyPresentationStateStorage "1.2.840.10008.5.1.4.1.1.11.1" #define GKUID_ColorSoftcopyPresentationStateStorage "1.2.840.10008.5.1.4.1.1.11.2" #define GKUID_PseudoColorSoftcopyPresentationStateStorage "1.2.840.10008.5.1.4.1.1.11.3" #define GKUID_BlendingSoftcopyPresentationStateStorage "1.2.840.10008.5.1.4.1.1.11.4" #define GKUID_XAXRFGrayscaleSoftcopyPresentationStateStorage "1.2.840.10008.5.1.4.1.1.11.5" #define GKUID_XRayAngiographicImageStorage "1.2.840.10008.5.1.4.1.1.12.1" #define GKUID_EnhancedXAImageStorage "1.2.840.10008.5.1.4.1.1.12.1.1" #define GKUID_XRayRadiofluoroscopicImageStorage "1.2.840.10008.5.1.4.1.1.12.2" #define GKUID_EnhancedXRFImageStorage "1.2.840.10008.5.1.4.1.1.12.2.1" #define GKUID_XRay3DAngiographicImageStorage "1.2.840.10008.5.1.4.1.1.13.1.1" #define GKUID_XRay3DCraniofacialImageStorage "1.2.840.10008.5.1.4.1.1.13.1.2" #define GKUID_BreastTomosynthesisImageStorage "1.2.840.10008.5.1.4.1.1.13.1.3" #define GKUID_RETIRED_XRayAngiographicBiPlaneImageStorage "1.2.840.10008.5.1.4.1.1.12.3" #define GKUID_NuclearMedicineImageStorage "1.2.840.10008.5.1.4.1.1.20" #define GKUID_RawDataStorage "1.2.840.10008.5.1.4.1.1.66" #define GKUID_SpatialRegistrationStorage "1.2.840.10008.5.1.4.1.1.66.1" #define GKUID_SpatialFiducialsStorage "1.2.840.10008.5.1.4.1.1.66.2" #define GKUID_DeformableSpatialRegistrationStorage "1.2.840.10008.5.1.4.1.1.66.3" #define GKUID_SegmentationStorage "1.2.840.10008.5.1.4.1.1.66.4" #define GKUID_SurfaceSegmentationStorage "1.2.840.10008.5.1.4.1.1.66.5" #define GKUID_RealWorldValueMappingStorage "1.2.840.10008.5.1.4.1.1.67" #define GKUID_RETIRED_VLImageStorage "1.2.840.10008.5.1.4.1.1.77.1" #define GKUID_VLEndoscopicImageStorage "1.2.840.10008.5.1.4.1.1.77.1.1" #define GKUID_VideoEndoscopicImageStorage "1.2.840.10008.5.1.4.1.1.77.1.1.1" #define GKUID_VLMicroscopicImageStorage "1.2.840.10008.5.1.4.1.1.77.1.2" #define GKUID_VideoMicroscopicImageStorage "1.2.840.10008.5.1.4.1.1.77.1.2.1" #define GKUID_VLSlideCoordinatesMicroscopicImageStorage "1.2.840.10008.5.1.4.1.1.77.1.3" #define GKUID_VLPhotographicImageStorage "1.2.840.10008.5.1.4.1.1.77.1.4" #define GKUID_VideoPhotographicImageStorage "1.2.840.10008.5.1.4.1.1.77.1.4.1" #define GKUID_OphthalmicPhotography8BitImageStorage "1.2.840.10008.5.1.4.1.1.77.1.5.1" #define GKUID_OphthalmicPhotography16BitImageStorage "1.2.840.10008.5.1.4.1.1.77.1.5.2" #define GKUID_StereometricRelationshipStorage "1.2.840.10008.5.1.4.1.1.77.1.5.3" #define GKUID_OphthalmicTomographyImageStorage "1.2.840.10008.5.1.4.1.1.77.1.5.4" #define GKUID_VLWholeSlideMicroscopyImageStorage "1.2.840.10008.5.1.4.1.1.77.1.6" #define GKUID_RETIRED_VLMultiFrameImageStorage "1.2.840.10008.5.1.4.1.1.77.2" #define GKUID_LensometryMeasurementsStorage "1.2.840.10008.5.1.4.1.1.78.1" #define GKUID_AutorefractionMeasurementsStorage "1.2.840.10008.5.1.4.1.1.78.2" #define GKUID_KeratometryMeasurementsStorage "1.2.840.10008.5.1.4.1.1.78.3" #define GKUID_SubjectiveRefractionMeasurementsStorage "1.2.840.10008.5.1.4.1.1.78.4" #define GKUID_VisualAcuityMeasurementsStorage "1.2.840.10008.5.1.4.1.1.78.5" #define GKUID_SpectaclePrescriptionReportStorage "1.2.840.10008.5.1.4.1.1.78.6" #define GKUID_OphthalmicAxialMeasurementsStorage "1.2.840.10008.5.1.4.1.1.78.7" #define GKUID_IntraocularLensCalculationsStorage "1.2.840.10008.5.1.4.1.1.78.8" #define GKUID_MacularGridThicknessAndVolumeReportStorage "1.2.840.10008.5.1.4.1.1.79.1" #define GKUID_OphthalmicVisualFieldStaticPerimetryMeasurementsStorage "1.2.840.10008.5.1.4.1.1.80.1" #define GKUID_BasicTextSRStorage "1.2.840.10008.5.1.4.1.1.88.11" #define GKUID_EnhancedSRStorage "1.2.840.10008.5.1.4.1.1.88.22" #define GKUID_ComprehensiveSRStorage "1.2.840.10008.5.1.4.1.1.88.33" #define GKUID_ProcedureLogStorage "1.2.840.10008.5.1.4.1.1.88.40" #define GKUID_MammographyCADSRStorage "1.2.840.10008.5.1.4.1.1.88.50" #define GKUID_KeyObjectSelectionDocumentStorage "1.2.840.10008.5.1.4.1.1.88.59" #define GKUID_ChestCADSRStorage "1.2.840.10008.5.1.4.1.1.88.65" #define GKUID_XRayRadiationDoseSRStorage "1.2.840.10008.5.1.4.1.1.88.67" #define GKUID_ColonCADSRStorage "1.2.840.10008.5.1.4.1.1.88.69" #define GKUID_ImplantationPlanSRDocumentStorage "1.2.840.10008.5.1.4.1.1.88.70" #define GKUID_EncapsulatedPDFStorage "1.2.840.10008.5.1.4.1.1.104.1" #define GKUID_EncapsulatedCDAStorage "1.2.840.10008.5.1.4.1.1.104.2" #define GKUID_PositronEmissionTomographyImageStorage "1.2.840.10008.5.1.4.1.1.128" #define GKUID_RETIRED_StandalonePETCurveStorage "1.2.840.10008.5.1.4.1.1.129" #define GKUID_EnhancedPETImageStorage "1.2.840.10008.5.1.4.1.1.130" #define GKUID_BasicStructuredDisplayStorage "1.2.840.10008.5.1.4.1.1.131" #define GKUID_RTImageStorage "1.2.840.10008.5.1.4.1.1.481.1" #define GKUID_RTDoseStorage "1.2.840.10008.5.1.4.1.1.481.2" #define GKUID_RTStructureSetStorage "1.2.840.10008.5.1.4.1.1.481.3" #define GKUID_RTBeamsTreatmentRecordStorage "1.2.840.10008.5.1.4.1.1.481.4" #define GKUID_RTPlanStorage "1.2.840.10008.5.1.4.1.1.481.5" #define GKUID_RTBrachyTreatmentRecordStorage "1.2.840.10008.5.1.4.1.1.481.6" #define GKUID_RTTreatmentSummaryRecordStorage "1.2.840.10008.5.1.4.1.1.481.7" #define GKUID_RTIonPlanStorage "1.2.840.10008.5.1.4.1.1.481.8" #define GKUID_RTIonBeamsTreatmentRecordStorage "1.2.840.10008.5.1.4.1.1.481.9" #define GKUID_GenericImplantTemplateStorage "1.2.840.10008.5.1.4.43.1" #define GKUID_ImplantAssemblyTemplateStorage "1.2.840.10008.5.1.4.44.1" #define GKUID_ImplantTemplateGroupStorage "1.2.840.10008.5.1.4.45.1" // DICOMDIR; was GKUID_BasicDirectoryStorageSOPClass in DCMTK versions prior to 3.5.3 #define GKUID_MediaStorageDirectoryStorage "1.2.840.10008.1.3.10" /* Hanging Protocols Storage is a special case because hanging protocols use a different information model, i.e. there is no patient, study or series in a hanging protocol IOD. */ #define GKUID_HangingProtocolStorage "1.2.840.10008.5.1.4.38.1" // Query/Retrieve #define GKUID_FINDPatientRootQueryRetrieveInformationModel "1.2.840.10008.5.1.4.1.2.1.1" #define GKUID_MOVEPatientRootQueryRetrieveInformationModel "1.2.840.10008.5.1.4.1.2.1.2" #define GKUID_GETPatientRootQueryRetrieveInformationModel "1.2.840.10008.5.1.4.1.2.1.3" #define GKUID_FINDStudyRootQueryRetrieveInformationModel "1.2.840.10008.5.1.4.1.2.2.1" #define GKUID_MOVEStudyRootQueryRetrieveInformationModel "1.2.840.10008.5.1.4.1.2.2.2" #define GKUID_GETStudyRootQueryRetrieveInformationModel "1.2.840.10008.5.1.4.1.2.2.3" #define GKUID_RETIRED_FINDPatientStudyOnlyQueryRetrieveInformationModel "1.2.840.10008.5.1.4.1.2.3.1" #define GKUID_RETIRED_MOVEPatientStudyOnlyQueryRetrieveInformationModel "1.2.840.10008.5.1.4.1.2.3.2" #define GKUID_RETIRED_GETPatientStudyOnlyQueryRetrieveInformationModel "1.2.840.10008.5.1.4.1.2.3.3" #define GKUID_RETIRED_MOVECompositeInstanceRootRetrieve "1.2.840.10008.5.1.4.1.2.4.2" #define GKUID_RETIRED_GETCompositeInstanceRootRetrieve "1.2.840.10008.5.1.4.1.2.4.3" #define GKUID_RETIRED_GETCompositeInstanceRetrieveWithoutBulkData "1.2.840.10008.5.1.4.1.2.5.3" // Worklist #define GKUID_FINDModalityWorklistInformationModel "1.2.840.10008.5.1.4.31" #define GKUID_FINDGeneralPurposeWorklistInformationModel "1.2.840.10008.5.1.4.32.1" // General Purpose Worklist #define GKUID_GeneralPurposeScheduledProcedureStepSOPClass "1.2.840.10008.5.1.4.32.2" #define GKUID_GeneralPurposePerformedProcedureStepSOPClass "1.2.840.10008.5.1.4.32.3" #define GKUID_GeneralPurposeWorklistManagementMetaSOPClass "1.2.840.10008.5.1.4.32" // MPPS #define GKUID_ModalityPerformedProcedureStepSOPClass "1.2.840.10008.3.1.2.3.3" #define GKUID_ModalityPerformedProcedureStepRetrieveSOPClass "1.2.840.10008.3.1.2.3.4" #define GKUID_ModalityPerformedProcedureStepNotificationSOPClass "1.2.840.10008.3.1.2.3.5" // Unified Worklist and Procedure Step #define GKUID_UnifiedWorklistAndProcedureStepServiceClass "1.2.840.10008.5.1.4.34.4" #define GKUID_UnifiedProcedureStepPushSOPClass "1.2.840.10008.5.1.4.34.4.1" #define GKUID_UnifiedProcedureStepWatchSOPClass "1.2.840.10008.5.1.4.34.4.2" #define GKUID_UnifiedProcedureStepPullSOPClass "1.2.840.10008.5.1.4.34.4.3" #define GKUID_UnifiedProcedureStepEventSOPClass "1.2.840.10008.5.1.4.34.4.4" #define GKUID_UnifiedWorklistAndProcedureStepSOPInstance "1.2.840.10008.5.1.4.34.5" // Storage Commitment #define GKUID_StorageCommitmentPushModelSOPClass "1.2.840.10008.1.20.1" #define GKUID_StorageCommitmentPushModelSOPInstance "1.2.840.10008.1.20.1.1" #define GKUID_RETIRED_StorageCommitmentPullModelSOPClass "1.2.840.10008.1.20.2" #define GKUID_RETIRED_StorageCommitmentPullModelSOPInstance "1.2.840.10008.1.20.2.1" // Hanging Protocols #define GKUID_FINDHangingProtocolInformationModel "1.2.840.10008.5.1.4.38.2" #define GKUID_MOVEHangingProtocolInformationModel "1.2.840.10008.5.1.4.38.3" // Relevant Patient Information Query #define GKUID_GeneralRelevantPatientInformationQuery "1.2.840.10008.5.1.4.37.1" #define GKUID_BreastImagingRelevantPatientInformationQuery "1.2.840.10008.5.1.4.37.2" #define GKUID_CardiacRelevantPatientInformationQuery "1.2.840.10008.5.1.4.37.3" // Color Palette Storage and Query/Retrieve #define GKUID_ColorPaletteStorage "1.2.840.10008.5.1.4.39.1" #define GKUID_FINDColorPaletteInformationModel "1.2.840.10008.5.1.4.39.2" #define GKUID_MOVEColorPaletteInformationModel "1.2.840.10008.5.1.4.39.3" #define GKUID_GETColorPaletteInformationModel "1.2.840.10008.5.1.4.39.4" // Implant Template Query/Retrieve #define GKUID_FINDGenericImplantTemplateInformationModel "1.2.840.10008.5.1.4.43.2" #define GKUID_MOVEGenericImplantTemplateInformationModel "1.2.840.10008.5.1.4.43.3" #define GKUID_GETGenericImplantTemplateInformationModel "1.2.840.10008.5.1.4.43.4" #define GKUID_FINDImplantAssemblyTemplateInformationModel "1.2.840.10008.5.1.4.44.2" #define GKUID_MOVEImplantAssemblyTemplateInformationModel "1.2.840.10008.5.1.4.44.3" #define GKUID_GETImplantAssemblyTemplateInformationModel "1.2.840.10008.5.1.4.44.4" #define GKUID_FINDImplantTemplateGroupInformationModel "1.2.840.10008.5.1.4.45.2" #define GKUID_MOVEImplantTemplateGroupInformationModel "1.2.840.10008.5.1.4.45.3" #define GKUID_GETImplantTemplateGroupInformationModel "1.2.840.10008.5.1.4.45.4" // Print #define GKUID_BasicFilmSessionSOPClass "1.2.840.10008.5.1.1.1" #define GKUID_BasicFilmBoxSOPClass "1.2.840.10008.5.1.1.2" #define GKUID_BasicGrayscaleImageBoxSOPClass "1.2.840.10008.5.1.1.4" #define GKUID_BasicColorImageBoxSOPClass "1.2.840.10008.5.1.1.4.1" #define GKUID_RETIRED_ReferencedImageBoxSOPClass "1.2.840.10008.5.1.1.4.2" #define GKUID_BasicGrayscalePrintManagementMetaSOPClass "1.2.840.10008.5.1.1.9" #define GKUID_RETIRED_ReferencedGrayscalePrintManagementMetaSOPClass "1.2.840.10008.5.1.1.9.1" #define GKUID_PrintJobSOPClass "1.2.840.10008.5.1.1.14" #define GKUID_BasicAnnotationBoxSOPClass "1.2.840.10008.5.1.1.15" #define GKUID_PrinterSOPClass "1.2.840.10008.5.1.1.16" #define GKUID_PrinterConfigurationRetrievalSOPClass "1.2.840.10008.5.1.1.16.376" #define GKUID_PrinterSOPInstance "1.2.840.10008.5.1.1.17" #define GKUID_PrinterConfigurationRetrievalSOPInstance "1.2.840.10008.5.1.1.17.376" #define GKUID_BasicColorPrintManagementMetaSOPClass "1.2.840.10008.5.1.1.18" #define GKUID_RETIRED_ReferencedColorPrintManagementMetaSOPClass "1.2.840.10008.5.1.1.18.1" #define GKUID_VOILUTBoxSOPClass "1.2.840.10008.5.1.1.22" #define GKUID_PresentationLUTSOPClass "1.2.840.10008.5.1.1.23" #define GKUID_RETIRED_ImageOverlayBoxSOPClass "1.2.840.10008.5.1.1.24" #define GKUID_RETIRED_BasicPrintImageOverlayBoxSOPClass "1.2.840.10008.5.1.1.24.1" #define GKUID_RETIRED_PrintQueueSOPInstance "1.2.840.10008.5.1.1.25" #define GKUID_RETIRED_PrintQueueManagementSOPClass "1.2.840.10008.5.1.1.26" #define GKUID_RETIRED_PullPrintRequestSOPClass "1.2.840.10008.5.1.1.31" #define GKUID_RETIRED_PullStoredPrintManagementMetaSOPClass "1.2.840.10008.5.1.1.32" // Detached Management #define GKUID_RETIRED_DetachedPatientManagementSOPClass "1.2.840.10008.3.1.2.1.1" #define GKUID_RETIRED_DetachedPatientManagementMetaSOPClass "1.2.840.10008.3.1.2.1.4" #define GKUID_RETIRED_DetachedVisitManagementSOPClass "1.2.840.10008.3.1.2.2.1" #define GKUID_RETIRED_DetachedStudyManagementSOPClass "1.2.840.10008.3.1.2.3.1" #define GKUID_RETIRED_DetachedResultsManagementSOPClass "1.2.840.10008.3.1.2.5.1" #define GKUID_RETIRED_DetachedResultsManagementMetaSOPClass "1.2.840.10008.3.1.2.5.4" #define GKUID_RETIRED_DetachedStudyManagementMetaSOPClass "1.2.840.10008.3.1.2.5.5" #define GKUID_RETIRED_DetachedInterpretationManagementSOPClass "1.2.840.10008.3.1.2.6.1" // Procedure Log #define GKUID_ProceduralEventLoggingSOPClass "1.2.840.10008.1.40" #define GKUID_ProceduralEventLoggingSOPInstance "1.2.840.10008.1.40.1" // Substance Administration #define GKUID_SubstanceAdministrationLoggingSOPClass "1.2.840.10008.1.42" #define GKUID_SubstanceAdministrationLoggingSOPInstance "1.2.840.10008.1.42.1" #define GKUID_ProductCharacteristicsQuerySOPClass "1.2.840.10008.5.1.4.41" #define GKUID_SubstanceApprovalQuerySOPClass "1.2.840.10008.5.1.4.42" // Media Creation #define GKUID_MediaCreationManagementSOPClass "1.2.840.10008.5.1.1.33" // SOP Class Relationship Negotiation #define GKUID_StorageServiceClass "1.2.840.10008.4.2" // Instance Availability Notification #define GKUID_InstanceAvailabilityNotificationSOPClass "1.2.840.10008.5.1.4.33" // Application Hosting #define GKUID_NativeDICOMModel "1.2.840.10008.7.1.1" #define GKUID_AbstractMultiDimensionalImageModel "1.2.840.10008.7.1.2" // Other #define GKUID_VerificationSOPClass "1.2.840.10008.1.1" #define GKUID_RETIRED_BasicStudyContentNotificationSOPClass "1.2.840.10008.1.9" #define GKUID_RETIRED_StudyComponentManagementSOPClass "1.2.840.10008.3.1.2.3.2" // Coding Schemes #define GKUID_DICOMControlledTerminologyCodingScheme "1.2.840.10008.2.16.4" #define GKUID_DICOMUIDRegistryCodingScheme "1.2.840.10008.2.6.1" // Configuration Management LDAP UIDs #define GKUID_LDAP_dicomDeviceName "1.2.840.10008.15.0.3.1" #define GKUID_LDAP_dicomDescription "1.2.840.10008.15.0.3.2" #define GKUID_LDAP_dicomManufacturer "1.2.840.10008.15.0.3.3" #define GKUID_LDAP_dicomManufacturerModelName "1.2.840.10008.15.0.3.4" #define GKUID_LDAP_dicomSoftwareVersion "1.2.840.10008.15.0.3.5" #define GKUID_LDAP_dicomVendorData "1.2.840.10008.15.0.3.6" #define GKUID_LDAP_dicomAETitle "1.2.840.10008.15.0.3.7" #define GKUID_LDAP_dicomNetworkConnectionReference "1.2.840.10008.15.0.3.8" #define GKUID_LDAP_dicomApplicationCluster "1.2.840.10008.15.0.3.9" #define GKUID_LDAP_dicomAssociationInitiator "1.2.840.10008.15.0.3.10" #define GKUID_LDAP_dicomAssociationAcceptor "1.2.840.10008.15.0.3.11" #define GKUID_LDAP_dicomHostname "1.2.840.10008.15.0.3.12" #define GKUID_LDAP_dicomPort "1.2.840.10008.15.0.3.13" #define GKUID_LDAP_dicomSOPClass "1.2.840.10008.15.0.3.14" #define GKUID_LDAP_dicomTransferRole "1.2.840.10008.15.0.3.15" #define GKUID_LDAP_dicomTransferSyntax "1.2.840.10008.15.0.3.16" #define GKUID_LDAP_dicomPrimaryDeviceType "1.2.840.10008.15.0.3.17" #define GKUID_LDAP_dicomRelatedDeviceReference "1.2.840.10008.15.0.3.18" #define GKUID_LDAP_dicomPreferredCalledAETitle "1.2.840.10008.15.0.3.19" #define GKUID_LDAP_dicomTLSCyphersuite "1.2.840.10008.15.0.3.20" #define GKUID_LDAP_dicomAuthorizedNodeCertificateReference "1.2.840.10008.15.0.3.21" #define GKUID_LDAP_dicomThisNodeCertificateReference "1.2.840.10008.15.0.3.22" #define GKUID_LDAP_dicomInstalled "1.2.840.10008.15.0.3.23" #define GKUID_LDAP_dicomStationName "1.2.840.10008.15.0.3.24" #define GKUID_LDAP_dicomDeviceSerialNumber "1.2.840.10008.15.0.3.25" #define GKUID_LDAP_dicomInstitutionName "1.2.840.10008.15.0.3.26" #define GKUID_LDAP_dicomInstitutionAddress "1.2.840.10008.15.0.3.27" #define GKUID_LDAP_dicomInstitutionDepartmentName "1.2.840.10008.15.0.3.28" #define GKUID_LDAP_dicomIssuerOfPatientID "1.2.840.10008.15.0.3.29" #define GKUID_LDAP_dicomPreferredCallingAETitle "1.2.840.10008.15.0.3.30" #define GKUID_LDAP_dicomSupportedCharacterSet "1.2.840.10008.15.0.3.31" #define GKUID_LDAP_dicomConfigurationRoot "1.2.840.10008.15.0.4.1" #define GKUID_LDAP_dicomDevicesRoot "1.2.840.10008.15.0.4.2" #define GKUID_LDAP_dicomUniqueAETitlesRegistryRoot "1.2.840.10008.15.0.4.3" #define GKUID_LDAP_dicomDevice "1.2.840.10008.15.0.4.4" #define GKUID_LDAP_dicomNetworkAE "1.2.840.10008.15.0.4.5" #define GKUID_LDAP_dicomNetworkConnection "1.2.840.10008.15.0.4.6" #define GKUID_LDAP_dicomUniqueAETitle "1.2.840.10008.15.0.4.7" #define GKUID_LDAP_dicomTransferCapability "1.2.840.10008.15.0.4.8" // UTC Synchronization Frame of Reference (CP 432) #define GKUID_UniversalCoordinatedTimeSynchronizationFrameOfReference "1.2.840.10008.15.1.1" // Well-known Frame of References #define GKUID_TalairachBrainAtlasFrameOfReference "1.2.840.10008.1.4.1.1" #define GKUID_SPM2T1FrameOfReference "1.2.840.10008.1.4.1.2" #define GKUID_SPM2T2FrameOfReference "1.2.840.10008.1.4.1.3" #define GKUID_SPM2PDFrameOfReference "1.2.840.10008.1.4.1.4" #define GKUID_SPM2EPIFrameOfReference "1.2.840.10008.1.4.1.5" #define GKUID_SPM2FILT1FrameOfReference "1.2.840.10008.1.4.1.6" #define GKUID_SPM2PETFrameOfReference "1.2.840.10008.1.4.1.7" #define GKUID_SPM2TRANSMFrameOfReference "1.2.840.10008.1.4.1.8" #define GKUID_SPM2SPECTFrameOfReference "1.2.840.10008.1.4.1.9" #define GKUID_SPM2GRAYFrameOfReference "1.2.840.10008.1.4.1.10" #define GKUID_SPM2WHITEFrameOfReference "1.2.840.10008.1.4.1.11" #define GKUID_SPM2CSFFrameOfReference "1.2.840.10008.1.4.1.12" #define GKUID_SPM2BRAINMASKFrameOfReference "1.2.840.10008.1.4.1.13" #define GKUID_SPM2AVG305T1FrameOfReference "1.2.840.10008.1.4.1.14" #define GKUID_SPM2AVG152T1FrameOfReference "1.2.840.10008.1.4.1.15" #define GKUID_SPM2AVG152T2FrameOfReference "1.2.840.10008.1.4.1.16" #define GKUID_SPM2AVG152PDFrameOfReference "1.2.840.10008.1.4.1.17" #define GKUID_SPM2SINGLESUBJT1FrameOfReference "1.2.840.10008.1.4.1.18" #define GKUID_ICBM452T1FrameOfReference "1.2.840.10008.1.4.2.1" #define GKUID_ICBMSingleSubjectMRIFrameOfReference "1.2.840.10008.1.4.2.2" // Well-known SOP Instances for Color Palettes #define GKUID_HotIronColorPaletteSOPInstance "1.2.840.10008.1.5.1" #define GKUID_PETColorPaletteSOPInstance "1.2.840.10008.1.5.2" #define GKUID_HotMetalBlueColorPaletteSOPInstance "1.2.840.10008.1.5.3" #define GKUID_PET20StepColorPaletteSOPInstance "1.2.840.10008.1.5.4" // Private DCMTK UIDs // Private SOP Class UID used to shutdown external network applications #define GKUID_PrivateShutdownSOPClass "1.2.276.0.7230010.3.4.1915765545.18030.917282194.0" /* DRAFT SUPPLEMENTS - EXPERIMENTAL USE ONLY */ /* * The following UIDs were defined in "frozen draft for trial implementation" versions * of various DICOM supplements and are or will be changed before final text. * Since it is likely that trial implementations exist, we leave the UIDs in the dictionary. */ /* Supplement 23 Frozen Draft (November 1997) */ #define GKUID_DRAFT_SRTextStorage "1.2.840.10008.5.1.4.1.1.88.1" #define GKUID_DRAFT_SRAudioStorage "1.2.840.10008.5.1.4.1.1.88.2" #define GKUID_DRAFT_SRDetailStorage "1.2.840.10008.5.1.4.1.1.88.3" #define GKUID_DRAFT_SRComprehensiveStorage "1.2.840.10008.5.1.4.1.1.88.4" /* Supplement 30 Draft 08 for Demonstration (October 1997) */ #define GKUID_DRAFT_WaveformStorage "1.2.840.10008.5.1.4.1.1.9.1" /* Supplement 74 Frozen Draft (October 2007) */ #define GKUID_DRAFT_RTBeamsDeliveryInstructionStorage "1.2.840.10008.5.1.4.34.1" #define GKUID_DRAFT_RTConventionalMachineVerification "1.2.840.10008.5.1.4.34.2" #define GKUID_DRAFT_RTIonMachineVerification "1.2.840.10008.5.1.4.34.3" ginkgocadx-3.8.7/cadxcore/api/dicom/dicom_legacy.h000066400000000000000000000004751314736454600221160ustar00rootroot00000000000000 #ifdef DCMTK_POST_20170228 inline DcmElement *newDicomElement(const DcmTagKey& key) { return DcmItem::newDicomElement(key); } inline OFCondition newDicomElement(DcmElement *&newElement, const DcmTagKey &tag) { return DcmItem::newDicomElement(newElement, tag); } #endif ginkgocadx-3.8.7/cadxcore/api/dicom/dicomdataset.cpp000066400000000000000000000157711314736454600225000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "dicomdataset.h" static const std::string empty; GIL::DICOM::DicomDataset::DicomDataset() { } GIL::DICOM::DicomDataset::~DicomDataset() { } //aade referencias a las imagenes a las que hace referencia void GIL::DICOM::DicomDataset::AddReference(const std::string& sopClassUID, const std::string& sopInstanceUID) { //se busca la secuencia de referencias GIL::DICOM::DicomDataset referencia; referencia.tags[std::string("0008|1150")] = sopClassUID; referencia.tags[std::string("0008|1155")] = sopInstanceUID; DicomDataset* pSecuencia_referencias = buscar_secuencia("0008|1140"); if ( pSecuencia_referencias== NULL) { DicomDataset secuencia_referencias; secuencia_referencias.items.push_back(referencia); secuencia_referencias.tagName = "0008|1140"; secuencias.push_back(secuencia_referencias); } else { //se busca si ya esta metida la referencia bool encontrado = false; for(GIL::DICOM::DicomDataset::DatasetList::iterator it = pSecuencia_referencias->items.begin(); it!= pSecuencia_referencias->items.end(); ++it) { std::string uid; if((*it).getTag("0008|1155",uid)) { if (uid == sopInstanceUID) { encontrado = true; break; } } } if(!encontrado) { pSecuencia_referencias->items.push_back(referencia); } } } //aade referencias a las imagenes originales void GIL::DICOM::DicomDataset::AddReferenceSource(const std::string& sopClassUID, const std::string& sopInstanceUID) { //se busca la secuencia de referencias GIL::DICOM::DicomDataset referencia; referencia.tags[std::string("0008|1150")] = sopClassUID; referencia.tags[std::string("0008|1155")] = sopInstanceUID; DicomDataset* pSecuencia_referencias = buscar_secuencia("0008|2112"); if ( pSecuencia_referencias== NULL) { DicomDataset secuencia_referencias; secuencia_referencias.items.push_back(referencia); secuencia_referencias.tagName = "0008|2112"; secuencias.push_back(secuencia_referencias); } else { //se busca si ya esta metida la referencia bool encontrado = false; for(GIL::DICOM::DicomDataset::DatasetList::iterator it = pSecuencia_referencias->items.begin(); it!= pSecuencia_referencias->items.end(); ++it) { std::string uid; if((*it).getTag("0008|1155",uid)) { if (uid == sopInstanceUID) { encontrado = true; break; } } } if(!encontrado) { pSecuencia_referencias->items.push_back(referencia); } } } void GIL::DICOM::DicomDataset::clear() { secuencias.clear(); items.clear(); tags.clear(); } GIL::DICOM::DicomDataset* GIL::DICOM::DicomDataset::buscar_secuencia(const char* tag) { std::string stag = tag; return buscar_secuencia(stag); } GIL::DICOM::DicomDataset* GIL::DICOM::DicomDataset::buscar_secuencia(const std::string & tag) { for (DatasetList::iterator it = secuencias.begin(); it != secuencias.end(); ++it) { if ((*it).tagName == tag) { return &(*it); } } return NULL; } /* Obtiene un tag y lo asigna en el parmetro de salida valor. Devuelve true si el tag existe y false si el tag no existe */ bool GIL::DICOM::DicomDataset::getTag(const std::string& tag, std::string& valor) const { ListaTags::const_iterator it = tags.find(tag); bool found = false; if (it != tags.end()) { valor = (*it).second; found = true; } return found; } /* Obtiene un tag y lo asigna en el parmetro de salida valor. Devuelve true si el tag existe y false si el tag no existe */ bool GIL::DICOM::DicomDataset::getTag(const char* tag, std::string& valor) const { ListaTags::const_iterator it = tags.find(tag); bool found = false; if (it != tags.end()) { valor = (*it).second; found = true; } return found; } const std::string& GIL::DICOM::DicomDataset::getTag(const std::string& tag) const { ListaTags::const_iterator it = tags.find(tag); if (it != tags.end()) { return (*it).second; } return empty; } const std::string& GIL::DICOM::DicomDataset::getTag(const char* tag) const { ListaTags::const_iterator it = tags.find(tag); if (it != tags.end()) { return (*it).second; } return empty; } void GIL::DICOM::DicomDataset::dump(std::ostream& out, int indentLevel) const { for (int i = 0; i < indentLevel; i++) { out << " "; } out << "[ " << std::endl; for (DatasetList::const_iterator it = secuencias.begin(); it != secuencias.end(); ++it) { for (int i = 0; i < indentLevel + 3; i++) { out << " "; } out << "SEQ " << (*it).tagName << std::endl; (*it).dump(out, indentLevel + 6); } for (DatasetList::const_iterator it = items.begin(); it != items.end(); ++it) { for (int i = 0; i < indentLevel + 3; i++) { out << " "; } out << "ITEM " << std::endl; (*it).dump(out, indentLevel + 6); } for (ListaTags::const_iterator it = tags.begin(); it != tags.end(); ++it) { for (int i = 0; i < indentLevel + 3; i++) { out << " "; } out << "TAG " << (*it).first << " = " << (*it).second << std::endl; } for (int i = 0; i < indentLevel; i++) { out << " "; } out << "]" << std::endl; } ginkgocadx-3.8.7/cadxcore/api/dicom/dicomdataset.h000066400000000000000000000056171314736454600221430ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef DICOMDATASET_H #define DICOMDATASET_H #include #include #include #include #include #include namespace GIL { namespace DICOM { typedef std::map ListaTags; class EXTAPI DicomDataset { private: public: typedef std::list DatasetList; DatasetList secuencias; DatasetList items; ListaTags tags; std::string tagName; DicomDataset() ; ~DicomDataset() ; //a�ade referencias a las imagenes a las que hace referencia void AddReference(const std::string& sopClassUID, const std::string& sopInstanceUID); //a�ade referencias a las imagenes originales void AddReferenceSource(const std::string& sopClassUID, const std::string& sopInstanceUID); void clear(); DicomDataset* buscar_secuencia(const char* tag); DicomDataset* buscar_secuencia(const std::string & tag); /* Obtiene un tag y lo asigna en el par�metro de salida valor. Devuelve true si el tag existe y false si el tag no existe */ bool getTag(const std::string& tag, std::string & valor) const; bool getTag(const char* tag, std::string & valor) const; const std::string& getTag(const char* tag) const; const std::string& getTag(const std::string& tag) const; template inline T getTagAs(const std::string& tag, const T& defaultValue) { T ret = defaultValue; std::stringstream is(getTag(tag)); is >> ret; return ret; } void dump(std::ostream& out, int indentLevel = 0) const; friend std::ostream & operator<<(std::ostream& out, const DicomDataset& j) { j.dump(out); return out; } friend std::ostream & operator<<(std::ostream& out, const DicomDataset* j) { if (j == NULL) { out << "[ NULL ]" << std::endl; } else { out << *j; } return out; } }; } } #endif ginkgocadx-3.8.7/cadxcore/api/dicom/icustomassociation.cpp000066400000000000000000000022261314736454600237460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "icustomassociation.h" GIL::DICOM::ICustomAssociation::ICustomAssociation() { } GIL::DICOM::ICustomAssociation::~ICustomAssociation() { } void GIL::DICOM::ICustomAssociation::SetStorageSOPClasses(const GIL::DICOM::SOPClassList& SOPClasses) { this->SOPClasses = SOPClasses; } const std::string& GIL::DICOM::ICustomAssociation::getErrorMessage() const { return errorMsg; } ginkgocadx-3.8.7/cadxcore/api/dicom/icustomassociation.h000066400000000000000000000045651314736454600234230ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include namespace GIL { namespace DICOM { class EXTAPI ICustomAssociation { protected: ICustomAssociation(); public: virtual ~ICustomAssociation(); public: virtual bool Connect(const std::string& serverId, const std::string& local_aet) = 0; virtual bool createRQ( const std::string& sopclassUID, const GIL::DICOM::DicomDataset& attributeListIn, int& status, std::string& affectedSopinstanceUID) = 0; virtual bool setRQ( const std::string& sopclassUID, const std::string& sopinstanceUID, const GIL::DICOM::DicomDataset& modificationList, int& status) = 0; virtual bool getRQ( const std::string& sopclassUID, const std::string& sopinstanceUID, const int *attributeIdentifierList, unsigned long numShorts, int& status, GNC::GCS::Ptr& attributeListOut) = 0; virtual bool actionRQ( const std::string& sopclassUID, const std::string& sopinstanceUID, int actionTypeID, const GIL::DICOM::DicomDataset& actionInformation, int& status, GNC::GCS::Ptr& attributeListOut) = 0; virtual bool deleteRQ( const std::string& sopclassUID, const std::string& sopinstanceUID, int& status) = 0; virtual bool releaseAssociation() = 0; virtual bool abortAssociation() = 0; public: void SetStorageSOPClasses(const GIL::DICOM::SOPClassList& SOPClasses); const std::string& getErrorMessage() const; protected: std::string errorMsg; GIL::DICOM::SOPClassList SOPClasses; }; } } ginkgocadx-3.8.7/cadxcore/api/dicom/idicom.cpp000066400000000000000000000204561314736454600212770ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "idicom.h" #include "dcmtk/dcmdata/dcdict.h" #include #include "dcmtk/dcmimgle/dcmimage.h" #ifdef DCMTK_POST_20170228 #include "dicom_legacy.h" #endif GIL::DICOM::TipoTagPrivado::TipoTagPrivado() { } GIL::DICOM::TipoTagPrivado::~TipoTagPrivado() { } GIL::DICOM::TagPrivadoString::TagPrivadoString(const std::string& valor):Valor(valor) { } GIL::DICOM::TagPrivadoString::~TagPrivadoString() { } std::string GIL::DICOM::TagPrivadoString::ToString() { return Valor; } /*------------------------------*/ DcmElement* GIL::DICOM::TagPrivadoString::ToElement(unsigned int group, unsigned int element) { OFCondition cond; DcmVR vr(EVR_LT); DcmTagKey key(group,element); DcmTag tag(key,vr); if (tag.error() != EC_Normal) { std::cerr << "error al almacenar los tags privados, tag desconocido: (" << group << ","<putString(Valor.c_str()); if (cond.bad()) { std::cerr << "error al almacenar los tags privados, error al escribir los datos: (" << group << ","<Size = otro.Size; this->Valor = new unsigned char[Size]; memcpy(this->Valor, otro.Valor,Size*sizeof(unsigned char)); } GIL::DICOM::TagPrivadoUndefined& GIL::DICOM::TagPrivadoUndefined::operator = (const GIL::DICOM::TagPrivadoUndefined& otro) { this->Size = otro.Size; this->Valor = new unsigned char[Size]; memcpy(this->Valor,otro.Valor,Size*sizeof(unsigned char)); return *this; } void GIL::DICOM::TagPrivadoUndefined::Copiar(void* ptrCopia, int size) { if(this->Valor != NULL) { delete[] this->Valor; } this->Size = size; this->Valor = new unsigned char [Size]; memcpy(this->Valor,ptrCopia,Size*sizeof(unsigned char)); } std::string GIL::DICOM::TagPrivadoUndefined::ToString() { return std::string ((char*)Valor,Size); } unsigned char* GIL::DICOM::TagPrivadoUndefined::GetValor() { return Valor; } unsigned int GIL::DICOM::TagPrivadoUndefined::GetSize() { return Size; } DcmElement* GIL::DICOM::TagPrivadoUndefined::ToElement(unsigned int group, unsigned int element) { OFCondition cond; DcmVR vr(EVR_UN); DcmTagKey key(group,element); DcmTag tag(key,vr); if (tag.error() != EC_Normal) { std::cerr << "error al almacenar los tags privados, tag desconocido: (" << group << ","<putUint8Array(Valor,Size); if (cond.bad()) { std::cerr << "error al almacenar los tags privados, error al escribir los datos: (" << group << ","<UIDModulo = uidModulo; } GIL::DICOM::TipoPrivateTags::~TipoPrivateTags() { Vaciar(); } GIL::DICOM::TipoPrivateTags::ListaTags& GIL::DICOM::TipoPrivateTags::GetListaTags() { return Tags; } void GIL::DICOM::TipoPrivateTags::Vaciar() { for(ListaTags::iterator it=Tags.begin(); it!=Tags.end(); ++it) { if((*it).second!=NULL) { delete ((*it).second); } } Tags.clear(); } void GIL::DICOM::TipoPrivateTags::DeleteTag(unsigned char tag) { if(Tags.find(tag)!=Tags.end()) { //se borra if (Tags[tag] != NULL) { delete Tags[tag]; } Tags.erase(tag); } } bool GIL::DICOM::TipoPrivateTags::GetTag(unsigned char tag, std::string& valor) { if(Tags.find(tag)!=Tags.end()) { valor = Tags[tag]->ToString(); return true; } else { valor=""; return false; } } GIL::DICOM::TagPrivadoUndefined* GIL::DICOM::TipoPrivateTags::GetTagUndefined(unsigned char tag) { if(Tags.find(tag)!=Tags.end()) { TagPrivadoUndefined* pTag = dynamic_cast (Tags[tag]); return pTag; } else { return NULL; } } void GIL::DICOM::TipoPrivateTags::SetTag(unsigned char tag, const std::string& valor) { if(Tags.find(tag) != Tags.end()) { delete Tags[tag]; } Tags[tag] = new TagPrivadoString(valor); } void GIL::DICOM::TipoPrivateTags::SetTag(unsigned char tag, unsigned char* valor, int longitud) { if(Tags.find(tag) != Tags.end()) { delete Tags[tag]; } Tags[tag] = new TagPrivadoUndefined(valor, longitud); } GIL::DICOM::TagPrivadoUndefined* GIL::DICOM::TipoPrivateTags::NewTagUndefined(unsigned char tag, int longitud) { if(Tags.find(tag) != Tags.end()) { delete Tags[tag]; } TagPrivadoUndefined* pTag = new TagPrivadoUndefined(longitud); Tags[tag] = pTag; return pTag; } GIL::DICOM::TipoMetaInfo::~TipoMetaInfo() { } /* Obtiene un tag y lo asigna en el parámetro de salida valor. Devuelve true si el tag existe y false si el tag no existe */ bool GIL::DICOM::TipoMetaInfo::getTag(const std::string& tag, std::string & valor) { ListaTags::iterator it = tags.find(tag); bool found = false; if (it != tags.end()) { valor = (*it).second; found = true; } return found; } std::string GIL::DICOM::TipoMetaInfo::getTag(const std::string& tag) { ListaTags::iterator it = tags.find(tag); if (it != tags.end()) { return (*it).second; } return ""; } template T GIL::DICOM::TipoMetaInfo::getTagAs(const std::string& tag, const T& defaultValue) { T ret = defaultValue; std::stringstream is(getTag(tag)); is >> ret; return ret; } GIL::DICOM::I2DException::I2DException(const std::string& msg, const std::string& componente, bool fatal) throw() : GNC::GCS::IException(msg, componente, fatal) { } GIL::DICOM::I2DException::~I2DException() throw() { } ginkgocadx-3.8.7/cadxcore/api/dicom/idicom.h000066400000000000000000000073511314736454600207430ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include namespace GIL { namespace DICOM { class IDICOMImg2DCM; class IDICOMManager; } } class DcmElement; namespace GIL { namespace DICOM { class IDICOMImg2DCM; class IDICOMManager; class EXTAPI TipoTagPrivado { public: TipoTagPrivado(); virtual ~TipoTagPrivado(); virtual std::string ToString() = 0; virtual DcmElement* ToElement(unsigned int group, unsigned int element) = 0; }; class EXTAPI TagPrivadoString: public TipoTagPrivado { public: TagPrivadoString(const std::string& valor); virtual ~TagPrivadoString(); virtual std::string ToString(); virtual DcmElement* ToElement(unsigned int group, unsigned int element); protected: std::string Valor; }; class EXTAPI TagPrivadoUndefined: public TipoTagPrivado { public: TagPrivadoUndefined(); TagPrivadoUndefined(unsigned int size); TagPrivadoUndefined(unsigned char* valor, unsigned int size); virtual ~TagPrivadoUndefined(); TagPrivadoUndefined(const TagPrivadoUndefined& otro); TagPrivadoUndefined& operator = (const TagPrivadoUndefined& otro) ; void Copiar(void* ptrCopia, int size) ; virtual std::string ToString() ; unsigned char* GetValor(); unsigned int GetSize(); virtual DcmElement* ToElement(unsigned int group, unsigned int element); protected: unsigned char* Valor; unsigned int Size; }; class EXTAPI TipoPrivateTags { public: typedef std::map ListaTags; std::string UIDModulo; TipoPrivateTags(); TipoPrivateTags(const std::string& uidModulo); ~TipoPrivateTags(); ListaTags& GetListaTags(); void Vaciar(); void DeleteTag(unsigned char tag); bool GetTag(unsigned char tag, std::string& valor) ; TagPrivadoUndefined* GetTagUndefined(unsigned char tag); void SetTag(unsigned char tag, const std::string& valor); void SetTag(unsigned char tag, unsigned char* valor, int longitud) ; TagPrivadoUndefined* NewTagUndefined(unsigned char tag, int longitud); protected: ListaTags Tags; }; class EXTAPI TipoMetaInfo { public: typedef std::map ListaTags; ListaTags tags; ~TipoMetaInfo(); /* Obtiene un tag y lo asigna en el parámetro de salida valor. Devuelve true si el tag existe y false si el tag no existe */ bool getTag(const std::string& tag, std::string & valor); std::string getTag(const std::string& tag); template T getTagAs(const std::string& tag, const T& defaultValue); }; class EXTAPI I2DException : public GNC::GCS::IException { public: I2DException(const std::string& msg, const std::string& component="GIL/I2D", bool fatal = true) throw(); virtual ~I2DException() throw(); }; } } ginkgocadx-3.8.7/cadxcore/api/dicom/idicomconformance.cpp000066400000000000000000000460631314736454600235140ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include "idicomconformance.h" #include #include #include #include #include
#include #include #include #include #include #include namespace GIL { namespace DICOM { static std::string emptyString; static TransferSyntaxList emptyTSList; } } //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- void GIL::DICOM::TransferSyntaxMap::AddTransferSyntax(const std::string& tsRef, const std::string& tsUID) { TransferSyntaxMapImpl& impl = *this; impl[tsRef] = tsUID; } const std::string& GIL::DICOM::TransferSyntaxMap::GetTransferSyntaxUID(const std::string& tsRef) const { const_iterator it = find(tsRef); if (it != end()) { return (*it).second; } else { return emptyString; } } //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- void GIL::DICOM::SOPClassMap::AddSOPClass(const std::string& scRef, const std::string& scUID) { SOPClassMapImpl::iterator it = find(scRef); if (it == end()) { SOPClassMapImpl& impl = *this; impl[scRef] = GIL::DICOM::SOPClassTuple(scUID); } } void GIL::DICOM::SOPClassMap::AddTransferSyntaxForSOP(const std::string& scRef, const std::string& tsRef) { SOPClassMapImpl::iterator it = find(scRef); if (it != end()) { const std::string& tsUID = GIL::DICOM::Conformance::GetTransferSyntaxes().GetTransferSyntaxUID(tsRef); if (tsUID.size() != 0) { SOPClassTuple& sop = (*it).second; sop.tsRefs.push_back(tsRef); sop.tsUIDs.push_back(tsUID); } else { LOG_ERROR(_Std("GIL/DICOM/Conformance"), _Std("Unable to add supported transfer syntax ") << tsRef << _Std(" to SOP Class ") << scRef <<_Std(" . Transfer Syntax does not exists in model: Add it first.")); } } else { LOG_ERROR(_Std("GIL/DICOM/Conformance"), _Std("Unable to add supported transfer syntax ") << tsRef << _Std(" to SOP Class ") << scRef <<_Std(" . SOP Class does not exists in model: Add it first.")); } } const std::string& GIL::DICOM::SOPClassMap::GetSOPClassUID(const std::string& scRef) const { SOPClassMapImpl::const_iterator it = find(scRef); if (it != end()) { return (*it).second.scUID; } return emptyString; } const GIL::DICOM::TransferSyntaxList& GIL::DICOM::SOPClassMap::GetSupportedTransferSyntaxRefs(const std::string& scRef) const { SOPClassMapImpl::const_iterator it = find(scRef); if (it != end()) { return (*it).second.tsRefs; } else { return emptyTSList; } } const GIL::DICOM::TransferSyntaxList& GIL::DICOM::SOPClassMap::GetSupportedTransferSyntaxUIDs(const std::string& scRef) const { SOPClassMapImpl::const_iterator it = find(scRef); if (it != end()) { return (*it).second.tsUIDs; } else { return emptyTSList; } } //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- void GIL::DICOM::ModalityMap::AddModality(const std::string& mRef, const std::string& descr) { ModalityMapImpl::iterator it = find(mRef); if (it == end()) { ModalityMapImpl& impl = *this; impl[mRef] = GIL::DICOM::ModalityTuple(descr); } } void GIL::DICOM::ModalityMap::AddSOPClassForModality(const std::string& mRef, const std::string& scRef) { ModalityMapImpl::iterator it = find(mRef); if (it != end()) { std::string scUID = GIL::DICOM::Conformance::GetStorageSOPClasses().GetSOPClassUID(scRef); if (scUID.size() == 0) { scUID = GIL::DICOM::Conformance::GetScuSOPClasses().GetSOPClassUID(scRef); if (scUID.size() == 0) { scUID = GIL::DICOM::Conformance::GetScpSOPClasses().GetSOPClassUID(scRef); } } if (scUID.size() == 0) { LOG_ERROR(_Std("GIL/DICOM/Conformance"), _Std("Unable to add supported SOP Class ") << scRef << _Std(" to Modality ") << mRef <<_Std(" . SOP Class does not exists in model: Add it first.")); } else { ModalityTuple& modality = (*it).second; modality.scRefs.push_back(scRef); modality.scUIDs.push_back(scUID); } } else { LOG_ERROR(_Std("GIL/DICOM/Conformance"), _Std("Unable to add supported SOP Class ") << scRef << _Std(" to Modality ") << mRef <<_Std(" . Modality does not exists in model: Add it first.")); } } const std::string& GIL::DICOM::ModalityMap::GetDescription(const std::string& mRef) const { ModalityMapImpl::const_iterator it = find(mRef); if (it != end()) { return (*it).second.descr; } return emptyString; } /** Gets the SOP Classes names (refs) list supported by this Modality **/ const GIL::DICOM::SOPClassList& GIL::DICOM::ModalityMap::GetSupportedSOPClassRefs(const std::string& mRef) const { ModalityMapImpl::const_iterator it = find(mRef); if (it != end()) { return (*it).second.scRefs; } else { return emptyTSList; } } /** Gets the SOP Classes oid list supported by this Modality **/ const GIL::DICOM::SOPClassList& GIL::DICOM::ModalityMap::GetSupportedSOPClassUIDs(const std::string& mRef) const { ModalityMapImpl::const_iterator it = find(mRef); if (it != end()) { return (*it).second.scUIDs; } else { return emptyTSList; } } //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- GIL::DICOM::TransferSyntaxMap GIL::DICOM::Conformance::m_TransferSyntaxes; GIL::DICOM::SOPClassMap GIL::DICOM::Conformance::m_StorageSOPClasses; GIL::DICOM::SOPClassMap GIL::DICOM::Conformance::m_ScuSOPClasses; GIL::DICOM::SOPClassMap GIL::DICOM::Conformance::m_ScpSOPClasses; GIL::DICOM::ModalityMap GIL::DICOM::Conformance::m_Modalities; bool GIL::DICOM::Conformance::m_Loaded = false; #define CONFORMANCE_FILE wxT("conformance.xml") #define CONFORMANCE_ROOT_TAG wxT("dicom-conformance") void GIL::DICOM::Conformance::Load() { m_Loaded = true; wxFileName cpath = FROMPATH(GNC::GCS::IEntorno::Instance()->GetGinkgoResourcesDir()) + wxFileName::GetPathSeparator() + CONFORMANCE_FILE; wxXmlDocument xmldoc; xmldoc.Load(cpath.GetFullPath()); if (!xmldoc.IsOk()) { LOG_ERROR(_Std("GIL/DICOM/Conformance"), _Std("Error loading DICOM Conformance file" )); m_Loaded = false; return; } wxXmlNode* pRoot = xmldoc.GetRoot(); if (pRoot->GetName().CmpNoCase(CONFORMANCE_ROOT_TAG) != 0) { LOG_ERROR(_Std("GIL/DICOM/Conformance"), _Std("Invalid DICOM Conformance file" )); m_Loaded = false; return; } for (wxXmlNode* entry = pRoot->GetChildren(); entry != NULL; entry = entry->GetNext()) { if (entry->GetName().CmpNoCase(wxT("transfer-syntaxes")) == 0) { // Loading Transfer Syntaxes wxString wxTS_RefId; wxString wxTS_UID; for (wxXmlNode* tsentry = entry->GetChildren(); tsentry != NULL; tsentry = tsentry->GetNext()) { if ((tsentry->GetName().CmpNoCase(wxT("transfer-syntax")) == 0) && tsentry->GetAttribute(wxT("ref-id"), &wxTS_RefId) && tsentry->GetAttribute(wxT("uid"), &wxTS_UID)) { m_TransferSyntaxes.AddTransferSyntax(std::string(wxTS_RefId.ToUTF8()), std::string(wxTS_UID.ToUTF8())); } } } else if (entry->GetName().CmpNoCase(wxT("storage-sop-classes")) == 0) { // Loading Storage SOP Classes wxString wxSC_RefId; wxString wxSC_UID; wxString wxTS_Ref; std::string sc_RefId; for (wxXmlNode* scentry = entry->GetChildren(); scentry != NULL; scentry = scentry->GetNext()) { if ( (scentry->GetName().CmpNoCase(wxT("sop-class")) == 0) && scentry->GetAttribute(wxT("ref-id"), &wxSC_RefId) && scentry->GetAttribute(wxT("uid"), &wxSC_UID)) { sc_RefId = std::string(wxSC_RefId.ToUTF8()); m_StorageSOPClasses.AddSOPClass( sc_RefId, std::string(wxSC_UID.ToUTF8()) ); for (wxXmlNode* tsentry = scentry->GetChildren(); tsentry != NULL; tsentry = tsentry->GetNext()) { if ((tsentry->GetName().CmpNoCase(wxT("allowed-transfer-syntax")) == 0) && tsentry->GetAttribute(wxT("ref"), &wxTS_Ref)) { m_StorageSOPClasses.AddTransferSyntaxForSOP( sc_RefId, std::string(wxTS_Ref.ToUTF8()) ); } } } } } else if (entry->GetName().CmpNoCase(wxT("scu-sop-classes")) == 0) { // Loading SCU SOP Classes wxString wxSC_RefId; wxString wxSC_UID; wxString wxTS_Ref; std::string sc_RefId; for (wxXmlNode* scentry = entry->GetChildren(); scentry != NULL; scentry = scentry->GetNext()) { if ( (scentry->GetName().CmpNoCase(wxT("sop-class")) == 0) && scentry->GetAttribute(wxT("ref-id"), &wxSC_RefId) && scentry->GetAttribute(wxT("uid"), &wxSC_UID)) { sc_RefId = std::string(wxSC_RefId.ToUTF8()); m_ScuSOPClasses.AddSOPClass( sc_RefId, std::string(wxSC_UID.ToUTF8()) ); for (wxXmlNode* tsentry = scentry->GetChildren(); tsentry != NULL; tsentry = tsentry->GetNext()) { if ((tsentry->GetName().CmpNoCase(wxT("allowed-transfer-syntax")) == 0) && tsentry->GetAttribute(wxT("ref"), &wxTS_Ref)) { m_ScuSOPClasses.AddTransferSyntaxForSOP( sc_RefId, std::string(wxTS_Ref.ToUTF8()) ); } } } else if (scentry->GetName().CmpNoCase(wxT("include-storage-sop-classes")) == 0) { for (SOPClassMap::iterator it = m_StorageSOPClasses.begin(); it != m_StorageSOPClasses.end(); ++it) { const std::string& storageSOPRef = (*it).first; SOPClassTuple& storageSOPTuple = (*it).second; m_ScuSOPClasses[storageSOPRef] = storageSOPTuple; } } } } else if (entry->GetName().CmpNoCase(wxT("scp-sop-classes")) == 0) { // Loading SCP SOP Classes wxString wxSC_RefId; wxString wxSC_UID; wxString wxTS_Ref; std::string sc_RefId; for (wxXmlNode* scentry = entry->GetChildren(); scentry != NULL; scentry = scentry->GetNext()) { if ( (scentry->GetName().CmpNoCase(wxT("sop-class")) == 0) && scentry->GetAttribute(wxT("ref-id"), &wxSC_RefId) && scentry->GetAttribute(wxT("uid"), &wxSC_UID)) { sc_RefId = std::string(wxSC_RefId.ToUTF8()); m_ScpSOPClasses.AddSOPClass( sc_RefId, std::string(wxSC_UID.ToUTF8()) ); for (wxXmlNode* tsentry = scentry->GetChildren(); tsentry != NULL; tsentry = tsentry->GetNext()) { if ((tsentry->GetName().CmpNoCase(wxT("allowed-transfer-syntax")) == 0) && tsentry->GetAttribute(wxT("ref"), &wxTS_Ref)) { m_ScpSOPClasses.AddTransferSyntaxForSOP( sc_RefId, std::string(wxTS_Ref.ToUTF8()) ); } } } else if (scentry->GetName().CmpNoCase(wxT("include-storage-sop-classes")) == 0) { for (SOPClassMap::iterator it = m_StorageSOPClasses.begin(); it != m_StorageSOPClasses.end(); ++it) { const std::string& storageSOPRef = (*it).first; SOPClassTuple& storageSOPTuple = (*it).second; m_ScpSOPClasses[storageSOPRef] = storageSOPTuple; } } } } else if (entry->GetName().CmpNoCase(wxT("modalities-map")) == 0) { // Loading Modalities wxString wxM_RefId; wxString wxM_Descr; wxString wxSC_Ref; std::string m_RefId; for (wxXmlNode* mentry = entry->GetChildren(); mentry != NULL; mentry = mentry->GetNext()) { if ( (mentry->GetName().CmpNoCase(wxT("modality")) == 0) && mentry->GetAttribute(wxT("ref-id"), &wxM_RefId)) { if(mentry->GetAttribute(wxT("descr"), &wxM_Descr)) { m_RefId = std::string(wxM_RefId.ToUTF8()); m_Modalities.AddModality( m_RefId, std::string(wxM_Descr.ToUTF8()) ); for (wxXmlNode* scentry = mentry->GetChildren(); scentry != NULL; scentry = scentry->GetNext()) { if ((scentry->GetName().CmpNoCase(wxT("allowed-sop-class")) == 0) && scentry->GetAttribute(wxT("ref"), &wxSC_Ref)) { m_Modalities.AddSOPClassForModality( m_RefId, std::string(wxSC_Ref.ToUTF8()) ); } } } } } } } return; } const GIL::DICOM::TransferSyntaxMap& GIL::DICOM::Conformance::GetTransferSyntaxes() { if (!m_Loaded) { Load(); } return m_TransferSyntaxes; } const GIL::DICOM::SOPClassMap& GIL::DICOM::Conformance::GetStorageSOPClasses() { if (!m_Loaded) { Load(); } return m_StorageSOPClasses; } const GIL::DICOM::SOPClassMap& GIL::DICOM::Conformance::GetScuSOPClasses() { if (!m_Loaded) { Load(); } return m_ScuSOPClasses; } const GIL::DICOM::SOPClassMap& GIL::DICOM::Conformance::GetScpSOPClasses() { if (!m_Loaded) { Load(); } return m_ScpSOPClasses; } const GIL::DICOM::ModalityMap& GIL::DICOM::Conformance::GetModalities() { if (!m_Loaded) { Load(); } return m_Modalities; } //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- GIL::DICOM::ArrayHelper::ArrayHelper() { array = NULL; size = 0; } GIL::DICOM::ArrayHelper::ArrayHelper(const std::list& list) { array = NULL; size = 0; copyFrom(list); } GIL::DICOM::ArrayHelper::ArrayHelper(const ArrayHelper& o) { this->size = o.size; this->array = new const char* [this->size]; for (unsigned int i = 0; i < this->size; i++) { this->array[i] = strdup(o.array[i]); } } void GIL::DICOM::ArrayHelper::swap(ArrayHelper& other) { std::swap(array, other.array); std::swap(size, other.size); } GIL::DICOM::ArrayHelper::~ArrayHelper() { this->free(); } GIL::DICOM::ArrayHelper& GIL::DICOM::ArrayHelper::operator=(const GIL::DICOM::ArrayHelper& o) { if (this != &o) { ArrayHelper help(o); swap(help); } return *this; } GIL::DICOM::ArrayHelper& GIL::DICOM::ArrayHelper::operator=(const std::list& list) { copyFrom(list); return *this; } void GIL::DICOM::ArrayHelper::copyFrom(const std::list& list) { free(); this->size = list.size(); this->array = new const char* [this->size]; unsigned int i = 0; for (auto it = list.begin(); it != list.end(); ++it) { this->array[i++] = strdup(it->c_str()); } } void GIL::DICOM::ArrayHelper::free() { if (this->size != 0) { for (unsigned int i = 0; i < this->size; i++) { delete[] this->array[i]; } this->size = 0; } if (this->array != NULL) { delete[] this->array; this->array = NULL; } } ginkgocadx-3.8.7/cadxcore/api/dicom/idicomconformance.h000066400000000000000000000144351314736454600231570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include namespace GIL { namespace DICOM { //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- typedef std::map TransferSyntaxMapImpl; typedef std::list TransferSyntaxList; typedef std::list SOPClassList; class EXTAPI TransferSyntaxMap : public TransferSyntaxMapImpl { public: void AddTransferSyntax(const std::string& tsRef, const std::string& tsUID); const std::string& GetTransferSyntaxUID(const std::string& tsRef) const; }; //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- class EXTAPI SOPClassTuple { public: std::string scUID; TransferSyntaxList tsRefs; TransferSyntaxList tsUIDs; inline SOPClassTuple() { } inline SOPClassTuple(const std::string& scUID) { this->scUID = scUID; } inline SOPClassTuple(const SOPClassTuple& o) { *this = o; } inline SOPClassTuple& operator=(const SOPClassTuple& o) { this->scUID = o.scUID; this->tsRefs = o.tsRefs; this->tsUIDs = o.tsUIDs; return *this; } }; //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- class EXTAPI ArrayHelper { public: ArrayHelper(); ArrayHelper(const std::list& list); ArrayHelper(const ArrayHelper& o); ArrayHelper& operator=(const ArrayHelper& o); ArrayHelper& operator=(const std::list& list); ~ArrayHelper(); void copyFrom(const std::list& list); void free(); void swap(ArrayHelper& other); const char** array; unsigned int size; }; typedef std::map SOPClassMapImpl; class EXTAPI SOPClassMap : public SOPClassMapImpl { public: void AddSOPClass(const std::string& scRef, const std::string& scUID); void AddTransferSyntaxForSOP(const std::string& scRef, const std::string& tsRef); const std::string& GetSOPClassUID(const std::string& scRef) const; /** Gets the transfer syntax names list (refs) supported by this SOP Class **/ const TransferSyntaxList& GetSupportedTransferSyntaxRefs(const std::string& scRef) const; /** Gets the transfer syntax oid list supported by this SOP Class **/ const TransferSyntaxList& GetSupportedTransferSyntaxUIDs(const std::string& scRef) const; }; //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- class EXTAPI ModalityTuple { public: std::string descr; SOPClassList scRefs; SOPClassList scUIDs; inline ModalityTuple() { } inline ModalityTuple(const std::string& descr) { this->descr = descr; } inline ModalityTuple(const ModalityTuple& o) { *this = o; } inline ModalityTuple& operator=(const ModalityTuple& o) { this->descr = o.descr; this->scRefs = o.scRefs; this->scUIDs = o.scUIDs; return *this; } }; //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- typedef std::map ModalityMapImpl; class EXTAPI ModalityMap : public ModalityMapImpl { public: void AddModality(const std::string& mRef, const std::string& desr); void AddSOPClassForModality(const std::string& mRef, const std::string& scRef); const std::string& GetDescription(const std::string& mRef) const; /** Gets the SOP Classes names (refs) list supported by this Modality **/ const SOPClassList& GetSupportedSOPClassRefs(const std::string& mRef) const; /** Gets the SOP Classes oid list supported by this Modality **/ const SOPClassList& GetSupportedSOPClassUIDs(const std::string& mRef) const; }; //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- class EXTAPI Conformance { public: static void Load(); static const GIL::DICOM::TransferSyntaxMap& GetTransferSyntaxes(); static const GIL::DICOM::SOPClassMap& GetStorageSOPClasses(); static const GIL::DICOM::SOPClassMap& GetScpSOPClasses(); static const GIL::DICOM::SOPClassMap& GetScuSOPClasses(); static const GIL::DICOM::ModalityMap& GetModalities(); private: static GIL::DICOM::TransferSyntaxMap m_TransferSyntaxes; static GIL::DICOM::SOPClassMap m_StorageSOPClasses; static GIL::DICOM::SOPClassMap m_ScpSOPClasses; static GIL::DICOM::SOPClassMap m_ScuSOPClasses; static GIL::DICOM::ModalityMap m_Modalities; static bool m_Loaded; }; } } ginkgocadx-3.8.7/cadxcore/api/dicom/idicomizador.h000066400000000000000000000116001314736454600221440ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include namespace GIL { namespace DICOM { typedef enum TDICOMOutputFormat { TDOF_AUTO, //vlp for img formats and sc for sc TDOF_FOO, TDOF_VLP, TDOF_SC, TDOF_NSC, TDOF_SR } TDICOMOutputFormat; class EXTAPI IDICOMImg2DCM { public: /* Inicializa una conversin. IInspectCallback sirve para especificar un callback mediante el cual se pueden inspeccionar los atributos buscados. * * Formatos de entrada soportados: * JPEG * Formatos de salida soportados (DICOM SOP a generar): * VLP (Visible Light Photography) * SC (Secondary Capture) * NSC (New Secondary Capture) */ typedef struct TImageFile { void* pixelData; int width; int heigth; int samplesPerPixel; std::string photometricInterpretation; int bitsAllocated; int bitsStored; int highBit; int pixelRepr; int planarConf; int pixAspectH; int pixAspectV; bool recompress; //configuration for rgbFiles uncompressed... TImageFile(void* pixelData, const int with, const int heigth) { Init(pixelData, with, heigth, 3, "RGB", 8, 8, 7, 0, 0, 1, 1, true); } TImageFile(void* pixelData, const int width, const int heigth, const int samplesPerPixel, const std::string& photometricInterpretation, const int bitsAllocated, const int bitsStored, const int highBit, const int pixelRepr, const int planarConf, const int pixAspectH, const int pixAspectV, const bool recompress) { Init(pixelData, width, heigth, samplesPerPixel, photometricInterpretation, bitsAllocated, bitsStored, highBit, pixelRepr,planarConf, pixAspectH, pixAspectV, recompress); } void Init(void* pixelData, const int width, const int heigth, const int samplesPerPixel, const std::string& photometricInterpretation, const int bitsAllocated, const int bitsStored, const int highBit, const int pixelRepr, const int planarConf, const int pixAspectH, const int pixAspectV, const bool recompress) { this->pixelData = pixelData; this->width = width; this->heigth = heigth; this->samplesPerPixel = samplesPerPixel; this->photometricInterpretation = photometricInterpretation; this->bitsAllocated = bitsAllocated; this->bitsStored = bitsStored; this->highBit = highBit; this->pixelRepr = pixelRepr; this->planarConf = planarConf; this->pixAspectH = pixAspectH; this->pixAspectV = pixAspectV; this->recompress = recompress; } } TImageFile; virtual ~IDICOMImg2DCM() {} virtual void Inicializar(TImageFile& fileDefinition, IInspectCallBack* pICallback = NULL, bool debug = false, TDICOMOutputFormat outputFormat = TDOF_VLP) = 0; virtual void Inicializar(std::string& inputFile, IInspectCallBack* pICallback = NULL, bool debug = false, TDICOMOutputFormat outputFormat = TDOF_AUTO)=0; virtual int InsertarJerarquia(DicomDataset& base)=0; virtual int InsertarTagsPrivados(TipoPrivateTags& base) = 0; /* Actualiza los campos DICOM a sobreescribir */ virtual void ActualizarCampos(IInspectCallBack* pICallback)=0; /* Realiza una conversin ya inicializada */ virtual bool Convertir(std::string& outputFile)=0; virtual bool CrearSRDoc(std::string& outputFile, DicomDataset& base, std::list >& tagsPrivados) = 0; /* Resetea el estado interno */ virtual void Reset()=0; }; } } ginkgocadx-3.8.7/cadxcore/api/dicom/idicommanager.h000066400000000000000000000067631314736454600223040ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GIL { namespace DICOM { class DicomDataset; class TagPrivadoUndefined; class TipoMetaInfo; class TipoPrivateTags; } } namespace GIL { namespace DICOM { class IInspectCallBack { public: virtual ~IInspectCallBack() {} virtual void ObtenerJerarquiaInserccion(DicomDataset& /*lista*/) { } virtual void Inspect(std::string& clave, std::string& desc, std::string& valor) = 0; virtual void Done() = 0; }; class IDICOMManager { public: virtual ~IDICOMManager() {} /*Almacena la jerarquia cargada en un fichero*/ virtual bool AlmacenarFichero(const std::string& inputFile, IInspectCallBack* pICallback = NULL, bool debug = false)=0; /*Actualiza la jerarquia cargada*/ virtual int ActualizarJerarquia(DicomDataset& base)=0; /*actualiza los tags privados*/ virtual int ActualizarTagsPrivados(TipoPrivateTags& tags)=0; /*anonimiza los tags privados*/ virtual void AnonimizarTagsPrivados() = 0; /*carga los tags privados*/ virtual int CargarTagsPrivados(GIL::DICOM::TipoPrivateTags& tags)=0; /*carga la MetaInfo*/ virtual int CargarMetaInfo(const std::string& inputFile, GIL::DICOM::TipoMetaInfo& tags)=0; /* Obtiene la jerarquia de campos DICOM del fichero */ virtual bool CargarFichero(const std::string& inputFile, GIL::DICOM::DicomDataset& jerarquia, bool cargarSoloTagsInfo = true, IInspectCallBack* pICallback = NULL)=0; /*Carga el fichero y responde a primitivas get tag, util para pillar tags especificos sin cargar toda la jerarquia*/ virtual bool CargarFichero(const std::string& inputFile, bool cargarSoloTagsInfo = true)=0; virtual bool GetTag(unsigned int grupo,unsigned int elemento, std::string & valor)=0; virtual bool GetTag(unsigned int grupo,unsigned int elemento, TagPrivadoUndefined& tagBinario)=0; virtual bool GetTag(unsigned int grupo,unsigned int elemento, float& valor) = 0; virtual bool GetTag(unsigned int grupo,unsigned int elemento, int& valor) = 0; virtual bool GetTag(unsigned int grupo,unsigned int elemento, GIL::DICOM::DicomDataset& secuencia) = 0; virtual bool FindTag(unsigned int grupo,unsigned int elemento, TagPrivadoUndefined& tagBinario)=0; virtual bool FindTag(unsigned int grupo, unsigned int elemento, std::vector& binaryTags) = 0; /* returns the oid name or empty string if not found */ virtual std::string GetOIDName(const std::string &oid) = 0; /* devuelve la descripcion de este tag*/ virtual std::string GetDescription(const std::string &clave) const = 0; virtual std::string GetNewUID() = 0; }; } } ginkgocadx-3.8.7/cadxcore/api/dicom/imodelodicom.h000066400000000000000000000623061314736454600221440ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include class IModeloDicom; class IModeloEstudio; class IModeloSerie; class IModeloPaciente; namespace GIL { namespace DICOM { class EXTAPI ModelException : public GNC::GCS::IException { public: ModelException(const std::string& msg, const std::string& componente="GIL/DICOM/Model", bool fatal = true) : GNC::GCS::IException(msg, componente, fatal) { this->cause = msg; this->component = componente; this->fatal = fatal; } ~ModelException() throw() { } const std::string& GetComponent() const { return component; } const std::string& GetCause() const { return cause; } std::string GetFullCause() const { return *this; } bool IsFatal() const { return fatal; } operator std::string () const { return std::string("Excepcion en componente ") + GetComponent() + std::string(": ") + GetCause(); } friend std::ostream& operator<<(std::ostream& out, const ModelException& ex) { out << (const std::string&) ex; return out; } friend std::ostream& operator<<(std::ostream& out, const ModelException* ex) { if (ex != NULL) { out << *ex; } else { out << "(NULL)"; } return out; } protected: std::string cause; std::string component; bool fatal; }; } } class IModeloImagen { public: IModeloImagen() { m_pSeriePadre = NULL; m_pModeloPadre = NULL; } IModeloImagen(IModeloDicom* pModeloPadre, IModeloSerie* pSeriePadre, const std::string& UID, const std::string& instanceNumber, const std::string& pathImagen = "") { m_pSeriePadre = pSeriePadre; m_pModeloPadre = pModeloPadre; m_UID = UID; m_pathImagen = pathImagen; m_instanceNumber = instanceNumber; } IModeloImagen( const IModeloImagen& o) { m_pSeriePadre = o.m_pSeriePadre; m_pModeloPadre = o.m_pModeloPadre; m_UID = o.m_UID; m_pathImagen = o.m_pathImagen; m_instanceNumber = o.m_instanceNumber; } IModeloImagen& operator = (const IModeloImagen& o) { m_pSeriePadre = o.m_pSeriePadre; m_pModeloPadre = o.m_pModeloPadre; m_UID = o.m_UID; m_pathImagen = o.m_pathImagen; m_instanceNumber = o.m_instanceNumber; return *this; } ~IModeloImagen() { } const std::string& GetUID() const { return m_UID; } const std::string& GetPathImagen() const { return m_pathImagen; } const std::string& GetInstanceNumber() const { return m_instanceNumber; } protected: IModeloSerie* m_pSeriePadre; IModeloDicom* m_pModeloPadre; std::string m_UID; std::string m_pathImagen; std::string m_instanceNumber; friend class IModeloDicom; }; class IModeloSerie { public: typedef std::list ListaImagenesType; IModeloSerie() { m_pEstudioPadre = NULL; m_pModeloPadre = NULL; } IModeloSerie(const IModeloSerie& o) { m_pEstudioPadre = o.m_pEstudioPadre; m_pModeloPadre = o.m_pModeloPadre; m_UID = o.m_UID; m_Tipo = o.m_Tipo; m_Numero = o.m_Numero; m_Fecha = o.m_Fecha; m_Hora = o.m_Hora; m_Descripcion = o.m_Descripcion; m_Doctor = o.m_Doctor; } IModeloSerie(IModeloDicom* pModeloPadre, IModeloEstudio* pEstudioPadre, const std::string& UID, const std::string& tipo, const std::string& fecha, const std::string& hora, const std::string& descripcion, const std::string& numero, const std::string& doctor) { m_pEstudioPadre = pEstudioPadre; m_pModeloPadre = pModeloPadre; m_UID = UID; m_Tipo = tipo; m_Numero = numero; m_Fecha = fecha; m_Hora = hora; m_Descripcion = descripcion; m_Doctor = doctor; } IModeloSerie& operator=(const IModeloSerie& o) { m_pEstudioPadre = o.m_pEstudioPadre; m_pModeloPadre = o.m_pModeloPadre; m_UID = o.m_UID; m_Tipo = o.m_Tipo; m_Numero = o.m_Numero; m_Fecha = o.m_Fecha; m_Hora = o.m_Hora; m_Descripcion = o.m_Descripcion; m_Doctor = o.m_Doctor; return *this; } ~IModeloSerie() { } const std::string& GetUID() const { return m_UID; } const std::string& GetTipo() const { return m_Tipo; } const std::string& GetNumero() const { return m_Numero; } const std::string& GetFecha() const { return m_Fecha; } const std::string& GetHora() const { return m_Hora; } const std::string& GetDescripcion() const { return m_Descripcion; } const std::string& GetDoctor() const { return m_Doctor; } const ListaImagenesType& ListaImagenes() const { return Imagenes; } const IModeloImagen& Imagen(int indice) const { int i=0; ListaImagenesType::const_iterator it; for(it = Imagenes.begin(); i < indice && it != Imagenes.end(); ++it, i++); if(it != Imagenes.end()) { return (*it); } else { return Imagenes.front(); } } const IModeloEstudio* GetStudy() const { return m_pEstudioPadre; } protected: std::string m_UID; std::string m_Tipo; std::string m_Numero; std::string m_Fecha; std::string m_Hora; std::string m_Descripcion; std::string m_Doctor; IModeloEstudio* m_pEstudioPadre; IModeloDicom* m_pModeloPadre; ListaImagenesType Imagenes; friend class IModeloDicom; }; class IModeloEstudio { public: typedef std::list ListaSeriesType; IModeloEstudio() { m_pModeloPadre = NULL; m_pPacientePadre = NULL; } IModeloEstudio( const IModeloEstudio& o ) { m_pModeloPadre = o.m_pModeloPadre; m_pPacientePadre = o.m_pPacientePadre; m_UID = o.m_UID; m_AccNumber = o.m_AccNumber; m_Descripcion = o.m_Descripcion; m_Modalidad = o.m_Modalidad; m_Fecha = o.m_Fecha; m_Hora = o.m_Hora; m_Doctor = o.m_Doctor; } IModeloEstudio( IModeloDicom* pModeloPadre, IModeloPaciente* pPacientePadre, const std::string& UID, const std::string& AccNumber, const std::string& descripcion, const std::string& modalidad, const std::string& fecha, const std::string& hora, const std::string& doctor) { m_pModeloPadre = pModeloPadre; m_pPacientePadre = pPacientePadre; m_UID = UID; m_AccNumber = AccNumber; m_Descripcion = descripcion; m_Modalidad = modalidad; m_Fecha = fecha; m_Hora = hora; m_Doctor = doctor; } IModeloEstudio& operator=(const IModeloEstudio& o) { m_UID = o.m_UID; m_AccNumber = o.m_AccNumber; m_Descripcion = o.m_Descripcion; m_Modalidad = o.m_Modalidad; m_Fecha = o.m_Fecha; m_Hora = o.m_Hora; m_Doctor = o.m_Doctor; return *this; } ~IModeloEstudio() { } const std::string& GetUID() const { return m_UID; } const std::string& GetAccNumber() const { return m_AccNumber; } const std::string& GetDescripcion() const { return m_Descripcion; } const std::string& GetModalidad() const { return m_Modalidad; } const std::string& GetFecha() const { return m_Fecha; } const std::string& GetHora() const { return m_Hora; } const std::string& GetDoctor() const { return m_Doctor; } const ListaSeriesType& ListaSeries() const { return Series; } const IModeloSerie& Serie(int indice) const { int i=0; ListaSeriesType::const_iterator it; for(it = Series.begin(); i ListaEstudiosType; IModeloPaciente() { m_pModeloPadre = NULL; } IModeloPaciente( const IModeloPaciente& o ) { m_pModeloPadre = o.m_pModeloPadre; m_UID = o .m_UID; m_Nombre = o.m_Nombre; m_FechaNacimiento = o.m_FechaNacimiento; m_Sexo = o.m_Sexo; } IModeloPaciente( IModeloDicom* pModeloPadre, const std::string& UID, const std::string& nombre, const std::string& fechaNacimiento, const std::string& sexo) { m_pModeloPadre = pModeloPadre; m_UID = UID; m_Nombre = nombre; m_FechaNacimiento = fechaNacimiento; m_Sexo = sexo; } IModeloPaciente& operator=(const IModeloPaciente& o) { m_pModeloPadre = o.m_pModeloPadre; m_UID = o .m_UID; m_Nombre = o.m_Nombre; m_FechaNacimiento = o.m_FechaNacimiento; m_Sexo = o.m_Sexo; return *this; } ~IModeloPaciente() { } const std::string& GetUID() const { return m_UID; } const std::string& GetNombre() const { return m_Nombre; } const std::string& GetFechaNacimiento() const { return m_FechaNacimiento; } const std::string& GetSexo() const { return m_Sexo; } const ListaEstudiosType& ListaEstudios() const { return Estudios; } const IModeloEstudio& Estudio(int indice) const { int i=0; ListaEstudiosType::const_iterator it; for(it = Estudios.begin(); i ListaPacientesType; typedef std::list ListaPunterosEstudiosType; typedef std::list ListaPunterosSeriesType; typedef std::list ListaPunterosImagenesType; IModeloDicom() { Error = false; } ~IModeloDicom() { } const ListaPacientesType& ListaPacientes() const { return Pacientes; } const IModeloPaciente& Paciente(int indice) const { int i=0; ListaPacientesType::const_iterator it; for(it = Pacientes.begin(); i 0); } // endregion // region operaciones de busqueda internas private: // Esta operacion es interna porque devuelve como resultado un puntero a constante, para no modificar/destruir el registro de paciente. void BuscarPacienteInternal(const std::string& UID, IModeloPaciente ** result) { for (ListaPacientesType::iterator it = Pacientes.begin(); *result == NULL && it != Pacientes.end(); ++it) { IModeloPaciente& pi = *it; if (pi.GetUID() == UID) { *result = &(*it); } } } // Esta operacion es interna porque devuelve como resultado un puntero a constante, para no modificar/destruir el registro de estudio. void BuscarEstudioInternal(const std::string& UID, IModeloEstudio ** result) { for (ListaPunterosEstudiosType::iterator it = ListaPunterosEstudios.begin(); *result == NULL && it != ListaPunterosEstudios.end(); ++it) { IModeloEstudio* pi = *it; if (pi->GetUID() == UID) { *result = (*it); } } } // Esta operacion es interna porque devuelve como resultado un puntero a constante, para no modificar/destruir el registro de serie. void BuscarSerieInternal(const std::string& UID, IModeloSerie ** result) { for (ListaPunterosSeriesType::iterator it = ListaPunterosSeries.begin(); *result == NULL && it != ListaPunterosSeries.end(); ++it) { IModeloSerie* pi = *it; if (pi->GetUID() == UID) { *result = (*it); } } } // Esta operacion es interna porque devuelve como resultado un puntero a constante, para no modificar/destruir el registro de imagen. void BuscarImagenInternal(const std::string& UID, IModeloImagen ** result) { for (ListaPunterosImagenesType::iterator it = ListaPunterosImagenes.begin(); *result == NULL && it != ListaPunterosImagenes.end(); ++it) { IModeloImagen* pi = *it; if (pi->GetUID() == UID) { *result = (*it); } } } // endregion // operaciones de inserccion public: const IModeloPaciente& InsertarPaciente(const std::string& UID, const std::string& nombre, const std::string& fechaNacimiento, const std::string& sexo) { const IModeloPaciente* paciente = NULL; BuscarPaciente(UID, &paciente); if (paciente == NULL) { Pacientes.push_back(IModeloPaciente( this, UID, nombre, fechaNacimiento, sexo)); paciente = &Pacientes.back(); } return *paciente; } const IModeloEstudio& InsertarEstudio(const std::string& UIDPaciente, const std::string& UID, const std::string& AccNumber, const std::string& descripcion, const std::string& modalidad, const std::string& fecha, const std::string& hora, const std::string& doctor) { IModeloEstudio* estudio = NULL; BuscarEstudioInternal(UID, &estudio); if (estudio == NULL) { IModeloPaciente* paciente = NULL; BuscarPacienteInternal(UIDPaciente, &paciente); if (paciente != NULL) { paciente->Estudios.push_back(IModeloEstudio( this, paciente, UID, AccNumber, descripcion, modalidad, fecha, hora, doctor)); estudio = & (paciente->Estudios.back()); ListaPunterosEstudios.push_back(estudio); } else { // El estudio no esta asociado a un paciente existente. throw GIL::DICOM::ModelException(_Std("Logical error: Study not associated with existent patient in model")); } } return *estudio; } const IModeloSerie& InsertarSerie(const std::string& UIDEstudio, const std::string& UID, const std::string& tipo, const std::string& fecha, const std::string& hora, const std::string& descripcion, const std::string& numero, const std::string& doctor) { IModeloSerie* serie = NULL; BuscarSerieInternal(UID, &serie); if (serie == NULL) { IModeloEstudio* estudio = NULL; BuscarEstudioInternal(UIDEstudio, &estudio); if (estudio != NULL) { estudio->Series.push_back(IModeloSerie( this, estudio, UID, tipo, fecha, hora, descripcion, numero,doctor)); serie = & (estudio->Series.back()); ListaPunterosSeries.push_back(serie); } else { // La Serie no esta asociada a un estudio existente. throw GIL::DICOM::ModelException(_Std("Logical error: Serie not associated with existent study in model")); } } return *serie; } const IModeloImagen& InsertarImagen(const std::string& UIDSerie, const std::string& UID, const std::string& instanceNumber, const std::string& pathImagen = "") { IModeloImagen* imagen = NULL; BuscarImagenInternal(UID, &imagen); if (imagen == NULL) { IModeloSerie* serie = NULL; BuscarSerieInternal(UIDSerie, &serie); if (serie != NULL) { serie->Imagenes.push_back(IModeloImagen( this, serie, UID, instanceNumber, pathImagen)); imagen = & (serie->Imagenes.back()); ListaPunterosImagenes.push_back(imagen); } else { // La Imagen no esta asociada a una serie existente. throw GIL::DICOM::ModelException(_Std("Logical error: Image not associated with existent serie in model")); } } return *imagen; } friend std::ostream& operator<<(std::ostream& out, const IModeloDicom& d) { for (IModeloDicom::ListaPacientesType::const_iterator it = d.Pacientes.begin(); it != d.Pacientes.end(); ++it) { const IModeloPaciente& p = *it; out << "P: " << p.GetUID().c_str() << " [ " << p.GetNombre().c_str() << std::endl; for (IModeloPaciente::ListaEstudiosType::const_iterator ite = p.ListaEstudios().begin(); ite != p.ListaEstudios().end(); ite++) { const IModeloEstudio& e = *ite; out << "\tE: " << e.GetUID().c_str() << ", " << e.GetDescripcion().c_str() << std::endl; for (IModeloEstudio::ListaSeriesType::const_iterator its = e.ListaSeries().begin(); its != e.ListaSeries().end(); its++) { const IModeloSerie& s = *its; out << "\t\tS: " << s.GetUID().c_str() << ", " << s.GetTipo().c_str() << ", " << s.GetDescripcion().c_str() << std::endl; for (IModeloSerie::ListaImagenesType::const_iterator iti = s.ListaImagenes().begin(); iti != s.ListaImagenes().end(); iti++) { const IModeloImagen& i = *iti; out << "\t\t\t" << "I: " << i.GetUID().c_str() << std::endl; } } } } return out; } friend std::ostream& operator<<(std::ostream& out, IModeloDicom* const d) { if (d != NULL) { out << *d; } else { out << "[ NULL ]"; } return out; } const ListaPunterosImagenesType Imagenes() const { return ListaPunterosImagenes; } public: bool Error; protected: ListaPacientesType Pacientes; ListaPunterosEstudiosType ListaPunterosEstudios; ListaPunterosSeriesType ListaPunterosSeries; ListaPunterosImagenesType ListaPunterosImagenes; }; ginkgocadx-3.8.7/cadxcore/api/doxmainpage.h000066400000000000000000000036771314736454600207070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifndef DOXMAINPAGE_H #define DOXMAINPAGE_H /** @mainpage Ginkgo CADx 3.0.0 Ginkgo CADx is an extensible multi-platform Open Source Medical Imaging software which provides a complete DICOM Viewer solution with advanced capabilities. Extensions are both free or commercial plugins that allows you to expand the capabilities of Ginkgo CADx for your personal needs and provide advanced features such as image analytics based auto-diagnosis. Everyone can create their own extensions!. Key Classes:\n GNC::GCS::ICommand\n GNC::GCS::IView\n @ref whatsnew\n @ref basics\n @ref visualization\n @ref coordinates\n @ref integration\n @ref extending\n @section whatsnew What's new in Ginkgo CADx 3.0.0? For comprehensive list of changes and new features, please see the changelog. @section basics Understanding Ginkgo CADx framework As seen here, Ginkgo CADx application is constructed: @code #include ... @endcode @section visualization The visualization system ... @section coordinates The coordinates system ... @section integration Integration ... @section extending Extending Ginkgo CADx ... **/ #endif ginkgocadx-3.8.7/cadxcore/api/globals.h000066400000000000000000000032731314736454600200260ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #if 0 #if defined (_GINKGO_DEBUG) #include #if defined(_WINDOWS) #define _WINSOCKAPI_ #include #endif #define GDEBUG(expr) std::cout << "D: " << expr << " @ " << __FILE__ << ":" << __LINE__ << std::endl; #else // !defined (_GINKGO_DEBUG) #define GDEBUG(expr) /* nada */ #endif #if defined (_GINKGO_TRACE) #define GTRACE(expr) std::cout << "T: " << expr << " @ " << __FILE__ << ":" << __LINE__ << std::endl; #else // !defined (_GINKGO_DEBUG) #define GTRACE(expr) /* nada */ #endif #else #define GTRACE(expr) /* nada */ #endif #if defined(__WXGTK__) || defined(__WXMAC__) || defined(__WXMSW__) #if defined (_WIN32) #define TOPATH(stringwx) std::string((stringwx.To8BitData().data()==NULL)?"":stringwx.To8BitData()) #define FROMPATH(stringstd) wxString::From8BitData(stringstd.c_str()) #else #define TOPATH(stringwx) std::string(stringwx.ToUTF8()) #define FROMPATH(stringstd) wxString::FromUTF8(stringstd.c_str()) #endif #endif ginkgocadx-3.8.7/cadxcore/api/helpers/000077500000000000000000000000001314736454600176675ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/helpers/aetwildcards.cpp000066400000000000000000000200021314736454600230330ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "aetwildcards.h" #include #include #include #include #include #include #include #if defined(_WINDOWS) #include #include #else #include #include #include #include #include #endif using std::string; std::string GNC::GCS::AETWildcards::Parse(const std::string& AET) { std::string realAET = AET; std::string ip4[4]; if ( (AET.find("%IP") != std::string::npos) || (AET.find("%HOSTNAME") != std::string::npos) || (AET.find("%hostname") != std::string::npos)) { char bufHostName[256]; string bufIP4; std::memset(bufHostName, 0, 256 * sizeof(char)); #if defined(_WINDOWS) if ( gethostname(bufHostName, 256) != 0) { unsigned long error = WSAGetLastError(); std::cout << "gethostname() Error: " << error << std::endl; } #else int ret = 0; if ( (ret = gethostname(bufHostName, 256)) != 0) { std::cout << "gethostname() Error: " << ret << std::endl; } #endif else { struct addrinfo* l_addrInfo = NULL; struct addrinfo l_addrInfoHints; std::memset(&l_addrInfoHints, 0, sizeof(addrinfo)); l_addrInfoHints.ai_socktype = SOCK_STREAM; l_addrInfoHints.ai_family = PF_INET; #if defined(_WINDOWS) if ( getaddrinfo(bufHostName, NULL, &l_addrInfoHints, &l_addrInfo) != 0 ) { unsigned long error = WSAGetLastError(); std::cout << "getaddrinfo() Error: " << error << std::endl; } #else if ( (ret = getaddrinfo(bufHostName, NULL, &l_addrInfoHints, &l_addrInfo)) != 0 ) { std::cout << "getaddrinfo() Error: " << ret << std::endl; } #endif else { struct sockaddr_in* sockaddr_ipv4 = (struct sockaddr_in *) l_addrInfo->ai_addr; const char* ip = inet_ntoa(sockaddr_ipv4->sin_addr); bufIP4 = string(ip); unsigned long* sAddr = (unsigned long*) &sockaddr_ipv4->sin_addr.s_addr; { std::stringstream ss; ss << std::setw(3) << std::setfill('0'); ss << (int) ( ( (*sAddr) & 0xFF000000) >> 24); ip4[3] = ss.str(); } { std::stringstream ss; ss << std::setw(3) << std::setfill('0'); ss << (int) ( ( (*sAddr) & 0x00FF0000) >> 16); ip4[2] = ss.str(); } { std::stringstream ss; ss << std::setw(3) << std::setfill('0'); ss << (int) ( ( (*sAddr) & 0x0000FF00) >> 8); ip4[1] = ss.str(); } { std::stringstream ss; ss << std::setw(3) << std::setfill('0'); ss << (int) ( ( (*sAddr) & 0x000000FF) ); ip4[0] = ss.str(); } freeaddrinfo(l_addrInfo); } } bool changed = true; while(changed) { std::string::size_type it0; it0 = realAET.find("%IP1"); if (it0 != std::string::npos) { realAET = realAET.replace(it0, 4, ip4[0] ); } else { it0 = realAET.find("%IP2"); if (it0 != std::string::npos) { realAET = realAET.replace(it0, 4, ip4[1] ); } else { it0 = realAET.find("%IP3"); if (it0 != std::string::npos) { realAET = realAET.replace(it0, 4, ip4[2] ); } else { it0 = realAET.find("%IP4"); if (it0 != std::string::npos) { realAET = realAET.replace(it0, 4, ip4[3] ); } else { it0 = realAET.find("%IP"); if (it0 != std::string::npos) { realAET = realAET.replace(it0, 3, bufIP4.c_str() ); } else { it0 = realAET.find("%HOSTNAME"); if (it0 != std::string::npos) { std::string hostName = bufHostName; std::transform(hostName.begin(), hostName.end(), hostName.begin(), ::toupper); realAET = realAET.replace(it0, 9, hostName.c_str() ); } else { it0 = realAET.find("%hostname"); if (it0 != std::string::npos) { std::string hostName = bufHostName; std::transform(hostName.begin(), hostName.end(), hostName.begin(), ::tolower); realAET = realAET.replace(it0, 9, hostName.c_str() ); } else { changed = false; } } } } } } } } } return realAET; } ginkgocadx-3.8.7/cadxcore/api/helpers/aetwildcards.h000066400000000000000000000016471314736454600225160ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { namespace GCS { class EXTAPI AETWildcards { public: static std::string Parse(const std::string& AET); }; } } ginkgocadx-3.8.7/cadxcore/api/helpers/helpertexto.cpp000066400000000000000000000303151314736454600227400ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include #include #include #include "helpertexto.h" GNC::GCS::Widgets::HelperTexto::TVector GNC::GCS::Widgets::HelperTexto::calcularBoundingBox(TContexto* c, const std::string& texto, bool withShadow, float anchoMaximo, TAlineamiento alineamiento) { return procesarTexto(c->cr, texto, NULL, withShadow, anchoMaximo, alineamiento, false); } GNC::GCS::Widgets::HelperTexto::TVector GNC::GCS::Widgets::HelperTexto::dibujarTexto(TContexto* c, const std::string& texto, bool withShadow, float anchoMaximo, TAlineamiento alineamiento) { return procesarTexto(c->cr, texto, NULL, withShadow, anchoMaximo, alineamiento, true); } GNC::GCS::Widgets::HelperTexto::TVector GNC::GCS::Widgets::HelperTexto::dibujarTexto(TContexto* c, const std::string& texto, const TColor& col, bool withShadow, float anchoMaximo, TAlineamiento alineamiento) { return procesarTexto(c->cr, texto, &col, withShadow, anchoMaximo, alineamiento, true); } class Palabra { public: Palabra() { } Palabra(const Palabra& o) { *this = o; } Palabra(const std::string& texto, GNC::GCS::Vector size) { this->texto = texto; this->psize = size; } Palabra& operator = (const Palabra& o) { this->texto = o.texto; this->psize = o.psize; return *this; } std::string texto; GNC::GCS::Vector psize; }; class Linea : public std::list { public: typedef std::list Base; Linea() { } Linea(GNC::GCS::Vector size) { lsize = size; } void Insertar(const Palabra& palabra) { if (size() == 0) { lsize.AsignarMaximos(palabra.psize); } else { lsize.x += palabra.psize.x; lsize.y = std::max(lsize.y, palabra.psize.y); } push_back(palabra); } double NumPalabrasD() const { return (double) size(); } unsigned long NumPalabras() const { return size(); } GNC::GCS::Vector lsize; }; class Parrafo : public std::list { public: typedef std::list Base; typedef GNC::GCS::Widgets::HelperTexto::TAlineamiento TAlineamiento; Parrafo(_cairo* cr, double anchoMaximo, const GNC::GCS::Widgets::Color* c, bool withShadow, TAlineamiento alineamiento = GNC::GCS::Widgets::HelperTexto::TA_Izquierda, double margen_horizontal = 2.0f, double margen_vertical = 2.0f) { this->cr = cr; this->margen.Asignar(margen_horizontal, margen_vertical); this->anchoMaximo = anchoMaximo - margen.x - margen.x; this->alineamiento = alineamiento; this->color = c; this->drawShadow = withShadow; cairo_font_extents(cr, &font_extents); cairo_text_extents(cr, "i", &espacio_extents); InsertarNuevaLinea(); } void InsertarPalabra(const std::string& palabra) { cairo_text_extents_t text_extents; cairo_text_extents(cr, palabra.c_str(), &text_extents); GNC::GCS::Vector psize (text_extents.x_advance - text_extents.x_bearing, text_extents.y_advance - text_extents.y_bearing); Palabra p(palabra, psize); Linea& la = LineaActual(); if ( Cabe(p, la) ) { la.Insertar(p); } else { InsertarNuevaLinea(); la.Insertar(p); } } void InsertarNuevaLinea() { push_back(Linea(GNC::GCS::Vector(0, std::ceil(font_extents.height) + 3.0f))); } void InsertarTab() { } Linea& LineaActual() { return back(); } inline double AnchoDeEspacios(const Linea& l) { return std::max(l.NumPalabrasD() - 1.0f, (double)0.0f) * espacio_extents.x_advance; } bool Cabe(Palabra& p, Linea& l) const { bool cabe = false; if (anchoMaximo > 0) { // El ancho de la linea actual es el ancho de las palabras mas el ancho de los espacios entre sus palabras. const double anchoLineaActual = l.lsize.x + ( std::max(l.NumPalabrasD(), (double)0.0f) * espacio_extents.x_advance); if ( anchoMaximo > (anchoLineaActual + p.psize.x) ) { cabe = true; } } else { cabe = true; } return cabe; } GNC::GCS::Vector Procesar(bool dibujar = true) { GNC::GCS::Vector bbox; for (Base::iterator it = begin(); it != end(); ++it) { const Linea& l = (*it); bbox.x = std::max(bbox.x, l.lsize.x + AnchoDeEspacios(l)); bbox.y += std::ceil(font_extents.height) + 2.0f; } bbox += (margen + margen); if (dibujar) { // Posicion inicial GNC::GCS::Vector pos = margen + GNC::GCS::Vector(0.0f, std::ceil(font_extents.height)); for (Base::iterator itl = begin(); itl != end(); ++itl) { const Linea& l = (*itl); DibujarLinea(l, bbox, pos); pos.y += (std::ceil(font_extents.height) + 2.0f); } } return bbox; } inline void DibujarLinea(const Linea& l, const GNC::GCS::Vector& bbox, const GNC::GCS::Vector& posInicial) { GNC::GCS::Vector pos(posInicial); switch(alineamiento) { default: case GNC::GCS::Widgets::HelperTexto::TA_Izquierda: { for (Linea::const_iterator it = l.begin(); it != l.end(); ++it) { const Palabra& p = (*it); DibujarPalabra(p, pos); pos.x += (p.psize.x + espacio_extents.x_advance); } } break; case GNC::GCS::Widgets::HelperTexto::TA_Derecha: { pos.x += bbox.x - (margen.x + margen.x + l.lsize.x + AnchoDeEspacios(l)); for (Linea::const_iterator it = l.begin(); it != l.end(); ++it) { const Palabra& p = (*it); DibujarPalabra(p, pos); pos.x += (p.psize.x + espacio_extents.x_advance); } } break; case GNC::GCS::Widgets::HelperTexto::TA_Centrado: { pos.x += ( bbox.x - (margen.x + margen.x + l.lsize.x + AnchoDeEspacios(l)) ) / 2.0f; for (Linea::const_iterator it = l.begin(); it != l.end(); ++it) { const Palabra& p = (*it); DibujarPalabra(p, pos); pos.x += (p.psize.x + espacio_extents.x_advance); } } break; case GNC::GCS::Widgets::HelperTexto::TA_Justificado: { double resto = ( bbox.x - (margen.x + margen.x + l.lsize.x + AnchoDeEspacios(l)) ); resto = resto / std::max( (double)1.0f, l.NumPalabrasD() - 1.0f); for (Linea::const_iterator it = l.begin(); it != l.end(); ++it) { const Palabra& p = (*it); DibujarPalabra(p, pos); pos.x += (p.psize.x + espacio_extents.x_advance + resto); } } break; } } inline void DibujarPalabra(const Palabra& p, const GNC::GCS::Vector& pos) { if (p.texto.size() > 0) { if (drawShadow) { cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); cairo_move_to(cr, pos.x + 1.0f, pos.y + 1.0f); cairo_set_source_rgba(cr, DEFAULT_TEXT_COLOR_INVERTED); cairo_show_text(cr, p.texto.c_str()); } else { cairo_set_operator(cr, CAIRO_OPERATOR_OVER); } cairo_move_to(cr, pos.x, pos.y); if (color == NULL) { cairo_set_source_rgba(cr, DEFAULT_TEXT_COLOR); } else { cairo_set_source_rgba(cr, color->RF(), color->GF(), color->BF(), color->AF()); } cairo_show_text(cr, p.texto.c_str()); } } _cairo* cr; double anchoMaximo; TAlineamiento alineamiento; cairo_font_extents_t font_extents; cairo_text_extents_t espacio_extents; GNC::GCS::Vector margen; const GNC::GCS::Widgets::Color* color; bool drawShadow; }; GNC::GCS::Widgets::HelperTexto::TVector GNC::GCS::Widgets::HelperTexto::procesarTexto(_cairo* cr, const std::string& texto, const TColor* c, bool withShadow, float anchoMaximo, TAlineamiento alineamiento, bool dibujar) { Parrafo par(cr, anchoMaximo, c, withShadow, alineamiento, 5.0f, 5.0f); // Parseo del texto caracter a caracter for (std::string::const_iterator it1 = texto.begin(); it1 != texto.end(); ) { std::string palabra; int wl = 0; std::string::const_iterator it2; for (it2 = it1; it2 != texto.end() && *it2 != ' ' && *it2 != '\t' && *it2 != '\r' && *it2 != '\n'; ++it2) { wl++; } if (wl > 0) { palabra = std::string(it1, it2); it1 += wl; par.InsertarPalabra(palabra); } else { int skipped = 0; if (*it2 == ' ') { skipped = 1; } else if (*it2 == '\t') { par.InsertarTab(); skipped = 1; } else if (*it2 == '\n') { par.InsertarNuevaLinea(); skipped = 1; } else if (*it2 == '\r') { par.InsertarNuevaLinea(); if (it2+1 != texto.end() && *(it2+1) == '\n') { skipped = 2; } else { skipped = 1; } } it1 += skipped; } } return par.Procesar(dibujar); } ginkgocadx-3.8.7/cadxcore/api/helpers/helpertexto.h000066400000000000000000000047551314736454600224160ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include //region Forward declarations struct _cairo_surface; struct _cairo; namespace GNC { namespace GCS { class Contexto3D; } } //endregion namespace GNC { namespace GCS { namespace Widgets { class EXTAPI HelperTexto { public: typedef GNC::GCS::Vector TVector; typedef GNC::GCS::Widgets::Color TColor; typedef GNC::GCS::Contexto3D TContexto; typedef enum TAlineamiento { TA_Izquierda, TA_Derecha, TA_Centrado, TA_Justificado } TAlineamiento; /* Calcula el bounding box del texto sobre cairo para la fuente seleccionada. Realiza word-wrapping. */ static TVector calcularBoundingBox(TContexto* c, const std::string& texto, bool withShadow, float anchoMaximo = -1, TAlineamiento alineamiento = TA_Izquierda); /* Dibuja el texto en el contexto con fuente seleccionada. Realiza word-wrapping. */ static TVector dibujarTexto(TContexto* c, const std::string& texto, bool withShadow, float anchoMaximo = -1, TAlineamiento alineamiento = TA_Izquierda); /* Dibuja el texto en el contexto con fuente seleccionada y color especificado. Realiza word-wrapping. */ static TVector dibujarTexto(TContexto* c, const std::string& texto, const TColor& col, bool withShadow, float anchoMaximo = -1, TAlineamiento alineamiento = TA_Izquierda); /* Realiza el procesamiento del texto. Calcular el Bounding Box y opcionalmente pintar */ static TVector procesarTexto(_cairo* cr, const std::string& texto, const TColor* col, bool withShadow, float anchoMaximo = -1, TAlineamiento alineamiento = TA_Izquierda, bool dibujar = true); }; } } } ginkgocadx-3.8.7/cadxcore/api/helpers/prioritylist.h000066400000000000000000000102451314736454600226170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifndef PRIORITYLIST_H #define PRIORITYLIST_H #include #include namespace GNC { namespace GCS { //region "Helpers" // template class priority_list { std::list lst; public: class iterator; friend class iterator; class iterator : public std::iterator< std::bidirectional_iterator_tag,T,ptrdiff_t> { typename std::list* r; typename std::list::iterator it; public: iterator(priority_list& otro) { *this = otro; } iterator(std::list& lst, const typename std::list::iterator& i) : r(&lst), it(i) {} bool operator==(const iterator& x) const { return it == x.it; } bool operator!=(const iterator& x) const { return !(*this == x); } typename std::list::reference operator*() const { return *it; } iterator& operator=(const iterator& otro) { r = otro.r; it = otro.it; return *this; } iterator& operator++() { ++it; return *this; } iterator operator++(int) { iterator tmp = *this; ++*this; return tmp; } iterator& operator--() { --it; return *this; } iterator operator--(int) { iterator tmp = *this; --*this; return tmp; } iterator insert(const T& x) { return iterator(*r, r->insert(it)); } iterator erase() { return iterator(*r, r->erase(it)); } }; void insertar(const T& x) { bool stop = false; for (typename std::list::iterator it1 = lst.begin(); !stop && it1 != lst.end(); it1++) { if ((*it1) > x) { lst.insert(it1, x); stop = true; } } if (!stop) { lst.push_back(x); } } void eliminar(const T& x) { bool stop = false; for (typename std::list::iterator it1 = lst.begin(); !stop && it1 != lst.end(); it1++) { if ((*it1) == x) { lst.erase(it1); stop = true; } } } iterator begin() { return iterator(lst, lst.begin()); } iterator end() { return iterator(lst, lst.end()); } int size() { return lst.size(); } }; // //endregion } } #endif ginkgocadx-3.8.7/cadxcore/api/iannotator.cpp000066400000000000000000000346051314736454600211170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iannotator.h" #include #include #include #include #include #include #include
#include #include #include #include #include #include #include #include GNC::GCS::IAnnotator::IAnnotator(GNC::GCS::IVista *pView): m_pView(pView) { } GNC::GCS::IAnnotator::~IAnnotator() { } std::string GNC::GCS::IAnnotator::GetAnnotationValue(GNC::GCS::Contexto3D* c, const std::string& key) { if (key == "${NEWLINE}") { return "\n"; } else if (key =="${GINKGO.VERSION.FULLTEXT}") { return GNC::Entorno::Instance()->GetGinkgoVersionString(); } else if (key =="${GINKGO.ARCH}") { if (sizeof(void*) == 4) { return "32 bits"; } else { return "64 bits"; } } else if (key == "${VOLUME.IDX}") { if (m_pView != NULL && m_pView->GetEstudio().IsValid()) { std::ostringstream ostr; ostr << m_pView->GetEstudio()->ActiveFileIndex + 1; return ostr.str(); } } else if (key == "${SLICE.WIDTH}") { if (c->GetRenderer() != NULL && c->GetRenderer()->m_pImageViewer != NULL) { int dims[3]; c->GetRenderer()->m_pImageViewer->GetDimensions(dims); std::ostringstream ostr; ostr << dims[0]; return ostr.str(); } } else if (key == "${SLICE.HEIGHT}") { if (c->GetRenderer() != NULL && c->GetRenderer()->m_pImageViewer != NULL) { int dims[3]; c->GetRenderer()->m_pImageViewer->GetDimensions(dims); std::ostringstream ostr; ostr << dims[1]; return ostr.str(); } } else if (key == "${SLICE.WL.FULLTEXT}") { if (c->GetRenderer() != NULL && c->GetRenderer()->m_pImageViewer != NULL) { std::ostringstream ostr; ostr << "WL: "; ostr << std::setiosflags(ios::fixed) << std::setprecision(ANNOTATION_FP_PRECISION); ostr << c->GetRenderer()->m_pImageViewer->GetWindow() << "/" << c->GetRenderer()->m_pImageViewer->GetLevel(); return ostr.str(); } } else if (key == "${SLICE.IDX}") { if (c->GetRenderer() != NULL && c->GetRenderer()->m_pImageViewer != NULL) { std::ostringstream ostr; ostr << c->GetRenderer()->m_pImageViewer->GetTindex() + 1; return ostr.str(); } } else if (key == "${SLICE.COUNT}") { if (c->GetRenderer() != NULL && c->GetRenderer()->m_pImageViewer != NULL) { int dims[3]; c->GetRenderer()->m_pImageViewer->GetDimensions(dims); std::ostringstream ostr; ostr << dims[2]; return ostr.str(); } } else if (key == "${SLICE.IDX.FULLTEXT}") { if (c->GetRenderer() != NULL && c->GetRenderer()->m_pImageViewer != NULL && m_pView != NULL && m_pView->GetEstudio().IsValid()) { int dims[3]; c->GetRenderer()->m_pImageViewer->GetDimensions(dims); std::ostringstream ostr; ostr << _Std("Slice") << ": " << c->GetRenderer()->m_pImageViewer->GetTindex() + 1 << " " << _Std("of") << " " << dims[2] << std::endl << _Std("Volume") << ": " << m_pView->GetEstudio()->ActiveFileIndex + 1; return ostr.str(); } } else if (key == "${SLICE.VOXEL.SIZE}") { if (c->GetRenderer() != NULL && c->GetRenderer()->m_pImageViewer != NULL && m_pView != NULL && m_pView->GetEstudio().IsValid()) { double spacing[3]; bool hasSpacing = m_pView->GetEstudio()->GetSpacingActive(spacing[0], spacing[1], spacing[2]); std::ostringstream ostr; if (hasSpacing) { ostr << std::setiosflags(ios::fixed) << std::setprecision(ANNOTATION_FP_PRECISION); ostr << _Std("Voxel:") << spacing[0] << "x" << spacing[1] << " mm."; } else { ostr << _Std("Image without metric information"); } return ostr.str(); } } else if (key == "${SLICE.THICKNESS}") { return GetFloatingPointTagWithPrecision(GKDCM_SliceThickness, "N/A", ANNOTATION_FP_PRECISION); } else if (key == "${SLICE.THICKNESS.FULLTEXT}") { if(ContainsTag(GKDCM_SliceThickness)) { std::ostringstream ostr; ostr << _Std("Slice thickness") << ": " << GetFloatingPointTagWithPrecision(GKDCM_SliceThickness, "N/A", ANNOTATION_FP_PRECISION) << " mm."; return ostr.str(); } } else if (key == "${SLICE.LOCATION}") { return GetFloatingPointTagWithPrecision(GKDCM_SliceLocation, "N/A", ANNOTATION_FP_PRECISION); } else if (key == "${SLICE.LOCATION.FULLTEXT}") { if(ContainsTag(GKDCM_SliceLocation)) { std::ostringstream ostr; ostr << _Std("Slice location") << ": " << GetFloatingPointTagWithPrecision(GKDCM_SliceLocation, "N/A", ANNOTATION_FP_PRECISION); return ostr.str(); } } else if (key == "${VIEW.SCALE}") { if (c->GetRenderer() != NULL && c->GetRenderer()->m_pImageViewer != NULL) { double ppmm = (c->GetRenderer()->m_pImageViewer->GetRenderWindow()->GetDPI() / 25.4); // pixels per mm double mmpp = 1.0 / ppmm; // mm per pixel double spacing[3]; c->GetRenderer()->m_pImageViewer->GetSpacing(spacing); double onePixelHeight = c->GetRenderer()->m_pImageViewer->GetZoomFactor(); std::ostringstream ostr; ostr << std::setiosflags(ios::fixed) << std::setprecision(ANNOTATION_FP_PRECISION); ostr << _Std("Scale") << " 1:" << ( (spacing[1] * mmpp) / onePixelHeight); return ostr.str(); } } else if (key == "${SLICE.LATERALITY}") { std::string lat = GetTagValue(c, GKDCM_ImageLaterality); if(lat != "") { std::ostringstream ostr; if(lat=="R") { ostr << _Std("Right") << ";" ; } else if(lat=="L") { ostr << _Std("Left") << ";"; } return ostr.str(); } } return ""; } std::string GNC::GCS::IAnnotator::FormatTag(const std::string& value, const std::string& format) { if (format.empty()) { return value; } else if (format == "date") { wxDateTime date; date.ParseFormat(wxString::FromUTF8(value.c_str()),wxT("%Y%m%d")); if (date.IsValid()) { return std::string(date.Format(_("%Y-%m-%d")).ToUTF8()); } } else if (format == "time") { wxDateTime time; time.ParseFormat(wxString::FromUTF8(value.c_str()),wxT("%H%M%S")); if(time.IsValid()) { return std::string(time.Format(_("%H:%M:%S")).ToUTF8()); } } //unknown format, or value hasn't right format return value; } std::string GNC::GCS::IAnnotator::GetFloatingPointTagWithPrecision(const std::string& key, const std::string& defValue, int precision) { if (m_pView != NULL && m_pView->GetEstudio().IsValid()) { std::string value; if (m_pView->GetEstudio()->GetTagActiveImage(key, value) && !value.empty()) { double fpVal = 0.0f; std::istringstream is(value); is >> fpVal; std::ostringstream ostr; ostr << std::setiosflags(ios::fixed) << std::setprecision(precision); ostr << fpVal; return ostr.str(); } } return defValue; } bool GNC::GCS::IAnnotator::ContainsTag(const std::string& key) { if (m_pView != NULL && m_pView->GetEstudio().IsValid()) { std::string value; if (m_pView->GetEstudio()->GetTagActiveImage(key, value) && !value.empty()) { return true; } } return false; } std::string GNC::GCS::IAnnotator::GetTagValue(GNC::GCS::Contexto3D* /*c*/, const std::string& key, const std::string& defValue, const std::string& format) { if (m_pView != NULL && m_pView->GetEstudio().IsValid()) { std::string value; if (m_pView->GetEstudio()->GetTagActiveImage(key, value) && !value.empty()) { return FormatTag(value, format); } } return defValue; } std::string GNC::GCS::IAnnotator::GetPositionAnnotation(GNC::GCS::Contexto3D* c, const GNC::GCS::Vector3D& wP) { if (c->pRenderer == NULL || c->pRenderer->m_pImageViewer == NULL) { return ""; } std::ostringstream os; os.setf(ios::floatfield, ios::fixed ); os.precision(2); os.fill('0'); //double zpos = SeriesViewer->GetPipeline()->GetCurrentSliceIndex(); double ip[3] = {0,0,0}; c->pRenderer->m_pImageViewer->Proyect2D(wP.v, ip); int pp[3] = {0, 0, 0}; int dims[3] = {1, 1, 1}; c->GetRenderer()->m_pImageViewer->GetDimensions(dims); os << _Std("Position:") << " W:(" << wP.x << ", " << wP.y << "," << wP.z << "); I:(" << ip[0] << ", " << ip[1] << ", " << ip[2] << ")"; //corregir de convencion DICOM a convenciotk c->GetRenderer()->m_pImageViewer->CoordenadasImagenACoordenadasPixel(ip, pp); if (pp[0]>=0 && pp[0] < dims[0] && pp[1]>=0 && pp[1] < dims[1] && pp[2] >=0 && pp[2] < dims[2]) { const vtkSmartPointer& pImg = c->GetRenderer()->m_pImageViewer->GetDataObject(); //image is not updated... if (pImg == NULL || pImg->GetNumberOfPoints() == 0 || pImg->GetDimensions()[0] != dims[0] || pImg->GetDimensions()[1] != dims[1] ) { return ""; } void *scalar = pImg->GetScalarPointer( (int)pp[0], (int)pp[1], (int)pp[2] ); if( scalar ) { bool primero = true; double value = 0.0f; for(int i = 0; i< c->GetRenderer()->m_pImageViewer->GetNumberOfComponents(); i++) { switch (c->GetRenderer()->m_pImageViewer->GetInput()->GetScalarType()) { case VTK_DOUBLE: value = (((double*)scalar)[i]); break; case VTK_FLOAT: value = (double) (((float*)scalar)[i]); break; case VTK_UNSIGNED_LONG: value = (double) (((unsigned long*)scalar)[i]); break; case VTK_LONG: value = (double) (((long*)scalar)[i]); break; case VTK_UNSIGNED_INT: value = (double) (((unsigned int*)scalar)[i]); break; case VTK_INT: value = (double) (((int*)scalar)[i]); break; case VTK_UNSIGNED_SHORT: value = (double) (((unsigned short*)scalar)[i]); break; case VTK_SHORT: value = (double) (((short*)scalar)[i]); break; case VTK_UNSIGNED_CHAR: value = (double) (((unsigned char*)scalar)[i]); break; case VTK_CHAR: value = (double) (((char*)scalar)[i]); break; } if(primero) { os << " " << _Std("Value:") << value; } else { os << "," << value; } primero = false; } } } return os.str(); } ginkgocadx-3.8.7/cadxcore/api/iannotator.h000066400000000000000000000040571314736454600205620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { namespace GCS { //region "Forward declarations" class Contexto3D; class IVista; //endregion //----------------------------------------------------------------------------------------------- class IAnnotator { public: IAnnotator(GNC::GCS::IVista *pView); virtual ~IAnnotator(); /* special annotation values like ${NEWLINE}*/ virtual std::string GetAnnotationValue(GNC::GCS::Contexto3D* c, const std::string& key); /* tag syntax is the same as defined in api/dicom/dcmdictionary.h gggg|eeee*/ virtual std::string GetTagValue(GNC::GCS::Contexto3D* c, const std::string& key, const std::string& defValue = "", const std::string& format =""); //el comportamiento por defecto de las anotaciones con posicion es el mismo que las de sin posicion //si se desean pueden sobreescribirse virtual std::string GetPositionAnnotation(GNC::GCS::Contexto3D* c, const GNC::GCS::Vector3D& wP); protected: std::string FormatTag(const std::string& value, const std::string& format); std::string GetFloatingPointTagWithPrecision(const std::string& key, const std::string& defValue, int precision); bool ContainsTag(const std::string& key); GNC::GCS::IVista* m_pView; }; } } ginkgocadx-3.8.7/cadxcore/api/ibutton.cpp000066400000000000000000000056441314736454600204260ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ibutton.h" GNC::GCS::TriggerButton::TriggerButton() { ResetTriggerButtonMask(); } GNC::GCS::TriggerButton::TriggerButton(const TriggerButton& o) { *this = o; } /** Resets the activation button mask **/ void GNC::GCS::TriggerButton::ResetTriggerButtonMask() { m_TriggerButtonMask = GNC::GCS::EMPTYBUTTONMASK; } /** Enable activation button mask **/ void GNC::GCS::TriggerButton::EnableTriggerButton(int mask) { m_TriggerButtonMask |= mask; } GNC::GCS::TriggerButton& GNC::GCS::TriggerButton::EnableLeft() { EnableTriggerButton(LBUTTONMASK); return *this; } GNC::GCS::TriggerButton& GNC::GCS::TriggerButton::EnableRight() { EnableTriggerButton(RBUTTONMASK); return *this; } GNC::GCS::TriggerButton& GNC::GCS::TriggerButton::EnableMiddle() { EnableTriggerButton(MBUTTONMASK); return *this; } /** Disable activation button mask **/ void GNC::GCS::TriggerButton::DisableTriggerButton(int mask) { m_TriggerButtonMask &= ~mask; } GNC::GCS::TriggerButton& GNC::GCS::TriggerButton::DisableLeft() { DisableTriggerButton(LBUTTONMASK); return *this; } GNC::GCS::TriggerButton& GNC::GCS::TriggerButton::DisableRight() { DisableTriggerButton(RBUTTONMASK); return *this; } GNC::GCS::TriggerButton& GNC::GCS::TriggerButton::DisableMiddle() { DisableTriggerButton(MBUTTONMASK); return *this; } /** Checks activation button mask is applied **/ bool GNC::GCS::TriggerButton::IsTriggerButtonEnabled(int mask) const { return (0 != (m_TriggerButtonMask & mask)); } bool GNC::GCS::TriggerButton::IsLeftEnabled() const { return IsTriggerButtonEnabled(LBUTTONMASK); } bool GNC::GCS::TriggerButton::IsRightEnabled() const { return IsTriggerButtonEnabled(RBUTTONMASK); } bool GNC::GCS::TriggerButton::IsMiddleEnabled() const { return IsTriggerButtonEnabled(MBUTTONMASK); } GNC::GCS::TriggerButton& GNC::GCS::TriggerButton::operator=(const GNC::GCS::TriggerButton& o) { this->m_TriggerButtonMask = o.m_TriggerButtonMask; return *this; } bool GNC::GCS::TriggerButton::IsEmpty() const { return this->m_TriggerButtonMask == EMPTYBUTTONMASK; } ginkgocadx-3.8.7/cadxcore/api/ibutton.h000066400000000000000000000037271314736454600200730ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IBUTTON_H #define IBUTTON_H #include namespace GNC { namespace GCS { const int EMPTYBUTTONMASK = 0x00; const int LBUTTONMASK = 0x01; const int RBUTTONMASK = 0x02; const int MBUTTONMASK = 0x04; class EXTAPI TriggerButton { public: TriggerButton(); TriggerButton(const TriggerButton& o); /** Resets the activation button mask **/ void ResetTriggerButtonMask(); /** Enable activation button mask **/ void EnableTriggerButton(int mask); TriggerButton& EnableLeft(); TriggerButton& EnableRight(); TriggerButton& EnableMiddle(); /** Disable activation button mask **/ void DisableTriggerButton(int mask); TriggerButton& DisableLeft(); TriggerButton& DisableRight(); TriggerButton& DisableMiddle(); /** Checks activation button mask is applied **/ bool IsTriggerButtonEnabled(int mask) const; bool IsLeftEnabled() const; bool IsRightEnabled() const; bool IsMiddleEnabled() const; TriggerButton& operator=(const TriggerButton& o); bool IsEmpty() const; protected: int m_TriggerButtonMask; }; } } #endif ginkgocadx-3.8.7/cadxcore/api/icacheimagenes.h000066400000000000000000000046431314736454600213320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include "ilock.h" namespace GNC { namespace GCS { class IElementoCache { public: IElementoCache() {}; virtual ~IElementoCache() {}; }; template class IElementoCacheConcreto : public IElementoCache, public ILockable { public: IElementoCacheConcreto(int ancho, int alto, int numeroComponentes):IElementoCache() { m_ancho = ancho; m_alto = alto; m_numeroComponentes = numeroComponentes; m_PixelData = NULL; } virtual ~IElementoCacheConcreto() { } virtual TPixel* GetPixelData() { GNC::GCS::ILocker lock(this); if(m_PixelData == NULL) { Inicializar(); } return m_PixelData; } virtual void Inicializar() = 0; virtual int GetAncho() { return m_ancho; } virtual int GetAlto() { return m_alto; } virtual int GetNumeroComponentes() { return m_numeroComponentes; } protected: TPixel* m_PixelData; int m_ancho; int m_alto; int m_numeroComponentes; }; typedef std::map > MapaImagenes; class ICacheImagenes: protected std::map { public: ICacheImagenes() {} ~ICacheImagenes() { for(ICacheImagenes::iterator it = begin(); it!=end(); ++it) { (*it).second.clear(); } clear(); } }; } } ginkgocadx-3.8.7/cadxcore/api/icommand.cpp000066400000000000000000000137001314736454600205210ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include "iproxynotificadorprogreso.h" #include "icommand.h" //--------------------------------------------------------------------------------------- //region Forward declarations namespace GNC { class LanzadorComandos; class INotificadorProgreso; class CommandController; namespace GCS { class IComando; } } //endregion namespace GNC { namespace GCS { //--------------------------------------------------------------------------------------- IComandoParams::IComandoParams() {} IComandoParams::~IComandoParams() {} //--------------------------------------------------------------------------------------- IComandoResult::IComandoResult() { } IComandoResult::~IComandoResult() { } //--------------------------------------------------------------------------------------- IComando::IComando(IComandoParams* pParams, const std::string& name , void* pOwner) { m_pParams = pParams; m_pResult = NULL; m_pNotificadorProgreso = NULL; m_Abortado = false; m_Id = -1; m_Nombre = name; m_pOwner = pOwner; if (m_Nombre.size() == 0) { m_Nombre = "Comando"; } NotificarProgreso(0.0f, m_Nombre); } IComando::~IComando() { Free(); OnDestroy(); } void IComando::Free() { if (m_pResult != NULL) { delete m_pResult; m_pResult = NULL; } if (m_pParams != NULL) { delete m_pParams; m_pParams = NULL; } } //endregion //--------------------------------------------------------------------------------------- //region Interfaz especifica /** Notifica el progreso. Si devuelve true, el ejecutor dejara de procesarse **/ bool IComando::NotificarProgreso(float progresoNormalizado, const std::string& texto) { if (m_Abortado) { return false; } if (m_pNotificadorProgreso != NULL) { return m_pNotificadorProgreso->NotificarProgreso(progresoNormalizado, texto); } return true; } /** Callback que puede ser sobrecargado por el sujeto para incluir acciones especificas cuando se aborta el comando **/ void IComando::OnAbort() {} /** Callback que puede ser sobrecargado por el sujeto para incluir acciones especificas cuando se destruye el comando **/ void IComando::OnDestroy() {} //endregion //--------------------------------------------------------------------------------------- //region Getters y helpers int IComando::GetId() const { return m_Id; } void IComando::SetId(int id) { m_Id = id; } void IComando::SetOwner(void* pOwner) { m_pOwner = pOwner; } void* IComando::GetOwner() const { return m_pOwner; } const std::string& IComando::GetName() const { return m_Nombre; } IComandoParams* IComando::GetParams() { return m_pParams; } void IComando::Abort() { m_Abortado = true; OnAbort(); } bool IComando::EstaAbortado() const { return m_Abortado; } //endregion //--------------------------------------------------------------------------------------- //region Notificacion GNC::INotificadorProgreso* IComando::GetNotificadorProgreso() { return m_pNotificadorProgreso; } // Este metodo debe ser invocado solo por el lanzador de comandos. void IComando::SetNotificadorProgreso(GNC::INotificadorProgreso* pNotificador) { m_pNotificadorProgreso = pNotificador; } //endregion //--------------------------------------------------------------------------------------- //region "Gestion de Dependencias" void IComando::EsperaA(int idDep) { m_Dependencias.push_back(idDep); } void IComando::AbortaSi(int idConflicto) { m_Conflictos.push_back(idConflicto); } void IComando::CancelaA(int idReemplazo) { m_Reemplazos.push_back(idReemplazo); } ///////////////IPersistentCommand//////////////// IPersistentCommand::IPersistentCommand(const std::list seriesId, const std::string description): IComando(NULL), m_seriesId(seriesId), m_idBBDD(-1), m_status(IPersistentCommand::Pending), m_description(description) { } IPersistentCommand::IPersistentCommand(long idBBDD, const std::list seriesId, const std::string description): IComando(NULL), m_seriesId(seriesId), m_idBBDD(idBBDD), m_status(IPersistentCommand::Pending), m_description(description) { } IPersistentCommand::~IPersistentCommand() { } std::string IPersistentCommand::getClassUID() { throw new GNC::GCS::IException("Method has to be overridden"); } long IPersistentCommand::getIdBBDD() { return m_idBBDD; } void IPersistentCommand::setIdBBDD(long id) { m_idBBDD = id; } const std::list& IPersistentCommand::getSeriesId() { return m_seriesId; } const std::string& IPersistentCommand::getErrorDescription() { return m_errorDescription; } IPersistentCommand::TStatus IPersistentCommand::getStatus() { return m_status; } const std::string& IPersistentCommand::getDescription() { return m_description; } void IPersistentCommand::setStatus(IPersistentCommand::TStatus status) { m_status = status; } } } ginkgocadx-3.8.7/cadxcore/api/icommand.h000066400000000000000000000132351314736454600201710ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include "iproxynotificadorprogreso.h" //--------------------------------------------------------------------------------------- //region Forward declarations namespace GNC { class CommandLauncher; class CommandController; class INotificadorProgreso; namespace GCS { class IComando; class ICommandController; } } //endregion namespace GNC { namespace GCS { //--------------------------------------------------------------------------------------- class EXTAPI IComandoParams { public: IComandoParams(); virtual ~IComandoParams(); }; //--------------------------------------------------------------------------------------- class EXTAPI IComandoResult { public: IComandoResult(); virtual ~IComandoResult(); }; //--------------------------------------------------------------------------------------- class EXTAPI IComando : public GNC::IProxyNotificadorProgreso { //--------------------------------------------------------------------------------------- //region Constructor y destructor typedef std::list< int> TipoListaIdComandos; public: IComando(IComandoParams* pParams, const std::string& name = "Comando", void* pOwner = NULL); virtual ~IComando(); void Free(); //endregion //--------------------------------------------------------------------------------------- //region Interfaz especifica protected: virtual void Execute() = 0; virtual void Update() = 0; public: /** Notifica el progreso. Si devuelve true, el ejecutor dejara de procesarse **/ virtual bool NotificarProgreso(float progresoNormalizado, const std::string& texto); protected: /** Callback que puede ser sobrecargado por el sujeto para incluir acciones especificas cuando se aborta el comando **/ virtual void OnAbort(); /** Callback que puede ser sobrecargado por el sujeto para incluir acciones especificas cuando se destruye el comando **/ virtual void OnDestroy(); //endregion //--------------------------------------------------------------------------------------- //region Getters y helpers public: int GetId() const; void SetId(int id); void SetOwner(void* pOwner); void* GetOwner() const; const std::string& GetName() const; IComandoParams* GetParams(); void Abort() ; bool EstaAbortado() const; //endregion //--------------------------------------------------------------------------------------- //region Notificacion GNC::INotificadorProgreso* GetNotificadorProgreso(); private: // Este metodo debe ser invocado solo por el lanzador de comandos. void SetNotificadorProgreso(GNC::INotificadorProgreso* pNotificador); //endregion //--------------------------------------------------------------------------------------- //region "Gestion de Dependencias" protected: void EsperaA(int idDep); void AbortaSi(int idConflicto); void CancelaA(int idReemplazo); TipoListaIdComandos m_Dependencias; TipoListaIdComandos m_Conflictos; TipoListaIdComandos m_Reemplazos; //endregion //--------------------------------------------------------------------------------------- //region "Atributos" protected: IComandoParams* m_pParams; IComandoResult* m_pResult; private: int m_Id; std::string m_Nombre; bool m_Abortado; void* m_pOwner; GNC::INotificadorProgreso* m_pNotificadorProgreso; friend class GNC::CommandLauncher; friend class GNC::CommandController; //endregion }; //deprecated, persistent commands are deprecated class EXTAPI IPersistentCommand: public GNC::GCS::IComando { public: typedef enum { Pending = 0, Ok, Error } TStatus; IPersistentCommand(const std::list seriesId, const std::string description); IPersistentCommand(long idBBDD, const std::list seriesId, const std::string description); virtual ~IPersistentCommand(); virtual std::string serialize() = 0; virtual void init(const std::string& serializedValue) = 0; virtual std::string getClassUID(); long getIdBBDD(); void setIdBBDD(long id); const std::list& getSeriesId(); const std::string& getErrorDescription(); TStatus getStatus(); const std::string& getDescription(); protected: void setStatus(TStatus status); std::list m_seriesId; long m_idBBDD; TStatus m_status; std::string m_description; std::string m_errorDescription; }; } } ginkgocadx-3.8.7/cadxcore/api/iconfiguracion.h000066400000000000000000000033711314736454600214010ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include class wxWindow; class IDialogoConfiguracion { public: IDialogoConfiguracion() {} virtual ~IDialogoConfiguracion() {} virtual void OnPropiedadCambiada() = 0; }; class IPasoConfiguracion { public: IPasoConfiguracion(IDialogoConfiguracion* pDialogo) { m_pDialogoConfiguracion = pDialogo; } virtual ~IPasoConfiguracion() { m_pDialogoConfiguracion = NULL; } protected: IDialogoConfiguracion* m_pDialogoConfiguracion; public: void OnPropiedadCambiada() { if(m_pDialogoConfiguracion != NULL) { m_pDialogoConfiguracion->OnPropiedadCambiada(); } } virtual void Recargar() = 0; virtual wxWindow* GetPanel() = 0; virtual std::string GetTitle() = 0; virtual std::string GetCabecera() = 0; virtual bool Validar() = 0; virtual bool Guardar() = 0; }; ginkgocadx-3.8.7/cadxcore/api/icontexto.cpp000066400000000000000000000116121314736454600207460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "icontexto.h" #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif GNC::GCS::Contexto3D::Contexto3D(TipoProyeccion proyeccion) { tipoProyeccion = proyeccion; pWindow = NULL; pRenderer = NULL; pixelData = NULL; cr = NULL; cs = NULL; pOffscrenViewer = NULL; offscreenCreado = false; OVID = 0; Reset(); } GNC::GCS::Contexto3D::~Contexto3D() { Reset(); } void GNC::GCS::Contexto3D::Reset() { ancho = 0; flipHorizontal = false; flipVertical = false; alto = 0; rotacion = 0; spacing[0] = spacing[1] = spacing[2] = 1.0f; origin[0] = origin[1] = origin[2] = 0.0f; m_RelacionMundoPantallaOffscreen.Asignar(1.0f, 1.0f); m_RelacionImagenPantalla.Asignar(1.0f, 1.0f); ScreenDirectionCosines[0].Asignar(1.0, 0.0); ScreenDirectionCosines[1].Asignar(0.0, 1.0); OVID = 0; if ( offscreenCreado) { DestruirOffscreen(); } } void GNC::GCS::Contexto3D::SetupImageScreenRel(double relX, double relY, double /*relZ*/) { //GNC::GCS::Vector3D vrel(relX, relY, relZ); //std::cout << "Rel : " << vrel << std::endl; m_RelacionImagenPantalla.Asignar(relX, relY); } GNC::GCS::Vector& GNC::GCS::Contexto3D::RefRelacionImagenPantalla() { return m_RelacionImagenPantalla; } const GNC::GCS::Vector& GNC::GCS::Contexto3D::RelacionImagenPantalla() const { return m_RelacionImagenPantalla; } GNC::GCS::Vector& GNC::GCS::Contexto3D::RefRelacionMundoPantallaOffscreen() { return m_RelacionMundoPantallaOffscreen; } const GNC::GCS::Vector& GNC::GCS::Contexto3D::RelacionMundoPantallaOffscreen() const { return m_RelacionMundoPantallaOffscreen; } bool GNC::GCS::Contexto3D::IsOk() const { return ancho > 0 && alto > 0 && pWindow != NULL && pRenderer != NULL; } GNC::GCS::IWidgetsRenderer* GNC::GCS::Contexto3D::GetRenderer() const { return pRenderer; } void GNC::GCS::Contexto3D::CrearOffscreen() { if (offscreenCreado) { DestruirOffscreen(); } if (ancho == 0 || alto == 0) { return; } const int numCanales = 4; int rowStride = ancho * numCanales; pixelData = (unsigned char*)std::calloc(rowStride, alto); if (pixelData == NULL) { return; } cs = cairo_image_surface_create_for_data(pixelData, CAIRO_FORMAT_ARGB32, ancho, alto, rowStride); if (cairo_surface_status(cs) != CAIRO_STATUS_SUCCESS) { std::cerr << "Error al crear surface" << std::endl; cairo_surface_destroy(cs); cs = NULL; free(pixelData); pixelData = NULL; return; } else { cr = cairo_create(cs); if (cairo_status(cr) != CAIRO_STATUS_SUCCESS) { cairo_destroy(cr); cr = NULL; cairo_surface_destroy(cs); cs = NULL; free(pixelData); pixelData = NULL; return; } } //relacion mundo/pantalla m_RelacionMundoPantallaOffscreen = GNC::GCS::Vector( ancho, alto) * (1.0f/720.0f); factorReescalado = GNC::GCS::Vector::Unidad(); offscreenCreado = true; } void GNC::GCS::Contexto3D::DestruirOffscreen() { if (!offscreenCreado) { return; } if (cr != NULL) { cairo_destroy(cr); cr = NULL; } if (cs != NULL) { cairo_surface_destroy(cs); cs = NULL; } if (pixelData != NULL) { free(pixelData); pixelData = NULL; } offscreenCreado = false; } GNC::GCS::Vector GNC::GCS::Contexto3D::Reproyectar(const GNC::GCS::Vector& v) { GNC::GCS::Vector vp = v; return vp; } ginkgocadx-3.8.7/cadxcore/api/icontexto.h000066400000000000000000000062651314736454600204230ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include // Forward Declarations struct _cairo; struct _cairo_surface; class vtkGinkgoImageViewer; namespace GNC { namespace GCS { class IWidgetsRenderer; } } class wxWindow; // Forward Declarations namespace GNC { namespace GCS { typedef enum TipoProyeccion { TP_Ortogonal, TP_Perspectiva } TipoProyeccion; class EXTAPI Contexto3D { public: /* Dimension en las coordenadas x del viewport */ unsigned int ancho; /* Dimension en las coordenadas y del viewport */ unsigned int alto; // Propiedades para Offscreen Rendering double spacing[3]; double origin[3]; unsigned char* pixelData; _cairo* cr; _cairo_surface* cs; bool offscreenCreado; long OVID; // VID offscreen GNC::GCS::Vector factorReescalado; // Factor de reescalado de la imagen. Para corregir coordenadas mundo al redimensionar. /* Puntero a wxWindow del renderer para permitir enparentar wxWidgets (Ventanas, dialogos, etc...) */ wxWindow* pWindow; IWidgetsRenderer* pRenderer; vtkGinkgoImageViewer* pOffscrenViewer; protected: /* Relacion coordenada mundo => coordenada pantalla*/ GNC::GCS::Vector m_RelacionMundoPantallaOffscreen; GNC::GCS::Vector m_RelacionImagenPantalla; public: /* Rotacion y posicion de la camara */ double rotacion; bool flipHorizontal; bool flipVertical; GNC::GCS::Vector ScreenDirectionCosines[2]; /** Director unit vectors (image plane coordinates) for screen coordinates **/ /* Tipo de Proyeccion (Para calcular la norma) */ TipoProyeccion tipoProyeccion; Contexto3D(TipoProyeccion proyeccion = TP_Ortogonal); ~Contexto3D(); void Reset(); void SetupImageScreenRel(double relX, double relY, double relZ); GNC::GCS::Vector& RefRelacionImagenPantalla(); const GNC::GCS::Vector& RelacionImagenPantalla() const; GNC::GCS::Vector& RefRelacionMundoPantallaOffscreen(); const GNC::GCS::Vector& RelacionMundoPantallaOffscreen() const; bool IsOk() const; IWidgetsRenderer* GetRenderer() const; void CrearOffscreen(); void DestruirOffscreen(); GNC::GCS::Vector Reproyectar(const GNC::GCS::Vector& v); }; } } ginkgocadx-3.8.7/cadxcore/api/icontract.cpp000066400000000000000000000034641314736454600207260ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "icontract.h" GNC::GCS::ContractException::ContractException(const std::string& msg) throw() : GNC::GCS::IException(msg, "GNC", false) { } GNC::GCS::IContract::IContract(ContractType type, int prio) { m_Type = type; m_Priority = prio; } GNC::GCS::IContract::~IContract() { } void GNC::GCS::IContract::Ping() { } bool GNC::GCS::IContract::operator<(const GNC::GCS::IContract& other) const { if (m_Priority < other.m_Priority) { return true; } return false; } bool GNC::GCS::IContract::operator<(const GNC::GCS::IContract* other) const { if (m_Priority < other->m_Priority) { return true; } return false; } //------------------------------------------------------------------------ GNC::GCS::IContractable::IContractable() { m_pContract = NULL; } GNC::GCS::IContractable::~IContractable() { m_pContract = NULL; } void GNC::GCS::IContractable::Register(IContract* contract) { if (IsValidContract(contract)) { m_pContract = contract; } } ginkgocadx-3.8.7/cadxcore/api/icontract.h000066400000000000000000000037721314736454600203750ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ICONTRACT_H #define ICONTRACT_H #include #include #include namespace GNC { namespace GCS { class EXTAPI ContractException : public GNC::GCS::IException { public: ContractException(const std::string& msg) throw(); }; //------------------------------------------------------------------------ /* Contract generic interface. */ class EXTAPI IContract { public: typedef enum { TC_Mandatory, TC_Optional } ContractType; IContract(ContractType type = TC_Mandatory, int prio = 0); virtual ~IContract(); void Ping(); bool operator<(const IContract& other) const; bool operator<(const IContract* other) const; public: ContractType m_Type; int m_Priority; }; //------------------------------------------------------------------------ /* Contract management class */ class EXTAPI IContractable { //region "Public interface for contract management" protected: GNC::GCS::IContract* m_pContract; public: IContractable(); virtual ~IContractable(); virtual bool IsValidContract(IContract* contract) = 0; virtual void Register(IContract* contract); }; } } #endif ginkgocadx-3.8.7/cadxcore/api/ientorno.cpp000066400000000000000000000020451314736454600205670ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include
GNC::GCS::IEntorno::IEntorno() { } GNC::GCS::IEntorno::~IEntorno() { } GNC::GCS::IEntorno* GNC::GCS::IEntorno::Instance() { return GNC::Entorno::Instance(); } void GNC::GCS::IEntorno::FreeInstance() { return GNC::Entorno::FreeInstance(); } ginkgocadx-3.8.7/cadxcore/api/ientorno.h000066400000000000000000000126351314736454600202420ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IENVIRONMENT_H #define IENVIRONMENT_H #include #include #include #include // Forward Declarations class wxPanel; class wxWindow; class wxPropertyGrid; class wxApp; class VentanaPrincipal; // Forward Declarations namespace GNC { namespace GCS { class IControladorVistas; class ICommandController; class IEventsController; class IControladorCarga; class IConfigurationController; class IControladorPermisos; class IControladorLog; class IControladorExtensiones; class IControladorAcciones; class IControladorInternacionalizacion; class IWidgetsManager; class IVista; class IExtensionsObserver; class IObservadorVistas; } } namespace GIL { namespace DICOM { class IPACSController; } class Ubicacion; } namespace GNC { namespace GCS { class EXTAPI IEntorno { public: typedef std::map< std::string, GIL::Ubicacion* > MapaUbicaciones; static IEntorno* m_pInstance; protected: IEntorno(); virtual ~IEntorno(); MapaUbicaciones m_Ubicaciones; public: static IEntorno* Instance(); static void FreeInstance(); //region version /** Gets the GinkgoCADx version full string **/ virtual const std::string& GetGinkgoVersionString() = 0; /** Gets the GinkgoCADx version string **/ virtual std::string GetGinkgoVersion() = 0; /** Gets the mayor version number **/ virtual int GetGinkgoMayorVersionNumber() = 0; /** Gets the mayor version minor **/ virtual int GetGinkgoMinorVersionNumber() = 0; /** Gets the application name */ virtual std::string GetApplicationName() = 0; /** Gets the application subtitle */ virtual std::string GetApplicationSubTitle() = 0; /** Gets the application credits */ virtual std::string GetApplicationCredits() = 0; /** Gets the application eula */ virtual std::string GetApplicationEula() = 0; //endregion //region license virtual const std::string& GetLicenseMessage() = 0; //enregion virtual const std::string& GetGinkgoCopyRight() = 0; virtual int ParseSVNBuild(const char* str) = 0; virtual const std::string& GetPluginsPath() = 0; virtual const std::string& GetGinkgoUserDir() = 0; virtual const std::string& GetGinkgoTempDir() = 0; virtual std::string CreateGinkgoTempDir() = 0; virtual const std::string& GetGinkgoResourcesDir() = 0; virtual std::string CrearDirectorioTemporal() = 0; virtual std::string GetDicomLocalAET() = 0; virtual std::string ParseAET(const std::string& aet) = 0; virtual void SetLicenseMessage(const std::string& desc) = 0; virtual void YieldApp() = 0; virtual wxApp* GetApp() = 0; virtual VentanaPrincipal* GetVentanaPrincipal() = 0; virtual wxWindow* GetVentanaRaiz() = 0; virtual GNC::GCS::IControladorVistas* GetControladorVistas() = 0; virtual GNC::GCS::ICommandController* GetCommandController() = 0; virtual GNC::GCS::IEventsController* GetControladorEventos() = 0; virtual GNC::GCS::IControladorCarga* GetControladorCarga() = 0; virtual GNC::GCS::IControladorPermisos* GetControladorPermisos() = 0; virtual GNC::GCS::IControladorExtensiones* GetControladorExtensiones() = 0; virtual GNC::GCS::IControladorAcciones* GetControladorAcciones() = 0; virtual GNC::GCS::IControladorInternacionalizacion* GetControladorInternacionalizacion() = 0; virtual GNC::GCS::IConfigurationController* GetConfigurationController() = 0; virtual GNC::GCS::IWidgetsManager* NewWidgetsManager(GNC::GCS::IVista* pVista) = 0; virtual GIL::DICOM::IPACSController* GetPACSController() = 0; virtual void FreeWidgetsManager(GNC::GCS::IWidgetsManager* pManager) = 0; virtual MapaUbicaciones& GetUbicaciones() = 0; virtual void RemoveDirRecursive(const std::string& path) = 0; virtual std::string CreateGinkgoTempFile() = 0; //------------------------------------------------------------------------------ //region "Extensions observers registry interface" virtual void RegisterExtensionsObserver(GNC::GCS::IExtensionsObserver* observer) = 0; virtual void UnRegisterExtensionsObserver(GNC::GCS::IExtensionsObserver* observer) = 0; //endregion //------------------------------------------------------------------------------ //region "Views observers registry interface" virtual void RegisterViewsObserver(GNC::GCS::IObservadorVistas* observer) = 0; virtual void UnRegisterViewsObserver(GNC::GCS::IObservadorVistas* observer) = 0; //endregion }; } } #endif ginkgocadx-3.8.7/cadxcore/api/ievento.cpp000066400000000000000000000406141314736454600204070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ievento.h" #include GNC::GCS::Events::IEvent::IEvent(long codigoEvento, long codigoAmbito, long prioridad, GNC::GCS::IVista* pVista) { m_codigoEvento = codigoEvento; m_codigoAmbito = codigoAmbito; m_pVista = pVista; m_skip = true; m_prioridad=prioridad; } GNC::GCS::Events::IEvent::~IEvent() { } bool GNC::GCS::Events::IEvent::IsEqual(const IEvent& evt) const { if(evt.GetCodigoEvento() == m_codigoEvento && evt.GetCodigoAmbito() == m_codigoAmbito && evt.GetVista() == m_pVista) { return true; } else { return false; } } bool GNC::GCS::Events::IEvent::IsSkipped() const { return m_skip; } void GNC::GCS::Events::IEvent::Skip(bool skip) { m_skip=skip; } long GNC::GCS::Events::IEvent::GetCodigoEvento() const { return m_codigoEvento; } long GNC::GCS::Events::IEvent::GetCodigoAmbito() const { return m_codigoAmbito; } void GNC::GCS::Events::IEvent::SetAmbito(long codigoAmbito) { m_codigoAmbito = codigoAmbito; } GNC::GCS::IVista* GNC::GCS::Events::IEvent::GetVista() const { return m_pVista; } void GNC::GCS::Events::IEvent::SetVista(GNC::GCS::IVista* pVista) { m_pVista = pVista; } long GNC::GCS::Events::IEvent::GetPrioridad() const { return m_prioridad; } void GNC::GCS::Events::IEvent::SetPrioridad(long prioridad) { m_prioridad = prioridad; } void GNC::GCS::Events::IEvent::SetNombre(const char* nombre) { m_Nombre = nombre; } void GNC::GCS::Events::IEvent::SetNombre(std::string& nombre) { m_Nombre = nombre; } const std::string& GNC::GCS::Events::IEvent::GetNombre() const { return m_Nombre; } void GNC::GCS::Events::IEvent::pushInfo(std::ostream& ) const { } //==================================================================================================== //= Interfaz de evento de raton //==================================================================================================== GNC::GCS::Events::EventoRaton::EventoRaton(wxMouseEvent* evt, Contexto3D* pContexto) { c = pContexto; m_left = m_middle = m_right = m_any = false; m_leftDown = m_middleDown = m_rightDown = m_anyDown = false; m_tipo = ET_UNKNOWN; m_controlDown = m_shiftDown = m_altDown = m_metaDown = false; m_wheelRotation = m_wheelDelta = m_linesPerAction = 0; m_skip = true; sX = sY = 0; ParseWXEvent(evt); } GNC::GCS::Events::EventoRaton::~EventoRaton() { } bool GNC::GCS::Events::EventoRaton::ButtonDown(Boton but) const { if (m_tipo == ET_DOWN) { switch (but) { case EB_CUALQUIERA: return m_any; case EB_IZQUIERDO: return m_left; case EB_DERECHO: return m_right; case EB_CENTRAL: return m_middle; default: return false; } } else { return false; } } bool GNC::GCS::Events::EventoRaton::ButtonDown(const GNC::GCS::TriggerButton& button) const { if (m_tipo == ET_DOWN) { return (m_left && button.IsLeftEnabled()) || (m_right && button.IsRightEnabled()) || (m_middle && button.IsMiddleEnabled()); } else { return false; } } bool GNC::GCS::Events::EventoRaton::ButtonDClick(Boton but) const { if (m_tipo == ET_DCLICK) { switch (but) { case EB_CUALQUIERA: return m_any; case EB_IZQUIERDO: return m_left; case EB_DERECHO: return m_right; case EB_CENTRAL: return m_middle; default: return false; } } else { return false; } } bool GNC::GCS::Events::EventoRaton::ButtonDClick(const GNC::GCS::TriggerButton& button) const { if (m_tipo == ET_DCLICK) { return (m_left && button.IsLeftEnabled()) || (m_right && button.IsRightEnabled()) || (m_middle && button.IsMiddleEnabled()); } else { return false; } } bool GNC::GCS::Events::EventoRaton::ButtonUp(Boton but) const { if (m_tipo == ET_UP) { switch (but) { case EB_CUALQUIERA: return m_any; case EB_IZQUIERDO: return m_left; case EB_DERECHO: return m_right; case EB_CENTRAL: return m_middle; default: return false; } } else { return false; } } bool GNC::GCS::Events::EventoRaton::ButtonUp(const GNC::GCS::TriggerButton& button) const { if (m_tipo == ET_UP) { return (m_left && button.IsLeftEnabled()) || (m_right && button.IsRightEnabled()) || (m_middle && button.IsMiddleEnabled()); } else { return false; } } bool GNC::GCS::Events::EventoRaton::Button(Boton but) const { switch (but) { case EB_CUALQUIERA: return m_any; case EB_IZQUIERDO: return m_left; case EB_DERECHO: return m_right; case EB_CENTRAL: return m_middle; default: return false; } } bool GNC::GCS::Events::EventoRaton::Button(const GNC::GCS::TriggerButton& button) const { return (m_left && button.IsLeftEnabled()) || (m_right && button.IsRightEnabled()) || (m_middle && button.IsMiddleEnabled()); } bool GNC::GCS::Events::EventoRaton::ButtonIsDown(Boton but) const { if (m_anyDown) { switch (but) { case EB_CUALQUIERA: return m_any; case EB_IZQUIERDO: return m_left; case EB_DERECHO: return m_right; case EB_CENTRAL: return m_middle; default: return false; } } else { return false; } } bool GNC::GCS::Events::EventoRaton::ButtonIsDown(const GNC::GCS::TriggerButton& button) const { return m_anyDown && ( (m_left && button.IsLeftEnabled()) || (m_right && button.IsRightEnabled()) || (m_middle && button.IsMiddleEnabled()) ); } bool GNC::GCS::Events::EventoRaton::ControlDown() const { return m_controlDown; } bool GNC::GCS::Events::EventoRaton::MetaDown() const { return m_metaDown; } bool GNC::GCS::Events::EventoRaton::AltDown() const { return m_altDown; } bool GNC::GCS::Events::EventoRaton::ShiftDown() const { return m_shiftDown; } bool GNC::GCS::Events::EventoRaton::LeftDown() const { return (m_tipo == ET_DOWN && m_left); } bool GNC::GCS::Events::EventoRaton::MiddleDown() const { return (m_tipo == ET_DOWN && m_middle); } bool GNC::GCS::Events::EventoRaton::RightDown() const { return (m_tipo == ET_DOWN && m_right); } bool GNC::GCS::Events::EventoRaton::LeftUp() const { return (m_tipo == ET_UP && m_left); } bool GNC::GCS::Events::EventoRaton::MiddleUp() const { return (m_tipo == ET_UP && m_middle); } bool GNC::GCS::Events::EventoRaton::RightUp() const { return (m_tipo == ET_UP && m_right); } bool GNC::GCS::Events::EventoRaton::LeftDClick() const { return (m_tipo == ET_DCLICK && m_left); } bool GNC::GCS::Events::EventoRaton::MiddleDClick() const { return (m_tipo == ET_DCLICK && m_middle); } bool GNC::GCS::Events::EventoRaton::RightDClick() const { return (m_tipo == ET_DCLICK && m_right); } bool GNC::GCS::Events::EventoRaton::LeftIsDown() const { return m_leftDown; } bool GNC::GCS::Events::EventoRaton::MiddleIsDown() const { return m_middleDown; } bool GNC::GCS::Events::EventoRaton::RightIsDown() const { return m_rightDown; } bool GNC::GCS::Events::EventoRaton::AnyIsDown() const { return m_anyDown; } bool GNC::GCS::Events::EventoRaton::Dragging() const { return (m_tipo == ET_MOTION) && ButtonIsDown(EB_CUALQUIERA); } bool GNC::GCS::Events::EventoRaton::Moving() const { return (m_tipo == ET_MOTION) && !ButtonIsDown(EB_CUALQUIERA); } bool GNC::GCS::Events::EventoRaton::Entering() const { return (m_tipo == ET_ENTER); } bool GNC::GCS::Events::EventoRaton::Leaving() const { return (m_tipo == ET_LEAVE); } int GNC::GCS::Events::EventoRaton::GetWheelRotation() const { return m_wheelRotation; } int GNC::GCS::Events::EventoRaton::GetWheelDelta() const { return m_wheelDelta; } int GNC::GCS::Events::EventoRaton::GetLinesPerAction() const { return m_linesPerAction; } #ifdef _WINDOWS bool GNC::GCS::Events::EventoRaton::IsPageScroll() const { return ((unsigned int)m_linesPerAction == UINT_MAX); } #else bool GNC::GCS::Events::EventoRaton::IsPageScroll() const { return ((unsigned int)m_linesPerAction == std::numeric_limits::max()); } #endif void GNC::GCS::Events::EventoRaton::Skip(bool skip) { m_skip = skip; } bool GNC::GCS::Events::EventoRaton::GetSkipped() const { return m_skip; } void GNC::GCS::Events::EventoRaton::ParseWXEvent(wxMouseEvent* evt) { wP.x = (double) evt->m_x; wP.y = (double) evt->m_y; wP.z = 0.0f; m_leftDown = evt->m_leftDown; m_middleDown = evt->m_middleDown; m_rightDown = evt->m_rightDown; m_anyDown = m_leftDown || m_middleDown || m_rightDown; int etype = evt->GetEventType(); if (etype == wxEVT_MOTION) { m_tipo = ET_MOTION; } else if (etype == wxEVT_LEFT_DOWN) { m_tipo = ET_DOWN; m_left = true; } else if (etype == wxEVT_LEFT_UP) { m_tipo = ET_UP; m_left = true; } else if (etype == wxEVT_LEFT_DCLICK) { m_tipo = ET_DCLICK; m_left = true; } else if (etype == wxEVT_MIDDLE_DOWN) { m_tipo = ET_DOWN; m_middle = true; } else if (etype == wxEVT_MIDDLE_UP) { m_tipo = ET_UP; m_middle = true; } else if (etype == wxEVT_MIDDLE_DCLICK) { m_tipo = ET_DCLICK; m_middle = true; } else if (etype == wxEVT_RIGHT_DOWN) { m_tipo = ET_DOWN; m_right = true; } else if (etype == wxEVT_RIGHT_UP) { m_tipo = ET_UP; m_right = true; } else if (etype == wxEVT_RIGHT_DCLICK) { m_tipo = ET_DCLICK; m_right = true; } else if (etype == wxEVT_ENTER_WINDOW) { m_tipo = ET_ENTER; } else if (etype == wxEVT_LEAVE_WINDOW) { m_tipo = ET_LEAVE; } else { m_tipo = ET_UNKNOWN; } m_any = m_anyDown || m_left || m_right || m_middle; m_controlDown = evt->m_controlDown; m_shiftDown = evt->m_shiftDown; m_altDown = evt->m_altDown; m_metaDown = evt->m_metaDown; m_wheelRotation = evt->m_wheelRotation; m_wheelDelta = evt->m_wheelDelta; m_linesPerAction = evt->m_linesPerAction; sX = evt->m_x; sY = evt->m_y; } //==================================================================================================== //= Interfaz de evento de teclado //==================================================================================================== GNC::GCS::Events::EventoTeclado::EventoTeclado(wxKeyEvent* evt, Contexto3D* pContexto) { c = pContexto; m_keyCode = 0; m_controlDown = false; m_shiftDown = false; m_altDown = false; m_metaDown = false; m_uniChar = L'\0'; m_rawCode = 0; m_rawFlags = 0; m_skip = true; ParseWXEvent(evt); } GNC::GCS::Events::EventoTeclado::~EventoTeclado() { } bool GNC::GCS::Events::EventoTeclado::ControlDown() const { return m_controlDown; } bool GNC::GCS::Events::EventoTeclado::ShiftDown() const { return m_shiftDown; } bool GNC::GCS::Events::EventoTeclado::MetaDown() const { return m_metaDown; } bool GNC::GCS::Events::EventoTeclado::AltDown() const { return m_altDown; } bool GNC::GCS::Events::EventoTeclado::HasModifiers() const { return ControlDown() || AltDown(); } int GNC::GCS::Events::EventoTeclado::GetKeyCode() const { return (int)m_keyCode; } wchar_t GNC::GCS::Events::EventoTeclado::GetUnicodeKey() const { return m_uniChar; } unsigned int GNC::GCS::Events::EventoTeclado::GetRawKeyCode() const { return m_rawCode; } unsigned int GNC::GCS::Events::EventoTeclado::GetRawKeyFlags() const { return m_rawFlags; } void GNC::GCS::Events::EventoTeclado::Skip(bool skip) { m_skip = skip; } bool GNC::GCS::Events::EventoTeclado::GetSkipped() const { return m_skip; } void GNC::GCS::Events::EventoTeclado::ParseWXEvent(wxKeyEvent* evt) { m_isKeyDown = evt->GetEventType() == wxEVT_KEY_DOWN; m_keyCode = evt->m_keyCode; m_controlDown = evt->m_controlDown; m_shiftDown = evt->m_shiftDown; m_altDown = evt->m_altDown; m_metaDown = evt->m_metaDown; m_rawCode = evt->m_rawCode; m_rawFlags = evt->m_rawFlags; m_uniChar = evt->m_uniChar; } //==================================================================================================== //= Interfaz de subscriptor de ventos //==================================================================================================== GNC::GCS::Events::ISubscriptorEventos::ISubscriptorEventos() { } GNC::GCS::Events::ISubscriptorEventos::~ISubscriptorEventos() { } // Propagacion de eventos de raton void GNC::GCS::Events::ISubscriptorEventos::OnMouseEvents(GNC::GCS::Events::EventoRaton&) { } // Propagacion de eventos de teclado void GNC::GCS::Events::ISubscriptorEventos::OnKeyEvents(GNC::GCS::Events::EventoTeclado&) { } //==================================================================================================== //= Interfaz de publicacion de eventos //==================================================================================================== GNC::GCS::Events::IPublicadorEventos::IPublicadorEventos() { } GNC::GCS::Events::IPublicadorEventos::~IPublicadorEventos() { } void GNC::GCS::Events::IPublicadorEventos::InsertarListener(GNC::GCS::Events::ISubscriptorEventos* pListener) { IteradorListaListeners it; for (it = m_Listeners.begin(); it != m_Listeners.end() && (*it) != pListener; ++it); if (it == m_Listeners.end()) { m_Listeners.push_back(pListener); } } void GNC::GCS::Events::IPublicadorEventos::EliminarListener(GNC::GCS::Events::ISubscriptorEventos* pListener) { IteradorListaListeners it; for (it = m_Listeners.begin(); it != m_Listeners.end() && (*it) != pListener; ++it); if (it != m_Listeners.end()) { m_Listeners.erase(it); } } void GNC::GCS::Events::IPublicadorEventos::PropagarEvento(GNC::GCS::Events::EventoRaton& evt) { for (IteradorListaListeners it = m_Listeners.begin(); it != m_Listeners.end(); ++it) { (*it)->OnMouseEvents(evt); } } void GNC::GCS::Events::IPublicadorEventos::PropagarEvento(GNC::GCS::Events::EventoTeclado& evt) { for (IteradorListaListeners it = m_Listeners.begin(); it != m_Listeners.end(); ++it) { (*it)->OnKeyEvents(evt); } } ginkgocadx-3.8.7/cadxcore/api/ievento.h000066400000000000000000000223131314736454600200500ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IEVENT_H #define IEVENT_H #include #include #include #include #include #include #include #include #define ginkgoAmbitoGeneral 0 //---------------------------------------------------------------------------------------------------- //region "Forward Declarations" class wxMouseEvent; class wxKeyEvent; namespace GNC { namespace GCS { class Contexto3D; class IVista; } } //endregion namespace GNC { namespace GCS { namespace Events { //==================================================================================================== //= Interfaz de evento //==================================================================================================== class EXTAPI IEvent { public: //codigo de evento es obligatorio y unico para cada evento //el codigo ambito sirve para jerarquizar los eventos entre eventos de guardado, de widgets... //prioridad: 0 es la maxima prioridad, se procesaran antes los eventos cuya prioridad sea menor //sincronoInterfaz: el procesamiento del evento ha de ser sincrono con la interfaz? //vista: vista a la que esta asociado, NULL es la vista general IEvent(long codigoEvento, long codigoAmbito = ginkgoAmbitoGeneral, long prioridad = 100, GNC::GCS::IVista* pVista = NULL); virtual ~IEvent(); virtual bool IsEqual(const IEvent& evt) const; virtual void pushInfo(std::ostream& ) const; bool IsSkipped() const; void Skip(bool skip = true); long GetCodigoEvento() const; long GetCodigoAmbito() const; void SetAmbito(long codigoAmbito); GNC::GCS::IVista* GetVista() const; void SetVista(GNC::GCS::IVista* pVista); long GetPrioridad() const; void SetPrioridad(long prioridad); void SetNombre(const char* nombre); void SetNombre(std::string& nombre); const std::string& GetNombre() const; inline friend std::ostream& operator<<(std::ostream& out, const IEvent& e) { out << "[ nombre = " << e.m_Nombre.c_str() << ", codigo = " << e.m_codigoEvento << ", ambito = " << e.m_codigoAmbito << ", prio = " << e.m_prioridad << ", vista = " << e.m_pVista << ", [ "; e.pushInfo(out); out << " ] ]"; return out; } inline friend std::ostream& operator<<(std::ostream& out, const IEvent* e) { if (e == NULL) { out << "[ NULL ]"; } else { out << *e; } return out; } protected: long m_codigoEvento; long m_codigoAmbito; long m_prioridad; bool m_skip; GNC::GCS::IVista* m_pVista; std::string m_Nombre; }; //==================================================================================================== //= Interfaz de evento de raton //==================================================================================================== class EXTAPI EventoRaton { public: typedef enum Boton { EB_CUALQUIERA, EB_IZQUIERDO, EB_DERECHO, EB_CENTRAL } Boton; typedef enum Tipo { ET_UNKNOWN, ET_ENTER, ET_LEAVE, ET_MOTION, ET_DOWN, ET_UP, ET_DCLICK } Tipo; public: EventoRaton(wxMouseEvent* evt, Contexto3D* pContexto); ~EventoRaton(); bool ButtonDown(Boton but = EB_CUALQUIERA) const; bool ButtonDown(const GNC::GCS::TriggerButton& button) const; bool ButtonDClick(Boton but = EB_CUALQUIERA) const; bool ButtonDClick(const GNC::GCS::TriggerButton& button) const; bool ButtonUp(Boton but = EB_CUALQUIERA) const; bool ButtonUp(const GNC::GCS::TriggerButton& button) const; bool Button(Boton but) const; bool Button(const GNC::GCS::TriggerButton& button) const; bool ButtonIsDown(Boton but) const; bool ButtonIsDown(const GNC::GCS::TriggerButton& button) const; bool ControlDown() const; bool MetaDown() const; bool AltDown() const; bool ShiftDown() const; bool LeftDown() const; bool MiddleDown() const; bool RightDown() const; bool LeftUp() const; bool MiddleUp() const; bool RightUp() const; bool LeftDClick() const; bool MiddleDClick() const; bool RightDClick() const; bool LeftIsDown() const; bool MiddleIsDown() const; bool RightIsDown() const; bool AnyIsDown() const; bool Dragging() const; bool Moving() const; bool Entering() const; bool Leaving() const; int GetWheelRotation() const; int GetWheelDelta() const; int GetLinesPerAction() const; bool IsPageScroll() const; void Skip(bool skip = true); bool GetSkipped() const; void ParseWXEvent(wxMouseEvent* evt); public: GNC::GCS::Vector3D wP; GNC::GCS::Vector iP; int sX; int sY; Contexto3D* c; bool m_left; bool m_middle; bool m_right; bool m_any; bool m_leftDown; bool m_middleDown; bool m_rightDown; bool m_anyDown; Tipo m_tipo; bool m_controlDown; bool m_shiftDown; bool m_altDown; bool m_metaDown; int m_wheelRotation; int m_wheelDelta; int m_linesPerAction; bool m_skip; }; //==================================================================================================== //= Interfaz de evento de teclado //==================================================================================================== class EXTAPI EventoTeclado { public: Contexto3D* c; public: EventoTeclado(wxKeyEvent* evt, Contexto3D* pContexto); ~EventoTeclado(); bool ControlDown() const; bool ShiftDown() const; bool MetaDown() const; bool AltDown() const; bool HasModifiers() const; int GetKeyCode() const; wchar_t GetUnicodeKey() const; unsigned int GetRawKeyCode() const; unsigned int GetRawKeyFlags() const; void Skip(bool skip = true); bool GetSkipped() const; void ParseWXEvent(wxKeyEvent* evt); public: bool m_isKeyDown; long m_keyCode; bool m_controlDown; bool m_shiftDown; bool m_altDown; bool m_metaDown; wchar_t m_uniChar; unsigned int m_rawCode; unsigned int m_rawFlags; bool m_skip; }; //==================================================================================================== //= Interfaz de subscriptor de ventos //==================================================================================================== class EXTAPI ISubscriptorEventos { public: ISubscriptorEventos(); virtual ~ISubscriptorEventos(); // Propagacion de eventos de raton virtual void OnMouseEvents(GNC::GCS::Events::EventoRaton&); // Propagacion de eventos de teclado virtual void OnKeyEvents(GNC::GCS::Events::EventoTeclado&); }; //==================================================================================================== //= Interfaz de publicacion de eventos //==================================================================================================== class EXTAPI IPublicadorEventos { public: typedef std::list ListaListeners; typedef ListaListeners::iterator IteradorListaListeners; IPublicadorEventos(); ~IPublicadorEventos(); void InsertarListener(GNC::GCS::Events::ISubscriptorEventos* pListener); void EliminarListener(GNC::GCS::Events::ISubscriptorEventos* pListener); protected: void PropagarEvento(GNC::GCS::Events::EventoRaton& evt); void PropagarEvento(GNC::GCS::Events::EventoTeclado& evt); protected: ListaListeners m_Listeners; }; } } } #endif ginkgocadx-3.8.7/cadxcore/api/iexception.cpp000066400000000000000000000036431314736454600211060ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include GNC::GCS::IException::IException(const std::string& msg, const std::string& component, bool fatal) throw() { this->cause = msg; this->component = component; this->fatal = fatal; } GNC::GCS::IException::~IException() throw() { } const std::string& GNC::GCS::IException::GetComponent() const { return component; } const std::string& GNC::GCS::IException::GetCause() const { return cause; } const char* GNC::GCS::IException::what() const throw() { return cause.c_str(); } std::string GNC::GCS::IException::GetFullCause() const { return *this; } bool GNC::GCS::IException::IsFatal() const { return fatal; } GNC::GCS::IException::operator std::string() const { return _Std("Exception in component") + std::string(" ") + GetComponent() + std::string(" :\n") + GetCause(); } //========================= GNC::GCS::IRequestingException::IRequestingException(const std::string& msg, const std::string& component, bool fatal) throw() : IException(msg, component, fatal) { } GNC::GCS::IRequestingException::~IRequestingException() throw() { } ginkgocadx-3.8.7/cadxcore/api/iexception.h000066400000000000000000000034771314736454600205600ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IEXCEPTION_H #define IEXCEPTION_H #include #include #include namespace GNC { namespace GCS { class EXTAPI IException : public std::exception { public: IException(const std::string& msg, const std::string& component="GNC", bool fatal = true) throw(); virtual ~IException() throw(); const std::string& GetComponent() const; const std::string& GetCause() const; virtual const char* what() const throw(); std::string GetFullCause() const; bool IsFatal() const; operator std::string () const; inline const std::string str() const { return (std::string) *this; } protected: std::string cause; std::string component; bool fatal; }; class EXTAPI IRequestingException : public IException { public: IRequestingException(const std::string& msg, const std::string& component="GNC", bool fatal = true) throw(); virtual ~IRequestingException() throw(); virtual bool shouldExit() = 0; }; } } #endif ginkgocadx-3.8.7/cadxcore/api/ihistorytool.cpp000066400000000000000000000102701314736454600215010ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ihistorytool.h" #include #include
#include #include #include #include #include #include namespace GNC { namespace GCS { class EventHandlerHistoryTool: public wxEvtHandler { public: EventHandlerHistoryTool(wxEvtHandler* pParent, GNC::GCS::IHistoryTool* pTool):wxEvtHandler() { m_pParent = pParent; m_pTool=pTool; m_pParent->Connect(m_pTool->ID, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerHistoryTool::OnClick),NULL,this); } ~EventHandlerHistoryTool() { m_pParent->Disconnect(m_pTool->ID, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerHistoryTool::OnClick),NULL,this); m_pParent = NULL; m_pTool = NULL; } void OnClick( wxCommandEvent& event ) { m_pTool->Execute(); event.Skip(false); } GNC::GCS::IHistoryTool* m_pTool; wxEvtHandler* m_pParent; }; class HistoryToolMenuItem : public wxMenuItem { public: HistoryToolMenuItem(wxEvtHandler* pParent, const wxString& nombre, wxMenu* pMenuPadre, GNC::GCS::IHistoryTool* pTool):wxMenuItem(pMenuPadre,pTool->ID,nombre,nombre,wxITEM_NORMAL) { pEventHandler = new EventHandlerHistoryTool(pParent,pTool); #ifdef __WXMSW__ SetBitmaps(pTool->Icon); #else SetBitmap(pTool->Icon); #endif } ~HistoryToolMenuItem() { if(pEventHandler != NULL) { delete pEventHandler; pEventHandler = NULL; } } EventHandlerHistoryTool* pEventHandler; }; } } GNC::GCS::IHistoryTool::IHistoryTool(UID id, TToolFamily family, const std::string& shortDescription, const std::string& description, const wxBitmap& icon, const wxBitmap& bigIcon) : ID(id), Family(family), ShortDescription(shortDescription), Description(description), Icon(icon), BigIcon(bigIcon), EventHandler(NULL) { } GNC::GCS::IHistoryTool::~IHistoryTool() { } void GNC::GCS::IHistoryTool::AppendToolIn(wxGinkgoToolBar* pParent, bool big) { if (big) { if ( BigIcon.IsOk() ) { pParent->AddTool(this->ID, wxString::FromUTF8(ShortDescription.c_str()), BigIcon, wxString::FromUTF8(Description.c_str())); } } else { pParent->AddTool(this->ID, wxString::FromUTF8(ShortDescription.c_str()), Icon, wxString::FromUTF8(Description.c_str())); } } void GNC::GCS::IHistoryTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { pMenu->Append(new HistoryToolMenuItem(pParent,wxString::FromUTF8(Description.c_str()),pMenu,this)); } bool GNC::GCS::IHistoryTool::AreSeriesFullyDownloaded(const std::list& seriesPk) { for (std::list::const_iterator it = seriesPk.begin(); it != seriesPk.end(); ++it) { if (GNC::GCS::IHistoryController::Instance()->GetSeriesModel((*it)).location == GNC::GCS::IHistoryController::TL_WadoLinked) { return false; } } return true; } //ignore series by default... void GNC::GCS::IHistoryTool::Execute(const std::list& /*seriesPk*/) { Execute(); } ginkgocadx-3.8.7/cadxcore/api/ihistorytool.h000066400000000000000000000043571314736454600211570ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IHISTORYTOOL_H #define IHISTORYTOOL_H #include #include #include #include class wxWindow; class wxGinkgoToolBar; class wxEvtHandler; class wxMenu; namespace GNC { namespace GCS { class EventHandlerHistoryTool; class EXTAPI IHistoryTool { public: typedef unsigned int UID; typedef enum { TFamily_Open, TFamily_Dicomize, TFamily_Delete, TFamily_ShowMetadata, TFamily_Q_R, TFamily_Anonymize, TFamily_Export, TFamily_Other, TFamily_Send } TToolFamily; IHistoryTool(UID id, TToolFamily family, const std::string& shortDescription, const std::string& description, const wxBitmap& icon, const wxBitmap& bigIcon = wxBitmap()); virtual ~IHistoryTool(); virtual void AppendToolIn(wxGinkgoToolBar* pParent, bool big = false); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); virtual void Execute() = 0; virtual void Execute(const std::list& seriesPk); virtual bool Enabled() { return true; } virtual bool AreSeriesFullyDownloaded(const std::list& seriesPk); UID ID; TToolFamily Family; std::string ShortDescription; std::string Description; wxBitmap Icon; wxBitmap BigIcon; EventHandlerHistoryTool* EventHandler; }; } } #endif ginkgocadx-3.8.7/cadxcore/api/ihl7parser.cpp000066400000000000000000000017501314736454600210140ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ihl7parser.h" #include void GIL::Hl7Parser::Messages::MessageInterpreter::GenerateTimeStamp() { std::string timeStamp(wxDateTime::Now().Format(wxT("%Y%m%d%H%M%S")).ToUTF8()); MSH.SetTimeStamp(timeStamp); } ginkgocadx-3.8.7/cadxcore/api/ihl7parser.h000066400000000000000000001631261314736454600204670ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "imodelohl7.h" #include #include #include #include namespace GIL { namespace Hl7Parser { namespace Segmentos { class MSH : public GIL::HL7::Segment { protected: public: MSH(const std::string& messageType, const std::string& messageTriggerEvent, const std::string& messageHeader, const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : GIL::HL7::Segment("MSH",rs,fs,sfs) { GIL::HL7::Segment& msh = *this; msh <<= GIL::HL7::Field(1, "MSH.1") << GIL::HL7::Component(1, "", m_FS); msh <<= GIL::HL7::Field(2, "MSH.2") << GIL::HL7::Component(1, "", m_CS + "~\\&"); msh <<= GIL::HL7::Field(3, "MSH.3") << GIL::HL7::Component(1, "HD.1"); // Sending Application msh <<= GIL::HL7::Field(4, "MSH.4") << GIL::HL7::Component(1, "HD.1"); // Sending Facility msh <<= GIL::HL7::Field(5, "MSH.5") << GIL::HL7::Component(1, "HD.1"); // Receiving Application msh <<= GIL::HL7::Field(6, "MSH.6") << GIL::HL7::Component(1, "HD.1"); // Receiving Facility msh <<= GIL::HL7:: Field(7, "MSH.7") << GIL::HL7::Component(1, "TS.1"); // TimeStamp: YYYYMMDDhhmmss msh <<= GIL::HL7::Field(9, "MSH.9") << GIL::HL7::Component(1, "MSG.1", messageType) << GIL::HL7::Component(2, "MSG.2", messageTriggerEvent) << GIL::HL7::Component(3, "MSG.3", messageHeader); // Message Type msh <<= GIL::HL7::Field(10, "MSH.10") << GIL::HL7::Component(1, ""); // Message Control ID msh <<= GIL::HL7::Field(11, "MSH.11") << GIL::HL7::Component(1, "PT.1", "P"); // Processing ID msh <<= GIL::HL7::Field(12, "MSH.12") << GIL::HL7::Component(1, "VID.1", "2.5"); // Version ID msh <<= GIL::HL7::Field(15, "MSH.15") << GIL::HL7::Component(1, "", "AL"); // Accept Acknowledgment type msh <<= GIL::HL7::Field(16, "MSH.16") << GIL::HL7::Component(1, "", "NE"); // Application Acknowledgement type } MSH(const GIL::HL7::Segment& segment) { *this = segment; } MSH& operator=(const GIL::HL7::Segment& segment) { GIL::HL7::Segment& msh = *this; msh = segment; return *this; } void SetSendingApplication(const std::string& sendingApplication) { GIL::HL7::Segment& msh = *this; msh[3][1] = sendingApplication; } const std::string& GetSendingApplication() { GIL::HL7::Segment& msh = *this; return msh[3][1]; } void SetSendingFacility(const std::string& sendingFacility) { GIL::HL7::Segment& msh = *this; msh[4][1] = sendingFacility; } const std::string& GetSendingFacility() { GIL::HL7::Segment& msh = *this; return msh[4][1]; } void SetReceivingApplication(const std::string& receivingApplication) { GIL::HL7::Segment& msh = *this; msh[5][1] = receivingApplication; } const std::string& GetReceivingApplication() { GIL::HL7::Segment& msh = *this; return msh[5][1]; } void SetReceivingFacility(const std::string& receivingFacility) { GIL::HL7::Segment& msh = *this; msh[6][1] = receivingFacility; } const std::string& GetReceivingFacility() { GIL::HL7::Segment& msh = *this; return msh[6][1]; } void SetTimeStamp(const std::string& messageTimeStamp) { GIL::HL7::Segment& msh = *this; msh[7][1] = messageTimeStamp; } const std::string& GetTimeStamp() { GIL::HL7::Segment& msh = *this; return msh[7][1]; } void SetMessageType(const std::string& messageType) { GIL::HL7::Segment& msh = *this; msh[9][1] = messageType; } const std::string& GetMessageType() { GIL::HL7::Segment& msh = *this; return msh[9][1]; } void SetMessageTriggerEvent(const std::string& triggerEvent) { GIL::HL7::Segment& msh = *this; msh[9][2] = triggerEvent; } const std::string& GetMessageTriggerEvent() { GIL::HL7::Segment& msh = *this; return msh[9][2]; } void SetMessageHeader(const std::string& messageHeader) { GIL::HL7::Segment& msh = *this; msh[9][3] = messageHeader; } const std::string& GetMessageHeader() { GIL::HL7::Segment& msh = *this; return msh[9][3]; } void SetMessageControlId(const std::string& messageControlId) { GIL::HL7::Segment& msh = *this; msh[10][1] = messageControlId; } const std::string& GetMessageControlId() { GIL::HL7::Segment& msh = *this; return msh[10][1]; } }; class MSA : public GIL::HL7::Segment { public: typedef enum ACK_Code { AC_Success, AC_Error, AC_Rejected, AC_Unknown } ACK_Code; MSA(const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : GIL::HL7::Segment("MSA", rs, fs, sfs) { GIL::HL7::Segment& msa = *this; msa <<= GIL::HL7::Field(1, "MSA.1") << GIL::HL7::Component(1, ""); msa <<= GIL::HL7::Field(2, "MSA.2") << GIL::HL7::Component(1, ""); } MSA& operator=(const GIL::HL7::Segment& segment) { GIL::HL7::Segment& msa = *this; msa = segment; return *this; } void SetReferralMessageControlId(const std::string& refMsgControlId) { GIL::HL7::Segment& msa = *this; msa[2][1] = refMsgControlId; } const std::string& GetReferralMessageControlId() { GIL::HL7::Segment& msa = *this; return msa[2][1]; } void SetAckCode(ACK_Code code) { GIL::HL7::Segment& msa = *this; switch(code) { case AC_Success: msa[1][1] = "CA"; break; case AC_Rejected: msa[1][1] = "CR"; break; case AC_Error: case AC_Unknown: default: msa[1][1] = "CE"; break; } } ACK_Code GetAckCode() { GIL::HL7::Segment& msa = *this; if (msa[1][1] == "CA" || msa[1][1] == "AA") { return AC_Success; } else if (msa[1][1] == "CR" || msa[1][1] == "AR") { return AC_Rejected; } else if (msa[1][1] == "CE" || msa[1][1] == "AE") { return AC_Error; } else { return AC_Unknown; } } void SetAckCodeString(const std::string& ackCodeString) { GIL::HL7::Segment& msa = *this; msa[1][1] = ackCodeString; } const std::string& GetAckCodeString() { GIL::HL7::Segment& msa = *this; return msa[1][1]; } bool IsSuccess() { return GetAckCode() == AC_Success; } bool IsRejected() { return GetAckCode() == AC_Rejected; } bool IsErrored() { return GetAckCode() == AC_Error; } bool IsUnknown() { return GetAckCode() == AC_Unknown; } }; class ERR : public GIL::HL7::Segment { public: ERR(const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : GIL::HL7::Segment("ERR", rs, fs, sfs) { //GIL::HL7::Segment& msh = *this; } ERR& operator=(const GIL::HL7::Segment& segment) { GIL::HL7::Segment& err = *this; err = segment; return *this; } void SetErrorCode(GIL::HL7::Message::ErrorCode errorCode) { GIL::HL7::Segment& err = *this; err[2][1] = GIL::HL7::Message::GetErrorCodeAsString(errorCode); } GIL::HL7::Message::ErrorCode GetErrorCode() { GIL::HL7::Segment& err = *this; return GIL::HL7::Message::GetErrorCodeFromErrorCodeAsString(err[2][1]); } const std::string GetErrorCodeDescription() { return GIL::HL7::Message::GetErrorCodeDescription(GetErrorCode()); } const std::string GetErrorMessage() { GIL::HL7::Segment& err = *this; return err[6][1]; } void SetErrorSeverity(GIL::HL7::Message::ErrorSeverity errorSeverity) { GIL::HL7::Segment& err = *this; err[3][1] = GIL::HL7::Message::GetErrorSeverityString(errorSeverity); } GIL::HL7::Message::ErrorSeverity GetErrorSeverity() { GIL::HL7::Segment& err = *this; return GIL::HL7::Message::GetErrorSeverityFromString(err[3][1]); } }; class PID : public GIL::HL7::Segment { public: PID(const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : GIL::HL7::Segment("PID", rs, fs, sfs) { GIL::HL7::Segment& pid = *this; pid <<= GIL::HL7::Field(1, "PID.1") << GIL::HL7::Component(1, "SI.1"); pid <<= GIL::HL7::Field(3, "PID.3"); pid <<= GIL::HL7::Field(4, "PID.4"); pid <<= GIL::HL7::Field(5, "PID.5"); pid <<= GIL::HL7::Field(6, "PID.6"); } PID& operator=(const GIL::HL7::Segment& segment) { GIL::HL7::Segment& pid = *this; pid = segment; return *this; } void SetSetId(const std::string& setId) { GIL::HL7::Segment& pid = *this; pid[1][1] = setId; } const std::string& GetSetId() { GIL::HL7::Segment& pid = *this; return pid[1][1]; } void ClearPatientIdentification() { GIL::HL7::Segment& pid = *this; pid <<= GIL::HL7::Field(3, "PID.3"); } /* Numero de Identificacion Fiscal */ void SetPatientNIF( const std::string& nif) { ClearPatientIdentification(); GIL::HL7::Segment& pid = *this; pid[3] << GIL::HL7::Component(1, "CX.1", nif); pid[3] << GIL::HL7::Component(4, "CX.4", "MI"); pid[3] << GIL::HL7::Component(5, "CX.5", "NNESP"); pid[3] << GIL::HL7::Component(9, "CX.9", "ESP&&ISO3166"); } void AddPatientNIF( const std::string& nif) { GIL::HL7::Segment& pid = *this; GIL::HL7::Field pid_3(3, "PID.3"); pid_3 << GIL::HL7::Component(1, "CX.1", nif); pid_3 << GIL::HL7::Component(4, "CX.4", "MI"); pid_3 << GIL::HL7::Component(5, "CX.5", "NNESP"); pid_3 << GIL::HL7::Component(9, "CX.9", "ESP&&ISO3166"); pid << pid_3; } /* Numero de Seguridad Social */ void SetPatientSS(const std::string& numss) { ClearPatientIdentification(); GIL::HL7::Segment& pid = *this; pid[3] << GIL::HL7::Component(1, "CX.1", numss); pid[3] << GIL::HL7::Component(4, "CX.4", "SS"); pid[3] << GIL::HL7::Component(5, "CX.5", "SS"); pid[3] << GIL::HL7::Component(9, "CX.9", "ESP&&ISO3166"); } /* Numero de Seguridad Social */ void AddPatientSS(const std::string& numss) { GIL::HL7::Segment& pid = *this; GIL::HL7::Field pid_3(3, "PID.3"); pid_3 << GIL::HL7::Component(1, "CX.1", numss); pid_3 << GIL::HL7::Component(4, "CX.4", "SS"); pid_3 << GIL::HL7::Component(5, "CX.5", "SS"); pid_3 << GIL::HL7::Component(9, "CX.9", "ESP&&ISO3166"); pid << pid_3; } /* CIP del Servicio Nacional de Salud*/ void SetPatientCIP(const std::string& cip) { ClearPatientIdentification(); GIL::HL7::Segment& pid = *this; pid[3] << GIL::HL7::Component(1, "CX.1", cip); pid[3] << GIL::HL7::Component(4, "CX.4", "MS"); pid[3] << GIL::HL7::Component(5, "CX.5", "HC"); pid[3] << GIL::HL7::Component(9, "CX.9", "ESP&&ISO3166"); } /* CIP del Servicio Nacional de Salud*/ void AddPatientCIP(const std::string& cip) { GIL::HL7::Segment& pid = *this; GIL::HL7::Field pid_3(3, "PID.3"); pid_3 << GIL::HL7::Component(1, "CX.1", cip); pid_3 << GIL::HL7::Component(4, "CX.4", "MS"); pid_3 << GIL::HL7::Component(5, "CX.5", "HC"); pid_3 << GIL::HL7::Component(9, "CX.9", "ESP&&ISO3166"); pid << pid_3; } /* CIP Hl7Parser */ void SetPatientHl7ParserCIP(const std::string& cip) { ClearPatientIdentification(); GIL::HL7::Segment& pid = *this; pid[3] << GIL::HL7::Component(1, "CX.1", cip); pid[3] << GIL::HL7::Component(4, "CX.4", "CACL"); pid[3] << GIL::HL7::Component(5, "CX.5", "JHN"); pid[3] << GIL::HL7::Component(9, "CX.9", "CL&&ISO3166-2"); } /* CIP Hl7Parser */ void AddPatientHl7ParserCIP(const std::string& cip) { GIL::HL7::Segment& pid = *this; GIL::HL7::Field pid_3(3, "PID.3"); pid_3 << GIL::HL7::Component(1, "CX.1", cip); pid_3 << GIL::HL7::Component(4, "CX.4", "CACL"); pid_3 << GIL::HL7::Component(5, "CX.5", "JHN"); pid_3 << GIL::HL7::Component(9, "CX.9", "CL&&ISO3166-2"); pid << pid_3; } /* Numero de pasaporte */ void SetPatientPassportNum(const std::string& num) { ClearPatientIdentification(); GIL::HL7::Segment& pid = *this; pid[3] << GIL::HL7::Component(1, "CX.1", num); pid[3] << GIL::HL7::Component(4, "CX.4", "MI"); pid[3] << GIL::HL7::Component(5, "CX.5", "PPN"); pid[3] << GIL::HL7::Component(9, "CX.9", "ESP&&ISO3166"); } /* Numero de pasaporte */ void AddPatientPassportNum(const std::string& num) { GIL::HL7::Segment& pid = *this; GIL::HL7::Field pid_3(3, "PID.3"); pid_3 << GIL::HL7::Component(1, "CX.1", num); pid_3 << GIL::HL7::Component(4, "CX.4", "MI"); pid_3 << GIL::HL7::Component(5, "CX.5", "PPN"); pid_3 << GIL::HL7::Component(9, "CX.9", "ESP&&ISO3166"); pid << pid_3; } /* Numero de Historia Clinica (Dependiente del centro) */ void SetPatientNHC(const std::string& nhc, const std::string& idCentro) { ClearPatientIdentification(); GIL::HL7::Segment& pid = *this; pid[3] << GIL::HL7::Component(1, "CX.1", nhc); pid[3] << GIL::HL7::Component(4, "CX.4", "HIS"); pid[3] << GIL::HL7::Component(5, "CX.5", "PI"); pid[3] << GIL::HL7::Component(9, "CX.9", idCentro + std::string("&&99CENTROSACYL")); } /* Numero de Historia Clinica (Dependiente del centro) */ void AddPatientNHC(const std::string& nhc, const std::string& idCentro) { GIL::HL7::Segment& pid = *this; GIL::HL7::Field pid_3(3, "PID.3"); pid_3 << GIL::HL7::Component(1, "CX.1", nhc); pid_3 << GIL::HL7::Component(4, "CX.4", "HIS"); pid_3 << GIL::HL7::Component(5, "CX.5", "PI"); pid_3 << GIL::HL7::Component(9, "CX.9", idCentro + std::string("&&99CENTROSACYL")); pid << pid_3; } void SetPatientName(const std::string& nombre, const std::string& apellido1, const std::string& apellido2) { GIL::HL7::Segment& pid = *this; pid[5] << GIL::HL7::Component(1, "XPN.1", apellido1); pid[5] << GIL::HL7::Component(2, "XPN.2", nombre); pid[6] << GIL::HL7::Component(1, "XPN.1", apellido2); } }; class PV1 : public GIL::HL7::Segment { public: PV1(const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : GIL::HL7::Segment("PV1", rs, fs, sfs) { GIL::HL7::Segment& pv1 = *this; pv1 <<= GIL::HL7::Field(1, "PV1.1") << GIL::HL7::Component(1, "SI.1"); pv1 <<= GIL::HL7::Field(19, "PV1.19") << GIL::HL7::Component(1, "CX.1") << GIL::HL7::Component(4, "CX.4") << GIL::HL7::Component(5, "CX.5") << GIL::HL7::Component(9, "CX.9"); } PV1& operator=(const GIL::HL7::Segment& segment) { GIL::HL7::Segment& pv1 = *this; pv1 = segment; return *this; } void SetSetId(const std::string& id) { GIL::HL7::Segment& pv1 = *this; pv1[1] << GIL::HL7::Component(1, "SI.1", id); } void SetPatientClass(const std::string& patientClass) { GIL::HL7::Segment& pv1 = *this; pv1[2] << GIL::HL7::Component(1, "IS.1", patientClass); } void SetEpisodeNumber(const std::string& episodeNumber, const std::string& ambitoPeticion, const std::string& idCentro) { GIL::HL7::Segment& pv1 = *this; if (!episodeNumber.empty()) { pv1[19] << GIL::HL7::Component(1, "CX.1", episodeNumber); } pv1[19] << GIL::HL7::Component(4, "CX.4", ambitoPeticion); pv1[19] << GIL::HL7::Component(5, "CX.5", "VN"); pv1[19] << GIL::HL7::Component(9, "CX.9", idCentro + std::string("&&99CENTROHl7Parser")); } }; class ORC : public GIL::HL7::Segment { public: ORC(const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : GIL::HL7::Segment("ORC", rs, fs, sfs) { GIL::HL7::Segment& orc = *this; orc <<= GIL::HL7::Field(1, "ORC.1") << GIL::HL7::Component(1, "ID.1"); orc <<= GIL::HL7::Field(2, "ORC.2") << GIL::HL7::Component(1, "EI.1"); orc <<= GIL::HL7::Field(2, "ORC.3") << GIL::HL7::Component(1, "EI.1"); orc <<= GIL::HL7::Field(4, "ORC.4") << GIL::HL7::Component(1, "EI.1"); orc <<= GIL::HL7::Field(5, "ORC.5") << GIL::HL7::Component(1, "ID.1"); orc <<= GIL::HL7::Field(12, "ORC.12") << GIL::HL7::Component(1, "XCN.1") << GIL::HL7::Component(2, "XCN.2") << GIL::HL7::Component(3, "XCN.3") << GIL::HL7::Component(4, "XCN.4") << GIL::HL7::Component(9, "XCN.9") << GIL::HL7::Component(13, "XCN.13") << GIL::HL7::Component(22, "XCN.22"); orc <<= GIL::HL7::Field(17, "ORC.17") << GIL::HL7::Component(1, "CE.1") << GIL::HL7::Component(2, "CE.2") << GIL::HL7::Component(3, "CE.3"); } ORC& operator=(const GIL::HL7::Segment& segment) { GIL::HL7::Segment& orc = *this; orc = segment; return *this; } void SetControlOrder(const std::string& controlOrder) { GIL::HL7::Segment& orc = *this; orc[1][1] = controlOrder; } void SetPlacerOrderNumber(const std::string& placerOrder) { GIL::HL7::Segment& orc = *this; orc[2][1] = placerOrder; orc[4][1] = placerOrder; } void SetFillerOrderNumber(const std::string& fillerOrder) { GIL::HL7::Segment& orc = *this; orc[3][1] = fillerOrder; } void SetStatus(const std::string& status) { GIL::HL7::Segment& orc = *this; orc[5][1] = status; } void SetOrderingProviderName(const std::string& nombre, const std::string& apellido1, const std::string& apellido2) { GIL::HL7::Segment& orc = *this; orc[12][2] = apellido1; orc[12][3] = nombre; orc[12][4] = apellido2; } void SetOrderingProviderNIF(const std::string& nif) { GIL::HL7::Segment& orc = *this; orc[12][1] = nif; orc[12][9] = "MI"; orc[12][13] = "NNESP"; orc[12][22] ="ESP&&ISO3166"; } void SetOrderingProviderCollegNumber(const std::string& num) { GIL::HL7::Segment& orc = *this; orc[12][1] = num; orc[12][9] = "MD"; orc[12][13] = "COM"; orc[12][22] ="ESP&&ISO3166"; } void SetOrderingFacility(const std::string& id, const std::string& nombre) { GIL::HL7::Segment& orc = *this; orc[21][1] = nombre; orc[21][10] = id; } }; class OBR : public GIL::HL7::Segment { public: typedef enum Laterality_Code { LAT_R, LAT_L } ACK_Code; OBR(const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : GIL::HL7::Segment("OBR", rs, fs, sfs) { GIL::HL7::Segment& obr = *this; obr <<= GIL::HL7::Field(1, "OBR.1") << GIL::HL7::Component(1, "SI.1"); obr <<= GIL::HL7::Field(2, "OBR.2") << GIL::HL7::Component(1, "ST.1"); obr <<= GIL::HL7::Field(2, "OBR.3") << GIL::HL7::Component(1, "ST.1"); obr <<= GIL::HL7::Field(4, "OBR.4") << GIL::HL7::Component(1, "ST.1") << GIL::HL7::Component(2, "ST.1") << GIL::HL7::Component(3, "ID.1"); obr <<= GIL::HL7::Field(26, "OBR.26") << GIL::HL7::Component(1, "ST.1"); obr <<= GIL::HL7::Field(29, "OBR.26") << GIL::HL7::Component(1, "ST.1"); } OBR& operator=(const GIL::HL7::Segment& segment) { GIL::HL7::Segment& obr = *this; obr = segment; return *this; } void SetSetId(const std::string& id) { GIL::HL7::Segment& obr = *this; obr[1][1] = id; } void SetPlacerOrderNumber(const std::string& placeOrderUID) { GIL::HL7::Segment& obr = *this; obr[2][1] = placeOrderUID; } void SetStudyUID(const std::string& StudyUID) { GIL::HL7::Segment& obr = *this; obr[2][1] = StudyUID; } void SetFillerOrderNumber(const std::string& fillerOrder) { GIL::HL7::Segment& obr = *this; obr[3][1] = fillerOrder; } void SetFillerOrderNumber(const std::string& fillerOrderId, const std::string& fillerOrderNamespaceId) { GIL::HL7::Segment& obr = *this; obr[3][1] = fillerOrderId; obr[3][2] = fillerOrderNamespaceId; } void SetIdentifier(const std::string& identifier) { GIL::HL7::Segment& obr = *this; obr.ParseField(4, identifier); } void SetIdentifier(const std::string& codPrueba, const std::string& tipoPrueba, const std::string& sistemaCodificacion) { GIL::HL7::Segment& obr = *this; obr[4][1] = codPrueba; obr[4][2] = tipoPrueba; obr[4][3] = sistemaCodificacion; } void SetPlacerField1(const std::string& value) { GIL::HL7::Segment& obr = *this; obr[18][1] = value; } void SetParentResultIdentifier(const std::string& parentObservationIdentifier, const std::string& parentObservationSubIdentifier, const std::string& parentObservationValueDescriptor) { GIL::HL7::Segment& obr = *this; obr[26][1] = parentObservationIdentifier; obr[26][2] = parentObservationSubIdentifier; obr[26][3] = parentObservationValueDescriptor; } void SetParentID(const std::string& placerOrderUId, const std::string& fillerOderUId) { GIL::HL7::Segment& obr = *this; obr[29][1] = placerOrderUId; obr[29][2] = fillerOderUId; } void SetLaterality(Laterality_Code laterality) { GIL::HL7::Segment& obr = *this; switch(laterality) { case LAT_L: { obr[46][1] = "L"; obr[46][2] = "Izquierdo"; obr[46][3] = "HL70495"; } break; case LAT_R: { obr[46][1] = "R"; obr[46][2] = "Derecho"; obr[46][3] = "HL70495"; } break; } } }; class OBX : public GIL::HL7::Segment { public: OBX(const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : GIL::HL7::Segment("OBX", rs, fs, sfs) { GIL::HL7::Segment& obx = *this; obx <<= GIL::HL7::Field(1, "OBX.1") << GIL::HL7::Component(1, "SI.1"); obx <<= GIL::HL7::Field(2, "OBX.2") << GIL::HL7::Component(1, "ID.1"); obx <<= GIL::HL7::Field(3, "OBX.3") << GIL::HL7::Component(1, "ST.1") << GIL::HL7::Component(2, "ST.1") << GIL::HL7::Component(3, "ID.1"); obx <<= GIL::HL7::Field(5, "OBX.5") << GIL::HL7::Component(1, "") << GIL::HL7::Component(2, "") << GIL::HL7::Component(3, ""); obx <<= GIL::HL7::Field(11, "OBX.11") << GIL::HL7::Component(1, "ID.1"); obx <<= GIL::HL7::Field(16, "OBX.16") << GIL::HL7::Component(1, "XCN.1") << GIL::HL7::Component(2, "XCN.2") << GIL::HL7::Component(3, "XCN.3") << GIL::HL7::Component(4, "XCN.4") << GIL::HL7::Component(9, "XCN.9") << GIL::HL7::Component(13, "XCN.13") << GIL::HL7::Component(22, "XCN.22"); } OBX& operator=(const GIL::HL7::Segment& segment) { GIL::HL7::Segment& obx = *this; obx = segment; return *this; } void SetSetId(const std::string& id) { GIL::HL7::Segment& obx = *this; obx[1][1] = id; } void SetValueType(const std::string& valueType) { GIL::HL7::Segment& obx = *this; obx[2][1] = valueType; } void SetIdentifier(const std::string& codigoPrueba, const std::string& descPrueba, const std::string& sistemaCodificacion) { GIL::HL7::Segment& obx = *this; if (codigoPrueba != "") { obx[3][1] = codigoPrueba; } obx[3][2] = descPrueba; if (sistemaCodificacion != "") { obx[3][3] = sistemaCodificacion; } } void SetSubIdentifier(const std::string& value, bool unscape = true) { GIL::HL7::Segment& obx = *this; obx.ParseField(4, value, unscape); } void SetValue(const std::string& value, bool unscape = true) { GIL::HL7::Segment& obx = *this; obx.ParseField(5, value, unscape); } void SetWado(const std::string& value) { GIL::HL7::Segment& obx = *this; obx[5][1] = value; obx[5][3] = "image"; obx[5][4] = "dicom"; } void SetValueMetadata(const std::string& idAplicacion, const std::string& dataType, const std::string& dataSubType) { GIL::HL7::Segment& obx = *this; obx[5][2] = idAplicacion; obx[5][3] = dataType; obx[5][4] = dataSubType; } void SetObservationResultStatus(const std::string& status) { GIL::HL7::Segment& obx = *this; obx[11][1] = status; } void SetResponsiveObserverName(const std::string& nombre, const std::string& apellido1, const std::string& apellido2) { GIL::HL7::Segment& obx = *this; obx[16][2] = apellido1; obx[16][3] = nombre; obx[16][4] = apellido2; } void SetResponsiveObserverNIF(const std::string& nif) { GIL::HL7::Segment& obx = *this; obx[16][1] = nif; obx[16][9] = "MI"; obx[16][13] = "NNESP"; obx[16][22] ="ESP&&ISO3166"; } void AddObservationMethod(const std::string& codigo, const std::string& desc, const std::string& namespaceid) { GIL::HL7::Segment& obx = *this; obx << GIL::HL7::Field(17, "OBX.17") << GIL::HL7::Component(1, "ST.1", codigo) << GIL::HL7::Component(2, "ST.2", desc) << GIL::HL7::Component(3, "ST.3", namespaceid); } void SetObservationMethod(const std::string& codigo, const std::string& desc, const std::string& namespaceid) { GIL::HL7::Segment& obx = *this; obx[17][1] = codigo; obx[17][2] = desc; obx[17][3] = namespaceid; } }; class TQ1 : public GIL::HL7::Segment { public: TQ1(const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : GIL::HL7::Segment("TQ1", rs, fs, sfs) { GIL::HL7::Segment& tq1 = *this; tq1 <<= GIL::HL7::Field(1, "TQ.1") << GIL::HL7::Component(1, "SI.1"); tq1 <<= GIL::HL7::Field(9, "TQ.9") << GIL::HL7::Component(1, "ST.1"); } TQ1& operator=(const GIL::HL7::Segment& segment) { GIL::HL7::Segment& tq1 = *this; tq1 = segment; return *this; } void SetSetId(const std::string& id) { GIL::HL7::Segment& tq1 = *this; tq1[1][1] = id; } void SetUrgency(const std::string& urgency) { GIL::HL7::Segment& tq1 = *this; tq1[9][1] = urgency; } }; } namespace Messages { class MessageInterpreter { public: MessageInterpreter(const std::string& messageType, const std::string& messageTriggerEvent, const std::string& messageHeader, const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : MSH( messageType, messageTriggerEvent, messageHeader, rs, fs, sfs) { } MessageInterpreter(const GIL::HL7::Message& msg) : MSH(msg.GetSegment("MSH", 1)) { } virtual ~MessageInterpreter() { } virtual void GenerateTimeStamp(); void SetSendingApplication(const std::string& sendingApplication) { MSH.SetSendingApplication(sendingApplication); } const std::string& GetSendingApplication() { return MSH.GetSendingApplication(); } void SetSendingFacility(const std::string& sendingFacility) { MSH.SetSendingFacility(sendingFacility); } const std::string& GetSendingFacility() { return MSH.GetSendingFacility(); } void SetReceivingApplication(const std::string& receivingApplication) { MSH.SetReceivingApplication(receivingApplication); } const std::string& GetReceivingApplicacion() { return MSH.GetReceivingApplication(); } void SetReceivingFacility(const std::string& receivingFacility) { MSH.SetReceivingFacility(receivingFacility); } const std::string& GetReceivingFacility() { return MSH.GetReceivingFacility(); } void SetTimeStamp(const std::string& messageTimeStamp) { MSH.SetTimeStamp(messageTimeStamp); } const std::string& GetTimeStamp() { return MSH.GetTimeStamp(); } void SetMessageType(const std::string& messageType) { MSH.SetMessageType(messageType); } const std::string& GetMessageType() { return MSH.GetMessageType(); } void SetMessageTriggerEvent(const std::string& triggerEvent) { MSH.SetMessageTriggerEvent(triggerEvent); } const std::string& GetMessageTriggerEvent() { return MSH.GetMessageTriggerEvent(); } void SetMessageHeader(const std::string& messageHeader) { MSH.SetMessageHeader(messageHeader); } const std::string& GetMessageHeader() { return MSH.GetMessageHeader(); } void SetMessageControlId(const std::string& messageControlId) { MSH.SetMessageControlId(messageControlId); } const std::string& GetMessageControlId() { return MSH.GetMessageControlId(); } void Build(GIL::HL7::Message& msg) { GenerateTimeStamp(); msg.SetHeader(MSH.GetMessageHeader()); msg["MSH"] = MSH; BuildSpecific(msg); } protected: virtual void BuildSpecific(GIL::HL7::Message& msg) = 0; public: GIL::Hl7Parser::Segmentos::MSH MSH; protected: std::string messageType; std::string messageTriggerEvent; }; class ORU_R01Interpreter : public MessageInterpreter { public: class PatientResult { public: class Patient { public: class PatientIdentification { public: PatientIdentification() { } void SetSetId(unsigned int id) { std::stringstream ss; ss << id; PID.SetSetId(ss.str()); } void SetPatientNIF( const std::string& nif) { PID.SetPatientNIF(nif); } void AddPatientNIF( const std::string& nif) { PID.AddPatientNIF(nif); } /* Numero de Seguridad Social */ void SetPatientSS(const std::string& numss) { PID.SetPatientSS(numss); } /* Numero de Seguridad Social */ void AddPatientSS(const std::string& numss) { PID.AddPatientSS(numss); } /* CIP del Servicio Nacional de Salud*/ void SetPatientCIP(const std::string& cip) { PID.SetPatientCIP(cip); } /* CIP del Servicio Nacional de Salud*/ void AddPatientCIP(const std::string& cip) { PID.AddPatientCIP(cip); } /* CIP Hl7Parser */ void SetPatientHl7ParserCIP(const std::string& cip) { PID.SetPatientHl7ParserCIP(cip); } /* CIP Hl7Parser */ void AddPatientHl7ParserCIP(const std::string& cip) { PID.AddPatientHl7ParserCIP(cip); } /* Numero de pasaporte */ void AddPatientPassportNum(const std::string& num) { PID.AddPatientPassportNum(num); } /* Numero de pasaporte */ void SetPatientPassportNum(const std::string& num) { PID.SetPatientPassportNum(num); } /* Numero de Historia Clinica (Dependiente del centro) */ void SetPatientNHC(const std::string& nhc, const std::string& idCentro) { PID.SetPatientNHC(nhc, idCentro); } /* Numero de Historia Clinica (Dependiente del centro) */ void AddPatientNHC(const std::string& nhc, const std::string& idCentro) { PID.AddPatientNHC(nhc, idCentro); } void SetPatientName(const std::string& nombre, const std::string& apellido1, const std::string& apellido2) { PID.SetPatientName(nombre, apellido1, apellido2); } GIL::Hl7Parser::Segmentos::PID PID; }; class PatientVisit { public: PatientVisit() { } void SetEpisodeNumber(const std::string& nep, const std::string& ambitoPeticion, const std::string& idCentro) { PV1.SetEpisodeNumber(nep, ambitoPeticion, idCentro); } void SetSetId(unsigned int id) { std::stringstream ss; ss << id; PV1.SetSetId(ss.str()); } void SetPatientTypeExternal() { PV1.SetPatientClass("O"); } void SetPatientTypeAdmitted() { PV1.SetPatientClass("I"); } public: GIL::Hl7Parser::Segmentos::PV1 PV1; }; Patient() { } public: void BuildSpecific(GIL::HL7::Message& msg) { msg << patientIdentification.PID; msg << patientVisit.PV1; } PatientIdentification patientIdentification; PatientVisit patientVisit; }; class Order { public: class OrderCommon { public: OrderCommon() { } void SetStatusCompleted() { ORC.SetStatus("CM"); ORC.SetControlOrder("SC"); } void SetOrderingUID(const std::string& uid) { ORC.SetPlacerOrderNumber(uid); } void SetProducerUID(const std::string& producerUID) { ORC.SetFillerOrderNumber(producerUID); } void SetProducerUID(const std::string& accessionNumber,const std::string& idPACS) { std::stringstream ostr; ostr << accessionNumber << '^' << idPACS; ORC.SetFillerOrderNumber(ostr.str()); } void SetOrderingProviderName(const std::string& nombre, const std::string& apellido1, const std::string& apellido2) { ORC.SetOrderingProviderName(nombre, apellido1, apellido2); } void SetOrderingProviderNIF(const std::string& nif) { ORC.SetOrderingProviderNIF(nif); } void SetOrderingCenter(const std::string& id, const std::string& nombre) { ORC.SetOrderingFacility(id, nombre); } GIL::Hl7Parser::Segmentos::ORC ORC; }; class TimingQuantity { public: TimingQuantity() { } void SetSetId(unsigned int id) { std::stringstream ss; ss << id; TQ1.SetSetId(ss.str()); } void SetUrgencyNormal() { TQ1.SetUrgency("R"); } void SetUrgencyUrgent() { TQ1.SetUrgency("S"); } GIL::Hl7Parser::Segmentos::TQ1 TQ1; }; class ObservationRequest { public: ObservationRequest() { } void SetSetId(unsigned int id) { std::stringstream ss; ss << id; OBR.SetSetId(ss.str()); } void SetOrderingUID(const std::string& orderUId) { OBR.SetPlacerOrderNumber(orderUId); } void SetProducerUID(const std::string& producerUID) { OBR.SetFillerOrderNumber(producerUID); } void SetProducerUID(const std::string& accessionNumber,const std::string& idPACS) { std::stringstream ostr; ostr << accessionNumber << '^' << idPACS; OBR.SetFillerOrderNumber(ostr.str()); } void SetIdentifier(const std::string& id) { OBR.SetIdentifier(id); } void SetIdentifier(const std::string& codPrueba, const std::string& tipoPrueba, const std::string& sistemaCodificacion) { OBR.SetIdentifier(codPrueba, tipoPrueba, sistemaCodificacion); } // identificadordObservacionReferida = OBX.3, subIdentificadorObservacionReferida = OBX.4, valorEvidencia = OBX.4 void SetParentResultIdentifier(const std::string& identificadordObservacionReferida, const std::string& subIdentificadorObservacionReferida, const std::string& valorEvidencia) { OBR.SetParentResultIdentifier(identificadordObservacionReferida, subIdentificadorObservacionReferida, valorEvidencia); } void SetParentID(const std::string& placerOrderUId, const std::string& fillerOderUId) { OBR.SetParentID(placerOrderUId, fillerOderUId); } void SetStudyUID(const std::string& StudyUID) { OBR.SetStudyUID(StudyUID); } void SetPlacerField1(const std::string& value) { OBR.SetPlacerField1(value); } void SetLateralityRight() { OBR.SetLaterality(GIL::Hl7Parser::Segmentos::OBR::LAT_R); } void SetLateralityLeft() { OBR.SetLaterality(GIL::Hl7Parser::Segmentos::OBR::LAT_L); } GIL::Hl7Parser::Segmentos::OBR OBR; }; class ObservationGroup { public: class Observation { public: Observation() { } void Clear() { OBX = GIL::Hl7Parser::Segmentos::OBX(); } void SetSetId(unsigned int id) { std::stringstream ss; ss << id; OBX.SetSetId(ss.str()); } void SetDataType(const std::string& dataType) { OBX.SetValueType(dataType); } void SetSubIdentifier(unsigned int id) { std::stringstream ss; ss << id; OBX.SetSubIdentifier(ss.str()); } void SetIdentifier(const std::string& codigoPrueba, const std::string& descPrueba, const std::string& sistemaCodificacion) { OBX.SetIdentifier(codigoPrueba, descPrueba, sistemaCodificacion); } void SetValue(const std::string& value, bool unscape = true) { OBX.SetValue(value, unscape); } void SetValueMetadata(const std::string& idAplicacion, const std::string& dataType, const std::string& dataSubType) { OBX.SetValueMetadata(idAplicacion, dataType, dataSubType); } void SetWado(const std::string& value) { OBX.SetWado(value); } void SetResponsiveObserverName(const std::string& nombre, const std::string& apellido1, const std::string& apellido2) { OBX.SetResponsiveObserverName(nombre, apellido1, apellido2); } void SetResponsiveObserverNIF(const std::string& nif) { OBX.SetResponsiveObserverNIF(nif); } void SetFinal() { OBX.SetObservationResultStatus("F"); } void AddObservationMethod(const std::string& codigo, const std::string& desc, const std::string& namespaceid) { OBX.AddObservationMethod(codigo, desc, namespaceid); } GIL::Hl7Parser::Segmentos::OBX OBX; }; ObservationGroup() { } void AddObservation(const Observation& ob) { Observations.push_back(ob); } std::list Observations; }; Order() { } public: void BuildSpecific(GIL::HL7::Message& msg) { msg << orderCommon.ORC; msg << observationRequest.OBR; msg << timingQuantity.TQ1; for (std::list::iterator it = observationGroup.Observations.begin(); it != observationGroup.Observations.end(); ++it) { msg << (*it).OBX; } } OrderCommon orderCommon; TimingQuantity timingQuantity; ObservationRequest observationRequest; ObservationGroup observationGroup; }; PatientResult() { } public: void BuildSpecific(GIL::HL7::Message& msg) { patient.BuildSpecific(msg); for (std::list::iterator it = orders.begin(); it != orders.end(); ++it) { (*it).BuildSpecific(msg); } } void AddOrder(Order& order) { orders.push_back(order); } Patient patient; std::list orders; }; ORU_R01Interpreter(const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : MessageInterpreter("ORU", "R01", "ORU_R01", rs, fs, sfs) { } protected: virtual void BuildSpecific(GIL::HL7::Message& msg) { for (std::list::iterator it = results.begin(); it != results.end(); ++it) { (*it).BuildSpecific(msg); } } public: void AddPatientResult(PatientResult& result) { results.push_back(result); } protected: std::list results; }; class ACKInterpreter : public MessageInterpreter { public: ACKInterpreter(const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^") : MessageInterpreter("ACK", "", "ACK", rs, fs,sfs) { MSH <<= GIL::HL7::Field(15, "MSH.15") << GIL::HL7::Component(1, "", "NE"); MSH <<= GIL::HL7::Field(16, "MSH.16") << GIL::HL7::Component(1, "", "NE"); } ACKInterpreter(const GIL::HL7::Message& msg) : MessageInterpreter(msg), MSA(), ERR() { MSA = msg.GetSegment("MSA", 1); ERR = msg.GetSegment("ERR", 1); } // Obtiene el Control ID del mensaje al que se refiere este ACK void SetReferralMessageControlId (MessageInterpreter& msg) { MSA.SetReferralMessageControlId(msg.MSH.GetMessageControlId()); } void SetReferralMessageControlId (GIL::HL7::Message& msg) { MSA.SetReferralMessageControlId(msg["MSH"][10][1]); } void SetReferralMessageControlId (const std::string& msgControlId) { MSA.SetReferralMessageControlId(msgControlId); } const std::string& GetReferralMessageControlId () { return MSA.GetReferralMessageControlId(); } void SetAckCode(GIL::Hl7Parser::Segmentos::MSA::ACK_Code code) { return MSA.SetAckCode(code); } GIL::Hl7Parser::Segmentos::MSA::ACK_Code GetAckCode() { return MSA.GetAckCode(); } bool IsSuccess () { return MSA.IsSuccess(); } bool IsRejected () { return MSA.IsRejected(); } bool IsErrored () { return MSA.IsErrored(); } bool IsUnknown () { return MSA.IsUnknown(); } void SetErrorCode(GIL::HL7::Message::ErrorCode errorCode) { ERR.SetErrorCode(errorCode); } GIL::HL7::Message::ErrorCode GetErrorCode() { return ERR.GetErrorCode(); } void SetErrorSeverity(GIL::HL7::Message::ErrorSeverity errorSeverity) { return ERR.SetErrorSeverity(errorSeverity); } GIL::HL7::Message::ErrorSeverity GetErrorSeverity() { return ERR.GetErrorSeverity(); } protected: virtual void BuildSpecific(GIL::HL7::Message& msg) { msg["MSA"] = MSA; msg["ERR"] = ERR; } public: GIL::Hl7Parser::Segmentos::MSA MSA; GIL::Hl7Parser::Segmentos::ERR ERR; }; } } } ginkgocadx-3.8.7/cadxcore/api/ilock.cpp000066400000000000000000000063471314736454600200440ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include "ilock.h" #include //---------------------------------------------------------------------------------------------------- //region Interfaz de soporte de cerrojos //---------------------------------------------------------------------------------------------------- //region Constructor y destructor GNC::GCS::ILockable::ILockable() { m_IsLocked = false; m_pCS = new wxCriticalSection(); } GNC::GCS::ILockable::~ILockable() { if (m_pCS != NULL) { delete m_pCS; } m_pCS = NULL; } //endregion //---------------------------------------------------------------------------------------------------- //region Interfaz de exclusion mutua void GNC::GCS::ILockable::Lock() { //---------------------------------------------------------------------------------------------------- // Entrada a la seccion Critica //---------------------------------------------------------------------------------------------------- m_pCS->Enter(); m_IsLocked = true; //---------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------- } void GNC::GCS::ILockable::UnLock() { //---------------------------------------------------------------------------------------------------- // Salida de la seccion Critica //---------------------------------------------------------------------------------------------------- m_IsLocked = false; m_pCS->Leave(); //---------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------- } bool GNC::GCS::ILockable::IsLocked() const { return m_IsLocked; } //endregion //---------------------------------------------------------------------------------------------------- //region Construccion y destruccion GNC::GCS::ILocker::ILocker(GNC::GCS::ILockable& pLockable) { m_pLockable = &pLockable; m_pLockable->Lock(); } GNC::GCS::ILocker::ILocker(GNC::GCS::ILockable* pLockable) { m_pLockable = pLockable; m_pLockable->Lock(); } GNC::GCS::ILocker::~ILocker() { if (m_pLockable != NULL) { m_pLockable->UnLock(); m_pLockable = NULL; } } //endregion //endregion ginkgocadx-3.8.7/cadxcore/api/ilock.h000066400000000000000000000063271314736454600175070ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ILOCK_H #define ILOCK_H #include #include #include #include //---------------------------------------------------------------------------------------------------- //region Forward Declarations class wxCriticalSection; namespace GNC { namespace GCS { class ILocker; } } //endregion namespace GNC { namespace GCS { //---------------------------------------------------------------------------------------------------- //region Interfaz de soporte de cerrojos //---------------------------------------------------------------------------------------------------- class EXTAPI ILockable { //---------------------------------------------------------------------------------------------------- //region Constructor y destructor public: ILockable(); ~ILockable(); //endregion //---------------------------------------------------------------------------------------------------- //region Interfaz de exclusion mutua public: void Lock(); void UnLock(); bool IsLocked() const; //enregion //---------------------------------------------------------------------------------------------------- //region Interfaz de subscripcion private: // ILocker* m_pLocker; // ILocker que ha bloqueado el cerrojo. //endregion //---------------------------------------------------------------------------------------------------- //region Atributos private: wxCriticalSection* m_pCS; // El cerrojo real. bool m_IsLocked; //endregion friend class ILocker; }; //endregion //---------------------------------------------------------------------------------------------------- //region Helper de bloqueo automatico //---------------------------------------------------------------------------------------------------- class EXTAPI ILocker { //---------------------------------------------------------------------------------------------------- //region Construccion y destruccion public: ILocker( GNC::GCS::ILockable& pLockable ); ILocker( GNC::GCS::ILockable* pLockable ); ~ILocker(); //endregion //---------------------------------------------------------------------------------------------------- //region Atributos private: ILockable* m_pLockable; //endregion friend class ILockable; }; //endregion } } #endif ginkgocadx-3.8.7/cadxcore/api/imgproxy.h000066400000000000000000000113611314736454600202560ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include template class ImgProxy { private: bool automem; public: int anchura, altura, size; TPixel *data; ImgProxy() { this->anchura = 0; this->altura = 0; this->size = 0; this->data = NULL; this->automem = false; //std::cout << "ImgProxy[" << this << "] creado data = " << data << ", automem=" << automem << std::endl; } ImgProxy(const ImgProxy&o) { (*this) = o; } ImgProxy(int anchura, int altura, TPixel *data, bool automem = false) { this->anchura = anchura; this->altura = altura; this->size = anchura * altura; this->data = data; this->automem = automem; //std::cout << "ImgProxy[" << this << "] creado data = " << data << ", automem=" << automem << std::endl; } ImgProxy(int anchura, int altura) { this->anchura = anchura; this->altura = altura; this->size = anchura * altura; this->data = new TPixel[anchura*altura]; this->automem = true; //std::cout << "ImgProxy[" << this << "] creado data = " << data << ", automem=" << automem << std::endl; } ~ImgProxy() { //std::cout << "ImgProxy[" << this << "] destruido data = " << data << ", automem=" << automem << std::endl; if (automem && this->data) { //std::cout << "ImgProxy destruido" << std::endl; delete[] this->data; this->data = NULL; } } ImgProxy& operator=(const ImgProxy& o) { //std::cout << "PELIGRO!!!!! ImgProxy[" << this << "] asignado data = " << data << ", automem=" << automem << std::endl; anchura = o.anchura; altura = o.altura; size = o.size; if (o.automem) { unsigned int size = anchura*altura; data = new TPixel[size]; for (unsigned int i = 0; i < size; ++i) { data[i] = o.data[i]; } automem = true; } else { data = o.data; automem = false; } return *this; } inline void Fill(TPixel v) { for (int i = 0; i < this->size; ++i) { this->data[i] = v; } } inline TPixel &Pixel(int x, int y) { return this->data[y * anchura + x]; } inline const TPixel &Pixel(int x, int y) const { return this->data[y * anchura + x]; } }; #ifndef UCHAR typedef unsigned char UCHAR; #endif #ifndef CHAR typedef char CHAR; #endif typedef struct UCHAR3 { unsigned char v1, v2, v3; UCHAR3() : v1(0), v2(0), v3(0) { } UCHAR3(unsigned char _v1, unsigned char _v2, unsigned char _v3) : v1(_v1), v2(_v2), v3(_v3) { } } UCHAR3; typedef struct UCHAR4 { unsigned char v1, v2, v3, v4; UCHAR4() : v1(0), v2(0), v3(0), v4(0) { } UCHAR4(unsigned char _v1, unsigned char _v2, unsigned char _v3, unsigned char _v4) : v1(_v1), v2(_v2), v3(_v3), v4(_v4) { } } UCHAR4; typedef struct FLOAT3 { float v1, v2, v3; FLOAT3() : v1(0.0f), v2(0.0f), v3(0.0f) { } FLOAT3(float _v1, float _v2, float _v3) : v1(_v1), v2(_v2), v3(_v3) { } } FLOAT3; typedef struct FLOAT4 { float v1, v2, v3, v4; FLOAT4() : v1(0.0f), v2(0.0f), v3(0.0f), v4(0.0f) { } FLOAT4(float _v1, float _v2, float _v3, float _v4) : v1(_v1), v2(_v2), v3(_v3), v4(_v4) { } } FLOAT4; ginkgocadx-3.8.7/cadxcore/api/imodelohl7.cpp000066400000000000000000000300311314736454600207710ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "imodelohl7.h" #include std::string GIL::HL7::DefaultEscapeER7(const std::string& str) { std::stringstream ss; for (std::string::size_type i = 0; i < str.size(); i++) { if (str[i] == '\\') { ss << "\\E\\"; } else if (str[i] == '|') { ss << "\\F\\"; } else if (str[i] == '~') { ss << "\\R\\"; } else if (str[i] == '^') { ss << "\\S\\"; } else if (str[i] == '&') { ss << "\\T\\"; } else { ss << str[i]; } } return ss.str(); } GIL::HL7::Field& GIL::HL7::Segment::ParseField(size_t fieldNum, const std::string& record, bool unscape) { Field& field = ( (*this) <<= Field(fieldNum, "", m_CS, m_ES, m_SCS) ); std::string::size_type l_loc = 0; std::string::size_type c_loc = std::string::npos; std::string::size_type start = std::string::npos; std::string::size_type size = std::string::npos; bool cont = true; size_t componentNum = 1; while (cont) { c_loc = record.find(m_CS, l_loc); if (c_loc == std::string::npos) { start = l_loc; size = c_loc; l_loc = std::string::npos; cont = false; } else { start = l_loc; size = c_loc - l_loc; l_loc = c_loc + 1; } const std::string& value = ( unscape?UnEscapeER7(record.substr(start, size)) : record.substr(start, size) ); if (value.size() == 0) { field << Component(componentNum, ""); } else if (value == "\"\"") { field << Component(componentNum, "", ""); } else { field << Component(componentNum, "", value); } //std::cout << "{" << value << "}"; componentNum++; } return field; } const std::string GIL::HL7::Field::EscapeER7(const std::string& str) const { std::stringstream ss; for (std::string::size_type i = 0; i < str.size(); i++) { if (str[i] == m_ES[0]) { ss << "\\E\\"; } else if (str[i] == m_CS[0]) { ss << "\\S\\"; } else if (str[i] == m_SCS[0]) { ss << "\\T\\"; } else { ss << str[i]; } } return ss.str(); } const std::string GIL::HL7::Field::UnEscapeER7(const std::string& str) const { if (str.size() < 3) { return str; } std::stringstream ss; const std::string::size_type size = str.size(); const std::string::size_type sizelimit = str.size() - 2; bool skipNext = false; bool printNext = false; for (std::string::size_type i = 0; i < size; i++) { if ( str[i] == '\\') { if (skipNext) { skipNext = false; if (printNext) { ss << str[i]; printNext = false; } } else { skipNext = true; if (i < sizelimit) { switch(str[i+1]) { case 'E': ss << m_ES; i++; break; case 'S': ss << m_CS; i++; break; case 'T': ss << m_SCS; i++; break; default: ss << str[i]; printNext = true; break; } } else { assert(!printNext); } } } else { ss << str[i]; } } return ss.str(); } const std::string GIL::HL7::Segment::EscapeER7(const std::string& str) const { std::stringstream ss; for (std::string::size_type i = 0; i < str.size(); i++) { if (str[i] == m_ES[0]) { ss << "\\E\\"; } else if (str[i] == m_FS[0]) { ss << "\\F\\"; } else if (str[i] == m_FRS[0]) { ss << "\\R\\"; } else if (str[i] == m_CS[0]) { ss << "\\S\\"; } else if (str[i] == m_SCS[0]) { ss << "\\T\\"; } else { ss << str[i]; } } return ss.str(); } const std::string GIL::HL7::Segment::UnEscapeER7(const std::string& str) const { if (str.size() < 3) { return str; } std::stringstream ss; const std::string::size_type size = str.size(); const std::string::size_type sizelimit = str.size() - 2; bool skipNext = false; bool printNext = false; for (std::string::size_type i = 0; i < size; i++) { if ( str[i] == '\\') { if (skipNext) { skipNext = false; if (printNext) { ss << str[i]; printNext = false; } } else { skipNext = true; if (i < sizelimit) { switch(str[i+1]) { case 'E': ss << m_ES; i++; break; case 'F': ss << m_FS; i++; break; case 'R': ss << m_FRS; i++; break; case 'S': ss << m_CS; i++; break; case 'T': ss << m_SCS; i++; break; default: ss << str[i]; printNext = true; break; } } else { assert(!printNext); } } } else { ss << str[i]; } } return ss.str(); } const std::string GIL::HL7::Message::EscapeER7(const std::string& str) const { std::stringstream ss; for (std::string::size_type i = 0; i < str.size(); i++) { if (str[i] == m_ES[0]) { ss << "\\E\\"; } else if (str[i] == m_FS[0]) { ss << "\\F\\"; } else if (str[i] == m_FRS[0]) { ss << "\\R\\"; } else if (str[i] == m_CS[0]) { ss << "\\S\\"; } else if (str[i] == m_SCS[0]) { ss << "\\T\\"; } else { ss << str[i]; } } return ss.str(); } const std::string GIL::HL7::Message::UnEscapeER7(const std::string& str) const { if (str.size() < 3) { return str; } std::stringstream ss; const std::string::size_type size = str.size(); const std::string::size_type sizelimit = str.size() - 2; bool skipNext = false; bool printNext = false; for (std::string::size_type i = 0; i < size; i++) { if ( str[i] == '\\') { if (skipNext) { skipNext = false; if (printNext) { ss << str[i]; printNext = false; } } else { skipNext = true; if (i < sizelimit) { switch(str[i+1]) { case 'E': ss << m_ES; i++; break; case 'F': ss << m_FS; i++; break; case 'R': ss << m_FRS; i++; break; case 'S': ss << m_CS; i++; break; case 'T': ss << m_SCS; i++; break; default: ss << str[i]; printNext = true; break; } } else { assert(!printNext); } } } else { ss << str[i]; } } return ss.str(); } ginkgocadx-3.8.7/cadxcore/api/imodelohl7.h000066400000000000000000001015721314736454600204470ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #define RECORD_SEPARATOR "\x0D" namespace GIL { namespace HL7 { std::string DefaultEscapeER7(const std::string& str); /* Este namespace contiene una implementación completa de mensajeria HL7 generica */ class HL7Exception : public GNC::GCS::IException { public: HL7Exception(const std::string& msg, const std::string& component="HL7", bool fatal = true) throw() : GNC::GCS::IException(msg ,component, fatal) {} }; class HL7XMLException : public GNC::GCS::IException { public: HL7XMLException(const std::string& msg, const std::string& component="XMLIntegration", bool fatal = true) throw() : GNC::GCS::IException(msg ,component, fatal) {} }; namespace Util { inline std::list split(const std::string& str, const std::string& separador) { std::list lista; std::string::size_type start = 0; std::string::size_type end = 0; while ((end = str.find (separador, start)) != std::string::npos) { lista.push_back (str.substr (start, end-start)); start = end + separador.size(); } lista.push_back (str.substr (start)); return lista; } inline std::string tolower(const std::string& input_string) { std::string str = input_string; // iterate through all the characters. If uppercase, // convert to lowercase. for (std::string::size_type i = 0 ; i < str.length() ; ++i) if (isupper(str[i]) ) str[i] |= 32; return str; } } class Component { private: size_t m_Num; std::string m_Header; std::string m_Value; bool m_Null; public: Component() { m_Num = 0; m_Null = true; } Component(size_t num) { m_Num = num; m_Null = true; } Component(size_t num, const std::string& header) : m_Num(num), m_Header(header), m_Null(true) { } Component(size_t num, const std::string& header, const std::string& value) : m_Num(num), m_Header(header), m_Value(value), m_Null(false) { } Component(const Component& otro) { *this = otro; } Component& operator=(const Component& otro) { m_Num = otro.m_Num; m_Header = otro.m_Header; m_Value = otro.m_Value; m_Null = otro.m_Null; return *this; } Component& operator=(const std::string& valor) { m_Value = valor; m_Null = false; return *this; } bool operator==(const std::string& valor) { return m_Value == valor; } bool operator==(const char* valor) { return m_Value == valor; } operator const std::string& () { return m_Value; } size_t GetNum() const { return m_Num; } const std::string& GetName() const { return m_Header; } const std::string& GetValue() const { return m_Value; } bool IsNull() const { return m_Null; } friend std::ostream& operator<<(std::ostream& out, const Component& sf) { if (!sf.IsNull()) { if (sf.m_Value.size() == 0) { out << "\"\""; } else { out << sf.m_Value; } } return out; } friend std::ostream& operator<<(std::ostream& out, const Component* sf) { out << *sf; return out; } }; class Field : public std::map { private: typedef std::map Base; protected: size_t m_Num; std::string m_Header; std::string m_CS; // component separator std::string m_ES; // escape separator std::string m_SCS; // subcomponent separator public: Field() { m_Num = 0; } Field(size_t num, const std::string& header = "", const std::string& sfs ="^", const std::string& es = "\\", const std::string& cs = "&") : m_Num(num), m_Header(header), m_CS(sfs), m_ES(es), m_SCS(cs) { } Field(const Field& otro):std::map(otro) { *this = otro; } Field& operator=(const Field& otro) { m_Num = otro.m_Num; m_Header = otro.m_Header; m_CS = otro.m_CS; m_ES = otro.m_ES; m_SCS = otro.m_SCS; Base::operator = ((const Base&)otro); return *this; } Field& operator<<(const Component& sf) { Field::operator[] (sf.GetNum()) = sf; return *this; } Component GetComponent(size_t num) const { if (num == 0) { throw HL7Exception("Indice de componente invalido: 0", "MODEL"); } const_iterator it; for (it = begin(); it != end(); ++it) { size_t numComponent = (*it).first; if (numComponent == num) { const Component& c = (*it).second; return Component(c); } } return Component(num, ""); } const std::string& GetSFS() const { return m_CS; } void SetSFS(const std::string& sfs) { m_CS = sfs; } size_t GetNum() const { return m_Num; } const std::string& GetName() const { return m_Header; } Component& operator[](size_t indice) { if (indice == 0) { throw HL7Exception("Indice de sub-campo invalido: 0", "MODEL"); } Base& t = *this; size_t numLast = size(); if ( indice > numLast) { for (size_t i = numLast + 1; i <= indice; i++) { t[i] = Component(i); } } return t[indice]; } friend std::ostream& operator<<(std::ostream& out, const Field& f) { bool first = true; for(Field::const_iterator it= f.begin(); it != f.end(); ++it) { if (first) { first = false; out << (*it).second; } else { out << f.m_CS << (*it).second; } } return out; } friend std::ostream& operator<<(std::ostream& out, const Field* f) { return out << *f; } const std::string EscapeER7(const std::string& str) const; const std::string UnEscapeER7(const std::string& str) const; }; class Segment : protected std::map > { private: typedef std::map > Base; protected: std::string m_Header; std::string m_RS; std::string m_FS; std::string m_CS; std::string m_FRS; std::string m_ES; std::string m_SCS; public: Segment() { } Segment(const std::string& header, const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs = "^", const std::string& frs = "~", const std::string& es = "\\", const std::string& cs = "&" ) : m_Header(header), m_RS(rs), m_FS(fs), m_CS(sfs), m_FRS(frs), m_ES(es), m_SCS(cs) { } Segment(const Segment& otro):std::map >(otro) { *this = otro; } Segment& operator=(const Segment& otro) { m_Header = otro.m_Header; m_RS = otro.m_RS; m_FS = otro.m_FS; m_CS = otro.m_CS; m_FRS = otro.m_FRS; m_ES = otro.m_ES; m_SCS = otro.m_SCS; Base::operator = ((const Base&)otro); return *this; } Field& operator<<=(const Field& f) { size_t indice = f.GetNum(); if (indice == 0) { throw HL7Exception("Indice de campo invalido: 0", "MODEL"); } Base& t = *this; size_t numLast = size(); if ( indice > numLast) { for (size_t i = numLast + 1; i < indice; i++) { t[i] = std::list(); t[i].push_back(Field(i)); } } t[indice].clear(); t[indice].push_back(f); return t[indice].back(); } Field& operator<<(const Field& f) { size_t indice = f.GetNum(); if (indice == 0) { throw HL7Exception("Indice de campo invalido: 0", "MODEL"); } Base& t = *this; size_t numLast = size(); if ( indice > numLast) { for (size_t i = numLast + 1; i < indice; i++) { t[i] = std::list(); t[i].push_back(Field(i)); } } t[indice].push_back(f); return t[indice].back(); } Field GetField(size_t num, size_t repnum = 1) const { if (num == 0) { throw HL7Exception("Indice de campo invalido: 0", "MODEL"); } if (repnum == 0) { throw HL7Exception("Indice de repeticion de campo invalido: 0", "MODEL"); } const_iterator it; size_type i; for (it = begin(), i = 1; it != end(); ++it, i++) { if (i == num) { const std::list& fl = (*it).second; std::list::const_iterator itr = fl.begin(); if (itr != fl.end()) { return Field(*itr); } else { return Field(num, "", m_RS, m_FS, m_CS); } } } return Field(num, "", m_RS, m_FS, m_CS); } const std::string& GetSFS() const { return m_CS; } void SetSFS(const std::string& sfs) { m_CS = sfs; } const std::string& GetName() const { return m_Header; } Field& operator[](size_t indice) { if (indice == 0) { throw HL7Exception("Indice de campo invalido: 0", "MODEL"); } Base& t = *this; size_t numLast = size(); if ( indice > numLast) { for (size_t i = numLast + 1; i <= indice; i++) { t[i] = std::list(); t[i].push_back(Field(i)); } } return t[indice].front(); } Field& RepeatedField(size_t indiceCampo, size_t indiceRepeticion) { if (indiceCampo == 0) { throw HL7Exception("Indice de campo invalido: 0", "MODEL"); } if (indiceRepeticion == 0) { throw HL7Exception("Indice de repeticion de campo invalido: 0", "MODEL"); } Base& t = *this; size_t numLast = size(); if ( indiceCampo > numLast) { for (size_t i = numLast + 1; i <= indiceCampo; i++) { t[i] = std::list(); t[i].push_back(Field(i)); } } std::list& fields = t[indiceCampo]; numLast = fields.size(); if ( indiceRepeticion > numLast) { for (size_t i = numLast + 1; i <= indiceRepeticion; i++) { fields.push_back(Field(i)); } } std::list::iterator it; size_t i; for (i = 1, it = fields.begin(); it != fields.end() && i != indiceRepeticion; ++it, i++); if ( it == fields.end() || i != indiceRepeticion) { throw HL7Exception("Error al localizar el indice de repeticion", "MODEL"); } return *it; } friend std::ostream& operator<<(std::ostream& out, const Segment& s) { out << s.GetName(); size_t i = 1; if (s.m_Header == "MSH") { bool firstField = true; for(Segment::const_iterator it = s.begin(); it != s.end(); ++it, i++) { if (firstField) { firstField = false; } else { bool fieldRepeated = false; for (std::list::const_iterator it2 = (*it).second.begin(); it2 != (*it).second.end(); ++it2) { if (fieldRepeated) { out << "~" << (*it2); } else { out << s.m_FS << (*it2); fieldRepeated = true; } } } } } else { for(Segment::const_iterator it = s.begin(); it != s.end(); ++it, i++) { bool fieldRepeated = false; for (std::list::const_iterator it2 = (*it).second.begin(); it2 != (*it).second.end(); ++it2) { if (fieldRepeated) { out << "~" << (*it2); } else { out << s.m_FS << (*it2); fieldRepeated = true; } } } } out << s.m_RS; return out; } friend std::ostream& operator<<(std::ostream& out, const Segment* s) { return out << *s; } EXTAPI Field& ParseField (size_t fieldNum, const std::string& record, bool unscape = true); EXTAPI const std::string EscapeER7(const std::string& str) const; EXTAPI const std::string UnEscapeER7(const std::string& str) const; }; class Message : public std::list { private: typedef std::list Base; std::string m_Header; // message header std::string m_RS; // record separator std::string m_FS; // (|) Field separator std::string m_CS; // (^) Component separator std::string m_FRS; // (~) Field repeat separator std::string m_ES; // (\) Escape separator std::string m_SCS; // (&) SubComponent separator public: Message(const std::string& header = "", const std::string& rs = RECORD_SEPARATOR, const std::string& fs = "|", const std::string& sfs ="^") : m_Header(header), m_RS(rs), m_FS(fs), m_CS(sfs) { } Message(const Message& otro):std::list(otro) { *this = otro; } Message& operator=(const Message& otro) { m_FRS = otro.m_FRS; m_ES = otro.m_ES; m_SCS = otro.m_SCS; m_Header = otro.m_Header; m_RS = otro.m_RS; m_FS = otro.m_FS; m_CS = otro.m_CS; Base::operator = ((const Base&)otro); return *this; } static Message FromER7(const std::string& msgStr) { Message msg; msg.LoadFromER7(msgStr); return msg; } void LoadFromXML(const std::string& /*msgStr*/) { } void LoadFromER7(const std::string& msgStr) { Clear(); std::list records; std::string::size_type l_loc = 0; // Last Location std::string::size_type c_loc = std::string::npos; // Current Location bool cont = true; while(cont) { c_loc = msgStr.find(RECORD_SEPARATOR, l_loc); if (c_loc == std::string::npos) { const std::string& record = msgStr.substr(l_loc); if (record.size() > 0) { records.push_back(record); } cont = false; } else { const std::string& record = msgStr.substr(l_loc, c_loc - l_loc); if (record.size() > 0) { records.push_back(record); } l_loc = c_loc + 1; } } if (records.empty()) { throw HL7Exception(std::string("Error al interpretar la cabecera del mensaje no se han encontrado registros")); } std::list::iterator itr = records.begin(); std::string& mshrecord = *itr; Message& msg = *this; if (mshrecord.size() >= 8 && mshrecord[0] == 'M' && mshrecord[1] == 'S' && mshrecord[2] == 'H') { m_FS = mshrecord[3]; m_CS = mshrecord[4]; m_FRS = mshrecord[5]; m_ES = mshrecord[6]; m_SCS = mshrecord[7]; Segment& segment = (msg << Segment("MSH", m_RS, m_FS, m_CS, m_FRS, m_ES, m_SCS)); segment << Field(1, "MSH.1") << Component(1, "", m_FS); segment << Field(2, "MSH.2") << Component(1, "", m_CS + m_FRS + m_ES + m_SCS); ParseER7Segment(segment, mshrecord, 9, 3); } else { throw HL7Exception(std::string("Error al interpretar la cabecera del mensaje: ") + mshrecord.substr(0,8)); } for (itr++; itr != records.end(); ++itr) { std::string& record = *itr; //std::cout << "Parsing Record: [" << record << "]" << std::endl; Segment& segment = (msg << Segment(record.substr(0,record.find(m_FS, 0)), m_RS, m_FS, m_CS, m_FRS, m_ES, m_SCS)); ParseER7Segment(segment, record, 4); } } private: void ParseER7Segment(Segment& segment, const std::string& record, std::string::size_type offsetFirstField=5, int numFirstField=1) { std::string::size_type l_loc = offsetFirstField; std::string::size_type c_loc = std::string::npos; std::string::size_type start = std::string::npos; std::string::size_type size = std::string::npos; bool cont = true; size_t fieldNum = numFirstField; //std::cout << "Record = [" << record << "]" << std::endl; if (offsetFirstField >= record.size()) { return; } while (cont) { c_loc = record.find(m_FS, l_loc); if (c_loc == std::string::npos) { start = l_loc; size = std::string::npos; cont = false; } else { start = l_loc; size = c_loc - l_loc; l_loc = c_loc + 1; } const std::string& str = record.substr(start, size); //std::cout << "Field " << fieldNum << " = [" << str << "] "; // Repeticion de campos. std::string::size_type l_locfr = 0; std::string::size_type c_locfr = std::string::npos; std::string::size_type startfr = std::string::npos; std::string::size_type endfr = std::string::npos; bool contfr = true; while (contfr) { c_locfr = str.find(m_FRS, l_locfr); if (c_locfr == std::string::npos) { startfr = l_locfr; endfr = c_locfr; l_locfr = std::string::npos; contfr = false; } else { startfr = l_locfr; endfr = c_locfr - l_locfr; l_locfr = c_locfr + 1; } segment.ParseField(fieldNum, str.substr(startfr, endfr)); } //std::cout << std::endl; fieldNum++; } } public: EXTAPI const std::string EscapeER7(const std::string& str) const; EXTAPI const std::string UnEscapeER7(const std::string& str) const; void Clear() { Base::clear(); } Segment& operator<<(const Segment& s) { push_back(s); return back(); } /* Devuelve el primer mensaje encontrado con la cabecera parametrizada. */ Segment& operator[] (const std::string& key) { return Segments(key, 1); } /* Devuelve el num-avo mensaje encontrado con la cabecera parametrizada. */ Segment& Segments(const std::string& key, size_t num) { if (num == 0) { throw HL7Exception("Indice de segmento invalido: 0", "MODEL"); } iterator it; size_type i; for (it = begin(), i = num; it != end() && i > 0; ++it) { Segment& s = *it; if (s.GetName() == key) { --i; } if (i == 0) { return s; } } return (*this) << Segment(key, m_RS, m_FS, m_CS); } Segment GetSegment(const std::string& key, size_t num = 1) const { if (num == 0) { throw HL7Exception("Indice de segmento invalido: 0", "MODEL"); } const_iterator it; size_type i; for (it = begin(), i = num; it != end() && i > 0; ++it) { const Segment& s = *it; if (s.GetName() == key) { --i; } if (i == 0) { return Segment(s); } } return Segment(key, m_RS, m_FS, m_CS); } void SetHeader(const std::string& header) { m_Header = header; } const std::string& GetHeader() { return m_Header; } friend std::ostream& operator<<(std::ostream& out, const Message& m) { for(Message::const_iterator it = m.begin(); it != m.end(); ++it) { out << *it; } return out; } friend std::ostream& operator<<(std::ostream& out, const Message* m) { return out << *m; } public: typedef enum ErrorCode { EC_MessageAccepted = 0, EC_SegmentSequenceError = 100, EC_RequiredFieldMissing = 101, EC_DataTypeError = 102, EC_TableValueNotFound = 103, EC_UnsuportedMessageType = 200, EC_UnsuportedProcessingId = 201, EC_UnsupportedEventCode = 202, EC_UnsupportedVersionId = 203, EC_UnknownKeyIdentifier = 204, EC_DupplicateKeyIdentifier = 205, EC_ApplicationRecordLocked = 206, EC_ApplicationInternalError = 207 } ErrorCode; static const std::string GetErrorCodeDescription(ErrorCode errorCode) { std::stringstream ss; ss << errorCode << ": "; switch (errorCode) { case EC_MessageAccepted: ss << "Mensaje aceptado"; break; case EC_SegmentSequenceError: ss << "Error en la secuencia del segmento"; break; case EC_RequiredFieldMissing: ss << "Campo requerido inexistente"; break; case EC_DataTypeError: ss << "Error en el tipo de dato"; break; case EC_TableValueNotFound: ss << "Valor de la tabla no encontrado"; break; case EC_UnsuportedMessageType: ss << "Tipo de mensaje no soportado"; break; case EC_UnsuportedProcessingId: ss << "Id de procesamiento no soportado"; break; case EC_UnsupportedEventCode: ss << "Codigo de evento no soportado"; break; case EC_UnsupportedVersionId: ss << "Id de version no soportado"; break; case EC_UnknownKeyIdentifier: ss << "Identificador desconocido"; break; case EC_DupplicateKeyIdentifier: ss << "Identificador clave duplicado"; break; case EC_ApplicationRecordLocked: ss << "Registro de la aplicacion bloqueado"; break; case EC_ApplicationInternalError: ss << "Error interno de la aplicacion"; break; default: ss << "Codigo invalido"; break; } return ss.str(); } static const std::string GetErrorCodeAsString(ErrorCode errorCode) { std::stringstream ss; ss << errorCode; std::string errorCodeString = ss.str(); switch (errorCode) { case EC_MessageAccepted: case EC_SegmentSequenceError: case EC_RequiredFieldMissing: case EC_DataTypeError: case EC_TableValueNotFound: case EC_UnsuportedMessageType: case EC_UnsuportedProcessingId: case EC_UnsupportedEventCode: case EC_UnsupportedVersionId: case EC_UnknownKeyIdentifier: case EC_DupplicateKeyIdentifier: case EC_ApplicationRecordLocked: case EC_ApplicationInternalError: return errorCodeString; default: throw HL7Exception(std::string("[Error Code] invalido: ") + errorCodeString, "MODEL/LOGIC"); } } static ErrorCode GetErrorCodeFromErrorCodeAsString(const std::string& errorCodeString) { if (errorCodeString == "0") { return EC_MessageAccepted; } else if (errorCodeString == "100") { return EC_SegmentSequenceError; } else if (errorCodeString == "101") { return EC_RequiredFieldMissing; } else if (errorCodeString == "102") { return EC_DataTypeError; } else if (errorCodeString == "103") { return EC_TableValueNotFound; } else if (errorCodeString == "200") { return EC_UnsuportedMessageType; } else if (errorCodeString == "201") { return EC_UnsuportedProcessingId; } else if (errorCodeString == "202") { return EC_UnsupportedEventCode; } else if (errorCodeString == "203") { return EC_UnsupportedVersionId; } else if (errorCodeString == "204") { return EC_UnknownKeyIdentifier; } else if (errorCodeString == "205") { return EC_DupplicateKeyIdentifier; } else if (errorCodeString == "206") { return EC_ApplicationRecordLocked; } else if (errorCodeString == "207") { return EC_ApplicationInternalError; } else { throw HL7Exception(std::string("[Error Code] invalido: ") + errorCodeString, "MODEL/LOGIC"); } } typedef enum ErrorSeverity { ES_Warning = 0, ES_Information = 1, ES_Error = 2 } ErrorSeverity; static const char* GetErrorSeverityString(ErrorSeverity es) { switch (es) { case ES_Information: return "I"; break; case ES_Error: return "E"; break; case ES_Warning: return "W"; default: { std::stringstream ss; ss << es; throw HL7Exception(std::string("[Error Severity] invalido: ") + ss.str(), "MODEL/LOGIC"); } } } static ErrorSeverity GetErrorSeverityFromString(const std::string& ess) { if (ess == "I") { return ES_Information; } else if (ess == "E") { return ES_Error; } else if (ess == "W") { return ES_Warning; } else { throw HL7Exception(std::string("[Error Severity String] invalida: ") + ess, "MODEL/LOGIC"); } } }; } } ginkgocadx-3.8.7/cadxcore/api/imodelointegracion.cpp000066400000000000000000000051611314736454600226070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "imodelointegracion.h" #include
#include
std::string GIL::IMapOfVarsModel::empty; namespace GIL { bool IMapOfVarsModel::InsertVariable(const std::string& key, const std::string& value, const std::string& description) { if (find(key) != end()) { LOG_DEBUG("IMapOfVarsModel", "you are trying to replace variable " << key << " with value " << value); (*this)[key] = IVariableModel(key, value, description); return false; } else { (*this)[key] = IVariableModel(key, value, description); return true; } } const std::string& IMapOfVarsModel::GetValue(const std::string& key) const { const_iterator it = find(key); if (it == end()) { LOG_WARN("IMapOfVarsModel", "you are trying to get a variable " << key << " that doesn't esists"); return empty; } else { return (*it).second.GetValue(); } } const std::string& IMapOfVarsModel::GetDescription(const std::string& key) const { const_iterator it = find(key); if (it == end()) { LOG_WARN("IMapOfVarsModel", "you are trying to get a variable " << key << " that doesn't esists"); return empty; } else { return (*it).second.GetDescription(); } } bool IMapOfVarsModel::Contains(const std::string& key) const { return find(key) != end(); } bool IMapOfVarsModel::IsEmpty() { return (*this).size() == 0; } IMapOfVarsModel::TMapOfVarsModelIterator IMapOfVarsModel::Begin() { return (*this).begin(); } IMapOfVarsModel::TMapOfVarsModelIterator IMapOfVarsModel::End() { return (*this).end(); } IModeloIntegracion::IModeloIntegracion() { accion = TA_Ninguna; atendido = false; } } ginkgocadx-3.8.7/cadxcore/api/imodelointegracion.h000066400000000000000000000166661314736454600222700ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include namespace GIL { class EXTAPI IModeloPACSServer { public: typedef enum IMPS_Method { IMPS_GET, IMPS_MOVE, IMPS_WADO } IMPS_Method; std::string sid; std::string AET; std::string hostname; std::string puerto; std::string pdu; std::string retrieveLevel; bool tls; bool verify; IMPS_Method metodo; std::string cert; std::string key; std::string user; std::string password; std::string wadoURI; std::string defaultCharset; IModeloPACSServer() { this->tls = false; this->verify = false; this->metodo = IMPS_GET; user=password = ""; } IModeloPACSServer(const IModeloPACSServer& otro) = default; IModeloPACSServer(const std::string& sid, const std::string& AET, const std::string& hostname, const std::string& puerto, const std::string& pdu, IMPS_Method metodo, const std::string& retrieveLevel = "SERIES", bool tls = false, bool verify = false, const std::string& cert = "", const std::string& key = "", const std::string& defaultCharset = "ISO_IR 192") { this->sid = sid; this->AET = AET; this->hostname = hostname; this->puerto = puerto; this->pdu = pdu; this->tls = tls; this->verify = verify; this->metodo = metodo; this->retrieveLevel = retrieveLevel; this->cert = cert; this->key = key; this->defaultCharset = defaultCharset; } IModeloPACSServer& operator=(const IModeloPACSServer& otro) = default; }; class EXTAPI IVariableModel { public: std::string key; std::string value; std::string description; IVariableModel() { } IVariableModel(const std::string& key, const std::string& value, const std::string& description = "") { this->key = key; this->value = value; this->description = description; } IVariableModel( const IVariableModel& o) { (*this) = o; } IVariableModel& operator=(const IVariableModel& otro) { this->key = otro.key; this->value = otro.value; this->description = otro.description; return *this; } const std::string& GetKey() const { return this->key; } const std::string& GetValue() const { return this->value; } const std::string& GetDescription() const { return this->description; } }; class EXTAPI IMapOfVarsModel: protected std::map { public: static std::string empty; typedef std::map::iterator TMapOfVarsModelIterator; IMapOfVarsModel() {} ~IMapOfVarsModel() {} bool InsertVariable (const std::string& key, const std::string& value, const std::string& description = ""); const std::string& GetValue(const std::string& key) const; const std::string& GetDescription(const std::string& key) const; bool Contains(const std::string& key) const; bool IsEmpty(); TMapOfVarsModelIterator Begin(); TMapOfVarsModelIterator End(); }; class EXTAPI IImageModel { public: IImageModel() {} ~IImageModel() {} IImageModel( const IImageModel& o) { (*this) = o; } IImageModel& operator=(const IImageModel& otro) { this->MapOfVars = otro.MapOfVars; return *this; } IMapOfVarsModel MapOfVars; }; class EXTAPI ISeriesModel { public: typedef std::list TListOfImages; ISeriesModel() {} ~ISeriesModel() {} ISeriesModel( const ISeriesModel& o) { (*this) = o; } ISeriesModel& operator=(const ISeriesModel& otro) { this->Images = otro.Images; this->MapOfVars = otro.MapOfVars; return *this; } TListOfImages Images; IMapOfVarsModel MapOfVars; }; class EXTAPI IStudyModel { public: typedef std::list TListOfSeries; IStudyModel() {} ~IStudyModel() {} IStudyModel( const IStudyModel& o) { (*this) = o; } IStudyModel& operator=(const IStudyModel& otro) { this->Series = otro.Series; this->MapOfVars = otro.MapOfVars; return *this; } TListOfSeries Series; IMapOfVarsModel MapOfVars; }; class EXTAPI IModeloIntegracion { public: typedef std::list ListOfPaths; typedef std::list TListOfStudies; typedef enum TipoAccion { TA_Ninguna, TA_Dicomizar, TA_Obtener, TA_Imprimir, TA_Open } TipoAccion; GIL::DICOM::DicomDataset TagsDICOMOverwrite; IMapOfVarsModel GlobalVariables; TListOfStudies Studies; ListOfPaths Files; std::string idPlantilla; TipoAccion accion; std::string rawXmlData; std::string messageTemplate; bool atendido; IModeloIntegracion(); IModeloIntegracion(const IModeloIntegracion& otro) { *this = otro; } ~IModeloIntegracion() { } IModeloIntegracion& operator=(const IModeloIntegracion& otro) { this->TagsDICOMOverwrite = otro.TagsDICOMOverwrite; this->GlobalVariables = otro.GlobalVariables; this->Studies = otro.Studies; this->Files = otro.Files; this->idPlantilla = otro.idPlantilla; this->accion = otro.accion; this->rawXmlData = otro.rawXmlData; this->atendido = otro.atendido; this->messageTemplate = otro.messageTemplate; return *this; } }; typedef std::list< GNC::GCS::Ptr > IntegrationModelList; } ginkgocadx-3.8.7/cadxcore/api/imodulo.h000066400000000000000000000037031314736454600200510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once namespace GNC { namespace GCS { class IModuleController; } } #ifdef __WXMSW__ #ifdef MAKING_MODULES #define PRVEXT_API _declspec(dllexport) #define MODULO_API _declspec(dllexport) GNC::GCS::IModuleController* #else // USING_MODULES #define PRVEXT_API _declspec(dllimport) #define MODULO_API _declspec(dllimport) GNC::GCS::IModuleController* //typedef GNC::GCS::IModuleController* (__cdecl* MODULO_ENTRY_POINT)(wxWindow* handle, GNC::GCS::IEntorno* pEntorno); #endif #elif defined(__WXMAC__) #ifdef MAKING_MODULES #define PRVEXT_API __attribute__((visibility("default"))) #define MODULO_API __attribute__((visibility("default"))) GNC::GCS::IModuleController* #else // USING_MODULES #define PRVEXT_API #define MODULO_API GNC::GCS::IModuleController* typedef GNC::GCS::IModuleController* (*MODULO_ENTRY_POINT)(WXHWND handle); #endif #else #ifdef MAKING_MODULES #define PRVEXT_API __attribute__((visibility("default"))) #define MODULO_API __attribute__((visibility("default"))) GNC::GCS::IModuleController* #else // USING_MODULES #define PRVEXT_API #define MODULO_API GNC::GCS::IModuleController* //typedef GNC::GCS::IModuleController* (*MODULO_ENTRY_POINT)(void* handle); #endif #endif #define MODULO_ENTRY_POINT_NAME "init" ginkgocadx-3.8.7/cadxcore/api/init.cpp000066400000000000000000000031441314736454600176760ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "init.h" #include "initwx.h" #if defined(GINKGO_PRO) #include #include #endif #include #if defined(_WIN32) int EXTAPI Init(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { return InitWX(hInstance, hPrevInstance, lpCmdLine, nCmdShow); } #else int EXTAPI Init(int argc, char** argv) { #if defined(GINKGO_PRO) bool unitTest = false; for( int i = 1; i < argc; i++ ) { if (std::strcmp(argv[i], "-unittest") == 0) { unitTest = true; } } for( int i = 0; i < argc; i++) { GlobalFree(argv[i]); } GlobalFree(argv); if (unitTest) { return InitTest(); } #endif std::cout << "calling InitWX(argc, argv);\n"; return InitWX(argc, argv); } #endif ginkgocadx-3.8.7/cadxcore/api/init.h000066400000000000000000000020031314736454600173340ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "doxmainpage.h" #include #if defined(_WINDOWS) #define _WINSOCKAPI_ #include int EXTAPI Init(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow); #else int EXTAPI Init(int argc, char** argv); #endif ginkgocadx-3.8.7/cadxcore/api/initwx.cpp000066400000000000000000001056521314736454600202640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #define SINGLE_INSTANCE #if defined (_WIN32) && defined (_GINKGO_DEBUG) #include #if defined _GINKGO_CHECK_LEAKS #define _CRTDBG_MAP_ALLOC #include #include #endif #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
#include
#include "singleinstance.h" #include "initwx.h" #include #if defined(__DEPRECATED) #undef __DEPRECATED #endif #include #include #include #if defined(_GINKGO_DEBUG) && !defined(OMITIR_VENTANA_ERRORES_VTK) #include #endif #if defined(_WIN32) #define _WINSOCKAPI_ #include #include #endif #if defined(_WIN32) && defined(_GINKGO_DEBUG) && !defined(_WIN32_WINNT_WIN7) //#include #endif #if !defined(_WIN32) #include #endif #include
#include #include #include #include #include #include #include
#include #include #include #include "main/entorno.h" #include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include #define _GINKGO_ENABLE_SPLASH using namespace GIL; #if defined(_WIN32) void RedirectIOToConsole() { CONSOLE_SCREEN_BUFFER_INFO coninfo; FILE *fp; // allocate a console for this app AllocConsole(); // set the screen buffer to be big enough to let us scroll text GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo); coninfo.dwSize.Y = 9999; SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize); // redirect unbuffered STDOUT to the console long lStdHandle = (long) GetStdHandle(STD_OUTPUT_HANDLE); long hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen(hConHandle, "w"); *stdout = *fp; //setvbuf(stdout, NULL, _IONBF, 0); // redirect unbuffered STDIN to the console lStdHandle = (long) GetStdHandle(STD_INPUT_HANDLE); hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen(hConHandle, "r"); *stdin = *fp; //setvbuf(stdin, NULL, _IONBF, 0); // redirect unbuffered STDERR to the console lStdHandle = (long) GetStdHandle(STD_ERROR_HANDLE); hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen(hConHandle, "w"); *stderr = *fp; //setvbuf(stderr, NULL, _IONBF, 0); // make cout, wcout, cin, wcin, wcerr, cerr, wclog and clog // point to console as well //ios::sync_with_stdio(); } #endif class GinkgoEventsDelegate: GNC::GCS::IEventsObserver { public: GinkgoEventsDelegate(Ginkgo* pApp) { m_pApp = pApp; GNC::GCS::IEventsController::Instance()->Registrar(this, GNC::GCS::Events::EventHideSplashWindow()); } ~GinkgoEventsDelegate() { } virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt) { GNC::GCS::Events::EventHideSplashWindow* pEvt = dynamic_cast(evt); if (pEvt != NULL) { if (m_pApp->GetLogoWindow() != NULL) { m_pApp->GetLogoWindow()->Hide(); } } } virtual int FilterEvent(wxEvent &event) { // Automaticlly logout when the user is Away From Keyboard (AFK) for too long if (wxEVT_MOTION == event.GetEventType() || wxEVT_CHAR == event.GetEventType()) { // User has done something, so stop the AFK timer GNC::GCS::InactivityController::Instance()->ResetsInactivity(); } const int FILTER_EVENT_PROCESS_NORMALLY = -1; return FILTER_EVENT_PROCESS_NORMALLY; } Ginkgo* m_pApp; }; //Punto de entrada IMPLEMENT_APP_NO_MAIN(Ginkgo) #if defined(_WIN32) int WINAPI InitWX(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SetProcessDefaultLayout(0); return wxEntry(hInstance, hPrevInstance, lpCmdLine, nCmdShow); } #else int InitWX(int argc, char** argv) { return wxEntry(argc, argv); } #endif wxSplashScreen* Ginkgo::GetLogoWindow() { return m_pVentanaLogo; } /* Carga las extensiones de plugins Ginkgo (Bibliotecas externas .plugin) */ void Ginkgo::LoadPlugins() { GNC::ControladorExtensiones::Instance(); } void Ginkgo::OnSplashClose(wxCloseEvent& WXUNUSED(event)) { m_pVentanaLogo = NULL; } // Evento de incialización de la aplicación bool Ginkgo::OnInit() { m_pEventObserverDelegate = new GinkgoEventsDelegate(this); setlocale(LC_NUMERIC, "C"); #if defined(__WXOSX__) m_Inicializado = false; #endif //std::cout << "OnInit()" << std::endl; #if defined(_GINKGO_DEBUG) && defined(_WINDOWS) && defined (_GINKGO_CHECK_LEAKS) _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_DEBUG ); #endif #if (defined(_WIN32) && defined(_GINKGO_DEBUG)) || defined(FORCE_ENABLE_CONSOLE) RedirectIOToConsole(); #endif wxLog *logger = new wxLogStderr(); wxLog::SetActiveTarget(logger); { // TODO Migrate to getopt if params continues growing for (int i = 1; i < argc; ++i) { // Find the first "not starting with --" argument wxString arg = wxString(argv[i]); if (arg.StartsWith("--config-file")) { wxString::size_type eqPos = arg.find("="); if (eqPos != wxString::npos) { wxString configFilePath = arg.substr(eqPos + 1, std::string::npos); if (!wxFile::Exists(configFilePath)) { LOG_ERROR("INIT", "Specified config file does not exists" << ": " << TOPATH(configFilePath)); GNC::GCS::IControladorLog::FreeInstance(); GNC::Entorno::FreeInstance(); GNC::GCS::ConfigurationController::FreeInstance(); return false; } else { GNC::GCS::ConfigurationController::SetPreferredConfigFile(TOPATH(configFilePath)); } } } } } wxSocketBase::Initialize(); wxSQLite3Database::InitializeSQLite(); //initialize WSA on windows #if defined(_WINDOWS) WSADATA wsaData; if (WSAStartup(MAKEWORD( 2, 2 ), &wsaData) != 0) { LOG_ERROR("INIT", "Error initializing network"); } #endif //initialize curl... /* Must initialize libcurl before any threads are started */ curl_global_init(CURL_GLOBAL_ALL); WriteHeaderLog(); //esto es para que no casque m_pServer = NULL; #if defined(SINGLE_INSTANCE) //check numero de instancias del programa const wxString inst_name = wxString::Format(wxT("Ginkgo-%s"), wxGetUserId().c_str()); m_singleInstanceChecker.Create(inst_name); #if defined(_WINDOWS) const wxString& name = inst_name; #else const wxString name(wxT("40000")); #endif //comprobación una instancia //If using a single instance, use IPC to // communicate with the other instance if (!m_singleInstanceChecker.IsAnotherRunning()) { // Create a new server m_pServer = new stServer; if ( !m_pServer->Create( name ) ) { //NO ha podido crearse el servidor...... LOG_ERROR("Core", "Error creating IPC server"); } } else { GNC::Entorno::Instance()->SetChildInstance(true); LOG_INFO("Core", "Ginkgo client instance initiallized"); m_pServer = NULL; // OK, there IS another one running, so try to connect to it // and send it any filename before exiting. stClient* client = new stClient; // ignored under DDE, host name in TCP/IP based classes wxString hostName = wxT("localhost"); // Create the connection wxConnectionBase* connection = client->MakeConnection(hostName, name, inst_name); if (connection) { if (argc > 1) { wxString str; for (int i = 1; i < argc && str.IsEmpty(); ++i) { // Find the first "not starting with --" argument wxString arg = wxString(argv[1]); if (!arg.StartsWith("--")) { str = arg; } } if (!str.IsEmpty()) { if (str.Lower().StartsWith(wxT("ginkgocadx://"))) { LOG_INFO("Core", "The client sends following URL: " << str.ToUTF8()); // Ask the other instance to open a file or raise itself connection->Execute(str); connection->Disconnect(); delete connection; } else { wxFileName fileName = wxFileName(argv[1]); if (fileName.IsRelative()) { #if defined(__WXGTK__) char* invocation_dir = getenv("INVOCATION_DIR"); if (invocation_dir != NULL) { wxString invocationDir = wxString::FromUTF8(invocation_dir); if (!invocationDir.IsEmpty()) { fileName = invocationDir + wxFileName::GetPathSeparator() + fileName.GetFullPath(); } } #else fileName.MakeAbsolute(); #endif } if (fileName.IsOk() && ((fileName.FileExists() && fileName.IsFileReadable()) || (wxDirExists(fileName.GetFullPath()) && fileName.IsDirReadable()))) { LOG_INFO("Core", "The client sends following file: " << fileName.GetFullPath().ToUTF8()); // Ask the other instance to open a file or raise itself connection->Execute(fileName.GetFullPath()); connection->Disconnect(); delete connection; } else { wxString err = wxString::Format(wxT("Error: The file %s does not exists or is not readable"), argv[1]); LOG_ERROR("Core", TOPATH(err)); wxMessageBox(err, wxT("Ginkgo CADx"), wxICON_INFORMATION|wxOK); } } } } else { // Ask the other instance to open a file or raise itself connection->Execute(wxT("")); connection->Disconnect(); delete connection; } } else { LOG_ERROR("Core", "The client could not communicate with server because the server had opened modal dialogs"); wxMessageBox(wxT("Sorry, the existing instance may be too busy too respond.\nPlease close any open dialogs and retry."), wxT("Ginkgo CADx"), wxICON_INFORMATION|wxOK); } delete client; //nos salimos limpiamente sin dejar leaks GNC::GCS::IControladorLog::FreeInstance(); GNC::Entorno::FreeInstance(); GNC::GCS::ConfigurationController::FreeInstance(); return false; } #endif wxPNGHandler* handlerPng=new wxPNGHandler(); wxImage::AddHandler(handlerPng); #if defined(_GINKGO_ENABLE_SPLASH) m_pVentanaLogo = NULL; wxBitmap bitmap = GinkgoResourcesManager::Logos::GetLogoSplash(); wxSplashScreen splash(bitmap, wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_NO_TIMEOUT, -1, NULL, -1, wxDefaultPosition, wxDefaultSize, wxSTAY_ON_TOP|wxNO_BORDER); wxIcon icono; icono.CopyFromBitmap(GinkgoResourcesManager::Logos::GetLogoGinkgo32x32()); splash.SetIcon(icono); splash.Connect(wxEVT_CLOSE_WINDOW, wxCloseEventHandler(Ginkgo::OnSplashClose)); // Copia del bitmap original de la ventana splash para pintar sobre ella if (m_pBitmapOriginal.Create(bitmap.GetWidth(), bitmap.GetHeight(), bitmap.GetDepth())) { m_pVentanaLogo = &splash; wxMemoryDC srcDC(bitmap); wxMemoryDC dstDC(m_pBitmapOriginal); dstDC.Blit(wxPoint(0, 0), srcDC.GetSize(), &srcDC, wxPoint(0, 0), wxCOPY, false, wxPoint(0, 0)); } #endif DoProgress(wxString(_("Initializing environment ..."))); //inicializamos la intrnacionalizacion del core { GNC::GCS::ControladorInternacionalizacion::Instance()->AddCatalog("cadxcore"); } //permisos del core GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.restrictions", _Std("Ginkgo CADx restrictions"), "reutilize_study", _Std("Open only one tab for each study"), false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.restrictions", _Std("Ginkgo CADx restrictions"), "anonymous_history", _Std("Anonymous mode (history is cleaned)"), false, "", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.restrictions", _Std("Ginkgo CADx restrictions"), "max_tabs", _Std("Max number of tabs opened"), false, "2", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.restrictions", _Std("Ginkgo CADx restrictions"), "inactivity_time", _Std("Max seconds of Ginkgo CADx application inactivity"), false, "600", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.restrictions", _Std("Ginkgo CADx restrictions"), "auto_close", _Std("Close automatically Ginkgo CADx after dicomize"), false, "", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.restrictions", _Std("Ginkgo CADx restrictions"), "export", _Std("Export images"), false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.restrictions", _Std("Ginkgo CADx restrictions"), "acquire", _Std("Acquire DICOM files"), false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.restrictions", _Std("Ginkgo CADx restrictions"), "import", _Std("Import files to DICOM format"), false, "", true); #ifdef GINKGO_PRO GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.help", _Std("Online manual"), "url_manual", _Std("URL of manual"), true, _Std("doc\\manual_ginkgo_cadx_pro_en.pdf"), true); #else GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.help", _Std("Online manual"), "url_manual", _Std("URL of manual"), true, "http://doc.ginkgo-cadx.com/", true); #endif GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.help", _Std("Online support"), "url_support", _Std("URL of online support"), true, _Std("http://ginkgo-cadx.com/"), true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.update", _Std("Program Updates"), "check_updates", _Std("Warn about newest Ginkgo CADx updates"), false, "http://updates.ginkgo-cadx.com/version3.xml", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.update", _Std("Program Updates"), "update_period", _Std("Update period (days)"), false, "2", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.seguridad",_Std("Security"), "setup_security", _Std("Setup Security"), false, "", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.startup", _Std("Show on startup"), "startupdefaultvalue", _Std("Show on startup default value"), true, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.menu",_Std("Tools"),"configuracion",_Std("Settings menu"), false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.menu",_Std("Tools"),"licencia",_Std("License menu"), true, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.pacs.limits", _Std("PACS Limits"), "find_rsp_max_results", _Std("Maximum number of C-Find responses allowed"), false, "400", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.pacs.limits", _Std("PACS Limits"),"pacs_upload",_Std("Upload images to a PACS server"), false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.pacs.limits", _Std("PACS Limits"), "pacs_acquisition", _Std("Acquire images from PACS"),false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.pacs.limits", _Std("PACS Limits"), "remote_pacs", _Std("Enable remote PACS configuration"), false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.pacs.limits", _Std("PACS Limits"), "pacs_tls", _Std("Enable TLS configuration"), false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.pacs.limits", _Std("PACS Limits"), "patient_scope", _Std("Restrict search over selected patient"), false, "", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.pacs.limits", _Std("PACS Limits"), "study_size", _Std("Restrict study retrieval by maximum size (KB)"), false, "16384", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.pacs.limits", _Std("PACS Limits"), "force_lossless", _Std("Force lossless when upload"), false, "", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.importacion", _Std("Import"), "storage_sop_class", _Std("Specify this Storage SOP Class in dicomization"), false, "1.2.840.10008.5.1.4.1.1.77.1.4", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.importacion", _Std("Import"), "input_accno", _Std("Show accession number input"), false, "", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.importacion", _Std("Import"), "quality", _Std("Set compression, 0 implies no compression (0..14)"), false, "1", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.importacion", _Std("Import"), "codec", _Std("Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG Lossless)"), false, "0", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.importacion", _Std("Import"), "mantener", _Std("Don't change image codec (if possible)"), false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.importacion", _Std("Import"), "skip_demographic", _Std("Skip demographic step if it's possible"), false, "", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.hl7", _Std("HL7 Service"), "autostart", _Std("Automatically start HL7 Sender service"), false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.integracion", _Std("XML dicomization"), "send_message", _Std("Send Hl7 message when importing"), false, "", false); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.integracion", _Std("XML dicomization"), "upload_pacs_xml", _Std("Send study to PACS when importing"), false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.integracion",_Std("XML dicomization"), "integration_template",_Std("Default ORU template"),false, DEFAULT_INTEGRATION_MESSAGE_TEMPLATE, true); // Private permissions: Styles GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("style", _Std("Style"), "widgetsOverlay.maxTextWidth", "Widgets overlays Maximum text width", true, "-1", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("style", _Std("Style"), "widgetsOverlay.fontSize", "Widgets overlays font size", true, "18.0", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("style", _Std("Style"), "cornerAnnotation.fontSize", "Corner annotations font size", true, "14.0", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("style", _Std("Style"), "widgets.fontSize", "Widgets font size", true, "14.0", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("style", _Std("Style"), "widgets.maxTextWidth", "Widgets max text width", true, "350.0", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("style", _Std("Style"), "widgets.lineWidth", "Widgets line width", true, "1.0", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("style", _Std("Style"), "widgets.draggingLineWidth", "Widgets dragging line width", true, "1.0", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("style", _Std("Style"), "ecg.label.fontSize", "ECG labels size", true, "14.0", true); std::string modalidades[20] = {"CR","CT","DR","DX","IO","MG","MR","NM","OT","PT","RF","RG","SC","SR","US","XA","XC","ES","ECG","HD"}; //permisos modalidades for(int i = 0; i < 20; ++i) { wxString texto = wxString::Format(_("Download %s images"),wxString::FromUTF8(modalidades[i].c_str()).c_str()); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.pacs.download",_Std("PACS"),modalidades[i],std::string(texto.ToUTF8()),false, "", true); } wxString texto = _("Download all modalities"); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.pacs.download",_Std("PACS"),"all",std::string(texto.ToUTF8()),false, "", true); GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("core.opengl", _Std("OpenGL"), "enable_shaders", _Std("Enable shaders"), false, "", true); //ginkgocloud GNC::GCS::IControladorPermisos::Instance()->AddDefinicionPermiso("ginkgocloud",_Std("Ginkgo Cloud"), "download",_Std("Download from Ginkgo Cloud"),false, "", true); itk::MultiThreader::SetGlobalDefaultNumberOfThreads(4); itk::MultiThreader::SetGlobalMaximumNumberOfThreads(16); /* vtkPolyDataMapper* m = vtkPolyDataMapper::New(); m->GlobalImmediateModeRenderingOn(); m->Delete(); */ #ifdef __WXMAC__ wxApp::s_macAboutMenuItemId = 1062; wxApp::s_macPreferencesMenuItemId = 1063; wxApp::s_macHelpMenuTitleName = wxT("A&yuda"); //wxSystemOptions::SetOption( wxMAC_TEXTCONTROL_USE_SPELL_CHECKER, 1 ); #endif #if !defined(_GINKGO_DEBUG) || defined(OMITIR_VENTANA_ERRORES_VTK) vtkObject::GlobalWarningDisplayOff(); itk::Object::GlobalWarningDisplayOff(); #endif wxThread::SetConcurrency(wxThread::GetCPUCount()); //codecs... wxJPEGHandler* handler=new wxJPEGHandler(); wxImage::AddHandler(handler); wxGIFHandler* handlerGif=new wxGIFHandler(); wxImage::AddHandler(handlerGif); wxTIFFHandler* handleTiff = new wxTIFFHandler(); wxImage::AddHandler(handleTiff); GNC::Entorno::Instance()->SetApp(this); { wxWindowDisabler dis; m_pVentanaPrincipal = new VentanaPrincipal(NULL, wxString::FromUTF8(GNC::Entorno::Instance()->GetApplicationName().c_str())); m_pVentanaPrincipal->Hide(); SetTopWindow(m_pVentanaPrincipal); } DoProgress(wxString(_("Tools loading base ..."))); DoProgress(wxString(_("Starting tools..."))); GNC::RegisterCoreTools(); DoProgress(wxString(_("Loading plugins ..."))); try { LoadPlugins(); } catch (GNC::GCS::IRequestingException& ex) { m_pVentanaLogo->Hide(); if (ex.shouldExit()) { exit(-1); } } catch (GNC::GCS::IException& ex) { m_pVentanaLogo->Hide(); LOG_ERROR("Init", "Error loading: " << ex.GetCause()); wxMessageBox(_("Unable to start GinkgoCADx:\n") + wxString::FromUTF8(ex.GetCause().c_str()),_("error"),wxICON_INFORMATION); exit(-1); } DoProgress(wxString(_("Loading resources ..."))); GIL::DICOM::Conformance::Load(); DoProgress(wxString(_("Starting services..."))); try { GIL::DICOM::PACSController::Instance()->StartServer(); } catch(GNC::GCS::IException& ex) { LOG_ERROR("Init", "Error starting PACS Service: " << ex.GetCause()); } try { GNC::GCS::SmartRetrieveController::Instance()->resetStatus(); } catch(...) { LOG_ERROR("Init", "Error starting smartRetrieve service"); } DoProgress(wxString(_("Configuring environment ..."))); try { GNC::GCS::ConfigurationController::TListGroups profiles; GNC::GCS::ConfigurationController::Instance()->readGroupGeneral("/GinkgoCore/Profiles", profiles); for (GNC::GCS::ConfigurationController::TListGroups::iterator it = profiles.begin(); it != profiles.end(); ++it) { bool value; (*it).readBoolValue("Apply",value, false); if (value) { std::string xml; if ((*it).readStringValue("XML", xml)) { GNC::GCS::IControladorPermisos::Instance()->CargarXMLPermisos(xml, false); break; } } } } catch(GNC::GCS::ControladorPermisosException& ex) { m_pVentanaLogo->Hide(); wxMessageBox(_("Failed to set permissions:\n") + wxString::FromUTF8(ex.GetCause().c_str()),_("error"),wxICON_INFORMATION); } //es necesario porque hay permisos que afectan a menus m_pVentanaPrincipal->RefrescarMenus(); //se registran vistas y modos const GNC::ControladorExtensiones::ListaModulos& listaModulos = GNC::ControladorExtensiones::Instance()->Modulos(); for(GNC::ControladorExtensiones::ListaModulos::const_iterator it = listaModulos.begin(); it != listaModulos.end(); ++it) { (*it).second->RegistrarVistas(); } DoProgress(wxString(_("Updating ..."))); m_pVentanaPrincipal->CargarHistorial(); DoProgress(wxString(_("Interpreting parameters ..."))); //parseo wxCommandEvent ce(wxEVT_COMMAND_MENU_SELECTED, ID_Inicio_Aplicacion); m_pVentanaPrincipal->GetEventHandler()->AddPendingEvent(ce); #if defined (__WXMAC__) m_Inicializado = true; if (m_OpenFileName.size() > 0) { GinkgoDispatcher::Instance()->InsertarPeticion(m_OpenFileName); } #endif #if defined(_GINKGO_ENABLE_SPLASH) m_pVentanaLogo = NULL; #endif //launch auto cleaning controller... GNC::GCS::AutoCleaningController::Instance(); LOG_STAT(ANON_STAT_RUN_GINKGO) return TRUE; } #ifdef __WXMAC__ void Ginkgo::MacOpenFile(const wxString &fileName) { if (m_Inicializado) { GinkgoDispatcher::Instance()->InsertarPeticion( std::string(TOPATH(fileName)) ); } else { m_OpenFileName = std::string(TOPATH(fileName)); } } #endif int Ginkgo::OnExit() { LOG_INFO("Core", "Cerrando Ginkgo "); //UnRegister events delete m_pEventObserverDelegate; m_pEventObserverDelegate = NULL; //UnRegister tools try { GNC::GCS::IToolsRegistry::Instance()->UnRegisterAll(); } catch (GNC::GCS::ToolsRegistryException& ex) { LOG_ERROR("Core", _Std("Error unregistering tools: ") << ex.str()) } GNC::GCS::StoredQueryController::FreeInstance(); GNC::GCS::SmartRetrieveController::FreeInstance(); GNC::GCS::AutoCleaningController::FreeInstance(); GNC::GCS::AnonUsageStats::FreeInstance(); GNC::GCS::ThumbnailController::FreeInstance(); GNC::GCS::ModalitySettingsController::FreeInstance(); GNC::GCS::HangingProtocolController::FreeInstance(); GNC::GCS::ControladorVistas::FreeInstance(); GIL::IntegrationController::FreeInstance(); GIL::HL7::ControladorEnvioHl7::FreeInstance(); GNC::GCS::ControladorAcciones::FreeInstance(); GNC::GCS::InactivityController::FreeInstance(); GIL::DICOM::PACSController::FreeInstance(); GNC::GCS::ICommandController::FreeInstance(); GNC::ControladorExtensiones::FreeInstance(); GNC::GCS::ControladorCarga::FreeInstance(); GNC::HistoryToolsController::FreeInstance(); GNC::GCS::IToolsRegistry::FreeInstance(); GNC::GCS::HistoryController::FreeInstance(); GIL::HL7::ControladorBBDDHl7::FreeInstance(); GNC::GCS::IControladorPermisos::FreeInstance(); GNC::GCS::ControladorInternacionalizacion::FreeInstance(); GSEC::Auth::ControladorAutenticacion::FreeInstance(); DicomServerList::FreeInstance(); wxSQLite3Database::ShutdownSQLite(); GNC::GCS::IEventsController::FreeInstance(); GNC::Entorno::FreeInstance(); wxSocketBase::Shutdown(); #if defined(_WINDOWS) if (m_pServer != NULL) { delete m_pServer; } #endif GNC::GCS::ConfigurationController::FreeInstance(); GNC::GCS::IControladorLog::FreeInstance(); #if defined(_WINDOWS) WSACleanup(); #endif curl_global_cleanup(); #if defined(_WINDOWS) && defined(_DEBUG) cairo_debug_reset_static_data(); #endif return wxApp::OnExit(); } // Modificación del estado en el banner void Ginkgo::DoProgress(wxString str) { if (m_pVentanaLogo == NULL) { return; } wxSplashScreenWindow* pSplashWin = m_pVentanaLogo->GetSplashWindow(); wxMemoryDC srcDC(m_pBitmapOriginal); wxClientDC wdc(pSplashWin); wxColour colorTexto; colorTexto.Set(70,70,70); // Restauración del logo wdc.Blit(wxPoint(0, 0), srcDC.GetSize(), &srcDC, wxPoint(0, 0), wxCOPY, false, wxPoint(0, 0)); // Dibujado del texto wdc.SetTextForeground(colorTexto); wdc.DrawText(str, 190, srcDC.GetSize().y - 37); } void Ginkgo::WriteHeaderLog() { LOG_INFO("Core", _Std("Starting") << " " << GNC::Entorno::Instance()->GetApplicationName() << " " << GNC::GCS::IEntorno::Instance()->GetGinkgoVersionString()); } //endregion ginkgocadx-3.8.7/cadxcore/api/initwx.h000066400000000000000000000043701314736454600177240ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include namespace GNC { namespace GCS { namespace Events { class IEvento; } } } class wxSingleInstanceChecker; class Entorno; class stServer; // Colores de la ventana del logo #define SPLASH_COLOR_RELLENO "#4400FF" // Azul #define SPLASH_COLOR_BORDE "#d4d4d4" // Gris #define SPLASH_COLOR_TEXTO "#d4d4d4" // Gris class wxSplashScreen; class VentanaPrincipal; class GinkgoEventsDelegate; class EXTAPI Ginkgo : public wxApp { public: wxSplashScreen* GetLogoWindow(); virtual bool OnInit(); virtual int OnExit(); #ifdef __WXMAC__ virtual void MacOpenFile(const wxString &fileName); std::string m_OpenFileName; bool m_Inicializado; #endif virtual void DoProgress(wxString str); void OnSplashClose(wxCloseEvent& event); void WriteHeaderLog(); //region "Carga de Extensiones" void LoadPlugins(); //endregion private: protected: wxSplashScreen* m_pVentanaLogo; wxBitmap m_pBitmapOriginal; VentanaPrincipal* m_pVentanaPrincipal; wxSingleInstanceChecker m_singleInstanceChecker; stServer* m_pServer; GinkgoEventsDelegate* m_pEventObserverDelegate; public: wxCriticalSection m_SplashCriticalSection; }; #if defined(_WIN32) int WINAPI InitWX(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow); #else int InitWX(int argc, char** argv); #endif ginkgocadx-3.8.7/cadxcore/api/instantiations/000077500000000000000000000000001314736454600212745ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/instantiations/instantiations.cpp000066400000000000000000000022311314736454600250450ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include "instantiations.h" #if defined(GEOMETRY2D_NO_TEMPLATE) #else namespace GNC { namespace GCS { //EXTAPI_TEMPLATE template GVector; //EXTAPI_TEMPLATE template GMatriz; } } #endif ginkgocadx-3.8.7/cadxcore/api/instantiations/instantiations.h000066400000000000000000000005161314736454600245160ustar00rootroot00000000000000#error delete this file #pragma once /* * * $Id: instantiations.h $ * Ginkgo CADx Project * * Copyright 2008-14 MetaEmotion S.L. All rights reserved. * http://ginkgo-cadx.com * * This file is licensed under LGPL v3 license. * See License.txt for details * */ #ifndef INSTANTIATIONS_H #define INSTANTIATIONS_H #endif ginkgocadx-3.8.7/cadxcore/api/integration/000077500000000000000000000000001314736454600205505ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/integration/dict.h000066400000000000000000000105361314736454600216510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once //GinkgoCADx Integration dictionary #define GKDI_GINKGOCADX_MODULE_UID "ginkgocadx:module.uid" #define GKDI_GINKGOCADX_MODULE_NAME "ginkgocadx:module.name" #define GKDI_GINKGOCADX_MODULE_TID "ginkgocadx:module.tid" #define GKDI_GINKGOCADX_CONF_RECEIVING_ORG_ID "ginkgocadx.conf:receiving.organization.id" #define GKDI_GINKGOCADX_CONF_PETITIONER_SYS_ID "ginkgocadx.conf:petitioner.system.id" #define GKDI_GINKGOCADX_CONF_FILLER_APP_ID "ginkgocadx.conf:filler.application.id" #define GKDI_GINKGOCADX_CONF_ORGANIZATION_NAME "ginkgocadx.conf:organization.name" #define GKDI_GINKGOCADX_CONF_ORGANIZATION_ID "ginkgocadx.conf:organization.id" #define GKDI_GINKGOCADX_CONF_GINKGO_APP_ID "ginkgocadx.conf:gingocadx.application.id" #define GKDI_MESSAGE_HL7_TIMESTAMP "message:timestamp.hl7" #define GKDI_MESSAGE_EPOCH_TIMESTAMP "message:timestamp.epoch" #define GKDI_MESSAGE_PLACER "message:placer.id" // Custom Placer ID #define GKDI_MESSAGE_FILLER "message:filler.id" // Custom Filler ID #define GKDI_GLOBAL_PACS_STORE_SID "global:pacs.store.sid" #define GKDI_GLOBAL_PACS_RETRIEVE_SID "global:pacs.retrieve.sid" #define GKDI_GLOBAL_OBSERVATIONS "global:observations" #define GKDI_GLOBAL_APPLICATION_CODE "global:application.code" #define GKDI_GLOBAL_PACS_LOCAL_AET "global:pacs.local.aet" #define GKDI_HCE_PETITION_ID "hce:petition.id" #define GKDI_HCE_EPISODE_NUMBER "hce:episode.number" #define GKDI_HCE_ID "hce:id" #define GKDI_JIMENA_AMBITO_PETICION "jimena:ambito.peticion" #define GKDI_PATIENT_ID "patient:id" #define GKDI_PATIENT_ID_ASSIGNING "patient:issuer.of.patient.id" #define GKDI_PATIENT_NAME "patient:name" #define GKDI_PATIENT_FAMILY_NAME "patient:family.name" #define GKDI_PATIENT_SECOND_FAMILY_NAME "patient:family.second.name" #define GKDI_PATIENT_SEX "patient:sex" #define GKDI_PATIENT_BIRTH_DATE "patient:birth.date" #define GKDI_REFERRING_PHISICIAN_ID "referring.physician:id" #define GKDI_REFERRING_PHISICIAN_NAME "referring.physician:name" #define GKDI_REFERRING_PHISICIAN_FAMILY_NAME "referring.physician:family.name" #define GKDI_REFERRING_PHISICIAN_SECOND_FAMILY_NAME "referring.physician:family.second.name" #define GKDI_REFERRING_PHISICIAN_INSTITUTION_ID "referring.physician:institution.id" #define GKDI_REFERRING_PHISICIAN_INSTITUTION_NAME "referring.physician:institution.name" #define GKID_STUDY_IDX "study:idx" #define GKDI_STUDY_ACCESSION_NUMBER "study:accession.number" #define GKDI_STUDY_INSTANCE_UID "study:instance.uid" #define GKDI_STUDY_DESCRIPTION "study:description" #define GKID_SERIE_IDX "serie:idx" #define GKDI_SERIE_INSTANCE_UID "serie:instance.uid" #define GKDI_SERIE_DESCRIPTION "serie:description" #define GKID_IMAGE_IDX "image:idx" #define GKDI_IMAGE_SOP_INSTANCE_UID "image:sop.instance.uid" #define GKDI_IMAGE_SOP_CLASS_UID "image:sop.class.uid" #define GKDI_IMAGE_DICOM_PATH "image:file.target.path" ginkgocadx-3.8.7/cadxcore/api/integration/template.h000066400000000000000000000110621314736454600225340ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #define DEFAULT_INTEGRATION_MESSAGE_TEMPLATE \ "" \ " MSH|^~\\&|||||||ORU^R01^ORU_R01|GNK.|P|2.5|||AL|NE" \ " PID|1||^^^HIS^PI^^^^&&99CENTROSACYL||^|" \ " PV1|1||||||||||||||||||^^^^VN^^^^&&99CENTROSACYL" \ " " \ " ORC|SC||.^||CM|||||||^^^^^^^^MI^^^^NNESP^^^^^^^^^ESP&&ISO3166|||||^^||||\"\"^^^^^^^^^\"\"" \ " OBR|||.^||||||||||||||||||||||||||" \ " TQ1|1||||||||R" \ " " \ " " \ " " \ " " \ " OBX||HD|121018^Study Instance UID^DCM||^^ISO||||||F|||||^^^^^^^^MI^^^^NNESP^^^^^^^^^ESP&&ISO3166" \ " OBX||HD|112002^Series Instance UID^DCM||^^ISO||||||F|||||^^^^^^^^MI^^^^NNESP^^^^^^^^^ESP&&ISO3166" \ " OBX||HD|121126^SOP Instance UID^DCM||^^ISO||||||F|||||^^^^^^^^MI^^^^NNESP^^^^^^^^^ESP&&ISO3166" \ " OBX||HD|121127^SOP Class ID^DCM||^^ISO||||||F|||||^^^^^^^^MI^^^^NNESP^^^^^^^^^ESP&&ISO3166" \ " OBX||HD|ARCHIVE^IDPACS^DCM||^^DNS|||||||||||^^^^^^^^MI^^^^NNESP^^^^^^^^^ESP&&ISO3166" \ " " \ " " \ " " \ " " ginkgocadx-3.8.7/cadxcore/api/internal.h000066400000000000000000000016541314736454600202200ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef NOEXTERNALINCLUDE_H #define NOEXTERNALINCLUDE_H #include #if !defined(APIEXPORT) //#error This file could not been included outside cadxcore #endif #endif ginkgocadx-3.8.7/cadxcore/api/internationalization/000077500000000000000000000000001314736454600224725ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/internationalization/internationalization.cpp000066400000000000000000000020031314736454600274360ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include std::string EXTAPI _Std(const char* s) { wxString wxStr = wxString::FromUTF8(s); wxStr = wxGetTranslation(wxStr); return std::string(wxStr.ToUTF8()); } ginkgocadx-3.8.7/cadxcore/api/internationalization/internationalization.h000066400000000000000000000015761314736454600271210ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include /** Translates the string to current language **/ std::string EXTAPI _Std(const char* s); ginkgocadx-3.8.7/cadxcore/api/ioverlay.h000066400000000000000000000023161314736454600202320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include class vtkGinkgoImageViewer; namespace GNC { namespace GCS { namespace Widgets { class IWidget; } } } namespace GNC { namespace GCS { /* Interfaz que se ocupa de imprimir (OpenGL + Cairo) datos referidos a un widget o a un widgetsRenderer */ class IImpresorOverlay { public: virtual ~IImpresorOverlay() {} virtual std::string ImprimirOverlay(GNC::GCS::Widgets::IWidget* w, vtkGinkgoImageViewer* pViewer) = 0; }; } } ginkgocadx-3.8.7/cadxcore/api/iproxynotificadorprogreso.h000066400000000000000000000025161314736454600237370ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { class EXTAPI IProxyNotificadorProgreso { public: IProxyNotificadorProgreso() {} virtual ~IProxyNotificadorProgreso() {} /** Notifica el progreso. Este metodo se puede ejecutar de manera asincrona, y su desencadenante resulta en una llamada sincrona con la interfaz. Devuelve false si el comando se ejecutara, de manera que el invocador (tarea que ejecuta la accion real) pueda saber si debe terminar.**/ virtual bool NotificarProgreso(float progresoNormalizado, const std::string& texto) = 0; }; } ginkgocadx-3.8.7/cadxcore/api/istudycontext.cpp000066400000000000000000000533321314736454600216650ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
#include
#include #include
#include
#include
#include
#include #undef __DEPRECATED #include #include #include #include #include #include #include #include #include #include #define _GINKGO_TRACE GNC::GCS::IStudyContext::IStudyContext() { View = NULL; Viewer = NULL; Module = NULL; Window = NULL; ParentWindow = NULL; Loader = GNC::GCS::ControladorCarga::Instance()->NewLoader(); renderConnection = Loader->GetOutputPort(); ActiveFileIndex = -1; } GNC::GCS::IStudyContext::IStudyContext(const GNC::GCS::IStudyContext& o) { *this = o; } GNC::GCS::IStudyContext::IStudyContext(const GNC::GCS::IStudyContext* o) { if (o != NULL) { *this = *o; } else { View = NULL; Module = NULL; Window = NULL; ParentWindow = NULL; Viewer = NULL; Loader = GNC::GCS::ControladorCarga::Instance()->NewLoader(); renderConnection = Loader->GetOutputPort(); ActiveFileIndex = -1; } } GNC::GCS::IStudyContext::~IStudyContext() { } GNC::GCS::Ptr GNC::GCS::IStudyContext::NewRef(const GNC::GCS::Ptr& parent) { GNC::GCS::Ptr reference = new IReferredStudyContext(); reference->View = parent->View; reference->Module = parent->Module; reference->Window = parent->Window; reference->ParentWindow = parent->ParentWindow; reference->ActiveFileIndex = parent->ActiveFileIndex; reference->Files = parent->Files; reference->OpenedSeries = parent->OpenedSeries; reference->EstudioPadre = parent; reference->hangingLayout = parent->hangingLayout; return reference; } GNC::GCS::IStudyContext& GNC::GCS::IStudyContext::operator = (const GNC::GCS::IStudyContext& o) { View = o.View; Module = o.Module; Window = o.Window; ParentWindow = o.ParentWindow; Loader = o.Loader; renderConnection = Loader->GetOutputPort(); ActiveFileIndex = o.ActiveFileIndex; Files = o.Files; OpenedSeries.clear(); for (std::vector::const_iterator it = o.OpenedSeries.begin(); it != o.OpenedSeries.end(); ++it) { OpenedSeries.push_back((*it)); } hangingLayout = o.hangingLayout; return *this; } vtkSmartPointer GNC::GCS::IStudyContext::GetLoaderOutputConnection() { return vtkSmartPointer(Loader->GetOutputPort()); } void GNC::GCS::IStudyContext::SetRendererInputConnection(const vtkSmartPointer& input) { renderConnection = input; } void GNC::GCS::IStudyContext::SetViewer(const vtkSmartPointer& viewer) { Viewer = viewer; if (Viewer != NULL) { Viewer->IImagePropertiesProxy = Loader; } } void GNC::GCS::IStudyContext::SetActiveIndex(int indice) { int newIdx = indice; if (indice >= 0 && !Files.empty()) { // Propagate last to each other, so there is no more slices to layout them size_t numFiles = Files.size(); if (static_cast(indice) >= numFiles) { newIdx = numFiles - 1; } TStudyFile& fichero = *Files[newIdx]; ActiveFileIndex = newIdx; Loader->SetInput(fichero.PathOfFile); Loader->UpdateInformation(); double spacing[3] = {1.0f, 1.0f, 1.0f}; if (!GetSpacingActive(spacing[0], spacing[1], spacing[2])) { LOG_INFO("StudyContext", "GNC::GCS::IStudyContext::SetActiveIndex: no active spacing, use defaul (1,1,1)"); } Loader->SetOutputSpacing(spacing); double origin[3] = {0.0f, 0.0f, 0.0f}; GetOriginActive(origin[0], origin[1], origin[2]); Loader->SetOutputOrigin(origin); if(Viewer != NULL) { // FIXME: Comprobar si el pipeline esta conectado. Viewer->SetupPipeline(); } else { LOG_ERROR("StudyContext", "GNC::GCS::IStudyContext::SetActiveIndex: no idea what is wrong ..."); } } else { LOG_ERROR("StudyContext", "Layout distribution error"); } } void GNC::GCS::IStudyContext::DoInitiallizeContext(const std::list& rutas) { ActiveFileIndex = 0; Viewer=NULL; Files.clear(); //se inicializan los vectores... for (std::list::const_iterator it = rutas.begin(); it != rutas.end(); ++it) { Files.push_back(new TStudyFile()); Files.back()->PathOfFile = (*it); } } std::list GNC::GCS::IStudyContext::GetImagePaths() { std::list resultado; for (TStudyFileVector::iterator it = Files.begin(); it != Files.end(); ++it) { resultado.push_back((*it)->PathOfFile); } return resultado; } const std::string& GNC::GCS::IStudyContext::GetPathActiveImage() { return GetImagePath(ActiveFileIndex); } const std::string& GNC::GCS::IStudyContext::GetImagePath(const int indice) { if (indice >= 0 && (unsigned int)indice < Files.size()) { return Files[indice]->PathOfFile; } else { throw GNC::GCS::VistaException("GetRutaDeImagen(): Indice fuera de rango"); } } GNC::GCS::Ptr GNC::GCS::IStudyContext::GetMetaInfoActiveImage() { return GetMetaInfo(ActiveFileIndex); } GNC::GCS::Ptr GNC::GCS::IStudyContext::GetTagsActiveImage() { return GetTagsImage(ActiveFileIndex); } GNC::GCS::Ptr GNC::GCS::IStudyContext::GetPrivateTagsActiveImage() { return GetPrivateTags(ActiveFileIndex); } GNC::GCS::Ptr GNC::GCS::IStudyContext::GetMetaInfo(const int indice) { if(indice < 0 || indice >= (int)Files.size()) return NULL; TStudyFile& fichero = *Files[indice]; if(! fichero.MetaInfo.IsValid() ) { LoadMetaInfo(indice); } return fichero.MetaInfo; } GNC::GCS::Ptr GNC::GCS::IStudyContext::GetTagsImage(const int indice) { if(indice < 0 || indice >= (int)Files.size()) return NULL; TStudyFile& fichero = *Files[indice]; if(!fichero.TagsImage.IsValid()) { LoadImageTags(indice); } return fichero.TagsImage; } GNC::GCS::Ptr GNC::GCS::IStudyContext::GetPrivateTags(int indice) { if(indice < 0 || indice >= (int)Files.size()) return NULL; TStudyFile& fichero = *Files[indice]; if(!fichero.PrivateTags.IsValid()) { LoadImageTags(indice); } return fichero.PrivateTags; } int GNC::GCS::IStudyContext::GetSliceNumber() { return Files.size(); } bool GNC::GCS::IStudyContext::GetSpacingActive(double* spacing) { return GNC::GCS::IStudyContext::GetSpacing(ActiveFileIndex, spacing[0], spacing[1] , spacing[2]); } bool GNC::GCS::IStudyContext::GetSpacingActive(double& x, double& y, double& z) { return GNC::GCS::IStudyContext::GetSpacing(ActiveFileIndex, x, y ,z); } void GNC::GCS::IStudyContext::RecalibrateActiveImage(double spacing[3], double origin[3]) { RecalibrateImage(ActiveFileIndex, spacing, origin); } void GNC::GCS::IStudyContext::RecalibrateImage(const int indice, double spacing[3], double origin[3]) { if (indice == ActiveFileIndex) { Loader->SetOutputOrigin(origin); Loader->SetOutputSpacing(spacing); Viewer->SetupPipeline(); } SetSpacing(indice, spacing[0], spacing[1], spacing[2]); } bool GNC::GCS::IStudyContext::GetSpacing(const int indice, double& x, double& y, double& z) { bool hasSpacing = false; std::string spacing; x=0.0f; y=0.0f; z=0.0f; GNC::GCS::Ptr tagsImage = GetTagsImage(indice); if (tagsImage.IsValid()) { if(tagsImage->getTag("0028|0030",spacing)) { char c; std::istringstream issl(spacing); issl >> x; if(!issl.eof()) { issl>>c;//la barra issl>>y; } if(!issl.eof()) { issl>>c;//la barra issl>>z; } hasSpacing = true; } else if(tagsImage->getTag("0018|1164",spacing)) { char c; std::istringstream issl(spacing); issl >> x; if(!issl.eof()) { issl>>c;//la barra issl>>y; } if(!issl.eof()) { issl>>c;//la barra issl>>z; } hasSpacing = true; } } if (x < std::numeric_limits::epsilon()) { x = 1.0f; hasSpacing = false; } if (y < std::numeric_limits::epsilon()) { y = 1.0f; hasSpacing = false; } if (z < std::numeric_limits::epsilon()) { z = 1.0f; } return hasSpacing; } void GNC::GCS::IStudyContext::SetSpacing(const int indice, const double x, const double y, const double z) { std::ostringstream os; os << x << "\\" << y << "\\" < tagsImage = GetTagsImage(indice); if (tagsImage.IsValid()) { tagsImage->tags[std::string("0028|0030")] = nuevoSpacing; } } void GNC::GCS::IStudyContext::GetOriginActive(double* origin) { GetOrigin(ActiveFileIndex, origin[0], origin[1], origin[2]); } void GNC::GCS::IStudyContext::GetOriginActive(double& x, double& y, double& z) { GetOrigin(ActiveFileIndex, x, y ,z); } void GNC::GCS::IStudyContext::GetOrigin(const int indice, double& x, double& y, double& z) { std::string origin; x = y = z =0.0f; GNC::GCS::Ptr tagsImagen = GetTagsImage(indice); if (tagsImagen.IsValid()) { if(tagsImagen->getTag("0020|0032",origin)) { char c; std::istringstream issl(origin); issl >> x; if(!issl.eof()) { issl>>c;//la barra issl>>y; } if(!issl.eof()) { issl>>c;//la barra issl>>z; } } } } void GNC::GCS::IStudyContext::GetDimensionsActiveImage(int* dims) { GetDimensionsImage(ActiveFileIndex, dims[0], dims[1], dims[2]); } void GNC::GCS::IStudyContext::GetDimensionsActiveImage(int& x, int& y, int& z) { GetDimensionsImage(ActiveFileIndex, x, y, z); } void GNC::GCS::IStudyContext::GetDimensionsImage(const int indice, int& x, int& y, int& z) { //z = Files.size(); x = y = z = 0; GNC::GCS::Ptr tagsImagenOriginal = GetTagsImage(indice); if (tagsImagenOriginal.IsValid()) { std::string tag; if (tagsImagenOriginal->getTag("0028|0010",tag) ) { std::istringstream issl(tag); issl >> y; } if (tagsImagenOriginal->getTag("0028|0011",tag)) { std::istringstream issl(tag); issl >> x; } if (tagsImagenOriginal->getTag("0028|0008",tag)) { std::istringstream issl(tag); issl >> z; } else { z = 1; } } } int GNC::GCS::IStudyContext::GetTSizeActive() { int dimensions[3] = {0,0,0}; Loader->GetOutputDimensions(dimensions); return dimensions[2]; } std::string GNC::GCS::IStudyContext::GetTagActiveImage(const std::string& tag) { std::string tagVal; GetTagActiveImage(tag, tagVal); return tagVal; } bool GNC::GCS::IStudyContext::GetTagActiveImage(const std::string& tag, std::string& valor) { GNC::GCS::Ptr pointer = GetTagsActiveImage(); if (pointer.IsValid()) { return pointer->getTag(tag,valor); } else { return false; } } int GNC::GCS::IStudyContext::GetPathIndex(const std::string& path) { int i = 0; for (TStudyFileVector::iterator it = Files.begin(); it != Files.end(); ++it, i++) { if ((*it)->PathOfFile == path) { return i; } } return -1; } void GNC::GCS::IStudyContext::CreateLoader() { Loader = GNC::GCS::ControladorCarga::Instance()->NewLoader(); renderConnection = Loader->GetOutputPort(); } bool GNC::GCS::IStudyContext::IsKeyImageActive() { return IsKeyImage(ActiveFileIndex); } bool GNC::GCS::IStudyContext::IsKeyImage(int indice) { GNC::GCS::Ptr pTagsPrivados = GetPrivateTags(indice); if (!pTagsPrivados.IsValid()) return false; std::string isKey; if (pTagsPrivados->GetTag(TAG_KEY_IMAGE, isKey)) { return isKey.compare("YES") == 0; } else { return false; } } void GNC::GCS::IStudyContext::LoadMetaInfo(const int indice) { GNC::GCS::ILocker lock(this); //tags imagenes TStudyFile* fichero = Files[indice]; if (!fichero->MetaInfo.IsValid()) { fichero->MetaInfo = new GIL::DICOM::TipoMetaInfo(); GIL::DICOM::IDICOMManager* pDICOMManager; pDICOMManager= GNC::Entorno::Instance()->GetPACSController()->CrearInstanciaDeDICOMManager(); pDICOMManager->CargarMetaInfo(fichero->PathOfFile, *(fichero->MetaInfo)); GNC::Entorno::Instance()->GetPACSController()->LiberarInstanciaDeDICOMManager(pDICOMManager); } } void GNC::GCS::IStudyContext::LoadImageTags(const int indice) { GNC::GCS::ILocker lock(this); TStudyFile* fichero = Files[indice]; //tags imagenes if (!fichero->TagsImage.IsValid()) { fichero->TagsImage = new GIL::DICOM::DicomDataset(); fichero->PrivateTags = new GIL::DICOM::TipoPrivateTags(UID_TAGS_PRIVADOS_COMUNES); GIL::DICOM::IDICOMManager* pDICOMManager; pDICOMManager= GNC::Entorno::Instance()->GetPACSController()->CrearInstanciaDeDICOMManager(); pDICOMManager->CargarFichero(fichero->PathOfFile, *(fichero->TagsImage)); pDICOMManager->CargarTagsPrivados(*(fichero->PrivateTags)); CallbackCargarTagsImagen(indice, pDICOMManager); GNC::Entorno::Instance()->GetPACSController()->LiberarInstanciaDeDICOMManager(pDICOMManager); } } //inicializa el mapa de valoracion con los datos del tag privado, si no existe el tag privado lo crea y lo inserta void GNC::GCS::IStudyContext::CreateUnsignedCharMap(vtkSmartPointer& pMapa, GNC::GCS::Ptr pTagsPrivados, const unsigned char tag, const int indice, unsigned char valorInicial) { GNC::GCS::ILocker lock(this); //se crea la imagen if (pMapa == NULL) { pMapa = vtkSmartPointer::New(); double spacing[3] = {1.0f,1.0f,1.0f}; double origin[3] = {0.0f,0.0f,0.0f}; int dimensions[3] = {0,0,0}; GetSpacing(indice,spacing[0],spacing[1],spacing[2]); GetOrigin(indice,origin[0],origin[1],origin[2]); GetDimensionsImage(indice,dimensions[0],dimensions[1], dimensions[2]); //se inicializan valores de dimensions, scalartype... pMapa->SetDimensions(dimensions[0],dimensions[1],1); pMapa->AllocateScalars(VTK_UNSIGNED_CHAR, 1); pMapa->SetSpacing(spacing[0],spacing[1],spacing[2]); pMapa->SetOrigin(origin[0],origin[1],origin[2]); GIL::DICOM::TagPrivadoUndefined* pTagPrivado = pTagsPrivados->GetTagUndefined(tag); if(pTagPrivado == NULL) { const unsigned int size = dimensions[0] * dimensions[1]; pTagPrivado = pTagsPrivados->NewTagUndefined(tag,size); //se hace un fill 0 const unsigned char* fin = size + pTagPrivado->GetValor(); for( unsigned char* pData = pTagPrivado->GetValor(); pData < fin; ++pData) { (*pData) = valorInicial; } } unsigned int size = pMapa->GetDimensions()[0] * pMapa->GetDimensions()[1]; unsigned char *in_data = pTagPrivado->GetValor(); unsigned char *out_ptr = reinterpret_cast(pMapa->GetScalarPointer()); std::copy(in_data, in_data + size, out_ptr); } } void GNC::GCS::IStudyContext::CreateCharMap(vtkSmartPointer& pMapa, GNC::GCS::Ptr pTagsPrivados, const unsigned char tag, const int indice, char valorInicial) { GNC::GCS::ILocker lock(this); //se crea la imagen if (pMapa == NULL) { pMapa = vtkSmartPointer::New(); double spacing[3] = {1.0f,1.0f,1.0f}; double origin[3] = {0.0f,0.0f,0.0f}; int dimensions[3] = {0,0,0}; GetSpacing(indice,spacing[0],spacing[1],spacing[2]); GetOrigin(indice,origin[0],origin[1],origin[2]); GetDimensionsImage(indice,dimensions[0],dimensions[1], dimensions[2]); //se inicializan valores de dimensions, scalartype... pMapa->SetDimensions(dimensions[0],dimensions[1],1); pMapa->AllocateScalars(VTK_CHAR, 1); pMapa->SetSpacing(spacing[0],spacing[1],spacing[2]); pMapa->SetOrigin(origin[0],origin[1],origin[2]); GIL::DICOM::TagPrivadoUndefined* pTagPrivado = pTagsPrivados->GetTagUndefined(tag); if(pTagPrivado == NULL) { const unsigned int size = dimensions[0] * dimensions[1]; pTagPrivado = pTagsPrivados->NewTagUndefined(tag,size); //se hace un fill 0 const char* fin = size + (char*)pTagPrivado->GetValor(); for( char* pData = (char*)pTagPrivado->GetValor(); pData < fin; ++pData) { (*pData) = valorInicial; } } unsigned int size = pMapa->GetDimensions()[0] * pMapa->GetDimensions()[1]; unsigned char *in_data = pTagPrivado->GetValor(); unsigned char *out_ptr = reinterpret_cast(pMapa->GetScalarPointer()); std::copy(in_data, in_data + size, out_ptr); } } GNC::GCS::IReferredStudyContext::IReferredStudyContext() { } GNC::GCS::IReferredStudyContext::~IReferredStudyContext() { } void GNC::GCS::IReferredStudyContext::UnRefViewer() { Viewer = NULL; } ginkgocadx-3.8.7/cadxcore/api/istudycontext.h000066400000000000000000000163671314736454600213410ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #if defined(__DEPRECATED) #undef __DEPRECATED #endif #include #include #include #include class vtkGinkgoImageViewer; class vtkAlgorithmOutput; class vtkImageData; class wxWindow; namespace GNC { namespace GCS { class IEntorno; class IVista; class IStreamingLoader; class IImagePropertiesProxy; class IReferredStudyContext; class IModuleController; class Layout; class HangingProtocol; } } namespace GIL { namespace DICOM { class DicomDataset; class TipoPrivateTags; class IDICOMManager; } } namespace GNC { namespace GCS { //region Interfaz de gestion de entrada (ficheros, diagnosticos, etc..) class EXTAPI IStudyContext: public ILockable { public: typedef struct TStudyFile { std::string PathOfFile; bool WidgetsLoaded; GNC::GCS::Ptr MetaInfo; GNC::GCS::Ptr TagsImage; GNC::GCS::Ptr PrivateTags; TStudyFile() { PathOfFile = ""; WidgetsLoaded = false; } } TStudyFile; typedef std::vector > TStudyFileVector; GNC::GCS::IVista* View; GNC::GCS::IModuleController* Module; vtkSmartPointer Viewer; wxWindow* ParentWindow; // La ventana WX de la que es padre la vista (Notebook/Grid..) wxWindow* Window; // La ventana WX propia de la vista GNC::GCS::Ptr Loader; vtkSmartPointer renderConnection; // Conexion hacia renderer GNC::GCS::Ptr hangingLayout; GNC::GCS::Ptr hangingProtocol; int ActiveFileIndex; std::vector OpenedSeries; protected: TStudyFileVector Files; public: IStudyContext(); IStudyContext(const IStudyContext& o); IStudyContext(const IStudyContext* o)__attribute_deprecated__; virtual ~IStudyContext(); static GNC::GCS::Ptr NewRef(const GNC::GCS::Ptr& parent); IStudyContext& operator = (const IStudyContext& o); /** Obtiene el puerto de conexion de salida del StreamingLoader. Se usa para inyectar pipelines que necesiten las vistas graficas Pipeline: Loader.ruta_fichero => [...] => Loader.loaderOutputConnection => [PIPELINE_ESPECIFICO] => Viewer.renderInputConnection => [...] **/ vtkSmartPointer GetLoaderOutputConnection(); /** Obtiene el puerto de conexion de entrada hacia el renderer. Por defecto es la salida del StreamingLoader Pipeline: Loader.ruta_fichero => [...] => Loader.loaderOutputConnection => [PIPELINE_ESPECIFICO] => Viewer.renderInputConnection => [...] **/ void SetRendererInputConnection(const vtkSmartPointer& input); void SetViewer(const vtkSmartPointer& viewer); virtual void SetActiveIndex(int indice); std::list GetImagePaths(); const std::string& GetPathActiveImage(); const std::string& GetImagePath(const int indice); //tags GNC::GCS::Ptr GetMetaInfoActiveImage(); GNC::GCS::Ptr GetTagsActiveImage(); GNC::GCS::Ptr GetPrivateTagsActiveImage(); GNC::GCS::Ptr GetMetaInfo(const int indice); GNC::GCS::Ptr GetTagsImage(const int indice); GNC::GCS::Ptr GetPrivateTags(int indice); int GetSliceNumber(); virtual void RecalibrateActiveImage(double spacing[3], double origin[3]); virtual void RecalibrateImage(const int indice, double spacing[3], double origin[3]); virtual bool GetSpacingActive(double* spacing); virtual bool GetSpacingActive(double& x, double& y, double& z); // Returns true if image has spacing bool GetSpacing(const int indice, double& x, double& y, double& z); virtual void SetSpacing(const int indice, const double x, const double y, const double z); void GetOriginActive(double* origin); void GetOriginActive(double& x, double& y, double& z); void GetOrigin(const int indice, double& x, double& y, double& z); void GetDimensionsActiveImage(int* dimensions); void GetDimensionsActiveImage(int& x, int& y, int& z); void GetDimensionsImage(const int indice, int& x, int& y, int& z); int GetTSizeActive(); int GetPathIndex(const std::string& path); std::string GetTagActiveImage(const std::string& tag); bool GetTagActiveImage(const std::string& tag, std::string& valor); bool IsKeyImageActive(); bool IsKeyImage(int indice = 0); void CreateLoader(); protected: void DoInitiallizeContext(const std::list& rutas); void LoadMetaInfo(const int indice); void LoadImageTags(const int indice); public: virtual void CallbackCargarTagsImagen(const int /*indice*/, GIL::DICOM::IDICOMManager* /*pDicomManager*/) = 0; protected: void CreateUnsignedCharMap(vtkSmartPointer& pMapa, GNC::GCS::Ptr pTagsPrivados, const unsigned char tag, const int indice, unsigned char valorInicial = 0); void CreateCharMap(vtkSmartPointer& pMapa, GNC::GCS::Ptr pTagsPrivados, const unsigned char tag, const int indice, char valorInicial = 0); friend class IContextoEstudioReferido; }; class EXTAPI IReferredStudyContext : public IStudyContext { public: IReferredStudyContext(); virtual ~IReferredStudyContext(); void UnRefViewer(); virtual void CallbackCargarTagsImagen(const int indice, GIL::DICOM::IDICOMManager* pDicomManager) { EstudioPadre->CallbackCargarTagsImagen(indice, pDicomManager); } GNC::GCS::Ptr EstudioPadre; }; } } ginkgocadx-3.8.7/cadxcore/api/iventanaprogreso.h000066400000000000000000000017461314736454600217740ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once class wxString; class IVentanaProgreso { public: IVentanaProgreso() { } virtual ~IVentanaProgreso() { } virtual void ResetProgress() = 0; virtual void SetProgress(int progress, wxString text) = 0; }; ginkgocadx-3.8.7/cadxcore/api/ivista.cpp000066400000000000000000000104771314736454600202410ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include #include #include #include #include #include #include #include #include
#include "ivista.h" GNC::GCS::VistaException::VistaException(const std::string& msg, const std::string& component, bool fatal) throw() : GNC::GCS::IException(msg ,component, fatal) { } /* Constructor */ GNC::GCS::IVista::IVista(const GNC::GCS::Ptr& estudio) : Estudio(new GNC::GCS::Ptr(estudio) ), m_Titulo(_Std("Loading...")), m_toolController(GNC::GCS::IToolController::New()), m_Activada(false), m_Cargada(false), m_Guardada(true) { (*Estudio)->View = this; GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventView(this, GNC::GCS::Events::EventView::Creation)); } /* Destructor */ GNC::GCS::IVista::~IVista() { if (GNC::GCS::IEntorno::Instance()->GetVentanaPrincipal() != NULL) { GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventView(this, GNC::GCS::Events::EventView::Destruction)); } delete m_toolController; GTRACE(">> IVista::~IVista() " << this) (*Estudio)->View = NULL; if (this->IsLocked()) { this->UnLock(); } // Estudio is a pointer to GNC::GCS::Ptr to avoid circular dependencies. delete Estudio; GTRACE("<< IVista::~IVista()" << this) } std::string& GNC::GCS::IVista::GetTitulo() { return m_Titulo; } bool GNC::GCS::IVista::SoportaHerramienta(GNC::GCS::ITool* ) { return true; } /* Notificacion de cambio en la configuracion */ void GNC::GCS::IVista::OnConfiguracionCambiada() { } void GNC::GCS::IVista::Activar() { m_Activada = true; } void GNC::GCS::IVista::Desactivar() { m_Activada = false; } /* Obtiene el identificador unico del módulo al que pertenece */ const std::string& GNC::GCS::IVista::GetUIDModulo() { return (*Estudio)->Module->GetUID(); } /* Obtiene el modulo al que pertenece */ GNC::GCS::IModuleController* GNC::GCS::IVista::GetModulo() { return (*Estudio)->Module; } GNC::GCS::Ptr& GNC::GCS::IVista::GetEstudio() { return (*Estudio); } bool GNC::GCS::IVista::EstaCargada() { return m_Cargada; } bool GNC::GCS::IVista::EstaModificada() { return false; } void GNC::GCS::IVista::SetCargada(bool cargada) { m_Cargada = cargada; } bool GNC::GCS::IVista::Guardar() { return true; } const std::list GNC::GCS::IVista::GetImagePaths() const { if ((*Estudio)) { return (*Estudio)->GetImagePaths(); } else { throw VistaException("Vista no inicializada"); } } /**Gets dicom is currently shown**/ std::string GNC::GCS::IVista::GetCurrentDICOM() { if ((*Estudio)) { return std::string((*Estudio)->GetImagePath((*Estudio)->ActiveFileIndex)); } else { throw VistaException("Vista no inicializada"); } } GNC::GCS::IToolController* GNC::GCS::IVista::GetToolController() { return m_toolController; } void GNC::GCS::IVista::OnFocus() { if (!m_Activada) { GNC::GCS::IControladorVistas::Instance()->SolicitarActivarVista(this); } } ginkgocadx-3.8.7/cadxcore/api/ivista.h000066400000000000000000000106341314736454600177010ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IVIEW_H #define IVIEW_H #include #include #include #include #include #include //---------------------------------------------------------------------------------------------------- //region Forward Declarations class wxWindow; class vtkAlgorithmOutput; class vtkImageData; namespace GNC { namespace GCS { class IModuleController; class IStudyContext; class ITool; class IComando; class IToolController; } } namespace GIL { class IModeloIntegracion; } //endregion namespace GNC { namespace GCS { //---------------------------------------------------------------------------------------------------- //region Excepcion de tipo vista class EXTAPI VistaException : public GNC::GCS::IException { public: VistaException(const std::string& msg, const std::string& component="Modelo", bool fatal = true) throw(); }; //endregion //---------------------------------------------------------------------------------------------------- //region Interfaz de vistas class EXTAPI IVista : public GNC::GCS::ILockable { public: /* Constructor */ IVista(const GNC::GCS::Ptr& estudio); /* Destructor */ virtual ~IVista(); virtual std::string& GetTitulo(); virtual wxWindow* GetWindow() = 0; virtual bool SoportaHerramienta(GNC::GCS::ITool* pHerramienta); virtual bool SoportaGuardar() = 0; virtual bool SoportaExportar() = 0; /* Notificacion de cambio en la configuracion */ virtual void OnConfiguracionCambiada(); virtual void Activar(); virtual void Desactivar(); /* Obtiene el identificador unico del modulo al que pertenece */ virtual const std::string& GetUIDModulo(); /* Obtiene el modulo al que pertenece */ virtual GNC::GCS::IModuleController* GetModulo(); GNC::GCS::Ptr& GetEstudio(); virtual bool EstaCargada(); virtual bool EstaModificada(); virtual void SetCargada(bool cargada = true); virtual bool Guardar(); virtual const std::list GetImagePaths() const; virtual void ActivarRuta(long file_pk) = 0; /**Gets dicom is currently shown**/ virtual std::string GetCurrentDICOM(); //---------------------------------------------------------------------------------------------------- //region Interfaz de Carga // Comienzo de carga. Metodo sincrono con la interfaz. virtual void OnCargaIniciada() = 0; // Paso 1: Cargar el estudio. Metodo NO sincrono con la interfaz. virtual void CargarEstudio(GNC::GCS::IComando* pCmdInvocador) = 0; // Finalizacion de la carga. Metodo sincrono con la interfaz. virtual void OnCargaFinalizada() = 0; // Paso 2: Inicializacion del pipeline. Metodo sincrono con la interfaz. virtual void IniciarPipeline() = 0; // Parada del pipeline. Metodo sincrono con la interfaz Se invoca en el caso de que ocurra un error de carga. virtual void DetenerPipeline() = 0; virtual GNC::GCS::IToolController* GetToolController(); //endregion virtual void OnFocus(); private: // Estudio is a pointer to GNC::GCS::Ptr to avoid circular dependencies. GNC::GCS::Ptr* Estudio; protected: std::string m_Titulo; GNC::GCS::IToolController* m_toolController; bool m_Activada; bool m_Cargada; bool m_Guardada; }; } } #endif ginkgocadx-3.8.7/cadxcore/api/iwaitqueue.cpp000066400000000000000000000141501314736454600211140ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include //---------------------------------------------------------------------------------------------------- //region Cola de espera //---------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------- //region Constructor y destructor GNC::GCS::WaitQueue::WaitQueue() { m_pSignaler = new wxSemaphore(0, 0); m_Size = 0; } GNC::GCS::WaitQueue::~WaitQueue() { GNC::GCS::ILocker q_Locker(this); if (m_Size > 0 ) { LOG_ERROR("WaitQueue", "Inconsistency detected: The queue finished while some pending task non signaled."); } delete m_pSignaler; m_pSignaler = NULL; } //endregion //---------------------------------------------------------------------------------------------------- //region Interfaz general GNC::GCS::TipoListaEspera::size_type GNC::GCS::WaitQueue::Size() const { return m_Size; } bool GNC::GCS::WaitQueue::Empty() const { return (m_Size == 0); } bool GNC::GCS::WaitQueue::NotEmpty() const { return m_Size != 0; } GNC::GCS::TipoListaEspera::size_type GNC::GCS::WaitQueue::Pending() { ILocker q_lock(this); const TipoListaEspera::size_type npending = m_Size - m_ListaEspera.size(); return npending; } bool GNC::GCS::WaitQueue::Wait() { wxSemaError err = m_pSignaler->Wait(); GNC::GCS::ILocker q_Locker(this); if (err != wxSEMA_NO_ERROR) { return false; } else { m_Size--; } return true; } bool GNC::GCS::WaitQueue::Wait(long msecs) { wxSemaError err = m_pSignaler->WaitTimeout(msecs); GNC::GCS::ILocker q_Locker(this); if (err != wxSEMA_NO_ERROR) { return false; } else { m_Size--; } return true; } void GNC::GCS::WaitQueue::RegistrarEspera(WaitQueueTask* task) { GNC::GCS::ILocker q_Locker(this); GNC::GCS::ILocker t_Locker(task); task->m_ListaNotificacion.push_back(this); m_ListaEspera.push_back(task); m_Size++; } void GNC::GCS::WaitQueue::TerminarPendientes() { GNC::GCS::ILocker q_locker(this); for (TipoListaEspera::iterator it = m_ListaEspera.begin(); it != m_ListaEspera.end(); ++it) { GNC::GCS::WaitQueueTask* wqt = *it; GNC::GCS::ILocker t_locker(wqt); if (wqt->m_NotificarTerminacion) { wqt->Terminar(); } } } //endregion //---------------------------------------------------------------------------------------------------- //region Interfaz privada //endregion //endregion //---------------------------------------------------------------------------------------------------- // Tarea de la cola de espera //---------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------- //region Constructor y destructor GNC::GCS::WaitQueueTask::WaitQueueTask() { m_NotificarTerminacion = false; } GNC::GCS::WaitQueueTask::~WaitQueueTask() { } //endregion //---------------------------------------------------------------------------------------------------- //region Interfaz general void GNC::GCS::WaitQueueTask::Signal() { //GNC::GCS::ILocker t_locker(this, loc); for (TipoListaNotificaciones::iterator it_q = m_ListaNotificacion.begin(); it_q != m_ListaNotificacion.end(); ++it_q) { WaitQueue* wq = (*it_q); ILocker q_locker(wq); bool notfound = true; for (TipoListaEspera::iterator it_t = wq->m_ListaEspera.begin(); it_t != wq->m_ListaEspera.end(); ++it_t) { WaitQueueTask* qt = *it_t; if ( qt == this) { wq->m_ListaEspera.remove(this); wq->m_pSignaler->Post(); notfound = false; break; } } if (notfound) { LOG_ERROR("WaitQueue", "Error: Inconsistency in waitqueue mechanism. It wast notified a non registered or alreadt notified dependency"); } } m_ListaNotificacion.clear(); } void GNC::GCS::WaitQueueTask::Terminar() { m_NotificarTerminacion = true; DoTerminar(); } //endregion //region Interfaz privada //endregion //endregion GNC::GCS::NotifyQueue::NotifyQueue() { RegistryCount = 0; NotifyObject = new wxSemaphore(0, 0); } GNC::GCS::NotifyQueue::~NotifyQueue() { } void GNC::GCS::NotifyQueue::NotifyAll() { GNC::GCS::ILocker lock(RegistryLock); for (unsigned int i = 0; i < RegistryCount; i++) { NotifyObject->Post(); } } void GNC::GCS::NotifyQueue::Wait() { { GNC::GCS::ILocker lock(RegistryLock); RegistryCount++; } /*wxSemaError err =*/ NotifyObject->Wait(); } unsigned int GNC::GCS::NotifyQueue::Size() const { return RegistryCount; } bool GNC::GCS::NotifyQueue::Requested() const { return RegistryCount > 0; } ginkgocadx-3.8.7/cadxcore/api/iwaitqueue.h000066400000000000000000000115521314736454600205640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IWAITQUEUE_H #define IWAITQUEUE_H #include class wxSemaphore; namespace GNC { namespace GCS { class WaitQueueTask; class EXTAPI TipoListaEspera : public std::list > {}; //---------------------------------------------------------------------------------------------------- //region Cola de espera //---------------------------------------------------------------------------------------------------- class EXTAPI WaitQueue : public GNC::GCS::ILockable { //---------------------------------------------------------------------------------------------------- //region Definiciones public: //endregion //---------------------------------------------------------------------------------------------------- //region Constructor y destructor public: WaitQueue(); ~WaitQueue(); //endregion //---------------------------------------------------------------------------------------------------- //region Interfaz general public: TipoListaEspera::size_type Size() const; bool Empty() const; bool NotEmpty() const; TipoListaEspera::size_type Pending(); /* Espera bloqueante hasta que alguna de las tareas registradas termine */ bool Wait(); /* Espera bloqueante con limite de tiempo hasta que alguna de las tareas registradas termine */ bool Wait(long msecs); /* Registra una tarea para su espera */ void RegistrarEspera(WaitQueueTask* task); /* Itera sobre todas las tareas pendientes y si tienen el flag de terminacion activo, vuelve a enviarles una senyal de terminacion */ void TerminarPendientes(); //endregion //---------------------------------------------------------------------------------------------------- //region Interfaz privada //endregion //---------------------------------------------------------------------------------------------------- //region Atributos private: wxSemaphore* m_pSignaler; TipoListaEspera m_ListaEspera; TipoListaEspera::size_type m_Size; //endregion friend class WaitQueueTask; }; //endregion class EXTAPI TipoListaNotificaciones : public std::list > {}; //---------------------------------------------------------------------------------------------------- // Tarea de la cola de espera //---------------------------------------------------------------------------------------------------- class EXTAPI WaitQueueTask : public GNC::GCS::ILockable { //---------------------------------------------------------------------------------------------------- //region Definiciones public: //endregion //region Interfaz general public: /* Senala todas las waitqueue a las que se ha registrado esta tarea */ void Signal(); /* Metodo que activa el flag de terminacion e invoca a DoTerminar() */ void Terminar(); //endregion //region Interfaz privada protected: /* Metodo privado a implementar en la tarea. Implementa la funcionalidad necesaria para que la tarea se detenga (de manera activa o pasiva, segun corresponda) */ virtual void DoTerminar() = 0; //endregion //---------------------------------------------------------------------------------------------------- //region Constructor y destructor public: WaitQueueTask(); virtual ~WaitQueueTask(); //endregion //region Atributos protected: TipoListaNotificaciones m_ListaNotificacion; bool m_NotificarTerminacion; //endregion friend class WaitQueue; }; //endregion class EXTAPI NotifyQueue { public: NotifyQueue(); ~NotifyQueue(); void Wait(); void NotifyAll(); unsigned int Size() const; bool Requested() const; GNC::GCS::ILockable RegistryLock; unsigned int RegistryCount; wxSemaphore* NotifyObject; }; } } #endif ginkgocadx-3.8.7/cadxcore/api/iwidgets.cpp000066400000000000000000000264141314736454600205570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iwidgets.h" #include "iwidgetsmanager.h" #include "icontexto.h" #include "widgetserializable.h" #include #include #include #include #include #include #include #include //region "Serializado y desserializado" GNC::GCS::Nodo GNC::GCS::Nodo::Deserializar(wxXmlNode* nodo) { Nodo n; wxString strTmp = nodo->GetAttribute(wxT("x"),wxT("0.0")); double doubleTmp; strTmp.ToDouble(&doubleTmp); n.x = (TComp) doubleTmp; strTmp = nodo->GetAttribute(wxT("y"),wxT("0.0")); strTmp.ToDouble(&doubleTmp); n.y = (TComp) doubleTmp; strTmp = nodo->GetAttribute(wxT("size"),wxT("10.0")); strTmp.ToDouble(&doubleTmp); n.m_Size = (float) doubleTmp; n.m_Seleccionado = false; n.m_Iluminado = false; return n; } wxXmlNode* GNC::GCS::Nodo::Serializar() { wxXmlNode* resultado = new wxXmlNode(NULL,wxXML_ELEMENT_NODE,wxT("node")); resultado->AddAttribute(new wxXmlProperty(wxT("x"),wxString::Format(wxT("%f"),x))); resultado->AddAttribute(new wxXmlProperty(wxT("y"),wxString::Format(wxT("%f"),y))); resultado->AddAttribute(new wxXmlProperty(wxT("size"),wxString::Format(wxT("%f"),m_Size))); return resultado; } //endregion GNC::GCS::Widgets::IWidgetBuilder::IWidgetBuilder(GNC::GCS::IWidgetsManager* pManager, const GNC::GCS::TriggerButton& buttonMask, long gid, bool activar) { m_ButtonMask = buttonMask; m_GID = gid; m_pManager = pManager; if(activar) { Activar(); } m_FontSizeProp = GNC::GCS::IControladorPermisos::Instance()->Get("style", "widgets.fontSize").ObtenerValor(); m_MaxTextWidthProp = GNC::GCS::IControladorPermisos::Instance()->Get("style", "widgets.maxTextWidth").ObtenerValor(); m_LineWidthProp = GNC::GCS::IControladorPermisos::Instance()->Get("style", "widgets.lineWidth").ObtenerValor(); m_DraggingLineWidthProp = GNC::GCS::IControladorPermisos::Instance()->Get("style", "widgets.draggingLineWidth").ObtenerValor(); } GNC::GCS::Widgets::IWidgetBuilder::~IWidgetBuilder() { m_pManager->UnRegisterBuilder(this); } /* Obtiene el id de grupo de los widget construidos (tipo) */ long GNC::GCS::Widgets::IWidgetBuilder::GetGID() { return m_GID; } void GNC::GCS::Widgets::IWidgetBuilder::Activar() { m_pManager->RegisterBuilder(this); } void GNC::GCS::Widgets::IWidgetBuilder::Desactivar() { m_pManager->UnRegisterBuilder(this); } void GNC::GCS::Widgets::IWidgetBuilder::LanzarEventoCreacion(IWidget* w) { m_pManager->LanzarEventoCreacion(w); } void GNC::GCS::Widgets::IWidgetBuilder::LanzarEventoModificacion(IWidget* w) { m_pManager->LanzarEventoModificacion(w); } GNC::GCS::Widgets::TipoCursor GNC::GCS::Widgets::IWidgetBuilder::GetCursor() { return GNC::GCS::Widgets::CUR_INVALIDO; } GNC::GCS::Widgets::IWidget::IWidget(GNC::GCS::IWidgetsManager* pManager, long vid, const char* Nombre, long gid, long tid, long uid) { m_pManager = pManager; m_pRenderer = NULL; m_Nombre = Nombre; m_VID = vid; m_TID = tid; m_GID = gid; m_UID = uid; m_Seleccionado = false; m_Iluminado = false; m_Modificado = false; m_Oculto = false; m_ReservaRecursos = false; m_TopLevel = false; m_NotificarCambios = false; m_IgnorarEventos = false; m_FontSizeProp = GNC::GCS::IControladorPermisos::Instance()->Get("style", "widgets.fontSize").ObtenerValor(); m_MaxTextWidthProp = GNC::GCS::IControladorPermisos::Instance()->Get("style", "widgets.maxTextWidth").ObtenerValor(); m_LineWidthProp = GNC::GCS::IControladorPermisos::Instance()->Get("style", "widgets.lineWidth").ObtenerValor(); m_DraggingLineWidthProp = GNC::GCS::IControladorPermisos::Instance()->Get("style", "widgets.draggingLineWidth").ObtenerValor(); } GNC::GCS::Widgets::IWidget::~IWidget() { } //endregion //region "Interfaz especifica" //region Interfaz de dibujado de overlays bool GNC::GCS::Widgets::IWidget::EsMarcador() const { return false; } bool GNC::GCS::Widgets::IWidget::DelimitaArea() const { return false; } bool GNC::GCS::Widgets::IWidget::DelimitaTendencia() const { return false; } bool GNC::GCS::Widgets::IWidget::ContieneFast(const GNC::GCS::Vector& ) const { return false; } void GNC::GCS::Widgets::IWidget::GetBoundingBox(GNC::GCS::Vector& , GNC::GCS::Vector& ) const { } void GNC::GCS::Widgets::IWidget::GetPosicion(GNC::GCS::Vector& ) const { } void GNC::GCS::Widgets::IWidget::GetPuntoAnclaje(GNC::GCS::Vector& , const GNC::GCS::Vector& ) const { } //region Propiedades exclusivas de widgets de area float GNC::GCS::Widgets::IWidget::GetAreaMetrica() const { return 0.0f; } float GNC::GCS::Widgets::IWidget::GetPerimetro() const { return 0.0f; } void GNC::GCS::Widgets::IWidget::GetVertices(std::list& ) const { } //endregion //region Propiedades exclusivas de widgets de tendencia void GNC::GCS::Widgets::IWidget::GetDistancia(GNC::GCS::Vector& ) const { } void GNC::GCS::Widgets::IWidget::GetRecorrido(std::list& ) const { } //endregion //endregion Interfaz de dibujado de overlays void GNC::GCS::Widgets::IWidget::LiberarRecursos(GNC::GCS::IWidgetsRenderer* /*pKey*/) { } //endregion //region "Interfaz generica" void GNC::GCS::Widgets::IWidget::LanzarEventoModificacion() { m_pManager->LanzarEventoModificacion(this); } void GNC::GCS::Widgets::IWidget::LanzarEventoDestruccion() { m_pManager->LanzarEventoDestruccion(this); } //endregion //region menu contextual bool GNC::GCS::Widgets::IWidget::GetMenuContextual(wxMenu*, wxWindow* ) { return false; } inline std::string FloatToString(float valor) { std::ostringstream ostr; ostr.setf(std::ios::floatfield, std::ios::fixed ); ostr.precision(2); ostr << valor; return ostr.str(); } inline std::string PuntoToString(GNC::GCS::Vector valor) { std::ostringstream ostr; ostr << valor; return ostr.str(); } std::string GNC::GCS::Widgets::IWidget::PuntoToStringMundo(const GNC::GCS::Vector& valor) { double wp[4]; std::stringstream out; out.precision(3); const double ip[3] = {valor.x, valor.y, static_cast(m_pManager->GetRendererActivo()->m_pImageViewer->GetTindex()) }; m_pManager->GetRendererActivo()->m_pImageViewer->CoordenadasImagenACoordenadasMundo(ip, wp); out << "[ x = " << wp[0] << ", y = " << wp[1] << ", z=" << wp[2] << " ]"; return out.str(); } void GNC::GCS::Widgets::IWidget::MostrarPropiedades(wxWindow* pParent) { GNC::GUI::wxPropiedades::TMapaPropiedades mapaPropiedades; mapaPropiedades[_Std("Name")] = m_Nombre; if(this->DelimitaArea()) { { std::ostringstream os; os.setf(std::ios_base::floatfield, std::ios_base::fixed ); os.precision(2); os.fill('0'); float area = GetAreaMetrica(); if (area > 1000000.0f) { os << area / 1000000.0f << " m²."; } else if (area > 100.0f) { os << area / 100.0f << " cm²."; } else { os << area << " mm²."; } mapaPropiedades[_Std("Area")] = os.str(); } { float perimetro = GetPerimetro(); std::ostringstream os; os.setf(std::ios_base::floatfield, std::ios_base::fixed ); os.precision(2); os.fill('0'); if (perimetro > 1000.0f) { os << perimetro / 1000.0f << " m."; } else if (perimetro > 10.0f) { os << perimetro / 10.0f << " cm."; } else { os << perimetro << " mm."; } mapaPropiedades[_Std("Perimeter")] = os.str(); } } if(this->DelimitaTendencia()) { std::list recorrido; GetRecorrido(recorrido); { std::ostringstream ostr; unsigned int i =0; for(std::list::iterator it = recorrido.begin(); it!= recorrido.end(); ++it, i++) { ostr << PuntoToString((*it)); if((i+1) != recorrido.size()) ostr << "," << std::endl; } mapaPropiedades[_Std("Travel (I)")] = ostr.str(); } { std::stringstream out; unsigned int i =0; for(std::list::iterator it = recorrido.begin(); it!= recorrido.end(); ++it, i++) { out << PuntoToStringMundo(*it); if((i+1) != recorrido.size()) out << "," << std::endl; } mapaPropiedades[_Std("Travel (M)")] = out.str(); } } GNC::GUI::wxPropiedades::TListaMapasPropiedades listaMapas; listaMapas.push_back(mapaPropiedades); InsertarPropiedades(listaMapas); //si es serializable... /* GNC::GCS::Widgets::IWidgetSerializable* pSerializable = dynamic_cast(this); if(pSerializable != NULL) { listaMapas.push_back(pSerializable->GetPropiedades()); }*/ GNC::GUI::wxPropiedades pProp(pParent,m_Nombre, listaMapas); pProp.ShowModal(); } void GNC::GCS::Widgets::IWidget::InsertarPropiedades(TListaMapasPropiedades &/*listaMapaPropiedades*/) { } //endregion ginkgocadx-3.8.7/cadxcore/api/iwidgets.h000066400000000000000000000360741314736454600202270ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include "ievento.h" #include "iwidgetsproperties.h" //region "Forward declarations" namespace GNC { namespace GCS { class Contexto3D; class IWidgetsManager; class IWidgetsRenderer; namespace Widgets { class IObservadorWidget; class IWidget; } } } class vtkWorldPointPicker; class WidgetRepresentation; class wxXmlNode; class wxMenu; class wxWindow; // Forward declarations //endregion #define DEFAULT_POINT_SIZE 10.0f #define TID_USER_ANNOTATION_WIDGET 1 namespace GNC { namespace GCS { class EXTAPI Nodo : public Vector { public: float m_Size; // Tamano del punto bool m_Seleccionado; // Indicador de seleccion bool m_Iluminado; // Indicador de iluminacion (hover) inline Nodo() { m_Size = DEFAULT_POINT_SIZE; m_Seleccionado = false; m_Iluminado = false; } inline Nodo(const Vector::TComp& x, const Vector::TComp& y) : Vector(x, y) { m_Size = DEFAULT_POINT_SIZE; m_Seleccionado = false; m_Iluminado = false; } inline Nodo(const Nodo& otro):Vector(otro) { *this = otro; } inline Nodo(const Vector& otro):Nodo() { *this = otro; } inline ~Nodo() { } //region "Serializado y desserializado" static Nodo Deserializar(wxXmlNode* nodo); wxXmlNode* Serializar(); //endregion /* Comprueba si x, y cae centro del bounding box definido por: * x0,y0 == [ p.x - umbral * m_Size, p.y - umbral * m_Size ] * x1,y1 == [ p.x + umbral * m_Size, p.y + umbral * m_Size ] * Se computa: | p.x - x | < (umbral * m_Size) && | p.y - y | < (umbral * m_Size) * * umbral es un factor de escala que transforma coordenadas_mundo a pixels_pantalla. * Por tanto, el bounding box siempre estará definido en "m_Size" pixels pantalla. */ inline bool Hits (const GNC::GCS::Vector& vector, const Vector& umbral) const { GNC::GCS::Vector radix = umbral * m_Size; GNC::GCS::Vector bb[2]; (vector - radix).IniciarBoundingBox(bb); (vector + radix).ExtenderBoundingBox(bb); if (this->DentroDeBoundingBox(bb[0], bb[1])) return true; else return false; } inline bool Hits ( Vector::TComp x, Vector::TComp y, const Vector& umbral) const { return Hits(GNC::GCS::Vector(x, y), umbral); } inline Nodo& operator = (const Nodo& otro) { this->x = otro.x; this->y = otro.y; this->m_Size = otro.m_Size; this->m_Seleccionado = otro.m_Seleccionado; this->m_Iluminado = otro.m_Iluminado; return *this; } inline Nodo& operator = (const Vector& otro) { this->x = otro.x; this->y = otro.y; return *this; } inline void Seleccionar(bool seleccionar) { m_Seleccionado = seleccionar; } inline void InvertirSeleccion() { Seleccionar(!EstaSeleccionado()); } inline void Iluminar(bool iluminar) { m_Iluminado = iluminar; } inline bool EstaSeleccionado() const { return m_Seleccionado; } inline bool EstaIluminado() const { return m_Iluminado; } inline friend std::ostream& operator<<(std::ostream& out, const Nodo& n) { out << "[ x = " << n.x << ", y = " << n.y << " ]"; return out; } inline friend std::ostream& operator<<(std::ostream& out, const Nodo* n) { if (n == NULL) { out << "[ NULL ]"; } else { out << *n; } return out; } //region "Helper para deserializar" protected: //endregion }; namespace Widgets { // Clase que construye widgets class EXTAPI IWidgetBuilder { public: typedef enum Estado { WBS_Ninguno, WBS_Creando, WBS_Moviendo, WBS_Seleccionando } Estado; protected: GNC::GCS::IWidgetsManager* m_pManager; long m_GID; // Group ID de los widgets construidos GNC::GCS::TriggerButton m_ButtonMask; // Default (common) properties float m_FontSizeProp; float m_MaxTextWidthProp; float m_LineWidthProp; float m_DraggingLineWidthProp; public: //existen builders que no necesitan activarse, como la rejilla IWidgetBuilder(GNC::GCS::IWidgetsManager* pManager, const GNC::GCS::TriggerButton& buttonMask, long gid = 0, bool activar = true); virtual ~IWidgetBuilder(); virtual GNC::GCS::TriggerButton GetButtonMask() const { return m_ButtonMask; } /* Obtiene el id de grupo de los widget construidos (tipo) */ virtual long GetGID(); virtual void Activar(); virtual void Desactivar(); virtual void Render(Contexto3D* c) = 0; virtual void LanzarEventoCreacion(IWidget* w); virtual void LanzarEventoModificacion(IWidget* w); virtual void OnMouseEvents(GNC::GCS::Events::EventoRaton&) = 0; virtual void OnKeyEvents(GNC::GCS::Events::EventoTeclado&) = 0; virtual GNC::GCS::Widgets::TipoCursor GetCursor(); }; // Clase que representa un widget class EXTAPI IWidget { public: typedef std::list ListaObservadores; typedef bool (IWidget::*Muestreador) ( const GNC::GCS::Vector& punto ) const; //region "Construccion y destruccion" protected: GNC::GCS::IWidgetsManager* m_pManager; GNC::GCS::IWidgetsRenderer* m_pRenderer; // Renderer asociado a widgets toplevel std::string m_Nombre; long m_VID; // Id de la sub-vista long m_UID; // ID de widget long m_GID; // ID de grupo long m_TID; // ID de tipo del widget bool m_Seleccionado; bool m_Iluminado; bool m_Modificado; bool m_ReservaRecursos; bool m_NotificarCambios; bool m_IgnorarEventos; GNC::GCS::Vector m_PosCursor; protected: bool m_Oculto; bool m_TopLevel; // Indica si el widget es top-level. Los widgets top level procesan los eventos los primeros y se renderizan siempre los ultimos. public: IWidget(GNC::GCS::IWidgetsManager* pManager, long vid, const char* Nombre = "", long gid = 0, long tid = 0, long uid = 0); virtual ~IWidget(); //endregion //region "Interfaz especifica" virtual void IgnorarEventos(bool ignorar) { if (ignorar == true) { Iluminar(false); Seleccionar(false); } if (ignorar != m_IgnorarEventos) { Modificar(true); m_IgnorarEventos = ignorar; } } virtual bool IgnoraEventos() { return m_IgnorarEventos; } virtual void OnMouseEvents(GNC::GCS::Events::EventoRaton&) = 0; virtual void OnKeyEvents(GNC::GCS::Events::EventoTeclado&) = 0; virtual bool HitTest(float x, float y, const GNC::GCS::Vector& umbral) = 0; virtual bool HitTest(GNC::GCS::Vector* vertices, int numVertices) = 0; inline void NotificarCambios(bool notificar) { m_NotificarCambios = notificar; } inline bool RequiereNotificarCambios() const { return m_NotificarCambios; } inline IWidgetsRenderer* GetTopLevelRenderer() const { return m_pRenderer; } virtual void TickAnimation(double /*freq*/) {} //region Interfaz de dibujado de overlays virtual bool EsMarcador() const; virtual bool DelimitaArea() const; virtual bool DelimitaTendencia() const; virtual bool ContieneFast(const GNC::GCS::Vector& ) const; virtual void GetBoundingBox(GNC::GCS::Vector& , GNC::GCS::Vector& ) const; virtual void GetPosicion(GNC::GCS::Vector& ) const; virtual void GetPuntoAnclaje(GNC::GCS::Vector& , const GNC::GCS::Vector& ) const; //region Propiedades exclusivas de widgets de area virtual float GetAreaMetrica() const; virtual float GetPerimetro() const; virtual void GetVertices(std::list& ) const; //endregion //region Propiedades exclusivas de widgets de tendencia virtual void GetDistancia(GNC::GCS::Vector& ) const; virtual void GetRecorrido(std::list& ) const; //endregion //endregion Interfaz de dibujado de overlays virtual void Render(Contexto3D* c) = 0; virtual void OffscreenRender(Contexto3D* /*c*/) {} virtual void Ocultar(bool ocultar) { if (m_Oculto != ocultar) { m_Oculto = ocultar; m_Modificado = true; } } virtual void Modificar(bool modificar) { m_Modificado = modificar; } virtual void Seleccionar(bool seleccionar) { if (m_Seleccionado != seleccionar) { m_Seleccionado = seleccionar; m_Modificado = true; } } virtual void InvertirSeleccion() { Seleccionar(!EstaSeleccionado()); } virtual void Iluminar(bool iluminar) { if (m_Iluminado != iluminar) { m_Iluminado = iluminar; m_Modificado = true; } } virtual void SeleccionarNodo(GNC::GCS::Nodo& nodo, bool seleccionar) { if (nodo.m_Seleccionado != seleccionar) { nodo.m_Seleccionado = seleccionar; m_Modificado = true; } } virtual void IluminarNodo(GNC::GCS::Nodo& nodo, bool iluminar) { if (nodo.m_Iluminado != iluminar) { nodo.m_Iluminado = iluminar; m_Modificado = true; } } virtual bool ReservaRecursos() const { return m_ReservaRecursos; } virtual void LiberarRecursos(GNC::GCS::IWidgetsRenderer* pKey); /* Indica si el widget permite ser borrado automaticamente por el manager. Esto ocurre cuando el widget esta seleccionado y el manager recibe la tecla SUPR */ virtual bool SoportaAutoBorrado() const { return false; } //endregion //region "Interfaz generica" /* Obtiene el id de tipo del widget */ inline long GetVID() const { return m_VID; } /* Obtiene el id de tipo del widget */ inline long GetTID() const { return m_TID; } /* Obtiene el id unico del widget */ inline long GetUID() const { return m_UID; } /* Obtiene el id de grupo del widget (tipo) */ inline long GetGID() const { return m_GID; } virtual bool EstaOculto() const { return m_Oculto; } virtual bool EstaModificado() const { return m_Modificado; } virtual bool EstaSeleccionado() const { return m_Seleccionado; } virtual bool EstaIluminado() const { return m_Iluminado; } virtual bool EsTopLevel() const { return m_TopLevel; } // Establece si el widget es top-level. Los widgets top level procesan los eventos los primeros y se renderizan siempre los ultimos. inline void SetTopLevel(bool setTopLevel = true) { if (m_TopLevel != setTopLevel) { m_TopLevel = setTopLevel; m_Modificado = true; } } void LanzarEventoModificacion(); void LanzarEventoDestruccion(); inline friend std::ostream& operator<<(std::ostream& out, const IWidget& w) { out << "[ VID = " << w.m_VID << ", nombre = " << w.m_Nombre.c_str() << ", GID = " << w.m_GID << ", TID = " << w.m_TID << ", UID = " << w.m_UID << " ]"; return out; } inline friend std::ostream& operator<<(std::ostream& out, const IWidget* w) { if (w == NULL) { out << "[ NULL ]"; } else { out << *w; } return out; } //endregion //region menu contextual virtual bool GetMenuContextual(wxMenu*, wxWindow* ); virtual void MostrarPropiedades(wxWindow* pParent); typedef std::map< std::string , std::string > TMapaPropiedades; typedef std::list< TMapaPropiedades > TListaMapasPropiedades; virtual void InsertarPropiedades(TListaMapasPropiedades &listaMapaPropiedades); //endregion protected: std::string PuntoToStringMundo(const GNC::GCS::Vector& valor); ListaObservadores m_Observadores; // Lista de observadores // Default (common) properties float m_LineWidthProp; float m_FontSizeProp; float m_MaxTextWidthProp; float m_DraggingLineWidthProp; }; } } } ginkgocadx-3.8.7/cadxcore/api/iwidgetsmanager.cpp000066400000000000000000000055601314736454600221110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iwidgetsmanager.h" #include "observers/iwidgetsobserver.h" GNC::GCS::IWidgetsManager::IWidgetsManager(GNC::GCS::IVista* pView) : m_pDefaultEventListenerDelegate(NULL), m_pRendererActivo(NULL), m_Modified(false), m_pView(pView), m_Enabled(true), m_cursor(GNC::GCS::Widgets::CUR_FLECHA) { } GNC::GCS::IWidgetsManager::~IWidgetsManager() { m_pView = NULL; } GNC::GCS::IVista* GNC::GCS::IWidgetsManager::GetVista() { return m_pView; } void GNC::GCS::IWidgetsManager::MarcarModificado(bool modificado) { m_Modified = modificado; } bool GNC::GCS::IWidgetsManager::EstaModificado() { return m_Modified; } void GNC::GCS::IWidgetsManager::SetDefaultEventListenerDelegate(GNC::GCS::Events::ISubscriptorEventos* pDelegate) { this->m_pDefaultEventListenerDelegate = pDelegate; } void GNC::GCS::IWidgetsManager::RegisterBuilder(GNC::GCS::Widgets::IWidgetBuilder* pBuilder) { m_pBuilders.push_back(pBuilder); } void GNC::GCS::IWidgetsManager::UnRegisterBuilder(GNC::GCS::Widgets::IWidgetBuilder* pBuilder) { for (ListaBuilders::iterator it = m_pBuilders.begin(); it != m_pBuilders.end(); ++it) { if ( (*it) == pBuilder) { m_pBuilders.erase(it); break; } } } void GNC::GCS::IWidgetsManager::Enable(bool enabled) { m_Enabled = enabled; } bool GNC::GCS::IWidgetsManager::IsEnabled() { return m_Enabled; } //---------------------------------------------------------------------------------------------------- //region "Interfaz de registro del IWidgetsRenderer" void GNC::GCS::IWidgetsManager::InsertarObservador(GNC::GCS::Widgets::IObservadorWidget* observador) { m_Observadores.push_back(observador); } void GNC::GCS::IWidgetsManager::EliminarObservador(GNC::GCS::Widgets::IObservadorWidget* observador) { IteradorListaObservadores it; for (it = m_Observadores.begin(); it != m_Observadores.end() && (*it) != observador; ++it); if (it != m_Observadores.end()) { m_Observadores.erase(it); } } //endregion ginkgocadx-3.8.7/cadxcore/api/iwidgetsmanager.h000066400000000000000000000211131314736454600215460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include // Forward declarations namespace GNC { namespace GCS { class IEventsController; class IWidgetsRenderer; class IContexto; class IAnnotator; class IImpresorOverlay; namespace Widgets { class IWidget; class IPublicadorEventos; class IObservadorWidget; class IWidgetBuilder; } } } // Forward declarations namespace GNC { namespace GCS { class EXTAPI ListaWidgets : public std::list< GNC::GCS::Widgets::IWidget*, std::allocator > {}; class EXTAPI ListaBuilders : public std::list< GNC::GCS::Widgets::IWidgetBuilder*, std::allocator > {}; class EXTAPI ListaObservadores : public std::list > {}; class EXTAPI ListaRenderers : public std::list > {}; class EXTAPI IWidgetsManager : public GNC::GCS::Events::ISubscriptorEventos { public: IWidgetsManager(GNC::GCS::IVista* pVista); virtual ~IWidgetsManager(); GNC::GCS::IVista* GetVista(); void MarcarModificado(bool modificado); bool EstaModificado(); void SetDefaultEventListenerDelegate(GNC::GCS::Events::ISubscriptorEventos* pDelegate); //---------------------------------------------------------------------------------------------------- //region "Interfaz de registro de IWidgetBuilder's" protected: ListaBuilders m_pBuilders; GNC::GCS::Events::ISubscriptorEventos* m_pDefaultEventListenerDelegate; public: void RegisterBuilder(GNC::GCS::Widgets::IWidgetBuilder* pBuilder); void UnRegisterBuilder(GNC::GCS::Widgets::IWidgetBuilder* pBuilder); //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de registro de IWidget's" public: typedef ListaWidgets::iterator IteradorListaWidgets; protected: ListaWidgets m_Widgets; public: virtual void Enable(bool enabled); virtual bool IsEnabled(); virtual void InsertarWidget(GNC::GCS::Widgets::IWidget* pWidget, bool propagarEvento=true) = 0; /** Removes a widget. Note: Frees the pWidget pointing! **/ virtual void EliminarWidget(const GNC::GCS::Widgets::IWidget* pWidget, bool propagarEvento=true) = 0; /** Removes a widget. Note: Frees the pWidget pointing! **/ virtual void EliminarWidget(GNC::GCS::IWidgetsManager::IteradorListaWidgets& it, bool propagarEvento=true) = 0; /** Removes all widgets. Note: Frees the pWidget pointers! **/ virtual void EliminarTodosLosWidgets(bool propagarEventos=true) = 0; /** Remove all widgets except anyone with this tid **/ virtual void RemoveAllWidgetsExceptTID(long tid, bool propagateEvents=true) = 0; virtual void RemoveUserAnnotationWidgets(bool propagateEvents=true) = 0; virtual void OcultarTodosLosWidgets(bool ocultar, long GID) = 0; /** Set visible on all widgets matching TID **/ virtual void SetVisibleByTID(bool visible, long tid) = 0; /** Removes all widgets. Note: Frees the pWidget pointers! **/ virtual void EliminarTodosLosWidgets(long GID) = 0; virtual void OcultarWidgetsDeSubVista(bool ocultar, long vid) = 0; virtual GNC::GCS::ListaWidgets& GetListaWidgets() = 0; virtual void GetListaWidgetsSubVista(long vid, GNC::GCS::ListaWidgets& lista) = 0; //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de registro del IWidgetsRenderer" public: virtual void SetRendererActivo(GNC::GCS::IWidgetsRenderer* pRenderer) = 0; inline GNC::GCS::IWidgetsRenderer* GetRendererActivo() { return m_pRendererActivo; } virtual void InsertarRenderer(GNC::GCS::IWidgetsRenderer* pRenderer) = 0; virtual void EliminarRenderer(GNC::GCS::IWidgetsRenderer* pRenderer) = 0; virtual void LiberarRecursos(GNC::GCS::IWidgetsRenderer* pRenderer) = 0; protected: GNC::GCS::IWidgetsRenderer* m_pRendererActivo; ListaRenderers m_Renderers; //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de Observadores" public: typedef ListaObservadores::iterator IteradorListaObservadores; protected: ListaObservadores m_Observadores; public: void InsertarObservador(GNC::GCS::Widgets::IObservadorWidget* observador); void EliminarObservador(GNC::GCS::Widgets::IObservadorWidget* observador); virtual void NotificarCreacion(GNC::GCS::Widgets::IWidget* pWidget) = 0; virtual void NotificarDestruccion(GNC::GCS::Widgets::IWidget* pWidget) = 0; virtual void NotificarModificacion(GNC::GCS::Widgets::IWidget* pWidget) = 0; //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz general" virtual void SetAnnotator(const GNC::GCS::Ptr& pAnnotador) = 0; virtual const GNC::GCS::Ptr& GetAnnotator() = 0; virtual void ShowAnnotations(bool show) = 0; virtual bool IsShownAnnotations() = 0; //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz general" public: virtual void Render() = 0; virtual void TickAnimation(double freq) = 0; virtual void EnableAnimation() = 0; virtual void DisableAnimation() = 0; /* Este metodo solo debe ser invocado por IWidgetsRenderer */ virtual void RenderPrivate(Contexto3D* c) = 0; /*imprime los widgets sobre la imagen que recibe, definida por anchura y altura*/ virtual void OffScreenRender(GNC::GCS::Contexto3D* c) = 0; /* Metodo que indica al manager que es preciso hacer un render() */ virtual void Modificado() = 0; virtual void ModificadoPorWidget(GNC::GCS::Widgets::IWidget* w) = 0; virtual void DefaultMouseEventProcess(GNC::GCS::Events::EventoRaton& evento) = 0; virtual void DefaultKeyEventProcess(GNC::GCS::Events::EventoTeclado& event) = 0; // Propaga a todos los widgets no ocultos un hit test de seleccion. Los widgets se seleccionan si validan un hittest con el bounding box especificado. virtual void PropagarHitTestSeleccion(GNC::GCS::Vector* vertices, int numVertices) = 0; protected: bool m_Modified; GNC::GCS::IVista* m_pView; //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de selecciones" protected: float m_BoundingBoxSeleccion[4]; ListaWidgets m_WidgetsSeleccionados; bool m_Enabled; //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de acceso al sistema de eventos ginkgo" public: virtual void LanzarEventoCreacion(GNC::GCS::Widgets::IWidget* w) = 0; virtual void LanzarEventoModificacion(GNC::GCS::Widgets::IWidget* w) = 0; virtual void LanzarEventoDestruccion(GNC::GCS::Widgets::IWidget* w) = 0; //endregion //---------------------------------------------------------------------------------------------------- virtual void SetCursor(GNC::GCS::Widgets::TipoCursor cursor) = 0; GNC::GCS::Widgets::TipoCursor m_cursor; //endregion }; } } ginkgocadx-3.8.7/cadxcore/api/iwidgetsproperties.h000066400000000000000000000147601314736454600223420ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #define _GMAX(a,b) ( a > b? a : b ) #define _GMIN(a,b) ( a < b? a : b ) namespace GNC { namespace GCS { namespace Widgets { //region "Cursores typedef enum TipoCursor { CUR_INVALIDO, CUR_TRANSPARENTE, CUR_LUPA, CUR_SELECCION, CUR_FLECHA, CUR_MANO_ABIERTA, CUR_MANO_CERRADA, CUR_CREAR_LINEA, CUR_CREAR_ANGULO_COBB, CUR_CREAR_ANGULO_NORMAL, CUR_CREAR_ANOTACION, CUR_CREAR_ELIPSE, CUR_CREAR_PUNTO, CUR_CREAR_POLIGONO, CUR_CREAR_RECTANGULO, CUR_WINDOW_LEVEL, CUR_ANCLA_SIMPLE, CUR_ANCLA_COMPUESTA, CUR_ROTATION } TipoCursor; class Color { private: float R; float G; float B; float A; public: inline Color() { R = 1.0f; G = 1.0f; B = 1.0f; A = 1.0f; } inline Color(const Color& c) { *this = c; } inline Color (float r, float g, float b, float a = 1.0f) { R = Clamp(r); G = Clamp(g); B = Clamp(b); A = Clamp(a); } inline Color (unsigned char r, unsigned char g, unsigned char b, unsigned char a = 255) { R = Clamp((float)r / 255.0f); G = Clamp((float)g / 255.0f); B = Clamp((float)b / 255.0f); A = Clamp((float)a / 255.0f); } inline Color& operator=(const Color& o) { R = o.R; G = o.G; B = o.B; A = o.A; return *this; } inline bool operator==(const Color& o) { return (R == o.R && G == o.G && B == o.B && A == o.A); } inline bool operator!=(const Color& o) { return !( (*this) == o); } inline Color operator*(float val) const { Color c(*this); c.R = Clamp(c.R * val); c.G = Clamp(c.G * val); c.B = Clamp(c.B * val); c.A = Clamp(c.A * val); return c; } inline Color operator-(float val) const { Color c(*this); c.R = Clamp(c.R - val); c.G = Clamp(c.G - val); c.B = Clamp(c.B - val); return c; } inline Color operator-(const Color& o) const { Color c(*this); c.R = Clamp(c.R - o.R); c.G = Clamp(c.G - o.G); c.B = Clamp(c.B - o.B); return c; } inline Color operator/(float val) const { Color c(*this); c.R = Clamp(c.R / val); c.G = Clamp(c.G / val); c.B = Clamp(c.B / val); c.A = Clamp(c.A / val); return c; } inline Color Complementario() const { float metrica = Max() + Min(); return (*this) - metrica; } inline Color Complementar() { return *this = Complementario(); } inline Color Inverso() const { return Color(1.0f, 1.0f, 1.0f) - (*this); } inline float Clamp(float valor) const { return _GMAX(0.0f, _GMIN(1.0f, valor)); } inline float Max() const { return _GMAX(R, _GMAX(G, B)); } inline float Min() const { return _GMIN(R, _GMIN(G, B)); } inline Color& Invertir() { return (*this = Inverso()); } inline unsigned char R8() const { return (unsigned char) (this->R * 255.0f); } inline unsigned char G8() const { return (unsigned char) (G * 255.0f); } inline unsigned char B8() const { return (unsigned char) (B * 255.0f); } inline unsigned char A8() const { return (unsigned char) (A * 255.0f); } inline float RF() const { return R; } inline float GF() const { return G; } inline float BF() const { return B; } inline float AF() const { return A; } inline void SetRF(float r) { R = Clamp(r); } inline void SetGF(float g) { G = Clamp(g); } inline void SetBF(float b) { B = Clamp(b); } inline void SetAF(float a) { A = Clamp(a); } inline void SetR8(unsigned char r) { R = Clamp((float)r / 255.0f); } inline void SetG8(unsigned char g) { G = Clamp((float)g / 255.0f); } inline void SetB8(unsigned char b) { B = Clamp((float)b / 255.0f); } inline void SetA8(unsigned char a) { A = Clamp((float)a / 255.0f); } friend std::ostream& operator<<(std::ostream& out, const Color& c) { return out << "[ R = " << c.R << ", G = " << c.G << ", B = " << c.B << ", A = " << c.A << " ]"; } friend std::ostream& operator<<(std::ostream& out, const Color* c) { if (c != NULL) { return out << *c; } else { return out << "[ NULL ]"; } } }; } } } ginkgocadx-3.8.7/cadxcore/api/iwidgetsrenderer.cpp000066400000000000000000000062741314736454600223100ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iwidgetsrenderer.h" #include "iwidgetsmanager.h" #include "ioverlay.h" #include "icontexto.h" GNC::GCS::IWidgetsRenderer::IWidgetsRenderer() { m_pManager = NULL; m_pImageViewer = NULL; m_pPicker = NULL; m_pRepresentation = NULL; m_c = NULL; m_pIOverlay = NULL; m_VID = 0; m_Modificado = false; } GNC::GCS::IWidgetsRenderer::~IWidgetsRenderer() { if (m_pManager != NULL) { m_pManager->EliminarRenderer(this); EliminarListener(m_pManager); } } //---------------------------------------------------------------------------------------------------- //region "Interfaz de impresión de overlays" void GNC::GCS::IWidgetsRenderer::SetIOverlay(IImpresorOverlay* pOverlay) { m_pIOverlay = pOverlay; } //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de configuracion de vistas/slices" void GNC::GCS::IWidgetsRenderer::Activar() { OnActivar(); if (m_pManager != NULL) { m_pManager->SetRendererActivo(this); } } /* Establece el id de sub-vista activo. Los widgets se asocian a un VID */ void GNC::GCS::IWidgetsRenderer::SetVID(long vid, bool render) { if (m_VID != vid) { //long oldVID = m_VID; m_VID = vid; if (render) { PostRender(); } } } /* Propaga la notificación de activación de este renderer hacia las clases base */ void GNC::GCS::IWidgetsRenderer::OnActivar() { } //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de configuracion del manager" void GNC::GCS::IWidgetsRenderer::SetManager(IWidgetsManager* pManager) { if (m_pManager != pManager) { IWidgetsManager* oldManager = m_pManager; m_pManager = pManager; if (oldManager != NULL) { oldManager->EliminarRenderer(this); EliminarListener(oldManager); } if (m_pManager != NULL) { m_pManager->InsertarRenderer(this); InsertarListener(m_pManager); } } } void GNC::GCS::IWidgetsRenderer::SetRepresentation(WidgetRepresentation* pWidget) { m_pRepresentation = pWidget; } //endregion ginkgocadx-3.8.7/cadxcore/api/iwidgetsrenderer.h000066400000000000000000000106771314736454600217570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include //---------------------------------------------------------------------------------------------------- // Forward declarations namespace GNC { namespace GCS { class IImpresorOverlay; class IWidgetsManager; namespace Widgets { class IWidget; class IWidgetBuilder; } } } class vtkGinkgoImageViewer; class vtkWorldPointPicker; class WidgetRepresentation; class wxWindow; // End Forward declarations namespace GNC { namespace GCS { /* Clase que solicita al modelo de widgets que redibuje sus widgets */ class EXTAPI IWidgetsRenderer : public GNC::GCS::Events::IPublicadorEventos { public: typedef GNC::GCS::Contexto3D TContexto; TContexto* m_c; IImpresorOverlay* m_pIOverlay; IWidgetsRenderer(); virtual ~IWidgetsRenderer(); /* Metodo que indica al manager que es preciso hacer un render() */ void Modificar(bool modificar) { m_Modificado = modificar; } inline bool EstaModificado() { return m_Modificado; } //---------------------------------------------------------------------------------------------------- //region "Interfaz de impresión de overlays" public: void SetIOverlay(IImpresorOverlay* pOverlay); //---------------------------------------------------------------------------------------------------- //region "Interfaz de configuracion de vistas/slices" public: /* Propaga la notificación de activación de este renderer hacia el manager */ void Activar(); /* Establece el id de sub-vista activo. Los widgets se asocian a un VID. */ void SetVID(long vid, bool render); /* Obtiene el id de sub-vista activo. Los widgets se asocian a un VID. */ inline long GetVID(void) { return m_VID; } protected: /* Propaga la notificación de activación de este renderer hacia las clases base */ virtual void OnActivar(); long m_VID; //---------------------------------------------------------------------------------------------------- //region "Interfaz de configuracion del manager" public: void SetManager(GNC::GCS::IWidgetsManager* pManager); void SetRepresentation(WidgetRepresentation* pWidget); virtual void WSetCurrent() = 0; protected: GNC::GCS::IWidgetsManager* m_pManager; //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de transformacion de coordenadas" public: /** Project display to world **/ virtual void DisplayToWorld(double displayPos[3], double worldPos[4]) = 0; /** Unproject work to display **/ virtual void WorldToDisplay(double worldPos[4], double displayPos[3]) = 0; /** Gets camera vectors (camPos, camDir, camUp) **/ virtual void GetCamVectors(double camPos[4], double camDir[4], double camUp[4]) = 0; /** shots a ray from unproyected displayPos with camera direction and intersects with image plane **/ virtual void RayPick(double displayPos[2], double worldPos[4]) = 0; /** shots a ray from campPos with camera direction and intersects with image plane **/ virtual void RayPick(double worldPos[4]) = 0; //endregion protected: public: virtual void PostRender(bool inmediato = false) = 0; public: vtkGinkgoImageViewer* m_pImageViewer; vtkWorldPointPicker* m_pPicker; WidgetRepresentation* m_pRepresentation; std::string sid; bool m_Modificado; }; } } ginkgocadx-3.8.7/cadxcore/api/iwizard.cpp000066400000000000000000000072051314736454600204060ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "iwizard.h" IWizard::~IWizard() { } IPasoWizard::IPasoWizard(IWizard * pWizard) : m_pListaFicheros(NULL), m_pWizard(pWizard) { } IPasoWizard::~IPasoWizard() { } bool IPasoWizard::Attach() { return true; } bool IPasoWizard::Detach() { return true; } std::string IPasoWizard::GetSubTitle() { return ""; } bool IPasoWizard::IsSkipped() { return false; } bool IPasoWizard::AllowCancel() { return true; } void IPasoWizard::OnCancelled() {} void IPasoWizard::AsignarListaFicheros(ListaFicheros &lista) { m_pListaFicheros=&lista; } void IPasoWizard::SiguientePaso() { m_pWizard->SiguientePaso(); } void IPasoWizard::EnableSiguiente(bool enable) { m_pWizard->EnableSiguiente(enable); } void IPasoWizard::EnableAnterior(bool enable) { m_pWizard->EnableAnterior(enable); } void IPasoWizard::EnableCancelar(bool enable) { m_pWizard->EnableCancelar(enable); } //helpers bool IPasoWizard::ValidarDouble(std::string strNumero, double min, double max, bool obligatorio, bool estricto) { if(strNumero != "") { wxString wxStr = wxString::FromUTF8(strNumero.c_str()); double valor; if(!wxStr.ToDouble(&valor)) { return false; } else { if (estricto) { if(valor <= min || valor >= max) { return false; } } else { if(valor < min || valor > max) { return false; } } } return true; } else { if(obligatorio) { return false; } else { return true; } } } bool IPasoWizard::ValidarLong(std::string strNumero, long min, long max, bool obligatorio, bool estricto) { if(strNumero != "") { wxString wxStr = wxString::FromUTF8(strNumero.c_str()); long valor; if(!wxStr.ToLong(&valor)) { return false; } else { if (estricto) { if(valor<=min || valor >=max) { return false; } } else { if(valor < min || valor > max) { return false; } } } return true; } else { if(obligatorio) { return false; } else { return true; } } } ginkgocadx-3.8.7/cadxcore/api/iwizard.h000066400000000000000000000043521314736454600200530ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include class EXTAPI IWizard { public: virtual ~IWizard(); virtual void SiguientePaso() = 0; virtual void EnableSiguiente(bool enable) = 0; virtual void EnableAnterior(bool enable) = 0; virtual void EnableCancelar(bool enable) = 0; }; class EXTAPI IPasoWizard { public: typedef std::list ListaFicheros; protected: ListaFicheros* m_pListaFicheros; IWizard* m_pWizard; public: IPasoWizard(IWizard * pWizard); virtual ~IPasoWizard(); virtual bool Attach(); virtual bool Detach(); virtual std::string GetTitle()=0; virtual std::string GetSubTitle(); virtual bool Siguiente()=0; virtual bool Anterior()=0; virtual bool Cancelar()=0; virtual bool Validar()=0; virtual bool IsSkipped(); virtual bool AllowCancel() ; virtual void OnCancelled(); virtual void AsignarListaFicheros(ListaFicheros &lista); virtual void SiguientePaso(); virtual void EnableSiguiente(bool enable); virtual void EnableAnterior(bool enable); virtual void EnableCancelar(bool enable); //helpers virtual bool ValidarDouble(std::string strNumero, double min, double max, bool obligatorio = false, bool estricto = true); virtual bool ValidarLong(std::string strNumero, long min, long max, bool obligatorio = false, bool estricto = true); }; ginkgocadx-3.8.7/cadxcore/api/math/000077500000000000000000000000001314736454600171565ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/math/geometry.h000066400000000000000000001630671314736454600211770ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef GEOMETRY2D_H #define GEOMETRY2D_H #if defined(max) #undef max #endif #if defined(min) #undef min #endif #include #include #include #include #include #include #define GEOMETRY2D_NO_TEMPLATE #if defined(GEOMETRY2D_NO_TEMPLATE) namespace GNC { namespace GCS { class Matriz; class Vector { public: typedef PRECISION_COMPONENTE_POR_DEFECTO TComp; typedef PRECISION_REALES_POR_DEFECTO TReal; TComp& x; // Coordenada mundo X TComp& y; // Coordenada mundo Y TComp& z; // Coordenada mundo Z (Allways zero) TComp& w; // Coordenada mundo W TComp v[4]; public: static inline const Vector NaN() { return Vector(NaNDeComponentes(), NaNDeComponentes()); } static inline const Vector Inf() { return Vector(InfinitoDeComponentes(), InfinitoDeComponentes()); } static inline const Vector Zero() { return Vector(); } static inline const Vector Unidad() { return Vector(1.0, 1.0); } //---------------------------------------------- //-- Constructores y destructores //---------------------------------------------- inline Vector() : x(v[0]), y(v[1]), z(v[2]), w(v[3]) { x = (TComp)0.0; y = (TComp)0.0; z = (TComp)0.0; w = (TComp)1.0; } /* Constructor copia transparente */ inline Vector(const Vector& b) : x(v[0]), y(v[1]), z(v[2]), w(v[3]) { x = b.x; y = b.y; z = (TComp)0.0; w = (TComp)1.0; } template inline Vector(const TipoComp1& valX, const TipoComp2& valY) : x(v[0]), y(v[1]), z(v[2]), w(v[3]) { x = (TComp) valX; y = (TComp) valY; z = (TComp)0.0; w = (TComp)1.0; } template inline Vector(const TipoComp* const valor) : x(v[0]), y(v[1]), z(v[2]), w(v[3]) { x = valor[0]; y = valor[1]; z = (TComp)0.0; w = (TComp)1.0; } inline ~Vector() { } //---------------------------------------------- //-- Asignacion explicita //---------------------------------------------- /* Asigna las coordenadas al vector */ template inline Vector& Asignar(const TipoComp1& valX, const TipoComp2& valY) { x = (TComp) valX; y = (TComp) valY; return (*this); } /* Asigna el valor a todas las coordenadas del vector */ template inline Vector& Asignar(const TipoComp& valor) { x = (TComp) valor; y = (TComp) valor; return *this; } /* Asigna el valor a todas las coordenadas del vector */ template inline void Exportar(TipoComp* ptr) { ptr[0] = (TipoComp) x; ptr[1] = (TipoComp) y; } //---------------------------------------------- //-- Normas Vectoriales, Distancias y Producto Interior //---------------------------------------------- inline TComp Norma1() const { return std::abs(x) + std::abs(y); } /* Devuelve la norma 2 (euclidea) al cuadrado */ inline TComp Norma2Cuadrado() const { return (TReal)x * (TReal)x + (TReal)y * (TReal)y; } /* Devuelve la norma 2 (euclidea) */ inline TReal Norma2() const { return std::sqrt((TReal) (*this).Norma2Cuadrado()); } inline TReal NormaEnesima(unsigned int n) const { return std::pow( std::pow((TReal)x, (TReal)n) + std::pow((TReal)y, (TReal)n), (TReal)1.0f / (TReal)n); } inline TComp NormaInfinito() const { return std::max(x, y); } /* Devuelve la distancia euclidea a "b" */ inline TReal DistanciaEuclidea(const Vector& b) const { const Vector& a = *this; return std::sqrt( (double) (b - a).Norma2Cuadrado() ); } /* Devuelve el cuadrado de la distancia euclidea */ inline TReal DistanciaEuclideaCuadrado(const Vector& b) const { const Vector& a = *this; return (b - a).Norma2Cuadrado(); } /* Normaliza un vector teniendo en cuenta singularidades */ inline Vector& Normalizar() { Vector& a = (*this); const TReal& norma = a.Norma2(); if ( std::abs(norma) < EpsilonDeReales()) { a.Asignar( (TComp)0.0f, (TComp)0.0f); } else { a /= norma; } return a; } /* Devuelve el vector normalizado teniendo en cuenta singularidades */ inline Vector Normalizado() const { return Vector(*this).Normalizar(); } /* Devuelve el producto escalar por b */ inline TReal ProductoEscalar(const Vector& b) const { const Vector& a = *this; return ((TReal)a.x * (TReal)b.x) + ((TReal)a.y * (TReal)b.y); } /* Devuelve la dimension z del producto vectorial */ inline TReal ProductoVectorialZ(const Vector& b) const { const Vector& a = *this; return ((TReal)a.y * (TReal)b.x) - ((TReal)a.x * (TReal)b.y); } //---------------------------------------------- //-- Angulos //---------------------------------------------- /* Devuelve el angulo { entre [0, -PI) } que forma con "b" */ inline TReal Angulo(const Vector& b) const { const Vector& a = (*this); const TReal& angulo = std::acos( ((TReal) a.ProductoEscalar(b)) / (a.Norma2() * b.Norma2()) ); if ( (TReal) a.ProductoVectorialZ(b) < 0.0f) { return angulo; } else { return -1.0f * angulo; } } inline TReal Angulo() const { return std::atan2( (TReal) y, (TReal) x ); } /* Devuelve el angulo entre pi/2 y -pi/2 tomando como origen el punto con abscisa mas baja */ inline TReal AnguloSobreAbscisa() const { const TReal& angulo = Angulo(); if (angulo > (TReal)M_PI_2) { return (TReal)-M_PI + angulo; } else if (angulo < (TReal)-M_PI_2) { return (TReal)M_PI + angulo; } else { return angulo; } } /* Devuelve el angulo rotado entre pi/2 y -pi/2 tomando como origen el punto con abscisa mas baja teniendo en cuenta una rotacion del eje z.*/ inline TReal AnguloRotadoSobreAbscisa(const TReal& rotacion) const { const TReal& angulo = Angulo() - rotacion; if (angulo > (TReal)M_PI_2) { return (TReal)-M_PI + angulo; } else if (angulo < (TReal)-M_PI_2) { return (TReal)M_PI + angulo; } else { return angulo; } } /* Devuelve la pendiente del vector */ inline TReal Pendiente() const { if (std::abs(x) < EpsilonDeComponentes()) { if (std::abs(y) < EpsilonDeComponentes()) { return NaNDeReales(); } else { return (TReal)0.0f; } } else { return (TReal)y / (TReal)x; } } //---------------------------------------------- //-- Ajuste e interpolacion //---------------------------------------------- /* Sean "this" y rect, ambos rectangulos definidos con inicio en el origen de coordenadas, calcula el rectangulo minimo con igual proporcion a "this" que contiene a rect */ inline Vector AjusteOptimoProporcional(const Vector& r2) const { const Vector& r1 = *this; const TReal& m = std::abs(r1.Pendiente()); if (m < EpsilonDeReales()) { return Vector( (TComp) 0.0f, (TComp) 0.0f); } const TReal& Yc = std::max(std::abs(r2.y), std::abs(m * r2.x)); return Vector(Yc / m, Yc); } /* Sean "this" y rect, ambos rectangulos definidos con inicio en el origen de coordenadas, calcula el rectangulo minimo con igual proporcion a "this" contenido en rect */ inline Vector AjusteInteriorProporcional(const Vector& r2) const { const Vector& r1 = *this; const TReal& m = std::abs(r1.Pendiente()); if (m < EpsilonDeReales()) { return Vector( (TComp) 0.0f, (TComp) 0.0f); } const TReal& Yc = std::min( (std::abs((TReal)r2.y)) , (std::abs( m * (TReal) r2.x)) ); return Vector(Yc / m, Yc); } // Devuelve un vector que apunta al origen del desplazamiento de este vector para compartir centro con un vector determinado. inline Vector OrigenDeVectorCentradoA(const Vector& b) const { const Vector& a = (*this); return (b - a ) / 2.0f; } /* Sea rect(p0, p1) un rectangulo definido por las esquinas p0, p1, desinfla el rectangulo las unidades especificadas */ static inline void DesinflarRectangulo(Vector& p0, Vector& p1, const TComp& tamano) { const Vector& puntoMedio = p0.PuntoMedio(p1); if (p0.x < p1.x) { p0.x = std::min(p0.x + tamano, puntoMedio.x); p1.x = std::max(p1.x - tamano, puntoMedio.x); } else { p0.x = std::min(p0.x - tamano, puntoMedio.x); p1.x = std::max(p1.x + tamano, puntoMedio.x); } if (p0.y < p1.y) { p0.y = std::min(p0.y + tamano, puntoMedio.y); p1.y = std::min(p1.y - tamano, puntoMedio.y); } else { p0.y = std::min(p0.y - tamano, puntoMedio.y); p1.y = std::min(p1.y + tamano, puntoMedio.y); } } /* Sea rect(p0, p1) un rectangulo definido por las esquinas p0, p1, infla el rectangulo las unidades especificadas */ static inline void InflarRectangulo(Vector& p0, Vector& p1, const TComp& tamano) { if (p0.x < p1.x) { p0.x -= tamano; p1.x += tamano; } else { p0.x += tamano; p1.x -= tamano; } if (p0.y < p1.y) { p0.y += tamano; p1.y -= tamano; } else { p0.y -= tamano; p1.y += tamano; } } /* translada el vector de acuerdo con el nuevo spacing y con el nuevo origen */ inline void ReEscalar(const TReal* oldSpacing, const TReal* oldOrigin, const TReal* newSpacing, const TReal* newOrigin) { const Vector& vOldSpacing = oldSpacing; const Vector vOldOrigin(oldOrigin[0],-oldOrigin[1]); const Vector& vNewSpacing = newSpacing; const Vector vNewOrigin(newOrigin[0],-newOrigin[1]); *this = ( ( (*this) - vOldOrigin) * ( vNewSpacing / vOldSpacing) ) + vNewOrigin; } inline Vector& ReflejarSobreAbscisas() { y = 0.0f - y; return *this; } inline Vector ReflejoSobreAbscisas() const { return Vector(x, 0.0f - y); } inline Vector& ReflejarSobreOrdenadas() { x = 0.0f - x; return *this; } inline Vector ReflejoSobreOrdenadas() const { return Vector(0.0f - x, y); } // Devuelve el reflejo del punto sobre el punto p (proyección sobre recta que atraviesa los dos puntos de manera que la distancia entre p y el punto actual se mantiene) inline Vector ReflejoSobrePunto(const Vector& p) const { return p + (p - *this); } // Refleja el punto sobre p (proyección sobre recta que atraviesa los dos puntos de manera que la distancia entre p y el punto actual se mantiene) inline Vector& ReflejarSobrePunto(const Vector& p) { *this = ReflejoSobrePunto(p); return *this; } //---------------------------------------------- //-- Componentes //---------------------------------------------- /* Devuelve la mayor de las componentes */ inline const TComp& Mayor() const { return x>y?x:y; } /* Devuelve la menor de las componentes */ inline const TComp& Menor() const { return x>y?y:x; } //---------------------------------------------- //-- Constantes //---------------------------------------------- static inline TComp InfinitoDeComponentes() { return std::numeric_limits::infinity(); } static inline TReal InfinitoDeReales() { return std::numeric_limits::infinity(); } static inline TComp NaNDeComponentes() { return std::numeric_limits::quiet_NaN(); } static inline TReal NaNDeReales() { return std::numeric_limits::quiet_NaN(); } static inline TComp EpsilonDeComponentes() { return std::numeric_limits::epsilon(); } static inline TReal EpsilonDeReales() { return std::numeric_limits::epsilon(); } //---------------------------------------------- //-- Comprobaciones //---------------------------------------------- inline bool EsNulo() const { #if defined(EXACT_COMPARISON) return x == 0.0f && y == 0.0f; #else return ((*this) - Zero()).ValorAbsoluto().NearlyEqual(Zero()); #endif } inline bool EsInvalido() const { return (x != x) || (y != y); } inline bool EsNaN() const { return (x != x) || (y != y); } //---------------------------------------------- //-- Geometria //---------------------------------------------- // Calcula el vector ortogonal (perpendicular) con dirección y sentido segun la regla de la mano derecha. inline Vector VectorOrtogonal() const { if (std::abs(x) < EpsilonDeComponentes()) { // Vector sobre las ordenadas if (std::abs(y) < EpsilonDeComponentes()) { // Singularidad. Punto = 0, 0. Usamos un vector cualquiera return Vector(1.0f, 0.0f); } else if (y > 0.0f) { return Vector(1.0f, 0.0f); } else { // y < 0.0f return Vector(-1.0f, 0.0f); } } else { if ( std::abs(y) < EpsilonDeComponentes() ) { // Vector sobre las abscisas if( x > 0.0f) { return Vector(0.0f, -1.0f); } else { return Vector(0.0f, 1.0f); } } else if (y > 0.0f) { return Vector(1.0f, -x/y); } else { // y < 0.0f return Vector(-1.0f, x/y); } } } // Calcula el vector ortonormal (perpendicular y norma 1) con dirección y sentido segun la regla de la mano derecha. inline Vector VectorOrtonormal() const { if (std::abs(x) < EpsilonDeComponentes()) { // Vector sobre las ordenadas if (std::abs(y) < EpsilonDeComponentes()) { // Singularidad. Punto = 0, 0. Usamos un vector cualquiera return Vector(1.0f, 0.0f); } else if (y > 0.0f) { return Vector(1.0f, 0.0f); } else { return Vector(-1.0f, 0.0f); } } else { if (std::abs(y) < EpsilonDeComponentes()) { // Vector sobre las abscisas if( x > 0.0f ) { return Vector(0.0f, -1.0f); } else { return Vector(0.0f, 1.0f); } } else if (y > 0) { if (x > 0) { return Vector(1.0f, -x/y).Normalizar(); } else { return Vector(1.0f, -x/y).Normalizar(); } } else { if (x > 0) { return Vector(-1.0f, x/y).Normalizar(); } else { return Vector(-1.0f, x/y).Normalizar(); } } } } /* Devuelve el punto medio entre dos vectores */ inline Vector PuntoMedio(const Vector& b) const { const Vector& a = (*this); return (a + b) / 2.0f; } /* Devuelve el punto de interseccion entre la recta r definida por r0,r1 y la recta s definida por s0,s1 */ static inline Vector InterseccionEntreRectas(const Vector& r0, const Vector& r1, const Vector& s0, const Vector& s1) { TReal d1 = ((TReal)r0.x - (TReal)r1.x) * ((TReal)s0.y - (TReal)s1.y); TReal d2 = ((TReal)r0.y - (TReal)r1.y) * ((TReal)s0.x - (TReal)s1.x); if (std::abs(d1) < Vector::EpsilonDeReales()) { d1 = 0.0f; } if (std::abs(d2) < Vector::EpsilonDeReales()) { d2 = 0.0f; } const TReal& d = d1 - d2; if ( std::abs(d) < Vector::EpsilonDeReales()) { return Vector(NaNDeComponentes(), NaNDeComponentes()); } else { const TComp& pre = (r0.x * r1.y - r0.y * r1.x); const TComp& post = (s0.x * s1.y - s0.y * s1.x); return ( ( (s0 - s1) * pre ) - (r0 - r1) * post) / d; } } static inline Vector InterseccionEntreRectaYElipse(const Vector&, const Vector& , const Vector& , const Vector& ) { return Vector(); } static inline Vector VectorUnitarioTangenteAElipse(const Vector&, const Vector& , const TReal& ) { return Vector(); } /* Devuelve el punto de la proyeccion ortogonal del punto sobre la recta definida por p0 y p1 */ inline Vector ProyeccionOrtogonalSobreRecta(const Vector& p0, const Vector& p1) const { return InterseccionEntreRectas(*this, *this + (p1-p0).VectorOrtogonal(), p0, p1); } /* Devuelve la distancia del punto a la recta definida por p0 y p1 */ inline TReal DistanciaARecta(const Vector& p0, const Vector& p1) const { return (ProyeccionOrtogonalSobreRecta(p0, p1) - (*this)).Norma2(); } /* Devuelve el cuadrado de la distancia del punto a la segmento de p0 y p1 */ inline TComp DistanciaASegmentoCuadrado(const Vector& p0, const Vector& p1) const { Vector vi = ProyeccionOrtogonalSobreRecta(p0, p1); Vector pm = p0.PuntoMedio(p1); if (vi.DistanciaEuclideaCuadrado(pm) > p0.DistanciaEuclideaCuadrado(pm)) { return std::min(this->DistanciaEuclideaCuadrado(p0), this->DistanciaEuclideaCuadrado(p1)); } else { return this->DistanciaEuclideaCuadrado(vi); } } /* Devuelve el cuadrado de la distancia del punto a la segmento de p0 y p1 */ inline TComp DistanciaASegmento(const Vector& p0, const Vector& p1) const { return std::sqrt(this->DistanciaASegmentoCuadrado(p0, p1)); } /* Devuelve el cuadrado de la distancia del punto a la recta definida por p0 y p1 */ inline TComp DistanciaARectaCuadrado(const Vector& p0, const Vector& p1) const { return (ProyeccionOrtogonalSobreRecta(p0, p1) - (*this)).Norma2Cuadrado(); } //---------------------------------------------- //-- Acotaciones //---------------------------------------------- inline Vector ValorAbsoluto() { return Vector(std::abs(x), std::abs(y)); } inline Vector TruncadoAMaximo(const TComp& val) const { return Vector(*this).TruncarAMaximo(val); } inline Vector TruncadoAMinimo(const TComp& val) const { return Vector(*this).TruncarAMinimo(val); } inline Vector& TruncarAMaximo(const TComp& val) { x = std::max(x, val); y = std::max(y, val); return *this; } inline Vector& TruncarAMinimo(const TComp& val) { x = std::min(x, val); y = std::min(y, val); return *this; } inline Vector TruncadoAMaximo(TComp valx, TComp valy) const { return Vector(*this).TruncarAMaximo(valx, valy); } inline Vector TruncadoAMinimo(TComp valx, TComp valy) const { return Vector(*this).TruncarAMinimo(valx, valy); } inline Vector& TruncarAMaximo(TComp valx, TComp valy) { x = std::max(x, valx); y = std::max(y, valy); return *this; } inline Vector& TruncarAMinimo(TComp valx, TComp valy) { x = std::min(x, valx); y = std::min(y, valy); return *this; } inline TComp ComponenteMaxima() const { return std::max(x,y); } inline TComp ComponenteMinima() const { return std::min(x,y); } static inline Vector ComponentesMaximas(const Vector& a, const Vector& b) { return Vector(std::max(a.x, b.x), std::max(a.y, b.y)); } static inline Vector ComponentesMinimas(const Vector& a, const Vector& b) { return Vector(std::min(a.x, b.x), std::min(a.y, b.y)); } inline Vector& AsignarMaximos(const Vector& o) { x = std::max(x, o.x); y = std::max(y, o.y); return *this; } inline Vector& AsignarMinimos(const Vector& o) { x = std::min(x, o.x); y = std::min(y, o.y); return *this; } inline Vector ObtenerMaximos(const Vector& o) const { return Vector(std::max(x, o.x), std::max(y, o.y)); } inline Vector ObtenerMinimos(const Vector& o) const { return Vector(std::min(x, o.x), std::min(y, o.y)); } inline bool TieneComponenteMayorQue(const Vector& o) const { return ( (x > o.x) || (y > o.y) ); } inline bool TieneComponenteMenorQue(const Vector& o) const { return ( (x < o.x) || (y < o.y) ); } /* Devuelve verdadero si el vector es singular (distancia a (0,0) < epsilon =~ (0,0) ) */ inline bool Singular() const { return std::abs(x) < EpsilonDeComponentes() || std::abs(y) < EpsilonDeComponentes(); } inline Vector RedondeoAlza() const { return Vector(*this).RedondearAlza(); } inline Vector& RedondearAlza() { x = std::ceil(x); y = std::ceil(y); return *this; } inline Vector RedondeoBaja() const { return Vector(*this).RedondearBaja(); } inline Vector& RedondearBaja() { x = std::floor(x); y = std::floor(y); return *this; } static TComp ValorRedondeado(const TComp& val) { const TComp& d = std::floor(val); const TComp& u = std::ceil(val); if ( val - d < u - val) { return d; } else { return u; } } inline Vector Redondeado() const { return Vector(*this).Redondear(); } inline Vector& Redondear() { x = ValorRedondeado(x); y = ValorRedondeado(y); return *this; } /* Devuelve el vector de rotacion para un angulo dado (x = cos(angulo), y = sin(angulo)) */ static inline Vector VectorDeRotacion(const TReal& angulo) { return Vector((TComp)std::cos(angulo), (TComp)std::sin(angulo)); } /* Devuelve un nuevo vector rotado el vector sobre el eje de coordenadas Z */ inline Vector RotacionSobreZ(const TReal& angulo) const; /* Rota el vector sobre el eje de coordenadas Z */ inline Vector& RotarSobreZ(const TReal& angulo) { *this = RotacionSobreZ(angulo); return *this; } inline Vector RotacionSobreZ(const Vector& centro, const TReal& angulo) const; inline Vector& RotarSobreZ(const Vector& centro, const TReal& angulo) { *this = RotacionSobreZ(centro, angulo); return *this; } inline bool DentroDeElipse(const Vector& centro, const TReal& radioX, const TReal& radioY, const TReal& rotacion) const { Vector p(*this); p.RotarSobreZ(centro, -rotacion); const TComp& t1 = (p.x - centro.x) / radioX; const TComp& t2 = (p.y - centro.y) / radioY; return (t1 * t1) + (t2 * t2) <= (TComp)1.0f; } /* Devuelve true si el punto esta contenido dentro del poligono especificado. Metodo del teorema de las curvas de Jordan para poligonos cerrados concavos o convexos. Contempla los casos: * punto coincidente con un vértice. * vertices consecutivos de poligono coincidentes. */ template inline bool DentroDePoligono(const TipoVector *v, int numVertices) const { int cruces = 0; for ( int i = 0; i < numVertices; i++ ) { if ( *this == v[i] ) { return true; } int j = (i == numVertices-1 ? 0 : i + 1); const TComp& xmin = std::min(v[i].x, v[j].x); const TComp& xmax = std::max(v[i].x, v[j].x); const TComp& ymin = std::min(v[i].y, v[j].y); const TComp& ymax = std::max(v[i].y, v[j].y); if (x <= xmax && y <= ymax && y >= ymin) { if (x <= xmin) { cruces++; } else { // Ecuacion de la linea const TComp& dx = v[j].x - v[i].x; if (std::abs(dx) > EpsilonDeComponentes()) { const Vector& pi = InterseccionEntreRectas (*this, *this + Vector(1.0f, 0.0f), v[i], v[j]); if ( pi.x > x) { cruces++; } } } } } return (cruces & 1) != 0; } /* Devuelve true si el punto esta contenido dentro del poligono especificado. Metodo del teorema de las curvas de Jordan para poligonos cerrados concavos o convexos. Contempla los casos: * punto coincidente con un vértice. * vertices consecutivos de poligono coincidentes. */ template inline bool DentroDePoligono(const TipoVector& lista) const { int cruces = 0; typename TipoVector::const_iterator i = lista.begin(); typename TipoVector::const_iterator j = --lista.end(); for ( typename TipoVector::size_type k = 0; k < lista.size(); ++k ) { if ( *this == (*i) ) { return true; } j = i++; const TComp& xmin = std::min((*i).x, (*j).x); const TComp& xmax = std::max((*i).x, (*j).x); const TComp& ymin = std::min((*i).y, (*j).y); const TComp& ymax = std::max((*i).y, (*j).y); if (x <= xmax && y <= ymax && y >= ymin) { if (x <= xmin) { cruces++; } else { // Ecuacion de la linea const TComp& dx = (*j).x - (*i).x; if (std::abs(dx) > EpsilonDeComponentes()) { const Vector& pi = InterseccionEntreRectas (*this, *this + Vector(1.0f, 0.0f), (*i), (*j)); if ( pi.x > x) { cruces++; } } } } } return (cruces & 1) != 0; } /* Otra implementacion distinta que devuelve true si el punto esta contenido dentro del poligono especificado. Metodo del teorema de las curvas de Jordan para poligonos cerrados concavos o convexos. Contempla los casos: * punto coincidente con un vértice. * vertices consecutivos de poligono coincidentes. */ template inline bool DentroDePoligono2(const TipoVector* const v, const int& numVertices) const { int i, j; bool t = false; for (i = 0, j = numVertices-1; i < numVertices; j = i++) { if ( ( (v[i].y > y) != (v[j].y > y) ) && (x < (v[j]. x - v[i].x) * (y - v[i].y) / (v[j].y - v[i].y) + v[i].x) ) t = !t; } return t; } template inline bool DentroDePoligono2(const std::list& lista) const { typename std::list::const_iterator i = lista.begin(); typename std::list::const_iterator j = --lista.end(); bool t = false; if (i != j) { for ( ; i != lista.end(); j = i++) { if ( ( ( (*i).y > y) != ((*j).y > y) ) && (x < ((*j). x - (*i).x) * (y - (*i).y) / ((*j).y - (*i).y) + (*i).x) ) { t = !t; } } } return t; } // Calcula el area de un poligono simple por el metodo de los determinantes template static TReal AreaDePoligono(const TipoVector* const v, const int& numVertices) { TReal area = 0.0f; const TReal fact = 0.5f; if (numVertices > 2) { for (int i = 1, j = 2; j < numVertices; i++, j++) { area += ( fact * ( ( (TReal)(v[0].x) * (TReal)(v[i].y) ) + ( (TReal)(v[i].x) * (TReal)(v[j].y) ) + ( (TReal)(v[j].x) * (TReal)(v[0].y) ) - ( (TReal)(v[0].y) * (TReal)(v[i].x) ) - ( (TReal)(v[i].y) * (TReal)(v[j].x) ) - ( (TReal)(v[j].y) * (TReal)(v[0].x) ) ) ); } } return std::abs(area); } // Calcula el area de un poligono simple por el metodo de los determinantes template static TReal AreaDePoligono(const std::list& lista) { TReal area = 0.0f; const TReal fact = 0.5f; if (lista.size() > 2) { typename std::list::const_iterator v0 = lista.begin(); typename std::list::const_iterator v1 = v0; v1++; typename std::list::const_iterator v2 = v1; v2++; for (; v2 != lista.end(); v1++, v2++) { area += ( fact * ( ( (TReal)((*v0).x) * (TReal)((*v1).y) ) + ( (TReal)((*v1).x) * (TReal)((*v2).y) ) + ( (TReal)((*v2).x) * (TReal)((*v0).y) ) - ( (TReal)((*v0).y) * (TReal)((*v1).x) ) - ( (TReal)((*v1).y) * (TReal)((*v2).x) ) - ( (TReal)((*v2).y) * (TReal)((*v0).x) ) ) ); } } return std::abs(area); } // Determina si el poligono es simple (sus aristas no intersectan entre ellas) template static bool EsPoligonoSimple(const std::list& lista) { bool simple = true; if (lista.size() > 3) { typename std::list::const_iterator i = lista.begin(); typename std::list::const_iterator j = i; j++; typename std::list::const_iterator k; typename std::list::const_iterator l; TipoVector inter; TipoVector bbox[2][2]; const unsigned long nl = lista.size() - 1; unsigned long ni = 0; for (ni = 0; simple && ni < nl; ni++, i++, j++) { (*i).IniciarBoundingBox(bbox[0][0],bbox[0][1]); (*j).ExtenderBoundingBox(bbox[0][0],bbox[0][1]); k = j; while ( simple && (++k) != lista.end()) { l = k; l++; if (l == lista.end()) { l = lista.begin(); if (l == i) { break; } } (*k).IniciarBoundingBox(bbox[1][0], bbox[1][1]); (*l).ExtenderBoundingBox(bbox[1][0], bbox[1][1]); TipoVector::IntersectarBoundingBox(bbox[0], bbox[1], bbox[1]); if ( BoundingBoxValido(bbox[1]) ) { inter = TipoVector::InterseccionEntreRectas(*i, *j, *k, *l); if ( (inter.x + 1e-6) >= bbox[1][0].x && (inter.x - 1e-6) <= bbox[1][1].x && (inter.y + 1e-6) >= bbox[1][0].y && (inter.y - 1e-6) <= bbox[1][1].y ) { simple = false; } } } } } return simple; } // Determina si el poligono es simple (sus aristas no intersectan entre ellas) template static bool EsPoligonoSimple(const TipoVector* const v, const int numVertices) { bool simple = true; if (numVertices > 3) { int i = 0; int j = 1; int k = 0; int l = 0; TipoVector inter; TipoVector bbox[2][2]; const unsigned long nl = numVertices - 1; unsigned long ni = 0; for (ni = 0; simple && ni < nl; ni++, i++, j++) { v[i].IniciarBoundingBox(bbox[0][0],bbox[0][1]); v[j].ExtenderBoundingBox(bbox[0][0],bbox[0][1]); k = j; while ( simple && (++k) != numVertices) { l = k + 1; if (l == numVertices) { l = 0; if (l == i) { break; } } v[k].IniciarBoundingBox(bbox[1][0], bbox[1][1]); v[l].ExtenderBoundingBox(bbox[1][0], bbox[1][1]); TipoVector::IntersectarBoundingBox(bbox[0], bbox[1], bbox[1]); if ( TipoVector::BoundingBoxValido(bbox[1]) ) { inter = TipoVector::InterseccionEntreRectas(v[i], v[j], v[k], v[l]); if ( (inter.x + 1e-6) >= bbox[1][0].x && (inter.x - 1e-6) <= bbox[1][1].x && (inter.y + 1e-6) >= bbox[1][0].y && (inter.y - 1e-6) <= bbox[1][1].y ) { simple = false; } } } } } return simple; } // Calcula y devuelve el centroide de una colección de puntos. template static Vector Centroide(const TipoVector v[], const int& numVertices) { Vector vSum; if (numVertices > 0) { for (int i = 0; i < numVertices; ++i) { vSum += v[i]; } vSum /= (TComp)numVertices; } return vSum; } // Calcula y devuelve el centroide de una coleccion de puntos. template static Vector Centroide(const std::list& lista) { typename std::list::const_iterator i = lista.begin(); Vector vSum; if (i != lista.end()) { for ( i = lista.begin(); i != lista.end(); i++) { vSum += (*i); } vSum /= (TComp)lista.size(); } return vSum; } // Calcula y devuelve el perimetro del poligono template static TReal PerimetroDePoligono(const TipoVector v[], int numVertices) { int i, j; TReal perimetro = 0.0f; for (i = 0, j = numVertices-1; i < numVertices; j = i++) { perimetro += (v[i] - v[j]).Norma2(); } return perimetro; } // Calcula y devuelve el perimetro del poligono template static TReal PerimetroDePoligono(const std::list& lista) { TReal perimetro = 0.0f; if (lista.size() > 0) { typename std::list::const_iterator i = lista.begin(); typename std::list::const_iterator j = --lista.end(); for ( ; i != lista.end(); j = i++) { perimetro += ( (*j) - (*i) ).Norma2(); } } return perimetro; } inline bool DentroDeBoundingBox(const Vector& p0, const Vector& p1) const { bool vx = false; bool vy = false; if (p0.x < p1.x) { vx = (p0.x < x && x < p1.x); } else { vx = (p1.x < x && x < p0.x); } if (p0.y < p1.y) { vy = (p0.y < y && y < p1.y); } else { vy = (p1.y < y && y < p0.y); } return vx && vy; } inline bool DentroDeBoundingBoxCerrado(const Vector& p0, const Vector& p1) const { bool vx = false; bool vy = false; if (p0.x < p1.x) { vx = (p0.x <= x && x <= p1.x); } else { vx = (p1.x <= x && x <= p0.x); } if (p0.y < p1.y) { vy = (p0.y <= y && y <= p1.y); } else { vy = (p1.y <= y && y <= p0.y); } return vx && vy; } // Inicia un bounding box que contiene al punto inline void IniciarBoundingBox(Vector bBox[2]) const { IniciarBoundingBox(bBox[0], bBox[1]); } // Inicia un bounding box que contiene al punto inline void IniciarBoundingBox(Vector& p0, Vector& p1) const { p0 = p1 = *this; } // Extiende el bounding box especificado como parámetro para contener al punto inline void ExtenderBoundingBox(Vector bBox[2]) const { ExtenderBoundingBox(bBox[0], bBox[1]); } // Extiende el bounding box especificado como parámetro para contener al punto inline void ExtenderBoundingBox(Vector& p0, Vector& p1) const { if (p0.x <= p1.x) { if (x < p0.x) { p0.x = x; } else if (x > p1.x) { p1.x = x; } } else { if (x < p1.x) { p1.x = x; } else if (x > p0.x) { p0.x = x; } } if (p0.y <= p1.y) { if (y < p0.y) { p0.y = y; } else if (y > p1.y) { p1.y = y; } } else { if (y < p1.y) { p1.y = y; } else if (y > p0.y) { p0.y = y; } } } // Ordena el bounding box de manera que p0.x <= p1.x y p0.y <= p1.y static void OrdenarBoundingBox(Vector bBox[2]) { Vector::OrdenarBoundingBox(bBox[0], bBox[1]); } // Ordena el bounding box de manera que p0.x <= p1.x y p0.y <= p1.y static void OrdenarBoundingBox(Vector& p0, Vector& p1) { const Vector temp (std::min(p0.x, p1.x), std::min(p0.y, p1.y)); p1.Asignar (std::max(p0.x, p1.x), std::max(p0.y, p1.y)); p0 = temp; } template static void IntersectarBoundingBox(const TipoVector* a, const TipoVector* b, TipoVector* res) { const TipoVector a0 (std::min(a[0].x, a[1].x), std::min(a[0].y, a[1].y)); const TipoVector a1 (std::max(a[0].x, a[1].x), std::max(a[0].y, a[1].y)); const TipoVector b0 (std::min(b[0].x, b[1].x), std::min(b[0].y, b[1].y)); const TipoVector b1 (std::max(b[0].x, b[1].x), std::max(b[0].y, b[1].y)); res[0].Asignar(std::max(a[0].x, b[0].x), std::max(a[0].y, b[0].y)); res[1].Asignar(std::min(a[1].x, b[1].x), std::min(a[1].y, b[1].y)); if (res[0].x > res[1].x || res[0].y > res[1].y) { res[0].Asignar(TipoVector::NaNDeComponentes(), TipoVector::NaNDeComponentes()); res[1].Asignar(TipoVector::NaNDeComponentes(), TipoVector::NaNDeComponentes()); } } template static bool BoundingBoxValido(const TipoVector* bb) { return ( !(bb[0].EsInvalido()) && !(bb[1].EsInvalido()) ); } // Intercambia los valores de p0 a p1 y viceversa static void IntercambiarValores(Vector& p0, Vector& p1) { const Vector& temp = p0; p0 = p1; p1 = temp; } inline Vector& operator=(const Vector& otro) { x = (TComp) otro.x; y = (TComp) otro.y; return *this; } inline Vector& operator=(const TComp* const v) { x = (TComp) v[0]; y = (TComp) v[1]; return *this; } inline bool operator==(const Vector& otro) const { #if defined EXACT_COMPARION return ( x == (TComp) otro.x ) && ( y == (TComp) otro.y ); #else return this->NearlyEqual(otro); #endif } inline bool NearlyEqual(const Vector& otro) const { return (*this - otro).ValorAbsoluto() < Vector(EpsilonDeComponentes(), EpsilonDeComponentes()); } inline bool NearlyNotEqual(const Vector& otro) const { return !NearlyEqual(otro); } inline bool operator<(const Vector& otro) const { return ( (x < otro.x) && (y < otro.y)); } inline bool operator<=(const Vector& otro) const { return (*this < otro) || this->NearlyEqual(otro); } inline bool operator>(const Vector& otro) const { return ( (x > otro.x) && (y > otro.y)); } inline bool operator>=(const Vector& otro) const { return (*this > otro) || this->NearlyEqual(otro); } inline bool operator!=(const Vector& otro) const { return !(*this == otro); } inline Vector operator*(const Vector& otro) const { return Vector(*this) *= otro; } inline Vector& operator*=(const Vector& otro) { x *= otro.x; y *= otro.y; return *this; } inline Vector operator*(const TComp& valor) const { return Vector(*this) *= (TComp) valor; } inline Vector& operator*=(const TComp& valor) { x *= (TComp) valor; y *= (TComp) valor; return *this; } inline Vector operator/(const Vector& otro) const { return Vector(*this) /= otro; } inline Vector& operator/=(const Vector v) { x /= v.x; y /= v.y; return *this; } inline Vector operator/(const TComp& v) const { return Vector(*this) /= v; } inline Vector& operator/=(const TComp& v) { x /= v; y /= v; return *this; } inline Vector operator-(const Vector& otro) const { return Vector(*this) -= otro; } inline Vector& operator-=(const Vector& otro) { x -= otro.x; y -= otro.y; return *this; } inline Vector operator-(const TComp& valor) const { return Vector(*this) -= valor; } /** Unary minus **/ inline Vector operator-() const { return Vector(-x, -y); } inline Vector& operator-=(const TComp& valor) { x -= valor; y -= valor; return *this; } inline Vector operator+(const Vector& otro) const { return Vector(*this) += otro; } inline Vector& operator+=(const Vector& otro) { x += otro.x; y += otro.y; return *this; } inline Vector operator+(const TComp& valor) const { return Vector(*this) += valor; } inline Vector& operator+=(const TComp& valor) { x += (TComp) valor; y += (TComp) valor; return *this; } inline operator TComp *() { return v; } inline operator const TComp *() const { return v; } //---------------------------------------------- //-- Accesores //---------------------------------------------- inline TComp& operator [] (int i) { return v[i]; } inline friend std::ostream& operator<<(std::ostream& out, const Vector& c) { out << "[ x = " << c.x << ", y = " << c.y << " ]"; return out; } inline friend std::ostream& operator<<(std::ostream& out, const Vector* const c) { if (c == NULL) { out << "[ NULL ]"; } else { out << *c; } return out; } }; inline GNC::GCS::Vector operator+(int val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val + o.x, (GNC::GCS::Vector::TComp)val + o.y ); } inline GNC::GCS::Vector operator+(float val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val + o.x, (GNC::GCS::Vector::TComp)val + o.y ); } inline GNC::GCS::Vector operator+(double val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val + o.x, (GNC::GCS::Vector::TComp)val + o.y ); } inline GNC::GCS::Vector operator-(int val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val - o.x, (GNC::GCS::Vector::TComp)val - o.y ); } inline GNC::GCS::Vector operator-(float val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val - o.x, (GNC::GCS::Vector::TComp)val - o.y ); } inline GNC::GCS::Vector operator-(double val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val - o.x, (GNC::GCS::Vector::TComp)val - o.y ); } inline GNC::GCS::Vector operator*(int val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val * o.x, (GNC::GCS::Vector::TComp)val * o.y ); } inline GNC::GCS::Vector operator*(float val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val * o.x, (GNC::GCS::Vector::TComp)val * o.y ); } inline GNC::GCS::Vector operator*(double val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val * o.x, (GNC::GCS::Vector::TComp)val * o.y ); } inline GNC::GCS::Vector operator/(int val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val / o.x, (GNC::GCS::Vector::TComp)val / o.y ); } inline GNC::GCS::Vector operator/(float val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val / o.x, (GNC::GCS::Vector::TComp)val / o.y ); } inline GNC::GCS::Vector operator/(double val, const Vector& o) { return GNC::GCS::Vector( (GNC::GCS::Vector::TComp)val / o.x, (GNC::GCS::Vector::TComp)val / o.y ); } class Matriz { public: typedef PRECISION_COMPONENTE_POR_DEFECTO TComp; typedef PRECISION_REALES_POR_DEFECTO TReal; typedef Vector TVector; typedef Matriz TMatriz; TReal a00; TReal a01; TReal a10; TReal a11; inline Matriz() { a00 = a01 = a10 = a11 = (TReal) 0.0f; } inline Matriz(const TComp& a00, const TComp& a01, const TComp& a10, const TComp& a11) { this->a00 = (TReal) a00; this->a01 = (TReal) a01; this->a10 = (TReal) a10; this->a11 = (TReal) a11; } inline Matriz(const Matriz& otra) { a00 = otra.a00; a01 = otra.a01; a10 = otra.a10; a11 = otra.a11; } inline static Matriz MatrizRotacion(const TComp& angulo) { return Matriz(std::cos(angulo), -std::sin(angulo), std::sin(angulo), std::cos(angulo)); } inline Matriz ProductoMatricial(const Matriz& otra) const { return TMatriz( a00 * otra.a00 + a01 * otra.a10, a00 * otra.a01 + a01 * otra.a11, a10 * otra.a00 + a11 * otra.a10, a10 * otra.a01 + a11 * otra.a11); } inline TVector ProductoMatricial(const TVector& otro) const { return Vector( (TVector::TComp)( a00 * (TReal) otro.x + a01 * (TReal) otro.y ), (TVector::TComp)( a10 * (TReal) otro.x + a11 * (TReal) otro.y ) ); } inline friend std::ostream& operator<<(std::ostream& out, const Matriz& m) { out << "[ a00 = " << m.a00 << ", a01 = " << m.a01 << "; " << std::endl; out << " a10 = " << m.a10 << ", a11 = " << m.a11 << " ]"; return out; } inline friend std::ostream& operator<<(std::ostream& out, const Matriz* m) { if (m == NULL) { out << "[ NULL ]"; } else { out << *m; } return out; } }; /* Devuelve un nuevo vector rotado el vector sobre el eje de coordenadas Z */ inline Vector Vector::RotacionSobreZ(const TReal& angulo) const { return Matriz::MatrizRotacion(angulo).ProductoMatricial(*this); } inline Vector Vector::RotacionSobreZ(const Vector& centro, const TReal& angulo) const { return centro + Matriz::MatrizRotacion(angulo).ProductoMatricial(*this - centro); } } } #else #endif #endif ginkgocadx-3.8.7/cadxcore/api/math/geometry3d.h000066400000000000000000001036521314736454600214200ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef GEOMETRY3D_H #define GEOMETRY3D_H #if defined(max) #undef max #endif #if defined(min) #undef min #endif #include #include #include #include #include #include #include #define GEOMETRY3D_NO_TEMPLATE #if defined(GEOMETRY3D_NO_TEMPLATE) namespace GNC { namespace GCS { class Matriz3x3; class Vector3D { public: typedef PRECISION_COMPONENTE_POR_DEFECTO TComp; typedef PRECISION_REALES_POR_DEFECTO TReal; TComp v[4]; // Coordenadas TComp& x; // Coordenada X TComp& y; // Coordenada Y TComp& z; // Coordenada Z TComp& t; // Coordenada Z public: static const Vector3D NaN() { return Vector3D(NaNDeComponentes(), NaNDeComponentes(), NaNDeComponentes()); } static const Vector3D Inf() { return Vector3D(InfinitoDeComponentes(), InfinitoDeComponentes(), InfinitoDeComponentes()); } static const Vector3D Zero() { return Vector3D(); } static const Vector3D Unidad() { return Vector3D(1.0, 1.0, 1.0); } //---------------------------------------------- //-- Constructores y destructores //---------------------------------------------- inline Vector3D() : x(v[0]), y(v[1]), z(v[2]), t(v[3]) { x = (TComp) 0.0f; y = (TComp) 0.0f; z = (TComp) 0.0f; t = (TComp) 1.0f; } /* Constructor copia transparente */ inline Vector3D(const Vector3D& b) : x(v[0]), y(v[1]), z(v[2]), t(v[3]) { x = (TComp) b.x; y = (TComp) b.y; z = (TComp) b.z; t = (TComp) b.t; } template inline Vector3D(const TipoComp1& valX, const TipoComp2& valY, const TipoComp3& valZ) : x(v[0]), y(v[1]), z(v[2]), t(v[3]) { x = (TComp) valX; y = (TComp) valY; z = (TComp) valZ; t = (TComp) 1.0; } template inline Vector3D(const TipoComp* const valor) : x(v[0]), y(v[1]), z(v[2]), t(v[3]) { x = (TComp) valor[0]; y = (TComp) valor[1]; z = (TComp) valor[2]; t = (TComp) 1.0; } ~Vector3D() { } //---------------------------------------------- //-- Asignacion explicita //---------------------------------------------- /* Asigna las coordenadas al vector */ template inline Vector3D& Asignar(const TipoComp1& valX, const TipoComp2& valY, const TipoComp3& valZ) { x = (TComp) valX; y = (TComp) valY; z = (TComp) valZ; t = (TComp) 1.0; return (*this); } /* Asigna el valor a todas las coordenadas del vector */ template inline Vector3D& Asignar(const TipoComp& valor) { x = (TComp) valor; y = (TComp) valor; z = (TComp) valor; t = (TComp) 1.0; return *this; } //---------------------------------------------- //-- Load and Store //---------------------------------------------- /* Load from array (interpret ncomp components) */ template inline void Load(int ncomp, TipoComp* mem) { for (int i = 0; i < 4; ++i) { if (i < ncomp) { v[i] = (TComp) mem[i]; } else { if (v[i] == 3) { v[i] = (TComp)0.0; } else { v[i] = (TComp)1.0; } } } } /* Store to array (interpret ncomp components) */ template inline void Store(int ncomp, TipoComp* mem) const { for (int i = 0; i < 4; ++i) { if (i < ncomp) { mem[i] = (TipoComp) v[i]; } } } //---------------------------------------------- //-- Normas Vectoriales, Distancias y Producto Interior //---------------------------------------------- inline TComp Norma1() const { return std::abs(x) + std::abs(y) + std::abs(z); } /* Devuelve la norma 2 (euclidea) al cuadrado */ inline TComp Norma2Cuadrado() const { return (TReal)x * (TReal)x + (TReal)y * (TReal)y + (TReal)z * (TReal)z; } /* Devuelve la norma 2 (euclidea) */ inline TReal Norma2() const { return std::sqrt((TReal) (*this).Norma2Cuadrado()); } inline TReal NormaEnesima(unsigned int n) const { return std::pow( std::pow((TReal)x, (TReal)n) + std::pow((TReal)y, (TReal)n) + std::pow((TReal)z, (TReal)n), (TReal)1.0f / (TReal)n); } inline TComp NormaInfinito() const { return std::max(x, std::max(y, z)); } /* Devuelve la distancia euclidea a "b" */ inline TReal DistanciaEuclidea(const Vector3D& b) const { const Vector3D& a = *this; return std::sqrt( (double) (b - a).Norma2Cuadrado() ); } /* Devuelve el cuadrado de la distancia euclidea */ inline TReal DistanciaEuclideaCuadrado(const Vector3D& b) const { const Vector3D& a = *this; return (b - a).Norma2Cuadrado(); } /* Normaliza un vector teniendo en cuenta singularidades */ inline Vector3D& Normalizar() { Vector3D& a = (*this); const TReal& norma = a.Norma2(); if ( std::abs(norma) < EpsilonDeReales()) { a.Asignar( (TComp)0.0, (TComp)0.0f, (TComp)0.0); } else { a /= norma; } return a; } /* Devuelve el vector normalizado teniendo en cuenta singularidades */ inline Vector3D Normalizado() const { return Vector3D(*this).Normalizar(); } /* Devuelve el producto escalar por b */ inline TReal ProductoEscalar(const Vector3D& b) const { const Vector3D& a = *this; return ((TReal)a.x * (TReal)b.x) + ((TReal)a.y * (TReal)b.y) + ((TReal)a.z * (TReal)b.z); } /* Devuelve el producto vectorial w = u x v = (u_y v_z - u_z v_y) i + (u_z v_x - u_x v_z) j + (u_x v_y - u_y v_x) k | i j k | | u.x u.y u.z | = { (u.y*v.z - u.z*v.y), (u.z*v.x - u.x*v.z), (u.x*v.y - u.y*v.x) } | v.x v.y v.z | */ inline Vector3D ProductoVectorial(const Vector3D& v) const { const Vector3D& u = *this; return Vector3D( ((TReal)u.y * (TReal)v.z) - ((TReal)u.z * (TReal)v.y), ((TReal)u.z * (TReal)v.x) - ((TReal)u.x * (TReal)v.z), ((TReal)u.x * (TReal)v.y) - ((TReal)u.y * (TReal)v.x) ); } //---------------------------------------------- //-- Angulos //---------------------------------------------- /* Devuelve el angulo { entre [0, PI) } que forma con "b" */ inline TReal Angulo(const Vector3D& b) const { const Vector3D& a = (*this); const TReal& angulo = std::acos( ((TReal) a.ProductoEscalar(b)) / (a.Norma2() * b.Norma2()) ); return angulo; } //---------------------------------------------- //-- Ajuste e interpolacion //---------------------------------------------- //---------------------------------------------- //-- Componentes //---------------------------------------------- /* Devuelve la mayor de las componentes */ inline const TComp& Mayor() const { return x > y ? (x > z ? x : z) : (y > z ? y : z); } /* Devuelve la menor de las componentes */ inline const TComp& Menor() const { return x > y ? (y > z ? z : y) : (x > z ? z : x ); } /* Returns the dominant component index (x==0, y==1, z==2) */ inline int GetDominantIndex() const { return x > y ? (y > z ? 2 : 1) : (x > z ? 2 : 0 ); } //---------------------------------------------- //-- Constantes //---------------------------------------------- static inline TComp InfinitoDeComponentes() { return std::numeric_limits::infinity(); } static inline TReal InfinitoDeReales() { return std::numeric_limits::infinity(); } static inline TComp NaNDeComponentes() { return std::numeric_limits::quiet_NaN(); } static inline TReal NaNDeReales() { return std::numeric_limits::quiet_NaN(); } static inline TComp EpsilonDeComponentes() { return std::numeric_limits::epsilon(); } static inline TReal EpsilonDeReales() { return std::numeric_limits::epsilon(); } //---------------------------------------------- //-- Comprobaciones //---------------------------------------------- inline bool EsNulo() const { #if defined(EXACT_COMPARISON) return x == 0.0 && y == 0.0 && z == 0.0; #else return ((*this) - Zero()).ValorAbsoluto().NearlyEqual(Zero()); #endif } inline bool EsInvalido() const { return (x != x) || (y != y) || (z != z); } inline bool EsNaN() const { return (x != x) || (y != y) || (z != z); } //---------------------------------------------- //-- Geometria //---------------------------------------------- /** Devuelve el punto de interseccion entre una recta y un plano La recta **/ static Vector3D InterseccionEntreRectaYPlano(const Vector3D& punto_recta, const Vector3D& vdir_recta, const Vector3D& centro_plano, const Vector3D& vnorm_plano) { TReal numerador = (centro_plano - punto_recta).ProductoEscalar(vnorm_plano); TReal denominador = vdir_recta.ProductoEscalar(vnorm_plano); TReal distancia = 0.0; if (std::abs(denominador) < EpsilonDeReales()) { if (std::abs(numerador) < EpsilonDeReales()) { // Colineales return punto_recta; } else { return Inf(); // Paralelos. Se cortan en el infinito } } else { distancia = numerador / denominador; return punto_recta + vdir_recta * distancia; } } /* Devuelve el punto medio entre dos vectores */ inline Vector3D PuntoMedio(const Vector3D& b) const { const Vector3D& a = (*this); return (a + b) / 2.0f; } /* Devuelve el punto de la proyeccion ortogonal del punto sobre la recta definida por p0 y p1 */ inline Vector3D ProyeccionOrtogonalSobreRecta(const Vector3D& p0, const Vector3D& p1) const { typedef Vector3D V; V vdir = p1 - p0; V::TComp proj = ( (*this) - p0).ProductoEscalar(vdir); return p0 + (vdir * proj); } /* Devuelve la distancia del punto a la recta definida por p0 y p1 */ inline TReal DistanciaARecta(const Vector3D& p0, const Vector3D& p1) const { return (ProyeccionOrtogonalSobreRecta(p0, p1) - (*this)).Norma2(); } /* Devuelve el cuadrado de la distancia del punto a la recta definida por p0 y p1 */ inline TComp DistanciaARectaCuadrado(const Vector3D& p0, const Vector3D& p1) const { return (ProyeccionOrtogonalSobreRecta(p0, p1) - (*this)).Norma2Cuadrado(); } //---------------------------------------------- //-- Acotaciones //---------------------------------------------- /** Return signs ( -1.0 if < -epsilon, 1.0 if > epsilon 0.0 otherwise) */ inline Vector3D Sign() const { Vector3D signs; const TComp lower = -EpsilonDeComponentes(); const TComp upper = EpsilonDeComponentes(); for (int i = 0; i < 3; i++) { const TComp& val = v[i]; TComp& sign = signs.v[i]; if (val < lower) { sign = -1.0; } else if (val > upper) { sign = 1.0; } else { sign = 0.0; } } return signs; } /** Stabilize at 0.0 (ignore if desv from zero > eps) */ inline Vector3D& Stabilize() { TComp trunc = EpsilonDeComponentes(); for (int i = 0; i < 3; i++) { TComp& val = v[i]; if (val > 0.0) { if (val < trunc) { val = 0.0; } } else if (val < 0.0) { if (std::abs(val) < trunc) { val = 0.0; } } } return *this; } /** Return a new vector stabilized at 0.0 (ignore if desv from zero > eps) */ inline Vector3D Stabilized() const { return Vector3D(*this).Stabilize(); } inline Vector3D ValorAbsoluto() { return Vector3D(std::abs(x), std::abs(y), std::abs(z)); } inline Vector3D TruncadoAMaximo(const TComp& val) const { return Vector3D(*this).TruncarAMaximo(val); } inline Vector3D TruncadoAMinimo(const TComp& val) const { return Vector3D(*this).TruncarAMinimo(val); } inline Vector3D& TruncarAMaximo(const TComp& val) { x = std::max(x, val); y = std::max(y, val); z = std::max(z, val); t = (TComp) 1.0; return *this; } inline Vector3D& TruncarAMinimo(const TComp& val) { x = std::min(x, val); y = std::min(y, val); z = std::min(z, val); t = (TComp) 1.0; return *this; } inline Vector3D TruncadoAMaximo(TComp valx, TComp valy, TComp valz) const { return Vector3D(*this).TruncarAMaximo(valx, valy, valz); } inline Vector3D TruncadoAMinimo(TComp valx, TComp valy, TComp valz) const { return Vector3D(*this).TruncarAMinimo(valx, valy, valz); } inline Vector3D& TruncarAMaximo(TComp valx, TComp valy, TComp valz) { x = std::max(x, valx); y = std::max(y, valy); z = std::max(z, valz); t = (TComp) 1.0; return *this; } inline Vector3D& TruncarAMinimo(TComp valx, TComp valy, TComp valz) { x = std::min(x, valx); y = std::min(y, valy); z = std::min(z, valz); t = (TComp) 1.0; return *this; } inline TComp ComponenteMaxima() const { return std::max(x,std::max(y, z)); } inline TComp ComponenteMinima() const { return std::min(x,std::min(y, z)); } static inline Vector3D ComponentesMaximas(const Vector3D& a, const Vector3D& b) { return Vector3D(std::max(a.x, b.x), std::max(a.y, b.y), std::max(a.z, b.z)); } static inline Vector3D ComponentesMinimas(const Vector3D& a, const Vector3D& b) { return Vector3D(std::min(a.x, b.x), std::min(a.y, b.y), std::min(a.z, b.z)); } inline Vector3D& AsignarMaximos(const Vector3D& o) { x = std::max(x, o.x); y = std::max(y, o.y); z = std::max(x, o.z); t = (TComp) 1.0; return *this; } inline Vector3D& AsignarMinimos(const Vector3D& o) { x = std::min(x, o.x); y = std::min(y, o.y); z = std::min(z, o.z); t = (TComp) 1.0; return *this; } inline Vector3D Maximos(const Vector3D& o) const { return Vector3D(std::max(x, o.x), std::max(y, o.y), std::max(z, o.z)); } inline const Vector3D Minimos(const Vector3D& o) const { return Vector3D(std::min(x, o.x), std::min(y, o.y), std::min(z, o.z)); } inline bool TieneComponenteMayorQue(const Vector3D& o) const { return ( (x > o.x) || (y > o.y) || (z > o.z)); } inline bool TieneComponenteMenorQue(const Vector3D& o) const { return ( (x < o.x) || (y < o.y) || (z < o.z)); } /* Devuelve verdadero si el vector es singular (distancia a (0,0) < epsilon =~ (0,0) ) */ inline bool Singular() const { return std::abs(x) < EpsilonDeComponentes() || std::abs(y) < EpsilonDeComponentes() || std::abs(z) < EpsilonDeComponentes(); } inline Vector3D RedondeoAlza() const { return Vector3D(*this).RedondearAlza(); } inline Vector3D& RedondearAlza() { x = std::ceil(x); y = std::ceil(y); z = std::ceil(z); t = (TComp) 1.0; return *this; } inline Vector3D RedondeoBaja() const { return Vector3D(*this).RedondearBaja(); } inline Vector3D& RedondearBaja() { x = std::floor(x); y = std::floor(y); z = std::floor(z); t = (TComp) 1.0; return *this; } template static TipoComp ValorRedondeado(const TipoComp& val) { const TipoComp& d = std::floor(val); const TipoComp& u = std::ceil(val); if ( val - d < u - val) { return d; } else { return u; } } inline Vector3D Redondeado() const { return Vector3D(*this).Redondear(); } inline Vector3D& Redondear() { x = ValorRedondeado(x); y = ValorRedondeado(y); z = ValorRedondeado(z); t = (TComp) 1.0; return *this; } // Calcula y devuelve el centroide de una coleccion de puntos. template static Vector3D Centroide(const TipoVector v[], const int& numVertices) { Vector3D vSum; if (numVertices > 0) { for (int i = 0; i < numVertices; ++i) { vSum += v[i]; } vSum /= (TComp)numVertices; } return vSum; } // Calcula y devuelve el centroide de una coleccion de puntos. template static Vector3D Centroide(const std::list& lista) { typename std::list::const_iterator i = lista.begin(); Vector3D vSum; if (i != lista.end()) { for ( i = lista.begin(); i != lista.end(); i++) { vSum += (*i); } vSum /= (TComp)lista.size(); } return vSum; } // Intercambia los valores de p0 a p1 y viceversa template static void IntercambiarValores(Vector3D& p0, Vector3D& p1) { const Vector3D temp(p0); p0 = p1; p1 = temp; } inline Vector3D& operator=(const Vector3D& otro) { v[0] = (TComp) otro.v[0]; v[1] = (TComp) otro.v[1]; v[2] = (TComp) otro.v[2]; v[3] = (TComp) otro.v[3]; return *this; } template inline Vector3D& operator=(const TipoComp* const vec) { v[0] = (TComp) vec[0]; v[1] = (TComp) vec[1]; v[2] = (TComp) vec[2]; //v[3] = (TComp) vec[3]; v[3] = 1.0; return *this; } inline bool operator==(const Vector3D& otro) const { #if defined(EXACT_COMPARION) return ( x == (TComp) otro.x ) && ( y == (TComp) otro.y ) && ( z == (TComp) otro.z ); #else return this->NearlyEqual(otro); #endif } inline bool NearlyEqual(const Vector3D& otro) const { return (*this - otro).ValorAbsoluto() < Vector3D(EpsilonDeComponentes(), EpsilonDeComponentes(), EpsilonDeComponentes()); } inline bool NearlyNotEqual(const Vector3D& otro) const { return !NearlyEqual(otro); } inline bool operator!=(const Vector3D& otro) const { return !(*this == otro); } inline Vector3D operator*(const Vector3D& otro) const { return Vector3D(x * otro.x, y * otro.y, z * otro.z); } inline Vector3D& operator*=(const Vector3D& otro) { x *= otro.x; y *= otro.y; z *= otro.z; t = (TComp) 1.0; return *this; } template inline Vector3D operator*(const TipoComp& valor) const { return Vector3D(x * valor, y * valor, z * valor); } template inline Vector3D& operator*=(const TipoComp& valor) { x *= (TComp) valor; y *= (TComp) valor; z *= (TComp) valor; t = (TComp) 1.0; return *this; } inline Vector3D operator/(const Vector3D& otro) const { return Vector3D(x / otro.x, y / otro.y, z / otro.z); } inline Vector3D& operator/=(const Vector3D v) { x /= v.x; y /= v.y; z /= v.z; t = (TComp) 1.0; return *this; } template inline Vector3D operator/(const TipoComp& v) const { return Vector3D(x / v, y / v, z / v); } template inline Vector3D& operator/=(const TipoComp& v) { x /= v; y /= v; z /= v; t = (TComp) 1.0; return *this; } inline Vector3D operator-(const Vector3D& otro) const { return Vector3D(x - otro.x, y - otro.y, z - otro.z); } inline Vector3D& operator-=(const Vector3D& otro) { x -= otro.x; y -= otro.y; z -= otro.z; t = (TComp) 1.0; return *this; } inline Vector3D operator-(const TComp& valor) const { return Vector3D(x - valor, y - valor, z - valor); } /** Unary minus **/ inline Vector3D operator-() const { return Vector3D(-x, -y, -z); } inline Vector3D& operator-=(const TComp& valor) { x -= valor; y -= valor; z -= valor; t = (TComp) 1.0; return *this; } inline Vector3D operator+(const Vector3D& otro) const { return Vector3D(x + otro.x, y + otro.y, z + otro.z); } inline Vector3D& operator+=(const Vector3D& otro) { x += otro.x; y += otro.y; z += otro.z; t = (TComp) 1.0; return *this; } inline Vector3D operator+(const TComp& valor) const { Vector3D t(*this); return t += valor; } inline Vector3D& operator+=(const TComp& valor) { x += (TComp) valor; y += (TComp) valor; z += (TComp) valor; t = (TComp) 1.0; return *this; } inline bool operator<(const Vector3D& otro) const { return ( (x < otro.x) && (y < otro.y) && (z < otro.z) ); } inline bool operator<=(const Vector3D& otro) const { return ( (*this) < otro ) || this->NearlyEqual(otro); } inline bool operator>(const Vector3D& otro) const { return ( (x > otro.x) && (y > otro.y) && (z > otro.z) ); } inline bool operator>=(const Vector3D& otro) const { return ( (*this) < otro ) || this->NearlyEqual(otro); } inline operator TComp *() { return v; } inline operator const TComp *() const { return v; } //---------------------------------------------- //-- Utils //---------------------------------------------- inline bool InsideOpenedBoundingBox(const Vector3D& p0, const Vector3D& p1) const { bool vx = false; bool vy = false; bool vz = false; if (p0.x < p1.x) { vx = (p0.x < x && x < p1.x); } else { vx = (p1.x < x && x < p0.x); } if (p0.y < p1.y) { vy = (p0.y < y && y < p1.y); } else { vy = (p1.y < y && y < p0.y); } if (p0.z < p1.z) { vz = (p0.z < z && z < p1.z); } else { vz = (p1.z < z && z < p0.z); } return vx && vy && vz; } inline bool InsideClosedBoundingBox(const Vector3D& p0, const Vector3D& p1) const { bool vx = false; bool vy = false; bool vz = false; if (p0.x < p1.x) { vx = (p0.x <= x && x <= p1.x); } else { vx = (p1.x <= x && x <= p0.x); } if (p0.y < p1.y) { vy = (p0.y <= y && y <= p1.y); } else { vy = (p1.y <= y && y <= p0.y); } if (p0.z < p1.z) { vz = (p0.z <= z && z <= p1.z); } else { vz = (p1.z <= z && z <= p0.z); } return vx && vy && vz; } inline void InitBoundingBox(Vector3D& p0, Vector3D& p1) const { p0 = p1 = *this; } inline void InitBoundingBox(Vector3D bBox[2]) const { InitBoundingBox(bBox[0], bBox[1]); } inline void ExtendBoundingBox(Vector3D& p0, Vector3D& p1) const { if (p0.x <= p1.x) { if (x < p0.x) { p0.x = x; } else if (x > p1.x) { p1.x = x; } } else { if (x < p1.x) { p1.x = x; } else if (x > p0.x) { p0.x = x; } } if (p0.y <= p1.y) { if (y < p0.y) { p0.y = y; } else if (y > p1.y) { p1.y = y; } } else { if (y < p1.y) { p1.y = y; } else if (y > p0.y) { p0.y = y; } } if (p0.z <= p1.z) { if (z < p0.z) { p0.z = z; } else if (z > p1.z) { p1.z = z; } } else { if (z < p1.z) { p1.z = z; } else if (z > p0.z) { p0.z = z; } } } inline void ExtendBoundingBox(Vector3D bBox[2]) const { ExtendBoundingBox(bBox[0], bBox[1]); } //---------------------------------------------- //-- Accesores //---------------------------------------------- inline TComp& operator [] (int i) { return v[i]; } inline friend std::ostream& operator<<(std::ostream& out, const Vector3D& c) { out << "[ x = " << c.x << ", y = " << c.y << ", z = " << c.z << " ]"; return out; } inline friend std::ostream& operator<<(std::ostream& out, const Vector3D* const c) { if (c == NULL) { out << "[ NULL ]"; } else { out << *c; } return out; } }; template inline Vector3D operator+(const TipoComp val, const Vector3D& o) { return Vector3D( (Vector3D::TComp)val + o.x, (Vector3D::TComp)val + o.y, (Vector3D::TComp)val + o.z ); } template inline Vector3D operator-(const TipoComp val, const Vector3D& o) { return Vector3D( (Vector3D::TComp)val - o.x, (Vector3D::TComp)val - o.y, (Vector3D::TComp)val - o.z ); } template inline Vector3D operator*(const TipoComp val, const Vector3D& o) { return Vector3D( (Vector3D::TComp)val * o.x, (Vector3D::TComp)val * o.y, (Vector3D::TComp)val * o.z ); } template inline Vector3D operator/(const TipoComp val, const Vector3D& o) { return Vector3D( (Vector3D::TComp)val / o.x, (Vector3D::TComp)val / o.y, (Vector3D::TComp)val / o.z ); } class Matriz3x3 { public: typedef PRECISION_COMPONENTE_POR_DEFECTO TComp; typedef PRECISION_REALES_POR_DEFECTO TReal; TReal v[9]; TReal& a00; TReal& a01; TReal& a02; TReal& a10; TReal& a11; TReal& a12; TReal& a20; TReal& a21; TReal& a22; inline Matriz3x3() : a00(v[0]), a01(v[1]), a02(v[2]), a10(v[3]), a11(v[4]), a12(v[5]), a20(v[6]), a21(v[7]), a22(v[8]) { for (int i = 0; i < 9; i++) { v[i] = 0.0; } } inline Matriz3x3(const Matriz3x3& otra) : a00(v[0]), a01(v[1]), a02(v[2]), a10(v[3]), a11(v[4]), a12(v[5]), a20(v[6]), a21(v[7]), a22(v[8]) { *this = otra; } inline Matriz3x3& operator = (const Matriz3x3& otra) { for (int i = 0; i < 9; i++) { v[i] = otra.v[i]; } return *this; } inline friend std::ostream& operator<<(std::ostream& out, const Matriz3x3& m) { out << "[ a00 = " << m.a00 << ", a01 = " << m.a01 << ", a02 = " << m.a02 << "; " << std::endl; out << "[ a10 = " << m.a10 << ", a11 = " << m.a11 << ", a12 = " << m.a12 << "; " << std::endl; out << "[ a20 = " << m.a20 << ", a21 = " << m.a21 << ", a22 = " << m.a22 << "]"; return out; } inline friend std::ostream& operator<<(std::ostream& out, const Matriz3x3* m) { if (m == NULL) { out << "[ NULL ]"; } else { out << *m; } return out; } }; } } #endif #endif ginkgocadx-3.8.7/cadxcore/api/math/geometry_defs.h000066400000000000000000000023371314736454600221700ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #define PRECISION_COMPONENTE_POR_DEFECTO double #define PRECISION_REALES_POR_DEFECTO double //#define EXACT_COMPARION // use exact comparison with == or treat nearly distances (< epsilon) as equal. #ifdef _WIN32 #ifndef M_PI #define M_PI 3.14159265358979323846 #endif #ifndef M_PI_2 #define M_PI_2 1.57079632679489661923 #endif #endif #ifndef M_PI_4 #define M_PI_4 M_PI * 0.25f #endif #ifndef M_2PI #define M_2PI 6.28318530717958647692 #endif ginkgocadx-3.8.7/cadxcore/api/observers/000077500000000000000000000000001314736454600202375ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/observers/ieventsobserver.cpp000066400000000000000000000025371314736454600241770ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ieventsobserver.h" #include GNC::GCS::IEventsObserver::IEventsObserver() { //m_pControlador = NULL; } GNC::GCS::IEventsObserver::~IEventsObserver() { GNC::GCS::IEventsController::Instance()->DesRegistrar(this); } /* void GNC::GCS::IEventsObserver::OnRegistrar (IControladorEventos* pControlador) { m_pControlador = pControlador; } */ void GNC::GCS::IEventsObserver::PreProcesarEvento(GNC::GCS::Events::IEvent*, std::list& ) { } bool GNC::GCS::IEventsObserver::FiltrarEvento(GNC::GCS::Events::IEvent *) { return false; } ginkgocadx-3.8.7/cadxcore/api/observers/ieventsobserver.h000066400000000000000000000032731314736454600236420ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IEVENTSOBSERVER_H #define IEVENTSOBSERVER_H #include #include namespace GNC { namespace GCS { namespace Events { class IEvent; } class IEventsController; } } namespace GNC { namespace GCS { //==================================================================================================== //= Interfaz del observador de eventos //==================================================================================================== class EXTAPI IEventsObserver { public: IEventsObserver(); virtual ~IEventsObserver(); //virtual void OnRegistrar (IControladorEventos* pControlador); virtual void PreProcesarEvento(GNC::GCS::Events::IEvent*, std::list& ); virtual bool FiltrarEvento(GNC::GCS::Events::IEvent*); virtual void ProcesarEvento(GNC::GCS::Events::IEvent* evt) = 0; protected: //IControladorEventos* m_pControlador; }; } } #endif ginkgocadx-3.8.7/cadxcore/api/observers/iextensionsobserver.cpp000066400000000000000000000021531314736454600250640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iextensionsobserver.h" #include GNC::GCS::IExtensionsObserver::IExtensionsObserver() { } GNC::GCS::IExtensionsObserver::~IExtensionsObserver() { } void GNC::GCS::IExtensionsObserver::OnModuleActivated(GNC::GCS::IModuleController* ) { } void GNC::GCS::IExtensionsObserver::OnModuleDeactivated(GNC::GCS::IModuleController* ) { } ginkgocadx-3.8.7/cadxcore/api/observers/iextensionsobserver.h000066400000000000000000000026541314736454600245370ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include namespace GNC { namespace GCS { class IModuleController; } } namespace GNC { namespace GCS { class EXTAPI IExtensionsObserver { public: IExtensionsObserver(); virtual ~IExtensionsObserver(); /** The module is loaded **/ virtual void OnModuleLoaded(GNC::GCS::IModuleController* ) = 0; /** The module is unloaded **/ virtual void OnModuleUnloaded(GNC::GCS::IModuleController* ) = 0; /** The module is activated **/ virtual void OnModuleActivated(GNC::GCS::IModuleController* ); /** The module is deactivated **/ virtual void OnModuleDeactivated(GNC::GCS::IModuleController* ); }; } } ginkgocadx-3.8.7/cadxcore/api/observers/iviewsobserver.h000066400000000000000000000024201314736454600234640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once namespace GNC { namespace GCS { class IVista; } } namespace GNC { namespace GCS { /* Interfaz de observacion de vistas */ class EXTAPI IObservadorVistas { public: IObservadorVistas() {} virtual ~IObservadorVistas() {} //region "Interfaz de observacion de vistas" virtual void OnVistaActivada(GNC::GCS::IVista* /*pVista*/) {} // Opcionales virtual void OnVistaCreada(GNC::GCS::IVista* ) {} virtual void OnVistaDestruida(GNC::GCS::IVista* ) {} //endregion }; } } ginkgocadx-3.8.7/cadxcore/api/observers/iwidgetsobserver.h000066400000000000000000000035171314736454600240050ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once namespace GNC { namespace GCS { namespace Widgets { //region "Forward declarations" class IWidget; //endregion //----------------------------------------------------------------------------------------------- class IObservadorWidget { public: long GID; // GID de los widgets a escuchar (filtro por tipo) long VID; // VID de los widgets a escuchar (VistaID) /* Construye un observador que escucha eventos de widgets con un gid especifico */ IObservadorWidget(long vid, long gid=0) { SetVID(vid); SetGID(gid); } virtual ~IObservadorWidget() { } virtual void SetVID(long vid) { VID = vid; } virtual void SetGID(long gid) { GID = gid; } virtual void OnWidgetCreado(IWidget*) {} virtual void OnWidgetModificado(IWidget*) {} virtual void OnWidgetDestruido(IWidget*) {} virtual void OnWidgetSeleccionado(IWidget*) {} virtual void OnWidgetDeseleccionado(IWidget*) {} }; } } } ginkgocadx-3.8.7/cadxcore/api/threads/000077500000000000000000000000001314736454600176575ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/threads/thread.cpp000066400000000000000000000151051314736454600216340ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include GNC::GCS::ILockable GNC::GCS::ThreadController::Lock; //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- #if defined (_WINDOWS) #define MS_VC_EXCEPTION 0x406D1388 #pragma pack(push,8) typedef struct tagTHREADNAME_INFO { DWORD dwType; // Must be 0x1000. LPCSTR szName; // Pointer to name (in user addr space). DWORD dwThreadID; // Thread ID (-1=caller thread). DWORD dwFlags; // Reserved for future use, must be zero. } THREADNAME_INFO; #pragma pack(pop) void GNC::GCS::Threading::SetThreadName( long threadID, const std::string& threadName) { //Sleep(10); THREADNAME_INFO info; info.dwType = 0x1000; info.szName = threadName.c_str(); info.dwThreadID = threadID; info.dwFlags = 0; __try { RaiseException( MS_VC_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info ); } __except(EXCEPTION_EXECUTE_HANDLER) { } } #elif defined(__WXOSX__) #include #include void GNC::GCS::Threading::SetThreadName( long /*threadID*/, const std::string& threadName) { //pthread_setname_np(threadName.c_str()); } void FooSignalHandler(int sig) { GTRACE("SIGUSR1 recibido"); } #else #include #include void GNC::GCS::Threading::SetThreadName( long /*threadID*/, const std::string& /*threadName*/) { } void FooSignalHandler(int /*sig*/) { GTRACE("SIGUSR1 recibido"); } #endif //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- namespace GNC { namespace GCS { class ThreadAdaptorPrivate: public wxThread { protected: ThreadAdaptorPrivate(GNC::GCS::Thread* iface, wxThreadKind kind ) : wxThread(kind) { this->m_threadIface = iface; this->m_threadId = 0; } ~ThreadAdaptorPrivate() { } virtual void OnExit() { ; } virtual void* Entry() { GNC::GCS::Threading::SetThreadName( GetId(), this->m_threadIface->GetName()); try { return this->m_threadIface->Task(); } catch (GNC::GCS::IException& ex) { LOG_ERROR(_Std("Threading"), _Std("Error while running thread: ") << this->m_threadIface->GetName() << _Std(" : ") << ex.what() ); } catch (std::exception& ex) { LOG_ERROR(_Std("Threading"), _Std("Error while running thread: ") << this->m_threadIface->GetName() << _Std(" : ") << ex.what() ); } catch (...) { LOG_ERROR(_Std("Threading"), _Std("Internal error while running thread: ") << this->m_threadIface->GetName() ); } return NULL; } virtual void SetTid(unsigned long tid) { this->m_threadId = tid; } Thread* m_threadIface; unsigned long m_threadId; friend class ThreadController; }; } } //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- GNC::GCS::Thread::Thread(const std::string& name) { this->m_ThreadName = name; } const std::string& GNC::GCS::Thread::GetName() const { return this->m_ThreadName; } //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- GNC::GCS::ThreadController::ThreadMap GNC::GCS::ThreadController::RegisteredThreads; std::atomic GNC::GCS::ThreadController::TidCount(1); unsigned long GNC::GCS::ThreadController::Launch(Thread* thread, bool detached) { unsigned long tid = 0; ThreadAdaptorPrivate* threadPrivate = new ThreadAdaptorPrivate(thread, detached ? wxTHREAD_DETACHED : wxTHREAD_JOINABLE); threadPrivate->Create(); { tid = TidCount++; threadPrivate->SetTid(tid); GNC::GCS::ILocker lock(Lock); RegisteredThreads[tid] = threadPrivate; } threadPrivate->Run(); return tid; } void GNC::GCS::ThreadController::Stop(unsigned long tid) { GNC::GCS::ILocker lock(Lock); ThreadMap::iterator it = RegisteredThreads.find(tid); if (it != RegisteredThreads.end()) { ThreadAdaptorPrivate* threadPrivate = (*it).second; RegisteredThreads.erase(it); threadPrivate->m_threadIface->Stop(); threadPrivate->Wait(); delete threadPrivate; } } void GNC::GCS::ThreadController::Wait(unsigned long tid) { GNC::GCS::ILocker lock(Lock); ThreadMap::iterator it = RegisteredThreads.find(tid); if (it != RegisteredThreads.end()) { ThreadAdaptorPrivate* threadPrivate = (*it).second; threadPrivate->Wait(); RegisteredThreads.erase(it); } } void GNC::GCS::ThreadController::OnThreadExit(unsigned long tid) { GNC::GCS::ILocker lock(Lock); ThreadMap::iterator it = RegisteredThreads.find(tid); if (it != RegisteredThreads.end()) { ThreadAdaptorPrivate* threadPrivate = (*it).second; delete threadPrivate; RegisteredThreads.erase(it); } } ginkgocadx-3.8.7/cadxcore/api/threads/thread.h000066400000000000000000000044221314736454600213010ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include namespace GNC { namespace GCS { namespace Threading { void EXTAPI SetThreadName(long threadID, const std::string& threadName); } } } namespace GNC { namespace GCS { class ThreadAdaptorPrivate; //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- class EXTAPI Thread { public: Thread(const std::string& name = "thread"); virtual ~Thread() {} const std::string& GetName() const; virtual void Stop() = 0; protected: virtual void* Task() = 0; std::string m_ThreadName; friend class ThreadAdaptorPrivate; }; //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- class EXTAPI ThreadController { public: typedef std::map ThreadMap; static unsigned long Launch(Thread* thread, bool detached = true); static void Stop(unsigned long tid); static void Wait(unsigned long tid); static void Suspend(unsigned long tid); static void OnThreadExit(unsigned long tid); protected: static GNC::GCS::ILockable Lock; static std::atomic TidCount; private: static ThreadMap RegisteredThreads; }; } } ginkgocadx-3.8.7/cadxcore/api/toolsystem/000077500000000000000000000000001314736454600204475ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/toolsystem/itool.cpp000066400000000000000000000071521314736454600223060ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "itool.h" #include "itoolcontroller.h" #include #include
#include #include #include //revisado void GNC::GCS::ITool::RegisterTool() { GNC::GCS::IToolsRegistry::Instance()->RegisterTool(this); } /** Sets the Owner module of the tool (the module providing the tool). NULL if CADxCore **/ void GNC::GCS::ITool::SetOwnerModule(GNC::GCS::IModuleController* pOwner) { OwnerModule = pOwner; } /** Gets the Owner module of the tool (the module providing the tool). NULL if CADxCore **/ GNC::GCS::IModuleController* GNC::GCS::ITool::GetOwnerModule() { return OwnerModule; } GNC::GCS::ITool::ITool(const ITool::UID& uid, const ITool::TToolFamily& uidFamilia, const std::string& nombre, const wxBitmap& icon, const int subFamilia, const int& prioridad) : ID(uid), FamilyId(uidFamilia), SubFamilyId(subFamilia), Priority(prioridad), Name(nombre), Icon(icon), m_pParent(NULL), OwnerModule(NULL), KeyCode(0), Enabled(true) { } GNC::GCS::ITool::~ITool() { } void GNC::GCS::ITool::AppendToolIn(wxGinkgoToolBar* pParent) { if (AppendsInToolBar()) { if (HasDropDownMenu()) { pParent->AddTool(this->ID, wxString::FromUTF8(Name.c_str()), Icon, wxString::FromUTF8(Name.c_str()), wxITEM_NORMAL); pParent->ForceSetToolDropDown(this->ID, true); } else { pParent->AddTool(this->ID, wxString::FromUTF8(Name.c_str()), Icon, wxString::FromUTF8(Name.c_str()), wxITEM_CHECK); pParent->ForceSetToolDropDown(this->ID, false); } pParent->EnableTool(this->ID, IsEnabled()); } } void GNC::GCS::ITool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { GNC::GUI::wxDefaultEvtHandlerTool* evtHandler = new GNC::GUI::wxDefaultEvtHandlerTool(pParent, this); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ID, wxString::FromUTF8(Name.c_str()),Icon, evtHandler)); } } void GNC::GCS::ITool::AppendDropDownMenu(wxEvtHandler* /*pParent*/, wxMenu* /*pMenu*/) { } void GNC::GCS::ITool::SetToolBar(GNC::GCS::IToolController* pParent) { m_pParent = pParent; } GNC::GCS::IToolController* GNC::GCS::ITool::GetToolBar() { return m_pParent; } void GNC::GCS::ITool::ConnectKeyEvents(wxWindow* /*pParent*/) { //implement in child } int GNC::GCS::ITool::GetKeyCode() { return KeyCode; } bool GNC::GCS::ITool::IsEnabled() { return Enabled; } /*If a tool is not active it wont be attached to any menu*/ bool GNC::GCS::ITool::IsReady() { return true; } void GNC::GCS::ITool::Enable(bool enabled) { Enabled = enabled; } ginkgocadx-3.8.7/cadxcore/api/toolsystem/itool.h000066400000000000000000000100661314736454600217510ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ITOOL_H #define ITOOL_H #include #include #include #include #include #include #include class wxXmlNode; class wxPanel; class wxSizer; class wxMenu; class wxGinkgoToolBar; class wxEvtHandler; namespace GNC { namespace GCS { class IVista; class ITool; class IToolController; class IModuleController; } } namespace GNC { namespace GCS { class EventHandlerITool; class EXTAPI ITool { public: typedef enum { TFamiliaGlobal, TFamiliaVisualizacion, TFamiliaMedicion, TFamiliaAnotacion, TFamiliaChroma, TFamiliaVision, TMenuArchivo, TMenuEdicion, TMenuVer, TSeriesMenu, TMenuHerramientas, TMenuHelp, TMenuExport, TMenuPACSAcquisition, TViewOptions } TToolFamily; typedef unsigned int UID; virtual ~ITool(); //new tool ITool(const ITool::UID& uid, const ITool::TToolFamily& familyUID, const std::string& name, const wxBitmap& icon, const int subFamily = 0xFFFFFFFF, const int& priority = 0); TToolFamily GetFamily() { return FamilyId; } int GetSubFamily() { return SubFamilyId; } virtual bool AppendsInGlobalMenu() { return false; } virtual bool AppendsInMenu() { return true; } virtual bool AppendsInToolBar() { return true; } virtual bool HasDropDownMenu() { return false; } virtual void AppendToolIn(wxGinkgoToolBar* pParent); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); virtual void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); virtual bool IsEnabled(); virtual void Enable(bool enabled); /*If a tool is not ready it wont be attached to any menu*/ virtual bool IsReady(); virtual bool ExecuteAction() = 0; /** Registers the tool in the Tool Registry Container **/ void RegisterTool(); /** Sets the Owner module of the tool (the module providing the tool). NULL if CADxCore **/ void SetOwnerModule(GNC::GCS::IModuleController* pOwner); /** Gets the Owner module of the tool (the module providing the tool). NULL if CADxCore **/ GNC::GCS::IModuleController* GetOwnerModule(); virtual GNC::GCS::ITool* NewTool() = 0; virtual void SetToolBar(GNC::GCS::IToolController* pParent); virtual GNC::GCS::IToolController* GetToolBar(); //register key events to this parent virtual void ConnectKeyEvents(wxWindow* pParent); virtual int GetKeyCode(); ITool::UID ID; TToolFamily FamilyId; //sirve para meter separadores en los menus dentro de la misma familia int SubFamilyId; int Priority; std::string Name; wxBitmap Icon; GNC::GCS::IToolController* m_pParent; IModuleController* OwnerModule; int KeyCode; protected: bool Enabled; // }; } } #endif ginkgocadx-3.8.7/cadxcore/api/toolsystem/itoolcontroller.cpp000066400000000000000000000020261314736454600244050ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "itoolcontroller.h" #include
GNC::GCS::IToolController::IToolController() { } GNC::GCS::IToolController::~IToolController() { } GNC::GCS::IToolController* GNC::GCS::IToolController::New() { return new GNC::ToolController(); } ginkgocadx-3.8.7/cadxcore/api/toolsystem/itoolcontroller.h000066400000000000000000000062351314736454600240600ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ITOOLBAR_H #define ITOOLBAR_H #include #include #include #include #include class wxXmlNode; class wxWindow; class wxEvtHandler; class wxMenu; class wxGinkgoToolBar; namespace GNC { namespace GCS { class IContract; class IWidgetTool; class IToolController { public: typedef std::list TIdList; IToolController(); virtual ~IToolController(); //region "Tool Bar interface" virtual void AddTool(long idTool, GNC::GCS::IContract* pContract) = 0; virtual void RemoveTool(long idTool) = 0; virtual GNC::GCS::ITool* GetTool(long idTool) = 0; virtual void Enable(long idTool, bool enabled) = 0; virtual void InitializeToolController() = 0; virtual void ReconnectToolController() = 0; virtual void FinalizeToolController() = 0; virtual void LoadStatus(const std::string& view, const std::string& modality = "ALL") = 0; virtual void SaveStatus(const std::string& view, const std::string& modality = "ALL") = 0; //register tool key events to parent window virtual void ConnectKeyEvents(wxWindow* pParent) = 0; virtual wxWindow* CreateNewToolBar(wxWindow* pParent, bool alignLeft = true) = 0; virtual wxWindow* CreateNewToolBar(wxWindow* pParent, GNC::GCS::ITool::TToolFamily family, bool alignLeft = true) = 0; virtual wxWindow* CreateNewToolBar(wxWindow* pParent, const TIdList& toolsToInclude, bool alignLeft = true) = 0; virtual void AppendsToolInMenu(wxEvtHandler* pParent, wxMenu* pMenu, GNC::GCS::ITool::TToolFamily family) = 0; virtual void AppendsToolsInToolBar(wxGinkgoToolBar* pToolBar, GNC::GCS::ITool::TToolFamily family) = 0; virtual void AppendsToolsInToolBar(wxGinkgoToolBar* pToolBar, const GNC::GCS::IToolController::TIdList& toolsToInclude) = 0; virtual void OnKeyAccelerator(GNC::GCS::Events::EventoTeclado& evento, wxWindow* pWindow) = 0; virtual void ActivateTool(long idTool, const TriggerButton& buttonmask, wxWindow* pParent) = 0; virtual void AppendDropDownMenu(long idTool, wxEvtHandler* pParent, wxMenu* pMenu) = 0; virtual GNC::GCS::IWidgetTool* GetLeftTool() = 0; virtual GNC::GCS::IWidgetTool* GetRightTool() = 0; virtual GNC::GCS::IWidgetTool* GetMiddleTool() = 0; static GNC::GCS::IToolController* New(); //endregion }; } } #endif ginkgocadx-3.8.7/cadxcore/api/toolsystem/itoolsregistry.cpp000066400000000000000000000027221314736454600242600ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "itoolsregistry.h" #include
GNC::GCS::ToolsRegistryException::ToolsRegistryException(const std::string& msg) throw() : GNC::GCS::IException(msg, "GNC", false) { } GNC::GCS::IToolsRegistry::IToolsRegistry() { } GNC::GCS::IToolsRegistry::~IToolsRegistry() { } void GNC::GCS::IToolsRegistry::UnRegisterAll() { } //------------------------------------------------------------------------------ //region "Singleton pattern" /** Singleton getter **/ GNC::GCS::IToolsRegistry* GNC::GCS::IToolsRegistry::Instance() { return GNC::ToolsRegistry::Instance(); } /** Singleton free **/ void GNC::GCS::IToolsRegistry::FreeInstance() { GNC::ToolsRegistry::FreeInstance(); } //endregion ginkgocadx-3.8.7/cadxcore/api/toolsystem/itoolsregistry.h000066400000000000000000000060411314736454600237230ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ITOOLSREGISTRY_H #define ITOOLSREGISTRY_H #include #include #include #include #include namespace GNC { namespace GCS { class EXTAPI ToolsRegistryException : public GNC::GCS::IException { public: ToolsRegistryException(const std::string& msg) throw(); }; /** Tools Registry container interface **/ class EXTAPI IToolsRegistry { //------------------------------------------------------------------------------ //region "Singleton pattern" public: /** Singleton getter **/ static GNC::GCS::IToolsRegistry* Instance(); /** Singleton free **/ static void FreeInstance(); protected: IToolsRegistry(); ~IToolsRegistry(); //endregion //------------------------------------------------------------------------------ //region "Tool Registry interface" public: /** Registers a tool **/ virtual void RegisterTool(GNC::GCS::ITool* pTool) = 0; /** UnRegisters a tool given its uid and frees its factory instance **/ virtual void UnRegisterTool(GNC::GCS::ITool::UID uid) = 0; /** UnRegisters a tool given its uid and frees its factory instance **/ virtual void UnRegisterAll(); /** Constructs and returns a new abstract instance of a tool given its uid **/ virtual GNC::GCS::ITool* NewTool(GNC::GCS::ITool::UID uid) = 0; /** appends general tools in menu */ virtual void AppendsToolInMenu(wxEvtHandler* pParent, wxMenu* pMenu, GNC::GCS::ITool::TToolFamily family) = 0; /** Constructs and returns a new concrete instance of a tool given its uid **/ template ToolType* NewConcreteTool(GNC::GCS::ITool::UID uid) { ToolType* pConcreteTool = NULL; GNC::GCS::ITool* pAbstractTool = NewTool(uid); if (pAbstractTool != NULL) { pConcreteTool = dynamic_cast(pAbstractTool); } return pConcreteTool; } typedef std::list TToolList; typedef std::map TToolMap; /** Returns tools of a concrete family **/ virtual TToolMap GetToolsFromFamily(GNC::GCS::ITool::TToolFamily family) = 0; //endregion }; } } #endif ginkgocadx-3.8.7/cadxcore/api/toolsystem/iwidgettool.cpp000066400000000000000000000034031314736454600235050ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "iwidgettool.h" #include "itoolcontroller.h" #include #include #include #include GNC::GCS::IWidgetTool::IWidgetTool(const ITool::UID& uid, const ITool::TToolFamily& uidFamilia, const std::string& nombre, const wxBitmap& icon, const int subFamilia, const int& prioridad): GNC::GCS::ITool(uid, uidFamilia, nombre, icon, subFamilia, prioridad) { } GNC::GCS::IWidgetTool::~IWidgetTool() { } bool GNC::GCS::IWidgetTool::ExecuteAction() { //none LOG_ERROR("IWidgetTool","trying to execute a widget tool"); return false; } void GNC::GCS::IWidgetTool::AppendToolIn(wxGinkgoToolBar* pParent) { if (AppendsInToolBar()) { pParent->AddTool(this->ID, wxString::FromUTF8(Name.c_str()), Icon, wxString::FromUTF8(Name.c_str()), wxITEM_NORMAL); pParent->ForceSetToolDropDown(this->ID, HasDropDownMenu()); pParent->EnableTool(this->ID, IsEnabled()); } } ginkgocadx-3.8.7/cadxcore/api/toolsystem/iwidgettool.h000066400000000000000000000031161314736454600231530ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IWIDGETTOOL_H #define IWIDGETTOOL_H #include namespace GNC { namespace GCS { class EXTAPI IWidgetTool: public GNC::GCS::ITool { public: virtual ~IWidgetTool(); //new tool IWidgetTool(const ITool::UID& uid, const ITool::TToolFamily& familyUID, const std::string& name, const wxBitmap& icon, const int subFamily = 0xFFFFFFFF, const int& priority = 0); virtual bool AppendsInMenu() { return false; } virtual bool ExecuteAction(); virtual void Connect() = 0; virtual void Disconnect() = 0; virtual void AppendToolIn(wxGinkgoToolBar* pParent); TriggerButton& GetTriggerButton() { return m_TriggerButtonMask; } TriggerButton m_TriggerButtonMask; // }; } } #endif ginkgocadx-3.8.7/cadxcore/api/ubication.cpp000066400000000000000000000036471314736454600207200ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ubication.h" GIL::Ubicacion::Ubicacion() : Monitorize(false), CleanBefore(false), CleanAfter(false) { } GIL::Ubicacion::Ubicacion(const std::string& titulo, const std::string& ruta, const std::string& descripcion, bool monitorize, bool cleanbefore, bool cleanafter) { this->Titulo = titulo; Update(ruta, descripcion, monitorize, cleanbefore, cleanafter); } GIL::Ubicacion::Ubicacion(const GIL::Ubicacion& otro) { *this = otro; } GIL::Ubicacion::~Ubicacion() { } void GIL::Ubicacion::Update(const std::string& ruta, const std::string& desc, bool monitorize, bool cleanbefore, bool cleanafter) { this->Ruta = ruta; this->Descripcion = desc; this->Monitorize = monitorize; this->CleanBefore = cleanbefore; this->CleanAfter = cleanafter; } GIL::Ubicacion& GIL::Ubicacion::operator=(const GIL::Ubicacion& otro) { this->Titulo = otro.Titulo; this->Ruta = otro.Ruta; this->Descripcion = otro.Descripcion; this->Monitorize = otro.Monitorize; this->CleanBefore = otro.CleanBefore; this->CleanAfter = otro.CleanAfter; return *this; } ginkgocadx-3.8.7/cadxcore/api/ubication.h000066400000000000000000000030131314736454600203500ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef UBICATION_H #define UBICATION_H #include #include namespace GIL { class EXTAPI Ubicacion { public: std::string Titulo; std::string Ruta; std::string Descripcion; bool Monitorize; bool CleanBefore; bool CleanAfter; Ubicacion(); Ubicacion(const std::string& titulo, const std::string& ruta, const std::string& descripcion, bool monitorize, bool cleanbefore, bool cleanafter); Ubicacion(const Ubicacion& otro); ~Ubicacion(); void Update(const std::string& ruta, const std::string& desc, bool monitorize, bool cleanbefore, bool cleanafter); Ubicacion& operator=(const Ubicacion& otro); }; } #endif ginkgocadx-3.8.7/cadxcore/api/utils/000077500000000000000000000000001314736454600173655ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/api/utils/iginkgomatrix4x4.cpp000066400000000000000000000022551314736454600233110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #if defined(__DEPRECATED) #undef __DEPRECATED #endif #include "iginkgomatrix4x4.h" #include
GNC::GCS::IGinkgoMatrix4x4::IGinkgoMatrix4x4() { } GNC::GCS::IGinkgoMatrix4x4::~IGinkgoMatrix4x4() { } GNC::GCS::Ptr GNC::GCS::IGinkgoMatrix4x4::New() { GNC::GCS::Ptr newPtr((GNC::GCS::IGinkgoMatrix4x4*) new GNC::GinkgoMatrix4x4()); return newPtr; } ginkgocadx-3.8.7/cadxcore/api/utils/iginkgomatrix4x4.h000066400000000000000000000055111314736454600227540ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IGINKGOMATRIX4X4 #define IGINKGOMATRIX4X4 #include namespace GNC { namespace GCS { class IGinkgoMatrix4x4 { protected: IGinkgoMatrix4x4(); public: virtual ~IGinkgoMatrix4x4(); static GNC::GCS::Ptr New(); virtual void Print(std::ostream& os) = 0; // Description: // Non-static member function. Assigns *from* elements array virtual void DeepCopy(const IGinkgoMatrix4x4* other) = 0; // Description: // Set all of the elements to zero. virtual void Zero() = 0; // Description: // Set equal to Identity matrix virtual void Identity() = 0; // Description: // Matrix Inversion (adapted from Richard Carling in "Graphics Gems," // Academic Press, 1990). virtual GNC::GCS::Ptr Invert() = 0; // Description: // Transpose the matrix . virtual GNC::GCS::Ptr Transpose() = 0; // Description: // Multiply a homogeneous coordinate by this matrix, i.e. out = A*in. // The in[4] and out[4] can be the same array. Returns a pointer to out virtual double* MultiplyPoint(const double in[4], double out[4]) = 0; // Description: // Multiplies other to the right result = this * other virtual GNC::GCS::Ptr Multiply4x4(const GNC::GCS::Ptr& other) = 0; // Description: // Compute adjoint of the matrix and put it into out. virtual GNC::GCS::Ptr Adjoint() = 0; // Description: // Compute the determinant of the matrix and return it. virtual double Determinant() = 0; // Description: // Sets the element i,j in the matrix. virtual void SetElement(int i, int j, double value) = 0; // Description: // Returns the element i,j from the matrix. virtual double GetElement(int i, int j) const = 0; virtual void ToDoubleArrayByColumns(double matrix[16]) = 0; }; } } #endif ginkgocadx-3.8.7/cadxcore/api/westilo.h000066400000000000000000000274471314736454600201020ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include typedef struct TWidgetColor { float r, g, b, a; TWidgetColor(float r, float g, float b, float a) { this->r = r; this->g = g; this->b = b; this->a = a; } inline void Aplicar() const { glColor4f(this->r, this->g, this->b, this->a); } inline void AplicarCairo(struct _cairo* cr) const { cairo_set_source_rgba(cr, this->r, this->g, this->b, this->a); } } TWidgetColor; #define ConsumirEvento() evento.Skip(false) #define EventoConsumido() !evento.GetSkipped() #define WIDGETS_TEXT_FONT_FAMILY "Arial" #define ANNOTATOR_TEXT_COLOR 0.0f, 0.90f, 0.90f, 1.0f #define DEFAULT_TEXT_COLOR 0.0f, 0.75f, 0.75f, 1.0f #define DEFAULT_TEXT_COLOR_INVERTED 0.0f, 0.0f, 0.0f, 1.0f static TWidgetColor wColorNormal(0.0f, 1.0f, 0.0f, 1.0f); // glColor4f(0.0f, 1.0f, 0.0f, 0.75f); static TWidgetColor wColorNormalSuave(0.0f, 0.5f, 0.0f, 0.5f); // glColor4f(0.0f, 1.0f, 0.0f, 0.75f); static TWidgetColor wColorIluminado(1.0f, 1.0f, 0.0f, 1.0f); // glColor4f(1.0f, 1.0f, 0.0f, 1.0f); static TWidgetColor wColorMoviendose(1.0f, 0.0f, 0.0f, 1.0f); static TWidgetColor wColorSeleccionado(1.0f, 0.0f, 0.0f, 1.0f); static TWidgetColor wColorSeleccionadoIluminado(1.0f, 0.5f, 0.0f, 1.0f); static TWidgetColor wColorSombra(0.0f, 0.0f, 0.0f, 0.2f); static TWidgetColor wColorLineaArrastre(1.0f, 0.0f, 0.0f, 1.0f); #define WIDGET_SIZE_PUNTO 8.0f static GNC::GCS::Vector wRadioPuntoIluminado(15.0f, 15.0f); static TWidgetColor wColorPuntoIluminadoInterior(1.0f, 1.0f, 0.0f, 0.3f); static TWidgetColor wColorPuntoIluminadoExterior(1.0f, 1.0f, 0.0f, 0.0f); static TWidgetColor wColorAngulo(1.0f, 0.0f, 0.0f, 0.8f); static TWidgetColor wColorAnguloInterior(1.0f, 0.0f, 0.0f, 0.25f); #define WIDGET_OFFSET_X_SOMBRA 1.0f #define WIDGET_OFFSET_Y_SOMBRA 1.0f #define WIDGET_OFFSET_X_SOMBRA_SELECCIONADO 2.0f #define WIDGET_OFFSET_Y_SOMBRA_SELECCIONADO 2.0f #define WIDGET_INCREMENTO_DETALLE_SELECCIONADO 1.15f #define ANNOTATION_FP_PRECISION 2 #define ANNOTATION_TEXT_WITH_SHADOW true // -- Comportamiento -------------------------------------------------------------------------------- inline void wAplicarColor(bool iluminado, bool moviendose, bool seleccionado) { if (moviendose && seleccionado) { wColorSeleccionadoIluminado.Aplicar(); return; } else if (!iluminado && seleccionado) { wColorSeleccionado.Aplicar(); return; } else if (iluminado && seleccionado) { wColorSeleccionadoIluminado.Aplicar(); return; } else if (iluminado && !seleccionado) { wColorIluminado.Aplicar(); return; } else { wColorNormal.Aplicar(); return; } } inline void wAplicarColorSuave(bool iluminado, bool moviendose, bool seleccionado) { if (moviendose && seleccionado) { wColorSeleccionadoIluminado.Aplicar(); return; } else if (!iluminado && seleccionado) { wColorSeleccionado.Aplicar(); return; } else if (iluminado && seleccionado) { wColorSeleccionadoIluminado.Aplicar(); return; } else if (iluminado && !seleccionado) { wColorIluminado.Aplicar(); return; } else { wColorNormalSuave.Aplicar(); return; } } inline void wDibujarElipseDegradado(const GNC::GCS::Vector ¢ro, const GNC::GCS::Vector &radio, const TWidgetColor &interior, const TWidgetColor &exterior, float resolucion=60.0f) { glBegin(GL_TRIANGLE_FAN); float step = M_2PI / resolucion; interior.Aplicar(); glVertex3f(centro.x, centro.y, 0.0f); exterior.Aplicar(); for (float angulo = 0; angulo < M_2PI; angulo += step) { glVertex3f(centro.x + (radio.x * std::cos (angulo)) , centro.y + (radio.y * std::sin (angulo)), 0.0f); } glEnd(); } inline void dibujarDecoracionTextura(const GNC::GCS::Vector* const quad, const GNC::GCS::Vector& escala) { /* * Posicion del Quad * q3 q2 * q0 q1 * */ // Dibujo el fondo glColor4f(0.0f, 0.0f, 0.0f, 0.61f); glBegin(GL_QUADS); glVertex2d(quad[0].x, quad[0].y); glVertex2d(quad[1].x, quad[1].y); glVertex2d(quad[2].x, quad[2].y); glVertex2d(quad[3].x, quad[3].y); glEnd(); // Dibujado el borde glColor4f(0.2f, 0.2f, 0.2f, 1.0f); glBegin(GL_LINE_LOOP); glVertex2d(quad[0].x, quad[0].y); glVertex2d(quad[1].x, quad[1].y); glVertex2d(quad[2].x, quad[2].y); glVertex2d(quad[3].x, quad[3].y); glEnd(); // Dibujado de la sombra, lo hago en 2 tramos para evitar overlapping glColor4f(0.0f, 0.0f, 0.0f, 0.3f); glBegin(GL_LINE_STRIP); glVertex2d(quad[1].x + 2 * escala.x, quad[1].y - 2 * escala.y); glVertex2d(quad[2].x + 2 * escala.x, quad[2].y - 2 * escala.y); glEnd(); glBegin(GL_LINE_STRIP); glVertex2d(quad[2].x + 1 * escala.x, quad[2].y - 2 * escala.y); glVertex2d(quad[3].x + 2 * escala.x, quad[3].y - 2 * escala.y); glEnd(); } inline void wDibujarTexturaTextoDecorada(GNC::GCS::TexturaCairo& tc, const GNC::GCS::Vector* const quad, const GNC::GCS::Vector& escala, bool flipHorizontal, bool flipVertical, double anguloCamara) { dibujarDecoracionTextura(quad, escala); tc.Render(quad, flipHorizontal, flipVertical, anguloCamara); } inline void wDibujarTexturaTextoDecorada2D(GNC::GCS::Contexto3D* c, GNC::GCS::TexturaCairo& tc, const GNC::GCS::Vector& rasterPos) { /* * Posicion del Quad * q3 q2 * q0 q1 * */ GNC::GCS::Vector escala(1.0, 1.0); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glOrtho(0, c->ancho, 0, c->alto, -1, 1); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); GNC::GCS::Vector quad[4]; quad[0].x = rasterPos.x; quad[0].y = rasterPos.y; quad[2].x = quad[0].x + (double)tc.ancho; quad[2].y = quad[0].y - (double)tc.alto; quad[1].x = quad[2].x; quad[1].y = quad[0].y; quad[3].x = quad[0].x; quad[3].y = quad[2].y; dibujarDecoracionTextura(quad, escala); quad[2].x = quad[0].x + (double)tc.anchoPOT; quad[2].y = quad[0].y - (double)tc.altoPOT; quad[1].x = quad[2].x; quad[1].y = quad[0].y; quad[3].x = quad[0].x; quad[3].y = quad[2].y; tc.Render2D(quad); glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); } inline void wDibujarTexturaTexto2D(GNC::GCS::Contexto3D* c, GNC::GCS::TexturaCairo& tc, const GNC::GCS::Vector& rasterPos) { /* * Posicion del Quad * q3 q2 * q0 q1 * */ glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glOrtho(0, c->ancho, 0, c->alto, -1, 1); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); GNC::GCS::Vector quad[4]; quad[0].x = rasterPos.x; quad[0].y = rasterPos.y; quad[2].x = quad[0].x + (double)tc.anchoPOT; quad[2].y = quad[0].y - (double)tc.altoPOT; quad[1].x = quad[2].x; quad[1].y = quad[0].y; quad[3].x = quad[0].x; quad[3].y = quad[2].y; tc.Render2D(quad); glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); } inline void wDibujarBordeTexto2D(GNC::GCS::Contexto3D* c, GNC::GCS::TexturaCairo& tc, const GNC::GCS::Vector& rasterPos) { /* * Posicion del Quad * q3 q2 * q0 q1 * */ glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glOrtho(0, c->ancho, 0, c->alto, -1, 1); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); GNC::GCS::Vector quad[4]; quad[0].x = rasterPos.x; quad[0].y = rasterPos.y; quad[2].x = quad[0].x + (double)tc.ancho; quad[2].y = quad[0].y - (double)tc.alto; quad[1].x = quad[2].x; quad[1].y = quad[0].y; quad[3].x = quad[0].x; quad[3].y = quad[2].y; glBegin(GL_LINE_LOOP); glVertex2d(quad[0].x, quad[0].y); glVertex2d(quad[1].x, quad[1].y); glVertex2d(quad[2].x, quad[2].y); glVertex2d(quad[3].x, quad[3].y); glEnd(); glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); } inline void wDibujarFondoTexto2D(GNC::GCS::Contexto3D* c, GNC::GCS::TexturaCairo& tc, const GNC::GCS::Vector& rasterPos) { /* * Posicion del Quad * q3 q2 * q0 q1 * */ glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glOrtho(0, c->ancho, 0, c->alto, -1, 1); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); GNC::GCS::Vector quad[4]; quad[0].x = rasterPos.x; quad[0].y = rasterPos.y; quad[2].x = quad[0].x + (double)tc.ancho; quad[2].y = quad[0].y - (double)tc.alto; quad[1].x = quad[2].x; quad[1].y = quad[0].y; quad[3].x = quad[0].x; quad[3].y = quad[2].y; glBegin(GL_QUADS); for (int i = 0; i < 4; ++i) { glVertex2dv(quad[i].v); } glEnd(); glPopMatrix(); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); } inline void AjustarAPixelsPantalla(GNC::GCS::Contexto3D* c, GNC::GCS::Vector* v, int numVectores) { if (numVectores < 1) { return; } GNC::GCS::Vector offsetCorreccion; double worldPos[4] = {0.0f, 0.0f, 0.0f, 0.0f}; double imagePos[4] = {v[0].x, v[0].y, 0.0f, 0.0f}; c->GetRenderer()->m_pImageViewer->CoordenadasImagenACoordenadasMundo(imagePos, worldPos); double displayPos[3] = {0.0f, 0.0f, 0.0f}; c->pRenderer->WorldToDisplay(worldPos, displayPos); offsetCorreccion.Asignar(displayPos[0], displayPos[1]); offsetCorreccion.Redondear(); displayPos[0] = offsetCorreccion.x; displayPos[1] = offsetCorreccion.y; c->pRenderer->DisplayToWorld(displayPos, worldPos); c->GetRenderer()->m_pImageViewer->Proyect2D(worldPos, imagePos); offsetCorreccion.Asignar(imagePos[0], imagePos[1]); offsetCorreccion -= v[0]; for (int i = 0; i < numVectores; i++) { v[i] += offsetCorreccion; } } ginkgocadx-3.8.7/cadxcore/api/widgetserializable.cpp000066400000000000000000000105061314736454600226050ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "widgetserializable.h" #include #include #include #include inline const std::string GetFormattedTimet(time_t fecha) { struct tm tminfo; char fechaString[100]; #ifdef _WIN32 localtime_s(&tminfo,&fecha); #else localtime_r(&fecha,&tminfo); #endif strftime(fechaString,100,"%d/%m/%Y, %H:%M:%S",&tminfo); return fechaString; } GNC::GCS::Widgets::IWidgetSerializable::IWidgetSerializable() { time ( &m_timestampCreacion ); ActualizarTimestampModificacion(); } GNC::GCS::Widgets::IWidgetSerializable::IWidgetSerializable(wxXmlNode* nodo) { LeerMetadatos(nodo); } GNC::GCS::Widgets::IWidgetSerializable::~IWidgetSerializable() { } std::map GNC::GCS::Widgets::IWidgetSerializable::GetPropiedades() { std::map propiedades; { std::ostringstream ostr; ostr << GetFormattedTimet(m_timestampCreacion); propiedades[_Std("Creation Date")] = ostr.str(); } { std::ostringstream ostr; ostr << GetFormattedTimet(m_timestampModificacion); propiedades[_Std("Modification Date")] = ostr.str(); } { propiedades[_Std("Physician")] = m_nombreMedico; } return propiedades; } void GNC::GCS::Widgets::IWidgetSerializable::SerializarMetadatos(wxXmlNode* nodo, const std::string& nombreMedico) { { std::ostringstream ostr; ostr << m_timestampCreacion; nodo->AddAttribute(wxT("creacion"),wxString::FromUTF8(ostr.str().c_str())); } { std::ostringstream ostr; ostr << m_timestampModificacion; nodo->AddAttribute(wxT("modificacion"),wxString::FromUTF8(ostr.str().c_str())); } if(m_modificado) { nodo->AddAttribute(wxT("medico"),wxString::FromUTF8(nombreMedico.c_str())); m_nombreMedico = nombreMedico; } else { nodo->AddAttribute(wxT("medico"),wxString::FromUTF8(m_nombreMedico.c_str())); } m_modificado = false; } void GNC::GCS::Widgets::IWidgetSerializable::LeerMetadatos(wxXmlNode* nodo) { wxString valor; if(nodo->GetAttribute(wxT("creacion"),&valor)) { #if defined(__WXOSX__) || defined(__WXGTK__) if(!valor.ToLong(&m_timestampCreacion)) { #else if(!valor.ToLongLong(&m_timestampCreacion)) { #endif m_timestampCreacion = 0; } } else { m_timestampCreacion = 0; } if(nodo->GetAttribute(wxT("modificacion"),&valor)) { #if defined(__WXOSX__) || defined(__WXGTK__) if(!valor.ToLong(&m_timestampModificacion)) { #else if(!valor.ToLongLong(&m_timestampModificacion)) { #endif time ( &m_timestampModificacion ); m_timestampModificacion = 0; } } else { time ( &m_timestampModificacion ); } wxString wxStr; if(nodo->GetAttribute(wxT("medico"),&wxStr)) { //si se carga del xml no esta modificado m_nombreMedico = wxStr.ToUTF8(); m_modificado = false; } else { m_nombreMedico = ""; } } void GNC::GCS::Widgets::IWidgetSerializable::ActualizarTimestampModificacion() { time ( &m_timestampModificacion ); m_modificado = true; } ginkgocadx-3.8.7/cadxcore/api/widgetserializable.h000066400000000000000000000031031314736454600222450ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include // Forward Declarations class wxXmlNode; // Forward Declarations namespace GNC { namespace GCS { namespace Widgets { class EXTAPI IWidgetSerializable { public: IWidgetSerializable(); IWidgetSerializable(wxXmlNode* nodo); virtual ~IWidgetSerializable(); virtual wxXmlNode* Serializar(const std::string& nombreMedico) = 0; std::map GetPropiedades(); protected: void SerializarMetadatos(wxXmlNode* nodo, const std::string& nombreMedico); void LeerMetadatos(wxXmlNode* nodo); void ActualizarTimestampModificacion(); protected: time_t m_timestampCreacion; time_t m_timestampModificacion; std::string m_nombreMedico; bool m_modificado; }; } } } ginkgocadx-3.8.7/cadxcore/cadxcore-Info.plist000066400000000000000000000014661314736454600212210ustar00rootroot00000000000000 CFBundleDevelopmentRegion English CFBundleExecutable ${EXECUTABLE_NAME} CFBundleIconFile cadxcore.icns CFBundleIdentifier com.metaemotion.${PRODUCT_NAME:identifier} CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType APPL CFBundleSignature ???? CFBundleVersion 2.3.0.0 LSMultipleInstancesProhibited NSHumanReadableCopyright MetaEmotion S.L. ginkgocadx-3.8.7/cadxcore/cadxcore.vcxproj000066400000000000000000003435061314736454600206740ustar00rootroot00000000000000 DebugDynamicPro Win32 DebugDynamicPro x64 DebugMonoliticOS Win32 DebugMonoliticOS x64 DebugMonoliticPro Win32 DebugMonoliticPro x64 ReleaseDynamicPro Win32 ReleaseDynamicPro x64 ReleaseMonoliticOpenSource Win32 ReleaseMonoliticOpenSource x64 ReleaseMonoliticPro Win32 ReleaseMonoliticPro x64 {51617602-E33C-4A52-941E-3E3302DE4447} cadxCore Win32Proj StaticLibrary v110 false Unicode StaticLibrary v110 false Unicode StaticLibrary v90 false Unicode StaticLibrary v90 false Unicode StaticLibrary v110 false Unicode true StaticLibrary v90 false Unicode true DynamicLibrary v110 false Unicode true DynamicLibrary v110 false Unicode true StaticLibrary v110 false Unicode true StaticLibrary v90 false Unicode true StaticLibrary v110 false Unicode StaticLibrary v110 false Unicode <_ProjectFileVersion>11.0.50727.1 $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ false false $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ C:\Program Files (x86)\Visual Leak Detector\include;$(IncludePath) C:\Program Files (x86)\Visual Leak Detector\lib\Win32;$(LibraryPath) $(SolutionDir)$(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ C:\Program Files (x86)\Visual Leak Detector\include;$(IncludePath) C:\Program Files (x86)\Visual Leak Detector\lib\Win32;$(LibraryPath) Disabled ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\vtkVISUManagement;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;.\;..\..\lib\Windows-x64\WX-2.8.11\mswu;..\..\lib\Windows-x64\WX-2.8.11\include;..\..\lib\Windows-x64\ITK-3.20.0\include;..\..\lib\Windows-x64\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x64\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x64\ITK-3.20.0\include\Common;..\..\lib\Windows-x64\ITK-3.20.0\include\Numerics;..\..\lib\Windows-x64\ITK-3.20.0\include\IO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\MetaIO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\NrrdIO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\expat;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\nifti\niftilib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\nifti\znzlib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\itkExtHdrs;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\v3p\netlib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x64\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x64\VTK-5.10.0\include;..\..\lib\Windows-x64\openssl-1.0.0j\include;..\..\lib\Windows-x64\cairo\include\cairo;..\..\lib\Windows-x64\DCMTK-3.6.0\include;..\lib_test;%(AdditionalIncludeDirectories) WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_WINDOWS;NOPCH;_CFE_;_GINKGO_DEBUG;CAIRO_WIN32_STATIC_BUILD;WXUSINGDLL;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;GINKGO_PRO;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL NotSet Use Level4 ProgramDatabase stdafx.h;%(ForcedIncludeFiles) Disabled ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\vtkVISUManagement;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;.\;..\..\lib\Windows-x86\WX-2.8.11\mswu;..\..\lib\Windows-x86\WX-2.8.11\include;..\..\lib\Windows-x86\ITK-3.20.0\include;..\..\lib\Windows-x86\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x86\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x86\ITK-3.20.0\include\Common;..\..\lib\Windows-x86\ITK-3.20.0\include\Numerics;..\..\lib\Windows-x86\ITK-3.20.0\include\IO;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x86\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x86\VTK-5.10.0\include;..\..\lib\Windows-x86\openssl-1.0.0d\include;..\..\lib\Windows-x86\cairo\include;..\..\lib\Windows-x86\DCMTK-3.6.0\include;..\lib_test;%(AdditionalIncludeDirectories) WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_WINDOWS;NOPCH;_CFE_;_GINKGO_DEBUG;CAIRO_WIN32_STATIC_BUILD;WXUSINGDLL;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;GINKGO_PRO;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL NotSet Use Level4 ProgramDatabase stdafx.h;%(ForcedIncludeFiles) Full AnySuitable true Speed true true false ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\vtkVISUManagement;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;..\cadxcore\jsoncpp;.\;..\..\lib\Windows-x64\WX-2.8.11\mswu;..\..\lib\Windows-x64\WX-2.8.11\include;..\..\lib\Windows-x64\ITK-3.20.0\include;..\..\lib\Windows-x64\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x64\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x64\ITK-3.20.0\include\Common;..\..\lib\Windows-x64\ITK-3.20.0\include\Numerics;..\..\lib\Windows-x64\ITK-3.20.0\include\IO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\MetaIO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\NrrdIO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\expat;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\nifti\niftilib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\nifti\znzlib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\itkExtHdrs;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\v3p\netlib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x64\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x64\VTK-5.10.0\include;..\..\lib\Windows-x64\openssl-1.0.0j\include;..\..\lib\Windows-x64\cairo\include\cairo;..\..\lib\Windows-x64\DCMTK-3.6.0\include;..\..\lib\Windows-x64\libcurl\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;__WXMSW__;_WINDOWS;NOPCH;_CFE_;CAIRO_WIN32_STATIC_BUILD;WXUSINGDLL;WXMAKING_MY_DLL;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;MONOLITIC;CURL_STATICLIB;%(PreprocessorDefinitions) true false MultiThreadedDLL false false NotSet Precise Use Level3 stdafx.h;%(ForcedIncludeFiles) Full AnySuitable true Speed true true false ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;..\cadxcore\jsoncpp;.\;..\..\lib\Windows-x86\WX-3.0.1\mswu;..\..\lib\Windows-x86\WX-3.0.1\include;..\..\lib\Windows-x86\ITK-3.20.0\include;..\..\lib\Windows-x86\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x86\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x86\ITK-3.20.0\include\Common;..\..\lib\Windows-x86\ITK-3.20.0\include\Numerics;..\..\lib\Windows-x86\ITK-3.20.0\include\IO;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x86\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x86\VTK-5.10.0\include;..\..\lib\Windows-x86\openssl-1.0.0d\include;..\..\lib\Windows-x86\cairo\include;..\..\lib\Windows-x86\DCMTK-3.6.0\include;..\..\lib\Windows-x86\libcurl\include;..\lib_test;%(AdditionalIncludeDirectories) WIN32;NDEBUG;__WXMSW__;_WINDOWS;NOPCH;_CFE_;CAIRO_WIN32_STATIC_BUILD;WXMAKING_MY_DLL;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;MONOLITIC;CURL_STATICLIB;%(PreprocessorDefinitions) true false MultiThreadedDLL false false NotSet Precise Use Level3 stdafx.h;%(ForcedIncludeFiles) Full AnySuitable true Speed true true false ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\vtkVISUManagement;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;.\;..\..\lib\Windows-x64\WX-2.8.11\mswu;..\..\lib\Windows-x64\WX-2.8.11\include;..\..\lib\Windows-x64\ITK-3.20.0\include;..\..\lib\Windows-x64\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x64\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x64\ITK-3.20.0\include\Common;..\..\lib\Windows-x64\ITK-3.20.0\include\Numerics;..\..\lib\Windows-x64\ITK-3.20.0\include\IO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\MetaIO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\NrrdIO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\expat;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\nifti\niftilib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\nifti\znzlib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\itkExtHdrs;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\v3p\netlib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x64\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x64\VTK-5.10.0\include;..\..\lib\Windows-x64\openssl-1.0.0j\include;..\..\lib\Windows-x64\cairo\include\cairo;..\..\lib\Windows-x64\DCMTK-3.6.0\include;..\lib_test;%(AdditionalIncludeDirectories) WIN32;NDEBUG;__WXMSW__;_WINDOWS;NOPCH;_CFE_;CAIRO_WIN32_STATIC_BUILD;WXUSINGDLL;WXMAKING_MY_DLL;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;GINKGO_PRO;%(PreprocessorDefinitions) false false MultiThreadedDLL false false NotSet Precise Use Level3 stdafx.h;%(ForcedIncludeFiles) wxbase28u_net.lib;wxmsw28u_aui.lib;wxmsw28u_media.lib;wxmsw28u_qa.lib;wxmsw28u_richtext.lib;wxmsw28u_xrc.lib;wxmsw28u_adv.lib;wxmsw28u_html.lib;wxbase28u_xml.lib;wxmsw28u_core.lib;wxbase28u.lib;wxtiff.lib;wxjpeg.lib;wxpng.lib;wxzlib.lib;wxregexu.lib;wxexpat.lib;vtkCommon.lib;vtkRendering.lib;vtkDICOMParser.lib;vtkexoIIc.lib;vtkexpat.lib;vtkFiltering.lib;vtkfreetype.lib;vtkftgl.lib;vtkGenericFiltering.lib;vtkGraphics.lib;vtkHybrid.lib;vtkImaging.lib;vtkInfovis.lib;vtkIO.lib;vtkjpeg.lib;vtklibxml2.lib;vtkmetaio.lib;vtkNetCDF.lib;vtkpng.lib;vtktiff.lib;vtksys.lib;vtkzlib.lib;vtkWidgets.lib;vtkViews.lib;vtkVolumeRendering.lib;ITKAlgorithms.lib;ITKBasicFilters.lib;ITKCommon.lib;ITKDicomParser.lib;ITKExpat.lib;ITKFEM.lib;ITKGDCM.lib;ITKIO.lib;ITKJPEG8.lib;ITKJPEG12.lib;ITKJPEG16.lib;ITKMetaIO.lib;ITKNiftiIO.lib;ITKNrrdIO.lib;ITKNumerics.lib;ITKOpenJPEG.lib;ITKPNG.lib;ITKSpatialObject.lib;ITKStatistics.lib;ITKSys.lib;ITKTIFF.lib;ITKV3P_Netlib.lib;ITKVCL.lib;ITKVNL.lib;ITKVNL_Algo.lib;ITKVNL_Inst.lib;ITKZlib.lib;ITKZNZ.lib;kernel32.lib;user32.lib;Msimg32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comctl32.lib;comdlg32.lib;advapi32.lib;snmpapi.lib;ws2_32.lib;rpcrt4.lib;winmm.lib;wsock32.lib;netapi32.lib;opengl32.lib;itkvcl.lib;itksys.lib;ITKDICOMParser.lib;ITKEXPAT.lib;ITKniftiio.lib;ITKznz.lib;itkzlib.lib;ofstd.lib;dcmdata.lib;dcmnet.lib;dcmtls.lib;dcmimage.lib;dcmimgle.lib;dcmjpeg.lib;dcmsr.lib;ijg8.lib;ijg12.lib;ijg16.lib;oflog.lib;cairowin32.lib;libeay32MD.lib;ssleay32MD.lib;crypt32.lib;Iphlpapi.lib ..\..\lib\Windows-x64\WX-2.8.11\lib;..\..\lib\Windows-x64\VTK-5.10.0\lib\Release;..\..\lib\Windows-x64\ITK-3.20.0\lib\release;..\..\lib\Windows-x64\DCMTK-3.6.0\lib\release;..\..\lib\Windows-x64\openssl-1.0.0d\lib\release;..\..\lib\Windows-x64\cairowin32\cairowin32\release;Release;%(AdditionalLibraryDirectories) Full AnySuitable true Speed true true false ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\vtkVISUManagement;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;.\;..\..\lib\Windows-x86\WX-2.8.11\mswu;..\..\lib\Windows-x86\WX-2.8.11\include;..\..\lib\Windows-x86\ITK-3.20.0\include;..\..\lib\Windows-x86\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x86\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x86\ITK-3.20.0\include\Common;..\..\lib\Windows-x86\ITK-3.20.0\include\Numerics;..\..\lib\Windows-x86\ITK-3.20.0\include\IO;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x86\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x86\VTK-5.10.0\include;..\..\lib\Windows-x86\openssl-1.0.0d\include;..\..\lib\Windows-x86\cairo\include;..\..\lib\Windows-x86\DCMTK-3.6.0\include;..\lib_test;%(AdditionalIncludeDirectories) WIN32;NDEBUG;__WXMSW__;_WINDOWS;NOPCH;_CFE_;CAIRO_WIN32_STATIC_BUILD;WXUSINGDLL;WXMAKING_MY_DLL;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;GINKGO_PRO;%(PreprocessorDefinitions) false false MultiThreadedDLL false false NotSet Precise Use Level3 stdafx.h;%(ForcedIncludeFiles) wxbase28u_net.lib;wxmsw28u_aui.lib;wxmsw28u_media.lib;wxmsw28u_qa.lib;wxmsw28u_richtext.lib;wxmsw28u_xrc.lib;wxmsw28u_adv.lib;wxmsw28u_html.lib;wxbase28u_xml.lib;wxmsw28u_core.lib;wxbase28u.lib;wxtiff.lib;wxjpeg.lib;wxpng.lib;wxzlib.lib;wxregexu.lib;wxexpat.lib;vtkCommon.lib;vtkRendering.lib;vtkDICOMParser.lib;vtkexoIIc.lib;vtkexpat.lib;vtkFiltering.lib;vtkfreetype.lib;vtkftgl.lib;vtkGenericFiltering.lib;vtkGraphics.lib;vtkHybrid.lib;vtkImaging.lib;vtkInfovis.lib;vtkIO.lib;vtkjpeg.lib;vtklibxml2.lib;vtkmetaio.lib;vtkNetCDF.lib;vtkpng.lib;vtktiff.lib;vtksys.lib;vtkzlib.lib;vtkWidgets.lib;vtkViews.lib;vtkVolumeRendering.lib;ITKAlgorithms.lib;ITKBasicFilters.lib;ITKCommon.lib;ITKDicomParser.lib;ITKExpat.lib;ITKFEM.lib;ITKGDCM.lib;ITKIO.lib;ITKJPEG8.lib;ITKJPEG12.lib;ITKJPEG16.lib;ITKMetaIO.lib;ITKNiftiIO.lib;ITKNrrdIO.lib;ITKNumerics.lib;ITKOpenJPEG.lib;ITKPNG.lib;ITKSpatialObject.lib;ITKStatistics.lib;ITKSys.lib;ITKTIFF.lib;ITKV3P_Netlib.lib;ITKVCL.lib;ITKVNL.lib;ITKVNL_Algo.lib;ITKVNL_Inst.lib;ITKZlib.lib;ITKZNZ.lib;kernel32.lib;user32.lib;Msimg32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comctl32.lib;comdlg32.lib;advapi32.lib;snmpapi.lib;ws2_32.lib;rpcrt4.lib;winmm.lib;wsock32.lib;netapi32.lib;opengl32.lib;itkvcl.lib;itksys.lib;ITKDICOMParser.lib;ITKEXPAT.lib;ITKniftiio.lib;ITKznz.lib;itkzlib.lib;ofstd.lib;dcmdata.lib;dcmnet.lib;dcmtls.lib;dcmimage.lib;dcmimgle.lib;dcmjpeg.lib;dcmsr.lib;ijg8.lib;ijg12.lib;ijg16.lib;oflog.lib;cairowin32.lib;libeay32MD.lib;ssleay32MD.lib;crypt32.lib;Iphlpapi.lib ..\..\lib\Windows-x86\WX-2.8.11\lib;..\..\lib\Windows-x86\VTK-5.10.0\lib\Release;..\..\lib\Windows-x86\ITK-3.20.0\lib\release;..\..\lib\Windows-x86\DCMTK-3.6.0\lib\release;..\..\lib\Windows-x86\openssl-1.0.0d\lib\release;..\..\lib\Windows-x86\cairowin32\cairowin32\release;Release;%(AdditionalLibraryDirectories) Full AnySuitable true Speed true true false ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\vtkVISUManagement;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;..\cadxcore\jsoncpp;.\;..\..\lib\Windows-x64\WX-3.0.1\mswu;..\..\lib\Windows-x64\WX-3.0.1\include;..\..\lib\Windows-x64\ITK-3.20.0\include;..\..\lib\Windows-x64\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x64\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x64\ITK-3.20.0\include\Common;..\..\lib\Windows-x64\ITK-3.20.0\include\Numerics;..\..\lib\Windows-x64\ITK-3.20.0\include\IO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\MetaIO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\NrrdIO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\expat;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\nifti\niftilib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\nifti\znzlib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\itkExtHdrs;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\v3p\netlib;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x64\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x64\VTK-5.10.0\include;..\..\lib\Windows-x64\openssl-1.0.0j\include;..\..\lib\Windows-x64\cairo\include\cairo;..\..\lib\Windows-x64\DCMTK-3.6.0\include;..\..\lib\Windows-x64\libcurl\include;..\lib_test;%(AdditionalIncludeDirectories) WIN32;NDEBUG;__WXMSW__;_WINDOWS;NOPCH;_CFE_;CAIRO_WIN32_STATIC_BUILD;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;GINKGO_PRO;MONOLITIC;CURL_STATICLIB;%(PreprocessorDefinitions) false false MultiThreadedDLL false false NotSet Precise Use Level3 stdafx.h;%(ForcedIncludeFiles) Full AnySuitable true Speed true true false ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;..\cadxcore\jsoncpp;.\;..\..\lib\Windows-x86\WX-3.0.1\mswu;..\..\lib\Windows-x86\WX-3.0.1\include;..\..\lib\Windows-x86\ITK-3.20.0\include;..\..\lib\Windows-x86\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x86\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x86\ITK-3.20.0\include\Common;..\..\lib\Windows-x86\ITK-3.20.0\include\Numerics;..\..\lib\Windows-x86\ITK-3.20.0\include\IO;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x86\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x86\VTK-5.10.0\include;..\..\lib\Windows-x86\openssl-1.0.0d\include;..\..\lib\Windows-x86\cairo\include;..\..\lib\Windows-x86\DCMTK-3.6.0\include;..\..\lib\Windows-x86\libcurl\include;..\lib_test;%(AdditionalIncludeDirectories) WIN32;NDEBUG;__WXMSW__;_WINDOWS;NOPCH;_CFE_;CAIRO_WIN32_STATIC_BUILD;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;GINKGO_PRO;MONOLITIC;CURL_STATICLIB;%(PreprocessorDefinitions) false false MultiThreadedDLL false false NotSet Precise Use Level3 stdafx.h;%(ForcedIncludeFiles) Disabled ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\vtkVISUManagement;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;..\cadxcore\jsoncpp;.\;..\..\lib\Windows-x64\WX-3.0.1\mswud;..\..\lib\Windows-x64\WX-3.0.1\include;..\..\lib\Windows-x64\ITK-3.20.0\include;..\..\lib\Windows-x64\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x64\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x64\ITK-3.20.0\include\Common;..\..\lib\Windows-x64\ITK-3.20.0\include\IO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x64\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x64\VTK-5.10.0\include;..\..\lib\Windows-x64\openssl-1.0.0j\include;..\..\lib\Windows-x64\cairo\include\cairo;..\..\lib\Windows-x64\DCMTK-3.6.0\include;..\..\lib\Windows-x64\libcurl\include;..\lib_test;%(AdditionalIncludeDirectories) WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_WINDOWS;NOPCH;_CFE_;_GINKGO_DEBUG;CAIRO_WIN32_STATIC_BUILD;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;GINKGO_PRO;MONOLITIC;CURL_STATICLIB;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL Use Level4 ProgramDatabase stdafx.h;%(ForcedIncludeFiles) false true Speed true true true NotSet Disabled ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\vtkVISUManagement;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;..\cadxcore\jsoncpp;.\;..\..\lib\Windows-x64\WX-3.0.1\mswud;..\..\lib\Windows-x64\WX-3.0.1\include;..\..\lib\Windows-x64\ITK-3.20.0\include;..\..\lib\Windows-x64\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x64\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x64\ITK-3.20.0\include\Common;..\..\lib\Windows-x64\ITK-3.20.0\include\IO;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x64\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x64\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x64\VTK-5.10.0\include;..\..\lib\Windows-x64\openssl-1.0.0j\include;..\..\lib\Windows-x64\cairo\include\cairo;..\..\lib\Windows-x64\DCMTK-3.6.0\include;..\..\lib\Windows-x64\libcurl\include;..\lib_test;%(AdditionalIncludeDirectories) WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_WINDOWS;NOPCH;_CFE_;_GINKGO_DEBUG;CAIRO_WIN32_STATIC_BUILD;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;GINKGO_PRO;MONOLITIC;CURL_STATICLIB;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL Use Level4 ProgramDatabase stdafx.h;%(ForcedIncludeFiles) false true Speed true true true NotSet Disabled ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\vtkVISUManagement;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;..\cadxcore\jsoncpp;.\;..\..\lib\Windows-x86\WX-3.0.1\mswud;..\..\lib\Windows-x86\WX-3.0.1\include;..\..\lib\Windows-x86\ITK-3.20.0\include;..\..\lib\Windows-x86\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x86\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x86\ITK-3.20.0\include\Common;..\..\lib\Windows-x86\ITK-3.20.0\include\Numerics;..\..\lib\Windows-x86\ITK-3.20.0\include\IO;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x86\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x86\VTK-5.10.0\include;..\..\lib\Windows-x86\openssl-1.0.0d\include;..\..\lib\Windows-x86\cairo\include;..\..\lib\Windows-x86\DCMTK-3.6.0\include;..\..\lib\Windows-x86\libcurl\include;..\lib_test;%(AdditionalIncludeDirectories) WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_WINDOWS;NOPCH;_CFE_;_GINKGO_DEBUG;CAIRO_WIN32_STATIC_BUILD;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;GINKGO_PRO;MONOLITIC;CURL_STATICLIB;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL NotSet Use Level4 ProgramDatabase stdafx.h;%(ForcedIncludeFiles) Disabled ..\cadxcore\VTKInria3D;..\cadxcore\VTKInria3D\vtkVISUManagement;..\cadxcore\VTKInria3D\wxVTK;..\cadxcore\wx\VTK;..\cadxcore\vtk;..\cadxcore\itk;..\cadxcore\jsoncpp;.\;..\..\lib\Windows-x86\WX-3.0.1\mswud;..\..\lib\Windows-x86\WX-3.0.1\include;..\..\lib\Windows-x86\ITK-3.20.0\include;..\..\lib\Windows-x86\ITK-3.20.0\include\Algorithms;..\..\lib\Windows-x86\ITK-3.20.0\include\BasicFilters;..\..\lib\Windows-x86\ITK-3.20.0\include\Common;..\..\lib\Windows-x86\ITK-3.20.0\include\Numerics;..\..\lib\Windows-x86\ITK-3.20.0\include\IO;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\DICOMParser;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\vcl;..\..\lib\Windows-x86\ITK-3.20.0\include\Utilities\vxl\core;..\..\lib\Windows-x86\ITK-3.20.0\include\gdcm\src;..\..\lib\Windows-x86\VTK-5.10.0\include;..\..\lib\Windows-x86\openssl-1.0.0d\include;..\..\lib\Windows-x86\cairo\include;..\..\lib\Windows-x86\DCMTK-3.6.0\include;..\..\lib\Windows-x86\libcurl\include;..\lib_test;%(AdditionalIncludeDirectories) WIN32;_DEBUG;__WXMSW__;__WXDEBUG__;_WINDOWS;NOPCH;_CFE_;_GINKGO_DEBUG;CAIRO_WIN32_STATIC_BUILD;APIEXPORT;USING_EXTENSIONS;USE_PATCHED_LIBS;MONOLITIC;CURL_STATICLIB;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL NotSet Use Level4 ProgramDatabase stdafx.h;%(ForcedIncludeFiles) Create Create Create Create Create Create Create Create Create Create Create Create Copying test card Copying test card Copying test card Copying test card copy "%(FullPath)" "$(OutDir)" copy "%(FullPath)" "$(OutDir)" copy "%(FullPath)" "$(OutDir)" copy "%(FullPath)" "$(OutDir)" %(FullPath);%(AdditionalInputs) %(FullPath);%(AdditionalInputs) %(FullPath);%(AdditionalInputs) %(FullPath);%(AdditionalInputs) $(OutDir)%(Filename)%(Extension);%(Outputs) $(OutDir)%(Filename)%(Extension);%(Outputs) $(OutDir)%(Filename)%(Extension);%(Outputs) $(OutDir)%(Filename)%(Extension);%(Outputs) Copiando test card Copiando test card copy "%(FullPath)" "$(OutDir)" copy "%(FullPath)" "$(OutDir)" %(FullPath);%(AdditionalInputs) %(FullPath);%(AdditionalInputs) $(OutDir)%(Filename)%(Extension);%(Outputs) $(OutDir)%(Filename)%(Extension);%(Outputs) Copiando dicom conformance file Copiando dicom conformance file mkdir "$(OutDir)" 2>NUL copy "%(FullPath)" "$(OutDir)" mkdir "$(OutDir)" 2>NUL copy "%(FullPath)" "$(OutDir)" %(FullPath);%(AdditionalInputs) %(FullPath);%(AdditionalInputs) $(OutDir)%(Filename)%(Extension);%(Outputs) $(OutDir)%(Filename)%(Extension);%(Outputs) Copying dicom conformance file Copying dicom conformance file Copying dicom conformance file Copying dicom conformance file copy "%(FullPath)" "$(OutDir)" copy "%(FullPath)" "$(OutDir)" copy "%(FullPath)" "$(OutDir)" copy "%(FullPath)" "$(OutDir)" %(FullPath);%(AdditionalInputs) %(FullPath);%(AdditionalInputs) %(FullPath);%(AdditionalInputs) %(FullPath);%(AdditionalInputs) $(OutDir)%(Filename)%(Extension);%(Outputs) $(OutDir)%(Filename)%(Extension);%(Outputs) $(OutDir)%(Filename)%(Extension);%(Outputs) $(OutDir)%(Filename)%(Extension);%(Outputs) Copiando dicom conformance file Copiando dicom conformance file copy "%(FullPath)" "$(OutDir)" copy "%(FullPath)" "$(OutDir)" %(FullPath);%(AdditionalInputs) %(FullPath);%(AdditionalInputs) $(OutDir)%(Filename)%(Extension);%(Outputs) $(OutDir)%(Filename)%(Extension);%(Outputs) Copiando dicom conformance file Copiando dicom conformance file copy "%(FullPath)" "$(OutDir)" copy "%(FullPath)" "$(OutDir)" %(FullPath);%(AdditionalInputs) %(FullPath);%(AdditionalInputs) $(OutDir)%(Filename)%(Extension);%(Outputs) $(OutDir)%(Filename)%(Extension);%(Outputs) Copiando dicom conformance file Copiando dicom conformance file copy "%(FullPath)" "$(OutDir)" copy "%(FullPath)" "$(OutDir)" %(FullPath);%(AdditionalInputs) %(FullPath);%(AdditionalInputs) $(OutDir)%(Filename)%(Extension);%(Outputs) $(OutDir)%(Filename)%(Extension);%(Outputs) ginkgocadx-3.8.7/cadxcore/cadxcore.vcxproj.filters000066400000000000000000003554311314736454600223430ustar00rootroot00000000000000 {4FC737F1-C7A5-4376-A066-2A32D752A2FF} cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx {a854893a-4dbf-4400-bf4c-356d16ad4ad2} {b63155a5-07d9-402d-8dbc-950757d20579} {c0c19a35-a0e9-4963-8b0b-589504c743d4} {7dcbbb7f-ca41-439d-a086-a170e8c1b7a6} {64c0b81a-d383-4651-a33b-9494fb9e8b1c} {1b3976b2-921f-4cb0-b93b-98ba3eded70c} {511e6ed7-7ab7-4065-bde0-38c600c78b96} {e4f1ebb3-6a87-4190-989f-3c9b9bd227a9} {959e8a3f-825c-44a0-9c07-cc87b571b7cd} {3ba1e6f3-d06f-4a51-a1cc-7d8d3f7d3b95} {278f1489-fbd6-4d20-8bf1-b9438dd1af97} {0a61e932-2aa4-4acc-aaa3-e28ad99af80e} {f181896d-da32-46e6-b79f-c827bf1ecb46} {addca24c-bf02-4601-9384-0ec459c0301e} {f7353684-a79a-4a3d-9be0-051bb0d33d08} {7032241d-3a78-4fa6-9ca2-b90326771817} {b4356683-325e-4276-8fd7-2e6adf11e12b} {bdf3266e-4d05-455c-89be-b5bb1fcb1fe7} {779c7f6d-302b-43ca-97ac-e078cde2f0b2} {dbdbe85d-75f1-4ec0-a941-d18c62e1aced} {5df37032-999a-4f3f-8069-5bafdd6a23a4} {bbea7a6d-5bce-48c9-82b0-781a7c8ccfad} {7702b215-0bf4-4c57-bdf9-7cd9ea32cc76} {c5941943-de41-4851-9954-868d10099439} {ccc98461-2216-488c-b4bd-9b0a0e66a689} {0839eb8b-6e0e-41be-9667-cc84c35cfab1} {22e8a8e7-e4ed-4ff3-a88d-6177129a8e9d} {ca51f83f-4841-45d7-8ba8-2f373b8df0e3} {04cd5b23-ae49-4464-bd78-f3a5e22c0d00} {64e95719-8e8c-4d63-9e7c-cdab9d741f34} {d2bbca1d-69d3-4453-93eb-f15a9a847510} {20ff658a-ff6a-41c2-918b-599a5f69599d} {3186125a-16fd-4f43-bd93-75ac21484291} {e498516c-7b4b-413e-a3b9-5d3634f5c5cf} {7f76ddec-b129-4ebe-8fbe-8318d2fe503a} {3193e75e-ed58-42d1-9202-d90e7d0dcc62} {5a9e34e6-fc50-4e1a-bbc7-f75f0bf2ac82} {60984d7e-4fa9-4c99-886e-da6598266f4c} {e2dc7248-a287-4f21-bbdd-fd87345ac7e9} {bb3ebeac-f301-4a4e-9db0-2237d696731b} {570c18ba-9cd7-425f-a14c-f70471ba2f50} {4f9d677e-8bf8-42d9-9511-f86960c60335} {180f2c79-be11-4c92-8d7b-40e1dec30212} {6940c42f-07c6-4087-b129-1b6f159ca1bb} {81dccf54-a50d-483f-b60d-0dbfe0dec869} {16942c7a-c56f-496d-81a6-0c1d88c3e33a} {9d9afa69-0ec2-4302-9985-48426fdd26f4} {bc3fd17c-31ef-4565-894c-652fc23da12f} {e895d40d-aa5e-46f3-99b7-c7a0afa58732} {c31dd657-6718-4a15-bdde-0e5bb27ece85} {992c3092-0562-4768-b9ed-2500a5e38684} {4dde5311-0825-4e0b-bc18-2d9f028f7b9a} {d982eee8-ef5d-40fc-b93f-22c8c3586c1d} {fa580f95-9eef-42d7-97b6-0e433278ba7d} {d9ba4994-b4b4-48f7-83cb-421b2a71f40a} {1b984b9f-568a-4a99-9e71-10fa72a6341e} {ad7f38bb-d0ee-4a91-afcb-42d52602b838} {2366c516-0004-4ba4-8a63-6305a6e2a5ee} {e8365fb9-ff6e-4056-afe1-8e05e44e51c8} {8d104745-659c-4e7b-bcb7-e99ccbc4cfd9} {76754bbb-2c1a-48ce-b42f-3bb90bca73c5} {59615882-401c-4a8a-89bf-1fda74deb548} {4d41e7bb-0cf3-4484-a4da-ea69d2e97872} {2bd370c5-711d-4492-9355-5e2cad3f0655} {393f4e29-abbf-45b8-9bd3-d2f3d6300a4e} {5293f338-c9b1-444d-9b4c-4c09ff83355c} {01cf9be1-468b-4547-a213-bb5f1bcd3970} {1d9cf754-4fe6-4e90-afeb-0e680e10c10b} {7bed82c7-6dae-46db-b4c4-bf72b06d7732} {5a4c33b0-bc45-4294-9216-c7bfd6672b4e} {50172d9f-3f36-4cf4-a021-201ed76c9393} {ff9bc47d-3cb0-488a-8cbe-51c1069f9b4d} {99029d94-0910-482c-89fe-0e55a5795287} {1e01a7e9-2058-41d3-a443-4bbf251210e6} {f8e06817-ec48-4754-8f16-218d0277ae90} {0716224a-1f97-4c67-93b9-daa972132244} {24b2e9ba-1d35-4c75-b410-8056c98ddc27} {f059a651-6327-435b-ade6-b6e3ac1566b6} {8f6dd983-a9b1-4bfd-a090-9316a9c044fe} {84058894-9cd6-40e8-8ca6-06a17620a82e} {ba079f7f-f296-48ce-ac71-30020bd58f0c} {fb888b2a-c4a1-4f89-8472-b8dbbcc9a059} {4a4119bd-dcf4-44fc-b8e1-57b0546c0f29} {c7885166-9571-4ea4-b065-ebc8245b951b} Source Source Source\main Source\main Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools\autoregister Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk\ofstd Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\tls Source\main\controllers\dcmtk\tls Source\main\controllers\streaming Source\main\controllers\log4cplus Source\main\controllers\log4cplus Source\main\managers Source\main\gui Source\main\gui Source\main\gui\acquisition Source\main\gui\acquisition Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\export Source\main\gui\export Source\main\gui\export Source\main\gui\export Source\main\gui\hl7controlwindow Source\main\gui\hl7controlwindow Source\main\gui\import Source\main\gui\import Source\main\gui\import Source\main\gui\import Source\main\gui\import Source\main\gui\import Source\main\gui\license Source\main\gui\license Source\main\gui\license Source\main\gui\license Source\main\gui\license Source\main\gui\logcontrolwindow Source\main\gui\logcontrolwindow Source\main\gui\login Source\main\gui\mainwindow Source\main\gui\mainwindow Source\main\gui\mainwindow Source\main\gui\open Source\main\gui\open Source\main\gui\open Source\main\gui\paneltags Source\main\gui\paneltags Source\main\gui\progress Source\main\gui\progress Source\main\gui\progress Source\main\gui\countdownmessage Source\main\gui\countdownmessage Source\main\gui\countdownmessage Source\main\gui\startup Source\main\gui\startup Source\main\gui\startup Source\main\gui\dicomdirexport Source\main\gui\dicomdirexport Source\main\gui\history3 Source\main\gui\history3 Source\main\gui\history3 Source\main\gui\history3 Source\main\gui\history3 Source\main\gui\history3 Source\main\gui\anonymize Source\main\gui\anonymize Source\main\gui\selectpacsserver Source\main\gui\selectpacsserver Source\main\gui\previewpanel Source\main\gui\previewpanel Source\main\gui\previewpanel Source\main\gui\previewpanel Source\main\gui\previewpanel Source\main\gui\previewpanel Source\main\gui\toolsystem Source\main\gui\dicomdirmigration Source\main\gui\dicomdirmigration Source\main\toolsystem Source\main\toolsystem Source\main\utils Source\vtk Source\vtk Source\vtk Source\vtk\command Source\vtk\interactor Source\vtk\widgets Source\VTKInria3D Source\VTKInria3D\vtkVISUManagement Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\vtkVISUManagement\lut Source\VTKInria3D\wxVTK Source\export Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api\observers Source\api\observers Source\api\observers Source\api\observers Source\api\math Source\api\math Source\api\math Source\api\internationalization Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers\proxies Source\api\dicom Source\api\dicom Source\api\dicom Source\api\dicom Source\api\dicom Source\api\dicom Source\api\dicom Source\api\dicom Source\api\threads Source\api\integration Source\api\integration Source\api\helpers Source\api\helpers Source\api\helpers Source\api\helpers Source\api\instantiations Source\api\utils Source\api\toolsystem Source\api\toolsystem Source\api\toolsystem Source\api\toolsystem Source\wx\propiedades Source\wx\propiedades Source\wx\wxsqlite3 Source\wx\wxsqlite3 Source\wx\wxsqlite3 Source\wx\wxsqlite3 Source\wx\ginkgostyle Source\wx\thumbnailctrl Source\wx\thumbnailctrl Source\wx\wizardginkgo Source\wx\wizardginkgo Source\wx\maskedtextctrl Source\wx\gnkinforme Source\wx\gnkinforme Source\sqlite Source\sqlite Source\sqlite Source\sqlite Source\sqlite Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\eventos Source\eventos Source\eventos Source\eventos Source\eventos Source\eventos Source\eventos Source\eventos Source\eventos Source\eventos Source\eventos Source\eventos Source\endpoint Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets\gui Source\widgets\gui Source\widgets\gui Source\widgets\gui Source\widgets\observers Source\widgets\observers Source\widgets\observers Source\widgets\observers Source\prvext Source\itk Source\itk Source\itk Source\ginkgopro Source\ginkgopro Source\ginkgopro Source\ginkgopro Resources Source\main\gui\configuration Source\main\controllers Source\commands Source\commands Source\main\gui\history3 Source\commands Source\api\controllers Source\main\controllers Source\export\tools Source\main\tools Source\commands Source\eventos Source\export\tools Source\main\tools Source\export Source\main\tools Source\main\tools Source\export\tools Source\main\gui\anonymize Source\api Source\main\tools Source\main\gui\ginkgocloud Source\main\gui\ginkgocloud Source\commands Source\jsoncpp Source\jsoncpp\json Source\jsoncpp\json Source\jsoncpp\json Source\jsoncpp\json Source\jsoncpp\json Source\jsoncpp\json Source\jsoncpp\json Source\jsoncpp\json Source\main\gui\ginkgocloud Source\main\gui\ginkgocloud Source\commands Source\export\tools Source\main\tools Source\widgets Source\main\gui\acquisition Source\api\dicom Source\commands Source\main\controllers Source\main\gui\configuration Source\widgets Source\export\contracts Source\export\contracts Source\export\tools Source\main\tools Source\main\tools Source\main\tools Source\export\tools Source\main\tools Source\widgets Source\export\tools Source\main\tools Source\widgets Source\VTKInria3D\vtkVISUManagement\lut Source\api Source\main\controllers Source\main\gui\configuration Source\commands Source\main\controllers Source\api\controllers Source\wx Source\main\gui\history3 Source\main\gui\toolsystem Source\main\gui\acquisition Source\export\tools Source\main\tools Source\main\gui\open Source\main\gui\configuration Source\main\controllers Source\main\controllers Source\main\gui\pacsupload Source\main\gui\pacsupload Source\widgets Source\widgets Source\widgets Source Source\main Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools Source\main\tools\autoregister Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\libi2d Source\main\controllers\dcmtk\tls Source\main\controllers\dcmtk\tls\win-only Source\main\controllers\dcmtk\tls\win-only Source\main\controllers\dcmtk\tls\win-only Source\main\controllers\streaming Source\main\controllers\log4cplus Source\main\managers Source\main\gui Source\main\gui Source\main\gui\acquisition Source\main\gui\acquisition Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\configuration Source\main\gui\export Source\main\gui\export Source\main\gui\export Source\main\gui\hl7controlwindow Source\main\gui\hl7controlwindow Source\main\gui\import Source\main\gui\import Source\main\gui\import Source\main\gui\import Source\main\gui\import Source\main\gui\license Source\main\gui\license Source\main\gui\license Source\main\gui\license Source\main\gui\license Source\main\gui\logcontrolwindow Source\main\gui\logcontrolwindow Source\main\gui\login Source\main\gui\mainwindow Source\main\gui\mainwindow Source\main\gui\mainwindow Source\main\gui\open Source\main\gui\open Source\main\gui\open Source\main\gui\paneltags Source\main\gui\paneltags Source\main\gui\progress Source\main\gui\progress Source\main\gui\progress Source\main\gui\countdownmessage Source\main\gui\countdownmessage Source\main\gui\countdownmessage Source\main\gui\startup Source\main\gui\startup Source\main\gui\startup Source\main\gui\dicomdirexport Source\main\gui\dicomdirexport Source\main\gui\history3 Source\main\gui\history3 Source\main\gui\history3 Source\main\gui\history3 Source\main\gui\anonymize Source\main\gui\anonymize Source\main\gui\selectpacsserver Source\main\gui\selectpacsserver Source\main\gui\previewpanel Source\main\gui\previewpanel Source\main\gui\previewpanel Source\main\gui\previewpanel Source\main\gui\toolsystem Source\main\gui\dicomdirmigration Source\main\gui\dicomdirmigration Source\main\toolsystem Source\main\toolsystem Source\main\utils Source\vtk Source\vtk Source\vtk Source\vtk\command Source\vtk\interactor Source\vtk\widgets Source\VTKInria3D\vtkVISUManagement Source\VTKInria3D\wxVTK Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\tools Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\export\contracts Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api Source\api\observers Source\api\observers Source\api\internationalization Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\controllers Source\api\dicom Source\api\dicom Source\api\threads Source\api\helpers Source\api\helpers Source\api\utils Source\api\toolsystem Source\api\toolsystem Source\api\toolsystem Source\api\toolsystem Source\wx\propiedades Source\wx\propiedades Source\wx\wxsqlite3 Source\wx\ginkgostyle Source\wx\thumbnailctrl Source\wx\thumbnailctrl Source\wx\wizardginkgo Source\wx\wizardginkgo Source\wx\maskedtextctrl Source\wx\gnkinforme Source\wx\gnkinforme Source\sqlite Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\commands Source\endpoint Source\endpoint Source\endpoint Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets Source\widgets\gui Source\widgets\gui Source\widgets\gui Source\widgets\gui Resources Source\main\gui\configuration Source\main\controllers Source\commands Source\commands Source\main\gui\history3 Source\commands Source\api\controllers Source\main\controllers Source\export\tools Source\main\tools Source\commands Source\export\tools Source\main\tools Source\export Source\main\tools Source\main\tools Source\export\tools Source\main\tools Source\main\gui\ginkgocloud Source\main\gui\ginkgocloud Source\commands Source\jsoncpp Source\jsoncpp Source\jsoncpp Source\main\gui\ginkgocloud Source\main\gui\ginkgocloud Source\commands Source\export\tools Source\main\tools Source\main\gui\anonymize Source\widgets Source\main\gui\acquisition Source\api\dicom Source\api\controllers Source\api\controllers\proxies Source\commands Source\main\gui\configuration Source\widgets Source\export\contracts Source\export\contracts Source\export\tools Source\main\tools Source\main\tools Source\main\tools Source\export\tools Source\main\tools Source\widgets Source\export\tools Source\main\tools Source\widgets Source\main\gui\anonymize Source\main\controllers Source\api Source\main\controllers Source\main\gui\configuration Source\api\dicom Source\commands Source\main\controllers Source\main\gui\history3 Source\main\gui\history3 Source\main\gui\toolsystem Source\main\gui\acquisition Source\wx Source\export\tools Source\main\tools Source\main\gui\open Source\main\gui\configuration Source\main\controllers Source\main\controllers Source\main\gui\pacsupload Source\main\gui\pacsupload Source\widgets Source\widgets Source\widgets Resources Resources Source\jsoncpp Source\jsoncpp Source\jsoncpp ginkgocadx-3.8.7/cadxcore/commands/000077500000000000000000000000001314736454600172555ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/commands/DialogoPathsSobreescribir.fbp000066400000000000000000001162641314736454600250540ustar00rootroot00000000000000 ; C++ 1 source_name 0 UTF-8 connect dialogopathssobreescribirbase 1052 none 1 DialogoPathsSobreescribir "GNC" "GUI" . 1 1 0 0 wxBOTH 1 1 impl_virtual 0 wxID_ANY 700,209 OverwriteDialogBase -1,-1 wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Overwrite Paths wxFILTER_NONE wxDefaultValidator bSizer3 wxVERTICAL none 5 wxEXPAND 1 1 1 0 wxID_ANY m_pBody protected BodyPanel; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer6 wxVERTICAL none 5 wxEXPAND 1 1 1 0 wxID_ANY m_pPanelOverwrite public TitledPanel; wx/ginkgostyle/ginkgostyle.h Overwrite wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer31 wxVERTICAL none 0 0 1 1 0 wxID_ANY m_pTextMessage public wxFILTER_NONE wxDefaultValidator -1 10 wxBOTTOM 0 1 1 0 wxID_ANY Would you like to overwrite them? m_staticText1 protected wxFILTER_NONE wxDefaultValidator 440 5 wxEXPAND|wxTOP 1 1 1 1 wxID_ANY m_pPathList public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 0 wxID_ANY m_pFooter protected FooterPanel; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer4 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 0 1 0 wxID_OK Overwrite m_button1 protected wxFILTER_NONE wxDefaultValidator 5 wxLEFT 0 1 1 1 0 wxID_CANCEL Cancel m_button2 protected wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/commands/DicomizationComplete.fbp000066400000000000000000000756401314736454600241040ustar00rootroot00000000000000 ; C++ 1 source_name 0 UTF-8 connect dicomizationcompletebase 1052 none 1 DicomizationComplete "GNC" "GUI" . 1 1 0 0 wxBOTH 1 1 impl_virtual 0 wxID_ANY 500,250 DicomizationCompleteBase -1,-1 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Dicomization complete wxFILTER_NONE wxDefaultValidator bSizer3 wxVERTICAL none 5 wxEXPAND 0 0,0,0 1 1 0 wxID_ANY m_pHeader protected HeaderPanel; wx/ginkgostyle/ginkgostyle.h Dicomization complete wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 0 wxID_ANY -1,-1 m_pBodyPanel protected BodyPanel; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND 0 1 1 0 wxID_ANY m_pPanelTitled protected TitledPanel; wx/ginkgostyle/ginkgostyle.h Dicomization complete wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer16 wxVERTICAL none 5 wxALL 0 1 1 0 wxID_ANY Dicomization finished successfully m_staticText8 protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY m_panel12 protected FooterPanel; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer15 wxHORIZONTAL none 5 wxALL 0 0 1 1 0 wxID_ANY Don't show this message again m_pCheckNotShow public wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 0 wxID_CANCEL Accept m_button5 protected wxFILTER_NONE wxDefaultValidator OnYesClick ginkgocadx-3.8.7/cadxcore/commands/acquirefromurlcommand.cpp000066400000000000000000000137101314736454600243620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include
#include #include #include
#include
#include #include "acquirefromurlcommand.h" #include "comandoincluirhistorial.h" #include #include #define IDC_ACQUIRE_FROM_URL_COMMAND 123 // Singleton de persistencia namespace GADAPI { AcquireFromURLCommandParameters::AcquireFromURLCommandParameters(const std::list& urlList) : m_urlList(urlList), m_pSemWait(new wxSemaphore()) { } AcquireFromURLCommandParameters::~AcquireFromURLCommandParameters() { if (m_pSemWait != NULL) { delete m_pSemWait; m_pSemWait = NULL; } } AcquireFromURLCommand::AcquireFromURLCommand(AcquireFromURLCommandParameters* pParams) : IComando(pParams) { m_pAcquireParams = pParams; SetId(IDC_ACQUIRE_FROM_URL_COMMAND); GNC::Entorno::Instance()->GetControladorEventos()->Registrar(this, GNC::GCS::Events::EventoProgresoComando()); } void AcquireFromURLCommand::Execute() { std::string tarea= _Std("Downloading files ..."); if (!NotificarProgreso(0.0f,tarea)) { return; } GIL::DICOM::IPACSController* pCI = NULL; std::string pathDownloadedFiles = GNC::Entorno::Instance()->CrearDirectorioTemporal(); try { pCI = GNC::GCS::IEntorno::Instance()->GetPACSController(); int fileNum = 1; for (std::list::const_iterator it = m_pAcquireParams->m_urlList.begin(); it != m_pAcquireParams->m_urlList.end(); ++it) { { if (!NotificarProgreso(fileNum/m_pAcquireParams->m_urlList.size(), std::string(wxString::Format(_("Downloading file %d"), fileNum).ToUTF8()))) { return; } } ++fileNum; std::ostringstream ostr; ostr << pathDownloadedFiles; ostr << (char)wxFileName::GetPathSeparator(); ostr << fileNum; if (!pCI->DownloadFileFromURL((*it), ostr.str(), this)) { std::ostringstream ostrErr; ostrErr << _Std("Error downloading file: "); ostrErr << (*it); throw GIL::DICOM::PACSException(ostrErr.str()); } } } catch (GIL::DICOM::PACSException& ex) { m_pAcquireParams->m_error = (const std::string)ex; } catch (std::exception& ex) { m_pAcquireParams->m_error= ex.what(); } catch (...) { m_pAcquireParams->m_error= _Std("Internal Error"); } //including history.... if(m_pAcquireParams->m_error.empty()) { GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(pathDownloadedFiles, true, GNC::GCS::IHistoryController::TAA_MOVE); pParams->m_abrirDespuesDeCargar = true; GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial * pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync("Processing...",pCmd,this); m_pAcquireParams->m_pSemWait->Wait(); } NotificarProgreso(1.0f,tarea); } void AcquireFromURLCommand::Update() { if (EstaAbortado()) { return; } if(!m_pAcquireParams->m_error.empty()) { GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL, _Std("Error downloading files: ") + "\n" + m_pAcquireParams->m_error, GNC::GCS::Events::EventoMensajes::PopUpMessage,false, GNC::GCS::Events::EventoMensajes::Error)); return; } } bool AcquireFromURLCommand::NotificarProgreso(float progresoNormalizado,const std::string &texto) { if (EstaAbortado()) { return false; } return IComando::NotificarProgreso(progresoNormalizado, texto); } void AcquireFromURLCommand::LiberarRecursos() { } void AcquireFromURLCommand::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { GNC::GCS::Events::EventoProgresoComando* pEvt = dynamic_cast (evt); if (!pEvt) { LOG_TRACE("Net", "AcquireFromURLCommand::ProcesarEvento: unexpected event type, ignore"); return; } GNC::GCS::IComando* pCmd = pEvt->GetComando(); if (pCmd != NULL && pCmd->GetOwner() == this &&pEvt->GetTipo() == GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado) { m_pAcquireParams->m_pSemWait->Post(); } } } ginkgocadx-3.8.7/cadxcore/commands/acquirefromurlcommand.h000066400000000000000000000034351314736454600240320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include class wxSemaphore; namespace GADAPI { class AcquireFromURLCommandParameters : public GNC::GCS::IComandoParams { public: //download only specifying AcquireFromURLCommandParameters(const std::list& urlList); virtual ~AcquireFromURLCommandParameters(); public: std::list m_urlList; std::string m_error; wxSemaphore* m_pSemWait; }; class AcquireFromURLCommand : public GNC::GCS::IComando, public GNC::GCS::IEventsObserver { public: AcquireFromURLCommand(AcquireFromURLCommandParameters* pParams); protected: virtual void Execute(); virtual void Update(); public: virtual bool NotificarProgreso(float progresoNormalizado, const std::string &texto); virtual void LiberarRecursos(); virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt); AcquireFromURLCommandParameters* m_pAcquireParams; }; } ginkgocadx-3.8.7/cadxcore/commands/autocleaningcommand.cpp000066400000000000000000000206671314736454600240040ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "autocleaningcommand.h" #include #include
#include
#include
#include #include #include /* this command is composed of two commands the sequence is this: 1 - get a list of candidates to be deleted listA 2 - synchronize with gui and call history panel to drop those candidates 3 - if any delete has be performed resets autocleaning controller to launch command again... */ #define IDC_AUTOCLEANING_COMMAND 122 GADAPI::AutoCleaningCommandParameters::AutoCleaningCommandParameters(int olderThan, int hdSpace, int dicomDirSize): OlderThan(olderThan), HdSpace(hdSpace), DicomDirSize(dicomDirSize) { } GADAPI::AutoCleaningCommandParameters::~AutoCleaningCommandParameters() { } GADAPI::AutoCleaningCommand::AutoCleaningCommand(AutoCleaningCommandParameters* pParams) : IComando(pParams) { m_pAutoCleaningParameters = pParams; SetId(IDC_AUTOCLEANING_COMMAND); AbortaSi(IDC_AUTOCLEANING_COMMAND); } bool compareCreation (const GNC::GCS::IHistoryController::StudyModel& first, const GNC::GCS::IHistoryController::StudyModel& second) { wxDateTime dtFirst, dtSecond; dtFirst.ParseFormat(wxString::FromUTF8(first.created_time.c_str()), wxT("%Y-%m-%dT%H:%M:%S.%l")); dtSecond.ParseFormat(wxString::FromUTF8(second.created_time.c_str()), wxT("%Y-%m-%dT%H:%M:%S.%l")); return dtFirst > dtSecond; } void GADAPI::AutoCleaningCommand::Execute() { std::string tarea= _Std("Cleaning dicomdir..."); if (!NotificarProgreso(0.0f,tarea)) { return; } //from more restrictive to less... if (m_pAutoCleaningParameters->OlderThan > 0) { //ask history studies older than.. wxDateTime from, to; to = wxDateTime::Now(); to.Add(wxDateSpan::Days(-1*m_pAutoCleaningParameters->OlderThan)); GNC::GCS::History::AcquisitionDateFilter filter(from,to); filter.Enable(true); GNC::GCS::HistoryController::StudyModelList studyList; std::list filterList; filterList.push_back(&filter); GNC::GCS::HistoryController::Instance()->GetStudies(filterList, studyList); int progress = 0; for (GNC::GCS::HistoryController::StudyModelList::iterator it = studyList.begin(); it != studyList.end(); ++it,progress++) { if (!NotificarProgreso((double)progress/studyList.size(),tarea)) { return; } GNC::GCS::HistoryController::Instance()->GetSeriesFromStudy((*it).pk, m_pAutoCleaningParameters->seriesToDelete); } } //how much size we have to free wxDiskspaceSize_t spaceToFree = 0; wxDiskspaceSize_t KB = 1024; wxDiskspaceSize_t MB = KB*1024; // wxDiskspaceSize_t GB = MB*1024; //if there is no series to delete try with next criteria if (m_pAutoCleaningParameters->HdSpace > 0 && m_pAutoCleaningParameters->seriesToDelete.empty()) { //guess how much size we have to free... wxDiskspaceSize_t total = 0; wxDiskspaceSize_t free = 0; if (wxGetDiskSpace(FROMPATH(GNC::GCS::HistoryController::Instance()->GetGinkgoDicomDir()), &total, &free) ) { wxDiskspaceSize_t hdSpaceInBytes = wxDiskspaceSize_t(m_pAutoCleaningParameters->HdSpace) * MB; if (hdSpaceInBytes > free) { //we have to free bytes spaceToFree = hdSpaceInBytes - free; } } } //if there is no series to delete and spactofree is ok try with next criteria if (m_pAutoCleaningParameters->DicomDirSize > 0 && m_pAutoCleaningParameters->seriesToDelete.empty() && spaceToFree == 0) { wxString dicomDirPath(FROMPATH(GNC::GCS::HistoryController::Instance()->GetGinkgoDicomDir())); //know current dicomdir size... wxDiskspaceSize_t currentSize = 0; wxDir dir; if (dir.Open(dicomDirPath)) { wxString wxPathFich; bool cont = dir.GetFirst(&wxPathFich,wxEmptyString, wxDIR_FILES | wxDIR_DIRS); while (cont) { wxPathFich = dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) + wxPathFich; if (wxFileName::IsFileReadable(wxPathFich)) { currentSize += wxFileName::GetSize(wxPathFich).GetValue(); } cont = dir.GetNext(&wxPathFich); } } wxDiskspaceSize_t maxDicomDirSizeBytes = wxDiskspaceSize_t(m_pAutoCleaningParameters->DicomDirSize) * MB; if (currentSize > maxDicomDirSizeBytes) { spaceToFree = currentSize - maxDicomDirSizeBytes; } } if (spaceToFree > 0) { LOG_DEBUG("AutoCleaning", "We have to free " << spaceToFree.ToDouble() << "bytes"); //select all studies sort by acquisition date located in local database... GNC::GCS::HistoryController::StudyModelList studyList; GNC::GCS::History::StudyLocationFilter filter(GNC::GCS::HistoryController::TL_LocalDatabase); std::list filterList; filterList.push_back(&filter); GNC::GCS::HistoryController::Instance()->GetStudies(filterList, studyList); //sort them by acquisition date.. studyList.sort(compareCreation); int progress = 0; for (GNC::GCS::HistoryController::StudyModelList::iterator itStudy = studyList.begin(); spaceToFree>0 && itStudy != studyList.end(); ++itStudy, ++progress) { if (!NotificarProgreso((double)progress/studyList.size(),tarea)) { return; } //calculate study size to delete it... GNC::GCS::HistoryController::SeriesModelList series; GNC::GCS::HistoryController::Instance()->GetSeriesFromStudy((*itStudy).pk, series); for (GNC::GCS::HistoryController::SeriesModelList::iterator itSeries = series.begin(); itSeries != series.end(); ++itSeries) { GNC::GCS::HistoryController::LightFileModelList files; GNC::GCS::HistoryController::Instance()->GetSeriesSortedFileModels((*itSeries).pk, files); for (GNC::GCS::HistoryController::LightFileModelList::iterator itFiles = files.begin(); itFiles != files.end(); ++itFiles) { if ((*itFiles).location == GNC::GCS::HistoryController::TL_LocalDatabase) { wxFileName fn(FROMPATH((*itFiles).real_path)); spaceToFree -= fn.GetSize().GetValue(); } } m_pAutoCleaningParameters->seriesToDelete.push_back((*itSeries)); } } } } void GADAPI::AutoCleaningCommand::Update() { if (EstaAbortado()) { return; } } ginkgocadx-3.8.7/cadxcore/commands/autocleaningcommand.h000066400000000000000000000030471314736454600234420ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include namespace GADAPI { class AutoCleaningCommandParameters : public GNC::GCS::IComandoParams { public: //download only specifying AutoCleaningCommandParameters(int olderThan, int hdSpace, int dicomDirSize); virtual ~AutoCleaningCommandParameters(); public: int OlderThan; int HdSpace; int DicomDirSize; GNC::GCS::IHistoryController::SeriesModelList seriesToDelete; }; class AutoCleaningCommand: public GNC::GCS::IComando { public: AutoCleaningCommand(AutoCleaningCommandParameters* pParams); protected: virtual void Execute(); virtual void Update(); public: AutoCleaningCommandParameters* m_pAutoCleaningParameters; }; } ginkgocadx-3.8.7/cadxcore/commands/cloudcommand.cpp000066400000000000000000000602421314736454600224320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include "cloudcommand.h" #include "comandoincluirhistorial.h" #include #include #include #include #include #include
#include #include #include #include #include #include #include #include #include #include #include #define CLOUD_PROTOCOL_VERSION "1.1" ////helper... inline std::string FromBase64(const std::string& input) { char* pOutput = (char*)malloc(input.size()); BIO *bin, *b64; b64 = BIO_new(BIO_f_base64()); BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL); bin = BIO_new_mem_buf((void*) input.c_str(), input.size()); bin = BIO_push(b64, bin); int size = BIO_read(bin, pOutput, input.size()); std::string outputstr(pOutput, size); BIO_free_all(b64); free(pOutput); return outputstr; } int progress_func_download_cloud(void* ptr, double TotalToDownload, double NowDownloaded, double , double ) { GNC::GCS::CloudCommand* pCmd = (GNC::GCS::CloudCommand*)(ptr); if (pCmd != NULL && TotalToDownload != 0) { if (pCmd->NotificarProgreso((float)NowDownloaded/TotalToDownload, _Std("Downloading files..."))) { return 0; } else { return -1; } } else { return 0; } } // namespace GNC { struct InMemmoryDataHandler { char *data; size_t bufferlen; size_t writepos; int initialized; }; size_t static inMemmoryResponseHandler( void *ptr, size_t size, size_t nmemb, void *userdata) { size_t nbytes = size*nmemb; struct InMemmoryDataHandler* dataHandler = (struct InMemmoryDataHandler*) userdata; if (!(dataHandler)->initialized) { (dataHandler)->data = (char *)malloc(nbytes); (dataHandler)->bufferlen = nbytes; (dataHandler)->writepos = 0; (dataHandler)->initialized = true; } if ((dataHandler)->bufferlen < ((dataHandler)->writepos + nbytes)) { (dataHandler)->bufferlen = (dataHandler)->bufferlen + nbytes; (dataHandler)->data = (char*) realloc((dataHandler)->data, (size_t) ((dataHandler)->writepos + nbytes)); } assert((dataHandler)->data != NULL); memcpy( (dataHandler)->data + (dataHandler)->writepos, ptr, nbytes); (dataHandler)->writepos += nbytes; return nbytes; } struct FileDataHandler { wxFFileOutputStream* fos; size_t filelen; }; size_t static fileResponseHandler( void *ptr, size_t size, size_t nmemb, void *userdata) { size_t nbytes = size * nmemb; struct FileDataHandler* dataHandler = (struct FileDataHandler *) userdata; dataHandler->fos->Write(ptr, nbytes); dataHandler->filelen += nbytes; return nbytes; } } // CloudCommandParams GNC::GCS::CloudCommandParams::CloudCommandParams(GNC::GCS::CloudCommandParams::ActionType action) : m_action(action) { } GNC::GCS::CloudCommandParams::~CloudCommandParams() { } // CloudGetCommandParams GNC::GCS::CloudGetCommandParams::CloudGetCommandParams(const std::string& url, bool base64) : CloudCommandParams(CloudCommandParams::CC_GET), m_url (url) { if (base64) { std::string urlWithoutPrefix = url; wxString urlWx = wxString::FromUTF8(url.c_str()); if (urlWx.StartsWith(wxT("ginkgocadx://cloud:"))) { urlWithoutPrefix = urlWx.SubString(19,urlWx.size()-1).ToUTF8(); } m_url = FromBase64(urlWithoutPrefix); } else { m_url = url; } } GNC::GCS::CloudGetCommandParams::~CloudGetCommandParams() { } // CloudFindCommandParams GNC::GCS::CloudFindCommandParams::CloudFindCommandParams(const std::string& bucketId,const std::string& userNameQuery, const std::string& descriptionQuery, const std::string& modalitiesQuery, const std::string& fromDateQuery, const std::string& toDateQuery) : CloudCommandParams(CloudCommandParams::CC_FIND), m_bucketId(bucketId), m_userNameQuery(userNameQuery), m_descriptionQuery(descriptionQuery), m_modalitiesQuery(modalitiesQuery), m_fromDateQuery(fromDateQuery), m_toDateQuery(toDateQuery) { } GNC::GCS::CloudFindCommandParams::~CloudFindCommandParams() { } // CloudCommand GNC::GCS::CloudCommand::CloudCommand(::GNC::GCS::CloudCommandParams* pParams): GNC::GCS::IComando(pParams, _Std("CloudCommand")) { m_pCloudParams = pParams; } void GNC::GCS::CloudCommand::Execute() { try { if (m_pCloudParams->m_action == CloudCommandParams::CC_FIND) { doFind(static_cast(m_pParams)); } else if (m_pCloudParams->m_action == CloudCommandParams::CC_GET) { doGet(static_cast(m_pParams)); } else { m_pCloudParams->m_error = _Std("Unknown operation"); } } catch (std::exception& ex) { std::ostringstream ostr; ostr << _Std("Error in cloud operation. See log to get more details...") << std::endl; ostr << ex.what(); m_pCloudParams->m_error = ostr.str(); } } void GNC::GCS::CloudCommand::doGet(GNC::GCS::CloudGetCommandParams* pParams) { // Step 1: Setup handler FileDataHandler responseDataHandler; memset(&responseDataHandler, 0, sizeof(FileDataHandler)); std::ostringstream ostr; ostr << GNC::GCS::IEntorno::Instance()->CreateGinkgoTempFile() << time(NULL) << ".tgz"; std::string tgzFile = ostr.str(); wxString tmpFile(FROMPATH(tgzFile)); responseDataHandler.fos = new wxFFileOutputStream(tmpFile); // Step 2: Download CURL *curl; CURLcode res; double speed_upload, total_time; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, pParams->m_url.c_str()); std::ostringstream userAgent; userAgent << "Mozilla/5.0 (compatible; GinkgoCADx " << GNC::GCS::IEntorno::Instance()->GetGinkgoVersionString() << " )"; curl_easy_setopt(curl, CURLOPT_USERAGENT, userAgent.str().c_str()); //proxy settings GNC::GCS::ProxySettings settings = GNC::GCS::ConfigurationController::Instance()->GetProxySettings(); if (settings.useProxy) { curl_easy_setopt(curl, CURLOPT_PROXY, settings.hostName.c_str()); curl_easy_setopt(curl, CURLOPT_PROXYPORT, settings.port); if (settings.requiresAuth) { curl_easy_setopt(curl, CURLOPT_PROXYUSERNAME, settings.userName.c_str()); curl_easy_setopt(curl, CURLOPT_PROXYPASSWORD, settings.password.c_str()); } curl_easy_setopt(curl, CURLOPT_NOPROXY, settings.exceptions.c_str()); } curl_easy_setopt(curl, CURLOPT_HTTPGET, TRUE); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fileResponseHandler); curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *) &responseDataHandler); //progress curl_easy_setopt(curl, CURLOPT_PROGRESSDATA , this); curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_func_download_cloud); curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0); res = curl_easy_perform(curl); // Check for errors if(res != CURLE_OK) { std::ostringstream os; os << _Std("Could to retrieve study.") << " " << curl_easy_strerror(res); m_pCloudParams->m_error = os.str(); LOG_ERROR("CloudGet", m_pCloudParams->m_error); } else { long http_code = 0; curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &http_code); if (http_code != 200) { std::ostringstream os; if (http_code == 410) { //version is not supported os << _Std("This version of Ginkgo CADx is not compatible with current version of Ginkgo Cloud."); } else { os << _Std("Error retrieving study.") << " Http error code: " << http_code; } m_pCloudParams->m_error = os.str(); LOG_ERROR("CloudGet", m_pCloudParams->m_error); } else { // now extract transfer info curl_easy_getinfo(curl, CURLINFO_SPEED_UPLOAD, &speed_upload); curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &total_time); std::ostringstream ostr; ostr << _Std("Study successfully retrieved.") << " " << _Std("Speed") << " " << responseDataHandler.filelen << " " << _Std("bytes/sec during") << " " << total_time << " " << _Std("seconds"); LOG_INFO("CloudGet", ostr.str()); if (responseDataHandler.filelen == 0) { std::ostringstream os; os << _Std("Empty Response"); m_pCloudParams->m_error = os.str(); LOG_ERROR("CloudGet", m_pCloudParams->m_error); } } } // always cleanup curl_easy_cleanup(curl); } responseDataHandler.fos->Close(); delete responseDataHandler.fos; //untar... wxFileName fileIn ( tmpFile ); NotificarProgreso(0.95f, _Std("Extracting files...")); { wxFFileInputStream fsIn(fileIn.GetFullPath()); wxZlibInputStream gzIn(fsIn, wxZLIB_GZIP); if (gzIn.IsOk()) { wxTarInputStream tarIn(gzIn); if (tarIn.IsOk()) { pParams->m_baseDir = GNC::GCS::IEntorno::Instance()->CrearDirectorioTemporal(); wxString baseTargetDir(FROMPATH(pParams->m_baseDir)); for (wxTarEntry* entry = tarIn.GetNextEntry(); entry != NULL; entry = tarIn.GetNextEntry()) { if (entry->IsDir()) { wxMkdir(baseTargetDir + wxFileName::GetPathSeparator() + entry->GetName()); } else { wxFFileOutputStream fileOut(baseTargetDir + wxFileName::GetPathSeparator() + entry->GetName()); tarIn.Read(fileOut); fileOut.Close(); tarIn.CloseEntry(); } delete entry; } } else { pParams->m_error = _Std("Invalid file has been downloaded"); } } else { pParams->m_error = _Std("Invalid file has been downloaded"); } } wxRemoveFile(fileIn.GetFullPath()); wxRmdir(fileIn.GetPath()); } void GNC::GCS::CloudCommand::doFind(GNC::GCS::CloudFindCommandParams* pParams) { // Step 1: Setup handler InMemmoryDataHandler responseDataHandler; memset(&responseDataHandler, 0, sizeof(InMemmoryDataHandler)); // Step 2: Invoke CURL *curl; CURLcode res; double speed_upload, total_time; curl = curl_easy_init(); if(curl) { std::ostringstream baseUrl; baseUrl << GINKGO_CLOUD_URI << "/find/"; baseUrl << pParams->m_bucketId; baseUrl << "/"; curl_easy_setopt(curl, CURLOPT_URL, baseUrl.str().c_str()); std::ostringstream userAgent; userAgent << "Mozilla/5.0 (compatible; GinkgoCADx " << GNC::GCS::IEntorno::Instance()->GetGinkgoVersionString() << " )"; curl_easy_setopt(curl, CURLOPT_USERAGENT, userAgent.str().c_str()); //proxy settings GNC::GCS::ProxySettings settings = GNC::GCS::ConfigurationController::Instance()->GetProxySettings(); if (settings.useProxy) { curl_easy_setopt(curl, CURLOPT_PROXY, settings.hostName.c_str()); curl_easy_setopt(curl, CURLOPT_PROXYPORT, settings.port); if (settings.requiresAuth) { curl_easy_setopt(curl, CURLOPT_PROXYUSERNAME, settings.userName.c_str()); curl_easy_setopt(curl, CURLOPT_PROXYPASSWORD, settings.password.c_str()); } curl_easy_setopt(curl, CURLOPT_NOPROXY, settings.exceptions.c_str()); } struct curl_httppost* post = NULL; struct curl_httppost* last = NULL; curl_formadd(&post, &last, CURLFORM_COPYNAME, "userName", CURLFORM_COPYCONTENTS, pParams->m_userNameQuery.c_str(), CURLFORM_END); curl_formadd(&post, &last, CURLFORM_COPYNAME, "description", CURLFORM_COPYCONTENTS, pParams->m_descriptionQuery.c_str(), CURLFORM_END); curl_formadd(&post, &last, CURLFORM_COPYNAME, "modalities", CURLFORM_COPYCONTENTS, pParams->m_modalitiesQuery.c_str(), CURLFORM_END); curl_formadd(&post, &last, CURLFORM_COPYNAME, "fromDate", CURLFORM_COPYCONTENTS, pParams->m_fromDateQuery.c_str(), CURLFORM_END); curl_formadd(&post, &last, CURLFORM_COPYNAME, "toDate", CURLFORM_COPYCONTENTS, pParams->m_toDateQuery.c_str(), CURLFORM_END); curl_formadd(&post, &last, CURLFORM_COPYNAME, "versionId", CURLFORM_COPYCONTENTS, CLOUD_PROTOCOL_VERSION, CURLFORM_END); curl_easy_setopt(curl, CURLOPT_HTTPPOST, post); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, GNC::inMemmoryResponseHandler); curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *) &responseDataHandler); res = curl_easy_perform(curl); // Check for errors // Check for errors if(res != CURLE_OK) { std::ostringstream os; os << _Std("Could to perform query.") << " " << curl_easy_strerror(res); m_pCloudParams->m_error = os.str(); LOG_ERROR("CloudFind", m_pCloudParams->m_error); } else { long http_code = 0; curl_easy_getinfo (curl, CURLINFO_RESPONSE_CODE, &http_code); if (http_code != 200) { std::ostringstream os; if (http_code == 410) { //version is not supported os << _Std("This version of Ginkgo CADx is not compatible with current version of Ginkgo Cloud."); } else { os << _Std("Error perfoming the query.") << " Http error code: " << http_code; } m_pCloudParams->m_error = os.str(); LOG_ERROR("CloudFind", m_pCloudParams->m_error); } else { // now extract transfer info curl_easy_getinfo(curl, CURLINFO_SPEED_UPLOAD, &speed_upload); curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME, &total_time); std::ostringstream ostr; ostr << _Std("Query successfully performed.") << " " << _Std("Speed") << " " << speed_upload << " " << _Std("bytes/sec during") << " " << total_time << " " << _Std("seconds"); LOG_INFO("CloudFind", ostr.str()); } } // always cleanup if (responseDataHandler.bufferlen > 0 && m_pCloudParams->m_error.empty()) { if (GNC::GCS::IControladorLog::Instance()->IsEnabledFor(GNC::GCS::IControladorLog::TraceLog)) { std::string jsonData = std::string(responseDataHandler.data, responseDataHandler.bufferlen); LOG_TRACE("CloudFind", _Std("JSon Response") << ": " << jsonData); } Json::Value root; Json::Reader reader; bool parsingSuccessful = reader.parse( responseDataHandler.data, responseDataHandler.data + responseDataHandler.bufferlen, root ); if (parsingSuccessful) { for (Json::ValueIterator it1 = root.begin(); it1 != root.end(); ++it1) { CloudFindCommandParams::ResultTuple rtuple; Json::Value& tuple = (*it1); Json::Value::Members m = tuple.getMemberNames(); for (Json::Value::Members::iterator it2 = m.begin(); it2 != m.end(); ++it2) { const std::string& name = (*it2); Json::Value& value = tuple[name]; if (value.isString()) { rtuple[name] = tuple.get(name, "").asCString(); } else if (value.isBool()) { if (value.asBool()) { rtuple[name] = "true"; } else { rtuple[name] = "false"; } } else if (value.isInt()) { std::ostringstream os; os << value.asInt(); rtuple[name] = os.str(); } else if (value.isDouble()) { std::ostringstream os; os << value.asInt(); rtuple[name] = os.str(); } else if (value.isArray()) { if (name == "modalities") { bool start = true; Json::Value& modalities = tuple[name]; std::ostringstream os; for (Json::ValueIterator it3 = modalities.begin(); it3 != modalities.end(); ++it3) { Json::Value& modality = (*it3); if (modality.isString()) { if (start) { start = false; } else { os << "/"; } os << modality.asCString(); } } rtuple[name] = os.str(); } } else { LOG_TRACE("CloudFind", _Std("Unknown JSon attribute:") << ": " << name); } } pParams->m_pResults.push_back(rtuple); } } else { std::ostringstream os; os << _Std("Error parsing JSon: "); os << reader.getFormattedErrorMessages(); m_pCloudParams->m_error = os.str(); LOG_ERROR("CloudFind", m_pCloudParams->m_error); } } else { LOG_ERROR("CloudFind", _Std("Null Response")); } if (responseDataHandler.data != NULL) { free(responseDataHandler.data); } curl_formfree(post); curl_easy_cleanup(curl); } } void GNC::GCS::CloudCommand::Update() { if (m_pCloudParams->m_error != "") { GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL, m_pCloudParams->m_error, GNC::GCS::Events::EventoMensajes::PopUpMessage, false, GNC::GCS::Events::EventoMensajes::Error)); } else { if (m_pCloudParams->m_action == CloudCommandParams::CC_GET) { CloudGetCommandParams* pParams = static_cast(m_pCloudParams); if (pParams != NULL) { GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pIncluirParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(pParams->m_baseDir, true, GNC::GCS::IHistoryController::TAA_MOVE); pIncluirParams->m_abrirDespuesDeCargar = true; GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pIncluirParams); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Storing in the history..."), pCmd, this->GetOwner()); } } } } ginkgocadx-3.8.7/cadxcore/commands/cloudcommand.h000066400000000000000000000051031314736454600220720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include namespace GNC { namespace GCS { class CloudCommandParams : public ::GNC::GCS::IComandoParams { public: typedef enum ActionType { CC_GET, CC_FIND } ActionType; protected: CloudCommandParams(ActionType action); ~CloudCommandParams(); public: const ActionType m_action; public: std::string m_error; }; class CloudGetCommandParams : public CloudCommandParams { public: CloudGetCommandParams(const std::string& url, bool base64); ~CloudGetCommandParams(); std::string m_url; std::string m_baseDir; }; class CloudFindCommandParams : public CloudCommandParams { public: typedef std::map ResultTuple; typedef std::list Results; CloudFindCommandParams(const std::string& bucketId, const std::string& userNameQuery, const std::string& descriptionQuery, const std::string& modalitiesQuery, const std::string& fromDateQuery, const std::string& toDateQuery); ~CloudFindCommandParams(); const std::string m_bucketId; const std::string m_userNameQuery; const std::string m_descriptionQuery; const std::string m_modalitiesQuery; const std::string m_fromDateQuery; const std::string m_toDateQuery; Results m_pResults; }; class CloudCommand : public GNC::GCS::IComando { public: CloudCommand(::GNC::GCS::CloudCommandParams* pParams); protected: virtual void Execute(); virtual void Update(); private: void doGet(GNC::GCS::CloudGetCommandParams* pParams); void doFind(GNC::GCS::CloudFindCommandParams* pParams); public: ::GNC::GCS::CloudCommandParams* m_pCloudParams; }; } } ginkgocadx-3.8.7/cadxcore/commands/comandoactualizaciones.cpp000066400000000000000000000136251314736454600245070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
#include
#include #include
#include
#include
#include #include "comandoactualizaciones.h" #define IDC_CHECK_UPDATES 112 GNC::ComandoComprobarActualizacionesParams::ComandoComprobarActualizacionesParams(const std::string& url, bool informar) : m_URL(url), m_Informar(informar) { } GNC::ComandoComprobarActualizacionesParams::~ComandoComprobarActualizacionesParams() { } GNC::ComandoComprobarActualizaciones::ComandoComprobarActualizaciones(ComandoComprobarActualizacionesParams* pParams) : IComando(pParams, _Std("Check Updates")), m_pComprobarActualizacionesParams(pParams), m_Version(), m_Revision(0), m_Description(), m_URL() { SetId(IDC_CHECK_UPDATES); CancelaA(IDC_CHECK_UPDATES); } const std::string& GNC::ComandoComprobarActualizaciones::GetError() const { return m_Error; } const std::string& GNC::ComandoComprobarActualizaciones::GetVersion() const { return m_Version; } const std::string& GNC::ComandoComprobarActualizaciones::GetDescription() const { return m_Description; } int GNC::ComandoComprobarActualizaciones::GetRevision() const { return m_Revision; } void GNC::ComandoComprobarActualizaciones::Execute() { // NotificarProgreso(0.0, tarea); if (EstaAbortado()) { return; } std::string tmpFile = GNC::Entorno::Instance()->CreateGinkgoTempFile(); try { if (!GIL::DICOM::PACSController::Instance()->DownloadFileFromURL(m_pComprobarActualizacionesParams->m_URL, tmpFile, this)) { std::ostringstream ostr; ostr << "Error downloading update file: " << m_pComprobarActualizacionesParams->m_URL << " check http proxy settings"; m_Error = ostr.str(); return; } } catch (GIL::DICOM::PACSException&) { std::ostringstream ostr; ostr << "Error downloading update file: " << m_pComprobarActualizacionesParams->m_URL << " check http proxy settings"; m_Error = ostr.str(); return; } try { wxXmlDocument xml; xml.Load(FROMPATH(tmpFile)); wxXmlNode* raiz = xml.GetRoot(); if (raiz == NULL) { m_Error = "XML invalid"; return; } if (raiz->GetName() == wxT("ginkgo")) { wxString propVal; for (wxXmlNode* nodo = raiz->GetChildren(); nodo != NULL; nodo = nodo->GetNext()) { if (nodo->GetName() == wxT("version")) { m_Version = std::string(nodo->GetNodeContent().Trim().ToUTF8()); } else if (nodo->GetName() == wxT("revision")) { long val; if ( nodo->GetNodeContent().Trim().ToLong(&val) ) { if (val >= 0) { m_Revision = (int) val; } } } else if (nodo->GetName() == wxT("description")) { m_Description = std::string(nodo->GetNodeContent().Trim().ToUTF8()); } else if (nodo->GetName() == wxT("url")) { m_URL = std::string(nodo->GetNodeContent().Trim().ToUTF8()); } } } if (m_URL.empty()) { m_Error = _Std("Not enough parameters found on XML"); Abort(); return; } //Sleep(3000); } catch (...) { m_Error = _Std("XML parsing internal error"); Abort(); } } void GNC::ComandoComprobarActualizaciones::Update() { if (m_Error.size() > 0) { LOG_ERROR("Core/Update", m_Error); if (m_pComprobarActualizacionesParams->m_Informar) { wxMessageBox(_("Error checking application updates"), _("Ginkgo CADx updates"), wxICON_ERROR); } return; } if (EstaAbortado()) { return; } try { GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoUpdateAvailable(m_Version, m_Revision, m_Description, m_URL, m_pComprobarActualizacionesParams->m_Informar)); } catch (...) { LOG_ERROR("CORE/Updates", _Std("Internal error checking updates")); } } ginkgocadx-3.8.7/cadxcore/commands/comandoactualizaciones.h000066400000000000000000000036711314736454600241540ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { namespace GCS { class IVista; } } namespace GNC { class ComandoComprobarActualizaciones; class ComandoComprobarActualizacionesParams : public GNC::GCS::IComandoParams { public: ComandoComprobarActualizacionesParams(const std::string& url, bool informar = false); virtual ~ComandoComprobarActualizacionesParams(); std::string m_URL; bool m_Informar; }; class ComandoComprobarActualizaciones : public GNC::GCS::IComando { public: ComandoComprobarActualizaciones(ComandoComprobarActualizacionesParams* pParams); const std::string& GetError() const; const std::string& GetVersion() const; const std::string& GetDescription() const; int GetRevision() const; protected: virtual void Execute(); virtual void Update(); protected: ComandoComprobarActualizacionesParams* m_pComprobarActualizacionesParams; std::string m_Error; private: std::string m_Version; int m_Revision; std::string m_Description; std::string m_URL; }; } ginkgocadx-3.8.7/cadxcore/commands/comandocalibrado.h000066400000000000000000000045211314736454600227110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once //#define _GINKGO_TRACE #include #include #include #include #include "inotificadorcalibrado.h" //#include // // //namespace GNC{ // namespace GUI{ // struct TPuntoCalibrado; // } //} // //namespace GADAPI { // // class CalibradoParamsException : public GNC::GCS::IException { // public: // CalibradoParamsException(std::string& message) throw() {m_message=message;} // ~CalibradoParamsException() throw() {} // std::string GetMensage(){return m_message;} // protected: // std::string m_message; // }; // // // class ComandoCalibradoParams : public IComandoParams { // public: // typedef MEF_ImagenRGBLight TImagenCalibrado; // TImagenCalibrado m_imagen; // double spacing[3]; // std::list m_Puntos; // INotificadorCalibrado* m_pNotificador; // // ComandoCalibradoParams(vtkImageData* pImagenOriginal,int slice,INotificadorCalibrado* pNotificador) ; // // ~ComandoCalibradoParams(); // // }; // // class ComandoCalibrado : public IComando { // public: // ComandoCalibrado(ComandoCalibradoParams* pParams); // ~ComandoCalibrado(); // // void Execute(); // // void Abort(); // void Update(); // // void SetNotificadorProgreso(GNC::INotificadorProgreso* pNotificador); // void SetNotificadorProgresoAlternativo(GNC::INotificadorProgreso* pNotificador); // // void NotificarProgreso(float progresoNormalizado,const std::string &texto); // // void LiberarRecursos(); // // protected: // ComandoCalibradoParams* m_pCalibradoParams; // GNC::INotificadorProgreso* m_pNotificadorProgresoAlternativo; // }; //} ginkgocadx-3.8.7/cadxcore/commands/comandocarga.cpp000066400000000000000000000130161314736454600224000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include #include #include #include #include #include #include
#include
#include
#include
#include "comandocarga.h" #define IDC_CARGA 91 GADAPI::ComandoCargaParams::ComandoCargaParams(GNC::GCS::IVista* pVista, const bool loadFirst) { IVista = pVista; Padre = NULL; GNC::Entorno* pEntorno = GNC::Entorno::Instance(); LoadFirst = loadFirst; pEntorno->ViewsObservers.push_back(this); } GADAPI::ComandoCargaParams::~ComandoCargaParams() { GNC::Entorno* pEntorno = GNC::Entorno::Instance(); pEntorno->ViewsObservers.remove(this); } void GADAPI::ComandoCargaParams::OnVistaDestruida(GNC::GCS::IVista* pVista) { if (IVista == pVista) { Padre->Abort(); if (IVista != NULL) { GNC::GCS::ILocker lock(pVista); IVista->DetenerPipeline(); IVista = NULL; } } } GADAPI::ComandoCarga::ComandoCarga(ComandoCargaParams* pParams) : IComando(pParams, "ComandoCarga") { CargaParams = pParams; CargaParams->Padre = this; SetId(IDC_CARGA); EsperaA(IDC_CARGA); CargaParams->IVista->OnCargaIniciada(); } void GADAPI::ComandoCarga::Execute() { std::string tarea(_Std("Loading...")); GNC::GCS::ILocker lock(CargaParams->IVista); if (!EstaAbortado()) { try { //se le da la oportunidad a la vista de que haga cosas asincronas con la interfaz, por ejemplo reordenar ficheros CargaParams->IVista->CargarEstudio(this); if (CargaParams->LoadFirst) { GNC::GCS::Ptr estudio = CargaParams->IVista->GetEstudio(); if (!estudio->GetImagePaths().empty()) { estudio->Loader->SetInput(estudio->GetImagePaths().front()); } else { Error = _Std("Series path couldn't be found"); } } } catch( GNC::GCS::VistaException& ex ) { Error = _Std("Exception loading:") + " " + ex.GetCause(); } catch (GNC::GCS::ControladorCargaException& ex) { Error = _Std("Exception loading:") + " " + ex.GetCause(); } catch (...) { Error = _Std("Study malformed or unsupported"); } } //GTRACE("Saliendo comando carga "); } void GADAPI::ComandoCarga::Update() { bool detener = false; if (Error.size() == 0) { if (CargaParams->IVista == NULL) { LOG_ERROR("ControladorCarga", "Vista destruida sin notificar al proceso de carga. Inconsistencia interna"); return; } try { LOG_TRACE("ControladorCarga", "Se invoca el iniciar pipeline de la vista"); CargaParams->IVista->IniciarPipeline(); CargaParams->IVista->SetCargada(true); GNC::GCS::ControladorVistas::Instance()->SetTitulo(CargaParams->IVista, CargaParams->IVista->GetTitulo()); CargaParams->IVista->OnCargaFinalizada(); } catch (GNC::GCS::VistaException& ex) { Error = _Std("Error loading study: ") + ex.GetCause(); detener = true; } catch (const std::bad_alloc&) { Error = _Std("Error loading study insufficient memory"); detener = true; } catch (const std::exception& ex) { Error = _Std("Error loading study: ") + std::string(ex.what()); detener = true; } catch (...) { Error = _Std("Error loading study."); detener = true; } } else { LOG_DEBUG("ControladorCarga", _Std("Load canceled by user")); detener = true; } if (detener) { if (Error.size() > 0) { LOG_ERROR("ControladorCarga", Error); wxMessageBox(wxString::FromUTF8(Error.c_str()), _("Error loading study"), wxICON_ERROR); } } } ginkgocadx-3.8.7/cadxcore/commands/comandocarga.h000066400000000000000000000031671314736454600220530ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include namespace GNC { namespace GCS { class IVista; } } namespace GADAPI { class ComandoCarga; class ComandoCargaParams : public GNC::GCS::IComandoParams, public GNC::GCS::IObservadorVistas { public: ComandoCargaParams(GNC::GCS::IVista* pVista, const bool loadFirst); virtual ~ComandoCargaParams(); virtual void OnVistaDestruida(GNC::GCS::IVista* pVista); GNC::GCS::IVista* IVista; ComandoCarga* Padre; bool LoadFirst; }; class ComandoCarga : public GNC::GCS::IComando { public: ComandoCarga(ComandoCargaParams* pParams); protected: virtual void Execute(); virtual void Update(); protected: ComandoCargaParams* CargaParams; std::string Error; }; } ginkgocadx-3.8.7/cadxcore/commands/comandodestruirvista.cpp000066400000000000000000000037471314736454600242450ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include #include #include #include #include
#include
#include
#include "comandodestruirvista.h" #define IDC_DESTRUIR 101 GADAPI::ComandoDestruirVistaParams::ComandoDestruirVistaParams(GNC::GCS::IVista* pVista) { m_pVista = pVista; } GADAPI::ComandoDestruirVistaParams::~ComandoDestruirVistaParams() { } GADAPI::ComandoDestruirVista::ComandoDestruirVista(ComandoDestruirVistaParams* pParams) : IComando(pParams, "ComandoDestruirVista") { GTRACE(">> ComandoDestruirVista::ComandoDestruirVista(): " << this); m_pDestruirParams = pParams; GTRACE("<< ComandoDestruirVista::ComandoDestruirVista(): " << this); } void GADAPI::ComandoDestruirVista::Execute() { } void GADAPI::ComandoDestruirVista::Update() { if (!EstaAbortado()) { //este destruir no destruye bien la ventana, hay que invocar a ventana principal!! //GNC::GCS::ControladorVistas::Instance()->Destruir(m_pDestruirParams->m_pVista); } } ginkgocadx-3.8.7/cadxcore/commands/comandodestruirvista.h000066400000000000000000000026751314736454600237110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include namespace GNC { namespace GCS { class IVista; } } namespace GADAPI { class EXTAPI ComandoDestruirVistaParams : public GNC::GCS::IComandoParams { public: ComandoDestruirVistaParams(GNC::GCS::IVista* pVista); virtual ~ComandoDestruirVistaParams(); GNC::GCS::IVista* m_pVista; }; class EXTAPI ComandoDestruirVista : public GNC::GCS::IComando { public: ComandoDestruirVista(ComandoDestruirVistaParams* pParams); virtual void Execute(); virtual void Update(); protected: ComandoDestruirVistaParams* m_pDestruirParams; }; } ginkgocadx-3.8.7/cadxcore/commands/comandoexportacion.cpp000066400000000000000000000265351314736454600236700ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable: 4996) #endif #include #include #include #include #include
#include #include #include #include #include #include #include
#include
#include
#include
#include
#include #include "comandoexportacion.h" #include #include #include #include #include #include #include #include #include #include #include namespace GADAPI { ComandoExportacionParams::ComandoExportacionParams(GNC::GCS::Ptr& pDatosPersistentes) { m_pDatosPersistentes = pDatosPersistentes; m_hasError = false; if (pDatosPersistentes->m_target != GNC::GUI::TipoWizardExportacion::EXTERNAL_FOLDER) { m_tempDir = GNC::Entorno::Instance()->CreateGinkgoTempDir(); } } ComandoExportacionParams::~ComandoExportacionParams() { } ComandoExportacion::ComandoExportacion(ComandoExportacionParams* pParams): GNC::GCS::IComando(pParams,"Exportacion") { m_pExportacionParams = pParams; } void ComandoExportacion::Execute() { if (!NotificarProgreso(0.0, _Std("Exporting files...")) ) return; ExportarDICOM(); if (m_pExportacionParams->m_pDatosPersistentes->m_target == GNC::GUI::TipoWizardExportacion::OVERWRITE) { GNC::GCS::HistoryController::FileModelList fileModelList; for (std::list::iterator it = m_pExportacionParams->m_pDatosPersistentes->ListOfSeriesPks.begin(); it != m_pExportacionParams->m_pDatosPersistentes->ListOfSeriesPks.end(); ++it) { GNC::GCS::HistoryController::Instance()->GetSeriesSortedFileModels((*it), fileModelList); } GNC::GCS::HistoryController::Instance()->UpdateFiles(fileModelList); } } void ComandoExportacion::Update() { switch (m_pExportacionParams->m_pDatosPersistentes->m_target) { case GNC::GUI::TipoWizardExportacion::EXTERNAL_FOLDER: { if (m_pExportacionParams->m_hasError) { GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL,m_pExportacionParams->m_Error, GNC::GCS::Events::EventoMensajes::StatusMessage,true, GNC::GCS::Events::EventoMensajes::Error)); } else { GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL, _Std("Export has been finished successfully"), GNC::GCS::Events::EventoMensajes::StatusMessage,true, GNC::GCS::Events::EventoMensajes::Informacion)); } } break; case GNC::GUI::TipoWizardExportacion::OVERWRITE: { GNC::GUI::HistoryPanel3::Instance()->ReloadHistory(); } break; case GNC::GUI::TipoWizardExportacion::NEW_STUDY: { //add to history... GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(m_pExportacionParams->m_outputPaths, false, GNC::GCS::HistoryController::TAA_MOVE); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync("Including...", pCmd, NULL); } break; } } //endregion void ComandoExportacion::ExportarDICOM() { GNC::GCS::Ptr pDatosPersistentes = m_pExportacionParams->m_pDatosPersistentes; bool correcto = true; std::list resultado; std::list listaPaths; if (!pDatosPersistentes->ListOfSeriesPks.empty()) { for (std::list::iterator itUIDs = pDatosPersistentes->ListOfSeriesPks.begin(); itUIDs != pDatosPersistentes->ListOfSeriesPks.end(); ++itUIDs) { GNC::GCS::HistoryController::StringList pathsSerie = GNC::GCS::HistoryController::Instance()->GetSeriesSortedPaths((*itUIDs)); listaPaths.insert(listaPaths.begin(), pathsSerie.begin(), pathsSerie.end()); } } else if (!pDatosPersistentes->ListOfDICOMPaths.empty()) { listaPaths.insert(listaPaths.end(), pDatosPersistentes->ListOfDICOMPaths.begin(), pDatosPersistentes->ListOfDICOMPaths.end()); } GIL::DICOM::IDICOMManager* pDICOMManager; wxString destino; //update ids to get new study... std::map mapOfUIDs; std::string stringTmp; GIL::DICOM::DicomDataset baseUIDs; // int contador = 1; for(std::list::iterator it = listaPaths.begin(); it!= listaPaths.end(); ++it,++contador) { wxString cadena = wxString::Format(_("Exporting file %d of %d"), (int)contador, (int)listaPaths.size()); if (!NotificarProgreso((float)contador/listaPaths.size(), std::string(cadena.ToUTF8()))) return; GIL::DICOM::DicomDataset base; pDICOMManager = GNC::GCS::IEntorno::Instance()->GetPACSController()->CrearInstanciaDeDICOMManager(); pDICOMManager->CargarFichero((*it), base); pDICOMManager->ActualizarJerarquia(pDatosPersistentes->m_base); if (pDatosPersistentes->m_target == GNC::GUI::TipoWizardExportacion::NEW_STUDY) { baseUIDs.tags.clear(); // GW: The original code didn't test whether the tag was actually found, and // so the first fail would create an UID for an empty value, and // for later calls the old value would be re-used (which would obvioulsy be wrong). // so now we just don't set the baseUID tags if they are not available // this may now reveal another bug. //study instance uid if (base.getTag(GKDCM_StudyInstanceUID, stringTmp)) { if (mapOfUIDs.find(stringTmp) == mapOfUIDs.end()) { mapOfUIDs[stringTmp] = pDICOMManager->GetNewUID(); } baseUIDs.tags[GKDCM_StudyInstanceUID] = mapOfUIDs[stringTmp]; } else { LOG_INFO("Commands", "tag " << GKDCM_StudyInstanceUID << " not available"); } //series instance uid if (base.getTag(GKDCM_SeriesInstanceUID, stringTmp)) { if (mapOfUIDs.find(stringTmp) == mapOfUIDs.end()) { mapOfUIDs[stringTmp] = pDICOMManager->GetNewUID(); } baseUIDs.tags[GKDCM_SeriesInstanceUID] = mapOfUIDs[stringTmp]; } else { LOG_INFO("Commands", "tag " << GKDCM_SeriesInstanceUID << " not available"); } //sop instance if (base.getTag(GKDCM_SOPInstanceUID, stringTmp)) { if (mapOfUIDs.find(stringTmp) == mapOfUIDs.end()) { mapOfUIDs[stringTmp] = pDICOMManager->GetNewUID(); } baseUIDs.tags[GKDCM_SOPInstanceUID] = mapOfUIDs[stringTmp]; } else { LOG_INFO("Commands", "tag " << GKDCM_SOPInstanceUID << " not available"); } //update uids pDICOMManager->ActualizarJerarquia(baseUIDs); } //anonimizar tags Ginkgo if(!pDatosPersistentes->m_incluirTagsGinkgo) { pDICOMManager->AnonimizarTagsPrivados(); } if (pDatosPersistentes->m_target == GNC::GUI::TipoWizardExportacion::OVERWRITE) { destino = FROMPATH((*it)); } else { destino = GetFichero(wxT("dcm")); } std::string destinoStd(TOPATH(destino)); correcto = correcto && pDICOMManager->AlmacenarFichero(destinoStd); resultado.push_back(destinoStd); m_pExportacionParams->m_outputPaths.push_back(destinoStd); GNC::Entorno::Instance()->GetPACSController()->LiberarInstanciaDeDICOMManager(pDICOMManager); } if(!correcto) { m_pExportacionParams->m_Error = _Std("Error storing file, check the permissions over the directory."); m_pExportacionParams->m_hasError = true; } } wxString ComandoExportacion::GetFichero(const wxString& extension) { wxString dir; if (m_pExportacionParams->m_pDatosPersistentes->m_target == GNC::GUI::TipoWizardExportacion::EXTERNAL_FOLDER) { dir = FROMPATH(m_pExportacionParams->m_pDatosPersistentes->m_pathDestino); } else { dir = FROMPATH(m_pExportacionParams->m_tempDir); } //if pathDestino is a file.. then return if (!wxDirExists(dir)) { return dir; } else { wxString destino(wxEmptyString); std::string nombre (wxDateTime::Now().Format(_("image_%m-%d-%Y_")).ToUTF8()); std::string stdDir(TOPATH(dir)); std::string stdExtension(TOPATH(extension)); int indice=0; //yy-mm-dd_imagen_indice do { std::ostringstream ostr; ostr << stdDir << (char)wxFileName::GetPathSeparator() << nombre << indice++ << "." << stdExtension; destino = FROMPATH(ostr.str()); } while(wxFile::Exists(destino)); return destino; } } }; #ifdef _MSC_VER #pragma warning(pop) #endif ginkgocadx-3.8.7/cadxcore/commands/comandoexportacion.h000066400000000000000000000033521314736454600233250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include
namespace GNC { namespace GCS { class IVista; } } namespace GADAPI { class ComandoExportacion; class ComandoExportacionParams : public GNC::GCS::IComandoParams { public: ComandoExportacionParams(GNC::GCS::Ptr& pDatosPersistentes); virtual ~ComandoExportacionParams(); GNC::GCS::Ptr m_pDatosPersistentes; std::list m_outputPaths; std::string m_Error; bool m_hasError; std::string m_tempDir; }; class ComandoExportacion : public GNC::GCS::IComando { public: ComandoExportacion(ComandoExportacionParams* pParams); protected: virtual void Execute(); virtual void Update(); protected: void ExportarDICOM(); wxString GetFichero(const wxString& extension); ComandoExportacionParams* m_pExportacionParams; }; } ginkgocadx-3.8.7/cadxcore/commands/comandoincluirhistorial.cpp000066400000000000000000000420141314736454600247070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include #include #include #include #include #include #include #include #include #include
#include "comandoincluirhistorial.h" #include
#include
#include
#include
#include
#include
#include "dialogopathssobreescribirbase.h" #define IDC_INCLUIR 101 #define IDC_AVISAR 102 class SubComandoAvisarModelos : public GNC::GCS::IComando { public: SubComandoAvisarModelos() : IComando(NULL) { SetId(IDC_AVISAR); } virtual void Execute() { } virtual void Update() { GNC::GUI::HistoryPanel3::Instance()->RefreshSearch(); } virtual void LiberarRecursos() { } protected: }; namespace GADAPI { //lee un directorio en profundidad y lo incluye en el dicomdir namespace ComandoIncluirHistorial { ComandoIncluirHistorialParams::ComandoIncluirHistorialParams(const std::string& path, bool recursivo, GNC::GCS::HistoryController::TAddAction addAction) : m_numberOfFiles(0), m_path(path), m_recursivo(recursivo), m_abrirDespuesDeCargar(false), m_informar(true), m_addAction(addAction) { } ComandoIncluirHistorialParams::ComandoIncluirHistorialParams(const std::list& listaPaths, bool abrirDespuesDeCargar, GNC::GCS::HistoryController::TAddAction addAction) : m_numberOfFiles(0), m_recursivo(true), m_abrirDespuesDeCargar(abrirDespuesDeCargar), m_informar(true), m_addAction(addAction) { if (listaPaths.size() == 1) { m_path = listaPaths.front(); } else { m_listaPaths = listaPaths; } } ComandoIncluirHistorialParams::~ComandoIncluirHistorialParams() { } ComandoIncluirHistorial::ComandoIncluirHistorial(ComandoIncluirHistorialParams* pParams) : IComando(pParams) { GTRACE(">> ComandoCarga::ComandoCarga(): " << this); m_pIncluirParams = pParams; SetId(IDC_INCLUIR); GTRACE("<< ComandoCarga::ComandoCarga(): " << this); } void ComandoIncluirHistorial::Execute() { std::list* insertedSeriesPtr = &(m_pIncluirParams->m_InsertedSeries); NotificarProgreso(0.0f,_Std("Exploring directory ...")); if(m_pIncluirParams->m_path != "") { GNC::GCS::HistoryController::StringList listaFicheros; wxString wxPath = FROMPATH(m_pIncluirParams->m_path); if(wxFileExists(wxPath)) { wxFileName filename(wxPath); if(filename.GetExt().Lower() == wxT("dcm") || GIL::DICOM::PACSController::Instance()->EsDICOM(TOPATH(wxPath), false, true) ) { listaFicheros.push_back(m_pIncluirParams->m_path); GNC::GCS::HistoryController::Instance()->AddFiles(listaFicheros, m_pIncluirParams->m_ErrorList, insertedSeriesPtr, this, m_pIncluirParams->m_addAction); m_pIncluirParams->m_numberOfFiles += listaFicheros.size(); } else if (GIL::DICOM::PACSController::Instance()->EsDICOM(TOPATH(wxPath), true, false)) { //it's a DICOMDIR file... NotificarProgreso(0.05f,_Std("Reading DICOMDIR ...")); IModeloDicom dicomDirModel; if(GIL::DICOM::PACSController::Instance()->LeerDicomDir(m_pIncluirParams->m_path,&dicomDirModel) && dicomDirModel.ListaPacientes().size()!=0) { for (IModeloDicom::ListaPacientesType::const_iterator it = dicomDirModel.ListaPacientes().begin(); it != dicomDirModel.ListaPacientes().end(); ++it) { const IModeloPaciente& p = *it; for (IModeloPaciente::ListaEstudiosType::const_iterator it2 = p.ListaEstudios().begin(); it2 != p.ListaEstudios().end(); ++it2) { const IModeloEstudio& e = *it2; listaFicheros.clear(); for (IModeloEstudio::ListaSeriesType::const_iterator it3 = e.ListaSeries().begin(); it3 != e.ListaSeries().end(); ++it3) { const IModeloSerie& s = *it3; for(IModeloSerie::ListaImagenesType::const_iterator it4 = s.ListaImagenes().begin(); it4 != s.ListaImagenes().end(); ++it4) { const IModeloImagen& i = *it4; if(i.GetPathImagen() != "") { listaFicheros.push_back(i.GetPathImagen()); } } } GNC::GCS::HistoryController::Instance()->AddFiles(listaFicheros, m_pIncluirParams->m_ErrorList, insertedSeriesPtr, this, m_pIncluirParams->m_addAction); m_pIncluirParams->m_numberOfFiles += listaFicheros.size(); SubComandoAvisarModelos * pCmd = new SubComandoAvisarModelos(); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Including files in the history .."),pCmd,NULL); } } } } } else if (wxDirExists(wxPath) && m_pIncluirParams->m_recursivo) { //caso especial en el que se va avisando poco a poco... TListaListas listaListas; LeerDirectorioRecursivo(wxPath,listaListas); for (TListaListas::iterator it = listaListas.begin(); it != listaListas.end(); ++it) { //se incluyen "por paquetes los ficheros" GNC::GCS::HistoryController::Instance()->AddFiles((*it), m_pIncluirParams->m_ErrorList, insertedSeriesPtr, this, m_pIncluirParams->m_addAction); m_pIncluirParams->m_numberOfFiles += (*it).size(); SubComandoAvisarModelos * pCmd = new SubComandoAvisarModelos(); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Including files in the history .."),pCmd,NULL); } } else if(wxDirExists(wxPath)) { //leer el directorio normal wxDir dir; if (dir.Open(wxPath)) { wxString wxPathFich; bool cont = dir.GetFirst(&wxPathFich,wxEmptyString, wxDIR_FILES | wxDIR_DIRS); while (cont) { wxPathFich = dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) + wxPathFich; wxFileName filename(wxPathFich); if(filename.GetExt().Lower() == wxT("dcm") || GIL::DICOM::PACSController::Instance()->EsDICOM(TOPATH(wxPathFich), false, true) ) { std::string pathStd(TOPATH(wxPathFich)); listaFicheros.push_back(pathStd); } cont = dir.GetNext(&wxPathFich); } } GNC::GCS::HistoryController::Instance()->AddFiles(listaFicheros, m_pIncluirParams->m_ErrorList, insertedSeriesPtr, this, m_pIncluirParams->m_addAction); m_pIncluirParams->m_numberOfFiles += listaFicheros.size(); SubComandoAvisarModelos * pCmd = new SubComandoAvisarModelos(); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Including files in the history .."),pCmd,NULL); } } else { GNC::GCS::HistoryController::Instance()->AddFiles(m_pIncluirParams->m_listaPaths, m_pIncluirParams->m_ErrorList, insertedSeriesPtr, this, m_pIncluirParams->m_addAction); m_pIncluirParams->m_numberOfFiles += m_pIncluirParams->m_listaPaths.size(); } //remove duplicated series ids std::set setOfIds; for (std::list::iterator it = m_pIncluirParams->m_InsertedSeries.begin(); it != m_pIncluirParams->m_InsertedSeries.end(); ++it) { setOfIds.insert((*it)); } m_pIncluirParams->m_InsertedSeries.clear(); m_pIncluirParams->m_InsertedSeries.insert(m_pIncluirParams->m_InsertedSeries.begin(), setOfIds.begin(), setOfIds.end()); } void ComandoIncluirHistorial::LeerDirectorioRecursivo(wxString& dirPath, TListaListas& listaListasPaths, int profundidadMaxima, const int profundidadActual) { { std::ostringstream ostr; ostr << _Std("Exploring directory ") << dirPath.ToUTF8(); NotificarProgreso(0.0f, ostr.str()); if (EstaAbortado()) { return; } } TListaPaths listaCurrentPaths; wxArrayString listaDirectoriosCurrent; bool dicomEncontrado = false; if(wxDirExists(dirPath)) { //vaciar wxDir dir; if (dir.Open(dirPath)) { wxString fileName; //no se listan los ocultos bool cont = dir.GetFirst(&fileName,wxEmptyString,wxDIR_FILES | wxDIR_DIRS); while (cont) { fileName=dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) + fileName; if(wxDir::Exists(fileName) ) { listaDirectoriosCurrent.push_back(fileName); } else if (wxFileExists(fileName)) { wxFileName filename(fileName); if(filename.GetExt().Lower() == wxT("dcm") || GIL::DICOM::PACSController::Instance()->EsDICOM(TOPATH(fileName), false, true) ) { std::string pathStd(TOPATH(fileName)); listaCurrentPaths.push_back(pathStd); dicomEncontrado = true; } } cont = dir.GetNext(&fileName); } } } else if (wxFileExists(dirPath)) { wxFileName filename(dirPath); if(filename.GetExt().Lower() == wxT("dcm") || GIL::DICOM::PACSController::Instance()->EsDICOM(TOPATH(dirPath), false, true)) { std::string pathStd(TOPATH(dirPath)); listaCurrentPaths.push_back(pathStd); dicomEncontrado = true; } } int siguienteProfundidad = profundidadActual; if(dicomEncontrado) { //se resetea la profundidad actual siguienteProfundidad = 0; } else { siguienteProfundidad ++; } if(siguienteProfundidad <= profundidadMaxima) { for(wxArrayString::iterator it =listaDirectoriosCurrent.begin(); it != listaDirectoriosCurrent.end(); ++it) { LeerDirectorioRecursivo((*it),listaListasPaths,profundidadMaxima,siguienteProfundidad); } } listaListasPaths.push_back(listaCurrentPaths); } void ComandoIncluirHistorial::Update() { wxString message = wxT(""); message += _("Image acquisition finished."); message += wxT(" "); message += wxString::Format(_("There have been included %d images."), (int)(m_pIncluirParams->m_numberOfFiles)); message += wxT("\n"); if (m_pIncluirParams->m_ErrorList.size() > 0) message += wxString::Format(_("\nThere are %d errors (see log for more detailed description)"), (int)(m_pIncluirParams->m_ErrorList.size())); //log { std::ostringstream errorOstr; if (!m_pIncluirParams->m_ErrorList.empty()) { bool first = true; for (GNC::GCS::HistoryController::TAddErrorList::iterator it = m_pIncluirParams->m_ErrorList.begin(); it != m_pIncluirParams->m_ErrorList.end(); ++it) { if ((*it).error == GNC::GCS::HistoryController::TAddError::TE_FileNotExist) { if (first) { errorOstr<< "\t" << _Std("This files doesn't exist:") << std::endl; first = false; } errorOstr << "\t\t" << (*it).path << std::endl; } } first = true; for (GNC::GCS::HistoryController::TAddErrorList::iterator it = m_pIncluirParams->m_ErrorList.begin(); it != m_pIncluirParams->m_ErrorList.end(); ++it) { if ((*it).error == GNC::GCS::HistoryController::TAddError::TE_WrongFormat) { if (first) { errorOstr<< "\t" << _Std("This files doesn't have DICOM format:") << std::endl; first = false; } errorOstr << "\t\t" << (*it).path << std::endl; } } first = true; for (GNC::GCS::HistoryController::TAddErrorList::iterator it = m_pIncluirParams->m_ErrorList.begin(); it != m_pIncluirParams->m_ErrorList.end(); ++it) { if ((*it).error == GNC::GCS::HistoryController::TAddError::TE_DICOMDir) { if (first) { errorOstr << "\t" <<_Std("This files are Dicom Dirs:") << std::endl; first = false; } errorOstr << "\t\t" << (*it).path << std::endl; } } } std::string errorString = errorOstr.str(); if (!errorString.empty()) { LOG_ERROR("ComandoIncluirHistorial", errorOstr.str()); } } GNC::GUI::HistoryPanel3::Instance()->ReloadCombos(false); GNC::GUI::HistoryPanel3::Instance()->RefreshSearch(); const int MAX_OPENED_STUDIES = 3; if (m_pIncluirParams->m_abrirDespuesDeCargar) { std::set openedStudies; for (std::list::iterator it = m_pIncluirParams->m_InsertedSeries.begin(); it != m_pIncluirParams->m_InsertedSeries.end() && openedStudies.size() < MAX_OPENED_STUDIES; ++it) { GNC::GCS::HistoryController::SeriesModel seriesModel = GNC::GCS::HistoryController::Instance()->GetSeriesModel((*it)); GNC::GUI::HistoryPanel3::Instance()->OpenSeriesOrStudy(seriesModel.study_fk, false); } } } } } ginkgocadx-3.8.7/cadxcore/commands/comandoincluirhistorial.h000066400000000000000000000051301314736454600243520ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include namespace GNC { namespace GCS { class IVista; } } namespace GADAPI { //lee un directorio en profundidad y lo incluye en el dicomdir namespace ComandoIncluirHistorial { class ComandoIncluirHistorial; class EXTAPI ComandoIncluirHistorialParams : public GNC::GCS::IComandoParams { public: ComandoIncluirHistorialParams(const std::string& path, bool recursivo = false, GNC::GCS::IHistoryController::TAddAction addAction = GNC::GCS::IHistoryController::TAA_COPY); ComandoIncluirHistorialParams(const std::list& listaPaths, bool abrirDespuesDeCargar = false, GNC::GCS::IHistoryController::TAddAction addAction = GNC::GCS::IHistoryController::TAA_COPY); virtual ~ComandoIncluirHistorialParams(); int m_numberOfFiles; std::string m_path; std::list m_listaPaths; bool m_recursivo; GNC::GCS::IHistoryController::TAddErrorList m_ErrorList; std::list m_InsertedSeries; bool m_abrirDespuesDeCargar; bool m_informar; GNC::GCS::IHistoryController::TAddAction m_addAction; }; class EXTAPI ComandoIncluirHistorial : public GNC::GCS::IComando { public: typedef std::list TListaPaths; typedef std::list TListaListas; ComandoIncluirHistorial(ComandoIncluirHistorialParams* pParams); protected: virtual void Execute(); virtual void Update(); private: void LeerDirectorioRecursivo(wxString& path, TListaListas& listaListasPaths, const int profundidadMaxima = 10, const int profundidadActual=0); protected: ComandoIncluirHistorialParams* m_pIncluirParams; }; } } ginkgocadx-3.8.7/cadxcore/commands/comandopacs.cpp000066400000000000000000000126101314736454600222500ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include #include #include #include #include
#include #include #include #include
#include #include
#include "comandopacs.h" #include "comandoincluirhistorial.h" #define IDC_PACS_BUSCAR 61 #define IDC_PACS_DESCARGAR 62 #define IDC_PACS_SUBIR 64 #define ID_REFRESCO_PROGRESO 1 #define PARALLEL // Singleton de persistencia namespace GADAPI { ComandoPACSParams::ComandoPACSParams(const GNC::GCS::Ptr& query) : pQuery(query), m_apResults(new TSearchResultList()) { if (pQuery->getPacsId().empty()) { if(!DicomServerList::Instance()->Empty()) { pQuery->setPacsId(DicomServerList::Instance()->GetDefaultServer()->ID); LOG_DEBUG("COMANDOPACS", "Unspecified pacs ID, selecting " << pQuery->getPacsId()); } else { throw GIL::DICOM::PACSException(_Std("There is not any Remote PACS configured")); } } m_informar=true; m_error = ""; } ComandoPACSParams::~ComandoPACSParams() { } ComandoPACS::ComandoPACS(ComandoPACSParams* pParams) : IComando(pParams) { m_pPACSParams = pParams; SetId(IDC_PACS_BUSCAR); #if !defined(PARALLEL) EsperaA(IDC_PACS_BUSCAR); EsperaA(IDC_PACS_DESCARGAR); EsperaA(IDC_PACS_SUBIR); #endif } void ComandoPACS::Execute() { std::string tarea=_Std("Querying PACS ..."); if (!NotificarProgreso(0.0f,tarea)) { return; } GIL::DICOM::IPACSController* pCI = NULL; try { pCI = GNC::GCS::IEntorno::Instance()->GetPACSController(); if (pCI == NULL) { throw GIL::DICOM::PACSException(_Std("Error accessing the controller subsystem integration: (GIL:: DICOM).")); } pCI->GetConnection(this); std::string mensaje = _Std("Starting Search ..."); if ( !NotificarProgreso(0.0f, mensaje) ) { return; } GIL::DICOM::DicomDataset query; m_pPACSParams->pQuery->buildQuery(query); pCI->Query(this, GKUID_FINDStudyRootQueryRetrieveInformationModel, query, *(m_pPACSParams->m_apResults), m_pPACSParams->pQuery->getPacsId(), this); } catch (GinkgoNoServerFoundException& ) { m_pPACSParams->m_error= _Std("Server ID not found. ID = ") + m_pPACSParams->pQuery->getPacsId(); } catch (GIL::DICOM::PACSException& ex) { m_pPACSParams->m_error= _Std("Query error with PACS Id ") + m_pPACSParams->pQuery->getPacsId() + "\n" + (const std::string)ex; } catch (GIL::DICOM::ModelException& ex) { m_pPACSParams->m_error= _Std("Query error with PACS Id ") + m_pPACSParams->pQuery->getPacsId() + "\n" + (const std::string)ex; } catch (std::exception& ex) { m_pPACSParams->m_error= _Std("Query error with PACS Id ") + m_pPACSParams->pQuery->getPacsId() + "\n" + ex.what(); } catch ( ... ) { m_pPACSParams->m_error= _Std("Query error with PACS Id ") + m_pPACSParams->pQuery->getPacsId() + "\n" + _Std("Internal error"); } if (pCI) { pCI->ReleaseConnection(this); } if (!NotificarProgreso(1.0f,tarea)) { return; } } void ComandoPACS::Update() { if (EstaAbortado()) { return; } if(!m_pPACSParams->m_error.empty()) { LOG_ERROR("C-FIND", "Error searching on PACS:\n" << m_pPACSParams->m_error); if (m_pPACSParams->m_informar) { GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL, _Std("Failed to perform search: ") + "\n" + m_pPACSParams->m_error, GNC::GCS::Events::EventoMensajes::PopUpMessage,false, GNC::GCS::Events::EventoMensajes::Error)); } m_pPACSParams->m_informar = false; } } bool ComandoPACS::NotificarProgreso(float progresoNormalizado,const std::string &texto) { if (EstaAbortado()) { return false; } return IComando::NotificarProgreso(progresoNormalizado, texto); } void ComandoPACS::LiberarRecursos() { } } ginkgocadx-3.8.7/cadxcore/commands/comandopacs.h000066400000000000000000000037631314736454600217260ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once //#define _GINKGO_TRACE #include #include #include #include #include #include #include
namespace GNC { namespace GCS { class StoredQuery; } } namespace GIL { class IModeloIntegracion; namespace DICOM { class IPACSController; } } namespace GADAPI { class ComandoPACSParams : public GNC::GCS::IComandoParams { public: typedef std::list< GNC::GCS::Ptr > TSearchResultList; ComandoPACSParams(const GNC::GCS::Ptr& query) ; virtual ~ComandoPACSParams(); public: GNC::GCS::Ptr pQuery; GNC::GCS::Ptr m_apResults; bool m_informar; std::string m_error; }; class EXTAPI ComandoPACS : public GNC::GCS::IComando { public: ComandoPACS(ComandoPACSParams* pParams); protected: virtual void Execute(); virtual void Update(); public: virtual bool NotificarProgreso(float progresoNormalizado, const std::string &texto); void LiberarRecursos(); ComandoPACSParams* m_pPACSParams; }; } ginkgocadx-3.8.7/cadxcore/commands/commandsynchronizewithgui.cpp000066400000000000000000000030741314736454600253000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE //#define DUMP_IMAGENES #include #include "commandsynchronizewithgui.h" #include
#define IDC_COMANDO_SYNCHRONIZE_WITH_GUI 116 // Singleton de persistencia namespace GADAPI { CommandSynchronizeWithGUI::CommandSynchronizeWithGUI(ISynchronizedWithGUI* pParams, ISynchronizedData* pData, bool clearData):IComando(NULL) { SetId(IDC_COMANDO_SYNCHRONIZE_WITH_GUI); m_pListener = pParams; m_pData = pData; m_clearData = clearData; } CommandSynchronizeWithGUI::~CommandSynchronizeWithGUI() { if (m_clearData && m_pData != NULL) { delete m_pData; } } void CommandSynchronizeWithGUI::Execute() { } void CommandSynchronizeWithGUI::Update() { m_pListener->ExecuteSynchronized(m_pData); } } ginkgocadx-3.8.7/cadxcore/commands/commandsynchronizewithgui.h000066400000000000000000000032671314736454600247510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once //#define _GINKGO_TRACE #include #include #include #include #include #include namespace GADAPI { class EXTAPI ISynchronizedData { public: ISynchronizedData() {} virtual ~ISynchronizedData() {} }; class EXTAPI ISynchronizedWithGUI { public: virtual ~ISynchronizedWithGUI() {} virtual void ExecuteSynchronized(GADAPI::ISynchronizedData* pData) = 0; }; class EXTAPI CommandSynchronizeWithGUI : public GNC::GCS::IComando { public: CommandSynchronizeWithGUI(ISynchronizedWithGUI* pParam, ISynchronizedData * pData = NULL, bool clearData = false); virtual ~CommandSynchronizeWithGUI(); protected: virtual void Execute(); virtual void Update(); protected: ISynchronizedWithGUI* m_pListener; ISynchronizedData * m_pData; bool m_clearData; }; } ginkgocadx-3.8.7/cadxcore/commands/dbmigrationcommand.cpp000066400000000000000000000151051314736454600236210ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "dbmigrationcommand.h" #include #include #include #include
#include
#include #include #include #include "comandoincluirhistorial.h" #include #include #include #include #include #include #include #define IDC_MIGRATION 120 GADAPI::DBMigrationCommandParams::DBMigrationCommandParams(const std::string& oldDicomDirPath,const std::string& newDicomDirPath, bool deleteAfterFinish) { OldDicomDir = oldDicomDirPath; NewDicomDir = newDicomDirPath; DeleteAfterFinish = deleteAfterFinish; SemaphoreWaitIncludeFiles = new wxSemaphore(); } GADAPI::DBMigrationCommandParams::~DBMigrationCommandParams() { delete SemaphoreWaitIncludeFiles; SemaphoreWaitIncludeFiles = NULL; } GADAPI::DBMigrationCommand::DBMigrationCommand(DBMigrationCommandParams* pParams) : IComando(pParams) { m_pMigrationParams = pParams; SetId(IDC_MIGRATION); GNC::GCS::IEventsController::Instance()->Registrar(this, GNC::GCS::Events::EventoProgresoComando()); } void GADAPI::DBMigrationCommand::Execute() { //trying to read linked files... std::list linkedFiles; { std::string pathFicheroDB; std::string pathFicheroDBThumbnails; { std::ostringstream ostr; ostr << m_pMigrationParams->OldDicomDir << (char)wxFileName::GetPathSeparator(wxPATH_NATIVE) << "ginkgodatabase_2.1.db"; pathFicheroDB = ostr.str(); } if (wxFileExists(FROMPATH(pathFicheroDB))) { try { wxSQLite3Database connection; connection.Open(FROMPATH(pathFicheroDB)); wxSQLite3StatementBuffer bufSQL; bufSQL.Format("Select distinct(file_path) from File"); wxSQLite3ResultSet resultados = connection.ExecuteQuery(bufSQL); while (resultados.NextRow()) { wxFileName fileName(resultados.GetAsString(0)); if (fileName.IsRelative()) { fileName.MakeAbsolute(FROMPATH(m_pMigrationParams->OldDicomDir)); } if (fileName.FileExists()) { linkedFiles.push_back(std::string(TOPATH(fileName.GetFullPath()))); } } } catch (wxSQLite3Exception& ex) { LOG_WARN("BBDD", "error exploring old database, linked file could be lost " << ex.GetMessage()); } } } if (!linkedFiles.empty()) { NotificarProgreso(0.0f,_Std("Migrating old DICOM Dir ...")); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(linkedFiles,false, GNC::GCS::IHistoryController::TAA_LINK); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::CommandController::Instance()->ProcessAsync("Processing...",pCmd, m_pMigrationParams); NotificarProgreso(0.05f,_Std("Including files ...")); m_pMigrationParams->SemaphoreWaitIncludeFiles->Wait(); } // NotificarProgreso(0.0f,_Std("Migrating old DICOM Dir ...")); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(m_pMigrationParams->OldDicomDir, true, GNC::GCS::IHistoryController::TAA_COPY); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::CommandController::Instance()->ProcessAsync("Processing...",pCmd, m_pMigrationParams); NotificarProgreso(0.05f,_Std("Including files ...")); m_pMigrationParams->SemaphoreWaitIncludeFiles->Wait(); } void GADAPI::DBMigrationCommand::Update() { if (m_pMigrationParams->DeleteAfterFinish) { if (wxMessageBox(_("Migration finished successfully, now Ginkgo CADx will delete folder:\n") + FROMPATH(m_pMigrationParams->OldDicomDir) + _T("\n") + _("and all it's sub folders\nDo you confirm deletion?"), _("Info"), wxICON_WARNING|wxOK|wxCANCEL, GNC::GCS::IEntorno::Instance()->GetVentanaRaiz()) == wxOK) { GNC::GCS::IEntorno::Instance()->RemoveDirRecursive(m_pMigrationParams->OldDicomDir); } } else { GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL, _Std("Migration finisthed successfully"), GNC::GCS::Events::EventoMensajes::PopUpMessage)); } } void GADAPI::DBMigrationCommand::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { GNC::GCS::Events::EventoProgresoComando* pEvt = dynamic_cast (evt); if (pEvt == NULL || pEvt->GetComando() == NULL || pEvt->GetComando()->GetOwner() != m_pMigrationParams) { return; } if (pEvt->GetTipo() == GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado) { m_pMigrationParams->SemaphoreWaitIncludeFiles->Post(); } } ginkgocadx-3.8.7/cadxcore/commands/dbmigrationcommand.h000066400000000000000000000033211314736454600232630ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include class wxSemaphore; namespace GADAPI { //lee un directorio en profundidad y lo incluye en el dicomdir class EXTAPI DBMigrationCommandParams : public GNC::GCS::IComandoParams { public: DBMigrationCommandParams(const std::string& oldDicomDirPath,const std::string& newDicomDirPath, bool deleteAfterFinish); virtual ~DBMigrationCommandParams(); std::string OldDicomDir; std::string NewDicomDir; bool DeleteAfterFinish; wxSemaphore* SemaphoreWaitIncludeFiles; }; class EXTAPI DBMigrationCommand : public GNC::GCS::IComando, public GNC::GCS::IEventsObserver { public: DBMigrationCommand(DBMigrationCommandParams* pParams); protected: virtual void Execute(); virtual void Update(); virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt) ; protected: DBMigrationCommandParams* m_pMigrationParams; }; } ginkgocadx-3.8.7/cadxcore/commands/dialogopathssobreescribirbase.cpp000066400000000000000000000061441314736454600260550ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "dialogopathssobreescribirbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; OverwriteDialogBase::OverwriteDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 700,209 ), wxDefaultSize ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxVERTICAL ); m_pPanelOverwrite = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelOverwrite->SetToolTip( _("Overwrite") ); wxBoxSizer* bSizer31; bSizer31 = new wxBoxSizer( wxVERTICAL ); m_pTextMessage = new wxStaticText( m_pPanelOverwrite, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pTextMessage->Wrap( -1 ); bSizer31->Add( m_pTextMessage, 0, 0, 0 ); m_staticText1 = new wxStaticText( m_pPanelOverwrite, wxID_ANY, _("Would you like to overwrite them?"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText1->Wrap( 440 ); bSizer31->Add( m_staticText1, 0, wxBOTTOM, 10 ); m_pPathList = new wxListBox( m_pPanelOverwrite, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); m_pPathList->Hide(); bSizer31->Add( m_pPathList, 1, wxEXPAND|wxTOP, 5 ); m_pPanelOverwrite->SetSizer( bSizer31 ); m_pPanelOverwrite->Layout(); bSizer31->Fit( m_pPanelOverwrite ); bSizer6->Add( m_pPanelOverwrite, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer6 ); m_pBody->Layout(); bSizer6->Fit( m_pBody ); bSizer3->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxHORIZONTAL ); bSizer4->Add( 0, 0, 1, wxEXPAND, 5 ); m_button1 = new wxButton( m_pFooter, wxID_OK, _("Overwrite"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer4->Add( m_button1, 0, wxRIGHT, 5 ); m_button2 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); m_button2->SetDefault(); bSizer4->Add( m_button2, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer4 ); m_pFooter->Layout(); bSizer4->Fit( m_pFooter ); bSizer3->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer3 ); this->Layout(); bSizer3->Fit( this ); this->Centre( wxBOTH ); } OverwriteDialogBase::~OverwriteDialogBase() { } ginkgocadx-3.8.7/cadxcore/commands/dialogopathssobreescribirbase.h000066400000000000000000000033041314736454600255150ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __dialogopathssobreescribirbase__ #define __dialogopathssobreescribirbase__ #include class BodyPanel; class FooterPanel; class TitledPanel; #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class OverwriteDialogBase /////////////////////////////////////////////////////////////////////////////// class OverwriteDialogBase : public wxDialog { private: protected: BodyPanel* m_pBody; wxStaticText* m_staticText1; FooterPanel* m_pFooter; wxButton* m_button1; wxButton* m_button2; public: TitledPanel* m_pPanelOverwrite; wxStaticText* m_pTextMessage; wxListBox* m_pPathList; OverwriteDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Overwrite Paths"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~OverwriteDialogBase(); }; } // namespace GUI } // namespace GNC #endif //__dialogopathssobreescribirbase__ ginkgocadx-3.8.7/cadxcore/commands/dicomizationcompletebase.cpp000066400000000000000000000065601314736454600250450ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "dicomizationcompletebase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; DicomizationCompleteBase::DicomizationCompleteBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 500,250 ), wxDefaultSize ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetBackgroundColour( wxColour( 0, 0, 0 ) ); m_pHeader->SetToolTip( _("Dicomization complete") ); bSizer3->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBodyPanel = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pPanelTitled = new TitledPanel( m_pBodyPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelTitled->SetToolTip( _("Dicomization complete") ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxVERTICAL ); m_staticText8 = new wxStaticText( m_pPanelTitled, wxID_ANY, _("Dicomization finished successfully"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText8->Wrap( -1 ); bSizer16->Add( m_staticText8, 0, wxALL, 5 ); m_pPanelTitled->SetSizer( bSizer16 ); m_pPanelTitled->Layout(); bSizer16->Fit( m_pPanelTitled ); bSizer7->Add( m_pPanelTitled, 0, wxEXPAND, 5 ); m_pBodyPanel->SetSizer( bSizer7 ); m_pBodyPanel->Layout(); bSizer7->Fit( m_pBodyPanel ); bSizer3->Add( m_pBodyPanel, 1, wxEXPAND, 5 ); m_panel12 = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxHORIZONTAL ); m_pCheckNotShow = new wxCheckBox( m_panel12, wxID_ANY, _("Don't show this message again"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer15->Add( m_pCheckNotShow, 0, wxALL, 5 ); bSizer15->Add( 0, 0, 1, wxEXPAND, 5 ); m_button5 = new wxButton( m_panel12, wxID_CANCEL, _("Accept"), wxDefaultPosition, wxDefaultSize, 0 ); m_button5->SetDefault(); bSizer15->Add( m_button5, 0, wxRIGHT, 5 ); m_panel12->SetSizer( bSizer15 ); m_panel12->Layout(); bSizer15->Fit( m_panel12 ); bSizer3->Add( m_panel12, 0, wxEXPAND, 5 ); this->SetSizer( bSizer3 ); this->Layout(); bSizer3->Fit( this ); this->Centre( wxBOTH ); // Connect Events m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DicomizationCompleteBase::OnYesClick ), NULL, this ); } DicomizationCompleteBase::~DicomizationCompleteBase() { // Disconnect Events m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DicomizationCompleteBase::OnYesClick ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/commands/dicomizationcompletebase.h000066400000000000000000000035551314736454600245130ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __dicomizationcompletebase__ #define __dicomizationcompletebase__ #include class BodyPanel; class FooterPanel; class HeaderPanel; class TitledPanel; #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class DicomizationCompleteBase /////////////////////////////////////////////////////////////////////////////// class DicomizationCompleteBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBodyPanel; TitledPanel* m_pPanelTitled; wxStaticText* m_staticText8; FooterPanel* m_panel12; wxButton* m_button5; // Virtual event handlers, overide them in your derived class virtual void OnYesClick( wxCommandEvent& event ) { event.Skip(); } public: wxCheckBox* m_pCheckNotShow; DicomizationCompleteBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Dicomization complete"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DicomizationCompleteBase(); }; } // namespace GUI } // namespace GNC #endif //__dicomizationcompletebase__ ginkgocadx-3.8.7/cadxcore/commands/dicomizecommand.cpp000066400000000000000000000603261314736454600231320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
#include #include #include #include #include
#include
#include
#include
#include
#include
#include
#include
#include #include #include #include #include
#include "dicomizecommand.h" #include "dicomizationcompletebase.h" #define IDC_DICOMIZACION_INTEGRACION 2030 #define IDC_SUBCOMANDO_ADD_HISTORIAL 2031 // Singleton de persistencia namespace GADAPI { DicomizeCommandParams::DicomizeCommandParams(const GNC::GCS::Ptr& pDatosPersistentes, const std::string& dirTemporal) { m_pSemaforoEsperarComando = new wxSemaphore(); if (pDatosPersistentes.IsValid()) { m_pImportData = pDatosPersistentes; } else { m_pImportData = new GNC::GUI::ImportationData(); } //se copia todo el directorio temporal a uno nuevo wxString wxNuevoDirTemp = FROMPATH(GNC::Entorno::Instance()->CrearDirectorioTemporal()); wxDir dir; if (!dirTemporal.empty()) { if (dir.Open(FROMPATH(dirTemporal))) { wxString fileName; wxString destino; bool cont = dir.GetFirst(&fileName); while (cont) { destino = wxNuevoDirTemp + wxFileName::GetPathSeparator(wxPATH_NATIVE) + fileName; fileName=dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) +fileName; wxRenameFile(fileName,destino); for(GNC::GUI::ImportationData::TListOfFiles::iterator it = m_pImportData->m_SourceFiles.begin(); it!= m_pImportData->m_SourceFiles.end(); ++it) { if ( FROMPATH((*it)) == fileName ) { (*it) = TOPATH(destino); break; } } cont = dir.GetNext(&fileName); } } } m_dirTemporal = TOPATH(wxNuevoDirTemp); /// m_mensajeError = ""; m_copiadoCorrecto = false; m_importacionCorrecta = false; m_openAfterDicomize = true; m_pComandoEspera = NULL; m_pParamsEspera = NULL; // GTRACE("<< DicomizeCommandParams::DicomizeCommandParams(): " << this); } DicomizeCommandParams::DicomizeCommandParams( const DicomizeCommandParams& o) { (*this) = o; } DicomizeCommandParams& DicomizeCommandParams::operator = (const DicomizeCommandParams& o) { this->m_pImportData = o.m_pImportData; this->m_dirTemporal = o.m_dirTemporal; this->m_openAfterDicomize = o.m_openAfterDicomize; this->m_mensajeError = ""; this->m_copiadoCorrecto = o.m_copiadoCorrecto; this->m_importacionCorrecta = o.m_importacionCorrecta; this->m_listOfFiles = o.m_listOfFiles; m_pSemaforoEsperarComando = new wxSemaphore(); m_pComandoEspera = NULL; m_pParamsEspera = NULL; return *this; } DicomizeCommandParams::~DicomizeCommandParams() { if (m_pSemaforoEsperarComando != NULL) { delete m_pSemaforoEsperarComando; m_pSemaforoEsperarComando = NULL; } } DicomizeCommand::DicomizeCommand(DicomizeCommandParams* pParams) : IComando(pParams) { m_pIntegracionParams = pParams; SetId(IDC_DICOMIZACION_INTEGRACION); EsperaA(IDC_DICOMIZACION_INTEGRACION); GNC::Entorno::Instance()->GetControladorEventos()->Registrar(this, GNC::GCS::Events::EventoProgresoComando()); } void DicomizeCommand::Execute() { NotificarProgreso(0.05f, _Std("Step 1 of 3: Importing images")); if(!m_pIntegracionParams->m_importacionCorrecta) { m_pIntegracionParams->m_importacionCorrecta = ImportarFicherosOriginales(); } if(!m_pIntegracionParams->m_importacionCorrecta) { return; } NotificarProgreso(0.40f, _Std("Step 2 of 3: Copying images")); //despues se copian todos los dicoms... if(!m_pIntegracionParams->m_copiadoCorrecto) { m_pIntegracionParams->m_copiadoCorrecto = CopiarDicom(); } if(!m_pIntegracionParams->m_copiadoCorrecto) { return; } //ahora se suben al pacs... NotificarProgreso(0.50f, _Std("Step 3 of 3: Uploading images")); if(m_pIntegracionParams->m_pImportData->m_pIntegrationModel->GlobalVariables.Contains(GKDI_GLOBAL_PACS_STORE_SID)) { SubirPACS(); } } void DicomizeCommand::Update() { if(m_pIntegracionParams->m_mensajeError != "") { GNC::GCS::InactivityController::Instance()->StopsMonitoring(); wxString mensaje = _("Import process failed:") + wxString(wxT("\n - ")) + wxString::FromUTF8(m_pIntegracionParams->m_mensajeError.c_str()) + _("\nWould you like to retry?"); int answer = wxMessageBox(mensaje,_("Info"),wxYES_NO | wxICON_INFORMATION, GNC::Entorno::Instance()->GetVentanaRaiz()); GNC::GCS::InactivityController::Instance()->RestartMonitoring(); if(answer == wxYES) { DicomizeCommandParams* pParams = new DicomizeCommandParams(*m_pIntegracionParams); DicomizeCommand* pCmd = new DicomizeCommand(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync(_Std("Importing..."),pCmd,NULL); } else { BorrarArchivosTemporales(FROMPATH(m_pIntegracionParams->m_dirTemporal)); GNC::GCS::InactivityController::Instance()->KillNow(); } } else { BorrarArchivosTemporales(FROMPATH(m_pIntegracionParams->m_dirTemporal)); bool showMessage; GNC::GCS::ConfigurationController::Instance()->readBoolUser("/GinkgoCore/Importation", "ShowFinishMessage", showMessage, true); if (showMessage) { GNC::GUI::DicomizationCompleteBase dlg(GNC::Entorno::Instance()->GetVentanaRaiz()); dlg.ShowModal(); if (dlg.m_pCheckNotShow->IsChecked()) { GNC::GCS::ConfigurationController::Instance()->writeBoolUser("/GinkgoCore/Importation", "ShowFinishMessage", false); } } GNC::GCS::InactivityController::Instance()->KillNow(); } } void DicomizeCommand::OnAbort() { BorrarArchivosTemporales(FROMPATH(m_pIntegracionParams->m_dirTemporal)); } void DicomizeCommand::LiberarRecursos() { BorrarArchivosTemporales(FROMPATH(m_pIntegracionParams->m_dirTemporal)); } bool DicomizeCommand::ImportarFicherosOriginales() { GIL::IStudyModel studyModel; GNC::GUI::ImportationData& importationData = *m_pIntegracionParams->m_pImportData; importationData.m_pIntegrationModel->Studies.push_back(studyModel); GIL::ISeriesModel imageSeries = ImportOriginalFiles(false); if (!imageSeries.Images.empty()) { importationData.m_pIntegrationModel->Studies.front().Series.push_back(imageSeries); } GIL::ISeriesModel pdfSeries = ImportOriginalFiles(true); if (!pdfSeries.Images.empty()) { importationData.m_pIntegrationModel->Studies.front().Series.push_back(pdfSeries); } return (imageSeries.Images.size() + pdfSeries.Images.size()) == importationData.m_SourceFiles.size(); } GIL::ISeriesModel DicomizeCommand::ImportOriginalFiles(bool pdfFiles) { bool esElPrimero=true; GIL::ISeriesModel seriesModel; GIL::DICOM::IPACSController* pCI = GNC::Entorno::Instance()->GetPACSController(); GNC::GUI::ImportationData& importationData = *m_pIntegracionParams->m_pImportData; if (importationData.m_pIntegrationModel->Studies.empty()) { LOG_ERROR("ImportOriginalFiles", "study model must exists"); return seriesModel; } GIL::IStudyModel& studyModel = importationData.m_pIntegrationModel->Studies.front(); int instanceNumber = 0; std::string seriesInstanceUID = ""; for(GNC::GUI::ImportationData::TListOfFiles::iterator it= importationData.m_SourceFiles.begin(); it!= importationData.m_SourceFiles.end(); ++it) { if (pCI->EsPDF((*it)) != pdfFiles) continue; GIL::DICOM::IDICOMImg2DCM* pI2D = NULL; GIL::DICOM::IDICOMManager* pDICOMManager = NULL; try { pI2D = pCI->CrearInstanciaDeImportacion(); std::string rutaFichero = (*it); pI2D->Inicializar(rutaFichero, NULL); std::string tag; //base comun GIL::DICOM::DicomDataset base = importationData.baseImages; if (seriesInstanceUID != "") { base.tags[std::string("0020|000e")] = seriesInstanceUID; //serie instance uid } //fecha imagen base.tags[std::string("0008|0022")] = wxDateTime::Now().Format(wxT("%Y%m%d")).ToUTF8(); //hora imagen base.tags[std::string("0008|0032")] = wxDateTime::Now().Format(wxT("%H%M%S")).ToUTF8(); //instance number { std::ostringstream ostr; ostr << instanceNumber++; base.tags[std::string("0020|0013")] = ostr.str(); } if (!importationData.m_pIntegrationModel->rawXmlData.empty()) { //raw data GIL::DICOM::TipoPrivateTags tagsPrivados(UID_TAGS_PRIVADOS_COMUNES); unsigned char tag = TAG_XML_INTEGRACION; tagsPrivados.SetTag(tag,importationData.m_pIntegrationModel->rawXmlData); pI2D->InsertarTagsPrivados(tagsPrivados); } pI2D->InsertarJerarquia(base); pI2D->InsertarJerarquia(importationData.m_pIntegrationModel->TagsDICOMOverwrite); wxFileName inputFileName = wxFileName::FileName(FROMPATH(rutaFichero)); //se crea el directorio de la serie wxString tempFilePath = FROMPATH(m_pIntegracionParams->m_dirTemporal) + wxFileName::GetPathSeparator(wxPATH_NATIVE) + inputFileName.GetName() + wxT(".dcm"); while (wxFile::Exists(tempFilePath)) { tempFilePath = FROMPATH(m_pIntegracionParams->m_dirTemporal) + wxFileName::GetPathSeparator(wxPATH_NATIVE) + inputFileName.GetName() + wxString::Format(wxT("%d.dcm"), (int)(rand()) ); } std::string rutaImportacion(TOPATH(tempFilePath)); pI2D->Convertir(rutaImportacion); pCI->LiberarInstanciaDeImportacion(pI2D); pI2D = NULL; { //leemos tags pDICOMManager = pCI->CrearInstanciaDeDICOMManager(); pDICOMManager->CargarFichero(rutaImportacion); if(esElPrimero) { esElPrimero=false; if (!studyModel.MapOfVars.Contains(GKDI_STUDY_ACCESSION_NUMBER)) { if(pDICOMManager->GetTag(0x0008,0x0050,tag)) {//accession number importationData.baseImages.tags[std::string("0008|0050")] = tag; studyModel.MapOfVars.InsertVariable(GKDI_STUDY_ACCESSION_NUMBER, tag); } if(pDICOMManager->GetTag(0x0020,0x000d,tag)) {//studyUID importationData.baseImages.tags[std::string("0020|000d")] = tag; studyModel.MapOfVars.InsertVariable(GKDI_STUDY_INSTANCE_UID, tag); } } if(pDICOMManager->GetTag(0x0020,0x000e,tag)) {//uid serie original seriesInstanceUID = tag; seriesModel.MapOfVars.InsertVariable(GKDI_SERIE_INSTANCE_UID, tag); } } GIL::IImageModel imageModel; pDICOMManager->GetTag(0x0008,0x0018,tag); //sop instance uid imageModel.MapOfVars.InsertVariable(GKDI_IMAGE_SOP_INSTANCE_UID, tag); pDICOMManager->GetTag(0x0008,0x0016,tag);//sop class uid imageModel.MapOfVars.InsertVariable(GKDI_IMAGE_SOP_CLASS_UID, tag); pCI->LiberarInstanciaDeDICOMManager(pDICOMManager); pDICOMManager = NULL; imageModel.MapOfVars.InsertVariable(GKDI_IMAGE_DICOM_PATH, rutaImportacion); seriesModel.Images.push_back(imageModel); }//fin leer tags } catch (GIL::DICOM::I2DException& ex) { m_pIntegracionParams->m_mensajeError = ex.GetCause(); LOG_ERROR("DICOMIZATION", "Error in dicomization process: " << ex.GetCause()); if (pI2D != NULL) { pCI->LiberarInstanciaDeImportacion(pI2D); } if (pDICOMManager != NULL) { pCI->LiberarInstanciaDeDICOMManager(pDICOMManager); } } catch (std::exception& e) { m_pIntegracionParams->m_mensajeError = e.what(); LOG_ERROR("DICOMIZATION", "Error doing dicomization: " << e.what() ); if (pI2D != NULL) { pCI->LiberarInstanciaDeImportacion(pI2D); } if (pDICOMManager != NULL) { pCI->LiberarInstanciaDeDICOMManager(pDICOMManager); } } catch (...) { m_pIntegracionParams->m_mensajeError = _Std("Unknown error in dicomization process"); LOG_ERROR("Internal error in dicomization process", "DICOMIZATION"); if (pI2D != NULL) { pCI->LiberarInstanciaDeImportacion(pI2D); } if (pDICOMManager != NULL) { pCI->LiberarInstanciaDeDICOMManager(pDICOMManager); } } }// end for return seriesModel; } bool DicomizeCommand::CopiarDicom() { bool correcto = true; m_pIntegracionParams->m_listOfFiles.clear(); //el directorio existe, se crea un directorio para la serie, con el uid de la serie donde se copiaran los ficheros importados wxDir dir; if (dir.Open(FROMPATH(m_pIntegracionParams->m_dirTemporal))) { wxString pathOrigenWx,destinoWx; bool cont = dir.GetFirst(&pathOrigenWx,wxT("*.dcm")); std::string pathDestinoStd,pathOrigenStd; GIL::DICOM::DicomDataset base; while (cont) { pathOrigenWx=dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) +pathOrigenWx; pathOrigenStd = TOPATH(pathOrigenWx); m_pIntegracionParams->m_listOfFiles.push_back(pathOrigenStd); cont = dir.GetNext(&pathOrigenWx); } } if(correcto) { GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(m_pIntegracionParams->m_listOfFiles, m_pIntegracionParams->m_openAfterDicomize, GNC::GCS::HistoryController::TAA_MOVE); pParams->m_informar = false; GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); LanzarYEsperar(pCmd, pParams); } return correcto; } bool DicomizeCommand::SubirPACS() { try { //get hl7 message... std::string hl7Message; if (m_pIntegracionParams->m_pImportData->m_pIntegrationModel.IsValid() && GNC::GCS::IControladorPermisos::Instance()->Get("core.integracion","send_message")) { // Lanzar evento. hl7Message = GIL::IntegrationController::Instance()->GetMessageFromIntegrationModel(m_pIntegracionParams->m_pImportData->m_pIntegrationModel); } //el pacs sera el primero d la configuracion si no lanzar excepcion if (GNC::GCS::IControladorPermisos::Instance()->Get("core.integracion", "upload_pacs_xml")) { std::string pacsStore = m_pIntegracionParams->m_pImportData->m_pIntegrationModel->GlobalVariables.GetValue(GKDI_GLOBAL_PACS_STORE_SID); ::GADAPI::SendPACSCommand* pCmd = new ::GADAPI::SendPACSCommand(pacsStore, hl7Message, m_pIntegracionParams->m_InsertedSeries); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync("Processing...",pCmd,NULL); } else { LOG_INFO("DicomizeCommand","pacs upload is disabled"); } } catch (GIL::HL7::HL7Exception& ex) { std::ostringstream ostr; m_pIntegracionParams->m_mensajeError = _Std("Error sending evidences:") + ex.GetCause(); LOG_ERROR("SendHL7Message",m_pIntegracionParams->m_mensajeError); return false; } catch (GIL::DICOM::PACSException& ex) { std::stringstream ostr; ostr << _Std("Can not upload to the PACS:\n"); ostr << ex.str(); m_pIntegracionParams->m_mensajeError = ostr.str(); } catch (GNC::GCS::IException& ex) { m_pIntegracionParams->m_mensajeError = _Std("Error sending evidences:") + ex.GetCause(); LOG_ERROR("SendHL7Message",m_pIntegracionParams->m_mensajeError); return false; } catch (std::exception& ex) { std::stringstream ostr; ostr << _Std("Can not upload to the PACS:\n"); ostr << ex.what(); m_pIntegracionParams->m_mensajeError = ostr.str(); } catch (...) { std::stringstream ostr; ostr << _Std("Can not upload to the PACS:\nInternal Error"); m_pIntegracionParams->m_mensajeError = ostr.str(); } if(m_pIntegracionParams->m_mensajeError != "") { return false; } else { return true; } } void DicomizeCommand::LanzarYEsperar(GNC::GCS::IComando* pCmd, GNC::GCS::IComandoParams* pCmdParams) { LOG_TRACE("DicomizeCommand", "Esperando a " << pCmd); m_pIntegracionParams->m_pComandoEspera = pCmd; m_pIntegracionParams->m_pParamsEspera = pCmdParams; GNC::Entorno::Instance()->GetCommandController()->ProcessAsync("Processing...",pCmd,NULL); m_pIntegracionParams->m_pSemaforoEsperarComando->Wait(); LOG_TRACE("DicomizeCommand", "Espera de " << pCmd << " finalizada"); } bool DicomizeCommand::BorrarArchivosTemporales(wxString dirPath) { //borra en cascada if(!wxRmdir(dirPath)) { //vaciar wxDir dir; if (dir.Open(dirPath)) { wxString fileName; bool cont = dir.GetFirst(&fileName); while (cont) { fileName=dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) +fileName; if(wxDir::Exists(fileName)) { if (BorrarArchivosTemporales(fileName)) { cont = dir.GetFirst(&fileName); } else { cont = dir.GetNext(&fileName); } } else { if (wxRemoveFile(fileName)) { cont = dir.GetFirst(&fileName); } else { cont = dir.GetNext(&fileName); } } } } } if(wxDir::Exists(dirPath)) { return wxRmdir(dirPath); } return true; } void DicomizeCommand::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { GNC::GCS::Events::EventoProgresoComando* pEvt = dynamic_cast (evt); if (pEvt == NULL || pEvt->GetComando() == NULL || pEvt->GetComando() != m_pIntegracionParams->m_pComandoEspera) { LOG_TRACE("DicomizeCommand", "Evento ignorado. No corresponde al comando de interes"); return; } if (pEvt->GetTipo() == GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado) { GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pCmdHistoryParams= dynamic_cast< GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* > (m_pIntegracionParams->m_pParamsEspera); if (pCmdHistoryParams != NULL) { m_pIntegracionParams->m_InsertedSeries = pCmdHistoryParams->m_InsertedSeries; } LOG_TRACE("DicomizeCommand", "Procesando evento de terminacion del subcomando avisar."); m_pIntegracionParams->m_pComandoEspera = NULL; m_pIntegracionParams->m_pParamsEspera = NULL; m_pIntegracionParams->m_pSemaforoEsperarComando->Post(); } } } ginkgocadx-3.8.7/cadxcore/commands/dicomizecommand.h000066400000000000000000000057341314736454600226010ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include #include
class wxCriticalSectionLocker; class wxSemaphore; namespace GADAPI { class EXTAPI DicomizeCommandParams : public GNC::GCS::IComandoParams { public: DicomizeCommandParams(const GNC::GCS::Ptr& pDatosPersistentes, const std::string& dirTemporal = "") ; DicomizeCommandParams( const DicomizeCommandParams& o); DicomizeCommandParams& operator = (const DicomizeCommandParams& o); virtual ~DicomizeCommandParams() ; public: GNC::GCS::Ptr m_pImportData; std::string m_dirTemporal; std::list m_listOfFiles; std::list m_InsertedSeries; bool m_openAfterDicomize; std::string m_mensajeError; bool m_importacionCorrecta; bool m_copiadoCorrecto; wxSemaphore* m_pSemaforoEsperarComando; GNC::GCS::IComando* m_pComandoEspera; GNC::GCS::IComandoParams* m_pParamsEspera; }; class EXTAPI DicomizeCommand : public GNC::GCS::IComando, public GNC::GCS::IEventsObserver { public: DicomizeCommand(DicomizeCommandParams* pParams); typedef struct { wxString campoLista; wxString loincCodigoCampo; wxString loincDescCampo; wxString valor; } tValoracion; typedef std::list listaValoraciones; protected: virtual void Execute(); virtual void Update(); virtual void OnAbort(); void LiberarRecursos(); public: virtual bool ImportarFicherosOriginales(); protected: virtual GIL::ISeriesModel ImportOriginalFiles(bool pdfFiles); virtual bool CopiarDicom(); virtual bool SubirPACS(); virtual void LanzarYEsperar(GNC::GCS::IComando* pCmd, GNC::GCS::IComandoParams* pCmdParams); virtual bool BorrarArchivosTemporales(wxString dirPath); virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt) ; DicomizeCommandParams* m_pIntegracionParams; }; } ginkgocadx-3.8.7/cadxcore/commands/exporttodicomdircommand.cpp000066400000000000000000000612011314736454600247170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifdef _MSC_VER #pragma warning(push) #pragma warning(disable: 4996) #endif #include #include #include #include #include #include #include
#include
#include
#include
#include
#include #include #include #include
#include
#include #include "exporttodicomdircommand.h" #ifdef DCMTK_POST_20170228 #include #endif #define IDC_EXPORT_TO_DICOMDIR 118 GADAPI::ExportToDicomDirCommandParams::ExportToDicomDirCommandParams(const TListOfPks& seriesList, const std::string& destinationPath, const GIL::DICOM::DicomDataset& anonymized, bool includeGinkgo) { m_seriesList = seriesList; m_destinationPath = destinationPath; m_hasError = false; m_anonymized = anonymized; m_includeGinkgoTags = includeGinkgo; } GADAPI::ExportToDicomDirCommandParams::~ExportToDicomDirCommandParams() { } GADAPI::ExportToDicomDirCommand::ExportToDicomDirCommand(ExportToDicomDirCommandParams* pParams): GNC::GCS::IComando(pParams,"Export Dicom Dir") { SetId(IDC_EXPORT_TO_DICOMDIR); m_pExportacionParams = pParams; } inline std::string GetRightPath(const std::string& uid, const std::string& prefix, std::map& mapOfUids, int& index) { std::string pathOfUid; if (mapOfUids.find(uid) == mapOfUids.end()) { mapOfUids[uid] = index; std::ostringstream ostr; ostr << prefix << index++; pathOfUid = ostr.str(); } else { std::ostringstream ostr; ostr << prefix << mapOfUids[uid]; pathOfUid = ostr.str(); } return pathOfUid; } inline bool CreateDir(const wxString& path) { if (!wxDirExists(path)) { if (!wxFileName::Mkdir(path)) { return false; } } return true; } inline bool CreatePathOfSeries(const GNC::GCS::IHistoryController::StudyModel& studyModel, const GNC::GCS::IHistoryController::SeriesModel& seriesModel, std::map& mapOfPathPatients, std::map& mapOfPathStudies, std::map& mapOfPathSeries, int& patientIndex, int& studyIndex, int& seriesIndex, const std::string& destinationPath, std::string& pathOfPatient, std::string& pathOfStudy, std::string& pathOfSeries, wxString& fullPath) { pathOfPatient = GetRightPath(studyModel.pat_id, "PT", mapOfPathPatients, patientIndex); pathOfStudy = GetRightPath(studyModel.study_iuid, "ST", mapOfPathStudies, studyIndex); pathOfSeries = GetRightPath(seriesModel.series_iuid, "SE", mapOfPathSeries, seriesIndex); fullPath = FROMPATH(destinationPath) + wxFileName::GetPathSeparator() + wxT("DICOM"); if (!CreateDir(fullPath)) { return false; } fullPath += wxFileName::GetPathSeparator() + wxString::FromUTF8(pathOfPatient.c_str()); if (!CreateDir(fullPath)) { return false; } fullPath += wxFileName::GetPathSeparator() + wxString::FromUTF8(pathOfStudy.c_str()); if (!CreateDir(fullPath)) { return false; } fullPath += wxFileName::GetPathSeparator() + wxString::FromUTF8(pathOfSeries.c_str()); if (!CreateDir(fullPath)) { return false; } return true; } inline void InsertTagRecord(const DcmTagKey& key, const std::string& value, DcmDirectoryRecord* record) { DcmTag tag(key); DcmElement* e = newDicomElement(tag); e->putString(value.c_str()); record->insert(e, true, false); } inline DcmDirectoryRecord* GetSeriesRecord(const GNC::GCS::IHistoryController::StudyModel& studyModel, const GNC::GCS::IHistoryController::SeriesModel& seriesModel, std::map& dcmMapOfPatients, std::map& dcmMapOfStudies, std::map& dcmMapOfSeries, DcmDirectoryRecord * root) { DcmDirectoryRecord* PatientRecord; if (dcmMapOfPatients.find(studyModel.pat_id) == dcmMapOfPatients.end()) { PatientRecord = new DcmDirectoryRecord(); dcmMapOfPatients[studyModel.pat_id] = PatientRecord; root->insertSub(PatientRecord); InsertTagRecord(DCM_DirectoryRecordType, "PATIENT", PatientRecord); InsertTagRecord(DCM_SpecificCharacterSet, "ISO_IR 192", PatientRecord); InsertTagRecord(DCM_PatientID, studyModel.pat_id, PatientRecord); InsertTagRecord(DCM_PatientName, studyModel.pat_name, PatientRecord); { std::ostringstream ostr; ostr << studyModel.pat_sex; InsertTagRecord(DCM_PatientSex, ostr.str(), PatientRecord); } InsertTagRecord(DCM_PatientBirthDate, studyModel.pat_bithdate, PatientRecord); } else { PatientRecord = dcmMapOfPatients[studyModel.pat_id]; } DcmDirectoryRecord* StudyRecord; if (dcmMapOfStudies.find(studyModel.study_iuid) == dcmMapOfStudies.end()) { StudyRecord = new DcmDirectoryRecord(); dcmMapOfStudies[studyModel.study_iuid] = StudyRecord; PatientRecord->insertSub(StudyRecord); InsertTagRecord(DCM_DirectoryRecordType, "STUDY", StudyRecord); InsertTagRecord(DCM_SpecificCharacterSet, "ISO_IR 192", StudyRecord); InsertTagRecord(DCM_StudyInstanceUID, studyModel.study_iuid, StudyRecord); InsertTagRecord(DCM_StudyDescription, studyModel.study_desc, StudyRecord); wxDateTime date; date.ParseFormat(wxString::FromUTF8(studyModel.study_datetime.c_str()), wxT("%Y-%m-%dT%H:%M:%S")); if (date.IsValid()) { std::string tmp(date.Format(wxT("%Y%m%d")).ToUTF8()); InsertTagRecord(DCM_StudyDate, tmp, StudyRecord); tmp = date.Format(wxT("%H%M%S.%l")).ToUTF8(); InsertTagRecord(DCM_StudyTime, tmp, StudyRecord); } InsertTagRecord(DCM_AccessionNumber, studyModel.study_acc_no, StudyRecord); InsertTagRecord(DCM_StudyID, studyModel.study_id, StudyRecord); } else { StudyRecord = dcmMapOfStudies[studyModel.study_iuid]; } DcmDirectoryRecord* SeriesRecord; if (dcmMapOfSeries.find(studyModel.study_iuid) == dcmMapOfSeries.end()) { SeriesRecord = new DcmDirectoryRecord(); dcmMapOfSeries[seriesModel.series_iuid] = SeriesRecord; StudyRecord->insertSub(SeriesRecord); InsertTagRecord(DCM_DirectoryRecordType, "SERIES", SeriesRecord); InsertTagRecord(DCM_SpecificCharacterSet, "ISO_IR 192", SeriesRecord); InsertTagRecord(DCM_SeriesInstanceUID, seriesModel.series_iuid, SeriesRecord); InsertTagRecord(DCM_SeriesDescription, seriesModel.series_desc, SeriesRecord); wxDateTime date; date.ParseFormat(wxString::FromUTF8(seriesModel.series_datetime.c_str()), wxT("%Y-%m-%dT%H:%M:%S")); if (date.IsValid()) { std::string tmp(date.Format(wxT("%Y%m%d")).ToUTF8()); InsertTagRecord(DCM_SeriesDate, tmp, SeriesRecord); tmp = date.Format(wxT("%H%M%S.%l")).ToUTF8(); InsertTagRecord(DCM_SeriesTime, tmp, SeriesRecord); } InsertTagRecord(DCM_Modality, seriesModel.series_modality, SeriesRecord); InsertTagRecord(DCM_SeriesNumber, seriesModel.series_no, SeriesRecord); } else { SeriesRecord = dcmMapOfSeries[seriesModel.series_iuid]; } return SeriesRecord; } void GADAPI::ExportToDicomDirCommand::Execute() { if (!NotificarProgreso(0.0, _Std("Exporting files...")) ) return; std::string pathOfDicomDir; { std::ostringstream ostr; ostr << m_pExportacionParams->m_destinationPath; ostr << (char)wxFileName::GetPathSeparator(); ostr << "DICOMDIR"; pathOfDicomDir = ostr.str(); } //clean dicomdir file and dicomdir directory if present... { std::ostringstream ostr; ostr << m_pExportacionParams->m_destinationPath; ostr << (char) wxFileName::GetPathSeparator(); ostr << "DICOM"; GNC::Entorno::Instance()->RemoveDirRecursive(ostr.str()); wxRemoveFile(FROMPATH(pathOfDicomDir)); } // std::map mapOfPathPatients; std::map mapOfPathStudies; std::map mapOfPathSeries; std::map mapOfPathImages; std::map dcmMapOfPatients; std::map dcmMapOfStudies; std::map dcmMapOfSeries; std::string pathOfPatient, pathOfStudy, pathOfSeries; int patientIndex=0, studyIndex=0, seriesIndex=0; int numberOfSeries = m_pExportacionParams->m_seriesList.size(); int actualSerie = 1; DcmDicomDir dicomDir(pathOfDicomDir.c_str(), "GINKGOCADXCD"); DcmDirectoryRecord * root = &(dicomDir.getRootRecord()); //FIRST OF ALL EXPORT WITHOUT ANONYMIZE if (m_pExportacionParams->m_seriesList.size() > 0 && m_pExportacionParams->m_anonymized.tags.empty() && m_pExportacionParams->m_includeGinkgoTags) { for (ExportToDicomDirCommandParams::TListOfPks::const_iterator itUids = m_pExportacionParams->m_seriesList.begin(); itUids != m_pExportacionParams->m_seriesList.end(); ++itUids) { wxString cadena = wxString::Format(_("Exporting series %d of %d"), (int)(actualSerie++), (int)(numberOfSeries)); if (!NotificarProgreso((float)actualSerie/numberOfSeries, std::string(cadena.ToUTF8()))) return; //find source paths and series model GNC::GCS::IHistoryController::SeriesModel seriesModel = GNC::GCS::HistoryController::Instance()->GetSeriesModel((*itUids)); GNC::GCS::IHistoryController::StudyModel studyModel = GNC::GCS::HistoryController::Instance()->GetStudyModel(seriesModel.study_fk); GNC::GCS::IHistoryController::FileModelList fileModels; GNC::GCS::HistoryController::Instance()->GetSeriesSortedFileModels((*itUids), fileModels); if (fileModels.empty()) { m_pExportacionParams->m_Error = _Std("Some of selected series has been deleted"); m_pExportacionParams->m_hasError = true; return; } //get path of series wxString fullPathWx; if (!CreatePathOfSeries(studyModel, seriesModel, mapOfPathPatients, mapOfPathStudies, mapOfPathSeries, patientIndex, studyIndex, seriesIndex, m_pExportacionParams->m_destinationPath, pathOfPatient, pathOfStudy, pathOfSeries, fullPathWx) ) { m_pExportacionParams->m_Error = _Std("There was an error creating directory"); m_pExportacionParams->m_hasError = true; return; } //dicomdir structure DcmDirectoryRecord* SeriesRecord = GetSeriesRecord(studyModel, seriesModel, dcmMapOfPatients, dcmMapOfStudies, dcmMapOfSeries, root); //path is created, now we are going to copy images... mapOfPathImages[seriesModel.series_iuid] = 0; for (GNC::GCS::IHistoryController::FileModelList::const_iterator itDCMModels = fileModels.begin(); itDCMModels != fileModels.end(); ++itDCMModels) { std::string pathOfImage; { std::ostringstream ostr; ostr << "IM"; ostr << mapOfPathImages[seriesModel.series_iuid]++; pathOfImage = ostr.str(); } wxString pathOfImageWx = fullPathWx + wxFileName::GetPathSeparator() + wxString::FromUTF8(pathOfImage.c_str()); std::string absolutepathFile = (*itDCMModels).real_path; if (!wxCopyFile(FROMPATH(absolutepathFile), pathOfImageWx)) { LOG_ERROR("ExportToDicomDirCommand", "Error copying file " << absolutepathFile << " TO " << pathOfImageWx.ToUTF8()); m_pExportacionParams->m_Error = _Std("There was an error writing file"); m_pExportacionParams->m_hasError = true; return; } DcmDirectoryRecord* ImageRecord = new DcmDirectoryRecord(); SeriesRecord->insertSub(ImageRecord); std::string fileId; { std::ostringstream ostr; ostr << "DICOM" << "\\" << pathOfPatient << "\\" << pathOfStudy << "\\" << pathOfSeries << "\\" << pathOfImage; fileId = ostr.str(); } InsertTagRecord(DCM_DirectoryRecordType, "IMAGE", ImageRecord); InsertTagRecord(DCM_ReferencedSOPInstanceUIDInFile, (*itDCMModels).sopiuid, ImageRecord); InsertTagRecord(DCM_ReferencedTransferSyntaxUIDInFile, (*itDCMModels).tsuid, ImageRecord); InsertTagRecord(DCM_ReferencedSOPClassUIDInFile, (*itDCMModels).sopcuid, ImageRecord); InsertTagRecord(DCM_SpecificCharacterSet, "ISO_IR 192", ImageRecord); InsertTagRecord(DCM_ImageComments, (*itDCMModels).file_desc, ImageRecord); std::string instanceNumber; { std::ostringstream ostr; ostr << (*itDCMModels).instance_number; instanceNumber = ostr.str(); } InsertTagRecord(DCM_InstanceNumber, instanceNumber, ImageRecord); InsertTagRecord(DCM_ReferencedFileID, fileId, ImageRecord); } } }///END EXPORT WITHOUT ANONYMIZE std::string m_TmpDir = GNC::Entorno::Instance()->CrearDirectorioTemporal(); //export series anonymizing... if (m_pExportacionParams->m_seriesList.size() > 0 && (!m_pExportacionParams->m_anonymized.tags.empty() || !m_pExportacionParams->m_includeGinkgoTags)) { for (ExportToDicomDirCommandParams::TListOfPks::const_iterator itUids = m_pExportacionParams->m_seriesList.begin(); itUids != m_pExportacionParams->m_seriesList.end(); ++itUids) { wxString cadena = wxString::Format(_("Exporting series %d of %d"), (int)(actualSerie++), (int)(numberOfSeries)); if (!NotificarProgreso((float)actualSerie/numberOfSeries, std::string(cadena.ToUTF8()))) return; //find source paths and series model GNC::GCS::IHistoryController::FileModelList fileModels; GNC::GCS::HistoryController::Instance()->GetSeriesSortedFileModels((*itUids), fileModels); for (GNC::GCS::IHistoryController::FileModelList::const_iterator itFileModel = fileModels.begin(); itFileModel != fileModels.end(); ++itFileModel) { GIL::DICOM::DICOMManager manager; manager.CargarFichero((*itFileModel).real_path); manager.ActualizarJerarquia(m_pExportacionParams->m_anonymized); if (!m_pExportacionParams->m_includeGinkgoTags) { manager.AnonimizarTagsPrivados(); } wxString targetFile = FROMPATH(m_TmpDir) + wxFileName::GetPathSeparator() + wxString::Format(wxT("%d"), (int)(rand())); while (wxFileExists(targetFile)) { targetFile = FROMPATH(m_TmpDir) + wxFileName::GetPathSeparator() + wxString::Format(wxT("%d"), (int)(rand())); } std::string targetFileStd(TOPATH(targetFile)); if (!manager.AlmacenarFichero(targetFileStd)) { m_pExportacionParams->m_Error = _Std("There was an error anonymizing files"); m_pExportacionParams->m_hasError = true; return; } } } } //read tmp directory and insert into dcmdir... { wxString tmpDirWx = FROMPATH(m_TmpDir); wxDir dir; if (dir.Open(tmpDirWx)) { wxString fileName; bool cont = dir.GetFirst(&fileName); while (cont) { fileName=dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) +fileName; const std::string fileNameStd(TOPATH(fileName)); GNC::GCS::IHistoryController::DICOMFileModel dicomFile; GNC::GCS::IHistoryController::TAddErrorList foo; if (!GNC::GCS::HistoryController::Instance()->ReadFile(dicomFile, fileNameStd, foo)) { LOG_ERROR("ExportDICOMDir", "error reading " << fileNameStd); continue; } //create path wxString fullPathWx; if (!CreatePathOfSeries(dicomFile.study, dicomFile.series, mapOfPathPatients, mapOfPathStudies, mapOfPathSeries, patientIndex, studyIndex, seriesIndex, m_pExportacionParams->m_destinationPath, pathOfPatient, pathOfStudy, pathOfSeries, fullPathWx) ) { m_pExportacionParams->m_Error = _Std("There was an error creating directory"); m_pExportacionParams->m_hasError = true; return; } //dicomdir structure DcmDirectoryRecord* SeriesRecord = GetSeriesRecord(dicomFile.study, dicomFile.series, dcmMapOfPatients, dcmMapOfStudies, dcmMapOfSeries, root); //path is created, now we are going to copy images... if (mapOfPathImages.find(dicomFile.series.series_iuid) == mapOfPathImages.end()) { mapOfPathImages[dicomFile.series.series_iuid] = 0; } std::string pathOfImage; { std::ostringstream ostr; ostr << "IM"; ostr << mapOfPathImages[dicomFile.series.series_iuid]++; pathOfImage = ostr.str(); } wxString pathOfImageWx = fullPathWx + wxFileName::GetPathSeparator() + wxString::FromUTF8(pathOfImage.c_str()); //moving tmp files... if (!wxRenameFile(fileName, pathOfImageWx)) { m_pExportacionParams->m_Error = _Std("There was an error writing file"); m_pExportacionParams->m_hasError = true; return; } DcmDirectoryRecord* ImageRecord = new DcmDirectoryRecord(); SeriesRecord->insertSub(ImageRecord); std::string fileId; { std::ostringstream ostr; ostr << "DICOM" << "\\" << pathOfPatient << "\\" << pathOfStudy << "\\" << pathOfSeries << "\\" << pathOfImage; fileId = ostr.str(); } InsertTagRecord(DCM_ReferencedFileID, fileId, ImageRecord); InsertTagRecord(DCM_DirectoryRecordType, "IMAGE", ImageRecord); InsertTagRecord(DCM_ReferencedSOPInstanceUIDInFile, dicomFile.file.sopiuid, ImageRecord); InsertTagRecord(DCM_ReferencedTransferSyntaxUIDInFile, dicomFile.file.tsuid, ImageRecord); InsertTagRecord(DCM_ReferencedSOPClassUIDInFile, dicomFile.file.sopcuid, ImageRecord); { std::ostringstream ostr; ostr << dicomFile.file.instance_number; InsertTagRecord(DCM_InstanceNumber, ostr.str(), ImageRecord); } InsertTagRecord(DCM_ImageComments, dicomFile.file.file_desc, ImageRecord); InsertTagRecord(DCM_SpecificCharacterSet, "ISO_IR 192", ImageRecord); cont = dir.GetNext(&fileName); } } } OFCondition cond = dicomDir.write(); std::cout << cond.text() << std::endl; } void GADAPI::ExportToDicomDirCommand::Update() { if (m_pExportacionParams->m_hasError) { GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL,m_pExportacionParams->m_Error, GNC::GCS::Events::EventoMensajes::StatusMessage,true, GNC::GCS::Events::EventoMensajes::Error)); } else { GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL, _Std("Export has been finished successfully"), GNC::GCS::Events::EventoMensajes::StatusMessage,true, GNC::GCS::Events::EventoMensajes::Informacion)); } } //endregion #ifdef _MSC_VER #pragma warning(pop) #endif ginkgocadx-3.8.7/cadxcore/commands/exporttodicomdircommand.h000066400000000000000000000035511314736454600243700ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include namespace GNC { namespace GCS { class IVista; } } namespace GIL { namespace DICOM { class DicomDataset; } } namespace GADAPI { class ExportToDicomDirCommand; class EXTAPI ExportToDicomDirCommandParams : public GNC::GCS::IComandoParams { public: typedef std::list TListOfPks; ExportToDicomDirCommandParams(const TListOfPks& seriesList, const std::string& destinationPath, const GIL::DICOM::DicomDataset& anonymized, bool includeGinkgo); virtual ~ExportToDicomDirCommandParams(); TListOfPks m_seriesList; std::string m_destinationPath; GIL::DICOM::DicomDataset m_anonymized; bool m_includeGinkgoTags; std::string m_Error; bool m_hasError; }; class EXTAPI ExportToDicomDirCommand : public GNC::GCS::IComando { public: ExportToDicomDirCommand(ExportToDicomDirCommandParams* pParams); protected: virtual void Execute(); virtual void Update(); protected: ExportToDicomDirCommandParams* m_pExportacionParams; }; } ginkgocadx-3.8.7/cadxcore/commands/incomingdicomassociationcommand.cpp000066400000000000000000000565431314736454600264110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ // For some reason dcmtk-3.6.1-20150924 has an hiccup in // dcmth/oflog/ logger.h and logmacro.h // since they are not used we define the include guards here #define DCMTK_LOG4CPLUS_TRACELOGGER_H #define DCMTK_LOG4CPLUS_LOGGING_MACROS_HEADER_ #include #include #include #include #include #include
#include
#include
#include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif #include #include #include #include #include #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif #include
#include
#include
struct StoreCallbackData { //std::string imageFileName; DcmFileFormat* dcmff; T_ASC_Association* assoc; }; /** * This function.is used to indicate progress when storescp receives instance data over the * network. On the final call to this function (identified by progress->state == DIMSE_StoreEnd) * this function will store the data set which was received over the network to a file. * Earlier calls to this function will simply cause some information to be dumped to stdout. * * Parameters: * callbackData - [in] data for this callback function * progress - [in] The state of progress. (identifies if this is the initial or final call * to this function, or a call in between these two calls. * req - [in] The original store request message. * imageFileName - [in] The path to and name of the file the information shall be written to. * imageDataSet - [in] The data set which shall be stored in the image file * rsp - [inout] the C-STORE-RSP message (will be sent after the call to this function) * statusDetail - [inout] This variable can be used to capture detailed information with regard to * the status information which is captured in the status element (0000,0900). Note * that this function does specify any such information, the pointer will be set to NULL. */ static void storeSCPCallback( void * callbackData, T_DIMSE_StoreProgress * progress, T_DIMSE_C_StoreRQ * /*req*/, char * /*imageFileName*/, DcmDataset ** imageDataSet, T_DIMSE_C_StoreRSP * rsp, DcmDataset ** statusDetail) { //DIC_UI sopClass; //DIC_UI sopInstance; std::string ambitoLog = "storeSCPCallback"; // if this is the final call of this function, save the data which was received to a file // (note that we could also save the image somewhere else, put it in database, etc.) if (progress->state == DIMSE_StoreEnd) { OFString tmpStr; // do not send status detail information *statusDetail = NULL; // remember callback data StoreCallbackData *cbdata = OFstatic_cast(StoreCallbackData *, callbackData); // Concerning the following line: an appropriate status code is already set in the resp structure, // it need not be success. For example, if the caller has already detected an out of resources problem // then the status will reflect this. The callback function is still called to allow cleanup. //rsp->DimseStatus = STATUS_Success; // we want to write the received information to a file only if this information // is present and the options opt_bitPreserving and opt_ignore are not set. if ((imageDataSet != NULL) && (*imageDataSet != NULL)) { OFString fileName; OFString OFPacienteUId; OFString OFEstudioUId; OFString OFSerieUId; OFString OFImagenUId; std::string PacienteUId; std::string EstudioUId; std::string SerieUId; std::string ImagenUId; if ((*imageDataSet)->findAndGetOFString(DCM_PatientID, OFPacienteUId).good()) { PacienteUId.assign(OFPacienteUId.c_str()); } else { LOG_ERROR(ambitoLog, _Std("element patient id absent in dataset" )); rsp->DimseStatus = STATUS_STORE_Error_CannotUnderstand; return; } if ((*imageDataSet)->findAndGetOFString(DCM_StudyInstanceUID, OFEstudioUId).good()) { EstudioUId.assign(OFEstudioUId.c_str()); } else { LOG_ERROR(ambitoLog, _Std("element study instance uid absent in dataset" )); rsp->DimseStatus = STATUS_STORE_Error_CannotUnderstand; return; } if ((*imageDataSet)->findAndGetOFString(DCM_SeriesInstanceUID, OFSerieUId).good()) { SerieUId.assign(OFSerieUId.c_str()); } else { LOG_ERROR(ambitoLog, _Std("element series instance uid absent in dataset" )); rsp->DimseStatus = STATUS_STORE_Error_CannotUnderstand; return; } if ((*imageDataSet)->findAndGetOFString(DCM_SOPInstanceUID, OFImagenUId).good()) { ImagenUId.assign(OFImagenUId.c_str()); } else { LOG_ERROR(ambitoLog, _Std("element sop instance uid absent in dataset" )); rsp->DimseStatus = STATUS_STORE_Error_CannotUnderstand; return; } std::string rutaStd; if (!GIL::DICOM::PACSController::Instance()->GetRutaImagenTemp(PacienteUId,EstudioUId,SerieUId,ImagenUId, rutaStd)) { LOG_ERROR(ambitoLog, "could not create subdirectory for study: " << rutaStd); rsp->DimseStatus = STATUS_STORE_Error_CannotUnderstand; return; } fileName = rutaStd.c_str(); // determine the transfer syntax which shall be used to write the information to the file E_TransferSyntax xfer = (*imageDataSet)->getOriginalXfer(); // store file either with meta header or as pure dataset LOG_DEBUG(ambitoLog, "storing DICOM file: " << fileName); /* if (OFStandard::fileExists(fileName)) { LOG_WARN(ambitoLog, "DICOM file already exists, overwriting: " << fileName); }*/ OFCondition cond = cbdata->dcmff->saveFile(fileName.c_str(), xfer); if (cond.bad()) { LOG_ERROR(ambitoLog, "cannot write DICOM file: " << fileName << ": " << cond.text()); rsp->DimseStatus = STATUS_STORE_Refused_OutOfResources; } // check the image to make sure it is consistent, i.e. that its sopClass and sopInstance correspond // to those mentioned in the request. If not, set the status in the response message variable. if (rsp->DimseStatus == STATUS_Success) { // which SOP class and SOP instance ? /* if (!DU_findSOPClassAndInstanceInDataSet(*imageDataSet, sopClass, sopInstance)) { LOG_ERROR(ambitoLog, "bad DICOM file: " << fileName); rsp->DimseStatus = STATUS_STORE_Error_CannotUnderstand; } else if (strcmp(sopClass, req->AffectedSOPClassUID) != 0) { rsp->DimseStatus = STATUS_STORE_Error_DataSetDoesNotMatchSOPClass; } else if (strcmp(sopInstance, req->AffectedSOPInstanceUID) != 0) { rsp->DimseStatus = STATUS_STORE_Error_DataSetDoesNotMatchSOPClass; }*/ } } } } GADAPI::PACS::IncomingDicomAssociationCommandParams::IncomingDicomAssociationCommandParams(T_ASC_Association* assoc, unsigned long rcvTimeout) { m_pAssoc = assoc; m_rcvTimeout = rcvTimeout; } GADAPI::PACS::IncomingDicomAssociationCommandParams::~IncomingDicomAssociationCommandParams() { if (m_pAssoc != NULL) { OFCondition cond = ASC_dropSCPAssociation(m_pAssoc); OFString temp_str; if (cond.bad()) { LOG_FATAL("IncomingDicomAssociationCommandParams", DimseCondition::dump(temp_str, cond).c_str()); } cond = ASC_destroyAssociation(&m_pAssoc); if (cond.bad()) { LOG_FATAL("IncomingDicomAssociationCommandParams", DimseCondition::dump(temp_str, cond).c_str()); } m_pAssoc = NULL; } } //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- GADAPI::PACS::IncomingDicomAssociationCommand::IncomingDicomAssociationCommand(IncomingDicomAssociationCommandParams* pParams, const std::string& name) : IComando(pParams, name) { m_pIncommingassociationParams = pParams; ambitolog = name; } GADAPI::PACS::IncomingDicomAssociationCommand::~IncomingDicomAssociationCommand() { } void GADAPI::PACS::IncomingDicomAssociationCommand::Execute() { OFCondition cond = EC_Normal; OFString temp_str; T_ASC_Association* assoc = m_pIncommingassociationParams->m_pAssoc; T_DIMSE_Message msg; T_ASC_PresentationContextID presID = 0; DcmDataset *statusDetail = NULL; std::string cmdname; // start a loop to be able to receive more than one DIMSE command while( cond == EC_Normal || cond == DIMSE_NODATAAVAILABLE || cond == DIMSE_OUTOFRESOURCES ) { // receive a DIMSE command over the network cond = DIMSE_receiveCommand(assoc, DIMSE_BLOCKING, m_pIncommingassociationParams->m_rcvTimeout, &presID, &msg, &statusDetail); // if the command which was received has extra status // detail information, dump this information if (statusDetail != NULL) { LOG_WARN(ambitolog, "Status Detail:" << OFendl << DcmObject::PrintHelper(*statusDetail)); delete statusDetail; } // check if peer did release or abort, or if we have a valid message if (cond == EC_Normal) { switch (msg.CommandField) { case DIMSE_C_ECHO_RQ: echoSCP(assoc, &msg, presID, &cond); break; case DIMSE_C_STORE_RQ: cmdname = "C-STORE-RQ"; storeSCP(assoc, &msg, presID, &cond); break; case DIMSE_C_GET_RQ: cmdname = "C-GET-RQ"; #if 0 getSCP(assoc, &msg, presID, &cond); #else { LOG_ERROR(ambitolog, _Std("Ignoring incoming operation ") << cmdname << ":" << _Std("Not implemented")); DIC_UL x = 0, y = 0; DIMSE_ignoreDataSet(assoc, DIMSE_BLOCKING, 0, &x, &y); T_DIMSE_Message rsp; bzero((char*)&rsp, sizeof(rsp)); rsp.CommandField = DIMSE_C_GET_RSP; rsp.msg.CGetRSP.DimseStatus = STATUS_GET_Failed_SOPClassNotSupported; rsp.msg.CGetRSP.MessageIDBeingRespondedTo = msg.msg.CGetRQ.MessageID; strcpy(rsp.msg.CGetRSP.AffectedSOPClassUID, msg.msg.CGetRQ.AffectedSOPClassUID); rsp.msg.CGetRSP.opts = O_GET_AFFECTEDSOPCLASSUID | O_GET_NUMBEROFREMAININGSUBOPERATIONS | O_GET_NUMBEROFCOMPLETEDSUBOPERATIONS | O_GET_NUMBEROFFAILEDSUBOPERATIONS | O_GET_NUMBEROFWARNINGSUBOPERATIONS; rsp.msg.CGetRSP.DataSetType = DIMSE_DATASET_NULL; rsp.msg.CGetRSP.NumberOfCompletedSubOperations = 0; rsp.msg.CGetRSP.NumberOfFailedSubOperations = 1; rsp.msg.CGetRSP.NumberOfRemainingSubOperations = 0; rsp.msg.CGetRSP.NumberOfWarningSubOperations = 0; DcmDataset ds_detail; ds_detail.putAndInsertString(DCM_SpecificCharacterSet, "ISO_IR 192"); ds_detail.putAndInsertString(DCM_ErrorComment, _Std("Not implemented").c_str()); cond = DIMSE_sendMessageUsingMemoryData(assoc, presID, &rsp, &ds_detail, NULL, NULL, NULL); } #endif break; case DIMSE_C_FIND_RQ: cmdname = "C-FIND-RQ"; cond = DIMSE_BADCOMMANDTYPE; break; case DIMSE_C_MOVE_RQ: cmdname = "C-MOVE-RQ"; cond = DIMSE_BADCOMMANDTYPE; break; case DIMSE_C_CANCEL_RQ: cmdname = "C-CANCEL-RQ"; cond = DIMSE_BADCOMMANDTYPE; break; case DIMSE_N_EVENT_REPORT_RQ: cmdname = "N-EVENT-RQ"; cond = DIMSE_BADCOMMANDTYPE; break; case DIMSE_N_GET_RQ: cmdname = "N-GET-RQ"; cond = DIMSE_BADCOMMANDTYPE; break; case DIMSE_N_SET_RQ: cmdname = "N-SET-RQ"; cond = DIMSE_BADCOMMANDTYPE; break; case DIMSE_N_ACTION_RQ: cmdname = "N-ACTION-RQ"; cond = DIMSE_BADCOMMANDTYPE; break; case DIMSE_N_CREATE_RQ: cmdname = "N-CREATE-RQ"; cond = DIMSE_BADCOMMANDTYPE; break; case DIMSE_N_DELETE_RQ: cmdname = "N-DELETE-RQ"; cond = DIMSE_BADCOMMANDTYPE; break; case DIMSE_NOTHING: cmdname = "NOTHING"; cond = DIMSE_BADCOMMANDTYPE; break; default: // we cannot handle this kind of message cond = DIMSE_BADCOMMANDTYPE; break; } } } if (cond == DIMSE_BADCOMMANDTYPE) { std::ostringstream os; os << "0x" << std::hex << OFstatic_cast(unsigned, msg.CommandField); cmdname = os.str(); LOG_ERROR(ambitolog, _Std("Ignoring incoming operation ") << cmdname << ":" << _Std("Not implemented")); ASC_abortAssociation(assoc); } else { if (cond == DUL_PEERREQUESTEDRELEASE) { LOG_DEBUG(ambitolog, "Association released by remote endpoint"); cond = ASC_acknowledgeRelease(assoc); } else if (cond == DUL_PEERABORTEDASSOCIATION) { LOG_WARN(ambitolog, "Association Aborted by remote endpoint"); } else { LOG_ERROR(ambitolog, "DIMSE failure (aborting association): " << DimseCondition::dump(temp_str, cond).c_str()); // some kind of error so abort the association cond = ASC_abortAssociation(assoc); } if (cond.bad()) { LOG_WARN(ambitolog, "DIMSE failure (closing association): " << DimseCondition::dump(temp_str, cond).c_str()); } } } void GADAPI::PACS::IncomingDicomAssociationCommand::echoSCP( T_ASC_Association * assoc, T_DIMSE_Message * msg, unsigned char presID, OFCondition* rcond) { OFString temp_str; LOG_INFO(ambitolog, "Received Echo Request"); LOG_DEBUG(ambitolog, DIMSE_dumpMessage(temp_str, msg->msg.CEchoRQ, DIMSE_INCOMING, NULL, presID)); // the echo succeeded !! OFCondition cond = DIMSE_sendEchoResponse(assoc, presID, &msg->msg.CEchoRQ, STATUS_Success, NULL); if (cond.bad()) { LOG_ERROR(ambitolog, "Echo SCP Failed: " << DimseCondition::dump(temp_str, cond)); } *rcond = cond; } /** * This function processes a DIMSE C-STORE-RQ commmand that was * received over the network connection. * * Parameters: * assoc - [in] The association (network connection to another DICOM application). * msg - [in] The DIMSE C-STORE-RQ message that was received. * presID - [in] The ID of the presentation context which was specified in the PDV which contained * the DIMSE command. */ void GADAPI::PACS::IncomingDicomAssociationCommand::storeSCP( T_ASC_Association *assoc, T_DIMSE_Message *msg, unsigned char presID, OFCondition* rcond) { OFCondition cond = EC_Normal; T_DIMSE_C_StoreRQ *req; // assign the actual information of the C-STORE-RQ command to a local variable req = &msg->msg.CStoreRQ; if (m_TempDir.size() == 0) { m_TempDir = GNC::Entorno::Instance()->CreateGinkgoTempFile(); } // GW: still not secure, but no longer a resource leak, see also #16 // since right now I don't know how to properly work around this, I'll just tag the code. // coverity[SECURE_TEMP] char *fileName = tempnam(m_TempDir.c_str(), "sscpfile_"); if (!fileName) { LOG_ERROR(ambitolog, "Unable to create unique file name:"<< strerror(errno)); *rcond = makeOFCondition(OFM_dcmnet, 20, OF_error, "IncomingDicomAssociationCommand::storeSCP: unable to create unique file name"); return; } // dump some information if required OFString str; LOG_DEBUG(ambitolog, "Received Store Request: MsgID " << req->MessageID << ", (" << dcmSOPClassUIDToModality(req->AffectedSOPClassUID, "OT") << ")"); LOG_DEBUG(ambitolog, DIMSE_dumpMessage(str, *req, DIMSE_INCOMING, NULL, presID)); // intialize some variables StoreCallbackData callbackData; callbackData.assoc = assoc; DcmFileFormat dcmff; callbackData.dcmff = &dcmff; // store SourceApplicationEntityTitle in metaheader if (assoc && assoc->params) { const char *aet = assoc->params->DULparams.callingAPTitle; if (aet) dcmff.getMetaInfo()->putAndInsertString(DCM_SourceApplicationEntityTitle, aet); } // define an address where the information which will be received over the network will be stored // if opt_bitPreserving is set, the user requires that the data shall be // written exactly as it was received. Depending on this option, function // DIMSE_storeProvider must be called with certain parameters. bool opt_useMetaheader = true; int opt_dimse_timeout = 60; cond = DIMSE_storeProvider(assoc, presID, req, fileName, opt_useMetaheader, NULL, storeSCPCallback, &callbackData, DIMSE_NONBLOCKING, opt_dimse_timeout); // if some error occured, dump corresponding information and remove the outfile if necessary if (cond.bad()) { OFString temp_str; LOG_ERROR(ambitolog, "Store SCP Failed: " << DimseCondition::dump(temp_str, cond)); // remove file if (strcmp(fileName, NULL_DEVICE_NAME) != 0) OFStandard::deleteFile(fileName); } else { m_DicomFileList.push_back(std::string(fileName)); } free(fileName); *rcond = cond; } void GADAPI::PACS::IncomingDicomAssociationCommand::Update() { if(m_Error != "") { LOG_WARN(ambitolog, m_Error); GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL, m_Error, GNC::GCS::Events::EventoMensajes::PopUpMessage, false, GNC::GCS::Events::EventoMensajes::Error)); } if (m_DicomFileList.size() > 0) { GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(m_DicomFileList, false, GNC::GCS::HistoryController::TAA_MOVE); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial * pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Including files..."),pCmd,NULL); } } ginkgocadx-3.8.7/cadxcore/commands/incomingdicomassociationcommand.h000066400000000000000000000043161314736454600260450ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include struct T_ASC_Association; struct T_DIMSE_Message; class OFCondition; namespace GADAPI { namespace PACS { class EXTAPI IncomingDicomAssociationCommandParams : public GNC::GCS::IComandoParams { public: IncomingDicomAssociationCommandParams(T_ASC_Association* assoc, unsigned long rcvTimeout = 0); virtual ~IncomingDicomAssociationCommandParams(); T_ASC_Association* m_pAssoc; long m_rcvTimeout; }; //----------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------- class EXTAPI IncomingDicomAssociationCommand : public GNC::GCS::IComando { public: IncomingDicomAssociationCommand(IncomingDicomAssociationCommandParams* pParams, const std::string& name="SCP-Service"); virtual ~IncomingDicomAssociationCommand(); protected: virtual void Execute(); virtual void Update(); void echoSCP( T_ASC_Association * assoc, T_DIMSE_Message * msg, unsigned char presID, OFCondition* cond); void storeSCP( T_ASC_Association * assoc, T_DIMSE_Message * msg, unsigned char presID, OFCondition* cond); IncomingDicomAssociationCommandParams* m_pIncommingassociationParams; std::string ambitolog; std::list m_DicomFileList; std::string m_TempDir; std::string m_Error; }; } } ginkgocadx-3.8.7/cadxcore/commands/inotificadorcalibrado.h000066400000000000000000000020421314736454600237370ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once namespace GNC { namespace GUI { struct TPuntoCalibrado; } } namespace GADAPI { class INotificadorCalibrado { public: INotificadorCalibrado() {} virtual ~INotificadorCalibrado() {} virtual void SetPuntosCalibrado(std::list& puntos) = 0; }; } ginkgocadx-3.8.7/cadxcore/commands/linkhistorycommand.cpp000066400000000000000000000234121314736454600237010ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include #include #include #include #include #include #include #include #include #include #include
#include "linkhistorycommand.h" #include
#include
#include
#include
#include
#include
#include "dialogopathssobreescribirbase.h" #define IDC_INCLUIR 101 namespace GADAPI { //lee un directorio en profundidad y lo incluye en el dicomdir namespace LinkHistoryCommand { LinkHistoryCommandParams::LinkHistoryCommandParams(const GNC::GCS::Ptr& pModelo) : m_pModelo(pModelo), m_abrirDespuesDeCargar(false), m_informar(true) { } LinkHistoryCommandParams::~LinkHistoryCommandParams() { } LinkHistoryCommand::LinkHistoryCommand(LinkHistoryCommandParams* pParams) : IComando(pParams) { GTRACE(">> ComandoCarga::ComandoCarga(): " << this); m_pLinkParams = pParams; SetId(IDC_INCLUIR); GTRACE("<< ComandoCarga::ComandoCarga(): " << this); } void LinkHistoryCommand::Execute() { std::list* insertedSeriesPtr = &(m_pLinkParams->m_InsertedSeries); NotificarProgreso(0.0f,_Std("Linking study...")); //first iteration insert downloaded slices into history as usual... if (m_pLinkParams->m_pModelo.IsValid()) { //listamos las imagenes que nos hemos bajado GNC::GCS::HistoryController::StringList urlList; for (IModeloDicom::ListaPacientesType::const_iterator it = m_pLinkParams->m_pModelo->ListaPacientes().begin(); it != m_pLinkParams->m_pModelo->ListaPacientes().end(); ++it) { const IModeloPaciente& p = *it; for (IModeloPaciente::ListaEstudiosType::const_iterator it2 = p.ListaEstudios().begin(); it2 != p.ListaEstudios().end(); ++it2) { const IModeloEstudio& e = *it2; for (IModeloEstudio::ListaSeriesType::const_iterator it3 = e.ListaSeries().begin(); it3 != e.ListaSeries().end(); ++it3) { const IModeloSerie& s = *it3; //first of all insert files... GNC::GCS::HistoryController::StringList fileList; GNC::GCS::IHistoryController::DICOMFileModelList fileModels; for (IModeloSerie::ListaImagenesType::const_iterator it4 = s.ListaImagenes().begin(); it4 != s.ListaImagenes().end(); ++it4) { const IModeloImagen& im = *it4; std::string path = im.GetPathImagen(); wxFileName filename(FROMPATH(im.GetPathImagen())); if(filename.GetExt().Lower() == wxT("dcm") || GIL::DICOM::PACSController::Instance()->EsDICOM(im.GetPathImagen(), false, true) ) { fileList.push_back(im.GetPathImagen()); } else if (!path.empty()) { GNC::GCS::IHistoryController::DICOMFileModel fileModel; fileModel.file.file_path = im.GetPathImagen(); long in = 0; wxString::FromUTF8(im.GetInstanceNumber().c_str()).ToLong(&in); fileModel.file.instance_number = in; fileModel.file.sopiuid = im.GetUID(); fileModels.push_back(fileModel); } else { LOG_ERROR("LINKCommand", "trying to link an instance without wado url: " << im.GetUID()); m_pLinkParams->m_ErrorList.push_back(GNC::GCS::HistoryController::TAddError(GNC::GCS::IHistoryController::TAddError::TE_WrongFormat, im.GetUID())); } } if (fileList.empty()) { //error no file in series return; } if (GNC::GCS::HistoryController::Instance()->AddFiles(fileList, m_pLinkParams->m_ErrorList, insertedSeriesPtr, this, GNC::GCS::HistoryController::TAA_MOVE)) { GNC::GCS::HistoryController::Instance()->LinkFilesToSeries(insertedSeriesPtr->back(), fileModels,this); } } } } } } void LinkHistoryCommand::Update() { wxString message = wxT(""); message += _("Image acquisition finished."); message += wxT("\n"); if (m_pLinkParams->m_ErrorList.size() > 0) message += wxString::Format(_("\nThere are %d errors (see log for more detailed description)"), (int)(m_pLinkParams->m_ErrorList.size())); //log { std::ostringstream errorOstr; if (!m_pLinkParams->m_ErrorList.empty()) { bool first = true; for (GNC::GCS::HistoryController::TAddErrorList::iterator it = m_pLinkParams->m_ErrorList.begin(); it != m_pLinkParams->m_ErrorList.end(); ++it) { if ((*it).error == GNC::GCS::HistoryController::TAddError::TE_FileNotExist) { if (first) { errorOstr<< "\t" << _Std("This files doesn't exist:") << std::endl; first = false; } errorOstr << "\t\t" << (*it).path << std::endl; } } first = true; for (GNC::GCS::HistoryController::TAddErrorList::iterator it = m_pLinkParams->m_ErrorList.begin(); it != m_pLinkParams->m_ErrorList.end(); ++it) { if ((*it).error == GNC::GCS::HistoryController::TAddError::TE_WrongFormat) { if (first) { errorOstr<< "\t" << _Std("This files doesn't have DICOM format:") << std::endl; first = false; } errorOstr << "\t\t" << (*it).path << std::endl; } } first = true; for (GNC::GCS::HistoryController::TAddErrorList::iterator it = m_pLinkParams->m_ErrorList.begin(); it != m_pLinkParams->m_ErrorList.end(); ++it) { if ((*it).error == GNC::GCS::HistoryController::TAddError::TE_DICOMDir) { if (first) { errorOstr << "\t" <<_Std("This files are Dicom Dirs:") << std::endl; first = false; } errorOstr << "\t\t" << (*it).path << std::endl; } } } std::string errorString = errorOstr.str(); if (!errorString.empty()) { LOG_ERROR("ComandoIncluirHistorial", errorOstr.str()); } } GNC::GUI::HistoryPanel3::Instance()->ReloadCombos(false); GNC::GUI::HistoryPanel3::Instance()->RefreshSearch(); const int MAX_OPENED_STUDIES = 3; if (m_pLinkParams->m_abrirDespuesDeCargar) { std::set openedStudies; for (std::list::iterator it = m_pLinkParams->m_InsertedSeries.begin(); it != m_pLinkParams->m_InsertedSeries.end() && openedStudies.size() < MAX_OPENED_STUDIES; ++it) { GNC::GCS::HistoryController::SeriesModel seriesModel = GNC::GCS::HistoryController::Instance()->GetSeriesModel((*it)); GNC::GUI::HistoryPanel3::Instance()->OpenSeriesOrStudy(seriesModel.study_fk, false); } } } } } ginkgocadx-3.8.7/cadxcore/commands/linkhistorycommand.h000066400000000000000000000035741314736454600233550ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include #include namespace GNC { namespace GCS { class IVista; } } namespace GADAPI { //lee un directorio en profundidad y lo incluye en el dicomdir namespace LinkHistoryCommand { class LinkHistoryCommand; class EXTAPI LinkHistoryCommandParams : public GNC::GCS::IComandoParams { public: LinkHistoryCommandParams(const GNC::GCS::Ptr& pModelo); virtual ~LinkHistoryCommandParams(); GNC::GCS::Ptr m_pModelo; GNC::GCS::IHistoryController::TAddErrorList m_ErrorList; std::list m_InsertedSeries; bool m_abrirDespuesDeCargar; bool m_informar; }; class EXTAPI LinkHistoryCommand : public GNC::GCS::IComando { public: LinkHistoryCommand(LinkHistoryCommandParams* pParams); protected: virtual void Execute(); virtual void Update(); private: LinkHistoryCommandParams* m_pLinkParams; }; } } ginkgocadx-3.8.7/cadxcore/commands/openremovableunit.cpp000066400000000000000000000152501314736454600235220ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include
#include #include "openremovableunit.h" #include #include #include
#include
#include
#include
#include #include
#include
namespace GADAPI { OpenRemovableUnitCommand::OpenRemovableUnitCommand(OpenRemovableUnitCommandParams* pParams) : IComando(pParams) { m_pOpenParams = pParams; } void OpenRemovableUnitCommand::Execute() { LOG_STAT(ANON_STAT_OPEN_CD) #ifdef _WIN32 NotificarProgreso(0.15f, _Std("Exploring drives...")); wxArrayString volumes = wxFSVolume::GetVolumes(wxFS_VOL_MOUNTED|wxFS_VOL_REMOVABLE ); NotificarProgreso(0.75f, _Std("Exploring drives...")); wxArrayString mountedVolumes; for (wxArrayString::iterator it = volumes.begin(); it != volumes.end(); ++it) { wxFSVolume fs((*it)); if (fs.IsOk()) { OpenRemovableUnitCommandParams::TRemovableUnit unit; unit.path = TOPATH(fs.GetName()); //first of all list files in path if it isn't mounted ... error wxDir dir; wxString tmp; if (dir.Open(fs.GetName()) && dir.GetFirst(&tmp)) { //second check if it includes dicomdir wxString dicomDirPath = fs.GetName() + wxT("DICOMDIR"); unit.hasDicomDir = wxFileExists(dicomDirPath) && GIL::DICOM::PACSController::Instance()->EsDICOM(TOPATH(dicomDirPath),true,false); unit.displayName = fs.GetDisplayName().ToUTF8(); m_pOpenParams->units.push_back(unit); } } } #endif } void OpenRemovableUnitCommand::Update() { if (EstaAbortado()) { return; } if (m_pOpenParams->units.empty()) { //no units if (wxMessageBox(_("No DICOMDIR found in removable units.\nWould you like to scan other path recursively?"), _("Info"), wxOK|wxCANCEL, m_pOpenParams->m_pParent) == wxOK) { GNC::GUI::Abrir::AbrirDirectorio(m_pOpenParams->m_pParent); } } else { if (!OpenDicomDir()) { ScanRecursively(); } } } bool OpenRemovableUnitCommand::OpenDicomDir() { int numberOfUnits = 0; std::string path; for (OpenRemovableUnitCommandParams::TListOfUnits::iterator it = m_pOpenParams->units.begin(); it != m_pOpenParams->units.end(); ++it) { if ((*it).hasDicomDir) { numberOfUnits++; path = (*it).path; } } if (numberOfUnits == 0) { return false; } else if (numberOfUnits == 1) { //dialogo de adquisicion a traves de dicomdir... LaunchOpenDicomDir(path); } else { //show dialog listing units.. SelectDrive(true); } return true; } bool OpenRemovableUnitCommand::ScanRecursively() { if (m_pOpenParams->units.size() == 1) { wxString name = wxString::FromUTF8(m_pOpenParams->units.front().displayName.c_str()); wxString message = wxString::Format(_("No DICOMDIR found in removable units, would you like to scan recursively %s drive"), name.c_str()); if (wxMessageBox(message, _("Info"), wxOK|wxCANCEL, m_pOpenParams->m_pParent) == wxOK) { LaunchOpenRecursively(m_pOpenParams->units.front().path); } } else { SelectDrive(false); } return true; } void OpenRemovableUnitCommand::SelectDrive(bool hasDicomDir) { GNC::GUI::SelectDrive::TListOfDrives listOfDrives; for (OpenRemovableUnitCommandParams::TListOfUnits::iterator it = m_pOpenParams->units.begin(); it != m_pOpenParams->units.end(); ++it) { if ((*it).hasDicomDir == hasDicomDir) { listOfDrives.push_back(GNC::GUI::SelectDrive::TDrive((*it).path, (*it).displayName)); } } GNC::GUI::SelectDrive dialog(m_pOpenParams->m_pParent, listOfDrives); if (hasDicomDir) { dialog.SetMessage(_("Select drive you want to open")); } else { dialog.SetMessage(_("Ginkgo CADx has detected more than one removable units,\nbut none of them includes a DICOMDIR at root.\nSelect drive where you want to acquire recursively")); } if (dialog.ShowModal() == wxID_OK) { std::string path = dialog.GetSelectedDrive(); if (hasDicomDir) { LaunchOpenDicomDir(path); } else { LaunchOpenRecursively(path); } } } void OpenRemovableUnitCommand::LaunchOpenRecursively(const std::string& path) { GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(path,true); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync(_Std("Storing in the history..."),pCmd, NULL); } void OpenRemovableUnitCommand::LaunchOpenDicomDir(const std::string& path) { std::ostringstream ostr; ostr << path << "DICOMDIR"; GNC::GUI::DialogoDicomDir dicomDirDialog(m_pOpenParams->m_pParent, ostr.str()); dicomDirDialog.ShowModal(); } } ginkgocadx-3.8.7/cadxcore/commands/openremovableunit.h000066400000000000000000000035431314736454600231710ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include namespace GADAPI { class OpenRemovableUnitCommandParams: public GNC::GCS::IComandoParams { public: typedef struct TRemovableUnit { std::string displayName; std::string path; bool hasDicomDir; } TRemovableUnit; OpenRemovableUnitCommandParams(wxWindow* pParent) { m_pParent = pParent; } virtual ~OpenRemovableUnitCommandParams() { } public: typedef std::list TListOfUnits; TListOfUnits units; wxWindow* m_pParent; }; class OpenRemovableUnitCommand : public GNC::GCS::IComando { public: OpenRemovableUnitCommand(OpenRemovableUnitCommandParams* pParams); protected: virtual void Execute(); virtual void Update(); bool OpenDicomDir(); bool ScanRecursively(); void SelectDrive(bool hasDicomDir); void LaunchOpenRecursively(const std::string& path); void LaunchOpenDicomDir(const std::string& path); protected: OpenRemovableUnitCommandParams* m_pOpenParams; }; } ginkgocadx-3.8.7/cadxcore/commands/pacsdownloadcommand.cpp000066400000000000000000000201351314736454600237770ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include #include #include #include #include
#include #include #include #include
#include "pacsdownloadcommand.h" #include "comandoincluirhistorial.h" #include "linkhistorycommand.h" #define IDC_PACS_BUSCAR 61 #define IDC_PACS_DESCARGAR 62 #define IDC_PACS_SUBIR 64 #define ID_REFRESCO_PROGRESO 1 #define PARALLEL // Singleton de persistencia namespace GADAPI { PACSDownloadCommandParams::PACSDownloadCommandParams(const std::string& serverSeleccionado, const GIL::DICOM::DicomDataset& base, bool link, bool silent) : m_link(link), m_silent(silent), m_base(base) { m_base = base; m_pModelo = GNC::GCS::Ptr(new IModeloDicom()); if(serverSeleccionado == "") { //usaremos el primer servidor (por defecto) if(!DicomServerList::Instance()->Empty()) { m_serverSeleccionado = DicomServerList::Instance()->GetDefaultServer()->ID; } else { throw GIL::DICOM::PACSException(_Std("There is not any Remote PACS configured")); } } else { m_serverSeleccionado = serverSeleccionado; } m_error = ""; } PACSDownloadCommandParams::~PACSDownloadCommandParams() { } PACSDownloadCommand::PACSDownloadCommand(PACSDownloadCommandParams* pParams) : IComando(pParams) { m_pPACSParams = pParams; SetId(IDC_PACS_DESCARGAR); EsperaA(IDC_PACS_DESCARGAR); #if !defined(PARALLEL) EsperaA(IDC_PACS_BUSCAR); EsperaA(IDC_PACS_DESCARGAR); EsperaA(IDC_PACS_SUBIR); #endif } void PACSDownloadCommand::Execute() { std::string tarea= _Std("Downloading files ..."); if (!NotificarProgreso(0.0f,tarea)) { return; } GIL::DICOM::IPACSController* pCI = NULL; try { pCI = GNC::GCS::IEntorno::Instance()->GetPACSController(); pCI->GetConnection(this); pCI->QueryRetrieve(this, m_pPACSParams->m_serverSeleccionado, m_pPACSParams->m_pModelo, m_pPACSParams->m_base, this, m_pPACSParams->m_link); } catch (GinkgoNoServerFoundException& ) { m_pPACSParams->m_error= _Std("Server ID not found. ID = ") + m_pPACSParams->m_serverSeleccionado; m_pPACSParams->m_pModelo->Error = true; } catch (GIL::DICOM::PACSException& ex) { m_pPACSParams->m_error = (const std::string)ex; m_pPACSParams->m_pModelo->Error = true; } catch (std::exception& ex) { m_pPACSParams->m_error= ex.what(); m_pPACSParams->m_pModelo->Error = true; } catch (...) { m_pPACSParams->m_error= _Std("Internal Error"); m_pPACSParams->m_pModelo->Error = true; } if (pCI) { pCI->ReleaseConnection(this); } GTRACE(m_pPACSParams->m_pModelo); NotificarProgreso(1.0f,tarea); } void PACSDownloadCommand::Update() { if (EstaAbortado()) { return; } if(!m_pPACSParams->m_error.empty()) { LOG_ERROR("C-MOVE/C-GET", "Error Downloading study: " << m_pPACSParams->m_error); if (!m_pPACSParams->m_silent) { GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL, _Std("Error downloading study: ") + "\n" + m_pPACSParams->m_error, GNC::GCS::Events::EventoMensajes::PopUpMessage,false, GNC::GCS::Events::EventoMensajes::Error)); } return; } else { if (!m_pPACSParams->m_link) { //move downloaded images to history std::list rutas; std::string rutaImagen; if (m_pPACSParams->m_pModelo.IsValid()) { //listamos las imagenes que nos hemos bajado for (IModeloDicom::ListaPacientesType::const_iterator it = m_pPACSParams->m_pModelo->ListaPacientes().begin(); it != m_pPACSParams->m_pModelo->ListaPacientes().end(); ++it) { const IModeloPaciente& p = *it; for (IModeloPaciente::ListaEstudiosType::const_iterator it2 = p.ListaEstudios().begin(); it2 != p.ListaEstudios().end(); ++it2) { const IModeloEstudio& e = *it2; for (IModeloEstudio::ListaSeriesType::const_iterator it3 = e.ListaSeries().begin(); it3 != e.ListaSeries().end(); ++it3) { const IModeloSerie& s = *it3; for (IModeloSerie::ListaImagenesType::const_iterator it4 = s.ListaImagenes().begin(); it4 != s.ListaImagenes().end(); ++it4) { const IModeloImagen& im = *it4; rutas.push_back(im.GetPathImagen()); } } } } } //si ha descargado algo... if(rutas.empty()) { return; } //se lanza un evento para incluir las imagenes en el historial GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(rutas, true, GNC::GCS::IHistoryController::TAA_MOVE); //silent mode... pParams->m_abrirDespuesDeCargar = !m_pPACSParams->m_silent; GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial * pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Including files..."), pCmd, NULL); } else { //link images... GADAPI::LinkHistoryCommand::LinkHistoryCommandParams* pParams = new GADAPI::LinkHistoryCommand::LinkHistoryCommandParams(m_pPACSParams->m_pModelo); //silent mode... pParams->m_abrirDespuesDeCargar = !m_pPACSParams->m_silent; GADAPI::LinkHistoryCommand::LinkHistoryCommand * pCmd = new GADAPI::LinkHistoryCommand::LinkHistoryCommand(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Including files..."), pCmd, NULL); } } } bool PACSDownloadCommand::NotificarProgreso(float progresoNormalizado,const std::string &texto) { if (EstaAbortado()) { return false; } return IComando::NotificarProgreso(progresoNormalizado, texto); } void PACSDownloadCommand::LiberarRecursos() { } } ginkgocadx-3.8.7/cadxcore/commands/pacsdownloadcommand.h000066400000000000000000000040251314736454600234440ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once //#define _GINKGO_TRACE #include #include #include #include #include #include
namespace GIL { class IModeloIntegracion; namespace DICOM { class IPACSController; } } namespace GADAPI { class PACSDownloadCommandParams : public GNC::GCS::IComandoParams { public: //download only specifying PACSDownloadCommandParams(const std::string& serverSeleccionado, const GIL::DICOM::DicomDataset& base, bool link = false, bool silent = false); virtual ~PACSDownloadCommandParams(); public: std::string m_serverSeleccionado; bool m_link; bool m_silent; std::string m_error; GNC::GCS::Ptr m_pModelo; GIL::DICOM::DicomDataset m_base; }; class EXTAPI PACSDownloadCommand : public GNC::GCS::IComando { public: PACSDownloadCommand(PACSDownloadCommandParams* pParams); protected: virtual void Execute(); virtual void Update(); public: virtual bool NotificarProgreso(float progresoNormalizado, const std::string &texto); void LiberarRecursos(); PACSDownloadCommandParams* m_pPACSParams; }; } ginkgocadx-3.8.7/cadxcore/commands/pdfextractercommand.cpp000066400000000000000000000125361314736454600240220ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include
#include
#include "pdfextractercommand.h" #define IDC_EXTRACTER 5002 // Singleton de persistencia namespace GADAPI { PDFExtracterCommandParameters::PDFExtracterCommandParameters(const std::list& rutas, const std::list& dests, bool forOpening) { m_pathsOriginal.insert(m_pathsOriginal.begin(), rutas.begin(), rutas.end()); m_pathsExtracted.insert(m_pathsExtracted.begin(), dests.begin(), dests.end()); m_error = false; m_ForOpening = forOpening; } PDFExtracterCommandParameters::~PDFExtracterCommandParameters() { } PDFExtracterCommand::PDFExtracterCommand(PDFExtracterCommandParameters* pParams) : IComando(pParams) { m_pExtracterParameters = pParams; SetId(IDC_EXTRACTER); EsperaA(IDC_EXTRACTER); } void PDFExtracterCommand::Execute() { wxString wxPathDirectorioTemporal; if (m_pExtracterParameters->m_pathsExtracted.empty()) { wxPathDirectorioTemporal = FROMPATH(GNC::GCS::IEntorno::Instance()->CreateGinkgoTempDir()); } class ProxyNotificador: public GNC::IProxyNotificadorProgreso { public: ProxyNotificador(PDFExtracterCommand* pCmd) { m_pCmd = pCmd; } virtual bool NotificarProgreso(float progresoNormalizado, const std::string& texto) { return m_pCmd->NotificarProgreso(progresoNormalizado, texto); } PDFExtracterCommand* m_pCmd; }; ProxyNotificador proxy(this); bool calculatePaths = m_pExtracterParameters->m_pathsExtracted.empty(); int i = 0; for (std::vector::iterator itRutas = m_pExtracterParameters->m_pathsOriginal.begin(); itRutas != m_pExtracterParameters->m_pathsOriginal.end(); ++itRutas) { std::string stdFilePath; if (calculatePaths) { wxString fpath = wxPathDirectorioTemporal + wxFileName::GetPathSeparator() + wxString::Format(wxT("%d.pdf"), (int)(i) ); stdFilePath = std::string( TOPATH(fpath) ); } else { stdFilePath = m_pExtracterParameters->m_pathsExtracted.at(i); } //extract pdf data in temp directory... GIL::DICOM::DICOMManager manager; manager.CargarFichero((*itRutas)); //encapsulated pdf... if (manager.ExtractTagToFile(0x0042, 0x0011, stdFilePath, &proxy)) { m_pExtracterParameters->m_pathsExtracted.push_back(stdFilePath); } else { m_pExtracterParameters->m_error = true; } i++; } } void PDFExtracterCommand::Update() { if (m_pExtracterParameters->m_error) { wxMessageBox(_("Error extracting pdf, Ginkgo CADx is unable to load this format"), _("Error"), wxOK); } if (m_pExtracterParameters->m_pathsExtracted.empty()) { return; } if (m_pExtracterParameters->m_ForOpening) { wxFileType* fileType = wxTheMimeTypesManager->GetFileTypeFromMimeType(wxT("application/pdf")); if (fileType == NULL) { wxMessageBox(_("There isn't any pdf reader registered in the system"), _("Info"), wxICON_WARNING|wxOK); return; } for (std::vector::iterator itRutas = m_pExtracterParameters->m_pathsExtracted.begin(); itRutas != m_pExtracterParameters->m_pathsExtracted.end(); ++itRutas) { wxString openCmd = fileType->GetOpenCommand(FROMPATH((*itRutas))); if (!openCmd.IsEmpty()) { wxExecute(openCmd); } else { wxMessageBox(_("There isn't any pdf reader registered in the system"), _("Info"), wxICON_WARNING|wxOK); break; } } delete fileType; // wxMessageBox(_("PDF files will be opened with system's PDF reader..."), _("Info"), wxICON_INFORMATION | wxOK); } else { wxMessageBox(_("PDF files extracted successfully..."), _("Info"), wxICON_INFORMATION | wxOK); } } void PDFExtracterCommand::OnAbort() { } void PDFExtracterCommand::LiberarRecursos() { } } ginkgocadx-3.8.7/cadxcore/commands/pdfextractercommand.h000066400000000000000000000032221314736454600234570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once //#define _GINKGO_TRACE #include #include #include namespace GADAPI { class PDFExtracterCommandParameters : public GNC::GCS::IComandoParams { public: PDFExtracterCommandParameters(const std::list& rutas, const std::list& dests = std::list(), bool forOpening = true) ; virtual ~PDFExtracterCommandParameters() ; public: std::vector m_pathsOriginal; std::vector m_pathsExtracted; bool m_error; bool m_ForOpening; }; class PDFExtracterCommand : public GNC::GCS:: IComando { public: PDFExtracterCommand(PDFExtracterCommandParameters* pParams); protected: virtual void Execute(); virtual void Update(); virtual void OnAbort(); void LiberarRecursos(); PDFExtracterCommandParameters* m_pExtracterParameters; }; } ginkgocadx-3.8.7/cadxcore/commands/secondarycapturedicomizecommand.cpp000066400000000000000000000111101314736454600264110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "secondarycapturedicomizecommand.h" #include #include #include #include #include #include
#include
#include #include #include #include GADAPI::SecondaryCaptureDicomizeCommandParameters::SecondaryCaptureDicomizeCommandParameters(GNC::GCS::IVista* pView, const std::string& screenShot) : GADAPI::DicomizeCommandParams(GNC::GCS::Ptr()), m_pView(pView), m_screenShot(screenShot) { m_originalImagePath = m_pView->GetCurrentDICOM(); m_openAfterDicomize = false; } GADAPI::SecondaryCaptureDicomizeCommand::SecondaryCaptureDicomizeCommand(::GADAPI::SecondaryCaptureDicomizeCommandParameters* pParams) : ::GADAPI::DicomizeCommand(pParams), m_pSecondaryParams(pParams) { } void GADAPI::SecondaryCaptureDicomizeCommand::Update() { DicomizeCommand::Update(); //send an event to the view and add current series... GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::SCGeneratedEvent(m_pSecondaryParams->m_pView, m_pIntegracionParams->m_InsertedSeries)); } bool GADAPI::SecondaryCaptureDicomizeCommand::ImportarFicherosOriginales() { //fill in parameters... GIL::DICOM::DICOMManager manager; GIL::DICOM::DicomDataset base; manager.CargarFichero(m_pSecondaryParams->m_originalImagePath, base); GNC::GCS::Ptr& ImportData = m_pSecondaryParams->m_pImportData; //patient module atributes ImportData->baseImages.tags[GKDCM_PatientName] = base.getTag(GKDCM_PatientName); ImportData->baseImages.tags[GKDCM_PatientID] = base.getTag(GKDCM_PatientID); ImportData->baseImages.tags[GKDCM_PatientBirthDate] = base.getTag(GKDCM_PatientBirthDate); ImportData->baseImages.tags[GKDCM_PatientSex] = base.getTag(GKDCM_PatientSex); ImportData->baseImages.tags[GKDCM_IssuerOfPatientID] = base.getTag(GKDCM_IssuerOfPatientID); //study module atributes ImportData->baseImages.tags[GKDCM_StudyInstanceUID] = base.getTag(GKDCM_StudyInstanceUID); ImportData->baseImages.tags[GKDCM_StudyDate] = base.getTag(GKDCM_StudyDate); ImportData->baseImages.tags[GKDCM_StudyTime] = base.getTag(GKDCM_StudyTime); ImportData->baseImages.tags[GKDCM_StudyDescription] = base.getTag(GKDCM_StudyDescription); ImportData->baseImages.tags[GKDCM_ReferringPhysicianName] = base.getTag(GKDCM_ReferringPhysicianName); ImportData->baseImages.tags[GKDCM_StudyID] = base.getTag(GKDCM_StudyID); ImportData->baseImages.tags[GKDCM_AccessionNumber] = base.getTag(GKDCM_AccessionNumber); //series module attributes ImportData->baseImages.tags[GKDCM_Modality] = "SC"; ImportData->baseImages.tags[GKDCM_SeriesDescription] = _Std("Ginkgo CADx Secondary Capture"); ImportData->baseImages.tags[GKDCM_Laterality] = base.getTag(GKDCM_Laterality); wxDateTime date = wxDateTime::Now(); ImportData->baseImages.tags[GKDCM_InstanceCreationDate] = ImportData->baseImages.tags[GKDCM_SeriesDate] = std::string(date.Format(wxT("%Y%m%d")).ToUTF8()); ImportData->baseImages.tags[GKDCM_InstanceCreationTime] = ImportData->baseImages.tags[GKDCM_SeriesTime] =std::string(date.Format(wxT("%H%M%S")).ToUTF8()); //sc module ImportData->baseImages.tags[GKDCM_ConversionType] = "DI"; //fill in image file ImportData->m_SourceFiles.push_back(m_pSecondaryParams->m_screenShot); //call original operation! return GADAPI::DicomizeCommand::ImportarFicherosOriginales(); } //on update add to view! ginkgocadx-3.8.7/cadxcore/commands/secondarycapturedicomizecommand.h000066400000000000000000000027331314736454600260710ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include namespace GADAPI { class SecondaryCaptureDicomizeCommandParameters : public ::GADAPI::DicomizeCommandParams { public: SecondaryCaptureDicomizeCommandParameters(GNC::GCS::IVista* pView, const std::string& screenShot); GNC::GCS::IVista* m_pView; std::string m_originalImagePath; std::string m_screenShot; }; class SecondaryCaptureDicomizeCommand : public ::GADAPI::DicomizeCommand { public: SecondaryCaptureDicomizeCommand(::GADAPI::SecondaryCaptureDicomizeCommandParameters* pParams); protected: virtual void Update(); virtual bool ImportarFicherosOriginales(); SecondaryCaptureDicomizeCommandParameters* m_pSecondaryParams; }; } ginkgocadx-3.8.7/cadxcore/commands/sendhl7command.cpp000066400000000000000000000252331314736454600226710ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include #include #include #include "sendhl7command.h" #include #include
#include #include #define IDC_SEND_HL7 117 // Singleton de persistencia namespace GADAPI { SendHL7CommandParams::SendHL7CommandParams(const std::list& messages) { this->messages = messages; m_idLastSock = -1; m_pSemaphore = new wxSemaphore; } SendHL7CommandParams::~SendHL7CommandParams() { delete m_pSemaphore; } SendHL7Command::SendHL7Command(SendHL7CommandParams* pParams) : IComando(pParams) { m_pSendParams = pParams; SetId(IDC_SEND_HL7); EsperaA(IDC_SEND_HL7); } void SendHL7Command::Execute() { int current = 1; for(std::list::iterator it = m_pSendParams->messages.begin(); it!=m_pSendParams->messages.end(); ++it) { bool sent = false; while (!sent && !EstaAbortado()) { float currentProgress = (float)(current-1)/m_pSendParams->messages.size(); { wxString strTmp = wxString::Format(_("Sending HL7 message %d of %d"), (int)(current), (int)(m_pSendParams->messages.size())); NotificarProgreso(currentProgress, std::string(strTmp.ToUTF8())); LOG_DEBUG("Core/HL7", "Comienza el procesamiento del mensaje " << (*it).m_id) } try { switch((*it).m_protocolo) { case GIL::HL7::ControladorHL7::TP_MLLP: EnviarMensajeMLLP((*it).m_mensaje,(*it).m_destino,(*it).m_procesarACK,(*it).m_msgControlId); GIL::HL7::ControladorBBDDHl7::Instance()->ActualizarEstadoMensaje((*it).m_id,GIL::HL7::MensajeHL7::TE_Enviado,""); LOG_DEBUG("Core/HL7", _Std("Message successfully sent")) sent = true; break; default: throw GIL::HL7::HL7Exception(_Std("Unknown protocol")); } } catch(GIL::HL7::HL7Exception& ex) { LOG_ERROR("Core/HL7", _Std("Error sending message:") << ex.str()) //ha ocurrido un error //al primer error se para if (ex.IsFatal()) { GIL::HL7::ControladorBBDDHl7::Instance()->ActualizarEstadoMensaje((*it).m_id,GIL::HL7::MensajeHL7::TE_Error,ex.GetCause().c_str()); } else { GIL::HL7::ControladorBBDDHl7::Instance()->ActualizarEstadoMensaje((*it).m_id,GIL::HL7::MensajeHL7::TE_Warning,ex.GetCause().c_str()); } NotificarProgreso(currentProgress, _Std("Error sending HL7 message see log for more details")); } catch(...) { LOG_DEBUG("Core/HL7", _Std("Error sending message:") << " " <<_Std("Unknown error")); GIL::HL7::ControladorBBDDHl7::Instance()->ActualizarEstadoMensaje((*it).m_id, GIL::HL7::MensajeHL7::TE_Error, _Std("Unknown error")); } if (!sent) { //wait one minute m_pSendParams->m_pSemaphore->WaitTimeout(60000); } } //while !sent } } void SendHL7Command::Update() { if (EstaAbortado()) { return; } } void SendHL7Command::OnAbort() { if (m_pSendParams->m_idLastSock != -1) { Endpoint::ShutdownSocket(m_pSendParams->m_idLastSock, Endpoint::BOTH); } m_pSendParams->m_pSemaphore->Post(); } /* Envia el mensaje por MLLP */ void SendHL7Command::EnviarMensajeMLLP(const std::string& msg, const std::string& url, bool procesarACK, const std::string& msgControlId) { const std::string START_BLOCK = "\x0b"; const std::string END_BLOCK = "\x1C"; const std::string END_MSG = "\x0D"; std::cout << "inicializo..." << std::endl; Endpoint ep(TCP | CLIENT, url); if (!ep) { throw GIL::HL7::HL7Exception(_Std("Failed to start connection") + ": " + ep.m_error_str, "COMM"); } m_pSendParams->m_idLastSock = ep.m_sockfd; std::stringstream outputStream; outputStream << START_BLOCK << msg << END_BLOCK << END_MSG; long nbytes = ep.Write(outputStream.str()); if (nbytes != (long)outputStream.str().size()) { std::stringstream errmsg; if (nbytes == -1) { errmsg << _Std("Error sending message:") << ep.m_error_str; } else { errmsg << _Std("Error sending message. It was sent ") << nbytes << _Std(" bytes from a total of ") << outputStream.str(); } throw GIL::HL7::HL7Exception(errmsg.str(), "COMM"); } if (!procesarACK) { return; } ep.Shutdown(Endpoint::OUTPUT); //std::cout << "Message Control ID is = " << msgControlId << std::endl; outputStream.str(""); //std::cout << "Connected to: " << std::string(ep.m_remote) << std::endl; unsigned int msgNum = 0; std::list mStrings; std::stringstream inputStream; std::string buff; bool started = false; bool pending = true; while( pending && ( ep.Read(-1024, buff) > 0 ) ) { if (!started) { std::string::size_type sb_loc = buff.find(START_BLOCK, 0); if (sb_loc != std::string::npos) { started = true; mStrings.push_back(std::string()); msgNum++; std::string::size_type eb_loc = buff.find(END_BLOCK, sb_loc+1); if (eb_loc != std::string::npos) { inputStream << buff.substr(sb_loc + 1, eb_loc - 1 - sb_loc); mStrings.back() = inputStream.str(); inputStream.str(""); started = false; std::string::size_type em_loc = buff.find(END_MSG, eb_loc+1); if (em_loc != std::string::npos) { pending = false; } else { inputStream << buff.substr(eb_loc+1); } } else { inputStream << buff.substr(sb_loc + 1); } } } else { std::string::size_type eb_loc = buff.find(END_BLOCK, 0); if (eb_loc != std::string::npos) { inputStream << buff.substr(0, eb_loc - 1); started = false; mStrings.back() = inputStream.str(); inputStream.str(""); std::string::size_type em_loc = buff.find(END_MSG, eb_loc+1); if (em_loc != std::string::npos) { pending = false; } else { inputStream << buff.substr(eb_loc+1); } } else { inputStream << buff; } } } bool confirmado = false; std::list::iterator it; unsigned int i; for ( i = 1, it = mStrings.begin(); it != mStrings.end(); i++, ++it) { std::string& s = *it; if (i != msgNum || !pending) { //std::cout << "Mensaje :\n" << s << std::endl; try { GIL::Hl7Parser::Messages::ACKInterpreter ai(GIL::HL7::Message::FromER7(s)); if (msgControlId != ai.GetReferralMessageControlId()) { throw GIL::HL7::HL7Exception(_Std("Error in the logic of confirmation. The control of the message ID does not match recognized")); } if (!ai.IsSuccess()) { std::stringstream errmsg; errmsg << _Std("NACK received:") << ai.ERR.GetErrorCodeDescription(); throw GIL::HL7::HL7Exception(errmsg.str()); } confirmado = true; } catch (GIL::HL7::HL7Exception& e) { throw GIL::HL7::HL7Exception(_Std("Failed delivery confirmation:") + e.GetCause(), "COMM"); } break; } } if (!confirmado) { throw GIL::HL7::HL7Exception(_Std("Error in the confirmation of delivery: Delivery is not recognized by the remote end"), "COMM"); } //std::cout << "Total: " << ep.GetTotalBytesReaded() << std::endl;*/ } } ginkgocadx-3.8.7/cadxcore/commands/sendhl7command.h000066400000000000000000000031471314736454600223360ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include
namespace GADAPI { class SendHL7CommandParams : public GNC::GCS::IComandoParams { public: SendHL7CommandParams(const std::list& messages); virtual ~SendHL7CommandParams(); public: std::list messages; wxSemaphore* m_pSemaphore; int m_idLastSock; }; class SendHL7Command : public GNC::GCS::IComando { public: SendHL7Command(SendHL7CommandParams* pParams); protected: virtual void Execute(); virtual void Update(); virtual void OnAbort(); protected: /* Envia el mensaje por MLLP */ void EnviarMensajeMLLP(const std::string& msg, const std::string& url, bool procesarACK=true, const std::string& msgControlId="") ; SendHL7CommandParams* m_pSendParams; }; } ginkgocadx-3.8.7/cadxcore/commands/sendpacscommand.cpp000066400000000000000000000221121314736454600231160ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "sendpacscommand.h" #include #include #include #define IDC_PACS_BUSCAR 61 #define IDC_PACS_DESCARGAR 62 #define IDC_PACS_ABORTAR_TODOS 63 #define IDC_PACS_SUBIR 64 #define PARALLEL #define DESCRIPTION _Std("Send files to PACS") // Singleton de persistencia namespace GADAPI { SendPACSCommand::SendPACSCommand(const std::string& selectedServer, const std::string& hl7Message, const std::list seriesId) : GNC::GCS::IComando(NULL), m_selectedServer(selectedServer), m_seriesId(seriesId), m_hl7Message(hl7Message) { checkDependencies(); } SendPACSCommand::SendPACSCommand( const SendPACSCommand& o): GNC::GCS::IComando(NULL) { (*this) = o; checkDependencies(); } SendPACSCommand& SendPACSCommand::operator = (const SendPACSCommand& o) { this->m_selectedServer = o.m_selectedServer; this->m_hl7Message = o.m_hl7Message; this->m_error = o.m_error; this->m_seriesId = o.m_seriesId; return *this; } SendPACSCommand::~SendPACSCommand() { } void SendPACSCommand::checkDependencies() { SetId(IDC_PACS_SUBIR); EsperaA(IDC_PACS_SUBIR); #if !defined(PARALLEL) EsperaA(IDC_PACS_BUSCAR); EsperaA(IDC_PACS_DESCARGAR); EsperaA(IDC_PACS_SUBIR); #endif AbortaSi(IDC_PACS_ABORTAR_TODOS); } std::string SendPACSCommand::getClassUID() { return "2cc283db-3c88-4e91-ab2b-03fa01092f27"; } std::string SendPACSCommand::serialize() { wxXmlDocument documento; wxXmlNode* raiz = NULL; //si el funcionamiento es de n diagnosticos se guardan los widgets que hay raiz = new wxXmlNode(NULL,wxXML_ELEMENT_NODE, wxT("SendPacsCommand")); documento.SetFileEncoding(wxT("UTF-8")); documento.SetRoot(raiz); raiz->AddAttribute(wxT("pacs"),wxString::FromUTF8(m_selectedServer.c_str())); raiz->AddAttribute(wxT("hl7"), wxString::FromUTF8(m_hl7Message.c_str())); wxStringOutputStream out; documento.Save(out); return std::string(out.GetString().ToUTF8()); } void SendPACSCommand::init(const std::string& serializedValue) { wxString wxSerializedValue = wxString::FromUTF8(serializedValue.c_str()); wxStringInputStream istream(wxSerializedValue); wxXmlDocument doc(istream); wxXmlNode* root = doc.GetRoot(); if (root != NULL) { m_selectedServer = root->GetAttribute(wxT("pacs"),wxEmptyString).ToUTF8(); m_hl7Message = root->GetAttribute(wxT("hl7"),wxEmptyString).ToUTF8(); } else { //error LOG_ERROR("SendPACSCommand", "Error deserializing SendPACSCommand serialized value-"<< serializedValue << " -"); } } void SendPACSCommand::Execute() { if(m_selectedServer == "") { //usaremos el primer servidor (por defecto) if(!DicomServerList::Instance()->Empty()) { m_selectedServer = DicomServerList::Instance()->GetDefaultServer()->ID; } else { throw GIL::DICOM::PACSException(_Std("There is not any Remote PACS configured")); } } //one send operation for each tsyntax uid std::map > mapOfTSyntax; for (std::list::const_iterator it = m_seriesId.begin(); it != m_seriesId.end(); ++it) { GNC::GCS::HistoryController::LightFileModelList listOfFiles; GNC::GCS::HistoryController::Instance()->GetSeriesSortedFileModels((*it), listOfFiles); for (GNC::GCS::HistoryController::LightFileModelList::iterator itFiles = listOfFiles.begin(); itFiles != listOfFiles.end(); itFiles++) { if (mapOfTSyntax.find((*itFiles).tsuid) == mapOfTSyntax.end()) { mapOfTSyntax[(*itFiles).tsuid] = std::list(); } mapOfTSyntax[(*itFiles).tsuid].push_back((*itFiles).real_path); } } std::string tarea = _Std("Uploading files ..."); if (!NotificarProgreso(0.0f,tarea)) { return; } GIL::DICOM::IPACSController* pCI = NULL; try { pCI = GNC::Entorno::Instance()->GetPACSController(); pCI->GetConnection(this); if (GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits", "pacs_upload")) { for (std::map >::iterator it = mapOfTSyntax.begin(); it != mapOfTSyntax.end(); ++it) { pCI->SubirArchivos(this, m_selectedServer, (*it).second,this,GIL::DICOM::SendDefault); } if (!m_hl7Message.empty()) { GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::HL7SendRequestEvent(m_hl7Message)); } } else { LOG_INFO("C-STORE", "No se enviara el estudio al PACS porque el permiso de subida lo impide."); } } catch (GinkgoNoServerFoundException&) { m_error = _Std("Error: PACS entry configuration not found: ") + m_selectedServer; } catch (GIL::DICOM::PACSException& ex) { m_error = _Std("Error:") + (const std::string)ex; } catch (std::exception& ex) { m_error = _Std("Error sending evidences:") + ex.what(); } catch (...) { m_error = _Std("Error sending evidences: Internal error."); } if (pCI) { pCI->ReleaseConnection(this); } } void SendPACSCommand::Update() { if (EstaAbortado()) { return; } if(m_error!="") { wxString message = _("Error uploading the study to PACS: "); message += wxT("\n") + wxString::FromUTF8(m_error.c_str()); message += _("\nWould you like to retry(automatically retried in %d seconds)?"); GNC::GUI::CountdownMessage modalDlg(NULL, _("Retry send to PACS"), message); int returnCode = modalDlg.ShowModalCountdown(); switch (returnCode) { case wxID_OK: { //retry; copy and execute... SendPACSCommand* pCmd = new SendPACSCommand(*this); GNC::CommandController::Instance()->ProcessAsync("Sending...",pCmd, NULL); } break; default: //set status error break; } //GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL, _Std("Error uploading the study to PACS: ") + "\n" + m_errorDescription, GNC::GCS::Events::EventoMensajes::PopUpMessage,false, GNC::GCS::Events::EventoMensajes::Error)); return ; } else { /* if (m_pPACSParams->m_informar) { GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL,_Std("Study successfully sent to PACS"),GNC::GCS::Events::EventoMensajes::PopUpMessage,false, GNC::GCS::Events::EventoMensajes::Informacion)); }*/ return; } } bool SendPACSCommand::NotificarProgreso(float progresoNormalizado,const std::string &texto) { if (EstaAbortado()) { return false; } return IComando::NotificarProgreso(progresoNormalizado, texto); } void SendPACSCommand::LiberarRecursos() { } } ginkgocadx-3.8.7/cadxcore/commands/sendpacscommand.h000066400000000000000000000035401314736454600225670ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include namespace GIL { class IModeloIntegracion; namespace DICOM { class IPACSController; } } namespace GADAPI { class EXTAPI SendPACSCommand : public GNC::GCS::IComando { public: SendPACSCommand(const std::string& selectedServer, const std::string& hl7Message, const std::list seriesId); SendPACSCommand( const SendPACSCommand& o); SendPACSCommand& operator = (const SendPACSCommand& o); protected: void checkDependencies(); public: virtual ~SendPACSCommand(); virtual std::string getClassUID(); virtual std::string serialize(); virtual void init(const std::string& serializedValue); protected: virtual void Execute(); virtual void Update(); public: virtual bool NotificarProgreso(float progresoNormalizado, const std::string &texto); void LiberarRecursos(); std::string m_selectedServer; std::list m_seriesId; std::string m_hl7Message; std::string m_error; }; } ginkgocadx-3.8.7/cadxcore/commands/synchronizationcommand.cpp000066400000000000000000000210241314736454600245600ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include
#include
#include #include
#include
#include #include "synchronizationcommand.h" #include "comandoincluirhistorial.h" #include #include #define IDC_SYCHRONIZATION_COMMAND 121 // Singleton de persistencia namespace GADAPI { SynchronizationCommandParameters::SynchronizationCommandParameters(const std::list& seriesPk, GNC::GCS::IHistoryTool* pTool) : m_SeriesPk(seriesPk), m_pTool(pTool), m_pCtrlMod(NULL), m_mode(-1), m_pHangingProtocol(NULL), m_pSemWait(new wxSemaphore()) { } SynchronizationCommandParameters::SynchronizationCommandParameters(const std::list& seriesPk, GNC::GCS::IModuleController* pCtrlMod, int mode, const GNC::GCS::Ptr& pHangingProtocol): m_SeriesPk(seriesPk), m_pTool(NULL), m_pCtrlMod(pCtrlMod), m_mode(mode), m_pHangingProtocol(pHangingProtocol), m_pSemWait(new wxSemaphore()) { } SynchronizationCommandParameters::~SynchronizationCommandParameters() { if (m_pSemWait != NULL) { delete m_pSemWait; m_pSemWait = NULL; } } SynchronizationCommand::SynchronizationCommand(SynchronizationCommandParameters* pParams) : IComando(pParams) { m_pSynchronizeParams = pParams; SetId(IDC_SYCHRONIZATION_COMMAND); GNC::Entorno::Instance()->GetControladorEventos()->Registrar(this, GNC::GCS::Events::EventoProgresoComando()); } void SynchronizationCommand::Execute() { std::string tarea= _Std("Downloading files ..."); if (!NotificarProgreso(0.0f,tarea)) { return; } GIL::DICOM::IPACSController* pCI = NULL; std::string pathDownloadedFiles = GNC::Entorno::Instance()->CrearDirectorioTemporal(); try { pCI = GNC::GCS::IEntorno::Instance()->GetPACSController(); int fileNum = 1; for (std::list::const_iterator it = m_pSynchronizeParams->m_SeriesPk.begin(); it != m_pSynchronizeParams->m_SeriesPk.end(); ++it) { GNC::GCS::IHistoryController::SeriesModel sm = GNC::GCS::IHistoryController::Instance()->GetSeriesModel((*it)); if (sm.location == GNC::GCS::IHistoryController::TL_WadoLinked) { //get files and download it GNC::GCS::IHistoryController::LightFileModelList listOfFiles; GNC::GCS::IHistoryController::Instance()->GetSeriesSortedFileModels((*it), listOfFiles); for (GNC::GCS::IHistoryController::LightFileModelList::iterator itFiles = listOfFiles.begin(); itFiles != listOfFiles.end(); ++itFiles) { { if (!NotificarProgreso(0.05, std::string(wxString::Format(_("Downloading file %d"), (int)(fileNum++) ).ToUTF8()))) { return; } } GNC::GCS::IHistoryController::LightFileModel& fm = (*itFiles); if (fm.location == GNC::GCS::IHistoryController::TL_WadoLinked) { std::ostringstream ostr; ostr << pathDownloadedFiles; ostr << (char)wxFileName::GetPathSeparator(); ostr << fm.pk; if (!pCI->DownloadFileFromURL(fm.real_path, ostr.str(), this)) { std::ostringstream ostrErr; ostrErr << _Std("Error downloading file"); ostrErr << fm.real_path; throw GIL::DICOM::PACSException(ostrErr.str()); } } } } } } catch (GIL::DICOM::PACSException& ex) { m_pSynchronizeParams->m_error = (const std::string)ex; } catch (std::exception& ex) { m_pSynchronizeParams->m_error= ex.what(); } catch (...) { m_pSynchronizeParams->m_error= _Std("Internal Error"); } //including history.... if(m_pSynchronizeParams->m_error.empty()) { GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(pathDownloadedFiles, true, GNC::GCS::IHistoryController::TAA_MOVE); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial * pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync("Processing...",pCmd,this); m_pSynchronizeParams->m_pSemWait->Wait(); } NotificarProgreso(1.0f,tarea); } void SynchronizationCommand::Update() { if (EstaAbortado()) { return; } if(!m_pSynchronizeParams->m_error.empty()) { GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL, _Std("Error synchronizing study: ") + "\n" + m_pSynchronizeParams->m_error, GNC::GCS::Events::EventoMensajes::PopUpMessage,false, GNC::GCS::Events::EventoMensajes::Error)); return; } else { //execute tool if (m_pSynchronizeParams->m_pTool != NULL) { m_pSynchronizeParams->m_pTool->Execute(m_pSynchronizeParams->m_SeriesPk); } else if (m_pSynchronizeParams->m_pCtrlMod != NULL) { GNC::GCS::IHistoryController::SeriesModelList seriesModelList; for (std::list::const_iterator it = m_pSynchronizeParams->m_SeriesPk.begin(); it != m_pSynchronizeParams->m_SeriesPk.end(); ++it) { seriesModelList.push_back(GNC::GCS::HistoryController::Instance()->GetSeriesModel((*it))); } m_pSynchronizeParams->m_pCtrlMod->OpenView(m_pSynchronizeParams->m_mode, seriesModelList, m_pSynchronizeParams->m_pHangingProtocol); } } } bool SynchronizationCommand::NotificarProgreso(float progresoNormalizado,const std::string &texto) { if (EstaAbortado()) { return false; } return IComando::NotificarProgreso(progresoNormalizado, texto); } void SynchronizationCommand::LiberarRecursos() { } void SynchronizationCommand::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { GNC::GCS::Events::EventoProgresoComando* pEvt = dynamic_cast (evt); if (pEvt) { GNC::GCS::IComando* pCmd = pEvt->GetComando(); if (pCmd != NULL && pCmd->GetOwner() == this &&pEvt->GetTipo() == GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado) { m_pSynchronizeParams->m_pSemWait->Post(); } } else { LOG_ERROR("Command", "SynchronizationCommand::ProcesarEvento: unexpected or no event"); } } } ginkgocadx-3.8.7/cadxcore/commands/synchronizationcommand.h000066400000000000000000000044271314736454600242350ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once //#define _GINKGO_TRACE #include #include #include #include class wxSemaphore; namespace GNC { namespace GCS { class IModuleController; class HangingProtocol; } } namespace GADAPI { class SynchronizationCommandParameters : public GNC::GCS::IComandoParams { public: //download only specifying SynchronizationCommandParameters(const std::list& seriesPk, GNC::GCS::IHistoryTool* pTool); SynchronizationCommandParameters(const std::list& seriesPk, GNC::GCS::IModuleController* pCtrlMod, int mode, const GNC::GCS::Ptr& pHangingProtocol); virtual ~SynchronizationCommandParameters(); public: std::list m_SeriesPk; std::string m_error; GNC::GCS::IHistoryTool* m_pTool; GNC::GCS::IModuleController* m_pCtrlMod; int m_mode; GNC::GCS::Ptr m_pHangingProtocol; wxSemaphore* m_pSemWait; }; class SynchronizationCommand : public GNC::GCS::IComando, public GNC::GCS::IEventsObserver { public: SynchronizationCommand(SynchronizationCommandParameters* pParams); protected: virtual void Execute(); virtual void Update(); public: virtual bool NotificarProgreso(float progresoNormalizado, const std::string &texto); virtual void LiberarRecursos(); virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt); SynchronizationCommandParameters* m_pSynchronizeParams; }; } ginkgocadx-3.8.7/cadxcore/commands/thumbnailscommand.cpp000066400000000000000000000571541314736454600235020ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include "thumbnailscommand.h" #include #include #include #include #include #include #include
#include
#include
#include
#include
#include
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define IDC_GENERAR_THUMBNAILS 81 #define IDC_CARGA 91 #define SIZE_THUMBNAILS 76 namespace GADAPI { class ThumbnailsCommandParams: public GNC::GCS::IComandoParams { public: ThumbnailsCommandParams(long file_pk, ThumbnailsNotifier* pNotificador) { m_file_pk = file_pk; m_wxImg = NULL; m_pNotificadorThumbnail = pNotificador; } virtual ~ThumbnailsCommandParams() { if (m_wxImg != NULL) { delete m_wxImg; m_wxImg = NULL; } } GNC::GCS::HistoryController::FileModel m_fileModel; long m_file_pk; wxImage* m_wxImg; ThumbnailsNotifier* m_pNotificadorThumbnail; }; ThumbnailsCommand::ThumbnailsCommand(long file_pk, ThumbnailsNotifier* pNotificador) : IComando(NULL, "GenerarThumbnails") { m_Error = false; GTRACE(">> ThumbnailsCommand::ThumbnailsCommand(): " << this); m_pThumbParams = new ThumbnailsCommandParams(file_pk, pNotificador); m_pParams = m_pThumbParams; SetId(IDC_GENERAR_THUMBNAILS); EsperaA(IDC_GENERAR_THUMBNAILS); EsperaA(IDC_CARGA); GTRACE("<< ThumbnailsCommand::ThumbnailsCommand(): " << this); } void ThumbnailsCommand::Execute() { NotificarProgreso(0.05f,_Std("Creating Thumbnail...")); m_Error = true; GTRACE("Arrancando comando generar thumbnails " << m_pThumbParams->m_ruta) //std::string tarea_Std("Generando thumbnails..."); //pillamos el uid m_pThumbParams->m_fileModel = GNC::GCS::HistoryController::Instance()->GetFileModel(m_pThumbParams->m_file_pk); if(m_pThumbParams->m_fileModel.sopiuid.empty()) { wxBitmap bmp = GinkgoResourcesManager::History::GetIcoUnknownFile(); m_pThumbParams->m_wxImg = new wxImage(); (*m_pThumbParams->m_wxImg) = bmp.ConvertToImage(); GuardarImagen(); m_Error = false; return; } //if is wado linked... if (m_pThumbParams->m_fileModel.location == GNC::GCS::IHistoryController::TL_WadoLinked) { wxBitmap bmp = GinkgoResourcesManager::History::GetIcoWadoLinkedPreview(); m_pThumbParams->m_wxImg = new wxImage(); (*m_pThumbParams->m_wxImg) = bmp.ConvertToImage(); m_Error = false; return; } //comprobar si el thumbnail ya estaba generado m_pThumbParams->m_wxImg = GetImageFromBD(); if(m_pThumbParams->m_wxImg != NULL) { GTRACE("Saliendo generar thumbnails salida2 " << m_pThumbParams->m_ruta); NotificarProgreso(1.0f,_Std("Creating Thumbnail...")); m_Error = false; return; } else { //try to make thumbnail with extensions... ::GNC::ControladorExtensiones::ListaModulos listaModulos = ::GNC::ControladorExtensiones::Instance()->Modulos(); for(GNC::ControladorExtensiones::IteradorListaModulos it=listaModulos.begin(); it!=listaModulos.end(); ++it) { GNC::GCS::IModuleController* modulo = (*it).second; GNC::GCS::Ptr >pImgCapture(new ImgProxy()); if (modulo->MakeThumbnail(m_pThumbParams->m_fileModel, *pImgCapture)) { wxImage* pImage = new wxImage(pImgCapture->anchura, pImgCapture->altura, (unsigned char*)pImgCapture->data, true); if (pImage->IsOk()) { double scaleX = ((double) SIZE_THUMBNAILS)/((double) pImgCapture->anchura); double scaleY = ((double) SIZE_THUMBNAILS)/((double) pImgCapture->altura); if (scaleX < 1.0 || scaleY < 1.0) { double scale = wxMin(scaleX, scaleY); int newWidth = (int) (scale * pImgCapture->anchura); int newHeight = (int) (scale * pImgCapture->altura); m_pThumbParams->m_wxImg = new wxImage(pImage->Scale(newWidth, newHeight, wxIMAGE_QUALITY_HIGH)); } else { m_pThumbParams->m_wxImg = new wxImage(*pImage); } delete pImage; GuardarImagen(); m_Error = false; return; } } } if (m_pThumbParams->m_fileModel.tsuid== GKUID_MPEG2MainProfileAtMainLevelTransferSyntax || m_pThumbParams->m_fileModel.tsuid == GKUID_MPEG2MainProfileAtHighLevelTransferSyntax) { wxBitmap bmp = GinkgoResourcesManager::History::GetMoviePreview(); m_pThumbParams->m_wxImg = new wxImage(); (*m_pThumbParams->m_wxImg) = bmp.ConvertToImage(); GuardarImagen(); m_Error = false; return; } if (m_pThumbParams->m_fileModel.sopcuid == GKUID_EncapsulatedPDFStorage) { wxBitmap bmp = GinkgoResourcesManager::History::GetPDFPreview(); m_pThumbParams->m_wxImg = new wxImage(); (*m_pThumbParams->m_wxImg) = bmp.ConvertToImage(); m_Error = false; return; } double size[2] = {0.0, 0.0}; int dimensions[3] = {0, 0, 0}; double spacing[3] = {0.0, 0.0, 0.0}; double origin[3] = {0.0, 0.0, 0.0}; size[0] = SIZE_THUMBNAILS; size[1] = SIZE_THUMBNAILS; { //esto es una nyapa para recuperarnos de errores, antes de leer guardamos en bbdd una imagen negra, si finalmente //el thumbnail se genera bien pues se mete, si no pues se quedara con unknown wxImage img = GinkgoResourcesManager::History::GetIcoUnknownFile().ConvertToImage(); m_pThumbParams->m_wxImg = &img; GuardarImagen(); m_pThumbParams->m_wxImg = NULL; } typedef itk::RGBPixel PixelType; typedef itk::Image< PixelType, 2 > ImageType; typedef itk::ImageRegionConstIterator< ImageType > ImageIteratorType; typedef itk::VTKImageToImageFilter TipoFiltro; ImageType::SizeType outputSize; ImageType::SpacingType outputSpacing; ImageType::PointType outputOrigin; vtkSmartPointer normalizeFilter = vtkSmartPointer::New(); outputSize[0] = size[0]; outputSize[1] = size[1]; unsigned long imgsize = outputSize[0] * outputSize[1] * sizeof(unsigned char) * 3; unsigned char* data = new unsigned char[imgsize]; try { GNC::StreamingLoader loader; loader.SetInput(m_pThumbParams->m_fileModel.real_path); loader.GetDimensions(dimensions); loader.GetSpacing(spacing); loader.SetOutputOrigin(origin); vtkSmartPointer pReslice = vtkSmartPointer::New(); TipoFiltro::Pointer VTK2ITKfiltro = TipoFiltro::New(); vtkSmartPointer resliceAxes = vtkSmartPointer::New(); if ( dimensions[0] == 0 || dimensions[1] == 0 || spacing[0] == 0 || spacing[1] == 0) { if ( !loader.IsSignalFile()) { m_Error = true; delete[] data; data = NULL; LOG_WARN("GenerarThumbnails", "Error: imagen de tamaño 0, generación ignorada."); return; } NotificarProgreso(0.8f,_Std("Creating Thumbnail...")); memset(data, 0, imgsize); double x, y; unsigned int ix, iy; const double resx = M_PI * 4.0 / (double) outputSize[0]; const double resy = (double) 0.25 * outputSize[1]; const double sy = (double) 0.5 * outputSize[1]; for (ix = 0; ix < outputSize[0]; ++ix) { x = ((double) ix); y = resy * std::sin(x * resx); y += sy; iy = std::max(0, std::min(outputSize[0] - 1, (int) std::floor(y + 0.5)) ); unsigned char* pixel = data + (3 * (iy * outputSize[0] + ix)); pixel[0] = 0; pixel[1] = 255; pixel[2] = 128; } } else { pReslice->SetInputConnection(loader.GetOutputPort()); pReslice->SetOutputDimensionality(2); pReslice->SetResliceAxesDirectionCosines(1, 0, 0, 0, 1, 0, 0, 0, 1); outputSize[0] = size[0]; outputSize[1] = size[1]; double dInputSize[3]; dInputSize[0] = (double)dimensions[0]; dInputSize[1] = (double)dimensions[1]; dInputSize[2] = 1.0; double dOutputSize[3]; dOutputSize[0] = (double)outputSize[0]; dOutputSize[1] = (double)outputSize[1]; dOutputSize[2] = 1.0; double sX = dOutputSize[0] / dInputSize[0]; double sY = dOutputSize[1] / dInputSize[1]; double s = std::min(sX, sY); double dOutputSpacing[3]; dOutputSpacing[0] = spacing[0] / s; dOutputSpacing[1] = spacing[1] / s; dOutputSpacing[2] = spacing[2]; pReslice->SetOutputExtent(0, dOutputSize[0] - 1, 0, dOutputSize[1] - 1, 0, 1); pReslice->SetOutputSpacing(dOutputSpacing); //moves image vertical or horizontal to center thumbnail. x + => left; - => right. y + => up; - => down //formula is tested with color images and images with spacing and origin origin[0] = (((s - sX) * dInputSize[0] / 2.0f) / s) * spacing[0]; origin[1] = (((s - sY) * dInputSize[1] / 2.0f) / s) * spacing[0]; pReslice->SetOutputOrigin(origin); pReslice->SetInterpolationModeToCubic(); pReslice->Update(); vtkImageData *timg = pReslice->GetOutput(); if(timg->GetNumberOfScalarComponents() > 1) { normalizeFilter->SetInputConnection(pReslice->GetOutputPort()); normalizeFilter->SetOutputScalarTypeToUnsignedChar(); if (timg->GetScalarType() != VTK_UNSIGNED_CHAR) { double range[2]; timg->GetScalarRange(range); double diff = range[1]-range[0]; if (diff > std::numeric_limits::epsilon()) { normalizeFilter->SetShift(-range[0]); normalizeFilter->SetScale(255.0/(range[1]-range[0])); } } normalizeFilter->Update(); VTK2ITKfiltro->SetInput(normalizeFilter->GetOutput()); } else { vtkSmartPointer pImageMap = vtkSmartPointer::New(); pImageMap->SetInputConnection(pReslice->GetOutputPort()); vtkSmartPointer pLookupTable = vtkLookupTableManager::GetLinearLookupTable(); pImageMap->SetLookupTable(pLookupTable); pImageMap->SetOutputFormatToRGB(); if (timg->GetNumberOfScalarComponents() == 1) { double window, level; if (loader.GetDefaultWindowLevel(window,level) && window != 0.0) { double v_min = (level) - 0.5 * window; double v_max = level + 0.5 * window; pLookupTable->SetRange(v_min, v_max); } else { double range[2]; timg->GetScalarRange(range); double diff = range[1]-range[0]; window = range[1]-range[0]; level = 0.5*(range[1]+range[0]); if (diff > std::numeric_limits::epsilon()) { double v_min = (level) - 0.5 * window; double v_max = level + 0.5 * window; pLookupTable->SetRange(v_min, v_max); } } } pImageMap->SetLookupTable(pLookupTable); pImageMap->Update(); VTK2ITKfiltro->SetInput( pImageMap->GetOutput()); } NotificarProgreso(0.6f,_Std("Creating Thumbnail...")); VTK2ITKfiltro->GetImporter()->UpdateLargestPossibleRegion(); const ImageType* img = VTK2ITKfiltro->GetOutput(); NotificarProgreso(0.8f,_Std("Creating Thumbnail...")); ImageType::RegionType region = img->GetLargestPossibleRegion(); ImageIteratorType it (img, region); std::cout << "imgsize = " << imgsize << std::endl; std::cout << "region = "; region.Print(std::cout); std::cout << std::endl; unsigned long off = 0; for (it.GoToBegin(); !it.IsAtEnd() && off < imgsize; ++it) { const ImageType::PixelType& pixel = it.Value(); data[off++] = pixel.GetRed(); data[off++] = pixel.GetGreen(); data[off++] = pixel.GetBlue(); } } m_pThumbParams->m_wxImg = new wxImage(outputSize[0], outputSize[1], data, false); GuardarImagen(); NotificarProgreso(1.0f,_Std("Generating thumbnail ...")); m_Error = false; } catch (GNC::GCS::ControladorCargaException &ex1) { LOG_ERROR("GenerarThumnails", "Unable to create thumbnail for file [" << m_pThumbParams->m_file_pk << "]: " << ex1.str()); if (data != NULL) { delete[] data; data = NULL; } //si se cancela el comando return; } catch(itk::ExceptionObject& ex2) { LOG_ERROR("GenerarThumnails", "Unable to create thumbnail for file [" << m_pThumbParams->m_file_pk << "]: " << ex2.GetDescription()); //std::string descr = ex2.GetDescription(); if (data != NULL) { delete[] data; data = NULL; } return; } catch(std::exception &ex3) { LOG_ERROR("GenerarThumnails", "Unable to create thumbnail for file [" << m_pThumbParams->m_file_pk << "]: " << ex3.what()); //std::string descr = ex3.what(); //si se cancela el comando if (data != NULL) { delete[] data; data = NULL; } return; } catch(...) { LOG_ERROR("GenerarThumnails", "Unable to create thumbnail for file [" << m_pThumbParams->m_file_pk << "]: Internal error" ); //si se cancela el comando if (data != NULL) { delete[] data; data = NULL; } return; } } } void ThumbnailsCommand::Update() { if (!m_Error) { if (m_pThumbParams == NULL || m_pThumbParams->m_wxImg == NULL || !m_pThumbParams->m_wxImg->IsOk()) { LOG_ERROR("GenerarThumbnails", "No se pudo establecer la previsualizacion: La imagen es invalida o no fue generada correctamente"); } else { m_pThumbParams->m_pNotificadorThumbnail->SetImage(m_pThumbParams->m_file_pk, m_pThumbParams->m_wxImg); } } else { wxImage img = GinkgoResourcesManager::History::GetIcoUnknownFile().ConvertToImage(); m_pThumbParams->m_pNotificadorThumbnail->SetImage(m_pThumbParams->m_file_pk, &img); } } wxImage* ThumbnailsCommand::GetImage() { return m_pThumbParams->m_wxImg; } wxImage* ThumbnailsCommand::GetImageFromBD() { int ancho,alto = 0; unsigned char* data = NULL; GNC::GCS::HistoryController::Instance()->GetThumbnail(m_pThumbParams->m_file_pk, ancho, alto, data); if(data != NULL) { wxImage* img = new wxImage(ancho,alto,data,false); return img; } else { return NULL; } } unsigned char ClampToByte(int a) { if (a > 255) return 255; else if (a < 0) return 0; else return a; } unsigned char ClampUpToByte(int a) { if (a > 255) return 255; else return a; } void ThumbnailsCommand::GuardarImagen() { if (!m_pThumbParams->m_wxImg->IsOk()) return; unsigned char *pixelData = m_pThumbParams->m_wxImg->GetData(); // We apply a vertical gradient const int w = m_pThumbParams->m_wxImg->GetWidth(); const int h = m_pThumbParams->m_wxImg->GetHeight(); const int med_h = h/2; // Aplicamos desde el origen hasta la mitad en altura (255, 255, 255, 100) -> (255, 255, 255, 0) for (int y = 0, pos = 0, alpha = 70; (y < med_h) && (alpha > 0); ++y, alpha-=2) { for (int x = 0; x < w; ++x, pos+=3) { pixelData[pos+0] = ClampUpToByte((int) pixelData[pos+0] + alpha); pixelData[pos+1] = ClampUpToByte((int) pixelData[pos+1] + alpha); pixelData[pos+2] = ClampUpToByte((int) pixelData[pos+2] + alpha); } } // for y GNC::GCS::HistoryController::Instance()->SetThumbnail(m_pThumbParams->m_file_pk, m_pThumbParams->m_wxImg->GetWidth(), m_pThumbParams->m_wxImg->GetHeight(), m_pThumbParams->m_wxImg->GetData()); } } ginkgocadx-3.8.7/cadxcore/commands/thumbnailscommand.h000066400000000000000000000027061314736454600231400ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include class wxImage; namespace GADAPI { class ThumbnailsCommandParams; class EXTAPI ThumbnailsNotifier { public: ThumbnailsNotifier() {} virtual ~ThumbnailsNotifier() {} virtual void SetImage(long file_pk, wxImage* pImage) = 0; }; class EXTAPI ThumbnailsCommand : public GNC::GCS::IComando { public: ThumbnailsCommand(long file_pk, ThumbnailsNotifier* pNotificador); wxImage* GetImage(); protected: void Execute(); void Update(); protected: wxImage* GetImageFromBD(); void GuardarImagen(); ThumbnailsCommandParams* m_pThumbParams; bool m_Error; }; } ginkgocadx-3.8.7/cadxcore/endpoint/000077500000000000000000000000001314736454600172745ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/endpoint/address.cpp000066400000000000000000000376371314736454600214450ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include // for numeric conversion #include #include #include #include #include #include "protocols.h" #include "address.h" #ifdef _WIN32 #include "inet_ntop.h" #endif //******************* EndpointAddress *********************** // A single address // Return literal IP address std::string EndpointAddress::IP() { char str[128]; addrinfo* addr = this; if (!m_Inicializada) return "???"; memset(&str, 0, 128); // This is nasty, but necessary // From, I think, W. Richard Steven's work #ifdef _WIN32 if (addr->ai_family == AF_INET) { myinet_ntop(AF_INET, &(((sockaddr_in*)addr->ai_addr)->sin_addr), str, sizeof(str)); } else if (addr->ai_family == AF_INET6) { myinet_ntop(AF_INET6, &(((sockaddr_in6*)addr->ai_addr)->sin6_addr), str, sizeof(str)); } else { return ""; } #else if (addr->ai_family == AF_INET) { inet_ntop(AF_INET, &(((sockaddr_in*)addr->ai_addr)->sin_addr), str, sizeof(str)); } else if (addr->ai_family == AF_INET6) { inet_ntop(AF_INET6, &(((sockaddr_in6*)addr->ai_addr)->sin6_addr), str, sizeof(str)); } else { return ""; } #endif return std::string(str); } // Return canonical DNS name, empty string if none std::string EndpointAddress::DNS() { return ai_canonname ? ai_canonname : ""; } // Return canonical DNS name if has one, else IP std::string EndpointAddress::Name() { if (DNS().length()) return DNS(); else return IP(); } // Return stringified port number std::string EndpointAddress::Port() { unsigned short port = PortNumber(); std::string str; std::ostringstream o; if (!(o << port)) return "???"; return o.str(); } // Return integer port number unsigned short EndpointAddress::PortNumber() { unsigned short port; if (!m_Inicializada) return 0; if (ai_family == AF_INET) port = ((sockaddr_in*)ai_addr)->sin_port; else if (ai_family == AF_INET6) port = ((sockaddr_in6*)ai_addr)->sin6_port; else port = 0; return ntohs(port); } /*int EndpointAddress::SetPort(int port) { if (ai_family == AF_INET) ((sockaddr_in*)ai_addr)->sin_port = htons(port); else if (ai_family == AF_INET6) ((sockaddr_in6*)ai_addr)->sin6_port = htons(port); else { #ifdef _EP_DEBUG std::cout << "EndpointAddress::SetPort()-addr family?" << std::endl; #endif } return port; }*/ // Return IP address, colon, port std::string EndpointAddress::IPPort() { if( this == 0 || !m_Inicializada ) return "(unconnected)"; std::string ip = IP(); if (ip.length() == 0) return "(invalid)"; // If address has colons (as with IPv6), need to put in brackets if (ip.find(":") != std::string::npos) ip = "[" + ip + "]"; return ip + ":" + Port(); } // Return IP address, colon, port EndpointAddress::operator std::string() { return IPPort(); } /****************************************************/ // Function Added by John Medema, 05/05. // ai_canonname is the C Pointer that // normally holds the DNS Canonical Name. // dynamicMemLoc is a pointer that holds // the address for the dynamically // (heap-allocated) memory. ai_canonname // should also be pointing to this, but // I wanted a guaranteed pointer the // dynamic memory. // dynamicMemData is a string that holds // a copy of the data pointed to by // dynamicMemLoc. // Process: When the EndpointAddress // is first instantiated, dynamicMemData // is automatically set to "". The only // time dynamicMemData is not "" is when // there has been dynamically allocated // memory. (A String is the smallest // C/C++ object that is initialized to a // set value. No other objects zero out // their value upon initialization.) // As long as we need to have something // in dynamicMemData, we put in a copy of // the C String data. // I chose to use a string/pointer combination // because the Constuctor/Create()/Clone() // functions can be used manually (not just // for object initialization). //******************* EndpointAddrlist *********************** void EndpointAddrlist::Copy(const EndpointAddrlist & original) { m_error_code = original.m_error_code; m_error_str = original.m_error_str; m_error_cat = original.m_error_cat; m_bool = original.m_bool; m_addrlist = original.m_addrlist; m_addrs = m_addrlist.begin(); } bool EndpointAddrlist::Create(std::string hostname, std::string service, int type, int family) { struct addrinfo hints;//, *addr; int error, proto; memset(&hints, 0, sizeof(hints)); proto = type & EP_SOCK_MASK; if (proto == TCP) hints.ai_socktype = SOCK_STREAM; else if (proto == UDP) hints.ai_socktype = SOCK_DGRAM; else if (proto >= RAW_BASE) hints.ai_socktype = SOCK_RAW; m_bool = false; m_error_cat = EP_ERROR_NONE; m_error_code = 0; m_error_str = ""; //hints.ai_socktype = ((type & EP_SOCK_MASK) == UDP) ? SOCK_DGRAM : SOCK_STREAM; hints.ai_family = family; // Should we fetch the canonical name (DNS FQDN)? Probably not. //hints.ai_flags = //AI_CANONNAME | hints.ai_flags = (type & SERVER) ? AI_PASSIVE : 0; // hostname can be one of: // - IPv4 address // - IPv6 address - has >1 colon // - DNS name // - One of the above, followed by ":service_name" // IPv4 or DNS + port = 1 colon // IPv6 = >1 colon // IPv6 + port = [address]:port, requires brackets // [address] can be any literal, including IPv4 // One colon, no [] - something besides an IPv6 literal, easy if (hostname.find(":") != std::string::npos && // has colon hostname.find_first_of(":") == hostname.find_last_of(":") && // 1 ":" hostname.find("]") == std::string::npos) { // and no ] // One colon. Before the colon is host, after is service service = hostname.substr(hostname.find(":") + 1); hostname = hostname.substr(0, hostname.find(":")); } // Let hostnames with multiple colons be parsed by getaddrinfo(), because // they are IPv6 addresses without ports. Unless they contain [...]. // A service (port) name can be specified with IPv6 addresses also, but // they have to be enclosed in brackets to disambiguate the colons. // This seems to be the standard in URLs, for example- http://[::1]:80/ // IPv4 addresses are also allowed, as in [127.0.0.1]:80, but not DNS names // Technical Note: Only the last bracket is actually required if (hostname.find("]") != std::string::npos) { service = hostname.substr(hostname.find("]") + 1); if (service[0] == ':') // [foo]:bar, extract just bar service = service.substr(1); // but also allow [foo]bar hostname = hostname.substr(0, hostname.find("]")); if (hostname[0] == '[') // [foo]:bar, just extract foo hostname = hostname.substr(1); // but also allow foo]:bar #ifdef _EP_DEBUG std::cout<<"service:"<= 0xffffffff) { // That would allow for all kinds of neat IPv4 literals, like hex, // octal, dotless, blah blah blah. // XXX: But this is not done. Maybe thats a good thing. // Raw sockets don't have service/port numbers const char* str_service = service.c_str(); if (type >= RAW_BASE) str_service = NULL; // Leaving the hostname blank means NULL (getaddrinfo won't accept blank) // NULL means INADDR_ANY if server, INADDR_LOOPBACK if client const char* str_hostname = hostname.c_str(); if (!hostname.length()) str_hostname = NULL; if (type < RAW_BASE) { addrinfo* res; // Call the standard getaddrinfo(), it does all our work! error = getaddrinfo(str_hostname, str_service, &hints, &res); if (error) { std::stringstream ss; ss << "Used hostname: " << (str_hostname ? str_hostname : "(null)") << ", service: " << (str_service ? str_service : "(null)") << std::endl; ss << "getaddrinfo: " << strerror(errno) << std::endl; if (hints.ai_flags & AI_NUMERICHOST) ss << "(A literal address, i.e. not a DNS name, is required)" << std::endl; m_error_str = ss.str(); m_error_cat = EP_ERROR_GETADDRINFO; m_error_code = error; DeleteList(); m_bool = false; } else { m_bool = true; CreateList(res); freeaddrinfo(res); } } else { // Raw sockets not supported with Win32 getaddrinfo? // Build it ourself, IPv4 only EndpointAddress tempEA; tempEA.ai_flags = 0; tempEA.ai_family = AF_INET; tempEA.ai_socktype = SOCK_RAW; tempEA.ai_protocol = type; tempEA.ai_addrlen = sizeof(sockaddr_in); tempEA.ai_next = 0; #if defined(_WINDOWS) ( (sockaddr_in*) tempEA.ai_addr )->sin_family = (ADDRESS_FAMILY)tempEA.ai_family; #else ( (sockaddr_in*) tempEA.ai_addr )->sin_family = tempEA.ai_family; #endif ( (sockaddr_in*) tempEA.ai_addr )->sin_port = 0; ( (sockaddr_in*) tempEA.ai_addr )->sin_addr.s_addr = inet_addr(hostname.c_str()); m_addrlist.push_back(tempEA); } // User specified a service (port) for a raw socket, let's use it :) if (type >= RAW_BASE && service.length() != 0) { // TODO: let them specify service *names* as well int port = atoi(service.c_str()); // Note: port of 0 is okay here std::list< EndpointAddress >::iterator it; for (it = m_addrlist.begin(); it != m_addrlist.end(); ++it) { addrinfo* ai = &(*it); // Warning: this is ugly, and duplicated in EndpointAddress if (ai->ai_family == AF_INET) ((sockaddr_in*)ai->ai_addr)->sin_port = (u_short) htons((u_short)port); else if (ai->ai_family == AF_INET6) ((sockaddr_in6*)ai->ai_addr)->sin6_port = (u_short) htons((u_short)port); else { #ifdef _EP_DEBUG std::cout << "EndpointAddress::SetPort()-addr family?" << std::endl; #endif } } } return true; } // Get current address EndpointAddress EndpointAddrlist::GetAddress() const { if(m_addrs != m_addrlist.end()) { return *m_addrs; } else { EndpointAddress ret; return ret; } } // Get current address and go to next, or m_addrlist.end() if at end EndpointAddress EndpointAddrlist::GetAddressNext() { if( m_addrlist.empty() == true || m_addrs == m_addrlist.end() ) { EndpointAddress ret; return ret; } EndpointAddress ret = *m_addrs; if( m_addrs != m_addrlist.end() ) { m_addrs++; } return ret; } // CreateList assumes the pointer is at the head of the list. // Only pass m_head through here!!! void EndpointAddrlist::CreateList( struct addrinfo* list ) { int count = 1; DeleteList(); // curList_addr = current node in 'list' // EndpointAddress *curList_addr = (EndpointAddress*) list; addrinfo *curList_addr = list; // curM_addr = current node in our class' vector EndpointAddress curM_addr; if( !list ) { return; } while( curList_addr != NULL ) { count++; curM_addr = *curList_addr; // explicitly set ai_next = 0 since the vector iterators are used instead. curM_addr.ai_next = 0; //finalize m_addrlist.push_back(curM_addr); curList_addr = (EndpointAddress*) curList_addr->ai_next; } m_addrs = m_addrlist.begin(); return; } // Deletes out the local addrinfo linked list. void EndpointAddrlist::DeleteList() { m_addrlist.clear(); m_addrs = m_addrlist.begin(); return; } int EndpointAddrlist::SetLastError() { #ifdef _WIN32 m_error_code = WSAGetLastError(); LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, m_error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL ); m_error_str = (const char*)lpMsgBuf; LocalFree(lpMsgBuf); #else m_error_code = errno; m_error_str = strerror(errno); #endif return m_error_code; } EndpointAddrlist::~EndpointAddrlist() { DeleteList(); } ginkgocadx-3.8.7/cadxcore/endpoint/address.h000066400000000000000000000160621314736454600210770ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef __ENDPOINT_ADDRESS_H #define __ENDPOINT_ADDRESS_H #define EP_ERROR_NONE 0 #define EP_ERROR_GETADDRINFO 100 #ifdef _WIN32 #include #include #include #else // !_WIN32 #include #include #include #include #include #endif // !_WIN32 //******************* EndpointAddress *********************** #include #include #include #include // A single address class EndpointAddress : public addrinfo { public: EndpointAddress() { Reset(); } EndpointAddress(const EndpointAddress &otra) { *this = otra; } EndpointAddress(sockaddr* sa, int type) { Reset(); if (!sa) { m_Inicializada = false; return; } ai_flags = 0; ai_family = sa->sa_family; ai_socktype = type; ai_protocol = 0; ai_addr = &m_sockaddr; m_sockaddr = *(sa); ai_next = NULL; ai_addrlen = sizeof(sockaddr); ResetCanonName(); ai_canonname = m_CanonName; m_sockaddr = *sa; ai_next = NULL; m_Inicializada = true; } ~EndpointAddress() { } std::string IPPort(); std::string IP(); std::string DNS(); std::string Name(); std::string Port(); unsigned short PortNumber(); EndpointAddress & operator=(const EndpointAddress & otra) { if( !otra.m_Inicializada ) { Reset(); return *this; } ResetCanonName(); ai_flags =otra.ai_flags; ai_family = otra.ai_family; ai_socktype = otra.ai_socktype; // GW: Not sure why the protocolis not copied ai_protocol = 0; ai_addr = &m_sockaddr; m_sockaddr = *(otra.ai_addr); ai_next =otra.ai_next; ai_addrlen = sizeof(sockaddr); CopyCanonName(otra.m_CanonName); ai_canonname = m_CanonName; m_Inicializada = otra.m_Inicializada; return *this; } EndpointAddress & operator=(const addrinfo & otra) { ResetCanonName(); ai_flags = otra.ai_flags; ai_family = otra.ai_family; ai_socktype = otra.ai_socktype; // GW: Not sure why the protocolis not copied ai_protocol = 0; ai_addr = &m_sockaddr; m_sockaddr = *(otra.ai_addr); ai_next = otra.ai_next; ai_addrlen = sizeof(sockaddr); if (otra.ai_canonname != NULL) { CopyCanonName(otra.ai_canonname); } ai_canonname = m_CanonName; m_Inicializada = true; return *this; } EndpointAddress & operator*() { return *this; } operator std::string(); operator bool() { return m_Inicializada; } operator sockaddr() { if (!m_Inicializada) { sockaddr _nil; std::memset(&_nil, 0, sizeof(sockaddr)); return _nil; } else { return m_sockaddr; } } bool m_Inicializada; protected: void Reset() { ai_flags = 0; ai_family = 0; ai_socktype = 0; ai_protocol = 0; ai_addrlen = sizeof(sockaddr); ai_protocol = 0; ai_addr = &m_sockaddr; std::memset(&m_sockaddr, 0, sizeof(sockaddr)); ai_next = NULL; ai_addrlen = sizeof(sockaddr); ResetCanonName(); ai_canonname = m_CanonName; m_Inicializada = false; } void ResetCanonName() { for (int i = 0; i < 255; i++) { m_CanonName[i] = 0; } } void CopyCanonName(const char* src) { for (int i = 0; i < 255 && src[i] != 0; i++) { m_CanonName[i] = src[i]; } } struct sockaddr m_sockaddr; char m_CanonName[256]; }; //******************* EndpointAddrlist *********************** // Encapsulates (possibly multiple) addresses #include class EndpointAddrlist { public: EndpointAddrlist() : m_error_cat(0), m_error_code(0) { m_bool = false; m_addrs = m_addrlist.begin(); }; EndpointAddrlist( const EndpointAddrlist & orig ) { Copy(orig); }; EndpointAddrlist(std::string hostname, std::string service = "", int protocol = TCP | CLIENT, int family = AF_INET) { Create(hostname, service, protocol, family); } ~EndpointAddrlist(); bool Create(std::string hostname, std::string service = "", int protocol = TCP | CLIENT, int family = AF_INET); EndpointAddrlist & operator=(const EndpointAddrlist & orig) { Copy(orig); return *this; } operator bool() const { return m_bool; } void Copy(const EndpointAddrlist & ); EndpointAddress GetAddress() const; EndpointAddress GetAddressNext(); static std::string StrIP(struct addrinfo*); int SetLastError(); std::list< EndpointAddress > m_addrlist; std::list< EndpointAddress >::iterator m_addrs; int m_error_cat; int m_error_code; std::string m_error_str; bool m_bool; private: void DeleteList(); void CreateList( struct addrinfo* ); char canonname[256]; }; #endif ginkgocadx-3.8.7/cadxcore/endpoint/address.html000066400000000000000000000360521314736454600216150ustar00rootroot00000000000000 EndpointAddress Class

Table of Contents

1. Network Addressing

Addressing a socket is not a trivial topic. A port number, transport layer protocol, and possibly more than one IPv4 or IPv6 or DNS address must be given. The DNS has to be resolved, addresses have to be chosen, port numbers must be resolved, and so on.

Fortunately, nearly everything needed to represent an Internet address can be encapsulated into a regular ordinary string, which can be entered by the user. All thats needed is this string to create an EndpointAddrlist object, although other information may be supplied (in particular, the transport layer protocol -- UDP or TCP -- must be passed outside of the string, for security reasons). EndpointAddrlist attempts to take care of everything regarding addresses, including things which many applications would otherwise ignore (such as multiple addresses per name).

Endpoint accepts EndpointAddrlist as remote and local addresses, in which case all the addresses shall be tried. EndpointAddress encapsulates just one.

2. EndpointAddrlist Class

EndpointAddrlist encapsulates an array of addrinfos obtained through the protocol-independent getaddrinfo. Although the class name is singular, it is possible for multiple addresses to be listed within. Your application can choose to ignore all but one, but its recommended to try to connect to alternative addresses if the first one doesn't work, instead of giving up.

2.1. Constructors

The following arguments are accepted, in order:

string hostname

A hostname. This is passed to getnameinfo which either resolves the DNS name or uses inet_pton to convert from presentation form to numeric form. Note that inet_pton only supports dotted-decimal IPv4 or hex-string IPv6 addresss, and not the following alternative IPv4 address formats (which inet_aton and therefore ping support):

  • Implied octets: 127.1 = 127.0.0.1, 127.1.2 = 127.1.0.2
  • Hexadecimal octets: 0x7f.0.0.0 = 127.0.0.1
  • Octal octets: 0377.0377.0377.0377 = 255.255.255.255
  • Binary octets?
  • Dotless addresses: 2130706433 = 127.0.0.1, 0x7f000001 = 127.0.0.1, 017700000001 = 127.0.0.1

Regular dotted-decimal strings such as "127.0.0.1" (IPv4) and hex string "::1" (IPv6) are allowed. DNS names may resolve to either IPv4 or IPv6 addresses, depending on if A or AAAA resource records exist. If your host doesn't support both IPv4 and IPv6, either one can be disabled by setting the default address family later on.

The hostname can also contain a service port, in URL-style. That is, a hostname followed by a colon and then a port, rather than a period. Netstat represents port 139 of 10.0.0.2 as "10.0.0.2.139", but this is not acceptable. "10.0.0.2:139" is supported by this class, and has the advantage of being aesthetically pleasing and easy to parse. With one exception.

IPv6 addresses contain embedded colons. However, they always contain more than one colon. "::1" is interpreted as an IPv6 address with no port, while "127.0.0.1:1" is interpreted as port 1 on 127.0.0.1. So how can port names be specified with IPv6 addresses? Several purposals have been made, but the best by far (and the one which this class understands) is to enclose the IPv6 address in brackets, like so: [::1]:80 = port 80 of ::1. IPv6-enabled web browsers understand this. The parser is loose about what is accepted: [::1]80, ::1]:80 and even ::1]80 will be interpreted identically, but you shouldn't rely on this. For orthogonality (the [] notation has roots in email systems), an IPv4 address is acceptable in brackets: [127.0.0.1]:80 works as expected. Brackets also turn on AI_NUMERICHOST, which prevents DNS resolving -- [example.com]:80 won't work, but example.com:80 will. Brackets enclose literals, they are optional with IPv4 but required with IPv6.

If a port is given, it replaces the service variable, described below. This is to allow users to override default port numbers in case of an emergency. It should not be viewed as a security concern.

string service = ""

The service name resolves to a port number through services. This means you can specify human-readable service names such as "http" for port 80 TCP. Numeric strings are also allowed, such as "80"; this is passed to getaddrinfo and handled there.

getaddrinfo handles this input, but before it gets to it, this class interprets port numbers with commas in them. The port number is 16-bits, and both octets can be specified as two 0-255 integers, separated by a common; for example, "1,2" is 0x0102. This is most useful for raw ICMP sockets; they understand the first octet as the type code and the second as the code code (this is specific to the Endpoint library). Other bases besides decimal are not supported.

This argument can often be omitted if you know for sure hostname will contain a port number, but specifying it is most useful for allowing a default port if none is specified in hostname.

int type = 0

A bitmask of the following:

  • TCP - Transport Control Protocol
  • UDP - User Datagram Protocol
  • RAW_xxx - Raw socket with transport-layer protocol xxx
And:
  • CLIENT (0) - Actively connects to another host
  • SERVER (1) - Passively waits for another host to connect
  • The default is TCP | CLIENT, which seems to be the most common.

    To use IPv4 raw sockets on Unix, you need root access. You also need to give the transport-layer protocol; these are derived from IPPROTO_, see protocols.h. For example, to send raw ICMP packets, use RAW_ICMP, to send raw UDP, RAW_UDP. Endpoint will make the IP header for you unless you choose RAW_RAW, in which case you can do it yourself. The idea is that you RAW_xxx makes the raw IP as well as xxx header for you, although this is only implemented with RAW_UDP presently.

    int family = EndpointAddrlist::g_default_family

    Specifies the address as well as protocol family. Allowed values are:

    • AF_UNSPEC: "unspecified", host is dual-stack and supports both IPv4 and IPv6 (either is acceptable)
    • AF_INET: Only want IPv4 addresses
    • AF_INET6: Only want IPv6 addresses

    EndpointAddrlist::g_default_family can be set on a global (or at least program-wide) scale, to reflect which protocol families the host supports. An IPv4-only host would set this to AF_INET, an IPv6-only host AF_INET6, a dual-stack IPv4 and IPv6 host would use AF_UNSPEC.

    EndpointAddress GetAddress()

    Returns the current address. Unless GetAddressNext() is called, this is the first address. See GetAddressNext(), which is preferred for most applications. However, GetAddress() has its uses; sometimes there is no reason to try multiple names, for example if there is no DNS name.

    EndpointAddress GetAddressNext()

    Return the current address, and move to the next one (post-increment). This should be done instead of just trying to use the first address. The proper protocol is to try each address, until one succeeds.

    3. EndpointAddress

    Encapsulates a single address. This is a subclass of the addrinfo structure, whose declaration is reproduced below:

    struct addrinfo {
            int     ai_flags;       /* AI_PASSIVE, AI_CANONNAME, AI_NUMERICHOST */
            int     ai_family;      /* PF_xxx */
            int     ai_socktype;    /* SOCK_xxx */
            int     ai_protocol;    /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
            size_t  ai_addrlen;     /* length of ai_addr */
            char    *ai_canonname;  /* canonical name for hostname */
            struct  sockaddr *ai_addr;      /* binary address */
            struct  addrinfo *ai_next;      /* next structure in linked list */
    };
    

    There is also an m_bool boolean value, which is true if the fields above are valid.

    3.1. Constructor

    EndpointAddrlist(addrinfo*) is the only constructor. If the pointer is non-null, each field is copied shallowly and m_bool is true. If null, m_bool is false.

    operator string()

    Stringifies the address by returning IP() + ":" + Port(). The reason why IP() is returned rather than its DNS name is threefold: not all hosts have DNS names, DNS names may have more than one host, and forward/reverse DNS may not match. If IP() contains a colon, it is put in square brackets as is customary with IPv6.

    string IP()

    Returns a human-readable form of the address. operator string() calls this. The IP address will be returned, as either a dotted-decimal or hex string.

    This function internally calls inet_ntop (numeric to presentation) with the proper flags and passing the proper structures, depending on if the address is IPv4 or IPv6. Manually, this is tedious. WinSock does not provide inet_ntop so a implementation copied from BIND is provided.

    string DNS()

    Returns the canonical DNS name in ai_cannonname, or an empty string if there is none.

    string Name()

    Returns DNS() if not empty, else IP().

    string Port()

    Returns the port number.

    operator bool()

    Returns m_bool, which is false if there is no address.

    4. File Locations

    services and hosts are used during service and name resolution (name resolution additionally uses DNS). Both these files can be by default found in the following locations:

    • Unix: /etc
    • Windows NT, 2000, XP: C:\windows\system32\drivers\etc, C:\winnt\system32\drivers\etc
    • Windows 95, 98, Me: C:\windows

    5. Errors From getaddrinfo()

    A non-zero return value from getaddrinfo is one of the following, organized in order of likelihood, from greatest to least. The Posix 1g and Win32 constants as well as BSD and Win32 gai_strerror results are included as well.

    5.1. Resolution Errors

    If an error occurs, m_bool is set to false, m_error_code is set to EP_ERROR_GETADDRINFO, and m_error_str is set to a description of the problem.

    Unless literals are given, the hostname and service name need to be resolved. Errors can happen in this process.

    EAI_AGAIN = WSATRY_AGAIN

    • BSD: "Temporary failure in name resolution."

    There was a temporary DNS failure and you should try again.

    EAI_FAIL = WSANO_RECOVERY

    • BSD: "Non-recoverable failure in name resolution."

    A real bad error.

    EAI_NODATA = WSANO_DATA / EAI_NONAME

    • BSD: "No address associated with hostname."

    This was removed from RFC, its equivalence or lack thereof to EAI_NONAME is unknown. The latest version of Windows defines EAI_NODATA to EAI_NONAME.

    EAI_NONAME = WSAHOST_NOT_FOUND

    • BSD: "hostname or service not provided, or not known."
    • Win32: "No such host is known."

    Not provided or no address associated with hostname.

    EAI_SERVICE = WSATYPE_NOT_FOUND

    • BSD: "service not supported for ai_socktype."
    • Win32: "The specified class was not found."

    The symbolic service name could not be resolved, the entry in services is missing. The reference to "ai_socktype" means that if you try to connect to the "domain" service with TCP, and the services file only has an entry for TCP, you'll also get this error (although most systems now define both TCP and UDP for all services). This error never happens with numeric port numbers, so if you're concerned about portability, use them. Win32's services is quite small and doesn't cover all the esoteric service names, although it has its uses with custom servers (if you use a symbolic service name in your server and the user wants to change the port, all he has to do is change the definition in services -- however, your install program must add a line to the file.).

    5.2. Usage Errors

    These errors are mostly the fault of the programmer; either you (the class user) or me (the class programmer). Errors that "should not happen" should not happen under class design, even if invalid parameters are passed to the class.

    EAI_FAMILY = WSAEAFNOSUPPORT

    • BSD: "ai_family not supported."
    • Win32: "An address incompatible with the requested protocol was used."

    hints.ai_family is invalid. The address family is specified as the last argument, and can be either AF_UNSPEC (IPv4 and/or) IPv6, AF_INET (IPv4), or AF_INET6 (IPv4). If the parameter is not given, EndpointAddress::g_default_family is used. Either the default family (which defaults to AF_UNSPEC) or the passed family is invalid.

    EAI_BADFLAGS = WSAEINVAL

    • BSD: "Invalid value for ai_flags."
    • Win32: never generated?

    Valid values are AI_PASSIVE, AI_CANONNAME, and AI_NUMERICHOST. EndpointAddress only sets AI_PASSIVE (for servers) and AI_NUMERICHOST (for bracketed literals) so this should never happen.

    EAI_MEMORY = WSA_NOT_ENOUGH_MEMORY

    • BSD: "Memory allocation failure."

    EAI_ADDRFAMILY

    • BSD: "Address family for hostname not supported."
    • Win32: N/A

    Presumably this means an address family other than AF_UNSPEC was given, and no address of that type is associated with the hostname. Does not exist on Win32.

    EAI_SOCKTYPE = WSAESOCKNOSUPPORT

    • BSD: "ai_socktype not supported."
    • Win32: "The support for the specified socket type does not exist in this address family."

    hints.ai_socktype is invalid. EndpointAddrlist sets this field to either SOCK_DGRAM for UDP or SOCK_STREAM for TCP so this should never happen.

    EAI_SYSTEM

    • BSD: "System error returned in errno."
    • Win32: N/A

    This error code code is rarely used, but it means the errno variable will contain additional error information. Does not exist on Win32 (and most Unixes). ginkgocadx-3.8.7/cadxcore/endpoint/alt.html000066400000000000000000000062701314736454600207470ustar00rootroot00000000000000 Other C++ Socket Classes

    References

    Microsoft Foundation Classes' CSocket
    See CSocket Considered Harmful, problems with being asynchronous and synchronous

    GNU Common C++
    "GNU Common C++ offers support and portable classes for threading and sockets for both UNIX (Posix systems with "pthread" support) and the Windows "Win32" API. "
    NMSTL's Socket
    Part of the "Networking, Messaging, Servers, and Threading Library", seems to be just a thin wrapper.

    Jason But's SocketCC
    IPv4, IPv6, UDP, TCP, SocketException, IPAddress, several classes for TCP and UDP. No Win32 support, targetted at Linux.

    ACE Sockets
    Not much information

    Dr. Clue's Socket
    Looks comprehensive, but no Win32 support.

    Rene Nyffenegger's Socket for Win32
    SocketServer, SocketSelect, UDP. Win32 (WinSock2) only

    Socket++
    "Socket++ is a family of C++ classes that gives the same interface as the iostream classes for input and output for communication between processes.", has Internet socks as well as Unix domain, implements Echo and SMTP example "protocol" classes, no IPv6. RedHat, Debian, FreeBSD, WinSock(?). Wrappers provided for pipe(), socketpair(), popen() and fork(). GPL'd. "Socket++ is a iostream like C++ class library for UNIX and INET domains of sockets and protocols.".

    libsocketcpp
    "Libsocketcpp provides a easy-to-use C++ class. With this class, TCP and UDP functionality can be added to any program quickly and easily." XXX

    AdaSockets
    - non-C++ (Ada)
    "AdaSockets allows Ada programmers to use sockets from within their programs with an easy-to-use Ada-friendly interface." XXX

    Ruby/TCPSocketPipe - non-C++ (Ruby)
    "A Ruby library to create I/O pipes for TCP socket tunneling" XXX

    GNetLibrary
    GNet is a C library, but its object-oriented.
  • Unix Network Programming - a must, also comes with a nice C networking library of wrappers for system calls
  • Beej's Guide to Network Programming - an excellent tutorial, good overview
  • BSD Sockets: A Quick And Dirty Primer ginkgocadx-3.8.7/cadxcore/endpoint/endpoint.cpp000066400000000000000000001314651314736454600216320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include "endpoint.h" #include #ifdef _WIN32 #define _WINSOCKAPI_ // stops windows.h including winsock.h #include #endif //#define _EP_DEBUG Endpoint::Endpoint() { m_bool = false; m_error_cat = EP_ERROR_NONE; m_error_code = 0; m_error_str = ""; m_servfd = -1; m_sockfd = -1; m_family = AF_INET; m_bytes_recv = 0; m_server = 0; m_bytes_sent = 0; m_type = 0; } Endpoint::Endpoint( int type, std::string hostname, int service, int options ):Endpoint() { // we could be getting an option instead of a service- // because of the Endpoint(int, string) constructor below. // option constants DOACCEPT and NOACCEPT are set to // non-service ints. if( service == DOACCEPT || service == NOACCEPT ) { options = service; } std::ostringstream o; o << service; Create( type, hostname, o.str(), options ); } Endpoint::Endpoint( int type, std::string remote, std::string local, int options ):Endpoint() { Create( type, EndpointAddrlist(remote, "", type), EndpointAddrlist(local, "", type), options ); } Endpoint::Endpoint( int type, std::string address ):Endpoint() { Create( type, address ); } Endpoint::Endpoint( int type, std::string remotehost, std::string remoteservice, std::string localhost, std::string localservice, int options ):Endpoint() { Create( type, remotehost, remoteservice, localhost, localservice, options ); } Endpoint::Endpoint( int type, const EndpointAddrlist& address, int options ):Endpoint() { Create( type, address, options ); } Endpoint::Endpoint( int type, const EndpointAddrlist& local, const EndpointAddrlist& remote, int options ):Endpoint() { Create( type, local, remote, options ); } bool Endpoint::Create( int type, std::string remotehost, std::string remoteservice, std::string localhost, std::string localservice, int options ) { return Create( type, EndpointAddrlist(remotehost, remoteservice, type), EndpointAddrlist(localhost, localservice, type), options ); } bool Endpoint::Create( int type, std::string hostname, std::string service, int options ) { // If "service" isn't a service but a host:service, then the two // arguments are: remote host+port, local host+port if (service.find(":") != std::string::npos) return Create( type, EndpointAddrlist(hostname, "", type), EndpointAddrlist(service, "", type), options ); // Otherwise the two arguments are: host, port return Create( type, EndpointAddrlist(hostname, service, type), options ); } bool Endpoint::Create( int type, const EndpointAddrlist& addr, int options ) { EndpointAddrlist local, remote; m_type = type & EP_SOCK_MASK; m_server = type & SERVER; m_bool = false; if (m_server) { local = addr; } else { remote = addr; } return Create( type, remote, local, options ); } // Main creation function - all Create() calls go here bool Endpoint::Create( int type, const EndpointAddrlist& _remote, const EndpointAddrlist& _local, int options ) { EndpointAddrlist local = _local; EndpointAddrlist remote = _remote; EndpointAddress try_local, try_remote; m_type = type & EP_SOCK_MASK; m_server = type & SERVER; m_sockfd = m_servfd = -1; m_bool = false; m_error_cat = EP_ERROR_NONE; m_error_code = 0; m_error_str = ""; // Possible combinations of local & remote: // LOCAL REMOTE // non-specified non-specified invalid! // non-specified specified ok, common for client connections // specified non-specified ok, common for server connections // specified specified ok, rare, used for either if (!local && !remote) { // Local or remote address failed, find out what the deal is // To see if an EndpointAddrlist is valid, don't check m_bool // because m_bool=false if error, true if not; instead, check // m_addrs to see if its non-null. if ( remote.GetAddress() && remote.m_error_cat != EP_ERROR_NONE) { m_error_cat = remote.m_error_cat; m_error_code = remote.m_error_code; m_error_str = remote.m_error_str; } else if (local.GetAddress() && local.m_error_code != EP_ERROR_NONE) { m_error_cat = local.m_error_cat; m_error_code = local.m_error_code; m_error_str = local.m_error_str; } else { m_error_cat = EP_ERROR_ADDRESS; SetLastError(); m_error_str = "Neither remote or local address could be determined."; } return false; } if (local) { // Local address specified, bind to ALL local addresses associated with this name while ( (try_local = local.GetAddressNext()) ) { m_local = try_local; // If its a raw socket, setup the transport-layer-protocol field if (m_type >= RAW_BASE) try_local.ai_protocol = (m_type >> 1) - (RAW_BASE >> 1); #ifdef _EP_DEBUG std::cout << "trying to bind " << std::string(try_local) << std::endl; #endif // If g_raw_sockfd is specified, use it for raw sockets instead of socket() if (m_type >= RAW_BASE && g_raw_sockfd) m_sockfd = g_raw_sockfd; else m_sockfd = socket(try_local.ai_family, try_local.ai_socktype, try_local.ai_protocol); if (m_sockfd < 0) { m_error_cat = EP_ERROR_SOCKET; SetLastError(); /* std::stringstream ss; ss << "socket error: " << strerror(errno) << " family=" << try_local.ai_family << " socktype=" << try_local.ai_socktype << " protocol=" << try_local.ai_protocol; m_error_str = ss.str(); */ // don't break; try another continue; } // Set local address, unless its a raw socket if (m_type < RAW_BASE) { int n, yes = 1; n = setsockopt(m_sockfd, SOL_SOCKET, SO_REUSEADDR, (const char*)(&yes), sizeof(int)); #ifdef _EP_DEBUG if( n != 0 ) { std::cout << n << "--> " << ": " << errno << std::endl; std::perror("setsockopt"); } #endif n = bind(m_sockfd, try_local.ai_addr, try_local.ai_addrlen); if ( n < 0 ) { m_error_cat = EP_ERROR_BIND; SetLastError(); /* std::stringstream ss; ss << "bind error " << errno << ": " << strerror(errno) << " " << std::string(m_local); m_error_str = ss.str(); */ #ifdef _EP_DEBUG std::cout << "bind error: " << strerror(errno) << " " << std::string(m_local) << std::endl; #endif } else { #ifdef _EP_DEBUG std::cout << "bound!" << std::endl; #endif m_bool = true; break; } } } // Ok...a local address was given, do a passive open? // This is not always the case, a local address can be given and // the socket be an active open, although thats rare. // - Only TCP servers require listen() and accept() if ((type & SERVER) && (type & EP_SOCK_MASK) == TCP && m_bool == true) { // What to do here? Data transfer occurs over newfd, // but the current fd is bound to the local address m_servfd = m_sockfd; m_local_server = m_local; // GW: make the socked invalid, because it is now handled by m_servfd m_sockfd = -1; listen(m_servfd, 10); if( options == DOACCEPT ) { bool returnVal = Accept(); m_bool = returnVal; } else { m_bool = true; } //try_remote.Create(sa, SOCK_STREAM); // TCP //(m_type == UDP ? SOCK_DGRAM : SOCK_STREAM)); if (remote) { // Remote address for server. Not used. TODO: Only accept from? #ifdef _EP_DEBUG std::cout << "GIVEN: " << std::string(remote.GetAddress()) << std::endl; std::cout << "CONNECTED: " << std::string(m_remote) << std::endl; #endif } } } if (remote) { // Remote address specified, only connect to ONE if ((type & SERVER) == CLIENT) { // Client = active open to remote // Try to find an address that works, stick with it while( (try_remote = remote.GetAddressNext()) ) { // If its a raw socket, setup the transport-layer-protocol field if (m_type >= RAW_BASE) try_remote.ai_protocol = (m_type >> 1) - (RAW_BASE >> 1); #ifdef _EP_DEBUG std::cout << "trying to connect " << std::string(try_remote) << std::endl; #endif // Only socket() if doesn't exist yet; it may have been // created and bound in the previous step if (m_sockfd < 0) { if (m_type >= RAW_BASE && g_raw_sockfd) m_sockfd = g_raw_sockfd; else m_sockfd = socket(try_remote.ai_family, try_remote.ai_socktype, try_remote.ai_protocol); } if (m_sockfd < 0) { m_error_cat = EP_ERROR_SOCKET; SetLastError(); /* std::stringstream ss; ss << "socket error: " << strerror(errno) << " family=" << try_remote.ai_family << " socktype=" << try_remote.ai_socktype << " protocol=" << try_remote.ai_protocol; m_error_str = ss.str(); */ continue; } if (m_type < RAW_BASE) { // only if not raw (will be in header) if (connect(m_sockfd, try_remote.ai_addr, try_remote.ai_addrlen) < 0) { std::string str("connect(): "); perror((str + try_remote.IP() + " [" + try_remote.DNS() + "]: " + try_remote.Port()).c_str()); m_error_cat = EP_ERROR_CONNECT; SetLastError(); /* std::stringstream ss; ss << "connect error: " << strerror(errno); m_error_str = ss.str(); */ } else { #ifdef _EP_DEBUG std::cout << "connected!" << std::endl; #endif m_bool = true; m_remote = try_remote; break; } } else { m_bool = true; m_remote = try_remote; // raw sockets will be first(XXX:IPv4) break; } } // we were not able to establishe a connection if (m_sockfd < 0) { LOG_ERROR("Net", "Unable to open socket"); m_bool = false; return false; } // Get local socket name = local address sockaddr sa; #ifdef _WIN32 int n; #else unsigned int n; #endif n = sizeof(sockaddr); if (getsockname(m_sockfd, &sa, &n) == 0) { if (!m_local && (type & EP_SOCK_MASK) == TCP) m_local = EndpointAddress(&sa, SOCK_STREAM); else if (!m_local && (type & EP_SOCK_MASK) == UDP) m_local = EndpointAddress(&sa, SOCK_STREAM); else if (!m_local && (type & EP_SOCK_MASK) >= RAW_BASE) m_local = EndpointAddress(&sa, SOCK_STREAM); } else { LOG_ERROR("Net", "Unable to acquire socket name") } // Don't need to getpeername() because its specified } else { // not CLIENT (i.e., SERVER) #ifdef _EP_DEBUG std::cout << "ignoring remote address for server" << std::endl; #endif } } // Always set IP_HDRINCL on raw sockets so we can write the IP header if (m_bool && (m_type >= RAW_BASE)) { int on = 1; if (setsockopt(m_sockfd, IPPROTO_IP, IP_HDRINCL, (const char*)&on, sizeof(on)) < 0) { m_error_cat = EP_ERROR_SETSOCKOPT; SetLastError(); //m_error_str = "setsockopt error: " + (std::string)strerror(errno); } } return m_bool; } bool Endpoint::Accept() { // Ok...a local address was given, do a passive open? // This is not always the case, a local address can be given and // the socket be an active open, although thats rare. // - Only TCP servers require listen() and accept() if( (m_server & SERVER) && (m_type & EP_SOCK_MASK) == TCP && m_bool == true && m_servfd >= 0 ) { // Don't need to getsockname() because local endpoint is given // Passive open (accept), returned sockaddr will be peer name // so don't need getpeername() // Clear out the connection socket so we don't abandon an open socket. Close(); sockaddr saAcceptInfo; sockaddr* sa = &saAcceptInfo; #ifdef _WIN32 int n; #else unsigned int n; #endif n = sizeof(sockaddr); int newfd = accept(m_servfd, sa, &n); if (newfd >= 0) { m_sockfd = newfd; #ifdef _EP_DEBUG std::cout << "accepted!" << std::endl; #endif // Set remote address to who connected. // accept() kindly returns this value (getpeername() doesn't seem to work) m_remote = EndpointAddress(sa, m_type); // fill in our local address info. // cannot do this until 1) the connection is accepted // and 2) until sa* is finished being used (stores // the remote address). if (getsockname( m_sockfd, sa, &n ) != 0) { m_local = EndpointAddress(sa, m_type); } else { LOG_ERROR("Net", "Unable to acquire socket name:" << strerror(errno)); } return true; } else { // accept wasn't successful m_error_cat = EP_ERROR_ACCEPT; m_bool = false; SetLastError(); /* std::stringstream ss; ss << "accept() failed: " << strerror(errno); m_error_str = ss.str(); */ } } return false; } int Endpoint::g_bytes_sent = 0; int Endpoint::g_bytes_recv = 0; // IP headers for raw sockets struct ep_iphdr { u_int8_t ver_ihl; // version + internet header length (or vice versa) u_int8_t dscp; // diff. services code point, was type of service (tos) u_int16_t tot_len; u_int16_t id; u_int16_t frag_off; u_int8_t ttl; u_int8_t protocol; u_int16_t check; u_int32_t saddr; u_int32_t daddr; /*The options start here. */ }; // Pseudo-header for checksum purposes struct ep_pseudohdr { u_int32_t saddr; u_int32_t daddr; u_int8_t zero; u_int8_t protocol; u_int16_t length; }; // Based on BSD's struct ep_udphdr { u_short sport; /* source port */ u_short dport; /* destination port */ u_short ulen; /* udp length */ u_short sum; /* udp checksum */ }; struct ep_icmphdr { u_int8_t type; u_int8_t code; u_int16_t sum; }; int Endpoint::Send(const void *msg, int len, int /*flags*/) { unsigned int bytes_sent; bytes_sent = send(m_sockfd, (const char*)msg, len, 0); if( bytes_sent == (unsigned int)-1||bytes_sent==(unsigned int)0) { // error/ closed m_bool = false; m_error_cat = EP_ERROR_SEND; SetLastError(); return bytes_sent; } AddBytesSent(bytes_sent); return bytes_sent; } // Write all bytes in data // Returns number of bytes written int Endpoint::Write(std::string data) { unsigned int bytes_left, bytes_sent; bytes_left = data.length(); if( !m_bool ) { return -1; } // Do not actually send 0 bytes, doing this will kill connection. if( bytes_left == 0 ) { return 0; } // If raw socket, include the IP header, unless its RAW_RAW // (Note: raw sockets are IPv4-only, use datalink access for raw IPv6) if (m_type >= RAW_BASE && m_type != RAW_RAW) { char* buff = new char[8192]; // TODO: MTU char* pseudobuff = new char[8192]; int iphdrsz = 20; // No IP options, 20 byte IP header int layer4sz; // Layer 4 (TCP, UDP, etc.) hdr size switch (m_type) { case RAW_UDP: layer4sz = 8; break; case RAW_ICMP: layer4sz = 4; break; default: layer4sz = 0; break; } // Copy data to IP buff memcpy(buff + iphdrsz + layer4sz, data.data(), data.length()); // Build an IP header. Always do this if IP_HDRINCL is set. ep_iphdr* iphdr = (struct ep_iphdr*)buff; #if __BYTE_ORDER == __LITTLE_ENDIAN iphdr->ver_ihl = (u_int8_t) (iphdrsz >> 2 | 0x40); #elif __BYTE_ORDER == __BIG_ENDIAN iphdr->ver_ihl = (u_int8_t) ( ((iphdrsz >> 2) << 4) | 0x4 ); // really ihl_ver #else # error "Please fix " #endif //iphdr->ihl = iphdrsz >> 2; // Header Length(=20 bytes) //iphdr->version = 4; // IPv4 iphdr->dscp = 8; // Differentiated Services Field (?) //iphdr->tot_len = 20 + (m_type == RAW_UDP ? 8 : 0) + data.length() iphdr->tot_len = (u_int16_t) (iphdrsz + layer4sz + data.length()); iphdr->id = 0; // IPID, let kernel fill it in (randomize??) iphdr->frag_off = 0; // Fragment offset & flags = not fragmented iphdr->ttl = 128; // Time to Live iphdr->protocol = (u_int8_t) ( (m_type >> 1) - (RAW_BASE >> 1) ); // Next protocol iphdr->check = 0; // Checksum, filled in by kernel iphdr->saddr = inet_addr(m_local.IP().c_str()); // Source & iphdr->daddr = inet_addr(m_remote.IP().c_str()); // dest address if (m_type == RAW_UDP) { ep_udphdr* udphdr = (struct ep_udphdr*)(buff + iphdrsz); ep_pseudohdr* pseudohdr = (struct ep_pseudohdr*)pseudobuff; udphdr->sport = htons(m_local.PortNumber()); udphdr->dport = htons(m_remote.PortNumber()); udphdr->sum = 0; udphdr->ulen = (u_short) htons((u_short)data.length() + 8); // Copy UDP header and data into pseudo header memcpy(pseudobuff + sizeof(struct ep_pseudohdr), buff + iphdrsz, layer4sz + data.length()); pseudohdr->saddr = iphdr->saddr; pseudohdr->daddr = iphdr->daddr; pseudohdr->zero = 0; pseudohdr->protocol = IPPROTO_UDP; pseudohdr->length = udphdr->ulen; // XXX: Incorrect checksum if source port is 0? Inconsistantly. // Or if we specify 0 as src addr so it gets filled in udphdr->sum = Endpoint::in_cksum((u_short*)pseudobuff, sizeof(struct ep_pseudohdr) + layer4sz + data.length()); } else if (m_type == RAW_ICMP) { ep_icmphdr* icmphdr = (struct ep_icmphdr*)(buff + iphdrsz); // Port number, upper 8 bits are type, lower are code XXX:ENDIAN icmphdr->type = (u_int8_t) (m_remote.PortNumber() >> 8); icmphdr->code = (u_int8_t) (m_remote.PortNumber() & 0xff); icmphdr->sum = 0; icmphdr->sum = Endpoint::in_cksum((u_short*)icmphdr, layer4sz + data.length()); } int err = sendto(m_sockfd, buff, data.length()+iphdrsz+layer4sz, 0, (sockaddr*)m_remote.ai_addr, m_remote.ai_addrlen); if (err < 0) { #ifdef _EP_DEBUG std::cout << "send error: " << strerror(errno) << std::endl; #endif m_bool = false; m_error_cat = EP_ERROR_SEND; SetLastError(); } delete[] buff; delete[] pseudobuff; return err; } // Loop until either a) all bytes are sent b) no more bytes could be sent do { // XXX: shall flags be MSG_WAITALL, if supported? bytes_sent = send(m_sockfd, ( data.data() + data.length() - bytes_left ), bytes_left, 0); if (bytes_sent == (unsigned)-1||bytes_sent==(unsigned)0) { // error/ closed m_bool = false; m_error_cat = EP_ERROR_SEND; SetLastError(); return bytes_sent; } //m_bytes_sent += bytes_sent; //Endpoint::g_bytes_sent += bytes_sent; AddBytesSent(bytes_sent); bytes_left -= bytes_sent; } while(bytes_left > 0 && bytes_sent != 0); if (bytes_sent != data.length()) { #ifdef _EP_DEBUG std::cout << "Socket::Write() partial write, " << bytes_sent << " != " << data.length() << std::endl; #endif return bytes_sent; } return bytes_sent; } int Endpoint::Recv(void *buf, int len, unsigned int flags) { int returnVal; returnVal = recv(m_sockfd, (char *)buf, len, flags); // Check for conditions that may terminate reading prematurely if (returnVal == -1) { // -1 is error or EWOULDBLOCK // Check if caller wanted non-blocking, and we got it if (/*!m_blocking && */errno == EAGAIN) return returnVal; // Otherwise, this is an error m_bool = false; m_error_cat = EP_ERROR_RECV; SetLastError(); return -1 * returnVal; // Error condition } else if (returnVal == 0) { // 0 is EOF return returnVal; } AddBytesRecv(returnVal); return returnVal; } // Read bytes_to_read bytes into data, return FALSE if end-of-file // bytes_to_read=x can be either: // x>0 - read AT LEAST x bytes, blocking // x<0 - read AT MOST -x bytes, blocking // x=0 - Non-blocking I/O (not supported) // (This is copied almost verbatim from my own IPv4-only Socket) int Endpoint::Read(int bytes_to_read, std::string& data) { int bytes_left = bytes_to_read; int bytes_read = 0; int bytes_just_read = 0; //bool eof = false; bool read_all = true; //bool ret = true; if (bytes_to_read == 0) { // Non-blocking I/O (not supported) #ifdef _EP_DEBUG std::cout << "Error, can't read 0 bytes" << std::endl; #endif } if (bytes_to_read < 0) { // Negatives = don't read all, do one call bytes_left = -bytes_to_read; read_all = false; } do { char* buf = new char[bytes_left]; if (!buf) { #ifdef _EP_DEBUG std::cout << "OUT OF MEMORY!" << std::endl; #endif // force-close connection and return 0 m_bool = false; m_error_cat = EP_ERROR_RECV; m_error_code = 0; m_error_str = ""; Close(); CloseServer(); return 0; } bytes_just_read = recv(m_sockfd, (char*)buf, bytes_left, 0); if (bytes_just_read > 0) { bytes_read += bytes_just_read; data += std::string(buf, bytes_just_read); } delete[] buf; // TODO: Less inefficient // Check for conditions that may terminate reading prematurely if (bytes_just_read == -1) { // -1 is error or EWOULDBLOCK // Check if caller wanted non-blocking, and we got it if (/*!m_blocking && */errno == EAGAIN) return bytes_read; // Otherwise, this is an error m_bool = false; m_error_cat = EP_ERROR_RECV; SetLastError(); return -bytes_read; // Error condition break; } else if (bytes_just_read == 0) // 0 is EOF return bytes_read; bytes_left -= bytes_just_read; // If read_all is set (the default, for + values), loop again. // If not set (for - bytes_to_read values), don't loop anymore if (!read_all) break; } while(bytes_left != 0); //m_bytes_recv += data.length(); //Endpoint::g_bytes_recv += data.length(); AddBytesRecv(data.length()); return bytes_read; } // Read bytes_to_read bytes into data, return FALSE if end-of-file // bytes_to_read=x can be either: // x>0 - read AT LEAST x bytes, blocking // x<0 - read AT MOST -x bytes, blocking // x=0 - Non-blocking I/O (not supported) // (This is copied almost verbatim from my own IPv4-only Socket) int Endpoint::Read(int bytes_to_read, char* buffer) { int bytes_left = bytes_to_read; int bytes_read = 0; int bytes_just_read = 0; //bool eof = false; bool read_all = true; //bool ret = true; if (bytes_to_read == 0) { // Non-blocking I/O (not supported) #ifdef _EP_DEBUG std::cout << "Error, can't read 0 bytes" << std::endl; #endif } if (bytes_to_read < 0) { // Negatives = don't read all, do one call bytes_left = -bytes_to_read; read_all = false; } do { char* buf = new char[bytes_left]; if (!buf) { #ifdef _EP_DEBUG std::cout << "OUT OF MEMORY!" << std::endl; #endif // force-close connection and return 0 m_bool = false; m_error_cat = EP_ERROR_RECV; m_error_code = 0; m_error_str = ""; Close(); CloseServer(); return 0; } bytes_just_read = recv(m_sockfd, (char*)buf, bytes_left, 0); if (bytes_just_read > 0) { bytes_read += bytes_just_read; memcpy(buffer, buf, bytes_just_read); } delete[] buf; // TODO: Less inefficient // Check for conditions that may terminate reading prematurely if (bytes_just_read == -1) { // -1 is error or EWOULDBLOCK // Check if caller wanted non-blocking, and we got it if (/*!m_blocking && */errno == EAGAIN) return bytes_read; // Otherwise, this is an error m_bool = false; m_error_cat = EP_ERROR_RECV; SetLastError(); return -bytes_read; // Error condition break; } else if (bytes_just_read == 0) // 0 is EOF return bytes_read; bytes_left -= bytes_just_read; // If read_all is set (the default, for + values), loop again. // If not set (for - bytes_to_read values), don't loop anymore if (!read_all) break; } while(bytes_left != 0); //m_bytes_recv += data.length(); //Endpoint::g_bytes_recv += data.length(); AddBytesRecv(bytes_read); return bytes_read; } int Endpoint::g_raw_sockfd = 0; // create new raw socket fd for each instance by default void Endpoint::setup_raw(std::string argv0) { Initialize(); // static method, so not normally called // The "launch" program passes a raw socket in this environment variable, // so only *it* (launch) is setuid root, thus increasing safety #if defined (_WINDOWS) #pragma warning( push ) #pragma warning( disable : 4996 ) #endif if (getenv("RAWSOCKFD")) { Endpoint::set_raw_sockfd(std::atoi(std::getenv("RAWSOCKFD"))); #ifdef _EP_DEBUG std::cout << "Using raw #" << std::atoi(std::getenv("RAWSOCKFD")) << std::endl; #endif return; } #if defined (_WINDOWS) #pragma warning ( pop) #endif int rawfd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); // Don't bother getuid() on Win32 #ifdef _WIN32 #define getuid() -1 #endif if (rawfd < 0) { #ifdef _EP_DEBUG std::cout << "Couldn't create raw socket." << rawfd << std::endl; #endif #ifndef _WIN32 if (getuid() != 0) { std::cout << "You are not running as root. Please set the setuid " "bit by typing:\nchmod 4755 " << argv0 << std::endl << "and try again. Root priviledges will be dropped " "after the raw socket is created." << std::endl; } else { std::cout << "You ARE running as root, but creation of the raw " "socket failed anyways.\n\nMaybe check your TCP/IP " "stack?" << std::endl; } #else // TODO: Use winpcap's pcap_send, works on all platforms std::cout << "You are running the Win32 build.\n" << std::endl << "Please note that only Windows XP/2000 are supported." << std::endl << std::endl << "Windows NT3/Me/98/95 do not have the required " << "capabilities to use raw sockets." << std::endl << "Also, you must have administrator priviledges. Under NT4, you can run\n" << "ntadmraw.reg to enable non-admin raw sockets. Under XP Home Edition, \n" << "all users are Admin by default and should have no problems. Test if \n" << "you have raw socket capabilities by going here: " << std::endl << "http://news.grc.com/files/sockettome.exe - make sure this works"<= 0 ) { #ifdef _WIN32 closesocket ( m_sockfd ); #else close ( m_sockfd ); #endif } m_sockfd = -1; return true; } void Endpoint::Shutdown(EP_Mode mode) { switch(mode) { case INPUT: shutdown(m_sockfd, 0); break; case OUTPUT: shutdown(m_sockfd, 1); break; case BOTH: shutdown(m_sockfd, 2); break; } } void Endpoint::ShutdownSocket(int socketID, EP_Mode mode) { switch(mode) { case INPUT: shutdown(socketID, 0); break; case OUTPUT: shutdown(socketID, 1); break; case BOTH: shutdown(socketID, 2); break; } } bool Endpoint::CloseServer() { if( m_servfd >= 0 ) { #ifdef _WIN32 closesocket ( m_servfd ); #else close ( m_servfd ); #endif } m_servfd = -1; return true; } #ifdef _WIN32 std::string convertUTF16toUTF8(const wchar_t* source, unsigned sourceLength) { #if defined(WIN32) && !defined(__CYGWIN__) if (sourceLength == 0) { return std::string(); } int destLen = WideCharToMultiByte(CP_UTF8, 0, source, sourceLength, 0, 0, 0, 0); if (destLen <= 0) { std::cerr << "Cannot convert UTF-16 string to UTF-8." << std::endl; return std::string(); } std::string sDest(destLen, '\0'); destLen = WideCharToMultiByte(CP_UTF8, 0, source, sourceLength, &sDest[0], destLen, 0, 0); if (destLen <= 0) { std::cerr << "Cannot convert UTF-16 string to UTF-8." << std::endl; return std::string(); } return sDest; #else //TODO: Implement for other platforms osg::notify(osg::WARN) << "ConvertUTF16toUTF8 not implemented." << std::endl; return std::string(); #endif } #endif Endpoint::~Endpoint() { Close(); CloseServer(); } int Endpoint::SetLastError() { #ifdef _WIN32 m_error_code = WSAGetLastError(); LPVOID lpMsgBuf; FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, m_error_code, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL ); std::wstring wstr = (WCHAR*)lpMsgBuf; m_error_str = convertUTF16toUTF8(wstr.c_str(), wstr.size()); //.assign((const char*)lpMsgBuf); LocalFree(lpMsgBuf); #else m_error_code = errno; m_error_str = strerror(errno); #endif return m_error_code; } /* Obtained from source code from _Unix Network Programming_ by * * W. Richard Stevens. www.kohala.com/start/unpv12e.html for download. */ unsigned short Endpoint::in_cksum(unsigned short *addr, int len) { int nleft = len; int sum = 0; unsigned short *w = addr; unsigned short answer = 0; /* * Our algorithm is simple, using a 32 bit accumulator (sum), we add * sequential 16 bit words to it, and at the end, fold back all the * carry bits from the top 16 bits into the lower 16 bits. */ while (nleft > 1) { sum += *w++; nleft -= 2; } /* 4mop up an odd byte, if necessary */ if (nleft == 1) { *(unsigned char *)(&answer) = *(unsigned char *)w ; sum += answer; } /* 4add back carry outs from top 16 bits to low 16 bits */ sum = (sum >> 16) + (sum & 0xffff); /* add hi 16 to low 16 */ sum += (sum >> 16); /* add carry */ answer = (unsigned short)~sum; /* truncate to 16 bits */ return(answer); } /* int join(std::string mcastaddr, std::string interface = "0"); int leave(std::string mcastaddr, std::string interface = "0"); int mcast_options(std::string outgoing_if, int ttl = 1, int loop = 1); */ #if 0 #include // for ifreq #include // for SIOCGIFADDR int Endpoint::join(std::string mcastaddr, std::string ifname) { int sockfd = m_sockfd; EndpointAddrlist addrlist(mcastaddr + ":0"); sockaddr sa_referent = addrlist.GetAddress(); sockaddr* sa = &sa_referent; int n; // from UNP, slightly modified switch (sa->sa_family) { case AF_INET: { struct ip_mreq mreq; struct ifreq ifreq; memcpy(&mreq.imr_multiaddr, &((struct sockaddr_in *) sa)->sin_addr, sizeof(struct in_addr)); /* if (ifname.length()) { // modified strncpy(ifreq.ifr_name, ifname.c_str(), IFNAMSIZ); if (ioctl(sockfd, SIOCGIFADDR, &ifreq) < 0) { #ifdef _EP_DEBUG std::cout << "ioctl: SIOCGIFADDR failed" << std::endl; #endif return(-1); } memcpy(&mreq.imr_interface, &((struct sockaddr_in *) &ifreq.ifr_addr)->sin_addr, sizeof(struct in_addr)); } else */ mreq.imr_interface.s_addr = htonl(INADDR_ANY); n = (setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq))); if (n != 0) { #ifdef _EP_DEBUG std::cout << "setsockopt join: " << strerror(errno) << std::endl; #endif return n; } return 0; } /* end mcast_join1 */ /* include mcast_join2 */ #ifdef IPV6 case AF_INET6: { struct ipv6_mreq mreq6; memcpy(&mreq6.ipv6mr_multiaddr, &((struct sockaddr_in6 *) sa)->sin6_addr, sizeof(struct in6_addr)); if (ifindex > 0) mreq6.ipv6mr_interface = ifindex; else if (ifname != NULL) if ( (mreq6.ipv6mr_interface = if_nametoindex(ifname)) == 0) { errno = ENXIO; /* if name not found */ #ifdef _EP_DEBUG std::cout << "ENXIO ifname not found" << std::endl; #endif return(-1); } else mreq6.ipv6mr_interface = 0; // XXX: IPV6_ADD_MEMBERSHIP -> IPV6_JOIN_GROUP n = setsockopt(sockfd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq6, sizeof(mreq6)); if (n != 0) { #ifdef _EP_DEBUG std::cout << "setsockopt failure: " << strerror(errno) << std::endl; #endif } #ifdef _EP_DEBUG std::cout << strerror(errno) << std::endl; #endif return n; } #endif default: errno = EPROTONOSUPPORT; #ifdef _EP_DEBUG std::cout << "join: protocol not supported" << std::endl; #endif return(-1); } } */ #endif ginkgocadx-3.8.7/cadxcore/endpoint/endpoint.h000066400000000000000000000163361314736454600212760ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef __EP_ENDPOINT_H #define __EP_ENDPOINT_H #include #include #include #include #include #include #include #include "protocols.h" #include "address.h" #ifdef _WIN32 typedef unsigned char u_int8_t; typedef unsigned short u_int16_t; typedef unsigned int u_int32_t; #endif // Used for Endpoint connection options, mainly Accept(). #define NOACCEPT 4 #define DOACCEPT 6 #define EP_ERROR_NONE 0 #define EP_ERROR_SOCKET 1 #define EP_ERROR_BIND 2 #define EP_ERROR_ACCEPT 3 #define EP_ERROR_SETSOCKOPT 4 #define EP_ERROR_CONNECT 5 #define EP_ERROR_ADDRESS 6 #define EP_ERROR_GETPEERNAME 7 #define EP_ERROR_SEND 8 #define EP_ERROR_RECV 9 // 100+ defined in address.h class Endpoint { public: typedef enum EP_Mode { INPUT, OUTPUT, BOTH } EP_Mode; Endpoint(); // Each of these functions have an int appended to the end of // their constuctors, for determining if we should automatically // connect() or accept(). Endpoint( int type, std::string hostname, int service, int options = DOACCEPT ); // type-hostname-service deprecated in favor of type-remote-local //Endpoint(int type, std::string hostname, std::string service = "") // { Create(type, hostname, service); } Endpoint( int type, std::string remote, std::string local, int options = DOACCEPT ); // This constructor does not need the options parameter because it would // conflict with the above Endpoint( int, std::string, int, int=DOACCEPT ) Endpoint( int type, std::string address ); Endpoint( int type, std::string remotehost, std::string remoteservice, std::string localhost, std::string localservice, int options = DOACCEPT ); Endpoint( int type, const EndpointAddrlist& address, int options = DOACCEPT ); Endpoint( int type, const EndpointAddrlist& local, const EndpointAddrlist& remote, int options = DOACCEPT ); bool Create( int type, const EndpointAddrlist& address, int options = DOACCEPT ); bool Create( int type, const EndpointAddrlist& remote, const EndpointAddrlist& local, int options = DOACCEPT ); bool Create( int type, std::string host, std::string service, int options = DOACCEPT ); bool Create( int type, std::string remotehost, std::string remoteservice, std::string localhost, std::string localservice, int options = DOACCEPT ); virtual ~Endpoint(); bool Close(); void Shutdown(EP_Mode mode); static void ShutdownSocket(int socketID, EP_Mode mode); bool CloseServer(); bool Accept(); operator bool() { return m_bool; } operator std::string() { return Connection(); } std::string Connection() { return m_local.IPPort() + " <--> " + m_remote.IPPort(); } std::string Server() { return m_local_server.IPPort(); } int Send(const void *msg, int len, int flags); int Write(std::string); // Returns number of bytes written int Recv(void *buf, int len, unsigned int flags); int Read(int, std::string&); // Returns number of bytes read int Read(int, char* buffer); // Returns number of bytes read void SetOptOn(int level, int opt) { char on = 1; setsockopt(m_sockfd, level, opt, &on, sizeof(on)); } void AddBytesRecv(int n) { m_bytes_recv += n; g_bytes_recv += n; } void AddBytesSent(int n) { m_bytes_sent += n; g_bytes_sent += n; } int GetBytesRecv() { return m_bytes_recv; } int GetBytesSent() { return m_bytes_sent; } int GetAllBytesRecv() { return g_bytes_recv; } int GetAllBytesSent() { return g_bytes_sent; } std::string Stats() { std::stringstream ss; ss << GetBytesRecv() << " / " << GetBytesSent() << std::endl << GetAllBytesRecv() << " / " << GetAllBytesSent() << std::endl; return ss.str(); } int m_sockfd; int m_servfd; bool m_bool; int m_error_cat; int m_error_code; std::string m_error_str; int m_type; int m_server; int m_family; EndpointAddress m_remote; EndpointAddress m_local; // Only used with TCP | SERVER EndpointAddress m_local_server; // Multicast functions // No special function needed to send to an mcast addr, ex. 226.1.1.2:2000 //int join(std::string mcastaddr, std::string interface = "0"); //int leave(std::string mcastaddr, std::string interface = "0"); int mcast_options(std::string outgoing_if, int ttl = 1, int loop = 1); static void Initialize(); static unsigned short in_cksum(unsigned short *addr, int len); static int set_raw_sockfd(int n) { return g_raw_sockfd = n; } static int get_raw_sockfd() { return g_raw_sockfd; } // Handles creation of one raw socket & dropping of root static void setup_raw(std::string argv0); private: int m_bytes_sent; int m_bytes_recv; // Static data that applies to all instances of this class static int g_bytes_sent; static int g_bytes_recv; // If this is non-zero, it will be used instead of a call to // socket() for raw sockets. The idea is to re-use one raw // socket created when the program started (code to do this in SUMI, // TODO: maybe move it here) so root privs can be dropped. // XXX: Unfortunately, the pipe breaks after multiple sends. // XXXX: Can't sendto() multiple times? static int g_raw_sockfd; // Socket descriptor to use for raw sockets int SetLastError(); }; struct Interface { bool up, bcast, loopback, p2p, mcast; std::string address; std::string broadcast; std::string netmask; }; bool Network_Interfaces(std::vector& is); #endif ginkgocadx-3.8.7/cadxcore/endpoint/endpoint.html000066400000000000000000000321441314736454600220060ustar00rootroot00000000000000 Endpoint

    Endpoint C++ Socket Library

    Endpoint is a C++ class which uses Berkeley sockets to communicate with hosts via the Internet, through IPv4 or IPv6, using TCP or UDP or raw IP, on Win32 or Unix operating systems. Originally written for developing peer-to-peer applications, the simple philosophy behind Endpoint is of choice and portability and consistency:

    • Protocol-family independence - IPv4 or IPv6, transparently
    • Socket-type independence - UDP or TCP, client or server created similarly
    • Platform-indepedence - works on Win32 and Unix

    Additionally, data is data. It shouldn't matter how it gets there, via IPv4 or IPv6, on a Win32 or Unix platform. The addressing and connection establishment is the tough part, which this class hierarchy tries to address. New protocol family-independent calls are used, nullifying the need to port to IPv6 once IPv6 becomes more widely used.

    Also, Endpoint is to be optimized for typical cases, while still retaining desired functionality. Byte counters are an example of this, as is multiple addresses per host. In the future, perhaps multicasting will be transparently available.

    For more information, read below or refer to Tips and Tricks or the EndpointAddress documentation. To download, go to file releases.

    Platforms

    Endpoint has been compiled and tested successfully on the following operating systems:

    • FreeBSD 5.1-CURRENT, G++ 3.3.1
    • FreeBSD 4.8-STABLE, G++ 2.95.4
    • Microsoft Windows XP, VC++ 6.0 - raw sockets tested
    • Microsoft Windows 2000, VC++ 6.0
    • Microsoft Windows Me, VC++ 6.0

    Portability is a major goal. Testers welcome.

    Feature List

    Currently:

    • UDP, TCP, IPv4 raw sockets
    • Active or passive open (CLIENT or server)
    • Protocol independence
    • IPv4 or IPv6 with automatic getaddrinfo() DNS resolution
    • Automatic creation IPv4 header for raw sockets unless RAW_RAW given
    • Automatic creation of UDP header for RAW_UDP sockets, with proper ports
    • Automatic creation of ICMP header, "code,type" dest port specification
    • Optional Endpoint::g_raw_sockfd, set this to a raw socket descriptor and all raw sockets will use it. Allows Endpoint to be ran without root priviledges. Can also be passed through RAWSOCKFD environment variable if setup_raw() is called first.
    • Socket options, SetOptOn, uses setsockopt
    • Error handling

    Not implemented (yet):

    • A pluggable mechanism for registering creation of new layer-4 raw protocols so for example, create_igmp() creates raw IGMP packet headers. Extensive as possible. (Currently only UDP and ICMP create headers for you). Perhaps Libnet would be better for this purpose.
    • A shorter method of creating RAW sockets. Endpoint ep(RAW);
    • Easily usable I/O: ep << "foo"; ep >> input. Stream compatible.
    • Optional everything - optional service names
    • IP options - rarely used, but would be nice to have (long fat pipe)
    • readfrom/sendto - with null sockaddr by default?
    • readv, writev, recvmsg, sendmsg - perhaps
    • IPv6 raw sockets - no such thing
    • Datalink access - could use libpcap but not socket interface portably
    • Out-of-band data/urgent data for TCP - rarely used
    • Application-layer protocols - belong in other classes, but todo
    • Non-blocking I/O - not very efficient, existed in earlier versions but was taken out
    • Signal-driven I/O - blah
    • select and poll - hows this fit in?
    • Unix Domain Sockets - although useful, not completely portable (Win32)
    • Routing Sockets - no datalink access yet so can't be done, belongs in app
    • Broadcast
    • Multicast - I like it, should perhaps be implemented, but not much support
    • threading - belongs in client app
    • XTI - never

    Endpoint Class

    This class implements a "socket", a single endpoint connected to another endpoint. Member variables m_remote and m_local represent these; they are of type EndpointAddrinfo.

    Constructors

    • Endpoint::Endpoint(int type, EndpointAddrlist addr)
    • Endpoint::Endpoint(int type, string hostname, string service = "")
    • Endpoint::Endpoint(int type, EndpointAddrlist remote, EndpointAddrlist local)
    • Endpoint::Endpoint(int type, string remotehost, string remoteservice, string localhost, string localservice)

    The one-address constructors interpret the address as local if type specifies a server, remote if client -- and then calls the two-address constructor. The string parameters just create EndpointAddrlists and pass them to the others. Each constructor is implemented as a Create method, the real constructor simply calls this. Notice how address lists as opposed to a single address are passed: if the first one fails, the others are tried; m_local and m_remote are set to the connected EndpointAddresses.

    int type

    Specifies protocol and client/server, see address.html.

    string hostname

    See address.html. For clients, this is the remote address, for servers, this is the local address.

    string service

    Default service, see above.

    operator string()

    Returns the socket pair as a string, for example: "127.0.0.1:8000 <--> 127.0.0.1:3402". The local address is shown first followed by the foreign address. Invalid addresses are shown as "(invalid)".

    operator bool()

    Returns true if is connected (m_bool member variable). More useful with TCP sockets than UDP sockets. connect() rarely fails with UDP sockets; you'll usually be notified of a UDP port being closed when you try to write to it. If you want to make sure, write a 0-byte packet and abort if it fails. Endpoint doesn't do this for you because that might interfere with the data.

    bool Write(string)

    Writes all data in string, looping if necessary. Calls send(). If any of the send() calls returns -1, returns false. This means the remote host closed the connection, and if you try to send more you'll cause a SIGPIPE on Unix.

    std::string Stats()

    Return a string of various statistics of the socket usage. You can also call the socket-wide GetBytesRecv(), GetBytesSent(), or application-wide GetAllBytesRecv() and GetAllBytesSent() calls individually.

    int m_error_code; std::string m_error_str

    Error codes and error strings. Check these if !ep (m_bool=false). Defined values for m_error_code are EP_ERROR_NONE, EP_ERROR_SOCKET, EP_ERROR_BIND, EP_ERROR_ACCEPT, EP_ERROR_SETSOCKOPT, EP_ERROR_CONNECT, EP_ERROR_ADDRESS, and the EndpointAddrlist error EP_ERROR_GETADDRINFO. Each code corresponds to the system call where an error occured. m_error_str is a descriptive, human readable string of the error, suitable for printing. If Endpoint attempts to create an EndpointAddrlist and fails, the error will propagate into these variables.

    static int set_raw_sockfd(int fd)

    Set the socket descriptor g_raw_sockfd used for raw sockets, to fd. Useful for, on Unix, separating the socket() call (which usually has to run as root) with the rest of the application code.

    static void Initialize()

    Initialize the socket library. Necessary on Win32; this function is called upon the first instanciation of an Endpoint object. On other platforms, nothing happens.

    References

    Endpoint isn't the only C++ class to utilize TCP/IP sockets, nor does it claim to be the best. Below are other C++ classes whose purpose is the same as or similar to that of Endpoint's, so one can learn from them.

    Microsoft Foundation Classes' CSocket
    See CSocket Considered Harmful, problems with being asynchronous and synchronous

    NMSTL's Socket
    Part of the "Networking, Messaging, Servers, and Threading Library", seems to be just a thin wrapper.

    Jason But's SocketCC
    IPv4, IPv6, UDP, TCP, SocketException, IPAddress, several classes for TCP and UDP. No Win32 support, targetted at Linux.

    ACE Sockets
    Not much information

    Dr. Clue's Socket
    Looks comprehensive, but no Win32 support.

    Rene Nyffenegger's Socket for Win32
    SocketServer, SocketSelect, UDP. Win32 (WinSock2) only

    Socket++
    "Socket++ is a family of C++ classes that gives the same interface as the iostream classes for input and output for communication between processes.", has Internet socks as well as Unix domain, implements Echo and SMTP example "protocol" classes, no IPv6. RedHat, Debian, FreeBSD, WinSock(?). Wrappers provided for pipe(), socketpair(), popen() and fork(). GPL'd. "Socket++ is a iostream like C++ class library for UNIX and INET domains of sockets and protocols.".

    libsocketcpp
    "Libsocketcpp provides a easy-to-use C++ class. With this class, TCP and UDP functionality can be added to any program quickly and easily." XXX

    AdaSockets
    - non-C++ (Ada)
    "AdaSockets allows Ada programmers to use sockets from within their programs with an easy-to-use Ada-friendly interface." XXX

    Ruby/TCPSocketPipe - non-C++ (Ruby)
    "A Ruby library to create I/O pipes for TCP socket tunneling" XXX

    The Endpoint Library
    An MFC, WinSock 1.1 socket library from 1997. Not to be confused with the Endpoint C++ Socket Library.
  • Unix Network Programming - a must
  • Beej's Guide to Network Programming - an excellent tutorial, good overview
  • BSD Sockets: A Quick And Dirty Primer

    Frequently Asked Questions

    On Win32, where is the inet_ntop function?

    WinSock is missing this function. The implementation from BIND is included in inet_ntop.c. You can link to inet_ntop_ipv4.c if you only want IPv4 and want to save a little space, but in general inet_ntop.c is preferred. Add this file to your project if you get an error LNK2001: unresolved external symbol _inet_ntop.

    On Win32, I get an error saying getaddrinfo or addrinfo is not found, what can I do?

    You need to download the core "Microsoft Platform SDK" which includes this function. Ask Google for where to download this. Copy the files from "include" to your Microsoft Visual Studio "include" directory, overwriting them. The compile should now work.

    On Win32, I get tons of link errors, how do I fix it?

    You need to link with ws2_32.lib, and the object files of endpoint.cpp, address.cpp, and inet_ntop.c. Also link to ws2_32.lib under Project -> Settings -> Link -> General -> Object/library modules.

    On Win32, should I include support for "Windows Sockets" in the MFC AppWizard?

    Unfortunately, no, as the afxsock.h header will conflict with Endpoint. If you created a project with WOSA support, you can fix it by removing #include <afxsock.h> from stdafx.h and replacing AfxSocketInit() with Endpoint::Initialize(). Also, you may have to change the precompiled header option (Project -> Settings -> C++ -> Category=Precompiled Headers) from "Use precompiled header file (.pch" to "Automatic use of precompiled headers" through stdafx.h. Endpoint doesn't include stdafx.h.

    On Win32, I get fatal error C1189: #error : WINDOWS.H already included. MFC apps must not #include <windows.h>.

    Include endpoint.h in stdafx.h, after the normal afx includes.

    Are raw sockets supported on Win32?

    Yes, provided your version supports it (Windows XP or Windows 2000). You may be able to create raw sockets as normal users.

    About the Author

    Jeff Connelly. Comments, questions, and criticism welcome.

    Happy hacking! ginkgocadx-3.8.7/cadxcore/endpoint/eptest/000077500000000000000000000000001314736454600206005ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/endpoint/eptest/chat/000077500000000000000000000000001314736454600215175ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/endpoint/eptest/chat/chat.cpp000066400000000000000000000036011314736454600231420ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "endpoint.h" using namespace std; Endpoint make_server(); Endpoint make_client(string); int main(int argc, char** argv) { Endpoint::Initialize(); EndpointAddrlist::g_default_family = AF_INET; if (argc != 2) { cout << "usage: " << argv[0] << " next-host" << endl; return -1; } string strPeer = argv[1]; if (strPeer[0] == '-') { make_server(); make_client(strPeer.substr(1)); } else { make_client(strPeer); make_server(); } return 0; } Endpoint make_server() { Endpoint ep(TCP | SERVER, "localhost:8000"); if (!ep) { cout << "problem starting server" << endl; exit(-2); } cout << "server started" << endl; return ep; } Endpoint make_client(string strPeer) { Endpoint ep(TCP | CLIENT, strPeer, "8000"); if (!ep) { cout << "problem connecting to peer" << endl; exit(-2); } cout << "connected to peer" << endl; return ep; } ginkgocadx-3.8.7/cadxcore/endpoint/eptest/eptest.cpp000066400000000000000000000027301314736454600226120ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include using namespace std; #include "../endpoint.h" int main(int argc, char* argv[]) { Endpoint::Initialize(); Endpoint ep(UDP | SERVER, "0.0.0.0:80"); //Endpoint ep(TCP | CLIENT, EndpointAddrlist("10.0.0.2:8000")); if (!ep) { cout << "Couldn't connect" << endl; return -2; } cout << string(ep) << endl; string buf; ep.Read(-1024, buf); cout << buf << endl; //while(int n=ep.Write("hello world\n")){ //} cout << "ok done" << endl; cout << ep.GetAllBytesSent() << " / " << ep.GetAllBytesRecv() << endl; return 0; return 0; } ginkgocadx-3.8.7/cadxcore/endpoint/eptest/irc.cpp000066400000000000000000000026171314736454600220670ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "endpoint.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif int main() { Endpoint ep(TCP | CLIENT, "[127.0.0.1]:6667"); string str; ep.Write("NICK jeff2\015\012"); ep.Write("USER blah blah blah :blahs\015\012"); while(ep.Read(-200, str)) { std::cout << str; if (str.find("376") != string::npos) { // End of /MOTD ep.Write("MODE jeff2 +ix\015\012"); ep.Write("PRIVMSG jeff :hello world\015\012"); } str = ""; } return 0; } ginkgocadx-3.8.7/cadxcore/endpoint/eptest/test.cpp000066400000000000000000000040231314736454600222620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "protocols.h" #include "address.h" #include "endpoint.h" #include #include #define IPSZ sizeof(struct ep_iphdr) #define UDPSZ sizeof(struct ep_udphdr) #define DATASZ sizeof(STRING) - 1 #define PSEUDOSZ sizeof(struct pseudohdr) #define BUFFSZ 100 #define SIZE (IPSZ + UDPSZ + DATASZ) #define STRING "hello" #include int main(int argc, char**argv) { #ifndef _WIN32 signal(SIGPIPE, SIG_IGN); #endif /*if (argc != 3) { std::cout << "usage: %0 \n" << std::endl; return 0; }*/ EndpointAddrlist::g_default_family = AF_INET; Endpoint::Initialize(); Endpoint::setup_raw(argv[0]); Endpoint ep(RAW_UDP | CLIENT, argv[1], argv[2]); ep.Write("hi"); // for multicasting, can't connect() or else won't receive from everywhere //Endpoint ep(UDP | CLIENT, ":0", "226.1.1.2:2000"); //std::cout << "Join: " << ep.join("226.1.1.2") << std::endl; if (!ep) { std::cout << "Couldn't connect" << std::endl; return -2; } std::cout << std::string(ep) << std::endl; std::string buf; ep.Read(-500, buf); std::cout << buf; //ep.Write("hello\r\n"); return 0; } ginkgocadx-3.8.7/cadxcore/endpoint/eptest/w32test/000077500000000000000000000000001314736454600221135ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/endpoint/eptest/w32test/ReadMe.txt000066400000000000000000000024021314736454600240070ustar00rootroot00000000000000======================================================================== CONSOLE APPLICATION : w32test ======================================================================== AppWizard has created this w32test application for you. This file contains a summary of what you will find in each of the files that make up your w32test application. w32test.dsp This file (the project file) contains information at the project level and is used to build a single project or subproject. Other users can share the project (.dsp) file, but they should export the makefiles locally. w32test.cpp This is the main application source file. ///////////////////////////////////////////////////////////////////////////// Other standard files: StdAfx.h, StdAfx.cpp These files are used to build a precompiled header (PCH) file named w32test.pch and a precompiled types file named StdAfx.obj. ///////////////////////////////////////////////////////////////////////////// Other notes: AppWizard uses "TODO:" to indicate parts of the source code you should add to or customize. ///////////////////////////////////////////////////////////////////////////// ginkgocadx-3.8.7/cadxcore/endpoint/eptest/w32test/StdAfx.cpp000066400000000000000000000015401314736454600240100ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "stdafx.h" // TODO: reference any additional headers you need in STDAFX.H // and not in this file ginkgocadx-3.8.7/cadxcore/endpoint/eptest/w32test/StdAfx.h000066400000000000000000000025041314736454600234560ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #if !defined(AFX_STDAFX_H__B6AE493D_5064_45EE_92F1_881AFD02612E__INCLUDED_) #define AFX_STDAFX_H__B6AE493D_5064_45EE_92F1_881AFD02612E__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers #include // TODO: reference additional headers your program requires here //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_STDAFX_H__B6AE493D_5064_45EE_92F1_881AFD02612E__INCLUDED_) ginkgocadx-3.8.7/cadxcore/endpoint/eptest/w32test/w32test.cpp000066400000000000000000000015331314736454600241340ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "stdafx.h" /* int main(int argc, char* argv[]) { printf("Hello World!\n"); return 0; }*/ ginkgocadx-3.8.7/cadxcore/endpoint/exception.h000066400000000000000000000016651314736454600214530ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef __EP_EXCEPTION_H #define __EP_EXCEPTION_H #include class EndpointException { public: EndpointException(std::string str):m_str(str) {} std::string m_str; }; #endif ginkgocadx-3.8.7/cadxcore/endpoint/icmp.txt000066400000000000000000000044041314736454600207670ustar00rootroot00000000000000ICMP For Data Transfer "Project Loki: ICMP Tunneling". Alhambra, daemon9. http://www.phrack.org/phrack/49/P49-06 RFC 792 http://www.iana.org/assignments/icmp-parameters type/code meaning 0 echo reply 1 ??? 2 ??? 3 destination unreachable 3/0 net unreachable 3/1 host unreachable 3/2 protocol unreachable 3/3 port unreachable 3/4 fragmentation needed and DF set 3/5 source route failed 3/6 destination network unknown 3/7 destination host unknown 3/8 source host isolated 3/9 communication with destination network administratively prohibited 3/10 communication with destination host administratively prohibited 3/11 destination network unreachable for type of service 3/12 destination host unreachable for type of service 3/13 communication administratively prohibited RFC1812 2/14 host precedence violation RFC1812 3/15 precedence cutoff in effect RFC1812 4 source quench 5 redirect 5/0 redirect datagrams for the network 5/1 redirect datagrams for the host 5/2 redirect datagrams for the Type of Service and network 5/3 redirect datagrams for the Type of Service and host 6 alternate host address 7 ??? 8 echo request 9 router advertisement 9/0 normal router advertisement 9/16 does not route common traffic 10 router soliciation 11 time exceeded 11/0 time to live exceeded in transit 11/1 fragment reassembly time exceeded 12 parameter problem message 12/0 pointer indicates error 12/1 missing a required option 12/2 bad length 13 timestamp 14 timestamp reply 15 information request 16 information reply 17 address mask request 18 address mask reply 19 reserved for security 20-29 reserved for robustness experiment 30 traceroute 31 datagram conversion error 33 IPv6 Where-Are-You 34 IPv6 I-Am-Here 35 Mobile Registration Request 36 Mobile Registration Reply 37 domain name request 38 domain name reply 39 SKIP 40 Photurius 40/1 bad SPI 40/2 authentication failed 40/2 decompression failed 40/3 decryption failed 40/4 need authentication 40/5 need authorization 41-255 Reserved request reply 8 0 echo 13 14 timestamp 15 16 information 17 18 address mask 33 34 IPv6 Where-Are-You/I-Am-Here 35 36 Mobile Registration 37 38 domain name ginkgocadx-3.8.7/cadxcore/endpoint/inet_ntop.c000066400000000000000000000144261314736454600214460ustar00rootroot00000000000000/* This is from the BIND 4.9.4 release, modified to compile by itself */ /* Modified again 2003-03-27 Jeff Connelly to compile under C++ */ /* Copyright (c) 1996 by Internet Software Consortium. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS * SOFTWARE. */ #if defined(LIBC_SCCS) && !defined(lint) static char rcsid[] = "$Id: inet_ntop.c,v $"; #endif /* LIBC_SCCS and not lint */ #include #include #include #include #ifdef _WIN32 #include #if !defined EAFNOSUPPORT #define EAFNOSUPPORT 97 #endif //#define ENOSPC 98 #else #include #include #include #include #endif #define IN6ADDRSZ 16 #define INT16SZ 2 #ifndef AF_INET6 #define AF_INET6 AF_MAX+1 /* just to let this compile */ #endif /* * WARNING: Don't even consider trying to compile this on a system where * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX. */ static const char *myinet_ntop4(const u_char *src, char *dst, size_t size); static const char *myinet_ntop6(const u_char *src, char *dst, size_t size); /* char * * inet_ntop(af, src, dst, size) * convert a network format address to presentation format. * return: * pointer to presentation format address (`dst'), or NULL (see errno). * author: * Paul Vixie, 1996. */ const char * myinet_ntop(int af, const void* src, char* dst, size_t size) { switch (af) { case AF_INET: return (myinet_ntop4(src, dst, size)); case AF_INET6: return (myinet_ntop6(src, dst, size)); default: errno = EAFNOSUPPORT; return (NULL); } /* NOTREACHED */ } /* const char * * inet_ntop4(src, dst, size) * format an IPv4 address, more or less like inet_ntoa() * return: * `dst' (as a const) * notes: * (1) uses no statics * (2) takes a u_char* not an in_addr as input * author: * Paul Vixie, 1996. */ static const char * myinet_ntop4(const u_char* src, char* dst, size_t size) { static const char fmt[] = "%u.%u.%u.%u"; size_t maxlen = sizeof "255.255.255.255"; char tmp[sizeof "255.255.255.255"]; #if defined(_WINDOWS) sprintf_s(tmp, maxlen, fmt, src[0], src[1], src[2], src[3]); #else snprintf(tmp, maxlen, fmt, src[0], src[1], src[2], src[3]); #endif if (strlen(tmp) > size) { errno = ENOSPC; return (NULL); } #if defined(_WINDOWS) strcpy_s(dst, maxlen, tmp); #else strncpy(dst, tmp, maxlen); #endif return (dst); } /* const char * * inet_ntop6(src, dst, size) * convert IPv6 binary address into presentation (printable) format * author: * Paul Vixie, 1996. */ static const char * myinet_ntop6(const u_char* src, char* dst, size_t size) { /* * Note that int32_t and int16_t need only be "at least" large enough * to contain a value of the specified size. On some systems, like * Crays, there is no such thing as an integer variable with 16 bits. * Keep this in mind if you think this function should have been coded * to use pointer overlays. All the world's not a VAX. */ const size_t maxlen = sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"; char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp; struct { int base, len; } best, cur; u_int words[IN6ADDRSZ / INT16SZ]; int i; best.len = 0; /* * Preprocess: * Copy the input (bytewise) array into a wordwise array. * Find the longest run of 0x00's in src[] for :: shorthanding. */ memset(words, 0, sizeof words); for (i = 0; i < IN6ADDRSZ; i++) words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3)); best.base = -1; cur.base = -1; for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++) { if (words[i] == 0) { if (cur.base == -1) cur.base = i, cur.len = 1; else cur.len++; } else { if (cur.base != -1) { if (best.base == -1 || cur.len > best.len) best = cur; cur.base = -1; } } } if (cur.base != -1) { if (best.base == -1 || cur.len > best.len) best = cur; } if (best.base != -1 && best.len < 2) best.base = -1; /* * Format the result. */ tp = tmp; for (i = 0; i < (IN6ADDRSZ / INT16SZ); i++) { /* Are we inside the best run of 0x00's? */ if (best.base != -1 && i >= best.base && i < (best.base + best.len)) { if (i == best.base) *tp++ = ':'; continue; } /* Are we following an initial run of 0x00s or any real hex? */ if (i != 0) *tp++ = ':'; /* Is this address an encapsulated IPv4? */ if (i == 6 && best.base == 0 && (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) { if (!myinet_ntop4(src+12, tp, sizeof tmp - (tp - tmp))) return (NULL); tp += strlen(tp); break; } #if defined(_WINDOWS) sprintf_s(tp, 5, "%x", words[i]); #else snprintf(tp, 5, "%x", words[i]); #endif tp += strlen(tp); } /* Was it a trailing run of 0x00's? */ if (best.base != -1 && (best.base + best.len) == (IN6ADDRSZ / INT16SZ)) *tp++ = ':'; *tp++ = '\0'; /* * Check for overflow, copy, and we're done. */ if ((tp - tmp) > (signed int) size) { errno = ENOSPC; return (NULL); } #if defined(_WINDOWS) strcpy_s(dst, maxlen, tmp); #else strncpy(dst, tmp, maxlen); #endif return (dst); } ginkgocadx-3.8.7/cadxcore/endpoint/inet_ntop.h000066400000000000000000000015421314736454600214460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifdef _WIN32 extern "C" const char * __cdecl myinet_ntop(int af, const void *src, char *dst, size_t size); #endif ginkgocadx-3.8.7/cadxcore/endpoint/inet_ntop_ipv4.c000066400000000000000000000013451314736454600224040ustar00rootroot00000000000000#include #include #include #include #ifdef _WIN32 #include #define EAFNOSUPPORT 97 #else #include #endif #ifndef INET_ADDRSTRLEN #define INET_ADDRSTRLEN 16 #endif /* include inet_ntop */ const char * inet_ntop(int family, const void *addrptr, char *strptr, size_t len) { const u_char *p = (const u_char *) addrptr; if (family == AF_INET) { char temp[INET_ADDRSTRLEN]; snprintf(temp, sizeof(temp), "%d.%d.%d.%d", p[0], p[1], p[2], p[3]); if (strlen(temp) >= len) { errno = ENOSPC; return (NULL); } strcpy(strptr, temp); return (strptr); } errno = EAFNOSUPPORT; return (NULL); } /* end inet_ntop */ ginkgocadx-3.8.7/cadxcore/endpoint/interfaces.cpp000066400000000000000000000101571314736454600221270ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "protocols.h" #include "address.h" #include "endpoint.h" #ifndef _WIN32 # error "UNIX network interface retrieval is currently unimplemented - please read UNP and implemenet it" #else // derived from code from tangentsoft.com WinSock example bool Network_Interfaces(std::vector& is) { SOCKET sd; // Should use INTERFACE_INFO_EX to allow IPv6 support INTERFACE_INFO InterfaceList[20]; unsigned long nBytesReturned; int nNumInterfaces; sd = socket(AF_INET, SOCK_DGRAM, 0); if (sd == SOCKET_ERROR) { //MessageBox(GetDesktopWindow(), "Failed to get a socket. Error ", "", 0); //+ WSAGetLastError() << //endl; return false; } if (WSAIoctl(sd, SIO_GET_INTERFACE_LIST, 0, 0, &InterfaceList, sizeof(InterfaceList), &nBytesReturned, 0, 0) == SOCKET_ERROR) { // MessageBox(GetDesktopWindow(), "Failed calling WSAIoctl: error ", "", 0); //<< WSAGetLastError() << // endl; return false; } closesocket(sd); nNumInterfaces = nBytesReturned / sizeof(INTERFACE_INFO); //str.Format("There are %d\n", nNumInterfaces); //MessageBox(GetDesktopWindow(), str, "", 0); for (int i = 0; i < nNumInterfaces; ++i) { Interface in; memset(&in, 0, sizeof(in)); // NOTE: This should be moved into application-specific code if (InterfaceList[i].iiFlags & IFF_LOOPBACK) // Skip loopback - uninteresting continue; if (!(InterfaceList[i].iiFlags & IFF_UP)) // Skip down interfaces continue; sockaddr_in *pAddress; pAddress = (sockaddr_in *) & (InterfaceList[i].iiAddress); //str += CString("IP=") + inet_ntoa(pAddress->sin_addr); in.address = inet_ntoa(pAddress->sin_addr); pAddress = (sockaddr_in *) & (InterfaceList[i].iiBroadcastAddress); //str += CString(" BCAST=") + inet_ntoa(pAddress->sin_addr); in.broadcast = inet_ntoa(pAddress->sin_addr); pAddress = (sockaddr_in *) & (InterfaceList[i].iiNetmask); //str += CString(" MASK=") + inet_ntoa(pAddress->sin_addr); in.netmask = inet_ntoa(pAddress->sin_addr); u_long nFlags = InterfaceList[i].iiFlags; if (nFlags & IFF_UP) { //str += " reserved-multicast-range-NOT-delegated.example.com But why I can ping 232.0.0.0 - 232.255.255.255, though RFC 3171 says its RESERVED? Heck, why can I ping the WHOLE MULTICAST range? 224.0.0.0 - 239.0.0.0 nmap reveals they're not running TCP. Makes sense...its not multicastable. UDP is. Warning: forward host lookup failed for reserved-multicast-range-NOT-delegated.example.com: Unknown host reserved-multicast-range-NOT-delegated.example.com [228.246.191.191] 80 (http) : Address family not supported by protocol family sent 0, rcvd 0 Interesting. "Address family not supported by protocol family" nmap says all UDP and TCP are filtered. But ICMP isn't! However, a protocol scan (-sO) shows that icmp,tcp,and udp (1,6,17) are supported. None other of the 256 possible IP protocols are. Good. All hosts appear identical. > ping 228.246.191.191 PING 228.246.191.191 (228.246.191.191): 56 data bytes 64 bytes from 228.246.191.191: icmp_seq=0 ttl=150 time=0.741 ms 64 bytes from 228.246.191.191: icmp_seq=1 ttl=150 time=0.696 ms OrgName: Internet Assigned Numbers Authority OrgID: IANA Address: 4676 Admiralty Way, Suite 330 City: Marina del Rey StateProv: CA PostalCode: 90292-6695 Country: US NetRange: 224.0.0.0 - 239.255.255.255 CIDR: 224.0.0.0/4 NetName: MCAST-NET NetHandle: NET-224-0-0-0-1 Parent: NetType: IANA Special Use NameServer: FLAG.EP.NET NameServer: STRUL.STUPI.SE NameServer: NS.ISI.EDU NameServer: NIC.NEAR.NET Comment: This block is reserved for special purposes. Comment: Please see RFC 3171 for additional information. Comment: RegDate: 1991-05-22 Updated: 2002-09-16 OrgTechHandle: IANA-ARIN OrgTechName: Internet Corporation for Assigned Names and Number OrgTechPhone: +1-310-823-9358 OrgTechEmail: res-ip@iana.org # ARIN WHOIS database, last updated 2003-04-26 20:10 # Enter ? for additional hints on searching ARIN's WHOIS database. ginkgocadx-3.8.7/cadxcore/endpoint/nc-bug.txt000066400000000000000000000007051314736454600212120ustar00rootroot00000000000000#!/bin/sh # Discovered 2003-05-09 Jeff Connelly # Bug in netcat with IPv6 support. # Scenerio: listen on IPv6, connect with IPv4 # The protocol stack stack passes the IPv4 connection to the IPv6 # server, but netcat can't do a forward host lookup on 0.0.0.0. This # full DNS lookup is not optional. netcat barfs and no data is received. nc -l6p 8000 & echo "xxx" | nc localhost 8000 # 0.0.0.0: forward host lookup failed: Unknown host ginkgocadx-3.8.7/cadxcore/endpoint/protocols.h000066400000000000000000000215411314736454600214740ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef __EP__PROTOCOLS_H #define __EP__PROTOCOLS_H // Logically AND (&) this with a type field to get the socket type (below) #define EP_SOCK_MASK ~1 // Client/server is LSB; do (type & SERVER) to see whether its a passive socket #define CLIENT 0 // (default) #define SERVER 1 // // Protocol type, occupies all but the LSB #define TCP (0<<1) #define UDP (1<<1) #define RAW_BASE (2<<1) // all >= RAW_BASE is raw, L4 protocol encoded #define RAW RAW_RAW // raw IP packet shortcut // comments & definitions from /usr/include/netinet/in.h on BSD #define RAW_IP ((2+IPPROTO_IP)<<1) /* dummy for IP */ #define RAW_ICMP ((2+IPPROTO_ICMP)<<1) /* control message protocol */ #define RAW_TCP ((2+IPPROTO_TCP)<<1) /* tcp */ #define RAW_UDP ((2+IPPROTO_UDP)<<1) /* user datagram protocol */ #define RAW_RAW ((2+IPPROTO_RAW)<<1) /* raw IP packet */ #define RAW_HOPOPTS ((2+IPPROTO_HOPOPTS)<<1)/* IP6 hop-by-hop options */ #define RAW_IGMP ((2+IPPROTO_IGMP)<<1) /* group mgmt protocol */ #define RAW_GGP ((2+IPPROTO_GGP)<<1) /* gateway^2 (deprecated) */ #define RAW_IPV4 ((2+IPPROTO_IPV4)<<1) /* IPv4 encapsulation */ #define RAW_IPIP ((2+IPPROTO_IPV4)<<1) /* for compatibility */ #define RAW_ST ((2+IPPROTO_ST)<<1) /* Stream protocol II */ #define RAW_EGP ((2+IPPROTO_EGP)<<1) /* exterior gateway protocol */ #define RAW_PIGP ((2+IPPROTO_PIGP)<<1) /* private interior gateway */ #define RAW_RCCMON ((2+IPPROTO_RCCMON)<<1) /* BBN RCC Monitoring */ #define RAW_NVPII ((2+IPPROTO_NVPII)<<1) /* network voice protocol*/ #define RAW_PUP ((2+IPPROTO_PUP)<<1) /* pup */ #define RAW_ARGUS ((2+IPPROTO_ARGUS)<<1) /* Argus */ #define RAW_EMCON ((2+IPPROTO_EMCON)<<1) /* EMCON */ #define RAW_XNET ((2+IPPROTO_XNET)<<1) /* Cross Net Debugger */ #define RAW_CHAOS ((2+IPPROTO_CHAOS)<<1) /* Chaos*/ #define RAW_MUX ((2+IPPROTO_MUX)<<1) /* Multiplexing */ #define RAW_MEAS ((2+IPPROTO_MEAS)<<1) /* DCN Measurement Subsystems */ #define RAW_HMP ((2+IPPROTO_HMP)<<1) /* Host Monitoring */ #define RAW_PRM ((2+IPPROTO_PRM)<<1) /* Packet Radio Measurement */ #define RAW_IDP ((2+IPPROTO_IDP)<<1) /* xns idp */ #define RAW_TRUNK1 ((2+IPPROTO_TRUNK1)<<1) /* Trunk-1 */ #define RAW_TRUNK2 ((2+IPPROTO_TRUNK2)<<1) /* Trunk-2 */ #define RAW_LEAF1 ((2+IPPROTO_LEAF1)<<1) /* Leaf-1 */ #define RAW_LEAF2 ((2+IPPROTO_LEAF2)<<1) /* Leaf-2 */ #define RAW_RDP ((2+IPPROTO_RDP)<<1) /* Reliable Data */ #define RAW_IRTP ((2+IPPROTO_IRTP)<<1) /* Reliable Transaction */ #define RAW_TP ((2+IPPROTO_TP)<<1) /* tp-4 w/ class negotiation */ #define RAW_BLT ((2+IPPROTO_BLT)<<1) /* Bulk Data Transfer */ #define RAW_NSP ((2+IPPROTO_NSP)<<1) /* Network Services */ #define RAW_INP ((2+IPPROTO_INP)<<1) /* Merit Internodal */ #define RAW_SEP ((2+IPPROTO_SEP)<<1) /* Sequential Exchange */ #define RAW_3PC ((2+IPPROTO_3PC)<<1) /* Third Party Connect */ #define RAW_IDPR ((2+IPPROTO_IDPR)<<1) /* InterDomain Policy Routing */ #define RAW_XTP ((2+IPPROTO_XTP)<<1) /* XTP */ #define RAW_DDP ((2+IPPROTO_DDP)<<1) /* Datagram Delivery */ #define RAW_CMTP ((2+IPPROTO_CMTP)<<1) /* Control Message Transport */ #define RAW_TPXX ((2+IPPROTO_TPXX)<<1) /* TP++ Transport */ #define RAW_IL ((2+IPPROTO_IL)<<1) /* IL transport protocol */ #define RAW_IPV6 ((2+IPPROTO_IPV6)<<1) /* IP6 header */ #define RAW_SDRP ((2+IPPROTO_SDRP)<<1) /* Source Demand Routing */ #define RAW_ROUTING ((2+IPPROTO_ROUTING)<<1)/* IP6 routing header */ #define RAW_FRAGMENT ((2+IPPROTO_FRAGMENT)<<1)/* IP6 fragmentation header */ #define RAW_IDRP ((2+IPPROTO_IDRP)<<1) /* InterDomain Routing*/ #define RAW_RSVP ((2+IPPROTO_RSVP)<<1) /* resource reservation */ #define RAW_GRE ((2+IPPROTO_GRE)<<1) /* General Routing Encap. */ #define RAW_MHRP ((2+IPPROTO_MHRP)<<1) /* Mobile Host Routing */ #define RAW_BHA ((2+IPPROTO_BHA)<<1) /* BHA */ #define RAW_ESP ((2+IPPROTO_ESP)<<1) /* IP6 Encap Sec. Payload */ #define RAW_AH ((2+IPPROTO_AH)<<1) /* IP6 Auth Header */ #define RAW_INLSP ((2+IPPROTO_INLSP)<<1) /* Integ. Net Layer Security */ #define RAW_SWIPE ((2+IPPROTO_SWIPE)<<1) /* IP with encryption */ #define RAW_NHRP ((2+IPPROTO_NHRP)<<1) /* Next Hop Resolution */ #define RAW_MOBILE ((2+IPPROTO_MOBILE)<<1) /* IP Mobility */ #define RAW_TLSP ((2+IPPROTO_TLSP)<<1) /* Transport Layer Security */ #define RAW_SKIP ((2+IPPROTO_SKIP)<<1) /* SKIP */ #define RAW_ICMPV6 ((2+IPPROTO_ICMPV6)<<1) /* ICMP6 */ #define RAW_NONE ((2+IPPROTO_NONE)<<1) /* IP6 no next header */ #define RAW_DSTOPTS ((2+IPPROTO_DSTOPTS)<<1)/* IP6 destination option */ #define RAW_AHIP ((2+IPPROTO_AHIP)<<1) /* any host internal protocol */ #define RAW_CFTP ((2+IPPROTO_CFTP)<<1) /* CFTP */ #define RAW_HELLO ((2+IPPROTO_HELLO)<<1) /* "hello" routing protocol */ #define RAW_SATEXPAK ((2+IPPROTO_SATEXPAK)<<1)/* SATNET/Backroom EXPAK */ #define RAW_KRYPTOLAN ((2+IPPROTO_KRYPTOLAN)<<1)/* Kryptolan */ #define RAW_RVD ((2+IPPROTO_RVD)<<1) /* Remote Virtual Disk */ #define RAW_IPPC ((2+IPPROTO_IPPC)<<1) /* Pluribus Packet Core */ #define RAW_ADFS ((2+IPPROTO_ADFS)<<1) /* Any distributed FS */ #define RAW_SATMON ((2+IPPROTO_SATMON)<<1) /* Satnet Monitoring */ #define RAW_VISA ((2+IPPROTO_VISA)<<1) /* VISA Protocol */ #define RAW_IPCV ((2+IPPROTO_IPCV)<<1) /* Packet Core Utility */ #define RAW_CPNX ((2+IPPROTO_CPNX)<<1) /* Comp. Prot. Net. Executive */ #define RAW_CPHB ((2+IPPROTO_CPHB)<<1) /* Comp. Prot. HeartBeat */ #define RAW_WSN ((2+IPPROTO_WSN)<<1) /* Wang Span Network */ #define RAW_PVP ((2+IPPROTO_PVP)<<1) /* Packet Video Protocol */ #define RAW_BRSATMON ((2+IPPROTO_BRSATMON)<<1)/* BackRoom SATNET Monitoring */ #define RAW_ND ((2+IPPROTO_ND)<<1) /* Sun net disk proto (temp.) */ #define RAW_WBMON ((2+IPPROTO_WBMON)<<1) /* WIDEBAND Monitoring */ #define RAW_WBEXPAK ((2+IPPROTO_WBEXPAK)<<1)/* WIDEBAND EXPAK */ #define RAW_EON ((2+IPPROTO_EON)<<1) /* ISO cnlp */ #define RAW_VMTP ((2+IPPROTO_VMTP)<<1) /* VMTP */ #define RAW_SVMTP ((2+IPPROTO_SVMTP)<<1) /* Secure VMTP */ #define RAW_VINES ((2+IPPROTO_VINES)<<1) /* Banyon VINES */ #define RAW_TTP ((2+IPPROTO_TTP)<<1) /* TTP */ #define RAW_IGP ((2+IPPROTO_IGP)<<1) /* NSFNET-IGP */ #define RAW_DGP ((2+IPPROTO_DGP)<<1) /* dissimilar gateway prot. */ #define RAW_TCF ((2+IPPROTO_TCF)<<1) /* TCF */ #define RAW_IGRP ((2+IPPROTO_IGRP)<<1) /* Cisco/GXS IGRP */ #define RAW_OSPFIGP ((2+IPPROTO_OSPFIGP)<<1)/* OSPFIGP */ #define RAW_SRPC ((2+IPPROTO_SRPC)<<1) /* Strite RPC protocol */ #define RAW_LARP ((2+IPPROTO_LARP)<<1) /* Locus Address Resoloution */ #define RAW_MTP ((2+IPPROTO_MTP)<<1) /* Multicast Transport */ #define RAW_AX25 ((2+IPPROTO_AX25)<<1) /* AX.25 Frames */ #define RAW_IPEIP ((2+IPPROTO_IPEIP)<<1) /* IP encapsulated in IP */ #define RAW_MICP ((2+IPPROTO_MICP)<<1) /* Mobile Int.ing control */ #define RAW_SCCSP ((2+IPPROTO_SCCSP)<<1) /* Semaphore Comm. security */ #define RAW_ETHERIP ((2+IPPROTO_ETHERIP)<<1)/* Ethernet IP encapsulation */ #define RAW_ENCAP ((2+IPPROTO_ENCAP)<<1) /* encapsulation header */ #define RAW_APES ((2+IPPROTO_APES)<<1) /* any private encr. scheme */ #define RAW_GMTP ((2+IPPROTO_GMTP)<<1) /* GMTP*/ #define RAW_IPCOMP ((2+IPPROTO_IPCOMP)<<1) /* payload compression(IPComp) */ #define RAW_PIM ((2+IPPROTO_PIM)<<1) /* Protocol Independent Mcast */ #define RAW_PGM ((2+IPPROTO_PGM)<<1) /* PGM */ #define RAW_OLD_DIVERT ((2+IPPROTO_OLD_DIVERT)<<1)/* OLD divert pseudo-proto */ #define RAW_MAX ((2+IPPROTO_MAX)<<1) #define RAW_DONE ((2+IPPROTO_DONE)<<1) #define RAW_DIVERT ((2+IPPROTO_DIVERT)<<1) /* divert pseudo-protocol */ #endif ginkgocadx-3.8.7/cadxcore/endpoint/sockatmark.cpp000066400000000000000000000017211314736454600221400ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include int sockatmark(int fd) { int flag; if (ioctl(fd, SIOCATMARK, &flag) < 0) return(-1); return(flag != 0 ? 1 : 0); } ginkgocadx-3.8.7/cadxcore/endpoint/tricks.html000066400000000000000000000055741314736454600214740ustar00rootroot00000000000000 Cool Things You Can do With Endpoint

    Endpoint: Tips and Tricks

    Send/Receive Normal TCP/UDP Traffic

    This is easy:

    // Choose one of these. It'll return once a connection is established.
    Endpoint ep(TCP | CLIENT, "example.com:80");       // Active open
    Endpoint ep(TCP | SERVER, ":80");                  // Passive open
    Endpoint ep(UDP | CLIENT, "example.com:41170");    // Send
    Endpoint ep(UDP | SERVER, ":41170");               // Receive
    
    if (!ep)   // If couldn't open socket
       std::cout << "failed: " << std::endl; 
    
    // Print out the local and remote address
    std::cout << "New socket: " << ep << std::endl;
    
    // Find out who we're connected to (note that this is shown above also)
    std::cout << "Connected to: " << string(ep.m_remote) << std::endl;
    
    // Write some data
    ep.Write("hi");
    

    Use IPv6

    If your host supports it, IPv6 will be automatically enabled. DNS names will resolve to 128-bit IPv6 addresses. To specifically use IPv6:

    EndpointAddrlist::g_default_family = AF_INET6;
    

    Now all DNS names will resolve to IPv6 addresses. (See also: RES_USE_INET6)

    To connect to an IPv6 host without DNS, simply write the address. Use square brackets around the IPv6 address if you're also specifying a port. For example, to connect to a local web server you're running on IPv6:

    Endpoint ep(TCP | CLIENT, "[::1]:80");
    
    

    If you have IPv6 support but don't want it to get in the way, use:

    EndpointAddrlist::g_default_family = AF_INET;
    

    Use Raw Sockets

    Endpoint now supports raw sockets with IPv4 (IPv6 doesn't have raw sockets; you have to use datalink access for that, which Endpoint doesn't currently support). If you want to write your own IP header, use RAW.

    A number of transport-layer protocols that sit on top of IPv4 are available to Endpoint. To write IGMP packets, for example, use RAW_ICMP. This will make the IP header for you, but you have to write the IGMP header.

    RAW_UDP and RAW_ICMP automatically create the UDP or ICMP header for you. See the next topic for using ICMP.

    Send ICMP Messages

    Simply create a RAW_ICMP | CLIENT socket with your destined address, specifying a port number of type,code. For example, to send a "host unreachable" ICMP message to 10.3.2.1:

    Endpoint ep(RAW_ICMP | CLIENT, "10.3.2.1:3,1");
    
    ep.Write("...");
    

    To send a "ping" (ICMP echo request), replace "3,1" with "8,0". See the official IANA ICMP parameters for more information.

    ICMP can be used as a covert channel. See Project Loki: ICMP Tunnelling in Phrack 49, by Alhambra and daemon9 for an article about this steganographic process. ginkgocadx-3.8.7/cadxcore/eventos/000077500000000000000000000000001314736454600171375ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/eventos/eventosginkgo.h000066400000000000000000000032061314736454600221730ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #define ginkgoEVT_Core_ModificacionFichero 1 #define ginkgoEVT_Core_ModificacionImagen 3 #define ginkgoEVT_Core_ModificacionWidget 4 #define ginkgoEVT_Core_Render 5 #define ginkgoEVT_Core_SCGenerated 6 #define ginkgoEVT_Core_MensajesUsuario 7 #define ginkgoEVT_Core_ProgresoComando 9 #define ginkgoEVT_Core_UpdateAvailable 11 #define ginkgoEVT_Core_Views 12 #define ginkgoEVT_Core_HideSplashWindow 18 #define ginkgoEVT_Core_Integration 19 #define ginkgoEVT_Core_HL7SendRequest 20 #define ginkgoEVT_Core_ToolConnected 21 #define ginkgoEVT_Core_ToolIconChanged 22 #define ginkgoEVT_Core_ToolEnabled 23 ///el rango 100-199 esta reservado para el historial #define ginkgoEVT_Core_HistorialSeleccionar 100 #define ginkgoEVT_Core_HistorialAbribleEliminado 102 #define ginkgoEVT_Core_SetFocus 106 ginkgocadx-3.8.7/cadxcore/eventos/hidesplashwindow.h000066400000000000000000000024431314736454600226670ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "eventosginkgo.h" namespace GNC { namespace GCS { namespace Events { class EXTAPI EventHideSplashWindow : public GNC::GCS::Events::IEvent { public: EventHideSplashWindow(GNC::GCS::IVista* pVista = NULL) : GNC::GCS::Events::IEvent(ginkgoEVT_Core_HideSplashWindow, 0, 100, pVista) { m_Nombre = "EventHideSplashWindow"; } ~EventHideSplashWindow() { } virtual void pushInfo(std::ostream& /*out*/) const { } protected: }; } } } ginkgocadx-3.8.7/cadxcore/eventos/integration.h000066400000000000000000000033061314736454600216350ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "eventosginkgo.h" #include #include namespace GNC { namespace GCS { namespace Events { class EXTAPI HL7SendRequestEvent : public GNC::GCS::Events::IEvent { private: std::string m_Message; public: HL7SendRequestEvent() : GNC::GCS::Events::IEvent(ginkgoEVT_Core_HL7SendRequest, 0, 100, NULL) { m_Nombre = "HL7SendRequest"; } HL7SendRequestEvent(const std::string& msg): GNC::GCS::Events::IEvent(ginkgoEVT_Core_HL7SendRequest, 0, 100, NULL) { this->m_Nombre = "HL7SendRequest"; this->m_Message = msg; } ~HL7SendRequestEvent() { } const std::string& GetMessage() const { return m_Message; } virtual void pushInfo(std::ostream& out) const { out << "HL7SendRequest ()"; } }; } } } ginkgocadx-3.8.7/cadxcore/eventos/mensajes.h000066400000000000000000000055501314736454600211220ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "eventosginkgo.h" namespace GNC { namespace GCS { namespace Events { //este evento servir para lanzar mensajes al usuario, en el status bar y en un futuro en el popup window q sea class EXTAPI EventoMensajes : public GNC::GCS::Events::IEvent { public: typedef enum { StatusMessage, PopUpMessage } TipoEventoMensajes; typedef enum { Informacion, Aviso, Error } TipoGravedad; EventoMensajes(GNC::GCS::IVista* pVista, TipoEventoMensajes tipo = StatusMessage, TipoGravedad gravedad = Informacion): GNC::GCS::Events::IEvent(ginkgoEVT_Core_MensajesUsuario,0,100,pVista) { m_Nombre = "Mensajes"; m_tipo = tipo; m_gravedad = gravedad; m_sincrono = true; } EventoMensajes(GNC::GCS::IVista* pVista,const std::string& mensaje, TipoEventoMensajes tipo = StatusMessage, bool sincrono = true, TipoGravedad gravedad = Informacion) : GNC::GCS::Events::IEvent(ginkgoEVT_Core_MensajesUsuario,0,100,pVista) { m_Nombre = "Mensajes"; m_Mensaje = mensaje; m_tipo = tipo; m_gravedad = gravedad; m_sincrono = sincrono; } ~EventoMensajes() { } std::string& GetMensaje() { return m_Mensaje; } TipoEventoMensajes GetTipo() { return m_tipo; } void SetGravedad(TipoGravedad gravedad) { m_gravedad = gravedad; } TipoGravedad GetGravedad() { return m_gravedad; } bool IsSincronoConLaInterfaz() { return m_sincrono; } virtual void pushInfo(std::ostream& out) const { out << "Mensaje: " << m_Mensaje; } protected: std::string m_Mensaje; TipoEventoMensajes m_tipo; TipoGravedad m_gravedad; bool m_sincrono; }; } } } ginkgocadx-3.8.7/cadxcore/eventos/modificacionfichero.h000066400000000000000000000062121314736454600232750ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include "eventosginkgo.h" namespace GNC { namespace GCS { class IStudyContext; namespace Events { class EXTAPI EventoModificacionFichero: public GNC::GCS::Events::IEvent { public: typedef std::list ListaRutas; typedef enum { FicheroGuardado, FicheroModificado, FicheroCerrado } TipoModificacion; EventoModificacionFichero(GNC::GCS::IVista* pVistaModificada = NULL, TipoModificacion tipo = FicheroModificado, GNC::GCS::IVista* pVistaAmbito = NULL):GNC::GCS::Events::IEvent(ginkgoEVT_Core_ModificacionFichero,0,100,pVistaAmbito) { m_pVistaModificada = pVistaModificada; m_tipo = tipo; m_pContexto = NULL; m_Nombre = "ModificacionFichero"; } EventoModificacionFichero(GNC::GCS::IVista* pVistaModificada, IStudyContext* pContexto = NULL, TipoModificacion tipo = FicheroModificado, GNC::GCS::IVista* pVistaAmbito = NULL):GNC::GCS::Events::IEvent(ginkgoEVT_Core_ModificacionFichero,0,100,pVistaAmbito) { m_pVistaModificada = pVistaModificada; m_tipo = tipo; m_pContexto = pContexto; m_Nombre = "ModificacionFichero"; } ~EventoModificacionFichero() { m_pVistaModificada=NULL; m_pContexto = NULL; } TipoModificacion GetTipoEvento() { return m_tipo; } IStudyContext* GetContextoEstudio() { return m_pContexto; } GNC::GCS::IVista* GetVistaModificada() { return m_pVistaModificada; } virtual void pushInfo(std::ostream& out) const { out << "Tipo = "; switch (m_tipo) { case FicheroGuardado: out << "FicheroGuardado"; break; case FicheroModificado: out << "FicheroModificado"; break; case FicheroCerrado: out << "FicheroCerrado"; break; } } protected: GNC::GCS::IVista* m_pVistaModificada; TipoModificacion m_tipo; IStudyContext* m_pContexto; }; } } } ginkgocadx-3.8.7/cadxcore/eventos/modificacionimagen.h000066400000000000000000000240621314736454600231210ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "eventosginkgo.h" class vtkImageData; class vtkGinkgoImageViewer; namespace GNC { namespace GCS { namespace Events { class EXTAPI EventoModificacionImagen : public GNC::GCS::Events::IEvent { public: typedef enum { ZM_CenteredBestFit = 0, ZM_CenteredOriginalSize = 1, } ResetZoomMode; typedef enum { ImagenCargada, ImagenModificada, ImagenRecalibrada, ImagenDescargada, VisualizacionImagenModificada, SliceCambiado, MapaModificado, AnotacionesEstaticasModificadas } TipoModificacion; // El parametro render indica si en el preprocesado de este evento, se debería apilar o no un render EventoModificacionImagen(GNC::GCS::IVista* pVista = NULL, TipoModificacion tipo = ImagenCargada, int sliceAfectado = -1, bool apilarRender = true) : GNC::GCS::Events::IEvent(ginkgoEVT_Core_ModificacionImagen, 0, 100, pVista) { m_Nombre = "ModificacionImagen"; m_SliceAfectado = sliceAfectado; m_Tipo = tipo; m_ApilarRender = apilarRender; m_OldSpacing[0] = m_OldSpacing[1] = m_OldSpacing[2] = 0.0f; m_NewSpacing[0] = m_NewSpacing[1] = m_NewSpacing[2] = 0.0f; m_OldOrigin[0] = m_OldOrigin[1] = m_OldOrigin[2] = 0.0f; m_NewOrigin[0] = m_NewOrigin[1] = m_NewOrigin[2] = 0.0f; m_newWindow = 0.0f; m_newLevel = 0.0f; m_resetWL = false; m_resetBC = false; m_resetCurrentPoint = false; m_resetZoom = false; m_resetZoomMode = ZM_CenteredBestFit; m_autoCalculeWL = false; if (tipo == VisualizacionImagenModificada) { int x = 1; x++; } } ~EventoModificacionImagen() { } virtual void pushInfo(std::ostream& out) const { out << "Tipo = "; switch (m_Tipo) { case ImagenCargada: out << "ImagenCargada"; break; case ImagenModificada: out << "ImagenModificada"; break; case ImagenRecalibrada: out << "ImagenRecalibrada"; break; case ImagenDescargada: out << "ImagenDescargada"; break; case VisualizacionImagenModificada: out << "VisualizacionImagenModificada"; break; case SliceCambiado: out << "SliceCambiado"; break; case MapaModificado: out << "MapaModificado"; break; case AnotacionesEstaticasModificadas: out << "AnotacionesEstaticasModificadas"; break; } out << ", SliceAfectado = " << m_SliceAfectado; if (m_Tipo == ImagenRecalibrada) { out << ", OldSpacing = [ " << m_OldSpacing[0] << ", " << m_OldSpacing[1] << ", " << m_OldSpacing[2] << " ]"; out << ", NewSpacing = [ " << m_NewSpacing[0] << ", " << m_NewSpacing[1] << ", " << m_NewSpacing[2] << " ]"; out << ", OldOrigin = [ " << m_OldOrigin[0] << ", " << m_OldOrigin[1] << ", " << m_OldOrigin[2] << " ]"; out << ", NewOrigin = [ " << m_NewOrigin[0] << ", " << m_NewOrigin[1] << ", " << m_NewOrigin[2] << " ]"; } } inline void SetSlice(int slice) { m_SliceAfectado = slice; } inline int GetSliceAfectado() const { return m_SliceAfectado; } inline bool GetApilarRender() const { return m_ApilarRender; } inline TipoModificacion GetTipo() { return m_Tipo; } inline void GetOldSpacing(double spacing[3]) { spacing[0] = m_OldSpacing[0]; spacing[1] = m_OldSpacing[1]; spacing[2] = m_OldSpacing[2]; } inline double* GetOldSpacing() { return m_OldSpacing; } inline void SetOldSpacing(double spacing[3]) { m_OldSpacing[0] = spacing[0]; m_OldSpacing[1] = spacing[1]; m_OldSpacing[2] = spacing[2]; } inline void GetNewSpacing(double spacing[3]) { spacing[0] = m_NewSpacing[0]; spacing[1] = m_NewSpacing[1]; spacing[2] = m_NewSpacing[2]; } inline double* GetNewSpacing() { return m_NewSpacing; } inline void SetNewSpacing(double spacing[3]) { m_NewSpacing[0] = spacing[0]; m_NewSpacing[1] = spacing[1]; m_NewSpacing[2] = spacing[2]; } inline void GetOldOrigin(double origin[3]) { origin[0] = m_OldOrigin[0]; origin[1] = m_OldOrigin[1]; origin[2] = m_OldOrigin[2]; } inline double* GetOldOrigin() { return m_OldOrigin; } inline void SetOldOrigin(double origin[3]) { m_OldOrigin[0] = origin[0]; m_OldOrigin[1] = origin[1]; m_OldOrigin[2] = origin[2]; } inline void GetNewOrigin(double origin[3]) { origin[0] = m_NewOrigin[0]; origin[1] = m_NewOrigin[1]; origin[2] = m_NewOrigin[2]; } inline double* GetNewOrigin() { return m_NewOrigin; } inline void SetNewOrigin(double origin[3]) { m_NewOrigin[0] = origin[0]; m_NewOrigin[1] = origin[1]; m_NewOrigin[2] = origin[2]; } inline void GetProporcionSpacing(double proporcionSpacing[3]) { proporcionSpacing[0] = m_NewSpacing[0]/m_OldSpacing[0]; proporcionSpacing[1] = m_NewSpacing[1]/m_OldSpacing[1]; proporcionSpacing[2] = m_NewSpacing[2]/m_OldSpacing[2]; } inline void GetDiferenciaOrigin(double diferenciaOrigin[3]) { diferenciaOrigin[0] = m_NewOrigin[0] - m_OldOrigin[0]; diferenciaOrigin[1] = m_NewOrigin[1] - m_OldOrigin[1]; diferenciaOrigin[2] = m_NewOrigin[2] - m_OldOrigin[2]; } inline double GetWindow() { return m_newWindow; } inline void SetWindow(double window) { m_newWindow=window; } inline double GetLevel() { return m_newLevel; } inline void SetLevel(double level) { m_newLevel = level; } inline bool ResetWindowLevel() { return m_resetWL; } inline bool ResetCurrentPoint() { return m_resetCurrentPoint; } inline bool ResetZoom() { return m_resetZoom; } inline bool ResetBrightnessContrast() { return m_resetBC; } inline ResetZoomMode GetResetZoomMode() { return m_resetZoomMode; } inline bool AutoCalculeWindowLevel() { return m_autoCalculeWL; } inline void EnableResetWindowLevel() { m_resetWL = true; } inline void EnableResetBrightnessContrast() { m_resetBC = true; } inline void EnableAutoCalculeWindowLevel() { m_autoCalculeWL = true; } inline void EnableResetCurrentPoint() { m_resetCurrentPoint = true; } inline void EnableResetZoom(ResetZoomMode zoomMode = ZM_CenteredBestFit) { m_resetZoom = true; m_resetZoomMode = zoomMode; } inline void ResetearCalibracion() { m_NewSpacing[0] = m_OldSpacing[0]; m_NewSpacing[1] = m_OldSpacing[1]; m_NewSpacing[2] = m_OldSpacing[2]; m_NewOrigin[0] = m_OldOrigin[0]; m_NewOrigin[1] = m_OldOrigin[1]; m_NewOrigin[2] = m_OldOrigin[2]; } protected: double m_OldSpacing[3]; double m_NewSpacing[3]; double m_OldOrigin[3]; double m_NewOrigin[3]; int m_SliceAfectado; bool m_ApilarRender; TipoModificacion m_Tipo; double m_newWindow; double m_newLevel; bool m_resetWL; bool m_resetBC; bool m_resetCurrentPoint; bool m_resetZoom; bool m_autoCalculeWL; ResetZoomMode m_resetZoomMode; }; } } } ginkgocadx-3.8.7/cadxcore/eventos/modificacionwidget.h000066400000000000000000000044741314736454600231510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "eventosginkgo.h" namespace GNC { namespace GCS { namespace Widgets { class IWidget; } namespace Events { class EXTAPI EventoModificacionWidget : public GNC::GCS::Events::IEvent { public: typedef enum { WidgetCreado, WidgetModificado, WidgetDestruido } TipoModificacion; EventoModificacionWidget(GNC::GCS::IVista* pVista = NULL, TipoModificacion tipo = WidgetModificado, GNC::GCS::Widgets::IWidget* w = NULL) : GNC::GCS::Events::IEvent(ginkgoEVT_Core_ModificacionWidget,0,100,pVista) { m_Nombre = "ModificacionWidget"; m_pWidget = w; m_Tipo = tipo; } ~EventoModificacionWidget() { } virtual void pushInfo(std::ostream& out) const { out << "Tipo = "; switch (m_Tipo) { case WidgetCreado: out << "WidgetCreado"; break; case WidgetModificado: out << "WidgetModificado"; break; case WidgetDestruido: out << "WidgetDestruido"; break; } } GNC::GCS::Widgets::IWidget* GetWidget() { return m_pWidget; } TipoModificacion GetTipo() { return m_Tipo; } protected: TipoModificacion m_Tipo; GNC::GCS::Widgets::IWidget* m_pWidget; }; } } } ginkgocadx-3.8.7/cadxcore/eventos/progresocomando.h000066400000000000000000000057371314736454600225250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "eventosginkgo.h" namespace GNC { namespace GCS { class IComando; namespace Events { class EXTAPI EventoProgresoComando : public GNC::GCS::Events::IEvent { public: typedef enum { TEP_Iniciado, TEP_Progreso, TEP_Finalizado, TEP_Unknown } TipoEventoProgreso; EventoProgresoComando(IComando* pComando = NULL, TipoEventoProgreso tipo = TEP_Unknown, float progresoNormalizado = 0.0f, const std::string& texto = "") : GNC::GCS::Events::IEvent(ginkgoEVT_Core_ProgresoComando, 0, 100, NULL) { m_Nombre = "ProgresoComando"; m_pComando = pComando; m_Tipo = tipo; m_ProgresoNormalizado = progresoNormalizado; m_Texto = texto; } ~EventoProgresoComando() { } virtual void pushInfo(std::ostream& out) const { out << "Tipo = "; switch (m_Tipo) { case TEP_Iniciado: out << "Iniciado"; break; case TEP_Progreso: out << "Progreso"; break; case TEP_Finalizado: out << "Finalizado"; break; case TEP_Unknown: default: out << "Unknown"; break; } out << ", Progreso = " << m_ProgresoNormalizado << ", Texto = " << m_Texto << ", Comando = " << m_pComando; } IComando* GetComando() const { return m_pComando; } TipoEventoProgreso GetTipo() const { return m_Tipo; } float GetProgresoNormalizado() const { return m_ProgresoNormalizado; } const std::string& GetTexto() const { return m_Texto; } protected: GNC::GCS::IComando* m_pComando; TipoEventoProgreso m_Tipo; float m_ProgresoNormalizado; std::string m_Texto; }; } } } ginkgocadx-3.8.7/cadxcore/eventos/render.h000066400000000000000000000026121314736454600205700ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "eventosginkgo.h" namespace GNC { namespace GCS { namespace Events { class EXTAPI EventoRender : public GNC::GCS::Events::IEvent { public: EventoRender(GNC::GCS::IVista* pVista, int sliceAfectado = -1) : GNC::GCS::Events::IEvent(ginkgoEVT_Core_Render,0,100,pVista) { m_Nombre = "Render"; m_SliceAfectado = sliceAfectado; } ~EventoRender() { } virtual void pushInfo(std::ostream& out) const { out << "Slice = " << m_SliceAfectado; } protected: int m_SliceAfectado; }; } } } ginkgocadx-3.8.7/cadxcore/eventos/scgenerated.h000066400000000000000000000032301314736454600215720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "eventosginkgo.h" namespace GNC { namespace GCS { class IVista; namespace Events { class EXTAPI SCGeneratedEvent : public GNC::GCS::Events::IEvent { public: SCGeneratedEvent(GNC::GCS::IVista* pView = NULL, const std::list& newSeriesId = std::list()) : GNC::GCS::Events::IEvent(ginkgoEVT_Core_SCGenerated, 0, 100, NULL), m_pView(pView), m_seriesId(newSeriesId) { m_Nombre = "SCGeneratedEvent"; } ~SCGeneratedEvent() { } const std::list& GetSeriesId() { return m_seriesId; } GNC::GCS::IVista* GetView() { return m_pView; } virtual void pushInfo(std::ostream& /*out*/) const { } private: GNC::GCS::IVista* m_pView; std::list m_seriesId; }; } } } ginkgocadx-3.8.7/cadxcore/eventos/toolevents.h000066400000000000000000000077101314736454600215170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "eventosginkgo.h" class wxBitmap; namespace GNC { namespace GCS { class ITool; class IToolController; namespace Events { class EXTAPI ToolConnectedEvent : public GNC::GCS::Events::IEvent { private: bool connected; GNC::GCS::ITool* pTool; GNC::GCS::IToolController* pToolBar; public: ToolConnectedEvent() : GNC::GCS::Events::IEvent(ginkgoEVT_Core_ToolConnected, 0, 100, NULL) { connected = false; pTool = NULL; pToolBar = NULL; } ToolConnectedEvent(bool connected, GNC::GCS::ITool* pTool, GNC::GCS::IToolController* pToolBar): GNC::GCS::Events::IEvent(ginkgoEVT_Core_ToolConnected, 0, 100, NULL) { this->connected = connected; this->pTool = pTool; this->pToolBar = pToolBar; } ~ToolConnectedEvent() { } bool IsConnected() { return connected; } GNC::GCS::ITool* GetTool() { return pTool; } GNC::GCS::IToolController* GetToolBar() { return pToolBar; } }; class EXTAPI ToolEnabledEvent : public GNC::GCS::Events::IEvent { private: bool enabled; GNC::GCS::ITool* pTool; GNC::GCS::IToolController* pToolBar; public: ToolEnabledEvent() : GNC::GCS::Events::IEvent(ginkgoEVT_Core_ToolEnabled, 0, 100, NULL) { enabled = false; pTool = NULL; pToolBar = NULL; } ToolEnabledEvent(bool enabled, GNC::GCS::ITool* pTool, GNC::GCS::IToolController* pToolBar): GNC::GCS::Events::IEvent(ginkgoEVT_Core_ToolEnabled, 0, 100, NULL) { this->enabled = enabled; this->pTool = pTool; this->pToolBar = pToolBar; } ~ToolEnabledEvent() { } bool IsEnabled() { return enabled; } GNC::GCS::ITool* GetTool() { return pTool; } GNC::GCS::IToolController* GetToolBar() { return pToolBar; } }; class EXTAPI ChangeToolIconEvent : public GNC::GCS::Events::IEvent { private: const wxBitmap* pBitmap; GNC::GCS::ITool* pTool; GNC::GCS::IToolController* pToolBar; public: ChangeToolIconEvent() : GNC::GCS::Events::IEvent(ginkgoEVT_Core_ToolIconChanged, 0, 100, NULL) { pBitmap = NULL; pTool = NULL; pToolBar = NULL; } ChangeToolIconEvent(const wxBitmap* bmp, GNC::GCS::ITool* pTool, GNC::GCS::IToolController* pToolBar): GNC::GCS::Events::IEvent(ginkgoEVT_Core_ToolIconChanged, 0, 100, NULL),pBitmap(bmp) { this->pTool = pTool; this->pToolBar = pToolBar; } ~ChangeToolIconEvent() { } const wxBitmap* GetBitmap() { return pBitmap; } GNC::GCS::ITool* GetTool() { return pTool; } GNC::GCS::IToolController* GetToolBar() { return pToolBar; } }; } } } ginkgocadx-3.8.7/cadxcore/eventos/updateavailable.h000066400000000000000000000051241314736454600224350ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "eventosginkgo.h" namespace GNC { namespace GCS { namespace Events { class EXTAPI EventoUpdateAvailable : public GNC::GCS::Events::IEvent { private: std::string m_VersionString; int m_Revision; std::string m_Description; std::string m_URL; bool m_Informar; public: EventoUpdateAvailable() : GNC::GCS::Events::IEvent(ginkgoEVT_Core_UpdateAvailable, 0, 100, NULL), m_VersionString(), m_Revision(0), m_Description(), m_URL(), m_Informar(false) { m_Nombre = "UpdateAvailable"; } EventoUpdateAvailable(std::string& versionString, int revision, const std::string& description, const std::string& url, bool informar): GNC::GCS::Events::IEvent(ginkgoEVT_Core_UpdateAvailable, 0, 100, NULL), m_VersionString(versionString), m_Revision(revision), m_Description(description), m_URL(url), m_Informar(informar) { m_Nombre = "UpdateAvailable"; } ~EventoUpdateAvailable() { } const std::string& GetURL() { return m_URL; } bool Informar() { return m_Informar; } int GetRevision() { return m_Revision; } const std::string& GetVersionString() { return m_VersionString; } const std::string& GetDescription() { return m_Description; } virtual void pushInfo(std::ostream& out) const { out << "UpdateAvailable (" << m_VersionString << ") from " << m_URL; } }; } } } ginkgocadx-3.8.7/cadxcore/eventos/views.h000066400000000000000000000033021314736454600204430ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "eventosginkgo.h" namespace GNC { namespace GCS { class IVista; namespace Events { class EXTAPI EventView : public GNC::GCS::Events::IEvent { public: typedef enum { Creation, Initialized, Destruction } EventViewType; EventView(GNC::GCS::IVista* pView = NULL, EventViewType type = Creation) : GNC::GCS::Events::IEvent(ginkgoEVT_Core_Views, 0, 100, NULL) { m_Nombre = "EventView"; m_pView = pView; m_type = type; } ~EventView() { } EventViewType GetType() { return m_type; } GNC::GCS::IVista* GetView() { return m_pView; } virtual void pushInfo(std::ostream& /*out*/) const { } private: GNC::GCS::IVista* m_pView; EventViewType m_type; }; } } } ginkgocadx-3.8.7/cadxcore/export/000077500000000000000000000000001314736454600167755ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/export/contracts/000077500000000000000000000000001314736454600207755ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/export/contracts/ipixelsbluringcontract.cpp000066400000000000000000000053021314736454600262770ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ipixelsbluringcontract.h" #include

    #include #include #include #include #include GNC::GCS::IPixelsBluringContract::IPixelsBluringContract() : IWidgetsContract() { } GNC::GCS::IPixelsBluringContract::~IPixelsBluringContract() { } void GNC::GCS::IPixelsBluringContract::Setup(const std::string& modality) { if (GetManager() != NULL && GetManager()->GetVista() != NULL) { GNC::GCS::Ptr ptr = GNC::GCS::ModalitySettingsController::Instance()->getModalitySettings(modality); if (ptr.IsValid()) { int interpolationMode = VTK_LINEAR_INTERPOLATION; switch(ptr->getInterpolationMode()) { case GNC::GCS::DefaultModalitySettings::TIM_LINEAR: interpolationMode = VTK_LINEAR_INTERPOLATION; break; case GNC::GCS::DefaultModalitySettings::TIM_NEAREST_NEIGHBOUR: interpolationMode = VTK_NEAREST_INTERPOLATION; break; case GNC::GCS::DefaultModalitySettings::TIM_CUBIC: // interpolationMode = VTK_CUBIC_INTERPOLATION; interpolationMode = 2;//en linux no encuentra cubic break; } GNC::GCS::IWidgetsContract::TViewerList list; GetAllViewers(list); for (GNC::GCS::IWidgetsContract::TViewerList::iterator it = list.begin(); it != list.end(); ++it) { vtkGinkgoImageViewer* pW = (*it); pW->SetInterpolationMode(interpolationMode); } } } } ginkgocadx-3.8.7/cadxcore/export/contracts/ipixelsbluringcontract.h000066400000000000000000000022011314736454600257370ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include namespace GIL { namespace DICOM { class DicomDataset; } } namespace GNC { namespace GCS { class EXTAPI IPixelsBluringContract : public IWidgetsContract { public: IPixelsBluringContract(); ~IPixelsBluringContract(); virtual void Setup(const std::string& modality); }; } } ginkgocadx-3.8.7/cadxcore/export/contracts/ipixelsbluringcontractable.cpp000066400000000000000000000027121314736454600271250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ipixelsbluringcontractable.h" #include GNC::GCS::IPixelsBluringContractable::IPixelsBluringContractable() { PixelsBluringContract = NULL; } GNC::GCS::IPixelsBluringContractable::~IPixelsBluringContractable() { } bool GNC::GCS::IPixelsBluringContractable::IsValidContract(IContract* contract) { GNC::GCS::IPixelsBluringContract* pWContract = dynamic_cast(contract); return pWContract != NULL; } void GNC::GCS::IPixelsBluringContractable::Register(IContract* contract) { GNC::GCS::IContractable::Register(contract); PixelsBluringContract = static_cast(contract); } ginkgocadx-3.8.7/cadxcore/export/contracts/ipixelsbluringcontractable.h000066400000000000000000000022641314736454600265740ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include namespace GNC { namespace GCS { class IPixelsBluringContract; class EXTAPI IPixelsBluringContractable: public GNC::GCS::IContractable { public: IPixelsBluringContractable(); virtual ~IPixelsBluringContractable(); virtual bool IsValidContract(IContract* contract); virtual void Register(IContract* contract); protected: GNC::GCS::IPixelsBluringContract* PixelsBluringContract; }; } } ginkgocadx-3.8.7/cadxcore/export/contracts/irulecontract.cpp000066400000000000000000000015451314736454600243640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "irulecontract.h" GNC::GCS::IRuleContract::IRuleContract() { } GNC::GCS::IRuleContract::~IRuleContract() { } ginkgocadx-3.8.7/cadxcore/export/contracts/irulecontract.h000066400000000000000000000021131314736454600240210ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IRULECONTRACT_H #define IRULECONTRACT_H #include #include #include namespace GNC { namespace GCS { class EXTAPI IRuleContract : public IWidgetsContract { public: IRuleContract(); ~IRuleContract(); virtual bool SupportsCallibration() = 0; }; } } #endif ginkgocadx-3.8.7/cadxcore/export/contracts/irulecontractable.cpp000066400000000000000000000025251314736454600252070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "irulecontractable.h" #include GNC::GCS::IRuleContractable::IRuleContractable() { RuleContract = NULL; } GNC::GCS::IRuleContractable::~IRuleContractable() { } bool GNC::GCS::IRuleContractable::IsValidContract(IContract* contract) { GNC::GCS::IRuleContract* pWContract = dynamic_cast(contract); return pWContract != NULL; } void GNC::GCS::IRuleContractable::Register(IContract* contract) { GNC::GCS::IContractable::Register(contract); RuleContract = static_cast(contract); } ginkgocadx-3.8.7/cadxcore/export/contracts/irulecontractable.h000066400000000000000000000021761314736454600246560ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include namespace GNC { namespace GCS { class IRuleContract; class EXTAPI IRuleContractable: public GNC::GCS::IContractable { public: IRuleContractable(); virtual ~IRuleContractable(); virtual bool IsValidContract(IContract* contract); virtual void Register(IContract* contract); protected: GNC::GCS::IRuleContract* RuleContract; }; } } ginkgocadx-3.8.7/cadxcore/export/contracts/islidercontract.cpp000066400000000000000000000017471314736454600247030ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "islidercontract.h" GNC::GCS::ISliderContract::ISliderContract() { } GNC::GCS::ISliderContract::~ISliderContract() { } void GNC::GCS::ISliderContract::GoToNextSeries() const { } void GNC::GCS::ISliderContract::GoToPrevSeries() const { } ginkgocadx-3.8.7/cadxcore/export/contracts/islidercontract.h000066400000000000000000000024151314736454600243410ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ISLIDERCONTRACT_H #define ISLIDERCONTRACT_H #include #include #include namespace GNC { namespace GCS { class EXTAPI ISliderContract : public IWidgetsContract { public: ISliderContract(); ~ISliderContract(); virtual void SetSlice(int slicenum) = 0; virtual int GetSlice() const = 0; virtual int GetNumberOfSlices() const = 0; virtual void GoToNextSeries() const; virtual void GoToPrevSeries() const; }; } } #endif ginkgocadx-3.8.7/cadxcore/export/contracts/islidercontractable.cpp000066400000000000000000000025571314736454600255270ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "islidercontractable.h" #include GNC::GCS::ISliderContractable::ISliderContractable() { SliderContract = NULL; } GNC::GCS::ISliderContractable::~ISliderContractable() { } bool GNC::GCS::ISliderContractable::IsValidContract(IContract* contract) { GNC::GCS::ISliderContract* pWContract = dynamic_cast(contract); return pWContract != NULL; } void GNC::GCS::ISliderContractable::Register(IContract* contract) { GNC::GCS::IContractable::Register(contract); SliderContract = static_cast(contract); } ginkgocadx-3.8.7/cadxcore/export/contracts/islidercontractable.h000066400000000000000000000022131314736454600251610ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include namespace GNC { namespace GCS { class ISliderContract; class EXTAPI ISliderContractable: public GNC::GCS::IContractable { public: ISliderContractable(); virtual ~ISliderContractable(); virtual bool IsValidContract(IContract* contract); virtual void Register(IContract* contract); protected: GNC::GCS::ISliderContract* SliderContract; }; } } ginkgocadx-3.8.7/cadxcore/export/contracts/iviewcontract.cpp000066400000000000000000000015431314736454600243650ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iviewcontract.h" GNC::GCS::IViewContract::IViewContract() { } GNC::GCS::IViewContract::~IViewContract() { } ginkgocadx-3.8.7/cadxcore/export/contracts/iviewcontract.h000066400000000000000000000020371314736454600240310ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IVIEWCONTRACT_H #define IVIEWCONTRACT_H #include namespace GNC { namespace GCS { class IVista; class EXTAPI IViewContract : public IContract { public: IViewContract(); ~IViewContract(); virtual GNC::GCS::IVista* GetView() = 0; protected: }; } } #endif ginkgocadx-3.8.7/cadxcore/export/contracts/iviewcontractable.cpp000066400000000000000000000025221314736454600252070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iviewcontractable.h" #include GNC::GCS::IViewContractable::IViewContractable() { ViewContract = NULL; } GNC::GCS::IViewContractable::~IViewContractable() { } bool GNC::GCS::IViewContractable::IsValidContract(IContract* contract) { GNC::GCS::IViewContract* pWContract = dynamic_cast(contract); return pWContract != NULL; } void GNC::GCS::IViewContractable::Register(IContract* contract) { GNC::GCS::IContractable::Register(contract); ViewContract = static_cast(contract); } ginkgocadx-3.8.7/cadxcore/export/contracts/iviewcontractable.h000066400000000000000000000021771314736454600246620ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include namespace GNC { namespace GCS { class IViewContract; class EXTAPI IViewContractable: public GNC::GCS::IContractable { public: IViewContractable(); virtual ~IViewContractable(); virtual bool IsValidContract(IContract* contract); virtual void Register(IContract* contract); protected: GNC::GCS::IViewContract* ViewContract; }; } } ginkgocadx-3.8.7/cadxcore/export/contracts/iwidgetscontract.cpp000066400000000000000000000043321314736454600250600ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iwidgetscontract.h" #include #include #include #include #include GNC::GCS::IWidgetsContract::IWidgetsContract() { } GNC::GCS::IWidgetsContract::~IWidgetsContract() { } void GNC::GCS::IWidgetsContract::GetAllViewers(TViewerList& viewerList) { viewerList.push_back(GetViewerActivo()); } bool GNC::GCS::IWidgetsContract::Inicializado() { return ( (GetManager() != NULL) && (GetViewerActivo() != NULL) ); } //Anotation section //this method processes special keys like: ${VOLUME.IDX} ${SLICE.WIDTH}... std::string GNC::GCS::IWidgetsContract::GetAnnotationValue(GNC::GCS::Contexto3D* c, const std::string& key) { return GetTagValue(c, key); } //return dicom tag value from key std::string GNC::GCS::IWidgetsContract::GetTagValue(GNC::GCS::Contexto3D* /*c*/, const std::string& key) { GNC::GCS::IWidgetsManager* pManager = GetManager(); if (pManager != NULL) { std::string value; if (pManager->GetVista()->GetEstudio()->GetTagActiveImage(key, value)) { return value; } } return ""; } vtkGinkgoImageViewer* GNC::GCS::IWidgetsContract::GetViewerActivo() { GNC::GCS::IWidgetsManager* pManager = GetManager(); if (pManager != NULL) { return pManager->GetRendererActivo()->m_pImageViewer; } else { return NULL; } } ginkgocadx-3.8.7/cadxcore/export/contracts/iwidgetscontract.h000066400000000000000000000033461314736454600245310ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IWIDGETSCONTRACT_H #define IWIDGETSCONTRACT_H #include #include #include class vtkGinkgoImageViewer; namespace GNC { namespace GCS { class IVista; class IWidgetsManager; } } namespace GNC { namespace GCS { class Contexto3D; class EXTAPI IWidgetsContract : public IContract { public: typedef std::list TViewerList; IWidgetsContract(); ~IWidgetsContract(); virtual GNC::GCS::IWidgetsManager* GetManager() = 0; virtual void GetAllViewers(TViewerList& viewerList); bool Inicializado(); //Anotation section //this method processes special keys like: ${VOLUME.IDX} ${SLICE.WIDTH}... virtual std::string GetAnnotationValue(GNC::GCS::Contexto3D* c, const std::string& key); //return dicom tag value from key virtual std::string GetTagValue(GNC::GCS::Contexto3D* c, const std::string& key); vtkGinkgoImageViewer* GetViewerActivo(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/contracts/iwidgetscontractable.cpp000066400000000000000000000025741314736454600257120ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iwidgetscontractable.h" #include GNC::GCS::IWidgetsContractable::IWidgetsContractable() { WidgetsContract = NULL; } GNC::GCS::IWidgetsContractable::~IWidgetsContractable() { } bool GNC::GCS::IWidgetsContractable::IsValidContract(IContract* contract) { GNC::GCS::IWidgetsContract* pWContract = dynamic_cast(contract); return pWContract != NULL; } void GNC::GCS::IWidgetsContractable::Register(IContract* contract) { GNC::GCS::IContractable::Register(contract); WidgetsContract = static_cast(contract); } ginkgocadx-3.8.7/cadxcore/export/contracts/iwidgetscontractable.h000066400000000000000000000022211314736454600253440ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include namespace GNC { namespace GCS { class IWidgetsContract; class EXTAPI IWidgetsContractable: public GNC::GCS::IContractable { public: IWidgetsContractable(); virtual ~IWidgetsContractable(); virtual bool IsValidContract(IContract* contract); virtual void Register(IContract* contract); protected: GNC::GCS::IWidgetsContract* WidgetsContract; }; } } ginkgocadx-3.8.7/cadxcore/export/contracts/iwindowlayoutcontract.cpp000066400000000000000000000035531314736454600261630ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iwindowlayoutcontract.h" GNC::GCS::IWindowLayoutContract::IWindowLayoutContract() { m_MinSlice = 0; m_MaxSlice = 0; } GNC::GCS::IWindowLayoutContract::~IWindowLayoutContract() { } void GNC::GCS::IWindowLayoutContract::Setup(int minSlice, int maxSlice) { m_MinSlice = minSlice; m_MaxSlice = maxSlice; } void GNC::GCS::IWindowLayoutContract::AddRow() { int filas = GetRows()+1; int columnas = GetColumns(); SetWindowLayout(filas,columnas); } void GNC::GCS::IWindowLayoutContract::AddColumn() { int filas = GetRows(); int columnas = GetColumns()+1; SetWindowLayout(filas,columnas); } void GNC::GCS::IWindowLayoutContract::DelRow() { int filas = GetRows()-1; int columnas = GetColumns(); SetWindowLayout(filas,columnas); } void GNC::GCS::IWindowLayoutContract::DelColumn() { int filas = GetRows(); int columnas = GetColumns()-1; SetWindowLayout(filas,columnas); } void GNC::GCS::IWindowLayoutContract::SplitActive(bool ) { } bool GNC::GCS::IWindowLayoutContract::SupportsSplit() { return false; } ginkgocadx-3.8.7/cadxcore/export/contracts/iwindowlayoutcontract.h000066400000000000000000000027651314736454600256340ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IWINDOWLAYOUTCONTRACT_H #define IWINDOWLAYOUTCONTRACT_H #include #include #include namespace GNC { namespace GCS { class EXTAPI IWindowLayoutContract : public IContract { public: IWindowLayoutContract(); ~IWindowLayoutContract(); virtual void Setup(int minSlice, int maxSlice); virtual void AddRow(); virtual void AddColumn(); virtual void DelRow(); virtual void DelColumn(); virtual void SetWindowLayout(int filas, int columnas) = 0; virtual int GetColumns() = 0; virtual int GetRows() = 0; virtual void SplitActive(bool vertically); virtual bool SupportsSplit(); int m_MinSlice; int m_MaxSlice; }; } } #endif ginkgocadx-3.8.7/cadxcore/export/contracts/iwindowlayoutcontractable.cpp000066400000000000000000000026731314736454600270110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iwindowlayoutcontractable.h" #include GNC::GCS::IWindowLayoutContractable::IWindowLayoutContractable() { WindowLayoutContract = NULL; } GNC::GCS::IWindowLayoutContractable::~IWindowLayoutContractable() { } bool GNC::GCS::IWindowLayoutContractable::IsValidContract(IContract* contract) { GNC::GCS::IWindowLayoutContract* pWContract = dynamic_cast(contract); return pWContract != NULL; } void GNC::GCS::IWindowLayoutContractable::Register(IContract* contract) { GNC::GCS::IContractable::Register(contract); WindowLayoutContract = static_cast(contract); } ginkgocadx-3.8.7/cadxcore/export/contracts/iwindowlayoutcontractable.h000066400000000000000000000022571314736454600264540ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include namespace GNC { namespace GCS { class IWindowLayoutContract; class EXTAPI IWindowLayoutContractable: public GNC::GCS::IContractable { public: IWindowLayoutContractable(); virtual ~IWindowLayoutContractable(); virtual bool IsValidContract(IContract* contract); virtual void Register(IContract* contract); protected: GNC::GCS::IWindowLayoutContract* WindowLayoutContract; }; } } ginkgocadx-3.8.7/cadxcore/export/contracts/iwindowlevelcontract.cpp000066400000000000000000000232421314736454600257520ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iwindowlevelcontract.h" #include #include #include #include
    #include #include #include GNC::GCS::IWindowLevelContract::WindowLevel::WindowLevel() { m_label = std::string(""); m_window = 0; m_level = 0; m_type = TWLT_USER_DEFINED; } GNC::GCS::IWindowLevelContract::WindowLevel::WindowLevel(const std::string& label, const double& window,const double& level, TWL_TYPE type) { m_label = label; m_window = window; m_level = level; m_type = type; } GNC::GCS::IWindowLevelContract::WindowLevel::WindowLevel(const WindowLevel& otro) { m_window = otro.m_window; m_level = otro.m_level; m_label = otro.m_label; m_type = otro.m_type; } GNC::GCS::IWindowLevelContract::WindowLevel& GNC::GCS::IWindowLevelContract::WindowLevel::operator=(const WindowLevel& otro) { m_label = otro.m_label; m_window = otro.m_window; m_level = otro.m_level; m_type = otro.m_type; return *this; } GNC::GCS::IWindowLevelContract::IWindowLevelContract() : IWidgetsContract() { } GNC::GCS::IWindowLevelContract::~IWindowLevelContract() { } bool GNC::GCS::IWindowLevelContract::HasCurrentWindowLevel() { return !GetWindowLevelList().empty(); } void GNC::GCS::IWindowLevelContract::SetUserDefinedWindowLevel(double window, double level) { if (GetWindowLevelList().size() == 0 || (GetWindowLevelList().size() > 0 && GetWindowLevelList().back().m_type != WindowLevel::TWLT_USER_DEFINED)) { GetWindowLevelList().push_back(WindowLevel("USER_DEFINED", window, level, WindowLevel::TWLT_USER_DEFINED)); } else { GetWindowLevelList().back().m_window = window; GetWindowLevelList().back().m_level = level; } SetLabelCurrent(GetWindowLevelList().back().m_label); } GNC::GCS::IWindowLevelContract::WindowLevel GNC::GCS::IWindowLevelContract::GetCurrentWindowLevel() { for (ListaWindowLevels::const_iterator it = GetWindowLevelList().begin(); it != GetWindowLevelList().end(); ++it) { if ((*it).m_label == GetLabelCurrent()) { return (*it); } } if (GetWindowLevelList().size() > 0) { SetLabelCurrent(GetWindowLevelList().front().m_label); return GetWindowLevelList().front(); } else { WindowLevel wl("",0,0,WindowLevel::TWLT_USER_DEFINED); return wl; } } bool GNC::GCS::IWindowLevelContract::HasDefaultWindowLevel() { bool resultado = false; for (ListaWindowLevels::const_iterator it = GetWindowLevelList().begin(); it != GetWindowLevelList().end(); ++it) { resultado = resultado || (*it).m_type != WindowLevel::TWLT_USER_DEFINED; } return resultado; } GNC::GCS::IWindowLevelContract::WindowLevel GNC::GCS::IWindowLevelContract::GetAndSetDefaultWindowLevel() { for (ListaWindowLevels::const_iterator it = GetWindowLevelList().begin(); it != GetWindowLevelList().end(); ++it) { if ((*it).m_type != WindowLevel::TWLT_USER_DEFINED) { SetLabelCurrent((*it).m_label); return (*it); } } WindowLevel wl("",0,0,WindowLevel::TWLT_USER_DEFINED); return wl; } void GNC::GCS::IWindowLevelContract::RemoveUserDefined() { ListaWindowLevels listaTemp; for (ListaWindowLevels::iterator it = GetWindowLevelList().begin(); it != GetWindowLevelList().end(); ++it) { if ((*it).m_type != WindowLevel::TWLT_USER_DEFINED) { listaTemp.push_back((*it)); } } GetWindowLevelList() = listaTemp; } void GNC::GCS::IWindowLevelContract::Setup(const GIL::DICOM::DicomDataset& base) { //se guardan los user defined ListaWindowLevels listaTemp; for (ListaWindowLevels::iterator it = GetWindowLevelList().begin(); it != GetWindowLevelList().end(); ++it) { if ((*it).m_type == WindowLevel::TWLT_USER_DEFINED) { listaTemp.push_back((*it)); } } GetWindowLevelList().clear(); //se pillan los window levels double level = 0.0f; double window = 0.0f; //it's necessary because if there isn't current window level you have to set in this order: // if current is set current // wl of the hanging protocol // wl of the file std::string labelCurrent; std::string label(""); std::string levelStr; std::string windowStr; std::string labelStr; std::string modality; base.getTag(std::string("0028|1050"),levelStr); base.getTag(std::string("0028|1051"),windowStr); base.getTag(std::string("0028|1055"),labelStr); base.getTag(std::string("0008|0060"),modality); bool wlValido = true; if ( levelStr.empty() || windowStr.empty() ) { wlValido = false; } else { while(levelStr.size()>0) { std::istringstream issl(levelStr); issl >> level; std::istringstream issw(windowStr); issw >> window; if (window == 0.0f) { wlValido = false; } if(labelStr.find_first_of('\\')!=std::string::npos) { label = labelStr.substr(0,labelStr.find_first_of('\\')); } else if(labelStr.size()>0) { label = labelStr; } else { std::ostringstream ostr; ostr << "WindowLevel" << GetWindowLevelList().size(); label = ostr.str(); } if(wlValido) { if (labelCurrent.empty()) { labelCurrent = label; } WindowLevel wl(label,window,level, WindowLevel::TWLT_FILE); GetWindowLevelList().push_back(wl); } if(levelStr.find_first_of('\\')!=std::string::npos) { levelStr = levelStr.substr(levelStr.find_first_of('\\')+1,levelStr.size()-1); windowStr = windowStr.substr(windowStr.find_first_of('\\')+1,windowStr.size()-1); if(labelStr.find_first_of('\\')!=std::string::npos) { labelStr = labelStr.substr(labelStr.find_first_of('\\')+1,labelStr.size()-1); } } else { break; } } } GNC::GCS::Ptr ptr = GNC::GCS::ModalitySettingsController::Instance()->getModalitySettings(modality); if (ptr.IsValid()) { for (GNC::GCS::DefaultModalitySettings::TListOfWLSettings::const_iterator it = ptr->getWLSettings().begin(); it != ptr->getWLSettings().end(); ++it) { GetWindowLevelList().push_back(WindowLevel((*it)->getLabel(), (*it)->getWindow(), (*it)->getLevel(), WindowLevel::TWLT_PREDEFINED)); } if (ptr->getInitialWindowLevelLabel().compare(GNC::GCS::DefaultModalitySettings::getDefaultWindowLevelLabel()) != 0) { if (ptr->getInitialWindowLevelLabel().compare(GNC::GCS::DefaultModalitySettings::getAutocalculateWindowLevelLabel()) == 0) { if (GetViewerActivo() != NULL) { DoAutoCalculateWindowLevel(); } } else { labelCurrent = ptr->getInitialWindowLevelLabel(); } } } //se meten si es necesario los user defined for (ListaWindowLevels::iterator it = listaTemp.begin(); it != listaTemp.end(); ++it) { GetWindowLevelList().push_back((*it)); } //sets current... if (GetLabelCurrent().empty()) { SetLabelCurrent(labelCurrent); } } double GNC::GCS::IWindowLevelContract::GetCurrentWindow() { if (GetViewerActivo() != NULL) { return GetViewerActivo()->GetWindow(); } else { return 0; } } double GNC::GCS::IWindowLevelContract::GetCurrentLevel() { if (GetViewerActivo() != NULL) { return GetViewerActivo()->GetLevel(); } else { return 0; } } ginkgocadx-3.8.7/cadxcore/export/contracts/iwindowlevelcontract.h000066400000000000000000000053221314736454600254160ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IWINDOWLEVELCONTRACT_H #define IWINDOWLEVELCONTRACT_H #include #include #include #include namespace GIL { namespace DICOM { class DicomDataset; } } namespace GNC { namespace GCS { class EXTAPI IWindowLevelContract : public IWidgetsContract { public: class EXTAPI WindowLevel { public: typedef enum TWL_TYPE { TWLT_FILE, TWLT_PREDEFINED, TWLT_USER_DEFINED } TWL_TYPE; WindowLevel(); WindowLevel(const std::string& label, const double& window,const double& level, TWL_TYPE type); WindowLevel(const WindowLevel& otro); WindowLevel& operator=(const WindowLevel& otro); TWL_TYPE m_type; std::string m_label; double m_window; double m_level; }; typedef std::vector ListaWindowLevels; public: IWindowLevelContract(); ~IWindowLevelContract(); virtual bool HasCurrentWindowLevel() ; virtual void SetUserDefinedWindowLevel(double window, double level); virtual WindowLevel GetCurrentWindowLevel(); virtual bool HasDefaultWindowLevel(); virtual WindowLevel GetAndSetDefaultWindowLevel(); virtual void RemoveUserDefined(); virtual void Setup(const GIL::DICOM::DicomDataset& base); virtual ListaWindowLevels& GetWindowLevelList() = 0; virtual std::string GetLabelCurrent() = 0; virtual void SetLabelCurrent(const std::string& labelCurrent) = 0; virtual void DoAutoCalculateWindowLevel() = 0; virtual void DoResetWindowLevel() = 0; virtual void DoSetWindowLevel(double window, double level) = 0; virtual double GetCurrentWindow(); virtual double GetCurrentLevel(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/contracts/iwindowlevelcontractable.cpp000066400000000000000000000026601314736454600265770ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iwindowlevelcontractable.h" #include GNC::GCS::IWindowLevelContractable::IWindowLevelContractable() { WindowLevelContract = NULL; } GNC::GCS::IWindowLevelContractable::~IWindowLevelContractable() { } bool GNC::GCS::IWindowLevelContractable::IsValidContract(IContract* contract) { GNC::GCS::IWindowLevelContract* pWContract = dynamic_cast(contract); return pWContract != NULL; } void GNC::GCS::IWindowLevelContractable::Register(IContract* contract) { GNC::GCS::IContractable::Register(contract); WindowLevelContract = static_cast(contract); } ginkgocadx-3.8.7/cadxcore/export/contracts/iwindowlevelcontractable.h000066400000000000000000000022501314736454600262370ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include namespace GNC { namespace GCS { class IWindowLevelContract; class EXTAPI IWindowLevelContractable: public GNC::GCS::IContractable { public: IWindowLevelContractable(); virtual ~IWindowLevelContractable(); virtual bool IsValidContract(IContract* contract); virtual void Register(IContract* contract); protected: GNC::GCS::IWindowLevelContract* WindowLevelContract; }; } } ginkgocadx-3.8.7/cadxcore/export/tagsprivadoscomunes.h000066400000000000000000000022231314736454600232450ustar00rootroot00000000000000/* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once //tags privados comunes a todos los diagnosticos #define UID_TAGS_PRIVADOS_COMUNES "METAEMOTION GINKGO" #define TAG_KEY_IMAGE 0x1 #define TAG_WIDGETS 0xb #define TAG_XML_INTEGRACION 0xa //en estos tags va la info relacionada con los informes en general #define UID_TAGS_PRIVADOS_INFORME "METAEMOTION GINKGO DIAGNOSTIC" #define TAG_LISTA_COMPROMISOS 0x1 #define TAG_LISTA_COMENTARIOS 0x2 ginkgocadx-3.8.7/cadxcore/export/tools/000077500000000000000000000000001314736454600201355ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/export/tools/iaddfiletohistorytool.cpp000066400000000000000000000021401314736454600252620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iaddfiletohistorytool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IAddFileToHistory::ID = HCore_AddFileToHistory; GNC::GCS::IAddFileToHistory::IAddFileToHistory() : ITool(ID, TMenuArchivo, _Std("Open study"), GinkgoResourcesManager::MenuIcons::GetIcoAbrir()) { } ginkgocadx-3.8.7/cadxcore/export/tools/iaddfiletohistorytool.h000066400000000000000000000020361314736454600247330ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IAddFileToHistory: public ITool, public IViewContractable { public: static GNC::GCS::ITool::UID ID; IAddFileToHistory(); }; } } ginkgocadx-3.8.7/cadxcore/export/tools/iangletool.cpp000066400000000000000000000021621314736454600227770ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iangletool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IAngleTool::ID = HCore_Angulo; GNC::GCS::IAngleTool::IAngleTool() : IWidgetTool(ID, TFamiliaMedicion, _Std("Angle \tCtrl+A"), GinkgoResourcesManager::AngleBar::GetIcoAnguloNormal()) { KeyCode = Name[Name.size() - 1]; } ginkgocadx-3.8.7/cadxcore/export/tools/iangletool.h000066400000000000000000000021311314736454600224400ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IANGLETOOL_H #define IANGLETOOL_H #include #include "iherramientascore.h" #include namespace GNC { namespace GCS { class EXTAPI IAngleTool : public IWidgetTool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; IAngleTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/ibrightnesscontrasttool.cpp000066400000000000000000000023141314736454600256360ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ibrightnesscontrasttool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IBrightnessContrastTool::ID = HCore_BrightnessContrast; GNC::GCS::IBrightnessContrastTool::IBrightnessContrastTool() : IWidgetTool(ID, TFamiliaVisualizacion, _Std("Brightness/Contrast \tCtrl+B"), GinkgoResourcesManager::ToolIcons::GetIcoBrightnessContrast()) { KeyCode = Name[Name.size() - 1]; } ginkgocadx-3.8.7/cadxcore/export/tools/ibrightnesscontrasttool.h000066400000000000000000000022071314736454600253040ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IBRIGHTNESSCOTNRASTTOOL_H #define IBRIGHTNESSCOTNRASTTOOL_H #include "iherramientascore.h" #include #include namespace GNC { namespace GCS { class EXTAPI IBrightnessContrastTool: public IWidgetTool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; IBrightnessContrastTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/icamerarotationtool.cpp000066400000000000000000000021711314736454600247210ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "icamerarotationtool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::ICameraRotationTool::ID = HCore_CameraRotation; GNC::GCS::ICameraRotationTool::ICameraRotationTool() : IWidgetTool(ID, TFamiliaVisualizacion, _Std("Rotate camera"), GinkgoResourcesManager::ToolIcons::GetIcoRotateLeft()) { } ginkgocadx-3.8.7/cadxcore/export/tools/icamerarotationtool.h000066400000000000000000000020641314736454600243670ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI ICameraRotationTool: public IWidgetTool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; ICameraRotationTool(); }; } } ginkgocadx-3.8.7/cadxcore/export/tools/icolormaptool.cpp000066400000000000000000000021141314736454600235220ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "icolormaptool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IColorMapTool::ID = HCore_ColorMap; GNC::GCS::IColorMapTool::IColorMapTool(): GNC::GCS::ITool(ID, TSeriesMenu, _Std("Color Map"), GinkgoResourcesManager::ToolIcons::GetIcoCruz(), 1) { } ginkgocadx-3.8.7/cadxcore/export/tools/icolormaptool.h000066400000000000000000000021551314736454600231740ustar00rootroot00000000000000/* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifndef ICOLORMAPTOOL_H #define ICOLORMAPTOOL_H #include #include "iherramientascore.h" #include namespace GNC { namespace GCS { class EXTAPI IColorMapTool: public GNC::GCS::ITool, public GNC::GCS::IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; IColorMapTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/icopyimagetoclipboardtool.cpp000066400000000000000000000022241314736454600261100ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "icopyimagetoclipboardtool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::ICopyImageToClipboardTool::ID = HCore_CopyImageToClipboard; GNC::GCS::ICopyImageToClipboardTool::ICopyImageToClipboardTool() : ITool(ID, TMenuEdicion, _Std("Copy") + " \tCtrl+c", GinkgoResourcesManager::ToolIcons::GetIcoCopyToClipboard(),3) { } ginkgocadx-3.8.7/cadxcore/export/tools/icopyimagetoclipboardtool.h000066400000000000000000000020641314736454600255570ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI ICopyImageToClipboardTool: public ITool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; ICopyImageToClipboardTool(); }; } } ginkgocadx-3.8.7/cadxcore/export/tools/icornerannotationstool.cpp000066400000000000000000000022071314736454600254570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "icornerannotationstool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::ICornerAnnotationsTool::ID = HCore_CornerAnnotations; GNC::GCS::ICornerAnnotationsTool::ICornerAnnotationsTool() : ITool(ID, TSeriesMenu, _Std("Window annotations"), GinkgoResourcesManager::ToolIcons::GetIcoCornerAnnotations(),2) { } ginkgocadx-3.8.7/cadxcore/export/tools/icornerannotationstool.h000066400000000000000000000021671314736454600251310ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ICORNERANNOTATIONSTOOL_H #define ICORNERANNOTATIONSTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI ICornerAnnotationsTool: public ITool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; ICornerAnnotationsTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/idetachwindowtool.cpp000066400000000000000000000021341314736454600243700ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "idetachwindowtool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IDetachWindowTool::ID = HCore_DetachWindow; GNC::GCS::IDetachWindowTool::IDetachWindowTool() : ITool(ID, TMenuVer, _Std("Detach window"), GinkgoResourcesManager::ToolIcons::GetIcoDesencajar()) { } ginkgocadx-3.8.7/cadxcore/export/tools/idetachwindowtool.h000066400000000000000000000021351314736454600240360ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IDETACHWINDOWTOOL_H #define IDETACHWINDOWTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IDetachWindowTool: public ITool, public IViewContractable { public: static GNC::GCS::ITool::UID ID; IDetachWindowTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/iherramientascore.h000066400000000000000000000061761314736454600240240ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ITOOLSCORE_H #define ITOOLSCORE_H // UIDs de las herramientas core: Reservado desde 0 a 100; #define HCore_Pointer 1 #define HCore_Rule 3 #define HCore_Angulo 4 #define HCore_Lupa 5 #define HCore_Varita 6 #define HCore_LazoChroma 7 #define HCore_Elevacion 8 #define HCore_Nota 9 #define HCore_Deshacer 10 #define HCore_WindowLayout 11 #define HCore_EdicionDICOM 12 #define HCore_Calibrado 13 #define HCore_Debug 14 #define HCore_Marcado 15 #define HCore_MetricGrid 16 #define HCore_CornerAnnotations 17 #define HCore_PanelTags 18 #define HCore_Reset 19 #define HCore_DetachWindow 20 #define HCore_PixelsBluring 21 #define HCore_SecondaryCapture 22 #define HCore_Pan 23 #define HCore_Zoom 24 #define HCore_Slider 25 #define HCore_WindowLevel 26 #define HCore_Anonymize 27 #define HCore_ShowDicomTagsHistory 28 #define HCore_OpenFile 29 #define HCore_OpenFolder 30 #define HCore_OpenRemovable 31 #define HCore_DicomizeFromHistory 32 #define HCore_QueryRetrieveHistory 33 #define HCore_HistoryPACSUpload 34 #define HCore_ExportDicomDir 35 #define HCore_ShowDicomTags 36 #define HCore_RotateAndFlip 37 #define HCore_ColorMap 38 #define HCore_ShowHistory 39 #define HCore_ImageExport 40 #define HCore_SimplePrint 41 #define HCore_Trackball 42 #define HCore_Video 43 #define HCore_PACSUpload 44 #define HCore_DicomizeFromView 45 #define HCore_AddFileToHistory 46 #define HCore_OpenGinkgoCloudLinkHistory 47 #define HCore_SearchGinkgoCloudHistory 48 #define HCore_CopyImageToClipboard 49 #define HCore_QueryRetrieve 50 #define HCore_CameraRotation 51 #define HCore_BrightnessContrast 52 #define SubFamiliaEdicionDeshacer 0 #endif ginkgocadx-3.8.7/cadxcore/export/tools/iimageexporttool.cpp000066400000000000000000000021361314736454600242360ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iimageexporttool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IImageExportTool::ID = HCore_ImageExport; GNC::GCS::IImageExportTool::IImageExportTool() : ITool(ID, TMenuArchivo, _Std("Export image..."), GinkgoResourcesManager::MenuIcons::GetIcoExportar(), 4) { } ginkgocadx-3.8.7/cadxcore/export/tools/iimageexporttool.h000066400000000000000000000021511314736454600237000ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IIMAGEEXPORTTOOL_H #define IIMAGEEXPORTTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IImageExportTool: public ITool, public GNC::GCS::IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; IImageExportTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/imarkertool.cpp000066400000000000000000000021741314736454600231750ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "imarkertool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IMarkerTool::ID = HCore_Marcado; GNC::GCS::IMarkerTool::IMarkerTool() : IWidgetTool(ID, TFamiliaAnotacion, _Std("Marking Tools \tCtrl+M"), GinkgoResourcesManager::MarkingBar::GetIcoPunto()) { KeyCode = Name[Name.size() - 1]; } ginkgocadx-3.8.7/cadxcore/export/tools/imarkertool.h000066400000000000000000000021351314736454600226370ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IMARKERTOOL_H #define IMARKERTOOL_H #include "iherramientascore.h" #include #include namespace GNC { namespace GCS { class EXTAPI IMarkerTool : public IWidgetTool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; IMarkerTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/imetricgridtool.cpp000066400000000000000000000021241314736454600240400ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "imetricgridtool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IMetricGridTool::ID = HCore_MetricGrid; GNC::GCS::IMetricGridTool::IMetricGridTool() : ITool(ID, TSeriesMenu, _Std("Metric grid"), GinkgoResourcesManager::ToolIcons::GetIcoRejilla(), 1) { } ginkgocadx-3.8.7/cadxcore/export/tools/imetricgridtool.h000066400000000000000000000021231314736454600235040ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IMETRICTOOL_H #define IMETRICTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IMetricGridTool: public ITool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; IMetricGridTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/inotetool.cpp000066400000000000000000000021571314736454600226620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "inotetool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::INoteTool::ID = HCore_Nota; GNC::GCS::INoteTool::INoteTool() : IWidgetTool(ID, TFamiliaAnotacion, _Std("Text Note \tCtrl+N"), GinkgoResourcesManager::ToolIcons::GetIcoAnotacion()) { KeyCode = Name[Name.size() - 1]; } ginkgocadx-3.8.7/cadxcore/export/tools/inotetool.h000066400000000000000000000021251314736454600223220ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef INOTETOOL_H #define INOTETOOL_H #include #include "iherramientascore.h" #include namespace GNC { namespace GCS { class EXTAPI INoteTool : public IWidgetTool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; INoteTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/ipacsuploadtool.cpp000066400000000000000000000021321314736454600240410ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ipacsuploadtool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IPACSUploadTool::ID = HCore_PACSUpload; GNC::GCS::IPACSUploadTool::IPACSUploadTool() : ITool(ID, TMenuArchivo, _Std("Upload study..."), GinkgoResourcesManager::MenuIcons::GetIcoSendToPACS(),4) { } ginkgocadx-3.8.7/cadxcore/export/tools/ipacsuploadtool.h000066400000000000000000000020321314736454600235050ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IPACSUploadTool: public ITool, public IViewContractable { public: static GNC::GCS::ITool::UID ID; IPACSUploadTool(); }; } } ginkgocadx-3.8.7/cadxcore/export/tools/ipixelsbluringtool.cpp000066400000000000000000000020771314736454600246050ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ipixelsbluringtool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IPixelsBluringTool::ID = HCore_PixelsBluring; GNC::GCS::IPixelsBluringTool::IPixelsBluringTool() : ITool(ID, TSeriesMenu, _Std("Pixels blurring"), wxNullBitmap,2) { } ginkgocadx-3.8.7/cadxcore/export/tools/ipixelsbluringtool.h000066400000000000000000000021571314736454600242510ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IINTERPOLATETOOL_H #define IINTERPOLATETOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IPixelsBluringTool: public ITool, public IPixelsBluringContractable { public: static GNC::GCS::ITool::UID ID; IPixelsBluringTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/ipointertool.cpp000066400000000000000000000021601314736454600233670ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ipointertool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IPointerTool::ID = HCore_Pointer; GNC::GCS::IPointerTool::IPointerTool() : IWidgetTool(ID, TFamiliaVisualizacion, _Std("Pointer \tEsc"), GinkgoResourcesManager::ToolIcons::GetIcoFlecha()) { KeyCode = WXK_ESCAPE; } ginkgocadx-3.8.7/cadxcore/export/tools/ipointertool.h000066400000000000000000000021341314736454600230350ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IPOINTERTOOL_H #define IPOINTERTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IPointerTool: public IWidgetTool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; IPointerTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/iqueryretrievetool.cpp000066400000000000000000000021721314736454600246250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iqueryretrievetool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IQueryRetrieveTool::ID = HCore_QueryRetrieve; GNC::GCS::IQueryRetrieveTool::IQueryRetrieveTool() : ITool(ID, TMenuArchivo, _Std("Acquire a DICOM study from PACS"), GinkgoResourcesManager::Acquisition::GetIcoAdquirePACS()) { } ginkgocadx-3.8.7/cadxcore/export/tools/iqueryretrievetool.h000066400000000000000000000020401314736454600242640ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IQueryRetrieveTool: public ITool, public IViewContractable { public: static GNC::GCS::ITool::UID ID; IQueryRetrieveTool(); }; } } ginkgocadx-3.8.7/cadxcore/export/tools/iresettool.cpp000066400000000000000000000020611314736454600230310ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iresettool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IResetTool::ID = HCore_Reset; GNC::GCS::IResetTool::IResetTool() : ITool(ID, TSeriesMenu, _Std("Reset"), GinkgoResourcesManager::MenuIcons::GetIcoReset(),2) { } ginkgocadx-3.8.7/cadxcore/export/tools/iresettool.h000066400000000000000000000021071314736454600224770ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IRESETTOOL_H #define IRESETTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IResetTool: public ITool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; IResetTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/irotateandfliptool.cpp000066400000000000000000000021411314736454600245420ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "irotateandfliptool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IRotateAndFlipTool::ID = HCore_RotateAndFlip; GNC::GCS::IRotateAndFlipTool::IRotateAndFlipTool() : ITool(ID, TSeriesMenu, _Std("Rotate and flip"), GinkgoResourcesManager::MenuIcons::GetIcoReset()) { } ginkgocadx-3.8.7/cadxcore/export/tools/irotateandfliptool.h000066400000000000000000000021471314736454600242150ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IROTATEANDFLIPTOOL_H #define IROTATEANDFLIPTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IRotateAndFlipTool: public ITool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; IRotateAndFlipTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/iruletool.cpp000066400000000000000000000021511314736454600226560ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iruletool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IRuleTool::ID = HCore_Rule; GNC::GCS::IRuleTool::IRuleTool() : IWidgetTool(ID, TFamiliaMedicion, _Std("Rule \tCtrl+R"), GinkgoResourcesManager::ToolIcons::GetIcoLongitud()) { KeyCode = Name[Name.size() - 1]; } ginkgocadx-3.8.7/cadxcore/export/tools/iruletool.h000066400000000000000000000021121314736454600223200ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IRULETOOL_H #define IRULETOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IRuleTool: public IWidgetTool, public IRuleContractable { public: static GNC::GCS::ITool::UID ID; IRuleTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/isecondarycapturetool.cpp000066400000000000000000000022041314736454600252610ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "isecondarycapturetool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::ISecondaryCaptureTool::ID = HCore_SecondaryCapture; GNC::GCS::ISecondaryCaptureTool::ISecondaryCaptureTool() : ITool(ID, TMenuArchivo, _Std("Save snapshot as new series..."), GinkgoResourcesManager::MenuIcons::GetIcoGuardar(),3) { } ginkgocadx-3.8.7/cadxcore/export/tools/isecondarycapturetool.h000066400000000000000000000021631314736454600247320ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ISECONDARYCAPTURETOOL_H #define ISECONDARYCAPTURETOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI ISecondaryCaptureTool: public ITool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; ISecondaryCaptureTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/ishowhistorytool.cpp000066400000000000000000000021431314736454600243120ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ishowhistorytool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IShowHistoryTool::ID = HCore_ShowHistory; GNC::GCS::IShowHistoryTool::IShowHistoryTool() : ITool(ID, TMenuArchivo, _Std("Show history \tAlt+h"), GinkgoResourcesManager::History::GetIcoHistorialOpen()) { } ginkgocadx-3.8.7/cadxcore/export/tools/ishowhistorytool.h000066400000000000000000000021311314736454600237540ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ISHOWHISTORYTOOL_H #define ISHOWHISTORYTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IShowHistoryTool: public ITool, public IViewContractable { public: static GNC::GCS::ITool::UID ID; IShowHistoryTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/ishowtagstool.cpp000066400000000000000000000021401314736454600235440ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ishowtagstool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IShowTagsTool::ID = HCore_ShowDicomTags; GNC::GCS::IShowTagsTool::IShowTagsTool() : ITool(ID, TMenuHerramientas, _Std("DICOM inspector"), GinkgoResourcesManager::ToolIcons::GetIcoMostrarOcultarTags()) { } ginkgocadx-3.8.7/cadxcore/export/tools/ishowtagstool.h000066400000000000000000000021151314736454600232130ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ISHOWTAGSTOOL_H #define ISHOWTAGSTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IShowTagsTool: public ITool, public IViewContractable { public: static GNC::GCS::ITool::UID ID; IShowTagsTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/isimpleprinttool.cpp000066400000000000000000000021341314736454600242560ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "isimpleprinttool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::ISimplePrintTool::ID = HCore_SimplePrint; GNC::GCS::ISimplePrintTool::ISimplePrintTool() : ITool(ID, TMenuArchivo, _Std("Print") + "...", GinkgoResourcesManager::MenuIcons::GetIcoImpresora(),5) { } ginkgocadx-3.8.7/cadxcore/export/tools/isimpleprinttool.h000066400000000000000000000020421314736454600237210ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI ISimplePrintTool: public ITool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; ISimplePrintTool(); }; } } ginkgocadx-3.8.7/cadxcore/export/tools/istartdicomizationtool.cpp000066400000000000000000000021671314736454600254650ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "istartdicomizationtool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IStartDicomizationTool::ID = HCore_DicomizeFromView; GNC::GCS::IStartDicomizationTool::IStartDicomizationTool() : ITool(ID, TMenuArchivo, _Std("Dicomize..."), GinkgoResourcesManager::MenuIcons::GetIcoImportar(), 2) { } ginkgocadx-3.8.7/cadxcore/export/tools/istartdicomizationtool.h000066400000000000000000000020501314736454600251210ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IStartDicomizationTool: public ITool, public IViewContractable { public: static GNC::GCS::ITool::UID ID; IStartDicomizationTool(); }; } } ginkgocadx-3.8.7/cadxcore/export/tools/itoolpan.cpp000066400000000000000000000021431314736454600224660ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "itoolpan.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IToolPan::ID = HCore_Pan; GNC::GCS::IToolPan::IToolPan() : IWidgetTool(ID, TFamiliaVisualizacion, _Std("Pan \tCtrl+P"), GinkgoResourcesManager::ToolIcons::GetIcoPan()) { KeyCode = Name[Name.size() - 1]; } ginkgocadx-3.8.7/cadxcore/export/tools/itoolpan.h000066400000000000000000000021131314736454600221300ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IPANTOOL_H #define IPANTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IToolPan: public IWidgetTool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; IToolPan(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/itoolslider.cpp000066400000000000000000000021701314736454600231720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "itoolslider.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IToolSlider::ID = HCore_Slider; GNC::GCS::IToolSlider::IToolSlider() : IWidgetTool(ID, TFamiliaVisualizacion, _Std("Slider \tCtrl+S"), GinkgoResourcesManager::ToolIcons::GetIcoSlider()) { KeyCode = Name[Name.size() - 1]; } ginkgocadx-3.8.7/cadxcore/export/tools/itoolslider.h000066400000000000000000000021251314736454600226370ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ISLIDERTOOL_H #define ISLIDERTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IToolSlider: public IWidgetTool, public ISliderContractable { public: static GNC::GCS::ITool::UID ID; IToolSlider(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/itoolwindowlevel.cpp000066400000000000000000000022341314736454600242500ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "itoolwindowlevel.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IToolWindowLevel::ID = HCore_WindowLevel; GNC::GCS::IToolWindowLevel::IToolWindowLevel() : IWidgetTool(ID, TFamiliaVisualizacion, _Std("Window/Level \tCtrl+W"), GinkgoResourcesManager::ToolIcons::GetIcoWindowLevel()) { KeyCode = Name[Name.size() - 1]; } ginkgocadx-3.8.7/cadxcore/export/tools/itoolwindowlevel.h000066400000000000000000000021631314736454600237160ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IWINDOWLEVELTOOL_H #define IWINDOWLEVELTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IToolWindowLevel: public IWidgetTool, public IWindowLevelContractable { public: static GNC::GCS::ITool::UID ID; IToolWindowLevel(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/itoolzoom.cpp000066400000000000000000000021521314736454600226740ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "itoolzoom.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IToolZoom::ID = HCore_Zoom; GNC::GCS::IToolZoom::IToolZoom() : IWidgetTool(ID, TFamiliaVisualizacion, _Std("Zoom \tCtrl+O"), GinkgoResourcesManager::ToolIcons::GetIcoZoom()) { KeyCode = Name[Name.size() - 1]; } ginkgocadx-3.8.7/cadxcore/export/tools/itoolzoom.h000066400000000000000000000021201314736454600223340ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IZOOMTOOL_H #define IZOOMTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IToolZoom: public IWidgetTool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; IToolZoom(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/itrackballtool.cpp000066400000000000000000000022151314736454600236470ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "itrackballtool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::ITrackballTool::ID = HCore_Trackball; GNC::GCS::ITrackballTool::ITrackballTool() : IWidgetTool(ID, TFamiliaVisualizacion, _Std("Trackball \tCtrl+T"), GinkgoResourcesManager::ToolIcons::GetIcoTrackball()) { KeyCode = Name[Name.size() - 1]; } ginkgocadx-3.8.7/cadxcore/export/tools/itrackballtool.h000066400000000000000000000021431314736454600233140ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef ITRACKBALLTOOL_H #define ITRACKBALLTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI ITrackballTool: public IWidgetTool, public IWidgetsContractable { public: static GNC::GCS::ITool::UID ID; ITrackballTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/iundotool.cpp000066400000000000000000000020641314736454600226570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iundotool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IUndoTool::ID = HCore_Deshacer; GNC::GCS::IUndoTool::IUndoTool() : ITool(ID, TMenuEdicion, _Std("Undo"), GinkgoResourcesManager::AngleBar::GetIcoAnguloNormal()) { } ginkgocadx-3.8.7/cadxcore/export/tools/iundotool.h000066400000000000000000000020761314736454600223270ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IUNDOTOOL_H #define IUNDOTOOL_H #include #include "iherramientascore.h" #include namespace GNC { namespace GCS { class EXTAPI IUndoTool: public ITool, public IViewContractable { public: static GNC::GCS::ITool::UID ID; IUndoTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/ivideotool.cpp000066400000000000000000000021371314736454600230210ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ivideotool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IVideoTool::ID = HCore_Video; GNC::GCS::IVideoTool::IVideoTool() : ITool(ID, TFamiliaVisualizacion, _Std("Video \tCtrl+Space"), GinkgoResourcesManager::CineBar::GetIcoPlay()) { KeyCode = (int)' '; } ginkgocadx-3.8.7/cadxcore/export/tools/ivideotool.h000066400000000000000000000021051314736454600224610ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IVIDEOTOOL_H #define IVIDEOTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IVideoTool: public ITool, public ISliderContractable { public: static GNC::GCS::ITool::UID ID; IVideoTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/export/tools/iwindowlayouttool.cpp000066400000000000000000000021311314736454600244520ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "iwindowlayouttool.h" #include #include GNC::GCS::ITool::UID GNC::GCS::IWindowLayoutTool::ID = HCore_WindowLayout; GNC::GCS::IWindowLayoutTool::IWindowLayoutTool() : ITool(ID, TMenuVer, _Std("Window layout"), GinkgoResourcesManager::ToolIcons::GetIcoLayout()) { } ginkgocadx-3.8.7/cadxcore/export/tools/iwindowlayouttool.h000066400000000000000000000021551314736454600241250ustar00rootroot00000000000000#pragma once /* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef IWINDOWLAYOUTTOOL_H #define IWINDOWLAYOUTTOOL_H #include #include #include "iherramientascore.h" namespace GNC { namespace GCS { class EXTAPI IWindowLayoutTool: public ITool, public IWindowLayoutContractable { public: static GNC::GCS::ITool::UID ID; IWindowLayoutTool(); }; } } #endif ginkgocadx-3.8.7/cadxcore/itk/000077500000000000000000000000001314736454600162435ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/itk/itkImageToVTKImageFilter.h000066400000000000000000000127411314736454600231540ustar00rootroot00000000000000/*========================================================================= Program: Insight Segmentation & Registration Toolkit Module: $RCSfile: itkImageToVTKImageFilter.h,v $ Language: C++ Date: $Date: 2007-11-20 18:46:10 +0100 (mar, 20 nov 2007) $ Version: $Revision: 477 $ Copyright (c) 2002 Insight Consortium. All rights reserved. See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #pragma once #include #include #include namespace itk { /** \class ImageToVTKImageFilter * \brief Converts an ITK image into a VTK image and plugs a * itk data pipeline to a VTK datapipeline. * * This class puts together an itkVTKImageExporter and a vtkImageImporter. * It takes care of the details related to the connection of ITK and VTK * pipelines. The User will perceive this filter as an adaptor to which * an itk::Image can be plugged as input and a vtkImage is produced as * output. * * \ingroup ImageFilters */ template class ImageToVTKImageFilter : public ProcessObject { public: /** Standard class typedefs. */ typedef ImageToVTKImageFilter Self; typedef ProcessObject Superclass; typedef SmartPointer Pointer; typedef SmartPointer ConstPointer; /** Method for creation through the object factory. */ itkNewMacro(Self); /** Run-time type information (and related methods). */ itkTypeMacro(ImageToVTKImageFilter, ProcessObject); /** Some typedefs. */ typedef TInputImage InputImageType; typedef typename InputImageType::ConstPointer InputImagePointer; typedef VTKImageExport< InputImageType> ExporterFilterType; typedef typename ExporterFilterType::Pointer ExporterFilterPointer; /** Get the output in the form of a vtkImage. This call is delegated to the internal vtkImageImporter filter */ vtkImageData * GetOutput() const; /** Set the input in the form of an itk::Image */ void SetInput(const InputImageType *); /** Return the internal VTK image importer filter. This is intended to facilitate users the access to methods in the importer */ vtkImageImport * GetImporter() const; /** Return the internal ITK image exporter filter. This is intended to facilitate users the access to methods in the exporter */ ExporterFilterType * GetExporter() const; /** This call delegate the update to the importer */ void Update(); protected: ImageToVTKImageFilter(); virtual ~ImageToVTKImageFilter(); private: ImageToVTKImageFilter(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented ExporterFilterPointer m_Exporter; vtkImageImport * m_Importer; }; /** * Constructor */ template ImageToVTKImageFilter ::ImageToVTKImageFilter() { m_Importer = vtkImageImport::New(); m_Exporter = ExporterFilterType::New(); m_Importer->SetUpdateInformationCallback(m_Exporter->GetUpdateInformationCallback()); m_Importer->SetPipelineModifiedCallback(m_Exporter->GetPipelineModifiedCallback()); m_Importer->SetWholeExtentCallback(m_Exporter->GetWholeExtentCallback()); m_Importer->SetSpacingCallback(m_Exporter->GetSpacingCallback()); m_Importer->SetOriginCallback(m_Exporter->GetOriginCallback()); m_Importer->SetScalarTypeCallback(m_Exporter->GetScalarTypeCallback()); m_Importer->SetNumberOfComponentsCallback(m_Exporter->GetNumberOfComponentsCallback()); m_Importer->SetPropagateUpdateExtentCallback(m_Exporter->GetPropagateUpdateExtentCallback()); m_Importer->SetUpdateDataCallback(m_Exporter->GetUpdateDataCallback()); m_Importer->SetDataExtentCallback(m_Exporter->GetDataExtentCallback()); m_Importer->SetBufferPointerCallback(m_Exporter->GetBufferPointerCallback()); m_Importer->SetCallbackUserData(m_Exporter->GetCallbackUserData()); } /** * Destructor */ template ImageToVTKImageFilter ::~ImageToVTKImageFilter() { m_Importer->Delete(); } /** * Set an itk::Image as input */ template void ImageToVTKImageFilter::SetInput(const InputImageType * inputImage) { m_Exporter->SetInput(inputImage); } /** * Get a vtkImage as output */ template vtkImageData *ImageToVTKImageFilter::GetOutput() const { return m_Importer->GetOutput(); } /** * Get the importer filter */ template vtkImageImport * ImageToVTKImageFilter::GetImporter() const { return m_Importer; } /** * Get the exporter filter */ template typename ImageToVTKImageFilter::ExporterFilterType *ImageToVTKImageFilter::GetExporter() const { return m_Exporter.GetPointer(); } /** * Delegate the Update to the importer */ template void ImageToVTKImageFilter::Update() { m_Importer->Update(); } } // end namespace itk ginkgocadx-3.8.7/cadxcore/itk/itkRGBImageToVTKImageFilter.h000066400000000000000000000222021314736454600235000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #undef __DEPRECATED #include #include #include #include #include #include #include #include #include #include #include // FIXME: esta clase puede tener memmory leaks namespace itk { typedef enum VTKScalarType { DOUBLE, FLOAT, LONG, UNSIGNED_LONG, INT, UNSIGNED_INT, SHORT, UNSIGNED_SHORT, CHAR, SIGNED_CHAR, UNSIGNED_CHAR } VTKScalarType; template class RGBImageToVTKImageFilter : public ProcessObject { public: /** Standard class typedefs. */ typedef RGBImageToVTKImageFilter Self; typedef ProcessObject Superclass; typedef SmartPointer Pointer; //typedef SmartPointer ConstPointer; /** Method for creation through the object factory. */ itkNewMacro(Self); /** Run-time type information (and related methods). */ itkTypeMacro(ImageToVTKImageFilter, ProcessObject); /** Some typedefs. */ typedef TInputImage InputImageType; typedef typename InputImageType::ConstPointer InputImagePointer; /** Get the output in the form of a vtkImage */ vtkImageData * GetOutput() const; /** Set the input in the form of an itk::Image */ void SetInput(const InputImageType *); /** Updates */ void Update(); protected: RGBImageToVTKImageFilter(); virtual ~RGBImageToVTKImageFilter(); private: RGBImageToVTKImageFilter(const Self&); // purposely not implemented void operator=(const Self&); // purposely not implemented InputImagePointer m_ImageInput; vtkImageData *m_ImageData; std::string m_ScalarTypeName; VTKScalarType m_ScalarType; }; /** * Constructor */ template RGBImageToVTKImageFilter::RGBImageToVTKImageFilter() { m_ImageInput = NULL; typedef typename TInputImage::PixelType PixelType; typedef typename PixelTraits< PixelType >::ValueType ScalarType; if (typeid (ScalarType) == typeid (double)) { m_ScalarTypeName = "double"; m_ScalarType = DOUBLE; } else if (typeid (ScalarType) == typeid (float)) { m_ScalarTypeName = "float"; m_ScalarType = FLOAT; } else if (typeid (ScalarType) == typeid (long)) { m_ScalarTypeName = "long"; m_ScalarType = LONG; } else if (typeid (ScalarType) == typeid (unsigned long)) { m_ScalarTypeName = "unsigned long"; m_ScalarType = UNSIGNED_LONG; } else if (typeid (ScalarType) == typeid (int)) { m_ScalarTypeName = "int"; m_ScalarType = INT; } else if (typeid (ScalarType) == typeid (unsigned int)) { m_ScalarTypeName = "unsigned int"; m_ScalarType = UNSIGNED_INT; } else if (typeid (ScalarType) == typeid (short)) { m_ScalarTypeName = "short"; m_ScalarType = SHORT; } else if (typeid (ScalarType) == typeid (unsigned short)) { m_ScalarTypeName = "unsigned short"; m_ScalarType = UNSIGNED_SHORT; } else if (typeid (ScalarType) == typeid (char)) { m_ScalarTypeName = "char"; m_ScalarType = CHAR; } else if (typeid (ScalarType) == typeid (unsigned char)) { m_ScalarTypeName = "unsigned char"; m_ScalarType = UNSIGNED_CHAR; } else if (typeid (ScalarType) == typeid (signed char)) { m_ScalarTypeName = "signed char"; m_ScalarType = SIGNED_CHAR; } else { itkExceptionMacro( << "Type currently not supported"); } m_ImageData = NULL; } /** * Destructor */ template RGBImageToVTKImageFilter::~RGBImageToVTKImageFilter() { m_ImageData = NULL; } /** * Set an itk::Image as input */ template void RGBImageToVTKImageFilter::SetInput(const InputImageType * inputImage) { m_ImageInput = inputImage; if (m_ImageData != NULL) { m_ImageData->Delete(); } m_ImageData = vtkImageData::New(); typename TInputImage::RegionType img_region = m_ImageInput->GetLargestPossibleRegion(); unsigned int imageNumComponents = img_region.GetImageDimension(); typename TInputImage::RegionType::SizeType imageSize = img_region.GetSize(); m_ImageData->SetDimensions(imageSize[0], imageSize[1], imageSize[2]); // TODO: Fijar Origen y espaciado m_ImageData->SetOrigin(0.0, 0.0, 0.0); m_ImageData->SetSpacing(1.0, 1.0, 1.0); switch (m_ScalarType) { case DOUBLE: m_ImageData->SetScalarTypeToDouble(); break; case FLOAT: m_ImageData->SetScalarTypeToFloat(); break; case LONG: m_ImageData->SetScalarTypeToLong(); break; case UNSIGNED_LONG: m_ImageData->SetScalarTypeToUnsignedLong(); break; case INT: m_ImageData->SetScalarTypeToInt(); break; case UNSIGNED_INT: m_ImageData->SetScalarTypeToUnsignedInt(); break; case SHORT: m_ImageData->SetScalarTypeToShort(); break; case UNSIGNED_SHORT: m_ImageData->SetScalarTypeToUnsignedShort(); break; case CHAR: m_ImageData->SetScalarTypeToChar(); break; case SIGNED_CHAR: m_ImageData->SetScalarTypeToSignedChar(); break; case UNSIGNED_CHAR: m_ImageData->SetScalarTypeToUnsignedChar(); break; default: itkExceptionMacro( << "Type currently not supported"); break; } m_ImageData->SetNumberOfScalarComponents(imageNumComponents); m_ImageData->AllocateScalars(); } /** * Get a vtkImage as output */ template vtkImageData *RGBImageToVTKImageFilter::GetOutput() const { return m_ImageData; } /** * Delegate the Update to the importer */ template void RGBImageToVTKImageFilter::Update() { typename TInputImage::RegionType img_region = m_ImageInput->GetLargestPossibleRegion(); unsigned int imageNumComponents = img_region.GetImageDimension(); typename TInputImage::RegionType::SizeType imageSize = img_region.GetSize(); itk::ImageLinearIteratorWithIndex it(m_ImageInput, img_region); double *tuple = new double[imageNumComponents]; //int cid; typename TInputImage::PixelType pixel; vtkDataArray* scalars = m_ImageData->GetPointData()->GetScalars(); unsigned long offset = 0; unsigned int cid; it.SetDirection(0); it.GoToBegin(); while (!it.IsAtEnd()) { it.GoToBeginOfLine(); while (!it.IsAtEndOfLine()) { pixel = it.Get(); for (cid = 0; cid < pixel.GetNumberOfComponents(); ++cid) { tuple[cid] = pixel.GetNthComponent(cid); } scalars->SetTuple(offset++, tuple); ++it; } it.NextLine(); } /* int cid; y = 0; it.SetDirection(0); for (z = 0, it.GoToBegin(); !it.IsAtEnd() ; z++) { for (y = 0; !it.IsAtReverseEnd(); it.PreviousLine(), y++) { it.GoToBeginOfLine(); for (x = 0; !it.IsAtEndOfLine(); ++it, ++x) { pixel = it.Get(); for (cid = 0; cid < pixel.GetNumberOfComponents(); ++cid) { tuple[cid] = pixel.GetNthComponent(cid); } m_ImageData->GetPointData()->GetScalars()->SetTuple(z * imageSize[1] + y * imageSize[0] + x, tuple); } } }*/ delete[] tuple; } } // end namespace itk ginkgocadx-3.8.7/cadxcore/itk/itkVTKImageToImageFilter.h000066400000000000000000000131341314736454600231510ustar00rootroot00000000000000/*========================================================================= Program: Insight Segmentation & Registration Toolkit Module: $RCSfile: itkVTKImageToImageFilter.h,v $ Language: C++ Date: $Date: 2004-04-25 21:35:10 $ Version: $Revision: 1.5 $ Copyright (c) 2002 Insight Consortium. All rights reserved. See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #pragma once #include "itkVTKImageImport.h" #include "vtkImageExport.h" #include "vtkImageData.h" #ifndef vtkFloatingPointType #define vtkFloatingPointType float #endif namespace itk { /** \class VTKImageToImageFilter * \brief Converts a VTK image into an ITK image and plugs a * vtk data pipeline to an ITK datapipeline. * * This class puts together an itkVTKImageImporter and a vtkImageExporter. * It takes care of the details related to the connection of ITK and VTK * pipelines. The User will perceive this filter as an adaptor to which * a vtkImage can be plugged as input and an itk::Image is produced as * output. * * \ingroup ImageFilters */ template class VTKImageToImageFilter : public ProcessObject { public: /** Standard class typedefs. */ typedef VTKImageToImageFilter Self; typedef ProcessObject Superclass; typedef SmartPointer Pointer; typedef SmartPointer ConstPointer; /** Method for creation through the object factory. */ itkNewMacro(Self); /** Run-time type information (and related methods). */ itkTypeMacro(VTKImageToImageFilter, ProcessObject); /** Some typedefs. */ typedef TOutputImage OutputImageType; typedef typename OutputImageType::ConstPointer OutputImagePointer; typedef VTKImageImport< OutputImageType > ImporterFilterType; typedef typename ImporterFilterType::Pointer ImporterFilterPointer; /** Get the output in the form of a vtkImage. This call is delegated to the internal vtkImageImporter filter */ const OutputImageType * GetOutput() const; /** Set the input in the form of a vtkImageData */ void SetInput(vtkImageData *); /** Return the internal VTK image exporter filter. This is intended to facilitate users the access to methods in the exporter */ vtkImageExport * GetExporter() const; /** Return the internal ITK image importer filter. This is intended to facilitate users the access to methods in the importer */ ImporterFilterType * GetImporter() const; /** This call delegate the update to the importer */ void Update(); protected: VTKImageToImageFilter(); virtual ~VTKImageToImageFilter(); private: VTKImageToImageFilter(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented ImporterFilterPointer m_Importer; vtkImageExport * m_Exporter; }; /** * Constructor */ template VTKImageToImageFilter::VTKImageToImageFilter() { m_Exporter = vtkImageExport::New(); m_Importer = ImporterFilterType::New(); m_Importer->SetUpdateInformationCallback(m_Exporter->GetUpdateInformationCallback()); m_Importer->SetPipelineModifiedCallback(m_Exporter->GetPipelineModifiedCallback()); m_Importer->SetWholeExtentCallback(m_Exporter->GetWholeExtentCallback()); m_Importer->SetSpacingCallback(m_Exporter->GetSpacingCallback()); m_Importer->SetOriginCallback(m_Exporter->GetOriginCallback()); m_Importer->SetScalarTypeCallback(m_Exporter->GetScalarTypeCallback()); m_Importer->SetNumberOfComponentsCallback(m_Exporter->GetNumberOfComponentsCallback()); m_Importer->SetPropagateUpdateExtentCallback(m_Exporter->GetPropagateUpdateExtentCallback()); m_Importer->SetUpdateDataCallback(m_Exporter->GetUpdateDataCallback()); m_Importer->SetDataExtentCallback(m_Exporter->GetDataExtentCallback()); m_Importer->SetBufferPointerCallback(m_Exporter->GetBufferPointerCallback()); m_Importer->SetCallbackUserData(m_Exporter->GetCallbackUserData()); } /** * Destructor */ template VTKImageToImageFilter ::~VTKImageToImageFilter() { if (m_Exporter) { m_Exporter->Delete(); m_Exporter = 0; } } /** * Set a vtkImageData as input */ template void VTKImageToImageFilter ::SetInput(vtkImageData * inputImage) { m_Exporter->SetInputData(inputImage); } /** * Get an itk::Image as output */ template const typename VTKImageToImageFilter::OutputImageType * VTKImageToImageFilter ::GetOutput() const { return m_Importer->GetOutput(); } /** * Get the exporter filter */ template vtkImageExport * VTKImageToImageFilter ::GetExporter() const { return m_Exporter; } /** * Get the importer filter */ template typename VTKImageToImageFilter::ImporterFilterType * VTKImageToImageFilter ::GetImporter() const { return m_Importer; } /** * Delegate the Update to the importer */ template void VTKImageToImageFilter ::Update() { m_Importer->Update(); } } // end namespace itk ginkgocadx-3.8.7/cadxcore/lang/000077500000000000000000000000001314736454600163755ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/cadxcore.pot000066400000000000000000005165431314736454600207270ustar00rootroot00000000000000# msgid "" msgstr "" "Project-Id-Version: GinkgoCADx\n" "POT-Creation-Date: 2014-06-11 14:19+0100\n" "PO-Revision-Date: \n" "Last-Translator: Carlos Barrales Ruiz \n" "Language-Team: English \n" "Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" "X-Poedit-Basepath: .\n" "X-Poedit-KeywordsList: _Std;_\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SearchPath-0: ..\n" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Red Vessels" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Metal" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Green" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "GE Color" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PET" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "P-Value" msgstr "" #: ../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "" #: ../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "" #: ../api/dicom/idicomconformance.cpp:80 ../api/dicom/idicomconformance.cpp:84 #: ../api/dicom/idicomconformance.cpp:143 #: ../api/dicom/idicomconformance.cpp:152 #: ../api/dicom/idicomconformance.cpp:214 #: ../api/dicom/idicomconformance.cpp:220 msgid "GIL/DICOM/Conformance" msgstr "" #: ../api/dicom/idicomconformance.cpp:80 ../api/dicom/idicomconformance.cpp:84 msgid "Unable to add supported transfer syntax " msgstr "" #: ../api/dicom/idicomconformance.cpp:80 ../api/dicom/idicomconformance.cpp:84 msgid " to SOP Class " msgstr "" #: ../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr "" #: ../api/dicom/idicomconformance.cpp:84 #: ../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr "" #: ../api/dicom/idicomconformance.cpp:143 #: ../api/dicom/idicomconformance.cpp:152 msgid "Unable to add supported SOP Class " msgstr "" #: ../api/dicom/idicomconformance.cpp:143 #: ../api/dicom/idicomconformance.cpp:152 msgid " to Modality " msgstr "" #: ../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr "" #: ../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "" #: ../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "" #: ../api/iannotator.cpp:97 msgid "Slice" msgstr "" #: ../api/iannotator.cpp:97 msgid "of" msgstr "" #: ../api/iannotator.cpp:97 msgid "Volume" msgstr "" #: ../api/iannotator.cpp:107 msgid "Voxel:" msgstr "" #: ../api/iannotator.cpp:110 msgid "Image without metric information" msgstr "" #: ../api/iannotator.cpp:119 msgid "Slice thickness" msgstr "" #: ../api/iannotator.cpp:127 msgid "Slice location" msgstr "" #: ../api/iannotator.cpp:139 msgid "Scale" msgstr "" #: ../api/iannotator.cpp:147 msgid "Right" msgstr "" #: ../api/iannotator.cpp:149 msgid "Left" msgstr "" #: ../api/iannotator.cpp:219 msgid "Position:" msgstr "" #: ../api/iannotator.cpp:272 msgid "Value:" msgstr "" #: ../api/iexception.cpp:52 msgid "Exception in component" msgstr "" #: ../api/initwx.cpp:439 msgid "Initializing environment ..." msgstr "" #: ../api/initwx.cpp:446 ../api/initwx.cpp:447 ../api/initwx.cpp:448 #: ../api/initwx.cpp:449 ../api/initwx.cpp:450 ../api/initwx.cpp:451 #: ../api/initwx.cpp:452 ../api/initwx.cpp:453 msgid "Ginkgo CADx restrictions" msgstr "" #: ../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "" #: ../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "" #: ../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "" #: ../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "" #: ../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "" #: ../api/initwx.cpp:451 msgid "Export images" msgstr "" #: ../api/initwx.cpp:452 msgid "Acquire DICOM files" msgstr "" #: ../api/initwx.cpp:453 msgid "Import files to DICOM format" msgstr "" #: ../api/initwx.cpp:455 ../api/initwx.cpp:457 msgid "Online manual" msgstr "" #: ../api/initwx.cpp:455 ../api/initwx.cpp:457 msgid "URL of manual" msgstr "" #: ../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "" #: ../api/initwx.cpp:459 msgid "Online support" msgstr "" #: ../api/initwx.cpp:459 msgid "URL of online support" msgstr "" #: ../api/initwx.cpp:459 msgid "http://ginkgo-cadx.com/" msgstr "" #: ../api/initwx.cpp:460 ../api/initwx.cpp:461 msgid "Program Updates" msgstr "" #: ../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "" #: ../api/initwx.cpp:461 msgid "Update period (days)" msgstr "" #: ../api/initwx.cpp:462 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "" #: ../api/initwx.cpp:462 msgid "Setup Security" msgstr "" #: ../api/initwx.cpp:463 msgid "Show on startup" msgstr "" #: ../api/initwx.cpp:463 msgid "Show on startup default value" msgstr "" #: ../api/initwx.cpp:465 ../api/initwx.cpp:466 #: ../main/gui/history3/historypanel3.cpp:328 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "" #: ../api/initwx.cpp:465 msgid "Settings menu" msgstr "" #: ../api/initwx.cpp:466 msgid "License menu" msgstr "" #: ../api/initwx.cpp:467 ../api/initwx.cpp:468 ../api/initwx.cpp:469 #: ../api/initwx.cpp:470 ../api/initwx.cpp:471 ../api/initwx.cpp:472 #: ../api/initwx.cpp:473 ../api/initwx.cpp:474 msgid "PACS Limits" msgstr "" #: ../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "" #: ../api/initwx.cpp:468 msgid "Upload images to a PACS server" msgstr "" #: ../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "" #: ../api/initwx.cpp:470 msgid "Enable remote PACS configuration" msgstr "" #: ../api/initwx.cpp:471 msgid "Enable TLS configuration" msgstr "" #: ../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "" #: ../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "" #: ../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "" #: ../api/initwx.cpp:475 ../api/initwx.cpp:476 ../api/initwx.cpp:477 #: ../api/initwx.cpp:478 ../api/initwx.cpp:479 ../api/initwx.cpp:480 msgid "Import" msgstr "" #: ../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "" #: ../api/initwx.cpp:476 msgid "Show accession number input" msgstr "" #: ../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "" #: ../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" #: ../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "" #: ../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "" #: ../api/initwx.cpp:482 msgid "HL7 Service" msgstr "" #: ../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "" #: ../api/initwx.cpp:483 ../api/initwx.cpp:484 ../api/initwx.cpp:485 msgid "XML dicomization" msgstr "" #: ../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "" #: ../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "" #: ../api/initwx.cpp:485 msgid "Default ORU template" msgstr "" #: ../api/initwx.cpp:488 ../api/initwx.cpp:489 ../api/initwx.cpp:491 #: ../api/initwx.cpp:493 ../api/initwx.cpp:494 ../api/initwx.cpp:495 #: ../api/initwx.cpp:496 ../api/initwx.cpp:498 msgid "Style" msgstr "" #: ../api/initwx.cpp:503 #, c-format msgid "Download %s images" msgstr "" #: ../api/initwx.cpp:504 ../api/initwx.cpp:508 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:21 msgid "PACS" msgstr "" #: ../api/initwx.cpp:507 msgid "Download all modalities" msgstr "" #: ../api/initwx.cpp:510 msgid "OpenGL" msgstr "" #: ../api/initwx.cpp:510 msgid "Enable shaders" msgstr "" #: ../api/initwx.cpp:513 ../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:388 msgid "Ginkgo Cloud" msgstr "" #: ../api/initwx.cpp:513 msgid "Download from Ginkgo Cloud" msgstr "" #: ../api/initwx.cpp:560 msgid "Tools loading base ..." msgstr "" #: ../api/initwx.cpp:562 msgid "Starting tools..." msgstr "" #: ../api/initwx.cpp:566 msgid "Loading plugins ..." msgstr "" #: ../api/initwx.cpp:580 msgid "Unable to start GinkgoCADx:\n" msgstr "" #: ../api/initwx.cpp:580 ../api/initwx.cpp:621 msgid "error" msgstr "" #: ../api/initwx.cpp:584 msgid "Loading resources ..." msgstr "" #: ../api/initwx.cpp:587 msgid "Starting services..." msgstr "" #: ../api/initwx.cpp:601 msgid "Configuring environment ..." msgstr "" #: ../api/initwx.cpp:621 msgid "Failed to set permissions:\n" msgstr "" #: ../api/initwx.cpp:634 msgid "Updating ..." msgstr "" #: ../api/initwx.cpp:638 msgid "Interpreting parameters ..." msgstr "" #: ../api/initwx.cpp:689 msgid "Error unregistering tools: " msgstr "" #: ../api/initwx.cpp:769 msgid "Starting" msgstr "" #: ../api/ivista.cpp:36 ../commands/comandocarga.cpp:73 msgid "Loading..." msgstr "" #: ../api/iwidgets.cpp:268 ../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ../main/gui/import/pasosimportacionbase.cpp:151 msgid "Name" msgstr "" #: ../api/iwidgets.cpp:285 msgid "Area" msgstr "" #: ../api/iwidgets.cpp:302 msgid "Perimeter" msgstr "" #: ../api/iwidgets.cpp:316 msgid "Travel (I)" msgstr "" #: ../api/iwidgets.cpp:326 msgid "Travel (M)" msgstr "" #: ../api/threads/thread.cpp:114 ../api/threads/thread.cpp:117 #: ../api/threads/thread.cpp:120 msgid "Threading" msgstr "" #: ../api/threads/thread.cpp:114 ../api/threads/thread.cpp:117 msgid "Error while running thread: " msgstr "" #: ../api/threads/thread.cpp:114 ../api/threads/thread.cpp:117 msgid " : " msgstr "" #: ../api/threads/thread.cpp:120 msgid "Internal error while running thread: " msgstr "" #: ../api/widgetserializable.cpp:60 msgid "Creation Date" msgstr "" #: ../api/widgetserializable.cpp:65 msgid "Modification Date" msgstr "" #: ../api/widgetserializable.cpp:68 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ../wx/gnkinforme/gnkinformebase.cpp:40 msgid "Physician" msgstr "" #: ../commands/acquirefromurlcommand.cpp:55 #: ../commands/pacsdownloadcommand.cpp:88 #: ../commands/synchronizationcommand.cpp:70 msgid "Downloading files ..." msgstr "" #: ../commands/acquirefromurlcommand.cpp:69 #: ../commands/synchronizationcommand.cpp:91 #: ../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, c-format msgid "Downloading file %d" msgstr "" #: ../commands/acquirefromurlcommand.cpp:81 msgid "Error downloading file: " msgstr "" #: ../commands/acquirefromurlcommand.cpp:95 #: ../commands/pacsdownloadcommand.cpp:114 #: ../commands/synchronizationcommand.cpp:121 msgid "Internal Error" msgstr "" #: ../commands/acquirefromurlcommand.cpp:115 msgid "Error downloading files: " msgstr "" #: ../commands/autocleaningcommand.cpp:62 msgid "Cleaning dicomdir..." msgstr "" #: ../commands/cloudcommand.cpp:67 msgid "Downloading files..." msgstr "" #: ../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "" #: ../commands/cloudcommand.cpp:183 msgid "Unknown operation" msgstr "" #: ../commands/cloudcommand.cpp:188 msgid "Error in cloud operation. See log to get more details..." msgstr "" #: ../commands/cloudcommand.cpp:249 msgid "Could to retrieve study." msgstr "" #: ../commands/cloudcommand.cpp:260 ../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" #: ../commands/cloudcommand.cpp:262 msgid "Error retrieving study." msgstr "" #: ../commands/cloudcommand.cpp:271 msgid "Study successfully retrieved." msgstr "" #: ../commands/cloudcommand.cpp:271 ../commands/cloudcommand.cpp:405 msgid "Speed" msgstr "" #: ../commands/cloudcommand.cpp:271 ../commands/cloudcommand.cpp:405 msgid "bytes/sec during" msgstr "" #: ../commands/cloudcommand.cpp:271 ../commands/cloudcommand.cpp:405 msgid "seconds" msgstr "" #: ../commands/cloudcommand.cpp:275 msgid "Empty Response" msgstr "" #: ../commands/cloudcommand.cpp:289 msgid "Extracting files..." msgstr "" #: ../commands/cloudcommand.cpp:313 ../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "" #: ../commands/cloudcommand.cpp:383 msgid "Could to perform query." msgstr "" #: ../commands/cloudcommand.cpp:396 msgid "Error perfoming the query." msgstr "" #: ../commands/cloudcommand.cpp:405 msgid "Query successfully performed." msgstr "" #: ../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "" #: ../commands/cloudcommand.cpp:472 msgid "Unknown JSon attribute:" msgstr "" #: ../commands/cloudcommand.cpp:482 msgid "Error parsing JSon: " msgstr "" #: ../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "" #: ../commands/cloudcommand.cpp:515 ../commands/openremovableunit.cpp:148 #: ../main/gui/open/abrir.cpp:119 ../main/gui/open/abrir.cpp:159 #: ../main/gui/open/opendialogs.cpp:146 msgid "Storing in the history..." msgstr "" #: ../commands/comandoactualizaciones.cpp:46 #: ../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ../main/gui/mainwindow/ventanaprincipal.cpp:536 msgid "Check Updates" msgstr "" #: ../commands/comandoactualizaciones.cpp:136 msgid "Not enough parameters found on XML" msgstr "" #: ../commands/comandoactualizaciones.cpp:145 msgid "XML parsing internal error" msgstr "" #: ../commands/comandoactualizaciones.cpp:156 msgid "Error checking application updates" msgstr "" #: ../commands/comandoactualizaciones.cpp:156 msgid "Ginkgo CADx updates" msgstr "" #: ../commands/comandoactualizaciones.cpp:170 msgid "Internal error checking updates" msgstr "" #: ../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "" #: ../commands/comandocarga.cpp:92 ../commands/comandocarga.cpp:96 msgid "Exception loading:" msgstr "" #: ../commands/comandocarga.cpp:100 msgid "Study malformed or unsupported" msgstr "" #: ../commands/comandocarga.cpp:129 ../commands/comandocarga.cpp:139 msgid "Error loading study: " msgstr "" #: ../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "" #: ../commands/comandocarga.cpp:144 msgid "Error loading study." msgstr "" #: ../commands/comandocarga.cpp:149 msgid "Load canceled by user" msgstr "" #: ../commands/comandocarga.cpp:156 #: ../main/gui/history3/historypanel3.cpp:1056 #: ../main/gui/history3/historypanel3.cpp:1063 #: ../main/gui/history3/historypanel3.cpp:1068 msgid "Error loading study" msgstr "" #: ../commands/comandoexportacion.cpp:81 #: ../commands/exporttodicomdircommand.cpp:214 msgid "Exporting files..." msgstr "" #: ../commands/comandoexportacion.cpp:105 #: ../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "" #: ../commands/comandoexportacion.cpp:158 #, c-format msgid "Exporting file %d of %d" msgstr "" #: ../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "" #: ../commands/comandoexportacion.cpp:233 msgid "image_%m-%d-%Y_" msgstr "" #: ../commands/comandoincluirhistorial.cpp:108 msgid "Exploring directory ..." msgstr "" #: ../commands/comandoincluirhistorial.cpp:122 msgid "Reading DICOMDIR ..." msgstr "" #: ../commands/comandoincluirhistorial.cpp:142 #: ../commands/comandoincluirhistorial.cpp:156 #: ../commands/comandoincluirhistorial.cpp:177 msgid "Including files in the history .." msgstr "" #: ../commands/comandoincluirhistorial.cpp:196 msgid "Exploring directory " msgstr "" #: ../commands/comandoincluirhistorial.cpp:256 #: ../commands/linkhistorycommand.cpp:118 msgid "Image acquisition finished." msgstr "" #: ../commands/comandoincluirhistorial.cpp:258 #, c-format msgid "There have been included %d images." msgstr "" #: ../commands/comandoincluirhistorial.cpp:261 #: ../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" #: ../commands/comandoincluirhistorial.cpp:273 #: ../commands/linkhistorycommand.cpp:133 msgid "This files doesn't exist:" msgstr "" #: ../commands/comandoincluirhistorial.cpp:284 #: ../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "" #: ../commands/comandoincluirhistorial.cpp:296 #: ../commands/linkhistorycommand.cpp:156 msgid "This files are Dicom Dirs:" msgstr "" #: ../commands/comandopacs.cpp:58 ../commands/pacsdownloadcommand.cpp:61 #: ../commands/sendpacscommand.cpp:137 msgid "There is not any Remote PACS configured" msgstr "" #: ../commands/comandopacs.cpp:84 msgid "Querying PACS ..." msgstr "" #: ../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "" #: ../commands/comandopacs.cpp:98 msgid "Starting Search ..." msgstr "" #: ../commands/comandopacs.cpp:108 ../commands/pacsdownloadcommand.cpp:101 msgid "Server ID not found. ID = " msgstr "" #: ../commands/comandopacs.cpp:110 ../commands/comandopacs.cpp:112 #: ../commands/comandopacs.cpp:114 ../commands/comandopacs.cpp:116 msgid "Query error with PACS Id " msgstr "" #: ../commands/comandopacs.cpp:116 #: ../main/controllers/controladoreventos.cpp:284 #: ../main/gui/history3/historypanel3.cpp:1068 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error" msgstr "" #: ../commands/comandopacs.cpp:135 msgid "Failed to perform search: " msgstr "" #: ../commands/dbmigrationcommand.cpp:94 #: ../commands/dbmigrationcommand.cpp:103 msgid "Migrating old DICOM Dir ..." msgstr "" #: ../commands/dbmigrationcommand.cpp:99 #: ../commands/dbmigrationcommand.cpp:108 msgid "Including files ..." msgstr "" #: ../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" #: ../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" #: ../commands/dbmigrationcommand.cpp:116 ../commands/dicomizecommand.cpp:181 #: ../commands/openremovableunit.cpp:74 ../commands/openremovableunit.cpp:110 #: ../commands/pdfextractercommand.cpp:113 #: ../commands/pdfextractercommand.cpp:122 #: ../commands/pdfextractercommand.cpp:130 #: ../main/controllers/historycontroller.cpp:447 #: ../main/controllers/historycontroller.cpp:1680 #: ../main/controllers/historycontroller.cpp:1725 #: ../main/controllers/historycontroller.cpp:1779 #: ../main/controllers/historycontroller.cpp:1801 #: ../main/controllers/historycontroller.cpp:1825 #: ../main/controllers/historycontroller.cpp:1882 #: ../main/controllers/historycontroller.cpp:1939 #: ../main/controllers/historycontroller.cpp:1976 #: ../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ../main/gui/anonymize/anonymizepanel.cpp:95 #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ../main/gui/export/parametrosprincipales.cpp:161 #: ../main/gui/export/parametrosprincipales.cpp:167 #: ../main/gui/history3/historypanel3.cpp:904 #: ../main/gui/history3/historypanel3.cpp:975 #: ../main/gui/history3/historypanel3.cpp:1045 #: ../main/gui/history3/historypanel3.cpp:1078 #: ../main/gui/history3/historypanel3.cpp:1106 #: ../main/gui/history3/historypanel3.cpp:1119 #: ../main/gui/history3/historypanel3.cpp:1171 #: ../main/gui/import/pasoperfilimportacion.cpp:170 #: ../main/gui/import/pasoperfilimportacion.cpp:188 #: ../main/gui/import/selectimagesimportation.cpp:141 #: ../main/gui/import/selectimagesimportation.cpp:342 #: ../main/gui/import/selectimagesimportation.cpp:743 #: ../main/gui/import/selectimagesimportation.cpp:761 #: ../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ../main/gui/login/dialogologin.cpp:50 #: ../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ../main/gui/open/opendialogs.cpp:58 ../main/gui/open/opendialogs.cpp:62 #: ../main/gui/open/opendialogs.cpp:134 #: ../main/gui/progress/statusbarprogreso.cpp:284 #: ../main/gui/progress/statusbarprogreso.cpp:287 #: ../main/gui/progress/statusbarprogreso.cpp:292 #: ../main/tools/anonymizetool.cpp:46 ../main/tools/exportdicomdirtool.cpp:57 #: ../main/tools/sendpacstool.cpp:59 ../main/tools/showtagshistorytool.cpp:42 #: ../main/gui/history3/openwithdialog.h:72 msgid "Info" msgstr "" #: ../commands/dbmigrationcommand.cpp:123 msgid "Migration finisthed successfully" msgstr "" #: ../commands/dialogopathssobreescribirbase.cpp:27 #: ../commands/dialogopathssobreescribirbase.cpp:62 #: ../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "Overwrite" msgstr "" #: ../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr "" #: ../commands/dialogopathssobreescribirbase.cpp:65 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ../main/gui/history3/historypanel3base.cpp:339 #: ../main/gui/history3/historypanel3base.cpp:415 #: ../main/gui/history3/historypanel3base.cpp:486 #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ../main/gui/open/opendialogsbase.cpp:53 #: ../main/gui/open/opendialogsbase.cpp:131 #: ../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ../widgets/gui/calibracionbase.cpp:86 #: ../widgets/gui/selecciontextobase.cpp:60 #: ../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "" #: ../commands/dicomizationcompletebase.cpp:24 #: ../commands/dicomizationcompletebase.cpp:33 #: ../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "" #: ../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "" #: ../commands/dicomizationcompletebase.cpp:56 msgid "Don't show this message again" msgstr "" #: ../commands/dicomizationcompletebase.cpp:62 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ../main/gui/history3/historypanel3base.cpp:411 #: ../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ../widgets/gui/calibracionbase.cpp:82 #: ../widgets/gui/selecciontextobase.cpp:56 msgid "Accept" msgstr "" #: ../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "" #: ../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "" #: ../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "" #: ../commands/dicomizecommand.cpp:179 msgid "Import process failed:" msgstr "" #: ../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" #: ../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "" #: ../commands/dicomizecommand.cpp:370 msgid "Unknown error in dicomization process" msgstr "" #: ../commands/dicomizecommand.cpp:431 ../commands/dicomizecommand.cpp:442 #: ../commands/sendpacscommand.cpp:185 msgid "Error sending evidences:" msgstr "" #: ../commands/dicomizecommand.cpp:437 ../commands/dicomizecommand.cpp:448 msgid "Can not upload to the PACS:\n" msgstr "" #: ../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" #: ../commands/exporttodicomdircommand.cpp:261 #: ../commands/exporttodicomdircommand.cpp:338 #, c-format msgid "Exporting series %d of %d" msgstr "" #: ../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "" #: ../commands/exporttodicomdircommand.cpp:279 #: ../commands/exporttodicomdircommand.cpp:385 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ../main/gui/export/parametrosprincipales.cpp:167 msgid "There was an error creating directory" msgstr "" #: ../commands/exporttodicomdircommand.cpp:303 #: ../commands/exporttodicomdircommand.cpp:408 msgid "There was an error writing file" msgstr "" #: ../commands/exporttodicomdircommand.cpp:358 msgid "There was an error anonymizing files" msgstr "" #: ../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "" #: ../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "" #: ../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "" #: ../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "" #: ../commands/incomingdicomassociationcommand.cpp:274 #: ../commands/incomingdicomassociationcommand.cpp:355 msgid "Ignoring incoming operation " msgstr "" #: ../commands/incomingdicomassociationcommand.cpp:274 #: ../commands/incomingdicomassociationcommand.cpp:298 #: ../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "" #: ../commands/incomingdicomassociationcommand.cpp:473 #: ../commands/pacsdownloadcommand.cpp:170 #: ../commands/pacsdownloadcommand.cpp:179 msgid "Including files..." msgstr "" #: ../commands/linkhistorycommand.cpp:68 msgid "Linking study..." msgstr "" #: ../commands/openremovableunit.cpp:42 ../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "" #: ../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" #: ../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" #: ../commands/openremovableunit.cpp:130 msgid "Select drive you want to open" msgstr "" #: ../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" #: ../commands/pacsdownloadcommand.cpp:134 msgid "Error downloading study: " msgstr "" #: ../commands/pdfextractercommand.cpp:103 msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "" #: ../commands/pdfextractercommand.cpp:103 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ../main/gui/progress/statusbarprogreso.cpp:278 #: ../widgets/gui/calibracion.cpp:205 ../widgets/gui/calibracion.cpp:209 #: ../widgets/gui/calibracion.cpp:219 ../widgets/gui/calibracion.cpp:225 #: ../widgets/gui/calibracion.cpp:229 msgid "Error" msgstr "" #: ../commands/pdfextractercommand.cpp:113 #: ../commands/pdfextractercommand.cpp:122 #: ../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "" #: ../commands/pdfextractercommand.cpp:130 msgid "PDF files extracted successfully..." msgstr "" #: ../commands/secondarycapturedicomizecommand.cpp:73 msgid "Ginkgo CADx Secondary Capture" msgstr "" #: ../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "" #: ../commands/sendhl7command.cpp:73 msgid "Message successfully sent" msgstr "" #: ../commands/sendhl7command.cpp:77 msgid "Unknown protocol" msgstr "" #: ../commands/sendhl7command.cpp:80 ../commands/sendhl7command.cpp:93 #: ../commands/sendhl7command.cpp:145 msgid "Error sending message:" msgstr "" #: ../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "" #: ../commands/sendhl7command.cpp:93 ../commands/sendhl7command.cpp:94 msgid "Unknown error" msgstr "" #: ../commands/sendhl7command.cpp:134 msgid "Failed to start connection" msgstr "" #: ../commands/sendhl7command.cpp:148 msgid "Error sending message. It was sent " msgstr "" #: ../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr "" #: ../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "" #: ../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "" #: ../commands/sendhl7command.cpp:258 msgid "Failed delivery confirmation:" msgstr "" #: ../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "" #: ../commands/sendpacscommand.cpp:51 msgid "Send files to PACS" msgstr "" #: ../commands/sendpacscommand.cpp:155 msgid "Uploading files ..." msgstr "" #: ../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "" #: ../commands/sendpacscommand.cpp:181 msgid "Error:" msgstr "" #: ../commands/sendpacscommand.cpp:189 msgid "Error sending evidences: Internal error." msgstr "" #: ../commands/sendpacscommand.cpp:203 msgid "Error uploading the study to PACS: " msgstr "" #: ../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" #: ../commands/sendpacscommand.cpp:206 msgid "Retry send to PACS" msgstr "" #: ../commands/synchronizationcommand.cpp:104 msgid "Error downloading file" msgstr "" #: ../commands/synchronizationcommand.cpp:141 msgid "Error synchronizing study: " msgstr "" #: ../commands/thumbnailscommand.cpp:107 ../commands/thumbnailscommand.cpp:133 #: ../commands/thumbnailscommand.cpp:247 ../commands/thumbnailscommand.cpp:376 #: ../commands/thumbnailscommand.cpp:382 #: ../main/gui/import/selectimagesimportation.cpp:504 msgid "Creating Thumbnail..." msgstr "" #: ../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "" #: ../export/tools/iaddfiletohistorytool.cpp:19 #: ../main/gui/history3/historypanel3.cpp:632 msgid "Open study" msgstr "" #: ../export/tools/iangletool.cpp:19 msgid "Angle \tCtrl+A" msgstr "" #: ../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "" #: ../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "" #: ../export/tools/icolormaptool.cpp:20 msgid "Color Map" msgstr "" #: ../export/tools/icopyimagetoclipboardtool.cpp:19 #: ../main/gui/open/opendialogsbase.cpp:46 #: ../main/gui/open/opendialogsbase.cpp:198 msgid "Copy" msgstr "" #: ../export/tools/icornerannotationstool.cpp:20 msgid "Window annotations" msgstr "" #: ../export/tools/idetachwindowtool.cpp:19 msgid "Detach window" msgstr "" #: ../export/tools/iimageexporttool.cpp:19 msgid "Export image..." msgstr "" #: ../export/tools/imarkertool.cpp:20 msgid "Marking Tools \tCtrl+M" msgstr "" #: ../export/tools/imetricgridtool.cpp:20 msgid "Metric grid" msgstr "" #: ../export/tools/inotetool.cpp:19 msgid "Text Note \tCtrl+N" msgstr "" #: ../export/tools/ipacsuploadtool.cpp:19 msgid "Upload study..." msgstr "" #: ../export/tools/ipixelsbluringtool.cpp:20 msgid "Pixels blurring" msgstr "" #: ../export/tools/ipointertool.cpp:19 msgid "Pointer \tEsc" msgstr "" #: ../export/tools/iqueryretrievetool.cpp:19 #: ../main/tools/queryretrievehistorytool.cpp:25 #: ../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "" #: ../export/tools/iresettool.cpp:19 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 msgid "Reset" msgstr "" #: ../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "" #: ../export/tools/iruletool.cpp:19 msgid "Rule \tCtrl+R" msgstr "" #: ../export/tools/isecondarycapturetool.cpp:19 msgid "Save snapshot as new series..." msgstr "" #: ../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "" #: ../export/tools/ishowtagstool.cpp:19 #: ../main/tools/showtagshistorytool.cpp:27 msgid "DICOM inspector" msgstr "" #: ../export/tools/isimpleprinttool.cpp:19 #: ../main/tools/simpleprinttool.cpp:226 msgid "Print" msgstr "" #: ../export/tools/istartdicomizationtool.cpp:19 msgid "Dicomize..." msgstr "" #: ../export/tools/itoolpan.cpp:19 msgid "Pan \tCtrl+P" msgstr "" #: ../export/tools/itoolslider.cpp:19 msgid "Slider \tCtrl+S" msgstr "" #: ../export/tools/itoolwindowlevel.cpp:19 msgid "Window/Level \tCtrl+W" msgstr "" #: ../export/tools/itoolzoom.cpp:19 msgid "Zoom \tCtrl+O" msgstr "" #: ../export/tools/itrackballtool.cpp:19 msgid "Trackball \tCtrl+T" msgstr "" #: ../export/tools/iundotool.cpp:20 ../main/tools/undotool.cpp:109 msgid "Undo" msgstr "" #: ../export/tools/ivideotool.cpp:19 msgid "Video \tCtrl+Space" msgstr "" #: ../export/tools/iwindowlayouttool.cpp:20 msgid "Window layout" msgstr "" #: ../main/controllers/controladorcarga.cpp:161 msgid "Studies with" msgstr "" #: ../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr "" #: ../main/controllers/controladorcarga.cpp:210 msgid "Reading properties" msgstr "" #: ../main/controllers/controladorcarga.cpp:219 #: ../main/controllers/controladorcarga.cpp:642 #: ../main/controllers/controladorcarga.cpp:888 #: ../main/controllers/streaming/streamingloader.cpp:600 msgid "Error reading the study: " msgstr "" #: ../main/controllers/controladorcarga.cpp:224 #: ../main/controllers/controladorcarga.cpp:229 #: ../main/controllers/controladorcarga.cpp:647 #: ../main/controllers/controladorcarga.cpp:893 msgid "Internal error reading the study: " msgstr "" #: ../main/controllers/controladorcarga.cpp:269 #: ../main/controllers/controladorcarga.cpp:281 #: ../main/controllers/controladorcarga.cpp:905 msgid "Spacing is not valid: (" msgstr "" #: ../main/controllers/controladorcarga.cpp:305 #: ../main/controllers/controladorcarga.cpp:338 #: ../main/controllers/controladorcarga.cpp:372 #: ../main/controllers/controladorcarga.cpp:408 #: ../main/controllers/controladorcarga.cpp:441 #: ../main/controllers/controladorcarga.cpp:474 #: ../main/controllers/controladorcarga.cpp:507 #: ../main/controllers/controladorcarga.cpp:540 #: ../main/controllers/controladorcarga.cpp:573 #: ../main/controllers/controladorcarga.cpp:606 #: ../main/controllers/controladorcarga.cpp:935 msgid "Error loading the study: Out of memory" msgstr "" #: ../main/controllers/controladorcarga.cpp:375 msgid "Error loading the study: Internal Error" msgstr "" #: ../main/controllers/controladorcarga.cpp:630 #: ../main/controllers/streaming/streamingloader.cpp:1023 #: ../main/controllers/streaming/streamingloader.cpp:1223 #: ../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "" #: ../main/controllers/controladorcarga.cpp:651 #: ../main/controllers/controladorcarga.cpp:960 msgid "Process canceled by user." msgstr "" #: ../main/controllers/controladorcarga.cpp:878 msgid "Interpreting properties" msgstr "" #: ../main/controllers/controladorcarga.cpp:917 msgid "Spacing of the image is invalid: (" msgstr "" #: ../main/controllers/controladorcarga.cpp:942 msgid "Reading dataset" msgstr "" #: ../main/controllers/controladorcarga.cpp:951 msgid "Error reading the study:" msgstr "" #: ../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "" #: ../main/controllers/controladorcarga.cpp:972 msgid "load" msgstr "" #: ../main/controllers/controladorenviohl7.cpp:40 msgid "Stopping HL7 sender" msgstr "" #: ../main/controllers/controladorenviohl7.cpp:63 #: ../main/controllers/controladorenviohl7.cpp:76 msgid "Error starting HL7 sender" msgstr "" #: ../main/controllers/controladorenviohl7.cpp:65 #: ../main/controllers/controladorenviohl7.cpp:78 msgid "HL7 sender started" msgstr "" #: ../main/controllers/controladorenviohl7.cpp:108 msgid "HL7 controller destroyed" msgstr "" #: ../main/controllers/controladorenviohl7.cpp:150 msgid "Error processing message" msgstr "" #: ../main/controllers/controladoreventos.cpp:284 #: ../main/controllers/pacscontroller.cpp:1549 #: ../main/controllers/pacscontroller.cpp:1553 #: ../main/controllers/pacscontroller.cpp:1557 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ../main/gui/import/pasosimportacionbase.cpp:195 #: ../wx/gnkinforme/gnkinformebase.cpp:184 msgid "Unknown" msgstr "" #: ../main/controllers/controladorextensiones.cpp:110 msgid "Loading" msgstr "" #: ../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "" #: ../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "" #: ../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "" #: ../main/controllers/controladorextensiones.cpp:153 msgid "Could not find entry point" msgstr "" #: ../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "" #: ../main/controllers/controladorhl7.cpp:74 msgid "Integration engine hostname not set" msgstr "" #: ../main/controllers/controladorhl7.cpp:77 msgid "Integration engine port not set" msgstr "" #: ../main/controllers/controladorhl7.cpp:91 msgid "Unsupported protocol" msgstr "" #: ../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "" #: ../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "" #: ../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, c-format msgid "Downloading file %d/%d" msgstr "" #: ../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "" #: ../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "" #: ../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "" #: ../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ../main/controllers/dcmtk/dicomimg2dcm.cpp:359 msgid "Image format not supported" msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:200 msgid "Receiving Association failed: " msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:209 msgid "Association received" msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:210 msgid "Parameters:" msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:272 #: ../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:274 msgid "No valid presentation contexts" msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:282 msgid "Association(dicom://" msgstr "" #: ../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "" #: ../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "" #: ../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr "" #: ../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, c-format msgid "Uploading file %d of %d" msgstr "" #: ../main/controllers/dicommanager.cpp:504 #: ../main/controllers/dicommanager.cpp:531 msgid "Extracting file..." msgstr "" #: ../main/controllers/historycontroller.cpp:323 msgid "Error creating history database " msgstr "" #: ../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr "" #: ../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" #: ../main/controllers/historycontroller.cpp:343 msgid "Error creating dicomDir database " msgstr "" #: ../main/controllers/historycontroller.cpp:425 #: ../main/controllers/historycontroller.cpp:441 msgid "Error creating thumbnails database " msgstr "" #: ../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "" #: ../main/controllers/historycontroller.cpp:560 msgid "Including image " msgstr "" #: ../main/controllers/historycontroller.cpp:560 #: ../main/controllers/historycontroller.cpp:707 msgid " of " msgstr "" #: ../main/controllers/historycontroller.cpp:707 msgid "Linking image " msgstr "" #: ../main/controllers/historycontroller.cpp:1680 #: ../main/controllers/historycontroller.cpp:1725 #: ../main/controllers/historycontroller.cpp:1779 #: ../main/controllers/historycontroller.cpp:1801 #: ../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "" #: ../main/controllers/historycontroller.cpp:1882 #: ../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "" #: ../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "" #: ../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" #: ../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "" #: ../main/controllers/integrationcontroller.cpp:493 msgid "Malformed template Id (" msgstr "" #: ../main/controllers/integrationcontroller.cpp:493 #: ../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" #: ../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "" #: ../main/controllers/integrationcontroller.cpp:540 msgid "Template Id unsupported (" msgstr "" #: ../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "" #: ../main/controllers/integrationcontroller.cpp:566 msgid "Unknown module Id (" msgstr "" #: ../main/controllers/integrationcontroller.cpp:592 msgid "Empty configuration" msgstr "" #: ../main/controllers/integrationcontroller.cpp:631 msgid "XML Parser Not Found. Key=" msgstr "" #: ../main/controllers/log4cplus/guiappender.cpp:75 msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:73 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ../main/gui/history3/historypanel3base.cpp:48 #: ../main/gui/import/pasosimportacionbase.cpp:227 msgid "Patient" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:73 msgid "Patient ID" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:86 #: ../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ../main/gui/history3/historypanel3.cpp:227 #: ../main/gui/open/opendialogs.cpp:50 msgid "Modality" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:98 msgid "Dimensions" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:109 #, c-format msgid "Made with %s" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:167 #: ../main/controllers/modalitysettingscontroller.cpp:338 #: ../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "" #: ../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "" #: ../main/controllers/pacscontroller.cpp:1212 msgid "Downloading file" msgstr "" #: ../main/controllers/pacscontroller.cpp:1318 msgid "Error downloading WADO file" msgstr "" #: ../main/controllers/pacscontroller.cpp:1318 msgid "Check PACS configuration" msgstr "" #: ../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "" #: ../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "" #: ../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "" #: ../main/controllers/pacscontroller.cpp:1428 msgid "Invalid HTTP response" msgstr "" #: ../main/controllers/pacscontroller.cpp:1433 msgid "Invalid HTTP code" msgstr "" #: ../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "" #: ../main/controllers/pacscontroller.cpp:1472 msgid "PACS-Service" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:97 #: ../main/controllers/parserxmlspanish.cpp:94 msgid "Omitted Identificator" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:105 #: ../main/controllers/parserxmlspanish.cpp:102 msgid "Omitted AET" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:113 #: ../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:121 #: ../main/controllers/parserxmlspanish.cpp:118 msgid "Omitted port" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:206 #: ../main/controllers/parserxmlenglish.cpp:237 #: ../main/controllers/parserxmlspanish.cpp:188 #: ../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:212 #: ../main/controllers/parserxmlspanish.cpp:194 msgid "Port is not a valid number" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:248 #: ../main/controllers/parserxmlspanish.cpp:228 msgid "The port is not a valid number" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:265 #: ../main/controllers/parserxmlspanish.cpp:246 msgid "Setting not found" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:391 msgid "\"code\" attribute expected at \"patient\" scope" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:427 msgid "\"code\" attribute expected at \"physician\" scope" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:434 msgid "\"value\" attribute expected at \"physician\" scope" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:445 msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:483 msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:548 #: ../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:552 #: ../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "" #: ../main/controllers/parserxmlenglish.cpp:570 #: ../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:340 msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:402 msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:438 msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:445 msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:486 msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:524 msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "" #: ../main/controllers/parserxmlspanish.cpp:559 msgid "id_application expected" msgstr "" #: ../main/controllers/smartretrievecontroller.cpp:124 #: ../main/gui/acquisition/dialogoadquisicion.cpp:920 msgid "Downloading from PACS..." msgstr "" #: ../main/controllers/streaming/streamingloader.cpp:303 #: ../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" #: ../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ../main/gui/history3/historytablemodel.cpp:403 #: ../main/gui/history3/historytablemodel.cpp:415 #: ../main/gui/history3/historytablemodel.cpp:470 #: ../main/gui/history3/historytablemodel.cpp:482 #: ../main/gui/open/dicomdirtablemodel.cpp:102 #: ../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 msgid "Exploring PACS..." msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ../main/gui/history3/historypanel3.cpp:225 #: ../main/gui/open/opendialogs.cpp:49 msgid "Patient id" msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ../main/gui/history3/historypanel3.cpp:224 #: ../main/gui/open/opendialogs.cpp:48 msgid "Patient name" msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:479 msgid "Study Instance UID" msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ../main/gui/history3/historypanel3.cpp:231 #: ../main/gui/open/opendialogs.cpp:53 msgid "Accession number" msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:481 msgid "Study date" msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:482 msgid "Study time" msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:490 msgid "Series Instance UID" msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:492 msgid "Series date" msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:493 msgid "Series time" msgstr "" #: ../main/gui/acquisition/acquisitiontablemodel.cpp:519 msgid "No results found" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:96 msgid "Write query name" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:101 msgid "This query name is in use, do you want to overwrite it?" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 msgid "Id" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 msgid "Date Time" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ../main/gui/history3/historypanel3.cpp:229 #: ../main/gui/import/pasosimportacionbase.cpp:298 #: ../main/gui/import/pasosimportacionbase.cpp:340 #: ../main/gui/open/opendialogs.cpp:52 msgid "Description" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ../main/gui/import/pasosimportacionbase.cpp:276 msgid "Accession Number" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:210 msgid "Store query" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:211 msgid "Remove query" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:278 msgid "There is no any PACS configured" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:54 msgid "Study UID" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "Search" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:519 msgid "Download series" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 msgid "Download study" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:535 msgid "Link series" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:537 msgid "Link study" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:551 msgid "Properties..." msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:686 msgid "You must specify at least a modality or a period of time" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:709 msgid "Select a valid query" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:721 msgid "Select a valid PACS Server" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid "Download of modality " msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "Modality download error" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:786 msgid "search results" msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:913 msgid "Downloading serie..." msgstr "" #: ../main/gui/acquisition/dialogoadquisicion.cpp:916 msgid "Downloading study..." msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:165 msgid "PACS acquisition is restricted" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:96 msgid "Server" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ../main/gui/import/pasosimportacionbase.cpp:284 #: ../main/gui/import/pasosimportacionbase.cpp:326 #: ../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ../main/gui/history3/historypanel3base.cpp:81 msgid "Any date" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ../main/gui/history3/historypanel3base.cpp:85 msgid "Today AM" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ../main/gui/history3/historypanel3base.cpp:88 msgid "Today PM" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ../main/gui/history3/historypanel3base.cpp:91 msgid "Today" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ../main/gui/history3/historypanel3base.cpp:100 msgid "Yesterday" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ../main/gui/history3/historypanel3base.cpp:103 msgid "Last 7 days" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ../main/gui/history3/historypanel3base.cpp:106 msgid "Last 30 days" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ../main/gui/history3/historypanel3base.cpp:109 msgid "Last 3 months" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 msgid "Stored queries" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:216 msgid "Select stored queries..." msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ../main/gui/open/opendialogsbase.cpp:50 #: ../main/gui/open/opendialogsbase.cpp:202 msgid "Link" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:289 msgid "Download" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:329 msgid "Series does not exist" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ../main/gui/open/opendialogsbase.cpp:127 #: ../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ../main/tools/metricgridtool.cpp:101 msgid "Ok" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ../main/gui/acquisition/dialogoadquisicionbase.h:151 msgid "Download again" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:441 msgid "Open" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ../main/gui/acquisition/dialogoadquisicionbase.h:179 msgid "Set query name" msgstr "" #: ../main/gui/acquisition/downloadagaindialog.cpp:32 msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ../main/gui/acquisition/downloadagaindialog.cpp:34 msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ../main/gui/anonymize/anonymizedialog.cpp:64 #: ../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ../main/gui/export/parametrosprincipales.cpp:194 msgid "Exporting images ..." msgstr "" #: ../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:21 msgid "Common tags" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 msgid "Patient's name and surname" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 msgid "Patient Id" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:44 msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:71 msgid "Add new..." msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ../main/tools/anonymizetool.cpp:26 #: ../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:136 msgid "Create new" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ../main/gui/anonymize/anonymizepanelbase.h:136 msgid "Add DICOM tag" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:199 msgid "Group" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:203 msgid "Element" msgstr "" #: ../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ../widgets/wangulo.cpp:1114 msgid "Value" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 msgid "Top right corner annotation" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 msgid "Top left corner annotation" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 msgid "Bottom left corner annotation" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 msgid "Bottom right corner annotation" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 msgid "You must fill in all fields" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 msgid "Window/level label in use" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 msgid "Window" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 msgid "Level" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 msgid "Do you confirm the removal of the preset?" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Data modified" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 msgid "Modality settings" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 msgid "Default modality settings" msgstr "" #: ../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, c-format msgid "%s settings" msgstr "" #: ../main/gui/configuration/dialogoconfiguracion.cpp:60 msgid "settings" msgstr "" #: ../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Export Configuration" msgstr "" #: ../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Ini Files(*.ini)|*.ini" msgstr "" #: ../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" #: ../main/gui/configuration/dialogoconfiguracion.cpp:266 msgid "Existing file" msgstr "" #: ../main/gui/configuration/dialogoconfiguracion.cpp:273 msgid "Export successfully completed" msgstr "" #: ../main/gui/configuration/dialogoconfiguracion.cpp:275 msgid "There was an error during exportation" msgstr "" #: ../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Import Configuration" msgstr "" #: ../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Ini files(*.ini)|*.ini" msgstr "" #: ../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "" #: ../main/gui/configuration/dialogoconfiguracion.cpp:300 msgid "There was an error during importation, check permissions" msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 msgid "Dicom tag" msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 msgid "Split horizontally..." msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 msgid "Split vertically..." msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ../main/tools/windowlayouttool.cpp:273 msgid "Split active horizontally" msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ../main/tools/windowlayouttool.cpp:274 msgid "Split active vertically" msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 msgid "New hanging protocol" msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, c-format msgid "Window %d" msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "Yes" msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "" #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 msgid "Hanging protocols" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 msgid "One day" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 msgid "Two days" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 msgid "Three days" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 msgid "Two weeks" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 msgid "One month" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 msgid "Three months" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 msgid "Local database" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 msgid "Local DICOM Dir setup" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 msgid "Select DICOMDIR" msgstr "" #: ../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" #: ../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "" #: ../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "" #: ../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "" #: ../main/gui/configuration/panelconfiguracionextensiones.cpp:126 msgid "Extensions settings" msgstr "" #: ../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "" #: ../main/gui/configuration/panelconfiguraciongeneral.cpp:94 msgid "Port has to be a valid number" msgstr "" #: ../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "" #: ../main/gui/configuration/panelconfiguraciongeneral.cpp:190 msgid "General configuration parameters" msgstr "" #: ../main/gui/configuration/panelconfiguraciongeneral.cpp:196 msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "" #: ../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "" #: ../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "" #: ../main/gui/configuration/panelconfiguracionhce.cpp:134 msgid "Testing conectivity with the server..." msgstr "" #: ../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ../main/gui/configuration/panelconfiguracionhce.cpp:144 msgid "Error connecting to url" msgstr "" #: ../main/gui/configuration/panelconfiguracionhce.cpp:141 msgid "hostname/port not set" msgstr "" #: ../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "" #: ../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "Select certificate" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:255 msgid "Change ..." msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 msgid "Import ..." msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:279 msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:472 msgid "There are this errors: " msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:525 msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:558 msgid "Testing the connection to the node ..." msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:561 msgid "DICOM Error" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:607 msgid "The service did not respond correctly to the DICOM standard" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:616 msgid "Invalid port number" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:622 msgid "WADO Error" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:703 msgid "Use by default" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:795 msgid "DICOM nodes" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:800 msgid "DICOM nodes settings" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "" #: ../main/gui/configuration/panelconfiguracionpacs.cpp:1101 msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ../main/gui/export/pasosexportacionbase.cpp:20 msgid "Profile" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:263 msgid "Set property active" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Set property inactive" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:265 msgid "Set default value" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:352 msgid "Set by user" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:400 msgid "Profile name can't be repeated" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:498 msgid "Profiles Settings" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:507 msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "" #: ../main/gui/configuration/panelconfiguracionpermisos.cpp:671 msgid "Confirm the removal of the profile " msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:53 msgid "New User" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:100 msgid "User name repeated" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:117 msgid "Password has to contain at least 6 characters" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:141 msgid "No login" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 msgid "User/Password" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:224 msgid "Password" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:191 msgid "Password is setted" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 msgid "Password is not setted" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:195 msgid "Set password" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:224 msgid "Security Setting" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:302 msgid "User inserted successfully" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:374 msgid "Password changed successfully" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:352 msgid "User deleted successfully" msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "" #: ../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ../main/gui/login/dialogologin.cpp:27 msgid "User" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 msgid "Maximum length of title is 8 characters" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 msgid "Title" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 msgid "Path" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 msgid "Clean before" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 msgid "Clean after" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "" #: ../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 msgid "Location Settings" msgstr "" #: ../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "" #: ../main/gui/configuration/panelconfigurationanonymization.cpp:96 msgid "Anonymization settings" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1370 msgid "Settings" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 msgid "Export config..." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 msgid "Import config..." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 msgid "Physician's name" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 msgid "Physician's Id" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 msgid "Service" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 msgid "Service's name" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 msgid "Service's Id" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 msgid "Local institution" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 msgid "Institution's name" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 msgid "Institution's Id" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 msgid "Dicomized files" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 msgid "Charset" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 msgid "ISO_IR 148" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 msgid "Automatically check for updates" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 msgid "Proxy settings" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 msgid "Enable http proxy" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:218 msgid "Proxy Settings" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 msgid "Server settings" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 msgid "Host" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 msgid "Port" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 msgid "Username" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 msgid "No proxy for addresses containing" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 msgid "DICOM Dir" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 msgid "Auto-cleaning" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 msgid "MB" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ../main/tools/toolwindowlevel.cpp:201 msgid "Reset to default" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 msgid "Local AET" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 msgid "DICOM Nodes" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 msgid "New ..." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 msgid "Edit ..." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ../main/gui/history3/historypanel3.cpp:677 #: ../main/gui/history3/historypanel3.cpp:686 #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ../main/gui/import/selectimagesimportation.cpp:291 #: ../main/managers/widgetsmanager.cpp:1079 msgid "Delete" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 msgid "Set Default" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:388 msgid "DICOM Node" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 msgid "PDU (KB)" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 msgid "Retrieve method" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Move" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Get" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 msgid "WADO URL" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 msgid "Retrieve mode" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ../main/gui/import/pasosimportacionbase.cpp:319 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1395 msgid "Series" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 msgid "Studies" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 msgid "Worklists" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 msgid "Select how do you want to handle MPPS items" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 msgid "DICOM MPPS" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 msgid "HL7 messages" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 msgid "HL7" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 msgid "Abort message" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 msgid "Completed message" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 msgid "In progress message" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 msgid "Default values" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 msgid "Worklist" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 msgid "SSL/TLS" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 msgid "Verify server credentials" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 msgid "Use SSL/TLS" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 msgid "Certificate to use in this connection" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 msgid "Default charset" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 msgid "Advanced" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 msgid "Local AET certificate" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 msgid "Certificate used by Ginkgo CADx" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 msgid "Receiver organization Id" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 msgid "Petitioner System Id" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 msgid "Filler Application Id" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 msgid "Ginkgo CADx Application Id" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 msgid "Integration engine" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 msgid "Hostname / Port" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 msgid "Protocol" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ../main/gui/export/pasosexportacionbase.cpp:28 msgid "Format" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 msgid "Message's format" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 msgid "Test engine" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 msgid "Test Integration Engine connectivity" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 msgid "Ginkgo Extension Title" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 msgid "Edit public key" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 msgid "Public key" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 msgid "Public key in PEM format" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 msgid "Load ..." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 msgid "Private key" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 msgid "Private key in PEM format" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 msgid "Profile name" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 msgid "Set active" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 msgid "Configure location" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 msgid "Location" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 msgid "Security type" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 msgid "Change Password ..." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 msgid "Set main password" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 msgid "Set Password" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:736 msgid "Edit User" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 msgid "User Name" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 msgid "Confirm Password" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 msgid "Properties" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:814 msgid "Edit corner annotations" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue} where GGGG is the tag's group in hexadecimal and EEEE is the " "tag's element." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 msgid "Window/level" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ../main/gui/history3/historytoolmenu.cpp:149 #: ../widgets/gui/selecciontextobase.h:58 msgid "Edit" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 msgid "Default Window/Level" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 msgid "Corner annotations" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 msgid "Setup corner annotations" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 msgid "Setup..." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 msgid "Other settings" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 msgid "Interpolate pixel data" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:885 msgid "Hanging protocol" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 msgid "Opening mode" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 msgid "Study opening criteria" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 msgid "Workspace" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 msgid "Enable/Disable" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 msgid "Top left corner annotations" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 msgid "Setup window" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 msgid "Set default" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 msgid "Open in main window" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 msgid "Setup position..." msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 msgid "Setup undocked window position" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 msgid "Layout" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 msgid "Current layout" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 msgid "Columns" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 msgid "Series criteria" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 msgid "Select opening mode" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 msgid "Tag" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 msgid "Save" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 msgid "Enable background queries" msgstr "" #: ../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 msgid "Smart retrieve" msgstr "" #: ../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 msgid "Smart retrieve settings" msgstr "" #: ../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "" #: ../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ../main/gui/dicomdirexport/dicomdirexportbase.h:64 msgid "Export DICOM" msgstr "" #: ../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "" #: ../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 msgid "Ginkgo CADx private tags" msgstr "" #: ../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ../main/gui/history3/historypanel3.cpp:340 #: ../main/gui/history3/historytoolmenu.cpp:158 msgid "Export" msgstr "" #: ../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ../main/gui/export/parametrosprincipales.cpp:157 msgid "Select the directory where the files will be stored" msgstr "" #: ../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" #: ../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 msgid "Select the DICOM Dir folder" msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 msgid "DICOM Dir migration" msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 msgid "Migrate existing (recommended)" msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 msgid "Continue..." msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 msgid "Select other" msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 msgid "Browse..." msgstr "" #: ../main/gui/export/parametrosprincipales.cpp:106 msgid "DICOM Export" msgstr "" #: ../main/gui/export/parametrosprincipales.cpp:110 msgid "Select the format and the images you want to export" msgstr "" #: ../main/gui/export/parametrosprincipales.cpp:143 msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "" #: ../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" #: ../main/gui/export/parametrosprincipales.cpp:150 msgid "Select file" msgstr "" #: ../main/gui/export/pasosexportacionbase.cpp:32 msgid "DICOM (native format)" msgstr "" #: ../main/gui/export/pasosexportacionbase.cpp:32 msgid "Image (jpg, bmp, png)" msgstr "" #: ../main/gui/export/pasosexportacionbase.cpp:38 msgid "Export all files of opened tab" msgstr "" #: ../main/gui/export/pasosexportacionbase.cpp:55 msgid "JPEG" msgstr "" #: ../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "" #: ../main/gui/export/wxwizardexportacionginkgo.cpp:40 msgid "Image Export Wizard" msgstr "" #: ../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ../main/gui/license/aboutdialogbase.cpp:67 #: ../main/gui/license/aboutdialogbase.cpp:151 #: ../wx/propiedades/wxpropiedadesbase.cpp:54 msgid "&Accept" msgstr "" #: ../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "" #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:32 msgid "Open link" msgstr "" #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:402 msgid "File link:" msgstr "" #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ../main/gui/import/pasosimportacionbase.cpp:270 msgid "Study" msgstr "" #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:216 msgid "User name" msgstr "" #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:397 msgid "Ginkgo Cloud link" msgstr "" #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "" #: ../main/gui/ginkgocloud/downloadcloudbase.cpp:437 msgid "Copy to clipboard" msgstr "" #: ../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "New Ginkgo Cloud study" msgstr "" #: ../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "To download the study, paste this url " msgstr "" #: ../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 msgid "Creator" msgstr "" #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 msgid "Last Modificator" msgstr "" #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 msgid "Show link..." msgstr "" #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "" #: ../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 msgid "Invalid link" msgstr "" #: ../main/gui/history3/historypanel3.cpp:117 #: ../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "" #: ../main/gui/history3/historypanel3.cpp:119 #: ../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "" #: ../main/gui/history3/historypanel3.cpp:226 #: ../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "" #: ../main/gui/history3/historypanel3.cpp:228 msgid "Date acquired" msgstr "" #: ../main/gui/history3/historypanel3.cpp:230 msgid "Date added" msgstr "" #: ../main/gui/history3/historypanel3.cpp:308 #: ../main/gui/history3/historytoolmenu.cpp:82 #: ../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "" #: ../main/gui/history3/historypanel3.cpp:316 #: ../main/tools/dicomizetool.cpp:28 msgid "Dicomize" msgstr "" #: ../main/gui/history3/historypanel3.cpp:363 msgid "All patients" msgstr "" #: ../main/gui/history3/historypanel3.cpp:481 msgid "Results" msgstr "" #: ../main/gui/history3/historypanel3.cpp:481 #, c-format msgid " (%d images)" msgstr "" #: ../main/gui/history3/historypanel3.cpp:634 msgid "Open study with .." msgstr "" #: ../main/gui/history3/historypanel3.cpp:663 #: ../main/gui/history3/historypanel3base.cpp:482 msgid "Synchronize" msgstr "" #: ../main/gui/history3/historypanel3.cpp:677 msgid "&Delete from history" msgstr "" #: ../main/gui/history3/historypanel3.cpp:686 msgid "&Clear history" msgstr "" #: ../main/gui/history3/historypanel3.cpp:904 #: ../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "" #: ../main/gui/history3/historypanel3.cpp:1045 msgid "Unable to open modality " msgstr "" #: ../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr "" #: ../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" #: ../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "" #: ../main/gui/history3/historypanel3.cpp:1086 msgid "all files" msgstr "" #: ../main/gui/history3/historypanel3.cpp:1106 #: ../main/gui/history3/historypanel3.cpp:1171 #: ../main/tools/anonymizetool.cpp:46 ../main/tools/exportdicomdirtool.cpp:57 #: ../main/tools/sendpacstool.cpp:59 ../main/tools/showtagshistorytool.cpp:42 msgid "Select at least one series" msgstr "" #: ../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "" #: ../main/gui/history3/historypanel3.cpp:1128 msgid "those series" msgstr "" #: ../main/gui/history3/historypanel3.cpp:1128 msgid "this series" msgstr "" #: ../main/gui/history3/historypanel3base.cpp:57 msgid "Advanced search" msgstr "" #: ../main/gui/history3/historypanel3base.cpp:73 msgid "Acquisition date" msgstr "" #: ../main/gui/history3/historypanel3base.cpp:302 #: ../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "" #: ../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "" #: ../main/gui/history3/historypanel3base.cpp:336 #: ../main/gui/history3/historytoolmenu.cpp:102 #: ../main/gui/history3/historytoolmenu.cpp:200 #: ../main/gui/history3/historytoolmenu.cpp:229 msgid "Remove" msgstr "" #: ../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "" #: ../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "" #: ../main/gui/history3/historypanel3base.cpp:454 #: ../main/gui/history3/historypanel3base.h:187 msgid "Synchronize files" msgstr "" #: ../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" #: ../main/gui/history3/historytablemodel.cpp:406 #: ../main/gui/history3/historytablemodel.cpp:418 #: ../main/gui/history3/historytablemodel.cpp:473 #: ../main/gui/history3/historytablemodel.cpp:485 #: ../main/gui/open/dicomdirtablemodel.cpp:105 msgid "00/00/0000 00:00:00" msgstr "" #: ../main/gui/history3/historytoolmenu.cpp:138 msgid "Close history" msgstr "" #: ../main/gui/history3/historytoolmenu.cpp:139 #: ../main/gui/startup/startupform.cpp:53 msgid "History" msgstr "" #: ../main/gui/history3/historytoolmenu.cpp:201 #: ../main/gui/history3/historytoolmenu.cpp:230 msgid "Clear history" msgstr "" #: ../main/gui/history3/historytoolmenu.cpp:232 msgid "Select all" msgstr "" #: ../main/gui/history3/historytoolmenu.cpp:233 msgid "Deselect all" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 msgid "Destination" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 msgid "Status" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 msgid "Error message" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 msgid "Show Message" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 msgid "Edit Message" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 msgid "Delete message" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 msgid "Error editing message" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 msgid "Error purguing messages" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ../main/gui/progress/paneltarea.cpp:31 msgid "Stop" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Sent" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ../main/gui/progress/statusbarprogreso.cpp:281 msgid "Warning" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 msgid "Error getting message" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 msgid "Running" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 msgid "Usually due to an error in sending a message" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ../main/gui/progress/paneltarea.cpp:31 msgid "Start" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 msgid "Error deleting messages" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 msgid "Remove sent messages" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 msgid "Exit" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 msgid "Messages" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 msgid "Refresh" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1394 msgid "View" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 msgid "Send task status:" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 msgid "Message" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 msgid "Destination:" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 msgid "Status:" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 msgid "Message content:" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ../wx/thumbnailctrl/thumbnailwidget.cpp:142 msgid "OK" msgstr "" #: ../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "" #: ../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "" #: ../main/gui/import/generaldata.cpp:210 msgid "" "\n" "* The patient ID is required." msgstr "" #: ../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" #: ../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" #: ../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" #: ../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" #: ../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "" #: ../main/gui/import/generaldata.cpp:231 msgid "Error validating fields" msgstr "" #: ../main/gui/import/pasoperfilimportacion.cpp:148 msgid "Selecting Import Profile" msgstr "" #: ../main/gui/import/pasoperfilimportacion.cpp:152 msgid "You must select the profile you want to use import" msgstr "" #: ../main/gui/import/pasoperfilimportacion.cpp:170 msgid "You must select the import profile" msgstr "" #: ../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:21 msgid "Selected images" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:56 msgid "Preview" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:62 msgid "Remove all" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:113 #: ../wx/gnkinforme/gnkinformebasewx.cpp:65 msgid "Demographic data" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:159 #: ../wx/gnkinforme/gnkinformebase.cpp:115 msgid "Birth date" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:217 msgid "Study Details" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:234 #: ../wx/gnkinforme/gnkinformebase.cpp:122 msgid "Weight" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:245 msgid "Kg" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:252 #: ../wx/gnkinforme/gnkinformebase.cpp:119 msgid "Height" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "" #: ../main/gui/import/pasosimportacionbase.cpp:291 #: ../main/gui/import/pasosimportacionbase.cpp:333 msgid "Time" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files..." msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste from clipboard" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:330 msgid "Delete selected items" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:342 msgid "You must select an image" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:346 msgid "Generating preview..." msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:500 msgid "Select images" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:715 msgid "Image selection" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:760 msgid "The file" msgstr "" #: ../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr "" #: ../main/gui/import/wxwizardimportacionginkgo.cpp:52 msgid "Image Import Wizard" msgstr "" #: ../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "" #: ../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "" #: ../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "" #: ../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "" #: ../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "" #: ../main/gui/import/wxwizardimportacionginkgo.cpp:167 msgid "free of" msgstr "" #: ../main/gui/import/wxwizardimportacionginkgo.cpp:181 msgid "in dicomization dir." msgstr "" #: ../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "" #: ../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, c-format msgid "Step %d of %d: " msgstr "" #: ../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "" #: ../main/gui/license/aboutdialog.cpp:25 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:22 msgid "Ginkgo CADx" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:55 msgid "Licenses" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:58 msgid "UPDATE_INFO" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:108 #: ../main/gui/license/aboutdialogbase.h:88 msgid "Open Source Licenses" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:119 msgid "FamFamFam Icons" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:120 msgid "Fugue Icons" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:126 msgid "WxWidgets" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:127 msgid "Zlib" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:130 msgid "Dark Glass Icons" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "" #: ../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "" #: ../main/gui/license/acceptlicensedialogbase.cpp:23 #: ../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "" #: ../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" #: ../main/gui/license/acceptlicensedialogbase.cpp:53 msgid "Check for updates automatically" msgstr "" #: ../main/gui/license/acceptlicensedialogbase.cpp:66 msgid "I Accept the license" msgstr "" #: ../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "" #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Save logs" msgstr "" #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "" #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 msgid "File couldn't be stored " msgstr "" #: ../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 msgid "Could not write to file" msgstr "" #: ../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 msgid "Save log..." msgstr "" #: ../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 msgid "Clear log" msgstr "" #: ../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 msgid "Log" msgstr "" #: ../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "" #: ../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "" #: ../main/gui/login/dialogologin.cpp:50 msgid "The username or password is incorrect" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:250 msgid "Tasks" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1139 msgid "Included in the history ..." msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "Check update error" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1072 msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1174 msgid "Malformed XML" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1192 msgid "Error in interpreting the parameters of the command line. (" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1220 msgid "Error parsing integration XML:\n" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1224 msgid "PACS error:\n" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1228 msgid "Error executing WorkFlow\n" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1232 msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1270 msgid "Close current view" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all views" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "Exit application" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Show full screen" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1302 msgid "Tab grouping" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1329 msgid "Ginkgo CADx manual ..." msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1330 msgid "Open test card" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for newest versions" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1332 msgid "Need support ..." msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About " msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 msgid "HL7 monitor" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1371 msgid "HL7 message control" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 msgid "Log monitor" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1372 msgid "Log monitored" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1390 msgid "&File" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1664 msgid "Unsaved data" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "Error saving" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "Full Screen" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "View Full Screen" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1708 msgid "Tab Regroup" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "&Close all" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "Close all windows" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1728 msgid "Tabbed organization" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "Ginkgo CADx updated" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1782 msgid "New version available (" msgstr "" #: ../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:29 msgid "New Update" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:34 msgid "New version available" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:43 msgid "X" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:45 msgid "Close this notification" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:104 msgid "The following commands will be aborted if you close the application" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:131 msgid "Close Ginkgo CADx" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ../main/gui/mainwindow/ventanaprincipalbase.h:138 msgid "User login" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:202 msgid "System authentication" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.cpp:260 msgid "Login" msgstr "" #: ../main/gui/open/abrir.cpp:80 ../main/gui/open/abrir.cpp:82 msgid "Open..." msgstr "" #: ../main/gui/open/opendialogs.cpp:58 msgid "There was an error reading DICOMDIR file" msgstr "" #: ../main/gui/open/opendialogs.cpp:62 msgid "Select a valid DICOMDIR file" msgstr "" #: ../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "" #: ../main/gui/open/opendialogs.cpp:180 #: ../main/gui/open/opendialogsbase.cpp:170 #: ../main/gui/open/opendialogsbase.h:112 msgid "Copy or link" msgstr "" #: ../main/gui/open/opendialogsbase.cpp:22 #: ../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "" #: ../main/gui/open/opendialogsbase.cpp:94 #: ../main/gui/open/opendialogsbase.h:85 msgid "Select drive" msgstr "" #: ../main/gui/open/opendialogsbase.cpp:175 msgid "Do you want to copy or link files?" msgstr "" #: ../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ../main/gui/selectpacsserver/selectpacsserver.cpp:30 msgid "There aren't any PACS configured" msgstr "" #: ../main/gui/pacsupload/pacsuploaddialog.cpp:69 msgid "0000/00/00 00:00:00" msgstr "" #: ../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ../main/gui/pacsupload/pacsuploaddialogbase.h:57 msgid "Upload study" msgstr "" #: ../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 msgid "Select PACS server" msgstr "" #: ../main/gui/paneltags/paneltags.cpp:119 msgid "Metadata" msgstr "" #: ../main/gui/paneltags/paneltags.cpp:120 msgid "Identification information" msgstr "" #: ../main/gui/paneltags/paneltags.cpp:121 msgid "Patient information" msgstr "" #: ../main/gui/paneltags/paneltags.cpp:122 msgid "Acquisition information" msgstr "" #: ../main/gui/paneltags/paneltags.cpp:123 msgid "Relationship information" msgstr "" #: ../main/gui/paneltags/paneltags.cpp:124 msgid "Image presentation information" msgstr "" #: ../main/gui/paneltags/paneltags.cpp:125 ../widgets/wtextbox.cpp:525 msgid "Text" msgstr "" #: ../main/gui/paneltags/paneltags.cpp:126 msgid "Other" msgstr "" #: ../main/gui/paneltags/paneltags.cpp:137 #: ../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "" #: ../main/gui/previewpanel/previewpanel.cpp:47 msgid "Hide" msgstr "" #: ../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "" #: ../main/gui/previewpanel/previewpanelbase.cpp:187 #: ../main/gui/previewpanel/previewpanelbase.cpp:207 msgid "Previews" msgstr "" #: ../main/gui/progress/progresobase.cpp:23 msgid "There is no running tasks" msgstr "" #: ../main/gui/progress/statusbarprogreso.cpp:165 msgid "0 running tasks." msgstr "" #: ../main/gui/progress/statusbarprogreso.cpp:192 #, c-format msgid "There are %d pending tasks" msgstr "" #: ../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ../main/gui/selectpacsserver/selectpacsserverbase.h:55 msgid "Select PACS" msgstr "" #: ../main/gui/startup/startupformbase.cpp:29 msgid "http://ginkgo-cadx.com" msgstr "" #: ../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "" #: ../main/gui/startup/startupformbase.cpp:47 msgid "Ginkgo CADx Pro" msgstr "" #: ../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" #: ../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "" #: ../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "" #: ../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "" #: ../main/managers/widgetsmanager.cpp:1079 msgid "Delete Widget" msgstr "" #: ../main/managers/widgetsmanager.cpp:1090 msgid "Properties ..." msgstr "" #: ../main/managers/widgetsmanager.cpp:1090 msgid "Widget Properties" msgstr "" #: ../main/tools/addfiletohistorytool.cpp:114 msgid "Open file" msgstr "" #: ../main/tools/addfiletohistorytool.cpp:115 #: ../main/tools/openfoldertool.cpp:27 msgid "Open folder" msgstr "" #: ../main/tools/addfiletohistorytool.cpp:116 #: ../main/tools/openremovabletool.cpp:28 msgid "Open removable unit" msgstr "" #: ../main/tools/addfiletohistorytool.cpp:117 #: ../main/tools/openginkgocloudlinktool.cpp:27 msgid "Open Ginkgo Cloud link" msgstr "" #: ../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "" #: ../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "" #: ../main/tools/colormaptool.cpp:110 msgid "Invert color map" msgstr "" #: ../main/tools/cornerannotationstool.cpp:44 msgid "Hide corner annotations" msgstr "" #: ../main/tools/cornerannotationstool.cpp:46 msgid "Show corner annotations" msgstr "" #: ../main/tools/detachwindowtool.cpp:42 msgid "Attach View" msgstr "" #: ../main/tools/detachwindowtool.cpp:44 msgid "Detach view" msgstr "" #: ../main/tools/dicomizetool.cpp:28 msgid "Dicomize files" msgstr "" #: ../main/tools/exportdicomdirtool.cpp:32 msgid "Export to DICOM Dir" msgstr "" #: ../main/tools/markertool.cpp:171 msgid "Point" msgstr "" #: ../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "" #: ../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "" #: ../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "" #: ../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "" #: ../main/tools/markertool.cpp:176 msgid "Free form" msgstr "" #: ../main/tools/metricgridtool.cpp:57 msgid "Grid" msgstr "" #: ../main/tools/metricgridtool.cpp:67 msgid "Grid Scale" msgstr "" #: ../main/tools/metricgridtool.cpp:74 msgid "Scale X" msgstr "" #: ../main/tools/metricgridtool.cpp:78 msgid "X axis scale" msgstr "" #: ../main/tools/metricgridtool.cpp:87 msgid "Scale Y" msgstr "" #: ../main/tools/metricgridtool.cpp:91 msgid "Y axis scale" msgstr "" #: ../main/tools/metricgridtool.cpp:206 msgid "Show grid" msgstr "" #: ../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "" #: ../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "" #: ../main/tools/metricgridtool.cpp:250 msgid "Hide Grid" msgstr "" #: ../main/tools/metricgridtool.cpp:252 msgid "Show Grid" msgstr "" #: ../main/tools/openfiletool.cpp:28 msgid "Open File" msgstr "" #: ../main/tools/pacsuploadtool.cpp:54 msgid "Send to PACS..." msgstr "" #: ../main/tools/pixelsbluringtool.cpp:59 msgid "Unset pixels blurring" msgstr "" #: ../main/tools/pixelsbluringtool.cpp:61 msgid "Set pixels blurring" msgstr "" #: ../main/tools/queryretrievehistorytool.cpp:25 msgid "PACS Q/R" msgstr "" #: ../main/tools/queryretrievetool.cpp:94 #: ../main/tools/searchginkgocloudhistorytool.cpp:28 msgid "Search Ginkgo Cloud" msgstr "" #: ../main/tools/rotateandfliptool.cpp:151 msgid "Undo rotate and flip" msgstr "" #: ../main/tools/rotateandfliptool.cpp:153 #: ../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "" #: ../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "" #: ../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "" #: ../main/tools/rotateandfliptool.cpp:156 msgid "Flip horizontal" msgstr "" #: ../main/tools/rotateandfliptool.cpp:157 msgid "Flip vertical" msgstr "" #: ../main/tools/sendpacstool.cpp:34 msgid "Send to PACS" msgstr "" #: ../main/tools/sendpacstool.cpp:70 msgid "Sending to PACS..." msgstr "" #: ../main/tools/showtagstool.cpp:42 msgid "Hide DICOM inspector" msgstr "" #: ../main/tools/showtagstool.cpp:44 msgid "Show DICOM inspector" msgstr "" #: ../main/tools/simpleprinttool.cpp:119 msgid "Image printing" msgstr "" #: ../main/tools/simpleprinttool.cpp:224 msgid "Page setup" msgstr "" #: ../main/tools/simpleprinttool.cpp:225 msgid "Print preview" msgstr "" #: ../main/tools/simpleprinttool.cpp:272 msgid "Print image" msgstr "" #: ../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "" #: ../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "" #: ../main/tools/undotool.cpp:110 msgid "Redo" msgstr "" #: ../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "" #: ../main/tools/videotool.cpp:153 msgid "Enable loop" msgstr "" #: ../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "" #: ../main/tools/windowlayouttool.cpp:267 msgid "Add column" msgstr "" #: ../main/tools/windowlayouttool.cpp:268 msgid "Add row" msgstr "" #: ../main/tools/windowlayouttool.cpp:270 msgid "Remove column" msgstr "" #: ../main/tools/windowlayouttool.cpp:271 msgid "Remove row" msgstr "" #: ../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "" #: ../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "" #: ../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "" #: ../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "" #: ../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "" #: ../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "" #: ../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "" #: ../main/toolsystem/toolsregistry.cpp:82 msgid "The tool is already registered" msgstr "" #: ../main/toolsystem/toolsregistry.cpp:187 msgid "The module " msgstr "" #: ../resources/ginkgoresourcesmanager.cpp:49 msgid "Unable to load PNG bitmap resource" msgstr "" #: ../resources/ginkgoresourcesmanager.cpp:56 msgid "Unable to load PNG image resource" msgstr "" #: ../resources/ginkgoresourcesmanager.cpp:63 msgid "Unable to load GIF animation resource" msgstr "" #: ../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "" #: ../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "" #: ../widgets/gui/calibracion.cpp:219 msgid "Enter the calibration value" msgstr "" #: ../widgets/gui/calibracion.cpp:225 msgid "The calibration value is too low" msgstr "" #: ../widgets/gui/calibracion.cpp:229 msgid "The calibration value is too high" msgstr "" #: ../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "" #: ../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "" #: ../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "" #: ../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "" #: ../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "" #: ../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "" #: ../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "" #: ../widgets/gui/selecciontextobase.cpp:26 msgid "Note" msgstr "" #: ../widgets/wangulo.cpp:1101 ../widgets/wangulo.cpp:1103 msgid "Type" msgstr "" #: ../widgets/wangulo.cpp:1101 msgid "Normal" msgstr "" #: ../widgets/wangulo.cpp:1103 msgid "Cobb" msgstr "" #: ../widgets/welipse.cpp:721 ../widgets/wfreeform.cpp:470 #: ../widgets/wpolygon.cpp:574 msgid "Center (I)" msgstr "" #: ../widgets/welipse.cpp:727 ../widgets/wfreeform.cpp:476 #: ../widgets/wpolygon.cpp:580 msgid "Center (M)" msgstr "" #: ../widgets/welipse.cpp:762 ../widgets/welipse.cpp:766 msgid "Greater Radius" msgstr "" #: ../widgets/welipse.cpp:763 ../widgets/welipse.cpp:767 msgid "Lower Radius" msgstr "" #: ../widgets/wfreeform.cpp:482 ../widgets/wpolygon.cpp:586 msgid "Number of Vertex" msgstr "" #: ../widgets/wpunto.cpp:353 msgid "Position (I)" msgstr "" #: ../widgets/wpunto.cpp:358 msgid "Position (M)" msgstr "" #: ../widgets/wrule.cpp:558 msgid "Image Calibration" msgstr "" #: ../widgets/wrule.cpp:663 msgid "Length" msgstr "" #: ../widgets/wrule.cpp:668 msgid "Points (I)" msgstr "" #: ../widgets/wrule.cpp:675 msgid "Points (M)" msgstr "" #: ../widgets/wtextbox.cpp:445 msgid "Default text" msgstr "" #: ../wx/gnkinforme/gnkinformebase.cpp:41 msgid "Commit date" msgstr "" #: ../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "" #: ../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "" #: ../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "" #: ../wx/gnkinforme/gnkinformebase.cpp:214 #: ../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "" #: ../wx/gnkinforme/gnkinformebase.cpp:219 msgid "Modified" msgstr "" #: ../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "" #: ../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "" #: ../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "" #: ../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ../wx/gnkinforme/gnkinformebasewx.cpp:130 msgid "Commit inform" msgstr "" #: ../wx/propiedades/wxpropiedades.cpp:30 msgid "Properties of " msgstr "" #: ../wx/propiedades/wxpropiedadesbase.cpp:31 msgid "Widget's Name" msgstr "" #: ../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "" #: ../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "" #: ../wx/wxsqlite3/wxsqlite3.cpp:3701 msgid "Regular expression invalid: '" msgstr "" #: ../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "" #: ../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" #: ../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" #: ../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" #: ../commands/dialogopathssobreescribirbase.h:56 msgid "Overwrite Paths" msgstr "" #: ../ginkgopro/ginkgo_pro_defines.h:21 msgid "Professional DICOM CADx environment" msgstr "" #: ../main/controllers/dcmtk/dicomservers.h:39 msgid "Server not found" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.h:99 msgid "DICOM Query/Retrieve" msgstr "" #: ../main/gui/acquisition/dialogoadquisicionbase.h:123 msgid "Not found" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:418 msgid "Advanced Settings" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:570 msgid "Edit profile" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:665 msgid "Add/Edit Location" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:784 msgid "Add window/level" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 msgid "Add tag" msgstr "" #: ../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 msgid "Setup window position" msgstr "" #: ../main/gui/countdownmessage/countdownmessagebase.h:61 msgid "Closing" msgstr "" #: ../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 msgid "DICOM Dir configuration" msgstr "" #: ../main/gui/ginkgocloud/downloadcloudbase.h:70 msgid "Open Ginkgo Cloud" msgstr "" #: ../main/gui/ginkgocloud/downloadcloudbase.h:123 msgid "Ginkgo Cloud search" msgstr "" #: ../main/gui/history3/confirmdeletedialog.h:24 msgid " from History?" msgstr "" #: ../main/gui/history3/historypanel3base.h:100 msgid "Medical history" msgstr "" #: ../main/gui/history3/historypanel3base.h:161 msgid "Open With ..." msgstr "" #: ../main/gui/history3/openwithdialog.h:72 msgid "Select a View" msgstr "" #: ../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 msgid "Message detail" msgstr "" #: ../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 msgid "Log node" msgstr "" #: ../main/gui/mainwindow/ventanaprincipalbase.h:87 msgid "Closing Ginkgo CADx" msgstr "" #: ../main/gui/paneltags/paneltagsbase.h:57 msgid "DICOM Inspector" msgstr "" #: ../main/license.h:31 msgid "Open Source DICOM CADx environment" msgstr "" #: ../widgets/gui/calibracionbase.h:65 msgid "Calibration" msgstr "" #: ../wx/propiedades/wxpropiedadesbase.h:62 msgid "Properties of ..." msgstr "" #: ../wx/thumbnailctrl/thumbnailwidget.h:44 msgid "Image Browser Dialog" msgstr "" #: ../wx/wizardginkgo/wxwizardginkgobasewx.h:60 msgid "Test title" msgstr "" ginkgocadx-3.8.7/cadxcore/lang/de/000077500000000000000000000000001314736454600167655ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/de/cadxcore.mo000066400000000000000000002610101314736454600211120ustar00rootroot00000000000000$IxaFya;aPaMb6lbQb7b/-cI]cc<c1d#5d#Yd}d6dd!d2 e<yee e3e4f:Hfffff fffff0g/4g2dg1g'g,g0h+Oh){h.h-h,i./i-^i/i/i7i.$j,Sj:j7j8j5,k)bk,k/k:k$l-lBl\lelwl lllll llllllllmm5!mCWmmmmmm m m m m m m n n n-n/n1n5n;nBnInQnennnnnnn n n o ooo.o@oIodovooo o(o o oo p#p6p?p+Ep3qp ppp p p%p qq +q 9qGq&gqqq qqqq q qqr%r ArKrQr `rlrr*rrr r r%rs >sIs]smsts|s ssssst.t Dt Pt"]t#tt t ttt ttt.u5u HuVu2nuuuu uuu u u v v-"vPv_vrvvvvv#vww6w ?wKw Pw]woww%w&wwxx 3x>xTx kxyxxxxxx xxmx8Jyy y yy y y y:yz -z9zNz_z dzrz wzzzzzzz z zz { {"{51{g{/}{0{{ { { | | !| -| ;|E|"[|~|| || ||6|&|"&}&I}p}}}}}}}~~!~2~F~]~s~~~~~~~ ~ ~~ )01bjy   'D-"r!ǀ # .FbyƁ܁'?^8t;S[=$1'4,av'& ۄ9Rj}14f ~2#=-k#LJ߇+Q/ ÈՈ 2?%Pv Ɖމ# DOcvf)=9w̋:29+R ~1 ˌٌތ $-C Kl2 ҍލ| a'(7B!Bd ϐܐ & +6< @L `mC *2'7_o  Ē ϒ ڒ    '2;?1BtVgӔ l; ̗C& jw!Ҙ)F Yfu"1Ǚ"'%DjԚ *>4O  ě ћݛ ,5< A MXir ŜϜ '0!B dn4r ʝ@ҝ@BT   Þў1'Ksş֟ߟ 9E֠  =H MXay9  $ ;FOdzQT<E<V "   ! 7D LV_ hv  ɤ"ݤ  # -9 M Wx ǥ֥ݥ   < I#Vz6 Ħ Ȧ Ԧ1-9g~#է ݧ  : B LVev |  Ǩ Ԩ  (B\#v Ωש " 4B$Kp 9ݪ""@>RSѫ%*=QYwW ? HS-h" %-EM ]k~>ή Ԯޮ  ! & 2<[aiqxMگ   1?\ w* ۰# 3 ANӱ33#WgHHɲ2E!Y{ dzڳ߳ &<Za|  ʹ ڴ 1 #/A S`r {F  $ 9 CPh y &Ҷ("":.]ŷ ˷ַ 0Njø ˸ظ ޸ "7Vtz  ¹#ƹ &%&Lsx! .ͺC9I "%ѻ&B?a3;ռ3E%d0&W o0> ':8b;3׿$ H0%y@%8A?T5(,GU%_^XS* 6 @ KX]&c  * /=3S%"!)-H/v)\:d< % 0DVg    0<FK  . -;,Anw % GGY   !((0Q    8}6lP@&b! M.8|''!":-]"289 > HRUgmul6EM V boSK\%|MmG^3U0=P,$6'P(x=EM%"s CCH+t x  FB;H~D= BJF>@DTCBD CeEEM5EBN K[LI?>B~EPXh}    8DJSZ akE  " . : F P[kmosx &&2 M Wd 2K\y5 % 2C1L?~, 7 M[s( # * 4APm +:! \f n y%  .KfI-&=%d  8Vq?  +9 KW2s!%%Gm +<>G{#(% 6D"X{ P  %2 B M ZCg   '6Kb!v JD:d5  %7H'd A%:/`+# ;Zs " :Z ^ix$,* 2@Tp& #K&%r!)-,3?$s(#%' &3!Z*|:L /OP5fN=.<2VH-2  ="K)n#%$!)Gf>!/QBg4!'#)XM#++"$Af3nb !+ <GYl &=R i ,  ; I g  (  0M J~ ! !  * J W\  & 6   >) h |  (         " / J b ?j     k|&/O']wU+@ Tav );N[V  +:J Ygv          '*22eut%$"8 Vbou 0'NvZ %">av   " $C:h'&- :V#r&%+Q Vcknsy   -@ [ e  , &7JN/d5  N" Pq T !! !,!1! A! K!X!v!!B!(!" #"-"@"S"r" "" """"""")#T##'$ K$ V$ d$ q$|$$$ $E$ %% #%/%>%C%`%h% %%%%%%r%s_& &&[&T'['u'+''' ' ''''(!(4( <( F(Q(Z(j(( ((( ((( )) /)=)L)d)#t)))) )))))*"*;*J*Q*V*'f* * *-**<* +&+*+ <+G+9P++,+++ + ,*,&/,V, ^, k, x,, ,, ,,, ,,, , - --'-!,- N- [- h-r-----9-!-."1.T. [.'f.... ..../ /$/B/V/&o/U/ //0 20S0Ik00 000W0N1U1f1 w1 11e1 "2,2;2NL222.2+2 &3*43_3,z383 33 3$ 4.48I4444 444 444 44 5+5 F5 P5 ]5 j5v5K5 5566#636J6)]6"66%6676+7.?7"n77777%8M8A8:9K9je9b9$3:X:p:&::::#:;.;(7;`;f;x;;&;;;;<< < '<2<B< R<]<#u<<<<<< ==*=@=U]==== ==>!>2>D>V>f>~>>%>4>0?3?#L?7p?????? ?? @*@G@N@V@'j@$@%@@ @@"A+A 3A?AFAYA mA yAGA*AABB %B0BCBXB lB/wBB%BB B"B'C>CCC UC#vC/C CFC8D TD/_D'D,D0DAECWE<E;E<F$QF-vF)FF4cG GG4GXHgH*H(H;H6I,MI9zIiI5JjTJ+JNJk:KaK3L5 OJOPO`O qO{OOOO O O OPPPP5P.P3P0P.Q(IQ*rQAQBQ)"R LR'YR8RbR:SHXS SSS,STT1TGT_TtTTT&TTU U:UYUjUHUUU$U% V 0V =V4JVVVVAV VWWWW$W6W?WUW\W aWmW?vWWXW]XuX}X XXXX XX X'Y50Y fYpYrY&YY)YYYYFZMZ0Z[f[?\N\].]Z^Aq^"^1^3_<_)\_?_(_J_':`Lb`` ```````a,a=,(-_n%])~J%7@ Sa"'tZ #A>Zm*?ueVj b'>pPvN\Rb\].KWr/{da$m%dGO 2)sqk< 5,5=L;}`%aNwVc3V/Pp{# Dfiv[igw4?AV9OMSQK5ry_Ho6~Das!<8:mdI|9eW]HD5)U1 hl+i =4r%w P$gR(>R~jstEY*$!LM[;I[Jf^iOp6-2]DGN_C3{8_g'n,vbH  S-E@13U[XGu E#Ax8B&{<R|h*Z-7 Xej^@LV[\x^#N~q6P  >,9 B?4cQ~hJ nZj&/Bm)zlKIC{mOHCh}2q. 0wa * Concatenation of patient name and surnames can't be higher than 61. * The format of the height in centimeters is not correct. * The format of the weight is not correct. Valid range is between 0 and 400 Kg. * The patient ID is required. * The patient's birth date is after the date of study - If you want to use SSL/TLS you have to set a valid certificate and private key - If you want to use WADO you have to fill in wado url - Maximum length of local AET is 16 characters - The PDU size should be greater than or equal to zero (default = 16384) - The local port is too large - The local port must be a positive short integer (16 bits) - The maximum length of the AET is 16 characters - The maximum value of the PDU is - The minimum value of the PDU is - The port is too large - The port must be a positive short integer (16 bits) - This PACS id is in use - WADO URL doesn't contains host - WADO URL doesn't contains scheme (i.e. http://) There are %d errors (see log for more detailed description) Would you like to retry(automatically retried in %d seconds)? Would you like to retry? (%d images) . Modality does not exists in model: Add it first. . SOP Class does not exists in model: Add it first. . Transfer Syntax does not exists in model: Add it first. : bytes from a total of doesn't exist from History? not allowed of to unsupported components with transfer syntax "accion" attribute expected at "plantilla" scope"accion" attribute invalid at "plantilla" scope"action" attribute expected at "gnkworkflow" scope"action" attribute invalid at "gnkworkflow" scope"aid" attribute expected at "hce" scope"ambito" attribute expected at "dimse" scope"ambito" attribute expected at "plantilla" scope"ambito" attribute invalid at "dimse" scope"cid" atribute expected at "centro" scope"clave" attribute expected at "metadato" scope"code" attribute expected at "metadata" scope"code" attribute expected at "patient" scope"code" attribute expected at "physician" scope"codigo" attribute expected at "medico" scope"codigo" attribute expected at "metadato" scope"codigo" attribute expected at "paciente" scope"id_peticion" attribute expected at "gnkworkflow" scope"iid" atribute expected at "institution" scope"key" attribute expected at "metadata" scope"pacs-retrieve-sid" attribute empty at "gnkworkflow" scope"pacs-store-sid" attribute empty at "gnkworkflow" scope"pacs_retrieve_sid" attribute empty at "plantilla" scope"pacs_store_sid" attribute empty at "plantilla" scope"uid" attribute expected at "dimse" scope"valor" attribute expected at "medico" scope"value" attribute expected at "physician" scope"value" attribute expected at "query-retrieve-level" scope%.1f fps%Y/%m/%d %H:%M:%S.%q%d results has been found%m/%d/%Y%m/%d/%Y %H:%M:%S%m/%d/%Y 00:00:00%s settings&Accept&Cancel&Clear history&Close&Close all&Delete from history&Edit&End&Exit&File&Help&Next >(ID or medical history number))): Check the configuration and attach it if necessary): Is not a valid HL7 identifier (ie: code^description^namespaceId)+.../0 running tasks.00/00/0000 00:00:001x1 Layout1x2 Layout2x1 Layout2x2 Layout3x3 Layout4x4 Layout644654645< &Previous?@AETAboutAbout AcceptAcquireAcquire DICOM filesAcquire a DICOM study from PACSAcquire from DICOM DirAcquire images from PACSAcquisition dateAcquisition informationActiveAddAdd DICOM tagAdd columnAdd new...Add rowAdd tagAdd window/levelAdd/Edit LocationAdvancedAdvanced Configuration ...Advanced SettingsAdvanced searchAdvanced settings...AgeAll patientsAlways use this view to open these filesAngle Ctrl+AAnonymizationAnonymization settingsAnonymizeAnonymous mode (history is cleaned)Any dateApplyAre you sure to delete this file from disk?Are you sure you want to cancel the import process?Are you sure you want to delete AreaArrowAsymmetryAttach ViewAttempted to dereference null pointerAuthenticationAuto calculateAuto-cleaningAutocalculateAutomatically check for updatesAutomatically start HL7 Sender serviceAvailable only in WADO serversB/WB/W InverseBackBartenBetween:Birth dateBlack BodyBottom left corner annotationBottom right corner annotationBrightness/Contrast Ctrl+BBrowse...CairoCalibrating...CalibrationCalibration value is too lowCan not upload to the PACS: Can not upload to the PACS: Internal ErrorCancelCardiacCentimetersCertificateCertificate to use in this connectionCertificate used by Ginkgo CADxChange ...Change Password ...Change passwordCharLSCharsetCheck PACS configurationCheck UpdatesCheck for newest versionsCheck for updatesCheck for updates automaticallyCheck update errorChoose a directoryChoose the view you want to use to open file/sClean afterClean beforeClean directory after dicomizationClean directory before dicomizationClearClear historyClear logCloseClose Ginkgo CADxClose allClose all viewsClose all windowsClose automatically Ginkgo CADx after dicomizeClose current viewClose historyClose this notificationCloses the application and aborts pending commandsClosing Ginkgo CADxCobbCobb Angle (2 straight lines)Color MapColumnsCommentsCommit dateCommit informCommitedCommon tagsConfiguration parameters of the local stationConfigure GridConfigure Grid ...Configure locationConfiguring environment ...Confirm PasswordConfirm removalConfirm the removal of the nodeConfirm the removal of the profile Connection test failConnection test successfulContinueContinue...CopyCopy or linkCopy to clipboardCorner annotationsCould not find entry pointCould not load extension library fileCould not load library file. Check logCould not write to fileCould to perform query.Could to retrieve study.Create newCreating Thumbnail...Creating Thumbnails...Creation DateCreatorCreditsCubicCurrent layoutDCMTKDICOM (native format)DICOM DirDICOM Dir configurationDICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d). This version is unabled to open it.DICOM Dir is the local directory where history is storedDICOM Dir migrationDICOM ErrorDICOM ExportDICOM InspectorDICOM MPPSDICOM NodeDICOM NodesDICOM data from the files to be generated can be populatedDICOM inspectorDICOM nodesDICOM nodes settingsDark Glass IconsDataData modifiedDateDate TimeDate:DefaultDefault ORU templateDefault Window/LevelDefault charsetDefault modality settingsDefault textDefault valueDefault valuesDeleteDelete WidgetDelete messageDelete older studies when hd free space is less than:Delete selected itemsDelete studies when DICOM Dir size bigger than:Delete studies with acquisition date older than:Demographic dataDescriptionDeselect allDestinationDestination:Detach viewDetach windowDicom tagDicomization completeDicomization finished successfullyDicomizeDicomize filesDicomize...Dicomized filesDisable loopDistanceDo not close the application and keep commands runningDo not warn me again about this updateDo you want to copy or link files?Don't change image codec (if possible)Don't show this message againDownloadDownload %s imagesDownload againDownload all modalitiesDownload from Ginkgo CloudDownload of modality Download seriesDownload studyDownloading fileDownloading file %dDownloading file %d/%dDownloading files ...Downloading files...Downloading from PACS...Downloading serie...Downloading study...ER7EditEdit ...Edit MessageEdit UserEdit corner annotationsEdit profileEdit public keyElementElement field or group field have invalid valuesEllipseEmpty ResponseEmpty configurationEnable TLS configurationEnable http proxyEnable loopEnable remote PACS configurationEnable shadersEnable/DisableEnabledEnter the calibration valueErrorError accessing the controller subsystem integration: (GIL:: DICOM).Error checking application updatesError connecting to urlError creating database: Error creating dicomDir database Error creating history database Error creating thumbnails database Error deleting messagesError downloading WADO fileError downloading fileError downloading file: Error downloading files: Error downloading study: Error editing messageError executing WorkFlow Error executing WorkFlow Internal ErrorError extracting pdf, Ginkgo CADx is unable to load this formatError getting messageError in cloud operation. See log to get more details...Error in interpreting the parameters of the command line. (Error in the confirmation of delivery: Delivery is not recognized by the remote endError in the logic of confirmation. The control of the message ID does not match recognizedError loading DICOM Conformance fileError loading history, Ginkgo CADx will be closedError loading studyError loading study insufficient memoryError loading study, check hanging protocol settingsError loading study.Error loading study: Error loading the study: Internal ErrorError loading the study: Out of memoryError messageError parsing JSon: Error parsing integration XML: Error perfoming the query.Error processing messageError purguing messagesError reading history: Error reading the study:Error reading the study: Error reading the study: Largest image pixel value data is not coherent with combination of Pixel Representation and High bitError reading the study: unsupported pixel formatError retrieving study.Error savingError sending HL7 message see log for more detailsError sending message. It was sent Error sending message:Error setting TLS layer: Error starting HL7 senderError storing file, check the permissions over the directory.Error synchronizing study: Error unregistering tools: Error uploading the study to PACS: Error validating fieldsError while running thread: Error:Error: PACS entry configuration not found: Errors have occurred when saving the series. Would you like to continue closing? Exception loading:ExceptionsExisting fileExitExit applicationExploring PACS...Exploring directory Exploring directory ...Exploring drives...ExportExport ConfigurationExport DICOMExport config...Export has been finished successfullyExport image...Export imagesExport successfully completedExport to DICOM DirExporting file %d of %dExporting files...Exporting images ...Exporting series %d of %dExtension descriptor does not matchExtensionsExtensions settingsExtracting file...Extracting files...Failed delivery confirmation:Failed to create directory, make sure the path is correct and you have permissions on parent directoryFailed to delete the number of database: Failed to empty the history, you have to close opened studiesFailed to empty the history: Failed to perform search: Failed to set permissions: Failed to start connectionFamFamFam IconsFatal error! you can't register two parsers with same keyFemaleFile couldn't be stored File exists Would you like to overwrite it?File link:Fill in valid numbers in window and level fields.Flip horizontalFlip verticalFlowForce lossless when uploadFormatFugue IconsFull ScreenFull screenGE ColorGIL/DICOM/ConformanceGeneralGeneral configuration parametersGenerating preview...Generating thumbnail ...GetGingo CADx Application ID used to fill MSH.3 fieldGinkgo CADxGinkgo CADx Application IdGinkgo CADx ProGinkgo CADx has detected a default DICOM Dir created with an old version of Ginkgo CADx (BBDD v.%d). What do you want to do?Ginkgo CADx has detected inactivity and it will be closed in %d seconds. Do you want to continue?Ginkgo CADx has detected more than one removable units, but none of them includes a DICOMDIR at root. Select drive where you want to acquire recursivelyGinkgo CADx is unable to compress from Ginkgo CADx manual ...Ginkgo CADx must have at least one user.Ginkgo CADx must restart for the changes to take effectGinkgo CADx must restart for the extensions changes to take effectGinkgo CADx must restart for the permission changes to take effectGinkgo CADx updatedGinkgo CADx updatesGinkgo CloudGinkgo Cloud linkGinkgo Cloud searchGinkgo Extension TitleGray RainbowGridGrid ScaleGroupHL7HL7 ServiceHL7 message controlHL7 messagesHL7 sender startedHanging protocolHanging protocolsHeightHelp us sending anonymous usage data (no patient data will be sent)HideHide DICOM inspectorHide GridHide corner annotationsHistoryHostHostname (IP or DNS) integration engineHostname / PortHostname missingHot IronHot MetalI Accept the licenseI do NOT accept the licenseISO_IR 100ISO_IR 101ISO_IR 109ISO_IR 110ISO_IR 126ISO_IR 127ISO_IR 138ISO_IR 144ISO_IR 148ISO_IR 192ISO_IR 6ITKIdId malformed template in the module configurationIdentificator *If you accept the terms of the agreement, click "I Accept the license" to continue. You must accept the license to start using Ginkgo CADx.If you want to use SSL/TLS you have to set a valid certificate and a valid private keyIgnoring incoming operation Image Browser DialogImage CalibrationImage Export WizardImage Import WizardImage acquisition finished.Image format not supportedImage selectionImage without metric informationImages (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*.bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*ImportImport ...Import ConfigurationImport config...Import files to DICOM formatImport process failed:Import successfully completed, restart Ginkgo CADx to apply changesImporting...InactiveInactivity detectedIncluded in the history ...Including files in the history ..Including files...Including image InfoIni Files(*.ini)|*.iniIni files(*.ini)|*.iniInitializing environment ...Institution's nameInstitutionsInternal ErrorInternal errorInternal error checking updatesInternal error during auth processInternal error reading the study, unknown format Internal error reading the study: Internal error while reading the study:Internal error while running thread: Interpolate pixel dataInterpreting parameters ...Interpreting propertiesInvalid DICOM Conformance fileInvalid HTTP codeInvalid HTTP responseInvalid file has been downloadedInvalid linkInvalid port numberInvert color mapIt has been read a "patient" tag without identifiersJPEGJSon ResponseJsonCppKgLONILONI2LanguageLast 3 monthsLast 30 daysLast 7 daysLayoutLeftLengthLevelLibJpegLibPngLibcurlLicense agreementLicense menuLicensesLinearLinkLink seriesLink studyLinking study...Load ...Load canceled by userLoadingLoading plugins ...Loading resources ...Loading...Local AETLocal AET certificateLocal DICOM Dir setupLocal PACSLocal databaseLocal institutionLocationLocation SettingsLocation titles can't be repeatedLocationsLogLog file (*.log) | *.log | Text file (*.txt) | *.txtLog monitorLog monitoredLog nodeLogTextLogical error: Image not associated with existent serie in modelLogical error: Serie not associated with existent study in modelLogical error: Study not associated with existent patient in modelLoginMBMEDIASTINUMMLLPMade with %sMaleMalformed XMLMalformed template Id (Marking Tools Ctrl+MMax number of tabs openedMax seconds of Ginkgo CADx application inactivityMaximum length of title is 8 charactersMedical historyMessageMessage content:Message detailMessage successfully sentMessage's formatMessagesMetaEmotion HealthcareMetadataMetersMetric gridMicronsMigrate existing (recommended)Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. Do not close Ginkgo CADx until migration is finished.Migrating old DICOM Dir ...Migration finished successfully, now Ginkgo CADx will delete folder: Migration finisthed successfullyMilimetersMiscModalitiesModalityModality download errorModality settingsModification DateModifiedModule tool still registered when disposing ToolsRegistryMonitorizeMosaicMoveNACK received:NameNeed support ...New ...New Ginkgo Cloud studyNew UpdateNew UserNew hanging protocolNew version availableNew version available (NoNo DICOMDIR found in removable units, would you like to scan recursively %s driveNo DICOMDIR found in removable units. Would you like to scan other path recursively?No loginNo results foundNo suitable for diagnostic usage. Please consider upgrade toNormalNormal Angle (3 points)Not commitedNot enough parameters found on XMLNot foundNot implementedNoteNull ResponseOKOkOmitted AETOmitted IdentificatorOmitted portOne dayOne monthOne weekOne yearOnline manualOnline supportOpenOpen FileOpen Ginkgo CloudOpen Ginkgo Cloud linkOpen SeriesOpen Series with ..Open Source DICOM CADx environmentOpen Source LicensesOpen With ...Open fileOpen folderOpen in main windowOpen linkOpen only one tab for each studyOpen removable unitOpen studyOpen study with ..Open...OpenGLOpenSSLOtherOther settingsOthersOverview data of DICOM filesOverwriteP-ValuePACSPACS LimitsPACS acquisition is restrictedPACS error: PACS-ServicePDF files extracted successfully...PDU (KB)PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*PERFusionPETPan Ctrl+PParameters:PasswordPassword and confirm password can't be different.Password changed successfullyPassword has to contain at least 6 charactersPassword is not settedPassword is settedPastePaste from clipboardPathPath of the location doesn't existsPatientPatient IDPatient IdPatient idPatient informationPatient namePatient's name and surnamePendingPerimeterPhysicianPhysician's IdPhysician's namePointPointer EscPoints (I)Points (M)PolygonPortPort is not a valid numberPosition (I)Position (M)Position:Powered byPreviewPreviewsPrintPrivate keyPrivate key and Certificate do not matchPrivate key in PEM formatProcess canceled by user.Professional DICOM CADx environmentProfileProfile nameProfile name can't be repeatedProfilesProfiles SettingsProgram UpdatesPropertiesProperties ...Properties of Properties of ...Properties...ProtocolProxy server requires authenticationProxy settingsPublic keyPublic key in PEM formatPush configuration button and place window where you wantQualityQuery error with PACS Id Query retrieve level not specifiedQuery successfully performed.Querying PACS ...REGEXP called with wrong number of arguments: %d instead of 2.ROIReading datasetReading propertiesReceiver organization IdRecompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG Lossless)RedoRefering physicianReferring physicianRefreshRegular expression invalid: 'Relationship informationRemember that when you buy Ginkgo CADx Pro, you are contributing to development effortsRemoveRemove allRemove columnRemove old DICOM Dir after migration (will be renamed as *_old)Remove rowRemove sent messagesRequested module does not support importationRequested module is not registeredResetReset size to display resolutionReset to defaultRestrict search over selected patientRestrict study retrieval by maximum size (KB)ResultsRetrieve methodRetrieve modeRetry send to PACSReuse connectionReuse connections when is needed to make more than one queriesRightRotate 90Rotate and flipRotate cameraRowsRunningSPINALSQL LiteSSL/TLSSaveSave log...Save logsSave snapshot as new series...ScaleScale XScale YSearchSearch Ginkgo CloudSearch without parameters could take al long time Would you like to continue?SecuritySecurity SettingSecurity typeSelect DICOMDIRSelect PACSSelect PACS serverSelect a ViewSelect a valid DICOMDIR fileSelect a valid PACS ServerSelect allSelect at least one seriesSelect certificateSelect dicom dir files you want to acquireSelect driveSelect drive you want to openSelect files from filesystemSelect files...Select imagesSelect otherSelect other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new one will be created, else existing DICOM Dir will be usedSelect the DICOM Dir folderSelect the directory where the files will be storedSelect the format and the images you want to exportSelected imagesSelecting Import ProfileSemantic/Sintactic error parsing integration URL (see log for details): Semantic/Sintactic error parsing integration XML (see log for details): Send Hl7 message when importingSend files to PACSSend link by e-mailSend study to PACS when importingSend task status:Send to PACSSend to PACS...Sending HL7 message %d of %dSending to PACS...SentSeparate addresses with commas.SeriesSeries Instance UIDSeries dateSeries does not existSeries path couldn't be foundServerServer ID not found. ID = Server not foundServer settingsServiceService's IdService's nameSet DefaultSet PasswordSet activeSet by userSet compression, 0 implies no compression (0..14)Set defaultSet default valueSet main passwordSet passwordSetting not foundSettingsSettings menuSetup SecuritySetup corner annotationsSetup position and size of the window where you want to open the studySetup position...Setup windowSetup...SexShow DICOM inspectorShow GridShow MessageShow corner annotationsShow full screenShow gridShow history Alt+hShow link...Show on startupShow on startup default valueSkip demographic step if it's possibleSome of selected series has been deletedSpacing is not valid: (Spacing of the image is invalid: (Specify this Storage SOP Class in dicomizationSpectrumSpeedSplit horizontally...Split vertically...StartStart pageStarting Search ...Starting services...Starting tools...StatusStatus:Step %d of %d: Step 1 of 3: Importing imagesStep 2 of 3: Copying imagesStep 3 of 3: Uploading imagesStopStoppedStopping HL7 senderStoring in the history...StudiesStudies withStudyStudy DetailsStudy Instance UIDStudy UIDStudy dateStudy download size limit exceededStudy malformed or unsupportedStudy successfully retrieved.StyleSurnameSynchronizeSynchronize filesSystem authenticationTab RegroupTagTags (double click to change value)TasksTemplate Id unsupported (Test connectionTest titleTesting conectivity with the server...Testing the connection to the node ...TextText Note Ctrl+NThe calibration value is too highThe calibration value is too lowThe calibration value must be a decimal numberThe fileThe following commands will be aborted if you close the applicationThe following errors have occurred when validating fieldsThe module The pdu size is not a valid numberThe port is not a valid numberThe requested module isn't registeredThe selected directory can't be openedThe selected directory does not exist Would you like to create it?The selected directory does not exist Would you like to create?The service did not respond correctly to the C-ECHOThe service did not respond correctly to the DICOM standardThe submission process is started and ready to sendThe tool is already registeredThe username or password is incorrectThere are %d pending tasksThere are files that has to be downloaded to local database before executing this action, do you want to synchornize files now?There are other DICOM directory in selected pathThere are this errors: There aren't any PACS configuredThere aren't any module with importation supportThere is no URL to check updates on the current configuration.There is no any PACS configuredThere is no running tasksThere is not any Remote PACS configuredThere is not newest Ginkgo CADx versions at this moment.There is not registered any module with importation supportThere isn't any pdf reader registered in the systemThere was an error anonymizing filesThere was an error changing the password. To get more info open the LOG.There was an error creating directoryThere was an error deleting user. To get more info open the LOG.There was an error during exportationThere was an error during importation, check permissionsThere was an error inserting user. To get more info open the LOG.There was an error reading the directory, make sure you have write permissions on itThere was an error writing fileThese series have been deleted from the local historyThey have produced the following errors:This feature only affects to studies COPIED to DICOM Dir and not in useThis files are Dicom Dirs:This files doesn't exist:This files doesn't have DICOM format:This series has been already downloaded in the local history, Do you want to download it again?This study has been already downloaded in the local history, Do you want to download it again?This version of Ginkgo CADx is not compatible with current version of Ginkgo Cloud.This view doesn't support multiple windowsThreadingThree daysThree monthsTimeTitleTo download the study, paste this url TodayToday AMToday PMToolsTop left corner annotationTop left corner annotationsTop right corner annotationTrackball Ctrl+TTrapezoidTwo daysTwo weeksTypeURL of manualURL of online supportUnable to connect: Could not start network support.Unable to init HTTP subsystemUnable to load GIF animation resourceUnable to load PNG bitmap resourceUnable to load PNG image resourceUnable to open modality Unable to perform HTTP requestUnable to reserve memory for PDF dicomizationUnable to reserve memory for image DicomizationUnable to start GinkgoCADx: UndoUndo rotate and flipUnexpected error, select the module againUnique identifier of the Picture Archiving and Communication System Application (SIID/PACS).Unique identifier of the filler application (SIID/Ginkgo).Unique identifier of the organization receiving the message.UnknownUnknown JSon attribute:Unknown errorUnknown error in dicomization processUnknown module Id (Unknown operationUnknown protocolUnknown query/retrieve levelUnsaved dataUnsupported protocolUpdate period (days)Updating ...Upload images to a PACS serverUpload studyUpload study...Uploading file %d of %dUploading files ...Use SSL/TLSUse by defaultUse default certificate (certificate configured in local AET settings)UserUser NameUser deleted successfullyUser inserted successfullyUser loginUser nameUser name has to contain at least 4 charactersUser name repeatedUser/PasswordUsersUsually due to an error in sending a messageVR BonesVR Muscles & BonesVTKValueValue:Video Ctrl+SpaceViewView Full ScreenVoxel:WADOWADO ErrorWADO URLWarn about newest Ginkgo CADx updatesWarningWarning, to update the directory, you have to close every opened seriesWarning, to update the directory, you must close current opened series.WeightWindowWindow %dWindow annotationsWindow layoutWindow/Level Ctrl+WWindow/levelWorkspaceWould you like to overwrite them?Would you like to remove these messages?Would you like to save the changes in the study:WxWidgetsXX axis scaleXML Parser Not Found. Key=XML dicomizationXML parsing internal errorY axis scaleYesYesterdayYou are not allowed to download this kind of modalities.You can copy and paste link to use it in e-mails and web pages, you have to install Ginkgo CADx to download and visualize it.You can't remove opened seriesYou do not have permissions to write to the dicom Dir, preferences will be stored in the temporary directoryYou have reached maximum number of opened tabs, close some tabs and try it againYou have to set private and public keyYou must configure the local AET, which is used to communicate with the DICOM nodes. The specified port must be opened in the firewall, as it is essential for transfers.You must configure the local AET, which is used to communicate with the PACS server. The specified port must be opened in the firewall, as it is essential for transfers.You must create at least one userYou must define a default PACS in the integration XML or in the settings menuYou must fill both title and location fields to continueYou must fill in all fieldsYou must fill in all fields to continueYou must fill in name field to continueYou must select an imageYou must select at least one imageYou must select the images you want to importYou must select the import profileYou must select the profile you want to use importYou must set the main passwordYou must specify attributes you want to use in the queryZliball filesclockwisecmcounter-clockwiseerrorfree ofhttp://ginkgo-cadx.comhttp://ginkgo-cadx.com/image_%m-%d-%Y_in dicomization dir.into "Open Ginkgo Cloud link" tool of Ginkgo CADx history, or paste it into the address bar of your browser.search resultssecondssettingsthis seriesthose seriesProject-Id-Version: ginkgocadx Report-Msgid-Bugs-To: POT-Creation-Date: 2014-06-11 15:48+0100 PO-Revision-Date: 2014-06-11 15:48+0100 Last-Translator: Carlos Barrales Ruiz Language-Team: German Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 1.6.5 X-Launchpad-Export-Date: 2012-04-24 11:40+0000 X-Poedit-Basepath: . X-Poedit-KeywordsList: _;_Std X-Poedit-SourceCharset: utf-8 X-Poedit-SearchPath-0: ..\.. * Patientenname und Nachname dürfen zusammen nicht mehr als 61 Zeichen lang sein. * Das Format der eingegebenen Größe (in Zentimetern) ist nicht korrekt. * Das Format des eingegebenen Gewichts ist nicht korrekt. Gültige Werte sind 0 bis 400 Kg. * Die Patienten-ID ist erforderlich. * Das Geburtsdatum des Patienten liegt zeitlich hinter dem Datum der Studie. - Wenn Sie SSL/TLS nutzen wollen, müssen Sie ein gültiges Zertifikat und einen privaten Schlüssel angeben - Wenn Sie WADO verwenden möchten, müssen Sie einen WADO-URL angeben - Die Maximallänge des lokalen AET ist 16 Zeichen - Die PDU-Grösse sollte grösser als oder gleich Null sein (Voreinstellung = 16384) - Der lokale Port ist zu gross - Der lokale Port muss eine positive Ganzzahl sein (16 Bits) - Die Maximallänge des AET ist 16 Zeichen. - Der Maximalwert für die PDU ist - Der Minimalwert der PDU ist - Der Port ist zu gross - Der Port muss eine positive Ganzzahl sein (16 Bits) - Diese PACS-Id wird bereits verwendet - WADO-URL enthält keinen Rechnernamen - WADO-URL entspricht keinem gültigen Schema (z.B. http://) Es sind %d Fehler vorhanden (detaillierte Beschreibung im Protokoll) Möchten Sie es erneut versuchen? Automatischer Versuch in %d Sekunde(n) … Möchten Sie es erneut versuchen? (%d Bilder) . Modalität existiert nicht im Modell: Fügen Sie sie erst hinzu. . SOP-Klasse existiert nicht im Modell: Fügen Sie sie erst hinzu. . Transfer-Syntax existiert nicht im Modell: Fügen Sie sie erst hinzu. : Bytes von existiert nicht vom Verlauf? nicht erlaubt von bis nicht unterstützte Komponenten mit Transfersyntax Attribut »accion« wird erwartet in Gültigkeitsbereich »plantilla«Attribut »accion« ungültig in Gültigkeitsbereich »plantilla«Attribut »action« wird erwartet in Gültigkeitsbereich »gnkworkflow«Attribut »action« ungültig in Gültigkeitsbereich »gnkworkflow«Attribut »aid« wird erwartet in Gültigkeitsbereich »hce«Attribut »ambito« wird erwartet in Gültigkeitsbereich »dimse«Attribut »ambito« wird erwartet in Gültigkeitsbereich »plantilla«Attribut »ambito« ungültig in Gültigkeitsbereich »dimse«Attribut »cid« wird erwartet in Gültigkeitsbereich »centro«Attribut »clave« wird erwartet in Gültigkeitsbereich »metadato«Attribut »code« wird erwartet in Gültigkeitsbereich »metadata«Attribut »code« wird erwartet in Gültigkeitsbereich »patient«Attribut »code« wird erwartet in Gültigkeitsbereich »physician«Attribut »codigo« wird erwartet in Gültigkeitsbereich »medico«Attribut »codigo« wird erwartet in Gültigkeitsbereich »metadato«Attribut »codigo« wird erwartet in Gültigkeitsbereich »paciente«Attribut »id_peticion« wird erwartet in Gültigkeitsbereich »gnkworkflow«Attribut »iid« wird erwartet in Gültigkeitsbereich »institution«Attribut »key« wird erwartet in Gültigkeitsbereich »metadata«Attribut »pacs-retrieve-sid« ist leer in Gültigkeitsbereich »gnkworkflow«Attribut »pacs-store-sid« ist leer in Gültigkeitsbereich »gnkworkflow«Attribut »pacs_retrieve_sid« ist leer in Gültigkeitsbereich »plantilla«Attribut »pacs_store_sid« ist leer in Gültigkeitsbereich »plantilla«Attribut »uid« wird erwartet in Gültigkeitsbereich »dimse«Attribut »valor« wird erwartet in Gültigkeitsbereich »medico«Attribut »value« wird erwartet in Gültigkeitsbereich »physician«Attribut »value« wird erwartet in Gültigkeitsbereich »query-retrieve-level«%.1f Bilder/Sek%Y/%m/%d %H:%M:%S.%q%d Ergebnisse wurden gefunden%d.%m.%Y%d/%m/%Y %H:%M:%S%d/%m/%Y 00:00:00%s-EinstellungenA&kzeptieren&Abbrechen&Verlauf leeren&Schließen&Alle schließenAus dem Verlauf &Löschen&Bearbeiten&Ende&Beenden&Datei&Hilfe&Weiter >(ID oder Anamnese-Nr.))):): ist keine gültige HL7 Kennung (z.B. code^description^namespaceId)+.../0 laufende Prozesse.00/00/0000 00:00:001x1 Ansicht1x2 Ansicht2x1 Ansicht2x2 Ansicht3x3 Ansicht4x4 Ansicht644654645< Vo&riger?@AETInfoInfo zu ÜbernehmenAkquiriereDICOM-Dateien akquirierenEine DICOM-Studie vom PACS akquirierenAkquiriere aus einem DICOM VerzeichnisAkquiriere Bilder aus dem PACSAkquirierungsdatumAkquirierungsinformationenAktiviertHinzufügenDICOM-Markierung hinzufügenSpalte hinzufügenNeu hinzufügen …Zeile hinzufügenMarkierung hinzufügenFenster/Ebene hinzufügenStandort hinzufügen/bearbeitenErweitertErweiterte Konfiguration ...Erweiterte EinstellungenErweiterte SucheErweiterte Einstellungen ...AlterAlle PatientenImmer diese Ansicht zum Öffnen der Dateien verwendenWinkel Ctrl+AAnonymisierungAnonymisierungseinstellungenAnonymisierePrivater Modus (Verlauf wird geleert)Beliebiges DatumAnwendenDiese Datei von der Festplatte wirklich löschen?Sind Sie sicher, dass Sie den Importvorgang abbrechen möchten?Sind Sie sicher, dass sie löschen möchten FlächePfeilAsymmetrieAnsicht andockenEs wurde versucht, einen NULL-Zeiger zu dereferenzierenLegitimierungAutomatische BerechnungAutomatisch aufräumenAutomatisch berechnenSuche automatisch nach UpdatesStarte den HL7-Versanddienst automatischNur auf WADO-Servern verfügbarS/WS/W invertiertZurückBartenZwischen:GeburtsdatumSchwarzkörperEckbeschriftung unten linksEckbeschriftung unten rechtsHelligkeit/Kontrast Ctrl+BAuswählen …CairoKalibriere...KalibriereKalibrierungswert ist zu niedrigEs kann nicht zum PACS hochgeladen werden: Es kann nicht zum PACS hochgeladen werden: Interner FehlerAbbrechenKardialZentimeterZertifikatZertifikat für die VerbindungZertifikat, das »Ginkgo CADx« nutztÄndere ...Ändere Passwort ...Passwort ändernCharLSZeichensatzPACS-Konfiguration überprüfenNach Aktualisierungen suchenPrüfe auf neueste VersionNach Aktualisierungen suchenSuche automatisch nach UpdatesÜberprüfen UpdatefehlerVerzeichnis wählenWählen Sie die Ansicht, die sie zum Öffnen von Dateien verwenden wollenHinterher säubernVorher säubernOrdner nach der Dicomisierung säubernOrdner vor der Dicomisierung säubernListe leerenVerlauf leerenProtokoll leerenSchliessen»Ginkgo CADx« schließenAlle schließenSchließe alle AnsichtenSchließe alle FensterGinkgo CADx nach dem Dicomisieren automatisch schließenSchließe aktuelle AnsichtVerlauf schließenSchließe diese NachrichtScließt das Programm und bricht alle ausstehenden Kommandos abGinkgo CADx wird geschlossenCobbCobb-WinkelFarbpaletteSpaltenKommentareEinreichdatumEinreichkommentarEingereichtGebräuchliche MarkierungenKonfigurationsparameter der lokalen ArbeitsstationGitter konfigurierenGitter konfigurieren ...Konfiguriere OrtKonfiguriere UmgebungKennwort bestätigenLöschen bestätigenEntfernen des Knotens bestätigenBestätige das Entfernen des Profils Verbindungstest fehlgeschlagenVerbindungstest erfolgreichFortfahrenFortsetzen …KopierenKopieren oder verknüpfenIn Zwischenablage kopierenEckbeschriftungenEinstiegspunkt konnte nicht gefunden werdenBibliotheksdatei der Erweiterung konnte nicht geladen werdenBibliotheksdatei konnte nicht geladen werden. Prüfen Sie das ProtokollKonnte nicht in die Datei schreibenAnfrage konnte nicht ausgeführt werden.Studie konnte nicht empfangen werden.Neu erstellenErzeuge Vorschau...Vorschaubilder werden erstellt …ErstellungsdatumErstellerMitwirkendeKubischAktuelle AnordnungDCMTKDICOM (Nativformat)DICOM-VerzeichnisDICOM-VerzeichniskonfigurationDas DICOM-Verzeichnis wurde mit einer neueren Version von Ginkgo CADx (BBDD v.%d) erstellt. Die aktuelle Version ist nicht in der Lage, das Verzeichnis zu öffnen.DICOM-Verzeichnis ist das lokale Verzeichnis in dem der Verlauf gespeichert wirdDICOM-VerzeichnismigrationDICOM-FehlerDICOM-ExportDICOM-InspektorDICOM-MPPSDICOM-KnotenDICOM-KnotenDICOM-Daten aus den zu erstellenden Dateien können verteilt werdenDICOM-InspektorDICOM-KnotenDICOM-Knoteneinstellungen»Dark Glass«-SymboleDatenDaten geändertDatumDatum ZeitDatum:VoreinstellungStandard-ORU-VorlageStandard-Fenster/EbeneStandardzeichensatzStandard-ModalitätseinstellungenStandardtextStandardwertStandardwerteLöschenOberflächenelement löschenNachricht löschenÄltere Studien löschen, wenn freier Festplattenspeicher kleiner ist als:Ausgewählte Einträge löschenStudien löschen, wenn DICOM-Verzeichnis größer ist als:Studien löschen mit älterem Akquirierungsdatum als:Demographische DatenBeschreibungAuswahl aufhebenZielZiel:Ansicht abtrennenFenster abtrennenDICOM-MarkierungDicomisierung abgeschlossenDicomisierung erfolgreich abgeschlossenDicomisierenDateien dicomisierenDicomisieren …Dicomisierte DateienEndlosschleife deaktivierenAbstandSchließen Sie das Programm nicht und lassen Sie Kommandos laufenNicht erneut wegen des Updates warnenMöchten Sie Dateien kopieren oder verknüpfen?Ändere nicht den Bildcodec (wenn möglich)Diese Nachricht nicht mehr anzeigenHerunterladenLade %s Bilder herunterErneut herunterladenAlle Modalitäten herunterladenVon Ginkgo-Cloud herunterladenDownload der Modalität Serie herunterladenStudie herunterladenDatei wird heruntergeladenLade Datei %dLade Datei %d/%dLade Dateien ...Dateien werden heruntergeladen …Lade vom PACS...Serie wird heruntergeladen …Studie wird heruntergeladen …ER7BearbeitenBearbeiten ...Nachricht bearbeitenBenutzer bearbeitenEckbeschriftungen bearbeitenProfil bearbeitenÄndere den öffentlichen SchlüsselElementUngültige Werte im Feld Element oder GruppeEllipseLeere AntwortLeere KonfigurationAktiviere TLS-KonfigurationHTTP-Proxy aktivierenEndlosschleife aktivierenAktiviere entfernte PACS-KonfigurationShader aktivierenAktivieren/DeaktivierenAktiviertGeben Sie den Kalibrierungswert einFehlerFehler beim Zugriff auf die Controller-Subsystemintegration: (GIL:: DICOM).Fehler beim Check auf ProgrammupdatesFehler bei der Verbindung zur URLFehler bei der Erstellung der Datenbank: Fehler beim Erstellen der dicomDir-Datenbank Fehler beim Erstellen der Verlaufsdatenbank Fehler beim Erstellen der Vorschaubilder-Datenbank Fehler beim Löschen von NachrichtenFehler beim Herunterladen der WADO-DateiFehler beim Herunterladen der DateiFehler beim Herunterladen der Datei: Fehler beim Herunterladen der Dateien: Fehler beim Herunterladen der Studie: Fehler beim Ändern der NachrichtFehler beim Ausführen des Arbeitsablaufs Fehler beim Abarbeiten des Arbeitsablaufs Internes ProblemFehler beim Extrahieren des PDFs, Ginkgo CADx kann dieses Format nicht ladenFehler beim Erhalt der NachrichtFehler bei einer Cloud-Operation. Sehen Sie ins Protokoll für mehr Details …Fehler beim Verarbeiten der Befehlszeilenparameter. (Fehler bei der Bestätigung der Auslieferung: Auslieferung wurde von der Gegenstelle nicht registriertBestätigungslogik fehlgeschlagen. Die ID der Nachricht stimmt nicht überein.Fehler beim Laden der DICOM-KonformitätsdateiFehler beim Laden des Verlaufs, Ginkgo CADx wird geschlossenFehler beim Laden der StudieFehler beim Laden der Studie: nicht genug SpeicherFehler beim Laden der Studie, überprüfen Sie die Einstellungen zum Hanging-ProtokollFehler beim Laden der Studie.Fehler beim Laden der Studie: Fehler beim Laden der Studie: interner FehlerFehler beim Laden der Studie: Nicht genug SpeicherFehlermeldungFehler bei der JSon-Verarbeitung: Fehler beim Parsen des Integrations-XML: Fehler beim Ausführen der Anfrage.Fehler beim Verarbeiten der NachrichtFehler beim Löschen von NachrichtenFehler beim Lesen des Verlaufs: Fehler beim Lesen der Studie:Fehler beim Laden der Studie: Fehler beim Laden der Studie: Größter Pixel-Datenwert des Bildes ist inkohärent zur Kombination von Pixel-Repräsentation und High-BitFehler beim Laden der Studie: nicht unterstütztes PixelformatFehler beim Empfangen der Studie.Fehler beim SpeichernFehler beim Senden der HL7-Mitteilung; Details stehen im ProtokollFehler beim Sender der Nachricht. Es wurde gesendet Fehler beim Sender der Nachricht:Fehler beim Festlegen der TLS-Schicht: Fehler beim Starten des HL7-SendersFehler beim Speichern der Datei, Überprüfen Sie die Zugriffsrechte auf das VerzeichnisFehler beim Abgleichen der Studie: Fehler beim Deregistrieren von Werkzeugen: Fehler beim Hochladen der Studie zum PACS: Fehler beim Prüfen der FelderFehler beim Ausführen des Threads: Fehler:Fehler: PACS Eintrag Konfiguration nicht gefunden: Es traten während des Speicherns der Serie Fehler auf. Wollen Sie mit dem Schließen fortfahren? Ausnahmezustand beim Laden:AusnahmenVorhandene DateiSchließenAnwendung beendenUntersuche PACS...Durchsuchen von Verzeichnis Untersuche Verzeichnis ...Datenträger durchsuchen …ExportierenExportiere KonfigurationDICOM exportierenKonfiguration exportieren …Export wurde erfolgreich abgeschlossenBild exportieren …Bilder exportieren …Export erfolgreich abgeschlossenIn DICOM-Verzeichnis exportierenExportiere Datei %d von %dExportiere Dateien...Exportiere BilderSerie %d von %d wird exportiertErweiterungsdeskriptor stimmt nicht übereinErweiterungenEinstellung von ErweiterungenDatei wird entpackt …Dateien werden entpackt …Bestätigung gescheiterter Übertragung:Konnte Verzeichnis nicht anlegen. Stellen Sie sicher, dass der Pfad korrekt ist und Sie entsprechende Rechte im Wurzelverzeichnis haben.Konnte die Nummer der Datenbank nicht löschen: Konnte den Verlauf nicht leeren. Sie müssen geöffnete Studien schließenKonnte den Verlauf nicht leeren: Konnte Suche nicht durchführen: Konnte Rechte nicht setzen: Konnte Verbindung nicht startenFamFamFam-SymboleSchwerer Fehler! Sie können nicht zwei Parser registrieren mit dem gleichen SchlüsselWeiblichDatei konnte nicht gespeichert werden Datei existiert bereits Wollen Sie es überschreiben ?Dateiverweis:Geben Sie gültige Zahlen in die Felder Fenster und Ebene ein.Horizontal spiegelnVertikal spiegelnFlussErzwinge Verlustlosigkeit beim HochladenFormatFugue-IconsVollbildVollbildGE-FarbeGIL/DICOM/KonformitätAllgemeinAllgemeine KonfigurationsparameterVorschau wird erstellt …Erstelle VorschaubilderAbrufenAnwendungs-ID von »Ginkgo CADx« zum Eintrag in das Feld MSH.3Ginkgo CADxGinkgo CADx-Anwendungs-IDGinkgo CADx ProGinkgo CADx hat ein Standard-DICOM-Verzeichnis gefunden, das mit einer alten Version von Ginkgo CADx (BBDD v.%d) erstellt wurde. Wie möchten Sie vorgehen?»Ginkgo CADx« hat Untätigkeit festgestellt und wird in %d Sekunden geschlossen. Möchten Sie fortfahren?Ginkgo CADx hat mehr als einen Wechseldatenträger gefunden, jedoch enthält keiner davon ein DICOM-Verzeichnis im Wurzelverzeichnis. Wählen Sie das Laufwerk aus, von dem Sie rekursiv akquirieren möchten.»Ginkgo CADx« kann nicht packen von Ginkgo CADx-Handbuch …Ginkgo CADx muss mindestens einen Nutzer haben.»Ginkgo CADx« muss neu gestartet werden, damit die Änderungen wirksam werdenGingko CADx muss neu gestartet werden damit die Änderungen an den Erweiterungen aktiv werdenGinkgo CADx muss neu gestart werden damit die Änderungen an den Rechten aktiv werdenGinkgo CADx erneuertGinkgo CADx UpdatesGinkgo-CloudGinkgo Cloud-VerweisGinkgo Cloud-SucheTitel der Ginkgo-ErweiterungGrauer RegenbogenGitterGittermaßstabGruppeHL7HL7-ServiceHL7-NachrichtensteuerungHL7-NachrichtenHL7-Sender wurde gestartetHanging-ProtokollHanging-ProtokolleGrößeHelfen Sie uns durch Senden anonymer Nutzungsdaten (es werde keine Patientendaten gesendet)AusblendenDICOM-Inspektor ausblendenGitter ausblendenEck-Notizen ausblendenVerlaufHostHostname-Integrationsmaschine (IP oder DNS)Hostname / PortHostname fehltHeisses EisenHeisses MetallIch akzeptiere die LizenzIch akzeptiere die Lizenz nichtISO_IR 100ISO_IR 101ISO_IR 109ISO_IR 110ISO_IR 126ISO_IR 127ISO_IR 138ISO_IR 144ISO_IR 148ISO_IR 192ISO_IR 6IKKennungFinde korruptes Template in der ModulkonfigurationIdentifikator *Wenn Sie die Lizenzvereinbarung anerkennen, drücken Sie "Ich akzeptiere die Lizenz" um fortzufahren. Sie müssen die Lizenz akzeptierenm um mit Ginkgo CADx nutzen zu können.Wenn Sie SSL/TLS nutzen wollen, müssen Sie ein gültiges Zertifikat und einen gültigen privaten Schlüssel angebenIgnorieren des eingehenden Vorgangs Bilder-Browser-DialogfensterBildkalibrierungBildexportassistentBildimportassistentEinlesen des Bildes abgeschlossen.Bildformat nicht unterstütztBildauswahlBild ohne MaßstabBilder (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG-Bilder (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP-Bilder (*.bmp)|*.bmp;*BMP|PNG-Bilder (*.png)|*.png;*PNG|TIFF-Bilder (*.tif;*.tiff)|*.tif;*.tiff;*TIF;*TIFF|PDF-Dokumente (*.pdf;*.PDF)|*.PDF;*.pdf|Alle Dateien (*.*)|*.*Bilder (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|JPEG-Bilder (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP-Bilder (*.bmp)|*.bmp|PNG-Bilder (*.png)|*.png|TIFF-Bilder (*.tif;*.tiff)|*.tif;*.tiff|PDF-Dokumente (*.pdf)|*.pdf|Alle Dateien (*.*)|*.*ImportierenImportieren ...Importiere KonfigurationKonfiguration importieren …Dateien in das DICOM-Format importierenImportvorgang gescheitert:Importvorgang erfolgreich abgeschlossen, Ginkgo CADx neustarten, um Änderungen anzuwendenEs wird importiert …InaktivUntätigkeit festgestelltIm Verlauf enthalten …Füge Dateien zum Verlauf hinzu ..Füge Dateien ein...Füge Bilder hinzu InformationINI-Dateien (*.ini)|*.iniINI-Dateien (*.ini)|*.iniInitialisiere Umgebung...InstitutsnameInstitutionenInterner FehlerInterner FehlerInterner Fehler bei UpdateprüfungInterner Fehler bei AuthentifikationInterner Fehler beim Lesen der Studie, unbekanntes Format Interner Fehler beim Lesen der Studie: Interner Fehler beim Lesen der Studie:Interner Fehler beim Ausführen des Threads: Pixel-Daten interpolierenInterpretiere Parameter ...Interpretiere EigenschaftenUngültige DICOM-KonformitätsdateiUngültiger HTTP-CodeUngültige HTTP-AntwortUngültige Datei wurde heruntergeladenUngültiger VerweisUngültige Port-NummerFarbpalette umkehren"Patient"-Markierung ohne IDs gelesenJPEGJSon-AntwortJsonCppKgLONILONI2SpracheLetzte 3 MonateLetzten 30 TageLetzten 7 TageAnordnungLinksLängeEbeneLibJpegLibPngLibcurlLizenzvereinbarungLizenzmenüLizenzenLinearVerweisSerie verknüpfenStudie verknüpfenStudie wird verknüpft …Laden ...Laden durch Benutzer abgebrochenLadevorgangLade Plugins ...Ressourcen werden geladen …Laden…Lokale AETLokales AET-ZertifikatEinrichtung des lokalen DICOM-VerzeichnissesLokales PACSLokale DatenbankLokale InstitutionOrtStandorteinstellungenOrtsbenennungen können nicht wiederholt werdenOrteLogLog-Datei (*.log) | *.log | Text file (*.txt) | *.txtProtokollbetrachterÜberwachtes ProtokollKnoten protokollierenProtokolltextLogischer Fehler: Das Bild ist keiner existierenden Serie im Modell zugeordnetLogischer Fehler: Die Serie ist keiner existierenden Studie im Modell zugeordnetLogischer Fehler: Die Studie ist keinem existierenden Patienten im Modell zugeordnetLoginMBMEDIASTINUMMLLPErstellt mit %sMännlichKaputtes XMLKorrupter Template-BezeichnerMarkierungswerkzeuge Ctrl+MMax. Anzahl offener ReiterMax. Sekunden erlaubter Untätigkeit der »Ginkgo CADx«-AnwendungMaximale Länges des Titels is 8 ZeichenAnamneseNachrichtNachrichteninhalt:NachrichtendetailsNachricht erfolgreich gesendetNachrichtenformatNachrichtenMetaEmotion HealthcareMeta-DatenMeterMetrisches GitterMicronExistierende migrieren (empfohlen)Bestehendes DICOM-Verzeichnis migrieren, bestehende Dateien werden zum neuen DICOM-Verzeichnis hinzugefügt. Schließen Sie Ginkgo CADx nicht, bis die Migration abgeschlossen ist.Altes DICOM-Verzeichnis wird migriert …Migration erfolgreich abgeschlossen, Ginkgo CADx wird diesen Ordner jetzt löschen: Migration erfolgreich abgeschlossenMillimeterVerschiedenesModalitätenModalitätModalität-Download-FehlerModalitätseinstellungenÄnderungsdatumGeändertWerkzeugmodul nach Verwerfen der ToolsRegistry immer noch registriertÜberwachenMosaikVerschiebenNACK erhalten:NameUnterstützung benötigt ...Neu ...Neue Ginkgo Cloud-StudieNeues UpdateNeuer BenutzerNeues Hanging-ProtokollNeue Version verfügbarNeue Version verfügbar (NeinAuf Wechseldatenträgern wurde kein DICOM-Verzeichnis gefunden. Möchten Sie das Laufwerk %s rekursiv durchsuchen?Auf Wechseldatenträgern wurde kein DICOM-Verzeichnis gefunden. Möchten Sie den anderen Pfad rekursiv durchsuchen?Kein LoginKeine Ergebnisse gefundenFür diagnostische Zwecke keine geeigneten verfügbar. Erwägen Sie eine Aktualisierung aufNormalNormaler Winkel (3-Punkt)Nicht übertragenUnzureichende Parameter im XML festgestelltNicht gefundenNicht implementiertAnmerkungNULL-AntwortOKOKWeggelassener AETWeggelassener IdentifikatorWeggelassener PortEin TagEin MonatEine WocheEin JahrOnline-HandbuchOnline-UnterstützungÖffnenDatei öffnenGinkgo Cloud öffnenGinkgo Cloud-Verweis öffnenSerie öffnenSerie öffnen mit ...Open Source DICOM-System CADxOpen SOurce LizenzenÖffnen mit …Datei öffnenOrdner öffnenIm Hauptfenster öffnenVerweis öffnenNur einen Reiter pro Studie öffnenWechseldatenträger öffnenStudie öffnenStudie öffnen mit …Öffnen...OpenGLOpenSSLAndereAndere EinstellungenAnderesÜbersichtsdaten der DICOM-DateienÜberschreibenP-WertPACSPACS-GrenzwerteAkquirieren vom PACS ist eingeschränktPACS-Fehler: PACS-DienstPDF-Dateien wurden erfolgreich extrahiert …PDU (KB)PEM-Dateien (*.pem;*.key)|*.pem;*.key|Alle Dateien (*.*)|*.*PERFusionPETSchwenken Ctrl+PParameter:PasswortPasswort und Bestätigung können nicht verschieden sein.Passwort erfolgreich geändertPasswort muß mindestens 6 Zeichen lang seinKein Passwort definiertPasswort gesetztEinfügenAus der Zwischenablage einfügenPfadDer Pfad zu diesem Ort existiert nichtPatientPatienten-IDPatienten-IDPatienten-IDPatienteninformationenPatientennameVor- und Nachname des PatientenAusstehendUmfangArztMediziner-IDArztnamePunktZeiger EscPunkte (I)Punkte (M)PolygonPortPort enthält keine gültige ZahlPosition (I)Position (M)Position:Angetrieben vonVorschauVorschaubilderDruckenPrivater SchlüsselPrivater Schlüssel und Zertifikat stimmen nicht übereinPrivater Schlüssel im PEM-FormatVorgang vom Nutzer abgebrochenProfessionelle DICOM CADx-UmgebungProfilProfilnameProfilname kann nicht wiederholt werdenProfileProfileinstellungenProgrammupdatesEigenschaftenEigenschafte ...Eigenschaften von Eigenschaften von …Eigenschaften...ProtokollProxy-Server erfordert LegitimierungProxy-EinstellungenÖffentlicher SchlüsselÖffentlicher Schlüssel im PEM-FormatKlicken Sie auf den Konfigurieren-Knopf und platzieren Sie das Fenster wie gewünschtQualitätAbfragefehler mit der PACS-Id Abfragetiefe nicht angegebenAnfrage erfolgreich ausgeführt.PACS wird abgefragt …REGEXP wurde mit der falschen Anzahl Argumenten aufgerufen: %d anstatt 2.ROILese DatensetLese EigenschaftenEmpfänger-Organisations-IDRekompressions-Codec (0=JPEG-Baseline (Vorgabe), 1=JPEG-Progressiv, 2=JPEG-Verlustfrei)ErneutZuweisender ArztZuweisender ArztAuffrischenRegulärer Ausdruck ungültig: 'BeziehungsinformationenVergessen Sie nicht, dass Sie zum Entwicklungsfortschritt beitragen, wenn Sie Ginkgo CADx Pro kaufen.EntfernenAlle entfernenSpalte entfernenAltes DICOM-Verzeichnis nach der Migration entfernen (wird in *_old umbenannt)Zeile entfernenGesendete Nachrichten entfernenAngefordertes Modul unterstützt keine ImportsDas gewünschte Modul ist nicht registriertZurücksetzenGröße auf Bildschirmauflösung skalierenAuf Standard zurücksetzenSuche auf gewählten Patienten einschränkenSuche anhand maximaler Studiengröße einschränken (KB)ErgebnisseEmpfangsmethodeEmpfangsmodusErneut versuchen, zum PACS zu sendenVerbindung wiederverwendenBei mehr als einer Abfrage, Verbindungen wiederverwendenRechtsDrehen um 90°Drehen und SpiegelnKamera drehenZeilenWird ausgeführtWIRBELSÄULESQL LiteSSL/TLSSpeichernLog speichern...Logs speichernBildschirmfoto als neue Serie speichern …SkalierenX-SkalierungY-SkalierungDurchsuchenIn der Ginkgo Cloud suchenSuchen ohne Parameter kann eine lange Zeit dauern Möchten Sie fortfahren ?SicherheitSicherheitseinstellungenSicherheitsmodusDICOMDIR wählenPACS auswählenPACS-Server auswählenAnsicht auswählenWählen Sie eine gülltige DICOMDIR-DateiWähle einen gültigen PACS ServerAlle auswählenWählen Sie mindestens eine Serie ausZertifikat wählenWählen Sie die DICOMDIR-Datei, die Sie einlesen wollenLaufwerk auswählenLaufwerk auswählen, das geöffnet werden sollDateien vom Dateisystem auswählenDateien auswählen …Bilder auswählenAnderen wählenWählen Sie einen anderen Pfad, wenn der Pfad kein Ginkgo CADx-DICOM-Verzeichnis enthält, wobei dann ein neues angelegt wird. Ansonsten wird das bestehende DICOM-Verzeichnis verwendet.Wählen Sie das DICOM-Verzeichnis ausWählen Sie das Verzeichnis, in welches die Dateien gespeichert werden sollenWählen Sie das Format und die Bilder, die Sie exportieren wollenGewählte BilderAuswahl des ImportprofilsSemantischer/syntaktischer Fehler bei der Auswertung des Integrations-URL (siehe Protokoll für Details): Semantischer/syntaktischer Fehler beim Lesen des Integrations-XML (siehe Fehlerlog für Details): Sende HL7-Nachricht beim ImportierenDateien zum PACS sendenVerweis per E-Mail sendenSende Studie zum PACS beim ImportierenSende Aufgaben-Status:Zum PACS sendenZum PACS senden …HL7-Meldung %d von %d wird gesendetEs wird zum PACS gesendet …GesendetMehrere Adressen Komma-getrennt angeben.SerieSerieninstanz-UIDDatum der SerieSerie existiert nichtSerienpfad konnt nicht gefunden werdenServerServer-ID nicht gefunde. ID = Server nicht gefundenServer-EinstellungenDienstDienst-IDDienstnameStandard setzenPasswort setzenAktivierenNach Benutzer festlegenKompression wählen (0-14, 0=keine)Als Vorgabe festlegenAls Standardwert festlegenHauptpasswort setzenPasswort setzenEinstellung nicht gefundenEinstellungenEinstellungsmenüSicherheit einrichtenEckbeschriftungen einrichtenPosition und Größe des Fensters einrichten, in dem die Studie geöffnet werden sollPosition einrichten …Fenster einrichtenEinrichten …GeschlechtDICOM-Inspektor anzeigenGitter anzeigenNachricht zeigenEcknotizen zeigenVollbild anzeigenGitter anzeigenVerlauf anzeigen Alt+hVerweis anzeigen …Beim Start anzeigenVorgabe-Wert für Anzeigen beim StartDemographischen Schritt überspringen, wenn möglichEinige der ausgewählten Serien wurden gelöschtAbstand ist ungültig: (Abstand des Bildes ist ungültig: (Diese Speicher-SOP-Klasse bei der Dicomisierung angebenSpektrumGeschwindigkeitHorizontal teilen …Vertikal teilen …StartStartseiteStarte Suche ...Dienste werden gestartet …Werkzeuge wird gestartet …StatusStatus:Schritt %d von %d: Schritt 1 von 3: Importieren der BilderSchritt 2 von 3: Kopieren der BilderSchritt 3 von 3: Hochladen der BilderStoppAbgebrochenHL7-Sender wird gestopptEs wird im Verlauf gespeichert …StudienStudien mitStudieDetails zur StudieStudien-Instanz-UIDStudien-UIDStudiendatumGrößenbeschränkung für herunterladbare Studien wurde überschrittenStudie korrumpiert oder nicht unterstütztStudie erfolgreich empfangen.StilNachnameAbgleichenDateien abgleichenSystem-LegitimierungReiterumgruppierungMarkierungSchlagwörter (Doppelklick, um Wert zu ändern)AufgabenTemplate-Id wird nicht unterstützt (Verbindung testenTest-TitelTeste Verbindung mit dem Server...Verbindung zum Knoten wird getestet …TextTextnotiz Ctrl+NDer Kalibrationswert ist zu hochDer Kalibrationswert ist zu niedrigDer Kalibrationswert muß eine Dezimalzahl seinDie DateiFolgende Befehle werden abgebrochen, wenn Sie die Anwendung schließenFolgende Fehler sind beim Prüfen der Felder aufgetretenDas Modul Die PDU-Größe ist keine gültige ZahlenangabeDie Port-Angabe ist keine gültige ZahlDas angeforderte Modul ist nicht registriertDer gewählte Ordner kann nicht geöffnet werdenDer gewählte Ordner existiert nicht. Möchten Sie ihn erstellen?Der gewählte Ordner existiert nicht. Möchten Sie einen erstellen?Der Dienst antwortete nicht erwartungsgemäß auf das C-ECHODer Dienst hat nicht gemäß dem DICOM-Standard geantwortetDer Übermittlungsvorgang hat begonnen und bereit zum SendenDas Werkzeug ist bereits registriertBenutzername oder Passwort sind nicht korrektEs sind %d ausstehende Aufgaben vorhandenBevor diese Aktion ausgeführt werden kann, müssen Dateien zur lokalen Datenbank heruntergeladen werden. Möchten Sie die Dateien jetzt abgleichen?Angegebener Pfad enthält andere DICOM-VerzeichnisseEs sind diese Fehler vorhanden: Es sind keine PACS konfiguriertEs ist kein Modul mit Importunterstützung vorhandenIn der aktuellen Konfiguration ist keine URL zum Prüfen auf Aktualisierungen angegeben.Es ist kein PACS konfiguriert.Es sind keine laufenden Aufgaben vorhandenEs ist kein entfernter PACS konfiguriertIm Moment gibt es keine neuesten »Ginkgo CADx«-Versionen.Es ist kein Modul mit Importunterstützung registriertIm System ist kein PDF-Betrachter festgelegtBeim Anonymisieren der Dateien ist ein Fehler aufgetretenBeim Ändern des Passworts ist ein Fehler aufgetreten. Für mehr Informationen öffnen Sie das Protokoll.Beim Erstellen des Ordners ist ein Fehler aufgetretenBeim Löschen des Benutzers ist ein Fehler aufgetreten. Für mehr Informationen öffnen Sie das Protokoll.Beim Exportieren ist ein Fehler aufgetretenBeim Importieren ist ein Fehler aufgetreten, bitte Berechtigungen überprüfenBeim Einfügen des Benutzers ist ein Fehler aufgetreten. Für mehr Informationen öffnen Sie das Protokoll.Beim Lesen des Ordners ist ein Fehler aufgetreten, bitte Berechtigung zum Schreiben sicherstellenBeim Schreiben der Datei ist ein Fehler aufgetretenDiese Serien wurden aus dem lokalen Verlauf gelöschtSie haben die folgenden Fehler produziert:Diese Funktion betrifft nur Studien, die in das DICOM-Verzeichnis kopiert wurden und nicht geöffnet sindDiese Dateien sind DICOM-Verzeichnisse:Diese Dateien existieren nicht:Diese Dateien sind nicht im DICOM-Format:Diese Serie wurde bereits in den lokalen Verlauf heruntergeladen. Möchten Sie sie erneut herunterladen?Diese Studie wurde bereits in den lokalen Verlauf heruntergeladen. Möchten Sie sie erneut herunterladen?Diese Version von Ginkgo CADx ist zur aktuellen Version von Ginkgo Cloud nicht kompatibel.Diese Ansicht unterstützt nicht mehr als ein FensterThreadingDrei TageDrei MonateUhrzeitTitelUm die Studie herunterladen zu können, fügen Sie diesen URL HeuteHeute vormittagHeute nachmittagWerkzeugeEckbeschriftung oben linksEckbeschriftungen oben linksEckbeschriftung oben rechtsTrackball Ctrl+TTrapezoidZwei TageZwei WochenArtURL des HandbuchsURL der Online-UnterstützungVerbindung nicht möglich: Netzwerkunterstützung konnte nicht gestartet werden.HTTP-Subsystem kann nicht initialisiert werdenGIF-Animation-Ressource konnte nicht geladen werdenPNG-Bitmap-Ressource konnte nicht geladen werdenPNG-Bild-Ressource konnte nicht geladen werdenModalität kann nicht geöffnet werden: HTTP-Anfrage kann nicht ausgeführt werdenFür die PDF-Dicomisierung konnte kein Speicher reserviert werdenFür die Bild-Dicomisierung konnte kein Speicher reserviert werdenGinkgo CADx kann nicht gestartet werden: RückgängigDrehen und Spiegeln rückgängig machenUnerwarteter Fehler – wählen Sie das Modul erneut ausEindeutiger Bezeichner der »Picture Archiving and Communication System Application« (SIID/PACS).Eindeutiger Bezeichner der Filler-Anwendung (SIID/Ginkgo).Eindeutiger Bezeichner der Organisation, welche die Nachricht empfängt.UnbekanntUnbekanntes JSon-Attribut:Unbekannter FehlerUnbekannter Fehler im Dicomisierungs-ProzessUnbekannte Modul-Id (Unbekannte OperationUnbekanntes ProtokollUnbekannte AbfragetiefeUngespeicherte DatenNicht unterstütztes ProtokollAktualisierungsintervall (Tage)Es wird aktualisiert …Bilder auf einen PACS-Server hochladenStudie hochladenStudie hochladen …Datei %d von %d wird hochgeladenDateien werden hochgeladen …SSL/TLS benutzenAls Vorgabe verwendenStandardzertifikat (in lokalen AET-Einstellungen konfiguriert) verwendenBenutzerName des BenutzersBenutzer wurde erfolgreich gelöschtBenutzer wurde erfolgreich eingefügtBenutzernameBenutzernameDer Name des Benutzers muss min. 4 Zeichen lang seinBenutzername wiederholenBenutzer/PasswortBenutzerÜblicherweise aufgrund eines Fehlers beim Senden einer NachrichtVR KnochenVR Muskeln & KnochenVTKWertWert:Video Ctrl+SpaceAnzeigenAls Vollbild anzeigenVoxel:WADOWADO-FehlerWADO-URLWarnungen zu neuesten »Ginkgo CADx«-Aktualisierungen ausgebenWarnungWarnung! Um den Ordner zu aktualisieren, müssen Sie alle geöffneten Serien schließen.Warnung! Um den Ordner zu aktualisieren, müssen Sie die aktuell geöffnete Serie schließen.GewichtFensterFenster %dFensterbemerkungenFensteranordnungFenster/Ebene Ctrl+WFenster/EbeneArbeitsflächeMöchten Sie sie überschreiben?Möchten Sie diese Meldungen entfernen?Möchten Sie die Änderungen in der Studie speichern:WxWidgetsXSkalierung X-AchseXML-Parser nicht gefunden. Schlüssel=XML-DicomisierungInterner Fehler beim verarbeiten des XMLsSkalierung Y-AchseJaGesternSie sind nicht berechtigt, diese Art von Modalitäten herunterzuladen.Sie können den Verweis kopieren und in E-Mails sowie Webseiten einfügen – zum Herunterladen und Visualisieren muss Ginkgo CADx installiert sein.Sie können die geöffnete Serie nicht entfernenSie haben nicht die erforderliche Berechtigung, in das DICOM-Verzeichnis zu schreiben. Einstellungen werden im temporären Verzeichnis gespeichert.Sie haben die max. Anzahl offener Reiter erreicht, bitte einige Reiter schließen und erneut versuchenSie müssen den privaten und öffentlichen Schlüssel festlegenSie müssen den lokalen AET konfigurieren, der zur Kommunikation mit den DICOM-Knoten verwendet wird. Der angegebene Port muss in der Firewall geöffnet sein, weil dies für Übertragungen essentiell ist.Sie müssen den lokalen AET konfigurieren, der zur Kommunikation mit dem PACS-Server verwendet wird. Der angegebene Port muss in der Firewall geöffnet sein, weil dies für Übertragungen essentiell ist.Sie müssen zumindest einen Benutzer erstellenSie müssen einen Standard-PACS im Integrations-XML oder im Menü Einstellungen definierenSie müssen beide Felder ausfüllen zum Fortfahren, Titel und OrtSie müssen alle Felder ausfüllenSie müssen alle Felder ausfüllen zum FortfahrenSie müssen das Feld Name ausfüllen zum FortfahrenSie müssen ein Bild auswählenSie müssen zumindest ein Bild auswählenSie müssen die Bilder auswählen, die Sie importieren möchtenSie müssen das Import-Profil auswählenSie müssen das Profil auswählen, das Sie für dem Import nutzen möchtenSie müssen das Hauptpasswort festlegenSie müssen die Attribute angeben, die Sie in der Abfrage verwenden möchtenZlibAlle DateienIm UhrzeigersinncmGegen den UhrzeigersinnFehlerfrei vonhttp://ginkgo-cadx.comhttp://ginkgo-cadx.com/Bild_%Y-%m-%d-_im Dicomisierungs-Ordner.in das »Open Ginkgo Cloud-Verweis«-Werkzeug im Ginkgo CADx-Verlauf ein oder in die Adresszeile Ihres Webbrowsers.SuchergebnisseSekundenEinstellungendiese Seriejene Serienginkgocadx-3.8.7/cadxcore/lang/de/cadxcore.po000066400000000000000000007331301314736454600211240ustar00rootroot00000000000000# German translation for ginkgocadx # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the ginkgocadx package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: ginkgocadx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-06-11 15:48+0100\n" "PO-Revision-Date: 2014-06-11 15:48+0100\n" "Last-Translator: Carlos Barrales Ruiz \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" "X-Launchpad-Export-Date: 2012-04-24 11:40+0000\n" "X-Poedit-Basepath: .\n" "X-Poedit-KeywordsList: _;_Std\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SearchPath-0: ..\\..\n" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "S/W" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "S/W invertiert" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "Barten" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "Schwarzkörper" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "Kardial" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "VR Knochen" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "VR Muskeln & Knochen" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "VR Red Vessels" msgstr "VR Knochen" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "Grauer Regenbogen" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "Spektrum" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Metal" msgstr "Heisses Metall" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "Heisses Eisen" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "Hot Green" msgstr "Heisses Metall" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "GE Color" msgstr "GE-Farbe" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "PERFusion" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PET" msgstr "PET" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "Fluss" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "LONI" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "LONI2" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "Asymmetrie" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "P-Value" msgstr "P-Wert" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "ROI" #: ..\../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "Es wurde versucht, einen NULL-Zeiger zu dereferenzieren" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #: ..\../api/dicom/idicomconformance.cpp:214 #: ..\../api/dicom/idicomconformance.cpp:220 msgid "GIL/DICOM/Conformance" msgstr "GIL/DICOM/Konformität" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #, fuzzy msgid "Unable to add supported transfer syntax " msgstr "" " . Transfer-Syntax existiert nicht im Modell: Fügen Sie sie erst hinzu." #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #, fuzzy msgid " to SOP Class " msgstr "Diese Speicher-SOP-Klasse bei der Dicomisierung angeben" #: ..\../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr "" " . Transfer-Syntax existiert nicht im Modell: Fügen Sie sie erst hinzu." #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr " . SOP-Klasse existiert nicht im Modell: Fügen Sie sie erst hinzu." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #, fuzzy msgid "Unable to add supported SOP Class " msgstr " . SOP-Klasse existiert nicht im Modell: Fügen Sie sie erst hinzu." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #, fuzzy msgid " to Modality " msgstr "Modalität" #: ..\../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr " . Modalität existiert nicht im Modell: Fügen Sie sie erst hinzu." #: ..\../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "Fehler beim Laden der DICOM-Konformitätsdatei" #: ..\../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "Ungültige DICOM-Konformitätsdatei" #: ..\../api/iannotator.cpp:97 msgid "Slice" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "of" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "Volume" msgstr "" #: ..\../api/iannotator.cpp:107 msgid "Voxel:" msgstr "Voxel:" #: ..\../api/iannotator.cpp:110 msgid "Image without metric information" msgstr "Bild ohne Maßstab" #: ..\../api/iannotator.cpp:119 msgid "Slice thickness" msgstr "" #: ..\../api/iannotator.cpp:127 #, fuzzy msgid "Slice location" msgstr "Ort" #: ..\../api/iannotator.cpp:139 msgid "Scale" msgstr "Skalieren" #: ..\../api/iannotator.cpp:147 msgid "Right" msgstr "Rechts" #: ..\../api/iannotator.cpp:149 msgid "Left" msgstr "Links" #: ..\../api/iannotator.cpp:219 msgid "Position:" msgstr "Position:" #: ..\../api/iannotator.cpp:272 msgid "Value:" msgstr "Wert:" #: ..\../api/iexception.cpp:52 #, fuzzy msgid "Exception in component" msgstr "Ausnahmezustand beim Laden:" #: ..\../api/initwx.cpp:439 msgid "Initializing environment ..." msgstr "Initialisiere Umgebung..." #: ..\../api/initwx.cpp:446 ..\../api/initwx.cpp:447 ..\../api/initwx.cpp:448 #: ..\../api/initwx.cpp:449 ..\../api/initwx.cpp:450 ..\../api/initwx.cpp:451 #: ..\../api/initwx.cpp:452 ..\../api/initwx.cpp:453 #, fuzzy msgid "Ginkgo CADx restrictions" msgstr "Ginkgo CADx" #: ..\../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "Nur einen Reiter pro Studie öffnen" #: ..\../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "Privater Modus (Verlauf wird geleert)" #: ..\../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "Max. Anzahl offener Reiter" #: ..\../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "Max. Sekunden erlaubter Untätigkeit der »Ginkgo CADx«-Anwendung" #: ..\../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "Ginkgo CADx nach dem Dicomisieren automatisch schließen" #: ..\../api/initwx.cpp:451 msgid "Export images" msgstr "Bilder exportieren …" #: ..\../api/initwx.cpp:452 msgid "Acquire DICOM files" msgstr "DICOM-Dateien akquirieren" #: ..\../api/initwx.cpp:453 msgid "Import files to DICOM format" msgstr "Dateien in das DICOM-Format importieren" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "Online manual" msgstr "Online-Handbuch" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "URL of manual" msgstr "URL des Handbuchs" #: ..\../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "" #: ..\../api/initwx.cpp:459 msgid "Online support" msgstr "Online-Unterstützung" #: ..\../api/initwx.cpp:459 msgid "URL of online support" msgstr "URL der Online-Unterstützung" #: ..\../api/initwx.cpp:459 msgid "http://ginkgo-cadx.com/" msgstr "http://ginkgo-cadx.com/" #: ..\../api/initwx.cpp:460 ..\../api/initwx.cpp:461 msgid "Program Updates" msgstr "Programmupdates" #: ..\../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "Warnungen zu neuesten »Ginkgo CADx«-Aktualisierungen ausgeben" #: ..\../api/initwx.cpp:461 msgid "Update period (days)" msgstr "Aktualisierungsintervall (Tage)" #: ..\../api/initwx.cpp:462 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "Sicherheit" #: ..\../api/initwx.cpp:462 msgid "Setup Security" msgstr "Sicherheit einrichten" #: ..\../api/initwx.cpp:463 msgid "Show on startup" msgstr "Beim Start anzeigen" #: ..\../api/initwx.cpp:463 msgid "Show on startup default value" msgstr "Vorgabe-Wert für Anzeigen beim Start" #: ..\../api/initwx.cpp:465 ..\../api/initwx.cpp:466 #: ..\../main/gui/history3/historypanel3.cpp:328 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "Werkzeuge" #: ..\../api/initwx.cpp:465 msgid "Settings menu" msgstr "Einstellungsmenü" #: ..\../api/initwx.cpp:466 msgid "License menu" msgstr "Lizenzmenü" #: ..\../api/initwx.cpp:467 ..\../api/initwx.cpp:468 ..\../api/initwx.cpp:469 #: ..\../api/initwx.cpp:470 ..\../api/initwx.cpp:471 ..\../api/initwx.cpp:472 #: ..\../api/initwx.cpp:473 ..\../api/initwx.cpp:474 msgid "PACS Limits" msgstr "PACS-Grenzwerte" #: ..\../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "" #: ..\../api/initwx.cpp:468 msgid "Upload images to a PACS server" msgstr "Bilder auf einen PACS-Server hochladen" #: ..\../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "Akquiriere Bilder aus dem PACS" #: ..\../api/initwx.cpp:470 msgid "Enable remote PACS configuration" msgstr "Aktiviere entfernte PACS-Konfiguration" #: ..\../api/initwx.cpp:471 msgid "Enable TLS configuration" msgstr "Aktiviere TLS-Konfiguration" #: ..\../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "Suche auf gewählten Patienten einschränken" #: ..\../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "Suche anhand maximaler Studiengröße einschränken (KB)" #: ..\../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "Erzwinge Verlustlosigkeit beim Hochladen" #: ..\../api/initwx.cpp:475 ..\../api/initwx.cpp:476 ..\../api/initwx.cpp:477 #: ..\../api/initwx.cpp:478 ..\../api/initwx.cpp:479 ..\../api/initwx.cpp:480 msgid "Import" msgstr "Importieren" #: ..\../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "Diese Speicher-SOP-Klasse bei der Dicomisierung angeben" #: ..\../api/initwx.cpp:476 msgid "Show accession number input" msgstr "" #: ..\../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "Kompression wählen (0-14, 0=keine)" #: ..\../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" "Rekompressions-Codec (0=JPEG-Baseline (Vorgabe), 1=JPEG-Progressiv, 2=JPEG-" "Verlustfrei)" #: ..\../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "Ändere nicht den Bildcodec (wenn möglich)" #: ..\../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "Demographischen Schritt überspringen, wenn möglich" #: ..\../api/initwx.cpp:482 msgid "HL7 Service" msgstr "HL7-Service" #: ..\../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "Starte den HL7-Versanddienst automatisch" #: ..\../api/initwx.cpp:483 ..\../api/initwx.cpp:484 ..\../api/initwx.cpp:485 msgid "XML dicomization" msgstr "XML-Dicomisierung" #: ..\../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "Sende HL7-Nachricht beim Importieren" #: ..\../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "Sende Studie zum PACS beim Importieren" #: ..\../api/initwx.cpp:485 msgid "Default ORU template" msgstr "Standard-ORU-Vorlage" #: ..\../api/initwx.cpp:488 ..\../api/initwx.cpp:489 ..\../api/initwx.cpp:491 #: ..\../api/initwx.cpp:493 ..\../api/initwx.cpp:494 ..\../api/initwx.cpp:495 #: ..\../api/initwx.cpp:496 ..\../api/initwx.cpp:498 msgid "Style" msgstr "Stil" #: ..\../api/initwx.cpp:503 #, c-format msgid "Download %s images" msgstr "Lade %s Bilder herunter" #: ..\../api/initwx.cpp:504 ..\../api/initwx.cpp:508 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:21 msgid "PACS" msgstr "PACS" #: ..\../api/initwx.cpp:507 msgid "Download all modalities" msgstr "Alle Modalitäten herunterladen" #: ..\../api/initwx.cpp:510 msgid "OpenGL" msgstr "OpenGL" #: ..\../api/initwx.cpp:510 msgid "Enable shaders" msgstr "Shader aktivieren" #: ..\../api/initwx.cpp:513 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:388 msgid "Ginkgo Cloud" msgstr "Ginkgo-Cloud" #: ..\../api/initwx.cpp:513 msgid "Download from Ginkgo Cloud" msgstr "Von Ginkgo-Cloud herunterladen" #: ..\../api/initwx.cpp:560 #, fuzzy msgid "Tools loading base ..." msgstr "Werkzeuge" #: ..\../api/initwx.cpp:562 msgid "Starting tools..." msgstr "Werkzeuge wird gestartet …" #: ..\../api/initwx.cpp:566 msgid "Loading plugins ..." msgstr "Lade Plugins ..." #: ..\../api/initwx.cpp:580 msgid "Unable to start GinkgoCADx:\n" msgstr "Ginkgo CADx kann nicht gestartet werden:\n" #: ..\../api/initwx.cpp:580 ..\../api/initwx.cpp:621 msgid "error" msgstr "Fehler" #: ..\../api/initwx.cpp:584 msgid "Loading resources ..." msgstr "Ressourcen werden geladen …" #: ..\../api/initwx.cpp:587 msgid "Starting services..." msgstr "Dienste werden gestartet …" #: ..\../api/initwx.cpp:601 msgid "Configuring environment ..." msgstr "Konfiguriere Umgebung" #: ..\../api/initwx.cpp:621 msgid "Failed to set permissions:\n" msgstr "Konnte Rechte nicht setzen:\n" #: ..\../api/initwx.cpp:634 msgid "Updating ..." msgstr "Es wird aktualisiert …" #: ..\../api/initwx.cpp:638 msgid "Interpreting parameters ..." msgstr "Interpretiere Parameter ..." #: ..\../api/initwx.cpp:689 msgid "Error unregistering tools: " msgstr "Fehler beim Deregistrieren von Werkzeugen: " #: ..\../api/initwx.cpp:769 #, fuzzy msgid "Starting" msgstr "Werkzeuge wird gestartet …" #: ..\../api/ivista.cpp:36 ..\../commands/comandocarga.cpp:73 msgid "Loading..." msgstr "Laden…" #: ..\../api/iwidgets.cpp:268 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ..\../main/gui/import/pasosimportacionbase.cpp:151 msgid "Name" msgstr "Name" #: ..\../api/iwidgets.cpp:285 msgid "Area" msgstr "Fläche" #: ..\../api/iwidgets.cpp:302 msgid "Perimeter" msgstr "Umfang" #: ..\../api/iwidgets.cpp:316 #, fuzzy msgid "Travel (I)" msgstr "Vertex (I)" #: ..\../api/iwidgets.cpp:326 #, fuzzy msgid "Travel (M)" msgstr "Vertex (M)" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #: ..\../api/threads/thread.cpp:120 msgid "Threading" msgstr "Threading" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid "Error while running thread: " msgstr "Fehler beim Ausführen des Threads: " #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid " : " msgstr " : " #: ..\../api/threads/thread.cpp:120 msgid "Internal error while running thread: " msgstr "Interner Fehler beim Ausführen des Threads: " #: ..\../api/widgetserializable.cpp:60 msgid "Creation Date" msgstr "Erstellungsdatum" #: ..\../api/widgetserializable.cpp:65 msgid "Modification Date" msgstr "Änderungsdatum" #: ..\../api/widgetserializable.cpp:68 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ..\../wx/gnkinforme/gnkinformebase.cpp:40 msgid "Physician" msgstr "Arzt" #: ..\../commands/acquirefromurlcommand.cpp:55 #: ..\../commands/pacsdownloadcommand.cpp:88 #: ..\../commands/synchronizationcommand.cpp:70 msgid "Downloading files ..." msgstr "Lade Dateien ..." #: ..\../commands/acquirefromurlcommand.cpp:69 #: ..\../commands/synchronizationcommand.cpp:91 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, c-format msgid "Downloading file %d" msgstr "Lade Datei %d" #: ..\../commands/acquirefromurlcommand.cpp:81 msgid "Error downloading file: " msgstr "Fehler beim Herunterladen der Datei: " #: ..\../commands/acquirefromurlcommand.cpp:95 #: ..\../commands/pacsdownloadcommand.cpp:114 #: ..\../commands/synchronizationcommand.cpp:121 msgid "Internal Error" msgstr "Interner Fehler" #: ..\../commands/acquirefromurlcommand.cpp:115 msgid "Error downloading files: " msgstr "Fehler beim Herunterladen der Dateien: " #: ..\../commands/autocleaningcommand.cpp:62 #, fuzzy msgid "Cleaning dicomdir..." msgstr "Automatisch aufräumen" #: ..\../commands/cloudcommand.cpp:67 msgid "Downloading files..." msgstr "Dateien werden heruntergeladen …" #: ..\../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "" #: ..\../commands/cloudcommand.cpp:183 msgid "Unknown operation" msgstr "Unbekannte Operation" #: ..\../commands/cloudcommand.cpp:188 msgid "Error in cloud operation. See log to get more details..." msgstr "" "Fehler bei einer Cloud-Operation. Sehen Sie ins Protokoll für mehr Details …" #: ..\../commands/cloudcommand.cpp:249 msgid "Could to retrieve study." msgstr "Studie konnte nicht empfangen werden." #: ..\../commands/cloudcommand.cpp:260 ..\../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" "Diese Version von Ginkgo CADx ist zur aktuellen Version von Ginkgo Cloud " "nicht kompatibel." #: ..\../commands/cloudcommand.cpp:262 msgid "Error retrieving study." msgstr "Fehler beim Empfangen der Studie." #: ..\../commands/cloudcommand.cpp:271 msgid "Study successfully retrieved." msgstr "Studie erfolgreich empfangen." #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "Speed" msgstr "Geschwindigkeit" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "bytes/sec during" msgstr " Bytes von " #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "seconds" msgstr "Sekunden" #: ..\../commands/cloudcommand.cpp:275 msgid "Empty Response" msgstr "Leere Antwort" #: ..\../commands/cloudcommand.cpp:289 msgid "Extracting files..." msgstr "Dateien werden entpackt …" #: ..\../commands/cloudcommand.cpp:313 ..\../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "Ungültige Datei wurde heruntergeladen" #: ..\../commands/cloudcommand.cpp:383 msgid "Could to perform query." msgstr "Anfrage konnte nicht ausgeführt werden." #: ..\../commands/cloudcommand.cpp:396 msgid "Error perfoming the query." msgstr "Fehler beim Ausführen der Anfrage." #: ..\../commands/cloudcommand.cpp:405 msgid "Query successfully performed." msgstr "Anfrage erfolgreich ausgeführt." #: ..\../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "JSon-Antwort" #: ..\../commands/cloudcommand.cpp:472 msgid "Unknown JSon attribute:" msgstr "Unbekanntes JSon-Attribut:" #: ..\../commands/cloudcommand.cpp:482 msgid "Error parsing JSon: " msgstr "Fehler bei der JSon-Verarbeitung: " #: ..\../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "NULL-Antwort" #: ..\../commands/cloudcommand.cpp:515 #: ..\../commands/openremovableunit.cpp:148 ..\../main/gui/open/abrir.cpp:119 #: ..\../main/gui/open/abrir.cpp:159 ..\../main/gui/open/opendialogs.cpp:146 msgid "Storing in the history..." msgstr "Es wird im Verlauf gespeichert …" #: ..\../commands/comandoactualizaciones.cpp:46 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:536 msgid "Check Updates" msgstr "Nach Aktualisierungen suchen" #: ..\../commands/comandoactualizaciones.cpp:136 msgid "Not enough parameters found on XML" msgstr "Unzureichende Parameter im XML festgestellt" #: ..\../commands/comandoactualizaciones.cpp:145 msgid "XML parsing internal error" msgstr "Interner Fehler beim verarbeiten des XMLs" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Error checking application updates" msgstr "Fehler beim Check auf Programmupdates" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Ginkgo CADx updates" msgstr "Ginkgo CADx Updates" #: ..\../commands/comandoactualizaciones.cpp:170 msgid "Internal error checking updates" msgstr "Interner Fehler bei Updateprüfung" #: ..\../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "Serienpfad konnt nicht gefunden werden" #: ..\../commands/comandocarga.cpp:92 ..\../commands/comandocarga.cpp:96 msgid "Exception loading:" msgstr "Ausnahmezustand beim Laden:" #: ..\../commands/comandocarga.cpp:100 msgid "Study malformed or unsupported" msgstr "Studie korrumpiert oder nicht unterstützt" #: ..\../commands/comandocarga.cpp:129 ..\../commands/comandocarga.cpp:139 msgid "Error loading study: " msgstr "Fehler beim Laden der Studie: " #: ..\../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "Fehler beim Laden der Studie: nicht genug Speicher" #: ..\../commands/comandocarga.cpp:144 msgid "Error loading study." msgstr "Fehler beim Laden der Studie." #: ..\../commands/comandocarga.cpp:149 msgid "Load canceled by user" msgstr "Laden durch Benutzer abgebrochen" #: ..\../commands/comandocarga.cpp:156 #: ..\../main/gui/history3/historypanel3.cpp:1056 #: ..\../main/gui/history3/historypanel3.cpp:1063 #: ..\../main/gui/history3/historypanel3.cpp:1068 msgid "Error loading study" msgstr "Fehler beim Laden der Studie" #: ..\../commands/comandoexportacion.cpp:81 #: ..\../commands/exporttodicomdircommand.cpp:214 msgid "Exporting files..." msgstr "Exportiere Dateien..." #: ..\../commands/comandoexportacion.cpp:105 #: ..\../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "Export wurde erfolgreich abgeschlossen" #: ..\../commands/comandoexportacion.cpp:158 #, c-format msgid "Exporting file %d of %d" msgstr "Exportiere Datei %d von %d" #: ..\../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "" "Fehler beim Speichern der Datei, Überprüfen Sie die Zugriffsrechte auf das " "Verzeichnis" #: ..\../commands/comandoexportacion.cpp:233 msgid "image_%m-%d-%Y_" msgstr "Bild_%Y-%m-%d-_" #: ..\../commands/comandoincluirhistorial.cpp:108 msgid "Exploring directory ..." msgstr "Untersuche Verzeichnis ..." #: ..\../commands/comandoincluirhistorial.cpp:122 #, fuzzy msgid "Reading DICOMDIR ..." msgstr "DICOMDIR wählen" #: ..\../commands/comandoincluirhistorial.cpp:142 #: ..\../commands/comandoincluirhistorial.cpp:156 #: ..\../commands/comandoincluirhistorial.cpp:177 msgid "Including files in the history .." msgstr "Füge Dateien zum Verlauf hinzu .." #: ..\../commands/comandoincluirhistorial.cpp:196 msgid "Exploring directory " msgstr "Durchsuchen von Verzeichnis " #: ..\../commands/comandoincluirhistorial.cpp:256 #: ..\../commands/linkhistorycommand.cpp:118 msgid "Image acquisition finished." msgstr "Einlesen des Bildes abgeschlossen." #: ..\../commands/comandoincluirhistorial.cpp:258 #, c-format msgid "There have been included %d images." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:261 #: ..\../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" "\n" "Es sind %d Fehler vorhanden (detaillierte Beschreibung im Protokoll)" #: ..\../commands/comandoincluirhistorial.cpp:273 #: ..\../commands/linkhistorycommand.cpp:133 msgid "This files doesn't exist:" msgstr "Diese Dateien existieren nicht:" #: ..\../commands/comandoincluirhistorial.cpp:284 #: ..\../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "Diese Dateien sind nicht im DICOM-Format:" #: ..\../commands/comandoincluirhistorial.cpp:296 #: ..\../commands/linkhistorycommand.cpp:156 msgid "This files are Dicom Dirs:" msgstr "Diese Dateien sind DICOM-Verzeichnisse:" #: ..\../commands/comandopacs.cpp:58 ..\../commands/pacsdownloadcommand.cpp:61 #: ..\../commands/sendpacscommand.cpp:137 msgid "There is not any Remote PACS configured" msgstr "Es ist kein entfernter PACS konfiguriert" #: ..\../commands/comandopacs.cpp:84 msgid "Querying PACS ..." msgstr "PACS wird abgefragt …" #: ..\../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "" "Fehler beim Zugriff auf die Controller-Subsystemintegration: (GIL:: DICOM)." #: ..\../commands/comandopacs.cpp:98 msgid "Starting Search ..." msgstr "Starte Suche ..." #: ..\../commands/comandopacs.cpp:108 #: ..\../commands/pacsdownloadcommand.cpp:101 msgid "Server ID not found. ID = " msgstr "Server-ID nicht gefunde. ID = " #: ..\../commands/comandopacs.cpp:110 ..\../commands/comandopacs.cpp:112 #: ..\../commands/comandopacs.cpp:114 ..\../commands/comandopacs.cpp:116 msgid "Query error with PACS Id " msgstr "Abfragefehler mit der PACS-Id " #: ..\../commands/comandopacs.cpp:116 #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/gui/history3/historypanel3.cpp:1068 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error" msgstr "Interner Fehler" #: ..\../commands/comandopacs.cpp:135 msgid "Failed to perform search: " msgstr "Konnte Suche nicht durchführen: " #: ..\../commands/dbmigrationcommand.cpp:94 #: ..\../commands/dbmigrationcommand.cpp:103 msgid "Migrating old DICOM Dir ..." msgstr "Altes DICOM-Verzeichnis wird migriert …" #: ..\../commands/dbmigrationcommand.cpp:99 #: ..\../commands/dbmigrationcommand.cpp:108 #, fuzzy msgid "Including files ..." msgstr "Füge Dateien ein..." #: ..\../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" "Migration erfolgreich abgeschlossen, Ginkgo CADx wird diesen Ordner jetzt " "löschen:\n" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 #: ..\../commands/dicomizecommand.cpp:181 #: ..\../commands/openremovableunit.cpp:74 #: ..\../commands/openremovableunit.cpp:110 #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../commands/pdfextractercommand.cpp:130 #: ..\../main/controllers/historycontroller.cpp:447 #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 #: ..\../main/controllers/historycontroller.cpp:1976 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ..\../main/gui/export/parametrosprincipales.cpp:161 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 #: ..\../main/gui/history3/historypanel3.cpp:1045 #: ..\../main/gui/history3/historypanel3.cpp:1078 #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1119 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 #: ..\../main/gui/import/selectimagesimportation.cpp:141 #: ..\../main/gui/import/selectimagesimportation.cpp:342 #: ..\../main/gui/import/selectimagesimportation.cpp:743 #: ..\../main/gui/import/selectimagesimportation.cpp:761 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ..\../main/gui/login/dialogologin.cpp:50 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ..\../main/gui/open/opendialogs.cpp:58 #: ..\../main/gui/open/opendialogs.cpp:62 #: ..\../main/gui/open/opendialogs.cpp:134 #: ..\../main/gui/progress/statusbarprogreso.cpp:284 #: ..\../main/gui/progress/statusbarprogreso.cpp:287 #: ..\../main/gui/progress/statusbarprogreso.cpp:292 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Info" msgstr "Information" #: ..\../commands/dbmigrationcommand.cpp:123 msgid "Migration finisthed successfully" msgstr "Migration erfolgreich abgeschlossen" #: ..\../commands/dialogopathssobreescribirbase.cpp:27 #: ..\../commands/dialogopathssobreescribirbase.cpp:62 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "Overwrite" msgstr "Überschreiben" #: ..\../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr "Möchten Sie sie überschreiben?" #: ..\../commands/dialogopathssobreescribirbase.cpp:65 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ..\../main/gui/history3/historypanel3base.cpp:339 #: ..\../main/gui/history3/historypanel3base.cpp:415 #: ..\../main/gui/history3/historypanel3base.cpp:486 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ..\../main/gui/open/opendialogsbase.cpp:53 #: ..\../main/gui/open/opendialogsbase.cpp:131 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ..\../widgets/gui/calibracionbase.cpp:86 #: ..\../widgets/gui/selecciontextobase.cpp:60 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "Abbrechen" #: ..\../commands/dicomizationcompletebase.cpp:24 #: ..\../commands/dicomizationcompletebase.cpp:33 #: ..\../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "Dicomisierung abgeschlossen" #: ..\../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "Dicomisierung erfolgreich abgeschlossen" #: ..\../commands/dicomizationcompletebase.cpp:56 msgid "Don't show this message again" msgstr "Diese Nachricht nicht mehr anzeigen" #: ..\../commands/dicomizationcompletebase.cpp:62 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ..\../main/gui/history3/historypanel3base.cpp:411 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ..\../widgets/gui/calibracionbase.cpp:82 #: ..\../widgets/gui/selecciontextobase.cpp:56 msgid "Accept" msgstr "Übernehmen" #: ..\../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "Schritt 1 von 3: Importieren der Bilder" #: ..\../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "Schritt 2 von 3: Kopieren der Bilder" #: ..\../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "Schritt 3 von 3: Hochladen der Bilder" #: ..\../commands/dicomizecommand.cpp:179 msgid "Import process failed:" msgstr "Importvorgang gescheitert:" #: ..\../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" "\n" "Möchten Sie es erneut versuchen?" #: ..\../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "Es wird importiert …" #: ..\../commands/dicomizecommand.cpp:370 msgid "Unknown error in dicomization process" msgstr "Unbekannter Fehler im Dicomisierungs-Prozess" #: ..\../commands/dicomizecommand.cpp:431 #: ..\../commands/dicomizecommand.cpp:442 #: ..\../commands/sendpacscommand.cpp:185 #, fuzzy msgid "Error sending evidences:" msgstr "Fehler beim Sender der Nachricht:" #: ..\../commands/dicomizecommand.cpp:437 #: ..\../commands/dicomizecommand.cpp:448 msgid "Can not upload to the PACS:\n" msgstr "Es kann nicht zum PACS hochgeladen werden:\n" #: ..\../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" "Es kann nicht zum PACS hochgeladen werden:\n" "Interner Fehler" #: ..\../commands/exporttodicomdircommand.cpp:261 #: ..\../commands/exporttodicomdircommand.cpp:338 #, c-format msgid "Exporting series %d of %d" msgstr "Serie %d von %d wird exportiert" #: ..\../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "Einige der ausgewählten Serien wurden gelöscht" #: ..\../commands/exporttodicomdircommand.cpp:279 #: ..\../commands/exporttodicomdircommand.cpp:385 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/export/parametrosprincipales.cpp:167 msgid "There was an error creating directory" msgstr "Beim Erstellen des Ordners ist ein Fehler aufgetreten" #: ..\../commands/exporttodicomdircommand.cpp:303 #: ..\../commands/exporttodicomdircommand.cpp:408 msgid "There was an error writing file" msgstr "Beim Schreiben der Datei ist ein Fehler aufgetreten" #: ..\../commands/exporttodicomdircommand.cpp:358 msgid "There was an error anonymizing files" msgstr "Beim Anonymisieren der Dateien ist ein Fehler aufgetreten" #: ..\../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Ignoring incoming operation " msgstr "Ignorieren des eingehenden Vorgangs " #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:298 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "Nicht implementiert" #: ..\../commands/incomingdicomassociationcommand.cpp:473 #: ..\../commands/pacsdownloadcommand.cpp:170 #: ..\../commands/pacsdownloadcommand.cpp:179 msgid "Including files..." msgstr "Füge Dateien ein..." #: ..\../commands/linkhistorycommand.cpp:68 msgid "Linking study..." msgstr "Studie wird verknüpft …" #: ..\../commands/openremovableunit.cpp:42 #: ..\../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "Datenträger durchsuchen …" #: ..\../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" "Auf Wechseldatenträgern wurde kein DICOM-Verzeichnis gefunden.\n" "Möchten Sie den anderen Pfad rekursiv durchsuchen?" #: ..\../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" "Auf Wechseldatenträgern wurde kein DICOM-Verzeichnis gefunden.\n" "Möchten Sie das Laufwerk %s rekursiv durchsuchen?" #: ..\../commands/openremovableunit.cpp:130 msgid "Select drive you want to open" msgstr "Laufwerk auswählen, das geöffnet werden soll" #: ..\../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" "Ginkgo CADx hat mehr als einen Wechseldatenträger gefunden,\n" "jedoch enthält keiner davon ein DICOM-Verzeichnis im Wurzelverzeichnis.\n" "Wählen Sie das Laufwerk aus, von dem Sie rekursiv akquirieren möchten." #: ..\../commands/pacsdownloadcommand.cpp:134 msgid "Error downloading study: " msgstr "Fehler beim Herunterladen der Studie: " #: ..\../commands/pdfextractercommand.cpp:103 msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "" "Fehler beim Extrahieren des PDFs, Ginkgo CADx kann dieses Format nicht laden" #: ..\../commands/pdfextractercommand.cpp:103 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ..\../main/gui/progress/statusbarprogreso.cpp:278 #: ..\../widgets/gui/calibracion.cpp:205 ..\../widgets/gui/calibracion.cpp:209 #: ..\../widgets/gui/calibracion.cpp:219 ..\../widgets/gui/calibracion.cpp:225 #: ..\../widgets/gui/calibracion.cpp:229 msgid "Error" msgstr "Fehler" #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "Im System ist kein PDF-Betrachter festgelegt" #: ..\../commands/pdfextractercommand.cpp:130 msgid "PDF files extracted successfully..." msgstr "PDF-Dateien wurden erfolgreich extrahiert …" #: ..\../commands/secondarycapturedicomizecommand.cpp:73 #, fuzzy msgid "Ginkgo CADx Secondary Capture" msgstr "Ginkgo CADx" #: ..\../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "HL7-Meldung %d von %d wird gesendet" #: ..\../commands/sendhl7command.cpp:73 msgid "Message successfully sent" msgstr "Nachricht erfolgreich gesendet" #: ..\../commands/sendhl7command.cpp:77 msgid "Unknown protocol" msgstr "Unbekanntes Protokoll" #: ..\../commands/sendhl7command.cpp:80 ..\../commands/sendhl7command.cpp:93 #: ..\../commands/sendhl7command.cpp:145 msgid "Error sending message:" msgstr "Fehler beim Sender der Nachricht:" #: ..\../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "Fehler beim Senden der HL7-Mitteilung; Details stehen im Protokoll" #: ..\../commands/sendhl7command.cpp:93 ..\../commands/sendhl7command.cpp:94 msgid "Unknown error" msgstr "Unbekannter Fehler" #: ..\../commands/sendhl7command.cpp:134 msgid "Failed to start connection" msgstr "Konnte Verbindung nicht starten" #: ..\../commands/sendhl7command.cpp:148 msgid "Error sending message. It was sent " msgstr "Fehler beim Sender der Nachricht. Es wurde gesendet " #: ..\../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr " Bytes von " #: ..\../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "" "Bestätigungslogik fehlgeschlagen. Die ID der Nachricht stimmt nicht überein." #: ..\../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "NACK erhalten:" #: ..\../commands/sendhl7command.cpp:258 msgid "Failed delivery confirmation:" msgstr "Bestätigung gescheiterter Übertragung:" #: ..\../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "" "Fehler bei der Bestätigung der Auslieferung: Auslieferung wurde von der " "Gegenstelle nicht registriert" #: ..\../commands/sendpacscommand.cpp:51 msgid "Send files to PACS" msgstr "Dateien zum PACS senden" #: ..\../commands/sendpacscommand.cpp:155 msgid "Uploading files ..." msgstr "Dateien werden hochgeladen …" #: ..\../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "Fehler: PACS Eintrag Konfiguration nicht gefunden: " #: ..\../commands/sendpacscommand.cpp:181 msgid "Error:" msgstr "Fehler:" #: ..\../commands/sendpacscommand.cpp:189 msgid "Error sending evidences: Internal error." msgstr "" #: ..\../commands/sendpacscommand.cpp:203 msgid "Error uploading the study to PACS: " msgstr "Fehler beim Hochladen der Studie zum PACS: " #: ..\../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" "\n" "Möchten Sie es erneut versuchen? Automatischer Versuch in %d Sekunde(n) …" #: ..\../commands/sendpacscommand.cpp:206 msgid "Retry send to PACS" msgstr "Erneut versuchen, zum PACS zu senden" #: ..\../commands/synchronizationcommand.cpp:104 msgid "Error downloading file" msgstr "Fehler beim Herunterladen der Datei" #: ..\../commands/synchronizationcommand.cpp:141 msgid "Error synchronizing study: " msgstr "Fehler beim Abgleichen der Studie: " #: ..\../commands/thumbnailscommand.cpp:107 #: ..\../commands/thumbnailscommand.cpp:133 #: ..\../commands/thumbnailscommand.cpp:247 #: ..\../commands/thumbnailscommand.cpp:376 #: ..\../commands/thumbnailscommand.cpp:382 #: ..\../main/gui/import/selectimagesimportation.cpp:504 msgid "Creating Thumbnail..." msgstr "Erzeuge Vorschau..." #: ..\../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "Erstelle Vorschaubilder" #: ..\../export/tools/iaddfiletohistorytool.cpp:19 #: ..\../main/gui/history3/historypanel3.cpp:632 msgid "Open study" msgstr "Studie öffnen" #: ..\../export/tools/iangletool.cpp:19 msgid "Angle \tCtrl+A" msgstr "Winkel \tCtrl+A" #: ..\../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "Helligkeit/Kontrast \tCtrl+B" #: ..\../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "Kamera drehen" #: ..\../export/tools/icolormaptool.cpp:20 msgid "Color Map" msgstr "Farbpalette" #: ..\../export/tools/icopyimagetoclipboardtool.cpp:19 #: ..\../main/gui/open/opendialogsbase.cpp:46 #: ..\../main/gui/open/opendialogsbase.cpp:198 msgid "Copy" msgstr "Kopieren" #: ..\../export/tools/icornerannotationstool.cpp:20 msgid "Window annotations" msgstr "Fensterbemerkungen" #: ..\../export/tools/idetachwindowtool.cpp:19 msgid "Detach window" msgstr "Fenster abtrennen" #: ..\../export/tools/iimageexporttool.cpp:19 msgid "Export image..." msgstr "Bild exportieren …" #: ..\../export/tools/imarkertool.cpp:20 msgid "Marking Tools \tCtrl+M" msgstr "Markierungswerkzeuge \tCtrl+M" #: ..\../export/tools/imetricgridtool.cpp:20 msgid "Metric grid" msgstr "Metrisches Gitter" #: ..\../export/tools/inotetool.cpp:19 msgid "Text Note \tCtrl+N" msgstr "Textnotiz \tCtrl+N" #: ..\../export/tools/ipacsuploadtool.cpp:19 msgid "Upload study..." msgstr "Studie hochladen …" #: ..\../export/tools/ipixelsbluringtool.cpp:20 msgid "Pixels blurring" msgstr "" #: ..\../export/tools/ipointertool.cpp:19 msgid "Pointer \tEsc" msgstr "Zeiger \tEsc" #: ..\../export/tools/iqueryretrievetool.cpp:19 #: ..\../main/tools/queryretrievehistorytool.cpp:25 #: ..\../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "Eine DICOM-Studie vom PACS akquirieren" #: ..\../export/tools/iresettool.cpp:19 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 msgid "Reset" msgstr "Zurücksetzen" #: ..\../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "Drehen und Spiegeln" #: ..\../export/tools/iruletool.cpp:19 #, fuzzy msgid "Rule \tCtrl+R" msgstr "Winkel \tCtrl+A" #: ..\../export/tools/isecondarycapturetool.cpp:19 msgid "Save snapshot as new series..." msgstr "Bildschirmfoto als neue Serie speichern …" #: ..\../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "Verlauf anzeigen \tAlt+h" #: ..\../export/tools/ishowtagstool.cpp:19 #: ..\../main/tools/showtagshistorytool.cpp:27 msgid "DICOM inspector" msgstr "DICOM-Inspektor" #: ..\../export/tools/isimpleprinttool.cpp:19 #: ..\../main/tools/simpleprinttool.cpp:226 msgid "Print" msgstr "Drucken" #: ..\../export/tools/istartdicomizationtool.cpp:19 msgid "Dicomize..." msgstr "Dicomisieren …" #: ..\../export/tools/itoolpan.cpp:19 msgid "Pan \tCtrl+P" msgstr "Schwenken \tCtrl+P" #: ..\../export/tools/itoolslider.cpp:19 #, fuzzy msgid "Slider \tCtrl+S" msgstr "Winkel \tCtrl+A" #: ..\../export/tools/itoolwindowlevel.cpp:19 msgid "Window/Level \tCtrl+W" msgstr "Fenster/Ebene \tCtrl+W" #: ..\../export/tools/itoolzoom.cpp:19 #, fuzzy msgid "Zoom \tCtrl+O" msgstr "Winkel \tCtrl+A" #: ..\../export/tools/itrackballtool.cpp:19 msgid "Trackball \tCtrl+T" msgstr "Trackball \tCtrl+T" #: ..\../export/tools/iundotool.cpp:20 ..\../main/tools/undotool.cpp:109 msgid "Undo" msgstr "Rückgängig" #: ..\../export/tools/ivideotool.cpp:19 msgid "Video \tCtrl+Space" msgstr "Video \tCtrl+Space" #: ..\../export/tools/iwindowlayouttool.cpp:20 msgid "Window layout" msgstr "Fensteranordnung" #: ..\../main/controllers/controladorcarga.cpp:161 msgid "Studies with" msgstr "Studien mit" #: ..\../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr " nicht unterstützte Komponenten" #: ..\../main/controllers/controladorcarga.cpp:210 msgid "Reading properties" msgstr "Lese Eigenschaften" #: ..\../main/controllers/controladorcarga.cpp:219 #: ..\../main/controllers/controladorcarga.cpp:642 #: ..\../main/controllers/controladorcarga.cpp:888 #: ..\../main/controllers/streaming/streamingloader.cpp:600 msgid "Error reading the study: " msgstr "Fehler beim Laden der Studie: " #: ..\../main/controllers/controladorcarga.cpp:224 #: ..\../main/controllers/controladorcarga.cpp:229 #: ..\../main/controllers/controladorcarga.cpp:647 #: ..\../main/controllers/controladorcarga.cpp:893 msgid "Internal error reading the study: " msgstr "Interner Fehler beim Lesen der Studie: " #: ..\../main/controllers/controladorcarga.cpp:269 #: ..\../main/controllers/controladorcarga.cpp:281 #: ..\../main/controllers/controladorcarga.cpp:905 msgid "Spacing is not valid: (" msgstr "Abstand ist ungültig: (" #: ..\../main/controllers/controladorcarga.cpp:305 #: ..\../main/controllers/controladorcarga.cpp:338 #: ..\../main/controllers/controladorcarga.cpp:372 #: ..\../main/controllers/controladorcarga.cpp:408 #: ..\../main/controllers/controladorcarga.cpp:441 #: ..\../main/controllers/controladorcarga.cpp:474 #: ..\../main/controllers/controladorcarga.cpp:507 #: ..\../main/controllers/controladorcarga.cpp:540 #: ..\../main/controllers/controladorcarga.cpp:573 #: ..\../main/controllers/controladorcarga.cpp:606 #: ..\../main/controllers/controladorcarga.cpp:935 msgid "Error loading the study: Out of memory" msgstr "Fehler beim Laden der Studie: Nicht genug Speicher" #: ..\../main/controllers/controladorcarga.cpp:375 msgid "Error loading the study: Internal Error" msgstr "Fehler beim Laden der Studie: interner Fehler" #: ..\../main/controllers/controladorcarga.cpp:630 #: ..\../main/controllers/streaming/streamingloader.cpp:1023 #: ..\../main/controllers/streaming/streamingloader.cpp:1223 #: ..\../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "Fehler beim Laden der Studie: nicht unterstütztes Pixelformat" #: ..\../main/controllers/controladorcarga.cpp:651 #: ..\../main/controllers/controladorcarga.cpp:960 msgid "Process canceled by user." msgstr "Vorgang vom Nutzer abgebrochen" #: ..\../main/controllers/controladorcarga.cpp:878 msgid "Interpreting properties" msgstr "Interpretiere Eigenschaften" #: ..\../main/controllers/controladorcarga.cpp:917 msgid "Spacing of the image is invalid: (" msgstr "Abstand des Bildes ist ungültig: (" #: ..\../main/controllers/controladorcarga.cpp:942 msgid "Reading dataset" msgstr "Lese Datenset" #: ..\../main/controllers/controladorcarga.cpp:951 msgid "Error reading the study:" msgstr "Fehler beim Lesen der Studie:" #: ..\../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "Interner Fehler beim Lesen der Studie:" #: ..\../main/controllers/controladorcarga.cpp:972 #, fuzzy msgid "load" msgstr "Laden ..." #: ..\../main/controllers/controladorenviohl7.cpp:40 msgid "Stopping HL7 sender" msgstr "HL7-Sender wird gestoppt" #: ..\../main/controllers/controladorenviohl7.cpp:63 #: ..\../main/controllers/controladorenviohl7.cpp:76 msgid "Error starting HL7 sender" msgstr "Fehler beim Starten des HL7-Senders" #: ..\../main/controllers/controladorenviohl7.cpp:65 #: ..\../main/controllers/controladorenviohl7.cpp:78 msgid "HL7 sender started" msgstr "HL7-Sender wurde gestartet" #: ..\../main/controllers/controladorenviohl7.cpp:108 #, fuzzy msgid "HL7 controller destroyed" msgstr "HL7" #: ..\../main/controllers/controladorenviohl7.cpp:150 msgid "Error processing message" msgstr "Fehler beim Verarbeiten der Nachricht" #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/controllers/pacscontroller.cpp:1549 #: ..\../main/controllers/pacscontroller.cpp:1553 #: ..\../main/controllers/pacscontroller.cpp:1557 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ..\../main/gui/import/pasosimportacionbase.cpp:195 #: ..\../wx/gnkinforme/gnkinformebase.cpp:184 msgid "Unknown" msgstr "Unbekannt" #: ..\../main/controllers/controladorextensiones.cpp:110 msgid "Loading" msgstr "Ladevorgang" #: ..\../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "Bibliotheksdatei der Erweiterung konnte nicht geladen werden" #: ..\../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "Bibliotheksdatei konnte nicht geladen werden. Prüfen Sie das Protokoll" #: ..\../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "Erweiterungsdeskriptor stimmt nicht überein" #: ..\../main/controllers/controladorextensiones.cpp:153 msgid "Could not find entry point" msgstr "Einstiegspunkt konnte nicht gefunden werden" #: ..\../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:74 #, fuzzy msgid "Integration engine hostname not set" msgstr "Hostname-Integrationsmaschine (IP oder DNS)" #: ..\../main/controllers/controladorhl7.cpp:77 #, fuzzy msgid "Integration engine port not set" msgstr "Hostname-Integrationsmaschine (IP oder DNS)" #: ..\../main/controllers/controladorhl7.cpp:91 msgid "Unsupported protocol" msgstr "Nicht unterstütztes Protokoll" #: ..\../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "" #: ..\../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "%d Ergebnisse wurden gefunden" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, c-format msgid "Downloading file %d/%d" msgstr "Lade Datei %d/%d" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "Größenbeschränkung für herunterladbare Studien wurde überschritten" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "Für die PDF-Dicomisierung konnte kein Speicher reserviert werden" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "Für die Bild-Dicomisierung konnte kein Speicher reserviert werden" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:359 msgid "Image format not supported" msgstr "Bildformat nicht unterstützt" #: ..\../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "Privater Schlüssel und Zertifikat stimmen nicht überein" #: ..\../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "Fehler beim Festlegen der TLS-Schicht: " #: ..\../main/controllers/dcmtk/dicomservice.cpp:200 #, fuzzy msgid "Receiving Association failed: " msgstr "" "Eindeutiger Bezeichner der Organisation, welche die Nachricht empfängt." #: ..\../main/controllers/dcmtk/dicomservice.cpp:209 #, fuzzy msgid "Association received" msgstr "NACK erhalten:" #: ..\../main/controllers/dcmtk/dicomservice.cpp:210 msgid "Parameters:" msgstr "Parameter:" #: ..\../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr ")" #: ..\../main/controllers/dcmtk/dicomservice.cpp:274 #, fuzzy msgid "No valid presentation contexts" msgstr "Abstand ist ungültig: (" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 #, fuzzy msgid "Association(dicom://" msgstr "DICOM-Inspektor" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "@" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "»Ginkgo CADx« kann nicht packen von " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr " bis " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, c-format msgid "Uploading file %d of %d" msgstr "Datei %d von %d wird hochgeladen" #: ..\../main/controllers/dicommanager.cpp:504 #: ..\../main/controllers/dicommanager.cpp:531 msgid "Extracting file..." msgstr "Datei wird entpackt …" #: ..\../main/controllers/historycontroller.cpp:323 msgid "Error creating history database " msgstr "Fehler beim Erstellen der Verlaufsdatenbank " #: ..\../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr "" #: ..\../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" "Sie haben nicht die erforderliche Berechtigung, in das DICOM-Verzeichnis zu " "schreiben. Einstellungen werden im temporären Verzeichnis gespeichert." #: ..\../main/controllers/historycontroller.cpp:343 msgid "Error creating dicomDir database " msgstr "Fehler beim Erstellen der dicomDir-Datenbank " #: ..\../main/controllers/historycontroller.cpp:425 #: ..\../main/controllers/historycontroller.cpp:441 msgid "Error creating thumbnails database " msgstr "Fehler beim Erstellen der Vorschaubilder-Datenbank " #: ..\../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "Fehler bei der Erstellung der Datenbank:\n" #: ..\../main/controllers/historycontroller.cpp:560 msgid "Including image " msgstr "Füge Bilder hinzu " #: ..\../main/controllers/historycontroller.cpp:560 #: ..\../main/controllers/historycontroller.cpp:707 msgid " of " msgstr " von " #: ..\../main/controllers/historycontroller.cpp:707 #, fuzzy msgid "Linking image " msgstr "Studie wird verknüpft …" #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "Fehler beim Lesen des Verlaufs: \n" #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "Konnte die Nummer der Datenbank nicht löschen:\n" #: ..\../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "Konnte den Verlauf nicht leeren:\n" #: ..\../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" "»Ginkgo CADx« hat Untätigkeit festgestellt und wird in %d Sekunden " "geschlossen.\n" "Möchten Sie fortfahren?" #: ..\../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "" "Schwerer Fehler! Sie können nicht zwei Parser registrieren mit dem gleichen " "Schlüssel" #: ..\../main/controllers/integrationcontroller.cpp:493 msgid "Malformed template Id (" msgstr "Korrupter Template-Bezeichner" #: ..\../main/controllers/integrationcontroller.cpp:493 #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" "):\n" "ist keine gültige HL7 Kennung (z.B. code^description^namespaceId)" #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "Finde korruptes Template in der Modulkonfiguration" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "Template Id unsupported (" msgstr "Template-Id wird nicht unterstützt (" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "):" #: ..\../main/controllers/integrationcontroller.cpp:566 msgid "Unknown module Id (" msgstr "Unbekannte Modul-Id (" #: ..\../main/controllers/integrationcontroller.cpp:592 msgid "Empty configuration" msgstr "Leere Konfiguration" #: ..\../main/controllers/integrationcontroller.cpp:631 msgid "XML Parser Not Found. Key=" msgstr "XML-Parser nicht gefunden. Schlüssel=" #: ..\../main/controllers/log4cplus/guiappender.cpp:75 msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "%Y/%m/%d %H:%M:%S.%q" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ..\../main/gui/history3/historypanel3base.cpp:48 #: ..\../main/gui/import/pasosimportacionbase.cpp:227 msgid "Patient" msgstr "Patient" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 msgid "Patient ID" msgstr "Patienten-ID" #: ..\../main/controllers/modalitysettingscontroller.cpp:86 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ..\../main/gui/history3/historypanel3.cpp:227 #: ..\../main/gui/open/opendialogs.cpp:50 msgid "Modality" msgstr "Modalität" #: ..\../main/controllers/modalitysettingscontroller.cpp:98 msgid "Dimensions" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:109 #, c-format msgid "Made with %s" msgstr "Erstellt mit %s" #: ..\../main/controllers/modalitysettingscontroller.cpp:167 #: ..\../main/controllers/modalitysettingscontroller.cpp:338 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "Voreinstellung" #: ..\../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "Automatisch berechnen" #: ..\../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "WIRBELSÄULE" #: ..\../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "MEDIASTINUM" #: ..\../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1212 msgid "Downloading file" msgstr "Datei wird heruntergeladen" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Error downloading WADO file" msgstr "Fehler beim Herunterladen der WADO-Datei" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Check PACS configuration" msgstr "PACS-Konfiguration überprüfen" #: ..\../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "Unbekannte Abfragetiefe" #: ..\../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "Abfragetiefe nicht angegeben" #: ..\../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "HTTP-Anfrage kann nicht ausgeführt werden" #: ..\../main/controllers/pacscontroller.cpp:1428 msgid "Invalid HTTP response" msgstr "Ungültige HTTP-Antwort" #: ..\../main/controllers/pacscontroller.cpp:1433 msgid "Invalid HTTP code" msgstr "Ungültiger HTTP-Code" #: ..\../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "HTTP-Subsystem kann nicht initialisiert werden" #: ..\../main/controllers/pacscontroller.cpp:1472 msgid "PACS-Service" msgstr "PACS-Dienst" #: ..\../main/controllers/parserxmlenglish.cpp:97 #: ..\../main/controllers/parserxmlspanish.cpp:94 msgid "Omitted Identificator" msgstr "Weggelassener Identifikator" #: ..\../main/controllers/parserxmlenglish.cpp:105 #: ..\../main/controllers/parserxmlspanish.cpp:102 msgid "Omitted AET" msgstr "Weggelassener AET" #: ..\../main/controllers/parserxmlenglish.cpp:113 #: ..\../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "Hostname fehlt" #: ..\../main/controllers/parserxmlenglish.cpp:121 #: ..\../main/controllers/parserxmlspanish.cpp:118 msgid "Omitted port" msgstr "Weggelassener Port" #: ..\../main/controllers/parserxmlenglish.cpp:206 #: ..\../main/controllers/parserxmlenglish.cpp:237 #: ..\../main/controllers/parserxmlspanish.cpp:188 #: ..\../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "Die PDU-Größe ist keine gültige Zahlenangabe" #: ..\../main/controllers/parserxmlenglish.cpp:212 #: ..\../main/controllers/parserxmlspanish.cpp:194 msgid "Port is not a valid number" msgstr "Port enthält keine gültige Zahl" #: ..\../main/controllers/parserxmlenglish.cpp:248 #: ..\../main/controllers/parserxmlspanish.cpp:228 msgid "The port is not a valid number" msgstr "Die Port-Angabe ist keine gültige Zahl" #: ..\../main/controllers/parserxmlenglish.cpp:265 #: ..\../main/controllers/parserxmlspanish.cpp:246 msgid "Setting not found" msgstr "Einstellung nicht gefunden" #: ..\../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "Attribut »action« ungültig in Gültigkeitsbereich »gnkworkflow«" #: ..\../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "Attribut »action« wird erwartet in Gültigkeitsbereich »gnkworkflow«" #: ..\../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" "Attribut »pacs-retrieve-sid« ist leer in Gültigkeitsbereich »gnkworkflow«" #: ..\../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "Attribut »pacs-store-sid« ist leer in Gültigkeitsbereich »gnkworkflow«" #: ..\../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "" "Attribut »value« wird erwartet in Gültigkeitsbereich »query-retrieve-level«" #: ..\../main/controllers/parserxmlenglish.cpp:391 msgid "\"code\" attribute expected at \"patient\" scope" msgstr "Attribut »code« wird erwartet in Gültigkeitsbereich »patient«" #: ..\../main/controllers/parserxmlenglish.cpp:427 msgid "\"code\" attribute expected at \"physician\" scope" msgstr "Attribut »code« wird erwartet in Gültigkeitsbereich »physician«" #: ..\../main/controllers/parserxmlenglish.cpp:434 msgid "\"value\" attribute expected at \"physician\" scope" msgstr "Attribut »value« wird erwartet in Gültigkeitsbereich »physician«" #: ..\../main/controllers/parserxmlenglish.cpp:445 msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "Attribut »iid« wird erwartet in Gültigkeitsbereich »institution«" #: ..\../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "Attribut »code« wird erwartet in Gültigkeitsbereich »metadata«" #: ..\../main/controllers/parserxmlenglish.cpp:483 msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "Attribut »key« wird erwartet in Gültigkeitsbereich »metadata«" #: ..\../main/controllers/parserxmlenglish.cpp:548 #: ..\../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "" "Sie müssen die Attribute angeben, die Sie in der Abfrage verwenden möchten" #: ..\../main/controllers/parserxmlenglish.cpp:552 #: ..\../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "\"Patient\"-Markierung ohne IDs gelesen" #: ..\../main/controllers/parserxmlenglish.cpp:570 #: ..\../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "" "Sie müssen einen Standard-PACS im Integrations-XML oder im Menü " "Einstellungen definieren" #: ..\../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "Attribut »accion« ungültig in Gültigkeitsbereich »plantilla«" #: ..\../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "Attribut »accion« wird erwartet in Gültigkeitsbereich »plantilla«" #: ..\../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "" "Attribut »pacs_retrieve_sid« ist leer in Gültigkeitsbereich »plantilla«" #: ..\../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "Attribut »pacs_store_sid« ist leer in Gültigkeitsbereich »plantilla«" #: ..\../main/controllers/parserxmlspanish.cpp:340 msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "Attribut »uid« wird erwartet in Gültigkeitsbereich »dimse«" #: ..\../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "Attribut »ambito« ungültig in Gültigkeitsbereich »dimse«" #: ..\../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "Attribut »ambito« wird erwartet in Gültigkeitsbereich »dimse«" #: ..\../main/controllers/parserxmlspanish.cpp:402 msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "Attribut »codigo« wird erwartet in Gültigkeitsbereich »paciente«" #: ..\../main/controllers/parserxmlspanish.cpp:438 msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "Attribut »codigo« wird erwartet in Gültigkeitsbereich »medico«" #: ..\../main/controllers/parserxmlspanish.cpp:445 msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "Attribut »valor« wird erwartet in Gültigkeitsbereich »medico«" #: ..\../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "Attribut »cid« wird erwartet in Gültigkeitsbereich »centro«" #: ..\../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "Attribut »aid« wird erwartet in Gültigkeitsbereich »hce«" #: ..\../main/controllers/parserxmlspanish.cpp:486 msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "Attribut »codigo« wird erwartet in Gültigkeitsbereich »metadato«" #: ..\../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "Attribut »clave« wird erwartet in Gültigkeitsbereich »metadato«" #: ..\../main/controllers/parserxmlspanish.cpp:524 msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "" "Attribut »id_peticion« wird erwartet in Gültigkeitsbereich »gnkworkflow«" #: ..\../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "Attribut »ambito« wird erwartet in Gültigkeitsbereich »plantilla«" #: ..\../main/controllers/parserxmlspanish.cpp:559 #, fuzzy msgid "id_application expected" msgstr "Ginkgo CADx-Anwendungs-ID" #: ..\../main/controllers/smartretrievecontroller.cpp:124 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:920 msgid "Downloading from PACS..." msgstr "Lade vom PACS..." #: ..\../main/controllers/streaming/streamingloader.cpp:303 #: ..\../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" "Fehler beim Laden der Studie: Größter Pixel-Datenwert des Bildes ist " "inkohärent zur Kombination von Pixel-Repräsentation und High-Bit" #: ..\../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "Interner Fehler beim Lesen der Studie, unbekanntes Format " #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ..\../main/gui/history3/historytablemodel.cpp:403 #: ..\../main/gui/history3/historytablemodel.cpp:415 #: ..\../main/gui/history3/historytablemodel.cpp:470 #: ..\../main/gui/history3/historytablemodel.cpp:482 #: ..\../main/gui/open/dicomdirtablemodel.cpp:102 #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "%d/%m/%Y %H:%M:%S" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "%d/%m/%Y 00:00:00" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 msgid "Exploring PACS..." msgstr "Untersuche PACS..." #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ..\../main/gui/history3/historypanel3.cpp:225 #: ..\../main/gui/open/opendialogs.cpp:49 msgid "Patient id" msgstr "Patienten-ID" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ..\../main/gui/history3/historypanel3.cpp:224 #: ..\../main/gui/open/opendialogs.cpp:48 msgid "Patient name" msgstr "Patientenname" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:479 msgid "Study Instance UID" msgstr "Studien-Instanz-UID" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ..\../main/gui/history3/historypanel3.cpp:231 #: ..\../main/gui/open/opendialogs.cpp:53 #, fuzzy msgid "Accession number" msgstr "Max. Anzahl offener Reiter" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:481 msgid "Study date" msgstr "Studiendatum" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:482 #, fuzzy msgid "Study time" msgstr "Uhrzeit" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:490 msgid "Series Instance UID" msgstr "Serieninstanz-UID" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:492 msgid "Series date" msgstr "Datum der Serie" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:493 #, fuzzy msgid "Series time" msgstr "Uhrzeit" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:519 msgid "No results found" msgstr "Keine Ergebnisse gefunden" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #, fuzzy msgid "Write query name" msgstr "Name" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #, fuzzy msgid "This query name is in use, do you want to overwrite it?" msgstr "Es gibt offene Aufgaben. Möchten Sie diese ausführen?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 msgid "Id" msgstr "Kennung" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 msgid "Date Time" msgstr "Datum Zeit" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ..\../main/gui/history3/historypanel3.cpp:229 #: ..\../main/gui/import/pasosimportacionbase.cpp:298 #: ..\../main/gui/import/pasosimportacionbase.cpp:340 #: ..\../main/gui/open/opendialogs.cpp:52 msgid "Description" msgstr "Beschreibung" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ..\../main/gui/import/pasosimportacionbase.cpp:276 #, fuzzy msgid "Accession Number" msgstr "Max. Anzahl offener Reiter" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:210 #, fuzzy msgid "Store query" msgstr "Anfrage konnte nicht ausgeführt werden." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:211 #, fuzzy msgid "Remove query" msgstr "Entfernen" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:278 msgid "There is no any PACS configured" msgstr "Es ist kein PACS konfiguriert." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:54 msgid "Study UID" msgstr "Studien-UID" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" "Suchen ohne Parameter kann eine lange Zeit dauern\n" "Möchten Sie fortfahren ?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "Search" msgstr "Durchsuchen" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:519 msgid "Download series" msgstr "Serie herunterladen" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 msgid "Download study" msgstr "Studie herunterladen" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:535 msgid "Link series" msgstr "Serie verknüpfen" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:537 msgid "Link study" msgstr "Studie verknüpfen" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:551 msgid "Properties..." msgstr "Eigenschaften..." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #, fuzzy msgid "You must specify at least a modality or a period of time" msgstr "Sie müssen eine absolute Pfadangabe für das Verzeichnis machen" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #, fuzzy msgid "Select a valid query" msgstr "Wähle einen gültigen PACS Server" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 msgid "Select a valid PACS Server" msgstr "Wähle einen gültigen PACS Server" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid "Download of modality " msgstr "Download der Modalität " #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr " nicht erlaubt" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "Sie sind nicht berechtigt, diese Art von Modalitäten herunterzuladen." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "Modality download error" msgstr "Modalität-Download-Fehler" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:786 msgid "search results" msgstr "Suchergebnisse" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:913 msgid "Downloading serie..." msgstr "Serie wird heruntergeladen …" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:916 msgid "Downloading study..." msgstr "Studie wird heruntergeladen …" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:165 msgid "PACS acquisition is restricted" msgstr "Akquirieren vom PACS ist eingeschränkt" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:96 msgid "Server" msgstr "Server" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ..\../main/gui/import/pasosimportacionbase.cpp:284 #: ..\../main/gui/import/pasosimportacionbase.cpp:326 #: ..\../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "Datum" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ..\../main/gui/history3/historypanel3base.cpp:81 msgid "Any date" msgstr "Beliebiges Datum" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ..\../main/gui/history3/historypanel3base.cpp:85 msgid "Today AM" msgstr "Heute vormittag" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ..\../main/gui/history3/historypanel3base.cpp:88 msgid "Today PM" msgstr "Heute nachmittag" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ..\../main/gui/history3/historypanel3base.cpp:91 msgid "Today" msgstr "Heute" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ..\../main/gui/history3/historypanel3base.cpp:100 msgid "Yesterday" msgstr "Gestern" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ..\../main/gui/history3/historypanel3base.cpp:103 msgid "Last 7 days" msgstr "Letzten 7 Tage" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ..\../main/gui/history3/historypanel3base.cpp:106 msgid "Last 30 days" msgstr "Letzten 30 Tage" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ..\../main/gui/history3/historypanel3base.cpp:109 msgid "Last 3 months" msgstr "Letzte 3 Monate" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ..\../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "Zwischen:" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ..\../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "Modalitäten" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 #, fuzzy msgid "Stored queries" msgstr "Datei konnte nicht gespeichert werden " #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:216 #, fuzzy msgid "Select stored queries..." msgstr "" "Wählen Sie das Verzeichnis, in welches die Dateien gespeichert werden sollen" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ..\../main/gui/open/opendialogsbase.cpp:50 #: ..\../main/gui/open/opendialogsbase.cpp:202 msgid "Link" msgstr "Verweis" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "Nur auf WADO-Servern verfügbar" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:289 msgid "Download" msgstr "Herunterladen" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ..\../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "Schliessen" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:329 msgid "Series does not exist" msgstr "Serie existiert nicht" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "Diese Serien wurden aus dem lokalen Verlauf gelöscht" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "Fortfahren" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ..\../main/gui/open/opendialogsbase.cpp:127 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ..\../main/tools/metricgridtool.cpp:101 msgid "Ok" msgstr "OK" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:151 msgid "Download again" msgstr "Erneut herunterladen" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:441 msgid "Open" msgstr "Öffnen" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:179 #, fuzzy msgid "Set query name" msgstr "Name" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:32 msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" "Diese Serie wurde bereits in den lokalen Verlauf heruntergeladen. Möchten " "Sie sie erneut herunterladen?" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:34 msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" "Diese Studie wurde bereits in den lokalen Verlauf heruntergeladen. Möchten " "Sie sie erneut herunterladen?" #: ..\../main/gui/anonymize/anonymizedialog.cpp:64 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ..\../main/gui/export/parametrosprincipales.cpp:194 msgid "Exporting images ..." msgstr "Exportiere Bilder" #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "Ungültige Werte im Feld Element oder Gruppe" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:21 msgid "Common tags" msgstr "Gebräuchliche Markierungen" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 msgid "Patient's name and surname" msgstr "Vor- und Nachname des Patienten" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 msgid "Patient Id" msgstr "Patienten-ID" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "Institutionen" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "Zuweisender Arzt" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "Kommentare" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:44 msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "Schlagwörter (Doppelklick, um Wert zu ändern)" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:71 msgid "Add new..." msgstr "Neu hinzufügen …" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ..\../main/tools/anonymizetool.cpp:26 #: ..\../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "Anonymisiere" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:136 msgid "Create new" msgstr "Neu erstellen" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ..\../main/gui/anonymize/anonymizepanelbase.h:136 msgid "Add DICOM tag" msgstr "DICOM-Markierung hinzufügen" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:199 msgid "Group" msgstr "Gruppe" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:203 msgid "Element" msgstr "Element" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ..\../widgets/wangulo.cpp:1114 msgid "Value" msgstr "Wert" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 msgid "Top right corner annotation" msgstr "Eckbeschriftung oben rechts" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 msgid "Top left corner annotation" msgstr "Eckbeschriftung oben links" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 msgid "Bottom left corner annotation" msgstr "Eckbeschriftung unten links" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 msgid "Bottom right corner annotation" msgstr "Eckbeschriftung unten rechts" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 msgid "You must fill in all fields" msgstr "Sie müssen alle Felder ausfüllen" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #, fuzzy msgid "Window/level label in use" msgstr "Fenster/Ebene" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "Geben Sie gültige Zahlen in die Felder Fenster und Ebene ein." #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 msgid "Window" msgstr "Fenster" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 msgid "Level" msgstr "Ebene" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "Linear" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "Kubisch" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 msgid "Do you confirm the removal of the preset?" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Data modified" msgstr "Daten geändert" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 msgid "Modality settings" msgstr "Modalitätseinstellungen" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 msgid "Default modality settings" msgstr "Standard-Modalitätseinstellungen" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, c-format msgid "%s settings" msgstr "%s-Einstellungen" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:60 msgid "settings" msgstr "Einstellungen" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Export Configuration" msgstr "Exportiere Konfiguration" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Ini Files(*.ini)|*.ini" msgstr "INI-Dateien (*.ini)|*.ini" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" "Datei existiert bereits\n" "Wollen Sie es überschreiben ?" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 msgid "Existing file" msgstr "Vorhandene Datei" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 msgid "Export successfully completed" msgstr "Export erfolgreich abgeschlossen" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 msgid "There was an error during exportation" msgstr "Beim Exportieren ist ein Fehler aufgetreten" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Import Configuration" msgstr "Importiere Konfiguration" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Ini files(*.ini)|*.ini" msgstr "INI-Dateien (*.ini)|*.ini" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "" "Importvorgang erfolgreich abgeschlossen, Ginkgo CADx neustarten, um " "Änderungen anzuwenden" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 msgid "There was an error during importation, check permissions" msgstr "" "Beim Importieren ist ein Fehler aufgetreten, bitte Berechtigungen überprüfen" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 msgid "Dicom tag" msgstr "DICOM-Markierung" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 msgid "Split horizontally..." msgstr "Horizontal teilen …" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 msgid "Split vertically..." msgstr "Vertikal teilen …" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ..\../main/tools/windowlayouttool.cpp:273 #, fuzzy msgid "Split active horizontally" msgstr "Horizontal teilen …" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ..\../main/tools/windowlayouttool.cpp:274 #, fuzzy msgid "Split active vertically" msgstr "Vertikal teilen …" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 msgid "New hanging protocol" msgstr "Neues Hanging-Protokoll" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, c-format msgid "Window %d" msgstr "Fenster %d" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "Diese Ansicht unterstützt nicht mehr als ein Fenster" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "Aktiviert" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "Yes" msgstr "Ja" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "Nein" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 msgid "Hanging protocols" msgstr "Hanging-Protokolle" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 msgid "One day" msgstr "Ein Tag" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 msgid "Two days" msgstr "Zwei Tage" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 msgid "Three days" msgstr "Drei Tage" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "Eine Woche" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 msgid "Two weeks" msgstr "Zwei Wochen" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 msgid "One month" msgstr "Ein Monat" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 msgid "Three months" msgstr "Drei Monate" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "Ein Jahr" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 msgid "Local database" msgstr "Lokale Datenbank" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 msgid "Local DICOM Dir setup" msgstr "Einrichtung des lokalen DICOM-Verzeichnisses" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" "Der gewählte Ordner existiert nicht.\n" "Möchten Sie ihn erstellen?" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" "Konnte Verzeichnis nicht anlegen. Stellen Sie sicher, dass der Pfad korrekt " "ist und Sie entsprechende Rechte im Wurzelverzeichnis haben." #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" "Beim Lesen des Ordners ist ein Fehler aufgetreten, bitte Berechtigung zum " "Schreiben sicherstellen" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 msgid "Select DICOMDIR" msgstr "DICOMDIR wählen" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" "Warnung! Um den Ordner zu aktualisieren, müssen Sie die aktuell geöffnete " "Serie schließen." #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "Konfigurationsparameter der lokalen Arbeitsstation" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "Erweiterungen" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:126 msgid "Extensions settings" msgstr "Einstellung von Erweiterungen" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "" "Gingko CADx muss neu gestartet werden damit die Änderungen an den " "Erweiterungen aktiv werden" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #, fuzzy msgid "Port has to be a valid number" msgstr "Port enthält keine gültige Zahl" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "Allgemein" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:190 msgid "General configuration parameters" msgstr "Allgemeine Konfigurationsparameter" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "" "»Ginkgo CADx« muss neu gestartet werden, damit die Änderungen wirksam werden" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:134 msgid "Testing conectivity with the server..." msgstr "Teste Verbindung mit dem Server..." #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:144 msgid "Error connecting to url" msgstr "Fehler bei der Verbindung zur URL" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #, fuzzy msgid "hostname/port not set" msgstr "Hostname / Port" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "Verbindungstest fehlgeschlagen" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "Verbindungstest erfolgreich" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "Select certificate" msgstr "Zertifikat wählen" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "PEM-Dateien (*.pem;*.key)|*.pem;*.key|Alle Dateien (*.*)|*.*" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "Sie müssen den privaten und öffentlichen Schlüssel festlegen" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:255 msgid "Change ..." msgstr "Ändere ..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 msgid "Import ..." msgstr "Importieren ..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:279 msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "" "Wenn Sie SSL/TLS nutzen wollen, müssen Sie ein gültiges Zertifikat und einen " "gültigen privaten Schlüssel angeben" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:472 msgid "There are this errors: " msgstr "Es sind diese Fehler vorhanden: " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" "\n" "- Diese PACS-Id wird bereits verwendet" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" "\n" "- Der Port muss eine positive Ganzzahl sein (16 Bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" "\n" "- Der Port ist zu gross" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" "\n" "- Die Maximallänge des AET ist 16 Zeichen." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" "\n" "- Die PDU-Grösse sollte grösser als oder gleich Null sein (Voreinstellung = " "16384)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" "\n" "- Der Maximalwert für die PDU ist " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" "\n" "- Der Minimalwert der PDU ist " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" "\n" "- Wenn Sie SSL/TLS nutzen wollen, müssen Sie ein gültiges Zertifikat und " "einen privaten Schlüssel angeben" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:525 msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" "\n" "- Wenn Sie WADO verwenden möchten, müssen Sie einen WADO-URL angeben" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" "\n" "- WADO-URL entspricht keinem gültigen Schema (z.B. http://)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" "\n" "- WADO-URL enthält keinen Rechnernamen" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "Sie müssen alle Felder ausfüllen zum Fortfahren" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:558 msgid "Testing the connection to the node ..." msgstr "Verbindung zum Knoten wird getestet …" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:561 msgid "DICOM Error" msgstr "DICOM-Fehler" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "" "Verbindung nicht möglich: Netzwerkunterstützung konnte nicht gestartet " "werden." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "Der Dienst antwortete nicht erwartungsgemäß auf das C-ECHO" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:607 msgid "The service did not respond correctly to the DICOM standard" msgstr "Der Dienst hat nicht gemäß dem DICOM-Standard geantwortet" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:616 msgid "Invalid port number" msgstr "Ungültige Port-Nummer" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:622 msgid "WADO Error" msgstr "WADO-Fehler" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:703 msgid "Use by default" msgstr "Als Vorgabe verwenden" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:795 msgid "DICOM nodes" msgstr "DICOM-Knoten" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:800 msgid "DICOM nodes settings" msgstr "DICOM-Knoteneinstellungen" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "Sie haben die folgenden Fehler produziert:" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" "\n" "- Der lokale Port muss eine positive Ganzzahl sein (16 Bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" "\n" "- Der lokale Port ist zu gross" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" "\n" "- Die Maximallänge des lokalen AET ist 16 Zeichen" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "Entfernen des Knotens bestätigen" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1101 msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Sie müssen den lokalen AET konfigurieren, der zur Kommunikation mit den " "DICOM-Knoten verwendet wird. Der angegebene Port muss in der Firewall " "geöffnet sein, weil dies für Übertragungen essentiell ist." #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ..\../main/gui/export/pasosexportacionbase.cpp:20 msgid "Profile" msgstr "Profil" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "Standardwert" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #, fuzzy msgid "Set property active" msgstr "Aktivieren" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "Inaktiv" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 #, fuzzy msgid "Set property inactive" msgstr "Inaktiv" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 msgid "Set default value" msgstr "Als Standardwert festlegen" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:352 msgid "Set by user" msgstr "Nach Benutzer festlegen" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 msgid "Profile name can't be repeated" msgstr "Profilname kann nicht wiederholt werden" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "Sie müssen das Feld Name ausfüllen zum Fortfahren" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "Profile" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:498 msgid "Profiles Settings" msgstr "Profileinstellungen" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "" "Ginkgo CADx muss neu gestart werden damit die Änderungen an den Rechten " "aktiv werden" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 msgid "Confirm the removal of the profile " msgstr "Bestätige das Entfernen des Profils " #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:53 msgid "New User" msgstr "Neuer Benutzer" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "Der Name des Benutzers muss min. 4 Zeichen lang sein" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 msgid "User name repeated" msgstr "Benutzername wiederholen" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "Passwort und Bestätigung können nicht verschieden sein." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 msgid "Password has to contain at least 6 characters" msgstr "Passwort muß mindestens 6 Zeichen lang sein" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:141 msgid "No login" msgstr "Kein Login" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 msgid "User/Password" msgstr "Benutzer/Passwort" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:224 msgid "Password" msgstr "Passwort" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:191 msgid "Password is setted" msgstr "Passwort gesetzt" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "Passwort ändern" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 msgid "Password is not setted" msgstr "Kein Passwort definiert" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:195 msgid "Set password" msgstr "Passwort setzen" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:224 msgid "Security Setting" msgstr "Sicherheitseinstellungen" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "Sie müssen zumindest einen Benutzer erstellen" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "Sie müssen das Hauptpasswort festlegen" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 msgid "User inserted successfully" msgstr "Benutzer wurde erfolgreich eingefügt" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "" "Beim Einfügen des Benutzers ist ein Fehler aufgetreten. Für mehr " "Informationen öffnen Sie das Protokoll." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 msgid "Password changed successfully" msgstr "Passwort erfolgreich geändert" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "" "Beim Ändern des Passworts ist ein Fehler aufgetreten. Für mehr Informationen " "öffnen Sie das Protokoll." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 msgid "User deleted successfully" msgstr "Benutzer wurde erfolgreich gelöscht" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "" "Beim Löschen des Benutzers ist ein Fehler aufgetreten. Für mehr " "Informationen öffnen Sie das Protokoll." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "Ginkgo CADx muss mindestens einen Nutzer haben." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ..\../main/gui/login/dialogologin.cpp:27 msgid "User" msgstr "Benutzer" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ..\../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "Verzeichnis wählen" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "Ortsbenennungen können nicht wiederholt werden" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 msgid "Maximum length of title is 8 characters" msgstr "Maximale Länges des Titels is 8 Zeichen" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "Der gewählte Ordner kann nicht geöffnet werden" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "Sie müssen beide Felder ausfüllen zum Fortfahren, Titel und Ort" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 msgid "Title" msgstr "Titel" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 msgid "Path" msgstr "Pfad" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "Überwachen" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 msgid "Clean before" msgstr "Vorher säubern" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 msgid "Clean after" msgstr "Hinterher säubern" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "Orte" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 msgid "Location Settings" msgstr "Standorteinstellungen" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "Anonymisierung" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:96 msgid "Anonymization settings" msgstr "Anonymisierungseinstellungen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1370 msgid "Settings" msgstr "Einstellungen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 msgid "Export config..." msgstr "Konfiguration exportieren …" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 msgid "Import config..." msgstr "Konfiguration importieren …" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "Anwenden" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 msgid "Physician's name" msgstr "Arztname" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 msgid "Physician's Id" msgstr "Mediziner-ID" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 msgid "Service" msgstr "Dienst" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 msgid "Service's name" msgstr "Dienstname" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 msgid "Service's Id" msgstr "Dienst-ID" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 msgid "Local institution" msgstr "Lokale Institution" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 msgid "Institution's name" msgstr "Institutsname" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 #, fuzzy msgid "Institution's Id" msgstr "Lokale Institution" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 msgid "Dicomized files" msgstr "Dicomisierte Dateien" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 msgid "Charset" msgstr "Zeichensatz" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "ISO_IR 192" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "ISO_IR 6" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "ISO_IR 100" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "ISO_IR 101" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "ISO_IR 109" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "ISO_IR 110" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "ISO_IR 126" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "ISO_IR 127" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "ISO_IR 138" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "ISO_IR 144" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 msgid "ISO_IR 148" msgstr "ISO_IR 148" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "Sprache" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "Verschiedenes" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 msgid "Automatically check for updates" msgstr "Suche automatisch nach Updates" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ..\../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" "Helfen Sie uns durch Senden anonymer Nutzungsdaten (es werde keine " "Patientendaten gesendet)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 msgid "Proxy settings" msgstr "Proxy-Einstellungen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 msgid "Enable http proxy" msgstr "HTTP-Proxy aktivieren" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:218 #, fuzzy msgid "Proxy Settings" msgstr "Proxy-Einstellungen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 msgid "Server settings" msgstr "Server-Einstellungen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 msgid "Host" msgstr "Host" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 msgid "Port" msgstr "Port" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "Legitimierung" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "Proxy-Server erfordert Legitimierung" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 #, fuzzy msgid "Username" msgstr "Benutzername oder Passwort sind nicht korrekt" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "Ausnahmen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 #, fuzzy msgid "No proxy for addresses containing" msgstr "Mehrere Adressen Komma-getrennt angeben." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "Mehrere Adressen Komma-getrennt angeben." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 msgid "DICOM Dir" msgstr "DICOM-Verzeichnis" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "" "DICOM-Verzeichnis ist das lokale Verzeichnis in dem der Verlauf gespeichert " "wird" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" "Warnung! Um den Ordner zu aktualisieren, müssen Sie alle geöffneten Serien " "schließen." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 msgid "Auto-cleaning" msgstr "Automatisch aufräumen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "Studien löschen mit älterem Akquirierungsdatum als:" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" "Ältere Studien löschen, wenn freier Festplattenspeicher kleiner ist als:" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 msgid "MB" msgstr "MB" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "Studien löschen, wenn DICOM-Verzeichnis größer ist als:" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" "Diese Funktion betrifft nur Studien, die in das DICOM-Verzeichnis kopiert " "wurden und nicht geöffnet sind" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ..\../main/tools/toolwindowlevel.cpp:201 msgid "Reset to default" msgstr "Auf Standard zurücksetzen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "Lokales PACS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Sie müssen den lokalen AET konfigurieren, der zur Kommunikation mit dem PACS-" "Server verwendet wird. Der angegebene Port muss in der Firewall geöffnet " "sein, weil dies für Übertragungen essentiell ist." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 msgid "Local AET" msgstr "Lokale AET" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "Erweiterte Einstellungen ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 msgid "DICOM Nodes" msgstr "DICOM-Knoten" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 msgid "New ..." msgstr "Neu ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 msgid "Edit ..." msgstr "Bearbeiten ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ..\../main/gui/history3/historypanel3.cpp:677 #: ..\../main/gui/history3/historypanel3.cpp:686 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ..\../main/gui/import/selectimagesimportation.cpp:291 #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete" msgstr "Löschen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 msgid "Set Default" msgstr "Standard setzen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:388 msgid "DICOM Node" msgstr "DICOM-Knoten" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "AET" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 msgid "PDU (KB)" msgstr "PDU (KB)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 msgid "Retrieve method" msgstr "Empfangsmethode" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Move" msgstr "Verschieben" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Get" msgstr "Abrufen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "WADO" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 msgid "WADO URL" msgstr "WADO-URL" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 msgid "Retrieve mode" msgstr "Empfangsmodus" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ..\../main/gui/import/pasosimportacionbase.cpp:319 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1395 msgid "Series" msgstr "Serie" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 msgid "Studies" msgstr "Studien" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "Verbindung wiederverwenden" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "Bei mehr als einer Abfrage, Verbindungen wiederverwenden" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 msgid "Worklists" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 msgid "Select how do you want to handle MPPS items" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 msgid "DICOM MPPS" msgstr "DICOM-MPPS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 msgid "HL7 messages" msgstr "HL7-Nachrichten" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 msgid "HL7" msgstr "HL7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 #, fuzzy msgid "Abort message" msgstr "Nachricht" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 #, fuzzy msgid "Completed message" msgstr "Export erfolgreich abgeschlossen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 #, fuzzy msgid "In progress message" msgstr "Nachricht" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 msgid "Default values" msgstr "Standardwerte" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 msgid "Worklist" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 msgid "SSL/TLS" msgstr "SSL/TLS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 #, fuzzy msgid "Verify server credentials" msgstr "Server" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 msgid "Use SSL/TLS" msgstr "SSL/TLS benutzen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "Zertifikat" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 msgid "Certificate to use in this connection" msgstr "Zertifikat für die Verbindung" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "Erweiterte Konfiguration ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 msgid "Default charset" msgstr "Standardzeichensatz" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 msgid "Advanced" msgstr "Erweitert" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "Verbindung testen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 msgid "Local AET certificate" msgstr "Lokales AET-Zertifikat" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 msgid "Certificate used by Ginkgo CADx" msgstr "Zertifikat, das »Ginkgo CADx« nutzt" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "Anwendungs-ID von »Ginkgo CADx« zum Eintrag in das Feld MSH.3" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 msgid "Receiver organization Id" msgstr "Empfänger-Organisations-ID" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "" "Eindeutiger Bezeichner der Organisation, welche die Nachricht empfängt." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 #, fuzzy msgid "Petitioner System Id" msgstr "Kennung" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 msgid "Filler Application Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 #, fuzzy msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "Eindeutiger Bezeichner der Filler-Anwendung (SIID/Ginkgo)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "Eindeutiger Bezeichner der Filler-Anwendung (SIID/Ginkgo)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 msgid "Ginkgo CADx Application Id" msgstr "Ginkgo CADx-Anwendungs-ID" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" "Eindeutiger Bezeichner der »Picture Archiving and Communication System " "Application« (SIID/PACS)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 #, fuzzy msgid "Integration engine" msgstr "Hostname-Integrationsmaschine (IP oder DNS)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 msgid "Hostname / Port" msgstr "Hostname / Port" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "Hostname-Integrationsmaschine (IP oder DNS)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "/" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 msgid "Protocol" msgstr "Protokoll" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "MLLP" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ..\../main/gui/export/pasosexportacionbase.cpp:28 msgid "Format" msgstr "Format" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 msgid "Message's format" msgstr "Nachrichtenformat" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "ER7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 #, fuzzy msgid "Test engine" msgstr "Verbindung testen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 #, fuzzy msgid "Test Integration Engine connectivity" msgstr "Hostname-Integrationsmaschine (IP oder DNS)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 msgid "Ginkgo Extension Title" msgstr "Titel der Ginkgo-Erweiterung" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 msgid "Edit public key" msgstr "Ändere den öffentlichen Schlüssel" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "" "Standardzertifikat (in lokalen AET-Einstellungen konfiguriert) verwenden" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 msgid "Public key" msgstr "Öffentlicher Schlüssel" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 msgid "Public key in PEM format" msgstr "Öffentlicher Schlüssel im PEM-Format" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 msgid "Load ..." msgstr "Laden ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 msgid "Private key" msgstr "Privater Schlüssel" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 msgid "Private key in PEM format" msgstr "Privater Schlüssel im PEM-Format" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 msgid "Profile name" msgstr "Profilname" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 msgid "Set active" msgstr "Aktivieren" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 msgid "Configure location" msgstr "Konfiguriere Ort" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 msgid "Location" msgstr "Ort" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "Ordner nach der Dicomisierung säubern" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "Ordner vor der Dicomisierung säubern" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 msgid "Security type" msgstr "Sicherheitsmodus" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "Benutzer" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 msgid "Change Password ..." msgstr "Ändere Passwort ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 msgid "Set main password" msgstr "Hauptpasswort setzen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 msgid "Set Password" msgstr "Passwort setzen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:736 msgid "Edit User" msgstr "Benutzer bearbeiten" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 msgid "User Name" msgstr "Name des Benutzers" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 msgid "Confirm Password" msgstr "Kennwort bestätigen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 msgid "Properties" msgstr "Eigenschaften" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:814 msgid "Edit corner annotations" msgstr "Eckbeschriftungen bearbeiten" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue} where GGGG is the tag's group in hexadecimal and EEEE is the " "tag's element." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 msgid "Window/level" msgstr "Fenster/Ebene" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "Hinzufügen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ..\../main/gui/history3/historytoolmenu.cpp:149 #: ..\../widgets/gui/selecciontextobase.h:58 msgid "Edit" msgstr "Bearbeiten" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 msgid "Default Window/Level" msgstr "Standard-Fenster/Ebene" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 msgid "Corner annotations" msgstr "Eckbeschriftungen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 msgid "Setup corner annotations" msgstr "Eckbeschriftungen einrichten" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 msgid "Setup..." msgstr "Einrichten …" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 msgid "Other settings" msgstr "Andere Einstellungen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 msgid "Interpolate pixel data" msgstr "Pixel-Daten interpolieren" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:885 msgid "Hanging protocol" msgstr "Hanging-Protokoll" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 #, fuzzy msgid "Opening mode" msgstr "Empfangsmodus" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 #, fuzzy msgid "Study opening criteria" msgstr "Studie" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "+" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 msgid "Workspace" msgstr "Arbeitsfläche" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 msgid "Enable/Disable" msgstr "Aktivieren/Deaktivieren" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 msgid "Top left corner annotations" msgstr "Eckbeschriftungen oben links" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 msgid "Setup window" msgstr "Fenster einrichten" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "" "Klicken Sie auf den Konfigurieren-Knopf und platzieren Sie das Fenster wie " "gewünscht" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 msgid "Set default" msgstr "Als Vorgabe festlegen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 msgid "Open in main window" msgstr "Im Hauptfenster öffnen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 msgid "Setup position..." msgstr "Position einrichten …" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 #, fuzzy msgid "Setup undocked window position" msgstr "Position einrichten …" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 msgid "Layout" msgstr "Anordnung" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 msgid "Current layout" msgstr "Aktuelle Anordnung" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "Zeilen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 msgid "Columns" msgstr "Spalten" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 #, fuzzy msgid "Series criteria" msgstr "Serie" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 #, fuzzy msgid "Select opening mode" msgstr "Empfangsmodus" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 msgid "Tag" msgstr "Markierung" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" "Position und Größe des Fensters einrichten, in dem die Studie geöffnet " "werden soll" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 msgid "Save" msgstr "Speichern" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 #, fuzzy msgid "Enable background queries" msgstr "Shader aktivieren" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 #, fuzzy msgid "Smart retrieve" msgstr "Empfangsmethode" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 #, fuzzy msgid "Smart retrieve settings" msgstr "Einstellungen" #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "Untätigkeit festgestellt" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.h:64 msgid "Export DICOM" msgstr "DICOM exportieren" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "Zuweisender Arzt" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 #, fuzzy msgid "Ginkgo CADx private tags" msgstr "Ginkgo CADx" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ..\../main/gui/history3/historypanel3.cpp:340 #: ..\../main/gui/history3/historytoolmenu.cpp:158 msgid "Export" msgstr "Exportieren" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ..\../main/gui/export/parametrosprincipales.cpp:157 msgid "Select the directory where the files will be stored" msgstr "" "Wählen Sie das Verzeichnis, in welches die Dateien gespeichert werden sollen" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" "Der gewählte Ordner existiert nicht.\n" "Möchten Sie einen erstellen?" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "Angegebener Pfad enthält andere DICOM-Verzeichnisse" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" "Ginkgo CADx hat ein Standard-DICOM-Verzeichnis gefunden, das mit einer alten " "Version\n" "von Ginkgo CADx (BBDD v.%d) erstellt wurde. Wie möchten Sie vorgehen?" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" "Das DICOM-Verzeichnis wurde mit einer neueren Version von Ginkgo CADx (BBDD " "v.%d)\n" "erstellt. Die aktuelle Version ist nicht in der Lage, das Verzeichnis zu " "öffnen." #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 msgid "Select the DICOM Dir folder" msgstr "Wählen Sie das DICOM-Verzeichnis aus" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 msgid "DICOM Dir migration" msgstr "DICOM-Verzeichnismigration" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 msgid "Migrate existing (recommended)" msgstr "Existierende migrieren (empfohlen)" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" "Bestehendes DICOM-Verzeichnis migrieren, bestehende Dateien werden zum neuen " "DICOM-Verzeichnis hinzugefügt. Schließen Sie Ginkgo CADx nicht, bis die " "Migration abgeschlossen ist." #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "" "Altes DICOM-Verzeichnis nach der Migration entfernen (wird in *_old " "umbenannt)" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 msgid "Continue..." msgstr "Fortsetzen …" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 msgid "Select other" msgstr "Anderen wählen" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" "Wählen Sie einen anderen Pfad, wenn der Pfad kein Ginkgo CADx-DICOM-" "Verzeichnis enthält, wobei dann ein neues angelegt wird. Ansonsten wird das " "bestehende DICOM-Verzeichnis verwendet." #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 msgid "Browse..." msgstr "Auswählen …" #: ..\../main/gui/export/parametrosprincipales.cpp:106 msgid "DICOM Export" msgstr "DICOM-Export" #: ..\../main/gui/export/parametrosprincipales.cpp:110 msgid "Select the format and the images you want to export" msgstr "Wählen Sie das Format und die Bilder, die Sie exportieren wollen" #: ..\../main/gui/export/parametrosprincipales.cpp:143 #, fuzzy msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "PEM-Dateien (*.pem;*.key)|*.pem;*.key|Alle Dateien (*.*)|*.*" #: ..\../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:150 #, fuzzy msgid "Select file" msgstr "Wählen Sie eine gülltige DICOMDIR-Datei" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "DICOM (native format)" msgstr "DICOM (Nativformat)" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "Image (jpg, bmp, png)" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:38 #, fuzzy msgid "Export all files of opened tab" msgstr "Exportiere Datei %d von %d" #: ..\../main/gui/export/pasosexportacionbase.cpp:55 msgid "JPEG" msgstr "JPEG" #: ..\../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "Qualität" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:40 msgid "Image Export Wizard" msgstr "Bildexportassistent" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ..\../main/gui/license/aboutdialogbase.cpp:67 #: ..\../main/gui/license/aboutdialogbase.cpp:151 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:54 msgid "&Accept" msgstr "A&kzeptieren" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "&Weiter >" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:32 msgid "Open link" msgstr "Verweis öffnen" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:402 msgid "File link:" msgstr "Dateiverweis:" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ..\../main/gui/import/pasosimportacionbase.cpp:270 msgid "Study" msgstr "Studie" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:216 msgid "User name" msgstr "Benutzername" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:397 msgid "Ginkgo Cloud link" msgstr "Ginkgo Cloud-Verweis" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" "Sie können den Verweis kopieren und in E-Mails sowie Webseiten einfügen – " "zum Herunterladen und Visualisieren muss Ginkgo CADx installiert sein." #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "Verweis per E-Mail senden" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:437 msgid "Copy to clipboard" msgstr "In Zwischenablage kopieren" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "New Ginkgo Cloud study" msgstr "Neue Ginkgo Cloud-Studie" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "To download the study, paste this url " msgstr "Um die Studie herunterladen zu können, fügen Sie diesen URL " #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" "in das »Open Ginkgo Cloud-Verweis«-Werkzeug im Ginkgo CADx-Verlauf ein oder " "in die Adresszeile Ihres Webbrowsers." #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 msgid "Creator" msgstr "Ersteller" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 #, fuzzy msgid "Last Modificator" msgstr "Letzten 7 Tage" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 msgid "Show link..." msgstr "Verweis anzeigen …" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "?" #: ..\../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 msgid "Invalid link" msgstr "Ungültiger Verweis" #: ..\../main/gui/history3/historypanel3.cpp:117 #: ..\../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "Serie öffnen" #: ..\../main/gui/history3/historypanel3.cpp:119 #: ..\../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "Serie öffnen mit ..." #: ..\../main/gui/history3/historypanel3.cpp:226 #: ..\../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "Alter" #: ..\../main/gui/history3/historypanel3.cpp:228 #, fuzzy msgid "Date acquired" msgstr "Datum" #: ..\../main/gui/history3/historypanel3.cpp:230 #, fuzzy msgid "Date added" msgstr "Datum" #: ..\../main/gui/history3/historypanel3.cpp:308 #: ..\../main/gui/history3/historytoolmenu.cpp:82 #: ..\../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "Akquiriere" #: ..\../main/gui/history3/historypanel3.cpp:316 #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize" msgstr "Dicomisieren" #: ..\../main/gui/history3/historypanel3.cpp:363 msgid "All patients" msgstr "Alle Patienten" #: ..\../main/gui/history3/historypanel3.cpp:481 msgid "Results" msgstr "Ergebnisse" #: ..\../main/gui/history3/historypanel3.cpp:481 #, c-format msgid " (%d images)" msgstr " (%d Bilder)" #: ..\../main/gui/history3/historypanel3.cpp:634 msgid "Open study with .." msgstr "Studie öffnen mit …" #: ..\../main/gui/history3/historypanel3.cpp:663 #: ..\../main/gui/history3/historypanel3base.cpp:482 msgid "Synchronize" msgstr "Abgleichen" #: ..\../main/gui/history3/historypanel3.cpp:677 msgid "&Delete from history" msgstr "Aus dem Verlauf &Löschen" #: ..\../main/gui/history3/historypanel3.cpp:686 msgid "&Clear history" msgstr "&Verlauf leeren" #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "" "Sie haben die max. Anzahl offener Reiter erreicht, bitte einige Reiter " "schließen und erneut versuchen" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid "Unable to open modality " msgstr "Modalität kann nicht geöffnet werden: " #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr " mit Transfersyntax " #: ..\../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" "Fehler beim Laden der Studie, überprüfen Sie die Einstellungen zum Hanging-" "Protokoll" #: ..\../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "" "Konnte den Verlauf nicht leeren. Sie müssen geöffnete Studien schließen" #: ..\../main/gui/history3/historypanel3.cpp:1086 msgid "all files" msgstr "Alle Dateien" #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 msgid "Select at least one series" msgstr "Wählen Sie mindestens eine Serie aus" #: ..\../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "Sie können die geöffnete Serie nicht entfernen" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "those series" msgstr "jene Serien" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "this series" msgstr "diese Serie" #: ..\../main/gui/history3/historypanel3base.cpp:57 msgid "Advanced search" msgstr "Erweiterte Suche" #: ..\../main/gui/history3/historypanel3base.cpp:73 msgid "Acquisition date" msgstr "Akquirierungsdatum" #: ..\../main/gui/history3/historypanel3base.cpp:302 #: ..\../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "Löschen bestätigen" #: ..\../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "Sind Sie sicher, dass sie löschen möchten " #: ..\../main/gui/history3/historypanel3base.cpp:336 #: ..\../main/gui/history3/historytoolmenu.cpp:102 #: ..\../main/gui/history3/historytoolmenu.cpp:200 #: ..\../main/gui/history3/historytoolmenu.cpp:229 msgid "Remove" msgstr "Entfernen" #: ..\../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "" "Wählen Sie die Ansicht, die sie zum Öffnen von Dateien verwenden wollen" #: ..\../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "Immer diese Ansicht zum Öffnen der Dateien verwenden" #: ..\../main/gui/history3/historypanel3base.cpp:454 #: ..\../main/gui/history3/historypanel3base.h:187 msgid "Synchronize files" msgstr "Dateien abgleichen" #: ..\../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" "Bevor diese Aktion ausgeführt werden kann, müssen Dateien zur lokalen " "Datenbank\n" "heruntergeladen werden. Möchten Sie die Dateien jetzt abgleichen?" #: ..\../main/gui/history3/historytablemodel.cpp:406 #: ..\../main/gui/history3/historytablemodel.cpp:418 #: ..\../main/gui/history3/historytablemodel.cpp:473 #: ..\../main/gui/history3/historytablemodel.cpp:485 #: ..\../main/gui/open/dicomdirtablemodel.cpp:105 msgid "00/00/0000 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/history3/historytoolmenu.cpp:138 msgid "Close history" msgstr "Verlauf schließen" #: ..\../main/gui/history3/historytoolmenu.cpp:139 #: ..\../main/gui/startup/startupform.cpp:53 msgid "History" msgstr "Verlauf" #: ..\../main/gui/history3/historytoolmenu.cpp:201 #: ..\../main/gui/history3/historytoolmenu.cpp:230 msgid "Clear history" msgstr "Verlauf leeren" #: ..\../main/gui/history3/historytoolmenu.cpp:232 msgid "Select all" msgstr "Alle auswählen" #: ..\../main/gui/history3/historytoolmenu.cpp:233 msgid "Deselect all" msgstr "Auswahl aufheben" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 msgid "Destination" msgstr "Ziel" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 msgid "Status" msgstr "Status" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 msgid "Error message" msgstr "Fehlermeldung" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 msgid "Show Message" msgstr "Nachricht zeigen" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 msgid "Edit Message" msgstr "Nachricht bearbeiten" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 msgid "Delete message" msgstr "Nachricht löschen" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 msgid "Error editing message" msgstr "Fehler beim Ändern der Nachricht" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 msgid "Error purguing messages" msgstr "Fehler beim Löschen von Nachrichten" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Stop" msgstr "Stopp" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Sent" msgstr "Gesendet" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "Ausstehend" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/progress/statusbarprogreso.cpp:281 msgid "Warning" msgstr "Warnung" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 msgid "Error getting message" msgstr "Fehler beim Erhalt der Nachricht" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 msgid "Running" msgstr "Wird ausgeführt" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "Der Übermittlungsvorgang hat begonnen und bereit zum Senden" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "Abgebrochen" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 msgid "Usually due to an error in sending a message" msgstr "Üblicherweise aufgrund eines Fehlers beim Senden einer Nachricht" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Start" msgstr "Start" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "Möchten Sie diese Meldungen entfernen?" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 msgid "Error deleting messages" msgstr "Fehler beim Löschen von Nachrichten" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 msgid "Remove sent messages" msgstr "Gesendete Nachrichten entfernen" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 msgid "Exit" msgstr "Schließen" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 msgid "Messages" msgstr "Nachrichten" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 msgid "Refresh" msgstr "Auffrischen" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1394 msgid "View" msgstr "Anzeigen" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 msgid "Send task status:" msgstr "Sende Aufgaben-Status:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "Aktiviert" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 msgid "Message" msgstr "Nachricht" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "Datum:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 msgid "Destination:" msgstr "Ziel:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 msgid "Status:" msgstr "Status:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 msgid "Message content:" msgstr "Nachrichteninhalt:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:142 msgid "OK" msgstr "OK" #: ..\../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "Übersichtsdaten der DICOM-Dateien" #: ..\../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "DICOM-Daten aus den zu erstellenden Dateien können verteilt werden" #: ..\../main/gui/import/generaldata.cpp:210 msgid "" "\n" "* The patient ID is required." msgstr "" "\n" "* Die Patienten-ID ist erforderlich." #: ..\../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" "\n" "* Patientenname und Nachname dürfen zusammen nicht mehr als 61 Zeichen lang " "sein." #: ..\../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" "\n" "* Das Format der eingegebenen Größe (in Zentimetern) ist nicht korrekt. " #: ..\../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" "\n" "* Das Geburtsdatum des Patienten liegt zeitlich hinter dem Datum der Studie." #: ..\../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" "\n" "* Das Format des eingegebenen Gewichts ist nicht korrekt. Gültige Werte sind " "0 bis 400 Kg." #: ..\../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "Folgende Fehler sind beim Prüfen der Felder aufgetreten" #: ..\../main/gui/import/generaldata.cpp:231 msgid "Error validating fields" msgstr "Fehler beim Prüfen der Felder" #: ..\../main/gui/import/pasoperfilimportacion.cpp:148 msgid "Selecting Import Profile" msgstr "Auswahl des Importprofils" #: ..\../main/gui/import/pasoperfilimportacion.cpp:152 msgid "You must select the profile you want to use import" msgstr "Sie müssen das Profil auswählen, das Sie für dem Import nutzen möchten" #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 msgid "You must select the import profile" msgstr "Sie müssen das Import-Profil auswählen" #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "Unerwarteter Fehler – wählen Sie das Modul erneut aus" #: ..\../main/gui/import/pasosimportacionbase.cpp:21 msgid "Selected images" msgstr "Gewählte Bilder" #: ..\../main/gui/import/pasosimportacionbase.cpp:56 msgid "Preview" msgstr "Vorschau" #: ..\../main/gui/import/pasosimportacionbase.cpp:62 msgid "Remove all" msgstr "Alle entfernen" #: ..\../main/gui/import/pasosimportacionbase.cpp:113 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:65 msgid "Demographic data" msgstr "Demographische Daten" #: ..\../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "Identifikator *" #: ..\../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "(ID oder Anamnese-Nr.)" #: ..\../main/gui/import/pasosimportacionbase.cpp:159 #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "Birth date" msgstr "Geburtsdatum" #: ..\../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "Nachname" #: ..\../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "Geschlecht" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "Männlich" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "Weiblich" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "Anderes" #: ..\../main/gui/import/pasosimportacionbase.cpp:217 msgid "Study Details" msgstr "Details zur Studie" #: ..\../main/gui/import/pasosimportacionbase.cpp:234 #: ..\../wx/gnkinforme/gnkinformebase.cpp:122 msgid "Weight" msgstr "Gewicht" #: ..\../main/gui/import/pasosimportacionbase.cpp:245 msgid "Kg" msgstr "Kg" #: ..\../main/gui/import/pasosimportacionbase.cpp:252 #: ..\../wx/gnkinforme/gnkinformebase.cpp:119 msgid "Height" msgstr "Größe" #: ..\../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "cm" #: ..\../main/gui/import/pasosimportacionbase.cpp:291 #: ..\../main/gui/import/pasosimportacionbase.cpp:333 msgid "Time" msgstr "Uhrzeit" #: ..\../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "Der Pfad zu diesem Ort existiert nicht" #: ..\../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" "Bilder (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG-Bilder (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP-Bilder (*." "bmp)|*.bmp|PNG-Bilder (*.png)|*.png|TIFF-Bilder (*.tif;*.tiff)|*.tif;*.tiff|" "PDF-Dokumente (*.pdf)|*.pdf|Alle Dateien (*.*)|*.*" #: ..\../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" "Bilder (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG-" "Bilder (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP-Bilder (*.bmp)|*.bmp;" "*BMP|PNG-Bilder (*.png)|*.png;*PNG|TIFF-Bilder (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF-Dokumente (*.pdf;*.PDF)|*.PDF;*.pdf|Alle Dateien (*.*)|*.*" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files..." msgstr "Dateien auswählen …" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "Dateien vom Dateisystem auswählen" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste" msgstr "Einfügen" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste from clipboard" msgstr "Aus der Zwischenablage einfügen" #: ..\../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "Zurück" #: ..\../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "Diese Datei von der Festplatte wirklich löschen?" #: ..\../main/gui/import/selectimagesimportation.cpp:330 msgid "Delete selected items" msgstr "Ausgewählte Einträge löschen" #: ..\../main/gui/import/selectimagesimportation.cpp:342 msgid "You must select an image" msgstr "Sie müssen ein Bild auswählen" #: ..\../main/gui/import/selectimagesimportation.cpp:346 msgid "Generating preview..." msgstr "Vorschau wird erstellt …" #: ..\../main/gui/import/selectimagesimportation.cpp:500 msgid "Select images" msgstr "Bilder auswählen" #: ..\../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "Vorschaubilder werden erstellt …" #: ..\../main/gui/import/selectimagesimportation.cpp:715 msgid "Image selection" msgstr "Bildauswahl" #: ..\../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "Sie müssen die Bilder auswählen, die Sie importieren möchten" #: ..\../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "Sie müssen zumindest ein Bild auswählen" #: ..\../main/gui/import/selectimagesimportation.cpp:760 msgid "The file" msgstr "Die Datei" #: ..\../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr " existiert nicht" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:52 msgid "Image Import Wizard" msgstr "Bildimportassistent" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "Angefordertes Modul unterstützt keine Imports" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "Es ist kein Modul mit Importunterstützung registriert" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "Es ist kein Modul mit Importunterstützung vorhanden" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "Das gewünschte Modul ist nicht registriert" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "Das angeforderte Modul ist nicht registriert" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:167 msgid "free of" msgstr "frei von" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:181 msgid "in dicomization dir." msgstr "im Dicomisierungs-Ordner." #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "Sind Sie sicher, dass Sie den Importvorgang abbrechen möchten?" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, c-format msgid "Step %d of %d: " msgstr "Schritt %d von %d: " #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "&Ende" #: ..\../main/gui/license/aboutdialog.cpp:25 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About" msgstr "Info" #: ..\../main/gui/license/aboutdialogbase.cpp:22 msgid "Ginkgo CADx" msgstr "Ginkgo CADx" #: ..\../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "Mitwirkende" #: ..\../main/gui/license/aboutdialogbase.cpp:55 msgid "Licenses" msgstr "Lizenzen" #: ..\../main/gui/license/aboutdialogbase.cpp:58 #, fuzzy msgid "UPDATE_INFO" msgstr "Information" #: ..\../main/gui/license/aboutdialogbase.cpp:108 #: ..\../main/gui/license/aboutdialogbase.h:88 msgid "Open Source Licenses" msgstr "Open SOurce Lizenzen" #: ..\../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "Cairo" #: ..\../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "DCMTK" #: ..\../main/gui/license/aboutdialogbase.cpp:119 msgid "FamFamFam Icons" msgstr "FamFamFam-Symbole" #: ..\../main/gui/license/aboutdialogbase.cpp:120 msgid "Fugue Icons" msgstr "Fugue-Icons" #: ..\../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "IK" #: ..\../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "LibJpeg" #: ..\../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "LibPng" #: ..\../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "OpenSSL" #: ..\../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "VTK" #: ..\../main/gui/license/aboutdialogbase.cpp:126 msgid "WxWidgets" msgstr "WxWidgets" #: ..\../main/gui/license/aboutdialogbase.cpp:127 msgid "Zlib" msgstr "Zlib" #: ..\../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "SQL Lite" #: ..\../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "CharLS" #: ..\../main/gui/license/aboutdialogbase.cpp:130 msgid "Dark Glass Icons" msgstr "»Dark Glass«-Symbole" #: ..\../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "Libcurl" #: ..\../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "JsonCpp" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:23 #: ..\../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "Lizenzvereinbarung" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" "Wenn Sie die Lizenzvereinbarung anerkennen, drücken Sie \"Ich akzeptiere die " "Lizenz\" um fortzufahren. Sie müssen die Lizenz akzeptierenm um mit Ginkgo " "CADx nutzen zu können." #: ..\../main/gui/license/acceptlicensedialogbase.cpp:53 msgid "Check for updates automatically" msgstr "Suche automatisch nach Updates" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:66 msgid "I Accept the license" msgstr "Ich akzeptiere die Lizenz" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "Ich akzeptiere die Lizenz nicht" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Save logs" msgstr "Logs speichern" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "Log-Datei (*.log) | *.log | Text file (*.txt) | *.txt" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 msgid "File couldn't be stored " msgstr "Datei konnte nicht gespeichert werden " #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 msgid "Could not write to file" msgstr "Konnte nicht in die Datei schreiben" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 msgid "Save log..." msgstr "Log speichern..." #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 msgid "Clear log" msgstr "Protokoll leeren" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 msgid "Log" msgstr "Log" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "Liste leeren" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "Protokolltext" #: ..\../main/gui/login/dialogologin.cpp:50 msgid "The username or password is incorrect" msgstr "Benutzername oder Passwort sind nicht korrekt" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:250 msgid "Tasks" msgstr "Aufgaben" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1139 msgid "Included in the history ..." msgstr "Im Verlauf enthalten …" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "" "In der aktuellen Konfiguration ist keine URL zum Prüfen auf Aktualisierungen " "angegeben." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "Check update error" msgstr "Überprüfen Updatefehler" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "" "Semantischer/syntaktischer Fehler bei der Auswertung des Integrations-URL " "(siehe Protokoll für Details):\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 msgid "Malformed XML" msgstr "Kaputtes XML" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1192 msgid "Error in interpreting the parameters of the command line. (" msgstr "Fehler beim Verarbeiten der Befehlszeilenparameter. (" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "" "Semantischer/syntaktischer Fehler beim Lesen des Integrations-XML (siehe " "Fehlerlog für Details):\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 msgid "Error parsing integration XML:\n" msgstr "Fehler beim Parsen des Integrations-XML:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 msgid "PACS error:\n" msgstr "PACS-Fehler:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 msgid "Error executing WorkFlow\n" msgstr "Fehler beim Ausführen des Arbeitsablaufs\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" "Fehler beim Abarbeiten des Arbeitsablaufs\n" "Internes Problem" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 msgid "Close current view" msgstr "Schließe aktuelle Ansicht" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all" msgstr "Alle schließen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all views" msgstr "Schließe alle Ansichten" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "&Beenden" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "Exit application" msgstr "Anwendung beenden" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "Vollbild" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Show full screen" msgstr "Vollbild anzeigen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1302 #, fuzzy msgid "Tab grouping" msgstr "Reiterumgruppierung" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1329 msgid "Ginkgo CADx manual ..." msgstr "Ginkgo CADx-Handbuch …" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1330 #, fuzzy msgid "Open test card" msgstr "Verbindung testen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "Nach Aktualisierungen suchen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for newest versions" msgstr "Prüfe auf neueste Version" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1332 msgid "Need support ..." msgstr "Unterstützung benötigt ..." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About " msgstr "Info zu " #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 #, fuzzy msgid "HL7 monitor" msgstr "Protokollbetrachter" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 msgid "HL7 message control" msgstr "HL7-Nachrichtensteuerung" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 msgid "Log monitor" msgstr "Protokollbetrachter" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 msgid "Log monitored" msgstr "Überwachtes Protokoll" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1390 msgid "&File" msgstr "&Datei" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "&Bearbeiten" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "&Hilfe" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "Fehler beim Laden des Verlaufs, Ginkgo CADx wird geschlossen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "Mosaik" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "Möchten Sie die Änderungen in der Studie speichern:" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1664 msgid "Unsaved data" msgstr "Ungespeicherte Daten" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "" "Es traten während des Speicherns der Serie Fehler auf.\n" "Wollen Sie mit dem Schließen fortfahren? " #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "Error saving" msgstr "Fehler beim Speichern" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "Full Screen" msgstr "Vollbild" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "View Full Screen" msgstr "Als Vollbild anzeigen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1708 msgid "Tab Regroup" msgstr "Reiterumgruppierung" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "&Schließen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "&Close all" msgstr "&Alle schließen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "Close all windows" msgstr "Schließe alle Fenster" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1728 #, fuzzy msgid "Tabbed organization" msgstr "Rasteranordnung" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "Im Moment gibt es keine neuesten »Ginkgo CADx«-Versionen." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "Ginkgo CADx updated" msgstr "Ginkgo CADx erneuert" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1782 msgid "New version available (" msgstr "Neue Version verfügbar (" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "Interner Fehler bei Authentifikation" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:29 msgid "New Update" msgstr "Neues Update" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:34 msgid "New version available" msgstr "Neue Version verfügbar" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "Nicht erneut wegen des Updates warnen" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:43 msgid "X" msgstr "X" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:45 msgid "Close this notification" msgstr "Schließe diese Nachricht" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:104 msgid "The following commands will be aborted if you close the application" msgstr "Folgende Befehle werden abgebrochen, wenn Sie die Anwendung schließen" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:131 msgid "Close Ginkgo CADx" msgstr "»Ginkgo CADx« schließen" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "Scließt das Programm und bricht alle ausstehenden Kommandos ab" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "Schließen Sie das Programm nicht und lassen Sie Kommandos laufen" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:138 msgid "User login" msgstr "Benutzername" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:202 msgid "System authentication" msgstr "System-Legitimierung" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:260 msgid "Login" msgstr "Login" #: ..\../main/gui/open/abrir.cpp:80 ..\../main/gui/open/abrir.cpp:82 msgid "Open..." msgstr "Öffnen..." #: ..\../main/gui/open/opendialogs.cpp:58 #, fuzzy msgid "There was an error reading DICOMDIR file" msgstr "Wählen Sie eine gülltige DICOMDIR-Datei" #: ..\../main/gui/open/opendialogs.cpp:62 msgid "Select a valid DICOMDIR file" msgstr "Wählen Sie eine gülltige DICOMDIR-Datei" #: ..\../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "Wählen Sie die DICOMDIR-Datei, die Sie einlesen wollen" #: ..\../main/gui/open/opendialogs.cpp:180 #: ..\../main/gui/open/opendialogsbase.cpp:170 #: ..\../main/gui/open/opendialogsbase.h:112 msgid "Copy or link" msgstr "Kopieren oder verknüpfen" #: ..\../main/gui/open/opendialogsbase.cpp:22 #: ..\../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "Akquiriere aus einem DICOM Verzeichnis" #: ..\../main/gui/open/opendialogsbase.cpp:94 #: ..\../main/gui/open/opendialogsbase.h:85 msgid "Select drive" msgstr "Laufwerk auswählen" #: ..\../main/gui/open/opendialogsbase.cpp:175 msgid "Do you want to copy or link files?" msgstr "Möchten Sie Dateien kopieren oder verknüpfen?" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ..\../main/gui/selectpacsserver/selectpacsserver.cpp:30 msgid "There aren't any PACS configured" msgstr "Es sind keine PACS konfiguriert" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:69 #, fuzzy msgid "0000/00/00 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.h:57 msgid "Upload study" msgstr "Studie hochladen" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 msgid "Select PACS server" msgstr "PACS-Server auswählen" #: ..\../main/gui/paneltags/paneltags.cpp:119 msgid "Metadata" msgstr "Meta-Daten" #: ..\../main/gui/paneltags/paneltags.cpp:120 #, fuzzy msgid "Identification information" msgstr "Patienteninformationen" #: ..\../main/gui/paneltags/paneltags.cpp:121 msgid "Patient information" msgstr "Patienteninformationen" #: ..\../main/gui/paneltags/paneltags.cpp:122 msgid "Acquisition information" msgstr "Akquirierungsinformationen" #: ..\../main/gui/paneltags/paneltags.cpp:123 msgid "Relationship information" msgstr "Beziehungsinformationen" #: ..\../main/gui/paneltags/paneltags.cpp:124 #, fuzzy msgid "Image presentation information" msgstr "Bild ohne Maßstab" #: ..\../main/gui/paneltags/paneltags.cpp:125 ..\../widgets/wtextbox.cpp:525 msgid "Text" msgstr "Text" #: ..\../main/gui/paneltags/paneltags.cpp:126 msgid "Other" msgstr "Andere" #: ..\../main/gui/paneltags/paneltags.cpp:137 #: ..\../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "Daten" #: ..\../main/gui/previewpanel/previewpanel.cpp:47 msgid "Hide" msgstr "Ausblenden" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:187 #: ..\../main/gui/previewpanel/previewpanelbase.cpp:207 msgid "Previews" msgstr "Vorschaubilder" #: ..\../main/gui/progress/progresobase.cpp:23 msgid "There is no running tasks" msgstr "Es sind keine laufenden Aufgaben vorhanden" #: ..\../main/gui/progress/statusbarprogreso.cpp:165 msgid "0 running tasks." msgstr "0 laufende Prozesse." #: ..\../main/gui/progress/statusbarprogreso.cpp:192 #, c-format msgid "There are %d pending tasks" msgstr "Es sind %d ausstehende Aufgaben vorhanden" #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.h:55 msgid "Select PACS" msgstr "PACS auswählen" #: ..\../main/gui/startup/startupformbase.cpp:29 msgid "http://ginkgo-cadx.com" msgstr "http://ginkgo-cadx.com" #: ..\../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "" "Für diagnostische Zwecke keine geeigneten verfügbar. Erwägen Sie eine " "Aktualisierung auf" #: ..\../main/gui/startup/startupformbase.cpp:47 msgid "Ginkgo CADx Pro" msgstr "Ginkgo CADx Pro" #: ..\../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" "Vergessen Sie nicht, dass Sie zum Entwicklungsfortschritt beitragen, wenn " "Sie Ginkgo CADx Pro kaufen." #: ..\../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "Angetrieben von" #: ..\../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "MetaEmotion Healthcare" #: ..\../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "Startseite" #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete Widget" msgstr "Oberflächenelement löschen" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Properties ..." msgstr "Eigenschafte ..." #: ..\../main/managers/widgetsmanager.cpp:1090 #, fuzzy msgid "Widget Properties" msgstr "Eigenschaften..." #: ..\../main/tools/addfiletohistorytool.cpp:114 msgid "Open file" msgstr "Datei öffnen" #: ..\../main/tools/addfiletohistorytool.cpp:115 #: ..\../main/tools/openfoldertool.cpp:27 msgid "Open folder" msgstr "Ordner öffnen" #: ..\../main/tools/addfiletohistorytool.cpp:116 #: ..\../main/tools/openremovabletool.cpp:28 msgid "Open removable unit" msgstr "Wechseldatenträger öffnen" #: ..\../main/tools/addfiletohistorytool.cpp:117 #: ..\../main/tools/openginkgocloudlinktool.cpp:27 msgid "Open Ginkgo Cloud link" msgstr "Ginkgo Cloud-Verweis öffnen" #: ..\../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "Normaler Winkel (3-Punkt)" #: ..\../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "Cobb-Winkel" #: ..\../main/tools/colormaptool.cpp:110 msgid "Invert color map" msgstr "Farbpalette umkehren" #: ..\../main/tools/cornerannotationstool.cpp:44 msgid "Hide corner annotations" msgstr "Eck-Notizen ausblenden" #: ..\../main/tools/cornerannotationstool.cpp:46 msgid "Show corner annotations" msgstr "Ecknotizen zeigen" #: ..\../main/tools/detachwindowtool.cpp:42 msgid "Attach View" msgstr "Ansicht andocken" #: ..\../main/tools/detachwindowtool.cpp:44 msgid "Detach view" msgstr "Ansicht abtrennen" #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize files" msgstr "Dateien dicomisieren" #: ..\../main/tools/exportdicomdirtool.cpp:32 msgid "Export to DICOM Dir" msgstr "In DICOM-Verzeichnis exportieren" #: ..\../main/tools/markertool.cpp:171 msgid "Point" msgstr "Punkt" #: ..\../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "Pfeil" #: ..\../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "Ellipse" #: ..\../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "Trapezoid" #: ..\../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "Polygon" #: ..\../main/tools/markertool.cpp:176 #, fuzzy msgid "Free form" msgstr "frei von" #: ..\../main/tools/metricgridtool.cpp:57 msgid "Grid" msgstr "Gitter" #: ..\../main/tools/metricgridtool.cpp:67 msgid "Grid Scale" msgstr "Gittermaßstab" #: ..\../main/tools/metricgridtool.cpp:74 msgid "Scale X" msgstr "X-Skalierung" #: ..\../main/tools/metricgridtool.cpp:78 msgid "X axis scale" msgstr "Skalierung X-Achse" #: ..\../main/tools/metricgridtool.cpp:87 msgid "Scale Y" msgstr "Y-Skalierung" #: ..\../main/tools/metricgridtool.cpp:91 msgid "Y axis scale" msgstr "Skalierung Y-Achse" #: ..\../main/tools/metricgridtool.cpp:206 msgid "Show grid" msgstr "Gitter anzeigen" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "Gitter konfigurieren ..." #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "Gitter konfigurieren" #: ..\../main/tools/metricgridtool.cpp:250 msgid "Hide Grid" msgstr "Gitter ausblenden" #: ..\../main/tools/metricgridtool.cpp:252 msgid "Show Grid" msgstr "Gitter anzeigen" #: ..\../main/tools/openfiletool.cpp:28 msgid "Open File" msgstr "Datei öffnen" #: ..\../main/tools/pacsuploadtool.cpp:54 msgid "Send to PACS..." msgstr "Zum PACS senden …" #: ..\../main/tools/pixelsbluringtool.cpp:59 msgid "Unset pixels blurring" msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:61 #, fuzzy msgid "Set pixels blurring" msgstr "Nach Benutzer festlegen" #: ..\../main/tools/queryretrievehistorytool.cpp:25 msgid "PACS Q/R" msgstr "" #: ..\../main/tools/queryretrievetool.cpp:94 #: ..\../main/tools/searchginkgocloudhistorytool.cpp:28 msgid "Search Ginkgo Cloud" msgstr "In der Ginkgo Cloud suchen" #: ..\../main/tools/rotateandfliptool.cpp:151 msgid "Undo rotate and flip" msgstr "Drehen und Spiegeln rückgängig machen" #: ..\../main/tools/rotateandfliptool.cpp:153 #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "Drehen um 90°" #: ..\../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "Gegen den Uhrzeigersinn" #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "Im Uhrzeigersinn" #: ..\../main/tools/rotateandfliptool.cpp:156 msgid "Flip horizontal" msgstr "Horizontal spiegeln" #: ..\../main/tools/rotateandfliptool.cpp:157 msgid "Flip vertical" msgstr "Vertikal spiegeln" #: ..\../main/tools/sendpacstool.cpp:34 msgid "Send to PACS" msgstr "Zum PACS senden" #: ..\../main/tools/sendpacstool.cpp:70 msgid "Sending to PACS..." msgstr "Es wird zum PACS gesendet …" #: ..\../main/tools/showtagstool.cpp:42 msgid "Hide DICOM inspector" msgstr "DICOM-Inspektor ausblenden" #: ..\../main/tools/showtagstool.cpp:44 msgid "Show DICOM inspector" msgstr "DICOM-Inspektor anzeigen" #: ..\../main/tools/simpleprinttool.cpp:119 #, fuzzy msgid "Image printing" msgstr "Bild exportieren …" #: ..\../main/tools/simpleprinttool.cpp:224 #, fuzzy msgid "Page setup" msgstr "Einrichten …" #: ..\../main/tools/simpleprinttool.cpp:225 #, fuzzy msgid "Print preview" msgstr "Drucken" #: ..\../main/tools/simpleprinttool.cpp:272 #, fuzzy msgid "Print image" msgstr "Drucken" #: ..\../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "Automatische Berechnung" #: ..\../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "Größe auf Bildschirmauflösung skalieren" #: ..\../main/tools/undotool.cpp:110 msgid "Redo" msgstr "Erneut" #: ..\../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "Endlosschleife deaktivieren" #: ..\../main/tools/videotool.cpp:153 msgid "Enable loop" msgstr "Endlosschleife aktivieren" #: ..\../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "%.1f Bilder/Sek" #: ..\../main/tools/windowlayouttool.cpp:267 msgid "Add column" msgstr "Spalte hinzufügen" #: ..\../main/tools/windowlayouttool.cpp:268 msgid "Add row" msgstr "Zeile hinzufügen" #: ..\../main/tools/windowlayouttool.cpp:270 msgid "Remove column" msgstr "Spalte entfernen" #: ..\../main/tools/windowlayouttool.cpp:271 msgid "Remove row" msgstr "Zeile entfernen" #: ..\../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "1x1 Ansicht" #: ..\../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "1x2 Ansicht" #: ..\../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "2x1 Ansicht" #: ..\../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "2x2 Ansicht" #: ..\../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "3x3 Ansicht" #: ..\../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "4x4 Ansicht" #: ..\../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "Werkzeugmodul nach Verwerfen der ToolsRegistry immer noch registriert" #: ..\../main/toolsystem/toolsregistry.cpp:82 msgid "The tool is already registered" msgstr "Das Werkzeug ist bereits registriert" #: ..\../main/toolsystem/toolsregistry.cpp:187 msgid "The module " msgstr "Das Modul " #: ..\../resources/ginkgoresourcesmanager.cpp:49 msgid "Unable to load PNG bitmap resource" msgstr "PNG-Bitmap-Ressource konnte nicht geladen werden" #: ..\../resources/ginkgoresourcesmanager.cpp:56 msgid "Unable to load PNG image resource" msgstr "PNG-Bild-Ressource konnte nicht geladen werden" #: ..\../resources/ginkgoresourcesmanager.cpp:63 msgid "Unable to load GIF animation resource" msgstr "GIF-Animation-Ressource konnte nicht geladen werden" #: ..\../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "Der Kalibrationswert muß eine Dezimalzahl sein" #: ..\../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "Kalibrierungswert ist zu niedrig" #: ..\../widgets/gui/calibracion.cpp:219 msgid "Enter the calibration value" msgstr "Geben Sie den Kalibrierungswert ein" #: ..\../widgets/gui/calibracion.cpp:225 msgid "The calibration value is too low" msgstr "Der Kalibrationswert ist zu niedrig" #: ..\../widgets/gui/calibracion.cpp:229 msgid "The calibration value is too high" msgstr "Der Kalibrationswert ist zu hoch" #: ..\../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "Kalibriere..." #: ..\../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "Abstand" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "Micron" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "Millimeter" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "Zentimeter" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "Meter" #: ..\../widgets/gui/selecciontextobase.cpp:26 msgid "Note" msgstr "Anmerkung" #: ..\../widgets/wangulo.cpp:1101 ..\../widgets/wangulo.cpp:1103 msgid "Type" msgstr "Art" #: ..\../widgets/wangulo.cpp:1101 msgid "Normal" msgstr "Normal" #: ..\../widgets/wangulo.cpp:1103 msgid "Cobb" msgstr "Cobb" #: ..\../widgets/welipse.cpp:721 ..\../widgets/wfreeform.cpp:470 #: ..\../widgets/wpolygon.cpp:574 #, fuzzy msgid "Center (I)" msgstr "Vertex (I)" #: ..\../widgets/welipse.cpp:727 ..\../widgets/wfreeform.cpp:476 #: ..\../widgets/wpolygon.cpp:580 #, fuzzy msgid "Center (M)" msgstr "Vertex (M)" #: ..\../widgets/welipse.cpp:762 ..\../widgets/welipse.cpp:766 msgid "Greater Radius" msgstr "" #: ..\../widgets/welipse.cpp:763 ..\../widgets/welipse.cpp:767 msgid "Lower Radius" msgstr "" #: ..\../widgets/wfreeform.cpp:482 ..\../widgets/wpolygon.cpp:586 #, fuzzy msgid "Number of Vertex" msgstr "Vertex (I)" #: ..\../widgets/wpunto.cpp:353 msgid "Position (I)" msgstr "Position (I)" #: ..\../widgets/wpunto.cpp:358 msgid "Position (M)" msgstr "Position (M)" #: ..\../widgets/wrule.cpp:558 msgid "Image Calibration" msgstr "Bildkalibrierung" #: ..\../widgets/wrule.cpp:663 msgid "Length" msgstr "Länge" #: ..\../widgets/wrule.cpp:668 msgid "Points (I)" msgstr "Punkte (I)" #: ..\../widgets/wrule.cpp:675 msgid "Points (M)" msgstr "Punkte (M)" #: ..\../widgets/wtextbox.cpp:445 msgid "Default text" msgstr "Standardtext" #: ..\../wx/gnkinforme/gnkinformebase.cpp:41 msgid "Commit date" msgstr "Einreichdatum" #: ..\../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "%d.%m.%Y" #: ..\../wx/gnkinforme/gnkinformebase.cpp:214 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "Eingereicht" #: ..\../wx/gnkinforme/gnkinformebase.cpp:219 msgid "Modified" msgstr "Geändert" #: ..\../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "Nicht übertragen" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "644654645" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:130 msgid "Commit inform" msgstr "Einreichkommentar" #: ..\../wx/propiedades/wxpropiedades.cpp:30 msgid "Properties of " msgstr "Eigenschaften von " #: ..\../wx/propiedades/wxpropiedadesbase.cpp:31 #, fuzzy msgid "Widget's Name" msgstr "Oberflächenelement löschen" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "< Vo&riger" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "&Abbrechen" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3701 msgid "Regular expression invalid: '" msgstr "Regulärer Ausdruck ungültig: '" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "" "REGEXP wurde mit der falschen Anzahl Argumenten aufgerufen: %d anstatt 2." #: ..\../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" "Logischer Fehler: Die Studie ist keinem existierenden Patienten im Modell " "zugeordnet" #: ..\../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" "Logischer Fehler: Die Serie ist keiner existierenden Studie im Modell " "zugeordnet" #: ..\../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" "Logischer Fehler: Das Bild ist keiner existierenden Serie im Modell " "zugeordnet" #: ..\../commands/dialogopathssobreescribirbase.h:56 #, fuzzy msgid "Overwrite Paths" msgstr "Überschreiben" #: ..\../ginkgopro/ginkgo_pro_defines.h:21 msgid "Professional DICOM CADx environment" msgstr "Professionelle DICOM CADx-Umgebung" #: ..\../main/controllers/dcmtk/dicomservers.h:39 msgid "Server not found" msgstr "Server nicht gefunden" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:99 #, fuzzy msgid "DICOM Query/Retrieve" msgstr "Unbekannte Abfragetiefe" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:123 msgid "Not found" msgstr "Nicht gefunden" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:418 msgid "Advanced Settings" msgstr "Erweiterte Einstellungen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:570 msgid "Edit profile" msgstr "Profil bearbeiten" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:665 msgid "Add/Edit Location" msgstr "Standort hinzufügen/bearbeiten" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:784 msgid "Add window/level" msgstr "Fenster/Ebene hinzufügen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 msgid "Add tag" msgstr "Markierung hinzufügen" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 #, fuzzy msgid "Setup window position" msgstr "Position einrichten …" #: ..\../main/gui/countdownmessage/countdownmessagebase.h:61 #, fuzzy msgid "Closing" msgstr "Ginkgo CADx wird geschlossen" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 msgid "DICOM Dir configuration" msgstr "DICOM-Verzeichniskonfiguration" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:70 msgid "Open Ginkgo Cloud" msgstr "Ginkgo Cloud öffnen" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:123 msgid "Ginkgo Cloud search" msgstr "Ginkgo Cloud-Suche" #: ..\../main/gui/history3/confirmdeletedialog.h:24 msgid " from History?" msgstr " vom Verlauf?" #: ..\../main/gui/history3/historypanel3base.h:100 msgid "Medical history" msgstr "Anamnese" #: ..\../main/gui/history3/historypanel3base.h:161 msgid "Open With ..." msgstr "Öffnen mit …" #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Select a View" msgstr "Ansicht auswählen" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 msgid "Message detail" msgstr "Nachrichtendetails" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 msgid "Log node" msgstr "Knoten protokollieren" #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:87 msgid "Closing Ginkgo CADx" msgstr "Ginkgo CADx wird geschlossen" #: ..\../main/gui/paneltags/paneltagsbase.h:57 msgid "DICOM Inspector" msgstr "DICOM-Inspektor" #: ..\../main/license.h:31 msgid "Open Source DICOM CADx environment" msgstr "Open Source DICOM-System CADx" #: ..\../widgets/gui/calibracionbase.h:65 msgid "Calibration" msgstr "Kalibriere" #: ..\../wx/propiedades/wxpropiedadesbase.h:62 msgid "Properties of ..." msgstr "Eigenschaften von …" #: ..\../wx/thumbnailctrl/thumbnailwidget.h:44 msgid "Image Browser Dialog" msgstr "Bilder-Browser-Dialogfenster" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.h:60 msgid "Test title" msgstr "Test-Titel" #~ msgid "" #~ "Unexpected Error exporting, the view is not allowed to export to the " #~ "format selected" #~ msgstr "" #~ "Unerwarteter Fehler beim Exportieren – die Ansicht ist nicht berechtigt, " #~ "in das ausgewählte Format zu exportieren" #~ msgid "Failed to store the file, check permissions on the directory" #~ msgstr "" #~ "Konnte die Datei nicht speichern. Überprüfen Sie die Schreibrechte in dem " #~ "Verzeichnis" #~ msgid "The key files will not be exported" #~ msgstr "Die Schlüsseldateien werden nicht exportiert" #~ msgid "Current" #~ msgstr "Aktuell" #~ msgid "All" #~ msgstr "Alle" #~ msgid "JPG" #~ msgstr "JPG" #~ msgid "BMP" #~ msgstr "BMP" #~ msgid "PNG" #~ msgstr "PNG" #~ msgid "Content" #~ msgstr "Inhalt" #~ msgid "Include annotation Widgets" #~ msgstr "Anmerkungs-Felder einfügen" #~ msgid "Tile Horizontally" #~ msgstr "Waagerecht kacheln" #~ msgid "Tile Vertically" #~ msgstr "Senkrecht kacheln" #~ msgid "Grid (two columns)" #~ msgstr "Gitter (2 Spalten)" #~ msgid "Grid (three columns)" #~ msgstr "Gitter (3 Spalten)" #~ msgid "Grid organization" #~ msgstr "Rasteranordnung" #~ msgid "Color" #~ msgstr "Farbe" #~ msgid "Vertex (I)" #~ msgstr "Vertex (I)" #~ msgid "Vertex (M)" #~ msgstr "Vertex (M)" #~ msgid "0" #~ msgstr "0" #~ msgid "Select PACS servera" #~ msgstr "PACS-Server auswählen" #~ msgid "Checking program updates..." #~ msgstr "Programmaktualisierungen werden gesucht …" #~ msgid "Untitled" #~ msgstr "Unbenannt" #~ msgid "UID" #~ msgstr "UID" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">" #~ msgstr ">" #~ msgid "<" #~ msgstr "<" #~ msgid "<<" #~ msgstr "<<" #~ msgid "Patient's Id" #~ msgstr "Patienten-ID" #~ msgid "You are not allowed to download this kind of modalities (" #~ msgstr "" #~ "Sie sind nicht berechtigt, diese Art von Modalitäten herunterzuladen (" #~ msgid "Searching..." #~ msgstr "Es wird gesucht …" #~ msgid "unknown column" #~ msgstr "Unbekannte Spalte" #~ msgid "URL" #~ msgstr "URL" #~ msgid "Pending tasks" #~ msgstr "Offene Aufgaben" #~ msgid "Restart pending tasks" #~ msgstr "Offene Aufgabe erneut ausführen" #~ msgid "Remove pending tasks" #~ msgstr "Offene Aufgaben löschen" #~ msgid "Advanced tasks management..." #~ msgstr "Erweiterte Aufgabenverwaltung …" #~ msgid "You can't remove series with pending tasks, cancel tasks and retry" #~ msgstr "" #~ "Serien mit offenen Aufgaben können nicht entfernt werden, löschen Sie die " #~ "Aufgaben und versuchen es erneut" #~ msgid "Are you sure you want to delete task?" #~ msgstr "Soll die Aufgabe wirklich gelöscht werden?" #~ msgid "Delete tasks" #~ msgstr "Aufgaben löschen" #~ msgid "Sort by" #~ msgstr "Sortieren nach" #~ msgid "Pateint id" #~ msgstr "Patienten-ID" #~ msgid "Include Annotations" #~ msgstr "Inklusive Ecknotizen" #~ msgid "Zoom" #~ msgstr "Vergrößerung" #~ msgid "Options" #~ msgstr "Optionen" #~ msgid "Images per sheet" #~ msgstr "Bilder pro Blatt" #~ msgid "Print ..." #~ msgstr "Drucken …" #~ msgid "Completed" #~ msgstr "Fertiggestellt" #~ msgid "Delete task" #~ msgstr "Aufgabe löschen" #~ msgid "Restart task" #~ msgstr "Aufgabe erneut ausführen" #~ msgid "Delete all" #~ msgstr "Alle löschen" #~ msgid "Are you sure you want to delete tasks?" #~ msgstr "Möchten Sie die Aufgaben wirklich löschen?" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Point Size" #~ msgstr "Punktgröße" #~ msgid "Family" #~ msgstr "Familie" #~ msgid "Underline" #~ msgstr "Unterstrichen" #~ msgid "Make a selection:" #~ msgstr "Triff eine Auswahl:" #~ msgid "Categorized Mode" #~ msgstr "Kategorisierter Modus" #~ msgid "Alphabetic Mode" #~ msgstr "Alphabetischer Modus" #~ msgid "False" #~ msgstr "Falsch" #~ msgid "True" #~ msgstr "Wahr" #~ msgid "Unspecified" #~ msgstr "Nicht angegeben" #~ msgid "" #~ "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", " #~ "NOT \"%s\"." #~ msgstr "" #~ "Typoperation »%s« gescheitert: Eigenschaft mit der Bezeichnung »%s« ist " #~ "vom Typ »%s«, jedoch NICHT »%s«." #~ msgid "Error in resource: %s" #~ msgstr "Fehler in der Ressource: %s" #~ msgid "Value must be %lld or higher" #~ msgstr "Wert muss %lld oder größer sein" #~ msgid "Value must be %llu or higher" #~ msgstr "Wert muss %llu oder größer sein" #~ msgid "Value must be %llu or less" #~ msgstr "Wert muss %llu oder kleiner sein" #~ msgid "Value must be %f or higher" #~ msgstr "Wert muss %f oder größer sein" #~ msgid "Value must be %f or less" #~ msgstr "Wert muss %f oder kleiner sein" #~ msgid "Not %s" #~ msgstr "Nicht %s" #~ msgid "Choose a directory:" #~ msgstr "Verzeichnis wählen:" #~ msgid "Choose a file" #~ msgstr "Wählen Sie eine Datei aus" #~ msgid "All files (*.*)|*.*" #~ msgstr "Alle Dateien(*.*)|*.*" #~ msgid "Update" #~ msgstr "Aktualisieren" #~ msgid "Up" #~ msgstr "Hoch" #~ msgid "Down" #~ msgstr "Herunter" #~ msgid "Page %i" #~ msgstr "Seite %i" #~ msgid "Configure proxy" #~ msgstr "Proxy-Server konfigurieren" #~ msgid "Use system settings" #~ msgstr "Systemeinstellungen verwenden" #~ msgid "Manual configuration of proxy:" #~ msgstr "Manuelle Proxy-Konfiguration:" #~ msgid "Host:" #~ msgstr "Host:" #~ msgid "Port:" #~ msgstr "Port:" #~ msgid "Password:" #~ msgstr "Passwort:" #~ msgid "Authenticate" #~ msgstr "Legitimieren" #~ msgid "Show / Hide DICOM tags panel" #~ msgstr "DICOM-Markierungen ein-/ausblenden" #~ msgid "Updates" #~ msgstr "Aktualisierungen" #~ msgid "Visualization" #~ msgstr "Histogrammangleichung" #~ msgid "Reset window level and zoom" #~ msgstr "Fenster, Ebene und Vergrößerung zurücksetzen" #~ msgid "Dicomize images..." #~ msgstr "Gewählte Bilder" #~ msgid "Double click to edit" #~ msgstr "Doppelklicken zum Ändern" #~ msgid "Uploading to the PACS ..." #~ msgstr "Es wird zum PACS hochgeladen …" #~ msgid "" #~ "No results obtained. Maybe you have a wrong PACS server configuration" #~ msgstr "" #~ "Keine Ergebnisse erhalten. Möglicherweise haben Sie eine fehlerhafte PACS-" #~ "Konfiguration" #~ msgid "" #~ "No results obtained in PACS retrieve.\n" #~ "Maybe study doesn't exist or you have a wrong PACS server configuration." #~ msgstr "" #~ "Keine Ergebnisse erhalten. Möglicherweise haben Sie eine fehlerhafte PACS-" #~ "Konfiguration" #~ msgid "Downloads" #~ msgstr "Downloads" #~ msgid "Clean" #~ msgstr "Liste leeren" #~ msgid "Starting..." #~ msgstr "Es wird gestartet …" #~ msgid "" #~ "Diagnostic files can't be opened, you have to open the diagnosed series" #~ msgstr "" #~ "Diagnosedateien können nicht direkt geöffnet werden, Sie müssen die " #~ "diagnostizierte Serie öffen" #~ msgid "Error: " #~ msgstr "Fehler: " #~ msgid "Error: No images were downloaded" #~ msgstr "Fehler: Es wurden keine Bilder heruntergeladen" #~ msgid "Finished" #~ msgstr "Fertig" #~ msgid "Play" #~ msgstr "Wiedergeben" #~ msgid "Retry" #~ msgstr "Wiederholen" #~ msgid "Successful connection test." #~ msgstr "Erfolgreicher Verbindungstest." #~ msgid "The service did not respond properly:" #~ msgstr "Der Dienst antwortete nicht erwartungsgemäß:" #~ msgid "Error starting network support" #~ msgstr "Fehler beim Starten der Netzwerkunterstützung" #~ msgid "The selected directory does must be empty" #~ msgstr "Der gewählte Ordner kann nicht geöffnet werden" #~ msgid "What do you want to do?" #~ msgstr "Wähle Serie, die hochgeladen werden soll" #~ msgid "Choose the import profile" #~ msgstr "Wählen Sie das Importprofil" #~ msgid "Import profile" #~ msgstr "Profil importieren" #~ msgid "An error ocurred loading Ginkgo News check your internet connection" #~ msgstr "" #~ "Fehler beim Laden von »Ginkgo News« aufgetreten, bitte Internetverbindung " #~ "prüfen" #~ msgid "Welcome" #~ msgstr "Willkommen" #~ msgid "Twitter" #~ msgstr "Twitter" #~ msgid "%d/%m/%Y %H:%M:%S" #~ msgstr "%d.%m.%Y %k:%M:%S" #~ msgid "Loading modules ..." #~ msgstr "Lade Module ..." #~ msgid "" #~ "\n" #~ "There are %d files that overwrite existing files" #~ msgstr "" #~ "\n" #~ "Es sind %d Dateien vorhanden, die existierende Dateien überschreiben" #~ msgid "Finished .." #~ msgstr "Fertig .." #~ msgid "Merging file %d of %d" #~ msgstr "Füge Datei %d von %d ein" #~ msgid "Column organization (2 columns)" #~ msgstr "Spaltenaufteilung (2 Spalten)" #~ msgid "Display Options" #~ msgstr "Optionen anzeigen" #~ msgid "Close Panel" #~ msgstr "Schließe Panel" #~ msgid "Close All" #~ msgstr "Alle schließen" #~ msgid "Close all tabs" #~ msgstr "Schließe alle Reiter" #~ msgid "Grid Organization" #~ msgstr "Gitterorganisation" #~ msgid "Error deleting the Study of database:\n" #~ msgstr "Fehler beim Löschen der Studie aus der Datenbank:\n" #~ msgid "Error deleting file from de database: \n" #~ msgstr "Fehler beim Löschen der Datei aus der Datenbank: \n" #~ msgid "Error deleting file from database:\n" #~ msgstr "Fehler beim Löschen der Datei aus der Datenbank:\n" #~ msgid "Activate" #~ msgstr "Aktivieren" #~ msgid "Not loaded" #~ msgstr " nicht erlaubt" #~ msgid "Export global..." #~ msgstr "Exportieren..." #~ msgid "Import global..." #~ msgstr "Importieren ..." #~ msgid "XML-RPC Server" #~ msgstr "XML-RPC-Server" #~ msgid "Enable XML-RPC server" #~ msgstr "Aktiviere XML-RPC-Server" #~ msgid "" #~ "Enable/Disable XML RPC Server for listening remote operations from EHR " #~ "System" #~ msgstr "" #~ "Aktiviere/Deaktiviere XML-RPC-Server um Anfragen von Praxisprogrammen " #~ "empfangen zu können" #~ msgid "Plugin's path" #~ msgstr "Pluginpfad" #~ msgid "Obtain extensions..." #~ msgstr "Erweiterungen werden besorgt …" #~ msgid "1.0" #~ msgstr "1.0" #~ msgid "Select files you want to export" #~ msgstr "Wählen Sie die Dateien, die hochgeladen werden sollen" #~ msgid "Select Series you want to export" #~ msgstr "Wähle Serie, die hochgeladen werden soll" #~ msgid "Export diagnostic" #~ msgstr "Exportiere die Diagnostik" #~ msgid "No description" #~ msgstr "Keine Beschreibung" #~ msgid "Send to PACS server" #~ msgstr "An PACS-Server senden" #~ msgid "All modalities" #~ msgstr "Modalitäten" #~ msgid "Last week" #~ msgstr "Letzte Woche" #~ msgid "" #~ "\n" #~ "There aren't any stored study that matches with the search filter.\n" #~ msgstr "" #~ "\n" #~ "Es gibt keine Studien, die mit dem Suchfilter übereinstimmen\n" #~ msgid "" #~ "\n" #~ "There is no size in the medical history to show every patients\n" #~ msgstr "" #~ "\n" #~ "Es gibt keine Grösse in der Krankengeschichte, um alle Patienten " #~ "anzuzeigen\n" #~ msgid "" #~ "\n" #~ "Try using filters or collapsing nodes and refresh search\n" #~ msgstr "" #~ "\n" #~ "Versuchen Sie die Nutzung von Filtern oder das Verbergen von Knoten und " #~ "aktualisieren Sie die Suche\n" #~ msgid "Acquiring a new DICOM study" #~ msgstr "Akquiriere eine neue DICOM-Studie" #~ msgid "&Open File" #~ msgstr "&Datei öffnen" #~ msgid "&Open Folder" #~ msgstr "&Verzeichnis öffnen" #~ msgid "Acquire from a local folder" #~ msgstr "Akquiriere aus einem lokalen Verzeichnis" #~ msgid "&Import ..." #~ msgstr "&Importieren ..." #~ msgid "12412012 Q" #~ msgstr "12412012 Q" #~ msgid "31/08/1983" #~ msgstr "31.08.1983" #~ msgid "Javier Tovar Velasco" #~ msgstr "Javier Tovar Velasco" #~ msgid "10:20" #~ msgstr "10:20" #~ msgid "31/02/2010" #~ msgstr "31.02.2010" #~ msgid "CT" #~ msgstr "CT" #~ msgid "Filters" #~ msgstr "Filter" #~ msgid "" #~ msgstr "" #~ msgid "&Delete Patient from History" #~ msgstr "&Lösche Patient aus dem Verlauf" #~ msgid "Failed to remove patient, you have to close opened studies" #~ msgstr "" #~ "Konnte den Patienten nicht entfernen. Sie müssen offene Studien schließen" #~ msgid "We want to thanks " #~ msgstr "Wir danken " #~ msgid " for all their support in Ginkgo CADx creation!" #~ msgstr " für die Unterstützung bei der Entwicklung von Ginkgo CADx!" #~ msgid "Translators" #~ msgstr "Übersetzer" #~ msgid "Japanese: Noriya Yokohama" #~ msgstr "Japanisch: Noriya Yokohama" #~ msgid "German: Sebastian Hilbert" #~ msgstr "Deutsch: Sebastian Hilbert" #~ msgid "Turkish: zeugma (sunder67)" #~ msgstr "Türkisch: zeugma (sunder67)" #~ msgid "Spanish: JFLP (jluna80)" #~ msgstr "Spanisch: JFLP (jluna80)" #~ msgid "Greetings" #~ msgstr "Grüße" #~ msgid "Ross Boswell: PACS compliance testing" #~ msgstr "Ross Boswell: PACS-Compliance-Tests" #~ msgid "Andre Alvim Tolentino: Printing issues" #~ msgstr "Andre Alvim Tolentino: Druckprobleme" #~ msgid "XmlRpc++" #~ msgstr "XmlRpc++" #~ msgid "" #~ "\n" #~ "Ginkgo CADx license agreement \n" #~ "-----------------------------------\n" #~ "\n" #~ "This version is a trial version for , and therefore its use is " #~ "restricted for this purpose.\n" #~ "\n" #~ "\n" #~ "\n" #~ "S.L MetaEmotion Healthcare\n" #~ "http://healthcare.metaemotion.com/en/welcome\n" #~ "contacto@metaemotion.com" #~ msgstr "" #~ "\n" #~ "Ginkgo CADx Lizenzvereinbarung \n" #~ "-----------------------------------\n" #~ "\n" #~ "Diese Version ist eine Testversion für und daher ist die Nutzung " #~ "auf den Zweck beschränkt.\n" #~ "\n" #~ "\n" #~ "\n" #~ "S.L MetaEmotion Healthcare\n" #~ "http://healthcare.metaemotion.com/en/welcome\n" #~ "contacto@metaemotion.com" #~ msgid "Acquire from a removable unit" #~ msgstr "Akquiriere aus einem lokalen Verzeichnis" #~ msgid "Import Images" #~ msgstr "Bilder importieren" #~ msgid "DICOM &acquisition from PACS" #~ msgstr "DICOM &Aquisition" #~ msgid "&Import images..." #~ msgstr "&Importieren von Bildern" #~ msgid "&Save" #~ msgstr "&Speichern" #~ msgid "Export current series..." #~ msgstr "Exportiere Dateien..." #~ msgid "Export the active study to other formats" #~ msgstr "Exportiere die aktive Studie in ein anderes Format" #~ msgid "Print..." #~ msgstr "Drucken ..." #~ msgid "Get extensions ..." #~ msgstr "Rufe Erweiterungen ab" #~ msgid "Start page ..." #~ msgstr "Seite wird gestartet …" #~ msgid "Ginkgo CADx start page ..." #~ msgstr "Startseite von »Ginkgo CADx« …" #~ msgid "About &Ginkgo CADx ..." #~ msgstr "&Über Ginkgo CADx ..." #~ msgid "About Ginkgo CADx ..." #~ msgstr "Über Ginkgo CADx ..." #~ msgid "Ginkgo CADx settings" #~ msgstr "Ginkgo CADx Einstellungen" #~ msgid "Image" #~ msgstr "Bild" #~ msgid "3D tools" #~ msgstr "3D Werkzeuge" #~ msgid "Select Series you want to upload" #~ msgstr "Wähle Serie, die hochgeladen werden soll" #~ msgid "Select files you want to upload" #~ msgstr "Wählen Sie die Dateien, die hochgeladen werden sollen" #~ msgid "PACS server" #~ msgstr "PACS-Server" #~ msgid "Assistant to send files to PACS" #~ msgstr "Assistent zum Senden von Dateien zum PACS" #~ msgid "Show On Startup" #~ msgstr "Beim Start anzeigen" #~ msgid "Decrease" #~ msgstr "Verringern" #~ msgid "Decrease value" #~ msgstr "Wert verringern" #~ msgid "Increase" #~ msgstr "Erhöhen" #~ msgid "Increase value" #~ msgstr "Wert erhöhen" #~ msgid "Factor (0.50)" #~ msgstr "Faktor (0.50)" #~ msgid "Factor" #~ msgstr "Faktor" #~ msgid "Factor (%.2f)" #~ msgstr "Faktor (%.2f)" #~ msgid "Deleting a Column" #~ msgstr "Lösche eine Spalte" #~ msgid "Deleting a Row" #~ msgstr "Lösche eine Zeile" #~ msgid "1x1" #~ msgstr "1×1" #~ msgid "1x2" #~ msgstr "1x2" #~ msgid "2x1" #~ msgstr "2x1" #~ msgid "2X2" #~ msgstr "2x2" #~ msgid "3x3" #~ msgstr "3x3" #~ msgid "4x4" #~ msgstr "4x4" #~ msgid "Zoom -" #~ msgstr "Verkleinern" #~ msgid "Ginkgo CADx Settings" #~ msgstr "Ginkgo CADx Einstellungen" #~ msgid "About Ginkgo CADx..." #~ msgstr "Über Ginkgo CADx ..." #~ msgid "Confirm the removal of the server" #~ msgstr "Bestätige das Entfernen des Servers" #~ msgid "PACS Servers" #~ msgstr "PACS-Server" #~ msgid "Test server" #~ msgstr "Testserver" #~ msgid "PACS Server" #~ msgstr "PACS-Server" #~ msgid " WL" #~ msgstr " WL" #~ msgid " WW" #~ msgstr " WW" #~ msgid " is compatible with Ginkgo CADx " #~ msgstr " ist kompatibel mit Ginkgo CADx " #~ msgid "Anonymized tags default value" #~ msgstr "Voreinstellte Werte anonymisierter DICOM tags" #~ msgid "Are you sure to delete the tag" #~ msgstr "Sind Sie sicher, dass Sie das Tag löschen möchten ?" #~ msgid "Auto Levels" #~ msgstr "Ebenen automatisch" #~ msgid "Birthday" #~ msgstr "Geburtstag" #~ msgid "Breaking the world" #~ msgstr "Zerbreche die Welt" #~ msgid "Cancels current task" #~ msgstr "Bricht die aktuelle Aufgabe ab" #~ msgid "Closing windows..." #~ msgstr "Schließe Fenster..." #~ msgid "Code:" #~ msgstr "Code:" #~ msgid "Configure tags to anonymize" #~ msgstr "Konfiguriere zu anomymisierende Tags" #~ msgid "Correction" #~ msgstr "Korrektur" #~ msgid "Could not get the associated module" #~ msgstr "Konnte das verknüpfte Modul nicht erhalten" #~ msgid "Creating new images ..." #~ msgstr "Erzeuge neue Bilder ..." #~ msgid "Date: " #~ msgstr "Datum: " #~ msgid "Default Value" #~ msgstr "Standardwert" #~ msgid "Description: " #~ msgstr "Beschreibung: " #~ msgid "Disengage" #~ msgstr "Löse" #~ msgid "Duplicate Tool" #~ msgstr "Duplizierungswerkzeug" #~ msgid "Edge preserving smooth filter" #~ msgstr "Kantenerhaltener Glättungsfilter" #~ msgid "Edges" #~ msgstr "Kanten" #~ msgid "Environment" #~ msgstr "Umgebung" #~ msgid "Error in receiving the response" #~ msgstr "Fehler beim Empfang der Antwort" #~ msgid "Error when making SSL connection" #~ msgstr "Fehler beim Erstellen der SSL-Verbindung" #~ msgid "Error when making the request, writing incomplete" #~ msgstr "Fehler beim Anfordern, unvollständig geschrieben" #~ msgid "Export Certificate" #~ msgstr "Exportiere Zertifikat" #~ msgid "Extension " #~ msgstr "Erweiterung " #~ msgid "Extensions Support" #~ msgstr "Unterstützung von Erweiterungen" #~ msgid "" #~ "Failed to perform the HTTP request, the server returned the error code " #~ msgstr "" #~ "Konnte HTTP-Anfrage nicht ausführen. Der Server gab eine Fehlermeldung " #~ "zurück " #~ msgid "Failed to save the file" #~ msgstr "Konnte die Datei nicht speichern" #~ msgid "Fatal error, can not write the history database" #~ msgstr "Ausnahmefehler, kann die Verlausdatenbank nicht erstellen" #~ msgid "Fill the fields to continue." #~ msgstr "Füllen Sie die Felder aus um fortzufahren." #~ msgid "Filter menu" #~ msgstr "Filtermenü" #~ msgid "Gaussian 3x3" #~ msgstr "GAUSSisch 3x3" #~ msgid "Gaussian smooth filter" #~ msgstr "GAUSS-Glättungsfilter" #~ msgid "Ginkgo CADx license agreement version " #~ msgstr "Ginkgo CADx Lizenzvereinbarung " #~ msgid "Id: " #~ msgstr "Kennung: " #~ msgid "It has been read a \"medico\" tag without identifiers" #~ msgstr "\"Arzt\"-Markierung ohne IDs gelesen" #~ msgid "It was impossible to connect server " #~ msgstr "Es war unmöglich, eine Verbindung herzustellen mit dem Server " #~ msgid "Levels" #~ msgstr "Ebenen" #~ msgid "License" #~ msgstr "Lizenz" #~ msgid "License Data" #~ msgstr "Lizenzdaten" #~ msgid "Magnifying glass" #~ msgstr "Lupe" #~ msgid "Malformed server response" #~ msgstr "Kaputte Serverantwort" #~ msgid "Median smooth filter" #~ msgstr "Median-Glättungsfilter" #~ msgid "Merging files..." #~ msgstr "Führe Dateien zusammen ..." #~ msgid "Modify" #~ msgstr "Bearbeiten" #~ msgid "Name: " #~ msgstr "Name: " #~ msgid "No options" #~ msgstr "Keine Optionen" #~ msgid "No results obtained" #~ msgstr "Keine Ergebnisser erhalten" #~ msgid "Not specified the server protocol" #~ msgstr "Server-Protokoll nicht angegeben" #~ msgid "Null Tool" #~ msgstr "Null-Werkzeug" #~ msgid "Opening series..." #~ msgstr "Serie öffnen..." #~ msgid "Organization" #~ msgstr "Organisation" #~ msgid "PEM file (*.pem) | *.pem" #~ msgstr "PEM-Datei (*.pem) | *.pem" #~ msgid "Poligono" #~ msgstr "Polygone" #~ msgid "Reason:" #~ msgstr "Grund:" #~ msgid "Redo " #~ msgstr "Erneut " #~ msgid "Remove finished" #~ msgstr "Entfernen abgeschlossen" #~ msgid "Reset Window/Level" #~ msgstr "Fenster/Ebene zurücksetzen" #~ msgid "Rss url is not valid check configuration" #~ msgstr "RSS-URL ist ungültig, bitte Konfiguration prüfen" #~ msgid "Sacyl (CyL, Spain)" #~ msgstr "Sacyl (CyL, Spain)" #~ msgid "Select the DICOM files you wish to upload" #~ msgstr "Wählen Sie die DICOM-Dateien, die hochgeladen werden sollen" #~ msgid "Select the server where the files will be sent" #~ msgstr "Wählen Sie den Server, an den die Dateien gesendet werden sollen" #~ msgid "Series UID: " #~ msgstr "UID der Serie: " #~ msgid "Sex: female" #~ msgstr "Geschlecht: weiblich" #~ msgid "Sex: male" #~ msgstr "Geschlecht: männlich" #~ msgid "Smooth" #~ msgstr "Glätten" #~ msgid "System Environment of Electronic Health Record" #~ msgstr "Systemumgebung der Elektronischen Karteikarte" #~ msgid "Tab Organization" #~ msgstr "Reiterorganisation" #~ msgid "Tags defined in settings" #~ msgstr "In den Einstellungen definierte Tags" #~ msgid "The CN field does not match the hostname" #~ msgstr "CN-Feld und Hostname stimmen nicht überein" #~ msgid "The certificate has not been verified" #~ msgstr "Das Zertifikat wurde nicht bestätigt" #~ msgid "" #~ "The following certificate has not been able to verify\n" #~ "Do you want to save to import into the system?" #~ msgstr "" #~ "Folgendes Zertifikat konnte nicht überprüft werden.\n" #~ "Möchten Sie es abspeichern, um es ins System zu importieren?" #~ msgid "The invocation XML is malformed" #~ msgstr "Aufruf-XML mißgestaltet" #~ msgid "The xml format is not correct" #~ msgstr "Das XML-Format ist nicht korrekt" #~ msgid "This files has to be overwritten" #~ msgstr "Diese Dateien müssen überschrieben werden" #~ msgid "URL for new extensions" #~ msgstr "URL für neue Erweiterungen" #~ msgid "Unsupported Protocol" #~ msgstr "Nicht unterstütztes Protokoll" #~ msgid "XML Files(*.xml)|*.xml" #~ msgstr "XML-Dateien (*.xml)|*.xml" #~ msgid "\"petition-id\" attribute expected at \"gnkworkflow\" scope" #~ msgstr "" #~ "Attribut »petition-id« wird erwartet in Gültigkeitsbereich »gnkworkflow«" #~ msgid "Abdomen" #~ msgstr "Unterleib" #~ msgid "Cranium" #~ msgstr "Schädel" #~ msgid "DICOM Dir has been created with a new version of Ginkgo CADx." #~ msgstr "" #~ "Das DICOM-Verzeichnis wurde mit einer neueren Version von Ginkgo CADX " #~ "erstellt." #~ msgid "Dicomize images" #~ msgstr "Bilder dicomisieren" #~ msgid "Download warning" #~ msgstr "Downloadwarnung" #~ msgid "" #~ "Error in interpreting the parameters of the command line. The file or " #~ "directory doesn't exist (" #~ msgstr "" #~ "Fehler beim Interprätieren der Kommandozeilenparameter. Die Datei oder " #~ "das Verzeichnis existieren nicht (" #~ msgid "" #~ "Ginkgo CADx has detected a default DICOM Dir created with an old version " #~ "of Ginkgo CADx" #~ msgstr "" #~ "Ginkgo CADx hat ein Standard-DICOM-Verzeichnis gefunden, das mit einer " #~ "älteren Version Ginkgo CADx erstellt wurde" #~ msgid "Lung" #~ msgstr "Lunge" #~ msgid "Mediastinum" #~ msgstr "Mediastinum" #~ msgid "Migrate..." #~ msgstr "Migrieren …" #~ msgid "Open again" #~ msgstr "Erneut öffnen" #~ msgid "Pixels bluring" #~ msgstr "Pixel für Glättung" #~ msgid "Remove old DICOM Dir after migration" #~ msgstr "Altes DICOM-Verzeichnis nach der Migration entfernen" #~ msgid "Reprocess Series" #~ msgstr "Serie erneut verarbeiten" #~ msgid "" #~ "Series were already in the download queue.\n" #~ "Do you want to force download?" #~ msgstr "" #~ "Serie ist bereits in der Download-Warteschlange.\n" #~ "Möchten Sie das Herunterladen erzwingen?" #~ msgid "Set pixels bluring" #~ msgstr "Pixel für Glättung festlegen" #~ msgid "Show metadatada" #~ msgstr "Meta-Daten anzeigen" #~ msgid "Spine" #~ msgstr "Wirbelsäule" #~ msgid "" #~ "Studies are already in the download queue.\n" #~ "Do you want to repeat download?" #~ msgstr "" #~ "Studien sind bereits in der Download-Warteschlange.\n" #~ "Möchten Sie das Herunterladen wiederholen?" #~ msgid "Study description" #~ msgstr "Beschreibung der Studie" #~ msgid "Study successfully sent to PACS" #~ msgstr "Studie erfolgreich zum PACS gesendet" #~ msgid "The following commands will abort if you close the application" #~ msgstr "" #~ "Folgende Befehle werden abgebrochen, wenn Sie die Anwendung schließen" #~ msgid "" #~ "The series selected is already open\n" #~ "Do you want to open it again?" #~ msgstr "" #~ "Ausgewählte Serie ist bereits geöffnet.\n" #~ "Möchten Sie sie erneut öffnen?" #~ msgid "The service did not respond correctly to the DICOM standard:" #~ msgstr "Der Dienst antwortete nicht entsprechend dem DICOM-Standard:" #~ msgid "This version is unabled to open it." #~ msgstr "Diese Version ist nicht in der Lage, es zu öffnen." #~ msgid "" #~ "Unable to reprocess this series. This series hasn't been dicomized with " #~ "Ginkgo CADx." #~ msgstr "" #~ "Diese Serie kann nicht wieder verarbeitet werden. Sie wurde nicht mit " #~ "Ginkgo CADx dicomisiert." #~ msgid "Vertebra" #~ msgstr "Wirbel" #~ msgid "Face Name" #~ msgstr "Oberflächenname" #~ msgid "Horizontal mosaic" #~ msgstr "Horizontales Mosaik" #~ msgid "No proxy for addresses containing:" #~ msgstr "Proxy umgehen für Adressen mit folgenden Inhalten:" #~ msgid "Page Setup ..." #~ msgstr "Seiteneinstellungen …" #~ msgid "Print image..." #~ msgstr "Bild drucken …" #~ msgid "Subsystem integration error: uninitialized result data container." #~ msgstr "" #~ "Subsystem-Integrationsfehler: Nicht initialisierter Container für " #~ "Ergebnisdaten." #~ msgid "Username:" #~ msgstr "Benutzername:" #~ msgid "Vertical mosaic" #~ msgstr "Vertikales Mosaik" #~ msgid "There are pending tasks, do you want to execute them?" #~ msgstr "Es gibt offene Aufgaben. Möchten Sie diese ausführen?" #~ msgid "Clean finished downloads" #~ msgstr "Download-Liste säubern" #~ msgid "Exception in component " #~ msgstr "Ausnahmefehler in Komponente " #~ msgid "" #~ "If you reprocess this series it will be uploaded to PACS server and \n" #~ "integration message will be resent to integration engine.\n" #~ "Do you want to continue?" #~ msgstr "" #~ "Wenn Sie diese Serie noch einmal verarbeiten, wird sie zum PACS-Server " #~ "hochgeladen \n" #~ "und die Integrationsnachricht wird erneut zum Integrationsrechner " #~ "gesendet. \n" #~ "Möchten Sie fortfahren?" #~ msgid "clockWise" #~ msgstr "Im Uhrzeigersinn" #~ msgid "counter-clockWise" #~ msgstr "Gegen den Uhrzeigersinn" ginkgocadx-3.8.7/cadxcore/lang/de/wxstd.mo000066400000000000000000004313761314736454600205110ustar00rootroot00000000000000)d9 r?)?+k|8 V`i |  ,Ě  *5 <I Xc it țЛٛߛ  '5LT eqzɜќ ל " (6<Zipv~  ҝ۝ !*.7 GSZ cp  Ǟ ўݞ &-5; DQgmtz ǟПٟ  4=FNV[y4$!*/H:x ԡءߡ   !%)-159=AE I T _ j u Ģ֢    (4CIOW#^/ţڣ3ܣ56F}ĤԤ  #>Unͥ3JZr ֦4.!P_y ƧЧԧ 6%\r"w":  %< D NYjϩ *Dcy!ժ"-41b( «ͫ"61=ot{  Ҭ߬ %?Ys0խۭ FA)_ܮ%#7"[*~(&ү%%6E|"?12 d$!ܱGb(~(-в%3$X p-ճ %,Rp)״ ,Le)~#'̵"1@Qav  ¶Ͷ߶ BU'f!+ܷ";&W#~)$̸&+ ? M [3g"չ$#; _+ (ͺ%$8 ]&~!&ǻ#"#5*Y!#ʼ мڼ /@H,c$ͽN*;Rf() 5C(Lu}$!׿%&#F j!4"Mp'! =![}!(";.[&'/# C-#q(9 E^9x  &<Phpt,{10% %1W^x}#/!# 0; LYi p | -  " 0~; ""8Q2jQ2v9"  "-)Wkpu)  &Gg 7 XfL,H^%| '0HyJ,$3 5?2[3$*..]y -"')0Q"9$05"Q&t"$85GU!/A11.c2).2Fy//%#8#\3"(%$B gT*("(K$t$'"?!]5$ 9+Z-"1#Q"u+' -,'Z"5'&#-JSx/+&(,O2|)-&&.U+s('-!=;_)32,3J-~$;)K2u!**=24p"( (3M S^ej p{ /  4 HT\|' k! #!#28P %*DI No' 2Ed~ /" B c' 6*Qaw+$7'2_)$3jL%+% //3_- ! . ; I*U1(#6Um66#8QX1u%!$!>`!z! &1X `j     #-6 ?L Uahn}  j2DUo%;QY6_ 0  # 0#;)_ | ^ h r ~    $0 9 E Q [ h t     $ /=O W b ny&  /6!?"aC '+.GPU]as  *&C,W51$g %%F![}') & ;H O]l*7!/ Q[n}*05 =8I( <Soty# 9N$k%$ $3 X $u  $  $  $; ` $}  $           $ / 0@ &q         "& 1I { 9 F  d /o #         ! '5 K Wcs  %09 BL[r H8  '2;J_hmu!3/# "D@   $-6FLRew}    /E_fOm  < Y ep%  )*T#cE?6IRdm'%*;f~ -1+J%v)  6!X^n u  +F`#{ /(,;0h)?zS()0!RoU8l' & D T /e       !(!;!V!p!!!!P!#"#?"c"v".#C#U#l## #!##'#$*&$Q$c$v$$$$0$%"%>%M%\B&&7&a&VK'O'@'Y3(#(((B()/)>)Y)1]));)))) **A*]*r*w***%*L*1+4+S+\+x+3+*+ +,#-,$Q,#v,!, ,#, -&"-3I-#}--*-$- .&+.R.q..".. . ...,/83/l/0/$///$/'!0I0$a0'0000"01##1G1e1 11!111$2#@2$d2#222!23"$3G3d333 33344+34_4~4'444455'5B5[5{5+55 555 66#6 =6"G68j66666 67717O7i7 o7 |7 7,7 777(78 <8G8 X8d8 z8 8 88 8 8888 9"9.@9-o9999&9:(: @:K:^:r::::: :": ;&;!?;a;"z;;,;;1<$5<%Z<<.< </<<=A= J=T=\= e= r=;~==:J>>0>=>;?>L?;?5??@@@9kA,AA.B-B!B C)CECLC*QC |CCC!CC)C>D]D#pD/D0DD-EBE`E*uE(E#E'E'F"=F`F wF F F!F$F!G)0GZG]G#oGGGGGG"G GGG/G.HCHVH#iHH/HH HI4 I!?I8aI9I.IJ J J J$J+JIJOJ+nJ"J#J JKKK K;K DKOK UKcK(lKKKKKK"K KKKLLL L&*L)QL{LL L LLLL LL-LM)M9MQMbMrM$MM MMMCMN N)N/N"8N[NnN vN N$NNNN N NO #O.O 6O"@OcO OO-O3O#P3*P*^PP P PPPD6R{RR}RRRRS SSS S 'S!HSjSSS S SS S S TT!T 2T9=TwTTTT T TTT TU UU -U8U>UEUMUUUsU {U UU U U UUU U U U UU V&V 8V DVRV ZVfV zVVVVVV V V VV V WW W!W)W0WHWOW hWtW {WW W WWWW WWWW WXX XX)X9XJX PX]XfX jXvXX XXXXXXY Y Y(Y7Y @Y MY[Y oYyYYYY YYY YZ ZZ)ZFZ\ZcZsZzZ ZZZZZZZ ZZ ZZZ [[&[.[7[;[[[:n[+[%[[4\0L\2}\.\\\\\ ]]]]]]/]1]5]9]=]A]E]I]M]Q]U] Y] f] s] ] ]]"] ]]]] ^ ^5^G^X^j^{^ ^ ^ ^^'^2^_3_L_0N_9_<_$_`3`J`Z`p```````a,aCa`avaaaaa!a bbbb%b-b Cb/ObbBb7bc-2c-`c cc c c ccccc d!dG6d~dd$d&d6d e $e0e9e#Oe se }e eeeeeef1fOfjffffff%f-g,Eg"rg8g<g( h4h r=err!r#r)s31s,es-s+s2s!t,At'nt't!t t5u=7u;uuu uu vv.v Ev PvZv zvv v vvvv vbw hw?tw3w6w.x0Nx7x*x/x4y3Gy,{y,yyy z zz;1z mzxzzz-z+z7{+?{/k{6{${6{(.|9W|.|,|/|.}.L}3{}0}.}:~0J~/{~ ~~~~~~.3':3b''Z7]g+)I2 |' 6ā '/8)I#s)/*%!B-d#,1!3.U$%*τ/*(H*q%!…)",&Ov/&;4$/YF3ЇW)\.&5܈#=6 tI ' -:Qd tĊ 4%/&U |!ŋߋ +9X+k4 ̌֌  $ 2@Qb,t3 Ս Ŏ ./"Rn:qŏ7PUx/ OYl  2 /4%<bf m x"Ē!" ,E"cؓ+=PSpĔ+˔&!>` |,ʕ##> b#m3Ŗ^4C)x$Fؗ8-X%97%(D'm(F66<=s,Mޚ.,C[+,˛/((.QA"œ+P6b@Cڝ@7_#$=*I6e"?%E%2k9)ؠ5*8"c;7¡'+"`N!5Ѣ53=-q/,ϣ&1?(q)DĤ0 3:#n'*>;$)`&$-֦3:8's0/̧.$+9P94ĨL0F'w3;өWEg32@HU=Bܫ:3Z46ì5<09mH8d)<FˮM+`E7ү' 12Ed<69'X7;ͱI IS-7˲"1& Xd   ij5۳ $ ;FU erN{ʴ ݴ'+0/Hx˵ \ gq+(,ݶ@ AK#ķ #/G4N!)и "# F Q _8k%ʹ  ,20F%w"!!/!Qp  =NLּ(׽?8@/yƾ/޾.ND8%5^66! $/OUk9p - 8*!c $)&9?Y?(X[b4"*!)$!N)p!)!) 2(S!|)     $0 9 FQ Z f q {        $ * 5 ?L 4Pg 29H?5  #)2A'I,q"$ x           $ 0 = GS \ h t ~         ! *4 < G R` r#~/  (+ T`p  .$NV k+u/ 5J _j~ .7%->5l3-g*$$" T-*24 >CZ2a  .4%7];q)  /G'b =  < @J+Q } $'4 S ]%i&:Q$n%$$6[$x$$!$>c$$ )= D Q>]4 +/([++Ff*;1, ^ir      .*@k|     (<S fpRy<   $0CX^ fq  0P%uv* (=PY-tN  *3BS,c5  AMU] cm u 9*FMZT    Zk|!.+'3/[,^1AB "  !A$[60#, 9Tpw  4#A 0L1}8  1:BG(V   &%#L#p##. !? Uaq3z=4'4\{83@5CHS2/+[n75Rc}m6b34 3Hg %4'3[k4)dLeYA=nZtX_s,,YmU+0=5sG  s(k%>9N,<{'!,6//f+*20 ;QC/#@%1f/3542 2g 1       +/ I[  5 + # + $C 'h  $ '   ! #5 #Y '} & $ $ " &9 $` $ ( ) ) )'Q q%$'$!**Lw+" 3,-`08*D\p+=+@2P$9Xw$/ J V drL &$" GS co     %,6R5)@X t  ,": ]h#+!0 A0b(*G:20m\    #/ ADKIB)0RP:SPN0!04@ ,Z  *|!I!.! ".5"d"k")p"" ",","+#,I#?v##,#<#F;$2$5$+$%45%,j%0%3%3%'0&X&)w&0&%&+&2$'W'2j''',''''(('%( M(X(^(.d((((2(1)JI)0) ))8)#*C6*Iz*0***+ ++'%+M+#R+.v+/+/+',-,B,I,/O, , ,,, ,",,,,,-+ -7-L-T-r-u-x- }-9-5--. . *.5.<.E. \.g.Go.$...//"/,4/a/e/t//=// ///4/ %010 :0 E0&S0z0 000%00 1 1 1,)1*V1 11A1N1-<2Dj20222229c93-@&P:N /nR1"9ba%.LqL;vb)Ni[ tVRSQo|<m>pkgW/Jf*D\~q8MJ =RV ?J2sp*4xe>{$Y?wX'2x 1)    csUTo4o+=%t^ <Nx 4SXd+ MMf(:1+An1; N;t+_T .I } c##e6@]RvB]&(+ykLhI I]S|\0jdCX]%- auh8G,Ys{HpJ7aUx4{yL?,^~Q (E3llLE/ 1Heg6P{`5[*6BC 58q}w>3l3xAEvt!75#O!!_,w\tQAg[Ds]xK&kn6 M]Do&0Io-o)F8MY 3A=gGW|G|^"cZ & 6\m  dX9_wi|f-($bEa>U^qB?UR"Bd-epVK~: Oy PgudWjXD28a<5\OW8=6`  UmrF(;Ee^H#j:*s&_>mgHw?}m(%|z/ v_O;r00)qRw4G#>#~"h</[ A<:eDPM<bi~$ n.TTm"xwVyT ='c,MZk2bHQ1D*h?!n&FIJS3%E`!@7Kr9zuU'`2K0l:acsqT*H^PhL FZj9 [q%Sfn{FIKz#$7'N"|So{u`X_hp@67L,z.ypk,rlP)XBJ>hv-ZC`j(Qf4lJ5cu O @V;tGB2.lpv_yf?7i'e(Y+:+ NOrdiY5zy  4~F''T}\H"]fS{O%W=r$`.r@C=i\ZE/! R}8 !0Y BC$agb,$VCAktju<V)C^Z&[FQ)m[zG3$;Q"2G'dNU5ZI -709.W*}1 znKiY ~/D)u!@bvP}WAjs#%kK Please send this report to the program maintainer, thank you! Thank you and we're sorry for the inconvenience! (copy %d of %d) (error %ld: %s) (in module "%s") - Preview bold italic light#10 Envelope, 4 1/8 x 9 1/2 in#11 Envelope, 4 1/2 x 10 3/8 in#12 Envelope, 4 3/4 x 11 in#14 Envelope, 5 x 11 1/2 in#9 Envelope, 3 7/8 x 8 7/8 in%d of %lu%i of %i%ld byte%ld bytes%lu of %lu%s (or %s)%s Error%s Information%s Preferences%s Warning%s did not fit the tar header for entry '%s'%s files (%s)|%s&About&Actual Size&After a paragraph:&Alignment&Apply&Apply Style&Arrange Icons&Ascending&Back&Based on:&Before a paragraph:&Bg colour:&Bold&Bottom&Bottom:&Box&Bullet style:&CD-Rom&Cancel&Cascade&Cell&Character code:&Clear&Close&Color&Colour:&Convert&Copy&Copy URL&Customize...&Debug report preview:&Delete&Delete Style...&Descending&Details&Down&Edit&Edit Style...&Execute&File&Find&Finish&First&Floating mode:&Floppy&Font&Font family:&Font for Level...&Font:&Forward&From:&Harddisk&Height:&Help&Hide details&Home&Indentation (tenths of a mm)&Indeterminate&Index&Info&Italic&Jump to&Justified&Last&Left&Left:&List level:&Log&Move&Move the object to:&Network&New&Next&Next >&Next Paragraph&Next Tip&Next style:&No&Notes:&Number:&OK&Open...&Outline level:&Page Break&Paste&Picture&Point size:&Position (tenths of a mm):&Position mode:&Preferences&Previous&Previous Paragraph&Print...&Properties&Quit&Redo&Redo &Rename Style...&Replace&Restart numbering&Restore&Right&Right:&Save&Save as&See details&Show tips at startup&Size&Size:&Skip&Spacing (tenths of a mm)&Spell Check&Stop&Strikethrough&Style:&Styles:&Subset:&Symbol:&Table&Top&Top:&Underline&Underlining:&Undo&Undo &Unindent&Up&Vertical alignment:&View...&Weight:&Width:&Window&Yes'%s' has extra '..', ignored.'%s' is invalid'%s' is not a correct numeric value for option '%s'.'%s' is not a valid message catalog.'%s' is probably a binary buffer.'%s' should be numeric.'%s' should only contain ASCII characters.'%s' should only contain alphabetic characters.'%s' should only contain alphabetic or numeric characters.'%s' should only contain digits.(*)(Help)(None)(Normal text)(bookmarks)(none)**)+, 64-bit edition-...1.11.21.31.41.51.61.71.81.910 x 11 in10 x 14 in11 x 17 in12 x 11 in15 x 11 in26 3/4 Envelope, 3 5/8 x 6 1/2 in9 x 11 in: file does not exist!: unknown charset: unknown encoding< &BackBold italic face.
    bold italic underlined
    Bold face. Italic face. >A debug report has been generated in the directory A debug report has been generated. It can be found inA non empty collection must consist of 'element' nodesA standard bullet name.A0 sheet, 841 x 1189 mmA1 sheet, 594 x 841 mmA2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Transverse 322 x 445 mmA3 Rotated 420 x 297 mmA3 Transverse 297 x 420 mmA3 sheet, 297 x 420 mmA4 Extra 9.27 x 12.69 inA4 Plus 210 x 330 mmA4 Rotated 297 x 210 mmA4 Transverse 210 x 297 mmA4 sheet, 210 x 297 mmA4 small sheet, 210 x 297 mmA5 Extra 174 x 235 mmA5 Rotated 210 x 148 mmA5 Transverse 148 x 210 mmA5 sheet, 148 x 210 mmA6 105 x 148 mmA6 Rotated 148 x 105 mmABCDEFGabcdefg12345ADDASCIIAboutAbout %sAbsoluteActual SizeAddAdd current page to bookmarksAdd to custom coloursAddToPropertyCollection called on a generic accessorAddToPropertyCollection called w/o valid adderAdding book %sAdding flavor TEXT failedAdding flavor utxt failedAdvancedAfter a paragraph:Align LeftAlign RightAlignmentAllAll files (%s)|%sAll files (*)|*All files (*.*)|*.*All stylesAlphabetic ModeAlready Registered Object passed to SetObjectClassInfoAlready dialling ISP.Alt+And includes the following files: Animation file is not of type %ld.Append log to file '%s' (choosing [No] will overwrite it)?ApplicationApplyArabicArabic (ISO-8859-6)Argument %u not found.ArtistsAscendingAttributesAvailable fonts.B4 (ISO) 250 x 353 mmB4 (JIS) Rotated 364 x 257 mmB4 Envelope, 250 x 353 mmB4 sheet, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Rotated 257 x 182 mmB5 (JIS) Transverse 182 x 257 mmB5 Envelope, 176 x 250 mmB5 sheet, 182 x 257 millimeterB6 (JIS) 128 x 182 mmB6 (JIS) Rotated 182 x 128 mmB6 Envelope, 176 x 125 mmBACKBMP: Couldn't allocate memory.BMP: Couldn't save invalid image.BMP: Couldn't write RGB color map.BMP: Couldn't write data.BMP: Couldn't write the file (Bitmap) header.BMP: Couldn't write the file (BitmapInfo) header.BMP: wxImage doesn't have own wxPalette.BackBackgroundBackground &colour:Background colourBaltic (ISO-8859-13)Baltic (old) (ISO-8859-4)Before a paragraph:BitmapBitmap renderer cannot render value; value type: BoldBorderBordersBottomBottom margin (mm):Box PropertiesBox stylesBrowseBullet &Alignment:Bullet styleBulletsC sheet, 17 x 22 inC&learC&olour:C3 Envelope, 324 x 458 mmC4 Envelope, 229 x 324 mmC5 Envelope, 162 x 229 mmC6 Envelope, 114 x 162 mmC65 Envelope, 114 x 229 mmCANCELCAPITALCD-RomCHM handler currently supports only local files!CLEARCOMMANDCa&pitalsCan't &Undo Can't automatically determine the image format for non-seekable input.Can't close registry key '%s'Can't copy values of unsupported type %d.Can't create registry key '%s'Can't create threadCan't create window of class %sCan't delete key '%s'Can't delete the INI file '%s'Can't delete value '%s' from key '%s'Can't enumerate subkeys of key '%s'Can't enumerate values of key '%s'Can't export value of unsupported type %d.Can't find current position in file '%s'Can't get info about registry key '%s'Can't initialize zlib deflate stream.Can't initialize zlib inflate stream.Can't monitor non-existent directory "%s" for changes.Can't open registry key '%s'Can't read from inflate stream: %sCan't read inflate stream: unexpected EOF in underlying stream.Can't read value of '%s'Can't read value of key '%s'Can't save image to file '%s': unknown extension.Can't save log contents to file.Can't set thread priorityCan't set value of '%s'Can't write to child process's stdinCan't write to deflate stream: %sCancelCannot create mutex.Cannot create new column's ID. Probably max. number of columns reached.Cannot enumerate files '%s'Cannot enumerate files in directory '%s'Cannot find active dialup connection: %sCannot find the location of address book fileCannot get an active instance of "%s"Cannot get priority range for scheduling policy %d.Cannot get the hostnameCannot get the official hostnameCannot hang up - no active dialup connection.Cannot initialize OLECannot initialize socketsCannot load icon from '%s'.Cannot load resources from '%s'.Cannot load resources from file '%s'.Cannot open HTML document: %sCannot open HTML help book: %sCannot open contents file: %sCannot open file for PostScript printing!Cannot open index file: %sCannot open resources file '%s'.Cannot print empty page.Cannot read typename from '%s'!Cannot resume thread %luCannot resume thread %lxCannot retrieve thread scheduling policy.Cannot set locale to language "%s".Cannot start thread: error writing TLS.Cannot suspend thread %luCannot wait for thread terminationCase sensitiveCategorized ModeCell PropertiesCeltic (ISO-8859-14)Cen&tredCenteredCentral European (ISO-8859-2)CentreCentre text.CentredCh&oose...Change List StyleChange Object StyleChange PropertiesChange StyleChanges won't be saved to avoid overwriting the existing file "%s"Character stylesCheck to add a period after the bullet.Check to add a right parenthesis.Check to enclose the bullet in parentheses.Check to make the font bold.Check to make the font italic.Check to make the font underlined.Check to restart numbering.Check to show a line through the text.Check to show the text in capitals.Check to show the text in small capitals.Check to show the text in subscript.Check to show the text in superscript.Choose ISP to dialChoose a directory:Choose a fileChoose colourChoose fontCircular dependency involving module "%s" detected.Cl&oseClass not registered.ClearClear the log contentsClick to apply the selected style.Click to browse for a symbol.Click to cancel changes to the font.Click to cancel the font selection.Click to change the font colour.Click to change the text background colour.Click to change the text colour.Click to choose the font for this level.Click to close this window.Click to confirm changes to the font.Click to confirm the font selection.Click to create a new box style.Click to create a new character style.Click to create a new list style.Click to create a new paragraph style.Click to create a new tab position.Click to delete all tab positions.Click to delete the selected style.Click to delete the selected tab position.Click to edit the selected style.Click to rename the selected style.CloseClose AllClose current documentClose this windowColorColourColour selection dialog failed with error %0lx.Colour:Column could not be added.Column description could not be initialized.Column index not found.Column width could not be determinedColumn width could not be set.Command line argument %d couldn't be converted to Unicode and will be ignored.Common dialog failed with error code %0lx.Compositing not supported by this system, please enable it in your Window Manager.Compressed HTML Help file (*.chm)|*.chm|ComputerConfig entry name cannot start with '%c'.ConfirmConfirm registry updateConnecting...ContentsConversion to charset '%s' doesn't work.ConvertCopied to clipboard:"%s"Copies:CopyCopy selectionCould not create temporary file '%s'Could not determine column index.Could not determine column's positionCould not determine number of columns.Could not determine number of itemsCould not extract %s into %s: %sCould not find tab for idCould not get header description.Could not get items.Could not get property flags.Could not get selected items.Could not locate file '%s'.Could not remove column.Could not retrieve number of itemsCould not set alignment.Could not set column width.Could not set current working directoryCould not set header description.Could not set icon.Could not set maximum width.Could not set minimum width.Could not set property flags.Could not start document preview.Could not start printing.Could not transfer data to windowCouldn't acquire a mutex lockCouldn't add an image to the image list.Couldn't create a timerCouldn't create the overlay windowCouldn't enumerate translationsCouldn't find symbol '%s' in a dynamic libraryCouldn't get hatch style from wxBrush.Couldn't get the current thread pointerCouldn't init the context on the overlay windowCouldn't initialize GIF hash table.Couldn't load a PNG image - file is corrupted or not enough memory.Couldn't load sound data from '%s'.Couldn't obtain folder nameCouldn't open audio: %sCouldn't register clipboard format '%s'.Couldn't release a mutexCouldn't retrieve information about list control item %d.Couldn't save PNG image.Couldn't terminate threadCreate Parameter %s not found in declared RTTI ParametersCreate directoryCreate new directoryCtrl+Cu&tCurrent directory:Custom sizeCustomize ColumnsCutCut selectionCyrillic (ISO-8859-5)D sheet, 22 x 34 inDDE poke request failedDECIMALDELDELETEDIB Header: Encoding doesn't match bitdepth.DIB Header: Image height > 32767 pixels for file.DIB Header: Image width > 32767 pixels for file.DIB Header: Unknown bitdepth in file.DIB Header: Unknown encoding in file.DIVIDEDL Envelope, 110 x 220 mmDOWNDashedData object has invalid data formatDate renderer cannot render value; value type: Debug report "%s"Debug report couldn't be created.Debug report generation has failed.DecorativeDefault encodingDefault fontDefault printerDeleteDelete A&llDelete StyleDelete TextDelete itemDelete selectionDelete style %s?Deleted stale lock file '%s'.Dependency "%s" of module "%s" doesn't exist.DescendingDesktopDeveloped by DevelopersDial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it.Did you know...DirectFB error %d occurred.DirectoriesDirectory '%s' couldn't be createdDirectory '%s' couldn't be deletedDirectory does not existDirectory doesn't exist.Discard changes and reload the last saved version?Display all index items that contain given substring. Search is case insensitive.Display options dialogDisplays help as you browse the books on the left.Do you want to overwrite the command used to %s files with extension "%s" ? Current value is %s, New value is %s %1Do you want to save changes to %s?Document:Documentation by Documentation writersDon't SaveDoneDone.DottedDoubleDouble Japanese Postcard Rotated 148 x 200 mmDoubly used id : %dDownDragE sheet, 34 x 44 inENDENTEREOF while reading from inotify descriptorESCESCAPEEXECUTEEditEdit itemElapsed time:Enable the height value.Enable the maximum width value.Enable the minimum height value.Enable the minimum width value.Enable the width value.Enable vertical alignment.Enables a background colour.Enter a box style nameEnter a character style nameEnter a list style nameEnter a new style nameEnter a paragraph style nameEnter command to open file "%s":Entries foundEnvelope Invite 220 x 220 mmEnvironment variables expansion failed: missing '%c' at position %u in '%s'.ErrorError closing epoll descriptorError closing kqueue instanceError creating directoryError in reading image DIB.Error in resource: %sError reading config options.Error saving user configuration data.Error while printing: Error: Esperanto (ISO-8859-3)Estimated time:Event queue overflowedExecutable files (*.exe)|*.exe|ExecuteExecution of command '%s' failedExecution of command '%s' failed with error: %ulExecutive, 7 1/4 x 10 1/2 inExporting registry key: file "%s" already exists and won't be overwritten.Extended Unix Codepage for Japanese (EUC-JP)Extraction of '%s' into '%s' failed.FFace NameFailed to access lock file.Failed to add descriptor %d to epoll descriptor %dFailed to allocate %luKb of memory for bitmap data.Failed to allocate colour for OpenGLFailed to change video modeFailed to check format of image file "%s".Failed to clean up debug report directory "%s"Failed to close file handleFailed to close lock file '%s'Failed to close the clipboard.Failed to close the display "%s"Failed to connect: missing username/password.Failed to connect: no ISP to dial.Failed to convert file "%s" to Unicode.Failed to copy dialog contents to the clipboard.Failed to copy registry value '%s'Failed to copy the contents of registry key '%s' to '%s'.Failed to copy the file '%s' to '%s'Failed to copy the registry subkey '%s' to '%s'.Failed to create DDE stringFailed to create MDI parent frame.Failed to create a temporary file nameFailed to create an anonymous pipeFailed to create an instance of "%s"Failed to create connection to server '%s' on topic '%s'Failed to create cursor.Failed to create directory "%s"Failed to create directory '%s' (Do you have the required permissions?)Failed to create epoll descriptorFailed to create registry entry for '%s' files.Failed to create the standard find/replace dialog (error code %d)Failed to create wake up pipe used by event loop.Failed to display HTML document in %s encodingFailed to empty the clipboard.Failed to enumerate video modesFailed to establish an advise loop with DDE serverFailed to establish dialup connection: %sFailed to execute '%s' Failed to execute curl, please install it in PATH.Failed to find CLSID of "%s"Failed to find match for regular expression: %sFailed to get ISP names: %sFailed to get OLE automation interface for "%s"Failed to get data from the clipboardFailed to get the local system timeFailed to get the working directoryFailed to initialize GUI: no built-in themes found.Failed to initialize MS HTML Help.Failed to initialize OpenGLFailed to initiate dialup connection: %sFailed to insert text in the control.Failed to inspect the lock file '%s'Failed to install signal handlerFailed to join a thread, potential memory leak detected - please restart the programFailed to kill process %dFailed to load bitmap "%s" from resources.Failed to load icon "%s" from resources.Failed to load image %%d from file '%s'.Failed to load image %d from stream.Failed to load image from file "%s".Failed to load metafile from file "%s".Failed to load mpr.dll.Failed to load resource "%s".Failed to load shared library '%s'Failed to lock resource "%s".Failed to lock the lock file '%s'Failed to modify descriptor %d in epoll descriptor %dFailed to modify file times for '%s'Failed to monitor I/O channelsFailed to open '%s' for readingFailed to open '%s' for writingFailed to open CHM archive '%s'.Failed to open URL "%s" in default browser.Failed to open directory "%s" for monitoring.Failed to open display "%s".Failed to open temporary file.Failed to open the clipboard.Failed to parse Plural-Forms: '%s'Failed to prepare playing "%s".Failed to put data on the clipboardFailed to read PID from lock file.Failed to read config options.Failed to read document from the file "%s".Failed to read event from DirectFB pipeFailed to read from wake-up pipeFailed to redirect child process input/outputFailed to redirect the child process IOFailed to register DDE server '%s'Failed to remember the encoding for the charset '%s'.Failed to remove debug report file "%s"Failed to remove lock file '%s'Failed to remove stale lock file '%s'.Failed to rename registry value '%s' to '%s'.Failed to rename the file '%s' to '%s' because the destination file already exists.Failed to rename the registry key '%s' to '%s'.Failed to retrieve data from the clipboard.Failed to retrieve file times for '%s'Failed to retrieve text of RAS error messageFailed to retrieve the supported clipboard formatsFailed to save document to the file "%s".Failed to save the bitmap image to file "%s".Failed to send DDE advise notificationFailed to set FTP transfer mode to %s.Failed to set clipboard data.Failed to set permissions on lock file '%s'Failed to set process priorityFailed to set temporary file permissionsFailed to set text in the text control.Failed to set thread concurrency level to %luFailed to set thread priority %d.Failed to set up non-blocking pipe, the program might hang.Failed to store image '%s' to memory VFS!Failed to switch DirectFB pipe to non-blocking modeFailed to switch wake up pipe to non-blocking modeFailed to terminate a thread.Failed to terminate the advise loop with DDE serverFailed to terminate the dialup connection: %sFailed to touch the file '%s'Failed to unlock lock file '%s'Failed to unregister DDE server '%s'Failed to unregister descriptor %d from epoll descriptor %dFailed to update user configuration file.Failed to upload the debug report (error code %d).Failed to write to lock file '%s'FalseFamilyFileFile "%s" could not be opened for reading.File "%s" could not be opened for writing.File '%s' already exists, do you really want to overwrite it?File '%s' already exists. Do you want to replace it?File '%s' couldn't be removedFile '%s' couldn't be renamed '%s'File couldn't be loaded.File dialog failed with error code %0lx.File errorFile name exists already.FilesFiles (%s)FilterFindFirstFirst pageFixedFixed font:Fixed size face.
    bold italic FloatingFloppyFolio, 8 1/2 x 13 inFontFont &weight:Font size:Font st&yle:Font:Fonts index file %s disappeared while loading fonts.Fork failedForwardForward hrefs are not supportedFound %i matchesFrom:GIF: Invalid gif index.GIF: data stream seems to be truncated.GIF: error in GIF image format.GIF: not enough memory.GIF: unknown error!!!GTK+ installed on this machine is too old to support screen compositing, please install GTK+ 2.12 or later.GTK+ themeGeneralGeneric PostScriptGerman Legal Fanfold, 8 1/2 x 13 inGerman Std Fanfold, 8 1/2 x 12 inGetProperty called w/o valid getterGetPropertyCollection called on a generic accessorGetPropertyCollection called w/o valid collection getterGo backGo forwardGo one level up in document hierarchyGo to home directoryGo to parent directoryGraphics art by Greek (ISO-8859-7)GrooveGzip not supported by this version of zlibHELPHOMEHTML Help Project (*.hhp)|*.hhp|HTML anchor %s does not exist.HTML files (*.html;*.htm)|*.html;*.htm|HarddiskHebrew (ISO-8859-8)HelpHelp Browser OptionsHelp IndexHelp PrintingHelp TopicsHelp books (*.htb)|*.htb|Help books (*.zip)|*.zip|Help directory "%s" not found.Help file "%s" not found.Help: %sHide %sHide OthersHide this notification message.HomeHome directoryHow the object will float relative to the text.ICO: Error in reading mask DIB.ICO: Error writing the image file!ICO: Image too tall for an icon.ICO: Image too wide for an icon.ICO: Invalid icon index.IFF: data stream seems to be truncated.IFF: error in IFF image format.IFF: not enough memory.IFF: unknown error!!!INSINSERTISO-2022-JPIcon & text renderer cannot render value; value type: If possible, try changing the layout parameters to make the printout more narrow.If you have any additional information pertaining to this bug report, please enter it here and it will be joined to it:If you wish to suppress this debug report completely, please choose the "Cancel" button, but be warned that it may hinder improving the program, so if at all possible please do continue with the report generation. Ignoring value "%s" of the key "%s".Illegal Object Class (Non-wxEvtHandler) as Event SourceIllegal Parameter Count for ConstructObject MethodIllegal Parameter Count for Create MethodIllegal directory name.Illegal file specification.Image and mask have different sizes.Image file is not of type %d.Image is not of type %s.Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dllImpossible to get child process inputImpossible to get permissions for file '%s'Impossible to overwrite the file '%s'Impossible to set permissions for the file '%s'Incorrect GIF frame size (%u, %d) for the frame #%uIncorrect number of arguments.IndentIndents && SpacingIndexIndian (ISO-8859-12)InfoInitialization failed in post init, aborting.InsertInsert FieldInsert ImageInsert ObjectInsert TextInserts a page break before the paragraph.InsetInvalid GTK+ command line option, use "%s --help"Invalid TIFF image index.Invalid data view itemInvalid display mode specification '%s'.Invalid geometry specification '%s'Invalid inotify event for "%s"Invalid lock file '%s'.Invalid message catalog.Invalid or Null Object ID passed to GetObjectClassInfoInvalid or Null Object ID passed to HasObjectClassInfoInvalid regular expression '%s': %sInvalid value %ld for a boolean key "%s" in config file.ItalicItaly Envelope, 110 x 230 mmJPEG: Couldn't load - file is probably corrupted.JPEG: Couldn't save image.Japanese Double Postcard 200 x 148 mmJapanese Envelope Chou #3Japanese Envelope Chou #3 RotatedJapanese Envelope Chou #4Japanese Envelope Chou #4 RotatedJapanese Envelope Kaku #2Japanese Envelope Kaku #2 RotatedJapanese Envelope Kaku #3Japanese Envelope Kaku #3 RotatedJapanese Envelope You #4Japanese Envelope You #4 RotatedJapanese Postcard 100 x 148 mmJapanese Postcard Rotated 148 x 100 mmJump toJustifiedJustify text left and right.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UPL&ine spacing:LEFTLandscapeLastLast pageLast repeated message ("%s", %lu time) wasn't outputLast repeated message ("%s", %lu times) wasn't outputLedger, 17 x 11 inLeftLeft (&first line):Left margin (mm):Left-align text.Legal Extra 9 1/2 x 15 inLegal, 8 1/2 x 14 inLetter Extra 9 1/2 x 12 inLetter Extra Transverse 9.275 x 12 inLetter Plus 8 1/2 x 12.69 inLetter Rotated 11 x 8 1/2 inLetter Small, 8 1/2 x 11 inLetter Transverse 8 1/2 x 11 inLetter, 8 1/2 x 11 inLicenseLightLine %lu of map file "%s" has invalid syntax, skipped.Line spacing:Link contained '//', converted to absolute link.List StyleList stylesLists font sizes in points.Lists the available fonts.Load %s fileLoading : Lock file '%s' has incorrect owner.Lock file '%s' has incorrect permissions.Log saved to the file '%s'.Lower case lettersLower case roman numeralsMDI childMENUMS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it.Ma&ximizeMacArabicMacArmenianMacBengaliMacBurmeseMacCelticMacCentralEurRomanMacChineseSimpMacChineseTradMacCroatianMacCyrillicMacDevanagariMacDingbatsMacEthiopicMacExtArabicMacGaelicMacGeorgianMacGreekMacGujaratiMacGurmukhiMacHebrewMacIcelandicMacJapaneseMacKannadaMacKeyboardGlyphsMacKhmerMacKoreanMacLaotianMacMalayalamMacMongolianMacOriyaMacRomanMacRomanianMacSinhaleseMacSymbolMacTamilMacTeluguMacThaiMacTibetanMacTurkishMacVietnameseMake a selection:MarginsMatch caseMax height:Max width:Media playback error: %sMemory VFS already contains file '%s'!MenuMessageMetal themeMethod or property not found.Mi&nimizeMin height:Min width:Missing a required parameter.ModernModifiedModule "%s" initialization failedMonarch Envelope, 3 7/8 x 7 1/2 inMonitoring individual files for changes is not supported currently.Move downMove upMoves the object to the next paragraph.Moves the object to the previous paragraph.Multiple Cell PropertiesNUM_LOCKNameNetworkNewNew &Box Style...New &Character Style...New &List Style...New &Paragraph Style...New StyleNew directoryNew itemNewNameNextNext pageNoNo animation handler for type %ld defined.No bitmap handler for type %d defined.No column existing.No column for the specified column existing.No column for the specified column position existing.No default application configured for HTML files.No entries found.No font for displaying text in encoding '%s' found, but an alternative encoding '%s' is available. Do you want to use this encoding (otherwise you will have to choose another one)?No font for displaying text in encoding '%s' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly)?No handler found for animation type.No handler found for image type.No image handler for type %d defined.No image handler for type %s defined.No matching page found yetNo renderer or invalid renderer type specified for custom data column.No renderer specified for column.No soundNo unused colour in image being masked.No unused colour in image.No valid mappings found in the file "%s".NoneNordic (ISO-8859-10)NormalNormal face
    and underlined. Normal font:Not %sNot availableNot underlinedNote, 8 1/2 x 11 inNoticeNumber of columns could not be determined.Numbered outlineOKOLE Automation error in %s: %sObject PropertiesObject implementation does not support named arguments.Objects must have an id attributeOpen FileOpen HTML documentOpen file "%s"Open...OpenGL function "%s" failed: %s (error %d)Operation not permitted.Option '%s' can't be negatedOption '%s' requires a value.Option '%s': '%s' cannot be converted to a date.OptionsOrientationOut of window IDs. Recommend shutting down application.OutlineOutsetOverflow while coercing argument values.PAGEDOWNPAGEUPPAUSEPCX: couldn't allocate memoryPCX: image format unsupportedPCX: invalid imagePCX: this is not a PCX file.PCX: unknown error !!!PCX: version number too lowPGDNPGUPPNM: Couldn't allocate memory.PNM: File format is not recognized.PNM: File seems truncated.PRC 16K 146 x 215 mmPRC 16K RotatedPRC 32K 97 x 151 mmPRC 32K RotatedPRC 32K(Big) 97 x 151 mmPRC 32K(Big) RotatedPRC Envelope #1 102 x 165 mmPRC Envelope #1 Rotated 165 x 102 mmPRC Envelope #10 324 x 458 mmPRC Envelope #10 Rotated 458 x 324 mmPRC Envelope #2 102 x 176 mmPRC Envelope #2 Rotated 176 x 102 mmPRC Envelope #3 125 x 176 mmPRC Envelope #3 Rotated 176 x 125 mmPRC Envelope #4 110 x 208 mmPRC Envelope #4 Rotated 208 x 110 mmPRC Envelope #5 110 x 220 mmPRC Envelope #5 Rotated 220 x 110 mmPRC Envelope #6 120 x 230 mmPRC Envelope #6 Rotated 230 x 120 mmPRC Envelope #7 160 x 230 mmPRC Envelope #7 Rotated 230 x 160 mmPRC Envelope #8 120 x 309 mmPRC Envelope #8 Rotated 309 x 120 mmPRC Envelope #9 229 x 324 mmPRC Envelope #9 Rotated 324 x 229 mmPRINTPaddingPage %dPage %d of %dPage SetupPage setupPagesPaper sizeParagraph stylesPassing a already registered object to SetObjectPassing an unknown object to GetObjectPastePaste selectionPeri&odPermissionsPicture PropertiesPipe creation failedPlease choose a valid font.Please choose an existing file.Please choose the page to display:Please choose which ISP do you want to connect toPlease install a newer version of comctl32.dll (at least version 4.70 is required but you have %d.%02d) or this program won't operate correctly.Please select the columns to show and define their order:Please wait while printing...Point SizePointer to data view control not set correctly.Pointer to model not set correctly.PortraitPositionPostScript filePreferencesPreferences...PreparingPreview:Previous pagePrintPrint PreviewPrint Preview FailurePrint RangePrint SetupPrint in colourPrint previe&w...Print preview creation failed.Print preview...Print spoolingPrint this pagePrint to FilePrint...PrinterPrinter command:Printer optionsPrinter options:Printer...Printer:PrintingPrinting Printing ErrorPrinting page %d of %dPrinting page %d...Printing...PrintoutProcessing debug report has failed, leaving the files in "%s" directory.Progress renderer cannot render value type; value type: Progress:PropertiesPropertyProperty ErrorQuarto, 215 x 275 mmQuestionQuitQuit %sQuit this programRETURNRIGHTRawCtrl+Read error on file '%s'ReadyRedoRedo last actionRefreshRegistry key '%s' already exists.Registry key '%s' does not exist, cannot rename it.Registry key '%s' is needed for normal system operation, deleting it will leave your system in unusable state: operation aborted.Registry value '%s' already exists.RegularRelativeRelevant entries:Remaining time:RemoveRemove BulletRemove current page from bookmarksRenderer "%s" has incompatible version %d.%d and couldn't be loaded.Rendering failed.Renumber ListRep&laceReplaceReplace &allReplace selectionReplace with:Required information entry is empty.Resource '%s' is not a valid message catalog.Revert to SavedRidgeRightRight margin (mm):Right-align text.RomanS&tandard bullet name:SCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACTSaveSave %s fileSave &As...Save AsSave asSave current documentSave current document with a different filenameSave log contents to fileScriptSearchSearch contents of help book(s) for all occurrences of the text you typed aboveSearch directionSearch for:Search in all booksSearching...SectionsSeek error on file '%s'Seek error on file '%s' (large files not supported by stdio)Select &AllSelect AllSelect a document templateSelect a document viewSelect regular or bold.Select regular or italic style.Select underlining or no underlining.SelectionSelects the list level to edit.Separator expected after the option '%s'.Set Cell StyleSetProperty called w/o valid setterSetting directory access times is not supported under this OS versionSetup...Several active dialup connections found, choosing one randomly.Shift+Show &hidden directoriesShow &hidden filesShow AllShow about dialogShow allShow all items in indexShow hidden directoriesShow/hide navigation panelShows a Unicode subset.Shows a preview of the bullet settings.Shows a preview of the font settings.Shows a preview of the font.Shows a preview of the paragraph settings.Shows the font preview.Simple monochrome themeSingleSizeSize:SkipSlantSmall C&apitalsSolidSorry, could not open this file.Sorry, not enough memory to create a preview.Sorry, that name is taken. Please choose another.Sorry, the format for this file is unknown.Sound data are in unsupported format.Sound file '%s' is in unsupported format.SpacingSpell CheckStandardStatement, 5 1/2 x 8 1/2 inStaticStatus:StopStrikethroughString To Colour : Incorrect colour specification : %sStyleStyle OrganiserStyle:Subscrip&tSupe&rscriptSuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSymbolSymbol &font:SymbolsTABTIFF: Couldn't allocate memory.TIFF: Error loading image.TIFF: Error reading image.TIFF: Error saving image.TIFF: Error writing image.TIFF: Image size is abnormally big.Table PropertiesTabloid Extra 11.69 x 18 inTabloid, 11 x 17 inTabsTeletypeTemplatesText renderer cannot render value; value type: Thai (ISO-8859-11)The FTP server doesn't support passive mode.The FTP server doesn't support the PORT command.The available bullet styles.The available styles.The background colour.The bottom margin size.The bottom padding size.The bottom position.The bullet character.The character code.The charset '%s' is unknown. You may select another charset to replace it with or choose [Cancel] if it cannot be replacedThe clipboard format '%d' doesn't exist.The default style for the next paragraph.The directory '%s' does not exist Create it now?The document "%s" doesn't fit on the page horizontally and will be truncated if printed. Would you like to proceed with printing it nevertheless?The file '%s' doesn't exist and couldn't be opened. It has been removed from the most recently used files list.The first line indent.The following standard GTK+ options are also supported: The font colour.The font family.The font from which to take the symbol.The font point size.The font size in points.The font size units, points or pixels.The font style.The font weight.The format of file '%s' couldn't be determined.The left indent.The left margin size.The left padding size.The left position.The line spacing.The list item number.The locale ID is unknown.The object height.The object maximum height.The object maximum width.The object minimum height.The object minimum width.The object width.The outline level.The previous message repeated %lu time.The previous message repeated %lu times.The previous message repeated once.The print dialog returned an error.The range to show.The report contains the files listed below. If any of these files contain private information, please uncheck them and they will be removed from the report. The required parameter '%s' was not specified.The right indent.The right margin size.The right padding size.The right position.The spacing after the paragraph.The spacing before the paragraph.The style name.The style on which this style is based.The style preview.The system cannot find the file specified.The tab position.The tab positions.The text couldn't be saved.The top margin size.The top padding size.The top position.The value for the option '%s' must be specified.The version of remote access service (RAS) installed on this machine is too old, please upgrade (the following required function is missing: %s).The wxGtkPrinterDC cannot be used.There is no column or renderer for the specified column index.There was a problem during page setup: you may need to set a default printer.This document doesn't fit on the page horizontally and will be truncated when it is printed.This is not a %s.This platform does not support background transparency.This program was compiled with a too old version of GTK+, please rebuild with GTK+ 2.12 or newer.This system doesn't support date controls, please upgrade your version of comctl32.dllThread module initialization failed: cannot store value in thread local storageThread module initialization failed: failed to create thread keyThread module initialization failed: impossible to allocate index in thread local storageThread priority setting is ignored.Tile &HorizontallyTile &VerticallyTimeout while waiting for FTP server to connect, try passive mode.Timer creation failed.Tip of the DayTips not available, sorry!To:Toggle renderer cannot render value; value type: Too many EndStyle calls!Too many colours in PNG, the image may be slightly blurred.TopTop margin (mm):Translations by TranslatorsTrueTrying to remove file '%s' from memory VFS, but it is not loaded!Turkish (ISO-8859-9)TypeType a font name.Type a size in points.Type mismatch in argument %u.Type must have enum - long conversionType operation "%s" failed: Property labeled "%s" is of type "%s", NOT "%s".UPUS Std Fanfold, 14 7/8 x 11 inUS-ASCIIUnable to add inotify watchUnable to add kqueue watchUnable to associate handle with I/O completion portUnable to close I/O completion port handleUnable to close inotify instanceUnable to close path '%s'Unable to close the handle for '%s'Unable to create I/O completion portUnable to create IOCP worker threadUnable to create inotify instanceUnable to create kqueue instanceUnable to dequeue completion packetUnable to get events from kqueueUnable to handle native drag&drop dataUnable to initialize GTK+, is DISPLAY set properly?Unable to initialize Hildon programUnable to open path '%s'Unable to open requested HTML document: %sUnable to play sound asynchronously.Unable to post completion statusUnable to read from inotify descriptorUnable to remove inotify watchUnable to remove kqueue watchUnable to set up watch for '%s'Unable to start IOCP worker threadUndeleteUnderlineUnderlinedUndoUndo last actionUnexpected characters following option '%s'.Unexpected event for "%s": no matching watch descriptor.Unexpected parameter '%s'Unexpectedly new I/O completion port was createdUngraceful worker thread terminationUnicodeUnicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)UnindentUnits for the bottom border width.Units for the bottom margin.Units for the bottom outline width.Units for the bottom padding.Units for the bottom position.Units for the left border width.Units for the left margin.Units for the left outline width.Units for the left padding.Units for the left position.Units for the maximum object height.Units for the maximum object width.Units for the minimum object height.Units for the minimum object width.Units for the object height.Units for the object width.Units for the right border width.Units for the right margin.Units for the right outline width.Units for the right padding.Units for the right position.Units for the top border width.Units for the top margin.Units for the top outline width.Units for the top padding.Units for the top position.UnknownUnknown DDE error %08xUnknown Object passed to GetObjectClassInfoUnknown PNG resolution unit %dUnknown Property %sUnknown TIFF resolution unit %d ignoredUnknown data formatUnknown dynamic library errorUnknown encoding (%d)Unknown error %08xUnknown exceptionUnknown image data format.Unknown long option '%s'Unknown name or named argument.Unknown option '%s'Unmatched '{' in an entry for mime type %s.Unnamed commandUnspecifiedUnsupported clipboard format.Unsupported theme '%s'.UpUpper case lettersUpper case roman numeralsUsage: %sUse the current alignment setting.Valid pointer to native data view control does not existValidation conflictValueValue must be %s or higher.Value must be %s or less.Value must be between %s and %s.Version Vertical alignment.View files as a detailed viewView files as a list viewViewsWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHTWaiting for IO on epoll descriptor %d failedWarning: WeightWestern European (ISO-8859-1)Western European with Euro (ISO-8859-15)Whether the font is underlined.Whole wordWhole words onlyWin32 themeWin32s on Windows 3.1Windows 2000Windows 7Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arabic (CP 1256)Windows Baltic (CP 1257)Windows CE (%d.%d)Windows Central European (CP 1250)Windows Chinese Simplified (CP 936) or GB-2312Windows Chinese Traditional (CP 950) or Big-5Windows Cyrillic (CP 1251)Windows Greek (CP 1253)Windows Hebrew (CP 1255)Windows Japanese (CP 932) or Shift-JISWindows Johab (CP 1361)Windows Korean (CP 949)Windows MEWindows NT %lu.%luWindows Server 2003Windows Server 2008Windows Server 2008 R2Windows Thai (CP 874)Windows Turkish (CP 1254)Windows Vietnamese (CP 1258)Windows VistaWindows Western European (CP 1252)Windows XPWindows/DOS OEM (CP 437)Windows/DOS OEM Cyrillic (CP 866)Write error on file '%s'XML parsing error: '%s' at line %dXPM: Malformed pixel data!XPM: incorrect colour description in line %dXPM: incorrect header format!XPM: malformed colour definition '%s' at line %d!XPM: no colors left to use for mask!XPM: truncated image data at line %d!YesYou cannot Clear an overlay that is not initedYou cannot Init an overlay twiceYou cannot add a new directory to this section.You have entered invalid value. Press ESC to cancel editing.Zoom &InZoom &OutZoom InZoom OutZoom to &FitZoom to Fita DDEML application has created a prolonged race condition.a DDEML function was called without first calling the DdeInitialize function, or an invalid instance identifier was passed to a DDEML function.a client's attempt to establish a conversation has failed.a memory allocation failed.a parameter failed to be validated by the DDEML.a request for a synchronous advise transaction has timed out.a request for a synchronous data transaction has timed out.a request for a synchronous execute transaction has timed out.a request for a synchronous poke transaction has timed out.a request to end an advise transaction has timed out.a server-side transaction was attempted on a conversation that was terminated by the client, or the server terminated before completing a transaction.a transaction failed.altan application initialized as APPCLASS_MONITOR has attempted to perform a DDE transaction, or an application initialized as APPCMD_CLIENTONLY has attempted to perform server transactions.an internal call to the PostMessage function has failed. an internal error has occurred in the DDEML.an invalid transaction identifier was passed to a DDEML function. Once the application has returned from an XTYP_XACT_COMPLETE callback, the transaction identifier for that callback is no longer valid.assuming this is a multi-part zip concatenatedattempt to change immutable key '%s' ignored.bad arguments to library functionbad signaturebad zipfile offset to entrybinaryboldbuffer is too small for Windows directory.build %lucan't close file '%s'can't close file descriptor %dcan't commit changes to file '%s'can't create file '%s'can't delete user configuration file '%s'can't determine if the end of file is reached on descriptor %dcan't execute '%s'can't find central directory in zipcan't find length of file on file descriptor %dcan't find user's HOME, using current directory.can't flush file descriptor %dcan't get seek position on file descriptor %dcan't load any font, abortingcan't open file '%s'can't open global configuration file '%s'.can't open user configuration file '%s'.can't open user configuration file.can't re-initialize zlib deflate streamcan't re-initialize zlib inflate streamcan't read from file descriptor %dcan't remove file '%s'can't remove temporary file '%s'can't seek on file descriptor %dcan't write buffer '%s' to disk.can't write to file descriptor %dcan't write user configuration file.checksum errorchecksum failure reading tar header blockcmcompression errorconversion to 8-bit encoding failedctrldatedecompression errordefaultdoubledump of the process state (binary)eighteentheightheleventhentry '%s' appears more than once in group '%s'error in data formaterror opening '%s'error opening fileerror reading zip central directoryerror reading zip local headererror writing zip entry '%s': bad crc or lengthfailed to flush the file '%s'fifteenthfifthfile '%s', line %d: '%s' ignored after group header.file '%s', line %d: '=' expected.file '%s', line %d: key '%s' was first found at line %d.file '%s', line %d: value for immutable key '%s' ignored.file '%s': unexpected character %c at line %d.filesfirstfont sizefourteenthfourthgenerate verbose log messagesimageincomplete header block in tarincorrect event handler string, missing dotincorrect size given for tar entryinvalid data in extended tar headerinvalid message box return valueinvalid zip fileitaliclightlocale '%s' cannot be set.midnightnineteenthninthno DDE error.no errorno fonts found in %s, using builtin fontnonamenoonnormalnot implementednumobjects cannot have XML Text Nodesout of memorypercentprocess context descriptionptpxrawctrlread errorreading zip stream (entry %s): bad crcreading zip stream (entry %s): bad lengthreentrancy problem.secondseek errorseventeenthseventhshiftshow this help messagesixteenthsixthspecify display mode to use (e.g. 640x480-16)specify the theme to usestandard/circlestandard/circle-outlinestandard/diamondstandard/squarestandard/trianglestored file length not in Zip headerstrstrikethroughtar entry not opentenththe response to the transaction caused the DDE_FBUSY bit to be set.thirdthirteenthtodaytomorrowtrailing backslash ignored in '%s'translator-creditstwelfthtwentiethunderlinedunexpected " at position %d in '%s'.unexpected end of fileunknownunknown class %sunknown errorunknown error (error code %08x).unknown seek originunknown-%dunnamedunnamed%dunsupported Zip compression methodusing catalog '%s' from '%s'.write errorwxGetTimeOfDay failed.wxPrintout::GetPageInfo gives a null maxPage.wxWidget control pointer is not a data view pointerwxWidget's control not initialized.wxWidgets could not open display for '%s': exiting.wxWidgets could not open display. Exiting.xxxxyesterdayzlib error %d~Project-Id-Version: wxWidgets 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2013-10-01 19:04+0200 PO-Revision-Date: 2012-04-27 17:01+0100 Last-Translator: Dr. Thomas Krebs Language-Team: wxWidgets Team Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n!=1); Bitte senden Sie diesen Bericht an den Programmautor. Vielen Dank! Vielen Dank, und wir entschuldigen uns für die Unannehmlichkeiten. (Kopie %d von %d) (Fehler %ld: %s)(im Modul "%s") - Vorschau fett kursiv dünn#10 Umschlag, 4 1/8 x 9 1/2 Zoll#11 Umschlag, 4 1/2 x 10 3/8 Zoll#12 Umschlag, 4 3/4 x 11 Zoll#14 Umschlag, 5 x 11 1/2 Zoll#9 Umschlag, 3 7/8 x 8 7/8 Zoll%d von %lu%i von %i%ld Byte%ld Bytes%lu von %lu %s (oder %s)%s Fehler%s Information%s-Einstellungen%s Warnung%s passte nicht zum tar Kopfeintrag für den Eintrag '%s'%s Dateien (%s)|%sÜbe&rT&atsächliche Größe&Nach einem Absatz:&AusrichtungÜbernehmen&Stil anwenden&Icons anordnen&Aufsteigend&Zurück&Basierend auf:&Vor einem Absatz:&Hg Farbe:&Fett&Unten&Unten:&RahmenStil des &Gliederungspunktes:&CD-RomAb&brechenKaskadieren&Zelle&Zeichencode:&Löschen&Schließen&Farbe&Farbe:&Konvertieren&KopierenURL &kopieren&Anpassen...Vorschau des Fehlerberichts:&LöschenStil &löschen...&Absteigend&Einzelheiten&Runter&BearbeitenStil &bearbeiten...&Ausführen&Datei&Suchen&Fertigstellen&Erste&Schwebemodus:&Diskette&Schriftart&Schriftart:&Schriftart für Ebene...&Schriftart:&Vorwärts&Von:&Festplatte&Höhe:&Hilfe&Einzelheiten verbergen&Start&Einrücken (Zehntel-mm)&Unbestimmt&Index&Information&Kursiv&Springen zu&Ausgerichtet&Letztes&Links&Links:&Listenebene:&Log&Bewegen&Bewege das Objekt zu:&Netzwerk&Neu&Weiter&Weiter >&Nächster Absatz&Nächster Tipp&Nächster Stil:&NeinBemerkungen:&Nummer:&OK&Öffnen...&Umrandungsebene:&SeitenumbruchEinfügen&BildSchriftgröße in &Punkt:&Position (Zehntel-mm):&Positionierungs-Modus:&Einstellungen&Zurück&Vorheriger Absatz&Drucken...&Eigenschaften&Beenden&Wiederholen&Wiederholen Stil &umbenennen...&Ersetzen&Nummerierung Neustart&Wiederherstellen&Rechts&Rechts:&Speichern&Speichern unter&Einzelheiten anzeigen&Tipps beim Programmstart zeigen&Größe&Größe:&Überspringen&Zeichenabstand (Zehntel-mm)&Rechtschreibprüfung&Stopp&Durchstreichen&Stil:&Stile:&Teilsatz&Symbol:&Tabelle&Oben&Oben:&Unterstrichen&Unterstreichen:&Rückgängig&Rückgängig &Einrücken&Hoch&Vertikale Ausrichtung:&Ansicht...&Dicke:&Dicke:&Fenster&Ja'%s' hat extra '..', ignoriert.'%s' ist ungültig'%s' ist kein gültiger numerischer Wert für Option '%s'.'%s' ist kein gültiger Nachrichtenkatalog.'%s' ist vermutlich ein Binärpuffer.'%s' sollte numerisch sein.'%s' sollte ausschließlich ASCII-Zeichen enthalten.'%s' sollte nur alphabetische Zeichen enthalten.'%s' sollte nur alphanumerische Zeichen enthalten.'%s' sollte ausschließlich Ziffern enthalten.(*)(Hilfe)(Kein)(Normaler Text)(Lesezeichen)(Kein)**)+, 64-bit Edition-...1.11.21.31.41.51.61.71.81.910 x 11 Zoll10 x 14 Zoll11 x 17 Zoll12 x 11 Zoll15 x 11 Zoll26 3/4 Umschlag, 3 5/8 x 6 1/2 Zoll9 x 11 Zoll: Datei existiert nicht!: unbekannter Zeichensatz: unbekannte Kodierung< &ZurückFette kursive Schrift
    fett kursiv unterstrichen
    Fette Schrift. Kursive Schrift. >Ein Fehlerbericht wurde erstellt im Verzeichnis Ein Fehlerbericht wurde erstellt. Er liegt im VerzeichnisEine nicht leere Sammlung muss aus 'element'-Knoten bestehenEin vordefinierter Gliederungspunkt.A0 Blatt, 841 x 1189 mmA1 Blatt, 594 x 841 mmA2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Quer 322 x 445 mmA3 Rotiert 420 x 297 mmA3 Quer 297 x 420 mmA3 Blatt, 297 x 420 mmA4 Extra 9.27 x 12.69 ZollA4 Plus 210 x 330 mmA4 Rotiert 297 x 210 mmA4 Quer 210 x 297 mmA4 Blatt, 210 x 297 mmA4 klein Blatt, 210 x 297 mmA5 Extra 174 x 235 mmA5 Rotiert 210 x 148 mmA5 Quer 148 x 210 mmA4 Blatt, 148 x 210 mmA6 105 x 148 mmA6 Rotiert 148 x 105 mmABCDEFGabcdefg12345ÄÖÜßäöüHINZUFÜGENASCIIÜberÜber %sAbsolutTatsächliche GrößeHinzufügenAktuelle HTML-Seite den Lesezeichen hinzufügenZu Benutzerfarben hinzufügenAddToPropertyCollection aufgerufen für einen allgemeinen accessorAddToPropertyCollection aufgerufen ohne gültigen adderBuch %s wird hinzugefügtDas Hinzufügen der Variante TEXT schlug fehlDas Hinzufügen der Variante utxt schlug fehlErweitertNach einem Absatz:LinksbündigRechtsbündigAusrichtungAlleAlle Dateien (%s)|%sAlle Dateien (*)|*Alle Dateien (*.*)|*.*Alle StileAlphabetischer ModusEin bereits registriertes Objekt wurde an SetObjectClassInfo übergebenWähle bereits ISP.Alt+Und enthält die folgenden Dateien: Animationsdatei hat nicht den Typ %ld.An Logdatei '%s' anhängen ([Nein] wird sie ersetzen)?AnwendungÜbernehmenArabischArabisch (ISO-8859-6)Hilfeverzeichnis %u nicht gefunden.KünstlerAbsteigendEigenschaftenVerfügbare Schriftarten.B4 (ISO) 250 x 353 mmB4 (JIS) Rotiert 364 x 257 mmB4 Umschlag, 250 x 353 mmB4 Blatt, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Rotiert 257 x 182 mmB5 (JIS) Quer 182 x 257 mmB5 Umschlag, 176 x 250 mmB5 Blatt, 182 x 257 mmB6 (JIS) 128 x 182 mmB6 (JIS) Rotiert 182 x 128 mmB6 Umschlag, 176 x 125 mmZURÜCKBMP: Speicheranforderung gescheitert.BMP: Konnte ungültiges Bild nicht speichern.BMP: Konnte RGB Farbtabelle nicht speichern.BMP: Konnte Daten nicht speichern.BMP: Dateikopf (Bitmap) konnte nicht geschrieben werden.BMP: Dateikopf (BitmapInfo) konnte nicht geschrieben werden.BMP: wxImage hat keine eigene wxPalette.ZurückHintergrundHintergrund&farbe:HintergrundfarbeBaltisch (ISO-8859-13)Baltisch (alt) (ISO-8859-4)Vor einem Absatz:BitmapBitmapdarsteller kann den Wert nicht wiedergeben; Typ des Werts:FettBerandungBerandungenUntenUnterer Rand (mm)EigenschaftenBox StileDurchsuchen&Ausrichtung der Gliederungspunkte:Stil der GliederungspunkteGliederungspunkteC Blatt, 17 x 22 Zoll&Löschen&Farbe:C3 Umschlag, 324 x 458 mmC4 Umschlag, 229 x 324 mmC5 Umschlag, 162 x 229 mmC6 Umschlag, 114 x 162 mmC65 Umschlag, 114 x 229 mmABBRECHENKAPITALIENCD-RomCHM-Handler unterstützt derzeit nur lokale Dateien.LÖSCHENBEFEHLKa&pitalienKann nicht rückgängig machen Das Bildformat für nicht durchsuchbare Eingabe kann nicht bestimmt werden.Kann Registrierungsschlüssel '%s' nicht schließen.Kann Inhalte des nicht unterstützten Typs %d nicht kopieren.Kann Registrierungsschlüssel '%s' nicht anlegen.Kann Thread nicht erzeugenKann kein Fenster der Klasse '%s' anlegen.Kann Schlüssel '%s' nicht löschenKann INI-Datei '%s' nicht löschenKann Wert '%s' von Schlüssel '%s' nicht löschen.Kann Unterschlüssel von '%s' nicht auflistenKann Werte von Schlüssel '%s' nicht auflistenKann Wert des nicht unterstützten Typs %d nicht kopieren.Kann aktuelle Position in Datei '%s' nicht finden.Kann keine Information über den Registrierungsschlüssel '%s' findenKann das Entpacken der zlib-Daten nicht initialisierenKann das komprimieren der zlib-Daten nicht initialisierenDas nicht vorhandene Verzeichnis "%s" kann nicht nach Änderungen durchsucht werden.Kann Registrierungsschlüssel '%s' nicht öffnenKann nicht vom entpackten Datenstrom lesen:%sKann den Entkomprimier-Strom nicht lesen: Unerwartetes EOF im zugrundeliegenden Strom.Kann Wert von '%s' nicht lesenKann Wert von Eintrag '%s' nicht lesenKann Bild nicht aus Datei '%s' laden: Unbekannte Dateiendung.Kann Logtexte nicht in Datei speichern.Kann Thread-Priorität nicht setzenKann Wert von '%s' nicht setzenKann nicht in den Standard-Eingabekanal des Kindprozesses schreibenKann nicht in den gepackten Datenstrom schreiben: %sAbbrechenKann Mutex nicht anlegen.Es können keine neuen ID Zeilen angelegt werden. Warscheinlich ist die maximale Anzahl an Zeilen erreicht.Kann Dateien '%s' nicht auflistenKann Dateien in Verzeichnis '%s' nicht auflistenKann keine aktive DFÜ-Verbindung finden: %sKann Adressbuchdatei nicht findenKann kein aktives Exemplar von "%s" bekommenKein Prioritätsbereich für Scheduling-Verfahren %d ermittelbar.Hostnamen nicht ermittelbarOffizieller Hostname nicht ermittelbarKann nicht auflegen - keine aktive DFÜ-Verbindung vorhanden.Kann OLE nicht initialisierenKann Sockets nicht initialisierenKann das Icon nicht von '%s' laden.Kann die Ressourcen nicht aus '%s' laden.Kann die Ressourcen nicht aus der Datei '%s' laden.HTML-Dokument %s kann nicht geöffnet werdenHTML-Hilfebuch %s kann nicht geöffnet werdenKann den Inhalt der Datei %s nicht öffnen!Kann Datei für den Postscriptdruck nicht öffnen!Kann Indexdatei %s nicht öffnen!Kann die Ressourcendatei '%s' nicht öffnen.Leere Seite kann nicht gedruckt werden.Kann die Typnamen nicht aus '%s' lesen!Kann Thread %lu nicht fortsetzen.Kann Thread %lx nicht fortsetzenKann Scheduling-Verfahren der Threads nicht ermittelnLokalisierung kann nicht auf die Sprache "%s" gesetzt werden.Kann Thread nicht starten: Fehler beim Beschreiben des TLS.Kann Thread %lu nicht anhalten.Kann nicht auf Threadende wartenGroß-/KleinschreibungBestimmter ModusZelleneigenschaftenKeltisch (ISO-8859-14)Zen&triertZentriertZentraleuropäisch (ISO-8859-2)ZentriertZentriere Text.ZentriertWä&hle...Ändere den Stil der ListeÄndere den Stil des ObjektesÄndere EigenschaftenÄndere StilÄnderungen werden nicht gesichert um das Überschreiben der vorhandenen Datei "%s" zu vermeiden.ZeichenstilKlicken um einen Punkt nach dem Gliederungspunkt hinzuzufügen.Klicken um eine schließende Klammer hinzuzufügen.Klicken um den Gliederungspunkt in Klammern zu setzen.Klicken um die Schriftart auf fett zu stellen.Klicken um die Schriftart auf kursiv zu stellen.Klicken um die Schriftart auf unterstrichen zu stellen.Klicken um die Nummerierung neu zu startenKlicken um eine Linie durch den Text zu ziehen.Markieren um den Text in Großbuchstaben anzuzeigen.Markieren um den Text in Kapitälchen darzustellen.Klicken um den Text tiefgestellt anzuzeigen.Klicken um den Text hochgestellt anzuzeigen.Wähle anzuwählenden ISPVerzeichnis wählen:Datei wählenWähle FarbeWähle SchriftartZirkuläre Abhängigkeit betreffend das Modul "%s" erkannt.SchließenKlasse nicht registriert.LöschenLogtexte löschenKlicken um den ausgewählten Stil anzuwenden.Klicken um nach einem Symbol zu navigieren.Klicken um die Änderungen der Schriftart zu verwerfen.Klicken um Wahl der Schriftart abzubrechen.Klicken um die Farbe der Schriftart zu ändern.Klicken um die Hintergrundfarbe des Textes zu ändern.Klicken um die Textfarbe zu ändern.Klicken um die Schriftart für diese Ebene zu wählen.Klicken um dieses Fenster zu schließen.Klicken um die Änderungen der Schriftart zu bestätigen.Klicken um Wahl der Schriftart zu bestätigen.Klicken um einen neuen Box Stil zu erzeugen.Klicken um einen neuen Zeichenstil zu erzeugen.Klicken um einen neuen Listenstil zu erzeugen.Klicken um einen neuen Absatzstil zu erzeugen.Klicken um eine neue Tabulatorposition zu erzeugen.Klicken um alle Tabulatorpositionen zu löschen.Klicken um den ausgewählten Stil zu löschen.Klicken um die ausgewählte Tabulatorposition zu löschen.Klicken um den ausgewählten Stil zu bearbeiten.Klicken um den ausgewählten Stil umzubenennen.SchließenAlles SchließenAktuelles Dokument schließenFenster schließenFarbeFarbeFarbauswahldialog schlug mit Fehler %0lx fehl.Farbe:Zeile konnte nicht hinzugefügt werden.Zeilenbeschreibung konnte nicht installiert werden.Zeilenindex nicht gefunden.Zeilenbreite kann nicht bestimmt werdenZeilenbreite kann nicht gesetzt werden.Kommandozeilenargument %d konnte nicht nach Unicode konvertiert werden und wird ignoriert.Allgemeiner Dialog schlug fehl mit dem Fehlercode %0lx.Zusammenfügen wird nicht durch dieses System unterstützt, bitte über den Fenster Manager einstellen.Komprimierte HTML-Hilfedatei (*.chm)|*.chm|ComputerDie Bezeichnung des Konfigurations-Eintrags kann nicht mit '%c' beginnen.BestätigenAktualisierung der Registry bestätigenVerbinde...InhalteKonvertierung zum Zeichensatz '%s' funktioniert nicht.KonvertierenIn Zwischenablage kopiert:"%s"Kopien:KopierenAuswahl kopierenKonnte temporäre Datei %s nicht erzeugenKonnte Zeilenindex nicht bestimmen.Zeilenposition kann nicht bestimmt werdenAnzahl an Zeilen konnte nicht ermittelt werden.Konnte Anzahl der Elemente nicht bestimmenKonnte nicht %s in %s extrahieren: %sKonnte Seite für ID nicht findenKonnte Kopfzeilenbeschreibung nicht erhalten.Konnte die Elemente nicht erhalten.Konnte die Eigenschaftsflags nicht erhalten.Konnte die ausgewählten Elemente nicht erhalten.Konnte Datei %s nicht finden.Konnte die Zeile nicht entfernen.Konnte die Anzahl der Elemente nicht erhalten.Konnte die Ausrichtung nicht setzen.Konnte die Zeilenbreite nicht setzen.Konnte das Arbeitsverzeichnis nicht setzenKonnte die Kopfzeilenbeschreibung nicht setzen.Konnte Sinnbild nicht setzen.Konnte die maximale Breite nicht setzen.Minimale Breite kann nicht gesetzt werden.Konnte Eigenschaftsflag nicht setzen.Kann Druckvorschau nicht starten.Kann Ausdruck nicht beginnen.Kann Daten nicht ins Fenster übertragen.Konnte Mutex-Sperre nicht bekommenKann Bild nicht zur Liste hinzufügen.Kann keinen Timer anlegen.Konnte das überlagerte Fenster nicht erzeugen.Konnte Übersetzungen nicht aufzählenKann Symbol '%s' in der dynamischen Bibliothek nicht findenKonnte den Schraffurstil von wxBrush nicht erfragen.Kann den aktuellen Threadzeiger nicht bekommen.Konnte den Kontext auf dem überlagerten Fenster nicht initialisieren.GIF Hash-Tabelle konnte nicht initialisiert werden.Konnte PNG-Bild nicht laden - Datei ist beschädigt oder der Speicher reicht nicht aus.Kann die Klangdaten nicht von '%s' laden.Verzeichnisname konnte nicht ermittelt werden.Fehler beim Öffnen der Audiodatei: %sKonnte Zwischenablage-Format '%s' nicht registrieren.Konnte einen Mutex nicht freigeben.Kann keine Informationen über das Listenelement %d bekommen.Konnte PNG-Bild nicht speichern.Kann Thread nicht beendenErzeugungsparameter %s nicht in den deklarierten RTTI-Parametern gefundenVerzeichnis anlegenNeues Verzeichnis anlegenStrg+AusschneidenAktuelles Verzeichnis:Angepasste GrößeZeilen anpassenAusschneidenAuswahl ausschneidenKyrillisch (ISO-8859-5)D Blatt, 22 x 34 ZollDDE 'poke' Anfrage gescheitertDEZIMALENTFENTFERNENDIB-Header: Kodierung entspricht nicht der Bittiefe.DIB-Header: Bildhöhe > 32767 pixels.DIB-Header: Bildbreite > 32767 pixels.DIB-Header: Unbekannte Bittiefe.DIB-Header: Unbekannte Kodierung.TEILEDL Umschlag, 110 x 220 mmRUNTERGestricheltDateiobjekt hat ein ungültiges DateiformatDatums Renderer kann den Wert nicht darstellen; Wert Typ:Fehlerbericht "%s"Fehlerbericht konnte nicht erstellt werden.Das Erstellen des Fehlerberichts ist fehlgeschlagen.DekorativStandardkodierungStandardschriftartStandarddruckerLöschenA&lles löschenStil löschenText löschenElement löschenAuswahl löschenStil %s löschen?Ungenutzte Sperr-Datei '%s' wurde gelöscht.Abhängigkeit "%s" des Moduls "%s" existiert nicht.AbsteigendArbeitsoberflächeEntwickelt von EntwicklerDFÜ-Verbindungs-Funktionen stehen nicht zur Verfügung, da der RAS-Dienst (Remote Access Service) auf dieser Maschine nicht installiert ist. Bitte installieren.Wussten Sie schon...DirectFB-Fehler %d aufgetreten.VerzeichnisseVerzeichnis '%s' konnte nicht angelegt werden.Verzeichnis '%s' konnte nicht gelöscht werden.Verzeichnis existiert nichtVerzeichnis existiert nichtÄnderungen verwerfen und letzte gesicherte Version laden?Zeige alle Indexelemente an, die den gegebenen Suchbegriff enthalten. Groß-/Kleinschreibung wird nicht beachtet.Einstellungen-Dialog anzeigenAnzeigen bieten Unterstützung beim Navigieren der Bücher auf der linken Seite.Wollen Sie den Befehl zum %s von Dateien mit der Erweiterung "%s" ändern ? Aktueller Wert ist; %s, Neuer Wert ist %s %1Möchten Sie die Änderungen nach %s speichern?Dokument:Dokumentation von Autoren der DokumentationNicht speichernFertigFertig.GepunktetVerdoppelnDoppelte Japanische Postkarte Rotiert 148 x 200 mmID doppelt verwendet: %dHerunterFreigebenE Blatt, 34 x 44 ZollENDEEINGABEEOF beim Lesen vom inotify BezeichnerESCESCAPEAUSFÜHRENBearbeitenElement bearbeitenBenötigte Zeit:Höhenwert berücksichtigen.Erlaube den maximalen Breitenwert.Minimalen Höhenwert einschalten.Erlaube den minimalen Breitenwert.Breitenwert einschalten.Vertikalabgleich einschalten.Ermöglicht eine Hintergrundfarbe.Einen Box Stilnamen eingebenEingabe eines ZeichenstilsEingabe eines ListenstilsEinen neuen Stilnamen eingebenEingabe eines AbsatzstilsBefehl zum Öffnen von Datei "%s" eingeben:Einträge gefundenUmschlag Einladung 220 x 220 mmAuswerten der Umgebungsvariablen schlug fehl. Es fehlt '%c' an Position %u in '%s'.FehlerFehler beim Schließen des epol BezeichnersFehler schließt kqueue VorgangFehler beim Anlegen des VerzeichnissesFehler beim Lesen des DIB-Bildes.Fehler in der Ressource: %sFehler beim Parsen der Optionen.Fehler beim Speichern der Benutzer-Optionen.Fehler während des Druckens:Fehler: Esperanto (ISO-8859-3)Geschätzte Zeit:Überlauf der EreigniswarteschlangeAusführbare Dateien (*.exe)|*.exe|AusführenBefehlsausführung '%s' schlug fehlBefehlsausführung '%s' schlug fehl mit Fehler: %ulExecutive, 7 1/4 x 10 1/2 ZollExportiere Registrierungsschlüssel: Datei "%s" besteht bereits und wird nicht überschrieben.Erweiterter Unix-Zeichensatz für Japanisch (EUC-JP)Extrahieren von '%s' in '%s' schlug fehl.FSchriftartnameFehler beim Zugriff auf Sperr-Datei.Das Hinzufügen des Bezeichners %d zum epoll Bezeichner %d schlug fehlAnforderung von %lu Kb Speicher für Bitmap gescheitert.Anforderung von Farbe für OpenGL gescheitertÄnderung des Video-Modus gescheitertÜberprüfung des Formats der Bilddatei "%s" gescheitert.Konnte Fehlerberichtsverzeichnis "%s" nicht aufräumen.Konnte Datei-Handle nicht schließen.Konnte Sperr-Datei '%s' nicht schließenKonnte Zwischenablage nicht schließen.Konnte das Display "%s" nicht schließenVerbindung fehlgeschlagen: Es fehlt der Benutzername bzw. das PasswortVerbindungsversuch gescheitert: kein anwählbares ISP.Konnte die Datei "%s" nicht nach Unicode konvertieren.Kopieren des Dialoginhalts in die Zwischenablage gescheitert.Kopieren des Registry-Werts '%s' gescheitertKopieren des Inhalts des Registrierungsschlüssels '%s' nach '%s' gescheitertKonnte die Datei '%s' nicht nach '%s' kopierenKopieren des Registrierungsschlüssels von '%s' in '%s' gescheitertErstellung der DDE-Zeichenkette gescheitertErstellung des MDI-Hauptrahmens gescheitert.Konnte keinen temporären Dateinamen erstellen.Konnte keine anonyme Unix-Pipe erstellenErzeugen eines Exemplars von "%s" gescheitert.Aufbau der Verbindung zum Server '%s' 'on topic' '%s' gescheitertCursor konnte nicht erzeugt werdenKonnte das Verzeichnis "%s" nicht erzeugen.Konnte Verzeichnis '%s' nicht erstellen (Haben Sie die nötigen Zugriffsrechte?)Epoll Beschreibungselement konnte nicht erzeugt werdenKonnte keinen Registrierungseintrag für '%s'-Dateien erstellen.Konnte keinen Standard-Finden/Ersetzen-Dialog erstellen (Fehler %d)Erzeugung der Weckleitung für die Ereignisschleife gescheitert.Konnte HTML-Dokument nicht in der Kodierung %s anzeigenKonnte Zwischenablage nicht leeren.Auflisten der Video-Modi gescheitertAufbau einer 'advise Schleife' mit dem DDE-Server gescheitertAufbau der DFÜ-Verbindung gescheitert: %sKann '%s' nicht ausführen Konnte curl nicht starten, bitte im PATH installieren.Konnte CLSID von '%s' nicht findenKonnte keine Übereinstimmung mit regulärem Ausdruck %s findenKonnte ISP-Namen '%s' nicht ermittelnKonnte die OLE Automatisierungsschnittstelle für "%s" nicht bekommenKonnte Daten nicht aus der Zwischenablage kopierenVersuch örtliche Systemzeit zu bekommen, fehlgeschlagen.Konnte Arbeitsverzeichnis nicht ermittelnKonnte GUI nicht initialisieren: kein Thema gefunden.Konnte MS-HTML-Hilfe nicht initialisieren.Konnte OpenGL nicht initialisierenVersuch gescheitert, die Einwählverbindung einzuleiten: %sEinfügen von Text in das Steuerelement fehlgeschlagen.Konnte die Sperr-Datei '%s' nicht lesenKonnte Signalbearbeitung nicht installierenThread-Verbindung gescheitert. Dies ist ein mögliches Speicherleck - Bitte Programm neu startenKonnte Prozess %d nicht abbrechenKonnte das Bitmap "%s" aus der Ressource nicht laden.Konnte das Symbol "%s" aus der Ressource nicht laden.Konnte das Bild %%d aus der Datei '%s' nicht laden.Konnte das Bild %d aus dem Strom nicht laden.Konnte das Bild aus der Datei "%s" nicht laden.Konnte Metadatei aus Datei "%s" nicht laden.Konnte mpr.dll nicht laden.Konnte die Ressource "%s" nicht laden.Laden der dynamischen Bibliothek '%s' gescheitertKonnte die Ressource "%s" nicht sperren.Konnte die Sperr-Datei '%s' nicht sperrenWechsel von Beschreibung %d in Epoll beschreibung %d fehlgeschlagenKonnte Zugriffszeit von Datei '%s' nicht ändernDie Überwachung der I/O Kanäle ist fehlgeschlagenKonnte '%s' nicht zum Lesen öffnenKonnte '%s' nicht zum Schreiben öffnenCHM-Archiv '%s' lässt sich nicht öffnen.Konnte die URL "%s" nicht im voreingestellten Browser öffnen.Konnte das Verzeichnis "%s" nicht zur Überwachung öffnen.Öffnen des Displays "%s" fehlgeschlagen.Konnte temporäre Datei nicht öffnen.Konnte Zwischenablage nicht öffnen.Analyse der Pluralformen fehlgeschlagen: '%s'Fehler bei der Vorbereitung zum Abspielen von "%s".Versuch Daten in der Zwischenablage abzulegen, gescheitertKonnte keine PID von Sperr-Datei lesen.Lesen der Konfigurationsoptionen fehlgeschlagen.Konnte Dokument aus der Datei "%s" nicht lesen.Konnte Ereignis von DirectFB Kanal nicht lesenKonnte nicht aus dem Weckkanal lesenUmleitung der Ein-/Ausgabe des Unterprozesses gescheitertUmleitung der Ein-/Ausgabe des Unterprozesses gescheitertVersuch DDE-Server '%s' zu registrieren, gescheitertVersuch gescheitert, an die Kodierung für den Zeichensatz '%s' zu erinnern.Konnte Fehlerberichtsdatei "%s" nicht entfernen.Konnte Sperr-Datei '%s' nicht löschen.Konnte unbenutzte Sperr-Datei '%s' nicht entfernen.Umbenennen des Registrieungswertes '%s' in '%s' gescheitertUmbenennen der Datei '%s' nach '%s' fehlgeschlagen, da die Zieldatei bereits existiert.Umbenennen des Registrieungsschlüssels von '%s' in '%s' gescheitert.Konnte Daten von der Zwischenablage nicht bekommen.Konnte Zugriffszeit von Datei '%s' nicht ermittelnVersuch den Inhalt der RAS-Fehlernachricht zu holen, gescheitertKonnte die von der Zwischenablage unterstützten Formate nicht ermittelnDas Dokument konnte nicht in die Datei "%s" gesichert werden.Das Bitmap-Bild konnte nicht in der Datei "%s" geschrieben werden.Versuch gescheitert, eine DDE-Benachrichtigung zu schickenKonnte den FTP-Transfermodus nicht auf '%s' setzen.Konnte Dateien nicht in die Zwischenablage kopieren.Konnte die Zugriffsrechte für Datei '%s' nicht setzenVersuch gescheitert, die Prozess-Priorität zu setzenKonnte die Zugriffsrechte der temporären Datei nicht setzenSetzen von Text in das Text-Steuerelement fehlgeschlagen.Versuch gescheitert, die Thread-Nebenläufigkeit auf Stufe %lu zu setzenVersuch gescheitert, die Thread-Priorität %d zu setzen.Das Erzeugen einer nicht blockierenden Pipe ist fehlgeschlagen, das Programm könnte stehen bleiben.Versuch das Bild '%s' im VFS-Speicher zu laden, gescheitert!Wechsel von DirectFB Pipe in den Nicht blockierenden Modus schlug fehlFehlgeschlagen die aufweck Pipe in den nicht blockierenden Modus umzuschaltenVersuch den Thread zu beenden, gescheitert.Versuch gescheitert, die 'advise Schleife' mit DDE-Server zu beenden.Versuch gescheitert, die DFÜ-Verbindung zu beenden: %sKonnte die Datei '%s' nicht 'berühren'Konnte die Sperrung von Datei '%s' nicht aufhebenDie Registrierung des DDE-Servers '%s' konnte nicht aufgehoben werdenKonnte Descriptor %d vom Epoll Descriptor nicht %d austragenKann Benutzer-Konfigurationsdatei nicht aktualisieren.Konnte den Fehlerbericht nicht hochladen (Fehlercode %d).Konnte Sperr-Datei '%s' nicht schreibenFalschFamilieDateiDie Datei "%s" konnte nicht zum Lesen geöffnet werden.Die Datei "%s" konnte nicht zum Schreiben geöffnet werden.Datei '%s' existiert bereits, möchten Sie diese wirklich überschreiben?Datei '%s' existiert bereits. Möchten Sie diese wirklich überschreiben?Die Datei '%s' konnte nicht gelöscht werden.Die Datei '%s' konnte nicht nach '%s' umbenannt werden.Datei konnte nicht geladen werden.Datei Dialog schlug fehl mit dem Fehlercode %0lx.DateifehlerDateiname bereits vorhandenDateienDateien (%s)FilterSuchenErste(r)Erste SeiteFestgesetztSchrift fester Breite:Schrift fester Breite.
    fett kursiv SchwebendDisketteFolio, 8 1/2 x 13 ZollSchriftartSchrift&dicke:Schriftgröße:Schrifst&il:Schrift:Indexdatei der Schriftarten %s während des Ladens der Schriften verschwunden.'Fork' gescheitertVorwärtsForward hrefs werden nicht unterstütztSuchbegriff %i mal gefundenVon:GIF: Ungültiger Index.GIF: Datenstrom scheint unvollständig zu sein.GIF: Fehler im GIF-Bildformat.GIF: nicht genug Speicher.GIF: unbekannter Fehler!Das GTK+, das auf dieser Maschine installiert ist, ist zu alt um Bildschrimanordnung zu unterstützen, bitte GTK+ 2.12 oder neuer installieren. GTK+ ThemaAllgemeinGenerisches PostScriptGerman Legal Endlospapier, 21,59 x 33,02 cmGerman Std Endlospapier, 8 1/2 x 12 ZollGetProperty aufgerufen ohne gültigen getterGetPropertyCollection aufgerufen für einen allgemeinen accessorGetPropertyCollection aufgerufen ohne gültigen Collection getterVorherige HTML-Seite zeigenNächste HTML-Seite zeigenIn die nächste Dokumentebene gehenGehe zum BenutzerverzeichnisGehe zum 'Parent'-VerzeichnisGrafik von Griechisch (ISO-8859-7)GrooveGzip wird nicht von dieser zlib-Version unterstütztHILFEPOS 1HTML-Hilfe-Projekt (*.hhp)|*.hhp|HTML-Anker %s existiert nicht.HTML-Dateien (*.html;*.htm)|*.html;*.htm|FestplatteHebräisch (ISO-8859-8)HilfeHilfe zu den Browser-EinstellungenHilfeindexHilfe druckenHilfethemenHilfe-Bücher (*.htb)|*.htb|Hilfe-Bücher (*.zip)|*.zip|Hilfeverzeichnis "%s" nicht gefunden.Hilfedatei "%s" nicht gefunden.Hilfe: %sVerberge %sAndere ausblendenDiese Meldung ausblenden.StartBenutzerverzeichnisWie das Objekt relativ zum Text angeordnet wird.ICO: Fehler beim Lesen der DIB-Maske.ICO: Schreibfehler beim Speichern.ICO: Bild zu groß für ein Icon.ICO: Bild zu breit für ein Icon.ICO: Ungültiger Icon-Index.IFF: Datenstrom scheint unvollständig zu sein.IFF: Fehler im IFF-Bildformat.IFF: nicht genug Speicher.IFF: unbekannter Fehler!EINFEINFÜGENISO-2022-JPBild & Text Renderer kann den Wert nicht darstellen; Wert TypWenn möglich die Layout Parameter ändern um den Ausdruck schmaler zu machen.Falls Sie weitere Informationen betreffend diesen Fehlerberichtes haben, tragen Sie sie bitte hier ein, um sie zum Bericht hinzuzufügen:Falls Sie diesen Fehlerbericht vollständig unterdrücken möchten, drücken Sie bitte "Abbrechen". Bedenken Sie aber bitte, dass dies eventuell die Verbesserung des Programms behindern kann, nach Möglichkeit sollten Sie also den Fehlerbericht erstellen. Ignoriere Wert "%s" von Schlüssel "%s".Ungültige Objektklasse (nicht wxEvtHandler) als EreignisquelleUngültige Anzahl Parameter für ConstructObject-MethodeUngültige Anzahl Parameter für Create-MethodeUngültiger Verzeichnisname.Ungültige Dateiangabe.Bild und Bildmaske haben verschiedene Größen.Bilddatei hat nicht den Typ %d.Bilddatei hat nicht den Typ %s.Versuch eine 'rich edit control' zu erstellen gescheitert, verwende stattdessen ein einfaches Text-Control. Bitte 'riched32.dll' neu installierenEs war nicht möglich, die Eingabe des Unterprozesses zu verarbeitenKonnte nicht die Zugriffsrechte der Datei '%s' ermittelnVersuch die Datei '%s' zu überschreiben, gescheitertKonnte die Zugriffsrechte für Datei '%s' nicht setzenUngültige GIF Bildgröße (%u, %d) für das Bild #%uFehlerhafte Anzahl von ArgumentenEinrückenEinrückungen && ZeichenabstandIndexIndisch (ISO-8859-12)InfoInitialisierung in "post init" fehlgeschlagen, breche ab.EinfügenFeld einfügenBild einfügenObjekt einfügenText einfügenFügt einen Seitenumbruch vor dem Absatz ein.EinfügenUngültige GTK+ Kommentarzeile, benutzen sie "%s --help"Ungültiger Index des TIFF-Bilds.Ungültiges DatenansichtselementUngültige Angabe '%s' des Displays.Ungültige Angabe '%s' der FenstergrößeUngültiges inotify-Ereignis für "%s"Ungültige Sperr-Datei '%s'.Ungültiger Nachrichtenkatalog.Ungültige oder Null Objekt-ID an GetObjectClassInfo übergebenUngültige oder Null Objekt-ID an HasObjectClassInfo übergebenUngültiger regulärer Ausdruck '%s': %sUngültiger Wert %ld für einen booleschen Schlüssel "%s" in der Konfigurationsdatei.KursivItaly Umschlag, 110 x 230 mmJPEG: Lesefehler - Datei ist vermutlich beschädigt.JPEG: Konnte Bild nicht speichern.Japanische Doppelte Postkarte 200 x 148 mmJapanischer Briefumschlag Chou #3Japanischer Briefumschlag Chou #3 RotiertJapanischer Briefumschlag Chou #4Japanischer Briefumschlag Chou #4 RotiertJapanischer Briefumschlag Kaku #2Japanischer Briefumschlag Kaku #2 RotiertJapanischer Briefumschlag Kaku #3Japanischer Briefumschlag Kaku #3 RotiertJapanischer Briefumschlag You #4Japanischer Briefumschlag You #4 RotiertJapanische Postkarte 100 x 148 mmJapanische Postkarte Rotiert 100 x 148 mmSpringen zuBündigText rechts und links ausrichtenKOI8-RKOI8-UNum_Num_PlusNum_AnfangNum_DezimalNum_EntfNum_DivisionNum_RunterNum_EndeNum_EingabeNum_GleichNum_Pos 1Num_EinfgNum_LinksNum_MalNum_NächsterNum_Bild RunterNum_Bild HochNum_VorigerNum_RechtsNum_TrennzeichenNum_LeertasteNum_MinusNum_TabNum_HochZe&ilenabstand:LINKSQuerformatLetzte(r)Letzte SeiteDie letzte wiederholte Nachricht ("%s", %lu Mal) wurde nicht ausgegebenDie letzte wiederholte Nachricht ("%s", %lu Mal) wurde nicht ausgegebenLedger, 17 x 11 ZollLinksLinks (&ertse Zeile):Linker Rand (mm):Linksbündiger Text.Legal Extra 9 1/2 x 15 ZollLegal, 8 1/2 x 14 ZollLetter Extra 9 1/2 x 12 ZollBrief Extra Quer 9.275 x 12 ZollBrief Plus 8 1/2 x 12.69 ZollBrief Rotiert 11 x 8 1/2 ZollLetter Small, 8 1/2 x 11 ZollBrief Quer 8 1/2 x 11 ZollLetter, 8 1/2 x 11 ZollLizenzDünnZeile %lu der Abbildungsdatei "%s" hat ungültige Syntax, übersprungen.Zeilenabstand:Verweis enthielt '//', in absoluten Link umgewandelt.ListenstilListenstileSchriftgröße der Listen in Punkt.Listet die verfügbaren Schriftarten auf.%s-Datei ladenLaden: Sperr-Datei '%s' hat falschen Besitzer.Sperr-Datei '%s' hat falsche Zugriffsrechte.Logtext in Datei '%s' gespeichert.KleinbuchstabenRömische Ziffern in KleinbuchstabenMDI childMENÜDie MS-HTML-Hilfe funktioniert nicht, da die MS-HTML-Hilfe-Bibliothek nicht installiert ist. Bitte installieren Sie sie.Ma&ximierenMacArabicMacArmenianMacBengaliMacBurmeseMacCelticMacCentralEurRomanMacChineseSimpMacChineseTradMacCroatianMacCyrillicMacDevanagariMacDingbatsMacEthiopicMacExtArabicMacGaelicMacGeorgianMacGreekMacGujaratiMacGurmukhiMacHebrewMacIcelandicMacJapaneseMacKannadaMacKeyboardGlyphsMacKhmerMacKoreanMacLaotianMacMalayalamMacMongolianMacOriyaMacRomanMacRomanianMacSinhaleseMacSymbolMacTamilMacTeluguMacThaiMacTibetanMacTurkishMacVietnameseBitte auswählen:RandfigurenGroß- und Kleinschreibung beachtenMaximale Höhe:Maximale Breite:Medienwiedergabe-Fehler: %sVFS-Speicher beinhaltet bereits die Datei '%s'!MenüNachrichtMetal-ThemaMethode oder Eigenschaft nicht gefunden.Mi&nimierenMinimale Höhe:Minimale Breite:Ein notwendiger Parameter fehlt.ModernGeändertInitialisierung von Modul "%s" fehlgeschlagen.Monarch Envelope, 3 7/8 x 7 1/2 ZollÜberwachen einzelner Dateien auf Änderungen wird zurzeit nicht unterstützt.Abwärts verschiebenNach obenVerschiebt das Objekt zum nächsten Absatz.Verschiebt das Objekt in den vorherigen Absatz.Mehrfache ZelleneigenschaftenNum_LOCKNameNetzwerkNeuNeuer &Kastenstil...Neuer &Zeichenstil...Neuer &Listenstil...Neuer &Absatzstil...Neuer StilVerzeichnis anlegenNeues &ElementNeuerNameWeiterNächste HTML-Seite zeigenNeinKein Animationshandler für Typ %ld definiert.Keine Bildbehandlungsroutine für den Typ %d definiert.Es existiert keine ZeileFür die ausgewählte Spalte existiert nicht.Für die ausgewählte Zeilenposition existiert nicht.Keine voreingestellte Anwendung für HTML Dateinen.Keine Einträge gefunden.Keine Schriftart für die Kodierung '%s' gefunden, es ist aber eine Alternative '%s' verfügbar. Möchten Sie diese Schriftart für die Kodierung wählen (sonst müssen Sie einen anderen auswählen)?Keine Schriftart für die Kodierung '%s' gefunden, Möchten Sie eine Schriftart für die Kodierung wählen (sonst wird der Text mit dieser Kodierung nicht richtig angezeigt)?Kein Handler für den Animationstyp gefunden.Dieses Bildformat wird nicht unterstützt.Bildformat %d wurde nicht definiert.Bildformat %s wurde nicht definiert.Passende Seite noch nicht gefundenKein Renderer oder ungültiger Renderer Typ für die benutzte Dateizeile aufgeführtKein Renderer für diese Zeile festgelegt.Kein TonKeine unbenutzte Farbe wurde im Bild unterdrückt.Keine unbenutzte Farbe im Bild.Keine gültige Abbildung in der Datei "%s" gefunden.KeinNordisch (ISO-8859-10)NormalNormaler Zeichensatz
    und unterstrichen Normal Font:Nicht %sNicht verfügbarNicht unterstrichenNote, 8 1/2 x 11 ZollBemerkungAnzahl an Zeilen konnte nicht bestimmt werden.Nummerierung umrandetOKOLE Automatisierungsfehler in %s: %sObjekteigenschaftenObjektanwendung unterstützt die genannten Argumente nicht.Objekte müssen ein ID-Attribut besitzen.Datei öffnenÖffne HTML-DokumentÖffne Datei "%s"Öffnen...OpenGL Funktion "%s" schlug fehl %s (Fehler %d)Ausführung nicht erlaubt.Option '%s' konnte nicht negiert werdenOption '%s' erwartet einen Wert.Option '%s': '%s' kann nicht in ein Datum umgewandelt werden.EinstellungenAusrichtungWindow IDs ausgeschalten. Vorgeschlagene Auswahl schließen.UmrandungBeginnÜberlauf beim Umwandeln der Argumentwerte.BILD RUNTERBILD HOCHPAUSEPCX: Speicheranforderung gescheitertPCX: Bildformat wird nicht unterstütztPCX: ungültiges BildPCX: dies ist keine PCX-Datei.PCX: unbekannter Fehler!PCX: Versionsnummer zu niedrigBILD HOCHBILD RUNTERPNM: Speicheranforderung gescheitert.PNM: Datei-Format wurde nicht erkannt.PNM: Datei wurde abgeschnitten.PRC 16K 146 x 215 mmPRC 16K RotiertPRC 32K 97 x 151 mmPRC 32K RotiertPRC 32K(Groß) 97 x 151 mmPRC 32K(Groß) RotiertPRC Umschlag #1 102 x 165 mmPRC Umschlag #1 Rotated 165 x 102 mmPRC Umschlag #10 324 x 458 mmPRC Umschlag #10 Rotiert 458 x 324 mmPRC Umschlag #2 102 x 176 mmPRC Umschlag #2 Rotiert 176 x 102 mmPRC Umschlag #3 125 x 176 mmPRC Umschlag #3 Rotiert 176 x 125 mmPRC Umschlag #4 110 x 208 mmPRC Umschlag #4 Rotiert 208 x 110 mmPRC Umschlag #5 110 x 220 mmPRC Umschlag #5 Rotiert 220 x 110 mmPRC Umschlag #6 120 x 230 mmPRC Umschlag #6 Rotiert 230 x 120 mmPRC Umschlag #7 160 x 230 mmPRC Umschlag #7 Rotiert 230 x 160 mmPRC Umschlag #8 120 x 309 mmPRC Umschlag #8 Rotiert 309 x 120 mmPRC Umschlag #9 229 x 324 mmPRC Umschlag #9 Rotiert 324 x 229 mmDRUCKENAuffüllungSeite %dSeite %d aus %dSeiten-EinstellungenSeiteneinstellungenSeitenPapierformatAbsatzstileEin bereits registriertes Objekt wurde an SetObject übergebenEin unbekanntes Objekt wurde an GetObject übergebenEinfügenAuswahl einfügenP&unktZugriffsrechteBildeigenschaftenKonnte keine Pipe anlegenBitte wählen Sie eine gültige Schriftart.Bitte wählen Sie eine bestehende Datei.Bitte wählen Sie die darzustellende Seite:Bitte gewünschte ISP-Verbindung auswählenBitte installieren Sie eine neuere Version von comctl32.dll (mindestens Version 4.70 wird benötigt, aber Sie haben nur Version %d.%02d).Bitte die Zeilen aufrufen um ihren Ablauf anzuzeigen und zu bestimmen:Bitte warten Sie während gedruckt wird...Schriftgröße in PunktZeiger wurde nicht korrekt auf das Kontrollelement gesetzt.Zeiger wurde nicht korrekt auf das Model gesetzt.HochformatPositionPostScript-DateiEinstellungenEinstellungen...VorbereitungVorschau:Vorherige SeiteDruckenDruckvorschauFehler bei der DruckvorschauSeitenbereichDruckereinstellungenFarbig druckenDruck&vorschau...Erzeugung der Druckvorschau fehlgeschlagenDruckvorschau...DruckersteuerungDiese Seite druckenIn Datei druckenDrucken...DruckerDruckbefehl:Drucker-EinstellungenDrucker-Einstellungen:Drucker...Drucker:DruckenDrucken von Fehler beim DruckenDrucke Seite %d von %dDrucke Seite %d...Drucke...AusdruckBearbeitung des Fehlerberichts fehlgeschlagen, belasse die Dateien im Ordner "%s".Prozess Renderer konnte den Wert nicht darstellen; Wert Typ:Fortschritt:EigenschaftenEigenschaftEigenschaftsfehlerQuarto, 215 x 275 mmFrageBeenden%s BeendenDieses Programm beendenEINGABERECHTSRawCtrl+Lesefehler in Datei '%s'BereitWiederholenLetzte Aktion wiederholenAktualisiereRegistrierungsschlüssel '%s' bereits vorhanden.Registrierungsschlüssel '%s' existiert nicht, Umbenennung daher nicht möglich.Registrierungsschlüssel '%s' wird vom System benötigt, durch seine Entfernung wird das System unbrauchbar: Abbruch.Registrierungswert '%s' bereits vorhanden.RegulärRelativRelevante Einträge:Verbleibende Zeit:EntferneGliederungspunkt entfernenAktuelle HTML-Seite als Lesezeichen entfernenRenderer "%s" hat eine ungültige Version %d.%d und kann nicht geladen werden.Darstellung gescheitert.Liste neu nummerieren&ErsetzenErsetzenAlle &ersetzenAuswahl ersetzenErsetzen durch:Erforderlicher Informationseintrag ist leer.Ressource '%s' ist kein gültiger Nachrichtenkatalog.Rückgängig auf GespeichertesGratRechtsRechter Rand (mm):Rechtsbündiger Text.RomanVordefinierter Gliederungspunkt:ROLLEN_LOCKAUSWAHLTRENNERS-AbfLeertasteSPEZIALSubtrahierenSpeichernDatei %s speichern&Speichern unter...Speichern unterSpeichern unterAktuelles Dokument speichernAktuelles Dokument mit einen anderen Dateinamen speichernLogtexte in Datei speichernSkriptSuchenDen Inhalt der Hilfebücher nach allem Auftreten des oben eingegebenem Begriff durchsuchenSuchrichtungSuchen nach:Alle Bücher durchsuchenSuchen...AbschnitteSuchfehler in Datei '%s'Positionierungsfehler bei Datei '%s' (große Dateien werden nicht von stdio unterstützt).Alles auswählenAlles auswählenDokument-Vorlage wählenDokument-Anzeige ('View') wählenWähle normal oder fett.Wähle normal oder kursiv.Wähle unterstrichen oder nicht unterstrichen.AuswahlWählt die Listenebene zur Bearbeitung.Trennungszeichen nach der Option '%s' erwartet.Stil der Zelle einstellenSetProperty aufgerufen ohne gültigen SetterDas setzen der Verzeichniszugriffszeit ist auf dieser Betriebssystemversion nicht unterstütztEinstellungen...Mehrere aktive DFÜ-Verbindungen gefunden, wähle eine davon aus.Umschalt+Versteckte Verzeic&hnisse anzeigenV&ersteckte Dateien anzeigenAlles zeigenZeige den "Über"-DialogAlles zeigenAlle Themen im Index anzeigenVersteckte Verzeichnisse anzeigenSuchbaum ein-/ausschaltenZeigt einen Unicode-Teilzeichensatz.Zeigt eine Vorschau der Gliederungspunkteinstellungen.Zeigt eine Vorschau der Schriftarteinstellungen.Zeigt eine Vorschau der Schriftart.Zeigt eine Vorschau der Absatzeinstellungen.Zeigt die Schriftvorschau.Einfaches einfarbiges ThemaEinzelGrößeGröße:ÜberspringenGeneigtKa&pitälchenFettBedauere, diese Datei konnte nicht geöffnet werden.Nicht genug Speicher für Vorschau.Bedauere, der Name ist bereits besetzt. Bitte anderen auswählen.Bedauere, das Format dieser Datei ist unbekannt.Klangdaten haben ein nicht unterstütztes Format.Klangdatei '%s' besitzt ein nicht unterstütztes Format.ZwischenraumRechtschreibprüfungStandardStatement, 5 1/2 x 8 1/2 ZollStatischStatus:StopDurchstreichenStringTo Colour: Falsche Farbangabe '%s'StilStil-OrganisatorStil:Tiefgestell&tHochge&stelltSuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSymbolSymbolschri&ftart:SymboleTabulatorTIFF: Speicheranforderung gescheitert.TIFF: Fehler beim Laden des Bildes.TIFF: Fehler beim Lesen des Bildes.TIFF: Schreibfehler beim Speichern.TIFF: Schreibfehler beim Speichern.TIFF: Bildgröße ist außergewöhnlich groß.TabelleneigenschaftenTabloid Extra 11.69 x 18 ZollTabloid, 11 x 17 ZollTabulatorenSchreibmaschineVorlagenText Renderer kann Wert nicht darstellen; Wert Typ:Thai (ISO-8859-11)Der FTP-Server unterstützt den passiven Transfermodus nicht.Der FTP-Server unterstützt nicht das PORT-Kommando.Die verfügbaren Gliederungspunktstile.Die verfügbaren Schriftarten.Die Hintergrundfarbe.Die untere Randgröße.Die untere Auffüllung.Abstand nach unten.Die Gliederungspunktzeichen.Der Zeichencode.Die Zeichensatz '%s' ist nicht bekannt. Wählen Sie einen Ersatzzeichensatz oder 'Abbrechen', falls er nicht ersetzt werden kann.Das Format '%d' für die Zwischenablage existiert nicht.Der voreingestellte Stil für den nächsten Absatz.Verzeichnis '%s' existiert nicht. Soll es jetzt erstellt werden?Das Dokument "%s" passt nicht horizontal auf die Seite und wird beim Drucken abgeschnitten. Wollen sie dennoch mit dem Drucken fortfahren?Die Datei '%s' existiert nicht und konnte nicht geöffnet werden. Sie wurde aus der Liste kürzlich verwendeter Dateien entfernt.Der Ersteinzug.Die nachfolgenden Standard GTK+ Optionen werden ebenfalls unterstützt: Die Schriftfarbe.Die Schriftart.Die Schriftart aus der das Symbol entnommen wurde.Die Schriftgröße in Punkt.Die Schriftgröße in Punkt.Einheit der Schriftgröße in Punkt oder Pixel.Die Schriftschitt.Die Schriftdicke.Das Format der Datei '%s' konnte nicht bestimmt werden.Der Linkseinzug.Der linke Rand.Die linke Auffüllung.Abstand nach links.Der Zeilenabstand.Die Nummer des ListenelementsDie lokale ID ist unbekannt.Die Objekthöhe.Die maximale Objekthöhe.Die maximale Objektbreite.Die minimale Objekthöhe.Die minimale Objektbreite.Die Objektbreite.Die Umrandungsebene.Die vorangegangene Nachricht wurde ein Mal wiederholt.Die vorangegangene Nachricht wurde %lu Mal wiederholt.Die vorangegangene Nachricht wurde ein Mal wiederholt.Der Drucken Dialog hat einen Fehler zurückgegeben.Der anzuzeigende Bereich.Der Fehlerbericht enthält die unten aufgelisteten Dateien. Bitte stellen Sie sicher, dass alle Dateien, die vertrauliche Informationen enthalten, nicht ausgewählt sind; sie werden dann aus dem Fehlerbericht entfernt. Der benötigte Parameter '%s' wurde nicht angegeben.Der Rechtseinzug.Der rechte Rand.Die rechte Auffüllung.Abstand nach rechts.Der Abstand nach einem Absatz.Der Abstand vor einem Absatz.Die Stilname.Der Stil auf dem dieser Stil basiert.Die Schriftvorschau.Das System kann die aufgeführte Datei nicht finden.Die Tabulatorposition.Die Tabulatorpositionen.Der Text konnte nicht gesichert werden.Der obere Rand.Die obere Füllung.Abstand nach oben.Der Wert für die Option '%s' muss angegeben werden.Die Version des auf dieser Maschine installierten RAS-Dienstes ist zu alt. Bitte auf den neusten Stand bringen (die folgende benötigte Funktion fehlt: %s).wxGtkPrinterDC kann nicht benutzt werden.Es existiert keine Zeile oder Darstellung für den festgelegten Zeilenindex.Es gab ein Problem bei der Seiteneinrichtung: eventuell müssen Sie einen Standarddrucker einrichten.Dieses Dokument passt nicht horizontal auf die Seite und wird beim drucken abgeschnitten.Dies ist kein %s.Diese Platform unterstützt die Hintergrundtransparenz nicht.Dieses Programm wurde mit einer zu alten Version von GTK+ übersetzt, bitte mit GTK+2.12 oder neuer erstellen.Dieses System unterstützt nicht die Komponente zur Darstellung der Datumsauswahl. Installieren Sie bitte eine neuere Version der comctl32.dll.Thread-Modul-Initialisierung gescheitert: Wert konnte nicht im lokalen Speicherbereich des Thread gespeichert werdenThread-Modul-Initialisierung gescheitert: Thread-Schlüssel konnte nicht erstellt werdenThread-Modul-Initialisierung gescheitert: Index konnte nicht im lokalen Speicherbereich des Thread allokiert werdenThread-Prioritätseinstellung wird ignoriertHorizontal anordnenVertikal anordnenTimeout beim Warten auf eine Verbindung zum FTP-Server, versuchen Sie passiven Modus.Konnte Zeitgeber nicht anlegen.Tipp des TagesBedauere, Tipps stehen nicht zur VerfügungBis:Umschalt Renderer konnte den Wert nicht darstellen; Wert Typ:Zu viele EndStyle-Aufrufe!Zu viele Farben in PNG; das Bild wird vielleicht verschmiert angezeigt.ObenOberer Rand (mm):Übersetzungen von ÜbersetzerWahrBeim Versuch, die Datei '%s' aus dem VFS-Speicher zu entfernen, wurde festgestellt, dass sie gar nicht geladen war!Türkisch (ISO-8859-9)TypSchriftart eingeben.Größe in Punkt angeben.Typfehler in Argument %u.Typ muss eine enum-long Umwandlung habenDie Typoperation "%s" ist fehlgeschlagen: Die Eigenschaft bezeichnet mit "%s" ist vom Typ "%s", NICHT "%s".HOCHUS Std Endlospapier, 14 7/8 x 11 ZollUS-ASCIINicht möglich Benachrichtigung der Überwachung hinzuzufügenFehlgeschlagen eine Beobachtung an die Kqueue anzuhängenNicht möglich das Handle mit dem I/O Beendigungsport in Verbindung zu bringenKonnte I/O Vervollständigungs Port-Handle nicht schließen.Konnte Inotify Instanz nicht schließenKonnte Pfad '%s' nicht schließenKonnte das Handle für '%s' nicht schließenKonnte den I/O Vervollständigungs-Port nicht erzeugenErzeugen des IOCP Arbeitsthreads fehlgeschlagenErzeugen der Inotify Instanz fehlgeschlagenErzeugen der kqueue Instanz fehlgeschlagenNicht möglich das Kompletierungspaket aufzulösenEreignisse von Kqueue zu erhalten fehlgeschlagenNicht möglich mit ursprüngliche Drag&Drop Daten umzugehenNicht möglich GTK+ zu initialisieren, ist DISPLAY korrekt gesetzt?Konnte das Hildon Programm nicht initialisierenPfad '%s' lässt sich nicht öffnenDas angeforderte HTML-Dokument konnte nicht geöffnet werden: %sDer Klang kann nicht asynchron abgespielt werden.Nicht möglich den Ausführungsstatus zu sendenKonnte nicht vom Inotify Beschreibungselement lesenZurücksetzen der Inotify Überwachung nicht möglichZurücksetzen der Kqueue Überwachung nicht möglichKonnte die Überwachung für '%s' nicht aufsetzen.Nicht möglich den Arbeits Thread IOCP zu startenLöschen rückgängig machenUnterstreichenUnterstrichenRückgängigLetzte Aktion zurücknehmenUnerwartete Zeichen folgen der Option '%s'.Unerwartetes Ereignis für "%s": Kein passender Überwachungs-Deskriptor.Unerwarteter Parameter '%s'Neue unerwartete I/O Ausführungs Port wurde erstelltUnfreundliche Beendigung des ArbeitsthreadsUnicodeUnicode 16 bit (UTF-16)Unicode 16 Bit Big Endian (UTF-16BE)Unicode 16 Bit Little Endian (UTF-16LE)Unicode 32 Bit (UTF-32)Unicode 32 Bit Big Endian (UTF-32BE)Unicode 32 Bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)Einrücken aufhebenEinheit für die untere Randbreite.Einheiten für den unteren BundstegEinheiten für die untere Umrissbreite.Einheiten für die untere Auffüllung.Einheit für den Abstand nach unten.Einheiten für die linke Randbreite.Einheiten für den linken BundstegEinheiten für die linke Umrissbreite.Einheiten für die linke AuffüllungEinheit für den Abstand nach links.Einheiten für die maximale Objekthöhe.Einheiten für die maximale Objektbreite.Einheiten für die minximale Objekthöhe.Einheiten für die minimale Objektbreite.Einheiten für dir Objekthöhe.Einheiten für die Objektbreite.Einheiten für die rechte Randbreite.Einheiten für den rechten Bundsteg.Einheiten für die rechte Umrissbreite.Einheit für die Auffüllung rechts.Einheit des Abstands nach rechts.Einheit für die Breite des oberen Randes.Einheiten für den oberen Rand.Einheit für die Breite des obren Umrisses.Einheit für die obere AuffüllungEinheit des Abstands nach oben.UnbekanntUnbekannter DDE-Fehler %08xUnbekanntes Objekt an GetObjectClassInfo übergebenUnbekannte Einheit für die PNG Auflösung %dUnbekannte Eigenschaft %sUnbekannter TIFF Auflösungseinheit %d ignoriertUnbekanntes DatenformatUnbekannter Fehler bei Behandlung dynamischer BibliothekUnbekannte Kodierung (%d)Unbekannter Fehler %08xUnbekannte AusnahmeUnbekanntes BilddateiformatUnbekannte 'long'-Option '%s'Unbekannter Name oder unbekanntes Argument.Unbekannte Option '%s'Unzutreffendes '{'-Zeichen in einem Eintrag des MIME-Typs %s.Unbenanntes KommandoNicht angegebenNicht unterstütztes Format in der Zwischenablage.Unbekanntes Thema '%s'.HochGroßbuchstabenRömische Ziffern in GroßbuchstabenVerwendung: %sBenutze die aktuellen Einstellungen für die Ausrichtung.Es existiert kein gültiger Zeiger auf das Kontrollelement zur der ursprünglichen DatenVerifizierungs-KonfliktWertWert muss %s oder höher sein.Wert muss %s oder kleiner sein.Wert muss zwischen %s und %s liegen.Version VertikalabgleichDateien mit Details anzeigenDateien als Liste anzeigenDarstellungWINDOWS_LINKSWINDOWS_MENÜWINDOWS_RECHTSWarten auf ein Eingabe-/Ausgabe Epoll Beschreibungselement %d fehlgeschlagenWarnung: DickeWesteuropäisch (ISO-8859-1)Westeuropäisch mit Euro (ISO-8859-15)Ob der Schrifttyp unterstrichen ist.Ganzes WortNur ganze WorteWin32 ThemaWin32s on Windows 3.1Windows 2000Windows 7Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arabisch (CP 1256)Windows Baltisch (CP 1257)Windows CE (%d.%d)Windows Zentral Europäisch (CP 1250)Windows Vereinfachtes Chinesisch (CP 936) oder GB-2312Windows Traditionelles Chinesisch (CP 950) oder Big-5Windows Kyrillisch (CP 1251)Windows Griechisch (CP 1253)Windows Hebräisch (CP 1255)Windows Japanisch (CP 932) oder Shift-JISWindows Johab (CP 1361)Windows Koreanisch (CP 949)Windows MEWindows NT %lu.%luWindows Server 2003Windows Server 2008Windows Server 2008 R2Windows Thailändisch (CP 874)Windows Türkisch (CP 1254)Windows Vietnamesisch (CP 1258)Windows VistaWindows West Europäisch (CP 1252)Windows XPWindows/DOS OEM (CP 437)Windows/DOS OEM Kyrillisch (CP 866)Schreibfehler bei Datei '%s'Fehler beim Lesen des XML: '%s' in Zeile %dXPM: Pixeldaten in falscher Form!XPM: nicht korrekte Farbbeschreibung in Zeile %dXPM: nicht korrektes Kopfformat!XPM: ungültige Farbdefinition '%s' in Zeile %d!XPM: keine Farben für die Maske übrig!XPM: abgeschnittene Bilddaten in Zeile %d!JaSie können keine Überlagerung löschen, die nicht initialisiert wurdeEine Überlagerung kann nicht zweimal initialisiert werdenSie können hier kein neues Verzeichnis anlegen.Sie haben einen ungültigen Wert eingegeben. Drücken Sie ESC um die Bearbeitung zu beenden.Ver&größernVer&kleinernVergrößernVerkleinern&Passende GrösseEinpassenEine DDEML-Anwendung hat eine 'prolonged race condition' ausgeloest.Eine DDEML-Funktion wurde aufgerufen, ohne vorher die Deinitialisierungs-Funktion aufzurufen, oder ein ungültiger 'instance identifier' wurde an eine DDEML-Funktion übergeben.Der Versuch eines Clients, eine Verbindung herzustellen, ist gescheitert.Eine Speicheranforderung ist gescheitert.Ein Parameter wurde von DDEML nicht verifiziert.Eine Anfrage für eine 'synchronous advise transaction' ist gescheitert (time-out)Eine Anfrage für eine 'synchronous data transaction' ist gescheitert (time-out)Eine Anfrage für eine 'synchronous execute transaction' ist gescheitert (time-out)Eine Anfrage für eine 'synchronous poke transaction' ist gescheitert (time-out)Eine Anfrage, eine 'advise transaction' zu beenden ist, gescheitert (time-out)Ein Verbindungs-Versuch vom Server wurde vom Client abgebrochen, oder der Server terminierte bevor die Transaktion vollständig beendet wurde.Eine Transaktion ist gescheitert.altEine Anwendung, die als ein 'APPCLASS_MONITOR' gestartet wurde, versuchte eine DDE-Transaktion auszuführen, oder eine Anwendung, die als ein 'APPCMD_CLIENTONLY' gestartet wurde, versuchte eine Server-Transaktion auszuführen.Ein interner Aufruf zur 'PostMessage'-Funktion ist gescheitert. Ein interne Fehler ist im DDEML aufgetreten.Eine ungültige Transaktions-Identifizierung wurde an eine DDEML-Funktion übergeben. Sobald die Anwendung aus einem 'XTYP_XACT_COMPLETE'-Callback zurückgekehrt ist, ist die Transaktions-Identifizierung für dieses Callback nicht mehr gültig.Nehme mehrteiliges, konkateniertes Zip an.Versuch den unveränderlichen Schlüssel '%s' anzupassen wurde ignoriert.Falsche Argumente für die BibliotheksfunktionFalsche UnterschriftFalsches Offset zum Einsprung in der Zipdatei.binärfettPuffer zu klein für Windows-Verzeichnis.Erzeugungsversion %luKann Datei '%s' nicht schließenKann Dateibeschreibung '%d' nicht schließenKann Änderungen in Datei '%s' nicht sichernKann Datei '%s' nicht anlegenKann Konfigurationsdatei '%s' nicht löschenKann auf Dateibeschreibung '%d' das Dateiende nicht FeststellenKann '%s' nicht ausführenKann Zentralverzeichnis im Zip nicht finden.Kann auf Dateibeschreibung '%d' die Dateilänge nicht findenKann Benutzerverzeichnis nicht finden, verwende aktuelles Verzeichnis.Kann auf die Dateibeschreibung '%d' nicht entladenKann auf die Dateibeschreibung %d nicht positionierenKann keine Schriftarten mehr laden, AbbruchKann Datei '%s' nicht öffnenKann globale Konfigurationsdatei '%s' nicht öffnen.Kann Konfigurationsdatei '%s' nicht öffnen.Kann Benutzer-Konfigurationsdatei nicht öffnen.Kann den zlib deflate-stream nicht reinitialisierenKann den zlib inflate-stream nicht reinitialisierenKann Dateibeschreibung '%d' nicht lesenKann Datei '%s' nicht löschenKann temporäre Datei '%s' nicht löschenKann auf die Dateibeschreibung '%d' nicht suchenKann den Puffer '%s' nicht schreiben.Kann Dateibeschreibung '%d' nicht schreibenKann Benutzer-Konfigurationsdatei nicht schreiben.Prüfsummen-FehlerPrüfsummenfehler beim Lesen der tar KopfeintragescmFehler beim KomprimierenUmwandlung in 8-Bit-Kodierung fehlgeschlagenstrgDatumFehler beim EntpackenStandardDoppelte GenauigkeitDump des bearbeiteten Zustands (binär)achtzehnteachteelfteEintrag '%s' erscheint in Gruppe '%s' mehrfachFehler im DatenformatFehler beim Öffnen von '%s'Fehler beim Öffnen der DateiFehler beim Lesen des Zentralverzeichnisses im ZipFehler beim Lesen des lokalen Headers in ZipdateiFehler beim Schreiben von Zip-Eintrag '%s': Falsche Prüfsumme oder LängeVersuch, die Datei '%s' zu entladen, gescheitertfünfzehntefünfteDatei '%s', Zeile %d: '%s' hinter Gruppenkopf ignoriert.Datei '%s', Zeile %d: '=' erwartet.Datei '%s', Zeile %d: Eintrag '%s' taucht erstmals in Zeile %d auf.Datei '%s', Zeile %d: Wert für nicht-änderbaren Eintrag '%s' ignoriert.Datei '%s': unerwartetes Zeichen %c in Zeile %d.DateienersteSchriftgröße:vierzehntevierteausführliche Log-Nachrichten erstellenBildunvollständiger Kopfeintrag in tarEvent-Handler-Zeichenkette falsch, Punkt fehltNicht korrekte Größe für tar-Eintrag gegebenungültige Daten in erweitertem tar-Kopfeintragungültiger 'message box'-RückgabewertUngültige Zip-DateikursivdünnLokale Umgebung '%s' kann nicht gesetzt werden.Mitternachtneunzehnteneuntekein DDE-Fehler.kein FehlerKeine Schriftarten in %s, gefundennamenlosmittagsNormalnicht ausgeführtnumObjekte können keine XML-Text-Knoten habennicht genug SpeicherProzentBearbeite KontextbeschreibungptpxstrgLesefehlerBeim Lesen von Zipstream (Eintrag %s): Falsche PrüfsummeBeim Lesen von Zipstream (Eintrag %s): Falsche LängeProbleme beim Wiedereintreten.zweiteSeek-FehlersiebzehntesiebteUmschaltZeige diesen HilfstextsechzehntesechsteGeben Sie eine zu verwendende Bildschirmauflösung ein (Z.B. 640x48-16)geben Sie das zu benutzende Thema anStandard/KreisStandard/ KreisumrissStandard/ RauteStandard/QuadratStandard/ DreieckGespeicherte Dateilänge nicht in Zip-HeaderstrDurchstreichentar Eintrag nicht offenzehntedas Ergebnis zur Transaktion hat das 'DDE_FBUSY'-Bit gesetzt.drittedreizehnteheutemorgenAbschließenden Gegenschrägstrich in '%s' ignoriertÜbersetzerzwölftezwanzigsteunterstrichenunerwartetes " an Position %d in '%s'.Unerwartetes Ende der DateiunbekanntUnbekannte Klasse %sunbekannter Fehlerunbekannter Fehler (Fehlercode %08x).Unbekannte Suchpositionunbekannt-%dUnbenanntUnbenannt%dNicht unterstütztes Zip-Kompressionsformat.Verwende Nachrichtenkatalog '%s' von '%s'.SchreibfehlerwxGetTimeOfDay gescheitert.wxPrintout::GetPageInfo liefert eine NULL maximale Seitengröße.Zeiger auf ein wxwWidget Kontrollelement ist kein Zeiger auf eine DatenanzeigewxWidget Kontrollelement nicht initialisiert.wxWidgets konnte 'open display' nicht ausführen für '%s': Abbruch.wxWidgets konnte Display nicht öffnen. Abbruch.xxxxGesternzlib-Fehler %d~ginkgocadx-3.8.7/cadxcore/lang/de/wxstd.po000066400000000000000000007774571314736454600205310ustar00rootroot00000000000000# Initial translation by unknown translator # Updated by Thomas Krebs msgid "" msgstr "" "Project-Id-Version: wxWidgets 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-01 19:04+0200\n" "PO-Revision-Date: 2012-04-27 17:01+0100\n" "Last-Translator: Dr. Thomas Krebs \n" "Language-Team: wxWidgets Team \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" #: ../src/common/debugrpt.cpp:591 msgid "" "\n" "Please send this report to the program maintainer, thank you!\n" msgstr "" "\n" "Bitte senden Sie diesen Bericht an den Programmautor. Vielen Dank!\n" #: ../src/richtext/richtextstyledlg.cpp:210 #: ../src/richtext/richtextstyledlg.cpp:222 msgid " " msgstr " " #: ../src/generic/dbgrptg.cpp:326 msgid " Thank you and we're sorry for the inconvenience!\n" msgstr "" " Vielen Dank, und wir entschuldigen uns für die " "Unannehmlichkeiten.\n" #: ../src/common/prntbase.cpp:546 #, c-format msgid " (copy %d of %d)" msgstr "(Kopie %d von %d)" #: ../src/common/log.cpp:425 #, c-format msgid " (error %ld: %s)" msgstr " (Fehler %ld: %s)" #: ../src/common/imagtiff.cpp:75 #, c-format msgid " (in module \"%s\")" msgstr "(im Modul \"%s\")" #: ../src/common/docview.cpp:1624 msgid " - " msgstr " - " #: ../src/richtext/richtextprint.cpp:588 ../src/html/htmprint.cpp:704 msgid " Preview" msgstr " Vorschau" #: ../src/common/fontcmn.cpp:811 msgid " bold" msgstr " fett" #: ../src/common/fontcmn.cpp:827 msgid " italic" msgstr " kursiv" #: ../src/common/fontcmn.cpp:807 msgid " light" msgstr " dünn" #: ../src/common/paper.cpp:118 msgid "#10 Envelope, 4 1/8 x 9 1/2 in" msgstr "#10 Umschlag, 4 1/8 x 9 1/2 Zoll" #: ../src/common/paper.cpp:119 msgid "#11 Envelope, 4 1/2 x 10 3/8 in" msgstr "#11 Umschlag, 4 1/2 x 10 3/8 Zoll" #: ../src/common/paper.cpp:120 msgid "#12 Envelope, 4 3/4 x 11 in" msgstr "#12 Umschlag, 4 3/4 x 11 Zoll" #: ../src/common/paper.cpp:121 msgid "#14 Envelope, 5 x 11 1/2 in" msgstr "#14 Umschlag, 5 x 11 1/2 Zoll" #: ../src/common/paper.cpp:117 msgid "#9 Envelope, 3 7/8 x 8 7/8 in" msgstr "#9 Umschlag, 3 7/8 x 8 7/8 Zoll" #: ../src/html/helpwnd.cpp:1044 #, c-format msgid "%d of %lu" msgstr "%d von %lu" #: ../src/html/helpwnd.cpp:1681 ../src/html/helpwnd.cpp:1719 #, c-format msgid "%i of %i" msgstr "%i von %i" #: ../src/generic/filectrlg.cpp:315 #, c-format msgid "%ld byte" msgid_plural "%ld bytes" msgstr[0] "%ld Byte" msgstr[1] "%ld Bytes" #: ../src/html/helpwnd.cpp:1046 #, c-format msgid "%lu of %lu" msgstr "%lu von %lu" #: ../src/common/cmdline.cpp:1050 #, c-format msgid "%s (or %s)" msgstr " %s (oder %s)" #: ../src/generic/logg.cpp:230 #, c-format msgid "%s Error" msgstr "%s Fehler" #: ../src/generic/logg.cpp:242 #, c-format msgid "%s Information" msgstr "%s Information" #: ../src/generic/preferencesg.cpp:110 #, c-format msgid "%s Preferences" msgstr "%s-Einstellungen" #: ../src/generic/logg.cpp:234 #, c-format msgid "%s Warning" msgstr "%s Warnung" #: ../src/common/tarstrm.cpp:1319 #, c-format msgid "%s did not fit the tar header for entry '%s'" msgstr "%s passte nicht zum tar Kopfeintrag für den Eintrag '%s'" #: ../src/common/fldlgcmn.cpp:106 #, c-format msgid "%s files (%s)|%s" msgstr "%s Dateien (%s)|%s" #: ../src/common/stockitem.cpp:139 ../src/html/helpfrm.cpp:142 #: ../src/html/helpfrm.cpp:144 msgid "&About" msgstr "Übe&r" #: ../src/common/stockitem.cpp:207 msgid "&Actual Size" msgstr "T&atsächliche Größe" #: ../src/richtext/richtextindentspage.cpp:262 msgid "&After a paragraph:" msgstr "&Nach einem Absatz:" #: ../src/richtext/richtextindentspage.cpp:128 #: ../src/richtext/richtextliststylepage.cpp:319 msgid "&Alignment" msgstr "&Ausrichtung" #: ../src/common/stockitem.cpp:141 msgid "&Apply" msgstr "Übernehmen" #: ../src/richtext/richtextstyledlg.cpp:251 msgid "&Apply Style" msgstr "&Stil anwenden" #: ../src/msw/mdi.cpp:175 msgid "&Arrange Icons" msgstr "&Icons anordnen" #: ../src/common/stockitem.cpp:195 msgid "&Ascending" msgstr "&Aufsteigend" #: ../src/common/stockitem.cpp:142 msgid "&Back" msgstr "&Zurück" #: ../src/richtext/richtextstylepage.cpp:113 msgid "&Based on:" msgstr "&Basierend auf:" #: ../src/richtext/richtextindentspage.cpp:253 msgid "&Before a paragraph:" msgstr "&Vor einem Absatz:" #: ../src/richtext/richtextfontpage.cpp:271 msgid "&Bg colour:" msgstr "&Hg Farbe:" #: ../src/common/stockitem.cpp:143 msgid "&Bold" msgstr "&Fett" #: ../src/common/stockitem.cpp:144 msgid "&Bottom" msgstr "&Unten" #: ../src/richtext/richtextborderspage.cpp:359 #: ../src/richtext/richtextborderspage.cpp:503 #: ../src/richtext/richtextmarginspage.cpp:260 #: ../src/richtext/richtextmarginspage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:637 #: ../src/richtext/richtextsizepage.cpp:644 msgid "&Bottom:" msgstr "&Unten:" #: ../include/wx/richtext/richtextbuffer.h:3530 msgid "&Box" msgstr "&Rahmen" #: ../src/richtext/richtextliststylepage.cpp:210 #: ../src/richtext/richtextbulletspage.cpp:159 msgid "&Bullet style:" msgstr "Stil des &Gliederungspunktes:" #: ../src/common/stockitem.cpp:146 msgid "&CD-Rom" msgstr "&CD-Rom" #: ../src/generic/wizard.cpp:432 ../src/generic/fontdlgg.cpp:470 #: ../src/generic/fontdlgg.cpp:489 ../src/osx/carbon/fontdlg.cpp:588 #: ../src/common/stockitem.cpp:145 msgid "&Cancel" msgstr "Ab&brechen" #: ../src/msw/mdi.cpp:171 msgid "&Cascade" msgstr "Kaskadieren" #: ../include/wx/richtext/richtextbuffer.h:5587 msgid "&Cell" msgstr "&Zelle" #: ../src/richtext/richtextsymboldlg.cpp:439 msgid "&Character code:" msgstr "&Zeichencode:" #: ../src/common/stockitem.cpp:147 msgid "&Clear" msgstr "&Löschen" #: ../src/generic/logg.cpp:522 ../src/common/stockitem.cpp:148 #: ../src/common/prntbase.cpp:1570 ../src/univ/themes/win32.cpp:3756 #: ../src/html/helpfrm.cpp:139 msgid "&Close" msgstr "&Schließen" #: ../src/common/stockitem.cpp:193 msgid "&Color" msgstr "&Farbe" #: ../src/richtext/richtextfontpage.cpp:258 msgid "&Colour:" msgstr "&Farbe:" #: ../src/common/stockitem.cpp:149 msgid "&Convert" msgstr "&Konvertieren" #: ../src/richtext/richtextctrl.cpp:326 ../src/osx/textctrl_osx.cpp:583 #: ../src/common/stockitem.cpp:150 ../src/msw/textctrl.cpp:2284 msgid "&Copy" msgstr "&Kopieren" #: ../src/generic/hyperlinkg.cpp:156 msgid "&Copy URL" msgstr "URL &kopieren" #: ../src/common/headerctrlcmn.cpp:328 msgid "&Customize..." msgstr "&Anpassen..." #: ../src/generic/dbgrptg.cpp:334 msgid "&Debug report preview:" msgstr "Vorschau des Fehlerberichts:" #: ../src/richtext/richtexttabspage.cpp:142 #: ../src/richtext/richtextctrl.cpp:328 ../src/osx/textctrl_osx.cpp:585 #: ../src/common/stockitem.cpp:152 ../src/msw/textctrl.cpp:2286 msgid "&Delete" msgstr "&Löschen" #: ../src/richtext/richtextstyledlg.cpp:269 msgid "&Delete Style..." msgstr "Stil &löschen..." #: ../src/common/stockitem.cpp:196 msgid "&Descending" msgstr "&Absteigend" #: ../src/generic/logg.cpp:688 msgid "&Details" msgstr "&Einzelheiten" #: ../src/common/stockitem.cpp:153 msgid "&Down" msgstr "&Runter" #: ../src/common/stockitem.cpp:154 msgid "&Edit" msgstr "&Bearbeiten" #: ../src/richtext/richtextstyledlg.cpp:263 msgid "&Edit Style..." msgstr "Stil &bearbeiten..." #: ../src/common/stockitem.cpp:155 msgid "&Execute" msgstr "&Ausführen" #: ../src/common/stockitem.cpp:157 ../src/html/helpfrm.cpp:146 msgid "&File" msgstr "&Datei" #: ../src/common/stockitem.cpp:158 msgid "&Find" msgstr "&Suchen" #: ../src/generic/wizard.cpp:626 msgid "&Finish" msgstr "&Fertigstellen" #: ../src/common/stockitem.cpp:159 msgid "&First" msgstr "&Erste" #: ../src/richtext/richtextsizepage.cpp:244 msgid "&Floating mode:" msgstr "&Schwebemodus:" #: ../src/common/stockitem.cpp:160 msgid "&Floppy" msgstr "&Diskette" #: ../src/common/stockitem.cpp:194 msgid "&Font" msgstr "&Schriftart" #: ../src/generic/fontdlgg.cpp:371 msgid "&Font family:" msgstr "&Schriftart:" #: ../src/richtext/richtextliststylepage.cpp:194 msgid "&Font for Level..." msgstr "&Schriftart für Ebene..." #: ../src/richtext/richtextfontpage.cpp:156 #: ../src/richtext/richtextsymboldlg.cpp:400 msgid "&Font:" msgstr "&Schriftart:" #: ../src/common/stockitem.cpp:161 msgid "&Forward" msgstr "&Vorwärts" #: ../src/richtext/richtextsymboldlg.cpp:451 msgid "&From:" msgstr "&Von:" #: ../src/common/stockitem.cpp:162 msgid "&Harddisk" msgstr "&Festplatte" #: ../src/richtext/richtextsizepage.cpp:351 #: ../src/richtext/richtextsizepage.cpp:358 msgid "&Height:" msgstr "&Höhe:" #: ../src/generic/wizard.cpp:435 ../src/richtext/richtextstyledlg.cpp:303 #: ../src/richtext/richtextsymboldlg.cpp:479 ../src/osx/menu_osx.cpp:785 #: ../src/common/stockitem.cpp:163 ../src/html/helpfrm.cpp:147 msgid "&Help" msgstr "&Hilfe" #: ../include/wx/richmsgdlg.h:30 msgid "&Hide details" msgstr "&Einzelheiten verbergen" #: ../src/common/stockitem.cpp:164 msgid "&Home" msgstr "&Start" #: ../src/richtext/richtextindentspage.cpp:184 #: ../src/richtext/richtextliststylepage.cpp:372 msgid "&Indentation (tenths of a mm)" msgstr "&Einrücken (Zehntel-mm)" #: ../src/richtext/richtextindentspage.cpp:167 #: ../src/richtext/richtextliststylepage.cpp:356 msgid "&Indeterminate" msgstr "&Unbestimmt" #: ../src/common/stockitem.cpp:166 msgid "&Index" msgstr "&Index" #: ../src/common/stockitem.cpp:167 msgid "&Info" msgstr "&Information" #: ../src/common/stockitem.cpp:168 msgid "&Italic" msgstr "&Kursiv" #: ../src/common/stockitem.cpp:169 msgid "&Jump to" msgstr "&Springen zu" #: ../src/richtext/richtextindentspage.cpp:153 #: ../src/richtext/richtextliststylepage.cpp:342 msgid "&Justified" msgstr "&Ausgerichtet" #: ../src/common/stockitem.cpp:174 msgid "&Last" msgstr "&Letztes" #: ../src/richtext/richtextindentspage.cpp:139 #: ../src/richtext/richtextliststylepage.cpp:328 msgid "&Left" msgstr "&Links" #: ../src/richtext/richtextindentspage.cpp:195 #: ../src/richtext/richtextborderspage.cpp:269 #: ../src/richtext/richtextborderspage.cpp:413 #: ../src/richtext/richtextliststylepage.cpp:381 #: ../src/richtext/richtextmarginspage.cpp:187 #: ../src/richtext/richtextmarginspage.cpp:301 #: ../src/richtext/richtextsizepage.cpp:532 #: ../src/richtext/richtextsizepage.cpp:539 msgid "&Left:" msgstr "&Links:" #: ../src/richtext/richtextliststylepage.cpp:183 msgid "&List level:" msgstr "&Listenebene:" #: ../src/generic/logg.cpp:523 msgid "&Log" msgstr "&Log" #: ../src/univ/themes/win32.cpp:3748 msgid "&Move" msgstr "&Bewegen" #: ../src/richtext/richtextsizepage.cpp:672 msgid "&Move the object to:" msgstr "&Bewege das Objekt zu:" #: ../src/common/stockitem.cpp:175 msgid "&Network" msgstr "&Netzwerk" #: ../src/richtext/richtexttabspage.cpp:136 ../src/common/stockitem.cpp:176 msgid "&New" msgstr "&Neu" #: ../src/aui/tabmdi.cpp:111 ../src/generic/mdig.cpp:100 #: ../src/msw/mdi.cpp:176 msgid "&Next" msgstr "&Weiter" #: ../src/generic/wizard.cpp:431 ../src/generic/wizard.cpp:626 msgid "&Next >" msgstr "&Weiter >" #: ../src/richtext/richtextsizepage.cpp:681 msgid "&Next Paragraph" msgstr "&Nächster Absatz" #: ../src/generic/tipdlg.cpp:276 msgid "&Next Tip" msgstr "&Nächster Tipp" #: ../src/richtext/richtextstylepage.cpp:123 msgid "&Next style:" msgstr "&Nächster Stil:" #: ../src/common/stockitem.cpp:177 ../src/msw/msgdlg.cpp:476 msgid "&No" msgstr "&Nein" #: ../src/generic/dbgrptg.cpp:356 msgid "&Notes:" msgstr "Bemerkungen:" #: ../src/richtext/richtextbulletspage.cpp:264 msgid "&Number:" msgstr "&Nummer:" #: ../src/generic/fontdlgg.cpp:475 ../src/generic/fontdlgg.cpp:482 #: ../src/osx/carbon/fontdlg.cpp:594 ../src/common/stockitem.cpp:178 msgid "&OK" msgstr "&OK" #: ../src/generic/dbgrptg.cpp:342 ../src/common/stockitem.cpp:179 #: ../src/html/helpfrm.cpp:137 msgid "&Open..." msgstr "&Öffnen..." #: ../src/richtext/richtextindentspage.cpp:222 msgid "&Outline level:" msgstr "&Umrandungsebene:" #: ../src/richtext/richtextindentspage.cpp:293 msgid "&Page Break" msgstr "&Seitenumbruch" #: ../src/richtext/richtextctrl.cpp:327 ../src/osx/textctrl_osx.cpp:584 #: ../src/common/stockitem.cpp:180 ../src/msw/textctrl.cpp:2285 msgid "&Paste" msgstr "Einfügen" #: ../include/wx/richtext/richtextbuffer.h:4655 msgid "&Picture" msgstr "&Bild" #: ../src/generic/fontdlgg.cpp:422 msgid "&Point size:" msgstr "Schriftgröße in &Punkt:" #: ../src/richtext/richtexttabspage.cpp:114 msgid "&Position (tenths of a mm):" msgstr "&Position (Zehntel-mm):" #: ../src/richtext/richtextsizepage.cpp:514 msgid "&Position mode:" msgstr "&Positionierungs-Modus:" #: ../src/common/stockitem.cpp:181 msgid "&Preferences" msgstr "&Einstellungen" #: ../src/aui/tabmdi.cpp:112 ../src/generic/mdig.cpp:101 #: ../src/msw/mdi.cpp:177 msgid "&Previous" msgstr "&Zurück" #: ../src/richtext/richtextsizepage.cpp:675 msgid "&Previous Paragraph" msgstr "&Vorheriger Absatz" #: ../src/common/stockitem.cpp:183 msgid "&Print..." msgstr "&Drucken..." #: ../src/richtext/richtextctrl.cpp:332 ../src/richtext/richtextctrl.cpp:4945 #: ../src/common/stockitem.cpp:184 msgid "&Properties" msgstr "&Eigenschaften" #: ../src/common/stockitem.cpp:156 msgid "&Quit" msgstr "&Beenden" #: ../src/richtext/richtextctrl.cpp:323 ../src/osx/textctrl_osx.cpp:580 #: ../src/common/stockitem.cpp:185 ../src/common/cmdproc.cpp:293 #: ../src/common/cmdproc.cpp:300 ../src/msw/textctrl.cpp:2281 msgid "&Redo" msgstr "&Wiederholen" #: ../src/common/cmdproc.cpp:289 ../src/common/cmdproc.cpp:309 msgid "&Redo " msgstr "&Wiederholen " #: ../src/richtext/richtextstyledlg.cpp:257 msgid "&Rename Style..." msgstr "Stil &umbenennen..." #: ../src/generic/fdrepdlg.cpp:179 msgid "&Replace" msgstr "&Ersetzen" #: ../src/richtext/richtextstyledlg.cpp:287 msgid "&Restart numbering" msgstr "&Nummerierung Neustart" #: ../src/univ/themes/win32.cpp:3747 msgid "&Restore" msgstr "&Wiederherstellen" #: ../src/richtext/richtextindentspage.cpp:146 #: ../src/richtext/richtextliststylepage.cpp:335 msgid "&Right" msgstr "&Rechts" #: ../src/richtext/richtextindentspage.cpp:213 #: ../src/richtext/richtextborderspage.cpp:299 #: ../src/richtext/richtextborderspage.cpp:443 #: ../src/richtext/richtextliststylepage.cpp:399 #: ../src/richtext/richtextmarginspage.cpp:212 #: ../src/richtext/richtextmarginspage.cpp:326 #: ../src/richtext/richtextsizepage.cpp:602 #: ../src/richtext/richtextsizepage.cpp:609 msgid "&Right:" msgstr "&Rechts:" #: ../src/common/stockitem.cpp:190 msgid "&Save" msgstr "&Speichern" #: ../src/common/stockitem.cpp:191 msgid "&Save as" msgstr "&Speichern unter" #: ../include/wx/richmsgdlg.h:29 msgid "&See details" msgstr "&Einzelheiten anzeigen" #: ../src/generic/tipdlg.cpp:270 msgid "&Show tips at startup" msgstr "&Tipps beim Programmstart zeigen" #: ../src/univ/themes/win32.cpp:3750 msgid "&Size" msgstr "&Größe" #: ../src/richtext/richtextfontpage.cpp:168 msgid "&Size:" msgstr "&Größe:" #: ../src/generic/progdlgg.cpp:282 msgid "&Skip" msgstr "&Überspringen" #: ../src/richtext/richtextindentspage.cpp:242 #: ../src/richtext/richtextliststylepage.cpp:417 msgid "&Spacing (tenths of a mm)" msgstr "&Zeichenabstand (Zehntel-mm)" #: ../src/common/stockitem.cpp:197 msgid "&Spell Check" msgstr "&Rechtschreibprüfung" #: ../src/common/stockitem.cpp:198 msgid "&Stop" msgstr "&Stopp" #: ../src/richtext/richtextfontpage.cpp:284 ../src/common/stockitem.cpp:199 msgid "&Strikethrough" msgstr "&Durchstreichen" #: ../src/generic/fontdlgg.cpp:382 ../src/richtext/richtextstylepage.cpp:104 msgid "&Style:" msgstr "&Stil:" #: ../src/richtext/richtextstyledlg.cpp:198 msgid "&Styles:" msgstr "&Stile:" #: ../src/richtext/richtextsymboldlg.cpp:413 msgid "&Subset:" msgstr "&Teilsatz" #: ../src/richtext/richtextliststylepage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:222 msgid "&Symbol:" msgstr "&Symbol:" #: ../include/wx/richtext/richtextbuffer.h:5679 msgid "&Table" msgstr "&Tabelle" #: ../src/common/stockitem.cpp:200 msgid "&Top" msgstr "&Oben" #: ../src/richtext/richtextborderspage.cpp:329 #: ../src/richtext/richtextborderspage.cpp:473 #: ../src/richtext/richtextmarginspage.cpp:235 #: ../src/richtext/richtextmarginspage.cpp:349 #: ../src/richtext/richtextsizepage.cpp:567 #: ../src/richtext/richtextsizepage.cpp:574 msgid "&Top:" msgstr "&Oben:" #: ../src/generic/fontdlgg.cpp:444 ../src/common/stockitem.cpp:202 msgid "&Underline" msgstr "&Unterstrichen" #: ../src/richtext/richtextfontpage.cpp:243 msgid "&Underlining:" msgstr "&Unterstreichen:" #: ../src/richtext/richtextctrl.cpp:322 ../src/osx/textctrl_osx.cpp:579 #: ../src/common/stockitem.cpp:203 ../src/common/cmdproc.cpp:271 #: ../src/msw/textctrl.cpp:2280 msgid "&Undo" msgstr "&Rückgängig" #: ../src/common/cmdproc.cpp:265 msgid "&Undo " msgstr "&Rückgängig " #: ../src/common/stockitem.cpp:204 msgid "&Unindent" msgstr "&Einrücken" #: ../src/common/stockitem.cpp:205 msgid "&Up" msgstr "&Hoch" #: ../src/richtext/richtextsizepage.cpp:278 msgid "&Vertical alignment:" msgstr "&Vertikale Ausrichtung:" #: ../src/generic/dbgrptg.cpp:340 msgid "&View..." msgstr "&Ansicht..." #: ../src/generic/fontdlgg.cpp:393 msgid "&Weight:" msgstr "&Dicke:" #: ../src/richtext/richtextsizepage.cpp:317 #: ../src/richtext/richtextsizepage.cpp:324 msgid "&Width:" msgstr "&Dicke:" #: ../src/aui/tabmdi.cpp:311 ../src/aui/tabmdi.cpp:327 #: ../src/aui/tabmdi.cpp:329 ../src/generic/mdig.cpp:294 #: ../src/generic/mdig.cpp:310 ../src/generic/mdig.cpp:314 #: ../src/msw/mdi.cpp:77 msgid "&Window" msgstr "&Fenster" #: ../src/common/stockitem.cpp:206 ../src/msw/msgdlg.cpp:476 msgid "&Yes" msgstr "&Ja" #: ../src/common/config.cpp:523 ../src/msw/regconf.cpp:258 #, c-format msgid "'%s' has extra '..', ignored." msgstr "'%s' hat extra '..', ignoriert." #: ../src/common/valtext.cpp:249 ../src/common/valtext.cpp:251 #: ../src/common/valtext.cpp:253 ../src/common/valtext.cpp:255 #, c-format msgid "'%s' is invalid" msgstr "'%s' ist ungültig" #: ../src/common/cmdline.cpp:948 ../src/common/cmdline.cpp:966 #, c-format msgid "'%s' is not a correct numeric value for option '%s'." msgstr "'%s' ist kein gültiger numerischer Wert für Option '%s'." #: ../src/common/translation.cpp:1086 #, c-format msgid "'%s' is not a valid message catalog." msgstr "'%s' ist kein gültiger Nachrichtenkatalog." #: ../src/common/textbuf.cpp:239 #, c-format msgid "'%s' is probably a binary buffer." msgstr "'%s' ist vermutlich ein Binärpuffer." #: ../src/common/valtext.cpp:247 #, c-format msgid "'%s' should be numeric." msgstr "'%s' sollte numerisch sein." #: ../src/common/valtext.cpp:239 #, c-format msgid "'%s' should only contain ASCII characters." msgstr "'%s' sollte ausschließlich ASCII-Zeichen enthalten." #: ../src/common/valtext.cpp:241 #, c-format msgid "'%s' should only contain alphabetic characters." msgstr "'%s' sollte nur alphabetische Zeichen enthalten." #: ../src/common/valtext.cpp:243 #, c-format msgid "'%s' should only contain alphabetic or numeric characters." msgstr "'%s' sollte nur alphanumerische Zeichen enthalten." #: ../src/common/valtext.cpp:245 #, c-format msgid "'%s' should only contain digits." msgstr "'%s' sollte ausschließlich Ziffern enthalten." #: ../src/richtext/richtextliststylepage.cpp:229 #: ../src/richtext/richtextbulletspage.cpp:179 msgid "(*)" msgstr "(*)" #: ../src/html/helpwnd.cpp:976 msgid "(Help)" msgstr "(Hilfe)" #: ../src/richtext/richtextliststylepage.cpp:481 #: ../src/richtext/richtextbulletspage.cpp:286 msgid "(None)" msgstr "(Kein)" #: ../src/richtext/richtextsymboldlg.cpp:504 msgid "(Normal text)" msgstr "(Normaler Text)" #: ../src/html/helpwnd.cpp:426 ../src/html/helpwnd.cpp:1119 #: ../src/html/helpwnd.cpp:1745 msgid "(bookmarks)" msgstr "(Lesezeichen)" #: ../src/richtext/richtextindentspage.cpp:274 #: ../src/richtext/richtextindentspage.cpp:286 #: ../src/richtext/richtextindentspage.cpp:287 #: ../src/richtext/richtextindentspage.cpp:311 #: ../src/richtext/richtextindentspage.cpp:326 #: ../src/richtext/richtextformatdlg.cpp:831 #: ../src/richtext/richtextfontpage.cpp:331 #: ../src/richtext/richtextfontpage.cpp:335 #: ../src/richtext/richtextfontpage.cpp:339 #: ../src/richtext/richtextliststylepage.cpp:448 #: ../src/richtext/richtextliststylepage.cpp:460 #: ../src/richtext/richtextliststylepage.cpp:461 msgid "(none)" msgstr "(Kein)" #: ../src/richtext/richtextliststylepage.cpp:492 #: ../src/richtext/richtextbulletspage.cpp:297 msgid "*" msgstr "*" #: ../src/richtext/richtextliststylepage.cpp:236 #: ../src/richtext/richtextbulletspage.cpp:186 msgid "*)" msgstr "*)" #: ../src/richtext/richtextliststylepage.cpp:495 #: ../src/richtext/richtextbulletspage.cpp:300 msgid "+" msgstr "+" #: ../src/msw/utils.cpp:1324 msgid ", 64-bit edition" msgstr ", 64-bit Edition" #: ../src/richtext/richtextliststylepage.cpp:493 #: ../src/richtext/richtextbulletspage.cpp:298 msgid "-" msgstr "-" #: ../src/generic/filepickerg.cpp:66 msgid "..." msgstr "..." #: ../src/richtext/richtextindentspage.cpp:276 #: ../src/richtext/richtextliststylepage.cpp:450 msgid "1.1" msgstr "1.1" #: ../src/richtext/richtextindentspage.cpp:277 #: ../src/richtext/richtextliststylepage.cpp:451 msgid "1.2" msgstr "1.2" #: ../src/richtext/richtextindentspage.cpp:278 #: ../src/richtext/richtextliststylepage.cpp:452 msgid "1.3" msgstr "1.3" #: ../src/richtext/richtextindentspage.cpp:279 #: ../src/richtext/richtextliststylepage.cpp:453 msgid "1.4" msgstr "1.4" #: ../src/richtext/richtextindentspage.cpp:280 #: ../src/richtext/richtextliststylepage.cpp:454 msgid "1.5" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:455 msgid "1.6" msgstr "1.6" #: ../src/richtext/richtextindentspage.cpp:282 #: ../src/richtext/richtextliststylepage.cpp:456 msgid "1.7" msgstr "1.7" #: ../src/richtext/richtextindentspage.cpp:283 #: ../src/richtext/richtextliststylepage.cpp:457 msgid "1.8" msgstr "1.8" #: ../src/richtext/richtextindentspage.cpp:284 #: ../src/richtext/richtextliststylepage.cpp:458 msgid "1.9" msgstr "1.9" #: ../src/common/paper.cpp:141 msgid "10 x 11 in" msgstr "10 x 11 Zoll" #: ../src/common/paper.cpp:114 msgid "10 x 14 in" msgstr "10 x 14 Zoll" #: ../src/common/paper.cpp:115 msgid "11 x 17 in" msgstr "11 x 17 Zoll" #: ../src/common/paper.cpp:185 msgid "12 x 11 in" msgstr "12 x 11 Zoll" #: ../src/common/paper.cpp:142 msgid "15 x 11 in" msgstr "15 x 11 Zoll" #: ../src/richtext/richtextindentspage.cpp:285 #: ../src/richtext/richtextliststylepage.cpp:459 msgid "2" msgstr "2" #: ../src/common/paper.cpp:133 msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in" msgstr "6 3/4 Umschlag, 3 5/8 x 6 1/2 Zoll" #: ../src/common/paper.cpp:140 msgid "9 x 11 in" msgstr "9 x 11 Zoll" #: ../src/html/htmprint.cpp:431 msgid ": file does not exist!" msgstr ": Datei existiert nicht!" #: ../src/common/fontmap.cpp:199 msgid ": unknown charset" msgstr ": unbekannter Zeichensatz" #: ../src/common/fontmap.cpp:413 msgid ": unknown encoding" msgstr ": unbekannte Kodierung" #: ../src/generic/wizard.cpp:437 msgid "< &Back" msgstr "< &Zurück" #: ../src/osx/carbon/fontdlg.cpp:608 ../src/osx/carbon/fontdlg.cpp:815 #: ../src/osx/carbon/fontdlg.cpp:835 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:609 ../src/osx/carbon/fontdlg.cpp:817 #: ../src/osx/carbon/fontdlg.cpp:837 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:607 ../src/osx/carbon/fontdlg.cpp:813 #: ../src/osx/carbon/fontdlg.cpp:833 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:610 ../src/osx/carbon/fontdlg.cpp:819 #: ../src/osx/carbon/fontdlg.cpp:839 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:611 ../src/osx/carbon/fontdlg.cpp:824 #: ../src/osx/carbon/fontdlg.cpp:843 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:612 ../src/osx/carbon/fontdlg.cpp:821 #: ../src/osx/carbon/fontdlg.cpp:841 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:606 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:286 ../src/generic/filectrlg.cpp:309 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:290 ../src/generic/filectrlg.cpp:313 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:288 ../src/generic/filectrlg.cpp:311 msgid "" msgstr "" #: ../src/html/helpwnd.cpp:1279 msgid "Bold italic face.
    " msgstr "Fette kursive Schrift
    " #: ../src/html/helpwnd.cpp:1283 msgid "bold italic underlined
    " msgstr "fett kursiv unterstrichen
    " #: ../src/html/helpwnd.cpp:1278 msgid "Bold face. " msgstr "Fette Schrift. " #: ../src/html/helpwnd.cpp:1277 msgid "Italic face. " msgstr "Kursive Schrift. " #: ../src/richtext/richtextliststylepage.cpp:494 #: ../src/richtext/richtextbulletspage.cpp:299 msgid ">" msgstr ">" #: ../src/generic/dbgrptg.cpp:318 msgid "A debug report has been generated in the directory\n" msgstr "Ein Fehlerbericht wurde erstellt im Verzeichnis\n" #: ../src/common/debugrpt.cpp:578 msgid "A debug report has been generated. It can be found in" msgstr "Ein Fehlerbericht wurde erstellt. Er liegt im Verzeichnis" #: ../src/common/xtixml.cpp:418 msgid "A non empty collection must consist of 'element' nodes" msgstr "Eine nicht leere Sammlung muss aus 'element'-Knoten bestehen" #: ../src/richtext/richtextliststylepage.cpp:304 #: ../src/richtext/richtextliststylepage.cpp:306 #: ../src/richtext/richtextbulletspage.cpp:257 #: ../src/richtext/richtextbulletspage.cpp:259 msgid "A standard bullet name." msgstr "Ein vordefinierter Gliederungspunkt." #: ../src/common/paper.cpp:218 msgid "A0 sheet, 841 x 1189 mm" msgstr "A0 Blatt, 841 x 1189 mm" #: ../src/common/paper.cpp:219 msgid "A1 sheet, 594 x 841 mm" msgstr "A1 Blatt, 594 x 841 mm" #: ../src/common/paper.cpp:160 msgid "A2 420 x 594 mm" msgstr "A2 420 x 594 mm" #: ../src/common/paper.cpp:157 msgid "A3 Extra 322 x 445 mm" msgstr "A3 Extra 322 x 445 mm" #: ../src/common/paper.cpp:162 msgid "A3 Extra Transverse 322 x 445 mm" msgstr "A3 Extra Quer 322 x 445 mm" #: ../src/common/paper.cpp:171 msgid "A3 Rotated 420 x 297 mm" msgstr "A3 Rotiert 420 x 297 mm" #: ../src/common/paper.cpp:161 msgid "A3 Transverse 297 x 420 mm" msgstr "A3 Quer 297 x 420 mm" #: ../src/common/paper.cpp:107 msgid "A3 sheet, 297 x 420 mm" msgstr "A3 Blatt, 297 x 420 mm" #: ../src/common/paper.cpp:147 msgid "A4 Extra 9.27 x 12.69 in" msgstr "A4 Extra 9.27 x 12.69 Zoll" #: ../src/common/paper.cpp:154 msgid "A4 Plus 210 x 330 mm" msgstr "A4 Plus 210 x 330 mm" #: ../src/common/paper.cpp:172 msgid "A4 Rotated 297 x 210 mm" msgstr "A4 Rotiert 297 x 210 mm" #: ../src/common/paper.cpp:149 msgid "A4 Transverse 210 x 297 mm" msgstr "A4 Quer 210 x 297 mm" #: ../src/common/paper.cpp:98 msgid "A4 sheet, 210 x 297 mm" msgstr "A4 Blatt, 210 x 297 mm" #: ../src/common/paper.cpp:108 msgid "A4 small sheet, 210 x 297 mm" msgstr "A4 klein Blatt, 210 x 297 mm" #: ../src/common/paper.cpp:158 msgid "A5 Extra 174 x 235 mm" msgstr "A5 Extra 174 x 235 mm" #: ../src/common/paper.cpp:173 msgid "A5 Rotated 210 x 148 mm" msgstr "A5 Rotiert 210 x 148 mm" #: ../src/common/paper.cpp:155 msgid "A5 Transverse 148 x 210 mm" msgstr "A5 Quer 148 x 210 mm" #: ../src/common/paper.cpp:109 msgid "A5 sheet, 148 x 210 mm" msgstr "A4 Blatt, 148 x 210 mm" #: ../src/common/paper.cpp:165 msgid "A6 105 x 148 mm" msgstr "A6 105 x 148 mm" #: ../src/common/paper.cpp:178 msgid "A6 Rotated 148 x 105 mm" msgstr "A6 Rotiert 148 x 105 mm" #: ../src/generic/fontdlgg.cpp:83 ../src/richtext/richtextformatdlg.cpp:526 #: ../src/osx/carbon/fontdlg.cpp:339 msgid "ABCDEFGabcdefg12345" msgstr "ABCDEFGabcdefg12345ÄÖÜßäöü" #: ../src/common/accelcmn.cpp:76 msgid "ADD" msgstr "HINZUFÜGEN" #: ../src/richtext/richtextsymboldlg.cpp:458 ../src/common/ftp.cpp:405 msgid "ASCII" msgstr "ASCII" #: ../src/osx/menu_osx.cpp:630 ../src/common/stockitem.cpp:139 msgid "About" msgstr "Über" #: ../src/generic/aboutdlgg.cpp:140 ../src/msw/aboutdlg.cpp:64 #, c-format msgid "About %s" msgstr "Über %s" #: ../src/richtext/richtextsizepage.cpp:520 msgid "Absolute" msgstr "Absolut" #: ../src/common/stockitem.cpp:207 msgid "Actual Size" msgstr "Tatsächliche Größe" #: ../src/common/stockitem.cpp:140 msgid "Add" msgstr "Hinzufügen" #: ../src/richtext/richtextbuffer.cpp:10751 #, fuzzy msgid "Add Column" msgstr "Spalte hinzufügen" #: ../src/richtext/richtextbuffer.cpp:10688 #, fuzzy msgid "Add Row" msgstr "Zeile hinzufügen" #: ../src/html/helpwnd.cpp:439 msgid "Add current page to bookmarks" msgstr "Aktuelle HTML-Seite den Lesezeichen hinzufügen" #: ../src/generic/colrdlgg.cpp:283 msgid "Add to custom colours" msgstr "Zu Benutzerfarben hinzufügen" #: ../include/wx/xtiprop.h:259 msgid "AddToPropertyCollection called on a generic accessor" msgstr "AddToPropertyCollection aufgerufen für einen allgemeinen accessor" #: ../include/wx/xtiprop.h:197 msgid "AddToPropertyCollection called w/o valid adder" msgstr "AddToPropertyCollection aufgerufen ohne gültigen adder" #: ../src/html/helpctrl.cpp:159 #, c-format msgid "Adding book %s" msgstr "Buch %s wird hinzugefügt" #: ../src/osx/carbon/dataview.cpp:1933 msgid "Adding flavor TEXT failed" msgstr "Das Hinzufügen der Variante TEXT schlug fehl" #: ../src/osx/carbon/dataview.cpp:1954 msgid "Adding flavor utxt failed" msgstr "Das Hinzufügen der Variante utxt schlug fehl" #: ../src/common/preferencescmn.cpp:41 msgid "Advanced" msgstr "Erweitert" #: ../src/richtext/richtextliststylepage.cpp:435 msgid "After a paragraph:" msgstr "Nach einem Absatz:" #: ../src/common/stockitem.cpp:172 msgid "Align Left" msgstr "Linksbündig" #: ../src/common/stockitem.cpp:173 msgid "Align Right" msgstr "Rechtsbündig" #: ../src/richtext/richtextsizepage.cpp:266 msgid "Alignment" msgstr "Ausrichtung" #: ../src/generic/prntdlgg.cpp:215 msgid "All" msgstr "Alle" #: ../src/generic/filectrlg.cpp:1205 ../src/common/fldlgcmn.cpp:89 #, c-format msgid "All files (%s)|%s" msgstr "Alle Dateien (%s)|%s" #: ../include/wx/defs.h:2922 msgid "All files (*)|*" msgstr "Alle Dateien (*)|*" #: ../include/wx/defs.h:2919 msgid "All files (*.*)|*.*" msgstr "Alle Dateien (*.*)|*.*" #: ../src/richtext/richtextstyles.cpp:1057 msgid "All styles" msgstr "Alle Stile" #: ../src/propgrid/manager.cpp:1496 msgid "Alphabetic Mode" msgstr "Alphabetischer Modus" #: ../src/common/xtistrm.cpp:429 msgid "Already Registered Object passed to SetObjectClassInfo" msgstr "Ein bereits registriertes Objekt wurde an SetObjectClassInfo übergeben" #: ../src/unix/dialup.cpp:353 msgid "Already dialling ISP." msgstr "Wähle bereits ISP." #: ../src/common/accelcmn.cpp:320 ../src/univ/themes/win32.cpp:3756 msgid "Alt+" msgstr "Alt+" #: ../src/common/debugrpt.cpp:581 msgid "And includes the following files:\n" msgstr "Und enthält die folgenden Dateien:\n" #: ../src/generic/animateg.cpp:162 #, c-format msgid "Animation file is not of type %ld." msgstr "Animationsdatei hat nicht den Typ %ld." #: ../src/generic/logg.cpp:1034 #, c-format msgid "Append log to file '%s' (choosing [No] will overwrite it)?" msgstr "An Logdatei '%s' anhängen ([Nein] wird sie ersetzen)?" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:610 #: ../src/osx/menu_osx.cpp:649 ../src/osx/menu_osx.cpp:657 msgid "Application" msgstr "Anwendung" #: ../src/common/stockitem.cpp:141 msgid "Apply" msgstr "Übernehmen" #: ../src/richtext/richtextliststylepage.cpp:482 #: ../src/richtext/richtextbulletspage.cpp:287 msgid "Arabic" msgstr "Arabisch" #: ../src/common/fmapbase.cpp:153 msgid "Arabic (ISO-8859-6)" msgstr "Arabisch (ISO-8859-6)" #: ../src/msw/ole/automtn.cpp:661 #, c-format msgid "Argument %u not found." msgstr "Hilfeverzeichnis %u nicht gefunden." #: ../src/generic/aboutdlgg.cpp:184 msgid "Artists" msgstr "Künstler" #: ../src/common/stockitem.cpp:195 msgid "Ascending" msgstr "Absteigend" #: ../src/generic/filectrlg.cpp:468 msgid "Attributes" msgstr "Eigenschaften" #: ../src/richtext/richtextliststylepage.cpp:294 #: ../src/richtext/richtextbulletspage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:247 msgid "Available fonts." msgstr "Verfügbare Schriftarten." #: ../src/common/paper.cpp:138 msgid "B4 (ISO) 250 x 353 mm" msgstr "B4 (ISO) 250 x 353 mm" #: ../src/common/paper.cpp:174 msgid "B4 (JIS) Rotated 364 x 257 mm" msgstr "B4 (JIS) Rotiert 364 x 257 mm" #: ../src/common/paper.cpp:128 msgid "B4 Envelope, 250 x 353 mm" msgstr "B4 Umschlag, 250 x 353 mm" #: ../src/common/paper.cpp:110 msgid "B4 sheet, 250 x 354 mm" msgstr "B4 Blatt, 250 x 354 mm" #: ../src/common/paper.cpp:159 msgid "B5 (ISO) Extra 201 x 276 mm" msgstr "B5 (ISO) Extra 201 x 276 mm" #: ../src/common/paper.cpp:175 msgid "B5 (JIS) Rotated 257 x 182 mm" msgstr "B5 (JIS) Rotiert 257 x 182 mm" #: ../src/common/paper.cpp:156 msgid "B5 (JIS) Transverse 182 x 257 mm" msgstr "B5 (JIS) Quer 182 x 257 mm" #: ../src/common/paper.cpp:129 msgid "B5 Envelope, 176 x 250 mm" msgstr "B5 Umschlag, 176 x 250 mm" #: ../src/common/paper.cpp:111 msgid "B5 sheet, 182 x 257 millimeter" msgstr "B5 Blatt, 182 x 257 mm" #: ../src/common/paper.cpp:183 msgid "B6 (JIS) 128 x 182 mm" msgstr "B6 (JIS) 128 x 182 mm" #: ../src/common/paper.cpp:184 msgid "B6 (JIS) Rotated 182 x 128 mm" msgstr "B6 (JIS) Rotiert 182 x 128 mm" #: ../src/common/paper.cpp:130 msgid "B6 Envelope, 176 x 125 mm" msgstr "B6 Umschlag, 176 x 125 mm" #: ../src/common/accelcmn.cpp:49 msgid "BACK" msgstr "ZURÜCK" #: ../src/common/imagbmp.cpp:523 ../src/common/imagbmp.cpp:553 #: ../src/common/imagbmp.cpp:568 msgid "BMP: Couldn't allocate memory." msgstr "BMP: Speicheranforderung gescheitert." #: ../src/common/imagbmp.cpp:97 msgid "BMP: Couldn't save invalid image." msgstr "BMP: Konnte ungültiges Bild nicht speichern." #: ../src/common/imagbmp.cpp:338 msgid "BMP: Couldn't write RGB color map." msgstr "BMP: Konnte RGB Farbtabelle nicht speichern." #: ../src/common/imagbmp.cpp:473 msgid "BMP: Couldn't write data." msgstr "BMP: Konnte Daten nicht speichern." #: ../src/common/imagbmp.cpp:239 msgid "BMP: Couldn't write the file (Bitmap) header." msgstr "BMP: Dateikopf (Bitmap) konnte nicht geschrieben werden." #: ../src/common/imagbmp.cpp:262 msgid "BMP: Couldn't write the file (BitmapInfo) header." msgstr "BMP: Dateikopf (BitmapInfo) konnte nicht geschrieben werden." #: ../src/common/imagbmp.cpp:133 msgid "BMP: wxImage doesn't have own wxPalette." msgstr "BMP: wxImage hat keine eigene wxPalette." #: ../src/common/stockitem.cpp:142 msgid "Back" msgstr "Zurück" #: ../src/richtext/richtextbackgroundpage.cpp:119 #: ../src/richtext/richtextformatdlg.cpp:374 msgid "Background" msgstr "Hintergrund" #: ../src/richtext/richtextbackgroundpage.cpp:131 msgid "Background &colour:" msgstr "Hintergrund&farbe:" #: ../src/osx/carbon/fontdlg.cpp:406 msgid "Background colour" msgstr "Hintergrundfarbe" #: ../src/common/fmapbase.cpp:160 msgid "Baltic (ISO-8859-13)" msgstr "Baltisch (ISO-8859-13)" #: ../src/common/fmapbase.cpp:151 msgid "Baltic (old) (ISO-8859-4)" msgstr "Baltisch (alt) (ISO-8859-4)" #: ../src/richtext/richtextliststylepage.cpp:426 msgid "Before a paragraph:" msgstr "Vor einem Absatz:" #: ../src/richtext/richtextliststylepage.cpp:489 #: ../src/richtext/richtextbulletspage.cpp:294 msgid "Bitmap" msgstr "Bitmap" #: ../src/osx/carbon/dataview.cpp:2396 msgid "Bitmap renderer cannot render value; value type: " msgstr "Bitmapdarsteller kann den Wert nicht wiedergeben; Typ des Werts:" #: ../src/generic/fontdlgg.cpp:333 ../src/richtext/richtextfontpage.cpp:337 #: ../src/osx/carbon/fontdlg.cpp:540 ../src/common/stockitem.cpp:143 msgid "Bold" msgstr "Fett" #: ../src/richtext/richtextborderspage.cpp:256 #: ../src/richtext/richtextborderspage.cpp:389 msgid "Border" msgstr "Berandung" #: ../src/richtext/richtextformatdlg.cpp:368 msgid "Borders" msgstr "Berandungen" #: ../src/richtext/richtextsizepage.cpp:288 ../src/common/stockitem.cpp:144 msgid "Bottom" msgstr "Unten" #: ../src/generic/prntdlgg.cpp:893 msgid "Bottom margin (mm):" msgstr "Unterer Rand (mm)" #: ../src/richtext/richtextbuffer.cpp:8919 msgid "Box Properties" msgstr "Eigenschaften" #: ../src/richtext/richtextstyles.cpp:1061 msgid "Box styles" msgstr "Box Stile" #: ../src/common/filepickercmn.cpp:43 ../src/common/filepickercmn.cpp:44 msgid "Browse" msgstr "Durchsuchen" #: ../src/richtext/richtextliststylepage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:195 msgid "Bullet &Alignment:" msgstr "&Ausrichtung der Gliederungspunkte:" #: ../src/richtext/richtextliststylepage.cpp:309 msgid "Bullet style" msgstr "Stil der Gliederungspunkte" #: ../src/richtext/richtextformatdlg.cpp:342 msgid "Bullets" msgstr "Gliederungspunkte" #: ../src/common/paper.cpp:99 msgid "C sheet, 17 x 22 in" msgstr "C Blatt, 17 x 22 Zoll" #: ../src/generic/logg.cpp:520 msgid "C&lear" msgstr "&Löschen" #: ../src/generic/fontdlgg.cpp:406 msgid "C&olour:" msgstr "&Farbe:" #: ../src/common/paper.cpp:124 msgid "C3 Envelope, 324 x 458 mm" msgstr "C3 Umschlag, 324 x 458 mm" #: ../src/common/paper.cpp:125 msgid "C4 Envelope, 229 x 324 mm" msgstr "C4 Umschlag, 229 x 324 mm" #: ../src/common/paper.cpp:123 msgid "C5 Envelope, 162 x 229 mm" msgstr "C5 Umschlag, 162 x 229 mm" #: ../src/common/paper.cpp:126 msgid "C6 Envelope, 114 x 162 mm" msgstr "C6 Umschlag, 114 x 162 mm" #: ../src/common/paper.cpp:127 msgid "C65 Envelope, 114 x 229 mm" msgstr "C65 Umschlag, 114 x 229 mm" #: ../src/common/accelcmn.cpp:66 msgid "CANCEL" msgstr "ABBRECHEN" #: ../src/common/accelcmn.cpp:70 msgid "CAPITAL" msgstr "KAPITALIEN" #: ../src/common/stockitem.cpp:146 msgid "CD-Rom" msgstr "CD-Rom" #: ../src/html/chm.cpp:815 ../src/html/chm.cpp:874 msgid "CHM handler currently supports only local files!" msgstr "CHM-Handler unterstützt derzeit nur lokale Dateien." #: ../src/common/accelcmn.cpp:67 msgid "CLEAR" msgstr "LÖSCHEN" #: ../src/common/accelcmn.cpp:111 msgid "COMMAND" msgstr "BEFEHL" #: ../src/richtext/richtextfontpage.cpp:291 msgid "Ca&pitals" msgstr "Ka&pitalien" #: ../src/common/cmdproc.cpp:267 msgid "Can't &Undo " msgstr "Kann nicht rückgängig machen " #: ../src/common/image.cpp:2686 msgid "Can't automatically determine the image format for non-seekable input." msgstr "" "Das Bildformat für nicht durchsuchbare Eingabe kann nicht bestimmt werden." #: ../src/msw/registry.cpp:505 #, c-format msgid "Can't close registry key '%s'" msgstr "Kann Registrierungsschlüssel '%s' nicht schließen." #: ../src/msw/registry.cpp:583 #, c-format msgid "Can't copy values of unsupported type %d." msgstr "Kann Inhalte des nicht unterstützten Typs %d nicht kopieren." #: ../src/msw/registry.cpp:486 #, c-format msgid "Can't create registry key '%s'" msgstr "Kann Registrierungsschlüssel '%s' nicht anlegen." #: ../src/msw/thread.cpp:696 ../src/os2/thread.cpp:494 msgid "Can't create thread" msgstr "Kann Thread nicht erzeugen" #: ../src/msw/window.cpp:3793 #, c-format msgid "Can't create window of class %s" msgstr "Kann kein Fenster der Klasse '%s' anlegen." #: ../src/msw/registry.cpp:776 #, c-format msgid "Can't delete key '%s'" msgstr "Kann Schlüssel '%s' nicht löschen" #: ../src/msw/iniconf.cpp:458 ../src/os2/iniconf.cpp:471 #, c-format msgid "Can't delete the INI file '%s'" msgstr "Kann INI-Datei '%s' nicht löschen" #: ../src/msw/registry.cpp:804 #, c-format msgid "Can't delete value '%s' from key '%s'" msgstr "Kann Wert '%s' von Schlüssel '%s' nicht löschen." #: ../src/msw/registry.cpp:1161 #, c-format msgid "Can't enumerate subkeys of key '%s'" msgstr "Kann Unterschlüssel von '%s' nicht auflisten" #: ../src/msw/registry.cpp:1116 #, c-format msgid "Can't enumerate values of key '%s'" msgstr "Kann Werte von Schlüssel '%s' nicht auflisten" #: ../src/msw/registry.cpp:1379 #, c-format msgid "Can't export value of unsupported type %d." msgstr "Kann Wert des nicht unterstützten Typs %d nicht kopieren." #: ../src/common/ffile.cpp:236 #, c-format msgid "Can't find current position in file '%s'" msgstr "Kann aktuelle Position in Datei '%s' nicht finden." #: ../src/msw/registry.cpp:416 #, c-format msgid "Can't get info about registry key '%s'" msgstr "Kann keine Information über den Registrierungsschlüssel '%s' finden" #: ../src/common/zstream.cpp:346 msgid "Can't initialize zlib deflate stream." msgstr "Kann das Entpacken der zlib-Daten nicht initialisieren" #: ../src/common/zstream.cpp:185 msgid "Can't initialize zlib inflate stream." msgstr "Kann das komprimieren der zlib-Daten nicht initialisieren" #: ../src/msw/fswatcher.cpp:432 #, c-format msgid "Can't monitor non-existent directory \"%s\" for changes." msgstr "" "Das nicht vorhandene Verzeichnis \"%s\" kann nicht nach Änderungen " "durchsucht werden." #: ../src/msw/registry.cpp:452 #, c-format msgid "Can't open registry key '%s'" msgstr "Kann Registrierungsschlüssel '%s' nicht öffnen" #: ../src/common/zstream.cpp:252 #, c-format msgid "Can't read from inflate stream: %s" msgstr "Kann nicht vom entpackten Datenstrom lesen:%s" #: ../src/common/zstream.cpp:244 msgid "Can't read inflate stream: unexpected EOF in underlying stream." msgstr "" "Kann den Entkomprimier-Strom nicht lesen: Unerwartetes EOF im " "zugrundeliegenden Strom." #: ../src/msw/registry.cpp:1048 #, c-format msgid "Can't read value of '%s'" msgstr "Kann Wert von '%s' nicht lesen" #: ../src/msw/registry.cpp:877 ../src/msw/registry.cpp:909 #: ../src/msw/registry.cpp:971 #, c-format msgid "Can't read value of key '%s'" msgstr "Kann Wert von Eintrag '%s' nicht lesen" #: ../src/common/image.cpp:2483 #, c-format msgid "Can't save image to file '%s': unknown extension." msgstr "Kann Bild nicht aus Datei '%s' laden: Unbekannte Dateiendung." #: ../src/generic/logg.cpp:579 ../src/generic/logg.cpp:996 msgid "Can't save log contents to file." msgstr "Kann Logtexte nicht in Datei speichern." #: ../src/msw/thread.cpp:652 ../src/os2/thread.cpp:477 msgid "Can't set thread priority" msgstr "Kann Thread-Priorität nicht setzen" #: ../src/msw/registry.cpp:895 ../src/msw/registry.cpp:939 #: ../src/msw/registry.cpp:1065 #, c-format msgid "Can't set value of '%s'" msgstr "Kann Wert von '%s' nicht setzen" #: ../src/unix/utilsunx.cpp:357 msgid "Can't write to child process's stdin" msgstr "Kann nicht in den Standard-Eingabekanal des Kindprozesses schreiben" #: ../src/common/zstream.cpp:427 #, c-format msgid "Can't write to deflate stream: %s" msgstr "Kann nicht in den gepackten Datenstrom schreiben: %s" #: ../include/wx/msgdlg.h:274 ../src/generic/dirdlgg.cpp:107 #: ../src/richtext/richtextstyledlg.cpp:300 ../src/common/stockitem.cpp:145 #: ../src/msw/msgdlg.cpp:489 ../src/msw/progdlg.cpp:673 #: ../src/gtk1/fontdlg.cpp:144 ../src/motif/msgdlg.cpp:196 msgid "Cancel" msgstr "Abbrechen" #: ../src/os2/thread.cpp:116 msgid "Cannot create mutex." msgstr "Kann Mutex nicht anlegen." #: ../src/osx/carbon/dataview.cpp:895 msgid "Cannot create new column's ID. Probably max. number of columns reached." msgstr "" "Es können keine neuen ID Zeilen angelegt werden. Warscheinlich ist die " "maximale Anzahl an Zeilen erreicht." #: ../src/common/filefn.cpp:1336 #, c-format msgid "Cannot enumerate files '%s'" msgstr "Kann Dateien '%s' nicht auflisten" #: ../src/msw/dir.cpp:264 #, c-format msgid "Cannot enumerate files in directory '%s'" msgstr "Kann Dateien in Verzeichnis '%s' nicht auflisten" #: ../src/msw/dialup.cpp:542 #, c-format msgid "Cannot find active dialup connection: %s" msgstr "Kann keine aktive DFÜ-Verbindung finden: %s" #: ../src/msw/dialup.cpp:848 msgid "Cannot find the location of address book file" msgstr "Kann Adressbuchdatei nicht finden" #: ../src/msw/ole/automtn.cpp:562 #, c-format msgid "Cannot get an active instance of \"%s\"" msgstr "Kann kein aktives Exemplar von \"%s\" bekommen" #: ../src/unix/threadpsx.cpp:1030 #, c-format msgid "Cannot get priority range for scheduling policy %d." msgstr "Kein Prioritätsbereich für Scheduling-Verfahren %d ermittelbar." #: ../src/unix/utilsunx.cpp:988 msgid "Cannot get the hostname" msgstr "Hostnamen nicht ermittelbar" #: ../src/unix/utilsunx.cpp:1024 msgid "Cannot get the official hostname" msgstr "Offizieller Hostname nicht ermittelbar" #: ../src/msw/dialup.cpp:949 msgid "Cannot hang up - no active dialup connection." msgstr "Kann nicht auflegen - keine aktive DFÜ-Verbindung vorhanden." #: ../include/wx/msw/ole/oleutils.h:52 msgid "Cannot initialize OLE" msgstr "Kann OLE nicht initialisieren" #: ../src/common/socket.cpp:847 msgid "Cannot initialize sockets" msgstr "Kann Sockets nicht initialisieren" #: ../src/msw/volume.cpp:620 #, c-format msgid "Cannot load icon from '%s'." msgstr "Kann das Icon nicht von '%s' laden." #: ../src/xrc/xmlres.cpp:361 #, c-format msgid "Cannot load resources from '%s'." msgstr "Kann die Ressourcen nicht aus '%s' laden." #: ../src/xrc/xmlres.cpp:746 #, c-format msgid "Cannot load resources from file '%s'." msgstr "Kann die Ressourcen nicht aus der Datei '%s' laden." #: ../src/html/htmlfilt.cpp:137 #, c-format msgid "Cannot open HTML document: %s" msgstr "HTML-Dokument %s kann nicht geöffnet werden" #: ../src/html/helpdata.cpp:665 #, c-format msgid "Cannot open HTML help book: %s" msgstr "HTML-Hilfebuch %s kann nicht geöffnet werden" #: ../src/html/helpdata.cpp:297 #, c-format msgid "Cannot open contents file: %s" msgstr "Kann den Inhalt der Datei %s nicht öffnen!" #: ../src/generic/dcpsg.cpp:1751 msgid "Cannot open file for PostScript printing!" msgstr "Kann Datei für den Postscriptdruck nicht öffnen!" #: ../src/html/helpdata.cpp:311 #, c-format msgid "Cannot open index file: %s" msgstr "Kann Indexdatei %s nicht öffnen!" #: ../src/xrc/xmlres.cpp:728 #, c-format msgid "Cannot open resources file '%s'." msgstr "Kann die Ressourcendatei '%s' nicht öffnen." #: ../src/html/helpwnd.cpp:1537 msgid "Cannot print empty page." msgstr "Leere Seite kann nicht gedruckt werden." #: ../src/msw/volume.cpp:507 #, c-format msgid "Cannot read typename from '%s'!" msgstr "Kann die Typnamen nicht aus '%s' lesen!" #: ../src/os2/thread.cpp:527 #, c-format msgid "Cannot resume thread %lu" msgstr "Kann Thread %lu nicht fortsetzen." #: ../src/msw/thread.cpp:923 #, c-format msgid "Cannot resume thread %lx" msgstr "Kann Thread %lx nicht fortsetzen" #: ../src/unix/threadpsx.cpp:1011 msgid "Cannot retrieve thread scheduling policy." msgstr "Kann Scheduling-Verfahren der Threads nicht ermitteln" #: ../src/common/intl.cpp:542 #, c-format msgid "Cannot set locale to language \"%s\"." msgstr "Lokalisierung kann nicht auf die Sprache \"%s\" gesetzt werden." #: ../src/unix/threadpsx.cpp:831 ../src/msw/thread.cpp:569 msgid "Cannot start thread: error writing TLS." msgstr "Kann Thread nicht starten: Fehler beim Beschreiben des TLS." #: ../src/os2/thread.cpp:513 #, c-format msgid "Cannot suspend thread %lu" msgstr "Kann Thread %lu nicht anhalten." #: ../src/msw/thread.cpp:907 #, fuzzy, c-format msgid "Cannot suspend thread %lx" msgstr "Kann Thread %lx nicht anhalten." #: ../src/msw/thread.cpp:830 msgid "Cannot wait for thread termination" msgstr "Kann nicht auf Threadende warten" #: ../src/html/helpwnd.cpp:546 msgid "Case sensitive" msgstr "Groß-/Kleinschreibung" #: ../src/propgrid/manager.cpp:1495 msgid "Categorized Mode" msgstr "Bestimmter Modus" #: ../src/richtext/richtextbuffer.cpp:9347 msgid "Cell Properties" msgstr "Zelleneigenschaften" #: ../src/common/fmapbase.cpp:161 msgid "Celtic (ISO-8859-14)" msgstr "Keltisch (ISO-8859-14)" #: ../src/richtext/richtextindentspage.cpp:160 #: ../src/richtext/richtextliststylepage.cpp:349 msgid "Cen&tred" msgstr "Zen&triert" #: ../src/common/stockitem.cpp:170 msgid "Centered" msgstr "Zentriert" #: ../src/common/fmapbase.cpp:149 msgid "Central European (ISO-8859-2)" msgstr "Zentraleuropäisch (ISO-8859-2)" #: ../src/richtext/richtextliststylepage.cpp:250 #: ../src/richtext/richtextbulletspage.cpp:200 msgid "Centre" msgstr "Zentriert" #: ../src/richtext/richtextindentspage.cpp:162 #: ../src/richtext/richtextindentspage.cpp:164 #: ../src/richtext/richtextliststylepage.cpp:351 #: ../src/richtext/richtextliststylepage.cpp:353 msgid "Centre text." msgstr "Zentriere Text." #: ../src/richtext/richtextsizepage.cpp:287 msgid "Centred" msgstr "Zentriert" #: ../src/richtext/richtextliststylepage.cpp:280 #: ../src/richtext/richtextbulletspage.cpp:232 msgid "Ch&oose..." msgstr "Wä&hle..." #: ../src/richtext/richtextbuffer.cpp:4041 msgid "Change List Style" msgstr "Ändere den Stil der Liste" #: ../src/richtext/richtextbuffer.cpp:3392 msgid "Change Object Style" msgstr "Ändere den Stil des Objektes" #: ../src/richtext/richtextbuffer.cpp:3658 #: ../src/richtext/richtextbuffer.cpp:7749 msgid "Change Properties" msgstr "Ändere Eigenschaften" #: ../src/richtext/richtextbuffer.cpp:3209 msgid "Change Style" msgstr "Ändere Stil" #: ../src/common/fileconf.cpp:372 #, c-format msgid "Changes won't be saved to avoid overwriting the existing file \"%s\"" msgstr "" "Änderungen werden nicht gesichert um das Überschreiben der vorhandenen " "Datei \"%s\" zu vermeiden." #: ../src/richtext/richtextstyles.cpp:1059 msgid "Character styles" msgstr "Zeichenstil" #: ../src/richtext/richtextliststylepage.cpp:224 #: ../src/richtext/richtextliststylepage.cpp:226 #: ../src/richtext/richtextbulletspage.cpp:174 #: ../src/richtext/richtextbulletspage.cpp:176 msgid "Check to add a period after the bullet." msgstr "Klicken um einen Punkt nach dem Gliederungspunkt hinzuzufügen." #: ../src/richtext/richtextliststylepage.cpp:238 #: ../src/richtext/richtextliststylepage.cpp:240 #: ../src/richtext/richtextbulletspage.cpp:188 #: ../src/richtext/richtextbulletspage.cpp:190 msgid "Check to add a right parenthesis." msgstr "Klicken um eine schließende Klammer hinzuzufügen." #: ../src/richtext/richtextliststylepage.cpp:231 #: ../src/richtext/richtextliststylepage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:181 #: ../src/richtext/richtextbulletspage.cpp:183 msgid "Check to enclose the bullet in parentheses." msgstr "Klicken um den Gliederungspunkt in Klammern zu setzen." #: ../src/osx/carbon/fontdlg.cpp:542 ../src/osx/carbon/fontdlg.cpp:544 msgid "Check to make the font bold." msgstr "Klicken um die Schriftart auf fett zu stellen." #: ../src/osx/carbon/fontdlg.cpp:549 ../src/osx/carbon/fontdlg.cpp:551 msgid "Check to make the font italic." msgstr "Klicken um die Schriftart auf kursiv zu stellen." #: ../src/osx/carbon/fontdlg.cpp:558 ../src/osx/carbon/fontdlg.cpp:560 msgid "Check to make the font underlined." msgstr "Klicken um die Schriftart auf unterstrichen zu stellen." #: ../src/richtext/richtextstyledlg.cpp:289 #: ../src/richtext/richtextstyledlg.cpp:291 msgid "Check to restart numbering." msgstr "Klicken um die Nummerierung neu zu starten" #: ../src/richtext/richtextfontpage.cpp:286 #: ../src/richtext/richtextfontpage.cpp:288 msgid "Check to show a line through the text." msgstr "Klicken um eine Linie durch den Text zu ziehen." #: ../src/richtext/richtextfontpage.cpp:293 #: ../src/richtext/richtextfontpage.cpp:295 msgid "Check to show the text in capitals." msgstr "Markieren um den Text in Großbuchstaben anzuzeigen." #: ../src/richtext/richtextfontpage.cpp:300 #: ../src/richtext/richtextfontpage.cpp:302 msgid "Check to show the text in small capitals." msgstr "Markieren um den Text in Kapitälchen darzustellen." #: ../src/richtext/richtextfontpage.cpp:314 #: ../src/richtext/richtextfontpage.cpp:316 msgid "Check to show the text in subscript." msgstr "Klicken um den Text tiefgestellt anzuzeigen." #: ../src/richtext/richtextfontpage.cpp:307 #: ../src/richtext/richtextfontpage.cpp:309 msgid "Check to show the text in superscript." msgstr "Klicken um den Text hochgestellt anzuzeigen." #: ../src/msw/dialup.cpp:784 msgid "Choose ISP to dial" msgstr "Wähle anzuwählenden ISP" #: ../src/propgrid/props.cpp:1643 msgid "Choose a directory:" msgstr "Verzeichnis wählen:" #: ../src/propgrid/props.cpp:1702 msgid "Choose a file" msgstr "Datei wählen" #: ../src/generic/colrdlgg.cpp:144 ../src/gtk/colordlg.cpp:63 msgid "Choose colour" msgstr "Wähle Farbe" #: ../src/generic/fontpickerg.cpp:50 ../src/gtk/fontdlg.cpp:75 #: ../src/gtk1/fontdlg.cpp:125 msgid "Choose font" msgstr "Wähle Schriftart" #: ../src/common/module.cpp:74 #, c-format msgid "Circular dependency involving module \"%s\" detected." msgstr "Zirkuläre Abhängigkeit betreffend das Modul \"%s\" erkannt." #: ../src/aui/tabmdi.cpp:108 ../src/generic/mdig.cpp:97 msgid "Cl&ose" msgstr "Schließen" #: ../src/msw/ole/automtn.cpp:673 msgid "Class not registered." msgstr "Klasse nicht registriert." #: ../src/common/stockitem.cpp:147 msgid "Clear" msgstr "Löschen" #: ../src/generic/logg.cpp:520 msgid "Clear the log contents" msgstr "Logtexte löschen" #: ../src/richtext/richtextstyledlg.cpp:252 #: ../src/richtext/richtextstyledlg.cpp:254 msgid "Click to apply the selected style." msgstr "Klicken um den ausgewählten Stil anzuwenden." #: ../src/richtext/richtextliststylepage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:283 #: ../src/richtext/richtextbulletspage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:235 msgid "Click to browse for a symbol." msgstr "Klicken um nach einem Symbol zu navigieren." #: ../src/osx/carbon/fontdlg.cpp:589 ../src/osx/carbon/fontdlg.cpp:591 msgid "Click to cancel changes to the font." msgstr "Klicken um die Änderungen der Schriftart zu verwerfen." #: ../src/generic/fontdlgg.cpp:472 ../src/generic/fontdlgg.cpp:491 msgid "Click to cancel the font selection." msgstr "Klicken um Wahl der Schriftart abzubrechen." #: ../src/osx/carbon/fontdlg.cpp:570 ../src/osx/carbon/fontdlg.cpp:572 msgid "Click to change the font colour." msgstr "Klicken um die Farbe der Schriftart zu ändern." #: ../src/richtext/richtextfontpage.cpp:276 #: ../src/richtext/richtextfontpage.cpp:278 msgid "Click to change the text background colour." msgstr "Klicken um die Hintergrundfarbe des Textes zu ändern." #: ../src/richtext/richtextfontpage.cpp:263 #: ../src/richtext/richtextfontpage.cpp:265 msgid "Click to change the text colour." msgstr "Klicken um die Textfarbe zu ändern." #: ../src/richtext/richtextliststylepage.cpp:195 #: ../src/richtext/richtextliststylepage.cpp:197 msgid "Click to choose the font for this level." msgstr "Klicken um die Schriftart für diese Ebene zu wählen." #: ../src/richtext/richtextstyledlg.cpp:279 #: ../src/richtext/richtextstyledlg.cpp:281 msgid "Click to close this window." msgstr "Klicken um dieses Fenster zu schließen." #: ../src/osx/carbon/fontdlg.cpp:596 ../src/osx/carbon/fontdlg.cpp:598 msgid "Click to confirm changes to the font." msgstr "Klicken um die Änderungen der Schriftart zu bestätigen." #: ../src/generic/fontdlgg.cpp:477 ../src/generic/fontdlgg.cpp:479 #: ../src/generic/fontdlgg.cpp:484 ../src/generic/fontdlgg.cpp:486 msgid "Click to confirm the font selection." msgstr "Klicken um Wahl der Schriftart zu bestätigen." #: ../src/richtext/richtextstyledlg.cpp:244 #: ../src/richtext/richtextstyledlg.cpp:246 msgid "Click to create a new box style." msgstr "Klicken um einen neuen Box Stil zu erzeugen." #: ../src/richtext/richtextstyledlg.cpp:226 #: ../src/richtext/richtextstyledlg.cpp:228 msgid "Click to create a new character style." msgstr "Klicken um einen neuen Zeichenstil zu erzeugen." #: ../src/richtext/richtextstyledlg.cpp:238 #: ../src/richtext/richtextstyledlg.cpp:240 msgid "Click to create a new list style." msgstr "Klicken um einen neuen Listenstil zu erzeugen." #: ../src/richtext/richtextstyledlg.cpp:232 #: ../src/richtext/richtextstyledlg.cpp:234 msgid "Click to create a new paragraph style." msgstr "Klicken um einen neuen Absatzstil zu erzeugen." #: ../src/richtext/richtexttabspage.cpp:137 #: ../src/richtext/richtexttabspage.cpp:139 msgid "Click to create a new tab position." msgstr "Klicken um eine neue Tabulatorposition zu erzeugen." #: ../src/richtext/richtexttabspage.cpp:149 #: ../src/richtext/richtexttabspage.cpp:151 msgid "Click to delete all tab positions." msgstr "Klicken um alle Tabulatorpositionen zu löschen." #: ../src/richtext/richtextstyledlg.cpp:270 #: ../src/richtext/richtextstyledlg.cpp:272 msgid "Click to delete the selected style." msgstr "Klicken um den ausgewählten Stil zu löschen." #: ../src/richtext/richtexttabspage.cpp:143 #: ../src/richtext/richtexttabspage.cpp:145 msgid "Click to delete the selected tab position." msgstr "Klicken um die ausgewählte Tabulatorposition zu löschen." #: ../src/richtext/richtextstyledlg.cpp:264 #: ../src/richtext/richtextstyledlg.cpp:266 msgid "Click to edit the selected style." msgstr "Klicken um den ausgewählten Stil zu bearbeiten." #: ../src/richtext/richtextstyledlg.cpp:258 #: ../src/richtext/richtextstyledlg.cpp:260 msgid "Click to rename the selected style." msgstr "Klicken um den ausgewählten Stil umzubenennen." #: ../src/generic/dbgrptg.cpp:97 ../src/generic/progdlgg.cpp:804 #: ../src/generic/progdlgg.cpp:809 ../src/richtext/richtextstyledlg.cpp:277 #: ../src/richtext/richtextsymboldlg.cpp:476 ../src/common/stockitem.cpp:148 #: ../src/msw/progdlg.cpp:170 ../src/msw/progdlg.cpp:679 #: ../src/html/helpdlg.cpp:90 msgid "Close" msgstr "Schließen" #: ../src/aui/tabmdi.cpp:109 ../src/generic/mdig.cpp:98 msgid "Close All" msgstr "Alles Schließen" #: ../src/common/stockitem.cpp:266 msgid "Close current document" msgstr "Aktuelles Dokument schließen" #: ../src/generic/logg.cpp:522 msgid "Close this window" msgstr "Fenster schließen" #: ../src/common/stockitem.cpp:193 msgid "Color" msgstr "Farbe" #: ../src/richtext/richtextformatdlg.cpp:725 msgid "Colour" msgstr "Farbe" #: ../src/msw/colordlg.cpp:156 #, c-format msgid "Colour selection dialog failed with error %0lx." msgstr "Farbauswahldialog schlug mit Fehler %0lx fehl." #: ../src/osx/carbon/fontdlg.cpp:566 msgid "Colour:" msgstr "Farbe:" #: ../src/osx/carbon/dataview.cpp:900 msgid "Column could not be added." msgstr "Zeile konnte nicht hinzugefügt werden." #: ../src/osx/carbon/dataview.cpp:899 msgid "Column description could not be initialized." msgstr "Zeilenbeschreibung konnte nicht installiert werden." #: ../src/osx/carbon/dataview.cpp:1538 ../src/osx/carbon/dataview.cpp:1559 msgid "Column index not found." msgstr "Zeilenindex nicht gefunden." #: ../src/osx/carbon/dataview.cpp:1614 msgid "Column width could not be determined" msgstr "Zeilenbreite kann nicht bestimmt werden" #: ../src/osx/carbon/dataview.cpp:901 msgid "Column width could not be set." msgstr "Zeilenbreite kann nicht gesetzt werden." #: ../src/common/init.cpp:188 #, c-format msgid "" "Command line argument %d couldn't be converted to Unicode and will be " "ignored." msgstr "" "Kommandozeilenargument %d konnte nicht nach Unicode konvertiert werden und " "wird ignoriert." #: ../src/msw/fontdlg.cpp:119 #, c-format msgid "Common dialog failed with error code %0lx." msgstr "Allgemeiner Dialog schlug fehl mit dem Fehlercode %0lx." #: ../src/gtk/window.cpp:4306 msgid "" "Compositing not supported by this system, please enable it in your Window " "Manager." msgstr "" "Zusammenfügen wird nicht durch dieses System unterstützt, bitte über den " "Fenster Manager einstellen." #: ../src/html/helpwnd.cpp:1554 msgid "Compressed HTML Help file (*.chm)|*.chm|" msgstr "Komprimierte HTML-Hilfedatei (*.chm)|*.chm|" #: ../src/generic/dirctrlg.cpp:544 msgid "Computer" msgstr "Computer" #: ../src/common/fileconf.cpp:965 #, c-format msgid "Config entry name cannot start with '%c'." msgstr "" "Die Bezeichnung des Konfigurations-Eintrags kann nicht mit '%c' beginnen." #: ../src/gtk/filedlg.cpp:59 msgid "Confirm" msgstr "Bestätigen" #: ../src/msw/mimetype.cpp:739 msgid "Confirm registry update" msgstr "Aktualisierung der Registry bestätigen" #: ../src/html/htmlwin.cpp:544 msgid "Connecting..." msgstr "Verbinde..." #: ../src/html/helpwnd.cpp:482 msgid "Contents" msgstr "Inhalte" #: ../src/common/strconv.cpp:2261 #, c-format msgid "Conversion to charset '%s' doesn't work." msgstr "Konvertierung zum Zeichensatz '%s' funktioniert nicht." #: ../src/common/stockitem.cpp:149 msgid "Convert" msgstr "Konvertieren" #: ../src/html/htmlwin.cpp:1057 #, c-format msgid "Copied to clipboard:\"%s\"" msgstr "In Zwischenablage kopiert:\"%s\"" #: ../src/generic/prntdlgg.cpp:247 msgid "Copies:" msgstr "Kopien:" #: ../src/common/stockitem.cpp:150 ../src/stc/stc_i18n.cpp:18 msgid "Copy" msgstr "Kopieren" #: ../src/common/stockitem.cpp:258 msgid "Copy selection" msgstr "Auswahl kopieren" #: ../src/html/chm.cpp:718 #, c-format msgid "Could not create temporary file '%s'" msgstr "Konnte temporäre Datei %s nicht erzeugen" #: ../src/osx/carbon/dataview.cpp:1285 ../src/osx/carbon/dataview.cpp:1672 msgid "Could not determine column index." msgstr "Konnte Zeilenindex nicht bestimmen." #: ../src/osx/carbon/dataview.cpp:876 msgid "Could not determine column's position" msgstr "Zeilenposition kann nicht bestimmt werden" #: ../src/osx/carbon/dataview.cpp:843 msgid "Could not determine number of columns." msgstr "Anzahl an Zeilen konnte nicht ermittelt werden." #: ../src/osx/carbon/dataview.cpp:975 msgid "Could not determine number of items" msgstr "Konnte Anzahl der Elemente nicht bestimmen" #: ../src/html/chm.cpp:273 #, c-format msgid "Could not extract %s into %s: %s" msgstr "Konnte nicht %s in %s extrahieren: %s" #: ../src/generic/tabg.cpp:1048 msgid "Could not find tab for id" msgstr "Konnte Seite für ID nicht finden" #: ../src/osx/carbon/dataview.cpp:2556 ../src/osx/carbon/dataview.cpp:2591 #: ../src/osx/carbon/dataview.cpp:2615 ../src/osx/carbon/dataview.cpp:2636 #: ../src/osx/carbon/dataview.cpp:2773 msgid "Could not get header description." msgstr "Konnte Kopfzeilenbeschreibung nicht erhalten." #: ../src/osx/carbon/dataview.cpp:1169 ../src/osx/carbon/dataview.cpp:1195 msgid "Could not get items." msgstr "Konnte die Elemente nicht erhalten." #: ../src/osx/carbon/dataview.cpp:2659 ../src/osx/carbon/dataview.cpp:2724 msgid "Could not get property flags." msgstr "Konnte die Eigenschaftsflags nicht erhalten." #: ../src/osx/carbon/dataview.cpp:726 msgid "Could not get selected items." msgstr "Konnte die ausgewählten Elemente nicht erhalten." #: ../src/html/chm.cpp:444 #, c-format msgid "Could not locate file '%s'." msgstr "Konnte Datei %s nicht finden." #: ../src/osx/carbon/dataview.cpp:845 msgid "Could not remove column." msgstr "Konnte die Zeile nicht entfernen." #: ../src/osx/carbon/dataview.cpp:642 msgid "Could not retrieve number of items" msgstr "Konnte die Anzahl der Elemente nicht erhalten." #: ../src/osx/carbon/dataview.cpp:2572 msgid "Could not set alignment." msgstr "Konnte die Ausrichtung nicht setzen." #: ../src/osx/carbon/dataview.cpp:2803 msgid "Could not set column width." msgstr "Konnte die Zeilenbreite nicht setzen." #: ../src/common/filefn.cpp:1569 msgid "Could not set current working directory" msgstr "Konnte das Arbeitsverzeichnis nicht setzen" #: ../src/osx/carbon/dataview.cpp:2775 msgid "Could not set header description." msgstr "Konnte die Kopfzeilenbeschreibung nicht setzen." #: ../src/osx/carbon/dataview.cpp:2596 msgid "Could not set icon." msgstr "Konnte Sinnbild nicht setzen." #: ../src/osx/carbon/dataview.cpp:2617 msgid "Could not set maximum width." msgstr "Konnte die maximale Breite nicht setzen." #: ../src/osx/carbon/dataview.cpp:2638 msgid "Could not set minimum width." msgstr "Minimale Breite kann nicht gesetzt werden." #: ../src/osx/carbon/dataview.cpp:2664 ../src/osx/carbon/dataview.cpp:2729 msgid "Could not set property flags." msgstr "Konnte Eigenschaftsflag nicht setzen." #: ../src/common/prntbase.cpp:1985 msgid "Could not start document preview." msgstr "Kann Druckvorschau nicht starten." #: ../src/generic/printps.cpp:178 ../src/msw/printwin.cpp:210 #: ../src/gtk/print.cpp:1077 msgid "Could not start printing." msgstr "Kann Ausdruck nicht beginnen." #: ../src/common/wincmn.cpp:2131 msgid "Could not transfer data to window" msgstr "Kann Daten nicht ins Fenster übertragen." #: ../src/os2/thread.cpp:160 msgid "Couldn't acquire a mutex lock" msgstr "Konnte Mutex-Sperre nicht bekommen" #: ../src/msw/imaglist.cpp:166 ../src/msw/imaglist.cpp:197 #: ../src/msw/imaglist.cpp:209 ../src/msw/dragimag.cpp:193 #: ../src/msw/dragimag.cpp:232 msgid "Couldn't add an image to the image list." msgstr "Kann Bild nicht zur Liste hinzufügen." #: ../src/msw/timer.cpp:134 ../src/os2/timer.cpp:113 msgid "Couldn't create a timer" msgstr "Kann keinen Timer anlegen." #: ../src/osx/carbon/overlay.cpp:122 msgid "Couldn't create the overlay window" msgstr "Konnte das überlagerte Fenster nicht erzeugen." #: ../src/common/translation.cpp:2015 msgid "Couldn't enumerate translations" msgstr "Konnte Übersetzungen nicht aufzählen" #: ../src/common/dynlib.cpp:152 #, c-format msgid "Couldn't find symbol '%s' in a dynamic library" msgstr "Kann Symbol '%s' in der dynamischen Bibliothek nicht finden" #: ../src/gtk/print.cpp:2014 msgid "Couldn't get hatch style from wxBrush." msgstr "Konnte den Schraffurstil von wxBrush nicht erfragen." #: ../src/msw/thread.cpp:950 msgid "Couldn't get the current thread pointer" msgstr "Kann den aktuellen Threadzeiger nicht bekommen." #: ../src/osx/carbon/overlay.cpp:129 msgid "Couldn't init the context on the overlay window" msgstr "Konnte den Kontext auf dem überlagerten Fenster nicht initialisieren." #: ../src/common/imaggif.cpp:263 msgid "Couldn't initialize GIF hash table." msgstr "GIF Hash-Tabelle konnte nicht initialisiert werden." #: ../src/common/imagpng.cpp:657 msgid "Couldn't load a PNG image - file is corrupted or not enough memory." msgstr "" "Konnte PNG-Bild nicht laden - Datei ist beschädigt oder der Speicher reicht " "nicht aus." #: ../src/unix/sound.cpp:470 #, c-format msgid "Couldn't load sound data from '%s'." msgstr "Kann die Klangdaten nicht von '%s' laden." #: ../src/msw/dirdlg.cpp:441 msgid "Couldn't obtain folder name" msgstr "Verzeichnisname konnte nicht ermittelt werden." #: ../src/unix/sound_sdl.cpp:229 #, c-format msgid "Couldn't open audio: %s" msgstr "Fehler beim Öffnen der Audiodatei: %s" #: ../src/msw/ole/dataobj.cpp:350 #, c-format msgid "Couldn't register clipboard format '%s'." msgstr "Konnte Zwischenablage-Format '%s' nicht registrieren." #: ../src/os2/thread.cpp:177 msgid "Couldn't release a mutex" msgstr "Konnte einen Mutex nicht freigeben." #: ../src/msw/listctrl.cpp:756 #, c-format msgid "Couldn't retrieve information about list control item %d." msgstr "Kann keine Informationen über das Listenelement %d bekommen." #: ../src/common/imagpng.cpp:746 ../src/common/imagpng.cpp:757 #: ../src/common/imagpng.cpp:767 msgid "Couldn't save PNG image." msgstr "Konnte PNG-Bild nicht speichern." #: ../src/msw/thread.cpp:715 msgid "Couldn't terminate thread" msgstr "Kann Thread nicht beenden" #: ../src/common/xtistrm.cpp:170 #, c-format msgid "Create Parameter %s not found in declared RTTI Parameters" msgstr "" "Erzeugungsparameter %s nicht in den deklarierten RTTI-Parametern gefunden" #: ../src/generic/dirdlgg.cpp:317 msgid "Create directory" msgstr "Verzeichnis anlegen" #: ../src/generic/filedlgg.cpp:228 ../src/generic/dirdlgg.cpp:131 msgid "Create new directory" msgstr "Neues Verzeichnis anlegen" #: ../src/common/accelcmn.cpp:322 msgid "Ctrl+" msgstr "Strg+" #: ../src/richtext/richtextctrl.cpp:325 ../src/osx/textctrl_osx.cpp:582 #: ../src/common/stockitem.cpp:151 ../src/msw/textctrl.cpp:2283 msgid "Cu&t" msgstr "Ausschneiden" #: ../src/generic/filectrlg.cpp:956 msgid "Current directory:" msgstr "Aktuelles Verzeichnis:" #: ../src/gtk/print.cpp:759 msgid "Custom size" msgstr "Angepasste Größe" #: ../src/common/headerctrlcmn.cpp:60 msgid "Customize Columns" msgstr "Zeilen anpassen" #: ../src/common/stockitem.cpp:151 ../src/stc/stc_i18n.cpp:17 msgid "Cut" msgstr "Ausschneiden" #: ../src/common/stockitem.cpp:259 msgid "Cut selection" msgstr "Auswahl ausschneiden" #: ../src/common/fmapbase.cpp:152 msgid "Cyrillic (ISO-8859-5)" msgstr "Kyrillisch (ISO-8859-5)" #: ../src/common/paper.cpp:100 msgid "D sheet, 22 x 34 in" msgstr "D Blatt, 22 x 34 Zoll" #: ../src/msw/dde.cpp:708 msgid "DDE poke request failed" msgstr "DDE 'poke' Anfrage gescheitert" #: ../src/common/accelcmn.cpp:79 msgid "DECIMAL" msgstr "DEZIMAL" #: ../src/common/accelcmn.cpp:47 msgid "DEL" msgstr "ENTF" #: ../src/common/accelcmn.cpp:48 msgid "DELETE" msgstr "ENTFERNEN" #: ../src/common/imagbmp.cpp:1092 msgid "DIB Header: Encoding doesn't match bitdepth." msgstr "DIB-Header: Kodierung entspricht nicht der Bittiefe." #: ../src/common/imagbmp.cpp:1040 msgid "DIB Header: Image height > 32767 pixels for file." msgstr "DIB-Header: Bildhöhe > 32767 pixels." #: ../src/common/imagbmp.cpp:1032 msgid "DIB Header: Image width > 32767 pixels for file." msgstr "DIB-Header: Bildbreite > 32767 pixels." #: ../src/common/imagbmp.cpp:1060 msgid "DIB Header: Unknown bitdepth in file." msgstr "DIB-Header: Unbekannte Bittiefe." #: ../src/common/imagbmp.cpp:1074 msgid "DIB Header: Unknown encoding in file." msgstr "DIB-Header: Unbekannte Kodierung." #: ../src/common/accelcmn.cpp:80 msgid "DIVIDE" msgstr "TEILE" #: ../src/common/paper.cpp:122 msgid "DL Envelope, 110 x 220 mm" msgstr "DL Umschlag, 110 x 220 mm" #: ../src/common/accelcmn.cpp:59 msgid "DOWN" msgstr "RUNTER" #: ../src/richtext/richtextborderspage.cpp:545 msgid "Dashed" msgstr "Gestrichelt" #: ../src/osx/carbon/dataview.cpp:1921 msgid "Data object has invalid data format" msgstr "Dateiobjekt hat ein ungültiges Dateiformat" #: ../src/osx/carbon/dataview.cpp:2491 msgid "Date renderer cannot render value; value type: " msgstr "Datums Renderer kann den Wert nicht darstellen; Wert Typ:" #: ../src/generic/dbgrptg.cpp:300 #, c-format msgid "Debug report \"%s\"" msgstr "Fehlerbericht \"%s\"" #: ../src/common/debugrpt.cpp:210 msgid "Debug report couldn't be created." msgstr "Fehlerbericht konnte nicht erstellt werden." #: ../src/common/debugrpt.cpp:558 msgid "Debug report generation has failed." msgstr "Das Erstellen des Fehlerberichts ist fehlgeschlagen." #: ../src/generic/fontdlgg.cpp:323 msgid "Decorative" msgstr "Dekorativ" #: ../src/common/fmapbase.cpp:796 msgid "Default encoding" msgstr "Standardkodierung" #: ../src/dfb/fontmgr.cpp:180 msgid "Default font" msgstr "Standardschriftart" #: ../src/generic/prntdlgg.cpp:510 msgid "Default printer" msgstr "Standarddrucker" #: ../src/richtext/richtextbuffer.cpp:7841 ../src/common/stockitem.cpp:152 #: ../src/stc/stc_i18n.cpp:20 msgid "Delete" msgstr "Löschen" #: ../src/richtext/richtexttabspage.cpp:148 msgid "Delete A&ll" msgstr "A&lles löschen" #: ../src/richtext/richtextbuffer.cpp:10637 #, fuzzy msgid "Delete Column" msgstr "Spalte löschen" #: ../src/richtext/richtextbuffer.cpp:10587 #, fuzzy msgid "Delete Row" msgstr "Zeile löschen" #: ../src/richtext/richtextstyledlg.cpp:779 msgid "Delete Style" msgstr "Stil löschen" #: ../src/richtext/richtextctrl.cpp:1231 ../src/richtext/richtextctrl.cpp:1452 msgid "Delete Text" msgstr "Text löschen" #: ../src/generic/editlbox.cpp:274 msgid "Delete item" msgstr "Element löschen" #: ../src/common/stockitem.cpp:260 msgid "Delete selection" msgstr "Auswahl löschen" #: ../src/richtext/richtextstyledlg.cpp:779 #, c-format msgid "Delete style %s?" msgstr "Stil %s löschen?" #: ../src/unix/snglinst.cpp:295 #, c-format msgid "Deleted stale lock file '%s'." msgstr "Ungenutzte Sperr-Datei '%s' wurde gelöscht." #: ../src/common/module.cpp:124 #, c-format msgid "Dependency \"%s\" of module \"%s\" doesn't exist." msgstr "Abhängigkeit \"%s\" des Moduls \"%s\" existiert nicht." #: ../src/common/stockitem.cpp:196 msgid "Descending" msgstr "Absteigend" #: ../src/generic/dirctrlg.cpp:626 msgid "Desktop" msgstr "Arbeitsoberfläche" #: ../src/generic/aboutdlgg.cpp:70 msgid "Developed by " msgstr "Entwickelt von " #: ../src/generic/aboutdlgg.cpp:176 msgid "Developers" msgstr "Entwickler" #: ../src/msw/dialup.cpp:393 msgid "" "Dial up functions are unavailable because the remote access service (RAS) is " "not installed on this machine. Please install it." msgstr "" "DFÜ-Verbindungs-Funktionen stehen nicht zur Verfügung, da der RAS-Dienst " "(Remote Access Service) auf dieser Maschine nicht installiert ist. Bitte " "installieren." #: ../src/generic/tipdlg.cpp:230 msgid "Did you know..." msgstr "Wussten Sie schon..." #: ../src/dfb/wrapdfb.cpp:63 #, c-format msgid "DirectFB error %d occurred." msgstr "DirectFB-Fehler %d aufgetreten." #: ../src/motif/filedlg.cpp:219 msgid "Directories" msgstr "Verzeichnisse" #: ../src/common/filefn.cpp:1251 #, c-format msgid "Directory '%s' couldn't be created" msgstr "Verzeichnis '%s' konnte nicht angelegt werden." #: ../src/common/filefn.cpp:1271 #, c-format msgid "Directory '%s' couldn't be deleted" msgstr "Verzeichnis '%s' konnte nicht gelöscht werden." #: ../src/generic/dirdlgg.cpp:233 msgid "Directory does not exist" msgstr "Verzeichnis existiert nicht" #: ../src/generic/filectrlg.cpp:1412 msgid "Directory doesn't exist." msgstr "Verzeichnis existiert nicht" #: ../src/common/docview.cpp:455 msgid "Discard changes and reload the last saved version?" msgstr "Änderungen verwerfen und letzte gesicherte Version laden?" #: ../src/html/helpwnd.cpp:512 msgid "" "Display all index items that contain given substring. Search is case " "insensitive." msgstr "" "Zeige alle Indexelemente an, die den gegebenen Suchbegriff enthalten. Groß-/" "Kleinschreibung wird nicht beachtet." #: ../src/html/helpwnd.cpp:692 msgid "Display options dialog" msgstr "Einstellungen-Dialog anzeigen" #: ../src/html/helpwnd.cpp:326 msgid "Displays help as you browse the books on the left." msgstr "" "Anzeigen bieten Unterstützung beim Navigieren der Bücher auf der linken " "Seite." #: ../src/msw/mimetype.cpp:732 msgid "" "Do you want to overwrite the command used to %s files with extension \"%s" "\" ?\n" "Current value is \n" "%s, \n" "New value is \n" "%s %1" msgstr "" "Wollen Sie den Befehl zum %s von Dateien mit der Erweiterung \"%s\" " "ändern ?\n" "Aktueller Wert ist;\n" "%s,\n" "Neuer Wert ist\n" "%s %1" #: ../src/common/docview.cpp:531 #, c-format msgid "Do you want to save changes to %s?" msgstr "Möchten Sie die Änderungen nach %s speichern?" #: ../src/common/prntbase.cpp:525 msgid "Document:" msgstr "Dokument:" #: ../src/generic/aboutdlgg.cpp:73 msgid "Documentation by " msgstr "Dokumentation von " #: ../src/generic/aboutdlgg.cpp:180 msgid "Documentation writers" msgstr "Autoren der Dokumentation" #: ../src/common/sizer.cpp:2680 msgid "Don't Save" msgstr "Nicht speichern" #: ../src/msw/frame.cpp:122 ../src/html/htmlwin.cpp:611 msgid "Done" msgstr "Fertig" #: ../src/generic/progdlgg.cpp:481 ../src/msw/progdlg.cpp:407 msgid "Done." msgstr "Fertig." #: ../src/richtext/richtextborderspage.cpp:544 msgid "Dotted" msgstr "Gepunktet" #: ../src/richtext/richtextborderspage.cpp:546 msgid "Double" msgstr "Verdoppeln" #: ../src/common/paper.cpp:177 msgid "Double Japanese Postcard Rotated 148 x 200 mm" msgstr "Doppelte Japanische Postkarte Rotiert 148 x 200 mm" #: ../src/common/xtixml.cpp:273 #, c-format msgid "Doubly used id : %d" msgstr "ID doppelt verwendet: %d" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:153 msgid "Down" msgstr "Herunter" #: ../src/richtext/richtextctrl.cpp:814 msgid "Drag" msgstr "Freigeben" #: ../src/common/paper.cpp:101 msgid "E sheet, 34 x 44 in" msgstr "E Blatt, 34 x 44 Zoll" #: ../src/common/accelcmn.cpp:61 msgid "END" msgstr "ENDE" #: ../src/common/accelcmn.cpp:52 msgid "ENTER" msgstr "EINGABE" #: ../src/unix/fswatcher_inotify.cpp:535 msgid "EOF while reading from inotify descriptor" msgstr "EOF beim Lesen vom inotify Bezeichner" #: ../src/common/accelcmn.cpp:64 msgid "ESC" msgstr "ESC" #: ../src/common/accelcmn.cpp:65 msgid "ESCAPE" msgstr "ESCAPE" #: ../src/common/accelcmn.cpp:73 msgid "EXECUTE" msgstr "AUSFÜHREN" #: ../src/common/stockitem.cpp:154 msgid "Edit" msgstr "Bearbeiten" #: ../src/generic/editlbox.cpp:272 msgid "Edit item" msgstr "Element bearbeiten" #: ../include/wx/generic/progdlgg.h:84 msgid "Elapsed time:" msgstr "Benötigte Zeit:" #: ../src/richtext/richtextsizepage.cpp:353 #: ../src/richtext/richtextsizepage.cpp:355 #: ../src/richtext/richtextsizepage.cpp:465 #: ../src/richtext/richtextsizepage.cpp:467 msgid "Enable the height value." msgstr "Höhenwert berücksichtigen." #: ../src/richtext/richtextsizepage.cpp:438 #: ../src/richtext/richtextsizepage.cpp:440 msgid "Enable the maximum width value." msgstr "Erlaube den maximalen Breitenwert." #: ../src/richtext/richtextsizepage.cpp:411 #: ../src/richtext/richtextsizepage.cpp:413 msgid "Enable the minimum height value." msgstr "Minimalen Höhenwert einschalten." #: ../src/richtext/richtextsizepage.cpp:384 #: ../src/richtext/richtextsizepage.cpp:386 msgid "Enable the minimum width value." msgstr "Erlaube den minimalen Breitenwert." #: ../src/richtext/richtextsizepage.cpp:319 #: ../src/richtext/richtextsizepage.cpp:321 msgid "Enable the width value." msgstr "Breitenwert einschalten." #: ../src/richtext/richtextsizepage.cpp:280 #: ../src/richtext/richtextsizepage.cpp:282 msgid "Enable vertical alignment." msgstr "Vertikalabgleich einschalten." #: ../src/richtext/richtextbackgroundpage.cpp:133 #: ../src/richtext/richtextbackgroundpage.cpp:135 msgid "Enables a background colour." msgstr "Ermöglicht eine Hintergrundfarbe." #: ../src/richtext/richtextstyledlg.cpp:931 msgid "Enter a box style name" msgstr "Einen Box Stilnamen eingeben" #: ../src/richtext/richtextstyledlg.cpp:603 msgid "Enter a character style name" msgstr "Eingabe eines Zeichenstils" #: ../src/richtext/richtextstyledlg.cpp:817 msgid "Enter a list style name" msgstr "Eingabe eines Listenstils" #: ../src/richtext/richtextstyledlg.cpp:890 msgid "Enter a new style name" msgstr "Einen neuen Stilnamen eingeben" #: ../src/richtext/richtextstyledlg.cpp:651 msgid "Enter a paragraph style name" msgstr "Eingabe eines Absatzstils" #: ../src/generic/dbgrptg.cpp:174 #, c-format msgid "Enter command to open file \"%s\":" msgstr "Befehl zum Öffnen von Datei \"%s\" eingeben:" #: ../src/generic/helpext.cpp:463 msgid "Entries found" msgstr "Einträge gefunden" #: ../src/common/paper.cpp:143 msgid "Envelope Invite 220 x 220 mm" msgstr "Umschlag Einladung 220 x 220 mm" #: ../src/common/config.cpp:473 #, c-format msgid "" "Environment variables expansion failed: missing '%c' at position %u in '%s'." msgstr "" "Auswerten der Umgebungsvariablen schlug fehl. Es fehlt '%c' an Position %u " "in '%s'." #: ../src/generic/dirctrlg.cpp:670 ../src/generic/dirctrlg.cpp:688 #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:791 #: ../src/generic/filectrlg.cpp:805 ../src/generic/filectrlg.cpp:821 #: ../src/generic/filectrlg.cpp:1381 ../src/generic/filectrlg.cpp:1412 #: ../src/gtk/filedlg.cpp:73 ../src/gtk1/fontdlg.cpp:74 msgid "Error" msgstr "Fehler" #: ../src/unix/epolldispatcher.cpp:103 msgid "Error closing epoll descriptor" msgstr "Fehler beim Schließen des epol Bezeichners" #: ../src/unix/fswatcher_kqueue.cpp:114 msgid "Error closing kqueue instance" msgstr "Fehler schließt kqueue Vorgang" #: ../src/generic/dirdlgg.cpp:251 msgid "Error creating directory" msgstr "Fehler beim Anlegen des Verzeichnisses" #: ../src/common/imagbmp.cpp:1103 msgid "Error in reading image DIB." msgstr "Fehler beim Lesen des DIB-Bildes." #: ../src/propgrid/propgrid.cpp:6563 #, c-format msgid "Error in resource: %s" msgstr "Fehler in der Ressource: %s" #: ../src/common/fileconf.cpp:453 msgid "Error reading config options." msgstr "Fehler beim Parsen der Optionen." #: ../src/common/fileconf.cpp:1064 msgid "Error saving user configuration data." msgstr "Fehler beim Speichern der Benutzer-Optionen." #: ../src/gtk/print.cpp:671 msgid "Error while printing: " msgstr "Fehler während des Druckens:" #: ../src/common/log.cpp:223 msgid "Error: " msgstr "Fehler: " #: ../src/common/fmapbase.cpp:150 msgid "Esperanto (ISO-8859-3)" msgstr "Esperanto (ISO-8859-3)" #: ../include/wx/generic/progdlgg.h:85 msgid "Estimated time:" msgstr "Geschätzte Zeit:" #: ../src/unix/fswatcher_inotify.cpp:639 msgid "Event queue overflowed" msgstr "Überlauf der Ereigniswarteschlange" #: ../src/generic/dbgrptg.cpp:234 msgid "Executable files (*.exe)|*.exe|" msgstr "Ausführbare Dateien (*.exe)|*.exe|" #: ../src/common/stockitem.cpp:155 msgid "Execute" msgstr "Ausführen" #: ../src/msw/utilsexc.cpp:888 #, c-format msgid "Execution of command '%s' failed" msgstr "Befehlsausführung '%s' schlug fehl" #: ../src/os2/utilsexc.cpp:163 #, c-format msgid "Execution of command '%s' failed with error: %ul" msgstr "Befehlsausführung '%s' schlug fehl mit Fehler: %ul" #: ../src/common/paper.cpp:106 msgid "Executive, 7 1/4 x 10 1/2 in" msgstr "Executive, 7 1/4 x 10 1/2 Zoll" #: ../src/msw/registry.cpp:1230 #, c-format msgid "" "Exporting registry key: file \"%s\" already exists and won't be overwritten." msgstr "" "Exportiere Registrierungsschlüssel: Datei \"%s\" besteht bereits und wird " "nicht überschrieben." #: ../src/common/fmapbase.cpp:195 msgid "Extended Unix Codepage for Japanese (EUC-JP)" msgstr "Erweiterter Unix-Zeichensatz für Japanisch (EUC-JP)" #: ../src/html/chm.cpp:725 #, c-format msgid "Extraction of '%s' into '%s' failed." msgstr "Extrahieren von '%s' in '%s' schlug fehl." #: ../src/common/accelcmn.cpp:238 ../src/common/accelcmn.cpp:333 msgid "F" msgstr "F" #: ../src/propgrid/advprops.cpp:640 msgid "Face Name" msgstr "Schriftartname" #: ../src/unix/snglinst.cpp:269 msgid "Failed to access lock file." msgstr "Fehler beim Zugriff auf Sperr-Datei." #: ../src/unix/epolldispatcher.cpp:116 #, c-format msgid "Failed to add descriptor %d to epoll descriptor %d" msgstr "Das Hinzufügen des Bezeichners %d zum epoll Bezeichner %d schlug fehl" #: ../src/msw/dib.cpp:548 #, c-format msgid "Failed to allocate %luKb of memory for bitmap data." msgstr "Anforderung von %lu Kb Speicher für Bitmap gescheitert." #: ../src/common/glcmn.cpp:87 msgid "Failed to allocate colour for OpenGL" msgstr "Anforderung von Farbe für OpenGL gescheitert" #: ../src/unix/displayx11.cpp:288 msgid "Failed to change video mode" msgstr "Änderung des Video-Modus gescheitert" #: ../src/common/image.cpp:3139 #, c-format msgid "Failed to check format of image file \"%s\"." msgstr "Überprüfung des Formats der Bilddatei \"%s\" gescheitert." #: ../src/common/debugrpt.cpp:244 #, c-format msgid "Failed to clean up debug report directory \"%s\"" msgstr "Konnte Fehlerberichtsverzeichnis \"%s\" nicht aufräumen." #: ../src/common/filename.cpp:211 msgid "Failed to close file handle" msgstr "Konnte Datei-Handle nicht schließen." #: ../src/unix/snglinst.cpp:334 #, c-format msgid "Failed to close lock file '%s'" msgstr "Konnte Sperr-Datei '%s' nicht schließen" #: ../src/msw/clipbrd.cpp:115 msgid "Failed to close the clipboard." msgstr "Konnte Zwischenablage nicht schließen." #: ../src/x11/utils.cpp:204 #, c-format msgid "Failed to close the display \"%s\"" msgstr "Konnte das Display \"%s\" nicht schließen" #: ../src/msw/dialup.cpp:818 msgid "Failed to connect: missing username/password." msgstr "Verbindung fehlgeschlagen: Es fehlt der Benutzername bzw. das Passwort" #: ../src/msw/dialup.cpp:764 msgid "Failed to connect: no ISP to dial." msgstr "Verbindungsversuch gescheitert: kein anwählbares ISP." #: ../src/common/textfile.cpp:200 #, c-format msgid "Failed to convert file \"%s\" to Unicode." msgstr "Konnte die Datei \"%s\" nicht nach Unicode konvertieren." #: ../src/generic/logg.cpp:976 msgid "Failed to copy dialog contents to the clipboard." msgstr "Kopieren des Dialoginhalts in die Zwischenablage gescheitert." #: ../src/msw/registry.cpp:691 #, c-format msgid "Failed to copy registry value '%s'" msgstr "Kopieren des Registry-Werts '%s' gescheitert" #: ../src/msw/registry.cpp:700 #, c-format msgid "Failed to copy the contents of registry key '%s' to '%s'." msgstr "" "Kopieren des Inhalts des Registrierungsschlüssels '%s' nach '%s' gescheitert" #: ../src/common/filefn.cpp:1058 #, c-format msgid "Failed to copy the file '%s' to '%s'" msgstr "Konnte die Datei '%s' nicht nach '%s' kopieren" #: ../src/msw/registry.cpp:678 #, c-format msgid "Failed to copy the registry subkey '%s' to '%s'." msgstr "Kopieren des Registrierungsschlüssels von '%s' in '%s' gescheitert" #: ../src/msw/dde.cpp:1073 msgid "Failed to create DDE string" msgstr "Erstellung der DDE-Zeichenkette gescheitert" #: ../src/msw/mdi.cpp:590 msgid "Failed to create MDI parent frame." msgstr "Erstellung des MDI-Hauptrahmens gescheitert." #: ../src/common/filename.cpp:1080 msgid "Failed to create a temporary file name" msgstr "Konnte keinen temporären Dateinamen erstellen." #: ../src/msw/utilsexc.cpp:235 msgid "Failed to create an anonymous pipe" msgstr "Konnte keine anonyme Unix-Pipe erstellen" #: ../src/msw/ole/automtn.cpp:522 #, c-format msgid "Failed to create an instance of \"%s\"" msgstr "Erzeugen eines Exemplars von \"%s\" gescheitert." #: ../src/msw/dde.cpp:442 #, c-format msgid "Failed to create connection to server '%s' on topic '%s'" msgstr "Aufbau der Verbindung zum Server '%s' 'on topic' '%s' gescheitert" #: ../src/msw/cursor.cpp:212 msgid "Failed to create cursor." msgstr "Cursor konnte nicht erzeugt werden" #: ../src/common/debugrpt.cpp:209 #, c-format msgid "Failed to create directory \"%s\"" msgstr "Konnte das Verzeichnis \"%s\" nicht erzeugen." #: ../src/generic/dirdlgg.cpp:249 #, c-format msgid "" "Failed to create directory '%s'\n" "(Do you have the required permissions?)" msgstr "" "Konnte Verzeichnis '%s' nicht erstellen\n" "(Haben Sie die nötigen Zugriffsrechte?)" #: ../src/unix/epolldispatcher.cpp:84 msgid "Failed to create epoll descriptor" msgstr "Epoll Beschreibungselement konnte nicht erzeugt werden" #: ../src/msw/mimetype.cpp:198 #, c-format msgid "Failed to create registry entry for '%s' files." msgstr "Konnte keinen Registrierungseintrag für '%s'-Dateien erstellen." #: ../src/msw/fdrepdlg.cpp:442 #, c-format msgid "Failed to create the standard find/replace dialog (error code %d)" msgstr "Konnte keinen Standard-Finden/Ersetzen-Dialog erstellen (Fehler %d)" #: ../src/unix/wakeuppipe.cpp:52 msgid "Failed to create wake up pipe used by event loop." msgstr "Erzeugung der Weckleitung für die Ereignisschleife gescheitert." #: ../src/html/winpars.cpp:739 #, c-format msgid "Failed to display HTML document in %s encoding" msgstr "Konnte HTML-Dokument nicht in der Kodierung %s anzeigen" #: ../src/msw/clipbrd.cpp:127 msgid "Failed to empty the clipboard." msgstr "Konnte Zwischenablage nicht leeren." #: ../src/unix/displayx11.cpp:265 msgid "Failed to enumerate video modes" msgstr "Auflisten der Video-Modi gescheitert" #: ../src/msw/dde.cpp:727 msgid "Failed to establish an advise loop with DDE server" msgstr "Aufbau einer 'advise Schleife' mit dem DDE-Server gescheitert" #: ../src/msw/dialup.cpp:650 ../src/msw/dialup.cpp:884 #, c-format msgid "Failed to establish dialup connection: %s" msgstr "Aufbau der DFÜ-Verbindung gescheitert: %s" #: ../src/unix/utilsunx.cpp:617 #, c-format msgid "Failed to execute '%s'\n" msgstr "Kann '%s' nicht ausführen\n" #: ../src/common/debugrpt.cpp:725 msgid "Failed to execute curl, please install it in PATH." msgstr "Konnte curl nicht starten, bitte im PATH installieren." #: ../src/msw/ole/automtn.cpp:505 #, c-format msgid "Failed to find CLSID of \"%s\"" msgstr "Konnte CLSID von '%s' nicht finden" #: ../src/common/regex.cpp:434 ../src/common/regex.cpp:482 #, c-format msgid "Failed to find match for regular expression: %s" msgstr "Konnte keine Übereinstimmung mit regulärem Ausdruck %s finden" #: ../src/msw/dialup.cpp:716 #, c-format msgid "Failed to get ISP names: %s" msgstr "Konnte ISP-Namen '%s' nicht ermitteln" #: ../src/msw/ole/automtn.cpp:574 #, c-format msgid "Failed to get OLE automation interface for \"%s\"" msgstr "Konnte die OLE Automatisierungsschnittstelle für \"%s\" nicht bekommen" #: ../src/msw/clipbrd.cpp:747 msgid "Failed to get data from the clipboard" msgstr "Konnte Daten nicht aus der Zwischenablage kopieren" #: ../src/common/time.cpp:249 msgid "Failed to get the local system time" msgstr "Versuch örtliche Systemzeit zu bekommen, fehlgeschlagen." #: ../src/common/filefn.cpp:1453 msgid "Failed to get the working directory" msgstr "Konnte Arbeitsverzeichnis nicht ermitteln" #: ../src/univ/theme.cpp:113 msgid "Failed to initialize GUI: no built-in themes found." msgstr "Konnte GUI nicht initialisieren: kein Thema gefunden." #: ../src/msw/helpchm.cpp:63 msgid "Failed to initialize MS HTML Help." msgstr "Konnte MS-HTML-Hilfe nicht initialisieren." #: ../src/msw/glcanvas.cpp:892 msgid "Failed to initialize OpenGL" msgstr "Konnte OpenGL nicht initialisieren" #: ../src/msw/dialup.cpp:879 #, c-format msgid "Failed to initiate dialup connection: %s" msgstr "Versuch gescheitert, die Einwählverbindung einzuleiten: %s" #: ../src/gtk/textctrl.cpp:1117 msgid "Failed to insert text in the control." msgstr "Einfügen von Text in das Steuerelement fehlgeschlagen." #: ../src/unix/snglinst.cpp:241 #, c-format msgid "Failed to inspect the lock file '%s'" msgstr "Konnte die Sperr-Datei '%s' nicht lesen" #: ../src/unix/appunix.cpp:182 msgid "Failed to install signal handler" msgstr "Konnte Signalbearbeitung nicht installieren" #: ../src/unix/threadpsx.cpp:1162 msgid "" "Failed to join a thread, potential memory leak detected - please restart the " "program" msgstr "" "Thread-Verbindung gescheitert. Dies ist ein mögliches Speicherleck - Bitte " "Programm neu starten" #: ../src/msw/utils.cpp:745 #, c-format msgid "Failed to kill process %d" msgstr "Konnte Prozess %d nicht abbrechen" #: ../src/common/image.cpp:2365 #, c-format msgid "Failed to load bitmap \"%s\" from resources." msgstr "Konnte das Bitmap \"%s\" aus der Ressource nicht laden." #: ../src/common/image.cpp:2374 #, c-format msgid "Failed to load icon \"%s\" from resources." msgstr "Konnte das Symbol \"%s\" aus der Ressource nicht laden." #: ../src/common/iconbndl.cpp:182 #, c-format msgid "Failed to load image %%d from file '%s'." msgstr "Konnte das Bild %%d aus der Datei '%s' nicht laden." #: ../src/common/iconbndl.cpp:190 #, c-format msgid "Failed to load image %d from stream." msgstr "Konnte das Bild %d aus dem Strom nicht laden." #: ../src/common/image.cpp:2450 ../src/common/image.cpp:2469 #, c-format msgid "Failed to load image from file \"%s\"." msgstr "Konnte das Bild aus der Datei \"%s\" nicht laden." #: ../src/msw/enhmeta.cpp:97 #, c-format msgid "Failed to load metafile from file \"%s\"." msgstr "Konnte Metadatei aus Datei \"%s\" nicht laden." #: ../src/msw/volume.cpp:327 msgid "Failed to load mpr.dll." msgstr "Konnte mpr.dll nicht laden." #: ../src/msw/utils.cpp:1120 #, c-format msgid "Failed to load resource \"%s\"." msgstr "Konnte die Ressource \"%s\" nicht laden." #: ../src/common/dynlib.cpp:100 #, c-format msgid "Failed to load shared library '%s'" msgstr "Laden der dynamischen Bibliothek '%s' gescheitert" #: ../src/msw/utils.cpp:1127 #, c-format msgid "Failed to lock resource \"%s\"." msgstr "Konnte die Ressource \"%s\" nicht sperren." #: ../src/unix/snglinst.cpp:198 #, c-format msgid "Failed to lock the lock file '%s'" msgstr "Konnte die Sperr-Datei '%s' nicht sperren" #: ../src/unix/epolldispatcher.cpp:136 #, c-format msgid "Failed to modify descriptor %d in epoll descriptor %d" msgstr "Wechsel von Beschreibung %d in Epoll beschreibung %d fehlgeschlagen" #: ../src/common/filename.cpp:2681 #, c-format msgid "Failed to modify file times for '%s'" msgstr "Konnte Zugriffszeit von Datei '%s' nicht ändern" #: ../src/common/selectdispatcher.cpp:252 msgid "Failed to monitor I/O channels" msgstr "Die Überwachung der I/O Kanäle ist fehlgeschlagen" #: ../src/common/filename.cpp:194 #, c-format msgid "Failed to open '%s' for reading" msgstr "Konnte '%s' nicht zum Lesen öffnen" #: ../src/common/filename.cpp:199 #, c-format msgid "Failed to open '%s' for writing" msgstr "Konnte '%s' nicht zum Schreiben öffnen" #: ../src/html/chm.cpp:141 #, c-format msgid "Failed to open CHM archive '%s'." msgstr "CHM-Archiv '%s' lässt sich nicht öffnen." #: ../src/common/utilscmn.cpp:1135 #, c-format msgid "Failed to open URL \"%s\" in default browser." msgstr "Konnte die URL \"%s\" nicht im voreingestellten Browser öffnen." #: ../include/wx/msw/private/fswatcher.h:92 #, c-format msgid "Failed to open directory \"%s\" for monitoring." msgstr "Konnte das Verzeichnis \"%s\" nicht zur Überwachung öffnen." #: ../src/x11/utils.cpp:223 #, c-format msgid "Failed to open display \"%s\"." msgstr "Öffnen des Displays \"%s\" fehlgeschlagen." #: ../src/common/filename.cpp:1115 msgid "Failed to open temporary file." msgstr "Konnte temporäre Datei nicht öffnen." #: ../src/msw/clipbrd.cpp:94 msgid "Failed to open the clipboard." msgstr "Konnte Zwischenablage nicht öffnen." #: ../src/common/translation.cpp:1170 #, c-format msgid "Failed to parse Plural-Forms: '%s'" msgstr "Analyse der Pluralformen fehlgeschlagen: '%s'" #: ../src/unix/mediactrl.cpp:1268 #, c-format msgid "Failed to prepare playing \"%s\"." msgstr "Fehler bei der Vorbereitung zum Abspielen von \"%s\"." #: ../src/msw/clipbrd.cpp:647 msgid "Failed to put data on the clipboard" msgstr "Versuch Daten in der Zwischenablage abzulegen, gescheitert" #: ../src/unix/snglinst.cpp:278 msgid "Failed to read PID from lock file." msgstr "Konnte keine PID von Sperr-Datei lesen." #: ../src/common/fileconf.cpp:464 msgid "Failed to read config options." msgstr "Lesen der Konfigurationsoptionen fehlgeschlagen." #: ../src/common/docview.cpp:678 #, c-format msgid "Failed to read document from the file \"%s\"." msgstr "Konnte Dokument aus der Datei \"%s\" nicht lesen." #: ../src/dfb/evtloop.cpp:98 msgid "Failed to read event from DirectFB pipe" msgstr "Konnte Ereignis von DirectFB Kanal nicht lesen" #: ../src/unix/wakeuppipe.cpp:120 msgid "Failed to read from wake-up pipe" msgstr "Konnte nicht aus dem Weckkanal lesen" #: ../src/unix/utilsunx.cpp:685 msgid "Failed to redirect child process input/output" msgstr "Umleitung der Ein-/Ausgabe des Unterprozesses gescheitert" #: ../src/msw/utilsexc.cpp:697 msgid "Failed to redirect the child process IO" msgstr "Umleitung der Ein-/Ausgabe des Unterprozesses gescheitert" #: ../src/msw/dde.cpp:293 #, c-format msgid "Failed to register DDE server '%s'" msgstr "Versuch DDE-Server '%s' zu registrieren, gescheitert" #: ../src/common/fontmap.cpp:245 #, c-format msgid "Failed to remember the encoding for the charset '%s'." msgstr "" "Versuch gescheitert, an die Kodierung für den Zeichensatz '%s' zu erinnern." #: ../src/common/debugrpt.cpp:227 #, c-format msgid "Failed to remove debug report file \"%s\"" msgstr "Konnte Fehlerberichtsdatei \"%s\" nicht entfernen." #: ../src/unix/snglinst.cpp:322 #, c-format msgid "Failed to remove lock file '%s'" msgstr "Konnte Sperr-Datei '%s' nicht löschen." #: ../src/unix/snglinst.cpp:288 #, c-format msgid "Failed to remove stale lock file '%s'." msgstr "Konnte unbenutzte Sperr-Datei '%s' nicht entfernen." #: ../src/msw/registry.cpp:528 #, c-format msgid "Failed to rename registry value '%s' to '%s'." msgstr "Umbenennen des Registrieungswertes '%s' in '%s' gescheitert" #: ../src/common/filefn.cpp:1168 #, c-format msgid "" "Failed to rename the file '%s' to '%s' because the destination file already " "exists." msgstr "" "Umbenennen der Datei '%s' nach '%s' fehlgeschlagen, da die Zieldatei bereits " "existiert." #: ../src/msw/registry.cpp:633 #, c-format msgid "Failed to rename the registry key '%s' to '%s'." msgstr "Umbenennen des Registrieungsschlüssels von '%s' in '%s' gescheitert." #: ../src/msw/clipbrd.cpp:497 msgid "Failed to retrieve data from the clipboard." msgstr "Konnte Daten von der Zwischenablage nicht bekommen." #: ../src/common/filename.cpp:2777 #, c-format msgid "Failed to retrieve file times for '%s'" msgstr "Konnte Zugriffszeit von Datei '%s' nicht ermitteln" #: ../src/msw/dialup.cpp:487 msgid "Failed to retrieve text of RAS error message" msgstr "Versuch den Inhalt der RAS-Fehlernachricht zu holen, gescheitert" #: ../src/msw/clipbrd.cpp:784 msgid "Failed to retrieve the supported clipboard formats" msgstr "" "Konnte die von der Zwischenablage unterstützten Formate nicht ermitteln" #: ../src/common/docview.cpp:649 #, c-format msgid "Failed to save document to the file \"%s\"." msgstr "Das Dokument konnte nicht in die Datei \"%s\" gesichert werden." #: ../src/msw/dib.cpp:326 #, c-format msgid "Failed to save the bitmap image to file \"%s\"." msgstr "Das Bitmap-Bild konnte nicht in der Datei \"%s\" geschrieben werden." #: ../src/msw/dde.cpp:768 msgid "Failed to send DDE advise notification" msgstr "Versuch gescheitert, eine DDE-Benachrichtigung zu schicken" #: ../src/common/ftp.cpp:404 #, c-format msgid "Failed to set FTP transfer mode to %s." msgstr "Konnte den FTP-Transfermodus nicht auf '%s' setzen." #: ../src/msw/clipbrd.cpp:373 msgid "Failed to set clipboard data." msgstr "Konnte Dateien nicht in die Zwischenablage kopieren." #: ../src/unix/snglinst.cpp:181 #, c-format msgid "Failed to set permissions on lock file '%s'" msgstr "Konnte die Zugriffsrechte für Datei '%s' nicht setzen" #: ../src/unix/utilsunx.cpp:674 msgid "Failed to set process priority" msgstr "Versuch gescheitert, die Prozess-Priorität zu setzen" #: ../src/common/file.cpp:576 msgid "Failed to set temporary file permissions" msgstr "Konnte die Zugriffsrechte der temporären Datei nicht setzen" #: ../src/gtk/textctrl.cpp:1058 msgid "Failed to set text in the text control." msgstr "Setzen von Text in das Text-Steuerelement fehlgeschlagen." #: ../src/unix/threadpsx.cpp:1293 #, c-format msgid "Failed to set thread concurrency level to %lu" msgstr "" "Versuch gescheitert, die Thread-Nebenläufigkeit auf Stufe %lu zu setzen" #: ../src/unix/threadpsx.cpp:1377 ../src/unix/threadpsx.cpp:1387 #, c-format msgid "Failed to set thread priority %d." msgstr "Versuch gescheitert, die Thread-Priorität %d zu setzen." #: ../src/unix/utilsunx.cpp:791 msgid "Failed to set up non-blocking pipe, the program might hang." msgstr "" "Das Erzeugen einer nicht blockierenden Pipe ist fehlgeschlagen, das Programm " "könnte stehen bleiben." #: ../src/common/fs_mem.cpp:261 #, c-format msgid "Failed to store image '%s' to memory VFS!" msgstr "Versuch das Bild '%s' im VFS-Speicher zu laden, gescheitert!" #: ../src/dfb/evtloop.cpp:170 msgid "Failed to switch DirectFB pipe to non-blocking mode" msgstr "Wechsel von DirectFB Pipe in den Nicht blockierenden Modus schlug fehl" #: ../src/unix/wakeuppipe.cpp:59 msgid "Failed to switch wake up pipe to non-blocking mode" msgstr "" "Fehlgeschlagen die aufweck Pipe in den nicht blockierenden Modus umzuschalten" #: ../src/unix/threadpsx.cpp:1569 msgid "Failed to terminate a thread." msgstr "Versuch den Thread zu beenden, gescheitert." #: ../src/msw/dde.cpp:746 msgid "Failed to terminate the advise loop with DDE server" msgstr "Versuch gescheitert, die 'advise Schleife' mit DDE-Server zu beenden." #: ../src/msw/dialup.cpp:959 #, c-format msgid "Failed to terminate the dialup connection: %s" msgstr "Versuch gescheitert, die DFÜ-Verbindung zu beenden: %s" #: ../src/common/filename.cpp:2696 #, c-format msgid "Failed to touch the file '%s'" msgstr "Konnte die Datei '%s' nicht 'berühren'" #: ../src/unix/snglinst.cpp:328 #, c-format msgid "Failed to unlock lock file '%s'" msgstr "Konnte die Sperrung von Datei '%s' nicht aufheben" #: ../src/msw/dde.cpp:314 #, c-format msgid "Failed to unregister DDE server '%s'" msgstr "Die Registrierung des DDE-Servers '%s' konnte nicht aufgehoben werden" #: ../src/unix/epolldispatcher.cpp:155 #, c-format msgid "Failed to unregister descriptor %d from epoll descriptor %d" msgstr "Konnte Descriptor %d vom Epoll Descriptor nicht %d austragen" #: ../src/common/fileconf.cpp:1037 msgid "Failed to update user configuration file." msgstr "Kann Benutzer-Konfigurationsdatei nicht aktualisieren." #: ../src/common/debugrpt.cpp:738 #, c-format msgid "Failed to upload the debug report (error code %d)." msgstr "Konnte den Fehlerbericht nicht hochladen (Fehlercode %d)." #: ../src/unix/snglinst.cpp:168 #, c-format msgid "Failed to write to lock file '%s'" msgstr "Konnte Sperr-Datei '%s' nicht schreiben" #: ../src/propgrid/propgrid.cpp:172 msgid "False" msgstr "Falsch" #: ../src/propgrid/advprops.cpp:658 msgid "Family" msgstr "Familie" #: ../src/common/stockitem.cpp:157 ../src/msw/wince/filedlgwce.cpp:121 msgid "File" msgstr "Datei" #: ../src/common/docview.cpp:666 #, c-format msgid "File \"%s\" could not be opened for reading." msgstr "Die Datei \"%s\" konnte nicht zum Lesen geöffnet werden." #: ../src/common/docview.cpp:643 #, c-format msgid "File \"%s\" could not be opened for writing." msgstr "Die Datei \"%s\" konnte nicht zum Schreiben geöffnet werden." #: ../src/gtk/filedlg.cpp:56 #, c-format msgid "File '%s' already exists, do you really want to overwrite it?" msgstr "" "Datei '%s' existiert bereits, möchten Sie diese wirklich überschreiben?" #: ../src/os2/filedlg.cpp:310 #, c-format msgid "" "File '%s' already exists.\n" "Do you want to replace it?" msgstr "" "Datei '%s' existiert bereits.\n" "Möchten Sie diese wirklich überschreiben?" #: ../src/common/filefn.cpp:1207 #, c-format msgid "File '%s' couldn't be removed" msgstr "Die Datei '%s' konnte nicht gelöscht werden." #: ../src/common/filefn.cpp:1187 #, c-format msgid "File '%s' couldn't be renamed '%s'" msgstr "Die Datei '%s' konnte nicht nach '%s' umbenannt werden." #: ../src/richtext/richtextctrl.cpp:2688 ../src/common/textcmn.cpp:921 msgid "File couldn't be loaded." msgstr "Datei konnte nicht geladen werden." #: ../src/msw/filedlg.cpp:458 #, c-format msgid "File dialog failed with error code %0lx." msgstr "Datei Dialog schlug fehl mit dem Fehlercode %0lx." #: ../src/common/docview.cpp:1771 msgid "File error" msgstr "Dateifehler" #: ../src/generic/dirctrlg.cpp:688 ../src/generic/filectrlg.cpp:805 msgid "File name exists already." msgstr "Dateiname bereits vorhanden" #: ../src/motif/filedlg.cpp:220 msgid "Files" msgstr "Dateien" #: ../src/common/filefn.cpp:1761 #, c-format msgid "Files (%s)" msgstr "Dateien (%s)" #: ../src/motif/filedlg.cpp:218 msgid "Filter" msgstr "Filter" #: ../src/common/stockitem.cpp:158 ../src/html/helpwnd.cpp:500 msgid "Find" msgstr "Suchen" #: ../src/common/stockitem.cpp:159 msgid "First" msgstr "Erste(r)" #: ../src/common/prntbase.cpp:1518 msgid "First page" msgstr "Erste Seite" #: ../src/richtext/richtextsizepage.cpp:521 msgid "Fixed" msgstr "Festgesetzt" #: ../src/html/helpwnd.cpp:1219 msgid "Fixed font:" msgstr "Schrift fester Breite:" #: ../src/html/helpwnd.cpp:1282 msgid "Fixed size face.
    bold italic " msgstr "Schrift fester Breite.
    fett kursiv " #: ../src/richtext/richtextsizepage.cpp:229 msgid "Floating" msgstr "Schwebend" #: ../src/common/stockitem.cpp:160 msgid "Floppy" msgstr "Diskette" #: ../src/common/paper.cpp:112 msgid "Folio, 8 1/2 x 13 in" msgstr "Folio, 8 1/2 x 13 Zoll" #: ../src/richtext/richtextformatdlg.cpp:324 ../src/osx/carbon/fontdlg.cpp:473 #: ../src/common/stockitem.cpp:194 msgid "Font" msgstr "Schriftart" #: ../src/richtext/richtextfontpage.cpp:230 msgid "Font &weight:" msgstr "Schrift&dicke:" #: ../src/html/helpwnd.cpp:1220 msgid "Font size:" msgstr "Schriftgröße:" #: ../src/richtext/richtextfontpage.cpp:217 msgid "Font st&yle:" msgstr "Schrifst&il:" #: ../src/osx/carbon/fontdlg.cpp:515 msgid "Font:" msgstr "Schrift:" #: ../src/dfb/fontmgr.cpp:198 #, c-format msgid "Fonts index file %s disappeared while loading fonts." msgstr "" "Indexdatei der Schriftarten %s während des Ladens der Schriften verschwunden." #: ../src/unix/utilsunx.cpp:651 msgid "Fork failed" msgstr "'Fork' gescheitert" #: ../src/common/stockitem.cpp:161 msgid "Forward" msgstr "Vorwärts" #: ../src/common/xtixml.cpp:235 msgid "Forward hrefs are not supported" msgstr "Forward hrefs werden nicht unterstützt" #: ../src/html/helpwnd.cpp:888 #, c-format msgid "Found %i matches" msgstr "Suchbegriff %i mal gefunden" #: ../src/generic/prntdlgg.cpp:238 msgid "From:" msgstr "Von:" #: ../src/common/imaggif.cpp:160 msgid "GIF: Invalid gif index." msgstr "GIF: Ungültiger Index." #: ../src/common/imaggif.cpp:150 msgid "GIF: data stream seems to be truncated." msgstr "GIF: Datenstrom scheint unvollständig zu sein." #: ../src/common/imaggif.cpp:134 msgid "GIF: error in GIF image format." msgstr "GIF: Fehler im GIF-Bildformat." #: ../src/common/imaggif.cpp:137 msgid "GIF: not enough memory." msgstr "GIF: nicht genug Speicher." #: ../src/common/imaggif.cpp:140 msgid "GIF: unknown error!!!" msgstr "GIF: unbekannter Fehler!" #: ../src/gtk/window.cpp:4288 msgid "" "GTK+ installed on this machine is too old to support screen compositing, " "please install GTK+ 2.12 or later." msgstr "" "Das GTK+, das auf dieser Maschine installiert ist, ist zu alt um " "Bildschrimanordnung zu unterstützen, bitte GTK+ 2.12 oder neuer " "installieren. " #: ../src/univ/themes/gtk.cpp:525 msgid "GTK+ theme" msgstr "GTK+ Thema" #: ../src/common/preferencescmn.cpp:39 msgid "General" msgstr "Allgemein" #: ../src/common/prntbase.cpp:243 msgid "Generic PostScript" msgstr "Generisches PostScript" #: ../src/common/paper.cpp:136 msgid "German Legal Fanfold, 8 1/2 x 13 in" msgstr "German Legal Endlospapier, 21,59 x 33,02 cm" #: ../src/common/paper.cpp:135 msgid "German Std Fanfold, 8 1/2 x 12 in" msgstr "German Std Endlospapier, 8 1/2 x 12 Zoll" #: ../include/wx/xtiprop.h:188 msgid "GetProperty called w/o valid getter" msgstr "GetProperty aufgerufen ohne gültigen getter" #: ../include/wx/xtiprop.h:266 msgid "GetPropertyCollection called on a generic accessor" msgstr "GetPropertyCollection aufgerufen für einen allgemeinen accessor" #: ../include/wx/xtiprop.h:206 msgid "GetPropertyCollection called w/o valid collection getter" msgstr "GetPropertyCollection aufgerufen ohne gültigen Collection getter" #: ../src/html/helpwnd.cpp:673 msgid "Go back" msgstr "Vorherige HTML-Seite zeigen" #: ../src/html/helpwnd.cpp:674 msgid "Go forward" msgstr "Nächste HTML-Seite zeigen" #: ../src/html/helpwnd.cpp:676 msgid "Go one level up in document hierarchy" msgstr "In die nächste Dokumentebene gehen" #: ../src/generic/filedlgg.cpp:223 ../src/generic/dirdlgg.cpp:136 msgid "Go to home directory" msgstr "Gehe zum Benutzerverzeichnis" #: ../src/generic/filedlgg.cpp:219 msgid "Go to parent directory" msgstr "Gehe zum 'Parent'-Verzeichnis" #: ../src/generic/aboutdlgg.cpp:76 msgid "Graphics art by " msgstr "Grafik von " #: ../src/common/fmapbase.cpp:154 msgid "Greek (ISO-8859-7)" msgstr "Griechisch (ISO-8859-7)" #: ../src/richtext/richtextborderspage.cpp:547 msgid "Groove" msgstr "Groove" #: ../src/common/zstream.cpp:158 ../src/common/zstream.cpp:318 msgid "Gzip not supported by this version of zlib" msgstr "Gzip wird nicht von dieser zlib-Version unterstützt" #: ../src/common/accelcmn.cpp:75 msgid "HELP" msgstr "HILFE" #: ../src/common/accelcmn.cpp:60 msgid "HOME" msgstr "POS 1" #: ../src/html/helpwnd.cpp:1552 msgid "HTML Help Project (*.hhp)|*.hhp|" msgstr "HTML-Hilfe-Projekt (*.hhp)|*.hhp|" #: ../src/html/htmlwin.cpp:659 #, c-format msgid "HTML anchor %s does not exist." msgstr "HTML-Anker %s existiert nicht." #: ../src/html/helpwnd.cpp:1550 msgid "HTML files (*.html;*.htm)|*.html;*.htm|" msgstr "HTML-Dateien (*.html;*.htm)|*.html;*.htm|" #: ../src/common/stockitem.cpp:162 msgid "Harddisk" msgstr "Festplatte" #: ../src/common/fmapbase.cpp:155 msgid "Hebrew (ISO-8859-8)" msgstr "Hebräisch (ISO-8859-8)" #: ../include/wx/msgdlg.h:275 ../src/osx/button_osx.cpp:39 #: ../src/common/stockitem.cpp:163 ../src/html/helpdlg.cpp:66 #: ../src/html/helpfrm.cpp:116 msgid "Help" msgstr "Hilfe" #: ../src/html/helpwnd.cpp:1213 msgid "Help Browser Options" msgstr "Hilfe zu den Browser-Einstellungen" #: ../src/generic/helpext.cpp:458 ../src/generic/helpext.cpp:459 msgid "Help Index" msgstr "Hilfeindex" #: ../src/html/helpwnd.cpp:1534 msgid "Help Printing" msgstr "Hilfe drucken" #: ../src/html/helpwnd.cpp:814 msgid "Help Topics" msgstr "Hilfethemen" #: ../src/html/helpwnd.cpp:1551 msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|" msgstr "Hilfe-Bücher (*.htb)|*.htb|Hilfe-Bücher (*.zip)|*.zip|" #: ../src/generic/helpext.cpp:271 #, c-format msgid "Help directory \"%s\" not found." msgstr "Hilfeverzeichnis \"%s\" nicht gefunden." #: ../src/generic/helpext.cpp:279 #, c-format msgid "Help file \"%s\" not found." msgstr "Hilfedatei \"%s\" nicht gefunden." #: ../src/html/helpctrl.cpp:63 #, c-format msgid "Help: %s" msgstr "Hilfe: %s" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:649 #, c-format msgid "Hide %s" msgstr "Verberge %s" #: ../src/osx/menu_osx.cpp:604 ../src/osx/menu_osx.cpp:651 msgid "Hide Others" msgstr "Andere ausblenden" #: ../src/generic/infobar.cpp:85 msgid "Hide this notification message." msgstr "Diese Meldung ausblenden." #: ../src/generic/dirdlgg.cpp:98 ../src/common/stockitem.cpp:164 msgid "Home" msgstr "Start" #: ../src/generic/dirctrlg.cpp:624 msgid "Home directory" msgstr "Benutzerverzeichnis" #: ../src/richtext/richtextsizepage.cpp:253 #: ../src/richtext/richtextsizepage.cpp:255 msgid "How the object will float relative to the text." msgstr "Wie das Objekt relativ zum Text angeordnet wird." #: ../src/common/imagbmp.cpp:1118 msgid "ICO: Error in reading mask DIB." msgstr "ICO: Fehler beim Lesen der DIB-Maske." #: ../src/common/imagbmp.cpp:1233 ../src/common/imagbmp.cpp:1294 #: ../src/common/imagbmp.cpp:1305 ../src/common/imagbmp.cpp:1318 #: ../src/common/imagbmp.cpp:1363 ../src/common/imagbmp.cpp:1375 #: ../src/common/imagbmp.cpp:1386 msgid "ICO: Error writing the image file!" msgstr "ICO: Schreibfehler beim Speichern." #: ../src/common/imagbmp.cpp:1198 msgid "ICO: Image too tall for an icon." msgstr "ICO: Bild zu groß für ein Icon." #: ../src/common/imagbmp.cpp:1206 msgid "ICO: Image too wide for an icon." msgstr "ICO: Bild zu breit für ein Icon." #: ../src/common/imagbmp.cpp:1466 msgid "ICO: Invalid icon index." msgstr "ICO: Ungültiger Icon-Index." #: ../src/common/imagiff.cpp:759 msgid "IFF: data stream seems to be truncated." msgstr "IFF: Datenstrom scheint unvollständig zu sein." #: ../src/common/imagiff.cpp:743 msgid "IFF: error in IFF image format." msgstr "IFF: Fehler im IFF-Bildformat." #: ../src/common/imagiff.cpp:746 msgid "IFF: not enough memory." msgstr "IFF: nicht genug Speicher." #: ../src/common/imagiff.cpp:749 msgid "IFF: unknown error!!!" msgstr "IFF: unbekannter Fehler!" #: ../src/common/accelcmn.cpp:50 msgid "INS" msgstr "EINF" #: ../src/common/accelcmn.cpp:51 msgid "INSERT" msgstr "EINFÜGEN" #: ../src/common/fmapbase.cpp:197 msgid "ISO-2022-JP" msgstr "ISO-2022-JP" #: ../src/osx/carbon/dataview.cpp:2420 msgid "Icon & text renderer cannot render value; value type: " msgstr "Bild & Text Renderer kann den Wert nicht darstellen; Wert Typ" #: ../src/html/htmprint.cpp:282 msgid "" "If possible, try changing the layout parameters to make the printout more " "narrow." msgstr "" "Wenn möglich die Layout Parameter ändern um den Ausdruck schmaler zu machen." #: ../src/generic/dbgrptg.cpp:358 msgid "" "If you have any additional information pertaining to this bug\n" "report, please enter it here and it will be joined to it:" msgstr "" "Falls Sie weitere Informationen betreffend diesen Fehlerberichtes haben, " "tragen Sie sie bitte hier ein, um sie zum Bericht hinzuzufügen:" #: ../src/generic/dbgrptg.cpp:324 msgid "" "If you wish to suppress this debug report completely, please choose the " "\"Cancel\" button,\n" "but be warned that it may hinder improving the program, so if\n" "at all possible please do continue with the report generation.\n" msgstr "" "Falls Sie diesen Fehlerbericht vollständig unterdrücken möchten, drücken Sie " "bitte \"Abbrechen\".\n" "Bedenken Sie aber bitte, dass dies eventuell die Verbesserung des Programms " "behindern kann,\n" "nach Möglichkeit sollten Sie also den Fehlerbericht erstellen.\n" #: ../src/msw/registry.cpp:1395 #, c-format msgid "Ignoring value \"%s\" of the key \"%s\"." msgstr "Ignoriere Wert \"%s\" von Schlüssel \"%s\"." #: ../src/common/xtistrm.cpp:299 msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source" msgstr "Ungültige Objektklasse (nicht wxEvtHandler) als Ereignisquelle" #: ../src/common/xti.cpp:513 msgid "Illegal Parameter Count for ConstructObject Method" msgstr "Ungültige Anzahl Parameter für ConstructObject-Methode" #: ../src/common/xti.cpp:501 msgid "Illegal Parameter Count for Create Method" msgstr "Ungültige Anzahl Parameter für Create-Methode" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/filectrlg.cpp:791 msgid "Illegal directory name." msgstr "Ungültiger Verzeichnisname." #: ../src/generic/filectrlg.cpp:1380 msgid "Illegal file specification." msgstr "Ungültige Dateiangabe." #: ../src/common/image.cpp:2158 msgid "Image and mask have different sizes." msgstr "Bild und Bildmaske haben verschiedene Größen." #: ../src/common/image.cpp:2609 #, c-format msgid "Image file is not of type %d." msgstr "Bilddatei hat nicht den Typ %d." #: ../src/common/image.cpp:2739 #, c-format msgid "Image is not of type %s." msgstr "Bilddatei hat nicht den Typ %s." #: ../src/msw/textctrl.cpp:399 msgid "" "Impossible to create a rich edit control, using simple text control instead. " "Please reinstall riched32.dll" msgstr "" "Versuch eine 'rich edit control' zu erstellen gescheitert, verwende " "stattdessen ein einfaches Text-Control. Bitte 'riched32.dll' neu installieren" #: ../src/unix/utilsunx.cpp:307 msgid "Impossible to get child process input" msgstr "Es war nicht möglich, die Eingabe des Unterprozesses zu verarbeiten" #: ../src/common/filefn.cpp:1074 #, c-format msgid "Impossible to get permissions for file '%s'" msgstr "Konnte nicht die Zugriffsrechte der Datei '%s' ermitteln" #: ../src/common/filefn.cpp:1088 #, c-format msgid "Impossible to overwrite the file '%s'" msgstr "Versuch die Datei '%s' zu überschreiben, gescheitert" #: ../src/common/filefn.cpp:1142 #, c-format msgid "Impossible to set permissions for the file '%s'" msgstr "Konnte die Zugriffsrechte für Datei '%s' nicht setzen" #: ../src/common/gifdecod.cpp:818 #, c-format msgid "Incorrect GIF frame size (%u, %d) for the frame #%u" msgstr "Ungültige GIF Bildgröße (%u, %d) für das Bild #%u" #: ../src/msw/ole/automtn.cpp:624 msgid "Incorrect number of arguments." msgstr "Fehlerhafte Anzahl von Argumenten" #: ../src/common/stockitem.cpp:165 msgid "Indent" msgstr "Einrücken" #: ../src/richtext/richtextformatdlg.cpp:330 msgid "Indents && Spacing" msgstr "Einrückungen && Zeichenabstand" #: ../src/common/stockitem.cpp:166 ../src/html/helpwnd.cpp:525 msgid "Index" msgstr "Index" #: ../src/common/fmapbase.cpp:159 msgid "Indian (ISO-8859-12)" msgstr "Indisch (ISO-8859-12)" #: ../src/common/stockitem.cpp:167 msgid "Info" msgstr "Info" #: ../src/common/init.cpp:276 msgid "Initialization failed in post init, aborting." msgstr "Initialisierung in \"post init\" fehlgeschlagen, breche ab." #: ../src/richtext/richtextsymboldlg.cpp:472 msgid "Insert" msgstr "Einfügen" #: ../src/richtext/richtextbuffer.cpp:7687 msgid "Insert Field" msgstr "Feld einfügen" #: ../src/richtext/richtextbuffer.cpp:7598 #: ../src/richtext/richtextbuffer.cpp:8551 msgid "Insert Image" msgstr "Bild einfügen" #: ../src/richtext/richtextbuffer.cpp:7645 msgid "Insert Object" msgstr "Objekt einfügen" #: ../src/richtext/richtextctrl.cpp:1172 ../src/richtext/richtextctrl.cpp:1362 #: ../src/richtext/richtextbuffer.cpp:7440 #: ../src/richtext/richtextbuffer.cpp:7470 #: ../src/richtext/richtextbuffer.cpp:7514 msgid "Insert Text" msgstr "Text einfügen" #: ../src/richtext/richtextindentspage.cpp:295 #: ../src/richtext/richtextindentspage.cpp:297 msgid "Inserts a page break before the paragraph." msgstr "Fügt einen Seitenumbruch vor dem Absatz ein." #: ../src/richtext/richtextborderspage.cpp:549 msgid "Inset" msgstr "Einfügen" #: ../src/gtk/app.cpp:429 #, c-format msgid "Invalid GTK+ command line option, use \"%s --help\"" msgstr "Ungültige GTK+ Kommentarzeile, benutzen sie \"%s --help\"" #: ../src/common/imagtiff.cpp:314 msgid "Invalid TIFF image index." msgstr "Ungültiger Index des TIFF-Bilds." #: ../src/osx/carbon/dataview.cpp:1782 ../src/osx/carbon/dataview.cpp:1877 msgid "Invalid data view item" msgstr "Ungültiges Datenansichtselement" #: ../src/common/appcmn.cpp:266 #, c-format msgid "Invalid display mode specification '%s'." msgstr "Ungültige Angabe '%s' des Displays." #: ../src/x11/app.cpp:121 #, c-format msgid "Invalid geometry specification '%s'" msgstr "Ungültige Angabe '%s' der Fenstergröße" #: ../src/unix/fswatcher_inotify.cpp:298 #, c-format msgid "Invalid inotify event for \"%s\"" msgstr "Ungültiges inotify-Ereignis für \"%s\"" #: ../src/unix/snglinst.cpp:306 #, c-format msgid "Invalid lock file '%s'." msgstr "Ungültige Sperr-Datei '%s'." #: ../src/common/translation.cpp:1111 msgid "Invalid message catalog." msgstr "Ungültiger Nachrichtenkatalog." #: ../src/common/xtistrm.cpp:409 ../src/common/xtistrm.cpp:424 msgid "Invalid or Null Object ID passed to GetObjectClassInfo" msgstr "Ungültige oder Null Objekt-ID an GetObjectClassInfo übergeben" #: ../src/common/xtistrm.cpp:439 msgid "Invalid or Null Object ID passed to HasObjectClassInfo" msgstr "Ungültige oder Null Objekt-ID an HasObjectClassInfo übergeben" #: ../src/common/regex.cpp:313 #, c-format msgid "Invalid regular expression '%s': %s" msgstr "Ungültiger regulärer Ausdruck '%s': %s" #: ../src/common/config.cpp:226 #, c-format msgid "Invalid value %ld for a boolean key \"%s\" in config file." msgstr "" "Ungültiger Wert %ld für einen booleschen Schlüssel \"%s\" in der " "Konfigurationsdatei." #: ../src/generic/fontdlgg.cpp:329 ../src/richtext/richtextfontpage.cpp:333 #: ../src/osx/carbon/fontdlg.cpp:547 ../src/common/stockitem.cpp:168 msgid "Italic" msgstr "Kursiv" #: ../src/common/paper.cpp:131 msgid "Italy Envelope, 110 x 230 mm" msgstr "Italy Umschlag, 110 x 230 mm" #: ../src/common/imagjpeg.cpp:255 msgid "JPEG: Couldn't load - file is probably corrupted." msgstr "JPEG: Lesefehler - Datei ist vermutlich beschädigt." #: ../src/common/imagjpeg.cpp:434 msgid "JPEG: Couldn't save image." msgstr "JPEG: Konnte Bild nicht speichern." #: ../src/common/paper.cpp:164 msgid "Japanese Double Postcard 200 x 148 mm" msgstr "Japanische Doppelte Postkarte 200 x 148 mm" #: ../src/common/paper.cpp:168 msgid "Japanese Envelope Chou #3" msgstr "Japanischer Briefumschlag Chou #3" #: ../src/common/paper.cpp:181 msgid "Japanese Envelope Chou #3 Rotated" msgstr "Japanischer Briefumschlag Chou #3 Rotiert" #: ../src/common/paper.cpp:169 msgid "Japanese Envelope Chou #4" msgstr "Japanischer Briefumschlag Chou #4" #: ../src/common/paper.cpp:182 msgid "Japanese Envelope Chou #4 Rotated" msgstr "Japanischer Briefumschlag Chou #4 Rotiert" #: ../src/common/paper.cpp:166 msgid "Japanese Envelope Kaku #2" msgstr "Japanischer Briefumschlag Kaku #2" #: ../src/common/paper.cpp:179 msgid "Japanese Envelope Kaku #2 Rotated" msgstr "Japanischer Briefumschlag Kaku #2 Rotiert" #: ../src/common/paper.cpp:167 msgid "Japanese Envelope Kaku #3" msgstr "Japanischer Briefumschlag Kaku #3" #: ../src/common/paper.cpp:180 msgid "Japanese Envelope Kaku #3 Rotated" msgstr "Japanischer Briefumschlag Kaku #3 Rotiert" #: ../src/common/paper.cpp:186 msgid "Japanese Envelope You #4" msgstr "Japanischer Briefumschlag You #4" #: ../src/common/paper.cpp:187 msgid "Japanese Envelope You #4 Rotated" msgstr "Japanischer Briefumschlag You #4 Rotiert" #: ../src/common/paper.cpp:139 msgid "Japanese Postcard 100 x 148 mm" msgstr "Japanische Postkarte 100 x 148 mm" #: ../src/common/paper.cpp:176 msgid "Japanese Postcard Rotated 148 x 100 mm" msgstr "Japanische Postkarte Rotiert 100 x 148 mm" #: ../src/common/stockitem.cpp:169 msgid "Jump to" msgstr "Springen zu" #: ../src/common/stockitem.cpp:171 msgid "Justified" msgstr "Bündig" #: ../src/richtext/richtextindentspage.cpp:155 #: ../src/richtext/richtextindentspage.cpp:157 #: ../src/richtext/richtextliststylepage.cpp:344 #: ../src/richtext/richtextliststylepage.cpp:346 msgid "Justify text left and right." msgstr "Text rechts und links ausrichten" #: ../src/common/fmapbase.cpp:163 msgid "KOI8-R" msgstr "KOI8-R" #: ../src/common/fmapbase.cpp:164 msgid "KOI8-U" msgstr "KOI8-U" #: ../src/common/accelcmn.cpp:254 ../src/common/accelcmn.cpp:336 msgid "KP_" msgstr "Num_" #: ../src/common/accelcmn.cpp:103 msgid "KP_ADD" msgstr "Num_Plus" #: ../src/common/accelcmn.cpp:98 msgid "KP_BEGIN" msgstr "Num_Anfang" #: ../src/common/accelcmn.cpp:106 msgid "KP_DECIMAL" msgstr "Num_Dezimal" #: ../src/common/accelcmn.cpp:100 msgid "KP_DELETE" msgstr "Num_Entf" #: ../src/common/accelcmn.cpp:107 msgid "KP_DIVIDE" msgstr "Num_Division" #: ../src/common/accelcmn.cpp:92 msgid "KP_DOWN" msgstr "Num_Runter" #: ../src/common/accelcmn.cpp:97 msgid "KP_END" msgstr "Num_Ende" #: ../src/common/accelcmn.cpp:87 msgid "KP_ENTER" msgstr "Num_Eingabe" #: ../src/common/accelcmn.cpp:101 msgid "KP_EQUAL" msgstr "Num_Gleich" #: ../src/common/accelcmn.cpp:88 msgid "KP_HOME" msgstr "Num_Pos 1" #: ../src/common/accelcmn.cpp:99 msgid "KP_INSERT" msgstr "Num_Einfg" #: ../src/common/accelcmn.cpp:89 msgid "KP_LEFT" msgstr "Num_Links" #: ../src/common/accelcmn.cpp:102 msgid "KP_MULTIPLY" msgstr "Num_Mal" #: ../src/common/accelcmn.cpp:95 msgid "KP_NEXT" msgstr "Num_Nächster" #: ../src/common/accelcmn.cpp:96 msgid "KP_PAGEDOWN" msgstr "Num_Bild Runter" #: ../src/common/accelcmn.cpp:94 msgid "KP_PAGEUP" msgstr "Num_Bild Hoch" #: ../src/common/accelcmn.cpp:93 msgid "KP_PRIOR" msgstr "Num_Voriger" #: ../src/common/accelcmn.cpp:91 msgid "KP_RIGHT" msgstr "Num_Rechts" #: ../src/common/accelcmn.cpp:104 msgid "KP_SEPARATOR" msgstr "Num_Trennzeichen" #: ../src/common/accelcmn.cpp:85 msgid "KP_SPACE" msgstr "Num_Leertaste" #: ../src/common/accelcmn.cpp:105 msgid "KP_SUBTRACT" msgstr "Num_Minus" #: ../src/common/accelcmn.cpp:86 msgid "KP_TAB" msgstr "Num_Tab" #: ../src/common/accelcmn.cpp:90 msgid "KP_UP" msgstr "Num_Hoch" #: ../src/richtext/richtextindentspage.cpp:270 msgid "L&ine spacing:" msgstr "Ze&ilenabstand:" #: ../src/common/accelcmn.cpp:56 msgid "LEFT" msgstr "LINKS" #: ../src/generic/prntdlgg.cpp:613 ../src/generic/prntdlgg.cpp:868 msgid "Landscape" msgstr "Querformat" #: ../src/common/stockitem.cpp:174 msgid "Last" msgstr "Letzte(r)" #: ../src/common/prntbase.cpp:1542 msgid "Last page" msgstr "Letzte Seite" #: ../src/common/log.cpp:309 #, c-format msgid "Last repeated message (\"%s\", %lu time) wasn't output" msgid_plural "Last repeated message (\"%s\", %lu times) wasn't output" msgstr[0] "" "Die letzte wiederholte Nachricht (\"%s\", %lu Mal) wurde nicht ausgegeben" msgstr[1] "" "Die letzte wiederholte Nachricht (\"%s\", %lu Mal) wurde nicht ausgegeben" #: ../src/common/paper.cpp:104 msgid "Ledger, 17 x 11 in" msgstr "Ledger, 17 x 11 Zoll" #: ../src/richtext/richtextliststylepage.cpp:249 #: ../src/richtext/richtextliststylepage.cpp:252 #: ../src/richtext/richtextliststylepage.cpp:253 #: ../src/richtext/richtextbulletspage.cpp:199 #: ../src/richtext/richtextbulletspage.cpp:202 #: ../src/richtext/richtextbulletspage.cpp:203 #: ../src/richtext/richtextsizepage.cpp:249 msgid "Left" msgstr "Links" #: ../src/richtext/richtextindentspage.cpp:204 #: ../src/richtext/richtextliststylepage.cpp:390 msgid "Left (&first line):" msgstr "Links (&ertse Zeile):" #: ../src/generic/prntdlgg.cpp:880 msgid "Left margin (mm):" msgstr "Linker Rand (mm):" #: ../src/richtext/richtextindentspage.cpp:141 #: ../src/richtext/richtextindentspage.cpp:143 #: ../src/richtext/richtextliststylepage.cpp:330 #: ../src/richtext/richtextliststylepage.cpp:332 msgid "Left-align text." msgstr "Linksbündiger Text." #: ../src/common/paper.cpp:145 msgid "Legal Extra 9 1/2 x 15 in" msgstr "Legal Extra 9 1/2 x 15 Zoll" #: ../src/common/paper.cpp:97 msgid "Legal, 8 1/2 x 14 in" msgstr "Legal, 8 1/2 x 14 Zoll" #: ../src/common/paper.cpp:144 msgid "Letter Extra 9 1/2 x 12 in" msgstr "Letter Extra 9 1/2 x 12 Zoll" #: ../src/common/paper.cpp:150 msgid "Letter Extra Transverse 9.275 x 12 in" msgstr "Brief Extra Quer 9.275 x 12 Zoll" #: ../src/common/paper.cpp:153 msgid "Letter Plus 8 1/2 x 12.69 in" msgstr "Brief Plus 8 1/2 x 12.69 Zoll" #: ../src/common/paper.cpp:170 msgid "Letter Rotated 11 x 8 1/2 in" msgstr "Brief Rotiert 11 x 8 1/2 Zoll" #: ../src/common/paper.cpp:102 msgid "Letter Small, 8 1/2 x 11 in" msgstr "Letter Small, 8 1/2 x 11 Zoll" #: ../src/common/paper.cpp:148 msgid "Letter Transverse 8 1/2 x 11 in" msgstr "Brief Quer 8 1/2 x 11 Zoll" #: ../src/common/paper.cpp:96 msgid "Letter, 8 1/2 x 11 in" msgstr "Letter, 8 1/2 x 11 Zoll" #: ../src/generic/aboutdlgg.cpp:173 msgid "License" msgstr "Lizenz" #: ../src/generic/fontdlgg.cpp:332 msgid "Light" msgstr "Dünn" #: ../src/generic/helpext.cpp:298 #, c-format msgid "Line %lu of map file \"%s\" has invalid syntax, skipped." msgstr "" "Zeile %lu der Abbildungsdatei \"%s\" hat ungültige Syntax, übersprungen." #: ../src/richtext/richtextliststylepage.cpp:444 msgid "Line spacing:" msgstr "Zeilenabstand:" #: ../src/html/chm.cpp:838 msgid "Link contained '//', converted to absolute link." msgstr "Verweis enthielt '//', in absoluten Link umgewandelt." #: ../src/richtext/richtextformatdlg.cpp:349 msgid "List Style" msgstr "Listenstil" #: ../src/richtext/richtextstyles.cpp:1060 msgid "List styles" msgstr "Listenstile" #: ../src/richtext/richtextfontpage.cpp:206 #: ../src/richtext/richtextfontpage.cpp:208 msgid "Lists font sizes in points." msgstr "Schriftgröße der Listen in Punkt." #: ../src/richtext/richtextfontpage.cpp:199 #: ../src/richtext/richtextfontpage.cpp:201 msgid "Lists the available fonts." msgstr "Listet die verfügbaren Schriftarten auf." #: ../src/common/fldlgcmn.cpp:325 #, c-format msgid "Load %s file" msgstr "%s-Datei laden" #: ../src/html/htmlwin.cpp:575 msgid "Loading : " msgstr "Laden: " #: ../src/unix/snglinst.cpp:246 #, c-format msgid "Lock file '%s' has incorrect owner." msgstr "Sperr-Datei '%s' hat falschen Besitzer." #: ../src/unix/snglinst.cpp:251 #, c-format msgid "Lock file '%s' has incorrect permissions." msgstr "Sperr-Datei '%s' hat falsche Zugriffsrechte." #: ../src/generic/logg.cpp:582 #, c-format msgid "Log saved to the file '%s'." msgstr "Logtext in Datei '%s' gespeichert." #: ../src/richtext/richtextliststylepage.cpp:484 #: ../src/richtext/richtextbulletspage.cpp:289 msgid "Lower case letters" msgstr "Kleinbuchstaben" #: ../src/richtext/richtextliststylepage.cpp:486 #: ../src/richtext/richtextbulletspage.cpp:291 msgid "Lower case roman numerals" msgstr "Römische Ziffern in Kleinbuchstaben" #: ../src/gtk/mdi.cpp:422 ../src/gtk1/mdi.cpp:431 msgid "MDI child" msgstr "MDI child" #: ../src/common/accelcmn.cpp:68 msgid "MENU" msgstr "MENÜ" #: ../src/msw/helpchm.cpp:56 msgid "" "MS HTML Help functions are unavailable because the MS HTML Help library is " "not installed on this machine. Please install it." msgstr "" "Die MS-HTML-Hilfe funktioniert nicht, da die MS-HTML-Hilfe-Bibliothek nicht " "installiert ist. Bitte installieren Sie sie." #: ../src/univ/themes/win32.cpp:3754 msgid "Ma&ximize" msgstr "Ma&ximieren" #: ../src/common/fmapbase.cpp:203 msgid "MacArabic" msgstr "MacArabic" #: ../src/common/fmapbase.cpp:222 msgid "MacArmenian" msgstr "MacArmenian" #: ../src/common/fmapbase.cpp:211 msgid "MacBengali" msgstr "MacBengali" #: ../src/common/fmapbase.cpp:217 msgid "MacBurmese" msgstr "MacBurmese" #: ../src/common/fmapbase.cpp:236 msgid "MacCeltic" msgstr "MacCeltic" #: ../src/common/fmapbase.cpp:227 msgid "MacCentralEurRoman" msgstr "MacCentralEurRoman" #: ../src/common/fmapbase.cpp:223 msgid "MacChineseSimp" msgstr "MacChineseSimp" #: ../src/common/fmapbase.cpp:201 msgid "MacChineseTrad" msgstr "MacChineseTrad" #: ../src/common/fmapbase.cpp:233 msgid "MacCroatian" msgstr "MacCroatian" #: ../src/common/fmapbase.cpp:206 msgid "MacCyrillic" msgstr "MacCyrillic" #: ../src/common/fmapbase.cpp:207 msgid "MacDevanagari" msgstr "MacDevanagari" #: ../src/common/fmapbase.cpp:231 msgid "MacDingbats" msgstr "MacDingbats" #: ../src/common/fmapbase.cpp:226 msgid "MacEthiopic" msgstr "MacEthiopic" #: ../src/common/fmapbase.cpp:229 msgid "MacExtArabic" msgstr "MacExtArabic" #: ../src/common/fmapbase.cpp:237 msgid "MacGaelic" msgstr "MacGaelic" #: ../src/common/fmapbase.cpp:221 msgid "MacGeorgian" msgstr "MacGeorgian" #: ../src/common/fmapbase.cpp:205 msgid "MacGreek" msgstr "MacGreek" #: ../src/common/fmapbase.cpp:209 msgid "MacGujarati" msgstr "MacGujarati" #: ../src/common/fmapbase.cpp:208 msgid "MacGurmukhi" msgstr "MacGurmukhi" #: ../src/common/fmapbase.cpp:204 msgid "MacHebrew" msgstr "MacHebrew" #: ../src/common/fmapbase.cpp:234 msgid "MacIcelandic" msgstr "MacIcelandic" #: ../src/common/fmapbase.cpp:200 msgid "MacJapanese" msgstr "MacJapanese" #: ../src/common/fmapbase.cpp:214 msgid "MacKannada" msgstr "MacKannada" #: ../src/common/fmapbase.cpp:238 msgid "MacKeyboardGlyphs" msgstr "MacKeyboardGlyphs" #: ../src/common/fmapbase.cpp:218 msgid "MacKhmer" msgstr "MacKhmer" #: ../src/common/fmapbase.cpp:202 msgid "MacKorean" msgstr "MacKorean" #: ../src/common/fmapbase.cpp:220 msgid "MacLaotian" msgstr "MacLaotian" #: ../src/common/fmapbase.cpp:215 msgid "MacMalayalam" msgstr "MacMalayalam" #: ../src/common/fmapbase.cpp:225 msgid "MacMongolian" msgstr "MacMongolian" #: ../src/common/fmapbase.cpp:210 msgid "MacOriya" msgstr "MacOriya" #: ../src/common/fmapbase.cpp:199 msgid "MacRoman" msgstr "MacRoman" #: ../src/common/fmapbase.cpp:235 msgid "MacRomanian" msgstr "MacRomanian" #: ../src/common/fmapbase.cpp:216 msgid "MacSinhalese" msgstr "MacSinhalese" #: ../src/common/fmapbase.cpp:230 msgid "MacSymbol" msgstr "MacSymbol" #: ../src/common/fmapbase.cpp:212 msgid "MacTamil" msgstr "MacTamil" #: ../src/common/fmapbase.cpp:213 msgid "MacTelugu" msgstr "MacTelugu" #: ../src/common/fmapbase.cpp:219 msgid "MacThai" msgstr "MacThai" #: ../src/common/fmapbase.cpp:224 msgid "MacTibetan" msgstr "MacTibetan" #: ../src/common/fmapbase.cpp:232 msgid "MacTurkish" msgstr "MacTurkish" #: ../src/common/fmapbase.cpp:228 msgid "MacVietnamese" msgstr "MacVietnamese" #: ../src/propgrid/advprops.cpp:2031 msgid "Make a selection:" msgstr "Bitte auswählen:" #: ../src/richtext/richtextformatdlg.cpp:362 #: ../src/richtext/richtextmarginspage.cpp:172 msgid "Margins" msgstr "Randfiguren" #: ../src/generic/fdrepdlg.cpp:147 msgid "Match case" msgstr "Groß- und Kleinschreibung beachten" #: ../src/richtext/richtextsizepage.cpp:463 msgid "Max height:" msgstr "Maximale Höhe:" #: ../src/richtext/richtextsizepage.cpp:436 msgid "Max width:" msgstr "Maximale Breite:" #: ../src/unix/mediactrl.cpp:1006 #, c-format msgid "Media playback error: %s" msgstr "Medienwiedergabe-Fehler: %s" #: ../src/common/fs_mem.cpp:175 #, c-format msgid "Memory VFS already contains file '%s'!" msgstr "VFS-Speicher beinhaltet bereits die Datei '%s'!" #: ../src/msw/frame.cpp:347 msgid "Menu" msgstr "Menü" #: ../src/common/msgout.cpp:124 msgid "Message" msgstr "Nachricht" #: ../src/univ/themes/metal.cpp:168 msgid "Metal theme" msgstr "Metal-Thema" #: ../src/msw/ole/automtn.cpp:641 msgid "Method or property not found." msgstr "Methode oder Eigenschaft nicht gefunden." #: ../src/univ/themes/win32.cpp:3752 msgid "Mi&nimize" msgstr "Mi&nimieren" #: ../src/richtext/richtextsizepage.cpp:409 msgid "Min height:" msgstr "Minimale Höhe:" #: ../src/richtext/richtextsizepage.cpp:382 msgid "Min width:" msgstr "Minimale Breite:" #: ../src/msw/ole/automtn.cpp:657 msgid "Missing a required parameter." msgstr "Ein notwendiger Parameter fehlt." #: ../src/generic/fontdlgg.cpp:324 msgid "Modern" msgstr "Modern" #: ../src/generic/filectrlg.cpp:462 msgid "Modified" msgstr "Geändert" #: ../src/common/module.cpp:133 #, c-format msgid "Module \"%s\" initialization failed" msgstr "Initialisierung von Modul \"%s\" fehlgeschlagen." #: ../src/common/paper.cpp:132 msgid "Monarch Envelope, 3 7/8 x 7 1/2 in" msgstr "Monarch Envelope, 3 7/8 x 7 1/2 Zoll" #: ../src/msw/fswatcher.cpp:143 msgid "Monitoring individual files for changes is not supported currently." msgstr "" "Überwachen einzelner Dateien auf Änderungen wird zurzeit nicht unterstützt." #: ../src/generic/editlbox.cpp:276 msgid "Move down" msgstr "Abwärts verschieben" #: ../src/generic/editlbox.cpp:275 msgid "Move up" msgstr "Nach oben" #: ../src/richtext/richtextsizepage.cpp:682 #: ../src/richtext/richtextsizepage.cpp:684 msgid "Moves the object to the next paragraph." msgstr "Verschiebt das Objekt zum nächsten Absatz." #: ../src/richtext/richtextsizepage.cpp:676 #: ../src/richtext/richtextsizepage.cpp:678 msgid "Moves the object to the previous paragraph." msgstr "Verschiebt das Objekt in den vorherigen Absatz." #: ../src/richtext/richtextbuffer.cpp:9345 msgid "Multiple Cell Properties" msgstr "Mehrfache Zelleneigenschaften" #: ../src/common/accelcmn.cpp:81 msgid "NUM_LOCK" msgstr "Num_LOCK" #: ../src/generic/filectrlg.cpp:459 msgid "Name" msgstr "Name" #: ../src/common/stockitem.cpp:175 msgid "Network" msgstr "Netzwerk" #: ../src/common/stockitem.cpp:176 msgid "New" msgstr "Neu" #: ../src/richtext/richtextstyledlg.cpp:243 msgid "New &Box Style..." msgstr "Neuer &Kastenstil..." #: ../src/richtext/richtextstyledlg.cpp:225 msgid "New &Character Style..." msgstr "Neuer &Zeichenstil..." #: ../src/richtext/richtextstyledlg.cpp:237 msgid "New &List Style..." msgstr "Neuer &Listenstil..." #: ../src/richtext/richtextstyledlg.cpp:231 msgid "New &Paragraph Style..." msgstr "Neuer &Absatzstil..." #: ../src/richtext/richtextstyledlg.cpp:603 #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:651 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:817 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:890 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:931 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "New Style" msgstr "Neuer Stil" #: ../src/generic/dirdlgg.cpp:102 msgid "New directory" msgstr "Verzeichnis anlegen" #: ../src/generic/editlbox.cpp:273 msgid "New item" msgstr "Neues &Element" #: ../src/generic/dirdlgg.cpp:326 ../src/generic/dirdlgg.cpp:336 #: ../src/generic/filectrlg.cpp:653 ../src/generic/filectrlg.cpp:662 msgid "NewName" msgstr "NeuerName" #: ../src/generic/tipdlg.cpp:305 msgid "Next" msgstr "Weiter" #: ../src/common/prntbase.cpp:1537 ../src/html/helpwnd.cpp:678 msgid "Next page" msgstr "Nächste HTML-Seite zeigen" #: ../include/wx/msgdlg.h:272 ../src/common/stockitem.cpp:177 #: ../src/motif/msgdlg.cpp:196 msgid "No" msgstr "Nein" #: ../src/generic/animateg.cpp:150 #, c-format msgid "No animation handler for type %ld defined." msgstr "Kein Animationshandler für Typ %ld definiert." #: ../src/dfb/bitmap.cpp:642 ../src/dfb/bitmap.cpp:676 #, c-format msgid "No bitmap handler for type %d defined." msgstr "Keine Bildbehandlungsroutine für den Typ %d definiert." #: ../src/osx/carbon/dataview.cpp:1784 msgid "No column existing." msgstr "Es existiert keine Zeile" #: ../src/osx/carbon/dataview.cpp:1674 msgid "No column for the specified column existing." msgstr "Für die ausgewählte Spalte existiert nicht." #: ../src/osx/carbon/dataview.cpp:1423 msgid "No column for the specified column position existing." msgstr "Für die ausgewählte Zeilenposition existiert nicht." #: ../src/common/utilscmn.cpp:1049 msgid "No default application configured for HTML files." msgstr "Keine voreingestellte Anwendung für HTML Dateinen." #: ../src/generic/helpext.cpp:449 msgid "No entries found." msgstr "Keine Einträge gefunden." #: ../src/common/fontmap.cpp:421 #, c-format msgid "" "No font for displaying text in encoding '%s' found,\n" "but an alternative encoding '%s' is available.\n" "Do you want to use this encoding (otherwise you will have to choose another " "one)?" msgstr "" "Keine Schriftart für die Kodierung '%s' gefunden,\n" "es ist aber eine Alternative '%s' verfügbar.\n" "Möchten Sie diese Schriftart für die Kodierung wählen\n" "(sonst müssen Sie einen anderen auswählen)?" #: ../src/common/fontmap.cpp:426 #, c-format msgid "" "No font for displaying text in encoding '%s' found.\n" "Would you like to select a font to be used for this encoding\n" "(otherwise the text in this encoding will not be shown correctly)?" msgstr "" "Keine Schriftart für die Kodierung '%s' gefunden,\n" "Möchten Sie eine Schriftart für die Kodierung wählen\n" "(sonst wird der Text mit dieser Kodierung nicht richtig angezeigt)?" #: ../src/generic/animateg.cpp:142 msgid "No handler found for animation type." msgstr "Kein Handler für den Animationstyp gefunden." #: ../src/common/image.cpp:2591 msgid "No handler found for image type." msgstr "Dieses Bildformat wird nicht unterstützt." #: ../src/common/image.cpp:2599 ../src/common/image.cpp:2710 #: ../src/common/image.cpp:2763 #, c-format msgid "No image handler for type %d defined." msgstr "Bildformat %d wurde nicht definiert." #: ../src/common/image.cpp:2733 ../src/common/image.cpp:2777 #, c-format msgid "No image handler for type %s defined." msgstr "Bildformat %s wurde nicht definiert." #: ../src/html/helpwnd.cpp:871 msgid "No matching page found yet" msgstr "Passende Seite noch nicht gefunden" #: ../src/osx/carbon/dataview.cpp:1676 ../src/osx/carbon/dataview.cpp:1786 msgid "No renderer or invalid renderer type specified for custom data column." msgstr "" "Kein Renderer oder ungültiger Renderer Typ für die benutzte Dateizeile " "aufgeführt" #: ../src/osx/carbon/dataview.cpp:1424 msgid "No renderer specified for column." msgstr "Kein Renderer für diese Zeile festgelegt." #: ../src/unix/sound.cpp:81 msgid "No sound" msgstr "Kein Ton" #: ../src/common/image.cpp:2166 ../src/common/image.cpp:2207 msgid "No unused colour in image being masked." msgstr "Keine unbenutzte Farbe wurde im Bild unterdrückt." #: ../src/common/image.cpp:3236 msgid "No unused colour in image." msgstr "Keine unbenutzte Farbe im Bild." #: ../src/generic/helpext.cpp:306 #, c-format msgid "No valid mappings found in the file \"%s\"." msgstr "Keine gültige Abbildung in der Datei \"%s\" gefunden." #: ../src/richtext/richtextborderspage.cpp:542 #: ../src/richtext/richtextsizepage.cpp:248 #: ../src/richtext/richtextsizepage.cpp:252 msgid "None" msgstr "Kein" #: ../src/common/fmapbase.cpp:157 msgid "Nordic (ISO-8859-10)" msgstr "Nordisch (ISO-8859-10)" #: ../src/generic/fontdlgg.cpp:328 ../src/generic/fontdlgg.cpp:331 msgid "Normal" msgstr "Normal" #: ../src/html/helpwnd.cpp:1276 msgid "Normal face
    and underlined. " msgstr "Normaler Zeichensatz
    und unterstrichen " #: ../src/html/helpwnd.cpp:1218 msgid "Normal font:" msgstr "Normal Font:" #: ../src/propgrid/props.cpp:887 #, c-format msgid "Not %s" msgstr "Nicht %s" #: ../include/wx/filename.h:586 ../include/wx/filename.h:591 msgid "Not available" msgstr "Nicht verfügbar" #: ../src/richtext/richtextfontpage.cpp:340 msgid "Not underlined" msgstr "Nicht unterstrichen" #: ../src/common/paper.cpp:116 msgid "Note, 8 1/2 x 11 in" msgstr "Note, 8 1/2 x 11 Zoll" #: ../src/generic/notifmsgg.cpp:104 msgid "Notice" msgstr "Bemerkung" #: ../src/osx/carbon/dataview.cpp:902 msgid "Number of columns could not be determined." msgstr "Anzahl an Zeilen konnte nicht bestimmt werden." #: ../src/richtext/richtextliststylepage.cpp:487 #: ../src/richtext/richtextbulletspage.cpp:292 msgid "Numbered outline" msgstr "Nummerierung umrandet" #: ../include/wx/msgdlg.h:273 ../src/richtext/richtextstyledlg.cpp:297 #: ../src/common/stockitem.cpp:178 ../src/msw/msgdlg.cpp:489 #: ../src/msw/msgdlg.cpp:799 ../src/msw/dialog.cpp:120 #: ../src/gtk1/fontdlg.cpp:138 msgid "OK" msgstr "OK" #: ../src/msw/ole/automtn.cpp:681 #, c-format msgid "OLE Automation error in %s: %s" msgstr "OLE Automatisierungsfehler in %s: %s" #: ../include/wx/richtext/richtextimagedlg.h:39 msgid "Object Properties" msgstr "Objekteigenschaften" #: ../src/msw/ole/automtn.cpp:649 msgid "Object implementation does not support named arguments." msgstr "Objektanwendung unterstützt die genannten Argumente nicht." #: ../src/common/xtixml.cpp:264 msgid "Objects must have an id attribute" msgstr "Objekte müssen ein ID-Attribut besitzen." #: ../src/common/docview.cpp:1755 ../src/common/docview.cpp:1797 msgid "Open File" msgstr "Datei öffnen" #: ../src/html/helpwnd.cpp:684 ../src/html/helpwnd.cpp:1557 msgid "Open HTML document" msgstr "Öffne HTML-Dokument" #: ../src/generic/dbgrptg.cpp:163 #, c-format msgid "Open file \"%s\"" msgstr "Öffne Datei \"%s\"" #: ../src/common/stockitem.cpp:179 msgid "Open..." msgstr "Öffnen..." #: ../src/osx/carbon/glcanvas.cpp:48 #, c-format msgid "OpenGL function \"%s\" failed: %s (error %d)" msgstr "OpenGL Funktion \"%s\" schlug fehl %s (Fehler %d)" #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:821 msgid "Operation not permitted." msgstr "Ausführung nicht erlaubt." #: ../src/common/cmdline.cpp:735 #, c-format msgid "Option '%s' can't be negated" msgstr "Option '%s' konnte nicht negiert werden" #: ../src/common/cmdline.cpp:899 #, c-format msgid "Option '%s' requires a value." msgstr "Option '%s' erwartet einen Wert." #: ../src/common/cmdline.cpp:982 #, c-format msgid "Option '%s': '%s' cannot be converted to a date." msgstr "Option '%s': '%s' kann nicht in ein Datum umgewandelt werden." #: ../src/generic/dirdlgg.cpp:187 ../src/generic/prntdlgg.cpp:618 msgid "Options" msgstr "Einstellungen" #: ../src/generic/prntdlgg.cpp:615 ../src/generic/prntdlgg.cpp:869 msgid "Orientation" msgstr "Ausrichtung" #: ../src/common/windowid.cpp:259 msgid "Out of window IDs. Recommend shutting down application." msgstr "Window IDs ausgeschalten. Vorgeschlagene Auswahl schließen." #: ../src/richtext/richtextborderspage.cpp:400 #: ../src/richtext/richtextborderspage.cpp:533 msgid "Outline" msgstr "Umrandung" #: ../src/richtext/richtextborderspage.cpp:550 msgid "Outset" msgstr "Beginn" #: ../src/msw/ole/automtn.cpp:645 msgid "Overflow while coercing argument values." msgstr "Überlauf beim Umwandeln der Argumentwerte." #: ../src/common/accelcmn.cpp:84 msgid "PAGEDOWN" msgstr "BILD RUNTER" #: ../src/common/accelcmn.cpp:83 msgid "PAGEUP" msgstr "BILD HOCH" #: ../src/common/accelcmn.cpp:69 msgid "PAUSE" msgstr "PAUSE" #: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:480 msgid "PCX: couldn't allocate memory" msgstr "PCX: Speicheranforderung gescheitert" #: ../src/common/imagpcx.cpp:456 msgid "PCX: image format unsupported" msgstr "PCX: Bildformat wird nicht unterstützt" #: ../src/common/imagpcx.cpp:479 msgid "PCX: invalid image" msgstr "PCX: ungültiges Bild" #: ../src/common/imagpcx.cpp:442 msgid "PCX: this is not a PCX file." msgstr "PCX: dies ist keine PCX-Datei." #: ../src/common/imagpcx.cpp:459 ../src/common/imagpcx.cpp:481 msgid "PCX: unknown error !!!" msgstr "PCX: unbekannter Fehler!" #: ../src/common/imagpcx.cpp:458 msgid "PCX: version number too low" msgstr "PCX: Versionsnummer zu niedrig" #: ../src/common/accelcmn.cpp:55 msgid "PGDN" msgstr "BILD HOCH" #: ../src/common/accelcmn.cpp:54 msgid "PGUP" msgstr "BILD RUNTER" #: ../src/common/imagpnm.cpp:91 msgid "PNM: Couldn't allocate memory." msgstr "PNM: Speicheranforderung gescheitert." #: ../src/common/imagpnm.cpp:73 msgid "PNM: File format is not recognized." msgstr "PNM: Datei-Format wurde nicht erkannt." #: ../src/common/imagpnm.cpp:112 ../src/common/imagpnm.cpp:134 #: ../src/common/imagpnm.cpp:156 msgid "PNM: File seems truncated." msgstr "PNM: Datei wurde abgeschnitten." #: ../src/common/paper.cpp:188 msgid "PRC 16K 146 x 215 mm" msgstr "PRC 16K 146 x 215 mm" #: ../src/common/paper.cpp:201 msgid "PRC 16K Rotated" msgstr "PRC 16K Rotiert" #: ../src/common/paper.cpp:189 msgid "PRC 32K 97 x 151 mm" msgstr "PRC 32K 97 x 151 mm" #: ../src/common/paper.cpp:202 msgid "PRC 32K Rotated" msgstr "PRC 32K Rotiert" #: ../src/common/paper.cpp:190 msgid "PRC 32K(Big) 97 x 151 mm" msgstr "PRC 32K(Groß) 97 x 151 mm" #: ../src/common/paper.cpp:203 msgid "PRC 32K(Big) Rotated" msgstr "PRC 32K(Groß) Rotiert" #: ../src/common/paper.cpp:191 msgid "PRC Envelope #1 102 x 165 mm" msgstr "PRC Umschlag #1 102 x 165 mm" #: ../src/common/paper.cpp:204 msgid "PRC Envelope #1 Rotated 165 x 102 mm" msgstr "PRC Umschlag #1 Rotated 165 x 102 mm" #: ../src/common/paper.cpp:200 msgid "PRC Envelope #10 324 x 458 mm" msgstr "PRC Umschlag #10 324 x 458 mm" #: ../src/common/paper.cpp:213 msgid "PRC Envelope #10 Rotated 458 x 324 mm" msgstr "PRC Umschlag #10 Rotiert 458 x 324 mm" #: ../src/common/paper.cpp:192 msgid "PRC Envelope #2 102 x 176 mm" msgstr "PRC Umschlag #2 102 x 176 mm" #: ../src/common/paper.cpp:205 msgid "PRC Envelope #2 Rotated 176 x 102 mm" msgstr "PRC Umschlag #2 Rotiert 176 x 102 mm" #: ../src/common/paper.cpp:193 msgid "PRC Envelope #3 125 x 176 mm" msgstr "PRC Umschlag #3 125 x 176 mm" #: ../src/common/paper.cpp:206 msgid "PRC Envelope #3 Rotated 176 x 125 mm" msgstr "PRC Umschlag #3 Rotiert 176 x 125 mm" #: ../src/common/paper.cpp:194 msgid "PRC Envelope #4 110 x 208 mm" msgstr "PRC Umschlag #4 110 x 208 mm" #: ../src/common/paper.cpp:207 msgid "PRC Envelope #4 Rotated 208 x 110 mm" msgstr "PRC Umschlag #4 Rotiert 208 x 110 mm" #: ../src/common/paper.cpp:195 msgid "PRC Envelope #5 110 x 220 mm" msgstr "PRC Umschlag #5 110 x 220 mm" #: ../src/common/paper.cpp:208 msgid "PRC Envelope #5 Rotated 220 x 110 mm" msgstr "PRC Umschlag #5 Rotiert 220 x 110 mm" #: ../src/common/paper.cpp:196 msgid "PRC Envelope #6 120 x 230 mm" msgstr "PRC Umschlag #6 120 x 230 mm" #: ../src/common/paper.cpp:209 msgid "PRC Envelope #6 Rotated 230 x 120 mm" msgstr "PRC Umschlag #6 Rotiert 230 x 120 mm" #: ../src/common/paper.cpp:197 msgid "PRC Envelope #7 160 x 230 mm" msgstr "PRC Umschlag #7 160 x 230 mm" #: ../src/common/paper.cpp:210 msgid "PRC Envelope #7 Rotated 230 x 160 mm" msgstr "PRC Umschlag #7 Rotiert 230 x 160 mm" #: ../src/common/paper.cpp:198 msgid "PRC Envelope #8 120 x 309 mm" msgstr "PRC Umschlag #8 120 x 309 mm" #: ../src/common/paper.cpp:211 msgid "PRC Envelope #8 Rotated 309 x 120 mm" msgstr "PRC Umschlag #8 Rotiert 309 x 120 mm" #: ../src/common/paper.cpp:199 msgid "PRC Envelope #9 229 x 324 mm" msgstr "PRC Umschlag #9 229 x 324 mm" #: ../src/common/paper.cpp:212 msgid "PRC Envelope #9 Rotated 324 x 229 mm" msgstr "PRC Umschlag #9 Rotiert 324 x 229 mm" #: ../src/common/accelcmn.cpp:72 msgid "PRINT" msgstr "DRUCKEN" #: ../src/richtext/richtextmarginspage.cpp:286 msgid "Padding" msgstr "Auffüllung" #: ../src/common/prntbase.cpp:2044 #, c-format msgid "Page %d" msgstr "Seite %d" #: ../src/common/prntbase.cpp:2042 #, c-format msgid "Page %d of %d" msgstr "Seite %d aus %d" #: ../src/gtk/print.cpp:774 msgid "Page Setup" msgstr "Seiten-Einstellungen" #: ../src/generic/prntdlgg.cpp:828 ../src/common/prntbase.cpp:467 msgid "Page setup" msgstr "Seiteneinstellungen" #: ../src/generic/prntdlgg.cpp:216 msgid "Pages" msgstr "Seiten" #: ../src/generic/prntdlgg.cpp:602 ../src/generic/prntdlgg.cpp:801 #: ../src/generic/prntdlgg.cpp:842 ../src/generic/prntdlgg.cpp:855 #: ../src/generic/prntdlgg.cpp:1052 ../src/generic/prntdlgg.cpp:1057 msgid "Paper size" msgstr "Papierformat" #: ../src/richtext/richtextstyles.cpp:1058 msgid "Paragraph styles" msgstr "Absatzstile" #: ../src/common/xtistrm.cpp:469 msgid "Passing a already registered object to SetObject" msgstr "Ein bereits registriertes Objekt wurde an SetObject übergeben" #: ../src/common/xtistrm.cpp:480 msgid "Passing an unknown object to GetObject" msgstr "Ein unbekanntes Objekt wurde an GetObject übergeben" #: ../src/richtext/richtextctrl.cpp:3117 ../src/common/stockitem.cpp:180 #: ../src/stc/stc_i18n.cpp:19 msgid "Paste" msgstr "Einfügen" #: ../src/common/stockitem.cpp:262 msgid "Paste selection" msgstr "Auswahl einfügen" #: ../src/richtext/richtextliststylepage.cpp:222 #: ../src/richtext/richtextbulletspage.cpp:172 msgid "Peri&od" msgstr "P&unkt" #: ../src/generic/filectrlg.cpp:465 msgid "Permissions" msgstr "Zugriffsrechte" #: ../src/richtext/richtextbuffer.cpp:11942 msgid "Picture Properties" msgstr "Bildeigenschaften" #: ../include/wx/unix/pipe.h:47 msgid "Pipe creation failed" msgstr "Konnte keine Pipe anlegen" #: ../src/gtk1/fontdlg.cpp:74 msgid "Please choose a valid font." msgstr "Bitte wählen Sie eine gültige Schriftart." #: ../src/gtk/filedlg.cpp:72 msgid "Please choose an existing file." msgstr "Bitte wählen Sie eine bestehende Datei." #: ../src/html/helpwnd.cpp:813 msgid "Please choose the page to display:" msgstr "Bitte wählen Sie die darzustellende Seite:" #: ../src/msw/dialup.cpp:785 msgid "Please choose which ISP do you want to connect to" msgstr "Bitte gewünschte ISP-Verbindung auswählen" #: ../src/msw/listctrl.cpp:372 #, c-format msgid "" "Please install a newer version of comctl32.dll\n" "(at least version 4.70 is required but you have %d.%02d)\n" "or this program won't operate correctly." msgstr "" "Bitte installieren Sie eine neuere Version von comctl32.dll\n" "(mindestens Version 4.70 wird benötigt, aber Sie haben nur\n" "Version %d.%02d)." #: ../src/common/headerctrlcmn.cpp:59 msgid "Please select the columns to show and define their order:" msgstr "Bitte die Zeilen aufrufen um ihren Ablauf anzuzeigen und zu bestimmen:" #: ../src/common/prntbase.cpp:521 msgid "Please wait while printing..." msgstr "Bitte warten Sie während gedruckt wird..." #: ../src/propgrid/advprops.cpp:631 msgid "Point Size" msgstr "Schriftgröße in Punkt" #: ../src/osx/carbon/dataview.cpp:1278 ../src/osx/carbon/dataview.cpp:1329 #: ../src/osx/carbon/dataview.cpp:1420 ../src/osx/carbon/dataview.cpp:1443 #: ../src/osx/carbon/dataview.cpp:1460 ../src/osx/carbon/dataview.cpp:1477 #: ../src/osx/carbon/dataview.cpp:1670 ../src/osx/carbon/dataview.cpp:1779 #: ../src/osx/carbon/dataview.cpp:1821 ../src/osx/carbon/dataview.cpp:1874 #: ../src/osx/carbon/dataview.cpp:1997 msgid "Pointer to data view control not set correctly." msgstr "Zeiger wurde nicht korrekt auf das Kontrollelement gesetzt." #: ../src/osx/carbon/dataview.cpp:1279 ../src/osx/carbon/dataview.cpp:1338 #: ../src/osx/carbon/dataview.cpp:1421 ../src/osx/carbon/dataview.cpp:1478 #: ../src/osx/carbon/dataview.cpp:1671 ../src/osx/carbon/dataview.cpp:1780 #: ../src/osx/carbon/dataview.cpp:1822 ../src/osx/carbon/dataview.cpp:1875 #: ../src/osx/carbon/dataview.cpp:1998 msgid "Pointer to model not set correctly." msgstr "Zeiger wurde nicht korrekt auf das Model gesetzt." #: ../src/generic/prntdlgg.cpp:612 ../src/generic/prntdlgg.cpp:867 msgid "Portrait" msgstr "Hochformat" #: ../src/richtext/richtextsizepage.cpp:496 msgid "Position" msgstr "Position" #: ../src/generic/prntdlgg.cpp:298 msgid "PostScript file" msgstr "PostScript-Datei" #: ../src/common/stockitem.cpp:181 msgid "Preferences" msgstr "Einstellungen" #: ../src/osx/menu_osx.cpp:643 msgid "Preferences..." msgstr "Einstellungen..." #: ../src/common/prntbase.cpp:529 msgid "Preparing" msgstr "Vorbereitung" #: ../src/generic/fontdlgg.cpp:455 ../src/osx/carbon/fontdlg.cpp:576 #: ../src/html/helpwnd.cpp:1235 msgid "Preview:" msgstr "Vorschau:" #: ../src/common/prntbase.cpp:1523 ../src/html/helpwnd.cpp:677 msgid "Previous page" msgstr "Vorherige Seite" #: ../src/generic/prntdlgg.cpp:143 ../src/generic/prntdlgg.cpp:157 #: ../src/common/prntbase.cpp:409 ../src/common/prntbase.cpp:1511 #: ../src/gtk/print.cpp:584 ../src/gtk/print.cpp:597 msgid "Print" msgstr "Drucken" #: ../include/wx/prntbase.h:395 ../src/common/docview.cpp:1250 msgid "Print Preview" msgstr "Druckvorschau" #: ../src/common/prntbase.cpp:1985 ../src/common/prntbase.cpp:2027 #: ../src/common/prntbase.cpp:2035 msgid "Print Preview Failure" msgstr "Fehler bei der Druckvorschau" #: ../src/generic/prntdlgg.cpp:224 msgid "Print Range" msgstr "Seitenbereich" #: ../src/generic/prntdlgg.cpp:449 msgid "Print Setup" msgstr "Druckereinstellungen" #: ../src/generic/prntdlgg.cpp:621 msgid "Print in colour" msgstr "Farbig drucken" #: ../src/common/stockitem.cpp:182 msgid "Print previe&w..." msgstr "Druck&vorschau..." #: ../src/common/docview.cpp:1244 msgid "Print preview creation failed." msgstr "Erzeugung der Druckvorschau fehlgeschlagen" #: ../src/common/stockitem.cpp:182 msgid "Print preview..." msgstr "Druckvorschau..." #: ../src/generic/prntdlgg.cpp:630 msgid "Print spooling" msgstr "Druckersteuerung" #: ../src/html/helpwnd.cpp:688 msgid "Print this page" msgstr "Diese Seite drucken" #: ../src/generic/prntdlgg.cpp:185 msgid "Print to File" msgstr "In Datei drucken" #: ../src/common/stockitem.cpp:183 msgid "Print..." msgstr "Drucken..." #: ../src/generic/prntdlgg.cpp:493 msgid "Printer" msgstr "Drucker" #: ../src/generic/prntdlgg.cpp:633 msgid "Printer command:" msgstr "Druckbefehl:" #: ../src/generic/prntdlgg.cpp:180 msgid "Printer options" msgstr "Drucker-Einstellungen" #: ../src/generic/prntdlgg.cpp:645 msgid "Printer options:" msgstr "Drucker-Einstellungen:" #: ../src/generic/prntdlgg.cpp:916 msgid "Printer..." msgstr "Drucker..." #: ../src/generic/prntdlgg.cpp:196 msgid "Printer:" msgstr "Drucker:" #: ../include/wx/richtext/richtextprint.h:163 ../src/common/prntbase.cpp:518 #: ../src/html/htmprint.cpp:277 msgid "Printing" msgstr "Drucken" #: ../src/common/prntbase.cpp:586 msgid "Printing " msgstr "Drucken von " #: ../src/common/prntbase.cpp:330 msgid "Printing Error" msgstr "Fehler beim Drucken" #: ../src/common/prntbase.cpp:544 #, c-format msgid "Printing page %d of %d" msgstr "Drucke Seite %d von %d" #: ../src/generic/printps.cpp:201 #, c-format msgid "Printing page %d..." msgstr "Drucke Seite %d..." #: ../src/generic/printps.cpp:161 msgid "Printing..." msgstr "Drucke..." #: ../include/wx/richtext/richtextprint.h:109 ../include/wx/prntbase.h:263 #: ../src/common/docview.cpp:2124 msgid "Printout" msgstr "Ausdruck" #: ../src/common/debugrpt.cpp:565 #, c-format msgid "" "Processing debug report has failed, leaving the files in \"%s\" directory." msgstr "" "Bearbeitung des Fehlerberichts fehlgeschlagen, belasse die Dateien im Ordner " "\"%s\"." #: ../src/osx/carbon/dataview.cpp:2472 msgid "Progress renderer cannot render value type; value type: " msgstr "Prozess Renderer konnte den Wert nicht darstellen; Wert Typ:" #: ../src/common/prntbase.cpp:528 msgid "Progress:" msgstr "Fortschritt:" #: ../src/common/stockitem.cpp:184 msgid "Properties" msgstr "Eigenschaften" #: ../src/propgrid/manager.cpp:237 msgid "Property" msgstr "Eigenschaft" #: ../src/propgrid/propgrid.cpp:3144 ../src/propgrid/propgrid.cpp:3276 msgid "Property Error" msgstr "Eigenschaftsfehler" #: ../src/common/paper.cpp:113 msgid "Quarto, 215 x 275 mm" msgstr "Quarto, 215 x 275 mm" #: ../src/generic/logg.cpp:1036 msgid "Question" msgstr "Frage" #: ../src/common/stockitem.cpp:156 msgid "Quit" msgstr "Beenden" #: ../src/osx/menu_osx.cpp:610 ../src/osx/menu_osx.cpp:657 #, c-format msgid "Quit %s" msgstr "%s Beenden" #: ../src/common/stockitem.cpp:263 msgid "Quit this program" msgstr "Dieses Programm beenden" #: ../src/common/accelcmn.cpp:53 msgid "RETURN" msgstr "EINGABE" #: ../src/common/accelcmn.cpp:57 msgid "RIGHT" msgstr "RECHTS" #: ../src/common/accelcmn.cpp:327 msgid "RawCtrl+" msgstr "RawCtrl+" #: ../src/common/ffile.cpp:113 ../src/common/ffile.cpp:134 #, c-format msgid "Read error on file '%s'" msgstr "Lesefehler in Datei '%s'" #: ../src/common/prntbase.cpp:257 msgid "Ready" msgstr "Bereit" #: ../src/common/stockitem.cpp:185 ../src/stc/stc_i18n.cpp:16 msgid "Redo" msgstr "Wiederholen" #: ../src/common/stockitem.cpp:264 msgid "Redo last action" msgstr "Letzte Aktion wiederholen" #: ../src/common/stockitem.cpp:186 msgid "Refresh" msgstr "Aktualisiere" #: ../src/msw/registry.cpp:625 #, c-format msgid "Registry key '%s' already exists." msgstr "Registrierungsschlüssel '%s' bereits vorhanden." #: ../src/msw/registry.cpp:594 #, c-format msgid "Registry key '%s' does not exist, cannot rename it." msgstr "" "Registrierungsschlüssel '%s' existiert nicht, Umbenennung daher nicht " "möglich." #: ../src/msw/registry.cpp:726 #, c-format msgid "" "Registry key '%s' is needed for normal system operation,\n" "deleting it will leave your system in unusable state:\n" "operation aborted." msgstr "" "Registrierungsschlüssel '%s' wird vom System benötigt,\n" "durch seine Entfernung wird das System unbrauchbar:\n" "Abbruch." #: ../src/msw/registry.cpp:520 #, c-format msgid "Registry value '%s' already exists." msgstr "Registrierungswert '%s' bereits vorhanden." #: ../src/richtext/richtextfontpage.cpp:332 #: ../src/richtext/richtextfontpage.cpp:336 msgid "Regular" msgstr "Regulär" #: ../src/richtext/richtextsizepage.cpp:519 msgid "Relative" msgstr "Relativ" #: ../src/generic/helpext.cpp:462 msgid "Relevant entries:" msgstr "Relevante Einträge:" #: ../include/wx/generic/progdlgg.h:86 msgid "Remaining time:" msgstr "Verbleibende Zeit:" #: ../src/common/stockitem.cpp:187 msgid "Remove" msgstr "Entferne" #: ../src/richtext/richtextctrl.cpp:1430 msgid "Remove Bullet" msgstr "Gliederungspunkt entfernen" #: ../src/html/helpwnd.cpp:440 msgid "Remove current page from bookmarks" msgstr "Aktuelle HTML-Seite als Lesezeichen entfernen" #: ../src/common/rendcmn.cpp:194 #, c-format msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded." msgstr "" "Renderer \"%s\" hat eine ungültige Version %d.%d und kann nicht geladen " "werden." #: ../src/osx/carbon/dataview.cpp:1430 msgid "Rendering failed." msgstr "Darstellung gescheitert." #: ../src/richtext/richtextbuffer.cpp:4214 msgid "Renumber List" msgstr "Liste neu nummerieren" #: ../src/common/stockitem.cpp:188 msgid "Rep&lace" msgstr "&Ersetzen" #: ../src/richtext/richtextctrl.cpp:3277 ../src/common/stockitem.cpp:188 msgid "Replace" msgstr "Ersetzen" #: ../src/generic/fdrepdlg.cpp:182 msgid "Replace &all" msgstr "Alle &ersetzen" #: ../src/common/stockitem.cpp:261 msgid "Replace selection" msgstr "Auswahl ersetzen" #: ../src/generic/fdrepdlg.cpp:124 msgid "Replace with:" msgstr "Ersetzen durch:" #: ../src/common/valtext.cpp:161 msgid "Required information entry is empty." msgstr "Erforderlicher Informationseintrag ist leer." #: ../src/common/translation.cpp:1966 #, c-format msgid "Resource '%s' is not a valid message catalog." msgstr "Ressource '%s' ist kein gültiger Nachrichtenkatalog." #: ../src/common/stockitem.cpp:189 msgid "Revert to Saved" msgstr "Rückgängig auf Gespeichertes" #: ../src/richtext/richtextborderspage.cpp:548 msgid "Ridge" msgstr "Grat" #: ../src/richtext/richtextliststylepage.cpp:251 #: ../src/richtext/richtextbulletspage.cpp:201 #: ../src/richtext/richtextsizepage.cpp:250 msgid "Right" msgstr "Rechts" #: ../src/generic/prntdlgg.cpp:892 msgid "Right margin (mm):" msgstr "Rechter Rand (mm):" #: ../src/richtext/richtextindentspage.cpp:148 #: ../src/richtext/richtextindentspage.cpp:150 #: ../src/richtext/richtextliststylepage.cpp:337 #: ../src/richtext/richtextliststylepage.cpp:339 msgid "Right-align text." msgstr "Rechtsbündiger Text." #: ../src/generic/fontdlgg.cpp:322 msgid "Roman" msgstr "Roman" #: ../src/richtext/richtextliststylepage.cpp:299 #: ../src/richtext/richtextbulletspage.cpp:252 msgid "S&tandard bullet name:" msgstr "Vordefinierter Gliederungspunkt:" #: ../src/common/accelcmn.cpp:82 msgid "SCROLL_LOCK" msgstr "ROLLEN_LOCK" #: ../src/common/accelcmn.cpp:71 msgid "SELECT" msgstr "AUSWAHL" #: ../src/common/accelcmn.cpp:77 msgid "SEPARATOR" msgstr "TRENNER" #: ../src/common/accelcmn.cpp:74 msgid "SNAPSHOT" msgstr "S-Abf" #: ../src/common/accelcmn.cpp:62 msgid "SPACE" msgstr "Leertaste" #: ../src/common/accelcmn.cpp:257 ../src/common/accelcmn.cpp:339 msgid "SPECIAL" msgstr "SPEZIAL" #: ../src/common/accelcmn.cpp:78 msgid "SUBTRACT" msgstr "Subtrahieren" #: ../src/common/stockitem.cpp:190 ../src/common/sizer.cpp:2678 msgid "Save" msgstr "Speichern" #: ../src/common/fldlgcmn.cpp:327 #, c-format msgid "Save %s file" msgstr "Datei %s speichern" #: ../src/generic/logg.cpp:518 msgid "Save &As..." msgstr "&Speichern unter..." #: ../src/common/docview.cpp:360 msgid "Save As" msgstr "Speichern unter" #: ../src/common/stockitem.cpp:191 msgid "Save as" msgstr "Speichern unter" #: ../src/common/stockitem.cpp:267 msgid "Save current document" msgstr "Aktuelles Dokument speichern" #: ../src/common/stockitem.cpp:268 msgid "Save current document with a different filename" msgstr "Aktuelles Dokument mit einen anderen Dateinamen speichern" #: ../src/generic/logg.cpp:518 msgid "Save log contents to file" msgstr "Logtexte in Datei speichern" #: ../src/generic/fontdlgg.cpp:325 msgid "Script" msgstr "Skript" #: ../src/generic/srchctlg.cpp:67 ../src/html/helpwnd.cpp:548 #: ../src/html/helpwnd.cpp:563 msgid "Search" msgstr "Suchen" #: ../src/html/helpwnd.cpp:550 msgid "" "Search contents of help book(s) for all occurrences of the text you typed " "above" msgstr "" "Den Inhalt der Hilfebücher nach allem Auftreten des oben eingegebenem " "Begriff durchsuchen" #: ../src/generic/fdrepdlg.cpp:160 msgid "Search direction" msgstr "Suchrichtung" #: ../src/generic/fdrepdlg.cpp:112 msgid "Search for:" msgstr "Suchen nach:" #: ../src/html/helpwnd.cpp:1065 msgid "Search in all books" msgstr "Alle Bücher durchsuchen" #: ../src/html/helpwnd.cpp:870 msgid "Searching..." msgstr "Suchen..." #: ../src/generic/dirctrlg.cpp:546 msgid "Sections" msgstr "Abschnitte" #: ../src/common/ffile.cpp:220 #, c-format msgid "Seek error on file '%s'" msgstr "Suchfehler in Datei '%s'" #: ../src/common/ffile.cpp:210 #, c-format msgid "Seek error on file '%s' (large files not supported by stdio)" msgstr "" "Positionierungsfehler bei Datei '%s' (große Dateien werden nicht von stdio " "unterstützt)." #: ../src/richtext/richtextctrl.cpp:330 ../src/osx/textctrl_osx.cpp:587 #: ../src/common/stockitem.cpp:192 ../src/msw/textctrl.cpp:2288 msgid "Select &All" msgstr "Alles auswählen" #: ../src/common/stockitem.cpp:192 ../src/stc/stc_i18n.cpp:21 msgid "Select All" msgstr "Alles auswählen" #: ../src/common/docview.cpp:1877 msgid "Select a document template" msgstr "Dokument-Vorlage wählen" #: ../src/common/docview.cpp:1951 msgid "Select a document view" msgstr "Dokument-Anzeige ('View') wählen" #: ../src/richtext/richtextfontpage.cpp:235 #: ../src/richtext/richtextfontpage.cpp:237 msgid "Select regular or bold." msgstr "Wähle normal oder fett." #: ../src/richtext/richtextfontpage.cpp:222 #: ../src/richtext/richtextfontpage.cpp:224 msgid "Select regular or italic style." msgstr "Wähle normal oder kursiv." #: ../src/richtext/richtextfontpage.cpp:248 #: ../src/richtext/richtextfontpage.cpp:250 msgid "Select underlining or no underlining." msgstr "Wähle unterstrichen oder nicht unterstrichen." #: ../src/motif/filedlg.cpp:220 msgid "Selection" msgstr "Auswahl" #: ../src/richtext/richtextliststylepage.cpp:187 #: ../src/richtext/richtextliststylepage.cpp:189 msgid "Selects the list level to edit." msgstr "Wählt die Listenebene zur Bearbeitung." #: ../src/common/cmdline.cpp:918 #, c-format msgid "Separator expected after the option '%s'." msgstr "Trennungszeichen nach der Option '%s' erwartet." #: ../src/richtext/richtextbuffer.cpp:10513 msgid "Set Cell Style" msgstr "Stil der Zelle einstellen" #: ../include/wx/xtiprop.h:179 msgid "SetProperty called w/o valid setter" msgstr "SetProperty aufgerufen ohne gültigen Setter" #: ../src/common/filename.cpp:2632 msgid "Setting directory access times is not supported under this OS version" msgstr "" "Das setzen der Verzeichniszugriffszeit ist auf dieser Betriebssystemversion " "nicht unterstützt" #: ../src/generic/prntdlgg.cpp:188 msgid "Setup..." msgstr "Einstellungen..." #: ../src/msw/dialup.cpp:563 msgid "Several active dialup connections found, choosing one randomly." msgstr "Mehrere aktive DFÜ-Verbindungen gefunden, wähle eine davon aus." #: ../src/common/accelcmn.cpp:324 msgid "Shift+" msgstr "Umschalt+" #: ../src/generic/dirdlgg.cpp:170 msgid "Show &hidden directories" msgstr "Versteckte Verzeic&hnisse anzeigen" #: ../src/generic/filectrlg.cpp:1003 msgid "Show &hidden files" msgstr "V&ersteckte Dateien anzeigen" #: ../src/osx/menu_osx.cpp:605 ../src/osx/menu_osx.cpp:652 msgid "Show All" msgstr "Alles zeigen" #: ../src/common/stockitem.cpp:257 msgid "Show about dialog" msgstr "Zeige den \"Über\"-Dialog" #: ../src/html/helpwnd.cpp:502 msgid "Show all" msgstr "Alles zeigen" #: ../src/html/helpwnd.cpp:513 msgid "Show all items in index" msgstr "Alle Themen im Index anzeigen" #: ../src/generic/dirdlgg.cpp:105 msgid "Show hidden directories" msgstr "Versteckte Verzeichnisse anzeigen" #: ../src/html/helpwnd.cpp:671 msgid "Show/hide navigation panel" msgstr "Suchbaum ein-/ausschalten" #: ../src/richtext/richtextsymboldlg.cpp:421 #: ../src/richtext/richtextsymboldlg.cpp:423 msgid "Shows a Unicode subset." msgstr "Zeigt einen Unicode-Teilzeichensatz." #: ../src/richtext/richtextliststylepage.cpp:472 #: ../src/richtext/richtextliststylepage.cpp:474 #: ../src/richtext/richtextbulletspage.cpp:276 #: ../src/richtext/richtextbulletspage.cpp:278 msgid "Shows a preview of the bullet settings." msgstr "Zeigt eine Vorschau der Gliederungspunkteinstellungen." #: ../src/richtext/richtextfontpage.cpp:322 #: ../src/richtext/richtextfontpage.cpp:324 msgid "Shows a preview of the font settings." msgstr "Zeigt eine Vorschau der Schriftarteinstellungen." #: ../src/osx/carbon/fontdlg.cpp:580 ../src/osx/carbon/fontdlg.cpp:582 msgid "Shows a preview of the font." msgstr "Zeigt eine Vorschau der Schriftart." #: ../src/richtext/richtextindentspage.cpp:303 #: ../src/richtext/richtextindentspage.cpp:305 msgid "Shows a preview of the paragraph settings." msgstr "Zeigt eine Vorschau der Absatzeinstellungen." #: ../src/generic/fontdlgg.cpp:460 ../src/generic/fontdlgg.cpp:462 msgid "Shows the font preview." msgstr "Zeigt die Schriftvorschau." #: ../src/univ/themes/mono.cpp:516 msgid "Simple monochrome theme" msgstr "Einfaches einfarbiges Thema" #: ../src/richtext/richtextindentspage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:449 msgid "Single" msgstr "Einzel" #: ../src/generic/filectrlg.cpp:460 ../src/richtext/richtextformatdlg.cpp:356 #: ../src/richtext/richtextsizepage.cpp:299 msgid "Size" msgstr "Größe" #: ../src/osx/carbon/fontdlg.cpp:525 msgid "Size:" msgstr "Größe:" #: ../src/generic/progdlgg.cpp:262 ../src/generic/progdlgg.cpp:773 #: ../src/msw/progdlg.cpp:801 msgid "Skip" msgstr "Überspringen" #: ../src/generic/fontdlgg.cpp:330 msgid "Slant" msgstr "Geneigt" #: ../src/richtext/richtextfontpage.cpp:298 msgid "Small C&apitals" msgstr "Ka&pitälchen" #: ../src/richtext/richtextborderspage.cpp:543 msgid "Solid" msgstr "Fett" #: ../src/common/docview.cpp:1773 msgid "Sorry, could not open this file." msgstr "Bedauere, diese Datei konnte nicht geöffnet werden." #: ../src/common/prntbase.cpp:2027 ../src/common/prntbase.cpp:2035 msgid "Sorry, not enough memory to create a preview." msgstr "Nicht genug Speicher für Vorschau." #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "Sorry, that name is taken. Please choose another." msgstr "Bedauere, der Name ist bereits besetzt. Bitte anderen auswählen." #: ../src/common/docview.cpp:1796 msgid "Sorry, the format for this file is unknown." msgstr "Bedauere, das Format dieser Datei ist unbekannt." #: ../src/unix/sound.cpp:492 msgid "Sound data are in unsupported format." msgstr "Klangdaten haben ein nicht unterstütztes Format." #: ../src/unix/sound.cpp:477 #, c-format msgid "Sound file '%s' is in unsupported format." msgstr "Klangdatei '%s' besitzt ein nicht unterstütztes Format." #: ../src/richtext/richtextliststylepage.cpp:467 msgid "Spacing" msgstr "Zwischenraum" #: ../src/common/stockitem.cpp:197 msgid "Spell Check" msgstr "Rechtschreibprüfung" #: ../src/richtext/richtextliststylepage.cpp:490 #: ../src/richtext/richtextbulletspage.cpp:295 msgid "Standard" msgstr "Standard" #: ../src/common/paper.cpp:105 msgid "Statement, 5 1/2 x 8 1/2 in" msgstr "Statement, 5 1/2 x 8 1/2 Zoll" #: ../src/richtext/richtextsizepage.cpp:518 #: ../src/richtext/richtextsizepage.cpp:523 msgid "Static" msgstr "Statisch" #: ../src/generic/prntdlgg.cpp:204 msgid "Status:" msgstr "Status:" #: ../src/common/stockitem.cpp:198 msgid "Stop" msgstr "Stop" #: ../src/common/stockitem.cpp:199 msgid "Strikethrough" msgstr "Durchstreichen" #: ../src/common/colourcmn.cpp:45 #, c-format msgid "String To Colour : Incorrect colour specification : %s" msgstr "StringTo Colour: Falsche Farbangabe '%s'" #: ../src/richtext/richtextformatdlg.cpp:318 ../src/propgrid/advprops.cpp:647 msgid "Style" msgstr "Stil" #: ../include/wx/richtext/richtextstyledlg.h:47 msgid "Style Organiser" msgstr "Stil-Organisator" #: ../src/osx/carbon/fontdlg.cpp:534 msgid "Style:" msgstr "Stil:" #: ../src/richtext/richtextfontpage.cpp:312 msgid "Subscrip&t" msgstr "Tiefgestell&t" #: ../src/richtext/richtextfontpage.cpp:305 msgid "Supe&rscript" msgstr "Hochge&stellt" #: ../src/common/paper.cpp:151 msgid "SuperA/SuperA/A4 227 x 356 mm" msgstr "SuperA/SuperA/A4 227 x 356 mm" #: ../src/common/paper.cpp:152 msgid "SuperB/SuperB/A3 305 x 487 mm" msgstr "SuperB/SuperB/A3 305 x 487 mm" #: ../src/generic/fontdlgg.cpp:326 msgid "Swiss" msgstr "Swiss" #: ../src/richtext/richtextliststylepage.cpp:488 #: ../src/richtext/richtextbulletspage.cpp:293 msgid "Symbol" msgstr "Symbol" #: ../src/richtext/richtextliststylepage.cpp:288 #: ../src/richtext/richtextbulletspage.cpp:240 msgid "Symbol &font:" msgstr "Symbolschri&ftart:" #: ../include/wx/richtext/richtextsymboldlg.h:47 msgid "Symbols" msgstr "Symbole" #: ../src/common/accelcmn.cpp:63 msgid "TAB" msgstr "Tabulator" #: ../src/common/imagtiff.cpp:372 ../src/common/imagtiff.cpp:385 #: ../src/common/imagtiff.cpp:744 msgid "TIFF: Couldn't allocate memory." msgstr "TIFF: Speicheranforderung gescheitert." #: ../src/common/imagtiff.cpp:304 msgid "TIFF: Error loading image." msgstr "TIFF: Fehler beim Laden des Bildes." #: ../src/common/imagtiff.cpp:471 msgid "TIFF: Error reading image." msgstr "TIFF: Fehler beim Lesen des Bildes." #: ../src/common/imagtiff.cpp:611 msgid "TIFF: Error saving image." msgstr "TIFF: Schreibfehler beim Speichern." #: ../src/common/imagtiff.cpp:849 msgid "TIFF: Error writing image." msgstr "TIFF: Schreibfehler beim Speichern." #: ../src/common/imagtiff.cpp:358 msgid "TIFF: Image size is abnormally big." msgstr "TIFF: Bildgröße ist außergewöhnlich groß." #: ../src/richtext/richtextbuffer.cpp:10794 msgid "Table Properties" msgstr "Tabelleneigenschaften" #: ../src/common/paper.cpp:146 msgid "Tabloid Extra 11.69 x 18 in" msgstr "Tabloid Extra 11.69 x 18 Zoll" #: ../src/common/paper.cpp:103 msgid "Tabloid, 11 x 17 in" msgstr "Tabloid, 11 x 17 Zoll" #: ../src/richtext/richtextformatdlg.cpp:336 msgid "Tabs" msgstr "Tabulatoren" #: ../src/generic/fontdlgg.cpp:327 msgid "Teletype" msgstr "Schreibmaschine" #: ../src/common/docview.cpp:1878 msgid "Templates" msgstr "Vorlagen" #: ../src/osx/carbon/dataview.cpp:2373 msgid "Text renderer cannot render value; value type: " msgstr "Text Renderer kann Wert nicht darstellen; Wert Typ:" #: ../src/common/fmapbase.cpp:158 msgid "Thai (ISO-8859-11)" msgstr "Thai (ISO-8859-11)" #: ../src/common/ftp.cpp:620 msgid "The FTP server doesn't support passive mode." msgstr "Der FTP-Server unterstützt den passiven Transfermodus nicht." #: ../src/common/ftp.cpp:606 msgid "The FTP server doesn't support the PORT command." msgstr "Der FTP-Server unterstützt nicht das PORT-Kommando." #: ../src/richtext/richtextliststylepage.cpp:215 #: ../src/richtext/richtextliststylepage.cpp:217 #: ../src/richtext/richtextbulletspage.cpp:164 #: ../src/richtext/richtextbulletspage.cpp:166 msgid "The available bullet styles." msgstr "Die verfügbaren Gliederungspunktstile." #: ../src/richtext/richtextstyledlg.cpp:202 #: ../src/richtext/richtextstyledlg.cpp:204 msgid "The available styles." msgstr "Die verfügbaren Schriftarten." #: ../src/richtext/richtextbackgroundpage.cpp:139 #: ../src/richtext/richtextbackgroundpage.cpp:141 msgid "The background colour." msgstr "Die Hintergrundfarbe." #: ../src/richtext/richtextmarginspage.cpp:268 #: ../src/richtext/richtextmarginspage.cpp:270 msgid "The bottom margin size." msgstr "Die untere Randgröße." #: ../src/richtext/richtextmarginspage.cpp:382 #: ../src/richtext/richtextmarginspage.cpp:384 msgid "The bottom padding size." msgstr "Die untere Auffüllung." #: ../src/richtext/richtextsizepage.cpp:639 #: ../src/richtext/richtextsizepage.cpp:641 #: ../src/richtext/richtextsizepage.cpp:653 #: ../src/richtext/richtextsizepage.cpp:655 msgid "The bottom position." msgstr "Abstand nach unten." #: ../src/richtext/richtextliststylepage.cpp:254 #: ../src/richtext/richtextliststylepage.cpp:256 #: ../src/richtext/richtextliststylepage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:277 #: ../src/richtext/richtextbulletspage.cpp:204 #: ../src/richtext/richtextbulletspage.cpp:206 #: ../src/richtext/richtextbulletspage.cpp:227 #: ../src/richtext/richtextbulletspage.cpp:229 msgid "The bullet character." msgstr "Die Gliederungspunktzeichen." #: ../src/richtext/richtextsymboldlg.cpp:443 #: ../src/richtext/richtextsymboldlg.cpp:445 msgid "The character code." msgstr "Der Zeichencode." #: ../src/common/fontmap.cpp:203 #, c-format msgid "" "The charset '%s' is unknown. You may select\n" "another charset to replace it with or choose\n" "[Cancel] if it cannot be replaced" msgstr "" "Die Zeichensatz '%s' ist nicht bekannt. Wählen Sie \n" "einen Ersatzzeichensatz oder 'Abbrechen', \n" "falls er nicht ersetzt werden kann." #: ../src/msw/ole/dataobj.cpp:367 #, c-format msgid "The clipboard format '%d' doesn't exist." msgstr "Das Format '%d' für die Zwischenablage existiert nicht." #: ../src/richtext/richtextstylepage.cpp:128 #: ../src/richtext/richtextstylepage.cpp:130 msgid "The default style for the next paragraph." msgstr "Der voreingestellte Stil für den nächsten Absatz." #: ../src/generic/dirdlgg.cpp:231 #, c-format msgid "" "The directory '%s' does not exist\n" "Create it now?" msgstr "" "Verzeichnis '%s' existiert nicht.\n" "Soll es jetzt erstellt werden?" #: ../src/html/htmprint.cpp:271 #, c-format msgid "" "The document \"%s\" doesn't fit on the page horizontally and will be " "truncated if printed.\n" "\n" "Would you like to proceed with printing it nevertheless?" msgstr "" "Das Dokument \"%s\" passt nicht horizontal auf die Seite und wird beim " "Drucken abgeschnitten.\n" "\n" "Wollen sie dennoch mit dem Drucken fortfahren?" #: ../src/common/docview.cpp:1184 #, c-format msgid "" "The file '%s' doesn't exist and couldn't be opened.\n" "It has been removed from the most recently used files list." msgstr "" "Die Datei '%s' existiert nicht und konnte nicht geöffnet werden.\n" "Sie wurde aus der Liste kürzlich verwendeter Dateien entfernt." #: ../src/richtext/richtextindentspage.cpp:208 #: ../src/richtext/richtextindentspage.cpp:210 #: ../src/richtext/richtextliststylepage.cpp:394 #: ../src/richtext/richtextliststylepage.cpp:396 msgid "The first line indent." msgstr "Der Ersteinzug." #: ../src/gtk/utilsgtk.cpp:427 msgid "The following standard GTK+ options are also supported:\n" msgstr "" "Die nachfolgenden Standard GTK+ Optionen werden ebenfalls unterstützt:\n" #: ../src/generic/fontdlgg.cpp:414 ../src/generic/fontdlgg.cpp:416 msgid "The font colour." msgstr "Die Schriftfarbe." #: ../src/generic/fontdlgg.cpp:375 ../src/generic/fontdlgg.cpp:377 msgid "The font family." msgstr "Die Schriftart." #: ../src/richtext/richtextsymboldlg.cpp:405 #: ../src/richtext/richtextsymboldlg.cpp:407 msgid "The font from which to take the symbol." msgstr "Die Schriftart aus der das Symbol entnommen wurde." #: ../src/generic/fontdlgg.cpp:427 ../src/generic/fontdlgg.cpp:429 #: ../src/generic/fontdlgg.cpp:434 ../src/generic/fontdlgg.cpp:436 msgid "The font point size." msgstr "Die Schriftgröße in Punkt." #: ../src/osx/carbon/fontdlg.cpp:529 ../src/osx/carbon/fontdlg.cpp:531 msgid "The font size in points." msgstr "Die Schriftgröße in Punkt." #: ../src/richtext/richtextfontpage.cpp:190 #: ../src/richtext/richtextfontpage.cpp:192 msgid "The font size units, points or pixels." msgstr "Einheit der Schriftgröße in Punkt oder Pixel." #: ../src/generic/fontdlgg.cpp:386 ../src/generic/fontdlgg.cpp:388 msgid "The font style." msgstr "Die Schriftschitt." #: ../src/generic/fontdlgg.cpp:397 ../src/generic/fontdlgg.cpp:399 msgid "The font weight." msgstr "Die Schriftdicke." #: ../src/common/docview.cpp:1465 #, c-format msgid "The format of file '%s' couldn't be determined." msgstr "Das Format der Datei '%s' konnte nicht bestimmt werden." #: ../src/richtext/richtextindentspage.cpp:199 #: ../src/richtext/richtextindentspage.cpp:201 #: ../src/richtext/richtextliststylepage.cpp:385 #: ../src/richtext/richtextliststylepage.cpp:387 msgid "The left indent." msgstr "Der Linkseinzug." #: ../src/richtext/richtextmarginspage.cpp:195 #: ../src/richtext/richtextmarginspage.cpp:197 msgid "The left margin size." msgstr "Der linke Rand." #: ../src/richtext/richtextmarginspage.cpp:309 #: ../src/richtext/richtextmarginspage.cpp:311 msgid "The left padding size." msgstr "Die linke Auffüllung." #: ../src/richtext/richtextsizepage.cpp:534 #: ../src/richtext/richtextsizepage.cpp:536 #: ../src/richtext/richtextsizepage.cpp:548 #: ../src/richtext/richtextsizepage.cpp:550 msgid "The left position." msgstr "Abstand nach links." #: ../src/richtext/richtextindentspage.cpp:288 #: ../src/richtext/richtextindentspage.cpp:290 #: ../src/richtext/richtextliststylepage.cpp:462 #: ../src/richtext/richtextliststylepage.cpp:464 msgid "The line spacing." msgstr "Der Zeilenabstand." #: ../src/richtext/richtextbulletspage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:270 msgid "The list item number." msgstr "Die Nummer des Listenelements" #: ../src/msw/ole/automtn.cpp:653 msgid "The locale ID is unknown." msgstr "Die lokale ID ist unbekannt." #: ../src/richtext/richtextsizepage.cpp:366 #: ../src/richtext/richtextsizepage.cpp:368 msgid "The object height." msgstr "Die Objekthöhe." #: ../src/richtext/richtextsizepage.cpp:474 #: ../src/richtext/richtextsizepage.cpp:476 msgid "The object maximum height." msgstr "Die maximale Objekthöhe." #: ../src/richtext/richtextsizepage.cpp:447 #: ../src/richtext/richtextsizepage.cpp:449 msgid "The object maximum width." msgstr "Die maximale Objektbreite." #: ../src/richtext/richtextsizepage.cpp:420 #: ../src/richtext/richtextsizepage.cpp:422 msgid "The object minimum height." msgstr "Die minimale Objekthöhe." #: ../src/richtext/richtextsizepage.cpp:393 #: ../src/richtext/richtextsizepage.cpp:395 msgid "The object minimum width." msgstr "Die minimale Objektbreite." #: ../src/richtext/richtextsizepage.cpp:332 #: ../src/richtext/richtextsizepage.cpp:334 msgid "The object width." msgstr "Die Objektbreite." #: ../src/richtext/richtextindentspage.cpp:227 #: ../src/richtext/richtextindentspage.cpp:229 msgid "The outline level." msgstr "Die Umrandungsebene." #: ../src/common/log.cpp:281 #, c-format msgid "The previous message repeated %lu time." msgid_plural "The previous message repeated %lu times." msgstr[0] "Die vorangegangene Nachricht wurde ein Mal wiederholt." msgstr[1] "Die vorangegangene Nachricht wurde %lu Mal wiederholt." #: ../src/common/log.cpp:274 msgid "The previous message repeated once." msgstr "Die vorangegangene Nachricht wurde ein Mal wiederholt." #: ../src/gtk/print.cpp:931 ../src/gtk/print.cpp:1114 msgid "The print dialog returned an error." msgstr "Der Drucken Dialog hat einen Fehler zurückgegeben." #: ../src/richtext/richtextsymboldlg.cpp:462 #: ../src/richtext/richtextsymboldlg.cpp:464 msgid "The range to show." msgstr "Der anzuzeigende Bereich." #: ../src/generic/dbgrptg.cpp:322 msgid "" "The report contains the files listed below. If any of these files contain " "private information,\n" "please uncheck them and they will be removed from the report.\n" msgstr "" "Der Fehlerbericht enthält die unten aufgelisteten Dateien. Bitte stellen Sie " "sicher, dass alle Dateien,\n" "die vertrauliche Informationen enthalten, nicht ausgewählt sind; sie werden " "dann aus dem Fehlerbericht entfernt.\n" #: ../src/common/cmdline.cpp:1083 #, c-format msgid "The required parameter '%s' was not specified." msgstr "Der benötigte Parameter '%s' wurde nicht angegeben." #: ../src/richtext/richtextindentspage.cpp:217 #: ../src/richtext/richtextindentspage.cpp:219 #: ../src/richtext/richtextliststylepage.cpp:403 #: ../src/richtext/richtextliststylepage.cpp:405 msgid "The right indent." msgstr "Der Rechtseinzug." #: ../src/richtext/richtextmarginspage.cpp:220 #: ../src/richtext/richtextmarginspage.cpp:222 msgid "The right margin size." msgstr "Der rechte Rand." #: ../src/richtext/richtextmarginspage.cpp:334 #: ../src/richtext/richtextmarginspage.cpp:336 msgid "The right padding size." msgstr "Die rechte Auffüllung." #: ../src/richtext/richtextsizepage.cpp:604 #: ../src/richtext/richtextsizepage.cpp:606 #: ../src/richtext/richtextsizepage.cpp:618 #: ../src/richtext/richtextsizepage.cpp:620 msgid "The right position." msgstr "Abstand nach rechts." #: ../src/richtext/richtextindentspage.cpp:267 #: ../src/richtext/richtextliststylepage.cpp:439 #: ../src/richtext/richtextliststylepage.cpp:441 msgid "The spacing after the paragraph." msgstr "Der Abstand nach einem Absatz." #: ../src/richtext/richtextindentspage.cpp:257 #: ../src/richtext/richtextindentspage.cpp:259 #: ../src/richtext/richtextliststylepage.cpp:430 #: ../src/richtext/richtextliststylepage.cpp:432 msgid "The spacing before the paragraph." msgstr "Der Abstand vor einem Absatz." #: ../src/richtext/richtextstylepage.cpp:108 #: ../src/richtext/richtextstylepage.cpp:110 msgid "The style name." msgstr "Die Stilname." #: ../src/richtext/richtextstylepage.cpp:118 #: ../src/richtext/richtextstylepage.cpp:120 msgid "The style on which this style is based." msgstr "Der Stil auf dem dieser Stil basiert." #: ../src/richtext/richtextstyledlg.cpp:214 #: ../src/richtext/richtextstyledlg.cpp:216 msgid "The style preview." msgstr "Die Schriftvorschau." #: ../src/msw/ole/automtn.cpp:669 msgid "The system cannot find the file specified." msgstr "Das System kann die aufgeführte Datei nicht finden." #: ../src/richtext/richtexttabspage.cpp:118 #: ../src/richtext/richtexttabspage.cpp:120 msgid "The tab position." msgstr "Die Tabulatorposition." #: ../src/richtext/richtexttabspage.cpp:124 msgid "The tab positions." msgstr "Die Tabulatorpositionen." #: ../src/richtext/richtextctrl.cpp:2705 msgid "The text couldn't be saved." msgstr "Der Text konnte nicht gesichert werden." #: ../src/richtext/richtextmarginspage.cpp:243 #: ../src/richtext/richtextmarginspage.cpp:245 msgid "The top margin size." msgstr "Der obere Rand." #: ../src/richtext/richtextmarginspage.cpp:357 #: ../src/richtext/richtextmarginspage.cpp:359 msgid "The top padding size." msgstr "Die obere Füllung." #: ../src/richtext/richtextsizepage.cpp:569 #: ../src/richtext/richtextsizepage.cpp:571 #: ../src/richtext/richtextsizepage.cpp:583 #: ../src/richtext/richtextsizepage.cpp:585 msgid "The top position." msgstr "Abstand nach oben." #: ../src/common/cmdline.cpp:1061 #, c-format msgid "The value for the option '%s' must be specified." msgstr "Der Wert für die Option '%s' muss angegeben werden." #: ../src/msw/dialup.cpp:452 #, c-format msgid "" "The version of remote access service (RAS) installed on this machine is too " "old, please upgrade (the following required function is missing: %s)." msgstr "" "Die Version des auf dieser Maschine installierten RAS-Dienstes ist zu alt. " "Bitte auf den neusten Stand bringen (die folgende benötigte Funktion fehlt: " "%s)." #: ../src/gtk/print.cpp:959 msgid "The wxGtkPrinterDC cannot be used." msgstr "wxGtkPrinterDC kann nicht benutzt werden." #: ../src/osx/carbon/dataview.cpp:1340 msgid "There is no column or renderer for the specified column index." msgstr "" "Es existiert keine Zeile oder Darstellung für den festgelegten Zeilenindex." #: ../src/richtext/richtextprint.cpp:614 ../src/html/htmprint.cpp:735 msgid "" "There was a problem during page setup: you may need to set a default printer." msgstr "" "Es gab ein Problem bei der Seiteneinrichtung: eventuell müssen Sie einen\n" "Standarddrucker einrichten." #: ../src/html/htmprint.cpp:255 msgid "" "This document doesn't fit on the page horizontally and will be truncated " "when it is printed." msgstr "" "Dieses Dokument passt nicht horizontal auf die Seite und wird beim drucken " "abgeschnitten." #: ../src/common/image.cpp:2716 #, c-format msgid "This is not a %s." msgstr "Dies ist kein %s." #: ../src/common/wincmn.cpp:1653 msgid "This platform does not support background transparency." msgstr "Diese Platform unterstützt die Hintergrundtransparenz nicht." #: ../src/gtk/window.cpp:4317 msgid "" "This program was compiled with a too old version of GTK+, please rebuild " "with GTK+ 2.12 or newer." msgstr "" "Dieses Programm wurde mit einer zu alten Version von GTK+ übersetzt, bitte " "mit GTK+2.12 oder neuer erstellen." #: ../src/msw/datecontrols.cpp:59 msgid "" "This system doesn't support date controls, please upgrade your version of " "comctl32.dll" msgstr "" "Dieses System unterstützt nicht die Komponente zur Darstellung der " "Datumsauswahl. Installieren Sie bitte eine neuere Version der comctl32.dll." #: ../src/msw/thread.cpp:1300 msgid "" "Thread module initialization failed: cannot store value in thread local " "storage" msgstr "" "Thread-Modul-Initialisierung gescheitert: Wert konnte nicht im lokalen " "Speicherbereich des Thread gespeichert werden" #: ../src/unix/threadpsx.cpp:1758 msgid "Thread module initialization failed: failed to create thread key" msgstr "" "Thread-Modul-Initialisierung gescheitert: Thread-Schlüssel konnte nicht " "erstellt werden" #: ../src/msw/thread.cpp:1288 msgid "" "Thread module initialization failed: impossible to allocate index in thread " "local storage" msgstr "" "Thread-Modul-Initialisierung gescheitert: Index konnte nicht im lokalen " "Speicherbereich des Thread allokiert werden" #: ../src/unix/threadpsx.cpp:1038 msgid "Thread priority setting is ignored." msgstr "Thread-Prioritätseinstellung wird ignoriert" #: ../src/msw/mdi.cpp:172 msgid "Tile &Horizontally" msgstr "Horizontal anordnen" #: ../src/msw/mdi.cpp:173 msgid "Tile &Vertically" msgstr "Vertikal anordnen" #: ../src/common/ftp.cpp:202 msgid "Timeout while waiting for FTP server to connect, try passive mode." msgstr "" "Timeout beim Warten auf eine Verbindung zum FTP-Server, versuchen Sie " "passiven Modus." #: ../src/os2/timer.cpp:99 msgid "Timer creation failed." msgstr "Konnte Zeitgeber nicht anlegen." #: ../src/generic/tipdlg.cpp:220 msgid "Tip of the Day" msgstr "Tipp des Tages" #: ../src/generic/tipdlg.cpp:154 msgid "Tips not available, sorry!" msgstr "Bedauere, Tipps stehen nicht zur Verfügung" #: ../src/generic/prntdlgg.cpp:242 msgid "To:" msgstr "Bis:" #: ../src/osx/carbon/dataview.cpp:2451 msgid "Toggle renderer cannot render value; value type: " msgstr "Umschalt Renderer konnte den Wert nicht darstellen; Wert Typ:" #: ../src/richtext/richtextbuffer.cpp:7983 msgid "Too many EndStyle calls!" msgstr "Zu viele EndStyle-Aufrufe!" #: ../src/common/imagpng.cpp:286 msgid "Too many colours in PNG, the image may be slightly blurred." msgstr "" "Zu viele Farben in PNG; das Bild wird vielleicht verschmiert angezeigt." #: ../src/richtext/richtextsizepage.cpp:286 #: ../src/richtext/richtextsizepage.cpp:290 ../src/common/stockitem.cpp:200 msgid "Top" msgstr "Oben" #: ../src/generic/prntdlgg.cpp:881 msgid "Top margin (mm):" msgstr "Oberer Rand (mm):" #: ../src/generic/aboutdlgg.cpp:79 msgid "Translations by " msgstr "Übersetzungen von " #: ../src/generic/aboutdlgg.cpp:188 msgid "Translators" msgstr "Übersetzer" #: ../src/propgrid/propgrid.cpp:173 msgid "True" msgstr "Wahr" #: ../src/common/fs_mem.cpp:227 #, c-format msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!" msgstr "" "Beim Versuch, die Datei '%s' aus dem VFS-Speicher zu entfernen, wurde " "festgestellt, dass sie gar nicht geladen war!" #: ../src/common/fmapbase.cpp:156 msgid "Turkish (ISO-8859-9)" msgstr "Türkisch (ISO-8859-9)" #: ../src/generic/filectrlg.cpp:461 msgid "Type" msgstr "Typ" #: ../src/richtext/richtextfontpage.cpp:160 #: ../src/richtext/richtextfontpage.cpp:162 msgid "Type a font name." msgstr "Schriftart eingeben." #: ../src/richtext/richtextfontpage.cpp:175 #: ../src/richtext/richtextfontpage.cpp:177 msgid "Type a size in points." msgstr "Größe in Punkt angeben." #: ../src/msw/ole/automtn.cpp:665 #, c-format msgid "Type mismatch in argument %u." msgstr "Typfehler in Argument %u." #: ../src/common/xtixml.cpp:356 ../src/common/xtixml.cpp:509 #: ../src/common/xtistrm.cpp:322 msgid "Type must have enum - long conversion" msgstr "Typ muss eine enum-long Umwandlung haben" #: ../src/propgrid/propgridiface.cpp:382 #, c-format msgid "" "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", NOT " "\"%s\"." msgstr "" "Die Typoperation \"%s\" ist fehlgeschlagen: Die Eigenschaft bezeichnet mit " "\"%s\" ist vom Typ \"%s\", NICHT \"%s\"." #: ../src/common/accelcmn.cpp:58 msgid "UP" msgstr "HOCH" #: ../src/common/paper.cpp:134 msgid "US Std Fanfold, 14 7/8 x 11 in" msgstr "US Std Endlospapier, 14 7/8 x 11 Zoll" #: ../src/common/fmapbase.cpp:196 msgid "US-ASCII" msgstr "US-ASCII" #: ../src/unix/fswatcher_inotify.cpp:109 msgid "Unable to add inotify watch" msgstr "Nicht möglich Benachrichtigung der Überwachung hinzuzufügen" #: ../src/unix/fswatcher_kqueue.cpp:136 msgid "Unable to add kqueue watch" msgstr "Fehlgeschlagen eine Beobachtung an die Kqueue anzuhängen" #: ../include/wx/msw/private/fswatcher.h:142 msgid "Unable to associate handle with I/O completion port" msgstr "" "Nicht möglich das Handle mit dem I/O Beendigungsport in Verbindung zu bringen" #: ../include/wx/msw/private/fswatcher.h:125 msgid "Unable to close I/O completion port handle" msgstr "Konnte I/O Vervollständigungs Port-Handle nicht schließen." #: ../src/unix/fswatcher_inotify.cpp:97 msgid "Unable to close inotify instance" msgstr "Konnte Inotify Instanz nicht schließen" #: ../include/wx/unix/private/fswatcher_kqueue.h:74 #, c-format msgid "Unable to close path '%s'" msgstr "Konnte Pfad '%s' nicht schließen" #: ../include/wx/msw/private/fswatcher.h:48 #, c-format msgid "Unable to close the handle for '%s'" msgstr "Konnte das Handle für '%s' nicht schließen" #: ../include/wx/msw/private/fswatcher.h:240 msgid "Unable to create I/O completion port" msgstr "Konnte den I/O Vervollständigungs-Port nicht erzeugen" #: ../src/msw/fswatcher.cpp:84 msgid "Unable to create IOCP worker thread" msgstr "Erzeugen des IOCP Arbeitsthreads fehlgeschlagen" #: ../src/unix/fswatcher_inotify.cpp:74 msgid "Unable to create inotify instance" msgstr "Erzeugen der Inotify Instanz fehlgeschlagen" #: ../src/unix/fswatcher_kqueue.cpp:97 msgid "Unable to create kqueue instance" msgstr "Erzeugen der kqueue Instanz fehlgeschlagen" #: ../include/wx/msw/private/fswatcher.h:229 msgid "Unable to dequeue completion packet" msgstr "Nicht möglich das Kompletierungspaket aufzulösen" #: ../src/unix/fswatcher_kqueue.cpp:185 msgid "Unable to get events from kqueue" msgstr "Ereignisse von Kqueue zu erhalten fehlgeschlagen" #: ../src/osx/carbon/dataview.cpp:1903 msgid "Unable to handle native drag&drop data" msgstr "Nicht möglich mit ursprüngliche Drag&Drop Daten umzugehen" #: ../src/gtk/app.cpp:439 msgid "Unable to initialize GTK+, is DISPLAY set properly?" msgstr "Nicht möglich GTK+ zu initialisieren, ist DISPLAY korrekt gesetzt?" #: ../src/gtk/app.cpp:276 msgid "Unable to initialize Hildon program" msgstr "Konnte das Hildon Programm nicht initialisieren" #: ../include/wx/unix/private/fswatcher_kqueue.h:57 #, c-format msgid "Unable to open path '%s'" msgstr "Pfad '%s' lässt sich nicht öffnen" #: ../src/html/htmlwin.cpp:561 #, c-format msgid "Unable to open requested HTML document: %s" msgstr "Das angeforderte HTML-Dokument konnte nicht geöffnet werden: %s" #: ../src/unix/sound.cpp:368 msgid "Unable to play sound asynchronously." msgstr "Der Klang kann nicht asynchron abgespielt werden." #: ../include/wx/msw/private/fswatcher.h:207 msgid "Unable to post completion status" msgstr "Nicht möglich den Ausführungsstatus zu senden" #: ../src/unix/fswatcher_inotify.cpp:530 msgid "Unable to read from inotify descriptor" msgstr "Konnte nicht vom Inotify Beschreibungselement lesen" #: ../src/unix/fswatcher_inotify.cpp:132 msgid "Unable to remove inotify watch" msgstr "Zurücksetzen der Inotify Überwachung nicht möglich" #: ../src/unix/fswatcher_kqueue.cpp:153 msgid "Unable to remove kqueue watch" msgstr "Zurücksetzen der Kqueue Überwachung nicht möglich" #: ../src/msw/fswatcher.cpp:168 #, c-format msgid "Unable to set up watch for '%s'" msgstr "Konnte die Überwachung für '%s' nicht aufsetzen." #: ../src/msw/fswatcher.cpp:91 msgid "Unable to start IOCP worker thread" msgstr "Nicht möglich den Arbeits Thread IOCP zu starten" #: ../src/common/stockitem.cpp:201 msgid "Undelete" msgstr "Löschen rückgängig machen" #: ../src/common/stockitem.cpp:202 msgid "Underline" msgstr "Unterstreichen" #: ../src/richtext/richtextfontpage.cpp:341 ../src/osx/carbon/fontdlg.cpp:556 #: ../src/propgrid/advprops.cpp:655 msgid "Underlined" msgstr "Unterstrichen" #: ../src/common/stockitem.cpp:203 ../src/stc/stc_i18n.cpp:15 msgid "Undo" msgstr "Rückgängig" #: ../src/common/stockitem.cpp:265 msgid "Undo last action" msgstr "Letzte Aktion zurücknehmen" #: ../src/common/cmdline.cpp:864 #, c-format msgid "Unexpected characters following option '%s'." msgstr "Unerwartete Zeichen folgen der Option '%s'." #: ../src/unix/fswatcher_inotify.cpp:261 #, c-format msgid "Unexpected event for \"%s\": no matching watch descriptor." msgstr "" "Unerwartetes Ereignis für \"%s\": Kein passender Überwachungs-Deskriptor." #: ../src/common/cmdline.cpp:1024 #, c-format msgid "Unexpected parameter '%s'" msgstr "Unerwarteter Parameter '%s'" #: ../include/wx/msw/private/fswatcher.h:148 msgid "Unexpectedly new I/O completion port was created" msgstr "Neue unerwartete I/O Ausführungs Port wurde erstellt" #: ../src/msw/fswatcher.cpp:70 msgid "Ungraceful worker thread termination" msgstr "Unfreundliche Beendigung des Arbeitsthreads" #: ../src/richtext/richtextsymboldlg.cpp:459 #: ../src/richtext/richtextsymboldlg.cpp:460 #: ../src/richtext/richtextsymboldlg.cpp:461 msgid "Unicode" msgstr "Unicode" #: ../src/common/fmapbase.cpp:185 ../src/common/fmapbase.cpp:191 msgid "Unicode 16 bit (UTF-16)" msgstr "Unicode 16 bit (UTF-16)" #: ../src/common/fmapbase.cpp:190 msgid "Unicode 16 bit Big Endian (UTF-16BE)" msgstr "Unicode 16 Bit Big Endian (UTF-16BE)" #: ../src/common/fmapbase.cpp:186 msgid "Unicode 16 bit Little Endian (UTF-16LE)" msgstr "Unicode 16 Bit Little Endian (UTF-16LE)" #: ../src/common/fmapbase.cpp:187 ../src/common/fmapbase.cpp:193 msgid "Unicode 32 bit (UTF-32)" msgstr "Unicode 32 Bit (UTF-32)" #: ../src/common/fmapbase.cpp:192 msgid "Unicode 32 bit Big Endian (UTF-32BE)" msgstr "Unicode 32 Bit Big Endian (UTF-32BE)" #: ../src/common/fmapbase.cpp:188 msgid "Unicode 32 bit Little Endian (UTF-32LE)" msgstr "Unicode 32 Bit Little Endian (UTF-32LE)" #: ../src/common/fmapbase.cpp:182 msgid "Unicode 7 bit (UTF-7)" msgstr "Unicode 7 bit (UTF-7)" #: ../src/common/fmapbase.cpp:183 msgid "Unicode 8 bit (UTF-8)" msgstr "Unicode 8 bit (UTF-8)" #: ../src/common/stockitem.cpp:204 msgid "Unindent" msgstr "Einrücken aufheben" #: ../src/richtext/richtextborderspage.cpp:373 #: ../src/richtext/richtextborderspage.cpp:375 msgid "Units for the bottom border width." msgstr "Einheit für die untere Randbreite." #: ../src/richtext/richtextmarginspage.cpp:278 #: ../src/richtext/richtextmarginspage.cpp:280 msgid "Units for the bottom margin." msgstr "Einheiten für den unteren Bundsteg" #: ../src/richtext/richtextborderspage.cpp:517 #: ../src/richtext/richtextborderspage.cpp:519 msgid "Units for the bottom outline width." msgstr "Einheiten für die untere Umrissbreite." #: ../src/richtext/richtextmarginspage.cpp:392 #: ../src/richtext/richtextmarginspage.cpp:394 msgid "Units for the bottom padding." msgstr "Einheiten für die untere Auffüllung." #: ../src/richtext/richtextsizepage.cpp:664 #: ../src/richtext/richtextsizepage.cpp:666 msgid "Units for the bottom position." msgstr "Einheit für den Abstand nach unten." #: ../src/richtext/richtextborderspage.cpp:283 #: ../src/richtext/richtextborderspage.cpp:285 msgid "Units for the left border width." msgstr "Einheiten für die linke Randbreite." #: ../src/richtext/richtextmarginspage.cpp:205 #: ../src/richtext/richtextmarginspage.cpp:207 msgid "Units for the left margin." msgstr "Einheiten für den linken Bundsteg" #: ../src/richtext/richtextborderspage.cpp:427 #: ../src/richtext/richtextborderspage.cpp:429 msgid "Units for the left outline width." msgstr "Einheiten für die linke Umrissbreite." #: ../src/richtext/richtextmarginspage.cpp:319 #: ../src/richtext/richtextmarginspage.cpp:321 msgid "Units for the left padding." msgstr "Einheiten für die linke Auffüllung" #: ../src/richtext/richtextsizepage.cpp:559 #: ../src/richtext/richtextsizepage.cpp:561 msgid "Units for the left position." msgstr "Einheit für den Abstand nach links." #: ../src/richtext/richtextsizepage.cpp:485 #: ../src/richtext/richtextsizepage.cpp:487 msgid "Units for the maximum object height." msgstr "Einheiten für die maximale Objekthöhe." #: ../src/richtext/richtextsizepage.cpp:458 #: ../src/richtext/richtextsizepage.cpp:460 msgid "Units for the maximum object width." msgstr "Einheiten für die maximale Objektbreite." #: ../src/richtext/richtextsizepage.cpp:431 #: ../src/richtext/richtextsizepage.cpp:433 msgid "Units for the minimum object height." msgstr "Einheiten für die minximale Objekthöhe." #: ../src/richtext/richtextsizepage.cpp:404 #: ../src/richtext/richtextsizepage.cpp:406 msgid "Units for the minimum object width." msgstr "Einheiten für die minimale Objektbreite." #: ../src/richtext/richtextsizepage.cpp:377 #: ../src/richtext/richtextsizepage.cpp:379 msgid "Units for the object height." msgstr "Einheiten für dir Objekthöhe." #: ../src/richtext/richtextsizepage.cpp:343 #: ../src/richtext/richtextsizepage.cpp:345 msgid "Units for the object width." msgstr "Einheiten für die Objektbreite." #: ../src/richtext/richtextborderspage.cpp:313 #: ../src/richtext/richtextborderspage.cpp:315 msgid "Units for the right border width." msgstr "Einheiten für die rechte Randbreite." #: ../src/richtext/richtextmarginspage.cpp:230 #: ../src/richtext/richtextmarginspage.cpp:232 msgid "Units for the right margin." msgstr "Einheiten für den rechten Bundsteg." #: ../src/richtext/richtextborderspage.cpp:457 #: ../src/richtext/richtextborderspage.cpp:459 msgid "Units for the right outline width." msgstr "Einheiten für die rechte Umrissbreite." #: ../src/richtext/richtextmarginspage.cpp:344 #: ../src/richtext/richtextmarginspage.cpp:346 msgid "Units for the right padding." msgstr "Einheit für die Auffüllung rechts." #: ../src/richtext/richtextsizepage.cpp:629 #: ../src/richtext/richtextsizepage.cpp:631 msgid "Units for the right position." msgstr "Einheit des Abstands nach rechts." #: ../src/richtext/richtextborderspage.cpp:343 #: ../src/richtext/richtextborderspage.cpp:345 msgid "Units for the top border width." msgstr "Einheit für die Breite des oberen Randes." #: ../src/richtext/richtextmarginspage.cpp:253 #: ../src/richtext/richtextmarginspage.cpp:255 msgid "Units for the top margin." msgstr "Einheiten für den oberen Rand." #: ../src/richtext/richtextborderspage.cpp:487 #: ../src/richtext/richtextborderspage.cpp:489 msgid "Units for the top outline width." msgstr "Einheit für die Breite des obren Umrisses." #: ../src/richtext/richtextmarginspage.cpp:367 #: ../src/richtext/richtextmarginspage.cpp:369 msgid "Units for the top padding." msgstr "Einheit für die obere Auffüllung" #: ../src/richtext/richtextsizepage.cpp:594 #: ../src/richtext/richtextsizepage.cpp:596 msgid "Units for the top position." msgstr "Einheit des Abstands nach oben." #: ../src/generic/progdlgg.cpp:382 ../src/generic/progdlgg.cpp:655 msgid "Unknown" msgstr "Unbekannt" #: ../src/msw/dde.cpp:1177 #, c-format msgid "Unknown DDE error %08x" msgstr "Unbekannter DDE-Fehler %08x" #: ../src/common/xtistrm.cpp:414 msgid "Unknown Object passed to GetObjectClassInfo" msgstr "Unbekanntes Objekt an GetObjectClassInfo übergeben" #: ../src/common/imagpng.cpp:614 #, c-format msgid "Unknown PNG resolution unit %d" msgstr "Unbekannte Einheit für die PNG Auflösung %d" #: ../src/common/xtixml.cpp:327 #, c-format msgid "Unknown Property %s" msgstr "Unbekannte Eigenschaft %s" #: ../src/common/imagtiff.cpp:532 #, c-format msgid "Unknown TIFF resolution unit %d ignored" msgstr "Unbekannter TIFF Auflösungseinheit %d ignoriert" #: ../src/osx/carbon/dataview.cpp:1978 msgid "Unknown data format" msgstr "Unbekanntes Datenformat" #: ../src/unix/dlunix.cpp:325 msgid "Unknown dynamic library error" msgstr "Unbekannter Fehler bei Behandlung dynamischer Bibliothek" #: ../src/common/fmapbase.cpp:810 #, c-format msgid "Unknown encoding (%d)" msgstr "Unbekannte Kodierung (%d)" #: ../src/msw/ole/automtn.cpp:677 #, c-format msgid "Unknown error %08x" msgstr "Unbekannter Fehler %08x" #: ../src/msw/ole/automtn.cpp:636 msgid "Unknown exception" msgstr "Unbekannte Ausnahme" #: ../src/common/image.cpp:2701 msgid "Unknown image data format." msgstr "Unbekanntes Bilddateiformat" #: ../src/common/cmdline.cpp:749 #, c-format msgid "Unknown long option '%s'" msgstr "Unbekannte 'long'-Option '%s'" #: ../src/msw/ole/automtn.cpp:620 msgid "Unknown name or named argument." msgstr "Unbekannter Name oder unbekanntes Argument." #: ../src/common/cmdline.cpp:764 ../src/common/cmdline.cpp:786 #, c-format msgid "Unknown option '%s'" msgstr "Unbekannte Option '%s'" #: ../src/common/mimecmn.cpp:230 #, c-format msgid "Unmatched '{' in an entry for mime type %s." msgstr "Unzutreffendes '{'-Zeichen in einem Eintrag des MIME-Typs %s." #: ../src/common/cmdproc.cpp:262 ../src/common/cmdproc.cpp:288 #: ../src/common/cmdproc.cpp:308 msgid "Unnamed command" msgstr "Unbenanntes Kommando" #: ../src/propgrid/propgrid.cpp:398 msgid "Unspecified" msgstr "Nicht angegeben" #: ../src/msw/clipbrd.cpp:271 ../src/msw/clipbrd.cpp:439 msgid "Unsupported clipboard format." msgstr "Nicht unterstütztes Format in der Zwischenablage." #: ../src/common/appcmn.cpp:249 #, c-format msgid "Unsupported theme '%s'." msgstr "Unbekanntes Thema '%s'." #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:205 msgid "Up" msgstr "Hoch" #: ../src/richtext/richtextliststylepage.cpp:483 #: ../src/richtext/richtextbulletspage.cpp:288 msgid "Upper case letters" msgstr "Großbuchstaben" #: ../src/richtext/richtextliststylepage.cpp:485 #: ../src/richtext/richtextbulletspage.cpp:290 msgid "Upper case roman numerals" msgstr "Römische Ziffern in Großbuchstaben" #: ../src/common/cmdline.cpp:1155 #, c-format msgid "Usage: %s" msgstr "Verwendung: %s" #: ../src/richtext/richtextindentspage.cpp:169 #: ../src/richtext/richtextindentspage.cpp:171 #: ../src/richtext/richtextliststylepage.cpp:358 #: ../src/richtext/richtextliststylepage.cpp:360 msgid "Use the current alignment setting." msgstr "Benutze die aktuellen Einstellungen für die Ausrichtung." #: ../src/osx/carbon/dataview.cpp:2658 ../src/osx/carbon/dataview.cpp:2723 msgid "Valid pointer to native data view control does not exist" msgstr "" "Es existiert kein gültiger Zeiger auf das Kontrollelement zur der " "ursprünglichen Daten" #: ../src/common/valtext.cpp:174 msgid "Validation conflict" msgstr "Verifizierungs-Konflikt" #: ../src/propgrid/manager.cpp:238 msgid "Value" msgstr "Wert" #: ../src/propgrid/props.cpp:384 #, c-format msgid "Value must be %s or higher." msgstr "Wert muss %s oder höher sein." #: ../src/propgrid/props.cpp:411 #, c-format msgid "Value must be %s or less." msgstr "Wert muss %s oder kleiner sein." #: ../src/propgrid/props.cpp:388 ../src/propgrid/props.cpp:415 #, c-format msgid "Value must be between %s and %s." msgstr "Wert muss zwischen %s und %s liegen." #: ../src/generic/aboutdlgg.cpp:128 msgid "Version " msgstr "Version " #: ../src/richtext/richtextsizepage.cpp:291 #: ../src/richtext/richtextsizepage.cpp:293 msgid "Vertical alignment." msgstr "Vertikalabgleich" #: ../src/generic/filedlgg.cpp:216 msgid "View files as a detailed view" msgstr "Dateien mit Details anzeigen" #: ../src/generic/filedlgg.cpp:214 msgid "View files as a list view" msgstr "Dateien als Liste anzeigen" #: ../src/common/docview.cpp:1952 msgid "Views" msgstr "Darstellung" #: ../src/common/accelcmn.cpp:108 msgid "WINDOWS_LEFT" msgstr "WINDOWS_LINKS" #: ../src/common/accelcmn.cpp:110 msgid "WINDOWS_MENU" msgstr "WINDOWS_MENÜ" #: ../src/common/accelcmn.cpp:109 msgid "WINDOWS_RIGHT" msgstr "WINDOWS_RECHTS" #: ../src/unix/epolldispatcher.cpp:213 #, c-format msgid "Waiting for IO on epoll descriptor %d failed" msgstr "" "Warten auf ein Eingabe-/Ausgabe Epoll Beschreibungselement %d fehlgeschlagen" #: ../src/common/log.cpp:227 msgid "Warning: " msgstr "Warnung: " #: ../src/propgrid/advprops.cpp:651 msgid "Weight" msgstr "Dicke" #: ../src/common/fmapbase.cpp:148 msgid "Western European (ISO-8859-1)" msgstr "Westeuropäisch (ISO-8859-1)" #: ../src/common/fmapbase.cpp:162 msgid "Western European with Euro (ISO-8859-15)" msgstr "Westeuropäisch mit Euro (ISO-8859-15)" #: ../src/generic/fontdlgg.cpp:446 ../src/generic/fontdlgg.cpp:448 msgid "Whether the font is underlined." msgstr "Ob der Schrifttyp unterstrichen ist." #: ../src/generic/fdrepdlg.cpp:144 msgid "Whole word" msgstr "Ganzes Wort" #: ../src/html/helpwnd.cpp:547 msgid "Whole words only" msgstr "Nur ganze Worte" #: ../src/univ/themes/win32.cpp:1102 msgid "Win32 theme" msgstr "Win32 Thema" #: ../src/msw/utils.cpp:1220 msgid "Win32s on Windows 3.1" msgstr "Win32s on Windows 3.1" #: ../src/msw/utils.cpp:1270 msgid "Windows 2000" msgstr "Windows 2000" #: ../src/msw/utils.cpp:1302 msgid "Windows 7" msgstr "Windows 7" #: ../src/msw/utils.cpp:1234 msgid "Windows 95" msgstr "Windows 95" #: ../src/msw/utils.cpp:1230 msgid "Windows 95 OSR2" msgstr "Windows 95 OSR2" #: ../src/msw/utils.cpp:1245 msgid "Windows 98" msgstr "Windows 98" #: ../src/msw/utils.cpp:1241 msgid "Windows 98 SE" msgstr "Windows 98 SE" #: ../src/msw/utils.cpp:1252 #, c-format msgid "Windows 9x (%d.%d)" msgstr "Windows 9x (%d.%d)" #: ../src/common/fmapbase.cpp:177 msgid "Windows Arabic (CP 1256)" msgstr "Windows Arabisch (CP 1256)" #: ../src/common/fmapbase.cpp:178 msgid "Windows Baltic (CP 1257)" msgstr "Windows Baltisch (CP 1257)" #: ../src/msw/utils.cpp:1214 #, c-format msgid "Windows CE (%d.%d)" msgstr "Windows CE (%d.%d)" #: ../src/common/fmapbase.cpp:171 msgid "Windows Central European (CP 1250)" msgstr "Windows Zentral Europäisch (CP 1250)" #: ../src/common/fmapbase.cpp:168 msgid "Windows Chinese Simplified (CP 936) or GB-2312" msgstr "Windows Vereinfachtes Chinesisch (CP 936) oder GB-2312" #: ../src/common/fmapbase.cpp:170 msgid "Windows Chinese Traditional (CP 950) or Big-5" msgstr "Windows Traditionelles Chinesisch (CP 950) oder Big-5" #: ../src/common/fmapbase.cpp:172 msgid "Windows Cyrillic (CP 1251)" msgstr "Windows Kyrillisch (CP 1251)" #: ../src/common/fmapbase.cpp:174 msgid "Windows Greek (CP 1253)" msgstr "Windows Griechisch (CP 1253)" #: ../src/common/fmapbase.cpp:176 msgid "Windows Hebrew (CP 1255)" msgstr "Windows Hebräisch (CP 1255)" #: ../src/common/fmapbase.cpp:167 msgid "Windows Japanese (CP 932) or Shift-JIS" msgstr "Windows Japanisch (CP 932) oder Shift-JIS" #: ../src/common/fmapbase.cpp:180 msgid "Windows Johab (CP 1361)" msgstr "Windows Johab (CP 1361)" #: ../src/common/fmapbase.cpp:169 msgid "Windows Korean (CP 949)" msgstr "Windows Koreanisch (CP 949)" #: ../src/msw/utils.cpp:1249 msgid "Windows ME" msgstr "Windows ME" #: ../src/msw/utils.cpp:1310 #, c-format msgid "Windows NT %lu.%lu" msgstr "Windows NT %lu.%lu" #: ../src/msw/utils.cpp:1279 msgid "Windows Server 2003" msgstr "Windows Server 2003" #: ../src/msw/utils.cpp:1295 msgid "Windows Server 2008" msgstr "Windows Server 2008" #: ../src/msw/utils.cpp:1301 msgid "Windows Server 2008 R2" msgstr "Windows Server 2008 R2" #: ../src/common/fmapbase.cpp:166 msgid "Windows Thai (CP 874)" msgstr "Windows Thailändisch (CP 874)" #: ../src/common/fmapbase.cpp:175 msgid "Windows Turkish (CP 1254)" msgstr "Windows Türkisch (CP 1254)" #: ../src/common/fmapbase.cpp:179 msgid "Windows Vietnamese (CP 1258)" msgstr "Windows Vietnamesisch (CP 1258)" #: ../src/msw/utils.cpp:1296 msgid "Windows Vista" msgstr "Windows Vista" #: ../src/common/fmapbase.cpp:173 msgid "Windows Western European (CP 1252)" msgstr "Windows West Europäisch (CP 1252)" #: ../src/msw/utils.cpp:1285 msgid "Windows XP" msgstr "Windows XP" #: ../src/common/fmapbase.cpp:181 msgid "Windows/DOS OEM (CP 437)" msgstr "Windows/DOS OEM (CP 437)" #: ../src/common/fmapbase.cpp:165 msgid "Windows/DOS OEM Cyrillic (CP 866)" msgstr "Windows/DOS OEM Kyrillisch (CP 866)" #: ../src/common/ffile.cpp:148 #, c-format msgid "Write error on file '%s'" msgstr "Schreibfehler bei Datei '%s'" #: ../src/xml/xml.cpp:844 #, c-format msgid "XML parsing error: '%s' at line %d" msgstr "Fehler beim Lesen des XML: '%s' in Zeile %d" #: ../src/common/xpmdecod.cpp:796 msgid "XPM: Malformed pixel data!" msgstr "XPM: Pixeldaten in falscher Form!" #: ../src/common/xpmdecod.cpp:705 #, c-format msgid "XPM: incorrect colour description in line %d" msgstr "XPM: nicht korrekte Farbbeschreibung in Zeile %d" #: ../src/common/xpmdecod.cpp:680 msgid "XPM: incorrect header format!" msgstr "XPM: nicht korrektes Kopfformat!" #: ../src/common/xpmdecod.cpp:716 ../src/common/xpmdecod.cpp:725 #, c-format msgid "XPM: malformed colour definition '%s' at line %d!" msgstr "XPM: ungültige Farbdefinition '%s' in Zeile %d!" #: ../src/common/xpmdecod.cpp:755 msgid "XPM: no colors left to use for mask!" msgstr "XPM: keine Farben für die Maske übrig!" #: ../src/common/xpmdecod.cpp:782 #, c-format msgid "XPM: truncated image data at line %d!" msgstr "XPM: abgeschnittene Bilddaten in Zeile %d!" #: ../include/wx/msgdlg.h:271 ../src/common/stockitem.cpp:206 #: ../src/motif/msgdlg.cpp:196 msgid "Yes" msgstr "Ja" #: ../src/osx/carbon/overlay.cpp:155 msgid "You cannot Clear an overlay that is not inited" msgstr "Sie können keine Überlagerung löschen, die nicht initialisiert wurde" #: ../src/osx/carbon/overlay.cpp:107 ../src/dfb/overlay.cpp:61 msgid "You cannot Init an overlay twice" msgstr "Eine Überlagerung kann nicht zweimal initialisiert werden" #: ../src/generic/dirdlgg.cpp:316 msgid "You cannot add a new directory to this section." msgstr "Sie können hier kein neues Verzeichnis anlegen." #: ../src/propgrid/propgrid.cpp:3258 msgid "You have entered invalid value. Press ESC to cancel editing." msgstr "" "Sie haben einen ungültigen Wert eingegeben. Drücken Sie ESC um die " "Bearbeitung zu beenden." #: ../src/common/stockitem.cpp:209 msgid "Zoom &In" msgstr "Ver&größern" #: ../src/common/stockitem.cpp:210 msgid "Zoom &Out" msgstr "Ver&kleinern" #: ../src/common/stockitem.cpp:209 ../src/common/prntbase.cpp:1564 msgid "Zoom In" msgstr "Vergrößern" #: ../src/common/stockitem.cpp:210 ../src/common/prntbase.cpp:1550 msgid "Zoom Out" msgstr "Verkleinern" #: ../src/common/stockitem.cpp:208 msgid "Zoom to &Fit" msgstr "&Passende Grösse" #: ../src/common/stockitem.cpp:208 msgid "Zoom to Fit" msgstr "Einpassen" #: ../src/msw/dde.cpp:1144 msgid "a DDEML application has created a prolonged race condition." msgstr "Eine DDEML-Anwendung hat eine 'prolonged race condition' ausgeloest." #: ../src/msw/dde.cpp:1132 msgid "" "a DDEML function was called without first calling the DdeInitialize " "function,\n" "or an invalid instance identifier\n" "was passed to a DDEML function." msgstr "" "Eine DDEML-Funktion wurde aufgerufen, ohne vorher die Deinitialisierungs-" "Funktion aufzurufen,\n" "oder ein ungültiger 'instance identifier'\n" "wurde an eine DDEML-Funktion übergeben." #: ../src/msw/dde.cpp:1150 msgid "a client's attempt to establish a conversation has failed." msgstr "" "Der Versuch eines Clients, eine Verbindung herzustellen, ist gescheitert." #: ../src/msw/dde.cpp:1147 msgid "a memory allocation failed." msgstr "Eine Speicheranforderung ist gescheitert." #: ../src/msw/dde.cpp:1141 msgid "a parameter failed to be validated by the DDEML." msgstr "Ein Parameter wurde von DDEML nicht verifiziert." #: ../src/msw/dde.cpp:1123 msgid "a request for a synchronous advise transaction has timed out." msgstr "" "Eine Anfrage für eine 'synchronous advise transaction' ist gescheitert (time-" "out)" #: ../src/msw/dde.cpp:1129 msgid "a request for a synchronous data transaction has timed out." msgstr "" "Eine Anfrage für eine 'synchronous data transaction' ist gescheitert (time-" "out)" #: ../src/msw/dde.cpp:1138 msgid "a request for a synchronous execute transaction has timed out." msgstr "" "Eine Anfrage für eine 'synchronous execute transaction' ist gescheitert " "(time-out)" #: ../src/msw/dde.cpp:1156 msgid "a request for a synchronous poke transaction has timed out." msgstr "" "Eine Anfrage für eine 'synchronous poke transaction' ist gescheitert (time-" "out)" #: ../src/msw/dde.cpp:1171 msgid "a request to end an advise transaction has timed out." msgstr "" "Eine Anfrage, eine 'advise transaction' zu beenden ist, gescheitert (time-" "out)" #: ../src/msw/dde.cpp:1165 msgid "" "a server-side transaction was attempted on a conversation\n" "that was terminated by the client, or the server\n" "terminated before completing a transaction." msgstr "" "Ein Verbindungs-Versuch vom Server\n" "wurde vom Client abgebrochen, oder der Server\n" "terminierte bevor die Transaktion vollständig beendet wurde." #: ../src/msw/dde.cpp:1153 msgid "a transaction failed." msgstr "Eine Transaktion ist gescheitert." #: ../src/common/accelcmn.cpp:184 msgid "alt" msgstr "alt" #: ../src/msw/dde.cpp:1135 msgid "" "an application initialized as APPCLASS_MONITOR has\n" "attempted to perform a DDE transaction,\n" "or an application initialized as APPCMD_CLIENTONLY has \n" "attempted to perform server transactions." msgstr "" "Eine Anwendung, die als ein 'APPCLASS_MONITOR' gestartet wurde, \n" "versuchte eine DDE-Transaktion auszuführen,\n" "oder eine Anwendung, die als ein 'APPCMD_CLIENTONLY' gestartet wurde, \n" "versuchte eine Server-Transaktion auszuführen." #: ../src/msw/dde.cpp:1159 msgid "an internal call to the PostMessage function has failed. " msgstr "Ein interner Aufruf zur 'PostMessage'-Funktion ist gescheitert. " #: ../src/msw/dde.cpp:1168 msgid "an internal error has occurred in the DDEML." msgstr "Ein interne Fehler ist im DDEML aufgetreten." #: ../src/msw/dde.cpp:1174 msgid "" "an invalid transaction identifier was passed to a DDEML function.\n" "Once the application has returned from an XTYP_XACT_COMPLETE callback,\n" "the transaction identifier for that callback is no longer valid." msgstr "" "Eine ungültige Transaktions-Identifizierung wurde an eine DDEML-Funktion " "übergeben.\n" "Sobald die Anwendung aus einem 'XTYP_XACT_COMPLETE'-Callback zurückgekehrt " "ist,\n" "ist die Transaktions-Identifizierung für dieses Callback nicht mehr gültig." #: ../src/common/zipstrm.cpp:1272 msgid "assuming this is a multi-part zip concatenated" msgstr "Nehme mehrteiliges, konkateniertes Zip an." #: ../src/common/fileconf.cpp:1882 #, c-format msgid "attempt to change immutable key '%s' ignored." msgstr "" "Versuch den unveränderlichen Schlüssel '%s' anzupassen wurde ignoriert." #: ../src/html/chm.cpp:329 msgid "bad arguments to library function" msgstr "Falsche Argumente für die Bibliotheksfunktion" #: ../src/html/chm.cpp:341 msgid "bad signature" msgstr "Falsche Unterschrift" #: ../src/common/zipstrm.cpp:1715 msgid "bad zipfile offset to entry" msgstr "Falsches Offset zum Einsprung in der Zipdatei." #: ../src/common/ftp.cpp:405 msgid "binary" msgstr "binär" #: ../src/common/fontcmn.cpp:978 msgid "bold" msgstr "fett" #: ../src/os2/iniconf.cpp:463 msgid "buffer is too small for Windows directory." msgstr "Puffer zu klein für Windows-Verzeichnis." #: ../src/msw/utils.cpp:1316 #, c-format msgid "build %lu" msgstr "Erzeugungsversion %lu" #: ../src/common/ffile.cpp:79 #, c-format msgid "can't close file '%s'" msgstr "Kann Datei '%s' nicht schließen" #: ../src/common/file.cpp:278 #, c-format msgid "can't close file descriptor %d" msgstr "Kann Dateibeschreibung '%d' nicht schließen" #: ../src/common/file.cpp:604 #, c-format msgid "can't commit changes to file '%s'" msgstr "Kann Änderungen in Datei '%s' nicht sichern" #: ../src/common/file.cpp:212 #, c-format msgid "can't create file '%s'" msgstr "Kann Datei '%s' nicht anlegen" #: ../src/common/fileconf.cpp:1176 #, c-format msgid "can't delete user configuration file '%s'" msgstr "Kann Konfigurationsdatei '%s' nicht löschen" #: ../src/common/file.cpp:511 #, c-format msgid "can't determine if the end of file is reached on descriptor %d" msgstr "Kann auf Dateibeschreibung '%d' das Dateiende nicht Feststellen" #: ../src/msdos/utilsdos.cpp:310 ../src/msdos/utilsdos.cpp:475 #, c-format msgid "can't execute '%s'" msgstr "Kann '%s' nicht ausführen" #: ../src/common/zipstrm.cpp:1490 msgid "can't find central directory in zip" msgstr "Kann Zentralverzeichnis im Zip nicht finden." #: ../src/common/file.cpp:481 #, c-format msgid "can't find length of file on file descriptor %d" msgstr "Kann auf Dateibeschreibung '%d' die Dateilänge nicht finden" #: ../src/msw/utils.cpp:373 msgid "can't find user's HOME, using current directory." msgstr "Kann Benutzerverzeichnis nicht finden, verwende aktuelles Verzeichnis." #: ../src/common/file.cpp:382 #, c-format msgid "can't flush file descriptor %d" msgstr "Kann auf die Dateibeschreibung '%d' nicht entladen" #: ../src/common/file.cpp:438 ../src/msw/wince/filefnwce.cpp:204 #, c-format msgid "can't get seek position on file descriptor %d" msgstr "Kann auf die Dateibeschreibung %d nicht positionieren" #: ../src/common/fontmap.cpp:325 msgid "can't load any font, aborting" msgstr "Kann keine Schriftarten mehr laden, Abbruch" #: ../src/common/file.cpp:264 ../src/common/ffile.cpp:63 #, c-format msgid "can't open file '%s'" msgstr "Kann Datei '%s' nicht öffnen" #: ../src/common/fileconf.cpp:351 #, c-format msgid "can't open global configuration file '%s'." msgstr "Kann globale Konfigurationsdatei '%s' nicht öffnen." #: ../src/common/fileconf.cpp:367 #, c-format msgid "can't open user configuration file '%s'." msgstr "Kann Konfigurationsdatei '%s' nicht öffnen." #: ../src/common/fileconf.cpp:1017 msgid "can't open user configuration file." msgstr "Kann Benutzer-Konfigurationsdatei nicht öffnen." #: ../src/common/zipstrm.cpp:527 msgid "can't re-initialize zlib deflate stream" msgstr "Kann den zlib deflate-stream nicht reinitialisieren" #: ../src/common/zipstrm.cpp:552 msgid "can't re-initialize zlib inflate stream" msgstr "Kann den zlib inflate-stream nicht reinitialisieren" #: ../src/common/file.cpp:334 #, c-format msgid "can't read from file descriptor %d" msgstr "Kann Dateibeschreibung '%d' nicht lesen" #: ../src/common/file.cpp:599 #, c-format msgid "can't remove file '%s'" msgstr "Kann Datei '%s' nicht löschen" #: ../src/common/file.cpp:616 #, c-format msgid "can't remove temporary file '%s'" msgstr "Kann temporäre Datei '%s' nicht löschen" #: ../src/common/file.cpp:424 ../src/msw/wince/filefnwce.cpp:190 #, c-format msgid "can't seek on file descriptor %d" msgstr "Kann auf die Dateibeschreibung '%d' nicht suchen" #: ../src/common/textfile.cpp:299 #, c-format msgid "can't write buffer '%s' to disk." msgstr "Kann den Puffer '%s' nicht schreiben." #: ../src/common/file.cpp:350 #, c-format msgid "can't write to file descriptor %d" msgstr "Kann Dateibeschreibung '%d' nicht schreiben" #: ../src/common/fileconf.cpp:1031 msgid "can't write user configuration file." msgstr "Kann Benutzer-Konfigurationsdatei nicht schreiben." #: ../src/html/chm.cpp:345 msgid "checksum error" msgstr "Prüfsummen-Fehler" #: ../src/common/tarstrm.cpp:820 msgid "checksum failure reading tar header block" msgstr "Prüfsummenfehler beim Lesen der tar Kopfeintrages" #: ../src/richtext/richtextborderspage.cpp:280 #: ../src/richtext/richtextborderspage.cpp:310 #: ../src/richtext/richtextborderspage.cpp:340 #: ../src/richtext/richtextborderspage.cpp:370 #: ../src/richtext/richtextborderspage.cpp:424 #: ../src/richtext/richtextborderspage.cpp:454 #: ../src/richtext/richtextborderspage.cpp:484 #: ../src/richtext/richtextborderspage.cpp:514 #: ../src/richtext/richtextmarginspage.cpp:202 #: ../src/richtext/richtextmarginspage.cpp:227 #: ../src/richtext/richtextmarginspage.cpp:250 #: ../src/richtext/richtextmarginspage.cpp:275 #: ../src/richtext/richtextmarginspage.cpp:316 #: ../src/richtext/richtextmarginspage.cpp:341 #: ../src/richtext/richtextmarginspage.cpp:364 #: ../src/richtext/richtextmarginspage.cpp:389 #: ../src/richtext/richtextsizepage.cpp:339 #: ../src/richtext/richtextsizepage.cpp:373 #: ../src/richtext/richtextsizepage.cpp:400 #: ../src/richtext/richtextsizepage.cpp:427 #: ../src/richtext/richtextsizepage.cpp:454 #: ../src/richtext/richtextsizepage.cpp:481 #: ../src/richtext/richtextsizepage.cpp:555 #: ../src/richtext/richtextsizepage.cpp:590 #: ../src/richtext/richtextsizepage.cpp:625 #: ../src/richtext/richtextsizepage.cpp:660 msgid "cm" msgstr "cm" #: ../src/html/chm.cpp:347 msgid "compression error" msgstr "Fehler beim Komprimieren" #: ../src/common/regex.cpp:239 msgid "conversion to 8-bit encoding failed" msgstr "Umwandlung in 8-Bit-Kodierung fehlgeschlagen" #: ../src/common/accelcmn.cpp:182 msgid "ctrl" msgstr "strg" #: ../src/common/cmdline.cpp:1323 msgid "date" msgstr "Datum" #: ../src/html/chm.cpp:349 msgid "decompression error" msgstr "Fehler beim Entpacken" #: ../src/richtext/richtextstyles.cpp:780 ../src/common/fmapbase.cpp:820 msgid "default" msgstr "Standard" #: ../src/common/cmdline.cpp:1319 msgid "double" msgstr "Doppelte Genauigkeit" #: ../src/common/debugrpt.cpp:543 msgid "dump of the process state (binary)" msgstr "Dump des bearbeiteten Zustands (binär)" #: ../src/common/datetimefmt.cpp:1936 msgid "eighteenth" msgstr "achtzehnte" #: ../src/common/datetimefmt.cpp:1926 msgid "eighth" msgstr "achte" #: ../src/common/datetimefmt.cpp:1929 msgid "eleventh" msgstr "elfte" #: ../src/common/fileconf.cpp:1868 #, c-format msgid "entry '%s' appears more than once in group '%s'" msgstr "Eintrag '%s' erscheint in Gruppe '%s' mehrfach" #: ../src/html/chm.cpp:343 msgid "error in data format" msgstr "Fehler im Datenformat" #: ../src/msdos/utilsdos.cpp:413 #, c-format msgid "error opening '%s'" msgstr "Fehler beim Öffnen von '%s'" #: ../src/html/chm.cpp:331 msgid "error opening file" msgstr "Fehler beim Öffnen der Datei" #: ../src/common/zipstrm.cpp:1576 msgid "error reading zip central directory" msgstr "Fehler beim Lesen des Zentralverzeichnisses im Zip" #: ../src/common/zipstrm.cpp:1667 msgid "error reading zip local header" msgstr "Fehler beim Lesen des lokalen Headers in Zipdatei" #: ../src/common/zipstrm.cpp:2396 #, c-format msgid "error writing zip entry '%s': bad crc or length" msgstr "" "Fehler beim Schreiben von Zip-Eintrag '%s': Falsche Prüfsumme oder Länge" #: ../src/common/ffile.cpp:170 #, c-format msgid "failed to flush the file '%s'" msgstr "Versuch, die Datei '%s' zu entladen, gescheitert" #: ../src/common/datetimefmt.cpp:1933 msgid "fifteenth" msgstr "fünfzehnte" #: ../src/common/datetimefmt.cpp:1923 msgid "fifth" msgstr "fünfte" #: ../src/common/fileconf.cpp:610 #, c-format msgid "file '%s', line %d: '%s' ignored after group header." msgstr "Datei '%s', Zeile %d: '%s' hinter Gruppenkopf ignoriert." #: ../src/common/fileconf.cpp:639 #, c-format msgid "file '%s', line %d: '=' expected." msgstr "Datei '%s', Zeile %d: '=' erwartet." #: ../src/common/fileconf.cpp:662 #, c-format msgid "file '%s', line %d: key '%s' was first found at line %d." msgstr "Datei '%s', Zeile %d: Eintrag '%s' taucht erstmals in Zeile %d auf." #: ../src/common/fileconf.cpp:652 #, c-format msgid "file '%s', line %d: value for immutable key '%s' ignored." msgstr "" "Datei '%s', Zeile %d: Wert für nicht-änderbaren Eintrag '%s' ignoriert." #: ../src/common/fileconf.cpp:574 #, c-format msgid "file '%s': unexpected character %c at line %d." msgstr "Datei '%s': unerwartetes Zeichen %c in Zeile %d." #: ../src/richtext/richtextbuffer.cpp:8358 msgid "files" msgstr "Dateien" #: ../src/common/datetimefmt.cpp:1919 msgid "first" msgstr "erste" #: ../src/html/helpwnd.cpp:1265 msgid "font size" msgstr "Schriftgröße:" #: ../src/common/datetimefmt.cpp:1932 msgid "fourteenth" msgstr "vierzehnte" #: ../src/common/datetimefmt.cpp:1922 msgid "fourth" msgstr "vierte" #: ../src/common/appbase.cpp:695 msgid "generate verbose log messages" msgstr "ausführliche Log-Nachrichten erstellen" #: ../src/richtext/richtextbuffer.cpp:12212 #: ../src/richtext/richtextbuffer.cpp:12322 msgid "image" msgstr "Bild" #: ../src/common/tarstrm.cpp:796 msgid "incomplete header block in tar" msgstr "unvollständiger Kopfeintrag in tar" #: ../src/common/xtixml.cpp:489 msgid "incorrect event handler string, missing dot" msgstr "Event-Handler-Zeichenkette falsch, Punkt fehlt" #: ../src/common/tarstrm.cpp:1381 msgid "incorrect size given for tar entry" msgstr "Nicht korrekte Größe für tar-Eintrag gegeben" #: ../src/common/tarstrm.cpp:993 msgid "invalid data in extended tar header" msgstr "ungültige Daten in erweitertem tar-Kopfeintrag" #: ../src/generic/logg.cpp:1050 msgid "invalid message box return value" msgstr "ungültiger 'message box'-Rückgabewert" #: ../src/common/zipstrm.cpp:1445 msgid "invalid zip file" msgstr "Ungültige Zip-Datei" #: ../src/common/fontcmn.cpp:983 msgid "italic" msgstr "kursiv" #: ../src/common/fontcmn.cpp:973 msgid "light" msgstr "dünn" #: ../src/common/intl.cpp:293 #, c-format msgid "locale '%s' cannot be set." msgstr "Lokale Umgebung '%s' kann nicht gesetzt werden." #: ../src/common/datetimefmt.cpp:2092 msgid "midnight" msgstr "Mitternacht" #: ../src/common/datetimefmt.cpp:1937 msgid "nineteenth" msgstr "neunzehnte" #: ../src/common/datetimefmt.cpp:1927 msgid "ninth" msgstr "neunte" #: ../src/msw/dde.cpp:1119 msgid "no DDE error." msgstr "kein DDE-Fehler." #: ../src/html/chm.cpp:327 msgid "no error" msgstr "kein Fehler" #: ../src/dfb/fontmgr.cpp:174 #, c-format msgid "no fonts found in %s, using builtin font" msgstr "Keine Schriftarten in %s, gefunden" #: ../src/html/helpdata.cpp:655 msgid "noname" msgstr "namenlos" #: ../src/common/datetimefmt.cpp:2091 msgid "noon" msgstr "mittags" #: ../src/richtext/richtextstyles.cpp:779 msgid "normal" msgstr "Normal" #: ../src/gtk/print.cpp:1218 ../src/gtk/print.cpp:1323 msgid "not implemented" msgstr "nicht ausgeführt" #: ../src/common/cmdline.cpp:1315 msgid "num" msgstr "num" #: ../src/common/xtixml.cpp:259 msgid "objects cannot have XML Text Nodes" msgstr "Objekte können keine XML-Text-Knoten haben" #: ../src/html/chm.cpp:339 msgid "out of memory" msgstr "nicht genug Speicher" #: ../src/richtext/richtextsizepage.cpp:340 #: ../src/richtext/richtextsizepage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:401 #: ../src/richtext/richtextsizepage.cpp:428 #: ../src/richtext/richtextsizepage.cpp:455 #: ../src/richtext/richtextsizepage.cpp:482 #: ../src/richtext/richtextsizepage.cpp:556 #: ../src/richtext/richtextsizepage.cpp:591 #: ../src/richtext/richtextsizepage.cpp:626 #: ../src/richtext/richtextsizepage.cpp:661 msgid "percent" msgstr "Prozent" #: ../src/common/debugrpt.cpp:519 msgid "process context description" msgstr "Bearbeite Kontextbeschreibung" #: ../src/richtext/richtextfontpage.cpp:186 #: ../src/richtext/richtextfontpage.cpp:189 msgid "pt" msgstr "pt" #: ../src/richtext/richtextfontpage.cpp:187 #: ../src/richtext/richtextborderspage.cpp:279 #: ../src/richtext/richtextborderspage.cpp:281 #: ../src/richtext/richtextborderspage.cpp:282 #: ../src/richtext/richtextborderspage.cpp:309 #: ../src/richtext/richtextborderspage.cpp:311 #: ../src/richtext/richtextborderspage.cpp:312 #: ../src/richtext/richtextborderspage.cpp:339 #: ../src/richtext/richtextborderspage.cpp:341 #: ../src/richtext/richtextborderspage.cpp:342 #: ../src/richtext/richtextborderspage.cpp:369 #: ../src/richtext/richtextborderspage.cpp:371 #: ../src/richtext/richtextborderspage.cpp:372 #: ../src/richtext/richtextborderspage.cpp:423 #: ../src/richtext/richtextborderspage.cpp:425 #: ../src/richtext/richtextborderspage.cpp:426 #: ../src/richtext/richtextborderspage.cpp:453 #: ../src/richtext/richtextborderspage.cpp:455 #: ../src/richtext/richtextborderspage.cpp:456 #: ../src/richtext/richtextborderspage.cpp:483 #: ../src/richtext/richtextborderspage.cpp:485 #: ../src/richtext/richtextborderspage.cpp:486 #: ../src/richtext/richtextborderspage.cpp:513 #: ../src/richtext/richtextborderspage.cpp:515 #: ../src/richtext/richtextborderspage.cpp:516 #: ../src/richtext/richtextmarginspage.cpp:201 #: ../src/richtext/richtextmarginspage.cpp:203 #: ../src/richtext/richtextmarginspage.cpp:204 #: ../src/richtext/richtextmarginspage.cpp:226 #: ../src/richtext/richtextmarginspage.cpp:228 #: ../src/richtext/richtextmarginspage.cpp:229 #: ../src/richtext/richtextmarginspage.cpp:249 #: ../src/richtext/richtextmarginspage.cpp:251 #: ../src/richtext/richtextmarginspage.cpp:252 #: ../src/richtext/richtextmarginspage.cpp:274 #: ../src/richtext/richtextmarginspage.cpp:276 #: ../src/richtext/richtextmarginspage.cpp:277 #: ../src/richtext/richtextmarginspage.cpp:315 #: ../src/richtext/richtextmarginspage.cpp:317 #: ../src/richtext/richtextmarginspage.cpp:318 #: ../src/richtext/richtextmarginspage.cpp:340 #: ../src/richtext/richtextmarginspage.cpp:342 #: ../src/richtext/richtextmarginspage.cpp:343 #: ../src/richtext/richtextmarginspage.cpp:363 #: ../src/richtext/richtextmarginspage.cpp:365 #: ../src/richtext/richtextmarginspage.cpp:366 #: ../src/richtext/richtextmarginspage.cpp:388 #: ../src/richtext/richtextmarginspage.cpp:390 #: ../src/richtext/richtextmarginspage.cpp:391 #: ../src/richtext/richtextsizepage.cpp:338 #: ../src/richtext/richtextsizepage.cpp:341 #: ../src/richtext/richtextsizepage.cpp:342 #: ../src/richtext/richtextsizepage.cpp:372 #: ../src/richtext/richtextsizepage.cpp:375 #: ../src/richtext/richtextsizepage.cpp:376 #: ../src/richtext/richtextsizepage.cpp:399 #: ../src/richtext/richtextsizepage.cpp:402 #: ../src/richtext/richtextsizepage.cpp:403 #: ../src/richtext/richtextsizepage.cpp:426 #: ../src/richtext/richtextsizepage.cpp:429 #: ../src/richtext/richtextsizepage.cpp:430 #: ../src/richtext/richtextsizepage.cpp:453 #: ../src/richtext/richtextsizepage.cpp:456 #: ../src/richtext/richtextsizepage.cpp:457 #: ../src/richtext/richtextsizepage.cpp:480 #: ../src/richtext/richtextsizepage.cpp:483 #: ../src/richtext/richtextsizepage.cpp:484 #: ../src/richtext/richtextsizepage.cpp:554 #: ../src/richtext/richtextsizepage.cpp:557 #: ../src/richtext/richtextsizepage.cpp:558 #: ../src/richtext/richtextsizepage.cpp:589 #: ../src/richtext/richtextsizepage.cpp:592 #: ../src/richtext/richtextsizepage.cpp:593 #: ../src/richtext/richtextsizepage.cpp:624 #: ../src/richtext/richtextsizepage.cpp:627 #: ../src/richtext/richtextsizepage.cpp:628 #: ../src/richtext/richtextsizepage.cpp:659 #: ../src/richtext/richtextsizepage.cpp:662 #: ../src/richtext/richtextsizepage.cpp:663 msgid "px" msgstr "px" #: ../src/common/accelcmn.cpp:188 msgid "rawctrl" msgstr "strg" #: ../src/html/chm.cpp:333 msgid "read error" msgstr "Lesefehler" #: ../src/common/zipstrm.cpp:1882 #, c-format msgid "reading zip stream (entry %s): bad crc" msgstr "Beim Lesen von Zipstream (Eintrag %s): Falsche Prüfsumme" #: ../src/common/zipstrm.cpp:1877 #, c-format msgid "reading zip stream (entry %s): bad length" msgstr "Beim Lesen von Zipstream (Eintrag %s): Falsche Länge" #: ../src/msw/dde.cpp:1162 msgid "reentrancy problem." msgstr "Probleme beim Wiedereintreten." #: ../src/common/datetimefmt.cpp:1920 msgid "second" msgstr "zweite" #: ../src/html/chm.cpp:337 msgid "seek error" msgstr "Seek-Fehler" #: ../src/common/datetimefmt.cpp:1935 msgid "seventeenth" msgstr "siebzehnte" #: ../src/common/datetimefmt.cpp:1925 msgid "seventh" msgstr "siebte" #: ../src/common/accelcmn.cpp:186 msgid "shift" msgstr "Umschalt" #: ../src/common/appbase.cpp:685 msgid "show this help message" msgstr "Zeige diesen Hilfstext" #: ../src/common/datetimefmt.cpp:1934 msgid "sixteenth" msgstr "sechzehnte" #: ../src/common/datetimefmt.cpp:1924 msgid "sixth" msgstr "sechste" #: ../src/common/appcmn.cpp:227 msgid "specify display mode to use (e.g. 640x480-16)" msgstr "Geben Sie eine zu verwendende Bildschirmauflösung ein (Z.B. 640x48-16)" #: ../src/common/appcmn.cpp:213 msgid "specify the theme to use" msgstr "geben Sie das zu benutzende Thema an" #: ../src/richtext/richtextbuffer.cpp:8876 msgid "standard/circle" msgstr "Standard/Kreis" #: ../src/richtext/richtextbuffer.cpp:8877 msgid "standard/circle-outline" msgstr "Standard/ Kreisumriss" #: ../src/richtext/richtextbuffer.cpp:8879 msgid "standard/diamond" msgstr "Standard/ Raute" #: ../src/richtext/richtextbuffer.cpp:8878 msgid "standard/square" msgstr "Standard/Quadrat" #: ../src/richtext/richtextbuffer.cpp:8880 msgid "standard/triangle" msgstr "Standard/ Dreieck" #: ../src/common/zipstrm.cpp:1782 msgid "stored file length not in Zip header" msgstr "Gespeicherte Dateilänge nicht in Zip-Header" #: ../src/common/cmdline.cpp:1311 msgid "str" msgstr "str" #: ../src/common/fontcmn.cpp:794 ../src/common/fontcmn.cpp:969 msgid "strikethrough" msgstr "Durchstreichen" #: ../src/common/tarstrm.cpp:1003 ../src/common/tarstrm.cpp:1025 #: ../src/common/tarstrm.cpp:1507 ../src/common/tarstrm.cpp:1529 msgid "tar entry not open" msgstr "tar Eintrag nicht offen" #: ../src/common/datetimefmt.cpp:1928 msgid "tenth" msgstr "zehnte" #: ../src/msw/dde.cpp:1126 msgid "the response to the transaction caused the DDE_FBUSY bit to be set." msgstr "das Ergebnis zur Transaktion hat das 'DDE_FBUSY'-Bit gesetzt." #: ../src/common/datetimefmt.cpp:1921 msgid "third" msgstr "dritte" #: ../src/common/datetimefmt.cpp:1931 msgid "thirteenth" msgstr "dreizehnte" #: ../src/common/datetimefmt.cpp:1725 msgid "today" msgstr "heute" #: ../src/common/datetimefmt.cpp:1727 msgid "tomorrow" msgstr "morgen" #: ../src/common/fileconf.cpp:1979 #, c-format msgid "trailing backslash ignored in '%s'" msgstr "Abschließenden Gegenschrägstrich in '%s' ignoriert" #: ../src/gtk/aboutdlg.cpp:218 msgid "translator-credits" msgstr "Übersetzer" #: ../src/common/datetimefmt.cpp:1930 msgid "twelfth" msgstr "zwölfte" #: ../src/common/datetimefmt.cpp:1938 msgid "twentieth" msgstr "zwanzigste" #: ../src/common/fontcmn.cpp:789 ../src/common/fontcmn.cpp:965 msgid "underlined" msgstr "unterstrichen" #: ../src/common/fileconf.cpp:2014 #, c-format msgid "unexpected \" at position %d in '%s'." msgstr "unerwartetes \" an Position %d in '%s'." #: ../src/common/tarstrm.cpp:1045 msgid "unexpected end of file" msgstr "Unerwartetes Ende der Datei" #: ../src/generic/progdlgg.cpp:399 ../src/common/tarstrm.cpp:371 #: ../src/common/tarstrm.cpp:394 ../src/common/tarstrm.cpp:425 msgid "unknown" msgstr "unbekannt" #: ../src/common/xtixml.cpp:253 #, c-format msgid "unknown class %s" msgstr "Unbekannte Klasse %s" #: ../src/common/regex.cpp:261 ../src/html/chm.cpp:351 msgid "unknown error" msgstr "unbekannter Fehler" #: ../src/msw/dialup.cpp:490 #, c-format msgid "unknown error (error code %08x)." msgstr "unbekannter Fehler (Fehlercode %08x)." #: ../src/msw/wince/filefnwce.cpp:172 msgid "unknown seek origin" msgstr "Unbekannte Suchposition" #: ../src/common/fmapbase.cpp:834 #, c-format msgid "unknown-%d" msgstr "unbekannt-%d" #: ../src/common/docview.cpp:507 msgid "unnamed" msgstr "Unbenannt" #: ../src/common/docview.cpp:1606 #, c-format msgid "unnamed%d" msgstr "Unbenannt%d" #: ../src/common/zipstrm.cpp:1796 ../src/common/zipstrm.cpp:2184 msgid "unsupported Zip compression method" msgstr "Nicht unterstütztes Zip-Kompressionsformat." #: ../src/common/translation.cpp:1883 #, c-format msgid "using catalog '%s' from '%s'." msgstr "Verwende Nachrichtenkatalog '%s' von '%s'." #: ../src/html/chm.cpp:335 msgid "write error" msgstr "Schreibfehler" #: ../src/common/time.cpp:318 msgid "wxGetTimeOfDay failed." msgstr "wxGetTimeOfDay gescheitert." #: ../src/gtk/print.cpp:987 msgid "wxPrintout::GetPageInfo gives a null maxPage." msgstr "wxPrintout::GetPageInfo liefert eine NULL maximale Seitengröße." #: ../src/osx/carbon/dataview.cpp:1303 msgid "wxWidget control pointer is not a data view pointer" msgstr "" "Zeiger auf ein wxwWidget Kontrollelement ist kein Zeiger auf eine " "Datenanzeige" #: ../src/osx/carbon/dataview.cpp:907 msgid "wxWidget's control not initialized." msgstr "wxWidget Kontrollelement nicht initialisiert." #: ../src/motif/app.cpp:245 #, c-format msgid "wxWidgets could not open display for '%s': exiting." msgstr "wxWidgets konnte 'open display' nicht ausführen für '%s': Abbruch." #: ../src/x11/app.cpp:164 msgid "wxWidgets could not open display. Exiting." msgstr "wxWidgets konnte Display nicht öffnen. Abbruch." #: ../src/richtext/richtextsymboldlg.cpp:434 msgid "xxxx" msgstr "xxxx" #: ../src/common/datetimefmt.cpp:1726 msgid "yesterday" msgstr "Gestern" #: ../src/common/zstream.cpp:251 ../src/common/zstream.cpp:426 #, c-format msgid "zlib error %d" msgstr "zlib-Fehler %d" #: ../src/richtext/richtextliststylepage.cpp:496 #: ../src/richtext/richtextbulletspage.cpp:301 msgid "~" msgstr "~" #~ msgid "Print preview" #~ msgstr "Druck&vorschau" #~ msgid "'" #~ msgstr "'" #~ msgid "1" #~ msgstr "1" #~ msgid "10" #~ msgstr "10" #~ msgid "3" #~ msgstr "3" #~ msgid "4" #~ msgstr "4" #~ msgid "5" #~ msgstr "5" #~ msgid "6" #~ msgstr "6" #~ msgid "7" #~ msgstr "7" #~ msgid "8" #~ msgstr "8" #~ msgid "9" #~ msgstr "9" #~ msgid "Can't monitor non-existent path \"%s\" for changes." #~ msgstr "" #~ "Der nicht vorhandene Pfad \"%s\" kann nicht nach Änderungen durchsucht " #~ "werden." #~ msgid "File system containing watched object was unmounted" #~ msgstr "" #~ "Das Dateisystem das die beobachteten Objekte enthält wurde ausgehängt" #~ msgid "&Preview..." #~ msgstr "& Vorschau..." #~ msgid "Enable vertical offset." #~ msgstr "Vertikalen Absatz einschalten." #~ msgid "Preview..." #~ msgstr "Vorschau..." #~ msgid "The vertical offset relative to the paragraph." #~ msgstr "Der vertikale Abstand relativ zum Absatz." #~ msgid "Units for the object offset." #~ msgstr "Einheiten für den Objektabsatz." #~ msgid "Vertical &Offset:" #~ msgstr "Vertikal &Absatz:" #~ msgid "&Save..." #~ msgstr "&Speichern..." #~ msgid "About " #~ msgstr "Über " #~ msgid "All files (*.*)|*" #~ msgstr "Alle Dateien (*.\")|*" #~ msgid "Cannot initialize SciTech MGL!" #~ msgstr "Kann SciTech MGL nicht initialisieren!" #~ msgid "Cannot initialize display." #~ msgstr "Kann das Display nicht initialisieren." #~ msgid "Cannot start thread: error writing TLS" #~ msgstr "Kann Thread nicht starten: Fehler beim TLS-Schreiben" #~ msgid "Close\tAlt-F4" #~ msgstr "Schließen\tAlt-F4" #~ msgid "Couldn't create cursor." #~ msgstr "Konnte Cursor nicht erzeugen." #~ msgid "Directory '%s' doesn't exist!" #~ msgstr "Verzeichnis '%s' existiert nicht." #~ msgid "File %s does not exist." #~ msgstr "Datei '%s' existiert nicht." #~ msgid "Mode %ix%i-%i not available." #~ msgstr "Darstellung %is%i-%i ist nicht vorhanden" #~ msgid "Paper Size" #~ msgstr "Papierformat" #~ msgid "\t%s: %s\n" #~ msgstr "\t%s: %s\n" #~ msgid " Couldn't create the UnicodeConverter" #~ msgstr "Konnte den UnicodeConverter nicht erzeugen" #~ msgid "#define %s must be an integer." #~ msgstr "#define %s muss eine Ganzzahl sein" #~ msgid "%.*f GB" #~ msgstr "%.*f GB" #~ msgid "%.*f MB" #~ msgstr "%.*f MB" #~ msgid "%.*f TB" #~ msgstr "%.*f TB" #~ msgid "%.*f kB" #~ msgstr "%.*f kB" #~ msgid "%s B" #~ msgstr "%s B" #~ msgid "%s not a bitmap resource specification." #~ msgstr "%s gibt keine Quelle für eine Bitmap-Grafik an." #~ msgid "%s not an icon resource specification." #~ msgstr "%s gibt keine Quelle für eine Icon-Grafik an." #~ msgid "%s: ill-formed resource file syntax." #~ msgstr "%s: unkorrekte Syntax der Ressourcendatei." #~ msgid "&Goto..." #~ msgstr "&Gehe zu ..." #~ msgid "&Open" #~ msgstr "&Öffnen" #~ msgid "&Print" #~ msgstr "&Drucken" #~ msgid "" #~ ", expected static, #include or #define\n" #~ "while parsing resource." #~ msgstr "" #~ ", Erwartete static, #include or #define\n" #~ "beim Parsen der Ressource." #~ msgid "<<" #~ msgstr "<<" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">>|" #~ msgstr ">>|" #~ msgid "Archive doesnt contain #SYSTEM file" #~ msgstr "Archiv enthält keine Datei #SYSTEM" #~ msgid "BIG5" #~ msgstr "BIG5" #~ msgid "Bitmap resource specification %s not found." #~ msgstr "Ressourcenspezifikation %s für Bitmap nicht gefunden." #~ msgid "Can't check image format of file '%s': file does not exist." #~ msgstr "" #~ "Kann Bildformat nicht überprüfen bei Datei '%s': Datei nicht vorhanden." #~ msgid "Can't load image from file '%s': file does not exist." #~ msgstr "Kann Bild aus Datei '%s' nicht laden: Datei ist nicht vorhanden." #~ msgid "Cannot convert dialog units: dialog unknown." #~ msgstr "Kann Dialog-Einheiten nicht konvertieren: Dialog unbekannt." #~ msgid "Cannot convert from the charset '%s'!" #~ msgstr "Kann nicht von Kodierung (%s) konvertieren" #~ msgid "Cannot find container for unknown control '%s'." #~ msgstr "Kann keinen Container für unbekanntes Steuerelement '%s' finden." #~ msgid "Cannot find font node '%s'." #~ msgstr "Kann keinen Font-Knoten '%s' finden." #~ msgid "Cannot open file '%s'." #~ msgstr "Konnte Datei '%s' nicht öffnen" #~ msgid "Cannot parse coordinates from '%s'." #~ msgstr "Kann die Koordinaten nicht aus '%s' lesen." #~ msgid "Cannot parse dimension from '%s'." #~ msgstr "Kann die Dimensionen nicht aus '%s' lesen." #~ msgid "Cant create the thread event queue" #~ msgstr "Kann Ereignis-Warteschlange des Threads nicht erzeugen" #~ msgid "Click to cancel this window." #~ msgstr "Klicken um dieses Fenster zu schließen." #~ msgid "Click to confirm your selection." #~ msgstr "Klicken um die Auswahl zu bestätigen." #~ msgid "Closes the dialog without inserting a symbol." #~ msgstr "Schließt das Dokument ohne ein Symbol einzufügen." #~ msgid "" #~ "Could not resolve control class or id '%s'. Use (non-zero) integer " #~ "instead\n" #~ " or provide #define (see manual for caveats)" #~ msgstr "" #~ "Konnte Steuerelement-Klasse oder -Kennziffer '%s' nicht auflösen.\n" #~ "Ganzzahl (ungleich Null) verwenden, oder #define angeben (siehe Handbuch " #~ "bei Problemen)" #~ msgid "" #~ "Could not resolve menu id '%s'. Use (non-zero) integer instead\n" #~ "or provide #define (see manual for caveats)" #~ msgstr "" #~ "Konnte Menü-Id '%s' nicht auflösen. Benutzen Sie stattdessen Integer " #~ "(ungleich Null)\n" #~ "oder ein #define (s.a. Handbuch für mögliche Probleme damit)" #~ msgid "Could not unlock mutex" #~ msgstr "Konnte Mutex nicht freigeben" #~ msgid "Couldn't end the context on the overlay window" #~ msgstr "Konnte den Kontext auf dem überlagerten Fenster nicht beenden." #~ msgid "Expected '*' while parsing resource." #~ msgstr "Erwartete '*' beim Parsen der Ressource." #~ msgid "Expected '=' while parsing resource." #~ msgstr "Erwartete '=' beim Parsen der Ressource." #~ msgid "Expected 'char' while parsing resource." #~ msgstr "Erwartete 'char' beim Parsen der Ressource." #~ msgid "Failed to %s dialup connection: %s" #~ msgstr "Fehlerhafte %s DFÜ-Verbindung: %s" #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "Konnte XBM-Ressource %s nicht finden.\n" #~ "Vergessen wxResourceLoadBitmapData zu benutzen?" #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadIconData?" #~ msgstr "" #~ "Konnte XBM-Ressource %s nicht finden.\n" #~ "Vergessen wxResourceLoadIconData zu benutzen?" #~ msgid "" #~ "Failed to find XPM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "Konnte XPM-Ressource %s nicht finden.\n" #~ "Vergessen wxResourceLoadBitmapData zu benutzen?" #~ msgid "Failed to get clipboard data." #~ msgstr "Konnte Daten nicht aus der Zwischenablage holen." #~ msgid "Failed to load shared library '%s' Error '%s'" #~ msgstr "Laden der dynamischen Bibliothek '%s' gescheitert: Fehler '%s'" #~ msgid "Failed to register OpenGL window class." #~ msgstr "Konnte OpenGL Fensterklasse nicht registrieren." #~ msgid "Fatal error" #~ msgstr "Nicht-behebbarer Fehler" #~ msgid "Fatal error: " #~ msgstr "Nicht-behebbarer Fehler: " #~ msgid "Found " #~ msgstr "Gefunden " #~ msgid "GB-2312" #~ msgstr "GB-2312" #~ msgid "Goto Page" #~ msgstr "Gehe zur Seite" #~ msgid "" #~ "HTML pagination algorithm generated more than the allowed maximum number " #~ "of pages and it can't continue any longer!" #~ msgstr "" #~ "Der Algorithmus zur HTML-Seitengenerierung hat mehr als die maximal " #~ "erlaubten Seiten erzeugt und kann nicht fortfahren!" #~ msgid "I64" #~ msgstr "I64" #~ msgid "Icon resource specification %s not found." #~ msgstr "Ressourcenspezifikation %s des Icons nicht gefunden." #~ msgid "Ill-formed resource file syntax." #~ msgstr "Nicht wohlgeformte Syntax für Ressourcendatei." #~ msgid "Inserts the chosen symbol." #~ msgstr "Fügt das ausgewählte Symbol ein" #~ msgid "Internal error, illegal wxCustomTypeInfo" #~ msgstr "interner Fehler (ungültige wxCustomTypeinfo)" #~ msgid "Invalid XRC resource '%s': doesn't have root node 'resource'." #~ msgstr "Ungültige XRC-Ressource '%s': Kein Wurzel-Knoten 'resource'." #~ msgid "Long Conversions not supported" #~ msgstr "Umwandlung in long wird nicht unterstützt" #~ msgid "No XPM icon facility available!" #~ msgstr "Keine Möglichkeit mit XPM-Icons umzugehen!" #~ msgid "No handler found for XML node '%s', class '%s'!" #~ msgstr "XML-Knoten '%s', Klasse '%s' kann nicht bearbeitet werden!\"" #~ msgid "No image handler for type %ld defined." #~ msgstr "Kein Bild-Handler für Typ %ld definiert." #~ msgid "Option '%s' requires a value, '=' expected." #~ msgstr "Option '%s' erwartet einen Wert, '=' erwartet." #~ msgid "Passing a already registered object to SetObjectName" #~ msgstr "Ein bereits registriertes Objekt wurde an SetObjectname übergeben" #~ msgid "Program aborted." #~ msgstr "Programm abgebrochen." #~ msgid "Referenced object node with ref=\"%s\" not found!" #~ msgstr "Der angesprochene Objektknoten mit ref=\"%s\" wurde nicht gefunden!" #~ msgid "Resource files must have same version number!" #~ msgstr "Ressourcen-Datei muss die gleiche Versionsnummer haben!" #~ msgid "SHIFT-JIS" #~ msgstr "Shift-JIS" #~ msgid "Select a file" #~ msgstr "Datei wählen" #~ msgid "Select all" #~ msgstr "Alles auswählen" #~ msgid "Sorry, could not open this file for saving." #~ msgstr "Bedauere, diese Datei konnte zum Speichern nicht geöffnet werden." #~ msgid "Sorry, could not save this file." #~ msgstr "Bedauere, diese Datei konnte nicht gespeichert werden." #~ msgid "" #~ "Sorry, docking is not supported for ports other than wxMSW, wxMac and " #~ "wxGTK" #~ msgstr "" #~ "Entschuldigung, Andocken wird nicht unterstützt für Portierungen außer " #~ "wxMSW, wxMac und wxGTK" #~ msgid "Sorry, print preview needs a printer to be installed." #~ msgstr "" #~ "Tut mir leid: Die Druck-Vorschau benötigt einen installierten Drucker" #~ msgid "Status: " #~ msgstr "Status: " #~ msgid "" #~ "Streaming delegates for not already streamed objects not yet supported" #~ msgstr "" #~ "Streaming delegates sind noch nicht unterstützt, wenn es sich nicht " #~ "bereits um streaming objects handelt" #~ msgid "String conversions not supported" #~ msgstr "Umwandlung in Zeichenkette wird nicht unterstützt" #~ msgid "Subclass '%s' not found for resource '%s', not subclassing!" #~ msgstr "" #~ "Unterklasse '%s' für Ressource '%s' nicht gefunden, keine Unterklasse " #~ "erstellt!" #~ msgid "TIFF library error." #~ msgstr "Fehler in TIFF-Bibliothek." #~ msgid "TIFF library warning." #~ msgstr "Warnung in TIFF-Bibliothek." #~ msgid "" #~ "The file '%s' couldn't be opened.\n" #~ "It has been removed from the most recently used files list." #~ msgstr "" #~ "Die Datei '%s' konnte nicht geöffnet werden.\n" #~ "Sie wurde aus der Liste kürzlich verwendeter Dateien entfernt." #~ msgid "The path '%s' contains too many \"..\"!" #~ msgstr "Das Verzeichnis '%s' enthält zu viele \"..\"." #~ msgid "Trying to solve a NULL hostname: giving up" #~ msgstr "Auflösen eines NULL-Hostnamens fehlgeschlagen" #~ msgid "Unexpected end of file while parsing resource." #~ msgstr "Unerwartetes Dateiende beim Parsen der Ressource." #~ msgid "Unknown style flag " #~ msgstr "Unbekanntes Stil-Flag " #~ msgid "Unrecognized style %s while parsing resource." #~ msgstr "Unbekannter Stil %s beim Parsen der Ressource." #~ msgid "Version %s" #~ msgstr "Version %s" #~ msgid "Video Output" #~ msgstr "Video-Ausgabe" #~ msgid "Warning" #~ msgstr "Warnung" #~ msgid "Warning: attempt to remove HTML tag handler from empty stack." #~ msgstr "" #~ "Warnung: Es wurde versucht, einen 'HTML-Tag-Handler' von einem leeren " #~ "Stack zu entfernen." #~ msgid "Windows 2000 (build %lu" #~ msgstr "Windows 2000 (build %lu" #~ msgid "XRC resource '%s' (class '%s') not found!" #~ msgstr "XRC-Ressource '%s' (Klasse '%s') nicht gefunden!" #~ msgid "XRC resource: Cannot create animation from '%s'." #~ msgstr "XRC-Ressource: Kann aus '%s' keine Animation erstellen." #~ msgid "XRC resource: Cannot create bitmap from '%s'." #~ msgstr "XRC-Ressource: Kann aus '%s' keine Bitmap erstellen." #~ msgid "XRC resource: Incorrect colour specification '%s' for property '%s'." #~ msgstr "XRC-Ressource: Falsche Farb-Angabe '%s' für Eigenschaft '%s'." #~ msgid "[EMPTY]" #~ msgstr "[leer]" #~ msgid "catalog file for domain '%s' not found." #~ msgstr "Nachrichtenkatalog für Sprachbereich '%s' nicht gefunden." #~ msgid "delegate has no type info" #~ msgstr "Delegate hat keine Typ-Info" #~ msgid "encoding %i" #~ msgstr "Kodierung %i" #~ msgid "establish" #~ msgstr "Verbunden" #~ msgid "initiate" #~ msgstr "einleiten" #~ msgid "invalid eof() return value." #~ msgstr "ungültiger 'eof()'-Rückgabewert." #~ msgid "looking for catalog '%s' in path '%s'." #~ msgstr "Suche Nachrichtenkatalog '%s' in Pfad '%s'." #~ msgid "unknown line terminator" #~ msgstr "Unbekanntes Zeilenende" #~ msgid "writing" #~ msgstr "Schreiben" #~ msgid "wxRichTextBulletsPage" #~ msgstr "wxRichTextBulletsPage" #~ msgid "wxRichTextFontPage" #~ msgstr "wxRichTextFontPage" #~ msgid "wxRichTextListStylePage" #~ msgstr "wxRichTextListStylePage" #~ msgid "wxRichTextStylePage" #~ msgstr "wxRichTextStylePage" #~ msgid "wxSocket: invalid signature in ReadMsg." #~ msgstr "wxSocket: ungültige Signatur in ReadMsg." #~ msgid "wxSocket: unknown event!." #~ msgstr "wxSocket: unbekanntes Ereignis!." #~ msgid "|<<" #~ msgstr "|<<" ginkgocadx-3.8.7/cadxcore/lang/el/000077500000000000000000000000001314736454600167755ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/el/cadxcore.mo000066400000000000000000000036351314736454600211310ustar00rootroot00000000000000 + $*. 3?GOU]ejqw y _  0=N ]j{ 7L _lnw     : ).../00/00/0000 00:00:00644654645@AddAgeApplyAreaCommentsContinueDataDateDate:ER7JPEGParameters:PatientPreviewPrintProfileResultsSaveSearchTodayXYesterdayall fileserrorProject-Id-Version: ginkgocadx Report-Msgid-Bugs-To: FULL NAME POT-Creation-Date: 2014-06-11 15:48+0100 PO-Revision-Date: 2014-06-11 15:49+0100 Last-Translator: Carlos Barrales Ruiz Language-Team: Ελληνικά, Σύγχρονα Language: el MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 1.6.5 X-Launchpad-Export-Date: 2012-04-24 11:40+0000 X-Poedit-Basepath: . X-Poedit-KeywordsList: _;_Std X-Poedit-SourceCharset: utf-8 X-Poedit-SearchPath-0: ..\.. : ).../00/00/0000 00:00:00644654645@ΠροσθήκηΗλικίαΕφαρμογήΠεριοχήΣχόλιαΣυνέχειαΔεδομέναΗμερομηνίαΗμερομηνία:ER7JPEGΠαράμετροι:ΑσθενήςΠροεπισκόπησηΕκτύπωσηΠροφίλΑποτελέσματαΑποθήκευσηΑναζήτησηΣήμεραXΧθεςόλα τα αρχείασφάλμαginkgocadx-3.8.7/cadxcore/lang/el/cadxcore.po000066400000000000000000005451531314736454600211420ustar00rootroot00000000000000# msgid "" msgstr "" "Project-Id-Version: ginkgocadx\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2014-06-11 15:48+0100\n" "PO-Revision-Date: 2014-06-11 15:49+0100\n" "Last-Translator: Carlos Barrales Ruiz \n" "Language-Team: Ελληνικά, Σύγχρονα \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" "X-Launchpad-Export-Date: 2012-04-24 11:40+0000\n" "X-Poedit-Basepath: .\n" "X-Poedit-KeywordsList: _;_Std\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SearchPath-0: ..\\..\n" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Red Vessels" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Metal" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Green" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "GE Color" msgstr "Χρώμα" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PET" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "P-Value" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "" #: ..\../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #: ..\../api/dicom/idicomconformance.cpp:214 #: ..\../api/dicom/idicomconformance.cpp:220 msgid "GIL/DICOM/Conformance" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid "Unable to add supported transfer syntax " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid " to SOP Class " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr "" #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr "" #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid "Unable to add supported SOP Class " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid " to Modality " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr "" #: ..\../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "Slice" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "of" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "Volume" msgstr "" #: ..\../api/iannotator.cpp:107 msgid "Voxel:" msgstr "" #: ..\../api/iannotator.cpp:110 msgid "Image without metric information" msgstr "" #: ..\../api/iannotator.cpp:119 msgid "Slice thickness" msgstr "" #: ..\../api/iannotator.cpp:127 msgid "Slice location" msgstr "" #: ..\../api/iannotator.cpp:139 msgid "Scale" msgstr "" #: ..\../api/iannotator.cpp:147 msgid "Right" msgstr "" #: ..\../api/iannotator.cpp:149 msgid "Left" msgstr "" #: ..\../api/iannotator.cpp:219 msgid "Position:" msgstr "" #: ..\../api/iannotator.cpp:272 msgid "Value:" msgstr "" #: ..\../api/iexception.cpp:52 msgid "Exception in component" msgstr "" #: ..\../api/initwx.cpp:439 msgid "Initializing environment ..." msgstr "" #: ..\../api/initwx.cpp:446 ..\../api/initwx.cpp:447 ..\../api/initwx.cpp:448 #: ..\../api/initwx.cpp:449 ..\../api/initwx.cpp:450 ..\../api/initwx.cpp:451 #: ..\../api/initwx.cpp:452 ..\../api/initwx.cpp:453 msgid "Ginkgo CADx restrictions" msgstr "" #: ..\../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "" #: ..\../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "" #: ..\../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "" #: ..\../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "" #: ..\../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "" #: ..\../api/initwx.cpp:451 msgid "Export images" msgstr "" #: ..\../api/initwx.cpp:452 #, fuzzy msgid "Acquire DICOM files" msgstr "όλα τα αρχεία" #: ..\../api/initwx.cpp:453 msgid "Import files to DICOM format" msgstr "" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "Online manual" msgstr "" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "URL of manual" msgstr "" #: ..\../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "" #: ..\../api/initwx.cpp:459 msgid "Online support" msgstr "" #: ..\../api/initwx.cpp:459 msgid "URL of online support" msgstr "" #: ..\../api/initwx.cpp:459 msgid "http://ginkgo-cadx.com/" msgstr "" #: ..\../api/initwx.cpp:460 ..\../api/initwx.cpp:461 msgid "Program Updates" msgstr "" #: ..\../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "" #: ..\../api/initwx.cpp:461 msgid "Update period (days)" msgstr "" #: ..\../api/initwx.cpp:462 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "" #: ..\../api/initwx.cpp:462 msgid "Setup Security" msgstr "" #: ..\../api/initwx.cpp:463 msgid "Show on startup" msgstr "" #: ..\../api/initwx.cpp:463 msgid "Show on startup default value" msgstr "" #: ..\../api/initwx.cpp:465 ..\../api/initwx.cpp:466 #: ..\../main/gui/history3/historypanel3.cpp:328 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "" #: ..\../api/initwx.cpp:465 msgid "Settings menu" msgstr "" #: ..\../api/initwx.cpp:466 msgid "License menu" msgstr "" #: ..\../api/initwx.cpp:467 ..\../api/initwx.cpp:468 ..\../api/initwx.cpp:469 #: ..\../api/initwx.cpp:470 ..\../api/initwx.cpp:471 ..\../api/initwx.cpp:472 #: ..\../api/initwx.cpp:473 ..\../api/initwx.cpp:474 msgid "PACS Limits" msgstr "" #: ..\../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "" #: ..\../api/initwx.cpp:468 msgid "Upload images to a PACS server" msgstr "" #: ..\../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "" #: ..\../api/initwx.cpp:470 msgid "Enable remote PACS configuration" msgstr "" #: ..\../api/initwx.cpp:471 msgid "Enable TLS configuration" msgstr "" #: ..\../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "" #: ..\../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "" #: ..\../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "" #: ..\../api/initwx.cpp:475 ..\../api/initwx.cpp:476 ..\../api/initwx.cpp:477 #: ..\../api/initwx.cpp:478 ..\../api/initwx.cpp:479 ..\../api/initwx.cpp:480 msgid "Import" msgstr "" #: ..\../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "" #: ..\../api/initwx.cpp:476 msgid "Show accession number input" msgstr "" #: ..\../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "" #: ..\../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" #: ..\../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "" #: ..\../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "" #: ..\../api/initwx.cpp:482 msgid "HL7 Service" msgstr "" #: ..\../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "" #: ..\../api/initwx.cpp:483 ..\../api/initwx.cpp:484 ..\../api/initwx.cpp:485 msgid "XML dicomization" msgstr "" #: ..\../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "" #: ..\../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "" #: ..\../api/initwx.cpp:485 msgid "Default ORU template" msgstr "" #: ..\../api/initwx.cpp:488 ..\../api/initwx.cpp:489 ..\../api/initwx.cpp:491 #: ..\../api/initwx.cpp:493 ..\../api/initwx.cpp:494 ..\../api/initwx.cpp:495 #: ..\../api/initwx.cpp:496 ..\../api/initwx.cpp:498 msgid "Style" msgstr "" #: ..\../api/initwx.cpp:503 #, c-format msgid "Download %s images" msgstr "" #: ..\../api/initwx.cpp:504 ..\../api/initwx.cpp:508 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:21 msgid "PACS" msgstr "" #: ..\../api/initwx.cpp:507 #, fuzzy msgid "Download all modalities" msgstr "όλα τα αρχεία" #: ..\../api/initwx.cpp:510 msgid "OpenGL" msgstr "" #: ..\../api/initwx.cpp:510 msgid "Enable shaders" msgstr "" #: ..\../api/initwx.cpp:513 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:388 msgid "Ginkgo Cloud" msgstr "" #: ..\../api/initwx.cpp:513 msgid "Download from Ginkgo Cloud" msgstr "" #: ..\../api/initwx.cpp:560 msgid "Tools loading base ..." msgstr "" #: ..\../api/initwx.cpp:562 msgid "Starting tools..." msgstr "" #: ..\../api/initwx.cpp:566 msgid "Loading plugins ..." msgstr "" #: ..\../api/initwx.cpp:580 msgid "Unable to start GinkgoCADx:\n" msgstr "" #: ..\../api/initwx.cpp:580 ..\../api/initwx.cpp:621 msgid "error" msgstr "σφάλμα" #: ..\../api/initwx.cpp:584 msgid "Loading resources ..." msgstr "" #: ..\../api/initwx.cpp:587 msgid "Starting services..." msgstr "" #: ..\../api/initwx.cpp:601 msgid "Configuring environment ..." msgstr "" #: ..\../api/initwx.cpp:621 msgid "Failed to set permissions:\n" msgstr "" #: ..\../api/initwx.cpp:634 msgid "Updating ..." msgstr "" #: ..\../api/initwx.cpp:638 #, fuzzy msgid "Interpreting parameters ..." msgstr "Παράμετροι:" #: ..\../api/initwx.cpp:689 #, fuzzy msgid "Error unregistering tools: " msgstr "σφάλμα" #: ..\../api/initwx.cpp:769 msgid "Starting" msgstr "" #: ..\../api/ivista.cpp:36 ..\../commands/comandocarga.cpp:73 msgid "Loading..." msgstr "" #: ..\../api/iwidgets.cpp:268 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ..\../main/gui/import/pasosimportacionbase.cpp:151 msgid "Name" msgstr "" #: ..\../api/iwidgets.cpp:285 msgid "Area" msgstr "Περιοχή" #: ..\../api/iwidgets.cpp:302 msgid "Perimeter" msgstr "" #: ..\../api/iwidgets.cpp:316 msgid "Travel (I)" msgstr "" #: ..\../api/iwidgets.cpp:326 msgid "Travel (M)" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #: ..\../api/threads/thread.cpp:120 msgid "Threading" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid "Error while running thread: " msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid " : " msgstr " : " #: ..\../api/threads/thread.cpp:120 msgid "Internal error while running thread: " msgstr "" #: ..\../api/widgetserializable.cpp:60 #, fuzzy msgid "Creation Date" msgstr "Ημερομηνία" #: ..\../api/widgetserializable.cpp:65 #, fuzzy msgid "Modification Date" msgstr "Ημερομηνία" #: ..\../api/widgetserializable.cpp:68 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ..\../wx/gnkinforme/gnkinformebase.cpp:40 msgid "Physician" msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:55 #: ..\../commands/pacsdownloadcommand.cpp:88 #: ..\../commands/synchronizationcommand.cpp:70 #, fuzzy msgid "Downloading files ..." msgstr "όλα τα αρχεία" #: ..\../commands/acquirefromurlcommand.cpp:69 #: ..\../commands/synchronizationcommand.cpp:91 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, c-format msgid "Downloading file %d" msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:81 #, fuzzy msgid "Error downloading file: " msgstr "σφάλμα" #: ..\../commands/acquirefromurlcommand.cpp:95 #: ..\../commands/pacsdownloadcommand.cpp:114 #: ..\../commands/synchronizationcommand.cpp:121 #, fuzzy msgid "Internal Error" msgstr "σφάλμα" #: ..\../commands/acquirefromurlcommand.cpp:115 #, fuzzy msgid "Error downloading files: " msgstr "όλα τα αρχεία" #: ..\../commands/autocleaningcommand.cpp:62 msgid "Cleaning dicomdir..." msgstr "" #: ..\../commands/cloudcommand.cpp:67 #, fuzzy msgid "Downloading files..." msgstr "όλα τα αρχεία" #: ..\../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "" #: ..\../commands/cloudcommand.cpp:183 msgid "Unknown operation" msgstr "" #: ..\../commands/cloudcommand.cpp:188 msgid "Error in cloud operation. See log to get more details..." msgstr "" #: ..\../commands/cloudcommand.cpp:249 msgid "Could to retrieve study." msgstr "" #: ..\../commands/cloudcommand.cpp:260 ..\../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" #: ..\../commands/cloudcommand.cpp:262 #, fuzzy msgid "Error retrieving study." msgstr "σφάλμα" #: ..\../commands/cloudcommand.cpp:271 msgid "Study successfully retrieved." msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "Speed" msgstr "Ταχύτητα" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "bytes/sec during" msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "seconds" msgstr "" #: ..\../commands/cloudcommand.cpp:275 msgid "Empty Response" msgstr "" #: ..\../commands/cloudcommand.cpp:289 #, fuzzy msgid "Extracting files..." msgstr "όλα τα αρχεία" #: ..\../commands/cloudcommand.cpp:313 ..\../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "" #: ..\../commands/cloudcommand.cpp:383 msgid "Could to perform query." msgstr "" #: ..\../commands/cloudcommand.cpp:396 #, fuzzy msgid "Error perfoming the query." msgstr "σφάλμα" #: ..\../commands/cloudcommand.cpp:405 msgid "Query successfully performed." msgstr "" #: ..\../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "" #: ..\../commands/cloudcommand.cpp:472 msgid "Unknown JSon attribute:" msgstr "" #: ..\../commands/cloudcommand.cpp:482 #, fuzzy msgid "Error parsing JSon: " msgstr "σφάλμα" #: ..\../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "" #: ..\../commands/cloudcommand.cpp:515 #: ..\../commands/openremovableunit.cpp:148 ..\../main/gui/open/abrir.cpp:119 #: ..\../main/gui/open/abrir.cpp:159 ..\../main/gui/open/opendialogs.cpp:146 msgid "Storing in the history..." msgstr "" #: ..\../commands/comandoactualizaciones.cpp:46 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:536 msgid "Check Updates" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:136 msgid "Not enough parameters found on XML" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:145 msgid "XML parsing internal error" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Error checking application updates" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Ginkgo CADx updates" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:170 msgid "Internal error checking updates" msgstr "" #: ..\../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "" #: ..\../commands/comandocarga.cpp:92 ..\../commands/comandocarga.cpp:96 msgid "Exception loading:" msgstr "" #: ..\../commands/comandocarga.cpp:100 msgid "Study malformed or unsupported" msgstr "" #: ..\../commands/comandocarga.cpp:129 ..\../commands/comandocarga.cpp:139 #, fuzzy msgid "Error loading study: " msgstr "σφάλμα" #: ..\../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "" #: ..\../commands/comandocarga.cpp:144 #, fuzzy msgid "Error loading study." msgstr "σφάλμα" #: ..\../commands/comandocarga.cpp:149 msgid "Load canceled by user" msgstr "" #: ..\../commands/comandocarga.cpp:156 #: ..\../main/gui/history3/historypanel3.cpp:1056 #: ..\../main/gui/history3/historypanel3.cpp:1063 #: ..\../main/gui/history3/historypanel3.cpp:1068 #, fuzzy msgid "Error loading study" msgstr "σφάλμα" #: ..\../commands/comandoexportacion.cpp:81 #: ..\../commands/exporttodicomdircommand.cpp:214 #, fuzzy msgid "Exporting files..." msgstr "όλα τα αρχεία" #: ..\../commands/comandoexportacion.cpp:105 #: ..\../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "" #: ..\../commands/comandoexportacion.cpp:158 #, c-format msgid "Exporting file %d of %d" msgstr "" #: ..\../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "" #: ..\../commands/comandoexportacion.cpp:233 msgid "image_%m-%d-%Y_" msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:108 msgid "Exploring directory ..." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:122 msgid "Reading DICOMDIR ..." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:142 #: ..\../commands/comandoincluirhistorial.cpp:156 #: ..\../commands/comandoincluirhistorial.cpp:177 #, fuzzy msgid "Including files in the history .." msgstr "όλα τα αρχεία" #: ..\../commands/comandoincluirhistorial.cpp:196 msgid "Exploring directory " msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:256 #: ..\../commands/linkhistorycommand.cpp:118 msgid "Image acquisition finished." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:258 #, c-format msgid "There have been included %d images." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:261 #: ..\../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:273 #: ..\../commands/linkhistorycommand.cpp:133 #, fuzzy msgid "This files doesn't exist:" msgstr "όλα τα αρχεία" #: ..\../commands/comandoincluirhistorial.cpp:284 #: ..\../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:296 #: ..\../commands/linkhistorycommand.cpp:156 #, fuzzy msgid "This files are Dicom Dirs:" msgstr "όλα τα αρχεία" #: ..\../commands/comandopacs.cpp:58 ..\../commands/pacsdownloadcommand.cpp:61 #: ..\../commands/sendpacscommand.cpp:137 msgid "There is not any Remote PACS configured" msgstr "" #: ..\../commands/comandopacs.cpp:84 msgid "Querying PACS ..." msgstr "" #: ..\../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "" #: ..\../commands/comandopacs.cpp:98 #, fuzzy msgid "Starting Search ..." msgstr "Αναζήτηση" #: ..\../commands/comandopacs.cpp:108 #: ..\../commands/pacsdownloadcommand.cpp:101 msgid "Server ID not found. ID = " msgstr "" #: ..\../commands/comandopacs.cpp:110 ..\../commands/comandopacs.cpp:112 #: ..\../commands/comandopacs.cpp:114 ..\../commands/comandopacs.cpp:116 msgid "Query error with PACS Id " msgstr "" #: ..\../commands/comandopacs.cpp:116 #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/gui/history3/historypanel3.cpp:1068 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 #, fuzzy msgid "Internal error" msgstr "σφάλμα" #: ..\../commands/comandopacs.cpp:135 #, fuzzy msgid "Failed to perform search: " msgstr "Αναζήτηση" #: ..\../commands/dbmigrationcommand.cpp:94 #: ..\../commands/dbmigrationcommand.cpp:103 msgid "Migrating old DICOM Dir ..." msgstr "" #: ..\../commands/dbmigrationcommand.cpp:99 #: ..\../commands/dbmigrationcommand.cpp:108 #, fuzzy msgid "Including files ..." msgstr "όλα τα αρχεία" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 #: ..\../commands/dicomizecommand.cpp:181 #: ..\../commands/openremovableunit.cpp:74 #: ..\../commands/openremovableunit.cpp:110 #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../commands/pdfextractercommand.cpp:130 #: ..\../main/controllers/historycontroller.cpp:447 #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 #: ..\../main/controllers/historycontroller.cpp:1976 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ..\../main/gui/export/parametrosprincipales.cpp:161 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 #: ..\../main/gui/history3/historypanel3.cpp:1045 #: ..\../main/gui/history3/historypanel3.cpp:1078 #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1119 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 #: ..\../main/gui/import/selectimagesimportation.cpp:141 #: ..\../main/gui/import/selectimagesimportation.cpp:342 #: ..\../main/gui/import/selectimagesimportation.cpp:743 #: ..\../main/gui/import/selectimagesimportation.cpp:761 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ..\../main/gui/login/dialogologin.cpp:50 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ..\../main/gui/open/opendialogs.cpp:58 #: ..\../main/gui/open/opendialogs.cpp:62 #: ..\../main/gui/open/opendialogs.cpp:134 #: ..\../main/gui/progress/statusbarprogreso.cpp:284 #: ..\../main/gui/progress/statusbarprogreso.cpp:287 #: ..\../main/gui/progress/statusbarprogreso.cpp:292 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Info" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:123 msgid "Migration finisthed successfully" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:27 #: ..\../commands/dialogopathssobreescribirbase.cpp:62 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "Overwrite" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:65 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ..\../main/gui/history3/historypanel3base.cpp:339 #: ..\../main/gui/history3/historypanel3base.cpp:415 #: ..\../main/gui/history3/historypanel3base.cpp:486 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ..\../main/gui/open/opendialogsbase.cpp:53 #: ..\../main/gui/open/opendialogsbase.cpp:131 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ..\../widgets/gui/calibracionbase.cpp:86 #: ..\../widgets/gui/selecciontextobase.cpp:60 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:24 #: ..\../commands/dicomizationcompletebase.cpp:33 #: ..\../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:56 msgid "Don't show this message again" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:62 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ..\../main/gui/history3/historypanel3base.cpp:411 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ..\../widgets/gui/calibracionbase.cpp:82 #: ..\../widgets/gui/selecciontextobase.cpp:56 msgid "Accept" msgstr "" #: ..\../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "" #: ..\../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "" #: ..\../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "" #: ..\../commands/dicomizecommand.cpp:179 msgid "Import process failed:" msgstr "" #: ..\../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" #: ..\../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "" #: ..\../commands/dicomizecommand.cpp:370 msgid "Unknown error in dicomization process" msgstr "" #: ..\../commands/dicomizecommand.cpp:431 #: ..\../commands/dicomizecommand.cpp:442 #: ..\../commands/sendpacscommand.cpp:185 #, fuzzy msgid "Error sending evidences:" msgstr "σφάλμα" #: ..\../commands/dicomizecommand.cpp:437 #: ..\../commands/dicomizecommand.cpp:448 msgid "Can not upload to the PACS:\n" msgstr "" #: ..\../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:261 #: ..\../commands/exporttodicomdircommand.cpp:338 #, c-format msgid "Exporting series %d of %d" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:279 #: ..\../commands/exporttodicomdircommand.cpp:385 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #, fuzzy msgid "There was an error creating directory" msgstr "σφάλμα" #: ..\../commands/exporttodicomdircommand.cpp:303 #: ..\../commands/exporttodicomdircommand.cpp:408 #, fuzzy msgid "There was an error writing file" msgstr "σφάλμα" #: ..\../commands/exporttodicomdircommand.cpp:358 #, fuzzy msgid "There was an error anonymizing files" msgstr "όλα τα αρχεία" #: ..\../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Ignoring incoming operation " msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:298 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:473 #: ..\../commands/pacsdownloadcommand.cpp:170 #: ..\../commands/pacsdownloadcommand.cpp:179 #, fuzzy msgid "Including files..." msgstr "όλα τα αρχεία" #: ..\../commands/linkhistorycommand.cpp:68 msgid "Linking study..." msgstr "" #: ..\../commands/openremovableunit.cpp:42 #: ..\../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "" #: ..\../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" #: ..\../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" #: ..\../commands/openremovableunit.cpp:130 msgid "Select drive you want to open" msgstr "" #: ..\../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" #: ..\../commands/pacsdownloadcommand.cpp:134 #, fuzzy msgid "Error downloading study: " msgstr "σφάλμα" #: ..\../commands/pdfextractercommand.cpp:103 msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "" #: ..\../commands/pdfextractercommand.cpp:103 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ..\../main/gui/progress/statusbarprogreso.cpp:278 #: ..\../widgets/gui/calibracion.cpp:205 ..\../widgets/gui/calibracion.cpp:209 #: ..\../widgets/gui/calibracion.cpp:219 ..\../widgets/gui/calibracion.cpp:225 #: ..\../widgets/gui/calibracion.cpp:229 #, fuzzy msgid "Error" msgstr "σφάλμα" #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "" #: ..\../commands/pdfextractercommand.cpp:130 msgid "PDF files extracted successfully..." msgstr "" #: ..\../commands/secondarycapturedicomizecommand.cpp:73 msgid "Ginkgo CADx Secondary Capture" msgstr "" #: ..\../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "" #: ..\../commands/sendhl7command.cpp:73 msgid "Message successfully sent" msgstr "" #: ..\../commands/sendhl7command.cpp:77 msgid "Unknown protocol" msgstr "" #: ..\../commands/sendhl7command.cpp:80 ..\../commands/sendhl7command.cpp:93 #: ..\../commands/sendhl7command.cpp:145 #, fuzzy msgid "Error sending message:" msgstr "σφάλμα" #: ..\../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "" #: ..\../commands/sendhl7command.cpp:93 ..\../commands/sendhl7command.cpp:94 #, fuzzy msgid "Unknown error" msgstr "σφάλμα" #: ..\../commands/sendhl7command.cpp:134 msgid "Failed to start connection" msgstr "" #: ..\../commands/sendhl7command.cpp:148 msgid "Error sending message. It was sent " msgstr "" #: ..\../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr "" #: ..\../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "" #: ..\../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "" #: ..\../commands/sendhl7command.cpp:258 msgid "Failed delivery confirmation:" msgstr "" #: ..\../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "" #: ..\../commands/sendpacscommand.cpp:51 #, fuzzy msgid "Send files to PACS" msgstr "όλα τα αρχεία" #: ..\../commands/sendpacscommand.cpp:155 #, fuzzy msgid "Uploading files ..." msgstr "όλα τα αρχεία" #: ..\../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "" #: ..\../commands/sendpacscommand.cpp:181 #, fuzzy msgid "Error:" msgstr "σφάλμα" #: ..\../commands/sendpacscommand.cpp:189 msgid "Error sending evidences: Internal error." msgstr "" #: ..\../commands/sendpacscommand.cpp:203 msgid "Error uploading the study to PACS: " msgstr "" #: ..\../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" #: ..\../commands/sendpacscommand.cpp:206 msgid "Retry send to PACS" msgstr "" #: ..\../commands/synchronizationcommand.cpp:104 #, fuzzy msgid "Error downloading file" msgstr "σφάλμα" #: ..\../commands/synchronizationcommand.cpp:141 #, fuzzy msgid "Error synchronizing study: " msgstr "σφάλμα" #: ..\../commands/thumbnailscommand.cpp:107 #: ..\../commands/thumbnailscommand.cpp:133 #: ..\../commands/thumbnailscommand.cpp:247 #: ..\../commands/thumbnailscommand.cpp:376 #: ..\../commands/thumbnailscommand.cpp:382 #: ..\../main/gui/import/selectimagesimportation.cpp:504 msgid "Creating Thumbnail..." msgstr "" #: ..\../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "" #: ..\../export/tools/iaddfiletohistorytool.cpp:19 #: ..\../main/gui/history3/historypanel3.cpp:632 msgid "Open study" msgstr "" #: ..\../export/tools/iangletool.cpp:19 msgid "Angle \tCtrl+A" msgstr "" #: ..\../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "" #: ..\../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "" #: ..\../export/tools/icolormaptool.cpp:20 #, fuzzy msgid "Color Map" msgstr "Χρώμα" #: ..\../export/tools/icopyimagetoclipboardtool.cpp:19 #: ..\../main/gui/open/opendialogsbase.cpp:46 #: ..\../main/gui/open/opendialogsbase.cpp:198 msgid "Copy" msgstr "" #: ..\../export/tools/icornerannotationstool.cpp:20 msgid "Window annotations" msgstr "" #: ..\../export/tools/idetachwindowtool.cpp:19 msgid "Detach window" msgstr "" #: ..\../export/tools/iimageexporttool.cpp:19 msgid "Export image..." msgstr "" #: ..\../export/tools/imarkertool.cpp:20 msgid "Marking Tools \tCtrl+M" msgstr "" #: ..\../export/tools/imetricgridtool.cpp:20 msgid "Metric grid" msgstr "" #: ..\../export/tools/inotetool.cpp:19 msgid "Text Note \tCtrl+N" msgstr "" #: ..\../export/tools/ipacsuploadtool.cpp:19 msgid "Upload study..." msgstr "" #: ..\../export/tools/ipixelsbluringtool.cpp:20 msgid "Pixels blurring" msgstr "" #: ..\../export/tools/ipointertool.cpp:19 msgid "Pointer \tEsc" msgstr "" #: ..\../export/tools/iqueryretrievetool.cpp:19 #: ..\../main/tools/queryretrievehistorytool.cpp:25 #: ..\../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "" #: ..\../export/tools/iresettool.cpp:19 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 msgid "Reset" msgstr "" #: ..\../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "" #: ..\../export/tools/iruletool.cpp:19 msgid "Rule \tCtrl+R" msgstr "" #: ..\../export/tools/isecondarycapturetool.cpp:19 msgid "Save snapshot as new series..." msgstr "" #: ..\../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "" #: ..\../export/tools/ishowtagstool.cpp:19 #: ..\../main/tools/showtagshistorytool.cpp:27 msgid "DICOM inspector" msgstr "" #: ..\../export/tools/isimpleprinttool.cpp:19 #: ..\../main/tools/simpleprinttool.cpp:226 msgid "Print" msgstr "Εκτύπωση" #: ..\../export/tools/istartdicomizationtool.cpp:19 msgid "Dicomize..." msgstr "" #: ..\../export/tools/itoolpan.cpp:19 msgid "Pan \tCtrl+P" msgstr "" #: ..\../export/tools/itoolslider.cpp:19 msgid "Slider \tCtrl+S" msgstr "" #: ..\../export/tools/itoolwindowlevel.cpp:19 msgid "Window/Level \tCtrl+W" msgstr "" #: ..\../export/tools/itoolzoom.cpp:19 msgid "Zoom \tCtrl+O" msgstr "" #: ..\../export/tools/itrackballtool.cpp:19 msgid "Trackball \tCtrl+T" msgstr "" #: ..\../export/tools/iundotool.cpp:20 ..\../main/tools/undotool.cpp:109 msgid "Undo" msgstr "" #: ..\../export/tools/ivideotool.cpp:19 msgid "Video \tCtrl+Space" msgstr "" #: ..\../export/tools/iwindowlayouttool.cpp:20 msgid "Window layout" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:161 msgid "Studies with" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:210 msgid "Reading properties" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:219 #: ..\../main/controllers/controladorcarga.cpp:642 #: ..\../main/controllers/controladorcarga.cpp:888 #: ..\../main/controllers/streaming/streamingloader.cpp:600 #, fuzzy msgid "Error reading the study: " msgstr "σφάλμα" #: ..\../main/controllers/controladorcarga.cpp:224 #: ..\../main/controllers/controladorcarga.cpp:229 #: ..\../main/controllers/controladorcarga.cpp:647 #: ..\../main/controllers/controladorcarga.cpp:893 msgid "Internal error reading the study: " msgstr "" #: ..\../main/controllers/controladorcarga.cpp:269 #: ..\../main/controllers/controladorcarga.cpp:281 #: ..\../main/controllers/controladorcarga.cpp:905 msgid "Spacing is not valid: (" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:305 #: ..\../main/controllers/controladorcarga.cpp:338 #: ..\../main/controllers/controladorcarga.cpp:372 #: ..\../main/controllers/controladorcarga.cpp:408 #: ..\../main/controllers/controladorcarga.cpp:441 #: ..\../main/controllers/controladorcarga.cpp:474 #: ..\../main/controllers/controladorcarga.cpp:507 #: ..\../main/controllers/controladorcarga.cpp:540 #: ..\../main/controllers/controladorcarga.cpp:573 #: ..\../main/controllers/controladorcarga.cpp:606 #: ..\../main/controllers/controladorcarga.cpp:935 msgid "Error loading the study: Out of memory" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:375 msgid "Error loading the study: Internal Error" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:630 #: ..\../main/controllers/streaming/streamingloader.cpp:1023 #: ..\../main/controllers/streaming/streamingloader.cpp:1223 #: ..\../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:651 #: ..\../main/controllers/controladorcarga.cpp:960 msgid "Process canceled by user." msgstr "" #: ..\../main/controllers/controladorcarga.cpp:878 msgid "Interpreting properties" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:917 msgid "Spacing of the image is invalid: (" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:942 msgid "Reading dataset" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:951 #, fuzzy msgid "Error reading the study:" msgstr "σφάλμα" #: ..\../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:972 msgid "load" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:40 msgid "Stopping HL7 sender" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:63 #: ..\../main/controllers/controladorenviohl7.cpp:76 msgid "Error starting HL7 sender" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:65 #: ..\../main/controllers/controladorenviohl7.cpp:78 msgid "HL7 sender started" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:108 msgid "HL7 controller destroyed" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:150 #, fuzzy msgid "Error processing message" msgstr "σφάλμα" #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/controllers/pacscontroller.cpp:1549 #: ..\../main/controllers/pacscontroller.cpp:1553 #: ..\../main/controllers/pacscontroller.cpp:1557 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ..\../main/gui/import/pasosimportacionbase.cpp:195 #: ..\../wx/gnkinforme/gnkinformebase.cpp:184 msgid "Unknown" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:110 msgid "Loading" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:153 msgid "Could not find entry point" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:74 msgid "Integration engine hostname not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:77 msgid "Integration engine port not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:91 msgid "Unsupported protocol" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "" #: ..\../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, c-format msgid "Downloading file %d/%d" msgstr "" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:359 msgid "Image format not supported" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:200 msgid "Receiving Association failed: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:209 msgid "Association received" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:210 msgid "Parameters:" msgstr "Παράμετροι:" #: ..\../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr ")" #: ..\../main/controllers/dcmtk/dicomservice.cpp:274 msgid "No valid presentation contexts" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "Association(dicom://" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "@" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr "" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, c-format msgid "Uploading file %d of %d" msgstr "" #: ..\../main/controllers/dicommanager.cpp:504 #: ..\../main/controllers/dicommanager.cpp:531 msgid "Extracting file..." msgstr "" #: ..\../main/controllers/historycontroller.cpp:323 msgid "Error creating history database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr "" #: ..\../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" #: ..\../main/controllers/historycontroller.cpp:343 msgid "Error creating dicomDir database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:425 #: ..\../main/controllers/historycontroller.cpp:441 msgid "Error creating thumbnails database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:560 msgid "Including image " msgstr "" #: ..\../main/controllers/historycontroller.cpp:560 #: ..\../main/controllers/historycontroller.cpp:707 msgid " of " msgstr "" #: ..\../main/controllers/historycontroller.cpp:707 msgid "Linking image " msgstr "" #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "" #: ..\../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:493 msgid "Malformed template Id (" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:493 #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "Template Id unsupported (" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:566 msgid "Unknown module Id (" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:592 msgid "Empty configuration" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:631 msgid "XML Parser Not Found. Key=" msgstr "" #: ..\../main/controllers/log4cplus/guiappender.cpp:75 msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ..\../main/gui/history3/historypanel3base.cpp:48 #: ..\../main/gui/import/pasosimportacionbase.cpp:227 msgid "Patient" msgstr "Ασθενής" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #, fuzzy msgid "Patient ID" msgstr "Ασθενής" #: ..\../main/controllers/modalitysettingscontroller.cpp:86 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ..\../main/gui/history3/historypanel3.cpp:227 #: ..\../main/gui/open/opendialogs.cpp:50 msgid "Modality" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:98 msgid "Dimensions" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:109 #, c-format msgid "Made with %s" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:167 #: ..\../main/controllers/modalitysettingscontroller.cpp:338 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1212 msgid "Downloading file" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Error downloading WADO file" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Check PACS configuration" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1428 msgid "Invalid HTTP response" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1433 msgid "Invalid HTTP code" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1472 msgid "PACS-Service" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:97 #: ..\../main/controllers/parserxmlspanish.cpp:94 msgid "Omitted Identificator" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:105 #: ..\../main/controllers/parserxmlspanish.cpp:102 msgid "Omitted AET" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:113 #: ..\../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:121 #: ..\../main/controllers/parserxmlspanish.cpp:118 msgid "Omitted port" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:206 #: ..\../main/controllers/parserxmlenglish.cpp:237 #: ..\../main/controllers/parserxmlspanish.cpp:188 #: ..\../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:212 #: ..\../main/controllers/parserxmlspanish.cpp:194 msgid "Port is not a valid number" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:248 #: ..\../main/controllers/parserxmlspanish.cpp:228 msgid "The port is not a valid number" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:265 #: ..\../main/controllers/parserxmlspanish.cpp:246 msgid "Setting not found" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:391 msgid "\"code\" attribute expected at \"patient\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:427 msgid "\"code\" attribute expected at \"physician\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:434 msgid "\"value\" attribute expected at \"physician\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:445 msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:483 msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:548 #: ..\../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:552 #: ..\../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:570 #: ..\../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:340 msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:402 msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:438 msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:445 msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:486 msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:524 msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:559 msgid "id_application expected" msgstr "" #: ..\../main/controllers/smartretrievecontroller.cpp:124 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:920 msgid "Downloading from PACS..." msgstr "" #: ..\../main/controllers/streaming/streamingloader.cpp:303 #: ..\../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" #: ..\../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ..\../main/gui/history3/historytablemodel.cpp:403 #: ..\../main/gui/history3/historytablemodel.cpp:415 #: ..\../main/gui/history3/historytablemodel.cpp:470 #: ..\../main/gui/history3/historytablemodel.cpp:482 #: ..\../main/gui/open/dicomdirtablemodel.cpp:102 #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 msgid "Exploring PACS..." msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ..\../main/gui/history3/historypanel3.cpp:225 #: ..\../main/gui/open/opendialogs.cpp:49 #, fuzzy msgid "Patient id" msgstr "Ασθενής" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ..\../main/gui/history3/historypanel3.cpp:224 #: ..\../main/gui/open/opendialogs.cpp:48 #, fuzzy msgid "Patient name" msgstr "Ασθενής" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:479 msgid "Study Instance UID" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ..\../main/gui/history3/historypanel3.cpp:231 #: ..\../main/gui/open/opendialogs.cpp:53 msgid "Accession number" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:481 #, fuzzy msgid "Study date" msgstr "Ημερομηνία" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:482 msgid "Study time" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:490 msgid "Series Instance UID" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:492 #, fuzzy msgid "Series date" msgstr "Ημερομηνία" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:493 msgid "Series time" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:519 #, fuzzy msgid "No results found" msgstr "Αποτελέσματα" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 msgid "Write query name" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 msgid "This query name is in use, do you want to overwrite it?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 msgid "Id" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 #, fuzzy msgid "Date Time" msgstr "Ημερομηνία" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ..\../main/gui/history3/historypanel3.cpp:229 #: ..\../main/gui/import/pasosimportacionbase.cpp:298 #: ..\../main/gui/import/pasosimportacionbase.cpp:340 #: ..\../main/gui/open/opendialogs.cpp:52 msgid "Description" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ..\../main/gui/import/pasosimportacionbase.cpp:276 msgid "Accession Number" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:210 msgid "Store query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:211 msgid "Remove query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:278 msgid "There is no any PACS configured" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:54 msgid "Study UID" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "Search" msgstr "Αναζήτηση" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:519 msgid "Download series" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 msgid "Download study" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:535 msgid "Link series" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:537 msgid "Link study" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:551 msgid "Properties..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 msgid "You must specify at least a modality or a period of time" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 msgid "Select a valid query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 msgid "Select a valid PACS Server" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid "Download of modality " msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 #, fuzzy msgid "Modality download error" msgstr "σφάλμα" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:786 #, fuzzy msgid "search results" msgstr "Αποτελέσματα" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:913 msgid "Downloading serie..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:916 msgid "Downloading study..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:165 msgid "PACS acquisition is restricted" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:96 msgid "Server" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ..\../main/gui/import/pasosimportacionbase.cpp:284 #: ..\../main/gui/import/pasosimportacionbase.cpp:326 #: ..\../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "Ημερομηνία" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ..\../main/gui/history3/historypanel3base.cpp:81 #, fuzzy msgid "Any date" msgstr "Ημερομηνία" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ..\../main/gui/history3/historypanel3base.cpp:85 #, fuzzy msgid "Today AM" msgstr "Σήμερα" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ..\../main/gui/history3/historypanel3base.cpp:88 #, fuzzy msgid "Today PM" msgstr "Σήμερα" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ..\../main/gui/history3/historypanel3base.cpp:91 msgid "Today" msgstr "Σήμερα" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ..\../main/gui/history3/historypanel3base.cpp:100 msgid "Yesterday" msgstr "Χθες" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ..\../main/gui/history3/historypanel3base.cpp:103 msgid "Last 7 days" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ..\../main/gui/history3/historypanel3base.cpp:106 msgid "Last 30 days" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ..\../main/gui/history3/historypanel3base.cpp:109 msgid "Last 3 months" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ..\../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ..\../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 msgid "Stored queries" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:216 msgid "Select stored queries..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ..\../main/gui/open/opendialogsbase.cpp:50 #: ..\../main/gui/open/opendialogsbase.cpp:202 msgid "Link" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:289 msgid "Download" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ..\../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:329 msgid "Series does not exist" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "Συνέχεια" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ..\../main/gui/open/opendialogsbase.cpp:127 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ..\../main/tools/metricgridtool.cpp:101 msgid "Ok" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:151 msgid "Download again" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:441 msgid "Open" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:179 msgid "Set query name" msgstr "" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:32 msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:34 msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/anonymize/anonymizedialog.cpp:64 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ..\../main/gui/export/parametrosprincipales.cpp:194 msgid "Exporting images ..." msgstr "" #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:21 msgid "Common tags" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 #, fuzzy msgid "Patient's name and surname" msgstr "Ασθενής" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 #, fuzzy msgid "Patient Id" msgstr "Ασθενής" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "Σχόλια" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:44 msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:71 #, fuzzy msgid "Add new..." msgstr "Προσθήκη" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ..\../main/tools/anonymizetool.cpp:26 #: ..\../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:136 msgid "Create new" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ..\../main/gui/anonymize/anonymizepanelbase.h:136 #, fuzzy msgid "Add DICOM tag" msgstr "Προσθήκη" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:199 msgid "Group" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:203 msgid "Element" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ..\../widgets/wangulo.cpp:1114 msgid "Value" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 msgid "Top right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 msgid "Top left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 msgid "Bottom left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 msgid "Bottom right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 msgid "You must fill in all fields" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 msgid "Window/level label in use" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 msgid "Window" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 msgid "Level" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 msgid "Do you confirm the removal of the preset?" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 #, fuzzy msgid "Data modified" msgstr "Δεδομένα" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 msgid "Modality settings" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 msgid "Default modality settings" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, c-format msgid "%s settings" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:60 msgid "settings" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Export Configuration" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Ini Files(*.ini)|*.ini" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 msgid "Existing file" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 msgid "Export successfully completed" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #, fuzzy msgid "There was an error during exportation" msgstr "σφάλμα" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Import Configuration" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Ini files(*.ini)|*.ini" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 msgid "There was an error during importation, check permissions" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 msgid "Dicom tag" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 msgid "Split horizontally..." msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 msgid "Split vertically..." msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ..\../main/tools/windowlayouttool.cpp:273 msgid "Split active horizontally" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ..\../main/tools/windowlayouttool.cpp:274 msgid "Split active vertically" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 msgid "New hanging protocol" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, c-format msgid "Window %d" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "Yes" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 msgid "Hanging protocols" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 msgid "One day" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 msgid "Two days" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 msgid "Three days" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 msgid "Two weeks" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 msgid "One month" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 msgid "Three months" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 msgid "Local database" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 msgid "Local DICOM Dir setup" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 msgid "Select DICOMDIR" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:126 msgid "Extensions settings" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 msgid "Port has to be a valid number" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:190 #, fuzzy msgid "General configuration parameters" msgstr "Παράμετροι:" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:134 msgid "Testing conectivity with the server..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:144 #, fuzzy msgid "Error connecting to url" msgstr "σφάλμα" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 msgid "hostname/port not set" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "Select certificate" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:255 msgid "Change ..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 msgid "Import ..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:279 msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:472 msgid "There are this errors: " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:525 msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:558 msgid "Testing the connection to the node ..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:561 #, fuzzy msgid "DICOM Error" msgstr "σφάλμα" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:607 msgid "The service did not respond correctly to the DICOM standard" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:616 msgid "Invalid port number" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:622 #, fuzzy msgid "WADO Error" msgstr "σφάλμα" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:703 msgid "Use by default" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:795 msgid "DICOM nodes" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:800 msgid "DICOM nodes settings" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1101 msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ..\../main/gui/export/pasosexportacionbase.cpp:20 msgid "Profile" msgstr "Προφίλ" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 msgid "Set property active" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Set property inactive" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 msgid "Set default value" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:352 msgid "Set by user" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 msgid "Profile name can't be repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:498 msgid "Profiles Settings" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #, fuzzy msgid "Confirm the removal of the profile " msgstr "Προφίλ" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:53 msgid "New User" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 msgid "User name repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 msgid "Password has to contain at least 6 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:141 msgid "No login" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 msgid "User/Password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:224 msgid "Password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:191 msgid "Password is setted" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 msgid "Password is not setted" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:195 msgid "Set password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:224 msgid "Security Setting" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 msgid "User inserted successfully" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 msgid "Password changed successfully" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 msgid "User deleted successfully" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ..\../main/gui/login/dialogologin.cpp:27 msgid "User" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ..\../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 msgid "Maximum length of title is 8 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 msgid "Title" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 msgid "Path" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 msgid "Clean before" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 msgid "Clean after" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 msgid "Location Settings" msgstr "" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:96 msgid "Anonymization settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1370 msgid "Settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 msgid "Export config..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 msgid "Import config..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "Εφαρμογή" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 msgid "Physician's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 msgid "Physician's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 msgid "Service" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 msgid "Service's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 msgid "Service's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 msgid "Local institution" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 msgid "Institution's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 msgid "Institution's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 #, fuzzy msgid "Dicomized files" msgstr "όλα τα αρχεία" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 msgid "Charset" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 msgid "ISO_IR 148" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 msgid "Automatically check for updates" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ..\../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 msgid "Proxy settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 msgid "Enable http proxy" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:218 msgid "Proxy Settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 msgid "Server settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 msgid "Host" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 msgid "Port" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 msgid "Username" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 msgid "No proxy for addresses containing" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 msgid "DICOM Dir" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 msgid "Auto-cleaning" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 msgid "MB" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ..\../main/tools/toolwindowlevel.cpp:201 msgid "Reset to default" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 msgid "Local AET" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 msgid "DICOM Nodes" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 msgid "New ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 msgid "Edit ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ..\../main/gui/history3/historypanel3.cpp:677 #: ..\../main/gui/history3/historypanel3.cpp:686 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ..\../main/gui/import/selectimagesimportation.cpp:291 #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 msgid "Set Default" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:388 msgid "DICOM Node" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 msgid "PDU (KB)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 msgid "Retrieve method" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Move" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Get" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 msgid "WADO URL" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 msgid "Retrieve mode" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ..\../main/gui/import/pasosimportacionbase.cpp:319 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1395 msgid "Series" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 msgid "Studies" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 msgid "Worklists" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 msgid "Select how do you want to handle MPPS items" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 msgid "DICOM MPPS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 msgid "HL7 messages" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 msgid "HL7" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 msgid "Abort message" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 msgid "Completed message" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 msgid "In progress message" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 msgid "Default values" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 msgid "Worklist" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 msgid "SSL/TLS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 msgid "Verify server credentials" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 msgid "Use SSL/TLS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 msgid "Certificate to use in this connection" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 msgid "Default charset" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 msgid "Advanced" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 msgid "Local AET certificate" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 msgid "Certificate used by Ginkgo CADx" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 msgid "Receiver organization Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 msgid "Petitioner System Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 msgid "Filler Application Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 msgid "Ginkgo CADx Application Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 msgid "Integration engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 msgid "Hostname / Port" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "/" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 msgid "Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ..\../main/gui/export/pasosexportacionbase.cpp:28 msgid "Format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 msgid "Message's format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "ER7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 msgid "Test engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 msgid "Test Integration Engine connectivity" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 msgid "Ginkgo Extension Title" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 msgid "Edit public key" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 msgid "Public key" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 msgid "Public key in PEM format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 msgid "Load ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 msgid "Private key" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 msgid "Private key in PEM format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 #, fuzzy msgid "Profile name" msgstr "Προφίλ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 msgid "Set active" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 msgid "Configure location" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 msgid "Location" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 msgid "Security type" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 msgid "Change Password ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 msgid "Set main password" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 msgid "Set Password" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:736 msgid "Edit User" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 msgid "User Name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 msgid "Confirm Password" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 msgid "Properties" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:814 msgid "Edit corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue} where GGGG is the tag's group in hexadecimal and EEEE is the " "tag's element." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 msgid "Window/level" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "Προσθήκη" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ..\../main/gui/history3/historytoolmenu.cpp:149 #: ..\../widgets/gui/selecciontextobase.h:58 msgid "Edit" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 msgid "Default Window/Level" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 msgid "Corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 msgid "Setup corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 msgid "Setup..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 msgid "Other settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 #, fuzzy msgid "Interpolate pixel data" msgstr "Δεδομένα" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:885 msgid "Hanging protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 msgid "Opening mode" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 msgid "Study opening criteria" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 msgid "Workspace" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 msgid "Enable/Disable" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 msgid "Top left corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 msgid "Setup window" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 msgid "Set default" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 msgid "Open in main window" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 msgid "Setup position..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 msgid "Setup undocked window position" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 msgid "Layout" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 msgid "Current layout" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 msgid "Columns" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 msgid "Series criteria" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 msgid "Select opening mode" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 msgid "Tag" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 msgid "Save" msgstr "Αποθήκευση" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 msgid "Enable background queries" msgstr "" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 msgid "Smart retrieve" msgstr "" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 msgid "Smart retrieve settings" msgstr "" #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.h:64 msgid "Export DICOM" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 msgid "Ginkgo CADx private tags" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ..\../main/gui/history3/historypanel3.cpp:340 #: ..\../main/gui/history3/historytoolmenu.cpp:158 msgid "Export" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ..\../main/gui/export/parametrosprincipales.cpp:157 msgid "Select the directory where the files will be stored" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 msgid "Select the DICOM Dir folder" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 msgid "DICOM Dir migration" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 msgid "Migrate existing (recommended)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 #, fuzzy msgid "Continue..." msgstr "Συνέχεια" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 msgid "Select other" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 msgid "Browse..." msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:106 msgid "DICOM Export" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:110 msgid "Select the format and the images you want to export" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:143 #, fuzzy msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "Όλα τα αρχεία (*.*)|*.*" #: ..\../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:150 #, fuzzy msgid "Select file" msgstr "όλα τα αρχεία" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "DICOM (native format)" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "Image (jpg, bmp, png)" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:38 msgid "Export all files of opened tab" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:55 msgid "JPEG" msgstr "JPEG" #: ..\../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:40 msgid "Image Export Wizard" msgstr "" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ..\../main/gui/license/aboutdialogbase.cpp:67 #: ..\../main/gui/license/aboutdialogbase.cpp:151 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:54 msgid "&Accept" msgstr "" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:32 msgid "Open link" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:402 msgid "File link:" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ..\../main/gui/import/pasosimportacionbase.cpp:270 msgid "Study" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:216 msgid "User name" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:397 msgid "Ginkgo Cloud link" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:437 msgid "Copy to clipboard" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "New Ginkgo Cloud study" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "To download the study, paste this url " msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 msgid "Creator" msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 msgid "Last Modificator" msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 msgid "Show link..." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "" #: ..\../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 msgid "Invalid link" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:117 #: ..\../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:119 #: ..\../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:226 #: ..\../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "Ηλικία" #: ..\../main/gui/history3/historypanel3.cpp:228 #, fuzzy msgid "Date acquired" msgstr "Ημερομηνία" #: ..\../main/gui/history3/historypanel3.cpp:230 #, fuzzy msgid "Date added" msgstr "Ημερομηνία" #: ..\../main/gui/history3/historypanel3.cpp:308 #: ..\../main/gui/history3/historytoolmenu.cpp:82 #: ..\../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:316 #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:363 #, fuzzy msgid "All patients" msgstr "όλα τα αρχεία" #: ..\../main/gui/history3/historypanel3.cpp:481 msgid "Results" msgstr "Αποτελέσματα" #: ..\../main/gui/history3/historypanel3.cpp:481 #, c-format msgid " (%d images)" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:634 msgid "Open study with .." msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:663 #: ..\../main/gui/history3/historypanel3base.cpp:482 msgid "Synchronize" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:677 msgid "&Delete from history" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:686 msgid "&Clear history" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid "Unable to open modality " msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1086 msgid "all files" msgstr "όλα τα αρχεία" #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 msgid "Select at least one series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "those series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "this series" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:57 #, fuzzy msgid "Advanced search" msgstr "Αναζήτηση" #: ..\../main/gui/history3/historypanel3base.cpp:73 #, fuzzy msgid "Acquisition date" msgstr "Ημερομηνία" #: ..\../main/gui/history3/historypanel3base.cpp:302 #: ..\../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:336 #: ..\../main/gui/history3/historytoolmenu.cpp:102 #: ..\../main/gui/history3/historytoolmenu.cpp:200 #: ..\../main/gui/history3/historytoolmenu.cpp:229 msgid "Remove" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:454 #: ..\../main/gui/history3/historypanel3base.h:187 #, fuzzy msgid "Synchronize files" msgstr "όλα τα αρχεία" #: ..\../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" #: ..\../main/gui/history3/historytablemodel.cpp:406 #: ..\../main/gui/history3/historytablemodel.cpp:418 #: ..\../main/gui/history3/historytablemodel.cpp:473 #: ..\../main/gui/history3/historytablemodel.cpp:485 #: ..\../main/gui/open/dicomdirtablemodel.cpp:105 msgid "00/00/0000 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/history3/historytoolmenu.cpp:138 msgid "Close history" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:139 #: ..\../main/gui/startup/startupform.cpp:53 msgid "History" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:201 #: ..\../main/gui/history3/historytoolmenu.cpp:230 msgid "Clear history" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:232 #, fuzzy msgid "Select all" msgstr "όλα τα αρχεία" #: ..\../main/gui/history3/historytoolmenu.cpp:233 #, fuzzy msgid "Deselect all" msgstr "όλα τα αρχεία" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 msgid "Destination" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 msgid "Status" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 #, fuzzy msgid "Error message" msgstr "σφάλμα" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 msgid "Show Message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 msgid "Edit Message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 msgid "Delete message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 #, fuzzy msgid "Error editing message" msgstr "σφάλμα" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 #, fuzzy msgid "Error purguing messages" msgstr "σφάλμα" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Stop" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Sent" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/progress/statusbarprogreso.cpp:281 msgid "Warning" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 #, fuzzy msgid "Error getting message" msgstr "σφάλμα" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 msgid "Running" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 msgid "Usually due to an error in sending a message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Start" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 #, fuzzy msgid "Error deleting messages" msgstr "σφάλμα" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 msgid "Remove sent messages" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 msgid "Exit" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 msgid "Messages" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 msgid "Refresh" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1394 msgid "View" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 msgid "Send task status:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 msgid "Message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "Ημερομηνία:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 msgid "Destination:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 msgid "Status:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 #, fuzzy msgid "Message content:" msgstr "Περιεχόμενο" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:142 msgid "OK" msgstr "" #: ..\../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "" #: ..\../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "" #: ..\../main/gui/import/generaldata.cpp:210 msgid "" "\n" "* The patient ID is required." msgstr "" #: ..\../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" #: ..\../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" #: ..\../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" #: ..\../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" #: ..\../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "" #: ..\../main/gui/import/generaldata.cpp:231 #, fuzzy msgid "Error validating fields" msgstr "σφάλμα" #: ..\../main/gui/import/pasoperfilimportacion.cpp:148 #, fuzzy msgid "Selecting Import Profile" msgstr "Προφίλ" #: ..\../main/gui/import/pasoperfilimportacion.cpp:152 msgid "You must select the profile you want to use import" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 msgid "You must select the import profile" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:21 msgid "Selected images" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:56 msgid "Preview" msgstr "Προεπισκόπηση" #: ..\../main/gui/import/pasosimportacionbase.cpp:62 #, fuzzy msgid "Remove all" msgstr "όλα τα αρχεία" #: ..\../main/gui/import/pasosimportacionbase.cpp:113 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:65 #, fuzzy msgid "Demographic data" msgstr "Δεδομένα" #: ..\../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:159 #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 #, fuzzy msgid "Birth date" msgstr "Ημερομηνία" #: ..\../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:217 msgid "Study Details" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:234 #: ..\../wx/gnkinforme/gnkinformebase.cpp:122 msgid "Weight" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:245 msgid "Kg" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:252 #: ..\../wx/gnkinforme/gnkinformebase.cpp:119 msgid "Height" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:291 #: ..\../main/gui/import/pasosimportacionbase.cpp:333 msgid "Time" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:191 #, fuzzy msgid "Select files..." msgstr "όλα τα αρχεία" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste from clipboard" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:330 msgid "Delete selected items" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:342 msgid "You must select an image" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:346 #, fuzzy msgid "Generating preview..." msgstr "Προεπισκόπηση" #: ..\../main/gui/import/selectimagesimportation.cpp:500 msgid "Select images" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:715 msgid "Image selection" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:760 msgid "The file" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:52 msgid "Image Import Wizard" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:167 msgid "free of" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:181 msgid "in dicomization dir." msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, c-format msgid "Step %d of %d: " msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "" #: ..\../main/gui/license/aboutdialog.cpp:25 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:22 msgid "Ginkgo CADx" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:55 msgid "Licenses" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:58 msgid "UPDATE_INFO" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:108 #: ..\../main/gui/license/aboutdialogbase.h:88 msgid "Open Source Licenses" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:119 msgid "FamFamFam Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:120 msgid "Fugue Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:126 msgid "WxWidgets" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:127 msgid "Zlib" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:130 msgid "Dark Glass Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:23 #: ..\../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:53 msgid "Check for updates automatically" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:66 msgid "I Accept the license" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 #, fuzzy msgid "Save logs" msgstr "Αποθήκευση" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 msgid "File couldn't be stored " msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 msgid "Could not write to file" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 #, fuzzy msgid "Save log..." msgstr "Αποθήκευση" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 msgid "Clear log" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 msgid "Log" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "" #: ..\../main/gui/login/dialogologin.cpp:50 msgid "The username or password is incorrect" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:250 msgid "Tasks" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1139 msgid "Included in the history ..." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 #, fuzzy msgid "Check update error" msgstr "σφάλμα" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 msgid "Malformed XML" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1192 msgid "Error in interpreting the parameters of the command line. (" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 msgid "Error parsing integration XML:\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #, fuzzy msgid "PACS error:\n" msgstr "σφάλμα" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 msgid "Error executing WorkFlow\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 msgid "Close current view" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 #, fuzzy msgid "Close all" msgstr "όλα τα αρχεία" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 #, fuzzy msgid "Close all views" msgstr "όλα τα αρχεία" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "Exit application" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Show full screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1302 msgid "Tab grouping" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1329 msgid "Ginkgo CADx manual ..." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1330 msgid "Open test card" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for newest versions" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1332 msgid "Need support ..." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About " msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 msgid "HL7 monitor" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 msgid "HL7 message control" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 msgid "Log monitor" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 msgid "Log monitored" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1390 msgid "&File" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1664 #, fuzzy msgid "Unsaved data" msgstr "Δεδομένα" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 #, fuzzy msgid "Error saving" msgstr "σφάλμα" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "Full Screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "View Full Screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1708 msgid "Tab Regroup" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 #, fuzzy msgid "&Close all" msgstr "όλα τα αρχεία" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 #, fuzzy msgid "Close all windows" msgstr "όλα τα αρχεία" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1728 msgid "Tabbed organization" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "Ginkgo CADx updated" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1782 msgid "New version available (" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:29 msgid "New Update" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:34 msgid "New version available" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:43 msgid "X" msgstr "X" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:45 msgid "Close this notification" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:104 msgid "The following commands will be aborted if you close the application" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:131 msgid "Close Ginkgo CADx" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:138 msgid "User login" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:202 msgid "System authentication" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:260 msgid "Login" msgstr "" #: ..\../main/gui/open/abrir.cpp:80 ..\../main/gui/open/abrir.cpp:82 msgid "Open..." msgstr "" #: ..\../main/gui/open/opendialogs.cpp:58 msgid "There was an error reading DICOMDIR file" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:62 msgid "Select a valid DICOMDIR file" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:180 #: ..\../main/gui/open/opendialogsbase.cpp:170 #: ..\../main/gui/open/opendialogsbase.h:112 msgid "Copy or link" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:22 #: ..\../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:94 #: ..\../main/gui/open/opendialogsbase.h:85 msgid "Select drive" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:175 msgid "Do you want to copy or link files?" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ..\../main/gui/selectpacsserver/selectpacsserver.cpp:30 msgid "There aren't any PACS configured" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:69 #, fuzzy msgid "0000/00/00 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.h:57 msgid "Upload study" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 msgid "Select PACS server" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:119 msgid "Metadata" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:120 msgid "Identification information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:121 #, fuzzy msgid "Patient information" msgstr "Ασθενής" #: ..\../main/gui/paneltags/paneltags.cpp:122 msgid "Acquisition information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:123 msgid "Relationship information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:124 msgid "Image presentation information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:125 ..\../widgets/wtextbox.cpp:525 msgid "Text" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:126 msgid "Other" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:137 #: ..\../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "Δεδομένα" #: ..\../main/gui/previewpanel/previewpanel.cpp:47 msgid "Hide" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:187 #: ..\../main/gui/previewpanel/previewpanelbase.cpp:207 msgid "Previews" msgstr "" #: ..\../main/gui/progress/progresobase.cpp:23 msgid "There is no running tasks" msgstr "" #: ..\../main/gui/progress/statusbarprogreso.cpp:165 #, fuzzy msgid "0 running tasks." msgstr "0" #: ..\../main/gui/progress/statusbarprogreso.cpp:192 #, c-format msgid "There are %d pending tasks" msgstr "" #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.h:55 msgid "Select PACS" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:29 msgid "http://ginkgo-cadx.com" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:47 msgid "Ginkgo CADx Pro" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "" #: ..\../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "" #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete Widget" msgstr "" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Properties ..." msgstr "" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Widget Properties" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:114 msgid "Open file" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:115 #: ..\../main/tools/openfoldertool.cpp:27 msgid "Open folder" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:116 #: ..\../main/tools/openremovabletool.cpp:28 msgid "Open removable unit" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:117 #: ..\../main/tools/openginkgocloudlinktool.cpp:27 msgid "Open Ginkgo Cloud link" msgstr "" #: ..\../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "" #: ..\../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "" #: ..\../main/tools/colormaptool.cpp:110 #, fuzzy msgid "Invert color map" msgstr "Χρώμα" #: ..\../main/tools/cornerannotationstool.cpp:44 msgid "Hide corner annotations" msgstr "" #: ..\../main/tools/cornerannotationstool.cpp:46 msgid "Show corner annotations" msgstr "" #: ..\../main/tools/detachwindowtool.cpp:42 msgid "Attach View" msgstr "" #: ..\../main/tools/detachwindowtool.cpp:44 msgid "Detach view" msgstr "" #: ..\../main/tools/dicomizetool.cpp:28 #, fuzzy msgid "Dicomize files" msgstr "όλα τα αρχεία" #: ..\../main/tools/exportdicomdirtool.cpp:32 msgid "Export to DICOM Dir" msgstr "" #: ..\../main/tools/markertool.cpp:171 msgid "Point" msgstr "" #: ..\../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "" #: ..\../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "" #: ..\../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "" #: ..\../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "" #: ..\../main/tools/markertool.cpp:176 msgid "Free form" msgstr "" #: ..\../main/tools/metricgridtool.cpp:57 msgid "Grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:67 msgid "Grid Scale" msgstr "" #: ..\../main/tools/metricgridtool.cpp:74 #, fuzzy msgid "Scale X" msgstr "X" #: ..\../main/tools/metricgridtool.cpp:78 #, fuzzy msgid "X axis scale" msgstr "X" #: ..\../main/tools/metricgridtool.cpp:87 msgid "Scale Y" msgstr "" #: ..\../main/tools/metricgridtool.cpp:91 msgid "Y axis scale" msgstr "" #: ..\../main/tools/metricgridtool.cpp:206 msgid "Show grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:250 msgid "Hide Grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:252 msgid "Show Grid" msgstr "" #: ..\../main/tools/openfiletool.cpp:28 msgid "Open File" msgstr "" #: ..\../main/tools/pacsuploadtool.cpp:54 msgid "Send to PACS..." msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:59 msgid "Unset pixels blurring" msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:61 msgid "Set pixels blurring" msgstr "" #: ..\../main/tools/queryretrievehistorytool.cpp:25 msgid "PACS Q/R" msgstr "" #: ..\../main/tools/queryretrievetool.cpp:94 #: ..\../main/tools/searchginkgocloudhistorytool.cpp:28 #, fuzzy msgid "Search Ginkgo Cloud" msgstr "Αναζήτηση" #: ..\../main/tools/rotateandfliptool.cpp:151 msgid "Undo rotate and flip" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:156 msgid "Flip horizontal" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:157 msgid "Flip vertical" msgstr "" #: ..\../main/tools/sendpacstool.cpp:34 msgid "Send to PACS" msgstr "" #: ..\../main/tools/sendpacstool.cpp:70 msgid "Sending to PACS..." msgstr "" #: ..\../main/tools/showtagstool.cpp:42 msgid "Hide DICOM inspector" msgstr "" #: ..\../main/tools/showtagstool.cpp:44 msgid "Show DICOM inspector" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:119 msgid "Image printing" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:224 msgid "Page setup" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:225 #, fuzzy msgid "Print preview" msgstr "Εκτύπωση" #: ..\../main/tools/simpleprinttool.cpp:272 #, fuzzy msgid "Print image" msgstr "Εκτύπωση" #: ..\../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "" #: ..\../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "" #: ..\../main/tools/undotool.cpp:110 msgid "Redo" msgstr "" #: ..\../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "" #: ..\../main/tools/videotool.cpp:153 msgid "Enable loop" msgstr "" #: ..\../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:267 #, fuzzy msgid "Add column" msgstr "Προσθήκη" #: ..\../main/tools/windowlayouttool.cpp:268 #, fuzzy msgid "Add row" msgstr "Προσθήκη" #: ..\../main/tools/windowlayouttool.cpp:270 msgid "Remove column" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:271 msgid "Remove row" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:82 msgid "The tool is already registered" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:187 msgid "The module " msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:49 msgid "Unable to load PNG bitmap resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:56 msgid "Unable to load PNG image resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:63 msgid "Unable to load GIF animation resource" msgstr "" #: ..\../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "" #: ..\../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "" #: ..\../widgets/gui/calibracion.cpp:219 msgid "Enter the calibration value" msgstr "" #: ..\../widgets/gui/calibracion.cpp:225 msgid "The calibration value is too low" msgstr "" #: ..\../widgets/gui/calibracion.cpp:229 msgid "The calibration value is too high" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "" #: ..\../widgets/gui/selecciontextobase.cpp:26 msgid "Note" msgstr "" #: ..\../widgets/wangulo.cpp:1101 ..\../widgets/wangulo.cpp:1103 msgid "Type" msgstr "" #: ..\../widgets/wangulo.cpp:1101 msgid "Normal" msgstr "" #: ..\../widgets/wangulo.cpp:1103 msgid "Cobb" msgstr "" #: ..\../widgets/welipse.cpp:721 ..\../widgets/wfreeform.cpp:470 #: ..\../widgets/wpolygon.cpp:574 msgid "Center (I)" msgstr "" #: ..\../widgets/welipse.cpp:727 ..\../widgets/wfreeform.cpp:476 #: ..\../widgets/wpolygon.cpp:580 msgid "Center (M)" msgstr "" #: ..\../widgets/welipse.cpp:762 ..\../widgets/welipse.cpp:766 msgid "Greater Radius" msgstr "" #: ..\../widgets/welipse.cpp:763 ..\../widgets/welipse.cpp:767 msgid "Lower Radius" msgstr "" #: ..\../widgets/wfreeform.cpp:482 ..\../widgets/wpolygon.cpp:586 msgid "Number of Vertex" msgstr "" #: ..\../widgets/wpunto.cpp:353 msgid "Position (I)" msgstr "" #: ..\../widgets/wpunto.cpp:358 msgid "Position (M)" msgstr "" #: ..\../widgets/wrule.cpp:558 msgid "Image Calibration" msgstr "" #: ..\../widgets/wrule.cpp:663 msgid "Length" msgstr "" #: ..\../widgets/wrule.cpp:668 msgid "Points (I)" msgstr "" #: ..\../widgets/wrule.cpp:675 msgid "Points (M)" msgstr "" #: ..\../widgets/wtextbox.cpp:445 msgid "Default text" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:41 #, fuzzy msgid "Commit date" msgstr "Ημερομηνία" #: ..\../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:214 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:219 msgid "Modified" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "644654645" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:130 msgid "Commit inform" msgstr "" #: ..\../wx/propiedades/wxpropiedades.cpp:30 msgid "Properties of " msgstr "" #: ..\../wx/propiedades/wxpropiedadesbase.cpp:31 msgid "Widget's Name" msgstr "" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3701 msgid "Regular expression invalid: '" msgstr "" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "" #: ..\../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.h:56 msgid "Overwrite Paths" msgstr "" #: ..\../ginkgopro/ginkgo_pro_defines.h:21 msgid "Professional DICOM CADx environment" msgstr "" #: ..\../main/controllers/dcmtk/dicomservers.h:39 msgid "Server not found" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:99 msgid "DICOM Query/Retrieve" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:123 msgid "Not found" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:418 msgid "Advanced Settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:570 #, fuzzy msgid "Edit profile" msgstr "Προφίλ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:665 #, fuzzy msgid "Add/Edit Location" msgstr "Προσθήκη" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:784 #, fuzzy msgid "Add window/level" msgstr "Προσθήκη" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 #, fuzzy msgid "Add tag" msgstr "Προσθήκη" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 msgid "Setup window position" msgstr "" #: ..\../main/gui/countdownmessage/countdownmessagebase.h:61 msgid "Closing" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 msgid "DICOM Dir configuration" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:70 msgid "Open Ginkgo Cloud" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:123 #, fuzzy msgid "Ginkgo Cloud search" msgstr "Αναζήτηση" #: ..\../main/gui/history3/confirmdeletedialog.h:24 msgid " from History?" msgstr "" #: ..\../main/gui/history3/historypanel3base.h:100 msgid "Medical history" msgstr "" #: ..\../main/gui/history3/historypanel3base.h:161 msgid "Open With ..." msgstr "" #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Select a View" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 msgid "Message detail" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 msgid "Log node" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:87 msgid "Closing Ginkgo CADx" msgstr "" #: ..\../main/gui/paneltags/paneltagsbase.h:57 msgid "DICOM Inspector" msgstr "" #: ..\../main/license.h:31 msgid "Open Source DICOM CADx environment" msgstr "" #: ..\../widgets/gui/calibracionbase.h:65 msgid "Calibration" msgstr "" #: ..\../wx/propiedades/wxpropiedadesbase.h:62 msgid "Properties of ..." msgstr "" #: ..\../wx/thumbnailctrl/thumbnailwidget.h:44 msgid "Image Browser Dialog" msgstr "" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.h:60 msgid "Test title" msgstr "" #, fuzzy #~ msgid "The key files will not be exported" #~ msgstr "όλα τα αρχεία" #, fuzzy #~ msgid "All" #~ msgstr "όλα τα αρχεία" #~ msgid "JPG" #~ msgstr "JPG" #~ msgid "BMP" #~ msgstr "BMP" #~ msgid "Content" #~ msgstr "Περιεχόμενο" #~ msgid "Color" #~ msgstr "Χρώμα" #~ msgid "0" #~ msgstr "0" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">" #~ msgstr ">" #~ msgid "<" #~ msgstr "<" #~ msgid "unknown column" #~ msgstr "άγνωστη στήλη" #~ msgid "Zoom" #~ msgstr "Μεγέθυνση" #~ msgid "Alphabetic Mode" #~ msgstr "Αλφαβητική σειρά" #~ msgid "Down" #~ msgstr "Κάτω" #~ msgid " WL" #~ msgstr " WL" #~ msgid " WW" #~ msgstr " WW" #~ msgid "&Save" #~ msgstr "&Αποθήκευση" #~ msgid "1.0" #~ msgstr "1.0" #~ msgid "10:20" #~ msgstr "10:20" #~ msgid "1x1" #~ msgstr "1x1" #~ msgid "1x2" #~ msgstr "1x2" #~ msgid "2X2" #~ msgstr "2X2" #~ msgid "2x1" #~ msgstr "2x1" #~ msgid "31/02/2010" #~ msgstr "31/02/2010" #~ msgid "31/08/1983" #~ msgstr "31/08/1983" #~ msgid "3D tools" #~ msgstr "Εργαλεία 3D" #~ msgid "3x3" #~ msgstr "3x3" #~ msgid "4x4" #~ msgstr "4x4" #~ msgid "Code:" #~ msgstr "Κωδικός:" #~ msgid "Correction" #~ msgstr "Διόρθωση" #~ msgid "Zoom -" #~ msgstr "Μεγέθυνση -" ginkgocadx-3.8.7/cadxcore/lang/el/wxstd.mo000066400000000000000000002700541314736454600205130ustar00rootroot00000000000000C4]L4EEEEEEF FW DWNW(`WW)WWW WW(WX5X$=X bXXX!XX!XY(5Y^Y.vY'YCY#Z5Z(MZvZ9ZZZZ ["['[:[P[d[,|[1[0[% \%2\X\ r\}\\ \\~\G]"W]z]]Q]]v^^^^^^ ^ ^^^^%_?_G_ ^_0__,_$_`;`W`s``-`"`"a9%a$_a0aa"a&a"b8>bwbGb/bAc.Jcycc2ccd%d#Ed#id3d"dd$eT%eze'ee"e!e$f >f_f~f#f"f-f'g"9g5\gg&g-g/h+7h&ch,h2h-h&i&?ifi+i(i)ij3!j-Ujjj$j)j!k2k=7k4ukk kk kk k/l4l Il Tl`llll'lllm %m0m#Cm!gm#m2m8mn !n%,nRngn~n*n nn'n$o8o=o Ro ]o ko2wooooo"o p +pLp'epppp7p2q)Fqpqq$qjq%4r+Zr%r/rrrrr(s#Ases6}s6s#stt13tet ttt ttttttu0u Eu Ru#]u)uu u|u Nv Xv&cvv v vvv"v vvv vvww ww w2ww x%x%xy#y',yTyoyy&y yyy!y yzz.z0Lz}z zzzzzz{0{#O{s{{ { { {{ {0{ {||9|"Y|1|||?}H}X} a}o} u}} } }}}} }}}~~ (~3~ <~F~U~ i~u~~~~~!~3~#"D6 ? LZj} Àʀр   0<W)n#?Ł&>Yqv{ -+Ђ%)"Lh6p̓8L U_,r0zЄ(K0to&7L\.m0MO7@Yȇ#"FYBjĈӈ;.A?%*$ 09S$k'$Њ'3I+`+ϋ )A DNb (Ȍ  -9 OZ j u"ȍ7 OZ"t"Ɏ/ ; D N;[:'b0~=;>);h5ڑq9H,-y! ɔהޔ!:)Q>{#/ޕ0?-^*(#'7'_" !$$Fkz#Θ ֘/!6#Im/ ڙ4!8A9z. +# Op  Ûћڛ" &&)Mw  Μ؜-ޜ $%JNCT  ʝ$՝  !B Va i"s 3מ* 6 @NРҠ. /9+i+- 1O g$q, բ ߢ  #5I[ u  2 ڣ  (<RZj| ä) =K_t7 5GZ r ~BiSkJ7 CB_{bs0*,)C my3O2Mneԫ& 3Oms_3JOc"!֭ <"[X~N׮&گ3OoO_J[GgkV?²* J W"x ܳ <m]2˴nrmphQYOQdg`ennT~ùXBXhC]xPakͼTyG[L DQ@kr|qiXEsVdLu[llhOaj\SypV.R+:+5aGshp$6J9{PK /PYg3f Fp?TfLK\N\lWp~v[&FpG:HFN'0 ?']Yy}Y>H_51#f&fS+e,9 :),,V BHSp=T&2SY8XH?jbLVc~K~LQi[pd\F2y5<qLbNfR\0ePK`3SvG_8bCM'_u1bbjM?I[L^YQwFVdagnOFagWSD7Ns\[5Lj`HNfkaj\ )l6]>@5\ =VF,e6, X-9#! -,+Z<KQaya*("K]i3..*Yu4#!Xv!=VDZHMX67#!a \oS0 >QN nVY ? ^ O ` s :  VR F ^ ^O R    o+ C    (4%]0%j W x]_MW0@ 5@\z2 ">Vgv4|HZ[[J[\CF,)Bl_o%36Gg~B@Y&1$:CSDK(8&R$yO(0UYCPD H %"8"P"#l""-"@"#*.#Y#y#1#"###!$">$a$w$'$$4$"%+%@%6O% %%<%m%0O&6'"'']'vO(($( )7()!`)))&)))Y*_*|*)****$*$+F3+z+7+7+R,>V,,,>-MX-0-V-X.... .Y./[/\/TH0(00S0/16G1?~1A1E2?F2222&2v2UY343M4X2554b6<6A6274I7V~7F7[8x8Z9J: ;u<#<%<<-y==@= >n > y>>$? B?GM?(?L?E @#Q@0u@@$@'@ A$#A'HApAA%AOA-B(@B#iBYBBUC5YC CC=CQC@9DzDD,D7Df EtE(EEE EE E FF %F FF1gF"F"F F#G $G"/G1RGGDGPG^3HHvHI'IBIq\I!IJXKUK2LLM]NNoO7/QgQakQgR?5SuSgTZcUUU UOUXBVQVQVt?WWLXXZYY_ZwZM^[u[t"\Y\X\XJ]\]M^bN^d^j_o_P_B`X`Hx```%`aa 6a AaoNa8a?a~7b~bi5cQcc d|d>d|dnQe[e f+'fSfofa~fKfY,g5g gg<gh+h ChNhjhhhheh i*iJJiRiAi*j!9j[j ujjFjjj~jImkrk*l .lb;l ll l llll8mMm\mym:mBmn!nEw  ^2t7&)AT@\}A8BK^ v1?/z#&C=T:D$9Tm% SK"C,*~JbZY SU/ :hpJ59"4j9n66[EX~QeHRal2=MOv]eWou7f $C} 1r-!J440a (5g3 I2'Cm2Fli E V]G.@(k0! gMPh"e'h<j3s%* Go8 'fXH+sQt)=@pqWZpYv5%34Ni"dn;|>k [yU}P_)%jF8wuxc|.<;/r|* &.,_+?',AA~t(L_\[x#Zzs,5 1Q Uw`*>X7L+bn)B9WId0=^R:GDVO >icPF?SL:`3{@Bo<8N{dfq{c/ly#a.`Y Ibk+1\$Bzx< D7gMOR-]y? (error %ld: %s) - Preview#10 Envelope, 4 1/8 x 9 1/2 in#11 Envelope, 4 1/2 x 10 3/8 in#12 Envelope, 4 3/4 x 11 in#14 Envelope, 5 x 11 1/2 in#9 Envelope, 3 7/8 x 8 7/8 in%i of %i%s (or %s)%s Error%s Information%s Warning%s files (%s)|%s&About&Actual Size&Apply&Arrange Icons&Back&Bold&Cancel&Cascade&Clear&Close&Copy&Delete&Details&Down&File&Find&Finish&Font family:&Forward&Help&Home&Index&Italic&Log&Move&New&Next&Next >&Next Tip&No&OK&Open...&Paste&Point size:&Preferences&Previous&Print...&Properties&Quit&Redo&Redo &Replace&Restore&Save&Show tips at startup&Size&Stop&Style:&Underline&Undo&Undo &Unindent&Up&Weight:&Window&Yes'%s' has extra '..', ignored.'%s' is invalid'%s' is not a correct numeric value for option '%s'.'%s' is not a valid message catalog.'%s' is probably a binary buffer.'%s' should be numeric.'%s' should only contain ASCII characters.'%s' should only contain alphabetic characters.'%s' should only contain alphabetic or numeric characters.(Help)(bookmarks)10 x 14 in11 x 17 in6 3/4 Envelope, 3 5/8 x 6 1/2 in: file does not exist!: unknown charset: unknown encoding< &BackBold italic face.
    bold italic underlined
    Bold face. Italic face. A non empty collection must consist of 'element' nodesA3 sheet, 297 x 420 mmA4 sheet, 210 x 297 mmA4 small sheet, 210 x 297 mmA5 sheet, 148 x 210 mmABCDEFGabcdefg12345ASCIIAddAdd current page to bookmarksAdd to custom coloursAddToPropertyCollection called on a generic accessorAddToPropertyCollection called w/o valid adderAdding book %sAlign LeftAlign RightAllAll files (%s)|%sAll files (*)|*All files (*.*)|*.*Already Registered Object passed to SetObjectClassInfoAlready dialling ISP.Append log to file '%s' (choosing [No] will overwrite it)?Arabic (ISO-8859-6)AttributesB4 Envelope, 250 x 353 mmB4 sheet, 250 x 354 mmB5 Envelope, 176 x 250 mmB5 sheet, 182 x 257 millimeterB6 Envelope, 176 x 125 mmBMP: Couldn't allocate memory.BMP: Couldn't save invalid image.BMP: Couldn't write RGB color map.BMP: Couldn't write data.BMP: Couldn't write the file (Bitmap) header.BMP: Couldn't write the file (BitmapInfo) header.BMP: wxImage doesn't have own wxPalette.Baltic (ISO-8859-13)Baltic (old) (ISO-8859-4)BoldBottom margin (mm):C sheet, 17 x 22 inC&learC&olour:C3 Envelope, 324 x 458 mmC4 Envelope, 229 x 324 mmC5 Envelope, 162 x 229 mmC6 Envelope, 114 x 162 mmC65 Envelope, 114 x 229 mmCHM handler currently supports only local files!Can't &Undo Can't close registry key '%s'Can't copy values of unsupported type %d.Can't create registry key '%s'Can't create threadCan't create window of class %sCan't delete key '%s'Can't delete the INI file '%s'Can't delete value '%s' from key '%s'Can't enumerate subkeys of key '%s'Can't enumerate values of key '%s'Can't export value of unsupported type %d.Can't find current position in file '%s'Can't get info about registry key '%s'Can't initialize zlib deflate stream.Can't initialize zlib inflate stream.Can't open registry key '%s'Can't read from inflate stream: %sCan't read inflate stream: unexpected EOF in underlying stream.Can't read value of '%s'Can't read value of key '%s'Can't save image to file '%s': unknown extension.Can't save log contents to file.Can't set thread priorityCan't set value of '%s'Can't write to deflate stream: %sCancelCannot create mutex.Cannot enumerate files '%s'Cannot enumerate files in directory '%s'Cannot find active dialup connection: %sCannot find the location of address book fileCannot get the hostnameCannot get the official hostnameCannot hang up - no active dialup connection.Cannot initialize OLECannot load icon from '%s'.Cannot load resources from file '%s'.Cannot open HTML document: %sCannot open HTML help book: %sCannot open contents file: %sCannot open file for PostScript printing!Cannot open index file: %sCannot print empty page.Cannot read typename from '%s'!Cannot resume thread %luCannot retrieve thread scheduling policy.Cannot start thread: error writing TLS.Cannot suspend thread %luCannot wait for thread terminationCase sensitiveCeltic (ISO-8859-14)CenteredCentral European (ISO-8859-2)Choose ISP to dialChoose colourChoose fontCl&oseClear the log contentsClick to cancel the font selection.Click to confirm the font selection.CloseClose AllClose this windowCompressed HTML Help file (*.chm)|*.chm|ComputerConfig entry name cannot start with '%c'.ConfirmConfirm registry updateConnecting...ContentsConversion to charset '%s' doesn't work.Copied to clipboard:"%s"Copies:Could not create temporary file '%s'Could not extract %s into %s: %sCould not find tab for idCould not locate file '%s'.Could not start document preview.Could not start printing.Could not transfer data to windowCouldn't acquire a mutex lockCouldn't add an image to the image list.Couldn't create a timerCouldn't find symbol '%s' in a dynamic libraryCouldn't get the current thread pointerCouldn't load a PNG image - file is corrupted or not enough memory.Couldn't load sound data from '%s'.Couldn't open audio: %sCouldn't register clipboard format '%s'.Couldn't release a mutexCouldn't retrieve information about list control item %d.Couldn't save PNG image.Couldn't terminate threadCreate directoryCreate new directoryCu&tCurrent directory:Cyrillic (ISO-8859-5)D sheet, 22 x 34 inDDE poke request failedDIB Header: Encoding doesn't match bitdepth.DIB Header: Image height > 32767 pixels for file.DIB Header: Image width > 32767 pixels for file.DIB Header: Unknown bitdepth in file.DIB Header: Unknown encoding in file.DL Envelope, 110 x 220 mmDecorativeDefault encodingDefault printerDelete itemDeleted stale lock file '%s'.Dial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it.Did you know...Directory '%s' couldn't be createdDirectory does not existDirectory doesn't exist.Display all index items that contain given substring. Search is case insensitive.Display options dialogDo you want to overwrite the command used to %s files with extension "%s" ? Current value is %s, New value is %s %1DoneDone.Doubly used id : %dDownE sheet, 34 x 44 inEdit itemEntries foundErrorError creating directoryError reading config options.Error saving user configuration data.Error: Esperanto (ISO-8859-3)Execution of command '%s' failedExecution of command '%s' failed with error: %ulExecutive, 7 1/4 x 10 1/2 inExtended Unix Codepage for Japanese (EUC-JP)Extraction of '%s' into '%s' failed.Failed to access lock file.Failed to change video modeFailed to close file handleFailed to close lock file '%s'Failed to close the clipboard.Failed to connect: missing username/password.Failed to connect: no ISP to dial.Failed to copy registry value '%s'Failed to copy the contents of registry key '%s' to '%s'.Failed to copy the file '%s' to '%s'Failed to copy the registry subkey '%s' to '%s'.Failed to create DDE stringFailed to create MDI parent frame.Failed to create a temporary file nameFailed to create an anonymous pipeFailed to create connection to server '%s' on topic '%s'Failed to create cursor.Failed to create directory '%s' (Do you have the required permissions?)Failed to create registry entry for '%s' files.Failed to create the standard find/replace dialog (error code %d)Failed to display HTML document in %s encodingFailed to empty the clipboard.Failed to enumerate video modesFailed to establish an advise loop with DDE serverFailed to execute '%s' Failed to get ISP names: %sFailed to get data from the clipboardFailed to get the local system timeFailed to get the working directoryFailed to initialize GUI: no built-in themes found.Failed to initialize MS HTML Help.Failed to initialize OpenGLFailed to inspect the lock file '%s'Failed to join a thread, potential memory leak detected - please restart the programFailed to kill process %dFailed to load metafile from file "%s".Failed to load mpr.dll.Failed to load shared library '%s'Failed to lock the lock file '%s'Failed to modify file times for '%s'Failed to open CHM archive '%s'.Failed to open temporary file.Failed to open the clipboard.Failed to put data on the clipboardFailed to read PID from lock file.Failed to redirect child process input/outputFailed to redirect the child process IOFailed to register DDE server '%s'Failed to remember the encoding for the charset '%s'.Failed to remove lock file '%s'Failed to remove stale lock file '%s'.Failed to rename registry value '%s' to '%s'.Failed to rename the registry key '%s' to '%s'.Failed to retrieve data from the clipboard.Failed to retrieve file times for '%s'Failed to retrieve text of RAS error messageFailed to retrieve the supported clipboard formatsFailed to save the bitmap image to file "%s".Failed to send DDE advise notificationFailed to set FTP transfer mode to %s.Failed to set clipboard data.Failed to set permissions on lock file '%s'Failed to set temporary file permissionsFailed to store image '%s' to memory VFS!Failed to terminate a thread.Failed to terminate the advise loop with DDE serverFailed to terminate the dialup connection: %sFailed to touch the file '%s'Failed to unlock lock file '%s'Failed to unregister DDE server '%s'Failed to update user configuration file.Failed to write to lock file '%s'FileFile '%s' already exists, do you really want to overwrite it?File '%s' already exists. Do you want to replace it?File couldn't be loaded.File errorFile name exists already.Files (%s)FindFixed font:Fixed size face.
    bold italic Folio, 8 1/2 x 13 inFont size:Fork failedForward hrefs are not supportedFound %i matchesFrom:GIF: Invalid gif index.GIF: data stream seems to be truncated.GIF: error in GIF image format.GIF: not enough memory.GIF: unknown error!!!GTK+ themeGeneric PostScriptGerman Legal Fanfold, 8 1/2 x 13 inGerman Std Fanfold, 8 1/2 x 12 inGetProperty called w/o valid getterGetPropertyCollection called on a generic accessorGetPropertyCollection called w/o valid collection getterGo backGo forwardGo one level up in document hierarchyGo to home directoryGo to parent directoryGreek (ISO-8859-7)Gzip not supported by this version of zlibHTML Help Project (*.hhp)|*.hhp|HTML anchor %s does not exist.HTML files (*.html;*.htm)|*.html;*.htm|Hebrew (ISO-8859-8)HelpHelp Browser OptionsHelp IndexHelp PrintingHelp TopicsHelp books (*.htb)|*.htb|Help books (*.zip)|*.zip|Help: %sHomeHome directoryICO: Error in reading mask DIB.ICO: Error writing the image file!ICO: Image too tall for an icon.ICO: Image too wide for an icon.ICO: Invalid icon index.IFF: data stream seems to be truncated.IFF: error in IFF image format.IFF: not enough memory.IFF: unknown error!!!Illegal Object Class (Non-wxEvtHandler) as Event SourceIllegal Parameter Count for ConstructObject MethodIllegal Parameter Count for Create MethodIllegal directory name.Illegal file specification.Image and mask have different sizes.Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dllImpossible to get child process inputImpossible to get permissions for file '%s'Impossible to overwrite the file '%s'Impossible to set permissions for the file '%s'IndentIndexIndian (ISO-8859-12)Invalid TIFF image index.Invalid display mode specification '%s'.Invalid geometry specification '%s'Invalid lock file '%s'.Invalid or Null Object ID passed to GetObjectClassInfoInvalid or Null Object ID passed to HasObjectClassInfoInvalid regular expression '%s': %sItalicItaly Envelope, 110 x 230 mmJPEG: Couldn't load - file is probably corrupted.JPEG: Couldn't save image.JustifiedKOI8-RKOI8-ULandscapeLedger, 17 x 11 inLeft margin (mm):Legal, 8 1/2 x 14 inLetter Small, 8 1/2 x 11 inLetter, 8 1/2 x 11 inLightLink contained '//', converted to absolute link.Load %s fileLoading : Lock file '%s' has incorrect owner.Lock file '%s' has incorrect permissions.Log saved to the file '%s'.MDI childMS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it.Ma&ximizeMatch caseMemory VFS already contains file '%s'!MenuMetal themeMi&nimizeModernModifiedMonarch Envelope, 3 7/8 x 7 1/2 inMove downMove upNameNew directoryNew itemNewNameNextNext pageNoNo entries found.No font for displaying text in encoding '%s' found, but an alternative encoding '%s' is available. Do you want to use this encoding (otherwise you will have to choose another one)?No font for displaying text in encoding '%s' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly)?No handler found for image type.No image handler for type %d defined.No image handler for type %s defined.No matching page found yetNo soundNo unused colour in image being masked.No unused colour in image.Nordic (ISO-8859-10)NormalNormal face
    and underlined. Normal font:Note, 8 1/2 x 11 inOKObjects must have an id attributeOpen FileOpen HTML documentOperation not permitted.Option '%s' requires a value.Option '%s': '%s' cannot be converted to a date.OptionsOrientationPCX: couldn't allocate memoryPCX: image format unsupportedPCX: invalid imagePCX: this is not a PCX file.PCX: unknown error !!!PCX: version number too lowPNM: Couldn't allocate memory.PNM: File format is not recognized.PNM: File seems truncated.Page %dPage %d of %dPage SetupPage setupPagesPaper sizePassing a already registered object to SetObjectPermissionsPipe creation failedPlease choose a valid font.Please choose an existing file.Please choose the page to display:Please choose which ISP do you want to connect toPlease install a newer version of comctl32.dll (at least version 4.70 is required but you have %d.%02d) or this program won't operate correctly.PortraitPostScript filePreview:Previous pagePrintPrint PreviewPrint Preview FailurePrint RangePrint SetupPrint in colourPrint spoolingPrint this pagePrint to FilePrinterPrinter command:Printer optionsPrinter options:Printer...Printer:Printing Printing ErrorPrinting page %d...Printing...Quarto, 215 x 275 mmQuestionRead error on file '%s'ReadyRefreshRegistry key '%s' already exists.Registry key '%s' does not exist, cannot rename it.Registry key '%s' is needed for normal system operation, deleting it will leave your system in unusable state: operation aborted.Registry value '%s' already exists.Relevant entries:RemoveRemove current page from bookmarksRenderer "%s" has incompatible version %d.%d and couldn't be loaded.Rep&laceReplace &allReplace with:Revert to SavedRight margin (mm):RomanSaveSave %s fileSave &As...Save AsSave log contents to fileScriptSearchSearch directionSearch for:Search in all booksSearching...SectionsSeek error on file '%s'Select &AllSelect a document templateSelect a document viewSeparator expected after the option '%s'.SetProperty called w/o valid setterSetup...Several active dialup connections found, choosing one randomly.Show allShow all items in indexShow hidden directoriesShow/hide navigation panelShows the font preview.SizeSkipSlantSorry, could not open this file.Sorry, not enough memory to create a preview.Sorry, the format for this file is unknown.Sound data are in unsupported format.Sound file '%s' is in unsupported format.Statement, 5 1/2 x 8 1/2 inStatus:String To Colour : Incorrect colour specification : %sSwissTIFF: Couldn't allocate memory.TIFF: Error loading image.TIFF: Error reading image.TIFF: Error saving image.TIFF: Error writing image.Tabloid, 11 x 17 inTeletypeTemplatesThai (ISO-8859-11)The FTP server doesn't support passive mode.The FTP server doesn't support the PORT command.The charset '%s' is unknown. You may select another charset to replace it with or choose [Cancel] if it cannot be replacedThe clipboard format '%d' doesn't exist.The directory '%s' does not exist Create it now?The file '%s' doesn't exist and couldn't be opened. It has been removed from the most recently used files list.The font colour.The font family.The font point size.The font style.The font weight.The required parameter '%s' was not specified.The text couldn't be saved.The value for the option '%s' must be specified.There was a problem during page setup: you may need to set a default printer.Thread module initialization failed: cannot store value in thread local storageThread module initialization failed: failed to create thread keyThread module initialization failed: impossible to allocate index in thread local storageThread priority setting is ignored.Tile &HorizontallyTile &VerticallyTimeout while waiting for FTP server to connect, try passive mode.Timer creation failed.Tip of the DayTips not available, sorry!To:Too many colours in PNG, the image may be slightly blurred.Top margin (mm):Trying to remove file '%s' from memory VFS, but it is not loaded!Turkish (ISO-8859-9)TypeType must have enum - long conversionUS Std Fanfold, 14 7/8 x 11 inUnable to open requested HTML document: %sUnable to play sound asynchronously.UndeleteUnexpected parameter '%s'Unicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)Unknown DDE error %08xUnknown Object passed to GetObjectClassInfoUnknown encoding (%d)Unknown long option '%s'Unknown option '%s'Unmatched '{' in an entry for mime type %s.Unnamed commandUnsupported clipboard format.Unsupported theme '%s'.UpUsage: %sValidation conflictView files as a detailed viewView files as a list viewViewsWarning: Western European (ISO-8859-1)Western European with Euro (ISO-8859-15)Whether the font is underlined.Whole wordWhole words onlyWin32 themeWin32s on Windows 3.1Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arabic (CP 1256)Windows Baltic (CP 1257)Windows Central European (CP 1250)Windows Cyrillic (CP 1251)Windows Greek (CP 1253)Windows Hebrew (CP 1255)Windows Korean (CP 949)Windows MEWindows Turkish (CP 1254)Windows Western European (CP 1252)Windows/DOS OEM (CP 437)Write error on file '%s'XML parsing error: '%s' at line %dXPM: Malformed pixel data!YesYou cannot add a new directory to this section.Zoom &InZoom &OutZoom to &Fita DDEML application has created a prolonged race condition.a DDEML function was called without first calling the DdeInitialize function, or an invalid instance identifier was passed to a DDEML function.a client's attempt to establish a conversation has failed.a memory allocation failed.a parameter failed to be validated by the DDEML.a request for a synchronous advise transaction has timed out.a request for a synchronous data transaction has timed out.a request for a synchronous execute transaction has timed out.a request for a synchronous poke transaction has timed out.a request to end an advise transaction has timed out.a server-side transaction was attempted on a conversation that was terminated by the client, or the server terminated before completing a transaction.a transaction failed.altan application initialized as APPCLASS_MONITOR has attempted to perform a DDE transaction, or an application initialized as APPCMD_CLIENTONLY has attempted to perform server transactions.an internal call to the PostMessage function has failed. an internal error has occurred in the DDEML.an invalid transaction identifier was passed to a DDEML function. Once the application has returned from an XTYP_XACT_COMPLETE callback, the transaction identifier for that callback is no longer valid.attempt to change immutable key '%s' ignored.bad arguments to library functionbad signaturebinaryboldcan't close file '%s'can't close file descriptor %dcan't commit changes to file '%s'can't create file '%s'can't delete user configuration file '%s'can't determine if the end of file is reached on descriptor %dcan't find central directory in zipcan't find length of file on file descriptor %dcan't find user's HOME, using current directory.can't flush file descriptor %dcan't get seek position on file descriptor %dcan't load any font, abortingcan't open file '%s'can't open global configuration file '%s'.can't open user configuration file '%s'.can't open user configuration file.can't re-initialize zlib deflate streamcan't re-initialize zlib inflate streamcan't read from file descriptor %dcan't remove file '%s'can't remove temporary file '%s'can't seek on file descriptor %dcan't write buffer '%s' to disk.can't write to file descriptor %dcan't write user configuration file.checksum errorcompression errorconversion to 8-bit encoding failedctrldatedecompression errordefaulteighteentheightheleventhentry '%s' appears more than once in group '%s'error in data formaterror opening fileerror reading zip central directoryerror reading zip local headererror writing zip entry '%s': bad crc or lengthfailed to flush the file '%s'fifteenthfifthfile '%s', line %d: '%s' ignored after group header.file '%s', line %d: '=' expected.file '%s', line %d: key '%s' was first found at line %d.file '%s', line %d: value for immutable key '%s' ignored.file '%s': unexpected character %c at line %d.firstfont sizefourteenthfourthgenerate verbose log messagesincorrect event handler string, missing dotinvalid message box return valueinvalid zip fileitaliclightlocale '%s' cannot be set.midnightnineteenthninthno DDE error.no errornonamenoonnumobjects cannot have XML Text Nodesout of memoryread errorreading zip stream (entry %s): bad crcreading zip stream (entry %s): bad lengthreentrancy problem.secondseek errorseventeenthseventhshiftshow this help messagesixteenthsixthspecify display mode to use (e.g. 640x480-16)specify the theme to usestored file length not in Zip headerstrtenththe response to the transaction caused the DDE_FBUSY bit to be set.thirdthirteenthtodaytomorrowtwelfthtwentiethunderlinedunexpected " at position %d in '%s'.unknownunknown class %sunknown errorunknown error (error code %08x).unknown seek originunknown-%dunnamedunnamed%dunsupported Zip compression methodusing catalog '%s' from '%s'.write errorwxGetTimeOfDay failed.wxWidgets could not open display for '%s': exiting.wxWidgets could not open display. Exiting.yesterdayzlib error %dProject-Id-Version: wxWidgets 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2013-10-01 19:04+0200 PO-Revision-Date: 2005-02-16 09:03+0200 Last-Translator: InterZone Language-Team: Tsolakos Stavros , Nassos Yiannopoulos Language: el MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit (σφάλμα %ld: %s) - Προεπισκόπηση#10 Φάκελος, 4 1/8 x 9 1/2 ίντσες#11 Φάκελος, 4 1/2 x 10 3/8 ίντσες#12 Φάκελος, 4 3/4 x 11 ίντσες#14 Φάκελος, 5 x 11 1/2 ίντσες#9 Φάκελος, 3 7/8 x 8 7/8 ίντσες%i από %i%s (ή %s)%s Σφάλμα%s Πληροφορίες%s Προειδοποίηση%s αρχεία (%s)|%s&Περί&Πραγματικό μέγεθος&Εφαρμογή&Τακτοποίηση εικονιδίων&Πίσω&Έντονο&Ακυρο&Επικάλυψη&Καθαρισμός&Κλείσιμο&Αντιγραφή&Διαγραφή&Λεπτομέρειες&Κάτω&Αρχείο&Εύρεση&ΤέλοςΟικογένεια γραμματοσειράς:&Εμπρός&Βοήθεια&Αρχική&Ευρετήριο&Πλάγια&Καταγραφή&Μετακίνηση&Νέο&Επόμενο&Επόμενο >&Επόμενο Tip&Όχι&OK&Ανοιγμα...&ΕπικόλησηΜέγεθος κουκίδας:&Προτιμήσεις&Προηγούμενο&Εκτύπωση...&ΙδιότητεςΈ&ξοδος&Επανάληψη&Επανάληψη &Αντικατάσταση&Επαναφορά&Αποθήκευση&Εμφάνιση tips κατά την εκκίνηση&Μέγεθος&Διακοπή&Στυλ:&Υπογράμμιση&Αναίρεση&Αναίρεση Α&ποστοίχιση&Επάνω&Βάρος:&Παράθυρο&Ναι'%s' περιέχει επιπλέον '..', αγνοήθηκαν.'%s' δεν ισχύει'%s' δεν είναι μία σωστή αριθμητική τιμή για την επιλογή '%s'.'%s' δεν είναι ένας σωστός κατάλογος μηνυμάτων.'%s' είναι πιθανόν ένας δυαδικός ( binary ) buffer'%s' πρέπει να είναι αριθμητικό.'%s' πρέπει να περιέχει ASCII χαρακτήρες.'%s' πρέπει να περιέχει μόνο αλφαβητικούς χαρακτήρες.'%s' πρέπει να περιέχει μόνο αλφαβητικούς ή αριθμητικούς χαρακτήρες.(Βοήθεια)(σελιδοδείκτες)10 x 14 ίντσες11 x 17 ίντσες6 3/4 Φάκελος, 3 5/8 x 6 1/2 ίντσες: το αρχείο δεν υπάρχει!: άγνωστο σετ χαρακτήρων: άγνωστη κωδικοποίηση< &Πίσω<ΚΑΤΑΛΟΓΟΣ><ΟΔΗΓΟΣ><ΣΥΝΔΕΣΗ>Εντονη πλάγια όψη.
    έντονα πλάγια υπογραμμισμένα
    Έντονη όψηΠλάγια όψη.Μία μη άδεια συλλογή πρέπει να αποτελείται από κόμβους 'element'Φύλλο A3, 297 x 420 mmΦύλλο A4, 210 x 297 mmΜικρό φύλλο A4, 210 x 297 mmΦύλλο A5, 148 x 210 mmΑΒΓΔΕΖαβγδεζ12345ASCIIΠροσθήκηΠροσθήκη της τρέχουσας σελίδας στους σελιδοδείκτεςΠροσθήκη στα χρώματα χρήστηAddToPropertyCollection κλήθηκε σε έναν γενικό accessorAddToPropertyCollection κλήθηκε χωρίς έγκυρο προσθέτηΠροσθήκη βιβλίου %sΣτοίχιση ΑριστεράΣτοίχιση ΔεξιάΌλαΌλα τα αρχεία (%s)|%sΌλα τα αρχεία (*)|*Όλα τα αρχεία (*.*)|*.*Ένα ήδη Registered αντικείμενο δόθηκε στην SetObjectClassInfoΓίνεται ήδη κλήση προς τον παροχέα Internet(ISP).Να γίνει προσάρτηση(append) της καταγραφής(log) στο αρχείο '%s' (Επιλέγοντας [Όχι] θα το επικαλύψει(overwrite));Αραβικό (ISO-8859-6)ΧαρακτηριστικάB4 Φάκελος, 250 x 353 mmΦύλλο B4, 250 x 354 mmB5 Φάκελος, 176 x 250 mmΦύλλο B5, 182 x 257 mmB6 Φάκελος, 176 x 125 mmBMP: Δεν ήταν δυνατή η δέσμευση(allocation) μνήμης.BMP: Δεν είναι δυνατή η αποθήκευση μη έγκυρης εικόνας.BMP: Δεν ήταν δυνατή η εγγραφή του χάρτη RGB.BMP: Δεν ήταν δυνατή η εγγραφή δεδομένων.BMP: Δεν ήταν δυνατή η εγγραφή της κεφαλής του αρχείου Bitmap.BMP: Δεν ήταν δυνατή η εγγραφή της κεφαλής του αρχείου BitmapInfo.BMP: Το wxImage δεν κατέχει κάποιο wxPalette.Βαλτικό (ISO-8859-13)Βαλτικό (παλαιό) (ISO-8859-4)ΈντονοΚάτω περιθώριο (mm)Φύλλο C, 17 x 22 ίντσες&Καθάρισμα&Χρώμα:C3 Φάκελος, 324 x 458 mmC4 Φάκελος, 229 x 324 mmC5 Φάκελος, 162 x 229 mmC6 Φάκελος, 114 x 162 mmC65 Φάκελος, 114 x 229 mmο χειριστής CHM προς το παρόν υποστηρίζει μόνο τοπικά αρχεία!Δεν είναι δυνατή η αναίρεσηΔεν είναι δυνατό το κλείσιμο του κλειδιού μητρώου(registry key) '%s'Δεν είναι δυνατή η αντιγραφή τιμών μη υποστηριζομένου τύπου %d.Δεν είναι δυνατή η δημιουργία του κλειδιού μητρώου(registry key) '%s'Δεν είναι δυνατή η δημιουργία του νήματος εκτέλεσης (thread)Δεν είναι δυνατή η δημιουργία παραθύρου τάξεως %sΔεν είναι δυνατή η διαγραφή του κλειδιού '%s'Δεν είναι δυνατή η διαγραφή του αρχείου INI '%s'Δεν είναι δυνατή η διαγραφή της τιμής '%s' από το κλειδί '%s'Δεν είναι δυνατή η απαρίθμηση των υποκλειδιών του '%s'Δεν είναι δυνατή η απαρίθμηση των τιμών του κλειδιού '%s'Δεν είναι δυνατή η εξαγωγή τιμών μη υποστηριζομένου τύπου %d.Δεν είναι δυνατή η εύρεση της τρέχουσας θέσης στο αρχείου '%s'Δεν είναι δυνατή η συλλογή πληροφοριών για το κλειδί μητρώου(registry) '%s'Δεν είναι δυνατή η αρχικοποίηση της ροής zlib deflate.Δεν είναι δυνατή η αρχικοποίηση της ροής zlib inflate.Δεν είναι δυνατό το άνοιγμα του κλειδιού μητρώου(registry) '%s'Αδύνατη η ανάγνωση από την ροή inflate: %sΑδύνατη η ανάγνωση της ροής inflate: απρόσμενο EOF στην υποκείμενη ροή.Δεν είναι δυνατή η ανάγνωση της τιμής του '%s'Δεν είναι δυνατή η ανάγνωση της τιμής του κλειδιού '%s'Δεν είναι δυνατή η αποθήκευση της εικόνας στο αρχείο '%s': άγνωστη επέκτασηΔεν είναι δυνατή η αποθήκευση των περιεχομένων της καταγραφής(log) στο αρχείο.Δεν είναι δυνατή η θέση προτεραιότητας του νήματος εκτέλεσης (thread)Δεν είναι δυνατή η ανάθεση τιμής του '%s'Δεν είναι δυνατή η εγγραφή στην ροή deflate: %sΑκυροΔεν είναι δυνατή η δημιουργία του mutex.Δεν είναι δυνατή η απαρίθμηση των αρχείων '%s'Δεν είναι δυνατή η απαρίθμηση των αρχείων στον κατάλογο '%s'Δεν είναι δυνατή η εύρεση της ενεργού τηλεφωνικής συνδέσεως: %sΔεν είναι δυνατή η εύρεση της θέσης του αρχείου βιβλίου διευθύνσεωνΔεν είναι δυνατή η ανάγνωση του ονόματος διακομιστή(hostname)Δεν είναι δυνατή η ανάγνωση του επισήμου ονόματος διακομιστή(official hostname)Δεν είναι δυνατό το κλείσιμο της γραμμής - δεν υπάρχει ενεργός τηλεφωνική σύνδεση.Δεν είναι δυνατή η αρχικοποίηση του OLEΔεν είναι δυνατή η φόρτωση εικονιδίου από το '%s'Δεν είναι δυνατή η φόρτωση πόρων(resources) από το αρχείο '%s'Δεν είναι δυνατό το άνοιγμα εγγράφου HTML: %sΔεν είναι δυνατό το άνοιγμα βιβλίου βοήθειας HTML: %sΔεν είναι δυνατό το άνοιγμα των περιεχομένων του αρχείου: %sΔεν είναι δυνατό το άνοιγμα του αρχείου για εκτύπωση PostScript!Δεν είναι δυνατό το άνοιγμα του αρχείου ευρετηρίου(index): %sΔεν είναι δυνατή η εκτύπωση άδειας σελίδας.Δεν είναι δυνατή η ανάγνωση ονομάτων τύπων(typenames) από το '%s'Δεν είναι δυνατή η συνέχιση(resume) του νήματος(thread) %luΔεν είναι δυνατή η ανάκτηση της thread scheduling policy.Δεν είναι δυνατή η εκκίνηση του νήματος(thread): Σφάλμα κατά την εγγραφή του TLSΔεν είναι δυνατή η αναστολή εκτέλεσης(suspend) του νήματος(thread) %luΔεν είναι δυνατή η αναμονή(wait) για τον τερματισμό του νήματος εκτέλεσης(thread)Διάκριση κεφαλαίων-πεζώνΚελτικό (ISO-8859-14)Στο κέντροΚεντροευρωπαϊκό (ISO-8859-2)Επιλέξτε παροχέα Internet για κλήσηΕπιλέξτε χρώμαΕπιλέξτε γραμματοσειρά&ΚλείσιμοΚαθαρισμός περιεχομένων καταγραφής(log)Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς.Κάνετε κλικ για να επιβεβαιώσετε την επιλογή γραμματοσειράς.ΚλείσιμοΚλείσιμοΚλείσιμο αυτού του παραθύρου.Αρχείο βοήθειας συμπιεσμένης HTML (*.chm)|*.chm|ΥπολογιστήςΤο όνομα εισόδου διαμόρφωσης (Config entry name) δεν μπορεί να αρχίζει με '%c'ΕπιβεβαίωσηΕπιβεβαίωση ενημέρωσης μητρώου(registry update)Γίνεται σύνδεση...ΠεριεχόμεναΗ μετατροπή στο σετ χαρακτήρων '%s' δεν λειτουργείΑντιγράφηκε στο πρόχειρο:"%s"Αντίγραφα:Δεν είναι δυνατή η δημιουργία του προσωρινού αρχείου '%s'Δεν ήταν δυνατή η εξαγωγή του %s στο %s: %sΔεν ήταν δυνατή η εύρεση tab για το idΔεν είναι δυνατός ο εντοπισμός του αρχείου '%s'.Δεν ήταν δυνατή η εκκίνηση της προεπισκόπησης εγγράφου.Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης.Δεν ήταν δυνατή η μεταφορά δεδομένων στο παράθυρο.Δεν ήταν δυνατή η κτήση μιας κλειδαριάς mutexΔεν ήταν δυνατή η προσθήκη μιας εικόνας στην λίστα εικόνων.Δεν ήταν δυνατή η δημιουργία χρονοδιακόπτη (timer)Δεν ήταν δυνατός ο εντοπισμός του συμβόλου '%s' σε μια δυναμική βιβλιοθήκη.Δεν ήταν δυνατή η ανάκτηση toy τρέχοντος δείκτη νήματος εκτέλεσης(thread)Δεν ήταν δυνατή η φόρτωση εικόνας PNG - είτε το αρχείο δεν είναι έγκυρο ή δεν υπάρχει αρκετή μνήμη.Δεν ήταν δυνατή η φόρτωση δεδομένων ήχου από το '%s'Δεν είναι δυνατό το άνοιγμα του ήχου: %sΔεν ήταν δυνατή η καταχώρηση του τύπου προχείρου(clipboard format) '%s'Δεν ήταν δυνατή η απελευθέρωση ενός mutexΔεν ήταν δυνατή η ανάκτηση πληροφοριών σχετικά με το στοιχείο λίστας %d.Δεν ήταν δυνατή η αποθήκευση εικόνας PNG.Δεν ήταν δυνατός ο τερματισμός του threadΔημιουργία καταλόγουΔημιουργία νέου καταλόγουΑπο&κοπήΤρέχον κατάλογος:Κυριλλικό (ISO-8859-5)D sheet, 22 x 34 ίντσεςΗ DDE poke αίτηση απέτυχεDIB Header: Η κωδικοποίηση δεν ταιρίζει με το βάθος bit.DIB Header: Το ύψος της εικόνας είναι > 32767 εικονοστοιχεία για το αρχείο.DIB Header: Το πλάτος της εικόνας είναι > 32767 εικονοστοιχεία για το αρχείο.DIB Header: Αγνωστο βάθος bit στο αρχείο.DIB Header: Αγνωστη κωδικοποίηση στο αρχείο.Φάκελος DL, 110 x 220 mmΔιακοσμητικόςΠροκαθορισμένη κωδικοποίησηΠροκαθορισμένος εκτυπωτήςΔιαγραφή στοιχείουΔιεγράφη το απαρχειομένο(stale) αρχείο κλειδαριά (lock file) '%s'Συναρτήσεις (functions) τηλεφωνικής σύνδεσης (dialup) δεν είναι διαθέσιμες γιατί η υπηρεσία απομακρυσμένης πρόσβασης (remote access service, RAS) δεν είναι εκατεστημένη σε αυτό το μηχάνημα. Παρακαλώ εγκαταστήστε τη.Γνωρίζατε ότι...Δεν ήταν δυνατή η δημιουργία του καταλόγου '%s'Ο κατάλογος δεν υπάρχειΟ κατάλογος δεν υπάρχει.Εμφάνιση όλων των στοιχείων του ευρετηρίου δεδομένου substring. Η αναζήτηση διακρίνει μεταξύ κεφαλαίων/πεζών.Εμφάνιση του διαλόγου επιλογώνΘέλετε να επικαλύψετε την εντολή που χρησιμοποιήθηκε για να %s τα αρχεία με επέκταση "%s" ? Η τρέχουσα τιμή είναι %s, Η νέα τιμή είναι %s %1ΈτοιμοΈτοιμο.Id χρησιμοποιούμενο δύο φορές : %dΚάτωE sheet, 34 x 44 ίντσεςΕπεξεργασία στοιχείουΕισαγωγές(entries) βρέθηκανΣφάλμαΣφάλμα κατα τη δημιουργία καταλόγουΣφάλμα κατά την ανάγνωση των ρυθμίσεων.Σφάλμα κατά την εγγραφή των ρυθμίσεων χρήστη.Σφάλμα: Εσπεράντο (ISO-8859-3)Η εκτέλεση της εντολής '%s' απέτυχεΗ εκτέλεση της εντολής '%s' απέτυχε με σφάλμα: %ulExecutive, 7 1/4 x 10 1/2 ίντσεςΕκτεταμένη Κωδικοσελίδα Unix για Ιαπωνικά (EUC-JP)Η εξαγωγή του '%s' στο '%s' απέτυχεΑποτυχία πρόσβασης στο αρχείο 'κλειδωνιά'(lock file).Αποτυχία αλλαγής της κατάστασης οθόνηςΑποτυχία κλεισίματος του χειριστηρίου του αρχείου(file handle)Αποτυχία κλεισίματος του αρχείου 'κλειδωνιά'(lock file) '%s'Αποτυχία κλεισίματος του προχείρου(clipboard)Αποτυχία συνδεσης: λείπει το όνομα χρήστη/συνθηματικόΑποτυχία συνδεσης: κανένας παροχέας υπηρεσιών Internet (ISP) για να καλέσω.Αποτυχία αντιγραφής της τιμής μητρώου '%s'Αποτυχία αντιγραφής των περιεχομένων του κλειδιού μητρώου '%s' στο '%s'.Αποτυχία αντιγραφής του αρχείου '%s' στο '%s'Αποτυχία της αντιγραφής του υποκλειδιού μητρώου '%s' σε '%s'.Απέτυχε η δημιουργεία ενός DDE αλφαρηθμιτικού (string)Αποτυχία δημιουργίας ενός γονεικού περιγράμματος (parent frame) MDI.Αποτυχία δημιουργίας ονόματος προσωρινού αρχείουΑποτυχία δημιουργίας ενός ανώνυμου pipeΑποτυχία κατά την δημιουργία σύνδεσης με τον εξυπηρετητή (server) '%s' στο θέμα '%s'Αποτυχία δημιουργίας δείκτη.Αποτυχία κατά τη δημιουργία υποκαταλόγου '%s' (Έχετε τα απαιτούμενα δικαιώματα(permissions);)Απέτυχε η δημιουργία εγγραφής μητρώου (registry entry) για '%s' αρχεία.Απέτυχε η δημιουργία καθιερωμένου παράθυρου διαλόγου εύρεσης/αντικατάστασης (κωδικός σφάλματος %d)Απέτυχε η προβολή του εγγράφου HTML στην κωδικοποίηση %sΑποτυχία αδειάσματος του προχείρου (clipboard).Απέτυχε η απαρίθμηση των καταστάσεων οθόνης.Αποτυχία επίτευξης βρόχου advise με τον διακομιστή DDEΑποτυχία εκτέλεσης του '%s' Αποτυχία κατά την λήψη των ονομάτων των ISP: %sΑποτυχία λήψης δεδομένων απο το πρόχειροΑποτυχία καθορισμού της ώρας του τοπικού συστήματοςΑποτυχία λήψης καταλόγου εργασίας (working directory)Αποτυχία αρχικοποίησης του GUI: δεν βρέθηκαν ενσωματωμένα θέματα.Αποτυχία στην αρχικοποίηση του MS HTML Help.Απέτυχε η αρχικοποίηση του OpenGLΑποτυχία επιθεώρησης του αρχείου 'κλειδωνιά'(lock file) '%s'Απέτυχε η συνένωση(join) ενός νήματος εκτέλεσης (thread), πιθανή διαρροή μνήμης εντοπίστηκε - παρακαλώ επανεκκινήστε το πρόγραμμαΑποτυχία θανάτωσης της διαδικασίας(process) %dΑποτυχία φόρτωσης της μετα-εικόνας από το αρχείο '%s'.Αποτυχία φόρτωσης του mpr.dll.Αποτυχία φόρτωσης της κοινής βιβλιοθήκης (shared library) '%s'Αποτυχία κλειδώματος του αρχείου 'κλειδωνιά'(lock file) '%s'Αποτυχία τροποποίησης ώρας του αρχείου '%s'Αποτυχία ανοίγματος του arxe;ioy CHM '%s'.Αποτυχία ανοίγματος προσωρινού αρχείουΑποτυχία ανοίγματος του προχείρου (clipboard).Αποτυχία τοποθέτησης δεδομένων στο πρόχειρο (clipboard)Απέτυχε η ανάγνωση PID από αρχείο κλειδωνιά(lock file).Αποτυχία στην ανακατεύθυνση της εισόδου/εξόδου διεργασίας απογόνου (child process input/output)Αποτυχία στην ανακατεύθυνση του IO διεργασίας απογόνου (child process IO)Απέτυχε η καταχώρηση του DDE εξυπηρετητή (server) '%s'Αποτυχία ανάμνησης της κωδικοποίησης για το συνολο χαρακτήρων (charset) '%s'.Αποτυχία απομάκρυνσης του αρχείου 'κλειδωνιά'(lock file) '%s'Αποτυχία απομάκρυνσης του απαρχειομένου(stale) αρχείου 'κλειδωνιά'(lock file) '%s'Αποτυχία της μετονομασίας της τιμής μητρώου '%s' σε '%s'.Αποτυχία της μετονομασίας του κλειδιού μητρώου '%s' σε '%s'.Αποτυχία κατά την ανάκτηση δεδομένων από το πρόχειρο (clipboard).Αποτυχία λήψης της ώρας του αρχείου '%s'Αποτυχία στη λήψη κειμένου από το μήνυμα σφάλματος RASΑποτυχία στην ανάκτηση των υποστηριζομένων μορφών προχείρου (clipboard formats)Αποτυχία αποθήκευσης της εικόνας στο αρχείο "%s".Αποτυχία κατά την αποστολή DDE advise επισήμανσηςΑποτυχία θέσης FTP transfer mode σε '%s'Αποτυχία θέσης δεδομένων προχείρου (clipboard).Αδύνατος ο ορισμός των δικαιωμάτων για το αρχείο 'κλειδωνιά' '%s'Αποτυχία θέσπισης δικαιωμάτων προσωρινού αρχείουΑποτυχία αποθήκευσης της εικόνας '%s' στο VFS μνήμης!Αποτυχία τερματισμού του threadΑποτυχία τερματισμού του advise loop με τον DDE εξυπηρετητή (server)Αποτυχία τερματισμού της σύνδεσης μέσω τηλεφώνου : %sΑποτυχία αγγίγματος (touch) του αρχείου '%s'Αποτυχία ξεκλείδωματος του αρχείου 'κλειδωνιά'(lock file) '%s'Αποτυχία απο-καταχώρησης (unregister) του DDE εξυπηρετητή (server) '%s'Αποτυχία ανανέωσης του αρχείου ρυθμίσεων του χρήστη.Αποτυχία εγγραφής του αρχείου 'κλειδωνιά'(lock file) '%s'ΑρχείοΤο αρχείο '%s' υπάρχει ήδη, πραγματικά θέλετε να επικαλυφτεί;Το αρχείο '%s' υπάρχει ήδη. Θέλετε να αντικατασταθεί;Το αρχείο δεν μπόρεσε να φορτωθεί.Σφάλμα αρχείουΤο όνομα αρχείου υπάρχει ήδη.Αρχεία (%s)ΕύρεσηΓραμματοσειρά σταθερού μεγέθους:Όψη σταθερού μεγέθους.
    έντονη πλάγια Folio, 8 1/2 x 13 ίντσεςΜέγεθος γραμματοσειράς:Fork απέτυχεΟι forward hrefs δεν υποστηρίζονταιΒρέθηκαν %i αντιστοιχίεςΑπό:GIF: Λάθος gif index.GIF: το stream δεδομένων μοιάζει να είναι αποκομμένο.GIF: σφάλμα στην μορφή εικόνας GIF.GIF: ανεπαρκής μνήμη.GIF: άγνωστο λάθος!!!Θέμα GTK+Γενικό PostScriptGerman Legal Fanfold, 8 1/2 x 13 ίντσεςGerman Std Fanfold, 8 1/2 x 12 ίντσεςΗ GetProperty κλήθηκε χωρίς έγκυρο getterΗ GetPropertyCollection κλήθηκε σε έναν γενικό accessorΗ GetPropertyCollection κλήθηκε χωρίς έγκυρο collection getterΠήγαινε πίσωΠήγαινε εμπρόςΠήγαινε ένα επίπεδο πάνω στην ιεραρχεία του εγγράφουΠρος κεντρικό κατάλογοΠρος πατρικό κατάλογοΕλληνικό (ISO-8859-7)Το Gzip δεν υποστηρίζεται από αυτήν την έκδοση της zlibΕργασία HTML βοήθειας (*.hhp)|*.hhp|Η HTML άγκυρα %s δεν υπάρχει.Αρχεία HTML (*.html;*.htm)|*.html;*.htm|Εβραϊκό (ISO-8859-8)ΒοήθειαΕπιλογές Περιηγητή ΒοηθείαςΕυρετήριο ΒοηθείαςΒοήθεια ΕκτύπωσηςΘέματα ΒοήθειαςΒιβλία βοήθειας (*.htb)|*.htb|Αρχεία βοήθειας (*.zip)|*.zip|Βοήθεια: %sΑρχική σελίδαΑρχικός κατάλογοςICO: Σφάλμα στην ανάγνωση μάσκας DIB.ICO: Σφάλμα κατά την εγγραφή του αρχείου εικόνας!ICO: Εικόνα πολύ ψηλή για εικονίδιο(icon).ICO: Εικόνα πολύ πλατιά για εικονίδιο(icon).ICO: Λανθασμένος δείκτης(index) εικονιδίου(icon).IFF: το stream δεδομένων μοιάζει να είναι αποκομμένο.IFF: σφάλμα στη μορφή εικόνας IFF.IFF: ανεπαρκής μνήμη.IFF: άγνωστο λάθος!!!Εσφαλμένη κλάση αντικειμένου (μη-wxEvtHandler) σαν πηγή EventsΕσφαλμένος αριθμός παραμέτρων για μέθοδο ConstructObjectΕσφαλμένος αριθμός παραμέτρων για μέθοδο CreateΜη έγκυρο όνομα καταλόγου.Μη έγκυρος προσδιορισμός αρχείου.Εικόνα και μάσκα έχουν διαφορετικά μεγέθη.Αδύνατη η δημουργία ενός στοιχείου ελέγχου(control) rich edit, αντι αυτού γίνεται χρήση του simpe text στοιχείου ελέγχου. Παρακαλώ επανεγκαταστήστε το riched32.dllΑδύνατη η λήψη της εισόδου της διεργασίας (process) απογόνου(child)Αδύνατη η λήψη των δικαιωμάτων για το αρχείο '%s'Αδύνατη η επικάλυψη του αρχείου '%s'Αδύνατος ο ορισμός των δικαιωμάτων για το αρχείο '%s'ΣτοίχισηΕυρετήριοΙνδικό (ISO-8859-12)Λανθασμένος δείκτης εικόνας TIFF.Λανθασμένος καθορισμός(specification) κατάστασης λειτουργίας(mode) οθόνης(display) '%s'.Λανθασμένος γεωμετρικός καθορισμός(specification) '%s'Λανθασμένο αρχείο κλειδαριά (lock file) '%s'.Μη έγκυρο ή Null ID αντικειμένου δόθηκε στην GetObjectClassInfoΜη έγκυρο ή Null ID αντικειμένου δόθηκε στην HasObjectClassInfoΛανθασμένη κανονική έκφραση (regular expression) '%s': %sΠλάγιαItaly Envelope, 110 x 230 mmJPEG: Αδύνατη η φόρτωση - το αρχείο είναι μάλλον φθαρμένο(corrupted).JPEG: Αδύνατη η αποθήκευση της εικόνας.ΕυθυγραμμισμέναKOI8-RKOI8-UΤοπίοLedger, 17 x 11 ίντσεςΑριστερό περιθώριο (mm)Νομικό, 8 1/2 x 14 ίντσεςΓράμμα Μικρό, 8 1/2 x 11 ίντσεςΓράμμα, 8 1/2 x 11 ίντσεςΑπαλό(light)Η σύνδεση που περιείχε '//', μετατράπηκε σε απόλυτη σύνδεση.Φόρτωση %s αρχείουΓίνεται φόρτωση : Το αρχείο 'κλειδωνιά' '%s' έχει λανθασμένο ιδιοκτήτη.Το αρχείο 'κλειδωνιά' '%s' έχει λανθασμένα δικαιώματα.Η καταγραφή (log) αποθηκεύτηκε στο αρχείο '%s'MDI παιδίΟι συναρτήσεις (functions) της MS HTML Help δεν είναι διαθέσιμες γιατί η βιβλιοθήκη MS HTML Help δεν είναι εγκατεστημένη. Παρακαλώ εγκαταστήστε την.Με&γιστοποίησηΤαίριασμα πεζών/κεφαλαίωνVFS μνήμης ήδη περιέχει το αρχείο '%s'!ΜενούΜεταλλικό θέμαΕλα&χιστοποίησηΜοντέρνοΤροποποιημένοΦακελος Monarch, 3 7/8 x 7 1/2 ίντσεςΜετακίνηση κάτωΜετακίνηση επάνωΌνομαΝέος κατάλογοςΝέο στοιχείοΝέοΌνομαΕπόμενοΕπόμενη σελίδαΌχιΔεν βρέθηκαν εισαγωγές(entries).Δεν βρέθηκε γραμματοσειρά (font) για την εμφάνιση κειμένου στην κωδικοποίηση (encoding) '%s', αλλά μία εναλλακτική κωδικοποίηση '%s' είναι διαθέισμη. Θέλετε να χρησιμοποιήσετε αυτή την κωδικοποίηση (διαφορετικά θα πρέπει να επιλέξετε μία άλλη) ;Δεν βρέθηκε γραμματοσειρά (font) για την εμφάνιση κειμένου για αυτήν την κωδικοποίηση (encoding) '%s'. Θα θέλατε να επιλέξετε μία γραμματοσειρα για να χρησιμοποιηθεί για αυτή την κωδικοποίηση(διαφορετικά το κείμενο σε αυτή την κωδικοποίηση δεν θα εμφανιστεί κανονικά) ;Δεν βρέθηκε χειριστής για τύπο εικόνας.Δεν έχει οριστεί χειριστής εικόνας για τον τύπο %d.Δεν έχει οριστεί χειριστής εικόνας για τον τύπο %s.Δεν βρέθηκε ακόμα σελίδα που να ταιράζειΧωρίς ήχοΔεν υπάρχει μη χρησιμοποιούμενο χρώμα στην εικόνα που εφααρμόζεται η μάσκαΔεν υπάρχει μη χρησιμοποιούμενο χρώμα στην εικόναΝορδικό (ISO-8859-10)ΚανονικόΚανονική όψη
    και υπογραμμισμένη.Κανονική γραμματοσειρά:Σημείωμα, 8 1/2 x 11 ίντσεςOKΤα αντικείμενα πρέπει να έχουν ένα χαρακτηριστικό idΑνοιγμα Αρχείου’νοιγμα εγγράφου HTMLΛειτουργία δεν ειπιτρέπετε.Η επιλογή '%s' απαιτεί μια τιμή.Επιλογή '%s': το '%s' δεν μπροει να μετατραπει σε ημερομηνία.ΕπιλογέςΠροσανατολισμόςPCX: Δεν ήταν δυνατή η δέσμευση μνήμηςPCX: μορφή εικόνας δεν υποστηρίζεταιPCX: λανθασμένη εικόναPCX: αυτό δεν είναι αρχείο PCX.PCX: άγνωστο σφάλμα !!!PCX: αριθμός έκδοσης πολύ χαμηλόςPNM: Δεν ήταν δυνατή η δέσμευση μνήμης.PNM: Η μορφή αρχείου δεν αναγνωρίζεται.PNM: Το αρχείο μοιάζει να είναι αποκομμένο.Σελίδα %dΣελίδα %d από %dΟργάνωση(setup) ΣελίδαςΡύθμιση(setup) ΣελίδαςΣελίδεςΜέγεθος χαρτιούΔόθηκε ένα ήδη registered αντικείμενο στην SetObjectΔικαιώματαΔημιουργία pipe απέτυχεΠαρακαλώ επιλέξτε μία αποδεκτή γραμματοσειρά.Παρακλώ επιλέξτε ένα υπάρχον αρχείο.Παρακλώ επιλέξτε την σελίδα για απεικόνιση:Παρακαλώ επιλέξτε τον παροχέα υπηρεσιών Internet (ISP) με τον οποίο θέλετε να συνδεθείτεΠαρακαλώ εγκαταστήστε μια νεότερη έκδοση του comctl32.dll (η ελάχιστη απαραίτητη έκδοση είναι η 4.70 αλλά εσείς έχετε την %d.%02d) διαφορετικά αυτό το πρόγραμμα δεν θα λειτουργήσει κανονικά.ΠορτραίτοΑρχείο PostScriptΠροεπισκόπηση:Προηγούμενη σελίδαΕκτύπωσηΠροεπισκόπηση ΕκτύπωσηςΑποτυχία Προεπισκόπησης ΕκτύπωσηςΕύρος εκτύπωσηςΟργάνωση(setup) ΕκτύπωσηςΕγχρωμη εκτύπωσηSpooling εκτύπωσηςΕκτύπωση αυτής της σελίδαςΕκτύπωση σε ΑρχείοΕκτυπωτήςΕντολή εκτυπωτή:Επιλογές εκτυπωτήΕπιλογές εκτυπωτή:Εκτυπωτής...Εκτυπωτής:Γίνεται εκτύπωση του Σφάλμα ΕκτύπωσηςΓίνεται εκτύπωση σελίδας %d...Γίνεται εκτύπωση...Quarto, 215 x 275 mmΕρώτημαΛάθος ανάγνωσης στο αρχείο '%s'ΈτοιμοΑνανέωσηΤο κλειδί μητρώου '%s' υπάρχει ήδη.Το κλειδί μητρώου '%s' δεν υπάρχει, αδύνατη η μετονομασία του.Το αρχείο μητρώου '%s' χρειάζεται για την κανονική λειτουργία του συστήματος, διαγράφοντάς το θα αφήσει το σύστημά σας σε κατάσταση αχρηστίας: η λειτουργία ματαιώθηκε.Η τιμή μητρώου '%s' υπάρχει ήδη.Σχετικές εγγραφές:ΑπομάκρυνσηΑφαίρεση τρέχουσας σελίδας από τους σελιδοδείκτεςΟ Renderer "%s" είναι σε ασύμβατη έκδοση %d.%d και δεν μπορεί να φορτωθεί.&ΑντικατάστασηΑντικατάσταση &ΌλωνΑντικατάσταση με:Επαναφορά από το αποθηκευμένοΔεξί περιθώριο (mm):ΡωμαϊκόΑποθήκευσηΑποθήκευση %s αρχείουΑποθήκευση &ως...Αποθήκευση ωςΑποθήκευση περιεχομένων καταγραφής(log) σε αρχείοΧειρόγραφο(Script)ΑναζήτησηΚατεύθυνση αναζήτησηςΑναζήτηση για:Εύρεση σε όλα τα βιβλίαΓίνεται αναζήτηση...ΤμήματαΛάθος ανίχνευσης (seek error) στο αρχείο '%s'.Επιλογή &ΟλωνΕπιλέξτε ένα πρότυπα εγγράφουΕπιλέξτε μια προβολή εγγράφωνΑναμενόταν διαχωριστικό μετά την επιλογή '%s'.Η SetProperty κλήθηκε χωρίς έγκυρο θέτηΡυθμίσεις...Βρέθηκαν πολλαπλές ενεργές τηλεφωνικές συνδέσεις, γίνεται τυχαία επιλογή μίας.Εμφάνιση όλωνΕμφάνιση όλων των στοιχείων στο ευρετήριοΕμφάνιση κρυφών καταλόγωνΕμφλανιση/Κρύψιμο πλαίσιο πλοήγησης (navigation panel)Εμφανίζει την προεπισκόπηση της γραμματοσειράςΜέγεθοςΠαράλειψηΚλήσηΣυγγνώμη, δεν μπόρεσε να ανοιχθεί αυτό το αρχείο.Συγγνώμη, δεν υπάρχει αρκετή μνήμη για την δημιουργία προεπισκόπησης.Συγγνώμη, η μορφή αυτού του αρχείου είναι άγνωστη.Τα δεδομένα ήχου είναι σε μη υποστηριζόμενη μορφή.Το αρχείο '%s' είναι σε μη υποστηριζόμενη μορφή.Δήλωση, 5 1/2 x 8 1/2 ίντσεςΚατάσταση: String To Colour : Λανθασμένος καθορισμός χρώματος: %sΕλβετικό(Swiss)TIFF: Αδύνατη η δέσμευση μνήμης.TIFF: Λάθος κατά την φόρτωση εικόνας.TIFF: Λάθος κατά την ανάγνωση εικόνας.TIFF: Λάθος κατά την αποθήκευση εικόνας.TIFF: Λάθος κατα την εγγραφή εικόνας.11 x 17 ίντσεςΤηλέτυποΠρότυπαΤαϋλανδέζικο (ISO-8859-11)Ο διακομιστής FTP δεν υποστηρίζει κατάσταση λειτουργίας(mode) 'passive'.Ο διακομιστής FTP δεν υποστηρίζει την εντολή PORT.Το σύνολο χαρακτήρων (charset) '%s' είναι άγνωστο. Μπορείτε να επιλέξετε ένα άλλο σύνολο χαρακτήρων να το αντικαταστήσει ή διαλέξτε [Ακύρωση] εάν δεν μπορεί να αντικατασταθείO τύπος προχείρου(clipboard format) '%d' δεν υπάρχει.Ο κατάλογος '%s' δεν υπάρχει Να δημιουργηθεί τώρα;Το αρχείο '%s' δεν υπάρχει και δεν μπόρεσε να ανοιχτεί. Αφαιρέθηκε από την λίστα με τα πρόσφατα χρησιμοποιημένα αρχεία.Το χρώμα της γραμματοσειράς.Η οικογένεια της γραμματοσειρας.Το μέγεθος κουκίδας γραμματοσειράςΤο στυλ της γραμματοσειράς.Το βάρος της γραμματοσειράς.Η απαραίτητη παράμετρος '%s' δεν προσδιορίστηκε.Το κείμενο δεν μπόρεσε να αποθυκευτεί.Η τιμή για την επιλογή '%s' πρέπει να προσδιοριστεί,Υπήρξε πρόβλημα κατά την διάρκεια οργάνωσης δελίδας (page setup): ίσως να χρειαστεί να θέσετε έναν προεπιλεγμένο (default) εκτυπωτή.Η αρχικοποίηση μονάδας νήματος εκτέλεσης (thread module) απέτυχε: αδύνατη η αποθήκευση τιμής στην τοπική αποθήκευση νήματος (thread local storage)Η αρχικοποίηση μονάδας νήματος εκτέλεσης (thread module) απέτυχε: αποτυχία δημιουργίας κλειδιού νήματος (thread key)Η αρχικοποίηση μονάδας νήματος εκτέλεσης (thread module) απέτυχε: αδύνατο να δεσμευτεί (allocate) δείκτης (index) στην στην τοπική αποθήκευση νήματος (thread local storage)Η ρύθμιση προτεραιότητας του νήματος εκτέλεσης (thread) αγνοήθηκε. Οριζόντια παράθεσηΚατακόρυφη παράθεσηΤέλος χρόνου κατά την αναμονή για την σύνδεση στον διακομιστή FTP, δοκιμάστε σε passive mode.Η δημιουργία timer απέτυχε.Tip της ΗμέραςΤο Tip δεν είναι διαθέσιμο, συγγνώμη!Πρός:Πάρα πολλά χρώματα στο PNG, η εικόνα μπορεί να είναι λίγο θολή.Πάνω περιθώριο (mm)Προσπάθεια απομάκρυνσης αρχείου '%s' από VFS μνήμης, αλλά δεν είναι φορτωμένο!Τουρκικό (ISO-8859-9)ΤύποςΟ τύπος πρέπει να έχει μετατροπή enum - longUS Std Fanfold, 14 7/8 x 11 ίντσεςΔεν είναι δυνατό το άνοιγμα εγγράφου HTML: %sΑδύνατη η ασύγχρονη αναπαραγωγή ήχου.Αναίρεση διαγραφήςΑπροσδόκητη παράμετρος '%s'Unicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)’γνωστο σφάλμα DDE %08x’γνωστο αντικείμενο δόθηκε στην GetObjectClassInfo’γνωστη κωδικοποίηση (%d)’γνωστη επιλογή long '%s'’γνωστη επιλογή '%s'Αταίριαστο '{' σε μία είσοδο (entry) για τον τύπο mime %s.Ανώνυμη εντολήΔεν υποστηρίζεται ο τύπος προχείρου(clipboard format).Το θέμα '%s' δεν υποστηρίζεται.ΕπάνωΧρήση: %sΣύγκρουση επικύρωσης (validation conflict)Εμφάνιση αρχείων σε προβολή με λεπτομέρειεςΕμφάνιση αρχείων σε προβολή λίσταςΠροβολέςΠροειδοποίηση: Δυτικο-Ευρωπαϊκό (ISO-8859-1)Δυτικο-Ευρωπαϊκό με Euro (ISO-8859-15)Επιλογή εαν η γραμματοσειρά είναι υπογραμμισμένη ή όχι.Ολόκληρη λέξηΟλόκληρες λέξεις μόνοWin32 θέμαWin32s σε Windows 3.1Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Αραβικό (CP 1256)Windows Βαλτικό (CP 1257)Windows Κεντρο-Ευρωπαϊκό (CP 1250)Windows Κυριλικό (CP 1251)Windows Ελληνικό (CP 1253)Windows Εβραϊκό (CP 1255)Windows Κορεάτικο (CP 949)Windows MEWindows Τουρκικό (CP 1254)Windows Δυτικο-Ευρωπαϊκό (CP 1252)Windows/DOS OEM (CP 437)Σφάλμα εγγραφής (write error) στο αρχείο '%s'XML σφάλμα ανάγνωσης (parsing error): '%s' στη γραμμή %dXPM: Κακοσχηματισμένα δεδομένα εικονοστοιχείων (pixel)!ΝαιΔεν μπορείτε να προσθέσετε καινούργιο κατάλογο σε αυτό το τμήμα.&Αύξηση ζουμ&Ελάττωση ζουμΒέλτιστο ζουμμια DDEML εφαρμογή έχει δημιουργήσει έναν παρατεταμένο race condition.μια συνάρτηση(function) DDEML κλήθηκε χώρις πρώτα να καλέσει την DdeInitialize συνάρτηση(function), ή ένα λανθασμένο αναγνωριστικό(identifier) instance δόθηκε σε μια DDEML συνάρτηση(function).η προσπάθεια ενός πελάτη(client) να εδραιώσει(establish) μία συνδιάλεξη(conversation) απέτυχε.μία προσπάθεια δέσμευσης (allocation) μνήμης απέτυχε.απέτυχε η επικύρωση μιας παραμέτρου από το DDEML.μία αίτηση για σύγχρονη(synchronous) ενημερωτική(advise) συναλλαγή(transaction) ξεπέρασε το χρονικό περιθώριο (timed out)μία αίτηση για σύγχρονη(synchronous) συναλλαγή(transaction) δεδομένων(data) ξεπέρασε το χρονικό περιθώριο (timed out)μία αίτηση για σύγχρονη(synchronous) συναλλαγή(transaction) εκτέλεσης(execute) ξεπέρασε το χρονικό περιθώριο (timed out)μία αίτηση για σύγχρονη(synchronous) poke συναλλαγή(transaction) ξεπέρασε το χρονικό περιθώριο (timed out)μία αίτηση για τερματισμό μιας ενημερωτικής(advise) συναλλαγής(transaction) ξεπέρασε το χρονικό περιθώριο (timed out)αποπειράθηκε μια συναλλαγη στη μεριά του εξυπηρετητή (server-side) σε μια συνδίαλεξη (conversation) που είχε τερματιστεί από τον πελάτη(client), ή ο εξυπηρετητής (server) τερμάτισε πριν ολοκληρωθεί μια συναλλαγή( transaction).μία συναλλαγή (transaction) απέτυχε.altμία εφαρμογή που αρχικοποιήθηκε ως APPCLASS_MONITOR προσπάθησε να κάνει μια συναλλαγή (transaction) DDE, ή μία εφαρμογή που αρχικοποιήθηκε ως APPCMD_CLIENTONLY προσπάθησε να κάνει συναλλαγές εξυπηρετητή (server transactions).μία εσωτερική κλήση στην συνάρτηση (function) PostMessage απέτυχε.ένα εσωτερικό λάθος συνέβη στο DDEML.ένα λανθασμένο αναγνωριστικό(identifier) συναλλαγής(transaction) δώθηκε σε μία DDEML συνάρτηση(function). Όταν η εφαρμογή επιστρέψει από ένα XTYP_XACT_COMPLETE callback, το αναγνωριστικό συναλλαγής για εκείνο το callback δεν θα είναι πλέον έγκυρο.η προσπάθεια αλλαγής αμετάβλητου κλειδιού '%s' αγνοήθηκε.λανθασμένες παράμετροι σε συνάρτηση βιβλιοθήκηςκακή σήμανσηδυαδικόέντονοδεν είναι δυνατό το κλείσιμο του αρχείου '%s'αδύνατο το κλείσιμο περιγραφέα (descriptor) αρχείου %dαδύνατη η δέσμευση των αλλαγών στο αρχείο '%s'δεν είναι δυνατή η δημιουργία του αρχείου '%s'Δεν είναι δυνατή η διαγραφή του αρχείου ρυθμίσεων '%s' του χρήστηαδύνατο να καθοριστεί εαν το τέλος αρχείου του έχει φτάσει στο περιγραφέα (descriptor) %dΔεν είναι δυνατή η εύρεση του κεντρικού καταλόγου στο συμπιεσμένο αρχείοαδύνατη η εύρεση του μεγέθους αρχείου στον περιγραφέα αρχείου (file desciptor) %dαδύνατη η εύρεση του HOME του χρήστη, γίνεται χρήση τρέχοντος καταλόγου.δεν μπορεί να πραγματοποιηθεί το άδειασμα (flush) του περιγραφέα αρχείου %dαδύνατη η λήψη θέσης αναζήτησης (seek position) στον περιγραφέα(descriptor) αρχείου %dαδύνατη η φόρτωση οποιασδήποτε γραμματοσειράς, γίνεται ματαίωσηδεν είναι δυνατό το άνοιγμα του αρχείου '%s'δεν είναι δυνατό το άνοιγμα του γενικού(global) αρχείου ρυθμίσεων %sδεν είναι δυνατό το άνοιγμα του αρχείου ρυθμίσεων '%s' του χρήστηαδύνατο το άνοιγμα αρχείου ρυθμίσεων του χρήστη.Δεν είναι δυνατή η αρχικοποίηση της ροής zlib deflate.Δεν είναι δυνατή η αρχικοποίηση της ροής zlib inflate.αδύνατη η ανάγνωση από περiγραφέα (descriptor) αρχείου %dδεν είναι δυνατό το σβήσιμο του αρχείου '%s'δεν είναι δυνατό το σβήσιμο του προσωρινού αρχείου '%s'αδύνατη η αναζήτηση(seek) στον περγραφέα(descriptor) αρχείου %dαδύνατη η εγγραφή της προσωρινής μνήμης (buffer) '%s' στο δίσκο.δεν είναι δυνατή η εγγραφή του περιγραφέα αρχείου(file descriptor) %dΑδύνατη η εγγραφή αρχείου ρυθμίσεων χρήστη.σφάλμα checksumσφάλμα συμπίεσηςη μετατροπή σε 8-bit κωδικοποίηση απέτυχεctrlημερομηνίασφάλμα αποσυμπίεσηςπροκαθορισμένοδέκατο όγδοοόγδοοέβδομοη εισαγωγή(entry) '%s' εμφανίζεται πάνω από μία φορά στο γκρούπ '%s'σφάλμα στη μορφή των δεδομένωνσφάλμα κατά το άνοιγμα του αρχείουσφάλμα κατα την ανάγνωση κεντρικού καταλόγου στο συμπιεσμένο αρχείοσφάλμα κατά την ανάγνωση τοπικής κεφαλίδας του συμπιεσμένου αρχείουσφάλμα κατά την εγγραφή αρχείου zip '%s': εσφαλμένο crc ή μήκοςΑποτυχία αδειάσματος buffer (flush) του αρχείου '%s'δέκατο-πέμπτοπέμπτοαρχείο '%s', γραμμή %d: το '%s' αγνοήθηκε μετά την επικεφαλίδα του γκρούπ.αρχείο '%s', γραμμή %d: αναμενόταν '=' .αρχείο '%s', γραμμή %d: το κλειδί '%s' βρέθηκε για πρώτη φορά στη γραμμή %d.αρχείο '%s', γραμμή %d: τιμή για αμετάβλητο κλειδί '%s' αγνοήθηκε.αρχείο '%s': απροσδόκητος χαρακτήρας %c στη γραμμή %d.πρώτομέγεθος γραμματοσειράςδέκατο τέταρτοτέταρτοδημιουργία αναλυτικών (verbose) μηνυμάτων καταγραφής (log)εσφαλμένο string χειριστή event, λείπει τελείαμη αποδεκτή τιμή επιστροφής παράθυρου μηνύματοςμη έγκυρο συμπιεσμένο αρχείοπλάγιοαπαλό(light)η γλώσσα '%s' δεν μπορει να οριστείμεσάνυκταδέκατο ένατοένατοκανένα λάθος DDEκανένα λάθοςανώνυμομεσημέριnumτα αντικείμενα δεν μπορούν να έχουν XML κόμβους κειμένουανεπαρκής μνήμησφάλμα ανάγνωσηςανάγνωση ροής zip (εγγραφή %s): εσφαλμένο crc ανάγνωση ροής zip (εγγραφή %s): λανθασμένο μήκοςπρόβλημα επανεισαγωγής (reentrancy problem).δεύτεροσφάλμα εντοπισμούδέκατο-έβδομοέβδομοshiftεμφάνιση αυτού του μηνύματος βοηθείαςδέκατο έκτοέκτοδιευκρινήστε τον τρόπο απεικόνισης που θα χρησιμοποιηθεί (π.χ. 640x480-16)καθορίστε το θέμα που θα χρησιμοποιηθείτο μήκος του αποθκευμένου αρχείου δεν υπάρχει στην κεφαλίδα Zipstrδέκατοη απάντηση στη συναλλαγή ανάγκασε το DDE_FBUSY bit να τεθεί.τρίτοδέκατο τρίτοσήμερααύριοδωδέκατοεικοστόυπογεγραμμένοαπροσδόκητο " στη θέση %d στο '%s'.άγνωστοάγνωστη κλάση %sάνωστο λάθοςάνωστο λάθος (κωδικός λάθους %08x)άγνωστη αφετηρία(origin) αναζήτησης(seek)άγνωστο-%dαπροσδιόριστοαπροσδιόριστο%dμη υποστηριζόμενη μέθοδος συμπίεσης Zipχρήση καταλόγου '%s' από '%s'σφάλμα εγγραφήςτο wxGetTimeOfDay απέτυχε.Η βιλιοθήκη wxWidgets δεν μπορεί να ανοίξει την απεικόνιση για το '%s': έξοδος...Η βιλιοθήκη wxWidgets δεν μπορεί να ανοίξει την απεικόνιση. 'Εξοδος...χθεςσφάλμα zlib %dginkgocadx-3.8.7/cadxcore/lang/el/wxstd.po000066400000000000000000011013761314736454600205170ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: wxWidgets 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-01 19:04+0200\n" "PO-Revision-Date: 2005-02-16 09:03+0200\n" "Last-Translator: InterZone \n" "Language-Team: Tsolakos Stavros , Nassos Yiannopoulos " "\n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../src/common/debugrpt.cpp:591 msgid "" "\n" "Please send this report to the program maintainer, thank you!\n" msgstr "" #: ../src/richtext/richtextstyledlg.cpp:210 #: ../src/richtext/richtextstyledlg.cpp:222 msgid " " msgstr " " #: ../src/generic/dbgrptg.cpp:326 msgid " Thank you and we're sorry for the inconvenience!\n" msgstr "" #: ../src/common/prntbase.cpp:546 #, fuzzy, c-format msgid " (copy %d of %d)" msgstr "Σελίδα %d από %d" #: ../src/common/log.cpp:425 #, c-format msgid " (error %ld: %s)" msgstr " (σφάλμα %ld: %s)" #: ../src/common/imagtiff.cpp:75 #, fuzzy, c-format msgid " (in module \"%s\")" msgstr "tiff module: %s" #: ../src/common/docview.cpp:1624 msgid " - " msgstr " - " #: ../src/richtext/richtextprint.cpp:588 ../src/html/htmprint.cpp:704 msgid " Preview" msgstr " Προεπισκόπηση" #: ../src/common/fontcmn.cpp:811 #, fuzzy msgid " bold" msgstr "έντονο" #: ../src/common/fontcmn.cpp:827 #, fuzzy msgid " italic" msgstr "πλάγιο" #: ../src/common/fontcmn.cpp:807 #, fuzzy msgid " light" msgstr "απαλό(light)" #: ../src/common/paper.cpp:118 msgid "#10 Envelope, 4 1/8 x 9 1/2 in" msgstr "#10 Φάκελος, 4 1/8 x 9 1/2 ίντσες" #: ../src/common/paper.cpp:119 msgid "#11 Envelope, 4 1/2 x 10 3/8 in" msgstr "#11 Φάκελος, 4 1/2 x 10 3/8 ίντσες" #: ../src/common/paper.cpp:120 msgid "#12 Envelope, 4 3/4 x 11 in" msgstr "#12 Φάκελος, 4 3/4 x 11 ίντσες" #: ../src/common/paper.cpp:121 msgid "#14 Envelope, 5 x 11 1/2 in" msgstr "#14 Φάκελος, 5 x 11 1/2 ίντσες" #: ../src/common/paper.cpp:117 msgid "#9 Envelope, 3 7/8 x 8 7/8 in" msgstr "#9 Φάκελος, 3 7/8 x 8 7/8 ίντσες" #: ../src/html/helpwnd.cpp:1044 #, fuzzy, c-format msgid "%d of %lu" msgstr "%i από %i" #: ../src/html/helpwnd.cpp:1681 ../src/html/helpwnd.cpp:1719 #, c-format msgid "%i of %i" msgstr "%i από %i" #: ../src/generic/filectrlg.cpp:315 #, fuzzy, c-format msgid "%ld byte" msgid_plural "%ld bytes" msgstr[0] "%ld bytes" msgstr[1] "%ld bytes" #: ../src/html/helpwnd.cpp:1046 #, fuzzy, c-format msgid "%lu of %lu" msgstr "%i από %i" #: ../src/common/cmdline.cpp:1050 #, c-format msgid "%s (or %s)" msgstr "%s (ή %s)" #: ../src/generic/logg.cpp:230 #, c-format msgid "%s Error" msgstr "%s Σφάλμα" #: ../src/generic/logg.cpp:242 #, c-format msgid "%s Information" msgstr "%s Πληροφορίες" #: ../src/generic/preferencesg.cpp:110 #, fuzzy, c-format msgid "%s Preferences" msgstr "&Προτιμήσεις" #: ../src/generic/logg.cpp:234 #, c-format msgid "%s Warning" msgstr "%s Προειδοποίηση" #: ../src/common/tarstrm.cpp:1319 #, c-format msgid "%s did not fit the tar header for entry '%s'" msgstr "" #: ../src/common/fldlgcmn.cpp:106 #, c-format msgid "%s files (%s)|%s" msgstr "%s αρχεία (%s)|%s" #: ../src/common/stockitem.cpp:139 ../src/html/helpfrm.cpp:142 #: ../src/html/helpfrm.cpp:144 msgid "&About" msgstr "&Περί" #: ../src/common/stockitem.cpp:207 msgid "&Actual Size" msgstr "&Πραγματικό μέγεθος" #: ../src/richtext/richtextindentspage.cpp:262 msgid "&After a paragraph:" msgstr "" #: ../src/richtext/richtextindentspage.cpp:128 #: ../src/richtext/richtextliststylepage.cpp:319 #, fuzzy msgid "&Alignment" msgstr "Στοίχιση Αριστερά" #: ../src/common/stockitem.cpp:141 msgid "&Apply" msgstr "&Εφαρμογή" #: ../src/richtext/richtextstyledlg.cpp:251 #, fuzzy msgid "&Apply Style" msgstr "&Εφαρμογή" #: ../src/msw/mdi.cpp:175 msgid "&Arrange Icons" msgstr "&Τακτοποίηση εικονιδίων" #: ../src/common/stockitem.cpp:195 msgid "&Ascending" msgstr "" #: ../src/common/stockitem.cpp:142 msgid "&Back" msgstr "&Πίσω" #: ../src/richtext/richtextstylepage.cpp:113 msgid "&Based on:" msgstr "" #: ../src/richtext/richtextindentspage.cpp:253 msgid "&Before a paragraph:" msgstr "" #: ../src/richtext/richtextfontpage.cpp:271 #, fuzzy msgid "&Bg colour:" msgstr "&Χρώμα:" #: ../src/common/stockitem.cpp:143 msgid "&Bold" msgstr "&Έντονο" #: ../src/common/stockitem.cpp:144 msgid "&Bottom" msgstr "" #: ../src/richtext/richtextborderspage.cpp:359 #: ../src/richtext/richtextborderspage.cpp:503 #: ../src/richtext/richtextmarginspage.cpp:260 #: ../src/richtext/richtextmarginspage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:637 #: ../src/richtext/richtextsizepage.cpp:644 msgid "&Bottom:" msgstr "" #: ../include/wx/richtext/richtextbuffer.h:3530 #, fuzzy msgid "&Box" msgstr "&Έντονο" #: ../src/richtext/richtextliststylepage.cpp:210 #: ../src/richtext/richtextbulletspage.cpp:159 msgid "&Bullet style:" msgstr "" #: ../src/common/stockitem.cpp:146 msgid "&CD-Rom" msgstr "" #: ../src/generic/wizard.cpp:432 ../src/generic/fontdlgg.cpp:470 #: ../src/generic/fontdlgg.cpp:489 ../src/osx/carbon/fontdlg.cpp:588 #: ../src/common/stockitem.cpp:145 msgid "&Cancel" msgstr "&Ακυρο" #: ../src/msw/mdi.cpp:171 msgid "&Cascade" msgstr "&Επικάλυψη" #: ../include/wx/richtext/richtextbuffer.h:5587 #, fuzzy msgid "&Cell" msgstr "&Ακυρο" #: ../src/richtext/richtextsymboldlg.cpp:439 msgid "&Character code:" msgstr "" #: ../src/common/stockitem.cpp:147 msgid "&Clear" msgstr "&Καθαρισμός" #: ../src/generic/logg.cpp:522 ../src/common/stockitem.cpp:148 #: ../src/common/prntbase.cpp:1570 ../src/univ/themes/win32.cpp:3756 #: ../src/html/helpfrm.cpp:139 msgid "&Close" msgstr "&Κλείσιμο" #: ../src/common/stockitem.cpp:193 #, fuzzy msgid "&Color" msgstr "&Χρώμα:" #: ../src/richtext/richtextfontpage.cpp:258 #, fuzzy msgid "&Colour:" msgstr "&Χρώμα:" #: ../src/common/stockitem.cpp:149 #, fuzzy msgid "&Convert" msgstr "Περιεχόμενα" #: ../src/richtext/richtextctrl.cpp:326 ../src/osx/textctrl_osx.cpp:583 #: ../src/common/stockitem.cpp:150 ../src/msw/textctrl.cpp:2284 msgid "&Copy" msgstr "&Αντιγραφή" #: ../src/generic/hyperlinkg.cpp:156 #, fuzzy msgid "&Copy URL" msgstr "&Αντιγραφή" #: ../src/common/headerctrlcmn.cpp:328 #, fuzzy msgid "&Customize..." msgstr "μέγεθος γραμματοσειράς" #: ../src/generic/dbgrptg.cpp:334 msgid "&Debug report preview:" msgstr "" #: ../src/richtext/richtexttabspage.cpp:142 #: ../src/richtext/richtextctrl.cpp:328 ../src/osx/textctrl_osx.cpp:585 #: ../src/common/stockitem.cpp:152 ../src/msw/textctrl.cpp:2286 msgid "&Delete" msgstr "&Διαγραφή" #: ../src/richtext/richtextstyledlg.cpp:269 #, fuzzy msgid "&Delete Style..." msgstr "Διαγραφή στοιχείου" #: ../src/common/stockitem.cpp:196 msgid "&Descending" msgstr "" #: ../src/generic/logg.cpp:688 msgid "&Details" msgstr "&Λεπτομέρειες" #: ../src/common/stockitem.cpp:153 msgid "&Down" msgstr "&Κάτω" #: ../src/common/stockitem.cpp:154 msgid "&Edit" msgstr "" #: ../src/richtext/richtextstyledlg.cpp:263 #, fuzzy msgid "&Edit Style..." msgstr "Επεξεργασία στοιχείου" #: ../src/common/stockitem.cpp:155 msgid "&Execute" msgstr "" #: ../src/common/stockitem.cpp:157 ../src/html/helpfrm.cpp:146 msgid "&File" msgstr "&Αρχείο" #: ../src/common/stockitem.cpp:158 msgid "&Find" msgstr "&Εύρεση" #: ../src/generic/wizard.cpp:626 msgid "&Finish" msgstr "&Τέλος" #: ../src/common/stockitem.cpp:159 #, fuzzy msgid "&First" msgstr "πρώτο" #: ../src/richtext/richtextsizepage.cpp:244 msgid "&Floating mode:" msgstr "" #: ../src/common/stockitem.cpp:160 #, fuzzy msgid "&Floppy" msgstr "&Αντιγραφή" #: ../src/common/stockitem.cpp:194 #, fuzzy msgid "&Font" msgstr "Οικογένεια γραμματοσειράς:" #: ../src/generic/fontdlgg.cpp:371 msgid "&Font family:" msgstr "Οικογένεια γραμματοσειράς:" #: ../src/richtext/richtextliststylepage.cpp:194 msgid "&Font for Level..." msgstr "" #: ../src/richtext/richtextfontpage.cpp:156 #: ../src/richtext/richtextsymboldlg.cpp:400 #, fuzzy msgid "&Font:" msgstr "Οικογένεια γραμματοσειράς:" #: ../src/common/stockitem.cpp:161 msgid "&Forward" msgstr "&Εμπρός" #: ../src/richtext/richtextsymboldlg.cpp:451 #, fuzzy msgid "&From:" msgstr "Από:" #: ../src/common/stockitem.cpp:162 msgid "&Harddisk" msgstr "" #: ../src/richtext/richtextsizepage.cpp:351 #: ../src/richtext/richtextsizepage.cpp:358 #, fuzzy msgid "&Height:" msgstr "&Βάρος:" #: ../src/generic/wizard.cpp:435 ../src/richtext/richtextstyledlg.cpp:303 #: ../src/richtext/richtextsymboldlg.cpp:479 ../src/osx/menu_osx.cpp:785 #: ../src/common/stockitem.cpp:163 ../src/html/helpfrm.cpp:147 msgid "&Help" msgstr "&Βοήθεια" #: ../include/wx/richmsgdlg.h:30 #, fuzzy msgid "&Hide details" msgstr "&Λεπτομέρειες" #: ../src/common/stockitem.cpp:164 msgid "&Home" msgstr "&Αρχική" #: ../src/richtext/richtextindentspage.cpp:184 #: ../src/richtext/richtextliststylepage.cpp:372 msgid "&Indentation (tenths of a mm)" msgstr "" #: ../src/richtext/richtextindentspage.cpp:167 #: ../src/richtext/richtextliststylepage.cpp:356 #, fuzzy msgid "&Indeterminate" msgstr "&Υπογράμμιση" #: ../src/common/stockitem.cpp:166 msgid "&Index" msgstr "&Ευρετήριο" #: ../src/common/stockitem.cpp:167 #, fuzzy msgid "&Info" msgstr "&Αναίρεση" #: ../src/common/stockitem.cpp:168 msgid "&Italic" msgstr "&Πλάγια" #: ../src/common/stockitem.cpp:169 msgid "&Jump to" msgstr "" #: ../src/richtext/richtextindentspage.cpp:153 #: ../src/richtext/richtextliststylepage.cpp:342 #, fuzzy msgid "&Justified" msgstr "Ευθυγραμμισμένα" #: ../src/common/stockitem.cpp:174 #, fuzzy msgid "&Last" msgstr "&Επικόληση" #: ../src/richtext/richtextindentspage.cpp:139 #: ../src/richtext/richtextliststylepage.cpp:328 msgid "&Left" msgstr "" #: ../src/richtext/richtextindentspage.cpp:195 #: ../src/richtext/richtextborderspage.cpp:269 #: ../src/richtext/richtextborderspage.cpp:413 #: ../src/richtext/richtextliststylepage.cpp:381 #: ../src/richtext/richtextmarginspage.cpp:187 #: ../src/richtext/richtextmarginspage.cpp:301 #: ../src/richtext/richtextsizepage.cpp:532 #: ../src/richtext/richtextsizepage.cpp:539 msgid "&Left:" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:183 msgid "&List level:" msgstr "" #: ../src/generic/logg.cpp:523 msgid "&Log" msgstr "&Καταγραφή" #: ../src/univ/themes/win32.cpp:3748 msgid "&Move" msgstr "&Μετακίνηση" #: ../src/richtext/richtextsizepage.cpp:672 msgid "&Move the object to:" msgstr "" #: ../src/common/stockitem.cpp:175 #, fuzzy msgid "&Network" msgstr "&Νέο" #: ../src/richtext/richtexttabspage.cpp:136 ../src/common/stockitem.cpp:176 msgid "&New" msgstr "&Νέο" #: ../src/aui/tabmdi.cpp:111 ../src/generic/mdig.cpp:100 #: ../src/msw/mdi.cpp:176 msgid "&Next" msgstr "&Επόμενο" #: ../src/generic/wizard.cpp:431 ../src/generic/wizard.cpp:626 msgid "&Next >" msgstr "&Επόμενο >" #: ../src/richtext/richtextsizepage.cpp:681 msgid "&Next Paragraph" msgstr "" #: ../src/generic/tipdlg.cpp:276 msgid "&Next Tip" msgstr "&Επόμενο Tip" #: ../src/richtext/richtextstylepage.cpp:123 #, fuzzy msgid "&Next style:" msgstr "&Επόμενο >" #: ../src/common/stockitem.cpp:177 ../src/msw/msgdlg.cpp:476 msgid "&No" msgstr "&Όχι" #: ../src/generic/dbgrptg.cpp:356 #, fuzzy msgid "&Notes:" msgstr "&Όχι" #: ../src/richtext/richtextbulletspage.cpp:264 msgid "&Number:" msgstr "" #: ../src/generic/fontdlgg.cpp:475 ../src/generic/fontdlgg.cpp:482 #: ../src/osx/carbon/fontdlg.cpp:594 ../src/common/stockitem.cpp:178 msgid "&OK" msgstr "&OK" #: ../src/generic/dbgrptg.cpp:342 ../src/common/stockitem.cpp:179 #: ../src/html/helpfrm.cpp:137 msgid "&Open..." msgstr "&Ανοιγμα..." #: ../src/richtext/richtextindentspage.cpp:222 msgid "&Outline level:" msgstr "" #: ../src/richtext/richtextindentspage.cpp:293 msgid "&Page Break" msgstr "" #: ../src/richtext/richtextctrl.cpp:327 ../src/osx/textctrl_osx.cpp:584 #: ../src/common/stockitem.cpp:180 ../src/msw/textctrl.cpp:2285 msgid "&Paste" msgstr "&Επικόληση" #: ../include/wx/richtext/richtextbuffer.h:4655 msgid "&Picture" msgstr "" #: ../src/generic/fontdlgg.cpp:422 msgid "&Point size:" msgstr "Μέγεθος κουκίδας:" #: ../src/richtext/richtexttabspage.cpp:114 msgid "&Position (tenths of a mm):" msgstr "" #: ../src/richtext/richtextsizepage.cpp:514 #, fuzzy msgid "&Position mode:" msgstr "Ερώτημα" #: ../src/common/stockitem.cpp:181 msgid "&Preferences" msgstr "&Προτιμήσεις" #: ../src/aui/tabmdi.cpp:112 ../src/generic/mdig.cpp:101 #: ../src/msw/mdi.cpp:177 msgid "&Previous" msgstr "&Προηγούμενο" #: ../src/richtext/richtextsizepage.cpp:675 #, fuzzy msgid "&Previous Paragraph" msgstr "Προηγούμενη σελίδα" #: ../src/common/stockitem.cpp:183 msgid "&Print..." msgstr "&Εκτύπωση..." #: ../src/richtext/richtextctrl.cpp:332 ../src/richtext/richtextctrl.cpp:4945 #: ../src/common/stockitem.cpp:184 msgid "&Properties" msgstr "&Ιδιότητες" #: ../src/common/stockitem.cpp:156 msgid "&Quit" msgstr "Έ&ξοδος" #: ../src/richtext/richtextctrl.cpp:323 ../src/osx/textctrl_osx.cpp:580 #: ../src/common/stockitem.cpp:185 ../src/common/cmdproc.cpp:293 #: ../src/common/cmdproc.cpp:300 ../src/msw/textctrl.cpp:2281 msgid "&Redo" msgstr "&Επανάληψη" #: ../src/common/cmdproc.cpp:289 ../src/common/cmdproc.cpp:309 msgid "&Redo " msgstr "&Επανάληψη " #: ../src/richtext/richtextstyledlg.cpp:257 msgid "&Rename Style..." msgstr "" #: ../src/generic/fdrepdlg.cpp:179 msgid "&Replace" msgstr "&Αντικατάσταση" #: ../src/richtext/richtextstyledlg.cpp:287 msgid "&Restart numbering" msgstr "" #: ../src/univ/themes/win32.cpp:3747 msgid "&Restore" msgstr "&Επαναφορά" #: ../src/richtext/richtextindentspage.cpp:146 #: ../src/richtext/richtextliststylepage.cpp:335 #, fuzzy msgid "&Right" msgstr "Απαλό(light)" #: ../src/richtext/richtextindentspage.cpp:213 #: ../src/richtext/richtextborderspage.cpp:299 #: ../src/richtext/richtextborderspage.cpp:443 #: ../src/richtext/richtextliststylepage.cpp:399 #: ../src/richtext/richtextmarginspage.cpp:212 #: ../src/richtext/richtextmarginspage.cpp:326 #: ../src/richtext/richtextsizepage.cpp:602 #: ../src/richtext/richtextsizepage.cpp:609 #, fuzzy msgid "&Right:" msgstr "&Βάρος:" #: ../src/common/stockitem.cpp:190 msgid "&Save" msgstr "&Αποθήκευση" #: ../src/common/stockitem.cpp:191 #, fuzzy msgid "&Save as" msgstr "Αποθήκευση ως" #: ../include/wx/richmsgdlg.h:29 #, fuzzy msgid "&See details" msgstr "&Λεπτομέρειες" #: ../src/generic/tipdlg.cpp:270 msgid "&Show tips at startup" msgstr "&Εμφάνιση tips κατά την εκκίνηση" #: ../src/univ/themes/win32.cpp:3750 msgid "&Size" msgstr "&Μέγεθος" #: ../src/richtext/richtextfontpage.cpp:168 #, fuzzy msgid "&Size:" msgstr "&Μέγεθος" #: ../src/generic/progdlgg.cpp:282 #, fuzzy msgid "&Skip" msgstr "Παράλειψη" #: ../src/richtext/richtextindentspage.cpp:242 #: ../src/richtext/richtextliststylepage.cpp:417 msgid "&Spacing (tenths of a mm)" msgstr "" #: ../src/common/stockitem.cpp:197 msgid "&Spell Check" msgstr "" #: ../src/common/stockitem.cpp:198 msgid "&Stop" msgstr "&Διακοπή" #: ../src/richtext/richtextfontpage.cpp:284 ../src/common/stockitem.cpp:199 msgid "&Strikethrough" msgstr "" #: ../src/generic/fontdlgg.cpp:382 ../src/richtext/richtextstylepage.cpp:104 msgid "&Style:" msgstr "&Στυλ:" #: ../src/richtext/richtextstyledlg.cpp:198 #, fuzzy msgid "&Styles:" msgstr "&Στυλ:" #: ../src/richtext/richtextsymboldlg.cpp:413 msgid "&Subset:" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:222 #, fuzzy msgid "&Symbol:" msgstr "&Στυλ:" #: ../include/wx/richtext/richtextbuffer.h:5679 msgid "&Table" msgstr "" #: ../src/common/stockitem.cpp:200 #, fuzzy msgid "&Top" msgstr "&Αντιγραφή" #: ../src/richtext/richtextborderspage.cpp:329 #: ../src/richtext/richtextborderspage.cpp:473 #: ../src/richtext/richtextmarginspage.cpp:235 #: ../src/richtext/richtextmarginspage.cpp:349 #: ../src/richtext/richtextsizepage.cpp:567 #: ../src/richtext/richtextsizepage.cpp:574 #, fuzzy msgid "&Top:" msgstr "Πρός:" #: ../src/generic/fontdlgg.cpp:444 ../src/common/stockitem.cpp:202 msgid "&Underline" msgstr "&Υπογράμμιση" #: ../src/richtext/richtextfontpage.cpp:243 #, fuzzy msgid "&Underlining:" msgstr "&Υπογράμμιση" #: ../src/richtext/richtextctrl.cpp:322 ../src/osx/textctrl_osx.cpp:579 #: ../src/common/stockitem.cpp:203 ../src/common/cmdproc.cpp:271 #: ../src/msw/textctrl.cpp:2280 msgid "&Undo" msgstr "&Αναίρεση" #: ../src/common/cmdproc.cpp:265 msgid "&Undo " msgstr "&Αναίρεση " #: ../src/common/stockitem.cpp:204 msgid "&Unindent" msgstr "Α&ποστοίχιση" #: ../src/common/stockitem.cpp:205 msgid "&Up" msgstr "&Επάνω" #: ../src/richtext/richtextsizepage.cpp:278 #, fuzzy msgid "&Vertical alignment:" msgstr "Στοίχιση Αριστερά" #: ../src/generic/dbgrptg.cpp:340 #, fuzzy msgid "&View..." msgstr "&Ανοιγμα..." #: ../src/generic/fontdlgg.cpp:393 msgid "&Weight:" msgstr "&Βάρος:" #: ../src/richtext/richtextsizepage.cpp:317 #: ../src/richtext/richtextsizepage.cpp:324 #, fuzzy msgid "&Width:" msgstr "&Βάρος:" #: ../src/aui/tabmdi.cpp:311 ../src/aui/tabmdi.cpp:327 #: ../src/aui/tabmdi.cpp:329 ../src/generic/mdig.cpp:294 #: ../src/generic/mdig.cpp:310 ../src/generic/mdig.cpp:314 #: ../src/msw/mdi.cpp:77 msgid "&Window" msgstr "&Παράθυρο" #: ../src/common/stockitem.cpp:206 ../src/msw/msgdlg.cpp:476 msgid "&Yes" msgstr "&Ναι" #: ../src/common/config.cpp:523 ../src/msw/regconf.cpp:258 #, c-format msgid "'%s' has extra '..', ignored." msgstr "'%s' περιέχει επιπλέον '..', αγνοήθηκαν." #: ../src/common/valtext.cpp:249 ../src/common/valtext.cpp:251 #: ../src/common/valtext.cpp:253 ../src/common/valtext.cpp:255 #, c-format msgid "'%s' is invalid" msgstr "'%s' δεν ισχύει" #: ../src/common/cmdline.cpp:948 ../src/common/cmdline.cpp:966 #, c-format msgid "'%s' is not a correct numeric value for option '%s'." msgstr "'%s' δεν είναι μία σωστή αριθμητική τιμή για την επιλογή '%s'." #: ../src/common/translation.cpp:1086 #, c-format msgid "'%s' is not a valid message catalog." msgstr "'%s' δεν είναι ένας σωστός κατάλογος μηνυμάτων." #: ../src/common/textbuf.cpp:239 #, c-format msgid "'%s' is probably a binary buffer." msgstr "'%s' είναι πιθανόν ένας δυαδικός ( binary ) buffer" #: ../src/common/valtext.cpp:247 #, c-format msgid "'%s' should be numeric." msgstr "'%s' πρέπει να είναι αριθμητικό." #: ../src/common/valtext.cpp:239 #, c-format msgid "'%s' should only contain ASCII characters." msgstr "'%s' πρέπει να περιέχει ASCII χαρακτήρες." #: ../src/common/valtext.cpp:241 #, c-format msgid "'%s' should only contain alphabetic characters." msgstr "'%s' πρέπει να περιέχει μόνο αλφαβητικούς χαρακτήρες." #: ../src/common/valtext.cpp:243 #, c-format msgid "'%s' should only contain alphabetic or numeric characters." msgstr "'%s' πρέπει να περιέχει μόνο αλφαβητικούς ή αριθμητικούς χαρακτήρες." #: ../src/common/valtext.cpp:245 #, fuzzy, c-format msgid "'%s' should only contain digits." msgstr "'%s' πρέπει να περιέχει ASCII χαρακτήρες." #: ../src/richtext/richtextliststylepage.cpp:229 #: ../src/richtext/richtextbulletspage.cpp:179 msgid "(*)" msgstr "" #: ../src/html/helpwnd.cpp:976 msgid "(Help)" msgstr "(Βοήθεια)" #: ../src/richtext/richtextliststylepage.cpp:481 #: ../src/richtext/richtextbulletspage.cpp:286 msgid "(None)" msgstr "" #: ../src/richtext/richtextsymboldlg.cpp:504 #, fuzzy msgid "(Normal text)" msgstr "Κανονική γραμματοσειρά:" #: ../src/html/helpwnd.cpp:426 ../src/html/helpwnd.cpp:1119 #: ../src/html/helpwnd.cpp:1745 msgid "(bookmarks)" msgstr "(σελιδοδείκτες)" #: ../src/richtext/richtextindentspage.cpp:274 #: ../src/richtext/richtextindentspage.cpp:286 #: ../src/richtext/richtextindentspage.cpp:287 #: ../src/richtext/richtextindentspage.cpp:311 #: ../src/richtext/richtextindentspage.cpp:326 #: ../src/richtext/richtextformatdlg.cpp:831 #: ../src/richtext/richtextfontpage.cpp:331 #: ../src/richtext/richtextfontpage.cpp:335 #: ../src/richtext/richtextfontpage.cpp:339 #: ../src/richtext/richtextliststylepage.cpp:448 #: ../src/richtext/richtextliststylepage.cpp:460 #: ../src/richtext/richtextliststylepage.cpp:461 #, fuzzy msgid "(none)" msgstr "ανώνυμο" #: ../src/richtext/richtextliststylepage.cpp:492 #: ../src/richtext/richtextbulletspage.cpp:297 msgid "*" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:236 #: ../src/richtext/richtextbulletspage.cpp:186 msgid "*)" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:495 #: ../src/richtext/richtextbulletspage.cpp:300 msgid "+" msgstr "" #: ../src/msw/utils.cpp:1324 msgid ", 64-bit edition" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:493 #: ../src/richtext/richtextbulletspage.cpp:298 msgid "-" msgstr "" #: ../src/generic/filepickerg.cpp:66 #, fuzzy msgid "..." msgstr ".." #: ../src/richtext/richtextindentspage.cpp:276 #: ../src/richtext/richtextliststylepage.cpp:450 msgid "1.1" msgstr "" #: ../src/richtext/richtextindentspage.cpp:277 #: ../src/richtext/richtextliststylepage.cpp:451 msgid "1.2" msgstr "" #: ../src/richtext/richtextindentspage.cpp:278 #: ../src/richtext/richtextliststylepage.cpp:452 msgid "1.3" msgstr "" #: ../src/richtext/richtextindentspage.cpp:279 #: ../src/richtext/richtextliststylepage.cpp:453 msgid "1.4" msgstr "" #: ../src/richtext/richtextindentspage.cpp:280 #: ../src/richtext/richtextliststylepage.cpp:454 msgid "1.5" msgstr "" #: ../src/richtext/richtextindentspage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:455 msgid "1.6" msgstr "" #: ../src/richtext/richtextindentspage.cpp:282 #: ../src/richtext/richtextliststylepage.cpp:456 msgid "1.7" msgstr "" #: ../src/richtext/richtextindentspage.cpp:283 #: ../src/richtext/richtextliststylepage.cpp:457 msgid "1.8" msgstr "" #: ../src/richtext/richtextindentspage.cpp:284 #: ../src/richtext/richtextliststylepage.cpp:458 msgid "1.9" msgstr "" #: ../src/common/paper.cpp:141 #, fuzzy msgid "10 x 11 in" msgstr "10 x 14 ίντσες" #: ../src/common/paper.cpp:114 msgid "10 x 14 in" msgstr "10 x 14 ίντσες" #: ../src/common/paper.cpp:115 msgid "11 x 17 in" msgstr "11 x 17 ίντσες" #: ../src/common/paper.cpp:185 #, fuzzy msgid "12 x 11 in" msgstr "10 x 14 ίντσες" #: ../src/common/paper.cpp:142 #, fuzzy msgid "15 x 11 in" msgstr "10 x 14 ίντσες" #: ../src/richtext/richtextindentspage.cpp:285 #: ../src/richtext/richtextliststylepage.cpp:459 msgid "2" msgstr "" #: ../src/common/paper.cpp:133 msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in" msgstr "6 3/4 Φάκελος, 3 5/8 x 6 1/2 ίντσες" #: ../src/common/paper.cpp:140 #, fuzzy msgid "9 x 11 in" msgstr "11 x 17 ίντσες" #: ../src/html/htmprint.cpp:431 msgid ": file does not exist!" msgstr ": το αρχείο δεν υπάρχει!" #: ../src/common/fontmap.cpp:199 msgid ": unknown charset" msgstr ": άγνωστο σετ χαρακτήρων" #: ../src/common/fontmap.cpp:413 msgid ": unknown encoding" msgstr ": άγνωστη κωδικοποίηση" #: ../src/generic/wizard.cpp:437 msgid "< &Back" msgstr "< &Πίσω" #: ../src/osx/carbon/fontdlg.cpp:608 ../src/osx/carbon/fontdlg.cpp:815 #: ../src/osx/carbon/fontdlg.cpp:835 #, fuzzy msgid "" msgstr "Διακοσμητικός" #: ../src/osx/carbon/fontdlg.cpp:609 ../src/osx/carbon/fontdlg.cpp:817 #: ../src/osx/carbon/fontdlg.cpp:837 #, fuzzy msgid "" msgstr "Μοντέρνο" #: ../src/osx/carbon/fontdlg.cpp:607 ../src/osx/carbon/fontdlg.cpp:813 #: ../src/osx/carbon/fontdlg.cpp:833 #, fuzzy msgid "" msgstr "Ρωμαϊκό" #: ../src/osx/carbon/fontdlg.cpp:610 ../src/osx/carbon/fontdlg.cpp:819 #: ../src/osx/carbon/fontdlg.cpp:839 #, fuzzy msgid "" msgstr "Χειρόγραφο(Script)" #: ../src/osx/carbon/fontdlg.cpp:611 ../src/osx/carbon/fontdlg.cpp:824 #: ../src/osx/carbon/fontdlg.cpp:843 #, fuzzy msgid "" msgstr "Ελβετικό(Swiss)" #: ../src/osx/carbon/fontdlg.cpp:612 ../src/osx/carbon/fontdlg.cpp:821 #: ../src/osx/carbon/fontdlg.cpp:841 #, fuzzy msgid "" msgstr "Τηλέτυπο" #: ../src/osx/carbon/fontdlg.cpp:606 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:286 ../src/generic/filectrlg.cpp:309 msgid "" msgstr "<ΚΑΤΑΛΟΓΟΣ>" #: ../src/generic/filectrlg.cpp:290 ../src/generic/filectrlg.cpp:313 msgid "" msgstr "<ΟΔΗΓΟΣ>" #: ../src/generic/filectrlg.cpp:288 ../src/generic/filectrlg.cpp:311 msgid "" msgstr "<ΣΥΝΔΕΣΗ>" #: ../src/html/helpwnd.cpp:1279 msgid "Bold italic face.
    " msgstr "Εντονη πλάγια όψη.
    " #: ../src/html/helpwnd.cpp:1283 msgid "bold italic underlined
    " msgstr "έντονα πλάγια υπογραμμισμένα
    " #: ../src/html/helpwnd.cpp:1278 msgid "Bold face. " msgstr "Έντονη όψη" #: ../src/html/helpwnd.cpp:1277 msgid "Italic face. " msgstr "Πλάγια όψη." #: ../src/richtext/richtextliststylepage.cpp:494 #: ../src/richtext/richtextbulletspage.cpp:299 #, fuzzy msgid ">" msgstr ">>" #: ../src/generic/dbgrptg.cpp:318 msgid "A debug report has been generated in the directory\n" msgstr "" #: ../src/common/debugrpt.cpp:578 msgid "A debug report has been generated. It can be found in" msgstr "" #: ../src/common/xtixml.cpp:418 msgid "A non empty collection must consist of 'element' nodes" msgstr "Μία μη άδεια συλλογή πρέπει να αποτελείται από κόμβους 'element'" #: ../src/richtext/richtextliststylepage.cpp:304 #: ../src/richtext/richtextliststylepage.cpp:306 #: ../src/richtext/richtextbulletspage.cpp:257 #: ../src/richtext/richtextbulletspage.cpp:259 msgid "A standard bullet name." msgstr "" #: ../src/common/paper.cpp:218 #, fuzzy msgid "A0 sheet, 841 x 1189 mm" msgstr "Φύλλο A4, 210 x 297 mm" #: ../src/common/paper.cpp:219 #, fuzzy msgid "A1 sheet, 594 x 841 mm" msgstr "Φύλλο A3, 297 x 420 mm" #: ../src/common/paper.cpp:160 msgid "A2 420 x 594 mm" msgstr "" #: ../src/common/paper.cpp:157 #, fuzzy msgid "A3 Extra 322 x 445 mm" msgstr "C3 Φάκελος, 324 x 458 mm" #: ../src/common/paper.cpp:162 #, fuzzy msgid "A3 Extra Transverse 322 x 445 mm" msgstr "C3 Φάκελος, 324 x 458 mm" #: ../src/common/paper.cpp:171 #, fuzzy msgid "A3 Rotated 420 x 297 mm" msgstr "Φύλλο A4, 210 x 297 mm" #: ../src/common/paper.cpp:161 #, fuzzy msgid "A3 Transverse 297 x 420 mm" msgstr "Φύλλο A3, 297 x 420 mm" #: ../src/common/paper.cpp:107 msgid "A3 sheet, 297 x 420 mm" msgstr "Φύλλο A3, 297 x 420 mm" #: ../src/common/paper.cpp:147 msgid "A4 Extra 9.27 x 12.69 in" msgstr "" #: ../src/common/paper.cpp:154 #, fuzzy msgid "A4 Plus 210 x 330 mm" msgstr "Φύλλο A4, 210 x 297 mm" #: ../src/common/paper.cpp:172 #, fuzzy msgid "A4 Rotated 297 x 210 mm" msgstr "Φύλλο A3, 297 x 420 mm" #: ../src/common/paper.cpp:149 #, fuzzy msgid "A4 Transverse 210 x 297 mm" msgstr "Φύλλο A4, 210 x 297 mm" #: ../src/common/paper.cpp:98 msgid "A4 sheet, 210 x 297 mm" msgstr "Φύλλο A4, 210 x 297 mm" #: ../src/common/paper.cpp:108 msgid "A4 small sheet, 210 x 297 mm" msgstr "Μικρό φύλλο A4, 210 x 297 mm" #: ../src/common/paper.cpp:158 #, fuzzy msgid "A5 Extra 174 x 235 mm" msgstr "Φύλλο A5, 148 x 210 mm" #: ../src/common/paper.cpp:173 msgid "A5 Rotated 210 x 148 mm" msgstr "" #: ../src/common/paper.cpp:155 #, fuzzy msgid "A5 Transverse 148 x 210 mm" msgstr "Φύλλο A5, 148 x 210 mm" #: ../src/common/paper.cpp:109 msgid "A5 sheet, 148 x 210 mm" msgstr "Φύλλο A5, 148 x 210 mm" #: ../src/common/paper.cpp:165 #, fuzzy msgid "A6 105 x 148 mm" msgstr "10 x 14 ίντσες" #: ../src/common/paper.cpp:178 #, fuzzy msgid "A6 Rotated 148 x 105 mm" msgstr "Φύλλο A5, 148 x 210 mm" #: ../src/generic/fontdlgg.cpp:83 ../src/richtext/richtextformatdlg.cpp:526 #: ../src/osx/carbon/fontdlg.cpp:339 msgid "ABCDEFGabcdefg12345" msgstr "ΑΒΓΔΕΖαβγδεζ12345" #: ../src/common/accelcmn.cpp:76 msgid "ADD" msgstr "" #: ../src/richtext/richtextsymboldlg.cpp:458 ../src/common/ftp.cpp:405 msgid "ASCII" msgstr "ASCII" #: ../src/osx/menu_osx.cpp:630 ../src/common/stockitem.cpp:139 #, fuzzy msgid "About" msgstr "&Περί" #: ../src/generic/aboutdlgg.cpp:140 ../src/msw/aboutdlg.cpp:64 #, fuzzy, c-format msgid "About %s" msgstr "&Περί..." #: ../src/richtext/richtextsizepage.cpp:520 msgid "Absolute" msgstr "" #: ../src/common/stockitem.cpp:207 #, fuzzy msgid "Actual Size" msgstr "&Πραγματικό μέγεθος" #: ../src/common/stockitem.cpp:140 msgid "Add" msgstr "Προσθήκη" #: ../src/richtext/richtextbuffer.cpp:10751 msgid "Add Column" msgstr "" #: ../src/richtext/richtextbuffer.cpp:10688 msgid "Add Row" msgstr "" #: ../src/html/helpwnd.cpp:439 msgid "Add current page to bookmarks" msgstr "Προσθήκη της τρέχουσας σελίδας στους σελιδοδείκτες" #: ../src/generic/colrdlgg.cpp:283 msgid "Add to custom colours" msgstr "Προσθήκη στα χρώματα χρήστη" #: ../include/wx/xtiprop.h:259 msgid "AddToPropertyCollection called on a generic accessor" msgstr "AddToPropertyCollection κλήθηκε σε έναν γενικό accessor" #: ../include/wx/xtiprop.h:197 msgid "AddToPropertyCollection called w/o valid adder" msgstr "AddToPropertyCollection κλήθηκε χωρίς έγκυρο προσθέτη" #: ../src/html/helpctrl.cpp:159 #, c-format msgid "Adding book %s" msgstr "Προσθήκη βιβλίου %s" #: ../src/osx/carbon/dataview.cpp:1933 msgid "Adding flavor TEXT failed" msgstr "" #: ../src/osx/carbon/dataview.cpp:1954 msgid "Adding flavor utxt failed" msgstr "" #: ../src/common/preferencescmn.cpp:41 msgid "Advanced" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:435 msgid "After a paragraph:" msgstr "" #: ../src/common/stockitem.cpp:172 msgid "Align Left" msgstr "Στοίχιση Αριστερά" #: ../src/common/stockitem.cpp:173 msgid "Align Right" msgstr "Στοίχιση Δεξιά" #: ../src/richtext/richtextsizepage.cpp:266 #, fuzzy msgid "Alignment" msgstr "Στοίχιση Αριστερά" #: ../src/generic/prntdlgg.cpp:215 msgid "All" msgstr "Όλα" #: ../src/generic/filectrlg.cpp:1205 ../src/common/fldlgcmn.cpp:89 #, c-format msgid "All files (%s)|%s" msgstr "Όλα τα αρχεία (%s)|%s" #: ../include/wx/defs.h:2922 msgid "All files (*)|*" msgstr "Όλα τα αρχεία (*)|*" #: ../include/wx/defs.h:2919 msgid "All files (*.*)|*.*" msgstr "Όλα τα αρχεία (*.*)|*.*" #: ../src/richtext/richtextstyles.cpp:1057 msgid "All styles" msgstr "" #: ../src/propgrid/manager.cpp:1496 msgid "Alphabetic Mode" msgstr "" #: ../src/common/xtistrm.cpp:429 msgid "Already Registered Object passed to SetObjectClassInfo" msgstr "Ένα ήδη Registered αντικείμενο δόθηκε στην SetObjectClassInfo" #: ../src/unix/dialup.cpp:353 msgid "Already dialling ISP." msgstr "Γίνεται ήδη κλήση προς τον παροχέα Internet(ISP)." #: ../src/common/accelcmn.cpp:320 ../src/univ/themes/win32.cpp:3756 msgid "Alt+" msgstr "" #: ../src/common/debugrpt.cpp:581 msgid "And includes the following files:\n" msgstr "" #: ../src/generic/animateg.cpp:162 #, fuzzy, c-format msgid "Animation file is not of type %ld." msgstr "Αρχείο εικόνας δεν είναι τύπυ %d." #: ../src/generic/logg.cpp:1034 #, c-format msgid "Append log to file '%s' (choosing [No] will overwrite it)?" msgstr "" "Να γίνει προσάρτηση(append) της καταγραφής(log) στο αρχείο '%s' (Επιλέγοντας " "[Όχι] θα το επικαλύψει(overwrite));" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:610 #: ../src/osx/menu_osx.cpp:649 ../src/osx/menu_osx.cpp:657 #, fuzzy msgid "Application" msgstr "Τμήματα" #: ../src/common/stockitem.cpp:141 #, fuzzy msgid "Apply" msgstr "&Εφαρμογή" #: ../src/richtext/richtextliststylepage.cpp:482 #: ../src/richtext/richtextbulletspage.cpp:287 msgid "Arabic" msgstr "" #: ../src/common/fmapbase.cpp:153 msgid "Arabic (ISO-8859-6)" msgstr "Αραβικό (ISO-8859-6)" #: ../src/msw/ole/automtn.cpp:661 #, fuzzy, c-format msgid "Argument %u not found." msgstr "αρχείο καταλόγου για την περιοχή (domain) '%s' δεν βρέθηκε." #: ../src/generic/aboutdlgg.cpp:184 msgid "Artists" msgstr "" #: ../src/common/stockitem.cpp:195 #, fuzzy msgid "Ascending" msgstr "γίνεται ανάγνωση" #: ../src/generic/filectrlg.cpp:468 msgid "Attributes" msgstr "Χαρακτηριστικά" #: ../src/richtext/richtextliststylepage.cpp:294 #: ../src/richtext/richtextbulletspage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:247 msgid "Available fonts." msgstr "" #: ../src/common/paper.cpp:138 #, fuzzy msgid "B4 (ISO) 250 x 353 mm" msgstr "Φύλλο B4, 250 x 354 mm" #: ../src/common/paper.cpp:174 msgid "B4 (JIS) Rotated 364 x 257 mm" msgstr "" #: ../src/common/paper.cpp:128 msgid "B4 Envelope, 250 x 353 mm" msgstr "B4 Φάκελος, 250 x 353 mm" #: ../src/common/paper.cpp:110 msgid "B4 sheet, 250 x 354 mm" msgstr "Φύλλο B4, 250 x 354 mm" #: ../src/common/paper.cpp:159 msgid "B5 (ISO) Extra 201 x 276 mm" msgstr "" #: ../src/common/paper.cpp:175 msgid "B5 (JIS) Rotated 257 x 182 mm" msgstr "" #: ../src/common/paper.cpp:156 #, fuzzy msgid "B5 (JIS) Transverse 182 x 257 mm" msgstr "Φύλλο B5, 182 x 257 mm" #: ../src/common/paper.cpp:129 msgid "B5 Envelope, 176 x 250 mm" msgstr "B5 Φάκελος, 176 x 250 mm" #: ../src/common/paper.cpp:111 msgid "B5 sheet, 182 x 257 millimeter" msgstr "Φύλλο B5, 182 x 257 mm" #: ../src/common/paper.cpp:183 msgid "B6 (JIS) 128 x 182 mm" msgstr "" #: ../src/common/paper.cpp:184 msgid "B6 (JIS) Rotated 182 x 128 mm" msgstr "" #: ../src/common/paper.cpp:130 msgid "B6 Envelope, 176 x 125 mm" msgstr "B6 Φάκελος, 176 x 125 mm" #: ../src/common/accelcmn.cpp:49 msgid "BACK" msgstr "" #: ../src/common/imagbmp.cpp:523 ../src/common/imagbmp.cpp:553 #: ../src/common/imagbmp.cpp:568 msgid "BMP: Couldn't allocate memory." msgstr "BMP: Δεν ήταν δυνατή η δέσμευση(allocation) μνήμης." #: ../src/common/imagbmp.cpp:97 msgid "BMP: Couldn't save invalid image." msgstr "BMP: Δεν είναι δυνατή η αποθήκευση μη έγκυρης εικόνας." #: ../src/common/imagbmp.cpp:338 msgid "BMP: Couldn't write RGB color map." msgstr "BMP: Δεν ήταν δυνατή η εγγραφή του χάρτη RGB." #: ../src/common/imagbmp.cpp:473 msgid "BMP: Couldn't write data." msgstr "BMP: Δεν ήταν δυνατή η εγγραφή δεδομένων." #: ../src/common/imagbmp.cpp:239 msgid "BMP: Couldn't write the file (Bitmap) header." msgstr "BMP: Δεν ήταν δυνατή η εγγραφή της κεφαλής του αρχείου Bitmap." #: ../src/common/imagbmp.cpp:262 msgid "BMP: Couldn't write the file (BitmapInfo) header." msgstr "BMP: Δεν ήταν δυνατή η εγγραφή της κεφαλής του αρχείου BitmapInfo." #: ../src/common/imagbmp.cpp:133 msgid "BMP: wxImage doesn't have own wxPalette." msgstr "BMP: Το wxImage δεν κατέχει κάποιο wxPalette." #: ../src/common/stockitem.cpp:142 #, fuzzy msgid "Back" msgstr "&Πίσω" #: ../src/richtext/richtextbackgroundpage.cpp:119 #: ../src/richtext/richtextformatdlg.cpp:374 #, fuzzy msgid "Background" msgstr "Πίσω" #: ../src/richtext/richtextbackgroundpage.cpp:131 msgid "Background &colour:" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:406 msgid "Background colour" msgstr "" #: ../src/common/fmapbase.cpp:160 msgid "Baltic (ISO-8859-13)" msgstr "Βαλτικό (ISO-8859-13)" #: ../src/common/fmapbase.cpp:151 msgid "Baltic (old) (ISO-8859-4)" msgstr "Βαλτικό (παλαιό) (ISO-8859-4)" #: ../src/richtext/richtextliststylepage.cpp:426 msgid "Before a paragraph:" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:489 #: ../src/richtext/richtextbulletspage.cpp:294 msgid "Bitmap" msgstr "" #: ../src/osx/carbon/dataview.cpp:2396 msgid "Bitmap renderer cannot render value; value type: " msgstr "" #: ../src/generic/fontdlgg.cpp:333 ../src/richtext/richtextfontpage.cpp:337 #: ../src/osx/carbon/fontdlg.cpp:540 ../src/common/stockitem.cpp:143 msgid "Bold" msgstr "Έντονο" #: ../src/richtext/richtextborderspage.cpp:256 #: ../src/richtext/richtextborderspage.cpp:389 #, fuzzy msgid "Border" msgstr "Μοντέρνο" #: ../src/richtext/richtextformatdlg.cpp:368 #, fuzzy msgid "Borders" msgstr "Μοντέρνο" #: ../src/richtext/richtextsizepage.cpp:288 ../src/common/stockitem.cpp:144 msgid "Bottom" msgstr "" #: ../src/generic/prntdlgg.cpp:893 msgid "Bottom margin (mm):" msgstr "Κάτω περιθώριο (mm)" #: ../src/richtext/richtextbuffer.cpp:8919 #, fuzzy msgid "Box Properties" msgstr "&Ιδιότητες" #: ../src/richtext/richtextstyles.cpp:1061 #, fuzzy msgid "Box styles" msgstr "&Επόμενο >" #: ../src/common/filepickercmn.cpp:43 ../src/common/filepickercmn.cpp:44 msgid "Browse" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:195 msgid "Bullet &Alignment:" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:309 msgid "Bullet style" msgstr "" #: ../src/richtext/richtextformatdlg.cpp:342 msgid "Bullets" msgstr "" #: ../src/common/paper.cpp:99 msgid "C sheet, 17 x 22 in" msgstr "Φύλλο C, 17 x 22 ίντσες" #: ../src/generic/logg.cpp:520 msgid "C&lear" msgstr "&Καθάρισμα" #: ../src/generic/fontdlgg.cpp:406 msgid "C&olour:" msgstr "&Χρώμα:" #: ../src/common/paper.cpp:124 msgid "C3 Envelope, 324 x 458 mm" msgstr "C3 Φάκελος, 324 x 458 mm" #: ../src/common/paper.cpp:125 msgid "C4 Envelope, 229 x 324 mm" msgstr "C4 Φάκελος, 229 x 324 mm" #: ../src/common/paper.cpp:123 msgid "C5 Envelope, 162 x 229 mm" msgstr "C5 Φάκελος, 162 x 229 mm" #: ../src/common/paper.cpp:126 msgid "C6 Envelope, 114 x 162 mm" msgstr "C6 Φάκελος, 114 x 162 mm" #: ../src/common/paper.cpp:127 msgid "C65 Envelope, 114 x 229 mm" msgstr "C65 Φάκελος, 114 x 229 mm" #: ../src/common/accelcmn.cpp:66 msgid "CANCEL" msgstr "" #: ../src/common/accelcmn.cpp:70 msgid "CAPITAL" msgstr "" #: ../src/common/stockitem.cpp:146 msgid "CD-Rom" msgstr "" #: ../src/html/chm.cpp:815 ../src/html/chm.cpp:874 msgid "CHM handler currently supports only local files!" msgstr "ο χειριστής CHM προς το παρόν υποστηρίζει μόνο τοπικά αρχεία!" #: ../src/common/accelcmn.cpp:67 msgid "CLEAR" msgstr "" #: ../src/common/accelcmn.cpp:111 msgid "COMMAND" msgstr "" #: ../src/richtext/richtextfontpage.cpp:291 msgid "Ca&pitals" msgstr "" #: ../src/common/cmdproc.cpp:267 msgid "Can't &Undo " msgstr "Δεν είναι δυνατή η αναίρεση" #: ../src/common/image.cpp:2686 msgid "Can't automatically determine the image format for non-seekable input." msgstr "" #: ../src/msw/registry.cpp:505 #, c-format msgid "Can't close registry key '%s'" msgstr "Δεν είναι δυνατό το κλείσιμο του κλειδιού μητρώου(registry key) '%s'" #: ../src/msw/registry.cpp:583 #, c-format msgid "Can't copy values of unsupported type %d." msgstr "Δεν είναι δυνατή η αντιγραφή τιμών μη υποστηριζομένου τύπου %d." #: ../src/msw/registry.cpp:486 #, c-format msgid "Can't create registry key '%s'" msgstr "Δεν είναι δυνατή η δημιουργία του κλειδιού μητρώου(registry key) '%s'" #: ../src/msw/thread.cpp:696 ../src/os2/thread.cpp:494 msgid "Can't create thread" msgstr "Δεν είναι δυνατή η δημιουργία του νήματος εκτέλεσης (thread)" #: ../src/msw/window.cpp:3793 #, c-format msgid "Can't create window of class %s" msgstr "Δεν είναι δυνατή η δημιουργία παραθύρου τάξεως %s" #: ../src/msw/registry.cpp:776 #, c-format msgid "Can't delete key '%s'" msgstr "Δεν είναι δυνατή η διαγραφή του κλειδιού '%s'" #: ../src/msw/iniconf.cpp:458 ../src/os2/iniconf.cpp:471 #, c-format msgid "Can't delete the INI file '%s'" msgstr "Δεν είναι δυνατή η διαγραφή του αρχείου INI '%s'" #: ../src/msw/registry.cpp:804 #, c-format msgid "Can't delete value '%s' from key '%s'" msgstr "Δεν είναι δυνατή η διαγραφή της τιμής '%s' από το κλειδί '%s'" #: ../src/msw/registry.cpp:1161 #, c-format msgid "Can't enumerate subkeys of key '%s'" msgstr "Δεν είναι δυνατή η απαρίθμηση των υποκλειδιών του '%s'" #: ../src/msw/registry.cpp:1116 #, c-format msgid "Can't enumerate values of key '%s'" msgstr "Δεν είναι δυνατή η απαρίθμηση των τιμών του κλειδιού '%s'" #: ../src/msw/registry.cpp:1379 #, c-format msgid "Can't export value of unsupported type %d." msgstr "Δεν είναι δυνατή η εξαγωγή τιμών μη υποστηριζομένου τύπου %d." #: ../src/common/ffile.cpp:236 #, c-format msgid "Can't find current position in file '%s'" msgstr "Δεν είναι δυνατή η εύρεση της τρέχουσας θέσης στο αρχείου '%s'" #: ../src/msw/registry.cpp:416 #, c-format msgid "Can't get info about registry key '%s'" msgstr "" "Δεν είναι δυνατή η συλλογή πληροφοριών για το κλειδί μητρώου(registry) '%s'" #: ../src/common/zstream.cpp:346 msgid "Can't initialize zlib deflate stream." msgstr "Δεν είναι δυνατή η αρχικοποίηση της ροής zlib deflate." #: ../src/common/zstream.cpp:185 msgid "Can't initialize zlib inflate stream." msgstr "Δεν είναι δυνατή η αρχικοποίηση της ροής zlib inflate." #: ../src/msw/fswatcher.cpp:432 #, c-format msgid "Can't monitor non-existent directory \"%s\" for changes." msgstr "" #: ../src/msw/registry.cpp:452 #, c-format msgid "Can't open registry key '%s'" msgstr "Δεν είναι δυνατό το άνοιγμα του κλειδιού μητρώου(registry) '%s'" #: ../src/common/zstream.cpp:252 #, c-format msgid "Can't read from inflate stream: %s" msgstr "Αδύνατη η ανάγνωση από την ροή inflate: %s" #: ../src/common/zstream.cpp:244 msgid "Can't read inflate stream: unexpected EOF in underlying stream." msgstr "" "Αδύνατη η ανάγνωση της ροής inflate: απρόσμενο EOF στην υποκείμενη ροή." #: ../src/msw/registry.cpp:1048 #, c-format msgid "Can't read value of '%s'" msgstr "Δεν είναι δυνατή η ανάγνωση της τιμής του '%s'" #: ../src/msw/registry.cpp:877 ../src/msw/registry.cpp:909 #: ../src/msw/registry.cpp:971 #, c-format msgid "Can't read value of key '%s'" msgstr "Δεν είναι δυνατή η ανάγνωση της τιμής του κλειδιού '%s'" #: ../src/common/image.cpp:2483 #, c-format msgid "Can't save image to file '%s': unknown extension." msgstr "" "Δεν είναι δυνατή η αποθήκευση της εικόνας στο αρχείο '%s': άγνωστη επέκταση" #: ../src/generic/logg.cpp:579 ../src/generic/logg.cpp:996 msgid "Can't save log contents to file." msgstr "" "Δεν είναι δυνατή η αποθήκευση των περιεχομένων της καταγραφής(log) στο " "αρχείο." #: ../src/msw/thread.cpp:652 ../src/os2/thread.cpp:477 msgid "Can't set thread priority" msgstr "Δεν είναι δυνατή η θέση προτεραιότητας του νήματος εκτέλεσης (thread)" #: ../src/msw/registry.cpp:895 ../src/msw/registry.cpp:939 #: ../src/msw/registry.cpp:1065 #, c-format msgid "Can't set value of '%s'" msgstr "Δεν είναι δυνατή η ανάθεση τιμής του '%s'" #: ../src/unix/utilsunx.cpp:357 #, fuzzy msgid "Can't write to child process's stdin" msgstr "Αποτυχία θανάτωσης της διαδικασίας(process) %d" #: ../src/common/zstream.cpp:427 #, c-format msgid "Can't write to deflate stream: %s" msgstr "Δεν είναι δυνατή η εγγραφή στην ροή deflate: %s" #: ../include/wx/msgdlg.h:274 ../src/generic/dirdlgg.cpp:107 #: ../src/richtext/richtextstyledlg.cpp:300 ../src/common/stockitem.cpp:145 #: ../src/msw/msgdlg.cpp:489 ../src/msw/progdlg.cpp:673 #: ../src/gtk1/fontdlg.cpp:144 ../src/motif/msgdlg.cpp:196 msgid "Cancel" msgstr "Ακυρο" #: ../src/os2/thread.cpp:116 msgid "Cannot create mutex." msgstr "Δεν είναι δυνατή η δημιουργία του mutex." #: ../src/osx/carbon/dataview.cpp:895 msgid "Cannot create new column's ID. Probably max. number of columns reached." msgstr "" #: ../src/common/filefn.cpp:1336 #, c-format msgid "Cannot enumerate files '%s'" msgstr "Δεν είναι δυνατή η απαρίθμηση των αρχείων '%s'" #: ../src/msw/dir.cpp:264 #, c-format msgid "Cannot enumerate files in directory '%s'" msgstr "Δεν είναι δυνατή η απαρίθμηση των αρχείων στον κατάλογο '%s'" #: ../src/msw/dialup.cpp:542 #, c-format msgid "Cannot find active dialup connection: %s" msgstr "Δεν είναι δυνατή η εύρεση της ενεργού τηλεφωνικής συνδέσεως: %s" #: ../src/msw/dialup.cpp:848 msgid "Cannot find the location of address book file" msgstr "Δεν είναι δυνατή η εύρεση της θέσης του αρχείου βιβλίου διευθύνσεων" #: ../src/msw/ole/automtn.cpp:562 #, fuzzy, c-format msgid "Cannot get an active instance of \"%s\"" msgstr "Δεν είναι δυνατή η εύρεση της ενεργού τηλεφωνικής συνδέσεως: %s" #: ../src/unix/threadpsx.cpp:1030 #, fuzzy, c-format msgid "Cannot get priority range for scheduling policy %d." msgstr "Δεν είναι δυνατή η ανάγνωση του εύρους προτεραιοτήτων" #: ../src/unix/utilsunx.cpp:988 msgid "Cannot get the hostname" msgstr "Δεν είναι δυνατή η ανάγνωση του ονόματος διακομιστή(hostname)" #: ../src/unix/utilsunx.cpp:1024 msgid "Cannot get the official hostname" msgstr "" "Δεν είναι δυνατή η ανάγνωση του επισήμου ονόματος διακομιστή(official " "hostname)" #: ../src/msw/dialup.cpp:949 msgid "Cannot hang up - no active dialup connection." msgstr "" "Δεν είναι δυνατό το κλείσιμο της γραμμής - δεν υπάρχει ενεργός τηλεφωνική " "σύνδεση." #: ../include/wx/msw/ole/oleutils.h:52 msgid "Cannot initialize OLE" msgstr "Δεν είναι δυνατή η αρχικοποίηση του OLE" #: ../src/common/socket.cpp:847 #, fuzzy msgid "Cannot initialize sockets" msgstr "Δεν είναι δυνατή η αρχικοποίηση του OLE" #: ../src/msw/volume.cpp:620 #, c-format msgid "Cannot load icon from '%s'." msgstr "Δεν είναι δυνατή η φόρτωση εικονιδίου από το '%s'" #: ../src/xrc/xmlres.cpp:361 #, fuzzy, c-format msgid "Cannot load resources from '%s'." msgstr "Δεν είναι δυνατή η φόρτωση πόρων(resources) από το αρχείο '%s'" #: ../src/xrc/xmlres.cpp:746 #, c-format msgid "Cannot load resources from file '%s'." msgstr "Δεν είναι δυνατή η φόρτωση πόρων(resources) από το αρχείο '%s'" #: ../src/html/htmlfilt.cpp:137 #, c-format msgid "Cannot open HTML document: %s" msgstr "Δεν είναι δυνατό το άνοιγμα εγγράφου HTML: %s" #: ../src/html/helpdata.cpp:665 #, c-format msgid "Cannot open HTML help book: %s" msgstr "Δεν είναι δυνατό το άνοιγμα βιβλίου βοήθειας HTML: %s" #: ../src/html/helpdata.cpp:297 #, c-format msgid "Cannot open contents file: %s" msgstr "Δεν είναι δυνατό το άνοιγμα των περιεχομένων του αρχείου: %s" #: ../src/generic/dcpsg.cpp:1751 msgid "Cannot open file for PostScript printing!" msgstr "Δεν είναι δυνατό το άνοιγμα του αρχείου για εκτύπωση PostScript!" #: ../src/html/helpdata.cpp:311 #, c-format msgid "Cannot open index file: %s" msgstr "Δεν είναι δυνατό το άνοιγμα του αρχείου ευρετηρίου(index): %s" #: ../src/xrc/xmlres.cpp:728 #, fuzzy, c-format msgid "Cannot open resources file '%s'." msgstr "Δεν είναι δυνατή η φόρτωση πόρων(resources) από το αρχείο '%s'" #: ../src/html/helpwnd.cpp:1537 msgid "Cannot print empty page." msgstr "Δεν είναι δυνατή η εκτύπωση άδειας σελίδας." #: ../src/msw/volume.cpp:507 #, c-format msgid "Cannot read typename from '%s'!" msgstr "Δεν είναι δυνατή η ανάγνωση ονομάτων τύπων(typenames) από το '%s'" #: ../src/os2/thread.cpp:527 #, c-format msgid "Cannot resume thread %lu" msgstr "Δεν είναι δυνατή η συνέχιση(resume) του νήματος(thread) %lu" #: ../src/msw/thread.cpp:923 #, fuzzy, c-format msgid "Cannot resume thread %lx" msgstr "Δεν είναι δυνατή η συνέχιση(resume) του νήματος(thread) %x" #: ../src/unix/threadpsx.cpp:1011 msgid "Cannot retrieve thread scheduling policy." msgstr "Δεν είναι δυνατή η ανάκτηση της thread scheduling policy." #: ../src/common/intl.cpp:542 #, c-format msgid "Cannot set locale to language \"%s\"." msgstr "" #: ../src/unix/threadpsx.cpp:831 ../src/msw/thread.cpp:569 msgid "Cannot start thread: error writing TLS." msgstr "" "Δεν είναι δυνατή η εκκίνηση του νήματος(thread): Σφάλμα κατά την εγγραφή του " "TLS" #: ../src/os2/thread.cpp:513 #, c-format msgid "Cannot suspend thread %lu" msgstr "Δεν είναι δυνατή η αναστολή εκτέλεσης(suspend) του νήματος(thread) %lu" #: ../src/msw/thread.cpp:907 #, fuzzy, c-format msgid "Cannot suspend thread %lx" msgstr "Δεν είναι δυνατή η αναστολή εκτέλεσης(suspend) του νήματος(thread) %x" #: ../src/msw/thread.cpp:830 msgid "Cannot wait for thread termination" msgstr "" "Δεν είναι δυνατή η αναμονή(wait) για τον τερματισμό του νήματος εκτέλεσης" "(thread)" #: ../src/html/helpwnd.cpp:546 msgid "Case sensitive" msgstr "Διάκριση κεφαλαίων-πεζών" #: ../src/propgrid/manager.cpp:1495 msgid "Categorized Mode" msgstr "" #: ../src/richtext/richtextbuffer.cpp:9347 #, fuzzy msgid "Cell Properties" msgstr "&Ιδιότητες" #: ../src/common/fmapbase.cpp:161 msgid "Celtic (ISO-8859-14)" msgstr "Κελτικό (ISO-8859-14)" #: ../src/richtext/richtextindentspage.cpp:160 #: ../src/richtext/richtextliststylepage.cpp:349 #, fuzzy msgid "Cen&tred" msgstr "Στο κέντρο" #: ../src/common/stockitem.cpp:170 msgid "Centered" msgstr "Στο κέντρο" #: ../src/common/fmapbase.cpp:149 msgid "Central European (ISO-8859-2)" msgstr "Κεντροευρωπαϊκό (ISO-8859-2)" #: ../src/richtext/richtextliststylepage.cpp:250 #: ../src/richtext/richtextbulletspage.cpp:200 #, fuzzy msgid "Centre" msgstr "Στο κέντρο" #: ../src/richtext/richtextindentspage.cpp:162 #: ../src/richtext/richtextindentspage.cpp:164 #: ../src/richtext/richtextliststylepage.cpp:351 #: ../src/richtext/richtextliststylepage.cpp:353 #, fuzzy msgid "Centre text." msgstr "Δεν είναι δυνατή η δημιουργία του mutex." #: ../src/richtext/richtextsizepage.cpp:287 #, fuzzy msgid "Centred" msgstr "Στο κέντρο" #: ../src/richtext/richtextliststylepage.cpp:280 #: ../src/richtext/richtextbulletspage.cpp:232 #, fuzzy msgid "Ch&oose..." msgstr "&Μετάβαση..." #: ../src/richtext/richtextbuffer.cpp:4041 msgid "Change List Style" msgstr "" #: ../src/richtext/richtextbuffer.cpp:3392 msgid "Change Object Style" msgstr "" #: ../src/richtext/richtextbuffer.cpp:3658 #: ../src/richtext/richtextbuffer.cpp:7749 #, fuzzy msgid "Change Properties" msgstr "&Ιδιότητες" #: ../src/richtext/richtextbuffer.cpp:3209 msgid "Change Style" msgstr "" #: ../src/common/fileconf.cpp:372 #, c-format msgid "Changes won't be saved to avoid overwriting the existing file \"%s\"" msgstr "" #: ../src/richtext/richtextstyles.cpp:1059 msgid "Character styles" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:224 #: ../src/richtext/richtextliststylepage.cpp:226 #: ../src/richtext/richtextbulletspage.cpp:174 #: ../src/richtext/richtextbulletspage.cpp:176 msgid "Check to add a period after the bullet." msgstr "" #: ../src/richtext/richtextliststylepage.cpp:238 #: ../src/richtext/richtextliststylepage.cpp:240 #: ../src/richtext/richtextbulletspage.cpp:188 #: ../src/richtext/richtextbulletspage.cpp:190 msgid "Check to add a right parenthesis." msgstr "" #: ../src/richtext/richtextliststylepage.cpp:231 #: ../src/richtext/richtextliststylepage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:181 #: ../src/richtext/richtextbulletspage.cpp:183 msgid "Check to enclose the bullet in parentheses." msgstr "" #: ../src/osx/carbon/fontdlg.cpp:542 ../src/osx/carbon/fontdlg.cpp:544 #, fuzzy msgid "Check to make the font bold." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/osx/carbon/fontdlg.cpp:549 ../src/osx/carbon/fontdlg.cpp:551 #, fuzzy msgid "Check to make the font italic." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/osx/carbon/fontdlg.cpp:558 ../src/osx/carbon/fontdlg.cpp:560 #, fuzzy msgid "Check to make the font underlined." msgstr "Επιλογή εαν η γραμματοσειρά είναι υπογραμμισμένη ή όχι." #: ../src/richtext/richtextstyledlg.cpp:289 #: ../src/richtext/richtextstyledlg.cpp:291 msgid "Check to restart numbering." msgstr "" #: ../src/richtext/richtextfontpage.cpp:286 #: ../src/richtext/richtextfontpage.cpp:288 #, fuzzy msgid "Check to show a line through the text." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextfontpage.cpp:293 #: ../src/richtext/richtextfontpage.cpp:295 #, fuzzy msgid "Check to show the text in capitals." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextfontpage.cpp:300 #: ../src/richtext/richtextfontpage.cpp:302 #, fuzzy msgid "Check to show the text in small capitals." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextfontpage.cpp:314 #: ../src/richtext/richtextfontpage.cpp:316 #, fuzzy msgid "Check to show the text in subscript." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextfontpage.cpp:307 #: ../src/richtext/richtextfontpage.cpp:309 #, fuzzy msgid "Check to show the text in superscript." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/msw/dialup.cpp:784 msgid "Choose ISP to dial" msgstr "Επιλέξτε παροχέα Internet για κλήση" #: ../src/propgrid/props.cpp:1643 #, fuzzy msgid "Choose a directory:" msgstr "Δημιουργία καταλόγου" #: ../src/propgrid/props.cpp:1702 #, fuzzy msgid "Choose a file" msgstr "Επιλέξτε γραμματοσειρά" #: ../src/generic/colrdlgg.cpp:144 ../src/gtk/colordlg.cpp:63 msgid "Choose colour" msgstr "Επιλέξτε χρώμα" #: ../src/generic/fontpickerg.cpp:50 ../src/gtk/fontdlg.cpp:75 #: ../src/gtk1/fontdlg.cpp:125 msgid "Choose font" msgstr "Επιλέξτε γραμματοσειρά" #: ../src/common/module.cpp:74 #, c-format msgid "Circular dependency involving module \"%s\" detected." msgstr "" #: ../src/aui/tabmdi.cpp:108 ../src/generic/mdig.cpp:97 msgid "Cl&ose" msgstr "&Κλείσιμο" #: ../src/msw/ole/automtn.cpp:673 #, fuzzy msgid "Class not registered." msgstr "Δεν είναι δυνατή η δημιουργία του νήματος εκτέλεσης (thread)" #: ../src/common/stockitem.cpp:147 #, fuzzy msgid "Clear" msgstr "&Καθαρισμός" #: ../src/generic/logg.cpp:520 msgid "Clear the log contents" msgstr "Καθαρισμός περιεχομένων καταγραφής(log)" #: ../src/richtext/richtextstyledlg.cpp:252 #: ../src/richtext/richtextstyledlg.cpp:254 #, fuzzy msgid "Click to apply the selected style." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextliststylepage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:283 #: ../src/richtext/richtextbulletspage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:235 msgid "Click to browse for a symbol." msgstr "" #: ../src/osx/carbon/fontdlg.cpp:589 ../src/osx/carbon/fontdlg.cpp:591 #, fuzzy msgid "Click to cancel changes to the font." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/generic/fontdlgg.cpp:472 ../src/generic/fontdlgg.cpp:491 msgid "Click to cancel the font selection." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/osx/carbon/fontdlg.cpp:570 ../src/osx/carbon/fontdlg.cpp:572 #, fuzzy msgid "Click to change the font colour." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextfontpage.cpp:276 #: ../src/richtext/richtextfontpage.cpp:278 #, fuzzy msgid "Click to change the text background colour." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextfontpage.cpp:263 #: ../src/richtext/richtextfontpage.cpp:265 #, fuzzy msgid "Click to change the text colour." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextliststylepage.cpp:195 #: ../src/richtext/richtextliststylepage.cpp:197 #, fuzzy msgid "Click to choose the font for this level." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextstyledlg.cpp:279 #: ../src/richtext/richtextstyledlg.cpp:281 #, fuzzy msgid "Click to close this window." msgstr "Κλείσιμο αυτού του παραθύρου." #: ../src/osx/carbon/fontdlg.cpp:596 ../src/osx/carbon/fontdlg.cpp:598 #, fuzzy msgid "Click to confirm changes to the font." msgstr "Κάνετε κλικ για να επιβεβαιώσετε την επιλογή γραμματοσειράς." #: ../src/generic/fontdlgg.cpp:477 ../src/generic/fontdlgg.cpp:479 #: ../src/generic/fontdlgg.cpp:484 ../src/generic/fontdlgg.cpp:486 msgid "Click to confirm the font selection." msgstr "Κάνετε κλικ για να επιβεβαιώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextstyledlg.cpp:244 #: ../src/richtext/richtextstyledlg.cpp:246 #, fuzzy msgid "Click to create a new box style." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextstyledlg.cpp:226 #: ../src/richtext/richtextstyledlg.cpp:228 msgid "Click to create a new character style." msgstr "" #: ../src/richtext/richtextstyledlg.cpp:238 #: ../src/richtext/richtextstyledlg.cpp:240 #, fuzzy msgid "Click to create a new list style." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextstyledlg.cpp:232 #: ../src/richtext/richtextstyledlg.cpp:234 msgid "Click to create a new paragraph style." msgstr "" #: ../src/richtext/richtexttabspage.cpp:137 #: ../src/richtext/richtexttabspage.cpp:139 #, fuzzy msgid "Click to create a new tab position." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtexttabspage.cpp:149 #: ../src/richtext/richtexttabspage.cpp:151 #, fuzzy msgid "Click to delete all tab positions." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextstyledlg.cpp:270 #: ../src/richtext/richtextstyledlg.cpp:272 #, fuzzy msgid "Click to delete the selected style." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtexttabspage.cpp:143 #: ../src/richtext/richtexttabspage.cpp:145 #, fuzzy msgid "Click to delete the selected tab position." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextstyledlg.cpp:264 #: ../src/richtext/richtextstyledlg.cpp:266 #, fuzzy msgid "Click to edit the selected style." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/richtext/richtextstyledlg.cpp:258 #: ../src/richtext/richtextstyledlg.cpp:260 #, fuzzy msgid "Click to rename the selected style." msgstr "Κάνετε κλικ για να ακυρώσετε την επιλογή γραμματοσειράς." #: ../src/generic/dbgrptg.cpp:97 ../src/generic/progdlgg.cpp:804 #: ../src/generic/progdlgg.cpp:809 ../src/richtext/richtextstyledlg.cpp:277 #: ../src/richtext/richtextsymboldlg.cpp:476 ../src/common/stockitem.cpp:148 #: ../src/msw/progdlg.cpp:170 ../src/msw/progdlg.cpp:679 #: ../src/html/helpdlg.cpp:90 msgid "Close" msgstr "Κλείσιμο" #: ../src/aui/tabmdi.cpp:109 ../src/generic/mdig.cpp:98 msgid "Close All" msgstr "Κλείσιμο" #: ../src/common/stockitem.cpp:266 msgid "Close current document" msgstr "" #: ../src/generic/logg.cpp:522 msgid "Close this window" msgstr "Κλείσιμο αυτού του παραθύρου." #: ../src/common/stockitem.cpp:193 #, fuzzy msgid "Color" msgstr "&Χρώμα:" #: ../src/richtext/richtextformatdlg.cpp:725 #, fuzzy msgid "Colour" msgstr "&Χρώμα:" #: ../src/msw/colordlg.cpp:156 #, fuzzy, c-format msgid "Colour selection dialog failed with error %0lx." msgstr "Η εκτέλεση της εντολής '%s' απέτυχε με σφάλμα: %ul" #: ../src/osx/carbon/fontdlg.cpp:566 #, fuzzy msgid "Colour:" msgstr "&Χρώμα:" #: ../src/osx/carbon/dataview.cpp:900 #, fuzzy msgid "Column could not be added." msgstr "Το αρχείο δεν μπόρεσε να φορτωθεί." #: ../src/osx/carbon/dataview.cpp:899 msgid "Column description could not be initialized." msgstr "" #: ../src/osx/carbon/dataview.cpp:1538 ../src/osx/carbon/dataview.cpp:1559 #, fuzzy msgid "Column index not found." msgstr "αρχείο καταλόγου για την περιοχή (domain) '%s' δεν βρέθηκε." #: ../src/osx/carbon/dataview.cpp:1614 msgid "Column width could not be determined" msgstr "" #: ../src/osx/carbon/dataview.cpp:901 msgid "Column width could not be set." msgstr "" #: ../src/common/init.cpp:188 #, c-format msgid "" "Command line argument %d couldn't be converted to Unicode and will be " "ignored." msgstr "" #: ../src/msw/fontdlg.cpp:119 #, fuzzy, c-format msgid "Common dialog failed with error code %0lx." msgstr "Η εκτέλεση της εντολής '%s' απέτυχε με σφάλμα: %ul" #: ../src/gtk/window.cpp:4306 msgid "" "Compositing not supported by this system, please enable it in your Window " "Manager." msgstr "" #: ../src/html/helpwnd.cpp:1554 msgid "Compressed HTML Help file (*.chm)|*.chm|" msgstr "Αρχείο βοήθειας συμπιεσμένης HTML (*.chm)|*.chm|" #: ../src/generic/dirctrlg.cpp:544 msgid "Computer" msgstr "Υπολογιστής" #: ../src/common/fileconf.cpp:965 #, c-format msgid "Config entry name cannot start with '%c'." msgstr "" "Το όνομα εισόδου διαμόρφωσης (Config entry name) δεν μπορεί να αρχίζει με " "'%c'" #: ../src/gtk/filedlg.cpp:59 msgid "Confirm" msgstr "Επιβεβαίωση" #: ../src/msw/mimetype.cpp:739 msgid "Confirm registry update" msgstr "Επιβεβαίωση ενημέρωσης μητρώου(registry update)" #: ../src/html/htmlwin.cpp:544 msgid "Connecting..." msgstr "Γίνεται σύνδεση..." #: ../src/html/helpwnd.cpp:482 msgid "Contents" msgstr "Περιεχόμενα" #: ../src/common/strconv.cpp:2261 #, c-format msgid "Conversion to charset '%s' doesn't work." msgstr "Η μετατροπή στο σετ χαρακτήρων '%s' δεν λειτουργεί" #: ../src/common/stockitem.cpp:149 #, fuzzy msgid "Convert" msgstr "Περιεχόμενα" #: ../src/html/htmlwin.cpp:1057 #, c-format msgid "Copied to clipboard:\"%s\"" msgstr "Αντιγράφηκε στο πρόχειρο:\"%s\"" #: ../src/generic/prntdlgg.cpp:247 msgid "Copies:" msgstr "Αντίγραφα:" #: ../src/common/stockitem.cpp:150 ../src/stc/stc_i18n.cpp:18 #, fuzzy msgid "Copy" msgstr "&Αντιγραφή" #: ../src/common/stockitem.cpp:258 #, fuzzy msgid "Copy selection" msgstr "Τμήματα" #: ../src/html/chm.cpp:718 #, c-format msgid "Could not create temporary file '%s'" msgstr "Δεν είναι δυνατή η δημιουργία του προσωρινού αρχείου '%s'" #: ../src/osx/carbon/dataview.cpp:1285 ../src/osx/carbon/dataview.cpp:1672 #, fuzzy msgid "Could not determine column index." msgstr "Δεν ήταν δυνατή η εκκίνηση της προεπισκόπησης εγγράφου." #: ../src/osx/carbon/dataview.cpp:876 msgid "Could not determine column's position" msgstr "" #: ../src/osx/carbon/dataview.cpp:843 #, fuzzy msgid "Could not determine number of columns." msgstr "Δεν βρέθηκε το αρχείο συμπερήληψης πόρων(resource include file) %s." #: ../src/osx/carbon/dataview.cpp:975 #, fuzzy msgid "Could not determine number of items" msgstr "Δεν βρέθηκε το αρχείο συμπερήληψης πόρων(resource include file) %s." #: ../src/html/chm.cpp:273 #, c-format msgid "Could not extract %s into %s: %s" msgstr "Δεν ήταν δυνατή η εξαγωγή του %s στο %s: %s" #: ../src/generic/tabg.cpp:1048 msgid "Could not find tab for id" msgstr "Δεν ήταν δυνατή η εύρεση tab για το id" #: ../src/osx/carbon/dataview.cpp:2556 ../src/osx/carbon/dataview.cpp:2591 #: ../src/osx/carbon/dataview.cpp:2615 ../src/osx/carbon/dataview.cpp:2636 #: ../src/osx/carbon/dataview.cpp:2773 #, fuzzy msgid "Could not get header description." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/osx/carbon/dataview.cpp:1169 ../src/osx/carbon/dataview.cpp:1195 #, fuzzy msgid "Could not get items." msgstr "Δεν είναι δυνατός ο εντοπισμός του αρχείου '%s'." #: ../src/osx/carbon/dataview.cpp:2659 ../src/osx/carbon/dataview.cpp:2724 #, fuzzy msgid "Could not get property flags." msgstr "Δεν είναι δυνατή η δημιουργία του προσωρινού αρχείου '%s'" #: ../src/osx/carbon/dataview.cpp:726 #, fuzzy msgid "Could not get selected items." msgstr "Δεν είναι δυνατός ο εντοπισμός του αρχείου '%s'." #: ../src/html/chm.cpp:444 #, c-format msgid "Could not locate file '%s'." msgstr "Δεν είναι δυνατός ο εντοπισμός του αρχείου '%s'." #: ../src/osx/carbon/dataview.cpp:845 #, fuzzy msgid "Could not remove column." msgstr "Δεν ήταν δυνατή η δημιουργία δείκτη ποντικιού." #: ../src/osx/carbon/dataview.cpp:642 #, fuzzy msgid "Could not retrieve number of items" msgstr "Δεν είναι δυνατή η δημιουργία του προσωρινού αρχείου '%s'" #: ../src/osx/carbon/dataview.cpp:2572 #, fuzzy msgid "Could not set alignment." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/osx/carbon/dataview.cpp:2803 #, fuzzy msgid "Could not set column width." msgstr "Δεν ήταν δυνατή η εκκίνηση της προεπισκόπησης εγγράφου." #: ../src/common/filefn.cpp:1569 #, fuzzy msgid "Could not set current working directory" msgstr "Αποτυχία λήψης καταλόγου εργασίας (working directory)" #: ../src/osx/carbon/dataview.cpp:2775 #, fuzzy msgid "Could not set header description." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/osx/carbon/dataview.cpp:2596 #, fuzzy msgid "Could not set icon." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/osx/carbon/dataview.cpp:2617 #, fuzzy msgid "Could not set maximum width." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/osx/carbon/dataview.cpp:2638 #, fuzzy msgid "Could not set minimum width." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/osx/carbon/dataview.cpp:2664 ../src/osx/carbon/dataview.cpp:2729 #, fuzzy msgid "Could not set property flags." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/common/prntbase.cpp:1985 msgid "Could not start document preview." msgstr "Δεν ήταν δυνατή η εκκίνηση της προεπισκόπησης εγγράφου." #: ../src/generic/printps.cpp:178 ../src/msw/printwin.cpp:210 #: ../src/gtk/print.cpp:1077 msgid "Could not start printing." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/common/wincmn.cpp:2131 msgid "Could not transfer data to window" msgstr "Δεν ήταν δυνατή η μεταφορά δεδομένων στο παράθυρο." #: ../src/os2/thread.cpp:160 msgid "Couldn't acquire a mutex lock" msgstr "Δεν ήταν δυνατή η κτήση μιας κλειδαριάς mutex" #: ../src/msw/imaglist.cpp:166 ../src/msw/imaglist.cpp:197 #: ../src/msw/imaglist.cpp:209 ../src/msw/dragimag.cpp:193 #: ../src/msw/dragimag.cpp:232 msgid "Couldn't add an image to the image list." msgstr "Δεν ήταν δυνατή η προσθήκη μιας εικόνας στην λίστα εικόνων." #: ../src/msw/timer.cpp:134 ../src/os2/timer.cpp:113 msgid "Couldn't create a timer" msgstr "Δεν ήταν δυνατή η δημιουργία χρονοδιακόπτη (timer)" #: ../src/osx/carbon/overlay.cpp:122 #, fuzzy msgid "Couldn't create the overlay window" msgstr "Δεν ήταν δυνατή η δημιουργία χρονοδιακόπτη (timer)" #: ../src/common/translation.cpp:2015 #, fuzzy msgid "Couldn't enumerate translations" msgstr "Δεν ήταν δυνατός ο τερματισμός του thread" #: ../src/common/dynlib.cpp:152 #, c-format msgid "Couldn't find symbol '%s' in a dynamic library" msgstr "" "Δεν ήταν δυνατός ο εντοπισμός του συμβόλου '%s' σε μια δυναμική βιβλιοθήκη." #: ../src/gtk/print.cpp:2014 msgid "Couldn't get hatch style from wxBrush." msgstr "" #: ../src/msw/thread.cpp:950 msgid "Couldn't get the current thread pointer" msgstr "" "Δεν ήταν δυνατή η ανάκτηση toy τρέχοντος δείκτη νήματος εκτέλεσης(thread)" #: ../src/osx/carbon/overlay.cpp:129 #, fuzzy msgid "Couldn't init the context on the overlay window" msgstr "" "Δεν ήταν δυνατή η ανάκτηση toy τρέχοντος δείκτη νήματος εκτέλεσης(thread)" #: ../src/common/imaggif.cpp:263 #, fuzzy msgid "Couldn't initialize GIF hash table." msgstr "Δεν είναι δυνατή η αρχικοποίηση της ροής zlib deflate." #: ../src/common/imagpng.cpp:657 msgid "Couldn't load a PNG image - file is corrupted or not enough memory." msgstr "" "Δεν ήταν δυνατή η φόρτωση εικόνας PNG - είτε το αρχείο δεν είναι έγκυρο ή " "δεν υπάρχει αρκετή μνήμη." #: ../src/unix/sound.cpp:470 #, c-format msgid "Couldn't load sound data from '%s'." msgstr "Δεν ήταν δυνατή η φόρτωση δεδομένων ήχου από το '%s'" #: ../src/msw/dirdlg.cpp:441 #, fuzzy msgid "Couldn't obtain folder name" msgstr "Δεν ήταν δυνατή η δημιουργία χρονοδιακόπτη (timer)" #: ../src/unix/sound_sdl.cpp:229 #, c-format msgid "Couldn't open audio: %s" msgstr "Δεν είναι δυνατό το άνοιγμα του ήχου: %s" #: ../src/msw/ole/dataobj.cpp:350 #, c-format msgid "Couldn't register clipboard format '%s'." msgstr "" "Δεν ήταν δυνατή η καταχώρηση του τύπου προχείρου(clipboard format) '%s'" #: ../src/os2/thread.cpp:177 msgid "Couldn't release a mutex" msgstr "Δεν ήταν δυνατή η απελευθέρωση ενός mutex" #: ../src/msw/listctrl.cpp:756 #, c-format msgid "Couldn't retrieve information about list control item %d." msgstr "" "Δεν ήταν δυνατή η ανάκτηση πληροφοριών σχετικά με το στοιχείο λίστας %d." #: ../src/common/imagpng.cpp:746 ../src/common/imagpng.cpp:757 #: ../src/common/imagpng.cpp:767 msgid "Couldn't save PNG image." msgstr "Δεν ήταν δυνατή η αποθήκευση εικόνας PNG." #: ../src/msw/thread.cpp:715 msgid "Couldn't terminate thread" msgstr "Δεν ήταν δυνατός ο τερματισμός του thread" #: ../src/common/xtistrm.cpp:170 #, fuzzy, c-format msgid "Create Parameter %s not found in declared RTTI Parameters" msgstr "Η παράμετρος Create δεν βρέθηκε στις δηλωμένες παραμέτρους RTTI" #: ../src/generic/dirdlgg.cpp:317 msgid "Create directory" msgstr "Δημιουργία καταλόγου" #: ../src/generic/filedlgg.cpp:228 ../src/generic/dirdlgg.cpp:131 msgid "Create new directory" msgstr "Δημιουργία νέου καταλόγου" #: ../src/common/accelcmn.cpp:322 #, fuzzy msgid "Ctrl+" msgstr "ctrl" #: ../src/richtext/richtextctrl.cpp:325 ../src/osx/textctrl_osx.cpp:582 #: ../src/common/stockitem.cpp:151 ../src/msw/textctrl.cpp:2283 msgid "Cu&t" msgstr "Απο&κοπή" #: ../src/generic/filectrlg.cpp:956 msgid "Current directory:" msgstr "Τρέχον κατάλογος:" #: ../src/gtk/print.cpp:759 #, fuzzy msgid "Custom size" msgstr "μέγεθος γραμματοσειράς" #: ../src/common/headerctrlcmn.cpp:60 #, fuzzy msgid "Customize Columns" msgstr "μέγεθος γραμματοσειράς" #: ../src/common/stockitem.cpp:151 ../src/stc/stc_i18n.cpp:17 #, fuzzy msgid "Cut" msgstr "Απο&κοπή" #: ../src/common/stockitem.cpp:259 #, fuzzy msgid "Cut selection" msgstr "Τμήματα" #: ../src/common/fmapbase.cpp:152 msgid "Cyrillic (ISO-8859-5)" msgstr "Κυριλλικό (ISO-8859-5)" #: ../src/common/paper.cpp:100 msgid "D sheet, 22 x 34 in" msgstr "D sheet, 22 x 34 ίντσες" #: ../src/msw/dde.cpp:708 msgid "DDE poke request failed" msgstr "Η DDE poke αίτηση απέτυχε" #: ../src/common/accelcmn.cpp:79 msgid "DECIMAL" msgstr "" #: ../src/common/accelcmn.cpp:47 msgid "DEL" msgstr "" #: ../src/common/accelcmn.cpp:48 msgid "DELETE" msgstr "" #: ../src/common/imagbmp.cpp:1092 msgid "DIB Header: Encoding doesn't match bitdepth." msgstr "DIB Header: Η κωδικοποίηση δεν ταιρίζει με το βάθος bit." #: ../src/common/imagbmp.cpp:1040 msgid "DIB Header: Image height > 32767 pixels for file." msgstr "" "DIB Header: Το ύψος της εικόνας είναι > 32767 εικονοστοιχεία για το αρχείο." #: ../src/common/imagbmp.cpp:1032 msgid "DIB Header: Image width > 32767 pixels for file." msgstr "" "DIB Header: Το πλάτος της εικόνας είναι > 32767 εικονοστοιχεία για το αρχείο." #: ../src/common/imagbmp.cpp:1060 msgid "DIB Header: Unknown bitdepth in file." msgstr "DIB Header: Αγνωστο βάθος bit στο αρχείο." #: ../src/common/imagbmp.cpp:1074 msgid "DIB Header: Unknown encoding in file." msgstr "DIB Header: Αγνωστη κωδικοποίηση στο αρχείο." #: ../src/common/accelcmn.cpp:80 #, fuzzy msgid "DIVIDE" msgstr "<ΟΔΗΓΟΣ>" #: ../src/common/paper.cpp:122 msgid "DL Envelope, 110 x 220 mm" msgstr "Φάκελος DL, 110 x 220 mm" #: ../src/common/accelcmn.cpp:59 msgid "DOWN" msgstr "" #: ../src/richtext/richtextborderspage.cpp:545 #, fuzzy msgid "Dashed" msgstr "Ημερομηνία" #: ../src/osx/carbon/dataview.cpp:1921 msgid "Data object has invalid data format" msgstr "" #: ../src/osx/carbon/dataview.cpp:2491 msgid "Date renderer cannot render value; value type: " msgstr "" #: ../src/generic/dbgrptg.cpp:300 #, c-format msgid "Debug report \"%s\"" msgstr "" #: ../src/common/debugrpt.cpp:210 #, fuzzy msgid "Debug report couldn't be created." msgstr "Δεν ήταν δυνατή η δημιουργία του καταλόγου '%s'" #: ../src/common/debugrpt.cpp:558 msgid "Debug report generation has failed." msgstr "" #: ../src/generic/fontdlgg.cpp:323 msgid "Decorative" msgstr "Διακοσμητικός" #: ../src/common/fmapbase.cpp:796 msgid "Default encoding" msgstr "Προκαθορισμένη κωδικοποίηση" #: ../src/dfb/fontmgr.cpp:180 #, fuzzy msgid "Default font" msgstr "Προκαθορισμένος εκτυπωτής" #: ../src/generic/prntdlgg.cpp:510 msgid "Default printer" msgstr "Προκαθορισμένος εκτυπωτής" #: ../src/richtext/richtextbuffer.cpp:7841 ../src/common/stockitem.cpp:152 #: ../src/stc/stc_i18n.cpp:20 #, fuzzy msgid "Delete" msgstr "&Διαγραφή" #: ../src/richtext/richtexttabspage.cpp:148 #, fuzzy msgid "Delete A&ll" msgstr "Επιλογή &Ολων" #: ../src/richtext/richtextbuffer.cpp:10637 #, fuzzy msgid "Delete Column" msgstr "Τμήματα" #: ../src/richtext/richtextbuffer.cpp:10587 #, fuzzy msgid "Delete Row" msgstr "&Διαγραφή" #: ../src/richtext/richtextstyledlg.cpp:779 #, fuzzy msgid "Delete Style" msgstr "Διαγραφή στοιχείου" #: ../src/richtext/richtextctrl.cpp:1231 ../src/richtext/richtextctrl.cpp:1452 #, fuzzy msgid "Delete Text" msgstr "Διαγραφή στοιχείου" #: ../src/generic/editlbox.cpp:274 msgid "Delete item" msgstr "Διαγραφή στοιχείου" #: ../src/common/stockitem.cpp:260 #, fuzzy msgid "Delete selection" msgstr "Τμήματα" #: ../src/richtext/richtextstyledlg.cpp:779 #, fuzzy, c-format msgid "Delete style %s?" msgstr "Διαγραφή στοιχείου" #: ../src/unix/snglinst.cpp:295 #, c-format msgid "Deleted stale lock file '%s'." msgstr "Διεγράφη το απαρχειομένο(stale) αρχείο κλειδαριά (lock file) '%s'" #: ../src/common/module.cpp:124 #, c-format msgid "Dependency \"%s\" of module \"%s\" doesn't exist." msgstr "" #: ../src/common/stockitem.cpp:196 #, fuzzy msgid "Descending" msgstr "Προκαθορισμένη κωδικοποίηση" #: ../src/generic/dirctrlg.cpp:626 msgid "Desktop" msgstr "" #: ../src/generic/aboutdlgg.cpp:70 msgid "Developed by " msgstr "" #: ../src/generic/aboutdlgg.cpp:176 msgid "Developers" msgstr "" #: ../src/msw/dialup.cpp:393 msgid "" "Dial up functions are unavailable because the remote access service (RAS) is " "not installed on this machine. Please install it." msgstr "" "Συναρτήσεις (functions) τηλεφωνικής σύνδεσης (dialup) δεν είναι διαθέσιμες " "γιατί η υπηρεσία απομακρυσμένης πρόσβασης (remote access service, RAS) δεν " "είναι εκατεστημένη σε αυτό το μηχάνημα. Παρακαλώ εγκαταστήστε τη." #: ../src/generic/tipdlg.cpp:230 msgid "Did you know..." msgstr "Γνωρίζατε ότι..." #: ../src/dfb/wrapdfb.cpp:63 #, c-format msgid "DirectFB error %d occurred." msgstr "" #: ../src/motif/filedlg.cpp:219 #, fuzzy msgid "Directories" msgstr "Διακοσμητικός" #: ../src/common/filefn.cpp:1251 #, c-format msgid "Directory '%s' couldn't be created" msgstr "Δεν ήταν δυνατή η δημιουργία του καταλόγου '%s'" #: ../src/common/filefn.cpp:1271 #, fuzzy, c-format msgid "Directory '%s' couldn't be deleted" msgstr "Δεν ήταν δυνατή η δημιουργία του καταλόγου '%s'" #: ../src/generic/dirdlgg.cpp:233 msgid "Directory does not exist" msgstr "Ο κατάλογος δεν υπάρχει" #: ../src/generic/filectrlg.cpp:1412 msgid "Directory doesn't exist." msgstr "Ο κατάλογος δεν υπάρχει." #: ../src/common/docview.cpp:455 msgid "Discard changes and reload the last saved version?" msgstr "" #: ../src/html/helpwnd.cpp:512 msgid "" "Display all index items that contain given substring. Search is case " "insensitive." msgstr "" "Εμφάνιση όλων των στοιχείων του ευρετηρίου δεδομένου substring. Η αναζήτηση " "διακρίνει μεταξύ κεφαλαίων/πεζών." #: ../src/html/helpwnd.cpp:692 msgid "Display options dialog" msgstr "Εμφάνιση του διαλόγου επιλογών" #: ../src/html/helpwnd.cpp:326 msgid "Displays help as you browse the books on the left." msgstr "" #: ../src/msw/mimetype.cpp:732 msgid "" "Do you want to overwrite the command used to %s files with extension \"%s" "\" ?\n" "Current value is \n" "%s, \n" "New value is \n" "%s %1" msgstr "" "Θέλετε να επικαλύψετε την εντολή που χρησιμοποιήθηκε για να %s τα αρχεία με " "επέκταση \"%s\" ?\n" "Η τρέχουσα τιμή είναι \n" "%s, \n" "Η νέα τιμή είναι \n" "%s %1" #: ../src/common/docview.cpp:531 #, fuzzy, c-format msgid "Do you want to save changes to %s?" msgstr "Θέλετε να αποθηκεύσετε τις αλλαγές στο έγγραφο %s ;" #: ../src/common/prntbase.cpp:525 msgid "Document:" msgstr "" #: ../src/generic/aboutdlgg.cpp:73 msgid "Documentation by " msgstr "" #: ../src/generic/aboutdlgg.cpp:180 msgid "Documentation writers" msgstr "" #: ../src/common/sizer.cpp:2680 msgid "Don't Save" msgstr "" #: ../src/msw/frame.cpp:122 ../src/html/htmlwin.cpp:611 msgid "Done" msgstr "Έτοιμο" #: ../src/generic/progdlgg.cpp:481 ../src/msw/progdlg.cpp:407 msgid "Done." msgstr "Έτοιμο." #: ../src/richtext/richtextborderspage.cpp:544 #, fuzzy msgid "Dotted" msgstr "Έτοιμο" #: ../src/richtext/richtextborderspage.cpp:546 #, fuzzy msgid "Double" msgstr "Έτοιμο" #: ../src/common/paper.cpp:177 msgid "Double Japanese Postcard Rotated 148 x 200 mm" msgstr "" #: ../src/common/xtixml.cpp:273 #, c-format msgid "Doubly used id : %d" msgstr "Id χρησιμοποιούμενο δύο φορές : %d" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:153 msgid "Down" msgstr "Κάτω" #: ../src/richtext/richtextctrl.cpp:814 msgid "Drag" msgstr "" #: ../src/common/paper.cpp:101 msgid "E sheet, 34 x 44 in" msgstr "E sheet, 34 x 44 ίντσες" #: ../src/common/accelcmn.cpp:61 msgid "END" msgstr "" #: ../src/common/accelcmn.cpp:52 msgid "ENTER" msgstr "" #: ../src/unix/fswatcher_inotify.cpp:535 #, fuzzy msgid "EOF while reading from inotify descriptor" msgstr "αδύνατη η ανάγνωση από περiγραφέα (descriptor) αρχείου %d" #: ../src/common/accelcmn.cpp:64 msgid "ESC" msgstr "" #: ../src/common/accelcmn.cpp:65 msgid "ESCAPE" msgstr "" #: ../src/common/accelcmn.cpp:73 msgid "EXECUTE" msgstr "" #: ../src/common/stockitem.cpp:154 #, fuzzy msgid "Edit" msgstr "Επεξεργασία στοιχείου" #: ../src/generic/editlbox.cpp:272 msgid "Edit item" msgstr "Επεξεργασία στοιχείου" #: ../include/wx/generic/progdlgg.h:84 #, fuzzy msgid "Elapsed time:" msgstr "Υπολογισθείς χρόνος : " #: ../src/richtext/richtextsizepage.cpp:353 #: ../src/richtext/richtextsizepage.cpp:355 #: ../src/richtext/richtextsizepage.cpp:465 #: ../src/richtext/richtextsizepage.cpp:467 msgid "Enable the height value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:438 #: ../src/richtext/richtextsizepage.cpp:440 #, fuzzy msgid "Enable the maximum width value." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/richtext/richtextsizepage.cpp:411 #: ../src/richtext/richtextsizepage.cpp:413 msgid "Enable the minimum height value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:384 #: ../src/richtext/richtextsizepage.cpp:386 #, fuzzy msgid "Enable the minimum width value." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/richtext/richtextsizepage.cpp:319 #: ../src/richtext/richtextsizepage.cpp:321 msgid "Enable the width value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:280 #: ../src/richtext/richtextsizepage.cpp:282 #, fuzzy msgid "Enable vertical alignment." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/richtext/richtextbackgroundpage.cpp:133 #: ../src/richtext/richtextbackgroundpage.cpp:135 msgid "Enables a background colour." msgstr "" #: ../src/richtext/richtextstyledlg.cpp:931 #, fuzzy msgid "Enter a box style name" msgstr "Το στυλ της γραμματοσειράς." #: ../src/richtext/richtextstyledlg.cpp:603 msgid "Enter a character style name" msgstr "" #: ../src/richtext/richtextstyledlg.cpp:817 msgid "Enter a list style name" msgstr "" #: ../src/richtext/richtextstyledlg.cpp:890 #, fuzzy msgid "Enter a new style name" msgstr "Το στυλ της γραμματοσειράς." #: ../src/richtext/richtextstyledlg.cpp:651 msgid "Enter a paragraph style name" msgstr "" #: ../src/generic/dbgrptg.cpp:174 #, fuzzy, c-format msgid "Enter command to open file \"%s\":" msgstr "δεν είναι δυνατό το άνοιγμα του αρχείου '%s'" #: ../src/generic/helpext.cpp:463 msgid "Entries found" msgstr "Εισαγωγές(entries) βρέθηκαν" #: ../src/common/paper.cpp:143 #, fuzzy msgid "Envelope Invite 220 x 220 mm" msgstr "Φάκελος DL, 110 x 220 mm" #: ../src/common/config.cpp:473 #, fuzzy, c-format msgid "" "Environment variables expansion failed: missing '%c' at position %u in '%s'." msgstr "" "Η επέκταση μεταβλητών περιβάλλοντος απέτυχε: λείπει το '%c' στην θέση %d στο " "'%s'." #: ../src/generic/dirctrlg.cpp:670 ../src/generic/dirctrlg.cpp:688 #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:791 #: ../src/generic/filectrlg.cpp:805 ../src/generic/filectrlg.cpp:821 #: ../src/generic/filectrlg.cpp:1381 ../src/generic/filectrlg.cpp:1412 #: ../src/gtk/filedlg.cpp:73 ../src/gtk1/fontdlg.cpp:74 msgid "Error" msgstr "Σφάλμα" #: ../src/unix/epolldispatcher.cpp:103 #, fuzzy msgid "Error closing epoll descriptor" msgstr "Σφάλμα κατα τη δημιουργία καταλόγου" #: ../src/unix/fswatcher_kqueue.cpp:114 #, fuzzy msgid "Error closing kqueue instance" msgstr "Σφάλμα κατα τη δημιουργία καταλόγου" #: ../src/generic/dirdlgg.cpp:251 msgid "Error creating directory" msgstr "Σφάλμα κατα τη δημιουργία καταλόγου" #: ../src/common/imagbmp.cpp:1103 #, fuzzy msgid "Error in reading image DIB." msgstr "Σφάλμα κατά την ανάγνωση εικόνας DIB." #: ../src/propgrid/propgrid.cpp:6563 #, c-format msgid "Error in resource: %s" msgstr "" #: ../src/common/fileconf.cpp:453 msgid "Error reading config options." msgstr "Σφάλμα κατά την ανάγνωση των ρυθμίσεων." #: ../src/common/fileconf.cpp:1064 msgid "Error saving user configuration data." msgstr "Σφάλμα κατά την εγγραφή των ρυθμίσεων χρήστη." #: ../src/gtk/print.cpp:671 #, fuzzy msgid "Error while printing: " msgstr "Σφάλμα κατά την αναμονή στη σημαφόρο" #: ../src/common/log.cpp:223 msgid "Error: " msgstr "Σφάλμα: " #: ../src/common/fmapbase.cpp:150 msgid "Esperanto (ISO-8859-3)" msgstr "Εσπεράντο (ISO-8859-3)" #: ../include/wx/generic/progdlgg.h:85 #, fuzzy msgid "Estimated time:" msgstr "Υπολογισθείς χρόνος : " #: ../src/unix/fswatcher_inotify.cpp:639 msgid "Event queue overflowed" msgstr "" #: ../src/generic/dbgrptg.cpp:234 #, fuzzy msgid "Executable files (*.exe)|*.exe|" msgstr "Όλα τα αρχεία (*.*)|*.*" #: ../src/common/stockitem.cpp:155 msgid "Execute" msgstr "" #: ../src/msw/utilsexc.cpp:888 #, c-format msgid "Execution of command '%s' failed" msgstr "Η εκτέλεση της εντολής '%s' απέτυχε" #: ../src/os2/utilsexc.cpp:163 #, c-format msgid "Execution of command '%s' failed with error: %ul" msgstr "Η εκτέλεση της εντολής '%s' απέτυχε με σφάλμα: %ul" #: ../src/common/paper.cpp:106 msgid "Executive, 7 1/4 x 10 1/2 in" msgstr "Executive, 7 1/4 x 10 1/2 ίντσες" #: ../src/msw/registry.cpp:1230 #, c-format msgid "" "Exporting registry key: file \"%s\" already exists and won't be overwritten." msgstr "" #: ../src/common/fmapbase.cpp:195 msgid "Extended Unix Codepage for Japanese (EUC-JP)" msgstr "Εκτεταμένη Κωδικοσελίδα Unix για Ιαπωνικά (EUC-JP)" #: ../src/html/chm.cpp:725 #, c-format msgid "Extraction of '%s' into '%s' failed." msgstr "Η εξαγωγή του '%s' στο '%s' απέτυχε" #: ../src/common/accelcmn.cpp:238 ../src/common/accelcmn.cpp:333 msgid "F" msgstr "" #: ../src/propgrid/advprops.cpp:640 #, fuzzy msgid "Face Name" msgstr "ΝέοΌνομα" #: ../src/unix/snglinst.cpp:269 msgid "Failed to access lock file." msgstr "Αποτυχία πρόσβασης στο αρχείο 'κλειδωνιά'(lock file)." #: ../src/unix/epolldispatcher.cpp:116 #, fuzzy, c-format msgid "Failed to add descriptor %d to epoll descriptor %d" msgstr "δεν είναι δυνατή η εγγραφή του περιγραφέα αρχείου(file descriptor) %d" #: ../src/msw/dib.cpp:548 #, fuzzy, c-format msgid "Failed to allocate %luKb of memory for bitmap data." msgstr "Αποτυχία δέσμευσης %luKb μνήμης για δεδομένα bitmap." #: ../src/common/glcmn.cpp:87 #, fuzzy msgid "Failed to allocate colour for OpenGL" msgstr "Αποτυχία δημιουργίας δείκτη." #: ../src/unix/displayx11.cpp:288 msgid "Failed to change video mode" msgstr "Αποτυχία αλλαγής της κατάστασης οθόνης" #: ../src/common/image.cpp:3139 #, fuzzy, c-format msgid "Failed to check format of image file \"%s\"." msgstr "Αποτυχία αποθήκευσης της εικόνας στο αρχείο \"%s\"." #: ../src/common/debugrpt.cpp:244 #, fuzzy, c-format msgid "Failed to clean up debug report directory \"%s\"" msgstr "Απέτυχε η δημιουργία καταλόγου '%s'/.gnome." #: ../src/common/filename.cpp:211 msgid "Failed to close file handle" msgstr "Αποτυχία κλεισίματος του χειριστηρίου του αρχείου(file handle)" #: ../src/unix/snglinst.cpp:334 #, c-format msgid "Failed to close lock file '%s'" msgstr "Αποτυχία κλεισίματος του αρχείου 'κλειδωνιά'(lock file) '%s'" #: ../src/msw/clipbrd.cpp:115 msgid "Failed to close the clipboard." msgstr "Αποτυχία κλεισίματος του προχείρου(clipboard)" #: ../src/x11/utils.cpp:204 #, fuzzy, c-format msgid "Failed to close the display \"%s\"" msgstr "Αποτυχία κλεισίματος του προχείρου(clipboard)" #: ../src/msw/dialup.cpp:818 msgid "Failed to connect: missing username/password." msgstr "Αποτυχία συνδεσης: λείπει το όνομα χρήστη/συνθηματικό" #: ../src/msw/dialup.cpp:764 msgid "Failed to connect: no ISP to dial." msgstr "" "Αποτυχία συνδεσης: κανένας παροχέας υπηρεσιών Internet (ISP) για να καλέσω." #: ../src/common/textfile.cpp:200 #, fuzzy, c-format msgid "Failed to convert file \"%s\" to Unicode." msgstr "Αποτυχία κλεισίματος του χειριστηρίου του αρχείου(file handle)" #: ../src/generic/logg.cpp:976 #, fuzzy msgid "Failed to copy dialog contents to the clipboard." msgstr "Αποτυχία ανοίγματος του προχείρου (clipboard)." #: ../src/msw/registry.cpp:691 #, c-format msgid "Failed to copy registry value '%s'" msgstr "Αποτυχία αντιγραφής της τιμής μητρώου '%s'" #: ../src/msw/registry.cpp:700 #, c-format msgid "Failed to copy the contents of registry key '%s' to '%s'." msgstr "" "Αποτυχία αντιγραφής των περιεχομένων του κλειδιού μητρώου '%s' στο '%s'." #: ../src/common/filefn.cpp:1058 #, c-format msgid "Failed to copy the file '%s' to '%s'" msgstr "Αποτυχία αντιγραφής του αρχείου '%s' στο '%s'" #: ../src/msw/registry.cpp:678 #, c-format msgid "Failed to copy the registry subkey '%s' to '%s'." msgstr "Αποτυχία της αντιγραφής του υποκλειδιού μητρώου '%s' σε '%s'." #: ../src/msw/dde.cpp:1073 msgid "Failed to create DDE string" msgstr "Απέτυχε η δημιουργεία ενός DDE αλφαρηθμιτικού (string)" #: ../src/msw/mdi.cpp:590 msgid "Failed to create MDI parent frame." msgstr "Αποτυχία δημιουργίας ενός γονεικού περιγράμματος (parent frame) MDI." #: ../src/common/filename.cpp:1080 msgid "Failed to create a temporary file name" msgstr "Αποτυχία δημιουργίας ονόματος προσωρινού αρχείου" #: ../src/msw/utilsexc.cpp:235 msgid "Failed to create an anonymous pipe" msgstr "Αποτυχία δημιουργίας ενός ανώνυμου pipe" #: ../src/msw/ole/automtn.cpp:522 #, fuzzy, c-format msgid "Failed to create an instance of \"%s\"" msgstr "Απέτυχε η δημιουργία καταλόγου '%s'/.gnome." #: ../src/msw/dde.cpp:442 #, c-format msgid "Failed to create connection to server '%s' on topic '%s'" msgstr "" "Αποτυχία κατά την δημιουργία σύνδεσης με τον εξυπηρετητή (server) '%s' στο " "θέμα '%s'" #: ../src/msw/cursor.cpp:212 msgid "Failed to create cursor." msgstr "Αποτυχία δημιουργίας δείκτη." #: ../src/common/debugrpt.cpp:209 #, fuzzy, c-format msgid "Failed to create directory \"%s\"" msgstr "Απέτυχε η δημιουργία καταλόγου '%s'/.gnome." #: ../src/generic/dirdlgg.cpp:249 #, c-format msgid "" "Failed to create directory '%s'\n" "(Do you have the required permissions?)" msgstr "" "Αποτυχία κατά τη δημιουργία υποκαταλόγου '%s'\n" "(Έχετε τα απαιτούμενα δικαιώματα(permissions);)" #: ../src/unix/epolldispatcher.cpp:84 #, fuzzy msgid "Failed to create epoll descriptor" msgstr "Αποτυχία δημιουργίας δείκτη." #: ../src/msw/mimetype.cpp:198 #, c-format msgid "Failed to create registry entry for '%s' files." msgstr "" "Απέτυχε η δημιουργία εγγραφής μητρώου (registry entry) για '%s' αρχεία." #: ../src/msw/fdrepdlg.cpp:442 #, c-format msgid "Failed to create the standard find/replace dialog (error code %d)" msgstr "" "Απέτυχε η δημιουργία καθιερωμένου παράθυρου διαλόγου εύρεσης/αντικατάστασης " "(κωδικός σφάλματος %d)" #: ../src/unix/wakeuppipe.cpp:52 #, fuzzy msgid "Failed to create wake up pipe used by event loop." msgstr "Αποτυχία δημιουργίας μιας μπάρας κατάστασης (status bar)" #: ../src/html/winpars.cpp:739 #, c-format msgid "Failed to display HTML document in %s encoding" msgstr "Απέτυχε η προβολή του εγγράφου HTML στην κωδικοποίηση %s" #: ../src/msw/clipbrd.cpp:127 msgid "Failed to empty the clipboard." msgstr "Αποτυχία αδειάσματος του προχείρου (clipboard)." #: ../src/unix/displayx11.cpp:265 msgid "Failed to enumerate video modes" msgstr "Απέτυχε η απαρίθμηση των καταστάσεων οθόνης." #: ../src/msw/dde.cpp:727 msgid "Failed to establish an advise loop with DDE server" msgstr "Αποτυχία επίτευξης βρόχου advise με τον διακομιστή DDE" #: ../src/msw/dialup.cpp:650 ../src/msw/dialup.cpp:884 #, fuzzy, c-format msgid "Failed to establish dialup connection: %s" msgstr "Αποτυχία %s της σύνδεσης μέσω τηλεφώνου : %s" #: ../src/unix/utilsunx.cpp:617 #, c-format msgid "Failed to execute '%s'\n" msgstr "Αποτυχία εκτέλεσης του '%s'\n" #: ../src/common/debugrpt.cpp:725 msgid "Failed to execute curl, please install it in PATH." msgstr "" #: ../src/msw/ole/automtn.cpp:505 #, fuzzy, c-format msgid "Failed to find CLSID of \"%s\"" msgstr "Αποτυχία ανοίγματος του '%s' για το '%s'" #: ../src/common/regex.cpp:434 ../src/common/regex.cpp:482 #, fuzzy, c-format msgid "Failed to find match for regular expression: %s" msgstr "" "Αποτυχία στο συνταίριασμα του '%s' στην κανονική έκφραση (regular " "expression): %s" #: ../src/msw/dialup.cpp:716 #, c-format msgid "Failed to get ISP names: %s" msgstr "Αποτυχία κατά την λήψη των ονομάτων των ISP: %s" #: ../src/msw/ole/automtn.cpp:574 #, fuzzy, c-format msgid "Failed to get OLE automation interface for \"%s\"" msgstr "Απέτυχε η δημιουργία καταλόγου '%s'/.gnome." #: ../src/msw/clipbrd.cpp:747 msgid "Failed to get data from the clipboard" msgstr "Αποτυχία λήψης δεδομένων απο το πρόχειρο" #: ../src/common/time.cpp:249 msgid "Failed to get the local system time" msgstr "Αποτυχία καθορισμού της ώρας του τοπικού συστήματος" #: ../src/common/filefn.cpp:1453 msgid "Failed to get the working directory" msgstr "Αποτυχία λήψης καταλόγου εργασίας (working directory)" #: ../src/univ/theme.cpp:113 msgid "Failed to initialize GUI: no built-in themes found." msgstr "Αποτυχία αρχικοποίησης του GUI: δεν βρέθηκαν ενσωματωμένα θέματα." #: ../src/msw/helpchm.cpp:63 msgid "Failed to initialize MS HTML Help." msgstr "Αποτυχία στην αρχικοποίηση του MS HTML Help." #: ../src/msw/glcanvas.cpp:892 msgid "Failed to initialize OpenGL" msgstr "Απέτυχε η αρχικοποίηση του OpenGL" #: ../src/msw/dialup.cpp:879 #, fuzzy, c-format msgid "Failed to initiate dialup connection: %s" msgstr "Αποτυχία τερματισμού της σύνδεσης μέσω τηλεφώνου : %s" #: ../src/gtk/textctrl.cpp:1117 #, fuzzy msgid "Failed to insert text in the control." msgstr "Αποτυχία λήψης καταλόγου εργασίας (working directory)" #: ../src/unix/snglinst.cpp:241 #, c-format msgid "Failed to inspect the lock file '%s'" msgstr "Αποτυχία επιθεώρησης του αρχείου 'κλειδωνιά'(lock file) '%s'" #: ../src/unix/appunix.cpp:182 #, fuzzy msgid "Failed to install signal handler" msgstr "Αποτυχία κλεισίματος του χειριστηρίου του αρχείου(file handle)" #: ../src/unix/threadpsx.cpp:1162 msgid "" "Failed to join a thread, potential memory leak detected - please restart the " "program" msgstr "" "Απέτυχε η συνένωση(join) ενός νήματος εκτέλεσης (thread), πιθανή διαρροή " "μνήμης εντοπίστηκε - παρακαλώ επανεκκινήστε το πρόγραμμα" #: ../src/msw/utils.cpp:745 #, c-format msgid "Failed to kill process %d" msgstr "Αποτυχία θανάτωσης της διαδικασίας(process) %d" #: ../src/common/image.cpp:2365 #, fuzzy, c-format msgid "Failed to load bitmap \"%s\" from resources." msgstr "Αποτυχία φόρτωσης της εικόνας %d από το αρχείο '%s'." #: ../src/common/image.cpp:2374 #, fuzzy, c-format msgid "Failed to load icon \"%s\" from resources." msgstr "Αποτυχία φόρτωσης της εικόνας %d από το αρχείο '%s'." #: ../src/common/iconbndl.cpp:182 #, fuzzy, c-format msgid "Failed to load image %%d from file '%s'." msgstr "Αποτυχία φόρτωσης της εικόνας %d από το αρχείο '%s'." #: ../src/common/iconbndl.cpp:190 #, fuzzy, c-format msgid "Failed to load image %d from stream." msgstr "Αποτυχία φόρτωσης της εικόνας %d από το αρχείο '%s'." #: ../src/common/image.cpp:2450 ../src/common/image.cpp:2469 #, fuzzy, c-format msgid "Failed to load image from file \"%s\"." msgstr "Αποτυχία φόρτωσης της εικόνας %d από το αρχείο '%s'." #: ../src/msw/enhmeta.cpp:97 #, c-format msgid "Failed to load metafile from file \"%s\"." msgstr "Αποτυχία φόρτωσης της μετα-εικόνας από το αρχείο '%s'." #: ../src/msw/volume.cpp:327 msgid "Failed to load mpr.dll." msgstr "Αποτυχία φόρτωσης του mpr.dll." #: ../src/msw/utils.cpp:1120 #, fuzzy, c-format msgid "Failed to load resource \"%s\"." msgstr "Αποτυχία φόρτωσης της μετα-εικόνας από το αρχείο '%s'." #: ../src/common/dynlib.cpp:100 #, c-format msgid "Failed to load shared library '%s'" msgstr "Αποτυχία φόρτωσης της κοινής βιβλιοθήκης (shared library) '%s'" #: ../src/msw/utils.cpp:1127 #, fuzzy, c-format msgid "Failed to lock resource \"%s\"." msgstr "Αποτυχία κλειδώματος του αρχείου 'κλειδωνιά'(lock file) '%s'" #: ../src/unix/snglinst.cpp:198 #, c-format msgid "Failed to lock the lock file '%s'" msgstr "Αποτυχία κλειδώματος του αρχείου 'κλειδωνιά'(lock file) '%s'" #: ../src/unix/epolldispatcher.cpp:136 #, c-format msgid "Failed to modify descriptor %d in epoll descriptor %d" msgstr "" #: ../src/common/filename.cpp:2681 #, c-format msgid "Failed to modify file times for '%s'" msgstr "Αποτυχία τροποποίησης ώρας του αρχείου '%s'" #: ../src/common/selectdispatcher.cpp:252 msgid "Failed to monitor I/O channels" msgstr "" #: ../src/common/filename.cpp:194 #, fuzzy, c-format msgid "Failed to open '%s' for reading" msgstr "Αποτυχία ανοίγματος του '%s' για το '%s'" #: ../src/common/filename.cpp:199 #, fuzzy, c-format msgid "Failed to open '%s' for writing" msgstr "Αποτυχία ανοίγματος του '%s' για το '%s'" #: ../src/html/chm.cpp:141 #, c-format msgid "Failed to open CHM archive '%s'." msgstr "Αποτυχία ανοίγματος του arxe;ioy CHM '%s'." #: ../src/common/utilscmn.cpp:1135 #, fuzzy, c-format msgid "Failed to open URL \"%s\" in default browser." msgstr "Αποτυχία ανοίγματος του '%s' για το '%s'" #: ../include/wx/msw/private/fswatcher.h:92 #, fuzzy, c-format msgid "Failed to open directory \"%s\" for monitoring." msgstr "Αποτυχία ανοίγματος του '%s' για το '%s'" #: ../src/x11/utils.cpp:223 #, fuzzy, c-format msgid "Failed to open display \"%s\"." msgstr "Αποτυχία ανοίγματος του '%s' για το '%s'" #: ../src/common/filename.cpp:1115 msgid "Failed to open temporary file." msgstr "Αποτυχία ανοίγματος προσωρινού αρχείου" #: ../src/msw/clipbrd.cpp:94 msgid "Failed to open the clipboard." msgstr "Αποτυχία ανοίγματος του προχείρου (clipboard)." #: ../src/common/translation.cpp:1170 #, fuzzy, c-format msgid "Failed to parse Plural-Forms: '%s'" msgstr "Δεν είναι δυνατή η ανάγνωση Plural-Forms:'%s'." #: ../src/unix/mediactrl.cpp:1268 #, fuzzy, c-format msgid "Failed to prepare playing \"%s\"." msgstr "Αποτυχία ανοίγματος του '%s' για το '%s'" #: ../src/msw/clipbrd.cpp:647 msgid "Failed to put data on the clipboard" msgstr "Αποτυχία τοποθέτησης δεδομένων στο πρόχειρο (clipboard)" #: ../src/unix/snglinst.cpp:278 msgid "Failed to read PID from lock file." msgstr "Απέτυχε η ανάγνωση PID από αρχείο κλειδωνιά(lock file)." #: ../src/common/fileconf.cpp:464 #, fuzzy msgid "Failed to read config options." msgstr "Σφάλμα κατά την ανάγνωση των ρυθμίσεων." #: ../src/common/docview.cpp:678 #, fuzzy, c-format msgid "Failed to read document from the file \"%s\"." msgstr "Αποτυχία φόρτωσης της μετα-εικόνας από το αρχείο '%s'." #: ../src/dfb/evtloop.cpp:98 #, fuzzy msgid "Failed to read event from DirectFB pipe" msgstr "Απέτυχε η ανάγνωση PID από αρχείο κλειδωνιά(lock file)." #: ../src/unix/wakeuppipe.cpp:120 #, fuzzy msgid "Failed to read from wake-up pipe" msgstr "Απέτυχε η ανάγνωση PID από αρχείο κλειδωνιά(lock file)." #: ../src/unix/utilsunx.cpp:685 msgid "Failed to redirect child process input/output" msgstr "" "Αποτυχία στην ανακατεύθυνση της εισόδου/εξόδου διεργασίας απογόνου (child " "process input/output)" #: ../src/msw/utilsexc.cpp:697 msgid "Failed to redirect the child process IO" msgstr "" "Αποτυχία στην ανακατεύθυνση του IO διεργασίας απογόνου (child process IO)" #: ../src/msw/dde.cpp:293 #, c-format msgid "Failed to register DDE server '%s'" msgstr "Απέτυχε η καταχώρηση του DDE εξυπηρετητή (server) '%s'" #: ../src/common/fontmap.cpp:245 #, c-format msgid "Failed to remember the encoding for the charset '%s'." msgstr "" "Αποτυχία ανάμνησης της κωδικοποίησης για το συνολο χαρακτήρων (charset) '%s'." #: ../src/common/debugrpt.cpp:227 #, fuzzy, c-format msgid "Failed to remove debug report file \"%s\"" msgstr "Αποτυχία απομάκρυνσης του αρχείου 'κλειδωνιά'(lock file) '%s'" #: ../src/unix/snglinst.cpp:322 #, c-format msgid "Failed to remove lock file '%s'" msgstr "Αποτυχία απομάκρυνσης του αρχείου 'κλειδωνιά'(lock file) '%s'" #: ../src/unix/snglinst.cpp:288 #, c-format msgid "Failed to remove stale lock file '%s'." msgstr "" "Αποτυχία απομάκρυνσης του απαρχειομένου(stale) αρχείου 'κλειδωνιά'(lock " "file) '%s'" #: ../src/msw/registry.cpp:528 #, c-format msgid "Failed to rename registry value '%s' to '%s'." msgstr "Αποτυχία της μετονομασίας της τιμής μητρώου '%s' σε '%s'." #: ../src/common/filefn.cpp:1168 #, c-format msgid "" "Failed to rename the file '%s' to '%s' because the destination file already " "exists." msgstr "" #: ../src/msw/registry.cpp:633 #, c-format msgid "Failed to rename the registry key '%s' to '%s'." msgstr "Αποτυχία της μετονομασίας του κλειδιού μητρώου '%s' σε '%s'." #: ../src/msw/clipbrd.cpp:497 msgid "Failed to retrieve data from the clipboard." msgstr "Αποτυχία κατά την ανάκτηση δεδομένων από το πρόχειρο (clipboard)." #: ../src/common/filename.cpp:2777 #, c-format msgid "Failed to retrieve file times for '%s'" msgstr "Αποτυχία λήψης της ώρας του αρχείου '%s'" #: ../src/msw/dialup.cpp:487 msgid "Failed to retrieve text of RAS error message" msgstr "Αποτυχία στη λήψη κειμένου από το μήνυμα σφάλματος RAS" #: ../src/msw/clipbrd.cpp:784 msgid "Failed to retrieve the supported clipboard formats" msgstr "" "Αποτυχία στην ανάκτηση των υποστηριζομένων μορφών προχείρου (clipboard " "formats)" #: ../src/common/docview.cpp:649 #, fuzzy, c-format msgid "Failed to save document to the file \"%s\"." msgstr "Αποτυχία αποθήκευσης της εικόνας στο αρχείο \"%s\"." #: ../src/msw/dib.cpp:326 #, c-format msgid "Failed to save the bitmap image to file \"%s\"." msgstr "Αποτυχία αποθήκευσης της εικόνας στο αρχείο \"%s\"." #: ../src/msw/dde.cpp:768 msgid "Failed to send DDE advise notification" msgstr "Αποτυχία κατά την αποστολή DDE advise επισήμανσης" #: ../src/common/ftp.cpp:404 #, c-format msgid "Failed to set FTP transfer mode to %s." msgstr "Αποτυχία θέσης FTP transfer mode σε '%s'" #: ../src/msw/clipbrd.cpp:373 msgid "Failed to set clipboard data." msgstr "Αποτυχία θέσης δεδομένων προχείρου (clipboard)." #: ../src/unix/snglinst.cpp:181 #, c-format msgid "Failed to set permissions on lock file '%s'" msgstr "Αδύνατος ο ορισμός των δικαιωμάτων για το αρχείο 'κλειδωνιά' '%s'" #: ../src/unix/utilsunx.cpp:674 #, fuzzy msgid "Failed to set process priority" msgstr "Δεν είναι δυνατή η θέση προτεραιότητας του thread" #: ../src/common/file.cpp:576 msgid "Failed to set temporary file permissions" msgstr "Αποτυχία θέσπισης δικαιωμάτων προσωρινού αρχείου" #: ../src/gtk/textctrl.cpp:1058 #, fuzzy msgid "Failed to set text in the text control." msgstr "Αποτυχία καθορισμού της ώρας του UTC συστήματος" #: ../src/unix/threadpsx.cpp:1293 #, fuzzy, c-format msgid "Failed to set thread concurrency level to %lu" msgstr "Δεν είναι δυνατή η θέση προτεραιότητας του thread" #: ../src/unix/threadpsx.cpp:1377 ../src/unix/threadpsx.cpp:1387 #, fuzzy, c-format msgid "Failed to set thread priority %d." msgstr "Δεν είναι δυνατή η θέση προτεραιότητας του thread" #: ../src/unix/utilsunx.cpp:791 msgid "Failed to set up non-blocking pipe, the program might hang." msgstr "" #: ../src/common/fs_mem.cpp:261 #, c-format msgid "Failed to store image '%s' to memory VFS!" msgstr "Αποτυχία αποθήκευσης της εικόνας '%s' στο VFS μνήμης!" #: ../src/dfb/evtloop.cpp:170 msgid "Failed to switch DirectFB pipe to non-blocking mode" msgstr "" #: ../src/unix/wakeuppipe.cpp:59 msgid "Failed to switch wake up pipe to non-blocking mode" msgstr "" #: ../src/unix/threadpsx.cpp:1569 msgid "Failed to terminate a thread." msgstr "Αποτυχία τερματισμού του thread" #: ../src/msw/dde.cpp:746 msgid "Failed to terminate the advise loop with DDE server" msgstr "Αποτυχία τερματισμού του advise loop με τον DDE εξυπηρετητή (server)" #: ../src/msw/dialup.cpp:959 #, c-format msgid "Failed to terminate the dialup connection: %s" msgstr "Αποτυχία τερματισμού της σύνδεσης μέσω τηλεφώνου : %s" #: ../src/common/filename.cpp:2696 #, c-format msgid "Failed to touch the file '%s'" msgstr "Αποτυχία αγγίγματος (touch) του αρχείου '%s'" #: ../src/unix/snglinst.cpp:328 #, c-format msgid "Failed to unlock lock file '%s'" msgstr "Αποτυχία ξεκλείδωματος του αρχείου 'κλειδωνιά'(lock file) '%s'" #: ../src/msw/dde.cpp:314 #, c-format msgid "Failed to unregister DDE server '%s'" msgstr "" "Αποτυχία απο-καταχώρησης (unregister) του DDE εξυπηρετητή (server) '%s'" #: ../src/unix/epolldispatcher.cpp:155 #, fuzzy, c-format msgid "Failed to unregister descriptor %d from epoll descriptor %d" msgstr "Αποτυχία κατά την ανάκτηση δεδομένων από το πρόχειρο (clipboard)." #: ../src/common/fileconf.cpp:1037 msgid "Failed to update user configuration file." msgstr "Αποτυχία ανανέωσης του αρχείου ρυθμίσεων του χρήστη." #: ../src/common/debugrpt.cpp:738 #, fuzzy, c-format msgid "Failed to upload the debug report (error code %d)." msgstr "" "Απέτυχε η δημιουργία καθιερωμένου παράθυρου διαλόγου εύρεσης/αντικατάστασης " "(κωδικός σφάλματος %d)" #: ../src/unix/snglinst.cpp:168 #, c-format msgid "Failed to write to lock file '%s'" msgstr "Αποτυχία εγγραφής του αρχείου 'κλειδωνιά'(lock file) '%s'" #: ../src/propgrid/propgrid.cpp:172 #, fuzzy msgid "False" msgstr "Αρχείο" #: ../src/propgrid/advprops.cpp:658 #, fuzzy msgid "Family" msgstr "Οικογένεια γραμματοσειράς:" #: ../src/common/stockitem.cpp:157 ../src/msw/wince/filedlgwce.cpp:121 msgid "File" msgstr "Αρχείο" #: ../src/common/docview.cpp:666 #, fuzzy, c-format msgid "File \"%s\" could not be opened for reading." msgstr "Αποτυχία ανοίγματος του '%s' για το '%s'" #: ../src/common/docview.cpp:643 #, fuzzy, c-format msgid "File \"%s\" could not be opened for writing." msgstr "Αποτυχία ανοίγματος του '%s' για το '%s'" #: ../src/gtk/filedlg.cpp:56 #, c-format msgid "File '%s' already exists, do you really want to overwrite it?" msgstr "Το αρχείο '%s' υπάρχει ήδη, πραγματικά θέλετε να επικαλυφτεί;" #: ../src/os2/filedlg.cpp:310 #, c-format msgid "" "File '%s' already exists.\n" "Do you want to replace it?" msgstr "" "Το αρχείο '%s' υπάρχει ήδη.\n" "Θέλετε να αντικατασταθεί;" #: ../src/common/filefn.cpp:1207 #, fuzzy, c-format msgid "File '%s' couldn't be removed" msgstr "Δεν ήταν δυνατή η δημιουργία του καταλόγου '%s'" #: ../src/common/filefn.cpp:1187 #, fuzzy, c-format msgid "File '%s' couldn't be renamed '%s'" msgstr "Δεν ήταν δυνατή η δημιουργία του καταλόγου '%s'" #: ../src/richtext/richtextctrl.cpp:2688 ../src/common/textcmn.cpp:921 msgid "File couldn't be loaded." msgstr "Το αρχείο δεν μπόρεσε να φορτωθεί." #: ../src/msw/filedlg.cpp:458 #, fuzzy, c-format msgid "File dialog failed with error code %0lx." msgstr "Η εκτέλεση της εντολής '%s' απέτυχε με σφάλμα: %ul" #: ../src/common/docview.cpp:1771 msgid "File error" msgstr "Σφάλμα αρχείου" #: ../src/generic/dirctrlg.cpp:688 ../src/generic/filectrlg.cpp:805 msgid "File name exists already." msgstr "Το όνομα αρχείου υπάρχει ήδη." #: ../src/motif/filedlg.cpp:220 #, fuzzy msgid "Files" msgstr "Αρχείο" #: ../src/common/filefn.cpp:1761 #, c-format msgid "Files (%s)" msgstr "Αρχεία (%s)" #: ../src/motif/filedlg.cpp:218 #, fuzzy msgid "Filter" msgstr "Αρχείο" #: ../src/common/stockitem.cpp:158 ../src/html/helpwnd.cpp:500 msgid "Find" msgstr "Εύρεση" #: ../src/common/stockitem.cpp:159 #, fuzzy msgid "First" msgstr "πρώτο" #: ../src/common/prntbase.cpp:1518 #, fuzzy msgid "First page" msgstr "Επόμενη σελίδα" #: ../src/richtext/richtextsizepage.cpp:521 #, fuzzy msgid "Fixed" msgstr "Γραμματοσειρά σταθερού μεγέθους:" #: ../src/html/helpwnd.cpp:1219 msgid "Fixed font:" msgstr "Γραμματοσειρά σταθερού μεγέθους:" #: ../src/html/helpwnd.cpp:1282 msgid "Fixed size face.
    bold italic " msgstr "Όψη σταθερού μεγέθους.
    έντονη πλάγια " #: ../src/richtext/richtextsizepage.cpp:229 msgid "Floating" msgstr "" #: ../src/common/stockitem.cpp:160 #, fuzzy msgid "Floppy" msgstr "&Αντιγραφή" #: ../src/common/paper.cpp:112 msgid "Folio, 8 1/2 x 13 in" msgstr "Folio, 8 1/2 x 13 ίντσες" #: ../src/richtext/richtextformatdlg.cpp:324 ../src/osx/carbon/fontdlg.cpp:473 #: ../src/common/stockitem.cpp:194 msgid "Font" msgstr "" #: ../src/richtext/richtextfontpage.cpp:230 #, fuzzy msgid "Font &weight:" msgstr "Το βάρος της γραμματοσειράς." #: ../src/html/helpwnd.cpp:1220 msgid "Font size:" msgstr "Μέγεθος γραμματοσειράς:" #: ../src/richtext/richtextfontpage.cpp:217 #, fuzzy msgid "Font st&yle:" msgstr "Μέγεθος γραμματοσειράς:" #: ../src/osx/carbon/fontdlg.cpp:515 #, fuzzy msgid "Font:" msgstr "Μέγεθος γραμματοσειράς:" #: ../src/dfb/fontmgr.cpp:198 #, c-format msgid "Fonts index file %s disappeared while loading fonts." msgstr "" #: ../src/unix/utilsunx.cpp:651 msgid "Fork failed" msgstr "Fork απέτυχε" #: ../src/common/stockitem.cpp:161 #, fuzzy msgid "Forward" msgstr "&Εμπρός" #: ../src/common/xtixml.cpp:235 msgid "Forward hrefs are not supported" msgstr "Οι forward hrefs δεν υποστηρίζονται" #: ../src/html/helpwnd.cpp:888 #, c-format msgid "Found %i matches" msgstr "Βρέθηκαν %i αντιστοιχίες" #: ../src/generic/prntdlgg.cpp:238 msgid "From:" msgstr "Από:" #: ../src/common/imaggif.cpp:160 msgid "GIF: Invalid gif index." msgstr "GIF: Λάθος gif index." #: ../src/common/imaggif.cpp:150 msgid "GIF: data stream seems to be truncated." msgstr "GIF: το stream δεδομένων μοιάζει να είναι αποκομμένο." #: ../src/common/imaggif.cpp:134 msgid "GIF: error in GIF image format." msgstr "GIF: σφάλμα στην μορφή εικόνας GIF." #: ../src/common/imaggif.cpp:137 msgid "GIF: not enough memory." msgstr "GIF: ανεπαρκής μνήμη." #: ../src/common/imaggif.cpp:140 msgid "GIF: unknown error!!!" msgstr "GIF: άγνωστο λάθος!!!" #: ../src/gtk/window.cpp:4288 msgid "" "GTK+ installed on this machine is too old to support screen compositing, " "please install GTK+ 2.12 or later." msgstr "" #: ../src/univ/themes/gtk.cpp:525 msgid "GTK+ theme" msgstr "Θέμα GTK+" #: ../src/common/preferencescmn.cpp:39 msgid "General" msgstr "" #: ../src/common/prntbase.cpp:243 msgid "Generic PostScript" msgstr "Γενικό PostScript" #: ../src/common/paper.cpp:136 msgid "German Legal Fanfold, 8 1/2 x 13 in" msgstr "German Legal Fanfold, 8 1/2 x 13 ίντσες" #: ../src/common/paper.cpp:135 msgid "German Std Fanfold, 8 1/2 x 12 in" msgstr "German Std Fanfold, 8 1/2 x 12 ίντσες" #: ../include/wx/xtiprop.h:188 msgid "GetProperty called w/o valid getter" msgstr "Η GetProperty κλήθηκε χωρίς έγκυρο getter" #: ../include/wx/xtiprop.h:266 msgid "GetPropertyCollection called on a generic accessor" msgstr "Η GetPropertyCollection κλήθηκε σε έναν γενικό accessor" #: ../include/wx/xtiprop.h:206 msgid "GetPropertyCollection called w/o valid collection getter" msgstr "Η GetPropertyCollection κλήθηκε χωρίς έγκυρο collection getter" #: ../src/html/helpwnd.cpp:673 msgid "Go back" msgstr "Πήγαινε πίσω" #: ../src/html/helpwnd.cpp:674 msgid "Go forward" msgstr "Πήγαινε εμπρός" #: ../src/html/helpwnd.cpp:676 msgid "Go one level up in document hierarchy" msgstr "Πήγαινε ένα επίπεδο πάνω στην ιεραρχεία του εγγράφου" #: ../src/generic/filedlgg.cpp:223 ../src/generic/dirdlgg.cpp:136 msgid "Go to home directory" msgstr "Προς κεντρικό κατάλογο" #: ../src/generic/filedlgg.cpp:219 msgid "Go to parent directory" msgstr "Προς πατρικό κατάλογο" #: ../src/generic/aboutdlgg.cpp:76 msgid "Graphics art by " msgstr "" #: ../src/common/fmapbase.cpp:154 msgid "Greek (ISO-8859-7)" msgstr "Ελληνικό (ISO-8859-7)" #: ../src/richtext/richtextborderspage.cpp:547 msgid "Groove" msgstr "" #: ../src/common/zstream.cpp:158 ../src/common/zstream.cpp:318 msgid "Gzip not supported by this version of zlib" msgstr "Το Gzip δεν υποστηρίζεται από αυτήν την έκδοση της zlib" #: ../src/common/accelcmn.cpp:75 msgid "HELP" msgstr "" #: ../src/common/accelcmn.cpp:60 msgid "HOME" msgstr "" #: ../src/html/helpwnd.cpp:1552 msgid "HTML Help Project (*.hhp)|*.hhp|" msgstr "Εργασία HTML βοήθειας (*.hhp)|*.hhp|" #: ../src/html/htmlwin.cpp:659 #, c-format msgid "HTML anchor %s does not exist." msgstr "Η HTML άγκυρα %s δεν υπάρχει." #: ../src/html/helpwnd.cpp:1550 msgid "HTML files (*.html;*.htm)|*.html;*.htm|" msgstr "Αρχεία HTML (*.html;*.htm)|*.html;*.htm|" #: ../src/common/stockitem.cpp:162 msgid "Harddisk" msgstr "" #: ../src/common/fmapbase.cpp:155 msgid "Hebrew (ISO-8859-8)" msgstr "Εβραϊκό (ISO-8859-8)" #: ../include/wx/msgdlg.h:275 ../src/osx/button_osx.cpp:39 #: ../src/common/stockitem.cpp:163 ../src/html/helpdlg.cpp:66 #: ../src/html/helpfrm.cpp:116 msgid "Help" msgstr "Βοήθεια" #: ../src/html/helpwnd.cpp:1213 msgid "Help Browser Options" msgstr "Επιλογές Περιηγητή Βοηθείας" #: ../src/generic/helpext.cpp:458 ../src/generic/helpext.cpp:459 msgid "Help Index" msgstr "Ευρετήριο Βοηθείας" #: ../src/html/helpwnd.cpp:1534 msgid "Help Printing" msgstr "Βοήθεια Εκτύπωσης" #: ../src/html/helpwnd.cpp:814 msgid "Help Topics" msgstr "Θέματα Βοήθειας" #: ../src/html/helpwnd.cpp:1551 msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|" msgstr "Βιβλία βοήθειας (*.htb)|*.htb|Αρχεία βοήθειας (*.zip)|*.zip|" #: ../src/generic/helpext.cpp:271 #, c-format msgid "Help directory \"%s\" not found." msgstr "" #: ../src/generic/helpext.cpp:279 #, fuzzy, c-format msgid "Help file \"%s\" not found." msgstr "αρχείο καταλόγου για την περιοχή (domain) '%s' δεν βρέθηκε." #: ../src/html/helpctrl.cpp:63 #, c-format msgid "Help: %s" msgstr "Βοήθεια: %s" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:649 #, fuzzy, c-format msgid "Hide %s" msgstr "Βοήθεια: %s" #: ../src/osx/menu_osx.cpp:604 ../src/osx/menu_osx.cpp:651 msgid "Hide Others" msgstr "" #: ../src/generic/infobar.cpp:85 msgid "Hide this notification message." msgstr "" #: ../src/generic/dirdlgg.cpp:98 ../src/common/stockitem.cpp:164 msgid "Home" msgstr "Αρχική σελίδα" #: ../src/generic/dirctrlg.cpp:624 msgid "Home directory" msgstr "Αρχικός κατάλογος" #: ../src/richtext/richtextsizepage.cpp:253 #: ../src/richtext/richtextsizepage.cpp:255 msgid "How the object will float relative to the text." msgstr "" #: ../src/common/imagbmp.cpp:1118 msgid "ICO: Error in reading mask DIB." msgstr "ICO: Σφάλμα στην ανάγνωση μάσκας DIB." #: ../src/common/imagbmp.cpp:1233 ../src/common/imagbmp.cpp:1294 #: ../src/common/imagbmp.cpp:1305 ../src/common/imagbmp.cpp:1318 #: ../src/common/imagbmp.cpp:1363 ../src/common/imagbmp.cpp:1375 #: ../src/common/imagbmp.cpp:1386 msgid "ICO: Error writing the image file!" msgstr "ICO: Σφάλμα κατά την εγγραφή του αρχείου εικόνας!" #: ../src/common/imagbmp.cpp:1198 msgid "ICO: Image too tall for an icon." msgstr "ICO: Εικόνα πολύ ψηλή για εικονίδιο(icon)." #: ../src/common/imagbmp.cpp:1206 msgid "ICO: Image too wide for an icon." msgstr "ICO: Εικόνα πολύ πλατιά για εικονίδιο(icon)." #: ../src/common/imagbmp.cpp:1466 msgid "ICO: Invalid icon index." msgstr "ICO: Λανθασμένος δείκτης(index) εικονιδίου(icon)." #: ../src/common/imagiff.cpp:759 msgid "IFF: data stream seems to be truncated." msgstr "IFF: το stream δεδομένων μοιάζει να είναι αποκομμένο." #: ../src/common/imagiff.cpp:743 msgid "IFF: error in IFF image format." msgstr "IFF: σφάλμα στη μορφή εικόνας IFF." #: ../src/common/imagiff.cpp:746 msgid "IFF: not enough memory." msgstr "IFF: ανεπαρκής μνήμη." #: ../src/common/imagiff.cpp:749 msgid "IFF: unknown error!!!" msgstr "IFF: άγνωστο λάθος!!!" #: ../src/common/accelcmn.cpp:50 msgid "INS" msgstr "" #: ../src/common/accelcmn.cpp:51 msgid "INSERT" msgstr "" #: ../src/common/fmapbase.cpp:197 msgid "ISO-2022-JP" msgstr "" #: ../src/osx/carbon/dataview.cpp:2420 msgid "Icon & text renderer cannot render value; value type: " msgstr "" #: ../src/html/htmprint.cpp:282 msgid "" "If possible, try changing the layout parameters to make the printout more " "narrow." msgstr "" #: ../src/generic/dbgrptg.cpp:358 msgid "" "If you have any additional information pertaining to this bug\n" "report, please enter it here and it will be joined to it:" msgstr "" #: ../src/generic/dbgrptg.cpp:324 msgid "" "If you wish to suppress this debug report completely, please choose the " "\"Cancel\" button,\n" "but be warned that it may hinder improving the program, so if\n" "at all possible please do continue with the report generation.\n" msgstr "" #: ../src/msw/registry.cpp:1395 #, c-format msgid "Ignoring value \"%s\" of the key \"%s\"." msgstr "" #: ../src/common/xtistrm.cpp:299 msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source" msgstr "Εσφαλμένη κλάση αντικειμένου (μη-wxEvtHandler) σαν πηγή Events" #: ../src/common/xti.cpp:513 msgid "Illegal Parameter Count for ConstructObject Method" msgstr "Εσφαλμένος αριθμός παραμέτρων για μέθοδο ConstructObject" #: ../src/common/xti.cpp:501 msgid "Illegal Parameter Count for Create Method" msgstr "Εσφαλμένος αριθμός παραμέτρων για μέθοδο Create" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/filectrlg.cpp:791 msgid "Illegal directory name." msgstr "Μη έγκυρο όνομα καταλόγου." #: ../src/generic/filectrlg.cpp:1380 msgid "Illegal file specification." msgstr "Μη έγκυρος προσδιορισμός αρχείου." #: ../src/common/image.cpp:2158 msgid "Image and mask have different sizes." msgstr "Εικόνα και μάσκα έχουν διαφορετικά μεγέθη." #: ../src/common/image.cpp:2609 #, fuzzy, c-format msgid "Image file is not of type %d." msgstr "Αρχείο εικόνας δεν είναι τύπυ %d." #: ../src/common/image.cpp:2739 #, fuzzy, c-format msgid "Image is not of type %s." msgstr "Αρχείο εικόνας δεν είναι τύπυ %d." #: ../src/msw/textctrl.cpp:399 msgid "" "Impossible to create a rich edit control, using simple text control instead. " "Please reinstall riched32.dll" msgstr "" "Αδύνατη η δημουργία ενός στοιχείου ελέγχου(control) rich edit, αντι αυτού " "γίνεται χρήση του simpe text στοιχείου ελέγχου. Παρακαλώ επανεγκαταστήστε το " "riched32.dll" #: ../src/unix/utilsunx.cpp:307 msgid "Impossible to get child process input" msgstr "Αδύνατη η λήψη της εισόδου της διεργασίας (process) απογόνου(child)" #: ../src/common/filefn.cpp:1074 #, c-format msgid "Impossible to get permissions for file '%s'" msgstr "Αδύνατη η λήψη των δικαιωμάτων για το αρχείο '%s'" #: ../src/common/filefn.cpp:1088 #, c-format msgid "Impossible to overwrite the file '%s'" msgstr "Αδύνατη η επικάλυψη του αρχείου '%s'" #: ../src/common/filefn.cpp:1142 #, c-format msgid "Impossible to set permissions for the file '%s'" msgstr "Αδύνατος ο ορισμός των δικαιωμάτων για το αρχείο '%s'" #: ../src/common/gifdecod.cpp:818 #, c-format msgid "Incorrect GIF frame size (%u, %d) for the frame #%u" msgstr "" #: ../src/msw/ole/automtn.cpp:624 msgid "Incorrect number of arguments." msgstr "" #: ../src/common/stockitem.cpp:165 msgid "Indent" msgstr "Στοίχιση" #: ../src/richtext/richtextformatdlg.cpp:330 msgid "Indents && Spacing" msgstr "" #: ../src/common/stockitem.cpp:166 ../src/html/helpwnd.cpp:525 msgid "Index" msgstr "Ευρετήριο" #: ../src/common/fmapbase.cpp:159 msgid "Indian (ISO-8859-12)" msgstr "Ινδικό (ISO-8859-12)" #: ../src/common/stockitem.cpp:167 msgid "Info" msgstr "" #: ../src/common/init.cpp:276 msgid "Initialization failed in post init, aborting." msgstr "" #: ../src/richtext/richtextsymboldlg.cpp:472 #, fuzzy msgid "Insert" msgstr "Στοίχιση" #: ../src/richtext/richtextbuffer.cpp:7687 #, fuzzy msgid "Insert Field" msgstr "Στοίχιση" #: ../src/richtext/richtextbuffer.cpp:7598 #: ../src/richtext/richtextbuffer.cpp:8551 msgid "Insert Image" msgstr "" #: ../src/richtext/richtextbuffer.cpp:7645 #, fuzzy msgid "Insert Object" msgstr "Στοίχιση" #: ../src/richtext/richtextctrl.cpp:1172 ../src/richtext/richtextctrl.cpp:1362 #: ../src/richtext/richtextbuffer.cpp:7440 #: ../src/richtext/richtextbuffer.cpp:7470 #: ../src/richtext/richtextbuffer.cpp:7514 msgid "Insert Text" msgstr "" #: ../src/richtext/richtextindentspage.cpp:295 #: ../src/richtext/richtextindentspage.cpp:297 msgid "Inserts a page break before the paragraph." msgstr "" #: ../src/richtext/richtextborderspage.cpp:549 #, fuzzy msgid "Inset" msgstr "Στοίχιση" #: ../src/gtk/app.cpp:429 #, c-format msgid "Invalid GTK+ command line option, use \"%s --help\"" msgstr "" #: ../src/common/imagtiff.cpp:314 msgid "Invalid TIFF image index." msgstr "Λανθασμένος δείκτης εικόνας TIFF." #: ../src/osx/carbon/dataview.cpp:1782 ../src/osx/carbon/dataview.cpp:1877 msgid "Invalid data view item" msgstr "" #: ../src/common/appcmn.cpp:266 #, c-format msgid "Invalid display mode specification '%s'." msgstr "" "Λανθασμένος καθορισμός(specification) κατάστασης λειτουργίας(mode) οθόνης" "(display) '%s'." #: ../src/x11/app.cpp:121 #, c-format msgid "Invalid geometry specification '%s'" msgstr "Λανθασμένος γεωμετρικός καθορισμός(specification) '%s'" #: ../src/unix/fswatcher_inotify.cpp:298 #, c-format msgid "Invalid inotify event for \"%s\"" msgstr "" #: ../src/unix/snglinst.cpp:306 #, c-format msgid "Invalid lock file '%s'." msgstr "Λανθασμένο αρχείο κλειδαριά (lock file) '%s'." #: ../src/common/translation.cpp:1111 #, fuzzy msgid "Invalid message catalog." msgstr "'%s' δεν είναι ένας σωστός κατάλογος μηνυμάτων." #: ../src/common/xtistrm.cpp:409 ../src/common/xtistrm.cpp:424 msgid "Invalid or Null Object ID passed to GetObjectClassInfo" msgstr "Μη έγκυρο ή Null ID αντικειμένου δόθηκε στην GetObjectClassInfo" #: ../src/common/xtistrm.cpp:439 msgid "Invalid or Null Object ID passed to HasObjectClassInfo" msgstr "Μη έγκυρο ή Null ID αντικειμένου δόθηκε στην HasObjectClassInfo" #: ../src/common/regex.cpp:313 #, c-format msgid "Invalid regular expression '%s': %s" msgstr "Λανθασμένη κανονική έκφραση (regular expression) '%s': %s" #: ../src/common/config.cpp:226 #, c-format msgid "Invalid value %ld for a boolean key \"%s\" in config file." msgstr "" #: ../src/generic/fontdlgg.cpp:329 ../src/richtext/richtextfontpage.cpp:333 #: ../src/osx/carbon/fontdlg.cpp:547 ../src/common/stockitem.cpp:168 msgid "Italic" msgstr "Πλάγια" #: ../src/common/paper.cpp:131 msgid "Italy Envelope, 110 x 230 mm" msgstr "Italy Envelope, 110 x 230 mm" #: ../src/common/imagjpeg.cpp:255 msgid "JPEG: Couldn't load - file is probably corrupted." msgstr "JPEG: Αδύνατη η φόρτωση - το αρχείο είναι μάλλον φθαρμένο(corrupted)." #: ../src/common/imagjpeg.cpp:434 msgid "JPEG: Couldn't save image." msgstr "JPEG: Αδύνατη η αποθήκευση της εικόνας." #: ../src/common/paper.cpp:164 msgid "Japanese Double Postcard 200 x 148 mm" msgstr "" #: ../src/common/paper.cpp:168 msgid "Japanese Envelope Chou #3" msgstr "" #: ../src/common/paper.cpp:181 msgid "Japanese Envelope Chou #3 Rotated" msgstr "" #: ../src/common/paper.cpp:169 msgid "Japanese Envelope Chou #4" msgstr "" #: ../src/common/paper.cpp:182 msgid "Japanese Envelope Chou #4 Rotated" msgstr "" #: ../src/common/paper.cpp:166 msgid "Japanese Envelope Kaku #2" msgstr "" #: ../src/common/paper.cpp:179 msgid "Japanese Envelope Kaku #2 Rotated" msgstr "" #: ../src/common/paper.cpp:167 msgid "Japanese Envelope Kaku #3" msgstr "" #: ../src/common/paper.cpp:180 msgid "Japanese Envelope Kaku #3 Rotated" msgstr "" #: ../src/common/paper.cpp:186 msgid "Japanese Envelope You #4" msgstr "" #: ../src/common/paper.cpp:187 msgid "Japanese Envelope You #4 Rotated" msgstr "" #: ../src/common/paper.cpp:139 msgid "Japanese Postcard 100 x 148 mm" msgstr "" #: ../src/common/paper.cpp:176 msgid "Japanese Postcard Rotated 148 x 100 mm" msgstr "" #: ../src/common/stockitem.cpp:169 msgid "Jump to" msgstr "" #: ../src/common/stockitem.cpp:171 msgid "Justified" msgstr "Ευθυγραμμισμένα" #: ../src/richtext/richtextindentspage.cpp:155 #: ../src/richtext/richtextindentspage.cpp:157 #: ../src/richtext/richtextliststylepage.cpp:344 #: ../src/richtext/richtextliststylepage.cpp:346 msgid "Justify text left and right." msgstr "" #: ../src/common/fmapbase.cpp:163 msgid "KOI8-R" msgstr "KOI8-R" #: ../src/common/fmapbase.cpp:164 msgid "KOI8-U" msgstr "KOI8-U" #: ../src/common/accelcmn.cpp:254 ../src/common/accelcmn.cpp:336 msgid "KP_" msgstr "" #: ../src/common/accelcmn.cpp:103 msgid "KP_ADD" msgstr "" #: ../src/common/accelcmn.cpp:98 msgid "KP_BEGIN" msgstr "" #: ../src/common/accelcmn.cpp:106 msgid "KP_DECIMAL" msgstr "" #: ../src/common/accelcmn.cpp:100 msgid "KP_DELETE" msgstr "" #: ../src/common/accelcmn.cpp:107 msgid "KP_DIVIDE" msgstr "" #: ../src/common/accelcmn.cpp:92 msgid "KP_DOWN" msgstr "" #: ../src/common/accelcmn.cpp:97 msgid "KP_END" msgstr "" #: ../src/common/accelcmn.cpp:87 msgid "KP_ENTER" msgstr "" #: ../src/common/accelcmn.cpp:101 msgid "KP_EQUAL" msgstr "" #: ../src/common/accelcmn.cpp:88 msgid "KP_HOME" msgstr "" #: ../src/common/accelcmn.cpp:99 msgid "KP_INSERT" msgstr "" #: ../src/common/accelcmn.cpp:89 msgid "KP_LEFT" msgstr "" #: ../src/common/accelcmn.cpp:102 msgid "KP_MULTIPLY" msgstr "" #: ../src/common/accelcmn.cpp:95 msgid "KP_NEXT" msgstr "" #: ../src/common/accelcmn.cpp:96 msgid "KP_PAGEDOWN" msgstr "" #: ../src/common/accelcmn.cpp:94 msgid "KP_PAGEUP" msgstr "" #: ../src/common/accelcmn.cpp:93 msgid "KP_PRIOR" msgstr "" #: ../src/common/accelcmn.cpp:91 msgid "KP_RIGHT" msgstr "" #: ../src/common/accelcmn.cpp:104 msgid "KP_SEPARATOR" msgstr "" #: ../src/common/accelcmn.cpp:85 msgid "KP_SPACE" msgstr "" #: ../src/common/accelcmn.cpp:105 msgid "KP_SUBTRACT" msgstr "" #: ../src/common/accelcmn.cpp:86 msgid "KP_TAB" msgstr "" #: ../src/common/accelcmn.cpp:90 msgid "KP_UP" msgstr "" #: ../src/richtext/richtextindentspage.cpp:270 msgid "L&ine spacing:" msgstr "" #: ../src/common/accelcmn.cpp:56 msgid "LEFT" msgstr "" #: ../src/generic/prntdlgg.cpp:613 ../src/generic/prntdlgg.cpp:868 msgid "Landscape" msgstr "Τοπίο" #: ../src/common/stockitem.cpp:174 #, fuzzy msgid "Last" msgstr "&Επικόληση" #: ../src/common/prntbase.cpp:1542 #, fuzzy msgid "Last page" msgstr "Επόμενη σελίδα" #: ../src/common/log.cpp:309 #, c-format msgid "Last repeated message (\"%s\", %lu time) wasn't output" msgid_plural "Last repeated message (\"%s\", %lu times) wasn't output" msgstr[0] "" msgstr[1] "" #: ../src/common/paper.cpp:104 msgid "Ledger, 17 x 11 in" msgstr "Ledger, 17 x 11 ίντσες" #: ../src/richtext/richtextliststylepage.cpp:249 #: ../src/richtext/richtextliststylepage.cpp:252 #: ../src/richtext/richtextliststylepage.cpp:253 #: ../src/richtext/richtextbulletspage.cpp:199 #: ../src/richtext/richtextbulletspage.cpp:202 #: ../src/richtext/richtextbulletspage.cpp:203 #: ../src/richtext/richtextsizepage.cpp:249 msgid "Left" msgstr "" #: ../src/richtext/richtextindentspage.cpp:204 #: ../src/richtext/richtextliststylepage.cpp:390 msgid "Left (&first line):" msgstr "" #: ../src/generic/prntdlgg.cpp:880 msgid "Left margin (mm):" msgstr "Αριστερό περιθώριο (mm)" #: ../src/richtext/richtextindentspage.cpp:141 #: ../src/richtext/richtextindentspage.cpp:143 #: ../src/richtext/richtextliststylepage.cpp:330 #: ../src/richtext/richtextliststylepage.cpp:332 msgid "Left-align text." msgstr "" #: ../src/common/paper.cpp:145 #, fuzzy msgid "Legal Extra 9 1/2 x 15 in" msgstr "Νομικό, 8 1/2 x 14 ίντσες" #: ../src/common/paper.cpp:97 msgid "Legal, 8 1/2 x 14 in" msgstr "Νομικό, 8 1/2 x 14 ίντσες" #: ../src/common/paper.cpp:144 #, fuzzy msgid "Letter Extra 9 1/2 x 12 in" msgstr "Γράμμα, 8 1/2 x 11 ίντσες" #: ../src/common/paper.cpp:150 msgid "Letter Extra Transverse 9.275 x 12 in" msgstr "" #: ../src/common/paper.cpp:153 #, fuzzy msgid "Letter Plus 8 1/2 x 12.69 in" msgstr "Γράμμα, 8 1/2 x 11 ίντσες" #: ../src/common/paper.cpp:170 #, fuzzy msgid "Letter Rotated 11 x 8 1/2 in" msgstr "Γράμμα, 8 1/2 x 11 ίντσες" #: ../src/common/paper.cpp:102 msgid "Letter Small, 8 1/2 x 11 in" msgstr "Γράμμα Μικρό, 8 1/2 x 11 ίντσες" #: ../src/common/paper.cpp:148 #, fuzzy msgid "Letter Transverse 8 1/2 x 11 in" msgstr "Γράμμα, 8 1/2 x 11 ίντσες" #: ../src/common/paper.cpp:96 msgid "Letter, 8 1/2 x 11 in" msgstr "Γράμμα, 8 1/2 x 11 ίντσες" #: ../src/generic/aboutdlgg.cpp:173 msgid "License" msgstr "" #: ../src/generic/fontdlgg.cpp:332 msgid "Light" msgstr "Απαλό(light)" #: ../src/generic/helpext.cpp:298 #, c-format msgid "Line %lu of map file \"%s\" has invalid syntax, skipped." msgstr "" #: ../src/richtext/richtextliststylepage.cpp:444 msgid "Line spacing:" msgstr "" #: ../src/html/chm.cpp:838 msgid "Link contained '//', converted to absolute link." msgstr "Η σύνδεση που περιείχε '//', μετατράπηκε σε απόλυτη σύνδεση." #: ../src/richtext/richtextformatdlg.cpp:349 msgid "List Style" msgstr "" #: ../src/richtext/richtextstyles.cpp:1060 msgid "List styles" msgstr "" #: ../src/richtext/richtextfontpage.cpp:206 #: ../src/richtext/richtextfontpage.cpp:208 msgid "Lists font sizes in points." msgstr "" #: ../src/richtext/richtextfontpage.cpp:199 #: ../src/richtext/richtextfontpage.cpp:201 #, fuzzy msgid "Lists the available fonts." msgstr "Το Tip δεν είναι διαθέσιμο, συγγνώμη!" #: ../src/common/fldlgcmn.cpp:325 #, c-format msgid "Load %s file" msgstr "Φόρτωση %s αρχείου" #: ../src/html/htmlwin.cpp:575 msgid "Loading : " msgstr "Γίνεται φόρτωση : " #: ../src/unix/snglinst.cpp:246 #, c-format msgid "Lock file '%s' has incorrect owner." msgstr "Το αρχείο 'κλειδωνιά' '%s' έχει λανθασμένο ιδιοκτήτη." #: ../src/unix/snglinst.cpp:251 #, c-format msgid "Lock file '%s' has incorrect permissions." msgstr "Το αρχείο 'κλειδωνιά' '%s' έχει λανθασμένα δικαιώματα." #: ../src/generic/logg.cpp:582 #, c-format msgid "Log saved to the file '%s'." msgstr "Η καταγραφή (log) αποθηκεύτηκε στο αρχείο '%s'" #: ../src/richtext/richtextliststylepage.cpp:484 #: ../src/richtext/richtextbulletspage.cpp:289 msgid "Lower case letters" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:486 #: ../src/richtext/richtextbulletspage.cpp:291 msgid "Lower case roman numerals" msgstr "" #: ../src/gtk/mdi.cpp:422 ../src/gtk1/mdi.cpp:431 msgid "MDI child" msgstr "MDI παιδί" #: ../src/common/accelcmn.cpp:68 msgid "MENU" msgstr "" #: ../src/msw/helpchm.cpp:56 msgid "" "MS HTML Help functions are unavailable because the MS HTML Help library is " "not installed on this machine. Please install it." msgstr "" "Οι συναρτήσεις (functions) της MS HTML Help δεν είναι διαθέσιμες γιατί η " "βιβλιοθήκη MS HTML Help δεν είναι εγκατεστημένη. Παρακαλώ εγκαταστήστε την." #: ../src/univ/themes/win32.cpp:3754 msgid "Ma&ximize" msgstr "Με&γιστοποίηση" #: ../src/common/fmapbase.cpp:203 msgid "MacArabic" msgstr "" #: ../src/common/fmapbase.cpp:222 msgid "MacArmenian" msgstr "" #: ../src/common/fmapbase.cpp:211 msgid "MacBengali" msgstr "" #: ../src/common/fmapbase.cpp:217 msgid "MacBurmese" msgstr "" #: ../src/common/fmapbase.cpp:236 msgid "MacCeltic" msgstr "" #: ../src/common/fmapbase.cpp:227 msgid "MacCentralEurRoman" msgstr "" #: ../src/common/fmapbase.cpp:223 msgid "MacChineseSimp" msgstr "" #: ../src/common/fmapbase.cpp:201 msgid "MacChineseTrad" msgstr "" #: ../src/common/fmapbase.cpp:233 msgid "MacCroatian" msgstr "" #: ../src/common/fmapbase.cpp:206 msgid "MacCyrillic" msgstr "" #: ../src/common/fmapbase.cpp:207 msgid "MacDevanagari" msgstr "" #: ../src/common/fmapbase.cpp:231 msgid "MacDingbats" msgstr "" #: ../src/common/fmapbase.cpp:226 msgid "MacEthiopic" msgstr "" #: ../src/common/fmapbase.cpp:229 msgid "MacExtArabic" msgstr "" #: ../src/common/fmapbase.cpp:237 msgid "MacGaelic" msgstr "" #: ../src/common/fmapbase.cpp:221 msgid "MacGeorgian" msgstr "" #: ../src/common/fmapbase.cpp:205 msgid "MacGreek" msgstr "" #: ../src/common/fmapbase.cpp:209 msgid "MacGujarati" msgstr "" #: ../src/common/fmapbase.cpp:208 msgid "MacGurmukhi" msgstr "" #: ../src/common/fmapbase.cpp:204 msgid "MacHebrew" msgstr "" #: ../src/common/fmapbase.cpp:234 msgid "MacIcelandic" msgstr "" #: ../src/common/fmapbase.cpp:200 msgid "MacJapanese" msgstr "" #: ../src/common/fmapbase.cpp:214 msgid "MacKannada" msgstr "" #: ../src/common/fmapbase.cpp:238 msgid "MacKeyboardGlyphs" msgstr "" #: ../src/common/fmapbase.cpp:218 msgid "MacKhmer" msgstr "" #: ../src/common/fmapbase.cpp:202 msgid "MacKorean" msgstr "" #: ../src/common/fmapbase.cpp:220 msgid "MacLaotian" msgstr "" #: ../src/common/fmapbase.cpp:215 msgid "MacMalayalam" msgstr "" #: ../src/common/fmapbase.cpp:225 msgid "MacMongolian" msgstr "" #: ../src/common/fmapbase.cpp:210 msgid "MacOriya" msgstr "" #: ../src/common/fmapbase.cpp:199 #, fuzzy msgid "MacRoman" msgstr "Ρωμαϊκό" #: ../src/common/fmapbase.cpp:235 #, fuzzy msgid "MacRomanian" msgstr "Ρωμαϊκό" #: ../src/common/fmapbase.cpp:216 #, fuzzy msgid "MacSinhalese" msgstr "Ταίριασμα πεζών/κεφαλαίων" #: ../src/common/fmapbase.cpp:230 #, fuzzy msgid "MacSymbol" msgstr "&Στυλ:" #: ../src/common/fmapbase.cpp:212 msgid "MacTamil" msgstr "" #: ../src/common/fmapbase.cpp:213 msgid "MacTelugu" msgstr "" #: ../src/common/fmapbase.cpp:219 msgid "MacThai" msgstr "" #: ../src/common/fmapbase.cpp:224 msgid "MacTibetan" msgstr "" #: ../src/common/fmapbase.cpp:232 msgid "MacTurkish" msgstr "" #: ../src/common/fmapbase.cpp:228 msgid "MacVietnamese" msgstr "" #: ../src/propgrid/advprops.cpp:2031 #, fuzzy msgid "Make a selection:" msgstr "Τμήματα" #: ../src/richtext/richtextformatdlg.cpp:362 #: ../src/richtext/richtextmarginspage.cpp:172 msgid "Margins" msgstr "" #: ../src/generic/fdrepdlg.cpp:147 msgid "Match case" msgstr "Ταίριασμα πεζών/κεφαλαίων" #: ../src/richtext/richtextsizepage.cpp:463 #, fuzzy msgid "Max height:" msgstr "&Βάρος:" #: ../src/richtext/richtextsizepage.cpp:436 #, fuzzy msgid "Max width:" msgstr "Αντικατάσταση με:" #: ../src/unix/mediactrl.cpp:1006 #, c-format msgid "Media playback error: %s" msgstr "" #: ../src/common/fs_mem.cpp:175 #, c-format msgid "Memory VFS already contains file '%s'!" msgstr "VFS μνήμης ήδη περιέχει το αρχείο '%s'!" #: ../src/msw/frame.cpp:347 msgid "Menu" msgstr "Μενού" #: ../src/common/msgout.cpp:124 #, fuzzy msgid "Message" msgstr "%s μήνυμα" #: ../src/univ/themes/metal.cpp:168 msgid "Metal theme" msgstr "Μεταλλικό θέμα" #: ../src/msw/ole/automtn.cpp:641 msgid "Method or property not found." msgstr "" #: ../src/univ/themes/win32.cpp:3752 msgid "Mi&nimize" msgstr "Ελα&χιστοποίηση" #: ../src/richtext/richtextsizepage.cpp:409 #, fuzzy msgid "Min height:" msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextsizepage.cpp:382 msgid "Min width:" msgstr "" #: ../src/msw/ole/automtn.cpp:657 msgid "Missing a required parameter." msgstr "" #: ../src/generic/fontdlgg.cpp:324 msgid "Modern" msgstr "Μοντέρνο" #: ../src/generic/filectrlg.cpp:462 msgid "Modified" msgstr "Τροποποιημένο" #: ../src/common/module.cpp:133 #, c-format msgid "Module \"%s\" initialization failed" msgstr "" #: ../src/common/paper.cpp:132 msgid "Monarch Envelope, 3 7/8 x 7 1/2 in" msgstr "Φακελος Monarch, 3 7/8 x 7 1/2 ίντσες" #: ../src/msw/fswatcher.cpp:143 msgid "Monitoring individual files for changes is not supported currently." msgstr "" #: ../src/generic/editlbox.cpp:276 msgid "Move down" msgstr "Μετακίνηση κάτω" #: ../src/generic/editlbox.cpp:275 msgid "Move up" msgstr "Μετακίνηση επάνω" #: ../src/richtext/richtextsizepage.cpp:682 #: ../src/richtext/richtextsizepage.cpp:684 msgid "Moves the object to the next paragraph." msgstr "" #: ../src/richtext/richtextsizepage.cpp:676 #: ../src/richtext/richtextsizepage.cpp:678 msgid "Moves the object to the previous paragraph." msgstr "" #: ../src/richtext/richtextbuffer.cpp:9345 msgid "Multiple Cell Properties" msgstr "" #: ../src/common/accelcmn.cpp:81 msgid "NUM_LOCK" msgstr "" #: ../src/generic/filectrlg.cpp:459 msgid "Name" msgstr "Όνομα" #: ../src/common/stockitem.cpp:175 msgid "Network" msgstr "" #: ../src/common/stockitem.cpp:176 #, fuzzy msgid "New" msgstr "&Νέο" #: ../src/richtext/richtextstyledlg.cpp:243 #, fuzzy msgid "New &Box Style..." msgstr "Νέο στοιχείο" #: ../src/richtext/richtextstyledlg.cpp:225 msgid "New &Character Style..." msgstr "" #: ../src/richtext/richtextstyledlg.cpp:237 msgid "New &List Style..." msgstr "" #: ../src/richtext/richtextstyledlg.cpp:231 msgid "New &Paragraph Style..." msgstr "" #: ../src/richtext/richtextstyledlg.cpp:603 #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:651 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:817 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:890 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:931 #: ../src/richtext/richtextstyledlg.cpp:936 #, fuzzy msgid "New Style" msgstr "Νέο στοιχείο" #: ../src/generic/dirdlgg.cpp:102 msgid "New directory" msgstr "Νέος κατάλογος" #: ../src/generic/editlbox.cpp:273 msgid "New item" msgstr "Νέο στοιχείο" #: ../src/generic/dirdlgg.cpp:326 ../src/generic/dirdlgg.cpp:336 #: ../src/generic/filectrlg.cpp:653 ../src/generic/filectrlg.cpp:662 msgid "NewName" msgstr "ΝέοΌνομα" #: ../src/generic/tipdlg.cpp:305 msgid "Next" msgstr "Επόμενο" #: ../src/common/prntbase.cpp:1537 ../src/html/helpwnd.cpp:678 msgid "Next page" msgstr "Επόμενη σελίδα" #: ../include/wx/msgdlg.h:272 ../src/common/stockitem.cpp:177 #: ../src/motif/msgdlg.cpp:196 msgid "No" msgstr "Όχι" #: ../src/generic/animateg.cpp:150 #, fuzzy, c-format msgid "No animation handler for type %ld defined." msgstr "Δεν έχει οριστεί χειριστής εικόνας για τον τύπο %d." #: ../src/dfb/bitmap.cpp:642 ../src/dfb/bitmap.cpp:676 #, fuzzy, c-format msgid "No bitmap handler for type %d defined." msgstr "Δεν έχει οριστεί χειριστής εικόνας για τον τύπο %d." #: ../src/osx/carbon/dataview.cpp:1784 msgid "No column existing." msgstr "" #: ../src/osx/carbon/dataview.cpp:1674 msgid "No column for the specified column existing." msgstr "" #: ../src/osx/carbon/dataview.cpp:1423 msgid "No column for the specified column position existing." msgstr "" #: ../src/common/utilscmn.cpp:1049 msgid "No default application configured for HTML files." msgstr "" #: ../src/generic/helpext.cpp:449 msgid "No entries found." msgstr "Δεν βρέθηκαν εισαγωγές(entries)." #: ../src/common/fontmap.cpp:421 #, c-format msgid "" "No font for displaying text in encoding '%s' found,\n" "but an alternative encoding '%s' is available.\n" "Do you want to use this encoding (otherwise you will have to choose another " "one)?" msgstr "" "Δεν βρέθηκε γραμματοσειρά (font) για την εμφάνιση κειμένου στην κωδικοποίηση " "(encoding) '%s',\n" "αλλά μία εναλλακτική κωδικοποίηση '%s' είναι διαθέισμη.\n" "Θέλετε να χρησιμοποιήσετε αυτή την κωδικοποίηση (διαφορετικά θα πρέπει να " "επιλέξετε μία άλλη) ;" #: ../src/common/fontmap.cpp:426 #, c-format msgid "" "No font for displaying text in encoding '%s' found.\n" "Would you like to select a font to be used for this encoding\n" "(otherwise the text in this encoding will not be shown correctly)?" msgstr "" "Δεν βρέθηκε γραμματοσειρά (font) για την εμφάνιση κειμένου για αυτήν την " "κωδικοποίηση (encoding) '%s'.\n" "Θα θέλατε να επιλέξετε μία γραμματοσειρα για να χρησιμοποιηθεί για αυτή την " "κωδικοποίηση(διαφορετικά το κείμενο σε αυτή την κωδικοποίηση δεν θα " "εμφανιστεί κανονικά) ;" #: ../src/generic/animateg.cpp:142 #, fuzzy msgid "No handler found for animation type." msgstr "Δεν βρέθηκε χειριστής για τύπο εικόνας." #: ../src/common/image.cpp:2591 msgid "No handler found for image type." msgstr "Δεν βρέθηκε χειριστής για τύπο εικόνας." #: ../src/common/image.cpp:2599 ../src/common/image.cpp:2710 #: ../src/common/image.cpp:2763 #, c-format msgid "No image handler for type %d defined." msgstr "Δεν έχει οριστεί χειριστής εικόνας για τον τύπο %d." #: ../src/common/image.cpp:2733 ../src/common/image.cpp:2777 #, c-format msgid "No image handler for type %s defined." msgstr "Δεν έχει οριστεί χειριστής εικόνας για τον τύπο %s." #: ../src/html/helpwnd.cpp:871 msgid "No matching page found yet" msgstr "Δεν βρέθηκε ακόμα σελίδα που να ταιράζει" #: ../src/osx/carbon/dataview.cpp:1676 ../src/osx/carbon/dataview.cpp:1786 msgid "No renderer or invalid renderer type specified for custom data column." msgstr "" #: ../src/osx/carbon/dataview.cpp:1424 msgid "No renderer specified for column." msgstr "" #: ../src/unix/sound.cpp:81 msgid "No sound" msgstr "Χωρίς ήχο" #: ../src/common/image.cpp:2166 ../src/common/image.cpp:2207 msgid "No unused colour in image being masked." msgstr "" "Δεν υπάρχει μη χρησιμοποιούμενο χρώμα στην εικόνα που εφααρμόζεται η μάσκα" #: ../src/common/image.cpp:3236 msgid "No unused colour in image." msgstr "Δεν υπάρχει μη χρησιμοποιούμενο χρώμα στην εικόνα" #: ../src/generic/helpext.cpp:306 #, c-format msgid "No valid mappings found in the file \"%s\"." msgstr "" #: ../src/richtext/richtextborderspage.cpp:542 #: ../src/richtext/richtextsizepage.cpp:248 #: ../src/richtext/richtextsizepage.cpp:252 #, fuzzy msgid "None" msgstr "Έτοιμο" #: ../src/common/fmapbase.cpp:157 msgid "Nordic (ISO-8859-10)" msgstr "Νορδικό (ISO-8859-10)" #: ../src/generic/fontdlgg.cpp:328 ../src/generic/fontdlgg.cpp:331 msgid "Normal" msgstr "Κανονικό" #: ../src/html/helpwnd.cpp:1276 msgid "Normal face
    and underlined. " msgstr "Κανονική όψη
    και υπογραμμισμένη." #: ../src/html/helpwnd.cpp:1218 msgid "Normal font:" msgstr "Κανονική γραμματοσειρά:" #: ../src/propgrid/props.cpp:887 #, fuzzy, c-format msgid "Not %s" msgstr "&Περί..." #: ../include/wx/filename.h:586 ../include/wx/filename.h:591 #, fuzzy msgid "Not available" msgstr "Δεν υπάρχει μονάδα(facility) XBM διαθέσιμη!" #: ../src/richtext/richtextfontpage.cpp:340 #, fuzzy msgid "Not underlined" msgstr "υπογεγραμμένο" #: ../src/common/paper.cpp:116 msgid "Note, 8 1/2 x 11 in" msgstr "Σημείωμα, 8 1/2 x 11 ίντσες" #: ../src/generic/notifmsgg.cpp:104 #, fuzzy msgid "Notice" msgstr "&Όχι" #: ../src/osx/carbon/dataview.cpp:902 #, fuzzy msgid "Number of columns could not be determined." msgstr "Το αρχείο δεν μπόρεσε να φορτωθεί." #: ../src/richtext/richtextliststylepage.cpp:487 #: ../src/richtext/richtextbulletspage.cpp:292 msgid "Numbered outline" msgstr "" #: ../include/wx/msgdlg.h:273 ../src/richtext/richtextstyledlg.cpp:297 #: ../src/common/stockitem.cpp:178 ../src/msw/msgdlg.cpp:489 #: ../src/msw/msgdlg.cpp:799 ../src/msw/dialog.cpp:120 #: ../src/gtk1/fontdlg.cpp:138 msgid "OK" msgstr "OK" #: ../src/msw/ole/automtn.cpp:681 #, c-format msgid "OLE Automation error in %s: %s" msgstr "" #: ../include/wx/richtext/richtextimagedlg.h:39 #, fuzzy msgid "Object Properties" msgstr "&Ιδιότητες" #: ../src/msw/ole/automtn.cpp:649 msgid "Object implementation does not support named arguments." msgstr "" #: ../src/common/xtixml.cpp:264 msgid "Objects must have an id attribute" msgstr "Τα αντικείμενα πρέπει να έχουν ένα χαρακτηριστικό id" #: ../src/common/docview.cpp:1755 ../src/common/docview.cpp:1797 msgid "Open File" msgstr "Ανοιγμα Αρχείου" #: ../src/html/helpwnd.cpp:684 ../src/html/helpwnd.cpp:1557 msgid "Open HTML document" msgstr "’νοιγμα εγγράφου HTML" #: ../src/generic/dbgrptg.cpp:163 #, fuzzy, c-format msgid "Open file \"%s\"" msgstr "Ανοιγμα Αρχείου" #: ../src/common/stockitem.cpp:179 #, fuzzy msgid "Open..." msgstr "&Ανοιγμα..." #: ../src/osx/carbon/glcanvas.cpp:48 #, c-format msgid "OpenGL function \"%s\" failed: %s (error %d)" msgstr "" #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:821 msgid "Operation not permitted." msgstr "Λειτουργία δεν ειπιτρέπετε." #: ../src/common/cmdline.cpp:735 #, fuzzy, c-format msgid "Option '%s' can't be negated" msgstr "Δεν ήταν δυνατή η δημιουργία του καταλόγου '%s'" #: ../src/common/cmdline.cpp:899 #, c-format msgid "Option '%s' requires a value." msgstr "Η επιλογή '%s' απαιτεί μια τιμή." #: ../src/common/cmdline.cpp:982 #, c-format msgid "Option '%s': '%s' cannot be converted to a date." msgstr "Επιλογή '%s': το '%s' δεν μπροει να μετατραπει σε ημερομηνία." #: ../src/generic/dirdlgg.cpp:187 ../src/generic/prntdlgg.cpp:618 msgid "Options" msgstr "Επιλογές" #: ../src/generic/prntdlgg.cpp:615 ../src/generic/prntdlgg.cpp:869 msgid "Orientation" msgstr "Προσανατολισμός" #: ../src/common/windowid.cpp:259 msgid "Out of window IDs. Recommend shutting down application." msgstr "" #: ../src/richtext/richtextborderspage.cpp:400 #: ../src/richtext/richtextborderspage.cpp:533 msgid "Outline" msgstr "" #: ../src/richtext/richtextborderspage.cpp:550 msgid "Outset" msgstr "" #: ../src/msw/ole/automtn.cpp:645 msgid "Overflow while coercing argument values." msgstr "" #: ../src/common/accelcmn.cpp:84 msgid "PAGEDOWN" msgstr "" #: ../src/common/accelcmn.cpp:83 msgid "PAGEUP" msgstr "" #: ../src/common/accelcmn.cpp:69 msgid "PAUSE" msgstr "" #: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:480 msgid "PCX: couldn't allocate memory" msgstr "PCX: Δεν ήταν δυνατή η δέσμευση μνήμης" #: ../src/common/imagpcx.cpp:456 msgid "PCX: image format unsupported" msgstr "PCX: μορφή εικόνας δεν υποστηρίζεται" #: ../src/common/imagpcx.cpp:479 msgid "PCX: invalid image" msgstr "PCX: λανθασμένη εικόνα" #: ../src/common/imagpcx.cpp:442 msgid "PCX: this is not a PCX file." msgstr "PCX: αυτό δεν είναι αρχείο PCX." #: ../src/common/imagpcx.cpp:459 ../src/common/imagpcx.cpp:481 msgid "PCX: unknown error !!!" msgstr "PCX: άγνωστο σφάλμα !!!" #: ../src/common/imagpcx.cpp:458 msgid "PCX: version number too low" msgstr "PCX: αριθμός έκδοσης πολύ χαμηλός" #: ../src/common/accelcmn.cpp:55 msgid "PGDN" msgstr "" #: ../src/common/accelcmn.cpp:54 msgid "PGUP" msgstr "" #: ../src/common/imagpnm.cpp:91 msgid "PNM: Couldn't allocate memory." msgstr "PNM: Δεν ήταν δυνατή η δέσμευση μνήμης." #: ../src/common/imagpnm.cpp:73 msgid "PNM: File format is not recognized." msgstr "PNM: Η μορφή αρχείου δεν αναγνωρίζεται." #: ../src/common/imagpnm.cpp:112 ../src/common/imagpnm.cpp:134 #: ../src/common/imagpnm.cpp:156 msgid "PNM: File seems truncated." msgstr "PNM: Το αρχείο μοιάζει να είναι αποκομμένο." #: ../src/common/paper.cpp:188 msgid "PRC 16K 146 x 215 mm" msgstr "" #: ../src/common/paper.cpp:201 msgid "PRC 16K Rotated" msgstr "" #: ../src/common/paper.cpp:189 msgid "PRC 32K 97 x 151 mm" msgstr "" #: ../src/common/paper.cpp:202 msgid "PRC 32K Rotated" msgstr "" #: ../src/common/paper.cpp:190 msgid "PRC 32K(Big) 97 x 151 mm" msgstr "" #: ../src/common/paper.cpp:203 msgid "PRC 32K(Big) Rotated" msgstr "" #: ../src/common/paper.cpp:191 #, fuzzy msgid "PRC Envelope #1 102 x 165 mm" msgstr "C6 Φάκελος, 114 x 162 mm" #: ../src/common/paper.cpp:204 #, fuzzy msgid "PRC Envelope #1 Rotated 165 x 102 mm" msgstr "C6 Φάκελος, 114 x 162 mm" #: ../src/common/paper.cpp:200 #, fuzzy msgid "PRC Envelope #10 324 x 458 mm" msgstr "C3 Φάκελος, 324 x 458 mm" #: ../src/common/paper.cpp:213 #, fuzzy msgid "PRC Envelope #10 Rotated 458 x 324 mm" msgstr "C4 Φάκελος, 229 x 324 mm" #: ../src/common/paper.cpp:192 #, fuzzy msgid "PRC Envelope #2 102 x 176 mm" msgstr "C6 Φάκελος, 114 x 162 mm" #: ../src/common/paper.cpp:205 #, fuzzy msgid "PRC Envelope #2 Rotated 176 x 102 mm" msgstr "B6 Φάκελος, 176 x 125 mm" #: ../src/common/paper.cpp:193 #, fuzzy msgid "PRC Envelope #3 125 x 176 mm" msgstr "C6 Φάκελος, 114 x 162 mm" #: ../src/common/paper.cpp:206 #, fuzzy msgid "PRC Envelope #3 Rotated 176 x 125 mm" msgstr "B6 Φάκελος, 176 x 125 mm" #: ../src/common/paper.cpp:194 #, fuzzy msgid "PRC Envelope #4 110 x 208 mm" msgstr "Φάκελος DL, 110 x 220 mm" #: ../src/common/paper.cpp:207 #, fuzzy msgid "PRC Envelope #4 Rotated 208 x 110 mm" msgstr "C6 Φάκελος, 114 x 162 mm" #: ../src/common/paper.cpp:195 #, fuzzy msgid "PRC Envelope #5 110 x 220 mm" msgstr "Φάκελος DL, 110 x 220 mm" #: ../src/common/paper.cpp:208 #, fuzzy msgid "PRC Envelope #5 Rotated 220 x 110 mm" msgstr "C4 Φάκελος, 229 x 324 mm" #: ../src/common/paper.cpp:196 #, fuzzy msgid "PRC Envelope #6 120 x 230 mm" msgstr "C5 Φάκελος, 162 x 229 mm" #: ../src/common/paper.cpp:209 #, fuzzy msgid "PRC Envelope #6 Rotated 230 x 120 mm" msgstr "C5 Φάκελος, 162 x 229 mm" #: ../src/common/paper.cpp:197 #, fuzzy msgid "PRC Envelope #7 160 x 230 mm" msgstr "B5 Φάκελος, 176 x 250 mm" #: ../src/common/paper.cpp:210 #, fuzzy msgid "PRC Envelope #7 Rotated 230 x 160 mm" msgstr "C6 Φάκελος, 114 x 162 mm" #: ../src/common/paper.cpp:198 #, fuzzy msgid "PRC Envelope #8 120 x 309 mm" msgstr "C5 Φάκελος, 162 x 229 mm" #: ../src/common/paper.cpp:211 #, fuzzy msgid "PRC Envelope #8 Rotated 309 x 120 mm" msgstr "C4 Φάκελος, 229 x 324 mm" #: ../src/common/paper.cpp:199 #, fuzzy msgid "PRC Envelope #9 229 x 324 mm" msgstr "C4 Φάκελος, 229 x 324 mm" #: ../src/common/paper.cpp:212 #, fuzzy msgid "PRC Envelope #9 Rotated 324 x 229 mm" msgstr "C5 Φάκελος, 162 x 229 mm" #: ../src/common/accelcmn.cpp:72 msgid "PRINT" msgstr "" #: ../src/richtext/richtextmarginspage.cpp:286 #, fuzzy msgid "Padding" msgstr "γίνεται ανάγνωση" #: ../src/common/prntbase.cpp:2044 #, c-format msgid "Page %d" msgstr "Σελίδα %d" #: ../src/common/prntbase.cpp:2042 #, c-format msgid "Page %d of %d" msgstr "Σελίδα %d από %d" #: ../src/gtk/print.cpp:774 msgid "Page Setup" msgstr "Οργάνωση(setup) Σελίδας" #: ../src/generic/prntdlgg.cpp:828 ../src/common/prntbase.cpp:467 msgid "Page setup" msgstr "Ρύθμιση(setup) Σελίδας" #: ../src/generic/prntdlgg.cpp:216 msgid "Pages" msgstr "Σελίδες" #: ../src/generic/prntdlgg.cpp:602 ../src/generic/prntdlgg.cpp:801 #: ../src/generic/prntdlgg.cpp:842 ../src/generic/prntdlgg.cpp:855 #: ../src/generic/prntdlgg.cpp:1052 ../src/generic/prntdlgg.cpp:1057 msgid "Paper size" msgstr "Μέγεθος χαρτιού" #: ../src/richtext/richtextstyles.cpp:1058 msgid "Paragraph styles" msgstr "" #: ../src/common/xtistrm.cpp:469 msgid "Passing a already registered object to SetObject" msgstr "Δόθηκε ένα ήδη registered αντικείμενο στην SetObject" #: ../src/common/xtistrm.cpp:480 #, fuzzy msgid "Passing an unknown object to GetObject" msgstr "Δόθηκε ένα άγνωστο αντικείμενο στην GetObject" #: ../src/richtext/richtextctrl.cpp:3117 ../src/common/stockitem.cpp:180 #: ../src/stc/stc_i18n.cpp:19 #, fuzzy msgid "Paste" msgstr "&Επικόληση" #: ../src/common/stockitem.cpp:262 #, fuzzy msgid "Paste selection" msgstr "Τμήματα" #: ../src/richtext/richtextliststylepage.cpp:222 #: ../src/richtext/richtextbulletspage.cpp:172 msgid "Peri&od" msgstr "" #: ../src/generic/filectrlg.cpp:465 msgid "Permissions" msgstr "Δικαιώματα" #: ../src/richtext/richtextbuffer.cpp:11942 #, fuzzy msgid "Picture Properties" msgstr "&Ιδιότητες" #: ../include/wx/unix/pipe.h:47 msgid "Pipe creation failed" msgstr "Δημιουργία pipe απέτυχε" #: ../src/gtk1/fontdlg.cpp:74 msgid "Please choose a valid font." msgstr "Παρακαλώ επιλέξτε μία αποδεκτή γραμματοσειρά." #: ../src/gtk/filedlg.cpp:72 msgid "Please choose an existing file." msgstr "Παρακλώ επιλέξτε ένα υπάρχον αρχείο." #: ../src/html/helpwnd.cpp:813 msgid "Please choose the page to display:" msgstr "Παρακλώ επιλέξτε την σελίδα για απεικόνιση:" #: ../src/msw/dialup.cpp:785 msgid "Please choose which ISP do you want to connect to" msgstr "" "Παρακαλώ επιλέξτε τον παροχέα υπηρεσιών Internet (ISP) με τον οποίο θέλετε " "να συνδεθείτε" #: ../src/msw/listctrl.cpp:372 #, c-format msgid "" "Please install a newer version of comctl32.dll\n" "(at least version 4.70 is required but you have %d.%02d)\n" "or this program won't operate correctly." msgstr "" "Παρακαλώ εγκαταστήστε μια νεότερη έκδοση του comctl32.dll\n" "(η ελάχιστη απαραίτητη έκδοση είναι η 4.70 αλλά εσείς έχετε την %d.%02d)\n" "διαφορετικά αυτό το πρόγραμμα δεν θα λειτουργήσει κανονικά." #: ../src/common/headerctrlcmn.cpp:59 msgid "Please select the columns to show and define their order:" msgstr "" #: ../src/common/prntbase.cpp:521 #, fuzzy msgid "Please wait while printing..." msgstr "Παρακαλώ περιμένετε όσο διαρκεί η εκτύπωση\n" #: ../src/propgrid/advprops.cpp:631 #, fuzzy msgid "Point Size" msgstr "Μέγεθος κουκίδας:" #: ../src/osx/carbon/dataview.cpp:1278 ../src/osx/carbon/dataview.cpp:1329 #: ../src/osx/carbon/dataview.cpp:1420 ../src/osx/carbon/dataview.cpp:1443 #: ../src/osx/carbon/dataview.cpp:1460 ../src/osx/carbon/dataview.cpp:1477 #: ../src/osx/carbon/dataview.cpp:1670 ../src/osx/carbon/dataview.cpp:1779 #: ../src/osx/carbon/dataview.cpp:1821 ../src/osx/carbon/dataview.cpp:1874 #: ../src/osx/carbon/dataview.cpp:1997 msgid "Pointer to data view control not set correctly." msgstr "" #: ../src/osx/carbon/dataview.cpp:1279 ../src/osx/carbon/dataview.cpp:1338 #: ../src/osx/carbon/dataview.cpp:1421 ../src/osx/carbon/dataview.cpp:1478 #: ../src/osx/carbon/dataview.cpp:1671 ../src/osx/carbon/dataview.cpp:1780 #: ../src/osx/carbon/dataview.cpp:1822 ../src/osx/carbon/dataview.cpp:1875 #: ../src/osx/carbon/dataview.cpp:1998 msgid "Pointer to model not set correctly." msgstr "" #: ../src/generic/prntdlgg.cpp:612 ../src/generic/prntdlgg.cpp:867 msgid "Portrait" msgstr "Πορτραίτο" #: ../src/richtext/richtextsizepage.cpp:496 #, fuzzy msgid "Position" msgstr "Ερώτημα" #: ../src/generic/prntdlgg.cpp:298 msgid "PostScript file" msgstr "Αρχείο PostScript" #: ../src/common/stockitem.cpp:181 #, fuzzy msgid "Preferences" msgstr "&Προτιμήσεις" #: ../src/osx/menu_osx.cpp:643 #, fuzzy msgid "Preferences..." msgstr "&Προτιμήσεις" #: ../src/common/prntbase.cpp:529 msgid "Preparing" msgstr "" #: ../src/generic/fontdlgg.cpp:455 ../src/osx/carbon/fontdlg.cpp:576 #: ../src/html/helpwnd.cpp:1235 msgid "Preview:" msgstr "Προεπισκόπηση:" #: ../src/common/prntbase.cpp:1523 ../src/html/helpwnd.cpp:677 msgid "Previous page" msgstr "Προηγούμενη σελίδα" #: ../src/generic/prntdlgg.cpp:143 ../src/generic/prntdlgg.cpp:157 #: ../src/common/prntbase.cpp:409 ../src/common/prntbase.cpp:1511 #: ../src/gtk/print.cpp:584 ../src/gtk/print.cpp:597 msgid "Print" msgstr "Εκτύπωση" #: ../include/wx/prntbase.h:395 ../src/common/docview.cpp:1250 msgid "Print Preview" msgstr "Προεπισκόπηση Εκτύπωσης" #: ../src/common/prntbase.cpp:1985 ../src/common/prntbase.cpp:2027 #: ../src/common/prntbase.cpp:2035 msgid "Print Preview Failure" msgstr "Αποτυχία Προεπισκόπησης Εκτύπωσης" #: ../src/generic/prntdlgg.cpp:224 msgid "Print Range" msgstr "Εύρος εκτύπωσης" #: ../src/generic/prntdlgg.cpp:449 msgid "Print Setup" msgstr "Οργάνωση(setup) Εκτύπωσης" #: ../src/generic/prntdlgg.cpp:621 msgid "Print in colour" msgstr "Εγχρωμη εκτύπωση" #: ../src/common/stockitem.cpp:182 #, fuzzy msgid "Print previe&w..." msgstr "Π&ροεπισκόπηση εκτύπωσης" #: ../src/common/docview.cpp:1244 #, fuzzy msgid "Print preview creation failed." msgstr "Δημιουργία pipe απέτυχε" #: ../src/common/stockitem.cpp:182 #, fuzzy msgid "Print preview..." msgstr "Προεπισκόπηση εκτύπωσης" #: ../src/generic/prntdlgg.cpp:630 msgid "Print spooling" msgstr "Spooling εκτύπωσης" #: ../src/html/helpwnd.cpp:688 msgid "Print this page" msgstr "Εκτύπωση αυτής της σελίδας" #: ../src/generic/prntdlgg.cpp:185 msgid "Print to File" msgstr "Εκτύπωση σε Αρχείο" #: ../src/common/stockitem.cpp:183 #, fuzzy msgid "Print..." msgstr "&Εκτύπωση..." #: ../src/generic/prntdlgg.cpp:493 msgid "Printer" msgstr "Εκτυπωτής" #: ../src/generic/prntdlgg.cpp:633 msgid "Printer command:" msgstr "Εντολή εκτυπωτή:" #: ../src/generic/prntdlgg.cpp:180 msgid "Printer options" msgstr "Επιλογές εκτυπωτή" #: ../src/generic/prntdlgg.cpp:645 msgid "Printer options:" msgstr "Επιλογές εκτυπωτή:" #: ../src/generic/prntdlgg.cpp:916 msgid "Printer..." msgstr "Εκτυπωτής..." #: ../src/generic/prntdlgg.cpp:196 msgid "Printer:" msgstr "Εκτυπωτής:" #: ../include/wx/richtext/richtextprint.h:163 ../src/common/prntbase.cpp:518 #: ../src/html/htmprint.cpp:277 #, fuzzy msgid "Printing" msgstr "Γίνεται εκτύπωση του " #: ../src/common/prntbase.cpp:586 msgid "Printing " msgstr "Γίνεται εκτύπωση του " #: ../src/common/prntbase.cpp:330 msgid "Printing Error" msgstr "Σφάλμα Εκτύπωσης" #: ../src/common/prntbase.cpp:544 #, fuzzy, c-format msgid "Printing page %d of %d" msgstr "Γίνεται εκτύπωση σελίδας %d..." #: ../src/generic/printps.cpp:201 #, c-format msgid "Printing page %d..." msgstr "Γίνεται εκτύπωση σελίδας %d..." #: ../src/generic/printps.cpp:161 msgid "Printing..." msgstr "Γίνεται εκτύπωση..." #: ../include/wx/richtext/richtextprint.h:109 ../include/wx/prntbase.h:263 #: ../src/common/docview.cpp:2124 #, fuzzy msgid "Printout" msgstr "Εκτύπωση" #: ../src/common/debugrpt.cpp:565 #, c-format msgid "" "Processing debug report has failed, leaving the files in \"%s\" directory." msgstr "" #: ../src/osx/carbon/dataview.cpp:2472 msgid "Progress renderer cannot render value type; value type: " msgstr "" #: ../src/common/prntbase.cpp:528 msgid "Progress:" msgstr "" #: ../src/common/stockitem.cpp:184 #, fuzzy msgid "Properties" msgstr "&Ιδιότητες" #: ../src/propgrid/manager.cpp:237 #, fuzzy msgid "Property" msgstr "&Ιδιότητες" #: ../src/propgrid/propgrid.cpp:3144 ../src/propgrid/propgrid.cpp:3276 #, fuzzy msgid "Property Error" msgstr "Σφάλμα Εκτύπωσης" #: ../src/common/paper.cpp:113 msgid "Quarto, 215 x 275 mm" msgstr "Quarto, 215 x 275 mm" #: ../src/generic/logg.cpp:1036 msgid "Question" msgstr "Ερώτημα" #: ../src/common/stockitem.cpp:156 #, fuzzy msgid "Quit" msgstr "Έ&ξοδος" #: ../src/osx/menu_osx.cpp:610 ../src/osx/menu_osx.cpp:657 #, fuzzy, c-format msgid "Quit %s" msgstr "Έ&ξοδος" #: ../src/common/stockitem.cpp:263 #, fuzzy msgid "Quit this program" msgstr "Εκτύπωση αυτής της σελίδας" #: ../src/common/accelcmn.cpp:53 msgid "RETURN" msgstr "" #: ../src/common/accelcmn.cpp:57 msgid "RIGHT" msgstr "" #: ../src/common/accelcmn.cpp:327 #, fuzzy msgid "RawCtrl+" msgstr "ctrl" #: ../src/common/ffile.cpp:113 ../src/common/ffile.cpp:134 #, c-format msgid "Read error on file '%s'" msgstr "Λάθος ανάγνωσης στο αρχείο '%s'" #: ../src/common/prntbase.cpp:257 msgid "Ready" msgstr "Έτοιμο" #: ../src/common/stockitem.cpp:185 ../src/stc/stc_i18n.cpp:16 #, fuzzy msgid "Redo" msgstr "&Επανάληψη" #: ../src/common/stockitem.cpp:264 msgid "Redo last action" msgstr "" #: ../src/common/stockitem.cpp:186 msgid "Refresh" msgstr "Ανανέωση" #: ../src/msw/registry.cpp:625 #, c-format msgid "Registry key '%s' already exists." msgstr "Το κλειδί μητρώου '%s' υπάρχει ήδη." #: ../src/msw/registry.cpp:594 #, c-format msgid "Registry key '%s' does not exist, cannot rename it." msgstr "Το κλειδί μητρώου '%s' δεν υπάρχει, αδύνατη η μετονομασία του." #: ../src/msw/registry.cpp:726 #, c-format msgid "" "Registry key '%s' is needed for normal system operation,\n" "deleting it will leave your system in unusable state:\n" "operation aborted." msgstr "" "Το αρχείο μητρώου '%s' χρειάζεται για την κανονική λειτουργία του " "συστήματος,\n" "διαγράφοντάς το θα αφήσει το σύστημά σας σε κατάσταση αχρηστίας:\n" "η λειτουργία ματαιώθηκε." #: ../src/msw/registry.cpp:520 #, c-format msgid "Registry value '%s' already exists." msgstr "Η τιμή μητρώου '%s' υπάρχει ήδη." #: ../src/richtext/richtextfontpage.cpp:332 #: ../src/richtext/richtextfontpage.cpp:336 msgid "Regular" msgstr "" #: ../src/richtext/richtextsizepage.cpp:519 #, fuzzy msgid "Relative" msgstr "Διακοσμητικός" #: ../src/generic/helpext.cpp:462 msgid "Relevant entries:" msgstr "Σχετικές εγγραφές:" #: ../include/wx/generic/progdlgg.h:86 #, fuzzy msgid "Remaining time:" msgstr "Xρόνος που απομένει : " #: ../src/common/stockitem.cpp:187 msgid "Remove" msgstr "Απομάκρυνση" #: ../src/richtext/richtextctrl.cpp:1430 #, fuzzy msgid "Remove Bullet" msgstr "Απομάκρυνση" #: ../src/html/helpwnd.cpp:440 msgid "Remove current page from bookmarks" msgstr "Αφαίρεση τρέχουσας σελίδας από τους σελιδοδείκτες" #: ../src/common/rendcmn.cpp:194 #, c-format msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded." msgstr "" "Ο Renderer \"%s\" είναι σε ασύμβατη έκδοση %d.%d και δεν μπορεί να φορτωθεί." #: ../src/osx/carbon/dataview.cpp:1430 #, fuzzy msgid "Rendering failed." msgstr "Η δημιουργία timer απέτυχε." #: ../src/richtext/richtextbuffer.cpp:4214 msgid "Renumber List" msgstr "" #: ../src/common/stockitem.cpp:188 msgid "Rep&lace" msgstr "&Αντικατάσταση" #: ../src/richtext/richtextctrl.cpp:3277 ../src/common/stockitem.cpp:188 #, fuzzy msgid "Replace" msgstr "&Αντικατάσταση" #: ../src/generic/fdrepdlg.cpp:182 msgid "Replace &all" msgstr "Αντικατάσταση &Όλων" #: ../src/common/stockitem.cpp:261 #, fuzzy msgid "Replace selection" msgstr "Αντικατάσταση &Όλων" #: ../src/generic/fdrepdlg.cpp:124 msgid "Replace with:" msgstr "Αντικατάσταση με:" #: ../src/common/valtext.cpp:161 msgid "Required information entry is empty." msgstr "" #: ../src/common/translation.cpp:1966 #, fuzzy, c-format msgid "Resource '%s' is not a valid message catalog." msgstr "'%s' δεν είναι ένας σωστός κατάλογος μηνυμάτων." #: ../src/common/stockitem.cpp:189 msgid "Revert to Saved" msgstr "Επαναφορά από το αποθηκευμένο" #: ../src/richtext/richtextborderspage.cpp:548 #, fuzzy msgid "Ridge" msgstr "Απαλό(light)" #: ../src/richtext/richtextliststylepage.cpp:251 #: ../src/richtext/richtextbulletspage.cpp:201 #: ../src/richtext/richtextsizepage.cpp:250 #, fuzzy msgid "Right" msgstr "Απαλό(light)" #: ../src/generic/prntdlgg.cpp:892 msgid "Right margin (mm):" msgstr "Δεξί περιθώριο (mm):" #: ../src/richtext/richtextindentspage.cpp:148 #: ../src/richtext/richtextindentspage.cpp:150 #: ../src/richtext/richtextliststylepage.cpp:337 #: ../src/richtext/richtextliststylepage.cpp:339 msgid "Right-align text." msgstr "" #: ../src/generic/fontdlgg.cpp:322 msgid "Roman" msgstr "Ρωμαϊκό" #: ../src/richtext/richtextliststylepage.cpp:299 #: ../src/richtext/richtextbulletspage.cpp:252 msgid "S&tandard bullet name:" msgstr "" #: ../src/common/accelcmn.cpp:82 msgid "SCROLL_LOCK" msgstr "" #: ../src/common/accelcmn.cpp:71 msgid "SELECT" msgstr "" #: ../src/common/accelcmn.cpp:77 msgid "SEPARATOR" msgstr "" #: ../src/common/accelcmn.cpp:74 msgid "SNAPSHOT" msgstr "" #: ../src/common/accelcmn.cpp:62 msgid "SPACE" msgstr "" #: ../src/common/accelcmn.cpp:257 ../src/common/accelcmn.cpp:339 msgid "SPECIAL" msgstr "" #: ../src/common/accelcmn.cpp:78 msgid "SUBTRACT" msgstr "" #: ../src/common/stockitem.cpp:190 ../src/common/sizer.cpp:2678 msgid "Save" msgstr "Αποθήκευση" #: ../src/common/fldlgcmn.cpp:327 #, c-format msgid "Save %s file" msgstr "Αποθήκευση %s αρχείου" #: ../src/generic/logg.cpp:518 msgid "Save &As..." msgstr "Αποθήκευση &ως..." #: ../src/common/docview.cpp:360 msgid "Save As" msgstr "Αποθήκευση ως" #: ../src/common/stockitem.cpp:191 #, fuzzy msgid "Save as" msgstr "Αποθήκευση ως" #: ../src/common/stockitem.cpp:267 #, fuzzy msgid "Save current document" msgstr "Επιλέξτε μια προβολή εγγράφων" #: ../src/common/stockitem.cpp:268 msgid "Save current document with a different filename" msgstr "" #: ../src/generic/logg.cpp:518 msgid "Save log contents to file" msgstr "Αποθήκευση περιεχομένων καταγραφής(log) σε αρχείο" #: ../src/generic/fontdlgg.cpp:325 msgid "Script" msgstr "Χειρόγραφο(Script)" #: ../src/generic/srchctlg.cpp:67 ../src/html/helpwnd.cpp:548 #: ../src/html/helpwnd.cpp:563 msgid "Search" msgstr "Αναζήτηση" #: ../src/html/helpwnd.cpp:550 #, fuzzy msgid "" "Search contents of help book(s) for all occurrences of the text you typed " "above" msgstr "" "Αναζήτηση στα περιεχόμενα του/των βιβλίου/βιβλίων βοηθείας για όλες τις " "εμφανίσεις του κειμένου που γράψατε επάνω" #: ../src/generic/fdrepdlg.cpp:160 msgid "Search direction" msgstr "Κατεύθυνση αναζήτησης" #: ../src/generic/fdrepdlg.cpp:112 msgid "Search for:" msgstr "Αναζήτηση για:" #: ../src/html/helpwnd.cpp:1065 msgid "Search in all books" msgstr "Εύρεση σε όλα τα βιβλία" #: ../src/html/helpwnd.cpp:870 msgid "Searching..." msgstr "Γίνεται αναζήτηση..." #: ../src/generic/dirctrlg.cpp:546 msgid "Sections" msgstr "Τμήματα" #: ../src/common/ffile.cpp:220 #, c-format msgid "Seek error on file '%s'" msgstr "Λάθος ανίχνευσης (seek error) στο αρχείο '%s'." #: ../src/common/ffile.cpp:210 #, c-format msgid "Seek error on file '%s' (large files not supported by stdio)" msgstr "" #: ../src/richtext/richtextctrl.cpp:330 ../src/osx/textctrl_osx.cpp:587 #: ../src/common/stockitem.cpp:192 ../src/msw/textctrl.cpp:2288 msgid "Select &All" msgstr "Επιλογή &Ολων" #: ../src/common/stockitem.cpp:192 ../src/stc/stc_i18n.cpp:21 #, fuzzy msgid "Select All" msgstr "Επιλογή &Ολων" #: ../src/common/docview.cpp:1877 msgid "Select a document template" msgstr "Επιλέξτε ένα πρότυπα εγγράφου" #: ../src/common/docview.cpp:1951 msgid "Select a document view" msgstr "Επιλέξτε μια προβολή εγγράφων" #: ../src/richtext/richtextfontpage.cpp:235 #: ../src/richtext/richtextfontpage.cpp:237 msgid "Select regular or bold." msgstr "" #: ../src/richtext/richtextfontpage.cpp:222 #: ../src/richtext/richtextfontpage.cpp:224 msgid "Select regular or italic style." msgstr "" #: ../src/richtext/richtextfontpage.cpp:248 #: ../src/richtext/richtextfontpage.cpp:250 msgid "Select underlining or no underlining." msgstr "" #: ../src/motif/filedlg.cpp:220 #, fuzzy msgid "Selection" msgstr "Τμήματα" #: ../src/richtext/richtextliststylepage.cpp:187 #: ../src/richtext/richtextliststylepage.cpp:189 msgid "Selects the list level to edit." msgstr "" #: ../src/common/cmdline.cpp:918 #, c-format msgid "Separator expected after the option '%s'." msgstr "Αναμενόταν διαχωριστικό μετά την επιλογή '%s'." #: ../src/richtext/richtextbuffer.cpp:10513 #, fuzzy msgid "Set Cell Style" msgstr "Διαγραφή στοιχείου" #: ../include/wx/xtiprop.h:179 msgid "SetProperty called w/o valid setter" msgstr "Η SetProperty κλήθηκε χωρίς έγκυρο θέτη" #: ../src/common/filename.cpp:2632 msgid "Setting directory access times is not supported under this OS version" msgstr "" #: ../src/generic/prntdlgg.cpp:188 msgid "Setup..." msgstr "Ρυθμίσεις..." #: ../src/msw/dialup.cpp:563 msgid "Several active dialup connections found, choosing one randomly." msgstr "" "Βρέθηκαν πολλαπλές ενεργές τηλεφωνικές συνδέσεις, γίνεται τυχαία επιλογή " "μίας." #: ../src/common/accelcmn.cpp:324 #, fuzzy msgid "Shift+" msgstr "shift" #: ../src/generic/dirdlgg.cpp:170 #, fuzzy msgid "Show &hidden directories" msgstr "Εμφάνιση κρυφών καταλόγων" #: ../src/generic/filectrlg.cpp:1003 #, fuzzy msgid "Show &hidden files" msgstr "Εμφάνιση κρυφών αρχείων." #: ../src/osx/menu_osx.cpp:605 ../src/osx/menu_osx.cpp:652 #, fuzzy msgid "Show All" msgstr "Εμφάνιση όλων" #: ../src/common/stockitem.cpp:257 msgid "Show about dialog" msgstr "" #: ../src/html/helpwnd.cpp:502 msgid "Show all" msgstr "Εμφάνιση όλων" #: ../src/html/helpwnd.cpp:513 msgid "Show all items in index" msgstr "Εμφάνιση όλων των στοιχείων στο ευρετήριο" #: ../src/generic/dirdlgg.cpp:105 msgid "Show hidden directories" msgstr "Εμφάνιση κρυφών καταλόγων" #: ../src/html/helpwnd.cpp:671 msgid "Show/hide navigation panel" msgstr "Εμφλανιση/Κρύψιμο πλαίσιο πλοήγησης (navigation panel)" #: ../src/richtext/richtextsymboldlg.cpp:421 #: ../src/richtext/richtextsymboldlg.cpp:423 msgid "Shows a Unicode subset." msgstr "" #: ../src/richtext/richtextliststylepage.cpp:472 #: ../src/richtext/richtextliststylepage.cpp:474 #: ../src/richtext/richtextbulletspage.cpp:276 #: ../src/richtext/richtextbulletspage.cpp:278 msgid "Shows a preview of the bullet settings." msgstr "" #: ../src/richtext/richtextfontpage.cpp:322 #: ../src/richtext/richtextfontpage.cpp:324 msgid "Shows a preview of the font settings." msgstr "" #: ../src/osx/carbon/fontdlg.cpp:580 ../src/osx/carbon/fontdlg.cpp:582 msgid "Shows a preview of the font." msgstr "" #: ../src/richtext/richtextindentspage.cpp:303 #: ../src/richtext/richtextindentspage.cpp:305 msgid "Shows a preview of the paragraph settings." msgstr "" #: ../src/generic/fontdlgg.cpp:460 ../src/generic/fontdlgg.cpp:462 msgid "Shows the font preview." msgstr "Εμφανίζει την προεπισκόπηση της γραμματοσειράς" #: ../src/univ/themes/mono.cpp:516 msgid "Simple monochrome theme" msgstr "" #: ../src/richtext/richtextindentspage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:449 msgid "Single" msgstr "" #: ../src/generic/filectrlg.cpp:460 ../src/richtext/richtextformatdlg.cpp:356 #: ../src/richtext/richtextsizepage.cpp:299 msgid "Size" msgstr "Μέγεθος" #: ../src/osx/carbon/fontdlg.cpp:525 #, fuzzy msgid "Size:" msgstr "Μέγεθος" #: ../src/generic/progdlgg.cpp:262 ../src/generic/progdlgg.cpp:773 #: ../src/msw/progdlg.cpp:801 msgid "Skip" msgstr "Παράλειψη" #: ../src/generic/fontdlgg.cpp:330 msgid "Slant" msgstr "Κλήση" #: ../src/richtext/richtextfontpage.cpp:298 msgid "Small C&apitals" msgstr "" #: ../src/richtext/richtextborderspage.cpp:543 #, fuzzy msgid "Solid" msgstr "Έντονο" #: ../src/common/docview.cpp:1773 msgid "Sorry, could not open this file." msgstr "Συγγνώμη, δεν μπόρεσε να ανοιχθεί αυτό το αρχείο." #: ../src/common/prntbase.cpp:2027 ../src/common/prntbase.cpp:2035 msgid "Sorry, not enough memory to create a preview." msgstr "Συγγνώμη, δεν υπάρχει αρκετή μνήμη για την δημιουργία προεπισκόπησης." #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "Sorry, that name is taken. Please choose another." msgstr "" #: ../src/common/docview.cpp:1796 msgid "Sorry, the format for this file is unknown." msgstr "Συγγνώμη, η μορφή αυτού του αρχείου είναι άγνωστη." #: ../src/unix/sound.cpp:492 msgid "Sound data are in unsupported format." msgstr "Τα δεδομένα ήχου είναι σε μη υποστηριζόμενη μορφή." #: ../src/unix/sound.cpp:477 #, c-format msgid "Sound file '%s' is in unsupported format." msgstr "Το αρχείο '%s' είναι σε μη υποστηριζόμενη μορφή." #: ../src/richtext/richtextliststylepage.cpp:467 #, fuzzy msgid "Spacing" msgstr "Γίνεται αναζήτηση..." #: ../src/common/stockitem.cpp:197 msgid "Spell Check" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:490 #: ../src/richtext/richtextbulletspage.cpp:295 msgid "Standard" msgstr "" #: ../src/common/paper.cpp:105 msgid "Statement, 5 1/2 x 8 1/2 in" msgstr "Δήλωση, 5 1/2 x 8 1/2 ίντσες" #: ../src/richtext/richtextsizepage.cpp:518 #: ../src/richtext/richtextsizepage.cpp:523 #, fuzzy msgid "Static" msgstr "Κατάσταση: " #: ../src/generic/prntdlgg.cpp:204 msgid "Status:" msgstr "Κατάσταση: " #: ../src/common/stockitem.cpp:198 #, fuzzy msgid "Stop" msgstr "&Διακοπή" #: ../src/common/stockitem.cpp:199 msgid "Strikethrough" msgstr "" #: ../src/common/colourcmn.cpp:45 #, c-format msgid "String To Colour : Incorrect colour specification : %s" msgstr "String To Colour : Λανθασμένος καθορισμός χρώματος: %s" #: ../src/richtext/richtextformatdlg.cpp:318 ../src/propgrid/advprops.cpp:647 #, fuzzy msgid "Style" msgstr "&Στυλ:" #: ../include/wx/richtext/richtextstyledlg.h:47 msgid "Style Organiser" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:534 #, fuzzy msgid "Style:" msgstr "&Στυλ:" #: ../src/richtext/richtextfontpage.cpp:312 #, fuzzy msgid "Subscrip&t" msgstr "Χειρόγραφο(Script)" #: ../src/richtext/richtextfontpage.cpp:305 #, fuzzy msgid "Supe&rscript" msgstr "Χειρόγραφο(Script)" #: ../src/common/paper.cpp:151 msgid "SuperA/SuperA/A4 227 x 356 mm" msgstr "" #: ../src/common/paper.cpp:152 msgid "SuperB/SuperB/A3 305 x 487 mm" msgstr "" #: ../src/generic/fontdlgg.cpp:326 msgid "Swiss" msgstr "Ελβετικό(Swiss)" #: ../src/richtext/richtextliststylepage.cpp:488 #: ../src/richtext/richtextbulletspage.cpp:293 msgid "Symbol" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:288 #: ../src/richtext/richtextbulletspage.cpp:240 #, fuzzy msgid "Symbol &font:" msgstr "Κανονική γραμματοσειρά:" #: ../include/wx/richtext/richtextsymboldlg.h:47 #, fuzzy msgid "Symbols" msgstr "&Στυλ:" #: ../src/common/accelcmn.cpp:63 msgid "TAB" msgstr "" #: ../src/common/imagtiff.cpp:372 ../src/common/imagtiff.cpp:385 #: ../src/common/imagtiff.cpp:744 msgid "TIFF: Couldn't allocate memory." msgstr "TIFF: Αδύνατη η δέσμευση μνήμης." #: ../src/common/imagtiff.cpp:304 msgid "TIFF: Error loading image." msgstr "TIFF: Λάθος κατά την φόρτωση εικόνας." #: ../src/common/imagtiff.cpp:471 msgid "TIFF: Error reading image." msgstr "TIFF: Λάθος κατά την ανάγνωση εικόνας." #: ../src/common/imagtiff.cpp:611 msgid "TIFF: Error saving image." msgstr "TIFF: Λάθος κατά την αποθήκευση εικόνας." #: ../src/common/imagtiff.cpp:849 msgid "TIFF: Error writing image." msgstr "TIFF: Λάθος κατα την εγγραφή εικόνας." #: ../src/common/imagtiff.cpp:358 msgid "TIFF: Image size is abnormally big." msgstr "" #: ../src/richtext/richtextbuffer.cpp:10794 #, fuzzy msgid "Table Properties" msgstr "&Ιδιότητες" #: ../src/common/paper.cpp:146 #, fuzzy msgid "Tabloid Extra 11.69 x 18 in" msgstr "11 x 17 ίντσες" #: ../src/common/paper.cpp:103 msgid "Tabloid, 11 x 17 in" msgstr "11 x 17 ίντσες" #: ../src/richtext/richtextformatdlg.cpp:336 msgid "Tabs" msgstr "" #: ../src/generic/fontdlgg.cpp:327 msgid "Teletype" msgstr "Τηλέτυπο" #: ../src/common/docview.cpp:1878 msgid "Templates" msgstr "Πρότυπα" #: ../src/osx/carbon/dataview.cpp:2373 msgid "Text renderer cannot render value; value type: " msgstr "" #: ../src/common/fmapbase.cpp:158 msgid "Thai (ISO-8859-11)" msgstr "Ταϋλανδέζικο (ISO-8859-11)" #: ../src/common/ftp.cpp:620 msgid "The FTP server doesn't support passive mode." msgstr "" "Ο διακομιστής FTP δεν υποστηρίζει κατάσταση λειτουργίας(mode) 'passive'." #: ../src/common/ftp.cpp:606 msgid "The FTP server doesn't support the PORT command." msgstr "Ο διακομιστής FTP δεν υποστηρίζει την εντολή PORT." #: ../src/richtext/richtextliststylepage.cpp:215 #: ../src/richtext/richtextliststylepage.cpp:217 #: ../src/richtext/richtextbulletspage.cpp:164 #: ../src/richtext/richtextbulletspage.cpp:166 msgid "The available bullet styles." msgstr "" #: ../src/richtext/richtextstyledlg.cpp:202 #: ../src/richtext/richtextstyledlg.cpp:204 #, fuzzy msgid "The available styles." msgstr "Το στυλ της γραμματοσειράς." #: ../src/richtext/richtextbackgroundpage.cpp:139 #: ../src/richtext/richtextbackgroundpage.cpp:141 #, fuzzy msgid "The background colour." msgstr "Το χρώμα της γραμματοσειράς." #: ../src/richtext/richtextmarginspage.cpp:268 #: ../src/richtext/richtextmarginspage.cpp:270 #, fuzzy msgid "The bottom margin size." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextmarginspage.cpp:382 #: ../src/richtext/richtextmarginspage.cpp:384 #, fuzzy msgid "The bottom padding size." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextsizepage.cpp:639 #: ../src/richtext/richtextsizepage.cpp:641 #: ../src/richtext/richtextsizepage.cpp:653 #: ../src/richtext/richtextsizepage.cpp:655 #, fuzzy msgid "The bottom position." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextliststylepage.cpp:254 #: ../src/richtext/richtextliststylepage.cpp:256 #: ../src/richtext/richtextliststylepage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:277 #: ../src/richtext/richtextbulletspage.cpp:204 #: ../src/richtext/richtextbulletspage.cpp:206 #: ../src/richtext/richtextbulletspage.cpp:227 #: ../src/richtext/richtextbulletspage.cpp:229 msgid "The bullet character." msgstr "" #: ../src/richtext/richtextsymboldlg.cpp:443 #: ../src/richtext/richtextsymboldlg.cpp:445 msgid "The character code." msgstr "" #: ../src/common/fontmap.cpp:203 #, c-format msgid "" "The charset '%s' is unknown. You may select\n" "another charset to replace it with or choose\n" "[Cancel] if it cannot be replaced" msgstr "" "Το σύνολο χαρακτήρων (charset) '%s' είναι άγνωστο. Μπορείτε να επιλέξετε\n" "ένα άλλο σύνολο χαρακτήρων να το αντικαταστήσει ή διαλέξτε\n" "[Ακύρωση] εάν δεν μπορεί να αντικατασταθεί" #: ../src/msw/ole/dataobj.cpp:367 #, c-format msgid "The clipboard format '%d' doesn't exist." msgstr "O τύπος προχείρου(clipboard format) '%d' δεν υπάρχει." #: ../src/richtext/richtextstylepage.cpp:128 #: ../src/richtext/richtextstylepage.cpp:130 msgid "The default style for the next paragraph." msgstr "" #: ../src/generic/dirdlgg.cpp:231 #, c-format msgid "" "The directory '%s' does not exist\n" "Create it now?" msgstr "" "Ο κατάλογος '%s' δεν υπάρχει\n" "Να δημιουργηθεί τώρα;" #: ../src/html/htmprint.cpp:271 #, c-format msgid "" "The document \"%s\" doesn't fit on the page horizontally and will be " "truncated if printed.\n" "\n" "Would you like to proceed with printing it nevertheless?" msgstr "" #: ../src/common/docview.cpp:1184 #, c-format msgid "" "The file '%s' doesn't exist and couldn't be opened.\n" "It has been removed from the most recently used files list." msgstr "" "Το αρχείο '%s' δεν υπάρχει και δεν μπόρεσε να ανοιχτεί.\n" "Αφαιρέθηκε από την λίστα με τα πρόσφατα χρησιμοποιημένα αρχεία." #: ../src/richtext/richtextindentspage.cpp:208 #: ../src/richtext/richtextindentspage.cpp:210 #: ../src/richtext/richtextliststylepage.cpp:394 #: ../src/richtext/richtextliststylepage.cpp:396 #, fuzzy msgid "The first line indent." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/gtk/utilsgtk.cpp:427 msgid "The following standard GTK+ options are also supported:\n" msgstr "" #: ../src/generic/fontdlgg.cpp:414 ../src/generic/fontdlgg.cpp:416 msgid "The font colour." msgstr "Το χρώμα της γραμματοσειράς." #: ../src/generic/fontdlgg.cpp:375 ../src/generic/fontdlgg.cpp:377 msgid "The font family." msgstr "Η οικογένεια της γραμματοσειρας." #: ../src/richtext/richtextsymboldlg.cpp:405 #: ../src/richtext/richtextsymboldlg.cpp:407 msgid "The font from which to take the symbol." msgstr "" #: ../src/generic/fontdlgg.cpp:427 ../src/generic/fontdlgg.cpp:429 #: ../src/generic/fontdlgg.cpp:434 ../src/generic/fontdlgg.cpp:436 msgid "The font point size." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/osx/carbon/fontdlg.cpp:529 ../src/osx/carbon/fontdlg.cpp:531 #, fuzzy msgid "The font size in points." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextfontpage.cpp:190 #: ../src/richtext/richtextfontpage.cpp:192 #, fuzzy msgid "The font size units, points or pixels." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/generic/fontdlgg.cpp:386 ../src/generic/fontdlgg.cpp:388 msgid "The font style." msgstr "Το στυλ της γραμματοσειράς." #: ../src/generic/fontdlgg.cpp:397 ../src/generic/fontdlgg.cpp:399 msgid "The font weight." msgstr "Το βάρος της γραμματοσειράς." #: ../src/common/docview.cpp:1465 #, fuzzy, c-format msgid "The format of file '%s' couldn't be determined." msgstr "Δεν ήταν δυνατή η δημιουργία του καταλόγου '%s'" #: ../src/richtext/richtextindentspage.cpp:199 #: ../src/richtext/richtextindentspage.cpp:201 #: ../src/richtext/richtextliststylepage.cpp:385 #: ../src/richtext/richtextliststylepage.cpp:387 #, fuzzy msgid "The left indent." msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextmarginspage.cpp:195 #: ../src/richtext/richtextmarginspage.cpp:197 #, fuzzy msgid "The left margin size." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextmarginspage.cpp:309 #: ../src/richtext/richtextmarginspage.cpp:311 #, fuzzy msgid "The left padding size." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextsizepage.cpp:534 #: ../src/richtext/richtextsizepage.cpp:536 #: ../src/richtext/richtextsizepage.cpp:548 #: ../src/richtext/richtextsizepage.cpp:550 #, fuzzy msgid "The left position." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextindentspage.cpp:288 #: ../src/richtext/richtextindentspage.cpp:290 #: ../src/richtext/richtextliststylepage.cpp:462 #: ../src/richtext/richtextliststylepage.cpp:464 msgid "The line spacing." msgstr "" #: ../src/richtext/richtextbulletspage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:270 msgid "The list item number." msgstr "" #: ../src/msw/ole/automtn.cpp:653 msgid "The locale ID is unknown." msgstr "" #: ../src/richtext/richtextsizepage.cpp:366 #: ../src/richtext/richtextsizepage.cpp:368 #, fuzzy msgid "The object height." msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextsizepage.cpp:474 #: ../src/richtext/richtextsizepage.cpp:476 #, fuzzy msgid "The object maximum height." msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextsizepage.cpp:447 #: ../src/richtext/richtextsizepage.cpp:449 #, fuzzy msgid "The object maximum width." msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextsizepage.cpp:420 #: ../src/richtext/richtextsizepage.cpp:422 #, fuzzy msgid "The object minimum height." msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextsizepage.cpp:393 #: ../src/richtext/richtextsizepage.cpp:395 #, fuzzy msgid "The object minimum width." msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextsizepage.cpp:332 #: ../src/richtext/richtextsizepage.cpp:334 #, fuzzy msgid "The object width." msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextindentspage.cpp:227 #: ../src/richtext/richtextindentspage.cpp:229 #, fuzzy msgid "The outline level." msgstr "Εμφανίζει την προεπισκόπηση της γραμματοσειράς" #: ../src/common/log.cpp:281 #, c-format msgid "The previous message repeated %lu time." msgid_plural "The previous message repeated %lu times." msgstr[0] "" msgstr[1] "" #: ../src/common/log.cpp:274 msgid "The previous message repeated once." msgstr "" #: ../src/gtk/print.cpp:931 ../src/gtk/print.cpp:1114 msgid "The print dialog returned an error." msgstr "" #: ../src/richtext/richtextsymboldlg.cpp:462 #: ../src/richtext/richtextsymboldlg.cpp:464 msgid "The range to show." msgstr "" #: ../src/generic/dbgrptg.cpp:322 msgid "" "The report contains the files listed below. If any of these files contain " "private information,\n" "please uncheck them and they will be removed from the report.\n" msgstr "" #: ../src/common/cmdline.cpp:1083 #, c-format msgid "The required parameter '%s' was not specified." msgstr "Η απαραίτητη παράμετρος '%s' δεν προσδιορίστηκε." #: ../src/richtext/richtextindentspage.cpp:217 #: ../src/richtext/richtextindentspage.cpp:219 #: ../src/richtext/richtextliststylepage.cpp:403 #: ../src/richtext/richtextliststylepage.cpp:405 msgid "The right indent." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:220 #: ../src/richtext/richtextmarginspage.cpp:222 #, fuzzy msgid "The right margin size." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextmarginspage.cpp:334 #: ../src/richtext/richtextmarginspage.cpp:336 #, fuzzy msgid "The right padding size." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextsizepage.cpp:604 #: ../src/richtext/richtextsizepage.cpp:606 #: ../src/richtext/richtextsizepage.cpp:618 #: ../src/richtext/richtextsizepage.cpp:620 #, fuzzy msgid "The right position." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextindentspage.cpp:267 #: ../src/richtext/richtextliststylepage.cpp:439 #: ../src/richtext/richtextliststylepage.cpp:441 msgid "The spacing after the paragraph." msgstr "" #: ../src/richtext/richtextindentspage.cpp:257 #: ../src/richtext/richtextindentspage.cpp:259 #: ../src/richtext/richtextliststylepage.cpp:430 #: ../src/richtext/richtextliststylepage.cpp:432 msgid "The spacing before the paragraph." msgstr "" #: ../src/richtext/richtextstylepage.cpp:108 #: ../src/richtext/richtextstylepage.cpp:110 #, fuzzy msgid "The style name." msgstr "Το στυλ της γραμματοσειράς." #: ../src/richtext/richtextstylepage.cpp:118 #: ../src/richtext/richtextstylepage.cpp:120 msgid "The style on which this style is based." msgstr "" #: ../src/richtext/richtextstyledlg.cpp:214 #: ../src/richtext/richtextstyledlg.cpp:216 #, fuzzy msgid "The style preview." msgstr "Εμφανίζει την προεπισκόπηση της γραμματοσειράς" #: ../src/msw/ole/automtn.cpp:669 msgid "The system cannot find the file specified." msgstr "" #: ../src/richtext/richtexttabspage.cpp:118 #: ../src/richtext/richtexttabspage.cpp:120 #, fuzzy msgid "The tab position." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtexttabspage.cpp:124 #, fuzzy msgid "The tab positions." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextctrl.cpp:2705 msgid "The text couldn't be saved." msgstr "Το κείμενο δεν μπόρεσε να αποθυκευτεί." #: ../src/richtext/richtextmarginspage.cpp:243 #: ../src/richtext/richtextmarginspage.cpp:245 #, fuzzy msgid "The top margin size." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextmarginspage.cpp:357 #: ../src/richtext/richtextmarginspage.cpp:359 #, fuzzy msgid "The top padding size." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/richtext/richtextsizepage.cpp:569 #: ../src/richtext/richtextsizepage.cpp:571 #: ../src/richtext/richtextsizepage.cpp:583 #: ../src/richtext/richtextsizepage.cpp:585 #, fuzzy msgid "The top position." msgstr "Το μέγεθος κουκίδας γραμματοσειράς" #: ../src/common/cmdline.cpp:1061 #, c-format msgid "The value for the option '%s' must be specified." msgstr "Η τιμή για την επιλογή '%s' πρέπει να προσδιοριστεί," #: ../src/msw/dialup.cpp:452 #, fuzzy, c-format msgid "" "The version of remote access service (RAS) installed on this machine is too " "old, please upgrade (the following required function is missing: %s)." msgstr "" "Η εγκατεστημένη σε αυτό το μηχάνημα υπηρεσία απομακρυσμένης πρόσβασης " "(remote access service, RAS) είναι πολύ παλία, παρακαλώ αναβαθμίστε (η " "ακόλουθη απαραίτητη συνάρτηση λείπει: %s)." #: ../src/gtk/print.cpp:959 msgid "The wxGtkPrinterDC cannot be used." msgstr "" #: ../src/osx/carbon/dataview.cpp:1340 msgid "There is no column or renderer for the specified column index." msgstr "" #: ../src/richtext/richtextprint.cpp:614 ../src/html/htmprint.cpp:735 msgid "" "There was a problem during page setup: you may need to set a default printer." msgstr "" "Υπήρξε πρόβλημα κατά την διάρκεια οργάνωσης δελίδας (page setup): ίσως να " "χρειαστεί να θέσετε έναν προεπιλεγμένο (default) εκτυπωτή." #: ../src/html/htmprint.cpp:255 msgid "" "This document doesn't fit on the page horizontally and will be truncated " "when it is printed." msgstr "" #: ../src/common/image.cpp:2716 #, fuzzy, c-format msgid "This is not a %s." msgstr "PCX: αυτό δεν είναι αρχείο PCX." #: ../src/common/wincmn.cpp:1653 msgid "This platform does not support background transparency." msgstr "" #: ../src/gtk/window.cpp:4317 msgid "" "This program was compiled with a too old version of GTK+, please rebuild " "with GTK+ 2.12 or newer." msgstr "" #: ../src/msw/datecontrols.cpp:59 msgid "" "This system doesn't support date controls, please upgrade your version of " "comctl32.dll" msgstr "" #: ../src/msw/thread.cpp:1300 msgid "" "Thread module initialization failed: cannot store value in thread local " "storage" msgstr "" "Η αρχικοποίηση μονάδας νήματος εκτέλεσης (thread module) απέτυχε: αδύνατη η " "αποθήκευση τιμής στην τοπική αποθήκευση νήματος (thread local storage)" #: ../src/unix/threadpsx.cpp:1758 msgid "Thread module initialization failed: failed to create thread key" msgstr "" "Η αρχικοποίηση μονάδας νήματος εκτέλεσης (thread module) απέτυχε: αποτυχία " "δημιουργίας κλειδιού νήματος (thread key)" #: ../src/msw/thread.cpp:1288 msgid "" "Thread module initialization failed: impossible to allocate index in thread " "local storage" msgstr "" "Η αρχικοποίηση μονάδας νήματος εκτέλεσης (thread module) απέτυχε: αδύνατο να " "δεσμευτεί (allocate) δείκτης (index) στην στην τοπική αποθήκευση νήματος " "(thread local storage)" #: ../src/unix/threadpsx.cpp:1038 msgid "Thread priority setting is ignored." msgstr "Η ρύθμιση προτεραιότητας του νήματος εκτέλεσης (thread) αγνοήθηκε. " #: ../src/msw/mdi.cpp:172 msgid "Tile &Horizontally" msgstr "Οριζόντια παράθεση" #: ../src/msw/mdi.cpp:173 msgid "Tile &Vertically" msgstr "Κατακόρυφη παράθεση" #: ../src/common/ftp.cpp:202 msgid "Timeout while waiting for FTP server to connect, try passive mode." msgstr "" "Τέλος χρόνου κατά την αναμονή για την σύνδεση στον διακομιστή FTP, δοκιμάστε " "σε passive mode." #: ../src/os2/timer.cpp:99 msgid "Timer creation failed." msgstr "Η δημιουργία timer απέτυχε." #: ../src/generic/tipdlg.cpp:220 msgid "Tip of the Day" msgstr "Tip της Ημέρας" #: ../src/generic/tipdlg.cpp:154 msgid "Tips not available, sorry!" msgstr "Το Tip δεν είναι διαθέσιμο, συγγνώμη!" #: ../src/generic/prntdlgg.cpp:242 msgid "To:" msgstr "Πρός:" #: ../src/osx/carbon/dataview.cpp:2451 msgid "Toggle renderer cannot render value; value type: " msgstr "" #: ../src/richtext/richtextbuffer.cpp:7983 msgid "Too many EndStyle calls!" msgstr "" #: ../src/common/imagpng.cpp:286 msgid "Too many colours in PNG, the image may be slightly blurred." msgstr "Πάρα πολλά χρώματα στο PNG, η εικόνα μπορεί να είναι λίγο θολή." #: ../src/richtext/richtextsizepage.cpp:286 #: ../src/richtext/richtextsizepage.cpp:290 ../src/common/stockitem.cpp:200 #, fuzzy msgid "Top" msgstr "Πρός:" #: ../src/generic/prntdlgg.cpp:881 msgid "Top margin (mm):" msgstr "Πάνω περιθώριο (mm)" #: ../src/generic/aboutdlgg.cpp:79 msgid "Translations by " msgstr "" #: ../src/generic/aboutdlgg.cpp:188 msgid "Translators" msgstr "" #: ../src/propgrid/propgrid.cpp:173 msgid "True" msgstr "" #: ../src/common/fs_mem.cpp:227 #, c-format msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!" msgstr "" "Προσπάθεια απομάκρυνσης αρχείου '%s' από VFS μνήμης, αλλά δεν είναι " "φορτωμένο!" #: ../src/common/fmapbase.cpp:156 msgid "Turkish (ISO-8859-9)" msgstr "Τουρκικό (ISO-8859-9)" #: ../src/generic/filectrlg.cpp:461 msgid "Type" msgstr "Τύπος" #: ../src/richtext/richtextfontpage.cpp:160 #: ../src/richtext/richtextfontpage.cpp:162 #, fuzzy msgid "Type a font name." msgstr "Η οικογένεια της γραμματοσειρας." #: ../src/richtext/richtextfontpage.cpp:175 #: ../src/richtext/richtextfontpage.cpp:177 msgid "Type a size in points." msgstr "" #: ../src/msw/ole/automtn.cpp:665 #, c-format msgid "Type mismatch in argument %u." msgstr "" #: ../src/common/xtixml.cpp:356 ../src/common/xtixml.cpp:509 #: ../src/common/xtistrm.cpp:322 msgid "Type must have enum - long conversion" msgstr "Ο τύπος πρέπει να έχει μετατροπή enum - long" #: ../src/propgrid/propgridiface.cpp:382 #, c-format msgid "" "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", NOT " "\"%s\"." msgstr "" #: ../src/common/accelcmn.cpp:58 msgid "UP" msgstr "" #: ../src/common/paper.cpp:134 msgid "US Std Fanfold, 14 7/8 x 11 in" msgstr "US Std Fanfold, 14 7/8 x 11 ίντσες" #: ../src/common/fmapbase.cpp:196 #, fuzzy msgid "US-ASCII" msgstr "ASCII" #: ../src/unix/fswatcher_inotify.cpp:109 msgid "Unable to add inotify watch" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:136 msgid "Unable to add kqueue watch" msgstr "" #: ../include/wx/msw/private/fswatcher.h:142 msgid "Unable to associate handle with I/O completion port" msgstr "" #: ../include/wx/msw/private/fswatcher.h:125 #, fuzzy msgid "Unable to close I/O completion port handle" msgstr "Αποτυχία κλεισίματος του χειριστηρίου του αρχείου(file handle)" #: ../src/unix/fswatcher_inotify.cpp:97 #, fuzzy msgid "Unable to close inotify instance" msgstr "Αποτυχία κλεισίματος του χειριστηρίου του αρχείου(file handle)" #: ../include/wx/unix/private/fswatcher_kqueue.h:74 #, fuzzy, c-format msgid "Unable to close path '%s'" msgstr "Αποτυχία κλεισίματος του αρχείου 'κλειδωνιά'(lock file) '%s'" #: ../include/wx/msw/private/fswatcher.h:48 #, fuzzy, c-format msgid "Unable to close the handle for '%s'" msgstr "Αποτυχία κλεισίματος του χειριστηρίου του αρχείου(file handle)" #: ../include/wx/msw/private/fswatcher.h:240 #, fuzzy msgid "Unable to create I/O completion port" msgstr "Αποτυχία δημιουργίας δείκτη." #: ../src/msw/fswatcher.cpp:84 #, fuzzy msgid "Unable to create IOCP worker thread" msgstr "Αποτυχία δημιουργίας ενός γονεικού περιγράμματος (parent frame) MDI." #: ../src/unix/fswatcher_inotify.cpp:74 #, fuzzy msgid "Unable to create inotify instance" msgstr "Απέτυχε η δημιουργεία ενός DDE αλφαρηθμιτικού (string)" #: ../src/unix/fswatcher_kqueue.cpp:97 #, fuzzy msgid "Unable to create kqueue instance" msgstr "Απέτυχε η δημιουργεία ενός DDE αλφαρηθμιτικού (string)" #: ../include/wx/msw/private/fswatcher.h:229 msgid "Unable to dequeue completion packet" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:185 msgid "Unable to get events from kqueue" msgstr "" #: ../src/osx/carbon/dataview.cpp:1903 msgid "Unable to handle native drag&drop data" msgstr "" #: ../src/gtk/app.cpp:439 msgid "Unable to initialize GTK+, is DISPLAY set properly?" msgstr "" #: ../src/gtk/app.cpp:276 #, fuzzy msgid "Unable to initialize Hildon program" msgstr "Απέτυχε η αρχικοποίηση του OpenGL" #: ../include/wx/unix/private/fswatcher_kqueue.h:57 #, fuzzy, c-format msgid "Unable to open path '%s'" msgstr "Αποτυχία ανοίγματος του arxe;ioy CHM '%s'." #: ../src/html/htmlwin.cpp:561 #, c-format msgid "Unable to open requested HTML document: %s" msgstr "Δεν είναι δυνατό το άνοιγμα εγγράφου HTML: %s" #: ../src/unix/sound.cpp:368 msgid "Unable to play sound asynchronously." msgstr "Αδύνατη η ασύγχρονη αναπαραγωγή ήχου." #: ../include/wx/msw/private/fswatcher.h:207 msgid "Unable to post completion status" msgstr "" #: ../src/unix/fswatcher_inotify.cpp:530 #, fuzzy msgid "Unable to read from inotify descriptor" msgstr "αδύνατη η ανάγνωση από περiγραφέα (descriptor) αρχείου %d" #: ../src/unix/fswatcher_inotify.cpp:132 msgid "Unable to remove inotify watch" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:153 msgid "Unable to remove kqueue watch" msgstr "" #: ../src/msw/fswatcher.cpp:168 #, fuzzy, c-format msgid "Unable to set up watch for '%s'" msgstr "Αποτυχία αγγίγματος (touch) του αρχείου '%s'" #: ../src/msw/fswatcher.cpp:91 msgid "Unable to start IOCP worker thread" msgstr "" #: ../src/common/stockitem.cpp:201 msgid "Undelete" msgstr "Αναίρεση διαγραφής" #: ../src/common/stockitem.cpp:202 #, fuzzy msgid "Underline" msgstr "&Υπογράμμιση" #: ../src/richtext/richtextfontpage.cpp:341 ../src/osx/carbon/fontdlg.cpp:556 #: ../src/propgrid/advprops.cpp:655 #, fuzzy msgid "Underlined" msgstr "&Υπογράμμιση" #: ../src/common/stockitem.cpp:203 ../src/stc/stc_i18n.cpp:15 #, fuzzy msgid "Undo" msgstr "&Αναίρεση" #: ../src/common/stockitem.cpp:265 msgid "Undo last action" msgstr "" #: ../src/common/cmdline.cpp:864 #, fuzzy, c-format msgid "Unexpected characters following option '%s'." msgstr "Απροσδόκητη παράμετρος '%s'" #: ../src/unix/fswatcher_inotify.cpp:261 #, c-format msgid "Unexpected event for \"%s\": no matching watch descriptor." msgstr "" #: ../src/common/cmdline.cpp:1024 #, c-format msgid "Unexpected parameter '%s'" msgstr "Απροσδόκητη παράμετρος '%s'" #: ../include/wx/msw/private/fswatcher.h:148 msgid "Unexpectedly new I/O completion port was created" msgstr "" #: ../src/msw/fswatcher.cpp:70 #, fuzzy msgid "Ungraceful worker thread termination" msgstr "" "Δεν είναι δυνατή η αναμονή(wait) για τον τερματισμό του νήματος εκτέλεσης" "(thread)" #: ../src/richtext/richtextsymboldlg.cpp:459 #: ../src/richtext/richtextsymboldlg.cpp:460 #: ../src/richtext/richtextsymboldlg.cpp:461 #, fuzzy msgid "Unicode" msgstr "Α&ποστοίχιση" #: ../src/common/fmapbase.cpp:185 ../src/common/fmapbase.cpp:191 msgid "Unicode 16 bit (UTF-16)" msgstr "Unicode 16 bit (UTF-16)" #: ../src/common/fmapbase.cpp:190 msgid "Unicode 16 bit Big Endian (UTF-16BE)" msgstr "Unicode 16 bit Big Endian (UTF-16BE)" #: ../src/common/fmapbase.cpp:186 msgid "Unicode 16 bit Little Endian (UTF-16LE)" msgstr "Unicode 16 bit Little Endian (UTF-16LE)" #: ../src/common/fmapbase.cpp:187 ../src/common/fmapbase.cpp:193 msgid "Unicode 32 bit (UTF-32)" msgstr "Unicode 32 bit (UTF-32)" #: ../src/common/fmapbase.cpp:192 msgid "Unicode 32 bit Big Endian (UTF-32BE)" msgstr "Unicode 32 bit Big Endian (UTF-32BE)" #: ../src/common/fmapbase.cpp:188 msgid "Unicode 32 bit Little Endian (UTF-32LE)" msgstr "Unicode 32 bit Little Endian (UTF-32LE)" #: ../src/common/fmapbase.cpp:182 msgid "Unicode 7 bit (UTF-7)" msgstr "Unicode 7 bit (UTF-7)" #: ../src/common/fmapbase.cpp:183 msgid "Unicode 8 bit (UTF-8)" msgstr "Unicode 8 bit (UTF-8)" #: ../src/common/stockitem.cpp:204 #, fuzzy msgid "Unindent" msgstr "Α&ποστοίχιση" #: ../src/richtext/richtextborderspage.cpp:373 #: ../src/richtext/richtextborderspage.cpp:375 msgid "Units for the bottom border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:278 #: ../src/richtext/richtextmarginspage.cpp:280 msgid "Units for the bottom margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:517 #: ../src/richtext/richtextborderspage.cpp:519 msgid "Units for the bottom outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:392 #: ../src/richtext/richtextmarginspage.cpp:394 msgid "Units for the bottom padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:664 #: ../src/richtext/richtextsizepage.cpp:666 #, fuzzy msgid "Units for the bottom position." msgstr "" "Δεν είναι δυνατή η αναμονή(wait) για τον τερματισμό του νήματος εκτέλεσης" "(thread)" #: ../src/richtext/richtextborderspage.cpp:283 #: ../src/richtext/richtextborderspage.cpp:285 msgid "Units for the left border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:205 #: ../src/richtext/richtextmarginspage.cpp:207 msgid "Units for the left margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:427 #: ../src/richtext/richtextborderspage.cpp:429 msgid "Units for the left outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:319 #: ../src/richtext/richtextmarginspage.cpp:321 msgid "Units for the left padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:559 #: ../src/richtext/richtextsizepage.cpp:561 #, fuzzy msgid "Units for the left position." msgstr "" "Δεν είναι δυνατή η αναμονή(wait) για τον τερματισμό του νήματος εκτέλεσης" "(thread)" #: ../src/richtext/richtextsizepage.cpp:485 #: ../src/richtext/richtextsizepage.cpp:487 #, fuzzy msgid "Units for the maximum object height." msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextsizepage.cpp:458 #: ../src/richtext/richtextsizepage.cpp:460 #, fuzzy msgid "Units for the maximum object width." msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextsizepage.cpp:431 #: ../src/richtext/richtextsizepage.cpp:433 #, fuzzy msgid "Units for the minimum object height." msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextsizepage.cpp:404 #: ../src/richtext/richtextsizepage.cpp:406 #, fuzzy msgid "Units for the minimum object width." msgstr "Το βάρος της γραμματοσειράς." #: ../src/richtext/richtextsizepage.cpp:377 #: ../src/richtext/richtextsizepage.cpp:379 msgid "Units for the object height." msgstr "" #: ../src/richtext/richtextsizepage.cpp:343 #: ../src/richtext/richtextsizepage.cpp:345 msgid "Units for the object width." msgstr "" #: ../src/richtext/richtextborderspage.cpp:313 #: ../src/richtext/richtextborderspage.cpp:315 msgid "Units for the right border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:230 #: ../src/richtext/richtextmarginspage.cpp:232 msgid "Units for the right margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:457 #: ../src/richtext/richtextborderspage.cpp:459 msgid "Units for the right outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:344 #: ../src/richtext/richtextmarginspage.cpp:346 msgid "Units for the right padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:629 #: ../src/richtext/richtextsizepage.cpp:631 #, fuzzy msgid "Units for the right position." msgstr "" "Δεν είναι δυνατή η αναμονή(wait) για τον τερματισμό του νήματος εκτέλεσης" "(thread)" #: ../src/richtext/richtextborderspage.cpp:343 #: ../src/richtext/richtextborderspage.cpp:345 msgid "Units for the top border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:253 #: ../src/richtext/richtextmarginspage.cpp:255 #, fuzzy msgid "Units for the top margin." msgstr "" "Δεν είναι δυνατή η αναμονή(wait) για τον τερματισμό του νήματος εκτέλεσης" "(thread)" #: ../src/richtext/richtextborderspage.cpp:487 #: ../src/richtext/richtextborderspage.cpp:489 msgid "Units for the top outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:367 #: ../src/richtext/richtextmarginspage.cpp:369 msgid "Units for the top padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:594 #: ../src/richtext/richtextsizepage.cpp:596 #, fuzzy msgid "Units for the top position." msgstr "" "Δεν είναι δυνατή η αναμονή(wait) για τον τερματισμό του νήματος εκτέλεσης" "(thread)" #: ../src/generic/progdlgg.cpp:382 ../src/generic/progdlgg.cpp:655 #, fuzzy msgid "Unknown" msgstr "άγνωστο" #: ../src/msw/dde.cpp:1177 #, c-format msgid "Unknown DDE error %08x" msgstr "’γνωστο σφάλμα DDE %08x" #: ../src/common/xtistrm.cpp:414 msgid "Unknown Object passed to GetObjectClassInfo" msgstr "’γνωστο αντικείμενο δόθηκε στην GetObjectClassInfo" #: ../src/common/imagpng.cpp:614 #, fuzzy, c-format msgid "Unknown PNG resolution unit %d" msgstr "’γνωστη επιλογή '%s'" #: ../src/common/xtixml.cpp:327 #, fuzzy, c-format msgid "Unknown Property %s" msgstr "’γνωστη Ιδιότητα %s" #: ../src/common/imagtiff.cpp:532 #, c-format msgid "Unknown TIFF resolution unit %d ignored" msgstr "" #: ../src/osx/carbon/dataview.cpp:1978 #, fuzzy msgid "Unknown data format" msgstr "σφάλμα στη μορφή των δεδομένων" #: ../src/unix/dlunix.cpp:325 msgid "Unknown dynamic library error" msgstr "" #: ../src/common/fmapbase.cpp:810 #, c-format msgid "Unknown encoding (%d)" msgstr "’γνωστη κωδικοποίηση (%d)" #: ../src/msw/ole/automtn.cpp:677 #, fuzzy, c-format msgid "Unknown error %08x" msgstr "’γνωστο σφάλμα DDE %08x" #: ../src/msw/ole/automtn.cpp:636 #, fuzzy msgid "Unknown exception" msgstr "’γνωστη επιλογή '%s'" #: ../src/common/image.cpp:2701 #, fuzzy msgid "Unknown image data format." msgstr "σφάλμα στη μορφή των δεδομένων" #: ../src/common/cmdline.cpp:749 #, c-format msgid "Unknown long option '%s'" msgstr "’γνωστη επιλογή long '%s'" #: ../src/msw/ole/automtn.cpp:620 msgid "Unknown name or named argument." msgstr "" #: ../src/common/cmdline.cpp:764 ../src/common/cmdline.cpp:786 #, c-format msgid "Unknown option '%s'" msgstr "’γνωστη επιλογή '%s'" #: ../src/common/mimecmn.cpp:230 #, c-format msgid "Unmatched '{' in an entry for mime type %s." msgstr "Αταίριαστο '{' σε μία είσοδο (entry) για τον τύπο mime %s." #: ../src/common/cmdproc.cpp:262 ../src/common/cmdproc.cpp:288 #: ../src/common/cmdproc.cpp:308 msgid "Unnamed command" msgstr "Ανώνυμη εντολή" #: ../src/propgrid/propgrid.cpp:398 #, fuzzy msgid "Unspecified" msgstr "Ευθυγραμμισμένα" #: ../src/msw/clipbrd.cpp:271 ../src/msw/clipbrd.cpp:439 msgid "Unsupported clipboard format." msgstr "Δεν υποστηρίζεται ο τύπος προχείρου(clipboard format)." #: ../src/common/appcmn.cpp:249 #, c-format msgid "Unsupported theme '%s'." msgstr "Το θέμα '%s' δεν υποστηρίζεται." #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:205 msgid "Up" msgstr "Επάνω" #: ../src/richtext/richtextliststylepage.cpp:483 #: ../src/richtext/richtextbulletspage.cpp:288 msgid "Upper case letters" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:485 #: ../src/richtext/richtextbulletspage.cpp:290 msgid "Upper case roman numerals" msgstr "" #: ../src/common/cmdline.cpp:1155 #, c-format msgid "Usage: %s" msgstr "Χρήση: %s" #: ../src/richtext/richtextindentspage.cpp:169 #: ../src/richtext/richtextindentspage.cpp:171 #: ../src/richtext/richtextliststylepage.cpp:358 #: ../src/richtext/richtextliststylepage.cpp:360 msgid "Use the current alignment setting." msgstr "" #: ../src/osx/carbon/dataview.cpp:2658 ../src/osx/carbon/dataview.cpp:2723 msgid "Valid pointer to native data view control does not exist" msgstr "" #: ../src/common/valtext.cpp:174 msgid "Validation conflict" msgstr "Σύγκρουση επικύρωσης (validation conflict)" #: ../src/propgrid/manager.cpp:238 msgid "Value" msgstr "" #: ../src/propgrid/props.cpp:384 #, c-format msgid "Value must be %s or higher." msgstr "" #: ../src/propgrid/props.cpp:411 #, c-format msgid "Value must be %s or less." msgstr "" #: ../src/propgrid/props.cpp:388 ../src/propgrid/props.cpp:415 #, fuzzy, c-format msgid "Value must be between %s and %s." msgstr "Δώστε έναν αριθμό σελίδας μεταξύ %d και %d:" #: ../src/generic/aboutdlgg.cpp:128 #, fuzzy msgid "Version " msgstr "Δικαιώματα" #: ../src/richtext/richtextsizepage.cpp:291 #: ../src/richtext/richtextsizepage.cpp:293 #, fuzzy msgid "Vertical alignment." msgstr "Δεν ήταν δυνατή η εκκίνηση της εκτύπωσης." #: ../src/generic/filedlgg.cpp:216 msgid "View files as a detailed view" msgstr "Εμφάνιση αρχείων σε προβολή με λεπτομέρειες" #: ../src/generic/filedlgg.cpp:214 msgid "View files as a list view" msgstr "Εμφάνιση αρχείων σε προβολή λίστας" #: ../src/common/docview.cpp:1952 msgid "Views" msgstr "Προβολές" #: ../src/common/accelcmn.cpp:108 msgid "WINDOWS_LEFT" msgstr "" #: ../src/common/accelcmn.cpp:110 msgid "WINDOWS_MENU" msgstr "" #: ../src/common/accelcmn.cpp:109 msgid "WINDOWS_RIGHT" msgstr "" #: ../src/unix/epolldispatcher.cpp:213 #, fuzzy, c-format msgid "Waiting for IO on epoll descriptor %d failed" msgstr "Η αναμονή για τον τερματισμό υπο-διεργασίας (subprocess) απέτυχε" #: ../src/common/log.cpp:227 msgid "Warning: " msgstr "Προειδοποίηση: " #: ../src/propgrid/advprops.cpp:651 #, fuzzy msgid "Weight" msgstr "&Βάρος:" #: ../src/common/fmapbase.cpp:148 msgid "Western European (ISO-8859-1)" msgstr "Δυτικο-Ευρωπαϊκό (ISO-8859-1)" #: ../src/common/fmapbase.cpp:162 msgid "Western European with Euro (ISO-8859-15)" msgstr "Δυτικο-Ευρωπαϊκό με Euro (ISO-8859-15)" #: ../src/generic/fontdlgg.cpp:446 ../src/generic/fontdlgg.cpp:448 msgid "Whether the font is underlined." msgstr "Επιλογή εαν η γραμματοσειρά είναι υπογραμμισμένη ή όχι." #: ../src/generic/fdrepdlg.cpp:144 msgid "Whole word" msgstr "Ολόκληρη λέξη" #: ../src/html/helpwnd.cpp:547 msgid "Whole words only" msgstr "Ολόκληρες λέξεις μόνο" #: ../src/univ/themes/win32.cpp:1102 msgid "Win32 theme" msgstr "Win32 θέμα" #: ../src/msw/utils.cpp:1220 msgid "Win32s on Windows 3.1" msgstr "Win32s σε Windows 3.1" #: ../src/msw/utils.cpp:1270 #, fuzzy msgid "Windows 2000" msgstr "Windows 95" #: ../src/msw/utils.cpp:1302 #, fuzzy msgid "Windows 7" msgstr "Windows 95" #: ../src/msw/utils.cpp:1234 msgid "Windows 95" msgstr "Windows 95" #: ../src/msw/utils.cpp:1230 msgid "Windows 95 OSR2" msgstr "Windows 95 OSR2" #: ../src/msw/utils.cpp:1245 msgid "Windows 98" msgstr "Windows 98" #: ../src/msw/utils.cpp:1241 msgid "Windows 98 SE" msgstr "Windows 98 SE" #: ../src/msw/utils.cpp:1252 #, c-format msgid "Windows 9x (%d.%d)" msgstr "Windows 9x (%d.%d)" #: ../src/common/fmapbase.cpp:177 msgid "Windows Arabic (CP 1256)" msgstr "Windows Αραβικό (CP 1256)" #: ../src/common/fmapbase.cpp:178 msgid "Windows Baltic (CP 1257)" msgstr "Windows Βαλτικό (CP 1257)" #: ../src/msw/utils.cpp:1214 #, fuzzy, c-format msgid "Windows CE (%d.%d)" msgstr "Windows 9x (%d.%d)" #: ../src/common/fmapbase.cpp:171 msgid "Windows Central European (CP 1250)" msgstr "Windows Κεντρο-Ευρωπαϊκό (CP 1250)" #: ../src/common/fmapbase.cpp:168 #, fuzzy msgid "Windows Chinese Simplified (CP 936) or GB-2312" msgstr "Windows Απλοποιημένο Κινέζικο (CP 936)" #: ../src/common/fmapbase.cpp:170 #, fuzzy msgid "Windows Chinese Traditional (CP 950) or Big-5" msgstr "Windows Παραδοσιακό Κινέζικο (CP 950)" #: ../src/common/fmapbase.cpp:172 msgid "Windows Cyrillic (CP 1251)" msgstr "Windows Κυριλικό (CP 1251)" #: ../src/common/fmapbase.cpp:174 msgid "Windows Greek (CP 1253)" msgstr "Windows Ελληνικό (CP 1253)" #: ../src/common/fmapbase.cpp:176 msgid "Windows Hebrew (CP 1255)" msgstr "Windows Εβραϊκό (CP 1255)" #: ../src/common/fmapbase.cpp:167 #, fuzzy msgid "Windows Japanese (CP 932) or Shift-JIS" msgstr "Windows Ιαπωνικό (CP 932)" #: ../src/common/fmapbase.cpp:180 #, fuzzy msgid "Windows Johab (CP 1361)" msgstr "Windows Αραβικό (CP 1256)" #: ../src/common/fmapbase.cpp:169 msgid "Windows Korean (CP 949)" msgstr "Windows Κορεάτικο (CP 949)" #: ../src/msw/utils.cpp:1249 msgid "Windows ME" msgstr "Windows ME" #: ../src/msw/utils.cpp:1310 #, fuzzy, c-format msgid "Windows NT %lu.%lu" msgstr "Windows 9x (%d.%d)" #: ../src/msw/utils.cpp:1279 #, fuzzy msgid "Windows Server 2003" msgstr "Windows Ελληνικό (CP 1253)" #: ../src/msw/utils.cpp:1295 #, fuzzy msgid "Windows Server 2008" msgstr "Windows 98" #: ../src/msw/utils.cpp:1301 #, fuzzy msgid "Windows Server 2008 R2" msgstr "Windows Εβραϊκό (CP 1255)" #: ../src/common/fmapbase.cpp:166 #, fuzzy msgid "Windows Thai (CP 874)" msgstr "Windows Βαλτικό (CP 1257)" #: ../src/common/fmapbase.cpp:175 msgid "Windows Turkish (CP 1254)" msgstr "Windows Τουρκικό (CP 1254)" #: ../src/common/fmapbase.cpp:179 #, fuzzy msgid "Windows Vietnamese (CP 1258)" msgstr "Windows Ελληνικό (CP 1253)" #: ../src/msw/utils.cpp:1296 #, fuzzy msgid "Windows Vista" msgstr "Windows 95" #: ../src/common/fmapbase.cpp:173 msgid "Windows Western European (CP 1252)" msgstr "Windows Δυτικο-Ευρωπαϊκό (CP 1252)" #: ../src/msw/utils.cpp:1285 #, fuzzy msgid "Windows XP" msgstr "Windows 95" #: ../src/common/fmapbase.cpp:181 msgid "Windows/DOS OEM (CP 437)" msgstr "Windows/DOS OEM (CP 437)" #: ../src/common/fmapbase.cpp:165 #, fuzzy msgid "Windows/DOS OEM Cyrillic (CP 866)" msgstr "Windows Κυριλικό (CP 1251)" #: ../src/common/ffile.cpp:148 #, c-format msgid "Write error on file '%s'" msgstr "Σφάλμα εγγραφής (write error) στο αρχείο '%s'" #: ../src/xml/xml.cpp:844 #, c-format msgid "XML parsing error: '%s' at line %d" msgstr "XML σφάλμα ανάγνωσης (parsing error): '%s' στη γραμμή %d" #: ../src/common/xpmdecod.cpp:796 msgid "XPM: Malformed pixel data!" msgstr "XPM: Κακοσχηματισμένα δεδομένα εικονοστοιχείων (pixel)!" #: ../src/common/xpmdecod.cpp:705 #, fuzzy, c-format msgid "XPM: incorrect colour description in line %d" msgstr "XPM: κακοσχηματισμένος ορισμός χρώματος '%s'!" #: ../src/common/xpmdecod.cpp:680 msgid "XPM: incorrect header format!" msgstr "" #: ../src/common/xpmdecod.cpp:716 ../src/common/xpmdecod.cpp:725 #, fuzzy, c-format msgid "XPM: malformed colour definition '%s' at line %d!" msgstr "XPM: κακοσχηματισμένος ορισμός χρώματος '%s'!" #: ../src/common/xpmdecod.cpp:755 msgid "XPM: no colors left to use for mask!" msgstr "" #: ../src/common/xpmdecod.cpp:782 #, c-format msgid "XPM: truncated image data at line %d!" msgstr "" #: ../include/wx/msgdlg.h:271 ../src/common/stockitem.cpp:206 #: ../src/motif/msgdlg.cpp:196 msgid "Yes" msgstr "Ναι" #: ../src/osx/carbon/overlay.cpp:155 #, fuzzy msgid "You cannot Clear an overlay that is not inited" msgstr "Δεν μπορείτε να προσθέσετε καινούργιο κατάλογο σε αυτό το τμήμα." #: ../src/osx/carbon/overlay.cpp:107 ../src/dfb/overlay.cpp:61 msgid "You cannot Init an overlay twice" msgstr "" #: ../src/generic/dirdlgg.cpp:316 msgid "You cannot add a new directory to this section." msgstr "Δεν μπορείτε να προσθέσετε καινούργιο κατάλογο σε αυτό το τμήμα." #: ../src/propgrid/propgrid.cpp:3258 msgid "You have entered invalid value. Press ESC to cancel editing." msgstr "" #: ../src/common/stockitem.cpp:209 msgid "Zoom &In" msgstr "&Αύξηση ζουμ" #: ../src/common/stockitem.cpp:210 msgid "Zoom &Out" msgstr "&Ελάττωση ζουμ" #: ../src/common/stockitem.cpp:209 ../src/common/prntbase.cpp:1564 #, fuzzy msgid "Zoom In" msgstr "&Αύξηση ζουμ" #: ../src/common/stockitem.cpp:210 ../src/common/prntbase.cpp:1550 #, fuzzy msgid "Zoom Out" msgstr "&Ελάττωση ζουμ" #: ../src/common/stockitem.cpp:208 msgid "Zoom to &Fit" msgstr "Βέλτιστο ζουμ" #: ../src/common/stockitem.cpp:208 #, fuzzy msgid "Zoom to Fit" msgstr "Βέλτιστο ζουμ" #: ../src/msw/dde.cpp:1144 msgid "a DDEML application has created a prolonged race condition." msgstr "μια DDEML εφαρμογή έχει δημιουργήσει έναν παρατεταμένο race condition." #: ../src/msw/dde.cpp:1132 msgid "" "a DDEML function was called without first calling the DdeInitialize " "function,\n" "or an invalid instance identifier\n" "was passed to a DDEML function." msgstr "" "μια συνάρτηση(function) DDEML κλήθηκε χώρις πρώτα να καλέσει την " "DdeInitialize συνάρτηση(function),\n" "ή ένα λανθασμένο αναγνωριστικό(identifier) instance\n" "δόθηκε σε μια DDEML συνάρτηση(function)." #: ../src/msw/dde.cpp:1150 msgid "a client's attempt to establish a conversation has failed." msgstr "" "η προσπάθεια ενός πελάτη(client) να εδραιώσει(establish) μία συνδιάλεξη" "(conversation) απέτυχε." #: ../src/msw/dde.cpp:1147 msgid "a memory allocation failed." msgstr "μία προσπάθεια δέσμευσης (allocation) μνήμης απέτυχε." #: ../src/msw/dde.cpp:1141 msgid "a parameter failed to be validated by the DDEML." msgstr "απέτυχε η επικύρωση μιας παραμέτρου από το DDEML." #: ../src/msw/dde.cpp:1123 msgid "a request for a synchronous advise transaction has timed out." msgstr "" "μία αίτηση για σύγχρονη(synchronous) ενημερωτική(advise) συναλλαγή" "(transaction) ξεπέρασε το χρονικό περιθώριο (timed out)" #: ../src/msw/dde.cpp:1129 msgid "a request for a synchronous data transaction has timed out." msgstr "" "μία αίτηση για σύγχρονη(synchronous) συναλλαγή(transaction) δεδομένων(data) " "ξεπέρασε το χρονικό περιθώριο (timed out)" #: ../src/msw/dde.cpp:1138 msgid "a request for a synchronous execute transaction has timed out." msgstr "" "μία αίτηση για σύγχρονη(synchronous) συναλλαγή(transaction) εκτέλεσης" "(execute) ξεπέρασε το χρονικό περιθώριο (timed out)" #: ../src/msw/dde.cpp:1156 msgid "a request for a synchronous poke transaction has timed out." msgstr "" "μία αίτηση για σύγχρονη(synchronous) poke συναλλαγή(transaction) ξεπέρασε το " "χρονικό περιθώριο (timed out)" #: ../src/msw/dde.cpp:1171 msgid "a request to end an advise transaction has timed out." msgstr "" "μία αίτηση για τερματισμό μιας ενημερωτικής(advise) συναλλαγής(transaction) " "ξεπέρασε το χρονικό περιθώριο (timed out)" #: ../src/msw/dde.cpp:1165 msgid "" "a server-side transaction was attempted on a conversation\n" "that was terminated by the client, or the server\n" "terminated before completing a transaction." msgstr "" "αποπειράθηκε μια συναλλαγη στη μεριά του εξυπηρετητή (server-side) σε μια " "συνδίαλεξη (conversation)\n" "που είχε τερματιστεί από τον πελάτη(client), ή ο εξυπηρετητής (server)\n" "τερμάτισε πριν ολοκληρωθεί μια συναλλαγή( transaction)." #: ../src/msw/dde.cpp:1153 msgid "a transaction failed." msgstr "μία συναλλαγή (transaction) απέτυχε." #: ../src/common/accelcmn.cpp:184 msgid "alt" msgstr "alt" #: ../src/msw/dde.cpp:1135 msgid "" "an application initialized as APPCLASS_MONITOR has\n" "attempted to perform a DDE transaction,\n" "or an application initialized as APPCMD_CLIENTONLY has \n" "attempted to perform server transactions." msgstr "" "μία εφαρμογή που αρχικοποιήθηκε ως APPCLASS_MONITOR\n" "προσπάθησε να κάνει μια συναλλαγή (transaction) DDE,\n" "ή μία εφαρμογή που αρχικοποιήθηκε ως APPCMD_CLIENTONLY\n" "προσπάθησε να κάνει συναλλαγές εξυπηρετητή (server transactions)." #: ../src/msw/dde.cpp:1159 msgid "an internal call to the PostMessage function has failed. " msgstr "μία εσωτερική κλήση στην συνάρτηση (function) PostMessage απέτυχε." #: ../src/msw/dde.cpp:1168 msgid "an internal error has occurred in the DDEML." msgstr "ένα εσωτερικό λάθος συνέβη στο DDEML." #: ../src/msw/dde.cpp:1174 msgid "" "an invalid transaction identifier was passed to a DDEML function.\n" "Once the application has returned from an XTYP_XACT_COMPLETE callback,\n" "the transaction identifier for that callback is no longer valid." msgstr "" "ένα λανθασμένο αναγνωριστικό(identifier) συναλλαγής(transaction) δώθηκε σε " "μία DDEML συνάρτηση(function).\n" "Όταν η εφαρμογή επιστρέψει από ένα XTYP_XACT_COMPLETE callback,\n" "το αναγνωριστικό συναλλαγής για εκείνο το callback δεν θα είναι πλέον έγκυρο." #: ../src/common/zipstrm.cpp:1272 msgid "assuming this is a multi-part zip concatenated" msgstr "" #: ../src/common/fileconf.cpp:1882 #, c-format msgid "attempt to change immutable key '%s' ignored." msgstr "η προσπάθεια αλλαγής αμετάβλητου κλειδιού '%s' αγνοήθηκε." #: ../src/html/chm.cpp:329 msgid "bad arguments to library function" msgstr "λανθασμένες παράμετροι σε συνάρτηση βιβλιοθήκης" #: ../src/html/chm.cpp:341 msgid "bad signature" msgstr "κακή σήμανση" #: ../src/common/zipstrm.cpp:1715 msgid "bad zipfile offset to entry" msgstr "" #: ../src/common/ftp.cpp:405 msgid "binary" msgstr "δυαδικό" #: ../src/common/fontcmn.cpp:978 msgid "bold" msgstr "έντονο" #: ../src/os2/iniconf.cpp:463 msgid "buffer is too small for Windows directory." msgstr "" #: ../src/msw/utils.cpp:1316 #, c-format msgid "build %lu" msgstr "" #: ../src/common/ffile.cpp:79 #, c-format msgid "can't close file '%s'" msgstr "δεν είναι δυνατό το κλείσιμο του αρχείου '%s'" #: ../src/common/file.cpp:278 #, c-format msgid "can't close file descriptor %d" msgstr "αδύνατο το κλείσιμο περιγραφέα (descriptor) αρχείου %d" #: ../src/common/file.cpp:604 #, c-format msgid "can't commit changes to file '%s'" msgstr "αδύνατη η δέσμευση των αλλαγών στο αρχείο '%s'" #: ../src/common/file.cpp:212 #, c-format msgid "can't create file '%s'" msgstr "δεν είναι δυνατή η δημιουργία του αρχείου '%s'" #: ../src/common/fileconf.cpp:1176 #, c-format msgid "can't delete user configuration file '%s'" msgstr "Δεν είναι δυνατή η διαγραφή του αρχείου ρυθμίσεων '%s' του χρήστη" #: ../src/common/file.cpp:511 #, c-format msgid "can't determine if the end of file is reached on descriptor %d" msgstr "" "αδύνατο να καθοριστεί εαν το τέλος αρχείου του έχει φτάσει στο περιγραφέα " "(descriptor) %d" #: ../src/msdos/utilsdos.cpp:310 ../src/msdos/utilsdos.cpp:475 #, fuzzy, c-format msgid "can't execute '%s'" msgstr "Αποτυχία εκτέλεσης του '%s'\n" #: ../src/common/zipstrm.cpp:1490 msgid "can't find central directory in zip" msgstr "" "Δεν είναι δυνατή η εύρεση του κεντρικού καταλόγου στο συμπιεσμένο αρχείο" #: ../src/common/file.cpp:481 #, c-format msgid "can't find length of file on file descriptor %d" msgstr "" "αδύνατη η εύρεση του μεγέθους αρχείου στον περιγραφέα αρχείου (file " "desciptor) %d" #: ../src/msw/utils.cpp:373 msgid "can't find user's HOME, using current directory." msgstr "" "αδύνατη η εύρεση του HOME του χρήστη, γίνεται χρήση τρέχοντος καταλόγου." #: ../src/common/file.cpp:382 #, c-format msgid "can't flush file descriptor %d" msgstr "" "δεν μπορεί να πραγματοποιηθεί το άδειασμα (flush) του περιγραφέα αρχείου %d" #: ../src/common/file.cpp:438 ../src/msw/wince/filefnwce.cpp:204 #, c-format msgid "can't get seek position on file descriptor %d" msgstr "" "αδύνατη η λήψη θέσης αναζήτησης (seek position) στον περιγραφέα(descriptor) " "αρχείου %d" #: ../src/common/fontmap.cpp:325 msgid "can't load any font, aborting" msgstr "αδύνατη η φόρτωση οποιασδήποτε γραμματοσειράς, γίνεται ματαίωση" #: ../src/common/file.cpp:264 ../src/common/ffile.cpp:63 #, c-format msgid "can't open file '%s'" msgstr "δεν είναι δυνατό το άνοιγμα του αρχείου '%s'" #: ../src/common/fileconf.cpp:351 #, c-format msgid "can't open global configuration file '%s'." msgstr "δεν είναι δυνατό το άνοιγμα του γενικού(global) αρχείου ρυθμίσεων %s" #: ../src/common/fileconf.cpp:367 #, c-format msgid "can't open user configuration file '%s'." msgstr "δεν είναι δυνατό το άνοιγμα του αρχείου ρυθμίσεων '%s' του χρήστη" #: ../src/common/fileconf.cpp:1017 msgid "can't open user configuration file." msgstr "αδύνατο το άνοιγμα αρχείου ρυθμίσεων του χρήστη." #: ../src/common/zipstrm.cpp:527 msgid "can't re-initialize zlib deflate stream" msgstr "Δεν είναι δυνατή η αρχικοποίηση της ροής zlib deflate." #: ../src/common/zipstrm.cpp:552 msgid "can't re-initialize zlib inflate stream" msgstr "Δεν είναι δυνατή η αρχικοποίηση της ροής zlib inflate." #: ../src/common/file.cpp:334 #, c-format msgid "can't read from file descriptor %d" msgstr "αδύνατη η ανάγνωση από περiγραφέα (descriptor) αρχείου %d" #: ../src/common/file.cpp:599 #, c-format msgid "can't remove file '%s'" msgstr "δεν είναι δυνατό το σβήσιμο του αρχείου '%s'" #: ../src/common/file.cpp:616 #, c-format msgid "can't remove temporary file '%s'" msgstr "δεν είναι δυνατό το σβήσιμο του προσωρινού αρχείου '%s'" #: ../src/common/file.cpp:424 ../src/msw/wince/filefnwce.cpp:190 #, c-format msgid "can't seek on file descriptor %d" msgstr "αδύνατη η αναζήτηση(seek) στον περγραφέα(descriptor) αρχείου %d" #: ../src/common/textfile.cpp:299 #, c-format msgid "can't write buffer '%s' to disk." msgstr "αδύνατη η εγγραφή της προσωρινής μνήμης (buffer) '%s' στο δίσκο." #: ../src/common/file.cpp:350 #, c-format msgid "can't write to file descriptor %d" msgstr "δεν είναι δυνατή η εγγραφή του περιγραφέα αρχείου(file descriptor) %d" #: ../src/common/fileconf.cpp:1031 msgid "can't write user configuration file." msgstr "Αδύνατη η εγγραφή αρχείου ρυθμίσεων χρήστη." #: ../src/html/chm.cpp:345 msgid "checksum error" msgstr "σφάλμα checksum" #: ../src/common/tarstrm.cpp:820 msgid "checksum failure reading tar header block" msgstr "" #: ../src/richtext/richtextborderspage.cpp:280 #: ../src/richtext/richtextborderspage.cpp:310 #: ../src/richtext/richtextborderspage.cpp:340 #: ../src/richtext/richtextborderspage.cpp:370 #: ../src/richtext/richtextborderspage.cpp:424 #: ../src/richtext/richtextborderspage.cpp:454 #: ../src/richtext/richtextborderspage.cpp:484 #: ../src/richtext/richtextborderspage.cpp:514 #: ../src/richtext/richtextmarginspage.cpp:202 #: ../src/richtext/richtextmarginspage.cpp:227 #: ../src/richtext/richtextmarginspage.cpp:250 #: ../src/richtext/richtextmarginspage.cpp:275 #: ../src/richtext/richtextmarginspage.cpp:316 #: ../src/richtext/richtextmarginspage.cpp:341 #: ../src/richtext/richtextmarginspage.cpp:364 #: ../src/richtext/richtextmarginspage.cpp:389 #: ../src/richtext/richtextsizepage.cpp:339 #: ../src/richtext/richtextsizepage.cpp:373 #: ../src/richtext/richtextsizepage.cpp:400 #: ../src/richtext/richtextsizepage.cpp:427 #: ../src/richtext/richtextsizepage.cpp:454 #: ../src/richtext/richtextsizepage.cpp:481 #: ../src/richtext/richtextsizepage.cpp:555 #: ../src/richtext/richtextsizepage.cpp:590 #: ../src/richtext/richtextsizepage.cpp:625 #: ../src/richtext/richtextsizepage.cpp:660 msgid "cm" msgstr "" #: ../src/html/chm.cpp:347 msgid "compression error" msgstr "σφάλμα συμπίεσης" #: ../src/common/regex.cpp:239 msgid "conversion to 8-bit encoding failed" msgstr "η μετατροπή σε 8-bit κωδικοποίηση απέτυχε" #: ../src/common/accelcmn.cpp:182 msgid "ctrl" msgstr "ctrl" #: ../src/common/cmdline.cpp:1323 msgid "date" msgstr "ημερομηνία" #: ../src/html/chm.cpp:349 msgid "decompression error" msgstr "σφάλμα αποσυμπίεσης" #: ../src/richtext/richtextstyles.cpp:780 ../src/common/fmapbase.cpp:820 msgid "default" msgstr "προκαθορισμένο" #: ../src/common/cmdline.cpp:1319 msgid "double" msgstr "" #: ../src/common/debugrpt.cpp:543 msgid "dump of the process state (binary)" msgstr "" #: ../src/common/datetimefmt.cpp:1936 msgid "eighteenth" msgstr "δέκατο όγδοο" #: ../src/common/datetimefmt.cpp:1926 msgid "eighth" msgstr "όγδοο" #: ../src/common/datetimefmt.cpp:1929 msgid "eleventh" msgstr "έβδομο" #: ../src/common/fileconf.cpp:1868 #, c-format msgid "entry '%s' appears more than once in group '%s'" msgstr "η εισαγωγή(entry) '%s' εμφανίζεται πάνω από μία φορά στο γκρούπ '%s'" #: ../src/html/chm.cpp:343 msgid "error in data format" msgstr "σφάλμα στη μορφή των δεδομένων" #: ../src/msdos/utilsdos.cpp:413 #, fuzzy, c-format msgid "error opening '%s'" msgstr "σφάλμα κατά το άνοιγμα του αρχείου" #: ../src/html/chm.cpp:331 msgid "error opening file" msgstr "σφάλμα κατά το άνοιγμα του αρχείου" #: ../src/common/zipstrm.cpp:1576 msgid "error reading zip central directory" msgstr "σφάλμα κατα την ανάγνωση κεντρικού καταλόγου στο συμπιεσμένο αρχείο" #: ../src/common/zipstrm.cpp:1667 msgid "error reading zip local header" msgstr "σφάλμα κατά την ανάγνωση τοπικής κεφαλίδας του συμπιεσμένου αρχείου" #: ../src/common/zipstrm.cpp:2396 #, c-format msgid "error writing zip entry '%s': bad crc or length" msgstr "σφάλμα κατά την εγγραφή αρχείου zip '%s': εσφαλμένο crc ή μήκος" #: ../src/common/ffile.cpp:170 #, c-format msgid "failed to flush the file '%s'" msgstr "Αποτυχία αδειάσματος buffer (flush) του αρχείου '%s'" #: ../src/common/datetimefmt.cpp:1933 msgid "fifteenth" msgstr "δέκατο-πέμπτο" #: ../src/common/datetimefmt.cpp:1923 msgid "fifth" msgstr "πέμπτο" #: ../src/common/fileconf.cpp:610 #, c-format msgid "file '%s', line %d: '%s' ignored after group header." msgstr "" "αρχείο '%s', γραμμή %d: το '%s' αγνοήθηκε μετά την επικεφαλίδα του γκρούπ." #: ../src/common/fileconf.cpp:639 #, c-format msgid "file '%s', line %d: '=' expected." msgstr "αρχείο '%s', γραμμή %d: αναμενόταν '=' ." #: ../src/common/fileconf.cpp:662 #, c-format msgid "file '%s', line %d: key '%s' was first found at line %d." msgstr "" "αρχείο '%s', γραμμή %d: το κλειδί '%s' βρέθηκε για πρώτη φορά στη γραμμή %d." #: ../src/common/fileconf.cpp:652 #, c-format msgid "file '%s', line %d: value for immutable key '%s' ignored." msgstr "αρχείο '%s', γραμμή %d: τιμή για αμετάβλητο κλειδί '%s' αγνοήθηκε." #: ../src/common/fileconf.cpp:574 #, c-format msgid "file '%s': unexpected character %c at line %d." msgstr "αρχείο '%s': απροσδόκητος χαρακτήρας %c στη γραμμή %d." #: ../src/richtext/richtextbuffer.cpp:8358 #, fuzzy msgid "files" msgstr "Αρχείο" #: ../src/common/datetimefmt.cpp:1919 msgid "first" msgstr "πρώτο" #: ../src/html/helpwnd.cpp:1265 msgid "font size" msgstr "μέγεθος γραμματοσειράς" #: ../src/common/datetimefmt.cpp:1932 msgid "fourteenth" msgstr "δέκατο τέταρτο" #: ../src/common/datetimefmt.cpp:1922 msgid "fourth" msgstr "τέταρτο" #: ../src/common/appbase.cpp:695 msgid "generate verbose log messages" msgstr "δημιουργία αναλυτικών (verbose) μηνυμάτων καταγραφής (log)" #: ../src/richtext/richtextbuffer.cpp:12212 #: ../src/richtext/richtextbuffer.cpp:12322 #, fuzzy msgid "image" msgstr "Ώρα" #: ../src/common/tarstrm.cpp:796 msgid "incomplete header block in tar" msgstr "" #: ../src/common/xtixml.cpp:489 msgid "incorrect event handler string, missing dot" msgstr "εσφαλμένο string χειριστή event, λείπει τελεία" #: ../src/common/tarstrm.cpp:1381 msgid "incorrect size given for tar entry" msgstr "" #: ../src/common/tarstrm.cpp:993 msgid "invalid data in extended tar header" msgstr "" #: ../src/generic/logg.cpp:1050 msgid "invalid message box return value" msgstr "μη αποδεκτή τιμή επιστροφής παράθυρου μηνύματος" #: ../src/common/zipstrm.cpp:1445 msgid "invalid zip file" msgstr "μη έγκυρο συμπιεσμένο αρχείο" #: ../src/common/fontcmn.cpp:983 msgid "italic" msgstr "πλάγιο" #: ../src/common/fontcmn.cpp:973 msgid "light" msgstr "απαλό(light)" #: ../src/common/intl.cpp:293 #, c-format msgid "locale '%s' cannot be set." msgstr "η γλώσσα '%s' δεν μπορει να οριστεί" #: ../src/common/datetimefmt.cpp:2092 msgid "midnight" msgstr "μεσάνυκτα" #: ../src/common/datetimefmt.cpp:1937 msgid "nineteenth" msgstr "δέκατο ένατο" #: ../src/common/datetimefmt.cpp:1927 msgid "ninth" msgstr "ένατο" #: ../src/msw/dde.cpp:1119 msgid "no DDE error." msgstr "κανένα λάθος DDE" #: ../src/html/chm.cpp:327 msgid "no error" msgstr "κανένα λάθος" #: ../src/dfb/fontmgr.cpp:174 #, c-format msgid "no fonts found in %s, using builtin font" msgstr "" #: ../src/html/helpdata.cpp:655 msgid "noname" msgstr "ανώνυμο" #: ../src/common/datetimefmt.cpp:2091 msgid "noon" msgstr "μεσημέρι" #: ../src/richtext/richtextstyles.cpp:779 #, fuzzy msgid "normal" msgstr "Κανονικό" #: ../src/gtk/print.cpp:1218 ../src/gtk/print.cpp:1323 msgid "not implemented" msgstr "" #: ../src/common/cmdline.cpp:1315 msgid "num" msgstr "num" #: ../src/common/xtixml.cpp:259 msgid "objects cannot have XML Text Nodes" msgstr "τα αντικείμενα δεν μπορούν να έχουν XML κόμβους κειμένου" #: ../src/html/chm.cpp:339 msgid "out of memory" msgstr "ανεπαρκής μνήμη" #: ../src/richtext/richtextsizepage.cpp:340 #: ../src/richtext/richtextsizepage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:401 #: ../src/richtext/richtextsizepage.cpp:428 #: ../src/richtext/richtextsizepage.cpp:455 #: ../src/richtext/richtextsizepage.cpp:482 #: ../src/richtext/richtextsizepage.cpp:556 #: ../src/richtext/richtextsizepage.cpp:591 #: ../src/richtext/richtextsizepage.cpp:626 #: ../src/richtext/richtextsizepage.cpp:661 msgid "percent" msgstr "" #: ../src/common/debugrpt.cpp:519 msgid "process context description" msgstr "" #: ../src/richtext/richtextfontpage.cpp:186 #: ../src/richtext/richtextfontpage.cpp:189 msgid "pt" msgstr "" #: ../src/richtext/richtextfontpage.cpp:187 #: ../src/richtext/richtextborderspage.cpp:279 #: ../src/richtext/richtextborderspage.cpp:281 #: ../src/richtext/richtextborderspage.cpp:282 #: ../src/richtext/richtextborderspage.cpp:309 #: ../src/richtext/richtextborderspage.cpp:311 #: ../src/richtext/richtextborderspage.cpp:312 #: ../src/richtext/richtextborderspage.cpp:339 #: ../src/richtext/richtextborderspage.cpp:341 #: ../src/richtext/richtextborderspage.cpp:342 #: ../src/richtext/richtextborderspage.cpp:369 #: ../src/richtext/richtextborderspage.cpp:371 #: ../src/richtext/richtextborderspage.cpp:372 #: ../src/richtext/richtextborderspage.cpp:423 #: ../src/richtext/richtextborderspage.cpp:425 #: ../src/richtext/richtextborderspage.cpp:426 #: ../src/richtext/richtextborderspage.cpp:453 #: ../src/richtext/richtextborderspage.cpp:455 #: ../src/richtext/richtextborderspage.cpp:456 #: ../src/richtext/richtextborderspage.cpp:483 #: ../src/richtext/richtextborderspage.cpp:485 #: ../src/richtext/richtextborderspage.cpp:486 #: ../src/richtext/richtextborderspage.cpp:513 #: ../src/richtext/richtextborderspage.cpp:515 #: ../src/richtext/richtextborderspage.cpp:516 #: ../src/richtext/richtextmarginspage.cpp:201 #: ../src/richtext/richtextmarginspage.cpp:203 #: ../src/richtext/richtextmarginspage.cpp:204 #: ../src/richtext/richtextmarginspage.cpp:226 #: ../src/richtext/richtextmarginspage.cpp:228 #: ../src/richtext/richtextmarginspage.cpp:229 #: ../src/richtext/richtextmarginspage.cpp:249 #: ../src/richtext/richtextmarginspage.cpp:251 #: ../src/richtext/richtextmarginspage.cpp:252 #: ../src/richtext/richtextmarginspage.cpp:274 #: ../src/richtext/richtextmarginspage.cpp:276 #: ../src/richtext/richtextmarginspage.cpp:277 #: ../src/richtext/richtextmarginspage.cpp:315 #: ../src/richtext/richtextmarginspage.cpp:317 #: ../src/richtext/richtextmarginspage.cpp:318 #: ../src/richtext/richtextmarginspage.cpp:340 #: ../src/richtext/richtextmarginspage.cpp:342 #: ../src/richtext/richtextmarginspage.cpp:343 #: ../src/richtext/richtextmarginspage.cpp:363 #: ../src/richtext/richtextmarginspage.cpp:365 #: ../src/richtext/richtextmarginspage.cpp:366 #: ../src/richtext/richtextmarginspage.cpp:388 #: ../src/richtext/richtextmarginspage.cpp:390 #: ../src/richtext/richtextmarginspage.cpp:391 #: ../src/richtext/richtextsizepage.cpp:338 #: ../src/richtext/richtextsizepage.cpp:341 #: ../src/richtext/richtextsizepage.cpp:342 #: ../src/richtext/richtextsizepage.cpp:372 #: ../src/richtext/richtextsizepage.cpp:375 #: ../src/richtext/richtextsizepage.cpp:376 #: ../src/richtext/richtextsizepage.cpp:399 #: ../src/richtext/richtextsizepage.cpp:402 #: ../src/richtext/richtextsizepage.cpp:403 #: ../src/richtext/richtextsizepage.cpp:426 #: ../src/richtext/richtextsizepage.cpp:429 #: ../src/richtext/richtextsizepage.cpp:430 #: ../src/richtext/richtextsizepage.cpp:453 #: ../src/richtext/richtextsizepage.cpp:456 #: ../src/richtext/richtextsizepage.cpp:457 #: ../src/richtext/richtextsizepage.cpp:480 #: ../src/richtext/richtextsizepage.cpp:483 #: ../src/richtext/richtextsizepage.cpp:484 #: ../src/richtext/richtextsizepage.cpp:554 #: ../src/richtext/richtextsizepage.cpp:557 #: ../src/richtext/richtextsizepage.cpp:558 #: ../src/richtext/richtextsizepage.cpp:589 #: ../src/richtext/richtextsizepage.cpp:592 #: ../src/richtext/richtextsizepage.cpp:593 #: ../src/richtext/richtextsizepage.cpp:624 #: ../src/richtext/richtextsizepage.cpp:627 #: ../src/richtext/richtextsizepage.cpp:628 #: ../src/richtext/richtextsizepage.cpp:659 #: ../src/richtext/richtextsizepage.cpp:662 #: ../src/richtext/richtextsizepage.cpp:663 msgid "px" msgstr "" #: ../src/common/accelcmn.cpp:188 #, fuzzy msgid "rawctrl" msgstr "ctrl" #: ../src/html/chm.cpp:333 msgid "read error" msgstr "σφάλμα ανάγνωσης" #: ../src/common/zipstrm.cpp:1882 #, c-format msgid "reading zip stream (entry %s): bad crc" msgstr "ανάγνωση ροής zip (εγγραφή %s): εσφαλμένο crc " #: ../src/common/zipstrm.cpp:1877 #, c-format msgid "reading zip stream (entry %s): bad length" msgstr "ανάγνωση ροής zip (εγγραφή %s): λανθασμένο μήκος" #: ../src/msw/dde.cpp:1162 msgid "reentrancy problem." msgstr "πρόβλημα επανεισαγωγής (reentrancy problem)." #: ../src/common/datetimefmt.cpp:1920 msgid "second" msgstr "δεύτερο" #: ../src/html/chm.cpp:337 msgid "seek error" msgstr "σφάλμα εντοπισμού" #: ../src/common/datetimefmt.cpp:1935 msgid "seventeenth" msgstr "δέκατο-έβδομο" #: ../src/common/datetimefmt.cpp:1925 msgid "seventh" msgstr "έβδομο" #: ../src/common/accelcmn.cpp:186 msgid "shift" msgstr "shift" #: ../src/common/appbase.cpp:685 msgid "show this help message" msgstr "εμφάνιση αυτού του μηνύματος βοηθείας" #: ../src/common/datetimefmt.cpp:1934 msgid "sixteenth" msgstr "δέκατο έκτο" #: ../src/common/datetimefmt.cpp:1924 msgid "sixth" msgstr "έκτο" #: ../src/common/appcmn.cpp:227 msgid "specify display mode to use (e.g. 640x480-16)" msgstr "" "διευκρινήστε τον τρόπο απεικόνισης που θα χρησιμοποιηθεί (π.χ. 640x480-16)" #: ../src/common/appcmn.cpp:213 msgid "specify the theme to use" msgstr "καθορίστε το θέμα που θα χρησιμοποιηθεί" #: ../src/richtext/richtextbuffer.cpp:8876 msgid "standard/circle" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8877 msgid "standard/circle-outline" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8879 msgid "standard/diamond" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8878 msgid "standard/square" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8880 msgid "standard/triangle" msgstr "" #: ../src/common/zipstrm.cpp:1782 msgid "stored file length not in Zip header" msgstr "το μήκος του αποθκευμένου αρχείου δεν υπάρχει στην κεφαλίδα Zip" #: ../src/common/cmdline.cpp:1311 msgid "str" msgstr "str" #: ../src/common/fontcmn.cpp:794 ../src/common/fontcmn.cpp:969 msgid "strikethrough" msgstr "" #: ../src/common/tarstrm.cpp:1003 ../src/common/tarstrm.cpp:1025 #: ../src/common/tarstrm.cpp:1507 ../src/common/tarstrm.cpp:1529 msgid "tar entry not open" msgstr "" #: ../src/common/datetimefmt.cpp:1928 msgid "tenth" msgstr "δέκατο" #: ../src/msw/dde.cpp:1126 msgid "the response to the transaction caused the DDE_FBUSY bit to be set." msgstr "η απάντηση στη συναλλαγή ανάγκασε το DDE_FBUSY bit να τεθεί." #: ../src/common/datetimefmt.cpp:1921 msgid "third" msgstr "τρίτο" #: ../src/common/datetimefmt.cpp:1931 msgid "thirteenth" msgstr "δέκατο τρίτο" #: ../src/common/datetimefmt.cpp:1725 msgid "today" msgstr "σήμερα" #: ../src/common/datetimefmt.cpp:1727 msgid "tomorrow" msgstr "αύριο" #: ../src/common/fileconf.cpp:1979 #, c-format msgid "trailing backslash ignored in '%s'" msgstr "" #: ../src/gtk/aboutdlg.cpp:218 msgid "translator-credits" msgstr "" #: ../src/common/datetimefmt.cpp:1930 msgid "twelfth" msgstr "δωδέκατο" #: ../src/common/datetimefmt.cpp:1938 msgid "twentieth" msgstr "εικοστό" #: ../src/common/fontcmn.cpp:789 ../src/common/fontcmn.cpp:965 msgid "underlined" msgstr "υπογεγραμμένο" #: ../src/common/fileconf.cpp:2014 #, c-format msgid "unexpected \" at position %d in '%s'." msgstr "απροσδόκητο \" στη θέση %d στο '%s'." #: ../src/common/tarstrm.cpp:1045 #, fuzzy msgid "unexpected end of file" msgstr "Απροσδόκητο τέλος αρχείου κατά την ανάγνωση πόρου." #: ../src/generic/progdlgg.cpp:399 ../src/common/tarstrm.cpp:371 #: ../src/common/tarstrm.cpp:394 ../src/common/tarstrm.cpp:425 msgid "unknown" msgstr "άγνωστο" #: ../src/common/xtixml.cpp:253 #, c-format msgid "unknown class %s" msgstr "άγνωστη κλάση %s" #: ../src/common/regex.cpp:261 ../src/html/chm.cpp:351 msgid "unknown error" msgstr "άνωστο λάθος" #: ../src/msw/dialup.cpp:490 #, c-format msgid "unknown error (error code %08x)." msgstr "άνωστο λάθος (κωδικός λάθους %08x)" #: ../src/msw/wince/filefnwce.cpp:172 msgid "unknown seek origin" msgstr "άγνωστη αφετηρία(origin) αναζήτησης(seek)" #: ../src/common/fmapbase.cpp:834 #, c-format msgid "unknown-%d" msgstr "άγνωστο-%d" #: ../src/common/docview.cpp:507 msgid "unnamed" msgstr "απροσδιόριστο" #: ../src/common/docview.cpp:1606 #, c-format msgid "unnamed%d" msgstr "απροσδιόριστο%d" #: ../src/common/zipstrm.cpp:1796 ../src/common/zipstrm.cpp:2184 msgid "unsupported Zip compression method" msgstr "μη υποστηριζόμενη μέθοδος συμπίεσης Zip" #: ../src/common/translation.cpp:1883 #, c-format msgid "using catalog '%s' from '%s'." msgstr "χρήση καταλόγου '%s' από '%s'" #: ../src/html/chm.cpp:335 msgid "write error" msgstr "σφάλμα εγγραφής" #: ../src/common/time.cpp:318 msgid "wxGetTimeOfDay failed." msgstr "το wxGetTimeOfDay απέτυχε." #: ../src/gtk/print.cpp:987 msgid "wxPrintout::GetPageInfo gives a null maxPage." msgstr "" #: ../src/osx/carbon/dataview.cpp:1303 msgid "wxWidget control pointer is not a data view pointer" msgstr "" #: ../src/osx/carbon/dataview.cpp:907 #, fuzzy msgid "wxWidget's control not initialized." msgstr "Δεν είναι δυνατή η αρχικοποίηση απεικόνησης." #: ../src/motif/app.cpp:245 #, c-format msgid "wxWidgets could not open display for '%s': exiting." msgstr "" "Η βιλιοθήκη wxWidgets δεν μπορεί να ανοίξει την απεικόνιση για το '%s': " "έξοδος..." #: ../src/x11/app.cpp:164 msgid "wxWidgets could not open display. Exiting." msgstr "Η βιλιοθήκη wxWidgets δεν μπορεί να ανοίξει την απεικόνιση. 'Εξοδος..." #: ../src/richtext/richtextsymboldlg.cpp:434 msgid "xxxx" msgstr "" #: ../src/common/datetimefmt.cpp:1726 msgid "yesterday" msgstr "χθες" #: ../src/common/zstream.cpp:251 ../src/common/zstream.cpp:426 #, c-format msgid "zlib error %d" msgstr "σφάλμα zlib %d" #: ../src/richtext/richtextliststylepage.cpp:496 #: ../src/richtext/richtextbulletspage.cpp:301 msgid "~" msgstr "" #~ msgid "Print preview" #~ msgstr "Προεπισκόπηση εκτύπωσης" #, fuzzy #~ msgid "&Preview..." #~ msgstr " Προεπισκόπηση" #, fuzzy #~ msgid "Preview..." #~ msgstr " Προεπισκόπηση" #~ msgid "&Save..." #~ msgstr "&Αποθήκευση..." #, fuzzy #~ msgid "About " #~ msgstr "&Περί..." #~ msgid "All files (*.*)|*" #~ msgstr "Όλα τα αρχεία (*.*)|*" #~ msgid "Cannot initialize SciTech MGL!" #~ msgstr "Δεν είναι δυνατή η αρχικοποίηση του SciTech MGL" #~ msgid "Cannot initialize display." #~ msgstr "Δεν είναι δυνατή η αρχικοποίηση απεικόνησης." #~ msgid "Cannot start thread: error writing TLS" #~ msgstr "" #~ "Δεν είναι δυνατή η εκκίνηση του ΄νηματος εκτέλεσης (thread): σφάλμα κατά " #~ "την εγγραφή του TLS" #~ msgid "Close\tAlt-F4" #~ msgstr "Κλείσιμο\tAlt-F4" #~ msgid "Couldn't create cursor." #~ msgstr "Δεν ήταν δυνατή η δημιουργία δείκτη ποντικιού." #~ msgid "Directory '%s' doesn't exist!" #~ msgstr "Ο κατάλογος '%s' δεν υπάρχει!" #~ msgid "File %s does not exist." #~ msgstr "Το αρχείο %s δεν υπάρχει." #~ msgid "Mode %ix%i-%i not available." #~ msgstr "Η κατάσταση λειτουργίας (mode) %ix%i-%i δεν είναι διαθέσιμη." #~ msgid "Paper Size" #~ msgstr "Μέγεθος Χαρτιού" #~ msgid "&Goto..." #~ msgstr "&Μετάβαση..." #~ msgid "<<" #~ msgstr "<<" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">>|" #~ msgstr ">>|" #~ msgid "Archive doesnt contain #SYSTEM file" #~ msgstr "Το αρχείο δεν περιέχει αρχείο #SYSTEM" #~ msgid "Can't check image format of file '%s': file does not exist." #~ msgstr "" #~ "Δεν είναι δυνατή η εξακρίβωση του τύπου του αρχείου %s: το αρχείο δεν " #~ "υπάρχει." #~ msgid "Can't load image from file '%s': file does not exist." #~ msgstr "" #~ "Δεν είναι δυνατή η ανάγνωση της εικόνας από το αρχείο '%s': Το αρχείο δεν " #~ "υπάρχει." #~ msgid "Cannot convert dialog units: dialog unknown." #~ msgstr "" #~ "Δεν είναι δυνατή η μετατροπή των μονάδων διαλόγου(dialog units): άγνωστο " #~ "παράθυρο διαλόγου." #~ msgid "Cannot convert from the charset '%s'!" #~ msgstr "Δεν είναι δυνατή η μετατροπη από το σύνολο χαρακτήρων '%s'!" #~ msgid "Cannot find container for unknown control '%s'." #~ msgstr "" #~ "Δεν είναι δυνατή η εύρεση φορέα(container) για άγνωστο στοιχείο ελέγχου" #~ "(control) '%s'." #~ msgid "Cannot find font node '%s'." #~ msgstr "" #~ "Δεν είναι δυνατή η εύρεση καταστάσεως γραμματοσειράς(font mode) '%s'." #~ msgid "Cannot open file '%s'." #~ msgstr "Δεν είναι δυνατό το άνοιγμα του αρχείου '%s'." #~ msgid "Cannot parse coordinates from '%s'." #~ msgstr "Δεν είναι δυνατή η ανάγνωση συντεταγμένων από '%s'." #~ msgid "Cannot parse dimension from '%s'." #~ msgstr "Δεν είναι δυνατή η ανάγνωση διαστάσεων από '%s'." #~ msgid "Cant create the thread event queue" #~ msgstr "Δεν είναι δυνατή η δημιουργία της ουράς συμβάντων των νημάτων" #, fuzzy #~ msgid "Click to cancel this window." #~ msgstr "Κλείσιμο αυτού του παραθύρου." #, fuzzy #~ msgid "Click to confirm your selection." #~ msgstr "Κάνετε κλικ για να επιβεβαιώσετε την επιλογή γραμματοσειράς." #~ msgid "Could not unlock mutex" #~ msgstr "Δεν ήταν δυνατό το ξεκλείδωμα του mutex" #~ msgid "Error while waiting on semaphore" #~ msgstr "Σφάλμα κατά την αναμονή στη σημαφόρο" #, fuzzy #~ msgid "Failed to connect to session manager: %s" #~ msgstr "Αποτυχία %s της σύνδεσης μέσω τηλεφώνου : %s" #~ msgid "Failed to create a status bar." #~ msgstr "Αποτυχία δημιουργίας μιας μπάρας κατάστασης (status bar)" #~ msgid "Failed to register OpenGL window class." #~ msgstr "Απέτυχε η θέση της κλάσης του παραθύρου OpenGL" #~ msgid "Fatal error" #~ msgstr "Μοιραίο σφάλμα" #~ msgid "Fatal error: " #~ msgstr "Μοιραίο σφάλμα: " #~ msgid "Goto Page" #~ msgstr "Μετάβαση στη Σελίδα" #, fuzzy #~ msgid "Help : %s" #~ msgstr "Βοήθεια: %s" #~ msgid "I64" #~ msgstr "I64" #~ msgid "Internal error, illegal wxCustomTypeInfo" #~ msgstr "Εσωτερικό σφάλμα, μη έγκυρο wxCustomTypeInfo" #~ msgid "Invalid XRC resource '%s': doesn't have root node 'resource'." #~ msgstr "" #~ "Λανθασμένος XRC πόρος '%s': δεν έχει ριζικό(root) κόμβο(node) 'resource'." #~ msgid "No handler found for XML node '%s', class '%s'!" #~ msgstr "" #~ "Δεν βρέθηκε κανένας χειριστής (handler) για τον XML κόμβο(node) '%s', τάξη" #~ "(class) '%s'!" #, fuzzy #~ msgid "No image handler for type %ld defined." #~ msgstr "Δεν έχει οριστεί χειριστής εικόνας για τον τύπο %d." #, fuzzy #~ msgid "Owner not initialized." #~ msgstr "Δεν είναι δυνατή η αρχικοποίηση απεικόνησης." #, fuzzy #~ msgid "Passed item is invalid." #~ msgstr "'%s' δεν ισχύει" #~ msgid "Passing a already registered object to SetObjectName" #~ msgstr "Δόθηκε ένα ήδη registered αντικείμενο στην SetObjectName" #~ msgid "Program aborted." #~ msgstr "Το πρόγραμμα ματαιώθηκε." #~ msgid "Referenced object node with ref=\"%s\" not found!" #~ msgstr "Ο αναφερόμενος κομβος αντικειμένου με ref=\"%s\" δεν βρέθηκε!" #~ msgid "Resource files must have same version number!" #~ msgstr "Τα αρχεία πόρων πρέπει να έχουν τον ίδιο αριθμό έκδοσης!" #, fuzzy #~ msgid "Search!" #~ msgstr "Αναζήτηση" #~ msgid "Sorry, could not open this file for saving." #~ msgstr "" #~ "Συγγνώμη, είναι αδύνατο το άνοιγμα αυτού του αρχείου για αποθήκευση." #~ msgid "Sorry, could not save this file." #~ msgstr "Συγγνώμη, δεν μπόρεσε να αποθηκευθεί αυτό το αρχείο." #~ msgid "Sorry, print preview needs a printer to be installed." #~ msgstr "" #~ "Συγγνώμη, η προεπισκόπηση εκτύπωσης χρειάζεται έναν εγκατεστημένο " #~ "εκτυπωτή." #~ msgid "Status: " #~ msgstr "Κατάσταση: " #~ msgid "" #~ "Streaming delegates for not already streamed objects not yet supported" #~ msgstr "" #~ "Οι εκπροσωπήσεις ροών για μη ροοποιημένα αντικείμενα δεν υποστηρίζονται " #~ "ακόμα" #~ msgid "Subclass '%s' not found for resource '%s', not subclassing!" #~ msgstr "" #~ "Η υπο-κλάση '%s' δεν βρέθηκε για τον πόρο '%s', δεν θα γίνει subclassing!" #~ msgid "" #~ "The file '%s' couldn't be opened.\n" #~ "It has been removed from the most recently used files list." #~ msgstr "" #~ "Το αρχείο '%s' δεν μπόρεσε να ανοιχτεί.\n" #~ "Αφαιρέθηκε από την λίστα με τα πρόσφατα χρησιμοποιημένα αρχεία." #~ msgid "The path '%s' contains too many \"..\"!" #~ msgstr "Η διαδρομή '%s' περιέχει πάρα πολλά \"..\"!" #~ msgid "Trying to solve a NULL hostname: giving up" #~ msgstr "" #~ "Προσπάθεια διαλεύκανσης ενός NULL ονόματος διακομιστή(hostname): γίνεται " #~ "παραίτηση" #~ msgid "Unknown style flag " #~ msgstr "’γνωστη σημαία στύλ (style flag)." #~ msgid "Warning" #~ msgstr "Προειδοποίηση" #~ msgid "XRC resource '%s' (class '%s') not found!" #~ msgstr "XRC resource '%s' (τάξη(class) '%s') δεν βρέθηκε!" #, fuzzy #~ msgid "XRC resource: Cannot create animation from '%s'." #~ msgstr "XRC resource: Δεν είναι δυνατή η δημιουργία bitmap από '%s'." #~ msgid "XRC resource: Cannot create bitmap from '%s'." #~ msgstr "XRC resource: Δεν είναι δυνατή η δημιουργία bitmap από '%s'." #, fuzzy #~ msgid "" #~ "XRC resource: Incorrect colour specification '%s' for attribute '%s'." #~ msgstr "" #~ "XRC resource: Λανθασμένος καθορισμός χρώματος '%s' για την ιδιότητα '%s'." #~ msgid "[EMPTY]" #~ msgstr "[ΚΕΝΟ]" #~ msgid "catalog file for domain '%s' not found." #~ msgstr "αρχείο καταλόγου για την περιοχή (domain) '%s' δεν βρέθηκε." #~ msgid "delegate has no type info" #~ msgstr "ο εκπρόσωπος(delegate) δεν έχει πληροφορίες τύπου" #, fuzzy #~ msgid "encoding %i" #~ msgstr "κωδικοποίηση %s" #~ msgid "looking for catalog '%s' in path '%s'." #~ msgstr "γίνεται εύρεση του καταλόγου '%s' στο μονοπάτι '%s'." #~ msgid "wxSocket: invalid signature in ReadMsg." #~ msgstr "wxSocket: λανθασμένη υπογραφή (invalid signature) στο ReadMsg." #~ msgid "wxSocket: unknown event!." #~ msgstr "wxSocket: άγνωστο γεγονός (event)!" #~ msgid "|<<" #~ msgstr "|<<" #, fuzzy #~ msgid " Couldn't create the UnicodeConverter" #~ msgstr "Δεν ήταν δυνατή η δημιουργία χρονοδιακόπτη (timer)" #~ msgid "#define %s must be an integer." #~ msgstr "#define %s πρέπει να είναι ακέραιος (integer)." #~ msgid "%s not a bitmap resource specification." #~ msgstr "%s δεν είναι καθορισμός πόρου τύπου bitmap ( bitmap resource )" #~ msgid "%s not an icon resource specification." #~ msgstr "%s δεν είναι καθορισμός πόρου τύπου εικονιδίου ( icon resource )" #~ msgid "%s: ill-formed resource file syntax." #~ msgstr "%s: κακή (ill-formed) σύνταξη αρχείου πόρων. ( resource file )" #~ msgid "&Open" #~ msgstr "&Ανοιγμα" #~ msgid "&Print" #~ msgstr "&Εκτύπωση" #~ msgid "" #~ ", expected static, #include or #define\n" #~ "while parsing resource." #~ msgstr "" #~ ", αναμενόταν static, #include ή #define\n" #~ "κατά την ανάγνωση του πόρου." #~ msgid "Bitmap resource specification %s not found." #~ msgstr "Δεν βρέθηκε ο καθοριμός πόρου bitmap %s" #~ msgid "" #~ "Could not resolve control class or id '%s'. Use (non-zero) integer " #~ "instead\n" #~ " or provide #define (see manual for caveats)" #~ msgstr "" #~ "Δεν ήταν δυνατή η αντιστοίχηση της κλάσης ελέγχου ή του id '%s'. " #~ "Χρησιμοποιήστε (μη-μηδενικό) ακέραιο\n" #~ " ή μία οδηγία #define (ανατρέξατε στο εγχειρίδιο για λεπτομέρειες)" #~ msgid "" #~ "Could not resolve menu id '%s'. Use (non-zero) integer instead\n" #~ "or provide #define (see manual for caveats)" #~ msgstr "" #~ "Δεν ήταν δυνατή η αντιστοίχηση του menu id '%s'. Χρησιμοποιήστε (μη-" #~ "μηδενικό) ακέραιο\n" #~ "ή μία οδηγία #define (ανατρέξατε στο εγχειρίδιο για λεπτομέρειες)" #, fuzzy #~ msgid "Couldn't end the context on the overlay window" #~ msgstr "" #~ "Δεν ήταν δυνατή η ανάκτηση toy τρέχοντος δείκτη νήματος εκτέλεσης(thread)" #~ msgid "Expected '*' while parsing resource." #~ msgstr "Αναμενόταν '*' κατά την ανάγνωση του πόρου(resource)." #~ msgid "Expected '=' while parsing resource." #~ msgstr "Αναμενόταν '=' κατά την ανάγνωση του πόρου(resource)." #~ msgid "Expected 'char' while parsing resource." #~ msgstr "Αναμενόταν 'char' κατά την ανάγνωση του πόρου(resource)." #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "Απέτυχε η έυρεση XBM πόρου %s.\n" #~ "Ξεχάσατε να χρησιμοποιήσετε το wxResourceLoadBitmapData ;" #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadIconData?" #~ msgstr "" #~ "Απέτυχε η έυρεση XBM πόρου %s.\n" #~ "Ξεχάσατε να χρησιμοποιήσετε το wxResourceLoadIconData ;" #~ msgid "" #~ "Failed to find XPM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "Απέτυχε η έυρεση XPM πόρου %s.\n" #~ "Ξεχάσατε να χρησιμοποιήσετε το wxResourceLoadBitmapData ;" #~ msgid "Failed to get clipboard data." #~ msgstr "Αποτυχία λήψης των δεδομένων του προχείρου (clipboard)." #~ msgid "Failed to load shared library '%s' Error '%s'" #~ msgstr "" #~ "Αποτυχία φόρτωσης της κοινής βιβλιοθήκης (shared library) '%s' Σφάλμα '%s'" #~ msgid "Found " #~ msgstr "Βρέθηκαν " #~ msgid "Icon resource specification %s not found." #~ msgstr "Δεν βρέθηκε ο καθοριμός πόρου bitmap %s" #~ msgid "Ill-formed resource file syntax." #~ msgstr "Λανθασμένη συνταξη αρχείου πόρου." #~ msgid "Long Conversions not supported" #~ msgstr "Οι μετατροπές Long δεν υποστηρίζονται" #~ msgid "No XPM icon facility available!" #~ msgstr "Δεν υπάρχει μονάδα(facility) εικονιδίων XPM διαθέσιμη!" #~ msgid "Option '%s' requires a value, '=' expected." #~ msgstr "Η επιλογή '%s' απαιτεί μια τιμή, αναμενόταν '='." #, fuzzy #~ msgid "Select all" #~ msgstr "Επιλογή &Ολων" #~ msgid "String conversions not supported" #~ msgstr "Οι μετατροπές strings δεν υποστηρίζονται" #~ msgid "Unexpected end of file while parsing resource." #~ msgstr "Απροσδόκητο τέλος αρχείου κατά την ανάγνωση πόρου." #~ msgid "Unrecognized style %s while parsing resource." #~ msgstr "Μη-αναγνωρίσιμο στύλ %s κατα την ανάγνωση πόρου." #~ msgid "Video Output" #~ msgstr "Έξοδος Εικόνας" #~ msgid "Warning: attempt to remove HTML tag handler from empty stack." #~ msgstr "" #~ "Προειδοποίηση: προσπάθεια απομάκρυνσης διαχειριστή ετικετών (tag handler) " #~ "HTML από άδεια στοίβα (stack)." #~ msgid "establish" #~ msgstr "εδραίωσε" #~ msgid "initiate" #~ msgstr "αρχικοποίησε" #~ msgid "invalid eof() return value." #~ msgstr "λανθασμένη τιμή επιστροφής του eof()." #~ msgid "unknown line terminator" #~ msgstr "άγνωστο τερματικό γραμμής" #~ msgid "writing" #~ msgstr "γίνεται εγγραφή" #~ msgid "." #~ msgstr "." #~ msgid "Cannot open URL '%s'" #~ msgstr "Δεν είναι δυνατό to άνοιγμα του URL '%s'" #~ msgid "Error " #~ msgstr "Σφάλμα " #~ msgid "Failed to create directory %s/.gnome." #~ msgstr "Απέτυχε η δημιουργία καταλόγου '%s'/.gnome." #~ msgid "Failed to create directory %s/mime-info." #~ msgstr "Απέτυχε η δημιουργία καταλόγου '%s'/mime-info." #~ msgid "MP Thread Support is not available on this System" #~ msgstr "Η υποστήριξη MP νημάτων δεν είναι διαθέσιμη σε αυτό το σύστημα" #~ msgid "Mailcap file %s, line %d: incomplete entry ignored." #~ msgstr "Mailcap αρχείο %s, γραμμή %d: ημιτελής εγγραφή αγνοήθηκε." #~ msgid "Mime.types file %s, line %d: unterminated quoted string." #~ msgstr "Mime.types αρχείο %s, γραμμή %d: μη τερματιζόμενο quoted string." #~ msgid "Unknown field in file %s, line %d: '%s'." #~ msgstr "’γνωστο πεδίο στο αρχείο %s, γραμμή %d: '%s'." #~ msgid "bold " #~ msgstr "έντονο " #~ msgid "can't query for GUI plugins name in console applications" #~ msgstr "" #~ "δεν είναι δυνατή η αναζήτηση για επεκτάσεις GUI σε εφαρμογές κονσόλας" #~ msgid "light " #~ msgstr "απαλό(light) " #~ msgid "underlined " #~ msgstr "υπογεγραμμένο " #~ msgid "unsupported zip archive" #~ msgstr "Μη υποστηριζόμενο συμπιεσμένο αρχείο zip" #, fuzzy #~ msgid "" #~ "Failed to get stack backtrace:\n" #~ "%s" #~ msgstr "Αποτυχία λήψης πορείας στοίβας" #~ msgid "Loading Grey Ascii PNM image is not yet implemented." #~ msgstr "Η φόρτωση εικόνας Grey Ascii PNM δεν έχει υλοποιηθεί ακόμα." #~ msgid "Loading Grey Raw PNM image is not yet implemented." #~ msgstr "Η φόρτωση εικόνας Grey Raw PNM δεν έχει υλοποιηθεί ακόμα." #~ msgid "Cannot wait on thread to exit." #~ msgstr "Δεν είναι δυνατή η αναμονή για τον τερματισμό του νήματος." #~ msgid "Could not load Rich Edit DLL '%s'" #~ msgstr "Δεν ήταν δυνατή η φόρτωση του Rich DLL '%s'" #~ msgid "ZIP handler currently supports only local files!" #~ msgstr "ο χειριστής ZIP προς το παρόν υποστηρίζει μόνο τοπικά αρχεία!" #~ msgid "" #~ "can't seek on file descriptor %d, large files support is not enabled." #~ msgstr "" #~ "αδύνατη η αναζήτηση(seek) στον περιγραφέα(descriptor) αρχείου %d, η " #~ "υποστήριξη μεγάλων αρχείων δεν είναι ενεργοποιημένη." #~ msgid "More..." #~ msgstr "Περισσότερα..." #~ msgid "Setup" #~ msgstr "Οργάνωση(Setup)" #~ msgid "/#SYSTEM" #~ msgstr "/#SYSTEM" #~ msgid "GetUnusedColour:: No Unused Color in image " #~ msgstr "GetUnusedColour:: Κανένα Αχρησιμοποίητο Χρώμα στην εικόνα " #~ msgid "" #~ "Can't create list control window, check that comctl32.dll is installed." #~ msgstr "" #~ "Δεν είναι δυνατή η δημιουργία του στοιχείου ελέγχου λίστας (list " #~ "control). Ελέγξτε ότι το comctl32.dll είναι εγατεστημένο." #~ msgid "Can't delete value of key '%s'" #~ msgstr "Δεν είναι δυνατή η διαγρσφή του κλειδιού '%s'" #~ msgid "gmtime() failed" #~ msgstr "το gmtime() απέτυχε" #~ msgid "mktime() failed" #~ msgstr "η mktime() απέτυχε" #~ msgid "%d" #~ msgstr "%d" #~ msgid "%d...%d" #~ msgstr "%d...%d" #~ msgid "Can't create dialog using memory template" #~ msgstr "" #~ "Δεν είναι δυνατή η δημιουργία του διαλόγου με τη χρήση προτύπου μνήμης. " #~ "(memory template)" #~ msgid "Can't create dialog using template '%ul'" #~ msgstr "" #~ "Δεν είναι δυνατή η δημιουργία του διαλόγου με τη χρήση του προτύπου '%ul'" #~ msgid "Did you forget to include wx/os2/wx.rc in your resources?" #~ msgstr "" #~ "Ξεχάσατε να συμπεριλάβετε (include) το wx/os2/wx.rc στους πόρους σας " #~ "(resources) ;" #~ msgid "Failed to create dialog. Incorrect DLGTEMPLATE?" #~ msgstr "Απέτυχε η δημιουργία παράθυρου διαλόγου. Λανθασμένο DLGTEMPLATE ;" #~ msgid "Fatal error: exiting" #~ msgstr "Μοιραίο σφάλμα: έξοδος" #~ msgid "" #~ "HTML files (*.htm)|*.htm|HTML files (*.html)|*.html|Help books (*.htb)|*." #~ "htb|Help books (*.zip)|*.zip|HTML Help Project (*.hhp)|*.hhp|All files (*." #~ "*)|*" #~ msgstr "" #~ "Αρχεία HTML (*.htm)|*.htm|Αρχεία HTML (*.html)|*.html|Βιβλία βοηθείας (*." #~ "htb)|*.htb|Βιβλία βοηθείας (*.zip)|*.zip|Project HTML βοήθειας (*.hhp)|*." #~ "hhp|Ολα τα αρχεία (*.*)|*" #~ msgid "Load file" #~ msgstr "Φόρτωση αρχείου" #~ msgid "Save file" #~ msgstr "Αποθήκευση αρχείου" #~ msgid "illegal scrollbar selector %d" #~ msgstr "παράνομος επιλογέας(selector) γραμμής κύλισης(scrollbar) %d" #~ msgid "wxDllLoader failed to GetSymbol '%s'" #~ msgstr "Αποτυχία του wxDllLoader να κάνει GetSymbol '%s'" #~ msgid "wxDynamicLibrary failed to GetSymbol '%s'" #~ msgstr "Αποτυχία του wxDynamicLibrary να κάνει GetSymbol '%s'" ginkgocadx-3.8.7/cadxcore/lang/es/000077500000000000000000000000001314736454600170045ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/es/cadxcore.mo000066400000000000000000003124061314736454600211370ustar00rootroot00000000000000?*  T0pF1p;xpPpq6$qQ[q7q/qIr_r<~r1r#r#s5s6Nss!s2s<s>1tpt t3t4t:u;u?uWufu uuuu uu uuu0u/v2Fv1yv'v,v0w+1w)]w.w-w,w.x-@x/nx/x7x.y,5y:by7y8y5z)Dz,nz/z:zH{O|X|a|j||||| ||||| |}}}#})}/}5}=}\}5^}C}}}}}}~ ~ $~ /~ :~ E~ P~ [~ e~ q~~~~~~~ ~~~~~~~~~~-FWov z  , 0(= f t #ǀЀ+ր3 6W\(b4: % /%;ap  & ") 2 =Hf  ˃у  *&QX ` k v % Ԅ߄  +9Se. څ "#:O U cms . 2LT huz  ͇ և-"1DWs#؈  "/AT%o&ԉ & =KS[ap'v m֊8D}  ŋ Ћ܋:, <H]n s ̌ &5 <J5Y/0Ս  # 0 < I U cm" ʎ ڎ 6&2)Y"&͏.I_o~А(,1 : GQ iv0ؑ6 H TuD"%=!W y#֓ "<Vl'?8;=Sy[͕$)1N'4'&D kyɗ+&?X}r1O"r 2ʙ(# 0Ga={՚#-J+QQ}ϛ (:Og{ Ü%Ԝ 6Jbu# ȝӝf,)=4Pk:{+֟ 1 ?U esx-H O Y e q} šۡ2 +7Rb|a_' (77`BBۤ7&Pw ҥ   +D X eqC .6';cs   ҧ ݧ   * 5@IM1PV9éة.Ihw l' .9N_|C ׭1!Egzۮ - :#Mq"ϯ1"$'G%oȰ ' HUi4zJ  "(-3 < J Wct{ ò̲Ӳ ز .6J ` ku ͳֳ! ^s4w ƴϴ@״@BY   õе յ1+']*ȶٶ3< COWvE Y z ȸڸ9 (/4C_dv ϹQTR!Һ< ?F ^"k  ̻ϻ һ޻   %3B GQc z" Ҽ  5 ITgv~  ӽݽ  . ;#Hl6u  ž Ѿݾ1-6d{#ҿ ڿ  7 ?I ^hw    ! +6>G M Y g(s#  (1C S^m| $ 9 FN"h># 6C\S{!W: ?  -"Mp v%- "5>F    %-5<MP    ; P[v*  + DR fs3-3aHHPp! =DX ht    ' 4 ?1K } +E N\kF  (, A KXt  &'EKZjy(".3<B\t 0Ljpu}     ":Yp    #"FL$f &&! 9.ZC9 "?%^&B?3.;b3%20 0#N>r'8;L3$H%*@P%8A(2T[5(G/w%7? _J^S *] & 8Tp   "(3=$q%"!8-W/)\?s:<++W_ w%  "7 LY x F# (2L g r.| ,-<@FMg %GGF     # , 6 @!L(n0    9F J8TM}YlxP&6]!M8!Z'v'"-"02S88  )13e v!$-* ,5bhpl_dil{ *W:(Oc$KS$4x7J'0BX1""!<5.r";LHM:7?0pt    ="7`?949G=77;/:k9;=<Z?><9SA>?<N6<<J<H );M_ hr    $AJT       ) 3?PRTX]c s }')F"_     * B U p u <     < H X C` 9 %   $ <6 Ds     ( %  4  B  O '] 2 #          ! +. )Z         * &,Fs|    '!   4;$Ch'!=R c.q+  "0H9b6 1>C ^l u  3 4Jbx"$  '.?V(r!1"1 P\s  1 r:S $7 G R ]i> !' -8K\cu-.7GHX 7:5 IVjr{ ,   .: M;X.&&8 J ku,C]u " '5Kj4s$0#@dv #M8 I "g - - - !"/!R!p! !!!!("A1"s"T"@"Q##Tu#.#6#0$0K$W|$$$) %07%h%y%-%%%%@&\&x&&&79'kq'''? (L(*i(%((!(+(G")!j)%)#))))9)<6*s** ****** +&+=+F+^+2m++(+++% ,0,E,a,y,,*, ,,--&0-|W-1-I.P. p."...D.'/&0/7W//6/7/0"0208030&1 .1 :1F1X1j1s11'1111J1 62(B2k2!{22U"3x3%(4N43h4=4R4=-5k55,555 66*6"D6 g6 u66666 666 667!7=7Z7Ka7777#7 8838J8\8m8|8888 8 8 8 8 8 8 9 9 9 '929;9?9=B9999P;: ::: :&:& ;%4;Z;y;;; ;;*n= > >>>!>&?T/? ???????@0@C@H@c@~@@@ @<@ A1#A/UA A A*A2A5A"5B"XB#{BBBB&BC*C%CCiCzCC1CCTC:DIDQDYD\DaDgDoDxDDDDDD DDDDDDEE &E0E7E >ELE\EmE EEEEE E EE! F /F:F NF [FfF4F FSFG9GWGlGGGYGYG]FHH HH HH H HHHI%.I/TI0I/IIIIJ+JFJZJcJ zJJJJJJQKQoK)K KK K L L3LOL fLoqL LLLL M&M-MBMUM^M|M M!MMMMpMskN N4NOA:O4|OOOO6O P&P6P;PJP_PbP ePqPPPP PPPPP PPP Q%Q7QVQ lQ yQQQ Q$QQ Q RR5R>RERMR^RdRzR%R RRRRRR4R)S l GlQlplllll lllm+m2m:m!Jmlmmmmmmmmn#n ,n:nBnWnfnun-n"n nno)o 0o :oFo[o vo ooooo(oop0 pQpbprp(p*ppp*p*q5Jq q>q9q r*r*zH{UZ{X{U |%_| | | |||)|5|~ ~ "~ ,~9~+W~+~)~~ ~ ~   ( - 9ET,n5F2&K.r**̀!#?=D} 0 k;C>?*Aj Ӄ02I#_$̄" $2C] rV;L8^#φ6! *4JY]c"j#Ƈʇ / ;WAW  &1K` uʼn؉-+6 b   ي <ZP%AjgeҌ>8w6b:{!0؏) $3$X4}*5ݐ)J==Ƒ ˑؑ8$6> A!M8oA>@)j p$z(Γ!*֔ߔ  `vw7  )oXH[lZ]gXq>/E.4lmi/\E+6aYt#_D.'f<gw+qR]Jf jB<q :^4w~ hC:DJ!eU"m:9#f+me?_90i{0Tf"B)@IJ&`_=,F5*O@&9Q:-7OY* MQD?h,'VpA|m@]4?0sbE%MRW4WxuKET9$u"+3 #4-{dS [eN(59eZj )- 31VGQv3V(}H )sA?dXl K|@]h1T_nbR=L|o_Rya7;7"z^l !Fuc$;' 8SG(A'y WLCKsQATRp<\UL.? Tt/ >A%>g2;!\y6 z-6GLp< 2"d`-V}]#c79DJ(h* a,!1@$:NbKY8CWjB'P&IrUQk\~(*abSs}N2kd  5rbBl %pKM {J[^FZ 3.,&qhPx\xH{5g)86k#!wXi{# 8|"!, Zom3:+c;cD0x~2O  uO GYU[,kvt^ M;e>zz2NYz~g$}Xit=(Mn*y.L>yP;G/Er%`Pn=23 1j5I6IkF~%urj&O6&+?n./%< NW4I$o=fPcxS'V><=7H *C$ -)}qv1 r/p0t8a[dnZ815^s0SFB`owvU|HiC * Concatenation of patient name and surnames can't be higher than 61. * The format of the height in centimeters is not correct. * The format of the weight is not correct. Valid range is between 0 and 400 Kg. * The patient ID is required. * The patient's birth date is after the date of study - If you want to use SSL/TLS you have to set a valid certificate and private key - If you want to use WADO you have to fill in wado url - Maximum length of local AET is 16 characters - The PDU size should be greater than or equal to zero (default = 16384) - The local port is too large - The local port must be a positive short integer (16 bits) - The maximum length of the AET is 16 characters - The maximum value of the PDU is - The minimum value of the PDU is - The port is too large - The port must be a positive short integer (16 bits) - This PACS id is in use - WADO URL doesn't contains host - WADO URL doesn't contains scheme (i.e. http://) There are %d errors (see log for more detailed description) Would you like to retry(automatically retried in %d seconds)? Would you like to retry? (%d images) . Modality does not exists in model: Add it first. . SOP Class does not exists in model: Add it first. . Transfer Syntax does not exists in model: Add it first. : bytes from a total of doesn't exist from History? not allowed of to to Modality to SOP Class trying temp unsupported components with transfer syntax "accion" attribute expected at "plantilla" scope"accion" attribute invalid at "plantilla" scope"action" attribute expected at "gnkworkflow" scope"action" attribute invalid at "gnkworkflow" scope"aid" attribute expected at "hce" scope"ambito" attribute expected at "dimse" scope"ambito" attribute expected at "plantilla" scope"ambito" attribute invalid at "dimse" scope"cid" atribute expected at "centro" scope"clave" attribute expected at "metadato" scope"code" attribute expected at "metadata" scope"code" attribute expected at "patient" scope"code" attribute expected at "physician" scope"codigo" attribute expected at "medico" scope"codigo" attribute expected at "metadato" scope"codigo" attribute expected at "paciente" scope"id_peticion" attribute expected at "gnkworkflow" scope"iid" atribute expected at "institution" scope"key" attribute expected at "metadata" scope"pacs-retrieve-sid" attribute empty at "gnkworkflow" scope"pacs-store-sid" attribute empty at "gnkworkflow" scope"pacs_retrieve_sid" attribute empty at "plantilla" scope"pacs_store_sid" attribute empty at "plantilla" scope"uid" attribute expected at "dimse" scope"valor" attribute expected at "medico" scope"value" attribute expected at "physician" scope"value" attribute expected at "query-retrieve-level" scope${NEWLINE} ${GINKGO.VERSION.FULLTEXT} ${GINKGO.ARCH} ${VOLUME.IDX} ${SLICE.WIDTH} ${SLICE.HEIGHT} ${SLICE.WL.FULLTEXT} ${SLICE.IDX} ${SLICE.COUNT} ${SLICE.IDX.FULLTEXT} ${SLICE.LATERALITY} ${SLICE.VOXEL.SIZE} ${SLICE.THICKNESS} ${SLICE.THICKNESS.FULLTEXT} ${SLICE.LOCATION} ${SLICE.LOCATION.FULLTEXT} ${VIEW.SCALE}%.1f fps%H:%M:%S%Y-%m-%d%Y/%m/%d %H:%M:%S.%q%d results has been found%m/%d/%Y%m/%d/%Y %H:%M:%S%m/%d/%Y 00:00:00%s settings&Accept&Cancel&Clear history&Close&Close all&Delete from history&Edit&End&Exit&File&Help&Next >(ID or medical history number))): Check the configuration and attach it if necessary): Is not a valid HL7 identifier (ie: code^description^namespaceId)+.../0 running tasks.00/00/0000 00:00:000000/00/00 00:00:001x1 Layout1x2 Layout2x1 Layout2x2 Layout3x3 Layout4x4 Layout644654645< &Previous?@AETAIRSANGIOAbort messageAboutAbout Acc#AcceptAccession NumberAccession numberAcquireAcquire DICOM filesAcquire a DICOM study from PACSAcquire from DICOM DirAcquire images from PACSAcquisition dateAcquisition informationActiveAddAdd DICOM tagAdd columnAdd new...Add rowAdd tagAdd window/levelAdd/Edit LocationAdvancedAdvanced Configuration ...Advanced SettingsAdvanced searchAdvanced settings...AgeAll patientsAlways use this view to open these filesAngle Ctrl+AAnonymizationAnonymization settingsAnonymizeAnonymous mode (history is cleaned)Any dateApplyAre you sure to delete this file from disk?Are you sure you want to cancel the import process?Are you sure you want to delete AreaArrowAssociation Acknowledged (Max Send PDV: Association Rejected: Bad Application Context Name: Association Rejected: No Implementation Class UID providedAssociation receivedAssociation(dicom://AsymmetryAttach ViewAttempted to dereference null pointerAuthenticationAuto calculateAuto-cleaningAutocalculateAutomatically check for updatesAutomatically start HL7 Sender serviceAvailable only in WADO serversB/WB/W InverseBONEBREASTBackBartenBetween:Birth dateBlack BodyBottom left corner annotationBottom right corner annotationBrightness/Contrast Ctrl+BBrowse...CRANIUMCRANIUM BONECT CRANIUMCairoCalibrating...CalibrationCalibration value is too lowCan not upload to the PACS: Can not upload to the PACS: Internal ErrorCancelCardiacCenter (I)Center (M)CentimetersCertificateCertificate to use in this connectionCertificate used by Ginkgo CADxChange ...Change Password ...Change passwordCharLSCharsetCheck PACS configurationCheck UpdatesCheck for newest versionsCheck for updatesCheck for updates automaticallyCheck update errorChoose a directoryChoose the view you want to use to open file/sClean afterClean beforeClean directory after dicomizationClean directory before dicomizationCleaning dicomdir...ClearClear historyClear logCloseClose Ginkgo CADxClose allClose all viewsClose all windowsClose automatically Ginkgo CADx after dicomizeClose current viewClose historyClose this notificationCloses the application and aborts pending commandsClosingClosing Ginkgo CADxCloudCommandCobbCobb Angle (2 straight lines)Color MapColumnsCommentsCommit dateCommit informCommitedCommon tagsCompleted messageConfiguration parameters of the local stationConfigure GridConfigure Grid ...Configure locationConfiguring environment ...Confirm PasswordConfirm removalConfirm the removal of the nodeConfirm the removal of the profile Connection test failConnection test successfulContinueContinue...CopyCopy or linkCopy to clipboardCorner annotationsCould not find entry pointCould not load extension library fileCould not load library file. Check logCould not write to fileCould to perform query.Could to retrieve study.Create newCreating Thumbnail...Creating Thumbnails...Creation DateCreatorCreditsCubicCurrent layoutDCMTKDICOM (*.dcm;)|*.dcm|All files(*.*)|*.*DICOM (native format)DICOM DirDICOM Dir configurationDICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d). This version is unabled to open it.DICOM Dir is the local directory where history is storedDICOM Dir migrationDICOM ErrorDICOM ExportDICOM InspectorDICOM MPPSDICOM NodeDICOM NodesDICOM Query/RetrieveDICOM data from the files to be generated can be populatedDICOM inspectorDICOM nodesDICOM nodes settingsDark Glass IconsDataData modifiedDateDate TimeDate acquiredDate addedDate:DefaultDefault ORU templateDefault Window/LevelDefault charsetDefault modality settingsDefault textDefault valueDefault valuesDeleteDelete WidgetDelete messageDelete older studies when hd free space is less than:Delete selected itemsDelete studies when DICOM Dir size bigger than:Delete studies with acquisition date older than:Demographic dataDescriptionDeselect allDestinationDestination:Detach viewDetach windowDicom tagDicomization completeDicomization finished successfullyDicomizeDicomize filesDicomize...Dicomized filesDimensionsDisable loopDistanceDo not close the application and keep commands runningDo not warn me again about this updateDo you confirm the removal of the preset?Do you want to copy or link files?Don't change image codec (if possible)Don't show this message againDownloadDownload %s imagesDownload againDownload all modalitiesDownload from Ginkgo CloudDownload of modality Download seriesDownload studyDownloading fileDownloading file %dDownloading file %d/%dDownloading files ...Downloading files...Downloading from PACS...Downloading serie...Downloading study...ER7EditEdit ...Edit MessageEdit UserEdit corner annotationsEdit profileEdit public keyElectronic health recordElementElement field or group field have invalid valuesEllipseEmpty ResponseEmpty configurationEnable TLS configurationEnable background queriesEnable http proxyEnable loopEnable remote PACS configurationEnable shadersEnable/DisableEnabledEnter the calibration valueErrorError accessing the controller subsystem integration: (GIL:: DICOM).Error checking application updatesError connecting to urlError creating database: Error creating dicomDir database Error creating history database Error creating thumbnails database Error deleting messagesError downloading WADO fileError downloading fileError downloading file: Error downloading files: Error downloading study: Error editing messageError executing WorkFlow Error executing WorkFlow Internal ErrorError extracting pdf, Ginkgo CADx is unable to load this formatError getting messageError in cloud operation. See log to get more details...Error in interpreting the parameters of the command line. (Error in the confirmation of delivery: Delivery is not recognized by the remote endError in the logic of confirmation. The control of the message ID does not match recognizedError loading DICOM Conformance fileError loading history, Ginkgo CADx will be closedError loading studyError loading study insufficient memoryError loading study, check hanging protocol settingsError loading study.Error loading study: Error loading the study: Internal ErrorError loading the study: Out of memoryError messageError parsing JSon: Error parsing integration XML: Error perfoming the query.Error processing messageError purguing messagesError queueing message. Check your supplierError reading history: Error reading the study:Error reading the study: Error reading the study: Largest image pixel value data is not coherent with combination of Pixel Representation and High bitError reading the study: unsupported pixel formatError renaming old dicomdir to _old, ensure you have permissions to do itError retrieving study.Error savingError sending HL7 message see log for more detailsError sending evidences:Error sending evidences: Internal error.Error sending message. It was sent Error sending message:Error setting TLS layer: Error starting HL7 senderError storing file, check the permissions over the directory.Error synchronizing study: Error unregistering tools: Error uploading the study to PACS: Error validating fieldsError while running thread: Error:Error: PACS entry configuration not found: Errors have occurred when saving the series. Would you like to continue closing? Exception in componentException loading:ExceptionsExisting fileExitExit applicationExploring PACS...Exploring directory Exploring directory ...Exploring drives...ExportExport ConfigurationExport DICOMExport all files of opened tabExport config...Export has been finished successfullyExport image...Export imagesExport successfully completedExport to DICOM DirExporting file %d of %dExporting files...Exporting images ...Exporting series %d of %dExtension descriptor does not matchExtensionsExtensions settingsExtracting file...Extracting files...Failed delivery confirmation:Failed to create directory, make sure the path is correct and you have permissions on parent directoryFailed to delete the number of database: Failed to empty the history, you have to close opened studiesFailed to empty the history: Failed to perform search: Failed to set permissions: Failed to start connectionFamFamFam IconsFatal error! you can't register two parsers with same keyFemaleFile couldn't be stored File exists Would you like to overwrite it?File link:Fill in valid numbers in window and level fields.Filler Application IdFlip horizontalFlip verticalFlowFor large-scale implementation in a homogenous environment, you can specify the following wildcards in the local AET: %IP IP Address %IP n-th Octet (1~4) %HOSTNAME Host Name"Force lossless when uploadFormatFree formFugue IconsFull ScreenFull screenGE ColorGIL/DICOM/ConformanceGeneralGeneral configuration parametersGenerating preview...Generating thumbnail ...GetGingo CADx Application ID used to fill MSH.3 fieldGinkgo CADxGinkgo CADx Application IdGinkgo CADx ProGinkgo CADx Secondary CaptureGinkgo CADx has detected a default DICOM Dir created with an old version of Ginkgo CADx (BBDD v.%d). What do you want to do?Ginkgo CADx has detected inactivity and it will be closed in %d seconds. Do you want to continue?Ginkgo CADx has detected more than one removable units, but none of them includes a DICOMDIR at root. Select drive where you want to acquire recursivelyGinkgo CADx is unable to compress from Ginkgo CADx manual ...Ginkgo CADx must have at least one user.Ginkgo CADx must restart for the changes to take effectGinkgo CADx must restart for the extensions changes to take effectGinkgo CADx must restart for the permission changes to take effectGinkgo CADx private tagsGinkgo CADx restrictionsGinkgo CADx tags (Evaluation Maps...)Ginkgo CADx updatedGinkgo CADx updatesGinkgo CloudGinkgo Cloud linkGinkgo Cloud searchGinkgo Extension TitleGray RainbowGreater RadiusGridGrid ScaleGroupHL7HL7 ServiceHL7 controller destroyedHL7 message controlHL7 messagesHL7 monitorHL7 sender startedHanging protocolHanging protocolsHeightHelp us sending anonymous usage data (no patient data will be sent)HideHide DICOM inspectorHide GridHide corner annotationsHistoryHostHostname (IP or DNS) integration engineHostname / PortHostname missingHot GreenHot IronHot MetalI Accept the licenseI do NOT accept the licenseISO_IR 100ISO_IR 101ISO_IR 109ISO_IR 110ISO_IR 126ISO_IR 127ISO_IR 138ISO_IR 144ISO_IR 148ISO_IR 192ISO_IR 6ITKIdId malformed template in the module configurationIdentification informationIdentificator *If you accept the terms of the agreement, click "I Accept the license" to continue. You must accept the license to start using Ginkgo CADx.If you want to use SSL/TLS you have to set a valid certificate and a valid private keyIgnoring incoming operation Image (jpg, bmp, png)Image Browser DialogImage CalibrationImage Export WizardImage Import WizardImage acquisition finished.Image format not supportedImage presentation informationImage printingImage selectionImage without metric informationImages (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*.bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*ImportImport ...Import ConfigurationImport config...Import files to DICOM formatImport process failed:Import successfully completed, restart Ginkgo CADx to apply changesImporting...In progress messageInactiveInactivity detectedIncluded in the history ...Including files ...Including files in the history ..Including files...Including image InfoIni Files(*.ini)|*.iniIni files(*.ini)|*.iniInitializing environment ...Institution's IdInstitution's nameInstitutionsIntegration Engine's Transport Layer ProtocolIntegration engineIntegration engine hostname not setIntegration engine port not setInternal ErrorInternal errorInternal error checking updatesInternal error during auth processInternal error reading the study, unknown format Internal error reading the study: Internal error while reading the study:Internal error while running thread: Interpolate pixel dataInterpreting parameters ...Interpreting propertiesInvalid DICOM Conformance fileInvalid HTTP codeInvalid HTTP responseInvalid file has been downloadedInvalid linkInvalid port numberInvert color mapIt has been read a "patient" tag without identifiersJPEGJPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*JSon ResponseJsonCppKNEEKgLONILONI2LUNGLabelLanguageLast 3 monthsLast 30 daysLast 7 daysLast ModificatorLayoutLeftLengthLevelLibJpegLibPngLibcurlLicense agreementLicense menuLicensesLinearLinkLink seriesLink studyLinking image Linking study...Load ...Load canceled by userLoadingLoading plugins ...Loading resources ...Loading...Local AETLocal AET certificateLocal DICOM Dir setupLocal PACSLocal databaseLocal institutionLocationLocation SettingsLocation titles can't be repeatedLocationsLocations are predefined paths to set locations from well known paths (ex: remote shared disk)LogLog file (*.log) | *.log | Text file (*.txt) | *.txtLog monitorLog monitoredLog nodeLogTextLogical error: Image not associated with existent serie in modelLogical error: Serie not associated with existent study in modelLogical error: Study not associated with existent patient in modelLoginLower RadiusMBMEDIASTINUMMLLPMade with %sMaleMalformed XMLMalformed template Id (Marking Tools Ctrl+MMax number of tabs openedMax seconds of Ginkgo CADx application inactivityMaximum length of title is 8 charactersMaximum number of C-Find responses allowedMedical historyMessageMessage content:Message detailMessage successfully sentMessage's formatMessagesMetaEmotion HealthcareMetadataMetersMetric gridMicronsMigrate existing (recommended)Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. Do not close Ginkgo CADx until migration is finished.Migrating old DICOM Dir ...Migration finished successfully, now Ginkgo CADx will delete folder: Migration finisthed successfullyMilimetersMiscModalitiesModalityModality download errorModality settingsModification DateModifiedModule tool still registered when disposing ToolsRegistryMonitorizeMosaicMoveNACK received:NAME SURNAME SECOND_SURNAMENameNearest neighbourNeed support ...New ...New Ginkgo Cloud studyNew UpdateNew UserNew hanging protocolNew version availableNew version available (NoNo DICOMDIR found in removable units, would you like to scan recursively %s driveNo DICOMDIR found in removable units. Would you like to scan other path recursively?No loginNo proxy for addresses containingNo results foundNo suitable for diagnostic usage. Please consider upgrade toNo valid presentation contextsNormalNormal Angle (3 points)Not commitedNot enough parameters found on XMLNot foundNot implementedNoteNull ResponseNumber of VertexOKOkOmitted AETOmitted IdentificatorOmitted portOne dayOne monthOne weekOne yearOnline manualOnline supportOpenOpen FileOpen Ginkgo CloudOpen Ginkgo Cloud linkOpen SeriesOpen Series with ..Open Source DICOM CADx environmentOpen Source LicensesOpen With ...Open fileOpen folderOpen in main windowOpen linkOpen only one tab for each studyOpen removable unitOpen studyOpen study with ..Open test cardOpen...OpenGLOpenSSLOpening modeOtherOther settingsOthersOverview data of DICOM filesOverwriteOverwrite PathsP-ValuePACSPACS LimitsPACS Q/RPACS acquisition is restrictedPACS error: PACS-ServicePDF files extracted successfully...PDU (KB)PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*PERFusionPETPage setupPan Ctrl+PParameters:PasswordPassword and confirm password can't be different.Password changed successfullyPassword has to contain at least 6 charactersPassword is not settedPassword is settedPastePaste from clipboardPathPath of the location doesn't existsPatientPatient IDPatient IdPatient idPatient informationPatient namePatient's name and surnamePendingPerimeterPetitioner System IdPhysicianPhysician's IdPhysician's namePixels blurringPointPointer EscPoints (I)Points (M)PolygonPortPort has to be a valid numberPort is not a valid numberPosition (I)Position (M)Position:Powered byPreviewPreviewsPrintPrint imagePrint previewPrivate keyPrivate key and Certificate do not matchPrivate key in PEM formatProcess canceled by user.Professional DICOM CADx environmentProfileProfile nameProfile name can't be repeatedProfilesProfiles SettingsProgram UpdatesPropertiesProperties ...Properties of Properties of ...Properties...ProtocolProxy SettingsProxy server requires authenticationProxy settingsPublic keyPublic key in PEM formatPush configuration button and place window where you wantQualityQuery error with PACS Id Query retrieve level not specifiedQuery successfully performed.Querying PACS ...REGEXP called with wrong number of arguments: %d instead of 2.ROIReading DICOMDIR ...Reading datasetReading propertiesReal MeasureReceiver organization IdReceiving Association failed: Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG Lossless)RedoRefering physicianReferring physicianRefreshRegular expression invalid: 'Relationship informationRemember that when you buy Ginkgo CADx Pro, you are contributing to development effortsRemoveRemove allRemove columnRemove old DICOM Dir after migration (will be renamed as *_old)Remove queryRemove rowRemove sent messagesRequested module does not support importationRequested module is not registeredResetReset size to display resolutionReset to defaultRestrict search over selected patientRestrict study retrieval by maximum size (KB)ResultsRetrieve methodRetrieve modeRetry send to PACSReuse connectionReuse connections when is needed to make more than one queriesRightRotate 90Rotate and flipRotate cameraRowsRule Ctrl+RRunningSPINALSQL LiteSSL/TLSSaveSave log...Save logsSave snapshot as new series...ScaleScale XScale YSearchSearch Ginkgo CloudSearch without parameters could take al long time Would you like to continue?SecuritySecurity SettingSecurity typeSelect DICOMDIRSelect PACSSelect PACS serverSelect a ViewSelect a valid DICOMDIR fileSelect a valid PACS ServerSelect a valid querySelect allSelect at least one seriesSelect certificateSelect dicom dir files you want to acquireSelect driveSelect drive you want to openSelect fileSelect files from filesystemSelect files...Select how do you want to handle MPPS itemsSelect imagesSelect opening modeSelect otherSelect other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new one will be created, else existing DICOM Dir will be usedSelect stored queries...Select the DICOM Dir folderSelect the directory where the files will be storedSelect the format and the images you want to exportSelected imagesSelecting Import ProfileSemantic/Sintactic error parsing integration URL (see log for details): Semantic/Sintactic error parsing integration XML (see log for details): Send Hl7 message when importingSend files to PACSSend link by e-mailSend study to PACS when importingSend task status:Send to PACSSend to PACS...Sending HL7 message %d of %dSending to PACS...SentSeparate addresses with commas.SeriesSeries Instance UIDSeries criteriaSeries dateSeries does not existSeries path couldn't be foundSeries timeServerServer ID not found. ID = Server not foundServer settingsServiceService's IdService's nameSet DefaultSet PasswordSet activeSet by userSet compression, 0 implies no compression (0..14)Set defaultSet default valueSet main passwordSet passwordSet pixels blurringSet property activeSet property inactiveSet query nameSetting not foundSetting the electronic health record systemSettingsSettings menuSetup SecuritySetup corner annotationsSetup position and size of the window where you want to open the studySetup position...Setup undocked window positionSetup windowSetup window positionSetup...SexShow DICOM inspectorShow GridShow MessageShow accession number inputShow corner annotationsShow full screenShow gridShow history Alt+hShow link...Show on startupShow on startup default valueSkip demographic step if it's possibleSkipping extension with duplicated SID:SliceSlice locationSlice thicknessSlider Ctrl+SSmart retrieveSmart retrieve settingsSome of selected series has been deletedSpacing is not valid: (Spacing of the image is invalid: (Specify this Storage SOP Class in dicomizationSpectrumSpeedSplit active horizontallySplit active verticallySplit horizontally...Split vertically...StartStart pageStartingStarting Search ...Starting services...Starting tools...StatusStatus:Step %d of %d: Step 1 of 3: Importing imagesStep 2 of 3: Copying imagesStep 3 of 3: Uploading imagesSternStopStoppedStopping HL7 senderStore queryStored queriesStoring in the history...StudiesStudies withStudyStudy DetailsStudy Instance UIDStudy UIDStudy dateStudy download size limit exceededStudy malformed or unsupportedStudy opening criteriaStudy successfully retrieved.Study timeStyleSurnameSynchronizeSynchronize filesSystem authenticationT1 CRANIUMT2 CRANIUMTab RegroupTab groupingTabbed organizationTagTags (double click to change value)TasksTemplate Id unsupported (Test Integration Engine connectivityTest connectionTest engineTest titleTesting conectivity with the server...Testing the connection to the node ...TextText Note Ctrl+NThe calibration value is too highThe calibration value is too lowThe calibration value must be a decimal numberThe fileThe following commands will be aborted if you close the applicationThe following errors have occurred when validating fieldsThe module The pdu size is not a valid numberThe port is not a valid numberThe requested module isn't registeredThe selected directory can't be openedThe selected directory does not exist Would you like to create it?The selected directory does not exist Would you like to create?The service did not respond correctly to the C-ECHOThe service did not respond correctly to the DICOM standardThe submission process is started and ready to sendThe tool is already registeredThe username or password is incorrectThere are %d pending tasksThere are files that has to be downloaded to local database before executing this action, do you want to synchornize files now?There are other DICOM directory in selected pathThere are this errors: There aren't any PACS configuredThere aren't any module with importation supportThere have been included %d images.There is no URL to check updates on the current configuration.There is no any PACS configuredThere is no running tasksThere is not any Remote PACS configuredThere is not newest Ginkgo CADx versions at this moment.There is not registered any module with importation supportThere isn't any pdf reader registered in the systemThere was an error anonymizing filesThere was an error changing the password. To get more info open the LOG.There was an error creating directoryThere was an error deleting user. To get more info open the LOG.There was an error during exportationThere was an error during importation, check permissionsThere was an error inserting user. To get more info open the LOG.There was an error reading DICOMDIR fileThere was an error reading the directory, make sure you have write permissions on itThere was an error writing fileThese series have been deleted from the local historyThey have produced the following errors:This feature only affects to studies COPIED to DICOM Dir and not in useThis files are Dicom Dirs:This files doesn't exist:This files doesn't have DICOM format:This query name is in use, do you want to overwrite it?This query will be removed permanently, do you confirm removal?This series has been already downloaded in the local history, Do you want to download it again?This study has been already downloaded in the local history, Do you want to download it again?This version of Ginkgo CADx is not compatible with current version of Ginkgo Cloud.This view doesn't support multiple windowsThreadingThree daysThree monthsTimeTitleTo download the study, paste this url To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:DefaultValue:Format} where GGGG is the tag's group in hexadecimal and EEEE is the tag's element. DefaultValue and Format are optional values, Format admit two special formats (date and time).TodayToday AMToday PMToolsTools loading base ...Top left corner annotationTop left corner annotationsTop right corner annotationTrackball Ctrl+TTrapezoidTravel (I)Travel (M)Two daysTwo weeksTypeUNKNOWUPDATE_INFOURL of manualURL of online supportUnable to add supported SOP Class Unable to add supported transfer syntax Unable to connect: Could not start network support.Unable to create TLS transport layerUnable to init HTTP subsystemUnable to load GIF animation resourceUnable to load PNG bitmap resourceUnable to load PNG image resourceUnable to open modality Unable to perform HTTP requestUnable to reserve memory for PDF dicomizationUnable to reserve memory for image DicomizationUnable to start GinkgoCADx: UndoUndo rotate and flipUnexpected error, select the module againUnique identifier of the Picture Archiving and Communication System Application (SIID/PACS).Unique identifier of the filler application (SIID/Ginkgo CADx).Unique identifier of the filler application (SIID/Ginkgo).Unique identifier of the organization receiving the message.Unique identifier of the requesting system.UnknownUnknown JSon attribute:Unknown errorUnknown error in dicomization processUnknown module Id (Unknown operationUnknown protocolUnknown query/retrieve levelUnsaved dataUnset pixels blurringUnsupported protocolUpdate period (days)Updating ...Upload images to a PACS serverUpload studyUpload study...Uploading file %d of %dUploading files ...Use SSL/TLSUse by defaultUse default certificate (certificate configured in local AET settings)UserUser NameUser deleted successfullyUser inserted successfullyUser loginUser nameUser name has to contain at least 4 charactersUser name repeatedUser/PasswordUsernameUsersUsually due to an error in sending a messageVERTEBRAVR BonesVR Muscles & BonesVR Red VesselsVTKValueValue:Verify client credentialsVerify server credentialsVideo Ctrl+SpaceViewView Full ScreenVolumeVoxel:WADOWADO ErrorWADO URLWarn about newest Ginkgo CADx updatesWarningWarning, to update the directory, you have to close every opened seriesWarning, to update the directory, you must close current opened series.WeightWidget PropertiesWidget's NameWindowWindow %dWindow annotationsWindow layoutWindow/Level Ctrl+WWindow/levelWindow/level label in useWorklistWorklistsWorkspaceWorkstationWould you like to overwrite them?Would you like to remove these messages?Would you like to save the changes in the study:Write query nameWxWidgetsXX axis scaleXML Parser Not Found. Key=XML dicomizationXML parsing internal errorY axis scaleYesYesterdayYou are not allowed to download this kind of modalities.You can also use special tags listed in the tooltip over the question button.You can copy and paste link to use it in e-mails and web pages, you have to install Ginkgo CADx to download and visualize it.You can't remove opened seriesYou do not have permissions to write to the dicom Dir, preferences will be stored in the temporary directoryYou have reached maximum number of opened tabs, close some tabs and try it againYou have to set private and public keyYou must configure the local AET, which is used to communicate with the DICOM nodes. The specified port must be opened in the firewall, as it is essential for transfers.You must configure the local AET, which is used to communicate with the PACS server. The specified port must be opened in the firewall, as it is essential for transfers.You must create at least one userYou must define a default PACS in the integration XML or in the settings menuYou must fill both title and location fields to continueYou must fill in all fieldsYou must fill in all fields to continueYou must fill in name field to continueYou must select an imageYou must select at least one imageYou must select the images you want to importYou must select the import profileYou must select the profile you want to use importYou must set the main passwordYou must specify at least a modality or a period of timeYou must specify attributes you want to use in the queryZlibZoom Ctrl+Oall filesand all it's sub folders Do you confirm deletion?bytes/sec duringclockwisecmcounter-clockwisedoc\manual_ginkgo_cadx_pro_en.pdfelement patient id absent in datasetelement series instance uid absent in datasetelement sop instance uid absent in datasetelement study instance uid absent in dataseterrorfree ofhostname/port not sethttp://ginkgo-cadx.comhttp://ginkgo-cadx.com/id_application expectedimage_%m-%d-%Y_in dicomization dir.into "Open Ginkgo Cloud link" tool of Ginkgo CADx history, or paste it into the address bar of your browser.javiloadofsearch resultssecondssettingsthis seriesthose seriesProject-Id-Version: ginkgocadx Report-Msgid-Bugs-To: POT-Creation-Date: 2014-07-16 08:43+0100 PO-Revision-Date: 2014-07-16 08:44+0100 Last-Translator: Javier Tovar Language-Team: Metaemotion Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 1.6.5 X-Launchpad-Export-Date: 2012-04-24 11:40+0000 X-Poedit-Basepath: . X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,296,-1,-1 X-Poedit-KeywordsList: _;_Std X-Poedit-SourceCharset: utf-8 X-Poedit-SearchPath-0: ..\.. * La concatenación del nombre del paciente y los apellidos no puede ser mayor que 61. * El formato de la altura en centímetros no es correcto. * El formato del peso no es correcto. El rango válido está entre 0 y 400 Kg. * El ID de paciente es obligatorio. * La fecha de naciemiento del paciente es posterior a la fecha del estudio - Para usar SSL/TLS se debe configurar un certificado y una clave privada válidos - Si necesita usar WADO, debe rellenar la URL wado. - La longitud máxima del AET local son 16 caracteres - El tamaño de la PDU debe ser mayor o igual que cero (default = 16384) - El puerto local es demasiado grande - El puerto local debe de ser un entero corto positivo (16 bits) - La longitud máxima del AET son 16 caracteres - El valor máximo de la PDU es - El valor mínimo de la PDU es - El puerto es demasiado grande - El puerto debe de ser un entero corto positivo (16 bits) - El identificador de PACS ya se está usando - La URL WADO no contiene el host - La URL WADO no contiene el esquema (por ejemplo http://) Han ocurrido %d errores (mirar el log para una descripción más detallada) ¿Desea reintentarlo (se reintentará automáticamente en %d segundos)? ¿Desea reintentarlo? (%d imágenes).. La modalidad no existe en el modelo: Añádela primero... SOP Class no existe en el modelo: Añádelo primero... El Transfer Syntax no existe en el modelo: Añádelo primero : bytes de un total de no existe del Historial? no permitido de hasta a la Modalidad a SOP Class probando temporal componentes no soportados con transfer syntax Atributo "accion" no especificado al procesar tag "plantilla"Atributo "accion" inválido al procesar tag "plantilla"Atributo "action" no especificado al procesar tag "gnkworkflow"Atributo "action" inválido al procesar tag "gnkworkflow"Atributo "aid" no especificado al procesar tag "hce"Atributo "ambito" no especificado al procesar tag "dimse"Atributo "ambito" no especificado al procesar tag "plantilla"Atributo "ambito" inválido al procesar tag "medico/id"Atributo "cid" no especificado al procesar tag "centro"Atributo "clave" no especificado al procesar tag "metadato"Atributo "code" no especificado al procesar tag "metadata"Atributo "code" no especificado al procesar tag "patient"Atributo "code" no especificado al procesar tag "physician"Atributo "codigo" no especificado al procesar tag "medico/id"Atributo "codigo" no especificado al procesar tag "metadato"Atributo "codigo" no especificado al procesar tag "paciente/id"Atributo "id_peticion" no encontrado en el nivel "gnkworkflow"Atributo "iid" no especificado al procesar tag "institution"Atributo "key" no especificado al procesar tag "metadata"Atributo "pacs_retrieve_sid" vacío al procesar tag "gnkworkflow"Atributo "pacs_store_sid" vacío al procesar tag "gnkworkflow"Atributo "pacs_retrieve_sid" vacío al procesar tag "plantilla"Atributo "pacs_store_sid" vacío al procesar tag "plantilla"Atributo "uid" no especificado al procesar tag "dimse"Atributo "valor" no especificado al procesar tag "medico/id"Atributo "value" no especificado al procesar tag "physician"Atributo "value" no especificado al procesar tag "query-retrieve-level/id"${NEWLINE} ${GINKGO.VERSION.FULLTEXT} ${GINKGO.ARCH} ${VOLUME.IDX} ${SLICE.WIDTH} ${SLICE.HEIGHT} ${SLICE.WL.FULLTEXT} ${SLICE.IDX} ${SLICE.COUNT} ${SLICE.IDX.FULLTEXT} ${SLICE.LATERALITY} ${SLICE.VOXEL.SIZE} ${SLICE.THICKNESS} ${SLICE.THICKNESS.FULLTEXT} ${SLICE.LOCATION} ${SLICE.LOCATION.FULLTEXT} ${VIEW.SCALE}%.1f fps%H:%M:%S%d/%m/%Y%d/%m/%Y %H:%M:%S.%qSe han encontrado %d resultados%d/%m/%Y%d/%m/%Y %H:%M:%S%d/%m/%Y 00:00:00%s configuración&Aceptar&Cancelar&Limpiar historial&Cerrar&Cerrar todas&Eliminar del historial&Edición&Terminar&Salir&Archivo&Ayuda&Siguiente >(DNI o Número de historia clínica))): Revise la configuración y asócielo si lo considera necesario): No es un identificador HL7 válido (ej: codigo^description^namespaceId)+.../0 tareas en ejecución.00/00/0000 00:00:000000/00/00 00:00:00Layout 1x1Layout 1x2Layout 2x1Layout 2x2Layout 3x3Layout 4x4644654645< &Anterior?@AETAIRSANGIOAbortar mensajeAcerca deAcerca de Acc#AceptarAccession NumberAccession numberAdquirirAdquiriendo ficheros DICOMAdquirir un estudio DICOM desde el PACSAdquirir desde DICOM DirAdquirir imágenes desde un servidor PACSFecha de la adquisiciónInformación sobre la adquisiciónActivoAñadirAñadir tag DICOMAñadir columnaAñadir...Añadir filaAñadir tagAñadir window/levelAñadir/Editar ubicaciónAvanzadoConfiguración avanzada...Configuración avanzadaBúsqueda avanzadaConfiguración avanzada...EdadTodos los pacientesUtilizar siempre esta vista para abrir este tipo de archivosÁngulo Ctrl+AAnonimizaciónOpciones de anonimizaciónAnonimizarModo anónimo (el historial se limpia al cerrar Ginkgo CADx)Cualquier fechaAplicar¿Confirma que desea eliminar este fichero del sistema de ficheros?¿Confirma que desea cancelar el proceso de importación?¿Está seguro de que desea eliminar ÁreaFlechaAsociación Admitida (Max Send PDV: Asociación Rechazada: Application Context Name incorrecto: Asociación rechazada: no se ha provisto de Implementation Class UIDAsociación recibidaAssociation(dicom://AsimétricoEncajar vistaIntentando desreferencia un puntero nuloAutenticaciónAuto calcularAuto-borradoAuto calcularBuscar actualizaciones automáticamenteIniciar automáticamente el servicio de envío HL7Sólo disponible en servidores WADOB/NB/N inversoHUESOPECHOAtrásBartenEntre:Fecha de nacimientoCuerpo negroAnotación de la esquina inferior izquierdaAnotación de la esquina inferior derechaBrillo/contraste Ctrl+BNavegar...CRÁNEOHUESO DEL CRÁNEOCT CRÁNEOCairoRealizando calibración...CalibraciónEl valor de calibración es demasiado bajoNo se ha podido subir al PACS: No se ha podido subir al PACS: Error internoCancelarCardiacCentro (I)Centro (M)CentímetrosCertificadoCertificado para usar en esta conexiónCertificado usado por Ginkgo CADxCambiar ...Cambiar contraseña...Cambiar contraseñaCharLSCharsetCompruebe la configuración del PACSComprobar ActualizacionesBuscar versiones nuevasBuscar actualizacionesBuscar actualizaciones automáticamenteComprobar error en actualizaciónSeleccione un directorioElija la vista que desea utilizar para abrir el/los archivo/sLimpiar despuésLimpiar antesLimpiar directorio después de la importaciónLimpiar directorio antes de la importaciónBorrando dicomdir...Limpiar&Limpiar historialLimpiar logCerrarCerrar Ginkgo CADx&Cerrar todasCerrar todas las vistasCerrar todas las ventanasCerrar automáticamente Ginkgo CADx después de dicomizarCerrar vista actualCerrar historialCerrar esta notificaciónCierra al aplicación y aborta los comandos pendientesCerrandoCerrando Ginkgo CADxComandoCloudCobbÁngulo de cobb (2 rectas)Mapa de colorColumnasComentariosFecha de consolidaciónConsolidar informeConsolidadoTags comunesCompletar mensajeConfiguración de parámetros de la estación localConfigurar rejillaConfigurar rejilla...Configurar ubicaciónConfigurando entorno...Confirmar contraseñaConfirmar eliminaciónConfirme la eliminación del nodo Confirma la eliminación del perfil Test de conexión fallidoConexión realizada con éxitoContinuarContinuar...CopiarCopiar o enlazarCopiar al portapapelesAnotaciones de las esquinasNo se pudo encontrar el punto de entradaNo se pudo cargar la biblioteca. No se pudo cargar la biblioteca. Compruebe el logNo se pudo escribir en el fichero Error al realizar la consulta.Error al recuperar el estudio.Crear nuevoGenerando thumbnail...Generando thumbnails...Fecha de creaciónCreadorCréditosCúbicoLayout actualDCMTKDICOM (*.dcm;)|*.dcm|Todos los ficheros (*.*)|*.*DICOM (formato nativo)DICOM DirConfiguración de DICOMDIREl DICOMDIR ha sido creado con una versión más nueva de Ginkgo CADx. (BBDD v%d). Esta versión no puede abrirla.El directorio DICOM Dir es el directorio local donde está almacenado el historial.Migración de DICOMDIRError DICOMExportación DICOMInspector DICOMDICOM MPPSNodo DICOMNodos DICOMDICOM Consulta/DescargaSe pueden configurar los datos DICOM de los ficheros a generarInspector DICOMNodos DICOMConfiguración de los nodos DICOMDark Glass IconsDatosDatos modificadosFechaFecha HoraFecha adquisiciónFecha recepciónFecha:Valor por defectoPlantilla ORU por defectoWindow/Level por defectoJuego de caracteres por defectoConfiguración por defecto de las modalidadesTexto por defectoValor por defectoValores por defectoEliminarEliminar widgetEliminar mensajeBorrar estudios antiguos cuando el espacio libre del disco sea menor de:Eliminar elementos seleccionadosBorrar estudios cuando el DICOM Dir sea más grande de:Borrar estudios con fecha de adquisición más antigua de:Datos demográficosDescripciónDeseleccionar todosDestinoDestino:Desencajar vistaDesencajar ventanaTag dicomDicomización completadaLa dicomización ha finalizado correctamenteDicomizarDicomizar ficherosDicomizar...Ficheros dicomizadosDimensionesDeshabilitar bucleDistancia:No cierra la aplicación y mantiene procesando los comandosNo avisarme de nuevo sobre esta actualización¿Confirma la eliminación del perfil?¿Desea copiar o enlazar los ficheros?No cambiar la codificación de la imagen (si es posible)No volver a mostrar este mensajeDescargarDescargar modalidad %sVolver a descargarDescargar todas las modalidadesDescargando de Ginkgo CloudDescarga de la modalidad Descargar seriesDescargar estudioDescargando ficheroDescargando fichero %dDescargando fichero %d/%dDescargando ficheros...Descargando ficheros...Descargando ficheros...Descargando serie...Descargando estudio...ER7EditarEditar...Editar MensajeEditar usuarioEditar anotaciones de las esquinasEditar perfilEditar clave públicaHistoria Clínica ElectrónicaElementoEl campo elemento o grupo tienen valores no válidosElipseRespuesta vacíaConfiguración vacíaHabilitar la configuración TLSHabilitar consultas en segundo planoHabilitar proxy httpHabilitar bucleHabilitar la configuración de PACSHabilitar shadersHabilitar/DeshabilitarHabilitadoIntroduzca el valor de calibraciónErrorError al acceder al controlador del subsistema de integración: (GIL::DICOM).Error al comprobar las actualizaciones de la aplicaciónError al conectar con la url Error al crear la base de datos: Error al crear la base de datos del DICOM DirError al crear la base de datos del historialError al crear la base de datos de thumbnailsError al eliminar mensajesError al descargar el fichero WADOError al descargar el ficheroError al descargar el fichero: Error al descargar los ficheros:Error al descargar el estudio: Error al editar el mensajeError al ejecutar WorkFlow Error al ejecutar WorkFlow Error internoError al extraer el pdf, Ginkgo CADx no puede cargar este formatoError al obtener mensajesError en la operación con Ginkgo Cloud. Revise el log para obtener más detalles...Error al interpretar los parámetros de la línea de comandos. (Error en la confirmación de entrega: Entrega no reconocida por el extremo remotoError en la lógica de confirmación. El identificador del mensaje no se correspondeError cargando el fichero de conformidad DICOMError al cargar el historial. Ginkgo CADx se cerrará.Error al cargar el estudioError al cargar el estudio, memoria insuficienteError al cargar el estudio, compruebe la configuración del protocolo de visualizaciónError al cargar el estudio.Error al cargar el estudio: Error al cargar el estudio: Error internoError al cargar el estudio: Memoria insuficienteMensaje de errorError al interpretar JSon:Error al interpretar el XML de integración: Error al realizar la consulta.Error al procesar el mensajeError al purgar los mensajesError al insertar el mensaje en la cola, consulte a su proveedorError al leer el estudio. Error al leer el estudio: Error al leer el estudio.Error al leer el estudio: El valor más alto de pixel no es coherente con la combinación de los valores de Pixel Representation y High bitError al leer el estudio: Formato de pixel no soportadoError al cambiar el nomver del antiguo dicomidir a _old, asegurese de que tiene permisos para hacerloError descargando el estudio.Error al guardarError al enviar el mensaje HL7 (ver log para más información)Error al enviar evidencias: Error al enviar evidencias: Error interno.Error al enviar mensaje. Se enviaron Error al enviar mensaje: Error al configurar la capa TLS: Error al inciciar el servicio de envío HL7Error al almacenar el fichero, revise los permisos sobre el directorio.Error al sincronizar el estudio: Error al des-registrar herramientas: Error al subir el estudio al PACS: Error al arrancar el hilo: Error: Error: Entrada de configuración del PACS no encontrada: Han ocurrido errores al guardar la serie. ¿Desea continuar?Excepción en el componenteExcepción en la carga:ExcepcionesFichero existenteSalirSalir de la aplicaciónConsultando PACS...Explorando directorioExplorando directorio...Explorando unidades...ExportarExportar configuraciónExportar DICOMExportar todos los ficheros de la pestaña abiertaExportar configuración...La exportación ha finalizado con éxitoExportar imagen...Exportar imágenesExportación completada correctamenteExportar a DICOM DirExportando fichero %d de %dExportando imágenes...Exportando imágenes...Exportando serie %d de %dEl descriptor de la extensión no coincideExtensionesConfiguración de extensionesExtrayendo el fichero...Extrayendo ficheros...Error en la confirmación de entrega: Ha ocurrido un error al crear el directorio, asegurese de que la ruta es correcta y tiene permisos sobre el directorio padreError al eliminar la serie de la base de datos: Error al limpiar el historial, se tienen que cerrar los estudios abiertosError al vaciar el historial: Error al realizar la búsqueda: Error al establecer los permisos: Error al iniciar la conexiónFamFamFam Icons¡Error fatal! No se pueden registrar dos parsers con la misma claveFemeninoNo se ha podido escribir en el ficheroEl fichero existe ¿Confirma que desea sobreescribirlo?Enlace al ficheroEscriba valores válidos en los campos window y level.Identificador de aplicación de la "Filler Application"Volteo horizontalVolteo verticalFlujoPara implantación masiva en entornos homogéneos, pueden especificarse los siguientes comodines en la AET local: %IP Dirección IP %IP Octeto n-avo (1~4) %HOSTNAME Nombre de HostForzar recodificar a JPEG Lossless al subir al PACSFormatoForma libreFugue IconsPantalla completaPantalla completaGE colorGIL/DICOM/ConformanceGeneralConfiguración de parámetros generalesGenerando thumbnail...Generando thumbnail...GetEl ID de la aplicación Ginkgo CADx utilizado para rellenar el campo MSH.3Ginkgo CADxIdentificador de aplicación Ginkgo CADxGinkgo CADx ProCaptura Secundaria de Ginkgo CADxGinkgo CADx ha dectado un DICOMDIR de historial creado con una versión más antigua de Ginkgo CADx (BBDD v.%d). ¿Qué desea hacer?Ginkgo CADx ha detectado inactividad y se cerrará en %d segundos. ¿Desea continuar?Ginkgo CADx ha detectado más de una unidad extraíble, pero ninguna de ellas incluye un DICOMDIR en la raíz. Seleccione la unidad desde la que deseas adquirir recursivamenteGinkgo CADx no puede comprimir desde Manual de Ginkgo CADx ...Debe de existir al menos un paciente en Ginkgo CADxDebe reiniciar Ginkgo CADx para que los cambios tengan efectoDebe reiniciar Ginkgo CADx para que los cambios en la extensiones se lleven a caboDebe reiniciar Ginkgo CADx para que los cambios tengan efectoTags privados de Ginkgo CADxRestricciones de Ginkgo CADxCampos Ginkgo CADx (Mapas de valoración...)Ginkgo CADx actualizadoActualizaciones de Ginkgo CADxGinkgo CloudEnlace Ginkgo CloudBúsqueda en Ginkgo CloudTítulo de la Extensión de GinkgoArcoiris grisRadio mayorRejillaEscala rejillaGrupoHL7Servicio HL7Controlador HL7 destruídoControl de mensajes HL7Mensajes HL7Monitorizador HL7Servicio de envío HL7 iniciadoProtocolo de visualizaciónProtocolos de visualizaciónAlturaAyudanos envando datos anónimos de uso (no se enviarán datos de paciente)OcultarOcultar el inspector de DICOMOcultar rejillaOcultar anotaciones de las esquinasHistorialHostNombre de host (IP o DNS) del motor de integraciónHostname / PuertoHostname omitidoVerde calienteHierro calienteMetal calienteAcepto la licenciaNO acepto la licenciaISO_IR 100ISO_IR 101ISO_IR 109ISO_IR 110ISO_IR 126ISO_IR 127ISO_IR 138ISO_IR 144ISO_IR 148ISO_IR 192ISO_IR 6ITKIdId de plantilla mal formado en la configuración del módulo Identificación de la pruebaIdentificador *Si acepta todos los términos del acuerdo, seleccione "Acepto la licencia" para continuar. Debe aceptar el acuerdo para instalar Ginkgo CADx.Para usar SSL/TLS se debe configurar un certificado y una clave privada válidosIgnorando la operación entranteImagen (jpg, bmp, png)Image Browser DialogCalibraciónAsistente de exportación de imágenesAsistente de importación de imágenesAdquisición de imágenes finalizada.Formato de imagen no soportadoInformación de presentaciónImpresión de imágenesSelección de imágenesImagen sin información métricaImágenes (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|Imágenes JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|Imágenes BMP (*.bmp)|*.bmp;*BMP|Imágenes PNG (*.png)|*.png;*PNG|Imágenes TIFF (*.tif;*.tiff)|*.tif;*.tiff;*TIF;*TIFF|Documentos PDF (*.pdf;*.PDF)|*.PDF;*.pdf|Todos los Ficheros (*.*)|*.*Imágenes (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|Imágenes JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|Imágenes BMP (*.bmp)|*.bmp|Imágenes PNG (*.png)|*.png|Imágenes TIFF (*.tif;*.tiff)|*.tif;*.tiff|Documentos PDF(*.pdf)|*.pdf|Todos los Ficheros (*.*)|*.*ImportaciónImportar ...Importar configuraciónImportar configuración...Importar ficheros a formato DICOMEl proceso de importación ha fallado:Importación completada correctamente, reinicie Ginkgo CADx para aplicar los cambiosImportando...Mensaje en progresoInactivoDetectada inactividadIncluyendo en el historial...Incluyendo ficheros ...Incluyendo en el historial...Incluyendo ficheros...Incluyendo imagen InfoArchivos ini (*.ini)|*.iniFicheros ini (*.ini)|*.iniInicializando entorno...Identificador del centroNombre del centroInstitucionesProtocolo de la capa de transporte del motor de integraciónMotor de integraciónHostname del motor de integración no configuradoPuerto del motor de integración no configuradoError internoError internoError interno al comprobar actualizacionesError interno durante el proceso de autenticaciónError interno al leer el estudio, formato desconocidoError interno al leer el estudio: Error interno al leer el estudio: Error interno al arrancar el hilo: Interpolar pixel dataInterpretando parámetros...Interpretando propiedadesFichero de conformidad DICOM inválidoCódigo HTTP inválidoRespuesta HTTP inválidaSe ha descargado un fichero inválidoEnlace inválidoNúmero de puerto incorrectoInvertir mapa de colorSe ha leído un tag "patient" sin identificadoresJPEGJPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|Todos los ficheros (*.*)|*.*Respuesta JSonJsonCppRODILLAKgLONILONI2PULMÓNEtiquetaIdiomaÚltimos 3 mesesÚltimos 30 díasÚltimos 7 díasÚltima modificaciónLayoutIzquierdaLongitudNivelLibJpegLibPngLibcurlAcuerdo de licenciaMenú de licenciaLicenciasLinealEnlaceEnlazar serieEnlazar estudioEnlazando imagenEnlazando estudio...Cargar...Carga cancelada por el usuarioCargandoCargando plugins...Cargando recursos...Cargando...AET LocalCertificado del AET localConfiguración de DICOM Dir localPACS LocalBase de datos localCentro localUbicaciónConfiguración de ubicacionesLos títulos de las ubicaciones no se pueden repetirUbicacionesLas ubicaciones son rutas predefinidas conocidas (ej: unidades remotas compartidas)LogArchivo log (*.log)|*.log| Archivo de texto (*.txt)|*.txtMonitorizador de logMonitorizador de logLog nodeLogTextError en la lógica: La imagen no está asociada con ninguna serie existente en el modeloError en la lógica: La serie no está asociado con ningún studio existente en el modeloError en la lógica: El estudio no está asociado con ningún paciente existente en el modeloLoginRadio menorMBMEDIASTINOMLLPHecho con %sMasculinoXML mal formadoId de plantilla mal formado (Herramientas de marcado Ctrl+MNúmero máximo de pestañas abiertasSegundos máximos de inactividad de Ginkgo CADxLa longitud máxima del título son 8 caracteresNúmero máximo de respuestas C-Find permitidasHistorial médicoMensajeContenido del mensaje:Detalles del mensajeMensaje enviado con éxitoFormato del mensajeMensajesMetaEmotion HealthcareMetadatosMetrosRejilla métricaMicrasMigrar existente (recomendado)Migrar DICOMDIR existente. Los ficheros existentes serán añadidos al nuevo DICOMDIR. No cierre GinkgoCADx hasta que finalice la operación.Migrando DICOMDIR antiguo ...Migración completada satisfactoriamente. Ahora Ginkgo CADx borrará el fichero: La migración ha finalizado correctamenteMilímetrosMiscModalidadesModalidadError de descarga de modalidadesConfiguración de modalidadFecha de modificaciónModificadoLa herramienta de módulo aún estaba registrada cuando se destruyó el registro de herramientas ToolsRegistry.MonitorizarMosaicoMoveNACK recibido: NAME SURNAME SECOND_SURNAMENombreVecino más próximoNecesita ayuda ...Nuevo...Nuevo estudio en Ginkgo CloudNueva actualizaciónNuevo usuarioNuevo protocolo de visualizaciónNueva versión disponibleNueva versión disponible (NoNo se ha encontrado ningún DICOMDIR en las unidades extraíbles. ¿Quiere escanear recursivamente la unidad %s?No se ha encontrado ningún DICOMDIR en las unidades extraíbles. ¿Quiere escanear otro directorio recursivamente?Sin loginNo utilizar proxy para las direcciones que contenganNo se obtuvieron resultadosNo apto para uso diagnóstico. Por favor, considere actualizar a No se obtuvieron contextos de presentación válidosNormalÁngulo normal (3 puntos)No consolidadoNo se han encontrado suficientes parámetros en el XMLNo encontradoNo implementadoNotaRespuesta nulaNúmero de vérticesOKOkAET omitidaIdentificador omitidoPuerto omitidoUn díaUn mesUna semanaUn añoManual en líneaSoporte onlineAbrirAbrir ficheroAbrir Ginkgo CloudAbrir enlace Ginkgo CloudAbrir serieAbrir serie con..Entorno CADx DICOM Open SourceLicencias Open SourceAbrir con...Abrir ficheroAbrir directorioAbrir en ventana principalAbrir enlaceAbrir una pestaña para cada estudioAbrir unidad extraíbleAbrir estudioAbrir estudio con..Abrir carta de ajusteAbrir...OpenGLOpenSSLModo de aperturaOtrosOtras configuracionesOtrosDatos generales de los ficheros DICOMSobreescribirSobreescribir rutasP-ValuePACSLimitaciones del PACSPACS Q/RLa búsqueda sobre servidores PACS está restringidaError en el PACS: Servicio-PACSPDF extraido con éxito...PDU (KB)Ficheros PEM (*.pem;*.key)|*.pem;*.key|Todos los ficheros (*.*)|*.*PERFusiónPETConfigurar páginaMover Ctrl+PParámetrosContraseñaLa contraseña y su confirmación no pueden ser diferentes.La contraseña se ha cambiado con éxito.La contraseña debe contener al menos 6 caracteresLa contraseña no está establecidaLa contraseña está establecidaPegarPegar desde el portapapelesDirectorioEl path de la ubicación no existePacienteId del pacienteId del pacienteId del pacienteInformación del pacienteNombre de pacienteNombre y apellidos del pacientePendientePerímetroIdentificador del sistema peticionarioMédicoIdentificador del médicoNombre del médicoSuavizado de pixelsPuntoPuntero EscPuntos (I)Puntos (M)PoligonoPuertoEl valor de puerto no es un número validoEl valor de puerto no es un número validoPosición (I)Posición (M)Posición:Powered byPrevisualizaciónPrevisualizacionesImprimirImprimir imagenPrevisualizaciónClave privadaLa clave privada y el certificado no coincidenClave privada en formato PEMProceso cancelado por el usuario.Entorno profesional DICOM PerfilNombre del perfilNo se puede repetir el nombre del perfilPerfilesConfiguración de perfilesActualizaciones del programaPropiedadesPropiedades...Propiedades de Propiedades de...Propiedades...ProtocoloConfiguración de proxyEl servidor proxy requiere autenticaciónConfiguración de proxyClave públicaClave pública en formato PEMPulse el botón de configuración y situe la ventana donde deseeCalidadError en la petición con Id PACS Nivel de query/retrieve no especificadoBúsqueda ejecutada con éxito.Consultando PACS ...REGEXP invocada con un número incorrecto de argumentos: %d en lugar de 2.ROILeyendo DICOMDIR...Leyendo datasetInterpretando propiedadesMedida realIdentificador de la organización receptoraLa asociación receptora ha fallado: Codec de recompresión (0=JPEG Baseline(default), 1=JPEG Progresivo, 2=JPEG Lossless)RehacerMédico especialistaMédico ActualizarExpresión regular inválida: 'Información de referenciasRecuede que comprando Ginkgo CADx Pro, está contribuyendo a su desarrolloEliminarEliminar todasEliminar columnaBorrar DICOMDIR antiguo después de la migración (se renombrará como *_old)Eliminar consultaEliminar filaEliminar mensajes enviadosEl módulo solicitado no soporta importaciónEl módulo solicitado no está registradoResetResetear tamaño a la resolución del dispositivoRestaurarRestringir la búsqueda sobre un paciente seleccionadoRestringir el tamaño máximo de descarga por estudio (KB)ResultadosMétodo de obtenciónModo de obtenciónReintentar el envío al PACSReutilizar conexiónReutilizar conexiónes cuando se necesite hacer más de una consultaDerechaRotar 90Rotar y voltearRotar cámaraFilasRegla Ctrl+RProcesandoCOLUMNASQL LiteSSL/TLSGuardarGuardar log...Guardar logsGuardar captura como nueva serie...EscalaEscala XEscala YBuscarBuscar en Ginkgo CloudLa búsqueda sin parámetros puede tardar mucho tiempo ¿Desea continuar?SeguridadConfiguración de SeguridadTipo de seguridadSeleccione el DICOMDIRSeleccionar PACSSeleccionar servidor PACSSeleccione una vistaSeleccione un fichero DICOMDIR válidoSeleccione un Servidor PACS validoSeleccione una consulta válidaSeleccionar TodosDebe seleccionar al menos una serieSeleccionar certificadoSeleccione los ficheros que desea adquirir desde el DICOMDIRSeleccionar unidadSeleccione la unidad que desea abrirSeleccione un ficheroSeleccionar imágenes desde el sistema de ficherosSeleccionar archivos...Seleccione cómo desea manipular los items MPPSSeleccionar imágenesSeleccionar modo de aperturaSeleccionar otroSeleccionar otra ruta. Si la ruta no contiene un DICOM Dir de Ginkgo CADx, se crerará uno nuevo. En cualquier otro caso, se usará el DICOMDIR actual.Seleccionar consultas almacenadas...Seleccione un directorio DICOMDIR válidoSeleccione el directorio donde se guardarán los ficherosSeleccione el formato y las imágenes a exportarImágenes seleccionadasSelección de perfil de ImportaciónError sintáctico/semántico al interpretar la URL de integración (vea el registro de log para más detalles): Error sintáctico/semántico al interpretar el XML de integración (vea el registro de log para más detalles): Enviar mensaje HL7 al importarEnvío de ficheros al PACSEnviar enlace por e-mailEnviar estudio al PACS al importarEstado del proceso de envío:Enviar al PACSEnviar al PACS...Enviando mensaje HL7 %d de %dEnviando al PACS...EnviadoSeparar las direcciones con comas.SerieUID de serieCriterio de la serieFecha de la serieLa serie no existeNo se ha podido encontrar la serieHora de la serieServidorNo se encontró el ID de servidor. ID = Servidor no encontradoConfiguración de servidorServicioIdentificador del servicioNombre del servicioPor defectoEstablecer contraseñaActivarEstablecido por el usuarioNivel de compresión, 0 implica sin compresión (0..14)Por defectoValor por defectoEstablecer contraseña principalEstablecer contraseñaActivar suavizado de pixelsActivar la propiedadDesactivar la propiedadConfigurar el nombre de la consultaConfiguración no encontradaConfiguración de la historia clínica electrónicaConfiguraciónMenú de configuraciónConfigurar SeguridadConfigurar anotaciones de las esquinasConfigurar la posición y el tamaño de la ventana donde se abrirá el estudioConfigurar posición...Configurar posición de la ventanConfigurar ventanaConfigurar la posición de la ventanaConfigurar...SexoMostrar el inspector de DICOMMostrar rejillaMostrar MensajeMostrar campo de texto de Accession NumberMostrar anotaciones de las esquinasVer en Pantalla CompletaMostrar rejillaMostrar historial Alt+hMostrar enlace...Mostrar al inicioValor por defecto para mostrar al inicioSaltar elpaso de datos demográficos (si es posible)Ignorando extensión con SID duplicado:CorteUbicaciónGrosor del corteDesplazamiento Ctrl+SAdquisición automáticaConfiguración de consultas automáticasAlguna de las series seleccionadas ha sido eliminadaEl espaciado de la imagen es inválido: (El espaciado de la imagen es inválido: (Especificar este Storage SOP Class al dicomizarEspectroVelocidadDividir activa horizontalmenteDividir activa verticalmenteDividir horizontalmenteDividir verticalmenteIniciarPágina de inicioArrancandoComenzando búsqueda...Arrancando servicios...Arrancando herramientas...EstadoEstado:Paso %d de %d: Paso 1 de 3: Importando imágenesPaso 2 de 3: Copiando imágenesPaso 3 de 3: Subiendo imágenesSternPararParadoParando servicio de envío HL7Guardar consultaConsultas almacenadasIncluyendo en el historial...EstudiosEstudios con EstudioDetalles del estudioUID de estudioUID de estudioFecha del estudioSe ha excedido el tamaño límite de descargaEstudio mal formado o no soportadoCriterio de apertura del estudioEstudio recuperado con éxito.Hora del estudioEstiloApellidosSincronizarSincronizar ficherosAutenticación del sistemaT1 CRÁNEOT2 CRÁNEOReagrupar pestañasAgrupar pestañasOrganización en pestañasTagTags (doble click para cambiar el valor)TareasId de plantilla no soportado (Probar conectividad con el motor de integraciónProbar conexiónProbar servidorTítulo de pruebaProbando la conexión con el servidor...Probando la conexión con el nodo DICOM...TextoNota de texto Ctrl+NEl valor de calibración es demasiado altoEl valor de calibración es demasiado bajoEl valor de calibración ha de ser un número decimalEl fichero Los siguientes comandos se abortarán si cierra la aplicaciónLos siguientes errores han ocurrido al validar los camposEl módulo El tamaño de pdu no es un número válidoEl valor de puerto no es un número validoEl módulo solicitado no está registradoEl directorio seleccionado no puede abrirseEl directorio seleccionado no existe, ¿Desea Crearlo?El directorio seleccionado no existe, ¿Desea Crearlo?El servicio no respondió correctamente a C-ECHOEl servicio no respondió correctamente al estandar DICOMEl proceso de envío está arrancado y listo para enviar mensajesLa herramienta ya está registradaEl nombre de usuario o la contraseña son incorrectosExisten %d tareas pendientesHay ficheros que se tienen que descargar a la base de datos local antes de ejecutar esta acción, ¿Desea sincronizar los ficheros ahora?Existe otro DICOM dir en el directorio seleccionadoSe han producido los siguientes errores:No existe ningún servidor PACS configuradoNo hay registrado ningún módulo que soporte importaciónSe han incluido %d imágenes.No hay URL para comprobar actualizaciones en la configuración actual.No existe ningún servidor PACS configuradoNo hay tareas en ejecuciónNo existe ningún servidor PACS configuradoNo existe una nueva versión de Ginkgo CADx en este momento.No hay registrado ningún módulo que soporte importaciónNo existe ningún lector de pdf registrado en el sistemaHa ocurrido un error al anonimizar los ficherosOcurrió un error al cambiar la contraseña. Para más información abra el LOG.Se ha producido un error al crear el directorioOcurrió un error al eliminar el usuario. Para más información abra el LOG.Ha ocurrido un error durante la exportaciónHa ocurrido un error durante el proceso de importación, compruebe que tiene permisosOcurrió un error al insertar el usuario. Para más información abra el LOG.Ha ocurrido un error leer el fichero DICOMDIRHa ocurrido un error al leer el directorio, asegurese de que tiene permisos de escritura sobre el mismoHa ocurrido un error al escribir el ficheroEstas series se han borrado del historial localSe han producido los siguientes errores: Esta característica sólo afecta a los estudios COPIADOS en el DICOMDIR que no estén en uso.Estos ficheros son Dicom Dirs:Este fichero no existe: Estos ficheros no tienen formato DICOM:Este nombre de consulta está en uso, ¿desea sobreescribirlo?Esta consulta se eliminará permanentemente, ¿confirma su eliminación?Esta seria ya ha sido descargada en el historial local. ¿Desea volverla a descargar?Este estudio ya ha sido descargado en el historial local. ¿Desea volverlo a descargar?Esta versión de Ginkgo Cadx no es compatible con la versión actual de Ginkgo Cloud.Esta vista no soporta varias ventanasThreadingTres díasTres mesesHoraTítuloPara descargar el estudio, pegue esta urlPara configurar las anotaciones de las esquinas puedes usar tags DICOM con sintaxis ${GGGG|EEEE:ValorPorDefecto:Formato} donde GGGG es el grupo del tag en código hexadecimal y EEEE es el tag del elemento. ValorPorDefecto y Formato son valores opcionales, Formato admite dos formatos especiales (date y time).HoyHoy mañanaHoy tardeHerramientasCargando herramientas base...Anotación de la esquina superior izquierdaAnotación de la esquina superior izquierdaAnotación de la esquina superior derechaTrackball Ctrl+TTrapezoideRecorrido (I)Recorrido (M)Dos díasDos semanasTipoDESCONOCIDOUPDATE_INFOURL del manualURL del soporte en líneaNo es posible añadir el SOP Class soportadoNo es posible añadir los transfer syntax soportados Imposible realizar la conexión: No se pudo iniciar el soporte de red.No ha sido posible crear la capa de transporte TLSNo se puede iniciar el subsistema HTTPNo se pudo cargar el recurso de animación GIFNo se pudo cargar el recurso de bitmap PNGNo se pudo cargar el recurso de imagen PNGNo es posible abrir la modalidad Error al procesar la petición HTTPNo se ha podido reservar memorioa para la dicomización del PDFNo se ha podido reservar memorioa para la dicomización de la imagenNo se pudo iniciar GinkgoCADx: Deshacer Deshacer rotaciones y volteosError inesperado, seleccione de nuevo el móduloIdentificador único de aplicación del Sistema de Comunicación y Almacenamiento de Imágenes (SIID/PACS).Identificador único de la "Filler Application" (SIID/Ginkgo CADx).Identificador único de la "Filler Application" (SIID/Ginkgo).Identificador único de la organización receptora del mensaje.Identificador único del sistema que realiza la petición (SIID).DesconocidoAtributo JSon desconocido:Error desconocidoError desconocido en el proceso de dicomizaciónId de módulo desconocido (Operación desconocidaProtocolo desconocidoNivel de query/retrieve desconocidoDatos no guardadosDesactivar suavizado de pixelsProtocolo no soportadoPeriodo de actualización (en días)Actualizando...Subir imágenes a un servidor PACSSubir estudioSubir estudio...Subiendo fichero %d de %dSubiendo ficheros...Usar SSL/TLSUsar por defectoUsar certificado por defecto (certificado configurado en configuración del AET local)UsuarioNombre de usuarioUsuario eliminado con éxitoUsuario insertado con éxitoLogin de usuarioNombre de usuarioEl nombre de usuario debe contener al menos 4 caracteresEl nombre de usuario está repetidoUsuario/ContraseñaNombre de usuarioUsuariosSuele ser debido a un error en el envío de un mensajeVERTEBRAVR huesosVR músculos y huesosVR vasos rojosVTKValorValor:Verificar credenciales del clienteVerificar credenciales del servidorVídeo Ctrl+EspacioVerVer en pantalla completaVolumenVoxel:WADOError WADOURL WADOAvisar de nuevas actualizaciones de Ginkgo CADxAvisoAtención, para modificar el directorio, es necesario cerrar todas las series abiertas.Atención, para modificar el directorio, es necesario cerrar todas las series abiertas.PesoPropiedades del widgetNombre del widgetWindowVentana %dAnotaciones de la ventanaLayout de la ventanaWindow/Level Ctrl+WWindow/LevelEtiqueta de window/level en usoLista de trabajoListas de trabajoEspacio de trabajoEstación de trabajo ¿Desea sobreescribirlos?¿Confirma la eliminación de estos mensajes?¿Desea guardar los cambios en el estudio: Escriba el nombre de la consultaWxWidgetsXEscala del eje XXML Parser No encontrado. Clave=Dicomización desde XMLError interno al procesar el XMLEscala del eje YSiAyerNo está autorizado para descargar este tipo de modalidades.Puedes usar tags especiales listados en el texto de ayuda sobre el botón de información.Puede copiar y pegar el enlace para usarlo en e-mails y páginas web, el único requisito para descargar los estudios es tener instalado Ginkgo CADx.No se pueden eliminar series abiertasNo tiene permisos para escribir en el DICOM DIR, las preferencias se almacenaran en el directorio temporalSe ha alcanzado el número máximo de pestañas abiertas, cierre alguna pestaña e intentelo de nuevoEs obligatorio configurar la clave pública y la clave privadaDebe configurar el AET local, que se utilizará al comunicarse con los nodos DICOM. El puerto indicado debe de estar abierto en el firewall, ya que es imprescindible para las transferencias.Se debe configurar el AET local, que se utilizará al comunicarse con el servidor PACS. El puerto indicado debe de estar abierto en el firewall, ya que es imprescindible para las transferencias.Debe crear al menos un usuarioSe tiene que definir un PACS por defecto en en menú de configuración o en el XML de integraciónDebe de rellenar el título y la ubicación para continuarDebe de rellenar todos los camposDebe de rellenar todos los campos para continuarDebe de rellenar el nombre para continuarDebe seleccionar al menos una imagenDebe seleccionar al menos una imagenDebe de seleccionar las imágenes que desea importarDebe seleccionar el perfil de importaciónDebe seleccionar el perfil de importación a utilizarDebes establecer la contraseña principalSe debe especificar al menos un filtro de modalidad o un periodo de tiempoDebe especificar los atributos que deseas usar en la consultaZlibZoom Ctrl+Otodos los ficherosy todos sus subdirectorios ¿Desea confirmar el borrado?bytes/sec durantehorariocmantihorariodoc\manual_ginkgo_cadx_pro_es.pdfel elemento patient id no existe en el conjunto de datosel elemento series instance uid no existe en el conjunto de datosel elemento sop instance uid no existe en el conjunto de datosel elemento study instance uid no existe en el conjunto de datoserrorlibres denombre de host/puerto no establecidohttp://ginkgo-cadx.comhttp://ginkgo-cadx.com/Atributo "id_aplicacion" no especificadoimagen_%d-%m-%Y_en el directorio de dicomizaciónen la herramienta del historial de Ginkgo CADx "Abrir enlace Ginkgo Cloud", o péguelo en la barra de direcciones de su navegador.javicargaderesultados de la búsquedasegundosconfiguraciónesta serieestas seriesginkgocadx-3.8.7/cadxcore/lang/es/cadxcore.po000066400000000000000000010233321314736454600211400ustar00rootroot00000000000000# msgid "" msgstr "" "Project-Id-Version: ginkgocadx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-07-16 08:43+0100\n" "PO-Revision-Date: 2014-07-16 08:44+0100\n" "Last-Translator: Javier Tovar\n" "Language-Team: Metaemotion \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" "X-Launchpad-Export-Date: 2012-04-24 11:40+0000\n" "X-Poedit-Basepath: .\n" "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,296,-1,-1\n" "X-Poedit-KeywordsList: _;_Std\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SearchPath-0: ..\\..\n" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "B/N" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "B/N inverso" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "Barten" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "Cuerpo negro" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "Cardiac" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "VR huesos" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "VR músculos y huesos" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Red Vessels" msgstr "VR vasos rojos" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "Arcoiris gris" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "Stern" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "Espectro" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Metal" msgstr "Metal caliente" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "Hierro caliente" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Green" msgstr "Verde caliente" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "GE Color" msgstr "GE color" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "PERFusión" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PET" msgstr "PET" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "Flujo" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "LONI" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "LONI2" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "Asimétrico" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "P-Value" msgstr "P-Value" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "ROI" #: ..\../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "Intentando desreferencia un puntero nulo" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #: ..\../api/dicom/idicomconformance.cpp:214 #: ..\../api/dicom/idicomconformance.cpp:220 msgid "GIL/DICOM/Conformance" msgstr "GIL/DICOM/Conformance" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid "Unable to add supported transfer syntax " msgstr "No es posible añadir los transfer syntax soportados " #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid " to SOP Class " msgstr " a SOP Class" #: ..\../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr ".. El Transfer Syntax no existe en el modelo: Añádelo primero" #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr ".. SOP Class no existe en el modelo: Añádelo primero." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid "Unable to add supported SOP Class " msgstr "No es posible añadir el SOP Class soportado" #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid " to Modality " msgstr " a la Modalidad" #: ..\../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr ".. La modalidad no existe en el modelo: Añádela primero." #: ..\../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "Error cargando el fichero de conformidad DICOM" #: ..\../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "Fichero de conformidad DICOM inválido" #: ..\../api/iannotator.cpp:97 msgid "Slice" msgstr "Corte" #: ..\../api/iannotator.cpp:97 msgid "of" msgstr "de" #: ..\../api/iannotator.cpp:97 msgid "Volume" msgstr "Volumen" #: ..\../api/iannotator.cpp:107 msgid "Voxel:" msgstr "Voxel:" #: ..\../api/iannotator.cpp:110 msgid "Image without metric information" msgstr "Imagen sin información métrica" #: ..\../api/iannotator.cpp:119 msgid "Slice thickness" msgstr "Grosor del corte" #: ..\../api/iannotator.cpp:127 msgid "Slice location" msgstr "Ubicación" #: ..\../api/iannotator.cpp:139 msgid "Scale" msgstr "Escala" #: ..\../api/iannotator.cpp:147 msgid "Right" msgstr "Derecha" #: ..\../api/iannotator.cpp:149 msgid "Left" msgstr "Izquierda" #: ..\../api/iannotator.cpp:169 msgid "%Y-%m-%d" msgstr "%d/%m/%Y" #: ..\../api/iannotator.cpp:177 msgid "%H:%M:%S" msgstr "%H:%M:%S" #: ..\../api/iannotator.cpp:245 msgid "Position:" msgstr "Posición:" #: ..\../api/iannotator.cpp:299 msgid "Value:" msgstr "Valor:" #: ..\../api/iexception.cpp:52 msgid "Exception in component" msgstr "Excepción en el componente" #: ..\../api/initwx.cpp:439 msgid "Initializing environment ..." msgstr "Inicializando entorno..." #: ..\../api/initwx.cpp:446 ..\../api/initwx.cpp:447 ..\../api/initwx.cpp:448 #: ..\../api/initwx.cpp:449 ..\../api/initwx.cpp:450 ..\../api/initwx.cpp:451 #: ..\../api/initwx.cpp:452 ..\../api/initwx.cpp:453 msgid "Ginkgo CADx restrictions" msgstr "Restricciones de Ginkgo CADx" #: ..\../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "Abrir una pestaña para cada estudio" #: ..\../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "Modo anónimo (el historial se limpia al cerrar Ginkgo CADx)" #: ..\../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "Número máximo de pestañas abiertas" #: ..\../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "Segundos máximos de inactividad de Ginkgo CADx" #: ..\../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "Cerrar automáticamente Ginkgo CADx después de dicomizar" #: ..\../api/initwx.cpp:451 msgid "Export images" msgstr "Exportar imágenes" #: ..\../api/initwx.cpp:452 msgid "Acquire DICOM files" msgstr "Adquiriendo ficheros DICOM" #: ..\../api/initwx.cpp:453 msgid "Import files to DICOM format" msgstr "Importar ficheros a formato DICOM" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "Online manual" msgstr "Manual en línea" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "URL of manual" msgstr "URL del manual" #: ..\../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "doc\\manual_ginkgo_cadx_pro_es.pdf" #: ..\../api/initwx.cpp:459 msgid "Online support" msgstr "Soporte online" #: ..\../api/initwx.cpp:459 msgid "URL of online support" msgstr "URL del soporte en línea" #: ..\../api/initwx.cpp:459 msgid "http://ginkgo-cadx.com/" msgstr "http://ginkgo-cadx.com/" #: ..\../api/initwx.cpp:460 ..\../api/initwx.cpp:461 msgid "Program Updates" msgstr "Actualizaciones del programa" #: ..\../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "Avisar de nuevas actualizaciones de Ginkgo CADx" #: ..\../api/initwx.cpp:461 msgid "Update period (days)" msgstr "Periodo de actualización (en días)" #: ..\../api/initwx.cpp:462 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "Seguridad" #: ..\../api/initwx.cpp:462 msgid "Setup Security" msgstr "Configurar Seguridad" #: ..\../api/initwx.cpp:463 msgid "Show on startup" msgstr "Mostrar al inicio" #: ..\../api/initwx.cpp:463 msgid "Show on startup default value" msgstr "Valor por defecto para mostrar al inicio" #: ..\../api/initwx.cpp:465 ..\../api/initwx.cpp:466 #: ..\../main/gui/history3/historypanel3.cpp:328 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "Herramientas" #: ..\../api/initwx.cpp:465 msgid "Settings menu" msgstr "Menú de configuración" #: ..\../api/initwx.cpp:466 msgid "License menu" msgstr "Menú de licencia" #: ..\../api/initwx.cpp:467 ..\../api/initwx.cpp:468 ..\../api/initwx.cpp:469 #: ..\../api/initwx.cpp:470 ..\../api/initwx.cpp:471 ..\../api/initwx.cpp:472 #: ..\../api/initwx.cpp:473 ..\../api/initwx.cpp:474 msgid "PACS Limits" msgstr "Limitaciones del PACS" #: ..\../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "Número máximo de respuestas C-Find permitidas" #: ..\../api/initwx.cpp:468 msgid "Upload images to a PACS server" msgstr "Subir imágenes a un servidor PACS" #: ..\../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "Adquirir imágenes desde un servidor PACS" #: ..\../api/initwx.cpp:470 msgid "Enable remote PACS configuration" msgstr "Habilitar la configuración de PACS" #: ..\../api/initwx.cpp:471 msgid "Enable TLS configuration" msgstr "Habilitar la configuración TLS" #: ..\../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "Restringir la búsqueda sobre un paciente seleccionado" #: ..\../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "Restringir el tamaño máximo de descarga por estudio (KB)" #: ..\../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "Forzar recodificar a JPEG Lossless al subir al PACS" #: ..\../api/initwx.cpp:475 ..\../api/initwx.cpp:476 ..\../api/initwx.cpp:477 #: ..\../api/initwx.cpp:478 ..\../api/initwx.cpp:479 ..\../api/initwx.cpp:480 msgid "Import" msgstr "Importación" #: ..\../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "Especificar este Storage SOP Class al dicomizar" #: ..\../api/initwx.cpp:476 msgid "Show accession number input" msgstr "Mostrar campo de texto de Accession Number" #: ..\../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "Nivel de compresión, 0 implica sin compresión (0..14)" #: ..\../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" "Codec de recompresión (0=JPEG Baseline(default), 1=JPEG Progresivo, 2=JPEG " "Lossless)" #: ..\../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "No cambiar la codificación de la imagen (si es posible)" #: ..\../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "Saltar elpaso de datos demográficos (si es posible)" #: ..\../api/initwx.cpp:482 msgid "HL7 Service" msgstr "Servicio HL7" #: ..\../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "Iniciar automáticamente el servicio de envío HL7" #: ..\../api/initwx.cpp:483 ..\../api/initwx.cpp:484 ..\../api/initwx.cpp:485 msgid "XML dicomization" msgstr "Dicomización desde XML" #: ..\../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "Enviar mensaje HL7 al importar" #: ..\../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "Enviar estudio al PACS al importar" #: ..\../api/initwx.cpp:485 msgid "Default ORU template" msgstr "Plantilla ORU por defecto" #: ..\../api/initwx.cpp:488 ..\../api/initwx.cpp:489 ..\../api/initwx.cpp:491 #: ..\../api/initwx.cpp:493 ..\../api/initwx.cpp:494 ..\../api/initwx.cpp:495 #: ..\../api/initwx.cpp:496 ..\../api/initwx.cpp:498 msgid "Style" msgstr "Estilo" #: ..\../api/initwx.cpp:503 #, c-format msgid "Download %s images" msgstr "Descargar modalidad %s" #: ..\../api/initwx.cpp:504 ..\../api/initwx.cpp:508 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:21 msgid "PACS" msgstr "PACS" #: ..\../api/initwx.cpp:507 msgid "Download all modalities" msgstr "Descargar todas las modalidades" #: ..\../api/initwx.cpp:510 msgid "OpenGL" msgstr "OpenGL" #: ..\../api/initwx.cpp:510 msgid "Enable shaders" msgstr "Habilitar shaders" #: ..\../api/initwx.cpp:513 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:388 msgid "Ginkgo Cloud" msgstr "Ginkgo Cloud" #: ..\../api/initwx.cpp:513 msgid "Download from Ginkgo Cloud" msgstr "Descargando de Ginkgo Cloud" #: ..\../api/initwx.cpp:560 msgid "Tools loading base ..." msgstr "Cargando herramientas base..." #: ..\../api/initwx.cpp:562 msgid "Starting tools..." msgstr "Arrancando herramientas..." #: ..\../api/initwx.cpp:566 msgid "Loading plugins ..." msgstr "Cargando plugins..." #: ..\../api/initwx.cpp:580 msgid "Unable to start GinkgoCADx:\n" msgstr "No se pudo iniciar GinkgoCADx:\n" #: ..\../api/initwx.cpp:580 ..\../api/initwx.cpp:621 msgid "error" msgstr "error" #: ..\../api/initwx.cpp:584 msgid "Loading resources ..." msgstr "Cargando recursos..." #: ..\../api/initwx.cpp:587 msgid "Starting services..." msgstr "Arrancando servicios..." #: ..\../api/initwx.cpp:601 msgid "Configuring environment ..." msgstr "Configurando entorno..." #: ..\../api/initwx.cpp:621 msgid "Failed to set permissions:\n" msgstr "Error al establecer los permisos:\n" #: ..\../api/initwx.cpp:634 msgid "Updating ..." msgstr "Actualizando..." #: ..\../api/initwx.cpp:638 msgid "Interpreting parameters ..." msgstr "Interpretando parámetros..." #: ..\../api/initwx.cpp:689 msgid "Error unregistering tools: " msgstr "Error al des-registrar herramientas: " #: ..\../api/initwx.cpp:769 msgid "Starting" msgstr "Arrancando" #: ..\../api/ivista.cpp:36 ..\../commands/comandocarga.cpp:73 msgid "Loading..." msgstr "Cargando..." #: ..\../api/iwidgets.cpp:268 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ..\../main/gui/import/pasosimportacionbase.cpp:151 msgid "Name" msgstr "Nombre" #: ..\../api/iwidgets.cpp:285 msgid "Area" msgstr "Área" #: ..\../api/iwidgets.cpp:302 msgid "Perimeter" msgstr "Perímetro" #: ..\../api/iwidgets.cpp:316 msgid "Travel (I)" msgstr "Recorrido (I)" #: ..\../api/iwidgets.cpp:326 msgid "Travel (M)" msgstr "Recorrido (M)" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #: ..\../api/threads/thread.cpp:120 msgid "Threading" msgstr "Threading" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid "Error while running thread: " msgstr "Error al arrancar el hilo: " #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid " : " msgstr " : " #: ..\../api/threads/thread.cpp:120 msgid "Internal error while running thread: " msgstr "Error interno al arrancar el hilo: " #: ..\../api/widgetserializable.cpp:60 msgid "Creation Date" msgstr "Fecha de creación" #: ..\../api/widgetserializable.cpp:65 msgid "Modification Date" msgstr "Fecha de modificación" #: ..\../api/widgetserializable.cpp:68 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ..\../wx/gnkinforme/gnkinformebase.cpp:40 msgid "Physician" msgstr "Médico" #: ..\../commands/acquirefromurlcommand.cpp:55 #: ..\../commands/pacsdownloadcommand.cpp:88 #: ..\../commands/synchronizationcommand.cpp:70 msgid "Downloading files ..." msgstr "Descargando ficheros..." #: ..\../commands/acquirefromurlcommand.cpp:69 #: ..\../commands/synchronizationcommand.cpp:91 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, c-format msgid "Downloading file %d" msgstr "Descargando fichero %d" #: ..\../commands/acquirefromurlcommand.cpp:81 msgid "Error downloading file: " msgstr "Error al descargar el fichero: " #: ..\../commands/acquirefromurlcommand.cpp:95 #: ..\../commands/pacsdownloadcommand.cpp:114 #: ..\../commands/synchronizationcommand.cpp:121 msgid "Internal Error" msgstr "Error interno" #: ..\../commands/acquirefromurlcommand.cpp:115 msgid "Error downloading files: " msgstr "Error al descargar los ficheros:" #: ..\../commands/autocleaningcommand.cpp:62 msgid "Cleaning dicomdir..." msgstr "Borrando dicomdir..." #: ..\../commands/cloudcommand.cpp:67 msgid "Downloading files..." msgstr "Descargando ficheros..." #: ..\../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "ComandoCloud" #: ..\../commands/cloudcommand.cpp:183 msgid "Unknown operation" msgstr "Operación desconocida" #: ..\../commands/cloudcommand.cpp:188 msgid "Error in cloud operation. See log to get more details..." msgstr "" "Error en la operación con Ginkgo Cloud. Revise el log para obtener más " "detalles..." #: ..\../commands/cloudcommand.cpp:249 msgid "Could to retrieve study." msgstr "Error al recuperar el estudio." #: ..\../commands/cloudcommand.cpp:260 ..\../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" "Esta versión de Ginkgo Cadx no es compatible con la versión actual de Ginkgo " "Cloud." #: ..\../commands/cloudcommand.cpp:262 msgid "Error retrieving study." msgstr "Error descargando el estudio." #: ..\../commands/cloudcommand.cpp:271 msgid "Study successfully retrieved." msgstr "Estudio recuperado con éxito." #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "Speed" msgstr "Velocidad" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "bytes/sec during" msgstr "bytes/sec durante" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "seconds" msgstr "segundos" #: ..\../commands/cloudcommand.cpp:275 msgid "Empty Response" msgstr "Respuesta vacía" #: ..\../commands/cloudcommand.cpp:289 msgid "Extracting files..." msgstr "Extrayendo ficheros..." #: ..\../commands/cloudcommand.cpp:313 ..\../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "Se ha descargado un fichero inválido" #: ..\../commands/cloudcommand.cpp:383 msgid "Could to perform query." msgstr "Error al realizar la consulta." #: ..\../commands/cloudcommand.cpp:396 msgid "Error perfoming the query." msgstr "Error al realizar la consulta." #: ..\../commands/cloudcommand.cpp:405 msgid "Query successfully performed." msgstr "Búsqueda ejecutada con éxito." #: ..\../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "Respuesta JSon" #: ..\../commands/cloudcommand.cpp:472 msgid "Unknown JSon attribute:" msgstr "Atributo JSon desconocido:" #: ..\../commands/cloudcommand.cpp:482 msgid "Error parsing JSon: " msgstr "Error al interpretar JSon:" #: ..\../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "Respuesta nula" #: ..\../commands/cloudcommand.cpp:515 #: ..\../commands/openremovableunit.cpp:148 ..\../main/gui/open/abrir.cpp:119 #: ..\../main/gui/open/abrir.cpp:159 ..\../main/gui/open/opendialogs.cpp:146 msgid "Storing in the history..." msgstr "Incluyendo en el historial..." #: ..\../commands/comandoactualizaciones.cpp:46 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:536 msgid "Check Updates" msgstr "Comprobar Actualizaciones" #: ..\../commands/comandoactualizaciones.cpp:136 msgid "Not enough parameters found on XML" msgstr "No se han encontrado suficientes parámetros en el XML" #: ..\../commands/comandoactualizaciones.cpp:145 msgid "XML parsing internal error" msgstr "Error interno al procesar el XML" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Error checking application updates" msgstr "Error al comprobar las actualizaciones de la aplicación" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Ginkgo CADx updates" msgstr "Actualizaciones de Ginkgo CADx" #: ..\../commands/comandoactualizaciones.cpp:170 msgid "Internal error checking updates" msgstr "Error interno al comprobar actualizaciones" #: ..\../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "No se ha podido encontrar la serie" #: ..\../commands/comandocarga.cpp:92 ..\../commands/comandocarga.cpp:96 msgid "Exception loading:" msgstr "Excepción en la carga:" #: ..\../commands/comandocarga.cpp:100 msgid "Study malformed or unsupported" msgstr "Estudio mal formado o no soportado" #: ..\../commands/comandocarga.cpp:129 ..\../commands/comandocarga.cpp:139 msgid "Error loading study: " msgstr "Error al cargar el estudio: " #: ..\../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "Error al cargar el estudio, memoria insuficiente" #: ..\../commands/comandocarga.cpp:144 msgid "Error loading study." msgstr "Error al cargar el estudio." #: ..\../commands/comandocarga.cpp:149 msgid "Load canceled by user" msgstr "Carga cancelada por el usuario" #: ..\../commands/comandocarga.cpp:156 #: ..\../main/gui/history3/historypanel3.cpp:1056 #: ..\../main/gui/history3/historypanel3.cpp:1063 #: ..\../main/gui/history3/historypanel3.cpp:1068 msgid "Error loading study" msgstr "Error al cargar el estudio" #: ..\../commands/comandoexportacion.cpp:81 #: ..\../commands/exporttodicomdircommand.cpp:214 msgid "Exporting files..." msgstr "Exportando imágenes..." #: ..\../commands/comandoexportacion.cpp:105 #: ..\../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "La exportación ha finalizado con éxito" #: ..\../commands/comandoexportacion.cpp:158 #, c-format msgid "Exporting file %d of %d" msgstr "Exportando fichero %d de %d" #: ..\../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "" "Error al almacenar el fichero, revise los permisos sobre el directorio." #: ..\../commands/comandoexportacion.cpp:233 msgid "image_%m-%d-%Y_" msgstr "imagen_%d-%m-%Y_" #: ..\../commands/comandoincluirhistorial.cpp:108 msgid "Exploring directory ..." msgstr "Explorando directorio..." #: ..\../commands/comandoincluirhistorial.cpp:122 msgid "Reading DICOMDIR ..." msgstr "Leyendo DICOMDIR..." #: ..\../commands/comandoincluirhistorial.cpp:142 #: ..\../commands/comandoincluirhistorial.cpp:156 #: ..\../commands/comandoincluirhistorial.cpp:177 msgid "Including files in the history .." msgstr "Incluyendo en el historial..." #: ..\../commands/comandoincluirhistorial.cpp:196 msgid "Exploring directory " msgstr "Explorando directorio" #: ..\../commands/comandoincluirhistorial.cpp:256 #: ..\../commands/linkhistorycommand.cpp:118 msgid "Image acquisition finished." msgstr "Adquisición de imágenes finalizada." #: ..\../commands/comandoincluirhistorial.cpp:258 #, c-format msgid "There have been included %d images." msgstr "Se han incluido %d imágenes." #: ..\../commands/comandoincluirhistorial.cpp:261 #: ..\../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" "\n" "Han ocurrido %d errores (mirar el log para una descripción más detallada)" #: ..\../commands/comandoincluirhistorial.cpp:273 #: ..\../commands/linkhistorycommand.cpp:133 msgid "This files doesn't exist:" msgstr "Este fichero no existe: " #: ..\../commands/comandoincluirhistorial.cpp:284 #: ..\../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "Estos ficheros no tienen formato DICOM:" #: ..\../commands/comandoincluirhistorial.cpp:296 #: ..\../commands/linkhistorycommand.cpp:156 msgid "This files are Dicom Dirs:" msgstr "Estos ficheros son Dicom Dirs:" #: ..\../commands/comandopacs.cpp:58 ..\../commands/pacsdownloadcommand.cpp:61 #: ..\../commands/sendpacscommand.cpp:137 msgid "There is not any Remote PACS configured" msgstr "No existe ningún servidor PACS configurado" #: ..\../commands/comandopacs.cpp:84 msgid "Querying PACS ..." msgstr "Consultando PACS ..." #: ..\../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "" "Error al acceder al controlador del subsistema de integración: (GIL::DICOM)." #: ..\../commands/comandopacs.cpp:98 msgid "Starting Search ..." msgstr "Comenzando búsqueda..." #: ..\../commands/comandopacs.cpp:108 #: ..\../commands/pacsdownloadcommand.cpp:101 msgid "Server ID not found. ID = " msgstr "No se encontró el ID de servidor. ID = " #: ..\../commands/comandopacs.cpp:110 ..\../commands/comandopacs.cpp:112 #: ..\../commands/comandopacs.cpp:114 ..\../commands/comandopacs.cpp:116 msgid "Query error with PACS Id " msgstr "Error en la petición con Id PACS " #: ..\../commands/comandopacs.cpp:116 #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/gui/history3/historypanel3.cpp:1068 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error" msgstr "Error interno" #: ..\../commands/comandopacs.cpp:135 msgid "Failed to perform search: " msgstr "Error al realizar la búsqueda: " #: ..\../commands/dbmigrationcommand.cpp:94 #: ..\../commands/dbmigrationcommand.cpp:103 msgid "Migrating old DICOM Dir ..." msgstr "Migrando DICOMDIR antiguo ..." #: ..\../commands/dbmigrationcommand.cpp:99 #: ..\../commands/dbmigrationcommand.cpp:108 msgid "Including files ..." msgstr "Incluyendo ficheros ..." #: ..\../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" "Migración completada satisfactoriamente. Ahora Ginkgo CADx borrará el " "fichero:\n" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" "y todos sus subdirectorios\n" "¿Desea confirmar el borrado?" #: ..\../commands/dbmigrationcommand.cpp:116 #: ..\../commands/dicomizecommand.cpp:181 #: ..\../commands/openremovableunit.cpp:74 #: ..\../commands/openremovableunit.cpp:110 #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../commands/pdfextractercommand.cpp:130 #: ..\../main/controllers/historycontroller.cpp:447 #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 #: ..\../main/controllers/historycontroller.cpp:1976 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ..\../main/gui/export/parametrosprincipales.cpp:161 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 #: ..\../main/gui/history3/historypanel3.cpp:1045 #: ..\../main/gui/history3/historypanel3.cpp:1078 #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1119 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 #: ..\../main/gui/import/selectimagesimportation.cpp:141 #: ..\../main/gui/import/selectimagesimportation.cpp:342 #: ..\../main/gui/import/selectimagesimportation.cpp:743 #: ..\../main/gui/import/selectimagesimportation.cpp:761 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ..\../main/gui/login/dialogologin.cpp:50 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ..\../main/gui/open/opendialogs.cpp:58 #: ..\../main/gui/open/opendialogs.cpp:62 #: ..\../main/gui/open/opendialogs.cpp:134 #: ..\../main/gui/progress/statusbarprogreso.cpp:284 #: ..\../main/gui/progress/statusbarprogreso.cpp:287 #: ..\../main/gui/progress/statusbarprogreso.cpp:292 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Info" msgstr "Info" #: ..\../commands/dbmigrationcommand.cpp:123 msgid "Migration finisthed successfully" msgstr "La migración ha finalizado correctamente" #: ..\../commands/dialogopathssobreescribirbase.cpp:27 #: ..\../commands/dialogopathssobreescribirbase.cpp:62 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "Overwrite" msgstr "Sobreescribir" #: ..\../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr " ¿Desea sobreescribirlos?" #: ..\../commands/dialogopathssobreescribirbase.cpp:65 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ..\../main/gui/history3/historypanel3base.cpp:339 #: ..\../main/gui/history3/historypanel3base.cpp:415 #: ..\../main/gui/history3/historypanel3base.cpp:486 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ..\../main/gui/open/opendialogsbase.cpp:53 #: ..\../main/gui/open/opendialogsbase.cpp:131 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ..\../widgets/gui/calibracionbase.cpp:86 #: ..\../widgets/gui/selecciontextobase.cpp:60 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "Cancelar" #: ..\../commands/dicomizationcompletebase.cpp:24 #: ..\../commands/dicomizationcompletebase.cpp:33 #: ..\../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "Dicomización completada" #: ..\../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "La dicomización ha finalizado correctamente" #: ..\../commands/dicomizationcompletebase.cpp:56 msgid "Don't show this message again" msgstr "No volver a mostrar este mensaje" #: ..\../commands/dicomizationcompletebase.cpp:62 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ..\../main/gui/history3/historypanel3base.cpp:411 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ..\../widgets/gui/calibracionbase.cpp:82 #: ..\../widgets/gui/selecciontextobase.cpp:56 msgid "Accept" msgstr "Aceptar" #: ..\../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "Paso 1 de 3: Importando imágenes" #: ..\../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "Paso 2 de 3: Copiando imágenes" #: ..\../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "Paso 3 de 3: Subiendo imágenes" #: ..\../commands/dicomizecommand.cpp:179 msgid "Import process failed:" msgstr "El proceso de importación ha fallado:" #: ..\../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" "\n" "¿Desea reintentarlo?" #: ..\../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "Importando..." #: ..\../commands/dicomizecommand.cpp:370 msgid "Unknown error in dicomization process" msgstr "Error desconocido en el proceso de dicomización" #: ..\../commands/dicomizecommand.cpp:431 #: ..\../commands/dicomizecommand.cpp:442 #: ..\../commands/sendpacscommand.cpp:185 msgid "Error sending evidences:" msgstr "Error al enviar evidencias: " #: ..\../commands/dicomizecommand.cpp:437 #: ..\../commands/dicomizecommand.cpp:448 msgid "Can not upload to the PACS:\n" msgstr "No se ha podido subir al PACS:\n" #: ..\../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" "No se ha podido subir al PACS:\n" "Error interno" #: ..\../commands/exporttodicomdircommand.cpp:261 #: ..\../commands/exporttodicomdircommand.cpp:338 #, c-format msgid "Exporting series %d of %d" msgstr "Exportando serie %d de %d" #: ..\../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "Alguna de las series seleccionadas ha sido eliminada" #: ..\../commands/exporttodicomdircommand.cpp:279 #: ..\../commands/exporttodicomdircommand.cpp:385 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/export/parametrosprincipales.cpp:167 msgid "There was an error creating directory" msgstr "Se ha producido un error al crear el directorio" #: ..\../commands/exporttodicomdircommand.cpp:303 #: ..\../commands/exporttodicomdircommand.cpp:408 msgid "There was an error writing file" msgstr "Ha ocurrido un error al escribir el fichero" #: ..\../commands/exporttodicomdircommand.cpp:358 msgid "There was an error anonymizing files" msgstr "Ha ocurrido un error al anonimizar los ficheros" #: ..\../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "el elemento patient id no existe en el conjunto de datos" #: ..\../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "el elemento study instance uid no existe en el conjunto de datos" #: ..\../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "el elemento series instance uid no existe en el conjunto de datos" #: ..\../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "el elemento sop instance uid no existe en el conjunto de datos" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Ignoring incoming operation " msgstr "Ignorando la operación entrante" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:298 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "No implementado" #: ..\../commands/incomingdicomassociationcommand.cpp:473 #: ..\../commands/pacsdownloadcommand.cpp:170 #: ..\../commands/pacsdownloadcommand.cpp:179 msgid "Including files..." msgstr "Incluyendo ficheros..." #: ..\../commands/linkhistorycommand.cpp:68 msgid "Linking study..." msgstr "Enlazando estudio..." #: ..\../commands/openremovableunit.cpp:42 #: ..\../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "Explorando unidades..." #: ..\../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" "No se ha encontrado ningún DICOMDIR en las unidades extraíbles.\n" "¿Quiere escanear otro directorio recursivamente?" #: ..\../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" "No se ha encontrado ningún DICOMDIR en las unidades extraíbles.\n" "¿Quiere escanear recursivamente la unidad %s?" #: ..\../commands/openremovableunit.cpp:130 msgid "Select drive you want to open" msgstr "Seleccione la unidad que desea abrir" #: ..\../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" "Ginkgo CADx ha detectado más de una unidad extraíble,\n" "pero ninguna de ellas incluye un DICOMDIR en la raíz.\n" "Seleccione la unidad desde la que deseas adquirir recursivamente" #: ..\../commands/pacsdownloadcommand.cpp:134 msgid "Error downloading study: " msgstr "Error al descargar el estudio: " #: ..\../commands/pdfextractercommand.cpp:103 msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "Error al extraer el pdf, Ginkgo CADx no puede cargar este formato" #: ..\../commands/pdfextractercommand.cpp:103 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ..\../main/gui/progress/statusbarprogreso.cpp:278 #: ..\../widgets/gui/calibracion.cpp:205 ..\../widgets/gui/calibracion.cpp:209 #: ..\../widgets/gui/calibracion.cpp:219 ..\../widgets/gui/calibracion.cpp:225 #: ..\../widgets/gui/calibracion.cpp:229 msgid "Error" msgstr "Error" #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "No existe ningún lector de pdf registrado en el sistema" #: ..\../commands/pdfextractercommand.cpp:130 msgid "PDF files extracted successfully..." msgstr "PDF extraido con éxito..." #: ..\../commands/secondarycapturedicomizecommand.cpp:73 msgid "Ginkgo CADx Secondary Capture" msgstr "Captura Secundaria de Ginkgo CADx" #: ..\../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "Enviando mensaje HL7 %d de %d" #: ..\../commands/sendhl7command.cpp:73 msgid "Message successfully sent" msgstr "Mensaje enviado con éxito" #: ..\../commands/sendhl7command.cpp:77 msgid "Unknown protocol" msgstr "Protocolo desconocido" #: ..\../commands/sendhl7command.cpp:80 ..\../commands/sendhl7command.cpp:93 #: ..\../commands/sendhl7command.cpp:145 msgid "Error sending message:" msgstr "Error al enviar mensaje: " #: ..\../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "Error al enviar el mensaje HL7 (ver log para más información)" #: ..\../commands/sendhl7command.cpp:93 ..\../commands/sendhl7command.cpp:94 msgid "Unknown error" msgstr "Error desconocido" #: ..\../commands/sendhl7command.cpp:134 msgid "Failed to start connection" msgstr "Error al iniciar la conexión" #: ..\../commands/sendhl7command.cpp:148 msgid "Error sending message. It was sent " msgstr "Error al enviar mensaje. Se enviaron " #: ..\../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr " bytes de un total de " #: ..\../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "" "Error en la lógica de confirmación. El identificador del mensaje no se " "corresponde" #: ..\../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "NACK recibido: " #: ..\../commands/sendhl7command.cpp:258 msgid "Failed delivery confirmation:" msgstr "Error en la confirmación de entrega: " #: ..\../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "" "Error en la confirmación de entrega: Entrega no reconocida por el extremo " "remoto" #: ..\../commands/sendpacscommand.cpp:51 msgid "Send files to PACS" msgstr "Envío de ficheros al PACS" #: ..\../commands/sendpacscommand.cpp:155 msgid "Uploading files ..." msgstr "Subiendo ficheros..." #: ..\../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "Error: Entrada de configuración del PACS no encontrada: " #: ..\../commands/sendpacscommand.cpp:181 msgid "Error:" msgstr "Error: " #: ..\../commands/sendpacscommand.cpp:189 msgid "Error sending evidences: Internal error." msgstr "Error al enviar evidencias: Error interno." #: ..\../commands/sendpacscommand.cpp:203 msgid "Error uploading the study to PACS: " msgstr "Error al subir el estudio al PACS: " #: ..\../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" "\n" "¿Desea reintentarlo (se reintentará automáticamente en %d segundos)?" #: ..\../commands/sendpacscommand.cpp:206 msgid "Retry send to PACS" msgstr "Reintentar el envío al PACS" #: ..\../commands/synchronizationcommand.cpp:104 msgid "Error downloading file" msgstr "Error al descargar el fichero" #: ..\../commands/synchronizationcommand.cpp:141 msgid "Error synchronizing study: " msgstr "Error al sincronizar el estudio: " #: ..\../commands/thumbnailscommand.cpp:107 #: ..\../commands/thumbnailscommand.cpp:133 #: ..\../commands/thumbnailscommand.cpp:247 #: ..\../commands/thumbnailscommand.cpp:376 #: ..\../commands/thumbnailscommand.cpp:382 #: ..\../main/gui/import/selectimagesimportation.cpp:504 msgid "Creating Thumbnail..." msgstr "Generando thumbnail..." #: ..\../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "Generando thumbnail..." #: ..\../export/tools/iaddfiletohistorytool.cpp:19 #: ..\../main/gui/history3/historypanel3.cpp:632 msgid "Open study" msgstr "Abrir estudio" #: ..\../export/tools/iangletool.cpp:19 msgid "Angle \tCtrl+A" msgstr "Ángulo \tCtrl+A" #: ..\../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "Brillo/contraste \tCtrl+B" #: ..\../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "Rotar cámara" #: ..\../export/tools/icolormaptool.cpp:20 msgid "Color Map" msgstr "Mapa de color" #: ..\../export/tools/icopyimagetoclipboardtool.cpp:19 #: ..\../main/gui/open/opendialogsbase.cpp:46 #: ..\../main/gui/open/opendialogsbase.cpp:198 msgid "Copy" msgstr "Copiar" #: ..\../export/tools/icornerannotationstool.cpp:20 msgid "Window annotations" msgstr "Anotaciones de la ventana" #: ..\../export/tools/idetachwindowtool.cpp:19 msgid "Detach window" msgstr "Desencajar ventana" #: ..\../export/tools/iimageexporttool.cpp:19 msgid "Export image..." msgstr "Exportar imagen..." #: ..\../export/tools/imarkertool.cpp:20 msgid "Marking Tools \tCtrl+M" msgstr "Herramientas de marcado \tCtrl+M" #: ..\../export/tools/imetricgridtool.cpp:20 msgid "Metric grid" msgstr "Rejilla métrica" #: ..\../export/tools/inotetool.cpp:19 msgid "Text Note \tCtrl+N" msgstr "Nota de texto \tCtrl+N" #: ..\../export/tools/ipacsuploadtool.cpp:19 msgid "Upload study..." msgstr "Subir estudio..." #: ..\../export/tools/ipixelsbluringtool.cpp:20 msgid "Pixels blurring" msgstr "Suavizado de pixels" #: ..\../export/tools/ipointertool.cpp:19 msgid "Pointer \tEsc" msgstr "Puntero \tEsc" #: ..\../export/tools/iqueryretrievetool.cpp:19 #: ..\../main/tools/queryretrievehistorytool.cpp:25 #: ..\../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "Adquirir un estudio DICOM desde el PACS" #: ..\../export/tools/iresettool.cpp:19 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 msgid "Reset" msgstr "Reset" #: ..\../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "Rotar y voltear" #: ..\../export/tools/iruletool.cpp:19 msgid "Rule \tCtrl+R" msgstr "Regla \tCtrl+R" #: ..\../export/tools/isecondarycapturetool.cpp:19 msgid "Save snapshot as new series..." msgstr "Guardar captura como nueva serie..." #: ..\../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "Mostrar historial \tAlt+h" #: ..\../export/tools/ishowtagstool.cpp:19 #: ..\../main/tools/showtagshistorytool.cpp:27 msgid "DICOM inspector" msgstr "Inspector DICOM" #: ..\../export/tools/isimpleprinttool.cpp:19 #: ..\../main/tools/simpleprinttool.cpp:226 msgid "Print" msgstr "Imprimir" #: ..\../export/tools/istartdicomizationtool.cpp:19 msgid "Dicomize..." msgstr "Dicomizar..." #: ..\../export/tools/itoolpan.cpp:19 msgid "Pan \tCtrl+P" msgstr "Mover \tCtrl+P" #: ..\../export/tools/itoolslider.cpp:19 msgid "Slider \tCtrl+S" msgstr "Desplazamiento \tCtrl+S" #: ..\../export/tools/itoolwindowlevel.cpp:19 msgid "Window/Level \tCtrl+W" msgstr "Window/Level \tCtrl+W" #: ..\../export/tools/itoolzoom.cpp:19 msgid "Zoom \tCtrl+O" msgstr "Zoom \tCtrl+O" #: ..\../export/tools/itrackballtool.cpp:19 msgid "Trackball \tCtrl+T" msgstr "Trackball \tCtrl+T" #: ..\../export/tools/iundotool.cpp:20 ..\../main/tools/undotool.cpp:109 msgid "Undo" msgstr "Deshacer " #: ..\../export/tools/ivideotool.cpp:19 msgid "Video \tCtrl+Space" msgstr "Vídeo \tCtrl+Espacio" #: ..\../export/tools/iwindowlayouttool.cpp:20 msgid "Window layout" msgstr "Layout de la ventana" #: ..\../main/controllers/controladorcarga.cpp:161 msgid "Studies with" msgstr "Estudios con " #: ..\../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr " componentes no soportados" #: ..\../main/controllers/controladorcarga.cpp:210 msgid "Reading properties" msgstr "Interpretando propiedades" #: ..\../main/controllers/controladorcarga.cpp:219 #: ..\../main/controllers/controladorcarga.cpp:642 #: ..\../main/controllers/controladorcarga.cpp:888 #: ..\../main/controllers/streaming/streamingloader.cpp:600 msgid "Error reading the study: " msgstr "Error al leer el estudio." #: ..\../main/controllers/controladorcarga.cpp:224 #: ..\../main/controllers/controladorcarga.cpp:229 #: ..\../main/controllers/controladorcarga.cpp:647 #: ..\../main/controllers/controladorcarga.cpp:893 msgid "Internal error reading the study: " msgstr "Error interno al leer el estudio: " #: ..\../main/controllers/controladorcarga.cpp:269 #: ..\../main/controllers/controladorcarga.cpp:281 #: ..\../main/controllers/controladorcarga.cpp:905 msgid "Spacing is not valid: (" msgstr "El espaciado de la imagen es inválido: (" #: ..\../main/controllers/controladorcarga.cpp:305 #: ..\../main/controllers/controladorcarga.cpp:338 #: ..\../main/controllers/controladorcarga.cpp:372 #: ..\../main/controllers/controladorcarga.cpp:408 #: ..\../main/controllers/controladorcarga.cpp:441 #: ..\../main/controllers/controladorcarga.cpp:474 #: ..\../main/controllers/controladorcarga.cpp:507 #: ..\../main/controllers/controladorcarga.cpp:540 #: ..\../main/controllers/controladorcarga.cpp:573 #: ..\../main/controllers/controladorcarga.cpp:606 #: ..\../main/controllers/controladorcarga.cpp:935 msgid "Error loading the study: Out of memory" msgstr "Error al cargar el estudio: Memoria insuficiente" #: ..\../main/controllers/controladorcarga.cpp:375 msgid "Error loading the study: Internal Error" msgstr "Error al cargar el estudio: Error interno" #: ..\../main/controllers/controladorcarga.cpp:630 #: ..\../main/controllers/streaming/streamingloader.cpp:1023 #: ..\../main/controllers/streaming/streamingloader.cpp:1223 #: ..\../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "Error al leer el estudio: Formato de pixel no soportado" #: ..\../main/controllers/controladorcarga.cpp:651 #: ..\../main/controllers/controladorcarga.cpp:960 msgid "Process canceled by user." msgstr "Proceso cancelado por el usuario." #: ..\../main/controllers/controladorcarga.cpp:878 msgid "Interpreting properties" msgstr "Interpretando propiedades" #: ..\../main/controllers/controladorcarga.cpp:917 msgid "Spacing of the image is invalid: (" msgstr "El espaciado de la imagen es inválido: (" #: ..\../main/controllers/controladorcarga.cpp:942 msgid "Reading dataset" msgstr "Leyendo dataset" #: ..\../main/controllers/controladorcarga.cpp:951 msgid "Error reading the study:" msgstr "Error al leer el estudio: " #: ..\../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "Error interno al leer el estudio: " #: ..\../main/controllers/controladorcarga.cpp:972 msgid "load" msgstr "carga" #: ..\../main/controllers/controladorenviohl7.cpp:40 msgid "Stopping HL7 sender" msgstr "Parando servicio de envío HL7" #: ..\../main/controllers/controladorenviohl7.cpp:63 #: ..\../main/controllers/controladorenviohl7.cpp:76 msgid "Error starting HL7 sender" msgstr "Error al inciciar el servicio de envío HL7" #: ..\../main/controllers/controladorenviohl7.cpp:65 #: ..\../main/controllers/controladorenviohl7.cpp:78 msgid "HL7 sender started" msgstr "Servicio de envío HL7 iniciado" #: ..\../main/controllers/controladorenviohl7.cpp:108 msgid "HL7 controller destroyed" msgstr "Controlador HL7 destruído" #: ..\../main/controllers/controladorenviohl7.cpp:150 msgid "Error processing message" msgstr "Error al procesar el mensaje" #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/controllers/pacscontroller.cpp:1549 #: ..\../main/controllers/pacscontroller.cpp:1553 #: ..\../main/controllers/pacscontroller.cpp:1557 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ..\../main/gui/import/pasosimportacionbase.cpp:195 #: ..\../wx/gnkinforme/gnkinformebase.cpp:184 msgid "Unknown" msgstr "Desconocido" #: ..\../main/controllers/controladorextensiones.cpp:110 msgid "Loading" msgstr "Cargando" #: ..\../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "No se pudo cargar la biblioteca. " #: ..\../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "No se pudo cargar la biblioteca. Compruebe el log" #: ..\../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "El descriptor de la extensión no coincide" #: ..\../main/controllers/controladorextensiones.cpp:153 msgid "Could not find entry point" msgstr "No se pudo encontrar el punto de entrada" #: ..\../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "Ignorando extensión con SID duplicado:" #: ..\../main/controllers/controladorhl7.cpp:74 msgid "Integration engine hostname not set" msgstr "Hostname del motor de integración no configurado" #: ..\../main/controllers/controladorhl7.cpp:77 msgid "Integration engine port not set" msgstr "Puerto del motor de integración no configurado" #: ..\../main/controllers/controladorhl7.cpp:91 msgid "Unsupported protocol" msgstr "Protocolo no soportado" #: ..\../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "Error al insertar el mensaje en la cola, consulte a su proveedor" #: ..\../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "Se han encontrado %d resultados" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, c-format msgid "Downloading file %d/%d" msgstr "Descargando fichero %d/%d" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "Se ha excedido el tamaño límite de descarga" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "No se ha podido reservar memorioa para la dicomización del PDF" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "No se ha podido reservar memorioa para la dicomización de la imagen" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:359 msgid "Image format not supported" msgstr "Formato de imagen no soportado" #: ..\../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "No ha sido posible crear la capa de transporte TLS" #: ..\../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "La clave privada y el certificado no coinciden" #: ..\../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "Error al configurar la capa TLS: " #: ..\../main/controllers/dcmtk/dicomservice.cpp:200 msgid "Receiving Association failed: " msgstr "La asociación receptora ha fallado: " #: ..\../main/controllers/dcmtk/dicomservice.cpp:209 msgid "Association received" msgstr "Asociación recibida" #: ..\../main/controllers/dcmtk/dicomservice.cpp:210 msgid "Parameters:" msgstr "Parámetros" #: ..\../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "Asociación Rechazada: Application Context Name incorrecto: " #: ..\../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "Asociación rechazada: no se ha provisto de Implementation Class UID" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "Asociación Admitida (Max Send PDV: " #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr ")" #: ..\../main/controllers/dcmtk/dicomservice.cpp:274 msgid "No valid presentation contexts" msgstr "No se obtuvieron contextos de presentación válidos" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "Association(dicom://" msgstr "Association(dicom://" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "@" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "Ginkgo CADx no puede comprimir desde " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr " hasta " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, c-format msgid "Uploading file %d of %d" msgstr "Subiendo fichero %d de %d" #: ..\../main/controllers/dicommanager.cpp:504 #: ..\../main/controllers/dicommanager.cpp:531 msgid "Extracting file..." msgstr "Extrayendo el fichero..." #: ..\../main/controllers/historycontroller.cpp:323 msgid "Error creating history database " msgstr "Error al crear la base de datos del historial" #: ..\../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr " probando temporal" #: ..\../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" "No tiene permisos para escribir en el DICOM DIR, las preferencias se " "almacenaran en el directorio temporal" #: ..\../main/controllers/historycontroller.cpp:343 msgid "Error creating dicomDir database " msgstr "Error al crear la base de datos del DICOM Dir" #: ..\../main/controllers/historycontroller.cpp:425 #: ..\../main/controllers/historycontroller.cpp:441 msgid "Error creating thumbnails database " msgstr "Error al crear la base de datos de thumbnails" #: ..\../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "Error al crear la base de datos: \n" #: ..\../main/controllers/historycontroller.cpp:560 msgid "Including image " msgstr "Incluyendo imagen " #: ..\../main/controllers/historycontroller.cpp:560 #: ..\../main/controllers/historycontroller.cpp:707 msgid " of " msgstr " de " #: ..\../main/controllers/historycontroller.cpp:707 msgid "Linking image " msgstr "Enlazando imagen" #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "Error al leer el estudio. \n" #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "Error al eliminar la serie de la base de datos: \n" #: ..\../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "Error al vaciar el historial: \n" #: ..\../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" "Ginkgo CADx ha detectado inactividad y se cerrará en %d segundos.\n" "¿Desea continuar?" #: ..\../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "¡Error fatal! No se pueden registrar dos parsers con la misma clave" #: ..\../main/controllers/integrationcontroller.cpp:493 msgid "Malformed template Id (" msgstr "Id de plantilla mal formado (" #: ..\../main/controllers/integrationcontroller.cpp:493 #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" "):\n" "No es un identificador HL7 válido (ej: codigo^description^namespaceId)" #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "Id de plantilla mal formado en la configuración del módulo " #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "Template Id unsupported (" msgstr "Id de plantilla no soportado (" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "" "):\n" "Revise la configuración y asócielo si lo considera necesario" #: ..\../main/controllers/integrationcontroller.cpp:566 msgid "Unknown module Id (" msgstr "Id de módulo desconocido (" #: ..\../main/controllers/integrationcontroller.cpp:592 msgid "Empty configuration" msgstr "Configuración vacía" #: ..\../main/controllers/integrationcontroller.cpp:631 msgid "XML Parser Not Found. Key=" msgstr "XML Parser No encontrado. Clave=" #: ..\../main/controllers/log4cplus/guiappender.cpp:75 msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "%d/%m/%Y %H:%M:%S.%q" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ..\../main/gui/history3/historypanel3base.cpp:48 #: ..\../main/gui/import/pasosimportacionbase.cpp:227 msgid "Patient" msgstr "Paciente" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 msgid "Patient ID" msgstr "Id del paciente" #: ..\../main/controllers/modalitysettingscontroller.cpp:86 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ..\../main/gui/history3/historypanel3.cpp:227 #: ..\../main/gui/open/opendialogs.cpp:50 msgid "Modality" msgstr "Modalidad" #: ..\../main/controllers/modalitysettingscontroller.cpp:98 msgid "Dimensions" msgstr "Dimensiones" #: ..\../main/controllers/modalitysettingscontroller.cpp:109 #, c-format msgid "Made with %s" msgstr "Hecho con %s" #: ..\../main/controllers/modalitysettingscontroller.cpp:167 #: ..\../main/controllers/modalitysettingscontroller.cpp:338 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "Valor por defecto" #: ..\../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "Auto calcular" #: ..\../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "COLUMNA" #: ..\../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "CRÁNEO" #: ..\../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "HUESO" #: ..\../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "HUESO DEL CRÁNEO" #: ..\../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "MEDIASTINO" #: ..\../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "PULMÓN" #: ..\../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "PECHO" #: ..\../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "VERTEBRA" #: ..\../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "ANGIO" #: ..\../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "CT CRÁNEO" #: ..\../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "T1 CRÁNEO" #: ..\../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "T2 CRÁNEO" #: ..\../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "RODILLA" #: ..\../main/controllers/pacscontroller.cpp:1212 msgid "Downloading file" msgstr "Descargando fichero" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Error downloading WADO file" msgstr "Error al descargar el fichero WADO" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Check PACS configuration" msgstr "Compruebe la configuración del PACS" #: ..\../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "Nivel de query/retrieve desconocido" #: ..\../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "Nivel de query/retrieve no especificado" #: ..\../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "Error al procesar la petición HTTP" #: ..\../main/controllers/pacscontroller.cpp:1428 msgid "Invalid HTTP response" msgstr "Respuesta HTTP inválida" #: ..\../main/controllers/pacscontroller.cpp:1433 msgid "Invalid HTTP code" msgstr "Código HTTP inválido" #: ..\../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "No se puede iniciar el subsistema HTTP" #: ..\../main/controllers/pacscontroller.cpp:1472 msgid "PACS-Service" msgstr "Servicio-PACS" #: ..\../main/controllers/parserxmlenglish.cpp:97 #: ..\../main/controllers/parserxmlspanish.cpp:94 msgid "Omitted Identificator" msgstr "Identificador omitido" #: ..\../main/controllers/parserxmlenglish.cpp:105 #: ..\../main/controllers/parserxmlspanish.cpp:102 msgid "Omitted AET" msgstr "AET omitida" #: ..\../main/controllers/parserxmlenglish.cpp:113 #: ..\../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "Hostname omitido" #: ..\../main/controllers/parserxmlenglish.cpp:121 #: ..\../main/controllers/parserxmlspanish.cpp:118 msgid "Omitted port" msgstr "Puerto omitido" #: ..\../main/controllers/parserxmlenglish.cpp:206 #: ..\../main/controllers/parserxmlenglish.cpp:237 #: ..\../main/controllers/parserxmlspanish.cpp:188 #: ..\../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "El tamaño de pdu no es un número válido" #: ..\../main/controllers/parserxmlenglish.cpp:212 #: ..\../main/controllers/parserxmlspanish.cpp:194 msgid "Port is not a valid number" msgstr "El valor de puerto no es un número valido" #: ..\../main/controllers/parserxmlenglish.cpp:248 #: ..\../main/controllers/parserxmlspanish.cpp:228 msgid "The port is not a valid number" msgstr "El valor de puerto no es un número valido" #: ..\../main/controllers/parserxmlenglish.cpp:265 #: ..\../main/controllers/parserxmlspanish.cpp:246 msgid "Setting not found" msgstr "Configuración no encontrada" #: ..\../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "Atributo \"action\" inválido al procesar tag \"gnkworkflow\"" #: ..\../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "Atributo \"action\" no especificado al procesar tag \"gnkworkflow\"" #: ..\../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "Atributo \"pacs_retrieve_sid\" vacío al procesar tag \"gnkworkflow\"" #: ..\../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "Atributo \"pacs_store_sid\" vacío al procesar tag \"gnkworkflow\"" #: ..\../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "" "Atributo \"value\" no especificado al procesar tag \"query-retrieve-level/id" "\"" #: ..\../main/controllers/parserxmlenglish.cpp:391 msgid "\"code\" attribute expected at \"patient\" scope" msgstr "Atributo \"code\" no especificado al procesar tag \"patient\"" #: ..\../main/controllers/parserxmlenglish.cpp:427 msgid "\"code\" attribute expected at \"physician\" scope" msgstr "Atributo \"code\" no especificado al procesar tag \"physician\"" #: ..\../main/controllers/parserxmlenglish.cpp:434 msgid "\"value\" attribute expected at \"physician\" scope" msgstr "Atributo \"value\" no especificado al procesar tag \"physician\"" #: ..\../main/controllers/parserxmlenglish.cpp:445 msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "Atributo \"iid\" no especificado al procesar tag \"institution\"" #: ..\../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "Atributo \"code\" no especificado al procesar tag \"metadata\"" #: ..\../main/controllers/parserxmlenglish.cpp:483 msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "Atributo \"key\" no especificado al procesar tag \"metadata\"" #: ..\../main/controllers/parserxmlenglish.cpp:548 #: ..\../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "Debe especificar los atributos que deseas usar en la consulta" #: ..\../main/controllers/parserxmlenglish.cpp:552 #: ..\../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "Se ha leído un tag \"patient\" sin identificadores" #: ..\../main/controllers/parserxmlenglish.cpp:570 #: ..\../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "" "Se tiene que definir un PACS por defecto en en menú de configuración o en el " "XML de integración" #: ..\../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "Atributo \"accion\" inválido al procesar tag \"plantilla\"" #: ..\../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "Atributo \"accion\" no especificado al procesar tag \"plantilla\"" #: ..\../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "Atributo \"pacs_retrieve_sid\" vacío al procesar tag \"plantilla\"" #: ..\../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "Atributo \"pacs_store_sid\" vacío al procesar tag \"plantilla\"" #: ..\../main/controllers/parserxmlspanish.cpp:340 msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "Atributo \"uid\" no especificado al procesar tag \"dimse\"" #: ..\../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "Atributo \"ambito\" inválido al procesar tag \"medico/id\"" #: ..\../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "Atributo \"ambito\" no especificado al procesar tag \"dimse\"" #: ..\../main/controllers/parserxmlspanish.cpp:402 msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "Atributo \"codigo\" no especificado al procesar tag \"paciente/id\"" #: ..\../main/controllers/parserxmlspanish.cpp:438 msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "Atributo \"codigo\" no especificado al procesar tag \"medico/id\"" #: ..\../main/controllers/parserxmlspanish.cpp:445 msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "Atributo \"valor\" no especificado al procesar tag \"medico/id\"" #: ..\../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "Atributo \"cid\" no especificado al procesar tag \"centro\"" #: ..\../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "Atributo \"aid\" no especificado al procesar tag \"hce\"" #: ..\../main/controllers/parserxmlspanish.cpp:486 msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "Atributo \"codigo\" no especificado al procesar tag \"metadato\"" #: ..\../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "Atributo \"clave\" no especificado al procesar tag \"metadato\"" #: ..\../main/controllers/parserxmlspanish.cpp:524 msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "Atributo \"id_peticion\" no encontrado en el nivel \"gnkworkflow\"" #: ..\../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "Atributo \"ambito\" no especificado al procesar tag \"plantilla\"" #: ..\../main/controllers/parserxmlspanish.cpp:559 msgid "id_application expected" msgstr "Atributo \"id_aplicacion\" no especificado" #: ..\../main/controllers/smartretrievecontroller.cpp:126 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:920 msgid "Downloading from PACS..." msgstr "Descargando ficheros..." #: ..\../main/controllers/streaming/streamingloader.cpp:303 #: ..\../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" "Error al leer el estudio: El valor más alto de pixel no es coherente con la " "combinación de los valores de Pixel Representation y High bit" #: ..\../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "Error interno al leer el estudio, formato desconocido" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ..\../main/gui/history3/historytablemodel.cpp:403 #: ..\../main/gui/history3/historytablemodel.cpp:415 #: ..\../main/gui/history3/historytablemodel.cpp:470 #: ..\../main/gui/history3/historytablemodel.cpp:482 #: ..\../main/gui/open/dicomdirtablemodel.cpp:102 #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "%d/%m/%Y %H:%M:%S" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "%d/%m/%Y 00:00:00" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 msgid "Exploring PACS..." msgstr "Consultando PACS..." #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ..\../main/gui/history3/historypanel3.cpp:225 #: ..\../main/gui/open/opendialogs.cpp:49 msgid "Patient id" msgstr "Id del paciente" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ..\../main/gui/history3/historypanel3.cpp:224 #: ..\../main/gui/open/opendialogs.cpp:48 msgid "Patient name" msgstr "Nombre de paciente" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:479 msgid "Study Instance UID" msgstr "UID de estudio" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ..\../main/gui/history3/historypanel3.cpp:231 #: ..\../main/gui/open/opendialogs.cpp:53 msgid "Accession number" msgstr "Accession number" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:481 msgid "Study date" msgstr "Fecha del estudio" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:482 msgid "Study time" msgstr "Hora del estudio" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:490 msgid "Series Instance UID" msgstr "UID de serie" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:492 msgid "Series date" msgstr "Fecha de la serie" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:493 msgid "Series time" msgstr "Hora de la serie" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:519 msgid "No results found" msgstr "No se obtuvieron resultados" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 msgid "Write query name" msgstr "Escriba el nombre de la consulta" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 msgid "This query name is in use, do you want to overwrite it?" msgstr "Este nombre de consulta está en uso, ¿desea sobreescribirlo?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 msgid "Id" msgstr "Id" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 msgid "Date Time" msgstr "Fecha Hora" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ..\../main/gui/history3/historypanel3.cpp:229 #: ..\../main/gui/import/pasosimportacionbase.cpp:298 #: ..\../main/gui/import/pasosimportacionbase.cpp:340 #: ..\../main/gui/open/opendialogs.cpp:52 msgid "Description" msgstr "Descripción" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ..\../main/gui/import/pasosimportacionbase.cpp:276 msgid "Accession Number" msgstr "Accession Number" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:210 msgid "Store query" msgstr "Guardar consulta" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:211 msgid "Remove query" msgstr "Eliminar consulta" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:278 msgid "There is no any PACS configured" msgstr "No existe ningún servidor PACS configurado" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "Acc#" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:54 msgid "Study UID" msgstr "UID de estudio" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" "La búsqueda sin parámetros puede tardar mucho tiempo\n" "¿Desea continuar?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "Search" msgstr "Buscar" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:519 msgid "Download series" msgstr "Descargar series" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 msgid "Download study" msgstr "Descargar estudio" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:535 msgid "Link series" msgstr "Enlazar serie" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:537 msgid "Link study" msgstr "Enlazar estudio" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:551 msgid "Properties..." msgstr "Propiedades..." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 msgid "You must specify at least a modality or a period of time" msgstr "" "Se debe especificar al menos un filtro de modalidad o un periodo de tiempo" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "Esta consulta se eliminará permanentemente, ¿confirma su eliminación?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 msgid "Select a valid query" msgstr "Seleccione una consulta válida" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 msgid "Select a valid PACS Server" msgstr "Seleccione un Servidor PACS valido" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid "Download of modality " msgstr "Descarga de la modalidad " #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr " no permitido" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "No está autorizado para descargar este tipo de modalidades." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "Modality download error" msgstr "Error de descarga de modalidades" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:786 msgid "search results" msgstr "resultados de la búsqueda" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:913 msgid "Downloading serie..." msgstr "Descargando serie..." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:916 msgid "Downloading study..." msgstr "Descargando estudio..." #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:165 msgid "PACS acquisition is restricted" msgstr "La búsqueda sobre servidores PACS está restringida" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:96 msgid "Server" msgstr "Servidor" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ..\../main/gui/import/pasosimportacionbase.cpp:284 #: ..\../main/gui/import/pasosimportacionbase.cpp:326 #: ..\../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "Fecha" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ..\../main/gui/history3/historypanel3base.cpp:81 msgid "Any date" msgstr "Cualquier fecha" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ..\../main/gui/history3/historypanel3base.cpp:85 msgid "Today AM" msgstr "Hoy mañana" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ..\../main/gui/history3/historypanel3base.cpp:88 msgid "Today PM" msgstr "Hoy tarde" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ..\../main/gui/history3/historypanel3base.cpp:91 msgid "Today" msgstr "Hoy" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ..\../main/gui/history3/historypanel3base.cpp:100 msgid "Yesterday" msgstr "Ayer" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ..\../main/gui/history3/historypanel3base.cpp:103 msgid "Last 7 days" msgstr "Últimos 7 días" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ..\../main/gui/history3/historypanel3base.cpp:106 msgid "Last 30 days" msgstr "Últimos 30 días" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ..\../main/gui/history3/historypanel3base.cpp:109 msgid "Last 3 months" msgstr "Últimos 3 meses" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ..\../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "Entre:" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ..\../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "Modalidades" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 msgid "Stored queries" msgstr "Consultas almacenadas" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:216 msgid "Select stored queries..." msgstr "Seleccionar consultas almacenadas..." #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ..\../main/gui/open/opendialogsbase.cpp:50 #: ..\../main/gui/open/opendialogsbase.cpp:202 msgid "Link" msgstr "Enlace" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "Sólo disponible en servidores WADO" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:289 msgid "Download" msgstr "Descargar" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ..\../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "Cerrar" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:329 msgid "Series does not exist" msgstr "La serie no existe" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "Estas series se han borrado del historial local" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "Continuar" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ..\../main/gui/open/opendialogsbase.cpp:127 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ..\../main/tools/metricgridtool.cpp:101 msgid "Ok" msgstr "Ok" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:151 msgid "Download again" msgstr "Volver a descargar" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:441 msgid "Open" msgstr "Abrir" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:179 msgid "Set query name" msgstr "Configurar el nombre de la consulta" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:32 msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" "Esta seria ya ha sido descargada en el historial local. ¿Desea volverla a " "descargar?" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:34 msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" "Este estudio ya ha sido descargado en el historial local. ¿Desea volverlo a " "descargar?" #: ..\../main/gui/anonymize/anonymizedialog.cpp:64 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ..\../main/gui/export/parametrosprincipales.cpp:194 msgid "Exporting images ..." msgstr "Exportando imágenes..." #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "El campo elemento o grupo tienen valores no válidos" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:21 msgid "Common tags" msgstr "Tags comunes" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 msgid "Patient's name and surname" msgstr "Nombre y apellidos del paciente" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 msgid "Patient Id" msgstr "Id del paciente" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "Instituciones" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "Médico " #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "Comentarios" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:44 msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "Campos Ginkgo CADx (Mapas de valoración...)" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "Tags (doble click para cambiar el valor)" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:71 msgid "Add new..." msgstr "Añadir..." #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ..\../main/tools/anonymizetool.cpp:26 #: ..\../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "Anonimizar" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:136 msgid "Create new" msgstr "Crear nuevo" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ..\../main/gui/anonymize/anonymizepanelbase.h:136 msgid "Add DICOM tag" msgstr "Añadir tag DICOM" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:199 msgid "Group" msgstr "Grupo" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:203 msgid "Element" msgstr "Elemento" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ..\../widgets/wangulo.cpp:1116 msgid "Value" msgstr "Valor" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 msgid "Top right corner annotation" msgstr "Anotación de la esquina superior derecha" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 msgid "Top left corner annotation" msgstr "Anotación de la esquina superior izquierda" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 msgid "Bottom left corner annotation" msgstr "Anotación de la esquina inferior izquierda" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 msgid "Bottom right corner annotation" msgstr "Anotación de la esquina inferior derecha" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 msgid "You must fill in all fields" msgstr "Debe de rellenar todos los campos" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 msgid "Window/level label in use" msgstr "Etiqueta de window/level en uso" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "Escriba valores válidos en los campos window y level." #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "Etiqueta" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 msgid "Window" msgstr "Window" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 msgid "Level" msgstr "Nivel" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "Vecino más próximo" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "Lineal" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "Cúbico" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 msgid "Do you confirm the removal of the preset?" msgstr "¿Confirma la eliminación del perfil?" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Data modified" msgstr "Datos modificados" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 msgid "Modality settings" msgstr "Configuración de modalidad" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 msgid "Default modality settings" msgstr "Configuración por defecto de las modalidades" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, c-format msgid "%s settings" msgstr "%s configuración" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:60 msgid "settings" msgstr "configuración" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Export Configuration" msgstr "Exportar configuración" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Ini Files(*.ini)|*.ini" msgstr "Archivos ini (*.ini)|*.ini" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" "El fichero existe\n" "¿Confirma que desea sobreescribirlo?" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 msgid "Existing file" msgstr "Fichero existente" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 msgid "Export successfully completed" msgstr "Exportación completada correctamente" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 msgid "There was an error during exportation" msgstr "Ha ocurrido un error durante la exportación" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Import Configuration" msgstr "Importar configuración" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Ini files(*.ini)|*.ini" msgstr "Ficheros ini (*.ini)|*.ini" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "" "Importación completada correctamente, reinicie Ginkgo CADx para aplicar los " "cambios" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 msgid "There was an error during importation, check permissions" msgstr "" "Ha ocurrido un error durante el proceso de importación, compruebe que tiene " "permisos" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 msgid "Dicom tag" msgstr "Tag dicom" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 msgid "Split horizontally..." msgstr "Dividir horizontalmente" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 msgid "Split vertically..." msgstr "Dividir verticalmente" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ..\../main/tools/windowlayouttool.cpp:273 msgid "Split active horizontally" msgstr "Dividir activa horizontalmente" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ..\../main/tools/windowlayouttool.cpp:274 msgid "Split active vertically" msgstr "Dividir activa verticalmente" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 msgid "New hanging protocol" msgstr "Nuevo protocolo de visualización" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, c-format msgid "Window %d" msgstr "Ventana %d" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "Esta vista no soporta varias ventanas" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "Activo" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "Yes" msgstr "Si" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "No" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 msgid "Hanging protocols" msgstr "Protocolos de visualización" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 msgid "One day" msgstr "Un día" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 msgid "Two days" msgstr "Dos días" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 msgid "Three days" msgstr "Tres días" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "Una semana" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 msgid "Two weeks" msgstr "Dos semanas" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 msgid "One month" msgstr "Un mes" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 msgid "Three months" msgstr "Tres meses" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "Un año" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 msgid "Local database" msgstr "Base de datos local" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 msgid "Local DICOM Dir setup" msgstr "Configuración de DICOM Dir local" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" "El directorio seleccionado no existe,\n" "¿Desea Crearlo?" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" "Ha ocurrido un error al crear el directorio, asegurese de que la ruta es " "correcta y tiene permisos sobre el directorio padre" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" "Ha ocurrido un error al leer el directorio, asegurese de que tiene permisos " "de escritura sobre el mismo" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 msgid "Select DICOMDIR" msgstr "Seleccione el DICOMDIR" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" "Atención, para modificar el directorio, es necesario cerrar todas las series " "abiertas." #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "Estación de trabajo" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "Configuración de parámetros de la estación local" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "Extensiones" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:126 msgid "Extensions settings" msgstr "Configuración de extensiones" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "" "Debe reiniciar Ginkgo CADx para que los cambios en la extensiones se lleven " "a cabo" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 msgid "Port has to be a valid number" msgstr "El valor de puerto no es un número valido" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "General" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:190 msgid "General configuration parameters" msgstr "Configuración de parámetros generales" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "Debe reiniciar Ginkgo CADx para que los cambios tengan efecto" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "Historia Clínica Electrónica" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "Configuración de la historia clínica electrónica" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:134 msgid "Testing conectivity with the server..." msgstr "Probando la conexión con el servidor..." #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:144 msgid "Error connecting to url" msgstr "Error al conectar con la url " #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 msgid "hostname/port not set" msgstr "nombre de host/puerto no establecido" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "Test de conexión fallido" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "Conexión realizada con éxito" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "Select certificate" msgstr "Seleccionar certificado" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "Ficheros PEM (*.pem;*.key)|*.pem;*.key|Todos los ficheros (*.*)|*.*" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "Es obligatorio configurar la clave pública y la clave privada" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:255 msgid "Change ..." msgstr "Cambiar ..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 msgid "Import ..." msgstr "Importar ..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:279 msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "" "Para usar SSL/TLS se debe configurar un certificado y una clave privada " "válidos" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:472 msgid "There are this errors: " msgstr "Se han producido los siguientes errores:" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" "\n" "- El identificador de PACS ya se está usando" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" "\n" " - El puerto debe de ser un entero corto positivo (16 bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" "\n" " - El puerto es demasiado grande" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" "\n" " - La longitud máxima del AET son 16 caracteres" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" "\n" " - El tamaño de la PDU debe ser mayor o igual que cero (default = 16384)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" "\n" " - El valor máximo de la PDU es " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" "\n" " - El valor mínimo de la PDU es " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" "\n" "- Para usar SSL/TLS se debe configurar un certificado y una clave privada " "válidos" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:525 msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" "\n" "- Si necesita usar WADO, debe rellenar la URL wado." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" "\n" "- La URL WADO no contiene el esquema (por ejemplo http://)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" "\n" "- La URL WADO no contiene el host" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "Debe de rellenar todos los campos para continuar" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:558 msgid "Testing the connection to the node ..." msgstr "Probando la conexión con el nodo DICOM..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:561 msgid "DICOM Error" msgstr "Error DICOM" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "Imposible realizar la conexión: No se pudo iniciar el soporte de red." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "El servicio no respondió correctamente a C-ECHO" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:607 msgid "The service did not respond correctly to the DICOM standard" msgstr "El servicio no respondió correctamente al estandar DICOM" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:616 msgid "Invalid port number" msgstr "Número de puerto incorrecto" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:622 msgid "WADO Error" msgstr "Error WADO" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:703 msgid "Use by default" msgstr "Usar por defecto" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:795 msgid "DICOM nodes" msgstr "Nodos DICOM" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:800 msgid "DICOM nodes settings" msgstr "Configuración de los nodos DICOM" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "Se han producido los siguientes errores: " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" "\n" " - El puerto local debe de ser un entero corto positivo (16 bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" "\n" " - El puerto local es demasiado grande" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" "\n" " - La longitud máxima del AET local son 16 caracteres" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "Confirme la eliminación del nodo " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1101 msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Debe configurar el AET local, que se utilizará al comunicarse con los nodos " "DICOM. El puerto indicado debe de estar abierto en el firewall, ya que es " "imprescindible para las transferencias." #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ..\../main/gui/export/pasosexportacionbase.cpp:20 msgid "Profile" msgstr "Perfil" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "Valor por defecto" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 msgid "Set property active" msgstr "Activar la propiedad" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "Inactivo" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Set property inactive" msgstr "Desactivar la propiedad" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 msgid "Set default value" msgstr "Valor por defecto" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:352 msgid "Set by user" msgstr "Establecido por el usuario" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 msgid "Profile name can't be repeated" msgstr "No se puede repetir el nombre del perfil" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "Debe de rellenar el nombre para continuar" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "Perfiles" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:498 msgid "Profiles Settings" msgstr "Configuración de perfiles" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "Debe reiniciar Ginkgo CADx para que los cambios tengan efecto" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 msgid "Confirm the removal of the profile " msgstr "Confirma la eliminación del perfil " #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:53 msgid "New User" msgstr "Nuevo usuario" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "El nombre de usuario debe contener al menos 4 caracteres" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 msgid "User name repeated" msgstr "El nombre de usuario está repetido" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "La contraseña y su confirmación no pueden ser diferentes." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 msgid "Password has to contain at least 6 characters" msgstr "La contraseña debe contener al menos 6 caracteres" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:141 msgid "No login" msgstr "Sin login" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 msgid "User/Password" msgstr "Usuario/Contraseña" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:224 msgid "Password" msgstr "Contraseña" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:191 msgid "Password is setted" msgstr "La contraseña está establecida" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "Cambiar contraseña" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 msgid "Password is not setted" msgstr "La contraseña no está establecida" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:195 msgid "Set password" msgstr "Establecer contraseña" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:224 msgid "Security Setting" msgstr "Configuración de Seguridad" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "Debe crear al menos un usuario" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "Debes establecer la contraseña principal" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 msgid "User inserted successfully" msgstr "Usuario insertado con éxito" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "" "Ocurrió un error al insertar el usuario. Para más información abra el LOG." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 msgid "Password changed successfully" msgstr "La contraseña se ha cambiado con éxito." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "" "Ocurrió un error al cambiar la contraseña. Para más información abra el LOG." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 msgid "User deleted successfully" msgstr "Usuario eliminado con éxito" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "" "Ocurrió un error al eliminar el usuario. Para más información abra el LOG." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "Debe de existir al menos un paciente en Ginkgo CADx" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ..\../main/gui/login/dialogologin.cpp:27 msgid "User" msgstr "Usuario" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ..\../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "Seleccione un directorio" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "Los títulos de las ubicaciones no se pueden repetir" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 msgid "Maximum length of title is 8 characters" msgstr "La longitud máxima del título son 8 caracteres" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "El directorio seleccionado no puede abrirse" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "Debe de rellenar el título y la ubicación para continuar" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 msgid "Title" msgstr "Título" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 msgid "Path" msgstr "Directorio" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "Monitorizar" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 msgid "Clean before" msgstr "Limpiar antes" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 msgid "Clean after" msgstr "Limpiar después" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "Ubicaciones" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 msgid "Location Settings" msgstr "Configuración de ubicaciones" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "Anonimización" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:96 msgid "Anonymization settings" msgstr "Opciones de anonimización" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1370 msgid "Settings" msgstr "Configuración" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 msgid "Export config..." msgstr "Exportar configuración..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 msgid "Import config..." msgstr "Importar configuración..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "Aplicar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 msgid "Physician's name" msgstr "Nombre del médico" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 msgid "Physician's Id" msgstr "Identificador del médico" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 msgid "Service" msgstr "Servicio" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 msgid "Service's name" msgstr "Nombre del servicio" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 msgid "Service's Id" msgstr "Identificador del servicio" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 msgid "Local institution" msgstr "Centro local" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 msgid "Institution's name" msgstr "Nombre del centro" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 msgid "Institution's Id" msgstr "Identificador del centro" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 msgid "Dicomized files" msgstr "Ficheros dicomizados" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 msgid "Charset" msgstr "Charset" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "ISO_IR 192" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "ISO_IR 6" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "ISO_IR 100" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "ISO_IR 101" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "ISO_IR 109" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "ISO_IR 110" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "ISO_IR 126" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "ISO_IR 127" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "ISO_IR 138" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "ISO_IR 144" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 msgid "ISO_IR 148" msgstr "ISO_IR 148" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "Idioma" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "Misc" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 msgid "Automatically check for updates" msgstr "Buscar actualizaciones automáticamente" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ..\../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" "Ayudanos envando datos anónimos de uso (no se enviarán datos de paciente)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 msgid "Proxy settings" msgstr "Configuración de proxy" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 msgid "Enable http proxy" msgstr "Habilitar proxy http" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:218 msgid "Proxy Settings" msgstr "Configuración de proxy" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 msgid "Server settings" msgstr "Configuración de servidor" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 msgid "Host" msgstr "Host" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 msgid "Port" msgstr "Puerto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "Autenticación" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "El servidor proxy requiere autenticación" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 msgid "Username" msgstr "Nombre de usuario" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "Excepciones" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 msgid "No proxy for addresses containing" msgstr "No utilizar proxy para las direcciones que contengan" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "Separar las direcciones con comas." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 msgid "DICOM Dir" msgstr "DICOM Dir" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "" "El directorio DICOM Dir es el directorio local donde está almacenado el " "historial." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" "Atención, para modificar el directorio, es necesario cerrar todas las series " "abiertas." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 msgid "Auto-cleaning" msgstr "Auto-borrado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "Borrar estudios con fecha de adquisición más antigua de:" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" "Borrar estudios antiguos cuando el espacio libre del disco sea menor de:" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 msgid "MB" msgstr "MB" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "Borrar estudios cuando el DICOM Dir sea más grande de:" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" "Esta característica sólo afecta a los estudios COPIADOS en el DICOMDIR que " "no estén en uso." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ..\../main/tools/toolwindowlevel.cpp:201 msgid "Reset to default" msgstr "Restaurar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "PACS Local" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Se debe configurar el AET local, que se utilizará al comunicarse con el " "servidor PACS. El puerto indicado debe de estar abierto en el firewall, ya " "que es imprescindible para las transferencias." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 msgid "Local AET" msgstr "AET Local" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" "Para implantación masiva en entornos homogéneos, pueden especificarse los " "siguientes comodines en la AET local:\n" "\t%IP Dirección IP\n" "\t%IP Octeto n-avo (1~4)\n" "\t%HOSTNAME Nombre de Host" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "Configuración avanzada..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 msgid "DICOM Nodes" msgstr "Nodos DICOM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 msgid "New ..." msgstr "Nuevo..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 msgid "Edit ..." msgstr "Editar..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ..\../main/gui/history3/historypanel3.cpp:677 #: ..\../main/gui/history3/historypanel3.cpp:686 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ..\../main/gui/import/selectimagesimportation.cpp:291 #: ..\../main/managers/widgetsmanager.cpp:1100 msgid "Delete" msgstr "Eliminar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 msgid "Set Default" msgstr "Por defecto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:388 msgid "DICOM Node" msgstr "Nodo DICOM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "AET" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 msgid "PDU (KB)" msgstr "PDU (KB)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 msgid "Retrieve method" msgstr "Método de obtención" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Move" msgstr "Move" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Get" msgstr "Get" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "WADO" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 msgid "WADO URL" msgstr "URL WADO" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 msgid "Retrieve mode" msgstr "Modo de obtención" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ..\../main/gui/import/pasosimportacionbase.cpp:319 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1395 msgid "Series" msgstr "Serie" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 msgid "Studies" msgstr "Estudios" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "Reutilizar conexión" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "Reutilizar conexiónes cuando se necesite hacer más de una consulta" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 msgid "Worklists" msgstr "Listas de trabajo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 msgid "Select how do you want to handle MPPS items" msgstr "Seleccione cómo desea manipular los items MPPS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 msgid "DICOM MPPS" msgstr "DICOM MPPS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 msgid "HL7 messages" msgstr "Mensajes HL7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 msgid "HL7" msgstr "HL7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 msgid "Abort message" msgstr "Abortar mensaje" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 msgid "Completed message" msgstr "Completar mensaje" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 msgid "In progress message" msgstr "Mensaje en progreso" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 msgid "Default values" msgstr "Valores por defecto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 msgid "Worklist" msgstr "Lista de trabajo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 msgid "SSL/TLS" msgstr "SSL/TLS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 msgid "Verify server credentials" msgstr "Verificar credenciales del servidor" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 msgid "Use SSL/TLS" msgstr "Usar SSL/TLS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "Certificado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 msgid "Certificate to use in this connection" msgstr "Certificado para usar en esta conexión" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "Configuración avanzada..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 msgid "Default charset" msgstr "Juego de caracteres por defecto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 msgid "Advanced" msgstr "Avanzado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "Probar conexión" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "Verificar credenciales del cliente" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 msgid "Local AET certificate" msgstr "Certificado del AET local" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 msgid "Certificate used by Ginkgo CADx" msgstr "Certificado usado por Ginkgo CADx" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "" "El ID de la aplicación Ginkgo CADx utilizado para rellenar el campo MSH.3" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 msgid "Receiver organization Id" msgstr "Identificador de la organización receptora" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "Identificador único de la organización receptora del mensaje." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 msgid "Petitioner System Id" msgstr "Identificador del sistema peticionario" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "Identificador único del sistema que realiza la petición (SIID)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 msgid "Filler Application Id" msgstr "Identificador de aplicación de la \"Filler Application\"" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "Identificador único de la \"Filler Application\" (SIID/Ginkgo CADx)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "Identificador único de la \"Filler Application\" (SIID/Ginkgo)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 msgid "Ginkgo CADx Application Id" msgstr "Identificador de aplicación Ginkgo CADx" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" "Identificador único de aplicación del Sistema de Comunicación y " "Almacenamiento de Imágenes (SIID/PACS)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 msgid "Integration engine" msgstr "Motor de integración" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 msgid "Hostname / Port" msgstr "Hostname / Puerto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "Nombre de host (IP o DNS) del motor de integración" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "/" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 msgid "Protocol" msgstr "Protocolo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "Protocolo de la capa de transporte del motor de integración" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "MLLP" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ..\../main/gui/export/pasosexportacionbase.cpp:28 msgid "Format" msgstr "Formato" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 msgid "Message's format" msgstr "Formato del mensaje" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "ER7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 msgid "Test engine" msgstr "Probar servidor" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 msgid "Test Integration Engine connectivity" msgstr "Probar conectividad con el motor de integración" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 msgid "Ginkgo Extension Title" msgstr "Título de la Extensión de Ginkgo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 msgid "Edit public key" msgstr "Editar clave pública" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "" "Usar certificado por defecto (certificado configurado en configuración del " "AET local)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 msgid "Public key" msgstr "Clave pública" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 msgid "Public key in PEM format" msgstr "Clave pública en formato PEM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 msgid "Load ..." msgstr "Cargar..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 msgid "Private key" msgstr "Clave privada" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 msgid "Private key in PEM format" msgstr "Clave privada en formato PEM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 msgid "Profile name" msgstr "Nombre del perfil" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 msgid "Set active" msgstr "Activar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "" "Las ubicaciones son rutas predefinidas conocidas (ej: unidades remotas " "compartidas)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 msgid "Configure location" msgstr "Configurar ubicación" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 msgid "Location" msgstr "Ubicación" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "Limpiar directorio después de la importación" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "Limpiar directorio antes de la importación" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 msgid "Security type" msgstr "Tipo de seguridad" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "Usuarios" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 msgid "Change Password ..." msgstr "Cambiar contraseña..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 msgid "Set main password" msgstr "Establecer contraseña principal" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 msgid "Set Password" msgstr "Establecer contraseña" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:736 msgid "Edit User" msgstr "Editar usuario" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 msgid "User Name" msgstr "Nombre de usuario" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 msgid "Confirm Password" msgstr "Confirmar contraseña" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 msgid "Properties" msgstr "Propiedades" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:814 msgid "Edit corner annotations" msgstr "Editar anotaciones de las esquinas" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue:Format} where GGGG is the tag's group in hexadecimal and EEEE " "is the tag's element. DefaultValue and Format are optional values, Format " "admit two special formats (date and time)." msgstr "" "Para configurar las anotaciones de las esquinas puedes usar tags DICOM con " "sintaxis ${GGGG|EEEE:ValorPorDefecto:Formato} donde GGGG es el grupo del tag " "en código hexadecimal y EEEE es el tag del elemento. ValorPorDefecto y " "Formato son valores opcionales, Formato admite dos formatos especiales (date " "y time)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" "Puedes usar tags especiales listados en el texto de ayuda sobre el botón de " "información." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 msgid "Window/level" msgstr "Window/Level" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "Añadir" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ..\../main/gui/history3/historytoolmenu.cpp:149 #: ..\../widgets/gui/selecciontextobase.h:58 msgid "Edit" msgstr "Editar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 msgid "Default Window/Level" msgstr "Window/Level por defecto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 msgid "Corner annotations" msgstr "Anotaciones de las esquinas" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 msgid "Setup corner annotations" msgstr "Configurar anotaciones de las esquinas" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 msgid "Setup..." msgstr "Configurar..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 msgid "Other settings" msgstr "Otras configuraciones" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 msgid "Interpolate pixel data" msgstr "Interpolar pixel data" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:885 msgid "Hanging protocol" msgstr "Protocolo de visualización" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 msgid "Opening mode" msgstr "Modo de apertura" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 msgid "Study opening criteria" msgstr "Criterio de apertura del estudio" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "+" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 msgid "Workspace" msgstr "Espacio de trabajo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 msgid "Enable/Disable" msgstr "Habilitar/Deshabilitar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 msgid "Top left corner annotations" msgstr "Anotación de la esquina superior izquierda" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 msgid "Setup window" msgstr "Configurar ventana" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "Pulse el botón de configuración y situe la ventana donde desee" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 msgid "Set default" msgstr "Por defecto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 msgid "Open in main window" msgstr "Abrir en ventana principal" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 msgid "Setup position..." msgstr "Configurar posición..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 msgid "Setup undocked window position" msgstr "Configurar posición de la ventan" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 msgid "Layout" msgstr "Layout" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 msgid "Current layout" msgstr "Layout actual" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "Filas" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 msgid "Columns" msgstr "Columnas" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 msgid "Series criteria" msgstr "Criterio de la serie" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 msgid "Select opening mode" msgstr "Seleccionar modo de apertura" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 msgid "Tag" msgstr "Tag" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" "Configurar la posición y el tamaño de la ventana donde se abrirá el estudio" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 msgid "Save" msgstr "Guardar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 msgid "Enable background queries" msgstr "Habilitar consultas en segundo plano" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 msgid "Smart retrieve" msgstr "Adquisición automática" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 msgid "Smart retrieve settings" msgstr "Configuración de consultas automáticas" #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "Detectada inactividad" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.h:64 msgid "Export DICOM" msgstr "Exportar DICOM" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "Médico especialista" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 msgid "Ginkgo CADx private tags" msgstr "Tags privados de Ginkgo CADx" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ..\../main/gui/history3/historypanel3.cpp:340 #: ..\../main/gui/history3/historytoolmenu.cpp:158 msgid "Export" msgstr "Exportar" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ..\../main/gui/export/parametrosprincipales.cpp:157 msgid "Select the directory where the files will be stored" msgstr "Seleccione el directorio donde se guardarán los ficheros" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" "El directorio seleccionado no existe,\n" "¿Desea Crearlo?" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "Existe otro DICOM dir en el directorio seleccionado" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" "Ginkgo CADx ha dectado un DICOMDIR de historial creado con una versión más " "antigua\n" "de Ginkgo CADx (BBDD v.%d). ¿Qué desea hacer?" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" "El DICOMDIR ha sido creado con una versión más nueva de Ginkgo CADx. (BBDD v" "%d).\n" "Esta versión no puede abrirla." #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" "Error al cambiar el nomver del antiguo dicomidir a _old, asegurese de " "que tiene permisos para hacerlo" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 msgid "Select the DICOM Dir folder" msgstr "Seleccione un directorio DICOMDIR válido" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 msgid "DICOM Dir migration" msgstr "Migración de DICOMDIR" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 msgid "Migrate existing (recommended)" msgstr "Migrar existente (recomendado)" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" "Migrar DICOMDIR existente. Los ficheros existentes serán añadidos al nuevo " "DICOMDIR. No cierre GinkgoCADx hasta que finalice la operación." #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "" "Borrar DICOMDIR antiguo después de la migración (se renombrará como *_old)" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 msgid "Continue..." msgstr "Continuar..." #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 msgid "Select other" msgstr "Seleccionar otro" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" "Seleccionar otra ruta. Si la ruta no contiene un DICOM Dir de Ginkgo CADx, " "se crerará uno nuevo. En cualquier otro caso, se usará el DICOMDIR actual." #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 msgid "Browse..." msgstr "Navegar..." #: ..\../main/gui/export/parametrosprincipales.cpp:106 msgid "DICOM Export" msgstr "Exportación DICOM" #: ..\../main/gui/export/parametrosprincipales.cpp:110 msgid "Select the format and the images you want to export" msgstr "Seleccione el formato y las imágenes a exportar" #: ..\../main/gui/export/parametrosprincipales.cpp:143 msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "DICOM (*.dcm;)|*.dcm|Todos los ficheros (*.*)|*.*" #: ..\../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|Todos los ficheros " "(*.*)|*.*" #: ..\../main/gui/export/parametrosprincipales.cpp:150 msgid "Select file" msgstr "Seleccione un fichero" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "DICOM (native format)" msgstr "DICOM (formato nativo)" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "Image (jpg, bmp, png)" msgstr "Imagen (jpg, bmp, png)" #: ..\../main/gui/export/pasosexportacionbase.cpp:38 msgid "Export all files of opened tab" msgstr "Exportar todos los ficheros de la pestaña abierta" #: ..\../main/gui/export/pasosexportacionbase.cpp:55 msgid "JPEG" msgstr "JPEG" #: ..\../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "Calidad" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:40 msgid "Image Export Wizard" msgstr "Asistente de exportación de imágenes" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ..\../main/gui/license/aboutdialogbase.cpp:67 #: ..\../main/gui/license/aboutdialogbase.cpp:152 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:54 msgid "&Accept" msgstr "&Aceptar" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "&Siguiente >" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:32 msgid "Open link" msgstr "Abrir enlace" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:402 msgid "File link:" msgstr "Enlace al fichero" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ..\../main/gui/import/pasosimportacionbase.cpp:270 msgid "Study" msgstr "Estudio" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:216 msgid "User name" msgstr "Nombre de usuario" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:397 msgid "Ginkgo Cloud link" msgstr "Enlace Ginkgo Cloud" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" "Puede copiar y pegar el enlace para usarlo en e-mails y páginas web, el " "único requisito para descargar los estudios es tener instalado Ginkgo CADx." #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "Enviar enlace por e-mail" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:437 msgid "Copy to clipboard" msgstr "Copiar al portapapeles" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "New Ginkgo Cloud study" msgstr "Nuevo estudio en Ginkgo Cloud" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "To download the study, paste this url " msgstr "Para descargar el estudio, pegue esta url" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" "en la herramienta del historial de Ginkgo CADx \"Abrir enlace Ginkgo Cloud" "\", o péguelo en la barra de direcciones de su navegador." #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 msgid "Creator" msgstr "Creador" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 msgid "Last Modificator" msgstr "Última modificación" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 msgid "Show link..." msgstr "Mostrar enlace..." #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "?" #: ..\../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 msgid "Invalid link" msgstr "Enlace inválido" #: ..\../main/gui/history3/historypanel3.cpp:117 #: ..\../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "Abrir serie" #: ..\../main/gui/history3/historypanel3.cpp:119 #: ..\../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "Abrir serie con.." #: ..\../main/gui/history3/historypanel3.cpp:226 #: ..\../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "Edad" #: ..\../main/gui/history3/historypanel3.cpp:228 msgid "Date acquired" msgstr "Fecha adquisición" #: ..\../main/gui/history3/historypanel3.cpp:230 msgid "Date added" msgstr "Fecha recepción" #: ..\../main/gui/history3/historypanel3.cpp:308 #: ..\../main/gui/history3/historytoolmenu.cpp:82 #: ..\../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "Adquirir" #: ..\../main/gui/history3/historypanel3.cpp:316 #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize" msgstr "Dicomizar" #: ..\../main/gui/history3/historypanel3.cpp:363 msgid "All patients" msgstr "Todos los pacientes" #: ..\../main/gui/history3/historypanel3.cpp:481 msgid "Results" msgstr "Resultados" #: ..\../main/gui/history3/historypanel3.cpp:481 #, c-format msgid " (%d images)" msgstr " (%d imágenes)" #: ..\../main/gui/history3/historypanel3.cpp:634 msgid "Open study with .." msgstr "Abrir estudio con.." #: ..\../main/gui/history3/historypanel3.cpp:663 #: ..\../main/gui/history3/historypanel3base.cpp:482 msgid "Synchronize" msgstr "Sincronizar" #: ..\../main/gui/history3/historypanel3.cpp:677 msgid "&Delete from history" msgstr "&Eliminar del historial" #: ..\../main/gui/history3/historypanel3.cpp:686 msgid "&Clear history" msgstr "&Limpiar historial" #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "" "Se ha alcanzado el número máximo de pestañas abiertas, cierre alguna pestaña " "e intentelo de nuevo" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid "Unable to open modality " msgstr "No es posible abrir la modalidad " #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr " con transfer syntax " #: ..\../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" "Error al cargar el estudio, compruebe la configuración del protocolo de " "visualización" #: ..\../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "" "Error al limpiar el historial, se tienen que cerrar los estudios abiertos" #: ..\../main/gui/history3/historypanel3.cpp:1086 msgid "all files" msgstr "todos los ficheros" #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 msgid "Select at least one series" msgstr "Debe seleccionar al menos una serie" #: ..\../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "No se pueden eliminar series abiertas" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "those series" msgstr "estas series" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "this series" msgstr "esta serie" #: ..\../main/gui/history3/historypanel3base.cpp:57 msgid "Advanced search" msgstr "Búsqueda avanzada" #: ..\../main/gui/history3/historypanel3base.cpp:73 msgid "Acquisition date" msgstr "Fecha de la adquisición" #: ..\../main/gui/history3/historypanel3base.cpp:302 #: ..\../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "Confirmar eliminación" #: ..\../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "¿Está seguro de que desea eliminar " #: ..\../main/gui/history3/historypanel3base.cpp:336 #: ..\../main/gui/history3/historytoolmenu.cpp:102 #: ..\../main/gui/history3/historytoolmenu.cpp:200 #: ..\../main/gui/history3/historytoolmenu.cpp:229 msgid "Remove" msgstr "Eliminar" #: ..\../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "Elija la vista que desea utilizar para abrir el/los archivo/s" #: ..\../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "Utilizar siempre esta vista para abrir este tipo de archivos" #: ..\../main/gui/history3/historypanel3base.cpp:454 #: ..\../main/gui/history3/historypanel3base.h:187 msgid "Synchronize files" msgstr "Sincronizar ficheros" #: ..\../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" "Hay ficheros que se tienen que descargar a la base de datos local antes de " "ejecutar esta acción, \n" "¿Desea sincronizar los ficheros ahora?" #: ..\../main/gui/history3/historytablemodel.cpp:406 #: ..\../main/gui/history3/historytablemodel.cpp:418 #: ..\../main/gui/history3/historytablemodel.cpp:473 #: ..\../main/gui/history3/historytablemodel.cpp:485 #: ..\../main/gui/open/dicomdirtablemodel.cpp:105 msgid "00/00/0000 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/history3/historytoolmenu.cpp:138 msgid "Close history" msgstr "Cerrar historial" #: ..\../main/gui/history3/historytoolmenu.cpp:139 #: ..\../main/gui/startup/startupform.cpp:53 msgid "History" msgstr "Historial" #: ..\../main/gui/history3/historytoolmenu.cpp:201 #: ..\../main/gui/history3/historytoolmenu.cpp:230 msgid "Clear history" msgstr "&Limpiar historial" #: ..\../main/gui/history3/historytoolmenu.cpp:232 msgid "Select all" msgstr "Seleccionar Todos" #: ..\../main/gui/history3/historytoolmenu.cpp:233 msgid "Deselect all" msgstr "Deseleccionar todos" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 msgid "Destination" msgstr "Destino" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 msgid "Status" msgstr "Estado" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 msgid "Error message" msgstr "Mensaje de error" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 msgid "Show Message" msgstr "Mostrar Mensaje" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 msgid "Edit Message" msgstr "Editar Mensaje" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 msgid "Delete message" msgstr "Eliminar mensaje" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 msgid "Error editing message" msgstr "Error al editar el mensaje" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 msgid "Error purguing messages" msgstr "Error al purgar los mensajes" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Stop" msgstr "Parar" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Sent" msgstr "Enviado" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "Pendiente" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/progress/statusbarprogreso.cpp:281 msgid "Warning" msgstr "Aviso" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 msgid "Error getting message" msgstr "Error al obtener mensajes" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 msgid "Running" msgstr "Procesando" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "El proceso de envío está arrancado y listo para enviar mensajes" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "Parado" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 msgid "Usually due to an error in sending a message" msgstr "Suele ser debido a un error en el envío de un mensaje" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Start" msgstr "Iniciar" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "¿Confirma la eliminación de estos mensajes?" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 msgid "Error deleting messages" msgstr "Error al eliminar mensajes" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 msgid "Remove sent messages" msgstr "Eliminar mensajes enviados" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 msgid "Exit" msgstr "Salir" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 msgid "Messages" msgstr "Mensajes" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 msgid "Refresh" msgstr "Actualizar" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1394 msgid "View" msgstr "Ver" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 msgid "Send task status:" msgstr "Estado del proceso de envío:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "Habilitado" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 msgid "Message" msgstr "Mensaje" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "Fecha:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 msgid "Destination:" msgstr "Destino:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 msgid "Status:" msgstr "Estado:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 msgid "Message content:" msgstr "Contenido del mensaje:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:142 msgid "OK" msgstr "OK" #: ..\../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "Datos generales de los ficheros DICOM" #: ..\../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "Se pueden configurar los datos DICOM de los ficheros a generar" #: ..\../main/gui/import/generaldata.cpp:210 msgid "" "\n" "* The patient ID is required." msgstr "" "\n" "* El ID de paciente es obligatorio." #: ..\../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" "\n" "* La concatenación del nombre del paciente y los apellidos no puede ser " "mayor que 61." #: ..\../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" "\n" "* El formato de la altura en centímetros no es correcto." #: ..\../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" "\n" "* La fecha de naciemiento del paciente es posterior a la fecha del estudio" #: ..\../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" "\n" "* El formato del peso no es correcto. El rango válido está entre 0 y 400 Kg." #: ..\../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "Los siguientes errores han ocurrido al validar los campos" #: ..\../main/gui/import/generaldata.cpp:231 msgid "Error validating fields" msgstr " " #: ..\../main/gui/import/pasoperfilimportacion.cpp:148 msgid "Selecting Import Profile" msgstr "Selección de perfil de Importación" #: ..\../main/gui/import/pasoperfilimportacion.cpp:152 msgid "You must select the profile you want to use import" msgstr "Debe seleccionar el perfil de importación a utilizar" #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 msgid "You must select the import profile" msgstr "Debe seleccionar el perfil de importación" #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "Error inesperado, seleccione de nuevo el módulo" #: ..\../main/gui/import/pasosimportacionbase.cpp:21 msgid "Selected images" msgstr "Imágenes seleccionadas" #: ..\../main/gui/import/pasosimportacionbase.cpp:56 msgid "Preview" msgstr "Previsualización" #: ..\../main/gui/import/pasosimportacionbase.cpp:62 msgid "Remove all" msgstr "Eliminar todas" #: ..\../main/gui/import/pasosimportacionbase.cpp:113 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:65 msgid "Demographic data" msgstr "Datos demográficos" #: ..\../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "Identificador *" #: ..\../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "(DNI o Número de historia clínica)" #: ..\../main/gui/import/pasosimportacionbase.cpp:159 #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "Birth date" msgstr "Fecha de nacimiento" #: ..\../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "Apellidos" #: ..\../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "Sexo" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "Masculino" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "Femenino" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "Otros" #: ..\../main/gui/import/pasosimportacionbase.cpp:217 msgid "Study Details" msgstr "Detalles del estudio" #: ..\../main/gui/import/pasosimportacionbase.cpp:234 #: ..\../wx/gnkinforme/gnkinformebase.cpp:122 msgid "Weight" msgstr "Peso" #: ..\../main/gui/import/pasosimportacionbase.cpp:245 msgid "Kg" msgstr "Kg" #: ..\../main/gui/import/pasosimportacionbase.cpp:252 #: ..\../wx/gnkinforme/gnkinformebase.cpp:119 msgid "Height" msgstr "Altura" #: ..\../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "cm" #: ..\../main/gui/import/pasosimportacionbase.cpp:291 #: ..\../main/gui/import/pasosimportacionbase.cpp:333 msgid "Time" msgstr "Hora" #: ..\../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "El path de la ubicación no existe" #: ..\../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" "Imágenes (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|Imágenes JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|Imágenes " "BMP (*.bmp)|*.bmp|Imágenes PNG (*.png)|*.png|Imágenes TIFF (*.tif;*.tiff)|*." "tif;*.tiff|Documentos PDF(*.pdf)|*.pdf|Todos los Ficheros (*.*)|*.*" #: ..\../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" "Imágenes (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|Imágenes " "JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|Imágenes BMP (*.bmp)|*.bmp;" "*BMP|Imágenes PNG (*.png)|*.png;*PNG|Imágenes TIFF (*.tif;*.tiff)|*.tif;*." "tiff;*TIF;*TIFF|Documentos PDF (*.pdf;*.PDF)|*.PDF;*.pdf|Todos los Ficheros " "(*.*)|*.*" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files..." msgstr "Seleccionar archivos..." #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "Seleccionar imágenes desde el sistema de ficheros" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste" msgstr "Pegar" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste from clipboard" msgstr "Pegar desde el portapapeles" #: ..\../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "Atrás" #: ..\../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "¿Confirma que desea eliminar este fichero del sistema de ficheros?" #: ..\../main/gui/import/selectimagesimportation.cpp:330 msgid "Delete selected items" msgstr "Eliminar elementos seleccionados" #: ..\../main/gui/import/selectimagesimportation.cpp:342 msgid "You must select an image" msgstr "Debe seleccionar al menos una imagen" #: ..\../main/gui/import/selectimagesimportation.cpp:346 msgid "Generating preview..." msgstr "Generando thumbnail..." #: ..\../main/gui/import/selectimagesimportation.cpp:500 msgid "Select images" msgstr "Seleccionar imágenes" #: ..\../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "Generando thumbnails..." #: ..\../main/gui/import/selectimagesimportation.cpp:715 msgid "Image selection" msgstr "Selección de imágenes" #: ..\../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "Debe de seleccionar las imágenes que desea importar" #: ..\../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "Debe seleccionar al menos una imagen" #: ..\../main/gui/import/selectimagesimportation.cpp:760 msgid "The file" msgstr "El fichero " #: ..\../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr " no existe" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:52 msgid "Image Import Wizard" msgstr "Asistente de importación de imágenes" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "El módulo solicitado no soporta importación" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "No hay registrado ningún módulo que soporte importación" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "No hay registrado ningún módulo que soporte importación" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "El módulo solicitado no está registrado" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "El módulo solicitado no está registrado" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:167 msgid "free of" msgstr "libres de" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:181 msgid "in dicomization dir." msgstr "en el directorio de dicomización" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "¿Confirma que desea cancelar el proceso de importación?" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, c-format msgid "Step %d of %d: " msgstr "Paso %d de %d: " #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "&Terminar" #: ..\../main/gui/license/aboutdialog.cpp:25 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About" msgstr "Acerca de" #: ..\../main/gui/license/aboutdialogbase.cpp:22 msgid "Ginkgo CADx" msgstr "Ginkgo CADx" #: ..\../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "Créditos" #: ..\../main/gui/license/aboutdialogbase.cpp:55 msgid "Licenses" msgstr "Licencias" #: ..\../main/gui/license/aboutdialogbase.cpp:58 msgid "UPDATE_INFO" msgstr "UPDATE_INFO" #: ..\../main/gui/license/aboutdialogbase.cpp:108 #: ..\../main/gui/license/aboutdialogbase.h:88 msgid "Open Source Licenses" msgstr "Licencias Open Source" #: ..\../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "Cairo" #: ..\../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "DCMTK" #: ..\../main/gui/license/aboutdialogbase.cpp:119 msgid "FamFamFam Icons" msgstr "FamFamFam Icons" #: ..\../main/gui/license/aboutdialogbase.cpp:120 msgid "Fugue Icons" msgstr "Fugue Icons" #: ..\../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "ITK" #: ..\../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "LibJpeg" #: ..\../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "LibPng" #: ..\../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "OpenSSL" #: ..\../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "VTK" #: ..\../main/gui/license/aboutdialogbase.cpp:126 msgid "WxWidgets" msgstr "WxWidgets" #: ..\../main/gui/license/aboutdialogbase.cpp:127 msgid "Zlib" msgstr "Zlib" #: ..\../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "SQL Lite" #: ..\../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "CharLS" #: ..\../main/gui/license/aboutdialogbase.cpp:130 msgid "Dark Glass Icons" msgstr "Dark Glass Icons" #: ..\../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "Libcurl" #: ..\../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "JsonCpp" #: ..\../main/gui/license/aboutdialogbase.cpp:133 msgid "AIRS" msgstr "AIRS" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:23 #: ..\../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "Acuerdo de licencia" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" "Si acepta todos los términos del acuerdo, seleccione \"Acepto la licencia\" " "para continuar. Debe aceptar el acuerdo para instalar Ginkgo CADx." #: ..\../main/gui/license/acceptlicensedialogbase.cpp:53 msgid "Check for updates automatically" msgstr "Buscar actualizaciones automáticamente" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:66 msgid "I Accept the license" msgstr "Acepto la licencia" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "NO acepto la licencia" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Save logs" msgstr "Guardar logs" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "Archivo log (*.log)|*.log| Archivo de texto (*.txt)|*.txt" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 msgid "File couldn't be stored " msgstr "No se ha podido escribir en el fichero" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 msgid "Could not write to file" msgstr "No se pudo escribir en el fichero " #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 msgid "Save log..." msgstr "Guardar log..." #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 msgid "Clear log" msgstr "Limpiar log" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 msgid "Log" msgstr "Log" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "Limpiar" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "LogText" #: ..\../main/gui/login/dialogologin.cpp:50 msgid "The username or password is incorrect" msgstr "El nombre de usuario o la contraseña son incorrectos" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:250 msgid "Tasks" msgstr "Tareas" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1139 msgid "Included in the history ..." msgstr "Incluyendo en el historial..." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "No hay URL para comprobar actualizaciones en la configuración actual." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "Check update error" msgstr "Comprobar error en actualización" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "" "Error sintáctico/semántico al interpretar la URL de integración (vea el " "registro de log para más detalles):\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 msgid "Malformed XML" msgstr "XML mal formado" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1192 msgid "Error in interpreting the parameters of the command line. (" msgstr "Error al interpretar los parámetros de la línea de comandos. (" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "" "Error sintáctico/semántico al interpretar el XML de integración (vea el " "registro de log para más detalles):\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 msgid "Error parsing integration XML:\n" msgstr "Error al interpretar el XML de integración:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 msgid "PACS error:\n" msgstr "Error en el PACS:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 msgid "Error executing WorkFlow\n" msgstr "Error al ejecutar WorkFlow\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" "Error al ejecutar WorkFlow\n" "Error interno" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 msgid "Close current view" msgstr "Cerrar vista actual" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all" msgstr "&Cerrar todas" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all views" msgstr "Cerrar todas las vistas" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "&Salir" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "Exit application" msgstr "Salir de la aplicación" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "Pantalla completa" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Show full screen" msgstr "Ver en Pantalla Completa" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1302 msgid "Tab grouping" msgstr "Agrupar pestañas" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1329 msgid "Ginkgo CADx manual ..." msgstr "Manual de Ginkgo CADx ..." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1330 msgid "Open test card" msgstr "Abrir carta de ajuste" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "Buscar actualizaciones" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for newest versions" msgstr "Buscar versiones nuevas" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1332 msgid "Need support ..." msgstr "Necesita ayuda ..." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About " msgstr "Acerca de " #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 msgid "HL7 monitor" msgstr "Monitorizador HL7" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 msgid "HL7 message control" msgstr "Control de mensajes HL7" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 msgid "Log monitor" msgstr "Monitorizador de log" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 msgid "Log monitored" msgstr "Monitorizador de log" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1390 msgid "&File" msgstr "&Archivo" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "&Edición" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "&Ayuda" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "Error al cargar el historial. Ginkgo CADx se cerrará." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "Mosaico" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "¿Desea guardar los cambios en el estudio: " #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1664 msgid "Unsaved data" msgstr "Datos no guardados" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "Han ocurrido errores al guardar la serie. ¿Desea continuar?" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "Error saving" msgstr "Error al guardar" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "Full Screen" msgstr "Pantalla completa" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "View Full Screen" msgstr "Ver en pantalla completa" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1708 msgid "Tab Regroup" msgstr "Reagrupar pestañas" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "&Cerrar" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "&Close all" msgstr "&Cerrar todas" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "Close all windows" msgstr "Cerrar todas las ventanas" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1728 msgid "Tabbed organization" msgstr "Organización en pestañas" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "No existe una nueva versión de Ginkgo CADx en este momento." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "Ginkgo CADx updated" msgstr "Ginkgo CADx actualizado" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1782 msgid "New version available (" msgstr "Nueva versión disponible (" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "Error interno durante el proceso de autenticación" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:29 msgid "New Update" msgstr "Nueva actualización" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:34 msgid "New version available" msgstr "Nueva versión disponible" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "No avisarme de nuevo sobre esta actualización" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:43 msgid "X" msgstr "X" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:45 msgid "Close this notification" msgstr "Cerrar esta notificación" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:104 msgid "The following commands will be aborted if you close the application" msgstr "Los siguientes comandos se abortarán si cierra la aplicación" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:131 msgid "Close Ginkgo CADx" msgstr "Cerrar Ginkgo CADx" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "Cierra al aplicación y aborta los comandos pendientes" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "No cierra la aplicación y mantiene procesando los comandos" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:138 msgid "User login" msgstr "Login de usuario" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:202 msgid "System authentication" msgstr "Autenticación del sistema" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:260 msgid "Login" msgstr "Login" #: ..\../main/gui/open/abrir.cpp:80 ..\../main/gui/open/abrir.cpp:82 msgid "Open..." msgstr "Abrir..." #: ..\../main/gui/open/opendialogs.cpp:58 msgid "There was an error reading DICOMDIR file" msgstr "Ha ocurrido un error leer el fichero DICOMDIR" #: ..\../main/gui/open/opendialogs.cpp:62 msgid "Select a valid DICOMDIR file" msgstr "Seleccione un fichero DICOMDIR válido" #: ..\../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "Seleccione los ficheros que desea adquirir desde el DICOMDIR" #: ..\../main/gui/open/opendialogs.cpp:180 #: ..\../main/gui/open/opendialogsbase.cpp:170 #: ..\../main/gui/open/opendialogsbase.h:112 msgid "Copy or link" msgstr "Copiar o enlazar" #: ..\../main/gui/open/opendialogsbase.cpp:22 #: ..\../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "Adquirir desde DICOM Dir" #: ..\../main/gui/open/opendialogsbase.cpp:94 #: ..\../main/gui/open/opendialogsbase.h:85 msgid "Select drive" msgstr "Seleccionar unidad" #: ..\../main/gui/open/opendialogsbase.cpp:175 msgid "Do you want to copy or link files?" msgstr "¿Desea copiar o enlazar los ficheros?" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ..\../main/gui/selectpacsserver/selectpacsserver.cpp:30 msgid "There aren't any PACS configured" msgstr "No existe ningún servidor PACS configurado" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:69 msgid "0000/00/00 00:00:00" msgstr "0000/00/00 00:00:00" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.h:57 msgid "Upload study" msgstr "Subir estudio" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 msgid "Select PACS server" msgstr "Seleccionar servidor PACS" #: ..\../main/gui/paneltags/paneltags.cpp:119 msgid "Metadata" msgstr "Metadatos" #: ..\../main/gui/paneltags/paneltags.cpp:120 msgid "Identification information" msgstr "Identificación de la prueba" #: ..\../main/gui/paneltags/paneltags.cpp:121 msgid "Patient information" msgstr "Información del paciente" #: ..\../main/gui/paneltags/paneltags.cpp:122 msgid "Acquisition information" msgstr "Información sobre la adquisición" #: ..\../main/gui/paneltags/paneltags.cpp:123 msgid "Relationship information" msgstr "Información de referencias" #: ..\../main/gui/paneltags/paneltags.cpp:124 msgid "Image presentation information" msgstr "Información de presentación" #: ..\../main/gui/paneltags/paneltags.cpp:125 ..\../widgets/wtextbox.cpp:541 msgid "Text" msgstr "Texto" #: ..\../main/gui/paneltags/paneltags.cpp:126 msgid "Other" msgstr "Otros" #: ..\../main/gui/paneltags/paneltags.cpp:137 #: ..\../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "Datos" #: ..\../main/gui/previewpanel/previewpanel.cpp:47 msgid "Hide" msgstr "Ocultar" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "javi" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:187 #: ..\../main/gui/previewpanel/previewpanelbase.cpp:207 msgid "Previews" msgstr "Previsualizaciones" #: ..\../main/gui/progress/progresobase.cpp:23 msgid "There is no running tasks" msgstr "No hay tareas en ejecución" #: ..\../main/gui/progress/statusbarprogreso.cpp:165 msgid "0 running tasks." msgstr "0 tareas en ejecución." #: ..\../main/gui/progress/statusbarprogreso.cpp:192 #, c-format msgid "There are %d pending tasks" msgstr "Existen %d tareas pendientes" #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.h:55 msgid "Select PACS" msgstr "Seleccionar PACS" #: ..\../main/gui/startup/startupformbase.cpp:29 msgid "http://ginkgo-cadx.com" msgstr "http://ginkgo-cadx.com" #: ..\../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "No apto para uso diagnóstico. Por favor, considere actualizar a " #: ..\../main/gui/startup/startupformbase.cpp:47 msgid "Ginkgo CADx Pro" msgstr "Ginkgo CADx Pro" #: ..\../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" "Recuede que comprando Ginkgo CADx Pro, está contribuyendo a su desarrollo" #: ..\../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "Powered by" #: ..\../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "MetaEmotion Healthcare" #: ..\../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "Página de inicio" #: ..\../main/managers/widgetsmanager.cpp:1100 msgid "Delete Widget" msgstr "Eliminar widget" #: ..\../main/managers/widgetsmanager.cpp:1111 msgid "Properties ..." msgstr "Propiedades..." #: ..\../main/managers/widgetsmanager.cpp:1111 msgid "Widget Properties" msgstr "Propiedades del widget" #: ..\../main/tools/addfiletohistorytool.cpp:114 msgid "Open file" msgstr "Abrir fichero" #: ..\../main/tools/addfiletohistorytool.cpp:115 #: ..\../main/tools/openfoldertool.cpp:27 msgid "Open folder" msgstr "Abrir directorio" #: ..\../main/tools/addfiletohistorytool.cpp:116 #: ..\../main/tools/openremovabletool.cpp:28 msgid "Open removable unit" msgstr "Abrir unidad extraíble" #: ..\../main/tools/addfiletohistorytool.cpp:117 #: ..\../main/tools/openginkgocloudlinktool.cpp:27 msgid "Open Ginkgo Cloud link" msgstr "Abrir enlace Ginkgo Cloud" #: ..\../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "Ángulo normal (3 puntos)" #: ..\../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "Ángulo de cobb (2 rectas)" #: ..\../main/tools/colormaptool.cpp:110 msgid "Invert color map" msgstr "Invertir mapa de color" #: ..\../main/tools/cornerannotationstool.cpp:44 msgid "Hide corner annotations" msgstr "Ocultar anotaciones de las esquinas" #: ..\../main/tools/cornerannotationstool.cpp:46 msgid "Show corner annotations" msgstr "Mostrar anotaciones de las esquinas" #: ..\../main/tools/detachwindowtool.cpp:42 msgid "Attach View" msgstr "Encajar vista" #: ..\../main/tools/detachwindowtool.cpp:44 msgid "Detach view" msgstr "Desencajar vista" #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize files" msgstr "Dicomizar ficheros" #: ..\../main/tools/exportdicomdirtool.cpp:32 msgid "Export to DICOM Dir" msgstr "Exportar a DICOM Dir" #: ..\../main/tools/markertool.cpp:171 msgid "Point" msgstr "Punto" #: ..\../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "Flecha" #: ..\../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "Elipse" #: ..\../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "Trapezoide" #: ..\../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "Poligono" #: ..\../main/tools/markertool.cpp:176 msgid "Free form" msgstr "Forma libre" #: ..\../main/tools/metricgridtool.cpp:57 msgid "Grid" msgstr "Rejilla" #: ..\../main/tools/metricgridtool.cpp:67 msgid "Grid Scale" msgstr "Escala rejilla" #: ..\../main/tools/metricgridtool.cpp:74 msgid "Scale X" msgstr "Escala X" #: ..\../main/tools/metricgridtool.cpp:78 msgid "X axis scale" msgstr "Escala del eje X" #: ..\../main/tools/metricgridtool.cpp:87 msgid "Scale Y" msgstr "Escala Y" #: ..\../main/tools/metricgridtool.cpp:91 msgid "Y axis scale" msgstr "Escala del eje Y" #: ..\../main/tools/metricgridtool.cpp:206 msgid "Show grid" msgstr "Mostrar rejilla" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "Configurar rejilla..." #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "Configurar rejilla" #: ..\../main/tools/metricgridtool.cpp:250 msgid "Hide Grid" msgstr "Ocultar rejilla" #: ..\../main/tools/metricgridtool.cpp:252 msgid "Show Grid" msgstr "Mostrar rejilla" #: ..\../main/tools/openfiletool.cpp:28 msgid "Open File" msgstr "Abrir fichero" #: ..\../main/tools/pacsuploadtool.cpp:54 msgid "Send to PACS..." msgstr "Enviar al PACS..." #: ..\../main/tools/pixelsbluringtool.cpp:59 msgid "Unset pixels blurring" msgstr "Desactivar suavizado de pixels" #: ..\../main/tools/pixelsbluringtool.cpp:61 msgid "Set pixels blurring" msgstr "Activar suavizado de pixels" #: ..\../main/tools/queryretrievehistorytool.cpp:25 msgid "PACS Q/R" msgstr "PACS Q/R" #: ..\../main/tools/queryretrievetool.cpp:94 #: ..\../main/tools/searchginkgocloudhistorytool.cpp:28 msgid "Search Ginkgo Cloud" msgstr "Buscar en Ginkgo Cloud" #: ..\../main/tools/rotateandfliptool.cpp:151 msgid "Undo rotate and flip" msgstr "Deshacer rotaciones y volteos" #: ..\../main/tools/rotateandfliptool.cpp:153 #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "Rotar 90" #: ..\../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "antihorario" #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "horario" #: ..\../main/tools/rotateandfliptool.cpp:156 msgid "Flip horizontal" msgstr "Volteo horizontal" #: ..\../main/tools/rotateandfliptool.cpp:157 msgid "Flip vertical" msgstr "Volteo vertical" #: ..\../main/tools/sendpacstool.cpp:34 msgid "Send to PACS" msgstr "Enviar al PACS" #: ..\../main/tools/sendpacstool.cpp:70 msgid "Sending to PACS..." msgstr "Enviando al PACS..." #: ..\../main/tools/showtagstool.cpp:42 msgid "Hide DICOM inspector" msgstr "Ocultar el inspector de DICOM" #: ..\../main/tools/showtagstool.cpp:44 msgid "Show DICOM inspector" msgstr "Mostrar el inspector de DICOM" #: ..\../main/tools/simpleprinttool.cpp:119 msgid "Image printing" msgstr "Impresión de imágenes" #: ..\../main/tools/simpleprinttool.cpp:224 msgid "Page setup" msgstr "Configurar página" #: ..\../main/tools/simpleprinttool.cpp:225 msgid "Print preview" msgstr "Previsualización" #: ..\../main/tools/simpleprinttool.cpp:272 msgid "Print image" msgstr "Imprimir imagen" #: ..\../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "Auto calcular" #: ..\../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "Resetear tamaño a la resolución del dispositivo" #: ..\../main/tools/undotool.cpp:110 msgid "Redo" msgstr "Rehacer" #: ..\../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "Deshabilitar bucle" #: ..\../main/tools/videotool.cpp:153 msgid "Enable loop" msgstr "Habilitar bucle" #: ..\../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "%.1f fps" #: ..\../main/tools/windowlayouttool.cpp:267 msgid "Add column" msgstr "Añadir columna" #: ..\../main/tools/windowlayouttool.cpp:268 msgid "Add row" msgstr "Añadir fila" #: ..\../main/tools/windowlayouttool.cpp:270 msgid "Remove column" msgstr "Eliminar columna" #: ..\../main/tools/windowlayouttool.cpp:271 msgid "Remove row" msgstr "Eliminar fila" #: ..\../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "Layout 1x1" #: ..\../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "Layout 1x2" #: ..\../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "Layout 2x1" #: ..\../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "Layout 2x2" #: ..\../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "Layout 3x3" #: ..\../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "Layout 4x4" #: ..\../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "" "La herramienta de módulo aún estaba registrada cuando se destruyó el " "registro de herramientas ToolsRegistry." #: ..\../main/toolsystem/toolsregistry.cpp:82 msgid "The tool is already registered" msgstr "La herramienta ya está registrada" #: ..\../main/toolsystem/toolsregistry.cpp:187 msgid "The module " msgstr "El módulo " #: ..\../resources/ginkgoresourcesmanager.cpp:49 msgid "Unable to load PNG bitmap resource" msgstr "No se pudo cargar el recurso de bitmap PNG" #: ..\../resources/ginkgoresourcesmanager.cpp:56 msgid "Unable to load PNG image resource" msgstr "No se pudo cargar el recurso de imagen PNG" #: ..\../resources/ginkgoresourcesmanager.cpp:63 msgid "Unable to load GIF animation resource" msgstr "No se pudo cargar el recurso de animación GIF" #: ..\../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "El valor de calibración ha de ser un número decimal" #: ..\../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "El valor de calibración es demasiado bajo" #: ..\../widgets/gui/calibracion.cpp:219 msgid "Enter the calibration value" msgstr "Introduzca el valor de calibración" #: ..\../widgets/gui/calibracion.cpp:225 msgid "The calibration value is too low" msgstr "El valor de calibración es demasiado bajo" #: ..\../widgets/gui/calibracion.cpp:229 msgid "The calibration value is too high" msgstr "El valor de calibración es demasiado alto" #: ..\../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "Realizando calibración..." #: ..\../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "Medida real" #: ..\../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "Distancia:" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "Micras" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "Milímetros" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "Centímetros" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "Metros" #: ..\../widgets/gui/selecciontextobase.cpp:26 msgid "Note" msgstr "Nota" #: ..\../widgets/wangulo.cpp:1103 ..\../widgets/wangulo.cpp:1105 msgid "Type" msgstr "Tipo" #: ..\../widgets/wangulo.cpp:1103 msgid "Normal" msgstr "Normal" #: ..\../widgets/wangulo.cpp:1105 msgid "Cobb" msgstr "Cobb" #: ..\../widgets/welipse.cpp:779 ..\../widgets/wfreeform.cpp:510 #: ..\../widgets/wpolygon.cpp:572 msgid "Center (I)" msgstr "Centro (I)" #: ..\../widgets/welipse.cpp:785 ..\../widgets/wfreeform.cpp:516 #: ..\../widgets/wpolygon.cpp:578 msgid "Center (M)" msgstr "Centro (M)" #: ..\../widgets/welipse.cpp:820 ..\../widgets/welipse.cpp:824 msgid "Greater Radius" msgstr "Radio mayor" #: ..\../widgets/welipse.cpp:821 ..\../widgets/welipse.cpp:825 msgid "Lower Radius" msgstr "Radio menor" #: ..\../widgets/wfreeform.cpp:522 ..\../widgets/wpolygon.cpp:584 msgid "Number of Vertex" msgstr "Número de vértices" #: ..\../widgets/wpunto.cpp:382 msgid "Position (I)" msgstr "Posición (I)" #: ..\../widgets/wpunto.cpp:387 msgid "Position (M)" msgstr "Posición (M)" #: ..\../widgets/wrule.cpp:558 msgid "Image Calibration" msgstr "Calibración" #: ..\../widgets/wrule.cpp:665 msgid "Length" msgstr "Longitud" #: ..\../widgets/wrule.cpp:670 msgid "Points (I)" msgstr "Puntos (I)" #: ..\../widgets/wrule.cpp:677 msgid "Points (M)" msgstr "Puntos (M)" #: ..\../widgets/wtextbox.cpp:461 msgid "Default text" msgstr "Texto por defecto" #: ..\../wx/gnkinforme/gnkinformebase.cpp:41 msgid "Commit date" msgstr "Fecha de consolidación" #: ..\../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "DESCONOCIDO" #: ..\../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "%d/%m/%Y" #: ..\../wx/gnkinforme/gnkinformebase.cpp:214 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "Consolidado" #: ..\../wx/gnkinforme/gnkinformebase.cpp:219 msgid "Modified" msgstr "Modificado" #: ..\../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "No consolidado" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "NAME SURNAME SECOND_SURNAME" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "644654645" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:130 msgid "Commit inform" msgstr "Consolidar informe" #: ..\../wx/propiedades/wxpropiedades.cpp:30 msgid "Properties of " msgstr "Propiedades de " #: ..\../wx/propiedades/wxpropiedadesbase.cpp:31 msgid "Widget's Name" msgstr "Nombre del widget" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "< &Anterior" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "&Cancelar" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3701 msgid "Regular expression invalid: '" msgstr "Expresión regular inválida: '" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "" "REGEXP invocada con un número incorrecto de argumentos: %d en lugar de 2." #: ..\../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" "Error en la lógica: El estudio no está asociado con ningún paciente " "existente en el modelo" #: ..\../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" "Error en la lógica: La serie no está asociado con ningún studio existente en " "el modelo" #: ..\../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" "Error en la lógica: La imagen no está asociada con ninguna serie existente " "en el modelo" #: ..\../commands/dialogopathssobreescribirbase.h:56 msgid "Overwrite Paths" msgstr "Sobreescribir rutas" #: ..\../ginkgopro/ginkgo_pro_defines.h:21 msgid "Professional DICOM CADx environment" msgstr "Entorno profesional DICOM " #: ..\../main/controllers/dcmtk/dicomservers.h:39 msgid "Server not found" msgstr "Servidor no encontrado" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:99 msgid "DICOM Query/Retrieve" msgstr "DICOM Consulta/Descarga" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:123 msgid "Not found" msgstr "No encontrado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:418 msgid "Advanced Settings" msgstr "Configuración avanzada" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:570 msgid "Edit profile" msgstr "Editar perfil" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:665 msgid "Add/Edit Location" msgstr "Añadir/Editar ubicación" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:784 msgid "Add window/level" msgstr "Añadir window/level" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 msgid "Add tag" msgstr "Añadir tag" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 msgid "Setup window position" msgstr "Configurar la posición de la ventana" #: ..\../main/gui/countdownmessage/countdownmessagebase.h:61 msgid "Closing" msgstr "Cerrando" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 msgid "DICOM Dir configuration" msgstr "Configuración de DICOMDIR" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:70 msgid "Open Ginkgo Cloud" msgstr "Abrir Ginkgo Cloud" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:123 msgid "Ginkgo Cloud search" msgstr "Búsqueda en Ginkgo Cloud" #: ..\../main/gui/history3/confirmdeletedialog.h:24 msgid " from History?" msgstr " del Historial?" #: ..\../main/gui/history3/historypanel3base.h:100 msgid "Medical history" msgstr "Historial médico" #: ..\../main/gui/history3/historypanel3base.h:161 msgid "Open With ..." msgstr "Abrir con..." #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Select a View" msgstr "Seleccione una vista" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 msgid "Message detail" msgstr "Detalles del mensaje" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 msgid "Log node" msgstr "Log node" #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:87 msgid "Closing Ginkgo CADx" msgstr "Cerrando Ginkgo CADx" #: ..\../main/gui/paneltags/paneltagsbase.h:57 msgid "DICOM Inspector" msgstr "Inspector DICOM" #: ..\../main/license.h:31 msgid "Open Source DICOM CADx environment" msgstr "Entorno CADx DICOM Open Source" #: ..\../widgets/gui/calibracionbase.h:65 msgid "Calibration" msgstr "Calibración" #: ..\../wx/propiedades/wxpropiedadesbase.h:62 msgid "Properties of ..." msgstr "Propiedades de..." #: ..\../wx/thumbnailctrl/thumbnailwidget.h:44 msgid "Image Browser Dialog" msgstr "Image Browser Dialog" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.h:60 msgid "Test title" msgstr "Título de prueba" #~ msgid "Tile Horizontally" #~ msgstr "Mosaico horizontal" #~ msgid "Tile Vertically" #~ msgstr "Mosaico vertical" #~ msgid "Grid (two columns)" #~ msgstr "Rejilla (dos columnas)" #~ msgid "Grid (three columns)" #~ msgstr "Rejilla (tres columnas)" #~ msgid "Grid organization" #~ msgstr "Organización en rejilla" #~ msgid "" #~ "Unexpected Error exporting, the view is not allowed to export to the " #~ "format selected" #~ msgstr "" #~ "Error inexperado al exportar, la vista no permite exportar al formato " #~ "seleccionado" #~ msgid "Failed to store the file, check permissions on the directory" #~ msgstr "" #~ "Error al almacenar el fichero, revise los permisos sobre el directorio" #~ msgid "The key files will not be exported" #~ msgstr "Los ficheros clave no se exportarán" #~ msgid "Current" #~ msgstr "Actual" #~ msgid "All" #~ msgstr "Todas" #~ msgid "JPG" #~ msgstr "JPG" #~ msgid "BMP" #~ msgstr "BMP" #~ msgid "PNG" #~ msgstr "PNG" #~ msgid "Content" #~ msgstr "Contenido" #~ msgid "Include annotation Widgets" #~ msgstr "Incluir widgets de anotación" #~ msgid "Evaluation maps" #~ msgstr "Mapas de valoración" #~ msgid "Color" #~ msgstr "Color:" #~ msgid "Vertex (I)" #~ msgstr "Vértices (I)" #~ msgid "Vertex (M)" #~ msgstr "Vértices (M)" #~ msgid "Center" #~ msgstr "Centro" #~ msgid "0" #~ msgstr "0" #~ msgid "Select PACS servera" #~ msgstr "Seleccionar servidor PACS" #~ msgid "You have to specify at least uid study or accession number" #~ msgstr "" #~ "Se debe especificar al menos un study instance uid o accession number" #~ msgid "You have to specify at least uid series" #~ msgstr "Se debe especificar al menos un uid de series" #~ msgid "You have to specify uid series" #~ msgstr "Debe especificarse el uid de la serie" #~ msgid "Patient's Id" #~ msgstr "Id del paciente" #~ msgid "Patient's name" #~ msgstr "Nombre de paciente" #~ msgid "%D{%Y/%m/%d %H:%M:%S.%q} [%t] %-5p %c %x - %m%n" #~ msgstr "%D{%d/%m/%Y %H:%M:%S.%q} [%t] %-5p %c %x - %m%n" #~ msgid "Checking program updates..." #~ msgstr "Comprobando actualizaciones del programa..." #~ msgid "Subsystem integration error: uninitialized result data container." #~ msgstr "" #~ "Error en subsistema de integración: Contenedor de resultado no " #~ "inicializado." #~ msgid "Untitled" #~ msgstr "Sin título" #~ msgid "UID" #~ msgstr "UID" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">" #~ msgstr ">" #~ msgid "<" #~ msgstr "<" #~ msgid "<<" #~ msgstr "<<" #~ msgid "You are not allowed to download this kind of modalities (" #~ msgstr "No se permite la descarga de estas modalidades (" #~ msgid "Searching..." #~ msgstr "Buscando..." #~ msgid "unknown column" #~ msgstr "columna desconocida" #~ msgid "URL" #~ msgstr "URL" #~ msgid "BucketId" #~ msgstr "BucketId" #~ msgid "Pending tasks" #~ msgstr "Tareas pendientes" #~ msgid "Restart pending tasks" #~ msgstr "Reiniciar tareas pendientes" #~ msgid "Remove pending tasks" #~ msgstr "Eliminar tareas pendientes" #~ msgid "Advanced tasks management..." #~ msgstr "Gestión avanzada de tareas..." #~ msgid "You can't remove series with pending tasks, cancel tasks and retry" #~ msgstr "" #~ "No se pueden eliminar series contareas pendientes, cancele las tareas " #~ "pendientes y vuelvalo a intentar" #~ msgid "Are you sure you want to delete task?" #~ msgstr "¿Está seguro de que desea eliminar la tarea?" #~ msgid "Delete tasks" #~ msgstr "Eliminar tareas" #~ msgid "Sort by" #~ msgstr "Ordenar por" #~ msgid "Pateint id" #~ msgstr "Id del paciente" #~ msgid "Horizontal mosaic" #~ msgstr "Mosaico horizontal" #~ msgid "Vertical mosaic" #~ msgstr "Mosaico vertical" #~ msgid "Include Annotations" #~ msgstr "Incluir anotaciones" #~ msgid "Evaluation Maps" #~ msgstr "Mapas de valoración" #~ msgid "Zoom" #~ msgstr "Zoom" #~ msgid "Options" #~ msgstr "Opciones" #~ msgid "Images per sheet" #~ msgstr "Imágenes por hoja" #~ msgid "Print ..." #~ msgstr "Imprimir..." #~ msgid "Completed" #~ msgstr "Completado" #~ msgid "Delete task" #~ msgstr "Eliminar tarea" #~ msgid "Restart task" #~ msgstr "Reiniciar tarea" #~ msgid "Delete all" #~ msgstr "Eliminar todos" #~ msgid "Are you sure you want to delete tasks?" #~ msgstr "¿Está seguro de que desea eliminar la tarea?" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Point Size" #~ msgstr "Tamaño del punto" #~ msgid "Family" #~ msgstr "Familia" #~ msgid "Face Name" #~ msgstr "Face Name" #~ msgid "Underline" #~ msgstr "Subrayado" #~ msgid "Make a selection:" #~ msgstr "Seleccione:" #~ msgid "Categorized Mode" #~ msgstr "Modo por categorías" #~ msgid "Alphabetic Mode" #~ msgstr "Modo alfabético" #~ msgid "False" #~ msgstr "Falso" #~ msgid "True" #~ msgstr "Verdadero" #~ msgid "Unspecified" #~ msgstr "Sin especificar" #~ msgid "" #~ "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", " #~ "NOT \"%s\"." #~ msgstr "" #~ "El tipo de la operación \"%s\" falló: Propiedad con nombre \"%s\" es del " #~ "tipo \"%s\", NO \"%s\"." #~ msgid "Error in resource: %s" #~ msgstr "Error en el recurso: %s" #~ msgid "Value must be %lld or higher" #~ msgstr "El valor tiene que ser mayor o igual a %lld" #~ msgid "Value must be %llu or higher" #~ msgstr "El valor tiene que ser mayor o igual a %llu" #~ msgid "Value must be %llu or less" #~ msgstr "El valor tiene que ser menor o igual a %llu" #~ msgid "Value must be %f or higher" #~ msgstr "El valor tiene que ser mayor o igual a %f" #~ msgid "Value must be %f or less" #~ msgstr "El valor tiene que ser menor o igual a %f" #~ msgid "Not %s" #~ msgstr "No %s" #~ msgid "Choose a directory:" #~ msgstr "Seleccione un directorio:" #~ msgid "Choose a file" #~ msgstr "Seleccione un fichero" #~ msgid "All files (*.*)|*.*" #~ msgstr "Todos los Archivos (*.*)|*.*" #~ msgid "Update" #~ msgstr "Actualizar" #~ msgid "Up" #~ msgstr "Arriba" #~ msgid "Down" #~ msgstr "Abajo" #~ msgid "Page %i" #~ msgstr "Página %i" #~ msgid "Configure proxy" #~ msgstr "Configurar proxy" #~ msgid "Use system settings" #~ msgstr "Usar configuración del sistema" #~ msgid "Manual configuration of proxy:" #~ msgstr "Configuración manual del proxy:" #~ msgid "Host:" #~ msgstr "Host:" #~ msgid "Port:" #~ msgstr "Puerto:" #~ msgid "Password:" #~ msgstr "Contraseña:" #~ msgid "Authenticate" #~ msgstr "Autenticar" #~ msgid "Show / Hide DICOM tags panel" #~ msgstr "Mostrar/Ocultar el panel de tags DICOM" #~ msgid "Select tag..." #~ msgstr "Seleccionar tag..." #~ msgid "Show metadatada" #~ msgstr "Mostrar metadatos" #~ msgid "usage data (no patient data will be sent)" #~ msgstr "estadísticas de uso" #~ msgid "Updates" #~ msgstr "Actualizaciones" #~ msgid "Visualization" #~ msgstr "Visualización" #~ msgid "http://ginkgo-cadx.com/en/services/" #~ msgstr "http://ginkgo-cadx.com/es/servicios/" #~ msgid "Reset window level and zoom" #~ msgstr "Resetear window level y zoom" #~ msgid "Abdomen" #~ msgstr "Abdomen" #~ msgid "Lung" #~ msgstr "Pulmón" #~ msgid "Vertebra" #~ msgstr "Vertebra" #~ msgid "Cranium" #~ msgstr "Cráneo" #~ msgid "Mediastinum" #~ msgstr "Mediastino" #~ msgid "Spine" #~ msgstr "Columna" #~ msgid "Double click to edit" #~ msgstr "Doble click para editar" #~ msgid "Dicomize images..." #~ msgstr "Dicomizar imágenes..." #~ msgid "Dicomize images" #~ msgstr "Dicomizar imágenes" #~ msgid "Reset 1:1" #~ msgstr "Reset 1:1" #~ msgid "Open again" #~ msgstr "Abrir de nuevo" #~ msgid "Copy image to clipboard" #~ msgstr "Copiar al portapapeles" #~ msgid "Click on this url" #~ msgstr "Haga clic en esta url" #~ msgid "Sychronize files" #~ msgstr "Ficheros dicomizados" #~ msgid "Sychornize files" #~ msgstr "Ficheros dicomizados" #~ msgid "Download finished" #~ msgstr "Descarga completada" #~ msgid "Download finished with errors" #~ msgstr "Descarga finalizada con errores" #~ msgid "Successful connection test." #~ msgstr "Prueba de conexión satisfactoria." #~ msgid "The service did not respond properly:" #~ msgstr "El servicio no respondió correctamente:" #~ msgid "Error starting network support" #~ msgstr "Error al iniciar el soporte de red" #~ msgid "Association Release" #~ msgstr "Liberando la asociación" #~ msgid "Association Aborted" #~ msgstr "Asociación Abortada" #~ msgid "No results obtained." #~ msgstr "No se obtuvieron resultados." #~ msgid "" #~ "No results where obtained in PACS retrieve.\n" #~ "Maybe study doesn't exist or you have a wrong PACS server configuration." #~ msgstr "" #~ "No se obtuvieron resultados en la adquisición desde PACS.\n" #~ "Tal vez no exista el estudio o la configuración del servidor PACS sea " #~ "incorrecta." #~ msgid "Wado url" #~ msgstr "URL Wado" #~ msgid "PACS Consulting ..." #~ msgstr "Consultando PACS..." #~ msgid "Serie download complete" #~ msgstr "Descarga de serie completada" #~ msgid "Study download complete" #~ msgstr "Descarga de estudio completada" #~ msgid "" #~ "No results obtained. Maybe you have a wrong PACS server configuration" #~ msgstr "" #~ "No se obtuvieron resultados. Tal vez tenga una configuración incorrecta " #~ "del servidor PACS" #~ msgid "\"petition-id\" attribute expected at \"gnkworkflow\" scope" #~ msgstr "" #~ "Atributo \"petition-id\" no especificado al procesar tag \"gnkworkflow\"" #~ msgid "" #~ "Studies are already in the download queue.\n" #~ "Do you want to repeat download?" #~ msgstr "" #~ "Los estudios ya están en la cola de descargas.\n" #~ "¿Desea repetir la descarga?" #~ msgid "" #~ "Series were already in the download queue.\n" #~ "Do you want to force download?" #~ msgstr "" #~ "La serie ya está en la cola de descargas.\n" #~ "¿Desea forzar la descarga?" #~ msgid "Downloads" #~ msgstr "Descargas" #~ msgid "Study description" #~ msgstr "Descripción del estudio" #~ msgid "Clean" #~ msgstr "Limpiar" #~ msgid "Clean finished downloads" #~ msgstr "Limpiar descargas finalizadas" #~ msgid "Starting..." #~ msgstr "Arrancando..." #~ msgid "" #~ "Diagnostic files can't be opened, you have to open the diagnosed series" #~ msgstr "" #~ "Los ficheros de diagnóstico no se pueden abrir, se tiene que abrir la " #~ "serie diagnosticada" #~ msgid "Error: " #~ msgstr "Error: " #~ msgid "Error: No images were downloaded" #~ msgstr "Error: No se obtuvieron imágenes" #~ msgid "Finished" #~ msgstr "Finalizado" #~ msgid "Play" #~ msgstr "Continuar" #~ msgid "Retry" #~ msgstr "Reintentar" #~ msgid "The selected directory does must be empty" #~ msgstr "El directorio seleccionado debe estar vacío" #~ msgid "Migrate..." #~ msgstr "Migrar..." #~ msgid "Choose the import profile" #~ msgstr "Seleccione el perfil de importación" #~ msgid "Import profile" #~ msgstr "Perfil de importación" #~ msgid "What do you want to do?" #~ msgstr "¿Que desea hacer?" #~ msgid "This version is unabled to open it." #~ msgstr "Esta versión es incapaz de abrirlo." #~ msgid "Brain oasc asdf" #~ msgstr "Brain oasc asdf" #~ msgid "An error ocurred loading Ginkgo News check your internet connection" #~ msgstr "" #~ "Ha ocurrido un error mientras se cargaban las Noticias de Ginkgo CADx, " #~ "comprueba tu conexión a internet" #~ msgid "Welcome" #~ msgstr "Bienvenido" #~ msgid "Twitter" #~ msgstr "Twitter" #~ msgid "rows" #~ msgstr "filas" #~ msgid "%d/%m/%Y %H:%M:%S" #~ msgstr "%d/%m/%Y %H:%M:%S" #~ msgid "Reprocess Series" #~ msgstr "Reprocesar serie" #~ msgid "" #~ "If you reprocess this series it will be uploaded to PACS server and \n" #~ "integration message will be resent to integration engine.\n" #~ "Do you want to continue?" #~ msgstr "" #~ "Si reprocesas esta serie se subirá al servidor PACS y\n" #~ "se enviará de nuevo un mensaje al motor de integración.\n" #~ "¿Confirma que desea continuar?" #~ msgid "" #~ "Unable to reprocess this series. This series hasn't been dicomized with " #~ "Ginkgo CADx." #~ msgstr "" #~ "No es posible reprocesar esta serie. Esta serie no se ha dicomizado con " #~ "Ginkgo CADx." #~ msgid "Loading modules ..." #~ msgstr "Cargando módulos..." #~ msgid "TODO Ginkgo CADx online manual ..." #~ msgstr "Manual en línea de Ginkgo CADx ..." #~ msgid "Export global..." #~ msgstr "Exportar global..." #~ msgid "Import global..." #~ msgstr "Importar global..." #~ msgid "Skipping invalid extension without required keys:" #~ msgstr "Ignorando extensión con descriptor inválido:" #~ msgid "Closing windows..." #~ msgstr "Cerrando ventanas..." #~ msgid "You have to set a valid port" #~ msgstr "Debe especificarse un puerto válido" #~ msgid "XML-RPC Server" #~ msgstr "Servicio XML-RPC" #~ msgid "Enable XML-RPC server" #~ msgstr "Habilitar servicio XML-RPC" #~ msgid "" #~ "Enable/Disable XML RPC Server for listening remote operations from EHR " #~ "System" #~ msgstr "" #~ "Habilitar/Deshabilitar el Servicio XML RPC de escuchar de solicitudes " #~ "remotas desde la HCE" #~ msgid "TCP listening port for XML-RPC server" #~ msgstr "Puerto TCP de escucha del servicio XML-RPC" #~ msgid "XmlRpc++" #~ msgstr "XmlRpc++" #~ msgid "Redo " #~ msgstr "Rehacer" #~ msgid "Ginkgo CADx Pro " #~ msgstr "Ginkgo CADx Pro" #~ msgid "TODO FILL IN ABOUT DIALOG CREDITS" #~ msgstr "TODO FILL IN ABOUT DIALOG CREDITS" #~ msgid "We want to thanks " #~ msgstr "¡Queremos agradecer a " #~ msgid " for all their support in Ginkgo CADx creation!" #~ msgstr " por todo el apoyo en la creación de Ginkgo CADx!" #~ msgid "Translators" #~ msgstr "Traductores" #~ msgid "Japanese: Noriya Yokohama" #~ msgstr "Japonés: Noriya Yokohama" #~ msgid "German: Sebastian Hilbert" #~ msgstr "Alemán: Sebastian Hilbert" #~ msgid "Turkish: zeugma (sunder67)" #~ msgstr "Turco: zeugma (sunder67)" #~ msgid "Spanish: JFLP (jluna80)" #~ msgstr "Español: JFLP (jluna80)" #~ msgid "Brazillian Portuguese: Marcel Ribeiro Dantas" #~ msgstr "Portugués (Brasil): Marcel Ribeiro Dantas" #~ msgid "Greetings" #~ msgstr "Agradecimientos" #~ msgid "" #~ "Debian-Med team specially Andreas Tille and Karlsten Hilbert: packaging, " #~ "testing and bug reporting" #~ msgstr "" #~ "Debian-Med team especialmente a Andreas Tille and Karlsten Hilbert: " #~ "empaquetado, pruebas y reporte de errores" #~ msgid "Ross Boswell: PACS compliance testing" #~ msgstr "Ross Boswell: pruebas de compatibilidad con PACS" #~ msgid "Andre Alvim Tolentino: Printing issues" #~ msgstr "Andre Alvim Tolentino: módulo de impresión" #~ msgid "Ginkgo CADx license agreement version " #~ msgstr "Acuerdo de licencia de uso de Ginkgo CADx version " #~ msgid "" #~ "\n" #~ "Ginkgo CADx license agreement \n" #~ "-----------------------------------\n" #~ "\n" #~ "This version is a trial version for , and therefore its use is " #~ "restricted for this purpose.\n" #~ "\n" #~ "\n" #~ "\n" #~ "S.L MetaEmotion Healthcare\n" #~ "http://healthcare.metaemotion.com/en/welcome\n" #~ "contacto@metaemotion.com" #~ msgstr "" #~ "\n" #~ "Acuerdo de licencia de uso de Ginkgo CADx \n" #~ "-----------------------------------\n" #~ "\n" #~ "\n" #~ "La presente versión constituye una versión de evaluación para , " #~ "y por tanto su uso está restringido a este fin.\n" #~ "\n" #~ "\n" #~ "\n" #~ "MetaEmotion S.L\n" #~ "www.metaemotion.com\n" #~ "contacto@metaemotion.com" #~ msgid "About &Ginkgo CADx ..." #~ msgstr "Acerca de Ginkgo CADx..." #~ msgid "About Ginkgo CADx ..." #~ msgstr "Acerca de Ginkgo CADx..." #~ msgid "Ginkgo CADx settings" #~ msgstr "Configuración de Ginkgo CADx" #~ msgid "Ginkgo CADx v" #~ msgstr "Ginkgo CADx v" #~ msgid "Show history window" #~ msgstr "Mostrar ventana de historial" #~ msgid "Ginkgo CADx Settings" #~ msgstr "Configuración de Ginkgo CADx" #~ msgid "About Ginkgo CADx..." #~ msgstr "Acerca de Ginkgo CADx..." #~ msgid "Export diagnostic" #~ msgstr "Exportar diagnóstico" #~ msgid "Start page ..." #~ msgstr "Página de inicio" #~ msgid "Ginkgo CADx start page ..." #~ msgstr "Página de inicio de Ginkgo CADx ..." #~ msgid "Show On Startup" #~ msgstr "Mostrar al inicio" #~ msgid "Hide history window" #~ msgstr "Ocultar ventana de historial" #~ msgid "Extensions Support" #~ msgstr "Soporte de extensiones" #~ msgid "URL for new extensions" #~ msgstr "URL para nuevas extensiones" #~ msgid "Aborting incoming association" #~ msgstr "Abortando la asociación entrante" #~ msgid "Disengage" #~ msgstr "Desencajar" #~ msgid "Column organization (2 columns)" #~ msgstr "Organización en columnas (2 columnas)" #~ msgid "Maximize" #~ msgstr "Maximizar" #~ msgid "Display Options" #~ msgstr "Opciones visualización" #~ msgid "Close Panel" #~ msgstr "Cerrar panel" #~ msgid "Close All" #~ msgstr "&Cerrar todas" #~ msgid "Close all tabs" #~ msgstr "Cerrar todas las vistas" #~ msgid "Grid Organization" #~ msgstr "Organización en rejilla" #~ msgid "Obtain extensions..." #~ msgstr "Obtener extensiones..." #~ msgid "Get extensions ..." #~ msgstr "Obtener extensiones ..." #~ msgid "Image" #~ msgstr "Imagen" #~ msgid "3D tools" #~ msgstr "Herramientas 3D" #~ msgid "Segmenting Chroma Local ..." #~ msgstr "Segmentando chroma local..." #~ msgid "Chroma Segmenting Global ..." #~ msgstr "Segmentando chroma global..." #~ msgid "Extracting cut ..." #~ msgstr "Extrayendo recorte..." #~ msgid "" #~ "\n" #~ "There are %d files that overwrite existing files" #~ msgstr "" #~ "\n" #~ "Existen %d ficheros que ya están presentes en el historial" #~ msgid "This files has to be overwritten" #~ msgstr "Estos ficheros tienen que sobreescribirse" #~ msgid "Finished .." #~ msgstr "Finalizado..." #~ msgid "Merge diagnostic" #~ msgstr "Mezclando con diagnóstico" #~ msgid "Merging files..." #~ msgstr "Mezclando ficheros..." #~ msgid "Waiting upload..." #~ msgstr "Esperando por la subida..." #~ msgid "Merging file %d of %d" #~ msgstr "Mezclando fichero %d de %d" #~ msgid "" #~ "Extension is incompatible with current core. Please, check for upgrades." #~ msgstr "" #~ "La extensión no es compatible con la versión actual del núcleo. Por " #~ "favor, comprueba actualizaciones." #~ msgid "Null Tool" #~ msgstr "Herramienta nula" #~ msgid "Duplicate Tool" #~ msgstr "Herramienta duplicada" #~ msgid "Error deleting the patient in the database:\n" #~ msgstr "Error al eliminar el paciente de la base de datos: \n" #~ msgid "Error deleting the Study of database:\n" #~ msgstr "Error al eliminar el Estudio de la base de datos: \n" #~ msgid "Error deleting file from de database: \n" #~ msgstr "Error al eliminar el fichero de la base de datos: \n" #~ msgid "Error deleting file from database:\n" #~ msgstr "Error al eliminar el fichero de la base de datos: \n" #~ msgid "All modalities" #~ msgstr "Todas las modalidades" #~ msgid "Opening series..." #~ msgstr "Abriendo series..." #~ msgid "Deleting series..." #~ msgstr "Eliminando series..." #~ msgid "Activate" #~ msgstr "Activar" #~ msgid "Not loaded" #~ msgstr "No cargada" #~ msgid "Plugin's path" #~ msgstr "Directorio de extensiones" #~ msgid "1.0" #~ msgstr "1.0" #~ msgid "Metaemotion S.L." #~ msgstr "MetaEmotion S.L." #~ msgid "Select files you want to export" #~ msgstr "Seleccione los ficheros que desea exportar" #~ msgid "" #~ "There are selected diagnostics with pending modifications\n" #~ "Do you want to save it before uploading?" #~ msgstr "" #~ "Los diagnósticos seleccionados tienen modificaciones pendientes\n" #~ "¿Desea guardar los cambios antes de enviar al PACS?" #~ msgid "Select Series you want to export" #~ msgstr "Seleccione las series que desea exportar" #~ msgid "No description" #~ msgstr "Sin descripción" #~ msgid "Send to PACS server" #~ msgstr "Enviar a un servidor PACS" #~ msgid "You can't remove opened studies" #~ msgstr "No se pueden elminar estudios abiertos" #~ msgid "this Study" #~ msgstr "este estudio" #~ msgid "error, have tried to select a file that is not added to history" #~ msgstr "" #~ "error, se ha intentado activar un fichero que no esta añadido al historial" #~ msgid "Last week" #~ msgstr "Última semana" #~ msgid "" #~ "\n" #~ "There aren't any stored study that matches with the search filter.\n" #~ msgstr "" #~ "\n" #~ "No existen estudios cargados que cumplan los criterios de filtrado.\n" #~ msgid "" #~ "\n" #~ "To begin working must change filter criteria, acquire an existing study " #~ "or import images in DICOM format.\n" #~ msgstr "" #~ "\n" #~ "Para comenzar a trabajar debe cambiar los criterios de filtrado, adquirir " #~ "un estudio DICOM existente o importar imágenes a formato DICOM.\n" #~ msgid "" #~ "\n" #~ "There is no size in the medical history to show every patients\n" #~ msgstr "" #~ "\n" #~ "No hay sitio en el historial para mostrar a todos los pacientes\n" #~ msgid "" #~ "\n" #~ "Try using filters or collapsing nodes and refresh search\n" #~ msgstr "" #~ "\n" #~ "Intente usar filtros o colapsar nodos y refresque la búsqueda\n" #~ msgid "&DICOM &Acquisition" #~ msgstr "&Adquirir DICOM" #~ msgid "Acquiring a new DICOM study" #~ msgstr "Adquirir un estudio DICOM" #~ msgid "&Open File" #~ msgstr "&Abrir fichero" #~ msgid "Open a DICOM file" #~ msgstr "Abrir un fichero DICOM" #~ msgid "&Open Folder" #~ msgstr "&Abrir directorio" #~ msgid "Acquire from a local folder" #~ msgstr "Adquirir un directorio local" #~ msgid "&Import ..." #~ msgstr "Importar..." #~ msgid "Import images" #~ msgstr "Importar imágenes" #~ msgid "12412012 Q" #~ msgstr "12412012 Q" #~ msgid "31/08/1983" #~ msgstr "31/08/1983" #~ msgid "Javier Tovar Velasco" #~ msgstr "Javier Tovar Velasco" #~ msgid "Esto es un texto algo largo para probar " #~ msgstr "Esto es un texto algo largo para probar " #~ msgid "10:20" #~ msgstr "10:20" #~ msgid "31/02/2010" #~ msgstr "31/02/20010" #~ msgid "CT" #~ msgstr "CT" #~ msgid "Filters" #~ msgstr "Filtros" #~ msgid "to" #~ msgstr "a" #~ msgid "Id: " #~ msgstr "Id: " #~ msgid "Name: " #~ msgstr "Nombre: " #~ msgid "" #~ msgstr "" #~ msgid "Sex: male" #~ msgstr "Sexo: masculino" #~ msgid "Sex: female" #~ msgstr "Sexo: femenino" #~ msgid "Birth date: " #~ msgstr "Fecha de nacimiento:" #~ msgid "&Delete Patient from History" #~ msgstr "&Eliminar el paciente del Historial" #~ msgid "Failed to remove patient, you have to close opened studies" #~ msgstr "" #~ "Error al eliminar el paciente, se tienen que cerrar los estudios abiertos" #~ msgid "this Patient" #~ msgstr "el paciente" #~ msgid "Description: " #~ msgstr "Descripción: " #~ msgid "Date: " #~ msgstr "Fecha: " #~ msgid "Time: " #~ msgstr "Hora: " #~ msgid "Modality: " #~ msgstr "Modalidad: " #~ msgid "Series UID: " #~ msgstr "UID serie: " #~ msgid "UID Importer: " #~ msgstr "UID importador: " #~ msgid "Acquire from a removable unit" #~ msgstr "Adquirir desde una unidad extraíble" #~ msgid "" #~ "The study you want to export is modified.\n" #~ "Would you like to save it?" #~ msgstr "" #~ "El estudio que desea exportar está modificado.\n" #~ "¿Desea guardarlo?" #~ msgid "Import Images" #~ msgstr "Importar imágenes" #~ msgid "DICOM &acquisition from PACS" #~ msgstr "&Adquirir DICOM desde el PACS" #~ msgid "&Import images..." #~ msgstr "Importar imágenes..." #~ msgid "&Save" #~ msgstr "&Guardar" #~ msgid "Save the active study." #~ msgstr "Guardar el estudio activo." #~ msgid "Export current series..." #~ msgstr "Exportar serie actual..." #~ msgid "Export the active study to other formats" #~ msgstr "Exportar el estudio activo a otros formatos" #~ msgid "Print..." #~ msgstr "Imprimir..." #~ msgid "Export ..." #~ msgstr "Exportar..." #~ msgid "Upload to PACS" #~ msgstr "Enviar al PACS" #~ msgid "Select Series you want to upload" #~ msgstr "Seleccione las series que desea subir" #~ msgid "Creating new images ..." #~ msgstr "Creando nuevas imágenes ..." #~ msgid "Select files you want to upload" #~ msgstr "Seleccione los archivos que desea enviar" #~ msgid "PACS server" #~ msgstr "Servidor PACS" #~ msgid "Assistant to send files to PACS" #~ msgstr "Asistente para el envío de archivos al PACS" #~ msgid "Undo\tCtrl+z" #~ msgstr "Deshacer\tCtrl+z" #~ msgid "Redo\tCtrl+y" #~ msgstr "Rehacer\tCtrl+y" #~ msgid "Decrease" #~ msgstr "Disminuir" #~ msgid "Decrease value" #~ msgstr "Disminuir la valoración" #~ msgid "Increase" #~ msgstr "Aumentar" #~ msgid "Increase value" #~ msgstr "Aumentar la valoración" #~ msgid "Radious" #~ msgstr "Radio" #~ msgid "Factor (0.50)" #~ msgstr "Factor (0.50)" #~ msgid "Factor" #~ msgstr "Factor" #~ msgid "Factor (%.2f)" #~ msgstr "Factor (%.2f)" #~ msgid "Elevation" #~ msgstr "Elevación" #~ msgid "Add Column" #~ msgstr "Agregar columna" #~ msgid "Deleting a Column" #~ msgstr "Eliminar una columna" #~ msgid "Deleting a Row" #~ msgstr "Eliminar una fila" #~ msgid "1x1" #~ msgstr "1x1" #~ msgid "1x2" #~ msgstr "1x2" #~ msgid "2x1" #~ msgstr "2x1" #~ msgid "2X2" #~ msgstr "2x2" #~ msgid "3x3" #~ msgstr "3x3" #~ msgid "4x4" #~ msgstr "4x4" #~ msgid "Zoom +" #~ msgstr "Zoom +" #~ msgid "Zoom -" #~ msgstr "Zoom -" #~ msgid "Magnifying glass" #~ msgstr "Lupa" #~ msgid "Browse slices\tCtrl+S" #~ msgstr "Navegador de cortes\tCtrl+S" #~ msgid "PACS Servers" #~ msgstr "Servidores PACS" #~ msgid "Test node" #~ msgstr "Probar conexión" #~ msgid "Confirm the removal of the server" #~ msgstr "Confirma la eliminación del servidor " #~ msgid "Test server" #~ msgstr "Probar servidor" #~ msgid "PACS Server" #~ msgstr "Servidor PACS" #~ msgid "PACS Server Settings" #~ msgstr "Configuración de servidores PACS" #~ msgid "Auto close after dicomize" #~ msgstr "Auto cerrar después de dicomizar" #~ msgid "Open video" #~ msgstr "Abrir fichero" #~ msgid "Minimize after import" #~ msgstr "Minimizar después de importar" #~ msgid "Electronic medical history" #~ msgstr "Historia clínica electrónica" #~ msgid "Birthdate" #~ msgstr "Fecha de nacimiento" #~ msgid "Surname 2" #~ msgstr "Apellido 2" #~ msgid "Birthday" #~ msgstr "Fecha nacimiento" #~ msgid "Filter menu" #~ msgstr "Menú de filtrado" #~ msgid "Error sending evidences: " #~ msgstr "Error al enviar evidencias: " #~ msgid "Fatal error, can not write the history database" #~ msgstr "Error fatal, no se puede escribir la base de datos del historial" #~ msgid "Could not get the associated module" #~ msgstr "No se pudo obtener el módulo asociado" #~ msgid "\"scope\" attribute expected at \"gnkworkflow\" scope" #~ msgstr "Atributo \"scope\" no especificado al procesar tag \"gnkworkflow\"" #~ msgid "It has been read a \"medico\" tag without identifiers" #~ msgstr "Se ha leído un tag \"medico\" sin identificadores" #~ msgid "\"id_peticion\" attribute expected at \"plantilla\" scope" #~ msgstr "" #~ "Atributo \"id_peticion\" no especificado al procesar tag \"plantilla\"" #~ msgid "It has been read a \"paciente\" tag without identifiers" #~ msgstr "Se ha leído un tag \"paciente\" sin identificadores" #~ msgid "Correction" #~ msgstr "Corrección" #~ msgid "Smooth" #~ msgstr "Suavizar" #~ msgid "Edges" #~ msgstr "Bordes" #~ msgid "Levels" #~ msgstr "Niveles" #~ msgid "Median 3x3" #~ msgstr "Mediana 3x3" #~ msgid "Median smooth filter" #~ msgstr "Filtro de suavizado de mediana" #~ msgid "Gaussian 3x3" #~ msgstr "Gausiano 3x3" #~ msgid "Gaussian smooth filter" #~ msgstr "Filtro de suavizado gausiano" #~ msgid "Curvature Flow" #~ msgstr "Curvature flow" #~ msgid "Edge preserving smooth filter" #~ msgstr "Filtro de suavizado manteniendo bordes" #~ msgid "Sobel edges 3x3" #~ msgstr "Bordes sobel 3x3" #~ msgid "Sobel filter 3x3" #~ msgstr "Filtro sobel 3x3" #~ msgid "Auto Levels" #~ msgstr "Auto niveles" #~ msgid "You must specify an absolute directory path" #~ msgstr "Es necesario especificar una ruta de directorio absoluta" #~ msgid "Environment" #~ msgstr "Entorno" #~ msgid "System Environment of Electronic Health Record" #~ msgstr "Entorno del Sistema de Historia Clínica Electrónica" #~ msgid "Sacyl (CyL, Spain)" #~ msgstr "Sacyl (CyL, España)" #~ msgid "" #~ "Is possible to build dynamic paths with the following wildcards filled " #~ "from Ginkgo CADx integration XML's HL7 identifiers:\n" #~ "\t#PID.NNESP : Patient's spanish NIF number.\n" #~ "\t#PID.HC : Patient's healthcare card number.\n" #~ "\t#PID.PI : Patient's center-spacific History number.\n" #~ "\t#PID.SS : Patient's spanish social healthcare number.\n" #~ "\t#MID.NNESP : Medic's spanish NIF number.\n" #~ "\t#MID.MD : Medic's college number. " #~ msgstr "" #~ "Es posible construir rutas de manera dinámica usando los siguientes " #~ "comodines rellenados\n" #~ "a partir de campos HL7 de ficheros XML de integración de Ginkgo CADx:\n" #~ "\t#PID.NNESP : Número de identificación fiscal del paciente.\n" #~ "\t#PID.HC : Número de tarjeta sanitaria del paciente.\n" #~ "\t#PID.PI : Número de historia clínica del paciente en el hospital.\n" #~ "\t#PID.SS : Número de seguridad social del paciente.\n" #~ "\t#MID.NNESP : Número de identificación fiscal del médico.\n" #~ "\t#MID.MD : Número de colegiado del médico." #~ msgid "License" #~ msgstr "Licencia" #~ msgid "License Data" #~ msgstr "Datos de la licencia" #~ msgid "Organization" #~ msgstr "Organización" #~ msgid "Expiration Date" #~ msgstr "Fecha expiración" #~ msgid "Evaluation" #~ msgstr "Evaluación" #~ msgid "User Defined" #~ msgstr "Definido por el usuario" #~ msgid " WW" #~ msgstr "WW" #~ msgid " WL" #~ msgstr "WL" #~ msgid "Reset Window/Level" #~ msgstr "Resetear Window/Level " #~ msgid "Poligono" #~ msgstr "Poligono" #~ msgid "Open Folder" #~ msgstr "Abrir directorio" #~ msgid "Open Removable" #~ msgstr "Abrir unidad extraíble" #~ msgid "Unsupported scope" #~ msgstr "Ámbito no soportado" #~ msgid "No options" #~ msgstr "Sin opciones" #~ msgid "XML Files(*.xml)|*.xml" #~ msgstr "Ficheros XML(*.xml)|*.xml" #~ msgid "Failed to save the file" #~ msgstr "Ha ocurrido un error al guardar el fichero" #~ msgid "The xml format is not correct" #~ msgstr "El formato del xml no es correcto" #~ msgid "Information" #~ msgstr "Información" #~ msgid "Show node plain text" #~ msgstr "Mostrar el nodo en texto plano" #~ msgid "Thread / Scope" #~ msgstr "Hilo / Ámbito" #~ msgid "List" #~ msgstr "Lista" #~ msgid "SOAP invocation error\n" #~ msgstr "Error en invocación SOAP\n" #~ msgid "In connection openssl Exception:" #~ msgstr "Excepcion En conexion Openssl: " #~ msgid "The invocation XML is malformed" #~ msgstr "El XML de invocacion esta mal formado" #~ msgid "" #~ "Failed to perform the HTTP request, the server returned the error code " #~ msgstr "" #~ "Error al realizar la petición HTTP, el servidor devolvió el código de " #~ "error " #~ msgid "Not specified the server protocol" #~ msgstr "No se ha especificado el protocolo del servidor" #~ msgid "Unsupported Protocol" #~ msgstr "Protocolo no soportado" #~ msgid "Malformed server response" #~ msgstr "Respuesta del servidor mal formada" #~ msgid "There was an error when you invoke the Web service" #~ msgstr "Se ha producido un error al invocar el servicio web" #~ msgid "Code:" #~ msgstr "Código: " #~ msgid "Reason:" #~ msgstr "Razón: " #~ msgid "Error connecting" #~ msgstr "Error al realizar la conexión " #~ msgid "Error when making SSL connection" #~ msgstr "Error al realizar la conexión SSL" #~ msgid "Error when making the request, writing incomplete" #~ msgstr "Error al realizar la petición, escritura incompleta" #~ msgid "Error in receiving the response" #~ msgstr "Error al recibir la respuesta" #~ msgid "The certificate has not been verified" #~ msgstr "El certificado no ha podido verificarse" #~ msgid "The CN field does not match the hostname" #~ msgstr "El campo CN no se corresponde con el nombre de host" #~ msgid "Export Certificate" #~ msgstr "Exportar certificado" #~ msgid "PEM file (*.pem) | *.pem" #~ msgstr "Fichero PEM(*.pem)|*.pem" #~ msgid "" #~ "The following certificate has not been able to verify\n" #~ "Do you want to save to import into the system?" #~ msgstr "" #~ "El siguiente certificado no se ha podido comprobar\n" #~ "¿Desea guardarlo para poder importarlo en el sistema?" #~ msgid "Saving ..." #~ msgstr "Guardar..." #~ msgid "Save Certificate" #~ msgstr "Guardar Certificado" #~ msgid "Rss url is not valid check configuration" #~ msgstr "La url RSS no es válida comprueba la configuración" #~ msgid "It was impossible to connect server " #~ msgstr "Ha sido imposible conectar al servidor" #~ msgid "Exception sending request" #~ msgstr "Excepción al enviar la petición" #~ msgid "Exception reading response" #~ msgstr "Excepción al leer la respuesta" #~ msgid "Generalitat de Catalunya: ECG compliance support" #~ msgstr "Generalitat de Catalunya: soporte en compatibilidad de ECG" #~ msgid "Breaking the world" #~ msgstr "Rompiendo el mundo " #~ msgid "Cancels current task" #~ msgstr "Cancela la tarea actual" #~ msgid "Fill the fields to continue." #~ msgstr "Rellene los dos campos para continuar." #~ msgid "Setting tags on export will be anonymized" #~ msgstr "Configuración de tags que se anonimizarán en la exportación" #~ msgid "Are you sure to delete the tag" #~ msgstr "¿Confirma la eliminación del tag " #~ msgid "Modify" #~ msgstr "Modificar" #~ msgid "Default Value" #~ msgstr "Valor por defecto" #~ msgid "Anonymized tags default value" #~ msgstr "Valor por defecto para los tags anonimizados" #~ msgid "Configure tags to anonymize" #~ msgstr "Configure los campos que desea anonimizar" #~ msgid "The group ID and the item must be encoded in hexadecimal" #~ msgstr "" #~ "El identificador de grupo y el de elemento han de estar codificados en " #~ "hexadecimal" #~ msgid "Tags defined in settings" #~ msgstr "Campos definidos en el menu Configuración" #~ msgid "New Tag" #~ msgstr "Nuevo Tag" #~ msgid "Select the server where the files will be sent" #~ msgstr "Seleccione el servidor PACS donde se enviarán los ficheros" #~ msgid "Tab Grouping" #~ msgstr "Agrupar pestañas" #~ msgid "Horizontal Mosaic" #~ msgstr "Mosaico Horizontal" #~ msgid "Vertical Mosaic" #~ msgstr "Mosaico Vertical" #~ msgid "Tab organization" #~ msgstr "Organización en pestañas" #~ msgid "HL7 Monitor" #~ msgstr "Monitorizador HL7" #~ msgid "Log Monitor" #~ msgstr "Monitorizador de Log" #~ msgid "Remove finished" #~ msgstr "Eliminar terminados" #~ msgid "Select the DICOM files you wish to upload" #~ msgstr "Seleccione los archivos DICOM que desea subir" #~ msgid "Extension " #~ msgstr "Extensión " #~ msgid " is compatible with Ginkgo CADx " #~ msgstr " es compatible con Ginkgo CADx " #~ msgid "http://ginkgo-cadx.com/en/extensions/" #~ msgstr "http://ginkgo-cadx.com/es/extensiones/" #~ msgid "Loading Ginkgo CADx news..." #~ msgstr "Cargando las Noticias de Ginkgo CADx" #~ msgid "Error opening file downloaded" #~ msgstr "Error al abrir el fichero descargado" #~ msgid "Progress" #~ msgstr "Progreso" #~ msgid "There is no PACS server configured" #~ msgstr "No existe ningún servidor PACS configurado" #~ msgid "Address" #~ msgstr "Dirección" #~ msgid "Mode" #~ msgstr "Modo" #~ msgid "Open Selected completed downloads" #~ msgstr "Abrir las descargas seleccionadas" #~ msgid "Start/Stop selected downloads" #~ msgstr "Iniciar/Parar las descargas seleccionadas" #~ msgid "" #~ "The functional extensions are plugins that perform advanced procedures." #~ msgstr "" #~ "Las extensiones funcionales son plugins que realizan procedimientos " #~ "avanzados." #~ msgid "" #~ "The functional extensions are plugins that perform advanced procedures. " #~ msgstr "" #~ "Las extensiones funcionales son plugins que realizan procedimientos " #~ "avanzados." #~ msgid "Actions" #~ msgstr "Acciones" #~ msgid "Reload" #~ msgstr "Recargar" #~ msgid "Extension" #~ msgstr "Extensión" #~ msgid "Version" #~ msgstr "Versión" #~ msgid "Comp. Date" #~ msgstr "Fecha Comp." #~ msgid "Provider" #~ msgstr "Proveedor" #~ msgid "Angle" #~ msgstr "Ángulo" #~ msgid "Rule" #~ msgstr "Regla" #~ msgid "\"tid\" attribute omitted" #~ msgstr "Atributo \"tid\" no especificado" #~ msgid " couldn't be readed" #~ msgstr " no se ha podido leer" #~ msgid "" #~ "All images must have the same dimensions.\n" #~ "Do you want to continue resizing the images to the size of the largest?" #~ msgstr "" #~ "Todas las imágenes deben de tener las mismas dimensiones.\n" #~ "¿Desea continuar redimensionando las imágenes al tamaño de la mayor?" #~ msgid "Different dimensions between images" #~ msgstr "Distintas dimensiones entre imágenes" #~ msgid "Scaling images, may take a while ..." #~ msgstr "Escalando imágenes, puede tardar unos instantes..." #~ msgid "" #~ "Unable to reprocess this series. You have to register Ginkgo CADx module " #~ "that dicomized this file." #~ msgstr "" #~ "No es posible reprocesar esta serie. Se tiene que registrar el módulo de " #~ "Ginkgo CADx que dicomizó este fichero." #~ msgid "License ..." #~ msgstr "Licencia..." #~ msgid "Ginkgo CADx License ..." #~ msgstr "Licencia de Ginkgo CADx..." #~ msgid "Browse image" #~ msgstr "Buscar imagen" #~ msgid "Local file" #~ msgstr "Fichero local" #~ msgid "Template" #~ msgstr "Plantilla" #~ msgid "*.*" #~ msgstr "*.*" #~ msgid "" #~ "The file or directory can't be acquired, make sure that you have read " #~ "permissions on it" #~ msgstr "" #~ "No se puede adquirir el fichero o directorio, asegúrese de que dispone de " #~ "permisos de lectura sobre el mismo" #~ msgid ": Not implemented" #~ msgstr ": No implementado" #~ msgid "Importation" #~ msgstr "Importación" #~ msgid "&Delete from History" #~ msgstr "&Eliminar del Historial" #~ msgid "aa" #~ msgstr "Datos" #~ msgid "Setting display options" #~ msgstr "Configuración de las opciones de visualización" #~ msgid "" #~ "This option enables stereoscopic vision (must bear the graphics card and " #~ "requires the use of 3D glasses)" #~ msgstr "" #~ "Esta opción activa la vision estereoscópica (debe de soportarla la " #~ "tarjeta gráfica y requiere el uso de gafas 3D)" #~ msgid "Stereoscopic Vision" #~ msgstr "Visión Estereoscópica" #~ msgid "Activate stereoscopic vision (press 'S' in the viewer)" #~ msgstr "Activar vision estereoscopica (pulsar 'S' en el visualizador)" #~ msgid "" #~ "Some of the currently acquired files are the same than already present in " #~ "medical history.\n" #~ "Would you like to overwrite them?" #~ msgstr "" #~ "Algunos ficheros adquiridos tienen versiones presentes en el historial\n" #~ "¿Desea sobreescribir dichas imágenes?" #~ msgid "License error" #~ msgstr "Error de licencia" #~ msgid "" #~ "Some of the diagnostic files that have been acquired refer to images that " #~ "are not present in Ginkgo" #~ msgstr "" #~ "Alguno de los ficheros de diagnóstico que se han obtenido hacen " #~ "referencia a imágenes que no están presentes en Ginkgo" #~ msgid "" #~ "You can search for referenced images manually, or try downloading from a " #~ "PACS server" #~ msgstr "" #~ "Puede buscar las imágenes referenciadas manualmente, o intentar " #~ "descargarlas desde un servidor PACS" #~ msgid "Disc Searching" #~ msgstr "Buscar en Disco" #~ msgid "Disk searching..." #~ msgstr "Buscar en disco..." #~ msgid "PACS Download" #~ msgstr "Descargar de PACS" #~ msgid "Select the server you want to use to download images" #~ msgstr "Seleccione el servidor desde donde desea descargar las imágenes" #~ msgid "Searching Disk ..." #~ msgstr "Buscar en disco..." #~ msgid "Scope" #~ msgstr "Ámbito" #~ msgid "DIEGO GARCÍA MORATE" #~ msgstr "DIEGO GARCÍA MORATE" #~ msgid "" #~ "Due some PACS restrictions, only study scope is supported. (\"ambito\" at " #~ "\"dimse\" scope)" #~ msgstr "" #~ "Debido a restricciones en algunos PACS, sólo está soportado el ámbito " #~ "STUDY. (Atributo \"ambito\" en tag \"dimse\")" #~ msgid "" #~ "The functional extensions are plugins that perform advanced procedures. " #~ "You can enable, disable and / or choose specific versions to use at run " #~ "time.\n" #~ "This section lets you adjust and keep them updated." #~ msgstr "" #~ "Las extensiones son plugins funcionales que realizan procedimientos " #~ "avanzados. Es posible activarlas, desactivarlas y/o elegir versiones " #~ "concretas a usar en tiempo de ejecución.\n" #~ "Este apartado permite ajustarlas y mantenerlas actualizadas." #~ msgid "Spanish" #~ msgstr "Español" #~ msgid "English" #~ msgstr "Inglés" #~ msgid "Japanese" #~ msgstr "Japonés" #~ msgid "Use always SSL/TLS" #~ msgstr "Usar siempre SSL/TLS" #~ msgid "Echo" #~ msgstr "Echo" #~ msgid "None" #~ msgstr "Ninguna" #~ msgid "Find" #~ msgstr "Find" #~ msgid "" #~ "The study you want to send to PACS is modified.\n" #~ "Would you like to save it?" #~ msgstr "" #~ "El estudio que desea enviar al PACS está modificado.\n" #~ "¿Desea guardarlo?" #~ msgid "Transfer Syntax" #~ msgstr "Transfer Syntax" #~ msgid "Explicit Little Endian" #~ msgstr "Explicit Little Endian" #~ msgid "Implicit Little Endian" #~ msgstr "Implicit Little Endian" #~ msgid "JPEG Lossless" #~ msgstr "JPEG Lossless" #~ msgid "JPEG Lossy - High quality" #~ msgstr "JPEG Lossy - Calidad alta" #~ msgid "JPEG Lossy - Normal quality" #~ msgstr "JPEG Lossy - Calidad normal" #~ msgid "JPEG Lossy - Low quality" #~ msgstr "JPEG Lossy - Calidad baja" #~ msgid "JPEG 2000 Lossless" #~ msgstr "JPEG 2000 Lossless" #~ msgid "Files" #~ msgstr "Ficheros" #~ msgid "Original images" #~ msgstr "Imágenes originales" #~ msgid "Modified images" #~ msgstr "Imágenes modificadas" #~ msgid "Need Help ..." #~ msgstr "Necesita ayuda ..." #~ msgid "Failed to update the study with uid" #~ msgstr "Ha ocurrido un error al actualizar el estudio con uid " #~ msgid "Failed to update the series with uid" #~ msgstr "Ha ocurrido un error al actualizar la serie con uid " #~ msgid "Failed to update the file with path" #~ msgstr "Ha ocurrido un error al actualizar el fichero con path " #~ msgid "Failed to update the file in the database:\n" #~ msgstr "Error al actualizar el fichero en la base de datos: \n" #~ msgid "Global Path" #~ msgstr "Directorio global" #~ msgid "Delete region (Ctrl + 1)" #~ msgstr "Eliminar región (Ctrl + 1)" #~ msgid "Remove from chroma" #~ msgstr "Eliminar del chroma" #~ msgid "Insert region (Ctrl + 2)" #~ msgstr "Insertar región (Ctrl + 2)" #~ msgid "Insert in the chroma" #~ msgstr "Insertar en el chroma" #~ msgid "Reset chroma" #~ msgstr "Resetear chroma" #~ msgid "Reverse" #~ msgstr "Invertir" #~ msgid "Reverse chroma" #~ msgstr "Invertir chroma" #~ msgid "Lasso Chroma" #~ msgstr "Lazo de Chroma" #~ msgid "Segmenting lasso..." #~ msgstr "Segmentando Lazo..." #~ msgid "Removing Background ..." #~ msgstr "Eliminando Fondo..." #~ msgid "Inserting Background ..." #~ msgstr "Insertando Fondo..." #~ msgid "Resetting Background ..." #~ msgstr "Reseteando Fondo..." #~ msgid "Background reversion ..." #~ msgstr "Inviertiendo Fondo..." #~ msgid "Canceling selection ..." #~ msgstr "Cancelando seleccion..." #~ msgid "Local" #~ msgstr "Local" #~ msgid "Local cope of selection" #~ msgstr "Ambito de selección contiguo" #~ msgid "Global" #~ msgstr "Global" #~ msgid "Global scope of selection" #~ msgstr "Ambito de selección global" #~ msgid "Sensitivity" #~ msgstr "Sensibilidad" #~ msgid "Sensitivity of the wand" #~ msgstr "Sensibilidad de la varita" #~ msgid "System" #~ msgstr "Sistema" #~ msgid "Primary Care (MEDORA)" #~ msgstr "Atencion Primaria (MEDORA)" #~ msgid "Specialized Care (JIMENA)" #~ msgstr "Atencion Especializada (JIMENA)" #~ msgid "Series was already in the download queue." #~ msgstr "La serie ya está en la cola de descargas." #~ msgid "Include diagnostic" #~ msgstr "Incluir diagnóstico" #~ msgid "Ginkgo CADx is updated" #~ msgstr "Ginkgo CADx está actualizado" #~ msgid "Ginkgo CADx is outdated (" #~ msgstr "Ginkgo CADx está desactualizado (" #~ msgid " available)" #~ msgstr " disponible)" #~ msgid "Ginkgo CADx update still not checked" #~ msgstr "La actualización de Ginkgo CADx no se ha comprobado todavía" #~ msgid "" #~ "Locations are predefined paths to set locations from well known paths " #~ "(ex: Remote shared disk)\n" #~ "Is possible to build dynamic paths with the following wildcards filled " #~ "from Ginkgo Integration XML's HL7 Ids:\n" #~ "\t#PID.NNESP : Patient's spanish NIF number.\n" #~ "\t#PID.HC : Patient's Healthcare card number.\n" #~ "\t#PID.PI : Patient's center-spacific History number.\n" #~ "\t#PID.SS : Patient's Spanish Social Healthcare number.\n" #~ "\t#MID.NNESP : Medic's spanish NIF number.\n" #~ "\t#MID.MD : Medic's college number." #~ msgstr "" #~ "Las ubicaciones son rutas predefinidas conocidas (ej: Unidades remotas " #~ "compartidas)\n" #~ "Es posible construir rutas de manera dinámicas usando los siguientes " #~ "comodines rellenados\n" #~ "a partir de campos HL7 de ficheros XML de integración de Ginkgo :\n" #~ "\t#PID.NNESP : Número de Identificación Fiscal del paciente.\n" #~ "\t#PID.HC : Número de tarjeta sanitaria del paciente.\n" #~ "\t#PID.PI : Número de historia clínica del paciente en el hospital.\n" #~ "\t#PID.SS : Número de Seguridad Social del paciente.\n" #~ "\t#MID.NNESP : Número de Identificación Fiscal del médico.\n" #~ "\t#MID.MD : Número de colegiado del médico." #~ msgid "TCP Port Number (1-65534)" #~ msgstr "Número de puerto TCP (1-65534)" #~ msgid "Using license" #~ msgstr "Licencia de uso" #~ msgid "Perform search" #~ msgstr "Buscar" #~ msgid "From" #~ msgstr "Desde" #~ msgid "To" #~ msgstr "Hasta" #~ msgid "Ginkgo" #~ msgstr "Ginkgo" #~ msgid "VERSION" #~ msgstr "VERSION" #~ msgid "" #~ "Copyright 2008-2010 MetaEmotion S.L. http://healthcare.metaemotion.com. " #~ "All rights reserved." #~ msgstr "" #~ "Copyright 2008-2010 MetaEmotion S.L. http://healthcare.metaemotion.com. " #~ "Todos los derechos reservados." #~ msgid "Installed Components" #~ msgstr "Componentes instalados" #~ msgid "Component" #~ msgstr "Componente" #~ msgid "About Ginkgo..." #~ msgstr "Acerca de Ginkgo..." #~ msgid "* (All)" #~ msgstr "* (Todas)" #~ msgid "Period" #~ msgstr "Periodo" #~ msgid "CT, CR" #~ msgstr "CT, CR" #~ msgid "PACS Application ID" #~ msgstr "ID de aplicación del PACS" #~ msgid "Combo!" #~ msgstr "Cobb" #~ msgid "Updating records ..." #~ msgstr "Actualizando historial..." #~ msgid "Pulmón" #~ msgstr "Lung" #~ msgid "Cráneo" #~ msgstr "Cranium" #~ msgid "Regroup tabs" #~ msgstr "Reagrupar pestañas" #~ msgid "HCE port not set" #~ msgstr "Puerto de la HCE no configurado" #~ msgid "Stopped." #~ msgstr "Parado" #~ msgid "Stopping..." #~ msgstr "Parando..." #~ msgid "Configure Remote PACS" #~ msgstr "Configurar PACS remoto" #~ msgid "" #~ "This is an evaluation version. The authors make no warranties as to " #~ "performance or fitness for a particular purpose, or any other warranties " #~ "whether expressed or implied. The user must assume the entire risk of " #~ "using this program. Under no circumstances shall the authors be liable " #~ "for direct, indirect, special, incidental, consequential damages or " #~ "misdiagnosis resulting from the use, misuse, or inability to use the " #~ "software, even if the authors have been advised of the possibility of " #~ "such damages. This software may not be sold, redistributed, or " #~ "commercially used in any other way without prior approval of the authors." #~ msgstr "" #~ "Esta es una versión de evaluación. Los autores no dan garantías de " #~ "eficiencia para casos particulares o cualquier otra garantía expresada o " #~ "implícita. El usuario debe de asumir todo el riesgo al usar este " #~ "programa. Bajo ninguna los autores podrán ser responsable por daños " #~ "directos, indirectos, especiales, incidentales o consecuentes o " #~ "diagnósticos erróneos resultantes del uso o mal uso del programa. Este " #~ "software no debe ser vendido, redistribuido o usado comercialmente o de " #~ "cualquier otra forma sin la autorización previa de los autores." #~ msgid "NombreWidget" #~ msgstr "NombreWidget" #~ msgid "&Aceptar" #~ msgstr "&Aceptar" #~ msgid "Propiedades de ..." #~ msgstr "Propiedades..." #~ msgid "Export sucessfully finished" #~ msgstr "Exportación finalizada correctamente" #~ msgid "Save study" #~ msgstr "Guardar estudio" #~ msgid "DICOM Files (*. dcm) | *. dcm" #~ msgstr "Archivos DICOM (*.dcm)|*.dcm" #~ msgid "Error loading the study:" #~ msgstr "Error al cargar el estudio: " #~ msgid "Require user login" #~ msgstr "Petición del nombre de usuario" #~ msgid "Auth method" #~ msgstr "Método de autenticación" #~ msgid "Auth params" #~ msgstr "Parámetros de autenticación" #~ msgid "1" #~ msgstr "1" #~ msgid "Modality1" #~ msgstr "Modalidad" #~ msgid "Date1" #~ msgstr "Fecha" #~ msgid "Physician1" #~ msgstr "Médico" #~ msgid "Accession Number1" #~ msgstr "Accession Number" #~ msgid "UID1" #~ msgstr "UID1" #~ msgid "Modules" #~ msgstr "Módulos" #~ msgid "ACCENT LOW SHIPPING PROCESS" #~ msgstr "PROCESO DE ENVIO FALTA ACENTO" #~ msgid "Rompiendo el mundo " #~ msgstr "Rompiendo el mundo" #~ msgid "Error loading study, memory full" #~ msgstr "Error al cargar el estudio: Memoria insuficiente" #~ msgid "Looking for images matching the search criteria" #~ msgstr "Buscando imágenes que cumplan con los criterios de búsqueda" #~ msgid "Exploring patient " #~ msgstr "Explorando Paciente " #~ msgid "Exploring Patient" #~ msgstr "Explorando Paciente " #~ msgid "Error in consultation with id pacs " #~ msgstr "Error en la consulta al pacs con id " #~ msgid "Error in consultation with id pacs" #~ msgstr "Error en la consulta al pacs con id " #~ msgid "Adquire a DICOM study" #~ msgstr "Adquirir un estudio DICOM" #~ msgid "It has been read a \"paciente\" tag without episode number" #~ msgstr "Se ha leído un tag \"paciente\" sin número de episodio" #~ msgid "No results were found for the specified search" #~ msgstr "No se han obtenido resultados para la búsqueda indicada" #~ msgid "Select the DICOM files you want to open" #~ msgstr "Seleccione los archivos DICOM que desea abrir" #~ msgid "Select a directory containing DICOM files" #~ msgstr "Seleccione un directorio que contenga ficheros DICOM" #~ msgid "Select the number of the server you want to download" #~ msgstr "Seleccione la serie del servidor que desea descargar" #~ msgid "DICOM Files (*.dcm, *.*)|*.*" #~ msgstr "Archivos DICOM (*.dcm, *.*)|*.*" #~ msgid "Search recursively" #~ msgstr "Buscar recursivamente" #~ msgid "Medical institution (Local Organization)" #~ msgstr "Centro (Organización local)" #~ msgid "Acquire a new DICOM study" #~ msgstr "Adquirir un estudio DICOM" #~ msgid "&Import..." #~ msgstr "&Importar..." #~ msgid "License data" #~ msgstr "Datos de la Licencia" #~ msgid "Test subtitle" #~ msgstr "Subtítulo de prueba" #~ msgid "Ongoing Tasks" #~ msgstr "Tareas en curso" #~ msgid "Licensing" #~ msgstr "Licencia de uso" #~ msgid " but no valid presentation contexts" #~ msgstr " pero no existen contextos de presentación válidos" #~ msgid "%m-%d-%y %H:%M:%S,%q" #~ msgstr "%d-%m-%y %H:%M:%S,%q" #~ msgid "Association Received" #~ msgstr "Asociación recibida" #~ msgid "DICOM Dir has been created with a new version of Ginkgo CADx." #~ msgstr "" #~ "El DICOMDIR ha sido creado con una versión más nueva de Ginkgo CADx." #~ msgid "Download warning" #~ msgstr "Advertencia en la descarga" #~ msgid "" #~ "Error in interpreting the parameters of the command line. The file or " #~ "directory doesn't exist (" #~ msgstr "" #~ "Error al interpretar los parámetros de la línea de comandos. No existe el " #~ "fichero o directorio (" #~ msgid "Exception in component " #~ msgstr "Excepción en el componente " #~ msgid "" #~ "Ginkgo CADx has detected a default DICOM Dir created with an old version " #~ "of Ginkgo CADx" #~ msgstr "" #~ "Ginkgo CADx ha dectado un DICOMDIR de historial creado con una versión " #~ "más antigua de Ginkgo CADx" #~ msgid "" #~ "No results obtained in PACS retrieve.\n" #~ "Maybe study doesn't exist or you have a wrong PACS server configuration." #~ msgstr "" #~ "No se obtuvieron resultados.\n" #~ "Tal vez no exista el estudio o la configuración del servidor PACS sea " #~ "incorrecta." #~ msgid "Pixels bluring" #~ msgstr "Suavizado de pixels" #~ msgid "Remove old DICOM Dir after migration" #~ msgstr "Borrar DICOMDIR antiguo después de la migración" #~ msgid "Set pixels bluring" #~ msgstr "Activar suavizado de pixels" #~ msgid "Study successfully sent to PACS" #~ msgstr "Estudio enviado al PACS correctamente" #~ msgid "The following commands will abort if you close the application" #~ msgstr "Los siguientes comandos se abortarán si cierra la aplicación" #~ msgid "" #~ "The series selected is already open\n" #~ "Do you want to open it again?" #~ msgstr "" #~ "La serie seleccionada ya está abierta\n" #~ "¿Desea abrirla de nuevo?" #~ msgid "The service did not respond correctly to the DICOM standard:" #~ msgstr "El servicio no respondió correctamente al estandar DICOM:" #~ msgid "Unset pixels bluring" #~ msgstr "Desactivar suavizado de pixels" #~ msgid "Uploading to the PACS ..." #~ msgstr "Subiendo al PACS..." #~ msgid "clockWise" #~ msgstr "horario" #~ msgid "counter-clockWise" #~ msgstr "antihorario" #~ msgid "No proxy for addresses containing:" #~ msgstr "No utilizar proxy para las direcciones que contengan:" #~ msgid "Page Setup ..." #~ msgstr "Configurar página..." #~ msgid "Print image..." #~ msgstr "Imprimir..." #~ msgid "Username:" #~ msgstr "Nombre de usuario:" #~ msgid "%d{%Y/%m/%d %H:%M:%S.%q} [%t] %-5p %c %x - %m%n" #~ msgstr "%d{%d/%m/%Y %H:%M:%S.%q} [%t] %-5p %c %x - %m%n" #~ msgid "There are pending tasks, do you want to execute them?" #~ msgstr "Existen tareas pendientes, ¿desea ejecutarlas ahora?" ginkgocadx-3.8.7/cadxcore/lang/es/wxstd.mo000066400000000000000000003027561314736454600205270ustar00rootroot00000000000000',Oi?ii?i#j4j8jAjGjOjVjujjjjj jjk k,"kOk`k gk tkk kkk kkkkkkkkklll&l7l@lFlLl[lalgl ol}llllllllll llm mmmm$m*m 2m Q ku|z & 3 8 DNU!^" ñ۱  '/ 4>*Al~3$ %-%Sy'Ŵ) && MZi}! ε06 >JSZ`~̶ #(Lg|ɷ޷$ %>d$$ø$*$Gl$$˹$ 2$Otz  0Ⱥ #8T"t1ɻZcs |  ̼ܼ  "2 CN Wap Hٽ .4E!M3o#%IQc"jD ҿ  .4GY_ v  /18? P\ p}< 1%Q w)#?8Qdv'% 0*Mx -1+F%r)6.4DKi 9Uin w,0%;zO()0oN'4M]n.X !''9L0hMO@7Yx# B]t;A[pu%*$? HS,d$'$0'U}+(A+U "$8Vp v (  +7 MX h s"/H `k"",.[1y%. /%U ^ h;u:A|0=;>C;59b,.-!  <C*Hs!)> J#]/0-/M*b(#''"*M d !$)G#Y}" /&9#Lp/ 4!"8D9}. ,2+Q"}#  '2 8FOV["_  &) # .:BH _i-o$C< BMS\o w $  $/ 7"Ad 3* !#C%2'Zko )3< L,X   !*@IQY)a   $,3;Xgp y    *1D a o y      + 4>Zcl u  %?!,a)*-2)\` hr   $D `j "2)\m~:D 0!Fh(G]t" @;9|/Hc2u(K-4 HRg}!"9Oe!*.#:@>{* # 9FMc|/ 8>D -5,'F(n"*342N7<=84;m,4N !Z*|C9:%$`2'2*7:bS7?)/i$*',-.Z:((#/:LjA/=)gz  4+Q2}))+ !0 R  m  z B   . #" 0F ,w - * 0 #. 1R 0 2 0 2 6L 8 - = -( 0V      /  @ I%S y 3*+&K%r6"&'/A!q-?:B<T5. 29lD"+-DL_q$F=;Z:3 #)*E+p '9*O.z K ]ie;?z{ *"Mio*'*+.ZqR-9H%7O9l%'">(X, !., *MDx(67.V4#A =X L 7  !&&>?&'~&G&=&,,'7Y'2'S'5((N(.w(-(;(@)*Q)4|)*)B)4*0T*;*6*(*7!+"Y+$|+1+*+>+<=,/z,,>,>,0-M-)^-- --- -1--.../.B.'J.=r....,.$/D/_/ |//#/!/0/>0HQ000-000 111.1`1f1%m11*111"12,2@2<O2'2$2 222 2.3)L3*v3 3'3$34*4J4N4~U44,5;5='64e66!626i 7-u7/7'727 .898U8]81r8888"8.8.9#M9Dq9D9&9":+:AE::#:: :; ;A; [;|; ;;;;$< 3<'?<g<n<u<y< << <<<<< < < << < < = = = += 6=@= G= Q= [=f= ~====== >%$>J>f>>>>>G>#?68?o??'? ?? ?;?64@k@@@@@@ TA_A-sAA A AA A#AAB%B+B4B;BXBrB BBB B BBB@B )CJCCCD? E;ME;E:EFHF+_F:FFFFG GG2G6:G qGGGG%G6GH %H 2H@HQHWH#wHH HH*HI$I!+I&MI&tIIIIIIIJ#2JVJ$tJJ#JJ#JK#8K\K#yKK#KK#KL#[x[[[[[[[[ [\" \,\I\e\\\\ \\ \\*]+;]#g]]]]])e^1^-^k^#[___&___``+`D`#\```'n1'o5YooooDoo;pp)p;qEOqIqIqJ)rtrs*s.s9s&3tZt6>u2uu0uu3uv$v;,v"hv.v8v!vAwPWww5w<w>5x.txJx,x!y;=y?yy8y:y=-z2kz$z-z1z,#{0P{;{{@{|.2|a|f|l||&||| |8|}-}A}+\}/}C}"}~.~E5~&{~S~B~39mv~$$='50]1׀߀  !( : H S].b$Ɓ0ׁ5>U]p  ‚,Ȃ?PTlGtăԃ؃   (< Vbw!˄ ڄ *<O9g/хօۅ}4N:>b71h[r6g&9Xj( 8 N{7 :=ZhA `]$` < ET3=*TrJ-pf<zBq+Jr%d__-%bCCn )z^5Ce>; lwD8^o6 sJu/S{.t\<#HLP@9 D(M8ekl hw6n+sQ!PaAqEB|>wtL|GB,sbN!p jOt?.{U"ZYYK>/I/`uJWy#0$gLW;1msw$-TR ;kRg50Z@n59$<{vK ?u0Vu`0-6Fr*im)"7x~pI:<L}V(*1d[TbS1@P};eDQH%  ~)z#,|.BE7:\22a=j4xGsO O*)A`7xEKA?So[Hk!ZW_^YvUG5MpMI,.,P(b' 5@m"f!y%/~\+!wm2I|&4c]rq =36yCm,~U2[FRc&xc)'^cHKiMMI9t=aTD-iUj24Z]V1xy[RHodD _F3X84.zoCf9F/g; }ouf$q}X\ c'l(%yQ]^K h"QhS\dv0Jp]e ?ga&Ulk_8EB>#ai?R3l kvLv#{OfV 'NQA V|P zjn"+X@ +XO:3teGYGnWWqSN*i~ Yd'&F Please send this report to the program maintainer, thank you! Thank you and we're sorry for the inconvenience! (error %ld: %s) - Preview bold italic light#10 Envelope, 4 1/8 x 9 1/2 in#11 Envelope, 4 1/2 x 10 3/8 in#12 Envelope, 4 3/4 x 11 in#14 Envelope, 5 x 11 1/2 in#9 Envelope, 3 7/8 x 8 7/8 in%i of %i%s (or %s)%s Error%s Information%s Warning%s did not fit the tar header for entry '%s'%s files (%s)|%s&About&Actual Size&Alignment&Apply&Apply Style&Arrange Icons&Back&Based on:&Bold&Bullet style:&Cancel&Cascade&Character code:&Clear&Close&Colour:&Copy&Debug report preview:&Delete&Delete Style...&Details&Down&Edit&Edit Style...&File&Find&Finish&Font family:&Font for Level...&Font:&Forward&From:&Help&Home&Indentation (tenths of a mm)&Indeterminate&Index&Italic&Justified&Left&Left:&List level:&Log&Move&New&Next&Next >&Next Tip&Next style:&No&Notes:&Number:&OK&Open...&Paste&Point size:&Position (tenths of a mm):&Preferences&Previous&Print...&Properties&Quit&Redo&Redo &Rename Style...&Replace&Restart numbering&Restore&Right&Right:&Save&Show tips at startup&Size&Size:&Spacing (tenths of a mm)&Stop&Strikethrough&Style:&Styles:&Subset:&Symbol:&Underline&Underlining:&Undo&Undo &Unindent&Up&Weight:&Window&Yes'%s' has extra '..', ignored.'%s' is invalid'%s' is not a correct numeric value for option '%s'.'%s' is not a valid message catalog.'%s' is probably a binary buffer.'%s' should be numeric.'%s' should only contain ASCII characters.'%s' should only contain alphabetic characters.'%s' should only contain alphabetic or numeric characters.(*)(Help)(None)(Normal text)(bookmarks)(none)**)+-1.510 x 11 in10 x 14 in11 x 17 in12 x 11 in15 x 11 in26 3/4 Envelope, 3 5/8 x 6 1/2 in9 x 11 in: file does not exist!: unknown charset: unknown encoding< &BackBold italic face.
    bold italic underlined
    Bold face. Italic face. >A debug report has been generated in the directory A non empty collection must consist of 'element' nodesA standard bullet name.A2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Transverse 322 x 445 mmA3 Rotated 420 x 297 mmA3 Transverse 297 x 420 mmA3 sheet, 297 x 420 mmA4 Extra 9.27 x 12.69 inA4 Plus 210 x 330 mmA4 Rotated 297 x 210 mmA4 Transverse 210 x 297 mmA4 sheet, 210 x 297 mmA4 small sheet, 210 x 297 mmA5 Extra 174 x 235 mmA5 Rotated 210 x 148 mmA5 Transverse 148 x 210 mmA5 sheet, 148 x 210 mmA6 105 x 148 mmA6 Rotated 148 x 105 mmABCDEFGabcdefg12345ADDASCIIAddAdd current page to bookmarksAdd to custom coloursAddToPropertyCollection called on a generic accessorAddToPropertyCollection called w/o valid adderAdding book %sAfter a paragraph:Align LeftAlign RightAllAll files (%s)|%sAll files (*)|*All files (*.*)|*.*All stylesAlready Registered Object passed to SetObjectClassInfoAlready dialling ISP.Animation file is not of type %ld.Append log to file '%s' (choosing [No] will overwrite it)?ArabicArabic (ISO-8859-6)AttributesAvailable fonts.B4 (ISO) 250 x 353 mmB4 (JIS) Rotated 364 x 257 mmB4 Envelope, 250 x 353 mmB4 sheet, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Rotated 257 x 182 mmB5 (JIS) Transverse 182 x 257 mmB5 Envelope, 176 x 250 mmB5 sheet, 182 x 257 millimeterB6 (JIS) 128 x 182 mmB6 (JIS) Rotated 182 x 128 mmB6 Envelope, 176 x 125 mmBACKBMP: Couldn't allocate memory.BMP: Couldn't save invalid image.BMP: Couldn't write RGB color map.BMP: Couldn't write data.BMP: Couldn't write the file (Bitmap) header.BMP: Couldn't write the file (BitmapInfo) header.BMP: wxImage doesn't have own wxPalette.Background colourBaltic (ISO-8859-13)Baltic (old) (ISO-8859-4)Before a paragraph:BitmapBoldBottom margin (mm):Bullet &Alignment:Bullet styleBulletsC sheet, 17 x 22 inC&learC&olour:C3 Envelope, 324 x 458 mmC4 Envelope, 229 x 324 mmC5 Envelope, 162 x 229 mmC6 Envelope, 114 x 162 mmC65 Envelope, 114 x 229 mmCANCELCAPITALCHM handler currently supports only local files!CLEARCOMMANDCa&pitalsCan't &Undo Can't close registry key '%s'Can't copy values of unsupported type %d.Can't create registry key '%s'Can't create threadCan't create window of class %sCan't delete key '%s'Can't delete the INI file '%s'Can't delete value '%s' from key '%s'Can't enumerate subkeys of key '%s'Can't enumerate values of key '%s'Can't export value of unsupported type %d.Can't find current position in file '%s'Can't get info about registry key '%s'Can't initialize zlib deflate stream.Can't initialize zlib inflate stream.Can't open registry key '%s'Can't read from inflate stream: %sCan't read inflate stream: unexpected EOF in underlying stream.Can't read value of '%s'Can't read value of key '%s'Can't save image to file '%s': unknown extension.Can't save log contents to file.Can't set thread priorityCan't set value of '%s'Can't write to deflate stream: %sCancelCannot create mutex.Cannot enumerate files '%s'Cannot enumerate files in directory '%s'Cannot find active dialup connection: %sCannot find the location of address book fileCannot get priority range for scheduling policy %d.Cannot get the hostnameCannot get the official hostnameCannot hang up - no active dialup connection.Cannot initialize OLECannot load icon from '%s'.Cannot load resources from file '%s'.Cannot open HTML document: %sCannot open HTML help book: %sCannot open contents file: %sCannot open file for PostScript printing!Cannot open index file: %sCannot print empty page.Cannot read typename from '%s'!Cannot resume thread %luCannot retrieve thread scheduling policy.Cannot start thread: error writing TLS.Cannot suspend thread %luCannot wait for thread terminationCase sensitiveCeltic (ISO-8859-14)Cen&tredCenteredCentral European (ISO-8859-2)CentreCentre text.Ch&oose...Change List StyleChange StyleCharacter stylesCheck to add a period after the bullet.Check to add a right parenthesis.Check to enclose the bullet in parentheses.Check to make the font bold.Check to make the font italic.Check to make the font underlined.Check to restart numbering.Choose ISP to dialChoose colourChoose fontCircular dependency involving module "%s" detected.Cl&oseClear the log contentsClick to apply the selected style.Click to browse for a symbol.Click to cancel changes to the font.Click to cancel the font selection.Click to change the font colour.Click to change the text colour.Click to choose the font for this level.Click to close this window.Click to confirm changes to the font.Click to confirm the font selection.Click to create a new character style.Click to create a new list style.Click to create a new paragraph style.Click to create a new tab position.Click to delete all tab positions.Click to delete the selected style.Click to delete the selected tab position.Click to edit the selected style.Click to rename the selected style.CloseClose AllClose current documentClose this windowColour:Compressed HTML Help file (*.chm)|*.chm|ComputerConfig entry name cannot start with '%c'.ConfirmConfirm registry updateConnecting...ContentsConversion to charset '%s' doesn't work.Copied to clipboard:"%s"Copies:Copy selectionCould not create temporary file '%s'Could not extract %s into %s: %sCould not find tab for idCould not locate file '%s'.Could not start document preview.Could not start printing.Could not transfer data to windowCouldn't acquire a mutex lockCouldn't add an image to the image list.Couldn't create a timerCouldn't create the overlay windowCouldn't find symbol '%s' in a dynamic libraryCouldn't get the current thread pointerCouldn't init the context on the overlay windowCouldn't load a PNG image - file is corrupted or not enough memory.Couldn't load sound data from '%s'.Couldn't open audio: %sCouldn't register clipboard format '%s'.Couldn't release a mutexCouldn't retrieve information about list control item %d.Couldn't save PNG image.Couldn't terminate threadCreate directoryCreate new directoryCu&tCurrent directory:Cut selectionCyrillic (ISO-8859-5)D sheet, 22 x 34 inDDE poke request failedDECIMALDELDELETEDIB Header: Encoding doesn't match bitdepth.DIB Header: Image height > 32767 pixels for file.DIB Header: Image width > 32767 pixels for file.DIB Header: Unknown bitdepth in file.DIB Header: Unknown encoding in file.DIVIDEDL Envelope, 110 x 220 mmDOWNDebug report "%s"Debug report couldn't be created.Debug report generation has failed.DecorativeDefault encodingDefault printerDeleteDelete A&llDelete StyleDelete TextDelete itemDelete selectionDelete style %s?Deleted stale lock file '%s'.Dependency "%s" of module "%s" doesn't exist.DesktopDeveloped by Dial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it.Did you know...DirectoriesDirectory '%s' couldn't be createdDirectory does not existDirectory doesn't exist.Display all index items that contain given substring. Search is case insensitive.Display options dialogDisplays help as you browse the books on the left.Do you want to overwrite the command used to %s files with extension "%s" ? Current value is %s, New value is %s %1Documentation by Don't SaveDoneDone.Double Japanese Postcard Rotated 148 x 200 mmDoubly used id : %dDownE sheet, 34 x 44 inENDENTERESCESCAPEEXECUTEEdit itemEnter a character style nameEnter a list style nameEnter a paragraph style nameEnter command to open file "%s":Entries foundEnvelope Invite 220 x 220 mmEnvironment variables expansion failed: missing '%c' at position %u in '%s'.ErrorError creating directoryError in reading image DIB.Error reading config options.Error saving user configuration data.Error: Esperanto (ISO-8859-3)Execution of command '%s' failedExecution of command '%s' failed with error: %ulExecutive, 7 1/4 x 10 1/2 inExporting registry key: file "%s" already exists and won't be overwritten.Extended Unix Codepage for Japanese (EUC-JP)Extraction of '%s' into '%s' failed.FFailed to access lock file.Failed to change video modeFailed to clean up debug report directory "%s"Failed to close file handleFailed to close lock file '%s'Failed to close the clipboard.Failed to close the display "%s"Failed to connect: missing username/password.Failed to connect: no ISP to dial.Failed to copy registry value '%s'Failed to copy the contents of registry key '%s' to '%s'.Failed to copy the file '%s' to '%s'Failed to copy the registry subkey '%s' to '%s'.Failed to create DDE stringFailed to create MDI parent frame.Failed to create a temporary file nameFailed to create an anonymous pipeFailed to create connection to server '%s' on topic '%s'Failed to create cursor.Failed to create directory "%s"Failed to create directory '%s' (Do you have the required permissions?)Failed to create registry entry for '%s' files.Failed to create the standard find/replace dialog (error code %d)Failed to display HTML document in %s encodingFailed to empty the clipboard.Failed to enumerate video modesFailed to establish an advise loop with DDE serverFailed to establish dialup connection: %sFailed to execute '%s' Failed to execute curl, please install it in PATH.Failed to find match for regular expression: %sFailed to get ISP names: %sFailed to get data from the clipboardFailed to get the local system timeFailed to get the working directoryFailed to initialize GUI: no built-in themes found.Failed to initialize MS HTML Help.Failed to initialize OpenGLFailed to insert text in the control.Failed to inspect the lock file '%s'Failed to join a thread, potential memory leak detected - please restart the programFailed to kill process %dFailed to load metafile from file "%s".Failed to load mpr.dll.Failed to load shared library '%s'Failed to lock the lock file '%s'Failed to modify file times for '%s'Failed to open CHM archive '%s'.Failed to open display "%s".Failed to open temporary file.Failed to open the clipboard.Failed to put data on the clipboardFailed to read PID from lock file.Failed to redirect child process input/outputFailed to redirect the child process IOFailed to register DDE server '%s'Failed to remember the encoding for the charset '%s'.Failed to remove debug report file "%s"Failed to remove lock file '%s'Failed to remove stale lock file '%s'.Failed to rename registry value '%s' to '%s'.Failed to rename the file '%s' to '%s' because the destination file already exists.Failed to rename the registry key '%s' to '%s'.Failed to retrieve data from the clipboard.Failed to retrieve file times for '%s'Failed to retrieve text of RAS error messageFailed to retrieve the supported clipboard formatsFailed to save the bitmap image to file "%s".Failed to send DDE advise notificationFailed to set FTP transfer mode to %s.Failed to set clipboard data.Failed to set permissions on lock file '%s'Failed to set temporary file permissionsFailed to set text in the text control.Failed to set thread priority %d.Failed to store image '%s' to memory VFS!Failed to terminate a thread.Failed to terminate the advise loop with DDE serverFailed to terminate the dialup connection: %sFailed to touch the file '%s'Failed to unlock lock file '%s'Failed to unregister DDE server '%s'Failed to update user configuration file.Failed to upload the debug report (error code %d).Failed to write to lock file '%s'FileFile '%s' already exists, do you really want to overwrite it?File '%s' already exists. Do you want to replace it?File couldn't be loaded.File errorFile name exists already.FilesFiles (%s)FilterFindFixed font:Fixed size face.
    bold italic Folio, 8 1/2 x 13 inFontFont &weight:Font size:Font st&yle:Font:Fork failedForward hrefs are not supportedFound %i matchesFrom:GIF: Invalid gif index.GIF: data stream seems to be truncated.GIF: error in GIF image format.GIF: not enough memory.GIF: unknown error!!!GTK+ themeGeneric PostScriptGerman Legal Fanfold, 8 1/2 x 13 inGerman Std Fanfold, 8 1/2 x 12 inGetProperty called w/o valid getterGetPropertyCollection called on a generic accessorGetPropertyCollection called w/o valid collection getterGo backGo forwardGo one level up in document hierarchyGo to home directoryGo to parent directoryGraphics art by Greek (ISO-8859-7)Gzip not supported by this version of zlibHELPHOMEHTML Help Project (*.hhp)|*.hhp|HTML anchor %s does not exist.HTML files (*.html;*.htm)|*.html;*.htm|Hebrew (ISO-8859-8)HelpHelp Browser OptionsHelp IndexHelp PrintingHelp TopicsHelp books (*.htb)|*.htb|Help books (*.zip)|*.zip|Help directory "%s" not found.Help file "%s" not found.Help: %sHomeHome directoryICO: Error in reading mask DIB.ICO: Error writing the image file!ICO: Image too tall for an icon.ICO: Image too wide for an icon.ICO: Invalid icon index.IFF: data stream seems to be truncated.IFF: error in IFF image format.IFF: not enough memory.IFF: unknown error!!!INSINSERTIf you have any additional information pertaining to this bug report, please enter it here and it will be joined to it:If you wish to suppress this debug report completely, please choose the "Cancel" button, but be warned that it may hinder improving the program, so if at all possible please do continue with the report generation. Ignoring value "%s" of the key "%s".Illegal Object Class (Non-wxEvtHandler) as Event SourceIllegal Parameter Count for ConstructObject MethodIllegal Parameter Count for Create MethodIllegal directory name.Illegal file specification.Image and mask have different sizes.Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dllImpossible to get child process inputImpossible to get permissions for file '%s'Impossible to overwrite the file '%s'Impossible to set permissions for the file '%s'IndentIndents && SpacingIndexIndian (ISO-8859-12)Initialization failed in post init, aborting.InsertInsert ImageInsert TextInvalid TIFF image index.Invalid display mode specification '%s'.Invalid geometry specification '%s'Invalid lock file '%s'.Invalid or Null Object ID passed to GetObjectClassInfoInvalid or Null Object ID passed to HasObjectClassInfoInvalid regular expression '%s': %sItalicItaly Envelope, 110 x 230 mmJPEG: Couldn't load - file is probably corrupted.JPEG: Couldn't save image.Japanese Double Postcard 200 x 148 mmJapanese Envelope Chou #3Japanese Envelope Chou #3 RotatedJapanese Envelope Chou #4Japanese Envelope Chou #4 RotatedJapanese Envelope Kaku #2Japanese Envelope Kaku #2 RotatedJapanese Envelope Kaku #3Japanese Envelope Kaku #3 RotatedJapanese Envelope You #4Japanese Envelope You #4 RotatedJapanese Postcard 100 x 148 mmJapanese Postcard Rotated 148 x 100 mmJustifiedJustify text left and right.KOI8-RKOI8-UKP_KP_ADDKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UPLEFTLandscapeLedger, 17 x 11 inLeftLeft (&first line):Left margin (mm):Left-align text.Legal Extra 9 1/2 x 15 inLegal, 8 1/2 x 14 inLetter Extra 9 1/2 x 12 inLetter Extra Transverse 9.275 x 12 inLetter Plus 8 1/2 x 12.69 inLetter Rotated 11 x 8 1/2 inLetter Small, 8 1/2 x 11 inLetter Transverse 8 1/2 x 11 inLetter, 8 1/2 x 11 inLightLine %lu of map file "%s" has invalid syntax, skipped.Line spacing:Link contained '//', converted to absolute link.List StyleList stylesLists font sizes in points.Lists the available fonts.Load %s fileLoading : Lock file '%s' has incorrect owner.Lock file '%s' has incorrect permissions.Log saved to the file '%s'.Lower case lettersLower case roman numeralsMDI childMENUMS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it.Ma&ximizeMatch caseMemory VFS already contains file '%s'!MenuMetal themeMi&nimizeModernModifiedModule "%s" initialization failedMonarch Envelope, 3 7/8 x 7 1/2 inMove downMove upNUM_LOCKNameNew &Character Style...New &List Style...New &Paragraph Style...New StyleNew directoryNew itemNewNameNextNext pageNoNo animation handler for type %ld defined.No entries found.No font for displaying text in encoding '%s' found, but an alternative encoding '%s' is available. Do you want to use this encoding (otherwise you will have to choose another one)?No font for displaying text in encoding '%s' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly)?No handler found for animation type.No handler found for image type.No image handler for type %d defined.No image handler for type %s defined.No matching page found yetNo soundNo unused colour in image being masked.No unused colour in image.No valid mappings found in the file "%s".Nordic (ISO-8859-10)NormalNormal face
    and underlined. Normal font:Not underlinedNote, 8 1/2 x 11 inOKObjects must have an id attributeOpen FileOpen HTML documentOpen file "%s"Operation not permitted.Option '%s' requires a value.Option '%s': '%s' cannot be converted to a date.OptionsOrientationPAGEDOWNPAGEUPPAUSEPCX: couldn't allocate memoryPCX: image format unsupportedPCX: invalid imagePCX: this is not a PCX file.PCX: unknown error !!!PCX: version number too lowPGDNPGUPPNM: Couldn't allocate memory.PNM: File format is not recognized.PNM: File seems truncated.PRC 16K 146 x 215 mmPRC 16K RotatedPRC 32K 97 x 151 mmPRC 32K RotatedPRC 32K(Big) 97 x 151 mmPRC 32K(Big) RotatedPRC Envelope #1 102 x 165 mmPRC Envelope #1 Rotated 165 x 102 mmPRC Envelope #10 324 x 458 mmPRC Envelope #10 Rotated 458 x 324 mmPRC Envelope #2 102 x 176 mmPRC Envelope #2 Rotated 176 x 102 mmPRC Envelope #3 125 x 176 mmPRC Envelope #3 Rotated 176 x 125 mmPRC Envelope #4 110 x 208 mmPRC Envelope #4 Rotated 208 x 110 mmPRC Envelope #5 110 x 220 mmPRC Envelope #5 Rotated 220 x 110 mmPRC Envelope #6 120 x 230 mmPRC Envelope #6 Rotated 230 x 120 mmPRC Envelope #7 160 x 230 mmPRC Envelope #7 Rotated 230 x 160 mmPRC Envelope #8 120 x 309 mmPRC Envelope #8 Rotated 309 x 120 mmPRC Envelope #9 229 x 324 mmPRC Envelope #9 Rotated 324 x 229 mmPRINTPage %dPage %d of %dPage SetupPage setupPagesPaper sizeParagraph stylesPassing a already registered object to SetObjectPastePaste selectionPeri&odPermissionsPipe creation failedPlease choose a valid font.Please choose an existing file.Please choose the page to display:Please choose which ISP do you want to connect toPlease install a newer version of comctl32.dll (at least version 4.70 is required but you have %d.%02d) or this program won't operate correctly.PortraitPostScript filePreview:Previous pagePrintPrint PreviewPrint Preview FailurePrint RangePrint SetupPrint in colourPrint spoolingPrint this pagePrint to FilePrinterPrinter command:Printer optionsPrinter options:Printer...Printer:Printing Printing ErrorPrinting page %d...Printing...Processing debug report has failed, leaving the files in "%s" directory.Quarto, 215 x 275 mmQuestionQuit this programRETURNRIGHTRead error on file '%s'ReadyRedo last actionRefreshRegistry key '%s' already exists.Registry key '%s' does not exist, cannot rename it.Registry key '%s' is needed for normal system operation, deleting it will leave your system in unusable state: operation aborted.Registry value '%s' already exists.RegularRelevant entries:RemoveRemove current page from bookmarksRenderer "%s" has incompatible version %d.%d and couldn't be loaded.Renumber ListRep&laceReplaceReplace &allReplace selectionReplace with:Revert to SavedRightRight margin (mm):Right-align text.RomanS&tandard bullet name:SCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACTSaveSave %s fileSave &As...Save current documentSave current document with a different filenameSave log contents to fileScriptSearchSearch directionSearch for:Search in all booksSearching...SectionsSeek error on file '%s'Seek error on file '%s' (large files not supported by stdio)Select &AllSelect a document templateSelect a document viewSelect regular or bold.Select regular or italic style.Select underlining or no underlining.SelectionSelects the list level to edit.Separator expected after the option '%s'.SetProperty called w/o valid setterSetup...Several active dialup connections found, choosing one randomly.Show &hidden directoriesShow &hidden filesShow about dialogShow allShow all items in indexShow hidden directoriesShow/hide navigation panelShows a Unicode subset.Shows a preview of the bullet settings.Shows a preview of the font settings.Shows a preview of the font.Shows a preview of the paragraph settings.Shows the font preview.Simple monochrome themeSingleSizeSize:SkipSlantSorry, could not open this file.Sorry, not enough memory to create a preview.Sorry, that name is taken. Please choose another.Sorry, the format for this file is unknown.Sound data are in unsupported format.Sound file '%s' is in unsupported format.SpacingStandardStatement, 5 1/2 x 8 1/2 inStatus:String To Colour : Incorrect colour specification : %sStyleStyle OrganiserStyle:SuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSymbolSymbol &font:SymbolsTABTIFF: Couldn't allocate memory.TIFF: Error loading image.TIFF: Error reading image.TIFF: Error saving image.TIFF: Error writing image.Tabloid Extra 11.69 x 18 inTabloid, 11 x 17 inTabsTeletypeTemplatesThai (ISO-8859-11)The FTP server doesn't support passive mode.The FTP server doesn't support the PORT command.The available bullet styles.The available styles.The bullet character.The character code.The charset '%s' is unknown. You may select another charset to replace it with or choose [Cancel] if it cannot be replacedThe clipboard format '%d' doesn't exist.The default style for the next paragraph.The directory '%s' does not exist Create it now?The file '%s' doesn't exist and couldn't be opened. It has been removed from the most recently used files list.The first line indent.The font colour.The font family.The font from which to take the symbol.The font point size.The font size in points.The font style.The font weight.The left indent.The line spacing.The list item number.The range to show.The report contains the files listed below. If any of these files contain private information, please uncheck them and they will be removed from the report. The required parameter '%s' was not specified.The right indent.The spacing after the paragraph.The spacing before the paragraph.The style name.The style on which this style is based.The style preview.The tab position.The tab positions.The text couldn't be saved.The value for the option '%s' must be specified.There was a problem during page setup: you may need to set a default printer.Thread module initialization failed: cannot store value in thread local storageThread module initialization failed: failed to create thread keyThread module initialization failed: impossible to allocate index in thread local storageThread priority setting is ignored.Tile &HorizontallyTile &VerticallyTimeout while waiting for FTP server to connect, try passive mode.Timer creation failed.Tip of the DayTips not available, sorry!To:Too many EndStyle calls!Too many colours in PNG, the image may be slightly blurred.Top margin (mm):Translations by Trying to remove file '%s' from memory VFS, but it is not loaded!Turkish (ISO-8859-9)TypeType a font name.Type a size in points.Type must have enum - long conversionUPUS Std Fanfold, 14 7/8 x 11 inUS-ASCIIUnable to open requested HTML document: %sUnable to play sound asynchronously.UndeleteUnderlinedUndo last actionUnexpected characters following option '%s'.Unexpected parameter '%s'UnicodeUnicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)UnknownUnknown DDE error %08xUnknown Object passed to GetObjectClassInfoUnknown dynamic library errorUnknown encoding (%d)Unknown long option '%s'Unknown option '%s'Unmatched '{' in an entry for mime type %s.Unnamed commandUnsupported clipboard format.Unsupported theme '%s'.UpUpper case lettersUpper case roman numeralsUsage: %sUse the current alignment setting.Validation conflictView files as a detailed viewView files as a list viewViewsWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHTWarning: Western European (ISO-8859-1)Western European with Euro (ISO-8859-15)Whether the font is underlined.Whole wordWhole words onlyWin32 themeWin32s on Windows 3.1Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arabic (CP 1256)Windows Baltic (CP 1257)Windows CE (%d.%d)Windows Central European (CP 1250)Windows Cyrillic (CP 1251)Windows Greek (CP 1253)Windows Hebrew (CP 1255)Windows Korean (CP 949)Windows MEWindows Thai (CP 874)Windows Turkish (CP 1254)Windows Western European (CP 1252)Windows/DOS OEM (CP 437)Write error on file '%s'XML parsing error: '%s' at line %dXPM: Malformed pixel data!XPM: incorrect colour description in line %dXPM: incorrect header format!XPM: malformed colour definition '%s' at line %d!XPM: truncated image data at line %d!YesYou cannot Clear an overlay that is not initedYou cannot Init an overlay twiceYou cannot add a new directory to this section.Zoom &InZoom &OutZoom to &Fita DDEML application has created a prolonged race condition.a DDEML function was called without first calling the DdeInitialize function, or an invalid instance identifier was passed to a DDEML function.a client's attempt to establish a conversation has failed.a memory allocation failed.a parameter failed to be validated by the DDEML.a request for a synchronous advise transaction has timed out.a request for a synchronous data transaction has timed out.a request for a synchronous execute transaction has timed out.a request for a synchronous poke transaction has timed out.a request to end an advise transaction has timed out.a server-side transaction was attempted on a conversation that was terminated by the client, or the server terminated before completing a transaction.a transaction failed.altan application initialized as APPCLASS_MONITOR has attempted to perform a DDE transaction, or an application initialized as APPCMD_CLIENTONLY has attempted to perform server transactions.an internal call to the PostMessage function has failed. an internal error has occurred in the DDEML.an invalid transaction identifier was passed to a DDEML function. Once the application has returned from an XTYP_XACT_COMPLETE callback, the transaction identifier for that callback is no longer valid.assuming this is a multi-part zip concatenatedattempt to change immutable key '%s' ignored.bad arguments to library functionbad signaturebad zipfile offset to entrybinaryboldbuffer is too small for Windows directory.can't close file '%s'can't close file descriptor %dcan't commit changes to file '%s'can't create file '%s'can't delete user configuration file '%s'can't determine if the end of file is reached on descriptor %dcan't execute '%s'can't find central directory in zipcan't find length of file on file descriptor %dcan't find user's HOME, using current directory.can't flush file descriptor %dcan't get seek position on file descriptor %dcan't load any font, abortingcan't open file '%s'can't open global configuration file '%s'.can't open user configuration file '%s'.can't open user configuration file.can't re-initialize zlib deflate streamcan't re-initialize zlib inflate streamcan't read from file descriptor %dcan't remove file '%s'can't remove temporary file '%s'can't seek on file descriptor %dcan't write buffer '%s' to disk.can't write to file descriptor %dcan't write user configuration file.checksum errorchecksum failure reading tar header blockcompression errorconversion to 8-bit encoding failedctrldatedecompression errordefaultdump of the process state (binary)eighteentheightheleventhentry '%s' appears more than once in group '%s'error in data formaterror opening '%s'error opening fileerror reading zip central directoryerror reading zip local headererror writing zip entry '%s': bad crc or lengthfailed to flush the file '%s'fifteenthfifthfile '%s', line %d: '%s' ignored after group header.file '%s', line %d: '=' expected.file '%s', line %d: key '%s' was first found at line %d.file '%s', line %d: value for immutable key '%s' ignored.file '%s': unexpected character %c at line %d.filesfirstfont sizefourteenthfourthgenerate verbose log messagesimageincomplete header block in tarincorrect event handler string, missing dotincorrect size given for tar entryinvalid data in extended tar headerinvalid message box return valueinvalid zip fileitaliclightlocale '%s' cannot be set.midnightnineteenthninthno DDE error.no errornonamenoonnumobjects cannot have XML Text Nodesout of memoryprocess context descriptionread errorreading zip stream (entry %s): bad crcreading zip stream (entry %s): bad lengthreentrancy problem.secondseek errorseventeenthseventhshiftshow this help messagesixteenthsixthspecify display mode to use (e.g. 640x480-16)specify the theme to usestored file length not in Zip headerstrtar entry not opentenththe response to the transaction caused the DDE_FBUSY bit to be set.thirdthirteenthtodaytomorrowtranslator-creditstwelfthtwentiethunderlinedunexpected " at position %d in '%s'.unexpected end of fileunknownunknown class %sunknown errorunknown error (error code %08x).unknown seek originunknown-%dunnamedunnamed%dunsupported Zip compression methodusing catalog '%s' from '%s'.write errorwxGetTimeOfDay failed.wxWidgets could not open display for '%s': exiting.wxWidgets could not open display. Exiting.xxxxyesterdayzlib error %d~Project-Id-Version: wxWidgets 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2013-10-01 19:04+0200 PO-Revision-Date: 2009-03-25 10:12-0000 Last-Translator: Julian Smart Language-Team: wxWidgets translators Language: es MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Poedit-Language: Spanish X-Poedit-Country: SPAIN X-Poedit-SourceCharset: utf-8 Por favor, envie este informe al mantenedor del programa, gracias Gracias y perdón por las molestias (error %ld: %s) - Previsualizaciónnegritacursiva ligeraSobre #10, 4 1/8 x 9 1/2 inSobre #11, 4 1/2 x 10 3/8 inSobre #12, 4 3/4 x 11 inSobre #14, 5 x 11 1/2 inSobre #9, 3 7/8 x 8 7/8 in%i de %i%s (o %s)%s Error%s InformaciónAviso de %s%s did not fit the tar header for entry '%s'archivos %s (%s)|%s&Acerca deTamaño re&al&Alinear&Aplicar&Aplicar Estilo&Organizar iconos&Atrás&Basado en:&NegritaEstilo de &viñeta:&Cancelar&Cascada&Código de caracter:&Limpiar&Cerrar&Color:&Copiar&Vista previa del informe de depuración:&Eliminar&Eliminar Estilo...&DetallesA&bajo&Editar&Editar Estilo...&Archivo&Buscar&Finalizar&Fuente:&Fuente para el Nivel...&Fuente:Adelante&Desde:&Ayuda&Inicio&Escalonado (décimas de mm)&IndeterminadoÍnd&iceCurs&iva&Justificado&Izquierda&Izquierda:Nivel de &Lista:&Log&Mover&Nuevo&Siguiente&Siguiente >&Siguiente Sugerencia&Siguiente Estilo&No&Notas:&Número:&AceptarA&brir...&PegarTamaño de &punto:&Posición (décimas de mm):&Preferencias&AnteriorIm&primir...&Propiedades&Salir&Rehacer&Rehacer &Renombrar Estilo...&Sustituir&Recomenzar numeración&Restaurar&Derecha&Derecha:&Guardar&Mostrar sugerencias al inicio&Tamaño&Tamaño:&Espaciado (décimas de mm)&Detener&TachadoE&stilo:E&stilos:&Subjuego:&Símbolo:Subrayado&Subrayado:&Deshacer&Deshacer &No escalonadoArribaPeso&Ventana&Sí'%s' tiene '..' adicional, se ignora.'%s' es inválido'%s' no es un valor numérico correcto para el parámetro '%s'.'%s' no es un catálogo de mensajes válido.'%s' es probablemente un archivo binario.'%s debe ser numérico.'%s' debe contener sólo caracteres ASCII.'%s' debe contener sólo caracteres de texto.'%s debe contener sólo caracteres alfanuméricos.(*)(Ayuda)(Ninguno)(Texto normal)(favoritos)(ninguno)**)+-1.510 x 11 in10 x 14 in11 x 17 in12 x 11 in15 x 11 in2Sobre 6 3/4, 3 5/8 x 6 1/2 in9 x 11 in: ¡el archivo no existe!: conjunto de caracteres desconocido: codificación desconocida< &AtrásNegrita cursiva.
    negrita cursiva subrayada
    Negrita. Cursiva. >Se ha generado un informe de depuración en el directorio Una colección no vacía debe consistir en nodos del tipo 'elemento'Un nombre de viñeta estándar.A2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Transversal 322 x 445 mmA3 Girada 420 x 297 mmA3 Transversal 297 x 420 mmHoja A3, 297 x 420 mmA4 Extra 9.27 x 12.69 inA4 Plus 210 x 330 mmA4 Girada 297 x 210 mmA4 Transversal 210 x 297 mmHoja A4, 210 x 297 mmHoja Pequeña A4, 210 x 297 mmA5 Extra 174 x 235 mmA5 Girado 210 x 148 mmA5 Transversal 148 x 210 mmHoja A5, 148 x 210 mmA6 105 x 148 mmA6 Girada 148 x 105 mmABCDEFGabcdefg12345AÑADIRASCIIAñadirAñadir página actual a favoritosAñadir a colores personalizadosSe llamó a AddToPropertyCollection sobre un accedente genéricoSe llamó a AddToPropertyCollection sin añadidor válidoAñadiendo libro %sDespués de un párrafo:Alinear a la izquierdaAlinear a la derechaTodoTodos los archivos (%s)|%sTodos los archivos (*)|*Todos los archivos (*.*)|*Todos los estilosSe pasó Objeto Ya Registrado a SetObjectClassInfoLlamando al ISPArchivo de animación no es de tipo %ld.¿Añadir el log al archivo '%s'? (elegir [No] sobreescribirá el archivo)?ÁrabeArabic (ISO-8859-6)AtributosFuentes disponibles.B4 (ISO) 250 x 353 mmB4 (JIS) Girado 364 x 257 mmSobre B4, 250 x 353 mmHoja B4, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Girado 257 x 182 mmB5 (JIS) Transversal 182 x 257 mmSobre B5, 176 x 250 mmHoja B5, 182 x 257 mmB6 (JIS) 128 x 182 mmB6 (JIS) Girado 182 x 128 mmSobre B6, 176 x 125 mmATRÁSBMP: No se pudo reservar memoria.BMP: No se pudo guardar imagen no válida.BMP: No se pudo escribir el mapa de color RGB.BMP: No se pudieron escribir datos.BMP: No se pudo escribir la cabecera (Bitmap) del archivo.BMP: No se pudo escribir la cabecera (BitmapInfo) del archivo.BMP: wxImage no tiene su propia wxPalette.Color de fondoBaltic (ISO-8859-13)Baltic (old) (ISO-8859-4)Antes de un párrafo:Mapa de bitsGruesaMargen inferior (mm):&Alineación de viñeta:Estilo de viñetaViñetasHoja C, 17 x 22 in&LimpiarC&olor:Sobre C3, 324 x 458 mmSobre C4, 229 x 324 mmSobre C5, 162 x 229 mmSobre C6, 114 x 162 mmSobre C65, 114 x 229 mmCANCELARMAYÚSCULAS¡El manejador CHM actualmente sólo permite archivos locales!BORRARCOMANDOCa&pitularesNo se puede deshacer No se puede cerrar la clave del registro '%s'No se pueden copiar valores del tipo no soportado %d.No se puede crear la clave del registro '%s'No se puede crear el hilo de ejecuciónNo se puede crear la ventana de clase %sNo se puede eliminar la clave '%s'No se puede elimininar el archivo INI '%s'No se puede eliminar el valor '%s' de la clave '%s'No se pueden enumerar las subclaves de la clave '%s'No se pueden enumerar los valores de la clave '%s'No se puede exportar el valor del tipo no soportado %d.No se puede encontrar la posición actual en el archivo '%s'No se pudo obtener información de la clave del registro '%s'No se puede inicializar el flujo de compresión de zlib.No se puede inicializar el flujo de descompresión de zlib.No se puede abrir la clave del registro '%s'No se puede leer desde el flujo de descompresión %sImposible leer flujo de descompresión: EOF inesperado en el flujo subyacente.No se puede leer el valor de '%s'No se puede leer el valor de la clave '%s'No se puede guardar imagen en archivo '%s': extensión desconocida.No se pueden guardar los contenidos del log a un archivo.No se puede establecer la prioridad del hilo de ejecuciónNo se puede establecer valor de '%s'No se puede escribir en el flujo de compresión %sCancelarNo se puede crear el mutexNo se pueden enumerar los archivos '%s'No se pueden enumerar los archivos en carpeta '%s'No se puede encontrar conexión activa: %sNo se puede localizar el archivo de libreta de direccionesNo se puede obtener un rango de prioridades para la política de planificación %d.No se puede obtener el nombre de la máquina (hostname)No se puede obtener el nombre oficial de la máquina (hostname)No se puede colgar - no hay conexiones activas.No se puede inicializar OLENo se puede cargar el icono de '%s'.No puede cargar el archivo de recursos %s.No se puede abrir el documento HTML: %sNo se puede abrir el libro de ayuda HTML: %sNo se puede abrir el archivo de contenidos: %s¡No se puede abrir el archivo para impresión PostScript!No se puede abrir el archivo índice: %sNo se puede imprimir una página vacía.¡No se puede leer tipo desde '%s'!No se puede continuar el hilo de ejecución %luNo se puede recuperar la política de planificación de hilos de ejecución.No se puede empezar el hilo de ejecución: error al escribir TLS.No se puede suspender el hilo de ejecución %luNo se puede esperar a la finalización del hilo de ejecuciónSensible a May/MinCeltic (ISO-8859-14)Cen&tradoCentradoEuropa Central (ISO-8859-2)CentrarTexto centrado.&Elegir...Cambiar Estilo de ListaCambiar EstiloEstilos de caracterMarcar para añadir un punto después de la viñeta.Marcar para añadir un paréntesis derecho.Marcar para encerrar la viñeta entre paréntesis.Marcar para establecer la fuente negrita.Marcar para establecer la fuente cursiva.Marcar para establecer la fuente subrayada.Marcar para reiniciar numeraciónElegir ISP al que conectarElegir colorElegir fuenteSe ha detectado dependencia circular concerniente al módulo "%s".&CerrarEliminar los contenidos del logHaga clic para aplicar el estilo seleccionado.Haga click para buscar un símbolo.Haga clic para cancelar los cambios a la fuente.Haga clic para cancelar selección de fuenteHaga clic para cambiar el color de la fuente.Haga clic para cambiar el color del texto.Haga clic para elegir la fuente para este nivel.Haga clic para cerrar esta ventana.Haga clic para confirmar los cambios a la fuente.Haga clic para confirmar la selección de fuenteHaga click para crear un nuevo estilo de caracter.Haga clic para carear una nueva lista de estilo.Haga click para crear un nuevo estilo de párrafo.Haga clic para crear una nueva posición de tabulador.Haga clic para borrar todas las posiciones de tabulador.Haga clic para borrar el estilo seleccionado.Haga clic para borrar la posición de tabulador seleccionada.Haga clic para editar el estilo seleccionado.Haga clic para renombrar el estilo seleccionado.CerrarCerrar TodoCerrar documento actual.Cerrar esta ventanaColor:Archivo de ayuda HTML comprimido (*.chm)|*.chm|OrdenadorUn nombre de entrada de configuracón no puede empezar por '%c'.ConfirmarConfirmar actualización del registroConectando...ContenidosConversión a juego de caracteres '%s' no funciona.Copiado en el portapapeles:"%s"Copias:Copiar selecciónNo se puedo crear el archivo temporal '%s'No se pudo extraer %s en %s: %sNo se puede encontrar pestaña para idNo se pudo encontrar el archivo '%s'.No puede iniciarse la previsualización del documento.No se puede iniciar la impresión.No puede transferir datos a la ventanaNo se pudo adquirir un bloqueo de mutexNo se puede añadir imagen a lista de imagenes.No se puede crear un temporizadorNo se pudo crear la ventana de superposiciónNo se pudo encontrar el símbolo '%s' en la librería dinámicaNo se pudo obtener el puntero al hilo de ejecución actualNo se pudo inicializar el contexto en la ventana de superposiciónNo se pudo abrir imagen PNG - el archivo está corrupto o no hay suficiente memoria.No se pudieron cargar los datos de sonido desde '%s'.No se pudo abrir el dispositivo de sonido '%s'No se puede registrar formato de portapapeles '%s'No se pudo liberar un mutexNo se puede recuperar información sobre el elemento %d de la lista.No se puede guardar la imagen PNG.No se puedo finalizar el hilo de ejecuciónCrear directorioCrear nuevo directorio&CortarDirectorio actual:Cortar selecciónCirílico (ISO-8859-14)Hoja D, 22 x 34 inFallo en la petición de rastreo DDEDECIMALBORRBORRARCabecera DIB: La codificación no coincide con la profundidad de bits.Cabecera DIB: Altura de la imagen > 32767 pixels por archivo.Cabecera DIB: Anchura de imagen > 32767 pixels por archivo.Cabecera DIB: Profundidad de color desconocida en archivo.Cabecera DIB: Codificación desconocida en archivo.DIVIDESobre DL, 110 x 220 mmABAJOInforme de depuración "%s"El informe de depuración no pudo crearse.No se pudo crear el informe de depuración.DecorativeCodificación predeterminadaImpresora predeterminadaEliminarEliminar &TodoEliminar EstiloEliminar Texto&Eliminar elementoBorrar selección¿Eliminar estilo %s?Archivo antiguo de bloqueo '%s' eliminado.No existe la dependencia "%s" de módulo "%s".EscritorioProgramado porLas funciones de marcado no están disponibles porque los servicios de acceso remoto (RAS) no están instalados. Por favor instálelos.¿Sabías que...?DirectoriosNo pudo crearse directorio '%s'El directorio no existeEl directorio no existeMostrar todos los elementos del índice que contengan la subcadena dada. La búsqueda es Insensitiva.Mostrar el diálogo de opcionesMuestra la ayuda con el navegador de libros a la izquierda.¿Quiere sobreescribir el comando usado en archivos %s con la extensión "%s"? Valor actual es %s, Nuevo valor es %s %1Documentación por No guardarHechoHecho.Tarjeta Japonesa Doble Girada 148 x 200 mmIdentificador duplicado: %dAbajoHoja E, 34 x 44 inENDINTROESCESCAPEEJECUTAREditar elementoIntroduzca un nombre de estilo de caracterIntroduzca un nombre de estilo de listaIntroduzca un nombre de estilo de párrafoIntroduzca comando para abrir archivo "%s":Documentos encontradosEnvelope Invite 220 x 220 mmFallo en expansión de variable de entorno: falta '%c' en la posición %u en '%s'.ErrorError creando directorioError al leer imagen DIB.Error al leer las opciones de configuración.Error al guardar los datos de configuración del usuario.Error: Esperanto (ISO-8859-3)Falló la ejecución del comando '%s'Falló la ejecución del comando '%s' con el error: %ulExecutive, 7 1/4 x 10 1/2 inExportando clave de registro: archivo "%s" existente que no se sobreescribirá.Página de Códigos Unix Extendida para Japonés (EUC-JP)Falló la extracción de '%s' de '%s'FFallo al acceder al archivo de bloqueo.Error al cambiar el modo de vídeoNo se pudo vaciar el directorio de informe de depuración "%s"Error al cerrar el manejador del archivoNo se pudo cerrar el archivo de bloqueo '%s'Error al cerrar el portapapeles.No se pudo cerrar el display "%s"Fallo al conectar: faltan usuario/contraseña.Fallo al conectar: no hay ISP al que llamar.Error al copiar el valor '%s' del registroFallo al copiar los contenidos de la clave del registro '%s' a '%s'.No se pudo copiar el archivo '%s' a '%s'Error al copiar la subclave del registro '%s' en '%s'.Fallo al crear cadena DDEFallo al crear panel MDI padreNo se pudo crear un nombre temporal de archivoFallo al crear canal anónimoFallo al crear la conexión al servidor '%s' en '%s'Fallo al crear el cursor.No se pudo crear el directorio "%s"Fallo al crear directorio '%s' (¿Tiene los permisos necesarios?)No se pudo crear entrada del registro para los archivos '%s'.Fallo al crear el diálogo estándar de buscar/reemplazar (código error %d)Error al mostrar el documento HTML con codificación %sFallo al vaciar el portapapeles.Fallo al enumerar los modos de vídeo.Fallo al establecer un lazo de aviso con el servidor DDEFallo al establecer la conexión: %sError al ejecutar '%s' Fallo al ejecutar bucle, por favor, instálelo en el PATH.Failed to find match for regular expression: %sError al obtener nombres de ISP: %sError al obtener datos del portapapelesError al obtener el sistema horario localError al obtener el directorio de trabajoFallo al inicializar GUI: no se encontraron temas.Fallo al inicializar Ayuda MS HTML.Fallo al inicializar OpenGL.No se pudo insertar texto en el control.Error al inspeccionar el archivo de bloqueo '%s'Error al sincronizar con un hilo de ejecución, pérdida potencial de memoría detectada - por favor reinicie el programaError al matar el proceso %dNo se pudo abrir el metaarchivo desde el archivo "%s".Error al cargar mpr.dll.No se pudo abrir la librería dinámica '%s'No se pudo bloquear el bloqueo del archivo '%s'No se pudo modificar la horas del archivo para '%s'Error al abrir el archivo CHM '%s'No se pudo abrir display "%s".No se pudo abrir archivo temporal.Error al abrir el portapapeles.Error al poner datos en el portapapelesError al leer PID de archivo de bloqueo.Error en la redirección de la entrada/salida del proceso hijoError en la redirección de la entrada/salida del proceso hijoError al registrar el servidor DDE '%s'Error al recordar la codificación para el conjunto de caracteres '%s'.No se pudo eliminar el archivo de informe de depuración '%s'No se pudo quitar el archivo de bloqueo '%s'No se pudo eliminar el antiguo archivo de bloqueo '%s'.Fallo al renombrar valor del registro '%s' a '%s'.No se pudo renombrar el archivo '%s' a '%s' porque el archivo de destino ya existe.Error al renombrar la clave del registro '%s' a '%s'.Error al obtener datos del portapapeles.No se pudo obtener horas del archivo para '%s'Fallo al recuperar el mensaje de error de RASFallo al recuperar los formatos soportados del portapapelesNo se pudo guardar la imagen de mapa de bits en el archivo "%s".Fallo al enviar notificación de aviso DDEError al establecer modo de transferencia FTP a '%s'Error al colocar datos en el portapapeles.No se pudieron establecer permisos para el archivo de bloqueo '%s'No se pudieron cambiar permisos del archivo temporalNo se pudo colocar texto en el control de texto.Error al establecer la prioridad del hilo de ejecución %d.¡Error al almacenar la imagen '%s' en VFS de memoria!Error al terminar un hilo de ejecución.Error al terminar el bucle de aviso con el servidor DDEError al terminar la conexión: %sNo se pudo retocar' el archivo '%s'No se pudo desbloquear el archivo de bloqueo '%s'Error al desregistrar el servidor DDE '%s'No se pudo actualizar el archivo de configuración de usuario.Fallo al enviar el informe de depuración (código error %d)No se pudo escribir al bloquear el archivo '%s'ArchivoEl archivo '%s' ya existe, ¿realmente quiere sobreescribirlo?El archivo '%s' ya existe. ¿Realmente quiere sobreescribirlo?No se pudo abrir el archivo.Error de archivoYa existe un archivo con el mismo nombre.ArchivosArchivos (%s)FiltroBuscarFuente fija:Monoespaciado.
    negrita cursiva Folio, 8 1/2 x 13 inFuente&Peso de la fuente:Tamaño de fuente:&Estilo de fuente:Fuente:Error en bifurcación de proceso (fork)Las hiper-referencias del tipo "forward" no están soportadasEncontrada(s) %i coincidenciasDe:GIF: Indice de gif no válido.GIF: flujo de datos parece haberse truncado.GIF: error en formato de imagen GIF.GIF: memoria insuficiente.¡¡GIF: error desconocido!!Tema GTK+PostScript genéricaGerman Legal Fanfold, 8 1/2 x 13 inGerman Std Fanfold, 8 1/2 x 12 inSe llamó a GetProperty sin un obtenedor válidoSe llamó a GetPropertyCollection sobre un accedente genéricoSe llamó a GetPropertyCollection sin un obtenedor de colección válidoAtrásAdelanteSubir un nivel en la jerarquía del documentoIr al directorio principalIr al directorio superiorGráficos porGreek (ISO-8859-7)Gzip no está soportado por esta versión de zlibAYUDAINICIOProyecto de ayuda HTML (*.hhp)|*.hhp|El anclaje HTML %s no existe.Archivos HTML (*.html;*.htm)|*.html;*.htm|Hebrew (ISO-8859-8)AyudaOpciones del Navegador de la AyudaIndice de la AyudaAyuda de ImpresiónTemas de ayudaLibros de ayuda (*.htb)|*.htb|Libros de ayuda (*.zip)|*.zip|Directorio de ayuda "%s" no encontrado.Archivo de ayuda "%s" no encontrado.Ayuda: %sInicioCarpeta de inicioICO: Error al leer máscara DIB.ICO: ¡Error al escribir el archivo de imagen!ICO: Imagen demasiado alta para un icono.ICO: Imagen demasiado ancha para un icono.ICO: Indice de icono no válido.IFF: el flujo de datos parece truncado.IFF: error en formato de imagen IFF.IFF: memoria insuficiente.IFF: ¡¡¡error desconocido!!!INSINSERTSi tiene alguna información adicional concerniente a este informe de error, por favor, introdúzcalo aquí y será adjuntado:Si desea eliminar este informe de depuración completamente, por favor, elija el botón "Cancelar", pero sepa que ésto no ayuda a la mejora del programa, por tanto, si es posible, por favor, continue con la generación del informe. Se ignorará el valor "%s" de la clave "%s".Clase de objeto (Non-wxEvtHandler) como Event Source ilegalNúmero ilegal de parámetros para el método ConstructObjectNúmero ilegal de parámetros para el método CreateNombre de directorio ilegalEspecificación de archivo ilegalLa imagen y la máscara tienen tamaños diferentesImposible crear control 'rich edit', se usará el control de texto simple. Por favor instale riched32.dllImposible obtener la entrada del proceso hijoImposible obtener permisos para el archivo '%s'Imposible sobreescribir el archivo '%s'Imposible establecer permisos para el archivo '%s'EscalonadoEspaciado && de EscalonadosÍndiceIndian (ISO-8859-12)Fallo en inicialización en post init, abortando.InsertarInsertar ImagenInsertar TextoÍndice de imagen TIFF no válido.Especificación de 'display' no válida: '%s'.Especificación de geometría no válida: '%s'Archivo de bloqueo '%s' no válido.Identificador de objeto pasado a GetObjectClassInfo nulo o inválidoIdentificador de objeto pasado a HasObjectClassInfo nulo o inválidoExpresión regular no válida '%s': %sItálicaSobre Italy, 110 x 230 mmJPEG: No se pudo abrir - el archivo está probablemente corrupto.JPEG: No pudo guardarse imagen.Tarjeta Japonesa Doble 200 x 148 mmJapanese Envelope Chou #3Japanese Envelope Chou #3 GiradoJapanese Envelope Chou #4Japanese Envelope Chou #4 GiradoJapanese Envelope Kaku #2Japanese Envelope Kaku #2 GiradoJapanese Envelope Kaku #3Japanese Envelope Kaku #3 GiradoJapanese Envelope You #4Japanese Envelope You #4 GiradoTarjeta Japonesa 100 x 148 mmTarjeta Japonesa Girada 148 x 100 mmJustificadoJustificar texto a izquierda y derecha.KOI8-RKOI8-UKP_KP_SUMARKP_DECIMALKP_SUPRKP_DIVIDIRKP_ABAJOKP_FINKP_INTROKP_IGUALKP_INICIOKP_INSERTKP_IZQUIERDAKP_MULTIPLICARKP_SIGUIENTEKP_AVPÁGKP_REPÁGKP_DERECHAKP_SEPARADORKP_ESPACIOKP_RESTARKP_TABKP_ARRIBAIZQUIERDAHorizontalLibro Mayor, 17 x 11 inIzquierdaIzquierda (&primera línea):Margen Izquierdo (mm):Texto alineado a la izquierda.Legal Extra 9 1/2 x 15 inLegal, 8 1/2 x 14 inSobre Extra 9 1/2 x 12 inSobre Extra Transversal 9.275 x 12 inSobre Plus 8 1/2 x 12.69 inSobre Girado 11 x 8 1/2 inSobre Pequeño, 8 1/2 x 11 inSobre Transversal 8 1/2 x 11 inSobre, 8 1/2 x 11 inLigeraLínea %lu de archivo de mapa "%s" tiene síntaxis no válida, saltado.Espaciado de línea:El enlace contiene '//', convertido a enlace absoluto.Estilo de ListaEstilos de ListaTamaños de fuente de listas en puntos.Muestra las fuentes disponibles.Abrir el archivo %sCargando :El archivo de bloqueo '%s' tiene un propietario incorrecto.El archivo de bloqueo '%s' tiene permisos incorrectos.Log guardado en archivo '%s'.Letras minúsculasNúmeros romanos en minúsculaVentana hija MDIMENULa funciones de Ayuda MS HTML no están disponibles porque la librería de Ayuda MS HTML no está instalada. Por favor instálela.Ma&ximizarCoincidir may./min.¡VFS en memoria ya contiene el archivo '%s'!MenúTema MetalMi&nimizarModernModificadoNo se pudo inicializar Módulo "%s"Sobre Monarch, 3 7/8 x 7 1/2 inMover hacia abajoSubirBLOQ_NUMNombreNuevo Estilo de &Caracter...Nuevo Estilo de &Lista...Nuevo Estilo de &Párrafo...Nuevo EstiloCrear directorioElemento nuevoNuevo NombreSiguientePágina siguienteNoNo hay definido ningún manipulador de animación para tipo %ld.No se han encontrado documentos.No hay un tipo de letra para la codificación '%s', pero existe una codificación '%s' alternativa. ¿Le gustaría usar esta codificación (de otra forma deberá elegir otra)?No existe un tipo de letra para la codificación '%s'. ¿Le gustaría seleccionar una fuente para usarse con esta codificación (de otra forma el texto con esta codificación no se mostrará correctamente)?No se ha encontrado ningún manipulador para el tipo de animación.No se ha encontrado ningún manipulador para el tipo de imagen.No hay definido ningún manipulador de imagen para tipo %d.No hay definido ningún manipulador de imagen para tipo %s.Todavía no se ha encontrado una página con coincidenciasNo hay ningún sonidoNo hay ningún color sin utilizar en la imagen que se está enmascarandoNo hay ningún color sin usar en la imagen.No se han encontrado mapeados válidos en el archivo "%s".Nordic (ISO-8859-10)NormalNnormal
    y subrayado. Fuente normal:No subrayadoNota, 8 1/2 x 11 inAceptarLos objetos deben tener un atributo de identificaciónAbrir archivoAbrir documento HTMLAbrir archivo "%s"Operación no permitidaEl parámetro '%s' necesita un valor.El parámetro '%s': '%s' no puede convertirse a fecha.OpcionesOrientaciónAVANZAPÁGINARETROCEDEPÁGINAPAUSAPCX: no pudo reservarse memoriaPCX: formato de imagen no soportadoPCX: imagen inválidaPCX: éste no es un archivo PCX.PCX: ¡¡¡error desconocido!!!PCX: número de versión demasiado antiguaAVPÁGREPÁGPNM: No se pudo reservar memoria.PNM: Formato de archivo no reconocido.PNM: El archivo parece estar truncado.PRC 16K 146 x 215 mmPRC 16K GiradoPRC 32K 97 x 151 mmPRC 32K GiradoPRC 32K(Grande) 97 x 151 mmPRC 32K(Grande) GiradoPRC Envelope #1 102 x 165 mmPRC Envelope #1 Girado 165 x 102 mmPRC Envelope #10 324 x 458 mmPRC Envelope #10 Girado 458 x 324 mmPRC Envelope #2 102 x 176 mmPRC Envelope #2 Girado 176 x 102 mmPRC Envelope #3 125 x 176 mmPRC Envelope #3 Girado 176 x 125 mmPRC Envelope #4 110 x 208 mmPRC Envelope #4 Girado 208 x 110 mmPRC Envelope #5 110 x 220 mmPRC Envelope #5 Girado 220 x 110 mmPRC Envelope #6 120 x 230 mmPRC Envelope #6 Girado 230 x 120 mmPRC Envelope #7 160 x 230 mmPRC Envelope #7 Girado 230 x 160 mmPRC Envelope #8 120 x 309 mmPRC Envelope #8 Girado 309 x 120 mmPRC Envelope #9 229 x 324 mmPRC Envelope #9 Girado 324 x 229 mmIMPRIMIRPágina %dPágina %d de %dConfigurar PáginaConfigurar páginaPáginasTamaño del papelestilos de párrafoPaso de un objeto ya registrado a SetObjectPegarPegar selecciónPeri&odoPermisosError en la creación de la tuberíaPor favor elija una fuente válida.Por favor, elija un archivo existente.Por favor elija la página que quiere presentar:Por favor elija el ISP al que se quiere conectarPor favor instale una versión más nueva de comctl32.dll (se necesita al menos la versión 4.70 pero Ud. tiene %d.%02d) o este programa no funcionará correctamente.VerticalArchivo PostScriptPrevisualización:Página anteriorImprimirPrevisualización de la impresiónError en previsualización de impresiónRango de ImpresiónConfiguración de ImpresiónImpresión en colorCola de ImpresiónImprimir esta páginaImprimir a Archivo ImpresoraComando de impresión: Opciones de impresiónOpciones de impresora:Impresora...Impresora:ImprimiendoError de impresiónImprimiendo página %d...Imprimiendo...El procesado del informe de depuración ha fallado, los archivos quedan en el directorio "%s".Quarto, 215 x 275 mmPreguntaSalir de este programaRETURNDERECHAError de lectura en el archivo '%s'ListoRehacer la última acciónRefrescarLa clave del registro '%s' ya existe.La clave del registro '%s' no existe, no se puede renombrar.La clave del registro '%s' se necesita para el funcionamiento normal del sistema, si se elimina puede dejar el sistema en un estado inestable: operación abortada.La clave del registro '%s' ya existe.NormalDocumentos significantivos:EliminarEliminar la página actual de favoritosEl renderizador "%s" tiene una versión %d.%d incompatible y no se ha podido abrir.Renumerar Lista&SustituirSustituirSustituir &todoReemplazar selecciónSustituir por:Recuperar versión guardadaDerechaMargen derecho (mm):Texto alineado a la derecha.RomanNombre de viñeta es&tándar:BLOQ_DESPLSELECCIONARSEPARADORIMP_PANTESPACIOESPECIALRESTAR&GuardarGuardar el archivo %sGuardar &como...Guardar documento actualGrabar el documento actual con otro nombreGuardar los contenidos del log a un archivoScriptBuscarDirección de búsquedaBuscar:Buscar en todos los librosBuscando...SeccionesBuscar error en el archivo '%s'Error de acceso en el archivo '%s' (los archivos grandes no están soportados por stdio)Seleccionar &TodoSeleccionar una plantilla de documentoSeleccionar una vista de documentoSeleccionar normal o negrita.Seleccionar estilo normal o cursiva.Seleccionar subrayado o no subrayado.SelecciónSelecciona el nivel de lista a editar.Se esperaba separador después de opción '%s'.Se llamó a SetProperty sin un establecedor válidoConfiguración...Se han encontrado varias conexiones activas, eligiendo una aleatoriamente.Mostrar directorios &ocultosMostrar archivos &ocultosMuestra el diálogo Acerca deMostrar todoMostrar todos los datos en el índiceMostrar directorios ocultosMostrar/Ocultar panel de navegaciónMuestra un subjuego UnicodeMuestra una previsualización de los opciones de viñeta.Muestra una vista previa de la fuente.Muestra una vista previa de la fuente.Muestra una previsualización de las opciones de párrafo.Muestra la vista previa de la fuente.Tema monocromo sencilloSencilloTamañoTamaño:SaltarCursivaNo pudo abrirse este archivo.Memoria insuficiente para crear previsualización.Lo siento, ese nombre ya está en uso. Por favor, elija otro.Lo sentimos, el formato de este archivo se desconoce.Los datos de sonido están en un formato no soportado.El archivo de sonido '%s' está en un formato no soportado.EspaciadoEstándarStatement, 5 1/2 x 8 1/2 inEstado: Cadena a Color: Especificación de color '%s' incorrecta.EstiloOrganizador de EstilosEstilo:SuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSímboloFuente Símbolos:SímbolosTABTIFF: No se pudo reservar memoria.TIFF: Error al abrir imagen.TIFF: Error al leer imagen.TIFF: Error al guardar imagen.TIFF: Error al escribir imagen.Tabloide Extra 11.69 x 18 inTabloide, 11 x 17 inTabulacionesTeletipoPlantillasTailandés (ISO-8859-11)El servidor FTP no soporta el modo pasivo.El servidor FTP no soporta el comando PORT.Los estilos de viñeta disponibles.Los estilos disponibles.El caracter de viñeta.El código de caracter.El conjunto de caracteres '%s' es desconocido. Puede seleccionar otro conjunto para reemplazarlo o elegir [Cancelar] si no puede ser reemplazadoEl formato %d del portapapeles no existe.El estilo por defecto para el siguiente párrafo.El directorio '%s' no existe ¿Crearlo ahora?El archivo '%s' no existe y no puede abrirse. También ha sido eliminado de la lista de archivos recientes.El escalonado de la primera línea.El color de fuente.El tipo de fuente.La fuente de la que tomar el símbolo.Tamaño en puntos:El tamaño de fuente en puntos.El estilo de fuente.El peso de la fuente.El escalonado izquierdo.El espaciado de línea.El número de elemento de la lista.El rango a mostrar.El informe contiene los archivos mostrados abajo. Si alguno de estos archivos contiene información privada, por favor, desmárquelos y serán eliminados del informe. El parámetro '%s' no fue especificado.El escalonado derecho.El espaciado depués del párrafo.El espaciado antes de párrafo.El nombre del estilo.El estilo en que se basa este estilo.La vista previa del estilo.La posición del tabulador.Las posiciones del tabulador.El texto no pudo ser guardado.El valor para el parámetro '%s' debe especificarse.Hubo un problema al configurar la página: se necesita una impresora predeterminada.Error en la inicialización del módulo de hilos de ejecución: no se pudo almacenar valor en el almacen local de hilosError en la inicialización del módulo de hilos de ejecución: error al crear clave de hiloError en la inicialización del módulo de hilos de ejecución: imposible reservar índice en el almacen local de hilosLa configuración de la prioridad del hilo de ejecución es ignorada.Mosaico &HorizontalMosaico &VerticalTiempo de espera de la conexión del servidor FTP excedido, pruebe a establecer el modo pasivo.Error en la creación del temporizadorSugerencia del DíaSugerencias no disponibles, ¡lástima!Hasta:¡Demasiadas llamadas EndStyle!Demasiados colores en el PNG, la imagen podría estar algo borrosa.Margen superior (mm):Traducciones por¡Intentando eliminar el archivo '%s' de VFS de memoria, pero no está abierto!Turco (ISO-8859-9)TipoEscriba un nombre de fuente.Escribir un tamaño en puntos.El tipo debe tener conversión de enum a longARRIBAUS Std Fanfold, 14 7/8 x 11 inUS-ASCIIIncapaz de abrir el docuemento HTML pedido: %sImposible reproducir el sonido de forma asíncrona.RestaurarSubrayadoDeshacer la última acciónCaracteres inesperadostras la opción '%s' Parámetro '%s' inesperadoUnicodeUnicode 16 bits (UTF-16)Unicode 16 bits Endian Grande (UTF-16BE)Unicode 16 bits Endian Pequeña (UTF-16LE)Unicode 32 bits (UTF-32)Unicode 32 bits Endian Grande (UTF-32BE)Unicode 32 bits Endian Pequeña (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)DesconocidoError DDE desconocido %08xObjeto desconocido pasado a GetObjectClassInfoError desconocido de biblioteca dinámicaCodificación desconocida (%d)El parámetro '%s' de entero largo es desconocidoEl parámetro '%s' es desconocidoParéntesis '(' no emparejado en una entrada para tipo mime %s.Mandato sin nombreFormato de portapapeles no soportado.Tema no soportado '%s'.ArribaLetras mayúsculasNúmeros romanos en mayúsculasUso: %sUtilizar el alineamiento actual.Conflicto de validación.Ver archivos en vista DetallesVer archivos en vista ListaVistasWINDOWS_IZQUIERDOWINDOWS_MENUWINDOWS_DERECHOAviso: Europa Occidental (ISO-8859-1)Europa Occidental con Euro (ISO-8859-15)Si la fuente está subrayada.Palabra completaSólo palabras completasTema Win32Win32s en Windows 3.1Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Árabe (CP 1256)Windows Báltico (CP 1257)Windows CE (%d.%d)Windows Centro Europeo (CP 1250)Windows Cirílico (CP 1251)Windows Griego (CP 1253)Windows Hebreo (CP 1255)Windows Coreano (CP 949)Windows MEWindows Tailandés (CP 874)Windows Turco (CP 1254)Windows European Occidental (CP 1252)Windows/DOS OEM (CP 437)Error de escritura en el archivo '%s'Error de parseo de XML: '%s' en la línea %dXPM: ¡Datos de píxel erróneos!XPM: errónea definición de color en línea %dXPM: ¡formato de cabecera incorrecto!XPM: errónea definición de color '%s' en línea %dXPM: ¡datos de imagen truncados en la línea %d!SíNo puede quitar una superposición que no ha sido inicializadaNo puede Inicializar una superposición dos vecesNo puede añadir un nuevo directorio a esta sección.A&cercarA&lejar&Ajustar al tamañouna aplicación DDEML ha creado una condición acelerada prolongada.una función DDEML fue llamada sin llamar primero a la función DdeInitialize, o se pasó un identificador de instancia no válido a una función DDEML.el intento de un cliente de establece conversación falló.fallo al reservar memoria.fallo al validar un parémetro por DDEML.una petición para una transación síncrona ha finalizado.una petición para una transacción de datos síncrona ha finalizado.una petición para una transación de ejecución síncrona ha finalizado.una petición para una transacción síncrona de revisión ha finalizado.una petición para una transacción síncrona de auditoría ha finalizado.se intentó una transacción de servidor en una conversación que fue finalizada por el cliente, o el servidor terminó antes de completar una transacción.fallo en la traducción.altuna aplicación inicializada como APPCLASS_MONITOR ha intentado llevar a cabo una transacción DDE, o una aplicación inicializada como APPCMD_CLIENTONLY ha intentado realizar transacciones de servidor.ha fallado una llamada interna a la función PostMessage.ha ocurrido un error interno en DDEML.se pasó un identificador de transacción no válido a la función DDEML. Una vez que la aplicación haya retornado desde una llamada XTYP_XACT_COMPLETE, el identificador de la transacción para esa llamada deja de ser válido.suponemos que es un archivo zip multiparte concatenadointento de cambiar clave inmutable '%s', ignorado.argumentos erróneos a la función de bibliotecafirma erróneadesplazamiento erróneo al elemento del archivo zipbinarionegritael buffer es demasiado pequeño para el directorio Windows.no se puede cerrar el archivo '%s'no se puede cerrar el descriptor de archivo %dno se pueden hacer efectivos los cambios en archivo '%s'no se puede crear el archivo '%s'no se puede eliminar el archivo de configuración de usuario '%s'no se puede determinar si el final del archivo con descriptor %d se ha alcanzadoNo se puede ejecutar '%s'no se puede encontrar el directorio central en el zipno se puede obtener el tamaño del archivo con descriptor %dno se encontró HOME del usuario, usando el directorio actual.no se puede vaciar el descriptor de archivo %dno se puede alcanzar posición de búsqueda en el descriptor de archivo %dno se puede cargar ninguna fuente, abortandono se puede abrir el archivo '%s'no se puede abrir el archivo de configuración global '%s'.no se puede abrir el archivo de configuración de usuario '%s'.no puede abrirse el archivo de configuración de usuariono se puede reinicializar el flujo de compresión de zlib.no se puede reinicializar el flujo de descompresión de zlib.no se puede leer desde el descriptor de archivo %dno se puede eliminar el archivo '%s'no se puede eliminar el archivo temporal '%s'no se puede buscar en el descriptor de archivo %dno se puede guardar el buffer '%s' al disco.no se puede escribir el descriptor de archivo %dno puede escribirse el archivo de configuración de usuarioerror de suma de comprobaciónfallo de suma de comprobación leyendo bloque de cabecera de tarerror de compresiónfalló la conversión a codifiación de 8 bitsctrlfechaerror de descompresiónpredeterminadovolcado de estado de proceso (binario)décimo octavooctavoundécimola entrada '%s' aparece más de una vez en el grupo '%s'error en formato de datoserror al abrir '%s'error al abrir el archivo error al leer el directorio central del ziperror al leer la cabecera local del archivo ziperror al escribir el elemento de zip '%s': crc o longitud erróneosno se pudo limpiar el archivo '%s'décimo quintoquintoarchivo '%s', línea %d: '%s' ignorado después de cabecera de grupo.archivo '%s', línea %d: '=' esperado.archivo '%s', línea %d: clave '%s' fue encontrada por primera vez en la línea %d.archivo '%s', línea %d: valor ignorado para clave inmutable '%s'.archivo '%s': carácter %c inesperado en línea %d.archivosprimerotamaño de fuentedécimo cuartocuartogenerar mensajes de log explicativosimagenbloque de cabecera incompleto en tarcadena de identificador de evento incorrecta, falta el puntotamaño incorrecto para elemento de tardatos no válido en la cabecera de tar extendidovalor de retorno de bandeja de entrada no válidoarchivo zip no válidocursivaligera'%s' local no pudo establecerse.medianochedécimo novenonovenono hay error DDE.ningún errorsin nombremediodíanúmlos objetos no pueden tener nodos XML de textomemoria agotadadescripción del contexto de procesoerror de lecturaal leer flujo de zip (elemento %s): crc erróneoal leer flujo de zip (elemento %s): longitud erróneaproblema de reentrada.segundoerror de búsquedadécimo séptimoséptimomayúsculasmostrar este mensaje de ayudadécimo sextosextoespecifique el modo a usar (ej.: 640x480-16)especifique el tema a usarlongitud del archivo almacenada no está en la cabecera del Zipcadelemento tar no abiertodécimola respuesta a la transacción causó que se activase el bit DDE_FBUSY.tercerodécimo tercerohoymañanatraductor-créditosduodécimovigésimosubrayado" inesperado en la posición %d en '%s'.fin de archivo inesperadodesconocidoclase %s desconocidaerror desconocidoerror desconocido (código %08x).origen de búsqueda desconocidodesconocido-%dsin nombresin nombre%dmétodo de compresión de Zip no soportadousando catálogo '%s' de '%s'.error de escrituraError en wxGetTimeOfDaywxWidgets no pudo abrir el 'display' para '%s': saliendo.wxWidgets no pudo abrir el 'display'. Saliendo.xxxxayererror de zlib %d~ginkgocadx-3.8.7/cadxcore/lang/es/wxstd.po000066400000000000000000007676631314736454600205460ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: wxWidgets 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-01 19:04+0200\n" "PO-Revision-Date: 2009-03-25 10:12-0000\n" "Last-Translator: Julian Smart \n" "Language-Team: wxWidgets translators \n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: Spanish\n" "X-Poedit-Country: SPAIN\n" "X-Poedit-SourceCharset: utf-8\n" #: ../src/common/debugrpt.cpp:591 msgid "" "\n" "Please send this report to the program maintainer, thank you!\n" msgstr "" "\n" "Por favor, envie este informe al mantenedor del programa, gracias\n" #: ../src/richtext/richtextstyledlg.cpp:210 #: ../src/richtext/richtextstyledlg.cpp:222 msgid " " msgstr " " #: ../src/generic/dbgrptg.cpp:326 msgid " Thank you and we're sorry for the inconvenience!\n" msgstr " Gracias y perdón por las molestias\n" #: ../src/common/prntbase.cpp:546 #, fuzzy, c-format msgid " (copy %d of %d)" msgstr "Página %d de %d" #: ../src/common/log.cpp:425 #, c-format msgid " (error %ld: %s)" msgstr " (error %ld: %s)" #: ../src/common/imagtiff.cpp:75 #, fuzzy, c-format msgid " (in module \"%s\")" msgstr "módulo de TIFF: %s" #: ../src/common/docview.cpp:1624 msgid " - " msgstr " - " #: ../src/richtext/richtextprint.cpp:588 ../src/html/htmprint.cpp:704 msgid " Preview" msgstr " Previsualización" #: ../src/common/fontcmn.cpp:811 msgid " bold" msgstr "negrita" #: ../src/common/fontcmn.cpp:827 msgid " italic" msgstr "cursiva" #: ../src/common/fontcmn.cpp:807 msgid " light" msgstr " ligera" #: ../src/common/paper.cpp:118 msgid "#10 Envelope, 4 1/8 x 9 1/2 in" msgstr "Sobre #10, 4 1/8 x 9 1/2 in" #: ../src/common/paper.cpp:119 msgid "#11 Envelope, 4 1/2 x 10 3/8 in" msgstr "Sobre #11, 4 1/2 x 10 3/8 in" #: ../src/common/paper.cpp:120 msgid "#12 Envelope, 4 3/4 x 11 in" msgstr "Sobre #12, 4 3/4 x 11 in" #: ../src/common/paper.cpp:121 msgid "#14 Envelope, 5 x 11 1/2 in" msgstr "Sobre #14, 5 x 11 1/2 in" #: ../src/common/paper.cpp:117 msgid "#9 Envelope, 3 7/8 x 8 7/8 in" msgstr "Sobre #9, 3 7/8 x 8 7/8 in" #: ../src/html/helpwnd.cpp:1044 #, fuzzy, c-format msgid "%d of %lu" msgstr "%i de %i" #: ../src/html/helpwnd.cpp:1681 ../src/html/helpwnd.cpp:1719 #, c-format msgid "%i of %i" msgstr "%i de %i" #: ../src/generic/filectrlg.cpp:315 #, fuzzy, c-format msgid "%ld byte" msgid_plural "%ld bytes" msgstr[0] "%ld bytes" msgstr[1] "%ld bytes" #: ../src/html/helpwnd.cpp:1046 #, fuzzy, c-format msgid "%lu of %lu" msgstr "%i de %i" #: ../src/common/cmdline.cpp:1050 #, c-format msgid "%s (or %s)" msgstr "%s (o %s)" #: ../src/generic/logg.cpp:230 #, c-format msgid "%s Error" msgstr "%s Error" #: ../src/generic/logg.cpp:242 #, c-format msgid "%s Information" msgstr "%s Información" #: ../src/generic/preferencesg.cpp:110 #, fuzzy, c-format msgid "%s Preferences" msgstr "&Preferencias" #: ../src/generic/logg.cpp:234 #, c-format msgid "%s Warning" msgstr "Aviso de %s" #: ../src/common/tarstrm.cpp:1319 #, c-format msgid "%s did not fit the tar header for entry '%s'" msgstr "%s did not fit the tar header for entry '%s'" #: ../src/common/fldlgcmn.cpp:106 #, c-format msgid "%s files (%s)|%s" msgstr "archivos %s (%s)|%s" #: ../src/common/stockitem.cpp:139 ../src/html/helpfrm.cpp:142 #: ../src/html/helpfrm.cpp:144 msgid "&About" msgstr "&Acerca de" #: ../src/common/stockitem.cpp:207 msgid "&Actual Size" msgstr "Tamaño re&al" #: ../src/richtext/richtextindentspage.cpp:262 #, fuzzy msgid "&After a paragraph:" msgstr "Después de un párrafo:" #: ../src/richtext/richtextindentspage.cpp:128 #: ../src/richtext/richtextliststylepage.cpp:319 msgid "&Alignment" msgstr "&Alinear" #: ../src/common/stockitem.cpp:141 msgid "&Apply" msgstr "&Aplicar" #: ../src/richtext/richtextstyledlg.cpp:251 msgid "&Apply Style" msgstr "&Aplicar Estilo" #: ../src/msw/mdi.cpp:175 msgid "&Arrange Icons" msgstr "&Organizar iconos" #: ../src/common/stockitem.cpp:195 msgid "&Ascending" msgstr "" #: ../src/common/stockitem.cpp:142 msgid "&Back" msgstr "&Atrás" #: ../src/richtext/richtextstylepage.cpp:113 msgid "&Based on:" msgstr "&Basado en:" #: ../src/richtext/richtextindentspage.cpp:253 #, fuzzy msgid "&Before a paragraph:" msgstr "Antes de un párrafo:" #: ../src/richtext/richtextfontpage.cpp:271 #, fuzzy msgid "&Bg colour:" msgstr "&Color:" #: ../src/common/stockitem.cpp:143 msgid "&Bold" msgstr "&Negrita" #: ../src/common/stockitem.cpp:144 msgid "&Bottom" msgstr "" #: ../src/richtext/richtextborderspage.cpp:359 #: ../src/richtext/richtextborderspage.cpp:503 #: ../src/richtext/richtextmarginspage.cpp:260 #: ../src/richtext/richtextmarginspage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:637 #: ../src/richtext/richtextsizepage.cpp:644 msgid "&Bottom:" msgstr "" #: ../include/wx/richtext/richtextbuffer.h:3530 #, fuzzy msgid "&Box" msgstr "&Negrita" #: ../src/richtext/richtextliststylepage.cpp:210 #: ../src/richtext/richtextbulletspage.cpp:159 msgid "&Bullet style:" msgstr "Estilo de &viñeta:" #: ../src/common/stockitem.cpp:146 msgid "&CD-Rom" msgstr "" #: ../src/generic/wizard.cpp:432 ../src/generic/fontdlgg.cpp:470 #: ../src/generic/fontdlgg.cpp:489 ../src/osx/carbon/fontdlg.cpp:588 #: ../src/common/stockitem.cpp:145 msgid "&Cancel" msgstr "&Cancelar" #: ../src/msw/mdi.cpp:171 msgid "&Cascade" msgstr "&Cascada" #: ../include/wx/richtext/richtextbuffer.h:5587 #, fuzzy msgid "&Cell" msgstr "&Cancelar" #: ../src/richtext/richtextsymboldlg.cpp:439 msgid "&Character code:" msgstr "&Código de caracter:" #: ../src/common/stockitem.cpp:147 msgid "&Clear" msgstr "&Limpiar" #: ../src/generic/logg.cpp:522 ../src/common/stockitem.cpp:148 #: ../src/common/prntbase.cpp:1570 ../src/univ/themes/win32.cpp:3756 #: ../src/html/helpfrm.cpp:139 msgid "&Close" msgstr "&Cerrar" #: ../src/common/stockitem.cpp:193 #, fuzzy msgid "&Color" msgstr "&Color:" #: ../src/richtext/richtextfontpage.cpp:258 msgid "&Colour:" msgstr "&Color:" #: ../src/common/stockitem.cpp:149 #, fuzzy msgid "&Convert" msgstr "Contenidos" #: ../src/richtext/richtextctrl.cpp:326 ../src/osx/textctrl_osx.cpp:583 #: ../src/common/stockitem.cpp:150 ../src/msw/textctrl.cpp:2284 msgid "&Copy" msgstr "&Copiar" #: ../src/generic/hyperlinkg.cpp:156 #, fuzzy msgid "&Copy URL" msgstr "&Copiar" #: ../src/common/headerctrlcmn.cpp:328 #, fuzzy msgid "&Customize..." msgstr "tamaño de fuente" #: ../src/generic/dbgrptg.cpp:334 msgid "&Debug report preview:" msgstr "&Vista previa del informe de depuración:" #: ../src/richtext/richtexttabspage.cpp:142 #: ../src/richtext/richtextctrl.cpp:328 ../src/osx/textctrl_osx.cpp:585 #: ../src/common/stockitem.cpp:152 ../src/msw/textctrl.cpp:2286 msgid "&Delete" msgstr "&Eliminar" #: ../src/richtext/richtextstyledlg.cpp:269 msgid "&Delete Style..." msgstr "&Eliminar Estilo..." #: ../src/common/stockitem.cpp:196 msgid "&Descending" msgstr "" #: ../src/generic/logg.cpp:688 msgid "&Details" msgstr "&Detalles" #: ../src/common/stockitem.cpp:153 msgid "&Down" msgstr "A&bajo" #: ../src/common/stockitem.cpp:154 msgid "&Edit" msgstr "&Editar" #: ../src/richtext/richtextstyledlg.cpp:263 msgid "&Edit Style..." msgstr "&Editar Estilo..." #: ../src/common/stockitem.cpp:155 msgid "&Execute" msgstr "" #: ../src/common/stockitem.cpp:157 ../src/html/helpfrm.cpp:146 msgid "&File" msgstr "&Archivo" #: ../src/common/stockitem.cpp:158 msgid "&Find" msgstr "&Buscar" #: ../src/generic/wizard.cpp:626 msgid "&Finish" msgstr "&Finalizar" #: ../src/common/stockitem.cpp:159 #, fuzzy msgid "&First" msgstr "primero" #: ../src/richtext/richtextsizepage.cpp:244 msgid "&Floating mode:" msgstr "" #: ../src/common/stockitem.cpp:160 #, fuzzy msgid "&Floppy" msgstr "&Copiar" #: ../src/common/stockitem.cpp:194 #, fuzzy msgid "&Font" msgstr "&Fuente:" #: ../src/generic/fontdlgg.cpp:371 msgid "&Font family:" msgstr "&Fuente:" #: ../src/richtext/richtextliststylepage.cpp:194 msgid "&Font for Level..." msgstr "&Fuente para el Nivel..." #: ../src/richtext/richtextfontpage.cpp:156 #: ../src/richtext/richtextsymboldlg.cpp:400 msgid "&Font:" msgstr "&Fuente:" #: ../src/common/stockitem.cpp:161 msgid "&Forward" msgstr "Adelante" #: ../src/richtext/richtextsymboldlg.cpp:451 msgid "&From:" msgstr "&Desde:" #: ../src/common/stockitem.cpp:162 msgid "&Harddisk" msgstr "" #: ../src/richtext/richtextsizepage.cpp:351 #: ../src/richtext/richtextsizepage.cpp:358 #, fuzzy msgid "&Height:" msgstr "Peso" #: ../src/generic/wizard.cpp:435 ../src/richtext/richtextstyledlg.cpp:303 #: ../src/richtext/richtextsymboldlg.cpp:479 ../src/osx/menu_osx.cpp:785 #: ../src/common/stockitem.cpp:163 ../src/html/helpfrm.cpp:147 msgid "&Help" msgstr "&Ayuda" #: ../include/wx/richmsgdlg.h:30 #, fuzzy msgid "&Hide details" msgstr "&Detalles" #: ../src/common/stockitem.cpp:164 msgid "&Home" msgstr "&Inicio" #: ../src/richtext/richtextindentspage.cpp:184 #: ../src/richtext/richtextliststylepage.cpp:372 msgid "&Indentation (tenths of a mm)" msgstr "&Escalonado (décimas de mm)" #: ../src/richtext/richtextindentspage.cpp:167 #: ../src/richtext/richtextliststylepage.cpp:356 msgid "&Indeterminate" msgstr "&Indeterminado" #: ../src/common/stockitem.cpp:166 msgid "&Index" msgstr "Índ&ice" #: ../src/common/stockitem.cpp:167 #, fuzzy msgid "&Info" msgstr "&Deshacer" #: ../src/common/stockitem.cpp:168 msgid "&Italic" msgstr "Curs&iva" #: ../src/common/stockitem.cpp:169 msgid "&Jump to" msgstr "" #: ../src/richtext/richtextindentspage.cpp:153 #: ../src/richtext/richtextliststylepage.cpp:342 msgid "&Justified" msgstr "&Justificado" #: ../src/common/stockitem.cpp:174 #, fuzzy msgid "&Last" msgstr "&Pegar" #: ../src/richtext/richtextindentspage.cpp:139 #: ../src/richtext/richtextliststylepage.cpp:328 msgid "&Left" msgstr "&Izquierda" #: ../src/richtext/richtextindentspage.cpp:195 #: ../src/richtext/richtextborderspage.cpp:269 #: ../src/richtext/richtextborderspage.cpp:413 #: ../src/richtext/richtextliststylepage.cpp:381 #: ../src/richtext/richtextmarginspage.cpp:187 #: ../src/richtext/richtextmarginspage.cpp:301 #: ../src/richtext/richtextsizepage.cpp:532 #: ../src/richtext/richtextsizepage.cpp:539 msgid "&Left:" msgstr "&Izquierda:" #: ../src/richtext/richtextliststylepage.cpp:183 msgid "&List level:" msgstr "Nivel de &Lista:" #: ../src/generic/logg.cpp:523 msgid "&Log" msgstr "&Log" #: ../src/univ/themes/win32.cpp:3748 msgid "&Move" msgstr "&Mover" #: ../src/richtext/richtextsizepage.cpp:672 msgid "&Move the object to:" msgstr "" #: ../src/common/stockitem.cpp:175 #, fuzzy msgid "&Network" msgstr "&Nuevo" #: ../src/richtext/richtexttabspage.cpp:136 ../src/common/stockitem.cpp:176 msgid "&New" msgstr "&Nuevo" #: ../src/aui/tabmdi.cpp:111 ../src/generic/mdig.cpp:100 #: ../src/msw/mdi.cpp:176 msgid "&Next" msgstr "&Siguiente" #: ../src/generic/wizard.cpp:431 ../src/generic/wizard.cpp:626 msgid "&Next >" msgstr "&Siguiente >" #: ../src/richtext/richtextsizepage.cpp:681 #, fuzzy msgid "&Next Paragraph" msgstr "Después de un párrafo:" #: ../src/generic/tipdlg.cpp:276 msgid "&Next Tip" msgstr "&Siguiente Sugerencia" #: ../src/richtext/richtextstylepage.cpp:123 msgid "&Next style:" msgstr "&Siguiente Estilo" #: ../src/common/stockitem.cpp:177 ../src/msw/msgdlg.cpp:476 msgid "&No" msgstr "&No" #: ../src/generic/dbgrptg.cpp:356 msgid "&Notes:" msgstr "&Notas:" #: ../src/richtext/richtextbulletspage.cpp:264 msgid "&Number:" msgstr "&Número:" #: ../src/generic/fontdlgg.cpp:475 ../src/generic/fontdlgg.cpp:482 #: ../src/osx/carbon/fontdlg.cpp:594 ../src/common/stockitem.cpp:178 msgid "&OK" msgstr "&Aceptar" #: ../src/generic/dbgrptg.cpp:342 ../src/common/stockitem.cpp:179 #: ../src/html/helpfrm.cpp:137 msgid "&Open..." msgstr "A&brir..." #: ../src/richtext/richtextindentspage.cpp:222 #, fuzzy msgid "&Outline level:" msgstr "Nivel de &Lista:" #: ../src/richtext/richtextindentspage.cpp:293 msgid "&Page Break" msgstr "" #: ../src/richtext/richtextctrl.cpp:327 ../src/osx/textctrl_osx.cpp:584 #: ../src/common/stockitem.cpp:180 ../src/msw/textctrl.cpp:2285 msgid "&Paste" msgstr "&Pegar" #: ../include/wx/richtext/richtextbuffer.h:4655 msgid "&Picture" msgstr "" #: ../src/generic/fontdlgg.cpp:422 msgid "&Point size:" msgstr "Tamaño de &punto:" #: ../src/richtext/richtexttabspage.cpp:114 msgid "&Position (tenths of a mm):" msgstr "&Posición (décimas de mm):" #: ../src/richtext/richtextsizepage.cpp:514 #, fuzzy msgid "&Position mode:" msgstr "Pregunta" #: ../src/common/stockitem.cpp:181 msgid "&Preferences" msgstr "&Preferencias" #: ../src/aui/tabmdi.cpp:112 ../src/generic/mdig.cpp:101 #: ../src/msw/mdi.cpp:177 msgid "&Previous" msgstr "&Anterior" #: ../src/richtext/richtextsizepage.cpp:675 #, fuzzy msgid "&Previous Paragraph" msgstr "Página anterior" #: ../src/common/stockitem.cpp:183 msgid "&Print..." msgstr "Im&primir..." #: ../src/richtext/richtextctrl.cpp:332 ../src/richtext/richtextctrl.cpp:4945 #: ../src/common/stockitem.cpp:184 msgid "&Properties" msgstr "&Propiedades" #: ../src/common/stockitem.cpp:156 msgid "&Quit" msgstr "&Salir" #: ../src/richtext/richtextctrl.cpp:323 ../src/osx/textctrl_osx.cpp:580 #: ../src/common/stockitem.cpp:185 ../src/common/cmdproc.cpp:293 #: ../src/common/cmdproc.cpp:300 ../src/msw/textctrl.cpp:2281 msgid "&Redo" msgstr "&Rehacer" #: ../src/common/cmdproc.cpp:289 ../src/common/cmdproc.cpp:309 msgid "&Redo " msgstr "&Rehacer " #: ../src/richtext/richtextstyledlg.cpp:257 msgid "&Rename Style..." msgstr "&Renombrar Estilo..." #: ../src/generic/fdrepdlg.cpp:179 msgid "&Replace" msgstr "&Sustituir" #: ../src/richtext/richtextstyledlg.cpp:287 msgid "&Restart numbering" msgstr "&Recomenzar numeración" #: ../src/univ/themes/win32.cpp:3747 msgid "&Restore" msgstr "&Restaurar" #: ../src/richtext/richtextindentspage.cpp:146 #: ../src/richtext/richtextliststylepage.cpp:335 msgid "&Right" msgstr "&Derecha" #: ../src/richtext/richtextindentspage.cpp:213 #: ../src/richtext/richtextborderspage.cpp:299 #: ../src/richtext/richtextborderspage.cpp:443 #: ../src/richtext/richtextliststylepage.cpp:399 #: ../src/richtext/richtextmarginspage.cpp:212 #: ../src/richtext/richtextmarginspage.cpp:326 #: ../src/richtext/richtextsizepage.cpp:602 #: ../src/richtext/richtextsizepage.cpp:609 msgid "&Right:" msgstr "&Derecha:" #: ../src/common/stockitem.cpp:190 msgid "&Save" msgstr "&Guardar" #: ../src/common/stockitem.cpp:191 #, fuzzy msgid "&Save as" msgstr "Guardar como" #: ../include/wx/richmsgdlg.h:29 #, fuzzy msgid "&See details" msgstr "&Detalles" #: ../src/generic/tipdlg.cpp:270 msgid "&Show tips at startup" msgstr "&Mostrar sugerencias al inicio" #: ../src/univ/themes/win32.cpp:3750 msgid "&Size" msgstr "&Tamaño" #: ../src/richtext/richtextfontpage.cpp:168 msgid "&Size:" msgstr "&Tamaño:" #: ../src/generic/progdlgg.cpp:282 #, fuzzy msgid "&Skip" msgstr "Saltar" #: ../src/richtext/richtextindentspage.cpp:242 #: ../src/richtext/richtextliststylepage.cpp:417 msgid "&Spacing (tenths of a mm)" msgstr "&Espaciado (décimas de mm)" #: ../src/common/stockitem.cpp:197 msgid "&Spell Check" msgstr "" #: ../src/common/stockitem.cpp:198 msgid "&Stop" msgstr "&Detener" #: ../src/richtext/richtextfontpage.cpp:284 ../src/common/stockitem.cpp:199 msgid "&Strikethrough" msgstr "&Tachado" #: ../src/generic/fontdlgg.cpp:382 ../src/richtext/richtextstylepage.cpp:104 msgid "&Style:" msgstr "E&stilo:" #: ../src/richtext/richtextstyledlg.cpp:198 msgid "&Styles:" msgstr "E&stilos:" #: ../src/richtext/richtextsymboldlg.cpp:413 msgid "&Subset:" msgstr "&Subjuego:" #: ../src/richtext/richtextliststylepage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:222 msgid "&Symbol:" msgstr "&Símbolo:" #: ../include/wx/richtext/richtextbuffer.h:5679 #, fuzzy msgid "&Table" msgstr "Tabulaciones" #: ../src/common/stockitem.cpp:200 #, fuzzy msgid "&Top" msgstr "&Copiar" #: ../src/richtext/richtextborderspage.cpp:329 #: ../src/richtext/richtextborderspage.cpp:473 #: ../src/richtext/richtextmarginspage.cpp:235 #: ../src/richtext/richtextmarginspage.cpp:349 #: ../src/richtext/richtextsizepage.cpp:567 #: ../src/richtext/richtextsizepage.cpp:574 #, fuzzy msgid "&Top:" msgstr "Hasta:" #: ../src/generic/fontdlgg.cpp:444 ../src/common/stockitem.cpp:202 msgid "&Underline" msgstr "Subrayado" #: ../src/richtext/richtextfontpage.cpp:243 msgid "&Underlining:" msgstr "&Subrayado:" #: ../src/richtext/richtextctrl.cpp:322 ../src/osx/textctrl_osx.cpp:579 #: ../src/common/stockitem.cpp:203 ../src/common/cmdproc.cpp:271 #: ../src/msw/textctrl.cpp:2280 msgid "&Undo" msgstr "&Deshacer" #: ../src/common/cmdproc.cpp:265 msgid "&Undo " msgstr "&Deshacer " #: ../src/common/stockitem.cpp:204 msgid "&Unindent" msgstr "&No escalonado" #: ../src/common/stockitem.cpp:205 msgid "&Up" msgstr "Arriba" #: ../src/richtext/richtextsizepage.cpp:278 #, fuzzy msgid "&Vertical alignment:" msgstr "&Alineación de viñeta:" #: ../src/generic/dbgrptg.cpp:340 #, fuzzy msgid "&View..." msgstr "A&brir..." #: ../src/generic/fontdlgg.cpp:393 msgid "&Weight:" msgstr "Peso" #: ../src/richtext/richtextsizepage.cpp:317 #: ../src/richtext/richtextsizepage.cpp:324 #, fuzzy msgid "&Width:" msgstr "Peso" #: ../src/aui/tabmdi.cpp:311 ../src/aui/tabmdi.cpp:327 #: ../src/aui/tabmdi.cpp:329 ../src/generic/mdig.cpp:294 #: ../src/generic/mdig.cpp:310 ../src/generic/mdig.cpp:314 #: ../src/msw/mdi.cpp:77 msgid "&Window" msgstr "&Ventana" #: ../src/common/stockitem.cpp:206 ../src/msw/msgdlg.cpp:476 msgid "&Yes" msgstr "&Sí" #: ../src/common/config.cpp:523 ../src/msw/regconf.cpp:258 #, c-format msgid "'%s' has extra '..', ignored." msgstr "'%s' tiene '..' adicional, se ignora." #: ../src/common/valtext.cpp:249 ../src/common/valtext.cpp:251 #: ../src/common/valtext.cpp:253 ../src/common/valtext.cpp:255 #, c-format msgid "'%s' is invalid" msgstr "'%s' es inválido" #: ../src/common/cmdline.cpp:948 ../src/common/cmdline.cpp:966 #, c-format msgid "'%s' is not a correct numeric value for option '%s'." msgstr "'%s' no es un valor numérico correcto para el parámetro '%s'." #: ../src/common/translation.cpp:1086 #, c-format msgid "'%s' is not a valid message catalog." msgstr "'%s' no es un catálogo de mensajes válido." #: ../src/common/textbuf.cpp:239 #, c-format msgid "'%s' is probably a binary buffer." msgstr "'%s' es probablemente un archivo binario." #: ../src/common/valtext.cpp:247 #, c-format msgid "'%s' should be numeric." msgstr "'%s debe ser numérico." #: ../src/common/valtext.cpp:239 #, c-format msgid "'%s' should only contain ASCII characters." msgstr "'%s' debe contener sólo caracteres ASCII." #: ../src/common/valtext.cpp:241 #, c-format msgid "'%s' should only contain alphabetic characters." msgstr "'%s' debe contener sólo caracteres de texto." #: ../src/common/valtext.cpp:243 #, c-format msgid "'%s' should only contain alphabetic or numeric characters." msgstr "'%s debe contener sólo caracteres alfanuméricos." #: ../src/common/valtext.cpp:245 #, fuzzy, c-format msgid "'%s' should only contain digits." msgstr "'%s' debe contener sólo caracteres ASCII." #: ../src/richtext/richtextliststylepage.cpp:229 #: ../src/richtext/richtextbulletspage.cpp:179 msgid "(*)" msgstr "(*)" #: ../src/html/helpwnd.cpp:976 msgid "(Help)" msgstr "(Ayuda)" #: ../src/richtext/richtextliststylepage.cpp:481 #: ../src/richtext/richtextbulletspage.cpp:286 msgid "(None)" msgstr "(Ninguno)" #: ../src/richtext/richtextsymboldlg.cpp:504 msgid "(Normal text)" msgstr "(Texto normal)" #: ../src/html/helpwnd.cpp:426 ../src/html/helpwnd.cpp:1119 #: ../src/html/helpwnd.cpp:1745 msgid "(bookmarks)" msgstr "(favoritos)" #: ../src/richtext/richtextindentspage.cpp:274 #: ../src/richtext/richtextindentspage.cpp:286 #: ../src/richtext/richtextindentspage.cpp:287 #: ../src/richtext/richtextindentspage.cpp:311 #: ../src/richtext/richtextindentspage.cpp:326 #: ../src/richtext/richtextformatdlg.cpp:831 #: ../src/richtext/richtextfontpage.cpp:331 #: ../src/richtext/richtextfontpage.cpp:335 #: ../src/richtext/richtextfontpage.cpp:339 #: ../src/richtext/richtextliststylepage.cpp:448 #: ../src/richtext/richtextliststylepage.cpp:460 #: ../src/richtext/richtextliststylepage.cpp:461 msgid "(none)" msgstr "(ninguno)" #: ../src/richtext/richtextliststylepage.cpp:492 #: ../src/richtext/richtextbulletspage.cpp:297 msgid "*" msgstr "*" #: ../src/richtext/richtextliststylepage.cpp:236 #: ../src/richtext/richtextbulletspage.cpp:186 msgid "*)" msgstr "*)" #: ../src/richtext/richtextliststylepage.cpp:495 #: ../src/richtext/richtextbulletspage.cpp:300 msgid "+" msgstr "+" #: ../src/msw/utils.cpp:1324 msgid ", 64-bit edition" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:493 #: ../src/richtext/richtextbulletspage.cpp:298 msgid "-" msgstr "-" #: ../src/generic/filepickerg.cpp:66 #, fuzzy msgid "..." msgstr ".." #: ../src/richtext/richtextindentspage.cpp:276 #: ../src/richtext/richtextliststylepage.cpp:450 #, fuzzy msgid "1.1" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:277 #: ../src/richtext/richtextliststylepage.cpp:451 #, fuzzy msgid "1.2" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:278 #: ../src/richtext/richtextliststylepage.cpp:452 #, fuzzy msgid "1.3" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:279 #: ../src/richtext/richtextliststylepage.cpp:453 #, fuzzy msgid "1.4" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:280 #: ../src/richtext/richtextliststylepage.cpp:454 msgid "1.5" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:455 #, fuzzy msgid "1.6" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:282 #: ../src/richtext/richtextliststylepage.cpp:456 #, fuzzy msgid "1.7" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:283 #: ../src/richtext/richtextliststylepage.cpp:457 #, fuzzy msgid "1.8" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:284 #: ../src/richtext/richtextliststylepage.cpp:458 #, fuzzy msgid "1.9" msgstr "1.5" #: ../src/common/paper.cpp:141 msgid "10 x 11 in" msgstr "10 x 11 in" #: ../src/common/paper.cpp:114 msgid "10 x 14 in" msgstr "10 x 14 in" #: ../src/common/paper.cpp:115 msgid "11 x 17 in" msgstr "11 x 17 in" #: ../src/common/paper.cpp:185 msgid "12 x 11 in" msgstr "12 x 11 in" #: ../src/common/paper.cpp:142 msgid "15 x 11 in" msgstr "15 x 11 in" #: ../src/richtext/richtextindentspage.cpp:285 #: ../src/richtext/richtextliststylepage.cpp:459 msgid "2" msgstr "2" #: ../src/common/paper.cpp:133 msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in" msgstr "Sobre 6 3/4, 3 5/8 x 6 1/2 in" #: ../src/common/paper.cpp:140 msgid "9 x 11 in" msgstr "9 x 11 in" #: ../src/html/htmprint.cpp:431 msgid ": file does not exist!" msgstr ": ¡el archivo no existe!" #: ../src/common/fontmap.cpp:199 msgid ": unknown charset" msgstr ": conjunto de caracteres desconocido" #: ../src/common/fontmap.cpp:413 msgid ": unknown encoding" msgstr ": codificación desconocida" #: ../src/generic/wizard.cpp:437 msgid "< &Back" msgstr "< &Atrás" #: ../src/osx/carbon/fontdlg.cpp:608 ../src/osx/carbon/fontdlg.cpp:815 #: ../src/osx/carbon/fontdlg.cpp:835 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:609 ../src/osx/carbon/fontdlg.cpp:817 #: ../src/osx/carbon/fontdlg.cpp:837 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:607 ../src/osx/carbon/fontdlg.cpp:813 #: ../src/osx/carbon/fontdlg.cpp:833 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:610 ../src/osx/carbon/fontdlg.cpp:819 #: ../src/osx/carbon/fontdlg.cpp:839 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:611 ../src/osx/carbon/fontdlg.cpp:824 #: ../src/osx/carbon/fontdlg.cpp:843 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:612 ../src/osx/carbon/fontdlg.cpp:821 #: ../src/osx/carbon/fontdlg.cpp:841 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:606 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:286 ../src/generic/filectrlg.cpp:309 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:290 ../src/generic/filectrlg.cpp:313 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:288 ../src/generic/filectrlg.cpp:311 msgid "" msgstr "" #: ../src/html/helpwnd.cpp:1279 msgid "Bold italic face.
    " msgstr "Negrita cursiva.
    " #: ../src/html/helpwnd.cpp:1283 msgid "bold italic underlined
    " msgstr "negrita cursiva subrayada
    " #: ../src/html/helpwnd.cpp:1278 msgid "Bold face. " msgstr "Negrita. " #: ../src/html/helpwnd.cpp:1277 msgid "Italic face. " msgstr "Cursiva. " #: ../src/richtext/richtextliststylepage.cpp:494 #: ../src/richtext/richtextbulletspage.cpp:299 msgid ">" msgstr ">" #: ../src/generic/dbgrptg.cpp:318 msgid "A debug report has been generated in the directory\n" msgstr "Se ha generado un informe de depuración en el directorio\n" #: ../src/common/debugrpt.cpp:578 #, fuzzy msgid "A debug report has been generated. It can be found in" msgstr "Se ha generado un informe de depuración en el directorio\n" #: ../src/common/xtixml.cpp:418 msgid "A non empty collection must consist of 'element' nodes" msgstr "Una colección no vacía debe consistir en nodos del tipo 'elemento'" #: ../src/richtext/richtextliststylepage.cpp:304 #: ../src/richtext/richtextliststylepage.cpp:306 #: ../src/richtext/richtextbulletspage.cpp:257 #: ../src/richtext/richtextbulletspage.cpp:259 msgid "A standard bullet name." msgstr "Un nombre de viñeta estándar." #: ../src/common/paper.cpp:218 #, fuzzy msgid "A0 sheet, 841 x 1189 mm" msgstr "Hoja A4, 210 x 297 mm" #: ../src/common/paper.cpp:219 #, fuzzy msgid "A1 sheet, 594 x 841 mm" msgstr "Hoja A3, 297 x 420 mm" #: ../src/common/paper.cpp:160 msgid "A2 420 x 594 mm" msgstr "A2 420 x 594 mm" #: ../src/common/paper.cpp:157 msgid "A3 Extra 322 x 445 mm" msgstr "A3 Extra 322 x 445 mm" #: ../src/common/paper.cpp:162 msgid "A3 Extra Transverse 322 x 445 mm" msgstr "A3 Extra Transversal 322 x 445 mm" #: ../src/common/paper.cpp:171 msgid "A3 Rotated 420 x 297 mm" msgstr "A3 Girada 420 x 297 mm" #: ../src/common/paper.cpp:161 msgid "A3 Transverse 297 x 420 mm" msgstr "A3 Transversal 297 x 420 mm" #: ../src/common/paper.cpp:107 msgid "A3 sheet, 297 x 420 mm" msgstr "Hoja A3, 297 x 420 mm" #: ../src/common/paper.cpp:147 msgid "A4 Extra 9.27 x 12.69 in" msgstr "A4 Extra 9.27 x 12.69 in" #: ../src/common/paper.cpp:154 msgid "A4 Plus 210 x 330 mm" msgstr "A4 Plus 210 x 330 mm" #: ../src/common/paper.cpp:172 msgid "A4 Rotated 297 x 210 mm" msgstr "A4 Girada 297 x 210 mm" #: ../src/common/paper.cpp:149 msgid "A4 Transverse 210 x 297 mm" msgstr "A4 Transversal 210 x 297 mm" #: ../src/common/paper.cpp:98 msgid "A4 sheet, 210 x 297 mm" msgstr "Hoja A4, 210 x 297 mm" #: ../src/common/paper.cpp:108 msgid "A4 small sheet, 210 x 297 mm" msgstr "Hoja Pequeña A4, 210 x 297 mm" #: ../src/common/paper.cpp:158 msgid "A5 Extra 174 x 235 mm" msgstr "A5 Extra 174 x 235 mm" #: ../src/common/paper.cpp:173 msgid "A5 Rotated 210 x 148 mm" msgstr "A5 Girado 210 x 148 mm" #: ../src/common/paper.cpp:155 msgid "A5 Transverse 148 x 210 mm" msgstr "A5 Transversal 148 x 210 mm" #: ../src/common/paper.cpp:109 msgid "A5 sheet, 148 x 210 mm" msgstr "Hoja A5, 148 x 210 mm" #: ../src/common/paper.cpp:165 msgid "A6 105 x 148 mm" msgstr "A6 105 x 148 mm" #: ../src/common/paper.cpp:178 msgid "A6 Rotated 148 x 105 mm" msgstr "A6 Girada 148 x 105 mm" #: ../src/generic/fontdlgg.cpp:83 ../src/richtext/richtextformatdlg.cpp:526 #: ../src/osx/carbon/fontdlg.cpp:339 msgid "ABCDEFGabcdefg12345" msgstr "ABCDEFGabcdefg12345" #: ../src/common/accelcmn.cpp:76 msgid "ADD" msgstr "AÑADIR" #: ../src/richtext/richtextsymboldlg.cpp:458 ../src/common/ftp.cpp:405 msgid "ASCII" msgstr "ASCII" #: ../src/osx/menu_osx.cpp:630 ../src/common/stockitem.cpp:139 #, fuzzy msgid "About" msgstr "&Acerca de" #: ../src/generic/aboutdlgg.cpp:140 ../src/msw/aboutdlg.cpp:64 #, fuzzy, c-format msgid "About %s" msgstr "Acerca de" #: ../src/richtext/richtextsizepage.cpp:520 msgid "Absolute" msgstr "" #: ../src/common/stockitem.cpp:207 #, fuzzy msgid "Actual Size" msgstr "Tamaño re&al" #: ../src/common/stockitem.cpp:140 msgid "Add" msgstr "Añadir" #: ../src/richtext/richtextbuffer.cpp:10751 msgid "Add Column" msgstr "" #: ../src/richtext/richtextbuffer.cpp:10688 msgid "Add Row" msgstr "" #: ../src/html/helpwnd.cpp:439 msgid "Add current page to bookmarks" msgstr "Añadir página actual a favoritos" #: ../src/generic/colrdlgg.cpp:283 msgid "Add to custom colours" msgstr "Añadir a colores personalizados" #: ../include/wx/xtiprop.h:259 msgid "AddToPropertyCollection called on a generic accessor" msgstr "Se llamó a AddToPropertyCollection sobre un accedente genérico" #: ../include/wx/xtiprop.h:197 msgid "AddToPropertyCollection called w/o valid adder" msgstr "Se llamó a AddToPropertyCollection sin añadidor válido" #: ../src/html/helpctrl.cpp:159 #, c-format msgid "Adding book %s" msgstr "Añadiendo libro %s" #: ../src/osx/carbon/dataview.cpp:1933 msgid "Adding flavor TEXT failed" msgstr "" #: ../src/osx/carbon/dataview.cpp:1954 msgid "Adding flavor utxt failed" msgstr "" #: ../src/common/preferencescmn.cpp:41 msgid "Advanced" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:435 msgid "After a paragraph:" msgstr "Después de un párrafo:" #: ../src/common/stockitem.cpp:172 msgid "Align Left" msgstr "Alinear a la izquierda" #: ../src/common/stockitem.cpp:173 msgid "Align Right" msgstr "Alinear a la derecha" #: ../src/richtext/richtextsizepage.cpp:266 #, fuzzy msgid "Alignment" msgstr "&Alinear" #: ../src/generic/prntdlgg.cpp:215 msgid "All" msgstr "Todo" #: ../src/generic/filectrlg.cpp:1205 ../src/common/fldlgcmn.cpp:89 #, c-format msgid "All files (%s)|%s" msgstr "Todos los archivos (%s)|%s" #: ../include/wx/defs.h:2922 msgid "All files (*)|*" msgstr "Todos los archivos (*)|*" #: ../include/wx/defs.h:2919 msgid "All files (*.*)|*.*" msgstr "Todos los archivos (*.*)|*" #: ../src/richtext/richtextstyles.cpp:1057 msgid "All styles" msgstr "Todos los estilos" #: ../src/propgrid/manager.cpp:1496 msgid "Alphabetic Mode" msgstr "" #: ../src/common/xtistrm.cpp:429 msgid "Already Registered Object passed to SetObjectClassInfo" msgstr "Se pasó Objeto Ya Registrado a SetObjectClassInfo" #: ../src/unix/dialup.cpp:353 msgid "Already dialling ISP." msgstr "Llamando al ISP" #: ../src/common/accelcmn.cpp:320 ../src/univ/themes/win32.cpp:3756 #, fuzzy msgid "Alt+" msgstr "Alt-" #: ../src/common/debugrpt.cpp:581 #, fuzzy msgid "And includes the following files:\n" msgstr "*** E incluye los siguientes archivos:\n" #: ../src/generic/animateg.cpp:162 #, c-format msgid "Animation file is not of type %ld." msgstr "Archivo de animación no es de tipo %ld." #: ../src/generic/logg.cpp:1034 #, c-format msgid "Append log to file '%s' (choosing [No] will overwrite it)?" msgstr "" "¿Añadir el log al archivo '%s'? (elegir [No] sobreescribirá el archivo)?" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:610 #: ../src/osx/menu_osx.cpp:649 ../src/osx/menu_osx.cpp:657 #, fuzzy msgid "Application" msgstr "Selección" #: ../src/common/stockitem.cpp:141 #, fuzzy msgid "Apply" msgstr "&Aplicar" #: ../src/richtext/richtextliststylepage.cpp:482 #: ../src/richtext/richtextbulletspage.cpp:287 msgid "Arabic" msgstr "Árabe" #: ../src/common/fmapbase.cpp:153 msgid "Arabic (ISO-8859-6)" msgstr "Arabic (ISO-8859-6)" #: ../src/msw/ole/automtn.cpp:661 #, fuzzy, c-format msgid "Argument %u not found." msgstr "Archivo de ayuda \"%s\" no encontrado." #: ../src/generic/aboutdlgg.cpp:184 msgid "Artists" msgstr "" #: ../src/common/stockitem.cpp:195 #, fuzzy msgid "Ascending" msgstr "leyendo" #: ../src/generic/filectrlg.cpp:468 msgid "Attributes" msgstr "Atributos" #: ../src/richtext/richtextliststylepage.cpp:294 #: ../src/richtext/richtextbulletspage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:247 msgid "Available fonts." msgstr "Fuentes disponibles." #: ../src/common/paper.cpp:138 msgid "B4 (ISO) 250 x 353 mm" msgstr "B4 (ISO) 250 x 353 mm" #: ../src/common/paper.cpp:174 msgid "B4 (JIS) Rotated 364 x 257 mm" msgstr "B4 (JIS) Girado 364 x 257 mm" #: ../src/common/paper.cpp:128 msgid "B4 Envelope, 250 x 353 mm" msgstr "Sobre B4, 250 x 353 mm" #: ../src/common/paper.cpp:110 msgid "B4 sheet, 250 x 354 mm" msgstr "Hoja B4, 250 x 354 mm" #: ../src/common/paper.cpp:159 msgid "B5 (ISO) Extra 201 x 276 mm" msgstr "B5 (ISO) Extra 201 x 276 mm" #: ../src/common/paper.cpp:175 msgid "B5 (JIS) Rotated 257 x 182 mm" msgstr "B5 (JIS) Girado 257 x 182 mm" #: ../src/common/paper.cpp:156 msgid "B5 (JIS) Transverse 182 x 257 mm" msgstr "B5 (JIS) Transversal 182 x 257 mm" #: ../src/common/paper.cpp:129 msgid "B5 Envelope, 176 x 250 mm" msgstr "Sobre B5, 176 x 250 mm" #: ../src/common/paper.cpp:111 msgid "B5 sheet, 182 x 257 millimeter" msgstr "Hoja B5, 182 x 257 mm" #: ../src/common/paper.cpp:183 msgid "B6 (JIS) 128 x 182 mm" msgstr "B6 (JIS) 128 x 182 mm" #: ../src/common/paper.cpp:184 msgid "B6 (JIS) Rotated 182 x 128 mm" msgstr "B6 (JIS) Girado 182 x 128 mm" #: ../src/common/paper.cpp:130 msgid "B6 Envelope, 176 x 125 mm" msgstr "Sobre B6, 176 x 125 mm" #: ../src/common/accelcmn.cpp:49 msgid "BACK" msgstr "ATRÁS" #: ../src/common/imagbmp.cpp:523 ../src/common/imagbmp.cpp:553 #: ../src/common/imagbmp.cpp:568 msgid "BMP: Couldn't allocate memory." msgstr "BMP: No se pudo reservar memoria." #: ../src/common/imagbmp.cpp:97 msgid "BMP: Couldn't save invalid image." msgstr "BMP: No se pudo guardar imagen no válida." #: ../src/common/imagbmp.cpp:338 msgid "BMP: Couldn't write RGB color map." msgstr "BMP: No se pudo escribir el mapa de color RGB." #: ../src/common/imagbmp.cpp:473 msgid "BMP: Couldn't write data." msgstr "BMP: No se pudieron escribir datos." #: ../src/common/imagbmp.cpp:239 msgid "BMP: Couldn't write the file (Bitmap) header." msgstr "BMP: No se pudo escribir la cabecera (Bitmap) del archivo." #: ../src/common/imagbmp.cpp:262 msgid "BMP: Couldn't write the file (BitmapInfo) header." msgstr "BMP: No se pudo escribir la cabecera (BitmapInfo) del archivo." #: ../src/common/imagbmp.cpp:133 msgid "BMP: wxImage doesn't have own wxPalette." msgstr "BMP: wxImage no tiene su propia wxPalette." #: ../src/common/stockitem.cpp:142 #, fuzzy msgid "Back" msgstr "&Atrás" #: ../src/richtext/richtextbackgroundpage.cpp:119 #: ../src/richtext/richtextformatdlg.cpp:374 #, fuzzy msgid "Background" msgstr "Color de fondo" #: ../src/richtext/richtextbackgroundpage.cpp:131 #, fuzzy msgid "Background &colour:" msgstr "Color de fondo" #: ../src/osx/carbon/fontdlg.cpp:406 msgid "Background colour" msgstr "Color de fondo" #: ../src/common/fmapbase.cpp:160 msgid "Baltic (ISO-8859-13)" msgstr "Baltic (ISO-8859-13)" #: ../src/common/fmapbase.cpp:151 msgid "Baltic (old) (ISO-8859-4)" msgstr "Baltic (old) (ISO-8859-4)" #: ../src/richtext/richtextliststylepage.cpp:426 msgid "Before a paragraph:" msgstr "Antes de un párrafo:" #: ../src/richtext/richtextliststylepage.cpp:489 #: ../src/richtext/richtextbulletspage.cpp:294 msgid "Bitmap" msgstr "Mapa de bits" #: ../src/osx/carbon/dataview.cpp:2396 msgid "Bitmap renderer cannot render value; value type: " msgstr "" #: ../src/generic/fontdlgg.cpp:333 ../src/richtext/richtextfontpage.cpp:337 #: ../src/osx/carbon/fontdlg.cpp:540 ../src/common/stockitem.cpp:143 msgid "Bold" msgstr "Gruesa" #: ../src/richtext/richtextborderspage.cpp:256 #: ../src/richtext/richtextborderspage.cpp:389 #, fuzzy msgid "Border" msgstr "Modern" #: ../src/richtext/richtextformatdlg.cpp:368 #, fuzzy msgid "Borders" msgstr "Modern" #: ../src/richtext/richtextsizepage.cpp:288 ../src/common/stockitem.cpp:144 msgid "Bottom" msgstr "" #: ../src/generic/prntdlgg.cpp:893 msgid "Bottom margin (mm):" msgstr "Margen inferior (mm):" #: ../src/richtext/richtextbuffer.cpp:8919 #, fuzzy msgid "Box Properties" msgstr "&Propiedades" #: ../src/richtext/richtextstyles.cpp:1061 #, fuzzy msgid "Box styles" msgstr "Todos los estilos" #: ../src/common/filepickercmn.cpp:43 ../src/common/filepickercmn.cpp:44 msgid "Browse" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:195 msgid "Bullet &Alignment:" msgstr "&Alineación de viñeta:" #: ../src/richtext/richtextliststylepage.cpp:309 msgid "Bullet style" msgstr "Estilo de viñeta" #: ../src/richtext/richtextformatdlg.cpp:342 msgid "Bullets" msgstr "Viñetas" #: ../src/common/paper.cpp:99 msgid "C sheet, 17 x 22 in" msgstr "Hoja C, 17 x 22 in" #: ../src/generic/logg.cpp:520 msgid "C&lear" msgstr "&Limpiar" #: ../src/generic/fontdlgg.cpp:406 msgid "C&olour:" msgstr "C&olor:" #: ../src/common/paper.cpp:124 msgid "C3 Envelope, 324 x 458 mm" msgstr "Sobre C3, 324 x 458 mm" #: ../src/common/paper.cpp:125 msgid "C4 Envelope, 229 x 324 mm" msgstr "Sobre C4, 229 x 324 mm" #: ../src/common/paper.cpp:123 msgid "C5 Envelope, 162 x 229 mm" msgstr "Sobre C5, 162 x 229 mm" #: ../src/common/paper.cpp:126 msgid "C6 Envelope, 114 x 162 mm" msgstr "Sobre C6, 114 x 162 mm" #: ../src/common/paper.cpp:127 msgid "C65 Envelope, 114 x 229 mm" msgstr "Sobre C65, 114 x 229 mm" #: ../src/common/accelcmn.cpp:66 msgid "CANCEL" msgstr "CANCELAR" #: ../src/common/accelcmn.cpp:70 msgid "CAPITAL" msgstr "MAYÚSCULAS" #: ../src/common/stockitem.cpp:146 msgid "CD-Rom" msgstr "" #: ../src/html/chm.cpp:815 ../src/html/chm.cpp:874 msgid "CHM handler currently supports only local files!" msgstr "¡El manejador CHM actualmente sólo permite archivos locales!" #: ../src/common/accelcmn.cpp:67 msgid "CLEAR" msgstr "BORRAR" #: ../src/common/accelcmn.cpp:111 msgid "COMMAND" msgstr "COMANDO" #: ../src/richtext/richtextfontpage.cpp:291 msgid "Ca&pitals" msgstr "Ca&pitulares" #: ../src/common/cmdproc.cpp:267 msgid "Can't &Undo " msgstr "No se puede deshacer " #: ../src/common/image.cpp:2686 msgid "Can't automatically determine the image format for non-seekable input." msgstr "" #: ../src/msw/registry.cpp:505 #, c-format msgid "Can't close registry key '%s'" msgstr "No se puede cerrar la clave del registro '%s'" #: ../src/msw/registry.cpp:583 #, c-format msgid "Can't copy values of unsupported type %d." msgstr "No se pueden copiar valores del tipo no soportado %d." #: ../src/msw/registry.cpp:486 #, c-format msgid "Can't create registry key '%s'" msgstr "No se puede crear la clave del registro '%s'" #: ../src/msw/thread.cpp:696 ../src/os2/thread.cpp:494 msgid "Can't create thread" msgstr "No se puede crear el hilo de ejecución" #: ../src/msw/window.cpp:3793 #, c-format msgid "Can't create window of class %s" msgstr "No se puede crear la ventana de clase %s" #: ../src/msw/registry.cpp:776 #, c-format msgid "Can't delete key '%s'" msgstr "No se puede eliminar la clave '%s'" #: ../src/msw/iniconf.cpp:458 ../src/os2/iniconf.cpp:471 #, c-format msgid "Can't delete the INI file '%s'" msgstr "No se puede elimininar el archivo INI '%s'" #: ../src/msw/registry.cpp:804 #, c-format msgid "Can't delete value '%s' from key '%s'" msgstr "No se puede eliminar el valor '%s' de la clave '%s'" #: ../src/msw/registry.cpp:1161 #, c-format msgid "Can't enumerate subkeys of key '%s'" msgstr "No se pueden enumerar las subclaves de la clave '%s'" #: ../src/msw/registry.cpp:1116 #, c-format msgid "Can't enumerate values of key '%s'" msgstr "No se pueden enumerar los valores de la clave '%s'" #: ../src/msw/registry.cpp:1379 #, c-format msgid "Can't export value of unsupported type %d." msgstr "No se puede exportar el valor del tipo no soportado %d." #: ../src/common/ffile.cpp:236 #, c-format msgid "Can't find current position in file '%s'" msgstr "No se puede encontrar la posición actual en el archivo '%s'" #: ../src/msw/registry.cpp:416 #, c-format msgid "Can't get info about registry key '%s'" msgstr "No se pudo obtener información de la clave del registro '%s'" #: ../src/common/zstream.cpp:346 msgid "Can't initialize zlib deflate stream." msgstr "No se puede inicializar el flujo de compresión de zlib." #: ../src/common/zstream.cpp:185 msgid "Can't initialize zlib inflate stream." msgstr "No se puede inicializar el flujo de descompresión de zlib." #: ../src/msw/fswatcher.cpp:432 #, c-format msgid "Can't monitor non-existent directory \"%s\" for changes." msgstr "" #: ../src/msw/registry.cpp:452 #, c-format msgid "Can't open registry key '%s'" msgstr "No se puede abrir la clave del registro '%s'" #: ../src/common/zstream.cpp:252 #, c-format msgid "Can't read from inflate stream: %s" msgstr "No se puede leer desde el flujo de descompresión %s" #: ../src/common/zstream.cpp:244 msgid "Can't read inflate stream: unexpected EOF in underlying stream." msgstr "" "Imposible leer flujo de descompresión: EOF inesperado en el flujo subyacente." #: ../src/msw/registry.cpp:1048 #, c-format msgid "Can't read value of '%s'" msgstr "No se puede leer el valor de '%s'" #: ../src/msw/registry.cpp:877 ../src/msw/registry.cpp:909 #: ../src/msw/registry.cpp:971 #, c-format msgid "Can't read value of key '%s'" msgstr "No se puede leer el valor de la clave '%s'" #: ../src/common/image.cpp:2483 #, c-format msgid "Can't save image to file '%s': unknown extension." msgstr "No se puede guardar imagen en archivo '%s': extensión desconocida." #: ../src/generic/logg.cpp:579 ../src/generic/logg.cpp:996 msgid "Can't save log contents to file." msgstr "No se pueden guardar los contenidos del log a un archivo." #: ../src/msw/thread.cpp:652 ../src/os2/thread.cpp:477 msgid "Can't set thread priority" msgstr "No se puede establecer la prioridad del hilo de ejecución" #: ../src/msw/registry.cpp:895 ../src/msw/registry.cpp:939 #: ../src/msw/registry.cpp:1065 #, c-format msgid "Can't set value of '%s'" msgstr "No se puede establecer valor de '%s'" #: ../src/unix/utilsunx.cpp:357 #, fuzzy msgid "Can't write to child process's stdin" msgstr "Error al matar el proceso %d" #: ../src/common/zstream.cpp:427 #, c-format msgid "Can't write to deflate stream: %s" msgstr "No se puede escribir en el flujo de compresión %s" #: ../include/wx/msgdlg.h:274 ../src/generic/dirdlgg.cpp:107 #: ../src/richtext/richtextstyledlg.cpp:300 ../src/common/stockitem.cpp:145 #: ../src/msw/msgdlg.cpp:489 ../src/msw/progdlg.cpp:673 #: ../src/gtk1/fontdlg.cpp:144 ../src/motif/msgdlg.cpp:196 msgid "Cancel" msgstr "Cancelar" #: ../src/os2/thread.cpp:116 msgid "Cannot create mutex." msgstr "No se puede crear el mutex" #: ../src/osx/carbon/dataview.cpp:895 msgid "Cannot create new column's ID. Probably max. number of columns reached." msgstr "" #: ../src/common/filefn.cpp:1336 #, c-format msgid "Cannot enumerate files '%s'" msgstr "No se pueden enumerar los archivos '%s'" #: ../src/msw/dir.cpp:264 #, c-format msgid "Cannot enumerate files in directory '%s'" msgstr "No se pueden enumerar los archivos en carpeta '%s'" #: ../src/msw/dialup.cpp:542 #, c-format msgid "Cannot find active dialup connection: %s" msgstr "No se puede encontrar conexión activa: %s" #: ../src/msw/dialup.cpp:848 msgid "Cannot find the location of address book file" msgstr "No se puede localizar el archivo de libreta de direcciones" #: ../src/msw/ole/automtn.cpp:562 #, fuzzy, c-format msgid "Cannot get an active instance of \"%s\"" msgstr "No se puede encontrar conexión activa: %s" #: ../src/unix/threadpsx.cpp:1030 #, c-format msgid "Cannot get priority range for scheduling policy %d." msgstr "" "No se puede obtener un rango de prioridades para la política de " "planificación %d." #: ../src/unix/utilsunx.cpp:988 msgid "Cannot get the hostname" msgstr "No se puede obtener el nombre de la máquina (hostname)" #: ../src/unix/utilsunx.cpp:1024 msgid "Cannot get the official hostname" msgstr "No se puede obtener el nombre oficial de la máquina (hostname)" #: ../src/msw/dialup.cpp:949 msgid "Cannot hang up - no active dialup connection." msgstr "No se puede colgar - no hay conexiones activas." #: ../include/wx/msw/ole/oleutils.h:52 msgid "Cannot initialize OLE" msgstr "No se puede inicializar OLE" #: ../src/common/socket.cpp:847 #, fuzzy msgid "Cannot initialize sockets" msgstr "No se puede inicializar OLE" #: ../src/msw/volume.cpp:620 #, c-format msgid "Cannot load icon from '%s'." msgstr "No se puede cargar el icono de '%s'." #: ../src/xrc/xmlres.cpp:361 #, fuzzy, c-format msgid "Cannot load resources from '%s'." msgstr "No puede cargar el archivo de recursos %s." #: ../src/xrc/xmlres.cpp:746 #, c-format msgid "Cannot load resources from file '%s'." msgstr "No puede cargar el archivo de recursos %s." #: ../src/html/htmlfilt.cpp:137 #, c-format msgid "Cannot open HTML document: %s" msgstr "No se puede abrir el documento HTML: %s" #: ../src/html/helpdata.cpp:665 #, c-format msgid "Cannot open HTML help book: %s" msgstr "No se puede abrir el libro de ayuda HTML: %s" #: ../src/html/helpdata.cpp:297 #, c-format msgid "Cannot open contents file: %s" msgstr "No se puede abrir el archivo de contenidos: %s" #: ../src/generic/dcpsg.cpp:1751 msgid "Cannot open file for PostScript printing!" msgstr "¡No se puede abrir el archivo para impresión PostScript!" #: ../src/html/helpdata.cpp:311 #, c-format msgid "Cannot open index file: %s" msgstr "No se puede abrir el archivo índice: %s" #: ../src/xrc/xmlres.cpp:728 #, fuzzy, c-format msgid "Cannot open resources file '%s'." msgstr "No puede cargar el archivo de recursos %s." #: ../src/html/helpwnd.cpp:1537 msgid "Cannot print empty page." msgstr "No se puede imprimir una página vacía." #: ../src/msw/volume.cpp:507 #, c-format msgid "Cannot read typename from '%s'!" msgstr "¡No se puede leer tipo desde '%s'!" #: ../src/os2/thread.cpp:527 #, c-format msgid "Cannot resume thread %lu" msgstr "No se puede continuar el hilo de ejecución %lu" #: ../src/msw/thread.cpp:923 #, fuzzy, c-format msgid "Cannot resume thread %lx" msgstr "No se puede continuar hilo de ejecución %x" #: ../src/unix/threadpsx.cpp:1011 msgid "Cannot retrieve thread scheduling policy." msgstr "" "No se puede recuperar la política de planificación de hilos de ejecución." #: ../src/common/intl.cpp:542 #, c-format msgid "Cannot set locale to language \"%s\"." msgstr "" #: ../src/unix/threadpsx.cpp:831 ../src/msw/thread.cpp:569 msgid "Cannot start thread: error writing TLS." msgstr "No se puede empezar el hilo de ejecución: error al escribir TLS." #: ../src/os2/thread.cpp:513 #, c-format msgid "Cannot suspend thread %lu" msgstr "No se puede suspender el hilo de ejecución %lu" #: ../src/msw/thread.cpp:907 #, fuzzy, c-format msgid "Cannot suspend thread %lx" msgstr "No se puede suspender el hilo de ejecución %x" #: ../src/msw/thread.cpp:830 msgid "Cannot wait for thread termination" msgstr "No se puede esperar a la finalización del hilo de ejecución" #: ../src/html/helpwnd.cpp:546 msgid "Case sensitive" msgstr "Sensible a May/Min" #: ../src/propgrid/manager.cpp:1495 msgid "Categorized Mode" msgstr "" #: ../src/richtext/richtextbuffer.cpp:9347 #, fuzzy msgid "Cell Properties" msgstr "&Propiedades" #: ../src/common/fmapbase.cpp:161 msgid "Celtic (ISO-8859-14)" msgstr "Celtic (ISO-8859-14)" #: ../src/richtext/richtextindentspage.cpp:160 #: ../src/richtext/richtextliststylepage.cpp:349 msgid "Cen&tred" msgstr "Cen&trado" #: ../src/common/stockitem.cpp:170 msgid "Centered" msgstr "Centrado" #: ../src/common/fmapbase.cpp:149 msgid "Central European (ISO-8859-2)" msgstr "Europa Central (ISO-8859-2)" #: ../src/richtext/richtextliststylepage.cpp:250 #: ../src/richtext/richtextbulletspage.cpp:200 msgid "Centre" msgstr "Centrar" #: ../src/richtext/richtextindentspage.cpp:162 #: ../src/richtext/richtextindentspage.cpp:164 #: ../src/richtext/richtextliststylepage.cpp:351 #: ../src/richtext/richtextliststylepage.cpp:353 msgid "Centre text." msgstr "Texto centrado." #: ../src/richtext/richtextsizepage.cpp:287 #, fuzzy msgid "Centred" msgstr "Cen&trado" #: ../src/richtext/richtextliststylepage.cpp:280 #: ../src/richtext/richtextbulletspage.cpp:232 msgid "Ch&oose..." msgstr "&Elegir..." #: ../src/richtext/richtextbuffer.cpp:4041 msgid "Change List Style" msgstr "Cambiar Estilo de Lista" #: ../src/richtext/richtextbuffer.cpp:3392 #, fuzzy msgid "Change Object Style" msgstr "Cambiar Estilo de Lista" #: ../src/richtext/richtextbuffer.cpp:3658 #: ../src/richtext/richtextbuffer.cpp:7749 #, fuzzy msgid "Change Properties" msgstr "&Propiedades" #: ../src/richtext/richtextbuffer.cpp:3209 msgid "Change Style" msgstr "Cambiar Estilo" #: ../src/common/fileconf.cpp:372 #, c-format msgid "Changes won't be saved to avoid overwriting the existing file \"%s\"" msgstr "" #: ../src/richtext/richtextstyles.cpp:1059 msgid "Character styles" msgstr "Estilos de caracter" #: ../src/richtext/richtextliststylepage.cpp:224 #: ../src/richtext/richtextliststylepage.cpp:226 #: ../src/richtext/richtextbulletspage.cpp:174 #: ../src/richtext/richtextbulletspage.cpp:176 msgid "Check to add a period after the bullet." msgstr "Marcar para añadir un punto después de la viñeta." #: ../src/richtext/richtextliststylepage.cpp:238 #: ../src/richtext/richtextliststylepage.cpp:240 #: ../src/richtext/richtextbulletspage.cpp:188 #: ../src/richtext/richtextbulletspage.cpp:190 msgid "Check to add a right parenthesis." msgstr "Marcar para añadir un paréntesis derecho." #: ../src/richtext/richtextliststylepage.cpp:231 #: ../src/richtext/richtextliststylepage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:181 #: ../src/richtext/richtextbulletspage.cpp:183 msgid "Check to enclose the bullet in parentheses." msgstr "Marcar para encerrar la viñeta entre paréntesis." #: ../src/osx/carbon/fontdlg.cpp:542 ../src/osx/carbon/fontdlg.cpp:544 msgid "Check to make the font bold." msgstr "Marcar para establecer la fuente negrita." #: ../src/osx/carbon/fontdlg.cpp:549 ../src/osx/carbon/fontdlg.cpp:551 msgid "Check to make the font italic." msgstr "Marcar para establecer la fuente cursiva." #: ../src/osx/carbon/fontdlg.cpp:558 ../src/osx/carbon/fontdlg.cpp:560 msgid "Check to make the font underlined." msgstr "Marcar para establecer la fuente subrayada." #: ../src/richtext/richtextstyledlg.cpp:289 #: ../src/richtext/richtextstyledlg.cpp:291 msgid "Check to restart numbering." msgstr "Marcar para reiniciar numeración" #: ../src/richtext/richtextfontpage.cpp:286 #: ../src/richtext/richtextfontpage.cpp:288 #, fuzzy msgid "Check to show a line through the text." msgstr "Marcar para añadir un punto después de la viñeta." #: ../src/richtext/richtextfontpage.cpp:293 #: ../src/richtext/richtextfontpage.cpp:295 #, fuzzy msgid "Check to show the text in capitals." msgstr "Marcar para establecer la fuente cursiva." #: ../src/richtext/richtextfontpage.cpp:300 #: ../src/richtext/richtextfontpage.cpp:302 #, fuzzy msgid "Check to show the text in small capitals." msgstr "Marcar para establecer la fuente cursiva." #: ../src/richtext/richtextfontpage.cpp:314 #: ../src/richtext/richtextfontpage.cpp:316 #, fuzzy msgid "Check to show the text in subscript." msgstr "Haga clic para cambiar el color del texto." #: ../src/richtext/richtextfontpage.cpp:307 #: ../src/richtext/richtextfontpage.cpp:309 #, fuzzy msgid "Check to show the text in superscript." msgstr "Marcar para encerrar la viñeta entre paréntesis." #: ../src/msw/dialup.cpp:784 msgid "Choose ISP to dial" msgstr "Elegir ISP al que conectar" #: ../src/propgrid/props.cpp:1643 #, fuzzy msgid "Choose a directory:" msgstr "Crear directorio" #: ../src/propgrid/props.cpp:1702 #, fuzzy msgid "Choose a file" msgstr "Elegir fuente" #: ../src/generic/colrdlgg.cpp:144 ../src/gtk/colordlg.cpp:63 msgid "Choose colour" msgstr "Elegir color" #: ../src/generic/fontpickerg.cpp:50 ../src/gtk/fontdlg.cpp:75 #: ../src/gtk1/fontdlg.cpp:125 msgid "Choose font" msgstr "Elegir fuente" #: ../src/common/module.cpp:74 #, c-format msgid "Circular dependency involving module \"%s\" detected." msgstr "Se ha detectado dependencia circular concerniente al módulo \"%s\"." #: ../src/aui/tabmdi.cpp:108 ../src/generic/mdig.cpp:97 msgid "Cl&ose" msgstr "&Cerrar" #: ../src/msw/ole/automtn.cpp:673 #, fuzzy msgid "Class not registered." msgstr "No se puede crear el hilo de ejecución" #: ../src/common/stockitem.cpp:147 #, fuzzy msgid "Clear" msgstr "&Limpiar" #: ../src/generic/logg.cpp:520 msgid "Clear the log contents" msgstr "Eliminar los contenidos del log" #: ../src/richtext/richtextstyledlg.cpp:252 #: ../src/richtext/richtextstyledlg.cpp:254 msgid "Click to apply the selected style." msgstr "Haga clic para aplicar el estilo seleccionado." #: ../src/richtext/richtextliststylepage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:283 #: ../src/richtext/richtextbulletspage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:235 msgid "Click to browse for a symbol." msgstr "Haga click para buscar un símbolo." #: ../src/osx/carbon/fontdlg.cpp:589 ../src/osx/carbon/fontdlg.cpp:591 msgid "Click to cancel changes to the font." msgstr "Haga clic para cancelar los cambios a la fuente." #: ../src/generic/fontdlgg.cpp:472 ../src/generic/fontdlgg.cpp:491 msgid "Click to cancel the font selection." msgstr "Haga clic para cancelar selección de fuente" #: ../src/osx/carbon/fontdlg.cpp:570 ../src/osx/carbon/fontdlg.cpp:572 msgid "Click to change the font colour." msgstr "Haga clic para cambiar el color de la fuente." #: ../src/richtext/richtextfontpage.cpp:276 #: ../src/richtext/richtextfontpage.cpp:278 #, fuzzy msgid "Click to change the text background colour." msgstr "Haga clic para cambiar el color del texto." #: ../src/richtext/richtextfontpage.cpp:263 #: ../src/richtext/richtextfontpage.cpp:265 msgid "Click to change the text colour." msgstr "Haga clic para cambiar el color del texto." #: ../src/richtext/richtextliststylepage.cpp:195 #: ../src/richtext/richtextliststylepage.cpp:197 msgid "Click to choose the font for this level." msgstr "Haga clic para elegir la fuente para este nivel." #: ../src/richtext/richtextstyledlg.cpp:279 #: ../src/richtext/richtextstyledlg.cpp:281 msgid "Click to close this window." msgstr "Haga clic para cerrar esta ventana." #: ../src/osx/carbon/fontdlg.cpp:596 ../src/osx/carbon/fontdlg.cpp:598 msgid "Click to confirm changes to the font." msgstr "Haga clic para confirmar los cambios a la fuente." #: ../src/generic/fontdlgg.cpp:477 ../src/generic/fontdlgg.cpp:479 #: ../src/generic/fontdlgg.cpp:484 ../src/generic/fontdlgg.cpp:486 msgid "Click to confirm the font selection." msgstr "Haga clic para confirmar la selección de fuente" #: ../src/richtext/richtextstyledlg.cpp:244 #: ../src/richtext/richtextstyledlg.cpp:246 #, fuzzy msgid "Click to create a new box style." msgstr "Haga clic para carear una nueva lista de estilo." #: ../src/richtext/richtextstyledlg.cpp:226 #: ../src/richtext/richtextstyledlg.cpp:228 msgid "Click to create a new character style." msgstr "Haga click para crear un nuevo estilo de caracter." #: ../src/richtext/richtextstyledlg.cpp:238 #: ../src/richtext/richtextstyledlg.cpp:240 msgid "Click to create a new list style." msgstr "Haga clic para carear una nueva lista de estilo." #: ../src/richtext/richtextstyledlg.cpp:232 #: ../src/richtext/richtextstyledlg.cpp:234 msgid "Click to create a new paragraph style." msgstr "Haga click para crear un nuevo estilo de párrafo." #: ../src/richtext/richtexttabspage.cpp:137 #: ../src/richtext/richtexttabspage.cpp:139 msgid "Click to create a new tab position." msgstr "Haga clic para crear una nueva posición de tabulador." #: ../src/richtext/richtexttabspage.cpp:149 #: ../src/richtext/richtexttabspage.cpp:151 msgid "Click to delete all tab positions." msgstr "Haga clic para borrar todas las posiciones de tabulador." #: ../src/richtext/richtextstyledlg.cpp:270 #: ../src/richtext/richtextstyledlg.cpp:272 msgid "Click to delete the selected style." msgstr "Haga clic para borrar el estilo seleccionado." #: ../src/richtext/richtexttabspage.cpp:143 #: ../src/richtext/richtexttabspage.cpp:145 msgid "Click to delete the selected tab position." msgstr "Haga clic para borrar la posición de tabulador seleccionada." #: ../src/richtext/richtextstyledlg.cpp:264 #: ../src/richtext/richtextstyledlg.cpp:266 msgid "Click to edit the selected style." msgstr "Haga clic para editar el estilo seleccionado." #: ../src/richtext/richtextstyledlg.cpp:258 #: ../src/richtext/richtextstyledlg.cpp:260 msgid "Click to rename the selected style." msgstr "Haga clic para renombrar el estilo seleccionado." #: ../src/generic/dbgrptg.cpp:97 ../src/generic/progdlgg.cpp:804 #: ../src/generic/progdlgg.cpp:809 ../src/richtext/richtextstyledlg.cpp:277 #: ../src/richtext/richtextsymboldlg.cpp:476 ../src/common/stockitem.cpp:148 #: ../src/msw/progdlg.cpp:170 ../src/msw/progdlg.cpp:679 #: ../src/html/helpdlg.cpp:90 msgid "Close" msgstr "Cerrar" #: ../src/aui/tabmdi.cpp:109 ../src/generic/mdig.cpp:98 msgid "Close All" msgstr "Cerrar Todo" #: ../src/common/stockitem.cpp:266 msgid "Close current document" msgstr "Cerrar documento actual." #: ../src/generic/logg.cpp:522 msgid "Close this window" msgstr "Cerrar esta ventana" #: ../src/common/stockitem.cpp:193 #, fuzzy msgid "Color" msgstr "Color:" #: ../src/richtext/richtextformatdlg.cpp:725 #, fuzzy msgid "Colour" msgstr "Color:" #: ../src/msw/colordlg.cpp:156 #, fuzzy, c-format msgid "Colour selection dialog failed with error %0lx." msgstr "Falló la ejecución del comando '%s' con el error: %ul" #: ../src/osx/carbon/fontdlg.cpp:566 msgid "Colour:" msgstr "Color:" #: ../src/osx/carbon/dataview.cpp:900 #, fuzzy msgid "Column could not be added." msgstr "No se pudo abrir el archivo." #: ../src/osx/carbon/dataview.cpp:899 msgid "Column description could not be initialized." msgstr "" #: ../src/osx/carbon/dataview.cpp:1538 ../src/osx/carbon/dataview.cpp:1559 #, fuzzy msgid "Column index not found." msgstr "Archivo de ayuda \"%s\" no encontrado." #: ../src/osx/carbon/dataview.cpp:1614 msgid "Column width could not be determined" msgstr "" #: ../src/osx/carbon/dataview.cpp:901 msgid "Column width could not be set." msgstr "" #: ../src/common/init.cpp:188 #, c-format msgid "" "Command line argument %d couldn't be converted to Unicode and will be " "ignored." msgstr "" #: ../src/msw/fontdlg.cpp:119 #, fuzzy, c-format msgid "Common dialog failed with error code %0lx." msgstr "Falló la ejecución del comando '%s' con el error: %ul" #: ../src/gtk/window.cpp:4306 msgid "" "Compositing not supported by this system, please enable it in your Window " "Manager." msgstr "" #: ../src/html/helpwnd.cpp:1554 msgid "Compressed HTML Help file (*.chm)|*.chm|" msgstr "Archivo de ayuda HTML comprimido (*.chm)|*.chm|" #: ../src/generic/dirctrlg.cpp:544 msgid "Computer" msgstr "Ordenador" #: ../src/common/fileconf.cpp:965 #, c-format msgid "Config entry name cannot start with '%c'." msgstr "Un nombre de entrada de configuracón no puede empezar por '%c'." #: ../src/gtk/filedlg.cpp:59 msgid "Confirm" msgstr "Confirmar" #: ../src/msw/mimetype.cpp:739 msgid "Confirm registry update" msgstr "Confirmar actualización del registro" #: ../src/html/htmlwin.cpp:544 msgid "Connecting..." msgstr "Conectando..." #: ../src/html/helpwnd.cpp:482 msgid "Contents" msgstr "Contenidos" #: ../src/common/strconv.cpp:2261 #, c-format msgid "Conversion to charset '%s' doesn't work." msgstr "Conversión a juego de caracteres '%s' no funciona." #: ../src/common/stockitem.cpp:149 #, fuzzy msgid "Convert" msgstr "Contenidos" #: ../src/html/htmlwin.cpp:1057 #, c-format msgid "Copied to clipboard:\"%s\"" msgstr "Copiado en el portapapeles:\"%s\"" #: ../src/generic/prntdlgg.cpp:247 msgid "Copies:" msgstr "Copias:" #: ../src/common/stockitem.cpp:150 ../src/stc/stc_i18n.cpp:18 #, fuzzy msgid "Copy" msgstr "&Copiar" #: ../src/common/stockitem.cpp:258 msgid "Copy selection" msgstr "Copiar selección" #: ../src/html/chm.cpp:718 #, c-format msgid "Could not create temporary file '%s'" msgstr "No se puedo crear el archivo temporal '%s'" #: ../src/osx/carbon/dataview.cpp:1285 ../src/osx/carbon/dataview.cpp:1672 #, fuzzy msgid "Could not determine column index." msgstr "No puede iniciarse la previsualización del documento." #: ../src/osx/carbon/dataview.cpp:876 msgid "Could not determine column's position" msgstr "" #: ../src/osx/carbon/dataview.cpp:843 #, fuzzy msgid "Could not determine number of columns." msgstr "No puede encontrarse el archivo de inclusión de recursos %s." #: ../src/osx/carbon/dataview.cpp:975 #, fuzzy msgid "Could not determine number of items" msgstr "No puede encontrarse el archivo de inclusión de recursos %s." #: ../src/html/chm.cpp:273 #, c-format msgid "Could not extract %s into %s: %s" msgstr "No se pudo extraer %s en %s: %s" #: ../src/generic/tabg.cpp:1048 msgid "Could not find tab for id" msgstr "No se puede encontrar pestaña para id" #: ../src/osx/carbon/dataview.cpp:2556 ../src/osx/carbon/dataview.cpp:2591 #: ../src/osx/carbon/dataview.cpp:2615 ../src/osx/carbon/dataview.cpp:2636 #: ../src/osx/carbon/dataview.cpp:2773 #, fuzzy msgid "Could not get header description." msgstr "No se puede iniciar la impresión." #: ../src/osx/carbon/dataview.cpp:1169 ../src/osx/carbon/dataview.cpp:1195 #, fuzzy msgid "Could not get items." msgstr "No se pudo encontrar el archivo '%s'." #: ../src/osx/carbon/dataview.cpp:2659 ../src/osx/carbon/dataview.cpp:2724 #, fuzzy msgid "Could not get property flags." msgstr "No se puedo crear el archivo temporal '%s'" #: ../src/osx/carbon/dataview.cpp:726 #, fuzzy msgid "Could not get selected items." msgstr "No se pudo encontrar el archivo '%s'." #: ../src/html/chm.cpp:444 #, c-format msgid "Could not locate file '%s'." msgstr "No se pudo encontrar el archivo '%s'." #: ../src/osx/carbon/dataview.cpp:845 #, fuzzy msgid "Could not remove column." msgstr "No se puedo crear el cursor." #: ../src/osx/carbon/dataview.cpp:642 #, fuzzy msgid "Could not retrieve number of items" msgstr "No se puedo crear el archivo temporal '%s'" #: ../src/osx/carbon/dataview.cpp:2572 #, fuzzy msgid "Could not set alignment." msgstr "No se puede iniciar la impresión." #: ../src/osx/carbon/dataview.cpp:2803 #, fuzzy msgid "Could not set column width." msgstr "No puede iniciarse la previsualización del documento." #: ../src/common/filefn.cpp:1569 #, fuzzy msgid "Could not set current working directory" msgstr "Error al obtener el directorio de trabajo" #: ../src/osx/carbon/dataview.cpp:2775 #, fuzzy msgid "Could not set header description." msgstr "No se puede iniciar la impresión." #: ../src/osx/carbon/dataview.cpp:2596 #, fuzzy msgid "Could not set icon." msgstr "No se puede iniciar la impresión." #: ../src/osx/carbon/dataview.cpp:2617 #, fuzzy msgid "Could not set maximum width." msgstr "No se puede iniciar la impresión." #: ../src/osx/carbon/dataview.cpp:2638 #, fuzzy msgid "Could not set minimum width." msgstr "No se puede iniciar la impresión." #: ../src/osx/carbon/dataview.cpp:2664 ../src/osx/carbon/dataview.cpp:2729 #, fuzzy msgid "Could not set property flags." msgstr "No se puede iniciar la impresión." #: ../src/common/prntbase.cpp:1985 msgid "Could not start document preview." msgstr "No puede iniciarse la previsualización del documento." #: ../src/generic/printps.cpp:178 ../src/msw/printwin.cpp:210 #: ../src/gtk/print.cpp:1077 msgid "Could not start printing." msgstr "No se puede iniciar la impresión." #: ../src/common/wincmn.cpp:2131 msgid "Could not transfer data to window" msgstr "No puede transferir datos a la ventana" #: ../src/os2/thread.cpp:160 msgid "Couldn't acquire a mutex lock" msgstr "No se pudo adquirir un bloqueo de mutex" #: ../src/msw/imaglist.cpp:166 ../src/msw/imaglist.cpp:197 #: ../src/msw/imaglist.cpp:209 ../src/msw/dragimag.cpp:193 #: ../src/msw/dragimag.cpp:232 msgid "Couldn't add an image to the image list." msgstr "No se puede añadir imagen a lista de imagenes." #: ../src/msw/timer.cpp:134 ../src/os2/timer.cpp:113 msgid "Couldn't create a timer" msgstr "No se puede crear un temporizador" #: ../src/osx/carbon/overlay.cpp:122 msgid "Couldn't create the overlay window" msgstr "No se pudo crear la ventana de superposición" #: ../src/common/translation.cpp:2015 #, fuzzy msgid "Couldn't enumerate translations" msgstr "No se puedo finalizar el hilo de ejecución" #: ../src/common/dynlib.cpp:152 #, c-format msgid "Couldn't find symbol '%s' in a dynamic library" msgstr "No se pudo encontrar el símbolo '%s' en la librería dinámica" #: ../src/gtk/print.cpp:2014 msgid "Couldn't get hatch style from wxBrush." msgstr "" #: ../src/msw/thread.cpp:950 msgid "Couldn't get the current thread pointer" msgstr "No se pudo obtener el puntero al hilo de ejecución actual" #: ../src/osx/carbon/overlay.cpp:129 msgid "Couldn't init the context on the overlay window" msgstr "No se pudo inicializar el contexto en la ventana de superposición" #: ../src/common/imaggif.cpp:263 #, fuzzy msgid "Couldn't initialize GIF hash table." msgstr "No se puede inicializar el flujo de compresión de zlib." #: ../src/common/imagpng.cpp:657 msgid "Couldn't load a PNG image - file is corrupted or not enough memory." msgstr "" "No se pudo abrir imagen PNG - el archivo está corrupto o no hay suficiente " "memoria." #: ../src/unix/sound.cpp:470 #, c-format msgid "Couldn't load sound data from '%s'." msgstr "No se pudieron cargar los datos de sonido desde '%s'." #: ../src/msw/dirdlg.cpp:441 #, fuzzy msgid "Couldn't obtain folder name" msgstr "No se puede crear un temporizador" #: ../src/unix/sound_sdl.cpp:229 #, c-format msgid "Couldn't open audio: %s" msgstr "No se pudo abrir el dispositivo de sonido '%s'" #: ../src/msw/ole/dataobj.cpp:350 #, c-format msgid "Couldn't register clipboard format '%s'." msgstr "No se puede registrar formato de portapapeles '%s'" #: ../src/os2/thread.cpp:177 msgid "Couldn't release a mutex" msgstr "No se pudo liberar un mutex" #: ../src/msw/listctrl.cpp:756 #, c-format msgid "Couldn't retrieve information about list control item %d." msgstr "No se puede recuperar información sobre el elemento %d de la lista." #: ../src/common/imagpng.cpp:746 ../src/common/imagpng.cpp:757 #: ../src/common/imagpng.cpp:767 msgid "Couldn't save PNG image." msgstr "No se puede guardar la imagen PNG." #: ../src/msw/thread.cpp:715 msgid "Couldn't terminate thread" msgstr "No se puedo finalizar el hilo de ejecución" #: ../src/common/xtistrm.cpp:170 #, fuzzy, c-format msgid "Create Parameter %s not found in declared RTTI Parameters" msgstr "" "No se encontró el parámetro de creación en los parámetros RTTI declarados" #: ../src/generic/dirdlgg.cpp:317 msgid "Create directory" msgstr "Crear directorio" #: ../src/generic/filedlgg.cpp:228 ../src/generic/dirdlgg.cpp:131 msgid "Create new directory" msgstr "Crear nuevo directorio" #: ../src/common/accelcmn.cpp:322 #, fuzzy msgid "Ctrl+" msgstr "Ctrl-" #: ../src/richtext/richtextctrl.cpp:325 ../src/osx/textctrl_osx.cpp:582 #: ../src/common/stockitem.cpp:151 ../src/msw/textctrl.cpp:2283 msgid "Cu&t" msgstr "&Cortar" #: ../src/generic/filectrlg.cpp:956 msgid "Current directory:" msgstr "Directorio actual:" #: ../src/gtk/print.cpp:759 #, fuzzy msgid "Custom size" msgstr "tamaño de fuente" #: ../src/common/headerctrlcmn.cpp:60 #, fuzzy msgid "Customize Columns" msgstr "tamaño de fuente" #: ../src/common/stockitem.cpp:151 ../src/stc/stc_i18n.cpp:17 #, fuzzy msgid "Cut" msgstr "&Cortar" #: ../src/common/stockitem.cpp:259 msgid "Cut selection" msgstr "Cortar selección" #: ../src/common/fmapbase.cpp:152 msgid "Cyrillic (ISO-8859-5)" msgstr "Cirílico (ISO-8859-14)" #: ../src/common/paper.cpp:100 msgid "D sheet, 22 x 34 in" msgstr "Hoja D, 22 x 34 in" #: ../src/msw/dde.cpp:708 msgid "DDE poke request failed" msgstr "Fallo en la petición de rastreo DDE" #: ../src/common/accelcmn.cpp:79 msgid "DECIMAL" msgstr "DECIMAL" #: ../src/common/accelcmn.cpp:47 msgid "DEL" msgstr "BORR" #: ../src/common/accelcmn.cpp:48 msgid "DELETE" msgstr "BORRAR" #: ../src/common/imagbmp.cpp:1092 msgid "DIB Header: Encoding doesn't match bitdepth." msgstr "Cabecera DIB: La codificación no coincide con la profundidad de bits." #: ../src/common/imagbmp.cpp:1040 msgid "DIB Header: Image height > 32767 pixels for file." msgstr "Cabecera DIB: Altura de la imagen > 32767 pixels por archivo." #: ../src/common/imagbmp.cpp:1032 msgid "DIB Header: Image width > 32767 pixels for file." msgstr "Cabecera DIB: Anchura de imagen > 32767 pixels por archivo." #: ../src/common/imagbmp.cpp:1060 msgid "DIB Header: Unknown bitdepth in file." msgstr "Cabecera DIB: Profundidad de color desconocida en archivo." #: ../src/common/imagbmp.cpp:1074 msgid "DIB Header: Unknown encoding in file." msgstr "Cabecera DIB: Codificación desconocida en archivo." #: ../src/common/accelcmn.cpp:80 msgid "DIVIDE" msgstr "DIVIDE" #: ../src/common/paper.cpp:122 msgid "DL Envelope, 110 x 220 mm" msgstr "Sobre DL, 110 x 220 mm" #: ../src/common/accelcmn.cpp:59 msgid "DOWN" msgstr "ABAJO" #: ../src/richtext/richtextborderspage.cpp:545 msgid "Dashed" msgstr "" #: ../src/osx/carbon/dataview.cpp:1921 msgid "Data object has invalid data format" msgstr "" #: ../src/osx/carbon/dataview.cpp:2491 msgid "Date renderer cannot render value; value type: " msgstr "" #: ../src/generic/dbgrptg.cpp:300 #, c-format msgid "Debug report \"%s\"" msgstr "Informe de depuración \"%s\"" #: ../src/common/debugrpt.cpp:210 msgid "Debug report couldn't be created." msgstr "El informe de depuración no pudo crearse." #: ../src/common/debugrpt.cpp:558 msgid "Debug report generation has failed." msgstr "No se pudo crear el informe de depuración." #: ../src/generic/fontdlgg.cpp:323 msgid "Decorative" msgstr "Decorative" #: ../src/common/fmapbase.cpp:796 msgid "Default encoding" msgstr "Codificación predeterminada" #: ../src/dfb/fontmgr.cpp:180 #, fuzzy msgid "Default font" msgstr "Impresora predeterminada" #: ../src/generic/prntdlgg.cpp:510 msgid "Default printer" msgstr "Impresora predeterminada" #: ../src/richtext/richtextbuffer.cpp:7841 ../src/common/stockitem.cpp:152 #: ../src/stc/stc_i18n.cpp:20 msgid "Delete" msgstr "Eliminar" #: ../src/richtext/richtexttabspage.cpp:148 msgid "Delete A&ll" msgstr "Eliminar &Todo" #: ../src/richtext/richtextbuffer.cpp:10637 #, fuzzy msgid "Delete Column" msgstr "Borrar selección" #: ../src/richtext/richtextbuffer.cpp:10587 #, fuzzy msgid "Delete Row" msgstr "Eliminar" #: ../src/richtext/richtextstyledlg.cpp:779 msgid "Delete Style" msgstr "Eliminar Estilo" #: ../src/richtext/richtextctrl.cpp:1231 ../src/richtext/richtextctrl.cpp:1452 msgid "Delete Text" msgstr "Eliminar Texto" #: ../src/generic/editlbox.cpp:274 msgid "Delete item" msgstr "&Eliminar elemento" #: ../src/common/stockitem.cpp:260 msgid "Delete selection" msgstr "Borrar selección" #: ../src/richtext/richtextstyledlg.cpp:779 #, c-format msgid "Delete style %s?" msgstr "¿Eliminar estilo %s?" #: ../src/unix/snglinst.cpp:295 #, c-format msgid "Deleted stale lock file '%s'." msgstr "Archivo antiguo de bloqueo '%s' eliminado." #: ../src/common/module.cpp:124 #, c-format msgid "Dependency \"%s\" of module \"%s\" doesn't exist." msgstr "No existe la dependencia \"%s\" de módulo \"%s\"." #: ../src/common/stockitem.cpp:196 #, fuzzy msgid "Descending" msgstr "Codificación predeterminada" #: ../src/generic/dirctrlg.cpp:626 msgid "Desktop" msgstr "Escritorio" #: ../src/generic/aboutdlgg.cpp:70 msgid "Developed by " msgstr "Programado por" #: ../src/generic/aboutdlgg.cpp:176 #, fuzzy msgid "Developers" msgstr "Programado por" #: ../src/msw/dialup.cpp:393 msgid "" "Dial up functions are unavailable because the remote access service (RAS) is " "not installed on this machine. Please install it." msgstr "" "Las funciones de marcado no están disponibles porque los servicios de acceso " "remoto (RAS) no están instalados. Por favor instálelos." #: ../src/generic/tipdlg.cpp:230 msgid "Did you know..." msgstr "¿Sabías que...?" #: ../src/dfb/wrapdfb.cpp:63 #, fuzzy, c-format msgid "DirectFB error %d occurred." msgstr "Ha ocurrido un error DirectFB %d." #: ../src/motif/filedlg.cpp:219 msgid "Directories" msgstr "Directorios" #: ../src/common/filefn.cpp:1251 #, c-format msgid "Directory '%s' couldn't be created" msgstr "No pudo crearse directorio '%s'" #: ../src/common/filefn.cpp:1271 #, fuzzy, c-format msgid "Directory '%s' couldn't be deleted" msgstr "No pudo crearse directorio '%s'" #: ../src/generic/dirdlgg.cpp:233 msgid "Directory does not exist" msgstr "El directorio no existe" #: ../src/generic/filectrlg.cpp:1412 msgid "Directory doesn't exist." msgstr "El directorio no existe" #: ../src/common/docview.cpp:455 msgid "Discard changes and reload the last saved version?" msgstr "" #: ../src/html/helpwnd.cpp:512 msgid "" "Display all index items that contain given substring. Search is case " "insensitive." msgstr "" "Mostrar todos los elementos del índice que contengan la subcadena dada. La " "búsqueda es Insensitiva." #: ../src/html/helpwnd.cpp:692 msgid "Display options dialog" msgstr "Mostrar el diálogo de opciones" #: ../src/html/helpwnd.cpp:326 msgid "Displays help as you browse the books on the left." msgstr "Muestra la ayuda con el navegador de libros a la izquierda." #: ../src/msw/mimetype.cpp:732 msgid "" "Do you want to overwrite the command used to %s files with extension \"%s" "\" ?\n" "Current value is \n" "%s, \n" "New value is \n" "%s %1" msgstr "" "¿Quiere sobreescribir el comando usado en archivos %s con la extensión \"%s" "\"?\n" "Valor actual es \n" "%s, \n" "Nuevo valor es \n" "%s %1" #: ../src/common/docview.cpp:531 #, fuzzy, c-format msgid "Do you want to save changes to %s?" msgstr "¿Desea guardar los cambios hechos al documento %s?" #: ../src/common/prntbase.cpp:525 #, fuzzy msgid "Document:" msgstr "Documentación por " #: ../src/generic/aboutdlgg.cpp:73 msgid "Documentation by " msgstr "Documentación por " #: ../src/generic/aboutdlgg.cpp:180 #, fuzzy msgid "Documentation writers" msgstr "Documentación por " #: ../src/common/sizer.cpp:2680 msgid "Don't Save" msgstr "No guardar" #: ../src/msw/frame.cpp:122 ../src/html/htmlwin.cpp:611 msgid "Done" msgstr "Hecho" #: ../src/generic/progdlgg.cpp:481 ../src/msw/progdlg.cpp:407 msgid "Done." msgstr "Hecho." #: ../src/richtext/richtextborderspage.cpp:544 #, fuzzy msgid "Dotted" msgstr "Hecho" #: ../src/richtext/richtextborderspage.cpp:546 #, fuzzy msgid "Double" msgstr "Hecho" #: ../src/common/paper.cpp:177 msgid "Double Japanese Postcard Rotated 148 x 200 mm" msgstr "Tarjeta Japonesa Doble Girada 148 x 200 mm" #: ../src/common/xtixml.cpp:273 #, c-format msgid "Doubly used id : %d" msgstr "Identificador duplicado: %d" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:153 msgid "Down" msgstr "Abajo" #: ../src/richtext/richtextctrl.cpp:814 msgid "Drag" msgstr "" #: ../src/common/paper.cpp:101 msgid "E sheet, 34 x 44 in" msgstr "Hoja E, 34 x 44 in" #: ../src/common/accelcmn.cpp:61 msgid "END" msgstr "END" #: ../src/common/accelcmn.cpp:52 msgid "ENTER" msgstr "INTRO" #: ../src/unix/fswatcher_inotify.cpp:535 #, fuzzy msgid "EOF while reading from inotify descriptor" msgstr "no se puede leer desde el descriptor de archivo %d" #: ../src/common/accelcmn.cpp:64 msgid "ESC" msgstr "ESC" #: ../src/common/accelcmn.cpp:65 msgid "ESCAPE" msgstr "ESCAPE" #: ../src/common/accelcmn.cpp:73 msgid "EXECUTE" msgstr "EJECUTAR" #: ../src/common/stockitem.cpp:154 #, fuzzy msgid "Edit" msgstr "&Editar" #: ../src/generic/editlbox.cpp:272 msgid "Edit item" msgstr "Editar elemento" #: ../include/wx/generic/progdlgg.h:84 #, fuzzy msgid "Elapsed time:" msgstr "Tiempo transcurrido : " #: ../src/richtext/richtextsizepage.cpp:353 #: ../src/richtext/richtextsizepage.cpp:355 #: ../src/richtext/richtextsizepage.cpp:465 #: ../src/richtext/richtextsizepage.cpp:467 msgid "Enable the height value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:438 #: ../src/richtext/richtextsizepage.cpp:440 #, fuzzy msgid "Enable the maximum width value." msgstr "No se puede iniciar la impresión." #: ../src/richtext/richtextsizepage.cpp:411 #: ../src/richtext/richtextsizepage.cpp:413 msgid "Enable the minimum height value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:384 #: ../src/richtext/richtextsizepage.cpp:386 #, fuzzy msgid "Enable the minimum width value." msgstr "No se puede iniciar la impresión." #: ../src/richtext/richtextsizepage.cpp:319 #: ../src/richtext/richtextsizepage.cpp:321 msgid "Enable the width value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:280 #: ../src/richtext/richtextsizepage.cpp:282 #, fuzzy msgid "Enable vertical alignment." msgstr "No se puede iniciar la impresión." #: ../src/richtext/richtextbackgroundpage.cpp:133 #: ../src/richtext/richtextbackgroundpage.cpp:135 #, fuzzy msgid "Enables a background colour." msgstr "Color de fondo" #: ../src/richtext/richtextstyledlg.cpp:931 #, fuzzy msgid "Enter a box style name" msgstr "Introduzca un nombre de estilo de lista" #: ../src/richtext/richtextstyledlg.cpp:603 msgid "Enter a character style name" msgstr "Introduzca un nombre de estilo de caracter" #: ../src/richtext/richtextstyledlg.cpp:817 msgid "Enter a list style name" msgstr "Introduzca un nombre de estilo de lista" #: ../src/richtext/richtextstyledlg.cpp:890 #, fuzzy msgid "Enter a new style name" msgstr "Introduzca un nombre de estilo de lista" #: ../src/richtext/richtextstyledlg.cpp:651 msgid "Enter a paragraph style name" msgstr "Introduzca un nombre de estilo de párrafo" #: ../src/generic/dbgrptg.cpp:174 #, c-format msgid "Enter command to open file \"%s\":" msgstr "Introduzca comando para abrir archivo \"%s\":" #: ../src/generic/helpext.cpp:463 msgid "Entries found" msgstr "Documentos encontrados" #: ../src/common/paper.cpp:143 msgid "Envelope Invite 220 x 220 mm" msgstr "Envelope Invite 220 x 220 mm" #: ../src/common/config.cpp:473 #, c-format msgid "" "Environment variables expansion failed: missing '%c' at position %u in '%s'." msgstr "" "Fallo en expansión de variable de entorno: falta '%c' en la posición %u en " "'%s'." #: ../src/generic/dirctrlg.cpp:670 ../src/generic/dirctrlg.cpp:688 #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:791 #: ../src/generic/filectrlg.cpp:805 ../src/generic/filectrlg.cpp:821 #: ../src/generic/filectrlg.cpp:1381 ../src/generic/filectrlg.cpp:1412 #: ../src/gtk/filedlg.cpp:73 ../src/gtk1/fontdlg.cpp:74 msgid "Error" msgstr "Error" #: ../src/unix/epolldispatcher.cpp:103 #, fuzzy msgid "Error closing epoll descriptor" msgstr "Error creando directorio" #: ../src/unix/fswatcher_kqueue.cpp:114 #, fuzzy msgid "Error closing kqueue instance" msgstr "Error creando directorio" #: ../src/generic/dirdlgg.cpp:251 msgid "Error creating directory" msgstr "Error creando directorio" #: ../src/common/imagbmp.cpp:1103 msgid "Error in reading image DIB." msgstr "Error al leer imagen DIB." #: ../src/propgrid/propgrid.cpp:6563 #, c-format msgid "Error in resource: %s" msgstr "" #: ../src/common/fileconf.cpp:453 msgid "Error reading config options." msgstr "Error al leer las opciones de configuración." #: ../src/common/fileconf.cpp:1064 msgid "Error saving user configuration data." msgstr "Error al guardar los datos de configuración del usuario." #: ../src/gtk/print.cpp:671 #, fuzzy msgid "Error while printing: " msgstr "Error al escribir en el semáforo" #: ../src/common/log.cpp:223 msgid "Error: " msgstr "Error: " #: ../src/common/fmapbase.cpp:150 msgid "Esperanto (ISO-8859-3)" msgstr "Esperanto (ISO-8859-3)" #: ../include/wx/generic/progdlgg.h:85 #, fuzzy msgid "Estimated time:" msgstr "Tiempo estimado : " #: ../src/unix/fswatcher_inotify.cpp:639 msgid "Event queue overflowed" msgstr "" #: ../src/generic/dbgrptg.cpp:234 #, fuzzy msgid "Executable files (*.exe)|*.exe|" msgstr "Archivos ejecutable (*.exe)|*.exe|Todos los archivos (*.*)|*.*||" #: ../src/common/stockitem.cpp:155 msgid "Execute" msgstr "" #: ../src/msw/utilsexc.cpp:888 #, c-format msgid "Execution of command '%s' failed" msgstr "Falló la ejecución del comando '%s'" #: ../src/os2/utilsexc.cpp:163 #, c-format msgid "Execution of command '%s' failed with error: %ul" msgstr "Falló la ejecución del comando '%s' con el error: %ul" #: ../src/common/paper.cpp:106 msgid "Executive, 7 1/4 x 10 1/2 in" msgstr "Executive, 7 1/4 x 10 1/2 in" #: ../src/msw/registry.cpp:1230 #, c-format msgid "" "Exporting registry key: file \"%s\" already exists and won't be overwritten." msgstr "" "Exportando clave de registro: archivo \"%s\" existente que no se " "sobreescribirá." #: ../src/common/fmapbase.cpp:195 msgid "Extended Unix Codepage for Japanese (EUC-JP)" msgstr "Página de Códigos Unix Extendida para Japonés (EUC-JP)" #: ../src/html/chm.cpp:725 #, c-format msgid "Extraction of '%s' into '%s' failed." msgstr "Falló la extracción de '%s' de '%s'" #: ../src/common/accelcmn.cpp:238 ../src/common/accelcmn.cpp:333 msgid "F" msgstr "F" #: ../src/propgrid/advprops.cpp:640 #, fuzzy msgid "Face Name" msgstr "Nuevo Nombre" #: ../src/unix/snglinst.cpp:269 msgid "Failed to access lock file." msgstr "Fallo al acceder al archivo de bloqueo." #: ../src/unix/epolldispatcher.cpp:116 #, fuzzy, c-format msgid "Failed to add descriptor %d to epoll descriptor %d" msgstr "no se puede escribir el descriptor de archivo %d" #: ../src/msw/dib.cpp:548 #, fuzzy, c-format msgid "Failed to allocate %luKb of memory for bitmap data." msgstr "" "No se pudieron reservar %luKb de memoria para los datos del mapa de bits." #: ../src/common/glcmn.cpp:87 #, fuzzy msgid "Failed to allocate colour for OpenGL" msgstr "Fallo al crear el cursor." #: ../src/unix/displayx11.cpp:288 msgid "Failed to change video mode" msgstr "Error al cambiar el modo de vídeo" #: ../src/common/image.cpp:3139 #, fuzzy, c-format msgid "Failed to check format of image file \"%s\"." msgstr "No se pudo guardar la imagen de mapa de bits en el archivo \"%s\"." #: ../src/common/debugrpt.cpp:244 #, c-format msgid "Failed to clean up debug report directory \"%s\"" msgstr "No se pudo vaciar el directorio de informe de depuración \"%s\"" #: ../src/common/filename.cpp:211 msgid "Failed to close file handle" msgstr "Error al cerrar el manejador del archivo" #: ../src/unix/snglinst.cpp:334 #, c-format msgid "Failed to close lock file '%s'" msgstr "No se pudo cerrar el archivo de bloqueo '%s'" #: ../src/msw/clipbrd.cpp:115 msgid "Failed to close the clipboard." msgstr "Error al cerrar el portapapeles." #: ../src/x11/utils.cpp:204 #, c-format msgid "Failed to close the display \"%s\"" msgstr "No se pudo cerrar el display \"%s\"" #: ../src/msw/dialup.cpp:818 msgid "Failed to connect: missing username/password." msgstr "Fallo al conectar: faltan usuario/contraseña." #: ../src/msw/dialup.cpp:764 msgid "Failed to connect: no ISP to dial." msgstr "Fallo al conectar: no hay ISP al que llamar." #: ../src/common/textfile.cpp:200 #, fuzzy, c-format msgid "Failed to convert file \"%s\" to Unicode." msgstr "Error al convertir los contenidos del archivo a Unicode." #: ../src/generic/logg.cpp:976 #, fuzzy msgid "Failed to copy dialog contents to the clipboard." msgstr "Error al abrir el portapapeles." #: ../src/msw/registry.cpp:691 #, c-format msgid "Failed to copy registry value '%s'" msgstr "Error al copiar el valor '%s' del registro" #: ../src/msw/registry.cpp:700 #, c-format msgid "Failed to copy the contents of registry key '%s' to '%s'." msgstr "Fallo al copiar los contenidos de la clave del registro '%s' a '%s'." #: ../src/common/filefn.cpp:1058 #, c-format msgid "Failed to copy the file '%s' to '%s'" msgstr "No se pudo copiar el archivo '%s' a '%s'" #: ../src/msw/registry.cpp:678 #, c-format msgid "Failed to copy the registry subkey '%s' to '%s'." msgstr "Error al copiar la subclave del registro '%s' en '%s'." #: ../src/msw/dde.cpp:1073 msgid "Failed to create DDE string" msgstr "Fallo al crear cadena DDE" #: ../src/msw/mdi.cpp:590 msgid "Failed to create MDI parent frame." msgstr "Fallo al crear panel MDI padre" #: ../src/common/filename.cpp:1080 msgid "Failed to create a temporary file name" msgstr "No se pudo crear un nombre temporal de archivo" #: ../src/msw/utilsexc.cpp:235 msgid "Failed to create an anonymous pipe" msgstr "Fallo al crear canal anónimo" #: ../src/msw/ole/automtn.cpp:522 #, fuzzy, c-format msgid "Failed to create an instance of \"%s\"" msgstr "No se pudo crear el directorio \"%s\"" #: ../src/msw/dde.cpp:442 #, c-format msgid "Failed to create connection to server '%s' on topic '%s'" msgstr "Fallo al crear la conexión al servidor '%s' en '%s'" #: ../src/msw/cursor.cpp:212 msgid "Failed to create cursor." msgstr "Fallo al crear el cursor." #: ../src/common/debugrpt.cpp:209 #, c-format msgid "Failed to create directory \"%s\"" msgstr "No se pudo crear el directorio \"%s\"" #: ../src/generic/dirdlgg.cpp:249 #, c-format msgid "" "Failed to create directory '%s'\n" "(Do you have the required permissions?)" msgstr "" "Fallo al crear directorio '%s'\n" "(¿Tiene los permisos necesarios?)" #: ../src/unix/epolldispatcher.cpp:84 #, fuzzy msgid "Failed to create epoll descriptor" msgstr "Fallo al crear el cursor." #: ../src/msw/mimetype.cpp:198 #, c-format msgid "Failed to create registry entry for '%s' files." msgstr "No se pudo crear entrada del registro para los archivos '%s'." #: ../src/msw/fdrepdlg.cpp:442 #, c-format msgid "Failed to create the standard find/replace dialog (error code %d)" msgstr "" "Fallo al crear el diálogo estándar de buscar/reemplazar (código error %d)" #: ../src/unix/wakeuppipe.cpp:52 #, fuzzy msgid "Failed to create wake up pipe used by event loop." msgstr "Fallo al crear barra de estado." #: ../src/html/winpars.cpp:739 #, c-format msgid "Failed to display HTML document in %s encoding" msgstr "Error al mostrar el documento HTML con codificación %s" #: ../src/msw/clipbrd.cpp:127 msgid "Failed to empty the clipboard." msgstr "Fallo al vaciar el portapapeles." #: ../src/unix/displayx11.cpp:265 msgid "Failed to enumerate video modes" msgstr "Fallo al enumerar los modos de vídeo." #: ../src/msw/dde.cpp:727 msgid "Failed to establish an advise loop with DDE server" msgstr "Fallo al establecer un lazo de aviso con el servidor DDE" #: ../src/msw/dialup.cpp:650 ../src/msw/dialup.cpp:884 #, c-format msgid "Failed to establish dialup connection: %s" msgstr "Fallo al establecer la conexión: %s" #: ../src/unix/utilsunx.cpp:617 #, c-format msgid "Failed to execute '%s'\n" msgstr "Error al ejecutar '%s'\n" #: ../src/common/debugrpt.cpp:725 msgid "Failed to execute curl, please install it in PATH." msgstr "Fallo al ejecutar bucle, por favor, instálelo en el PATH." #: ../src/msw/ole/automtn.cpp:505 #, fuzzy, c-format msgid "Failed to find CLSID of \"%s\"" msgstr "No se pudo abrir display \"%s\"." #: ../src/common/regex.cpp:434 ../src/common/regex.cpp:482 #, c-format msgid "Failed to find match for regular expression: %s" msgstr "Failed to find match for regular expression: %s" #: ../src/msw/dialup.cpp:716 #, c-format msgid "Failed to get ISP names: %s" msgstr "Error al obtener nombres de ISP: %s" #: ../src/msw/ole/automtn.cpp:574 #, fuzzy, c-format msgid "Failed to get OLE automation interface for \"%s\"" msgstr "No se pudo crear el directorio \"%s\"" #: ../src/msw/clipbrd.cpp:747 msgid "Failed to get data from the clipboard" msgstr "Error al obtener datos del portapapeles" #: ../src/common/time.cpp:249 msgid "Failed to get the local system time" msgstr "Error al obtener el sistema horario local" #: ../src/common/filefn.cpp:1453 msgid "Failed to get the working directory" msgstr "Error al obtener el directorio de trabajo" #: ../src/univ/theme.cpp:113 msgid "Failed to initialize GUI: no built-in themes found." msgstr "Fallo al inicializar GUI: no se encontraron temas." #: ../src/msw/helpchm.cpp:63 msgid "Failed to initialize MS HTML Help." msgstr "Fallo al inicializar Ayuda MS HTML." #: ../src/msw/glcanvas.cpp:892 msgid "Failed to initialize OpenGL" msgstr "Fallo al inicializar OpenGL." #: ../src/msw/dialup.cpp:879 #, fuzzy, c-format msgid "Failed to initiate dialup connection: %s" msgstr "Error al terminar la conexión: %s" #: ../src/gtk/textctrl.cpp:1117 msgid "Failed to insert text in the control." msgstr "No se pudo insertar texto en el control." #: ../src/unix/snglinst.cpp:241 #, c-format msgid "Failed to inspect the lock file '%s'" msgstr "Error al inspeccionar el archivo de bloqueo '%s'" #: ../src/unix/appunix.cpp:182 #, fuzzy msgid "Failed to install signal handler" msgstr "Error al cerrar el manejador del archivo" #: ../src/unix/threadpsx.cpp:1162 msgid "" "Failed to join a thread, potential memory leak detected - please restart the " "program" msgstr "" "Error al sincronizar con un hilo de ejecución, pérdida potencial de memoría " "detectada - por favor reinicie el programa" #: ../src/msw/utils.cpp:745 #, c-format msgid "Failed to kill process %d" msgstr "Error al matar el proceso %d" #: ../src/common/image.cpp:2365 #, fuzzy, c-format msgid "Failed to load bitmap \"%s\" from resources." msgstr "No se pudo abrir imagen %d desde el archivo '%s'." #: ../src/common/image.cpp:2374 #, fuzzy, c-format msgid "Failed to load icon \"%s\" from resources." msgstr "No se pudo abrir imagen %d desde el archivo '%s'." #: ../src/common/iconbndl.cpp:182 #, fuzzy, c-format msgid "Failed to load image %%d from file '%s'." msgstr "No se pudo abrir imagen %d desde el archivo '%s'." #: ../src/common/iconbndl.cpp:190 #, fuzzy, c-format msgid "Failed to load image %d from stream." msgstr "No se pudo abrir imagen %d desde el archivo '%s'." #: ../src/common/image.cpp:2450 ../src/common/image.cpp:2469 #, fuzzy, c-format msgid "Failed to load image from file \"%s\"." msgstr "No se pudo abrir imagen %d desde el archivo '%s'." #: ../src/msw/enhmeta.cpp:97 #, c-format msgid "Failed to load metafile from file \"%s\"." msgstr "No se pudo abrir el metaarchivo desde el archivo \"%s\"." #: ../src/msw/volume.cpp:327 msgid "Failed to load mpr.dll." msgstr "Error al cargar mpr.dll." #: ../src/msw/utils.cpp:1120 #, fuzzy, c-format msgid "Failed to load resource \"%s\"." msgstr "No se pudo abrir el metaarchivo desde el archivo \"%s\"." #: ../src/common/dynlib.cpp:100 #, c-format msgid "Failed to load shared library '%s'" msgstr "No se pudo abrir la librería dinámica '%s'" #: ../src/msw/utils.cpp:1127 #, fuzzy, c-format msgid "Failed to lock resource \"%s\"." msgstr "No se pudo bloquear el bloqueo del archivo '%s'" #: ../src/unix/snglinst.cpp:198 #, c-format msgid "Failed to lock the lock file '%s'" msgstr "No se pudo bloquear el bloqueo del archivo '%s'" #: ../src/unix/epolldispatcher.cpp:136 #, c-format msgid "Failed to modify descriptor %d in epoll descriptor %d" msgstr "" #: ../src/common/filename.cpp:2681 #, c-format msgid "Failed to modify file times for '%s'" msgstr "No se pudo modificar la horas del archivo para '%s'" #: ../src/common/selectdispatcher.cpp:252 msgid "Failed to monitor I/O channels" msgstr "" #: ../src/common/filename.cpp:194 #, fuzzy, c-format msgid "Failed to open '%s' for reading" msgstr "Error al abrir '%s' para '%s'" #: ../src/common/filename.cpp:199 #, fuzzy, c-format msgid "Failed to open '%s' for writing" msgstr "Error al abrir '%s' para '%s'" #: ../src/html/chm.cpp:141 #, c-format msgid "Failed to open CHM archive '%s'." msgstr "Error al abrir el archivo CHM '%s'" #: ../src/common/utilscmn.cpp:1135 #, fuzzy, c-format msgid "Failed to open URL \"%s\" in default browser." msgstr "Error al abrir '%s' para '%s'" #: ../include/wx/msw/private/fswatcher.h:92 #, fuzzy, c-format msgid "Failed to open directory \"%s\" for monitoring." msgstr "Error al abrir '%s' para '%s'" #: ../src/x11/utils.cpp:223 #, c-format msgid "Failed to open display \"%s\"." msgstr "No se pudo abrir display \"%s\"." #: ../src/common/filename.cpp:1115 msgid "Failed to open temporary file." msgstr "No se pudo abrir archivo temporal." #: ../src/msw/clipbrd.cpp:94 msgid "Failed to open the clipboard." msgstr "Error al abrir el portapapeles." #: ../src/common/translation.cpp:1170 #, fuzzy, c-format msgid "Failed to parse Plural-Forms: '%s'" msgstr "No se pueden analizar las formas plurales '%s'." #: ../src/unix/mediactrl.cpp:1268 #, fuzzy, c-format msgid "Failed to prepare playing \"%s\"." msgstr "No se pudo abrir display \"%s\"." #: ../src/msw/clipbrd.cpp:647 msgid "Failed to put data on the clipboard" msgstr "Error al poner datos en el portapapeles" #: ../src/unix/snglinst.cpp:278 msgid "Failed to read PID from lock file." msgstr "Error al leer PID de archivo de bloqueo." #: ../src/common/fileconf.cpp:464 #, fuzzy msgid "Failed to read config options." msgstr "Error al leer las opciones de configuración." #: ../src/common/docview.cpp:678 #, fuzzy, c-format msgid "Failed to read document from the file \"%s\"." msgstr "No se pudo abrir el metaarchivo desde el archivo \"%s\"." #: ../src/dfb/evtloop.cpp:98 #, fuzzy msgid "Failed to read event from DirectFB pipe" msgstr "Error al leer PID de archivo de bloqueo." #: ../src/unix/wakeuppipe.cpp:120 #, fuzzy msgid "Failed to read from wake-up pipe" msgstr "Error al leer PID de archivo de bloqueo." #: ../src/unix/utilsunx.cpp:685 msgid "Failed to redirect child process input/output" msgstr "Error en la redirección de la entrada/salida del proceso hijo" #: ../src/msw/utilsexc.cpp:697 msgid "Failed to redirect the child process IO" msgstr "Error en la redirección de la entrada/salida del proceso hijo" #: ../src/msw/dde.cpp:293 #, c-format msgid "Failed to register DDE server '%s'" msgstr "Error al registrar el servidor DDE '%s'" #: ../src/common/fontmap.cpp:245 #, c-format msgid "Failed to remember the encoding for the charset '%s'." msgstr "Error al recordar la codificación para el conjunto de caracteres '%s'." #: ../src/common/debugrpt.cpp:227 #, c-format msgid "Failed to remove debug report file \"%s\"" msgstr "No se pudo eliminar el archivo de informe de depuración '%s'" #: ../src/unix/snglinst.cpp:322 #, c-format msgid "Failed to remove lock file '%s'" msgstr "No se pudo quitar el archivo de bloqueo '%s'" #: ../src/unix/snglinst.cpp:288 #, c-format msgid "Failed to remove stale lock file '%s'." msgstr "No se pudo eliminar el antiguo archivo de bloqueo '%s'." #: ../src/msw/registry.cpp:528 #, c-format msgid "Failed to rename registry value '%s' to '%s'." msgstr "Fallo al renombrar valor del registro '%s' a '%s'." #: ../src/common/filefn.cpp:1168 #, c-format msgid "" "Failed to rename the file '%s' to '%s' because the destination file already " "exists." msgstr "" "No se pudo renombrar el archivo '%s' a '%s' porque el archivo de destino ya " "existe." #: ../src/msw/registry.cpp:633 #, c-format msgid "Failed to rename the registry key '%s' to '%s'." msgstr "Error al renombrar la clave del registro '%s' a '%s'." #: ../src/msw/clipbrd.cpp:497 msgid "Failed to retrieve data from the clipboard." msgstr "Error al obtener datos del portapapeles." #: ../src/common/filename.cpp:2777 #, c-format msgid "Failed to retrieve file times for '%s'" msgstr "No se pudo obtener horas del archivo para '%s'" #: ../src/msw/dialup.cpp:487 msgid "Failed to retrieve text of RAS error message" msgstr "Fallo al recuperar el mensaje de error de RAS" #: ../src/msw/clipbrd.cpp:784 msgid "Failed to retrieve the supported clipboard formats" msgstr "Fallo al recuperar los formatos soportados del portapapeles" #: ../src/common/docview.cpp:649 #, fuzzy, c-format msgid "Failed to save document to the file \"%s\"." msgstr "No se pudo guardar la imagen de mapa de bits en el archivo \"%s\"." #: ../src/msw/dib.cpp:326 #, c-format msgid "Failed to save the bitmap image to file \"%s\"." msgstr "No se pudo guardar la imagen de mapa de bits en el archivo \"%s\"." #: ../src/msw/dde.cpp:768 msgid "Failed to send DDE advise notification" msgstr "Fallo al enviar notificación de aviso DDE" #: ../src/common/ftp.cpp:404 #, c-format msgid "Failed to set FTP transfer mode to %s." msgstr "Error al establecer modo de transferencia FTP a '%s'" #: ../src/msw/clipbrd.cpp:373 msgid "Failed to set clipboard data." msgstr "Error al colocar datos en el portapapeles." #: ../src/unix/snglinst.cpp:181 #, c-format msgid "Failed to set permissions on lock file '%s'" msgstr "No se pudieron establecer permisos para el archivo de bloqueo '%s'" #: ../src/unix/utilsunx.cpp:674 #, fuzzy msgid "Failed to set process priority" msgstr "Error al establecer la prioridad del hilo de ejecución %d." #: ../src/common/file.cpp:576 msgid "Failed to set temporary file permissions" msgstr "No se pudieron cambiar permisos del archivo temporal" #: ../src/gtk/textctrl.cpp:1058 msgid "Failed to set text in the text control." msgstr "No se pudo colocar texto en el control de texto." #: ../src/unix/threadpsx.cpp:1293 #, fuzzy, c-format msgid "Failed to set thread concurrency level to %lu" msgstr "Error al establecer la prioridad del hilo de ejecución %d." #: ../src/unix/threadpsx.cpp:1377 ../src/unix/threadpsx.cpp:1387 #, c-format msgid "Failed to set thread priority %d." msgstr "Error al establecer la prioridad del hilo de ejecución %d." #: ../src/unix/utilsunx.cpp:791 msgid "Failed to set up non-blocking pipe, the program might hang." msgstr "" #: ../src/common/fs_mem.cpp:261 #, c-format msgid "Failed to store image '%s' to memory VFS!" msgstr "¡Error al almacenar la imagen '%s' en VFS de memoria!" #: ../src/dfb/evtloop.cpp:170 msgid "Failed to switch DirectFB pipe to non-blocking mode" msgstr "" #: ../src/unix/wakeuppipe.cpp:59 msgid "Failed to switch wake up pipe to non-blocking mode" msgstr "" #: ../src/unix/threadpsx.cpp:1569 msgid "Failed to terminate a thread." msgstr "Error al terminar un hilo de ejecución." #: ../src/msw/dde.cpp:746 msgid "Failed to terminate the advise loop with DDE server" msgstr "Error al terminar el bucle de aviso con el servidor DDE" #: ../src/msw/dialup.cpp:959 #, c-format msgid "Failed to terminate the dialup connection: %s" msgstr "Error al terminar la conexión: %s" #: ../src/common/filename.cpp:2696 #, c-format msgid "Failed to touch the file '%s'" msgstr "No se pudo retocar' el archivo '%s'" #: ../src/unix/snglinst.cpp:328 #, c-format msgid "Failed to unlock lock file '%s'" msgstr "No se pudo desbloquear el archivo de bloqueo '%s'" #: ../src/msw/dde.cpp:314 #, c-format msgid "Failed to unregister DDE server '%s'" msgstr "Error al desregistrar el servidor DDE '%s'" #: ../src/unix/epolldispatcher.cpp:155 #, fuzzy, c-format msgid "Failed to unregister descriptor %d from epoll descriptor %d" msgstr "Error al obtener datos del portapapeles." #: ../src/common/fileconf.cpp:1037 msgid "Failed to update user configuration file." msgstr "No se pudo actualizar el archivo de configuración de usuario." #: ../src/common/debugrpt.cpp:738 #, c-format msgid "Failed to upload the debug report (error code %d)." msgstr "Fallo al enviar el informe de depuración (código error %d)" #: ../src/unix/snglinst.cpp:168 #, c-format msgid "Failed to write to lock file '%s'" msgstr "No se pudo escribir al bloquear el archivo '%s'" #: ../src/propgrid/propgrid.cpp:172 #, fuzzy msgid "False" msgstr "Archivo" #: ../src/propgrid/advprops.cpp:658 #, fuzzy msgid "Family" msgstr "&Fuente:" #: ../src/common/stockitem.cpp:157 ../src/msw/wince/filedlgwce.cpp:121 msgid "File" msgstr "Archivo" #: ../src/common/docview.cpp:666 #, fuzzy, c-format msgid "File \"%s\" could not be opened for reading." msgstr "Error al abrir '%s' para '%s'" #: ../src/common/docview.cpp:643 #, fuzzy, c-format msgid "File \"%s\" could not be opened for writing." msgstr "Error al abrir '%s' para '%s'" #: ../src/gtk/filedlg.cpp:56 #, c-format msgid "File '%s' already exists, do you really want to overwrite it?" msgstr "El archivo '%s' ya existe, ¿realmente quiere sobreescribirlo?" #: ../src/os2/filedlg.cpp:310 #, c-format msgid "" "File '%s' already exists.\n" "Do you want to replace it?" msgstr "" "El archivo '%s' ya existe.\n" "¿Realmente quiere sobreescribirlo?" #: ../src/common/filefn.cpp:1207 #, fuzzy, c-format msgid "File '%s' couldn't be removed" msgstr "No pudo crearse directorio '%s'" #: ../src/common/filefn.cpp:1187 #, fuzzy, c-format msgid "File '%s' couldn't be renamed '%s'" msgstr "No pudo crearse directorio '%s'" #: ../src/richtext/richtextctrl.cpp:2688 ../src/common/textcmn.cpp:921 msgid "File couldn't be loaded." msgstr "No se pudo abrir el archivo." #: ../src/msw/filedlg.cpp:458 #, fuzzy, c-format msgid "File dialog failed with error code %0lx." msgstr "Falló la ejecución del comando '%s' con el error: %ul" #: ../src/common/docview.cpp:1771 msgid "File error" msgstr "Error de archivo" #: ../src/generic/dirctrlg.cpp:688 ../src/generic/filectrlg.cpp:805 msgid "File name exists already." msgstr "Ya existe un archivo con el mismo nombre." #: ../src/motif/filedlg.cpp:220 msgid "Files" msgstr "Archivos" #: ../src/common/filefn.cpp:1761 #, c-format msgid "Files (%s)" msgstr "Archivos (%s)" #: ../src/motif/filedlg.cpp:218 msgid "Filter" msgstr "Filtro" #: ../src/common/stockitem.cpp:158 ../src/html/helpwnd.cpp:500 msgid "Find" msgstr "Buscar" #: ../src/common/stockitem.cpp:159 #, fuzzy msgid "First" msgstr "primero" #: ../src/common/prntbase.cpp:1518 #, fuzzy msgid "First page" msgstr "Página siguiente" #: ../src/richtext/richtextsizepage.cpp:521 #, fuzzy msgid "Fixed" msgstr "Fuente fija:" #: ../src/html/helpwnd.cpp:1219 msgid "Fixed font:" msgstr "Fuente fija:" #: ../src/html/helpwnd.cpp:1282 msgid "Fixed size face.
    bold italic " msgstr "Monoespaciado.
    negrita cursiva " #: ../src/richtext/richtextsizepage.cpp:229 #, fuzzy msgid "Floating" msgstr "Formateando" #: ../src/common/stockitem.cpp:160 #, fuzzy msgid "Floppy" msgstr "&Copiar" #: ../src/common/paper.cpp:112 msgid "Folio, 8 1/2 x 13 in" msgstr "Folio, 8 1/2 x 13 in" #: ../src/richtext/richtextformatdlg.cpp:324 ../src/osx/carbon/fontdlg.cpp:473 #: ../src/common/stockitem.cpp:194 msgid "Font" msgstr "Fuente" #: ../src/richtext/richtextfontpage.cpp:230 msgid "Font &weight:" msgstr "&Peso de la fuente:" #: ../src/html/helpwnd.cpp:1220 msgid "Font size:" msgstr "Tamaño de fuente:" #: ../src/richtext/richtextfontpage.cpp:217 msgid "Font st&yle:" msgstr "&Estilo de fuente:" #: ../src/osx/carbon/fontdlg.cpp:515 msgid "Font:" msgstr "Fuente:" #: ../src/dfb/fontmgr.cpp:198 #, c-format msgid "Fonts index file %s disappeared while loading fonts." msgstr "" #: ../src/unix/utilsunx.cpp:651 msgid "Fork failed" msgstr "Error en bifurcación de proceso (fork)" #: ../src/common/stockitem.cpp:161 #, fuzzy msgid "Forward" msgstr "Adelante" #: ../src/common/xtixml.cpp:235 msgid "Forward hrefs are not supported" msgstr "Las hiper-referencias del tipo \"forward\" no están soportadas" #: ../src/html/helpwnd.cpp:888 #, c-format msgid "Found %i matches" msgstr "Encontrada(s) %i coincidencias" #: ../src/generic/prntdlgg.cpp:238 msgid "From:" msgstr "De:" #: ../src/common/imaggif.cpp:160 msgid "GIF: Invalid gif index." msgstr "GIF: Indice de gif no válido." #: ../src/common/imaggif.cpp:150 msgid "GIF: data stream seems to be truncated." msgstr "GIF: flujo de datos parece haberse truncado." #: ../src/common/imaggif.cpp:134 msgid "GIF: error in GIF image format." msgstr "GIF: error en formato de imagen GIF." #: ../src/common/imaggif.cpp:137 msgid "GIF: not enough memory." msgstr "GIF: memoria insuficiente." #: ../src/common/imaggif.cpp:140 msgid "GIF: unknown error!!!" msgstr "¡¡GIF: error desconocido!!" #: ../src/gtk/window.cpp:4288 msgid "" "GTK+ installed on this machine is too old to support screen compositing, " "please install GTK+ 2.12 or later." msgstr "" #: ../src/univ/themes/gtk.cpp:525 msgid "GTK+ theme" msgstr "Tema GTK+" #: ../src/common/preferencescmn.cpp:39 msgid "General" msgstr "" #: ../src/common/prntbase.cpp:243 msgid "Generic PostScript" msgstr "PostScript genérica" #: ../src/common/paper.cpp:136 msgid "German Legal Fanfold, 8 1/2 x 13 in" msgstr "German Legal Fanfold, 8 1/2 x 13 in" #: ../src/common/paper.cpp:135 msgid "German Std Fanfold, 8 1/2 x 12 in" msgstr "German Std Fanfold, 8 1/2 x 12 in" #: ../include/wx/xtiprop.h:188 msgid "GetProperty called w/o valid getter" msgstr "Se llamó a GetProperty sin un obtenedor válido" #: ../include/wx/xtiprop.h:266 msgid "GetPropertyCollection called on a generic accessor" msgstr "Se llamó a GetPropertyCollection sobre un accedente genérico" #: ../include/wx/xtiprop.h:206 msgid "GetPropertyCollection called w/o valid collection getter" msgstr "Se llamó a GetPropertyCollection sin un obtenedor de colección válido" #: ../src/html/helpwnd.cpp:673 msgid "Go back" msgstr "Atrás" #: ../src/html/helpwnd.cpp:674 msgid "Go forward" msgstr "Adelante" #: ../src/html/helpwnd.cpp:676 msgid "Go one level up in document hierarchy" msgstr "Subir un nivel en la jerarquía del documento" #: ../src/generic/filedlgg.cpp:223 ../src/generic/dirdlgg.cpp:136 msgid "Go to home directory" msgstr "Ir al directorio principal" #: ../src/generic/filedlgg.cpp:219 msgid "Go to parent directory" msgstr "Ir al directorio superior" #: ../src/generic/aboutdlgg.cpp:76 msgid "Graphics art by " msgstr "Gráficos por" #: ../src/common/fmapbase.cpp:154 msgid "Greek (ISO-8859-7)" msgstr "Greek (ISO-8859-7)" #: ../src/richtext/richtextborderspage.cpp:547 msgid "Groove" msgstr "" #: ../src/common/zstream.cpp:158 ../src/common/zstream.cpp:318 msgid "Gzip not supported by this version of zlib" msgstr "Gzip no está soportado por esta versión de zlib" #: ../src/common/accelcmn.cpp:75 msgid "HELP" msgstr "AYUDA" #: ../src/common/accelcmn.cpp:60 msgid "HOME" msgstr "INICIO" #: ../src/html/helpwnd.cpp:1552 msgid "HTML Help Project (*.hhp)|*.hhp|" msgstr "Proyecto de ayuda HTML (*.hhp)|*.hhp|" #: ../src/html/htmlwin.cpp:659 #, c-format msgid "HTML anchor %s does not exist." msgstr "El anclaje HTML %s no existe." #: ../src/html/helpwnd.cpp:1550 msgid "HTML files (*.html;*.htm)|*.html;*.htm|" msgstr "Archivos HTML (*.html;*.htm)|*.html;*.htm|" #: ../src/common/stockitem.cpp:162 msgid "Harddisk" msgstr "" #: ../src/common/fmapbase.cpp:155 msgid "Hebrew (ISO-8859-8)" msgstr "Hebrew (ISO-8859-8)" #: ../include/wx/msgdlg.h:275 ../src/osx/button_osx.cpp:39 #: ../src/common/stockitem.cpp:163 ../src/html/helpdlg.cpp:66 #: ../src/html/helpfrm.cpp:116 msgid "Help" msgstr "Ayuda" #: ../src/html/helpwnd.cpp:1213 msgid "Help Browser Options" msgstr "Opciones del Navegador de la Ayuda" #: ../src/generic/helpext.cpp:458 ../src/generic/helpext.cpp:459 msgid "Help Index" msgstr "Indice de la Ayuda" #: ../src/html/helpwnd.cpp:1534 msgid "Help Printing" msgstr "Ayuda de Impresión" #: ../src/html/helpwnd.cpp:814 msgid "Help Topics" msgstr "Temas de ayuda" #: ../src/html/helpwnd.cpp:1551 msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|" msgstr "Libros de ayuda (*.htb)|*.htb|Libros de ayuda (*.zip)|*.zip|" #: ../src/generic/helpext.cpp:271 #, c-format msgid "Help directory \"%s\" not found." msgstr "Directorio de ayuda \"%s\" no encontrado." #: ../src/generic/helpext.cpp:279 #, c-format msgid "Help file \"%s\" not found." msgstr "Archivo de ayuda \"%s\" no encontrado." #: ../src/html/helpctrl.cpp:63 #, c-format msgid "Help: %s" msgstr "Ayuda: %s" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:649 #, fuzzy, c-format msgid "Hide %s" msgstr "Ayuda: %s" #: ../src/osx/menu_osx.cpp:604 ../src/osx/menu_osx.cpp:651 msgid "Hide Others" msgstr "" #: ../src/generic/infobar.cpp:85 msgid "Hide this notification message." msgstr "" #: ../src/generic/dirdlgg.cpp:98 ../src/common/stockitem.cpp:164 msgid "Home" msgstr "Inicio" #: ../src/generic/dirctrlg.cpp:624 msgid "Home directory" msgstr "Carpeta de inicio" #: ../src/richtext/richtextsizepage.cpp:253 #: ../src/richtext/richtextsizepage.cpp:255 msgid "How the object will float relative to the text." msgstr "" #: ../src/common/imagbmp.cpp:1118 msgid "ICO: Error in reading mask DIB." msgstr "ICO: Error al leer máscara DIB." #: ../src/common/imagbmp.cpp:1233 ../src/common/imagbmp.cpp:1294 #: ../src/common/imagbmp.cpp:1305 ../src/common/imagbmp.cpp:1318 #: ../src/common/imagbmp.cpp:1363 ../src/common/imagbmp.cpp:1375 #: ../src/common/imagbmp.cpp:1386 msgid "ICO: Error writing the image file!" msgstr "ICO: ¡Error al escribir el archivo de imagen!" #: ../src/common/imagbmp.cpp:1198 msgid "ICO: Image too tall for an icon." msgstr "ICO: Imagen demasiado alta para un icono." #: ../src/common/imagbmp.cpp:1206 msgid "ICO: Image too wide for an icon." msgstr "ICO: Imagen demasiado ancha para un icono." #: ../src/common/imagbmp.cpp:1466 msgid "ICO: Invalid icon index." msgstr "ICO: Indice de icono no válido." #: ../src/common/imagiff.cpp:759 msgid "IFF: data stream seems to be truncated." msgstr "IFF: el flujo de datos parece truncado." #: ../src/common/imagiff.cpp:743 msgid "IFF: error in IFF image format." msgstr "IFF: error en formato de imagen IFF." #: ../src/common/imagiff.cpp:746 msgid "IFF: not enough memory." msgstr "IFF: memoria insuficiente." #: ../src/common/imagiff.cpp:749 msgid "IFF: unknown error!!!" msgstr "IFF: ¡¡¡error desconocido!!!" #: ../src/common/accelcmn.cpp:50 msgid "INS" msgstr "INS" #: ../src/common/accelcmn.cpp:51 msgid "INSERT" msgstr "INSERT" #: ../src/common/fmapbase.cpp:197 msgid "ISO-2022-JP" msgstr "" #: ../src/osx/carbon/dataview.cpp:2420 msgid "Icon & text renderer cannot render value; value type: " msgstr "" #: ../src/html/htmprint.cpp:282 msgid "" "If possible, try changing the layout parameters to make the printout more " "narrow." msgstr "" #: ../src/generic/dbgrptg.cpp:358 msgid "" "If you have any additional information pertaining to this bug\n" "report, please enter it here and it will be joined to it:" msgstr "" "Si tiene alguna información adicional concerniente a este informe\n" "de error, por favor, introdúzcalo aquí y será adjuntado:" #: ../src/generic/dbgrptg.cpp:324 msgid "" "If you wish to suppress this debug report completely, please choose the " "\"Cancel\" button,\n" "but be warned that it may hinder improving the program, so if\n" "at all possible please do continue with the report generation.\n" msgstr "" "Si desea eliminar este informe de depuración completamente, por favor, elija " "el botón \"Cancelar\",\n" "pero sepa que ésto no ayuda a la mejora del programa, por tanto, si\n" "es posible, por favor, continue con la generación del informe.\n" #: ../src/msw/registry.cpp:1395 #, c-format msgid "Ignoring value \"%s\" of the key \"%s\"." msgstr "Se ignorará el valor \"%s\" de la clave \"%s\"." #: ../src/common/xtistrm.cpp:299 msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source" msgstr "Clase de objeto (Non-wxEvtHandler) como Event Source ilegal" #: ../src/common/xti.cpp:513 msgid "Illegal Parameter Count for ConstructObject Method" msgstr "Número ilegal de parámetros para el método ConstructObject" #: ../src/common/xti.cpp:501 msgid "Illegal Parameter Count for Create Method" msgstr "Número ilegal de parámetros para el método Create" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/filectrlg.cpp:791 msgid "Illegal directory name." msgstr "Nombre de directorio ilegal" #: ../src/generic/filectrlg.cpp:1380 msgid "Illegal file specification." msgstr "Especificación de archivo ilegal" #: ../src/common/image.cpp:2158 msgid "Image and mask have different sizes." msgstr "La imagen y la máscara tienen tamaños diferentes" #: ../src/common/image.cpp:2609 #, fuzzy, c-format msgid "Image file is not of type %d." msgstr "El archivo de imagen no es del tipo %ld." #: ../src/common/image.cpp:2739 #, fuzzy, c-format msgid "Image is not of type %s." msgstr "El archivo de imagen no es del tipo %s." #: ../src/msw/textctrl.cpp:399 msgid "" "Impossible to create a rich edit control, using simple text control instead. " "Please reinstall riched32.dll" msgstr "" "Imposible crear control 'rich edit', se usará el control de texto simple. " "Por favor instale riched32.dll" #: ../src/unix/utilsunx.cpp:307 msgid "Impossible to get child process input" msgstr "Imposible obtener la entrada del proceso hijo" #: ../src/common/filefn.cpp:1074 #, c-format msgid "Impossible to get permissions for file '%s'" msgstr "Imposible obtener permisos para el archivo '%s'" #: ../src/common/filefn.cpp:1088 #, c-format msgid "Impossible to overwrite the file '%s'" msgstr "Imposible sobreescribir el archivo '%s'" #: ../src/common/filefn.cpp:1142 #, c-format msgid "Impossible to set permissions for the file '%s'" msgstr "Imposible establecer permisos para el archivo '%s'" #: ../src/common/gifdecod.cpp:818 #, c-format msgid "Incorrect GIF frame size (%u, %d) for the frame #%u" msgstr "" #: ../src/msw/ole/automtn.cpp:624 msgid "Incorrect number of arguments." msgstr "" #: ../src/common/stockitem.cpp:165 msgid "Indent" msgstr "Escalonado" #: ../src/richtext/richtextformatdlg.cpp:330 msgid "Indents && Spacing" msgstr "Espaciado && de Escalonados" #: ../src/common/stockitem.cpp:166 ../src/html/helpwnd.cpp:525 msgid "Index" msgstr "Índice" #: ../src/common/fmapbase.cpp:159 msgid "Indian (ISO-8859-12)" msgstr "Indian (ISO-8859-12)" #: ../src/common/stockitem.cpp:167 msgid "Info" msgstr "" #: ../src/common/init.cpp:276 msgid "Initialization failed in post init, aborting." msgstr "Fallo en inicialización en post init, abortando." #: ../src/richtext/richtextsymboldlg.cpp:472 msgid "Insert" msgstr "Insertar" #: ../src/richtext/richtextbuffer.cpp:7687 #, fuzzy msgid "Insert Field" msgstr "Insertar Texto" #: ../src/richtext/richtextbuffer.cpp:7598 #: ../src/richtext/richtextbuffer.cpp:8551 msgid "Insert Image" msgstr "Insertar Imagen" #: ../src/richtext/richtextbuffer.cpp:7645 #, fuzzy msgid "Insert Object" msgstr "Insertar Texto" #: ../src/richtext/richtextctrl.cpp:1172 ../src/richtext/richtextctrl.cpp:1362 #: ../src/richtext/richtextbuffer.cpp:7440 #: ../src/richtext/richtextbuffer.cpp:7470 #: ../src/richtext/richtextbuffer.cpp:7514 msgid "Insert Text" msgstr "Insertar Texto" #: ../src/richtext/richtextindentspage.cpp:295 #: ../src/richtext/richtextindentspage.cpp:297 #, fuzzy msgid "Inserts a page break before the paragraph." msgstr "El espaciado antes de párrafo." #: ../src/richtext/richtextborderspage.cpp:549 #, fuzzy msgid "Inset" msgstr "Insertar" #: ../src/gtk/app.cpp:429 #, c-format msgid "Invalid GTK+ command line option, use \"%s --help\"" msgstr "" #: ../src/common/imagtiff.cpp:314 msgid "Invalid TIFF image index." msgstr "Índice de imagen TIFF no válido." #: ../src/osx/carbon/dataview.cpp:1782 ../src/osx/carbon/dataview.cpp:1877 msgid "Invalid data view item" msgstr "" #: ../src/common/appcmn.cpp:266 #, c-format msgid "Invalid display mode specification '%s'." msgstr "Especificación de 'display' no válida: '%s'." #: ../src/x11/app.cpp:121 #, c-format msgid "Invalid geometry specification '%s'" msgstr "Especificación de geometría no válida: '%s'" #: ../src/unix/fswatcher_inotify.cpp:298 #, c-format msgid "Invalid inotify event for \"%s\"" msgstr "" #: ../src/unix/snglinst.cpp:306 #, c-format msgid "Invalid lock file '%s'." msgstr "Archivo de bloqueo '%s' no válido." #: ../src/common/translation.cpp:1111 #, fuzzy msgid "Invalid message catalog." msgstr "'%s' no es un catálogo de mensajes válido." #: ../src/common/xtistrm.cpp:409 ../src/common/xtistrm.cpp:424 msgid "Invalid or Null Object ID passed to GetObjectClassInfo" msgstr "Identificador de objeto pasado a GetObjectClassInfo nulo o inválido" #: ../src/common/xtistrm.cpp:439 msgid "Invalid or Null Object ID passed to HasObjectClassInfo" msgstr "Identificador de objeto pasado a HasObjectClassInfo nulo o inválido" #: ../src/common/regex.cpp:313 #, c-format msgid "Invalid regular expression '%s': %s" msgstr "Expresión regular no válida '%s': %s" #: ../src/common/config.cpp:226 #, c-format msgid "Invalid value %ld for a boolean key \"%s\" in config file." msgstr "" #: ../src/generic/fontdlgg.cpp:329 ../src/richtext/richtextfontpage.cpp:333 #: ../src/osx/carbon/fontdlg.cpp:547 ../src/common/stockitem.cpp:168 msgid "Italic" msgstr "Itálica" #: ../src/common/paper.cpp:131 msgid "Italy Envelope, 110 x 230 mm" msgstr "Sobre Italy, 110 x 230 mm" #: ../src/common/imagjpeg.cpp:255 msgid "JPEG: Couldn't load - file is probably corrupted." msgstr "JPEG: No se pudo abrir - el archivo está probablemente corrupto." #: ../src/common/imagjpeg.cpp:434 msgid "JPEG: Couldn't save image." msgstr "JPEG: No pudo guardarse imagen." #: ../src/common/paper.cpp:164 msgid "Japanese Double Postcard 200 x 148 mm" msgstr "Tarjeta Japonesa Doble 200 x 148 mm" #: ../src/common/paper.cpp:168 msgid "Japanese Envelope Chou #3" msgstr "Japanese Envelope Chou #3" #: ../src/common/paper.cpp:181 msgid "Japanese Envelope Chou #3 Rotated" msgstr "Japanese Envelope Chou #3 Girado" #: ../src/common/paper.cpp:169 msgid "Japanese Envelope Chou #4" msgstr "Japanese Envelope Chou #4" #: ../src/common/paper.cpp:182 msgid "Japanese Envelope Chou #4 Rotated" msgstr "Japanese Envelope Chou #4 Girado" #: ../src/common/paper.cpp:166 msgid "Japanese Envelope Kaku #2" msgstr "Japanese Envelope Kaku #2" #: ../src/common/paper.cpp:179 msgid "Japanese Envelope Kaku #2 Rotated" msgstr "Japanese Envelope Kaku #2 Girado" #: ../src/common/paper.cpp:167 msgid "Japanese Envelope Kaku #3" msgstr "Japanese Envelope Kaku #3" #: ../src/common/paper.cpp:180 msgid "Japanese Envelope Kaku #3 Rotated" msgstr "Japanese Envelope Kaku #3 Girado" #: ../src/common/paper.cpp:186 msgid "Japanese Envelope You #4" msgstr "Japanese Envelope You #4" #: ../src/common/paper.cpp:187 msgid "Japanese Envelope You #4 Rotated" msgstr "Japanese Envelope You #4 Girado" #: ../src/common/paper.cpp:139 msgid "Japanese Postcard 100 x 148 mm" msgstr "Tarjeta Japonesa 100 x 148 mm" #: ../src/common/paper.cpp:176 msgid "Japanese Postcard Rotated 148 x 100 mm" msgstr "Tarjeta Japonesa Girada 148 x 100 mm" #: ../src/common/stockitem.cpp:169 msgid "Jump to" msgstr "" #: ../src/common/stockitem.cpp:171 msgid "Justified" msgstr "Justificado" #: ../src/richtext/richtextindentspage.cpp:155 #: ../src/richtext/richtextindentspage.cpp:157 #: ../src/richtext/richtextliststylepage.cpp:344 #: ../src/richtext/richtextliststylepage.cpp:346 msgid "Justify text left and right." msgstr "Justificar texto a izquierda y derecha." #: ../src/common/fmapbase.cpp:163 msgid "KOI8-R" msgstr "KOI8-R" #: ../src/common/fmapbase.cpp:164 msgid "KOI8-U" msgstr "KOI8-U" #: ../src/common/accelcmn.cpp:254 ../src/common/accelcmn.cpp:336 msgid "KP_" msgstr "KP_" #: ../src/common/accelcmn.cpp:103 msgid "KP_ADD" msgstr "KP_SUMAR" #: ../src/common/accelcmn.cpp:98 msgid "KP_BEGIN" msgstr "" #: ../src/common/accelcmn.cpp:106 msgid "KP_DECIMAL" msgstr "KP_DECIMAL" #: ../src/common/accelcmn.cpp:100 msgid "KP_DELETE" msgstr "KP_SUPR" #: ../src/common/accelcmn.cpp:107 msgid "KP_DIVIDE" msgstr "KP_DIVIDIR" #: ../src/common/accelcmn.cpp:92 msgid "KP_DOWN" msgstr "KP_ABAJO" #: ../src/common/accelcmn.cpp:97 msgid "KP_END" msgstr "KP_FIN" #: ../src/common/accelcmn.cpp:87 msgid "KP_ENTER" msgstr "KP_INTRO" #: ../src/common/accelcmn.cpp:101 msgid "KP_EQUAL" msgstr "KP_IGUAL" #: ../src/common/accelcmn.cpp:88 msgid "KP_HOME" msgstr "KP_INICIO" #: ../src/common/accelcmn.cpp:99 msgid "KP_INSERT" msgstr "KP_INSERT" #: ../src/common/accelcmn.cpp:89 msgid "KP_LEFT" msgstr "KP_IZQUIERDA" #: ../src/common/accelcmn.cpp:102 msgid "KP_MULTIPLY" msgstr "KP_MULTIPLICAR" #: ../src/common/accelcmn.cpp:95 msgid "KP_NEXT" msgstr "KP_SIGUIENTE" #: ../src/common/accelcmn.cpp:96 msgid "KP_PAGEDOWN" msgstr "KP_AVPÁG" #: ../src/common/accelcmn.cpp:94 msgid "KP_PAGEUP" msgstr "KP_REPÁG" #: ../src/common/accelcmn.cpp:93 msgid "KP_PRIOR" msgstr "" #: ../src/common/accelcmn.cpp:91 msgid "KP_RIGHT" msgstr "KP_DERECHA" #: ../src/common/accelcmn.cpp:104 msgid "KP_SEPARATOR" msgstr "KP_SEPARADOR" #: ../src/common/accelcmn.cpp:85 msgid "KP_SPACE" msgstr "KP_ESPACIO" #: ../src/common/accelcmn.cpp:105 msgid "KP_SUBTRACT" msgstr "KP_RESTAR" #: ../src/common/accelcmn.cpp:86 msgid "KP_TAB" msgstr "KP_TAB" #: ../src/common/accelcmn.cpp:90 msgid "KP_UP" msgstr "KP_ARRIBA" #: ../src/richtext/richtextindentspage.cpp:270 #, fuzzy msgid "L&ine spacing:" msgstr "Espaciado de línea:" #: ../src/common/accelcmn.cpp:56 msgid "LEFT" msgstr "IZQUIERDA" #: ../src/generic/prntdlgg.cpp:613 ../src/generic/prntdlgg.cpp:868 msgid "Landscape" msgstr "Horizontal" #: ../src/common/stockitem.cpp:174 #, fuzzy msgid "Last" msgstr "Pegar" #: ../src/common/prntbase.cpp:1542 #, fuzzy msgid "Last page" msgstr "Página siguiente" #: ../src/common/log.cpp:309 #, c-format msgid "Last repeated message (\"%s\", %lu time) wasn't output" msgid_plural "Last repeated message (\"%s\", %lu times) wasn't output" msgstr[0] "" msgstr[1] "" #: ../src/common/paper.cpp:104 msgid "Ledger, 17 x 11 in" msgstr "Libro Mayor, 17 x 11 in" #: ../src/richtext/richtextliststylepage.cpp:249 #: ../src/richtext/richtextliststylepage.cpp:252 #: ../src/richtext/richtextliststylepage.cpp:253 #: ../src/richtext/richtextbulletspage.cpp:199 #: ../src/richtext/richtextbulletspage.cpp:202 #: ../src/richtext/richtextbulletspage.cpp:203 #: ../src/richtext/richtextsizepage.cpp:249 msgid "Left" msgstr "Izquierda" #: ../src/richtext/richtextindentspage.cpp:204 #: ../src/richtext/richtextliststylepage.cpp:390 msgid "Left (&first line):" msgstr "Izquierda (&primera línea):" #: ../src/generic/prntdlgg.cpp:880 msgid "Left margin (mm):" msgstr "Margen Izquierdo (mm):" #: ../src/richtext/richtextindentspage.cpp:141 #: ../src/richtext/richtextindentspage.cpp:143 #: ../src/richtext/richtextliststylepage.cpp:330 #: ../src/richtext/richtextliststylepage.cpp:332 msgid "Left-align text." msgstr "Texto alineado a la izquierda." #: ../src/common/paper.cpp:145 msgid "Legal Extra 9 1/2 x 15 in" msgstr "Legal Extra 9 1/2 x 15 in" #: ../src/common/paper.cpp:97 msgid "Legal, 8 1/2 x 14 in" msgstr "Legal, 8 1/2 x 14 in" #: ../src/common/paper.cpp:144 msgid "Letter Extra 9 1/2 x 12 in" msgstr "Sobre Extra 9 1/2 x 12 in" #: ../src/common/paper.cpp:150 msgid "Letter Extra Transverse 9.275 x 12 in" msgstr "Sobre Extra Transversal 9.275 x 12 in" #: ../src/common/paper.cpp:153 msgid "Letter Plus 8 1/2 x 12.69 in" msgstr "Sobre Plus 8 1/2 x 12.69 in" #: ../src/common/paper.cpp:170 msgid "Letter Rotated 11 x 8 1/2 in" msgstr "Sobre Girado 11 x 8 1/2 in" #: ../src/common/paper.cpp:102 msgid "Letter Small, 8 1/2 x 11 in" msgstr "Sobre Pequeño, 8 1/2 x 11 in" #: ../src/common/paper.cpp:148 msgid "Letter Transverse 8 1/2 x 11 in" msgstr "Sobre Transversal 8 1/2 x 11 in" #: ../src/common/paper.cpp:96 msgid "Letter, 8 1/2 x 11 in" msgstr "Sobre, 8 1/2 x 11 in" #: ../src/generic/aboutdlgg.cpp:173 msgid "License" msgstr "" #: ../src/generic/fontdlgg.cpp:332 msgid "Light" msgstr "Ligera" #: ../src/generic/helpext.cpp:298 #, c-format msgid "Line %lu of map file \"%s\" has invalid syntax, skipped." msgstr "Línea %lu de archivo de mapa \"%s\" tiene síntaxis no válida, saltado." #: ../src/richtext/richtextliststylepage.cpp:444 msgid "Line spacing:" msgstr "Espaciado de línea:" #: ../src/html/chm.cpp:838 msgid "Link contained '//', converted to absolute link." msgstr "El enlace contiene '//', convertido a enlace absoluto." #: ../src/richtext/richtextformatdlg.cpp:349 msgid "List Style" msgstr "Estilo de Lista" #: ../src/richtext/richtextstyles.cpp:1060 msgid "List styles" msgstr "Estilos de Lista" #: ../src/richtext/richtextfontpage.cpp:206 #: ../src/richtext/richtextfontpage.cpp:208 msgid "Lists font sizes in points." msgstr "Tamaños de fuente de listas en puntos." #: ../src/richtext/richtextfontpage.cpp:199 #: ../src/richtext/richtextfontpage.cpp:201 msgid "Lists the available fonts." msgstr "Muestra las fuentes disponibles." #: ../src/common/fldlgcmn.cpp:325 #, c-format msgid "Load %s file" msgstr "Abrir el archivo %s" #: ../src/html/htmlwin.cpp:575 msgid "Loading : " msgstr "Cargando :" #: ../src/unix/snglinst.cpp:246 #, c-format msgid "Lock file '%s' has incorrect owner." msgstr "El archivo de bloqueo '%s' tiene un propietario incorrecto." #: ../src/unix/snglinst.cpp:251 #, c-format msgid "Lock file '%s' has incorrect permissions." msgstr "El archivo de bloqueo '%s' tiene permisos incorrectos." #: ../src/generic/logg.cpp:582 #, c-format msgid "Log saved to the file '%s'." msgstr "Log guardado en archivo '%s'." #: ../src/richtext/richtextliststylepage.cpp:484 #: ../src/richtext/richtextbulletspage.cpp:289 msgid "Lower case letters" msgstr "Letras minúsculas" #: ../src/richtext/richtextliststylepage.cpp:486 #: ../src/richtext/richtextbulletspage.cpp:291 msgid "Lower case roman numerals" msgstr "Números romanos en minúscula" #: ../src/gtk/mdi.cpp:422 ../src/gtk1/mdi.cpp:431 msgid "MDI child" msgstr "Ventana hija MDI" #: ../src/common/accelcmn.cpp:68 msgid "MENU" msgstr "MENU" #: ../src/msw/helpchm.cpp:56 msgid "" "MS HTML Help functions are unavailable because the MS HTML Help library is " "not installed on this machine. Please install it." msgstr "" "La funciones de Ayuda MS HTML no están disponibles porque la librería de " "Ayuda MS HTML no está instalada. Por favor instálela." #: ../src/univ/themes/win32.cpp:3754 msgid "Ma&ximize" msgstr "Ma&ximizar" #: ../src/common/fmapbase.cpp:203 #, fuzzy msgid "MacArabic" msgstr "Árabe" #: ../src/common/fmapbase.cpp:222 msgid "MacArmenian" msgstr "" #: ../src/common/fmapbase.cpp:211 msgid "MacBengali" msgstr "" #: ../src/common/fmapbase.cpp:217 msgid "MacBurmese" msgstr "" #: ../src/common/fmapbase.cpp:236 msgid "MacCeltic" msgstr "" #: ../src/common/fmapbase.cpp:227 msgid "MacCentralEurRoman" msgstr "" #: ../src/common/fmapbase.cpp:223 msgid "MacChineseSimp" msgstr "" #: ../src/common/fmapbase.cpp:201 msgid "MacChineseTrad" msgstr "" #: ../src/common/fmapbase.cpp:233 msgid "MacCroatian" msgstr "" #: ../src/common/fmapbase.cpp:206 msgid "MacCyrillic" msgstr "" #: ../src/common/fmapbase.cpp:207 msgid "MacDevanagari" msgstr "" #: ../src/common/fmapbase.cpp:231 msgid "MacDingbats" msgstr "" #: ../src/common/fmapbase.cpp:226 msgid "MacEthiopic" msgstr "" #: ../src/common/fmapbase.cpp:229 #, fuzzy msgid "MacExtArabic" msgstr "Árabe" #: ../src/common/fmapbase.cpp:237 msgid "MacGaelic" msgstr "" #: ../src/common/fmapbase.cpp:221 msgid "MacGeorgian" msgstr "" #: ../src/common/fmapbase.cpp:205 msgid "MacGreek" msgstr "" #: ../src/common/fmapbase.cpp:209 msgid "MacGujarati" msgstr "" #: ../src/common/fmapbase.cpp:208 msgid "MacGurmukhi" msgstr "" #: ../src/common/fmapbase.cpp:204 msgid "MacHebrew" msgstr "" #: ../src/common/fmapbase.cpp:234 msgid "MacIcelandic" msgstr "" #: ../src/common/fmapbase.cpp:200 msgid "MacJapanese" msgstr "" #: ../src/common/fmapbase.cpp:214 msgid "MacKannada" msgstr "" #: ../src/common/fmapbase.cpp:238 msgid "MacKeyboardGlyphs" msgstr "" #: ../src/common/fmapbase.cpp:218 msgid "MacKhmer" msgstr "" #: ../src/common/fmapbase.cpp:202 msgid "MacKorean" msgstr "" #: ../src/common/fmapbase.cpp:220 msgid "MacLaotian" msgstr "" #: ../src/common/fmapbase.cpp:215 msgid "MacMalayalam" msgstr "" #: ../src/common/fmapbase.cpp:225 msgid "MacMongolian" msgstr "" #: ../src/common/fmapbase.cpp:210 msgid "MacOriya" msgstr "" #: ../src/common/fmapbase.cpp:199 #, fuzzy msgid "MacRoman" msgstr "Roman" #: ../src/common/fmapbase.cpp:235 #, fuzzy msgid "MacRomanian" msgstr "Roman" #: ../src/common/fmapbase.cpp:216 #, fuzzy msgid "MacSinhalese" msgstr "Coincidir may./min." #: ../src/common/fmapbase.cpp:230 #, fuzzy msgid "MacSymbol" msgstr "Símbolo" #: ../src/common/fmapbase.cpp:212 msgid "MacTamil" msgstr "" #: ../src/common/fmapbase.cpp:213 msgid "MacTelugu" msgstr "" #: ../src/common/fmapbase.cpp:219 msgid "MacThai" msgstr "" #: ../src/common/fmapbase.cpp:224 msgid "MacTibetan" msgstr "" #: ../src/common/fmapbase.cpp:232 msgid "MacTurkish" msgstr "" #: ../src/common/fmapbase.cpp:228 msgid "MacVietnamese" msgstr "" #: ../src/propgrid/advprops.cpp:2031 #, fuzzy msgid "Make a selection:" msgstr "Pegar selección" #: ../src/richtext/richtextformatdlg.cpp:362 #: ../src/richtext/richtextmarginspage.cpp:172 msgid "Margins" msgstr "" #: ../src/generic/fdrepdlg.cpp:147 msgid "Match case" msgstr "Coincidir may./min." #: ../src/richtext/richtextsizepage.cpp:463 #, fuzzy msgid "Max height:" msgstr "Peso" #: ../src/richtext/richtextsizepage.cpp:436 #, fuzzy msgid "Max width:" msgstr "Sustituir por:" #: ../src/unix/mediactrl.cpp:1006 #, c-format msgid "Media playback error: %s" msgstr "" #: ../src/common/fs_mem.cpp:175 #, c-format msgid "Memory VFS already contains file '%s'!" msgstr "¡VFS en memoria ya contiene el archivo '%s'!" #: ../src/msw/frame.cpp:347 msgid "Menu" msgstr "Menú" #: ../src/common/msgout.cpp:124 #, fuzzy msgid "Message" msgstr "%s mensaje" #: ../src/univ/themes/metal.cpp:168 msgid "Metal theme" msgstr "Tema Metal" #: ../src/msw/ole/automtn.cpp:641 msgid "Method or property not found." msgstr "" #: ../src/univ/themes/win32.cpp:3752 msgid "Mi&nimize" msgstr "Mi&nimizar" #: ../src/richtext/richtextsizepage.cpp:409 #, fuzzy msgid "Min height:" msgstr "&Peso de la fuente:" #: ../src/richtext/richtextsizepage.cpp:382 msgid "Min width:" msgstr "" #: ../src/msw/ole/automtn.cpp:657 msgid "Missing a required parameter." msgstr "" #: ../src/generic/fontdlgg.cpp:324 msgid "Modern" msgstr "Modern" #: ../src/generic/filectrlg.cpp:462 msgid "Modified" msgstr "Modificado" #: ../src/common/module.cpp:133 #, c-format msgid "Module \"%s\" initialization failed" msgstr "No se pudo inicializar Módulo \"%s\"" #: ../src/common/paper.cpp:132 msgid "Monarch Envelope, 3 7/8 x 7 1/2 in" msgstr "Sobre Monarch, 3 7/8 x 7 1/2 in" #: ../src/msw/fswatcher.cpp:143 msgid "Monitoring individual files for changes is not supported currently." msgstr "" #: ../src/generic/editlbox.cpp:276 msgid "Move down" msgstr "Mover hacia abajo" #: ../src/generic/editlbox.cpp:275 msgid "Move up" msgstr "Subir" #: ../src/richtext/richtextsizepage.cpp:682 #: ../src/richtext/richtextsizepage.cpp:684 #, fuzzy msgid "Moves the object to the next paragraph." msgstr "El estilo por defecto para el siguiente párrafo." #: ../src/richtext/richtextsizepage.cpp:676 #: ../src/richtext/richtextsizepage.cpp:678 #, fuzzy msgid "Moves the object to the previous paragraph." msgstr "Ir a la página HTML anterior" #: ../src/richtext/richtextbuffer.cpp:9345 msgid "Multiple Cell Properties" msgstr "" #: ../src/common/accelcmn.cpp:81 msgid "NUM_LOCK" msgstr "BLOQ_NUM" #: ../src/generic/filectrlg.cpp:459 msgid "Name" msgstr "Nombre" #: ../src/common/stockitem.cpp:175 msgid "Network" msgstr "" #: ../src/common/stockitem.cpp:176 #, fuzzy msgid "New" msgstr "&Nuevo" #: ../src/richtext/richtextstyledlg.cpp:243 #, fuzzy msgid "New &Box Style..." msgstr "Nuevo Estilo de &Lista..." #: ../src/richtext/richtextstyledlg.cpp:225 msgid "New &Character Style..." msgstr "Nuevo Estilo de &Caracter..." #: ../src/richtext/richtextstyledlg.cpp:237 msgid "New &List Style..." msgstr "Nuevo Estilo de &Lista..." #: ../src/richtext/richtextstyledlg.cpp:231 msgid "New &Paragraph Style..." msgstr "Nuevo Estilo de &Párrafo..." #: ../src/richtext/richtextstyledlg.cpp:603 #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:651 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:817 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:890 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:931 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "New Style" msgstr "Nuevo Estilo" #: ../src/generic/dirdlgg.cpp:102 msgid "New directory" msgstr "Crear directorio" #: ../src/generic/editlbox.cpp:273 msgid "New item" msgstr "Elemento nuevo" #: ../src/generic/dirdlgg.cpp:326 ../src/generic/dirdlgg.cpp:336 #: ../src/generic/filectrlg.cpp:653 ../src/generic/filectrlg.cpp:662 msgid "NewName" msgstr "Nuevo Nombre" #: ../src/generic/tipdlg.cpp:305 msgid "Next" msgstr "Siguiente" #: ../src/common/prntbase.cpp:1537 ../src/html/helpwnd.cpp:678 msgid "Next page" msgstr "Página siguiente" #: ../include/wx/msgdlg.h:272 ../src/common/stockitem.cpp:177 #: ../src/motif/msgdlg.cpp:196 msgid "No" msgstr "No" #: ../src/generic/animateg.cpp:150 #, c-format msgid "No animation handler for type %ld defined." msgstr "No hay definido ningún manipulador de animación para tipo %ld." #: ../src/dfb/bitmap.cpp:642 ../src/dfb/bitmap.cpp:676 #, fuzzy, c-format msgid "No bitmap handler for type %d defined." msgstr "No hay definido ningún manipulador de imagen para tipo %d." #: ../src/osx/carbon/dataview.cpp:1784 msgid "No column existing." msgstr "" #: ../src/osx/carbon/dataview.cpp:1674 msgid "No column for the specified column existing." msgstr "" #: ../src/osx/carbon/dataview.cpp:1423 msgid "No column for the specified column position existing." msgstr "" #: ../src/common/utilscmn.cpp:1049 msgid "No default application configured for HTML files." msgstr "" #: ../src/generic/helpext.cpp:449 msgid "No entries found." msgstr "No se han encontrado documentos." #: ../src/common/fontmap.cpp:421 #, c-format msgid "" "No font for displaying text in encoding '%s' found,\n" "but an alternative encoding '%s' is available.\n" "Do you want to use this encoding (otherwise you will have to choose another " "one)?" msgstr "" "No hay un tipo de letra para la codificación '%s',\n" "pero existe una codificación '%s' alternativa.\n" "¿Le gustaría usar esta codificación (de otra forma deberá elegir otra)?" #: ../src/common/fontmap.cpp:426 #, c-format msgid "" "No font for displaying text in encoding '%s' found.\n" "Would you like to select a font to be used for this encoding\n" "(otherwise the text in this encoding will not be shown correctly)?" msgstr "" "No existe un tipo de letra para la codificación '%s'.\n" "¿Le gustaría seleccionar una fuente para usarse con esta codificación\n" "(de otra forma el texto con esta codificación no se mostrará correctamente)?" #: ../src/generic/animateg.cpp:142 msgid "No handler found for animation type." msgstr "No se ha encontrado ningún manipulador para el tipo de animación." #: ../src/common/image.cpp:2591 msgid "No handler found for image type." msgstr "No se ha encontrado ningún manipulador para el tipo de imagen." #: ../src/common/image.cpp:2599 ../src/common/image.cpp:2710 #: ../src/common/image.cpp:2763 #, c-format msgid "No image handler for type %d defined." msgstr "No hay definido ningún manipulador de imagen para tipo %d." #: ../src/common/image.cpp:2733 ../src/common/image.cpp:2777 #, c-format msgid "No image handler for type %s defined." msgstr "No hay definido ningún manipulador de imagen para tipo %s." #: ../src/html/helpwnd.cpp:871 msgid "No matching page found yet" msgstr "Todavía no se ha encontrado una página con coincidencias" #: ../src/osx/carbon/dataview.cpp:1676 ../src/osx/carbon/dataview.cpp:1786 msgid "No renderer or invalid renderer type specified for custom data column." msgstr "" #: ../src/osx/carbon/dataview.cpp:1424 msgid "No renderer specified for column." msgstr "" #: ../src/unix/sound.cpp:81 msgid "No sound" msgstr "No hay ningún sonido" #: ../src/common/image.cpp:2166 ../src/common/image.cpp:2207 msgid "No unused colour in image being masked." msgstr "No hay ningún color sin utilizar en la imagen que se está enmascarando" #: ../src/common/image.cpp:3236 msgid "No unused colour in image." msgstr "No hay ningún color sin usar en la imagen." #: ../src/generic/helpext.cpp:306 #, c-format msgid "No valid mappings found in the file \"%s\"." msgstr "No se han encontrado mapeados válidos en el archivo \"%s\"." #: ../src/richtext/richtextborderspage.cpp:542 #: ../src/richtext/richtextsizepage.cpp:248 #: ../src/richtext/richtextsizepage.cpp:252 #, fuzzy msgid "None" msgstr "(Ninguno)" #: ../src/common/fmapbase.cpp:157 msgid "Nordic (ISO-8859-10)" msgstr "Nordic (ISO-8859-10)" #: ../src/generic/fontdlgg.cpp:328 ../src/generic/fontdlgg.cpp:331 msgid "Normal" msgstr "Normal" #: ../src/html/helpwnd.cpp:1276 msgid "Normal face
    and underlined. " msgstr "Nnormal
    y subrayado. " #: ../src/html/helpwnd.cpp:1218 msgid "Normal font:" msgstr "Fuente normal:" #: ../src/propgrid/props.cpp:887 #, fuzzy, c-format msgid "Not %s" msgstr "Acerca de" #: ../include/wx/filename.h:586 ../include/wx/filename.h:591 #, fuzzy msgid "Not available" msgstr "¡No está disponible el soporte XBM!" #: ../src/richtext/richtextfontpage.cpp:340 msgid "Not underlined" msgstr "No subrayado" #: ../src/common/paper.cpp:116 msgid "Note, 8 1/2 x 11 in" msgstr "Nota, 8 1/2 x 11 in" #: ../src/generic/notifmsgg.cpp:104 #, fuzzy msgid "Notice" msgstr "&Notas:" #: ../src/osx/carbon/dataview.cpp:902 #, fuzzy msgid "Number of columns could not be determined." msgstr "No se pudo abrir el archivo." #: ../src/richtext/richtextliststylepage.cpp:487 #: ../src/richtext/richtextbulletspage.cpp:292 msgid "Numbered outline" msgstr "" #: ../include/wx/msgdlg.h:273 ../src/richtext/richtextstyledlg.cpp:297 #: ../src/common/stockitem.cpp:178 ../src/msw/msgdlg.cpp:489 #: ../src/msw/msgdlg.cpp:799 ../src/msw/dialog.cpp:120 #: ../src/gtk1/fontdlg.cpp:138 msgid "OK" msgstr "Aceptar" #: ../src/msw/ole/automtn.cpp:681 #, c-format msgid "OLE Automation error in %s: %s" msgstr "" #: ../include/wx/richtext/richtextimagedlg.h:39 #, fuzzy msgid "Object Properties" msgstr "&Propiedades" #: ../src/msw/ole/automtn.cpp:649 msgid "Object implementation does not support named arguments." msgstr "" #: ../src/common/xtixml.cpp:264 msgid "Objects must have an id attribute" msgstr "Los objetos deben tener un atributo de identificación" #: ../src/common/docview.cpp:1755 ../src/common/docview.cpp:1797 msgid "Open File" msgstr "Abrir archivo" #: ../src/html/helpwnd.cpp:684 ../src/html/helpwnd.cpp:1557 msgid "Open HTML document" msgstr "Abrir documento HTML" #: ../src/generic/dbgrptg.cpp:163 #, c-format msgid "Open file \"%s\"" msgstr "Abrir archivo \"%s\"" #: ../src/common/stockitem.cpp:179 #, fuzzy msgid "Open..." msgstr "A&brir..." #: ../src/osx/carbon/glcanvas.cpp:48 #, c-format msgid "OpenGL function \"%s\" failed: %s (error %d)" msgstr "" #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:821 msgid "Operation not permitted." msgstr "Operación no permitida" #: ../src/common/cmdline.cpp:735 #, fuzzy, c-format msgid "Option '%s' can't be negated" msgstr "No pudo crearse directorio '%s'" #: ../src/common/cmdline.cpp:899 #, c-format msgid "Option '%s' requires a value." msgstr "El parámetro '%s' necesita un valor." #: ../src/common/cmdline.cpp:982 #, c-format msgid "Option '%s': '%s' cannot be converted to a date." msgstr "El parámetro '%s': '%s' no puede convertirse a fecha." #: ../src/generic/dirdlgg.cpp:187 ../src/generic/prntdlgg.cpp:618 msgid "Options" msgstr "Opciones" #: ../src/generic/prntdlgg.cpp:615 ../src/generic/prntdlgg.cpp:869 msgid "Orientation" msgstr "Orientación" #: ../src/common/windowid.cpp:259 msgid "Out of window IDs. Recommend shutting down application." msgstr "" #: ../src/richtext/richtextborderspage.cpp:400 #: ../src/richtext/richtextborderspage.cpp:533 #, fuzzy msgid "Outline" msgstr "Nivel de &Lista:" #: ../src/richtext/richtextborderspage.cpp:550 msgid "Outset" msgstr "" #: ../src/msw/ole/automtn.cpp:645 msgid "Overflow while coercing argument values." msgstr "" #: ../src/common/accelcmn.cpp:84 msgid "PAGEDOWN" msgstr "AVANZAPÁGINA" #: ../src/common/accelcmn.cpp:83 msgid "PAGEUP" msgstr "RETROCEDEPÁGINA" #: ../src/common/accelcmn.cpp:69 msgid "PAUSE" msgstr "PAUSA" #: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:480 msgid "PCX: couldn't allocate memory" msgstr "PCX: no pudo reservarse memoria" #: ../src/common/imagpcx.cpp:456 msgid "PCX: image format unsupported" msgstr "PCX: formato de imagen no soportado" #: ../src/common/imagpcx.cpp:479 msgid "PCX: invalid image" msgstr "PCX: imagen inválida" #: ../src/common/imagpcx.cpp:442 msgid "PCX: this is not a PCX file." msgstr "PCX: éste no es un archivo PCX." #: ../src/common/imagpcx.cpp:459 ../src/common/imagpcx.cpp:481 msgid "PCX: unknown error !!!" msgstr "PCX: ¡¡¡error desconocido!!!" #: ../src/common/imagpcx.cpp:458 msgid "PCX: version number too low" msgstr "PCX: número de versión demasiado antigua" #: ../src/common/accelcmn.cpp:55 msgid "PGDN" msgstr "AVPÁG" #: ../src/common/accelcmn.cpp:54 msgid "PGUP" msgstr "REPÁG" #: ../src/common/imagpnm.cpp:91 msgid "PNM: Couldn't allocate memory." msgstr "PNM: No se pudo reservar memoria." #: ../src/common/imagpnm.cpp:73 msgid "PNM: File format is not recognized." msgstr "PNM: Formato de archivo no reconocido." #: ../src/common/imagpnm.cpp:112 ../src/common/imagpnm.cpp:134 #: ../src/common/imagpnm.cpp:156 msgid "PNM: File seems truncated." msgstr "PNM: El archivo parece estar truncado." #: ../src/common/paper.cpp:188 msgid "PRC 16K 146 x 215 mm" msgstr "PRC 16K 146 x 215 mm" #: ../src/common/paper.cpp:201 msgid "PRC 16K Rotated" msgstr "PRC 16K Girado" #: ../src/common/paper.cpp:189 msgid "PRC 32K 97 x 151 mm" msgstr "PRC 32K 97 x 151 mm" #: ../src/common/paper.cpp:202 msgid "PRC 32K Rotated" msgstr "PRC 32K Girado" #: ../src/common/paper.cpp:190 msgid "PRC 32K(Big) 97 x 151 mm" msgstr "PRC 32K(Grande) 97 x 151 mm" #: ../src/common/paper.cpp:203 msgid "PRC 32K(Big) Rotated" msgstr "PRC 32K(Grande) Girado" #: ../src/common/paper.cpp:191 msgid "PRC Envelope #1 102 x 165 mm" msgstr "PRC Envelope #1 102 x 165 mm" #: ../src/common/paper.cpp:204 msgid "PRC Envelope #1 Rotated 165 x 102 mm" msgstr "PRC Envelope #1 Girado 165 x 102 mm" #: ../src/common/paper.cpp:200 msgid "PRC Envelope #10 324 x 458 mm" msgstr "PRC Envelope #10 324 x 458 mm" #: ../src/common/paper.cpp:213 msgid "PRC Envelope #10 Rotated 458 x 324 mm" msgstr "PRC Envelope #10 Girado 458 x 324 mm" #: ../src/common/paper.cpp:192 msgid "PRC Envelope #2 102 x 176 mm" msgstr "PRC Envelope #2 102 x 176 mm" #: ../src/common/paper.cpp:205 msgid "PRC Envelope #2 Rotated 176 x 102 mm" msgstr "PRC Envelope #2 Girado 176 x 102 mm" #: ../src/common/paper.cpp:193 msgid "PRC Envelope #3 125 x 176 mm" msgstr "PRC Envelope #3 125 x 176 mm" #: ../src/common/paper.cpp:206 msgid "PRC Envelope #3 Rotated 176 x 125 mm" msgstr "PRC Envelope #3 Girado 176 x 125 mm" #: ../src/common/paper.cpp:194 msgid "PRC Envelope #4 110 x 208 mm" msgstr "PRC Envelope #4 110 x 208 mm" #: ../src/common/paper.cpp:207 msgid "PRC Envelope #4 Rotated 208 x 110 mm" msgstr "PRC Envelope #4 Girado 208 x 110 mm" #: ../src/common/paper.cpp:195 msgid "PRC Envelope #5 110 x 220 mm" msgstr "PRC Envelope #5 110 x 220 mm" #: ../src/common/paper.cpp:208 msgid "PRC Envelope #5 Rotated 220 x 110 mm" msgstr "PRC Envelope #5 Girado 220 x 110 mm" #: ../src/common/paper.cpp:196 msgid "PRC Envelope #6 120 x 230 mm" msgstr "PRC Envelope #6 120 x 230 mm" #: ../src/common/paper.cpp:209 msgid "PRC Envelope #6 Rotated 230 x 120 mm" msgstr "PRC Envelope #6 Girado 230 x 120 mm" #: ../src/common/paper.cpp:197 msgid "PRC Envelope #7 160 x 230 mm" msgstr "PRC Envelope #7 160 x 230 mm" #: ../src/common/paper.cpp:210 msgid "PRC Envelope #7 Rotated 230 x 160 mm" msgstr "PRC Envelope #7 Girado 230 x 160 mm" #: ../src/common/paper.cpp:198 msgid "PRC Envelope #8 120 x 309 mm" msgstr "PRC Envelope #8 120 x 309 mm" #: ../src/common/paper.cpp:211 msgid "PRC Envelope #8 Rotated 309 x 120 mm" msgstr "PRC Envelope #8 Girado 309 x 120 mm" #: ../src/common/paper.cpp:199 msgid "PRC Envelope #9 229 x 324 mm" msgstr "PRC Envelope #9 229 x 324 mm" #: ../src/common/paper.cpp:212 msgid "PRC Envelope #9 Rotated 324 x 229 mm" msgstr "PRC Envelope #9 Girado 324 x 229 mm" #: ../src/common/accelcmn.cpp:72 msgid "PRINT" msgstr "IMPRIMIR" #: ../src/richtext/richtextmarginspage.cpp:286 #, fuzzy msgid "Padding" msgstr "leyendo" #: ../src/common/prntbase.cpp:2044 #, c-format msgid "Page %d" msgstr "Página %d" #: ../src/common/prntbase.cpp:2042 #, c-format msgid "Page %d of %d" msgstr "Página %d de %d" #: ../src/gtk/print.cpp:774 msgid "Page Setup" msgstr "Configurar Página" #: ../src/generic/prntdlgg.cpp:828 ../src/common/prntbase.cpp:467 msgid "Page setup" msgstr "Configurar página" #: ../src/generic/prntdlgg.cpp:216 msgid "Pages" msgstr "Páginas" #: ../src/generic/prntdlgg.cpp:602 ../src/generic/prntdlgg.cpp:801 #: ../src/generic/prntdlgg.cpp:842 ../src/generic/prntdlgg.cpp:855 #: ../src/generic/prntdlgg.cpp:1052 ../src/generic/prntdlgg.cpp:1057 msgid "Paper size" msgstr "Tamaño del papel" #: ../src/richtext/richtextstyles.cpp:1058 msgid "Paragraph styles" msgstr "estilos de párrafo" #: ../src/common/xtistrm.cpp:469 msgid "Passing a already registered object to SetObject" msgstr "Paso de un objeto ya registrado a SetObject" #: ../src/common/xtistrm.cpp:480 #, fuzzy msgid "Passing an unknown object to GetObject" msgstr "Paso de un objeto desconocido a GetObject" #: ../src/richtext/richtextctrl.cpp:3117 ../src/common/stockitem.cpp:180 #: ../src/stc/stc_i18n.cpp:19 msgid "Paste" msgstr "Pegar" #: ../src/common/stockitem.cpp:262 msgid "Paste selection" msgstr "Pegar selección" #: ../src/richtext/richtextliststylepage.cpp:222 #: ../src/richtext/richtextbulletspage.cpp:172 msgid "Peri&od" msgstr "Peri&odo" #: ../src/generic/filectrlg.cpp:465 msgid "Permissions" msgstr "Permisos" #: ../src/richtext/richtextbuffer.cpp:11942 #, fuzzy msgid "Picture Properties" msgstr "&Propiedades" #: ../include/wx/unix/pipe.h:47 msgid "Pipe creation failed" msgstr "Error en la creación de la tubería" #: ../src/gtk1/fontdlg.cpp:74 msgid "Please choose a valid font." msgstr "Por favor elija una fuente válida." #: ../src/gtk/filedlg.cpp:72 msgid "Please choose an existing file." msgstr "Por favor, elija un archivo existente." #: ../src/html/helpwnd.cpp:813 msgid "Please choose the page to display:" msgstr "Por favor elija la página que quiere presentar:" #: ../src/msw/dialup.cpp:785 msgid "Please choose which ISP do you want to connect to" msgstr "Por favor elija el ISP al que se quiere conectar" #: ../src/msw/listctrl.cpp:372 #, c-format msgid "" "Please install a newer version of comctl32.dll\n" "(at least version 4.70 is required but you have %d.%02d)\n" "or this program won't operate correctly." msgstr "" "Por favor instale una versión más nueva de comctl32.dll\n" "(se necesita al menos la versión 4.70 pero Ud. tiene %d.%02d)\n" "o este programa no funcionará correctamente." #: ../src/common/headerctrlcmn.cpp:59 msgid "Please select the columns to show and define their order:" msgstr "" #: ../src/common/prntbase.cpp:521 #, fuzzy msgid "Please wait while printing..." msgstr "Imprimiendo. Por favor espere\n" #: ../src/propgrid/advprops.cpp:631 #, fuzzy msgid "Point Size" msgstr "Tamaño de &punto:" #: ../src/osx/carbon/dataview.cpp:1278 ../src/osx/carbon/dataview.cpp:1329 #: ../src/osx/carbon/dataview.cpp:1420 ../src/osx/carbon/dataview.cpp:1443 #: ../src/osx/carbon/dataview.cpp:1460 ../src/osx/carbon/dataview.cpp:1477 #: ../src/osx/carbon/dataview.cpp:1670 ../src/osx/carbon/dataview.cpp:1779 #: ../src/osx/carbon/dataview.cpp:1821 ../src/osx/carbon/dataview.cpp:1874 #: ../src/osx/carbon/dataview.cpp:1997 msgid "Pointer to data view control not set correctly." msgstr "" #: ../src/osx/carbon/dataview.cpp:1279 ../src/osx/carbon/dataview.cpp:1338 #: ../src/osx/carbon/dataview.cpp:1421 ../src/osx/carbon/dataview.cpp:1478 #: ../src/osx/carbon/dataview.cpp:1671 ../src/osx/carbon/dataview.cpp:1780 #: ../src/osx/carbon/dataview.cpp:1822 ../src/osx/carbon/dataview.cpp:1875 #: ../src/osx/carbon/dataview.cpp:1998 msgid "Pointer to model not set correctly." msgstr "" #: ../src/generic/prntdlgg.cpp:612 ../src/generic/prntdlgg.cpp:867 msgid "Portrait" msgstr "Vertical" #: ../src/richtext/richtextsizepage.cpp:496 #, fuzzy msgid "Position" msgstr "Pregunta" #: ../src/generic/prntdlgg.cpp:298 msgid "PostScript file" msgstr "Archivo PostScript" #: ../src/common/stockitem.cpp:181 #, fuzzy msgid "Preferences" msgstr "&Preferencias" #: ../src/osx/menu_osx.cpp:643 #, fuzzy msgid "Preferences..." msgstr "&Preferencias" #: ../src/common/prntbase.cpp:529 msgid "Preparing" msgstr "" #: ../src/generic/fontdlgg.cpp:455 ../src/osx/carbon/fontdlg.cpp:576 #: ../src/html/helpwnd.cpp:1235 msgid "Preview:" msgstr "Previsualización:" #: ../src/common/prntbase.cpp:1523 ../src/html/helpwnd.cpp:677 msgid "Previous page" msgstr "Página anterior" #: ../src/generic/prntdlgg.cpp:143 ../src/generic/prntdlgg.cpp:157 #: ../src/common/prntbase.cpp:409 ../src/common/prntbase.cpp:1511 #: ../src/gtk/print.cpp:584 ../src/gtk/print.cpp:597 msgid "Print" msgstr "Imprimir" #: ../include/wx/prntbase.h:395 ../src/common/docview.cpp:1250 msgid "Print Preview" msgstr "Previsualización de la impresión" #: ../src/common/prntbase.cpp:1985 ../src/common/prntbase.cpp:2027 #: ../src/common/prntbase.cpp:2035 msgid "Print Preview Failure" msgstr "Error en previsualización de impresión" #: ../src/generic/prntdlgg.cpp:224 msgid "Print Range" msgstr "Rango de Impresión" #: ../src/generic/prntdlgg.cpp:449 msgid "Print Setup" msgstr "Configuración de Impresión" #: ../src/generic/prntdlgg.cpp:621 msgid "Print in colour" msgstr "Impresión en color" #: ../src/common/stockitem.cpp:182 #, fuzzy msgid "Print previe&w..." msgstr "&Vista previa de impresión" #: ../src/common/docview.cpp:1244 #, fuzzy msgid "Print preview creation failed." msgstr "Error en la creación de la tubería" #: ../src/common/stockitem.cpp:182 #, fuzzy msgid "Print preview..." msgstr "Vista previa de impresión" #: ../src/generic/prntdlgg.cpp:630 msgid "Print spooling" msgstr "Cola de Impresión" #: ../src/html/helpwnd.cpp:688 msgid "Print this page" msgstr "Imprimir esta página" #: ../src/generic/prntdlgg.cpp:185 msgid "Print to File" msgstr "Imprimir a Archivo " #: ../src/common/stockitem.cpp:183 #, fuzzy msgid "Print..." msgstr "Im&primir..." #: ../src/generic/prntdlgg.cpp:493 msgid "Printer" msgstr "Impresora" #: ../src/generic/prntdlgg.cpp:633 msgid "Printer command:" msgstr "Comando de impresión: " #: ../src/generic/prntdlgg.cpp:180 msgid "Printer options" msgstr "Opciones de impresión" #: ../src/generic/prntdlgg.cpp:645 msgid "Printer options:" msgstr "Opciones de impresora:" #: ../src/generic/prntdlgg.cpp:916 msgid "Printer..." msgstr "Impresora..." #: ../src/generic/prntdlgg.cpp:196 msgid "Printer:" msgstr "Impresora:" #: ../include/wx/richtext/richtextprint.h:163 ../src/common/prntbase.cpp:518 #: ../src/html/htmprint.cpp:277 #, fuzzy msgid "Printing" msgstr "Imprimiendo" #: ../src/common/prntbase.cpp:586 msgid "Printing " msgstr "Imprimiendo" #: ../src/common/prntbase.cpp:330 msgid "Printing Error" msgstr "Error de impresión" #: ../src/common/prntbase.cpp:544 #, fuzzy, c-format msgid "Printing page %d of %d" msgstr "Imprimiendo página %d..." #: ../src/generic/printps.cpp:201 #, c-format msgid "Printing page %d..." msgstr "Imprimiendo página %d..." #: ../src/generic/printps.cpp:161 msgid "Printing..." msgstr "Imprimiendo..." #: ../include/wx/richtext/richtextprint.h:109 ../include/wx/prntbase.h:263 #: ../src/common/docview.cpp:2124 #, fuzzy msgid "Printout" msgstr "Imprimir" #: ../src/common/debugrpt.cpp:565 #, c-format msgid "" "Processing debug report has failed, leaving the files in \"%s\" directory." msgstr "" "El procesado del informe de depuración ha fallado, los archivos quedan en el " "directorio \"%s\"." #: ../src/osx/carbon/dataview.cpp:2472 msgid "Progress renderer cannot render value type; value type: " msgstr "" #: ../src/common/prntbase.cpp:528 msgid "Progress:" msgstr "" #: ../src/common/stockitem.cpp:184 #, fuzzy msgid "Properties" msgstr "&Propiedades" #: ../src/propgrid/manager.cpp:237 #, fuzzy msgid "Property" msgstr "&Propiedades" #: ../src/propgrid/propgrid.cpp:3144 ../src/propgrid/propgrid.cpp:3276 #, fuzzy msgid "Property Error" msgstr "Error de impresión" #: ../src/common/paper.cpp:113 msgid "Quarto, 215 x 275 mm" msgstr "Quarto, 215 x 275 mm" #: ../src/generic/logg.cpp:1036 msgid "Question" msgstr "Pregunta" #: ../src/common/stockitem.cpp:156 #, fuzzy msgid "Quit" msgstr "&Salir" #: ../src/osx/menu_osx.cpp:610 ../src/osx/menu_osx.cpp:657 #, fuzzy, c-format msgid "Quit %s" msgstr "&Salir" #: ../src/common/stockitem.cpp:263 msgid "Quit this program" msgstr "Salir de este programa" #: ../src/common/accelcmn.cpp:53 msgid "RETURN" msgstr "RETURN" #: ../src/common/accelcmn.cpp:57 msgid "RIGHT" msgstr "DERECHA" #: ../src/common/accelcmn.cpp:327 #, fuzzy msgid "RawCtrl+" msgstr "Ctrl-" #: ../src/common/ffile.cpp:113 ../src/common/ffile.cpp:134 #, c-format msgid "Read error on file '%s'" msgstr "Error de lectura en el archivo '%s'" #: ../src/common/prntbase.cpp:257 msgid "Ready" msgstr "Listo" #: ../src/common/stockitem.cpp:185 ../src/stc/stc_i18n.cpp:16 #, fuzzy msgid "Redo" msgstr "&Rehacer" #: ../src/common/stockitem.cpp:264 msgid "Redo last action" msgstr "Rehacer la última acción" #: ../src/common/stockitem.cpp:186 msgid "Refresh" msgstr "Refrescar" #: ../src/msw/registry.cpp:625 #, c-format msgid "Registry key '%s' already exists." msgstr "La clave del registro '%s' ya existe." #: ../src/msw/registry.cpp:594 #, c-format msgid "Registry key '%s' does not exist, cannot rename it." msgstr "La clave del registro '%s' no existe, no se puede renombrar." #: ../src/msw/registry.cpp:726 #, c-format msgid "" "Registry key '%s' is needed for normal system operation,\n" "deleting it will leave your system in unusable state:\n" "operation aborted." msgstr "" "La clave del registro '%s' se necesita para el funcionamiento normal del " "sistema,\n" "si se elimina puede dejar el sistema en un estado inestable:\n" "operación abortada." #: ../src/msw/registry.cpp:520 #, c-format msgid "Registry value '%s' already exists." msgstr "La clave del registro '%s' ya existe." #: ../src/richtext/richtextfontpage.cpp:332 #: ../src/richtext/richtextfontpage.cpp:336 msgid "Regular" msgstr "Normal" #: ../src/richtext/richtextsizepage.cpp:519 #, fuzzy msgid "Relative" msgstr "Decorative" #: ../src/generic/helpext.cpp:462 msgid "Relevant entries:" msgstr "Documentos significantivos:" #: ../include/wx/generic/progdlgg.h:86 #, fuzzy msgid "Remaining time:" msgstr "Tiempo restante : " #: ../src/common/stockitem.cpp:187 msgid "Remove" msgstr "Eliminar" #: ../src/richtext/richtextctrl.cpp:1430 #, fuzzy msgid "Remove Bullet" msgstr "Eliminar" #: ../src/html/helpwnd.cpp:440 msgid "Remove current page from bookmarks" msgstr "Eliminar la página actual de favoritos" #: ../src/common/rendcmn.cpp:194 #, c-format msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded." msgstr "" "El renderizador \"%s\" tiene una versión %d.%d incompatible y no se ha " "podido abrir." #: ../src/osx/carbon/dataview.cpp:1430 #, fuzzy msgid "Rendering failed." msgstr "Error en la creación del temporizador" #: ../src/richtext/richtextbuffer.cpp:4214 msgid "Renumber List" msgstr "Renumerar Lista" #: ../src/common/stockitem.cpp:188 msgid "Rep&lace" msgstr "&Sustituir" #: ../src/richtext/richtextctrl.cpp:3277 ../src/common/stockitem.cpp:188 msgid "Replace" msgstr "Sustituir" #: ../src/generic/fdrepdlg.cpp:182 msgid "Replace &all" msgstr "Sustituir &todo" #: ../src/common/stockitem.cpp:261 msgid "Replace selection" msgstr "Reemplazar selección" #: ../src/generic/fdrepdlg.cpp:124 msgid "Replace with:" msgstr "Sustituir por:" #: ../src/common/valtext.cpp:161 msgid "Required information entry is empty." msgstr "" #: ../src/common/translation.cpp:1966 #, fuzzy, c-format msgid "Resource '%s' is not a valid message catalog." msgstr "'%s' no es un catálogo de mensajes válido." #: ../src/common/stockitem.cpp:189 msgid "Revert to Saved" msgstr "Recuperar versión guardada" #: ../src/richtext/richtextborderspage.cpp:548 #, fuzzy msgid "Ridge" msgstr "Derecha" #: ../src/richtext/richtextliststylepage.cpp:251 #: ../src/richtext/richtextbulletspage.cpp:201 #: ../src/richtext/richtextsizepage.cpp:250 msgid "Right" msgstr "Derecha" #: ../src/generic/prntdlgg.cpp:892 msgid "Right margin (mm):" msgstr "Margen derecho (mm):" #: ../src/richtext/richtextindentspage.cpp:148 #: ../src/richtext/richtextindentspage.cpp:150 #: ../src/richtext/richtextliststylepage.cpp:337 #: ../src/richtext/richtextliststylepage.cpp:339 msgid "Right-align text." msgstr "Texto alineado a la derecha." #: ../src/generic/fontdlgg.cpp:322 msgid "Roman" msgstr "Roman" #: ../src/richtext/richtextliststylepage.cpp:299 #: ../src/richtext/richtextbulletspage.cpp:252 msgid "S&tandard bullet name:" msgstr "Nombre de viñeta es&tándar:" #: ../src/common/accelcmn.cpp:82 msgid "SCROLL_LOCK" msgstr "BLOQ_DESPL" #: ../src/common/accelcmn.cpp:71 msgid "SELECT" msgstr "SELECCIONAR" #: ../src/common/accelcmn.cpp:77 msgid "SEPARATOR" msgstr "SEPARADOR" #: ../src/common/accelcmn.cpp:74 msgid "SNAPSHOT" msgstr "IMP_PANT" #: ../src/common/accelcmn.cpp:62 msgid "SPACE" msgstr "ESPACIO" #: ../src/common/accelcmn.cpp:257 ../src/common/accelcmn.cpp:339 msgid "SPECIAL" msgstr "ESPECIAL" #: ../src/common/accelcmn.cpp:78 msgid "SUBTRACT" msgstr "RESTAR" #: ../src/common/stockitem.cpp:190 ../src/common/sizer.cpp:2678 msgid "Save" msgstr "&Guardar" #: ../src/common/fldlgcmn.cpp:327 #, c-format msgid "Save %s file" msgstr "Guardar el archivo %s" #: ../src/generic/logg.cpp:518 msgid "Save &As..." msgstr "Guardar &como..." #: ../src/common/docview.cpp:360 #, fuzzy msgid "Save As" msgstr "Guardar como" #: ../src/common/stockitem.cpp:191 #, fuzzy msgid "Save as" msgstr "Guardar como" #: ../src/common/stockitem.cpp:267 msgid "Save current document" msgstr "Guardar documento actual" #: ../src/common/stockitem.cpp:268 msgid "Save current document with a different filename" msgstr "Grabar el documento actual con otro nombre" #: ../src/generic/logg.cpp:518 msgid "Save log contents to file" msgstr "Guardar los contenidos del log a un archivo" #: ../src/generic/fontdlgg.cpp:325 msgid "Script" msgstr "Script" #: ../src/generic/srchctlg.cpp:67 ../src/html/helpwnd.cpp:548 #: ../src/html/helpwnd.cpp:563 msgid "Search" msgstr "Buscar" #: ../src/html/helpwnd.cpp:550 #, fuzzy msgid "" "Search contents of help book(s) for all occurrences of the text you typed " "above" msgstr "" "Buscar contenidos en libro(s) de ayuda para todas las ocurrencias del texto " "escrito" #: ../src/generic/fdrepdlg.cpp:160 msgid "Search direction" msgstr "Dirección de búsqueda" #: ../src/generic/fdrepdlg.cpp:112 msgid "Search for:" msgstr "Buscar:" #: ../src/html/helpwnd.cpp:1065 msgid "Search in all books" msgstr "Buscar en todos los libros" #: ../src/html/helpwnd.cpp:870 msgid "Searching..." msgstr "Buscando..." #: ../src/generic/dirctrlg.cpp:546 msgid "Sections" msgstr "Secciones" #: ../src/common/ffile.cpp:220 #, c-format msgid "Seek error on file '%s'" msgstr "Buscar error en el archivo '%s'" #: ../src/common/ffile.cpp:210 #, c-format msgid "Seek error on file '%s' (large files not supported by stdio)" msgstr "" "Error de acceso en el archivo '%s' (los archivos grandes no están soportados " "por stdio)" #: ../src/richtext/richtextctrl.cpp:330 ../src/osx/textctrl_osx.cpp:587 #: ../src/common/stockitem.cpp:192 ../src/msw/textctrl.cpp:2288 msgid "Select &All" msgstr "Seleccionar &Todo" #: ../src/common/stockitem.cpp:192 ../src/stc/stc_i18n.cpp:21 #, fuzzy msgid "Select All" msgstr "Seleccionar &Todo" #: ../src/common/docview.cpp:1877 msgid "Select a document template" msgstr "Seleccionar una plantilla de documento" #: ../src/common/docview.cpp:1951 msgid "Select a document view" msgstr "Seleccionar una vista de documento" #: ../src/richtext/richtextfontpage.cpp:235 #: ../src/richtext/richtextfontpage.cpp:237 msgid "Select regular or bold." msgstr "Seleccionar normal o negrita." #: ../src/richtext/richtextfontpage.cpp:222 #: ../src/richtext/richtextfontpage.cpp:224 msgid "Select regular or italic style." msgstr "Seleccionar estilo normal o cursiva." #: ../src/richtext/richtextfontpage.cpp:248 #: ../src/richtext/richtextfontpage.cpp:250 msgid "Select underlining or no underlining." msgstr "Seleccionar subrayado o no subrayado." #: ../src/motif/filedlg.cpp:220 msgid "Selection" msgstr "Selección" #: ../src/richtext/richtextliststylepage.cpp:187 #: ../src/richtext/richtextliststylepage.cpp:189 msgid "Selects the list level to edit." msgstr "Selecciona el nivel de lista a editar." #: ../src/common/cmdline.cpp:918 #, c-format msgid "Separator expected after the option '%s'." msgstr "Se esperaba separador después de opción '%s'." #: ../src/richtext/richtextbuffer.cpp:10513 #, fuzzy msgid "Set Cell Style" msgstr "Eliminar Estilo" #: ../include/wx/xtiprop.h:179 msgid "SetProperty called w/o valid setter" msgstr "Se llamó a SetProperty sin un establecedor válido" #: ../src/common/filename.cpp:2632 msgid "Setting directory access times is not supported under this OS version" msgstr "" #: ../src/generic/prntdlgg.cpp:188 msgid "Setup..." msgstr "Configuración..." #: ../src/msw/dialup.cpp:563 msgid "Several active dialup connections found, choosing one randomly." msgstr "" "Se han encontrado varias conexiones activas, eligiendo una aleatoriamente." #: ../src/common/accelcmn.cpp:324 #, fuzzy msgid "Shift+" msgstr "Mayúsculas-" #: ../src/generic/dirdlgg.cpp:170 msgid "Show &hidden directories" msgstr "Mostrar directorios &ocultos" #: ../src/generic/filectrlg.cpp:1003 msgid "Show &hidden files" msgstr "Mostrar archivos &ocultos" #: ../src/osx/menu_osx.cpp:605 ../src/osx/menu_osx.cpp:652 #, fuzzy msgid "Show All" msgstr "Mostrar todo" #: ../src/common/stockitem.cpp:257 msgid "Show about dialog" msgstr "Muestra el diálogo Acerca de" #: ../src/html/helpwnd.cpp:502 msgid "Show all" msgstr "Mostrar todo" #: ../src/html/helpwnd.cpp:513 msgid "Show all items in index" msgstr "Mostrar todos los datos en el índice" #: ../src/generic/dirdlgg.cpp:105 msgid "Show hidden directories" msgstr "Mostrar directorios ocultos" #: ../src/html/helpwnd.cpp:671 msgid "Show/hide navigation panel" msgstr "Mostrar/Ocultar panel de navegación" #: ../src/richtext/richtextsymboldlg.cpp:421 #: ../src/richtext/richtextsymboldlg.cpp:423 msgid "Shows a Unicode subset." msgstr "Muestra un subjuego Unicode" #: ../src/richtext/richtextliststylepage.cpp:472 #: ../src/richtext/richtextliststylepage.cpp:474 #: ../src/richtext/richtextbulletspage.cpp:276 #: ../src/richtext/richtextbulletspage.cpp:278 msgid "Shows a preview of the bullet settings." msgstr "Muestra una previsualización de los opciones de viñeta." #: ../src/richtext/richtextfontpage.cpp:322 #: ../src/richtext/richtextfontpage.cpp:324 msgid "Shows a preview of the font settings." msgstr "Muestra una vista previa de la fuente." #: ../src/osx/carbon/fontdlg.cpp:580 ../src/osx/carbon/fontdlg.cpp:582 msgid "Shows a preview of the font." msgstr "Muestra una vista previa de la fuente." #: ../src/richtext/richtextindentspage.cpp:303 #: ../src/richtext/richtextindentspage.cpp:305 msgid "Shows a preview of the paragraph settings." msgstr "Muestra una previsualización de las opciones de párrafo." #: ../src/generic/fontdlgg.cpp:460 ../src/generic/fontdlgg.cpp:462 msgid "Shows the font preview." msgstr "Muestra la vista previa de la fuente." #: ../src/univ/themes/mono.cpp:516 msgid "Simple monochrome theme" msgstr "Tema monocromo sencillo" #: ../src/richtext/richtextindentspage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:449 msgid "Single" msgstr "Sencillo" #: ../src/generic/filectrlg.cpp:460 ../src/richtext/richtextformatdlg.cpp:356 #: ../src/richtext/richtextsizepage.cpp:299 msgid "Size" msgstr "Tamaño" #: ../src/osx/carbon/fontdlg.cpp:525 msgid "Size:" msgstr "Tamaño:" #: ../src/generic/progdlgg.cpp:262 ../src/generic/progdlgg.cpp:773 #: ../src/msw/progdlg.cpp:801 msgid "Skip" msgstr "Saltar" #: ../src/generic/fontdlgg.cpp:330 msgid "Slant" msgstr "Cursiva" #: ../src/richtext/richtextfontpage.cpp:298 #, fuzzy msgid "Small C&apitals" msgstr "Ca&pitulares" #: ../src/richtext/richtextborderspage.cpp:543 #, fuzzy msgid "Solid" msgstr "Gruesa" #: ../src/common/docview.cpp:1773 msgid "Sorry, could not open this file." msgstr "No pudo abrirse este archivo." #: ../src/common/prntbase.cpp:2027 ../src/common/prntbase.cpp:2035 msgid "Sorry, not enough memory to create a preview." msgstr "Memoria insuficiente para crear previsualización." #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "Sorry, that name is taken. Please choose another." msgstr "Lo siento, ese nombre ya está en uso. Por favor, elija otro." #: ../src/common/docview.cpp:1796 msgid "Sorry, the format for this file is unknown." msgstr "Lo sentimos, el formato de este archivo se desconoce." #: ../src/unix/sound.cpp:492 msgid "Sound data are in unsupported format." msgstr "Los datos de sonido están en un formato no soportado." #: ../src/unix/sound.cpp:477 #, c-format msgid "Sound file '%s' is in unsupported format." msgstr "El archivo de sonido '%s' está en un formato no soportado." #: ../src/richtext/richtextliststylepage.cpp:467 msgid "Spacing" msgstr "Espaciado" #: ../src/common/stockitem.cpp:197 msgid "Spell Check" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:490 #: ../src/richtext/richtextbulletspage.cpp:295 msgid "Standard" msgstr "Estándar" #: ../src/common/paper.cpp:105 msgid "Statement, 5 1/2 x 8 1/2 in" msgstr "Statement, 5 1/2 x 8 1/2 in" #: ../src/richtext/richtextsizepage.cpp:518 #: ../src/richtext/richtextsizepage.cpp:523 #, fuzzy msgid "Static" msgstr "Estado: " #: ../src/generic/prntdlgg.cpp:204 msgid "Status:" msgstr "Estado: " #: ../src/common/stockitem.cpp:198 #, fuzzy msgid "Stop" msgstr "&Detener" #: ../src/common/stockitem.cpp:199 #, fuzzy msgid "Strikethrough" msgstr "&Tachado" #: ../src/common/colourcmn.cpp:45 #, c-format msgid "String To Colour : Incorrect colour specification : %s" msgstr "Cadena a Color: Especificación de color '%s' incorrecta." #: ../src/richtext/richtextformatdlg.cpp:318 ../src/propgrid/advprops.cpp:647 msgid "Style" msgstr "Estilo" #: ../include/wx/richtext/richtextstyledlg.h:47 msgid "Style Organiser" msgstr "Organizador de Estilos" #: ../src/osx/carbon/fontdlg.cpp:534 msgid "Style:" msgstr "Estilo:" #: ../src/richtext/richtextfontpage.cpp:312 #, fuzzy msgid "Subscrip&t" msgstr "Script" #: ../src/richtext/richtextfontpage.cpp:305 #, fuzzy msgid "Supe&rscript" msgstr "Script" #: ../src/common/paper.cpp:151 msgid "SuperA/SuperA/A4 227 x 356 mm" msgstr "SuperA/SuperA/A4 227 x 356 mm" #: ../src/common/paper.cpp:152 msgid "SuperB/SuperB/A3 305 x 487 mm" msgstr "SuperB/SuperB/A3 305 x 487 mm" #: ../src/generic/fontdlgg.cpp:326 msgid "Swiss" msgstr "Swiss" #: ../src/richtext/richtextliststylepage.cpp:488 #: ../src/richtext/richtextbulletspage.cpp:293 msgid "Symbol" msgstr "Símbolo" #: ../src/richtext/richtextliststylepage.cpp:288 #: ../src/richtext/richtextbulletspage.cpp:240 msgid "Symbol &font:" msgstr "Fuente Símbolos:" #: ../include/wx/richtext/richtextsymboldlg.h:47 msgid "Symbols" msgstr "Símbolos" #: ../src/common/accelcmn.cpp:63 msgid "TAB" msgstr "TAB" #: ../src/common/imagtiff.cpp:372 ../src/common/imagtiff.cpp:385 #: ../src/common/imagtiff.cpp:744 msgid "TIFF: Couldn't allocate memory." msgstr "TIFF: No se pudo reservar memoria." #: ../src/common/imagtiff.cpp:304 msgid "TIFF: Error loading image." msgstr "TIFF: Error al abrir imagen." #: ../src/common/imagtiff.cpp:471 msgid "TIFF: Error reading image." msgstr "TIFF: Error al leer imagen." #: ../src/common/imagtiff.cpp:611 msgid "TIFF: Error saving image." msgstr "TIFF: Error al guardar imagen." #: ../src/common/imagtiff.cpp:849 msgid "TIFF: Error writing image." msgstr "TIFF: Error al escribir imagen." #: ../src/common/imagtiff.cpp:358 msgid "TIFF: Image size is abnormally big." msgstr "" #: ../src/richtext/richtextbuffer.cpp:10794 #, fuzzy msgid "Table Properties" msgstr "&Propiedades" #: ../src/common/paper.cpp:146 msgid "Tabloid Extra 11.69 x 18 in" msgstr "Tabloide Extra 11.69 x 18 in" #: ../src/common/paper.cpp:103 msgid "Tabloid, 11 x 17 in" msgstr "Tabloide, 11 x 17 in" #: ../src/richtext/richtextformatdlg.cpp:336 msgid "Tabs" msgstr "Tabulaciones" #: ../src/generic/fontdlgg.cpp:327 msgid "Teletype" msgstr "Teletipo" #: ../src/common/docview.cpp:1878 msgid "Templates" msgstr "Plantillas" #: ../src/osx/carbon/dataview.cpp:2373 msgid "Text renderer cannot render value; value type: " msgstr "" #: ../src/common/fmapbase.cpp:158 msgid "Thai (ISO-8859-11)" msgstr "Tailandés (ISO-8859-11)" #: ../src/common/ftp.cpp:620 msgid "The FTP server doesn't support passive mode." msgstr "El servidor FTP no soporta el modo pasivo." #: ../src/common/ftp.cpp:606 msgid "The FTP server doesn't support the PORT command." msgstr "El servidor FTP no soporta el comando PORT." #: ../src/richtext/richtextliststylepage.cpp:215 #: ../src/richtext/richtextliststylepage.cpp:217 #: ../src/richtext/richtextbulletspage.cpp:164 #: ../src/richtext/richtextbulletspage.cpp:166 msgid "The available bullet styles." msgstr "Los estilos de viñeta disponibles." #: ../src/richtext/richtextstyledlg.cpp:202 #: ../src/richtext/richtextstyledlg.cpp:204 msgid "The available styles." msgstr "Los estilos disponibles." #: ../src/richtext/richtextbackgroundpage.cpp:139 #: ../src/richtext/richtextbackgroundpage.cpp:141 #, fuzzy msgid "The background colour." msgstr "Color de fondo" #: ../src/richtext/richtextmarginspage.cpp:268 #: ../src/richtext/richtextmarginspage.cpp:270 #, fuzzy msgid "The bottom margin size." msgstr "Tamaño en puntos:" #: ../src/richtext/richtextmarginspage.cpp:382 #: ../src/richtext/richtextmarginspage.cpp:384 #, fuzzy msgid "The bottom padding size." msgstr "Tamaño en puntos:" #: ../src/richtext/richtextsizepage.cpp:639 #: ../src/richtext/richtextsizepage.cpp:641 #: ../src/richtext/richtextsizepage.cpp:653 #: ../src/richtext/richtextsizepage.cpp:655 #, fuzzy msgid "The bottom position." msgstr "La posición del tabulador." #: ../src/richtext/richtextliststylepage.cpp:254 #: ../src/richtext/richtextliststylepage.cpp:256 #: ../src/richtext/richtextliststylepage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:277 #: ../src/richtext/richtextbulletspage.cpp:204 #: ../src/richtext/richtextbulletspage.cpp:206 #: ../src/richtext/richtextbulletspage.cpp:227 #: ../src/richtext/richtextbulletspage.cpp:229 msgid "The bullet character." msgstr "El caracter de viñeta." #: ../src/richtext/richtextsymboldlg.cpp:443 #: ../src/richtext/richtextsymboldlg.cpp:445 msgid "The character code." msgstr "El código de caracter." #: ../src/common/fontmap.cpp:203 #, c-format msgid "" "The charset '%s' is unknown. You may select\n" "another charset to replace it with or choose\n" "[Cancel] if it cannot be replaced" msgstr "" "El conjunto de caracteres '%s' es desconocido. Puede\n" "seleccionar otro conjunto para reemplazarlo o elegir\n" "[Cancelar] si no puede ser reemplazado" #: ../src/msw/ole/dataobj.cpp:367 #, c-format msgid "The clipboard format '%d' doesn't exist." msgstr "El formato %d del portapapeles no existe." #: ../src/richtext/richtextstylepage.cpp:128 #: ../src/richtext/richtextstylepage.cpp:130 msgid "The default style for the next paragraph." msgstr "El estilo por defecto para el siguiente párrafo." #: ../src/generic/dirdlgg.cpp:231 #, c-format msgid "" "The directory '%s' does not exist\n" "Create it now?" msgstr "" "El directorio '%s' no existe\n" "¿Crearlo ahora?" #: ../src/html/htmprint.cpp:271 #, c-format msgid "" "The document \"%s\" doesn't fit on the page horizontally and will be " "truncated if printed.\n" "\n" "Would you like to proceed with printing it nevertheless?" msgstr "" #: ../src/common/docview.cpp:1184 #, c-format msgid "" "The file '%s' doesn't exist and couldn't be opened.\n" "It has been removed from the most recently used files list." msgstr "" "El archivo '%s' no existe y no puede abrirse.\n" "También ha sido eliminado de la lista de archivos recientes." #: ../src/richtext/richtextindentspage.cpp:208 #: ../src/richtext/richtextindentspage.cpp:210 #: ../src/richtext/richtextliststylepage.cpp:394 #: ../src/richtext/richtextliststylepage.cpp:396 msgid "The first line indent." msgstr "El escalonado de la primera línea." #: ../src/gtk/utilsgtk.cpp:427 msgid "The following standard GTK+ options are also supported:\n" msgstr "" #: ../src/generic/fontdlgg.cpp:414 ../src/generic/fontdlgg.cpp:416 msgid "The font colour." msgstr "El color de fuente." #: ../src/generic/fontdlgg.cpp:375 ../src/generic/fontdlgg.cpp:377 msgid "The font family." msgstr "El tipo de fuente." #: ../src/richtext/richtextsymboldlg.cpp:405 #: ../src/richtext/richtextsymboldlg.cpp:407 msgid "The font from which to take the symbol." msgstr "La fuente de la que tomar el símbolo." #: ../src/generic/fontdlgg.cpp:427 ../src/generic/fontdlgg.cpp:429 #: ../src/generic/fontdlgg.cpp:434 ../src/generic/fontdlgg.cpp:436 msgid "The font point size." msgstr "Tamaño en puntos:" #: ../src/osx/carbon/fontdlg.cpp:529 ../src/osx/carbon/fontdlg.cpp:531 msgid "The font size in points." msgstr "El tamaño de fuente en puntos." #: ../src/richtext/richtextfontpage.cpp:190 #: ../src/richtext/richtextfontpage.cpp:192 #, fuzzy msgid "The font size units, points or pixels." msgstr "El tamaño de fuente en puntos." #: ../src/generic/fontdlgg.cpp:386 ../src/generic/fontdlgg.cpp:388 msgid "The font style." msgstr "El estilo de fuente." #: ../src/generic/fontdlgg.cpp:397 ../src/generic/fontdlgg.cpp:399 msgid "The font weight." msgstr "El peso de la fuente." #: ../src/common/docview.cpp:1465 #, fuzzy, c-format msgid "The format of file '%s' couldn't be determined." msgstr "No pudo crearse directorio '%s'" #: ../src/richtext/richtextindentspage.cpp:199 #: ../src/richtext/richtextindentspage.cpp:201 #: ../src/richtext/richtextliststylepage.cpp:385 #: ../src/richtext/richtextliststylepage.cpp:387 msgid "The left indent." msgstr "El escalonado izquierdo." #: ../src/richtext/richtextmarginspage.cpp:195 #: ../src/richtext/richtextmarginspage.cpp:197 #, fuzzy msgid "The left margin size." msgstr "Tamaño en puntos:" #: ../src/richtext/richtextmarginspage.cpp:309 #: ../src/richtext/richtextmarginspage.cpp:311 #, fuzzy msgid "The left padding size." msgstr "Tamaño en puntos:" #: ../src/richtext/richtextsizepage.cpp:534 #: ../src/richtext/richtextsizepage.cpp:536 #: ../src/richtext/richtextsizepage.cpp:548 #: ../src/richtext/richtextsizepage.cpp:550 #, fuzzy msgid "The left position." msgstr "La posición del tabulador." #: ../src/richtext/richtextindentspage.cpp:288 #: ../src/richtext/richtextindentspage.cpp:290 #: ../src/richtext/richtextliststylepage.cpp:462 #: ../src/richtext/richtextliststylepage.cpp:464 msgid "The line spacing." msgstr "El espaciado de línea." #: ../src/richtext/richtextbulletspage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:270 msgid "The list item number." msgstr "El número de elemento de la lista." #: ../src/msw/ole/automtn.cpp:653 msgid "The locale ID is unknown." msgstr "" #: ../src/richtext/richtextsizepage.cpp:366 #: ../src/richtext/richtextsizepage.cpp:368 #, fuzzy msgid "The object height." msgstr "El peso de la fuente." #: ../src/richtext/richtextsizepage.cpp:474 #: ../src/richtext/richtextsizepage.cpp:476 #, fuzzy msgid "The object maximum height." msgstr "El peso de la fuente." #: ../src/richtext/richtextsizepage.cpp:447 #: ../src/richtext/richtextsizepage.cpp:449 #, fuzzy msgid "The object maximum width." msgstr "El peso de la fuente." #: ../src/richtext/richtextsizepage.cpp:420 #: ../src/richtext/richtextsizepage.cpp:422 #, fuzzy msgid "The object minimum height." msgstr "El peso de la fuente." #: ../src/richtext/richtextsizepage.cpp:393 #: ../src/richtext/richtextsizepage.cpp:395 #, fuzzy msgid "The object minimum width." msgstr "El peso de la fuente." #: ../src/richtext/richtextsizepage.cpp:332 #: ../src/richtext/richtextsizepage.cpp:334 #, fuzzy msgid "The object width." msgstr "El peso de la fuente." #: ../src/richtext/richtextindentspage.cpp:227 #: ../src/richtext/richtextindentspage.cpp:229 #, fuzzy msgid "The outline level." msgstr "La vista previa del estilo." #: ../src/common/log.cpp:281 #, c-format msgid "The previous message repeated %lu time." msgid_plural "The previous message repeated %lu times." msgstr[0] "" msgstr[1] "" #: ../src/common/log.cpp:274 msgid "The previous message repeated once." msgstr "" #: ../src/gtk/print.cpp:931 ../src/gtk/print.cpp:1114 msgid "The print dialog returned an error." msgstr "" #: ../src/richtext/richtextsymboldlg.cpp:462 #: ../src/richtext/richtextsymboldlg.cpp:464 msgid "The range to show." msgstr "El rango a mostrar." #: ../src/generic/dbgrptg.cpp:322 msgid "" "The report contains the files listed below. If any of these files contain " "private information,\n" "please uncheck them and they will be removed from the report.\n" msgstr "" "El informe contiene los archivos mostrados abajo. Si alguno de estos " "archivos contiene información privada,\n" "por favor, desmárquelos y serán eliminados del informe.\n" #: ../src/common/cmdline.cpp:1083 #, c-format msgid "The required parameter '%s' was not specified." msgstr "El parámetro '%s' no fue especificado." #: ../src/richtext/richtextindentspage.cpp:217 #: ../src/richtext/richtextindentspage.cpp:219 #: ../src/richtext/richtextliststylepage.cpp:403 #: ../src/richtext/richtextliststylepage.cpp:405 msgid "The right indent." msgstr "El escalonado derecho." #: ../src/richtext/richtextmarginspage.cpp:220 #: ../src/richtext/richtextmarginspage.cpp:222 #, fuzzy msgid "The right margin size." msgstr "El escalonado derecho." #: ../src/richtext/richtextmarginspage.cpp:334 #: ../src/richtext/richtextmarginspage.cpp:336 #, fuzzy msgid "The right padding size." msgstr "El escalonado derecho." #: ../src/richtext/richtextsizepage.cpp:604 #: ../src/richtext/richtextsizepage.cpp:606 #: ../src/richtext/richtextsizepage.cpp:618 #: ../src/richtext/richtextsizepage.cpp:620 #, fuzzy msgid "The right position." msgstr "La posición del tabulador." #: ../src/richtext/richtextindentspage.cpp:267 #: ../src/richtext/richtextliststylepage.cpp:439 #: ../src/richtext/richtextliststylepage.cpp:441 msgid "The spacing after the paragraph." msgstr "El espaciado depués del párrafo." #: ../src/richtext/richtextindentspage.cpp:257 #: ../src/richtext/richtextindentspage.cpp:259 #: ../src/richtext/richtextliststylepage.cpp:430 #: ../src/richtext/richtextliststylepage.cpp:432 msgid "The spacing before the paragraph." msgstr "El espaciado antes de párrafo." #: ../src/richtext/richtextstylepage.cpp:108 #: ../src/richtext/richtextstylepage.cpp:110 msgid "The style name." msgstr "El nombre del estilo." #: ../src/richtext/richtextstylepage.cpp:118 #: ../src/richtext/richtextstylepage.cpp:120 msgid "The style on which this style is based." msgstr "El estilo en que se basa este estilo." #: ../src/richtext/richtextstyledlg.cpp:214 #: ../src/richtext/richtextstyledlg.cpp:216 msgid "The style preview." msgstr "La vista previa del estilo." #: ../src/msw/ole/automtn.cpp:669 msgid "The system cannot find the file specified." msgstr "" #: ../src/richtext/richtexttabspage.cpp:118 #: ../src/richtext/richtexttabspage.cpp:120 msgid "The tab position." msgstr "La posición del tabulador." #: ../src/richtext/richtexttabspage.cpp:124 msgid "The tab positions." msgstr "Las posiciones del tabulador." #: ../src/richtext/richtextctrl.cpp:2705 msgid "The text couldn't be saved." msgstr "El texto no pudo ser guardado." #: ../src/richtext/richtextmarginspage.cpp:243 #: ../src/richtext/richtextmarginspage.cpp:245 #, fuzzy msgid "The top margin size." msgstr "Tamaño en puntos:" #: ../src/richtext/richtextmarginspage.cpp:357 #: ../src/richtext/richtextmarginspage.cpp:359 #, fuzzy msgid "The top padding size." msgstr "Tamaño en puntos:" #: ../src/richtext/richtextsizepage.cpp:569 #: ../src/richtext/richtextsizepage.cpp:571 #: ../src/richtext/richtextsizepage.cpp:583 #: ../src/richtext/richtextsizepage.cpp:585 #, fuzzy msgid "The top position." msgstr "La posición del tabulador." #: ../src/common/cmdline.cpp:1061 #, c-format msgid "The value for the option '%s' must be specified." msgstr "El valor para el parámetro '%s' debe especificarse." #: ../src/msw/dialup.cpp:452 #, fuzzy, c-format msgid "" "The version of remote access service (RAS) installed on this machine is too " "old, please upgrade (the following required function is missing: %s)." msgstr "" "La versión del servicio de acceso remoto (RAS) instalada en esta máquina es " "demasiado vieja, por favor actualícela (la siguiente función no está " "disponible: %s)." #: ../src/gtk/print.cpp:959 msgid "The wxGtkPrinterDC cannot be used." msgstr "" #: ../src/osx/carbon/dataview.cpp:1340 msgid "There is no column or renderer for the specified column index." msgstr "" #: ../src/richtext/richtextprint.cpp:614 ../src/html/htmprint.cpp:735 msgid "" "There was a problem during page setup: you may need to set a default printer." msgstr "" "Hubo un problema al configurar la página: se necesita una impresora " "predeterminada." #: ../src/html/htmprint.cpp:255 msgid "" "This document doesn't fit on the page horizontally and will be truncated " "when it is printed." msgstr "" #: ../src/common/image.cpp:2716 #, fuzzy, c-format msgid "This is not a %s." msgstr "PCX: éste no es un archivo PCX." #: ../src/common/wincmn.cpp:1653 msgid "This platform does not support background transparency." msgstr "" #: ../src/gtk/window.cpp:4317 msgid "" "This program was compiled with a too old version of GTK+, please rebuild " "with GTK+ 2.12 or newer." msgstr "" #: ../src/msw/datecontrols.cpp:59 #, fuzzy msgid "" "This system doesn't support date controls, please upgrade your version of " "comctl32.dll" msgstr "" "El sistema no soporta el control de selección de fecha, sírvase actualizar " "la versión de comctl32.dll" #: ../src/msw/thread.cpp:1300 msgid "" "Thread module initialization failed: cannot store value in thread local " "storage" msgstr "" "Error en la inicialización del módulo de hilos de ejecución: no se pudo " "almacenar valor en el almacen local de hilos" #: ../src/unix/threadpsx.cpp:1758 msgid "Thread module initialization failed: failed to create thread key" msgstr "" "Error en la inicialización del módulo de hilos de ejecución: error al crear " "clave de hilo" #: ../src/msw/thread.cpp:1288 msgid "" "Thread module initialization failed: impossible to allocate index in thread " "local storage" msgstr "" "Error en la inicialización del módulo de hilos de ejecución: imposible " "reservar índice en el almacen local de hilos" #: ../src/unix/threadpsx.cpp:1038 msgid "Thread priority setting is ignored." msgstr "La configuración de la prioridad del hilo de ejecución es ignorada." #: ../src/msw/mdi.cpp:172 msgid "Tile &Horizontally" msgstr "Mosaico &Horizontal" #: ../src/msw/mdi.cpp:173 msgid "Tile &Vertically" msgstr "Mosaico &Vertical" #: ../src/common/ftp.cpp:202 msgid "Timeout while waiting for FTP server to connect, try passive mode." msgstr "" "Tiempo de espera de la conexión del servidor FTP excedido, pruebe a " "establecer el modo pasivo." #: ../src/os2/timer.cpp:99 msgid "Timer creation failed." msgstr "Error en la creación del temporizador" #: ../src/generic/tipdlg.cpp:220 msgid "Tip of the Day" msgstr "Sugerencia del Día" #: ../src/generic/tipdlg.cpp:154 msgid "Tips not available, sorry!" msgstr "Sugerencias no disponibles, ¡lástima!" #: ../src/generic/prntdlgg.cpp:242 msgid "To:" msgstr "Hasta:" #: ../src/osx/carbon/dataview.cpp:2451 msgid "Toggle renderer cannot render value; value type: " msgstr "" #: ../src/richtext/richtextbuffer.cpp:7983 msgid "Too many EndStyle calls!" msgstr "¡Demasiadas llamadas EndStyle!" #: ../src/common/imagpng.cpp:286 msgid "Too many colours in PNG, the image may be slightly blurred." msgstr "Demasiados colores en el PNG, la imagen podría estar algo borrosa." #: ../src/richtext/richtextsizepage.cpp:286 #: ../src/richtext/richtextsizepage.cpp:290 ../src/common/stockitem.cpp:200 #, fuzzy msgid "Top" msgstr "Hasta:" #: ../src/generic/prntdlgg.cpp:881 msgid "Top margin (mm):" msgstr "Margen superior (mm):" #: ../src/generic/aboutdlgg.cpp:79 msgid "Translations by " msgstr "Traducciones por" #: ../src/generic/aboutdlgg.cpp:188 #, fuzzy msgid "Translators" msgstr "Traducciones por" #: ../src/propgrid/propgrid.cpp:173 msgid "True" msgstr "" #: ../src/common/fs_mem.cpp:227 #, c-format msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!" msgstr "" "¡Intentando eliminar el archivo '%s' de VFS de memoria, pero no está abierto!" #: ../src/common/fmapbase.cpp:156 msgid "Turkish (ISO-8859-9)" msgstr "Turco (ISO-8859-9)" #: ../src/generic/filectrlg.cpp:461 msgid "Type" msgstr "Tipo" #: ../src/richtext/richtextfontpage.cpp:160 #: ../src/richtext/richtextfontpage.cpp:162 msgid "Type a font name." msgstr "Escriba un nombre de fuente." #: ../src/richtext/richtextfontpage.cpp:175 #: ../src/richtext/richtextfontpage.cpp:177 msgid "Type a size in points." msgstr "Escribir un tamaño en puntos." #: ../src/msw/ole/automtn.cpp:665 #, c-format msgid "Type mismatch in argument %u." msgstr "" #: ../src/common/xtixml.cpp:356 ../src/common/xtixml.cpp:509 #: ../src/common/xtistrm.cpp:322 msgid "Type must have enum - long conversion" msgstr "El tipo debe tener conversión de enum a long" #: ../src/propgrid/propgridiface.cpp:382 #, c-format msgid "" "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", NOT " "\"%s\"." msgstr "" #: ../src/common/accelcmn.cpp:58 msgid "UP" msgstr "ARRIBA" #: ../src/common/paper.cpp:134 msgid "US Std Fanfold, 14 7/8 x 11 in" msgstr "US Std Fanfold, 14 7/8 x 11 in" #: ../src/common/fmapbase.cpp:196 msgid "US-ASCII" msgstr "US-ASCII" #: ../src/unix/fswatcher_inotify.cpp:109 msgid "Unable to add inotify watch" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:136 msgid "Unable to add kqueue watch" msgstr "" #: ../include/wx/msw/private/fswatcher.h:142 msgid "Unable to associate handle with I/O completion port" msgstr "" #: ../include/wx/msw/private/fswatcher.h:125 #, fuzzy msgid "Unable to close I/O completion port handle" msgstr "Error al cerrar el manejador del archivo" #: ../src/unix/fswatcher_inotify.cpp:97 #, fuzzy msgid "Unable to close inotify instance" msgstr "Error al cerrar el manejador del archivo" #: ../include/wx/unix/private/fswatcher_kqueue.h:74 #, fuzzy, c-format msgid "Unable to close path '%s'" msgstr "No se pudo cerrar el archivo de bloqueo '%s'" #: ../include/wx/msw/private/fswatcher.h:48 #, fuzzy, c-format msgid "Unable to close the handle for '%s'" msgstr "Error al cerrar el manejador del archivo" #: ../include/wx/msw/private/fswatcher.h:240 #, fuzzy msgid "Unable to create I/O completion port" msgstr "No se pudo crear TextEncodingConverter" #: ../src/msw/fswatcher.cpp:84 #, fuzzy msgid "Unable to create IOCP worker thread" msgstr "No se pudo crear TextEncodingConverter" #: ../src/unix/fswatcher_inotify.cpp:74 #, fuzzy msgid "Unable to create inotify instance" msgstr "No se pudo crear TextEncodingConverter" #: ../src/unix/fswatcher_kqueue.cpp:97 #, fuzzy msgid "Unable to create kqueue instance" msgstr "No se pudo crear TextEncodingConverter" #: ../include/wx/msw/private/fswatcher.h:229 msgid "Unable to dequeue completion packet" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:185 msgid "Unable to get events from kqueue" msgstr "" #: ../src/osx/carbon/dataview.cpp:1903 msgid "Unable to handle native drag&drop data" msgstr "" #: ../src/gtk/app.cpp:439 msgid "Unable to initialize GTK+, is DISPLAY set properly?" msgstr "" #: ../src/gtk/app.cpp:276 #, fuzzy msgid "Unable to initialize Hildon program" msgstr "Fallo al inicializar OpenGL." #: ../include/wx/unix/private/fswatcher_kqueue.h:57 #, fuzzy, c-format msgid "Unable to open path '%s'" msgstr "Error al abrir el archivo CHM '%s'" #: ../src/html/htmlwin.cpp:561 #, c-format msgid "Unable to open requested HTML document: %s" msgstr "Incapaz de abrir el docuemento HTML pedido: %s" #: ../src/unix/sound.cpp:368 msgid "Unable to play sound asynchronously." msgstr "Imposible reproducir el sonido de forma asíncrona." #: ../include/wx/msw/private/fswatcher.h:207 msgid "Unable to post completion status" msgstr "" #: ../src/unix/fswatcher_inotify.cpp:530 #, fuzzy msgid "Unable to read from inotify descriptor" msgstr "no se puede leer desde el descriptor de archivo %d" #: ../src/unix/fswatcher_inotify.cpp:132 msgid "Unable to remove inotify watch" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:153 msgid "Unable to remove kqueue watch" msgstr "" #: ../src/msw/fswatcher.cpp:168 #, fuzzy, c-format msgid "Unable to set up watch for '%s'" msgstr "No se pudo retocar' el archivo '%s'" #: ../src/msw/fswatcher.cpp:91 msgid "Unable to start IOCP worker thread" msgstr "" #: ../src/common/stockitem.cpp:201 msgid "Undelete" msgstr "Restaurar" #: ../src/common/stockitem.cpp:202 #, fuzzy msgid "Underline" msgstr "Subrayado" #: ../src/richtext/richtextfontpage.cpp:341 ../src/osx/carbon/fontdlg.cpp:556 #: ../src/propgrid/advprops.cpp:655 msgid "Underlined" msgstr "Subrayado" #: ../src/common/stockitem.cpp:203 ../src/stc/stc_i18n.cpp:15 #, fuzzy msgid "Undo" msgstr "&Deshacer" #: ../src/common/stockitem.cpp:265 msgid "Undo last action" msgstr "Deshacer la última acción" #: ../src/common/cmdline.cpp:864 #, c-format msgid "Unexpected characters following option '%s'." msgstr "Caracteres inesperadostras la opción '%s' " #: ../src/unix/fswatcher_inotify.cpp:261 #, c-format msgid "Unexpected event for \"%s\": no matching watch descriptor." msgstr "" #: ../src/common/cmdline.cpp:1024 #, c-format msgid "Unexpected parameter '%s'" msgstr "Parámetro '%s' inesperado" #: ../include/wx/msw/private/fswatcher.h:148 msgid "Unexpectedly new I/O completion port was created" msgstr "" #: ../src/msw/fswatcher.cpp:70 #, fuzzy msgid "Ungraceful worker thread termination" msgstr "No se puede esperar a la finalización del hilo de ejecución" #: ../src/richtext/richtextsymboldlg.cpp:459 #: ../src/richtext/richtextsymboldlg.cpp:460 #: ../src/richtext/richtextsymboldlg.cpp:461 msgid "Unicode" msgstr "Unicode" #: ../src/common/fmapbase.cpp:185 ../src/common/fmapbase.cpp:191 msgid "Unicode 16 bit (UTF-16)" msgstr "Unicode 16 bits (UTF-16)" #: ../src/common/fmapbase.cpp:190 msgid "Unicode 16 bit Big Endian (UTF-16BE)" msgstr "Unicode 16 bits Endian Grande (UTF-16BE)" #: ../src/common/fmapbase.cpp:186 msgid "Unicode 16 bit Little Endian (UTF-16LE)" msgstr "Unicode 16 bits Endian Pequeña (UTF-16LE)" #: ../src/common/fmapbase.cpp:187 ../src/common/fmapbase.cpp:193 msgid "Unicode 32 bit (UTF-32)" msgstr "Unicode 32 bits (UTF-32)" #: ../src/common/fmapbase.cpp:192 msgid "Unicode 32 bit Big Endian (UTF-32BE)" msgstr "Unicode 32 bits Endian Grande (UTF-32BE)" #: ../src/common/fmapbase.cpp:188 msgid "Unicode 32 bit Little Endian (UTF-32LE)" msgstr "Unicode 32 bits Endian Pequeña (UTF-32LE)" #: ../src/common/fmapbase.cpp:182 msgid "Unicode 7 bit (UTF-7)" msgstr "Unicode 7 bit (UTF-7)" #: ../src/common/fmapbase.cpp:183 msgid "Unicode 8 bit (UTF-8)" msgstr "Unicode 8 bit (UTF-8)" #: ../src/common/stockitem.cpp:204 #, fuzzy msgid "Unindent" msgstr "&No escalonado" #: ../src/richtext/richtextborderspage.cpp:373 #: ../src/richtext/richtextborderspage.cpp:375 msgid "Units for the bottom border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:278 #: ../src/richtext/richtextmarginspage.cpp:280 msgid "Units for the bottom margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:517 #: ../src/richtext/richtextborderspage.cpp:519 msgid "Units for the bottom outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:392 #: ../src/richtext/richtextmarginspage.cpp:394 msgid "Units for the bottom padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:664 #: ../src/richtext/richtextsizepage.cpp:666 #, fuzzy msgid "Units for the bottom position." msgstr "No se puede esperar a la finalización del hilo." #: ../src/richtext/richtextborderspage.cpp:283 #: ../src/richtext/richtextborderspage.cpp:285 msgid "Units for the left border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:205 #: ../src/richtext/richtextmarginspage.cpp:207 msgid "Units for the left margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:427 #: ../src/richtext/richtextborderspage.cpp:429 msgid "Units for the left outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:319 #: ../src/richtext/richtextmarginspage.cpp:321 msgid "Units for the left padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:559 #: ../src/richtext/richtextsizepage.cpp:561 #, fuzzy msgid "Units for the left position." msgstr "No se puede esperar a la finalización del hilo." #: ../src/richtext/richtextsizepage.cpp:485 #: ../src/richtext/richtextsizepage.cpp:487 #, fuzzy msgid "Units for the maximum object height." msgstr "El peso de la fuente." #: ../src/richtext/richtextsizepage.cpp:458 #: ../src/richtext/richtextsizepage.cpp:460 #, fuzzy msgid "Units for the maximum object width." msgstr "El peso de la fuente." #: ../src/richtext/richtextsizepage.cpp:431 #: ../src/richtext/richtextsizepage.cpp:433 #, fuzzy msgid "Units for the minimum object height." msgstr "El peso de la fuente." #: ../src/richtext/richtextsizepage.cpp:404 #: ../src/richtext/richtextsizepage.cpp:406 #, fuzzy msgid "Units for the minimum object width." msgstr "El peso de la fuente." #: ../src/richtext/richtextsizepage.cpp:377 #: ../src/richtext/richtextsizepage.cpp:379 msgid "Units for the object height." msgstr "" #: ../src/richtext/richtextsizepage.cpp:343 #: ../src/richtext/richtextsizepage.cpp:345 msgid "Units for the object width." msgstr "" #: ../src/richtext/richtextborderspage.cpp:313 #: ../src/richtext/richtextborderspage.cpp:315 msgid "Units for the right border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:230 #: ../src/richtext/richtextmarginspage.cpp:232 msgid "Units for the right margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:457 #: ../src/richtext/richtextborderspage.cpp:459 msgid "Units for the right outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:344 #: ../src/richtext/richtextmarginspage.cpp:346 msgid "Units for the right padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:629 #: ../src/richtext/richtextsizepage.cpp:631 #, fuzzy msgid "Units for the right position." msgstr "No se puede esperar a la finalización del hilo." #: ../src/richtext/richtextborderspage.cpp:343 #: ../src/richtext/richtextborderspage.cpp:345 msgid "Units for the top border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:253 #: ../src/richtext/richtextmarginspage.cpp:255 #, fuzzy msgid "Units for the top margin." msgstr "No se puede esperar a la finalización del hilo." #: ../src/richtext/richtextborderspage.cpp:487 #: ../src/richtext/richtextborderspage.cpp:489 msgid "Units for the top outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:367 #: ../src/richtext/richtextmarginspage.cpp:369 msgid "Units for the top padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:594 #: ../src/richtext/richtextsizepage.cpp:596 #, fuzzy msgid "Units for the top position." msgstr "No se puede esperar a la finalización del hilo." #: ../src/generic/progdlgg.cpp:382 ../src/generic/progdlgg.cpp:655 msgid "Unknown" msgstr "Desconocido" #: ../src/msw/dde.cpp:1177 #, c-format msgid "Unknown DDE error %08x" msgstr "Error DDE desconocido %08x" #: ../src/common/xtistrm.cpp:414 msgid "Unknown Object passed to GetObjectClassInfo" msgstr "Objeto desconocido pasado a GetObjectClassInfo" #: ../src/common/imagpng.cpp:614 #, fuzzy, c-format msgid "Unknown PNG resolution unit %d" msgstr "El parámetro '%s' es desconocido" #: ../src/common/xtixml.cpp:327 #, fuzzy, c-format msgid "Unknown Property %s" msgstr "Propiedad '%s' desconocida" #: ../src/common/imagtiff.cpp:532 #, c-format msgid "Unknown TIFF resolution unit %d ignored" msgstr "" #: ../src/osx/carbon/dataview.cpp:1978 #, fuzzy msgid "Unknown data format" msgstr "error en formato de datos" #: ../src/unix/dlunix.cpp:325 msgid "Unknown dynamic library error" msgstr "Error desconocido de biblioteca dinámica" #: ../src/common/fmapbase.cpp:810 #, c-format msgid "Unknown encoding (%d)" msgstr "Codificación desconocida (%d)" #: ../src/msw/ole/automtn.cpp:677 #, fuzzy, c-format msgid "Unknown error %08x" msgstr "Error DDE desconocido %08x" #: ../src/msw/ole/automtn.cpp:636 #, fuzzy msgid "Unknown exception" msgstr "El parámetro '%s' es desconocido" #: ../src/common/image.cpp:2701 #, fuzzy msgid "Unknown image data format." msgstr "error en formato de datos" #: ../src/common/cmdline.cpp:749 #, c-format msgid "Unknown long option '%s'" msgstr "El parámetro '%s' de entero largo es desconocido" #: ../src/msw/ole/automtn.cpp:620 msgid "Unknown name or named argument." msgstr "" #: ../src/common/cmdline.cpp:764 ../src/common/cmdline.cpp:786 #, c-format msgid "Unknown option '%s'" msgstr "El parámetro '%s' es desconocido" #: ../src/common/mimecmn.cpp:230 #, c-format msgid "Unmatched '{' in an entry for mime type %s." msgstr "Paréntesis '(' no emparejado en una entrada para tipo mime %s." #: ../src/common/cmdproc.cpp:262 ../src/common/cmdproc.cpp:288 #: ../src/common/cmdproc.cpp:308 msgid "Unnamed command" msgstr "Mandato sin nombre" #: ../src/propgrid/propgrid.cpp:398 #, fuzzy msgid "Unspecified" msgstr "Justificado" #: ../src/msw/clipbrd.cpp:271 ../src/msw/clipbrd.cpp:439 msgid "Unsupported clipboard format." msgstr "Formato de portapapeles no soportado." #: ../src/common/appcmn.cpp:249 #, c-format msgid "Unsupported theme '%s'." msgstr "Tema no soportado '%s'." #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:205 msgid "Up" msgstr "Arriba" #: ../src/richtext/richtextliststylepage.cpp:483 #: ../src/richtext/richtextbulletspage.cpp:288 msgid "Upper case letters" msgstr "Letras mayúsculas" #: ../src/richtext/richtextliststylepage.cpp:485 #: ../src/richtext/richtextbulletspage.cpp:290 msgid "Upper case roman numerals" msgstr "Números romanos en mayúsculas" #: ../src/common/cmdline.cpp:1155 #, c-format msgid "Usage: %s" msgstr "Uso: %s" #: ../src/richtext/richtextindentspage.cpp:169 #: ../src/richtext/richtextindentspage.cpp:171 #: ../src/richtext/richtextliststylepage.cpp:358 #: ../src/richtext/richtextliststylepage.cpp:360 msgid "Use the current alignment setting." msgstr "Utilizar el alineamiento actual." #: ../src/osx/carbon/dataview.cpp:2658 ../src/osx/carbon/dataview.cpp:2723 msgid "Valid pointer to native data view control does not exist" msgstr "" #: ../src/common/valtext.cpp:174 msgid "Validation conflict" msgstr "Conflicto de validación." #: ../src/propgrid/manager.cpp:238 msgid "Value" msgstr "" #: ../src/propgrid/props.cpp:384 #, c-format msgid "Value must be %s or higher." msgstr "" #: ../src/propgrid/props.cpp:411 #, c-format msgid "Value must be %s or less." msgstr "" #: ../src/propgrid/props.cpp:388 ../src/propgrid/props.cpp:415 #, fuzzy, c-format msgid "Value must be between %s and %s." msgstr "Introduzca un número de página entre %d y %d:" #: ../src/generic/aboutdlgg.cpp:128 #, fuzzy msgid "Version " msgstr "Versión" #: ../src/richtext/richtextsizepage.cpp:291 #: ../src/richtext/richtextsizepage.cpp:293 #, fuzzy msgid "Vertical alignment." msgstr "No se puede iniciar la impresión." #: ../src/generic/filedlgg.cpp:216 msgid "View files as a detailed view" msgstr "Ver archivos en vista Detalles" #: ../src/generic/filedlgg.cpp:214 msgid "View files as a list view" msgstr "Ver archivos en vista Lista" #: ../src/common/docview.cpp:1952 msgid "Views" msgstr "Vistas" #: ../src/common/accelcmn.cpp:108 msgid "WINDOWS_LEFT" msgstr "WINDOWS_IZQUIERDO" #: ../src/common/accelcmn.cpp:110 msgid "WINDOWS_MENU" msgstr "WINDOWS_MENU" #: ../src/common/accelcmn.cpp:109 msgid "WINDOWS_RIGHT" msgstr "WINDOWS_DERECHO" #: ../src/unix/epolldispatcher.cpp:213 #, fuzzy, c-format msgid "Waiting for IO on epoll descriptor %d failed" msgstr "Error en la espera de la terminación del subproceso" #: ../src/common/log.cpp:227 msgid "Warning: " msgstr "Aviso: " #: ../src/propgrid/advprops.cpp:651 #, fuzzy msgid "Weight" msgstr "Peso" #: ../src/common/fmapbase.cpp:148 msgid "Western European (ISO-8859-1)" msgstr "Europa Occidental (ISO-8859-1)" #: ../src/common/fmapbase.cpp:162 msgid "Western European with Euro (ISO-8859-15)" msgstr "Europa Occidental con Euro (ISO-8859-15)" #: ../src/generic/fontdlgg.cpp:446 ../src/generic/fontdlgg.cpp:448 msgid "Whether the font is underlined." msgstr "Si la fuente está subrayada." #: ../src/generic/fdrepdlg.cpp:144 msgid "Whole word" msgstr "Palabra completa" #: ../src/html/helpwnd.cpp:547 msgid "Whole words only" msgstr "Sólo palabras completas" #: ../src/univ/themes/win32.cpp:1102 msgid "Win32 theme" msgstr "Tema Win32" #: ../src/msw/utils.cpp:1220 msgid "Win32s on Windows 3.1" msgstr "Win32s en Windows 3.1" #: ../src/msw/utils.cpp:1270 #, fuzzy msgid "Windows 2000" msgstr "Windows 95" #: ../src/msw/utils.cpp:1302 #, fuzzy msgid "Windows 7" msgstr "Windows 95" #: ../src/msw/utils.cpp:1234 msgid "Windows 95" msgstr "Windows 95" #: ../src/msw/utils.cpp:1230 msgid "Windows 95 OSR2" msgstr "Windows 95 OSR2" #: ../src/msw/utils.cpp:1245 msgid "Windows 98" msgstr "Windows 98" #: ../src/msw/utils.cpp:1241 msgid "Windows 98 SE" msgstr "Windows 98 SE" #: ../src/msw/utils.cpp:1252 #, c-format msgid "Windows 9x (%d.%d)" msgstr "Windows 9x (%d.%d)" #: ../src/common/fmapbase.cpp:177 msgid "Windows Arabic (CP 1256)" msgstr "Windows Árabe (CP 1256)" #: ../src/common/fmapbase.cpp:178 msgid "Windows Baltic (CP 1257)" msgstr "Windows Báltico (CP 1257)" #: ../src/msw/utils.cpp:1214 #, c-format msgid "Windows CE (%d.%d)" msgstr "Windows CE (%d.%d)" #: ../src/common/fmapbase.cpp:171 msgid "Windows Central European (CP 1250)" msgstr "Windows Centro Europeo (CP 1250)" #: ../src/common/fmapbase.cpp:168 #, fuzzy msgid "Windows Chinese Simplified (CP 936) or GB-2312" msgstr "Windows Chino Simplificado (CP 936)" #: ../src/common/fmapbase.cpp:170 #, fuzzy msgid "Windows Chinese Traditional (CP 950) or Big-5" msgstr "Windows Chino Tradicional (CP 950)" #: ../src/common/fmapbase.cpp:172 msgid "Windows Cyrillic (CP 1251)" msgstr "Windows Cirílico (CP 1251)" #: ../src/common/fmapbase.cpp:174 msgid "Windows Greek (CP 1253)" msgstr "Windows Griego (CP 1253)" #: ../src/common/fmapbase.cpp:176 msgid "Windows Hebrew (CP 1255)" msgstr "Windows Hebreo (CP 1255)" #: ../src/common/fmapbase.cpp:167 #, fuzzy msgid "Windows Japanese (CP 932) or Shift-JIS" msgstr "Windows Japonés (CP 932)" #: ../src/common/fmapbase.cpp:180 #, fuzzy msgid "Windows Johab (CP 1361)" msgstr "Windows Árabe (CP 1256)" #: ../src/common/fmapbase.cpp:169 msgid "Windows Korean (CP 949)" msgstr "Windows Coreano (CP 949)" #: ../src/msw/utils.cpp:1249 msgid "Windows ME" msgstr "Windows ME" #: ../src/msw/utils.cpp:1310 #, fuzzy, c-format msgid "Windows NT %lu.%lu" msgstr "Windows NT %lu.%lu (build %lu" #: ../src/msw/utils.cpp:1279 #, fuzzy msgid "Windows Server 2003" msgstr "Windows Server 2003 (build %lu" #: ../src/msw/utils.cpp:1295 #, fuzzy msgid "Windows Server 2008" msgstr "Windows Server 2003 (build %lu" #: ../src/msw/utils.cpp:1301 #, fuzzy msgid "Windows Server 2008 R2" msgstr "Windows Server 2003 (build %lu" #: ../src/common/fmapbase.cpp:166 msgid "Windows Thai (CP 874)" msgstr "Windows Tailandés (CP 874)" #: ../src/common/fmapbase.cpp:175 msgid "Windows Turkish (CP 1254)" msgstr "Windows Turco (CP 1254)" #: ../src/common/fmapbase.cpp:179 #, fuzzy msgid "Windows Vietnamese (CP 1258)" msgstr "Windows Griego (CP 1253)" #: ../src/msw/utils.cpp:1296 #, fuzzy msgid "Windows Vista" msgstr "Windows 95" #: ../src/common/fmapbase.cpp:173 msgid "Windows Western European (CP 1252)" msgstr "Windows European Occidental (CP 1252)" #: ../src/msw/utils.cpp:1285 #, fuzzy msgid "Windows XP" msgstr "Windows 95" #: ../src/common/fmapbase.cpp:181 msgid "Windows/DOS OEM (CP 437)" msgstr "Windows/DOS OEM (CP 437)" #: ../src/common/fmapbase.cpp:165 #, fuzzy msgid "Windows/DOS OEM Cyrillic (CP 866)" msgstr "Windows Cirílico (CP 1251)" #: ../src/common/ffile.cpp:148 #, c-format msgid "Write error on file '%s'" msgstr "Error de escritura en el archivo '%s'" #: ../src/xml/xml.cpp:844 #, c-format msgid "XML parsing error: '%s' at line %d" msgstr "Error de parseo de XML: '%s' en la línea %d" #: ../src/common/xpmdecod.cpp:796 msgid "XPM: Malformed pixel data!" msgstr "XPM: ¡Datos de píxel erróneos!" #: ../src/common/xpmdecod.cpp:705 #, c-format msgid "XPM: incorrect colour description in line %d" msgstr "XPM: errónea definición de color en línea %d" #: ../src/common/xpmdecod.cpp:680 msgid "XPM: incorrect header format!" msgstr "XPM: ¡formato de cabecera incorrecto!" #: ../src/common/xpmdecod.cpp:716 ../src/common/xpmdecod.cpp:725 #, c-format msgid "XPM: malformed colour definition '%s' at line %d!" msgstr "XPM: errónea definición de color '%s' en línea %d" #: ../src/common/xpmdecod.cpp:755 #, fuzzy msgid "XPM: no colors left to use for mask!" msgstr "XPM: ¡formato de cabecera incorrecto!" #: ../src/common/xpmdecod.cpp:782 #, c-format msgid "XPM: truncated image data at line %d!" msgstr "XPM: ¡datos de imagen truncados en la línea %d!" #: ../include/wx/msgdlg.h:271 ../src/common/stockitem.cpp:206 #: ../src/motif/msgdlg.cpp:196 msgid "Yes" msgstr "Sí" #: ../src/osx/carbon/overlay.cpp:155 msgid "You cannot Clear an overlay that is not inited" msgstr "No puede quitar una superposición que no ha sido inicializada" #: ../src/osx/carbon/overlay.cpp:107 ../src/dfb/overlay.cpp:61 msgid "You cannot Init an overlay twice" msgstr "No puede Inicializar una superposición dos veces" #: ../src/generic/dirdlgg.cpp:316 msgid "You cannot add a new directory to this section." msgstr "No puede añadir un nuevo directorio a esta sección." #: ../src/propgrid/propgrid.cpp:3258 msgid "You have entered invalid value. Press ESC to cancel editing." msgstr "" #: ../src/common/stockitem.cpp:209 msgid "Zoom &In" msgstr "A&cercar" #: ../src/common/stockitem.cpp:210 msgid "Zoom &Out" msgstr "A&lejar" #: ../src/common/stockitem.cpp:209 ../src/common/prntbase.cpp:1564 #, fuzzy msgid "Zoom In" msgstr "A&cercar" #: ../src/common/stockitem.cpp:210 ../src/common/prntbase.cpp:1550 #, fuzzy msgid "Zoom Out" msgstr "A&lejar" #: ../src/common/stockitem.cpp:208 msgid "Zoom to &Fit" msgstr "&Ajustar al tamaño" #: ../src/common/stockitem.cpp:208 #, fuzzy msgid "Zoom to Fit" msgstr "&Ajustar al tamaño" #: ../src/msw/dde.cpp:1144 msgid "a DDEML application has created a prolonged race condition." msgstr "una aplicación DDEML ha creado una condición acelerada prolongada." #: ../src/msw/dde.cpp:1132 msgid "" "a DDEML function was called without first calling the DdeInitialize " "function,\n" "or an invalid instance identifier\n" "was passed to a DDEML function." msgstr "" "una función DDEML fue llamada sin llamar primero a la función " "DdeInitialize,\n" "o se pasó un identificador de instancia no válido\n" "a una función DDEML." #: ../src/msw/dde.cpp:1150 msgid "a client's attempt to establish a conversation has failed." msgstr "el intento de un cliente de establece conversación falló." #: ../src/msw/dde.cpp:1147 msgid "a memory allocation failed." msgstr "fallo al reservar memoria." #: ../src/msw/dde.cpp:1141 msgid "a parameter failed to be validated by the DDEML." msgstr "fallo al validar un parémetro por DDEML." #: ../src/msw/dde.cpp:1123 msgid "a request for a synchronous advise transaction has timed out." msgstr "una petición para una transación síncrona ha finalizado." #: ../src/msw/dde.cpp:1129 msgid "a request for a synchronous data transaction has timed out." msgstr "una petición para una transacción de datos síncrona ha finalizado." #: ../src/msw/dde.cpp:1138 msgid "a request for a synchronous execute transaction has timed out." msgstr "una petición para una transación de ejecución síncrona ha finalizado." #: ../src/msw/dde.cpp:1156 msgid "a request for a synchronous poke transaction has timed out." msgstr "una petición para una transacción síncrona de revisión ha finalizado." #: ../src/msw/dde.cpp:1171 msgid "a request to end an advise transaction has timed out." msgstr "una petición para una transacción síncrona de auditoría ha finalizado." #: ../src/msw/dde.cpp:1165 msgid "" "a server-side transaction was attempted on a conversation\n" "that was terminated by the client, or the server\n" "terminated before completing a transaction." msgstr "" "se intentó una transacción de servidor en una conversación\n" "que fue finalizada por el cliente, o el servidor\n" "terminó antes de completar una transacción." #: ../src/msw/dde.cpp:1153 msgid "a transaction failed." msgstr "fallo en la traducción." #: ../src/common/accelcmn.cpp:184 msgid "alt" msgstr "alt" #: ../src/msw/dde.cpp:1135 msgid "" "an application initialized as APPCLASS_MONITOR has\n" "attempted to perform a DDE transaction,\n" "or an application initialized as APPCMD_CLIENTONLY has \n" "attempted to perform server transactions." msgstr "" "una aplicación inicializada como APPCLASS_MONITOR ha\n" "intentado llevar a cabo una transacción DDE,\n" "o una aplicación inicializada como APPCMD_CLIENTONLY ha\n" "intentado realizar transacciones de servidor." #: ../src/msw/dde.cpp:1159 msgid "an internal call to the PostMessage function has failed. " msgstr "ha fallado una llamada interna a la función PostMessage." #: ../src/msw/dde.cpp:1168 msgid "an internal error has occurred in the DDEML." msgstr "ha ocurrido un error interno en DDEML." #: ../src/msw/dde.cpp:1174 msgid "" "an invalid transaction identifier was passed to a DDEML function.\n" "Once the application has returned from an XTYP_XACT_COMPLETE callback,\n" "the transaction identifier for that callback is no longer valid." msgstr "" "se pasó un identificador de transacción no válido a la función DDEML.\n" "Una vez que la aplicación haya retornado desde una llamada " "XTYP_XACT_COMPLETE,\n" "el identificador de la transacción para esa llamada deja de ser válido." #: ../src/common/zipstrm.cpp:1272 msgid "assuming this is a multi-part zip concatenated" msgstr "suponemos que es un archivo zip multiparte concatenado" #: ../src/common/fileconf.cpp:1882 #, c-format msgid "attempt to change immutable key '%s' ignored." msgstr "intento de cambiar clave inmutable '%s', ignorado." #: ../src/html/chm.cpp:329 msgid "bad arguments to library function" msgstr "argumentos erróneos a la función de biblioteca" #: ../src/html/chm.cpp:341 msgid "bad signature" msgstr "firma errónea" #: ../src/common/zipstrm.cpp:1715 msgid "bad zipfile offset to entry" msgstr "desplazamiento erróneo al elemento del archivo zip" #: ../src/common/ftp.cpp:405 msgid "binary" msgstr "binario" #: ../src/common/fontcmn.cpp:978 msgid "bold" msgstr "negrita" #: ../src/os2/iniconf.cpp:463 msgid "buffer is too small for Windows directory." msgstr "el buffer es demasiado pequeño para el directorio Windows." #: ../src/msw/utils.cpp:1316 #, fuzzy, c-format msgid "build %lu" msgstr "Windows XP (build %lu" #: ../src/common/ffile.cpp:79 #, c-format msgid "can't close file '%s'" msgstr "no se puede cerrar el archivo '%s'" #: ../src/common/file.cpp:278 #, c-format msgid "can't close file descriptor %d" msgstr "no se puede cerrar el descriptor de archivo %d" #: ../src/common/file.cpp:604 #, c-format msgid "can't commit changes to file '%s'" msgstr "no se pueden hacer efectivos los cambios en archivo '%s'" #: ../src/common/file.cpp:212 #, c-format msgid "can't create file '%s'" msgstr "no se puede crear el archivo '%s'" #: ../src/common/fileconf.cpp:1176 #, c-format msgid "can't delete user configuration file '%s'" msgstr "no se puede eliminar el archivo de configuración de usuario '%s'" #: ../src/common/file.cpp:511 #, c-format msgid "can't determine if the end of file is reached on descriptor %d" msgstr "" "no se puede determinar si el final del archivo con descriptor %d se ha " "alcanzado" #: ../src/msdos/utilsdos.cpp:310 ../src/msdos/utilsdos.cpp:475 #, c-format msgid "can't execute '%s'" msgstr "No se puede ejecutar '%s'" #: ../src/common/zipstrm.cpp:1490 msgid "can't find central directory in zip" msgstr "no se puede encontrar el directorio central en el zip" #: ../src/common/file.cpp:481 #, c-format msgid "can't find length of file on file descriptor %d" msgstr "no se puede obtener el tamaño del archivo con descriptor %d" #: ../src/msw/utils.cpp:373 msgid "can't find user's HOME, using current directory." msgstr "no se encontró HOME del usuario, usando el directorio actual." #: ../src/common/file.cpp:382 #, c-format msgid "can't flush file descriptor %d" msgstr "no se puede vaciar el descriptor de archivo %d" #: ../src/common/file.cpp:438 ../src/msw/wince/filefnwce.cpp:204 #, c-format msgid "can't get seek position on file descriptor %d" msgstr "" "no se puede alcanzar posición de búsqueda en el descriptor de archivo %d" #: ../src/common/fontmap.cpp:325 msgid "can't load any font, aborting" msgstr "no se puede cargar ninguna fuente, abortando" #: ../src/common/file.cpp:264 ../src/common/ffile.cpp:63 #, c-format msgid "can't open file '%s'" msgstr "no se puede abrir el archivo '%s'" #: ../src/common/fileconf.cpp:351 #, c-format msgid "can't open global configuration file '%s'." msgstr "no se puede abrir el archivo de configuración global '%s'." #: ../src/common/fileconf.cpp:367 #, c-format msgid "can't open user configuration file '%s'." msgstr "no se puede abrir el archivo de configuración de usuario '%s'." #: ../src/common/fileconf.cpp:1017 msgid "can't open user configuration file." msgstr "no puede abrirse el archivo de configuración de usuario" #: ../src/common/zipstrm.cpp:527 msgid "can't re-initialize zlib deflate stream" msgstr "no se puede reinicializar el flujo de compresión de zlib." #: ../src/common/zipstrm.cpp:552 msgid "can't re-initialize zlib inflate stream" msgstr "no se puede reinicializar el flujo de descompresión de zlib." #: ../src/common/file.cpp:334 #, c-format msgid "can't read from file descriptor %d" msgstr "no se puede leer desde el descriptor de archivo %d" #: ../src/common/file.cpp:599 #, c-format msgid "can't remove file '%s'" msgstr "no se puede eliminar el archivo '%s'" #: ../src/common/file.cpp:616 #, c-format msgid "can't remove temporary file '%s'" msgstr "no se puede eliminar el archivo temporal '%s'" #: ../src/common/file.cpp:424 ../src/msw/wince/filefnwce.cpp:190 #, c-format msgid "can't seek on file descriptor %d" msgstr "no se puede buscar en el descriptor de archivo %d" #: ../src/common/textfile.cpp:299 #, c-format msgid "can't write buffer '%s' to disk." msgstr "no se puede guardar el buffer '%s' al disco." #: ../src/common/file.cpp:350 #, c-format msgid "can't write to file descriptor %d" msgstr "no se puede escribir el descriptor de archivo %d" #: ../src/common/fileconf.cpp:1031 msgid "can't write user configuration file." msgstr "no puede escribirse el archivo de configuración de usuario" #: ../src/html/chm.cpp:345 msgid "checksum error" msgstr "error de suma de comprobación" #: ../src/common/tarstrm.cpp:820 msgid "checksum failure reading tar header block" msgstr "fallo de suma de comprobación leyendo bloque de cabecera de tar" #: ../src/richtext/richtextborderspage.cpp:280 #: ../src/richtext/richtextborderspage.cpp:310 #: ../src/richtext/richtextborderspage.cpp:340 #: ../src/richtext/richtextborderspage.cpp:370 #: ../src/richtext/richtextborderspage.cpp:424 #: ../src/richtext/richtextborderspage.cpp:454 #: ../src/richtext/richtextborderspage.cpp:484 #: ../src/richtext/richtextborderspage.cpp:514 #: ../src/richtext/richtextmarginspage.cpp:202 #: ../src/richtext/richtextmarginspage.cpp:227 #: ../src/richtext/richtextmarginspage.cpp:250 #: ../src/richtext/richtextmarginspage.cpp:275 #: ../src/richtext/richtextmarginspage.cpp:316 #: ../src/richtext/richtextmarginspage.cpp:341 #: ../src/richtext/richtextmarginspage.cpp:364 #: ../src/richtext/richtextmarginspage.cpp:389 #: ../src/richtext/richtextsizepage.cpp:339 #: ../src/richtext/richtextsizepage.cpp:373 #: ../src/richtext/richtextsizepage.cpp:400 #: ../src/richtext/richtextsizepage.cpp:427 #: ../src/richtext/richtextsizepage.cpp:454 #: ../src/richtext/richtextsizepage.cpp:481 #: ../src/richtext/richtextsizepage.cpp:555 #: ../src/richtext/richtextsizepage.cpp:590 #: ../src/richtext/richtextsizepage.cpp:625 #: ../src/richtext/richtextsizepage.cpp:660 msgid "cm" msgstr "" #: ../src/html/chm.cpp:347 msgid "compression error" msgstr "error de compresión" #: ../src/common/regex.cpp:239 msgid "conversion to 8-bit encoding failed" msgstr "falló la conversión a codifiación de 8 bits" #: ../src/common/accelcmn.cpp:182 msgid "ctrl" msgstr "ctrl" #: ../src/common/cmdline.cpp:1323 msgid "date" msgstr "fecha" #: ../src/html/chm.cpp:349 msgid "decompression error" msgstr "error de descompresión" #: ../src/richtext/richtextstyles.cpp:780 ../src/common/fmapbase.cpp:820 msgid "default" msgstr "predeterminado" #: ../src/common/cmdline.cpp:1319 msgid "double" msgstr "" #: ../src/common/debugrpt.cpp:543 msgid "dump of the process state (binary)" msgstr "volcado de estado de proceso (binario)" #: ../src/common/datetimefmt.cpp:1936 msgid "eighteenth" msgstr "décimo octavo" #: ../src/common/datetimefmt.cpp:1926 msgid "eighth" msgstr "octavo" #: ../src/common/datetimefmt.cpp:1929 msgid "eleventh" msgstr "undécimo" #: ../src/common/fileconf.cpp:1868 #, c-format msgid "entry '%s' appears more than once in group '%s'" msgstr "la entrada '%s' aparece más de una vez en el grupo '%s'" #: ../src/html/chm.cpp:343 msgid "error in data format" msgstr "error en formato de datos" #: ../src/msdos/utilsdos.cpp:413 #, c-format msgid "error opening '%s'" msgstr "error al abrir '%s'" #: ../src/html/chm.cpp:331 msgid "error opening file" msgstr "error al abrir el archivo " #: ../src/common/zipstrm.cpp:1576 msgid "error reading zip central directory" msgstr "error al leer el directorio central del zip" #: ../src/common/zipstrm.cpp:1667 msgid "error reading zip local header" msgstr "error al leer la cabecera local del archivo zip" #: ../src/common/zipstrm.cpp:2396 #, c-format msgid "error writing zip entry '%s': bad crc or length" msgstr "error al escribir el elemento de zip '%s': crc o longitud erróneos" #: ../src/common/ffile.cpp:170 #, c-format msgid "failed to flush the file '%s'" msgstr "no se pudo limpiar el archivo '%s'" #: ../src/common/datetimefmt.cpp:1933 msgid "fifteenth" msgstr "décimo quinto" #: ../src/common/datetimefmt.cpp:1923 msgid "fifth" msgstr "quinto" #: ../src/common/fileconf.cpp:610 #, c-format msgid "file '%s', line %d: '%s' ignored after group header." msgstr "archivo '%s', línea %d: '%s' ignorado después de cabecera de grupo." #: ../src/common/fileconf.cpp:639 #, c-format msgid "file '%s', line %d: '=' expected." msgstr "archivo '%s', línea %d: '=' esperado." #: ../src/common/fileconf.cpp:662 #, c-format msgid "file '%s', line %d: key '%s' was first found at line %d." msgstr "" "archivo '%s', línea %d: clave '%s' fue encontrada por primera vez en la " "línea %d." #: ../src/common/fileconf.cpp:652 #, c-format msgid "file '%s', line %d: value for immutable key '%s' ignored." msgstr "archivo '%s', línea %d: valor ignorado para clave inmutable '%s'." #: ../src/common/fileconf.cpp:574 #, c-format msgid "file '%s': unexpected character %c at line %d." msgstr "archivo '%s': carácter %c inesperado en línea %d." #: ../src/richtext/richtextbuffer.cpp:8358 msgid "files" msgstr "archivos" #: ../src/common/datetimefmt.cpp:1919 msgid "first" msgstr "primero" #: ../src/html/helpwnd.cpp:1265 msgid "font size" msgstr "tamaño de fuente" #: ../src/common/datetimefmt.cpp:1932 msgid "fourteenth" msgstr "décimo cuarto" #: ../src/common/datetimefmt.cpp:1922 msgid "fourth" msgstr "cuarto" #: ../src/common/appbase.cpp:695 msgid "generate verbose log messages" msgstr "generar mensajes de log explicativos" #: ../src/richtext/richtextbuffer.cpp:12212 #: ../src/richtext/richtextbuffer.cpp:12322 msgid "image" msgstr "imagen" #: ../src/common/tarstrm.cpp:796 msgid "incomplete header block in tar" msgstr "bloque de cabecera incompleto en tar" #: ../src/common/xtixml.cpp:489 msgid "incorrect event handler string, missing dot" msgstr "cadena de identificador de evento incorrecta, falta el punto" #: ../src/common/tarstrm.cpp:1381 msgid "incorrect size given for tar entry" msgstr "tamaño incorrecto para elemento de tar" #: ../src/common/tarstrm.cpp:993 msgid "invalid data in extended tar header" msgstr "datos no válido en la cabecera de tar extendido" #: ../src/generic/logg.cpp:1050 msgid "invalid message box return value" msgstr "valor de retorno de bandeja de entrada no válido" #: ../src/common/zipstrm.cpp:1445 msgid "invalid zip file" msgstr "archivo zip no válido" #: ../src/common/fontcmn.cpp:983 msgid "italic" msgstr "cursiva" #: ../src/common/fontcmn.cpp:973 msgid "light" msgstr "ligera" #: ../src/common/intl.cpp:293 #, c-format msgid "locale '%s' cannot be set." msgstr "'%s' local no pudo establecerse." #: ../src/common/datetimefmt.cpp:2092 msgid "midnight" msgstr "medianoche" #: ../src/common/datetimefmt.cpp:1937 msgid "nineteenth" msgstr "décimo noveno" #: ../src/common/datetimefmt.cpp:1927 msgid "ninth" msgstr "noveno" #: ../src/msw/dde.cpp:1119 msgid "no DDE error." msgstr "no hay error DDE." #: ../src/html/chm.cpp:327 msgid "no error" msgstr "ningún error" #: ../src/dfb/fontmgr.cpp:174 #, c-format msgid "no fonts found in %s, using builtin font" msgstr "" #: ../src/html/helpdata.cpp:655 msgid "noname" msgstr "sin nombre" #: ../src/common/datetimefmt.cpp:2091 msgid "noon" msgstr "mediodía" #: ../src/richtext/richtextstyles.cpp:779 #, fuzzy msgid "normal" msgstr "Normal" #: ../src/gtk/print.cpp:1218 ../src/gtk/print.cpp:1323 msgid "not implemented" msgstr "" #: ../src/common/cmdline.cpp:1315 msgid "num" msgstr "núm" #: ../src/common/xtixml.cpp:259 msgid "objects cannot have XML Text Nodes" msgstr "los objetos no pueden tener nodos XML de texto" #: ../src/html/chm.cpp:339 msgid "out of memory" msgstr "memoria agotada" #: ../src/richtext/richtextsizepage.cpp:340 #: ../src/richtext/richtextsizepage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:401 #: ../src/richtext/richtextsizepage.cpp:428 #: ../src/richtext/richtextsizepage.cpp:455 #: ../src/richtext/richtextsizepage.cpp:482 #: ../src/richtext/richtextsizepage.cpp:556 #: ../src/richtext/richtextsizepage.cpp:591 #: ../src/richtext/richtextsizepage.cpp:626 #: ../src/richtext/richtextsizepage.cpp:661 msgid "percent" msgstr "" #: ../src/common/debugrpt.cpp:519 msgid "process context description" msgstr "descripción del contexto de proceso" #: ../src/richtext/richtextfontpage.cpp:186 #: ../src/richtext/richtextfontpage.cpp:189 msgid "pt" msgstr "" #: ../src/richtext/richtextfontpage.cpp:187 #: ../src/richtext/richtextborderspage.cpp:279 #: ../src/richtext/richtextborderspage.cpp:281 #: ../src/richtext/richtextborderspage.cpp:282 #: ../src/richtext/richtextborderspage.cpp:309 #: ../src/richtext/richtextborderspage.cpp:311 #: ../src/richtext/richtextborderspage.cpp:312 #: ../src/richtext/richtextborderspage.cpp:339 #: ../src/richtext/richtextborderspage.cpp:341 #: ../src/richtext/richtextborderspage.cpp:342 #: ../src/richtext/richtextborderspage.cpp:369 #: ../src/richtext/richtextborderspage.cpp:371 #: ../src/richtext/richtextborderspage.cpp:372 #: ../src/richtext/richtextborderspage.cpp:423 #: ../src/richtext/richtextborderspage.cpp:425 #: ../src/richtext/richtextborderspage.cpp:426 #: ../src/richtext/richtextborderspage.cpp:453 #: ../src/richtext/richtextborderspage.cpp:455 #: ../src/richtext/richtextborderspage.cpp:456 #: ../src/richtext/richtextborderspage.cpp:483 #: ../src/richtext/richtextborderspage.cpp:485 #: ../src/richtext/richtextborderspage.cpp:486 #: ../src/richtext/richtextborderspage.cpp:513 #: ../src/richtext/richtextborderspage.cpp:515 #: ../src/richtext/richtextborderspage.cpp:516 #: ../src/richtext/richtextmarginspage.cpp:201 #: ../src/richtext/richtextmarginspage.cpp:203 #: ../src/richtext/richtextmarginspage.cpp:204 #: ../src/richtext/richtextmarginspage.cpp:226 #: ../src/richtext/richtextmarginspage.cpp:228 #: ../src/richtext/richtextmarginspage.cpp:229 #: ../src/richtext/richtextmarginspage.cpp:249 #: ../src/richtext/richtextmarginspage.cpp:251 #: ../src/richtext/richtextmarginspage.cpp:252 #: ../src/richtext/richtextmarginspage.cpp:274 #: ../src/richtext/richtextmarginspage.cpp:276 #: ../src/richtext/richtextmarginspage.cpp:277 #: ../src/richtext/richtextmarginspage.cpp:315 #: ../src/richtext/richtextmarginspage.cpp:317 #: ../src/richtext/richtextmarginspage.cpp:318 #: ../src/richtext/richtextmarginspage.cpp:340 #: ../src/richtext/richtextmarginspage.cpp:342 #: ../src/richtext/richtextmarginspage.cpp:343 #: ../src/richtext/richtextmarginspage.cpp:363 #: ../src/richtext/richtextmarginspage.cpp:365 #: ../src/richtext/richtextmarginspage.cpp:366 #: ../src/richtext/richtextmarginspage.cpp:388 #: ../src/richtext/richtextmarginspage.cpp:390 #: ../src/richtext/richtextmarginspage.cpp:391 #: ../src/richtext/richtextsizepage.cpp:338 #: ../src/richtext/richtextsizepage.cpp:341 #: ../src/richtext/richtextsizepage.cpp:342 #: ../src/richtext/richtextsizepage.cpp:372 #: ../src/richtext/richtextsizepage.cpp:375 #: ../src/richtext/richtextsizepage.cpp:376 #: ../src/richtext/richtextsizepage.cpp:399 #: ../src/richtext/richtextsizepage.cpp:402 #: ../src/richtext/richtextsizepage.cpp:403 #: ../src/richtext/richtextsizepage.cpp:426 #: ../src/richtext/richtextsizepage.cpp:429 #: ../src/richtext/richtextsizepage.cpp:430 #: ../src/richtext/richtextsizepage.cpp:453 #: ../src/richtext/richtextsizepage.cpp:456 #: ../src/richtext/richtextsizepage.cpp:457 #: ../src/richtext/richtextsizepage.cpp:480 #: ../src/richtext/richtextsizepage.cpp:483 #: ../src/richtext/richtextsizepage.cpp:484 #: ../src/richtext/richtextsizepage.cpp:554 #: ../src/richtext/richtextsizepage.cpp:557 #: ../src/richtext/richtextsizepage.cpp:558 #: ../src/richtext/richtextsizepage.cpp:589 #: ../src/richtext/richtextsizepage.cpp:592 #: ../src/richtext/richtextsizepage.cpp:593 #: ../src/richtext/richtextsizepage.cpp:624 #: ../src/richtext/richtextsizepage.cpp:627 #: ../src/richtext/richtextsizepage.cpp:628 #: ../src/richtext/richtextsizepage.cpp:659 #: ../src/richtext/richtextsizepage.cpp:662 #: ../src/richtext/richtextsizepage.cpp:663 msgid "px" msgstr "" #: ../src/common/accelcmn.cpp:188 #, fuzzy msgid "rawctrl" msgstr "ctrl" #: ../src/html/chm.cpp:333 msgid "read error" msgstr "error de lectura" #: ../src/common/zipstrm.cpp:1882 #, c-format msgid "reading zip stream (entry %s): bad crc" msgstr "al leer flujo de zip (elemento %s): crc erróneo" #: ../src/common/zipstrm.cpp:1877 #, c-format msgid "reading zip stream (entry %s): bad length" msgstr "al leer flujo de zip (elemento %s): longitud errónea" #: ../src/msw/dde.cpp:1162 msgid "reentrancy problem." msgstr "problema de reentrada." #: ../src/common/datetimefmt.cpp:1920 msgid "second" msgstr "segundo" #: ../src/html/chm.cpp:337 msgid "seek error" msgstr "error de búsqueda" #: ../src/common/datetimefmt.cpp:1935 msgid "seventeenth" msgstr "décimo séptimo" #: ../src/common/datetimefmt.cpp:1925 msgid "seventh" msgstr "séptimo" #: ../src/common/accelcmn.cpp:186 msgid "shift" msgstr "mayúsculas" #: ../src/common/appbase.cpp:685 msgid "show this help message" msgstr "mostrar este mensaje de ayuda" #: ../src/common/datetimefmt.cpp:1934 msgid "sixteenth" msgstr "décimo sexto" #: ../src/common/datetimefmt.cpp:1924 msgid "sixth" msgstr "sexto" #: ../src/common/appcmn.cpp:227 msgid "specify display mode to use (e.g. 640x480-16)" msgstr "especifique el modo a usar (ej.: 640x480-16)" #: ../src/common/appcmn.cpp:213 msgid "specify the theme to use" msgstr "especifique el tema a usar" #: ../src/richtext/richtextbuffer.cpp:8876 #, fuzzy msgid "standard/circle" msgstr "Estándar" #: ../src/richtext/richtextbuffer.cpp:8877 msgid "standard/circle-outline" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8879 msgid "standard/diamond" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8878 #, fuzzy msgid "standard/square" msgstr "Estándar" #: ../src/richtext/richtextbuffer.cpp:8880 msgid "standard/triangle" msgstr "" #: ../src/common/zipstrm.cpp:1782 msgid "stored file length not in Zip header" msgstr "longitud del archivo almacenada no está en la cabecera del Zip" #: ../src/common/cmdline.cpp:1311 msgid "str" msgstr "cad" #: ../src/common/fontcmn.cpp:794 ../src/common/fontcmn.cpp:969 #, fuzzy msgid "strikethrough" msgstr "&Tachado" #: ../src/common/tarstrm.cpp:1003 ../src/common/tarstrm.cpp:1025 #: ../src/common/tarstrm.cpp:1507 ../src/common/tarstrm.cpp:1529 msgid "tar entry not open" msgstr "elemento tar no abierto" #: ../src/common/datetimefmt.cpp:1928 msgid "tenth" msgstr "décimo" #: ../src/msw/dde.cpp:1126 msgid "the response to the transaction caused the DDE_FBUSY bit to be set." msgstr "la respuesta a la transacción causó que se activase el bit DDE_FBUSY." #: ../src/common/datetimefmt.cpp:1921 msgid "third" msgstr "tercero" #: ../src/common/datetimefmt.cpp:1931 msgid "thirteenth" msgstr "décimo tercero" #: ../src/common/datetimefmt.cpp:1725 msgid "today" msgstr "hoy" #: ../src/common/datetimefmt.cpp:1727 msgid "tomorrow" msgstr "mañana" #: ../src/common/fileconf.cpp:1979 #, c-format msgid "trailing backslash ignored in '%s'" msgstr "" #: ../src/gtk/aboutdlg.cpp:218 msgid "translator-credits" msgstr "traductor-créditos" #: ../src/common/datetimefmt.cpp:1930 msgid "twelfth" msgstr "duodécimo" #: ../src/common/datetimefmt.cpp:1938 msgid "twentieth" msgstr "vigésimo" #: ../src/common/fontcmn.cpp:789 ../src/common/fontcmn.cpp:965 msgid "underlined" msgstr "subrayado" #: ../src/common/fileconf.cpp:2014 #, c-format msgid "unexpected \" at position %d in '%s'." msgstr "\" inesperado en la posición %d en '%s'." #: ../src/common/tarstrm.cpp:1045 msgid "unexpected end of file" msgstr "fin de archivo inesperado" #: ../src/generic/progdlgg.cpp:399 ../src/common/tarstrm.cpp:371 #: ../src/common/tarstrm.cpp:394 ../src/common/tarstrm.cpp:425 msgid "unknown" msgstr "desconocido" #: ../src/common/xtixml.cpp:253 #, c-format msgid "unknown class %s" msgstr "clase %s desconocida" #: ../src/common/regex.cpp:261 ../src/html/chm.cpp:351 msgid "unknown error" msgstr "error desconocido" #: ../src/msw/dialup.cpp:490 #, c-format msgid "unknown error (error code %08x)." msgstr "error desconocido (código %08x)." #: ../src/msw/wince/filefnwce.cpp:172 msgid "unknown seek origin" msgstr "origen de búsqueda desconocido" #: ../src/common/fmapbase.cpp:834 #, c-format msgid "unknown-%d" msgstr "desconocido-%d" #: ../src/common/docview.cpp:507 msgid "unnamed" msgstr "sin nombre" #: ../src/common/docview.cpp:1606 #, c-format msgid "unnamed%d" msgstr "sin nombre%d" #: ../src/common/zipstrm.cpp:1796 ../src/common/zipstrm.cpp:2184 msgid "unsupported Zip compression method" msgstr "método de compresión de Zip no soportado" #: ../src/common/translation.cpp:1883 #, c-format msgid "using catalog '%s' from '%s'." msgstr "usando catálogo '%s' de '%s'." #: ../src/html/chm.cpp:335 msgid "write error" msgstr "error de escritura" #: ../src/common/time.cpp:318 msgid "wxGetTimeOfDay failed." msgstr "Error en wxGetTimeOfDay" #: ../src/gtk/print.cpp:987 msgid "wxPrintout::GetPageInfo gives a null maxPage." msgstr "" #: ../src/osx/carbon/dataview.cpp:1303 msgid "wxWidget control pointer is not a data view pointer" msgstr "" #: ../src/osx/carbon/dataview.cpp:907 #, fuzzy msgid "wxWidget's control not initialized." msgstr "No se puede inicializar el 'display'." #: ../src/motif/app.cpp:245 #, c-format msgid "wxWidgets could not open display for '%s': exiting." msgstr "wxWidgets no pudo abrir el 'display' para '%s': saliendo." #: ../src/x11/app.cpp:164 msgid "wxWidgets could not open display. Exiting." msgstr "wxWidgets no pudo abrir el 'display'. Saliendo." #: ../src/richtext/richtextsymboldlg.cpp:434 msgid "xxxx" msgstr "xxxx" #: ../src/common/datetimefmt.cpp:1726 msgid "yesterday" msgstr "ayer" #: ../src/common/zstream.cpp:251 ../src/common/zstream.cpp:426 #, c-format msgid "zlib error %d" msgstr "error de zlib %d" #: ../src/richtext/richtextliststylepage.cpp:496 #: ../src/richtext/richtextbulletspage.cpp:301 msgid "~" msgstr "~" #~ msgid "Print preview" #~ msgstr "Vista previa de impresión" #, fuzzy #~ msgid "&Preview..." #~ msgstr " Previsualización" #, fuzzy #~ msgid "Preview..." #~ msgstr " Previsualización" #, fuzzy #~ msgid "The vertical offset relative to the paragraph." #~ msgstr "El estilo por defecto para el siguiente párrafo." #~ msgid "&Save..." #~ msgstr "&Guardar..." #~ msgid "About " #~ msgstr "Acerca de" #~ msgid "All files (*.*)|*" #~ msgstr "Todos los archivos (*.*)|*" #~ msgid "Cannot initialize SciTech MGL!" #~ msgstr "¡No se puede inicialzar SciTech MGL!" #~ msgid "Cannot initialize display." #~ msgstr "No se puede inicializar el 'display'." #~ msgid "Cannot start thread: error writing TLS" #~ msgstr "No se puede empezar el hilo de ejecución: error escribiendo TLS" #~ msgid "Close\tAlt-F4" #~ msgstr "Cerrar\tAlt-F4" #~ msgid "Couldn't create cursor." #~ msgstr "No se puedo crear el cursor." #~ msgid "Directory '%s' doesn't exist!" #~ msgstr "¡El directorio '%s' no existe!" #~ msgid "File %s does not exist." #~ msgstr "El archivo %s no existe." #~ msgid "Mode %ix%i-%i not available." #~ msgstr "Modo %ix%i-%i no disponible." #~ msgid "Paper Size" #~ msgstr "Tamaño del Papel" #~ msgid "%.*f GB" #~ msgstr "%.*f GB" #~ msgid "%.*f MB" #~ msgstr "%.*f MB" #~ msgid "%.*f TB" #~ msgstr "%.*f TB" #~ msgid "%.*f kB" #~ msgstr "%.*f kB" #, fuzzy #~ msgid "%s" #~ msgstr "%s B" #~ msgid "%s B" #~ msgstr "%s B" #~ msgid "&Goto..." #~ msgstr "&Ir a..." #~ msgid "<<" #~ msgstr "<<" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">>|" #~ msgstr ">>|" #~ msgid "Archive doesnt contain #SYSTEM file" #~ msgstr "El paquete no contiene un archivo #SYSTEM" #~ msgid "BIG5" #~ msgstr "BIG5" #~ msgid "Can't check image format of file '%s': file does not exist." #~ msgstr "" #~ "No se puede comprobar formato de imagen de archivo '%s': el archivo no " #~ "existe." #~ msgid "Can't load image from file '%s': file does not exist." #~ msgstr "No se pudo abrir imagen de archivo '%s': el archivo no existe." #~ msgid "Cannot convert dialog units: dialog unknown." #~ msgstr "No se pueden convertir unidades: diálogo desconocido." #~ msgid "Cannot convert from the charset '%s'!" #~ msgstr "¡No se puede convertir desde el conjunto de caracteres '%s'!" #~ msgid "Cannot find container for unknown control '%s'." #~ msgstr "" #~ "No se puede encontrar el contenedor para el control desconocido '%s'." #~ msgid "Cannot find font node '%s'." #~ msgstr "No se puede encontrar nodo de tipo de letra '%s'." #~ msgid "Cannot open file '%s'." #~ msgstr "No se puede abrir el archivo '%s'." #~ msgid "Cannot parse coordinates from '%s'." #~ msgstr "No se pueden parsear coordenadas desde '%s'." #~ msgid "Cannot parse dimension from '%s'." #~ msgstr "No se puede parsear dimensión desde '%s'." #~ msgid "Cant create the thread event queue" #~ msgstr "No se puede crear la cola de eventos del hilo de ejecución" #~ msgid "Click to cancel this window." #~ msgstr "Haga click para cerrar esta ventana." #~ msgid "Click to confirm your selection." #~ msgstr "Haga clic para confirmar la selección." #~ msgid "Could not unlock mutex" #~ msgstr "No se pudo desbloquear el mutex" #~ msgid "Error while waiting on semaphore" #~ msgstr "Error al escribir en el semáforo" #, fuzzy #~ msgid "Failed to connect to session manager: %s" #~ msgstr "Fallo al %s marcado de la conexión: %s" #~ msgid "Failed to create a status bar." #~ msgstr "Fallo al crear barra de estado." #~ msgid "Failed to register OpenGL window class." #~ msgstr "Fallo al registrar la clase de ventana OpenGL." #~ msgid "Fatal error" #~ msgstr "Error fatal" #~ msgid "Fatal error: " #~ msgstr "Error fatal: " #~ msgid "GB-2312" #~ msgstr "GB-2312" #~ msgid "Go forward to the next HTML page" #~ msgstr "Ir a la página HTML siguiente" #~ msgid "Goto Page" #~ msgstr "Ir a Página" #, fuzzy #~ msgid "" #~ "HTML pagination algorithm generated more than the allowed maximum number " #~ "of pages and it can't continue any longer!" #~ msgstr "" #~ "¡El algoritmo de paginación de HTML generó más páginas de las máximas " #~ "permitidas y no puede continuar!" #~ msgid "Help : %s" #~ msgstr "Ayuda: %s" #~ msgid "I64" #~ msgstr "I64" #~ msgid "Internal error, illegal wxCustomTypeInfo" #~ msgstr "Error interno, wxCustomTypeInfo ilegal" #~ msgid "Invalid XRC resource '%s': doesn't have root node 'resource'." #~ msgstr "Recurso XRC no válido '%s': no tiene el nodo raíz 'resource'." #~ msgid "No handler found for XML node '%s', class '%s'!" #~ msgstr "¡No se encontró manejador para el nodo XML '%s', clase '%s'!" #~ msgid "No image handler for type %ld defined." #~ msgstr "No hay definido ningún manipulador de imagen para tipo %ld." #, fuzzy #~ msgid "Owner not initialized." #~ msgstr "No se puede inicializar el 'display'." #, fuzzy #~ msgid "Passed item is invalid." #~ msgstr "'%s' es inválido" #~ msgid "Passing a already registered object to SetObjectName" #~ msgstr "Paso de un objeto ya registrado a SetObjectName" #~ msgid "Preparing help window..." #~ msgstr "Preparando ventana de ayuda..." #~ msgid "Program aborted." #~ msgstr "Programa abortado." #~ msgid "Referenced object node with ref=\"%s\" not found!" #~ msgstr "¡No se ha encontrado objeto nodo referenciado con ref=\"%s\"!" #~ msgid "Resource files must have same version number!" #~ msgstr "¡Los archivo de recursos deben tener la misma versión!" #~ msgid "SHIFT-JIS" #~ msgstr "MAYÚS" #~ msgid "Search!" #~ msgstr "¡Buscar!" #~ msgid "Sorry, could not open this file for saving." #~ msgstr "No pudo abrirse este archivo para guardar." #~ msgid "Sorry, could not save this file." #~ msgstr "No pudo guardarse este archivo." #~ msgid "Sorry, print preview needs a printer to be installed." #~ msgstr "" #~ "Disculpe, la impresión de vista previa requiere que se instale una " #~ "impresora." #~ msgid "Status: " #~ msgstr "Estado: " #~ msgid "" #~ "Streaming delegates for not already streamed objects not yet supported" #~ msgstr "" #~ "Aún no están soportados los delegados de flujo para los objetos que no " #~ "son ya de flujo" #~ msgid "Subclass '%s' not found for resource '%s', not subclassing!" #~ msgstr "¡No se encontró la subclase '%s' para el recurso '%s'!" #~ msgid "TIFF library error." #~ msgstr "Error en librería TIFF." #~ msgid "TIFF library warning." #~ msgstr "Aviso de librería TIFF." #~ msgid "" #~ "The file '%s' couldn't be opened.\n" #~ "It has been removed from the most recently used files list." #~ msgstr "" #~ "El archivo '%s' no puede abrirse.\n" #~ "Ha sido eliminado de la lista de archivos recientes." #~ msgid "The path '%s' contains too many \"..\"!" #~ msgstr "¡La ruta '%s' contiene demasiados \"..\"!" #~ msgid "Trying to solve a NULL hostname: giving up" #~ msgstr "" #~ "Intentando resolver un nombre de máquina (hostname) nulo: imposible de " #~ "resolver" #~ msgid "Unknown style flag " #~ msgstr "Flag de estilo desconocido" #~ msgid "Warning" #~ msgstr "Aviso" #~ msgid "Windows 2000 (build %lu" #~ msgstr "Windows 2000 (build %lu" #~ msgid "XRC resource '%s' (class '%s') not found!" #~ msgstr "¡Recurso XRC '%s' (clase '%s') no encontrado!" #~ msgid "XRC resource: Cannot create animation from '%s'." #~ msgstr "Recurso XRC: No se pudo crear la animación desde '%s'." #~ msgid "XRC resource: Cannot create bitmap from '%s'." #~ msgstr "Recurso XRC: No se pudo crear el mapa de bits desde '%s'." #, fuzzy #~ msgid "" #~ "XRC resource: Incorrect colour specification '%s' for attribute '%s'." #~ msgstr "" #~ "Recurso XRC: Especificación de color '%s' incorrecta para la propiedad " #~ "'%s'." #~ msgid "[EMPTY]" #~ msgstr "[VACÍO]" #~ msgid "catalog file for domain '%s' not found." #~ msgstr "archivo de catálogo para dominio '%s' no encontrado." #~ msgid "delegate has no type info" #~ msgstr "el delegado no tiene información de tipo" #~ msgid "encoding %i" #~ msgstr "codificación %i" #~ msgid "looking for catalog '%s' in path '%s'." #~ msgstr "buscando catálogo '%s' en directorio '%s'." #~ msgid "wxRichTextFontPage" #~ msgstr "wxRichTextFontPage" #~ msgid "wxSearchEngine::LookFor must be called before scanning!" #~ msgstr "wxSearchEngine::¡LookFor debe ser llamado antes de escanear!" #~ msgid "wxSocket: invalid signature in ReadMsg." #~ msgstr "wxSocket: firma inválida en ReadMsg" #~ msgid "wxSocket: unknown event!." #~ msgstr "wxSocket: ¡evento desconocido!." #~ msgid "|<<" #~ msgstr "|<<" #~ msgid "\t%s: %s\n" #~ msgstr "\t%s: %s\n" #~ msgid " Couldn't create the UnicodeConverter" #~ msgstr "No se puede crear el Convertidor a Unicode" #~ msgid "#define %s must be an integer." #~ msgstr "#define %s debe ser un entero." #~ msgid "%s not a bitmap resource specification." #~ msgstr "%s no es una especificación de recurso de mapa de bits." #~ msgid "%s not an icon resource specification." #~ msgstr "%s no es una especificación de recurso de icono." #~ msgid "%s: ill-formed resource file syntax." #~ msgstr "%s: Sintaxis incorrecta del archivo de recursos." #~ msgid "&Open" #~ msgstr "A&brir..." #~ msgid "&Print" #~ msgstr "Im&primir" #~ msgid "*** A debug report has been generated\n" #~ msgstr "*** Se ha generado un informe de depuración\n" #~ msgid "*** It can be found in \"%s\"\n" #~ msgstr "*** Se encuentra en \"%s\"\n" #~ msgid "" #~ ", expected static, #include or #define\n" #~ "while parsing resource." #~ msgstr "" #~ ", se esperaba static, #include o #define\n" #~ "al analizar recurso." #~ msgid "Bitmap resource specification %s not found." #~ msgstr "Especificación de recurso de mapa de bits %s no encontrada." #~ msgid "Closes the dialog without inserting a symbol." #~ msgstr "Cierra el diálogo sin insertar un símbolo." #~ msgid "" #~ "Could not resolve control class or id '%s'. Use (non-zero) integer " #~ "instead\n" #~ " or provide #define (see manual for caveats)" #~ msgstr "" #~ "No se puede resolver la clase de control o el id '%s'. Usar un entero " #~ "distinto de cero\n" #~ " o proporcionar el #define (ver consejos del manual)" #~ msgid "" #~ "Could not resolve menu id '%s'. Use (non-zero) integer instead\n" #~ "or provide #define (see manual for caveats)" #~ msgstr "" #~ "No se puede resolver el id de menu '%s'. Usar un entero distinto de cero\n" #~ " o proporcionar el #define (ver consejos del manual)" #~ msgid "Couldn't end the context on the overlay window" #~ msgstr "No se pudo finalizar el contexto en la ventana de superposición" #~ msgid "Expected '*' while parsing resource." #~ msgstr "Se esperaba '*' al analizar el recurso." #~ msgid "Expected '=' while parsing resource." #~ msgstr "Se esperaba '=' al analizar el recurso." #~ msgid "Expected 'char' while parsing resource." #~ msgstr "Se esperaba 'char' al analizar el recurso." #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "No se pudo encontrar el recurso XPBM %s. \n" #~ "¿Se olvidó de usar xwResourceLoadBitmapData?" #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadIconData?" #~ msgstr "" #~ "No se pudo encontrar recurso XBM %s. \n" #~ "¿Se olvidó de usar wxResourceLoadIconData?" #~ msgid "" #~ "Failed to find XPM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "No se pudo encontrar el recurso XPM %s. \n" #~ "¿Se olvidó de usar wxResourceLoadBitmapData?" #~ msgid "Failed to get clipboard data." #~ msgstr "Error al obtener información portapapeles." #~ msgid "Failed to load shared library '%s' Error '%s'" #~ msgstr "No se pudo abrir la librería dinámica '%s'. Error '%s'" #~ msgid "Found " #~ msgstr "Encontrado " #~ msgid "Icon resource specification %s not found." #~ msgstr "Especificación de recursos de iconos %s no encontrada." #~ msgid "Ill-formed resource file syntax." #~ msgstr "Sintaxis incorrecta del archivo de recursos." #~ msgid "Inserts the chosen symbol." #~ msgstr "Inserta el símbolo seleccionado." #~ msgid "Long Conversions not supported" #~ msgstr "Las conversiones Long no están soportadas" #~ msgid "No XPM icon facility available!" #~ msgstr "¡No está disponible el soporte para iconos XPM!" #~ msgid "Option '%s' requires a value, '=' expected." #~ msgstr "El parámetro '%s' necesita un valor, falta '='." #~ msgid "Select all" #~ msgstr "Seleccionar todo" #~ msgid "" #~ "Sorry, docking is not supported for ports other than wxMSW, wxMac and " #~ "wxGTK" #~ msgstr "" #~ "Lo siento, pero la reducción no es soportada por versiones que no sean " #~ "wxMSW, wxMac y wxGTK" #~ msgid "String conversions not supported" #~ msgstr "Conersiones de cadena no soportadas" #~ msgid "Unexpected end of file while parsing resource." #~ msgstr "Fin de archivo inesperado al analizar el recurso." #~ msgid "Unrecognized style %s while parsing resource." #~ msgstr "Estilo %s no reconocido al analizar el recurso." #~ msgid "Video Output" #~ msgstr "Salida de vídeo" #~ msgid "Warning: attempt to remove HTML tag handler from empty stack." #~ msgstr "Atención: intentando eliminar una etiqueta HTML de una pila vacía " #~ msgid "establish" #~ msgstr "establecer" #~ msgid "initiate" #~ msgstr "iniciar" #~ msgid "invalid eof() return value." #~ msgstr "valor devuelto por eof() no válido" #~ msgid "unknown line terminator" #~ msgstr "terminador de linea desconocido" #~ msgid "writing" #~ msgstr "escribiendo" #~ msgid "wxRichTextBulletsPage" #~ msgstr "wxRichTextBulletsPage" #~ msgid "wxRichTextListStylePage" #~ msgstr "wxRichTextListStylePage" #~ msgid "wxRichTextStylePage" #~ msgstr "wxRichTextStylePage" #~ msgid "." #~ msgstr "." #~ msgid "Cannot open URL '%s'" #~ msgstr "No se puede abrir la URL '%s'" #~ msgid "Error " #~ msgstr "Error " #, fuzzy #~ msgid "Failed to create directory %s/.gnome." #~ msgstr "Fallo al crear directorio %s/mime-info." #~ msgid "Failed to create directory %s/mime-info." #~ msgstr "Fallo al crear directorio %s/mime-info." #~ msgid "MP Thread Support is not available on this System" #~ msgstr "El soporte para hilos MP no está disponible en este sistema" #~ msgid "Mailcap file %s, line %d: incomplete entry ignored." #~ msgstr "Archivo Mailcap %s, linea %d: entrada incompleta ignorada." #~ msgid "Mime.types file %s, line %d: unterminated quoted string." #~ msgstr "" #~ "Archivo de Tipos Mime %s, linea %d: cadena entrecomillada no terminada." #~ msgid "Unknown field in file %s, line %d: '%s'." #~ msgstr "Campo desconocido en el archivo %s, linea %d: '%s'." #~ msgid "bold " #~ msgstr "negrita" #~ msgid "can't query for GUI plugins name in console applications" #~ msgstr "" #~ "no se pueden solicitar los nombres complementos del GUI en las " #~ "aplicaciones de consola" #~ msgid "light " #~ msgstr "ligera" #~ msgid "underlined " #~ msgstr "subrayado" #~ msgid "unsupported zip archive" #~ msgstr "paquete zip no soportado" #~ msgid "Select a file" #~ msgstr "Seleccionar un archivo" ginkgocadx-3.8.7/cadxcore/lang/fr/000077500000000000000000000000001314736454600170045ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/fr/cadxcore.mo000066400000000000000000002762311314736454600211440ustar00rootroot00000000000000d'N iF!i;hiPii6jQKj7j/jIkOk<nk1k#k#l%l6>lul!l2l<l>!m`m zm3m4m:m+nCnRn annnsn xnnnn0n/n2%o1Xo'o,o0o+p)M`s# $ -9 >K]%x&ŀ݀ / FT\djy m8%^ r ~ :҂ .? DR Wago ăӃ ڃ5-/C0s ΄ ڄ  "!DM \h x6&Ņ)"&9`~܆"6Mcxć ͇ ڇ "1E^ p |È߈D"*Me! #‰1Ka'{?8;2Sn[‹$1Cu'4'&9 `n׍+4M}g1Og 2(؏#%<V=pʐ# "?+FQrđۑ  /D\pw %В   8K`#z Гf)i=є &A:Q+ ؕ1+ ;IN % 1 =IRh p2ė |<a'ܙ(7BTBښ& 3G [hz  ƛћ ՛  ':K]di ~'՜  ( D O Z e p { 1V4FZnğlԟAS ZezC $-A]!qӣ +-8f#y̤ۤ"1"P's%إ += S t4ۦ    + 8DU\ciqx  ˧ڧ & < GQg }!Ĩ ^O4S @@B-p v  ªت1'$L\duϫث ߫E  !,5M_9h ȭͭ߭ #8NfQiT*IP h"u  ů֯ٯ ܯ  & /=L Q[m "ǰ ܰ   ? S^q  ݱ  8 E#Rv6  IJ вܲ1-5cz#ѳ ٳ  + 3= R\k| ´ ݴ   (%Nh# ڵ . @N$W| 9" .L>^Ʒ ٷSrwĸݸ ? =H-]" չ%- :B R`s> úͺ ݺ   " .8W_gnMлٻ   '5R mx* Ѽ޼+) Uc w 3%3YHHHh{! ÿп5<P `l    +17 iu +" +9FH  /G Xb v&'(8"P.s ';Pbiq "/ 5C V `"k  $ / : FSg#k$ &&"IN!` .C9 Y"e%&B?73w;3%:`{0- E0f#>'48\;3$H*%s@%8A9T{5(&GO%_^RS* 0 : ERW&]   ".(Q3z$%"!:\u-/))\S?:<++h % <I_t    F` eo .  ,<ENaptz %GGe    (B K U _!k(0  , GT X8b}l8P&!qM8'6'^"-"2F8e 1  !$>-c*,&>Nlc ]/8AhFa>r9Q==]0! 7)a%};^>>} ABL)v   9(:b;<05G9}637"6Z566858n@85!CW@A>2]56CAJ _   '09 ?%Jp;rI';L]n     -7$Pu  + Lmv4  + 9 Z'e 2-#',(4?]C .%T er +0' "%.5;C U` ~  %+3 ; E P [ h+s# ' G h+%GVf+u*  ,8O6k; *CHfy 1-$Di!(  '4:I(f,8$9Wf J     ' 3@C^   3Ocu O%;BH~   + AN#d  <1#4U)0 . )C  m      ! !2 T t         ! : Z  b p    (     8 O? =  / 3 .N 8} % * %(-V#v'G P*H{dJ)4tA!8 QF!"34FW+u&H(Nw@Lm'#M;,$+)DPn'%$ 2'Rz3g; U`qy! >_q ," OZw(:ZG%(*,WvQ#*1;@| &    'C`}E  _  *!!/!D"Q`"R"#"#,;#h## ##### #$ $$ !$-$F$ a$ n${$$$$$$$ $ %%0$%U%h% }% % %%%%%%&&&8&K&a&y&&&&&=&& ''^'(<(P(`((!(($((o)*+ +++%+,T, o,y,,,,,),--+-0-J-%e----<-.3.2P...3.6.> /*K//v///"/$/ 0%?0e0x0%0 00010$1 )171?1E1H1M1S1 Z1d1k11111111111 1 2 22$2 32 ?2J2^2$m2 222 2 223 $3/3G3 \3h343 3{3F4?N444 4U4W5Vr5 5 55 55556!6<6<Y6266666 7*7<7E7\7e7m7~777"H8[k8 8 8 8 9) 949I9DR9 9 99 9999 99:.:A:[:w::c:l: j;w;';;; ;-; <<-< 2<@<Q<T<W<`< q<{<< < <<<<<<< ==#/=S=h=x=="= =.==>#>;> T>^>e>m>~>>>%>>>>> >>!?#? 5?%B?h?=q? ???? ?@?!.@4P@!@@@@@'@ A A A-AAAPA jA uAAAAA AA A A AAB"B *B 7B DBRBZBbB kB5xBB$B&BCC(+CTC\CvC CCCCC C.CD 0D>DLZDD$D2D!E*EE?EEE!EEE E'FW0FFFF F#FF F GGG.GvGG*G(GG6 HDH0YH:H HHHIIF:I IIIIIIIII II J6J UJ _J iJsJSJ JJK!KvNN NhNhVO%OOO*PCP bPpPPPP'PPP Q!Q3QJQiQqQQQQ QQQQRR2)R\RqRRRRR RS<9S vSSSZST.+TZT tTTTTTT'TU3UFU_UtU(U0U+U V:V!XV(zV:VVVV W$W?W XWbW uWWWWWWWWX.XMXTX]XfX XX XXXX XX7 Y$BYgYYYY YYYYZ Z#Z7ZPZ,WZZZ.ZZZ Z+[ /[P[V[%h[&[4[ [I[M?\ \+\"\(\1]AA]A]2]:]<3^p^5^^^5z___1_`S6```*`=`=2a7pa2aaa3=b`qb%b@bY9cbc.c6%d'\djd'de$0edUedeZf1zf f f fff+f ggg*g1gQgcg lg wg g ggg gg.g9gB7h0zh.h%h-i,.i [i'|i?iCi$(jMjVj1lj]jJjEGk>k+kkll&(lOlclwl+llll m!m2mPm_msmmmmZm %n1n"Cn fnnn9nno o:-ohoqowoooo'o(oo pp#p (p4p;=pyp\p]p;qAq Xqfq oq{qqqq&qqr r2rEr$`r7r rrrrrs.sBsFsCKss-.t\t[t38ulu(v)v[ wAhw"w1w.w".x+Qx9}x+x?x-#yMQyy y y=y y zzz!)z5KzAz;z5z5{ <{I{`{x{{${{F|N|i| r| | |;oju2GcW9U3XZ!zR"ghcqN/|  Wat M%2<)O.{Gy@x\NH5JIF3_Eu-!TEP@78 );DoXUflNJ$fyl'!pUpg~DL \OnnR M.+C2V_GlB$M\$az!=  j*[<}XSx4QxAZ,LC =sOV@9s;=#>V9ka uQIh-?, ?9&mR]Pk_r|j*KF:cmr5(C6 `h#FQly<quD33 > 2H|p.~86"YF94ETAW7}{6=;1= [K4}cKO5<8d$ weSL}O"(e$'[c&LwvJSVPQ/K,pKi%RzZa:]/U.lI%:js>sDuf1|>t-/!>&|oR@ nw1 YarI)#8qPS0 ~*wXDB~k ?g'-bMC+rt{v]#'eqNV%n\xAhG0{*d UTG+o_Tr 6#d7m )Q%?`@[X <0(:4H)yhP]N`B^zi"+n^1EtMv2vm7eFmSfAHg"}p\,oz&yks.E1fH,W6t]5B(I'b8AZ4db&Y*T b vYjkg^/Y[w:(bZ7`qi`dx- C5+ JBLe0i3i {^0_^~W ?;J * Concatenation of patient name and surnames can't be higher than 61. * The format of the height in centimeters is not correct. * The format of the weight is not correct. Valid range is between 0 and 400 Kg. * The patient ID is required. * The patient's birth date is after the date of study - If you want to use SSL/TLS you have to set a valid certificate and private key - If you want to use WADO you have to fill in wado url - Maximum length of local AET is 16 characters - The PDU size should be greater than or equal to zero (default = 16384) - The local port is too large - The local port must be a positive short integer (16 bits) - The maximum length of the AET is 16 characters - The maximum value of the PDU is - The minimum value of the PDU is - The port is too large - The port must be a positive short integer (16 bits) - This PACS id is in use - WADO URL doesn't contains host - WADO URL doesn't contains scheme (i.e. http://) There are %d errors (see log for more detailed description) Would you like to retry(automatically retried in %d seconds)? Would you like to retry? (%d images) . Modality does not exists in model: Add it first. . SOP Class does not exists in model: Add it first. . Transfer Syntax does not exists in model: Add it first. bytes from a total of doesn't exist from History? not allowed of to to Modality to SOP Class unsupported components with transfer syntax "accion" attribute expected at "plantilla" scope"accion" attribute invalid at "plantilla" scope"action" attribute expected at "gnkworkflow" scope"action" attribute invalid at "gnkworkflow" scope"aid" attribute expected at "hce" scope"ambito" attribute expected at "dimse" scope"ambito" attribute expected at "plantilla" scope"ambito" attribute invalid at "dimse" scope"cid" atribute expected at "centro" scope"clave" attribute expected at "metadato" scope"code" attribute expected at "metadata" scope"code" attribute expected at "patient" scope"code" attribute expected at "physician" scope"codigo" attribute expected at "medico" scope"codigo" attribute expected at "metadato" scope"codigo" attribute expected at "paciente" scope"id_peticion" attribute expected at "gnkworkflow" scope"iid" atribute expected at "institution" scope"key" attribute expected at "metadata" scope"pacs-retrieve-sid" attribute empty at "gnkworkflow" scope"pacs-store-sid" attribute empty at "gnkworkflow" scope"pacs_retrieve_sid" attribute empty at "plantilla" scope"pacs_store_sid" attribute empty at "plantilla" scope"uid" attribute expected at "dimse" scope"valor" attribute expected at "medico" scope"value" attribute expected at "physician" scope"value" attribute expected at "query-retrieve-level" scope%.1f fps%Y/%m/%d %H:%M:%S.%q%d results has been found%m/%d/%Y%m/%d/%Y %H:%M:%S%m/%d/%Y 00:00:00%s settings&Accept&Cancel&Clear history&Close&Close all&Delete from history&Edit&End&Exit&File&Help&Next >(ID or medical history number))): Check the configuration and attach it if necessary): Is not a valid HL7 identifier (ie: code^description^namespaceId)+.../0 running tasks.00/00/0000 00:00:000000/00/00 00:00:001x1 Layout1x2 Layout2x1 Layout2x2 Layout3x3 Layout4x4 Layout644654645< &Previous?@AETANGIOAbort messageAboutAbout Acc#AcceptAccession NumberAccession numberAcquireAcquire DICOM filesAcquire a DICOM study from PACSAcquire from DICOM DirAcquire images from PACSAcquisition dateAcquisition informationActiveAddAdd DICOM tagAdd columnAdd rowAdd tagAdd window/levelAdd/Edit LocationAdvancedAdvanced Configuration ...Advanced SettingsAdvanced searchAdvanced settings...AgeAll patientsAlways use this view to open these filesAngle Ctrl+AAnonymizationAnonymization settingsAnonymizeAnonymous mode (history is cleaned)Any dateApplyAre you sure to delete this file from disk?Are you sure you want to cancel the import process?Are you sure you want to delete AreaArrowAssociation Acknowledged (Max Send PDV: Association Rejected: Bad Application Context Name: Association Rejected: No Implementation Class UID providedAssociation receivedAssociation(dicom://AsymmetryAttach ViewAttempted to dereference null pointerAuthenticationAuto calculateAuto-cleaningAutocalculateAutomatically check for updatesAutomatically start HL7 Sender serviceAvailable only in WADO serversB/WB/W InverseBONEBREASTBackBartenBetween:Birth dateBlack BodyBrightness/Contrast Ctrl+BBrowse...CRANIUMCRANIUM BONECT CRANIUMCairoCalibrating...CalibrationCalibration value is too lowCan not upload to the PACS: Can not upload to the PACS: Internal ErrorCancelCardiacCenter (I)Center (M)CentimetersCertificateCertificate to use in this connectionCertificate used by Ginkgo CADxChange ...Change Password ...Change passwordCharLSCharsetCheck PACS configurationCheck UpdatesCheck for newest versionsCheck for updatesCheck for updates automaticallyCheck update errorChoose a directoryChoose the view you want to use to open file/sClean afterClean beforeClean directory after dicomizationClean directory before dicomizationCleaning dicomdir...ClearClear historyClear logCloseClose Ginkgo CADxClose allClose all viewsClose all windowsClose automatically Ginkgo CADx after dicomizeClose current viewClose historyClose this notificationCloses the application and aborts pending commandsClosingClosing Ginkgo CADxCobbCobb Angle (2 straight lines)Color MapColumnsCommentsCommit dateCommitedCommon tagsCompleted messageConfiguration parameters of the local stationConfigure GridConfigure Grid ...Configure locationConfiguring environment ...Confirm PasswordConfirm removalConfirm the removal of the nodeConfirm the removal of the profile Connection test failConnection test successfulContinueContinue...CopyCopy or linkCopy to clipboardCould not find entry pointCould not load extension library fileCould not load library file. Check logCould not write to fileCould to perform query.Could to retrieve study.Create newCreating Thumbnail...Creating Thumbnails...Creation DateCreatorCreditsCubicCurrent layoutDCMTKDICOM (native format)DICOM DirDICOM Dir configurationDICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d). This version is unabled to open it.DICOM Dir is the local directory where history is storedDICOM Dir migrationDICOM ErrorDICOM ExportDICOM InspectorDICOM MPPSDICOM NodeDICOM NodesDICOM Query/RetrieveDICOM data from the files to be generated can be populatedDICOM nodesDICOM nodes settingsDark Glass IconsDataData modifiedDateDate TimeDate:DefaultDefault ORU templateDefault Window/LevelDefault charsetDefault textDefault valueDefault valuesDeleteDelete WidgetDelete messageDelete older studies when hd free space is less than:Delete selected itemsDelete studies when DICOM Dir size bigger than:Delete studies with acquisition date older than:Demographic dataDescriptionDeselect allDestinationDestination:Detach viewDetach windowDicom tagDicomization completeDicomization finished successfullyDicomizeDicomize filesDicomize...Dicomized filesDisable loopDistanceDo not close the application and keep commands runningDo not warn me again about this updateDo you confirm the removal of the preset?Do you want to copy or link files?Don't change image codec (if possible)Don't show this message againDownloadDownload %s imagesDownload againDownload all modalitiesDownload from Ginkgo CloudDownload of modality Download seriesDownload studyDownloading fileDownloading file %dDownloading file %d/%dDownloading files ...Downloading files...Downloading from PACS...Downloading serie...Downloading study...ER7EditEdit ...Edit MessageEdit UserEdit profileEdit public keyElectronic health recordEllipseEmpty ResponseEmpty configurationEnable TLS configurationEnable http proxyEnable loopEnable remote PACS configurationEnable shadersEnable/DisableEnabledEnter the calibration valueErrorError accessing the controller subsystem integration: (GIL:: DICOM).Error checking application updatesError connecting to urlError creating database: Error creating dicomDir database Error creating history database Error creating thumbnails database Error deleting messagesError downloading WADO fileError downloading fileError downloading study: Error editing messageError executing WorkFlow Error executing WorkFlow Internal ErrorError extracting pdf, Ginkgo CADx is unable to load this formatError getting messageError in cloud operation. See log to get more details...Error in interpreting the parameters of the command line. (Error in the confirmation of delivery: Delivery is not recognized by the remote endError in the logic of confirmation. The control of the message ID does not match recognizedError loading DICOM Conformance fileError loading history, Ginkgo CADx will be closedError loading studyError loading study insufficient memoryError loading study, check hanging protocol settingsError loading study.Error loading study: Error loading the study: Internal ErrorError loading the study: Out of memoryError messageError parsing JSon: Error parsing integration XML: Error perfoming the query.Error processing messageError purguing messagesError queueing message. Check your supplierError reading history: Error reading the study:Error reading the study: Error reading the study: Largest image pixel value data is not coherent with combination of Pixel Representation and High bitError reading the study: unsupported pixel formatError renaming old dicomdir to _old, ensure you have permissions to do itError retrieving study.Error savingError sending HL7 message see log for more detailsError sending evidences:Error sending evidences: Internal error.Error sending message. It was sent Error sending message:Error setting TLS layer: Error starting HL7 senderError storing file, check the permissions over the directory.Error synchronizing study: Error unregistering tools: Error uploading the study to PACS: Error validating fieldsError while running thread: Error:Error: PACS entry configuration not found: Errors have occurred when saving the series. Would you like to continue closing? Exception in componentException loading:ExceptionsExisting fileExitExit applicationExploring PACS...Exploring directory Exploring directory ...Exploring drives...ExportExport ConfigurationExport DICOMExport config...Export has been finished successfullyExport image...Export imagesExport successfully completedExport to DICOM DirExporting file %d of %dExporting files...Exporting images ...Exporting series %d of %dExtension descriptor does not matchExtensionsExtensions settingsExtracting file...Extracting files...Failed delivery confirmation:Failed to create directory, make sure the path is correct and you have permissions on parent directoryFailed to delete the number of database: Failed to empty the history, you have to close opened studiesFailed to empty the history: Failed to perform search: Failed to set permissions: Failed to start connectionFamFamFam IconsFatal error! you can't register two parsers with same keyFemaleFile couldn't be stored File exists Would you like to overwrite it?File link:Fill in valid numbers in window and level fields.Filler Application IdFlip horizontalFlip verticalFlowFor large-scale implementation in a homogenous environment, you can specify the following wildcards in the local AET: %IP IP Address %IP n-th Octet (1~4) %HOSTNAME Host Name"Force lossless when uploadFormatFugue IconsFull ScreenFull screenGE ColorGIL/DICOM/ConformanceGeneralGeneral configuration parametersGenerating preview...Generating thumbnail ...GetGingo CADx Application ID used to fill MSH.3 fieldGinkgo CADxGinkgo CADx Application IdGinkgo CADx Secondary CaptureGinkgo CADx has detected a default DICOM Dir created with an old version of Ginkgo CADx (BBDD v.%d). What do you want to do?Ginkgo CADx has detected inactivity and it will be closed in %d seconds. Do you want to continue?Ginkgo CADx has detected more than one removable units, but none of them includes a DICOMDIR at root. Select drive where you want to acquire recursivelyGinkgo CADx is unable to compress from Ginkgo CADx manual ...Ginkgo CADx must have at least one user.Ginkgo CADx must restart for the changes to take effectGinkgo CADx must restart for the extensions changes to take effectGinkgo CADx must restart for the permission changes to take effectGinkgo CADx private tagsGinkgo CADx restrictionsGinkgo CADx tags (Evaluation Maps...)Ginkgo CADx updatedGinkgo CADx updatesGinkgo CloudGinkgo Cloud linkGinkgo Cloud searchGinkgo Extension TitleGray RainbowGreater RadiusGridGrid ScaleHL7HL7 ServiceHL7 controller destroyedHL7 message controlHL7 messagesHL7 monitorHL7 sender startedHanging protocolHanging protocolsHeightHideHide DICOM inspectorHide GridHide corner annotationsHistoryHostHostname (IP or DNS) integration engineHostname / PortHostname missingHot GreenHot IronHot MetalI Accept the licenseI do NOT accept the licenseISO_IR 100ISO_IR 101ISO_IR 109ISO_IR 110ISO_IR 126ISO_IR 127ISO_IR 138ISO_IR 144ISO_IR 148ISO_IR 192ISO_IR 6ITKIdId malformed template in the module configurationIdentification informationIdentificator *If you accept the terms of the agreement, click "I Accept the license" to continue. You must accept the license to start using Ginkgo CADx.If you want to use SSL/TLS you have to set a valid certificate and a valid private keyIgnoring incoming operation Image Browser DialogImage CalibrationImage Export WizardImage Import WizardImage acquisition finished.Image format not supportedImage presentation informationImage selectionImages (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*.bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*ImportImport ...Import ConfigurationImport config...Import files to DICOM formatImport process failed:Import successfully completed, restart Ginkgo CADx to apply changesImporting...In progress messageInactiveInactivity detectedIncluded in the history ...Including files ...Including files in the history ..Including files...Including image InfoIni Files(*.ini)|*.iniIni files(*.ini)|*.iniInitializing environment ...Institution's IdInstitution's nameInstitutionsIntegration Engine's Transport Layer ProtocolIntegration engineIntegration engine hostname not setIntegration engine port not setInternal ErrorInternal errorInternal error checking updatesInternal error during auth processInternal error reading the study, unknown format Internal error reading the study: Internal error while reading the study:Internal error while running thread: Interpolate pixel dataInterpreting parameters ...Interpreting propertiesInvalid DICOM Conformance fileInvalid HTTP codeInvalid HTTP responseInvalid file has been downloadedInvalid linkInvalid port numberInvert color mapIt has been read a "patient" tag without identifiersJPEGJSon ResponseJsonCppKNEEKgLONILONI2LUNGLabelLanguageLast 3 monthsLast 30 daysLast 7 daysLast ModificatorLayoutLengthLevelLibJpegLibPngLibcurlLicense agreementLicense menuLicensesLinearLinkLink seriesLink studyLinking image Linking study...Load ...Load canceled by userLoadingLoading plugins ...Loading resources ...Loading...Local AETLocal AET certificateLocal DICOM Dir setupLocal PACSLocal databaseLocal institutionLocationLocation SettingsLocation titles can't be repeatedLocationsLocations are predefined paths to set locations from well known paths (ex: remote shared disk)LogLog file (*.log) | *.log | Text file (*.txt) | *.txtLog monitorLog monitoredLog nodeLogical error: Image not associated with existent serie in modelLogical error: Serie not associated with existent study in modelLogical error: Study not associated with existent patient in modelLoginLower RadiusMBMEDIASTINUMMLLPMaleMalformed XMLMalformed template Id (Marking Tools Ctrl+MMax number of tabs openedMax seconds of Ginkgo CADx application inactivityMaximum length of title is 8 charactersMedical historyMessageMessage content:Message detailMessage successfully sentMessage's formatMessagesMetaEmotion HealthcareMetadataMetersMetric gridMicronsMigrate existing (recommended)Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. Do not close Ginkgo CADx until migration is finished.Migrating old DICOM Dir ...Migration finished successfully, now Ginkgo CADx will delete folder: Migration finisthed successfullyMilimetersModalitiesModalityModality download errorModification DateModifiedModule tool still registered when disposing ToolsRegistryMonitorizeMosaicMoveNACK received:NameNearest neighbourNeed support ...New ...New Ginkgo Cloud studyNew UpdateNew UserNew hanging protocolNew version availableNew version available (NoNo DICOMDIR found in removable units, would you like to scan recursively %s driveNo DICOMDIR found in removable units. Would you like to scan other path recursively?No loginNo results foundNo valid presentation contextsNormalNormal Angle (3 points)Not commitedNot enough parameters found on XMLNot foundNot implementedNoteNull ResponseNumber of VertexOKOkOmitted AETOmitted IdentificatorOmitted portOne dayOne monthOne weekOne yearOnline manualOnline supportOpenOpen FileOpen Ginkgo CloudOpen Ginkgo Cloud linkOpen SeriesOpen Series with ..Open Source DICOM CADx environmentOpen Source LicensesOpen With ...Open fileOpen folderOpen in main windowOpen linkOpen only one tab for each studyOpen removable unitOpen studyOpen study with ..Open test cardOpen...OpenGLOpenSSLOpening modeOtherOther settingsOthersOverview data of DICOM filesOverwriteOverwrite PathsP-ValuePACSPACS LimitsPACS Q/RPACS acquisition is restrictedPACS error: PACS-ServicePDF files extracted successfully...PDU (KB)PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*PERFusionPETPan Ctrl+PParameters:PasswordPassword and confirm password can't be different.Password changed successfullyPassword has to contain at least 6 charactersPassword is not settedPassword is settedPastePaste from clipboardPathPath of the location doesn't existsPatientPatient IdPatient idPatient informationPatient namePatient's name and surnamePendingPerimeterPetitioner System IdPhysicianPhysician's IdPhysician's namePixels blurringPointPointer EscPoints (I)Points (M)PolygonPortPort is not a valid numberPosition (I)Position (M)Powered byPreviewPreviewsPrintPrivate keyPrivate key and Certificate do not matchPrivate key in PEM formatProcess canceled by user.Professional DICOM CADx environmentProfileProfile nameProfile name can't be repeatedProfilesProfiles SettingsProgram UpdatesPropertiesProperties ...Properties of Properties of ...Properties...ProtocolProxy server requires authenticationProxy settingsPublic keyPublic key in PEM formatPush configuration button and place window where you wantQualityQuery error with PACS Id Query retrieve level not specifiedQuery successfully performed.Querying PACS ...REGEXP called with wrong number of arguments: %d instead of 2.ROIReading DICOMDIR ...Reading datasetReading propertiesReal MeasureReceiver organization IdReceiving Association failed: Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG Lossless)RedoRefering physicianReferring physicianRefreshRegular expression invalid: 'Relationship informationRemoveRemove allRemove columnRemove old DICOM Dir after migration (will be renamed as *_old)Remove rowRemove sent messagesRequested module does not support importationRequested module is not registeredResetReset size to display resolutionReset to defaultRestrict search over selected patientRestrict study retrieval by maximum size (KB)ResultsRetrieve methodRetrieve modeRetry send to PACSReuse connectionReuse connections when is needed to make more than one queriesRotate 90Rotate and flipRotate cameraRowsRule Ctrl+RRunningSPINALSQL LiteSSL/TLSSaveSave log...Save logsSave snapshot as new series...Scale XScale YSearchSearch Ginkgo CloudSearch without parameters could take al long time Would you like to continue?SecuritySecurity SettingSecurity typeSelect DICOMDIRSelect PACSSelect PACS serverSelect a ViewSelect a valid DICOMDIR fileSelect a valid PACS ServerSelect allSelect at least one seriesSelect certificateSelect dicom dir files you want to acquireSelect driveSelect drive you want to openSelect files from filesystemSelect files...Select how do you want to handle MPPS itemsSelect imagesSelect opening modeSelect otherSelect other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new one will be created, else existing DICOM Dir will be usedSelect the DICOM Dir folderSelect the directory where the files will be storedSelect the format and the images you want to exportSelected imagesSelecting Import ProfileSemantic/Sintactic error parsing integration URL (see log for details): Semantic/Sintactic error parsing integration XML (see log for details): Send Hl7 message when importingSend files to PACSSend link by e-mailSend study to PACS when importingSend task status:Send to PACSSend to PACS...Sending HL7 message %d of %dSending to PACS...SentSeparate addresses with commas.SeriesSeries Instance UIDSeries criteriaSeries dateSeries does not existSeries path couldn't be foundServerServer ID not found. ID = Server not foundServer settingsServiceService's IdService's nameSet DefaultSet PasswordSet activeSet by userSet compression, 0 implies no compression (0..14)Set defaultSet default valueSet main passwordSet passwordSet pixels blurringSet property activeSet property inactiveSetting not foundSetting the electronic health record systemSettingsSettings menuSetup SecuritySetup position and size of the window where you want to open the studySetup position...Setup undocked window positionSetup windowSetup window positionSexShow DICOM inspectorShow GridShow MessageShow accession number inputShow corner annotationsShow full screenShow gridShow history Alt+hShow link...Show on startupShow on startup default valueSkip demographic step if it's possibleSkipping extension with duplicated SID:Slider Ctrl+SSome of selected series has been deletedSpacing is not valid: (Spacing of the image is invalid: (Specify this Storage SOP Class in dicomizationSpectrumSpeedSplit active horizontallySplit active verticallySplit horizontally...Split vertically...StartStart pageStartingStarting Search ...Starting services...Starting tools...StatusStatus:Step %d of %d: Step 1 of 3: Importing imagesStep 2 of 3: Copying imagesStep 3 of 3: Uploading imagesSternStopStoppedStopping HL7 senderStoring in the history...StudiesStudies withStudyStudy DetailsStudy Instance UIDStudy UIDStudy dateStudy download size limit exceededStudy malformed or unsupportedStudy opening criteriaStudy successfully retrieved.StyleSurnameSynchronizeSynchronize filesSystem authenticationT1 CRANIUMT2 CRANIUMTab RegroupTab groupingTabbed organizationTagTags (double click to change value)TasksTemplate Id unsupported (Test Integration Engine connectivityTest connectionTest engineTest titleTesting conectivity with the server...Testing the connection to the node ...TextText Note Ctrl+NThe calibration value is too highThe calibration value is too lowThe calibration value must be a decimal numberThe fileThe following commands will be aborted if you close the applicationThe following errors have occurred when validating fieldsThe module The pdu size is not a valid numberThe port is not a valid numberThe requested module isn't registeredThe selected directory can't be openedThe selected directory does not exist Would you like to create it?The selected directory does not exist Would you like to create?The service did not respond correctly to the C-ECHOThe service did not respond correctly to the DICOM standardThe submission process is started and ready to sendThe tool is already registeredThe username or password is incorrectThere are %d pending tasksThere are files that has to be downloaded to local database before executing this action, do you want to synchornize files now?There are other DICOM directory in selected pathThere are this errors: There aren't any PACS configuredThere aren't any module with importation supportThere have been included %d images.There is no URL to check updates on the current configuration.There is no any PACS configuredThere is no running tasksThere is not any Remote PACS configuredThere is not newest Ginkgo CADx versions at this moment.There is not registered any module with importation supportThere isn't any pdf reader registered in the systemThere was an error anonymizing filesThere was an error changing the password. To get more info open the LOG.There was an error creating directoryThere was an error deleting user. To get more info open the LOG.There was an error during exportationThere was an error during importation, check permissionsThere was an error inserting user. To get more info open the LOG.There was an error reading the directory, make sure you have write permissions on itThere was an error writing fileThese series have been deleted from the local historyThey have produced the following errors:This feature only affects to studies COPIED to DICOM Dir and not in useThis files are Dicom Dirs:This files doesn't exist:This files doesn't have DICOM format:This series has been already downloaded in the local history, Do you want to download it again?This study has been already downloaded in the local history, Do you want to download it again?This version of Ginkgo CADx is not compatible with current version of Ginkgo Cloud.This view doesn't support multiple windowsThreadingThree daysThree monthsTimeTitleTo download the study, paste this url TodayToday AMToday PMToolsTools loading base ...Trackball Ctrl+TTrapezoidTravel (I)Travel (M)Two daysTwo weeksTypeUNKNOWURL of manualURL of online supportUnable to add supported SOP Class Unable to add supported transfer syntax Unable to connect: Could not start network support.Unable to create TLS transport layerUnable to init HTTP subsystemUnable to load GIF animation resourceUnable to load PNG bitmap resourceUnable to load PNG image resourceUnable to open modality Unable to perform HTTP requestUnable to reserve memory for PDF dicomizationUnable to reserve memory for image DicomizationUnable to start GinkgoCADx: UndoUndo rotate and flipUnexpected error, select the module againUnique identifier of the Picture Archiving and Communication System Application (SIID/PACS).Unique identifier of the filler application (SIID/Ginkgo CADx).Unique identifier of the filler application (SIID/Ginkgo).Unique identifier of the organization receiving the message.Unique identifier of the requesting system.UnknownUnknown JSon attribute:Unknown errorUnknown error in dicomization processUnknown module Id (Unknown operationUnknown protocolUnknown query/retrieve levelUnsaved dataUnset pixels blurringUnsupported protocolUpdate period (days)Updating ...Upload images to a PACS serverUpload studyUpload study...Uploading file %d of %dUploading files ...Use SSL/TLSUse by defaultUse default certificate (certificate configured in local AET settings)UserUser NameUser deleted successfullyUser inserted successfullyUser loginUser nameUser name has to contain at least 4 charactersUser name repeatedUser/PasswordUsersUsually due to an error in sending a messageVERTEBRAVR BonesVR Muscles & BonesVR Red VesselsVTKValueVerify client credentialsVerify server credentialsVideo Ctrl+SpaceViewView Full ScreenWADOWADO ErrorWADO URLWarn about newest Ginkgo CADx updatesWarningWarning, to update the directory, you have to close every opened seriesWarning, to update the directory, you must close current opened series.WeightWidget PropertiesWidget's NameWindowWindow %dWindow annotationsWindow layoutWindow/Level Ctrl+WWindow/levelWindow/level label in useWorklistWorklistsWorkspaceWorkstationWould you like to overwrite them?Would you like to remove these messages?Would you like to save the changes in the study:WxWidgetsXX axis scaleXML Parser Not Found. Key=XML dicomizationXML parsing internal errorY axis scaleYesYesterdayYou are not allowed to download this kind of modalities.You can copy and paste link to use it in e-mails and web pages, you have to install Ginkgo CADx to download and visualize it.You can't remove opened seriesYou do not have permissions to write to the dicom Dir, preferences will be stored in the temporary directoryYou have reached maximum number of opened tabs, close some tabs and try it againYou have to set private and public keyYou must configure the local AET, which is used to communicate with the DICOM nodes. The specified port must be opened in the firewall, as it is essential for transfers.You must configure the local AET, which is used to communicate with the PACS server. The specified port must be opened in the firewall, as it is essential for transfers.You must create at least one userYou must define a default PACS in the integration XML or in the settings menuYou must fill both title and location fields to continueYou must fill in all fieldsYou must fill in all fields to continueYou must fill in name field to continueYou must select an imageYou must select at least one imageYou must select the images you want to importYou must select the import profileYou must select the profile you want to use importYou must set the main passwordYou must specify attributes you want to use in the queryZlibZoom Ctrl+Oall filesand all it's sub folders Do you confirm deletion?bytes/sec duringclockwisecmcounter-clockwisedoc\manual_ginkgo_cadx_pro_en.pdfelement patient id absent in datasetelement series instance uid absent in datasetelement sop instance uid absent in datasetelement study instance uid absent in dataseterrorfree ofhttp://ginkgo-cadx.comhttp://ginkgo-cadx.com/id_application expectedimage_%m-%d-%Y_in dicomization dir.into "Open Ginkgo Cloud link" tool of Ginkgo CADx history, or paste it into the address bar of your browser.loadsearch resultssecondssettingsthis seriesthose seriesProject-Id-Version: ginkgocadx Report-Msgid-Bugs-To: POT-Creation-Date: 2014-06-11 15:50+0100 PO-Revision-Date: Last-Translator: Carlos Barrales Ruiz Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 1.6.5 X-Poedit-Basepath: . X-Poedit-KeywordsList: _Std;_ X-Poedit-SourceCharset: UTF-8 X-Poedit-SearchPath-0: ..\.. * La concaténation du nom et du prénom du patient ne doivent pas dépasser 61 caractères. * La taille en centimètre n'est pas correcte. * Le poids est incorrect. La plage valide est entre 0 et 400 kg. * L'ID patient ID est requis. * La date de naissance du patient est ultérieur à celle de l'étude - Si vous voulez utiliser SSL/TLS, vous devez définir un certificat et une clef privée valides - Si vous voulez utiliser WADO, vous devez remplir l'URL WADO - La longueur maximale de l'AET local est 16 caractères - La taille du PDU doit être supérieur ou égal à zéro (par défaut = 16384) - Le port local est trop grand - Le port local doit être un entier positif court (16 bits) - La taille maximum d'un AET est 16 caractères - La valeur maximale du PDU est - La valeur minimum du PDU est - Le port est trop grand - Le port doit être un entier positif court (16 bits) - Cet Id PACS est utilisé - L'URL WADO ne contient pas d'hôte - L'URL WADO URL ne contient pas de schéma (i.e. http://) Il y a %d erreurs (Regardez les fichiers journaux pour plus une description plus détaillée) Voulez-vous réessayer (essai automatique dans %d secondes) ? Voulez-vous réessayer ? (%d images). La modalité n'existe pas dans le modèle : ajoutez-la d'abord.. La classe SOP n'existe pas dans le modèle : ajoutez-la d'abord.. La syntaxe de transfert n'existe pas dans le modèle : ajoutez-la d'abord. octets sur un total de n'existe pas de l'historique ?non autorisé de vers à la modalité dans la classe SOP composants non supportés avec la syntaxe de transfertAttribut "accion" attendu dans le périmètre "plantilla"Attribut "accion" invalide dans le périmètre "plantilla"Attribut "action" attendu dans le périmètre "gnkworkflow"Attribut "action" invalide dans le périmètre "gnkworkflow"Attribut "aid" attendu dans le périmètre "hce"Attribut "ambito" attendu dans le périmètre "dimse"Attribut "ambito" attendu dans le périmètre "plantilla"Attribut "ambito" invalide dans le périmètre "dimse"Attribut "cid" attendu dans le périmètre "centro"Attribut "clave" attendu dans le périmètre "metadato"Attribut "code" attendu dans le périmètre "metadata"Attribut "code" attendu dans le périmètre "patient"Attribut "code" attendu dans le périmètre "médecin"Attribut "codigo" attendu dans le périmètre "medico"Attribut "codigo" attendu dans le périmètre "metadato"Attribut "codigo" attendu dans le périmètre "paciente"Attribut "id_peticion" attendu dans le périmètre "gnkworkflow"Attribut "iid" attendu dans le périmètre "institution"Attribut "key" attendu dans le périmètre "metadata"Attribut "pacs-retrieve-sid" vide dans le périmètre "gnkworkflow"Attribut "pacs-store-sid" vide dans le périmètre "gnkworkflow"Attribut "pacs_retrieve_sid" vide dans le périmètre "plantilla"Attribut "pacs_store_sid" vide dans le périmètre "plantilla"Attribut "uid" attendu dans le périmètre "dimse"Attribut "valor" attendu dans le périmètre "medico"Attribut "value" attendu dans le périmètre "patient"Attribut "value" attendu dans le périmètre "query-retrieve-level"%.1f fps%Y/%m/%d %H:%M:%S.%q%d résultats ont été trouvés%d/%m/%Y%d/%m/%Y %H:%M:%S%d/%m/%Y 00:00:00Configuration %s&Accepter&Annuler&Effacer l'historique&Fermer&Tout fermer&Détruire de l'historique&Edition&Finir&Quitter&Fichier&Aide&Suivant >(ID ou numéro d'historique médical))): Vérifiez la configuration et attachez-le si nécessaire): N'est pas un identifiant HL7 valide (ie: code^description^namespaceId)+.../0 tâche en cours.00/00/0000 00:00:000000/00/00 00:00:00Mise en page 1x1Mise en page 1x2Mise en page 2x1Mise en page 2x2Mise en page 3x3Mise en page 4x4644654645< &Précédent?@AETANGIOAnnuler messageA propos deA propos deAcc#AccepterNuméro d'accèsNuméro d'accèsAcquérirAcquérir fichiers DICOMAcquérir une étude DICOM d'un PACSAcquérir DICOMDIRImporter des images du PACSDate d'acquisitionInformation d'acquisitionActifAjoutAjouter une balise DICOMAjouter une colonneAjouter une ligneAjout d'un tagAjout d'une fenêtre/d'un niveauAjout/Modification d'emplacementAvancéeConfiguration avancée...Configuration avancéeRecherche avancéeConfiguration avancée.AgeTous les patientsToujours utiliser cette vue pour ouvrir ces fichiersAngle Ctrl+AAnonymisationConfiguration de l'anonymisationAnonymiserMode anonyme (l'historique est effacé)Toute dateAppliquerEtes-vous sûr de détruire ce fichier du disque ?Êtes-vous sûr de vouloir annuler l'import ?Etes-vous sûr de vouloir supprimerAireFlècheAssociation reconnue (PDV max d'envoi : Association rejetée : Mauvais nom de contexte d'application : Association rejetée : Pas d'UID de classe d'implémentation fourniAssociation reçueAssociation (dicom://AsymétrieAttacher la vueTentative de dé-référence d'un pointeur nulAuthentificationAutocalculerAuto-nettoyageAutocalculAutomatiquement vérifier les mises à jourDémarrer automatiquement le service d'envoi HL7Disponible uniquement sur serveurs WADON/BN/B inverséOSPOITRINERetourFanonEntre :Date de naissanceCorps noirLuminosité/Contraste Ctrl+BParcourir...CRANEOS DU CRANECRANE CTCairoCalibrage...CalibrageLa valeur de calibrage est trop basseNe peut pas envoyer au PACS: Ne peut pas envoyer au PACS: Erreur interneAnnulerCardiaqueCentre (I)Centre (M)CentimètresCertificatCertificat à utiliser pour cette connexionCertificat utilisé par Ginkgo CADxChangement ...Changement du mot de passe ...Changer le mot de passeCharLSEncodage de caractèreVérifier la configuration PACSVérifications des mises à jourVérifier les nouvelles versionsVérifier les mises à jourVérifier les mises à jour automatiquementVérifier les erreurs de mise à jourChoisir un répertoireChoisissez la vue que vous voulez utiliser pour ouvrir ce(s) fichier(s)Nettoyer aprèsNettoyer avantNettoyer le répertoire après dicomisationNettoyer le répertoire avant dicomisationNettoyage de dicomdirEffacerEffacer l'historiqueEffacer journalFermetureFermer Ginkgo CADxTout fermerFermer toutes les vuesFermer toutes les fenêtresFermer automatiquement Ginkgo CADx après dicomisationFermer la vue actuelleFermer l'historiqueFermer la notificationFermer l'application et abandonner les commandes en attenteFermetureFermeture de Ginkgo CADxCobbAngle Cobb (2 lignes droites)Palette de couleurColonnesCommentairesDate d'engagementEngagéBalises communesMessage complétéParamètres de configuration de la station localeConfigurer la grilleConfigurer la grille ...Configurer emplacementConfiguration de l'environnement ...Confirmez mot de passeConfirmer la suppressionConfirmez la suppression du nœudConfirmation de la suppression du profilÉchec du test de connexionsuccès du test de connexionContinuerContinuer...CopieCopier ou lierCopier dans le presse-papierImpossible de trouver le point d'entréeNe peut charger la bibliothèque d'extensionNe peut charger la bibliothèque. Vérifier les journauxImpossible d'écrire dans le fichierNe peut exécuter la requête.Ne peut récupérer l'étude.Créer nouveauCréation de miniature...Création de miniatures...Date de créationCréateurCréditsCubiqueCalque courantDCMTKDICOM (format natif)DICOMDIRConfiguration DICOM DirLa DICOMDIR a été créée avec une version trop récente de Ginkgo CADx (BBDD v.%d). Cette version est incapable de l'ouvrir.La DICOMDIR est dans le répertoire local où l'historique est enregistréMigration DICOMDIRErreur DICOMExport DICOMInspecteur DICOMMPPS DICOMNoeud DICOMNoeuds DICOMRequête/Récupération DICOMLes données DICOM des fichiers à générer peuvent être rempliesNoeuds DICOMConfiguration des noeuds DICOMIcônes Dark GlassDonnéeDonnée modifiéeDateDate HeureDate :DéfautTemplate ORU par défautFenêtre/Niveau par défautCharset par défautTexte par défautValeur par défautValeurs par défautSupprimerDétruire widgetDétruire le messageSupprimer les anciennes études quand l'espace disque libre est inférieur à :Détruire les articles sélectionnésSupprimer les études quand le DICOMDIR est plus gros que :Supprimer les études dont la date d'acquisition est plus ancienne que :Données démographiqueDescriptionDéselectionner toutDestinationDestination :Détacher la vueDétacher la fenêtreBalise DICOMDicomisation completeDicomisation terminée avec succèsDicomiserDicomiser des fichiersDicomiser...Fichiers dicomisésDésactiver boucleDistanceNe pas fermer l'application et laisser les commandes tournerNe plus m'avertir à propos de cette mise à jourConfirmez-vous la suppression de la présélection ?Voulez-vous copier ou lier les fichiers ?Ne pas changer le codec de l'image (si possible)Ne plus revoir ce messageTéléchargementTéléchargement de %s imagesTélécharger encoreTéléchargement de toutes les modalitésTéléchargement du Ginkgo CloudTélécharger les modalitésTélécharger sérieTélécharger étudeTéléchargement de fichierTéléchargement du fichier %dTéléchargement du fichier %d/%dTéléchargement des fichiers ...Téléchargement de fichiers...Téléchargement du PACS...Téléchargement d'une série...Téléchargement d'une étude...ER7EditerEditer ...Editer le messageEditer un utilisateurEditer le profilÉditer la clef publiqueDossier de santé électroniqueEllipseRéponse videConfiguration videActiver la configuration TLSActiver le proxy HTTPActiver boucleActiver la configuration du PACS distantActiver shadersActiver/désactiverActiverEntrez la valeur de calibrageErreurErreur d'accès à l'intégration du sous-système contrôleur : (GIL:: DICOM).Erreur à la vérification des mises à jour de l'applicationErreur de connexion à l'URLErreur à la création de la base de données: Erreur de création de la base de données DICOMDIRErreur à la création de la base d'historiqueErreur de création de la base de données de miniaturesErreur à la suppression des messagesErreur au téléchargement du fichier WADOErreur de téléchargement de fichierErreur de téléchargement de l'étude :Erreur à l'édition du messageErreur à l'exécution du workflow Error executing WorkFlow Erreur interneErreur d'extraction PDF. Ginkgo CADx est incapable de charger ce formatErreur de réception du messageErreur dans l'opération Cloud. Voir les journaux pour avoir plus de détails...Erreur dans l'interprétation des paramètres de la ligne de commande. (Échec de la confirmation de livraison : : La livraison n'est pas reconnu par l'extrémité distanteErreur dans la logique de la confirmation. L'ID message n'est pas reconnnuErreur de chargement du fichier de conformité DICOMErreur au chargement de l'historique, Ginkgo CADx va être ferméErreur au chargement de l'étude.Erreur au chargement de l'étude : mémoire insuffisanteErreur au chargement de l'étude, vérifiez la configuration du protocole hangingErreur au chargement de l'étude.Erreur au chargement de l'étude :Erreur à la lecture de l'étude : Mémoire interneErreur à la lecture de l'étude : Mémoire saturéeMessage d'erreurErreur à l'analyse du JSON :Erreur d'analyse de l'XML d'intégration : Erreur à l'exécution de la requête.Erreur de traitement du messageErreur de purge des messagesErreur de mise en file d'attente du message. Vérifiez votre fournisseurErreur à la lecture de l'historique : Erreur de lecture de l'étude :Erreur de lecture de l'étude :Erreur à la lecture de l'étude : la valeur de la pixel la plus grande n'est pas cohérente avec la combinaison de Pixel Representation et High bitErreur à la lecture de l'étude : Format de pixel non supportéErreur de renommage de l'ancienne DICOMDIR en _old, vérifiez que vous avez les permissions de faire çaErreur à la récupération de l'étudeErreur d'enregistrementErreur à l'envoi de message HL7. Regardez les journaux pour plus de détailsErreur à l'envoi des preuvesErreur d'envoi des preuves : Erreur interne.Erreur d'envoi de message. Il y a euErreur à l'envoi du message :Erreur de configuration de la couche TLS : Erreur au démarrage de l'expéditeur HL7Erreur à l'enregistrement du fichier, vérifiez les permissions du répertoire.Erreur de synchronisation de l'étude :Erreur à l'enregistrement d'outils :Erreur d'envoi des études au PACS :Erreur de validation des champsErreur pendant l'exécution du thread :Erreur :Erreur : Configuration d'entrée PACS introuvable :Des erreurs ont été rencontrées à la sauvegarde de la série. Voulez-vous continuer la fermeture ? Exception dans le composantException au chargement :ExceptionsFichier existantQuitterQuitter l'applicationParcours du PACS...Explorer le répertoireParcours du répertoire...Parcours des lecteurs...ExporterExporter la configurationExporter DICOMExporter la configuration...L'export s'est fini avec succèsExport d'image...Exporter imagesExport terminé avec succèsExporter vers la DICOM DirExportation du fichier %d sur %dExport des fichiers...Export d'images ...Export des séries %d sur %dLe descripteur d'extension ne correspond pasExtensionsConfiguration des extensionsExtraction de fichier...Extraction des fichiers...Échec de la confirmation de livraison :Échec de création du répertoire. Assurez-vous que le chemin est correct et que vous avez les permissions sur le répertoire parentÉchec de suppression du numéro de la base de données : Echec au vidage de l'historique, vous devez fermer les études ouvertesEchec du nettoyage de l'historique : Échec à l'exécution de la recherche :Echec de la modification des permissions: Echec d'ouverture de connexionIcônes FamFamFamErreur fatale ! Vous ne pouvez pas enregistrer deux analyseurs avec la même clefFemelleLe fichier n'a pu être enregistréLe fichier existe Voulez-vous l'écraser ?Lien fichier :Mettez un nombre valide dans les champs fenêtre et niveau.Id de l'application contenanteFlip horizontalFlip verticalFluxPour la mise en œuvre à grande échelle dans un environnement homogène, vous devez spécifier les caractères génériques suivants dans l'AET local : %IP Adresse IP %IP n-ème Octet (1~4) %HOSTNAME Nom d'hôte"Forcer le "sens-perte" lors de l'envoiFormatIcônes FuguePlein écranPlein écranCouleur GEGIL/DICOM/ConformitéGéneralParamètres de configuration généraleGénération d'un aperçu...Génération de miniature...MettreL'ID application Gingo CADx est utilisée pour remplir le champ MSH.3Ginkgo CADxId d'application Ginkgo CADxCapture secondaire Ginkgo CADxGinkgo CADx a détecté une DICOMDIR par défaut créée avec une ancienne version de Ginkgo CADx (BBDD v.%d). Que voulez-vous faire ?Ginkgo CADx a détecté une inactivité et se fermera dans %d secondes. Voulez-vous continuer ?Ginkgo CADx a détecté plus d'une unité amovible, mais aucune d'elles ne contient de DICOMDIR à sa racine Sélectionner un lecteur que vous voulez acquérir récursivementGinkgo CADx est incapable de compresse de Manuel Ginkgo CADx ...Ginkgo CADx doit avoir au moins un utilisateur.Ginkgo CADx doit redémarrer pour que les changements prennent effetGinkgo CADx doit redémarrer pour que les changements d'extensions prennent effetGinkgo CADx doit redémarrer pour que les changements de permission prennent effetBalises privées Ginkgo CADxRestrictions Ginkgo CADxBalises Ginkgo CADx (Carte d'évaluation...)Ginkgo CADx mis à jourMise à jour Ginkgo CADxCloud GinkgoLien Ginkgo CloudRecherche Ginkgo CloudTitre d'extension GinkgoArc-en-ciel grisGrand rayonGrilleGrille de mesureHL7Service HL7Contrôleur HL7 détruitContrôle des messages HL7Messages HL7Moniteur HL7Expéditeur HL7 démarréProtocole HangingProtocole HangingTailleCacherCacher l'inspecteur DICOMCacher la grilleCacher les annotations des coinsHistoriqueHôteNom d'hôte (IP ou DNS) du moteur d'intégrationNom d'hôte / PortNom d'hôte manquantVert chaudAcier chaudMétal chaudJ'accepte la licenceJe n'accepte PAS la licenceISO_IR 100 - Latin 1ISO_IR 101 - Latin 2ISO_IR 109 - Latin 3ISO_IR 110 - Latin 4ISO_IR 126 - GrecISO_IR 127 - ArabeISO_IR 138 - HébreuxISO_IR 144 - CyrilliqueISO_IR 148 - Latin 5ISO_IR 192 - UTF8ISO_IR 6ITKIdId du template mal renseigné dans la configuration du moduleInformation d'identificationIdentifiant *Si vous acceptez les termes de l'agrément, cliquez sur "J'accepte la licence" pour continuer. Vous devez accepter la licence pour commencer à utiliser Ginkgo CADx.Si vous voulez utiliser SSL/TLS, vous devez définir un certificat et une clef privée validesIgnorer l'opération entranteExplorateur d'imageCalibrage ImageAssistant d'exportation d'imageAssistant d'import d'imageAcquisition de l'image terminée.Format d'image non supportéInformation de présentation d'imageSélection d'imageImages (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|Images JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|Images BMP (*.bmp)|*.bmp;*BMP|Images PNG (*.png)|*.png;*PNG|Images TIFF (*.tif;*.tiff)|*.tif;*.tiff;*TIF;*TIFF|Documents PDF (*.pdf;*.PDF)|*.PDF;*.pdf|Tout fichier (*.*)|*.*Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|Images JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|Images BMP (*.bmp)|*.bmp|Images PNG (*.png)|*.png|Images TIFF (*.tif;*.tiff)|*.tif;*.tiff|Documents PDF (*.pdf)|*.pdf|Tout fichier(*.*)|*.*ImportImport ...Configuration de l'importImporter la configuration...Importer des fichiers au format DICOMEchec de l'import :Import terminé avec succès, redémarrez Ginkgo CADx pour appliquer les changementsImport...Message en coursInactifInactivité détectéeAjout dans l'historique...Ajout de fichiers ...Ajouter les fichiers dans l'historique ..Ajout de fichiers...Ajout de l'image InfoFichiers Ini(*.ini)|*.iniFichiers Ini (*.ini)|*.iniInitialisation de l'environnement ...Id de l'établissementNom de l'établissementEtablissementsLe protocole de couche de transfert du moteur d'intégrationMoteur d'intégrationLe nom d'hôte du moteur d'intégration pas définiLe port du moteur d'intégration n'est pas définiErreur interneErreur interneErreur interne à la vérification de mises à jourErreur interne pendant le processus d'authentificationErreur interne pendant la lecture de l'étude, format inconnu Erreur interne à la lecture de l'étude :Erreur interne pendant la lecture de l'étude :Erreur interne pendant l'exécution du thread :Interpoler des données des pixelsInterprétations des paramètres ...Interprétation des propriétésFichier de conformité DICOM invalidecode HTTP invalideRéponse HTTP invalideLe fichier téléchargé est invalideLien invalideNuméro de port invalideInverser les couleursUne balise "patient" sans identifiant a été lueJPEGRéponse JSONJsonCppGENOUkgLONILONI2POUMONEtiquetteLangueLes 3 derniers moisLes 30 derniers joursLes 7 derniers joursDernier modificateurCalqueLongueurNiveauLibJpegLibPngLibcurlAccord de licenceMenu licenceLicencesLinéaireLienSéries liéesEtude liéeLien imageLien des études...Chargement ...Chargement annulé par l'utilisateurChargementChargement des pluginsChargement des ressources ...Chargement...AET localCertificat de l'AET localConfiguration du DICOMDIR localPACS localBase de données localeÉtablissement localEmplacementConfigurations des emplacementsLes titres d'emplacement ne peuvent être répétésEmplacementsLes emplacements sont des chemins prédéfinis pour définir les emplacements des chemins bien connus (ex : disque réseau)JournalFichier journal (*.log) | *.log | Fichier texte (*.txt) | *.txtMoniteur de journauxJournaux monitoréNœud journalErreur logique : l'image n'est pas associée avec un patient existant dans le modèleErreur logique : la série n'est pas associée avec un patient existant dans le modèleErreur logique : l'étude n'est pas associée avec un patient existant dans le modèleIdentifiantPetit rayonMBMEDIASTINMLLPMâleXML mal forméId template mal formé (Outils de marquage Ctrl+MNombre max d'onglets ouvertsTemps d'inactivité maximum de l'application Ginkgo CADx (s)La longueur maximale du titre est de 8 caractèresHistorique médicalMessageContenu du message :Détail du messageMessage envoyé avec succèsFormat du messageMessagesMetaEmotion HealthcareMetadataMètresGrille de mesureMicronsMigrer l'existant (recommandé)Migrer le DICOMDIR existant. Les fichiers seront automatiquement ajouter au nouveau DICOMCIR. Ne pas fermer Ginkgo CADx avant que la migration ne soit terminée.Migration des anciens DICOMDIR ...La migration est terminée avec succès, maintenant Ginkgo CADx détruira le répertoire : Migration terminée avec succèsMillimètresModalitésModalitéErreur au téléchargement des modalitésDate de modificationModifiéOutil de module toujours enregistré quand ToolsRegistry est définiMonitorerMosaïqueBougerNACK reçu :NomVoisin le plus procheBesoin de support ...Nouveau ...Nouvelle étude Ginkgo CloudNouvelle mise à jourNouvel utilisateurNouveau protocole hangingNouvelle version disponibleNouvelle version disponible (NonPas de DICOMDIR trouvé sur les unités amovibles. Voulez-vous scanner récursivement le lecteur %sPas de DICOMDIR trouvé sur les unités amovibles. Voulez-vous scanner un autre répertoire récursivement ?Pas de loginAucun résultat trouvéPas de contexte de présentation valideNormalAngle normal (3 points)Non engagéPas assez de paramètres trouvés dans le XMLNon trouvéNon implémentéNoteRéponse videNombre de VertexOKOkAET omisIdentifiant omisPort omisUn jourUn moisUne semaineUne annéeManuel en ligneSupport en ligneOuvrirOuvrir fichierOuvrir Ginkgo CloudOuvrir un lien Ginkgo CloudOuvrir sériesOuvrir séries avec...Environnement DICOM CADx OpenSourceLicences Open SourceOuvrir avec ...Ouvrir fichierOuvrir répertoireOuvrir dans la fenêtre principaleOuvrir lienOuvrir uniquement un onglet pour chaque étudeOuvrir un support amovibleOuvrir l'étudeOuvrir l'étude avec...Ouvrir une carte de testOuvrir...OpenGLOpenSSLMode d'ouvertureAutreAutre configurationAutresDonnées d'aperçu des fichiers DICOMEcraserÉcraser cheminsValeur PPACSLimite PACSI/O PACSL'acquisition PACS est restreinteErreur du PACS : Service PACSFichiers PDF extraits avec succès...PDU (KB)Fichiers PEM (*.pem;*.key)|*.pem;*.key|Tout fichier (*.*)|*.*PERFusionPETPanoramique Ctrl+PParamètres : Mot de passeLe mot de passe et sa confirmation ne peuvent être différents.Mot de passe changé avec succèsLe mot de passe doit contenir au moins 6 caractèresLe mot de passe n'est pas définiLe mot de passe est définiCollerColler du blocnoteCheminLe chemin de l'emplacement n'existe pasPatientId PatientID du patientInformation patientNom du patientPrénom et nom du patientEn attentePérimètreId du système demandeurMédecinId du MédecinNom du médecinPixels flousPointPointeur EscPoints (I)Points (M)PolygonePortLe port n'est pas un nombre validePosition (I)Position (M)Propulsé parAperçuAperçuImprimerClef privéeLa clef privée et le certificat ne correspondent pasClef privée au format PEMProcessus annulé par l'utilisateur.Environnement DICOM CADx ProfessionnelProfilNom du profileLe nom du profil ne peut être répétéProfilsConfiguration des profilsMises à jour du programmePropriétésPropriétés ...Propriétés dePropriétés de ...Propriétés...ProtocoleLe serveur proxy requiert une authentificationConfiguration proxyClef publiqueClef publique au format PEMAppuyez sur le bouton de configuration et placez la fenêtre où vous voulezQualitéErreur de la requête avec l'Id PACSNiveau de requête / récupération non spécifiéRequête exécutée avec succès.Requête du PACS ...REGEXP appelée avec un mauvais nombre d'arguments : %d au lieu de 2.ROILecture du DICOMDIRLecture de l'ensemble de donnéesLecture des propriétésMesure réelleId de l'organisation réceptriceEchec de la réception d'association : Codec de recompression (0=JPEG Baseline(défaut), 1=JPEG progressif, 2=JPEG sans perte)RefaireMédecin référentMédecin référentRafraichirExpression régulière invalide : 'Information de relationSuppressionTout enleverSupprimer une colonneSupprimer les anciens DICOMDIR après la migration (renommage en *_old)Supprimer une ligneSupprimer les messages envoyésLe module demandé ne support pas l'importLe module demandé n'est pas enregistréRéinitialiserRéinitialiser la taille de la résolution d'affichageRemettre par défautLimiter la recherche aux patients sélectionnésLimiter la recherche d'étude par une taille maximale (kB)RésultatsMéthode de récupérationMode de récupérationRéessai d'envoi au PACSRéutilisation de la connexionRéutilisation de la connexion quand plusieurs requêtes sont requisesRotation 90Rotation et flipTourner la caméraLignesRègle Ctrl+REn coursSPINALSQLiteSSL/TLSEnregistrerEnregistrer journal...Enregistrer journauxSauvegarder l'instantané comme une nouvelle série...Echelle XEchelle YRechercheRechercher dans Ginkgo CloudLa recherche sans paramètre peut prendre beaucoup de temps Voulez-vous continuer ?SécuritéConfiguration de la sécuritéType de sécuritéSélectionnez une DICOMDIRSélectionner PACSChoisir un serveur PACSSélectionner une vueSélectionnez un fichier DICOMDIR valideSélectionner un serveur PACS valideSélectionner toutSélectionnez au moins une sérieSélectionnez un certificatSélectionner le fichier DICOMDIR que vous voulez acquérirChoisir un lecteurSélectionner un lecteur à ouvrirSélectionner des fichiers du système de fichierSélectionner des fichiers...Sélectionnez la façon dont vous voulez gérer les éléments MPPSSélection d'imagesSélectionnez un mode d'ouvertureSélectionner un autreSelectionner un autre chemin. Si ce chemin ne contient pas de DICOMDIR Ginkgo CADx, un nouveau sera créé. Sinon, le DICOMDIR existant sera utilisé.Sélectionnez un répertoire DICOMDIRSélectionnez le répertoire dans lequel les fichiers seront enregistrésSélectionner le format et les images que vous voulez exporterImages sélectionnéesSélectionner le profil d'importErreur d'analyse sémantique/syntaxique de l'URL d'intégration (voir les journaux pour les détails) : Erreur d'analyse sémantique/syntaxique de l'XML d'intégration (voir les journaux pour les détails) : Envoi de message HL7 pendant l'importEnvoi de fichier au PACSEnvoyer le lien par emailEnvoi de l'étude au PACS pendant l'importStatut de la tâche envoyée :Envoi au PACSEnvoyer au PACS...Envoi de message HL7 %d sur %dEnvoi au PACS...EnvoyéSéparez les adresses par des virgules.SériesUID de l'instance de la sérieCritères de la sérieDate de la sérieLa série n'existe pasChemin des séries introuvableServeurID Serveur introuvable. ID =Serveur non trouvéConfiguration serveurServiceId du ServiceNom du ServiceDéfinir par défautDéfinir mot de passeActiverDéfinir par utilisateurCompression, 0 implique pas de compression (0..14)Définir par défautDéfinir la valeur par défautDéfinir mot de passe principalDéfinir le mot de passeActiver pixels flousDéfinir la propriété activeDéfinir la propriété inactiveConfiguration non trouvéeConfiguration du système de dossier de santé électroniqueConfigurationMenu configurationConfiguration de la sécuritéDéfinir la position et la taille de la fenêtre dans laquelle vous voulez ouvrir l'étudeConfigurer la position...Définir la position de la fenêtre détachéeFenêtre de configurationDéfinir position de la fenêtreGenreAfficher l'inspecteur DICOMAfficher la grilleVoir le messageMontrer le numéro d'accèsAfficher les annotations dans les coinsVoir en plein écranAfficher la grilleVoir l'historique Alt+hMontrer les liens...Voir au démarrageVoir au démarrage la valeur par défautPasser l'étape démographique si c'est possibleSaut de l'extension avec un SID dupliqué :Curseur Ctrl+SCertaines des séries sélectionnées ont été détruitesL'espacement n'est pas valide : (L'espacement de l'image est invalide : (Spécifier ce stockage de classes SOP dans la dicomisationSpectreVitesseDivision horizontale activeDivision verticale activeDiviser horizontalement...Diviser verticalement...DémarréPage de démarrageDémarrageDémarrage de le recherche...Démarrage des servicesDémarrage des outilsStatutStatut :Étape %d sur %d : Etape 1 sur 3: Import d'imagesEtape 2 sur 3 : Copie d'imagesEtape 3 sur 3 : Envoi d'imagesCroupeArrêterArrêtéArrêt de l'expéditeur HL7Enregistrement dans l'historiqueEtudesÉtude avecEtudeDétails de l'étudeUID de l'instance d'étudeUID d'étudeDate de l'étudeTaille maximale de téléchargement d'étude dépasséeÉtude mal formée ou non supportéeCritère d'ouverture d'étudeEtude récupérée avec succèsStyleNom de familleSynchroniserSynchroniser les fichiersAuthentification systèmeCRANE T1CRANE T2Regrouper les ongletsGrouper les ongletsOrganisation des ongletsBaliseBalises (double-clic pour changer la valeur)TâchesId Template non supporté (Test de connectivité du moteur d'intégrationTest de connexionMoteur de testTitre testTest de la connectivité avec le serveur...Test de la connexion au nœud...TexteNote Texte Ctrl+NLa valeur du calibrage est trop hauteLa valeur du calibrage est trop faibleLa valeur de calibrage doit être un nombre décimalLe fichierLes commandes suivantes seront abandonnées si vous fermez l'applicationLes erreurs suivantes ont été rencontrées lors de la validation des champsLe moduleLe taille du pdu n'est pas un nombre valideLe port n'est pas un nombre valideLe module demandé n'est pas enregistréLe répertoire sélectionné ne peut être ouvertLe répertoire sélectionné n'existe pas Voulez-vous le créer ?Le répertoire sélectionné n'existe pas Voulez-vous le créer ?Le service n'a pas répondu correctement au C-ECHOLe service n'a pas répondu correctement au standard DICOMLe processus de soumission est démarré et prêt à envoyerL'outil est déjà enregistréLe nom d'utilisateur ou le mot de passe est incorrectIl y a %d tâche en attenteIl y a des fichiers à télécharger dans la base de données locale avant d'exécuter cette action, Voulez-vous synchroniser ces fichiers maintenant ?Il y a d'autres DICOMDIR dans le chemin sélectionnéIl y a des erreurs : Il n'y a pas de PACS configuréIl n'y a aucun module avec le support de l'import%d images ont été incluses.Il n'y a pas d'URL pour vérifier les mises à jour dans la configuration actuelle.Il n'y a aucun PACS configuréIl n'y a pas de tâche en coursIl n'y a pas de PACS distant de configuréIl n'y a pas de nouvelle version de Ginkgo CADx actuellement.Il n'y a aucun module enregistré avec le support de l'importIl n'y a pas de lecteur PDF enregistré sur ce systèmeIl y a eu une erreur à l'anonymisation de fichierIl y a eu un problème au changement de mot de passe. Voir les journaux pour plus d'informations.Il y a eu une erreur à la création du répertoireIl y a eu un problème de suppression d'utilisateur. Voir les journaux pour plus d'informations.Il y a eu une erreur pendant l'exportIl y a eu une erreur pendant l'export, vérifiez les permissionsIl y a eu un problème d'ajout d'utilisateur. Voir les journaux pour plus d'informations.Il y a eu une erreur de lecture du répertoire. Assurez-vous d'avoir les droits d'écriture dessusIl y a eu une erreur à l'écriture du fichierCes séries ont été détruites de l'historique localIls ont produit les erreurs suivantes :Cette fonctionnalité affecte seulement les études COPIEES dans le DICOMDIR et non celles en utilisation.Ces fichiers ne sont pas des DICOM DirsCe fichier n'existe pas:Ce fichier n'est pas au format DICOMCette série a été déjà téléchargée dans l'historique local. Voulez-vous la retélécharger ?Cette étude a été déjà téléchargée dans l'historique local. Voulez-vous la retélécharger ?Cette version de Ginkgo CADx n'est pas compatible avec la version actuelle de Ginkgo CloudCette vue ne supporte pas les fenêtres multiplesThreadingTrois joursTrois moisTempsTitrePour télécharger l'étude, collez cet URLAujourd'huiCe matinCet après-midiOutilsOutil de chargement de base ...Trackball Ctrl+TTrapèzeVoyage (I)Voyage (M)Deux joursDeux semainesTypeINCONNUURL du manuelURL du support en ligneImpossible d'ajouter une classe SOP supportéeImpossible d'ajouter une syntaxe de transfert supportée Impossible de se connecter : Ne peut démarrer le support réseau.Impossible de créer une couche de transport TLSImpossible d'initialiser le sous-système HTTPImpossible de charger l'animation GIFImpossible de charger la ressource bitmap PNGImpossible de charger la ressource image PNGImpossible d'ouvrir la modalitéImpossible d'exécuter la requête HTTPImpossible de réserver de la mémoire pour la dicomisation PDFImpossible de réserver de la mémoire pour la dicomisation d'imageImpossible de démarrer GinkgoCADx: DéfaireAnnuler rotation/flipErreur inattendue, sélectionner le module encoreL'identifiant unique de l'application Picture Archiving and Communication System (SIID/PACS).L'identifiant unique de l'application de remplissage (SIID / Ginkgo CADx).L'identifiant unique de l'application de remplissage (SIID / Ginkgo).L'identifiant unique de l'organisation qui reçoit le message.L'identifiant unique du système demandeur.InconnuAttribut JSON inconnu :Erreur inconnueErreur inconnu lors de la dicomisationId module inconnu (Opération inconnueProtocole inconnuNiveau de requête / récupération inconnuDonnées non sauvegardéesDésactiver pixels flousProtocol non supportéPériode de mise à jour (jours)Mise à jour ...Envoi d'image au serveur PACSEnvoyer étudeEnvoyer l'étude...Envoi de fichier %d sur %dEnvoi de fichiers ...Utiliser SSL/TLSUtilisé par défautUtiliser le certificat par défaut (certificat configuré dans la configuration local AET)UtilisateurNom d'utilisateurUtilisateur supprimé avec succèsUtilisateur ajouté avec succèsIdentifiant utilisateurNom utilisateurLe nom d'utilisateur doit contenir au moins 4 caractèresNom d'utilisateur répétéUtilisateur / Mot de passeUtilisateursGénéralement due à une erreur dans l'envoi d'un messageVERTEBREVR OsVR Muscles & OsVR Vaisseaux rougesVTKValeurVérifier les accréditations du clientVérifier les accréditations du serveurVidéo Ctrl+SpaceVueVoir en plein écranWADOErreur WADOURL WADOAlerter à propos de nouvelles mises à jour de Ginkgo CADxAlerteAttention, pour mettre à jour le répertoire, vous devez fermer toutes les séries ouvertesAttention, pour modifier le répertoire, vous devez fermer les séries actuellement ouvertes.PoidsPropriétés du widgetNom du widgetFenêtreFenêtre %dAnnocations de fenêtreMise en page des fenêtresFenêtre/Niveau Ctrl+WFenêtre/niveauÉtiquette fenêtre / niveau utiliséeListe de travailListes de travailEspace de travailStation de travailVoulez-vous les écraser ?Voulez-vous détruire ces messages ?Voulez-vous sauvegarder les changements dans l'étude :WxWidgetsXÉchelle de l'axe XAnalyseur XML non trouvé. Key=Dicomisation XMLErreur interne à l'analyse XMLÉchelle de l'axe YOuiHierVous n'êtes pas autorisé à télécharger ce genre de modalités.Vous pouvez copier et coller le lien à utiliser dans les e-mails et les pages web. Vous avez à installer Ginkgo CADx pour le télécharger et le visualiser.Vous ne pouvez supprimer les séries ouvertesVous n'avez pas la permission d'écrire dans le DICOMDIR, les préférences seront sauvegardées dans un répertoire temporaireVous avez atteint le nombre maximal d'onglet ouvert. Fermez quelques onglets et réessayez.Vous avez à définir les clefs privée et publiqueVous devez configurer un AET local qui est utilisé pour communiquer avec les noeuds DICOM. Le port spécifié doit être ouvert dans le pare-feu car il est essentiel pour les transferts.Vous devez configurer l'AET local qui est utilisé pour communiquer avec le serveur PACS. Le port spécifié doit être ouvert dans le pare-feu, c'est indispensable pour les transferts.Vous devez créer au moins un utilisateurVous devez définir un PACS par défaut dans l'intégration XML ou le menu de configurationVous devez remplir les champs titre et emplacement pour continuerVous devez remplir tous les champsVous devez remplir tous les champs pour continuerVous devez remplir le champ nom pour continuerVous devez sélectionner une imageVous devez sélectionner au moins une imageVous devez sélection les images que vous voulez importerVous devez sélectionner le profil d'importVous devez sélectionner le profil voulu pour utiliser l'importVous devez définir le mot de passe principalVous devez spécifier les attributs que vous voulez utiliser dans la requêteZlibZoom Ctrl+Otout fichieret tous ses sous-répertoires Confirmez-vous la suppression ?o/s pendantsens horairecmsens antihorairedoc\manual_ginkgo_cadx_pro_en.pdfélément id patient absent de l'ensemble de donnéesélément uid instance de série absent de l'ensemble de donnéesélément uid instance sop absent de l'ensemble de donnéesélément uid étude absent de l'ensemble de donnéeserreurde libre surhttp://ginkgo-cadx.comhttp://ginkgo-cadx.com/id_application attenduimage_%Y-%m-%d_dans le répertoire de dicomisation.dans l'outil "Ouvrir un lien Ginkgo Cloud" de l'historique Ginkgo CADx, ou le coller dans la barre d'adresse de votre navigateur.chargerRésultats de la recherchesecondesconfigurationcette sérieces sériesginkgocadx-3.8.7/cadxcore/lang/fr/cadxcore.po000066400000000000000000006660371314736454600211560ustar00rootroot00000000000000# msgid "" msgstr "" "Project-Id-Version: ginkgocadx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-06-11 15:50+0100\n" "PO-Revision-Date: \n" "Last-Translator: Carlos Barrales Ruiz \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" "X-Poedit-Basepath: .\n" "X-Poedit-KeywordsList: _Std;_\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SearchPath-0: ..\\..\n" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "N/B" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "N/B inversé" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "Fanon" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "Corps noir" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "Cardiaque" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "VR Os" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "VR Muscles & Os" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Red Vessels" msgstr "VR Vaisseaux rouges" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "Arc-en-ciel gris" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "Croupe" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "Spectre" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Metal" msgstr "Métal chaud" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "Acier chaud" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Green" msgstr "Vert chaud" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "GE Color" msgstr "Couleur GE" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "PERFusion" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PET" msgstr "PET" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "Flux" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "LONI" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "LONI2" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "Asymétrie" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "P-Value" msgstr "Valeur P" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "ROI" #: ..\../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "Tentative de dé-référence d'un pointeur nul" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #: ..\../api/dicom/idicomconformance.cpp:214 #: ..\../api/dicom/idicomconformance.cpp:220 msgid "GIL/DICOM/Conformance" msgstr "GIL/DICOM/Conformité" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid "Unable to add supported transfer syntax " msgstr "Impossible d'ajouter une syntaxe de transfert supportée " #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid " to SOP Class " msgstr " dans la classe SOP" #: ..\../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr "" ". La syntaxe de transfert n'existe pas dans le modèle : ajoutez-la d'abord." #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr ". La classe SOP n'existe pas dans le modèle : ajoutez-la d'abord." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid "Unable to add supported SOP Class " msgstr "Impossible d'ajouter une classe SOP supportée" #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid " to Modality " msgstr " à la modalité " #: ..\../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr ". La modalité n'existe pas dans le modèle : ajoutez-la d'abord." #: ..\../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "Erreur de chargement du fichier de conformité DICOM" #: ..\../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "Fichier de conformité DICOM invalide" #: ..\../api/iannotator.cpp:97 msgid "Slice" msgstr "" #: ..\../api/iannotator.cpp:97 #, fuzzy msgid "of" msgstr " de " #: ..\../api/iannotator.cpp:97 #, fuzzy msgid "Volume" msgstr "Colonnes" #: ..\../api/iannotator.cpp:107 msgid "Voxel:" msgstr "" #: ..\../api/iannotator.cpp:110 #, fuzzy msgid "Image without metric information" msgstr "Information de présentation d'image" #: ..\../api/iannotator.cpp:119 msgid "Slice thickness" msgstr "" #: ..\../api/iannotator.cpp:127 #, fuzzy msgid "Slice location" msgstr "Emplacement" #: ..\../api/iannotator.cpp:139 #, fuzzy msgid "Scale" msgstr "Grille de mesure" #: ..\../api/iannotator.cpp:147 #, fuzzy msgid "Right" msgstr "&Droite" #: ..\../api/iannotator.cpp:149 #, fuzzy msgid "Left" msgstr "&Gauche" #: ..\../api/iannotator.cpp:219 #, fuzzy msgid "Position:" msgstr "La position du taquet de tabulation." #: ..\../api/iannotator.cpp:272 #, fuzzy msgid "Value:" msgstr "Valeur" #: ..\../api/iexception.cpp:52 msgid "Exception in component" msgstr "Exception dans le composant" #: ..\../api/initwx.cpp:439 msgid "Initializing environment ..." msgstr "Initialisation de l'environnement ..." #: ..\../api/initwx.cpp:446 ..\../api/initwx.cpp:447 ..\../api/initwx.cpp:448 #: ..\../api/initwx.cpp:449 ..\../api/initwx.cpp:450 ..\../api/initwx.cpp:451 #: ..\../api/initwx.cpp:452 ..\../api/initwx.cpp:453 msgid "Ginkgo CADx restrictions" msgstr "Restrictions Ginkgo CADx" #: ..\../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "Ouvrir uniquement un onglet pour chaque étude" #: ..\../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "Mode anonyme (l'historique est effacé)" #: ..\../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "Nombre max d'onglets ouverts" #: ..\../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "Temps d'inactivité maximum de l'application Ginkgo CADx (s)" #: ..\../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "Fermer automatiquement Ginkgo CADx après dicomisation" #: ..\../api/initwx.cpp:451 msgid "Export images" msgstr "Exporter images" #: ..\../api/initwx.cpp:452 msgid "Acquire DICOM files" msgstr "Acquérir fichiers DICOM" #: ..\../api/initwx.cpp:453 msgid "Import files to DICOM format" msgstr "Importer des fichiers au format DICOM" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "Online manual" msgstr "Manuel en ligne" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "URL of manual" msgstr "URL du manuel" #: ..\../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "doc\\manual_ginkgo_cadx_pro_en.pdf" #: ..\../api/initwx.cpp:459 msgid "Online support" msgstr "Support en ligne" #: ..\../api/initwx.cpp:459 msgid "URL of online support" msgstr "URL du support en ligne" #: ..\../api/initwx.cpp:459 msgid "http://ginkgo-cadx.com/" msgstr "http://ginkgo-cadx.com/" #: ..\../api/initwx.cpp:460 ..\../api/initwx.cpp:461 msgid "Program Updates" msgstr "Mises à jour du programme" #: ..\../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "Alerter à propos de nouvelles mises à jour de Ginkgo CADx" #: ..\../api/initwx.cpp:461 msgid "Update period (days)" msgstr "Période de mise à jour (jours)" #: ..\../api/initwx.cpp:462 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "Sécurité" #: ..\../api/initwx.cpp:462 msgid "Setup Security" msgstr "Configuration de la sécurité" #: ..\../api/initwx.cpp:463 msgid "Show on startup" msgstr "Voir au démarrage" #: ..\../api/initwx.cpp:463 msgid "Show on startup default value" msgstr "Voir au démarrage la valeur par défaut" #: ..\../api/initwx.cpp:465 ..\../api/initwx.cpp:466 #: ..\../main/gui/history3/historypanel3.cpp:328 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "Outils" #: ..\../api/initwx.cpp:465 msgid "Settings menu" msgstr "Menu configuration" #: ..\../api/initwx.cpp:466 msgid "License menu" msgstr "Menu licence" #: ..\../api/initwx.cpp:467 ..\../api/initwx.cpp:468 ..\../api/initwx.cpp:469 #: ..\../api/initwx.cpp:470 ..\../api/initwx.cpp:471 ..\../api/initwx.cpp:472 #: ..\../api/initwx.cpp:473 ..\../api/initwx.cpp:474 msgid "PACS Limits" msgstr "Limite PACS" #: ..\../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "" #: ..\../api/initwx.cpp:468 msgid "Upload images to a PACS server" msgstr "Envoi d'image au serveur PACS" #: ..\../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "Importer des images du PACS" #: ..\../api/initwx.cpp:470 msgid "Enable remote PACS configuration" msgstr "Activer la configuration du PACS distant" #: ..\../api/initwx.cpp:471 msgid "Enable TLS configuration" msgstr "Activer la configuration TLS" #: ..\../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "Limiter la recherche aux patients sélectionnés" #: ..\../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "Limiter la recherche d'étude par une taille maximale (kB)" #: ..\../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "Forcer le \"sens-perte\" lors de l'envoi" #: ..\../api/initwx.cpp:475 ..\../api/initwx.cpp:476 ..\../api/initwx.cpp:477 #: ..\../api/initwx.cpp:478 ..\../api/initwx.cpp:479 ..\../api/initwx.cpp:480 msgid "Import" msgstr "Import" #: ..\../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "Spécifier ce stockage de classes SOP dans la dicomisation" #: ..\../api/initwx.cpp:476 msgid "Show accession number input" msgstr "Montrer le numéro d'accès" #: ..\../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "Compression, 0 implique pas de compression (0..14)" #: ..\../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" "Codec de recompression (0=JPEG Baseline(défaut), 1=JPEG progressif, 2=JPEG " "sans perte)" #: ..\../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "Ne pas changer le codec de l'image (si possible)" #: ..\../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "Passer l'étape démographique si c'est possible" #: ..\../api/initwx.cpp:482 msgid "HL7 Service" msgstr "Service HL7" #: ..\../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "Démarrer automatiquement le service d'envoi HL7" #: ..\../api/initwx.cpp:483 ..\../api/initwx.cpp:484 ..\../api/initwx.cpp:485 msgid "XML dicomization" msgstr "Dicomisation XML" #: ..\../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "Envoi de message HL7 pendant l'import" #: ..\../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "Envoi de l'étude au PACS pendant l'import" #: ..\../api/initwx.cpp:485 msgid "Default ORU template" msgstr "Template ORU par défaut" #: ..\../api/initwx.cpp:488 ..\../api/initwx.cpp:489 ..\../api/initwx.cpp:491 #: ..\../api/initwx.cpp:493 ..\../api/initwx.cpp:494 ..\../api/initwx.cpp:495 #: ..\../api/initwx.cpp:496 ..\../api/initwx.cpp:498 msgid "Style" msgstr "Style" #: ..\../api/initwx.cpp:503 #, c-format msgid "Download %s images" msgstr "Téléchargement de %s images" #: ..\../api/initwx.cpp:504 ..\../api/initwx.cpp:508 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:21 msgid "PACS" msgstr "PACS" #: ..\../api/initwx.cpp:507 msgid "Download all modalities" msgstr "Téléchargement de toutes les modalités" #: ..\../api/initwx.cpp:510 msgid "OpenGL" msgstr "OpenGL" #: ..\../api/initwx.cpp:510 msgid "Enable shaders" msgstr "Activer shaders" #: ..\../api/initwx.cpp:513 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:388 msgid "Ginkgo Cloud" msgstr "Cloud Ginkgo" #: ..\../api/initwx.cpp:513 msgid "Download from Ginkgo Cloud" msgstr "Téléchargement du Ginkgo Cloud" #: ..\../api/initwx.cpp:560 msgid "Tools loading base ..." msgstr "Outil de chargement de base ..." #: ..\../api/initwx.cpp:562 msgid "Starting tools..." msgstr "Démarrage des outils" #: ..\../api/initwx.cpp:566 msgid "Loading plugins ..." msgstr "Chargement des plugins" #: ..\../api/initwx.cpp:580 msgid "Unable to start GinkgoCADx:\n" msgstr "Impossible de démarrer GinkgoCADx:\n" #: ..\../api/initwx.cpp:580 ..\../api/initwx.cpp:621 msgid "error" msgstr "erreur" #: ..\../api/initwx.cpp:584 msgid "Loading resources ..." msgstr "Chargement des ressources ..." #: ..\../api/initwx.cpp:587 msgid "Starting services..." msgstr "Démarrage des services" #: ..\../api/initwx.cpp:601 msgid "Configuring environment ..." msgstr "Configuration de l'environnement ..." #: ..\../api/initwx.cpp:621 msgid "Failed to set permissions:\n" msgstr "Echec de la modification des permissions:\n" #: ..\../api/initwx.cpp:634 msgid "Updating ..." msgstr "Mise à jour ..." #: ..\../api/initwx.cpp:638 msgid "Interpreting parameters ..." msgstr "Interprétations des paramètres ..." #: ..\../api/initwx.cpp:689 msgid "Error unregistering tools: " msgstr "Erreur à l'enregistrement d'outils :" #: ..\../api/initwx.cpp:769 msgid "Starting" msgstr "Démarrage" #: ..\../api/ivista.cpp:36 ..\../commands/comandocarga.cpp:73 msgid "Loading..." msgstr "Chargement..." #: ..\../api/iwidgets.cpp:268 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ..\../main/gui/import/pasosimportacionbase.cpp:151 msgid "Name" msgstr "Nom" #: ..\../api/iwidgets.cpp:285 msgid "Area" msgstr "Aire" #: ..\../api/iwidgets.cpp:302 msgid "Perimeter" msgstr "Périmètre" #: ..\../api/iwidgets.cpp:316 msgid "Travel (I)" msgstr "Voyage (I)" #: ..\../api/iwidgets.cpp:326 msgid "Travel (M)" msgstr "Voyage (M)" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #: ..\../api/threads/thread.cpp:120 msgid "Threading" msgstr "Threading" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid "Error while running thread: " msgstr "Erreur pendant l'exécution du thread :" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid " : " msgstr "" #: ..\../api/threads/thread.cpp:120 msgid "Internal error while running thread: " msgstr "Erreur interne pendant l'exécution du thread :" #: ..\../api/widgetserializable.cpp:60 msgid "Creation Date" msgstr "Date de création" #: ..\../api/widgetserializable.cpp:65 msgid "Modification Date" msgstr "Date de modification" #: ..\../api/widgetserializable.cpp:68 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ..\../wx/gnkinforme/gnkinformebase.cpp:40 msgid "Physician" msgstr "Médecin" #: ..\../commands/acquirefromurlcommand.cpp:55 #: ..\../commands/pacsdownloadcommand.cpp:88 #: ..\../commands/synchronizationcommand.cpp:70 msgid "Downloading files ..." msgstr "Téléchargement des fichiers ..." #: ..\../commands/acquirefromurlcommand.cpp:69 #: ..\../commands/synchronizationcommand.cpp:91 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, c-format msgid "Downloading file %d" msgstr "Téléchargement du fichier %d" #: ..\../commands/acquirefromurlcommand.cpp:81 #, fuzzy msgid "Error downloading file: " msgstr "Erreur de téléchargement de fichier" #: ..\../commands/acquirefromurlcommand.cpp:95 #: ..\../commands/pacsdownloadcommand.cpp:114 #: ..\../commands/synchronizationcommand.cpp:121 msgid "Internal Error" msgstr "Erreur interne" #: ..\../commands/acquirefromurlcommand.cpp:115 #, fuzzy msgid "Error downloading files: " msgstr "Téléchargement des fichiers ..." #: ..\../commands/autocleaningcommand.cpp:62 msgid "Cleaning dicomdir..." msgstr "Nettoyage de dicomdir" #: ..\../commands/cloudcommand.cpp:67 msgid "Downloading files..." msgstr "Téléchargement de fichiers..." #: ..\../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "" #: ..\../commands/cloudcommand.cpp:183 msgid "Unknown operation" msgstr "Opération inconnue" #: ..\../commands/cloudcommand.cpp:188 msgid "Error in cloud operation. See log to get more details..." msgstr "" "Erreur dans l'opération Cloud. Voir les journaux pour avoir plus de " "détails..." #: ..\../commands/cloudcommand.cpp:249 msgid "Could to retrieve study." msgstr "Ne peut récupérer l'étude." #: ..\../commands/cloudcommand.cpp:260 ..\../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" "Cette version de Ginkgo CADx n'est pas compatible avec la version actuelle " "de Ginkgo Cloud" #: ..\../commands/cloudcommand.cpp:262 msgid "Error retrieving study." msgstr "Erreur à la récupération de l'étude" #: ..\../commands/cloudcommand.cpp:271 msgid "Study successfully retrieved." msgstr "Etude récupérée avec succès" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "Speed" msgstr "Vitesse" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "bytes/sec during" msgstr "o/s pendant" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "seconds" msgstr "secondes" #: ..\../commands/cloudcommand.cpp:275 msgid "Empty Response" msgstr "Réponse vide" #: ..\../commands/cloudcommand.cpp:289 msgid "Extracting files..." msgstr "Extraction des fichiers..." #: ..\../commands/cloudcommand.cpp:313 ..\../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "Le fichier téléchargé est invalide" #: ..\../commands/cloudcommand.cpp:383 msgid "Could to perform query." msgstr "Ne peut exécuter la requête." #: ..\../commands/cloudcommand.cpp:396 msgid "Error perfoming the query." msgstr "Erreur à l'exécution de la requête." #: ..\../commands/cloudcommand.cpp:405 msgid "Query successfully performed." msgstr "Requête exécutée avec succès." #: ..\../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "Réponse JSON" #: ..\../commands/cloudcommand.cpp:472 msgid "Unknown JSon attribute:" msgstr "Attribut JSON inconnu :" #: ..\../commands/cloudcommand.cpp:482 msgid "Error parsing JSon: " msgstr "Erreur à l'analyse du JSON :" #: ..\../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "Réponse vide" #: ..\../commands/cloudcommand.cpp:515 #: ..\../commands/openremovableunit.cpp:148 ..\../main/gui/open/abrir.cpp:119 #: ..\../main/gui/open/abrir.cpp:159 ..\../main/gui/open/opendialogs.cpp:146 msgid "Storing in the history..." msgstr "Enregistrement dans l'historique" #: ..\../commands/comandoactualizaciones.cpp:46 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:536 msgid "Check Updates" msgstr "Vérifications des mises à jour" #: ..\../commands/comandoactualizaciones.cpp:136 msgid "Not enough parameters found on XML" msgstr "Pas assez de paramètres trouvés dans le XML" #: ..\../commands/comandoactualizaciones.cpp:145 msgid "XML parsing internal error" msgstr "Erreur interne à l'analyse XML" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Error checking application updates" msgstr "Erreur à la vérification des mises à jour de l'application" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Ginkgo CADx updates" msgstr "Mise à jour Ginkgo CADx" #: ..\../commands/comandoactualizaciones.cpp:170 msgid "Internal error checking updates" msgstr "Erreur interne à la vérification de mises à jour" #: ..\../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "Chemin des séries introuvable" #: ..\../commands/comandocarga.cpp:92 ..\../commands/comandocarga.cpp:96 msgid "Exception loading:" msgstr "Exception au chargement :" #: ..\../commands/comandocarga.cpp:100 msgid "Study malformed or unsupported" msgstr "Étude mal formée ou non supportée" #: ..\../commands/comandocarga.cpp:129 ..\../commands/comandocarga.cpp:139 msgid "Error loading study: " msgstr "Erreur au chargement de l'étude :" #: ..\../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "Erreur au chargement de l'étude : mémoire insuffisante" #: ..\../commands/comandocarga.cpp:144 msgid "Error loading study." msgstr "Erreur au chargement de l'étude." #: ..\../commands/comandocarga.cpp:149 msgid "Load canceled by user" msgstr "Chargement annulé par l'utilisateur" #: ..\../commands/comandocarga.cpp:156 #: ..\../main/gui/history3/historypanel3.cpp:1056 #: ..\../main/gui/history3/historypanel3.cpp:1063 #: ..\../main/gui/history3/historypanel3.cpp:1068 msgid "Error loading study" msgstr "Erreur au chargement de l'étude." #: ..\../commands/comandoexportacion.cpp:81 #: ..\../commands/exporttodicomdircommand.cpp:214 msgid "Exporting files..." msgstr "Export des fichiers..." #: ..\../commands/comandoexportacion.cpp:105 #: ..\../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "L'export s'est fini avec succès" #: ..\../commands/comandoexportacion.cpp:158 #, c-format msgid "Exporting file %d of %d" msgstr "Exportation du fichier %d sur %d" #: ..\../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "" "Erreur à l'enregistrement du fichier, vérifiez les permissions du répertoire." #: ..\../commands/comandoexportacion.cpp:233 msgid "image_%m-%d-%Y_" msgstr "image_%Y-%m-%d_" #: ..\../commands/comandoincluirhistorial.cpp:108 msgid "Exploring directory ..." msgstr "Parcours du répertoire..." #: ..\../commands/comandoincluirhistorial.cpp:122 msgid "Reading DICOMDIR ..." msgstr "Lecture du DICOMDIR" #: ..\../commands/comandoincluirhistorial.cpp:142 #: ..\../commands/comandoincluirhistorial.cpp:156 #: ..\../commands/comandoincluirhistorial.cpp:177 msgid "Including files in the history .." msgstr "Ajouter les fichiers dans l'historique .." #: ..\../commands/comandoincluirhistorial.cpp:196 msgid "Exploring directory " msgstr "Explorer le répertoire" #: ..\../commands/comandoincluirhistorial.cpp:256 #: ..\../commands/linkhistorycommand.cpp:118 msgid "Image acquisition finished." msgstr "Acquisition de l'image terminée." #: ..\../commands/comandoincluirhistorial.cpp:258 #, c-format msgid "There have been included %d images." msgstr "%d images ont été incluses." #: ..\../commands/comandoincluirhistorial.cpp:261 #: ..\../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" "\n" "Il y a %d erreurs (Regardez les fichiers journaux pour plus une description " "plus détaillée)" #: ..\../commands/comandoincluirhistorial.cpp:273 #: ..\../commands/linkhistorycommand.cpp:133 msgid "This files doesn't exist:" msgstr "Ce fichier n'existe pas:" #: ..\../commands/comandoincluirhistorial.cpp:284 #: ..\../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "Ce fichier n'est pas au format DICOM" #: ..\../commands/comandoincluirhistorial.cpp:296 #: ..\../commands/linkhistorycommand.cpp:156 msgid "This files are Dicom Dirs:" msgstr "Ces fichiers ne sont pas des DICOM Dirs" #: ..\../commands/comandopacs.cpp:58 ..\../commands/pacsdownloadcommand.cpp:61 #: ..\../commands/sendpacscommand.cpp:137 msgid "There is not any Remote PACS configured" msgstr "Il n'y a pas de PACS distant de configuré" #: ..\../commands/comandopacs.cpp:84 msgid "Querying PACS ..." msgstr "Requête du PACS ..." #: ..\../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "" "Erreur d'accès à l'intégration du sous-système contrôleur : (GIL:: DICOM)." #: ..\../commands/comandopacs.cpp:98 msgid "Starting Search ..." msgstr "Démarrage de le recherche..." #: ..\../commands/comandopacs.cpp:108 #: ..\../commands/pacsdownloadcommand.cpp:101 msgid "Server ID not found. ID = " msgstr "ID Serveur introuvable. ID =" #: ..\../commands/comandopacs.cpp:110 ..\../commands/comandopacs.cpp:112 #: ..\../commands/comandopacs.cpp:114 ..\../commands/comandopacs.cpp:116 msgid "Query error with PACS Id " msgstr "Erreur de la requête avec l'Id PACS" #: ..\../commands/comandopacs.cpp:116 #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/gui/history3/historypanel3.cpp:1068 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error" msgstr "Erreur interne" #: ..\../commands/comandopacs.cpp:135 msgid "Failed to perform search: " msgstr "Échec à l'exécution de la recherche :" #: ..\../commands/dbmigrationcommand.cpp:94 #: ..\../commands/dbmigrationcommand.cpp:103 msgid "Migrating old DICOM Dir ..." msgstr "Migration des anciens DICOMDIR ..." #: ..\../commands/dbmigrationcommand.cpp:99 #: ..\../commands/dbmigrationcommand.cpp:108 msgid "Including files ..." msgstr "Ajout de fichiers ..." #: ..\../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" "La migration est terminée avec succès, maintenant Ginkgo CADx détruira le " "répertoire :\n" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" "et tous ses sous-répertoires\n" "Confirmez-vous la suppression ?" #: ..\../commands/dbmigrationcommand.cpp:116 #: ..\../commands/dicomizecommand.cpp:181 #: ..\../commands/openremovableunit.cpp:74 #: ..\../commands/openremovableunit.cpp:110 #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../commands/pdfextractercommand.cpp:130 #: ..\../main/controllers/historycontroller.cpp:447 #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 #: ..\../main/controllers/historycontroller.cpp:1976 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ..\../main/gui/export/parametrosprincipales.cpp:161 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 #: ..\../main/gui/history3/historypanel3.cpp:1045 #: ..\../main/gui/history3/historypanel3.cpp:1078 #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1119 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 #: ..\../main/gui/import/selectimagesimportation.cpp:141 #: ..\../main/gui/import/selectimagesimportation.cpp:342 #: ..\../main/gui/import/selectimagesimportation.cpp:743 #: ..\../main/gui/import/selectimagesimportation.cpp:761 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ..\../main/gui/login/dialogologin.cpp:50 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ..\../main/gui/open/opendialogs.cpp:58 #: ..\../main/gui/open/opendialogs.cpp:62 #: ..\../main/gui/open/opendialogs.cpp:134 #: ..\../main/gui/progress/statusbarprogreso.cpp:284 #: ..\../main/gui/progress/statusbarprogreso.cpp:287 #: ..\../main/gui/progress/statusbarprogreso.cpp:292 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Info" msgstr "Info" #: ..\../commands/dbmigrationcommand.cpp:123 msgid "Migration finisthed successfully" msgstr "Migration terminée avec succès" #: ..\../commands/dialogopathssobreescribirbase.cpp:27 #: ..\../commands/dialogopathssobreescribirbase.cpp:62 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "Overwrite" msgstr "Ecraser" #: ..\../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr "Voulez-vous les écraser ?" #: ..\../commands/dialogopathssobreescribirbase.cpp:65 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ..\../main/gui/history3/historypanel3base.cpp:339 #: ..\../main/gui/history3/historypanel3base.cpp:415 #: ..\../main/gui/history3/historypanel3base.cpp:486 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ..\../main/gui/open/opendialogsbase.cpp:53 #: ..\../main/gui/open/opendialogsbase.cpp:131 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ..\../widgets/gui/calibracionbase.cpp:86 #: ..\../widgets/gui/selecciontextobase.cpp:60 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "Annuler" #: ..\../commands/dicomizationcompletebase.cpp:24 #: ..\../commands/dicomizationcompletebase.cpp:33 #: ..\../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "Dicomisation complete" #: ..\../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "Dicomisation terminée avec succès" #: ..\../commands/dicomizationcompletebase.cpp:56 msgid "Don't show this message again" msgstr "Ne plus revoir ce message" #: ..\../commands/dicomizationcompletebase.cpp:62 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ..\../main/gui/history3/historypanel3base.cpp:411 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ..\../widgets/gui/calibracionbase.cpp:82 #: ..\../widgets/gui/selecciontextobase.cpp:56 msgid "Accept" msgstr "Accepter" #: ..\../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "Etape 1 sur 3: Import d'images" #: ..\../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "Etape 2 sur 3 : Copie d'images" #: ..\../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "Etape 3 sur 3 : Envoi d'images" #: ..\../commands/dicomizecommand.cpp:179 msgid "Import process failed:" msgstr "Echec de l'import :" #: ..\../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" "\n" "Voulez-vous réessayer ?" #: ..\../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "Import..." #: ..\../commands/dicomizecommand.cpp:370 msgid "Unknown error in dicomization process" msgstr "Erreur inconnu lors de la dicomisation" #: ..\../commands/dicomizecommand.cpp:431 #: ..\../commands/dicomizecommand.cpp:442 #: ..\../commands/sendpacscommand.cpp:185 msgid "Error sending evidences:" msgstr "Erreur à l'envoi des preuves" #: ..\../commands/dicomizecommand.cpp:437 #: ..\../commands/dicomizecommand.cpp:448 msgid "Can not upload to the PACS:\n" msgstr "Ne peut pas envoyer au PACS:\n" #: ..\../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" "Ne peut pas envoyer au PACS:\n" "Erreur interne" #: ..\../commands/exporttodicomdircommand.cpp:261 #: ..\../commands/exporttodicomdircommand.cpp:338 #, c-format msgid "Exporting series %d of %d" msgstr "Export des séries %d sur %d" #: ..\../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "Certaines des séries sélectionnées ont été détruites" #: ..\../commands/exporttodicomdircommand.cpp:279 #: ..\../commands/exporttodicomdircommand.cpp:385 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/export/parametrosprincipales.cpp:167 msgid "There was an error creating directory" msgstr "Il y a eu une erreur à la création du répertoire" #: ..\../commands/exporttodicomdircommand.cpp:303 #: ..\../commands/exporttodicomdircommand.cpp:408 msgid "There was an error writing file" msgstr "Il y a eu une erreur à l'écriture du fichier" #: ..\../commands/exporttodicomdircommand.cpp:358 msgid "There was an error anonymizing files" msgstr "Il y a eu une erreur à l'anonymisation de fichier" #: ..\../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "élément id patient absent de l'ensemble de données" #: ..\../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "élément uid étude absent de l'ensemble de données" #: ..\../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "élément uid instance de série absent de l'ensemble de données" #: ..\../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "élément uid instance sop absent de l'ensemble de données" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Ignoring incoming operation " msgstr "Ignorer l'opération entrante" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:298 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "Non implémenté" #: ..\../commands/incomingdicomassociationcommand.cpp:473 #: ..\../commands/pacsdownloadcommand.cpp:170 #: ..\../commands/pacsdownloadcommand.cpp:179 msgid "Including files..." msgstr "Ajout de fichiers..." #: ..\../commands/linkhistorycommand.cpp:68 msgid "Linking study..." msgstr "Lien des études..." #: ..\../commands/openremovableunit.cpp:42 #: ..\../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "Parcours des lecteurs..." #: ..\../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" "Pas de DICOMDIR trouvé sur les unités amovibles.\n" "Voulez-vous scanner un autre répertoire récursivement ?" #: ..\../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" "Pas de DICOMDIR trouvé sur les unités amovibles. Voulez-vous scanner " "récursivement le lecteur %s" #: ..\../commands/openremovableunit.cpp:130 msgid "Select drive you want to open" msgstr "Sélectionner un lecteur à ouvrir" #: ..\../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" "Ginkgo CADx a détecté plus d'une unité amovible,\n" "mais aucune d'elles ne contient de DICOMDIR à sa racine\n" "Sélectionner un lecteur que vous voulez acquérir récursivement" #: ..\../commands/pacsdownloadcommand.cpp:134 msgid "Error downloading study: " msgstr "Erreur de téléchargement de l'étude :" #: ..\../commands/pdfextractercommand.cpp:103 msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "" "Erreur d'extraction PDF. Ginkgo CADx est incapable de charger ce format" #: ..\../commands/pdfextractercommand.cpp:103 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ..\../main/gui/progress/statusbarprogreso.cpp:278 #: ..\../widgets/gui/calibracion.cpp:205 ..\../widgets/gui/calibracion.cpp:209 #: ..\../widgets/gui/calibracion.cpp:219 ..\../widgets/gui/calibracion.cpp:225 #: ..\../widgets/gui/calibracion.cpp:229 msgid "Error" msgstr "Erreur" #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "Il n'y a pas de lecteur PDF enregistré sur ce système" #: ..\../commands/pdfextractercommand.cpp:130 msgid "PDF files extracted successfully..." msgstr "Fichiers PDF extraits avec succès..." #: ..\../commands/secondarycapturedicomizecommand.cpp:73 msgid "Ginkgo CADx Secondary Capture" msgstr "Capture secondaire Ginkgo CADx" #: ..\../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "Envoi de message HL7 %d sur %d" #: ..\../commands/sendhl7command.cpp:73 msgid "Message successfully sent" msgstr "Message envoyé avec succès" #: ..\../commands/sendhl7command.cpp:77 msgid "Unknown protocol" msgstr "Protocole inconnu" #: ..\../commands/sendhl7command.cpp:80 ..\../commands/sendhl7command.cpp:93 #: ..\../commands/sendhl7command.cpp:145 msgid "Error sending message:" msgstr "Erreur à l'envoi du message :" #: ..\../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "" "Erreur à l'envoi de message HL7. Regardez les journaux pour plus de détails" #: ..\../commands/sendhl7command.cpp:93 ..\../commands/sendhl7command.cpp:94 msgid "Unknown error" msgstr "Erreur inconnue" #: ..\../commands/sendhl7command.cpp:134 msgid "Failed to start connection" msgstr "Echec d'ouverture de connexion" #: ..\../commands/sendhl7command.cpp:148 msgid "Error sending message. It was sent " msgstr "Erreur d'envoi de message. Il y a eu" #: ..\../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr " octets sur un total de " #: ..\../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "" "Erreur dans la logique de la confirmation. L'ID message n'est pas reconnnu" #: ..\../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "NACK reçu :" #: ..\../commands/sendhl7command.cpp:258 msgid "Failed delivery confirmation:" msgstr "Échec de la confirmation de livraison :" #: ..\../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "" "Échec de la confirmation de livraison : : La livraison n'est pas reconnu par " "l'extrémité distante" #: ..\../commands/sendpacscommand.cpp:51 msgid "Send files to PACS" msgstr "Envoi de fichier au PACS" #: ..\../commands/sendpacscommand.cpp:155 msgid "Uploading files ..." msgstr "Envoi de fichiers ..." #: ..\../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "Erreur : Configuration d'entrée PACS introuvable :" #: ..\../commands/sendpacscommand.cpp:181 msgid "Error:" msgstr "Erreur :" #: ..\../commands/sendpacscommand.cpp:189 msgid "Error sending evidences: Internal error." msgstr "Erreur d'envoi des preuves : Erreur interne." #: ..\../commands/sendpacscommand.cpp:203 msgid "Error uploading the study to PACS: " msgstr "Erreur d'envoi des études au PACS :" #: ..\../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" "\n" "Voulez-vous réessayer (essai automatique dans %d secondes) ?" #: ..\../commands/sendpacscommand.cpp:206 msgid "Retry send to PACS" msgstr "Réessai d'envoi au PACS" #: ..\../commands/synchronizationcommand.cpp:104 msgid "Error downloading file" msgstr "Erreur de téléchargement de fichier" #: ..\../commands/synchronizationcommand.cpp:141 msgid "Error synchronizing study: " msgstr "Erreur de synchronisation de l'étude :" #: ..\../commands/thumbnailscommand.cpp:107 #: ..\../commands/thumbnailscommand.cpp:133 #: ..\../commands/thumbnailscommand.cpp:247 #: ..\../commands/thumbnailscommand.cpp:376 #: ..\../commands/thumbnailscommand.cpp:382 #: ..\../main/gui/import/selectimagesimportation.cpp:504 msgid "Creating Thumbnail..." msgstr "Création de miniature..." #: ..\../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "Génération de miniature..." #: ..\../export/tools/iaddfiletohistorytool.cpp:19 #: ..\../main/gui/history3/historypanel3.cpp:632 msgid "Open study" msgstr "Ouvrir l'étude" #: ..\../export/tools/iangletool.cpp:19 msgid "Angle \tCtrl+A" msgstr "Angle \tCtrl+A" #: ..\../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "Luminosité/Contraste \tCtrl+B" #: ..\../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "Tourner la caméra" #: ..\../export/tools/icolormaptool.cpp:20 msgid "Color Map" msgstr "Palette de couleur" #: ..\../export/tools/icopyimagetoclipboardtool.cpp:19 #: ..\../main/gui/open/opendialogsbase.cpp:46 #: ..\../main/gui/open/opendialogsbase.cpp:198 msgid "Copy" msgstr "Copie" #: ..\../export/tools/icornerannotationstool.cpp:20 msgid "Window annotations" msgstr "Annocations de fenêtre" #: ..\../export/tools/idetachwindowtool.cpp:19 msgid "Detach window" msgstr "Détacher la fenêtre" #: ..\../export/tools/iimageexporttool.cpp:19 msgid "Export image..." msgstr "Export d'image..." #: ..\../export/tools/imarkertool.cpp:20 msgid "Marking Tools \tCtrl+M" msgstr "Outils de marquage \tCtrl+M" #: ..\../export/tools/imetricgridtool.cpp:20 msgid "Metric grid" msgstr "Grille de mesure" #: ..\../export/tools/inotetool.cpp:19 msgid "Text Note \tCtrl+N" msgstr "Note Texte\tCtrl+N" #: ..\../export/tools/ipacsuploadtool.cpp:19 msgid "Upload study..." msgstr "Envoyer l'étude..." #: ..\../export/tools/ipixelsbluringtool.cpp:20 msgid "Pixels blurring" msgstr "Pixels flous" #: ..\../export/tools/ipointertool.cpp:19 msgid "Pointer \tEsc" msgstr "Pointeur \tEsc" #: ..\../export/tools/iqueryretrievetool.cpp:19 #: ..\../main/tools/queryretrievehistorytool.cpp:25 #: ..\../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "Acquérir une étude DICOM d'un PACS" #: ..\../export/tools/iresettool.cpp:19 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 msgid "Reset" msgstr "Réinitialiser" #: ..\../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "Rotation et flip" #: ..\../export/tools/iruletool.cpp:19 msgid "Rule \tCtrl+R" msgstr "Règle \tCtrl+R" #: ..\../export/tools/isecondarycapturetool.cpp:19 msgid "Save snapshot as new series..." msgstr "Sauvegarder l'instantané comme une nouvelle série..." #: ..\../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "Voir l'historique \tAlt+h" #: ..\../export/tools/ishowtagstool.cpp:19 #: ..\../main/tools/showtagshistorytool.cpp:27 #, fuzzy msgid "DICOM inspector" msgstr "Inspecteur DICOM" #: ..\../export/tools/isimpleprinttool.cpp:19 #: ..\../main/tools/simpleprinttool.cpp:226 msgid "Print" msgstr "Imprimer" #: ..\../export/tools/istartdicomizationtool.cpp:19 msgid "Dicomize..." msgstr "Dicomiser..." #: ..\../export/tools/itoolpan.cpp:19 msgid "Pan \tCtrl+P" msgstr "Panoramique \tCtrl+P" #: ..\../export/tools/itoolslider.cpp:19 msgid "Slider \tCtrl+S" msgstr "Curseur \tCtrl+S" #: ..\../export/tools/itoolwindowlevel.cpp:19 msgid "Window/Level \tCtrl+W" msgstr "Fenêtre/Niveau \tCtrl+W" #: ..\../export/tools/itoolzoom.cpp:19 msgid "Zoom \tCtrl+O" msgstr "Zoom \tCtrl+O" #: ..\../export/tools/itrackballtool.cpp:19 msgid "Trackball \tCtrl+T" msgstr "Trackball \tCtrl+T" #: ..\../export/tools/iundotool.cpp:20 ..\../main/tools/undotool.cpp:109 msgid "Undo" msgstr "Défaire" #: ..\../export/tools/ivideotool.cpp:19 msgid "Video \tCtrl+Space" msgstr "Vidéo \tCtrl+Space" #: ..\../export/tools/iwindowlayouttool.cpp:20 msgid "Window layout" msgstr "Mise en page des fenêtres" #: ..\../main/controllers/controladorcarga.cpp:161 msgid "Studies with" msgstr "Étude avec" #: ..\../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr " composants non supportés" #: ..\../main/controllers/controladorcarga.cpp:210 msgid "Reading properties" msgstr "Lecture des propriétés" #: ..\../main/controllers/controladorcarga.cpp:219 #: ..\../main/controllers/controladorcarga.cpp:642 #: ..\../main/controllers/controladorcarga.cpp:888 #: ..\../main/controllers/streaming/streamingloader.cpp:600 msgid "Error reading the study: " msgstr "Erreur de lecture de l'étude :" #: ..\../main/controllers/controladorcarga.cpp:224 #: ..\../main/controllers/controladorcarga.cpp:229 #: ..\../main/controllers/controladorcarga.cpp:647 #: ..\../main/controllers/controladorcarga.cpp:893 msgid "Internal error reading the study: " msgstr "Erreur interne à la lecture de l'étude :" #: ..\../main/controllers/controladorcarga.cpp:269 #: ..\../main/controllers/controladorcarga.cpp:281 #: ..\../main/controllers/controladorcarga.cpp:905 msgid "Spacing is not valid: (" msgstr "L'espacement n'est pas valide : (" #: ..\../main/controllers/controladorcarga.cpp:305 #: ..\../main/controllers/controladorcarga.cpp:338 #: ..\../main/controllers/controladorcarga.cpp:372 #: ..\../main/controllers/controladorcarga.cpp:408 #: ..\../main/controllers/controladorcarga.cpp:441 #: ..\../main/controllers/controladorcarga.cpp:474 #: ..\../main/controllers/controladorcarga.cpp:507 #: ..\../main/controllers/controladorcarga.cpp:540 #: ..\../main/controllers/controladorcarga.cpp:573 #: ..\../main/controllers/controladorcarga.cpp:606 #: ..\../main/controllers/controladorcarga.cpp:935 msgid "Error loading the study: Out of memory" msgstr "Erreur à la lecture de l'étude : Mémoire saturée" #: ..\../main/controllers/controladorcarga.cpp:375 msgid "Error loading the study: Internal Error" msgstr "Erreur à la lecture de l'étude : Mémoire interne" #: ..\../main/controllers/controladorcarga.cpp:630 #: ..\../main/controllers/streaming/streamingloader.cpp:1023 #: ..\../main/controllers/streaming/streamingloader.cpp:1223 #: ..\../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "Erreur à la lecture de l'étude : Format de pixel non supporté" #: ..\../main/controllers/controladorcarga.cpp:651 #: ..\../main/controllers/controladorcarga.cpp:960 msgid "Process canceled by user." msgstr "Processus annulé par l'utilisateur." #: ..\../main/controllers/controladorcarga.cpp:878 msgid "Interpreting properties" msgstr "Interprétation des propriétés" #: ..\../main/controllers/controladorcarga.cpp:917 msgid "Spacing of the image is invalid: (" msgstr "L'espacement de l'image est invalide : (" #: ..\../main/controllers/controladorcarga.cpp:942 msgid "Reading dataset" msgstr "Lecture de l'ensemble de données" #: ..\../main/controllers/controladorcarga.cpp:951 msgid "Error reading the study:" msgstr "Erreur de lecture de l'étude :" #: ..\../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "Erreur interne pendant la lecture de l'étude :" #: ..\../main/controllers/controladorcarga.cpp:972 msgid "load" msgstr "charger" #: ..\../main/controllers/controladorenviohl7.cpp:40 msgid "Stopping HL7 sender" msgstr "Arrêt de l'expéditeur HL7" #: ..\../main/controllers/controladorenviohl7.cpp:63 #: ..\../main/controllers/controladorenviohl7.cpp:76 msgid "Error starting HL7 sender" msgstr "Erreur au démarrage de l'expéditeur HL7" #: ..\../main/controllers/controladorenviohl7.cpp:65 #: ..\../main/controllers/controladorenviohl7.cpp:78 msgid "HL7 sender started" msgstr "Expéditeur HL7 démarré" #: ..\../main/controllers/controladorenviohl7.cpp:108 msgid "HL7 controller destroyed" msgstr "Contrôleur HL7 détruit" #: ..\../main/controllers/controladorenviohl7.cpp:150 msgid "Error processing message" msgstr "Erreur de traitement du message" #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/controllers/pacscontroller.cpp:1549 #: ..\../main/controllers/pacscontroller.cpp:1553 #: ..\../main/controllers/pacscontroller.cpp:1557 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ..\../main/gui/import/pasosimportacionbase.cpp:195 #: ..\../wx/gnkinforme/gnkinformebase.cpp:184 msgid "Unknown" msgstr "Inconnu" #: ..\../main/controllers/controladorextensiones.cpp:110 msgid "Loading" msgstr "Chargement" #: ..\../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "Ne peut charger la bibliothèque d'extension" #: ..\../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "Ne peut charger la bibliothèque. Vérifier les journaux" #: ..\../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "Le descripteur d'extension ne correspond pas" #: ..\../main/controllers/controladorextensiones.cpp:153 msgid "Could not find entry point" msgstr "Impossible de trouver le point d'entrée" #: ..\../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "Saut de l'extension avec un SID dupliqué :" #: ..\../main/controllers/controladorhl7.cpp:74 msgid "Integration engine hostname not set" msgstr "Le nom d'hôte du moteur d'intégration pas défini" #: ..\../main/controllers/controladorhl7.cpp:77 msgid "Integration engine port not set" msgstr "Le port du moteur d'intégration n'est pas défini" #: ..\../main/controllers/controladorhl7.cpp:91 msgid "Unsupported protocol" msgstr "Protocol non supporté" #: ..\../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "" "Erreur de mise en file d'attente du message. Vérifiez votre fournisseur" #: ..\../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "%d résultats ont été trouvés" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, c-format msgid "Downloading file %d/%d" msgstr "Téléchargement du fichier %d/%d" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "Taille maximale de téléchargement d'étude dépassée" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "Impossible de réserver de la mémoire pour la dicomisation PDF" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "Impossible de réserver de la mémoire pour la dicomisation d'image" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:359 msgid "Image format not supported" msgstr "Format d'image non supporté" #: ..\../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "Impossible de créer une couche de transport TLS" #: ..\../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "La clef privée et le certificat ne correspondent pas" #: ..\../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "Erreur de configuration de la couche TLS : " #: ..\../main/controllers/dcmtk/dicomservice.cpp:200 msgid "Receiving Association failed: " msgstr "Echec de la réception d'association : " #: ..\../main/controllers/dcmtk/dicomservice.cpp:209 msgid "Association received" msgstr "Association reçue" #: ..\../main/controllers/dcmtk/dicomservice.cpp:210 msgid "Parameters:" msgstr "Paramètres : " #: ..\../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "Association rejetée : Mauvais nom de contexte d'application : " #: ..\../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "Association rejetée : Pas d'UID de classe d'implémentation fourni" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "Association reconnue (PDV max d'envoi : " #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr ")" #: ..\../main/controllers/dcmtk/dicomservice.cpp:274 msgid "No valid presentation contexts" msgstr "Pas de contexte de présentation valide" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "Association(dicom://" msgstr "Association (dicom://" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "@" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "Ginkgo CADx est incapable de compresse de " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr " vers " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, c-format msgid "Uploading file %d of %d" msgstr "Envoi de fichier %d sur %d" #: ..\../main/controllers/dicommanager.cpp:504 #: ..\../main/controllers/dicommanager.cpp:531 msgid "Extracting file..." msgstr "Extraction de fichier..." #: ..\../main/controllers/historycontroller.cpp:323 msgid "Error creating history database " msgstr "Erreur à la création de la base d'historique" #: ..\../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr "" #: ..\../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" "Vous n'avez pas la permission d'écrire dans le DICOMDIR, les préférences " "seront sauvegardées dans un répertoire temporaire" #: ..\../main/controllers/historycontroller.cpp:343 msgid "Error creating dicomDir database " msgstr "Erreur de création de la base de données DICOMDIR" #: ..\../main/controllers/historycontroller.cpp:425 #: ..\../main/controllers/historycontroller.cpp:441 msgid "Error creating thumbnails database " msgstr "Erreur de création de la base de données de miniatures" #: ..\../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "Erreur à la création de la base de données:\n" #: ..\../main/controllers/historycontroller.cpp:560 msgid "Including image " msgstr "Ajout de l'image " #: ..\../main/controllers/historycontroller.cpp:560 #: ..\../main/controllers/historycontroller.cpp:707 msgid " of " msgstr " de " #: ..\../main/controllers/historycontroller.cpp:707 msgid "Linking image " msgstr "Lien image" #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "Erreur à la lecture de l'historique : \n" #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "Échec de suppression du numéro de la base de données :\n" #: ..\../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "Echec du nettoyage de l'historique :\n" #: ..\../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" "Ginkgo CADx a détecté une inactivité et se fermera dans %d secondes.\n" "Voulez-vous continuer ?" #: ..\../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "" "Erreur fatale ! Vous ne pouvez pas enregistrer deux analyseurs avec la même " "clef" #: ..\../main/controllers/integrationcontroller.cpp:493 msgid "Malformed template Id (" msgstr "Id template mal formé (" #: ..\../main/controllers/integrationcontroller.cpp:493 #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" "):\n" "N'est pas un identifiant HL7 valide (ie: code^description^namespaceId)" #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "Id du template mal renseigné dans la configuration du module" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "Template Id unsupported (" msgstr "Id Template non supporté (" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "" "):\n" "Vérifiez la configuration et attachez-le si nécessaire" #: ..\../main/controllers/integrationcontroller.cpp:566 msgid "Unknown module Id (" msgstr "Id module inconnu (" #: ..\../main/controllers/integrationcontroller.cpp:592 msgid "Empty configuration" msgstr "Configuration vide" #: ..\../main/controllers/integrationcontroller.cpp:631 msgid "XML Parser Not Found. Key=" msgstr "Analyseur XML non trouvé. Key=" #: ..\../main/controllers/log4cplus/guiappender.cpp:75 msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "%Y/%m/%d %H:%M:%S.%q" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ..\../main/gui/history3/historypanel3base.cpp:48 #: ..\../main/gui/import/pasosimportacionbase.cpp:227 msgid "Patient" msgstr "Patient" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #, fuzzy msgid "Patient ID" msgstr "ID du patient" #: ..\../main/controllers/modalitysettingscontroller.cpp:86 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ..\../main/gui/history3/historypanel3.cpp:227 #: ..\../main/gui/open/opendialogs.cpp:50 msgid "Modality" msgstr "Modalité" #: ..\../main/controllers/modalitysettingscontroller.cpp:98 #, fuzzy msgid "Dimensions" msgstr "Extensions" #: ..\../main/controllers/modalitysettingscontroller.cpp:109 #, fuzzy, c-format msgid "Made with %s" msgstr "%s (ou %s)" #: ..\../main/controllers/modalitysettingscontroller.cpp:167 #: ..\../main/controllers/modalitysettingscontroller.cpp:338 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "Défaut" #: ..\../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "Autocalcul" #: ..\../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "SPINAL" #: ..\../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "CRANE" #: ..\../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "OS" #: ..\../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "OS DU CRANE" #: ..\../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "MEDIASTIN" #: ..\../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "POUMON" #: ..\../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "POITRINE" #: ..\../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "VERTEBRE" #: ..\../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "ANGIO" #: ..\../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "CRANE CT" #: ..\../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "CRANE T1" #: ..\../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "CRANE T2" #: ..\../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "GENOU" #: ..\../main/controllers/pacscontroller.cpp:1212 msgid "Downloading file" msgstr "Téléchargement de fichier" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Error downloading WADO file" msgstr "Erreur au téléchargement du fichier WADO" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Check PACS configuration" msgstr "Vérifier la configuration PACS" #: ..\../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "Niveau de requête / récupération inconnu" #: ..\../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "Niveau de requête / récupération non spécifié" #: ..\../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "Impossible d'exécuter la requête HTTP" #: ..\../main/controllers/pacscontroller.cpp:1428 msgid "Invalid HTTP response" msgstr "Réponse HTTP invalide" #: ..\../main/controllers/pacscontroller.cpp:1433 msgid "Invalid HTTP code" msgstr "code HTTP invalide" #: ..\../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "Impossible d'initialiser le sous-système HTTP" #: ..\../main/controllers/pacscontroller.cpp:1472 msgid "PACS-Service" msgstr "Service PACS" #: ..\../main/controllers/parserxmlenglish.cpp:97 #: ..\../main/controllers/parserxmlspanish.cpp:94 msgid "Omitted Identificator" msgstr "Identifiant omis" #: ..\../main/controllers/parserxmlenglish.cpp:105 #: ..\../main/controllers/parserxmlspanish.cpp:102 msgid "Omitted AET" msgstr "AET omis" #: ..\../main/controllers/parserxmlenglish.cpp:113 #: ..\../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "Nom d'hôte manquant" #: ..\../main/controllers/parserxmlenglish.cpp:121 #: ..\../main/controllers/parserxmlspanish.cpp:118 msgid "Omitted port" msgstr "Port omis" #: ..\../main/controllers/parserxmlenglish.cpp:206 #: ..\../main/controllers/parserxmlenglish.cpp:237 #: ..\../main/controllers/parserxmlspanish.cpp:188 #: ..\../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "Le taille du pdu n'est pas un nombre valide" #: ..\../main/controllers/parserxmlenglish.cpp:212 #: ..\../main/controllers/parserxmlspanish.cpp:194 msgid "Port is not a valid number" msgstr "Le port n'est pas un nombre valide" #: ..\../main/controllers/parserxmlenglish.cpp:248 #: ..\../main/controllers/parserxmlspanish.cpp:228 msgid "The port is not a valid number" msgstr "Le port n'est pas un nombre valide" #: ..\../main/controllers/parserxmlenglish.cpp:265 #: ..\../main/controllers/parserxmlspanish.cpp:246 msgid "Setting not found" msgstr "Configuration non trouvée" #: ..\../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "Attribut \"action\" invalide dans le périmètre \"gnkworkflow\"" #: ..\../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "Attribut \"action\" attendu dans le périmètre \"gnkworkflow\"" #: ..\../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "Attribut \"pacs-retrieve-sid\" vide dans le périmètre \"gnkworkflow\"" #: ..\../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "Attribut \"pacs-store-sid\" vide dans le périmètre \"gnkworkflow\"" #: ..\../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "Attribut \"value\" attendu dans le périmètre \"query-retrieve-level\"" #: ..\../main/controllers/parserxmlenglish.cpp:391 msgid "\"code\" attribute expected at \"patient\" scope" msgstr "Attribut \"code\" attendu dans le périmètre \"patient\"" #: ..\../main/controllers/parserxmlenglish.cpp:427 msgid "\"code\" attribute expected at \"physician\" scope" msgstr "Attribut \"code\" attendu dans le périmètre \"médecin\"" #: ..\../main/controllers/parserxmlenglish.cpp:434 msgid "\"value\" attribute expected at \"physician\" scope" msgstr "Attribut \"value\" attendu dans le périmètre \"patient\"" #: ..\../main/controllers/parserxmlenglish.cpp:445 msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "Attribut \"iid\" attendu dans le périmètre \"institution\"" #: ..\../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "Attribut \"code\" attendu dans le périmètre \"metadata\"" #: ..\../main/controllers/parserxmlenglish.cpp:483 msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "Attribut \"key\" attendu dans le périmètre \"metadata\"" #: ..\../main/controllers/parserxmlenglish.cpp:548 #: ..\../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "" "Vous devez spécifier les attributs que vous voulez utiliser dans la requête" #: ..\../main/controllers/parserxmlenglish.cpp:552 #: ..\../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "Une balise \"patient\" sans identifiant a été lue" #: ..\../main/controllers/parserxmlenglish.cpp:570 #: ..\../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "" "Vous devez définir un PACS par défaut dans l'intégration XML ou le menu de " "configuration" #: ..\../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "Attribut \"accion\" invalide dans le périmètre \"plantilla\"" #: ..\../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "Attribut \"accion\" attendu dans le périmètre \"plantilla\"" #: ..\../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "Attribut \"pacs_retrieve_sid\" vide dans le périmètre \"plantilla\"" #: ..\../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "Attribut \"pacs_store_sid\" vide dans le périmètre \"plantilla\"" #: ..\../main/controllers/parserxmlspanish.cpp:340 msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "Attribut \"uid\" attendu dans le périmètre \"dimse\"" #: ..\../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "Attribut \"ambito\" invalide dans le périmètre \"dimse\"" #: ..\../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "Attribut \"ambito\" attendu dans le périmètre \"dimse\"" #: ..\../main/controllers/parserxmlspanish.cpp:402 msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "Attribut \"codigo\" attendu dans le périmètre \"paciente\"" #: ..\../main/controllers/parserxmlspanish.cpp:438 msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "Attribut \"codigo\" attendu dans le périmètre \"medico\"" #: ..\../main/controllers/parserxmlspanish.cpp:445 msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "Attribut \"valor\" attendu dans le périmètre \"medico\"" #: ..\../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "Attribut \"cid\" attendu dans le périmètre \"centro\"" #: ..\../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "Attribut \"aid\" attendu dans le périmètre \"hce\"" #: ..\../main/controllers/parserxmlspanish.cpp:486 msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "Attribut \"codigo\" attendu dans le périmètre \"metadato\"" #: ..\../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "Attribut \"clave\" attendu dans le périmètre \"metadato\"" #: ..\../main/controllers/parserxmlspanish.cpp:524 msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "Attribut \"id_peticion\" attendu dans le périmètre \"gnkworkflow\"" #: ..\../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "Attribut \"ambito\" attendu dans le périmètre \"plantilla\"" #: ..\../main/controllers/parserxmlspanish.cpp:559 msgid "id_application expected" msgstr "id_application attendu" #: ..\../main/controllers/smartretrievecontroller.cpp:124 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:920 msgid "Downloading from PACS..." msgstr "Téléchargement du PACS..." #: ..\../main/controllers/streaming/streamingloader.cpp:303 #: ..\../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" "Erreur à la lecture de l'étude : la valeur de la pixel la plus grande n'est " "pas cohérente avec la combinaison de Pixel Representation et High bit" #: ..\../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "Erreur interne pendant la lecture de l'étude, format inconnu " #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ..\../main/gui/history3/historytablemodel.cpp:403 #: ..\../main/gui/history3/historytablemodel.cpp:415 #: ..\../main/gui/history3/historytablemodel.cpp:470 #: ..\../main/gui/history3/historytablemodel.cpp:482 #: ..\../main/gui/open/dicomdirtablemodel.cpp:102 #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "%d/%m/%Y %H:%M:%S" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "%d/%m/%Y 00:00:00" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 msgid "Exploring PACS..." msgstr "Parcours du PACS..." #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ..\../main/gui/history3/historypanel3.cpp:225 #: ..\../main/gui/open/opendialogs.cpp:49 msgid "Patient id" msgstr "ID du patient" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ..\../main/gui/history3/historypanel3.cpp:224 #: ..\../main/gui/open/opendialogs.cpp:48 msgid "Patient name" msgstr "Nom du patient" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:479 msgid "Study Instance UID" msgstr "UID de l'instance d'étude" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ..\../main/gui/history3/historypanel3.cpp:231 #: ..\../main/gui/open/opendialogs.cpp:53 msgid "Accession number" msgstr "Numéro d'accès" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:481 msgid "Study date" msgstr "Date de l'étude" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:482 #, fuzzy msgid "Study time" msgstr "Temps" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:490 msgid "Series Instance UID" msgstr "UID de l'instance de la série" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:492 msgid "Series date" msgstr "Date de la série" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:493 #, fuzzy msgid "Series time" msgstr "Temps" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:519 msgid "No results found" msgstr "Aucun résultat trouvé" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #, fuzzy msgid "Write query name" msgstr "Nom" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #, fuzzy msgid "This query name is in use, do you want to overwrite it?" msgstr "Il y a des tâches en attente, voulez-vous les exécuter ?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 msgid "Id" msgstr "Id" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 msgid "Date Time" msgstr "Date Heure" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ..\../main/gui/history3/historypanel3.cpp:229 #: ..\../main/gui/import/pasosimportacionbase.cpp:298 #: ..\../main/gui/import/pasosimportacionbase.cpp:340 #: ..\../main/gui/open/opendialogs.cpp:52 msgid "Description" msgstr "Description" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ..\../main/gui/import/pasosimportacionbase.cpp:276 msgid "Accession Number" msgstr "Numéro d'accès" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:210 msgid "Store query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:211 #, fuzzy msgid "Remove query" msgstr "Supprimer" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:278 msgid "There is no any PACS configured" msgstr "Il n'y a aucun PACS configuré" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "Acc#" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:54 msgid "Study UID" msgstr "UID d'étude" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" "La recherche sans paramètre peut prendre beaucoup de temps\n" "Voulez-vous continuer ?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "Search" msgstr "Recherche" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:519 msgid "Download series" msgstr "Télécharger série" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 msgid "Download study" msgstr "Télécharger étude" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:535 msgid "Link series" msgstr "Séries liées" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:537 msgid "Link study" msgstr "Etude liée" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:551 msgid "Properties..." msgstr "Propriétés..." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #, fuzzy msgid "You must specify at least a modality or a period of time" msgstr "Vous devez spécifier au moins l'uid d'étude ou le numéro d'accès" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #, fuzzy msgid "Select a valid query" msgstr "Sélectionner un serveur PACS valide" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 msgid "Select a valid PACS Server" msgstr "Sélectionner un serveur PACS valide" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid "Download of modality " msgstr "Télécharger les modalités" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr "non autorisé" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "Vous n'êtes pas autorisé à télécharger ce genre de modalités." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "Modality download error" msgstr "Erreur au téléchargement des modalités" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:786 msgid "search results" msgstr "Résultats de la recherche" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:913 msgid "Downloading serie..." msgstr "Téléchargement d'une série..." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:916 msgid "Downloading study..." msgstr "Téléchargement d'une étude..." #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:165 msgid "PACS acquisition is restricted" msgstr "L'acquisition PACS est restreinte" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:96 msgid "Server" msgstr "Serveur" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ..\../main/gui/import/pasosimportacionbase.cpp:284 #: ..\../main/gui/import/pasosimportacionbase.cpp:326 #: ..\../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "Date" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ..\../main/gui/history3/historypanel3base.cpp:81 msgid "Any date" msgstr "Toute date" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ..\../main/gui/history3/historypanel3base.cpp:85 msgid "Today AM" msgstr "Ce matin" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ..\../main/gui/history3/historypanel3base.cpp:88 msgid "Today PM" msgstr "Cet après-midi" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ..\../main/gui/history3/historypanel3base.cpp:91 msgid "Today" msgstr "Aujourd'hui" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ..\../main/gui/history3/historypanel3base.cpp:100 msgid "Yesterday" msgstr "Hier" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ..\../main/gui/history3/historypanel3base.cpp:103 msgid "Last 7 days" msgstr "Les 7 derniers jours" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ..\../main/gui/history3/historypanel3base.cpp:106 msgid "Last 30 days" msgstr "Les 30 derniers jours" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ..\../main/gui/history3/historypanel3base.cpp:109 msgid "Last 3 months" msgstr "Les 3 derniers mois" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ..\../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "Entre :" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ..\../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "Modalités" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 #, fuzzy msgid "Stored queries" msgstr "Le fichier n'a pu être enregistré" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:216 #, fuzzy msgid "Select stored queries..." msgstr "Sélectionnez le répertoire dans lequel les fichiers seront enregistrés" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ..\../main/gui/open/opendialogsbase.cpp:50 #: ..\../main/gui/open/opendialogsbase.cpp:202 msgid "Link" msgstr "Lien" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "Disponible uniquement sur serveurs WADO" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:289 msgid "Download" msgstr "Téléchargement" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ..\../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "Fermeture" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:329 msgid "Series does not exist" msgstr "La série n'existe pas" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "Ces séries ont été détruites de l'historique local" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "Continuer" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ..\../main/gui/open/opendialogsbase.cpp:127 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ..\../main/tools/metricgridtool.cpp:101 msgid "Ok" msgstr "Ok" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:151 msgid "Download again" msgstr "Télécharger encore" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:441 msgid "Open" msgstr "Ouvrir" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:179 #, fuzzy msgid "Set query name" msgstr "Nom" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:32 msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" "Cette série a été déjà téléchargée dans l'historique local. Voulez-vous la " "retélécharger ?" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:34 msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" "Cette étude a été déjà téléchargée dans l'historique local. Voulez-vous la " "retélécharger ?" #: ..\../main/gui/anonymize/anonymizedialog.cpp:64 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ..\../main/gui/export/parametrosprincipales.cpp:194 msgid "Exporting images ..." msgstr "Export d'images ..." #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:21 msgid "Common tags" msgstr "Balises communes" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 msgid "Patient's name and surname" msgstr "Prénom et nom du patient" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 msgid "Patient Id" msgstr "Id Patient" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "Etablissements" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "Médecin référent" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "Commentaires" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:44 msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "Balises Ginkgo CADx (Carte d'évaluation...)" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "Balises (double-clic pour changer la valeur)" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:71 #, fuzzy msgid "Add new..." msgstr "Vous ne pouvez pas ajouter de nouveau répertoire à cette section." #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ..\../main/tools/anonymizetool.cpp:26 #: ..\../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "Anonymiser" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:136 msgid "Create new" msgstr "Créer nouveau" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ..\../main/gui/anonymize/anonymizepanelbase.h:136 msgid "Add DICOM tag" msgstr "Ajouter une balise DICOM" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:199 #, fuzzy msgid "Group" msgstr "l'entrée « %s » apparaît plus d'une fois dans le groupe « %s »" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:203 #, fuzzy msgid "Element" msgstr "élément id patient absent de l'ensemble de données" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ..\../widgets/wangulo.cpp:1114 msgid "Value" msgstr "Valeur" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 #, fuzzy msgid "Top right corner annotation" msgstr "Cacher les annotations des coins" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 #, fuzzy msgid "Top left corner annotation" msgstr "Cacher les annotations des coins" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 #, fuzzy msgid "Bottom left corner annotation" msgstr "Cacher les annotations des coins" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 #, fuzzy msgid "Bottom right corner annotation" msgstr "Cacher les annotations des coins" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 msgid "You must fill in all fields" msgstr "Vous devez remplir tous les champs" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 msgid "Window/level label in use" msgstr "Étiquette fenêtre / niveau utilisée" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "Mettez un nombre valide dans les champs fenêtre et niveau." #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "Etiquette" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 msgid "Window" msgstr "Fenêtre" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 msgid "Level" msgstr "Niveau" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "Voisin le plus proche" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "Linéaire" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "Cubique" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 msgid "Do you confirm the removal of the preset?" msgstr "Confirmez-vous la suppression de la présélection ?" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Data modified" msgstr "Donnée modifiée" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 #, fuzzy msgid "Modality settings" msgstr " à la modalité " #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 #, fuzzy msgid "Default modality settings" msgstr " à la modalité " #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, c-format msgid "%s settings" msgstr "Configuration %s" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:60 msgid "settings" msgstr "configuration" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Export Configuration" msgstr "Exporter la configuration" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Ini Files(*.ini)|*.ini" msgstr "Fichiers Ini(*.ini)|*.ini" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" "Le fichier existe\n" "Voulez-vous l'écraser ?" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 msgid "Existing file" msgstr "Fichier existant" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 msgid "Export successfully completed" msgstr "Export terminé avec succès" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 msgid "There was an error during exportation" msgstr "Il y a eu une erreur pendant l'export" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Import Configuration" msgstr "Configuration de l'import" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Ini files(*.ini)|*.ini" msgstr "Fichiers Ini (*.ini)|*.ini" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "" "Import terminé avec succès, redémarrez Ginkgo CADx pour appliquer les " "changements" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 msgid "There was an error during importation, check permissions" msgstr "Il y a eu une erreur pendant l'export, vérifiez les permissions" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 msgid "Dicom tag" msgstr "Balise DICOM" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 msgid "Split horizontally..." msgstr "Diviser horizontalement..." #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 msgid "Split vertically..." msgstr "Diviser verticalement..." #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ..\../main/tools/windowlayouttool.cpp:273 msgid "Split active horizontally" msgstr "Division horizontale active" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ..\../main/tools/windowlayouttool.cpp:274 msgid "Split active vertically" msgstr "Division verticale active" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 msgid "New hanging protocol" msgstr "Nouveau protocole hanging" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, c-format msgid "Window %d" msgstr "Fenêtre %d" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "Cette vue ne supporte pas les fenêtres multiples" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "Actif" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "Yes" msgstr "Oui" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "Non" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 msgid "Hanging protocols" msgstr "Protocole Hanging" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 msgid "One day" msgstr "Un jour" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 msgid "Two days" msgstr "Deux jours" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 msgid "Three days" msgstr "Trois jours" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "Une semaine" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 msgid "Two weeks" msgstr "Deux semaines" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 msgid "One month" msgstr "Un mois" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 msgid "Three months" msgstr "Trois mois" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "Une année" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 msgid "Local database" msgstr "Base de données locale" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 msgid "Local DICOM Dir setup" msgstr "Configuration du DICOMDIR local" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" "Le répertoire sélectionné n'existe pas\n" "Voulez-vous le créer ?" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" "Échec de création du répertoire. Assurez-vous que le chemin est correct et " "que vous avez les permissions sur le répertoire parent" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" "Il y a eu une erreur de lecture du répertoire. Assurez-vous d'avoir les " "droits d'écriture dessus" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 msgid "Select DICOMDIR" msgstr "Sélectionnez une DICOMDIR" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" "Attention, pour modifier le répertoire, vous devez fermer les séries " "actuellement ouvertes." #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "Station de travail" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "Paramètres de configuration de la station locale" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "Extensions" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:126 msgid "Extensions settings" msgstr "Configuration des extensions" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "" "Ginkgo CADx doit redémarrer pour que les changements d'extensions prennent " "effet" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #, fuzzy msgid "Port has to be a valid number" msgstr "Le port n'est pas un nombre valide" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "Géneral" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:190 msgid "General configuration parameters" msgstr "Paramètres de configuration générale" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "Ginkgo CADx doit redémarrer pour que les changements prennent effet" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "Dossier de santé électronique" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "Configuration du système de dossier de santé électronique" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:134 msgid "Testing conectivity with the server..." msgstr "Test de la connectivité avec le serveur..." #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:144 msgid "Error connecting to url" msgstr "Erreur de connexion à l'URL" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #, fuzzy msgid "hostname/port not set" msgstr "Nom d'hôte / Port" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "Échec du test de connexion" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "succès du test de connexion" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "Select certificate" msgstr "Sélectionnez un certificat" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "Fichiers PEM (*.pem;*.key)|*.pem;*.key|Tout fichier (*.*)|*.*" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "Vous avez à définir les clefs privée et publique" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:255 msgid "Change ..." msgstr "Changement ..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 msgid "Import ..." msgstr "Import ..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:279 msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "" "Si vous voulez utiliser SSL/TLS, vous devez définir un certificat et une " "clef privée valides" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:472 msgid "There are this errors: " msgstr "Il y a des erreurs : " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" "\n" "- Cet Id PACS est utilisé" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" "\n" "- Le port doit être un entier positif court (16 bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" "\n" "- Le port est trop grand" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" "\n" "- La taille maximum d'un AET est 16 caractères" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" "\n" "- La taille du PDU doit être supérieur ou égal à zéro (par défaut = 16384)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" "\n" "- La valeur maximale du PDU est " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" "\n" "- La valeur minimum du PDU est " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" "\n" "- Si vous voulez utiliser SSL/TLS, vous devez définir un certificat et une " "clef privée valides" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:525 msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" "\n" "- Si vous voulez utiliser WADO, vous devez remplir l'URL WADO" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" "\n" "- L'URL WADO URL ne contient pas de schéma (i.e. http://)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" "\n" "- L'URL WADO ne contient pas d'hôte" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "Vous devez remplir tous les champs pour continuer" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:558 msgid "Testing the connection to the node ..." msgstr "Test de la connexion au nœud..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:561 msgid "DICOM Error" msgstr "Erreur DICOM" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "Impossible de se connecter : Ne peut démarrer le support réseau." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "Le service n'a pas répondu correctement au C-ECHO" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:607 msgid "The service did not respond correctly to the DICOM standard" msgstr "Le service n'a pas répondu correctement au standard DICOM" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:616 msgid "Invalid port number" msgstr "Numéro de port invalide" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:622 msgid "WADO Error" msgstr "Erreur WADO" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:703 msgid "Use by default" msgstr "Utilisé par défaut" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:795 msgid "DICOM nodes" msgstr "Noeuds DICOM" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:800 msgid "DICOM nodes settings" msgstr "Configuration des noeuds DICOM" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "Ils ont produit les erreurs suivantes :" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" "\n" "- Le port local doit être un entier positif court (16 bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" "\n" "- Le port local est trop grand" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" "\n" "- La longueur maximale de l'AET local est 16 caractères" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "Confirmez la suppression du nœud" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1101 msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Vous devez configurer un AET local qui est utilisé pour communiquer avec les " "noeuds DICOM. Le port spécifié doit être ouvert dans le pare-feu car il est " "essentiel pour les transferts." #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ..\../main/gui/export/pasosexportacionbase.cpp:20 msgid "Profile" msgstr "Profil" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "Valeur par défaut" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 msgid "Set property active" msgstr "Définir la propriété active" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "Inactif" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Set property inactive" msgstr "Définir la propriété inactive" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 msgid "Set default value" msgstr "Définir la valeur par défaut" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:352 msgid "Set by user" msgstr "Définir par utilisateur" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 msgid "Profile name can't be repeated" msgstr "Le nom du profil ne peut être répété" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "Vous devez remplir le champ nom pour continuer" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "Profils" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:498 msgid "Profiles Settings" msgstr "Configuration des profils" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "" "Ginkgo CADx doit redémarrer pour que les changements de permission prennent " "effet" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 msgid "Confirm the removal of the profile " msgstr "Confirmation de la suppression du profil" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:53 msgid "New User" msgstr "Nouvel utilisateur" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "Le nom d'utilisateur doit contenir au moins 4 caractères" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 msgid "User name repeated" msgstr "Nom d'utilisateur répété" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "Le mot de passe et sa confirmation ne peuvent être différents." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 msgid "Password has to contain at least 6 characters" msgstr "Le mot de passe doit contenir au moins 6 caractères" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:141 msgid "No login" msgstr "Pas de login" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 msgid "User/Password" msgstr "Utilisateur / Mot de passe" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:224 msgid "Password" msgstr "Mot de passe" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:191 msgid "Password is setted" msgstr "Le mot de passe est défini" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "Changer le mot de passe" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 msgid "Password is not setted" msgstr "Le mot de passe n'est pas défini" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:195 msgid "Set password" msgstr "Définir le mot de passe" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:224 msgid "Security Setting" msgstr "Configuration de la sécurité" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "Vous devez créer au moins un utilisateur" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "Vous devez définir le mot de passe principal" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 msgid "User inserted successfully" msgstr "Utilisateur ajouté avec succès" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "" "Il y a eu un problème d'ajout d'utilisateur. Voir les journaux pour plus " "d'informations." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 msgid "Password changed successfully" msgstr "Mot de passe changé avec succès" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "" "Il y a eu un problème au changement de mot de passe. Voir les journaux pour " "plus d'informations." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 msgid "User deleted successfully" msgstr "Utilisateur supprimé avec succès" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "" "Il y a eu un problème de suppression d'utilisateur. Voir les journaux pour " "plus d'informations." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "Ginkgo CADx doit avoir au moins un utilisateur." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ..\../main/gui/login/dialogologin.cpp:27 msgid "User" msgstr "Utilisateur" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ..\../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "Choisir un répertoire" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "Les titres d'emplacement ne peuvent être répétés" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 msgid "Maximum length of title is 8 characters" msgstr "La longueur maximale du titre est de 8 caractères" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "Le répertoire sélectionné ne peut être ouvert" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "Vous devez remplir les champs titre et emplacement pour continuer" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 msgid "Title" msgstr "Titre" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 msgid "Path" msgstr "Chemin" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "Monitorer" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 msgid "Clean before" msgstr "Nettoyer avant" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 msgid "Clean after" msgstr "Nettoyer après" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "Emplacements" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 msgid "Location Settings" msgstr "Configurations des emplacements" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "Anonymisation" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:96 msgid "Anonymization settings" msgstr "Configuration de l'anonymisation" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1370 msgid "Settings" msgstr "Configuration" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 msgid "Export config..." msgstr "Exporter la configuration..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 msgid "Import config..." msgstr "Importer la configuration..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "Appliquer" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 msgid "Physician's name" msgstr "Nom du médecin" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 msgid "Physician's Id" msgstr "Id du Médecin" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 msgid "Service" msgstr "Service" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 msgid "Service's name" msgstr "Nom du Service" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 msgid "Service's Id" msgstr "Id du Service" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 msgid "Local institution" msgstr "Établissement local" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 msgid "Institution's name" msgstr "Nom de l'établissement" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 msgid "Institution's Id" msgstr "Id de l'établissement" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 msgid "Dicomized files" msgstr "Fichiers dicomisés" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 msgid "Charset" msgstr "Encodage de caractère" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "ISO_IR 192 - UTF8" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "ISO_IR 6" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "ISO_IR 100 - Latin 1" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "ISO_IR 101 - Latin 2" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "ISO_IR 109 - Latin 3" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "ISO_IR 110 - Latin 4" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "ISO_IR 126 - Grec" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "ISO_IR 127 - Arabe" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "ISO_IR 138 - Hébreux" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "ISO_IR 144 - Cyrillique" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 msgid "ISO_IR 148" msgstr "ISO_IR 148 - Latin 5" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "Langue" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 msgid "Automatically check for updates" msgstr "Automatiquement vérifier les mises à jour" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ..\../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 msgid "Proxy settings" msgstr "Configuration proxy" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 msgid "Enable http proxy" msgstr "Activer le proxy HTTP" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:218 #, fuzzy msgid "Proxy Settings" msgstr "Configuration proxy" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 msgid "Server settings" msgstr "Configuration serveur" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 msgid "Host" msgstr "Hôte" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 msgid "Port" msgstr "Port" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "Authentification" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "Le serveur proxy requiert une authentification" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 #, fuzzy msgid "Username" msgstr "Le nom d'utilisateur ou le mot de passe est incorrect" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "Exceptions" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 #, fuzzy msgid "No proxy for addresses containing" msgstr "Séparez les adresses par des virgules." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "Séparez les adresses par des virgules." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 msgid "DICOM Dir" msgstr "DICOMDIR" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "" "La DICOMDIR est dans le répertoire local où l'historique est enregistré" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" "Attention, pour mettre à jour le répertoire, vous devez fermer toutes les " "séries ouvertes" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 msgid "Auto-cleaning" msgstr "Auto-nettoyage" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "" "Supprimer les études dont la date d'acquisition est plus ancienne que :" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" "Supprimer les anciennes études quand l'espace disque libre est inférieur à :" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 msgid "MB" msgstr "MB" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "Supprimer les études quand le DICOMDIR est plus gros que :" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" "Cette fonctionnalité affecte seulement les études COPIEES dans le DICOMDIR " "et non celles en utilisation." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ..\../main/tools/toolwindowlevel.cpp:201 msgid "Reset to default" msgstr "Remettre par défaut" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "PACS local" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Vous devez configurer l'AET local qui est utilisé pour communiquer avec le " "serveur PACS. Le port spécifié doit être ouvert dans le pare-feu, c'est " "indispensable pour les transferts." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 msgid "Local AET" msgstr "AET local" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" "Pour la mise en œuvre à grande échelle dans un environnement homogène, vous " "devez spécifier les caractères génériques suivants dans l'AET local :\n" "\t%IP Adresse IP\n" "\t%IP n-ème Octet (1~4)\n" "\t%HOSTNAME Nom d'hôte\"" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "Configuration avancée." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 msgid "DICOM Nodes" msgstr "Noeuds DICOM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 msgid "New ..." msgstr "Nouveau ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 msgid "Edit ..." msgstr "Editer ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ..\../main/gui/history3/historypanel3.cpp:677 #: ..\../main/gui/history3/historypanel3.cpp:686 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ..\../main/gui/import/selectimagesimportation.cpp:291 #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete" msgstr "Supprimer" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 msgid "Set Default" msgstr "Définir par défaut" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:388 msgid "DICOM Node" msgstr "Noeud DICOM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "AET" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 msgid "PDU (KB)" msgstr "PDU (KB)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 msgid "Retrieve method" msgstr "Méthode de récupération" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Move" msgstr "Bouger" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Get" msgstr "Mettre" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "WADO" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 msgid "WADO URL" msgstr "URL WADO" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 msgid "Retrieve mode" msgstr "Mode de récupération" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ..\../main/gui/import/pasosimportacionbase.cpp:319 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1395 msgid "Series" msgstr "Séries" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 msgid "Studies" msgstr "Etudes" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "Réutilisation de la connexion" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "Réutilisation de la connexion quand plusieurs requêtes sont requises" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 msgid "Worklists" msgstr "Listes de travail" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 msgid "Select how do you want to handle MPPS items" msgstr "Sélectionnez la façon dont vous voulez gérer les éléments MPPS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 msgid "DICOM MPPS" msgstr "MPPS DICOM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 msgid "HL7 messages" msgstr "Messages HL7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 msgid "HL7" msgstr "HL7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 msgid "Abort message" msgstr "Annuler message" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 msgid "Completed message" msgstr "Message complété" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 msgid "In progress message" msgstr "Message en cours" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 msgid "Default values" msgstr "Valeurs par défaut" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 msgid "Worklist" msgstr "Liste de travail" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 msgid "SSL/TLS" msgstr "SSL/TLS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 msgid "Verify server credentials" msgstr "Vérifier les accréditations du serveur" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 msgid "Use SSL/TLS" msgstr "Utiliser SSL/TLS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "Certificat" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 msgid "Certificate to use in this connection" msgstr "Certificat à utiliser pour cette connexion" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "Configuration avancée..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 msgid "Default charset" msgstr "Charset par défaut" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 msgid "Advanced" msgstr "Avancée" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "Test de connexion" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "Vérifier les accréditations du client" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 msgid "Local AET certificate" msgstr "Certificat de l'AET local" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 msgid "Certificate used by Ginkgo CADx" msgstr "Certificat utilisé par Ginkgo CADx" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "L'ID application Gingo CADx est utilisée pour remplir le champ MSH.3" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 msgid "Receiver organization Id" msgstr "Id de l'organisation réceptrice" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "L'identifiant unique de l'organisation qui reçoit le message." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 msgid "Petitioner System Id" msgstr "Id du système demandeur" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "L'identifiant unique du système demandeur." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 msgid "Filler Application Id" msgstr "Id de l'application contenante" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "" "L'identifiant unique de l'application de remplissage (SIID / Ginkgo CADx)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "L'identifiant unique de l'application de remplissage (SIID / Ginkgo)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 msgid "Ginkgo CADx Application Id" msgstr "Id d'application Ginkgo CADx" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" "L'identifiant unique de l'application Picture Archiving and Communication " "System (SIID/PACS)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 msgid "Integration engine" msgstr "Moteur d'intégration" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 msgid "Hostname / Port" msgstr "Nom d'hôte / Port" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "Nom d'hôte (IP ou DNS) du moteur d'intégration" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "/" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 msgid "Protocol" msgstr "Protocole" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "Le protocole de couche de transfert du moteur d'intégration" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "MLLP" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ..\../main/gui/export/pasosexportacionbase.cpp:28 msgid "Format" msgstr "Format" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 msgid "Message's format" msgstr "Format du message" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "ER7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 msgid "Test engine" msgstr "Moteur de test" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 msgid "Test Integration Engine connectivity" msgstr "Test de connectivité du moteur d'intégration" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 msgid "Ginkgo Extension Title" msgstr "Titre d'extension Ginkgo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 msgid "Edit public key" msgstr "Éditer la clef publique" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "" "Utiliser le certificat par défaut (certificat configuré dans la " "configuration local AET)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 msgid "Public key" msgstr "Clef publique" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 msgid "Public key in PEM format" msgstr "Clef publique au format PEM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 msgid "Load ..." msgstr "Chargement ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 msgid "Private key" msgstr "Clef privée" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 msgid "Private key in PEM format" msgstr "Clef privée au format PEM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 msgid "Profile name" msgstr "Nom du profile" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 msgid "Set active" msgstr "Activer" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "" "Les emplacements sont des chemins prédéfinis pour définir les emplacements " "des chemins bien connus (ex : disque réseau)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 msgid "Configure location" msgstr "Configurer emplacement" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 msgid "Location" msgstr "Emplacement" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "Nettoyer le répertoire après dicomisation" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "Nettoyer le répertoire avant dicomisation" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 msgid "Security type" msgstr "Type de sécurité" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "Utilisateurs" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 msgid "Change Password ..." msgstr "Changement du mot de passe ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 msgid "Set main password" msgstr "Définir mot de passe principal" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 msgid "Set Password" msgstr "Définir mot de passe" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:736 msgid "Edit User" msgstr "Editer un utilisateur" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 msgid "User Name" msgstr "Nom d'utilisateur" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 msgid "Confirm Password" msgstr "Confirmez mot de passe" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 msgid "Properties" msgstr "Propriétés" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:814 #, fuzzy msgid "Edit corner annotations" msgstr "Cacher les annotations des coins" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue} where GGGG is the tag's group in hexadecimal and EEEE is the " "tag's element." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 msgid "Window/level" msgstr "Fenêtre/niveau" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "Ajout" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ..\../main/gui/history3/historytoolmenu.cpp:149 #: ..\../widgets/gui/selecciontextobase.h:58 msgid "Edit" msgstr "Editer" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 msgid "Default Window/Level" msgstr "Fenêtre/Niveau par défaut" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 #, fuzzy msgid "Corner annotations" msgstr "Cacher les annotations des coins" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 #, fuzzy msgid "Setup corner annotations" msgstr "Cacher les annotations des coins" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 #, fuzzy msgid "Setup..." msgstr "Configurer..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 msgid "Other settings" msgstr "Autre configuration" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 msgid "Interpolate pixel data" msgstr "Interpoler des données des pixels" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:885 msgid "Hanging protocol" msgstr "Protocole Hanging" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 msgid "Opening mode" msgstr "Mode d'ouverture" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 msgid "Study opening criteria" msgstr "Critère d'ouverture d'étude" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "+" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 msgid "Workspace" msgstr "Espace de travail" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 msgid "Enable/Disable" msgstr "Activer/désactiver" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 #, fuzzy msgid "Top left corner annotations" msgstr "Cacher les annotations des coins" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 msgid "Setup window" msgstr "Fenêtre de configuration" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "" "Appuyez sur le bouton de configuration et placez la fenêtre où vous voulez" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 msgid "Set default" msgstr "Définir par défaut" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 msgid "Open in main window" msgstr "Ouvrir dans la fenêtre principale" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 msgid "Setup position..." msgstr "Configurer la position..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 msgid "Setup undocked window position" msgstr "Définir la position de la fenêtre détachée" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 msgid "Layout" msgstr "Calque" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 msgid "Current layout" msgstr "Calque courant" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "Lignes" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 msgid "Columns" msgstr "Colonnes" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 msgid "Series criteria" msgstr "Critères de la série" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 msgid "Select opening mode" msgstr "Sélectionnez un mode d'ouverture" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 msgid "Tag" msgstr "Balise" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" "Définir la position et la taille de la fenêtre dans laquelle vous voulez " "ouvrir l'étude" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 msgid "Save" msgstr "Enregistrer" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 #, fuzzy msgid "Enable background queries" msgstr "Couleur d'arrière plan" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 #, fuzzy msgid "Smart retrieve" msgstr "Méthode de récupération" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 #, fuzzy msgid "Smart retrieve settings" msgstr "configuration" #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "Inactivité détectée" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.h:64 msgid "Export DICOM" msgstr "Exporter DICOM" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "Médecin référent" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 msgid "Ginkgo CADx private tags" msgstr "Balises privées Ginkgo CADx" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ..\../main/gui/history3/historypanel3.cpp:340 #: ..\../main/gui/history3/historytoolmenu.cpp:158 msgid "Export" msgstr "Exporter" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ..\../main/gui/export/parametrosprincipales.cpp:157 msgid "Select the directory where the files will be stored" msgstr "Sélectionnez le répertoire dans lequel les fichiers seront enregistrés" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" "Le répertoire sélectionné n'existe pas\n" "Voulez-vous le créer ?" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "Il y a d'autres DICOMDIR dans le chemin sélectionné" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" "Ginkgo CADx a détecté une DICOMDIR par défaut créée avec une ancienne \n" "version de Ginkgo CADx (BBDD v.%d). Que voulez-vous faire ?" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" "La DICOMDIR a été créée avec une version trop récente de Ginkgo CADx (BBDD v." "%d).\n" "Cette version est incapable de l'ouvrir." #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" "Erreur de renommage de l'ancienne DICOMDIR en _old, vérifiez que vous " "avez les permissions de faire ça" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 msgid "Select the DICOM Dir folder" msgstr "Sélectionnez un répertoire DICOMDIR" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 msgid "DICOM Dir migration" msgstr "Migration DICOMDIR" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 msgid "Migrate existing (recommended)" msgstr "Migrer l'existant (recommandé)" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" "Migrer le DICOMDIR existant. Les fichiers seront automatiquement ajouter au " "nouveau DICOMCIR. Ne pas fermer Ginkgo CADx avant que la migration ne soit " "terminée." #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "Supprimer les anciens DICOMDIR après la migration (renommage en *_old)" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 msgid "Continue..." msgstr "Continuer..." #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 msgid "Select other" msgstr "Sélectionner un autre" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" "Selectionner un autre chemin. Si ce chemin ne contient pas de DICOMDIR " "Ginkgo CADx, un nouveau sera créé. Sinon, le DICOMDIR existant sera utilisé." #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 msgid "Browse..." msgstr "Parcourir..." #: ..\../main/gui/export/parametrosprincipales.cpp:106 msgid "DICOM Export" msgstr "Export DICOM" #: ..\../main/gui/export/parametrosprincipales.cpp:110 msgid "Select the format and the images you want to export" msgstr "Sélectionner le format et les images que vous voulez exporter" #: ..\../main/gui/export/parametrosprincipales.cpp:143 #, fuzzy msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "Fichiers PEM (*.pem;*.key)|*.pem;*.key|Tout fichier (*.*)|*.*" #: ..\../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:150 #, fuzzy msgid "Select file" msgstr "Sélectionner un fichier" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "DICOM (native format)" msgstr "DICOM (format natif)" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 #, fuzzy msgid "Image (jpg, bmp, png)" msgstr "Impossible de sauvegarder l'image PNG." #: ..\../main/gui/export/pasosexportacionbase.cpp:38 #, fuzzy msgid "Export all files of opened tab" msgstr "Exportation du fichier %d sur %d" #: ..\../main/gui/export/pasosexportacionbase.cpp:55 msgid "JPEG" msgstr "JPEG" #: ..\../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "Qualité" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:40 msgid "Image Export Wizard" msgstr "Assistant d'exportation d'image" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ..\../main/gui/license/aboutdialogbase.cpp:67 #: ..\../main/gui/license/aboutdialogbase.cpp:151 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:54 msgid "&Accept" msgstr "&Accepter" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "&Suivant >" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:32 msgid "Open link" msgstr "Ouvrir lien" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:402 msgid "File link:" msgstr "Lien fichier :" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ..\../main/gui/import/pasosimportacionbase.cpp:270 msgid "Study" msgstr "Etude" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:216 msgid "User name" msgstr "Nom utilisateur" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:397 msgid "Ginkgo Cloud link" msgstr "Lien Ginkgo Cloud" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" "Vous pouvez copier et coller le lien à utiliser dans les e-mails et les " "pages web. Vous avez à installer Ginkgo CADx pour le télécharger et le " "visualiser." #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "Envoyer le lien par email" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:437 msgid "Copy to clipboard" msgstr "Copier dans le presse-papier" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "New Ginkgo Cloud study" msgstr "Nouvelle étude Ginkgo Cloud" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "To download the study, paste this url " msgstr "Pour télécharger l'étude, collez cet URL" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" "dans l'outil \"Ouvrir un lien Ginkgo Cloud\" de l'historique Ginkgo CADx, ou " "le coller dans la barre d'adresse de votre navigateur." #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 msgid "Creator" msgstr "Créateur" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 msgid "Last Modificator" msgstr "Dernier modificateur" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 msgid "Show link..." msgstr "Montrer les liens..." #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "?" #: ..\../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 msgid "Invalid link" msgstr "Lien invalide" #: ..\../main/gui/history3/historypanel3.cpp:117 #: ..\../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "Ouvrir séries" #: ..\../main/gui/history3/historypanel3.cpp:119 #: ..\../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "Ouvrir séries avec..." #: ..\../main/gui/history3/historypanel3.cpp:226 #: ..\../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "Age" #: ..\../main/gui/history3/historypanel3.cpp:228 #, fuzzy msgid "Date acquired" msgstr "date" #: ..\../main/gui/history3/historypanel3.cpp:230 #, fuzzy msgid "Date added" msgstr "date" #: ..\../main/gui/history3/historypanel3.cpp:308 #: ..\../main/gui/history3/historytoolmenu.cpp:82 #: ..\../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "Acquérir" #: ..\../main/gui/history3/historypanel3.cpp:316 #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize" msgstr "Dicomiser" #: ..\../main/gui/history3/historypanel3.cpp:363 msgid "All patients" msgstr "Tous les patients" #: ..\../main/gui/history3/historypanel3.cpp:481 msgid "Results" msgstr "Résultats" #: ..\../main/gui/history3/historypanel3.cpp:481 #, c-format msgid " (%d images)" msgstr " (%d images)" #: ..\../main/gui/history3/historypanel3.cpp:634 msgid "Open study with .." msgstr "Ouvrir l'étude avec..." #: ..\../main/gui/history3/historypanel3.cpp:663 #: ..\../main/gui/history3/historypanel3base.cpp:482 msgid "Synchronize" msgstr "Synchroniser" #: ..\../main/gui/history3/historypanel3.cpp:677 msgid "&Delete from history" msgstr "&Détruire de l'historique" #: ..\../main/gui/history3/historypanel3.cpp:686 msgid "&Clear history" msgstr "&Effacer l'historique" #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "" "Vous avez atteint le nombre maximal d'onglet ouvert. Fermez quelques onglets " "et réessayez." #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid "Unable to open modality " msgstr "Impossible d'ouvrir la modalité" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr " avec la syntaxe de transfert" #: ..\../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" "Erreur au chargement de l'étude, vérifiez la configuration du protocole " "hanging" #: ..\../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "Echec au vidage de l'historique, vous devez fermer les études ouvertes" #: ..\../main/gui/history3/historypanel3.cpp:1086 msgid "all files" msgstr "tout fichier" #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 msgid "Select at least one series" msgstr "Sélectionnez au moins une série" #: ..\../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "Vous ne pouvez supprimer les séries ouvertes" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "those series" msgstr "ces séries" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "this series" msgstr "cette série" #: ..\../main/gui/history3/historypanel3base.cpp:57 msgid "Advanced search" msgstr "Recherche avancée" #: ..\../main/gui/history3/historypanel3base.cpp:73 msgid "Acquisition date" msgstr "Date d'acquisition" #: ..\../main/gui/history3/historypanel3base.cpp:302 #: ..\../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "Confirmer la suppression" #: ..\../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "Etes-vous sûr de vouloir supprimer" #: ..\../main/gui/history3/historypanel3base.cpp:336 #: ..\../main/gui/history3/historytoolmenu.cpp:102 #: ..\../main/gui/history3/historytoolmenu.cpp:200 #: ..\../main/gui/history3/historytoolmenu.cpp:229 msgid "Remove" msgstr "Suppression" #: ..\../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "" "Choisissez la vue que vous voulez utiliser pour ouvrir ce(s) fichier(s)" #: ..\../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "Toujours utiliser cette vue pour ouvrir ces fichiers" #: ..\../main/gui/history3/historypanel3base.cpp:454 #: ..\../main/gui/history3/historypanel3base.h:187 msgid "Synchronize files" msgstr "Synchroniser les fichiers" #: ..\../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" "Il y a des fichiers à télécharger dans la base de données locale avant " "d'exécuter cette action, \n" "Voulez-vous synchroniser ces fichiers maintenant ?" #: ..\../main/gui/history3/historytablemodel.cpp:406 #: ..\../main/gui/history3/historytablemodel.cpp:418 #: ..\../main/gui/history3/historytablemodel.cpp:473 #: ..\../main/gui/history3/historytablemodel.cpp:485 #: ..\../main/gui/open/dicomdirtablemodel.cpp:105 msgid "00/00/0000 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/history3/historytoolmenu.cpp:138 msgid "Close history" msgstr "Fermer l'historique" #: ..\../main/gui/history3/historytoolmenu.cpp:139 #: ..\../main/gui/startup/startupform.cpp:53 msgid "History" msgstr "Historique" #: ..\../main/gui/history3/historytoolmenu.cpp:201 #: ..\../main/gui/history3/historytoolmenu.cpp:230 msgid "Clear history" msgstr "Effacer l'historique" #: ..\../main/gui/history3/historytoolmenu.cpp:232 msgid "Select all" msgstr "Sélectionner tout" #: ..\../main/gui/history3/historytoolmenu.cpp:233 msgid "Deselect all" msgstr "Déselectionner tout" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 msgid "Destination" msgstr "Destination" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 msgid "Status" msgstr "Statut" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 msgid "Error message" msgstr "Message d'erreur" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 msgid "Show Message" msgstr "Voir le message" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 msgid "Edit Message" msgstr "Editer le message" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 msgid "Delete message" msgstr "Détruire le message" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 msgid "Error editing message" msgstr "Erreur à l'édition du message" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 msgid "Error purguing messages" msgstr "Erreur de purge des messages" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Stop" msgstr "Arrêter" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Sent" msgstr "Envoyé" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "En attente" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/progress/statusbarprogreso.cpp:281 msgid "Warning" msgstr "Alerte" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 msgid "Error getting message" msgstr "Erreur de réception du message" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 msgid "Running" msgstr "En cours" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "Le processus de soumission est démarré et prêt à envoyer" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "Arrêté" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 msgid "Usually due to an error in sending a message" msgstr "Généralement due à une erreur dans l'envoi d'un message" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Start" msgstr "Démarré" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "Voulez-vous détruire ces messages ?" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 msgid "Error deleting messages" msgstr "Erreur à la suppression des messages" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 msgid "Remove sent messages" msgstr "Supprimer les messages envoyés" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 msgid "Exit" msgstr "Quitter" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 msgid "Messages" msgstr "Messages" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 msgid "Refresh" msgstr "Rafraichir" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1394 msgid "View" msgstr "Vue" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 msgid "Send task status:" msgstr "Statut de la tâche envoyée :" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "Activer" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 msgid "Message" msgstr "Message" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "Date :" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 msgid "Destination:" msgstr "Destination :" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 msgid "Status:" msgstr "Statut :" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 msgid "Message content:" msgstr "Contenu du message :" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:142 msgid "OK" msgstr "OK" #: ..\../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "Données d'aperçu des fichiers DICOM" #: ..\../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "Les données DICOM des fichiers à générer peuvent être remplies" #: ..\../main/gui/import/generaldata.cpp:210 msgid "" "\n" "* The patient ID is required." msgstr "" "\n" "* L'ID patient ID est requis." #: ..\../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" "\n" "* La concaténation du nom et du prénom du patient ne doivent pas dépasser 61 " "caractères." #: ..\../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" "\n" "* La taille en centimètre n'est pas correcte." #: ..\../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" "\n" "* La date de naissance du patient est ultérieur à celle de l'étude" #: ..\../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" "\n" "* Le poids est incorrect. La plage valide est entre 0 et 400 kg." #: ..\../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "" "Les erreurs suivantes ont été rencontrées lors de la validation des champs" #: ..\../main/gui/import/generaldata.cpp:231 msgid "Error validating fields" msgstr "Erreur de validation des champs" #: ..\../main/gui/import/pasoperfilimportacion.cpp:148 msgid "Selecting Import Profile" msgstr "Sélectionner le profil d'import" #: ..\../main/gui/import/pasoperfilimportacion.cpp:152 msgid "You must select the profile you want to use import" msgstr "Vous devez sélectionner le profil voulu pour utiliser l'import" #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 msgid "You must select the import profile" msgstr "Vous devez sélectionner le profil d'import" #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "Erreur inattendue, sélectionner le module encore" #: ..\../main/gui/import/pasosimportacionbase.cpp:21 msgid "Selected images" msgstr "Images sélectionnées" #: ..\../main/gui/import/pasosimportacionbase.cpp:56 msgid "Preview" msgstr "Aperçu" #: ..\../main/gui/import/pasosimportacionbase.cpp:62 msgid "Remove all" msgstr "Tout enlever" #: ..\../main/gui/import/pasosimportacionbase.cpp:113 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:65 msgid "Demographic data" msgstr "Données démographique" #: ..\../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "Identifiant *" #: ..\../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "(ID ou numéro d'historique médical)" #: ..\../main/gui/import/pasosimportacionbase.cpp:159 #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "Birth date" msgstr "Date de naissance" #: ..\../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "Nom de famille" #: ..\../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "Genre" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "Mâle" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "Femelle" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "Autres" #: ..\../main/gui/import/pasosimportacionbase.cpp:217 msgid "Study Details" msgstr "Détails de l'étude" #: ..\../main/gui/import/pasosimportacionbase.cpp:234 #: ..\../wx/gnkinforme/gnkinformebase.cpp:122 msgid "Weight" msgstr "Poids" #: ..\../main/gui/import/pasosimportacionbase.cpp:245 msgid "Kg" msgstr "kg" #: ..\../main/gui/import/pasosimportacionbase.cpp:252 #: ..\../wx/gnkinforme/gnkinformebase.cpp:119 msgid "Height" msgstr "Taille" #: ..\../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "cm" #: ..\../main/gui/import/pasosimportacionbase.cpp:291 #: ..\../main/gui/import/pasosimportacionbase.cpp:333 msgid "Time" msgstr "Temps" #: ..\../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "Le chemin de l'emplacement n'existe pas" #: ..\../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|Images JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|Images BMP (*." "bmp)|*.bmp|Images PNG (*.png)|*.png|Images TIFF (*.tif;*.tiff)|*.tif;*.tiff|" "Documents PDF (*.pdf)|*.pdf|Tout fichier(*.*)|*.*" #: ..\../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|Images " "JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|Images BMP (*.bmp)|*.bmp;*BMP|" "Images PNG (*.png)|*.png;*PNG|Images TIFF (*.tif;*.tiff)|*.tif;*.tiff;*TIF;" "*TIFF|Documents PDF (*.pdf;*.PDF)|*.PDF;*.pdf|Tout fichier (*.*)|*.*" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files..." msgstr "Sélectionner des fichiers..." #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "Sélectionner des fichiers du système de fichier" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste" msgstr "Coller" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste from clipboard" msgstr "Coller du blocnote" #: ..\../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "Retour" #: ..\../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "Etes-vous sûr de détruire ce fichier du disque ?" #: ..\../main/gui/import/selectimagesimportation.cpp:330 msgid "Delete selected items" msgstr "Détruire les articles sélectionnés" #: ..\../main/gui/import/selectimagesimportation.cpp:342 msgid "You must select an image" msgstr "Vous devez sélectionner une image" #: ..\../main/gui/import/selectimagesimportation.cpp:346 msgid "Generating preview..." msgstr "Génération d'un aperçu..." #: ..\../main/gui/import/selectimagesimportation.cpp:500 msgid "Select images" msgstr "Sélection d'images" #: ..\../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "Création de miniatures..." #: ..\../main/gui/import/selectimagesimportation.cpp:715 msgid "Image selection" msgstr "Sélection d'image" #: ..\../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "Vous devez sélection les images que vous voulez importer" #: ..\../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "Vous devez sélectionner au moins une image" #: ..\../main/gui/import/selectimagesimportation.cpp:760 msgid "The file" msgstr "Le fichier" #: ..\../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr "n'existe pas" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:52 msgid "Image Import Wizard" msgstr "Assistant d'import d'image" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "Le module demandé ne support pas l'import" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "Il n'y a aucun module enregistré avec le support de l'import" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "Il n'y a aucun module avec le support de l'import" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "Le module demandé n'est pas enregistré" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "Le module demandé n'est pas enregistré" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:167 msgid "free of" msgstr "de libre sur" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:181 msgid "in dicomization dir." msgstr "dans le répertoire de dicomisation." #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "Êtes-vous sûr de vouloir annuler l'import ?" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, c-format msgid "Step %d of %d: " msgstr "Étape %d sur %d : " #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "&Finir" #: ..\../main/gui/license/aboutdialog.cpp:25 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About" msgstr "A propos de" #: ..\../main/gui/license/aboutdialogbase.cpp:22 msgid "Ginkgo CADx" msgstr "Ginkgo CADx" #: ..\../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "Crédits" #: ..\../main/gui/license/aboutdialogbase.cpp:55 msgid "Licenses" msgstr "Licences" #: ..\../main/gui/license/aboutdialogbase.cpp:58 #, fuzzy msgid "UPDATE_INFO" msgstr "Info" #: ..\../main/gui/license/aboutdialogbase.cpp:108 #: ..\../main/gui/license/aboutdialogbase.h:88 msgid "Open Source Licenses" msgstr "Licences Open Source" #: ..\../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "Cairo" #: ..\../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "DCMTK" #: ..\../main/gui/license/aboutdialogbase.cpp:119 msgid "FamFamFam Icons" msgstr "Icônes FamFamFam" #: ..\../main/gui/license/aboutdialogbase.cpp:120 msgid "Fugue Icons" msgstr "Icônes Fugue" #: ..\../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "ITK" #: ..\../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "LibJpeg" #: ..\../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "LibPng" #: ..\../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "OpenSSL" #: ..\../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "VTK" #: ..\../main/gui/license/aboutdialogbase.cpp:126 msgid "WxWidgets" msgstr "WxWidgets" #: ..\../main/gui/license/aboutdialogbase.cpp:127 msgid "Zlib" msgstr "Zlib" #: ..\../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "SQLite" #: ..\../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "CharLS" #: ..\../main/gui/license/aboutdialogbase.cpp:130 msgid "Dark Glass Icons" msgstr "Icônes Dark Glass" #: ..\../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "Libcurl" #: ..\../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "JsonCpp" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:23 #: ..\../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "Accord de licence" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" "Si vous acceptez les termes de l'agrément, cliquez sur \"J'accepte la licence" "\" pour continuer. Vous devez accepter la licence pour commencer à utiliser " "Ginkgo CADx." #: ..\../main/gui/license/acceptlicensedialogbase.cpp:53 msgid "Check for updates automatically" msgstr "Vérifier les mises à jour automatiquement" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:66 msgid "I Accept the license" msgstr "J'accepte la licence" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "Je n'accepte PAS la licence" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Save logs" msgstr "Enregistrer journaux" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "Fichier journal (*.log) | *.log | Fichier texte (*.txt) | *.txt" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 msgid "File couldn't be stored " msgstr "Le fichier n'a pu être enregistré" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 msgid "Could not write to file" msgstr "Impossible d'écrire dans le fichier" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 msgid "Save log..." msgstr "Enregistrer journal..." #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 msgid "Clear log" msgstr "Effacer journal" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 msgid "Log" msgstr "Journal" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "Effacer" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "" #: ..\../main/gui/login/dialogologin.cpp:50 msgid "The username or password is incorrect" msgstr "Le nom d'utilisateur ou le mot de passe est incorrect" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:250 msgid "Tasks" msgstr "Tâches" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1139 msgid "Included in the history ..." msgstr "Ajout dans l'historique..." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "" "Il n'y a pas d'URL pour vérifier les mises à jour dans la configuration " "actuelle." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "Check update error" msgstr "Vérifier les erreurs de mise à jour" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "" "Erreur d'analyse sémantique/syntaxique de l'URL d'intégration (voir les " "journaux pour les détails) :\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 msgid "Malformed XML" msgstr "XML mal formé" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1192 msgid "Error in interpreting the parameters of the command line. (" msgstr "Erreur dans l'interprétation des paramètres de la ligne de commande. (" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "" "Erreur d'analyse sémantique/syntaxique de l'XML d'intégration (voir les " "journaux pour les détails) :\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 msgid "Error parsing integration XML:\n" msgstr "Erreur d'analyse de l'XML d'intégration :\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 msgid "PACS error:\n" msgstr "Erreur du PACS :\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 msgid "Error executing WorkFlow\n" msgstr "Erreur à l'exécution du workflow\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" "Error executing WorkFlow\n" "Erreur interne" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 msgid "Close current view" msgstr "Fermer la vue actuelle" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all" msgstr "Tout fermer" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all views" msgstr "Fermer toutes les vues" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "&Quitter" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "Exit application" msgstr "Quitter l'application" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "Plein écran" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Show full screen" msgstr "Voir en plein écran" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1302 msgid "Tab grouping" msgstr "Grouper les onglets" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1329 msgid "Ginkgo CADx manual ..." msgstr "Manuel Ginkgo CADx ..." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1330 msgid "Open test card" msgstr "Ouvrir une carte de test" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "Vérifier les mises à jour" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for newest versions" msgstr "Vérifier les nouvelles versions" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1332 msgid "Need support ..." msgstr "Besoin de support ..." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About " msgstr "A propos de" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 msgid "HL7 monitor" msgstr "Moniteur HL7" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 msgid "HL7 message control" msgstr "Contrôle des messages HL7" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 msgid "Log monitor" msgstr "Moniteur de journaux" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 msgid "Log monitored" msgstr "Journaux monitoré" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1390 msgid "&File" msgstr "&Fichier" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "&Edition" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "&Aide" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "Erreur au chargement de l'historique, Ginkgo CADx va être fermé" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "Mosaïque" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "Voulez-vous sauvegarder les changements dans l'étude :" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1664 msgid "Unsaved data" msgstr "Données non sauvegardées" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "" "Des erreurs ont été rencontrées à la sauvegarde de la série.\n" "Voulez-vous continuer la fermeture ? " #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "Error saving" msgstr "Erreur d'enregistrement" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "Full Screen" msgstr "Plein écran" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "View Full Screen" msgstr "Voir en plein écran" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1708 msgid "Tab Regroup" msgstr "Regrouper les onglets" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "&Fermer" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "&Close all" msgstr "&Tout fermer" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "Close all windows" msgstr "Fermer toutes les fenêtres" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1728 msgid "Tabbed organization" msgstr "Organisation des onglets" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "Il n'y a pas de nouvelle version de Ginkgo CADx actuellement." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "Ginkgo CADx updated" msgstr "Ginkgo CADx mis à jour" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1782 msgid "New version available (" msgstr "Nouvelle version disponible (" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "Erreur interne pendant le processus d'authentification" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:29 msgid "New Update" msgstr "Nouvelle mise à jour" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:34 msgid "New version available" msgstr "Nouvelle version disponible" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "Ne plus m'avertir à propos de cette mise à jour" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:43 msgid "X" msgstr "X" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:45 msgid "Close this notification" msgstr "Fermer la notification" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:104 msgid "The following commands will be aborted if you close the application" msgstr "" "Les commandes suivantes seront abandonnées si vous fermez l'application" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:131 msgid "Close Ginkgo CADx" msgstr "Fermer Ginkgo CADx" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "Fermer l'application et abandonner les commandes en attente" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "Ne pas fermer l'application et laisser les commandes tourner" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:138 msgid "User login" msgstr "Identifiant utilisateur" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:202 msgid "System authentication" msgstr "Authentification système" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:260 msgid "Login" msgstr "Identifiant" #: ..\../main/gui/open/abrir.cpp:80 ..\../main/gui/open/abrir.cpp:82 msgid "Open..." msgstr "Ouvrir..." #: ..\../main/gui/open/opendialogs.cpp:58 #, fuzzy msgid "There was an error reading DICOMDIR file" msgstr "Lecture du DICOMDIR" #: ..\../main/gui/open/opendialogs.cpp:62 msgid "Select a valid DICOMDIR file" msgstr "Sélectionnez un fichier DICOMDIR valide" #: ..\../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "Sélectionner le fichier DICOMDIR que vous voulez acquérir" #: ..\../main/gui/open/opendialogs.cpp:180 #: ..\../main/gui/open/opendialogsbase.cpp:170 #: ..\../main/gui/open/opendialogsbase.h:112 msgid "Copy or link" msgstr "Copier ou lier" #: ..\../main/gui/open/opendialogsbase.cpp:22 #: ..\../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "Acquérir DICOMDIR" #: ..\../main/gui/open/opendialogsbase.cpp:94 #: ..\../main/gui/open/opendialogsbase.h:85 msgid "Select drive" msgstr "Choisir un lecteur" #: ..\../main/gui/open/opendialogsbase.cpp:175 msgid "Do you want to copy or link files?" msgstr "Voulez-vous copier ou lier les fichiers ?" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ..\../main/gui/selectpacsserver/selectpacsserver.cpp:30 msgid "There aren't any PACS configured" msgstr "Il n'y a pas de PACS configuré" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:69 msgid "0000/00/00 00:00:00" msgstr "0000/00/00 00:00:00" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.h:57 msgid "Upload study" msgstr "Envoyer étude" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 msgid "Select PACS server" msgstr "Choisir un serveur PACS" #: ..\../main/gui/paneltags/paneltags.cpp:119 msgid "Metadata" msgstr "Metadata" #: ..\../main/gui/paneltags/paneltags.cpp:120 msgid "Identification information" msgstr "Information d'identification" #: ..\../main/gui/paneltags/paneltags.cpp:121 msgid "Patient information" msgstr "Information patient" #: ..\../main/gui/paneltags/paneltags.cpp:122 msgid "Acquisition information" msgstr "Information d'acquisition" #: ..\../main/gui/paneltags/paneltags.cpp:123 msgid "Relationship information" msgstr "Information de relation" #: ..\../main/gui/paneltags/paneltags.cpp:124 msgid "Image presentation information" msgstr "Information de présentation d'image" #: ..\../main/gui/paneltags/paneltags.cpp:125 ..\../widgets/wtextbox.cpp:525 msgid "Text" msgstr "Texte" #: ..\../main/gui/paneltags/paneltags.cpp:126 msgid "Other" msgstr "Autre" #: ..\../main/gui/paneltags/paneltags.cpp:137 #: ..\../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "Donnée" #: ..\../main/gui/previewpanel/previewpanel.cpp:47 msgid "Hide" msgstr "Cacher" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:187 #: ..\../main/gui/previewpanel/previewpanelbase.cpp:207 msgid "Previews" msgstr "Aperçu" #: ..\../main/gui/progress/progresobase.cpp:23 msgid "There is no running tasks" msgstr "Il n'y a pas de tâche en cours" #: ..\../main/gui/progress/statusbarprogreso.cpp:165 msgid "0 running tasks." msgstr "0 tâche en cours." #: ..\../main/gui/progress/statusbarprogreso.cpp:192 #, c-format msgid "There are %d pending tasks" msgstr "Il y a %d tâche en attente" #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.h:55 msgid "Select PACS" msgstr "Sélectionner PACS" #: ..\../main/gui/startup/startupformbase.cpp:29 msgid "http://ginkgo-cadx.com" msgstr "http://ginkgo-cadx.com" #: ..\../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:47 #, fuzzy msgid "Ginkgo CADx Pro" msgstr "doc\\manual_ginkgo_cadx_pro_en.pdf" #: ..\../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "Propulsé par" #: ..\../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "MetaEmotion Healthcare" #: ..\../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "Page de démarrage" #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete Widget" msgstr "Détruire widget" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Properties ..." msgstr "Propriétés ..." #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Widget Properties" msgstr "Propriétés du widget" #: ..\../main/tools/addfiletohistorytool.cpp:114 msgid "Open file" msgstr "Ouvrir fichier" #: ..\../main/tools/addfiletohistorytool.cpp:115 #: ..\../main/tools/openfoldertool.cpp:27 msgid "Open folder" msgstr "Ouvrir répertoire" #: ..\../main/tools/addfiletohistorytool.cpp:116 #: ..\../main/tools/openremovabletool.cpp:28 msgid "Open removable unit" msgstr "Ouvrir un support amovible" #: ..\../main/tools/addfiletohistorytool.cpp:117 #: ..\../main/tools/openginkgocloudlinktool.cpp:27 msgid "Open Ginkgo Cloud link" msgstr "Ouvrir un lien Ginkgo Cloud" #: ..\../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "Angle normal (3 points)" #: ..\../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "Angle Cobb (2 lignes droites)" #: ..\../main/tools/colormaptool.cpp:110 msgid "Invert color map" msgstr "Inverser les couleurs" #: ..\../main/tools/cornerannotationstool.cpp:44 msgid "Hide corner annotations" msgstr "Cacher les annotations des coins" #: ..\../main/tools/cornerannotationstool.cpp:46 msgid "Show corner annotations" msgstr "Afficher les annotations dans les coins" #: ..\../main/tools/detachwindowtool.cpp:42 msgid "Attach View" msgstr "Attacher la vue" #: ..\../main/tools/detachwindowtool.cpp:44 msgid "Detach view" msgstr "Détacher la vue" #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize files" msgstr "Dicomiser des fichiers" #: ..\../main/tools/exportdicomdirtool.cpp:32 msgid "Export to DICOM Dir" msgstr "Exporter vers la DICOM Dir" #: ..\../main/tools/markertool.cpp:171 msgid "Point" msgstr "Point" #: ..\../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "Flèche" #: ..\../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "Ellipse" #: ..\../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "Trapèze" #: ..\../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "Polygone" #: ..\../main/tools/markertool.cpp:176 #, fuzzy msgid "Free form" msgstr "de libre sur" #: ..\../main/tools/metricgridtool.cpp:57 msgid "Grid" msgstr "Grille" #: ..\../main/tools/metricgridtool.cpp:67 msgid "Grid Scale" msgstr "Grille de mesure" #: ..\../main/tools/metricgridtool.cpp:74 msgid "Scale X" msgstr "Echelle X" #: ..\../main/tools/metricgridtool.cpp:78 msgid "X axis scale" msgstr "Échelle de l'axe X" #: ..\../main/tools/metricgridtool.cpp:87 msgid "Scale Y" msgstr "Echelle Y" #: ..\../main/tools/metricgridtool.cpp:91 msgid "Y axis scale" msgstr "Échelle de l'axe Y" #: ..\../main/tools/metricgridtool.cpp:206 msgid "Show grid" msgstr "Afficher la grille" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "Configurer la grille ..." #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "Configurer la grille" #: ..\../main/tools/metricgridtool.cpp:250 msgid "Hide Grid" msgstr "Cacher la grille" #: ..\../main/tools/metricgridtool.cpp:252 msgid "Show Grid" msgstr "Afficher la grille" #: ..\../main/tools/openfiletool.cpp:28 msgid "Open File" msgstr "Ouvrir fichier" #: ..\../main/tools/pacsuploadtool.cpp:54 msgid "Send to PACS..." msgstr "Envoyer au PACS..." #: ..\../main/tools/pixelsbluringtool.cpp:59 msgid "Unset pixels blurring" msgstr "Désactiver pixels flous" #: ..\../main/tools/pixelsbluringtool.cpp:61 msgid "Set pixels blurring" msgstr "Activer pixels flous" #: ..\../main/tools/queryretrievehistorytool.cpp:25 msgid "PACS Q/R" msgstr "I/O PACS" #: ..\../main/tools/queryretrievetool.cpp:94 #: ..\../main/tools/searchginkgocloudhistorytool.cpp:28 msgid "Search Ginkgo Cloud" msgstr "Rechercher dans Ginkgo Cloud" #: ..\../main/tools/rotateandfliptool.cpp:151 msgid "Undo rotate and flip" msgstr "Annuler rotation/flip" #: ..\../main/tools/rotateandfliptool.cpp:153 #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "Rotation 90" #: ..\../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "sens antihoraire" #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "sens horaire" #: ..\../main/tools/rotateandfliptool.cpp:156 msgid "Flip horizontal" msgstr "Flip horizontal" #: ..\../main/tools/rotateandfliptool.cpp:157 msgid "Flip vertical" msgstr "Flip vertical" #: ..\../main/tools/sendpacstool.cpp:34 msgid "Send to PACS" msgstr "Envoi au PACS" #: ..\../main/tools/sendpacstool.cpp:70 msgid "Sending to PACS..." msgstr "Envoi au PACS..." #: ..\../main/tools/showtagstool.cpp:42 msgid "Hide DICOM inspector" msgstr "Cacher l'inspecteur DICOM" #: ..\../main/tools/showtagstool.cpp:44 msgid "Show DICOM inspector" msgstr "Afficher l'inspecteur DICOM" #: ..\../main/tools/simpleprinttool.cpp:119 #, fuzzy msgid "Image printing" msgstr "Impression en cours" #: ..\../main/tools/simpleprinttool.cpp:224 #, fuzzy msgid "Page setup" msgstr "Mise en page" #: ..\../main/tools/simpleprinttool.cpp:225 #, fuzzy msgid "Print preview" msgstr "Aperçu avant impression" #: ..\../main/tools/simpleprinttool.cpp:272 #, fuzzy msgid "Print image" msgstr "&Imprimer" #: ..\../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "Autocalculer" #: ..\../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "Réinitialiser la taille de la résolution d'affichage" #: ..\../main/tools/undotool.cpp:110 msgid "Redo" msgstr "Refaire" #: ..\../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "Désactiver boucle" #: ..\../main/tools/videotool.cpp:153 msgid "Enable loop" msgstr "Activer boucle" #: ..\../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "%.1f fps" #: ..\../main/tools/windowlayouttool.cpp:267 msgid "Add column" msgstr "Ajouter une colonne" #: ..\../main/tools/windowlayouttool.cpp:268 msgid "Add row" msgstr "Ajouter une ligne" #: ..\../main/tools/windowlayouttool.cpp:270 msgid "Remove column" msgstr "Supprimer une colonne" #: ..\../main/tools/windowlayouttool.cpp:271 msgid "Remove row" msgstr "Supprimer une ligne" #: ..\../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "Mise en page 1x1" #: ..\../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "Mise en page 1x2" #: ..\../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "Mise en page 2x1" #: ..\../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "Mise en page 2x2" #: ..\../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "Mise en page 3x3" #: ..\../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "Mise en page 4x4" #: ..\../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "Outil de module toujours enregistré quand ToolsRegistry est défini" #: ..\../main/toolsystem/toolsregistry.cpp:82 msgid "The tool is already registered" msgstr "L'outil est déjà enregistré" #: ..\../main/toolsystem/toolsregistry.cpp:187 msgid "The module " msgstr "Le module" #: ..\../resources/ginkgoresourcesmanager.cpp:49 msgid "Unable to load PNG bitmap resource" msgstr "Impossible de charger la ressource bitmap PNG" #: ..\../resources/ginkgoresourcesmanager.cpp:56 msgid "Unable to load PNG image resource" msgstr "Impossible de charger la ressource image PNG" #: ..\../resources/ginkgoresourcesmanager.cpp:63 msgid "Unable to load GIF animation resource" msgstr "Impossible de charger l'animation GIF" #: ..\../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "La valeur de calibrage doit être un nombre décimal" #: ..\../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "La valeur de calibrage est trop basse" #: ..\../widgets/gui/calibracion.cpp:219 msgid "Enter the calibration value" msgstr "Entrez la valeur de calibrage" #: ..\../widgets/gui/calibracion.cpp:225 msgid "The calibration value is too low" msgstr "La valeur du calibrage est trop faible" #: ..\../widgets/gui/calibracion.cpp:229 msgid "The calibration value is too high" msgstr "La valeur du calibrage est trop haute" #: ..\../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "Calibrage..." #: ..\../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "Mesure réelle" #: ..\../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "Distance" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "Microns" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "Millimètres" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "Centimètres" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "Mètres" #: ..\../widgets/gui/selecciontextobase.cpp:26 msgid "Note" msgstr "Note" #: ..\../widgets/wangulo.cpp:1101 ..\../widgets/wangulo.cpp:1103 msgid "Type" msgstr "Type" #: ..\../widgets/wangulo.cpp:1101 msgid "Normal" msgstr "Normal" #: ..\../widgets/wangulo.cpp:1103 msgid "Cobb" msgstr "Cobb" #: ..\../widgets/welipse.cpp:721 ..\../widgets/wfreeform.cpp:470 #: ..\../widgets/wpolygon.cpp:574 msgid "Center (I)" msgstr "Centre (I)" #: ..\../widgets/welipse.cpp:727 ..\../widgets/wfreeform.cpp:476 #: ..\../widgets/wpolygon.cpp:580 msgid "Center (M)" msgstr "Centre (M)" #: ..\../widgets/welipse.cpp:762 ..\../widgets/welipse.cpp:766 msgid "Greater Radius" msgstr "Grand rayon" #: ..\../widgets/welipse.cpp:763 ..\../widgets/welipse.cpp:767 msgid "Lower Radius" msgstr "Petit rayon" #: ..\../widgets/wfreeform.cpp:482 ..\../widgets/wpolygon.cpp:586 msgid "Number of Vertex" msgstr "Nombre de Vertex" #: ..\../widgets/wpunto.cpp:353 msgid "Position (I)" msgstr "Position (I)" #: ..\../widgets/wpunto.cpp:358 msgid "Position (M)" msgstr "Position (M)" #: ..\../widgets/wrule.cpp:558 msgid "Image Calibration" msgstr "Calibrage Image" #: ..\../widgets/wrule.cpp:663 msgid "Length" msgstr "Longueur" #: ..\../widgets/wrule.cpp:668 msgid "Points (I)" msgstr "Points (I)" #: ..\../widgets/wrule.cpp:675 msgid "Points (M)" msgstr "Points (M)" #: ..\../widgets/wtextbox.cpp:445 msgid "Default text" msgstr "Texte par défaut" #: ..\../wx/gnkinforme/gnkinformebase.cpp:41 msgid "Commit date" msgstr "Date d'engagement" #: ..\../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "INCONNU" #: ..\../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "%d/%m/%Y" #: ..\../wx/gnkinforme/gnkinformebase.cpp:214 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "Engagé" #: ..\../wx/gnkinforme/gnkinformebase.cpp:219 msgid "Modified" msgstr "Modifié" #: ..\../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "Non engagé" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "644654645" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:130 #, fuzzy msgid "Commit inform" msgstr "Date d'engagement" #: ..\../wx/propiedades/wxpropiedades.cpp:30 msgid "Properties of " msgstr "Propriétés de" #: ..\../wx/propiedades/wxpropiedadesbase.cpp:31 msgid "Widget's Name" msgstr "Nom du widget" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "< &Précédent" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "&Annuler" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3701 msgid "Regular expression invalid: '" msgstr "Expression régulière invalide : '" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "REGEXP appelée avec un mauvais nombre d'arguments : %d au lieu de 2." #: ..\../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" "Erreur logique : l'étude n'est pas associée avec un patient existant dans le " "modèle" #: ..\../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" "Erreur logique : la série n'est pas associée avec un patient existant dans " "le modèle" #: ..\../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" "Erreur logique : l'image n'est pas associée avec un patient existant dans le " "modèle" #: ..\../commands/dialogopathssobreescribirbase.h:56 msgid "Overwrite Paths" msgstr "Écraser chemins" #: ..\../ginkgopro/ginkgo_pro_defines.h:21 msgid "Professional DICOM CADx environment" msgstr "Environnement DICOM CADx Professionnel" #: ..\../main/controllers/dcmtk/dicomservers.h:39 msgid "Server not found" msgstr "Serveur non trouvé" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:99 msgid "DICOM Query/Retrieve" msgstr "Requête/Récupération DICOM" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:123 msgid "Not found" msgstr "Non trouvé" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:418 msgid "Advanced Settings" msgstr "Configuration avancée" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:570 msgid "Edit profile" msgstr "Editer le profil" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:665 msgid "Add/Edit Location" msgstr "Ajout/Modification d'emplacement" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:784 msgid "Add window/level" msgstr "Ajout d'une fenêtre/d'un niveau" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 msgid "Add tag" msgstr "Ajout d'un tag" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 msgid "Setup window position" msgstr "Définir position de la fenêtre" #: ..\../main/gui/countdownmessage/countdownmessagebase.h:61 msgid "Closing" msgstr "Fermeture" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 msgid "DICOM Dir configuration" msgstr "Configuration DICOM Dir" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:70 msgid "Open Ginkgo Cloud" msgstr "Ouvrir Ginkgo Cloud" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:123 msgid "Ginkgo Cloud search" msgstr "Recherche Ginkgo Cloud" #: ..\../main/gui/history3/confirmdeletedialog.h:24 msgid " from History?" msgstr " de l'historique ?" #: ..\../main/gui/history3/historypanel3base.h:100 msgid "Medical history" msgstr "Historique médical" #: ..\../main/gui/history3/historypanel3base.h:161 msgid "Open With ..." msgstr "Ouvrir avec ..." #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Select a View" msgstr "Sélectionner une vue" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 msgid "Message detail" msgstr "Détail du message" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 msgid "Log node" msgstr "Nœud journal" #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:87 msgid "Closing Ginkgo CADx" msgstr "Fermeture de Ginkgo CADx" #: ..\../main/gui/paneltags/paneltagsbase.h:57 msgid "DICOM Inspector" msgstr "Inspecteur DICOM" #: ..\../main/license.h:31 msgid "Open Source DICOM CADx environment" msgstr "Environnement DICOM CADx OpenSource" #: ..\../widgets/gui/calibracionbase.h:65 msgid "Calibration" msgstr "Calibrage" #: ..\../wx/propiedades/wxpropiedadesbase.h:62 msgid "Properties of ..." msgstr "Propriétés de ..." #: ..\../wx/thumbnailctrl/thumbnailwidget.h:44 msgid "Image Browser Dialog" msgstr "Explorateur d'image" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.h:60 msgid "Test title" msgstr "Titre test" #~ msgid "Checking program updates..." #~ msgstr "Vérification des mises à jour du programme..." #~ msgid "" #~ "Unexpected Error exporting, the view is not allowed to export to the " #~ "format selected" #~ msgstr "" #~ "Erreur inattendue à l'export : la vue n'est pas autorisée à exporter vers " #~ "le format sélectionné" #~ msgid "Failed to store the file, check permissions on the directory" #~ msgstr "" #~ "Echec à l'enregistrement du fichier, vérifiez les permissions du " #~ "répertoire" #~ msgid "The key files will not be exported" #~ msgstr "Les fichiers clefs ne seront pas exportés" #~ msgid "Subsystem integration error: uninitialized result data container." #~ msgstr "" #~ "Erreur du sous-système d'intégration : conteneur de données de résultat " #~ "non initialisé." #~ msgid "Show / Hide DICOM tags panel" #~ msgstr "Montrer / Cacher le panel de balise DICOM" #~ msgid "%d{%Y/%m/%d %H:%M:%S.%q} [%t] %-5p %c %x - %m%n" #~ msgstr "%d{%Y/%m/%d %H:%M:%S.%q} [%t] %-5p %c %x - %m%n" #~ msgid "You have to specify at least uid series" #~ msgstr "Vous devez spécifier au moins l'uid de série" #~ msgid "You have to specify uid series" #~ msgstr "Vous devez spécifier l'uid de série" #~ msgid "Untitled" #~ msgstr "Sans titre" #~ msgid "UID" #~ msgstr "UID" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">" #~ msgstr ">" #~ msgid "<" #~ msgstr "<" #~ msgid "<<" #~ msgstr "<<" #~ msgid "Patient's Id" #~ msgstr "Id Patient" #~ msgid "You are not allowed to download this kind of modalities (" #~ msgstr "Vous n'êtes pas autorisé à télécharger ce genre de modalité (" #~ msgid "Searching..." #~ msgstr "Recherche..." #~ msgid "unknown column" #~ msgstr "Colonne inconnue" #~ msgid "Updates" #~ msgstr "Mises à jour" #~ msgid "Visualization" #~ msgstr "Visualisation" #~ msgid "Current" #~ msgstr "Courant" #~ msgid "All" #~ msgstr "Tout" #~ msgid "JPG" #~ msgstr "JPG" #~ msgid "BMP" #~ msgstr "BMP" #~ msgid "PNG" #~ msgstr "PNG" #~ msgid "Content" #~ msgstr "Contenu" #~ msgid "Include annotation Widgets" #~ msgstr "Ajout de Widgets d'annotation" #~ msgid "Evaluation maps" #~ msgstr "Cartes d'évaluation" #~ msgid "URL" #~ msgstr "URL" #~ msgid "BucketId" #~ msgstr "BucketId" #~ msgid "Pending tasks" #~ msgstr "Tâches en attente" #~ msgid "Restart pending tasks" #~ msgstr "Redémarrer les tâches en attente." #~ msgid "Remove pending tasks" #~ msgstr "Supprimer les tâches en attente" #~ msgid "Advanced tasks management..." #~ msgstr "Gestion des tâches avancées..." #~ msgid "You can't remove series with pending tasks, cancel tasks and retry" #~ msgstr "" #~ "Vous ne pouvez pas supprimer une série qui a des tâches en attente. " #~ "Annulez ces tâches et réessayez." #~ msgid "Are you sure you want to delete task?" #~ msgstr "Êtes-vous sûr de vouloir détruire ces tâches ?" #~ msgid "Delete tasks" #~ msgstr "Détruire les tâches" #~ msgid "Sort by" #~ msgstr "Trier par" #~ msgid "Pateint id" #~ msgstr "ID du patient" #~ msgid "Horizontal mosaic" #~ msgstr "Mosaïque horizontale" #~ msgid "Vertical mosaic" #~ msgstr "Mosaïque verticale" #~ msgid "Grid (two columns)" #~ msgstr "Grille (deux colonnes)" #~ msgid "Grid (three columns)" #~ msgstr "Grilles (trois colonnes)" #~ msgid "Grid organization" #~ msgstr "Organisation de la grille" #~ msgid "Include Annotations" #~ msgstr "Ajouter des annotations" #~ msgid "Evaluation Maps" #~ msgstr "Cartes d'évaluation" #~ msgid "Zoom" #~ msgstr "Zoom" #~ msgid "Options" #~ msgstr "Options" #~ msgid "Images per sheet" #~ msgstr "Images par tableau" #~ msgid "Print ..." #~ msgstr "Imprimer ..." #~ msgid "Completed" #~ msgstr "Terminé" #~ msgid "Delete task" #~ msgstr "Détruire tâche" #~ msgid "Restart task" #~ msgstr "Redémarrer tâche" #~ msgid "Delete all" #~ msgstr "Détruite tout" #~ msgid "Are you sure you want to delete tasks?" #~ msgstr "Êtes-vous sûr de vouloir détruire cette tâche ?" #~ msgid "ID" #~ msgstr "ID" #~ msgid "Show metadatada" #~ msgstr "Montrer metadata" #~ msgid "Vertex (I)" #~ msgstr "Sommet (I)" #~ msgid "Vertex (M)" #~ msgstr "Sommet (M)" #~ msgid "Center" #~ msgstr "Centre" #~ msgid "Color" #~ msgstr "Couleur" #~ msgid "Point Size" #~ msgstr "Taille du point" #~ msgid "Family" #~ msgstr "Famille" #~ msgid "Underline" #~ msgstr "Souligné" #~ msgid "Make a selection:" #~ msgstr "Faire une sélection :" #~ msgid "Categorized Mode" #~ msgstr "Mode catégorie" #~ msgid "Alphabetic Mode" #~ msgstr "Mode alphabétique" #~ msgid "False" #~ msgstr "Faux" #~ msgid "True" #~ msgstr "Vrai" #~ msgid "Unspecified" #~ msgstr "Non spécifié" #~ msgid "" #~ "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", " #~ "NOT \"%s\"." #~ msgstr "" #~ "Echec de l'opération \"%s\" : La propriété étiquette \"%s\" est de type " #~ "\"%s\", ET PAS \"%s\"." #~ msgid "Error in resource: %s" #~ msgstr "Erreur à la ressource : %s" #~ msgid "Value must be %lld or higher" #~ msgstr "La valeur doit être au moins %lld " #~ msgid "Value must be %llu or higher" #~ msgstr "La valeur doit être au moins %llu" #~ msgid "Value must be %llu or less" #~ msgstr "La valeur doit être au plus %llu " #~ msgid "Value must be %f or higher" #~ msgstr "La valeur doit être au moins %f" #~ msgid "Value must be %f or less" #~ msgstr "La valeur doit être au plus %f" #~ msgid "Not %s" #~ msgstr "Pas %s" #~ msgid "Choose a directory:" #~ msgstr "Choisissez un répertoire :" #~ msgid "Choose a file" #~ msgstr "Choisissez un fichier" #~ msgid "All files (*.*)|*.*" #~ msgstr "Tout fichier (*.*)|*.*" #~ msgid "Update" #~ msgstr "Mise à jour" #~ msgid "Up" #~ msgstr "Haut" #~ msgid "Down" #~ msgstr "Bas" #~ msgid "Page %i" #~ msgstr "Page %i" #~ msgid "Configure proxy" #~ msgstr "Configuration proxy" #~ msgid "Use system settings" #~ msgstr "Utilisation de la configuration système" #~ msgid "Manual configuration of proxy:" #~ msgstr "Configuration manuelle du proxy :" #~ msgid "Host:" #~ msgstr "Host :" #~ msgid "Port:" #~ msgstr "Port :" #~ msgid "Password:" #~ msgstr "Mot de passe :" #~ msgid "Authenticate" #~ msgstr "Authentification" ginkgocadx-3.8.7/cadxcore/lang/fr/wxstd.mo000066400000000000000000004107531314736454600205240ustar00rootroot000000000000005j?ю?ӎ$5GKTZbiď  $ /:CR a,l  Ґݐ   17?HM\dlu{ Ñё  "1:@FNUem s  ĒҒؒ  #.4: ANSYnw| Ɠʓӓ   ( 8 EO c my”ɔєה   0=CRZcluz  ɕҕڕ4$J!o*/Ԗ: ?`dk r ŗɗ͗ї ՗   /9Pbu} Ϙ՘ۘ#/>Qf3h56ҙ !9P` vʚ'BYv֛"+ 4@Db4x.ܜ   (,>N bm6}ʝ"ϝ": P\bi} О; Yzɟ!%"Gj-1( 1CXr ˡ֡ݡ  )C]w0¢  )6`ɣ%#"2*U(&%Ф%"9?\1ҥ %?$W!|G((G-p%3ħ -1_u %̨/)Mw ̩)'Hp"Ǫ֪ < CP Xcu B'!$+Fr"Ѭ&#)8$b& խ 318NT"k$#Ѯ + B(c%$ί &!;&]#"#˰*!#<` fp/ֱޱ,&$>cN*Ѳ(%).X` x(ٳ$!%<&b# δ! =Y"r'ʵ!(E!b!(޶"B.b'/#C #Qu(Ҹ9%>Xi~  ̹,!1N0%%׺#*!<#^   » λ ۻ -3 al t ~  8"D"g2QA2Xv" %/A Wbgmt-{¿ֿڿ  ;\|/ L m{L #?%] 03JP,$3 $?d*. 4-U"'"9$+0P"&"$ 8/hG!/ A;.}2)H2`//%,#R#v3"% $3 XTy*((<$e$'" 0!N$p +-Ao"# "0S+r-'"5'Mu&-S/>+n&,2)!-K&y&+(0'Y!)3-Mk$)2! /5<*A*l=4 "(K(d    /")> C Q \i o{'2 HS[#n!#28 D L%W}* #'Bjs 22;Cchw" '=]u w$72N)$"j;%+%/Nmt- *;(U#~66 #Ael1%!8!Rt!! &&El t~   # + 7AJ S` iu|  j #7IZt% @V^6d 0  ( 5#@)d | c m w     )5 > H S` i u  & $0 N X do!"C &0'8+`  ,5= BL*O&z1$N s%%',)Gqv& *"36U7g! * 90W  &=Y^c# #8$Uz%$$B$_$$$%J$g$  0*[aq y"1 >9 '2;D T` oy   $3 CQZbs   H S ]hq!3(\# %",DO   - 06I[a x  /)CJOQ  < = ITo% )8#Gk?t #;V'n%*4;@FKQa g-1+%):d lx 6   +Igm t#=Nj~ ,0$:Qiz(<)e0oS    ' $ 9 R b /s        / J d    P # #3 W j . 7 I ` x  !  ' *EWj0"M\7TaVOE@Y#0TgBx;UYj {A%7:Yb#|*$   ',,=j$'$ '.Vl"#  ,M!h$#$ #1Ur!" *J d+&':bv#+7c s "&,H b    (5^ ~      3L"_.-&+Rj   , ":  ] h !  "  , '!1E!$w!%!!.! !/"<F"" """ " ";"":##0#=$;R$>$;$5 %?%%%%9&,&'.'- (!;( ](k(((*(((!()),)>V))#)/)0)-*-L*z****(*#+'%+'M+"u++ + + +!,$4,Y,)h,,,#,,,,,,", -&---/6-f-{--#--/-. 2.<.4B.!w.8.9.. /;/A/ G/ Q/\/c///+/"/#/ 0:0K0R0X0s0 |00 0000000"0 001 1#1 &1&11)X111 1 1111 11-1202@2X2i2y2$22 222C23 %30363"?3b3u3 }3 3$3333 3 34 *454 =4"G4j4 4434*4 5 5 5'5)5:6666707D7[7_7h7m7v7&}7'7$7#7'8 =8H8Q8 f8 r8 }8888788 99 9 89 D9O9c9 y99 999999999999 :: : ,: 8:C:K:]:#o: :: : :::: ::; ;;; +;6;>;(U;~;;; ; ;;;;; <<!< '< 1< ;<F<O<W<`<r< {<<<<< <<<<< = = = =(= ==K=S=Z=n=== == = === > > >+> I>T> \> f>s>>#>> >>>> ?? $? .?8? H?T?Z? b? m?y? ? ??? ? ? ??5?@M1@6@.@!@6A?>AA~A-AAAAB BB#B%B(B*BBBBFBJBNBRBVBZB^BbBfBuBBBBB$B BBC"C 5C?C^CwCCCCCCCC D0&D WDeDwD7yDEDED=EWEqEEEEEEFF7FLFdF}FFFFFFG&G>GRGZG `GjGzGGG$G$G<G9!H[HpHxHHH HHHHHI I63IjII#I(IGI $J 0J:J@JSJ lJ vJ#JJJJJ K(KFKfKKKKKK+K7L7TL)L;L?L+2M^M eMsMMMMM MMMNN N*NDN UN_NwNNNN NNNN O&OBO JOTOB[O OO OO3O7P3?P!sP-P'P.P?Q<ZQ9Q8QE RHPR9R6R2 S.=SRlS*S2SRT?pT2T0T2U2GUzUUfU/VC8V0|VEV3VP'W#xW,W3WW$X1AX7sX;X*X/Y;BY>~Y,Y8Y$#Z0HZ(yZ%ZCZG [(T[%}[)[[[[ \"\+\3\P\W\i\ q\}\\\\_\>]-T].]/]%])^*1^)\^3^,^4^(_*E_p_____<_`"`;`C`.a`"`3`0`-a9Fa)a,a#a4a20b/cb3b.b3b8*c:cc(c@c'd(0dYd `dldddd?d d%d;eZe6xe3e[e5?f$uf fGf f%fg5gFIg g(g ggg5g0h3Ph0h0h$h1 i2=i$pi3i.i#i.j$Kj0pj8j4j k+0k+\k+k"k5k1 l6?l vl1l'lKl4=mCrm2mOm=9n&wn*n@n o^*o&o"ooop pp,pBp]pdpypp%ppppHpQ.qQqAq/rDrLrgrkrrr/r/r rrs#s :sDsTsgszsss2s0s "t/t6t GtUtt"t!u1*u4\uuuJuu v!vBvv4w wwwwx x xx3$x$Xx}xxxxx x xxxx&y&)y&Pywyy#y"y&y!"z Dz&ez7zzzmzc{0j{*{*{7{O)|y| ||$||0|E}_}b~}/}3~E~%G~Gm~-~$~AGJ13)("EK09€6O38J(+06\(3T$E0jX+S `t8Մ#*2J]0%مA-ARo,†C433h,dɇ-.#\132k"@BA,2n=Bߊ"0B=s13:)R.|02܌IBY-.ʍ(8"3[4LĎ2>DBBƏ4 <>F{5?F8kD:0<k<AB'Gj:::(Gc5@D";g>(H .T:66A,9n79;/Gk@0:%$`9Ι  $)7B zƚݚ &B_e2,  " .8/K1{/:ݜG` h;r͝/@E!Km* Ӟ؞  5 M&n  "͟*.$)S(}%1̠,+Ia e o{1N?g6ޣ$2 &S&z0.:_+>ƥ#,HNc4h˦ݦ,:<3w&ҧFF83!Dި+#*Oz%%ܩ&!H&g& Ԫ( '1ELSW_ h s ~    ǫ ի    '1 :HPW_gv$?Tn'!'I`yM֮@.='M-u9ȯ;*>i| =H Q ^ir    ± ұ ݱ     * 5? H S ^h q ~  Ȳ ֲ6 (%; a l z"**[ nx-1"ߴ  ;\w  ʵյ ݵ>3.5bt4<0q33ָ4  ?BJ-N '.N` o}3Ⱥ"C&'j ٻ3*-CX  żԼ*ڼ &#?c${ +.":O_s# Ǿ)!*4 _) )˿ ) @)a ) ) !)B l)    .(W^s |!7 XG!c    $%J\z5$ = JUs   1 HiS    *?F,Mz( -M8/ & >'H[p  0?A   !( 0 ;Gav31%p.  .f)$!2 O)Z/( E N!Y{  & '!C1e-/4MT[cjs-B':/b RW]rx*((G+p)4!5 P \gp*-!"3%V|{/=0m9j!  )3]{=!4Vj&<SUi*05- 9Z"n!'6$7&\&"%7 D)x [Ay$hcw/dJ%9HagH  ]o)3.5)>4h(36 1 ; EOW5s'(:'R%z -"0*%[%),! >+_*++##2(V+  - "90\%%,%*P,p* #!CeD$+INa}- !$BK#` +0 MY q~     ""9.L.{.'!$#&Ho# !@ ]2k #-1%F7l%D7=Gf3C$Kh     GKD&+4R>;=;@C|_{7P0(E3$/7go1t*1<*@GkR$;+Lg`HO^9)BGU<=:/S-858 6Y=K:=-S)  H"G)j 5/M/i  S: R> [ 4 " + 3  D  Q -\  & ? 3 .+ 6Z    3       !  / : ? F W 3[   $    0 5$ Z  w        ?  $EYu<M g r }#   6 :B]%m    '22E;`31[yt[m3^zFqy Muz6Iu|6J-1SQwzK; cLP?SR9J# Wp%X=6tU+r@<S4F{C(IdZ)_nTdDZTBY:N"/K0:^qf{HsV,I/dg7:+`w7uN8X]szYkW*|^e; {B"8)_0"^Ej}v*TG"9qT#VO{R3NA[,u4@ZrQ!Q{8W1shG4?-e10gI e ooNf-20:w+s#E5D f?S]cPl|hm_ vH z\ZGLaLW6~#Y#_^j9LyME\`K2c q@icSk'&tD"u} Qbh\\O@q/; q;G4>``,XKx-`w7P'j ;m pg" n'}'AD:5et}hDgifU&Z <&.VC skdtRggM9j/f!= A=2RM,lRqPHv &3+|AEtbz `'B/DV .Chl\%P ~v8hD$v61/<HJ9]dJtvFabs.F c<,5(^nyU8=>4+2G5vLr!da_G(g).$2m-I 9^Uj)=Bax+$ w!<VE!M< o=o k7ROR}I78ika*$BX Mp.QJZ&[H~Ls=E+:PnYr-?mbT@;@JXYX?C?\0U $(]Z~3k/r A-o~~05W>9x hYNNc)~&&wOo1j%I_Qp3U("N3)XzlSe:*Yf*2;n[C1>B0b,ip ,%}U) @8WT |f# ]la#wc 3rbKl  ox*upSPiQ ( <KObnlp54(.{[y|AiMLHEmVBAi_xFnK6![TH\e`j'Oxd 7GC6y4%e]Cm5%>J!|].?r{ kFaO2>$WVx%>$'*yF}7u Please send this report to the program maintainer, thank you! Thank you and we're sorry for the inconvenience! (copy %d of %d) (error %ld: %s) (in module "%s") - Preview bold italic light#10 Envelope, 4 1/8 x 9 1/2 in#11 Envelope, 4 1/2 x 10 3/8 in#12 Envelope, 4 3/4 x 11 in#14 Envelope, 5 x 11 1/2 in#9 Envelope, 3 7/8 x 8 7/8 in%d of %lu%i of %i%ld byte%ld bytes%lu of %lu%s (or %s)%s Error%s Information%s Preferences%s Warning%s did not fit the tar header for entry '%s'%s files (%s)|%s&About&Actual Size&After a paragraph:&Alignment&Apply&Apply Style&Arrange Icons&Ascending&Back&Based on:&Before a paragraph:&Bold&Bottom&Bottom:&Box&Bullet style:&CD-Rom&Cancel&Cascade&Cell&Character code:&Clear&Close&Color&Colour:&Convert&Copy&Copy URL&Customize...&Debug report preview:&Delete&Delete Style...&Descending&Details&Down&Edit&Edit Style...&Execute&File&Find&Finish&First&Floating mode:&Floppy&Font&Font family:&Font for Level...&Font:&Forward&From:&Harddisk&Height:&Help&Hide details&Home&Indentation (tenths of a mm)&Indeterminate&Index&Info&Italic&Jump to&Justified&Last&Left&Left:&List level:&Log&Move&Move the object to:&Network&New&Next&Next >&Next Paragraph&Next Tip&Next style:&No&Notes:&Number:&OK&Open...&Outline level:&Page Break&Paste&Picture&Point size:&Position (tenths of a mm):&Position mode:&Preferences&Previous&Previous Paragraph&Print...&Properties&Quit&Redo&Redo &Rename Style...&Replace&Restart numbering&Restore&Right&Right:&Save&Save as&See details&Show tips at startup&Size&Size:&Skip&Spacing (tenths of a mm)&Spell Check&Stop&Strikethrough&Style:&Styles:&Subset:&Symbol:&Top&Top:&Underline&Underlining:&Undo&Undo &Unindent&Up&Vertical alignment:&Weight:&Width:&Window&Yes'%s' has extra '..', ignored.'%s' is invalid'%s' is not a correct numeric value for option '%s'.'%s' is not a valid message catalog.'%s' is probably a binary buffer.'%s' should be numeric.'%s' should only contain ASCII characters.'%s' should only contain alphabetic characters.'%s' should only contain alphabetic or numeric characters.'%s' should only contain digits.(*)(Help)(None)(Normal text)(bookmarks)(none)**)+, 64-bit edition-...1.11.21.31.41.51.61.71.81.910 x 11 in10 x 14 in11 x 17 in12 x 11 in15 x 11 in26 3/4 Envelope, 3 5/8 x 6 1/2 in9 x 11 in: file does not exist!: unknown charset: unknown encoding< &BackBold italic face.
    bold italic underlined
    Bold face. Italic face. >A debug report has been generated in the directory A debug report has been generated. It can be found inA non empty collection must consist of 'element' nodesA standard bullet name.A0 sheet, 841 x 1189 mmA1 sheet, 594 x 841 mmA2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Transverse 322 x 445 mmA3 Rotated 420 x 297 mmA3 Transverse 297 x 420 mmA3 sheet, 297 x 420 mmA4 Extra 9.27 x 12.69 inA4 Plus 210 x 330 mmA4 Rotated 297 x 210 mmA4 Transverse 210 x 297 mmA4 sheet, 210 x 297 mmA4 small sheet, 210 x 297 mmA5 Extra 174 x 235 mmA5 Rotated 210 x 148 mmA5 Transverse 148 x 210 mmA5 sheet, 148 x 210 mmA6 105 x 148 mmA6 Rotated 148 x 105 mmABCDEFGabcdefg12345ADDASCIIAboutAbout %sAbsoluteActual SizeAddAdd current page to bookmarksAdd to custom coloursAddToPropertyCollection called on a generic accessorAddToPropertyCollection called w/o valid adderAdding book %sAdvancedAfter a paragraph:Align LeftAlign RightAlignmentAllAll files (%s)|%sAll files (*)|*All files (*.*)|*.*All stylesAlphabetic ModeAlready Registered Object passed to SetObjectClassInfoAlready dialling ISP.Alt+And includes the following files: Animation file is not of type %ld.Append log to file '%s' (choosing [No] will overwrite it)?ApplicationApplyArabicArabic (ISO-8859-6)Argument %u not found.AscendingAttributesAvailable fonts.B4 (ISO) 250 x 353 mmB4 (JIS) Rotated 364 x 257 mmB4 Envelope, 250 x 353 mmB4 sheet, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Rotated 257 x 182 mmB5 (JIS) Transverse 182 x 257 mmB5 Envelope, 176 x 250 mmB5 sheet, 182 x 257 millimeterB6 (JIS) 128 x 182 mmB6 (JIS) Rotated 182 x 128 mmB6 Envelope, 176 x 125 mmBACKBMP: Couldn't allocate memory.BMP: Couldn't save invalid image.BMP: Couldn't write RGB color map.BMP: Couldn't write data.BMP: Couldn't write the file (Bitmap) header.BMP: Couldn't write the file (BitmapInfo) header.BMP: wxImage doesn't have own wxPalette.BackBackgroundBackground &colour:Background colourBaltic (ISO-8859-13)Baltic (old) (ISO-8859-4)Before a paragraph:BitmapBoldBorderBordersBottomBottom margin (mm):Box PropertiesBox stylesBrowseBullet &Alignment:Bullet styleBulletsC sheet, 17 x 22 inC&learC&olour:C3 Envelope, 324 x 458 mmC4 Envelope, 229 x 324 mmC5 Envelope, 162 x 229 mmC6 Envelope, 114 x 162 mmC65 Envelope, 114 x 229 mmCANCELCAPITALCD-RomCHM handler currently supports only local files!CLEARCOMMANDCa&pitalsCan't &Undo Can't close registry key '%s'Can't copy values of unsupported type %d.Can't create registry key '%s'Can't create threadCan't create window of class %sCan't delete key '%s'Can't delete the INI file '%s'Can't delete value '%s' from key '%s'Can't enumerate subkeys of key '%s'Can't enumerate values of key '%s'Can't export value of unsupported type %d.Can't find current position in file '%s'Can't get info about registry key '%s'Can't initialize zlib deflate stream.Can't initialize zlib inflate stream.Can't open registry key '%s'Can't read from inflate stream: %sCan't read inflate stream: unexpected EOF in underlying stream.Can't read value of '%s'Can't read value of key '%s'Can't save image to file '%s': unknown extension.Can't save log contents to file.Can't set thread priorityCan't set value of '%s'Can't write to child process's stdinCan't write to deflate stream: %sCancelCannot create mutex.Cannot create new column's ID. Probably max. number of columns reached.Cannot enumerate files '%s'Cannot enumerate files in directory '%s'Cannot find active dialup connection: %sCannot find the location of address book fileCannot get an active instance of "%s"Cannot get priority range for scheduling policy %d.Cannot get the hostnameCannot get the official hostnameCannot hang up - no active dialup connection.Cannot initialize OLECannot initialize socketsCannot load icon from '%s'.Cannot load resources from '%s'.Cannot load resources from file '%s'.Cannot open HTML document: %sCannot open HTML help book: %sCannot open contents file: %sCannot open file for PostScript printing!Cannot open index file: %sCannot open resources file '%s'.Cannot print empty page.Cannot read typename from '%s'!Cannot resume thread %luCannot resume thread %lxCannot retrieve thread scheduling policy.Cannot start thread: error writing TLS.Cannot suspend thread %luCannot suspend thread %lxCannot wait for thread terminationCase sensitiveCategorized ModeCell PropertiesCeltic (ISO-8859-14)Cen&tredCenteredCentral European (ISO-8859-2)CentreCentre text.CentredCh&oose...Change List StyleChange Object StyleChange PropertiesChange StyleChanges won't be saved to avoid overwriting the existing file "%s"Character stylesCheck to add a period after the bullet.Check to add a right parenthesis.Check to enclose the bullet in parentheses.Check to make the font bold.Check to make the font italic.Check to make the font underlined.Check to restart numbering.Check to show a line through the text.Check to show the text in capitals.Check to show the text in small capitals.Check to show the text in subscript.Check to show the text in superscript.Choose ISP to dialChoose a directory:Choose a fileChoose colourChoose fontCircular dependency involving module "%s" detected.Cl&oseClass not registered.ClearClear the log contentsClick to apply the selected style.Click to browse for a symbol.Click to cancel changes to the font.Click to cancel the font selection.Click to change the font colour.Click to change the text background colour.Click to change the text colour.Click to choose the font for this level.Click to close this window.Click to confirm changes to the font.Click to confirm the font selection.Click to create a new box style.Click to create a new character style.Click to create a new list style.Click to create a new paragraph style.Click to create a new tab position.Click to delete all tab positions.Click to delete the selected style.Click to delete the selected tab position.Click to edit the selected style.Click to rename the selected style.CloseClose AllClose current documentClose this windowColorColourColour selection dialog failed with error %0lx.Colour:Column could not be added.Column description could not be initialized.Column index not found.Column width could not be determinedColumn width could not be set.Command line argument %d couldn't be converted to Unicode and will be ignored.Common dialog failed with error code %0lx.Compressed HTML Help file (*.chm)|*.chm|ComputerConfig entry name cannot start with '%c'.ConfirmConfirm registry updateConnecting...ContentsConversion to charset '%s' doesn't work.ConvertCopied to clipboard:"%s"Copies:CopyCopy selectionCould not create temporary file '%s'Could not determine column index.Could not determine column's positionCould not determine number of columns.Could not determine number of itemsCould not extract %s into %s: %sCould not find tab for idCould not get header description.Could not get items.Could not get selected items.Could not locate file '%s'.Could not remove column.Could not retrieve number of itemsCould not set alignment.Could not set column width.Could not set current working directoryCould not set header description.Could not set icon.Could not set maximum width.Could not set minimum width.Could not start document preview.Could not start printing.Could not transfer data to windowCouldn't acquire a mutex lockCouldn't add an image to the image list.Couldn't create a timerCouldn't create the overlay windowCouldn't enumerate translationsCouldn't find symbol '%s' in a dynamic libraryCouldn't get the current thread pointerCouldn't init the context on the overlay windowCouldn't initialize GIF hash table.Couldn't load a PNG image - file is corrupted or not enough memory.Couldn't load sound data from '%s'.Couldn't obtain folder nameCouldn't open audio: %sCouldn't register clipboard format '%s'.Couldn't release a mutexCouldn't retrieve information about list control item %d.Couldn't save PNG image.Couldn't terminate threadCreate directoryCreate new directoryCtrl+Cu&tCurrent directory:Custom sizeCustomize ColumnsCutCut selectionCyrillic (ISO-8859-5)D sheet, 22 x 34 inDDE poke request failedDECIMALDELDELETEDIB Header: Encoding doesn't match bitdepth.DIB Header: Image height > 32767 pixels for file.DIB Header: Image width > 32767 pixels for file.DIB Header: Unknown bitdepth in file.DIB Header: Unknown encoding in file.DIVIDEDL Envelope, 110 x 220 mmDOWNDashedDebug report "%s"Debug report couldn't be created.Debug report generation has failed.DecorativeDefault encodingDefault fontDefault printerDeleteDelete A&llDelete StyleDelete TextDelete itemDelete selectionDelete style %s?Deleted stale lock file '%s'.Dependency "%s" of module "%s" doesn't exist.DescendingDesktopDeveloped by DevelopersDial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it.Did you know...DirectFB error %d occurred.DirectoriesDirectory '%s' couldn't be createdDirectory '%s' couldn't be deletedDirectory does not existDirectory doesn't exist.Discard changes and reload the last saved version?Display all index items that contain given substring. Search is case insensitive.Display options dialogDisplays help as you browse the books on the left.Do you want to overwrite the command used to %s files with extension "%s" ? Current value is %s, New value is %s %1Do you want to save changes to %s?Document:Documentation by Documentation writersDon't SaveDoneDone.DottedDoubleDouble Japanese Postcard Rotated 148 x 200 mmDoubly used id : %dDownE sheet, 34 x 44 inENDENTERESCESCAPEEXECUTEEditEdit itemEnable the height value.Enable the maximum width value.Enable the minimum height value.Enable the minimum width value.Enable the width value.Enable vertical alignment.Enables a background colour.Enter a box style nameEnter a character style nameEnter a list style nameEnter a new style nameEnter a paragraph style nameEnter command to open file "%s":Entries foundEnvelope Invite 220 x 220 mmEnvironment variables expansion failed: missing '%c' at position %u in '%s'.ErrorError closing epoll descriptorError creating directoryError in reading image DIB.Error reading config options.Error saving user configuration data.Error while printing: Error: Esperanto (ISO-8859-3)Executable files (*.exe)|*.exe|ExecuteExecution of command '%s' failedExecution of command '%s' failed with error: %ulExecutive, 7 1/4 x 10 1/2 inExporting registry key: file "%s" already exists and won't be overwritten.Extended Unix Codepage for Japanese (EUC-JP)Extraction of '%s' into '%s' failed.FFailed to access lock file.Failed to allocate %luKb of memory for bitmap data.Failed to allocate colour for OpenGLFailed to change video modeFailed to check format of image file "%s".Failed to clean up debug report directory "%s"Failed to close file handleFailed to close lock file '%s'Failed to close the clipboard.Failed to close the display "%s"Failed to connect: missing username/password.Failed to connect: no ISP to dial.Failed to convert file "%s" to Unicode.Failed to copy registry value '%s'Failed to copy the contents of registry key '%s' to '%s'.Failed to copy the file '%s' to '%s'Failed to copy the registry subkey '%s' to '%s'.Failed to create DDE stringFailed to create MDI parent frame.Failed to create a temporary file nameFailed to create an anonymous pipeFailed to create an instance of "%s"Failed to create connection to server '%s' on topic '%s'Failed to create cursor.Failed to create directory "%s"Failed to create directory '%s' (Do you have the required permissions?)Failed to create epoll descriptorFailed to create registry entry for '%s' files.Failed to create the standard find/replace dialog (error code %d)Failed to display HTML document in %s encodingFailed to empty the clipboard.Failed to enumerate video modesFailed to establish an advise loop with DDE serverFailed to establish dialup connection: %sFailed to execute '%s' Failed to execute curl, please install it in PATH.Failed to find CLSID of "%s"Failed to find match for regular expression: %sFailed to get ISP names: %sFailed to get OLE automation interface for "%s"Failed to get data from the clipboardFailed to get the local system timeFailed to get the working directoryFailed to initialize GUI: no built-in themes found.Failed to initialize MS HTML Help.Failed to initialize OpenGLFailed to insert text in the control.Failed to inspect the lock file '%s'Failed to install signal handlerFailed to join a thread, potential memory leak detected - please restart the programFailed to kill process %dFailed to load bitmap "%s" from resources.Failed to load icon "%s" from resources.Failed to load image %%d from file '%s'.Failed to load image %d from stream.Failed to load image from file "%s".Failed to load metafile from file "%s".Failed to load mpr.dll.Failed to load resource "%s".Failed to load shared library '%s'Failed to lock resource "%s".Failed to lock the lock file '%s'Failed to modify file times for '%s'Failed to monitor I/O channelsFailed to open '%s' for readingFailed to open '%s' for writingFailed to open CHM archive '%s'.Failed to open URL "%s" in default browser.Failed to open directory "%s" for monitoring.Failed to open display "%s".Failed to open temporary file.Failed to open the clipboard.Failed to parse Plural-Forms: '%s'Failed to prepare playing "%s".Failed to put data on the clipboardFailed to read PID from lock file.Failed to read config options.Failed to read document from the file "%s".Failed to redirect child process input/outputFailed to redirect the child process IOFailed to register DDE server '%s'Failed to remember the encoding for the charset '%s'.Failed to remove debug report file "%s"Failed to remove lock file '%s'Failed to remove stale lock file '%s'.Failed to rename registry value '%s' to '%s'.Failed to rename the file '%s' to '%s' because the destination file already exists.Failed to rename the registry key '%s' to '%s'.Failed to retrieve data from the clipboard.Failed to retrieve file times for '%s'Failed to retrieve text of RAS error messageFailed to retrieve the supported clipboard formatsFailed to save document to the file "%s".Failed to save the bitmap image to file "%s".Failed to send DDE advise notificationFailed to set FTP transfer mode to %s.Failed to set clipboard data.Failed to set permissions on lock file '%s'Failed to set process priorityFailed to set temporary file permissionsFailed to set text in the text control.Failed to set thread priority %d.Failed to store image '%s' to memory VFS!Failed to terminate a thread.Failed to terminate the advise loop with DDE serverFailed to terminate the dialup connection: %sFailed to touch the file '%s'Failed to unlock lock file '%s'Failed to unregister DDE server '%s'Failed to update user configuration file.Failed to upload the debug report (error code %d).Failed to write to lock file '%s'FalseFamilyFileFile "%s" could not be opened for reading.File "%s" could not be opened for writing.File '%s' already exists, do you really want to overwrite it?File '%s' already exists. Do you want to replace it?File '%s' couldn't be removedFile '%s' couldn't be renamed '%s'File couldn't be loaded.File dialog failed with error code %0lx.File errorFile name exists already.FilesFiles (%s)FilterFindFirstFirst pageFixedFixed font:Fixed size face.
    bold italic FloppyFolio, 8 1/2 x 13 inFontFont &weight:Font size:Font st&yle:Font:Fork failedForwardForward hrefs are not supportedFound %i matchesFrom:GIF: Invalid gif index.GIF: data stream seems to be truncated.GIF: error in GIF image format.GIF: not enough memory.GIF: unknown error!!!GTK+ themeGeneralGeneric PostScriptGerman Legal Fanfold, 8 1/2 x 13 inGerman Std Fanfold, 8 1/2 x 12 inGetProperty called w/o valid getterGetPropertyCollection called on a generic accessorGetPropertyCollection called w/o valid collection getterGo backGo forwardGo one level up in document hierarchyGo to home directoryGo to parent directoryGraphics art by Greek (ISO-8859-7)Gzip not supported by this version of zlibHELPHOMEHTML Help Project (*.hhp)|*.hhp|HTML anchor %s does not exist.HTML files (*.html;*.htm)|*.html;*.htm|HarddiskHebrew (ISO-8859-8)HelpHelp Browser OptionsHelp IndexHelp PrintingHelp TopicsHelp books (*.htb)|*.htb|Help books (*.zip)|*.zip|Help directory "%s" not found.Help file "%s" not found.Help: %sHide %sHide this notification message.HomeHome directoryICO: Error in reading mask DIB.ICO: Error writing the image file!ICO: Image too tall for an icon.ICO: Image too wide for an icon.ICO: Invalid icon index.IFF: data stream seems to be truncated.IFF: error in IFF image format.IFF: not enough memory.IFF: unknown error!!!INSINSERTISO-2022-JPIf you have any additional information pertaining to this bug report, please enter it here and it will be joined to it:If you wish to suppress this debug report completely, please choose the "Cancel" button, but be warned that it may hinder improving the program, so if at all possible please do continue with the report generation. Ignoring value "%s" of the key "%s".Illegal Object Class (Non-wxEvtHandler) as Event SourceIllegal Parameter Count for ConstructObject MethodIllegal Parameter Count for Create MethodIllegal directory name.Illegal file specification.Image and mask have different sizes.Image file is not of type %d.Image is not of type %s.Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dllImpossible to get child process inputImpossible to get permissions for file '%s'Impossible to overwrite the file '%s'Impossible to set permissions for the file '%s'Incorrect number of arguments.IndentIndents && SpacingIndexIndian (ISO-8859-12)InfoInitialization failed in post init, aborting.InsertInsert FieldInsert ImageInsert ObjectInsert TextInserts a page break before the paragraph.Invalid TIFF image index.Invalid display mode specification '%s'.Invalid geometry specification '%s'Invalid lock file '%s'.Invalid message catalog.Invalid or Null Object ID passed to GetObjectClassInfoInvalid or Null Object ID passed to HasObjectClassInfoInvalid regular expression '%s': %sItalicItaly Envelope, 110 x 230 mmJPEG: Couldn't load - file is probably corrupted.JPEG: Couldn't save image.Japanese Double Postcard 200 x 148 mmJapanese Envelope Chou #3Japanese Envelope Chou #3 RotatedJapanese Envelope Chou #4Japanese Envelope Chou #4 RotatedJapanese Envelope Kaku #2Japanese Envelope Kaku #2 RotatedJapanese Envelope Kaku #3Japanese Envelope Kaku #3 RotatedJapanese Envelope You #4Japanese Envelope You #4 RotatedJapanese Postcard 100 x 148 mmJapanese Postcard Rotated 148 x 100 mmJump toJustifiedJustify text left and right.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UPLEFTLandscapeLastLast pageLast repeated message ("%s", %lu time) wasn't outputLast repeated message ("%s", %lu times) wasn't outputLedger, 17 x 11 inLeftLeft (&first line):Left margin (mm):Left-align text.Legal Extra 9 1/2 x 15 inLegal, 8 1/2 x 14 inLetter Extra 9 1/2 x 12 inLetter Extra Transverse 9.275 x 12 inLetter Plus 8 1/2 x 12.69 inLetter Rotated 11 x 8 1/2 inLetter Small, 8 1/2 x 11 inLetter Transverse 8 1/2 x 11 inLetter, 8 1/2 x 11 inLicenseLightLine %lu of map file "%s" has invalid syntax, skipped.Line spacing:Link contained '//', converted to absolute link.List StyleList stylesLists font sizes in points.Lists the available fonts.Load %s fileLoading : Lock file '%s' has incorrect owner.Lock file '%s' has incorrect permissions.Log saved to the file '%s'.Lower case lettersLower case roman numeralsMDI childMENUMS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it.Ma&ximizeMacArabicMacArmenianMacBengaliMacCelticMacChineseSimpMacChineseTradMacCroatianMacCyrillicMacDingbatsMacEthiopicMacExtArabicMacGaelicMacGeorgianMacGreekMacHebrewMacIcelandicMacJapaneseMacKhmerMacKoreanMacLaotianMacMongolianMacRomanMacRomanianMacSymbolMacTamilMacThaiMacTibetanMacTurkishMacVietnameseMake a selection:MarginsMatch caseMax height:Max width:Memory VFS already contains file '%s'!MenuMessageMetal themeMethod or property not found.Mi&nimizeMin height:Min width:Missing a required parameter.ModernModifiedModule "%s" initialization failedMonarch Envelope, 3 7/8 x 7 1/2 inMonitoring individual files for changes is not supported currently.Move downMove upMoves the object to the next paragraph.Moves the object to the previous paragraph.Multiple Cell PropertiesNUM_LOCKNameNetworkNewNew &Box Style...New &Character Style...New &List Style...New &Paragraph Style...New StyleNew directoryNew itemNewNameNextNext pageNoNo animation handler for type %ld defined.No bitmap handler for type %d defined.No default application configured for HTML files.No entries found.No font for displaying text in encoding '%s' found, but an alternative encoding '%s' is available. Do you want to use this encoding (otherwise you will have to choose another one)?No font for displaying text in encoding '%s' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly)?No handler found for animation type.No handler found for image type.No image handler for type %d defined.No image handler for type %s defined.No matching page found yetNo soundNo unused colour in image being masked.No unused colour in image.No valid mappings found in the file "%s".NoneNordic (ISO-8859-10)NormalNormal face
    and underlined. Normal font:Not availableNot underlinedNote, 8 1/2 x 11 inNumber of columns could not be determined.Numbered outlineOKOLE Automation error in %s: %sObject PropertiesObject implementation does not support named arguments.Objects must have an id attributeOpen FileOpen HTML documentOpen file "%s"Open...OpenGL function "%s" failed: %s (error %d)Operation not permitted.Option '%s' requires a value.Option '%s': '%s' cannot be converted to a date.OptionsOrientationOutlinePAGEDOWNPAGEUPPAUSEPCX: couldn't allocate memoryPCX: image format unsupportedPCX: invalid imagePCX: this is not a PCX file.PCX: unknown error !!!PCX: version number too lowPGDNPGUPPNM: Couldn't allocate memory.PNM: File format is not recognized.PNM: File seems truncated.PRC 16K 146 x 215 mmPRC 16K RotatedPRC 32K 97 x 151 mmPRC 32K RotatedPRC 32K(Big) 97 x 151 mmPRC 32K(Big) RotatedPRC Envelope #1 102 x 165 mmPRC Envelope #1 Rotated 165 x 102 mmPRC Envelope #10 324 x 458 mmPRC Envelope #10 Rotated 458 x 324 mmPRC Envelope #2 102 x 176 mmPRC Envelope #2 Rotated 176 x 102 mmPRC Envelope #3 125 x 176 mmPRC Envelope #3 Rotated 176 x 125 mmPRC Envelope #4 110 x 208 mmPRC Envelope #4 Rotated 208 x 110 mmPRC Envelope #5 110 x 220 mmPRC Envelope #5 Rotated 220 x 110 mmPRC Envelope #6 120 x 230 mmPRC Envelope #6 Rotated 230 x 120 mmPRC Envelope #7 160 x 230 mmPRC Envelope #7 Rotated 230 x 160 mmPRC Envelope #8 120 x 309 mmPRC Envelope #8 Rotated 309 x 120 mmPRC Envelope #9 229 x 324 mmPRC Envelope #9 Rotated 324 x 229 mmPRINTPaddingPage %dPage %d of %dPage SetupPage setupPagesPaper sizeParagraph stylesPassing a already registered object to SetObjectPastePaste selectionPeri&odPermissionsPicture PropertiesPipe creation failedPlease choose a valid font.Please choose an existing file.Please choose the page to display:Please choose which ISP do you want to connect toPlease install a newer version of comctl32.dll (at least version 4.70 is required but you have %d.%02d) or this program won't operate correctly.Please select the columns to show and define their order:Please wait while printing...Point SizePortraitPositionPostScript filePreferencesPreferences...PreparingPreview:Previous pagePrintPrint PreviewPrint Preview FailurePrint RangePrint SetupPrint in colourPrint previe&w...Print preview creation failed.Print preview...Print spoolingPrint this pagePrint to FilePrint...PrinterPrinter command:Printer optionsPrinter options:Printer...Printer:PrintingPrinting Printing ErrorPrinting page %d of %dPrinting page %d...Printing...PrintoutProcessing debug report has failed, leaving the files in "%s" directory.Progress:PropertiesPropertyProperty ErrorQuarto, 215 x 275 mmQuestionQuitQuit %sQuit this programRETURNRIGHTRead error on file '%s'ReadyRedoRedo last actionRefreshRegistry key '%s' already exists.Registry key '%s' does not exist, cannot rename it.Registry key '%s' is needed for normal system operation, deleting it will leave your system in unusable state: operation aborted.Registry value '%s' already exists.RegularRelativeRelevant entries:RemoveRemove current page from bookmarksRenderer "%s" has incompatible version %d.%d and couldn't be loaded.Rendering failed.Renumber ListRep&laceReplaceReplace &allReplace selectionReplace with:Resource '%s' is not a valid message catalog.Revert to SavedRightRight margin (mm):Right-align text.RomanS&tandard bullet name:SCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACTSaveSave %s fileSave &As...Save AsSave asSave current documentSave current document with a different filenameSave log contents to fileScriptSearchSearch contents of help book(s) for all occurrences of the text you typed aboveSearch directionSearch for:Search in all booksSearching...SectionsSeek error on file '%s'Seek error on file '%s' (large files not supported by stdio)Select &AllSelect AllSelect a document templateSelect a document viewSelect regular or bold.Select regular or italic style.Select underlining or no underlining.SelectionSelects the list level to edit.Separator expected after the option '%s'.Set Cell StyleSetProperty called w/o valid setterSetup...Several active dialup connections found, choosing one randomly.Shift+Show &hidden directoriesShow &hidden filesShow AllShow about dialogShow allShow all items in indexShow hidden directoriesShow/hide navigation panelShows a Unicode subset.Shows a preview of the bullet settings.Shows a preview of the font settings.Shows a preview of the font.Shows a preview of the paragraph settings.Shows the font preview.Simple monochrome themeSingleSizeSize:SkipSlantSmall C&apitalsSolidSorry, could not open this file.Sorry, not enough memory to create a preview.Sorry, that name is taken. Please choose another.Sorry, the format for this file is unknown.Sound data are in unsupported format.Sound file '%s' is in unsupported format.SpacingSpell CheckStandardStatement, 5 1/2 x 8 1/2 inStaticStatus:StopStrikethroughString To Colour : Incorrect colour specification : %sStyleStyle OrganiserStyle:Subscrip&tSupe&rscriptSuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSymbolSymbol &font:SymbolsTABTIFF: Couldn't allocate memory.TIFF: Error loading image.TIFF: Error reading image.TIFF: Error saving image.TIFF: Error writing image.TIFF: Image size is abnormally big.Table PropertiesTabloid Extra 11.69 x 18 inTabloid, 11 x 17 inTabsTeletypeTemplatesThai (ISO-8859-11)The FTP server doesn't support passive mode.The FTP server doesn't support the PORT command.The available bullet styles.The available styles.The background colour.The bottom margin size.The bottom padding size.The bottom position.The bullet character.The character code.The charset '%s' is unknown. You may select another charset to replace it with or choose [Cancel] if it cannot be replacedThe clipboard format '%d' doesn't exist.The default style for the next paragraph.The directory '%s' does not exist Create it now?The document "%s" doesn't fit on the page horizontally and will be truncated if printed. Would you like to proceed with printing it nevertheless?The file '%s' doesn't exist and couldn't be opened. It has been removed from the most recently used files list.The first line indent.The font colour.The font family.The font from which to take the symbol.The font point size.The font size in points.The font style.The font weight.The format of file '%s' couldn't be determined.The left indent.The left margin size.The left padding size.The left position.The line spacing.The list item number.The object height.The object maximum height.The object maximum width.The object minimum height.The object minimum width.The object width.The outline level.The previous message repeated %lu time.The previous message repeated %lu times.The previous message repeated once.The print dialog returned an error.The range to show.The report contains the files listed below. If any of these files contain private information, please uncheck them and they will be removed from the report. The required parameter '%s' was not specified.The right indent.The right margin size.The right padding size.The right position.The spacing after the paragraph.The spacing before the paragraph.The style name.The style on which this style is based.The style preview.The system cannot find the file specified.The tab position.The tab positions.The text couldn't be saved.The top margin size.The top padding size.The top position.The value for the option '%s' must be specified.The version of remote access service (RAS) installed on this machine is too old, please upgrade (the following required function is missing: %s).The wxGtkPrinterDC cannot be used.There was a problem during page setup: you may need to set a default printer.This document doesn't fit on the page horizontally and will be truncated when it is printed.This platform does not support background transparency.This program was compiled with a too old version of GTK+, please rebuild with GTK+ 2.12 or newer.This system doesn't support date controls, please upgrade your version of comctl32.dllThread module initialization failed: cannot store value in thread local storageThread module initialization failed: failed to create thread keyThread module initialization failed: impossible to allocate index in thread local storageThread priority setting is ignored.Tile &HorizontallyTile &VerticallyTimeout while waiting for FTP server to connect, try passive mode.Timer creation failed.Tip of the DayTips not available, sorry!To:Too many EndStyle calls!Too many colours in PNG, the image may be slightly blurred.TopTop margin (mm):Translations by TranslatorsTrueTrying to remove file '%s' from memory VFS, but it is not loaded!Turkish (ISO-8859-9)TypeType a font name.Type a size in points.Type must have enum - long conversionUPUS Std Fanfold, 14 7/8 x 11 inUS-ASCIIUnable to close path '%s'Unable to close the handle for '%s'Unable to open path '%s'Unable to open requested HTML document: %sUnable to play sound asynchronously.UndeleteUnderlineUnderlinedUndoUndo last actionUnexpected characters following option '%s'.Unexpected parameter '%s'UnicodeUnicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)UnindentUnits for the bottom border width.Units for the bottom margin.Units for the bottom outline width.Units for the bottom padding.Units for the bottom position.Units for the left border width.Units for the left margin.Units for the left outline width.Units for the left padding.Units for the left position.Units for the maximum object height.Units for the maximum object width.Units for the minimum object height.Units for the minimum object width.Units for the object height.Units for the object width.Units for the right border width.Units for the right margin.Units for the right outline width.Units for the right padding.Units for the right position.Units for the top border width.Units for the top margin.Units for the top outline width.Units for the top padding.Units for the top position.UnknownUnknown DDE error %08xUnknown Object passed to GetObjectClassInfoUnknown PNG resolution unit %dUnknown Property %sUnknown TIFF resolution unit %d ignoredUnknown data formatUnknown dynamic library errorUnknown encoding (%d)Unknown error %08xUnknown exceptionUnknown image data format.Unknown long option '%s'Unknown name or named argument.Unknown option '%s'Unmatched '{' in an entry for mime type %s.Unnamed commandUnspecifiedUnsupported clipboard format.Unsupported theme '%s'.UpUpper case lettersUpper case roman numeralsUsage: %sUse the current alignment setting.Validation conflictValueValue must be %s or higher.Value must be %s or less.Value must be between %s and %s.Version Vertical alignment.View files as a detailed viewView files as a list viewViewsWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHTWarning: WeightWestern European (ISO-8859-1)Western European with Euro (ISO-8859-15)Whether the font is underlined.Whole wordWhole words onlyWin32 themeWin32s on Windows 3.1Windows 2000Windows 7Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arabic (CP 1256)Windows Baltic (CP 1257)Windows CE (%d.%d)Windows Central European (CP 1250)Windows Chinese Simplified (CP 936) or GB-2312Windows Chinese Traditional (CP 950) or Big-5Windows Cyrillic (CP 1251)Windows Greek (CP 1253)Windows Hebrew (CP 1255)Windows Japanese (CP 932) or Shift-JISWindows Johab (CP 1361)Windows Korean (CP 949)Windows MEWindows NT %lu.%luWindows Server 2003Windows Server 2008Windows Server 2008 R2Windows Thai (CP 874)Windows Turkish (CP 1254)Windows Vietnamese (CP 1258)Windows VistaWindows Western European (CP 1252)Windows XPWindows/DOS OEM (CP 437)Windows/DOS OEM Cyrillic (CP 866)Write error on file '%s'XML parsing error: '%s' at line %dXPM: Malformed pixel data!XPM: incorrect colour description in line %dXPM: incorrect header format!XPM: malformed colour definition '%s' at line %d!XPM: no colors left to use for mask!XPM: truncated image data at line %d!YesYou cannot Clear an overlay that is not initedYou cannot Init an overlay twiceYou cannot add a new directory to this section.You have entered invalid value. Press ESC to cancel editing.Zoom &InZoom &OutZoom InZoom OutZoom to &FitZoom to Fita DDEML application has created a prolonged race condition.a DDEML function was called without first calling the DdeInitialize function, or an invalid instance identifier was passed to a DDEML function.a client's attempt to establish a conversation has failed.a memory allocation failed.a parameter failed to be validated by the DDEML.a request for a synchronous advise transaction has timed out.a request for a synchronous data transaction has timed out.a request for a synchronous execute transaction has timed out.a request for a synchronous poke transaction has timed out.a request to end an advise transaction has timed out.a server-side transaction was attempted on a conversation that was terminated by the client, or the server terminated before completing a transaction.a transaction failed.altan application initialized as APPCLASS_MONITOR has attempted to perform a DDE transaction, or an application initialized as APPCMD_CLIENTONLY has attempted to perform server transactions.an internal call to the PostMessage function has failed. an internal error has occurred in the DDEML.an invalid transaction identifier was passed to a DDEML function. Once the application has returned from an XTYP_XACT_COMPLETE callback, the transaction identifier for that callback is no longer valid.assuming this is a multi-part zip concatenatedattempt to change immutable key '%s' ignored.bad arguments to library functionbad signaturebad zipfile offset to entrybinaryboldbuffer is too small for Windows directory.can't close file '%s'can't close file descriptor %dcan't commit changes to file '%s'can't create file '%s'can't delete user configuration file '%s'can't determine if the end of file is reached on descriptor %dcan't execute '%s'can't find central directory in zipcan't find length of file on file descriptor %dcan't find user's HOME, using current directory.can't flush file descriptor %dcan't get seek position on file descriptor %dcan't load any font, abortingcan't open file '%s'can't open global configuration file '%s'.can't open user configuration file '%s'.can't open user configuration file.can't re-initialize zlib deflate streamcan't re-initialize zlib inflate streamcan't read from file descriptor %dcan't remove file '%s'can't remove temporary file '%s'can't seek on file descriptor %dcan't write buffer '%s' to disk.can't write to file descriptor %dcan't write user configuration file.checksum errorchecksum failure reading tar header blockcmcompression errorconversion to 8-bit encoding failedctrldatedecompression errordefaultdoubledump of the process state (binary)eighteentheightheleventhentry '%s' appears more than once in group '%s'error in data formaterror opening '%s'error opening fileerror reading zip central directoryerror reading zip local headererror writing zip entry '%s': bad crc or lengthfailed to flush the file '%s'fifteenthfifthfile '%s', line %d: '%s' ignored after group header.file '%s', line %d: '=' expected.file '%s', line %d: key '%s' was first found at line %d.file '%s', line %d: value for immutable key '%s' ignored.file '%s': unexpected character %c at line %d.filesfirstfont sizefourteenthfourthgenerate verbose log messagesimageincomplete header block in tarincorrect event handler string, missing dotincorrect size given for tar entryinvalid data in extended tar headerinvalid message box return valueinvalid zip fileitaliclightlocale '%s' cannot be set.midnightnineteenthninthno DDE error.no errornonamenoonnormalnot implementednumobjects cannot have XML Text Nodesout of memorypercentprocess context descriptionptpxread errorreading zip stream (entry %s): bad crcreading zip stream (entry %s): bad lengthreentrancy problem.secondseek errorseventeenthseventhshiftshow this help messagesixteenthsixthspecify display mode to use (e.g. 640x480-16)specify the theme to usestandard/circlestandard/circle-outlinestandard/diamondstandard/squarestandard/trianglestored file length not in Zip headerstrstrikethroughtar entry not opentenththe response to the transaction caused the DDE_FBUSY bit to be set.thirdthirteenthtodaytomorrowtrailing backslash ignored in '%s'translator-creditstwelfthtwentiethunderlinedunexpected " at position %d in '%s'.unexpected end of fileunknownunknown class %sunknown errorunknown error (error code %08x).unknown seek originunknown-%dunnamedunnamed%dunsupported Zip compression methodusing catalog '%s' from '%s'.write errorwxGetTimeOfDay failed.wxWidgets could not open display for '%s': exiting.wxWidgets could not open display. Exiting.xxxxyesterdayzlib error %d~Project-Id-Version: wxWidgets 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2013-10-01 19:04+0200 PO-Revision-Date: 2013-06-11 22:58+0100 Last-Translator: Xaviou Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit plural-forms: nplurals=2; plural=n > 1 Merci d'envoyer ce rapport au responsable du programme ! Merci et désolé pour le dérangement. (copie %d sur %d) (erreur %ld : %s) (dans le module "%s") - AperçugrasitaliquelégerEnveloppe n° 10 (4,125 x 9,5 pouces)Enveloppe n° 11 (4,5 x 10,375 pouces)Enveloppe n° 12 (4,75 x 11 pouces)Enveloppe n° 14 (5 x 11,5 pouces)Enveloppe n° 9 (3,875 x 8,875 pouces)%d dur %lu%i de %i%ld octet%ld octets%lu sur %lu%s (ou %s)%s Erreur%s InformationPréférences %s%s Avertissement%s ne rentre pas dans l'entête tar pour l'entrée '%s'%s fichiers (%s)|%sÀ &propos&Taille actuelle&Après un paragraphe :&Alignement&Appliquer&Appliquer le style&Arranger les icônesCroiss&ant&Retour&Basé sur:Avant un paragraphe :&Gras&Bas&Bas :&BoîteStyle de ti&ret:&CD-Rom&Annuler&Cascade&Cellule&Code caractère&Supprimer&Fermer&Couleur :C&ouleur :&Convertir&Copier&Copier l'adresse&Personnaliser...Aperçu du rapport de &débogage :&SupprimerSu&pprimer le style&Décroissant&Détails&Bas&EditionÉdit&er le style...&Exécuter&Fichier&Trouver&Finir&PremierMode &Flottant :&Disquette&Police&Famille de polices :&Police de caractères pour le niveau...&Famille de polices :&SuivantDe :&Disque-dur&Hauteur :&AideCac&her les détails&Répertoire personnel&Indentation (dixièmes de mm)&Indeterminé&Index&Info&Italique&Aller à&Justifié&Dernier&Gauche&Gauche:Niveau de &Liste:&Journal&Déplacer&Déplacer l'objet vers :&Reseau&Nouveau&Suivant&Suivant >Paragraphe Suiva&nt&Astuce suivante&Style Suivant :&Non&Notes :&Numéro&Accepter&Ouvrir...Niveau de C&ontour :Saut de &Page&Coller&ImageTaille de &point :&Position (dizièmes de mm):Mode de &position :&Préférences&PrécédentParagraphe &Précédent&Imprimer...&Propriétés&Quitter&Refaire&Refaire &Renommer le style...&Remplacer&Recommencer la numérotation&Restaurer&Droite&Droite :&EnregistrerEnregistrer &SousVoir les détail&s&Afficher les astuces au démarrage&Taille&Taille :Pa&sserE&spacement (dixièmes de mm)&Vérification Orthographique&Arrêter&Barré&Style :&Style :&Sous-ensemble:&Symbole :Hau&tHau&t :&SoulignerSo&uligner:&Annuler&Annuler &Désindenter&HautAlignement &vertical :&Largeur :&Largeur :&Fenêtre&Oui« %s » a trop de « .. » : ils sont ignorés.« %s » n'est pas valable« %s » n'est pas une valeur numérique correcte pour l'option « %s ».« %s » n'est pas un catalogue valable de messages.« %s » est probablement un tampon binaire.« %s » doit être numérique.« %s » ne doit contenir que des caractères ASCII.« %s » ne doit contenir que des caractères alphabétiques.« %s » ne doit contenir que des caractères alphanumériques.« %s » ne doit contenir que des chiffres.(*)(Aide)(Aucun)(Texte normale)(signets)(aucun)**)+, édition 64-bit-...1.11.21.31.41,51.61.71.81.910 x 11 pouces10 x 14 pouces11 x 17 pouces12 x 11 pouces15 x 11 pouces2Enveloppe 6 3/4 (3,625 x 6,5 pouces)9 x 11 pouces : le fichier n'existe pas. : jeu de caractères inconnu : codage inconnu< &RetourGras italique.
    gras italique souligné
    Gras. Italique. >Un rapport de débogage a été créé dans le dossier Un rapport de débogage a été généré. Il peut être trouvé dansUne collection non vide doit comprendre des noeuds « éléments »Un nom de tiret standard.Feuille A0, 841 x 1189 mmFeuille A1, 594 x 841 mmA2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra, Paysage, 322 x 445 mmA3 Paysage 420 x 297 mmA3 Portrait 297 x 420 mmFeuille A3, 297 x 420 mmA4 Extra 9.27 x 12.69 poucesA4 Plus 210 x 330 mmA4 Paysage 297 x 210 mmA4 Portrait 210 x 297 mmFeuille A4, 210 x 297 mmPetite feuille A4, 210 x 297 mmA5 Extra 174 x 235 mmA5 Paysage 210 x 148 mmA5 Portrait 148 x 210 mmFeuille A5, 148 x 210 mmA6 105 x 148 mmA6 Paysage 148 x 105 mmABCDEFGabcdefg12345AJOUTERASCIIÀ proposÀ propos de %sAbsolueTaille ActuelleAjouterAjouter la page courante aux signetsAjouter aux couleurs personnaliséesAddToPropertyCollection appelé sur un assesseur génériqueAddToPropertyCollection appelé sans additionneur valableAjouter le manuel %sAvancéAprès un paragraphe:Aligner à gaucheAligner à droiteAlignementToutTous les fichiers (%s)|%sTous les fichiers (*)|*Tous les fichiers (*.*)|*.*Tous les stylesMode AlphabétiqueObjet déjà enregistré envoyé à SetObjectClassInfoDéjà en cours d'appel du FAI.Alt+Et inclut les fichiers suivants : Le fichier animé n'est pas du type %ld.Ajouter le journal au fichier « %s » (choisir [Non] l'écrasera) ?ApplicationAppliquerArabeArabe (ISO-8859-6)Argument %u non trouvé.CroissantAttributsPolices de caractères disponibles.B4 (ISO) 250 x 353 mmB4 (JIS) Paysage 364 x 257 mmEnveloppe B4, 250 x 353 mmFeuille B4, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Paysage 257 x 182 mmB5 (JIS), Paysage, 182 x 257 mmEnveloppe B5, 176 x 250 mmFeuille B5, 182 x 257 mmB6 (JIS) 128 x 182 mmB6 (JIS) Paysage 182 x 128 mmEnveloppe B6, 176 x 125 mmRETOURBMP : impossible d'allouer de la mémoire.BMP : impossible de sauvegarder une image non valable.BMP : impossible d'écrire la palette de couleurs RGB.BMP : impossible d'écrire les données.BMP : impossible d'écrire l'en-tête du fichier (Bitmap).BMP : impossible d'écrire l'en-tête du fichier (BitmapInfo).BMP : wxImage n'a pas sa propre wxPalette.RetourArrière plan&Couleur d'arrière plan :Couleur d'arrière planBalte (ISO-8859-13)Balte (ancien) (ISO-8859-4)Avant un paragraphe:Image bitmapGrasBordBordsHautMarge de bas de page (mm) :Propriétés de la boîteStyles de boîteParcourir&Alignement des tirets:Style des tiretsTiretsFeuille C, 17 x 22 mm&EffacerC&ouleur :Enveloppe C3, 324 x 458 mmEnveloppe C4, 229 x 324 mmEnveloppe C5, 162 x 229 mmEnveloppe C6, 114 x 162 mmEnveloppe C65, 114 x 229 mmANNULERMAJUSCULECD-RomLe gestionnaire CHM ne gère actuellement que les fichiers locaux.SUPPRIMERCOMMANDEMajusculesImpossible d'&annuler Impossible de fermer la clé de registre « %s »Impossible de copier les valeurs de type %d non géré.Impossible de créer la clé de registre « %s »Impossible de créer le processusImpossible de créer la fenêtre de classe %sImpossible d'effacer la clé « %s »Impossible d'effacer le fichier INI « %s »Impossible d'effacer la valeur « %s » de la clé « %s »Impossible d'énumérer les sous-clés de la clé « %s »Impossible d'énumérer les valeurs de la clé « %s »Impossible d'exporter les valeurs de type non géré %d.Impossible de trouver la position courante dans le fichier « %s »Impossible d'obtenir des informations sur la clé de registre « %s »Impossible d'initialiser le flux de déchargement de zlibImpossible d'initialiser le flux de chargement de zlibImpossible d'ouvrir la clé de registre « %s »Impossible de lire le flux de chargement : %sImpossible de lire le flux de chargement : EOF inattendu dans le flux inférieur.Impossible de lire la valeur de « %s »Impossible de lire la valeur de la clé « %s »Impossible d'enregistrer l'image dans le fichier « %s » : extension inconnue.Impossible d'enregistrer le contenu du journal dans le fichier.Impossible de spécifier la priorité du processusImpossible de spécifier la valeur de « %s »Ne peut écrire sur l'entrée du processus enfant.impossible d'écrire pour décharger le flux : %sAnnulerImpossible de créer le mutex.Impossible de créer un nouvel ID de colonne. Le nombre max. de colonnes a probablement été atteint.Impossible d'énumérer les fichiers « %s »Impossible d'énumérer les fichiers dans le répertoire « %s »Impossible de trouver une connexion active : %sImpossible de trouver l'emplacement du fichier du manuel des adressesImpossible d'obtenir une instance active de : "%s"Impossible d'obtenir une gamme de priorités pour la charte de planification %d.Impossible d'obtenir le nom d'hôteImpossible d'obtenir le nom d'hôte officielImpossible de raccrocher - pas de connexion active.Impossible d'initialiser l'OLEImpossible d'initialiser les socketsImpossible de charger l'icône depuis « %s ».Impossible de charger les ressources depuis « %s ».Impossible de charger les ressources du fichier « %s ».Impossible d'ouvrir le document HTML : %sImpossible d'ouvrir le manuel d'aide HTML : %sImpossible d'ouvrir le fichier de table des matières : %sImpossible d'ouvrir le fichier pour une impression PostScript.Impossible d'ouvrir le fichier d'index : %sImpossible d'ouvrir le fichier de ressources « %s ».Impossible d'imprimer une page vide.Impossible de lire le nom de type de « %s ».Impossible de reprendre le processus %luImpossible de reprendre le thread %lxImpossible de récupérer la charte de planification des processus.Impossible de lancer le processus : erreur lors de l'écriture de TLS.Impossible de suspendre le processus %luImpossible de suspendre le thread %lxImpossible d'attendre la fin du processusSensible à la casseMode CatégoriesPropriétés de CelluleCeltique (ISO-8859-14)Cen&tréCentréEurope centrale (ISO-8859-2)CentreCentrer le texte.Centré&Choisir...Changer la liste de stylesChanger le Style de l'ObjetChanger les PropriétésChanger le styleLes changements ne seront pas sauvés pour éviter l'écrasement du fichier existant « %s »Styles de caractèresCochez pour ajouter un point après le tiret.Cocher pour ajouter une parenthèse à droite.Cocher pour mettre le tiret entre parenthèses.Cochez pour mettre la police en gras.Cochez pour mettre la police en italique.Cochez pour mettre la police en souligné.Cocher pour recommencer la numérotation.Cochez pour afficher une ligne à travers le texte.Cochez pour afficher le texte en majuscules.Cochez pour afficher le texte en petites majuscules.Cochez pour afficher le texte en indice.Cochez pour afficher le texte en exposant.Choisir le FAI à appelerChoisir un répertoire :Choisir un fichier :Choisir la couleurChoisir la policeDépendance en boucle détectée, impliquant le module "%s".&FermerClasse non-enregistrée.EffacerEffacer le contenu du journalCliquez pour appliquer le style sélectionné.Cliquer pour rechercher un symboleCliquez pour annuler les changements sur la police.Cliquer pour annuler la sélection de la police.Cliquez pour changer la couleur de la police.Cliquez pour changer la couleur d'arrière-plan du texte.Cliquez pour changer la couleur du texte.Cliquez pour choisir la police de ce niveau.Cliquez pour fermer cette fenêtre.Cliquez pour confirmer les changements de la police.Cliquer pour confirmer la sélection de la police.Cliquez pour créer un nouveau style de boîte.Cliquer pour créer un nouveau style de caractère.Cliquez pour créer un nouveau style de liste.Cliquer pour créer un nouveau style de paragraphe.Cliquez pour créer une nouvelle position de tabulation.Cliquez pour supprimer toutes les positions de tabulation.Cliquez suprimer le style sélectionné.Cliquez pour supprimer la position de tabulation sélectionnée.Cliquez éditer le style sélectionné.Cliquez renommer le style sélectionné.FermerFermer toutFermer le document courantFermer cette fenêtreCouleurCouleurÉchec du dialogue de sélection de couleur avec l'erreur %0lx.Couleur :La colonne n'a pas pu être ajoutée.La description de la colonne n'a pas pu être initialisée.Index de colonne non trouvé.La largeur de la colonne n'a pas pu être déterminéeLa largeur de la colonne n'a pas pu être définie.L'argument %d de la ligne de commande n'a pas pu être converti en Unicode et sera ignoré.Échec du dialogue commun avec le code d'erreur %0lx.Fichier HTML compilé (*.chm)|*.chm|L'ordinateurLe nom d'entrée de configuration ne peut pas commencer par « %c ».ConfirmerConfirmer la mise à jour du registreConnexion en cours...Table des matièresLa conversion vers le jeu de caractères « %s » ne fonctionne pas.ConvertirCopié dans le presse-papiers « %s »Copies :CopierCopier la sélectionImpossible de créer le fichier temporaire « %s »Impossible de déterminer l'index de la colonne.Impossible de déterminer la position de la colonneImpossible de déterminer le nombre de colonnes.Impossible de déterminer le nombre d'élémentsImpossible d'extraire %s de %s : %sImpossible de trouver l'onglet pour l'identifiantImpossible d'obtenir la description de l'en-tête.Impossible d'obtenir les éléments.Impossible d'obtenir les éléments sélectionnés.Impossible de localiser le fichier « %s ».Impossible de supprimer la colonne.Impossible de retrouver le nombre d'élémentsImpossible de définir l'alignement.Impossible de définir la largeur de la colonne.Impossible de définir le répertoire de travail courantImpossible de définir la description de l'en-tête.Impossible de définir l'icône.Impossible de définir la largeur maximale.Impossible de définir la largeur minimale.Impossible de lancer l'aperçu du document.Impossible de lancer l'impression.Impossible de transférer les données à la fenêtreImpossible de récupérer un verrou pour le mutexImpossible d'ajouter une image à la liste des images.Impossible de créer un minuteurImpossible de créer une fenêtre de recouvrementImpossible d'énumérer les traductionsImpossible de trouver le symbole « %s » dans la bibliothèque dynamiqueImpossible d'obtenir le pointeur du processus actuelImpossible d'initialiser le contexte de la fenêtre de recouvrementImpossible d'initialiser la tablme de hachage GIF.Impossible de charger une image PNG - fichier corrompu ou mémoire insuffisanteImpossible de charger les données sonores depuis « %s ».Impossible d'obtenir le nom du dossierImpossible d'ouvrir le fichier audio : %sImpossible d'enregistrer le format de presse-papiers « %s ».Impossible de libérer un mutexImpossible de récupérer des informations sur l'élément « %d » de contrôle des listes.Impossible de sauvegarder l'image PNG.Impossible d'arrêter le processusCréer le répertoireCréer un nouveau répertoireCtrl+Cou&perRépertoire courant :Taille personnaliséePersonnaliser les ColonnesCouperCouper la sélectionCyrillique (ISO-8859-5)Feuille D, 22 x 34 mmÉchec de la demande de transfert DDEDECIMALEFFACEREFFACEREn-tête DIB : le codage ne correspond pas au nombre de bits par pixel.En-tête DIB : hauteur de l'image supérieure à 32 767 pixels pour le fichier.En-tête DIB : largeur de l'image supérieure à 32 767 pixels pour le fichier.En-tête DIB : nombre de bits par pixel inconnu dans le fichier.En-tête DIB : codage inconnu dans le fichier.DIVISEREnveloppe DL, 110 x 220 mmBASTiretsRapport de débogage « %s »Échec de la création du rapport de débogage.Échec de la création du rapport de débogage.DécoratifCodage par défautPolice par défautImprimante par défautSupprimer&Tout supprimerSupprimer le styleSupprimer le texteSupprimer l'élémentEffacer la sélectionSupprimer le style %s ?Suppression du fichier verrou périmé « %s ».La dépendance "%s" du module "%s" n'existe pas.DécroissantBureauDéveloppé par DéveloppeursLes fonctions d'appel ne sont pas disponibles car le service d'accès à distance (RAS) n'est pas installé sur cet ordinateur. Veuillez l'installer.Saviez-vous que...L'erreur DirectFB %d est survenue.DossiersLe répertoire « %s » n'a pas pu être crééLe répertoire « %s » n'a pas pu être suppriméRépertoire inexistantRépertoire inexistant.Ignorer les modifications et recharger la dernière version enregistrée ?Afficher tous les éléments de l'index qui contiennent une sous-chaîne donnée. Recherche non sensible à la casse.Dialogue d'options de l'affichageAffiche l'aide pendant que vous parcourez les livre sur la gauche.Voulez-vous remplacer la commande utilisée pour %s les fichiers avec l'extension « %s » ? La valeur actuelle est %s, La nouvelle valeur est %s %1Voulez-vous enregistrer les modifications vers %s ?Document :Documentation par Rédacteurs de la documentationNe pas enregistrerFaitFait.PointilléDoubleCarte postale japonaise double Paysage 148 x 200 mmIdentifiant utilisé deux fois : %dBasFeuille E (34 x 44 pouces)FINENTRÉEÉCHAPÉCHAPPEMENTÉXÉCUTERÉditionÉditer l'élémentActiver la valeur de hauteur.Activer la valeur maximale de largeur.Activer la valeur minimale de hauteur.Activer la valeur minimale de largeur.Activer la valeur de largeur.Activer l'alignement vertical.Active une couleur d'arrière plan.Entrer le nom d'un style de boîteEntrer le nom d'un style de caractèreEntrer le nom d'un style de listeEntrer le nom d'un nouveau styleEntrer le nom d'un style de paragrapheEntrer la commande pour ouvrir le fichier « %s » :Entrées trouvéesEnveloppe Invite 220 x 220 mmÉchec de l'expansion des variables d'environnement : « %c » manquant à la position %u dans « %s ».ErreurErreur lors de la fermeture du descripteur epollErreur lors de la création du répertoireErreur lors de la lecture d'une image DIB.Erreur lors de la lecture des options de configuration.Erreur lors de l'enregistrement des données de configuration de l'utilisateur.Erreur lors de l'impression :Erreur : Espéranto (ISO-8859-3)Fichiers exécutables (*.exe)|*.exe|ExecuterÉchec de l'exécution de la commande « %s »Échec de l'exécution de la commande « %s » avec l'erreur : %ulExecutive (7,25 x 10,5 pouces)Exportation de la clé de registre : le fichier « %s » existe déjà et ne sera pas écrasé.Codepage Unix étendu pour le japonais (EUC-JP)Échec de l'extraction de « %s » de « %s ».FÉchec de l'accès au fichier verrou.Échec de l'allocation de %lu Ko de mémoire pour les données bitmap.Échec de l'allocation de couleur pour OpenGLImpossible de changer le mode vidéoÉchec de la vérification de format du fichier image « %s ».Échec du nettoyage du répertoire « %s » des rapports de débogageÉchec de la fermeture du gestionnaire de fichierÉchec de la fermeture du fichier verrou « %s »Échec de la fermeture du presse-papiers.Échec de la fermeture de l'écran "%s".Échec de la connexion : nom d'utilisateur ou mot de passe manquant.Échec de la connexion : pas de FAI à appeler.Échec de la conversion du fichier « %s » en Unicode.Échec de la copie de la valeur de registre « %s »Échec de la copie du contenu de la clé de registre « %s » vers « %s »Échec de la copie du fichier « %s » vers « %s »Échec de la copie de la sous-clé de registre « %s » vers « %s ».Échec de la création de la chaîne DDEÉchec de la création du cadre parent MDI.Échec de la création d'un nom de fichier temporaire.Échec de la création d'un tube anonymeÉchec de la création d'une instance de « %s »Échec de la création d'une connexion au serveur « %s » sur le sujet « %s »Échec de la création d'un curseur.Échec de la création du répertoire « %s »Échec de la création du répertoire « %s » (Avez-vous les permissions requises ?)Échec de la création du descripteur epollÉchec de la création d'une entrée dans le registre pour les fichiers « %s ».Échec de la création de la boîte de dialogue standard rechercher/remplacer (code d'erreur %d)Échec de l'affichage du document HTML avec le codage %sÉchec du vidage du presse-papiers.Échec de l'énumération des modes vidéoÉchec de l'établissement d'une boucle d'instructions avec le serveur DDEÉchec de l'établissement d'une connexion : %sÉchec de l'exécution de « %s » Échec de l'exécution de curl, veuillez l'installer dans le PATHÉchec de la recherche du CLSID de « %s »Aucune correspondance pour l'expression régulière « %s » n'a été trouvée.Échec de l'obtention des noms des FAI : %sÉchec de l'obtention de l'interface OLE Automatino pour « %s »Échec de l'obtention des données du presse-papiersÉchec de l'obtention de l'heure locale du systèmeÉchec de l'obtention du répertoire courantÉchec de l'initialisation de l'interface graphique : aucun thème préfabriqué n'a été trouvé.Échec de l'initialisation de l'aide MS HTML.Échec de l'initialisation d'OpenGLÉchec de l'insertion de texte dans le contrôle.Échec de l'inspection du fichier verrou « %s »Échec de l'installation du gestionnaire de signalÉchec de l'adjonction d'un processus : fuite potentielle de mémoire détectée, redémarrez le programmeÉchec de l'arrêt du processus %dÉchec du chargement du bitmap « %s » depuis les ressources.Échec du chargement de l'icône « %s » depuis les ressources.Échec du chargement de l'image %%d depuis le fichier « %s ».Échec du chargement de l'image %d depuis le flux.Échec du chargement de l'image depuis le fichier « %s ».Échec du chargement du métafichier depuis le fichier « %s ».Échec du chargement de mpr.dllÉchec du chargement de la ressource « %s ».Échec du chargement de la bibliothèque partagée « %s »Échec du verrouillage de la ressource « %s »Échec du verrouillage du fichier verrou « %s »Échec de la modification de la date du fichier « %s »Impossible de contrôler les canaux d'E/SÉchec de l'ouverture de « %s » en lectureÉchec de l'ouverture de « %s » en écritureÉchec de l'ouverture de l'archive CHM « %s ».Échec de l'ouverture de l'URL « %s » avec le navigateur par défaut.Échec de l'ouverture du répertoire « %s » pour surveillance.Échec de l'ouverture de l'écran « %s ».Échec de l'ouverture d'un fichier temporaire.Échec de l'ouverture du presse-papiers.Écher de l'analyse des formes plurielles  : « %s »Échec de la préparation à la lecture « %s ».Échec de l'ajout de données dans le presse-papiersÉchec de la lecture du numéro de processus (PID) depuis le fichier verrou.Échec de la lecture des options de configuration.Échec de la lecture du document depuis le fichier « %s ».Échec de la redirection des entrées et sorties du processus filsÉchec de la redirection des entrées et sorties du processus filsÉchec de l'enregistrement du serveur DDE « %s »Échec du rappel du codage du jeu de caractères « %s ».Échec de la suppression du fichier de rapport de débogage « %s »Échec de la suppression du fichier verrou « %s »Échec de la suppression du fichier verrou périmé « %s ».Échec du renommage de la valeur de registre « %s » en « %s ».Erreur lors du changement de nom de '%s' vers '%s': il existe déjà un fichier avec le nom de destination.Échec du renommage de la clé de registre « %s » en « %s ».Échec de la récupération de données du presse-papiers.Échec de la récupération de la date du fichier « %s »Échec de la récupération du texte du message d'erreur RASÉchec de la récupération des formats de presse-papiers gérésÉchec de l'enregistrement du document dans le fichier « %s ».Échec de l'enregistrement de l'image bitmap dans le fichier « %s »Échec de l'envoi d'une notification d'instructions au DDEÉchec de la configuration du mode de transfert FTP en %s.Échec de la configuration des données du presse-papiers.Échec de la configuration des permissions du fichier verrou « %s »Échec de la définition de la priorité du processusÉchec de la configuration des permissions du fichier temporaireÉchec: le texte n'a pas pu être placé dans le contrôle de texte.Échec de la configuration de la priorité %d du processus.Échec du stockage de l'image « %s » dans la mémoire VFS.Échec de la terminaison d'un processus.Échec de la terminaison de la boucle d'instructions avec le serveur DDEÉchec de la terminaison de la connexion : %sÉchec de la mise à jour de la date du fichier « %s »Échec du déverrouillage du fichier verrou « %s »Échec du désenregistrement du serveur DDE « %s »Échec de la mise à jour du fichier de configuration utilisateurÉchec de l'envoi du rapport de bogue (code d'erreur %d).Échec de l'écriture dans le fichier verrou « %s »FauxFamilleFichierLe fichier « %s » n'a pas pu être ouvert en lecture.Le fichier « %s » n'a pas pu être ouvert en écriture.Le fichier « %s » existe déjà, voulez-vous vraiment l'écraser ?Le fichier « %s » existe déjà. Voulez-vous le remplacer ?Le fichier « %s » n'a pas pu être suppriméLe fichier « %s » n'a pas pu être renommé « %s »Le fichier n'a pas pu être chargé.Échec du dialogue de fichier avec le code d'erreur %0lx.Erreur fichierNom de fichier existant.FichiersFichiers (%s)FiltreTrouverPremierPremière pageFixePolice de taille fixe :Police de taille fixe.
    gras italique DisquetteFolio (8,5 x 13 pouces)Police de caractèresLar&geur de police.Taille de la police :St&yle de la police :Police de caractères:Échec du clonageSuivantTransferts href non gérésA trouvé %i correspondancesDe :GIF : index gif non valable.GIF : le flux des données semble être tronqué.GIF : erreur dans le format de l'image GIF.GIF : mémoire insuffisante.GIF : erreur non référencée.Thème GTK+GénéralFichier PostScriptLégal allemand en accordéon (8,5 x 13 pouces)Standard allemand en accordéon (8,5 x 12 pouces)GetProperty appelé sans récupérateur valableGetPropertyCollection appelé sur un assesseur génériqueGetPropertyCollection appelé sans récupérateur de collection valableRevenirContinuerMonter au niveau supérieur dans la hiérarchie du documentAller au répertoire personnelAller au répertoire parentArts graphiques par Grec (ISO-8859-7)Gzip n'est pas géré par cette version de zlibAIDEDEBUTProjet d'aide HTML (*.hhp)|*.hhp|Ancre HTML %s inexistante.Fichiers HTML (*.html;*.htm)|*.html;*.htm|Disque-durHébreu (ISO-8859-8)AideAide Options NavigateurAide IndexAide ImpressionSujets AideLivres d'aide (*.htb)|*.htb|Help books (*.zip)|*.zip|Dossier d'aide "%s" non trouvé.fichier d'aide « %s » non trouvé.Aide : %sCacher %sCacher ce message de notification.Répertoire personnelRépertoire personnelICO : erreur à la lecture du masque DIB.ICO : erreur à l'écriture du fichier image.ICO : image trop grande pour une icône.ICO : image trop large pour une icône.ICO : index de l'icône non valable.IFF : le flux de données semble être tronqué.IFF : erreur dans le format de l'image IFF.IFF : mémoire insuffisante.IFF : erreur inconnue.INSINSERTIONISO-2022-JPSi vous avez des informations supplémentaires concernant ce rapport de bogue, veuillez les saisir ici pour qu'elles soient incluses :Si vous voulez supprimer entièrement ce rapport de débogage, veuillez choisir le bouton « Annuler », mais cela peut empêcher l'amélioration du programme, donc veuillez si possible continuer la création de ce rapport. Valeur « %s » de la clé « %s » ignorée.Classe d'objet non valable en tant que source d'événement (Non-wxEvtHandler)Nombre de paramètres illégal pour la méthode ConstructObjectNombre de paramètres illégal pour la méthode CreateNom de répertoire illégal.Spécification de fichier illégale.L'image et le masque sont de tailles différentes.Le fichier image n'est pas du type %d.Le fichier image n'est pas du type %s.Impossible de créer un contrôle d'édition riche, va utiliser un contrôle de texte simple à la place. Veuillez réinstaller riched32.dllImpossible d'obtenir l'entrée du processus filsImpossible d'obtenir les permissions du fichier « %s »Impossible d'écraser le fichier « %s »Impossible de configurer les permissions du fichier « %s »Nombre d'arguments incorrect.IndenterIndentations && EspacementsIndexIndien (ISO-8859-12)InfoL'initialisation a échoué dans post init; abandon.InsérerInsérer un ChampInsérer une imageInsérer un ObjetInsérer du texteInsère un saut de page avant le paragraphe.Index d'image TIFF non valable.Spécification du mode d'affichage « %s » non valable.Spécification géométrique « %s » non valableFichier verrou « %s » non valable.Catalogue de message invalide.Identifiant d'objet non valable ou vide indiqué à GetObjectClassInfoIdentifiant d'objet non valable ou vide indiqué à HasObjectClassInfoExpression rationnelle « %s » non valable : %sItaliqueEnveloppe italienne, 110 x 230 mmJPEG : échec du chargement - le fichier est probablement corrompu.JPEG : échec de la sauvegarde de l'image.Carte postale double japonaise 200 x148 mmEnveloppe japonaise Chou n. 3Enveloppe japonaise Chou n. 3 PaysageEnveloppe japonaise Chou n. 4Enveloppe japonaise Chou n. 4 PaysageEnveloppe japonaise Kaky n. 2Enveloppe japonaise Kaky n. 2 PaysageEnveloppe japonaise Kaky n. 3Enveloppe japonaise Kaky n. 3 PaysageEnveloppe japonaise Kaky n. 4Enveloppe japonaise Kaky n. 4 PaysageEnveloppe japonaise 100 x 148 mmEnveloppe japonaise Paysage 148 x 100 mmAller àJustifiéJustifier le texte.KOI8-RKOI8-UKP_KP_PLUSKP_DEBUTKP_VIRGULEKP_EFFACERKP_DIVISERKP_BASKP_FINKP_ENTRERKP_EGALKP_DEBUTKP_INSERERKP_GAUCHEKP_MULTIPLIERKP_SUIVANTKP_PAGESUIVANTEKP_PAGEPRECEDENTEKP_PRECEDENTKP_DROITEKP_SEPARATEURKP_ESPACEKP_MOINSKP_TABULATIONKP_HAUTGAUCHEPaysageDernierDernière pageLe dernier message répété ("%s", %lu fois) n'a pas été affichéLe dernier message répété ("%s", %lu fois) n'a pas été affichéGrand livre (17 x 11 pouces)GaucheGauche (&Première ligne):Marge gauche (mm) :Aligne le texte à gaucheLégal Extra 9,5 x 15 poucesLégal (8,5 x 14 pouces)Lettre Extra 9.5 x 12 poucesLettre Extra Portrait 9.275 x 12 poucesLettre Plus 8,5 x 11.69 poucesLettre paysage 11 x 8.5 poucesLettre réduite (8,5 x 11 pouces)Lettre 8,5 x 11 poucesLettre (8,5 x 11 pouces)LicenceLégerLa ligne %lu du fichier carte "%s" a une syntaxe invalide et a été sautée.Espacement interligne:Le lien contenait « // » et a été converti en lien absolu.Style de listeStyles de listeListe des tailles de polices en points.Liste des polices de caractères disponibles.Charger le fichier %sChargement : Le fichier verrou « %s » a un propriétaire incorrectLe fichier verrou « %s » a des permissions incorrectes.Journal sauvé dans le fichier « %s ».Lettres minusculesChiffres romains minusculesFils MDIMENULes fonctions de l'aide MS HTML ne sont pas disponibles car la bibliothèque MS HTML Help n'est pas présente sur cette machine. Veuillez l'installer.Ma&ximiserMacArabeMacArménienMacBengaliMacCelteMacChinoisSimpMacChinoisTradMacCroateMacCyrilliqueMacDingbatsMacÉthiopienMacArabeÉtenduMacGaélicMacGéorgienMacGrecMacHébreuMacIslandaisMacJaponaisMacKhmerMacCoréenMacLaotienMacMongolMacRomanMacRoumainMacSymboleMacTamoulMacThaïMacTibétainMacTurqueMacVietnamienCréer une sélection :MargesRespecter la casseHauteur max :Largeur Max :La mémoire VFS contient déjà le fichier « %s ».MenuMessageThème métalliqueMéthode ou propriété non trouvée.Mi&nimiserHauteur min :Largeur min :Un paramètre requis est manquant.ModerneModifiéL'initialisation du module "%s" a échouéEnveloppe monarchique (3,875 x 7,5 pouces)La surveillance des modifications de fichiers individuels n'est actuellement pas supporté.DescendreMonterDéplacer l'objet vers le paragraphe suivant.Déplacer l'objet vers le paragraphe précédent.Propriétés de Plusieurs CellulesNUM_LOCKNomRéseauNouveauNouveau Style de &Boîte...Nouveau Style de &Caractères...Nouveau Style de &Liste...Nouveau Style de &Paragraphe...Nouveau styleNouveau répertoireNouvel élémentNouveauNomSuivantPage suivanteNonAucun gestionnaire d'animation n'est défini pour le type %ld.Aucun gestionnaire d'image défini pour le type %d.Pas d'application configurée pour les fichiers HTML.Aucune entrée trouvée.Aucune police trouvée pour afficher du texte avec le codage « %s », mais le codage similaire « %s » est disponible. Souhaitez-vous l'utiliser (sinon, vous devrez en choisir un autre) ?Aucune police trouvée pour afficher du texte avec le codage « %s », Souhaitez-vous choisir une police à utiliser pour ce codage (sinon le texte avec ce codage n'apparaîtra pas correctement) ?Aucun gestionnaire trouvé pour le type d'animation.Aucun gestionnaire trouvé pour le type d'image.Aucun gestionnaire d'image défini pour le type %d.Aucun gestionnaire d'image défini pour le type %s.Aucune page correspondante n'a encore été trouvéePas de sonAucune couleur n'est disponible dans l'image en cours de masquage.Aucune couleur n'est disponible dans l'image.Aucune table de correspondance valide n'a été trouvée dans le fichier "%s".AucunNordique (ISO-8859-10)NormalNormal
    et souligné. Police normale :Non disponibleNon soulignéNote (8,5 x 11 pouces)Le nombre de colonnes n'a pas pu être déterminé.Table des matières numérotéeOKErreur OLE Automation dans %s : %sPropriétés de l'ObjetL'implémentation de l'objet ne supporte pas les arguments nommés.Les objets doivent avoir un attribut idOuvrir un FichierOuvrir un document HTMLOuvrir le fichier « %s »Ouvrir...La fonction OpenGL "%s" a échoué : %s (erreur %d)Opération interdite.L'option « %s » nécessite une valeur.Option « %s » : « %s » ne peut pas être converti en date.OptionsOrientationContourPAGESUIVANTEPAGEPRECEDENTEPAUSEPCX : impossible d'allouer de la mémoirePCX : format d'image non géréPCX : image non valablePCX : ce n'est pas un fichier PCX.PCX : erreur inconnue.PCX : numéro de version trop petitPAGESUIVANTEPAGEPRECEDENTEPNM : impossible d'allouer de la mémoire.PNM : le format de fichier n'est pas reconnu.PNM : le fichier semble tronqué.PRC 16K 146 x 215 mmPRC 16K PaysagePRC 32K 97 x 151 mmPRC 32K PaysageFormat PRC 32K (Large), 97 x 151 mmFormat PRC 32K (Large), PaysageEnveloppe PRC n. 1, 102 x 165 mmEnveloppe PRC n. 1, Paysage, 165 x 102 mmEnveloppe PRC n. 10, 324 x 458 mmEnveloppe PRC n. 10, Paysage, 458 x 324 mmEnveloppe PRC n. 2, 102 x 176 mmEnveloppe PRC n. 2, Paysage, 176 x 102 mmEnveloppe PRC n. 3, 125 x 176 mmEnveloppe PRC n. 3, Paysage, 176 x 125 mmEnveloppe PRC n. 4, 110 x 208 mmEnveloppe PRC n. 4, Paysage, 208 x 110 mmEnveloppe PRC n. 5, 110 x 220 mmEnveloppe PRC n. 5, Paysage, 220 x 110 mmEnveloppe PRC n. 6, 120 x 230 mmEnveloppe PRC n. 6, Paysage, 230 x 120 mmEnveloppe PRC n. 7, 160 x 230 mmEnveloppe PRC n. 7, Paysage, 230 x 160 mmEnveloppe PRC n. 8, 120 x 309 mmEnveloppe PRC n. 8, Paysage, 309 x 120 mmEnveloppe PRC n. 9, 229 x 324 mmEnveloppe PRC n. 9, Paysage, 324 x 229 mmIMPRIMEREspacementPage %dPage %d de %dMise en pageMise en pagePagesTaille de la pageStyles de paragrapheObjet déjà enregistré indiqué à SetObjectCollerColler la sélection&VirgulePermissionsPropriétés de l'ImageÉchec de la création du tubeChoisissez une police valable.Choisissez un fichier existant.Choisissez la page à afficher :Veuillez choisir à quel FAI vous voulez vous connecterVeuillez installer une nouvelle version de comctl32.dll (la version 4.70 au minimum est nécessaire, contre la version %d.%02d actuellement), sinon ce programme ne fonctionnera pas correctement.SVP, sélectionnez les colonnes à afficher et définissez leur ordre :Patientez pendant l'impression...Taille de PointPortraitPositionFichier PostScriptPréférencesPréférences...PréparationAperçu :Page précédenteImprimerAperçu avant impressionErreur de l'aperçu avant impressionPages à imprimerConfiguration de l'impressionImprimer en couleur&Aperçu avant impression...Échec de la création de l'aperçu avant impression.Aperçu avant impression...Queue d'impressionImprimer cette pageImprimer dans un fichier&Imprimer...ImprimanteCommande pour l'imprimante :Options de l'imprimanteOptions de l'imprimante :Imprimante...Imprimante :ImpressionImpression en coursErreur d'impressionImpression de la page %d sur %dImpression de la page %d...Impression en cours...ImpressionÉchec du traitement du rapport de débogage, les fichiers sont maintenus dans le répertoire « %s ».Avancement :PropriétésPropriétéErreur de PropriétéQuarto, 215 x 275 mmQuestionQuitterQuitter %sQuitter ce programmeRETOURDROITEErreur de lecture dans le fichier « %s »PrêtRefaireExécuter à nouveau la dernière actionActualiserLa clé de registre « %s » existe déjà.Impossible de renommer la clé de registre « %s », celle-ci n'existe pas.La clé de registre « %s » est nécessaire pour un fonctionnement correct du système ; sa suppression laissera votre système inutilisable : opération abandonnée.La valeur de registre « %s » existe déjà.RégulierRelatifEntrées pertinentes :SupprimerRetirer la page courante de vos signetsLe moteur de rendu « %s » a une version %d.%d incompatible et n'a pas pu être chargé.Échec du rendu.Renuméroter la listeRemp&lacerRemplacerRempl&acer toutRemplacer la sélectionRemplacer par :La ressource « %s » n'est pas un catalogue messages valide.Changer en enregistréDroiteMarge droite (mm) :Alignement à droite du texteRomanNom s&tandard de tiret:SCROLL_LOCKSELECTIONSEPARATEURCAPTURE_D_ECRANESPACESPECIALSOUSTRAIREEnregistrerEnregistrer le fichier %sEnregistrer &sous...Enregistrer SousEnregistrer sousEnregistrer le document courantEnregistrer le document courant avec un nouveau nomEnregistrer le contenu du journal dans un fichierScriptChercherRechercher dans le contenu du/des manuel(s) d'aide toutes les occurrences du texte que vous avez tapé ci-dessusDirection de la rechercheChercher :Chercher dans tous les manuelsRecherche...SectionsErreur de recherche dans le fichier « %s »Erreur de recherche dans le fichier « %s » (les fichiers importants ne sont pas gérés par stdio)&Tout sélectionnerTout sélectionnerSélectionner un modèle de documentSélectionner une vue du documentChoisir normal ou gras.Choisir normal ou italique.Choisir normal ou souligné.SélectionChoisissez le niveau de liste à éditer.Séparateur attendu après l'option « %s ».Définir le Style de CelluleSetProperty appelé sans monteur valableConfigurer...Plusieurs connexions actives trouvées, sélection unique aléatoire.Majuscule+Montrer les répertoires cac&hésMontrer les fichiers cac&hésTout MontrerMontrer la fenêtre d'à proposTout montrerMontrer tous les éléments de l'indexMontrer les répertoires cachésMontrer/cacher le panneau de navigationAffiche un échantillon d'UnicodeAffiche un aperçu des réglages pour les tirets.Affiche un aperçu de réglages de la police.Montre un aperçu de la liste.Affiche un aperçu des réglages de paragraphe.Montrer un aperçu des polices.Simple thème monochromeSimpleTailleTaille:SauterInclinéPetites M&ajusculesSolideImpossible d'ouvrir ce fichier.Mémoire insuffisante pour créer un aperçu.Désole mais ce nom est déjà pris. Veuillez en choisir un autre.Format de fichier inconnu.Format des données sonores non géré.Format du fichier sonore « %s » non géré.EspacementVérification OrthographiqueStandardCommuniqué (5,5 x 8,5 pouces)StatiqueÉtat :ArrêterBarréConversion de chaîne en couleur : spécification de la couleur non valable : %sStyleOrganiseur de stylesStyleIndiceExposantSuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSuisseSymbolePolice du symbole:SymbolesTABTIFF : allocation de mémoire impossible.TIFF : erreur au chargement de l'image.TIFF : erreur à la lecture de l'image.TIFF : erreur à la sauvegarde de l'image.TIFF : erreur à l'écriture de l'image.TIFF : La taille de l'image est anormalement grande.Propriétés du TableauTabloïde Extra 11.69 x 18 poucesTabloïde (11 x 17 pouces)TabulationsTélétypeModèlesThaï (ISO-8859-11)Mode passif non géré par le serveur FTP.Commande PORT non gérée par le serveur FTP.Les styles de tirets disponibles.Les styles disponibles.La couleur d'arrière plan.La taille de la marge inférieure.La taille de l'espacement inférieur.La position inférieure.Le caractère de tiret.Le code caractère.Jeu de caractères « %s » inconnu. Sélectionner un autre en remplacement ou [Annuler] s'il ne peut pas être remplacéFormat « %d » de presse-papiers inexistant.Le style par défaut pour le paragraphe suivant.Répertoire « %s » inexistant Le créer maintenant ?Le document "%s" ne tient pas sur la page horizontalement et sera tronqué s'il est imprimé. Voulez-vous néanmoins procéder à l'impression ?Le fichier « %s » n'existe pas et n'a pas pu être ouvert. Il a été retiré de la liste des fichiers récemment utilisés.Indentation de la première ligneCouleur de police.Famille de police.La police de laquelle prendre le symbole.Taille du point de la police.Taille de la police en points.Style de police.Largeur de police.Le format du fichier « %s » n'a pas pu être déterminé.L'indentintion de gauche.La taille de la marge gauche.La taille de l'espacement gauche.La position gauche.'espacemetn interligne.Le numéro de l'élément de la liste.La hauteur de l'objet.La hauteur maximum de l'objet.La largeur maximum de l'objet.La hauteur minimum de l'objet.La largeur minimum de l'objet.La largeur de l'objet.Le niveau du contour.Le message précédent répété %lu fois.Le message précédent répété %lu fois.Le message précédent répété une fois.Le dialogue d'impression a retourné une erreur.L'intervalle à afficher.Le rapport contient les fichiers listés ci-dessous. Si l'un de ces fichiers contient des informations sensibles, le décocher pour le retirer de ce rapport. Paramètre nécessaire « %s » non fourni.L'indentation à droite.La taille de la marge droite.La taille de l'espacement droit.La position droite.L'espacement après le paragraphe.L'espacement avant le paragraphe.Le nom du Style.Le style sur lequel ce style est basé.Aperçu des styles.Le système ne peut pas trouver le fichier spécifié.La position du taquet de tabulation.La position des taquets de tabulation.Le texte n'a pas pu être enregistré.La taille de la marge supérieure.La taille de l'espacement supérieur.La position supérieure.La valeur de l'option « %s » doit être précisée.La version du service d'accès distant (RAS) installée sur cette machine est trop ancienne. Veuillez la mettre à niveau (la fonction suivante manque : %s).Le wxGtkPrinterDC ne peut être utilisé.Un problème est apparu lors de la mise en page : la configuration d'une imprimante par défaut peut être nécessaire.Ce document ne tient pas sur la page horizontalement et sera tronqué lors de l'impression.Cette plateforme ne supporte pas la transparence d'arrière plan.Ce programme a été compilé avec une version trop ancienne de GTK+, veuillez recompiler avec GTK+ 2.12 ou plus récent.Ce système ne gère pas les contrôles de date, veuillez mettre à niveau votre version de comctl32.dllÉchec de l'initialisation du module du processus : enregistrement impossible de la valeur dans le stockage local des processusÉchec de l'initialisation du module du processus : échec de la création de la clé du processusÉchec de l'initialisation du module du processus : impossible d'allouer un index dans le stockage local des processusLa priorité donnée au processus est ignorée.Répartir &horizontalementRépartir &verticalementTemps dépassé lors de la connexion du serveur FTP, essai du mode passif.Échec de la création d'un minuteur.Astuce du JourAstuces non disponibles.À :Trop d'appels à EndStyle !Trop de couleurs dans l'image PNG, elle peut être légèrement trouble.HautMarge de haut de page (mm) :Traductions par TraducteursVraiTentative de suppression du fichier « %s » de la mémoire VFS, mais il n'est pas chargé.Turc (ISO-8859-9)TypeTaper le nom d'une police de caractères.Entrez une taille en points.Le type doit être énumérable - conversion longueHAUTStandard US en accordéon (14,875 x 11 pouces)US-ASCIIImpossible de fermer le chemin « %s »Impossible de fermer le gestionnaire pour « %s »Impossible d'ouvrir le chemin « %s »Impossible d'ouvrir le document HTML demandé : %sImpossible de jouer les sons de manière non synchroneRétablirSoulignerSoulignéAnnulerAnnuler la dernière actionCaractères non attendus suivant l'option « %s ».Paramètre « %s » inattenduUnicodeUnicode 16 bit (UTF-16)Unicode 16 bit gros-boutiste (UTF-16BE)Unicode 16 bit petit-boutiste (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit gros-boutiste (UTF-32BE)Unicode 32 bit petit-boutiste (UTF-8)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)DésindenterUnités pour l'épaisseur du bord inférieur.Unités pour la marge inférieure.Unités pour l'épaisseur du contour inférieur.Unités pour l'espacement inférieur.Unités pour la position inférieure.Unités pour l'épaisseur du bord gauche.Unités pour la marge gauche.Unités pour l'épaisseur du contour gauche.Unités pour l'espacement gauche.Unités pour la position gauche.Unités pour la hauteur maximum de l'objet.Unités pour la largeurmaximum de l'objet.Unités pour la hauteur minimum de l'objet.Unités pour la largeur minimum de l'objet.Unités pour la hauteur de l'objet.Unités pour la largeur de l'objet.Unités pour l'épaisseur du bord droit.Unités pour la marge droite.Unités pour l'épaisseur du contour droit.Unités pour l'espacement droit.Unités pour la position droite.Unités pour l'épaisseur du bord supérieur.Unités pour la marge supérieure.Unités pour l'épaisseur du contour supérieur.Unités pour l'espacement supérieur.Unités pour la position supérieure.InconnuErreur DDE inconnue : %08xObjet inconnu indiqué à GetObjectClassInfoUnité %d de résolution PNG inconnuePropriété « %s » inconnueRésolution TIFF inconnue Unité %d ignoréeFormat de donnée inconnuErreur de bibliothèque dynamique inconnueCodage inconnu (%d)Erreur inconnue %08xException inconnueFormat de données d'image inconnu.Option longue « %s » inconnueNom ou argument nommé inconnu.Option « %s » inconnueSymbole « { » non assorti dans une entrée pour le type mime %s.Commande sans nomNon-spécifiéFormat de presse-papiers non géré.Thème « %s » non géré.HautLettres majusculesChiffres romains majusculesUtilisation : %sUtiliser les réglages courants d'alignement.Conflit de validationValeurLa valeur doit être %s ou plus.La valeur doit être %s ou moins.La valeur doit être entre %s et %s.Version Alignement vertical.Voir les fichiers - vue détailléeVoir les fichiers - listeVuesWINDOWS_GAUCHEWINDOWS_MENUWINDOWS_DROITEAvertissement :PoidsEurope de l'Ouest (ISO-8859-1)Europe de l'Ouest avec l'Euro (ISO-8859-15)Si la police est soulignée.Mot completMots complets seulementThème Win32Win32s sur Windows 3.1Windows 2000Windows 7Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Arabe limité à Windows (CP 1256)Balte limité à Windows (CP 1257)Windows CE (%d.%d)Européen central limité à Windows (CP 1255)Chinois Simplifié Windows (CP 936) ou GB-2312Chinois Traditionnel Windows (CP 950) ou Big-5Cyrillique limité à Windows (CP 1251)Grec limité à Windows (CP 1253)Hébreu limité à Windows (CP 1255)Japonais Windows (CP 932) ou Shift-JISJohab Windows (CP 1361)Coréen limité à Windows (CP 949)Windows MEWindows NT %lu.%luWindows Server 2003Windows Server 2008Windows Server 2008 R2Windows Thai (CP 874)Turc limité à Windows (CP 1254)Vietnamien Windows (CP 1258)Windows VistaEuropéen occidental limité à Windows (CP 1252 )Windows XPWindows/DOS OEM (CP 437)Cyrillique OEM Windows/DOS (CP 866)Erreur d'écriture dans le fichier « %s »Erreur d'analyse XML : « %s » à la ligne %dXPM : données de pixel malformées.XPM : définition de couleur incorrecte à la ligne %dXPM: format de l'entête incorrecte !XPM : définition de couleur « %s » malformée à la ligne %d !XPM : pas de couleur restant à utiliser comme masque !XPM: les données de l'image sont tronquées à la ligne %d !OuiVous ne pouvez pas effectuer un Clear sur une zone de recouvrement avant qu'elle ne soit initialisée.Vous ne pouvez pas initialiser deux fois un overlayVous ne pouvez pas ajouter de nouveau répertoire à cette section.Vous avez entrée une valeur invalide. Pressez ESC pour annuler l'édition.Zoom &avantZoom a&rrièreZoom AvantZoom ArrièreZoom a&justéZoom Ajustéune application DDEML a créé une situation de concurrence prolongée.une fonction DDEML a été appelée sans appel préalable à la fonction DdeInitialize, ou un identifiant non valable a été fourni à la fonction DDEML.une tentative d'un client pour établir une conversation a échoué.une allocation de mémoire a échoué.un paramètre n'a pas pu être validé par la DDEML.une demande de transaction synchrone d'instructions a expiré.une demande de transaction synchrone de données a expiré.une demande de transaction synchrone d'exécutions a expiré.une demande de transaction synchrone de stockage a expiré.une demande pour terminer une transaction d'instructions a expiré.une transaction a été tentée du côté serveur lors d'une conversation déjà terminée par le client, ou le serveur a achevé la transaction avant la fin.une transaction a échoué.altune application initialisée en tant que APPCLASS_MONITOR a tenté d'effectuer une transaction DDE, ou une application initialisée en tant que APPCMD_CLIENTONLY a tenté d'effectuer des transactions serveur.un appel interne à la fonction PostMessage a échoué.une erreur interne s'est produite dans le DDEML.un identifiant de transaction non valable a été fourni à la fonction DDEML. Quand l'application sort d'un rappel XTYP_XACT_COMPLETE, l'identifiant de transaction pour ce rappel n'est plus valable.suppose qu'il s'agit d'un zip recombinétentative de modifier la touche non configurable « %s » ignorée.mauvais paramètres à la fonction de bibliothèquemauvaise signatureMauvais décalage de fichier zip dans l'entréebinairegrasLe tampon est trop petit pour le dossier Windows.impossible de fermer le fichier « %s »impossible de fermer le descripteur de fichier %dimpossible d'appliquer les changements au fichier « %s »impossible de créer le fichier « %s »impossible d'effacer le fichier de configuration utilisateur « %s »impossible de déterminer si la fin du fichier est atteinte dans le descripteur %dÉchec de l'exécution de « %s »impossible de trouver le répertoire principale dans le zipimpossible de trouver la taille du fichier dans le descripteur de fichier %dimpossible de trouver le répertoire HOME de l'utilisateur - utilisation du répertoire courant.impossible de forcer l'écriture sur disque du descripteur de fichier %dimpossible de trouver la position de recherche sur le descripteur de fichier %dimpossible de charger une police de caractères - abandonimpossible d'ouvrir le fichier « %s »impossible d'ouvrir le fichier de configuration global « %s ».impossible d'ouvrir le fichier de configuration utilisateur « %s ».impossible d'ouvrir le fichier de configuration utilisateur.impossible de réinitialiser le flux de déchargement de zlibimpossible de réinitialiser le flux de chargement de zlibimpossible de lire le descripteur de fichier %dimpossible de supprimer le fichier « %s »impossible de supprimer le fichier temporaire « %s »recherche impossible sur le descripteur de fichier %dimpossible d'écrire le tampon « %s » sur le disque.impossible d'écrire dans le descripteur de fichier %dimpossible d'écrire le fichier de configuration utilisateur.erreur de la somme de contrôleErreur de la somme de contrôle lors de la lecture du bloc d'entête de tarcmerreur de compressionéchec de la conversion dans un codage 8 bitsctrldateerreur de décompressiondéfautdoubleDécharger l'état du processus (binaire)dix-huitièmehuitièmeonzièmel'entrée « %s » apparaît plus d'une fois dans le groupe « %s »erreur dans le format des donnéeserreur à l'ouverture du fichier « %s »erreur à l'ouverture du fichiererreur à la lecture du répertoire principale du ziperreur à la lecture de l'en-tête local du ziperreur à l'écriture de l'entrée zip « %s » : mauvaise crc ou longueuréchec de la mise à jour du fichier « %s »quinzièmecinquièmefichier « %s », ligne %d : « %s » est ignoré après l'en-tête de groupe.fichier « %s », ligne %d : symbole « = » attendu.fichier « %s », ligne %d : première occurrence de la clé %s à la ligne %d.fichier « %s », ligne %d : valeur pour la touche non configurable « %s » ignorée.fichier %s : caractère %c inattendu a la ligne %d.Fichierspremiertaille de policequatorzièmequatrièmecréer des messages de journalisation verbeuximagele bloc d'entête de tar est incompletchaîne de gestion des événements non valable, point manquantla taille fournie pour l'entrée tar est incorrectedonnée invalide dans l'entête étendu de tarla boîte de message a renvoyé une valeur non valablefichier zip non valableitaliquelégerla locale « %s » ne peut pas être spécifiée.minuitdix-neuvièmeneuvièmeerreur - pas de DDE.aucune erreurpas de nommidinormalnon implémenténumles objets ne peuvent pas avoir de noeuds texte XMLcapacité mémoire dépasséepourcentdescription du contexte du processusptpxerreur de lecturelecture du flux zip (entrée %s) : mauvaise crclecture du flux zip (entrée %s) : mauvaise longueurproblème de double entrée.deuxièmeerreur de recherchedix-septièmeseptièmemajusculemontrer ce message d'aideseizièmesixièmespécifier le mode d'affichage à utiliser (par ex. 640x480-16)spécifier le thème à utiliserstandard/circulairestandard/contour circulairestandard/diamantstandard/carréstandard/trianglelongueur du fichier enregistré absente de l'en-tête du Zipstrbarrél'entrée tar n'est pas ouvertedixièmela réponse à la transaction a provoqué la spécification du bit DDE_FBUSY.troisièmetreizièmeaujourd'huidemainanti-slash de fin ignoré dans '%s'Liste des traducteursdouzièmevingtièmesoulignésymbole " inattendu à la position %d dans « %s ».Fin de fichier inattendueinconnuclasse « %s » inconnueerreur inconnueerreur inconnue (code d'erreur %08x).origine de la recherche inconnueinconnu-%dsans nomsans nom %dméthode de compression zip non géréeutilisation du catalogue « %s » de « %s ».erreur d'écriturewxGetTimeOfDay a échoué.wxWidgets n'a pas pu ouvrir d'affichage pour %s : abandon.wxWidgets n'a pas pu ouvrir d'affichage : abandon.xxxxhiererreur zlib %d~ginkgocadx-3.8.7/cadxcore/lang/fr/wxstd.po000066400000000000000000010054641314736454600205270ustar00rootroot00000000000000# Initial translation by Stephane Junique # Updated by Nicolas Velin msgid "" msgstr "" "Project-Id-Version: wxWidgets 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-01 19:04+0200\n" "PO-Revision-Date: 2013-06-11 22:58+0100\n" "Last-Translator: Xaviou \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "plural-forms: nplurals=2; plural=n > 1\n" #: ../src/common/debugrpt.cpp:591 msgid "" "\n" "Please send this report to the program maintainer, thank you!\n" msgstr "" "\n" "Merci d'envoyer ce rapport au responsable du programme !\n" #: ../src/richtext/richtextstyledlg.cpp:210 #: ../src/richtext/richtextstyledlg.cpp:222 msgid " " msgstr " " #: ../src/generic/dbgrptg.cpp:326 msgid " Thank you and we're sorry for the inconvenience!\n" msgstr " Merci et désolé pour le dérangement.\n" #: ../src/common/prntbase.cpp:546 #, c-format msgid " (copy %d of %d)" msgstr "(copie %d sur %d)" #: ../src/common/log.cpp:425 #, c-format msgid " (error %ld: %s)" msgstr " (erreur %ld : %s)" #: ../src/common/imagtiff.cpp:75 #, c-format msgid " (in module \"%s\")" msgstr " (dans le module \"%s\")" #: ../src/common/docview.cpp:1624 msgid " - " msgstr " - " #: ../src/richtext/richtextprint.cpp:588 ../src/html/htmprint.cpp:704 msgid " Preview" msgstr " Aperçu" #: ../src/common/fontcmn.cpp:811 msgid " bold" msgstr "gras" #: ../src/common/fontcmn.cpp:827 msgid " italic" msgstr "italique" #: ../src/common/fontcmn.cpp:807 msgid " light" msgstr "léger" #: ../src/common/paper.cpp:118 msgid "#10 Envelope, 4 1/8 x 9 1/2 in" msgstr "Enveloppe n° 10 (4,125 x 9,5 pouces)" #: ../src/common/paper.cpp:119 msgid "#11 Envelope, 4 1/2 x 10 3/8 in" msgstr "Enveloppe n° 11 (4,5 x 10,375 pouces)" #: ../src/common/paper.cpp:120 msgid "#12 Envelope, 4 3/4 x 11 in" msgstr "Enveloppe n° 12 (4,75 x 11 pouces)" #: ../src/common/paper.cpp:121 msgid "#14 Envelope, 5 x 11 1/2 in" msgstr "Enveloppe n° 14 (5 x 11,5 pouces)" #: ../src/common/paper.cpp:117 msgid "#9 Envelope, 3 7/8 x 8 7/8 in" msgstr "Enveloppe n° 9 (3,875 x 8,875 pouces)" #: ../src/html/helpwnd.cpp:1044 #, c-format msgid "%d of %lu" msgstr "%d dur %lu" #: ../src/html/helpwnd.cpp:1681 ../src/html/helpwnd.cpp:1719 #, c-format msgid "%i of %i" msgstr "%i de %i" #: ../src/generic/filectrlg.cpp:315 #, c-format msgid "%ld byte" msgid_plural "%ld bytes" msgstr[0] "%ld octet" msgstr[1] "%ld octets" #: ../src/html/helpwnd.cpp:1046 #, c-format msgid "%lu of %lu" msgstr "%lu sur %lu" #: ../src/common/cmdline.cpp:1050 #, c-format msgid "%s (or %s)" msgstr "%s (ou %s)" #: ../src/generic/logg.cpp:230 #, c-format msgid "%s Error" msgstr "%s Erreur" #: ../src/generic/logg.cpp:242 #, c-format msgid "%s Information" msgstr "%s Information" #: ../src/generic/preferencesg.cpp:110 #, c-format msgid "%s Preferences" msgstr "Préférences %s" #: ../src/generic/logg.cpp:234 #, c-format msgid "%s Warning" msgstr "%s Avertissement" #: ../src/common/tarstrm.cpp:1319 #, c-format msgid "%s did not fit the tar header for entry '%s'" msgstr "%s ne rentre pas dans l'entête tar pour l'entrée '%s'" #: ../src/common/fldlgcmn.cpp:106 #, c-format msgid "%s files (%s)|%s" msgstr "%s fichiers (%s)|%s" #: ../src/common/stockitem.cpp:139 ../src/html/helpfrm.cpp:142 #: ../src/html/helpfrm.cpp:144 msgid "&About" msgstr "À &propos" #: ../src/common/stockitem.cpp:207 msgid "&Actual Size" msgstr "&Taille actuelle" #: ../src/richtext/richtextindentspage.cpp:262 msgid "&After a paragraph:" msgstr "&Après un paragraphe :" #: ../src/richtext/richtextindentspage.cpp:128 #: ../src/richtext/richtextliststylepage.cpp:319 msgid "&Alignment" msgstr "&Alignement" #: ../src/common/stockitem.cpp:141 msgid "&Apply" msgstr "&Appliquer" #: ../src/richtext/richtextstyledlg.cpp:251 msgid "&Apply Style" msgstr "&Appliquer le style" #: ../src/msw/mdi.cpp:175 msgid "&Arrange Icons" msgstr "&Arranger les icônes" #: ../src/common/stockitem.cpp:195 msgid "&Ascending" msgstr "Croiss&ant" #: ../src/common/stockitem.cpp:142 msgid "&Back" msgstr "&Retour" #: ../src/richtext/richtextstylepage.cpp:113 msgid "&Based on:" msgstr "&Basé sur:" #: ../src/richtext/richtextindentspage.cpp:253 msgid "&Before a paragraph:" msgstr "Avant un paragraphe :" #: ../src/richtext/richtextfontpage.cpp:271 #, fuzzy msgid "&Bg colour:" msgstr "C&ouleur :" #: ../src/common/stockitem.cpp:143 msgid "&Bold" msgstr "&Gras" #: ../src/common/stockitem.cpp:144 msgid "&Bottom" msgstr "&Bas" #: ../src/richtext/richtextborderspage.cpp:359 #: ../src/richtext/richtextborderspage.cpp:503 #: ../src/richtext/richtextmarginspage.cpp:260 #: ../src/richtext/richtextmarginspage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:637 #: ../src/richtext/richtextsizepage.cpp:644 msgid "&Bottom:" msgstr "&Bas :" #: ../include/wx/richtext/richtextbuffer.h:3530 msgid "&Box" msgstr "&Boîte" #: ../src/richtext/richtextliststylepage.cpp:210 #: ../src/richtext/richtextbulletspage.cpp:159 msgid "&Bullet style:" msgstr "Style de ti&ret:" #: ../src/common/stockitem.cpp:146 msgid "&CD-Rom" msgstr "&CD-Rom" #: ../src/generic/wizard.cpp:432 ../src/generic/fontdlgg.cpp:470 #: ../src/generic/fontdlgg.cpp:489 ../src/osx/carbon/fontdlg.cpp:588 #: ../src/common/stockitem.cpp:145 msgid "&Cancel" msgstr "&Annuler" #: ../src/msw/mdi.cpp:171 msgid "&Cascade" msgstr "&Cascade" #: ../include/wx/richtext/richtextbuffer.h:5587 msgid "&Cell" msgstr "&Cellule" #: ../src/richtext/richtextsymboldlg.cpp:439 msgid "&Character code:" msgstr "&Code caractère" #: ../src/common/stockitem.cpp:147 msgid "&Clear" msgstr "&Supprimer" #: ../src/generic/logg.cpp:522 ../src/common/stockitem.cpp:148 #: ../src/common/prntbase.cpp:1570 ../src/univ/themes/win32.cpp:3756 #: ../src/html/helpfrm.cpp:139 msgid "&Close" msgstr "&Fermer" #: ../src/common/stockitem.cpp:193 msgid "&Color" msgstr "&Couleur :" #: ../src/richtext/richtextfontpage.cpp:258 msgid "&Colour:" msgstr "C&ouleur :" #: ../src/common/stockitem.cpp:149 msgid "&Convert" msgstr "&Convertir" #: ../src/richtext/richtextctrl.cpp:326 ../src/osx/textctrl_osx.cpp:583 #: ../src/common/stockitem.cpp:150 ../src/msw/textctrl.cpp:2284 msgid "&Copy" msgstr "&Copier" #: ../src/generic/hyperlinkg.cpp:156 msgid "&Copy URL" msgstr "&Copier l'adresse" #: ../src/common/headerctrlcmn.cpp:328 msgid "&Customize..." msgstr "&Personnaliser..." #: ../src/generic/dbgrptg.cpp:334 msgid "&Debug report preview:" msgstr "Aperçu du rapport de &débogage :" #: ../src/richtext/richtexttabspage.cpp:142 #: ../src/richtext/richtextctrl.cpp:328 ../src/osx/textctrl_osx.cpp:585 #: ../src/common/stockitem.cpp:152 ../src/msw/textctrl.cpp:2286 msgid "&Delete" msgstr "&Supprimer" #: ../src/richtext/richtextstyledlg.cpp:269 msgid "&Delete Style..." msgstr "Su&pprimer le style" #: ../src/common/stockitem.cpp:196 msgid "&Descending" msgstr "&Décroissant" #: ../src/generic/logg.cpp:688 msgid "&Details" msgstr "&Détails" #: ../src/common/stockitem.cpp:153 msgid "&Down" msgstr "&Bas" #: ../src/common/stockitem.cpp:154 msgid "&Edit" msgstr "&Edition" #: ../src/richtext/richtextstyledlg.cpp:263 msgid "&Edit Style..." msgstr "Édit&er le style..." #: ../src/common/stockitem.cpp:155 msgid "&Execute" msgstr "&Exécuter" #: ../src/common/stockitem.cpp:157 ../src/html/helpfrm.cpp:146 msgid "&File" msgstr "&Fichier" #: ../src/common/stockitem.cpp:158 msgid "&Find" msgstr "&Trouver" #: ../src/generic/wizard.cpp:626 msgid "&Finish" msgstr "&Finir" #: ../src/common/stockitem.cpp:159 msgid "&First" msgstr "&Premier" #: ../src/richtext/richtextsizepage.cpp:244 msgid "&Floating mode:" msgstr "Mode &Flottant :" #: ../src/common/stockitem.cpp:160 msgid "&Floppy" msgstr "&Disquette" #: ../src/common/stockitem.cpp:194 msgid "&Font" msgstr "&Police" #: ../src/generic/fontdlgg.cpp:371 msgid "&Font family:" msgstr "&Famille de polices :" #: ../src/richtext/richtextliststylepage.cpp:194 msgid "&Font for Level..." msgstr "&Police de caractères pour le niveau..." #: ../src/richtext/richtextfontpage.cpp:156 #: ../src/richtext/richtextsymboldlg.cpp:400 msgid "&Font:" msgstr "&Famille de polices :" #: ../src/common/stockitem.cpp:161 msgid "&Forward" msgstr "&Suivant" #: ../src/richtext/richtextsymboldlg.cpp:451 msgid "&From:" msgstr "De :" #: ../src/common/stockitem.cpp:162 msgid "&Harddisk" msgstr "&Disque-dur" #: ../src/richtext/richtextsizepage.cpp:351 #: ../src/richtext/richtextsizepage.cpp:358 msgid "&Height:" msgstr "&Hauteur :" #: ../src/generic/wizard.cpp:435 ../src/richtext/richtextstyledlg.cpp:303 #: ../src/richtext/richtextsymboldlg.cpp:479 ../src/osx/menu_osx.cpp:785 #: ../src/common/stockitem.cpp:163 ../src/html/helpfrm.cpp:147 msgid "&Help" msgstr "&Aide" #: ../include/wx/richmsgdlg.h:30 msgid "&Hide details" msgstr "Cac&her les détails" #: ../src/common/stockitem.cpp:164 msgid "&Home" msgstr "&Répertoire personnel" #: ../src/richtext/richtextindentspage.cpp:184 #: ../src/richtext/richtextliststylepage.cpp:372 msgid "&Indentation (tenths of a mm)" msgstr "&Indentation (dixièmes de mm)" #: ../src/richtext/richtextindentspage.cpp:167 #: ../src/richtext/richtextliststylepage.cpp:356 msgid "&Indeterminate" msgstr "&Indeterminé" #: ../src/common/stockitem.cpp:166 msgid "&Index" msgstr "&Index" #: ../src/common/stockitem.cpp:167 msgid "&Info" msgstr "&Info" #: ../src/common/stockitem.cpp:168 msgid "&Italic" msgstr "&Italique" #: ../src/common/stockitem.cpp:169 msgid "&Jump to" msgstr "&Aller à" #: ../src/richtext/richtextindentspage.cpp:153 #: ../src/richtext/richtextliststylepage.cpp:342 msgid "&Justified" msgstr "&Justifié" #: ../src/common/stockitem.cpp:174 msgid "&Last" msgstr "&Dernier" #: ../src/richtext/richtextindentspage.cpp:139 #: ../src/richtext/richtextliststylepage.cpp:328 msgid "&Left" msgstr "&Gauche" #: ../src/richtext/richtextindentspage.cpp:195 #: ../src/richtext/richtextborderspage.cpp:269 #: ../src/richtext/richtextborderspage.cpp:413 #: ../src/richtext/richtextliststylepage.cpp:381 #: ../src/richtext/richtextmarginspage.cpp:187 #: ../src/richtext/richtextmarginspage.cpp:301 #: ../src/richtext/richtextsizepage.cpp:532 #: ../src/richtext/richtextsizepage.cpp:539 msgid "&Left:" msgstr "&Gauche:" #: ../src/richtext/richtextliststylepage.cpp:183 msgid "&List level:" msgstr "Niveau de &Liste:" #: ../src/generic/logg.cpp:523 msgid "&Log" msgstr "&Journal" #: ../src/univ/themes/win32.cpp:3748 msgid "&Move" msgstr "&Déplacer" #: ../src/richtext/richtextsizepage.cpp:672 msgid "&Move the object to:" msgstr "&Déplacer l'objet vers :" #: ../src/common/stockitem.cpp:175 msgid "&Network" msgstr "&Reseau" #: ../src/richtext/richtexttabspage.cpp:136 ../src/common/stockitem.cpp:176 msgid "&New" msgstr "&Nouveau" #: ../src/aui/tabmdi.cpp:111 ../src/generic/mdig.cpp:100 #: ../src/msw/mdi.cpp:176 msgid "&Next" msgstr "&Suivant" #: ../src/generic/wizard.cpp:431 ../src/generic/wizard.cpp:626 msgid "&Next >" msgstr "&Suivant >" #: ../src/richtext/richtextsizepage.cpp:681 msgid "&Next Paragraph" msgstr "Paragraphe Suiva&nt" #: ../src/generic/tipdlg.cpp:276 msgid "&Next Tip" msgstr "&Astuce suivante" #: ../src/richtext/richtextstylepage.cpp:123 msgid "&Next style:" msgstr "&Style Suivant :" #: ../src/common/stockitem.cpp:177 ../src/msw/msgdlg.cpp:476 msgid "&No" msgstr "&Non" #: ../src/generic/dbgrptg.cpp:356 msgid "&Notes:" msgstr "&Notes :" #: ../src/richtext/richtextbulletspage.cpp:264 msgid "&Number:" msgstr "&Numéro" #: ../src/generic/fontdlgg.cpp:475 ../src/generic/fontdlgg.cpp:482 #: ../src/osx/carbon/fontdlg.cpp:594 ../src/common/stockitem.cpp:178 msgid "&OK" msgstr "&Accepter" #: ../src/generic/dbgrptg.cpp:342 ../src/common/stockitem.cpp:179 #: ../src/html/helpfrm.cpp:137 msgid "&Open..." msgstr "&Ouvrir..." #: ../src/richtext/richtextindentspage.cpp:222 msgid "&Outline level:" msgstr "Niveau de C&ontour :" #: ../src/richtext/richtextindentspage.cpp:293 msgid "&Page Break" msgstr "Saut de &Page" #: ../src/richtext/richtextctrl.cpp:327 ../src/osx/textctrl_osx.cpp:584 #: ../src/common/stockitem.cpp:180 ../src/msw/textctrl.cpp:2285 msgid "&Paste" msgstr "&Coller" #: ../include/wx/richtext/richtextbuffer.h:4655 msgid "&Picture" msgstr "&Image" #: ../src/generic/fontdlgg.cpp:422 msgid "&Point size:" msgstr "Taille de &point :" #: ../src/richtext/richtexttabspage.cpp:114 msgid "&Position (tenths of a mm):" msgstr "&Position (dizièmes de mm):" #: ../src/richtext/richtextsizepage.cpp:514 msgid "&Position mode:" msgstr "Mode de &position :" #: ../src/common/stockitem.cpp:181 msgid "&Preferences" msgstr "&Préférences" #: ../src/aui/tabmdi.cpp:112 ../src/generic/mdig.cpp:101 #: ../src/msw/mdi.cpp:177 msgid "&Previous" msgstr "&Précédent" #: ../src/richtext/richtextsizepage.cpp:675 msgid "&Previous Paragraph" msgstr "Paragraphe &Précédent" #: ../src/common/stockitem.cpp:183 msgid "&Print..." msgstr "&Imprimer..." #: ../src/richtext/richtextctrl.cpp:332 ../src/richtext/richtextctrl.cpp:4945 #: ../src/common/stockitem.cpp:184 msgid "&Properties" msgstr "&Propriétés" #: ../src/common/stockitem.cpp:156 msgid "&Quit" msgstr "&Quitter" #: ../src/richtext/richtextctrl.cpp:323 ../src/osx/textctrl_osx.cpp:580 #: ../src/common/stockitem.cpp:185 ../src/common/cmdproc.cpp:293 #: ../src/common/cmdproc.cpp:300 ../src/msw/textctrl.cpp:2281 msgid "&Redo" msgstr "&Refaire" #: ../src/common/cmdproc.cpp:289 ../src/common/cmdproc.cpp:309 msgid "&Redo " msgstr "&Refaire " #: ../src/richtext/richtextstyledlg.cpp:257 msgid "&Rename Style..." msgstr "&Renommer le style..." #: ../src/generic/fdrepdlg.cpp:179 msgid "&Replace" msgstr "&Remplacer" #: ../src/richtext/richtextstyledlg.cpp:287 msgid "&Restart numbering" msgstr "&Recommencer la numérotation" #: ../src/univ/themes/win32.cpp:3747 msgid "&Restore" msgstr "&Restaurer" #: ../src/richtext/richtextindentspage.cpp:146 #: ../src/richtext/richtextliststylepage.cpp:335 msgid "&Right" msgstr "&Droite" #: ../src/richtext/richtextindentspage.cpp:213 #: ../src/richtext/richtextborderspage.cpp:299 #: ../src/richtext/richtextborderspage.cpp:443 #: ../src/richtext/richtextliststylepage.cpp:399 #: ../src/richtext/richtextmarginspage.cpp:212 #: ../src/richtext/richtextmarginspage.cpp:326 #: ../src/richtext/richtextsizepage.cpp:602 #: ../src/richtext/richtextsizepage.cpp:609 msgid "&Right:" msgstr "&Droite :" #: ../src/common/stockitem.cpp:190 msgid "&Save" msgstr "&Enregistrer" #: ../src/common/stockitem.cpp:191 msgid "&Save as" msgstr "Enregistrer &Sous" #: ../include/wx/richmsgdlg.h:29 msgid "&See details" msgstr "Voir les détail&s" #: ../src/generic/tipdlg.cpp:270 msgid "&Show tips at startup" msgstr "&Afficher les astuces au démarrage" #: ../src/univ/themes/win32.cpp:3750 msgid "&Size" msgstr "&Taille" #: ../src/richtext/richtextfontpage.cpp:168 msgid "&Size:" msgstr "&Taille :" #: ../src/generic/progdlgg.cpp:282 msgid "&Skip" msgstr "Pa&sser" #: ../src/richtext/richtextindentspage.cpp:242 #: ../src/richtext/richtextliststylepage.cpp:417 msgid "&Spacing (tenths of a mm)" msgstr "E&spacement (dixièmes de mm)" #: ../src/common/stockitem.cpp:197 msgid "&Spell Check" msgstr "&Vérification Orthographique" #: ../src/common/stockitem.cpp:198 msgid "&Stop" msgstr "&Arrêter" #: ../src/richtext/richtextfontpage.cpp:284 ../src/common/stockitem.cpp:199 msgid "&Strikethrough" msgstr "&Barré" #: ../src/generic/fontdlgg.cpp:382 ../src/richtext/richtextstylepage.cpp:104 msgid "&Style:" msgstr "&Style :" #: ../src/richtext/richtextstyledlg.cpp:198 msgid "&Styles:" msgstr "&Style :" #: ../src/richtext/richtextsymboldlg.cpp:413 msgid "&Subset:" msgstr "&Sous-ensemble:" #: ../src/richtext/richtextliststylepage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:222 msgid "&Symbol:" msgstr "&Symbole :" #: ../include/wx/richtext/richtextbuffer.h:5679 #, fuzzy msgid "&Table" msgstr "Tabulations" #: ../src/common/stockitem.cpp:200 msgid "&Top" msgstr "Hau&t" #: ../src/richtext/richtextborderspage.cpp:329 #: ../src/richtext/richtextborderspage.cpp:473 #: ../src/richtext/richtextmarginspage.cpp:235 #: ../src/richtext/richtextmarginspage.cpp:349 #: ../src/richtext/richtextsizepage.cpp:567 #: ../src/richtext/richtextsizepage.cpp:574 msgid "&Top:" msgstr "Hau&t :" #: ../src/generic/fontdlgg.cpp:444 ../src/common/stockitem.cpp:202 msgid "&Underline" msgstr "&Souligner" #: ../src/richtext/richtextfontpage.cpp:243 msgid "&Underlining:" msgstr "So&uligner:" #: ../src/richtext/richtextctrl.cpp:322 ../src/osx/textctrl_osx.cpp:579 #: ../src/common/stockitem.cpp:203 ../src/common/cmdproc.cpp:271 #: ../src/msw/textctrl.cpp:2280 msgid "&Undo" msgstr "&Annuler" #: ../src/common/cmdproc.cpp:265 msgid "&Undo " msgstr "&Annuler " #: ../src/common/stockitem.cpp:204 msgid "&Unindent" msgstr "&Désindenter" #: ../src/common/stockitem.cpp:205 msgid "&Up" msgstr "&Haut" #: ../src/richtext/richtextsizepage.cpp:278 msgid "&Vertical alignment:" msgstr "Alignement &vertical :" #: ../src/generic/dbgrptg.cpp:340 #, fuzzy msgid "&View..." msgstr "&Ouvrir..." #: ../src/generic/fontdlgg.cpp:393 msgid "&Weight:" msgstr "&Largeur :" #: ../src/richtext/richtextsizepage.cpp:317 #: ../src/richtext/richtextsizepage.cpp:324 msgid "&Width:" msgstr "&Largeur :" #: ../src/aui/tabmdi.cpp:311 ../src/aui/tabmdi.cpp:327 #: ../src/aui/tabmdi.cpp:329 ../src/generic/mdig.cpp:294 #: ../src/generic/mdig.cpp:310 ../src/generic/mdig.cpp:314 #: ../src/msw/mdi.cpp:77 msgid "&Window" msgstr "&Fenêtre" #: ../src/common/stockitem.cpp:206 ../src/msw/msgdlg.cpp:476 msgid "&Yes" msgstr "&Oui" #: ../src/common/config.cpp:523 ../src/msw/regconf.cpp:258 #, c-format msgid "'%s' has extra '..', ignored." msgstr "« %s » a trop de « .. » : ils sont ignorés." #: ../src/common/valtext.cpp:249 ../src/common/valtext.cpp:251 #: ../src/common/valtext.cpp:253 ../src/common/valtext.cpp:255 #, c-format msgid "'%s' is invalid" msgstr "« %s » n'est pas valable" #: ../src/common/cmdline.cpp:948 ../src/common/cmdline.cpp:966 #, c-format msgid "'%s' is not a correct numeric value for option '%s'." msgstr "« %s » n'est pas une valeur numérique correcte pour l'option « %s »." #: ../src/common/translation.cpp:1086 #, c-format msgid "'%s' is not a valid message catalog." msgstr "« %s » n'est pas un catalogue valable de messages." #: ../src/common/textbuf.cpp:239 #, c-format msgid "'%s' is probably a binary buffer." msgstr "« %s » est probablement un tampon binaire." #: ../src/common/valtext.cpp:247 #, c-format msgid "'%s' should be numeric." msgstr "« %s » doit être numérique." #: ../src/common/valtext.cpp:239 #, c-format msgid "'%s' should only contain ASCII characters." msgstr "« %s » ne doit contenir que des caractères ASCII." #: ../src/common/valtext.cpp:241 #, c-format msgid "'%s' should only contain alphabetic characters." msgstr "« %s » ne doit contenir que des caractères alphabétiques." #: ../src/common/valtext.cpp:243 #, c-format msgid "'%s' should only contain alphabetic or numeric characters." msgstr "« %s » ne doit contenir que des caractères alphanumériques." #: ../src/common/valtext.cpp:245 #, c-format msgid "'%s' should only contain digits." msgstr "« %s » ne doit contenir que des chiffres." #: ../src/richtext/richtextliststylepage.cpp:229 #: ../src/richtext/richtextbulletspage.cpp:179 msgid "(*)" msgstr "(*)" #: ../src/html/helpwnd.cpp:976 msgid "(Help)" msgstr "(Aide)" #: ../src/richtext/richtextliststylepage.cpp:481 #: ../src/richtext/richtextbulletspage.cpp:286 msgid "(None)" msgstr "(Aucun)" #: ../src/richtext/richtextsymboldlg.cpp:504 msgid "(Normal text)" msgstr "(Texte normale)" #: ../src/html/helpwnd.cpp:426 ../src/html/helpwnd.cpp:1119 #: ../src/html/helpwnd.cpp:1745 msgid "(bookmarks)" msgstr "(signets)" #: ../src/richtext/richtextindentspage.cpp:274 #: ../src/richtext/richtextindentspage.cpp:286 #: ../src/richtext/richtextindentspage.cpp:287 #: ../src/richtext/richtextindentspage.cpp:311 #: ../src/richtext/richtextindentspage.cpp:326 #: ../src/richtext/richtextformatdlg.cpp:831 #: ../src/richtext/richtextfontpage.cpp:331 #: ../src/richtext/richtextfontpage.cpp:335 #: ../src/richtext/richtextfontpage.cpp:339 #: ../src/richtext/richtextliststylepage.cpp:448 #: ../src/richtext/richtextliststylepage.cpp:460 #: ../src/richtext/richtextliststylepage.cpp:461 msgid "(none)" msgstr "(aucun)" #: ../src/richtext/richtextliststylepage.cpp:492 #: ../src/richtext/richtextbulletspage.cpp:297 msgid "*" msgstr "*" #: ../src/richtext/richtextliststylepage.cpp:236 #: ../src/richtext/richtextbulletspage.cpp:186 msgid "*)" msgstr "*)" #: ../src/richtext/richtextliststylepage.cpp:495 #: ../src/richtext/richtextbulletspage.cpp:300 msgid "+" msgstr "+" #: ../src/msw/utils.cpp:1324 msgid ", 64-bit edition" msgstr ", édition 64-bit" #: ../src/richtext/richtextliststylepage.cpp:493 #: ../src/richtext/richtextbulletspage.cpp:298 msgid "-" msgstr "-" #: ../src/generic/filepickerg.cpp:66 msgid "..." msgstr "..." #: ../src/richtext/richtextindentspage.cpp:276 #: ../src/richtext/richtextliststylepage.cpp:450 msgid "1.1" msgstr "1.1" #: ../src/richtext/richtextindentspage.cpp:277 #: ../src/richtext/richtextliststylepage.cpp:451 msgid "1.2" msgstr "1.2" #: ../src/richtext/richtextindentspage.cpp:278 #: ../src/richtext/richtextliststylepage.cpp:452 msgid "1.3" msgstr "1.3" #: ../src/richtext/richtextindentspage.cpp:279 #: ../src/richtext/richtextliststylepage.cpp:453 msgid "1.4" msgstr "1.4" #: ../src/richtext/richtextindentspage.cpp:280 #: ../src/richtext/richtextliststylepage.cpp:454 msgid "1.5" msgstr "1,5" #: ../src/richtext/richtextindentspage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:455 msgid "1.6" msgstr "1.6" #: ../src/richtext/richtextindentspage.cpp:282 #: ../src/richtext/richtextliststylepage.cpp:456 msgid "1.7" msgstr "1.7" #: ../src/richtext/richtextindentspage.cpp:283 #: ../src/richtext/richtextliststylepage.cpp:457 msgid "1.8" msgstr "1.8" #: ../src/richtext/richtextindentspage.cpp:284 #: ../src/richtext/richtextliststylepage.cpp:458 msgid "1.9" msgstr "1.9" #: ../src/common/paper.cpp:141 msgid "10 x 11 in" msgstr "10 x 11 pouces" #: ../src/common/paper.cpp:114 msgid "10 x 14 in" msgstr "10 x 14 pouces" #: ../src/common/paper.cpp:115 msgid "11 x 17 in" msgstr "11 x 17 pouces" #: ../src/common/paper.cpp:185 msgid "12 x 11 in" msgstr "12 x 11 pouces" #: ../src/common/paper.cpp:142 msgid "15 x 11 in" msgstr "15 x 11 pouces" #: ../src/richtext/richtextindentspage.cpp:285 #: ../src/richtext/richtextliststylepage.cpp:459 msgid "2" msgstr "2" #: ../src/common/paper.cpp:133 msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in" msgstr "Enveloppe 6 3/4 (3,625 x 6,5 pouces)" #: ../src/common/paper.cpp:140 msgid "9 x 11 in" msgstr "9 x 11 pouces" #: ../src/html/htmprint.cpp:431 msgid ": file does not exist!" msgstr " : le fichier n'existe pas." #: ../src/common/fontmap.cpp:199 msgid ": unknown charset" msgstr " : jeu de caractères inconnu" #: ../src/common/fontmap.cpp:413 msgid ": unknown encoding" msgstr " : codage inconnu" #: ../src/generic/wizard.cpp:437 msgid "< &Back" msgstr "< &Retour" #: ../src/osx/carbon/fontdlg.cpp:608 ../src/osx/carbon/fontdlg.cpp:815 #: ../src/osx/carbon/fontdlg.cpp:835 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:609 ../src/osx/carbon/fontdlg.cpp:817 #: ../src/osx/carbon/fontdlg.cpp:837 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:607 ../src/osx/carbon/fontdlg.cpp:813 #: ../src/osx/carbon/fontdlg.cpp:833 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:610 ../src/osx/carbon/fontdlg.cpp:819 #: ../src/osx/carbon/fontdlg.cpp:839 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:611 ../src/osx/carbon/fontdlg.cpp:824 #: ../src/osx/carbon/fontdlg.cpp:843 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:612 ../src/osx/carbon/fontdlg.cpp:821 #: ../src/osx/carbon/fontdlg.cpp:841 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:606 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:286 ../src/generic/filectrlg.cpp:309 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:290 ../src/generic/filectrlg.cpp:313 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:288 ../src/generic/filectrlg.cpp:311 msgid "" msgstr "" #: ../src/html/helpwnd.cpp:1279 msgid "Bold italic face.
    " msgstr "Gras italique.
    " #: ../src/html/helpwnd.cpp:1283 msgid "bold italic underlined
    " msgstr "gras italique souligné
    " #: ../src/html/helpwnd.cpp:1278 msgid "Bold face. " msgstr "Gras. " #: ../src/html/helpwnd.cpp:1277 msgid "Italic face. " msgstr "Italique. " #: ../src/richtext/richtextliststylepage.cpp:494 #: ../src/richtext/richtextbulletspage.cpp:299 msgid ">" msgstr ">" #: ../src/generic/dbgrptg.cpp:318 msgid "A debug report has been generated in the directory\n" msgstr "Un rapport de débogage a été créé dans le dossier\n" #: ../src/common/debugrpt.cpp:578 msgid "A debug report has been generated. It can be found in" msgstr "Un rapport de débogage a été généré. Il peut être trouvé dans" #: ../src/common/xtixml.cpp:418 msgid "A non empty collection must consist of 'element' nodes" msgstr "Une collection non vide doit comprendre des noeuds « éléments »" #: ../src/richtext/richtextliststylepage.cpp:304 #: ../src/richtext/richtextliststylepage.cpp:306 #: ../src/richtext/richtextbulletspage.cpp:257 #: ../src/richtext/richtextbulletspage.cpp:259 msgid "A standard bullet name." msgstr "Un nom de tiret standard." #: ../src/common/paper.cpp:218 msgid "A0 sheet, 841 x 1189 mm" msgstr "Feuille A0, 841 x 1189 mm" #: ../src/common/paper.cpp:219 msgid "A1 sheet, 594 x 841 mm" msgstr "Feuille A1, 594 x 841 mm" #: ../src/common/paper.cpp:160 msgid "A2 420 x 594 mm" msgstr "A2 420 x 594 mm" #: ../src/common/paper.cpp:157 msgid "A3 Extra 322 x 445 mm" msgstr "A3 Extra 322 x 445 mm" #: ../src/common/paper.cpp:162 msgid "A3 Extra Transverse 322 x 445 mm" msgstr "A3 Extra, Paysage, 322 x 445 mm" #: ../src/common/paper.cpp:171 msgid "A3 Rotated 420 x 297 mm" msgstr "A3 Paysage 420 x 297 mm" #: ../src/common/paper.cpp:161 msgid "A3 Transverse 297 x 420 mm" msgstr "A3 Portrait 297 x 420 mm" #: ../src/common/paper.cpp:107 msgid "A3 sheet, 297 x 420 mm" msgstr "Feuille A3, 297 x 420 mm" #: ../src/common/paper.cpp:147 msgid "A4 Extra 9.27 x 12.69 in" msgstr "A4 Extra 9.27 x 12.69 pouces" #: ../src/common/paper.cpp:154 msgid "A4 Plus 210 x 330 mm" msgstr "A4 Plus 210 x 330 mm" #: ../src/common/paper.cpp:172 msgid "A4 Rotated 297 x 210 mm" msgstr "A4 Paysage 297 x 210 mm" #: ../src/common/paper.cpp:149 msgid "A4 Transverse 210 x 297 mm" msgstr "A4 Portrait 210 x 297 mm" #: ../src/common/paper.cpp:98 msgid "A4 sheet, 210 x 297 mm" msgstr "Feuille A4, 210 x 297 mm" #: ../src/common/paper.cpp:108 msgid "A4 small sheet, 210 x 297 mm" msgstr "Petite feuille A4, 210 x 297 mm" #: ../src/common/paper.cpp:158 msgid "A5 Extra 174 x 235 mm" msgstr "A5 Extra 174 x 235 mm" #: ../src/common/paper.cpp:173 msgid "A5 Rotated 210 x 148 mm" msgstr "A5 Paysage 210 x 148 mm" #: ../src/common/paper.cpp:155 msgid "A5 Transverse 148 x 210 mm" msgstr "A5 Portrait 148 x 210 mm" #: ../src/common/paper.cpp:109 msgid "A5 sheet, 148 x 210 mm" msgstr "Feuille A5, 148 x 210 mm" #: ../src/common/paper.cpp:165 msgid "A6 105 x 148 mm" msgstr "A6 105 x 148 mm" #: ../src/common/paper.cpp:178 msgid "A6 Rotated 148 x 105 mm" msgstr "A6 Paysage 148 x 105 mm" #: ../src/generic/fontdlgg.cpp:83 ../src/richtext/richtextformatdlg.cpp:526 #: ../src/osx/carbon/fontdlg.cpp:339 msgid "ABCDEFGabcdefg12345" msgstr "ABCDEFGabcdefg12345" #: ../src/common/accelcmn.cpp:76 msgid "ADD" msgstr "AJOUTER" #: ../src/richtext/richtextsymboldlg.cpp:458 ../src/common/ftp.cpp:405 msgid "ASCII" msgstr "ASCII" #: ../src/osx/menu_osx.cpp:630 ../src/common/stockitem.cpp:139 msgid "About" msgstr "À propos" #: ../src/generic/aboutdlgg.cpp:140 ../src/msw/aboutdlg.cpp:64 #, c-format msgid "About %s" msgstr "À propos de %s" #: ../src/richtext/richtextsizepage.cpp:520 msgid "Absolute" msgstr "Absolue" #: ../src/common/stockitem.cpp:207 msgid "Actual Size" msgstr "Taille Actuelle" #: ../src/common/stockitem.cpp:140 msgid "Add" msgstr "Ajouter" #: ../src/richtext/richtextbuffer.cpp:10751 #, fuzzy msgid "Add Column" msgstr "Ajouter une colonne" #: ../src/richtext/richtextbuffer.cpp:10688 #, fuzzy msgid "Add Row" msgstr "Ajouter une ligne" #: ../src/html/helpwnd.cpp:439 msgid "Add current page to bookmarks" msgstr "Ajouter la page courante aux signets" #: ../src/generic/colrdlgg.cpp:283 msgid "Add to custom colours" msgstr "Ajouter aux couleurs personnalisées" #: ../include/wx/xtiprop.h:259 msgid "AddToPropertyCollection called on a generic accessor" msgstr "AddToPropertyCollection appelé sur un assesseur générique" #: ../include/wx/xtiprop.h:197 msgid "AddToPropertyCollection called w/o valid adder" msgstr "AddToPropertyCollection appelé sans additionneur valable" #: ../src/html/helpctrl.cpp:159 #, c-format msgid "Adding book %s" msgstr "Ajouter le manuel %s" #: ../src/osx/carbon/dataview.cpp:1933 msgid "Adding flavor TEXT failed" msgstr "" #: ../src/osx/carbon/dataview.cpp:1954 msgid "Adding flavor utxt failed" msgstr "" #: ../src/common/preferencescmn.cpp:41 msgid "Advanced" msgstr "Avancé" #: ../src/richtext/richtextliststylepage.cpp:435 msgid "After a paragraph:" msgstr "Après un paragraphe:" #: ../src/common/stockitem.cpp:172 msgid "Align Left" msgstr "Aligner à gauche" #: ../src/common/stockitem.cpp:173 msgid "Align Right" msgstr "Aligner à droite" #: ../src/richtext/richtextsizepage.cpp:266 msgid "Alignment" msgstr "Alignement" #: ../src/generic/prntdlgg.cpp:215 msgid "All" msgstr "Tout" #: ../src/generic/filectrlg.cpp:1205 ../src/common/fldlgcmn.cpp:89 #, c-format msgid "All files (%s)|%s" msgstr "Tous les fichiers (%s)|%s" #: ../include/wx/defs.h:2922 msgid "All files (*)|*" msgstr "Tous les fichiers (*)|*" #: ../include/wx/defs.h:2919 msgid "All files (*.*)|*.*" msgstr "Tous les fichiers (*.*)|*.*" #: ../src/richtext/richtextstyles.cpp:1057 msgid "All styles" msgstr "Tous les styles" #: ../src/propgrid/manager.cpp:1496 msgid "Alphabetic Mode" msgstr "Mode Alphabétique" #: ../src/common/xtistrm.cpp:429 msgid "Already Registered Object passed to SetObjectClassInfo" msgstr "Objet déjà enregistré envoyé à SetObjectClassInfo" #: ../src/unix/dialup.cpp:353 msgid "Already dialling ISP." msgstr "Déjà en cours d'appel du FAI." #: ../src/common/accelcmn.cpp:320 ../src/univ/themes/win32.cpp:3756 msgid "Alt+" msgstr "Alt+" #: ../src/common/debugrpt.cpp:581 msgid "And includes the following files:\n" msgstr "Et inclut les fichiers suivants :\n" #: ../src/generic/animateg.cpp:162 #, c-format msgid "Animation file is not of type %ld." msgstr "Le fichier animé n'est pas du type %ld." #: ../src/generic/logg.cpp:1034 #, c-format msgid "Append log to file '%s' (choosing [No] will overwrite it)?" msgstr "Ajouter le journal au fichier « %s » (choisir [Non] l'écrasera) ?" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:610 #: ../src/osx/menu_osx.cpp:649 ../src/osx/menu_osx.cpp:657 msgid "Application" msgstr "Application" #: ../src/common/stockitem.cpp:141 msgid "Apply" msgstr "Appliquer" #: ../src/richtext/richtextliststylepage.cpp:482 #: ../src/richtext/richtextbulletspage.cpp:287 msgid "Arabic" msgstr "Arabe" #: ../src/common/fmapbase.cpp:153 msgid "Arabic (ISO-8859-6)" msgstr "Arabe (ISO-8859-6)" #: ../src/msw/ole/automtn.cpp:661 #, c-format msgid "Argument %u not found." msgstr "Argument %u non trouvé." #: ../src/generic/aboutdlgg.cpp:184 msgid "Artists" msgstr "" #: ../src/common/stockitem.cpp:195 msgid "Ascending" msgstr "Croissant" #: ../src/generic/filectrlg.cpp:468 msgid "Attributes" msgstr "Attributs" #: ../src/richtext/richtextliststylepage.cpp:294 #: ../src/richtext/richtextbulletspage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:247 msgid "Available fonts." msgstr "Polices de caractères disponibles." #: ../src/common/paper.cpp:138 msgid "B4 (ISO) 250 x 353 mm" msgstr "B4 (ISO) 250 x 353 mm" #: ../src/common/paper.cpp:174 msgid "B4 (JIS) Rotated 364 x 257 mm" msgstr "B4 (JIS) Paysage 364 x 257 mm" #: ../src/common/paper.cpp:128 msgid "B4 Envelope, 250 x 353 mm" msgstr "Enveloppe B4, 250 x 353 mm" #: ../src/common/paper.cpp:110 msgid "B4 sheet, 250 x 354 mm" msgstr "Feuille B4, 250 x 354 mm" #: ../src/common/paper.cpp:159 msgid "B5 (ISO) Extra 201 x 276 mm" msgstr "B5 (ISO) Extra 201 x 276 mm" #: ../src/common/paper.cpp:175 msgid "B5 (JIS) Rotated 257 x 182 mm" msgstr "B5 (JIS) Paysage 257 x 182 mm" #: ../src/common/paper.cpp:156 msgid "B5 (JIS) Transverse 182 x 257 mm" msgstr "B5 (JIS), Paysage, 182 x 257 mm" #: ../src/common/paper.cpp:129 msgid "B5 Envelope, 176 x 250 mm" msgstr "Enveloppe B5, 176 x 250 mm" #: ../src/common/paper.cpp:111 msgid "B5 sheet, 182 x 257 millimeter" msgstr "Feuille B5, 182 x 257 mm" #: ../src/common/paper.cpp:183 msgid "B6 (JIS) 128 x 182 mm" msgstr "B6 (JIS) 128 x 182 mm" #: ../src/common/paper.cpp:184 msgid "B6 (JIS) Rotated 182 x 128 mm" msgstr "B6 (JIS) Paysage 182 x 128 mm" #: ../src/common/paper.cpp:130 msgid "B6 Envelope, 176 x 125 mm" msgstr "Enveloppe B6, 176 x 125 mm" #: ../src/common/accelcmn.cpp:49 msgid "BACK" msgstr "RETOUR" #: ../src/common/imagbmp.cpp:523 ../src/common/imagbmp.cpp:553 #: ../src/common/imagbmp.cpp:568 msgid "BMP: Couldn't allocate memory." msgstr "BMP : impossible d'allouer de la mémoire." #: ../src/common/imagbmp.cpp:97 msgid "BMP: Couldn't save invalid image." msgstr "BMP : impossible de sauvegarder une image non valable." #: ../src/common/imagbmp.cpp:338 msgid "BMP: Couldn't write RGB color map." msgstr "BMP : impossible d'écrire la palette de couleurs RGB." #: ../src/common/imagbmp.cpp:473 msgid "BMP: Couldn't write data." msgstr "BMP : impossible d'écrire les données." #: ../src/common/imagbmp.cpp:239 msgid "BMP: Couldn't write the file (Bitmap) header." msgstr "BMP : impossible d'écrire l'en-tête du fichier (Bitmap)." #: ../src/common/imagbmp.cpp:262 msgid "BMP: Couldn't write the file (BitmapInfo) header." msgstr "BMP : impossible d'écrire l'en-tête du fichier (BitmapInfo)." #: ../src/common/imagbmp.cpp:133 msgid "BMP: wxImage doesn't have own wxPalette." msgstr "BMP : wxImage n'a pas sa propre wxPalette." #: ../src/common/stockitem.cpp:142 msgid "Back" msgstr "Retour" #: ../src/richtext/richtextbackgroundpage.cpp:119 #: ../src/richtext/richtextformatdlg.cpp:374 msgid "Background" msgstr "Arrière plan" #: ../src/richtext/richtextbackgroundpage.cpp:131 msgid "Background &colour:" msgstr "&Couleur d'arrière plan :" #: ../src/osx/carbon/fontdlg.cpp:406 msgid "Background colour" msgstr "Couleur d'arrière plan" #: ../src/common/fmapbase.cpp:160 msgid "Baltic (ISO-8859-13)" msgstr "Balte (ISO-8859-13)" #: ../src/common/fmapbase.cpp:151 msgid "Baltic (old) (ISO-8859-4)" msgstr "Balte (ancien) (ISO-8859-4)" #: ../src/richtext/richtextliststylepage.cpp:426 msgid "Before a paragraph:" msgstr "Avant un paragraphe:" #: ../src/richtext/richtextliststylepage.cpp:489 #: ../src/richtext/richtextbulletspage.cpp:294 msgid "Bitmap" msgstr "Image bitmap" #: ../src/osx/carbon/dataview.cpp:2396 msgid "Bitmap renderer cannot render value; value type: " msgstr "" #: ../src/generic/fontdlgg.cpp:333 ../src/richtext/richtextfontpage.cpp:337 #: ../src/osx/carbon/fontdlg.cpp:540 ../src/common/stockitem.cpp:143 msgid "Bold" msgstr "Gras" #: ../src/richtext/richtextborderspage.cpp:256 #: ../src/richtext/richtextborderspage.cpp:389 msgid "Border" msgstr "Bord" #: ../src/richtext/richtextformatdlg.cpp:368 msgid "Borders" msgstr "Bords" #: ../src/richtext/richtextsizepage.cpp:288 ../src/common/stockitem.cpp:144 msgid "Bottom" msgstr "Haut" #: ../src/generic/prntdlgg.cpp:893 msgid "Bottom margin (mm):" msgstr "Marge de bas de page (mm) :" #: ../src/richtext/richtextbuffer.cpp:8919 msgid "Box Properties" msgstr "Propriétés de la boîte" #: ../src/richtext/richtextstyles.cpp:1061 msgid "Box styles" msgstr "Styles de boîte" #: ../src/common/filepickercmn.cpp:43 ../src/common/filepickercmn.cpp:44 msgid "Browse" msgstr "Parcourir" #: ../src/richtext/richtextliststylepage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:195 msgid "Bullet &Alignment:" msgstr "&Alignement des tirets:" #: ../src/richtext/richtextliststylepage.cpp:309 msgid "Bullet style" msgstr "Style des tirets" #: ../src/richtext/richtextformatdlg.cpp:342 msgid "Bullets" msgstr "Tirets" #: ../src/common/paper.cpp:99 msgid "C sheet, 17 x 22 in" msgstr "Feuille C, 17 x 22 mm" #: ../src/generic/logg.cpp:520 msgid "C&lear" msgstr "&Effacer" #: ../src/generic/fontdlgg.cpp:406 msgid "C&olour:" msgstr "C&ouleur :" #: ../src/common/paper.cpp:124 msgid "C3 Envelope, 324 x 458 mm" msgstr "Enveloppe C3, 324 x 458 mm" #: ../src/common/paper.cpp:125 msgid "C4 Envelope, 229 x 324 mm" msgstr "Enveloppe C4, 229 x 324 mm" #: ../src/common/paper.cpp:123 msgid "C5 Envelope, 162 x 229 mm" msgstr "Enveloppe C5, 162 x 229 mm" #: ../src/common/paper.cpp:126 msgid "C6 Envelope, 114 x 162 mm" msgstr "Enveloppe C6, 114 x 162 mm" #: ../src/common/paper.cpp:127 msgid "C65 Envelope, 114 x 229 mm" msgstr "Enveloppe C65, 114 x 229 mm" #: ../src/common/accelcmn.cpp:66 msgid "CANCEL" msgstr "ANNULER" #: ../src/common/accelcmn.cpp:70 msgid "CAPITAL" msgstr "MAJUSCULE" #: ../src/common/stockitem.cpp:146 msgid "CD-Rom" msgstr "CD-Rom" #: ../src/html/chm.cpp:815 ../src/html/chm.cpp:874 msgid "CHM handler currently supports only local files!" msgstr "Le gestionnaire CHM ne gère actuellement que les fichiers locaux." #: ../src/common/accelcmn.cpp:67 msgid "CLEAR" msgstr "SUPPRIMER" #: ../src/common/accelcmn.cpp:111 msgid "COMMAND" msgstr "COMMANDE" #: ../src/richtext/richtextfontpage.cpp:291 msgid "Ca&pitals" msgstr "Majuscules" #: ../src/common/cmdproc.cpp:267 msgid "Can't &Undo " msgstr "Impossible d'&annuler " #: ../src/common/image.cpp:2686 msgid "Can't automatically determine the image format for non-seekable input." msgstr "" #: ../src/msw/registry.cpp:505 #, c-format msgid "Can't close registry key '%s'" msgstr "Impossible de fermer la clé de registre « %s »" #: ../src/msw/registry.cpp:583 #, c-format msgid "Can't copy values of unsupported type %d." msgstr "Impossible de copier les valeurs de type %d non géré." #: ../src/msw/registry.cpp:486 #, c-format msgid "Can't create registry key '%s'" msgstr "Impossible de créer la clé de registre « %s »" #: ../src/msw/thread.cpp:696 ../src/os2/thread.cpp:494 msgid "Can't create thread" msgstr "Impossible de créer le processus" #: ../src/msw/window.cpp:3793 #, c-format msgid "Can't create window of class %s" msgstr "Impossible de créer la fenêtre de classe %s" #: ../src/msw/registry.cpp:776 #, c-format msgid "Can't delete key '%s'" msgstr "Impossible d'effacer la clé « %s »" #: ../src/msw/iniconf.cpp:458 ../src/os2/iniconf.cpp:471 #, c-format msgid "Can't delete the INI file '%s'" msgstr "Impossible d'effacer le fichier INI « %s »" #: ../src/msw/registry.cpp:804 #, c-format msgid "Can't delete value '%s' from key '%s'" msgstr "Impossible d'effacer la valeur « %s » de la clé « %s »" #: ../src/msw/registry.cpp:1161 #, c-format msgid "Can't enumerate subkeys of key '%s'" msgstr "Impossible d'énumérer les sous-clés de la clé « %s »" #: ../src/msw/registry.cpp:1116 #, c-format msgid "Can't enumerate values of key '%s'" msgstr "Impossible d'énumérer les valeurs de la clé « %s »" #: ../src/msw/registry.cpp:1379 #, c-format msgid "Can't export value of unsupported type %d." msgstr "Impossible d'exporter les valeurs de type non géré %d." #: ../src/common/ffile.cpp:236 #, c-format msgid "Can't find current position in file '%s'" msgstr "Impossible de trouver la position courante dans le fichier « %s »" #: ../src/msw/registry.cpp:416 #, c-format msgid "Can't get info about registry key '%s'" msgstr "Impossible d'obtenir des informations sur la clé de registre « %s »" #: ../src/common/zstream.cpp:346 msgid "Can't initialize zlib deflate stream." msgstr "Impossible d'initialiser le flux de déchargement de zlib" #: ../src/common/zstream.cpp:185 msgid "Can't initialize zlib inflate stream." msgstr "Impossible d'initialiser le flux de chargement de zlib" #: ../src/msw/fswatcher.cpp:432 #, c-format msgid "Can't monitor non-existent directory \"%s\" for changes." msgstr "" #: ../src/msw/registry.cpp:452 #, c-format msgid "Can't open registry key '%s'" msgstr "Impossible d'ouvrir la clé de registre « %s »" #: ../src/common/zstream.cpp:252 #, c-format msgid "Can't read from inflate stream: %s" msgstr "Impossible de lire le flux de chargement : %s" #: ../src/common/zstream.cpp:244 msgid "Can't read inflate stream: unexpected EOF in underlying stream." msgstr "" "Impossible de lire le flux de chargement : EOF inattendu dans le flux " "inférieur." #: ../src/msw/registry.cpp:1048 #, c-format msgid "Can't read value of '%s'" msgstr "Impossible de lire la valeur de « %s »" #: ../src/msw/registry.cpp:877 ../src/msw/registry.cpp:909 #: ../src/msw/registry.cpp:971 #, c-format msgid "Can't read value of key '%s'" msgstr "Impossible de lire la valeur de la clé « %s »" #: ../src/common/image.cpp:2483 #, c-format msgid "Can't save image to file '%s': unknown extension." msgstr "" "Impossible d'enregistrer l'image dans le fichier « %s » : extension inconnue." #: ../src/generic/logg.cpp:579 ../src/generic/logg.cpp:996 msgid "Can't save log contents to file." msgstr "Impossible d'enregistrer le contenu du journal dans le fichier." #: ../src/msw/thread.cpp:652 ../src/os2/thread.cpp:477 msgid "Can't set thread priority" msgstr "Impossible de spécifier la priorité du processus" #: ../src/msw/registry.cpp:895 ../src/msw/registry.cpp:939 #: ../src/msw/registry.cpp:1065 #, c-format msgid "Can't set value of '%s'" msgstr "Impossible de spécifier la valeur de « %s »" #: ../src/unix/utilsunx.cpp:357 msgid "Can't write to child process's stdin" msgstr "Ne peut écrire sur l'entrée du processus enfant." #: ../src/common/zstream.cpp:427 #, c-format msgid "Can't write to deflate stream: %s" msgstr "impossible d'écrire pour décharger le flux : %s" #: ../include/wx/msgdlg.h:274 ../src/generic/dirdlgg.cpp:107 #: ../src/richtext/richtextstyledlg.cpp:300 ../src/common/stockitem.cpp:145 #: ../src/msw/msgdlg.cpp:489 ../src/msw/progdlg.cpp:673 #: ../src/gtk1/fontdlg.cpp:144 ../src/motif/msgdlg.cpp:196 msgid "Cancel" msgstr "Annuler" #: ../src/os2/thread.cpp:116 msgid "Cannot create mutex." msgstr "Impossible de créer le mutex." #: ../src/osx/carbon/dataview.cpp:895 msgid "Cannot create new column's ID. Probably max. number of columns reached." msgstr "" "Impossible de créer un nouvel ID de colonne. Le nombre max. de colonnes a " "probablement été atteint." #: ../src/common/filefn.cpp:1336 #, c-format msgid "Cannot enumerate files '%s'" msgstr "Impossible d'énumérer les fichiers « %s »" #: ../src/msw/dir.cpp:264 #, c-format msgid "Cannot enumerate files in directory '%s'" msgstr "Impossible d'énumérer les fichiers dans le répertoire « %s »" #: ../src/msw/dialup.cpp:542 #, c-format msgid "Cannot find active dialup connection: %s" msgstr "Impossible de trouver une connexion active : %s" #: ../src/msw/dialup.cpp:848 msgid "Cannot find the location of address book file" msgstr "Impossible de trouver l'emplacement du fichier du manuel des adresses" #: ../src/msw/ole/automtn.cpp:562 #, c-format msgid "Cannot get an active instance of \"%s\"" msgstr "Impossible d'obtenir une instance active de : \"%s\"" #: ../src/unix/threadpsx.cpp:1030 #, c-format msgid "Cannot get priority range for scheduling policy %d." msgstr "" "Impossible d'obtenir une gamme de priorités pour la charte de planification " "%d." #: ../src/unix/utilsunx.cpp:988 msgid "Cannot get the hostname" msgstr "Impossible d'obtenir le nom d'hôte" #: ../src/unix/utilsunx.cpp:1024 msgid "Cannot get the official hostname" msgstr "Impossible d'obtenir le nom d'hôte officiel" #: ../src/msw/dialup.cpp:949 msgid "Cannot hang up - no active dialup connection." msgstr "Impossible de raccrocher - pas de connexion active." #: ../include/wx/msw/ole/oleutils.h:52 msgid "Cannot initialize OLE" msgstr "Impossible d'initialiser l'OLE" #: ../src/common/socket.cpp:847 msgid "Cannot initialize sockets" msgstr "Impossible d'initialiser les sockets" #: ../src/msw/volume.cpp:620 #, c-format msgid "Cannot load icon from '%s'." msgstr "Impossible de charger l'icône depuis « %s »." #: ../src/xrc/xmlres.cpp:361 #, c-format msgid "Cannot load resources from '%s'." msgstr "Impossible de charger les ressources depuis « %s »." #: ../src/xrc/xmlres.cpp:746 #, c-format msgid "Cannot load resources from file '%s'." msgstr "Impossible de charger les ressources du fichier « %s »." #: ../src/html/htmlfilt.cpp:137 #, c-format msgid "Cannot open HTML document: %s" msgstr "Impossible d'ouvrir le document HTML : %s" #: ../src/html/helpdata.cpp:665 #, c-format msgid "Cannot open HTML help book: %s" msgstr "Impossible d'ouvrir le manuel d'aide HTML : %s" #: ../src/html/helpdata.cpp:297 #, c-format msgid "Cannot open contents file: %s" msgstr "Impossible d'ouvrir le fichier de table des matières : %s" #: ../src/generic/dcpsg.cpp:1751 msgid "Cannot open file for PostScript printing!" msgstr "Impossible d'ouvrir le fichier pour une impression PostScript." #: ../src/html/helpdata.cpp:311 #, c-format msgid "Cannot open index file: %s" msgstr "Impossible d'ouvrir le fichier d'index : %s" #: ../src/xrc/xmlres.cpp:728 #, c-format msgid "Cannot open resources file '%s'." msgstr "Impossible d'ouvrir le fichier de ressources « %s »." #: ../src/html/helpwnd.cpp:1537 msgid "Cannot print empty page." msgstr "Impossible d'imprimer une page vide." #: ../src/msw/volume.cpp:507 #, c-format msgid "Cannot read typename from '%s'!" msgstr "Impossible de lire le nom de type de « %s »." #: ../src/os2/thread.cpp:527 #, c-format msgid "Cannot resume thread %lu" msgstr "Impossible de reprendre le processus %lu" #: ../src/msw/thread.cpp:923 #, c-format msgid "Cannot resume thread %lx" msgstr "Impossible de reprendre le thread %lx" #: ../src/unix/threadpsx.cpp:1011 msgid "Cannot retrieve thread scheduling policy." msgstr "Impossible de récupérer la charte de planification des processus." #: ../src/common/intl.cpp:542 #, c-format msgid "Cannot set locale to language \"%s\"." msgstr "" #: ../src/unix/threadpsx.cpp:831 ../src/msw/thread.cpp:569 msgid "Cannot start thread: error writing TLS." msgstr "Impossible de lancer le processus : erreur lors de l'écriture de TLS." #: ../src/os2/thread.cpp:513 #, c-format msgid "Cannot suspend thread %lu" msgstr "Impossible de suspendre le processus %lu" #: ../src/msw/thread.cpp:907 #, c-format msgid "Cannot suspend thread %lx" msgstr "Impossible de suspendre le thread %lx" #: ../src/msw/thread.cpp:830 msgid "Cannot wait for thread termination" msgstr "Impossible d'attendre la fin du processus" #: ../src/html/helpwnd.cpp:546 msgid "Case sensitive" msgstr "Sensible à la casse" #: ../src/propgrid/manager.cpp:1495 msgid "Categorized Mode" msgstr "Mode Catégories" #: ../src/richtext/richtextbuffer.cpp:9347 msgid "Cell Properties" msgstr "Propriétés de Cellule" #: ../src/common/fmapbase.cpp:161 msgid "Celtic (ISO-8859-14)" msgstr "Celtique (ISO-8859-14)" #: ../src/richtext/richtextindentspage.cpp:160 #: ../src/richtext/richtextliststylepage.cpp:349 msgid "Cen&tred" msgstr "Cen&tré" #: ../src/common/stockitem.cpp:170 msgid "Centered" msgstr "Centré" #: ../src/common/fmapbase.cpp:149 msgid "Central European (ISO-8859-2)" msgstr "Europe centrale (ISO-8859-2)" #: ../src/richtext/richtextliststylepage.cpp:250 #: ../src/richtext/richtextbulletspage.cpp:200 msgid "Centre" msgstr "Centre" #: ../src/richtext/richtextindentspage.cpp:162 #: ../src/richtext/richtextindentspage.cpp:164 #: ../src/richtext/richtextliststylepage.cpp:351 #: ../src/richtext/richtextliststylepage.cpp:353 msgid "Centre text." msgstr "Centrer le texte." #: ../src/richtext/richtextsizepage.cpp:287 msgid "Centred" msgstr "Centré" #: ../src/richtext/richtextliststylepage.cpp:280 #: ../src/richtext/richtextbulletspage.cpp:232 msgid "Ch&oose..." msgstr "&Choisir..." #: ../src/richtext/richtextbuffer.cpp:4041 msgid "Change List Style" msgstr "Changer la liste de styles" #: ../src/richtext/richtextbuffer.cpp:3392 msgid "Change Object Style" msgstr "Changer le Style de l'Objet" #: ../src/richtext/richtextbuffer.cpp:3658 #: ../src/richtext/richtextbuffer.cpp:7749 msgid "Change Properties" msgstr "Changer les Propriétés" #: ../src/richtext/richtextbuffer.cpp:3209 msgid "Change Style" msgstr "Changer le style" #: ../src/common/fileconf.cpp:372 #, c-format msgid "Changes won't be saved to avoid overwriting the existing file \"%s\"" msgstr "" "Les changements ne seront pas sauvés pour éviter l'écrasement du fichier " "existant « %s »" #: ../src/richtext/richtextstyles.cpp:1059 msgid "Character styles" msgstr "Styles de caractères" #: ../src/richtext/richtextliststylepage.cpp:224 #: ../src/richtext/richtextliststylepage.cpp:226 #: ../src/richtext/richtextbulletspage.cpp:174 #: ../src/richtext/richtextbulletspage.cpp:176 msgid "Check to add a period after the bullet." msgstr "Cochez pour ajouter un point après le tiret." #: ../src/richtext/richtextliststylepage.cpp:238 #: ../src/richtext/richtextliststylepage.cpp:240 #: ../src/richtext/richtextbulletspage.cpp:188 #: ../src/richtext/richtextbulletspage.cpp:190 msgid "Check to add a right parenthesis." msgstr "Cocher pour ajouter une parenthèse à droite." #: ../src/richtext/richtextliststylepage.cpp:231 #: ../src/richtext/richtextliststylepage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:181 #: ../src/richtext/richtextbulletspage.cpp:183 msgid "Check to enclose the bullet in parentheses." msgstr "Cocher pour mettre le tiret entre parenthèses." #: ../src/osx/carbon/fontdlg.cpp:542 ../src/osx/carbon/fontdlg.cpp:544 msgid "Check to make the font bold." msgstr "Cochez pour mettre la police en gras." #: ../src/osx/carbon/fontdlg.cpp:549 ../src/osx/carbon/fontdlg.cpp:551 msgid "Check to make the font italic." msgstr "Cochez pour mettre la police en italique." #: ../src/osx/carbon/fontdlg.cpp:558 ../src/osx/carbon/fontdlg.cpp:560 msgid "Check to make the font underlined." msgstr "Cochez pour mettre la police en souligné." #: ../src/richtext/richtextstyledlg.cpp:289 #: ../src/richtext/richtextstyledlg.cpp:291 msgid "Check to restart numbering." msgstr "Cocher pour recommencer la numérotation." #: ../src/richtext/richtextfontpage.cpp:286 #: ../src/richtext/richtextfontpage.cpp:288 msgid "Check to show a line through the text." msgstr "Cochez pour afficher une ligne à travers le texte." #: ../src/richtext/richtextfontpage.cpp:293 #: ../src/richtext/richtextfontpage.cpp:295 msgid "Check to show the text in capitals." msgstr "Cochez pour afficher le texte en majuscules." #: ../src/richtext/richtextfontpage.cpp:300 #: ../src/richtext/richtextfontpage.cpp:302 msgid "Check to show the text in small capitals." msgstr "Cochez pour afficher le texte en petites majuscules." #: ../src/richtext/richtextfontpage.cpp:314 #: ../src/richtext/richtextfontpage.cpp:316 msgid "Check to show the text in subscript." msgstr "Cochez pour afficher le texte en indice." #: ../src/richtext/richtextfontpage.cpp:307 #: ../src/richtext/richtextfontpage.cpp:309 msgid "Check to show the text in superscript." msgstr "Cochez pour afficher le texte en exposant." #: ../src/msw/dialup.cpp:784 msgid "Choose ISP to dial" msgstr "Choisir le FAI à appeler" #: ../src/propgrid/props.cpp:1643 msgid "Choose a directory:" msgstr "Choisir un répertoire :" #: ../src/propgrid/props.cpp:1702 msgid "Choose a file" msgstr "Choisir un fichier :" #: ../src/generic/colrdlgg.cpp:144 ../src/gtk/colordlg.cpp:63 msgid "Choose colour" msgstr "Choisir la couleur" #: ../src/generic/fontpickerg.cpp:50 ../src/gtk/fontdlg.cpp:75 #: ../src/gtk1/fontdlg.cpp:125 msgid "Choose font" msgstr "Choisir la police" #: ../src/common/module.cpp:74 #, c-format msgid "Circular dependency involving module \"%s\" detected." msgstr "Dépendance en boucle détectée, impliquant le module \"%s\"." #: ../src/aui/tabmdi.cpp:108 ../src/generic/mdig.cpp:97 msgid "Cl&ose" msgstr "&Fermer" #: ../src/msw/ole/automtn.cpp:673 msgid "Class not registered." msgstr "Classe non-enregistrée." #: ../src/common/stockitem.cpp:147 msgid "Clear" msgstr "Effacer" #: ../src/generic/logg.cpp:520 msgid "Clear the log contents" msgstr "Effacer le contenu du journal" #: ../src/richtext/richtextstyledlg.cpp:252 #: ../src/richtext/richtextstyledlg.cpp:254 msgid "Click to apply the selected style." msgstr "Cliquez pour appliquer le style sélectionné." #: ../src/richtext/richtextliststylepage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:283 #: ../src/richtext/richtextbulletspage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:235 msgid "Click to browse for a symbol." msgstr "Cliquer pour rechercher un symbole" #: ../src/osx/carbon/fontdlg.cpp:589 ../src/osx/carbon/fontdlg.cpp:591 msgid "Click to cancel changes to the font." msgstr "Cliquez pour annuler les changements sur la police." #: ../src/generic/fontdlgg.cpp:472 ../src/generic/fontdlgg.cpp:491 msgid "Click to cancel the font selection." msgstr "Cliquer pour annuler la sélection de la police." #: ../src/osx/carbon/fontdlg.cpp:570 ../src/osx/carbon/fontdlg.cpp:572 msgid "Click to change the font colour." msgstr "Cliquez pour changer la couleur de la police." #: ../src/richtext/richtextfontpage.cpp:276 #: ../src/richtext/richtextfontpage.cpp:278 msgid "Click to change the text background colour." msgstr "Cliquez pour changer la couleur d'arrière-plan du texte." #: ../src/richtext/richtextfontpage.cpp:263 #: ../src/richtext/richtextfontpage.cpp:265 msgid "Click to change the text colour." msgstr "Cliquez pour changer la couleur du texte." #: ../src/richtext/richtextliststylepage.cpp:195 #: ../src/richtext/richtextliststylepage.cpp:197 msgid "Click to choose the font for this level." msgstr "Cliquez pour choisir la police de ce niveau." #: ../src/richtext/richtextstyledlg.cpp:279 #: ../src/richtext/richtextstyledlg.cpp:281 msgid "Click to close this window." msgstr "Cliquez pour fermer cette fenêtre." #: ../src/osx/carbon/fontdlg.cpp:596 ../src/osx/carbon/fontdlg.cpp:598 msgid "Click to confirm changes to the font." msgstr "Cliquez pour confirmer les changements de la police." #: ../src/generic/fontdlgg.cpp:477 ../src/generic/fontdlgg.cpp:479 #: ../src/generic/fontdlgg.cpp:484 ../src/generic/fontdlgg.cpp:486 msgid "Click to confirm the font selection." msgstr "Cliquer pour confirmer la sélection de la police." #: ../src/richtext/richtextstyledlg.cpp:244 #: ../src/richtext/richtextstyledlg.cpp:246 msgid "Click to create a new box style." msgstr "Cliquez pour créer un nouveau style de boîte." #: ../src/richtext/richtextstyledlg.cpp:226 #: ../src/richtext/richtextstyledlg.cpp:228 msgid "Click to create a new character style." msgstr "Cliquer pour créer un nouveau style de caractère." #: ../src/richtext/richtextstyledlg.cpp:238 #: ../src/richtext/richtextstyledlg.cpp:240 msgid "Click to create a new list style." msgstr "Cliquez pour créer un nouveau style de liste." #: ../src/richtext/richtextstyledlg.cpp:232 #: ../src/richtext/richtextstyledlg.cpp:234 msgid "Click to create a new paragraph style." msgstr "Cliquer pour créer un nouveau style de paragraphe." #: ../src/richtext/richtexttabspage.cpp:137 #: ../src/richtext/richtexttabspage.cpp:139 msgid "Click to create a new tab position." msgstr "Cliquez pour créer une nouvelle position de tabulation." #: ../src/richtext/richtexttabspage.cpp:149 #: ../src/richtext/richtexttabspage.cpp:151 msgid "Click to delete all tab positions." msgstr "Cliquez pour supprimer toutes les positions de tabulation." #: ../src/richtext/richtextstyledlg.cpp:270 #: ../src/richtext/richtextstyledlg.cpp:272 msgid "Click to delete the selected style." msgstr "Cliquez suprimer le style sélectionné." #: ../src/richtext/richtexttabspage.cpp:143 #: ../src/richtext/richtexttabspage.cpp:145 msgid "Click to delete the selected tab position." msgstr "Cliquez pour supprimer la position de tabulation sélectionnée." #: ../src/richtext/richtextstyledlg.cpp:264 #: ../src/richtext/richtextstyledlg.cpp:266 msgid "Click to edit the selected style." msgstr "Cliquez éditer le style sélectionné." #: ../src/richtext/richtextstyledlg.cpp:258 #: ../src/richtext/richtextstyledlg.cpp:260 msgid "Click to rename the selected style." msgstr "Cliquez renommer le style sélectionné." #: ../src/generic/dbgrptg.cpp:97 ../src/generic/progdlgg.cpp:804 #: ../src/generic/progdlgg.cpp:809 ../src/richtext/richtextstyledlg.cpp:277 #: ../src/richtext/richtextsymboldlg.cpp:476 ../src/common/stockitem.cpp:148 #: ../src/msw/progdlg.cpp:170 ../src/msw/progdlg.cpp:679 #: ../src/html/helpdlg.cpp:90 msgid "Close" msgstr "Fermer" #: ../src/aui/tabmdi.cpp:109 ../src/generic/mdig.cpp:98 msgid "Close All" msgstr "Fermer tout" #: ../src/common/stockitem.cpp:266 msgid "Close current document" msgstr "Fermer le document courant" #: ../src/generic/logg.cpp:522 msgid "Close this window" msgstr "Fermer cette fenêtre" #: ../src/common/stockitem.cpp:193 msgid "Color" msgstr "Couleur" #: ../src/richtext/richtextformatdlg.cpp:725 msgid "Colour" msgstr "Couleur" #: ../src/msw/colordlg.cpp:156 #, c-format msgid "Colour selection dialog failed with error %0lx." msgstr "Échec du dialogue de sélection de couleur avec l'erreur %0lx." #: ../src/osx/carbon/fontdlg.cpp:566 msgid "Colour:" msgstr "Couleur :" #: ../src/osx/carbon/dataview.cpp:900 msgid "Column could not be added." msgstr "La colonne n'a pas pu être ajoutée." #: ../src/osx/carbon/dataview.cpp:899 msgid "Column description could not be initialized." msgstr "La description de la colonne n'a pas pu être initialisée." #: ../src/osx/carbon/dataview.cpp:1538 ../src/osx/carbon/dataview.cpp:1559 msgid "Column index not found." msgstr "Index de colonne non trouvé." #: ../src/osx/carbon/dataview.cpp:1614 msgid "Column width could not be determined" msgstr "La largeur de la colonne n'a pas pu être déterminée" #: ../src/osx/carbon/dataview.cpp:901 msgid "Column width could not be set." msgstr "La largeur de la colonne n'a pas pu être définie." #: ../src/common/init.cpp:188 #, c-format msgid "" "Command line argument %d couldn't be converted to Unicode and will be " "ignored." msgstr "" "L'argument %d de la ligne de commande n'a pas pu être converti en Unicode et " "sera ignoré." #: ../src/msw/fontdlg.cpp:119 #, c-format msgid "Common dialog failed with error code %0lx." msgstr "Échec du dialogue commun avec le code d'erreur %0lx." #: ../src/gtk/window.cpp:4306 msgid "" "Compositing not supported by this system, please enable it in your Window " "Manager." msgstr "" #: ../src/html/helpwnd.cpp:1554 msgid "Compressed HTML Help file (*.chm)|*.chm|" msgstr "Fichier HTML compilé (*.chm)|*.chm|" #: ../src/generic/dirctrlg.cpp:544 msgid "Computer" msgstr "L'ordinateur" #: ../src/common/fileconf.cpp:965 #, c-format msgid "Config entry name cannot start with '%c'." msgstr "Le nom d'entrée de configuration ne peut pas commencer par « %c »." #: ../src/gtk/filedlg.cpp:59 msgid "Confirm" msgstr "Confirmer" #: ../src/msw/mimetype.cpp:739 msgid "Confirm registry update" msgstr "Confirmer la mise à jour du registre" #: ../src/html/htmlwin.cpp:544 msgid "Connecting..." msgstr "Connexion en cours..." #: ../src/html/helpwnd.cpp:482 msgid "Contents" msgstr "Table des matières" #: ../src/common/strconv.cpp:2261 #, c-format msgid "Conversion to charset '%s' doesn't work." msgstr "La conversion vers le jeu de caractères « %s » ne fonctionne pas." #: ../src/common/stockitem.cpp:149 msgid "Convert" msgstr "Convertir" #: ../src/html/htmlwin.cpp:1057 #, c-format msgid "Copied to clipboard:\"%s\"" msgstr "Copié dans le presse-papiers « %s »" #: ../src/generic/prntdlgg.cpp:247 msgid "Copies:" msgstr "Copies :" #: ../src/common/stockitem.cpp:150 ../src/stc/stc_i18n.cpp:18 msgid "Copy" msgstr "Copier" #: ../src/common/stockitem.cpp:258 msgid "Copy selection" msgstr "Copier la sélection" #: ../src/html/chm.cpp:718 #, c-format msgid "Could not create temporary file '%s'" msgstr "Impossible de créer le fichier temporaire « %s »" #: ../src/osx/carbon/dataview.cpp:1285 ../src/osx/carbon/dataview.cpp:1672 msgid "Could not determine column index." msgstr "Impossible de déterminer l'index de la colonne." #: ../src/osx/carbon/dataview.cpp:876 msgid "Could not determine column's position" msgstr "Impossible de déterminer la position de la colonne" #: ../src/osx/carbon/dataview.cpp:843 msgid "Could not determine number of columns." msgstr "Impossible de déterminer le nombre de colonnes." #: ../src/osx/carbon/dataview.cpp:975 msgid "Could not determine number of items" msgstr "Impossible de déterminer le nombre d'éléments" #: ../src/html/chm.cpp:273 #, c-format msgid "Could not extract %s into %s: %s" msgstr "Impossible d'extraire %s de %s : %s" #: ../src/generic/tabg.cpp:1048 msgid "Could not find tab for id" msgstr "Impossible de trouver l'onglet pour l'identifiant" #: ../src/osx/carbon/dataview.cpp:2556 ../src/osx/carbon/dataview.cpp:2591 #: ../src/osx/carbon/dataview.cpp:2615 ../src/osx/carbon/dataview.cpp:2636 #: ../src/osx/carbon/dataview.cpp:2773 msgid "Could not get header description." msgstr "Impossible d'obtenir la description de l'en-tête." #: ../src/osx/carbon/dataview.cpp:1169 ../src/osx/carbon/dataview.cpp:1195 msgid "Could not get items." msgstr "Impossible d'obtenir les éléments." #: ../src/osx/carbon/dataview.cpp:2659 ../src/osx/carbon/dataview.cpp:2724 #, fuzzy msgid "Could not get property flags." msgstr "Impossible de créer le fichier temporaire « %s »" #: ../src/osx/carbon/dataview.cpp:726 msgid "Could not get selected items." msgstr "Impossible d'obtenir les éléments sélectionnés." #: ../src/html/chm.cpp:444 #, c-format msgid "Could not locate file '%s'." msgstr "Impossible de localiser le fichier « %s »." #: ../src/osx/carbon/dataview.cpp:845 msgid "Could not remove column." msgstr "Impossible de supprimer la colonne." #: ../src/osx/carbon/dataview.cpp:642 msgid "Could not retrieve number of items" msgstr "Impossible de retrouver le nombre d'éléments" #: ../src/osx/carbon/dataview.cpp:2572 msgid "Could not set alignment." msgstr "Impossible de définir l'alignement." #: ../src/osx/carbon/dataview.cpp:2803 msgid "Could not set column width." msgstr "Impossible de définir la largeur de la colonne." #: ../src/common/filefn.cpp:1569 msgid "Could not set current working directory" msgstr "Impossible de définir le répertoire de travail courant" #: ../src/osx/carbon/dataview.cpp:2775 msgid "Could not set header description." msgstr "Impossible de définir la description de l'en-tête." #: ../src/osx/carbon/dataview.cpp:2596 msgid "Could not set icon." msgstr "Impossible de définir l'icône." #: ../src/osx/carbon/dataview.cpp:2617 msgid "Could not set maximum width." msgstr "Impossible de définir la largeur maximale." #: ../src/osx/carbon/dataview.cpp:2638 msgid "Could not set minimum width." msgstr "Impossible de définir la largeur minimale." #: ../src/osx/carbon/dataview.cpp:2664 ../src/osx/carbon/dataview.cpp:2729 #, fuzzy msgid "Could not set property flags." msgstr "Impossible de lancer l'impression." #: ../src/common/prntbase.cpp:1985 msgid "Could not start document preview." msgstr "Impossible de lancer l'aperçu du document." #: ../src/generic/printps.cpp:178 ../src/msw/printwin.cpp:210 #: ../src/gtk/print.cpp:1077 msgid "Could not start printing." msgstr "Impossible de lancer l'impression." #: ../src/common/wincmn.cpp:2131 msgid "Could not transfer data to window" msgstr "Impossible de transférer les données à la fenêtre" #: ../src/os2/thread.cpp:160 msgid "Couldn't acquire a mutex lock" msgstr "Impossible de récupérer un verrou pour le mutex" #: ../src/msw/imaglist.cpp:166 ../src/msw/imaglist.cpp:197 #: ../src/msw/imaglist.cpp:209 ../src/msw/dragimag.cpp:193 #: ../src/msw/dragimag.cpp:232 msgid "Couldn't add an image to the image list." msgstr "Impossible d'ajouter une image à la liste des images." #: ../src/msw/timer.cpp:134 ../src/os2/timer.cpp:113 msgid "Couldn't create a timer" msgstr "Impossible de créer un minuteur" #: ../src/osx/carbon/overlay.cpp:122 msgid "Couldn't create the overlay window" msgstr "Impossible de créer une fenêtre de recouvrement" #: ../src/common/translation.cpp:2015 msgid "Couldn't enumerate translations" msgstr "Impossible d'énumérer les traductions" #: ../src/common/dynlib.cpp:152 #, c-format msgid "Couldn't find symbol '%s' in a dynamic library" msgstr "Impossible de trouver le symbole « %s » dans la bibliothèque dynamique" #: ../src/gtk/print.cpp:2014 msgid "Couldn't get hatch style from wxBrush." msgstr "" #: ../src/msw/thread.cpp:950 msgid "Couldn't get the current thread pointer" msgstr "Impossible d'obtenir le pointeur du processus actuel" #: ../src/osx/carbon/overlay.cpp:129 msgid "Couldn't init the context on the overlay window" msgstr "Impossible d'initialiser le contexte de la fenêtre de recouvrement" #: ../src/common/imaggif.cpp:263 msgid "Couldn't initialize GIF hash table." msgstr "Impossible d'initialiser la tablme de hachage GIF." #: ../src/common/imagpng.cpp:657 msgid "Couldn't load a PNG image - file is corrupted or not enough memory." msgstr "" "Impossible de charger une image PNG - fichier corrompu ou mémoire " "insuffisante" #: ../src/unix/sound.cpp:470 #, c-format msgid "Couldn't load sound data from '%s'." msgstr "Impossible de charger les données sonores depuis « %s »." #: ../src/msw/dirdlg.cpp:441 msgid "Couldn't obtain folder name" msgstr "Impossible d'obtenir le nom du dossier" #: ../src/unix/sound_sdl.cpp:229 #, c-format msgid "Couldn't open audio: %s" msgstr "Impossible d'ouvrir le fichier audio : %s" #: ../src/msw/ole/dataobj.cpp:350 #, c-format msgid "Couldn't register clipboard format '%s'." msgstr "Impossible d'enregistrer le format de presse-papiers « %s »." #: ../src/os2/thread.cpp:177 msgid "Couldn't release a mutex" msgstr "Impossible de libérer un mutex" #: ../src/msw/listctrl.cpp:756 #, c-format msgid "Couldn't retrieve information about list control item %d." msgstr "" "Impossible de récupérer des informations sur l'élément « %d » de contrôle " "des listes." #: ../src/common/imagpng.cpp:746 ../src/common/imagpng.cpp:757 #: ../src/common/imagpng.cpp:767 msgid "Couldn't save PNG image." msgstr "Impossible de sauvegarder l'image PNG." #: ../src/msw/thread.cpp:715 msgid "Couldn't terminate thread" msgstr "Impossible d'arrêter le processus" #: ../src/common/xtistrm.cpp:170 #, fuzzy, c-format msgid "Create Parameter %s not found in declared RTTI Parameters" msgstr "Paramètre de création non trouvé dans les paramètres RTTI déclarés" #: ../src/generic/dirdlgg.cpp:317 msgid "Create directory" msgstr "Créer le répertoire" #: ../src/generic/filedlgg.cpp:228 ../src/generic/dirdlgg.cpp:131 msgid "Create new directory" msgstr "Créer un nouveau répertoire" #: ../src/common/accelcmn.cpp:322 msgid "Ctrl+" msgstr "Ctrl+" #: ../src/richtext/richtextctrl.cpp:325 ../src/osx/textctrl_osx.cpp:582 #: ../src/common/stockitem.cpp:151 ../src/msw/textctrl.cpp:2283 msgid "Cu&t" msgstr "Cou&per" #: ../src/generic/filectrlg.cpp:956 msgid "Current directory:" msgstr "Répertoire courant :" #: ../src/gtk/print.cpp:759 msgid "Custom size" msgstr "Taille personnalisée" #: ../src/common/headerctrlcmn.cpp:60 msgid "Customize Columns" msgstr "Personnaliser les Colonnes" #: ../src/common/stockitem.cpp:151 ../src/stc/stc_i18n.cpp:17 msgid "Cut" msgstr "Couper" #: ../src/common/stockitem.cpp:259 msgid "Cut selection" msgstr "Couper la sélection" #: ../src/common/fmapbase.cpp:152 msgid "Cyrillic (ISO-8859-5)" msgstr "Cyrillique (ISO-8859-5)" #: ../src/common/paper.cpp:100 msgid "D sheet, 22 x 34 in" msgstr "Feuille D, 22 x 34 mm" #: ../src/msw/dde.cpp:708 msgid "DDE poke request failed" msgstr "Échec de la demande de transfert DDE" #: ../src/common/accelcmn.cpp:79 msgid "DECIMAL" msgstr "DECIMAL" #: ../src/common/accelcmn.cpp:47 msgid "DEL" msgstr "EFFACER" #: ../src/common/accelcmn.cpp:48 msgid "DELETE" msgstr "EFFACER" #: ../src/common/imagbmp.cpp:1092 msgid "DIB Header: Encoding doesn't match bitdepth." msgstr "En-tête DIB : le codage ne correspond pas au nombre de bits par pixel." #: ../src/common/imagbmp.cpp:1040 msgid "DIB Header: Image height > 32767 pixels for file." msgstr "" "En-tête DIB : hauteur de l'image supérieure à 32 767 pixels pour le fichier." #: ../src/common/imagbmp.cpp:1032 msgid "DIB Header: Image width > 32767 pixels for file." msgstr "" "En-tête DIB : largeur de l'image supérieure à 32 767 pixels pour le fichier." #: ../src/common/imagbmp.cpp:1060 msgid "DIB Header: Unknown bitdepth in file." msgstr "En-tête DIB : nombre de bits par pixel inconnu dans le fichier." #: ../src/common/imagbmp.cpp:1074 msgid "DIB Header: Unknown encoding in file." msgstr "En-tête DIB : codage inconnu dans le fichier." #: ../src/common/accelcmn.cpp:80 msgid "DIVIDE" msgstr "DIVISER" #: ../src/common/paper.cpp:122 msgid "DL Envelope, 110 x 220 mm" msgstr "Enveloppe DL, 110 x 220 mm" #: ../src/common/accelcmn.cpp:59 msgid "DOWN" msgstr "BAS" #: ../src/richtext/richtextborderspage.cpp:545 msgid "Dashed" msgstr "Tirets" #: ../src/osx/carbon/dataview.cpp:1921 msgid "Data object has invalid data format" msgstr "" #: ../src/osx/carbon/dataview.cpp:2491 msgid "Date renderer cannot render value; value type: " msgstr "" #: ../src/generic/dbgrptg.cpp:300 #, c-format msgid "Debug report \"%s\"" msgstr "Rapport de débogage « %s »" #: ../src/common/debugrpt.cpp:210 msgid "Debug report couldn't be created." msgstr "Échec de la création du rapport de débogage." #: ../src/common/debugrpt.cpp:558 msgid "Debug report generation has failed." msgstr "Échec de la création du rapport de débogage." #: ../src/generic/fontdlgg.cpp:323 msgid "Decorative" msgstr "Décoratif" #: ../src/common/fmapbase.cpp:796 msgid "Default encoding" msgstr "Codage par défaut" #: ../src/dfb/fontmgr.cpp:180 msgid "Default font" msgstr "Police par défaut" #: ../src/generic/prntdlgg.cpp:510 msgid "Default printer" msgstr "Imprimante par défaut" #: ../src/richtext/richtextbuffer.cpp:7841 ../src/common/stockitem.cpp:152 #: ../src/stc/stc_i18n.cpp:20 msgid "Delete" msgstr "Supprimer" #: ../src/richtext/richtexttabspage.cpp:148 msgid "Delete A&ll" msgstr "&Tout supprimer" #: ../src/richtext/richtextbuffer.cpp:10637 #, fuzzy msgid "Delete Column" msgstr "Supprimer la colonne" #: ../src/richtext/richtextbuffer.cpp:10587 #, fuzzy msgid "Delete Row" msgstr "Supprimer la ligne" #: ../src/richtext/richtextstyledlg.cpp:779 msgid "Delete Style" msgstr "Supprimer le style" #: ../src/richtext/richtextctrl.cpp:1231 ../src/richtext/richtextctrl.cpp:1452 msgid "Delete Text" msgstr "Supprimer le texte" #: ../src/generic/editlbox.cpp:274 msgid "Delete item" msgstr "Supprimer l'élément" #: ../src/common/stockitem.cpp:260 msgid "Delete selection" msgstr "Effacer la sélection" #: ../src/richtext/richtextstyledlg.cpp:779 #, c-format msgid "Delete style %s?" msgstr "Supprimer le style %s ?" #: ../src/unix/snglinst.cpp:295 #, c-format msgid "Deleted stale lock file '%s'." msgstr "Suppression du fichier verrou périmé « %s »." #: ../src/common/module.cpp:124 #, c-format msgid "Dependency \"%s\" of module \"%s\" doesn't exist." msgstr "La dépendance \"%s\" du module \"%s\" n'existe pas." #: ../src/common/stockitem.cpp:196 msgid "Descending" msgstr "Décroissant" #: ../src/generic/dirctrlg.cpp:626 msgid "Desktop" msgstr "Bureau" #: ../src/generic/aboutdlgg.cpp:70 msgid "Developed by " msgstr "Développé par " #: ../src/generic/aboutdlgg.cpp:176 msgid "Developers" msgstr "Développeurs" #: ../src/msw/dialup.cpp:393 msgid "" "Dial up functions are unavailable because the remote access service (RAS) is " "not installed on this machine. Please install it." msgstr "" "Les fonctions d'appel ne sont pas disponibles car le service d'accès à " "distance (RAS) n'est pas installé sur cet ordinateur. Veuillez l'installer." #: ../src/generic/tipdlg.cpp:230 msgid "Did you know..." msgstr "Saviez-vous que..." #: ../src/dfb/wrapdfb.cpp:63 #, c-format msgid "DirectFB error %d occurred." msgstr "L'erreur DirectFB %d est survenue." #: ../src/motif/filedlg.cpp:219 msgid "Directories" msgstr "Dossiers" #: ../src/common/filefn.cpp:1251 #, c-format msgid "Directory '%s' couldn't be created" msgstr "Le répertoire « %s » n'a pas pu être créé" #: ../src/common/filefn.cpp:1271 #, c-format msgid "Directory '%s' couldn't be deleted" msgstr "Le répertoire « %s » n'a pas pu être supprimé" #: ../src/generic/dirdlgg.cpp:233 msgid "Directory does not exist" msgstr "Répertoire inexistant" #: ../src/generic/filectrlg.cpp:1412 msgid "Directory doesn't exist." msgstr "Répertoire inexistant." #: ../src/common/docview.cpp:455 msgid "Discard changes and reload the last saved version?" msgstr "" "Ignorer les modifications et recharger la dernière version enregistrée ?" #: ../src/html/helpwnd.cpp:512 msgid "" "Display all index items that contain given substring. Search is case " "insensitive." msgstr "" "Afficher tous les éléments de l'index qui contiennent une sous-chaîne " "donnée. Recherche non sensible à la casse." #: ../src/html/helpwnd.cpp:692 msgid "Display options dialog" msgstr "Dialogue d'options de l'affichage" #: ../src/html/helpwnd.cpp:326 msgid "Displays help as you browse the books on the left." msgstr "Affiche l'aide pendant que vous parcourez les livre sur la gauche." #: ../src/msw/mimetype.cpp:732 msgid "" "Do you want to overwrite the command used to %s files with extension \"%s" "\" ?\n" "Current value is \n" "%s, \n" "New value is \n" "%s %1" msgstr "" "Voulez-vous remplacer la commande utilisée pour %s les fichiers avec " "l'extension « %s » ?\n" "La valeur actuelle est \n" "%s, \n" "La nouvelle valeur est \n" "%s %1" #: ../src/common/docview.cpp:531 #, c-format msgid "Do you want to save changes to %s?" msgstr "Voulez-vous enregistrer les modifications vers %s ?" #: ../src/common/prntbase.cpp:525 msgid "Document:" msgstr "Document :" #: ../src/generic/aboutdlgg.cpp:73 msgid "Documentation by " msgstr "Documentation par " #: ../src/generic/aboutdlgg.cpp:180 msgid "Documentation writers" msgstr "Rédacteurs de la documentation" #: ../src/common/sizer.cpp:2680 msgid "Don't Save" msgstr "Ne pas enregistrer" #: ../src/msw/frame.cpp:122 ../src/html/htmlwin.cpp:611 msgid "Done" msgstr "Fait" #: ../src/generic/progdlgg.cpp:481 ../src/msw/progdlg.cpp:407 msgid "Done." msgstr "Fait." #: ../src/richtext/richtextborderspage.cpp:544 msgid "Dotted" msgstr "Pointillé" #: ../src/richtext/richtextborderspage.cpp:546 msgid "Double" msgstr "Double" #: ../src/common/paper.cpp:177 msgid "Double Japanese Postcard Rotated 148 x 200 mm" msgstr "Carte postale japonaise double Paysage 148 x 200 mm" #: ../src/common/xtixml.cpp:273 #, c-format msgid "Doubly used id : %d" msgstr "Identifiant utilisé deux fois : %d" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:153 msgid "Down" msgstr "Bas" #: ../src/richtext/richtextctrl.cpp:814 msgid "Drag" msgstr "" #: ../src/common/paper.cpp:101 msgid "E sheet, 34 x 44 in" msgstr "Feuille E (34 x 44 pouces)" #: ../src/common/accelcmn.cpp:61 msgid "END" msgstr "FIN" #: ../src/common/accelcmn.cpp:52 msgid "ENTER" msgstr "ENTRÉE" #: ../src/unix/fswatcher_inotify.cpp:535 #, fuzzy msgid "EOF while reading from inotify descriptor" msgstr "impossible de lire le descripteur de fichier %d" #: ../src/common/accelcmn.cpp:64 msgid "ESC" msgstr "ÉCHAP" #: ../src/common/accelcmn.cpp:65 msgid "ESCAPE" msgstr "ÉCHAPPEMENT" #: ../src/common/accelcmn.cpp:73 msgid "EXECUTE" msgstr "ÉXÉCUTER" #: ../src/common/stockitem.cpp:154 msgid "Edit" msgstr "Édition" #: ../src/generic/editlbox.cpp:272 msgid "Edit item" msgstr "Éditer l'élément" #: ../include/wx/generic/progdlgg.h:84 #, fuzzy msgid "Elapsed time:" msgstr "Temps écoulé : " #: ../src/richtext/richtextsizepage.cpp:353 #: ../src/richtext/richtextsizepage.cpp:355 #: ../src/richtext/richtextsizepage.cpp:465 #: ../src/richtext/richtextsizepage.cpp:467 msgid "Enable the height value." msgstr "Activer la valeur de hauteur." #: ../src/richtext/richtextsizepage.cpp:438 #: ../src/richtext/richtextsizepage.cpp:440 msgid "Enable the maximum width value." msgstr "Activer la valeur maximale de largeur." #: ../src/richtext/richtextsizepage.cpp:411 #: ../src/richtext/richtextsizepage.cpp:413 msgid "Enable the minimum height value." msgstr "Activer la valeur minimale de hauteur." #: ../src/richtext/richtextsizepage.cpp:384 #: ../src/richtext/richtextsizepage.cpp:386 msgid "Enable the minimum width value." msgstr "Activer la valeur minimale de largeur." #: ../src/richtext/richtextsizepage.cpp:319 #: ../src/richtext/richtextsizepage.cpp:321 msgid "Enable the width value." msgstr "Activer la valeur de largeur." #: ../src/richtext/richtextsizepage.cpp:280 #: ../src/richtext/richtextsizepage.cpp:282 msgid "Enable vertical alignment." msgstr "Activer l'alignement vertical." #: ../src/richtext/richtextbackgroundpage.cpp:133 #: ../src/richtext/richtextbackgroundpage.cpp:135 msgid "Enables a background colour." msgstr "Active une couleur d'arrière plan." #: ../src/richtext/richtextstyledlg.cpp:931 msgid "Enter a box style name" msgstr "Entrer le nom d'un style de boîte" #: ../src/richtext/richtextstyledlg.cpp:603 msgid "Enter a character style name" msgstr "Entrer le nom d'un style de caractère" #: ../src/richtext/richtextstyledlg.cpp:817 msgid "Enter a list style name" msgstr "Entrer le nom d'un style de liste" #: ../src/richtext/richtextstyledlg.cpp:890 msgid "Enter a new style name" msgstr "Entrer le nom d'un nouveau style" #: ../src/richtext/richtextstyledlg.cpp:651 msgid "Enter a paragraph style name" msgstr "Entrer le nom d'un style de paragraphe" #: ../src/generic/dbgrptg.cpp:174 #, c-format msgid "Enter command to open file \"%s\":" msgstr "Entrer la commande pour ouvrir le fichier « %s » :" #: ../src/generic/helpext.cpp:463 msgid "Entries found" msgstr "Entrées trouvées" #: ../src/common/paper.cpp:143 msgid "Envelope Invite 220 x 220 mm" msgstr "Enveloppe Invite 220 x 220 mm" #: ../src/common/config.cpp:473 #, c-format msgid "" "Environment variables expansion failed: missing '%c' at position %u in '%s'." msgstr "" "Échec de l'expansion des variables d'environnement : « %c » manquant à la " "position %u dans « %s »." #: ../src/generic/dirctrlg.cpp:670 ../src/generic/dirctrlg.cpp:688 #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:791 #: ../src/generic/filectrlg.cpp:805 ../src/generic/filectrlg.cpp:821 #: ../src/generic/filectrlg.cpp:1381 ../src/generic/filectrlg.cpp:1412 #: ../src/gtk/filedlg.cpp:73 ../src/gtk1/fontdlg.cpp:74 msgid "Error" msgstr "Erreur" #: ../src/unix/epolldispatcher.cpp:103 msgid "Error closing epoll descriptor" msgstr "Erreur lors de la fermeture du descripteur epoll" #: ../src/unix/fswatcher_kqueue.cpp:114 #, fuzzy msgid "Error closing kqueue instance" msgstr "Erreur lors de la création du répertoire" #: ../src/generic/dirdlgg.cpp:251 msgid "Error creating directory" msgstr "Erreur lors de la création du répertoire" #: ../src/common/imagbmp.cpp:1103 msgid "Error in reading image DIB." msgstr "Erreur lors de la lecture d'une image DIB." #: ../src/propgrid/propgrid.cpp:6563 #, c-format msgid "Error in resource: %s" msgstr "" #: ../src/common/fileconf.cpp:453 msgid "Error reading config options." msgstr "Erreur lors de la lecture des options de configuration." #: ../src/common/fileconf.cpp:1064 msgid "Error saving user configuration data." msgstr "" "Erreur lors de l'enregistrement des données de configuration de " "l'utilisateur." #: ../src/gtk/print.cpp:671 msgid "Error while printing: " msgstr "Erreur lors de l'impression :" #: ../src/common/log.cpp:223 msgid "Error: " msgstr "Erreur : " #: ../src/common/fmapbase.cpp:150 msgid "Esperanto (ISO-8859-3)" msgstr "Espéranto (ISO-8859-3)" #: ../include/wx/generic/progdlgg.h:85 #, fuzzy msgid "Estimated time:" msgstr "Temps estimé : " #: ../src/unix/fswatcher_inotify.cpp:639 msgid "Event queue overflowed" msgstr "" #: ../src/generic/dbgrptg.cpp:234 msgid "Executable files (*.exe)|*.exe|" msgstr "Fichiers exécutables (*.exe)|*.exe|" #: ../src/common/stockitem.cpp:155 msgid "Execute" msgstr "Executer" #: ../src/msw/utilsexc.cpp:888 #, c-format msgid "Execution of command '%s' failed" msgstr "Échec de l'exécution de la commande « %s »" #: ../src/os2/utilsexc.cpp:163 #, c-format msgid "Execution of command '%s' failed with error: %ul" msgstr "Échec de l'exécution de la commande « %s » avec l'erreur : %ul" #: ../src/common/paper.cpp:106 msgid "Executive, 7 1/4 x 10 1/2 in" msgstr "Executive (7,25 x 10,5 pouces)" #: ../src/msw/registry.cpp:1230 #, c-format msgid "" "Exporting registry key: file \"%s\" already exists and won't be overwritten." msgstr "" "Exportation de la clé de registre : le fichier « %s » existe déjà et ne sera " "pas écrasé." #: ../src/common/fmapbase.cpp:195 msgid "Extended Unix Codepage for Japanese (EUC-JP)" msgstr "Codepage Unix étendu pour le japonais (EUC-JP)" #: ../src/html/chm.cpp:725 #, c-format msgid "Extraction of '%s' into '%s' failed." msgstr "Échec de l'extraction de « %s » de « %s »." #: ../src/common/accelcmn.cpp:238 ../src/common/accelcmn.cpp:333 msgid "F" msgstr "F" #: ../src/propgrid/advprops.cpp:640 #, fuzzy msgid "Face Name" msgstr "NouveauNom" #: ../src/unix/snglinst.cpp:269 msgid "Failed to access lock file." msgstr "Échec de l'accès au fichier verrou." #: ../src/unix/epolldispatcher.cpp:116 #, fuzzy, c-format msgid "Failed to add descriptor %d to epoll descriptor %d" msgstr "impossible d'écrire dans le descripteur de fichier %d" #: ../src/msw/dib.cpp:548 #, c-format msgid "Failed to allocate %luKb of memory for bitmap data." msgstr "Échec de l'allocation de %lu Ko de mémoire pour les données bitmap." #: ../src/common/glcmn.cpp:87 msgid "Failed to allocate colour for OpenGL" msgstr "Échec de l'allocation de couleur pour OpenGL" #: ../src/unix/displayx11.cpp:288 msgid "Failed to change video mode" msgstr "Impossible de changer le mode vidéo" #: ../src/common/image.cpp:3139 #, c-format msgid "Failed to check format of image file \"%s\"." msgstr "Échec de la vérification de format du fichier image « %s »." #: ../src/common/debugrpt.cpp:244 #, c-format msgid "Failed to clean up debug report directory \"%s\"" msgstr "Échec du nettoyage du répertoire « %s » des rapports de débogage" #: ../src/common/filename.cpp:211 msgid "Failed to close file handle" msgstr "Échec de la fermeture du gestionnaire de fichier" #: ../src/unix/snglinst.cpp:334 #, c-format msgid "Failed to close lock file '%s'" msgstr "Échec de la fermeture du fichier verrou « %s »" #: ../src/msw/clipbrd.cpp:115 msgid "Failed to close the clipboard." msgstr "Échec de la fermeture du presse-papiers." #: ../src/x11/utils.cpp:204 #, c-format msgid "Failed to close the display \"%s\"" msgstr "Échec de la fermeture de l'écran \"%s\"." #: ../src/msw/dialup.cpp:818 msgid "Failed to connect: missing username/password." msgstr "Échec de la connexion : nom d'utilisateur ou mot de passe manquant." #: ../src/msw/dialup.cpp:764 msgid "Failed to connect: no ISP to dial." msgstr "Échec de la connexion : pas de FAI à appeler." #: ../src/common/textfile.cpp:200 #, c-format msgid "Failed to convert file \"%s\" to Unicode." msgstr "Échec de la conversion du fichier « %s » en Unicode." #: ../src/generic/logg.cpp:976 #, fuzzy msgid "Failed to copy dialog contents to the clipboard." msgstr "Échec de l'ouverture du presse-papiers." #: ../src/msw/registry.cpp:691 #, c-format msgid "Failed to copy registry value '%s'" msgstr "Échec de la copie de la valeur de registre « %s »" #: ../src/msw/registry.cpp:700 #, c-format msgid "Failed to copy the contents of registry key '%s' to '%s'." msgstr "Échec de la copie du contenu de la clé de registre « %s » vers « %s »" #: ../src/common/filefn.cpp:1058 #, c-format msgid "Failed to copy the file '%s' to '%s'" msgstr "Échec de la copie du fichier « %s » vers « %s »" #: ../src/msw/registry.cpp:678 #, c-format msgid "Failed to copy the registry subkey '%s' to '%s'." msgstr "Échec de la copie de la sous-clé de registre « %s » vers « %s »." #: ../src/msw/dde.cpp:1073 msgid "Failed to create DDE string" msgstr "Échec de la création de la chaîne DDE" #: ../src/msw/mdi.cpp:590 msgid "Failed to create MDI parent frame." msgstr "Échec de la création du cadre parent MDI." #: ../src/common/filename.cpp:1080 msgid "Failed to create a temporary file name" msgstr "Échec de la création d'un nom de fichier temporaire." #: ../src/msw/utilsexc.cpp:235 msgid "Failed to create an anonymous pipe" msgstr "Échec de la création d'un tube anonyme" #: ../src/msw/ole/automtn.cpp:522 #, c-format msgid "Failed to create an instance of \"%s\"" msgstr "Échec de la création d'une instance de « %s »" #: ../src/msw/dde.cpp:442 #, c-format msgid "Failed to create connection to server '%s' on topic '%s'" msgstr "" "Échec de la création d'une connexion au serveur « %s » sur le sujet « %s »" #: ../src/msw/cursor.cpp:212 msgid "Failed to create cursor." msgstr "Échec de la création d'un curseur." #: ../src/common/debugrpt.cpp:209 #, c-format msgid "Failed to create directory \"%s\"" msgstr "Échec de la création du répertoire « %s »" #: ../src/generic/dirdlgg.cpp:249 #, c-format msgid "" "Failed to create directory '%s'\n" "(Do you have the required permissions?)" msgstr "" "Échec de la création du répertoire « %s »\n" "(Avez-vous les permissions requises ?)" #: ../src/unix/epolldispatcher.cpp:84 msgid "Failed to create epoll descriptor" msgstr "Échec de la création du descripteur epoll" #: ../src/msw/mimetype.cpp:198 #, c-format msgid "Failed to create registry entry for '%s' files." msgstr "" "Échec de la création d'une entrée dans le registre pour les fichiers « %s »." #: ../src/msw/fdrepdlg.cpp:442 #, c-format msgid "Failed to create the standard find/replace dialog (error code %d)" msgstr "" "Échec de la création de la boîte de dialogue standard rechercher/remplacer " "(code d'erreur %d)" #: ../src/unix/wakeuppipe.cpp:52 #, fuzzy msgid "Failed to create wake up pipe used by event loop." msgstr "Échec de la création d'une barre d'état." #: ../src/html/winpars.cpp:739 #, c-format msgid "Failed to display HTML document in %s encoding" msgstr "Échec de l'affichage du document HTML avec le codage %s" #: ../src/msw/clipbrd.cpp:127 msgid "Failed to empty the clipboard." msgstr "Échec du vidage du presse-papiers." #: ../src/unix/displayx11.cpp:265 msgid "Failed to enumerate video modes" msgstr "Échec de l'énumération des modes vidéo" #: ../src/msw/dde.cpp:727 msgid "Failed to establish an advise loop with DDE server" msgstr "" "Échec de l'établissement d'une boucle d'instructions avec le serveur DDE" #: ../src/msw/dialup.cpp:650 ../src/msw/dialup.cpp:884 #, c-format msgid "Failed to establish dialup connection: %s" msgstr "Échec de l'établissement d'une connexion : %s" #: ../src/unix/utilsunx.cpp:617 #, c-format msgid "Failed to execute '%s'\n" msgstr "Échec de l'exécution de « %s »\n" #: ../src/common/debugrpt.cpp:725 msgid "Failed to execute curl, please install it in PATH." msgstr "Échec de l'exécution de curl, veuillez l'installer dans le PATH" #: ../src/msw/ole/automtn.cpp:505 #, c-format msgid "Failed to find CLSID of \"%s\"" msgstr "Échec de la recherche du CLSID de « %s »" #: ../src/common/regex.cpp:434 ../src/common/regex.cpp:482 #, c-format msgid "Failed to find match for regular expression: %s" msgstr "" "Aucune correspondance pour l'expression régulière « %s » n'a été trouvée." #: ../src/msw/dialup.cpp:716 #, c-format msgid "Failed to get ISP names: %s" msgstr "Échec de l'obtention des noms des FAI : %s" #: ../src/msw/ole/automtn.cpp:574 #, c-format msgid "Failed to get OLE automation interface for \"%s\"" msgstr "Échec de l'obtention de l'interface OLE Automatino pour « %s »" #: ../src/msw/clipbrd.cpp:747 msgid "Failed to get data from the clipboard" msgstr "Échec de l'obtention des données du presse-papiers" #: ../src/common/time.cpp:249 msgid "Failed to get the local system time" msgstr "Échec de l'obtention de l'heure locale du système" #: ../src/common/filefn.cpp:1453 msgid "Failed to get the working directory" msgstr "Échec de l'obtention du répertoire courant" #: ../src/univ/theme.cpp:113 msgid "Failed to initialize GUI: no built-in themes found." msgstr "" "Échec de l'initialisation de l'interface graphique : aucun thème préfabriqué " "n'a été trouvé." #: ../src/msw/helpchm.cpp:63 msgid "Failed to initialize MS HTML Help." msgstr "Échec de l'initialisation de l'aide MS HTML." #: ../src/msw/glcanvas.cpp:892 msgid "Failed to initialize OpenGL" msgstr "Échec de l'initialisation d'OpenGL" #: ../src/msw/dialup.cpp:879 #, fuzzy, c-format msgid "Failed to initiate dialup connection: %s" msgstr "Échec de la terminaison de la connexion : %s" #: ../src/gtk/textctrl.cpp:1117 msgid "Failed to insert text in the control." msgstr "Échec de l'insertion de texte dans le contrôle." #: ../src/unix/snglinst.cpp:241 #, c-format msgid "Failed to inspect the lock file '%s'" msgstr "Échec de l'inspection du fichier verrou « %s »" #: ../src/unix/appunix.cpp:182 msgid "Failed to install signal handler" msgstr "Échec de l'installation du gestionnaire de signal" #: ../src/unix/threadpsx.cpp:1162 msgid "" "Failed to join a thread, potential memory leak detected - please restart the " "program" msgstr "" "Échec de l'adjonction d'un processus : fuite potentielle de mémoire " "détectée, redémarrez le programme" #: ../src/msw/utils.cpp:745 #, c-format msgid "Failed to kill process %d" msgstr "Échec de l'arrêt du processus %d" #: ../src/common/image.cpp:2365 #, c-format msgid "Failed to load bitmap \"%s\" from resources." msgstr "Échec du chargement du bitmap « %s » depuis les ressources." #: ../src/common/image.cpp:2374 #, c-format msgid "Failed to load icon \"%s\" from resources." msgstr "Échec du chargement de l'icône « %s » depuis les ressources." #: ../src/common/iconbndl.cpp:182 #, c-format msgid "Failed to load image %%d from file '%s'." msgstr "Échec du chargement de l'image %%d depuis le fichier « %s »." #: ../src/common/iconbndl.cpp:190 #, c-format msgid "Failed to load image %d from stream." msgstr "Échec du chargement de l'image %d depuis le flux." #: ../src/common/image.cpp:2450 ../src/common/image.cpp:2469 #, c-format msgid "Failed to load image from file \"%s\"." msgstr "Échec du chargement de l'image depuis le fichier « %s »." #: ../src/msw/enhmeta.cpp:97 #, c-format msgid "Failed to load metafile from file \"%s\"." msgstr "Échec du chargement du métafichier depuis le fichier « %s »." #: ../src/msw/volume.cpp:327 msgid "Failed to load mpr.dll." msgstr "Échec du chargement de mpr.dll" #: ../src/msw/utils.cpp:1120 #, c-format msgid "Failed to load resource \"%s\"." msgstr "Échec du chargement de la ressource « %s »." #: ../src/common/dynlib.cpp:100 #, c-format msgid "Failed to load shared library '%s'" msgstr "Échec du chargement de la bibliothèque partagée « %s »" #: ../src/msw/utils.cpp:1127 #, c-format msgid "Failed to lock resource \"%s\"." msgstr "Échec du verrouillage de la ressource « %s »" #: ../src/unix/snglinst.cpp:198 #, c-format msgid "Failed to lock the lock file '%s'" msgstr "Échec du verrouillage du fichier verrou « %s »" #: ../src/unix/epolldispatcher.cpp:136 #, c-format msgid "Failed to modify descriptor %d in epoll descriptor %d" msgstr "" #: ../src/common/filename.cpp:2681 #, c-format msgid "Failed to modify file times for '%s'" msgstr "Échec de la modification de la date du fichier « %s »" #: ../src/common/selectdispatcher.cpp:252 msgid "Failed to monitor I/O channels" msgstr "Impossible de contrôler les canaux d'E/S" #: ../src/common/filename.cpp:194 #, c-format msgid "Failed to open '%s' for reading" msgstr "Échec de l'ouverture de « %s » en lecture" #: ../src/common/filename.cpp:199 #, c-format msgid "Failed to open '%s' for writing" msgstr "Échec de l'ouverture de « %s » en écriture" #: ../src/html/chm.cpp:141 #, c-format msgid "Failed to open CHM archive '%s'." msgstr "Échec de l'ouverture de l'archive CHM « %s »." #: ../src/common/utilscmn.cpp:1135 #, c-format msgid "Failed to open URL \"%s\" in default browser." msgstr "Échec de l'ouverture de l'URL « %s » avec le navigateur par défaut." #: ../include/wx/msw/private/fswatcher.h:92 #, c-format msgid "Failed to open directory \"%s\" for monitoring." msgstr "Échec de l'ouverture du répertoire « %s » pour surveillance." #: ../src/x11/utils.cpp:223 #, c-format msgid "Failed to open display \"%s\"." msgstr "Échec de l'ouverture de l'écran « %s »." #: ../src/common/filename.cpp:1115 msgid "Failed to open temporary file." msgstr "Échec de l'ouverture d'un fichier temporaire." #: ../src/msw/clipbrd.cpp:94 msgid "Failed to open the clipboard." msgstr "Échec de l'ouverture du presse-papiers." #: ../src/common/translation.cpp:1170 #, c-format msgid "Failed to parse Plural-Forms: '%s'" msgstr "Écher de l'analyse des formes plurielles  : « %s »" #: ../src/unix/mediactrl.cpp:1268 #, c-format msgid "Failed to prepare playing \"%s\"." msgstr "Échec de la préparation à la lecture « %s »." #: ../src/msw/clipbrd.cpp:647 msgid "Failed to put data on the clipboard" msgstr "Échec de l'ajout de données dans le presse-papiers" #: ../src/unix/snglinst.cpp:278 msgid "Failed to read PID from lock file." msgstr "" "Échec de la lecture du numéro de processus (PID) depuis le fichier verrou." #: ../src/common/fileconf.cpp:464 msgid "Failed to read config options." msgstr "Échec de la lecture des options de configuration." #: ../src/common/docview.cpp:678 #, c-format msgid "Failed to read document from the file \"%s\"." msgstr "Échec de la lecture du document depuis le fichier « %s »." #: ../src/dfb/evtloop.cpp:98 #, fuzzy msgid "Failed to read event from DirectFB pipe" msgstr "" "Échec de la lecture du numéro de processus (PID) depuis le fichier verrou." #: ../src/unix/wakeuppipe.cpp:120 #, fuzzy msgid "Failed to read from wake-up pipe" msgstr "" "Échec de la lecture du numéro de processus (PID) depuis le fichier verrou." #: ../src/unix/utilsunx.cpp:685 msgid "Failed to redirect child process input/output" msgstr "Échec de la redirection des entrées et sorties du processus fils" #: ../src/msw/utilsexc.cpp:697 msgid "Failed to redirect the child process IO" msgstr "Échec de la redirection des entrées et sorties du processus fils" #: ../src/msw/dde.cpp:293 #, c-format msgid "Failed to register DDE server '%s'" msgstr "Échec de l'enregistrement du serveur DDE « %s »" #: ../src/common/fontmap.cpp:245 #, c-format msgid "Failed to remember the encoding for the charset '%s'." msgstr "Échec du rappel du codage du jeu de caractères « %s »." #: ../src/common/debugrpt.cpp:227 #, c-format msgid "Failed to remove debug report file \"%s\"" msgstr "Échec de la suppression du fichier de rapport de débogage « %s »" #: ../src/unix/snglinst.cpp:322 #, c-format msgid "Failed to remove lock file '%s'" msgstr "Échec de la suppression du fichier verrou « %s »" #: ../src/unix/snglinst.cpp:288 #, c-format msgid "Failed to remove stale lock file '%s'." msgstr "Échec de la suppression du fichier verrou périmé « %s »." #: ../src/msw/registry.cpp:528 #, c-format msgid "Failed to rename registry value '%s' to '%s'." msgstr "Échec du renommage de la valeur de registre « %s » en « %s »." #: ../src/common/filefn.cpp:1168 #, c-format msgid "" "Failed to rename the file '%s' to '%s' because the destination file already " "exists." msgstr "" "Erreur lors du changement de nom de '%s' vers '%s': il existe déjà un " "fichier avec le nom de destination." #: ../src/msw/registry.cpp:633 #, c-format msgid "Failed to rename the registry key '%s' to '%s'." msgstr "Échec du renommage de la clé de registre « %s » en « %s »." #: ../src/msw/clipbrd.cpp:497 msgid "Failed to retrieve data from the clipboard." msgstr "Échec de la récupération de données du presse-papiers." #: ../src/common/filename.cpp:2777 #, c-format msgid "Failed to retrieve file times for '%s'" msgstr "Échec de la récupération de la date du fichier « %s »" #: ../src/msw/dialup.cpp:487 msgid "Failed to retrieve text of RAS error message" msgstr "Échec de la récupération du texte du message d'erreur RAS" #: ../src/msw/clipbrd.cpp:784 msgid "Failed to retrieve the supported clipboard formats" msgstr "Échec de la récupération des formats de presse-papiers gérés" #: ../src/common/docview.cpp:649 #, c-format msgid "Failed to save document to the file \"%s\"." msgstr "Échec de l'enregistrement du document dans le fichier « %s »." #: ../src/msw/dib.cpp:326 #, c-format msgid "Failed to save the bitmap image to file \"%s\"." msgstr "Échec de l'enregistrement de l'image bitmap dans le fichier « %s »" #: ../src/msw/dde.cpp:768 msgid "Failed to send DDE advise notification" msgstr "Échec de l'envoi d'une notification d'instructions au DDE" #: ../src/common/ftp.cpp:404 #, c-format msgid "Failed to set FTP transfer mode to %s." msgstr "Échec de la configuration du mode de transfert FTP en %s." #: ../src/msw/clipbrd.cpp:373 msgid "Failed to set clipboard data." msgstr "Échec de la configuration des données du presse-papiers." #: ../src/unix/snglinst.cpp:181 #, c-format msgid "Failed to set permissions on lock file '%s'" msgstr "Échec de la configuration des permissions du fichier verrou « %s »" #: ../src/unix/utilsunx.cpp:674 msgid "Failed to set process priority" msgstr "Échec de la définition de la priorité du processus" #: ../src/common/file.cpp:576 msgid "Failed to set temporary file permissions" msgstr "Échec de la configuration des permissions du fichier temporaire" #: ../src/gtk/textctrl.cpp:1058 msgid "Failed to set text in the text control." msgstr "Échec: le texte n'a pas pu être placé dans le contrôle de texte." #: ../src/unix/threadpsx.cpp:1293 #, fuzzy, c-format msgid "Failed to set thread concurrency level to %lu" msgstr "Échec de la configuration de la priorité %d du processus." #: ../src/unix/threadpsx.cpp:1377 ../src/unix/threadpsx.cpp:1387 #, c-format msgid "Failed to set thread priority %d." msgstr "Échec de la configuration de la priorité %d du processus." #: ../src/unix/utilsunx.cpp:791 msgid "Failed to set up non-blocking pipe, the program might hang." msgstr "" #: ../src/common/fs_mem.cpp:261 #, c-format msgid "Failed to store image '%s' to memory VFS!" msgstr "Échec du stockage de l'image « %s » dans la mémoire VFS." #: ../src/dfb/evtloop.cpp:170 msgid "Failed to switch DirectFB pipe to non-blocking mode" msgstr "" #: ../src/unix/wakeuppipe.cpp:59 msgid "Failed to switch wake up pipe to non-blocking mode" msgstr "" #: ../src/unix/threadpsx.cpp:1569 msgid "Failed to terminate a thread." msgstr "Échec de la terminaison d'un processus." #: ../src/msw/dde.cpp:746 msgid "Failed to terminate the advise loop with DDE server" msgstr "" "Échec de la terminaison de la boucle d'instructions avec le serveur DDE" #: ../src/msw/dialup.cpp:959 #, c-format msgid "Failed to terminate the dialup connection: %s" msgstr "Échec de la terminaison de la connexion : %s" #: ../src/common/filename.cpp:2696 #, c-format msgid "Failed to touch the file '%s'" msgstr "Échec de la mise à jour de la date du fichier « %s »" #: ../src/unix/snglinst.cpp:328 #, c-format msgid "Failed to unlock lock file '%s'" msgstr "Échec du déverrouillage du fichier verrou « %s »" #: ../src/msw/dde.cpp:314 #, c-format msgid "Failed to unregister DDE server '%s'" msgstr "Échec du désenregistrement du serveur DDE « %s »" #: ../src/unix/epolldispatcher.cpp:155 #, fuzzy, c-format msgid "Failed to unregister descriptor %d from epoll descriptor %d" msgstr "Échec de la récupération de données du presse-papiers." #: ../src/common/fileconf.cpp:1037 msgid "Failed to update user configuration file." msgstr "Échec de la mise à jour du fichier de configuration utilisateur" #: ../src/common/debugrpt.cpp:738 #, c-format msgid "Failed to upload the debug report (error code %d)." msgstr "Échec de l'envoi du rapport de bogue (code d'erreur %d)." #: ../src/unix/snglinst.cpp:168 #, c-format msgid "Failed to write to lock file '%s'" msgstr "Échec de l'écriture dans le fichier verrou « %s »" #: ../src/propgrid/propgrid.cpp:172 msgid "False" msgstr "Faux" #: ../src/propgrid/advprops.cpp:658 msgid "Family" msgstr "Famille" #: ../src/common/stockitem.cpp:157 ../src/msw/wince/filedlgwce.cpp:121 msgid "File" msgstr "Fichier" #: ../src/common/docview.cpp:666 #, c-format msgid "File \"%s\" could not be opened for reading." msgstr "Le fichier « %s » n'a pas pu être ouvert en lecture." #: ../src/common/docview.cpp:643 #, c-format msgid "File \"%s\" could not be opened for writing." msgstr "Le fichier « %s » n'a pas pu être ouvert en écriture." #: ../src/gtk/filedlg.cpp:56 #, c-format msgid "File '%s' already exists, do you really want to overwrite it?" msgstr "Le fichier « %s » existe déjà, voulez-vous vraiment l'écraser ?" #: ../src/os2/filedlg.cpp:310 #, c-format msgid "" "File '%s' already exists.\n" "Do you want to replace it?" msgstr "" "Le fichier « %s » existe déjà.\n" "Voulez-vous le remplacer ?" #: ../src/common/filefn.cpp:1207 #, c-format msgid "File '%s' couldn't be removed" msgstr "Le fichier « %s » n'a pas pu être supprimé" #: ../src/common/filefn.cpp:1187 #, c-format msgid "File '%s' couldn't be renamed '%s'" msgstr "Le fichier « %s » n'a pas pu être renommé « %s »" #: ../src/richtext/richtextctrl.cpp:2688 ../src/common/textcmn.cpp:921 msgid "File couldn't be loaded." msgstr "Le fichier n'a pas pu être chargé." #: ../src/msw/filedlg.cpp:458 #, c-format msgid "File dialog failed with error code %0lx." msgstr "Échec du dialogue de fichier avec le code d'erreur %0lx." #: ../src/common/docview.cpp:1771 msgid "File error" msgstr "Erreur fichier" #: ../src/generic/dirctrlg.cpp:688 ../src/generic/filectrlg.cpp:805 msgid "File name exists already." msgstr "Nom de fichier existant." #: ../src/motif/filedlg.cpp:220 msgid "Files" msgstr "Fichiers" #: ../src/common/filefn.cpp:1761 #, c-format msgid "Files (%s)" msgstr "Fichiers (%s)" #: ../src/motif/filedlg.cpp:218 msgid "Filter" msgstr "Filtre" #: ../src/common/stockitem.cpp:158 ../src/html/helpwnd.cpp:500 msgid "Find" msgstr "Trouver" #: ../src/common/stockitem.cpp:159 msgid "First" msgstr "Premier" #: ../src/common/prntbase.cpp:1518 msgid "First page" msgstr "Première page" #: ../src/richtext/richtextsizepage.cpp:521 msgid "Fixed" msgstr "Fixe" #: ../src/html/helpwnd.cpp:1219 msgid "Fixed font:" msgstr "Police de taille fixe :" #: ../src/html/helpwnd.cpp:1282 msgid "Fixed size face.
    bold italic " msgstr "Police de taille fixe.
    gras italique " #: ../src/richtext/richtextsizepage.cpp:229 #, fuzzy msgid "Floating" msgstr "Mise en forme" #: ../src/common/stockitem.cpp:160 msgid "Floppy" msgstr "Disquette" #: ../src/common/paper.cpp:112 msgid "Folio, 8 1/2 x 13 in" msgstr "Folio (8,5 x 13 pouces)" #: ../src/richtext/richtextformatdlg.cpp:324 ../src/osx/carbon/fontdlg.cpp:473 #: ../src/common/stockitem.cpp:194 msgid "Font" msgstr "Police de caractères" #: ../src/richtext/richtextfontpage.cpp:230 msgid "Font &weight:" msgstr "Lar&geur de police." #: ../src/html/helpwnd.cpp:1220 msgid "Font size:" msgstr "Taille de la police :" #: ../src/richtext/richtextfontpage.cpp:217 msgid "Font st&yle:" msgstr "St&yle de la police :" #: ../src/osx/carbon/fontdlg.cpp:515 msgid "Font:" msgstr "Police de caractères:" #: ../src/dfb/fontmgr.cpp:198 #, c-format msgid "Fonts index file %s disappeared while loading fonts." msgstr "" #: ../src/unix/utilsunx.cpp:651 msgid "Fork failed" msgstr "Échec du clonage" #: ../src/common/stockitem.cpp:161 msgid "Forward" msgstr "Suivant" #: ../src/common/xtixml.cpp:235 msgid "Forward hrefs are not supported" msgstr "Transferts href non gérés" #: ../src/html/helpwnd.cpp:888 #, c-format msgid "Found %i matches" msgstr "A trouvé %i correspondances" #: ../src/generic/prntdlgg.cpp:238 msgid "From:" msgstr "De :" #: ../src/common/imaggif.cpp:160 msgid "GIF: Invalid gif index." msgstr "GIF : index gif non valable." #: ../src/common/imaggif.cpp:150 msgid "GIF: data stream seems to be truncated." msgstr "GIF : le flux des données semble être tronqué." #: ../src/common/imaggif.cpp:134 msgid "GIF: error in GIF image format." msgstr "GIF : erreur dans le format de l'image GIF." #: ../src/common/imaggif.cpp:137 msgid "GIF: not enough memory." msgstr "GIF : mémoire insuffisante." #: ../src/common/imaggif.cpp:140 msgid "GIF: unknown error!!!" msgstr "GIF : erreur non référencée." #: ../src/gtk/window.cpp:4288 msgid "" "GTK+ installed on this machine is too old to support screen compositing, " "please install GTK+ 2.12 or later." msgstr "" #: ../src/univ/themes/gtk.cpp:525 msgid "GTK+ theme" msgstr "Thème GTK+" #: ../src/common/preferencescmn.cpp:39 msgid "General" msgstr "Général" #: ../src/common/prntbase.cpp:243 msgid "Generic PostScript" msgstr "Fichier PostScript" #: ../src/common/paper.cpp:136 msgid "German Legal Fanfold, 8 1/2 x 13 in" msgstr "Légal allemand en accordéon (8,5 x 13 pouces)" #: ../src/common/paper.cpp:135 msgid "German Std Fanfold, 8 1/2 x 12 in" msgstr "Standard allemand en accordéon (8,5 x 12 pouces)" #: ../include/wx/xtiprop.h:188 msgid "GetProperty called w/o valid getter" msgstr "GetProperty appelé sans récupérateur valable" #: ../include/wx/xtiprop.h:266 msgid "GetPropertyCollection called on a generic accessor" msgstr "GetPropertyCollection appelé sur un assesseur générique" #: ../include/wx/xtiprop.h:206 msgid "GetPropertyCollection called w/o valid collection getter" msgstr "GetPropertyCollection appelé sans récupérateur de collection valable" #: ../src/html/helpwnd.cpp:673 msgid "Go back" msgstr "Revenir" #: ../src/html/helpwnd.cpp:674 msgid "Go forward" msgstr "Continuer" #: ../src/html/helpwnd.cpp:676 msgid "Go one level up in document hierarchy" msgstr "Monter au niveau supérieur dans la hiérarchie du document" #: ../src/generic/filedlgg.cpp:223 ../src/generic/dirdlgg.cpp:136 msgid "Go to home directory" msgstr "Aller au répertoire personnel" #: ../src/generic/filedlgg.cpp:219 msgid "Go to parent directory" msgstr "Aller au répertoire parent" #: ../src/generic/aboutdlgg.cpp:76 msgid "Graphics art by " msgstr "Arts graphiques par " #: ../src/common/fmapbase.cpp:154 msgid "Greek (ISO-8859-7)" msgstr "Grec (ISO-8859-7)" #: ../src/richtext/richtextborderspage.cpp:547 msgid "Groove" msgstr "" #: ../src/common/zstream.cpp:158 ../src/common/zstream.cpp:318 msgid "Gzip not supported by this version of zlib" msgstr "Gzip n'est pas géré par cette version de zlib" #: ../src/common/accelcmn.cpp:75 msgid "HELP" msgstr "AIDE" #: ../src/common/accelcmn.cpp:60 msgid "HOME" msgstr "DEBUT" #: ../src/html/helpwnd.cpp:1552 msgid "HTML Help Project (*.hhp)|*.hhp|" msgstr "Projet d'aide HTML (*.hhp)|*.hhp|" #: ../src/html/htmlwin.cpp:659 #, c-format msgid "HTML anchor %s does not exist." msgstr "Ancre HTML %s inexistante." #: ../src/html/helpwnd.cpp:1550 msgid "HTML files (*.html;*.htm)|*.html;*.htm|" msgstr "Fichiers HTML (*.html;*.htm)|*.html;*.htm|" #: ../src/common/stockitem.cpp:162 msgid "Harddisk" msgstr "Disque-dur" #: ../src/common/fmapbase.cpp:155 msgid "Hebrew (ISO-8859-8)" msgstr "Hébreu (ISO-8859-8)" #: ../include/wx/msgdlg.h:275 ../src/osx/button_osx.cpp:39 #: ../src/common/stockitem.cpp:163 ../src/html/helpdlg.cpp:66 #: ../src/html/helpfrm.cpp:116 msgid "Help" msgstr "Aide" #: ../src/html/helpwnd.cpp:1213 msgid "Help Browser Options" msgstr "Aide Options Navigateur" #: ../src/generic/helpext.cpp:458 ../src/generic/helpext.cpp:459 msgid "Help Index" msgstr "Aide Index" #: ../src/html/helpwnd.cpp:1534 msgid "Help Printing" msgstr "Aide Impression" #: ../src/html/helpwnd.cpp:814 msgid "Help Topics" msgstr "Sujets Aide" #: ../src/html/helpwnd.cpp:1551 msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|" msgstr "Livres d'aide (*.htb)|*.htb|Help books (*.zip)|*.zip|" #: ../src/generic/helpext.cpp:271 #, c-format msgid "Help directory \"%s\" not found." msgstr "Dossier d'aide \"%s\" non trouvé." #: ../src/generic/helpext.cpp:279 #, c-format msgid "Help file \"%s\" not found." msgstr "fichier d'aide « %s » non trouvé." #: ../src/html/helpctrl.cpp:63 #, c-format msgid "Help: %s" msgstr "Aide : %s" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:649 #, c-format msgid "Hide %s" msgstr "Cacher %s" #: ../src/osx/menu_osx.cpp:604 ../src/osx/menu_osx.cpp:651 msgid "Hide Others" msgstr "" #: ../src/generic/infobar.cpp:85 msgid "Hide this notification message." msgstr "Cacher ce message de notification." #: ../src/generic/dirdlgg.cpp:98 ../src/common/stockitem.cpp:164 msgid "Home" msgstr "Répertoire personnel" #: ../src/generic/dirctrlg.cpp:624 msgid "Home directory" msgstr "Répertoire personnel" #: ../src/richtext/richtextsizepage.cpp:253 #: ../src/richtext/richtextsizepage.cpp:255 msgid "How the object will float relative to the text." msgstr "" #: ../src/common/imagbmp.cpp:1118 msgid "ICO: Error in reading mask DIB." msgstr "ICO : erreur à la lecture du masque DIB." #: ../src/common/imagbmp.cpp:1233 ../src/common/imagbmp.cpp:1294 #: ../src/common/imagbmp.cpp:1305 ../src/common/imagbmp.cpp:1318 #: ../src/common/imagbmp.cpp:1363 ../src/common/imagbmp.cpp:1375 #: ../src/common/imagbmp.cpp:1386 msgid "ICO: Error writing the image file!" msgstr "ICO : erreur à l'écriture du fichier image." #: ../src/common/imagbmp.cpp:1198 msgid "ICO: Image too tall for an icon." msgstr "ICO : image trop grande pour une icône." #: ../src/common/imagbmp.cpp:1206 msgid "ICO: Image too wide for an icon." msgstr "ICO : image trop large pour une icône." #: ../src/common/imagbmp.cpp:1466 msgid "ICO: Invalid icon index." msgstr "ICO : index de l'icône non valable." #: ../src/common/imagiff.cpp:759 msgid "IFF: data stream seems to be truncated." msgstr "IFF : le flux de données semble être tronqué." #: ../src/common/imagiff.cpp:743 msgid "IFF: error in IFF image format." msgstr "IFF : erreur dans le format de l'image IFF." #: ../src/common/imagiff.cpp:746 msgid "IFF: not enough memory." msgstr "IFF : mémoire insuffisante." #: ../src/common/imagiff.cpp:749 msgid "IFF: unknown error!!!" msgstr "IFF : erreur inconnue." #: ../src/common/accelcmn.cpp:50 msgid "INS" msgstr "INS" #: ../src/common/accelcmn.cpp:51 msgid "INSERT" msgstr "INSERTION" #: ../src/common/fmapbase.cpp:197 msgid "ISO-2022-JP" msgstr "ISO-2022-JP" #: ../src/osx/carbon/dataview.cpp:2420 msgid "Icon & text renderer cannot render value; value type: " msgstr "" #: ../src/html/htmprint.cpp:282 msgid "" "If possible, try changing the layout parameters to make the printout more " "narrow." msgstr "" #: ../src/generic/dbgrptg.cpp:358 msgid "" "If you have any additional information pertaining to this bug\n" "report, please enter it here and it will be joined to it:" msgstr "" "Si vous avez des informations supplémentaires concernant ce rapport\n" "de bogue, veuillez les saisir ici pour qu'elles soient incluses :" #: ../src/generic/dbgrptg.cpp:324 msgid "" "If you wish to suppress this debug report completely, please choose the " "\"Cancel\" button,\n" "but be warned that it may hinder improving the program, so if\n" "at all possible please do continue with the report generation.\n" msgstr "" "Si vous voulez supprimer entièrement ce rapport de débogage, veuillez\n" "choisir le bouton « Annuler », mais cela peut empêcher l'amélioration du\n" "programme, donc veuillez si possible continuer la création de ce rapport.\n" #: ../src/msw/registry.cpp:1395 #, c-format msgid "Ignoring value \"%s\" of the key \"%s\"." msgstr "Valeur « %s » de la clé « %s » ignorée." #: ../src/common/xtistrm.cpp:299 msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source" msgstr "" "Classe d'objet non valable en tant que source d'événement (Non-wxEvtHandler)" #: ../src/common/xti.cpp:513 msgid "Illegal Parameter Count for ConstructObject Method" msgstr "Nombre de paramètres illégal pour la méthode ConstructObject" #: ../src/common/xti.cpp:501 msgid "Illegal Parameter Count for Create Method" msgstr "Nombre de paramètres illégal pour la méthode Create" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/filectrlg.cpp:791 msgid "Illegal directory name." msgstr "Nom de répertoire illégal." #: ../src/generic/filectrlg.cpp:1380 msgid "Illegal file specification." msgstr "Spécification de fichier illégale." #: ../src/common/image.cpp:2158 msgid "Image and mask have different sizes." msgstr "L'image et le masque sont de tailles différentes." #: ../src/common/image.cpp:2609 #, c-format msgid "Image file is not of type %d." msgstr "Le fichier image n'est pas du type %d." #: ../src/common/image.cpp:2739 #, c-format msgid "Image is not of type %s." msgstr "Le fichier image n'est pas du type %s." #: ../src/msw/textctrl.cpp:399 msgid "" "Impossible to create a rich edit control, using simple text control instead. " "Please reinstall riched32.dll" msgstr "" "Impossible de créer un contrôle d'édition riche, va utiliser un contrôle de " "texte simple à la place. Veuillez réinstaller riched32.dll" #: ../src/unix/utilsunx.cpp:307 msgid "Impossible to get child process input" msgstr "Impossible d'obtenir l'entrée du processus fils" #: ../src/common/filefn.cpp:1074 #, c-format msgid "Impossible to get permissions for file '%s'" msgstr "Impossible d'obtenir les permissions du fichier « %s »" #: ../src/common/filefn.cpp:1088 #, c-format msgid "Impossible to overwrite the file '%s'" msgstr "Impossible d'écraser le fichier « %s »" #: ../src/common/filefn.cpp:1142 #, c-format msgid "Impossible to set permissions for the file '%s'" msgstr "Impossible de configurer les permissions du fichier « %s »" #: ../src/common/gifdecod.cpp:818 #, c-format msgid "Incorrect GIF frame size (%u, %d) for the frame #%u" msgstr "" #: ../src/msw/ole/automtn.cpp:624 msgid "Incorrect number of arguments." msgstr "Nombre d'arguments incorrect." #: ../src/common/stockitem.cpp:165 msgid "Indent" msgstr "Indenter" #: ../src/richtext/richtextformatdlg.cpp:330 msgid "Indents && Spacing" msgstr "Indentations && Espacements" #: ../src/common/stockitem.cpp:166 ../src/html/helpwnd.cpp:525 msgid "Index" msgstr "Index" #: ../src/common/fmapbase.cpp:159 msgid "Indian (ISO-8859-12)" msgstr "Indien (ISO-8859-12)" #: ../src/common/stockitem.cpp:167 msgid "Info" msgstr "Info" #: ../src/common/init.cpp:276 msgid "Initialization failed in post init, aborting." msgstr "L'initialisation a échoué dans post init; abandon." #: ../src/richtext/richtextsymboldlg.cpp:472 msgid "Insert" msgstr "Insérer" #: ../src/richtext/richtextbuffer.cpp:7687 msgid "Insert Field" msgstr "Insérer un Champ" #: ../src/richtext/richtextbuffer.cpp:7598 #: ../src/richtext/richtextbuffer.cpp:8551 msgid "Insert Image" msgstr "Insérer une image" #: ../src/richtext/richtextbuffer.cpp:7645 msgid "Insert Object" msgstr "Insérer un Objet" #: ../src/richtext/richtextctrl.cpp:1172 ../src/richtext/richtextctrl.cpp:1362 #: ../src/richtext/richtextbuffer.cpp:7440 #: ../src/richtext/richtextbuffer.cpp:7470 #: ../src/richtext/richtextbuffer.cpp:7514 msgid "Insert Text" msgstr "Insérer du texte" #: ../src/richtext/richtextindentspage.cpp:295 #: ../src/richtext/richtextindentspage.cpp:297 msgid "Inserts a page break before the paragraph." msgstr "Insère un saut de page avant le paragraphe." #: ../src/richtext/richtextborderspage.cpp:549 #, fuzzy msgid "Inset" msgstr "Insérer" #: ../src/gtk/app.cpp:429 #, c-format msgid "Invalid GTK+ command line option, use \"%s --help\"" msgstr "" #: ../src/common/imagtiff.cpp:314 msgid "Invalid TIFF image index." msgstr "Index d'image TIFF non valable." #: ../src/osx/carbon/dataview.cpp:1782 ../src/osx/carbon/dataview.cpp:1877 msgid "Invalid data view item" msgstr "" #: ../src/common/appcmn.cpp:266 #, c-format msgid "Invalid display mode specification '%s'." msgstr "Spécification du mode d'affichage « %s » non valable." #: ../src/x11/app.cpp:121 #, c-format msgid "Invalid geometry specification '%s'" msgstr "Spécification géométrique « %s » non valable" #: ../src/unix/fswatcher_inotify.cpp:298 #, c-format msgid "Invalid inotify event for \"%s\"" msgstr "" #: ../src/unix/snglinst.cpp:306 #, c-format msgid "Invalid lock file '%s'." msgstr "Fichier verrou « %s » non valable." #: ../src/common/translation.cpp:1111 msgid "Invalid message catalog." msgstr "Catalogue de message invalide." #: ../src/common/xtistrm.cpp:409 ../src/common/xtistrm.cpp:424 msgid "Invalid or Null Object ID passed to GetObjectClassInfo" msgstr "Identifiant d'objet non valable ou vide indiqué à GetObjectClassInfo" #: ../src/common/xtistrm.cpp:439 msgid "Invalid or Null Object ID passed to HasObjectClassInfo" msgstr "Identifiant d'objet non valable ou vide indiqué à HasObjectClassInfo" #: ../src/common/regex.cpp:313 #, c-format msgid "Invalid regular expression '%s': %s" msgstr "Expression rationnelle « %s » non valable : %s" #: ../src/common/config.cpp:226 #, c-format msgid "Invalid value %ld for a boolean key \"%s\" in config file." msgstr "" #: ../src/generic/fontdlgg.cpp:329 ../src/richtext/richtextfontpage.cpp:333 #: ../src/osx/carbon/fontdlg.cpp:547 ../src/common/stockitem.cpp:168 msgid "Italic" msgstr "Italique" #: ../src/common/paper.cpp:131 msgid "Italy Envelope, 110 x 230 mm" msgstr "Enveloppe italienne, 110 x 230 mm" #: ../src/common/imagjpeg.cpp:255 msgid "JPEG: Couldn't load - file is probably corrupted." msgstr "JPEG : échec du chargement - le fichier est probablement corrompu." #: ../src/common/imagjpeg.cpp:434 msgid "JPEG: Couldn't save image." msgstr "JPEG : échec de la sauvegarde de l'image." #: ../src/common/paper.cpp:164 msgid "Japanese Double Postcard 200 x 148 mm" msgstr "Carte postale double japonaise 200 x148 mm" #: ../src/common/paper.cpp:168 msgid "Japanese Envelope Chou #3" msgstr "Enveloppe japonaise Chou n. 3" #: ../src/common/paper.cpp:181 msgid "Japanese Envelope Chou #3 Rotated" msgstr "Enveloppe japonaise Chou n. 3 Paysage" #: ../src/common/paper.cpp:169 msgid "Japanese Envelope Chou #4" msgstr "Enveloppe japonaise Chou n. 4" #: ../src/common/paper.cpp:182 msgid "Japanese Envelope Chou #4 Rotated" msgstr "Enveloppe japonaise Chou n. 4 Paysage" #: ../src/common/paper.cpp:166 msgid "Japanese Envelope Kaku #2" msgstr "Enveloppe japonaise Kaky n. 2" #: ../src/common/paper.cpp:179 msgid "Japanese Envelope Kaku #2 Rotated" msgstr "Enveloppe japonaise Kaky n. 2 Paysage" #: ../src/common/paper.cpp:167 msgid "Japanese Envelope Kaku #3" msgstr "Enveloppe japonaise Kaky n. 3" #: ../src/common/paper.cpp:180 msgid "Japanese Envelope Kaku #3 Rotated" msgstr "Enveloppe japonaise Kaky n. 3 Paysage" #: ../src/common/paper.cpp:186 msgid "Japanese Envelope You #4" msgstr "Enveloppe japonaise Kaky n. 4" #: ../src/common/paper.cpp:187 msgid "Japanese Envelope You #4 Rotated" msgstr "Enveloppe japonaise Kaky n. 4 Paysage" #: ../src/common/paper.cpp:139 msgid "Japanese Postcard 100 x 148 mm" msgstr "Enveloppe japonaise 100 x 148 mm" #: ../src/common/paper.cpp:176 msgid "Japanese Postcard Rotated 148 x 100 mm" msgstr "Enveloppe japonaise Paysage 148 x 100 mm" #: ../src/common/stockitem.cpp:169 msgid "Jump to" msgstr "Aller à" #: ../src/common/stockitem.cpp:171 msgid "Justified" msgstr "Justifié" #: ../src/richtext/richtextindentspage.cpp:155 #: ../src/richtext/richtextindentspage.cpp:157 #: ../src/richtext/richtextliststylepage.cpp:344 #: ../src/richtext/richtextliststylepage.cpp:346 msgid "Justify text left and right." msgstr "Justifier le texte." #: ../src/common/fmapbase.cpp:163 msgid "KOI8-R" msgstr "KOI8-R" #: ../src/common/fmapbase.cpp:164 msgid "KOI8-U" msgstr "KOI8-U" #: ../src/common/accelcmn.cpp:254 ../src/common/accelcmn.cpp:336 msgid "KP_" msgstr "KP_" #: ../src/common/accelcmn.cpp:103 msgid "KP_ADD" msgstr "KP_PLUS" #: ../src/common/accelcmn.cpp:98 msgid "KP_BEGIN" msgstr "KP_DEBUT" #: ../src/common/accelcmn.cpp:106 msgid "KP_DECIMAL" msgstr "KP_VIRGULE" #: ../src/common/accelcmn.cpp:100 msgid "KP_DELETE" msgstr "KP_EFFACER" #: ../src/common/accelcmn.cpp:107 msgid "KP_DIVIDE" msgstr "KP_DIVISER" #: ../src/common/accelcmn.cpp:92 msgid "KP_DOWN" msgstr "KP_BAS" #: ../src/common/accelcmn.cpp:97 msgid "KP_END" msgstr "KP_FIN" #: ../src/common/accelcmn.cpp:87 msgid "KP_ENTER" msgstr "KP_ENTRER" #: ../src/common/accelcmn.cpp:101 msgid "KP_EQUAL" msgstr "KP_EGAL" #: ../src/common/accelcmn.cpp:88 msgid "KP_HOME" msgstr "KP_DEBUT" #: ../src/common/accelcmn.cpp:99 msgid "KP_INSERT" msgstr "KP_INSERER" #: ../src/common/accelcmn.cpp:89 msgid "KP_LEFT" msgstr "KP_GAUCHE" #: ../src/common/accelcmn.cpp:102 msgid "KP_MULTIPLY" msgstr "KP_MULTIPLIER" #: ../src/common/accelcmn.cpp:95 msgid "KP_NEXT" msgstr "KP_SUIVANT" #: ../src/common/accelcmn.cpp:96 msgid "KP_PAGEDOWN" msgstr "KP_PAGESUIVANTE" #: ../src/common/accelcmn.cpp:94 msgid "KP_PAGEUP" msgstr "KP_PAGEPRECEDENTE" #: ../src/common/accelcmn.cpp:93 msgid "KP_PRIOR" msgstr "KP_PRECEDENT" #: ../src/common/accelcmn.cpp:91 msgid "KP_RIGHT" msgstr "KP_DROITE" #: ../src/common/accelcmn.cpp:104 msgid "KP_SEPARATOR" msgstr "KP_SEPARATEUR" #: ../src/common/accelcmn.cpp:85 msgid "KP_SPACE" msgstr "KP_ESPACE" #: ../src/common/accelcmn.cpp:105 msgid "KP_SUBTRACT" msgstr "KP_MOINS" #: ../src/common/accelcmn.cpp:86 msgid "KP_TAB" msgstr "KP_TABULATION" #: ../src/common/accelcmn.cpp:90 msgid "KP_UP" msgstr "KP_HAUT" #: ../src/richtext/richtextindentspage.cpp:270 #, fuzzy msgid "L&ine spacing:" msgstr "Espacement interligne:" #: ../src/common/accelcmn.cpp:56 msgid "LEFT" msgstr "GAUCHE" #: ../src/generic/prntdlgg.cpp:613 ../src/generic/prntdlgg.cpp:868 msgid "Landscape" msgstr "Paysage" #: ../src/common/stockitem.cpp:174 msgid "Last" msgstr "Dernier" #: ../src/common/prntbase.cpp:1542 msgid "Last page" msgstr "Dernière page" #: ../src/common/log.cpp:309 #, c-format msgid "Last repeated message (\"%s\", %lu time) wasn't output" msgid_plural "Last repeated message (\"%s\", %lu times) wasn't output" msgstr[0] "Le dernier message répété (\"%s\", %lu fois) n'a pas été affiché" msgstr[1] "Le dernier message répété (\"%s\", %lu fois) n'a pas été affiché" #: ../src/common/paper.cpp:104 msgid "Ledger, 17 x 11 in" msgstr "Grand livre (17 x 11 pouces)" #: ../src/richtext/richtextliststylepage.cpp:249 #: ../src/richtext/richtextliststylepage.cpp:252 #: ../src/richtext/richtextliststylepage.cpp:253 #: ../src/richtext/richtextbulletspage.cpp:199 #: ../src/richtext/richtextbulletspage.cpp:202 #: ../src/richtext/richtextbulletspage.cpp:203 #: ../src/richtext/richtextsizepage.cpp:249 msgid "Left" msgstr "Gauche" #: ../src/richtext/richtextindentspage.cpp:204 #: ../src/richtext/richtextliststylepage.cpp:390 msgid "Left (&first line):" msgstr "Gauche (&Première ligne):" #: ../src/generic/prntdlgg.cpp:880 msgid "Left margin (mm):" msgstr "Marge gauche (mm) :" #: ../src/richtext/richtextindentspage.cpp:141 #: ../src/richtext/richtextindentspage.cpp:143 #: ../src/richtext/richtextliststylepage.cpp:330 #: ../src/richtext/richtextliststylepage.cpp:332 msgid "Left-align text." msgstr "Aligne le texte à gauche" #: ../src/common/paper.cpp:145 msgid "Legal Extra 9 1/2 x 15 in" msgstr "Légal Extra 9,5 x 15 pouces" #: ../src/common/paper.cpp:97 msgid "Legal, 8 1/2 x 14 in" msgstr "Légal (8,5 x 14 pouces)" #: ../src/common/paper.cpp:144 msgid "Letter Extra 9 1/2 x 12 in" msgstr "Lettre Extra 9.5 x 12 pouces" #: ../src/common/paper.cpp:150 msgid "Letter Extra Transverse 9.275 x 12 in" msgstr "Lettre Extra Portrait 9.275 x 12 pouces" #: ../src/common/paper.cpp:153 msgid "Letter Plus 8 1/2 x 12.69 in" msgstr "Lettre Plus 8,5 x 11.69 pouces" #: ../src/common/paper.cpp:170 msgid "Letter Rotated 11 x 8 1/2 in" msgstr "Lettre paysage 11 x 8.5 pouces" #: ../src/common/paper.cpp:102 msgid "Letter Small, 8 1/2 x 11 in" msgstr "Lettre réduite (8,5 x 11 pouces)" #: ../src/common/paper.cpp:148 msgid "Letter Transverse 8 1/2 x 11 in" msgstr "Lettre 8,5 x 11 pouces" #: ../src/common/paper.cpp:96 msgid "Letter, 8 1/2 x 11 in" msgstr "Lettre (8,5 x 11 pouces)" #: ../src/generic/aboutdlgg.cpp:173 msgid "License" msgstr "Licence" #: ../src/generic/fontdlgg.cpp:332 msgid "Light" msgstr "Léger" #: ../src/generic/helpext.cpp:298 #, c-format msgid "Line %lu of map file \"%s\" has invalid syntax, skipped." msgstr "" "La ligne %lu du fichier carte \"%s\" a une syntaxe invalide et a été sautée." #: ../src/richtext/richtextliststylepage.cpp:444 msgid "Line spacing:" msgstr "Espacement interligne:" #: ../src/html/chm.cpp:838 msgid "Link contained '//', converted to absolute link." msgstr "Le lien contenait « // » et a été converti en lien absolu." #: ../src/richtext/richtextformatdlg.cpp:349 msgid "List Style" msgstr "Style de liste" #: ../src/richtext/richtextstyles.cpp:1060 msgid "List styles" msgstr "Styles de liste" #: ../src/richtext/richtextfontpage.cpp:206 #: ../src/richtext/richtextfontpage.cpp:208 msgid "Lists font sizes in points." msgstr "Liste des tailles de polices en points." #: ../src/richtext/richtextfontpage.cpp:199 #: ../src/richtext/richtextfontpage.cpp:201 msgid "Lists the available fonts." msgstr "Liste des polices de caractères disponibles." #: ../src/common/fldlgcmn.cpp:325 #, c-format msgid "Load %s file" msgstr "Charger le fichier %s" #: ../src/html/htmlwin.cpp:575 msgid "Loading : " msgstr "Chargement : " #: ../src/unix/snglinst.cpp:246 #, c-format msgid "Lock file '%s' has incorrect owner." msgstr "Le fichier verrou « %s » a un propriétaire incorrect" #: ../src/unix/snglinst.cpp:251 #, c-format msgid "Lock file '%s' has incorrect permissions." msgstr "Le fichier verrou « %s » a des permissions incorrectes." #: ../src/generic/logg.cpp:582 #, c-format msgid "Log saved to the file '%s'." msgstr "Journal sauvé dans le fichier « %s »." #: ../src/richtext/richtextliststylepage.cpp:484 #: ../src/richtext/richtextbulletspage.cpp:289 msgid "Lower case letters" msgstr "Lettres minuscules" #: ../src/richtext/richtextliststylepage.cpp:486 #: ../src/richtext/richtextbulletspage.cpp:291 msgid "Lower case roman numerals" msgstr "Chiffres romains minuscules" #: ../src/gtk/mdi.cpp:422 ../src/gtk1/mdi.cpp:431 msgid "MDI child" msgstr "Fils MDI" #: ../src/common/accelcmn.cpp:68 msgid "MENU" msgstr "MENU" #: ../src/msw/helpchm.cpp:56 msgid "" "MS HTML Help functions are unavailable because the MS HTML Help library is " "not installed on this machine. Please install it." msgstr "" "Les fonctions de l'aide MS HTML ne sont pas disponibles car la bibliothèque " "MS HTML Help n'est pas présente sur cette machine. Veuillez l'installer." #: ../src/univ/themes/win32.cpp:3754 msgid "Ma&ximize" msgstr "Ma&ximiser" #: ../src/common/fmapbase.cpp:203 msgid "MacArabic" msgstr "MacArabe" #: ../src/common/fmapbase.cpp:222 msgid "MacArmenian" msgstr "MacArménien" #: ../src/common/fmapbase.cpp:211 msgid "MacBengali" msgstr "MacBengali" #: ../src/common/fmapbase.cpp:217 msgid "MacBurmese" msgstr "" #: ../src/common/fmapbase.cpp:236 msgid "MacCeltic" msgstr "MacCelte" #: ../src/common/fmapbase.cpp:227 msgid "MacCentralEurRoman" msgstr "" #: ../src/common/fmapbase.cpp:223 msgid "MacChineseSimp" msgstr "MacChinoisSimp" #: ../src/common/fmapbase.cpp:201 msgid "MacChineseTrad" msgstr "MacChinoisTrad" #: ../src/common/fmapbase.cpp:233 msgid "MacCroatian" msgstr "MacCroate" #: ../src/common/fmapbase.cpp:206 msgid "MacCyrillic" msgstr "MacCyrillique" #: ../src/common/fmapbase.cpp:207 msgid "MacDevanagari" msgstr "" #: ../src/common/fmapbase.cpp:231 msgid "MacDingbats" msgstr "MacDingbats" #: ../src/common/fmapbase.cpp:226 msgid "MacEthiopic" msgstr "MacÉthiopien" #: ../src/common/fmapbase.cpp:229 msgid "MacExtArabic" msgstr "MacArabeÉtendu" #: ../src/common/fmapbase.cpp:237 msgid "MacGaelic" msgstr "MacGaélic" #: ../src/common/fmapbase.cpp:221 msgid "MacGeorgian" msgstr "MacGéorgien" #: ../src/common/fmapbase.cpp:205 msgid "MacGreek" msgstr "MacGrec" #: ../src/common/fmapbase.cpp:209 msgid "MacGujarati" msgstr "" #: ../src/common/fmapbase.cpp:208 msgid "MacGurmukhi" msgstr "" #: ../src/common/fmapbase.cpp:204 msgid "MacHebrew" msgstr "MacHébreu" #: ../src/common/fmapbase.cpp:234 msgid "MacIcelandic" msgstr "MacIslandais" #: ../src/common/fmapbase.cpp:200 msgid "MacJapanese" msgstr "MacJaponais" #: ../src/common/fmapbase.cpp:214 msgid "MacKannada" msgstr "" #: ../src/common/fmapbase.cpp:238 msgid "MacKeyboardGlyphs" msgstr "" #: ../src/common/fmapbase.cpp:218 msgid "MacKhmer" msgstr "MacKhmer" #: ../src/common/fmapbase.cpp:202 msgid "MacKorean" msgstr "MacCoréen" #: ../src/common/fmapbase.cpp:220 msgid "MacLaotian" msgstr "MacLaotien" #: ../src/common/fmapbase.cpp:215 msgid "MacMalayalam" msgstr "" #: ../src/common/fmapbase.cpp:225 msgid "MacMongolian" msgstr "MacMongol" #: ../src/common/fmapbase.cpp:210 msgid "MacOriya" msgstr "" #: ../src/common/fmapbase.cpp:199 msgid "MacRoman" msgstr "MacRoman" #: ../src/common/fmapbase.cpp:235 msgid "MacRomanian" msgstr "MacRoumain" #: ../src/common/fmapbase.cpp:216 #, fuzzy msgid "MacSinhalese" msgstr "Respecter la casse" #: ../src/common/fmapbase.cpp:230 msgid "MacSymbol" msgstr "MacSymbole" #: ../src/common/fmapbase.cpp:212 msgid "MacTamil" msgstr "MacTamoul" #: ../src/common/fmapbase.cpp:213 msgid "MacTelugu" msgstr "" #: ../src/common/fmapbase.cpp:219 msgid "MacThai" msgstr "MacThaï" #: ../src/common/fmapbase.cpp:224 msgid "MacTibetan" msgstr "MacTibétain" #: ../src/common/fmapbase.cpp:232 msgid "MacTurkish" msgstr "MacTurque" #: ../src/common/fmapbase.cpp:228 msgid "MacVietnamese" msgstr "MacVietnamien" #: ../src/propgrid/advprops.cpp:2031 msgid "Make a selection:" msgstr "Créer une sélection :" #: ../src/richtext/richtextformatdlg.cpp:362 #: ../src/richtext/richtextmarginspage.cpp:172 msgid "Margins" msgstr "Marges" #: ../src/generic/fdrepdlg.cpp:147 msgid "Match case" msgstr "Respecter la casse" #: ../src/richtext/richtextsizepage.cpp:463 msgid "Max height:" msgstr "Hauteur max :" #: ../src/richtext/richtextsizepage.cpp:436 msgid "Max width:" msgstr "Largeur Max :" #: ../src/unix/mediactrl.cpp:1006 #, c-format msgid "Media playback error: %s" msgstr "" #: ../src/common/fs_mem.cpp:175 #, c-format msgid "Memory VFS already contains file '%s'!" msgstr "La mémoire VFS contient déjà le fichier « %s »." #: ../src/msw/frame.cpp:347 msgid "Menu" msgstr "Menu" #: ../src/common/msgout.cpp:124 msgid "Message" msgstr "Message" #: ../src/univ/themes/metal.cpp:168 msgid "Metal theme" msgstr "Thème métallique" #: ../src/msw/ole/automtn.cpp:641 msgid "Method or property not found." msgstr "Méthode ou propriété non trouvée." #: ../src/univ/themes/win32.cpp:3752 msgid "Mi&nimize" msgstr "Mi&nimiser" #: ../src/richtext/richtextsizepage.cpp:409 msgid "Min height:" msgstr "Hauteur min :" #: ../src/richtext/richtextsizepage.cpp:382 msgid "Min width:" msgstr "Largeur min :" #: ../src/msw/ole/automtn.cpp:657 msgid "Missing a required parameter." msgstr "Un paramètre requis est manquant." #: ../src/generic/fontdlgg.cpp:324 msgid "Modern" msgstr "Moderne" #: ../src/generic/filectrlg.cpp:462 msgid "Modified" msgstr "Modifié" #: ../src/common/module.cpp:133 #, c-format msgid "Module \"%s\" initialization failed" msgstr "L'initialisation du module \"%s\" a échoué" #: ../src/common/paper.cpp:132 msgid "Monarch Envelope, 3 7/8 x 7 1/2 in" msgstr "Enveloppe monarchique (3,875 x 7,5 pouces)" #: ../src/msw/fswatcher.cpp:143 msgid "Monitoring individual files for changes is not supported currently." msgstr "" "La surveillance des modifications de fichiers individuels n'est actuellement " "pas supporté." #: ../src/generic/editlbox.cpp:276 msgid "Move down" msgstr "Descendre" #: ../src/generic/editlbox.cpp:275 msgid "Move up" msgstr "Monter" #: ../src/richtext/richtextsizepage.cpp:682 #: ../src/richtext/richtextsizepage.cpp:684 msgid "Moves the object to the next paragraph." msgstr "Déplacer l'objet vers le paragraphe suivant." #: ../src/richtext/richtextsizepage.cpp:676 #: ../src/richtext/richtextsizepage.cpp:678 msgid "Moves the object to the previous paragraph." msgstr "Déplacer l'objet vers le paragraphe précédent." #: ../src/richtext/richtextbuffer.cpp:9345 msgid "Multiple Cell Properties" msgstr "Propriétés de Plusieurs Cellules" #: ../src/common/accelcmn.cpp:81 msgid "NUM_LOCK" msgstr "NUM_LOCK" #: ../src/generic/filectrlg.cpp:459 msgid "Name" msgstr "Nom" #: ../src/common/stockitem.cpp:175 msgid "Network" msgstr "Réseau" #: ../src/common/stockitem.cpp:176 msgid "New" msgstr "Nouveau" #: ../src/richtext/richtextstyledlg.cpp:243 msgid "New &Box Style..." msgstr "Nouveau Style de &Boîte..." #: ../src/richtext/richtextstyledlg.cpp:225 msgid "New &Character Style..." msgstr "Nouveau Style de &Caractères..." #: ../src/richtext/richtextstyledlg.cpp:237 msgid "New &List Style..." msgstr "Nouveau Style de &Liste..." #: ../src/richtext/richtextstyledlg.cpp:231 msgid "New &Paragraph Style..." msgstr "Nouveau Style de &Paragraphe..." #: ../src/richtext/richtextstyledlg.cpp:603 #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:651 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:817 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:890 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:931 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "New Style" msgstr "Nouveau style" #: ../src/generic/dirdlgg.cpp:102 msgid "New directory" msgstr "Nouveau répertoire" #: ../src/generic/editlbox.cpp:273 msgid "New item" msgstr "Nouvel élément" #: ../src/generic/dirdlgg.cpp:326 ../src/generic/dirdlgg.cpp:336 #: ../src/generic/filectrlg.cpp:653 ../src/generic/filectrlg.cpp:662 msgid "NewName" msgstr "NouveauNom" #: ../src/generic/tipdlg.cpp:305 msgid "Next" msgstr "Suivant" #: ../src/common/prntbase.cpp:1537 ../src/html/helpwnd.cpp:678 msgid "Next page" msgstr "Page suivante" #: ../include/wx/msgdlg.h:272 ../src/common/stockitem.cpp:177 #: ../src/motif/msgdlg.cpp:196 msgid "No" msgstr "Non" #: ../src/generic/animateg.cpp:150 #, c-format msgid "No animation handler for type %ld defined." msgstr "Aucun gestionnaire d'animation n'est défini pour le type %ld." #: ../src/dfb/bitmap.cpp:642 ../src/dfb/bitmap.cpp:676 #, c-format msgid "No bitmap handler for type %d defined." msgstr "Aucun gestionnaire d'image défini pour le type %d." #: ../src/osx/carbon/dataview.cpp:1784 msgid "No column existing." msgstr "" #: ../src/osx/carbon/dataview.cpp:1674 msgid "No column for the specified column existing." msgstr "" #: ../src/osx/carbon/dataview.cpp:1423 msgid "No column for the specified column position existing." msgstr "" #: ../src/common/utilscmn.cpp:1049 msgid "No default application configured for HTML files." msgstr "Pas d'application configurée pour les fichiers HTML." #: ../src/generic/helpext.cpp:449 msgid "No entries found." msgstr "Aucune entrée trouvée." #: ../src/common/fontmap.cpp:421 #, c-format msgid "" "No font for displaying text in encoding '%s' found,\n" "but an alternative encoding '%s' is available.\n" "Do you want to use this encoding (otherwise you will have to choose another " "one)?" msgstr "" "Aucune police trouvée pour afficher du texte avec le codage « %s »,\n" "mais le codage similaire « %s » est disponible.\n" "Souhaitez-vous l'utiliser (sinon, vous devrez en choisir un autre) ?" #: ../src/common/fontmap.cpp:426 #, c-format msgid "" "No font for displaying text in encoding '%s' found.\n" "Would you like to select a font to be used for this encoding\n" "(otherwise the text in this encoding will not be shown correctly)?" msgstr "" "Aucune police trouvée pour afficher du texte avec le codage « %s »,\n" "Souhaitez-vous choisir une police à utiliser pour ce codage\n" "(sinon le texte avec ce codage n'apparaîtra pas correctement) ?" #: ../src/generic/animateg.cpp:142 msgid "No handler found for animation type." msgstr "Aucun gestionnaire trouvé pour le type d'animation." #: ../src/common/image.cpp:2591 msgid "No handler found for image type." msgstr "Aucun gestionnaire trouvé pour le type d'image." #: ../src/common/image.cpp:2599 ../src/common/image.cpp:2710 #: ../src/common/image.cpp:2763 #, c-format msgid "No image handler for type %d defined." msgstr "Aucun gestionnaire d'image défini pour le type %d." #: ../src/common/image.cpp:2733 ../src/common/image.cpp:2777 #, c-format msgid "No image handler for type %s defined." msgstr "Aucun gestionnaire d'image défini pour le type %s." #: ../src/html/helpwnd.cpp:871 msgid "No matching page found yet" msgstr "Aucune page correspondante n'a encore été trouvée" #: ../src/osx/carbon/dataview.cpp:1676 ../src/osx/carbon/dataview.cpp:1786 msgid "No renderer or invalid renderer type specified for custom data column." msgstr "" #: ../src/osx/carbon/dataview.cpp:1424 msgid "No renderer specified for column." msgstr "" #: ../src/unix/sound.cpp:81 msgid "No sound" msgstr "Pas de son" #: ../src/common/image.cpp:2166 ../src/common/image.cpp:2207 msgid "No unused colour in image being masked." msgstr "Aucune couleur n'est disponible dans l'image en cours de masquage." #: ../src/common/image.cpp:3236 msgid "No unused colour in image." msgstr "Aucune couleur n'est disponible dans l'image." #: ../src/generic/helpext.cpp:306 #, c-format msgid "No valid mappings found in the file \"%s\"." msgstr "" "Aucune table de correspondance valide n'a été trouvée dans le fichier \"%s\"." #: ../src/richtext/richtextborderspage.cpp:542 #: ../src/richtext/richtextsizepage.cpp:248 #: ../src/richtext/richtextsizepage.cpp:252 msgid "None" msgstr "Aucun" #: ../src/common/fmapbase.cpp:157 msgid "Nordic (ISO-8859-10)" msgstr "Nordique (ISO-8859-10)" #: ../src/generic/fontdlgg.cpp:328 ../src/generic/fontdlgg.cpp:331 msgid "Normal" msgstr "Normal" #: ../src/html/helpwnd.cpp:1276 msgid "Normal face
    and underlined. " msgstr "Normal
    et souligné. " #: ../src/html/helpwnd.cpp:1218 msgid "Normal font:" msgstr "Police normale :" #: ../src/propgrid/props.cpp:887 #, fuzzy, c-format msgid "Not %s" msgstr "À propos" #: ../include/wx/filename.h:586 ../include/wx/filename.h:591 msgid "Not available" msgstr "Non disponible" #: ../src/richtext/richtextfontpage.cpp:340 msgid "Not underlined" msgstr "Non souligné" #: ../src/common/paper.cpp:116 msgid "Note, 8 1/2 x 11 in" msgstr "Note (8,5 x 11 pouces)" #: ../src/generic/notifmsgg.cpp:104 #, fuzzy msgid "Notice" msgstr "&Notes :" #: ../src/osx/carbon/dataview.cpp:902 msgid "Number of columns could not be determined." msgstr "Le nombre de colonnes n'a pas pu être déterminé." #: ../src/richtext/richtextliststylepage.cpp:487 #: ../src/richtext/richtextbulletspage.cpp:292 msgid "Numbered outline" msgstr "Table des matières numérotée" #: ../include/wx/msgdlg.h:273 ../src/richtext/richtextstyledlg.cpp:297 #: ../src/common/stockitem.cpp:178 ../src/msw/msgdlg.cpp:489 #: ../src/msw/msgdlg.cpp:799 ../src/msw/dialog.cpp:120 #: ../src/gtk1/fontdlg.cpp:138 msgid "OK" msgstr "OK" #: ../src/msw/ole/automtn.cpp:681 #, c-format msgid "OLE Automation error in %s: %s" msgstr "Erreur OLE Automation dans %s : %s" #: ../include/wx/richtext/richtextimagedlg.h:39 msgid "Object Properties" msgstr "Propriétés de l'Objet" #: ../src/msw/ole/automtn.cpp:649 msgid "Object implementation does not support named arguments." msgstr "L'implémentation de l'objet ne supporte pas les arguments nommés." #: ../src/common/xtixml.cpp:264 msgid "Objects must have an id attribute" msgstr "Les objets doivent avoir un attribut id" #: ../src/common/docview.cpp:1755 ../src/common/docview.cpp:1797 msgid "Open File" msgstr "Ouvrir un Fichier" #: ../src/html/helpwnd.cpp:684 ../src/html/helpwnd.cpp:1557 msgid "Open HTML document" msgstr "Ouvrir un document HTML" #: ../src/generic/dbgrptg.cpp:163 #, c-format msgid "Open file \"%s\"" msgstr "Ouvrir le fichier « %s »" #: ../src/common/stockitem.cpp:179 msgid "Open..." msgstr "Ouvrir..." #: ../src/osx/carbon/glcanvas.cpp:48 #, c-format msgid "OpenGL function \"%s\" failed: %s (error %d)" msgstr "La fonction OpenGL \"%s\" a échoué : %s (erreur %d)" #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:821 msgid "Operation not permitted." msgstr "Opération interdite." #: ../src/common/cmdline.cpp:735 #, fuzzy, c-format msgid "Option '%s' can't be negated" msgstr "Le répertoire « %s » n'a pas pu être créé" #: ../src/common/cmdline.cpp:899 #, c-format msgid "Option '%s' requires a value." msgstr "L'option « %s » nécessite une valeur." #: ../src/common/cmdline.cpp:982 #, c-format msgid "Option '%s': '%s' cannot be converted to a date." msgstr "Option « %s » : « %s » ne peut pas être converti en date." #: ../src/generic/dirdlgg.cpp:187 ../src/generic/prntdlgg.cpp:618 msgid "Options" msgstr "Options" #: ../src/generic/prntdlgg.cpp:615 ../src/generic/prntdlgg.cpp:869 msgid "Orientation" msgstr "Orientation" #: ../src/common/windowid.cpp:259 msgid "Out of window IDs. Recommend shutting down application." msgstr "" #: ../src/richtext/richtextborderspage.cpp:400 #: ../src/richtext/richtextborderspage.cpp:533 msgid "Outline" msgstr "Contour" #: ../src/richtext/richtextborderspage.cpp:550 msgid "Outset" msgstr "" #: ../src/msw/ole/automtn.cpp:645 msgid "Overflow while coercing argument values." msgstr "" #: ../src/common/accelcmn.cpp:84 msgid "PAGEDOWN" msgstr "PAGESUIVANTE" #: ../src/common/accelcmn.cpp:83 msgid "PAGEUP" msgstr "PAGEPRECEDENTE" #: ../src/common/accelcmn.cpp:69 msgid "PAUSE" msgstr "PAUSE" #: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:480 msgid "PCX: couldn't allocate memory" msgstr "PCX : impossible d'allouer de la mémoire" #: ../src/common/imagpcx.cpp:456 msgid "PCX: image format unsupported" msgstr "PCX : format d'image non géré" #: ../src/common/imagpcx.cpp:479 msgid "PCX: invalid image" msgstr "PCX : image non valable" #: ../src/common/imagpcx.cpp:442 msgid "PCX: this is not a PCX file." msgstr "PCX : ce n'est pas un fichier PCX." #: ../src/common/imagpcx.cpp:459 ../src/common/imagpcx.cpp:481 msgid "PCX: unknown error !!!" msgstr "PCX : erreur inconnue." #: ../src/common/imagpcx.cpp:458 msgid "PCX: version number too low" msgstr "PCX : numéro de version trop petit" #: ../src/common/accelcmn.cpp:55 msgid "PGDN" msgstr "PAGESUIVANTE" #: ../src/common/accelcmn.cpp:54 msgid "PGUP" msgstr "PAGEPRECEDENTE" #: ../src/common/imagpnm.cpp:91 msgid "PNM: Couldn't allocate memory." msgstr "PNM : impossible d'allouer de la mémoire." #: ../src/common/imagpnm.cpp:73 msgid "PNM: File format is not recognized." msgstr "PNM : le format de fichier n'est pas reconnu." #: ../src/common/imagpnm.cpp:112 ../src/common/imagpnm.cpp:134 #: ../src/common/imagpnm.cpp:156 msgid "PNM: File seems truncated." msgstr "PNM : le fichier semble tronqué." #: ../src/common/paper.cpp:188 msgid "PRC 16K 146 x 215 mm" msgstr "PRC 16K 146 x 215 mm" #: ../src/common/paper.cpp:201 msgid "PRC 16K Rotated" msgstr "PRC 16K Paysage" #: ../src/common/paper.cpp:189 msgid "PRC 32K 97 x 151 mm" msgstr "PRC 32K 97 x 151 mm" #: ../src/common/paper.cpp:202 msgid "PRC 32K Rotated" msgstr "PRC 32K Paysage" #: ../src/common/paper.cpp:190 msgid "PRC 32K(Big) 97 x 151 mm" msgstr "Format PRC 32K (Large), 97 x 151 mm" #: ../src/common/paper.cpp:203 msgid "PRC 32K(Big) Rotated" msgstr "Format PRC 32K (Large), Paysage" #: ../src/common/paper.cpp:191 msgid "PRC Envelope #1 102 x 165 mm" msgstr "Enveloppe PRC n. 1, 102 x 165 mm" #: ../src/common/paper.cpp:204 msgid "PRC Envelope #1 Rotated 165 x 102 mm" msgstr "Enveloppe PRC n. 1, Paysage, 165 x 102 mm" #: ../src/common/paper.cpp:200 msgid "PRC Envelope #10 324 x 458 mm" msgstr "Enveloppe PRC n. 10, 324 x 458 mm" #: ../src/common/paper.cpp:213 msgid "PRC Envelope #10 Rotated 458 x 324 mm" msgstr "Enveloppe PRC n. 10, Paysage, 458 x 324 mm" #: ../src/common/paper.cpp:192 msgid "PRC Envelope #2 102 x 176 mm" msgstr "Enveloppe PRC n. 2, 102 x 176 mm" #: ../src/common/paper.cpp:205 msgid "PRC Envelope #2 Rotated 176 x 102 mm" msgstr "Enveloppe PRC n. 2, Paysage, 176 x 102 mm" #: ../src/common/paper.cpp:193 msgid "PRC Envelope #3 125 x 176 mm" msgstr "Enveloppe PRC n. 3, 125 x 176 mm" #: ../src/common/paper.cpp:206 msgid "PRC Envelope #3 Rotated 176 x 125 mm" msgstr "Enveloppe PRC n. 3, Paysage, 176 x 125 mm" #: ../src/common/paper.cpp:194 msgid "PRC Envelope #4 110 x 208 mm" msgstr "Enveloppe PRC n. 4, 110 x 208 mm" #: ../src/common/paper.cpp:207 msgid "PRC Envelope #4 Rotated 208 x 110 mm" msgstr "Enveloppe PRC n. 4, Paysage, 208 x 110 mm" #: ../src/common/paper.cpp:195 msgid "PRC Envelope #5 110 x 220 mm" msgstr "Enveloppe PRC n. 5, 110 x 220 mm" #: ../src/common/paper.cpp:208 msgid "PRC Envelope #5 Rotated 220 x 110 mm" msgstr "Enveloppe PRC n. 5, Paysage, 220 x 110 mm" #: ../src/common/paper.cpp:196 msgid "PRC Envelope #6 120 x 230 mm" msgstr "Enveloppe PRC n. 6, 120 x 230 mm" #: ../src/common/paper.cpp:209 msgid "PRC Envelope #6 Rotated 230 x 120 mm" msgstr "Enveloppe PRC n. 6, Paysage, 230 x 120 mm" #: ../src/common/paper.cpp:197 msgid "PRC Envelope #7 160 x 230 mm" msgstr "Enveloppe PRC n. 7, 160 x 230 mm" #: ../src/common/paper.cpp:210 msgid "PRC Envelope #7 Rotated 230 x 160 mm" msgstr "Enveloppe PRC n. 7, Paysage, 230 x 160 mm" #: ../src/common/paper.cpp:198 msgid "PRC Envelope #8 120 x 309 mm" msgstr "Enveloppe PRC n. 8, 120 x 309 mm" #: ../src/common/paper.cpp:211 msgid "PRC Envelope #8 Rotated 309 x 120 mm" msgstr "Enveloppe PRC n. 8, Paysage, 309 x 120 mm" #: ../src/common/paper.cpp:199 msgid "PRC Envelope #9 229 x 324 mm" msgstr "Enveloppe PRC n. 9, 229 x 324 mm" #: ../src/common/paper.cpp:212 msgid "PRC Envelope #9 Rotated 324 x 229 mm" msgstr "Enveloppe PRC n. 9, Paysage, 324 x 229 mm" #: ../src/common/accelcmn.cpp:72 msgid "PRINT" msgstr "IMPRIMER" #: ../src/richtext/richtextmarginspage.cpp:286 msgid "Padding" msgstr "Espacement" #: ../src/common/prntbase.cpp:2044 #, c-format msgid "Page %d" msgstr "Page %d" #: ../src/common/prntbase.cpp:2042 #, c-format msgid "Page %d of %d" msgstr "Page %d de %d" #: ../src/gtk/print.cpp:774 msgid "Page Setup" msgstr "Mise en page" #: ../src/generic/prntdlgg.cpp:828 ../src/common/prntbase.cpp:467 msgid "Page setup" msgstr "Mise en page" #: ../src/generic/prntdlgg.cpp:216 msgid "Pages" msgstr "Pages" #: ../src/generic/prntdlgg.cpp:602 ../src/generic/prntdlgg.cpp:801 #: ../src/generic/prntdlgg.cpp:842 ../src/generic/prntdlgg.cpp:855 #: ../src/generic/prntdlgg.cpp:1052 ../src/generic/prntdlgg.cpp:1057 msgid "Paper size" msgstr "Taille de la page" #: ../src/richtext/richtextstyles.cpp:1058 msgid "Paragraph styles" msgstr "Styles de paragraphe" #: ../src/common/xtistrm.cpp:469 msgid "Passing a already registered object to SetObject" msgstr "Objet déjà enregistré indiqué à SetObject" #: ../src/common/xtistrm.cpp:480 #, fuzzy msgid "Passing an unknown object to GetObject" msgstr "Objet inconnu indiqué à GetObject" #: ../src/richtext/richtextctrl.cpp:3117 ../src/common/stockitem.cpp:180 #: ../src/stc/stc_i18n.cpp:19 msgid "Paste" msgstr "Coller" #: ../src/common/stockitem.cpp:262 msgid "Paste selection" msgstr "Coller la sélection" #: ../src/richtext/richtextliststylepage.cpp:222 #: ../src/richtext/richtextbulletspage.cpp:172 msgid "Peri&od" msgstr "&Virgule" #: ../src/generic/filectrlg.cpp:465 msgid "Permissions" msgstr "Permissions" #: ../src/richtext/richtextbuffer.cpp:11942 msgid "Picture Properties" msgstr "Propriétés de l'Image" #: ../include/wx/unix/pipe.h:47 msgid "Pipe creation failed" msgstr "Échec de la création du tube" #: ../src/gtk1/fontdlg.cpp:74 msgid "Please choose a valid font." msgstr "Choisissez une police valable." #: ../src/gtk/filedlg.cpp:72 msgid "Please choose an existing file." msgstr "Choisissez un fichier existant." #: ../src/html/helpwnd.cpp:813 msgid "Please choose the page to display:" msgstr "Choisissez la page à afficher :" #: ../src/msw/dialup.cpp:785 msgid "Please choose which ISP do you want to connect to" msgstr "Veuillez choisir à quel FAI vous voulez vous connecter" #: ../src/msw/listctrl.cpp:372 #, c-format msgid "" "Please install a newer version of comctl32.dll\n" "(at least version 4.70 is required but you have %d.%02d)\n" "or this program won't operate correctly." msgstr "" "Veuillez installer une nouvelle version de comctl32.dll\n" "(la version 4.70 au minimum est nécessaire, contre la version %d.%02d\n" "actuellement), sinon ce programme ne fonctionnera pas correctement." #: ../src/common/headerctrlcmn.cpp:59 msgid "Please select the columns to show and define their order:" msgstr "SVP, sélectionnez les colonnes à afficher et définissez leur ordre :" #: ../src/common/prntbase.cpp:521 msgid "Please wait while printing..." msgstr "Patientez pendant l'impression..." #: ../src/propgrid/advprops.cpp:631 msgid "Point Size" msgstr "Taille de Point" #: ../src/osx/carbon/dataview.cpp:1278 ../src/osx/carbon/dataview.cpp:1329 #: ../src/osx/carbon/dataview.cpp:1420 ../src/osx/carbon/dataview.cpp:1443 #: ../src/osx/carbon/dataview.cpp:1460 ../src/osx/carbon/dataview.cpp:1477 #: ../src/osx/carbon/dataview.cpp:1670 ../src/osx/carbon/dataview.cpp:1779 #: ../src/osx/carbon/dataview.cpp:1821 ../src/osx/carbon/dataview.cpp:1874 #: ../src/osx/carbon/dataview.cpp:1997 msgid "Pointer to data view control not set correctly." msgstr "" #: ../src/osx/carbon/dataview.cpp:1279 ../src/osx/carbon/dataview.cpp:1338 #: ../src/osx/carbon/dataview.cpp:1421 ../src/osx/carbon/dataview.cpp:1478 #: ../src/osx/carbon/dataview.cpp:1671 ../src/osx/carbon/dataview.cpp:1780 #: ../src/osx/carbon/dataview.cpp:1822 ../src/osx/carbon/dataview.cpp:1875 #: ../src/osx/carbon/dataview.cpp:1998 msgid "Pointer to model not set correctly." msgstr "" #: ../src/generic/prntdlgg.cpp:612 ../src/generic/prntdlgg.cpp:867 msgid "Portrait" msgstr "Portrait" #: ../src/richtext/richtextsizepage.cpp:496 msgid "Position" msgstr "Position" #: ../src/generic/prntdlgg.cpp:298 msgid "PostScript file" msgstr "Fichier PostScript" #: ../src/common/stockitem.cpp:181 msgid "Preferences" msgstr "Préférences" #: ../src/osx/menu_osx.cpp:643 msgid "Preferences..." msgstr "Préférences..." #: ../src/common/prntbase.cpp:529 msgid "Preparing" msgstr "Préparation" #: ../src/generic/fontdlgg.cpp:455 ../src/osx/carbon/fontdlg.cpp:576 #: ../src/html/helpwnd.cpp:1235 msgid "Preview:" msgstr "Aperçu :" #: ../src/common/prntbase.cpp:1523 ../src/html/helpwnd.cpp:677 msgid "Previous page" msgstr "Page précédente" #: ../src/generic/prntdlgg.cpp:143 ../src/generic/prntdlgg.cpp:157 #: ../src/common/prntbase.cpp:409 ../src/common/prntbase.cpp:1511 #: ../src/gtk/print.cpp:584 ../src/gtk/print.cpp:597 msgid "Print" msgstr "Imprimer" #: ../include/wx/prntbase.h:395 ../src/common/docview.cpp:1250 msgid "Print Preview" msgstr "Aperçu avant impression" #: ../src/common/prntbase.cpp:1985 ../src/common/prntbase.cpp:2027 #: ../src/common/prntbase.cpp:2035 msgid "Print Preview Failure" msgstr "Erreur de l'aperçu avant impression" #: ../src/generic/prntdlgg.cpp:224 msgid "Print Range" msgstr "Pages à imprimer" #: ../src/generic/prntdlgg.cpp:449 msgid "Print Setup" msgstr "Configuration de l'impression" #: ../src/generic/prntdlgg.cpp:621 msgid "Print in colour" msgstr "Imprimer en couleur" #: ../src/common/stockitem.cpp:182 msgid "Print previe&w..." msgstr "&Aperçu avant impression..." #: ../src/common/docview.cpp:1244 msgid "Print preview creation failed." msgstr "Échec de la création de l'aperçu avant impression." #: ../src/common/stockitem.cpp:182 msgid "Print preview..." msgstr "Aperçu avant impression..." #: ../src/generic/prntdlgg.cpp:630 msgid "Print spooling" msgstr "Queue d'impression" #: ../src/html/helpwnd.cpp:688 msgid "Print this page" msgstr "Imprimer cette page" #: ../src/generic/prntdlgg.cpp:185 msgid "Print to File" msgstr "Imprimer dans un fichier" #: ../src/common/stockitem.cpp:183 msgid "Print..." msgstr "&Imprimer..." #: ../src/generic/prntdlgg.cpp:493 msgid "Printer" msgstr "Imprimante" #: ../src/generic/prntdlgg.cpp:633 msgid "Printer command:" msgstr "Commande pour l'imprimante :" #: ../src/generic/prntdlgg.cpp:180 msgid "Printer options" msgstr "Options de l'imprimante" #: ../src/generic/prntdlgg.cpp:645 msgid "Printer options:" msgstr "Options de l'imprimante :" #: ../src/generic/prntdlgg.cpp:916 msgid "Printer..." msgstr "Imprimante..." #: ../src/generic/prntdlgg.cpp:196 msgid "Printer:" msgstr "Imprimante :" #: ../include/wx/richtext/richtextprint.h:163 ../src/common/prntbase.cpp:518 #: ../src/html/htmprint.cpp:277 msgid "Printing" msgstr "Impression" #: ../src/common/prntbase.cpp:586 msgid "Printing " msgstr "Impression en cours" #: ../src/common/prntbase.cpp:330 msgid "Printing Error" msgstr "Erreur d'impression" #: ../src/common/prntbase.cpp:544 #, c-format msgid "Printing page %d of %d" msgstr "Impression de la page %d sur %d" #: ../src/generic/printps.cpp:201 #, c-format msgid "Printing page %d..." msgstr "Impression de la page %d..." #: ../src/generic/printps.cpp:161 msgid "Printing..." msgstr "Impression en cours..." #: ../include/wx/richtext/richtextprint.h:109 ../include/wx/prntbase.h:263 #: ../src/common/docview.cpp:2124 msgid "Printout" msgstr "Impression" #: ../src/common/debugrpt.cpp:565 #, c-format msgid "" "Processing debug report has failed, leaving the files in \"%s\" directory." msgstr "" "Échec du traitement du rapport de débogage, les fichiers sont maintenus dans " "le répertoire « %s »." #: ../src/osx/carbon/dataview.cpp:2472 msgid "Progress renderer cannot render value type; value type: " msgstr "" #: ../src/common/prntbase.cpp:528 msgid "Progress:" msgstr "Avancement :" #: ../src/common/stockitem.cpp:184 msgid "Properties" msgstr "Propriétés" #: ../src/propgrid/manager.cpp:237 msgid "Property" msgstr "Propriété" #: ../src/propgrid/propgrid.cpp:3144 ../src/propgrid/propgrid.cpp:3276 msgid "Property Error" msgstr "Erreur de Propriété" #: ../src/common/paper.cpp:113 msgid "Quarto, 215 x 275 mm" msgstr "Quarto, 215 x 275 mm" #: ../src/generic/logg.cpp:1036 msgid "Question" msgstr "Question" #: ../src/common/stockitem.cpp:156 msgid "Quit" msgstr "Quitter" #: ../src/osx/menu_osx.cpp:610 ../src/osx/menu_osx.cpp:657 #, c-format msgid "Quit %s" msgstr "Quitter %s" #: ../src/common/stockitem.cpp:263 msgid "Quit this program" msgstr "Quitter ce programme" #: ../src/common/accelcmn.cpp:53 msgid "RETURN" msgstr "RETOUR" #: ../src/common/accelcmn.cpp:57 msgid "RIGHT" msgstr "DROITE" #: ../src/common/accelcmn.cpp:327 #, fuzzy msgid "RawCtrl+" msgstr "Ctrl-ctrl" #: ../src/common/ffile.cpp:113 ../src/common/ffile.cpp:134 #, c-format msgid "Read error on file '%s'" msgstr "Erreur de lecture dans le fichier « %s »" #: ../src/common/prntbase.cpp:257 msgid "Ready" msgstr "Prêt" #: ../src/common/stockitem.cpp:185 ../src/stc/stc_i18n.cpp:16 msgid "Redo" msgstr "Refaire" #: ../src/common/stockitem.cpp:264 msgid "Redo last action" msgstr "Exécuter à nouveau la dernière action" #: ../src/common/stockitem.cpp:186 msgid "Refresh" msgstr "Actualiser" #: ../src/msw/registry.cpp:625 #, c-format msgid "Registry key '%s' already exists." msgstr "La clé de registre « %s » existe déjà." #: ../src/msw/registry.cpp:594 #, c-format msgid "Registry key '%s' does not exist, cannot rename it." msgstr "" "Impossible de renommer la clé de registre « %s », celle-ci n'existe pas." #: ../src/msw/registry.cpp:726 #, c-format msgid "" "Registry key '%s' is needed for normal system operation,\n" "deleting it will leave your system in unusable state:\n" "operation aborted." msgstr "" "La clé de registre « %s » est nécessaire pour un fonctionnement correct\n" "du système ; sa suppression laissera votre système inutilisable :\n" "opération abandonnée." #: ../src/msw/registry.cpp:520 #, c-format msgid "Registry value '%s' already exists." msgstr "La valeur de registre « %s » existe déjà." #: ../src/richtext/richtextfontpage.cpp:332 #: ../src/richtext/richtextfontpage.cpp:336 msgid "Regular" msgstr "Régulier" #: ../src/richtext/richtextsizepage.cpp:519 msgid "Relative" msgstr "Relatif" #: ../src/generic/helpext.cpp:462 msgid "Relevant entries:" msgstr "Entrées pertinentes :" #: ../include/wx/generic/progdlgg.h:86 #, fuzzy msgid "Remaining time:" msgstr "Temps restant : " #: ../src/common/stockitem.cpp:187 msgid "Remove" msgstr "Supprimer" #: ../src/richtext/richtextctrl.cpp:1430 #, fuzzy msgid "Remove Bullet" msgstr "Supprimer" #: ../src/html/helpwnd.cpp:440 msgid "Remove current page from bookmarks" msgstr "Retirer la page courante de vos signets" #: ../src/common/rendcmn.cpp:194 #, c-format msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded." msgstr "" "Le moteur de rendu « %s » a une version %d.%d incompatible et n'a pas pu " "être chargé." #: ../src/osx/carbon/dataview.cpp:1430 msgid "Rendering failed." msgstr "Échec du rendu." #: ../src/richtext/richtextbuffer.cpp:4214 msgid "Renumber List" msgstr "Renuméroter la liste" #: ../src/common/stockitem.cpp:188 msgid "Rep&lace" msgstr "Remp&lacer" #: ../src/richtext/richtextctrl.cpp:3277 ../src/common/stockitem.cpp:188 msgid "Replace" msgstr "Remplacer" #: ../src/generic/fdrepdlg.cpp:182 msgid "Replace &all" msgstr "Rempl&acer tout" #: ../src/common/stockitem.cpp:261 msgid "Replace selection" msgstr "Remplacer la sélection" #: ../src/generic/fdrepdlg.cpp:124 msgid "Replace with:" msgstr "Remplacer par :" #: ../src/common/valtext.cpp:161 msgid "Required information entry is empty." msgstr "" #: ../src/common/translation.cpp:1966 #, c-format msgid "Resource '%s' is not a valid message catalog." msgstr "La ressource « %s » n'est pas un catalogue messages valide." #: ../src/common/stockitem.cpp:189 msgid "Revert to Saved" msgstr "Changer en enregistré" #: ../src/richtext/richtextborderspage.cpp:548 #, fuzzy msgid "Ridge" msgstr "Droite" #: ../src/richtext/richtextliststylepage.cpp:251 #: ../src/richtext/richtextbulletspage.cpp:201 #: ../src/richtext/richtextsizepage.cpp:250 msgid "Right" msgstr "Droite" #: ../src/generic/prntdlgg.cpp:892 msgid "Right margin (mm):" msgstr "Marge droite (mm) :" #: ../src/richtext/richtextindentspage.cpp:148 #: ../src/richtext/richtextindentspage.cpp:150 #: ../src/richtext/richtextliststylepage.cpp:337 #: ../src/richtext/richtextliststylepage.cpp:339 msgid "Right-align text." msgstr "Alignement à droite du texte" #: ../src/generic/fontdlgg.cpp:322 msgid "Roman" msgstr "Roman" #: ../src/richtext/richtextliststylepage.cpp:299 #: ../src/richtext/richtextbulletspage.cpp:252 msgid "S&tandard bullet name:" msgstr "Nom s&tandard de tiret:" #: ../src/common/accelcmn.cpp:82 msgid "SCROLL_LOCK" msgstr "SCROLL_LOCK" #: ../src/common/accelcmn.cpp:71 msgid "SELECT" msgstr "SELECTION" #: ../src/common/accelcmn.cpp:77 msgid "SEPARATOR" msgstr "SEPARATEUR" #: ../src/common/accelcmn.cpp:74 msgid "SNAPSHOT" msgstr "CAPTURE_D_ECRAN" #: ../src/common/accelcmn.cpp:62 msgid "SPACE" msgstr "ESPACE" #: ../src/common/accelcmn.cpp:257 ../src/common/accelcmn.cpp:339 msgid "SPECIAL" msgstr "SPECIAL" #: ../src/common/accelcmn.cpp:78 msgid "SUBTRACT" msgstr "SOUSTRAIRE" #: ../src/common/stockitem.cpp:190 ../src/common/sizer.cpp:2678 msgid "Save" msgstr "Enregistrer" #: ../src/common/fldlgcmn.cpp:327 #, c-format msgid "Save %s file" msgstr "Enregistrer le fichier %s" #: ../src/generic/logg.cpp:518 msgid "Save &As..." msgstr "Enregistrer &sous..." #: ../src/common/docview.cpp:360 msgid "Save As" msgstr "Enregistrer Sous" #: ../src/common/stockitem.cpp:191 msgid "Save as" msgstr "Enregistrer sous" #: ../src/common/stockitem.cpp:267 msgid "Save current document" msgstr "Enregistrer le document courant" #: ../src/common/stockitem.cpp:268 msgid "Save current document with a different filename" msgstr "Enregistrer le document courant avec un nouveau nom" #: ../src/generic/logg.cpp:518 msgid "Save log contents to file" msgstr "Enregistrer le contenu du journal dans un fichier" #: ../src/generic/fontdlgg.cpp:325 msgid "Script" msgstr "Script" #: ../src/generic/srchctlg.cpp:67 ../src/html/helpwnd.cpp:548 #: ../src/html/helpwnd.cpp:563 msgid "Search" msgstr "Chercher" #: ../src/html/helpwnd.cpp:550 msgid "" "Search contents of help book(s) for all occurrences of the text you typed " "above" msgstr "" "Rechercher dans le contenu du/des manuel(s) d'aide toutes les occurrences du " "texte que vous avez tapé ci-dessus" #: ../src/generic/fdrepdlg.cpp:160 msgid "Search direction" msgstr "Direction de la recherche" #: ../src/generic/fdrepdlg.cpp:112 msgid "Search for:" msgstr "Chercher :" #: ../src/html/helpwnd.cpp:1065 msgid "Search in all books" msgstr "Chercher dans tous les manuels" #: ../src/html/helpwnd.cpp:870 msgid "Searching..." msgstr "Recherche..." #: ../src/generic/dirctrlg.cpp:546 msgid "Sections" msgstr "Sections" #: ../src/common/ffile.cpp:220 #, c-format msgid "Seek error on file '%s'" msgstr "Erreur de recherche dans le fichier « %s »" #: ../src/common/ffile.cpp:210 #, c-format msgid "Seek error on file '%s' (large files not supported by stdio)" msgstr "" "Erreur de recherche dans le fichier « %s » (les fichiers importants ne sont " "pas gérés par stdio)" #: ../src/richtext/richtextctrl.cpp:330 ../src/osx/textctrl_osx.cpp:587 #: ../src/common/stockitem.cpp:192 ../src/msw/textctrl.cpp:2288 msgid "Select &All" msgstr "&Tout sélectionner" #: ../src/common/stockitem.cpp:192 ../src/stc/stc_i18n.cpp:21 msgid "Select All" msgstr "Tout sélectionner" #: ../src/common/docview.cpp:1877 msgid "Select a document template" msgstr "Sélectionner un modèle de document" #: ../src/common/docview.cpp:1951 msgid "Select a document view" msgstr "Sélectionner une vue du document" #: ../src/richtext/richtextfontpage.cpp:235 #: ../src/richtext/richtextfontpage.cpp:237 msgid "Select regular or bold." msgstr "Choisir normal ou gras." #: ../src/richtext/richtextfontpage.cpp:222 #: ../src/richtext/richtextfontpage.cpp:224 msgid "Select regular or italic style." msgstr "Choisir normal ou italique." #: ../src/richtext/richtextfontpage.cpp:248 #: ../src/richtext/richtextfontpage.cpp:250 msgid "Select underlining or no underlining." msgstr "Choisir normal ou souligné." #: ../src/motif/filedlg.cpp:220 msgid "Selection" msgstr "Sélection" #: ../src/richtext/richtextliststylepage.cpp:187 #: ../src/richtext/richtextliststylepage.cpp:189 msgid "Selects the list level to edit." msgstr "Choisissez le niveau de liste à éditer." #: ../src/common/cmdline.cpp:918 #, c-format msgid "Separator expected after the option '%s'." msgstr "Séparateur attendu après l'option « %s »." #: ../src/richtext/richtextbuffer.cpp:10513 msgid "Set Cell Style" msgstr "Définir le Style de Cellule" #: ../include/wx/xtiprop.h:179 msgid "SetProperty called w/o valid setter" msgstr "SetProperty appelé sans monteur valable" #: ../src/common/filename.cpp:2632 msgid "Setting directory access times is not supported under this OS version" msgstr "" #: ../src/generic/prntdlgg.cpp:188 msgid "Setup..." msgstr "Configurer..." #: ../src/msw/dialup.cpp:563 msgid "Several active dialup connections found, choosing one randomly." msgstr "Plusieurs connexions actives trouvées, sélection unique aléatoire." #: ../src/common/accelcmn.cpp:324 msgid "Shift+" msgstr "Majuscule+" #: ../src/generic/dirdlgg.cpp:170 msgid "Show &hidden directories" msgstr "Montrer les répertoires cac&hés" #: ../src/generic/filectrlg.cpp:1003 msgid "Show &hidden files" msgstr "Montrer les fichiers cac&hés" #: ../src/osx/menu_osx.cpp:605 ../src/osx/menu_osx.cpp:652 msgid "Show All" msgstr "Tout Montrer" #: ../src/common/stockitem.cpp:257 msgid "Show about dialog" msgstr "Montrer la fenêtre d'à propos" #: ../src/html/helpwnd.cpp:502 msgid "Show all" msgstr "Tout montrer" #: ../src/html/helpwnd.cpp:513 msgid "Show all items in index" msgstr "Montrer tous les éléments de l'index" #: ../src/generic/dirdlgg.cpp:105 msgid "Show hidden directories" msgstr "Montrer les répertoires cachés" #: ../src/html/helpwnd.cpp:671 msgid "Show/hide navigation panel" msgstr "Montrer/cacher le panneau de navigation" #: ../src/richtext/richtextsymboldlg.cpp:421 #: ../src/richtext/richtextsymboldlg.cpp:423 msgid "Shows a Unicode subset." msgstr "Affiche un échantillon d'Unicode" #: ../src/richtext/richtextliststylepage.cpp:472 #: ../src/richtext/richtextliststylepage.cpp:474 #: ../src/richtext/richtextbulletspage.cpp:276 #: ../src/richtext/richtextbulletspage.cpp:278 msgid "Shows a preview of the bullet settings." msgstr "Affiche un aperçu des réglages pour les tirets." #: ../src/richtext/richtextfontpage.cpp:322 #: ../src/richtext/richtextfontpage.cpp:324 msgid "Shows a preview of the font settings." msgstr "Affiche un aperçu de réglages de la police." #: ../src/osx/carbon/fontdlg.cpp:580 ../src/osx/carbon/fontdlg.cpp:582 msgid "Shows a preview of the font." msgstr "Montre un aperçu de la liste." #: ../src/richtext/richtextindentspage.cpp:303 #: ../src/richtext/richtextindentspage.cpp:305 msgid "Shows a preview of the paragraph settings." msgstr "Affiche un aperçu des réglages de paragraphe." #: ../src/generic/fontdlgg.cpp:460 ../src/generic/fontdlgg.cpp:462 msgid "Shows the font preview." msgstr "Montrer un aperçu des polices." #: ../src/univ/themes/mono.cpp:516 msgid "Simple monochrome theme" msgstr "Simple thème monochrome" #: ../src/richtext/richtextindentspage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:449 msgid "Single" msgstr "Simple" #: ../src/generic/filectrlg.cpp:460 ../src/richtext/richtextformatdlg.cpp:356 #: ../src/richtext/richtextsizepage.cpp:299 msgid "Size" msgstr "Taille" #: ../src/osx/carbon/fontdlg.cpp:525 msgid "Size:" msgstr "Taille:" #: ../src/generic/progdlgg.cpp:262 ../src/generic/progdlgg.cpp:773 #: ../src/msw/progdlg.cpp:801 msgid "Skip" msgstr "Sauter" #: ../src/generic/fontdlgg.cpp:330 msgid "Slant" msgstr "Incliné" #: ../src/richtext/richtextfontpage.cpp:298 msgid "Small C&apitals" msgstr "Petites M&ajuscules" #: ../src/richtext/richtextborderspage.cpp:543 msgid "Solid" msgstr "Solide" #: ../src/common/docview.cpp:1773 msgid "Sorry, could not open this file." msgstr "Impossible d'ouvrir ce fichier." #: ../src/common/prntbase.cpp:2027 ../src/common/prntbase.cpp:2035 msgid "Sorry, not enough memory to create a preview." msgstr "Mémoire insuffisante pour créer un aperçu." #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "Sorry, that name is taken. Please choose another." msgstr "Désole mais ce nom est déjà pris. Veuillez en choisir un autre." #: ../src/common/docview.cpp:1796 msgid "Sorry, the format for this file is unknown." msgstr "Format de fichier inconnu." #: ../src/unix/sound.cpp:492 msgid "Sound data are in unsupported format." msgstr "Format des données sonores non géré." #: ../src/unix/sound.cpp:477 #, c-format msgid "Sound file '%s' is in unsupported format." msgstr "Format du fichier sonore « %s » non géré." #: ../src/richtext/richtextliststylepage.cpp:467 msgid "Spacing" msgstr "Espacement" #: ../src/common/stockitem.cpp:197 msgid "Spell Check" msgstr "Vérification Orthographique" #: ../src/richtext/richtextliststylepage.cpp:490 #: ../src/richtext/richtextbulletspage.cpp:295 msgid "Standard" msgstr "Standard" #: ../src/common/paper.cpp:105 msgid "Statement, 5 1/2 x 8 1/2 in" msgstr "Communiqué (5,5 x 8,5 pouces)" #: ../src/richtext/richtextsizepage.cpp:518 #: ../src/richtext/richtextsizepage.cpp:523 msgid "Static" msgstr "Statique" #: ../src/generic/prntdlgg.cpp:204 msgid "Status:" msgstr "État :" #: ../src/common/stockitem.cpp:198 msgid "Stop" msgstr "Arrêter" #: ../src/common/stockitem.cpp:199 msgid "Strikethrough" msgstr "Barré" #: ../src/common/colourcmn.cpp:45 #, c-format msgid "String To Colour : Incorrect colour specification : %s" msgstr "" "Conversion de chaîne en couleur : spécification de la couleur non valable : " "%s" #: ../src/richtext/richtextformatdlg.cpp:318 ../src/propgrid/advprops.cpp:647 msgid "Style" msgstr "Style" #: ../include/wx/richtext/richtextstyledlg.h:47 msgid "Style Organiser" msgstr "Organiseur de styles" #: ../src/osx/carbon/fontdlg.cpp:534 msgid "Style:" msgstr "Style" #: ../src/richtext/richtextfontpage.cpp:312 msgid "Subscrip&t" msgstr "Indice" #: ../src/richtext/richtextfontpage.cpp:305 msgid "Supe&rscript" msgstr "Exposant" #: ../src/common/paper.cpp:151 msgid "SuperA/SuperA/A4 227 x 356 mm" msgstr "SuperA/SuperA/A4 227 x 356 mm" #: ../src/common/paper.cpp:152 msgid "SuperB/SuperB/A3 305 x 487 mm" msgstr "SuperB/SuperB/A3 305 x 487 mm" #: ../src/generic/fontdlgg.cpp:326 msgid "Swiss" msgstr "Suisse" #: ../src/richtext/richtextliststylepage.cpp:488 #: ../src/richtext/richtextbulletspage.cpp:293 msgid "Symbol" msgstr "Symbole" #: ../src/richtext/richtextliststylepage.cpp:288 #: ../src/richtext/richtextbulletspage.cpp:240 msgid "Symbol &font:" msgstr "Police du symbole:" #: ../include/wx/richtext/richtextsymboldlg.h:47 msgid "Symbols" msgstr "Symboles" #: ../src/common/accelcmn.cpp:63 msgid "TAB" msgstr "TAB" #: ../src/common/imagtiff.cpp:372 ../src/common/imagtiff.cpp:385 #: ../src/common/imagtiff.cpp:744 msgid "TIFF: Couldn't allocate memory." msgstr "TIFF : allocation de mémoire impossible." #: ../src/common/imagtiff.cpp:304 msgid "TIFF: Error loading image." msgstr "TIFF : erreur au chargement de l'image." #: ../src/common/imagtiff.cpp:471 msgid "TIFF: Error reading image." msgstr "TIFF : erreur à la lecture de l'image." #: ../src/common/imagtiff.cpp:611 msgid "TIFF: Error saving image." msgstr "TIFF : erreur à la sauvegarde de l'image." #: ../src/common/imagtiff.cpp:849 msgid "TIFF: Error writing image." msgstr "TIFF : erreur à l'écriture de l'image." #: ../src/common/imagtiff.cpp:358 msgid "TIFF: Image size is abnormally big." msgstr "TIFF : La taille de l'image est anormalement grande." #: ../src/richtext/richtextbuffer.cpp:10794 msgid "Table Properties" msgstr "Propriétés du Tableau" #: ../src/common/paper.cpp:146 msgid "Tabloid Extra 11.69 x 18 in" msgstr "Tabloïde Extra 11.69 x 18 pouces" #: ../src/common/paper.cpp:103 msgid "Tabloid, 11 x 17 in" msgstr "Tabloïde (11 x 17 pouces)" #: ../src/richtext/richtextformatdlg.cpp:336 msgid "Tabs" msgstr "Tabulations" #: ../src/generic/fontdlgg.cpp:327 msgid "Teletype" msgstr "Télétype" #: ../src/common/docview.cpp:1878 msgid "Templates" msgstr "Modèles" #: ../src/osx/carbon/dataview.cpp:2373 msgid "Text renderer cannot render value; value type: " msgstr "" #: ../src/common/fmapbase.cpp:158 msgid "Thai (ISO-8859-11)" msgstr "Thaï (ISO-8859-11)" #: ../src/common/ftp.cpp:620 msgid "The FTP server doesn't support passive mode." msgstr "Mode passif non géré par le serveur FTP." #: ../src/common/ftp.cpp:606 msgid "The FTP server doesn't support the PORT command." msgstr "Commande PORT non gérée par le serveur FTP." #: ../src/richtext/richtextliststylepage.cpp:215 #: ../src/richtext/richtextliststylepage.cpp:217 #: ../src/richtext/richtextbulletspage.cpp:164 #: ../src/richtext/richtextbulletspage.cpp:166 msgid "The available bullet styles." msgstr "Les styles de tirets disponibles." #: ../src/richtext/richtextstyledlg.cpp:202 #: ../src/richtext/richtextstyledlg.cpp:204 msgid "The available styles." msgstr "Les styles disponibles." #: ../src/richtext/richtextbackgroundpage.cpp:139 #: ../src/richtext/richtextbackgroundpage.cpp:141 msgid "The background colour." msgstr "La couleur d'arrière plan." #: ../src/richtext/richtextmarginspage.cpp:268 #: ../src/richtext/richtextmarginspage.cpp:270 msgid "The bottom margin size." msgstr "La taille de la marge inférieure." #: ../src/richtext/richtextmarginspage.cpp:382 #: ../src/richtext/richtextmarginspage.cpp:384 msgid "The bottom padding size." msgstr "La taille de l'espacement inférieur." #: ../src/richtext/richtextsizepage.cpp:639 #: ../src/richtext/richtextsizepage.cpp:641 #: ../src/richtext/richtextsizepage.cpp:653 #: ../src/richtext/richtextsizepage.cpp:655 msgid "The bottom position." msgstr "La position inférieure." #: ../src/richtext/richtextliststylepage.cpp:254 #: ../src/richtext/richtextliststylepage.cpp:256 #: ../src/richtext/richtextliststylepage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:277 #: ../src/richtext/richtextbulletspage.cpp:204 #: ../src/richtext/richtextbulletspage.cpp:206 #: ../src/richtext/richtextbulletspage.cpp:227 #: ../src/richtext/richtextbulletspage.cpp:229 msgid "The bullet character." msgstr "Le caractère de tiret." #: ../src/richtext/richtextsymboldlg.cpp:443 #: ../src/richtext/richtextsymboldlg.cpp:445 msgid "The character code." msgstr "Le code caractère." #: ../src/common/fontmap.cpp:203 #, c-format msgid "" "The charset '%s' is unknown. You may select\n" "another charset to replace it with or choose\n" "[Cancel] if it cannot be replaced" msgstr "" "Jeu de caractères « %s » inconnu. Sélectionner un autre en remplacement\n" "ou [Annuler] s'il ne peut pas être remplacé" #: ../src/msw/ole/dataobj.cpp:367 #, c-format msgid "The clipboard format '%d' doesn't exist." msgstr "Format « %d » de presse-papiers inexistant." #: ../src/richtext/richtextstylepage.cpp:128 #: ../src/richtext/richtextstylepage.cpp:130 msgid "The default style for the next paragraph." msgstr "Le style par défaut pour le paragraphe suivant." #: ../src/generic/dirdlgg.cpp:231 #, c-format msgid "" "The directory '%s' does not exist\n" "Create it now?" msgstr "" "Répertoire « %s » inexistant\n" "Le créer maintenant ?" #: ../src/html/htmprint.cpp:271 #, c-format msgid "" "The document \"%s\" doesn't fit on the page horizontally and will be " "truncated if printed.\n" "\n" "Would you like to proceed with printing it nevertheless?" msgstr "" "Le document \"%s\" ne tient pas sur la page horizontalement et sera tronqué " "s'il est imprimé.\n" "\n" "Voulez-vous néanmoins procéder à l'impression ?" #: ../src/common/docview.cpp:1184 #, c-format msgid "" "The file '%s' doesn't exist and couldn't be opened.\n" "It has been removed from the most recently used files list." msgstr "" "Le fichier « %s » n'existe pas et n'a pas pu être ouvert.\n" "Il a été retiré de la liste des fichiers récemment utilisés." #: ../src/richtext/richtextindentspage.cpp:208 #: ../src/richtext/richtextindentspage.cpp:210 #: ../src/richtext/richtextliststylepage.cpp:394 #: ../src/richtext/richtextliststylepage.cpp:396 msgid "The first line indent." msgstr "Indentation de la première ligne" #: ../src/gtk/utilsgtk.cpp:427 msgid "The following standard GTK+ options are also supported:\n" msgstr "" #: ../src/generic/fontdlgg.cpp:414 ../src/generic/fontdlgg.cpp:416 msgid "The font colour." msgstr "Couleur de police." #: ../src/generic/fontdlgg.cpp:375 ../src/generic/fontdlgg.cpp:377 msgid "The font family." msgstr "Famille de police." #: ../src/richtext/richtextsymboldlg.cpp:405 #: ../src/richtext/richtextsymboldlg.cpp:407 msgid "The font from which to take the symbol." msgstr "La police de laquelle prendre le symbole." #: ../src/generic/fontdlgg.cpp:427 ../src/generic/fontdlgg.cpp:429 #: ../src/generic/fontdlgg.cpp:434 ../src/generic/fontdlgg.cpp:436 msgid "The font point size." msgstr "Taille du point de la police." #: ../src/osx/carbon/fontdlg.cpp:529 ../src/osx/carbon/fontdlg.cpp:531 msgid "The font size in points." msgstr "Taille de la police en points." #: ../src/richtext/richtextfontpage.cpp:190 #: ../src/richtext/richtextfontpage.cpp:192 #, fuzzy msgid "The font size units, points or pixels." msgstr "Taille de la police en points." #: ../src/generic/fontdlgg.cpp:386 ../src/generic/fontdlgg.cpp:388 msgid "The font style." msgstr "Style de police." #: ../src/generic/fontdlgg.cpp:397 ../src/generic/fontdlgg.cpp:399 msgid "The font weight." msgstr "Largeur de police." #: ../src/common/docview.cpp:1465 #, c-format msgid "The format of file '%s' couldn't be determined." msgstr "Le format du fichier « %s » n'a pas pu être déterminé." #: ../src/richtext/richtextindentspage.cpp:199 #: ../src/richtext/richtextindentspage.cpp:201 #: ../src/richtext/richtextliststylepage.cpp:385 #: ../src/richtext/richtextliststylepage.cpp:387 msgid "The left indent." msgstr "L'indentintion de gauche." #: ../src/richtext/richtextmarginspage.cpp:195 #: ../src/richtext/richtextmarginspage.cpp:197 msgid "The left margin size." msgstr "La taille de la marge gauche." #: ../src/richtext/richtextmarginspage.cpp:309 #: ../src/richtext/richtextmarginspage.cpp:311 msgid "The left padding size." msgstr "La taille de l'espacement gauche." #: ../src/richtext/richtextsizepage.cpp:534 #: ../src/richtext/richtextsizepage.cpp:536 #: ../src/richtext/richtextsizepage.cpp:548 #: ../src/richtext/richtextsizepage.cpp:550 msgid "The left position." msgstr "La position gauche." #: ../src/richtext/richtextindentspage.cpp:288 #: ../src/richtext/richtextindentspage.cpp:290 #: ../src/richtext/richtextliststylepage.cpp:462 #: ../src/richtext/richtextliststylepage.cpp:464 msgid "The line spacing." msgstr "'espacemetn interligne." #: ../src/richtext/richtextbulletspage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:270 msgid "The list item number." msgstr "Le numéro de l'élément de la liste." #: ../src/msw/ole/automtn.cpp:653 msgid "The locale ID is unknown." msgstr "" #: ../src/richtext/richtextsizepage.cpp:366 #: ../src/richtext/richtextsizepage.cpp:368 msgid "The object height." msgstr "La hauteur de l'objet." #: ../src/richtext/richtextsizepage.cpp:474 #: ../src/richtext/richtextsizepage.cpp:476 msgid "The object maximum height." msgstr "La hauteur maximum de l'objet." #: ../src/richtext/richtextsizepage.cpp:447 #: ../src/richtext/richtextsizepage.cpp:449 msgid "The object maximum width." msgstr "La largeur maximum de l'objet." #: ../src/richtext/richtextsizepage.cpp:420 #: ../src/richtext/richtextsizepage.cpp:422 msgid "The object minimum height." msgstr "La hauteur minimum de l'objet." #: ../src/richtext/richtextsizepage.cpp:393 #: ../src/richtext/richtextsizepage.cpp:395 msgid "The object minimum width." msgstr "La largeur minimum de l'objet." #: ../src/richtext/richtextsizepage.cpp:332 #: ../src/richtext/richtextsizepage.cpp:334 msgid "The object width." msgstr "La largeur de l'objet." #: ../src/richtext/richtextindentspage.cpp:227 #: ../src/richtext/richtextindentspage.cpp:229 msgid "The outline level." msgstr "Le niveau du contour." #: ../src/common/log.cpp:281 #, c-format msgid "The previous message repeated %lu time." msgid_plural "The previous message repeated %lu times." msgstr[0] "Le message précédent répété %lu fois." msgstr[1] "Le message précédent répété %lu fois." #: ../src/common/log.cpp:274 msgid "The previous message repeated once." msgstr "Le message précédent répété une fois." #: ../src/gtk/print.cpp:931 ../src/gtk/print.cpp:1114 msgid "The print dialog returned an error." msgstr "Le dialogue d'impression a retourné une erreur." #: ../src/richtext/richtextsymboldlg.cpp:462 #: ../src/richtext/richtextsymboldlg.cpp:464 msgid "The range to show." msgstr "L'intervalle à afficher." #: ../src/generic/dbgrptg.cpp:322 msgid "" "The report contains the files listed below. If any of these files contain " "private information,\n" "please uncheck them and they will be removed from the report.\n" msgstr "" "Le rapport contient les fichiers listés ci-dessous. Si l'un de ces\n" "fichiers contient des informations sensibles, le décocher pour le\n" "retirer de ce rapport.\n" #: ../src/common/cmdline.cpp:1083 #, c-format msgid "The required parameter '%s' was not specified." msgstr "Paramètre nécessaire « %s » non fourni." #: ../src/richtext/richtextindentspage.cpp:217 #: ../src/richtext/richtextindentspage.cpp:219 #: ../src/richtext/richtextliststylepage.cpp:403 #: ../src/richtext/richtextliststylepage.cpp:405 msgid "The right indent." msgstr "L'indentation à droite." #: ../src/richtext/richtextmarginspage.cpp:220 #: ../src/richtext/richtextmarginspage.cpp:222 msgid "The right margin size." msgstr "La taille de la marge droite." #: ../src/richtext/richtextmarginspage.cpp:334 #: ../src/richtext/richtextmarginspage.cpp:336 msgid "The right padding size." msgstr "La taille de l'espacement droit." #: ../src/richtext/richtextsizepage.cpp:604 #: ../src/richtext/richtextsizepage.cpp:606 #: ../src/richtext/richtextsizepage.cpp:618 #: ../src/richtext/richtextsizepage.cpp:620 msgid "The right position." msgstr "La position droite." #: ../src/richtext/richtextindentspage.cpp:267 #: ../src/richtext/richtextliststylepage.cpp:439 #: ../src/richtext/richtextliststylepage.cpp:441 msgid "The spacing after the paragraph." msgstr "L'espacement après le paragraphe." #: ../src/richtext/richtextindentspage.cpp:257 #: ../src/richtext/richtextindentspage.cpp:259 #: ../src/richtext/richtextliststylepage.cpp:430 #: ../src/richtext/richtextliststylepage.cpp:432 msgid "The spacing before the paragraph." msgstr "L'espacement avant le paragraphe." #: ../src/richtext/richtextstylepage.cpp:108 #: ../src/richtext/richtextstylepage.cpp:110 msgid "The style name." msgstr "Le nom du Style." #: ../src/richtext/richtextstylepage.cpp:118 #: ../src/richtext/richtextstylepage.cpp:120 msgid "The style on which this style is based." msgstr "Le style sur lequel ce style est basé." #: ../src/richtext/richtextstyledlg.cpp:214 #: ../src/richtext/richtextstyledlg.cpp:216 msgid "The style preview." msgstr "Aperçu des styles." #: ../src/msw/ole/automtn.cpp:669 msgid "The system cannot find the file specified." msgstr "Le système ne peut pas trouver le fichier spécifié." #: ../src/richtext/richtexttabspage.cpp:118 #: ../src/richtext/richtexttabspage.cpp:120 msgid "The tab position." msgstr "La position du taquet de tabulation." #: ../src/richtext/richtexttabspage.cpp:124 msgid "The tab positions." msgstr "La position des taquets de tabulation." #: ../src/richtext/richtextctrl.cpp:2705 msgid "The text couldn't be saved." msgstr "Le texte n'a pas pu être enregistré." #: ../src/richtext/richtextmarginspage.cpp:243 #: ../src/richtext/richtextmarginspage.cpp:245 msgid "The top margin size." msgstr "La taille de la marge supérieure." #: ../src/richtext/richtextmarginspage.cpp:357 #: ../src/richtext/richtextmarginspage.cpp:359 msgid "The top padding size." msgstr "La taille de l'espacement supérieur." #: ../src/richtext/richtextsizepage.cpp:569 #: ../src/richtext/richtextsizepage.cpp:571 #: ../src/richtext/richtextsizepage.cpp:583 #: ../src/richtext/richtextsizepage.cpp:585 msgid "The top position." msgstr "La position supérieure." #: ../src/common/cmdline.cpp:1061 #, c-format msgid "The value for the option '%s' must be specified." msgstr "La valeur de l'option « %s » doit être précisée." #: ../src/msw/dialup.cpp:452 #, c-format msgid "" "The version of remote access service (RAS) installed on this machine is too " "old, please upgrade (the following required function is missing: %s)." msgstr "" "La version du service d'accès distant (RAS) installée sur cette machine est " "trop ancienne. Veuillez la mettre à niveau (la fonction suivante manque : " "%s)." #: ../src/gtk/print.cpp:959 msgid "The wxGtkPrinterDC cannot be used." msgstr "Le wxGtkPrinterDC ne peut être utilisé." #: ../src/osx/carbon/dataview.cpp:1340 msgid "There is no column or renderer for the specified column index." msgstr "" #: ../src/richtext/richtextprint.cpp:614 ../src/html/htmprint.cpp:735 msgid "" "There was a problem during page setup: you may need to set a default printer." msgstr "" "Un problème est apparu lors de la mise en page : la configuration d'une " "imprimante par défaut peut être nécessaire." #: ../src/html/htmprint.cpp:255 msgid "" "This document doesn't fit on the page horizontally and will be truncated " "when it is printed." msgstr "" "Ce document ne tient pas sur la page horizontalement et sera tronqué lors de " "l'impression." #: ../src/common/image.cpp:2716 #, fuzzy, c-format msgid "This is not a %s." msgstr "PCX : ce n'est pas un fichier PCX." #: ../src/common/wincmn.cpp:1653 msgid "This platform does not support background transparency." msgstr "Cette plateforme ne supporte pas la transparence d'arrière plan." #: ../src/gtk/window.cpp:4317 msgid "" "This program was compiled with a too old version of GTK+, please rebuild " "with GTK+ 2.12 or newer." msgstr "" "Ce programme a été compilé avec une version trop ancienne de GTK+, veuillez " "recompiler avec GTK+ 2.12 ou plus récent." #: ../src/msw/datecontrols.cpp:59 msgid "" "This system doesn't support date controls, please upgrade your version of " "comctl32.dll" msgstr "" "Ce système ne gère pas les contrôles de date, veuillez mettre à niveau votre " "version de comctl32.dll" #: ../src/msw/thread.cpp:1300 msgid "" "Thread module initialization failed: cannot store value in thread local " "storage" msgstr "" "Échec de l'initialisation du module du processus : enregistrement impossible " "de la valeur dans le stockage local des processus" #: ../src/unix/threadpsx.cpp:1758 msgid "Thread module initialization failed: failed to create thread key" msgstr "" "Échec de l'initialisation du module du processus : échec de la création de " "la clé du processus" #: ../src/msw/thread.cpp:1288 msgid "" "Thread module initialization failed: impossible to allocate index in thread " "local storage" msgstr "" "Échec de l'initialisation du module du processus : impossible d'allouer un " "index dans le stockage local des processus" #: ../src/unix/threadpsx.cpp:1038 msgid "Thread priority setting is ignored." msgstr "La priorité donnée au processus est ignorée." #: ../src/msw/mdi.cpp:172 msgid "Tile &Horizontally" msgstr "Répartir &horizontalement" #: ../src/msw/mdi.cpp:173 msgid "Tile &Vertically" msgstr "Répartir &verticalement" #: ../src/common/ftp.cpp:202 msgid "Timeout while waiting for FTP server to connect, try passive mode." msgstr "" "Temps dépassé lors de la connexion du serveur FTP, essai du mode passif." #: ../src/os2/timer.cpp:99 msgid "Timer creation failed." msgstr "Échec de la création d'un minuteur." #: ../src/generic/tipdlg.cpp:220 msgid "Tip of the Day" msgstr "Astuce du Jour" #: ../src/generic/tipdlg.cpp:154 msgid "Tips not available, sorry!" msgstr "Astuces non disponibles." #: ../src/generic/prntdlgg.cpp:242 msgid "To:" msgstr "À :" #: ../src/osx/carbon/dataview.cpp:2451 msgid "Toggle renderer cannot render value; value type: " msgstr "" #: ../src/richtext/richtextbuffer.cpp:7983 msgid "Too many EndStyle calls!" msgstr "Trop d'appels à EndStyle !" #: ../src/common/imagpng.cpp:286 msgid "Too many colours in PNG, the image may be slightly blurred." msgstr "Trop de couleurs dans l'image PNG, elle peut être légèrement trouble." #: ../src/richtext/richtextsizepage.cpp:286 #: ../src/richtext/richtextsizepage.cpp:290 ../src/common/stockitem.cpp:200 msgid "Top" msgstr "Haut" #: ../src/generic/prntdlgg.cpp:881 msgid "Top margin (mm):" msgstr "Marge de haut de page (mm) :" #: ../src/generic/aboutdlgg.cpp:79 msgid "Translations by " msgstr "Traductions par " #: ../src/generic/aboutdlgg.cpp:188 msgid "Translators" msgstr "Traducteurs" #: ../src/propgrid/propgrid.cpp:173 msgid "True" msgstr "Vrai" #: ../src/common/fs_mem.cpp:227 #, c-format msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!" msgstr "" "Tentative de suppression du fichier « %s » de la mémoire VFS, mais il n'est " "pas chargé." #: ../src/common/fmapbase.cpp:156 msgid "Turkish (ISO-8859-9)" msgstr "Turc (ISO-8859-9)" #: ../src/generic/filectrlg.cpp:461 msgid "Type" msgstr "Type" #: ../src/richtext/richtextfontpage.cpp:160 #: ../src/richtext/richtextfontpage.cpp:162 msgid "Type a font name." msgstr "Taper le nom d'une police de caractères." #: ../src/richtext/richtextfontpage.cpp:175 #: ../src/richtext/richtextfontpage.cpp:177 msgid "Type a size in points." msgstr "Entrez une taille en points." #: ../src/msw/ole/automtn.cpp:665 #, c-format msgid "Type mismatch in argument %u." msgstr "" #: ../src/common/xtixml.cpp:356 ../src/common/xtixml.cpp:509 #: ../src/common/xtistrm.cpp:322 msgid "Type must have enum - long conversion" msgstr "Le type doit être énumérable - conversion longue" #: ../src/propgrid/propgridiface.cpp:382 #, c-format msgid "" "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", NOT " "\"%s\"." msgstr "" #: ../src/common/accelcmn.cpp:58 msgid "UP" msgstr "HAUT" #: ../src/common/paper.cpp:134 msgid "US Std Fanfold, 14 7/8 x 11 in" msgstr "Standard US en accordéon (14,875 x 11 pouces)" #: ../src/common/fmapbase.cpp:196 msgid "US-ASCII" msgstr "US-ASCII" #: ../src/unix/fswatcher_inotify.cpp:109 msgid "Unable to add inotify watch" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:136 msgid "Unable to add kqueue watch" msgstr "" #: ../include/wx/msw/private/fswatcher.h:142 msgid "Unable to associate handle with I/O completion port" msgstr "" #: ../include/wx/msw/private/fswatcher.h:125 #, fuzzy msgid "Unable to close I/O completion port handle" msgstr "Échec de la fermeture du gestionnaire de fichier" #: ../src/unix/fswatcher_inotify.cpp:97 #, fuzzy msgid "Unable to close inotify instance" msgstr "Échec de la fermeture du gestionnaire de fichier" #: ../include/wx/unix/private/fswatcher_kqueue.h:74 #, c-format msgid "Unable to close path '%s'" msgstr "Impossible de fermer le chemin « %s »" #: ../include/wx/msw/private/fswatcher.h:48 #, c-format msgid "Unable to close the handle for '%s'" msgstr "Impossible de fermer le gestionnaire pour « %s »" #: ../include/wx/msw/private/fswatcher.h:240 #, fuzzy msgid "Unable to create I/O completion port" msgstr "Impossible de créer TextEncodingConverter" #: ../src/msw/fswatcher.cpp:84 #, fuzzy msgid "Unable to create IOCP worker thread" msgstr "Impossible de créer TextEncodingConverter" #: ../src/unix/fswatcher_inotify.cpp:74 #, fuzzy msgid "Unable to create inotify instance" msgstr "Impossible de créer TextEncodingConverter" #: ../src/unix/fswatcher_kqueue.cpp:97 #, fuzzy msgid "Unable to create kqueue instance" msgstr "Impossible de créer TextEncodingConverter" #: ../include/wx/msw/private/fswatcher.h:229 msgid "Unable to dequeue completion packet" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:185 msgid "Unable to get events from kqueue" msgstr "" #: ../src/osx/carbon/dataview.cpp:1903 msgid "Unable to handle native drag&drop data" msgstr "" #: ../src/gtk/app.cpp:439 msgid "Unable to initialize GTK+, is DISPLAY set properly?" msgstr "" #: ../src/gtk/app.cpp:276 #, fuzzy msgid "Unable to initialize Hildon program" msgstr "Échec de l'initialisation d'OpenGL" #: ../include/wx/unix/private/fswatcher_kqueue.h:57 #, c-format msgid "Unable to open path '%s'" msgstr "Impossible d'ouvrir le chemin « %s »" #: ../src/html/htmlwin.cpp:561 #, c-format msgid "Unable to open requested HTML document: %s" msgstr "Impossible d'ouvrir le document HTML demandé : %s" #: ../src/unix/sound.cpp:368 msgid "Unable to play sound asynchronously." msgstr "Impossible de jouer les sons de manière non synchrone" #: ../include/wx/msw/private/fswatcher.h:207 msgid "Unable to post completion status" msgstr "" #: ../src/unix/fswatcher_inotify.cpp:530 #, fuzzy msgid "Unable to read from inotify descriptor" msgstr "impossible de lire le descripteur de fichier %d" #: ../src/unix/fswatcher_inotify.cpp:132 msgid "Unable to remove inotify watch" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:153 msgid "Unable to remove kqueue watch" msgstr "" #: ../src/msw/fswatcher.cpp:168 #, fuzzy, c-format msgid "Unable to set up watch for '%s'" msgstr "Échec de la mise à jour de la date du fichier « %s »" #: ../src/msw/fswatcher.cpp:91 msgid "Unable to start IOCP worker thread" msgstr "" #: ../src/common/stockitem.cpp:201 msgid "Undelete" msgstr "Rétablir" #: ../src/common/stockitem.cpp:202 msgid "Underline" msgstr "Souligner" #: ../src/richtext/richtextfontpage.cpp:341 ../src/osx/carbon/fontdlg.cpp:556 #: ../src/propgrid/advprops.cpp:655 msgid "Underlined" msgstr "Souligné" #: ../src/common/stockitem.cpp:203 ../src/stc/stc_i18n.cpp:15 msgid "Undo" msgstr "Annuler" #: ../src/common/stockitem.cpp:265 msgid "Undo last action" msgstr "Annuler la dernière action" #: ../src/common/cmdline.cpp:864 #, c-format msgid "Unexpected characters following option '%s'." msgstr "Caractères non attendus suivant l'option « %s »." #: ../src/unix/fswatcher_inotify.cpp:261 #, c-format msgid "Unexpected event for \"%s\": no matching watch descriptor." msgstr "" #: ../src/common/cmdline.cpp:1024 #, c-format msgid "Unexpected parameter '%s'" msgstr "Paramètre « %s » inattendu" #: ../include/wx/msw/private/fswatcher.h:148 msgid "Unexpectedly new I/O completion port was created" msgstr "" #: ../src/msw/fswatcher.cpp:70 #, fuzzy msgid "Ungraceful worker thread termination" msgstr "Impossible d'attendre la fin du processus" #: ../src/richtext/richtextsymboldlg.cpp:459 #: ../src/richtext/richtextsymboldlg.cpp:460 #: ../src/richtext/richtextsymboldlg.cpp:461 msgid "Unicode" msgstr "Unicode" #: ../src/common/fmapbase.cpp:185 ../src/common/fmapbase.cpp:191 msgid "Unicode 16 bit (UTF-16)" msgstr "Unicode 16 bit (UTF-16)" #: ../src/common/fmapbase.cpp:190 msgid "Unicode 16 bit Big Endian (UTF-16BE)" msgstr "Unicode 16 bit gros-boutiste (UTF-16BE)" #: ../src/common/fmapbase.cpp:186 msgid "Unicode 16 bit Little Endian (UTF-16LE)" msgstr "Unicode 16 bit petit-boutiste (UTF-16LE)" #: ../src/common/fmapbase.cpp:187 ../src/common/fmapbase.cpp:193 msgid "Unicode 32 bit (UTF-32)" msgstr "Unicode 32 bit (UTF-32)" #: ../src/common/fmapbase.cpp:192 msgid "Unicode 32 bit Big Endian (UTF-32BE)" msgstr "Unicode 32 bit gros-boutiste (UTF-32BE)" #: ../src/common/fmapbase.cpp:188 msgid "Unicode 32 bit Little Endian (UTF-32LE)" msgstr "Unicode 32 bit petit-boutiste (UTF-8)" #: ../src/common/fmapbase.cpp:182 msgid "Unicode 7 bit (UTF-7)" msgstr "Unicode 7 bit (UTF-7)" #: ../src/common/fmapbase.cpp:183 msgid "Unicode 8 bit (UTF-8)" msgstr "Unicode 8 bit (UTF-8)" #: ../src/common/stockitem.cpp:204 msgid "Unindent" msgstr "Désindenter" #: ../src/richtext/richtextborderspage.cpp:373 #: ../src/richtext/richtextborderspage.cpp:375 msgid "Units for the bottom border width." msgstr "Unités pour l'épaisseur du bord inférieur." #: ../src/richtext/richtextmarginspage.cpp:278 #: ../src/richtext/richtextmarginspage.cpp:280 msgid "Units for the bottom margin." msgstr "Unités pour la marge inférieure." #: ../src/richtext/richtextborderspage.cpp:517 #: ../src/richtext/richtextborderspage.cpp:519 msgid "Units for the bottom outline width." msgstr "Unités pour l'épaisseur du contour inférieur." #: ../src/richtext/richtextmarginspage.cpp:392 #: ../src/richtext/richtextmarginspage.cpp:394 msgid "Units for the bottom padding." msgstr "Unités pour l'espacement inférieur." #: ../src/richtext/richtextsizepage.cpp:664 #: ../src/richtext/richtextsizepage.cpp:666 msgid "Units for the bottom position." msgstr "Unités pour la position inférieure." #: ../src/richtext/richtextborderspage.cpp:283 #: ../src/richtext/richtextborderspage.cpp:285 msgid "Units for the left border width." msgstr "Unités pour l'épaisseur du bord gauche." #: ../src/richtext/richtextmarginspage.cpp:205 #: ../src/richtext/richtextmarginspage.cpp:207 msgid "Units for the left margin." msgstr "Unités pour la marge gauche." #: ../src/richtext/richtextborderspage.cpp:427 #: ../src/richtext/richtextborderspage.cpp:429 msgid "Units for the left outline width." msgstr "Unités pour l'épaisseur du contour gauche." #: ../src/richtext/richtextmarginspage.cpp:319 #: ../src/richtext/richtextmarginspage.cpp:321 msgid "Units for the left padding." msgstr "Unités pour l'espacement gauche." #: ../src/richtext/richtextsizepage.cpp:559 #: ../src/richtext/richtextsizepage.cpp:561 msgid "Units for the left position." msgstr "Unités pour la position gauche." #: ../src/richtext/richtextsizepage.cpp:485 #: ../src/richtext/richtextsizepage.cpp:487 msgid "Units for the maximum object height." msgstr "Unités pour la hauteur maximum de l'objet." #: ../src/richtext/richtextsizepage.cpp:458 #: ../src/richtext/richtextsizepage.cpp:460 msgid "Units for the maximum object width." msgstr "Unités pour la largeurmaximum de l'objet." #: ../src/richtext/richtextsizepage.cpp:431 #: ../src/richtext/richtextsizepage.cpp:433 msgid "Units for the minimum object height." msgstr "Unités pour la hauteur minimum de l'objet." #: ../src/richtext/richtextsizepage.cpp:404 #: ../src/richtext/richtextsizepage.cpp:406 msgid "Units for the minimum object width." msgstr "Unités pour la largeur minimum de l'objet." #: ../src/richtext/richtextsizepage.cpp:377 #: ../src/richtext/richtextsizepage.cpp:379 msgid "Units for the object height." msgstr "Unités pour la hauteur de l'objet." #: ../src/richtext/richtextsizepage.cpp:343 #: ../src/richtext/richtextsizepage.cpp:345 msgid "Units for the object width." msgstr "Unités pour la largeur de l'objet." #: ../src/richtext/richtextborderspage.cpp:313 #: ../src/richtext/richtextborderspage.cpp:315 msgid "Units for the right border width." msgstr "Unités pour l'épaisseur du bord droit." #: ../src/richtext/richtextmarginspage.cpp:230 #: ../src/richtext/richtextmarginspage.cpp:232 msgid "Units for the right margin." msgstr "Unités pour la marge droite." #: ../src/richtext/richtextborderspage.cpp:457 #: ../src/richtext/richtextborderspage.cpp:459 msgid "Units for the right outline width." msgstr "Unités pour l'épaisseur du contour droit." #: ../src/richtext/richtextmarginspage.cpp:344 #: ../src/richtext/richtextmarginspage.cpp:346 msgid "Units for the right padding." msgstr "Unités pour l'espacement droit." #: ../src/richtext/richtextsizepage.cpp:629 #: ../src/richtext/richtextsizepage.cpp:631 msgid "Units for the right position." msgstr "Unités pour la position droite." #: ../src/richtext/richtextborderspage.cpp:343 #: ../src/richtext/richtextborderspage.cpp:345 msgid "Units for the top border width." msgstr "Unités pour l'épaisseur du bord supérieur." #: ../src/richtext/richtextmarginspage.cpp:253 #: ../src/richtext/richtextmarginspage.cpp:255 msgid "Units for the top margin." msgstr "Unités pour la marge supérieure." #: ../src/richtext/richtextborderspage.cpp:487 #: ../src/richtext/richtextborderspage.cpp:489 msgid "Units for the top outline width." msgstr "Unités pour l'épaisseur du contour supérieur." #: ../src/richtext/richtextmarginspage.cpp:367 #: ../src/richtext/richtextmarginspage.cpp:369 msgid "Units for the top padding." msgstr "Unités pour l'espacement supérieur." #: ../src/richtext/richtextsizepage.cpp:594 #: ../src/richtext/richtextsizepage.cpp:596 msgid "Units for the top position." msgstr "Unités pour la position supérieure." #: ../src/generic/progdlgg.cpp:382 ../src/generic/progdlgg.cpp:655 msgid "Unknown" msgstr "Inconnu" #: ../src/msw/dde.cpp:1177 #, c-format msgid "Unknown DDE error %08x" msgstr "Erreur DDE inconnue : %08x" #: ../src/common/xtistrm.cpp:414 msgid "Unknown Object passed to GetObjectClassInfo" msgstr "Objet inconnu indiqué à GetObjectClassInfo" #: ../src/common/imagpng.cpp:614 #, c-format msgid "Unknown PNG resolution unit %d" msgstr "Unité %d de résolution PNG inconnue" #: ../src/common/xtixml.cpp:327 #, c-format msgid "Unknown Property %s" msgstr "Propriété « %s » inconnue" #: ../src/common/imagtiff.cpp:532 #, c-format msgid "Unknown TIFF resolution unit %d ignored" msgstr "Résolution TIFF inconnue Unité %d ignorée" #: ../src/osx/carbon/dataview.cpp:1978 msgid "Unknown data format" msgstr "Format de donnée inconnu" #: ../src/unix/dlunix.cpp:325 msgid "Unknown dynamic library error" msgstr "Erreur de bibliothèque dynamique inconnue" #: ../src/common/fmapbase.cpp:810 #, c-format msgid "Unknown encoding (%d)" msgstr "Codage inconnu (%d)" #: ../src/msw/ole/automtn.cpp:677 #, c-format msgid "Unknown error %08x" msgstr "Erreur inconnue %08x" #: ../src/msw/ole/automtn.cpp:636 msgid "Unknown exception" msgstr "Exception inconnue" #: ../src/common/image.cpp:2701 msgid "Unknown image data format." msgstr "Format de données d'image inconnu." #: ../src/common/cmdline.cpp:749 #, c-format msgid "Unknown long option '%s'" msgstr "Option longue « %s » inconnue" #: ../src/msw/ole/automtn.cpp:620 msgid "Unknown name or named argument." msgstr "Nom ou argument nommé inconnu." #: ../src/common/cmdline.cpp:764 ../src/common/cmdline.cpp:786 #, c-format msgid "Unknown option '%s'" msgstr "Option « %s » inconnue" #: ../src/common/mimecmn.cpp:230 #, c-format msgid "Unmatched '{' in an entry for mime type %s." msgstr "Symbole « { » non assorti dans une entrée pour le type mime %s." #: ../src/common/cmdproc.cpp:262 ../src/common/cmdproc.cpp:288 #: ../src/common/cmdproc.cpp:308 msgid "Unnamed command" msgstr "Commande sans nom" #: ../src/propgrid/propgrid.cpp:398 msgid "Unspecified" msgstr "Non-spécifié" #: ../src/msw/clipbrd.cpp:271 ../src/msw/clipbrd.cpp:439 msgid "Unsupported clipboard format." msgstr "Format de presse-papiers non géré." #: ../src/common/appcmn.cpp:249 #, c-format msgid "Unsupported theme '%s'." msgstr "Thème « %s » non géré." #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:205 msgid "Up" msgstr "Haut" #: ../src/richtext/richtextliststylepage.cpp:483 #: ../src/richtext/richtextbulletspage.cpp:288 msgid "Upper case letters" msgstr "Lettres majuscules" #: ../src/richtext/richtextliststylepage.cpp:485 #: ../src/richtext/richtextbulletspage.cpp:290 msgid "Upper case roman numerals" msgstr "Chiffres romains majuscules" #: ../src/common/cmdline.cpp:1155 #, c-format msgid "Usage: %s" msgstr "Utilisation : %s" #: ../src/richtext/richtextindentspage.cpp:169 #: ../src/richtext/richtextindentspage.cpp:171 #: ../src/richtext/richtextliststylepage.cpp:358 #: ../src/richtext/richtextliststylepage.cpp:360 msgid "Use the current alignment setting." msgstr "Utiliser les réglages courants d'alignement." #: ../src/osx/carbon/dataview.cpp:2658 ../src/osx/carbon/dataview.cpp:2723 msgid "Valid pointer to native data view control does not exist" msgstr "" #: ../src/common/valtext.cpp:174 msgid "Validation conflict" msgstr "Conflit de validation" #: ../src/propgrid/manager.cpp:238 msgid "Value" msgstr "Valeur" #: ../src/propgrid/props.cpp:384 #, c-format msgid "Value must be %s or higher." msgstr "La valeur doit être %s ou plus." #: ../src/propgrid/props.cpp:411 #, c-format msgid "Value must be %s or less." msgstr "La valeur doit être %s ou moins." #: ../src/propgrid/props.cpp:388 ../src/propgrid/props.cpp:415 #, c-format msgid "Value must be between %s and %s." msgstr "La valeur doit être entre %s et %s." #: ../src/generic/aboutdlgg.cpp:128 msgid "Version " msgstr "Version " #: ../src/richtext/richtextsizepage.cpp:291 #: ../src/richtext/richtextsizepage.cpp:293 msgid "Vertical alignment." msgstr "Alignement vertical." #: ../src/generic/filedlgg.cpp:216 msgid "View files as a detailed view" msgstr "Voir les fichiers - vue détaillée" #: ../src/generic/filedlgg.cpp:214 msgid "View files as a list view" msgstr "Voir les fichiers - liste" #: ../src/common/docview.cpp:1952 msgid "Views" msgstr "Vues" #: ../src/common/accelcmn.cpp:108 msgid "WINDOWS_LEFT" msgstr "WINDOWS_GAUCHE" #: ../src/common/accelcmn.cpp:110 msgid "WINDOWS_MENU" msgstr "WINDOWS_MENU" #: ../src/common/accelcmn.cpp:109 msgid "WINDOWS_RIGHT" msgstr "WINDOWS_DROITE" #: ../src/unix/epolldispatcher.cpp:213 #, fuzzy, c-format msgid "Waiting for IO on epoll descriptor %d failed" msgstr "Échec de l'attente de fin du sous-processus" #: ../src/common/log.cpp:227 msgid "Warning: " msgstr "Avertissement :" #: ../src/propgrid/advprops.cpp:651 msgid "Weight" msgstr "Poids" #: ../src/common/fmapbase.cpp:148 msgid "Western European (ISO-8859-1)" msgstr "Europe de l'Ouest (ISO-8859-1)" #: ../src/common/fmapbase.cpp:162 msgid "Western European with Euro (ISO-8859-15)" msgstr "Europe de l'Ouest avec l'Euro (ISO-8859-15)" #: ../src/generic/fontdlgg.cpp:446 ../src/generic/fontdlgg.cpp:448 msgid "Whether the font is underlined." msgstr "Si la police est soulignée." #: ../src/generic/fdrepdlg.cpp:144 msgid "Whole word" msgstr "Mot complet" #: ../src/html/helpwnd.cpp:547 msgid "Whole words only" msgstr "Mots complets seulement" #: ../src/univ/themes/win32.cpp:1102 msgid "Win32 theme" msgstr "Thème Win32" #: ../src/msw/utils.cpp:1220 msgid "Win32s on Windows 3.1" msgstr "Win32s sur Windows 3.1" #: ../src/msw/utils.cpp:1270 msgid "Windows 2000" msgstr "Windows 2000" #: ../src/msw/utils.cpp:1302 msgid "Windows 7" msgstr "Windows 7" #: ../src/msw/utils.cpp:1234 msgid "Windows 95" msgstr "Windows 95" #: ../src/msw/utils.cpp:1230 msgid "Windows 95 OSR2" msgstr "Windows 95 OSR2" #: ../src/msw/utils.cpp:1245 msgid "Windows 98" msgstr "Windows 98" #: ../src/msw/utils.cpp:1241 msgid "Windows 98 SE" msgstr "Windows 98 SE" #: ../src/msw/utils.cpp:1252 #, c-format msgid "Windows 9x (%d.%d)" msgstr "Windows 9x (%d.%d)" #: ../src/common/fmapbase.cpp:177 msgid "Windows Arabic (CP 1256)" msgstr "Arabe limité à Windows (CP 1256)" #: ../src/common/fmapbase.cpp:178 msgid "Windows Baltic (CP 1257)" msgstr "Balte limité à Windows (CP 1257)" #: ../src/msw/utils.cpp:1214 #, c-format msgid "Windows CE (%d.%d)" msgstr "Windows CE (%d.%d)" #: ../src/common/fmapbase.cpp:171 msgid "Windows Central European (CP 1250)" msgstr "Européen central limité à Windows (CP 1255)" #: ../src/common/fmapbase.cpp:168 msgid "Windows Chinese Simplified (CP 936) or GB-2312" msgstr "Chinois Simplifié Windows (CP 936) ou GB-2312" #: ../src/common/fmapbase.cpp:170 msgid "Windows Chinese Traditional (CP 950) or Big-5" msgstr "Chinois Traditionnel Windows (CP 950) ou Big-5" #: ../src/common/fmapbase.cpp:172 msgid "Windows Cyrillic (CP 1251)" msgstr "Cyrillique limité à Windows (CP 1251)" #: ../src/common/fmapbase.cpp:174 msgid "Windows Greek (CP 1253)" msgstr "Grec limité à Windows (CP 1253)" #: ../src/common/fmapbase.cpp:176 msgid "Windows Hebrew (CP 1255)" msgstr "Hébreu limité à Windows (CP 1255)" #: ../src/common/fmapbase.cpp:167 msgid "Windows Japanese (CP 932) or Shift-JIS" msgstr "Japonais Windows (CP 932) ou Shift-JIS" #: ../src/common/fmapbase.cpp:180 msgid "Windows Johab (CP 1361)" msgstr "Johab Windows (CP 1361)" #: ../src/common/fmapbase.cpp:169 msgid "Windows Korean (CP 949)" msgstr "Coréen limité à Windows (CP 949)" #: ../src/msw/utils.cpp:1249 msgid "Windows ME" msgstr "Windows ME" #: ../src/msw/utils.cpp:1310 #, c-format msgid "Windows NT %lu.%lu" msgstr "Windows NT %lu.%lu" #: ../src/msw/utils.cpp:1279 msgid "Windows Server 2003" msgstr "Windows Server 2003" #: ../src/msw/utils.cpp:1295 msgid "Windows Server 2008" msgstr "Windows Server 2008" #: ../src/msw/utils.cpp:1301 msgid "Windows Server 2008 R2" msgstr "Windows Server 2008 R2" #: ../src/common/fmapbase.cpp:166 msgid "Windows Thai (CP 874)" msgstr "Windows Thai (CP 874)" #: ../src/common/fmapbase.cpp:175 msgid "Windows Turkish (CP 1254)" msgstr "Turc limité à Windows (CP 1254)" #: ../src/common/fmapbase.cpp:179 msgid "Windows Vietnamese (CP 1258)" msgstr "Vietnamien Windows (CP 1258)" #: ../src/msw/utils.cpp:1296 msgid "Windows Vista" msgstr "Windows Vista" #: ../src/common/fmapbase.cpp:173 msgid "Windows Western European (CP 1252)" msgstr "Européen occidental limité à Windows (CP 1252 )" #: ../src/msw/utils.cpp:1285 msgid "Windows XP" msgstr "Windows XP" #: ../src/common/fmapbase.cpp:181 msgid "Windows/DOS OEM (CP 437)" msgstr "Windows/DOS OEM (CP 437)" #: ../src/common/fmapbase.cpp:165 msgid "Windows/DOS OEM Cyrillic (CP 866)" msgstr "Cyrillique OEM Windows/DOS (CP 866)" #: ../src/common/ffile.cpp:148 #, c-format msgid "Write error on file '%s'" msgstr "Erreur d'écriture dans le fichier « %s »" #: ../src/xml/xml.cpp:844 #, c-format msgid "XML parsing error: '%s' at line %d" msgstr "Erreur d'analyse XML : « %s » à la ligne %d" #: ../src/common/xpmdecod.cpp:796 msgid "XPM: Malformed pixel data!" msgstr "XPM : données de pixel malformées." #: ../src/common/xpmdecod.cpp:705 #, c-format msgid "XPM: incorrect colour description in line %d" msgstr "XPM : définition de couleur incorrecte à la ligne %d" #: ../src/common/xpmdecod.cpp:680 msgid "XPM: incorrect header format!" msgstr "XPM: format de l'entête incorrecte !" #: ../src/common/xpmdecod.cpp:716 ../src/common/xpmdecod.cpp:725 #, c-format msgid "XPM: malformed colour definition '%s' at line %d!" msgstr "XPM : définition de couleur « %s » malformée à la ligne %d !" #: ../src/common/xpmdecod.cpp:755 msgid "XPM: no colors left to use for mask!" msgstr "XPM : pas de couleur restant à utiliser comme masque !" #: ../src/common/xpmdecod.cpp:782 #, c-format msgid "XPM: truncated image data at line %d!" msgstr "XPM: les données de l'image sont tronquées à la ligne %d !" #: ../include/wx/msgdlg.h:271 ../src/common/stockitem.cpp:206 #: ../src/motif/msgdlg.cpp:196 msgid "Yes" msgstr "Oui" #: ../src/osx/carbon/overlay.cpp:155 msgid "You cannot Clear an overlay that is not inited" msgstr "" "Vous ne pouvez pas effectuer un Clear sur une zone de recouvrement avant " "qu'elle ne soit initialisée." #: ../src/osx/carbon/overlay.cpp:107 ../src/dfb/overlay.cpp:61 msgid "You cannot Init an overlay twice" msgstr "Vous ne pouvez pas initialiser deux fois un overlay" #: ../src/generic/dirdlgg.cpp:316 msgid "You cannot add a new directory to this section." msgstr "Vous ne pouvez pas ajouter de nouveau répertoire à cette section." #: ../src/propgrid/propgrid.cpp:3258 msgid "You have entered invalid value. Press ESC to cancel editing." msgstr "" "Vous avez entrée une valeur invalide. Pressez ESC pour annuler l'édition." #: ../src/common/stockitem.cpp:209 msgid "Zoom &In" msgstr "Zoom &avant" #: ../src/common/stockitem.cpp:210 msgid "Zoom &Out" msgstr "Zoom a&rrière" #: ../src/common/stockitem.cpp:209 ../src/common/prntbase.cpp:1564 msgid "Zoom In" msgstr "Zoom Avant" #: ../src/common/stockitem.cpp:210 ../src/common/prntbase.cpp:1550 msgid "Zoom Out" msgstr "Zoom Arrière" #: ../src/common/stockitem.cpp:208 msgid "Zoom to &Fit" msgstr "Zoom a&justé" #: ../src/common/stockitem.cpp:208 msgid "Zoom to Fit" msgstr "Zoom Ajusté" #: ../src/msw/dde.cpp:1144 msgid "a DDEML application has created a prolonged race condition." msgstr "une application DDEML a créé une situation de concurrence prolongée." #: ../src/msw/dde.cpp:1132 msgid "" "a DDEML function was called without first calling the DdeInitialize " "function,\n" "or an invalid instance identifier\n" "was passed to a DDEML function." msgstr "" "une fonction DDEML a été appelée sans appel préalable à la fonction\n" "DdeInitialize, ou un identifiant non valable a été fourni à la fonction\n" "DDEML." #: ../src/msw/dde.cpp:1150 msgid "a client's attempt to establish a conversation has failed." msgstr "une tentative d'un client pour établir une conversation a échoué." #: ../src/msw/dde.cpp:1147 msgid "a memory allocation failed." msgstr "une allocation de mémoire a échoué." #: ../src/msw/dde.cpp:1141 msgid "a parameter failed to be validated by the DDEML." msgstr "un paramètre n'a pas pu être validé par la DDEML." #: ../src/msw/dde.cpp:1123 msgid "a request for a synchronous advise transaction has timed out." msgstr "une demande de transaction synchrone d'instructions a expiré." #: ../src/msw/dde.cpp:1129 msgid "a request for a synchronous data transaction has timed out." msgstr "une demande de transaction synchrone de données a expiré." #: ../src/msw/dde.cpp:1138 msgid "a request for a synchronous execute transaction has timed out." msgstr "une demande de transaction synchrone d'exécutions a expiré." #: ../src/msw/dde.cpp:1156 msgid "a request for a synchronous poke transaction has timed out." msgstr "une demande de transaction synchrone de stockage a expiré." #: ../src/msw/dde.cpp:1171 msgid "a request to end an advise transaction has timed out." msgstr "une demande pour terminer une transaction d'instructions a expiré." #: ../src/msw/dde.cpp:1165 msgid "" "a server-side transaction was attempted on a conversation\n" "that was terminated by the client, or the server\n" "terminated before completing a transaction." msgstr "" "une transaction a été tentée du côté serveur lors d'une conversation déjà\n" "terminée par le client, ou le serveur a achevé la transaction avant la fin." #: ../src/msw/dde.cpp:1153 msgid "a transaction failed." msgstr "une transaction a échoué." #: ../src/common/accelcmn.cpp:184 msgid "alt" msgstr "alt" #: ../src/msw/dde.cpp:1135 msgid "" "an application initialized as APPCLASS_MONITOR has\n" "attempted to perform a DDE transaction,\n" "or an application initialized as APPCMD_CLIENTONLY has \n" "attempted to perform server transactions." msgstr "" "une application initialisée en tant que APPCLASS_MONITOR a tenté\n" "d'effectuer une transaction DDE, ou une application initialisée en tant\n" "que APPCMD_CLIENTONLY a tenté d'effectuer des transactions serveur." #: ../src/msw/dde.cpp:1159 msgid "an internal call to the PostMessage function has failed. " msgstr "un appel interne à la fonction PostMessage a échoué." #: ../src/msw/dde.cpp:1168 msgid "an internal error has occurred in the DDEML." msgstr "une erreur interne s'est produite dans le DDEML." #: ../src/msw/dde.cpp:1174 msgid "" "an invalid transaction identifier was passed to a DDEML function.\n" "Once the application has returned from an XTYP_XACT_COMPLETE callback,\n" "the transaction identifier for that callback is no longer valid." msgstr "" "un identifiant de transaction non valable a été fourni à la fonction DDEML.\n" "Quand l'application sort d'un rappel XTYP_XACT_COMPLETE, l'identifiant de\n" "transaction pour ce rappel n'est plus valable." #: ../src/common/zipstrm.cpp:1272 msgid "assuming this is a multi-part zip concatenated" msgstr "suppose qu'il s'agit d'un zip recombiné" #: ../src/common/fileconf.cpp:1882 #, c-format msgid "attempt to change immutable key '%s' ignored." msgstr "tentative de modifier la touche non configurable « %s » ignorée." #: ../src/html/chm.cpp:329 msgid "bad arguments to library function" msgstr "mauvais paramètres à la fonction de bibliothèque" #: ../src/html/chm.cpp:341 msgid "bad signature" msgstr "mauvaise signature" #: ../src/common/zipstrm.cpp:1715 msgid "bad zipfile offset to entry" msgstr "Mauvais décalage de fichier zip dans l'entrée" #: ../src/common/ftp.cpp:405 msgid "binary" msgstr "binaire" #: ../src/common/fontcmn.cpp:978 msgid "bold" msgstr "gras" #: ../src/os2/iniconf.cpp:463 msgid "buffer is too small for Windows directory." msgstr "Le tampon est trop petit pour le dossier Windows." #: ../src/msw/utils.cpp:1316 #, fuzzy, c-format msgid "build %lu" msgstr "Windows XP (construction %lu" #: ../src/common/ffile.cpp:79 #, c-format msgid "can't close file '%s'" msgstr "impossible de fermer le fichier « %s »" #: ../src/common/file.cpp:278 #, c-format msgid "can't close file descriptor %d" msgstr "impossible de fermer le descripteur de fichier %d" #: ../src/common/file.cpp:604 #, c-format msgid "can't commit changes to file '%s'" msgstr "impossible d'appliquer les changements au fichier « %s »" #: ../src/common/file.cpp:212 #, c-format msgid "can't create file '%s'" msgstr "impossible de créer le fichier « %s »" #: ../src/common/fileconf.cpp:1176 #, c-format msgid "can't delete user configuration file '%s'" msgstr "impossible d'effacer le fichier de configuration utilisateur « %s »" #: ../src/common/file.cpp:511 #, c-format msgid "can't determine if the end of file is reached on descriptor %d" msgstr "" "impossible de déterminer si la fin du fichier est atteinte dans le " "descripteur %d" #: ../src/msdos/utilsdos.cpp:310 ../src/msdos/utilsdos.cpp:475 #, c-format msgid "can't execute '%s'" msgstr "Échec de l'exécution de « %s »" #: ../src/common/zipstrm.cpp:1490 msgid "can't find central directory in zip" msgstr "impossible de trouver le répertoire principale dans le zip" #: ../src/common/file.cpp:481 #, c-format msgid "can't find length of file on file descriptor %d" msgstr "" "impossible de trouver la taille du fichier dans le descripteur de fichier %d" #: ../src/msw/utils.cpp:373 msgid "can't find user's HOME, using current directory." msgstr "" "impossible de trouver le répertoire HOME de l'utilisateur - utilisation du " "répertoire courant." #: ../src/common/file.cpp:382 #, c-format msgid "can't flush file descriptor %d" msgstr "" "impossible de forcer l'écriture sur disque du descripteur de fichier %d" #: ../src/common/file.cpp:438 ../src/msw/wince/filefnwce.cpp:204 #, c-format msgid "can't get seek position on file descriptor %d" msgstr "" "impossible de trouver la position de recherche sur le descripteur de fichier " "%d" #: ../src/common/fontmap.cpp:325 msgid "can't load any font, aborting" msgstr "impossible de charger une police de caractères - abandon" #: ../src/common/file.cpp:264 ../src/common/ffile.cpp:63 #, c-format msgid "can't open file '%s'" msgstr "impossible d'ouvrir le fichier « %s »" #: ../src/common/fileconf.cpp:351 #, c-format msgid "can't open global configuration file '%s'." msgstr "impossible d'ouvrir le fichier de configuration global « %s »." #: ../src/common/fileconf.cpp:367 #, c-format msgid "can't open user configuration file '%s'." msgstr "impossible d'ouvrir le fichier de configuration utilisateur « %s »." #: ../src/common/fileconf.cpp:1017 msgid "can't open user configuration file." msgstr "impossible d'ouvrir le fichier de configuration utilisateur." #: ../src/common/zipstrm.cpp:527 msgid "can't re-initialize zlib deflate stream" msgstr "impossible de réinitialiser le flux de déchargement de zlib" #: ../src/common/zipstrm.cpp:552 msgid "can't re-initialize zlib inflate stream" msgstr "impossible de réinitialiser le flux de chargement de zlib" #: ../src/common/file.cpp:334 #, c-format msgid "can't read from file descriptor %d" msgstr "impossible de lire le descripteur de fichier %d" #: ../src/common/file.cpp:599 #, c-format msgid "can't remove file '%s'" msgstr "impossible de supprimer le fichier « %s »" #: ../src/common/file.cpp:616 #, c-format msgid "can't remove temporary file '%s'" msgstr "impossible de supprimer le fichier temporaire « %s »" #: ../src/common/file.cpp:424 ../src/msw/wince/filefnwce.cpp:190 #, c-format msgid "can't seek on file descriptor %d" msgstr "recherche impossible sur le descripteur de fichier %d" #: ../src/common/textfile.cpp:299 #, c-format msgid "can't write buffer '%s' to disk." msgstr "impossible d'écrire le tampon « %s » sur le disque." #: ../src/common/file.cpp:350 #, c-format msgid "can't write to file descriptor %d" msgstr "impossible d'écrire dans le descripteur de fichier %d" #: ../src/common/fileconf.cpp:1031 msgid "can't write user configuration file." msgstr "impossible d'écrire le fichier de configuration utilisateur." #: ../src/html/chm.cpp:345 msgid "checksum error" msgstr "erreur de la somme de contrôle" #: ../src/common/tarstrm.cpp:820 msgid "checksum failure reading tar header block" msgstr "" "Erreur de la somme de contrôle lors de la lecture du bloc d'entête de tar" #: ../src/richtext/richtextborderspage.cpp:280 #: ../src/richtext/richtextborderspage.cpp:310 #: ../src/richtext/richtextborderspage.cpp:340 #: ../src/richtext/richtextborderspage.cpp:370 #: ../src/richtext/richtextborderspage.cpp:424 #: ../src/richtext/richtextborderspage.cpp:454 #: ../src/richtext/richtextborderspage.cpp:484 #: ../src/richtext/richtextborderspage.cpp:514 #: ../src/richtext/richtextmarginspage.cpp:202 #: ../src/richtext/richtextmarginspage.cpp:227 #: ../src/richtext/richtextmarginspage.cpp:250 #: ../src/richtext/richtextmarginspage.cpp:275 #: ../src/richtext/richtextmarginspage.cpp:316 #: ../src/richtext/richtextmarginspage.cpp:341 #: ../src/richtext/richtextmarginspage.cpp:364 #: ../src/richtext/richtextmarginspage.cpp:389 #: ../src/richtext/richtextsizepage.cpp:339 #: ../src/richtext/richtextsizepage.cpp:373 #: ../src/richtext/richtextsizepage.cpp:400 #: ../src/richtext/richtextsizepage.cpp:427 #: ../src/richtext/richtextsizepage.cpp:454 #: ../src/richtext/richtextsizepage.cpp:481 #: ../src/richtext/richtextsizepage.cpp:555 #: ../src/richtext/richtextsizepage.cpp:590 #: ../src/richtext/richtextsizepage.cpp:625 #: ../src/richtext/richtextsizepage.cpp:660 msgid "cm" msgstr "cm" #: ../src/html/chm.cpp:347 msgid "compression error" msgstr "erreur de compression" #: ../src/common/regex.cpp:239 msgid "conversion to 8-bit encoding failed" msgstr "échec de la conversion dans un codage 8 bits" #: ../src/common/accelcmn.cpp:182 msgid "ctrl" msgstr "ctrl" #: ../src/common/cmdline.cpp:1323 msgid "date" msgstr "date" #: ../src/html/chm.cpp:349 msgid "decompression error" msgstr "erreur de décompression" #: ../src/richtext/richtextstyles.cpp:780 ../src/common/fmapbase.cpp:820 msgid "default" msgstr "défaut" #: ../src/common/cmdline.cpp:1319 msgid "double" msgstr "double" #: ../src/common/debugrpt.cpp:543 msgid "dump of the process state (binary)" msgstr "Décharger l'état du processus (binaire)" #: ../src/common/datetimefmt.cpp:1936 msgid "eighteenth" msgstr "dix-huitième" #: ../src/common/datetimefmt.cpp:1926 msgid "eighth" msgstr "huitième" #: ../src/common/datetimefmt.cpp:1929 msgid "eleventh" msgstr "onzième" #: ../src/common/fileconf.cpp:1868 #, c-format msgid "entry '%s' appears more than once in group '%s'" msgstr "l'entrée « %s » apparaît plus d'une fois dans le groupe « %s »" #: ../src/html/chm.cpp:343 msgid "error in data format" msgstr "erreur dans le format des données" #: ../src/msdos/utilsdos.cpp:413 #, c-format msgid "error opening '%s'" msgstr "erreur à l'ouverture du fichier « %s »" #: ../src/html/chm.cpp:331 msgid "error opening file" msgstr "erreur à l'ouverture du fichier" #: ../src/common/zipstrm.cpp:1576 msgid "error reading zip central directory" msgstr "erreur à la lecture du répertoire principale du zip" #: ../src/common/zipstrm.cpp:1667 msgid "error reading zip local header" msgstr "erreur à la lecture de l'en-tête local du zip" #: ../src/common/zipstrm.cpp:2396 #, c-format msgid "error writing zip entry '%s': bad crc or length" msgstr "erreur à l'écriture de l'entrée zip « %s » : mauvaise crc ou longueur" #: ../src/common/ffile.cpp:170 #, c-format msgid "failed to flush the file '%s'" msgstr "échec de la mise à jour du fichier « %s »" #: ../src/common/datetimefmt.cpp:1933 msgid "fifteenth" msgstr "quinzième" #: ../src/common/datetimefmt.cpp:1923 msgid "fifth" msgstr "cinquième" #: ../src/common/fileconf.cpp:610 #, c-format msgid "file '%s', line %d: '%s' ignored after group header." msgstr "" "fichier « %s », ligne %d : « %s » est ignoré après l'en-tête de groupe." #: ../src/common/fileconf.cpp:639 #, c-format msgid "file '%s', line %d: '=' expected." msgstr "fichier « %s », ligne %d : symbole « = » attendu." #: ../src/common/fileconf.cpp:662 #, c-format msgid "file '%s', line %d: key '%s' was first found at line %d." msgstr "" "fichier « %s », ligne %d : première occurrence de la clé %s à la ligne %d." #: ../src/common/fileconf.cpp:652 #, c-format msgid "file '%s', line %d: value for immutable key '%s' ignored." msgstr "" "fichier « %s », ligne %d : valeur pour la touche non configurable « %s » " "ignorée." #: ../src/common/fileconf.cpp:574 #, c-format msgid "file '%s': unexpected character %c at line %d." msgstr "fichier %s : caractère %c inattendu a la ligne %d." #: ../src/richtext/richtextbuffer.cpp:8358 msgid "files" msgstr "Fichiers" #: ../src/common/datetimefmt.cpp:1919 msgid "first" msgstr "premier" #: ../src/html/helpwnd.cpp:1265 msgid "font size" msgstr "taille de police" #: ../src/common/datetimefmt.cpp:1932 msgid "fourteenth" msgstr "quatorzième" #: ../src/common/datetimefmt.cpp:1922 msgid "fourth" msgstr "quatrième" #: ../src/common/appbase.cpp:695 msgid "generate verbose log messages" msgstr "créer des messages de journalisation verbeux" #: ../src/richtext/richtextbuffer.cpp:12212 #: ../src/richtext/richtextbuffer.cpp:12322 msgid "image" msgstr "image" #: ../src/common/tarstrm.cpp:796 msgid "incomplete header block in tar" msgstr "le bloc d'entête de tar est incomplet" #: ../src/common/xtixml.cpp:489 msgid "incorrect event handler string, missing dot" msgstr "chaîne de gestion des événements non valable, point manquant" #: ../src/common/tarstrm.cpp:1381 msgid "incorrect size given for tar entry" msgstr "la taille fournie pour l'entrée tar est incorrecte" #: ../src/common/tarstrm.cpp:993 msgid "invalid data in extended tar header" msgstr "donnée invalide dans l'entête étendu de tar" #: ../src/generic/logg.cpp:1050 msgid "invalid message box return value" msgstr "la boîte de message a renvoyé une valeur non valable" #: ../src/common/zipstrm.cpp:1445 msgid "invalid zip file" msgstr "fichier zip non valable" #: ../src/common/fontcmn.cpp:983 msgid "italic" msgstr "italique" #: ../src/common/fontcmn.cpp:973 msgid "light" msgstr "léger" #: ../src/common/intl.cpp:293 #, c-format msgid "locale '%s' cannot be set." msgstr "la locale « %s » ne peut pas être spécifiée." #: ../src/common/datetimefmt.cpp:2092 msgid "midnight" msgstr "minuit" #: ../src/common/datetimefmt.cpp:1937 msgid "nineteenth" msgstr "dix-neuvième" #: ../src/common/datetimefmt.cpp:1927 msgid "ninth" msgstr "neuvième" #: ../src/msw/dde.cpp:1119 msgid "no DDE error." msgstr "erreur - pas de DDE." #: ../src/html/chm.cpp:327 msgid "no error" msgstr "aucune erreur" #: ../src/dfb/fontmgr.cpp:174 #, c-format msgid "no fonts found in %s, using builtin font" msgstr "" #: ../src/html/helpdata.cpp:655 msgid "noname" msgstr "pas de nom" #: ../src/common/datetimefmt.cpp:2091 msgid "noon" msgstr "midi" #: ../src/richtext/richtextstyles.cpp:779 msgid "normal" msgstr "normal" #: ../src/gtk/print.cpp:1218 ../src/gtk/print.cpp:1323 msgid "not implemented" msgstr "non implémenté" #: ../src/common/cmdline.cpp:1315 msgid "num" msgstr "num" #: ../src/common/xtixml.cpp:259 msgid "objects cannot have XML Text Nodes" msgstr "les objets ne peuvent pas avoir de noeuds texte XML" #: ../src/html/chm.cpp:339 msgid "out of memory" msgstr "capacité mémoire dépassée" #: ../src/richtext/richtextsizepage.cpp:340 #: ../src/richtext/richtextsizepage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:401 #: ../src/richtext/richtextsizepage.cpp:428 #: ../src/richtext/richtextsizepage.cpp:455 #: ../src/richtext/richtextsizepage.cpp:482 #: ../src/richtext/richtextsizepage.cpp:556 #: ../src/richtext/richtextsizepage.cpp:591 #: ../src/richtext/richtextsizepage.cpp:626 #: ../src/richtext/richtextsizepage.cpp:661 msgid "percent" msgstr "pourcent" #: ../src/common/debugrpt.cpp:519 msgid "process context description" msgstr "description du contexte du processus" #: ../src/richtext/richtextfontpage.cpp:186 #: ../src/richtext/richtextfontpage.cpp:189 msgid "pt" msgstr "pt" #: ../src/richtext/richtextfontpage.cpp:187 #: ../src/richtext/richtextborderspage.cpp:279 #: ../src/richtext/richtextborderspage.cpp:281 #: ../src/richtext/richtextborderspage.cpp:282 #: ../src/richtext/richtextborderspage.cpp:309 #: ../src/richtext/richtextborderspage.cpp:311 #: ../src/richtext/richtextborderspage.cpp:312 #: ../src/richtext/richtextborderspage.cpp:339 #: ../src/richtext/richtextborderspage.cpp:341 #: ../src/richtext/richtextborderspage.cpp:342 #: ../src/richtext/richtextborderspage.cpp:369 #: ../src/richtext/richtextborderspage.cpp:371 #: ../src/richtext/richtextborderspage.cpp:372 #: ../src/richtext/richtextborderspage.cpp:423 #: ../src/richtext/richtextborderspage.cpp:425 #: ../src/richtext/richtextborderspage.cpp:426 #: ../src/richtext/richtextborderspage.cpp:453 #: ../src/richtext/richtextborderspage.cpp:455 #: ../src/richtext/richtextborderspage.cpp:456 #: ../src/richtext/richtextborderspage.cpp:483 #: ../src/richtext/richtextborderspage.cpp:485 #: ../src/richtext/richtextborderspage.cpp:486 #: ../src/richtext/richtextborderspage.cpp:513 #: ../src/richtext/richtextborderspage.cpp:515 #: ../src/richtext/richtextborderspage.cpp:516 #: ../src/richtext/richtextmarginspage.cpp:201 #: ../src/richtext/richtextmarginspage.cpp:203 #: ../src/richtext/richtextmarginspage.cpp:204 #: ../src/richtext/richtextmarginspage.cpp:226 #: ../src/richtext/richtextmarginspage.cpp:228 #: ../src/richtext/richtextmarginspage.cpp:229 #: ../src/richtext/richtextmarginspage.cpp:249 #: ../src/richtext/richtextmarginspage.cpp:251 #: ../src/richtext/richtextmarginspage.cpp:252 #: ../src/richtext/richtextmarginspage.cpp:274 #: ../src/richtext/richtextmarginspage.cpp:276 #: ../src/richtext/richtextmarginspage.cpp:277 #: ../src/richtext/richtextmarginspage.cpp:315 #: ../src/richtext/richtextmarginspage.cpp:317 #: ../src/richtext/richtextmarginspage.cpp:318 #: ../src/richtext/richtextmarginspage.cpp:340 #: ../src/richtext/richtextmarginspage.cpp:342 #: ../src/richtext/richtextmarginspage.cpp:343 #: ../src/richtext/richtextmarginspage.cpp:363 #: ../src/richtext/richtextmarginspage.cpp:365 #: ../src/richtext/richtextmarginspage.cpp:366 #: ../src/richtext/richtextmarginspage.cpp:388 #: ../src/richtext/richtextmarginspage.cpp:390 #: ../src/richtext/richtextmarginspage.cpp:391 #: ../src/richtext/richtextsizepage.cpp:338 #: ../src/richtext/richtextsizepage.cpp:341 #: ../src/richtext/richtextsizepage.cpp:342 #: ../src/richtext/richtextsizepage.cpp:372 #: ../src/richtext/richtextsizepage.cpp:375 #: ../src/richtext/richtextsizepage.cpp:376 #: ../src/richtext/richtextsizepage.cpp:399 #: ../src/richtext/richtextsizepage.cpp:402 #: ../src/richtext/richtextsizepage.cpp:403 #: ../src/richtext/richtextsizepage.cpp:426 #: ../src/richtext/richtextsizepage.cpp:429 #: ../src/richtext/richtextsizepage.cpp:430 #: ../src/richtext/richtextsizepage.cpp:453 #: ../src/richtext/richtextsizepage.cpp:456 #: ../src/richtext/richtextsizepage.cpp:457 #: ../src/richtext/richtextsizepage.cpp:480 #: ../src/richtext/richtextsizepage.cpp:483 #: ../src/richtext/richtextsizepage.cpp:484 #: ../src/richtext/richtextsizepage.cpp:554 #: ../src/richtext/richtextsizepage.cpp:557 #: ../src/richtext/richtextsizepage.cpp:558 #: ../src/richtext/richtextsizepage.cpp:589 #: ../src/richtext/richtextsizepage.cpp:592 #: ../src/richtext/richtextsizepage.cpp:593 #: ../src/richtext/richtextsizepage.cpp:624 #: ../src/richtext/richtextsizepage.cpp:627 #: ../src/richtext/richtextsizepage.cpp:628 #: ../src/richtext/richtextsizepage.cpp:659 #: ../src/richtext/richtextsizepage.cpp:662 #: ../src/richtext/richtextsizepage.cpp:663 msgid "px" msgstr "px" #: ../src/common/accelcmn.cpp:188 #, fuzzy msgid "rawctrl" msgstr "ctrl" #: ../src/html/chm.cpp:333 msgid "read error" msgstr "erreur de lecture" #: ../src/common/zipstrm.cpp:1882 #, c-format msgid "reading zip stream (entry %s): bad crc" msgstr "lecture du flux zip (entrée %s) : mauvaise crc" #: ../src/common/zipstrm.cpp:1877 #, c-format msgid "reading zip stream (entry %s): bad length" msgstr "lecture du flux zip (entrée %s) : mauvaise longueur" #: ../src/msw/dde.cpp:1162 msgid "reentrancy problem." msgstr "problème de double entrée." #: ../src/common/datetimefmt.cpp:1920 msgid "second" msgstr "deuxième" #: ../src/html/chm.cpp:337 msgid "seek error" msgstr "erreur de recherche" #: ../src/common/datetimefmt.cpp:1935 msgid "seventeenth" msgstr "dix-septième" #: ../src/common/datetimefmt.cpp:1925 msgid "seventh" msgstr "septième" #: ../src/common/accelcmn.cpp:186 msgid "shift" msgstr "majuscule" #: ../src/common/appbase.cpp:685 msgid "show this help message" msgstr "montrer ce message d'aide" #: ../src/common/datetimefmt.cpp:1934 msgid "sixteenth" msgstr "seizième" #: ../src/common/datetimefmt.cpp:1924 msgid "sixth" msgstr "sixième" #: ../src/common/appcmn.cpp:227 msgid "specify display mode to use (e.g. 640x480-16)" msgstr "spécifier le mode d'affichage à utiliser (par ex. 640x480-16)" #: ../src/common/appcmn.cpp:213 msgid "specify the theme to use" msgstr "spécifier le thème à utiliser" #: ../src/richtext/richtextbuffer.cpp:8876 msgid "standard/circle" msgstr "standard/circulaire" #: ../src/richtext/richtextbuffer.cpp:8877 msgid "standard/circle-outline" msgstr "standard/contour circulaire" #: ../src/richtext/richtextbuffer.cpp:8879 msgid "standard/diamond" msgstr "standard/diamant" #: ../src/richtext/richtextbuffer.cpp:8878 msgid "standard/square" msgstr "standard/carré" #: ../src/richtext/richtextbuffer.cpp:8880 msgid "standard/triangle" msgstr "standard/triangle" #: ../src/common/zipstrm.cpp:1782 msgid "stored file length not in Zip header" msgstr "longueur du fichier enregistré absente de l'en-tête du Zip" #: ../src/common/cmdline.cpp:1311 msgid "str" msgstr "str" #: ../src/common/fontcmn.cpp:794 ../src/common/fontcmn.cpp:969 msgid "strikethrough" msgstr "barré" #: ../src/common/tarstrm.cpp:1003 ../src/common/tarstrm.cpp:1025 #: ../src/common/tarstrm.cpp:1507 ../src/common/tarstrm.cpp:1529 msgid "tar entry not open" msgstr "l'entrée tar n'est pas ouverte" #: ../src/common/datetimefmt.cpp:1928 msgid "tenth" msgstr "dixième" #: ../src/msw/dde.cpp:1126 msgid "the response to the transaction caused the DDE_FBUSY bit to be set." msgstr "" "la réponse à la transaction a provoqué la spécification du bit DDE_FBUSY." #: ../src/common/datetimefmt.cpp:1921 msgid "third" msgstr "troisième" #: ../src/common/datetimefmt.cpp:1931 msgid "thirteenth" msgstr "treizième" #: ../src/common/datetimefmt.cpp:1725 msgid "today" msgstr "aujourd'hui" #: ../src/common/datetimefmt.cpp:1727 msgid "tomorrow" msgstr "demain" #: ../src/common/fileconf.cpp:1979 #, c-format msgid "trailing backslash ignored in '%s'" msgstr "anti-slash de fin ignoré dans '%s'" #: ../src/gtk/aboutdlg.cpp:218 msgid "translator-credits" msgstr "Liste des traducteurs" #: ../src/common/datetimefmt.cpp:1930 msgid "twelfth" msgstr "douzième" #: ../src/common/datetimefmt.cpp:1938 msgid "twentieth" msgstr "vingtième" #: ../src/common/fontcmn.cpp:789 ../src/common/fontcmn.cpp:965 msgid "underlined" msgstr "souligné" #: ../src/common/fileconf.cpp:2014 #, c-format msgid "unexpected \" at position %d in '%s'." msgstr "symbole \" inattendu à la position %d dans « %s »." #: ../src/common/tarstrm.cpp:1045 msgid "unexpected end of file" msgstr "Fin de fichier inattendue" #: ../src/generic/progdlgg.cpp:399 ../src/common/tarstrm.cpp:371 #: ../src/common/tarstrm.cpp:394 ../src/common/tarstrm.cpp:425 msgid "unknown" msgstr "inconnu" #: ../src/common/xtixml.cpp:253 #, c-format msgid "unknown class %s" msgstr "classe « %s » inconnue" #: ../src/common/regex.cpp:261 ../src/html/chm.cpp:351 msgid "unknown error" msgstr "erreur inconnue" #: ../src/msw/dialup.cpp:490 #, c-format msgid "unknown error (error code %08x)." msgstr "erreur inconnue (code d'erreur %08x)." #: ../src/msw/wince/filefnwce.cpp:172 msgid "unknown seek origin" msgstr "origine de la recherche inconnue" #: ../src/common/fmapbase.cpp:834 #, c-format msgid "unknown-%d" msgstr "inconnu-%d" #: ../src/common/docview.cpp:507 msgid "unnamed" msgstr "sans nom" #: ../src/common/docview.cpp:1606 #, c-format msgid "unnamed%d" msgstr "sans nom %d" #: ../src/common/zipstrm.cpp:1796 ../src/common/zipstrm.cpp:2184 msgid "unsupported Zip compression method" msgstr "méthode de compression zip non gérée" #: ../src/common/translation.cpp:1883 #, c-format msgid "using catalog '%s' from '%s'." msgstr "utilisation du catalogue « %s » de « %s »." #: ../src/html/chm.cpp:335 msgid "write error" msgstr "erreur d'écriture" #: ../src/common/time.cpp:318 msgid "wxGetTimeOfDay failed." msgstr "wxGetTimeOfDay a échoué." #: ../src/gtk/print.cpp:987 msgid "wxPrintout::GetPageInfo gives a null maxPage." msgstr "" #: ../src/osx/carbon/dataview.cpp:1303 msgid "wxWidget control pointer is not a data view pointer" msgstr "" #: ../src/osx/carbon/dataview.cpp:907 #, fuzzy msgid "wxWidget's control not initialized." msgstr "Impossible d'initialiser l'affichage." #: ../src/motif/app.cpp:245 #, c-format msgid "wxWidgets could not open display for '%s': exiting." msgstr "wxWidgets n'a pas pu ouvrir d'affichage pour %s : abandon." #: ../src/x11/app.cpp:164 msgid "wxWidgets could not open display. Exiting." msgstr "wxWidgets n'a pas pu ouvrir d'affichage : abandon." #: ../src/richtext/richtextsymboldlg.cpp:434 msgid "xxxx" msgstr "xxxx" #: ../src/common/datetimefmt.cpp:1726 msgid "yesterday" msgstr "hier" #: ../src/common/zstream.cpp:251 ../src/common/zstream.cpp:426 #, c-format msgid "zlib error %d" msgstr "erreur zlib %d" #: ../src/richtext/richtextliststylepage.cpp:496 #: ../src/richtext/richtextbulletspage.cpp:301 msgid "~" msgstr "~" #~ msgid "Print preview" #~ msgstr "Aperçu avant impression" #, fuzzy #~ msgid "&Preview..." #~ msgstr " Aperçu" #, fuzzy #~ msgid "Preview..." #~ msgstr " Aperçu" #, fuzzy #~ msgid "The vertical offset relative to the paragraph." #~ msgstr "Le style par défaut pour le paragraphe suivant." #~ msgid "&Save..." #~ msgstr "&Enregistrer..." #~ msgid "About " #~ msgstr "À propos" #~ msgid "All files (*.*)|*" #~ msgstr "Tous les fichiers (*.*)|*" #~ msgid "Cannot initialize SciTech MGL!" #~ msgstr "Impossible d'initialiser SciTech MGL." #~ msgid "Cannot initialize display." #~ msgstr "Impossible d'initialiser l'affichage." #~ msgid "Cannot start thread: error writing TLS" #~ msgstr "" #~ "Impossible de lancer le processus : erreur lors de l'écriture de TLS" #~ msgid "Close\tAlt-F4" #~ msgstr "Fermer\tAlt-F4" #~ msgid "Couldn't create cursor." #~ msgstr "Impossible de créer un curseur." #~ msgid "Directory '%s' doesn't exist!" #~ msgstr "Répertoire « %s » inexistant." #~ msgid "File %s does not exist." #~ msgstr "Fichier « %s » inexistant." #~ msgid "Mode %ix%i-%i not available." #~ msgstr "Le mode %ix%i-%i n'est pas disponible." #~ msgid "Paper Size" #~ msgstr "Taille de la page" #~ msgid "%.*f GB" #~ msgstr "%.*f GB" #~ msgid "%.*f MB" #~ msgstr "%.*f MB" #~ msgid "%.*f TB" #~ msgstr "%.*f TB" #~ msgid "%.*f kB" #~ msgstr "%.*f kB" #, fuzzy #~ msgid "%s" #~ msgstr "%s B" #~ msgid "%s B" #~ msgstr "%s B" #~ msgid "&Goto..." #~ msgstr "&Aller à..." #~ msgid "<<" #~ msgstr "<<" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">>|" #~ msgstr ">>|" #~ msgid "Archive doesnt contain #SYSTEM file" #~ msgstr "L'archive ne contient pas de fichier #SYSTEM" #~ msgid "BIG5" #~ msgstr "BIG5" #~ msgid "Can't check image format of file '%s': file does not exist." #~ msgstr "" #~ "Impossible de vérifier le format d'image du fichier « %s » : le fichier " #~ "n'existe pas." #~ msgid "Can't load image from file '%s': file does not exist." #~ msgstr "" #~ "Impossible de charger l'image du fichier « %s » : le fichier n'existe pas." #~ msgid "Cannot convert dialog units: dialog unknown." #~ msgstr "" #~ "Impossible de convertir les unités de la fenêtre de dialogue : fenêtre de " #~ "dialogue inconnue." #~ msgid "Cannot convert from the charset '%s'!" #~ msgstr "Impossible de convertir depuis le jeu de caractères « %s »." #~ msgid "Cannot find container for unknown control '%s'." #~ msgstr "Impossible de trouver un conteneur pour le contrôle inconnu « %s »" #~ msgid "Cannot find font node '%s'." #~ msgstr "Impossible de trouver le noeud de la police de caractères « %s »." #~ msgid "Cannot open file '%s'." #~ msgstr "Impossible d'ouvrir le fichier « %s »." #~ msgid "Cannot parse coordinates from '%s'." #~ msgstr "Impossible de parcourir les coordonnées dans « %s »." #~ msgid "Cannot parse dimension from '%s'." #~ msgstr "Impossible de parcourir les dimensions dans « %s »." #~ msgid "Cant create the thread event queue" #~ msgstr "Impossible de créer la queue d'événements du processus" #~ msgid "Click to cancel this window." #~ msgstr "Cliquez pour annuler cette fenêtre." #~ msgid "Click to confirm your selection." #~ msgstr "Cliquez pour confirmer votre sélection." #~ msgid "Could not unlock mutex" #~ msgstr "Impossible de déverrouiller le mutex" #~ msgid "Error while waiting on semaphore" #~ msgstr "Erreur lors de l'attente d'une sémaphore" #, fuzzy #~ msgid "Failed to connect to session manager: %s" #~ msgstr "N'a pas réussi à %s la connexion : %s" #~ msgid "Failed to create a status bar." #~ msgstr "Échec de la création d'une barre d'état." #~ msgid "Failed to register OpenGL window class." #~ msgstr "Échec de l'enregistrement de la classe de fenêtres OpenGL." #~ msgid "Fatal error" #~ msgstr "Erreur fatale" #~ msgid "Fatal error: " #~ msgstr "Erreur fatale : " #~ msgid "GB-2312" #~ msgstr "GB-2312" #~ msgid "Go forward to the next HTML page" #~ msgstr "Aller vers la page HTML suivante" #~ msgid "Goto Page" #~ msgstr "Aller à la page" #, fuzzy #~ msgid "" #~ "HTML pagination algorithm generated more than the allowed maximum number " #~ "of pages and it can't continue any longer!" #~ msgstr "" #~ "L'algorithme de mise en page a généré plus de pages que le nombre maximum " #~ "admissible et il ne peut poursuivre !" #~ msgid "Help : %s" #~ msgstr "Aide : %s" #~ msgid "I64" #~ msgstr "I64" #~ msgid "Internal error, illegal wxCustomTypeInfo" #~ msgstr "Erreur interne : wxCustomTypeInfo illégal" #~ msgid "Invalid XRC resource '%s': doesn't have root node 'resource'." #~ msgstr "" #~ "Ressource XRC « %s » non valable : absence du noeud racine « resource »." #~ msgid "No handler found for XML node '%s', class '%s'!" #~ msgstr "" #~ "Aucun gestionnaire trouvé pour le noeud XML « %s » de la classe « %s »." #~ msgid "No image handler for type %ld defined." #~ msgstr "Aucun gestionnaire d'image défini pour le type %ld." #, fuzzy #~ msgid "Owner not initialized." #~ msgstr "Impossible d'initialiser l'affichage." #, fuzzy #~ msgid "Passed item is invalid." #~ msgstr "« %s » n'est pas valable" #~ msgid "Passing a already registered object to SetObjectName" #~ msgstr "Objet déjà enregistré indiqué à SetObjectName" #~ msgid "Preparing help window..." #~ msgstr "Préparation de la fenêtre d'aide..." #~ msgid "Program aborted." #~ msgstr "Programme interrompu." #~ msgid "Referenced object node with ref=\"%s\" not found!" #~ msgstr "Le noeud objet référencé par ref=\"%s\" est introuvable." #~ msgid "Resource files must have same version number!" #~ msgstr "Les fichiers de ressource doivent avoir le même numéro de version." #~ msgid "SHIFT-JIS" #~ msgstr "SHIFT-JIS" #~ msgid "Search!" #~ msgstr "Chercher !" #~ msgid "Sorry, could not open this file for saving." #~ msgstr "Impossible d'ouvrir ce fichier pour l'enregistrement." #~ msgid "Sorry, could not save this file." #~ msgstr "Impossible d'enregistrer ce fichier." #~ msgid "Sorry, print preview needs a printer to be installed." #~ msgstr "L'aperçu avant impression nécessite une imprimante installée." #~ msgid "Status: " #~ msgstr "État : " #~ msgid "" #~ "Streaming delegates for not already streamed objects not yet supported" #~ msgstr "" #~ "Les flux délégués pour les objets non transformés en flux ne sont pas " #~ "encore gérés" #~ msgid "Subclass '%s' not found for resource '%s', not subclassing!" #~ msgstr "" #~ "Sous-classe « %s » non trouvée pour la ressource « %s », pas de sous-" #~ "classement." #~ msgid "TIFF library error." #~ msgstr "Erreur dans la bibliothèque TIFF" #~ msgid "TIFF library warning." #~ msgstr "Alarme dans la bibliothèque TIFF" #~ msgid "" #~ "The file '%s' couldn't be opened.\n" #~ "It has been removed from the most recently used files list." #~ msgstr "" #~ "Le fichier « %s » n'a pas pu être ouvert et a été retiré\n" #~ "de la liste des fichiers récemment utilisés." #~ msgid "The path '%s' contains too many \"..\"!" #~ msgstr "Le chemin « %s » contient trop de « .. »." #~ msgid "Trying to solve a NULL hostname: giving up" #~ msgstr "Tentative de résoudre le nom d'hôte NULL : abandon" #~ msgid "Unknown style flag " #~ msgstr "Indicateur de style inconnu" #~ msgid "Warning" #~ msgstr "Avertissement" #~ msgid "Windows 2000 (build %lu" #~ msgstr "Windows 2000 (construction %lu" #~ msgid "XRC resource '%s' (class '%s') not found!" #~ msgstr "Ressource XRC « %s » (classe « %s ») introuvable." #~ msgid "XRC resource: Cannot create animation from '%s'." #~ msgstr "Ressource XRC : impossible de créer une animation de « %s »." #~ msgid "XRC resource: Cannot create bitmap from '%s'." #~ msgstr "" #~ "Ressource XRC : impossible de créer une image bitmap à partir de « %s »." #, fuzzy #~ msgid "" #~ "XRC resource: Incorrect colour specification '%s' for attribute '%s'." #~ msgstr "" #~ "Ressource XRC : spécification de couleur « %s » non valable pour la " #~ "propriété « %s »." #~ msgid "[EMPTY]" #~ msgstr "[VIDE]" #~ msgid "catalog file for domain '%s' not found." #~ msgstr "fichier catalogue introuvable pour le domaine « %s »." #~ msgid "delegate has no type info" #~ msgstr "Le délégué n'a pas d'information sur le type" #~ msgid "encoding %i" #~ msgstr "codage %i" #~ msgid "looking for catalog '%s' in path '%s'." #~ msgstr "recherche le catalogue « %s » dans « %s »." #~ msgid "wxRichTextFontPage" #~ msgstr "wxRichTextFontPage" #~ msgid "wxSearchEngine::LookFor must be called before scanning!" #~ msgstr "wxSearchEngine::LookFor doit être appelé avant de scanner !" #~ msgid "wxSocket: invalid signature in ReadMsg." #~ msgstr "wxSocket : signature non valable dans ReadMsg." #~ msgid "wxSocket: unknown event!." #~ msgstr "wxSocket : événement inconnu." #~ msgid "|<<" #~ msgstr "|<<" #~ msgid "\t%s: %s\n" #~ msgstr "\t%s : %s\n" #~ msgid " Couldn't create the UnicodeConverter" #~ msgstr "Impossible de créer le UnicodeConverter" #~ msgid "#define %s must be an integer." #~ msgstr "#define %s doit être un entier." #~ msgid "%s not a bitmap resource specification." #~ msgstr "%s n'est pas une spécification d'une ressource bitmap." #~ msgid "%s not an icon resource specification." #~ msgstr "%s n'est pas une spécification d'une ressource icône." #~ msgid "%s: ill-formed resource file syntax." #~ msgstr "%s : syntaxe du fichier de ressource malformée." #~ msgid "&Open" #~ msgstr "&Ouvrir" #~ msgid "&Print" #~ msgstr "&Imprimer" #~ msgid "*** A debug report has been generated\n" #~ msgstr "*** Un rapport de débogage a été créé\n" #~ msgid "*** It can be found in \"%s\"\n" #~ msgstr "*** Il peut être trouvé dans « %s »\n" #~ msgid "" #~ ", expected static, #include or #define\n" #~ "while parsing resource." #~ msgstr "" #~ ", static, #include ou #define\n" #~ "attendu lors de l'analyse des ressources." #~ msgid "Bitmap resource specification %s not found." #~ msgstr "Spécification %s de la ressource bitmap introuvable." #~ msgid "Closes the dialog without inserting a symbol." #~ msgstr "Ferme la fenêtre sans insérer de symbole." #~ msgid "" #~ "Could not resolve control class or id '%s'. Use (non-zero) integer " #~ "instead\n" #~ " or provide #define (see manual for caveats)" #~ msgstr "" #~ "Impossible de résoudre la classe de contrôle ou l'identifiant « %s ».\n" #~ "Utiliser à la place un entier (non nul) ou spécifier un #define\n" #~ "(voir le manuel pour les mises en garde)" #~ msgid "" #~ "Could not resolve menu id '%s'. Use (non-zero) integer instead\n" #~ "or provide #define (see manual for caveats)" #~ msgstr "" #~ "Impossible de résoudre l'identifiant « %s » du menu. Utiliser à la place\n" #~ "un entier (non nul) ou spécifier un #define (voir le manuel pour les " #~ "mises\n" #~ "en garde)" #~ msgid "Couldn't end the context on the overlay window" #~ msgstr "Impossible de changer le contexte de le fenêtre de recouvrement" #~ msgid "Expected '*' while parsing resource." #~ msgstr "« * » attendue lors du parcours de la ressource." #~ msgid "Expected '=' while parsing resource." #~ msgstr "« = » attendu lors du parcours de la ressource." #~ msgid "Expected 'char' while parsing resource." #~ msgstr "« char » attendu lors du parcours de la ressource." #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "Ressource XBM %s introuvable.\n" #~ "Avez-vous oublié d'utiliser wxResourceLoadBitmapData ?" #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadIconData?" #~ msgstr "" #~ "Ressource XBM %s introuvable.\n" #~ "Avez-vous oublié d'utiliser wxResourceLoadIconData ?" #~ msgid "" #~ "Failed to find XPM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "Ressource XPM %s introuvable.\n" #~ "Avez-vous oublié d'utiliser wxResourceLoadBitmapData ?" #~ msgid "Failed to get clipboard data." #~ msgstr "Échec de l'obtention des données du presse-papiers." #~ msgid "Failed to load shared library '%s' Error '%s'" #~ msgstr "" #~ "Échec du chargement de la bibliothèque partagée « %s » : erreur « %s »" #~ msgid "Found " #~ msgstr "A trouvé " #~ msgid "Icon resource specification %s not found." #~ msgstr "Spécification %s de la ressource de l'icône non trouvée." #~ msgid "Ill-formed resource file syntax." #~ msgstr "Syntaxe du fichier de ressource malformée." #~ msgid "Inserts the chosen symbol." #~ msgstr "Insérer le symbole choisi." #~ msgid "Long Conversions not supported" #~ msgstr "Conversions longues non gérées" #~ msgid "No XPM icon facility available!" #~ msgstr "Aucune fonctionnalité disponible pour les icônes XPM." #~ msgid "Option '%s' requires a value, '=' expected." #~ msgstr "L'option « %s » nécessite une valeur, « = » attendu." #~ msgid "Select all" #~ msgstr "Tout sélectionner" #~ msgid "" #~ "Sorry, docking is not supported for ports other than wxMSW, wxMac and " #~ "wxGTK" #~ msgstr "Désolé, l'arrimage n'est supporté que pour wxMSW, wxMAC et wxGTK" #~ msgid "String conversions not supported" #~ msgstr "Conversion des chaînes non gérée" #~ msgid "Unexpected end of file while parsing resource." #~ msgstr "Fin de fichier inattendue lors de l'analyse des ressources." #~ msgid "Unrecognized style %s while parsing resource." #~ msgstr "Style %s non reconnu pendant l'analyse des ressources." #~ msgid "Video Output" #~ msgstr "Sortie vidéo" #~ msgid "Warning: attempt to remove HTML tag handler from empty stack." #~ msgstr "" #~ "Avertissement : tentative de suppression d'un gestionnaire d'étiquette " #~ "HTML d'une pile vide." #~ msgid "establish" #~ msgstr "établir" #~ msgid "initiate" #~ msgstr "initialiser" #~ msgid "invalid eof() return value." #~ msgstr "eof() a renvoyé une valeur non valable." #~ msgid "unknown line terminator" #~ msgstr "fin de ligne inconnue" #~ msgid "writing" #~ msgstr "écriture" #~ msgid "wxRichTextBulletsPage" #~ msgstr "wxRichTextBulletsPage" #~ msgid "wxRichTextListStylePage" #~ msgstr "wxRichTextListStylePage" #~ msgid "wxRichTextStylePage" #~ msgstr "wxRichTextStylePage" #~ msgid "." #~ msgstr "." #~ msgid "Cannot open URL '%s'" #~ msgstr "Impossible d'ouvrir le lien « %s »" #~ msgid "Error " #~ msgstr "Erreur " #~ msgid "Failed to create directory %s/.gnome." #~ msgstr "Échec de la création du répertoire %s/.gnome." #~ msgid "Failed to create directory %s/mime-info." #~ msgstr "Échec de la création du répertoire %s/mime-info." #~ msgid "" #~ "Failed to get stack backtrace:\n" #~ "%s" #~ msgstr "" #~ "Échec de l'obtention de la pile d'appel :\n" #~ "%s" #~ msgid "Loading Grey Ascii PNM image is not yet implemented." #~ msgstr "" #~ "Le chargement d'une image PNM ASCII en niveau de gris n'est pas encore " #~ "implémenté." #~ msgid "Loading Grey Raw PNM image is not yet implemented." #~ msgstr "" #~ "Le chargement d'une image PNM source en niveau de gris n'est pas encore " #~ "implémenté." #~ msgid "MP Thread Support is not available on this System" #~ msgstr "Gestion des processus MP non disponible sur ce système" #~ msgid "Mailcap file %s, line %d: incomplete entry ignored." #~ msgstr "Fichier mailcap %s, ligne %d : entrée incomplète ignorée." #~ msgid "Mime.types file %s, line %d: unterminated quoted string." #~ msgstr "" #~ "Fichier mime.types %s, ligne %d : chaîne entre guillemets non terminée." #~ msgid "Unknown field in file %s, line %d: '%s'." #~ msgstr "Champ inconnu dans le fichier %s, ligne %d : « %s »." #~ msgid "bold " #~ msgstr "gras " #~ msgid "can't query for GUI plugins name in console applications" #~ msgstr "" #~ "ne peut chercher des noms de greffon graphique dans les applications en " #~ "console" #~ msgid "light " #~ msgstr "léger " #~ msgid "underlined " #~ msgstr "souligné " #~ msgid "unsupported zip archive" #~ msgstr "archive zip non gérée" ginkgocadx-3.8.7/cadxcore/lang/ja/000077500000000000000000000000001314736454600167675ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/ja/cadxcore.mo000066400000000000000000002170411314736454600211210ustar00rootroot000000000000009LFL;(MPdMM6MQ N/]NINN<N13O#eO#OO6OO<PTP3nP4P:PQQ.Q =QJQOQ TQbQ qQ~QQ0Q/Q2R1AR'sR,R0R+R)%S.OS-~S,S.S-T/6T/fT7T.T,T:*U7eU8U5U) V,6V/cV:VVVVWWW%W ,W7WLWRWWW]WcWiWqWW5WCW XXX#X 7X BX MX XX cX nX yX X XXXXXXXXXX Y#Y^b^ h^r^x^ ^^^.^^^2_C_W_\_z_ _ __-____ `%`6`F`#f`````%`&a+aCaYa pa~aaa a8a a a a: b DbPbeb jbxb }bbbb bb bbbb c c c(c">cacqc6zc&c&ccd&d9dQdgdwddddddd d dee-e5e=eQeje |eeeeeDe"f>fVf!pf f#fff gg'9gagSwg[g$'hLh'`hhh'h&h ii0i+Hitiii1i i2i2j(Kj#tjjj=j#k+kCk`k+gkQkk k lll'l9lNlflzl%l llll m m5m#Om sm~mmmfm)*n=Tnnnnnooo+2o^otoyo.pIp Pp \p hptp}pp pppp2p "q.qaIqq'Dr(lr7rBrBsSsls&ssss sst tt t)t =tItPtUt jtttt'ttt tt tt u (u 3u >u Iu Tu _u ju uu u uuuu1uuuvVvvww)w=wYwtwwlwy"z )z4zIzfzC}z zzzz!{){<{M{R{i{{{{ {-{{#|3|S|b|q|"|1|"|' }%1}W}s}}4}}}}}} } ~ ~"~)~/~7~>~ P~]~f~o~~~~ ~ ~~ ~~~! <^F4    +C1]'Ѐ$ +7 ? JU^v Ӂ؁ 3Q6T݂ "#FV[lo r~  à ̓ك" % /;OW^fls   ҄ ߄6 ,81As-օ# % 9Fa is  ÆΆֆۆ  # )(5^x Ƈχ  ($1V ep">Έ ! 4AZSy͉҉8 ?J-_"%- -;>L NjϋM֋$- >L\y* Ҍߌ *383lHɍ!2Tf Îώ %5 =J Y e r }1͏ ߏ+(T ]kz~  Ӑݐ' (3\"t őڑ )Ecinv   ̒ ֒"#)1 G S`tz$ ɓ Փ&&.!3 U.v9" %*&PBw?33.%b0Ԗ0>\|8;ϗ$ H0%y@%8A?T֙5(,Up% Ś˚Ԛݚ   &2"H(k3$ț-/4d)i\?:0<k+ԝ ܝ ,9Nc Fɞ 9 T _.i ,!;UZ%kGG)0 BP c!o(0  0 KX \8flP+&|M!M8g''ȥ" -,"Z2}8Ϧ $-?*m,ŧ˧(Q0U`ت9-Tm/M -n2#Ϭ!-&O!vJQSRQ +1:O _.l442 1S',0ڰ+ )7.a-,.-/H/x7.,:<7w85),H/u:,4 EPau} "ӵHյVuy{˶߶  % /<>BGN_~ӷ  $ 4AH?X 2 F?D7UR@!  Һ'ߺ$, 0<CJ R ]h!n0*9&6 = HS i!s$ ļݼ! *,!W'y'ɽ/%,5,b  Ͼ߾$7#[zK߿ $:M6`  ",Oe{03P*8c ) H3EU:e! 6IPf K9J80-%M!s'*',L PZs;Q9X DB$#7*[)2$&/"N1qM^@o!3#$,H>u!YaSEe/6 \*3'! :SK!! !8Zs!(!2"K*n 5rY,!Dfv%}7 0  !7@V]y2 `s67;nFUGG#'/ $E _ l v $ *' R'\$  $' , 7 B M X c n y ; ^! !/!Qs3 lN `m}5bF V`s*$4M V`6gNEFV0f'A#(%)Nx4>$),17 > I U` gqyB$(Mm 0Hb4f  "$$:I"!&= MZ mz*  9@ Zd*, omh !;7W  1'G"o$!   (&2 Yck p)~6 E+q4-*'%MT ] jw   -  ( 3>NU*n0? -3at!0 =P-f?MA$Ej )Z .8GYl  E< H$g'E CMV^e uO1&C.j,!0BXHhH'O80+&,13 e#r!* )' 7DSc%!(!>$`' !4*Mx6B'V0~*;"Kn(  # 9 C<M3   '.1'` !! 0 0<Bm<0-1<_3gL86E9$<GaBT\!y;N-& GT < D 0 VO D k 9W E  ! ( D<        '        %  , !8 <Z 9 M %0E9v; A\;B:<+S+- I+j1'!! CP`|4  &63js$13k:t"A$T y"36  .* Yf ^3}1eH^)3O(Bx33!#-E0s6E0!?R7PI9P   -JInl!Q4 Yo)q7M;DQp+:*?_k`^W<yT9/QUh:]R4^l  t&:8<sjArn}-h0KwH.~@S wX3`g5;HvUzPKN, 83dQir6\%M#U1q]$"+>Ehm,q/1DN,O`|5Y~ (m{%ZG4?XXJWkb pVL78T)o-|2Fw * T{ckg:)!E//4=?l#[s %y1}'G!6ZCfk#Pcx+sps\>g~uF^v""Zi~\EG=1hvOBP0xu+|_@KdL LVMFPu2zjeL& YE far j*_emGW lt]0bR` u W} a[9OCy<< '@{.2IeS9Aam5!6_@bd|MatY.VKHp('=xfzrVv?CD9cB$gfS> .I&zc6]JZX)2,bB(Ro =7t&i;$ew$S5i"Nd;o3(%#jCT q}[F^{3y>*xBRAnJ A[8DN-O'\0IHUn7 * Concatenation of patient name and surnames can't be higher than 61. * The format of the height in centimeters is not correct. * The format of the weight is not correct. Valid range is between 0 and 400 Kg. * The patient ID is required. * The patient's birth date is after the date of study - If you want to use SSL/TLS you have to set a valid certificate and private key - Maximum length of local AET is 16 characters - The PDU size should be greater than or equal to zero (default = 16384) - The local port is too large - The local port must be a positive short integer (16 bits) - The maximum length of the AET is 16 characters - The maximum value of the PDU is - The minimum value of the PDU is - The port is too large - The port must be a positive short integer (16 bits) - This PACS id is in use There are %d errors (see log for more detailed description) Would you like to retry? . Modality does not exists in model: Add it first. . SOP Class does not exists in model: Add it first. . Transfer Syntax does not exists in model: Add it first. : bytes from a total of doesn't exist not allowed of to to Modality to SOP Class trying temp unsupported components with transfer syntax "accion" attribute expected at "plantilla" scope"accion" attribute invalid at "plantilla" scope"action" attribute expected at "gnkworkflow" scope"action" attribute invalid at "gnkworkflow" scope"aid" attribute expected at "hce" scope"ambito" attribute expected at "dimse" scope"ambito" attribute expected at "plantilla" scope"ambito" attribute invalid at "dimse" scope"cid" atribute expected at "centro" scope"clave" attribute expected at "metadato" scope"code" attribute expected at "metadata" scope"code" attribute expected at "patient" scope"code" attribute expected at "physician" scope"codigo" attribute expected at "medico" scope"codigo" attribute expected at "metadato" scope"codigo" attribute expected at "paciente" scope"id_peticion" attribute expected at "gnkworkflow" scope"iid" atribute expected at "institution" scope"key" attribute expected at "metadata" scope"pacs-retrieve-sid" attribute empty at "gnkworkflow" scope"pacs-store-sid" attribute empty at "gnkworkflow" scope"pacs_retrieve_sid" attribute empty at "plantilla" scope"pacs_store_sid" attribute empty at "plantilla" scope"uid" attribute expected at "dimse" scope"valor" attribute expected at "medico" scope"value" attribute expected at "physician" scope"value" attribute expected at "query-retrieve-level" scope%d results has been found%m/%d/%Y%m/%d/%Y %H:%M:%S%m/%d/%Y 00:00:00&Accept&Cancel&Close&Close all&Delete from history&Edit&End&Exit&File&Help&Next >(ID or medical history number))): Check the configuration and attach it if necessary): Is not a valid HL7 identifier (ie: code^description^namespaceId).../0 running tasks.00/00/0000 00:00:001x1 Layout1x2 Layout2x1 Layout2x2 Layout3x3 Layout4x4 Layout644654645< &Previous@AETAcc#AcceptAccession NumberAccession numberAcquireAcquire DICOM filesAcquire a DICOM study from PACSAcquire from DICOM DirAcquire images from PACSAcquisition informationActiveAddAdvancedAdvanced Configuration ...Advanced settings...AgeAll patientsAlways use this view to open these filesAnonymizationAnonymization settingsAnonymizeAnonymous mode (history is cleaned)Any dateApplyAre you sure to delete this file from disk?Are you sure you want to cancel the import process?Are you sure you want to delete AreaArrowAssociation Acknowledged (Max Send PDV: Association Rejected: Bad Application Context Name: Association Rejected: No Implementation Class UID providedAssociation(dicom://AsymmetryAuthenticationAuto calculateAutomatically check for updatesAutomatically start HL7 Sender serviceB/WB/W InverseBackBartenBetween:Birth dateBlack BodyCairoCalibrating...Calibration value is too lowCan not upload to the PACS: Can not upload to the PACS: Internal ErrorCancelCardiacCenter (I)Center (M)CentimetersCertificateCertificate to use in this connectionCertificate used by Ginkgo CADxChange ...Change Password ...Change passwordCharLSCharsetCheck UpdatesCheck for newest versionsCheck for updatesCheck for updates automaticallyCheck update errorChoose a directoryChoose the view you want to use to open file/sClean afterClean beforeClean directory after dicomizationClean directory before dicomizationClearClear logCloseClose Ginkgo CADxClose allClose all viewsClose all windowsClose automatically Ginkgo CADx after dicomizeClose current viewClose this notificationCloses the application and aborts pending commandsClosing Ginkgo CADxCobbCobb Angle (2 straight lines)CommentsCommit dateCommit informCommitedConfiguration parameters of the local stationConfigure GridConfigure Grid ...Configure locationConfiguring environment ...Confirm PasswordConfirm removalConfirm the removal of the nodeConfirm the removal of the profile Connection test failConnection test successfulContinueCould not find entry pointCould not load extension library fileCould not load library file. Check logCould not write to fileCreating Thumbnail...Creating Thumbnails...Creation DateCreditsDCMTKDICOM (native format)DICOM DirDICOM Dir is the local directory where history is storedDICOM ExportDICOM NodeDICOM NodesDICOM data from the files to be generated can be populatedDICOM nodesDICOM nodes settingsDataData modifiedDateDate TimeDate:DefaultDefault ORU templateDefault valueDeleteDelete WidgetDelete messageDelete selected itemsDemographic dataDescriptionDestinationDestination:Dicomization completeDicomization finished successfullyDicomized filesDistanceDo not close the application and keep commands runningDo not warn me again about this updateDon't change image codec (if possible)Don't show this message againDownloadDownload %s imagesDownload all modalitiesDownload of modality Download seriesDownload studyDownloading file %dDownloading file %d/%dDownloading files ...Downloading from PACS...ER7Edit ...Edit MessageEdit UserEdit public keyElectronic health recordElementEllipseEmpty configurationEnable TLS configurationEnable http proxyEnable remote PACS configurationEnable shadersEnabledEnter the calibration valueErrorError accessing the controller subsystem integration: (GIL:: DICOM).Error checking application updatesError connecting to urlError creating database: Error creating dicomDir database Error creating history database Error creating thumbnails database Error deleting messagesError downloading study: Error editing messageError executing WorkFlow Error executing WorkFlow Internal ErrorError getting messageError in the confirmation of delivery: Delivery is not recognized by the remote endError in the logic of confirmation. The control of the message ID does not match recognizedError loading DICOM Conformance fileError loading studyError loading study insufficient memoryError loading study.Error loading study: Error loading the study: Internal ErrorError loading the study: Out of memoryError messageError parsing integration XML: Error purguing messagesError queueing message. Check your supplierError reading history: Error reading the study:Error reading the study: Error reading the study: unsupported pixel formatError savingError sending HL7 message see log for more detailsError sending evidences:Error sending evidences: Internal error.Error sending message. It was sent Error sending message:Error setting TLS layer: Error storing file, check the permissions over the directory.Error uploading the study to PACS: Error validating fieldsError while running thread: Error:Error: PACS entry configuration not found: Errors have occurred when saving the series. Would you like to continue closing? Exception loading:ExceptionsExisting fileExitExit applicationExploring PACS...Exploring directory Exploring directory ...Exploring drives...Export ConfigurationExport has been finished successfullyExport imagesExport successfully completedExport to DICOM DirExporting file %d of %dExporting files...Exporting images ...Exporting series %d of %dExtension descriptor does not matchExtensionsExtensions settingsExtracting file...Failed delivery confirmation:Failed to create directory, make sure the path is correct and you have permissions on parent directoryFailed to delete the number of database: Failed to empty the history, you have to close opened studiesFailed to empty the history: Failed to perform search: Failed to set permissions: Failed to start connectionFamFamFam IconsFemaleFile couldn't be stored File exists Would you like to overwrite it?Filler Application IdFlowFor large-scale implementation in a homogenous environment, you can specify the following wildcards in the local AET: %IP IP Address %IP n-th Octet (1~4) %HOSTNAME Host Name"Force lossless when uploadFormatFugue IconsFull ScreenFull screenGE ColorGIL/DICOM/ConformanceGeneralGeneral configuration parametersGenerating preview...Generating thumbnail ...GetGingo CADx Application ID used to fill MSH.3 fieldGinkgo CADxGinkgo CADx Application IdGinkgo CADx has detected inactivity and it will be closed in %d seconds. Do you want to continue?Ginkgo CADx has detected more than one removable units, but none of them includes a DICOMDIR at root. Select drive where you want to acquire recursivelyGinkgo CADx is unable to compress from Ginkgo CADx must have at least one user.Ginkgo CADx must restart for the changes to take effectGinkgo CADx must restart for the extensions changes to take effectGinkgo CADx must restart for the permission changes to take effectGinkgo CADx private tagsGinkgo CADx restrictionsGinkgo CADx tags (Evaluation Maps...)Ginkgo CADx updatedGinkgo CADx updatesGinkgo Extension TitleGray RainbowGreater RadiusGridGrid ScaleGroupHL7 ServiceHL7 message controlHL7 monitorHeightHideHide DICOM inspectorHide GridHide corner annotationsHostHostname (IP or DNS) integration engineHostname / PortHostname missingHot GreenHot IronHot MetalI Accept the licenseI do NOT accept the licenseISO_IR 100ISO_IR 101ISO_IR 109ISO_IR 110ISO_IR 126ISO_IR 127ISO_IR 138ISO_IR 144ISO_IR 148ISO_IR 192ISO_IR 6ITKIdId malformed template in the module configurationIdentification informationIdentificator *If you accept the terms of the agreement, click "I Accept the license" to continue. You must accept the license to start using Ginkgo CADx.If you want to use SSL/TLS you have to set a valid certificate and a valid private keyIgnoring incoming operation Image CalibrationImage Export WizardImage Import WizardImage acquisition finished.Image format not supportedImage presentation informationImage selectionImages (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*.bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*ImportImport ...Import ConfigurationImport files to DICOM formatImport process failed:Import successfully completed, restart Ginkgo CADx to apply changesImporting...InactiveInactivity detectedIncluded in the history ...Including files in the history ..Including files...Including image InfoIni Files(*.ini)|*.iniIni files(*.ini)|*.iniInitializing environment ...Institution's IdInstitution's nameInstitutionsIntegration Engine's Transport Layer ProtocolIntegration engineIntegration engine hostname not setIntegration engine port not setInternal ErrorInternal errorInternal error checking updatesInternal error during auth processInternal error reading the study, unknown format Internal error reading the study: Internal error while reading the study:Internal error while running thread: Interpreting parameters ...Interpreting propertiesInvalid DICOM Conformance fileIt has been read a "patient" tag without identifiersJPEGKgLONILONI2LanguageLast 3 monthsLast 30 daysLast 7 daysLengthLevelLibJpegLibPngLicense agreementLicense menuLicensesLoad ...Load canceled by userLoadingLoading plugins ...Loading resources ...Loading...Local AETLocal AET certificateLocal PACSLocal institutionLocationLocation SettingsLocation titles can't be repeatedLocationsLocations are predefined paths to set locations from well known paths (ex: remote shared disk)LogLog file (*.log) | *.log | Text file (*.txt) | *.txtLog monitorLog monitoredLogTextLoginLower RadiusMLLPMaleMalformed XMLMalformed template Id (Max number of tabs openedMax seconds of Ginkgo CADx application inactivityMaximum length of title is 8 charactersMessageMessage content:Message successfully sentMessage's formatMessagesMetaEmotion HealthcareMetadataMetersMetric gridMicronsMilimetersModalitiesModalityModality download errorModification DateModifiedMonitorizeMosaicMoveNACK received:NAME SURNAME SECOND_SURNAMENameNeed support ...New ...New UpdateNew UserNew version availableNew version available (NoNo DICOMDIR found in removable units, would you like to scan recursively %s driveNo DICOMDIR found in removable units. Would you like to scan other path recursively?No loginNo results foundNormalNormal Angle (3 points)Not commitedNot enough parameters found on XMLNot implementedNoteNumber of VertexOKOkOmitted AETOmitted IdentificatorOmitted portOnline manualOnline supportOpenOpen FileOpen SeriesOpen Series with ..Open Source DICOM CADx environmentOpen Source LicensesOpen fileOpen folderOpen removable unitOpen...OpenGLOpenSSLOtherOthersOverview data of DICOM filesOverwriteP-ValuePACSPACS LimitsPACS acquisition is restrictedPACS error: PACS-ServicePDU (KB)PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*Parameters:PasswordPassword and confirm password can't be different.Password changed successfullyPassword has to contain at least 6 charactersPassword is not settedPassword is settedPathPath of the location doesn't existsPatientPatient IdPatient informationPatient namePatient's name and surnamePendingPerimeterPetitioner System IdPhysicianPhysician's IdPhysician's namePointPoints (I)Points (M)PolygonPortPort is not a valid numberPosition (I)Position (M)Powered byPreviewPrintPrivate keyPrivate key and Certificate do not matchPrivate key in PEM formatProcess canceled by user.ProfileProfile nameProfile name can't be repeatedProfilesProfiles SettingsProgram UpdatesPropertiesProperties ...Properties of Properties...ProtocolProxy server requires authenticationProxy settingsPublic keyPublic key in PEM formatQualityQuery error with PACS Id Query retrieve level not specifiedREGEXP called with wrong number of arguments: %d instead of 2.ROIReading datasetReading propertiesReal MeasureReceiver organization IdReceiving Association failed: Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG Lossless)RedoRefering physicianReferring physicianRefreshRegular expression invalid: 'Relationship informationRemoveRemove allRemove sent messagesRequested module does not support importationRequested module is not registeredReset to defaultRestrict search over selected patientRestrict study retrieval by maximum size (KB)ResultsRetrieve methodRetrieve modeReuse connectionReuse connections when is needed to make more than one queriesRunningSQL LiteSSL/TLSSaveSave log...Save logsScale XScale YSearchSearch without parameters could take al long time Would you like to continue?SecuritySecurity SettingSecurity typeSelect DICOMDIRSelect a valid DICOMDIR fileSelect a valid PACS ServerSelect certificateSelect dicom dir files you want to acquireSelect driveSelect drive you want to openSelect files from filesystemSelect files...Select imagesSelect the directory where the files will be storedSelect the format and the images you want to exportSelected imagesSelecting Import ProfileSemantic/Sintactic error parsing integration XML (see log for details): Send Hl7 message when importingSend study to PACS when importingSend task status:Sending HL7 message %d of %dSentSeparate addresses with commas.SeriesSeries Instance UIDSeries dateSeries does not existSeries path couldn't be foundServerServer ID not found. ID = Server settingsServiceService's IdService's nameSet DefaultSet PasswordSet activeSet by userSet compression, 0 implies no compression (0..14)Set default valueSet main passwordSet passwordSet property activeSet property inactiveSetting not foundSetting the electronic health record systemSettingsSettings menuSetup SecuritySexShow DICOM inspectorShow GridShow MessageShow corner annotationsShow full screenShow gridShow on startupShow on startup default valueSkipping extension with duplicated SID:Some of selected series has been deletedSpacing is not valid: (Spacing of the image is invalid: (SpectrumStartStart pageStarting Search ...Starting services...Starting tools...StatusStatus:Step %d of %d: Step 1 of 3: Importing imagesStep 2 of 3: Copying imagesStep 3 of 3: Uploading imagesSternStopStoppedStoring in the history...StudiesStudies withStudyStudy DetailsStudy Instance UIDStudy UIDStudy dateStudy download size limit exceededStudy malformed or unsupportedStyleSurnameSystem authenticationTab RegroupTab groupingTabbed organizationTasksTemplate Id unsupported (Test Integration Engine connectivityTest connectionTest engineTest titleTesting conectivity with the server...Testing the connection to the node ...TextThe calibration value is too highThe calibration value is too lowThe calibration value must be a decimal numberThe fileThe following errors have occurred when validating fieldsThe pdu size is not a valid numberThe port is not a valid numberThe requested module isn't registeredThe selected directory can't be openedThe selected directory does not exist Would you like to create it?The selected directory does not exist Would you like to create?The service did not respond correctly to the C-ECHOThe submission process is started and ready to sendThe username or password is incorrectThere are %d pending tasksThere are other DICOM directory in selected pathThere are this errors: There aren't any module with importation supportThere is no URL to check updates on the current configuration.There is no any PACS configuredThere is no running tasksThere is not newest Ginkgo CADx versions at this moment.There is not registered any module with importation supportThere was an error anonymizing filesThere was an error changing the password. To get more info open the LOG.There was an error creating directoryThere was an error deleting user. To get more info open the LOG.There was an error during exportationThere was an error during importation, check permissionsThere was an error inserting user. To get more info open the LOG.There was an error reading the directory, make sure you have write permissions on itThere was an error writing fileThese series have been deleted from the local historyThey have produced the following errors:This files are Dicom Dirs:This files doesn't exist:This files doesn't have DICOM format:ThreadingTimeTitleTodayToday AMToday PMToolsTools loading base ...TrapezoidTravel (I)Travel (M)TypeUNKNOWUPDATE_INFOURL of online supportUnable to add supported SOP Class Unable to add supported transfer syntax Unable to connect: Could not start network support.Unable to create TLS transport layerUnable to open modality Unable to reserve memory for PDF dicomizationUnable to reserve memory for image DicomizationUndoUnexpected error, select the module againUnique identifier of the Picture Archiving and Communication System Application (SIID/PACS).Unique identifier of the filler application (SIID/Ginkgo CADx).Unique identifier of the filler application (SIID/Ginkgo).Unique identifier of the organization receiving the message.Unique identifier of the requesting system.UnknownUnknown errorUnknown module Id (Unknown protocolUnknown query/retrieve levelUnsaved dataUnsupported protocolUpdate period (days)Upload images to a PACS serverUploading file %d of %dUploading files ...Use SSL/TLSUse by defaultUse default certificate (certificate configured in local AET settings)UserUser NameUser deleted successfullyUser inserted successfullyUser loginUser nameUser name has to contain at least 4 charactersUser name repeatedUser/PasswordUsersUsually due to an error in sending a messageVR BonesVR Muscles & BonesVR Red VesselsVTKValueVerify client credentialsVerify server credentialsViewView Full ScreenWarn about newest Ginkgo CADx updatesWarningWarning, to update the directory, you have to close every opened seriesWarning, to update the directory, you must close current opened series.WeightWidget PropertiesWidget's NameWindow annotationsWorkstationWould you like to overwrite them?Would you like to remove these messages?Would you like to save the changes in the study:WxWidgetsXX axis scaleXML Parser Not Found. Key=XML dicomizationXML parsing internal errorY axis scaleYesYesterdayYou are not allowed to download this kind of modalities.You can't remove opened seriesYou do not have permissions to write to the dicom Dir, preferences will be stored in the temporary directoryYou have reached maximum number of opened tabs, close some tabs and try it againYou have to set private and public keyYou must configure the local AET, which is used to communicate with the DICOM nodes. The specified port must be opened in the firewall, as it is essential for transfers.You must configure the local AET, which is used to communicate with the PACS server. The specified port must be opened in the firewall, as it is essential for transfers.You must create at least one userYou must define a default PACS in the integration XML or in the settings menuYou must fill both title and location fields to continueYou must fill in all fields to continueYou must fill in name field to continueYou must select an imageYou must select at least one imageYou must select the images you want to importYou must select the import profileYou must select the profile you want to use importYou must set the main passwordYou must specify attributes you want to use in the queryZliball filescmelement patient id absent in datasetelement series instance uid absent in datasetelement sop instance uid absent in datasetelement study instance uid absent in dataseterrorid_application expectedimage_%m-%d-%Y_loadsearch resultsProject-Id-Version: ginkgocadx Report-Msgid-Bugs-To: ginkgo@metaemotion.com POT-Creation-Date: 2014-06-11 15:50+0100 PO-Revision-Date: 2014-06-11 15:50+0100 Last-Translator: Carlos Barrales Ruiz Language-Team: YOKOHAMA Language: ja_JP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 1.6.5 X-Launchpad-Export-Date: 2012-04-24 11:40+0000 X-Poedit-Basepath: . X-Poedit-KeywordsList: _;_Std X-Poedit-SourceCharset: utf-8 X-Poedit-SearchPath-0: ..\.. * 患者の名字と名前を合わせて、61文字以上にはできません. * 身長のフォーマットがセンチメーターでは正しくありません * 体重のフォーマットが正しくありません. 有効な範囲は0から400kgです. * 患者IDが必要です * 患者の誕生日が検査日の後です - SSL/TLSを使用したいなら、有効な証明書とプライベートキーを設定してください - ローカルAETの最大長は16文字です - PDUサイズは0かそれ以上にすべきです(デフォルトは16384) - ローカルポートが大きすぎます - ローカルポートは正整数です(16bits) - AETの最大長は16文字です - PDUの最大サイズは - PDUの最小サイズは - ポートが大きすぎます - ポートは正整数です(16bits) - この PACS id は使用済み %d エラーがあります (詳細はログを参照してください) リトライしますか? . このモデルにモダリティがありません: 最初に追加してね. . このモデルには SOP クラスがありません: 最初に追加してね. . このモデルには転送構文がありません: 最初に追加してね. : バイト量: 存在しません 無許可 の から モダリティへ SOP Class へ trying temp サポートされないコンポーネント 転送構文と一緒に "accion" 属性は "plantilla" スコープで予期"accion" 属性は "plantilla" スコープで無効"action" attribute expected at "gnkworkflow" scope"action" attribute invalid at "gnkworkflow" scope"aid" attribute expected at "hce" scope"ambito" attribute expected at "dimse" scope"ambito" attribute expected at "plantilla" scope"ambito" attribute invalid at "dimse" scope"cid" atribute expected at "centro" scope"clave" attribute expected at "metadato" scope"code" attribute expected at "metadata" scope"code" attribute expected at "patient" scope"code" attribute expected at "physician" scope"codigo" attribute expected at "medico" scope"codigo" attribute expected at "metadato" scope"codigo" attribute expected at "paciente" scope"petition-id" attribute expected at "gnkworkflow" scope"iid" atribute expected at "institution" scope"key" attribute expected at "metadata" scope"pacs-retrieve-sid" attribute empty at "gnkworkflow" scope"pacs-store-sid" attribute empty at "gnkworkflow" scope"pacs_retrieve_sid" attribute empty at "plantilla" scope"pacs_store_sid" attribute empty at "plantilla" scope"uid" attribute expected at "dimse" scope"valor" attribute expected at "medico" scope"value" attribute expected at "physician" scope"value" attribute expected at "query-retrieve-level" scope%d 結果を見つけました%m/%d/%Y%m/%d/%Y %h:%M:%s%m/%d/%Y 00:00:00&受諾&キャンセル&閉じる&全て閉じる&履歴から削除&編集&終了&終了&ファイル&ヘルプ&次へ >(IDあるいは医療履歴番号))): 必要ならばアタッチして設定をチェックして下さい): は、HL7 IDとして有効ではありません(例: code^description^namespaceId).../動作タスクは000/00/0000 00:00:001x1 レイアウト1x2 レイアウト2x1 レイアウト2x2 レイアウト3x3 レイアウト4x4 レイアウト644654645< &前へ@AETAcc#受諾Accession Numberアソシエーション番号取得DICOM 取得ファイルPACSからDICOM検査を取得DICOM DIRから取得PACSから画像を取得取得情報アクティブ加える上位設定...上位設定...上位設定年齢全ての患者いつも表示されているこれらのファイルを使用匿名匿名設定匿名化匿名化モード(履歴はクリアされます)いつでも適応このファイルをディスクから削除してもいいですか?読み込み処理をキャンセルしてもいいですか?削除してもいいですか 領域矢印承認されたアソシエーション (Max Send PDV: アソシエーション拒否: 悪いアプリケーションコンテキスト名: アソシエーション拒否: 未実装のクラス UID が規定されましたアソシエーション(dicom://非対称システム認証自動計算アップデートの自動チェックHL7送信サービスを自動開始B/WB/W Inverse戻るBarten間隔:誕生日 Black BodyCairoキャリブレーション中...キャリブレーション値が低すぎますPACSへアップロードできません: PACSへアップロードできません: 内部エラーキャンセル心臓中央 (I)中央 (M)センチメーター証明書この接続に証明書を使用Ginkgo CADx に使用される認証変更...パスワード変更...パスワード変更CharLS文字セットアップデートをチェック新しいヴァージョンをチェックアップデートのチェックアップデートの自動チェックアップデートチェックエラーディレクトリを選択開きたいファイルを選んで下さい/sクリーン後クリーン前DICOM化の後にディレクトリを削除DICOM化の前にディレクトリを削除クリアログクリア...閉じるGinkgo CADx を閉じる全て閉じる全てのビューを閉じる全てのウインドウを閉じるDICOM化の後、Ginkgo CADxは自動的に閉じます現在のビューを閉じるこの通知を閉じるアプリケーションを閉じて、保留中コマンドを中断するGinkgoCADxを閉じる...コブコブ角度 (2直線)コメント日付をコミットコミット情報コミット済みローカルステーションのパラメータ設定グリッド設定グリッド設定場所設定環境を設定中...パスワード確認取り外しを承認ノードの取外しを承認 プロファイル削除の確認 接続テスト失敗接続テスト成功続くエントリポイントが見つかりません拡張ライブラリが読み込み出来ませんライブラリが読み込めません. ログをチェックしてくださいファイル書き込みができませんサムネイルを作成中...サムネイル作成中...作成日CreditsDCMTKDICOM (ネイティブフォーマット)DICOM DirDICOM Dirは履歴が格納されたローカルディレクトリですDICOM書き出しログノードDICOM ノードDICOM data from the files to be generated can be populatedDICOM ノードDICOM ノード設定日付データが修正されました日付日時日付:デフォルト規定の ORU テンプレートデフォルト値削除ウィジット削除メッセージを削除選択項目を削除デモデータ概要送信先送信先:DICOM化完了DICOM化が成功DICOM化ファイル距離コマンド実行中はアプリケーションを閉じないで下さいこのアップデートについて再び通知しない画像コーディックを変えません(可能なら)今後、このメッセージを表示しないダウンロード%s画像をダウンロード全てのモダリティをダウンロードモダリティのダウンロード シリーズをダウンロード検査をダウンロード%d ファイルをダウンロード中%d/%d ファイルをダウンロード中ファイルをダウンロード中...PACSからダウンロード中ER7編集...メッセージを編集ユーザー編集パブリックキーの編集電子健康記録システムエレメント楕円設定をクリアTLS設定を有効HTTPプロキシを有効リモートPACS設定を有効シェーダを有効有効キャリブレーション値を入力してくださいエラーError accessing the controller subsystem integration: (GIL:: DICOM).アプリケーションのアップデートチェックエラーURL接続エラーデータベース作成エラー: エラー dicomDirデータベース作成エラー 履歴データベース作成 エラー サムネイルデータベース作成 メッセージ削除中にエラー検査のダウンロードに失敗: メッセージ編集エラーワークフロー実行エラー ワークフロー実行エラー 内部エラーメッセージ取得エラー認可配信エラー: 配信はリモートエンドで承認されません認可ロジックでエラー. メッセージIDのコントロールは承認されませんエラー DICOM コンフォーマンスファイルのロード検査読み込み中にエラー検査読み込み中にメモリ不足でエラーエラー 検査ロード中.検査読み込み中にエラー: 検査読み込みエラー: 内部エラー検査読み込みエラー: 空きメモリがありませんエラーメッセージXMLパースエラー: メッセージパージエラーメッセージキューイングエラー. サプライヤをチェックして下さい履歴読み込みエラー: 検査読み込みエラー:検査読み込みエラー: 検査読み込みエラー: サポートされないピクセルフォーマット保存エラーエラー HL7 メッセージ送信 詳細はログを見て下さいエビデンス送信エラー:エビデンス送信エラー: 内部エラー送信エラーメッセージ. 送信されました 送信エラーメッセージ:エラー TLS 層の設定: ファイル格納中にエラー, ディレクトリ権限をチェックしてくださいPACSへ検査をアップロード中にエラー: フィールドを検証中にエラーエラー スレッド動作中: エラー:エラー: PACSエントリ設定が見つかりません シリーズ保存中にエラーが起きました 閉じてもいいですか? 例外を読み込み中:例外ファイルが既に存在する終了アプリケーションを終了PACSを探索...ディレクトリを探索ディレクトリを探索中...ドライブ探索中...設定書き出し書き出しに成功しました画像書き出し書き出し完了DICOM DIRへ書き出し%d の %d ファイルを書き出し中ファイルを書き出し中...画像書き出し中...シリーズ書き出し %d の %d拡張機能記述子が一致しません拡張機能拡張機能設定ファイルを展開中...認可配信に失敗ディレクトリ作成に失敗しました. パスが正確か上位ディレクトリに権限があるかを確認して下さいデータベース内のナンバー削除に失敗: 履歴を空にする事に失敗しました. 開いている検査を閉じて下さい履歴クリアに失敗: 検索失敗: 権限設定に失敗: 接続開始に失敗しましたFamFamFam Icons女性ファイルは格納できません ファイルは存在します 上書きしますか?Filler Application IDフロー同等環境における大規模な実装のために、 ローカルAETに特別なワイルドカードが使用可能です: %IP IP Address %IP n-th Octet (1~4) %HOSTNAME Host Name"アップロード時に強制ロスレス圧縮フォーマットFugue IconsフルスクリーンフルスクリーンGE ColorGIL/DICOM/Conformance総合総合設定パラメータプレビュー作成中...サムネイルを生成中...GetGingo CADx Application ID used to fill MSH.3 fieldGinkgo CADxGinkgo CADx Application IdGinkgo CADx は不活性を検出して %d 秒以内に閉じます 続けてもいいですか?Ginkgo CADx 1つ以上のリムーバブル装置を検出しました, ルートディレクトリにDICOMDIRがありません. 取得したいドライブを再帰的に選択して下さいGinkgo CADx は次の項目から圧縮できませんGinkgo CADxは、一つ以上のユーザーが必要です変更を有効にするには Ginkgo CADx の再起動が必要です拡張機能の変更を有効にするには Ginkgo CADx の再起動が必要です権限変更を適応するにはGinkgo CADxの再起動が必要ですGinkgo CADxプライベートタグGinkgo CADx 制約事項Ginkgo CADxタグ (評価マップ...)Ginkgo CADxはアップデートされましたGinkgo CADxのアップデートGinkgo 拡張タイトルGray Rainbow大半径グリッドグリッド寸法グループHL7サービスHL7メッセージコントロールHL7モニタ身長隠すDICOMタグパネルを隠すグリッドを隠すコーナーアノテーションを隠すホストHostname (IP or DNS) integration engineホスト名 / ポートホストネームがありませんHot GreenHot IronHot Metalライセンスを受け入れますライセンスを受け入れませんISO_IR 100ISO_IR 101ISO_IR 109ISO_IR 110ISO_IR 126ISO_IR 127ISO_IR 138ISO_IR 144ISO_IR 148ISO_IR 192ISO_IR 6ITKIdモジュール設定内の不定型なIdテンプレート識別情報Identificator *If you accept the terms of the agreement, click "I Accept the license" to continue. You must accept the license to start using Ginkgo CADx.SSL/TLSを使用したいなら、有効な証明書とプライベートキーが必要です入ってくる操作を無視画像キャリブレーション画像書きだしウィザード画像読み込みウィザード画像の取得が完了.サポートされてない画像フォーマット画像提示情報画像選択Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*.bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*読み込み読み込み...読み込み設定読み込みファイルをDICOMフォーマットへ読み込み処理が失敗:読み込みが完全に成功, 変更を反映するにはGinkgo CADx を再起動して下さい読み込み...不活性不活性を検出履歴を含めています...履歴にあるファイルを含め中...ファイルを含めています...画像を含めています 情報Ini Files(*.ini)|*.iniIni files(*.ini)|*.ini環境を初期化中...施設ID施設名施設実装エンジンの転送レイヤープロトコルIntegration engine組み込みエンジンのホストネームがセットされていません組み込みエンジンのポートがセットされていません内部エラー内部エラーアップデートチェックの内部エラー認証プロセス中の内部エラー検査読み込みで内部エラー, 不明なフォーマット検査読み込み内部エラー: 検査読み込み中の内部エラー:スレッド動作中の内部エラー: パラメータを解釈中...プロパティ解釈中無効な DICOM コンフォーマンスファイル識別子なしの "patient" タグの読み込んでいますJPEGKgLONILONI2言語3ヶ月前30日以内7日以内長さレベルLibJpegLibPngライセンスに同意ライセンスメニューライセンス読み込み...ユーザによって読み込みがキャンセルされました読み込み中プラグインを読み込み中...リソースをロード中 ...読み込み中...ローカルAETローカルAET証明書ローカルPACSローカル施設場所場所設定ローカルタイトルは重複できません場所既知のパスが組み込まれた場所(例:遠隔共有ディスク)LogLog file (*.log) | *.log | Text file (*.txt) | *.txtログモニタログモニターログテキストログイン下半径MLLP男性不正なXML不定型なテンプレートId (タブが最大数に達しました最大の Ginkgo CADx アプリケーションが不活性タイトルは最大8文字ですメッセージメッセージコンテンツ:メッセージ 送信成功メッセージフォーマットメッセージMetaEmotion Healthcareメタデータメーター計量グリッドミクロンミリメーターモダリティモダリティモダリティダウンロードエラー修正日修正済みモニタ寄せ集めるMoveNACKを受信:NAME SURNAME SECOND_SURNAME氏名サポートが必要 ...新規...新しいアップデート新しいユーザー新しいヴァージョンがあります新しいヴァージョンがあります (いいえリムーバブル装置に DICOMDIR がありません, %s ドライブを再帰的にスキャンしますかリムーバブル装置に DICOMDIR がありません. 他のパスを再帰的にスキャンしますか?ログインしていません結果が見つかりませんノーマルノーマル角度 (3点)コミットしていないXML に十分なパラメータが見つかりません未実装ノート頂点の数OKOkAET省略ID省略ポート省略オンラインマニュアルオンラインサポート開くファイルを開くシリーズを開く次と一緒にシリーズを開く...Open Source DICOM CADx environmentオープンソースライセンスファイルを開くフォルダを開くリムーバブル装置を開く開く...OpenGLOpenSSLその他その他DICOMファイルのデータを概観上書きP-ValuePACSPACSの制限PACS からの取得は制約されますPACSエラー: PACS-サービスPDU (KB)PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*パラメータ:パスワードパスワードと確認パスワードは同一にしてくださいパスワード変更に成功パスワードは6文字以上にしてくださいパスワードは設定されていませんパスワードは設定されていますパスパスの場所が見つかりません患者患者ID患者情報患者氏名患者の氏名保留周囲長Petitioner System ID医師医師ID医師名点点 (I)点 (M)多角形ポートポートは有効な数ではありません位置 (I)位置 (M)Powered byプレビュー印刷プライベートキー公開鍵と認証鍵が一致しませんPEMフォーマットのプライベートキーユーザーによって処理がキャンセルされましたプロファイルプロファイル名プロファイル名は重複できませんプロファイルプロファイル設定プログラムアップデートプロパティプロパティ...次のプロパティ プロパティ...プロトコルプロキシサーバには認証が必要ですプロキシ設定パブリックキーPEMフォーマットのパブリックキー品質PACS id検索エラー クエリリトリーブレベルが明示されていませんREGEXP 引数の数が不正に呼び出されました: 2の代わりに %d.ROIデータセットを読み込み中プロパティ読み込み実測値Receiver organization IDアソシエーション受信に失敗: 再圧縮コーディック(0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG Lossless)再実行依頼医師ID依頼元医師IDリフレッシュ規則表現が無効: '関連情報削除全て削除送信メッセージを削除要求されたモジュールに導入サポートはありません要求されたモジュールは登録されていませんデフォルトにリセット選択患者以外の検索を制限最大サイズで検査検索を制限結果リトリーブ方法リトリーブモード接続の再利用接続を再利用するには1つ以上のクエリが必要です動作中SQL LiteSSL/TLS保存ログ保存...保存ログX寸法Y寸法検索パラメータなしの検索は長い時間が必要です 続けますか?セキュリティセキュリティ設定セキュリティタイプDICOMDIRを選択有効なDICOMDIRファイルを選択有効なPACSサーバを選択して下さい証明書の選択取得したいDICOMDIRファイルを選択ドライブを選択開きたいドライブを選択ファイルシステムからファイル選択ファイル選択...画像を選択ファイルを格納したいディレクトリを選択して下さい書き出したい画像とフォーマットを選択してください選択された画像プロファイル読み込み選択中XMLパース中にセマンティックエラー(詳細はログを見ろよ): インポート中にHL7メッセージを送信インポート中にPACSへ検査を送信送信タスクステータス:HL7 メッセージを送信 %d の %d送信コンマでアドレスを区切って下さい.シリーズシリーズ インスタンス UIDシリーズ日シリーズは存在しませんシリーズパスが見つかりませんサーバサーバIDが見つかりません ID = サーバ設定サービスサービスIDサービス名デフォルトにセットパスワード設定アクティブに設定ユーザーにより設定圧縮設定, 0は圧縮無し(0..14)規定値にセットメインパスワード設定...パスワード設定プロパティの活性を設定プロパティの不活性を設定設定が見つかりません電子健康記録システムの設定設定メニューを設定セキュリティ設定性別DICOMパネルを表示グリッド表示メッセージを表示コーナーアノテーションを表示フルスクリーンで表示グリッド表示開始時に表示開始時の規定値を表示重複した SID 拡張機能はスキップします:選択されたシリーズのいくつかは削除されました間隔が有効ではありません: (画像の間隔が有効ではありません: (Spectrum開始開始ページ検索を開始中...サービスを開始中...ツールを開始中...ステータスステータス:Step %d of %d: Step 1 of 3: 画像を読み込みStep 2 of 3: 画像をコピーStep 3 of 3: 画像をアップロードStern停止停止履歴を格納中...スタディ検査と一緒に検査検査詳細スタディ インスタンス UID検査UID検査日検査ダウンロードサイズの上限を超えました検査が不正かサポートされていませんスタイル名字システム認証タブを再グループ化タブをグループ化タブ構成タスクサポートされないテンプレートId (テスト実装エンジンの接続性接続テストTest engineテストタイトルサーバ接続をテスト中...サーバ接続をテスト中...テキストキャリブレーション値が高すぎますキャリブレーション値が低すぎますキャリブレーション値は十進法数にしてくださいこのファイルフィールドの検証中にエラーが起こりましたPDUサイズは有効な数ではありませんポートは有効な数ではありません要求されたモジュールは登録されていません選択されたディレクトリは開けません選択されたディレクトリは存在しません このディレクトリを作成しますか?選択されたディレクトリは存在しません 作成しますか?このサービスは正しくC-ECHOに反応しない投入プロセスは、送信する準備が開始されていますユーザーネームかパスワードが不正確です%d の保留タスクがあります選択されたパスに他のDICOMディレクトリが存在しますエラーがあります: いくつかの導入サポートモジュールはありません現在の設定にアップデートチェックするためのURLがありませんPACS設定がありません動作タスクはありません新しいヴァージョンのGinkgo CADxはありませんいくつかの導入サポートモジュールは登録されていません匿名化中にエラーが発生しましたパスワード変更でエラーがありました. 詳細はログでディレクトリ作成中にエラーが発生しましたユーザー削除でエラーがありました. 詳細はログで書き出し中にエラーが発生しました読み込み中にエラーがありました, 属性をチェックしてくださいユーザー追加でエラーがありました. 詳細はログでディレクトリ読み込み中にエラーがありました. 書き込み権限を確認して下さいファイル書き込み中にエラーがありましたこのシリーズはローカル履歴から削除されていますエラーの発生原因:このファイルは Dicom Dirs:このファイルは存在しません:このファイルは DICOM フォーマットではありません:スレッディング時間タイトル本日本日午前本日午後ツールベースツールを読み込み中...台形進む (I)進む (M)タイプUNKNOWUPDATE_INFOオンラインサポートのURLサポートされた SOP クラスが追加できません サポートされた転送構文が追加できません接続できません: ネットワークサポートを開始できませんTLS 転送層が作成できませんモダリティを開くことができませんPDF DICOM化のための予約メモリがありません画像DICOM化のための予約メモリがありません元に戻す予期せぬエラー. モジュールを再選択して下さいUnique identifier of the Picture Archiving and Communication System Application (SIID/PACS).アプリケーションの一意な識別子 (SIID/Ginkgo CADx).Unique identifier of the filler application (SIID/Ginkgo).Unique identifier of the organization receiving the message.Unique identifier of the requesting system.不明不明なエラー不明なモジュール Id (不明なプロトコル不明なクエリ/リトリーブレベル保存していないデータサポートされていないプロトコルアップデート周期(日数)PACSサーバへ画像をアップロードファイルをアップロード %d のうち %dファイルをアップロード中...SSL/TLS を使用デフォルトとして使用デフォルト証明書を使用ユーザーユーザー名ユーザー削除に成功ユーザー追加に成功ユーザーログインユーザー名ユーザー名は4文字以上にしてくださいユーザ名重複ユーザー/パスワードユーザー通常、送信中メッセージのエラーによるVR BonesVR Muscles & BonesVR Red VesselsVTK値クライアント証明書を照合サーバ証明書を照合表示フルスクリーン表示最新の Ginkgo CADx アップデートの注意注意注意. ディレクトリを更新するには、開いている全てのシリーズを閉じて下さい注意. ディレクトリをアップデートするには、現在開いているシリーズを閉じて下さい体重ウィジットプロパティウィジット名ウインドウアノテーションWorkstationこれらを上書きしますか?これらのメッセージを削除しますか?この検査の変更を保存してもいいですかWxWidgetsXX軸寸法XML パーサが見つかりません. キー=XML DICOM化XMLパースの内部エラーY軸寸法はい昨日この種類のモジュールをダウンロードすることは許可されていません.開いているシリーズは削除できませんDICOM DIRへの書込権限がありません. プレファレンスはテンポラリディレクトリへ格納されますタブが最大数に達したので, いくつかのタブを閉じてから再度試して下さいプライベートキーとパブリックキーを選択して下さいPACSサーバとコミュニケーションするために使用するローカルAETを設定する必要があります. 転送のキモとして、ポートは火壁でオープンしてください.PACSサーバとコミュニケーションするために使用するローカルAETを設定する必要があります. 転送のキモとして、ポートは火壁でオープンしてください.一つ以上のユーザーを作成して下さい組込XMLか設定メニューで、デフォルトPACSを指定して下さい続けるにはタイトルと場所の項目を埋めて下さい続けるには全ての項目を埋めて下さい続けるには全ての項目を埋めて下さい画像を選択してください一つ以上の画像を選択して下さい読み込みたい画像を選択して下さい読み込みプロファイルを選択して下さい読み込みに使用するプロファイルを選択して下さいメインパスワードを設定して下さいクエリで使用したい属性を明示してください。Zlib全てのファイルcmデータセットに患者 id が欠落していますデータセットにシリーズインスタンス uid が欠落していますデータセットに SOP インスタンス uid が欠落していますデータセットにスタディインスタンス uid が欠落していますエラーid_application expected画像_%m-%d-%Y_読み込み検索結果ginkgocadx-3.8.7/cadxcore/lang/ja/cadxcore.po000066400000000000000000007445321314736454600211360ustar00rootroot00000000000000# Japanese translation for ginkgocadx # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the ginkgocadx package. # YOKOHAMA , 2011. # msgid "" msgstr "" "Project-Id-Version: ginkgocadx\n" "Report-Msgid-Bugs-To: ginkgo@metaemotion.com\n" "POT-Creation-Date: 2014-06-11 15:50+0100\n" "PO-Revision-Date: 2014-06-11 15:50+0100\n" "Last-Translator: Carlos Barrales Ruiz \n" "Language-Team: YOKOHAMA \n" "Language: ja_JP\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" "X-Launchpad-Export-Date: 2012-04-24 11:40+0000\n" "X-Poedit-Basepath: .\n" "X-Poedit-KeywordsList: _;_Std\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SearchPath-0: ..\\..\n" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "B/W" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "B/W Inverse" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "Barten" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "Black Body" # A Window/Level preset #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "心臓" # a LookupTable name VR == Volume Render #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "VR Bones" # a LookupTable name VR == Volume Render #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "VR Muscles & Bones" # a LookupTable name VR == Volume Render #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Red Vessels" msgstr "VR Red Vessels" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "Gray Rainbow" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "Stern" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "Spectrum" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Metal" msgstr "Hot Metal" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "Hot Iron" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Green" msgstr "Hot Green" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "GE Color" msgstr "GE Color" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PET" msgstr "" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "フロー" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "LONI" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "LONI2" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "非対称" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "P-Value" msgstr "P-Value" # a LookupTable name #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "ROI" #: ..\../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #: ..\../api/dicom/idicomconformance.cpp:214 #: ..\../api/dicom/idicomconformance.cpp:220 msgid "GIL/DICOM/Conformance" msgstr "GIL/DICOM/Conformance" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid "Unable to add supported transfer syntax " msgstr "サポートされた転送構文が追加できません" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid " to SOP Class " msgstr " SOP Class へ " #: ..\../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr " . このモデルには転送構文がありません: 最初に追加してね." #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr " . このモデルには SOP クラスがありません: 最初に追加してね." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid "Unable to add supported SOP Class " msgstr "サポートされた SOP クラスが追加できません " #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid " to Modality " msgstr " モダリティへ " #: ..\../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr " . このモデルにモダリティがありません: 最初に追加してね." #: ..\../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "エラー DICOM コンフォーマンスファイルのロード" #: ..\../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "無効な DICOM コンフォーマンスファイル" #: ..\../api/iannotator.cpp:97 #, fuzzy msgid "Slice" msgstr "スライス: " #: ..\../api/iannotator.cpp:97 msgid "of" msgstr "" #: ..\../api/iannotator.cpp:97 #, fuzzy msgid "Volume" msgstr "3D ボリュームレンダリング" #: ..\../api/iannotator.cpp:107 msgid "Voxel:" msgstr "" #: ..\../api/iannotator.cpp:110 #, fuzzy msgid "Image without metric information" msgstr "画像提示情報" #: ..\../api/iannotator.cpp:119 #, fuzzy msgid "Slice thickness" msgstr "スライス: " #: ..\../api/iannotator.cpp:127 #, fuzzy msgid "Slice location" msgstr "スライス: " #: ..\../api/iannotator.cpp:139 #, fuzzy msgid "Scale" msgstr "グリッド寸法" #: ..\../api/iannotator.cpp:147 msgid "Right" msgstr "" #: ..\../api/iannotator.cpp:149 msgid "Left" msgstr "" #: ..\../api/iannotator.cpp:219 #, fuzzy msgid "Position:" msgstr "位置 : " #: ..\../api/iannotator.cpp:272 #, fuzzy msgid "Value:" msgstr "値" #: ..\../api/iexception.cpp:52 #, fuzzy msgid "Exception in component" msgstr "例外を読み込み中:" #: ..\../api/initwx.cpp:439 msgid "Initializing environment ..." msgstr "環境を初期化中..." #: ..\../api/initwx.cpp:446 ..\../api/initwx.cpp:447 ..\../api/initwx.cpp:448 #: ..\../api/initwx.cpp:449 ..\../api/initwx.cpp:450 ..\../api/initwx.cpp:451 #: ..\../api/initwx.cpp:452 ..\../api/initwx.cpp:453 msgid "Ginkgo CADx restrictions" msgstr "Ginkgo CADx 制約事項" #: ..\../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "" #: ..\../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "匿名化モード(履歴はクリアされます)" #: ..\../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "タブが最大数に達しました" #: ..\../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "最大の Ginkgo CADx アプリケーションが不活性" #: ..\../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "DICOM化の後、Ginkgo CADxは自動的に閉じます" #: ..\../api/initwx.cpp:451 msgid "Export images" msgstr "画像書き出し" #: ..\../api/initwx.cpp:452 msgid "Acquire DICOM files" msgstr "DICOM 取得ファイル" #: ..\../api/initwx.cpp:453 msgid "Import files to DICOM format" msgstr "読み込みファイルをDICOMフォーマットへ" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "Online manual" msgstr "オンラインマニュアル" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 #, fuzzy msgid "URL of manual" msgstr "オンラインマニュアル" #: ..\../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "" #: ..\../api/initwx.cpp:459 msgid "Online support" msgstr "オンラインサポート" #: ..\../api/initwx.cpp:459 msgid "URL of online support" msgstr "オンラインサポートのURL" #: ..\../api/initwx.cpp:459 #, fuzzy msgid "http://ginkgo-cadx.com/" msgstr "HTTPプロキシを有効" #: ..\../api/initwx.cpp:460 ..\../api/initwx.cpp:461 msgid "Program Updates" msgstr "プログラムアップデート" #: ..\../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "最新の Ginkgo CADx アップデートの注意" # Ginkgo check-for-updates period #: ..\../api/initwx.cpp:461 msgid "Update period (days)" msgstr "アップデート周期(日数)" #: ..\../api/initwx.cpp:462 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "セキュリティ" #: ..\../api/initwx.cpp:462 msgid "Setup Security" msgstr "セキュリティ設定" #: ..\../api/initwx.cpp:463 msgid "Show on startup" msgstr "開始時に表示" #: ..\../api/initwx.cpp:463 msgid "Show on startup default value" msgstr "開始時の規定値を表示" #: ..\../api/initwx.cpp:465 ..\../api/initwx.cpp:466 #: ..\../main/gui/history3/historypanel3.cpp:328 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "ツール" #: ..\../api/initwx.cpp:465 msgid "Settings menu" msgstr "メニューを設定" #: ..\../api/initwx.cpp:466 msgid "License menu" msgstr "ライセンスメニュー" #: ..\../api/initwx.cpp:467 ..\../api/initwx.cpp:468 ..\../api/initwx.cpp:469 #: ..\../api/initwx.cpp:470 ..\../api/initwx.cpp:471 ..\../api/initwx.cpp:472 #: ..\../api/initwx.cpp:473 ..\../api/initwx.cpp:474 msgid "PACS Limits" msgstr "PACSの制限" #: ..\../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "" #: ..\../api/initwx.cpp:468 msgid "Upload images to a PACS server" msgstr "PACSサーバへ画像をアップロード" #: ..\../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "PACSから画像を取得" #: ..\../api/initwx.cpp:470 msgid "Enable remote PACS configuration" msgstr "リモートPACS設定を有効" #: ..\../api/initwx.cpp:471 msgid "Enable TLS configuration" msgstr "TLS設定を有効" #: ..\../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "選択患者以外の検索を制限" #: ..\../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "最大サイズで検査検索を制限" # DICOM option (LossLess image compression) #: ..\../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "アップロード時に強制ロスレス圧縮" #: ..\../api/initwx.cpp:475 ..\../api/initwx.cpp:476 ..\../api/initwx.cpp:477 #: ..\../api/initwx.cpp:478 ..\../api/initwx.cpp:479 ..\../api/initwx.cpp:480 msgid "Import" msgstr "読み込み" #: ..\../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "" #: ..\../api/initwx.cpp:476 #, fuzzy msgid "Show accession number input" msgstr "アソシエーション番号" #: ..\../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "圧縮設定, 0は圧縮無し(0..14)" #: ..\../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" "再圧縮コーディック(0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" #: ..\../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "画像コーディックを変えません(可能なら)" #: ..\../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "" #: ..\../api/initwx.cpp:482 msgid "HL7 Service" msgstr "HL7サービス" #: ..\../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "HL7送信サービスを自動開始" #: ..\../api/initwx.cpp:483 ..\../api/initwx.cpp:484 ..\../api/initwx.cpp:485 msgid "XML dicomization" msgstr "XML DICOM化" #: ..\../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "インポート中にHL7メッセージを送信" #: ..\../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "インポート中にPACSへ検査を送信" #: ..\../api/initwx.cpp:485 msgid "Default ORU template" msgstr "規定の ORU テンプレート" #: ..\../api/initwx.cpp:488 ..\../api/initwx.cpp:489 ..\../api/initwx.cpp:491 #: ..\../api/initwx.cpp:493 ..\../api/initwx.cpp:494 ..\../api/initwx.cpp:495 #: ..\../api/initwx.cpp:496 ..\../api/initwx.cpp:498 msgid "Style" msgstr "スタイル" #: ..\../api/initwx.cpp:503 #, c-format msgid "Download %s images" msgstr "%s画像をダウンロード" #: ..\../api/initwx.cpp:504 ..\../api/initwx.cpp:508 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:21 msgid "PACS" msgstr "PACS" #: ..\../api/initwx.cpp:507 msgid "Download all modalities" msgstr "全てのモダリティをダウンロード" #: ..\../api/initwx.cpp:510 msgid "OpenGL" msgstr "OpenGL" #: ..\../api/initwx.cpp:510 msgid "Enable shaders" msgstr "シェーダを有効" #: ..\../api/initwx.cpp:513 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:388 #, fuzzy msgid "Ginkgo Cloud" msgstr "Ginkgo CADx" #: ..\../api/initwx.cpp:513 #, fuzzy msgid "Download from Ginkgo Cloud" msgstr "Ginkgo CADx は次の項目から圧縮できません" #: ..\../api/initwx.cpp:560 msgid "Tools loading base ..." msgstr "ベースツールを読み込み中..." #: ..\../api/initwx.cpp:562 msgid "Starting tools..." msgstr "ツールを開始中..." #: ..\../api/initwx.cpp:566 msgid "Loading plugins ..." msgstr "プラグインを読み込み中..." #: ..\../api/initwx.cpp:580 #, fuzzy msgid "Unable to start GinkgoCADx:\n" msgstr "接続できません: ネットワークサポートを開始できません" #: ..\../api/initwx.cpp:580 ..\../api/initwx.cpp:621 msgid "error" msgstr "エラー" #: ..\../api/initwx.cpp:584 msgid "Loading resources ..." msgstr "リソースをロード中 ..." #: ..\../api/initwx.cpp:587 msgid "Starting services..." msgstr "サービスを開始中..." #: ..\../api/initwx.cpp:601 msgid "Configuring environment ..." msgstr "環境を設定中..." #: ..\../api/initwx.cpp:621 msgid "Failed to set permissions:\n" msgstr "権限設定に失敗:\n" #: ..\../api/initwx.cpp:634 msgid "Updating ..." msgstr "" #: ..\../api/initwx.cpp:638 msgid "Interpreting parameters ..." msgstr "パラメータを解釈中..." #: ..\../api/initwx.cpp:689 #, fuzzy msgid "Error unregistering tools: " msgstr "ツール" #: ..\../api/initwx.cpp:769 #, fuzzy msgid "Starting" msgstr "ツールを開始中..." #: ..\../api/ivista.cpp:36 ..\../commands/comandocarga.cpp:73 msgid "Loading..." msgstr "読み込み中..." #: ..\../api/iwidgets.cpp:268 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ..\../main/gui/import/pasosimportacionbase.cpp:151 msgid "Name" msgstr "氏名" #: ..\../api/iwidgets.cpp:285 msgid "Area" msgstr "領域" #: ..\../api/iwidgets.cpp:302 msgid "Perimeter" msgstr "周囲長" #: ..\../api/iwidgets.cpp:316 msgid "Travel (I)" msgstr "進む (I)" #: ..\../api/iwidgets.cpp:326 msgid "Travel (M)" msgstr "進む (M)" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #: ..\../api/threads/thread.cpp:120 msgid "Threading" msgstr "スレッディング" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid "Error while running thread: " msgstr "エラー スレッド動作中: " #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid " : " msgstr " : " #: ..\../api/threads/thread.cpp:120 msgid "Internal error while running thread: " msgstr "スレッド動作中の内部エラー: " #: ..\../api/widgetserializable.cpp:60 msgid "Creation Date" msgstr "作成日" #: ..\../api/widgetserializable.cpp:65 msgid "Modification Date" msgstr "修正日" #: ..\../api/widgetserializable.cpp:68 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ..\../wx/gnkinforme/gnkinformebase.cpp:40 msgid "Physician" msgstr "医師" #: ..\../commands/acquirefromurlcommand.cpp:55 #: ..\../commands/pacsdownloadcommand.cpp:88 #: ..\../commands/synchronizationcommand.cpp:70 msgid "Downloading files ..." msgstr "ファイルをダウンロード中..." #: ..\../commands/acquirefromurlcommand.cpp:69 #: ..\../commands/synchronizationcommand.cpp:91 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, c-format msgid "Downloading file %d" msgstr "%d ファイルをダウンロード中" #: ..\../commands/acquirefromurlcommand.cpp:81 #, fuzzy msgid "Error downloading file: " msgstr "%d ファイルをダウンロード中" #: ..\../commands/acquirefromurlcommand.cpp:95 #: ..\../commands/pacsdownloadcommand.cpp:114 #: ..\../commands/synchronizationcommand.cpp:121 msgid "Internal Error" msgstr "内部エラー" #: ..\../commands/acquirefromurlcommand.cpp:115 #, fuzzy msgid "Error downloading files: " msgstr "ファイルをダウンロード中..." #: ..\../commands/autocleaningcommand.cpp:62 #, fuzzy msgid "Cleaning dicomdir..." msgstr "DICOMDIRを選択" #: ..\../commands/cloudcommand.cpp:67 #, fuzzy msgid "Downloading files..." msgstr "ファイルをダウンロード中..." #: ..\../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "" #: ..\../commands/cloudcommand.cpp:183 #, fuzzy msgid "Unknown operation" msgstr "不明" #: ..\../commands/cloudcommand.cpp:188 msgid "Error in cloud operation. See log to get more details..." msgstr "" #: ..\../commands/cloudcommand.cpp:249 #, fuzzy msgid "Could to retrieve study." msgstr "リトリーブ方法" #: ..\../commands/cloudcommand.cpp:260 ..\../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" #: ..\../commands/cloudcommand.cpp:262 #, fuzzy msgid "Error retrieving study." msgstr "検査読み込みエラー: 内部エラー" #: ..\../commands/cloudcommand.cpp:271 #, fuzzy msgid "Study successfully retrieved." msgstr "検査" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "Speed" msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "bytes/sec during" msgstr " バイト量: " #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "seconds" msgstr "最大の Ginkgo CADx アプリケーションが不活性" #: ..\../commands/cloudcommand.cpp:275 #, fuzzy msgid "Empty Response" msgstr "設定をクリア" #: ..\../commands/cloudcommand.cpp:289 #, fuzzy msgid "Extracting files..." msgstr "ファイルを展開中..." #: ..\../commands/cloudcommand.cpp:313 ..\../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "" #: ..\../commands/cloudcommand.cpp:383 #, fuzzy msgid "Could to perform query." msgstr "検索失敗: " #: ..\../commands/cloudcommand.cpp:396 #, fuzzy msgid "Error perfoming the query." msgstr "PACS id検索エラー " #: ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "Query successfully performed." msgstr "PACS id検索エラー " #: ..\../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "" #: ..\../commands/cloudcommand.cpp:472 #, fuzzy msgid "Unknown JSon attribute:" msgstr "不明" #: ..\../commands/cloudcommand.cpp:482 #, fuzzy msgid "Error parsing JSon: " msgstr "XMLパースの内部エラー" #: ..\../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "" #: ..\../commands/cloudcommand.cpp:515 #: ..\../commands/openremovableunit.cpp:148 ..\../main/gui/open/abrir.cpp:119 #: ..\../main/gui/open/abrir.cpp:159 ..\../main/gui/open/opendialogs.cpp:146 msgid "Storing in the history..." msgstr "履歴を格納中..." #: ..\../commands/comandoactualizaciones.cpp:46 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:536 msgid "Check Updates" msgstr "アップデートをチェック" #: ..\../commands/comandoactualizaciones.cpp:136 msgid "Not enough parameters found on XML" msgstr "XML に十分なパラメータが見つかりません" #: ..\../commands/comandoactualizaciones.cpp:145 msgid "XML parsing internal error" msgstr "XMLパースの内部エラー" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Error checking application updates" msgstr "アプリケーションのアップデートチェックエラー" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Ginkgo CADx updates" msgstr "Ginkgo CADxのアップデート" #: ..\../commands/comandoactualizaciones.cpp:170 msgid "Internal error checking updates" msgstr "アップデートチェックの内部エラー" #: ..\../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "シリーズパスが見つかりません" #: ..\../commands/comandocarga.cpp:92 ..\../commands/comandocarga.cpp:96 msgid "Exception loading:" msgstr "例外を読み込み中:" #: ..\../commands/comandocarga.cpp:100 msgid "Study malformed or unsupported" msgstr "検査が不正かサポートされていません" #: ..\../commands/comandocarga.cpp:129 ..\../commands/comandocarga.cpp:139 msgid "Error loading study: " msgstr "検査読み込み中にエラー: " #: ..\../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "検査読み込み中にメモリ不足でエラー" #: ..\../commands/comandocarga.cpp:144 msgid "Error loading study." msgstr "エラー 検査ロード中." #: ..\../commands/comandocarga.cpp:149 msgid "Load canceled by user" msgstr "ユーザによって読み込みがキャンセルされました" #: ..\../commands/comandocarga.cpp:156 #: ..\../main/gui/history3/historypanel3.cpp:1056 #: ..\../main/gui/history3/historypanel3.cpp:1063 #: ..\../main/gui/history3/historypanel3.cpp:1068 msgid "Error loading study" msgstr "検査読み込み中にエラー" #: ..\../commands/comandoexportacion.cpp:81 #: ..\../commands/exporttodicomdircommand.cpp:214 msgid "Exporting files..." msgstr "ファイルを書き出し中..." #: ..\../commands/comandoexportacion.cpp:105 #: ..\../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "書き出しに成功しました" #: ..\../commands/comandoexportacion.cpp:158 #, c-format msgid "Exporting file %d of %d" msgstr "%d の %d ファイルを書き出し中" #: ..\../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "ファイル格納中にエラー, ディレクトリ権限をチェックしてください" #: ..\../commands/comandoexportacion.cpp:233 msgid "image_%m-%d-%Y_" msgstr "画像_%m-%d-%Y_" #: ..\../commands/comandoincluirhistorial.cpp:108 msgid "Exploring directory ..." msgstr "ディレクトリを探索中..." #: ..\../commands/comandoincluirhistorial.cpp:122 #, fuzzy msgid "Reading DICOMDIR ..." msgstr "DICOMDIRを選択" #: ..\../commands/comandoincluirhistorial.cpp:142 #: ..\../commands/comandoincluirhistorial.cpp:156 #: ..\../commands/comandoincluirhistorial.cpp:177 msgid "Including files in the history .." msgstr "履歴にあるファイルを含め中..." #: ..\../commands/comandoincluirhistorial.cpp:196 msgid "Exploring directory " msgstr "ディレクトリを探索" #: ..\../commands/comandoincluirhistorial.cpp:256 #: ..\../commands/linkhistorycommand.cpp:118 msgid "Image acquisition finished." msgstr "画像の取得が完了." #: ..\../commands/comandoincluirhistorial.cpp:258 #, c-format msgid "There have been included %d images." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:261 #: ..\../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" "\n" " %d エラーがあります (詳細はログを参照してください)" #: ..\../commands/comandoincluirhistorial.cpp:273 #: ..\../commands/linkhistorycommand.cpp:133 msgid "This files doesn't exist:" msgstr "このファイルは存在しません:" #: ..\../commands/comandoincluirhistorial.cpp:284 #: ..\../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "このファイルは DICOM フォーマットではありません:" #: ..\../commands/comandoincluirhistorial.cpp:296 #: ..\../commands/linkhistorycommand.cpp:156 msgid "This files are Dicom Dirs:" msgstr "このファイルは Dicom Dirs:" #: ..\../commands/comandopacs.cpp:58 ..\../commands/pacsdownloadcommand.cpp:61 #: ..\../commands/sendpacscommand.cpp:137 #, fuzzy msgid "There is not any Remote PACS configured" msgstr "PACS設定がありません" #: ..\../commands/comandopacs.cpp:84 #, fuzzy msgid "Querying PACS ..." msgstr "PACS" #: ..\../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "Error accessing the controller subsystem integration: (GIL:: DICOM)." #: ..\../commands/comandopacs.cpp:98 msgid "Starting Search ..." msgstr "検索を開始中..." #: ..\../commands/comandopacs.cpp:108 #: ..\../commands/pacsdownloadcommand.cpp:101 msgid "Server ID not found. ID = " msgstr "サーバIDが見つかりません ID = " #: ..\../commands/comandopacs.cpp:110 ..\../commands/comandopacs.cpp:112 #: ..\../commands/comandopacs.cpp:114 ..\../commands/comandopacs.cpp:116 msgid "Query error with PACS Id " msgstr "PACS id検索エラー " #: ..\../commands/comandopacs.cpp:116 #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/gui/history3/historypanel3.cpp:1068 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error" msgstr "内部エラー" #: ..\../commands/comandopacs.cpp:135 msgid "Failed to perform search: " msgstr "検索失敗: " #: ..\../commands/dbmigrationcommand.cpp:94 #: ..\../commands/dbmigrationcommand.cpp:103 #, fuzzy msgid "Migrating old DICOM Dir ..." msgstr "DICOM Dir" #: ..\../commands/dbmigrationcommand.cpp:99 #: ..\../commands/dbmigrationcommand.cpp:108 #, fuzzy msgid "Including files ..." msgstr "ファイルを含めています..." #: ..\../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 #: ..\../commands/dicomizecommand.cpp:181 #: ..\../commands/openremovableunit.cpp:74 #: ..\../commands/openremovableunit.cpp:110 #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../commands/pdfextractercommand.cpp:130 #: ..\../main/controllers/historycontroller.cpp:447 #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 #: ..\../main/controllers/historycontroller.cpp:1976 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ..\../main/gui/export/parametrosprincipales.cpp:161 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 #: ..\../main/gui/history3/historypanel3.cpp:1045 #: ..\../main/gui/history3/historypanel3.cpp:1078 #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1119 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 #: ..\../main/gui/import/selectimagesimportation.cpp:141 #: ..\../main/gui/import/selectimagesimportation.cpp:342 #: ..\../main/gui/import/selectimagesimportation.cpp:743 #: ..\../main/gui/import/selectimagesimportation.cpp:761 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ..\../main/gui/login/dialogologin.cpp:50 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ..\../main/gui/open/opendialogs.cpp:58 #: ..\../main/gui/open/opendialogs.cpp:62 #: ..\../main/gui/open/opendialogs.cpp:134 #: ..\../main/gui/progress/statusbarprogreso.cpp:284 #: ..\../main/gui/progress/statusbarprogreso.cpp:287 #: ..\../main/gui/progress/statusbarprogreso.cpp:292 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Info" msgstr "情報" #: ..\../commands/dbmigrationcommand.cpp:123 #, fuzzy msgid "Migration finisthed successfully" msgstr "DICOM化が成功" #: ..\../commands/dialogopathssobreescribirbase.cpp:27 #: ..\../commands/dialogopathssobreescribirbase.cpp:62 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "Overwrite" msgstr "上書き" #: ..\../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr "これらを上書きしますか?" #: ..\../commands/dialogopathssobreescribirbase.cpp:65 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ..\../main/gui/history3/historypanel3base.cpp:339 #: ..\../main/gui/history3/historypanel3base.cpp:415 #: ..\../main/gui/history3/historypanel3base.cpp:486 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ..\../main/gui/open/opendialogsbase.cpp:53 #: ..\../main/gui/open/opendialogsbase.cpp:131 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ..\../widgets/gui/calibracionbase.cpp:86 #: ..\../widgets/gui/selecciontextobase.cpp:60 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "キャンセル" #: ..\../commands/dicomizationcompletebase.cpp:24 #: ..\../commands/dicomizationcompletebase.cpp:33 #: ..\../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "DICOM化完了" #: ..\../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "DICOM化が成功" #: ..\../commands/dicomizationcompletebase.cpp:56 msgid "Don't show this message again" msgstr "今後、このメッセージを表示しない" #: ..\../commands/dicomizationcompletebase.cpp:62 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ..\../main/gui/history3/historypanel3base.cpp:411 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ..\../widgets/gui/calibracionbase.cpp:82 #: ..\../widgets/gui/selecciontextobase.cpp:56 msgid "Accept" msgstr "受諾" #: ..\../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "Step 1 of 3: 画像を読み込み" #: ..\../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "Step 2 of 3: 画像をコピー" #: ..\../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "Step 3 of 3: 画像をアップロード" #: ..\../commands/dicomizecommand.cpp:179 msgid "Import process failed:" msgstr "読み込み処理が失敗:" #: ..\../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" "\n" "リトライしますか?" #: ..\../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "読み込み..." #: ..\../commands/dicomizecommand.cpp:370 #, fuzzy msgid "Unknown error in dicomization process" msgstr "不明なエラー" #: ..\../commands/dicomizecommand.cpp:431 #: ..\../commands/dicomizecommand.cpp:442 #: ..\../commands/sendpacscommand.cpp:185 msgid "Error sending evidences:" msgstr "エビデンス送信エラー:" #: ..\../commands/dicomizecommand.cpp:437 #: ..\../commands/dicomizecommand.cpp:448 msgid "Can not upload to the PACS:\n" msgstr "PACSへアップロードできません:\n" #: ..\../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" "PACSへアップロードできません:\n" "内部エラー" #: ..\../commands/exporttodicomdircommand.cpp:261 #: ..\../commands/exporttodicomdircommand.cpp:338 #, c-format msgid "Exporting series %d of %d" msgstr "シリーズ書き出し %d の %d" #: ..\../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "選択されたシリーズのいくつかは削除されました" #: ..\../commands/exporttodicomdircommand.cpp:279 #: ..\../commands/exporttodicomdircommand.cpp:385 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/export/parametrosprincipales.cpp:167 msgid "There was an error creating directory" msgstr "ディレクトリ作成中にエラーが発生しました" #: ..\../commands/exporttodicomdircommand.cpp:303 #: ..\../commands/exporttodicomdircommand.cpp:408 msgid "There was an error writing file" msgstr "ファイル書き込み中にエラーがありました" #: ..\../commands/exporttodicomdircommand.cpp:358 msgid "There was an error anonymizing files" msgstr "匿名化中にエラーが発生しました" #: ..\../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "データセットに患者 id が欠落しています" #: ..\../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "データセットにスタディインスタンス uid が欠落しています" #: ..\../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "データセットにシリーズインスタンス uid が欠落しています" #: ..\../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "データセットに SOP インスタンス uid が欠落しています" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Ignoring incoming operation " msgstr "入ってくる操作を無視" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:298 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "未実装" #: ..\../commands/incomingdicomassociationcommand.cpp:473 #: ..\../commands/pacsdownloadcommand.cpp:170 #: ..\../commands/pacsdownloadcommand.cpp:179 msgid "Including files..." msgstr "ファイルを含めています..." #: ..\../commands/linkhistorycommand.cpp:68 #, fuzzy msgid "Linking study..." msgstr "検査" #: ..\../commands/openremovableunit.cpp:42 #: ..\../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "ドライブ探索中..." #: ..\../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" "リムーバブル装置に DICOMDIR がありません.\n" "他のパスを再帰的にスキャンしますか?" #: ..\../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" "リムーバブル装置に DICOMDIR がありません, %s ドライブを再帰的にスキャンします" "か" #: ..\../commands/openremovableunit.cpp:130 msgid "Select drive you want to open" msgstr "開きたいドライブを選択" #: ..\../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" "Ginkgo CADx 1つ以上のリムーバブル装置を検出しました,\n" "ルートディレクトリにDICOMDIRがありません.\n" "取得したいドライブを再帰的に選択して下さい" #: ..\../commands/pacsdownloadcommand.cpp:134 msgid "Error downloading study: " msgstr "検査のダウンロードに失敗: " #: ..\../commands/pdfextractercommand.cpp:103 msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "" #: ..\../commands/pdfextractercommand.cpp:103 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ..\../main/gui/progress/statusbarprogreso.cpp:278 #: ..\../widgets/gui/calibracion.cpp:205 ..\../widgets/gui/calibracion.cpp:209 #: ..\../widgets/gui/calibracion.cpp:219 ..\../widgets/gui/calibracion.cpp:225 #: ..\../widgets/gui/calibracion.cpp:229 msgid "Error" msgstr "エラー" #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "" #: ..\../commands/pdfextractercommand.cpp:130 msgid "PDF files extracted successfully..." msgstr "" #: ..\../commands/secondarycapturedicomizecommand.cpp:73 #, fuzzy msgid "Ginkgo CADx Secondary Capture" msgstr "Ginkgo CADx" #: ..\../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "HL7 メッセージを送信 %d の %d" #: ..\../commands/sendhl7command.cpp:73 msgid "Message successfully sent" msgstr "メッセージ 送信成功" #: ..\../commands/sendhl7command.cpp:77 msgid "Unknown protocol" msgstr "不明なプロトコル" #: ..\../commands/sendhl7command.cpp:80 ..\../commands/sendhl7command.cpp:93 #: ..\../commands/sendhl7command.cpp:145 msgid "Error sending message:" msgstr "送信エラーメッセージ:" #: ..\../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "エラー HL7 メッセージ送信 詳細はログを見て下さい" #: ..\../commands/sendhl7command.cpp:93 ..\../commands/sendhl7command.cpp:94 msgid "Unknown error" msgstr "不明なエラー" #: ..\../commands/sendhl7command.cpp:134 msgid "Failed to start connection" msgstr "接続開始に失敗しました" #: ..\../commands/sendhl7command.cpp:148 msgid "Error sending message. It was sent " msgstr "送信エラーメッセージ. 送信されました " #: ..\../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr " バイト量: " #: ..\../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "認可ロジックでエラー. メッセージIDのコントロールは承認されません" #: ..\../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "NACKを受信:" #: ..\../commands/sendhl7command.cpp:258 msgid "Failed delivery confirmation:" msgstr "認可配信に失敗" #: ..\../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "認可配信エラー: 配信はリモートエンドで承認されません" #: ..\../commands/sendpacscommand.cpp:51 #, fuzzy msgid "Send files to PACS" msgstr "インポート中にPACSへ検査を送信" #: ..\../commands/sendpacscommand.cpp:155 msgid "Uploading files ..." msgstr "ファイルをアップロード中..." #: ..\../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "エラー: PACSエントリ設定が見つかりません " #: ..\../commands/sendpacscommand.cpp:181 msgid "Error:" msgstr "エラー:" #: ..\../commands/sendpacscommand.cpp:189 msgid "Error sending evidences: Internal error." msgstr "エビデンス送信エラー: 内部エラー" #: ..\../commands/sendpacscommand.cpp:203 msgid "Error uploading the study to PACS: " msgstr "PACSへ検査をアップロード中にエラー: " #: ..\../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" #: ..\../commands/sendpacscommand.cpp:206 #, fuzzy msgid "Retry send to PACS" msgstr "インポート中にPACSへ検査を送信" #: ..\../commands/synchronizationcommand.cpp:104 #, fuzzy msgid "Error downloading file" msgstr "%d ファイルをダウンロード中" #: ..\../commands/synchronizationcommand.cpp:141 #, fuzzy msgid "Error synchronizing study: " msgstr "検査読み込みエラー: 内部エラー" #: ..\../commands/thumbnailscommand.cpp:107 #: ..\../commands/thumbnailscommand.cpp:133 #: ..\../commands/thumbnailscommand.cpp:247 #: ..\../commands/thumbnailscommand.cpp:376 #: ..\../commands/thumbnailscommand.cpp:382 #: ..\../main/gui/import/selectimagesimportation.cpp:504 msgid "Creating Thumbnail..." msgstr "サムネイルを作成中..." #: ..\../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "サムネイルを生成中..." #: ..\../export/tools/iaddfiletohistorytool.cpp:19 #: ..\../main/gui/history3/historypanel3.cpp:632 #, fuzzy msgid "Open study" msgstr "開く" #: ..\../export/tools/iangletool.cpp:19 #, fuzzy msgid "Angle \tCtrl+A" msgstr "ノーマル角度 (3点)" #: ..\../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "" #: ..\../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "" #: ..\../export/tools/icolormaptool.cpp:20 #, fuzzy msgid "Color Map" msgstr "色" #: ..\../export/tools/icopyimagetoclipboardtool.cpp:19 #: ..\../main/gui/open/opendialogsbase.cpp:46 #: ..\../main/gui/open/opendialogsbase.cpp:198 msgid "Copy" msgstr "" #: ..\../export/tools/icornerannotationstool.cpp:20 msgid "Window annotations" msgstr "ウインドウアノテーション" #: ..\../export/tools/idetachwindowtool.cpp:19 #, fuzzy msgid "Detach window" msgstr "ウインドウアノテーション" #: ..\../export/tools/iimageexporttool.cpp:19 #, fuzzy msgid "Export image..." msgstr "画像書きだしウィザード" #: ..\../export/tools/imarkertool.cpp:20 msgid "Marking Tools \tCtrl+M" msgstr "" #: ..\../export/tools/imetricgridtool.cpp:20 msgid "Metric grid" msgstr "計量グリッド" #: ..\../export/tools/inotetool.cpp:19 msgid "Text Note \tCtrl+N" msgstr "" #: ..\../export/tools/ipacsuploadtool.cpp:19 #, fuzzy msgid "Upload study..." msgstr "PACSサーバへ画像をアップロード" #: ..\../export/tools/ipixelsbluringtool.cpp:20 msgid "Pixels blurring" msgstr "" #: ..\../export/tools/ipointertool.cpp:19 msgid "Pointer \tEsc" msgstr "" #: ..\../export/tools/iqueryretrievetool.cpp:19 #: ..\../main/tools/queryretrievehistorytool.cpp:25 #: ..\../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "PACSからDICOM検査を取得" #: ..\../export/tools/iresettool.cpp:19 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 #, fuzzy msgid "Reset" msgstr "デフォルトにリセット" #: ..\../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "" #: ..\../export/tools/iruletool.cpp:19 #, fuzzy msgid "Rule \tCtrl+R" msgstr "P-R-T axes: " #: ..\../export/tools/isecondarycapturetool.cpp:19 msgid "Save snapshot as new series..." msgstr "" #: ..\../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "" #: ..\../export/tools/ishowtagstool.cpp:19 #: ..\../main/tools/showtagshistorytool.cpp:27 #, fuzzy msgid "DICOM inspector" msgstr "DICOMタグパネルを隠す" #: ..\../export/tools/isimpleprinttool.cpp:19 #: ..\../main/tools/simpleprinttool.cpp:226 msgid "Print" msgstr "印刷" #: ..\../export/tools/istartdicomizationtool.cpp:19 #, fuzzy msgid "Dicomize..." msgstr "DICOM化の後、Ginkgo CADxは自動的に閉じます" #: ..\../export/tools/itoolpan.cpp:19 #, fuzzy msgid "Pan \tCtrl+P" msgstr "P-Value" #: ..\../export/tools/itoolslider.cpp:19 #, fuzzy msgid "Slider \tCtrl+S" msgstr "%s画像をダウンロード" #: ..\../export/tools/itoolwindowlevel.cpp:19 msgid "Window/Level \tCtrl+W" msgstr "" #: ..\../export/tools/itoolzoom.cpp:19 msgid "Zoom \tCtrl+O" msgstr "" #: ..\../export/tools/itrackballtool.cpp:19 #, fuzzy msgid "Trackball \tCtrl+T" msgstr "P-R-T axes: " #: ..\../export/tools/iundotool.cpp:20 ..\../main/tools/undotool.cpp:109 msgid "Undo" msgstr "元に戻す" #: ..\../export/tools/ivideotool.cpp:19 msgid "Video \tCtrl+Space" msgstr "" #: ..\../export/tools/iwindowlayouttool.cpp:20 #, fuzzy msgid "Window layout" msgstr "1x1 レイアウト" #: ..\../main/controllers/controladorcarga.cpp:161 msgid "Studies with" msgstr "検査と一緒に" #: ..\../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr " サポートされないコンポーネント" #: ..\../main/controllers/controladorcarga.cpp:210 msgid "Reading properties" msgstr "プロパティ読み込み" #: ..\../main/controllers/controladorcarga.cpp:219 #: ..\../main/controllers/controladorcarga.cpp:642 #: ..\../main/controllers/controladorcarga.cpp:888 #: ..\../main/controllers/streaming/streamingloader.cpp:600 msgid "Error reading the study: " msgstr "検査読み込みエラー: " #: ..\../main/controllers/controladorcarga.cpp:224 #: ..\../main/controllers/controladorcarga.cpp:229 #: ..\../main/controllers/controladorcarga.cpp:647 #: ..\../main/controllers/controladorcarga.cpp:893 msgid "Internal error reading the study: " msgstr "検査読み込み内部エラー: " #: ..\../main/controllers/controladorcarga.cpp:269 #: ..\../main/controllers/controladorcarga.cpp:281 #: ..\../main/controllers/controladorcarga.cpp:905 msgid "Spacing is not valid: (" msgstr "間隔が有効ではありません: (" #: ..\../main/controllers/controladorcarga.cpp:305 #: ..\../main/controllers/controladorcarga.cpp:338 #: ..\../main/controllers/controladorcarga.cpp:372 #: ..\../main/controllers/controladorcarga.cpp:408 #: ..\../main/controllers/controladorcarga.cpp:441 #: ..\../main/controllers/controladorcarga.cpp:474 #: ..\../main/controllers/controladorcarga.cpp:507 #: ..\../main/controllers/controladorcarga.cpp:540 #: ..\../main/controllers/controladorcarga.cpp:573 #: ..\../main/controllers/controladorcarga.cpp:606 #: ..\../main/controllers/controladorcarga.cpp:935 msgid "Error loading the study: Out of memory" msgstr "検査読み込みエラー: 空きメモリがありません" #: ..\../main/controllers/controladorcarga.cpp:375 msgid "Error loading the study: Internal Error" msgstr "検査読み込みエラー: 内部エラー" #: ..\../main/controllers/controladorcarga.cpp:630 #: ..\../main/controllers/streaming/streamingloader.cpp:1023 #: ..\../main/controllers/streaming/streamingloader.cpp:1223 #: ..\../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "検査読み込みエラー: サポートされないピクセルフォーマット" #: ..\../main/controllers/controladorcarga.cpp:651 #: ..\../main/controllers/controladorcarga.cpp:960 msgid "Process canceled by user." msgstr "ユーザーによって処理がキャンセルされました" #: ..\../main/controllers/controladorcarga.cpp:878 msgid "Interpreting properties" msgstr "プロパティ解釈中" #: ..\../main/controllers/controladorcarga.cpp:917 msgid "Spacing of the image is invalid: (" msgstr "画像の間隔が有効ではありません: (" #: ..\../main/controllers/controladorcarga.cpp:942 msgid "Reading dataset" msgstr "データセットを読み込み中" #: ..\../main/controllers/controladorcarga.cpp:951 msgid "Error reading the study:" msgstr "検査読み込みエラー:" #: ..\../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "検査読み込み中の内部エラー:" #: ..\../main/controllers/controladorcarga.cpp:972 msgid "load" msgstr "読み込み" #: ..\../main/controllers/controladorenviohl7.cpp:40 #, fuzzy msgid "Stopping HL7 sender" msgstr "HL7送信サービスを自動開始" #: ..\../main/controllers/controladorenviohl7.cpp:63 #: ..\../main/controllers/controladorenviohl7.cpp:76 #, fuzzy msgid "Error starting HL7 sender" msgstr "HL7送信サービスを自動開始" #: ..\../main/controllers/controladorenviohl7.cpp:65 #: ..\../main/controllers/controladorenviohl7.cpp:78 #, fuzzy msgid "HL7 sender started" msgstr "HL7送信サービスを自動開始" #: ..\../main/controllers/controladorenviohl7.cpp:108 msgid "HL7 controller destroyed" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:150 #, fuzzy msgid "Error processing message" msgstr "エラーメッセージ" #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/controllers/pacscontroller.cpp:1549 #: ..\../main/controllers/pacscontroller.cpp:1553 #: ..\../main/controllers/pacscontroller.cpp:1557 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ..\../main/gui/import/pasosimportacionbase.cpp:195 #: ..\../wx/gnkinforme/gnkinformebase.cpp:184 msgid "Unknown" msgstr "不明" #: ..\../main/controllers/controladorextensiones.cpp:110 msgid "Loading" msgstr "読み込み中" #: ..\../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "拡張ライブラリが読み込み出来ません" #: ..\../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "ライブラリが読み込めません. ログをチェックしてください" #: ..\../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "拡張機能記述子が一致しません" #: ..\../main/controllers/controladorextensiones.cpp:153 msgid "Could not find entry point" msgstr "エントリポイントが見つかりません" #: ..\../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "重複した SID 拡張機能はスキップします:" #: ..\../main/controllers/controladorhl7.cpp:74 msgid "Integration engine hostname not set" msgstr "組み込みエンジンのホストネームがセットされていません" #: ..\../main/controllers/controladorhl7.cpp:77 msgid "Integration engine port not set" msgstr "組み込みエンジンのポートがセットされていません" #: ..\../main/controllers/controladorhl7.cpp:91 msgid "Unsupported protocol" msgstr "サポートされていないプロトコル" #: ..\../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "メッセージキューイングエラー. サプライヤをチェックして下さい" #: ..\../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "%d 結果を見つけました" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, c-format msgid "Downloading file %d/%d" msgstr "%d/%d ファイルをダウンロード中" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "検査ダウンロードサイズの上限を超えました" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "PDF DICOM化のための予約メモリがありません" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "画像DICOM化のための予約メモリがありません" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:359 msgid "Image format not supported" msgstr "サポートされてない画像フォーマット" #: ..\../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "TLS 転送層が作成できません" #: ..\../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "公開鍵と認証鍵が一致しません" #: ..\../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "エラー TLS 層の設定: " #: ..\../main/controllers/dcmtk/dicomservice.cpp:200 msgid "Receiving Association failed: " msgstr "アソシエーション受信に失敗: " #: ..\../main/controllers/dcmtk/dicomservice.cpp:209 #, fuzzy msgid "Association received" msgstr "NACKを受信:" #: ..\../main/controllers/dcmtk/dicomservice.cpp:210 msgid "Parameters:" msgstr "パラメータ:" #: ..\../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "アソシエーション拒否: 悪いアプリケーションコンテキスト名: " #: ..\../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "アソシエーション拒否: 未実装のクラス UID が規定されました" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "承認されたアソシエーション (Max Send PDV: " #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr ")" #: ..\../main/controllers/dcmtk/dicomservice.cpp:274 #, fuzzy msgid "No valid presentation contexts" msgstr "画像提示情報" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "Association(dicom://" msgstr "アソシエーション(dicom://" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "@" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "Ginkgo CADx は次の項目から圧縮できません" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr " から " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, c-format msgid "Uploading file %d of %d" msgstr "ファイルをアップロード %d のうち %d" #: ..\../main/controllers/dicommanager.cpp:504 #: ..\../main/controllers/dicommanager.cpp:531 msgid "Extracting file..." msgstr "ファイルを展開中..." #: ..\../main/controllers/historycontroller.cpp:323 msgid "Error creating history database " msgstr "エラー 履歴データベース作成 " #: ..\../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr " trying temp" #: ..\../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" "DICOM DIRへの書込権限がありません. プレファレンスはテンポラリディレクトリへ格" "納されます" #: ..\../main/controllers/historycontroller.cpp:343 msgid "Error creating dicomDir database " msgstr "エラー dicomDirデータベース作成" #: ..\../main/controllers/historycontroller.cpp:425 #: ..\../main/controllers/historycontroller.cpp:441 msgid "Error creating thumbnails database " msgstr "エラー サムネイルデータベース作成 " #: ..\../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "データベース作成エラー:\n" #: ..\../main/controllers/historycontroller.cpp:560 msgid "Including image " msgstr "画像を含めています " #: ..\../main/controllers/historycontroller.cpp:560 #: ..\../main/controllers/historycontroller.cpp:707 msgid " of " msgstr " の " #: ..\../main/controllers/historycontroller.cpp:707 #, fuzzy msgid "Linking image " msgstr "この画像にオーバーレイはありません" #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "履歴読み込みエラー: \n" #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "データベース内のナンバー削除に失敗:\n" #: ..\../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "履歴クリアに失敗:\n" #: ..\../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" "Ginkgo CADx は不活性を検出して %d 秒以内に閉じます\n" "続けてもいいですか?" #: ..\../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:493 msgid "Malformed template Id (" msgstr "不定型なテンプレートId (" #: ..\../main/controllers/integrationcontroller.cpp:493 #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" "):\n" "は、HL7 IDとして有効ではありません(例: code^description^namespaceId)" #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "モジュール設定内の不定型なIdテンプレート" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "Template Id unsupported (" msgstr "サポートされないテンプレートId (" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "" "):\n" "必要ならばアタッチして設定をチェックして下さい" #: ..\../main/controllers/integrationcontroller.cpp:566 msgid "Unknown module Id (" msgstr "不明なモジュール Id (" #: ..\../main/controllers/integrationcontroller.cpp:592 msgid "Empty configuration" msgstr "設定をクリア" #: ..\../main/controllers/integrationcontroller.cpp:631 msgid "XML Parser Not Found. Key=" msgstr "XML パーサが見つかりません. キー=" #: ..\../main/controllers/log4cplus/guiappender.cpp:75 #, fuzzy msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "%m/%d/%Y %h:%M:%s" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ..\../main/gui/history3/historypanel3base.cpp:48 #: ..\../main/gui/import/pasosimportacionbase.cpp:227 msgid "Patient" msgstr "患者" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #, fuzzy msgid "Patient ID" msgstr "患者ID" #: ..\../main/controllers/modalitysettingscontroller.cpp:86 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ..\../main/gui/history3/historypanel3.cpp:227 #: ..\../main/gui/open/opendialogs.cpp:50 msgid "Modality" msgstr "モダリティ" #: ..\../main/controllers/modalitysettingscontroller.cpp:98 msgid "Dimensions" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:109 #, fuzzy, c-format msgid "Made with %s" msgstr "%s画像をダウンロード" #: ..\../main/controllers/modalitysettingscontroller.cpp:167 #: ..\../main/controllers/modalitysettingscontroller.cpp:338 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "デフォルト" #: ..\../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1212 #, fuzzy msgid "Downloading file" msgstr "%d ファイルをダウンロード中" #: ..\../main/controllers/pacscontroller.cpp:1318 #, fuzzy msgid "Error downloading WADO file" msgstr "%d ファイルをダウンロード中" #: ..\../main/controllers/pacscontroller.cpp:1318 #, fuzzy msgid "Check PACS configuration" msgstr "現在の設定にアップデートチェックするためのURLがありません" #: ..\../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "不明なクエリ/リトリーブレベル" #: ..\../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "クエリリトリーブレベルが明示されていません" #: ..\../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1428 #, fuzzy msgid "Invalid HTTP response" msgstr "HTTPプロキシを有効" #: ..\../main/controllers/pacscontroller.cpp:1433 #, fuzzy msgid "Invalid HTTP code" msgstr "HTTPプロキシを有効" #: ..\../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1472 msgid "PACS-Service" msgstr "PACS-サービス" #: ..\../main/controllers/parserxmlenglish.cpp:97 #: ..\../main/controllers/parserxmlspanish.cpp:94 msgid "Omitted Identificator" msgstr "ID省略" #: ..\../main/controllers/parserxmlenglish.cpp:105 #: ..\../main/controllers/parserxmlspanish.cpp:102 msgid "Omitted AET" msgstr "AET省略" #: ..\../main/controllers/parserxmlenglish.cpp:113 #: ..\../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "ホストネームがありません" #: ..\../main/controllers/parserxmlenglish.cpp:121 #: ..\../main/controllers/parserxmlspanish.cpp:118 msgid "Omitted port" msgstr "ポート省略" #: ..\../main/controllers/parserxmlenglish.cpp:206 #: ..\../main/controllers/parserxmlenglish.cpp:237 #: ..\../main/controllers/parserxmlspanish.cpp:188 #: ..\../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "PDUサイズは有効な数ではありません" #: ..\../main/controllers/parserxmlenglish.cpp:212 #: ..\../main/controllers/parserxmlspanish.cpp:194 msgid "Port is not a valid number" msgstr "ポートは有効な数ではありません" #: ..\../main/controllers/parserxmlenglish.cpp:248 #: ..\../main/controllers/parserxmlspanish.cpp:228 msgid "The port is not a valid number" msgstr "ポートは有効な数ではありません" #: ..\../main/controllers/parserxmlenglish.cpp:265 #: ..\../main/controllers/parserxmlspanish.cpp:246 msgid "Setting not found" msgstr "設定が見つかりません" #: ..\../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "\"action\" attribute invalid at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "\"action\" attribute expected at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "\"value\" attribute expected at \"query-retrieve-level\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:391 msgid "\"code\" attribute expected at \"patient\" scope" msgstr "\"code\" attribute expected at \"patient\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:427 msgid "\"code\" attribute expected at \"physician\" scope" msgstr "\"code\" attribute expected at \"physician\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:434 msgid "\"value\" attribute expected at \"physician\" scope" msgstr "\"value\" attribute expected at \"physician\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:445 msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "\"iid\" atribute expected at \"institution\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "\"code\" attribute expected at \"metadata\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:483 msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "\"key\" attribute expected at \"metadata\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:548 #: ..\../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "クエリで使用したい属性を明示してください。" #: ..\../main/controllers/parserxmlenglish.cpp:552 #: ..\../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "識別子なしの \"patient\" タグの読み込んでいます" #: ..\../main/controllers/parserxmlenglish.cpp:570 #: ..\../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "組込XMLか設定メニューで、デフォルトPACSを指定して下さい" #: ..\../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "\"accion\" 属性は \"plantilla\" スコープで無効" #: ..\../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "\"accion\" 属性は \"plantilla\" スコープで予期" #: ..\../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:340 msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "\"uid\" attribute expected at \"dimse\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "\"ambito\" attribute invalid at \"dimse\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "\"ambito\" attribute expected at \"dimse\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:402 msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "\"codigo\" attribute expected at \"paciente\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:438 msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "\"codigo\" attribute expected at \"medico\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:445 msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "\"valor\" attribute expected at \"medico\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "\"cid\" atribute expected at \"centro\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "\"aid\" attribute expected at \"hce\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:486 msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "\"codigo\" attribute expected at \"metadato\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "\"clave\" attribute expected at \"metadato\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:524 msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "\"petition-id\" attribute expected at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "\"ambito\" attribute expected at \"plantilla\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:559 msgid "id_application expected" msgstr "id_application expected" #: ..\../main/controllers/smartretrievecontroller.cpp:124 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:920 msgid "Downloading from PACS..." msgstr "PACSからダウンロード中" #: ..\../main/controllers/streaming/streamingloader.cpp:303 #: ..\../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" #: ..\../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "検査読み込みで内部エラー, 不明なフォーマット" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ..\../main/gui/history3/historytablemodel.cpp:403 #: ..\../main/gui/history3/historytablemodel.cpp:415 #: ..\../main/gui/history3/historytablemodel.cpp:470 #: ..\../main/gui/history3/historytablemodel.cpp:482 #: ..\../main/gui/open/dicomdirtablemodel.cpp:102 #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "%m/%d/%Y %h:%M:%s" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "%m/%d/%Y 00:00:00" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 msgid "Exploring PACS..." msgstr "PACSを探索..." #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ..\../main/gui/history3/historypanel3.cpp:225 #: ..\../main/gui/open/opendialogs.cpp:49 #, fuzzy msgid "Patient id" msgstr "患者ID" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ..\../main/gui/history3/historypanel3.cpp:224 #: ..\../main/gui/open/opendialogs.cpp:48 msgid "Patient name" msgstr "患者氏名" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:479 msgid "Study Instance UID" msgstr "スタディ インスタンス UID" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ..\../main/gui/history3/historypanel3.cpp:231 #: ..\../main/gui/open/opendialogs.cpp:53 msgid "Accession number" msgstr "アソシエーション番号" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:481 msgid "Study date" msgstr "検査日" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:482 #, fuzzy msgid "Study time" msgstr "時間" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:490 msgid "Series Instance UID" msgstr "シリーズ インスタンス UID" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:492 msgid "Series date" msgstr "シリーズ日" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:493 #, fuzzy msgid "Series time" msgstr "時間" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:519 msgid "No results found" msgstr "結果が見つかりません" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #, fuzzy msgid "Write query name" msgstr "氏名" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #, fuzzy msgid "This query name is in use, do you want to overwrite it?" msgstr "" "ファイルは存在します\n" "上書きしますか?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 msgid "Id" msgstr "Id" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 msgid "Date Time" msgstr "日時" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ..\../main/gui/history3/historypanel3.cpp:229 #: ..\../main/gui/import/pasosimportacionbase.cpp:298 #: ..\../main/gui/import/pasosimportacionbase.cpp:340 #: ..\../main/gui/open/opendialogs.cpp:52 msgid "Description" msgstr "概要" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ..\../main/gui/import/pasosimportacionbase.cpp:276 msgid "Accession Number" msgstr "Accession Number" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:210 #, fuzzy msgid "Store query" msgstr "PACS id検索エラー " #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:211 #, fuzzy msgid "Remove query" msgstr "削除" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:278 msgid "There is no any PACS configured" msgstr "PACS設定がありません" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "Acc#" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:54 msgid "Study UID" msgstr "検査UID" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" "パラメータなしの検索は長い時間が必要です\n" "続けますか?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "Search" msgstr "検索" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:519 msgid "Download series" msgstr "シリーズをダウンロード" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 msgid "Download study" msgstr "検査をダウンロード" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:535 #, fuzzy msgid "Link series" msgstr "シリーズ" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:537 #, fuzzy msgid "Link study" msgstr "検査" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:551 msgid "Properties..." msgstr "プロパティ..." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #, fuzzy msgid "You must specify at least a modality or a period of time" msgstr "uid 検査か受付番号の少ない方を明示する必要があります" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #, fuzzy msgid "Select a valid query" msgstr "有効なPACSサーバを選択して下さい" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 msgid "Select a valid PACS Server" msgstr "有効なPACSサーバを選択して下さい" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid "Download of modality " msgstr "モダリティのダウンロード " #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr " 無許可" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "この種類のモジュールをダウンロードすることは許可されていません." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "Modality download error" msgstr "モダリティダウンロードエラー" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:786 msgid "search results" msgstr "検索結果" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:913 #, fuzzy msgid "Downloading serie..." msgstr "ファイルをダウンロード中..." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:916 #, fuzzy msgid "Downloading study..." msgstr "検査のダウンロードに失敗: " #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:165 msgid "PACS acquisition is restricted" msgstr "PACS からの取得は制約されます" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:96 msgid "Server" msgstr "サーバ" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ..\../main/gui/import/pasosimportacionbase.cpp:284 #: ..\../main/gui/import/pasosimportacionbase.cpp:326 #: ..\../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "日付" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ..\../main/gui/history3/historypanel3base.cpp:81 msgid "Any date" msgstr "いつでも" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ..\../main/gui/history3/historypanel3base.cpp:85 msgid "Today AM" msgstr "本日午前" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ..\../main/gui/history3/historypanel3base.cpp:88 msgid "Today PM" msgstr "本日午後" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ..\../main/gui/history3/historypanel3base.cpp:91 msgid "Today" msgstr "本日" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ..\../main/gui/history3/historypanel3base.cpp:100 msgid "Yesterday" msgstr "昨日" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ..\../main/gui/history3/historypanel3base.cpp:103 msgid "Last 7 days" msgstr "7日以内" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ..\../main/gui/history3/historypanel3base.cpp:106 msgid "Last 30 days" msgstr "30日以内" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ..\../main/gui/history3/historypanel3base.cpp:109 msgid "Last 3 months" msgstr "3ヶ月前" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ..\../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "間隔:" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ..\../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "モダリティ" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 #, fuzzy msgid "Stored queries" msgstr "ファイルは格納できません " #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:216 #, fuzzy msgid "Select stored queries..." msgstr "ファイルを格納したいディレクトリを選択して下さい" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ..\../main/gui/open/opendialogsbase.cpp:50 #: ..\../main/gui/open/opendialogsbase.cpp:202 msgid "Link" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:289 msgid "Download" msgstr "ダウンロード" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ..\../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "閉じる" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:329 msgid "Series does not exist" msgstr "シリーズは存在しません" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "このシリーズはローカル履歴から削除されています" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "続く" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ..\../main/gui/open/opendialogsbase.cpp:127 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ..\../main/tools/metricgridtool.cpp:101 msgid "Ok" msgstr "Ok" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:151 #, fuzzy msgid "Download again" msgstr "ダウンロード" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:441 msgid "Open" msgstr "開く" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:179 #, fuzzy msgid "Set query name" msgstr "氏名" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:32 msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:34 msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/anonymize/anonymizedialog.cpp:64 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ..\../main/gui/export/parametrosprincipales.cpp:194 msgid "Exporting images ..." msgstr "画像書き出し中..." #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:21 #, fuzzy msgid "Common tags" msgstr "Ginkgo CADxプライベートタグ" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 msgid "Patient's name and surname" msgstr "患者の氏名" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 msgid "Patient Id" msgstr "患者ID" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "施設" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "依頼元医師ID" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "コメント" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:44 msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "Ginkgo CADxタグ (評価マップ...)" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:71 #, fuzzy msgid "Add new..." msgstr "新規..." #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ..\../main/tools/anonymizetool.cpp:26 #: ..\../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "匿名化" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:136 #, fuzzy msgid "Create new" msgstr "新規..." #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ..\../main/gui/anonymize/anonymizepanelbase.h:136 #, fuzzy msgid "Add DICOM tag" msgstr "加える" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:199 msgid "Group" msgstr "グループ" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:203 msgid "Element" msgstr "エレメント" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ..\../widgets/wangulo.cpp:1114 msgid "Value" msgstr "値" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 msgid "Top right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 msgid "Top left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 msgid "Bottom left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 msgid "Bottom right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #, fuzzy msgid "You must fill in all fields" msgstr "続けるには全ての項目を埋めて下さい" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 msgid "Window/level label in use" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 #, fuzzy msgid "Window" msgstr "ウインドウアノテーション" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 msgid "Level" msgstr "レベル" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 msgid "Do you confirm the removal of the preset?" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Data modified" msgstr "データが修正されました" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 #, fuzzy msgid "Modality settings" msgstr " モダリティへ " #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 #, fuzzy msgid "Default modality settings" msgstr " モダリティへ " #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, fuzzy, c-format msgid "%s settings" msgstr "設定" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:60 #, fuzzy msgid "settings" msgstr "設定" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Export Configuration" msgstr "設定書き出し" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Ini Files(*.ini)|*.ini" msgstr "Ini Files(*.ini)|*.ini" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" "ファイルは存在します\n" "上書きしますか?" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 msgid "Existing file" msgstr "ファイルが既に存在する" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 msgid "Export successfully completed" msgstr "書き出し完了" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 msgid "There was an error during exportation" msgstr "書き出し中にエラーが発生しました" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Import Configuration" msgstr "読み込み設定" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Ini files(*.ini)|*.ini" msgstr "Ini files(*.ini)|*.ini" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "読み込みが完全に成功, 変更を反映するにはGinkgo CADx を再起動して下さい" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 msgid "There was an error during importation, check permissions" msgstr "読み込み中にエラーがありました, 属性をチェックしてください" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 msgid "Dicom tag" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 #, fuzzy msgid "Split horizontally..." msgstr "水平にタイリング" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 #, fuzzy msgid "Split vertically..." msgstr "垂直にタイリング" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ..\../main/tools/windowlayouttool.cpp:273 #, fuzzy msgid "Split active horizontally" msgstr "アクティブ" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ..\../main/tools/windowlayouttool.cpp:274 #, fuzzy msgid "Split active vertically" msgstr "アクティブ" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 #, fuzzy msgid "New hanging protocol" msgstr "プロトコル" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, fuzzy, c-format msgid "Window %d" msgstr "ウインドウアノテーション" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "アクティブ" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "Yes" msgstr "はい" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "いいえ" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 msgid "Hanging protocols" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 msgid "One day" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 #, fuzzy msgid "Two days" msgstr "グリッド (2カラム)" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 #, fuzzy msgid "Three days" msgstr "グリッド (3カラム)" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 #, fuzzy msgid "Two weeks" msgstr "グリッド (2カラム)" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 msgid "One month" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 #, fuzzy msgid "Three months" msgstr "3ヶ月前" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 #, fuzzy msgid "Local database" msgstr "エラー 履歴データベース作成 " #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 msgid "Local DICOM Dir setup" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" "選択されたディレクトリは存在しません\n" "このディレクトリを作成しますか?" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" "ディレクトリ作成に失敗しました. パスが正確か上位ディレクトリに権限があるかを" "確認して下さい" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" "ディレクトリ読み込み中にエラーがありました. 書き込み権限を確認して下さい" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 msgid "Select DICOMDIR" msgstr "DICOMDIRを選択" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" "注意. ディレクトリをアップデートするには、現在開いているシリーズを閉じて下さ" "い" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "Workstation" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "ローカルステーションのパラメータ設定" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "拡張機能" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:126 msgid "Extensions settings" msgstr "拡張機能設定" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "拡張機能の変更を有効にするには Ginkgo CADx の再起動が必要です" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #, fuzzy msgid "Port has to be a valid number" msgstr "ポートは有効な数ではありません" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "総合" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:190 msgid "General configuration parameters" msgstr "総合設定パラメータ" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "変更を有効にするには Ginkgo CADx の再起動が必要です" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "電子健康記録システム" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "電子健康記録システムの設定" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:134 msgid "Testing conectivity with the server..." msgstr "サーバ接続をテスト中..." #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:144 msgid "Error connecting to url" msgstr "URL接続エラー" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #, fuzzy msgid "hostname/port not set" msgstr "ホスト名 / ポート" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "接続テスト失敗" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "接続テスト成功" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "Select certificate" msgstr "証明書の選択" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "プライベートキーとパブリックキーを選択して下さい" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:255 msgid "Change ..." msgstr "変更..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 msgid "Import ..." msgstr "読み込み..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:279 msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "SSL/TLSを使用したいなら、有効な証明書とプライベートキーが必要です" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:472 msgid "There are this errors: " msgstr "エラーがあります: " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" "\n" "- この PACS id は使用済み" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" "\n" "- ポートは正整数です(16bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" "\n" "- ポートが大きすぎます" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" "\n" "- AETの最大長は16文字です" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" "\n" "- PDUサイズは0かそれ以上にすべきです(デフォルトは16384)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" "\n" "- PDUの最大サイズは " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" "\n" "- PDUの最小サイズは " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" "\n" "- SSL/TLSを使用したいなら、有効な証明書とプライベートキーを設定してください" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:525 msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "続けるには全ての項目を埋めて下さい" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:558 msgid "Testing the connection to the node ..." msgstr "サーバ接続をテスト中..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:561 msgid "DICOM Error" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "接続できません: ネットワークサポートを開始できません" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "このサービスは正しくC-ECHOに反応しない" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:607 #, fuzzy msgid "The service did not respond correctly to the DICOM standard" msgstr "このサービスは正しくC-ECHOに反応しない" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:616 #, fuzzy msgid "Invalid port number" msgstr "ポートは有効な数ではありません" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:622 #, fuzzy msgid "WADO Error" msgstr "エラー" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:703 msgid "Use by default" msgstr "デフォルトとして使用" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:795 msgid "DICOM nodes" msgstr "DICOM ノード" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:800 msgid "DICOM nodes settings" msgstr "DICOM ノード設定" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "エラーの発生原因:" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" "\n" "- ローカルポートは正整数です(16bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" "\n" "- ローカルポートが大きすぎます" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" "\n" "- ローカルAETの最大長は16文字です" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "ノードの取外しを承認 " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1101 msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "PACSサーバとコミュニケーションするために使用するローカルAETを設定する必要があ" "ります. 転送のキモとして、ポートは火壁でオープンしてください." #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ..\../main/gui/export/pasosexportacionbase.cpp:20 msgid "Profile" msgstr "プロファイル" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "デフォルト値" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 msgid "Set property active" msgstr "プロパティの活性を設定" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "不活性" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Set property inactive" msgstr "プロパティの不活性を設定" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 msgid "Set default value" msgstr "規定値にセット" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:352 msgid "Set by user" msgstr "ユーザーにより設定" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 msgid "Profile name can't be repeated" msgstr "プロファイル名は重複できません" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "続けるには全ての項目を埋めて下さい" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "プロファイル" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:498 msgid "Profiles Settings" msgstr "プロファイル設定" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "権限変更を適応するにはGinkgo CADxの再起動が必要です" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 msgid "Confirm the removal of the profile " msgstr "プロファイル削除の確認 " #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:53 msgid "New User" msgstr "新しいユーザー" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "ユーザー名は4文字以上にしてください" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 msgid "User name repeated" msgstr "ユーザ名重複" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "パスワードと確認パスワードは同一にしてください" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 msgid "Password has to contain at least 6 characters" msgstr "パスワードは6文字以上にしてください" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:141 msgid "No login" msgstr "ログインしていません" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 msgid "User/Password" msgstr "ユーザー/パスワード" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:224 msgid "Password" msgstr "パスワード" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:191 msgid "Password is setted" msgstr "パスワードは設定されています" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "パスワード変更" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 msgid "Password is not setted" msgstr "パスワードは設定されていません" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:195 msgid "Set password" msgstr "パスワード設定" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:224 msgid "Security Setting" msgstr "セキュリティ設定" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "一つ以上のユーザーを作成して下さい" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "メインパスワードを設定して下さい" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 msgid "User inserted successfully" msgstr "ユーザー追加に成功" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "ユーザー追加でエラーがありました. 詳細はログで" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 msgid "Password changed successfully" msgstr "パスワード変更に成功" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "パスワード変更でエラーがありました. 詳細はログで" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 msgid "User deleted successfully" msgstr "ユーザー削除に成功" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "ユーザー削除でエラーがありました. 詳細はログで" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "Ginkgo CADxは、一つ以上のユーザーが必要です" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ..\../main/gui/login/dialogologin.cpp:27 msgid "User" msgstr "ユーザー" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ..\../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "ディレクトリを選択" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "ローカルタイトルは重複できません" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 msgid "Maximum length of title is 8 characters" msgstr "タイトルは最大8文字です" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "選択されたディレクトリは開けません" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "続けるにはタイトルと場所の項目を埋めて下さい" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 msgid "Title" msgstr "タイトル" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 msgid "Path" msgstr "パス" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "モニタ" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 msgid "Clean before" msgstr "クリーン前" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 msgid "Clean after" msgstr "クリーン後" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "場所" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 msgid "Location Settings" msgstr "場所設定" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "匿名" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:96 msgid "Anonymization settings" msgstr "匿名設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1370 msgid "Settings" msgstr "設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 #, fuzzy msgid "Export config..." msgstr "画像書き出し" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 #, fuzzy msgid "Import config..." msgstr "読み込み" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "適応" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 msgid "Physician's name" msgstr "医師名" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 msgid "Physician's Id" msgstr "医師ID" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 msgid "Service" msgstr "サービス" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 msgid "Service's name" msgstr "サービス名" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 msgid "Service's Id" msgstr "サービスID" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 msgid "Local institution" msgstr "ローカル施設" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 msgid "Institution's name" msgstr "施設名" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 msgid "Institution's Id" msgstr "施設ID" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 msgid "Dicomized files" msgstr "DICOM化ファイル" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 msgid "Charset" msgstr "文字セット" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "ISO_IR 192" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "ISO_IR 6" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "ISO_IR 100" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "ISO_IR 101" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "ISO_IR 109" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "ISO_IR 110" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "ISO_IR 126" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "ISO_IR 127" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "ISO_IR 138" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "ISO_IR 144" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 msgid "ISO_IR 148" msgstr "ISO_IR 148" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "言語" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 msgid "Automatically check for updates" msgstr "アップデートの自動チェック" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ..\../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 msgid "Proxy settings" msgstr "プロキシ設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 msgid "Enable http proxy" msgstr "HTTPプロキシを有効" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:218 #, fuzzy msgid "Proxy Settings" msgstr "プロキシ設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 msgid "Server settings" msgstr "サーバ設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 msgid "Host" msgstr "ホスト" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 msgid "Port" msgstr "ポート" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "システム認証" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "プロキシサーバには認証が必要です" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 #, fuzzy msgid "Username" msgstr "ユーザーネームかパスワードが不正確です" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "例外" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 #, fuzzy msgid "No proxy for addresses containing" msgstr "コンマでアドレスを区切って下さい." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "コンマでアドレスを区切って下さい." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 msgid "DICOM Dir" msgstr "DICOM Dir" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "DICOM Dirは履歴が格納されたローカルディレクトリです" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" "注意. ディレクトリを更新するには、開いている全てのシリーズを閉じて下さい" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 #, fuzzy msgid "Auto-cleaning" msgstr "自動計算" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 msgid "MB" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ..\../main/tools/toolwindowlevel.cpp:201 msgid "Reset to default" msgstr "デフォルトにリセット" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "ローカルPACS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "PACSサーバとコミュニケーションするために使用するローカルAETを設定する必要があ" "ります. 転送のキモとして、ポートは火壁でオープンしてください." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 msgid "Local AET" msgstr "ローカルAET" # DICOM Network entries from PACS Configuration #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" "同等環境における大規模な実装のために、 ローカルAETに特別なワイルドカードが使" "用可能です:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "上位設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 msgid "DICOM Nodes" msgstr "DICOM ノード" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 msgid "New ..." msgstr "新規..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 msgid "Edit ..." msgstr "編集..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ..\../main/gui/history3/historypanel3.cpp:677 #: ..\../main/gui/history3/historypanel3.cpp:686 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ..\../main/gui/import/selectimagesimportation.cpp:291 #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete" msgstr "削除" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 msgid "Set Default" msgstr "デフォルトにセット" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:388 msgid "DICOM Node" msgstr "ログノード" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "AET" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 msgid "PDU (KB)" msgstr "PDU (KB)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 msgid "Retrieve method" msgstr "リトリーブ方法" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Move" msgstr "Move" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Get" msgstr "Get" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 #, fuzzy msgid "WADO URL" msgstr "オンラインサポートのURL" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 msgid "Retrieve mode" msgstr "リトリーブモード" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ..\../main/gui/import/pasosimportacionbase.cpp:319 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1395 msgid "Series" msgstr "シリーズ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 msgid "Studies" msgstr "スタディ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "接続の再利用" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "接続を再利用するには1つ以上のクエリが必要です" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 msgid "Worklists" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 msgid "Select how do you want to handle MPPS items" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 #, fuzzy msgid "DICOM MPPS" msgstr "アソシエーション(dicom://" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 #, fuzzy msgid "HL7 messages" msgstr "メッセージ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 #, fuzzy msgid "HL7" msgstr "HL7サービス" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 #, fuzzy msgid "Abort message" msgstr "メッセージ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 #, fuzzy msgid "Completed message" msgstr "書き出し完了" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 #, fuzzy msgid "In progress message" msgstr "メッセージ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 #, fuzzy msgid "Default values" msgstr "デフォルト" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 msgid "Worklist" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 msgid "SSL/TLS" msgstr "SSL/TLS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 msgid "Verify server credentials" msgstr "サーバ証明書を照合" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 msgid "Use SSL/TLS" msgstr "SSL/TLS を使用" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "証明書" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 msgid "Certificate to use in this connection" msgstr "この接続に証明書を使用" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "上位設定..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 #, fuzzy msgid "Default charset" msgstr "文字セット" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 msgid "Advanced" msgstr "上位設定..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "接続テスト" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "クライアント証明書を照合" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 msgid "Local AET certificate" msgstr "ローカルAET証明書" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 msgid "Certificate used by Ginkgo CADx" msgstr "Ginkgo CADx に使用される認証" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "Gingo CADx Application ID used to fill MSH.3 field" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 msgid "Receiver organization Id" msgstr "Receiver organization ID" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "Unique identifier of the organization receiving the message." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 msgid "Petitioner System Id" msgstr "Petitioner System ID" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "Unique identifier of the requesting system." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 msgid "Filler Application Id" msgstr "Filler Application ID" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "アプリケーションの一意な識別子 (SIID/Ginkgo CADx)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "Unique identifier of the filler application (SIID/Ginkgo)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 msgid "Ginkgo CADx Application Id" msgstr "Ginkgo CADx Application Id" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 msgid "Integration engine" msgstr "Integration engine" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 msgid "Hostname / Port" msgstr "ホスト名 / ポート" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "Hostname (IP or DNS) integration engine" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "/" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 msgid "Protocol" msgstr "プロトコル" # EHR/Integration entries from EHR Configuration #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "実装エンジンの転送レイヤープロトコル" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "MLLP" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ..\../main/gui/export/pasosexportacionbase.cpp:28 msgid "Format" msgstr "フォーマット" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 msgid "Message's format" msgstr "メッセージフォーマット" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "ER7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 msgid "Test engine" msgstr "Test engine" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 msgid "Test Integration Engine connectivity" msgstr "テスト実装エンジンの接続性" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 msgid "Ginkgo Extension Title" msgstr "Ginkgo 拡張タイトル" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 msgid "Edit public key" msgstr "パブリックキーの編集" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "デフォルト証明書を使用" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 msgid "Public key" msgstr "パブリックキー" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 msgid "Public key in PEM format" msgstr "PEMフォーマットのパブリックキー" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 msgid "Load ..." msgstr "読み込み..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 msgid "Private key" msgstr "プライベートキー" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 msgid "Private key in PEM format" msgstr "PEMフォーマットのプライベートキー" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 msgid "Profile name" msgstr "プロファイル名" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 msgid "Set active" msgstr "アクティブに設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "既知のパスが組み込まれた場所(例:遠隔共有ディスク)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 msgid "Configure location" msgstr "場所設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 msgid "Location" msgstr "場所" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "DICOM化の後にディレクトリを削除" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "DICOM化の前にディレクトリを削除" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 msgid "Security type" msgstr "セキュリティタイプ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "ユーザー" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 msgid "Change Password ..." msgstr "パスワード変更..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 msgid "Set main password" msgstr "メインパスワード設定..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 msgid "Set Password" msgstr "パスワード設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:736 msgid "Edit User" msgstr "ユーザー編集" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 msgid "User Name" msgstr "ユーザー名" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 msgid "Confirm Password" msgstr "パスワード確認" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 msgid "Properties" msgstr "プロパティ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:814 #, fuzzy msgid "Edit corner annotations" msgstr "コーナーアノテーションを隠す" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue} where GGGG is the tag's group in hexadecimal and EEEE is the " "tag's element." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 #, fuzzy msgid "Window/level" msgstr "レベル" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "加える" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ..\../main/gui/history3/historytoolmenu.cpp:149 #: ..\../widgets/gui/selecciontextobase.h:58 #, fuzzy msgid "Edit" msgstr "編集..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 #, fuzzy msgid "Default Window/Level" msgstr "レベル" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 #, fuzzy msgid "Corner annotations" msgstr "コーナーアノテーションを隠す" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 #, fuzzy msgid "Setup corner annotations" msgstr "コーナーアノテーションを隠す" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 #, fuzzy msgid "Setup..." msgstr "セキュリティ設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 #, fuzzy msgid "Other settings" msgstr "その他" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 #, fuzzy msgid "Interpolate pixel data" msgstr "日付" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:885 #, fuzzy msgid "Hanging protocol" msgstr "プロトコル" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 #, fuzzy msgid "Opening mode" msgstr "リトリーブモード" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 #, fuzzy msgid "Study opening criteria" msgstr "検査を開く時にエラー" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 msgid "Workspace" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 #, fuzzy msgid "Enable/Disable" msgstr "シェーダを有効" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 #, fuzzy msgid "Top left corner annotations" msgstr "コーナーアノテーションを隠す" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 #, fuzzy msgid "Setup window" msgstr "セキュリティ設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 #, fuzzy msgid "Set default" msgstr "デフォルトにセット" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 #, fuzzy msgid "Open in main window" msgstr "メインパスワード設定..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 #, fuzzy msgid "Setup position..." msgstr "位置 : " #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 msgid "Setup undocked window position" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 #, fuzzy msgid "Layout" msgstr "1x1 レイアウト" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 #, fuzzy msgid "Current layout" msgstr "現在" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 #, fuzzy msgid "Columns" msgstr "グリッド (2カラム)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 #, fuzzy msgid "Series criteria" msgstr "シリーズ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 #, fuzzy msgid "Select opening mode" msgstr "リトリーブモード" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 #, fuzzy msgid "Tag" msgstr "識別子なしの \"patient\" タグの読み込んでいます" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 msgid "Save" msgstr "保存" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 #, fuzzy msgid "Enable background queries" msgstr "シェーダを有効" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 #, fuzzy msgid "Smart retrieve" msgstr "リトリーブ方法" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 #, fuzzy msgid "Smart retrieve settings" msgstr "設定" #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "不活性を検出" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.h:64 #, fuzzy msgid "Export DICOM" msgstr "DICOM DIRへ書き出し" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "依頼医師ID" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 msgid "Ginkgo CADx private tags" msgstr "Ginkgo CADxプライベートタグ" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ..\../main/gui/history3/historypanel3.cpp:340 #: ..\../main/gui/history3/historytoolmenu.cpp:158 #, fuzzy msgid "Export" msgstr "画像書き出し" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ..\../main/gui/export/parametrosprincipales.cpp:157 msgid "Select the directory where the files will be stored" msgstr "ファイルを格納したいディレクトリを選択して下さい" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" "選択されたディレクトリは存在しません\n" "作成しますか?" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "選択されたパスに他のDICOMディレクトリが存在します" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 msgid "Select the DICOM Dir folder" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 #, fuzzy msgid "DICOM Dir migration" msgstr "DICOM Dir" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 #, fuzzy msgid "Migrate existing (recommended)" msgstr "ファイルが既に存在する" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 #, fuzzy msgid "Continue..." msgstr "続く" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 #, fuzzy msgid "Select other" msgstr "その他" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 msgid "Browse..." msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:106 msgid "DICOM Export" msgstr "DICOM書き出し" #: ..\../main/gui/export/parametrosprincipales.cpp:110 msgid "Select the format and the images you want to export" msgstr "書き出したい画像とフォーマットを選択してください" #: ..\../main/gui/export/parametrosprincipales.cpp:143 #, fuzzy msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" #: ..\../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:150 #, fuzzy msgid "Select file" msgstr "有効なDICOMDIRファイルを選択" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "DICOM (native format)" msgstr "DICOM (ネイティブフォーマット)" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "Image (jpg, bmp, png)" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:38 #, fuzzy msgid "Export all files of opened tab" msgstr "%d の %d ファイルを書き出し中" #: ..\../main/gui/export/pasosexportacionbase.cpp:55 msgid "JPEG" msgstr "JPEG" #: ..\../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "品質" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:40 msgid "Image Export Wizard" msgstr "画像書きだしウィザード" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ..\../main/gui/license/aboutdialogbase.cpp:67 #: ..\../main/gui/license/aboutdialogbase.cpp:151 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:54 msgid "&Accept" msgstr "&受諾" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "&次へ >" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:32 #, fuzzy msgid "Open link" msgstr "開く" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:402 #, fuzzy msgid "File link:" msgstr "このファイル" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ..\../main/gui/import/pasosimportacionbase.cpp:270 msgid "Study" msgstr "検査" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:216 msgid "User name" msgstr "ユーザー名" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:397 #, fuzzy msgid "Ginkgo Cloud link" msgstr "Ginkgo CADx" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:437 msgid "Copy to clipboard" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "New Ginkgo Cloud study" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 #, fuzzy msgid "To download the study, paste this url " msgstr "検査をダウンロード" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 msgid "Creator" msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 #, fuzzy msgid "Last Modificator" msgstr "7日以内" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 #, fuzzy msgid "Show link..." msgstr "開始時に表示" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "" #: ..\../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 #, fuzzy msgid "Invalid link" msgstr "無効な DICOM コンフォーマンスファイル" #: ..\../main/gui/history3/historypanel3.cpp:117 #: ..\../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "シリーズを開く" #: ..\../main/gui/history3/historypanel3.cpp:119 #: ..\../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "次と一緒にシリーズを開く..." #: ..\../main/gui/history3/historypanel3.cpp:226 #: ..\../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "年齢" #: ..\../main/gui/history3/historypanel3.cpp:228 #, fuzzy msgid "Date acquired" msgstr "日付" #: ..\../main/gui/history3/historypanel3.cpp:230 #, fuzzy msgid "Date added" msgstr "日付" #: ..\../main/gui/history3/historypanel3.cpp:308 #: ..\../main/gui/history3/historytoolmenu.cpp:82 #: ..\../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "取得" #: ..\../main/gui/history3/historypanel3.cpp:316 #: ..\../main/tools/dicomizetool.cpp:28 #, fuzzy msgid "Dicomize" msgstr "DICOM化の後、Ginkgo CADxは自動的に閉じます" #: ..\../main/gui/history3/historypanel3.cpp:363 msgid "All patients" msgstr "全ての患者" #: ..\../main/gui/history3/historypanel3.cpp:481 msgid "Results" msgstr "結果" # Number of series (for activity report) #: ..\../main/gui/history3/historypanel3.cpp:481 #, fuzzy, c-format msgid " (%d images)" msgstr "画像書き出し" #: ..\../main/gui/history3/historypanel3.cpp:634 #, fuzzy msgid "Open study with .." msgstr "開く" #: ..\../main/gui/history3/historypanel3.cpp:663 #: ..\../main/gui/history3/historypanel3base.cpp:482 #, fuzzy msgid "Synchronize" msgstr "同期" #: ..\../main/gui/history3/historypanel3.cpp:677 msgid "&Delete from history" msgstr "&履歴から削除" #: ..\../main/gui/history3/historypanel3.cpp:686 #, fuzzy msgid "&Clear history" msgstr "クリア" #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "タブが最大数に達したので, いくつかのタブを閉じてから再度試して下さい" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid "Unable to open modality " msgstr "モダリティを開くことができません" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr " 転送構文と一緒に " #: ..\../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "履歴を空にする事に失敗しました. 開いている検査を閉じて下さい" #: ..\../main/gui/history3/historypanel3.cpp:1086 msgid "all files" msgstr "全てのファイル" #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #, fuzzy msgid "Select at least one series" msgstr "一つ以上の画像を選択して下さい" #: ..\../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "開いているシリーズは削除できません" #: ..\../main/gui/history3/historypanel3.cpp:1128 #, fuzzy msgid "those series" msgstr "シリーズ" #: ..\../main/gui/history3/historypanel3.cpp:1128 #, fuzzy msgid "this series" msgstr "シリーズ" #: ..\../main/gui/history3/historypanel3base.cpp:57 #, fuzzy msgid "Advanced search" msgstr "上位設定..." #: ..\../main/gui/history3/historypanel3base.cpp:73 #, fuzzy msgid "Acquisition date" msgstr "日付" #: ..\../main/gui/history3/historypanel3base.cpp:302 #: ..\../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "取り外しを承認" #: ..\../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "削除してもいいですか " #: ..\../main/gui/history3/historypanel3base.cpp:336 #: ..\../main/gui/history3/historytoolmenu.cpp:102 #: ..\../main/gui/history3/historytoolmenu.cpp:200 #: ..\../main/gui/history3/historytoolmenu.cpp:229 msgid "Remove" msgstr "削除" #: ..\../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "開きたいファイルを選んで下さい/s" #: ..\../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "いつも表示されているこれらのファイルを使用" #: ..\../main/gui/history3/historypanel3base.cpp:454 #: ..\../main/gui/history3/historypanel3base.h:187 #, fuzzy msgid "Synchronize files" msgstr "同期" #: ..\../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" #: ..\../main/gui/history3/historytablemodel.cpp:406 #: ..\../main/gui/history3/historytablemodel.cpp:418 #: ..\../main/gui/history3/historytablemodel.cpp:473 #: ..\../main/gui/history3/historytablemodel.cpp:485 #: ..\../main/gui/open/dicomdirtablemodel.cpp:105 msgid "00/00/0000 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/history3/historytoolmenu.cpp:138 msgid "Close history" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:139 #: ..\../main/gui/startup/startupform.cpp:53 #, fuzzy msgid "History" msgstr "履歴を格納中..." #: ..\../main/gui/history3/historytoolmenu.cpp:201 #: ..\../main/gui/history3/historytoolmenu.cpp:230 #, fuzzy msgid "Clear history" msgstr "クリア" #: ..\../main/gui/history3/historytoolmenu.cpp:232 #, fuzzy msgid "Select all" msgstr "全て" #: ..\../main/gui/history3/historytoolmenu.cpp:233 #, fuzzy msgid "Deselect all" msgstr "全て" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 msgid "Destination" msgstr "送信先" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 msgid "Status" msgstr "ステータス" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 msgid "Error message" msgstr "エラーメッセージ" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 msgid "Show Message" msgstr "メッセージを表示" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 msgid "Edit Message" msgstr "メッセージを編集" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 msgid "Delete message" msgstr "メッセージを削除" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 msgid "Error editing message" msgstr "メッセージ編集エラー" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 msgid "Error purguing messages" msgstr "メッセージパージエラー" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Stop" msgstr "停止" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Sent" msgstr "送信" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "保留" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/progress/statusbarprogreso.cpp:281 msgid "Warning" msgstr "注意" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 msgid "Error getting message" msgstr "メッセージ取得エラー" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 msgid "Running" msgstr "動作中" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "投入プロセスは、送信する準備が開始されています" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "停止" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 msgid "Usually due to an error in sending a message" msgstr "通常、送信中メッセージのエラーによる" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Start" msgstr "開始" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "これらのメッセージを削除しますか?" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 msgid "Error deleting messages" msgstr "メッセージ削除中にエラー" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 msgid "Remove sent messages" msgstr "送信メッセージを削除" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 msgid "Exit" msgstr "終了" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 msgid "Messages" msgstr "メッセージ" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 msgid "Refresh" msgstr "リフレッシュ" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1394 msgid "View" msgstr "表示" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 msgid "Send task status:" msgstr "送信タスクステータス:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "有効" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 msgid "Message" msgstr "メッセージ" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "日付:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 msgid "Destination:" msgstr "送信先:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 msgid "Status:" msgstr "ステータス:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 msgid "Message content:" msgstr "メッセージコンテンツ:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:142 msgid "OK" msgstr "OK" #: ..\../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "DICOMファイルのデータを概観" #: ..\../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "DICOM data from the files to be generated can be populated" #: ..\../main/gui/import/generaldata.cpp:210 msgid "" "\n" "* The patient ID is required." msgstr "" "\n" "* 患者IDが必要です" #: ..\../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" "\n" "* 患者の名字と名前を合わせて、61文字以上にはできません." #: ..\../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" "\n" "* 身長のフォーマットがセンチメーターでは正しくありません " #: ..\../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" "\n" "* 患者の誕生日が検査日の後です" #: ..\../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" "\n" "* 体重のフォーマットが正しくありません. 有効な範囲は0から400kgです." #: ..\../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "フィールドの検証中にエラーが起こりました" #: ..\../main/gui/import/generaldata.cpp:231 msgid "Error validating fields" msgstr "フィールドを検証中にエラー" #: ..\../main/gui/import/pasoperfilimportacion.cpp:148 msgid "Selecting Import Profile" msgstr "プロファイル読み込み選択中" #: ..\../main/gui/import/pasoperfilimportacion.cpp:152 msgid "You must select the profile you want to use import" msgstr "読み込みに使用するプロファイルを選択して下さい" #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 msgid "You must select the import profile" msgstr "読み込みプロファイルを選択して下さい" #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "予期せぬエラー. モジュールを再選択して下さい" #: ..\../main/gui/import/pasosimportacionbase.cpp:21 msgid "Selected images" msgstr "選択された画像" #: ..\../main/gui/import/pasosimportacionbase.cpp:56 msgid "Preview" msgstr "プレビュー" #: ..\../main/gui/import/pasosimportacionbase.cpp:62 msgid "Remove all" msgstr "全て削除" #: ..\../main/gui/import/pasosimportacionbase.cpp:113 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:65 msgid "Demographic data" msgstr "デモデータ" #: ..\../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "Identificator *" #: ..\../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "(IDあるいは医療履歴番号)" #: ..\../main/gui/import/pasosimportacionbase.cpp:159 #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "Birth date" msgstr "誕生日 " #: ..\../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "名字" #: ..\../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "性別" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "男性" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "女性" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "その他" #: ..\../main/gui/import/pasosimportacionbase.cpp:217 msgid "Study Details" msgstr "検査詳細" #: ..\../main/gui/import/pasosimportacionbase.cpp:234 #: ..\../wx/gnkinforme/gnkinformebase.cpp:122 msgid "Weight" msgstr "体重" #: ..\../main/gui/import/pasosimportacionbase.cpp:245 msgid "Kg" msgstr "Kg" #: ..\../main/gui/import/pasosimportacionbase.cpp:252 #: ..\../wx/gnkinforme/gnkinformebase.cpp:119 msgid "Height" msgstr "身長" #: ..\../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "cm" #: ..\../main/gui/import/pasosimportacionbase.cpp:291 #: ..\../main/gui/import/pasosimportacionbase.cpp:333 msgid "Time" msgstr "時間" #: ..\../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "パスの場所が見つかりません" #: ..\../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" #: ..\../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files..." msgstr "ファイル選択..." #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "ファイルシステムからファイル選択" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 #, fuzzy msgid "Paste from clipboard" msgstr "PACSから画像を取得" #: ..\../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "戻る" #: ..\../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "このファイルをディスクから削除してもいいですか?" #: ..\../main/gui/import/selectimagesimportation.cpp:330 msgid "Delete selected items" msgstr "選択項目を削除" #: ..\../main/gui/import/selectimagesimportation.cpp:342 msgid "You must select an image" msgstr "画像を選択してください" #: ..\../main/gui/import/selectimagesimportation.cpp:346 msgid "Generating preview..." msgstr "プレビュー作成中..." #: ..\../main/gui/import/selectimagesimportation.cpp:500 msgid "Select images" msgstr "画像を選択" #: ..\../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "サムネイル作成中..." #: ..\../main/gui/import/selectimagesimportation.cpp:715 msgid "Image selection" msgstr "画像選択" #: ..\../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "読み込みたい画像を選択して下さい" #: ..\../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "一つ以上の画像を選択して下さい" #: ..\../main/gui/import/selectimagesimportation.cpp:760 msgid "The file" msgstr "このファイル" #: ..\../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr " 存在しません" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:52 msgid "Image Import Wizard" msgstr "画像読み込みウィザード" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "要求されたモジュールに導入サポートはありません" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "いくつかの導入サポートモジュールは登録されていません" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "いくつかの導入サポートモジュールはありません" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "要求されたモジュールは登録されていません" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "要求されたモジュールは登録されていません" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:167 #, fuzzy msgid "free of" msgstr "エラー: システムメモリ不足. メモリ確保のためスタディを閉じて下さい." #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:181 #, fuzzy msgid "in dicomization dir." msgstr "XML DICOM化" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "読み込み処理をキャンセルしてもいいですか?" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, c-format msgid "Step %d of %d: " msgstr "Step %d of %d: " #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "&終了" #: ..\../main/gui/license/aboutdialog.cpp:25 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 #, fuzzy msgid "About" msgstr "最新の Ginkgo CADx アップデートの注意" #: ..\../main/gui/license/aboutdialogbase.cpp:22 msgid "Ginkgo CADx" msgstr "Ginkgo CADx" #: ..\../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "Credits" #: ..\../main/gui/license/aboutdialogbase.cpp:55 msgid "Licenses" msgstr "ライセンス" #: ..\../main/gui/license/aboutdialogbase.cpp:58 msgid "UPDATE_INFO" msgstr "UPDATE_INFO" #: ..\../main/gui/license/aboutdialogbase.cpp:108 #: ..\../main/gui/license/aboutdialogbase.h:88 msgid "Open Source Licenses" msgstr "オープンソースライセンス" #: ..\../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "Cairo" #: ..\../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "DCMTK" #: ..\../main/gui/license/aboutdialogbase.cpp:119 msgid "FamFamFam Icons" msgstr "FamFamFam Icons" #: ..\../main/gui/license/aboutdialogbase.cpp:120 msgid "Fugue Icons" msgstr "Fugue Icons" #: ..\../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "ITK" #: ..\../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "LibJpeg" #: ..\../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "LibPng" #: ..\../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "OpenSSL" #: ..\../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "VTK" #: ..\../main/gui/license/aboutdialogbase.cpp:126 msgid "WxWidgets" msgstr "WxWidgets" #: ..\../main/gui/license/aboutdialogbase.cpp:127 msgid "Zlib" msgstr "Zlib" #: ..\../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "SQL Lite" #: ..\../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "CharLS" #: ..\../main/gui/license/aboutdialogbase.cpp:130 #, fuzzy msgid "Dark Glass Icons" msgstr "FamFamFam Icons" #: ..\../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:23 #: ..\../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "ライセンスに同意" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." #: ..\../main/gui/license/acceptlicensedialogbase.cpp:53 msgid "Check for updates automatically" msgstr "アップデートの自動チェック" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:66 msgid "I Accept the license" msgstr "ライセンスを受け入れます" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "ライセンスを受け入れません" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Save logs" msgstr "保存ログ" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "Log file (*.log) | *.log | Text file (*.txt) | *.txt" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 msgid "File couldn't be stored " msgstr "ファイルは格納できません " #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 msgid "Could not write to file" msgstr "ファイル書き込みができません" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 msgid "Save log..." msgstr "ログ保存..." #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 msgid "Clear log" msgstr "ログクリア..." #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 msgid "Log" msgstr "Log" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "クリア" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "ログテキスト" #: ..\../main/gui/login/dialogologin.cpp:50 msgid "The username or password is incorrect" msgstr "ユーザーネームかパスワードが不正確です" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:250 msgid "Tasks" msgstr "タスク" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1139 msgid "Included in the history ..." msgstr "履歴を含めています..." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "現在の設定にアップデートチェックするためのURLがありません" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "Check update error" msgstr "アップデートチェックエラー" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #, fuzzy msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "XMLパース中にセマンティックエラー(詳細はログを見ろよ):\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 msgid "Malformed XML" msgstr "不正なXML" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1192 msgid "Error in interpreting the parameters of the command line. (" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "XMLパース中にセマンティックエラー(詳細はログを見ろよ):\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 msgid "Error parsing integration XML:\n" msgstr "XMLパースエラー:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 msgid "PACS error:\n" msgstr "PACSエラー:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 msgid "Error executing WorkFlow\n" msgstr "ワークフロー実行エラー\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" "ワークフロー実行エラー\n" "内部エラー" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 msgid "Close current view" msgstr "現在のビューを閉じる" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all" msgstr "全て閉じる" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all views" msgstr "全てのビューを閉じる" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "&終了" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "Exit application" msgstr "アプリケーションを終了" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "フルスクリーン" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Show full screen" msgstr "フルスクリーンで表示" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1302 msgid "Tab grouping" msgstr "タブをグループ化" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1329 #, fuzzy msgid "Ginkgo CADx manual ..." msgstr "Ginkgo CADx" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1330 #, fuzzy msgid "Open test card" msgstr "接続テスト" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "アップデートのチェック" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for newest versions" msgstr "新しいヴァージョンをチェック" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1332 msgid "Need support ..." msgstr "サポートが必要 ..." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 #, fuzzy msgid "About " msgstr "最新の Ginkgo CADx アップデートの注意" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 msgid "HL7 monitor" msgstr "HL7モニタ" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 msgid "HL7 message control" msgstr "HL7メッセージコントロール" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 msgid "Log monitor" msgstr "ログモニタ" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 msgid "Log monitored" msgstr "ログモニター" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1390 msgid "&File" msgstr "&ファイル" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "&編集" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "&ヘルプ" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "寄せ集める" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "この検査の変更を保存してもいいですか" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1664 msgid "Unsaved data" msgstr "保存していないデータ" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "" "シリーズ保存中にエラーが起きました\n" "閉じてもいいですか? " #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "Error saving" msgstr "保存エラー" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "Full Screen" msgstr "フルスクリーン" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "View Full Screen" msgstr "フルスクリーン表示" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1708 msgid "Tab Regroup" msgstr "タブを再グループ化" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "&閉じる" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "&Close all" msgstr "&全て閉じる" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "Close all windows" msgstr "全てのウインドウを閉じる" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1728 msgid "Tabbed organization" msgstr "タブ構成" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "新しいヴァージョンのGinkgo CADxはありません" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "Ginkgo CADx updated" msgstr "Ginkgo CADxはアップデートされました" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1782 msgid "New version available (" msgstr "新しいヴァージョンがあります (" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "認証プロセス中の内部エラー" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:29 msgid "New Update" msgstr "新しいアップデート" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:34 msgid "New version available" msgstr "新しいヴァージョンがあります" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "このアップデートについて再び通知しない" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:43 msgid "X" msgstr "X" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:45 msgid "Close this notification" msgstr "この通知を閉じる" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:104 msgid "The following commands will be aborted if you close the application" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:131 msgid "Close Ginkgo CADx" msgstr "Ginkgo CADx を閉じる" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "アプリケーションを閉じて、保留中コマンドを中断する" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "コマンド実行中はアプリケーションを閉じないで下さい" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:138 msgid "User login" msgstr "ユーザーログイン" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:202 msgid "System authentication" msgstr "システム認証" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:260 msgid "Login" msgstr "ログイン" #: ..\../main/gui/open/abrir.cpp:80 ..\../main/gui/open/abrir.cpp:82 msgid "Open..." msgstr "開く..." #: ..\../main/gui/open/opendialogs.cpp:58 #, fuzzy msgid "There was an error reading DICOMDIR file" msgstr "有効なDICOMDIRファイルを選択" #: ..\../main/gui/open/opendialogs.cpp:62 msgid "Select a valid DICOMDIR file" msgstr "有効なDICOMDIRファイルを選択" #: ..\../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "取得したいDICOMDIRファイルを選択" #: ..\../main/gui/open/opendialogs.cpp:180 #: ..\../main/gui/open/opendialogsbase.cpp:170 #: ..\../main/gui/open/opendialogsbase.h:112 msgid "Copy or link" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:22 #: ..\../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "DICOM DIRから取得" #: ..\../main/gui/open/opendialogsbase.cpp:94 #: ..\../main/gui/open/opendialogsbase.h:85 msgid "Select drive" msgstr "ドライブを選択" #: ..\../main/gui/open/opendialogsbase.cpp:175 msgid "Do you want to copy or link files?" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ..\../main/gui/selectpacsserver/selectpacsserver.cpp:30 #, fuzzy msgid "There aren't any PACS configured" msgstr "PACS設定がありません" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:69 #, fuzzy msgid "0000/00/00 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.h:57 #, fuzzy msgid "Upload study" msgstr "PACSサーバへ画像をアップロード" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 #, fuzzy msgid "Select PACS server" msgstr "有効なPACSサーバを選択して下さい" #: ..\../main/gui/paneltags/paneltags.cpp:119 msgid "Metadata" msgstr "メタデータ" #: ..\../main/gui/paneltags/paneltags.cpp:120 msgid "Identification information" msgstr "識別情報" #: ..\../main/gui/paneltags/paneltags.cpp:121 msgid "Patient information" msgstr "患者情報" #: ..\../main/gui/paneltags/paneltags.cpp:122 msgid "Acquisition information" msgstr "取得情報" #: ..\../main/gui/paneltags/paneltags.cpp:123 msgid "Relationship information" msgstr "関連情報" #: ..\../main/gui/paneltags/paneltags.cpp:124 msgid "Image presentation information" msgstr "画像提示情報" #: ..\../main/gui/paneltags/paneltags.cpp:125 ..\../widgets/wtextbox.cpp:525 msgid "Text" msgstr "テキスト" #: ..\../main/gui/paneltags/paneltags.cpp:126 msgid "Other" msgstr "その他" #: ..\../main/gui/paneltags/paneltags.cpp:137 #: ..\../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "日付" #: ..\../main/gui/previewpanel/previewpanel.cpp:47 msgid "Hide" msgstr "隠す" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:187 #: ..\../main/gui/previewpanel/previewpanelbase.cpp:207 msgid "Previews" msgstr "" #: ..\../main/gui/progress/progresobase.cpp:23 msgid "There is no running tasks" msgstr "動作タスクはありません" #: ..\../main/gui/progress/statusbarprogreso.cpp:165 msgid "0 running tasks." msgstr "動作タスクは0" #: ..\../main/gui/progress/statusbarprogreso.cpp:192 #, c-format msgid "There are %d pending tasks" msgstr "%d の保留タスクがあります" #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.h:55 #, fuzzy msgid "Select PACS" msgstr "有効なPACSサーバを選択して下さい" #: ..\../main/gui/startup/startupformbase.cpp:29 #, fuzzy msgid "http://ginkgo-cadx.com" msgstr "HTTPプロキシを有効" #: ..\../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:47 #, fuzzy msgid "Ginkgo CADx Pro" msgstr "Ginkgo CADx" #: ..\../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "Powered by" #: ..\../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "MetaEmotion Healthcare" #: ..\../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "開始ページ" #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete Widget" msgstr "ウィジット削除" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Properties ..." msgstr "プロパティ..." #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Widget Properties" msgstr "ウィジットプロパティ" #: ..\../main/tools/addfiletohistorytool.cpp:114 msgid "Open file" msgstr "ファイルを開く" #: ..\../main/tools/addfiletohistorytool.cpp:115 #: ..\../main/tools/openfoldertool.cpp:27 msgid "Open folder" msgstr "フォルダを開く" #: ..\../main/tools/addfiletohistorytool.cpp:116 #: ..\../main/tools/openremovabletool.cpp:28 msgid "Open removable unit" msgstr "リムーバブル装置を開く" #: ..\../main/tools/addfiletohistorytool.cpp:117 #: ..\../main/tools/openginkgocloudlinktool.cpp:27 #, fuzzy msgid "Open Ginkgo Cloud link" msgstr "Ginkgo CADx visualizator はオープンソースです" #: ..\../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "ノーマル角度 (3点)" #: ..\../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "コブ角度 (2直線)" #: ..\../main/tools/colormaptool.cpp:110 #, fuzzy msgid "Invert color map" msgstr "色" #: ..\../main/tools/cornerannotationstool.cpp:44 msgid "Hide corner annotations" msgstr "コーナーアノテーションを隠す" #: ..\../main/tools/cornerannotationstool.cpp:46 msgid "Show corner annotations" msgstr "コーナーアノテーションを表示" #: ..\../main/tools/detachwindowtool.cpp:42 #, fuzzy msgid "Attach View" msgstr "表示" #: ..\../main/tools/detachwindowtool.cpp:44 #, fuzzy msgid "Detach view" msgstr "表示" #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize files" msgstr "" #: ..\../main/tools/exportdicomdirtool.cpp:32 msgid "Export to DICOM Dir" msgstr "DICOM DIRへ書き出し" #: ..\../main/tools/markertool.cpp:171 msgid "Point" msgstr "点" #: ..\../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "矢印" #: ..\../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "楕円" #: ..\../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "台形" #: ..\../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "多角形" #: ..\../main/tools/markertool.cpp:176 #, fuzzy msgid "Free form" msgstr "エラー: システムメモリ不足. メモリ確保のためスタディを閉じて下さい." #: ..\../main/tools/metricgridtool.cpp:57 msgid "Grid" msgstr "グリッド" #: ..\../main/tools/metricgridtool.cpp:67 msgid "Grid Scale" msgstr "グリッド寸法" #: ..\../main/tools/metricgridtool.cpp:74 msgid "Scale X" msgstr "X寸法" #: ..\../main/tools/metricgridtool.cpp:78 msgid "X axis scale" msgstr "X軸寸法" #: ..\../main/tools/metricgridtool.cpp:87 msgid "Scale Y" msgstr "Y寸法" #: ..\../main/tools/metricgridtool.cpp:91 msgid "Y axis scale" msgstr "Y軸寸法" #: ..\../main/tools/metricgridtool.cpp:206 msgid "Show grid" msgstr "グリッド表示" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "グリッド設定" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "グリッド設定" #: ..\../main/tools/metricgridtool.cpp:250 msgid "Hide Grid" msgstr "グリッドを隠す" #: ..\../main/tools/metricgridtool.cpp:252 msgid "Show Grid" msgstr "グリッド表示" #: ..\../main/tools/openfiletool.cpp:28 msgid "Open File" msgstr "ファイルを開く" #: ..\../main/tools/pacsuploadtool.cpp:54 msgid "Send to PACS..." msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:59 msgid "Unset pixels blurring" msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:61 #, fuzzy msgid "Set pixels blurring" msgstr "ユーザーにより設定" #: ..\../main/tools/queryretrievehistorytool.cpp:25 #, fuzzy msgid "PACS Q/R" msgstr "P-R-T axes: " #: ..\../main/tools/queryretrievetool.cpp:94 #: ..\../main/tools/searchginkgocloudhistorytool.cpp:28 #, fuzzy msgid "Search Ginkgo Cloud" msgstr "検索" #: ..\../main/tools/rotateandfliptool.cpp:151 #, fuzzy msgid "Undo rotate and flip" msgstr "元に戻す" #: ..\../main/tools/rotateandfliptool.cpp:153 #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:156 msgid "Flip horizontal" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:157 msgid "Flip vertical" msgstr "" #: ..\../main/tools/sendpacstool.cpp:34 msgid "Send to PACS" msgstr "" #: ..\../main/tools/sendpacstool.cpp:70 #, fuzzy msgid "Sending to PACS..." msgstr "PACS" #: ..\../main/tools/showtagstool.cpp:42 msgid "Hide DICOM inspector" msgstr "DICOMタグパネルを隠す" #: ..\../main/tools/showtagstool.cpp:44 msgid "Show DICOM inspector" msgstr "DICOMパネルを表示" #: ..\../main/tools/simpleprinttool.cpp:119 #, fuzzy msgid "Image printing" msgstr "この画像にオーバーレイはありません" #: ..\../main/tools/simpleprinttool.cpp:224 #, fuzzy msgid "Page setup" msgstr "開始ページ" #: ..\../main/tools/simpleprinttool.cpp:225 #, fuzzy msgid "Print preview" msgstr "印刷" #: ..\../main/tools/simpleprinttool.cpp:272 #, fuzzy msgid "Print image" msgstr "印刷" #: ..\../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "自動計算" #: ..\../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "" #: ..\../main/tools/undotool.cpp:110 msgid "Redo" msgstr "再実行" #: ..\../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "" #: ..\../main/tools/videotool.cpp:153 #, fuzzy msgid "Enable loop" msgstr "シェーダを有効" #: ..\../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:267 #, fuzzy msgid "Add column" msgstr "加える" #: ..\../main/tools/windowlayouttool.cpp:268 #, fuzzy msgid "Add row" msgstr "加える" #: ..\../main/tools/windowlayouttool.cpp:270 #, fuzzy msgid "Remove column" msgstr "削除" #: ..\../main/tools/windowlayouttool.cpp:271 #, fuzzy msgid "Remove row" msgstr "削除" #: ..\../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "1x1 レイアウト" #: ..\../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "1x2 レイアウト" #: ..\../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "2x1 レイアウト" #: ..\../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "2x2 レイアウト" #: ..\../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "3x3 レイアウト" #: ..\../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "4x4 レイアウト" #: ..\../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:82 #, fuzzy msgid "The tool is already registered" msgstr "要求されたモジュールは登録されていません" #: ..\../main/toolsystem/toolsregistry.cpp:187 #, fuzzy msgid "The module " msgstr "不明なモジュール Id (" #: ..\../resources/ginkgoresourcesmanager.cpp:49 msgid "Unable to load PNG bitmap resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:56 msgid "Unable to load PNG image resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:63 msgid "Unable to load GIF animation resource" msgstr "" #: ..\../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "キャリブレーション値は十進法数にしてください" #: ..\../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "キャリブレーション値が低すぎます" #: ..\../widgets/gui/calibracion.cpp:219 msgid "Enter the calibration value" msgstr "キャリブレーション値を入力してください" #: ..\../widgets/gui/calibracion.cpp:225 msgid "The calibration value is too low" msgstr "キャリブレーション値が低すぎます" #: ..\../widgets/gui/calibracion.cpp:229 msgid "The calibration value is too high" msgstr "キャリブレーション値が高すぎます" #: ..\../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "キャリブレーション中..." #: ..\../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "実測値" #: ..\../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "距離" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "ミクロン" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "ミリメーター" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "センチメーター" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "メーター" #: ..\../widgets/gui/selecciontextobase.cpp:26 msgid "Note" msgstr "ノート" #: ..\../widgets/wangulo.cpp:1101 ..\../widgets/wangulo.cpp:1103 msgid "Type" msgstr "タイプ" #: ..\../widgets/wangulo.cpp:1101 msgid "Normal" msgstr "ノーマル" #: ..\../widgets/wangulo.cpp:1103 msgid "Cobb" msgstr "コブ" #: ..\../widgets/welipse.cpp:721 ..\../widgets/wfreeform.cpp:470 #: ..\../widgets/wpolygon.cpp:574 msgid "Center (I)" msgstr "中央 (I)" #: ..\../widgets/welipse.cpp:727 ..\../widgets/wfreeform.cpp:476 #: ..\../widgets/wpolygon.cpp:580 msgid "Center (M)" msgstr "中央 (M)" #: ..\../widgets/welipse.cpp:762 ..\../widgets/welipse.cpp:766 msgid "Greater Radius" msgstr "大半径" #: ..\../widgets/welipse.cpp:763 ..\../widgets/welipse.cpp:767 msgid "Lower Radius" msgstr "下半径" #: ..\../widgets/wfreeform.cpp:482 ..\../widgets/wpolygon.cpp:586 msgid "Number of Vertex" msgstr "頂点の数" #: ..\../widgets/wpunto.cpp:353 msgid "Position (I)" msgstr "位置 (I)" #: ..\../widgets/wpunto.cpp:358 msgid "Position (M)" msgstr "位置 (M)" #: ..\../widgets/wrule.cpp:558 msgid "Image Calibration" msgstr "画像キャリブレーション" #: ..\../widgets/wrule.cpp:663 msgid "Length" msgstr "長さ" #: ..\../widgets/wrule.cpp:668 msgid "Points (I)" msgstr "点 (I)" #: ..\../widgets/wrule.cpp:675 msgid "Points (M)" msgstr "点 (M)" #: ..\../widgets/wtextbox.cpp:445 #, fuzzy msgid "Default text" msgstr "テキスト" #: ..\../wx/gnkinforme/gnkinformebase.cpp:41 msgid "Commit date" msgstr "日付をコミット" #: ..\../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "UNKNOW" #: ..\../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "%m/%d/%Y" #: ..\../wx/gnkinforme/gnkinformebase.cpp:214 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "コミット済み" #: ..\../wx/gnkinforme/gnkinformebase.cpp:219 msgid "Modified" msgstr "修正済み" #: ..\../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "コミットしていない" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "NAME SURNAME SECOND_SURNAME" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "644654645" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:130 msgid "Commit inform" msgstr "コミット情報" #: ..\../wx/propiedades/wxpropiedades.cpp:30 msgid "Properties of " msgstr "次のプロパティ " #: ..\../wx/propiedades/wxpropiedadesbase.cpp:31 msgid "Widget's Name" msgstr "ウィジット名" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "< &前へ" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "&キャンセル" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3701 msgid "Regular expression invalid: '" msgstr "規則表現が無効: '" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "REGEXP 引数の数が不正に呼び出されました: 2の代わりに %d." #: ..\../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.h:56 #, fuzzy msgid "Overwrite Paths" msgstr "上書き" #: ..\../ginkgopro/ginkgo_pro_defines.h:21 #, fuzzy msgid "Professional DICOM CADx environment" msgstr "Open Source DICOM CADx environment" #: ..\../main/controllers/dcmtk/dicomservers.h:39 #, fuzzy msgid "Server not found" msgstr "サーバIDが見つかりません ID = " #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:99 #, fuzzy msgid "DICOM Query/Retrieve" msgstr "不明なクエリ/リトリーブレベル" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:123 #, fuzzy msgid "Not found" msgstr "計測が見つかりません" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:418 #, fuzzy msgid "Advanced Settings" msgstr "上位設定" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:570 #, fuzzy msgid "Edit profile" msgstr "プロファイル" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:665 #, fuzzy msgid "Add/Edit Location" msgstr "場所" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:784 #, fuzzy msgid "Add window/level" msgstr "レベル" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 #, fuzzy msgid "Add tag" msgstr "加える" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 #, fuzzy msgid "Setup window position" msgstr "位置 : " #: ..\../main/gui/countdownmessage/countdownmessagebase.h:61 #, fuzzy msgid "Closing" msgstr "GinkgoCADxを閉じる..." #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 #, fuzzy msgid "DICOM Dir configuration" msgstr "DICOM Dir" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:70 #, fuzzy msgid "Open Ginkgo Cloud" msgstr "Ginkgo CADx visualizator はオープンソースです" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:123 #, fuzzy msgid "Ginkgo Cloud search" msgstr "検索" #: ..\../main/gui/history3/confirmdeletedialog.h:24 #, fuzzy msgid " from History?" msgstr "&履歴から削除" #: ..\../main/gui/history3/historypanel3base.h:100 #, fuzzy msgid "Medical history" msgstr "(IDあるいは医療履歴番号)" #: ..\../main/gui/history3/historypanel3base.h:161 #, fuzzy msgid "Open With ..." msgstr "開く" #: ..\../main/gui/history3/openwithdialog.h:72 #, fuzzy msgid "Select a View" msgstr "同期したい現在のデータ表示を選択" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 #, fuzzy msgid "Message detail" msgstr "メッセージ" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 #, fuzzy msgid "Log node" msgstr "Log" #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:87 msgid "Closing Ginkgo CADx" msgstr "GinkgoCADxを閉じる..." #: ..\../main/gui/paneltags/paneltagsbase.h:57 #, fuzzy msgid "DICOM Inspector" msgstr "DICOMタグパネルを隠す" #: ..\../main/license.h:31 msgid "Open Source DICOM CADx environment" msgstr "Open Source DICOM CADx environment" #: ..\../widgets/gui/calibracionbase.h:65 #, fuzzy msgid "Calibration" msgstr "画像キャリブレーション" #: ..\../wx/propiedades/wxpropiedadesbase.h:62 #, fuzzy msgid "Properties of ..." msgstr "プロパティ..." #: ..\../wx/thumbnailctrl/thumbnailwidget.h:44 #, fuzzy msgid "Image Browser Dialog" msgstr "この画像にオーバーレイはありません" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.h:60 msgid "Test title" msgstr "テストタイトル" #~ msgid "" #~ "Unexpected Error exporting, the view is not allowed to export to the " #~ "format selected" #~ msgstr "" #~ "予期しない書き出しエラー, このビューは選択されたフォーマットで書き出しでき" #~ "ません" #~ msgid "Failed to store the file, check permissions on the directory" #~ msgstr "ファイル格納に失敗, ディレクトリ権限をチェックしてください" #~ msgid "The key files will not be exported" #~ msgstr "このキーファイルは書き出しされません" #~ msgid "Current" #~ msgstr "現在" #~ msgid "All" #~ msgstr "全て" #~ msgid "JPG" #~ msgstr "JPG" #~ msgid "BMP" #~ msgstr "BMP" #~ msgid "PNG" #~ msgstr "PNG" #~ msgid "Content" #~ msgstr "コンテンツ" #~ msgid "Include annotation Widgets" #~ msgstr "Include annotation Widgets" #~ msgid "Evaluation maps" #~ msgstr "評価マップ" #~ msgid "Tile Horizontally" #~ msgstr "水平にタイリング" #~ msgid "Tile Vertically" #~ msgstr "垂直にタイリング" #~ msgid "Grid (two columns)" #~ msgstr "グリッド (2カラム)" #~ msgid "Grid (three columns)" #~ msgstr "グリッド (3カラム)" #~ msgid "Grid organization" #~ msgstr "グリッド構成" #~ msgid "Color" #~ msgstr "色" #~ msgid "Vertex (I)" #~ msgstr "頂点 (I)" #~ msgid "Vertex (M)" #~ msgstr "頂点 (M)" #~ msgid "Center" #~ msgstr "中央" #~ msgid "0" #~ msgstr "0" #~ msgid "Checking program updates..." #~ msgstr "プログラムアップデートをチェック中..." #~ msgid "Subsystem integration error: uninitialized result data container." #~ msgstr "Subsystem integration error: uninitialized result data container." #~ msgid "You have to specify at least uid series" #~ msgstr "最小の uid シリーズの明示が必要です" #~ msgid "You have to specify uid series" #~ msgstr "uid シリーズの明示が必要です" #~ msgid "Untitled" #~ msgstr "無題" #~ msgid "UID" #~ msgstr "UID" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">" #~ msgstr ">" #~ msgid "<" #~ msgstr "<" #~ msgid "<<" #~ msgstr "<<" #~ msgid "Patient's Id" #~ msgstr "患者 Id" #~ msgid "You are not allowed to download this kind of modalities (" #~ msgstr "この種類のモジュールをダウンロードすることは許可されていません (" #~ msgid "Searching..." #~ msgstr "検索中..." #~ msgid "unknown column" #~ msgstr "不明なカラム" #~ msgid "Horizontal mosaic" #~ msgstr "水平に寄せ集める" #~ msgid "Vertical mosaic" #~ msgstr "垂直に寄せ集める" #~ msgid "Include Annotations" #~ msgstr "アノテーションを含む" #~ msgid "Evaluation Maps" #~ msgstr "評価マップ" #~ msgid "Zoom" #~ msgstr "拡大率" #~ msgid "Options" #~ msgstr "オプション" #~ msgid "Images per sheet" #~ msgstr "シート当たりの画像" #~ msgid "Print ..." #~ msgstr "印刷..." #~ msgid "Point Size" #~ msgstr "点サイズ" #~ msgid "Family" #~ msgstr "ファミリー" #~ msgid "Face Name" #~ msgstr "Face Name" #~ msgid "Underline" #~ msgstr "下線" #~ msgid "Make a selection:" #~ msgstr "選択する:" #~ msgid "Categorized Mode" #~ msgstr "カテゴライズモード" #~ msgid "Alphabetic Mode" #~ msgstr "アルファベットモード" #~ msgid "False" #~ msgstr "偽" #~ msgid "True" #~ msgstr "真" #~ msgid "Unspecified" #~ msgstr "不特定" #~ msgid "" #~ "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", " #~ "NOT \"%s\"." #~ msgstr "" #~ "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", " #~ "NOT \"%s\"." #~ msgid "Error in resource: %s" #~ msgstr "リソースエラー: %s" #~ msgid "Value must be %lld or higher" #~ msgstr "値は %lld か、それ以上にしてください" #~ msgid "Value must be %llu or higher" #~ msgstr "値は %llu か、それ以上にしてください" #~ msgid "Value must be %llu or less" #~ msgstr "値は %llu か、それ以下にしてください" #~ msgid "Value must be %f or higher" #~ msgstr "値は %f か、それ以上にしてください" #~ msgid "Value must be %f or less" #~ msgstr "値は %f か、それ以下にしてください" #~ msgid "Not %s" #~ msgstr "%s ではない" #~ msgid "Choose a directory:" #~ msgstr "ディレクトリ選択:" #~ msgid "Choose a file" #~ msgstr "ファイル選択" #~ msgid "All files (*.*)|*.*" #~ msgstr "全てのファイル (*.*)|*.*" #~ msgid "Update" #~ msgstr "更新" #~ msgid "Up" #~ msgstr "アップ" #~ msgid "Down" #~ msgstr "ダウン" #~ msgid "Page %i" #~ msgstr "Page %i" #~ msgid "Configure proxy" #~ msgstr "プロキシ設定" #~ msgid "Use system settings" #~ msgstr "システム設定を使用" #~ msgid "Manual configuration of proxy:" #~ msgstr "プロキシの手動設定:" #~ msgid "Host:" #~ msgstr "ホスト:" #~ msgid "Port:" #~ msgstr "ポート:" #~ msgid "Password:" #~ msgstr "パスワード" #~ msgid "Show / Hide DICOM tags panel" #~ msgstr "DICOMタグパネルを、表示/隠す" #~ msgid "Updates" #~ msgstr "更新" #~ msgid "Visualization" #~ msgstr "ヒストグラム均等化" #~ msgid "Show metadatada" #~ msgstr "メタデータ" #~ msgid "http://ginkgo-cadx.com/en/services/" #~ msgstr "http://ginkgo-cadx.com/en/services/" #~ msgid "Lung" #~ msgstr "長さ" #~ msgid "Reset window level and zoom" #~ msgstr "ウインドウレベルと拡大率をリセット" #~ msgid "Dicomize images..." #~ msgstr "DICOM化ファイル" #~ msgid "Dicomize images" #~ msgstr "DICOM化ファイル" #~ msgid "Double click to edit" #~ msgstr "ダブルクリックで編集" #~ msgid "Uploading to the PACS ..." #~ msgstr "PACSへアップロード中..." #~ msgid "" #~ "No results obtained. Maybe you have a wrong PACS server configuration" #~ msgstr "結果が得られません。たぶん、PACSサーバの設定が悪いのではないかと" #~ msgid "" #~ "No results obtained in PACS retrieve.\n" #~ "Maybe study doesn't exist or you have a wrong PACS server configuration." #~ msgstr "" #~ "結果が得られません.\n" #~ "たぶん、検査がないかPACSサーバの設定が悪いのではないかと." #~ msgid "PACS Consulting ..." #~ msgstr "PACS診断中..." #~ msgid "Association Release" #~ msgstr "アソシエーションをリリース" #~ msgid "Association Aborted" #~ msgstr "アソシエーションを中断" #~ msgid "\"petition-id\" attribute expected at \"gnkworkflow\" scope" #~ msgstr "\"petition-id\" attribute expected at \"gnkworkflow\" scope" #~ msgid "" #~ "Studies are already in the download queue.\n" #~ "Do you want to repeat download?" #~ msgstr "" #~ "シリーズはすでにダウンロードキューに入っています\n" #~ "再度、ダウンロードしますか?" #~ msgid "" #~ "Series were already in the download queue.\n" #~ "Do you want to force download?" #~ msgstr "" #~ "シリーズはすでにダウンロードキューに入っています\n" #~ "強制的にダウンロードしますか?" #~ msgid "Downloads" #~ msgstr "ダウンロード" #~ msgid "Study description" #~ msgstr "検査部位" #~ msgid "Clean" #~ msgstr "クリーン" #~ msgid "Clean finished downloads" #~ msgstr "画像ダウンロード完了" #~ msgid "Starting..." #~ msgstr "開始中..." #~ msgid "" #~ "Diagnostic files can't be opened, you have to open the diagnosed series" #~ msgstr "診断ファイルは開けません. 診断されたシリーズを開く必要があります" #~ msgid "Error: " #~ msgstr "エラー: " #~ msgid "Error: No images were downloaded" #~ msgstr "エラー: 画像はダウンロードされていません" #~ msgid "Finished" #~ msgstr "終了" #~ msgid "Play" #~ msgstr "再生" #~ msgid "Retry" #~ msgstr "再試行" #~ msgid "Successful connection test." #~ msgstr "テスト接続が成功" #~ msgid "The service did not respond properly:" #~ msgstr "このサービスはプロパティに反応しない:" #~ msgid "Error starting network support" #~ msgstr "ネットワークサポート開始エラー" #~ msgid "The selected directory does must be empty" #~ msgstr "選択されたディレクトリは開けません" #~ msgid "What do you want to do?" #~ msgstr "何をしたいですか?" #~ msgid "Choose the import profile" #~ msgstr "読み込みプロファイルの選択" #~ msgid "Import profile" #~ msgstr "読み込みプロファイル" #~ msgid "Brain oasc asdf" #~ msgstr "Brain oasc asdf" #~ msgid "An error ocurred loading Ginkgo News check your internet connection" #~ msgstr "" #~ "Ginkgo ニュースをロードするため、インターネット接続のチェックでエラーが発" #~ "生しました" #~ msgid "Welcome" #~ msgstr "ようこそ" #~ msgid "Twitter" #~ msgstr "Twitter" #~ msgid "%m-%d-%y %H:%M:%S,%q" #~ msgstr "%m-%d-%y %H:%M:%S,%q" #~ msgid "Reprocess Series" #~ msgstr "シリーズの再処理" #~ msgid "" #~ "If you reprocess this series it will be uploaded to PACS server and \n" #~ "integration message will be resent to integration engine.\n" #~ "Do you want to continue?" #~ msgstr "" #~ "このシリーズの再処理には、PACSサーバへアップロードして \n" #~ "実装メッセージが実装エンジンへ再送信されます.\n" #~ "続けてもいいですか?" #~ msgid "" #~ "Unable to reprocess this series. This series hasn't been dicomized with " #~ "Ginkgo CADx." #~ msgstr "" #~ "このシリーズの再処理ができません. このシリーズは Ginkgo CADx でDICOM化され" #~ "ていません." #~ msgid "" #~ "\n" #~ "Ginkgo CADx license agreement \n" #~ "-----------------------------------\n" #~ "\n" #~ "This version is a trial version for , and therefore its use is " #~ "restricted for this purpose.\n" #~ "\n" #~ "\n" #~ "\n" #~ "S.L MetaEmotion Healthcare\n" #~ "http://healthcare.metaemotion.com/en/welcome\n" #~ "contacto@metaemotion.com" #~ msgstr "" #~ "\n" #~ "Ginkgo CADx license agreement \n" #~ "-----------------------------------\n" #~ "\n" #~ "This version is a trial version for , and therefore its use is " #~ "restricted for this purpose.\n" #~ "\n" #~ "\n" #~ "\n" #~ "S.L MetaEmotion Healthcare\n" #~ "http://healthcare.metaemotion.com/en/welcome\n" #~ "contacto@metaemotion.com" #~ msgid "" #~ "\n" #~ "There are %d files that overwrite existing files" #~ msgstr "" #~ "\n" #~ " %d ファイルが既存のファイルを上書き" #~ msgid "" #~ "\n" #~ "There aren't any stored study that matches with the search filter.\n" #~ msgstr "" #~ "\n" #~ "検索フィルタにマッチしている格納済み検査はありません.\n" #~ msgid "" #~ "\n" #~ "There is no size in the medical history to show every patients\n" #~ msgstr "" #~ "\n" #~ "全患者を表示する医療履歴に存在しない\n" #~ msgid "" #~ "\n" #~ "To begin working must change filter criteria, acquire an existing study " #~ "or import images in DICOM format.\n" #~ msgstr "" #~ "\n" #~ "動作を始めるにはフィルター基準を変化させて, 既存の検査あるいはDICOMフォー" #~ "マットで画像読み込みして取得してください.\n" #~ msgid "" #~ "\n" #~ "Try using filters or collapsing nodes and refresh search\n" #~ msgstr "" #~ "\n" #~ "フィルタを使うか、ノードを削除して新たに検索してみて下さい\n" #~ msgid " for all their support in Ginkgo CADx creation!" #~ msgstr " for all their support in Ginkgo CADx creation!" #~ msgid "&DICOM &Acquisition" #~ msgstr "&DICOM &Acquisition" #~ msgid "&Delete Patient from History" #~ msgstr "&履歴から患者を削除" #~ msgid "&Import ..." #~ msgstr "&読み込み..." #~ msgid "&Import images..." #~ msgstr "&読み込み画像..." #~ msgid "&Open File" #~ msgstr "&ファイルを開く" #~ msgid "&Open Folder" #~ msgstr "&フォルダを開く" #~ msgid "&Save" #~ msgstr "&保存" #~ msgid "1.0" #~ msgstr "1.0" #~ msgid "10:20" #~ msgstr "10:20" #~ msgid "12412012 Q" #~ msgstr "12412012 Q" #~ msgid "1x1" #~ msgstr "1x1" #~ msgid "1x2" #~ msgstr "1x2" #~ msgid "2X2" #~ msgstr "2X2" #~ msgid "2x1" #~ msgstr "2x1" #~ msgid "31/02/2010" #~ msgstr "31/02/2010" #~ msgid "31/08/1983" #~ msgstr "31/08/1983" #~ msgid "3D tools" #~ msgstr "3Dツール" #~ msgid "3x3" #~ msgstr "3x3" #~ msgid "4x4" #~ msgstr "4x4" #~ msgid "" #~ msgstr "" #~ msgid "Aborting incoming association" #~ msgstr "アソシエーション読み込みを中断" #~ msgid "About &Ginkgo CADx ..." #~ msgstr "&Ginkgo CADxについて..." #~ msgid "About Ginkgo CADx ..." #~ msgstr "Ginkgo CADxについて..." #~ msgid "Acquire from a local folder" #~ msgstr "ローカルフォルダから取得" #~ msgid "Acquire from a removable unit" #~ msgstr "リームーバブル装置から取得" #~ msgid "Acquiring a new DICOM study" #~ msgstr "新しいDICOM検査を取得" #~ msgid "Activate" #~ msgstr "有効化" #~ msgid "All modalities" #~ msgstr "全てのモダリティをダウンロード" #~ msgid "Andre Alvim Tolentino: Printing issues" #~ msgstr "Andre Alvim Tolentino: Printing issues" #~ msgid "Assistant to send files to PACS" #~ msgstr "ファイルをPACSへ送信する補助" #~ msgid "Birth date: " #~ msgstr "誕生日: " #~ msgid "Brazillian Portuguese: Marcel Ribeiro Dantas" #~ msgstr "Brazillian Portuguese: Marcel Ribeiro Dantas" #~ msgid "Browse slices\tCtrl+S" #~ msgstr "スライス表示\tCtrl+S" #~ msgid "CT" #~ msgstr "CT" #~ msgid "Chroma Segmenting Global ..." #~ msgstr "全体の彩度を分割中..." #~ msgid "Close All" #~ msgstr "全てを閉じる" #~ msgid "Close Panel" #~ msgstr "パネルを閉じる" #~ msgid "Close all tabs" #~ msgstr "全てのタブを閉じる" #~ msgid "Closing windows..." #~ msgstr "ウインドウを閉じる" #~ msgid "Column organization (2 columns)" #~ msgstr "カラム構成 (2カラム)" #~ msgid "Creating new images ..." #~ msgstr "新規画像を作成中..." #~ msgid "DICOM &acquisition from PACS" #~ msgstr "DICOM &PACS から習得" #~ msgid "Date: " #~ msgstr "日付: " #~ msgid "" #~ "Debian-Med team specially Andreas Tille and Karlsten Hilbert: packaging, " #~ "testing and bug reporting" #~ msgstr "" #~ "Debian-Med team specially Andreas Tille and Karlsten Hilbert: packaging, " #~ "testing and bug reporting" #~ msgid "Decrease" #~ msgstr "減少" #~ msgid "Decrease value" #~ msgstr "値減少" #~ msgid "Deleting a Column" #~ msgstr "カラム削除" #~ msgid "Deleting a Row" #~ msgstr "行削除" #~ msgid "Deleting series..." #~ msgstr "シリーズを削除中" #~ msgid "Description: " #~ msgstr "概要: " #~ msgid "Disengage" #~ msgstr "解除" #~ msgid "Display Options" #~ msgstr "ディスプレイオプション" #~ msgid "Duplicate Tool" #~ msgstr "重複ツール" #~ msgid "Elevation" #~ msgstr "仰角" #~ msgid "Enable XML-RPC server" #~ msgstr "XML-RPCサーバを有効にする" #~ msgid "" #~ "Enable/Disable XML RPC Server for listening remote operations from EHR " #~ "System" #~ msgstr "有効/無効 EHRシステムからの遠隔操作監視のためのXML RPCサーバ" #~ msgid "Error deleting file from database:\n" #~ msgstr "データベースからのファイル削除エラー:\n" #~ msgid "Error deleting file from de database: \n" #~ msgstr "データベースからのファイル削除エラー: \n" #~ msgid "Error deleting the Study of database:\n" #~ msgstr "データベース内の検査削除エラー:\n" #~ msgid "Error deleting the patient in the database:\n" #~ msgstr "データベース内の患者削除エラー:\n" #~ msgid "Esto es un texto algo largo para probar " #~ msgstr "Esto es un texto algo largo para probar " #~ msgid "Export current series..." #~ msgstr "現在のシリーズを書き出し中..." #~ msgid "Export diagnostic" #~ msgstr "診断書き出し" #~ msgid "Export global..." #~ msgstr "総合書き出し中..." #~ msgid "Export the active study to other formats" #~ msgstr "アクティブな検査を他のフォーマットへ書き出し" #~ msgid "" #~ "Extension is incompatible with current core. Please, check for upgrades." #~ msgstr "拡張機能は現在のコアと互換性がありません. アップグレードして下さい." #~ msgid "Extensions Support" #~ msgstr "拡張機能のサポート" #~ msgid "Extracting cut ..." #~ msgstr "カットを抽出中..." #~ msgid "Factor" #~ msgstr "ファクター" #~ msgid "Factor (%.2f)" #~ msgstr "ファクター (%.2f)" #~ msgid "Factor (0.50)" #~ msgstr "ファクター (0.50)" #~ msgid "Failed to remove patient, you have to close opened studies" #~ msgstr "患者削除に失敗しました. 開いている検査を閉じて下さい." #~ msgid "Filters" #~ msgstr "フィルター" #~ msgid "Finished .." #~ msgstr "完了.." #~ msgid "German: Sebastian Hilbert" #~ msgstr "German: Sebastian Hilbert" #~ msgid "Get extensions ..." #~ msgstr "拡張機能をゲット ..." #~ msgid "Ginkgo CADx license agreement version " #~ msgstr "Ginkgo CADx license agreement version " #~ msgid "Ginkgo CADx settings" #~ msgstr "Ginkgo CADx設定" #~ msgid "Ginkgo CADx start page ..." #~ msgstr "Ginkgo CADx 開始ページ ..." #~ msgid "Greetings" #~ msgstr "ご挨拶" #~ msgid "Grid Organization" #~ msgstr "グリッド構成" #~ msgid "Id: " #~ msgstr "Id: " #~ msgid "Image" #~ msgstr "画像" #~ msgid "Import Images" #~ msgstr "読み込み画像" #~ msgid "Import global..." #~ msgstr "総合読み込み中..." #~ msgid "Import images" #~ msgstr "画像を読み込み" #~ msgid "Increase" #~ msgstr "増加" #~ msgid "Increase value" #~ msgstr "値増加" #~ msgid "Japanese: Noriya Yokohama" #~ msgstr "Japanese: Noriya Yokohama" #~ msgid "Javier Tovar Velasco" #~ msgstr "Javier Tovar Velasco" #~ msgid "Last week" #~ msgstr "先週" #~ msgid "Loading modules ..." #~ msgstr "モジュールを読み込み中..." #~ msgid "Magnifying glass" #~ msgstr "拡大鏡" #~ msgid "Maximize" #~ msgstr "最大化" #~ msgid "Merge diagnostic" #~ msgstr "診断結合" #~ msgid "Merging file %d of %d" #~ msgstr "%d の %d ファイルを結合中" #~ msgid "Merging files..." #~ msgstr "ファイルを結合中..." #~ msgid "Metaemotion S.L." #~ msgstr "Metaemotion S.L." #~ msgid "Modality: " #~ msgstr "モダリティ: " #~ msgid "Name: " #~ msgstr "氏名: " #~ msgid "No description" #~ msgstr "概要なし" #~ msgid "Not loaded" #~ msgstr "読み込み無し" #~ msgid "Null Tool" #~ msgstr "ヌルツール" #~ msgid "Obtain extensions..." #~ msgstr "拡張を適応 ..." #~ msgid "Open a DICOM file" #~ msgstr "DICOMファイルを開く" #~ msgid "Opening series..." #~ msgstr "シリーズを開く" #~ msgid "PACS server" #~ msgstr "PACSサーバー" #~ msgid "Plugin's path" #~ msgstr "プラグインのパス" #~ msgid "Print..." #~ msgstr "印刷..." #~ msgid "Radious" #~ msgstr "半径" #~ msgid "Redo\tCtrl+y" #~ msgstr "再実行\tCtrl+y" #~ msgid "Redo " #~ msgstr "やり直す " #~ msgid "Ross Boswell: PACS compliance testing" #~ msgstr "Ross Boswell: PACS compliance testing" #~ msgid "Segmenting Chroma Local ..." #~ msgstr "ローカルの彩度を分割中..." #~ msgid "Select Series you want to export" #~ msgstr "書き出したいシリーズを選択" #~ msgid "Select Series you want to upload" #~ msgstr "アップロードしたいシリーズを選択" #~ msgid "Select files you want to export" #~ msgstr "書き出したいファイルを選択" #~ msgid "Select files you want to upload" #~ msgstr "アップロードしたいファイルを選択" #~ msgid "Send to PACS server" #~ msgstr "PACS サーバへ送信" #~ msgid "Series UID: " #~ msgstr "Series UID: " #~ msgid "Sex: female" #~ msgstr "性別: 女性" #~ msgid "Sex: male" #~ msgstr "性別: 男性" #~ msgid "Show On Startup" #~ msgstr "開始時に表示" #~ msgid "Skipping invalid extension without required keys:" #~ msgstr "要求されたキーがない不正な拡張機能はスキップします:" #~ msgid "Spanish: JFLP (jluna80)" #~ msgstr "Spanish: JFLP (jluna80)" #~ msgid "Start page ..." #~ msgstr "開始ページ ..." #~ msgid "Study download size limit exceded" #~ msgstr "検査ダウンロードサイズ制限" #~ msgid "TCP listening port for XML-RPC server" #~ msgstr "XML-RPCサーバのTCP監視ポート" #~ msgid "" #~ "The study you want to export is modified.\n" #~ "Would you like to save it?" #~ msgstr "" #~ "書き出ししようとしているこの検査は、修正されています\n" #~ "保存しますか?" #~ msgid "" #~ "There are selected diagnostics with pending modifications\n" #~ "Do you want to save it before uploading?" #~ msgstr "" #~ "変更が保留になっている選択された診断があります\n" #~ "アップロードする前に保存しますか?" #~ msgid "This files has to be overwritten" #~ msgstr "このファイルは上書きされます" #~ msgid "Time: " #~ msgstr "時間: " #~ msgid "Translators" #~ msgstr "Translators" #~ msgid "Turkish: zeugma (sunder67)" #~ msgstr "Turkish: zeugma (sunder67)" #~ msgid "UID Importer: " #~ msgstr "UID Importer: " #~ msgid "URL for new extensions" #~ msgstr "新しい拡張機能のURL" #~ msgid "Undo\tCtrl+z" #~ msgstr "やり直し\tCtrl+z" #~ msgid "Upload to PACS" #~ msgstr "PACSへアップロード" #~ msgid "We want to thanks " #~ msgstr "We want to thanks " #~ msgid "XML-RPC Server" #~ msgstr "XML-RPC Server" #~ msgid "XmlRpc++" #~ msgstr "XmlRpc++" #~ msgid "You can't remove opened studies" #~ msgstr "開いている検査は削除できません" #~ msgid "You have to set a valid port" #~ msgstr "有効なポートをセットして下さい" #~ msgid "Zoom +" #~ msgstr "拡大率 +" #~ msgid "Zoom -" #~ msgstr "拡大率 -" #~ msgid "error, have tried to select a file that is not added to history" #~ msgstr "エラー. 履歴に追加されないファイルを選択しています" #~ msgid "this Patient" #~ msgstr "この患者" #~ msgid "to" #~ msgstr "から" #~ msgid "Ginkgo CADx Settings" #~ msgstr "Ginkgo CADx設定" #~ msgid "About Ginkgo CADx..." #~ msgstr "Ginkgo CADxについて..." #~ msgid "Filter menu" #~ msgstr "フィルターメニュー" #~ msgid "No results obtained" #~ msgstr "結果が得られません" #~ msgid "Unsupported scope" #~ msgstr "サポートされないスコープ" #~ msgid "Error sending evidences: " #~ msgstr "エビデンス送信エラー " #~ msgid "No options" #~ msgstr "オプションなし" #~ msgid "Fatal error, can not write the history database" #~ msgstr "致命的なエラー. 履歴データベースへ書き込みできません" #~ msgid "Could not get the associated module" #~ msgstr "付属モジュールを取得できません" #~ msgid "It has been read a \"medico\" tag without identifiers" #~ msgstr "It has been read a \"medico\" tag without identifiers" #~ msgid "It has been read a \"paciente\" tag without identifiers" #~ msgstr "It has been read a \"paciente\" tag without identifiers" #~ msgid "Correction" #~ msgstr "コレクション" #~ msgid "Smooth" #~ msgstr "スムーズ" #~ msgid "Edges" #~ msgstr "エッジ" #~ msgid "Levels" #~ msgstr "レベル" #~ msgid "Median 3x3" #~ msgstr "メディアン 3x3" #~ msgid "Median smooth filter" #~ msgstr "メディアンスムーズフィルター" #~ msgid "Gaussian 3x3" #~ msgstr "ガウシアン 3x3" #~ msgid "Gaussian smooth filter" #~ msgstr "ガウシアンスムーズフィルター" #~ msgid "Curvature Flow" #~ msgstr "曲率フロー" #~ msgid "Edge preserving smooth filter" #~ msgstr "エッジプレサービングスムーズフィルター" #~ msgid "Sobel edges 3x3" #~ msgstr "ソーベルエッジ 3x3" #~ msgid "Sobel filter 3x3" #~ msgstr "ソーベルフィルター 3x3" #~ msgid "Auto Levels" #~ msgstr "自動レベル" #~ msgid "Remove finished" #~ msgstr "明確に終了しました" #~ msgid "XML Files(*.xml)|*.xml" #~ msgstr "XMLファイル(*.xml)|*.xml" #~ msgid "Failed to save the file" #~ msgstr "ファイル保存に失敗" #~ msgid "The xml format is not correct" #~ msgstr "XMLフォーマットが不正です" #~ msgid "Fill the fields to continue." #~ msgstr "続けるには項目を埋めて下さい" #~ msgid "Setting tags on export will be anonymized" #~ msgstr "書き出し設定タグは匿名化されます" #~ msgid "Are you sure to delete the tag" #~ msgstr "タグを削除してもいいですか" #~ msgid "You must specify an absolute directory path" #~ msgstr "ちゃんとしたディレクトリパスを指定して下さい" #~ msgid "PACS Servers" #~ msgstr "PACSサーバ" #~ msgid "Confirm the removal of the server" #~ msgstr "サーバ削除の確認" #~ msgid "Test server" #~ msgstr "サーバテスト" #~ msgid "Environment" #~ msgstr "環境" #~ msgid "System Environment of Electronic Health Record" #~ msgstr "電子健康記録システム環境" #~ msgid "Sacyl (CyL, Spain)" #~ msgstr "Sacyl (CyL, Spain)" #~ msgid "Modify" #~ msgstr "修正" #~ msgid "Default Value" #~ msgstr "デフォルト値" #~ msgid "Anonymized tags default value" #~ msgstr "匿名化タグのデフォルト値" #~ msgid "Configure tags to anonymize" #~ msgstr "匿名化のタグ設定" #~ msgid "The group ID and the item must be encoded in hexadecimal" #~ msgstr "グループIDとアイテムは16進法エンコードにしてください" #~ msgid "Tags defined in settings" #~ msgstr "設定のタグ定義" #~ msgid "License" #~ msgstr "ライセンス" #~ msgid "License Data" #~ msgstr "ライセンスデータ" #~ msgid "Organization" #~ msgstr "組織" #~ msgid "Expiration Date" #~ msgstr "満了日" #~ msgid "List" #~ msgstr "リスト" #~ msgid "SOAP invocation error\n" #~ msgstr "SOAP呼び出しエラー\n" #~ msgid "HL7 Monitor" #~ msgstr "HL7モニター" #~ msgid "Log Monitor" #~ msgstr "ログモニター" #~ msgid "Tab Organization" #~ msgstr "タブ構成" #~ msgid "Select the DICOM files you wish to upload" #~ msgstr "アップロードしたいDICOMファイルを選択してください" #~ msgid "Select the server where the files will be sent" #~ msgstr "ファイルを送信したいサーバを選択してください" #~ msgid "Breaking the world" #~ msgstr "Breaking the world" #~ msgid "Cancels current task" #~ msgstr "現在のタスクをキャンセル" #~ msgid "Exception sending request" #~ msgstr "例外を読み込み中:" #~ msgid "Exception reading response" #~ msgstr "例外を読み込み中:" #~ msgid "Poligono" #~ msgstr "多角形" #~ msgid "User Defined" #~ msgstr "ユーザー定義" #~ msgid " WW" #~ msgstr " WW" #~ msgid " WL" #~ msgstr " WL" #~ msgid "Reset Window/Level" #~ msgstr "リセット Window/Level" #~ msgid "In connection openssl Exception:" #~ msgstr "openssl接続を除外:" #~ msgid "The invocation XML is malformed" #~ msgstr "XML呼び出しは不定形" #~ msgid "" #~ "Failed to perform the HTTP request, the server returned the error code " #~ msgstr "HTTPリクエストは失敗しました. サーバはエラーコードを返しました " #~ msgid "Not specified the server protocol" #~ msgstr "サーバプロトコルが特定されていません" #~ msgid "Unsupported Protocol" #~ msgstr "サポートされないプロトコル" #~ msgid "Malformed server response" #~ msgstr "不定型なサーバレスポンス" #~ msgid "There was an error when you invoke the Web service" #~ msgstr "Webサービスを実行したときにエラーが発生しました" #~ msgid "Code:" #~ msgstr "コード:" #~ msgid "Reason:" #~ msgstr "理由:" #~ msgid "Error when making SSL connection" #~ msgstr "SSL接続時にエラー" #~ msgid "Error when making the request, writing incomplete" #~ msgstr "リクエスト中にエラー. 不完全書き込み中" #~ msgid "Error in receiving the response" #~ msgstr "レスポンス受信エラー" #~ msgid "The certificate has not been verified" #~ msgstr "証明書は照合されません" #~ msgid "The CN field does not match the hostname" #~ msgstr "CN項目はホスト名と一致しません" #~ msgid "Export Certificate" #~ msgstr "証明書書き出し" #~ msgid "PEM file (*.pem) | *.pem" #~ msgstr "PEM file (*.pem) | *.pem" #~ msgid "" #~ "The following certificate has not been able to verify\n" #~ "Do you want to save to import into the system?" #~ msgstr "" #~ "証明書が照合できません\n" #~ "システムへ読み込み保存しますか?" #~ msgid "Birthday" #~ msgstr "誕生日" #~ msgid "Evaluation" #~ msgstr "評価マップ" #~ msgid "Save Certificate" #~ msgstr "証明書" #~ msgid "Actions" #~ msgstr "アクション" #~ msgid "Address" #~ msgstr "アドレス" #~ msgid "Angle" #~ msgstr "角度" #~ msgid "Comp. Date" #~ msgstr "Comp. Date" #~ msgid "Extension" #~ msgstr "拡張機能" #~ msgid "Open Selected completed downloads" #~ msgstr "選択済み完了ダウンロードを開く" #~ msgid "Progress" #~ msgstr "進捗" #~ msgid "Provider" #~ msgstr "プロバイダ" #~ msgid "Reload" #~ msgstr "再読込" #~ msgid "Rule" #~ msgstr "ルーラー" #~ msgid "Start/Stop selected downloads" #~ msgstr "開始/停止 選択されたダウンロード" #~ msgid "There is no PACS server configured" #~ msgstr "PACSサーバ設定がありません" #~ msgid "Version" #~ msgstr "ヴァージョン" #~ msgid " but no valid presentation contexts" #~ msgstr " 有効なプレゼンテーションコンテキストがありません" #~ msgid "%d/%m/%Y %H:%M:%S" #~ msgstr "%d/%m/%Y %H:%M:%S" #~ msgid "Association Received" #~ msgstr "アソシエーション受信" #~ msgid "Download warning" #~ msgstr "ダウンロード注意" #~ msgid "" #~ "Error in interpreting the parameters of the command line. The file or " #~ "directory doesn't exist (" #~ msgstr "" #~ "コマンドラインパラメータの解釈でエラー。ファイルあるいはディレクトリが存在" #~ "しません (" #~ msgid "Exception in component " #~ msgstr "コンポーネントで例外 " #~ msgid "Open again" #~ msgstr "再度開く" #~ msgid "Pixels bluring" #~ msgstr "ピクセルボケ" #~ msgid "Set pixels bluring" #~ msgstr "ピクセルボケをセット" #~ msgid "Study successfully sent to PACS" #~ msgstr "PACSへの検査送信が成功" #~ msgid "The following commands will abort if you close the application" #~ msgstr "アプリケーションを閉じると、実行中コマンドは中断されます" #~ msgid "" #~ "The series selected is already open\n" #~ "Do you want to open it again?" #~ msgstr "" #~ "選択されたシリーズはすでに開いています\n" #~ "開き直しますか?" #~ msgid "The service did not respond correctly to the DICOM standard:" #~ msgstr "このサービスは正しくDICOMスタンダードに反応しない:" #~ msgid "Unset pixels bluring" #~ msgstr "ピクセルボケをなし" #~ msgid "No proxy for addresses containing:" #~ msgstr "アドレスを含んだプロキシがありません:" #~ msgid "Page Setup ..." #~ msgstr "ページ設定..." #~ msgid "Username:" #~ msgstr "ユーザー名:" #~ msgid "You have to specify at least uid study or accession number" #~ msgstr "uid 検査か受付番号の少ない方を明示する必要があります" ginkgocadx-3.8.7/cadxcore/lang/ja/wxstd.mo000066400000000000000000004163031314736454600205040ustar00rootroot000000000000000'ah?i?!)0OoŃ΃  ,<M Ta u    Ԅ '.5<EN T ^l ̅Յۅ  &/ 6@FLjy  †dž͆ֆۆ  "2 9F b o y χ؇߇  0=CRZclu z  Ȉ͈4$0!Uw*/: %FJQ X fry{~ Š ͊ ؊  2DW_ p } ŋ#̋/ 3H3J5~62B XyÍ܍ $;XnȎ )4?.t̏ &6 JU6e""ڐ:8?S [fwőܑ 7QpÒ!"'-A1o(ʓܓ 1&X]qx Ĕޔ,GN0V )ʕ'G]%|#"Ɩ*(&=%d%"͗?0I1f Ә! G)q((-ߙ3 A Y-zؚ %;Yx)ۛ)-#W'{"'E L Yd vBƝ'ם!+!Mj"&Ȟ#$&8_r 3"#$A#f + נ(!%=$c&!&ѡ#"#?*c!#Ԣ ڢ /DL,g$ѣN*?(j)ƤΤ (&?GL$[!%&ȥ# 4!Npݦ"2!Np!ܧ!:(X".&'/:Cj#ҩ(9,fŪʪ ݪ  #7OW[,b10%%>E_#d/!ʬ#  ,9I P \ i u- ~ ""ή 2#QV2v"i İ-ʰ %))/Y]d l vб L9ɲ%2Xow 0ֳJ$,o$ ôʹ23$Pu.ܵ -;"i'0"9$B0g"&׷"8!ZsG!۸/A-1o.й2)Bl2/%#)#M3q"Ȼ(% $3 XTyμ($'6^v"!ս5$-Rq +Ҿ-,Ih"#"Ϳ+'; c-'"5'3[&{-S/$+T&,2)-1&_&+(' !H)j323-M{$;)2D!w**=4?t(   /4I N \ gt4z ' 2Rj #!#28;t |%*(- 2S'r 2 ?Yb" '4\| 6QwJ$72))Sk$j%+=%i/3 -(V ] j1v(#&>6W6#1 ?%Z!!!4!Np & %)0 9 D NX`gpy      /4HZk%1Qgo6u 0  9 F#Q)u | t ~   # 0 :F O [ g q ~    ' / : ES e&p !" "'?R j t *&, 581ng$ @%a%F!1':b)}&   /*6ar!u *0%V ^8j%<X]b# "7$Ty%$$A$^$$$$I$f$  0!&Ry "1I9 /#Os|   # 3AIZj {  H8#\ez!34#" D.s   $-$4:M_e |  /%?FOM  < 9 EPk% ) #4EX?,5Me'%*.F^ejpu {-1+%()Nx6  7U[ bpx|#+G[` i/s,01G]zq()0?p8Sd'u/-?U#h.=l ~!' 10M~">3Mr\VOt@Y#_B+1/a;z A+@EW%nL (3C*w #$#&!J l# &3#-Q*j$ &!?"_ ,0$$IQ$i'$'1GO+f'  / +C o         " 8 W k q z      ,    (< e           # < "O r       " 4 M "f  ,  1 $!%Fl.p /  ;L:03=d;>;5Y&<@9,7d..-]! *$!Ce)|>#/0L}-*((#Q'u'"   A!b$)#"6>"E hsz/#/1a 4!89.Y  +"#B f  (!&-="A dr &)  $* AK-Q$Ca grx"  $   )  7 X  l w   "    - 3!#O!3s!*!! ! !!!b##H#F$[$r$v$$$$#$$$ $ %"3%V% ^%l% ~% % %C%% % & & & ,&8&S& n& z& &&& & &!& &&'&' <'H'W' `' j'v'''-' '' ( ( ( ((3( R(^( o( z( ( ((!(#( ) )*):)U)d) s)) ) )) )) )* ** ,* 8*D*\*n* w***** ***!*+.+K+ i+u+~++ +++ + + + ,*, 3, =,#I,m,|,,,, ,,,-!- 4- A- M- Y-f-x------ ->-+.;@.D|.;./.6-/>d/A///0 0%0.0F0[0d0f0i0k00000000000000001%1)1#81\1#t1 11111 2 2:2I2a2 p20|2;2223L3Oh3J3-414M4h4w4 444445/5F5a5|55555 5 6!65696?6O69V6'6R6M 7%Y76767 7 7 8 8 8:8"Y8|8 8M8)89,9DI9p9 9 : ):6:=:\:r::::: :;6;Q;f;;;2;8;5 <2A<;t<?<B< 3==='[= ==W==>>*>E> a>%n> > >>>> >>??U?u?{???B?1?6@$V@6{@$@-@3A39A*mA=A<A?B>SB>B?BDCVC2C9DVRDBD-D#EA>EE!EoE)"FBLFCF*FXF$WG-|GiGH"3H2VH?H?H/ I;9I7uIMI7I*3J8^J5JEJ6K`JK5K6KL 4L>LYL kL"xL L*LL'L Mc MMWMBMN5NHNQNKOKkO]OKPQaPQP-Q.3Q$bQQ$Q]Q &R!4R<VR-RBRBS6GS-~S-SBS6T9TT9TBTE UBQU<U?U?V?QV?VHV W$W7W$VW{WBWW'W3W'#X-KX-yXaX? Y"IYlY?YY$Y YY<Z&@ZgZ oZ!yZ9Z6Z- [-:[-h[/[B[3 \*=\<h\9\6\']->]0l]-]3]0]-0^-^^<^9^*_?._2n_B_-_B`TU`G`N`QAafa?a4:bHob&b^b*>c-ic'c0ccc"d+d Ad Nd![d}d%d(ddddZdMWeJeTe]EffffHfK gYg3wg9g g!gh(hAhHh\hrhhh&h<hEiXi ki uii3jGj<]j<j*j-kI0klzk0k9l~Rl)l lmm+m2m#Hm%lmm%mmmBm nnnn /n3=n6qn6n3nKo_o~obo o)p(0p$Yp$~pp-pKp:q Xq.cq q'q6qMq1Mrwrr2 s@sBs?RsEsUsC.t-rtVtHtK@uEuHu;v8WvBvWvE+wWqwBwW x0dx6x?x3 yT@y0y?ygz0nzJz]zNH{N{9{3 |RT|@|$|Z }Fh}+}H}E$~?j~G~;~-.A\K<H'p.G0CxN, 68?o9?K);u4KE2=xEWET?Bڅ'?EBHȆBLT<KއK*9vWN?WEQ݉{/KW>OOTދ?3Ws=ˌ= BGWNW1@Iʎ_Zt0ϏR@S?KԐ@ JaBc?S TTSjG6E=9 Ӕ 4 !U w   O!>(`2>5(^/|B̗<DLVaJQX'w!љ?.3.8,g.Ú '%8BN?6ћ - DNGmMDGH5>Ɲ5;2Y Xc`1,%aRUL *W'?3E02EcK D?^i˥#5*Y?9Ħ*<)afaȧ$*O_N'Ψ  0; OZ ny  ߩ9&-48= F Q[`gnw|    Ȫժު  04H'Y&!#ʫ/%'D$l(٬b JWUí<٭-DcHvT3HXqM \ f r }  ð ϰ ۰     $ - 9 E O \ hs    Ʊ ϱ ۱     #1KBg ʲٲ6& E R_g!n$!׳ #' 7CADʴ93XQ!̵ ѶKܷB(EkE0o(? عB*(HS#"Ǻ &3 Q-^4 /)'Y9N t!8# /$2T8ž;ʾ229lſ&?']&& &*Q&n&&&:a&~  C*=n *0(3Y.*7`E  & B O\9l"!"=`t  uFQ+'* H U3_<Q)9  $2<9|v* :EL` !D$+DJ ep w!*0._ffm  '.aV'9BW<<B?^^ W`.g%*$-FJ399393m3!   9"9\W0?J_88 2? Ucw3<-<j<<<!)^!LF&Fm0$! ,E9?DO!C6e*66959o33?*Q!|'36*1\3:n**6'0Xn0E*T}S{kMe:9*dx|- 7+JvC-]W h r|Z$-!LO|:X/a.TK>a<G*%5P&%9= ]K^1-:>h*-;/<.l2>  # 0$=Bb'B6G%W2}4%2 5>#t# G,1Hz-&))CB 0$ )'7c_$0-. \ f q }5 %D-> ly   !!A-T!!! )*Hs-$81AJ@>@ M@T0Q  #.ZH`6-BVT_WT Ra0>/)N0<94JZZa6@64*k<R &KG@d=9 Iw < 6 B5 Hx B ; ;@ F| * 0 : NZ F H 9 cU  C  ) 06:qw|B-29&]`TJ?^^5U>PK 1>C\b3g*K9+6eK! 9![`f+k]#?PF'?A%ig0+1A6*x   B -(Vb\2 "(2/9b8! 0:J)\3'?d8Bc^D.dZI7+/l%q`t/sWv@=$=/vK $*q0e-j5 O<w!t2|~5t1M}&J\(KA(Jkr(n&?W<QFxVd1hc}`>q BLw iJ*TgO<ZlEGb7~5Rfx'?A~C ZQ`BPDxM r_cqZOnfj2G@Q f$[^:,@F=H*p5SNu!"UDN Q1p+4{DP X^UbRp wC)e)|{t0B%ia1 g{Rx?^f9zS {B\mbv8b^NBF~$~6%9_T{P.>|:V +w4* YRP'L&JI,G\WXkBd=l p{z\<>Kw;CHt Q_oy r?K&bv9kS-nzq iLj;+hX:4aKC; `veMI|z],vos%f!9dV'C-jOmYX.LbL}aM7 k ;.kC!@6/,eX&DYfo^(6*iug]a )IS0T'3=Q8y3Yl2ToqweJ*<|H)mIP[Aado!MASP! iJEc? j813")@V8  h 04(]-x+[2ntUFule$>#.Z6#@h?g}).9dNTm3(H'r0hMr58z4lO+uG_2`>}7xGo`ynAmG}<HK"E][V E[ /,]U:EFc>6-RyXysg^hupD_,u0I%L7c F-yn :N;" 8W]"\EW5 ak|"z m#UYsi2A S  U~'$_&# 3#/j rsgN9c4%3HW# s;RYp6=\OV[TZ7D:1  Please send this report to the program maintainer, thank you! Thank you and we're sorry for the inconvenience! (error %ld: %s) (in module "%s") - Preview bold italic light#10 Envelope, 4 1/8 x 9 1/2 in#11 Envelope, 4 1/2 x 10 3/8 in#12 Envelope, 4 3/4 x 11 in#14 Envelope, 5 x 11 1/2 in#9 Envelope, 3 7/8 x 8 7/8 in%i of %i%ld byte%ld bytes%s (or %s)%s Error%s Information%s Warning%s did not fit the tar header for entry '%s'%s files (%s)|%s&About&Actual Size&After a paragraph:&Alignment&Apply&Apply Style&Arrange Icons&Ascending&Back&Based on:&Before a paragraph:&Bg colour:&Bold&Bottom&Bullet style:&CD-Rom&Cancel&Cascade&Character code:&Clear&Close&Color&Colour:&Convert&Copy&Copy URL&Customize...&Debug report preview:&Delete&Delete Style...&Descending&Details&Down&Edit&Edit Style...&Execute&File&Find&Finish&First&Floppy&Font&Font family:&Font for Level...&Font:&Forward&From:&Harddisk&Help&Home&Indentation (tenths of a mm)&Indeterminate&Index&Info&Italic&Jump to&Justified&Last&Left&Left:&List level:&Log&Move&Network&New&Next&Next >&Next Tip&Next style:&No&Notes:&Number:&OK&Open...&Outline level:&Paste&Point size:&Position (tenths of a mm):&Preferences&Previous&Print...&Properties&Quit&Redo&Redo &Rename Style...&Replace&Restart numbering&Restore&Right&Right:&Save&Show tips at startup&Size&Size:&Skip&Spacing (tenths of a mm)&Spell Check&Stop&Strikethrough&Style:&Styles:&Subset:&Symbol:&Top&Underline&Underlining:&Undo&Undo &Unindent&Up&View...&Weight:&Window&Yes'%s' has extra '..', ignored.'%s' is invalid'%s' is not a correct numeric value for option '%s'.'%s' is not a valid message catalog.'%s' is probably a binary buffer.'%s' should be numeric.'%s' should only contain ASCII characters.'%s' should only contain alphabetic characters.'%s' should only contain alphabetic or numeric characters.'%s' should only contain digits.(*)(Help)(None)(Normal text)(bookmarks)(none)**)+, 64-bit edition-1.11.21.31.41.51.61.71.81.910 x 11 in10 x 14 in11 x 17 in12 x 11 in15 x 11 in26 3/4 Envelope, 3 5/8 x 6 1/2 in9 x 11 in: file does not exist!: unknown charset: unknown encoding< &BackBold italic face.
    bold italic underlined
    Bold face. Italic face. >A debug report has been generated in the directory A debug report has been generated. It can be found inA non empty collection must consist of 'element' nodesA standard bullet name.A0 sheet, 841 x 1189 mmA1 sheet, 594 x 841 mmA2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Transverse 322 x 445 mmA3 Rotated 420 x 297 mmA3 Transverse 297 x 420 mmA3 sheet, 297 x 420 mmA4 Extra 9.27 x 12.69 inA4 Plus 210 x 330 mmA4 Rotated 297 x 210 mmA4 Transverse 210 x 297 mmA4 sheet, 210 x 297 mmA4 small sheet, 210 x 297 mmA5 Extra 174 x 235 mmA5 Rotated 210 x 148 mmA5 Transverse 148 x 210 mmA5 sheet, 148 x 210 mmA6 105 x 148 mmA6 Rotated 148 x 105 mmABCDEFGabcdefg12345ADDASCIIAbout %sAddAdd current page to bookmarksAdd to custom coloursAddToPropertyCollection called on a generic accessorAddToPropertyCollection called w/o valid adderAdding book %sAdding flavor TEXT failedAdding flavor utxt failedAfter a paragraph:Align LeftAlign RightAllAll files (%s)|%sAll files (*)|*All files (*.*)|*.*All stylesAlphabetic ModeAlready Registered Object passed to SetObjectClassInfoAlready dialling ISP.Alt+And includes the following files: Animation file is not of type %ld.Append log to file '%s' (choosing [No] will overwrite it)?ArabicArabic (ISO-8859-6)ArtistsAttributesAvailable fonts.B4 (ISO) 250 x 353 mmB4 (JIS) Rotated 364 x 257 mmB4 Envelope, 250 x 353 mmB4 sheet, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Rotated 257 x 182 mmB5 (JIS) Transverse 182 x 257 mmB5 Envelope, 176 x 250 mmB5 sheet, 182 x 257 millimeterB6 (JIS) 128 x 182 mmB6 (JIS) Rotated 182 x 128 mmB6 Envelope, 176 x 125 mmBACKBMP: Couldn't allocate memory.BMP: Couldn't save invalid image.BMP: Couldn't write RGB color map.BMP: Couldn't write data.BMP: Couldn't write the file (Bitmap) header.BMP: Couldn't write the file (BitmapInfo) header.BMP: wxImage doesn't have own wxPalette.Background colourBaltic (ISO-8859-13)Baltic (old) (ISO-8859-4)Before a paragraph:BitmapBitmap renderer cannot render value; value type: BoldBottom margin (mm):BrowseBullet &Alignment:Bullet styleBulletsC sheet, 17 x 22 inC&learC&olour:C3 Envelope, 324 x 458 mmC4 Envelope, 229 x 324 mmC5 Envelope, 162 x 229 mmC6 Envelope, 114 x 162 mmC65 Envelope, 114 x 229 mmCANCELCAPITALCHM handler currently supports only local files!CLEARCOMMANDCa&pitalsCan't &Undo Can't close registry key '%s'Can't copy values of unsupported type %d.Can't create registry key '%s'Can't create threadCan't create window of class %sCan't delete key '%s'Can't delete the INI file '%s'Can't delete value '%s' from key '%s'Can't enumerate subkeys of key '%s'Can't enumerate values of key '%s'Can't export value of unsupported type %d.Can't find current position in file '%s'Can't get info about registry key '%s'Can't initialize zlib deflate stream.Can't initialize zlib inflate stream.Can't open registry key '%s'Can't read from inflate stream: %sCan't read inflate stream: unexpected EOF in underlying stream.Can't read value of '%s'Can't read value of key '%s'Can't save image to file '%s': unknown extension.Can't save log contents to file.Can't set thread priorityCan't set value of '%s'Can't write to deflate stream: %sCancelCannot create mutex.Cannot create new column's ID. Probably max. number of columns reached.Cannot enumerate files '%s'Cannot enumerate files in directory '%s'Cannot find active dialup connection: %sCannot find the location of address book fileCannot get priority range for scheduling policy %d.Cannot get the hostnameCannot get the official hostnameCannot hang up - no active dialup connection.Cannot initialize OLECannot initialize socketsCannot load icon from '%s'.Cannot load resources from '%s'.Cannot load resources from file '%s'.Cannot open HTML document: %sCannot open HTML help book: %sCannot open contents file: %sCannot open file for PostScript printing!Cannot open index file: %sCannot print empty page.Cannot read typename from '%s'!Cannot resume thread %luCannot retrieve thread scheduling policy.Cannot set locale to language "%s".Cannot start thread: error writing TLS.Cannot suspend thread %luCannot wait for thread terminationCase sensitiveCategorized ModeCeltic (ISO-8859-14)Cen&tredCenteredCentral European (ISO-8859-2)CentreCentre text.Ch&oose...Change List StyleChange StyleChanges won't be saved to avoid overwriting the existing file "%s"Character stylesCheck to add a period after the bullet.Check to add a right parenthesis.Check to enclose the bullet in parentheses.Check to make the font bold.Check to make the font italic.Check to make the font underlined.Check to restart numbering.Check to show a line through the text.Check to show the text in capitals.Check to show the text in subscript.Check to show the text in superscript.Choose ISP to dialChoose a directory:Choose a fileChoose colourChoose fontCircular dependency involving module "%s" detected.Cl&oseClear the log contentsClick to apply the selected style.Click to browse for a symbol.Click to cancel changes to the font.Click to cancel the font selection.Click to change the font colour.Click to change the text background colour.Click to change the text colour.Click to choose the font for this level.Click to close this window.Click to confirm changes to the font.Click to confirm the font selection.Click to create a new character style.Click to create a new list style.Click to create a new paragraph style.Click to create a new tab position.Click to delete all tab positions.Click to delete the selected style.Click to delete the selected tab position.Click to edit the selected style.Click to rename the selected style.CloseClose AllClose current documentClose this windowColourColour selection dialog failed with error %0lx.Colour:Column could not be added.Column description could not be initialized.Column index not found.Column width could not be determinedColumn width could not be set.Command line argument %d couldn't be converted to Unicode and will be ignored.Common dialog failed with error code %0lx.Compressed HTML Help file (*.chm)|*.chm|ComputerConfig entry name cannot start with '%c'.ConfirmConfirm registry updateConnecting...ContentsConversion to charset '%s' doesn't work.Copied to clipboard:"%s"Copies:CopyCopy selectionCould not create temporary file '%s'Could not determine column index.Could not determine column's positionCould not determine number of columns.Could not determine number of itemsCould not extract %s into %s: %sCould not find tab for idCould not get header description.Could not get items.Could not get property flags.Could not get selected items.Could not locate file '%s'.Could not remove column.Could not retrieve number of itemsCould not set alignment.Could not set column width.Could not set header description.Could not set icon.Could not set maximum width.Could not set minimum width.Could not set property flags.Could not start document preview.Could not start printing.Could not transfer data to windowCouldn't acquire a mutex lockCouldn't add an image to the image list.Couldn't create a timerCouldn't create the overlay windowCouldn't find symbol '%s' in a dynamic libraryCouldn't get hatch style from wxBrush.Couldn't get the current thread pointerCouldn't init the context on the overlay windowCouldn't load a PNG image - file is corrupted or not enough memory.Couldn't load sound data from '%s'.Couldn't open audio: %sCouldn't register clipboard format '%s'.Couldn't release a mutexCouldn't retrieve information about list control item %d.Couldn't save PNG image.Couldn't terminate threadCreate directoryCreate new directoryCtrl+Cu&tCurrent directory:Custom sizeCustomize ColumnsCutCut selectionCyrillic (ISO-8859-5)D sheet, 22 x 34 inDDE poke request failedDECIMALDELDELETEDIB Header: Encoding doesn't match bitdepth.DIB Header: Image height > 32767 pixels for file.DIB Header: Image width > 32767 pixels for file.DIB Header: Unknown bitdepth in file.DIB Header: Unknown encoding in file.DIVIDEDL Envelope, 110 x 220 mmDOWNData object has invalid data formatDate renderer cannot render value; value type: Debug report "%s"Debug report couldn't be created.Debug report generation has failed.DecorativeDefault encodingDefault fontDefault printerDeleteDelete A&llDelete StyleDelete TextDelete itemDelete selectionDelete style %s?Deleted stale lock file '%s'.Dependency "%s" of module "%s" doesn't exist.DesktopDeveloped by DevelopersDial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it.Did you know...DirectoriesDirectory '%s' couldn't be createdDirectory '%s' couldn't be deletedDirectory does not existDirectory doesn't exist.Discard changes and reload the last saved version?Display all index items that contain given substring. Search is case insensitive.Display options dialogDisplays help as you browse the books on the left.Do you want to overwrite the command used to %s files with extension "%s" ? Current value is %s, New value is %s %1Do you want to save changes to %s?Documentation by Documentation writersDon't SaveDoneDone.Double Japanese Postcard Rotated 148 x 200 mmDoubly used id : %dDownE sheet, 34 x 44 inENDENTEREOF while reading from inotify descriptorESCESCAPEEXECUTEEdit itemElapsed time:Enter a character style nameEnter a list style nameEnter a new style nameEnter a paragraph style nameEnter command to open file "%s":Entries foundEnvelope Invite 220 x 220 mmEnvironment variables expansion failed: missing '%c' at position %u in '%s'.ErrorError closing epoll descriptorError closing kqueue instanceError creating directoryError in reading image DIB.Error in resource: %sError reading config options.Error saving user configuration data.Error while printing: Error: Esperanto (ISO-8859-3)Estimated time:Event queue overflowedExecution of command '%s' failedExecution of command '%s' failed with error: %ulExecutive, 7 1/4 x 10 1/2 inExporting registry key: file "%s" already exists and won't be overwritten.Extended Unix Codepage for Japanese (EUC-JP)Extraction of '%s' into '%s' failed.FFace NameFailed to access lock file.Failed to add descriptor %d to epoll descriptor %dFailed to allocate %luKb of memory for bitmap data.Failed to allocate colour for OpenGLFailed to change video modeFailed to clean up debug report directory "%s"Failed to close file handleFailed to close lock file '%s'Failed to close the clipboard.Failed to close the display "%s"Failed to connect: missing username/password.Failed to connect: no ISP to dial.Failed to convert file "%s" to Unicode.Failed to copy dialog contents to the clipboard.Failed to copy registry value '%s'Failed to copy the contents of registry key '%s' to '%s'.Failed to copy the file '%s' to '%s'Failed to copy the registry subkey '%s' to '%s'.Failed to create DDE stringFailed to create MDI parent frame.Failed to create a temporary file nameFailed to create an anonymous pipeFailed to create connection to server '%s' on topic '%s'Failed to create cursor.Failed to create directory "%s"Failed to create directory '%s' (Do you have the required permissions?)Failed to create epoll descriptorFailed to create registry entry for '%s' files.Failed to create the standard find/replace dialog (error code %d)Failed to create wake up pipe used by event loop.Failed to display HTML document in %s encodingFailed to empty the clipboard.Failed to enumerate video modesFailed to establish an advise loop with DDE serverFailed to establish dialup connection: %sFailed to execute '%s' Failed to execute curl, please install it in PATH.Failed to find match for regular expression: %sFailed to get ISP names: %sFailed to get data from the clipboardFailed to get the local system timeFailed to get the working directoryFailed to initialize GUI: no built-in themes found.Failed to initialize MS HTML Help.Failed to initialize OpenGLFailed to initiate dialup connection: %sFailed to insert text in the control.Failed to inspect the lock file '%s'Failed to install signal handlerFailed to join a thread, potential memory leak detected - please restart the programFailed to kill process %dFailed to load image %%d from file '%s'.Failed to load image %d from stream.Failed to load metafile from file "%s".Failed to load mpr.dll.Failed to load resource "%s".Failed to load shared library '%s'Failed to lock resource "%s".Failed to lock the lock file '%s'Failed to modify descriptor %d in epoll descriptor %dFailed to modify file times for '%s'Failed to monitor I/O channelsFailed to open '%s' for readingFailed to open '%s' for writingFailed to open CHM archive '%s'.Failed to open URL "%s" in default browser.Failed to open directory "%s" for monitoring.Failed to open display "%s".Failed to open temporary file.Failed to open the clipboard.Failed to parse Plural-Forms: '%s'Failed to put data on the clipboardFailed to read PID from lock file.Failed to read config options.Failed to read document from the file "%s".Failed to read event from DirectFB pipeFailed to read from wake-up pipeFailed to redirect child process input/outputFailed to redirect the child process IOFailed to register DDE server '%s'Failed to remember the encoding for the charset '%s'.Failed to remove debug report file "%s"Failed to remove lock file '%s'Failed to remove stale lock file '%s'.Failed to rename registry value '%s' to '%s'.Failed to rename the file '%s' to '%s' because the destination file already exists.Failed to rename the registry key '%s' to '%s'.Failed to retrieve data from the clipboard.Failed to retrieve file times for '%s'Failed to retrieve text of RAS error messageFailed to retrieve the supported clipboard formatsFailed to save document to the file "%s".Failed to save the bitmap image to file "%s".Failed to send DDE advise notificationFailed to set FTP transfer mode to %s.Failed to set clipboard data.Failed to set permissions on lock file '%s'Failed to set temporary file permissionsFailed to set text in the text control.Failed to set thread priority %d.Failed to store image '%s' to memory VFS!Failed to switch DirectFB pipe to non-blocking modeFailed to switch wake up pipe to non-blocking modeFailed to terminate a thread.Failed to terminate the advise loop with DDE serverFailed to terminate the dialup connection: %sFailed to touch the file '%s'Failed to unlock lock file '%s'Failed to unregister DDE server '%s'Failed to unregister descriptor %d from epoll descriptor %dFailed to update user configuration file.Failed to upload the debug report (error code %d).Failed to write to lock file '%s'FalseFamilyFileFile "%s" could not be opened for reading.File "%s" could not be opened for writing.File '%s' already exists, do you really want to overwrite it?File '%s' already exists. Do you want to replace it?File couldn't be loaded.File dialog failed with error code %0lx.File errorFile name exists already.FilesFiles (%s)FilterFindFixed font:Fixed size face.
    bold italic Folio, 8 1/2 x 13 inFontFont &weight:Font size:Font st&yle:Font:Fonts index file %s disappeared while loading fonts.Fork failedForward hrefs are not supportedFound %i matchesFrom:GIF: Invalid gif index.GIF: data stream seems to be truncated.GIF: error in GIF image format.GIF: not enough memory.GIF: unknown error!!!GTK+ themeGeneric PostScriptGerman Legal Fanfold, 8 1/2 x 13 inGerman Std Fanfold, 8 1/2 x 12 inGetProperty called w/o valid getterGetPropertyCollection called on a generic accessorGetPropertyCollection called w/o valid collection getterGo backGo forwardGo one level up in document hierarchyGo to home directoryGo to parent directoryGraphics art by Greek (ISO-8859-7)Gzip not supported by this version of zlibHELPHOMEHTML Help Project (*.hhp)|*.hhp|HTML anchor %s does not exist.HTML files (*.html;*.htm)|*.html;*.htm|Hebrew (ISO-8859-8)HelpHelp Browser OptionsHelp IndexHelp PrintingHelp TopicsHelp books (*.htb)|*.htb|Help books (*.zip)|*.zip|Help directory "%s" not found.Help file "%s" not found.Help: %sHide this notification message.HomeHome directoryICO: Error in reading mask DIB.ICO: Error writing the image file!ICO: Image too tall for an icon.ICO: Image too wide for an icon.ICO: Invalid icon index.IFF: data stream seems to be truncated.IFF: error in IFF image format.IFF: not enough memory.IFF: unknown error!!!INSINSERTISO-2022-JPIcon & text renderer cannot render value; value type: If possible, try changing the layout parameters to make the printout more narrow.If you have any additional information pertaining to this bug report, please enter it here and it will be joined to it:If you wish to suppress this debug report completely, please choose the "Cancel" button, but be warned that it may hinder improving the program, so if at all possible please do continue with the report generation. Ignoring value "%s" of the key "%s".Illegal Object Class (Non-wxEvtHandler) as Event SourceIllegal Parameter Count for ConstructObject MethodIllegal Parameter Count for Create MethodIllegal directory name.Illegal file specification.Image and mask have different sizes.Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dllImpossible to get child process inputImpossible to get permissions for file '%s'Impossible to overwrite the file '%s'Impossible to set permissions for the file '%s'Incorrect GIF frame size (%u, %d) for the frame #%uIndentIndents && SpacingIndexIndian (ISO-8859-12)Initialization failed in post init, aborting.InsertInsert ImageInsert TextInvalid GTK+ command line option, use "%s --help"Invalid TIFF image index.Invalid data view itemInvalid display mode specification '%s'.Invalid geometry specification '%s'Invalid lock file '%s'.Invalid message catalog.Invalid or Null Object ID passed to GetObjectClassInfoInvalid or Null Object ID passed to HasObjectClassInfoInvalid regular expression '%s': %sItalicItaly Envelope, 110 x 230 mmJPEG: Couldn't load - file is probably corrupted.JPEG: Couldn't save image.Japanese Double Postcard 200 x 148 mmJapanese Envelope Chou #3Japanese Envelope Chou #3 RotatedJapanese Envelope Chou #4Japanese Envelope Chou #4 RotatedJapanese Envelope Kaku #2Japanese Envelope Kaku #2 RotatedJapanese Envelope Kaku #3Japanese Envelope Kaku #3 RotatedJapanese Envelope You #4Japanese Envelope You #4 RotatedJapanese Postcard 100 x 148 mmJapanese Postcard Rotated 148 x 100 mmJustifiedJustify text left and right.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UPL&ine spacing:LEFTLandscapeLedger, 17 x 11 inLeftLeft (&first line):Left margin (mm):Left-align text.Legal Extra 9 1/2 x 15 inLegal, 8 1/2 x 14 inLetter Extra 9 1/2 x 12 inLetter Extra Transverse 9.275 x 12 inLetter Plus 8 1/2 x 12.69 inLetter Rotated 11 x 8 1/2 inLetter Small, 8 1/2 x 11 inLetter Transverse 8 1/2 x 11 inLetter, 8 1/2 x 11 inLicenseLightLine %lu of map file "%s" has invalid syntax, skipped.Line spacing:Link contained '//', converted to absolute link.List StyleList stylesLists font sizes in points.Lists the available fonts.Load %s fileLoading : Lock file '%s' has incorrect owner.Lock file '%s' has incorrect permissions.Log saved to the file '%s'.Lower case lettersLower case roman numeralsMDI childMENUMS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it.Ma&ximizeMacArabicMacArmenianMacBengaliMacBurmeseMacCelticMacCentralEurRomanMacChineseSimpMacChineseTradMacCroatianMacCyrillicMacDevanagariMacDingbatsMacEthiopicMacExtArabicMacGaelicMacGeorgianMacGreekMacGujaratiMacGurmukhiMacHebrewMacIcelandicMacJapaneseMacKannadaMacKeyboardGlyphsMacKhmerMacKoreanMacLaotianMacMalayalamMacMongolianMacOriyaMacRomanMacRomanianMacSinhaleseMacSymbolMacTamilMacTeluguMacThaiMacTibetanMacTurkishMacVietnameseMake a selection:Match caseMemory VFS already contains file '%s'!MenuMetal themeMi&nimizeModernModifiedModule "%s" initialization failedMonarch Envelope, 3 7/8 x 7 1/2 inMove downMove upNUM_LOCKNameNew &Character Style...New &List Style...New &Paragraph Style...New StyleNew directoryNew itemNewNameNextNext pageNoNo animation handler for type %ld defined.No bitmap handler for type %d defined.No column existing.No column for the specified column existing.No column for the specified column position existing.No default application configured for HTML files.No entries found.No font for displaying text in encoding '%s' found, but an alternative encoding '%s' is available. Do you want to use this encoding (otherwise you will have to choose another one)?No font for displaying text in encoding '%s' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly)?No handler found for animation type.No handler found for image type.No image handler for type %d defined.No image handler for type %s defined.No matching page found yetNo renderer or invalid renderer type specified for custom data column.No renderer specified for column.No soundNo unused colour in image being masked.No unused colour in image.No valid mappings found in the file "%s".Nordic (ISO-8859-10)NormalNormal face
    and underlined. Normal font:Not %sNot availableNot underlinedNote, 8 1/2 x 11 inNoticeNumber of columns could not be determined.Numbered outlineOKObjects must have an id attributeOpen FileOpen HTML documentOpen file "%s"OpenGL function "%s" failed: %s (error %d)Operation not permitted.Option '%s' requires a value.Option '%s': '%s' cannot be converted to a date.OptionsOrientationOut of window IDs. Recommend shutting down application.PAGEDOWNPAGEUPPAUSEPCX: couldn't allocate memoryPCX: image format unsupportedPCX: invalid imagePCX: this is not a PCX file.PCX: unknown error !!!PCX: version number too lowPGDNPGUPPNM: Couldn't allocate memory.PNM: File format is not recognized.PNM: File seems truncated.PRC 16K 146 x 215 mmPRC 16K RotatedPRC 32K 97 x 151 mmPRC 32K RotatedPRC 32K(Big) 97 x 151 mmPRC 32K(Big) RotatedPRC Envelope #1 102 x 165 mmPRC Envelope #1 Rotated 165 x 102 mmPRC Envelope #10 324 x 458 mmPRC Envelope #10 Rotated 458 x 324 mmPRC Envelope #2 102 x 176 mmPRC Envelope #2 Rotated 176 x 102 mmPRC Envelope #3 125 x 176 mmPRC Envelope #3 Rotated 176 x 125 mmPRC Envelope #4 110 x 208 mmPRC Envelope #4 Rotated 208 x 110 mmPRC Envelope #5 110 x 220 mmPRC Envelope #5 Rotated 220 x 110 mmPRC Envelope #6 120 x 230 mmPRC Envelope #6 Rotated 230 x 120 mmPRC Envelope #7 160 x 230 mmPRC Envelope #7 Rotated 230 x 160 mmPRC Envelope #8 120 x 309 mmPRC Envelope #8 Rotated 309 x 120 mmPRC Envelope #9 229 x 324 mmPRC Envelope #9 Rotated 324 x 229 mmPRINTPage %dPage %d of %dPage SetupPage setupPagesPaper sizeParagraph stylesPassing a already registered object to SetObjectPassing an unknown object to GetObjectPastePaste selectionPeri&odPermissionsPipe creation failedPlease choose a valid font.Please choose an existing file.Please choose the page to display:Please choose which ISP do you want to connect toPlease install a newer version of comctl32.dll (at least version 4.70 is required but you have %d.%02d) or this program won't operate correctly.Please select the columns to show and define their order:Point SizePointer to data view control not set correctly.Pointer to model not set correctly.PortraitPostScript filePreview:Previous pagePrintPrint PreviewPrint Preview FailurePrint RangePrint SetupPrint in colourPrint preview creation failed.Print spoolingPrint this pagePrint to FilePrinterPrinter command:Printer optionsPrinter options:Printer...Printer:PrintingPrinting Printing ErrorPrinting page %d...Printing...PrintoutProcessing debug report has failed, leaving the files in "%s" directory.Progress renderer cannot render value type; value type: PropertyQuarto, 215 x 275 mmQuestionQuit this programRETURNRIGHTRead error on file '%s'ReadyRedoRedo last actionRefreshRegistry key '%s' already exists.Registry key '%s' does not exist, cannot rename it.Registry key '%s' is needed for normal system operation, deleting it will leave your system in unusable state: operation aborted.Registry value '%s' already exists.RegularRelevant entries:Remaining time:RemoveRemove current page from bookmarksRenderer "%s" has incompatible version %d.%d and couldn't be loaded.Rendering failed.Renumber ListRep&laceReplaceReplace &allReplace selectionReplace with:Required information entry is empty.Resource '%s' is not a valid message catalog.Revert to SavedRightRight margin (mm):Right-align text.RomanS&tandard bullet name:SCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACTSaveSave %s fileSave &As...Save AsSave current documentSave current document with a different filenameSave log contents to fileScriptSearchSearch contents of help book(s) for all occurrences of the text you typed aboveSearch directionSearch for:Search in all booksSearching...SectionsSeek error on file '%s'Seek error on file '%s' (large files not supported by stdio)Select &AllSelect AllSelect a document templateSelect a document viewSelect regular or bold.Select regular or italic style.Select underlining or no underlining.SelectionSelects the list level to edit.Separator expected after the option '%s'.SetProperty called w/o valid setterSetting directory access times is not supported under this OS versionSetup...Several active dialup connections found, choosing one randomly.Shift+Show &hidden directoriesShow &hidden filesShow about dialogShow allShow all items in indexShow hidden directoriesShow/hide navigation panelShows a Unicode subset.Shows a preview of the bullet settings.Shows a preview of the font settings.Shows a preview of the font.Shows a preview of the paragraph settings.Shows the font preview.Simple monochrome themeSingleSizeSize:SkipSlantSorry, could not open this file.Sorry, not enough memory to create a preview.Sorry, that name is taken. Please choose another.Sorry, the format for this file is unknown.Sound data are in unsupported format.Sound file '%s' is in unsupported format.SpacingStandardStatement, 5 1/2 x 8 1/2 inStatus:String To Colour : Incorrect colour specification : %sStyleStyle OrganiserStyle:Subscrip&tSupe&rscriptSuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSymbolSymbol &font:SymbolsTABTIFF: Couldn't allocate memory.TIFF: Error loading image.TIFF: Error reading image.TIFF: Error saving image.TIFF: Error writing image.TIFF: Image size is abnormally big.Tabloid Extra 11.69 x 18 inTabloid, 11 x 17 inTabsTeletypeTemplatesText renderer cannot render value; value type: Thai (ISO-8859-11)The FTP server doesn't support passive mode.The FTP server doesn't support the PORT command.The available bullet styles.The available styles.The bullet character.The character code.The charset '%s' is unknown. You may select another charset to replace it with or choose [Cancel] if it cannot be replacedThe clipboard format '%d' doesn't exist.The default style for the next paragraph.The directory '%s' does not exist Create it now?The document "%s" doesn't fit on the page horizontally and will be truncated if printed. Would you like to proceed with printing it nevertheless?The first line indent.The following standard GTK+ options are also supported: The font colour.The font family.The font from which to take the symbol.The font point size.The font size in points.The font style.The font weight.The format of file '%s' couldn't be determined.The left indent.The line spacing.The list item number.The outline level.The print dialog returned an error.The range to show.The report contains the files listed below. If any of these files contain private information, please uncheck them and they will be removed from the report. The required parameter '%s' was not specified.The right indent.The spacing after the paragraph.The spacing before the paragraph.The style name.The style on which this style is based.The style preview.The tab position.The tab positions.The text couldn't be saved.The value for the option '%s' must be specified.The version of remote access service (RAS) installed on this machine is too old, please upgrade (the following required function is missing: %s).The wxGtkPrinterDC cannot be used.There is no column or renderer for the specified column index.There was a problem during page setup: you may need to set a default printer.This document doesn't fit on the page horizontally and will be truncated when it is printed.This system doesn't support date controls, please upgrade your version of comctl32.dllThread module initialization failed: cannot store value in thread local storageThread module initialization failed: failed to create thread keyThread module initialization failed: impossible to allocate index in thread local storageThread priority setting is ignored.Tile &HorizontallyTile &VerticallyTimeout while waiting for FTP server to connect, try passive mode.Timer creation failed.Tip of the DayTips not available, sorry!To:Toggle renderer cannot render value; value type: Too many EndStyle calls!Too many colours in PNG, the image may be slightly blurred.Top margin (mm):Translations by TranslatorsTrueTrying to remove file '%s' from memory VFS, but it is not loaded!Turkish (ISO-8859-9)TypeType a font name.Type a size in points.Type must have enum - long conversionType operation "%s" failed: Property labeled "%s" is of type "%s", NOT "%s".UPUS Std Fanfold, 14 7/8 x 11 inUS-ASCIIUnable to add inotify watchUnable to add kqueue watchUnable to associate handle with I/O completion portUnable to close I/O completion port handleUnable to close inotify instanceUnable to close path '%s'Unable to close the handle for '%s'Unable to create I/O completion portUnable to create IOCP worker threadUnable to create inotify instanceUnable to create kqueue instanceUnable to dequeue completion packetUnable to get events from kqueueUnable to handle native drag&drop dataUnable to initialize GTK+, is DISPLAY set properly?Unable to initialize Hildon programUnable to open path '%s'Unable to open requested HTML document: %sUnable to play sound asynchronously.Unable to post completion statusUnable to read from inotify descriptorUnable to remove inotify watchUnable to remove kqueue watchUnable to set up watch for '%s'Unable to start IOCP worker threadUndeleteUnderlinedUndoUndo last actionUnexpected characters following option '%s'.Unexpected parameter '%s'Unexpectedly new I/O completion port was createdUngraceful worker thread terminationUnicodeUnicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)UnknownUnknown DDE error %08xUnknown Object passed to GetObjectClassInfoUnknown Property %sUnknown TIFF resolution unit %d ignoredUnknown data formatUnknown dynamic library errorUnknown encoding (%d)Unknown long option '%s'Unknown option '%s'Unmatched '{' in an entry for mime type %s.Unnamed commandUnspecifiedUnsupported clipboard format.Unsupported theme '%s'.UpUpper case lettersUpper case roman numeralsUsage: %sUse the current alignment setting.Valid pointer to native data view control does not existValidation conflictValueVersion View files as a detailed viewView files as a list viewViewsWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHTWaiting for IO on epoll descriptor %d failedWarning: WeightWestern European (ISO-8859-1)Western European with Euro (ISO-8859-15)Whether the font is underlined.Whole wordWhole words onlyWin32 themeWin32s on Windows 3.1Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arabic (CP 1256)Windows Baltic (CP 1257)Windows CE (%d.%d)Windows Central European (CP 1250)Windows Cyrillic (CP 1251)Windows Greek (CP 1253)Windows Hebrew (CP 1255)Windows Korean (CP 949)Windows MEWindows Thai (CP 874)Windows Turkish (CP 1254)Windows Western European (CP 1252)Windows/DOS OEM (CP 437)Write error on file '%s'XML parsing error: '%s' at line %dXPM: Malformed pixel data!XPM: incorrect colour description in line %dXPM: incorrect header format!XPM: malformed colour definition '%s' at line %d!XPM: no colors left to use for mask!XPM: truncated image data at line %d!YesYou cannot Clear an overlay that is not initedYou cannot Init an overlay twiceYou cannot add a new directory to this section.Zoom &InZoom &OutZoom to &Fita DDEML application has created a prolonged race condition.a DDEML function was called without first calling the DdeInitialize function, or an invalid instance identifier was passed to a DDEML function.a client's attempt to establish a conversation has failed.a memory allocation failed.a parameter failed to be validated by the DDEML.a request for a synchronous advise transaction has timed out.a request for a synchronous data transaction has timed out.a request for a synchronous execute transaction has timed out.a request for a synchronous poke transaction has timed out.a request to end an advise transaction has timed out.a server-side transaction was attempted on a conversation that was terminated by the client, or the server terminated before completing a transaction.a transaction failed.altan application initialized as APPCLASS_MONITOR has attempted to perform a DDE transaction, or an application initialized as APPCMD_CLIENTONLY has attempted to perform server transactions.an internal call to the PostMessage function has failed. an internal error has occurred in the DDEML.an invalid transaction identifier was passed to a DDEML function. Once the application has returned from an XTYP_XACT_COMPLETE callback, the transaction identifier for that callback is no longer valid.assuming this is a multi-part zip concatenatedattempt to change immutable key '%s' ignored.bad arguments to library functionbad signaturebad zipfile offset to entrybinaryboldbuffer is too small for Windows directory.can't close file '%s'can't close file descriptor %dcan't commit changes to file '%s'can't create file '%s'can't delete user configuration file '%s'can't determine if the end of file is reached on descriptor %dcan't execute '%s'can't find central directory in zipcan't find length of file on file descriptor %dcan't find user's HOME, using current directory.can't flush file descriptor %dcan't get seek position on file descriptor %dcan't load any font, abortingcan't open file '%s'can't open global configuration file '%s'.can't open user configuration file '%s'.can't open user configuration file.can't re-initialize zlib deflate streamcan't re-initialize zlib inflate streamcan't read from file descriptor %dcan't remove file '%s'can't remove temporary file '%s'can't seek on file descriptor %dcan't write buffer '%s' to disk.can't write to file descriptor %dcan't write user configuration file.checksum errorchecksum failure reading tar header blockcompression errorconversion to 8-bit encoding failedctrldatedecompression errordefaultdoubledump of the process state (binary)eighteentheightheleventhentry '%s' appears more than once in group '%s'error in data formaterror opening '%s'error opening fileerror reading zip central directoryerror reading zip local headererror writing zip entry '%s': bad crc or lengthfailed to flush the file '%s'fifteenthfifthfile '%s', line %d: '%s' ignored after group header.file '%s', line %d: '=' expected.file '%s', line %d: key '%s' was first found at line %d.file '%s', line %d: value for immutable key '%s' ignored.file '%s': unexpected character %c at line %d.filesfirstfont sizefourteenthfourthgenerate verbose log messagesimageincomplete header block in tarincorrect event handler string, missing dotincorrect size given for tar entryinvalid data in extended tar headerinvalid message box return valueinvalid zip fileitaliclightlocale '%s' cannot be set.midnightnineteenthninthno DDE error.no errorno fonts found in %s, using builtin fontnonamenoonnormalnot implementednumobjects cannot have XML Text Nodesout of memoryprocess context descriptionread errorreading zip stream (entry %s): bad crcreading zip stream (entry %s): bad lengthreentrancy problem.secondseek errorseventeenthseventhshiftshow this help messagesixteenthsixthspecify display mode to use (e.g. 640x480-16)specify the theme to usestandard/circlestandard/diamondstandard/squarestandard/trianglestored file length not in Zip headerstrtar entry not opentenththe response to the transaction caused the DDE_FBUSY bit to be set.thirdthirteenthtodaytomorrowtrailing backslash ignored in '%s'translator-creditstwelfthtwentiethunderlinedunexpected " at position %d in '%s'.unexpected end of fileunknownunknown class %sunknown errorunknown error (error code %08x).unknown seek originunknown-%dunnamedunnamed%dunsupported Zip compression methodusing catalog '%s' from '%s'.write errorwxGetTimeOfDay failed.wxPrintout::GetPageInfo gives a null maxPage.wxWidget control pointer is not a data view pointerwxWidget's control not initialized.wxWidgets could not open display for '%s': exiting.wxWidgets could not open display. Exiting.xxxxyesterdayzlib error %d~Project-Id-Version: wxWidgets 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2013-10-01 19:04+0200 PO-Revision-Date: 2011-03-02 18:30+0900 Last-Translator: Suzumizaki-Kimitaka(鈴見咲君高) Language-Team: Japanese Language: ja MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; お手数ですがこのレポートをプログラムの保守担当者に送信ください。 ご不便をおかけして申し訳ございません。 (エラー %ld: %s)(モジュール "%s") - プレビュー 太字 イタリック 軽量#10 封筒, 4 1/8 x 9 1/2 インチ#11 封筒, 4 1/2 x 10 3/8 インチ#12 封筒, 4 3/4 x 11 インチ#14 封筒, 5 x 11 1/2 インチ#9 封筒, 3 7/8 x 8 7/8 インチ%i / %i%ld バイト%s (または %s)%s エラー%s 情報%s 警告%s は tar のヘッダとして認識できませんでした '%s'%s 形式 (%s)|%s詳細 (&A)原寸 (&A)段落の後 (&A):整列 (&A)適用 (&A)スタイルの適用 (&A)アイコンの整列 (&A)昇順 (&A)戻る (&B)基底 (&B):段落の前 (&B):背景色 (&C):太字 (&B)下端 (&B)行頭文字のスタイル (&B):CD-ROM (&C)キャンセル (&C)重ねて表示 (&C)文字コード (&C):消去 (&C)閉じる (&C)色 (&C)色 (&C):変換 (&C)コピー (&C)URLをコピー (&C)列の編集 (&C) ...デバッグレポートプレビュー (&D):削除 (&D)スタイルの削除 (&D)...降順 (&D)詳細 (&D)下(&D)編集(&E)スタイルの編集 (&E) ...実行 (&E)ファイル(&F)検索(&F)完了 (&F)最初 (&F)フロッピーディスク (&F)フォント (&F)フォントファミリー (&F):レベル毎のフォント (&F)...フォント (&F):進行 (&F)取得元 (&F):ハードディスク (&H)ヘルプ (&H)ホーム (&H)字下げ(1/10ミリ単位) (&I)指定しない (&I)索引 (&I)情報 (&I)イタリック (&I)移動 (&J)両端揃え (&J)最後 (&L)左 (&L)左 (&L):リストレベル (&L):ログ (&L)移動 (&M)ネットワーク (&N)新規作成 (&N)次 (&N)次へ (&N) >次のチップ (&N)次のスタイル (&N):いいえ (&N)注意書き (&N):番号 (&N):OK (&O)開く (&O) ...アウトラインレベル (&O):貼り付け (&P)大きさ-ポイント (&P):位置(1/10ミリ単位) (&P)設定 (&P)前 (&P)印刷 (&P) ...プロパティー (&P)終了 (&Q)再実行 (&R)再実行 (&R)スタイル名を変更 (&R)...置換 (&R)番号付けのリセット (&R)復元 (&R)右 (&R)右 (&R):保存 (&S)チップを起動時に表示 (&S)大きさ (&S)大きさ (&S):スキップ (&S)間隔 - 1/10mm単位 (&S)スペルチェック (&S)停止 (&S)打ち消し線 (&S)スタイル (&S):スタイル一覧 (&S):部分表示 (&S):記号 (&S):上端 (&T)下線 (&U)下線 (&U):元に戻す (&U)元に戻す (&U)字下げ解除 (&U)上 (&U)見る (&V) ...ウエイト (&W):ウィンドウ (&W)はい (&Y)'%s' に余分な '..' がありました。無視します。'%s' は不正です'%s' はオプション '%s' に使えない数値です。'%s' は正しいメッセージカタログではありません。'%s' はおそらくバイナリーバッファーです。'%s' は数字でなくてはなりません。'%s' は ASCII 文字以外を受け付けません。'%s' はアルファベット以外を受け付けません。'%s' はアルファベットと数字のみ受け付けます。'%s' は数字以外を受け付けません。(*)(ヘルプ)(なし)(通常のテキスト)(ブックマーク)(なし)**)+, 64ビットエディション-1.11.21.31.41.51.61.71.81.910×11インチ10×14インチ11×17インチ12×11インチ15×11インチ26 3/4 封筒, 3 5/8 × 6 1/2インチ9×11インチ: ファイルがありません。: 未知の文字集合: 未知のエンコーディング< 戻る (&B)<いずれか><ディレクトリー><ドライブ><リンク>太字でイタリック体。
    太字でイタリック体 下線
    太字。 イタリック体。 >デバッグレポートが次のディレクトリーに作成されます デバッグレポートが作成されました。次の場所にあります:空でないコレクションは 'element' ノードを必須とします標準の行頭文字名を指定します。A0 シート, 841 x 1189 mmA1 シート, 594 x 841 mmA2 420×594 mmA3 Extra 322 x 445 mmA3 Extra Transverse 322 x 445 mmA3横置き 420×297mmA3 Transverse 297 x 420 mmA3 シート, 297 x 420 mmA4 Extra 9.27 x 12.69インチA4 Plus 210 x 330 mmA4横置き 297×210mmA4 Transverse 210 x 297 mmA4 シート, 210 x 297 mmA4 small sheet, 210 x 297 mmA5 Extra 174 x 235 mmA5横置き 210×148mmA5 Transverse 148 x 210 mmA5 シート, 148 x 210 mmA6 105×148mmA6横置き 148×105mmABCDEFGabcdefg12345ADDASCII%s について追加現在のページをブックマークに追加しますカスタムカラーへ追加します非特殊化アクセサーの AddToPropertyCollection が呼び出されました不適切な adder から AddToPropertyCollection が呼び出されましたブック %s を追加していますフレーバー TEXT を追加できませんでしたフレーバー utxt を追加できませんでした段落の後:左寄せ右寄せすべてすべてのファイル (%s)|%sすべてのファイル (*)|*すべてのファイル (*.*)|*.*すべてのスタイル名前順登録済みのオブジェクトが SetObjectClassInfo に渡されましたすでに ISP にダイヤル中です。Alt+次のファイルが含まれています: アニメーションファイルが %ld 型ではありません。ログをファイル '%s' に追加しますか? [いいえ]を選択すると再作成で上書きします。算用数字アラビア語 (ISO-8859-6)デザイン属性有効なフォントです。B4 (ISO) 250 x 353 mmB4 (JIS) 横置き 364×257mmB4 封筒, 250 x 353 mmB4 シート, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) 横置き 257×182mmB5 (JIS) Transverse 182 x 257 mmB5 封筒, 176 x 250 mmB5 シート, 182 x 257 mmB6 (JIS) 128×182 mmB6 (JIS) 横置き 182×128mmB6 封筒, 176 x 125 mmBSBMP: メモリ割り当てに失敗しました。BMP: 不正な画像で保存できませんでした。BMP: RGB色索引を書き出せませんでした。BMP: データ書き出しに失敗しました。BMP: Bitmapヘッダの書き出しに失敗しました。BMP: BitmapInfoヘッダの書き出しに失敗しました。BMP: wxImage は自身の wxPalette を保有していません。背景色バルト言語 (ISO-8859-13)バルト言語(旧規格) (ISO-8859-4)段落の前:ビットマップビットマップレンダラーが値をレンダリングできません; 値の型:太字余白-地 (mm):ファイルの選択行頭文字の位置(&A):行頭文字のスタイル行頭文字Cサイズシート, 17 x 22インチ消去 (&L)色 (&C):C3 封筒, 324×458mmC4 封筒, 229×324mmC5 封筒, 162×229mm消去 (&L)C65 封筒, 114×229mmCANCELCapsLockCHM ハンドラーは現在ローカルファイルのみに対応しています。CLEARCOMMAND大文字化 (&P)戻せません (&U)レジストリーキー '%s' を閉じることができません未対応型 %d の値はコピーできませんレジストリーキー '%s' を作成できませんスレッドを作成できません%s クラスのウィンドウを作成できませんキー '%s' を削除できませんINIファイル '%s' を削除できません値 '%s' をキー '%s' から削除できませんキー '%s' のサブキーを列挙できませんキー '%s' の値を列挙できません未対応型 %d の値はエクスポートできません。ファイル '%s' の現在位置を見つけられませんレジストリーキー '%s' の情報を取得できませんzlib の deflate ストリームを初期化できません。zlib の inflate ストリームを初期化できません。レジストリーキー '%s' を開くことができませんinflateストリームから読み取ることができません: %sinflate ストリームを読み取ることができません: 想定外の条件でEOFが元のストリームから検出されました。'%s' の値を読み取ることができませんキー '%s' の値を読み取ることができません画像を保存できません。'%s' は未対応の拡張子を持っています。ログの内容をファイルに保存できませんでした。スレッド優先度を設定できません'%s' の値を設定できませんdeflateストリームに書き出すことができません: %sキャンセルMutex を作成できません。新しい列への識別子を作成できません。作成数が上限に達した可能性があります。ファイルを列挙できません '%s'ディレクトリー '%s' のファイルは列挙できません使用中のダイヤルアップ接続が見つかりません: %s住所録の位置を特定できませんスケジューリングポリシー %d への優先度範囲を取得できません。ホスト名を取得できません公的なホスト名を取得できません接続を切るよう指示されましたが、有効なダイヤルアップ接続がありません。OLEを初期化できませんsocket を初期化できません'%s' からアイコンを読み取れません。ファイル '%s' からリソースを読み取れません。ファイル '%s' からリソースを読み取れません。HTML文書を開くことができません: %sHTMLヘルプブックを開くことができません: %s目次ファイルを開くことができません: %sPostScript 印刷のためのファイルを開くことができません。索引ファイルを開くことができません: %s空のページは印刷できません。'%s' の型名を読み出すことができません。スレッド %lu のリジュームができませんスレッドスケジュールポリシーを取得できません。ロケールを言語 "%s" に設定できません。スレッドを開始できませんでした: TLS への書き込みに失敗しています。スレッド %lu のサスペンドができませんスレッドの終了を待つことはできません大文字小文字を区別種類順ケルト語 (ISO-8859-14)中央寄せ (&T)中央寄せ中央ヨーロッパ (ISO-8859-2)中央寄せテキストを中央寄せにします。選択 (&O)...リストスタイルを変更しますスタイルの変更ファイル "%s" への上書きが拒否されたため変更内容は保存されていません文字のスタイル行頭文字の後にピリオドを付ける場合にチェックしてください。右丸括弧を加える場合はチェックしてください。行頭文字を丸括弧でくくる場合にチェックしてください。フォントを太字にするときにチェックしてください。フォントをイタリックにするときにチェックしてください。フォントに下線を付けるときにチェックしてください。連番の初期化を指示する場合にチェックしてください。テキストを貫く打ち消し線を表示する場合にチェックしてください。テキストを大文字にする場合にチェックしてください。テキストを下付き文字にする場合にチェックしてください。テキストを上付き文字にする場合にチェックしてください。ダイヤル先のISPを選んでくださいディレクトリーを選んでください:フォントを選んでください色を選んでくださいフォントを選んでくださいモジュール "%s" の解決を試みているときに循環参照を検出しました。閉じる(&O)ログの内容を消去しますクリックで選択したスタイルを適用します。クリックで記号を一覧できます。クリックでフォントの変更をキャンセルします。クリックでフォントの選択をキャンセルします。クリックでフォントの色を変更します。クリックで背景色を変更します。クリックで文字色を変更します。クリックでこのレベルのフォントを選択します。クリックでこのウィンドウを閉じます。クリックでフォントの変更を確定します。クリックでフォントの選択を確定します。クリックで新しい文字スタイルを作成できます。クリックで新しいリストスタイルを作成できます。クリックで新しい段落スタイルを作成できます。クリックで新しいタブ位置を作成できます。クリックですべてのタブ位置を削除できます。クリックで選択したスタイルを削除できます。クリックで選択した他部位置を削除できます。クリックで選択したスタイルを編集できます。クリックで選択したスタイルの名前を変更できます。閉じるすべて閉じる現在の文書を閉じますこのウィンドウを閉じます色色選択ダイアログがエラー %0lx で失敗しました。色:列を追加できませんでした。列の記述を初期化できませんでした。列の索引が見つかりません。列の幅を決定できませんでした。列の幅を設定できませんでした。コマンドライン引数 %d はユニコードに変換できません。無視されます。共通ダイアログがエラー %0lx で失敗しました。圧縮HTMLヘルプ (*.chm)|*.chm|コンピューター設定項目名は '%c' で始めることができません。確定レジストリーの更新を確定接続中 ...目次文字集合 '%s' への変換が機能していません。クリップボードへコピー:"%s"部数:コピー選択範囲をコピーします一時ファイル '%s' を作成できませんでした列の索引番号を特定できませんでした。列の位置を特定できませんでした列の数を取得できませんでした。項目数を取得できませんでした。%s を %s に展開できませんでした: %s識別子に対応したタブが見つかりませんでした。ヘッダ記述を取得できませんでした。項目を取得できませんでした。プロパティフラグを取得できませんでした。選択された項目を取得できませんでした。ファイル '%s' の場所を特定できません。列を削除できませんでした。項目数を取得できませんでした。整列方法を設定できませんでした。列の幅を設定できませんでした。ヘッダ記述を設定できませんでした。アイコンを設定できませんでした。最大幅を設定できませんでした。最小幅を設定できませんでした。プロパティフラグを設定できませんでした。文書プレビューを開始できませんでした。印刷を始められませんでした。ウィンドウへデータを転送できませんでした。Mutexロックを取得できませんでした。イメージリストに画像を追加できませんでした。タイマーを作成できませんでしたオーバーレイウィンドウを作成できませんでしたシンボル '%s' が動的ライブラリーの中に見つかりませんでしたwxBrush からハッチスタイルを取得できませんでした。現在のスレッドを示すポインタを取得できませんでした。オーバーレイウィンドウの内容を初期化できませんでした。PNG画像を読み出せませんでした。ファイルが壊れているかメモリ不足です。音声データを '%s' から取得できませんでした。音声を開くことができませんでした: %sクリップボードの様式 '%s' を登録できませんでした。Mutexを解放できませんでしたリストコントロールの項目 %d に関する情報を取得できませんでした。PNG画像を保存できませんでしたスレッドを終了できませんでしたディレクトリーを作成します新しいディレクトリーを作成しますCtrl+切り取り (&T)カレントディレクトリー:任意の寸法指定列の編集切り取り選択範囲を切り取りますキリル言語 (ISO-8859-5)Dサイズシート, 22 x 34インチDDE の poke 要求が失敗しましたDECIMALDELDELETEDIB ヘッダー: エンコーディングがビット深さに対応していません。DIB ヘッダー: 画像の高さが32767ピクセルを超えています。DIB ヘッダー: 画像の幅が32767ピクセルを超えています。DIB ヘッダー: 未知のビット深さがファイルに含まれています。DIB ヘッダー: 未知のエンコーディングがファイルに含まれています。DIVIDEDL 封筒, 110×220mm↓データオブジェクトが不適切な様式を保有しています日付レンダラーが値をレンダリングできません; 値の型:デバッグレポート "%s"デバッグレポートを作成できません。デバッグレポートの作成に失敗しました。Decorative既定のエンコーディング既定のフォント既定のプリンター削除すべて削除(&L)スタイルの削除テキストの削除項目の削除選択範囲の削除スタイル %s を削除しますか?無効なロックファイル '%s' を削除しました。依存先の "%s" (モジュール "%s" 内) は存在しません。デスクトップ開発 : 開発者リモートアクセスサービス(RAS)がインストールされていないため、ダイヤルアップは機能しません。RASをインストールしてください。ご存じですか?ディレクトリーディレクトリー '%s' を作成できませんでしたディレクトリー '%s' を削除できませんでしたディレクトリーが存在しませんディレクトリーが存在しません。変更を破棄して最後に保存したものを読み直しますか?与えられた文字列を含む索引項目を表示します。大文字小文字は区別しません。オプションダイアログを表示します横に置く本のようにヘルプを表示します。%s コマンドを拡張子 "%s" に適用するときの値を上書きしますか? 現在の値 : %s, 新しい値 : %s %1変更結果を %s へ保存しますか?説明書 : 説明書の著者保存しない完了完了しました。往復はがき横置き 148×200mm識別子が重複しています: %d下へEサイズシート, 34 x 44インチENDENTERinotify 記述子 %d の読み取り中にEOFを検出しましたESCESCAPEEXECUTE項目の編集経過時間:文字スタイル名を入力してください。リストスタイル名を入力してください。新しいスタイル名を入力してください。段落スタイル名を指定してください。"%s" ファイルを開くためのコマンドを入力してください:候補が見つかりました封筒 Invite 220 x 220 mm環境変数拡張に失敗しました: '%c' が %u 文字目 ('%s' 内) に欠けています。エラーepoll記述子を閉じる際のエラーkqueue 実体を閉じる際のエラーディレクトリー作成エラー画像のDIB読み取りエラー。リソースにエラー: %s設定オプションの読み取りエラーユーザー設定データの保存中にエラーが発生しました。印刷中にエラー発生: エラー:エスペラントほか (Latin-3, ISO-8859-3)予定時間:イベントキューが溢れましたコマンド '%s' を実行できませんでした。コマンド '%s' を実行できませんでした。エラーコード: %ulエグゼキュティブ, 7 1/4 x 10 1/2インチレジストリーのエクスポート: ファイル "%s" はすでに存在します。上書きも行いません。日本語EUC (EUC-JP)'%s' を '%s' に展開できませんでした。Fフォント名ロックファイルへアクセスできませんでした。記述子 %d を epoll 記述子 %d に追加できませんでしたビットマップデータ用のメモリ割り当て(%luKb)に失敗しました。OpenGL に色を割り当てることができませんでした。画面モード変更に失敗しました。デバッグレポートディレクトリーを全削除できませんでした "%s"ファイルハンドルを閉じることができませんでした。ロックファイル '%s' を閉じることができませんでした。クリップボードを閉じることができませんでした。ディスプレイ "%s" を閉じることができませんでした。接続に失敗: username/password が欠けています。接続失敗: ダイヤル先のISPがありません。ファイル "%s" を Unicode に変換できませんでした。ダイアログの内容をクリップボードにコピーできませんでした。レジストリーの値 '%s' をコピーできませんでした。レジストリーキー '%s' の内容を '%s' へコピーできませんでした。ファイル '%s' を '%s' へコピーできませんでした。レジストリーのサブキー '%s' を '%s' へコピーできませんでした。DDE文字列を作成できませんでした。MDI親フレームを作成できませんでした。一時ファイルの名前を作成できませんでした。匿名パイプを作成できませんでした。サーバー '%s' へのトピック '%s' 接続を確立できませんでした。カーソルを作成できませんでした。ディレクトリー "%s" を作成できませんでした。'%s' を作成できませんでした。 処理に必要なパーミッションをお持ちですか?epoll 記述子を作成できませんでした'%s' 用のレジストリエントリを作成できませんでした。標準の検索置換ダイアログを作成できませんでした (エラーコード %d)イベントループが使う起動パイプの作成に失敗しました。%s エンコーディングで HTML 文書を表示できませんでした。クリップボードを空にできませんでした。画面モードを列挙できませんでした。DDE サーバーとのアドバイスループを確立できませんでした。ダイヤルアップ接続を確立できませんでした: %s'%s' の実行に失敗しました curl を実行できません。PATHの参照先にインストールしてください。正規表現に合致する部分が見つかりませんでした: %sISP名を取得できませんでした: %sクリップボードからデータを取得できませんでした。ローカルのシステム時刻を取得できませんでした。作業ディレクトリーを取得できませんでした。GUIの初期化に失敗: ビルトインテーマがありません。Microsoft HTML Help を初期化できませんでした。OpenGLを初期化できませんでした。ダイヤルアップ接続の初期化に失敗しました: %s そのコントロールにテキストを挿入できませんでした。ロックファイル '%s' を検査できませんでしたシグナルハンドラーのインストールに失敗しました。スレッド接合に失敗しました。メモリリーク発生の可能性があります。プログラムを再起動してください。プロセス %d の kill に失敗しました画像 %%d をファイル '%s' から読み取れませんでした。画像 %d をストリームから読み取れませんでした。ファイル "%s" からメタファイルを読み取れませんでした。mpr.dll を読み取れませんでした。リソース "%s" を読み取れませんでした。共有ライブラリ '%s' を読み取れませんでした。リソース "%s" をロックできませんでした。ロックファイル '%s' をロックできませんでした記述子 %d の変更が epoll 記述子 %d 内でできませんでした'%s' のファイル時刻を変更できませんでしたI/O チャンネルの監視に失敗しました。読み取りのためのファイル '%s' を開くことができませんファイル '%s' を書き込み用に開くことができませんCHM 書庫 '%s' を開くことができませんでした。デフォルトブラウザでURL "%s" を開けませんでした。監視対象のディレクトリー "%s" を開くことができませんでした。ディスプレイ "%s" を開くことができませんでした。一時ファイルを開くことができませんでした。クリップボードを開くことができませんでした。複数形を解析できません: '%s'データをクリップボードに置けませんでした。ロックファイルからPIDを読み取れませんでした。設定オプションを読み取ることができませんでした。ファイル "%s" から文書を読み取れませんでした。DirectFB パイプからのイベント読み取りに失敗しました。起動パイプからの読み取りに失敗しました。子プロセスの入出力をリダイレクトできませんでした。子プロセスの入出力をリダイレクトできませんでした。DDEサーバー '%s' を登録できませんでした。文字集合 '%s' に対するエンコーディングの記録に失敗しました。デバッグレポートファイル "%s" を削除できませんでした。ロックファイル '%s' を削除できませんでした。失効ロックファイル '%s' を削除できませんでした。レジストリーの値を '%s' から '%s' に改名できませんでした。ファイル '%s' を '%s' に改名できませんでした。改名先のファイルがすでに存在しています。レジストリーキー '%s' を '%s' に改名できませんでした。クリップボードからデータを受け取ることができませんでした。'%s' のファイル時刻を取得できませんでした。RAS エラーメッセージのテキストを取得できませんでした。対応しているクリップボードの様式を取得できませんでした。文書をファイル "%s" に保存できませんでした。ファイル "%s" にビットマップイメージを保存できませんでした。DDE アドバイス通知を送信できませんでした。FTP転送モードを %s に変更できませんでした。クリップボードデータを設定できませんでした。ロックファイル '%s' のパーミッションを設定できませんでした。一時ファイルのパーミッションを設定できませんでした。そのテキストコントロールにテキストを設定できませんでした。スレッド優先度を %d に設定できませんでした。メモリーVFS にイメージ '%s' を格納できませんでした。DirectFB パイプを non-blocking モードに切り替えることができませんでした起動パイプをnon-blockingモードに切り替えることができませんでしたスレッドを終了できませんでした。DDE サーバ他とのアドバイスループを終了できませんでした。ダイヤルアップ接続を終了できませんでした: %sファイル '%s' の属性を変更できませんでした。ロックファイル '%s' のロック解除ができませんでした。DDE サーバ '%s' の登録を削除できませんでした。記述子 %d を epoll記述子 %d から削除できませんでした。ユーザー設定ファイルを更新できませんでした。デバッグレポートのアップロードができませんでした (エラーコード %d)。ロックファイル '%s' に書き込めませんでした。偽フォントファミリーファイルファイル '%s' を読み取ろうとしましたが開くことができませんファイル '%s' に書き込もうとしましたが開くことができませんファイル %s はすでに存在します。上書きしてよろしいですか?ファイル '%s' はすでに存在します。 置き換えますか?ファイルを読み取ることができません。ファイルダイアログがエラー %0lx で失敗しました。ファイルエラーその名前のファイルはすでに存在します。ファイルファイル (%s)フィルター検索固定幅フォント:固定幅。
    太字イタリックフォリオ, 8 1/2 x 13インチフォントフォントのウエイト(&W):フォントの大きさ:フォントのスタイル(&Y):フォント:フォントの読み取り中に索引ファイル %s が失われました。フォークに失敗しました前方参照のhrefには未対応です%i 件の該当部を発見開始ページ:GIF: gifの索引が正しくないようです。GIF: データストリームに欠落があるようです。GIF: GIF画像形式にエラーがありました。GIF: メモリ不足です。GIF: 未知のエラーを検出しました。GTK+ テーマ汎用 PostSciptドイツリーガル折りたたみ連続紙, 8 1/2 x 13インチドイツ標準折りたたみ連続紙, 8 1/2 x 12インチ適切な getter なしに GetPropertyが呼び出されました。汎用アクセサーに対して GetPropertyCollection が呼び出されました。適切なコレクション getter なしに GetPropertyCollection が呼び出されました。戻る進む文書構造のひとつ上へホームディレクトリーへ移動親ディレクトリーへ移動デザイナーギリシャ語 (ISO-8859-7)このバージョンの zlib は Gzip を処理できませんHELPHOMEHTMLヘルププロジェクト (*.hhp)|*.hhp|HTMLアンカー %s は存在しません。HTML ファイル (*.html;*.htm)|*.html;*.htm|ヘブライ語 (ISO-8859-8)ヘルプヘルプブラウザのオプションヘルプの索引ヘルプの印刷ヘルプトピックヘルプブック (*.htb)|*.htb|ヘルプブック (*.zip)|*.zip|ヘルプディレクトリー "%s" が見つかりません。ヘルプファイル "%s" が見つかりません。ヘルプ: %sこの通知メッセージを隠します。ホームホームディレクトリーICO: マスクDIBの読み取り中にエラーを検出しました。ICO: 画像ファイルの書き出し中にエラーが発生しました。ICO: 縦に長すぎます。アイコンに変換できません。ICO: 幅が大きすぎます。アイコンに変換できません。ICO: アイコンの索引が不正のようです。IFF: データストリームに欠落があるようです。IFF: IFF画像形式にエラーがありました。IFF: メモリ不足です。IFF: 未対応のエラーが発生しました。INSINSERTISO-2022-JPアイコンとテキストのレンダラーが値を処理できません; 値の型: 出力結果がより狭い範囲に収まるように印刷設定値を変更してください。このバグレポートに関連する追加情報をお持ちの場合は ここに記入頂くことでバグレポートに追加されます:以後のデバッグレポート表示を完全に抑制したい場合は"キャンセル"ボタンを使ってください。 ただし、その抑制指示はプログラムの修正を遠ざけることになりますので できる限りレポート生成を続けるようにしてください。 値 "%s" を無視します (キー "%s")。wxEvtHandler ではないオブジェクトクラスがイベントソースになっていますConstructObject メソッドに不正なカウント引数が与えられました。Create メソッドに不正なカウント引数が与えられました。不正なディレクトリー名です。ファイル記述子が不正です。画像とマスクが異なる大きさになっています。リッチエディットコントロールを作成できませんでした。代わりに簡素なテキストコントロールを使います。 riched32.dllを再インストールしてください。子プロセスの入力は取得不可能です。ファイル '%s' へのパーミッションは取得不可能ですファイル '%s' の上書きは不可能ですファイル '%s' へのパーミッションは設定不可能ですGIF フレームの大きさ (%u, %d) が不適切です (フレーム #%u)字下げ字下げと間隔索引ISO-8859-12 (ケルト語→14/デーヴァナーガリー→破棄)PostInit の初期化に失敗しました。中断します。挿入画像の挿入テキストの挿入不適切な GTK+ コマンドラインオプションです。"%s --help" で確認してください。TIFF 画像索引が不正です。不適切なデータビュー項目です画面モード '%s' は正しい指定ではありません。画面設定 '%s' は正しい指定ではありません不正なロックファイルです: '%s'正しいメッセージカタログではありません。Null または不正なオブジェクト識別子が GetObjectClassInfo に渡されました。Null または不正なオブジェクト識別子が HasObjectClassInfo に渡されました。不正な正規表現です '%s': %sイタリックイタリア封筒, 110 x 230mmJPEG: 読み取れません。おそらくファイルが壊れています。JPEG: 画像を保存できません。往復はがき 200×248mm長形3号長形3号横置き長形4号長形4号横置き角形2号角形2号横置き角形3号角形3号横置き洋形4号洋形4号横置きはがき 100×148mmはがき横置き 148×100mm両端揃え左右端いっぱいにテキストを表示します。KOI8-RKOI8-UNumNum+KP_BEGINKP_DECIMALKP_DELETENum/Num↓NumEndNumEnterNum=NumHomeNumInsertNum←Num*KP_NEXTNumPageDownNumPageUpKP_PRIORNum→KP_SEPARATORKP_SPACENum-KP_TABNum↑行間隔 (&I):←横置きLedger(帳簿), 17 x 11インチ左左-一行目 (&F):余白-左 (mm):テキストを左寄せにします。リーガル Extra 9 1/2 x 15インチリーガル, 8 1/2 x 14インチレター Extra 9 1/2 x 12インチレター Extra Transverse 9.275 x 12 インチレター Plus 8 1/2 x 12.69インチレター 横置き 11 x 8 1/2インチレター Small, 8 1/2 x 11インチレター Transverse 8 1/2 x 11インチレター, 8 1/2 x 11インチ許諾軽量%lu 行目 (マップファイル "%s" ) に文法不適合がありました。無視します。行間隔:リンクは '//' を含んでいます。絶対パスリンクに変換しました。リストスタイルリストスタイル利用できるポイント指定の大きさ一覧です。利用できるフォントの一覧です。%s ファイルの読み取り読み取り中 : ロックファイル '%s' は不正な所有者を示しています。ロックファイル '%s' は不正なパーミッションを示しています。ファイル '%s' にログを保存しました。小文字単語小文字ローマ数字MDI子ウィンドウMENUMicrosoft Help ライブラリーがインストールされていないので Microsoft HTML Help 機能が使えません。そのライブラリーをインストールしてください。最大化 (&X)MacArabicMacArmenianMacBengaliMacBurmeseMacCelticMacCentralEurRomanMacChineseSimpMacChineseTradMacCroatianMacCyrillicMacDevanagariMacDingbatsMacEthiopicMacExtArabicMacGaelicMacGeorgianMacGreekMacGujaratiMacGurmukhiMacHebrewMacIcelandicMacJapaneseMacKannadaMacKeyboardGlyphsMacKhmerMacKoreanMacLaotianMacMalayalamMacMongolianMacOriyaMacRomanMacRomanianMacSinhaleseMacSymbolMacTamilMacTeluguMacThaiMacTibetanMacTurkishMacVietnamese選択してください:大文字小文字を区別メモリーVFSにはファイル '%s' がすでにあります。メニューメタルテーマ最小化 (&N)Modern更新モジュール "%s" の初期化に失敗しましたMonarch 封筒, 3 7/8 x 7 1/2インチ下に移動上に移動NumLock名前新規文字スタイル (&C) ...新規リストスタイル (&L) ...新規段落スタイル (&P) ...新規スタイル新規ディレクトリー新規項目新しい名前次次のページいいえ%ld 型のアニメーションハンドラーは未定義です。'%d' 型のイメージハンドラは定義されていません。列がありません。プロパティーに対応する列がありません。指定された位置には列がありません。HTMLファイルに対する既定のアプリケーション設定がありません。項目が見つかりません。エンコーディング '%s' のテキストを表示するフォントはありません 他のエンコーディング '%s' でありば利用可能です。 このエンコーディングを使いますか(そうでなければ別のものを選びます)?エンコーディング '%s' のテキストを表示するフォントはありません このエンコーディングに使うフォントを選択しますか (そうでなければこのエンコーディングのテキストは正しく表示されません)?アニメーションタイプのハンドラーが見つかりません。イメージタイプのハンドラーが見つかりません。%d 型のイメージハンドラーが定義されていません。%s 型のイメージハンドラーが定義されていません。一致するページがまだありません。カスタムデータ列に不適切なレンダラーまたは不適切なその型が与えられました。列に対してレンダラーが与えられていません。音声なしマスクされるべき未使用色が画像にありません。画像に未使用色がありません。ファイル "%s" には適切なマップが含まれていません。北欧言語 (Latin-6, ISO-8859-10)通常通常
    下線付き通常のフォント:%sではない利用できません下線なしノート, 8 1/2×11インチお知らせ列の数を決定できませんでした。番号付きアウトラインOKオブジェクトには id 属性が必須です。ファイルを開くHTML文書を開くファイル "%s" を開くOpenGL 関数 "%s" が失敗: %s (エラー %d)処理が許可されていません。オプション '%s' には値の指定が必要です。オプション '%s': '%s' という表現は日付に変換できません。オプション向きウィンドウIDが制限範囲を超えました。アプリケーションの再起動をおすすめします。PAGEDOWNPAGEUPPAUSEPCX: メモリを割り当てることができませんPCX: 画像形式は未対応ですPCX: 不正な画像ですPCX: PCXファイルではないようです。PCX: 未対応のエラーが発生しました。PCX: バージョン番号が低すぎるようです。PGDNPGUPPNM: メモリを割り当てることができません。PNM: ファイル形式を解析できません。PNM: ファイルが欠けているようです。中国 16K 146 x 215 mm中国 16K 横置き中国 32K 97 x 151 mm中国 32K 横置き中国 32K(Big) 97 x 151 mm中国 32K(Big) 横置き中国封筒 #1 102 x 165 mm中国封筒 #1 横置き 165 x 102 mm中国封筒 #10 324 x 458 mm中国封筒 #10 横置き 458 x 324 mm中国封筒 #2 102 x 176 mm中国封筒 #2 横置き 176 x 102 mm中国封筒 #3 125 x 176 mm中国封筒 #3 横置き 176 x 125 mm中国封筒 #4 110 x 208 mm中国封筒 #4 横置き 208 x 110 mm中国封筒 #5 110 x 220 mm中国封筒 #5 横置き 220 x 110 mm中国封筒 #6 120 x 230 mm中国封筒 #6 横置き 230 x 120 mm中国封筒 #7 160 x 230 mm中国封筒 #7 横置き 230 x 160 mm中国封筒 #8 120 x 309 mm中国封筒 #8 横置き 309 x 120 mm中国封筒 #9 229 x 324 mm中国封筒 #9 横置き 324 x 229 mmPrintScreen%dページ%dページ (%dページ中)ページの設定ページの設定指定用紙サイズ段落スタイルSetObject に登録済みのオブジェクトが渡されましたGetObject に未知のオブジェクトが渡されました貼り付け選択部分を貼り付けピリオド (&O)パーミッションパイプを作成できませんでした有効なフォントを選んでください。存在するファイルを選んでください。表示するページを選んでください:接続したいISPを選んでくださいcomctl32.dll の新しい版をインストールしてください。 4.70 以上の版が必要ですが現在インストールされているのは %d.%02d です。 適切な版がないと正しく動作いたしません。表示する列とその順番を選んでください:大きさ(ポイント):データビューコントロールへのポインタが正しく設定されていません。モデルへのポインタが正しく設定されていません。縦置きPostScript ファイルプレビュー:前のページ印刷印刷プレビュー印刷プレビュー失敗印刷範囲印刷設定カラー印刷印刷プレビューを作成できませんでした。印刷予約設定このページを印刷ファイルへ印刷プリンタープリンターへのコマンド:プリンターのオプションプリンターのオプション:プリンター ...プリンター:印刷印刷印刷エラー%d ページを印刷中 ...印刷中 ...印刷出力デバッグレポートの処理に失敗しました。ディレクトリー "%s" にファイルを残します。進行状況レンダラーが値を処理できません: 値の型: プロパティークォート(四つ折り版), 215 x 275 mmお尋ねしますこのプログラムを終了しますRETURN→ファイル '%s' の読み取りエラー準備完了再実行最後に取り消した編集を再実行します更新レジストリーキー '%s' はすでに存在します。改名元に指定されたレジストリーキー '%s' は存在しません。レジストリーキー '%s' は通常のシステム動作に必要です。 これを削除するとシステムを不安定にします: 処理を中断しました。レジストリの値 '%s' はすでに存在します。通常関連項目:残り時間:削除ブックマークから現在のページを削除しますレンダラー "%s" は非互換バージョン %d.%d で実装されているため読み取ることができません。レンダリングに失敗しました。リスト連番の初期化置換(&L)置換すべて置換(&A)選択範囲を置換します置換先:必須情報項目が空です。'%s' は正しいメッセージカタログではありません。保存した状態まで戻します右余白-右 (mm):右寄せにします。Roman標準行頭文字名(&T):ScrollLockSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACT保存%s ファイルを保存別名で保存(&A) ...Save As現在の文書を保存します現在の文書を別名で保存しますログの内容をファイルに保存しますScript検索上で入力したテキストがある部分をヘルプブックの全体に渡って検索します検索の方向検索内容:すべてのブックを検索検索中...セクションファイル '%s' のシークエラーファイル '%s' のシークエラー(stdioでは大きなファイルに対応できません)すべて選択(&A)すべて選択文書の雛形を選んでください文書ビューの選択太字にするかしないかを選んでください。イタリックにするかしないかを選んでください。下線を付けるか付けないかを選んでください選択編集したいリストレベルを選んでください。オプション '%s' の後には区切り文字が必要です。SetProperty が適切なsetterなしで呼び出されましたこのバージョンの OS ではディレクトリアクセス時刻を設定できません設定 ...複数のダイヤルアップ接続が有効です。乱数でひとつ選びます。Shift+隠しディレクトリーを表示する(&H)隠しファイルを表示する(&H)詳細ダイアログを表示します。すべて表示索引に全項目を表示します隠しディレクトリーを表示しますナビゲーションパネルの表示/非表示を切り替えますユニコードの部分集合を表示します。行頭文字設定のプレビューを表示します。フォント設定のプレビューを表示します。フォントのプレビューを表示します。段落設定のプレビューを表示します。フォントのプレビューを表示します。簡素なモノクロのテーマ1大きさ大きさ:スキップ斜体ファイルを開くことができませんでした。プレビューのためのメモリが足りません。その名前はすでに使われています。他の名前を選んでください。このファイルの形式は未対応です。未対応の様式が使われている音声データです。'%s' は未対応の様式が使われている音声ファイルです。間隔標準ステートメント(計算書), 5 1/2 x 8 1/2インチ状態:文字列から色へ : 変換に失敗しました : %sスタイルスタイルの構成スタイル:下付き文字(&T)上付き文字(&R)SuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwiss記号記号フォント (&F) :記号TABTIFF: メモリ割り当てに失敗しました。TIFF: 画像の読み取りエラーを検出しました。TIFF: 画像の読み取りエラーを検出しました。TIFF: 画像の書き出しエラーを検出しました。TIFF: 画像の書き出しエラーを検出しました。TIFF: 画像の大きさが極端に大きいようです。タブロイド Extra 11.69 x 18インチタブロイド, 11 x 17インチタブTeletype雛形テキストレンダラーは次の値を処理できません; 値の型: タイ語 (ISO-8859-11)そのFTPサーバーはPASSIVEモードに対応していません。そのFTPサーバーはPORTコマンドに対応していません。使用できる行頭文字スタイルです。使用できるスタイルです。行頭文字を指定します。文字コードです。文字集合 '%s' は未対応です。 他の文字集合で置き換えるかそれができないときは キャンセルしてくださいクリップボード様式 '%d' は存在しません。次の段落に適用されるスタイルを指定します。ディレクトリー '%s' は存在しません 作成しますか?文書 "%s" はページの水平方向にあわせることができません。印刷すると切り詰められます。 ご承知の上で印刷処理を進めますか?最初の行の字下げです。次の標準GTK+オプションも利用できます: フォントの色を指定できます。フォントのファミリーを指定できます。記号の取得元フォントを指定できます。フォントの大きさをポイントで記します。フォントの大きさをポイントで記します。フォントのスタイルを指定できます。フォントのウエイトを指定できます。ファイル '%s' の様式を決定できませんでした。左側の字下げを指定できます。行間隔を指定できます。連番の番号を指定できます。アウトラインレベルを指定できます。印刷ダイアログがエラーを返しました。表示する範囲を指定できます。レポートに含まれるファイルは下記の通りです。公開すべきでないファイルが含まれている場合は そのファイルのチェックを外せばレポートから取り除かれます。 必須引数 '%s' が与えられていません。右側の字下げです。段落の後の空間を指定します。段落の前の空間を指定します。スタイル名です。このスタイルの元となるスタイルです。スタイルのプレビューです。タブ位置です。タブ位置の一覧です。テキストが保存できませんでした。オプション '%s' とその値は必ず指定してください。このコンピューターにインストールされているリモートアクセスサービス(RAS)は古すぎるようです。新しいものを用意してください(機能 %s が必要です)。wxGtkPrinterDC が利用できません。指定された列のレンダラーまたは列そのものが存在しません。ページの準備中に問題が検出されました: 既定のプリンターが未指定なら指定してください。この文書はページの水平方向にあわせることができません。印刷すると切り詰められます。このシステムは、date コントロールに未対応です。comctl32.dllを更新してくださいスレッドモジュールの初期化に失敗: スレッドローカルストレージに値を保存できませんでしたスレッドモジュールの初期化に失敗: スレッドキーを作成できませんでしたスレッドモジュールの初期化に失敗: スレッドローカルストレージに索引を割り当てられませんでしたスレッド優先度の設定は無視されました。横に並べる(&H)縦に並べる(&V)FTPサーバーとの接続を待機中に時間切れになりました。PASSIVEモードで試してみてください。タイマーの作成に失敗しました。今日のチップチップが使えません、ごめんね!末尾ページ:トグルレンダラーが値を処理できません: 値の型: EndStyle の呼び出しが多すぎます。PNGにある色が多すぎます。少しぼやけた感じになるかもしれません。余白-天 (mm):翻訳 : 翻訳者真メモリVFSにまだ読み込まれていない '%s' の削除を要求されました。トルコ語 (ISO-8859-9)種類フォント名を指定します。ポイントで大きさを指定します。型は列挙からlongへの変換が可能でなくてはなりません。型の処理 "%s" に失敗: "%s" とラベルされたプロパティーは "%s" 型です。"%s" ではありません。↑米国標準折りたたみ連続紙, 14 7/8 x 11インチUS-ASCIIinotify 監視を追加できませんでしたkqueue 監視を追加できませんでしたハンドルをI/O完了ポートに関連づけることができませんでしたI/O完了ポートハンドルを閉じることができませんでしたinotify 実体を閉じることができませんでした。パス '%s' を閉じることができませんでした。'%s' へのハンドルを閉じることができませんでした。I/O完了ポートを作成できませんIOCP ワーカースレッドを作成できませんinotify 実体を作成できませんkqueue 実体を作成できません完了パケットを双方向に扱えませんでしたkqueue からのイベントを取得できませんでしたネイティブのドラッグアンドドロップデータを制御できませんでしたGTK+を初期化できません。 DISPLAY の設定が不適切の可能性があります。Hildon プログラムを初期化できませんパス '%s' を開くことができません要求されたHTML文書を開くことができません: %s音の非同期演奏はできません。完了状態を post できませんでしたinotify 記述子から読み取ることができませんinotify 監視を削除できませんでしたkqueue 監視を削除できませんでした'%s' の監視を準備できませんでした。IOCP ワーカースレッドを開始できませんでした削除の取り消し下線付き元に戻す最後の編集を取り消しますオプション '%s' に想定外の文字が続いています。想定外の変数 '%s' があります予期しない新しいI/O完了ポートが作成されましたワーカースレッドを強引に停止させますユニコードユニコード 16 ビット (UTF-16)ユニコード 16 ビット Big Endian (UTF-16BE)ユニコード 16ビット Little Endian (UTF-16LE)ユニコード 32 ビット (UTF-32)ユニコード 32 ビット Big Endian (UTF-32BE)ユニコード 32 ビット Little Endian (UTF-32LE)ユニコード 7 ビット (UTF-7)ユニコード 8 ビット (UTF-8)不明想定外のDDE エラー 0x%08x未知のオブジェクトが GetObjectClassInfo に渡されました未知のプロパティ %s未知の解像度単位 %d を無視しました未知のデータ様式です想定外の動的ライブラリーエラー未知のエンコーディング (%d)未定義の詳細オプション名 '%s'未定義の簡易オプション名 '%s'MIME型 %s の項目に閉じていない '{' がありました。無名コマンド未指定未対応のクリップボード様式です。テーマ '%s' は未対応です。上へ大文字単語大文字ローマ数字使い方: %s現在の整列設定を用います。ネイティブデータビューコントロールへの有効なポインタがありません。確認処理に矛盾があります値バージョン 詳細情報付きでファイル一覧を見るリスト形式でファイル一覧を見るビュー左WindowsApplication右Windowsepoll 記述子 %d の IO 待ちに失敗しました警告:ウエイト西ヨーロッパ言語 (ISO-8859-1)西ヨーロッパ言語ユーロ記号付き (Latin-9, ISO-8859-15)フォントに下線が付くかどうか。単語全体全体一致のみWin32 テーマWindows 3.1 上の Win32sWindows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows アラビア語 (CP 1256)Windows バルト言語 (CP 1257)Windows CE (%d.%d)Windows 中央ヨーロッパ言語 (CP 1250)Windows キリル言語 (CP 1251)Windows ギリシャ語 (CP 1253)Windows ヘブライ語 (CP 1255)Windows 韓国語 (CP 949)Windows MEWindows タイ語 (CP 874)Windows トルコ語 (CP 1254)Windows 西ヨーロッパ言語 (CP 1252)Windows/DOS OEM (CP 437)ファイル '%s' への書き出しエラーXML 解析エラー: '%s' (%d行目)XPM: 定形外のピクセルデータがありましたXPM: %d行目の色記述に問題がありますXPM: ヘッダーが必要な様式を満たしていません。XPM: 定形外の色定義 '%s' が%d行目にありました。XPM: マスクに使うための色が残っていません。XPM: %d行目に不完全な画像データがありました。はいオーバーレイは初期化する前に Clear できませんオーバーレイは二度 Init できませんこのセクションに新しいディレクトリーは追加できません。拡大(&I)縮小(&O)画面に合わせる(&F)DDEML アプリケーションが競合状態の延長として作成されています。DdeInitalize 関数より先に別の DDEML 関数が呼び出されたか、 無効な実体識別子が DDEML 関数に渡されました。  クライアントによる通信対話の確立が試みられましたが失敗しました。メモリ割り当てに失敗しました。DDEML の評価により引数の失敗が検出されました。非同期 advise トランザクションの要求が時間切れになりました。非同期 data トランザクションの要求が時間切れになりました。非同期 execute トランザクションの要求が時間切れになりました。非同期 poke トランザクションの要求が時間切れになりました。advise トランザクション終了の要求が時間切れになりました。サーバーサイドトランザクションが通信対話の確立を試みましたが クライアントによって終了されたかトランザクション成立前に 終了してしまいました。トランザクションが失敗しました。AltAPPCLASS_MONITOR として初期化されたアプリケーションが DDEトランザクションの実現を試みたか、 APPCMD_CLIENTONLY で初期化されたものが サーバートランザクションの実現を試みようとしました。PostMessage関数の内部呼び出しが失敗しました。DDEMLの内部エラーが発生しました。不正なトランザクション識別子が DDEML 関数に渡されました。 XTYP_XACT_COMPLETE コールバックで識別子を使った後復帰した アプリケーションはその識別子を以後の呼び出しで使うことができません。複数のzipファイルが結合されるよう意図されたデータです不変キー '%s' への変更要求を無視しました。ライブラリ関数への引数に問題があります未対応の識別文字です項目へのzipfileオフセットが不適当ですバイナリー太字バッファーが小さいので Windows ディレクトリーを格納できません。ファイル '%s' を閉じることができません記述子 %d のファイルを閉じることができません変更をファイル '%s' に反映できません。ファイル '%s' を作成できませんユーザー設定ファイル '%s' を削除できません記述子 %d のファイルがEOFに達したかどうかを判断できません'%s' を実行できません。zip内にセントラルディレクトリー部が見つかりません。記述子 %d のファイルから長さを取得できませんユーザーのHOMEが見つかりません。カレントディレクトリーを使用します。記述子 %d のファイルをフラッシュできません記述子 %d のファイルからシーク位置を取得できませんフォントが一切読み取れません、中止しますファイル '%s' を開くことができません。共有設定ファイル '%s' を開くことができません。ユーザー設定ファイル '%s' を開くことができません。ユーザー設定ファイルを開くことができません。zlibをdeflateストリームで再初期化できませんzlibをinflateストリームで再初期化できません記述子 %d のファイルから読み取ることができませんファイル '%s' を削除できません一時ファイル '%s' を削除できません記述子 %d のファイル上をシークできませんバッファー '%s' をディスクに書き出すことができません。記述子 %d のファイルへ書き出すことができません。ユーザー設定ファイルを書き出すことができません。チェックサムエラーヘッダーブロックを読み取り中にチェックサムの不整合が見つかりました圧縮エラー8ビットエンコーディングへの変換に失敗しましたCtrl日付展開エラー規定double値バイナリーによるプロセス状態のダンプ18日8日11日項目 '%s' が二回以上グループ '%s' に現れていますデータ様式にエラーがありました'%s' を開く際にエラーが発生しましたファイルを開く際にエラーが発生しましたzipのセントラルディレクトリーを読み取り中にエラーを検出しましたzipのローカルヘッダーを読み取り中にエラーを検出しました。zip項目 '%s' の書き出しエラー: CRCまたは長さが不正ですファイル '%s' のフラッシュができませんでした15日5日ファイル '%s' %d行目: グループヘッダの後にある '%s' は無視されます。ファイル '%s' %d行目: '=' がありません。ファイル '%s' %d行目: キー '%s' はすでに %d行目に出てきました。ファイル '%s' %d行目: 不変キー '%s' への値は無視されます。ファイル '%s': 想定外の文字 %c が %d 行目にありました。ファイル1日フォントの大きさ14日4日冗長なログメッセージを生成します。画像一時ファイル不完全なtarヘッダブロックです点が付いていない不正なイベントハンドラー文字列ですtar項目に不正な大きさが与えられています拡張tarヘッダに不正なデータがありますメッセージボックスの戻り値は不正なものになります。不完全なzipファイルですイタリック軽量ロケールに '%s' を指定できませんでした。0時19日9日DDE エラーはありませんでした。エラーなし%s にフォントが含まれていません。ビルトインフォントを使用します名称未設定正午通常実装されていません数値オブジェクトは XML テキストノードを持つことができませんメモリ不足プロセスコンテキストの記述読み取りエラーzipストリームの読み取り中 (項目 %s): CRC 不一致zipストリームの読み取り中 (項目 %s): 不正な長さ同期トランザクションが別の同期トランザクションを開始しようとしました。2日シークエラー17日7日Shiftこのヘルプメッセージを表示します16日6日使用する画面モードを指定ください(例: 640x480-16)使用するテーマを指定ください標準/丸標準/ひし形標準/四角標準/三角Zipヘッダーにファイルの長さが記されていません文字列TARの項目を開くことができません10日トランザクションへの応答が DDE_FBUSY ビットの設定を引き起こしました。3日13日今日明日'%s' の末尾にある / は無視されました翻訳者-謝辞12日20日下線%d文字目に想定外の"があります '%s'。想定外の状況でファイル末尾に達しました不明不明なクラス %s想定外のエラーです想定外のエラーです (エラーコード 0x%08x).未対応のシーク方法です未知-%d名称未指定名称未指定%dこの Zip 圧縮法には未対応ですカタログ '%s' を '%s' から利用します。書き出しエラーwxGetTimeOfDay が失敗しました。wxPrintout::GetPageInfo が maxPage に 0 を返しました。wxWidgets コントロールポインターはデータビューポインターではありませんwxWidgetsのコントロールが初期化されていません。wxWidgets はディスプレイ '%s' を開くことができませんでした: 終了します。wxWidgets はディスプレイを開くことができませんでした。終了します。xxxx昨日zlib エラー %d~ginkgocadx-3.8.7/cadxcore/lang/ja/wxstd.po000066400000000000000000010462571314736454600205170ustar00rootroot00000000000000# msgid "" msgstr "" "Project-Id-Version: wxWidgets 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-01 19:04+0200\n" "PO-Revision-Date: 2011-03-02 18:30+0900\n" "Last-Translator: Suzumizaki-Kimitaka(鈴見咲君高) \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../src/common/debugrpt.cpp:591 msgid "" "\n" "Please send this report to the program maintainer, thank you!\n" msgstr "" "\n" "お手数ですがこのレポートをプログラムの保守担当者に送信ください。\n" #: ../src/richtext/richtextstyledlg.cpp:210 #: ../src/richtext/richtextstyledlg.cpp:222 msgid " " msgstr " " #: ../src/generic/dbgrptg.cpp:326 msgid " Thank you and we're sorry for the inconvenience!\n" msgstr " ご不便をおかけして申し訳ございません。\n" #: ../src/common/prntbase.cpp:546 #, fuzzy, c-format msgid " (copy %d of %d)" msgstr "%dページ (%dページ中)" #: ../src/common/log.cpp:425 #, c-format msgid " (error %ld: %s)" msgstr " (エラー %ld: %s)" #: ../src/common/imagtiff.cpp:75 #, c-format msgid " (in module \"%s\")" msgstr "(モジュール \"%s\")" #: ../src/common/docview.cpp:1624 msgid " - " msgstr " - " #: ../src/richtext/richtextprint.cpp:588 ../src/html/htmprint.cpp:704 msgid " Preview" msgstr " プレビュー" #: ../src/common/fontcmn.cpp:811 msgid " bold" msgstr " 太字" #: ../src/common/fontcmn.cpp:827 msgid " italic" msgstr " イタリック" #: ../src/common/fontcmn.cpp:807 msgid " light" msgstr " 軽量" #: ../src/common/paper.cpp:118 msgid "#10 Envelope, 4 1/8 x 9 1/2 in" msgstr "#10 封筒, 4 1/8 x 9 1/2 インチ" #: ../src/common/paper.cpp:119 msgid "#11 Envelope, 4 1/2 x 10 3/8 in" msgstr "#11 封筒, 4 1/2 x 10 3/8 インチ" #: ../src/common/paper.cpp:120 msgid "#12 Envelope, 4 3/4 x 11 in" msgstr "#12 封筒, 4 3/4 x 11 インチ" #: ../src/common/paper.cpp:121 msgid "#14 Envelope, 5 x 11 1/2 in" msgstr "#14 封筒, 5 x 11 1/2 インチ" #: ../src/common/paper.cpp:117 msgid "#9 Envelope, 3 7/8 x 8 7/8 in" msgstr "#9 封筒, 3 7/8 x 8 7/8 インチ" #: ../src/html/helpwnd.cpp:1044 #, fuzzy, c-format msgid "%d of %lu" msgstr "%i / %i" #: ../src/html/helpwnd.cpp:1681 ../src/html/helpwnd.cpp:1719 #, c-format msgid "%i of %i" msgstr "%i / %i" #: ../src/generic/filectrlg.cpp:315 #, c-format msgid "%ld byte" msgid_plural "%ld bytes" msgstr[0] "%ld バイト" #: ../src/html/helpwnd.cpp:1046 #, fuzzy, c-format msgid "%lu of %lu" msgstr "%i / %i" #: ../src/common/cmdline.cpp:1050 #, c-format msgid "%s (or %s)" msgstr "%s (または %s)" #: ../src/generic/logg.cpp:230 #, c-format msgid "%s Error" msgstr "%s エラー" #: ../src/generic/logg.cpp:242 #, c-format msgid "%s Information" msgstr "%s 情報" #: ../src/generic/preferencesg.cpp:110 #, fuzzy, c-format msgid "%s Preferences" msgstr "設定 (&P)" #: ../src/generic/logg.cpp:234 #, c-format msgid "%s Warning" msgstr "%s 警告" #: ../src/common/tarstrm.cpp:1319 #, c-format msgid "%s did not fit the tar header for entry '%s'" msgstr "%s は tar のヘッダとして認識できませんでした '%s'" #: ../src/common/fldlgcmn.cpp:106 #, c-format msgid "%s files (%s)|%s" msgstr "%s 形式 (%s)|%s" #: ../src/common/stockitem.cpp:139 ../src/html/helpfrm.cpp:142 #: ../src/html/helpfrm.cpp:144 msgid "&About" msgstr "詳細 (&A)" #: ../src/common/stockitem.cpp:207 msgid "&Actual Size" msgstr "原寸 (&A)" #: ../src/richtext/richtextindentspage.cpp:262 msgid "&After a paragraph:" msgstr "段落の後 (&A):" #: ../src/richtext/richtextindentspage.cpp:128 #: ../src/richtext/richtextliststylepage.cpp:319 msgid "&Alignment" msgstr "整列 (&A)" #: ../src/common/stockitem.cpp:141 msgid "&Apply" msgstr "適用 (&A)" #: ../src/richtext/richtextstyledlg.cpp:251 msgid "&Apply Style" msgstr "スタイルの適用 (&A)" #: ../src/msw/mdi.cpp:175 msgid "&Arrange Icons" msgstr "アイコンの整列 (&A)" #: ../src/common/stockitem.cpp:195 msgid "&Ascending" msgstr "昇順 (&A)" #: ../src/common/stockitem.cpp:142 msgid "&Back" msgstr "戻る (&B)" #: ../src/richtext/richtextstylepage.cpp:113 msgid "&Based on:" msgstr "基底 (&B):" #: ../src/richtext/richtextindentspage.cpp:253 msgid "&Before a paragraph:" msgstr "段落の前 (&B):" #: ../src/richtext/richtextfontpage.cpp:271 msgid "&Bg colour:" msgstr "背景色 (&C):" #: ../src/common/stockitem.cpp:143 msgid "&Bold" msgstr "太字 (&B)" #: ../src/common/stockitem.cpp:144 msgid "&Bottom" msgstr "下端 (&B)" #: ../src/richtext/richtextborderspage.cpp:359 #: ../src/richtext/richtextborderspage.cpp:503 #: ../src/richtext/richtextmarginspage.cpp:260 #: ../src/richtext/richtextmarginspage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:637 #: ../src/richtext/richtextsizepage.cpp:644 #, fuzzy msgid "&Bottom:" msgstr "下端 (&B)" #: ../include/wx/richtext/richtextbuffer.h:3530 #, fuzzy msgid "&Box" msgstr "太字 (&B)" #: ../src/richtext/richtextliststylepage.cpp:210 #: ../src/richtext/richtextbulletspage.cpp:159 msgid "&Bullet style:" msgstr "行頭文字のスタイル (&B):" #: ../src/common/stockitem.cpp:146 msgid "&CD-Rom" msgstr "CD-ROM (&C)" #: ../src/generic/wizard.cpp:432 ../src/generic/fontdlgg.cpp:470 #: ../src/generic/fontdlgg.cpp:489 ../src/osx/carbon/fontdlg.cpp:588 #: ../src/common/stockitem.cpp:145 msgid "&Cancel" msgstr "キャンセル (&C)" #: ../src/msw/mdi.cpp:171 msgid "&Cascade" msgstr "重ねて表示 (&C)" #: ../include/wx/richtext/richtextbuffer.h:5587 #, fuzzy msgid "&Cell" msgstr "キャンセル (&C)" #: ../src/richtext/richtextsymboldlg.cpp:439 msgid "&Character code:" msgstr "文字コード (&C):" #: ../src/common/stockitem.cpp:147 msgid "&Clear" msgstr "消去 (&C)" #: ../src/generic/logg.cpp:522 ../src/common/stockitem.cpp:148 #: ../src/common/prntbase.cpp:1570 ../src/univ/themes/win32.cpp:3756 #: ../src/html/helpfrm.cpp:139 msgid "&Close" msgstr "閉じる (&C)" #: ../src/common/stockitem.cpp:193 msgid "&Color" msgstr "色 (&C)" #: ../src/richtext/richtextfontpage.cpp:258 msgid "&Colour:" msgstr "色 (&C):" #: ../src/common/stockitem.cpp:149 msgid "&Convert" msgstr "変換 (&C)" #: ../src/richtext/richtextctrl.cpp:326 ../src/osx/textctrl_osx.cpp:583 #: ../src/common/stockitem.cpp:150 ../src/msw/textctrl.cpp:2284 msgid "&Copy" msgstr "コピー (&C)" #: ../src/generic/hyperlinkg.cpp:156 msgid "&Copy URL" msgstr "URLをコピー (&C)" #: ../src/common/headerctrlcmn.cpp:328 msgid "&Customize..." msgstr "列の編集 (&C) ..." #: ../src/generic/dbgrptg.cpp:334 msgid "&Debug report preview:" msgstr "デバッグレポートプレビュー (&D):" #: ../src/richtext/richtexttabspage.cpp:142 #: ../src/richtext/richtextctrl.cpp:328 ../src/osx/textctrl_osx.cpp:585 #: ../src/common/stockitem.cpp:152 ../src/msw/textctrl.cpp:2286 msgid "&Delete" msgstr "削除 (&D)" #: ../src/richtext/richtextstyledlg.cpp:269 msgid "&Delete Style..." msgstr "スタイルの削除 (&D)..." #: ../src/common/stockitem.cpp:196 msgid "&Descending" msgstr "降順 (&D)" #: ../src/generic/logg.cpp:688 msgid "&Details" msgstr "詳細 (&D)" #: ../src/common/stockitem.cpp:153 msgid "&Down" msgstr "下(&D)" #: ../src/common/stockitem.cpp:154 msgid "&Edit" msgstr "編集(&E)" #: ../src/richtext/richtextstyledlg.cpp:263 msgid "&Edit Style..." msgstr "スタイルの編集 (&E) ..." #: ../src/common/stockitem.cpp:155 msgid "&Execute" msgstr "実行 (&E)" #: ../src/common/stockitem.cpp:157 ../src/html/helpfrm.cpp:146 msgid "&File" msgstr "ファイル(&F)" #: ../src/common/stockitem.cpp:158 msgid "&Find" msgstr "検索(&F)" #: ../src/generic/wizard.cpp:626 msgid "&Finish" msgstr "完了 (&F)" #: ../src/common/stockitem.cpp:159 msgid "&First" msgstr "最初 (&F)" #: ../src/richtext/richtextsizepage.cpp:244 msgid "&Floating mode:" msgstr "" #: ../src/common/stockitem.cpp:160 msgid "&Floppy" msgstr "フロッピーディスク (&F)" #: ../src/common/stockitem.cpp:194 msgid "&Font" msgstr "フォント (&F)" #: ../src/generic/fontdlgg.cpp:371 msgid "&Font family:" msgstr "フォントファミリー (&F):" #: ../src/richtext/richtextliststylepage.cpp:194 msgid "&Font for Level..." msgstr "レベル毎のフォント (&F)..." #: ../src/richtext/richtextfontpage.cpp:156 #: ../src/richtext/richtextsymboldlg.cpp:400 msgid "&Font:" msgstr "フォント (&F):" #: ../src/common/stockitem.cpp:161 msgid "&Forward" msgstr "進行 (&F)" #: ../src/richtext/richtextsymboldlg.cpp:451 msgid "&From:" msgstr "取得元 (&F):" #: ../src/common/stockitem.cpp:162 msgid "&Harddisk" msgstr "ハードディスク (&H)" #: ../src/richtext/richtextsizepage.cpp:351 #: ../src/richtext/richtextsizepage.cpp:358 #, fuzzy msgid "&Height:" msgstr "ウエイト (&W):" #: ../src/generic/wizard.cpp:435 ../src/richtext/richtextstyledlg.cpp:303 #: ../src/richtext/richtextsymboldlg.cpp:479 ../src/osx/menu_osx.cpp:785 #: ../src/common/stockitem.cpp:163 ../src/html/helpfrm.cpp:147 msgid "&Help" msgstr "ヘルプ (&H)" #: ../include/wx/richmsgdlg.h:30 #, fuzzy msgid "&Hide details" msgstr "詳細 (&D)" #: ../src/common/stockitem.cpp:164 msgid "&Home" msgstr "ホーム (&H)" #: ../src/richtext/richtextindentspage.cpp:184 #: ../src/richtext/richtextliststylepage.cpp:372 msgid "&Indentation (tenths of a mm)" msgstr "字下げ(1/10ミリ単位) (&I)" #: ../src/richtext/richtextindentspage.cpp:167 #: ../src/richtext/richtextliststylepage.cpp:356 msgid "&Indeterminate" msgstr "指定しない (&I)" #: ../src/common/stockitem.cpp:166 msgid "&Index" msgstr "索引 (&I)" #: ../src/common/stockitem.cpp:167 msgid "&Info" msgstr "情報 (&I)" #: ../src/common/stockitem.cpp:168 msgid "&Italic" msgstr "イタリック (&I)" #: ../src/common/stockitem.cpp:169 msgid "&Jump to" msgstr "移動 (&J)" #: ../src/richtext/richtextindentspage.cpp:153 #: ../src/richtext/richtextliststylepage.cpp:342 msgid "&Justified" msgstr "両端揃え (&J)" #: ../src/common/stockitem.cpp:174 msgid "&Last" msgstr "最後 (&L)" #: ../src/richtext/richtextindentspage.cpp:139 #: ../src/richtext/richtextliststylepage.cpp:328 msgid "&Left" msgstr "左 (&L)" #: ../src/richtext/richtextindentspage.cpp:195 #: ../src/richtext/richtextborderspage.cpp:269 #: ../src/richtext/richtextborderspage.cpp:413 #: ../src/richtext/richtextliststylepage.cpp:381 #: ../src/richtext/richtextmarginspage.cpp:187 #: ../src/richtext/richtextmarginspage.cpp:301 #: ../src/richtext/richtextsizepage.cpp:532 #: ../src/richtext/richtextsizepage.cpp:539 msgid "&Left:" msgstr "左 (&L):" #: ../src/richtext/richtextliststylepage.cpp:183 msgid "&List level:" msgstr "リストレベル (&L):" #: ../src/generic/logg.cpp:523 msgid "&Log" msgstr "ログ (&L)" #: ../src/univ/themes/win32.cpp:3748 msgid "&Move" msgstr "移動 (&M)" #: ../src/richtext/richtextsizepage.cpp:672 msgid "&Move the object to:" msgstr "" #: ../src/common/stockitem.cpp:175 msgid "&Network" msgstr "ネットワーク (&N)" #: ../src/richtext/richtexttabspage.cpp:136 ../src/common/stockitem.cpp:176 msgid "&New" msgstr "新規作成 (&N)" #: ../src/aui/tabmdi.cpp:111 ../src/generic/mdig.cpp:100 #: ../src/msw/mdi.cpp:176 msgid "&Next" msgstr "次 (&N)" #: ../src/generic/wizard.cpp:431 ../src/generic/wizard.cpp:626 msgid "&Next >" msgstr "次へ (&N) >" #: ../src/richtext/richtextsizepage.cpp:681 #, fuzzy msgid "&Next Paragraph" msgstr "段落の後 (&A):" #: ../src/generic/tipdlg.cpp:276 msgid "&Next Tip" msgstr "次のチップ (&N)" #: ../src/richtext/richtextstylepage.cpp:123 msgid "&Next style:" msgstr "次のスタイル (&N):" #: ../src/common/stockitem.cpp:177 ../src/msw/msgdlg.cpp:476 msgid "&No" msgstr "いいえ (&N)" #: ../src/generic/dbgrptg.cpp:356 msgid "&Notes:" msgstr "注意書き (&N):" #: ../src/richtext/richtextbulletspage.cpp:264 msgid "&Number:" msgstr "番号 (&N):" #: ../src/generic/fontdlgg.cpp:475 ../src/generic/fontdlgg.cpp:482 #: ../src/osx/carbon/fontdlg.cpp:594 ../src/common/stockitem.cpp:178 msgid "&OK" msgstr "OK (&O)" #: ../src/generic/dbgrptg.cpp:342 ../src/common/stockitem.cpp:179 #: ../src/html/helpfrm.cpp:137 msgid "&Open..." msgstr "開く (&O) ..." #: ../src/richtext/richtextindentspage.cpp:222 msgid "&Outline level:" msgstr "アウトラインレベル (&O):" #: ../src/richtext/richtextindentspage.cpp:293 msgid "&Page Break" msgstr "" #: ../src/richtext/richtextctrl.cpp:327 ../src/osx/textctrl_osx.cpp:584 #: ../src/common/stockitem.cpp:180 ../src/msw/textctrl.cpp:2285 msgid "&Paste" msgstr "貼り付け (&P)" #: ../include/wx/richtext/richtextbuffer.h:4655 msgid "&Picture" msgstr "" #: ../src/generic/fontdlgg.cpp:422 msgid "&Point size:" msgstr "大きさ-ポイント (&P):" #: ../src/richtext/richtexttabspage.cpp:114 msgid "&Position (tenths of a mm):" msgstr "位置(1/10ミリ単位) (&P)" #: ../src/richtext/richtextsizepage.cpp:514 #, fuzzy msgid "&Position mode:" msgstr "印刷" #: ../src/common/stockitem.cpp:181 msgid "&Preferences" msgstr "設定 (&P)" #: ../src/aui/tabmdi.cpp:112 ../src/generic/mdig.cpp:101 #: ../src/msw/mdi.cpp:177 msgid "&Previous" msgstr "前 (&P)" #: ../src/richtext/richtextsizepage.cpp:675 #, fuzzy msgid "&Previous Paragraph" msgstr "前のページ" #: ../src/common/stockitem.cpp:183 msgid "&Print..." msgstr "印刷 (&P) ..." #: ../src/richtext/richtextctrl.cpp:332 ../src/richtext/richtextctrl.cpp:4945 #: ../src/common/stockitem.cpp:184 msgid "&Properties" msgstr "プロパティー (&P)" #: ../src/common/stockitem.cpp:156 msgid "&Quit" msgstr "終了 (&Q)" #: ../src/richtext/richtextctrl.cpp:323 ../src/osx/textctrl_osx.cpp:580 #: ../src/common/stockitem.cpp:185 ../src/common/cmdproc.cpp:293 #: ../src/common/cmdproc.cpp:300 ../src/msw/textctrl.cpp:2281 msgid "&Redo" msgstr "再実行 (&R)" #: ../src/common/cmdproc.cpp:289 ../src/common/cmdproc.cpp:309 msgid "&Redo " msgstr "再実行 (&R)" #: ../src/richtext/richtextstyledlg.cpp:257 msgid "&Rename Style..." msgstr "スタイル名を変更 (&R)..." #: ../src/generic/fdrepdlg.cpp:179 msgid "&Replace" msgstr "置換 (&R)" #: ../src/richtext/richtextstyledlg.cpp:287 msgid "&Restart numbering" msgstr "番号付けのリセット (&R)" #: ../src/univ/themes/win32.cpp:3747 msgid "&Restore" msgstr "復元 (&R)" #: ../src/richtext/richtextindentspage.cpp:146 #: ../src/richtext/richtextliststylepage.cpp:335 msgid "&Right" msgstr "右 (&R)" #: ../src/richtext/richtextindentspage.cpp:213 #: ../src/richtext/richtextborderspage.cpp:299 #: ../src/richtext/richtextborderspage.cpp:443 #: ../src/richtext/richtextliststylepage.cpp:399 #: ../src/richtext/richtextmarginspage.cpp:212 #: ../src/richtext/richtextmarginspage.cpp:326 #: ../src/richtext/richtextsizepage.cpp:602 #: ../src/richtext/richtextsizepage.cpp:609 msgid "&Right:" msgstr "右 (&R):" #: ../src/common/stockitem.cpp:190 msgid "&Save" msgstr "保存 (&S)" #: ../src/common/stockitem.cpp:191 #, fuzzy msgid "&Save as" msgstr "Save As" #: ../include/wx/richmsgdlg.h:29 #, fuzzy msgid "&See details" msgstr "詳細 (&D)" #: ../src/generic/tipdlg.cpp:270 msgid "&Show tips at startup" msgstr "チップを起動時に表示 (&S)" #: ../src/univ/themes/win32.cpp:3750 msgid "&Size" msgstr "大きさ (&S)" #: ../src/richtext/richtextfontpage.cpp:168 msgid "&Size:" msgstr "大きさ (&S):" #: ../src/generic/progdlgg.cpp:282 msgid "&Skip" msgstr "スキップ (&S)" #: ../src/richtext/richtextindentspage.cpp:242 #: ../src/richtext/richtextliststylepage.cpp:417 msgid "&Spacing (tenths of a mm)" msgstr "間隔 - 1/10mm単位 (&S)" #: ../src/common/stockitem.cpp:197 msgid "&Spell Check" msgstr "スペルチェック (&S)" #: ../src/common/stockitem.cpp:198 msgid "&Stop" msgstr "停止 (&S)" #: ../src/richtext/richtextfontpage.cpp:284 ../src/common/stockitem.cpp:199 msgid "&Strikethrough" msgstr "打ち消し線 (&S)" #: ../src/generic/fontdlgg.cpp:382 ../src/richtext/richtextstylepage.cpp:104 msgid "&Style:" msgstr "スタイル (&S):" #: ../src/richtext/richtextstyledlg.cpp:198 msgid "&Styles:" msgstr "スタイル一覧 (&S):" #: ../src/richtext/richtextsymboldlg.cpp:413 msgid "&Subset:" msgstr "部分表示 (&S):" #: ../src/richtext/richtextliststylepage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:222 msgid "&Symbol:" msgstr "記号 (&S):" #: ../include/wx/richtext/richtextbuffer.h:5679 #, fuzzy msgid "&Table" msgstr "タブ" #: ../src/common/stockitem.cpp:200 msgid "&Top" msgstr "上端 (&T)" #: ../src/richtext/richtextborderspage.cpp:329 #: ../src/richtext/richtextborderspage.cpp:473 #: ../src/richtext/richtextmarginspage.cpp:235 #: ../src/richtext/richtextmarginspage.cpp:349 #: ../src/richtext/richtextsizepage.cpp:567 #: ../src/richtext/richtextsizepage.cpp:574 #, fuzzy msgid "&Top:" msgstr "上端 (&T)" #: ../src/generic/fontdlgg.cpp:444 ../src/common/stockitem.cpp:202 msgid "&Underline" msgstr "下線 (&U)" #: ../src/richtext/richtextfontpage.cpp:243 msgid "&Underlining:" msgstr "下線 (&U):" #: ../src/richtext/richtextctrl.cpp:322 ../src/osx/textctrl_osx.cpp:579 #: ../src/common/stockitem.cpp:203 ../src/common/cmdproc.cpp:271 #: ../src/msw/textctrl.cpp:2280 msgid "&Undo" msgstr "元に戻す (&U)" #: ../src/common/cmdproc.cpp:265 msgid "&Undo " msgstr "元に戻す (&U)" #: ../src/common/stockitem.cpp:204 msgid "&Unindent" msgstr "字下げ解除 (&U)" #: ../src/common/stockitem.cpp:205 msgid "&Up" msgstr "上 (&U)" #: ../src/richtext/richtextsizepage.cpp:278 #, fuzzy msgid "&Vertical alignment:" msgstr "行頭文字の位置(&A):" #: ../src/generic/dbgrptg.cpp:340 msgid "&View..." msgstr "見る (&V) ..." #: ../src/generic/fontdlgg.cpp:393 msgid "&Weight:" msgstr "ウエイト (&W):" #: ../src/richtext/richtextsizepage.cpp:317 #: ../src/richtext/richtextsizepage.cpp:324 #, fuzzy msgid "&Width:" msgstr "ウエイト (&W):" #: ../src/aui/tabmdi.cpp:311 ../src/aui/tabmdi.cpp:327 #: ../src/aui/tabmdi.cpp:329 ../src/generic/mdig.cpp:294 #: ../src/generic/mdig.cpp:310 ../src/generic/mdig.cpp:314 #: ../src/msw/mdi.cpp:77 msgid "&Window" msgstr "ウィンドウ (&W)" #: ../src/common/stockitem.cpp:206 ../src/msw/msgdlg.cpp:476 msgid "&Yes" msgstr "はい (&Y)" #: ../src/common/config.cpp:523 ../src/msw/regconf.cpp:258 #, c-format msgid "'%s' has extra '..', ignored." msgstr "'%s' に余分な '..' がありました。無視します。" #: ../src/common/valtext.cpp:249 ../src/common/valtext.cpp:251 #: ../src/common/valtext.cpp:253 ../src/common/valtext.cpp:255 #, c-format msgid "'%s' is invalid" msgstr "'%s' は不正です" #: ../src/common/cmdline.cpp:948 ../src/common/cmdline.cpp:966 #, c-format msgid "'%s' is not a correct numeric value for option '%s'." msgstr "'%s' はオプション '%s' に使えない数値です。" #: ../src/common/translation.cpp:1086 #, c-format msgid "'%s' is not a valid message catalog." msgstr "'%s' は正しいメッセージカタログではありません。" #: ../src/common/textbuf.cpp:239 #, c-format msgid "'%s' is probably a binary buffer." msgstr "'%s' はおそらくバイナリーバッファーです。" #: ../src/common/valtext.cpp:247 #, c-format msgid "'%s' should be numeric." msgstr "'%s' は数字でなくてはなりません。" #: ../src/common/valtext.cpp:239 #, c-format msgid "'%s' should only contain ASCII characters." msgstr "'%s' は ASCII 文字以外を受け付けません。" #: ../src/common/valtext.cpp:241 #, c-format msgid "'%s' should only contain alphabetic characters." msgstr "'%s' はアルファベット以外を受け付けません。" #: ../src/common/valtext.cpp:243 #, c-format msgid "'%s' should only contain alphabetic or numeric characters." msgstr "'%s' はアルファベットと数字のみ受け付けます。" #: ../src/common/valtext.cpp:245 #, c-format msgid "'%s' should only contain digits." msgstr "'%s' は数字以外を受け付けません。" #: ../src/richtext/richtextliststylepage.cpp:229 #: ../src/richtext/richtextbulletspage.cpp:179 msgid "(*)" msgstr "(*)" #: ../src/html/helpwnd.cpp:976 msgid "(Help)" msgstr "(ヘルプ)" #: ../src/richtext/richtextliststylepage.cpp:481 #: ../src/richtext/richtextbulletspage.cpp:286 msgid "(None)" msgstr "(なし)" #: ../src/richtext/richtextsymboldlg.cpp:504 msgid "(Normal text)" msgstr "(通常のテキスト)" #: ../src/html/helpwnd.cpp:426 ../src/html/helpwnd.cpp:1119 #: ../src/html/helpwnd.cpp:1745 msgid "(bookmarks)" msgstr "(ブックマーク)" #: ../src/richtext/richtextindentspage.cpp:274 #: ../src/richtext/richtextindentspage.cpp:286 #: ../src/richtext/richtextindentspage.cpp:287 #: ../src/richtext/richtextindentspage.cpp:311 #: ../src/richtext/richtextindentspage.cpp:326 #: ../src/richtext/richtextformatdlg.cpp:831 #: ../src/richtext/richtextfontpage.cpp:331 #: ../src/richtext/richtextfontpage.cpp:335 #: ../src/richtext/richtextfontpage.cpp:339 #: ../src/richtext/richtextliststylepage.cpp:448 #: ../src/richtext/richtextliststylepage.cpp:460 #: ../src/richtext/richtextliststylepage.cpp:461 msgid "(none)" msgstr "(なし)" #: ../src/richtext/richtextliststylepage.cpp:492 #: ../src/richtext/richtextbulletspage.cpp:297 msgid "*" msgstr "*" #: ../src/richtext/richtextliststylepage.cpp:236 #: ../src/richtext/richtextbulletspage.cpp:186 msgid "*)" msgstr "*)" #: ../src/richtext/richtextliststylepage.cpp:495 #: ../src/richtext/richtextbulletspage.cpp:300 msgid "+" msgstr "+" #: ../src/msw/utils.cpp:1324 msgid ", 64-bit edition" msgstr ", 64ビットエディション" #: ../src/richtext/richtextliststylepage.cpp:493 #: ../src/richtext/richtextbulletspage.cpp:298 msgid "-" msgstr "-" #: ../src/generic/filepickerg.cpp:66 msgid "..." msgstr "" #: ../src/richtext/richtextindentspage.cpp:276 #: ../src/richtext/richtextliststylepage.cpp:450 msgid "1.1" msgstr "1.1" #: ../src/richtext/richtextindentspage.cpp:277 #: ../src/richtext/richtextliststylepage.cpp:451 msgid "1.2" msgstr "1.2" #: ../src/richtext/richtextindentspage.cpp:278 #: ../src/richtext/richtextliststylepage.cpp:452 msgid "1.3" msgstr "1.3" #: ../src/richtext/richtextindentspage.cpp:279 #: ../src/richtext/richtextliststylepage.cpp:453 msgid "1.4" msgstr "1.4" #: ../src/richtext/richtextindentspage.cpp:280 #: ../src/richtext/richtextliststylepage.cpp:454 msgid "1.5" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:455 msgid "1.6" msgstr "1.6" #: ../src/richtext/richtextindentspage.cpp:282 #: ../src/richtext/richtextliststylepage.cpp:456 msgid "1.7" msgstr "1.7" #: ../src/richtext/richtextindentspage.cpp:283 #: ../src/richtext/richtextliststylepage.cpp:457 msgid "1.8" msgstr "1.8" #: ../src/richtext/richtextindentspage.cpp:284 #: ../src/richtext/richtextliststylepage.cpp:458 msgid "1.9" msgstr "1.9" #: ../src/common/paper.cpp:141 msgid "10 x 11 in" msgstr "10×11インチ" #: ../src/common/paper.cpp:114 msgid "10 x 14 in" msgstr "10×14インチ" #: ../src/common/paper.cpp:115 msgid "11 x 17 in" msgstr "11×17インチ" #: ../src/common/paper.cpp:185 msgid "12 x 11 in" msgstr "12×11インチ" #: ../src/common/paper.cpp:142 msgid "15 x 11 in" msgstr "15×11インチ" #: ../src/richtext/richtextindentspage.cpp:285 #: ../src/richtext/richtextliststylepage.cpp:459 msgid "2" msgstr "2" #: ../src/common/paper.cpp:133 msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in" msgstr "6 3/4 封筒, 3 5/8 × 6 1/2インチ" #: ../src/common/paper.cpp:140 msgid "9 x 11 in" msgstr "9×11インチ" #: ../src/html/htmprint.cpp:431 msgid ": file does not exist!" msgstr ": ファイルがありません。" #: ../src/common/fontmap.cpp:199 msgid ": unknown charset" msgstr ": 未知の文字集合" #: ../src/common/fontmap.cpp:413 msgid ": unknown encoding" msgstr ": 未知のエンコーディング" #: ../src/generic/wizard.cpp:437 msgid "< &Back" msgstr "< 戻る (&B)" #: ../src/osx/carbon/fontdlg.cpp:608 ../src/osx/carbon/fontdlg.cpp:815 #: ../src/osx/carbon/fontdlg.cpp:835 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:609 ../src/osx/carbon/fontdlg.cpp:817 #: ../src/osx/carbon/fontdlg.cpp:837 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:607 ../src/osx/carbon/fontdlg.cpp:813 #: ../src/osx/carbon/fontdlg.cpp:833 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:610 ../src/osx/carbon/fontdlg.cpp:819 #: ../src/osx/carbon/fontdlg.cpp:839 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:611 ../src/osx/carbon/fontdlg.cpp:824 #: ../src/osx/carbon/fontdlg.cpp:843 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:612 ../src/osx/carbon/fontdlg.cpp:821 #: ../src/osx/carbon/fontdlg.cpp:841 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:606 msgid "" msgstr "<いずれか>" #: ../src/generic/filectrlg.cpp:286 ../src/generic/filectrlg.cpp:309 msgid "" msgstr "<ディレクトリー>" #: ../src/generic/filectrlg.cpp:290 ../src/generic/filectrlg.cpp:313 msgid "" msgstr "<ドライブ>" #: ../src/generic/filectrlg.cpp:288 ../src/generic/filectrlg.cpp:311 msgid "" msgstr "<リンク>" #: ../src/html/helpwnd.cpp:1279 msgid "Bold italic face.
    " msgstr "太字でイタリック体。
    " #: ../src/html/helpwnd.cpp:1283 msgid "bold italic underlined
    " msgstr "太字でイタリック体 下線
    " #: ../src/html/helpwnd.cpp:1278 msgid "Bold face. " msgstr "太字。 " #: ../src/html/helpwnd.cpp:1277 msgid "Italic face. " msgstr "イタリック体。 " #: ../src/richtext/richtextliststylepage.cpp:494 #: ../src/richtext/richtextbulletspage.cpp:299 msgid ">" msgstr ">" #: ../src/generic/dbgrptg.cpp:318 msgid "A debug report has been generated in the directory\n" msgstr "デバッグレポートが次のディレクトリーに作成されます\n" #: ../src/common/debugrpt.cpp:578 msgid "A debug report has been generated. It can be found in" msgstr "デバッグレポートが作成されました。次の場所にあります:" #: ../src/common/xtixml.cpp:418 msgid "A non empty collection must consist of 'element' nodes" msgstr "空でないコレクションは 'element' ノードを必須とします" #: ../src/richtext/richtextliststylepage.cpp:304 #: ../src/richtext/richtextliststylepage.cpp:306 #: ../src/richtext/richtextbulletspage.cpp:257 #: ../src/richtext/richtextbulletspage.cpp:259 msgid "A standard bullet name." msgstr "標準の行頭文字名を指定します。" #: ../src/common/paper.cpp:218 msgid "A0 sheet, 841 x 1189 mm" msgstr "A0 シート, 841 x 1189 mm" #: ../src/common/paper.cpp:219 msgid "A1 sheet, 594 x 841 mm" msgstr "A1 シート, 594 x 841 mm" #: ../src/common/paper.cpp:160 msgid "A2 420 x 594 mm" msgstr "A2 420×594 mm" #: ../src/common/paper.cpp:157 msgid "A3 Extra 322 x 445 mm" msgstr "A3 Extra 322 x 445 mm" #: ../src/common/paper.cpp:162 msgid "A3 Extra Transverse 322 x 445 mm" msgstr "A3 Extra Transverse 322 x 445 mm" #: ../src/common/paper.cpp:171 msgid "A3 Rotated 420 x 297 mm" msgstr "A3横置き 420×297mm" #: ../src/common/paper.cpp:161 msgid "A3 Transverse 297 x 420 mm" msgstr "A3 Transverse 297 x 420 mm" #: ../src/common/paper.cpp:107 msgid "A3 sheet, 297 x 420 mm" msgstr "A3 シート, 297 x 420 mm" #: ../src/common/paper.cpp:147 msgid "A4 Extra 9.27 x 12.69 in" msgstr "A4 Extra 9.27 x 12.69インチ" #: ../src/common/paper.cpp:154 msgid "A4 Plus 210 x 330 mm" msgstr "A4 Plus 210 x 330 mm" #: ../src/common/paper.cpp:172 msgid "A4 Rotated 297 x 210 mm" msgstr "A4横置き 297×210mm" #: ../src/common/paper.cpp:149 msgid "A4 Transverse 210 x 297 mm" msgstr "A4 Transverse 210 x 297 mm" #: ../src/common/paper.cpp:98 msgid "A4 sheet, 210 x 297 mm" msgstr "A4 シート, 210 x 297 mm" #: ../src/common/paper.cpp:108 msgid "A4 small sheet, 210 x 297 mm" msgstr "A4 small sheet, 210 x 297 mm" #: ../src/common/paper.cpp:158 msgid "A5 Extra 174 x 235 mm" msgstr "A5 Extra 174 x 235 mm" #: ../src/common/paper.cpp:173 msgid "A5 Rotated 210 x 148 mm" msgstr "A5横置き 210×148mm" #: ../src/common/paper.cpp:155 msgid "A5 Transverse 148 x 210 mm" msgstr "A5 Transverse 148 x 210 mm" #: ../src/common/paper.cpp:109 msgid "A5 sheet, 148 x 210 mm" msgstr "A5 シート, 148 x 210 mm" #: ../src/common/paper.cpp:165 msgid "A6 105 x 148 mm" msgstr "A6 105×148mm" #: ../src/common/paper.cpp:178 msgid "A6 Rotated 148 x 105 mm" msgstr "A6横置き 148×105mm" #: ../src/generic/fontdlgg.cpp:83 ../src/richtext/richtextformatdlg.cpp:526 #: ../src/osx/carbon/fontdlg.cpp:339 msgid "ABCDEFGabcdefg12345" msgstr "ABCDEFGabcdefg12345" #: ../src/common/accelcmn.cpp:76 msgid "ADD" msgstr "ADD" #: ../src/richtext/richtextsymboldlg.cpp:458 ../src/common/ftp.cpp:405 msgid "ASCII" msgstr "ASCII" #: ../src/osx/menu_osx.cpp:630 ../src/common/stockitem.cpp:139 #, fuzzy msgid "About" msgstr "詳細 (&A)" #: ../src/generic/aboutdlgg.cpp:140 ../src/msw/aboutdlg.cpp:64 #, c-format msgid "About %s" msgstr "%s について" #: ../src/richtext/richtextsizepage.cpp:520 msgid "Absolute" msgstr "" #: ../src/common/stockitem.cpp:207 #, fuzzy msgid "Actual Size" msgstr "原寸 (&A)" #: ../src/common/stockitem.cpp:140 msgid "Add" msgstr "追加" #: ../src/richtext/richtextbuffer.cpp:10751 msgid "Add Column" msgstr "" #: ../src/richtext/richtextbuffer.cpp:10688 msgid "Add Row" msgstr "" #: ../src/html/helpwnd.cpp:439 msgid "Add current page to bookmarks" msgstr "現在のページをブックマークに追加します" #: ../src/generic/colrdlgg.cpp:283 msgid "Add to custom colours" msgstr "カスタムカラーへ追加します" #: ../include/wx/xtiprop.h:259 msgid "AddToPropertyCollection called on a generic accessor" msgstr "非特殊化アクセサーの AddToPropertyCollection が呼び出されました" #: ../include/wx/xtiprop.h:197 msgid "AddToPropertyCollection called w/o valid adder" msgstr "不適切な adder から AddToPropertyCollection が呼び出されました" #: ../src/html/helpctrl.cpp:159 #, c-format msgid "Adding book %s" msgstr "ブック %s を追加しています" #: ../src/osx/carbon/dataview.cpp:1933 msgid "Adding flavor TEXT failed" msgstr "フレーバー TEXT を追加できませんでした" #: ../src/osx/carbon/dataview.cpp:1954 msgid "Adding flavor utxt failed" msgstr "フレーバー utxt を追加できませんでした" #: ../src/common/preferencescmn.cpp:41 msgid "Advanced" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:435 msgid "After a paragraph:" msgstr "段落の後:" #: ../src/common/stockitem.cpp:172 msgid "Align Left" msgstr "左寄せ" #: ../src/common/stockitem.cpp:173 msgid "Align Right" msgstr "右寄せ" #: ../src/richtext/richtextsizepage.cpp:266 #, fuzzy msgid "Alignment" msgstr "整列 (&A)" #: ../src/generic/prntdlgg.cpp:215 msgid "All" msgstr "すべて" #: ../src/generic/filectrlg.cpp:1205 ../src/common/fldlgcmn.cpp:89 #, c-format msgid "All files (%s)|%s" msgstr "すべてのファイル (%s)|%s" #: ../include/wx/defs.h:2922 msgid "All files (*)|*" msgstr "すべてのファイル (*)|*" #: ../include/wx/defs.h:2919 msgid "All files (*.*)|*.*" msgstr "すべてのファイル (*.*)|*.*" #: ../src/richtext/richtextstyles.cpp:1057 msgid "All styles" msgstr "すべてのスタイル" #: ../src/propgrid/manager.cpp:1496 msgid "Alphabetic Mode" msgstr "名前順" #: ../src/common/xtistrm.cpp:429 msgid "Already Registered Object passed to SetObjectClassInfo" msgstr "登録済みのオブジェクトが SetObjectClassInfo に渡されました" #: ../src/unix/dialup.cpp:353 msgid "Already dialling ISP." msgstr "すでに ISP にダイヤル中です。" #: ../src/common/accelcmn.cpp:320 ../src/univ/themes/win32.cpp:3756 msgid "Alt+" msgstr "Alt+" #: ../src/common/debugrpt.cpp:581 msgid "And includes the following files:\n" msgstr "次のファイルが含まれています:\n" #: ../src/generic/animateg.cpp:162 #, c-format msgid "Animation file is not of type %ld." msgstr "アニメーションファイルが %ld 型ではありません。" #: ../src/generic/logg.cpp:1034 #, c-format msgid "Append log to file '%s' (choosing [No] will overwrite it)?" msgstr "" "ログをファイル '%s' に追加しますか? [いいえ]を選択すると再作成で上書きしま" "す。" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:610 #: ../src/osx/menu_osx.cpp:649 ../src/osx/menu_osx.cpp:657 #, fuzzy msgid "Application" msgstr "選択" #: ../src/common/stockitem.cpp:141 #, fuzzy msgid "Apply" msgstr "適用 (&A)" #: ../src/richtext/richtextliststylepage.cpp:482 #: ../src/richtext/richtextbulletspage.cpp:287 msgid "Arabic" msgstr "算用数字" #: ../src/common/fmapbase.cpp:153 msgid "Arabic (ISO-8859-6)" msgstr "アラビア語 (ISO-8859-6)" #: ../src/msw/ole/automtn.cpp:661 #, fuzzy, c-format msgid "Argument %u not found." msgstr "列の索引が見つかりません。" #: ../src/generic/aboutdlgg.cpp:184 msgid "Artists" msgstr "デザイン" #: ../src/common/stockitem.cpp:195 #, fuzzy msgid "Ascending" msgstr "昇順 (&A)" #: ../src/generic/filectrlg.cpp:468 msgid "Attributes" msgstr "属性" #: ../src/richtext/richtextliststylepage.cpp:294 #: ../src/richtext/richtextbulletspage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:247 msgid "Available fonts." msgstr "有効なフォントです。" #: ../src/common/paper.cpp:138 msgid "B4 (ISO) 250 x 353 mm" msgstr "B4 (ISO) 250 x 353 mm" #: ../src/common/paper.cpp:174 msgid "B4 (JIS) Rotated 364 x 257 mm" msgstr "B4 (JIS) 横置き 364×257mm" #: ../src/common/paper.cpp:128 msgid "B4 Envelope, 250 x 353 mm" msgstr "B4 封筒, 250 x 353 mm" #: ../src/common/paper.cpp:110 msgid "B4 sheet, 250 x 354 mm" msgstr "B4 シート, 250 x 354 mm" #: ../src/common/paper.cpp:159 msgid "B5 (ISO) Extra 201 x 276 mm" msgstr "B5 (ISO) Extra 201 x 276 mm" #: ../src/common/paper.cpp:175 msgid "B5 (JIS) Rotated 257 x 182 mm" msgstr "B5 (JIS) 横置き 257×182mm" #: ../src/common/paper.cpp:156 msgid "B5 (JIS) Transverse 182 x 257 mm" msgstr "B5 (JIS) Transverse 182 x 257 mm" #: ../src/common/paper.cpp:129 msgid "B5 Envelope, 176 x 250 mm" msgstr "B5 封筒, 176 x 250 mm" #: ../src/common/paper.cpp:111 msgid "B5 sheet, 182 x 257 millimeter" msgstr "B5 シート, 182 x 257 mm" #: ../src/common/paper.cpp:183 msgid "B6 (JIS) 128 x 182 mm" msgstr "B6 (JIS) 128×182 mm" #: ../src/common/paper.cpp:184 msgid "B6 (JIS) Rotated 182 x 128 mm" msgstr "B6 (JIS) 横置き 182×128mm" #: ../src/common/paper.cpp:130 msgid "B6 Envelope, 176 x 125 mm" msgstr "B6 封筒, 176 x 125 mm" #: ../src/common/accelcmn.cpp:49 msgid "BACK" msgstr "BS" #: ../src/common/imagbmp.cpp:523 ../src/common/imagbmp.cpp:553 #: ../src/common/imagbmp.cpp:568 msgid "BMP: Couldn't allocate memory." msgstr "BMP: メモリ割り当てに失敗しました。" #: ../src/common/imagbmp.cpp:97 msgid "BMP: Couldn't save invalid image." msgstr "BMP: 不正な画像で保存できませんでした。" #: ../src/common/imagbmp.cpp:338 msgid "BMP: Couldn't write RGB color map." msgstr "BMP: RGB色索引を書き出せませんでした。" #: ../src/common/imagbmp.cpp:473 msgid "BMP: Couldn't write data." msgstr "BMP: データ書き出しに失敗しました。" #: ../src/common/imagbmp.cpp:239 msgid "BMP: Couldn't write the file (Bitmap) header." msgstr "BMP: Bitmapヘッダの書き出しに失敗しました。" #: ../src/common/imagbmp.cpp:262 msgid "BMP: Couldn't write the file (BitmapInfo) header." msgstr "BMP: BitmapInfoヘッダの書き出しに失敗しました。" #: ../src/common/imagbmp.cpp:133 msgid "BMP: wxImage doesn't have own wxPalette." msgstr "BMP: wxImage は自身の wxPalette を保有していません。" #: ../src/common/stockitem.cpp:142 #, fuzzy msgid "Back" msgstr "戻る (&B)" #: ../src/richtext/richtextbackgroundpage.cpp:119 #: ../src/richtext/richtextformatdlg.cpp:374 #, fuzzy msgid "Background" msgstr "背景色" #: ../src/richtext/richtextbackgroundpage.cpp:131 #, fuzzy msgid "Background &colour:" msgstr "背景色" #: ../src/osx/carbon/fontdlg.cpp:406 msgid "Background colour" msgstr "背景色" #: ../src/common/fmapbase.cpp:160 msgid "Baltic (ISO-8859-13)" msgstr "バルト言語 (ISO-8859-13)" #: ../src/common/fmapbase.cpp:151 msgid "Baltic (old) (ISO-8859-4)" msgstr "バルト言語(旧規格) (ISO-8859-4)" #: ../src/richtext/richtextliststylepage.cpp:426 msgid "Before a paragraph:" msgstr "段落の前:" #: ../src/richtext/richtextliststylepage.cpp:489 #: ../src/richtext/richtextbulletspage.cpp:294 msgid "Bitmap" msgstr "ビットマップ" #: ../src/osx/carbon/dataview.cpp:2396 msgid "Bitmap renderer cannot render value; value type: " msgstr "ビットマップレンダラーが値をレンダリングできません; 値の型:" #: ../src/generic/fontdlgg.cpp:333 ../src/richtext/richtextfontpage.cpp:337 #: ../src/osx/carbon/fontdlg.cpp:540 ../src/common/stockitem.cpp:143 msgid "Bold" msgstr "太字" #: ../src/richtext/richtextborderspage.cpp:256 #: ../src/richtext/richtextborderspage.cpp:389 #, fuzzy msgid "Border" msgstr "Modern" #: ../src/richtext/richtextformatdlg.cpp:368 #, fuzzy msgid "Borders" msgstr "Modern" #: ../src/richtext/richtextsizepage.cpp:288 ../src/common/stockitem.cpp:144 #, fuzzy msgid "Bottom" msgstr "下端 (&B)" #: ../src/generic/prntdlgg.cpp:893 msgid "Bottom margin (mm):" msgstr "余白-地 (mm):" #: ../src/richtext/richtextbuffer.cpp:8919 #, fuzzy msgid "Box Properties" msgstr "プロパティー (&P)" #: ../src/richtext/richtextstyles.cpp:1061 #, fuzzy msgid "Box styles" msgstr "すべてのスタイル" #: ../src/common/filepickercmn.cpp:43 ../src/common/filepickercmn.cpp:44 msgid "Browse" msgstr "ファイルの選択" #: ../src/richtext/richtextliststylepage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:195 msgid "Bullet &Alignment:" msgstr "行頭文字の位置(&A):" #: ../src/richtext/richtextliststylepage.cpp:309 msgid "Bullet style" msgstr "行頭文字のスタイル" #: ../src/richtext/richtextformatdlg.cpp:342 msgid "Bullets" msgstr "行頭文字" #: ../src/common/paper.cpp:99 msgid "C sheet, 17 x 22 in" msgstr "Cサイズシート, 17 x 22インチ" #: ../src/generic/logg.cpp:520 msgid "C&lear" msgstr "消去 (&L)" #: ../src/generic/fontdlgg.cpp:406 msgid "C&olour:" msgstr "色 (&C):" #: ../src/common/paper.cpp:124 msgid "C3 Envelope, 324 x 458 mm" msgstr "C3 封筒, 324×458mm" #: ../src/common/paper.cpp:125 msgid "C4 Envelope, 229 x 324 mm" msgstr "C4 封筒, 229×324mm" #: ../src/common/paper.cpp:123 msgid "C5 Envelope, 162 x 229 mm" msgstr "C5 封筒, 162×229mm" #: ../src/common/paper.cpp:126 msgid "C6 Envelope, 114 x 162 mm" msgstr "消去 (&L)" #: ../src/common/paper.cpp:127 msgid "C65 Envelope, 114 x 229 mm" msgstr "C65 封筒, 114×229mm" #: ../src/common/accelcmn.cpp:66 msgid "CANCEL" msgstr "CANCEL" #: ../src/common/accelcmn.cpp:70 msgid "CAPITAL" msgstr "CapsLock" #: ../src/common/stockitem.cpp:146 #, fuzzy msgid "CD-Rom" msgstr "CD-ROM (&C)" #: ../src/html/chm.cpp:815 ../src/html/chm.cpp:874 msgid "CHM handler currently supports only local files!" msgstr "CHM ハンドラーは現在ローカルファイルのみに対応しています。" #: ../src/common/accelcmn.cpp:67 msgid "CLEAR" msgstr "CLEAR" #: ../src/common/accelcmn.cpp:111 msgid "COMMAND" msgstr "COMMAND" #: ../src/richtext/richtextfontpage.cpp:291 msgid "Ca&pitals" msgstr "大文字化 (&P)" #: ../src/common/cmdproc.cpp:267 msgid "Can't &Undo " msgstr "戻せません (&U)" #: ../src/common/image.cpp:2686 msgid "Can't automatically determine the image format for non-seekable input." msgstr "" #: ../src/msw/registry.cpp:505 #, c-format msgid "Can't close registry key '%s'" msgstr "レジストリーキー '%s' を閉じることができません" #: ../src/msw/registry.cpp:583 #, c-format msgid "Can't copy values of unsupported type %d." msgstr "未対応型 %d の値はコピーできません" #: ../src/msw/registry.cpp:486 #, c-format msgid "Can't create registry key '%s'" msgstr "レジストリーキー '%s' を作成できません" #: ../src/msw/thread.cpp:696 ../src/os2/thread.cpp:494 msgid "Can't create thread" msgstr "スレッドを作成できません" #: ../src/msw/window.cpp:3793 #, c-format msgid "Can't create window of class %s" msgstr "%s クラスのウィンドウを作成できません" #: ../src/msw/registry.cpp:776 #, c-format msgid "Can't delete key '%s'" msgstr "キー '%s' を削除できません" #: ../src/msw/iniconf.cpp:458 ../src/os2/iniconf.cpp:471 #, c-format msgid "Can't delete the INI file '%s'" msgstr "INIファイル '%s' を削除できません" #: ../src/msw/registry.cpp:804 #, c-format msgid "Can't delete value '%s' from key '%s'" msgstr "値 '%s' をキー '%s' から削除できません" #: ../src/msw/registry.cpp:1161 #, c-format msgid "Can't enumerate subkeys of key '%s'" msgstr "キー '%s' のサブキーを列挙できません" #: ../src/msw/registry.cpp:1116 #, c-format msgid "Can't enumerate values of key '%s'" msgstr "キー '%s' の値を列挙できません" #: ../src/msw/registry.cpp:1379 #, c-format msgid "Can't export value of unsupported type %d." msgstr "未対応型 %d の値はエクスポートできません。" #: ../src/common/ffile.cpp:236 #, c-format msgid "Can't find current position in file '%s'" msgstr "ファイル '%s' の現在位置を見つけられません" #: ../src/msw/registry.cpp:416 #, c-format msgid "Can't get info about registry key '%s'" msgstr "レジストリーキー '%s' の情報を取得できません" #: ../src/common/zstream.cpp:346 msgid "Can't initialize zlib deflate stream." msgstr "zlib の deflate ストリームを初期化できません。" #: ../src/common/zstream.cpp:185 msgid "Can't initialize zlib inflate stream." msgstr "zlib の inflate ストリームを初期化できません。" #: ../src/msw/fswatcher.cpp:432 #, fuzzy, c-format msgid "Can't monitor non-existent directory \"%s\" for changes." msgstr "監視対象のディレクトリー \"%s\" を開くことができませんでした。" #: ../src/msw/registry.cpp:452 #, c-format msgid "Can't open registry key '%s'" msgstr "レジストリーキー '%s' を開くことができません" #: ../src/common/zstream.cpp:252 #, c-format msgid "Can't read from inflate stream: %s" msgstr "inflateストリームから読み取ることができません: %s" #: ../src/common/zstream.cpp:244 msgid "Can't read inflate stream: unexpected EOF in underlying stream." msgstr "" "inflate ストリームを読み取ることができません: 想定外の条件でEOFが元のストリー" "ムから検出されました。" #: ../src/msw/registry.cpp:1048 #, c-format msgid "Can't read value of '%s'" msgstr "'%s' の値を読み取ることができません" #: ../src/msw/registry.cpp:877 ../src/msw/registry.cpp:909 #: ../src/msw/registry.cpp:971 #, c-format msgid "Can't read value of key '%s'" msgstr "キー '%s' の値を読み取ることができません" #: ../src/common/image.cpp:2483 #, c-format msgid "Can't save image to file '%s': unknown extension." msgstr "画像を保存できません。'%s' は未対応の拡張子を持っています。" #: ../src/generic/logg.cpp:579 ../src/generic/logg.cpp:996 msgid "Can't save log contents to file." msgstr "ログの内容をファイルに保存できませんでした。" #: ../src/msw/thread.cpp:652 ../src/os2/thread.cpp:477 msgid "Can't set thread priority" msgstr "スレッド優先度を設定できません" #: ../src/msw/registry.cpp:895 ../src/msw/registry.cpp:939 #: ../src/msw/registry.cpp:1065 #, c-format msgid "Can't set value of '%s'" msgstr "'%s' の値を設定できません" #: ../src/unix/utilsunx.cpp:357 #, fuzzy msgid "Can't write to child process's stdin" msgstr "プロセス %d の kill に失敗しました" #: ../src/common/zstream.cpp:427 #, c-format msgid "Can't write to deflate stream: %s" msgstr "deflateストリームに書き出すことができません: %s" #: ../include/wx/msgdlg.h:274 ../src/generic/dirdlgg.cpp:107 #: ../src/richtext/richtextstyledlg.cpp:300 ../src/common/stockitem.cpp:145 #: ../src/msw/msgdlg.cpp:489 ../src/msw/progdlg.cpp:673 #: ../src/gtk1/fontdlg.cpp:144 ../src/motif/msgdlg.cpp:196 msgid "Cancel" msgstr "キャンセル" #: ../src/os2/thread.cpp:116 msgid "Cannot create mutex." msgstr "Mutex を作成できません。" #: ../src/osx/carbon/dataview.cpp:895 msgid "Cannot create new column's ID. Probably max. number of columns reached." msgstr "" "新しい列への識別子を作成できません。作成数が上限に達した可能性があります。" #: ../src/common/filefn.cpp:1336 #, c-format msgid "Cannot enumerate files '%s'" msgstr "ファイルを列挙できません '%s'" #: ../src/msw/dir.cpp:264 #, c-format msgid "Cannot enumerate files in directory '%s'" msgstr "ディレクトリー '%s' のファイルは列挙できません" #: ../src/msw/dialup.cpp:542 #, c-format msgid "Cannot find active dialup connection: %s" msgstr "使用中のダイヤルアップ接続が見つかりません: %s" #: ../src/msw/dialup.cpp:848 msgid "Cannot find the location of address book file" msgstr "住所録の位置を特定できません" #: ../src/msw/ole/automtn.cpp:562 #, fuzzy, c-format msgid "Cannot get an active instance of \"%s\"" msgstr "使用中のダイヤルアップ接続が見つかりません: %s" #: ../src/unix/threadpsx.cpp:1030 #, c-format msgid "Cannot get priority range for scheduling policy %d." msgstr "スケジューリングポリシー %d への優先度範囲を取得できません。" #: ../src/unix/utilsunx.cpp:988 msgid "Cannot get the hostname" msgstr "ホスト名を取得できません" #: ../src/unix/utilsunx.cpp:1024 msgid "Cannot get the official hostname" msgstr "公的なホスト名を取得できません" #: ../src/msw/dialup.cpp:949 msgid "Cannot hang up - no active dialup connection." msgstr "接続を切るよう指示されましたが、有効なダイヤルアップ接続がありません。" #: ../include/wx/msw/ole/oleutils.h:52 msgid "Cannot initialize OLE" msgstr "OLEを初期化できません" #: ../src/common/socket.cpp:847 msgid "Cannot initialize sockets" msgstr "socket を初期化できません" #: ../src/msw/volume.cpp:620 #, c-format msgid "Cannot load icon from '%s'." msgstr "'%s' からアイコンを読み取れません。" #: ../src/xrc/xmlres.cpp:361 #, c-format msgid "Cannot load resources from '%s'." msgstr "ファイル '%s' からリソースを読み取れません。" #: ../src/xrc/xmlres.cpp:746 #, c-format msgid "Cannot load resources from file '%s'." msgstr "ファイル '%s' からリソースを読み取れません。" #: ../src/html/htmlfilt.cpp:137 #, c-format msgid "Cannot open HTML document: %s" msgstr "HTML文書を開くことができません: %s" #: ../src/html/helpdata.cpp:665 #, c-format msgid "Cannot open HTML help book: %s" msgstr "HTMLヘルプブックを開くことができません: %s" #: ../src/html/helpdata.cpp:297 #, c-format msgid "Cannot open contents file: %s" msgstr "目次ファイルを開くことができません: %s" #: ../src/generic/dcpsg.cpp:1751 msgid "Cannot open file for PostScript printing!" msgstr "PostScript 印刷のためのファイルを開くことができません。" #: ../src/html/helpdata.cpp:311 #, c-format msgid "Cannot open index file: %s" msgstr "索引ファイルを開くことができません: %s" #: ../src/xrc/xmlres.cpp:728 #, fuzzy, c-format msgid "Cannot open resources file '%s'." msgstr "ファイル '%s' からリソースを読み取れません。" #: ../src/html/helpwnd.cpp:1537 msgid "Cannot print empty page." msgstr "空のページは印刷できません。" #: ../src/msw/volume.cpp:507 #, c-format msgid "Cannot read typename from '%s'!" msgstr "'%s' の型名を読み出すことができません。" #: ../src/os2/thread.cpp:527 #, c-format msgid "Cannot resume thread %lu" msgstr "スレッド %lu のリジュームができません" #: ../src/msw/thread.cpp:923 #, fuzzy, c-format msgid "Cannot resume thread %lx" msgstr "スレッド %x のリジュームができません" #: ../src/unix/threadpsx.cpp:1011 msgid "Cannot retrieve thread scheduling policy." msgstr "スレッドスケジュールポリシーを取得できません。" #: ../src/common/intl.cpp:542 #, c-format msgid "Cannot set locale to language \"%s\"." msgstr "ロケールを言語 \"%s\" に設定できません。" #: ../src/unix/threadpsx.cpp:831 ../src/msw/thread.cpp:569 msgid "Cannot start thread: error writing TLS." msgstr "スレッドを開始できませんでした: TLS への書き込みに失敗しています。" #: ../src/os2/thread.cpp:513 #, c-format msgid "Cannot suspend thread %lu" msgstr "スレッド %lu のサスペンドができません" #: ../src/msw/thread.cpp:907 #, fuzzy, c-format msgid "Cannot suspend thread %lx" msgstr "スレッド %x のサスペンドができません" #: ../src/msw/thread.cpp:830 msgid "Cannot wait for thread termination" msgstr "スレッドの終了を待つことはできません" #: ../src/html/helpwnd.cpp:546 msgid "Case sensitive" msgstr "大文字小文字を区別" #: ../src/propgrid/manager.cpp:1495 msgid "Categorized Mode" msgstr "種類順" #: ../src/richtext/richtextbuffer.cpp:9347 #, fuzzy msgid "Cell Properties" msgstr "プロパティー (&P)" #: ../src/common/fmapbase.cpp:161 msgid "Celtic (ISO-8859-14)" msgstr "ケルト語 (ISO-8859-14)" #: ../src/richtext/richtextindentspage.cpp:160 #: ../src/richtext/richtextliststylepage.cpp:349 msgid "Cen&tred" msgstr "中央寄せ (&T)" #: ../src/common/stockitem.cpp:170 msgid "Centered" msgstr "中央寄せ" #: ../src/common/fmapbase.cpp:149 msgid "Central European (ISO-8859-2)" msgstr "中央ヨーロッパ (ISO-8859-2)" #: ../src/richtext/richtextliststylepage.cpp:250 #: ../src/richtext/richtextbulletspage.cpp:200 msgid "Centre" msgstr "中央寄せ" #: ../src/richtext/richtextindentspage.cpp:162 #: ../src/richtext/richtextindentspage.cpp:164 #: ../src/richtext/richtextliststylepage.cpp:351 #: ../src/richtext/richtextliststylepage.cpp:353 msgid "Centre text." msgstr "テキストを中央寄せにします。" #: ../src/richtext/richtextsizepage.cpp:287 #, fuzzy msgid "Centred" msgstr "中央寄せ (&T)" #: ../src/richtext/richtextliststylepage.cpp:280 #: ../src/richtext/richtextbulletspage.cpp:232 msgid "Ch&oose..." msgstr "選択 (&O)..." #: ../src/richtext/richtextbuffer.cpp:4041 msgid "Change List Style" msgstr "リストスタイルを変更します" #: ../src/richtext/richtextbuffer.cpp:3392 #, fuzzy msgid "Change Object Style" msgstr "リストスタイルを変更します" #: ../src/richtext/richtextbuffer.cpp:3658 #: ../src/richtext/richtextbuffer.cpp:7749 #, fuzzy msgid "Change Properties" msgstr "プロパティー (&P)" #: ../src/richtext/richtextbuffer.cpp:3209 msgid "Change Style" msgstr "スタイルの変更" #: ../src/common/fileconf.cpp:372 #, c-format msgid "Changes won't be saved to avoid overwriting the existing file \"%s\"" msgstr "ファイル \"%s\" への上書きが拒否されたため変更内容は保存されていません" #: ../src/richtext/richtextstyles.cpp:1059 msgid "Character styles" msgstr "文字のスタイル" #: ../src/richtext/richtextliststylepage.cpp:224 #: ../src/richtext/richtextliststylepage.cpp:226 #: ../src/richtext/richtextbulletspage.cpp:174 #: ../src/richtext/richtextbulletspage.cpp:176 msgid "Check to add a period after the bullet." msgstr "行頭文字の後にピリオドを付ける場合にチェックしてください。" #: ../src/richtext/richtextliststylepage.cpp:238 #: ../src/richtext/richtextliststylepage.cpp:240 #: ../src/richtext/richtextbulletspage.cpp:188 #: ../src/richtext/richtextbulletspage.cpp:190 msgid "Check to add a right parenthesis." msgstr "右丸括弧を加える場合はチェックしてください。" #: ../src/richtext/richtextliststylepage.cpp:231 #: ../src/richtext/richtextliststylepage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:181 #: ../src/richtext/richtextbulletspage.cpp:183 msgid "Check to enclose the bullet in parentheses." msgstr "行頭文字を丸括弧でくくる場合にチェックしてください。" #: ../src/osx/carbon/fontdlg.cpp:542 ../src/osx/carbon/fontdlg.cpp:544 msgid "Check to make the font bold." msgstr "フォントを太字にするときにチェックしてください。" #: ../src/osx/carbon/fontdlg.cpp:549 ../src/osx/carbon/fontdlg.cpp:551 msgid "Check to make the font italic." msgstr "フォントをイタリックにするときにチェックしてください。" #: ../src/osx/carbon/fontdlg.cpp:558 ../src/osx/carbon/fontdlg.cpp:560 msgid "Check to make the font underlined." msgstr "フォントに下線を付けるときにチェックしてください。" #: ../src/richtext/richtextstyledlg.cpp:289 #: ../src/richtext/richtextstyledlg.cpp:291 msgid "Check to restart numbering." msgstr "連番の初期化を指示する場合にチェックしてください。" #: ../src/richtext/richtextfontpage.cpp:286 #: ../src/richtext/richtextfontpage.cpp:288 msgid "Check to show a line through the text." msgstr "テキストを貫く打ち消し線を表示する場合にチェックしてください。" #: ../src/richtext/richtextfontpage.cpp:293 #: ../src/richtext/richtextfontpage.cpp:295 msgid "Check to show the text in capitals." msgstr "テキストを大文字にする場合にチェックしてください。" #: ../src/richtext/richtextfontpage.cpp:300 #: ../src/richtext/richtextfontpage.cpp:302 #, fuzzy msgid "Check to show the text in small capitals." msgstr "テキストを大文字にする場合にチェックしてください。" #: ../src/richtext/richtextfontpage.cpp:314 #: ../src/richtext/richtextfontpage.cpp:316 msgid "Check to show the text in subscript." msgstr "テキストを下付き文字にする場合にチェックしてください。" #: ../src/richtext/richtextfontpage.cpp:307 #: ../src/richtext/richtextfontpage.cpp:309 msgid "Check to show the text in superscript." msgstr "テキストを上付き文字にする場合にチェックしてください。" #: ../src/msw/dialup.cpp:784 msgid "Choose ISP to dial" msgstr "ダイヤル先のISPを選んでください" #: ../src/propgrid/props.cpp:1643 msgid "Choose a directory:" msgstr "ディレクトリーを選んでください:" #: ../src/propgrid/props.cpp:1702 msgid "Choose a file" msgstr "フォントを選んでください" #: ../src/generic/colrdlgg.cpp:144 ../src/gtk/colordlg.cpp:63 msgid "Choose colour" msgstr "色を選んでください" #: ../src/generic/fontpickerg.cpp:50 ../src/gtk/fontdlg.cpp:75 #: ../src/gtk1/fontdlg.cpp:125 msgid "Choose font" msgstr "フォントを選んでください" #: ../src/common/module.cpp:74 #, c-format msgid "Circular dependency involving module \"%s\" detected." msgstr "モジュール \"%s\" の解決を試みているときに循環参照を検出しました。" #: ../src/aui/tabmdi.cpp:108 ../src/generic/mdig.cpp:97 msgid "Cl&ose" msgstr "閉じる(&O)" #: ../src/msw/ole/automtn.cpp:673 #, fuzzy msgid "Class not registered." msgstr "スレッドを作成できません" #: ../src/common/stockitem.cpp:147 #, fuzzy msgid "Clear" msgstr "消去 (&C)" #: ../src/generic/logg.cpp:520 msgid "Clear the log contents" msgstr "ログの内容を消去します" #: ../src/richtext/richtextstyledlg.cpp:252 #: ../src/richtext/richtextstyledlg.cpp:254 msgid "Click to apply the selected style." msgstr "クリックで選択したスタイルを適用します。" #: ../src/richtext/richtextliststylepage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:283 #: ../src/richtext/richtextbulletspage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:235 msgid "Click to browse for a symbol." msgstr "クリックで記号を一覧できます。" #: ../src/osx/carbon/fontdlg.cpp:589 ../src/osx/carbon/fontdlg.cpp:591 msgid "Click to cancel changes to the font." msgstr "クリックでフォントの変更をキャンセルします。" #: ../src/generic/fontdlgg.cpp:472 ../src/generic/fontdlgg.cpp:491 msgid "Click to cancel the font selection." msgstr "クリックでフォントの選択をキャンセルします。" #: ../src/osx/carbon/fontdlg.cpp:570 ../src/osx/carbon/fontdlg.cpp:572 msgid "Click to change the font colour." msgstr "クリックでフォントの色を変更します。" #: ../src/richtext/richtextfontpage.cpp:276 #: ../src/richtext/richtextfontpage.cpp:278 msgid "Click to change the text background colour." msgstr "クリックで背景色を変更します。" #: ../src/richtext/richtextfontpage.cpp:263 #: ../src/richtext/richtextfontpage.cpp:265 msgid "Click to change the text colour." msgstr "クリックで文字色を変更します。" #: ../src/richtext/richtextliststylepage.cpp:195 #: ../src/richtext/richtextliststylepage.cpp:197 msgid "Click to choose the font for this level." msgstr "クリックでこのレベルのフォントを選択します。" #: ../src/richtext/richtextstyledlg.cpp:279 #: ../src/richtext/richtextstyledlg.cpp:281 msgid "Click to close this window." msgstr "クリックでこのウィンドウを閉じます。" #: ../src/osx/carbon/fontdlg.cpp:596 ../src/osx/carbon/fontdlg.cpp:598 msgid "Click to confirm changes to the font." msgstr "クリックでフォントの変更を確定します。" #: ../src/generic/fontdlgg.cpp:477 ../src/generic/fontdlgg.cpp:479 #: ../src/generic/fontdlgg.cpp:484 ../src/generic/fontdlgg.cpp:486 msgid "Click to confirm the font selection." msgstr "クリックでフォントの選択を確定します。" #: ../src/richtext/richtextstyledlg.cpp:244 #: ../src/richtext/richtextstyledlg.cpp:246 #, fuzzy msgid "Click to create a new box style." msgstr "クリックで新しいリストスタイルを作成できます。" #: ../src/richtext/richtextstyledlg.cpp:226 #: ../src/richtext/richtextstyledlg.cpp:228 msgid "Click to create a new character style." msgstr "クリックで新しい文字スタイルを作成できます。" #: ../src/richtext/richtextstyledlg.cpp:238 #: ../src/richtext/richtextstyledlg.cpp:240 msgid "Click to create a new list style." msgstr "クリックで新しいリストスタイルを作成できます。" #: ../src/richtext/richtextstyledlg.cpp:232 #: ../src/richtext/richtextstyledlg.cpp:234 msgid "Click to create a new paragraph style." msgstr "クリックで新しい段落スタイルを作成できます。" #: ../src/richtext/richtexttabspage.cpp:137 #: ../src/richtext/richtexttabspage.cpp:139 msgid "Click to create a new tab position." msgstr "クリックで新しいタブ位置を作成できます。" #: ../src/richtext/richtexttabspage.cpp:149 #: ../src/richtext/richtexttabspage.cpp:151 msgid "Click to delete all tab positions." msgstr "クリックですべてのタブ位置を削除できます。" #: ../src/richtext/richtextstyledlg.cpp:270 #: ../src/richtext/richtextstyledlg.cpp:272 msgid "Click to delete the selected style." msgstr "クリックで選択したスタイルを削除できます。" #: ../src/richtext/richtexttabspage.cpp:143 #: ../src/richtext/richtexttabspage.cpp:145 msgid "Click to delete the selected tab position." msgstr "クリックで選択した他部位置を削除できます。" #: ../src/richtext/richtextstyledlg.cpp:264 #: ../src/richtext/richtextstyledlg.cpp:266 msgid "Click to edit the selected style." msgstr "クリックで選択したスタイルを編集できます。" #: ../src/richtext/richtextstyledlg.cpp:258 #: ../src/richtext/richtextstyledlg.cpp:260 msgid "Click to rename the selected style." msgstr "クリックで選択したスタイルの名前を変更できます。" #: ../src/generic/dbgrptg.cpp:97 ../src/generic/progdlgg.cpp:804 #: ../src/generic/progdlgg.cpp:809 ../src/richtext/richtextstyledlg.cpp:277 #: ../src/richtext/richtextsymboldlg.cpp:476 ../src/common/stockitem.cpp:148 #: ../src/msw/progdlg.cpp:170 ../src/msw/progdlg.cpp:679 #: ../src/html/helpdlg.cpp:90 msgid "Close" msgstr "閉じる" #: ../src/aui/tabmdi.cpp:109 ../src/generic/mdig.cpp:98 msgid "Close All" msgstr "すべて閉じる" #: ../src/common/stockitem.cpp:266 msgid "Close current document" msgstr "現在の文書を閉じます" #: ../src/generic/logg.cpp:522 msgid "Close this window" msgstr "このウィンドウを閉じます" #: ../src/common/stockitem.cpp:193 #, fuzzy msgid "Color" msgstr "色 (&C)" #: ../src/richtext/richtextformatdlg.cpp:725 msgid "Colour" msgstr "色" #: ../src/msw/colordlg.cpp:156 #, c-format msgid "Colour selection dialog failed with error %0lx." msgstr "色選択ダイアログがエラー %0lx で失敗しました。" #: ../src/osx/carbon/fontdlg.cpp:566 msgid "Colour:" msgstr "色:" #: ../src/osx/carbon/dataview.cpp:900 msgid "Column could not be added." msgstr "列を追加できませんでした。" #: ../src/osx/carbon/dataview.cpp:899 msgid "Column description could not be initialized." msgstr "列の記述を初期化できませんでした。" #: ../src/osx/carbon/dataview.cpp:1538 ../src/osx/carbon/dataview.cpp:1559 msgid "Column index not found." msgstr "列の索引が見つかりません。" #: ../src/osx/carbon/dataview.cpp:1614 msgid "Column width could not be determined" msgstr "列の幅を決定できませんでした。" #: ../src/osx/carbon/dataview.cpp:901 msgid "Column width could not be set." msgstr "列の幅を設定できませんでした。" #: ../src/common/init.cpp:188 #, c-format msgid "" "Command line argument %d couldn't be converted to Unicode and will be " "ignored." msgstr "コマンドライン引数 %d はユニコードに変換できません。無視されます。" #: ../src/msw/fontdlg.cpp:119 #, c-format msgid "Common dialog failed with error code %0lx." msgstr "共通ダイアログがエラー %0lx で失敗しました。" #: ../src/gtk/window.cpp:4306 msgid "" "Compositing not supported by this system, please enable it in your Window " "Manager." msgstr "" #: ../src/html/helpwnd.cpp:1554 msgid "Compressed HTML Help file (*.chm)|*.chm|" msgstr "圧縮HTMLヘルプ (*.chm)|*.chm|" #: ../src/generic/dirctrlg.cpp:544 msgid "Computer" msgstr "コンピューター" #: ../src/common/fileconf.cpp:965 #, c-format msgid "Config entry name cannot start with '%c'." msgstr "設定項目名は '%c' で始めることができません。" #: ../src/gtk/filedlg.cpp:59 msgid "Confirm" msgstr "確定" #: ../src/msw/mimetype.cpp:739 msgid "Confirm registry update" msgstr "レジストリーの更新を確定" #: ../src/html/htmlwin.cpp:544 msgid "Connecting..." msgstr "接続中 ..." #: ../src/html/helpwnd.cpp:482 msgid "Contents" msgstr "目次" #: ../src/common/strconv.cpp:2261 #, c-format msgid "Conversion to charset '%s' doesn't work." msgstr "文字集合 '%s' への変換が機能していません。" #: ../src/common/stockitem.cpp:149 #, fuzzy msgid "Convert" msgstr "変換 (&C)" #: ../src/html/htmlwin.cpp:1057 #, c-format msgid "Copied to clipboard:\"%s\"" msgstr "クリップボードへコピー:\"%s\"" #: ../src/generic/prntdlgg.cpp:247 msgid "Copies:" msgstr "部数:" #: ../src/common/stockitem.cpp:150 ../src/stc/stc_i18n.cpp:18 msgid "Copy" msgstr "コピー" #: ../src/common/stockitem.cpp:258 msgid "Copy selection" msgstr "選択範囲をコピーします" #: ../src/html/chm.cpp:718 #, c-format msgid "Could not create temporary file '%s'" msgstr "一時ファイル '%s' を作成できませんでした" #: ../src/osx/carbon/dataview.cpp:1285 ../src/osx/carbon/dataview.cpp:1672 msgid "Could not determine column index." msgstr "列の索引番号を特定できませんでした。" #: ../src/osx/carbon/dataview.cpp:876 msgid "Could not determine column's position" msgstr "列の位置を特定できませんでした" #: ../src/osx/carbon/dataview.cpp:843 msgid "Could not determine number of columns." msgstr "列の数を取得できませんでした。" #: ../src/osx/carbon/dataview.cpp:975 msgid "Could not determine number of items" msgstr "項目数を取得できませんでした。" #: ../src/html/chm.cpp:273 #, c-format msgid "Could not extract %s into %s: %s" msgstr "%s を %s に展開できませんでした: %s" #: ../src/generic/tabg.cpp:1048 msgid "Could not find tab for id" msgstr "識別子に対応したタブが見つかりませんでした。" #: ../src/osx/carbon/dataview.cpp:2556 ../src/osx/carbon/dataview.cpp:2591 #: ../src/osx/carbon/dataview.cpp:2615 ../src/osx/carbon/dataview.cpp:2636 #: ../src/osx/carbon/dataview.cpp:2773 msgid "Could not get header description." msgstr "ヘッダ記述を取得できませんでした。" #: ../src/osx/carbon/dataview.cpp:1169 ../src/osx/carbon/dataview.cpp:1195 msgid "Could not get items." msgstr "項目を取得できませんでした。" #: ../src/osx/carbon/dataview.cpp:2659 ../src/osx/carbon/dataview.cpp:2724 msgid "Could not get property flags." msgstr "プロパティフラグを取得できませんでした。" #: ../src/osx/carbon/dataview.cpp:726 msgid "Could not get selected items." msgstr "選択された項目を取得できませんでした。" #: ../src/html/chm.cpp:444 #, c-format msgid "Could not locate file '%s'." msgstr "ファイル '%s' の場所を特定できません。" #: ../src/osx/carbon/dataview.cpp:845 msgid "Could not remove column." msgstr "列を削除できませんでした。" #: ../src/osx/carbon/dataview.cpp:642 msgid "Could not retrieve number of items" msgstr "項目数を取得できませんでした。" #: ../src/osx/carbon/dataview.cpp:2572 msgid "Could not set alignment." msgstr "整列方法を設定できませんでした。" #: ../src/osx/carbon/dataview.cpp:2803 msgid "Could not set column width." msgstr "列の幅を設定できませんでした。" #: ../src/common/filefn.cpp:1569 #, fuzzy msgid "Could not set current working directory" msgstr "作業ディレクトリーを取得できませんでした。" #: ../src/osx/carbon/dataview.cpp:2775 msgid "Could not set header description." msgstr "ヘッダ記述を設定できませんでした。" #: ../src/osx/carbon/dataview.cpp:2596 msgid "Could not set icon." msgstr "アイコンを設定できませんでした。" #: ../src/osx/carbon/dataview.cpp:2617 msgid "Could not set maximum width." msgstr "最大幅を設定できませんでした。" #: ../src/osx/carbon/dataview.cpp:2638 msgid "Could not set minimum width." msgstr "最小幅を設定できませんでした。" #: ../src/osx/carbon/dataview.cpp:2664 ../src/osx/carbon/dataview.cpp:2729 msgid "Could not set property flags." msgstr "プロパティフラグを設定できませんでした。" #: ../src/common/prntbase.cpp:1985 msgid "Could not start document preview." msgstr "文書プレビューを開始できませんでした。" #: ../src/generic/printps.cpp:178 ../src/msw/printwin.cpp:210 #: ../src/gtk/print.cpp:1077 msgid "Could not start printing." msgstr "印刷を始められませんでした。" #: ../src/common/wincmn.cpp:2131 msgid "Could not transfer data to window" msgstr "ウィンドウへデータを転送できませんでした。" #: ../src/os2/thread.cpp:160 msgid "Couldn't acquire a mutex lock" msgstr "Mutexロックを取得できませんでした。" #: ../src/msw/imaglist.cpp:166 ../src/msw/imaglist.cpp:197 #: ../src/msw/imaglist.cpp:209 ../src/msw/dragimag.cpp:193 #: ../src/msw/dragimag.cpp:232 msgid "Couldn't add an image to the image list." msgstr "イメージリストに画像を追加できませんでした。" #: ../src/msw/timer.cpp:134 ../src/os2/timer.cpp:113 msgid "Couldn't create a timer" msgstr "タイマーを作成できませんでした" #: ../src/osx/carbon/overlay.cpp:122 msgid "Couldn't create the overlay window" msgstr "オーバーレイウィンドウを作成できませんでした" #: ../src/common/translation.cpp:2015 #, fuzzy msgid "Couldn't enumerate translations" msgstr "スレッドを終了できませんでした" #: ../src/common/dynlib.cpp:152 #, c-format msgid "Couldn't find symbol '%s' in a dynamic library" msgstr "シンボル '%s' が動的ライブラリーの中に見つかりませんでした" #: ../src/gtk/print.cpp:2014 msgid "Couldn't get hatch style from wxBrush." msgstr "wxBrush からハッチスタイルを取得できませんでした。" #: ../src/msw/thread.cpp:950 msgid "Couldn't get the current thread pointer" msgstr "現在のスレッドを示すポインタを取得できませんでした。" #: ../src/osx/carbon/overlay.cpp:129 msgid "Couldn't init the context on the overlay window" msgstr "オーバーレイウィンドウの内容を初期化できませんでした。" #: ../src/common/imaggif.cpp:263 #, fuzzy msgid "Couldn't initialize GIF hash table." msgstr "zlib の deflate ストリームを初期化できません。" #: ../src/common/imagpng.cpp:657 msgid "Couldn't load a PNG image - file is corrupted or not enough memory." msgstr "PNG画像を読み出せませんでした。ファイルが壊れているかメモリ不足です。" #: ../src/unix/sound.cpp:470 #, c-format msgid "Couldn't load sound data from '%s'." msgstr "音声データを '%s' から取得できませんでした。" #: ../src/msw/dirdlg.cpp:441 #, fuzzy msgid "Couldn't obtain folder name" msgstr "タイマーを作成できませんでした" #: ../src/unix/sound_sdl.cpp:229 #, c-format msgid "Couldn't open audio: %s" msgstr "音声を開くことができませんでした: %s" #: ../src/msw/ole/dataobj.cpp:350 #, c-format msgid "Couldn't register clipboard format '%s'." msgstr "クリップボードの様式 '%s' を登録できませんでした。" #: ../src/os2/thread.cpp:177 msgid "Couldn't release a mutex" msgstr "Mutexを解放できませんでした" #: ../src/msw/listctrl.cpp:756 #, c-format msgid "Couldn't retrieve information about list control item %d." msgstr "リストコントロールの項目 %d に関する情報を取得できませんでした。" #: ../src/common/imagpng.cpp:746 ../src/common/imagpng.cpp:757 #: ../src/common/imagpng.cpp:767 msgid "Couldn't save PNG image." msgstr "PNG画像を保存できませんでした" #: ../src/msw/thread.cpp:715 msgid "Couldn't terminate thread" msgstr "スレッドを終了できませんでした" #: ../src/common/xtistrm.cpp:170 #, fuzzy, c-format msgid "Create Parameter %s not found in declared RTTI Parameters" msgstr "宣言された RTTI 変数の中には Create で指定されたものがありません" #: ../src/generic/dirdlgg.cpp:317 msgid "Create directory" msgstr "ディレクトリーを作成します" #: ../src/generic/filedlgg.cpp:228 ../src/generic/dirdlgg.cpp:131 msgid "Create new directory" msgstr "新しいディレクトリーを作成します" #: ../src/common/accelcmn.cpp:322 msgid "Ctrl+" msgstr "Ctrl+" #: ../src/richtext/richtextctrl.cpp:325 ../src/osx/textctrl_osx.cpp:582 #: ../src/common/stockitem.cpp:151 ../src/msw/textctrl.cpp:2283 msgid "Cu&t" msgstr "切り取り (&T)" #: ../src/generic/filectrlg.cpp:956 msgid "Current directory:" msgstr "カレントディレクトリー:" #: ../src/gtk/print.cpp:759 msgid "Custom size" msgstr "任意の寸法指定" #: ../src/common/headerctrlcmn.cpp:60 msgid "Customize Columns" msgstr "列の編集" #: ../src/common/stockitem.cpp:151 ../src/stc/stc_i18n.cpp:17 msgid "Cut" msgstr "切り取り" #: ../src/common/stockitem.cpp:259 msgid "Cut selection" msgstr "選択範囲を切り取ります" #: ../src/common/fmapbase.cpp:152 msgid "Cyrillic (ISO-8859-5)" msgstr "キリル言語 (ISO-8859-5)" #: ../src/common/paper.cpp:100 msgid "D sheet, 22 x 34 in" msgstr "Dサイズシート, 22 x 34インチ" #: ../src/msw/dde.cpp:708 msgid "DDE poke request failed" msgstr "DDE の poke 要求が失敗しました" #: ../src/common/accelcmn.cpp:79 msgid "DECIMAL" msgstr "DECIMAL" #: ../src/common/accelcmn.cpp:47 msgid "DEL" msgstr "DEL" #: ../src/common/accelcmn.cpp:48 msgid "DELETE" msgstr "DELETE" #: ../src/common/imagbmp.cpp:1092 msgid "DIB Header: Encoding doesn't match bitdepth." msgstr "DIB ヘッダー: エンコーディングがビット深さに対応していません。" #: ../src/common/imagbmp.cpp:1040 msgid "DIB Header: Image height > 32767 pixels for file." msgstr "DIB ヘッダー: 画像の高さが32767ピクセルを超えています。" #: ../src/common/imagbmp.cpp:1032 msgid "DIB Header: Image width > 32767 pixels for file." msgstr "DIB ヘッダー: 画像の幅が32767ピクセルを超えています。" #: ../src/common/imagbmp.cpp:1060 msgid "DIB Header: Unknown bitdepth in file." msgstr "DIB ヘッダー: 未知のビット深さがファイルに含まれています。" #: ../src/common/imagbmp.cpp:1074 msgid "DIB Header: Unknown encoding in file." msgstr "DIB ヘッダー: 未知のエンコーディングがファイルに含まれています。" #: ../src/common/accelcmn.cpp:80 msgid "DIVIDE" msgstr "DIVIDE" #: ../src/common/paper.cpp:122 msgid "DL Envelope, 110 x 220 mm" msgstr "DL 封筒, 110×220mm" #: ../src/common/accelcmn.cpp:59 msgid "DOWN" msgstr "↓" #: ../src/richtext/richtextborderspage.cpp:545 msgid "Dashed" msgstr "" #: ../src/osx/carbon/dataview.cpp:1921 msgid "Data object has invalid data format" msgstr "データオブジェクトが不適切な様式を保有しています" #: ../src/osx/carbon/dataview.cpp:2491 msgid "Date renderer cannot render value; value type: " msgstr "日付レンダラーが値をレンダリングできません; 値の型:" #: ../src/generic/dbgrptg.cpp:300 #, c-format msgid "Debug report \"%s\"" msgstr "デバッグレポート \"%s\"" #: ../src/common/debugrpt.cpp:210 msgid "Debug report couldn't be created." msgstr "デバッグレポートを作成できません。" #: ../src/common/debugrpt.cpp:558 msgid "Debug report generation has failed." msgstr "デバッグレポートの作成に失敗しました。" #: ../src/generic/fontdlgg.cpp:323 msgid "Decorative" msgstr "Decorative" #: ../src/common/fmapbase.cpp:796 msgid "Default encoding" msgstr "既定のエンコーディング" #: ../src/dfb/fontmgr.cpp:180 msgid "Default font" msgstr "既定のフォント" #: ../src/generic/prntdlgg.cpp:510 msgid "Default printer" msgstr "既定のプリンター" #: ../src/richtext/richtextbuffer.cpp:7841 ../src/common/stockitem.cpp:152 #: ../src/stc/stc_i18n.cpp:20 msgid "Delete" msgstr "削除" #: ../src/richtext/richtexttabspage.cpp:148 msgid "Delete A&ll" msgstr "すべて削除(&L)" #: ../src/richtext/richtextbuffer.cpp:10637 #, fuzzy msgid "Delete Column" msgstr "選択範囲の削除" #: ../src/richtext/richtextbuffer.cpp:10587 #, fuzzy msgid "Delete Row" msgstr "削除" #: ../src/richtext/richtextstyledlg.cpp:779 msgid "Delete Style" msgstr "スタイルの削除" #: ../src/richtext/richtextctrl.cpp:1231 ../src/richtext/richtextctrl.cpp:1452 msgid "Delete Text" msgstr "テキストの削除" #: ../src/generic/editlbox.cpp:274 msgid "Delete item" msgstr "項目の削除" #: ../src/common/stockitem.cpp:260 msgid "Delete selection" msgstr "選択範囲の削除" #: ../src/richtext/richtextstyledlg.cpp:779 #, c-format msgid "Delete style %s?" msgstr "スタイル %s を削除しますか?" #: ../src/unix/snglinst.cpp:295 #, c-format msgid "Deleted stale lock file '%s'." msgstr "無効なロックファイル '%s' を削除しました。" #: ../src/common/module.cpp:124 #, c-format msgid "Dependency \"%s\" of module \"%s\" doesn't exist." msgstr "依存先の \"%s\" (モジュール \"%s\" 内) は存在しません。" #: ../src/common/stockitem.cpp:196 #, fuzzy msgid "Descending" msgstr "降順 (&D)" #: ../src/generic/dirctrlg.cpp:626 msgid "Desktop" msgstr "デスクトップ" #: ../src/generic/aboutdlgg.cpp:70 msgid "Developed by " msgstr "開発 : " #: ../src/generic/aboutdlgg.cpp:176 msgid "Developers" msgstr "開発者" #: ../src/msw/dialup.cpp:393 msgid "" "Dial up functions are unavailable because the remote access service (RAS) is " "not installed on this machine. Please install it." msgstr "" "リモートアクセスサービス(RAS)がインストールされていないため、ダイヤルアップは" "機能しません。RASをインストールしてください。" #: ../src/generic/tipdlg.cpp:230 msgid "Did you know..." msgstr "ご存じですか?" #: ../src/dfb/wrapdfb.cpp:63 #, fuzzy, c-format msgid "DirectFB error %d occurred." msgstr "DirectFB エラー %d が発生しました。" #: ../src/motif/filedlg.cpp:219 msgid "Directories" msgstr "ディレクトリー" #: ../src/common/filefn.cpp:1251 #, c-format msgid "Directory '%s' couldn't be created" msgstr "ディレクトリー '%s' を作成できませんでした" #: ../src/common/filefn.cpp:1271 #, c-format msgid "Directory '%s' couldn't be deleted" msgstr "ディレクトリー '%s' を削除できませんでした" #: ../src/generic/dirdlgg.cpp:233 msgid "Directory does not exist" msgstr "ディレクトリーが存在しません" #: ../src/generic/filectrlg.cpp:1412 msgid "Directory doesn't exist." msgstr "ディレクトリーが存在しません。" #: ../src/common/docview.cpp:455 msgid "Discard changes and reload the last saved version?" msgstr "変更を破棄して最後に保存したものを読み直しますか?" #: ../src/html/helpwnd.cpp:512 msgid "" "Display all index items that contain given substring. Search is case " "insensitive." msgstr "" "与えられた文字列を含む索引項目を表示します。大文字小文字は区別しません。" #: ../src/html/helpwnd.cpp:692 msgid "Display options dialog" msgstr "オプションダイアログを表示します" #: ../src/html/helpwnd.cpp:326 msgid "Displays help as you browse the books on the left." msgstr "横に置く本のようにヘルプを表示します。" #: ../src/msw/mimetype.cpp:732 msgid "" "Do you want to overwrite the command used to %s files with extension \"%s" "\" ?\n" "Current value is \n" "%s, \n" "New value is \n" "%s %1" msgstr "" "%s コマンドを拡張子 \"%s\" に適用するときの値を上書きしますか?\n" "現在の値 :\n" "%s, \n" "新しい値 :\n" "%s %1" #: ../src/common/docview.cpp:531 #, c-format msgid "Do you want to save changes to %s?" msgstr "変更結果を %s へ保存しますか?" #: ../src/common/prntbase.cpp:525 #, fuzzy msgid "Document:" msgstr "説明書 : " #: ../src/generic/aboutdlgg.cpp:73 msgid "Documentation by " msgstr "説明書 : " #: ../src/generic/aboutdlgg.cpp:180 msgid "Documentation writers" msgstr "説明書の著者" #: ../src/common/sizer.cpp:2680 msgid "Don't Save" msgstr "保存しない" #: ../src/msw/frame.cpp:122 ../src/html/htmlwin.cpp:611 msgid "Done" msgstr "完了" #: ../src/generic/progdlgg.cpp:481 ../src/msw/progdlg.cpp:407 msgid "Done." msgstr "完了しました。" #: ../src/richtext/richtextborderspage.cpp:544 #, fuzzy msgid "Dotted" msgstr "完了" #: ../src/richtext/richtextborderspage.cpp:546 #, fuzzy msgid "Double" msgstr "double値" #: ../src/common/paper.cpp:177 msgid "Double Japanese Postcard Rotated 148 x 200 mm" msgstr "往復はがき横置き 148×200mm" #: ../src/common/xtixml.cpp:273 #, c-format msgid "Doubly used id : %d" msgstr "識別子が重複しています: %d" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:153 msgid "Down" msgstr "下へ" #: ../src/richtext/richtextctrl.cpp:814 msgid "Drag" msgstr "" #: ../src/common/paper.cpp:101 msgid "E sheet, 34 x 44 in" msgstr "Eサイズシート, 34 x 44インチ" #: ../src/common/accelcmn.cpp:61 msgid "END" msgstr "END" #: ../src/common/accelcmn.cpp:52 msgid "ENTER" msgstr "ENTER" #: ../src/unix/fswatcher_inotify.cpp:535 msgid "EOF while reading from inotify descriptor" msgstr "inotify 記述子 %d の読み取り中にEOFを検出しました" #: ../src/common/accelcmn.cpp:64 msgid "ESC" msgstr "ESC" #: ../src/common/accelcmn.cpp:65 msgid "ESCAPE" msgstr "ESCAPE" #: ../src/common/accelcmn.cpp:73 msgid "EXECUTE" msgstr "EXECUTE" #: ../src/common/stockitem.cpp:154 #, fuzzy msgid "Edit" msgstr "編集(&E)" #: ../src/generic/editlbox.cpp:272 msgid "Edit item" msgstr "項目の編集" #: ../include/wx/generic/progdlgg.h:84 msgid "Elapsed time:" msgstr "経過時間:" #: ../src/richtext/richtextsizepage.cpp:353 #: ../src/richtext/richtextsizepage.cpp:355 #: ../src/richtext/richtextsizepage.cpp:465 #: ../src/richtext/richtextsizepage.cpp:467 msgid "Enable the height value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:438 #: ../src/richtext/richtextsizepage.cpp:440 #, fuzzy msgid "Enable the maximum width value." msgstr "最大幅を設定できませんでした。" #: ../src/richtext/richtextsizepage.cpp:411 #: ../src/richtext/richtextsizepage.cpp:413 msgid "Enable the minimum height value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:384 #: ../src/richtext/richtextsizepage.cpp:386 #, fuzzy msgid "Enable the minimum width value." msgstr "最小幅を設定できませんでした。" #: ../src/richtext/richtextsizepage.cpp:319 #: ../src/richtext/richtextsizepage.cpp:321 msgid "Enable the width value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:280 #: ../src/richtext/richtextsizepage.cpp:282 #, fuzzy msgid "Enable vertical alignment." msgstr "整列方法を設定できませんでした。" #: ../src/richtext/richtextbackgroundpage.cpp:133 #: ../src/richtext/richtextbackgroundpage.cpp:135 #, fuzzy msgid "Enables a background colour." msgstr "背景色" #: ../src/richtext/richtextstyledlg.cpp:931 #, fuzzy msgid "Enter a box style name" msgstr "新しいスタイル名を入力してください。" #: ../src/richtext/richtextstyledlg.cpp:603 msgid "Enter a character style name" msgstr "文字スタイル名を入力してください。" #: ../src/richtext/richtextstyledlg.cpp:817 msgid "Enter a list style name" msgstr "リストスタイル名を入力してください。" #: ../src/richtext/richtextstyledlg.cpp:890 msgid "Enter a new style name" msgstr "新しいスタイル名を入力してください。" #: ../src/richtext/richtextstyledlg.cpp:651 msgid "Enter a paragraph style name" msgstr "段落スタイル名を指定してください。" #: ../src/generic/dbgrptg.cpp:174 #, c-format msgid "Enter command to open file \"%s\":" msgstr "\"%s\" ファイルを開くためのコマンドを入力してください:" #: ../src/generic/helpext.cpp:463 msgid "Entries found" msgstr "候補が見つかりました" #: ../src/common/paper.cpp:143 msgid "Envelope Invite 220 x 220 mm" msgstr "封筒 Invite 220 x 220 mm" #: ../src/common/config.cpp:473 #, c-format msgid "" "Environment variables expansion failed: missing '%c' at position %u in '%s'." msgstr "" "環境変数拡張に失敗しました: '%c' が %u 文字目 ('%s' 内) に欠けています。" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/dirctrlg.cpp:688 #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:791 #: ../src/generic/filectrlg.cpp:805 ../src/generic/filectrlg.cpp:821 #: ../src/generic/filectrlg.cpp:1381 ../src/generic/filectrlg.cpp:1412 #: ../src/gtk/filedlg.cpp:73 ../src/gtk1/fontdlg.cpp:74 msgid "Error" msgstr "エラー" #: ../src/unix/epolldispatcher.cpp:103 msgid "Error closing epoll descriptor" msgstr "epoll記述子を閉じる際のエラー" #: ../src/unix/fswatcher_kqueue.cpp:114 msgid "Error closing kqueue instance" msgstr "kqueue 実体を閉じる際のエラー" #: ../src/generic/dirdlgg.cpp:251 msgid "Error creating directory" msgstr "ディレクトリー作成エラー" #: ../src/common/imagbmp.cpp:1103 msgid "Error in reading image DIB." msgstr "画像のDIB読み取りエラー。" #: ../src/propgrid/propgrid.cpp:6563 #, c-format msgid "Error in resource: %s" msgstr "リソースにエラー: %s" #: ../src/common/fileconf.cpp:453 msgid "Error reading config options." msgstr "設定オプションの読み取りエラー" #: ../src/common/fileconf.cpp:1064 msgid "Error saving user configuration data." msgstr "ユーザー設定データの保存中にエラーが発生しました。" #: ../src/gtk/print.cpp:671 msgid "Error while printing: " msgstr "印刷中にエラー発生: " #: ../src/common/log.cpp:223 msgid "Error: " msgstr "エラー:" #: ../src/common/fmapbase.cpp:150 msgid "Esperanto (ISO-8859-3)" msgstr "エスペラントほか (Latin-3, ISO-8859-3)" #: ../include/wx/generic/progdlgg.h:85 msgid "Estimated time:" msgstr "予定時間:" #: ../src/unix/fswatcher_inotify.cpp:639 msgid "Event queue overflowed" msgstr "イベントキューが溢れました" #: ../src/generic/dbgrptg.cpp:234 #, fuzzy msgid "Executable files (*.exe)|*.exe|" msgstr "実行ファイル (*.exe)|*.exe|すべてのファイル (*.*)|*.*||" #: ../src/common/stockitem.cpp:155 #, fuzzy msgid "Execute" msgstr "実行 (&E)" #: ../src/msw/utilsexc.cpp:888 #, c-format msgid "Execution of command '%s' failed" msgstr "コマンド '%s' を実行できませんでした。" #: ../src/os2/utilsexc.cpp:163 #, c-format msgid "Execution of command '%s' failed with error: %ul" msgstr "コマンド '%s' を実行できませんでした。エラーコード: %ul" #: ../src/common/paper.cpp:106 msgid "Executive, 7 1/4 x 10 1/2 in" msgstr "エグゼキュティブ, 7 1/4 x 10 1/2インチ" #: ../src/msw/registry.cpp:1230 #, c-format msgid "" "Exporting registry key: file \"%s\" already exists and won't be overwritten." msgstr "" "レジストリーのエクスポート: ファイル \"%s\" はすでに存在します。上書きも行い" "ません。" #: ../src/common/fmapbase.cpp:195 msgid "Extended Unix Codepage for Japanese (EUC-JP)" msgstr "日本語EUC (EUC-JP)" #: ../src/html/chm.cpp:725 #, c-format msgid "Extraction of '%s' into '%s' failed." msgstr "'%s' を '%s' に展開できませんでした。" #: ../src/common/accelcmn.cpp:238 ../src/common/accelcmn.cpp:333 msgid "F" msgstr "F" #: ../src/propgrid/advprops.cpp:640 msgid "Face Name" msgstr "フォント名" #: ../src/unix/snglinst.cpp:269 msgid "Failed to access lock file." msgstr "ロックファイルへアクセスできませんでした。" #: ../src/unix/epolldispatcher.cpp:116 #, c-format msgid "Failed to add descriptor %d to epoll descriptor %d" msgstr "記述子 %d を epoll 記述子 %d に追加できませんでした" #: ../src/msw/dib.cpp:548 #, c-format msgid "Failed to allocate %luKb of memory for bitmap data." msgstr "ビットマップデータ用のメモリ割り当て(%luKb)に失敗しました。" #: ../src/common/glcmn.cpp:87 msgid "Failed to allocate colour for OpenGL" msgstr "OpenGL に色を割り当てることができませんでした。" #: ../src/unix/displayx11.cpp:288 msgid "Failed to change video mode" msgstr "画面モード変更に失敗しました。" #: ../src/common/image.cpp:3139 #, fuzzy, c-format msgid "Failed to check format of image file \"%s\"." msgstr "ファイル \"%s\" にビットマップイメージを保存できませんでした。" #: ../src/common/debugrpt.cpp:244 #, c-format msgid "Failed to clean up debug report directory \"%s\"" msgstr "デバッグレポートディレクトリーを全削除できませんでした \"%s\"" #: ../src/common/filename.cpp:211 msgid "Failed to close file handle" msgstr "ファイルハンドルを閉じることができませんでした。" #: ../src/unix/snglinst.cpp:334 #, c-format msgid "Failed to close lock file '%s'" msgstr "ロックファイル '%s' を閉じることができませんでした。" #: ../src/msw/clipbrd.cpp:115 msgid "Failed to close the clipboard." msgstr "クリップボードを閉じることができませんでした。" #: ../src/x11/utils.cpp:204 #, c-format msgid "Failed to close the display \"%s\"" msgstr "ディスプレイ \"%s\" を閉じることができませんでした。" #: ../src/msw/dialup.cpp:818 msgid "Failed to connect: missing username/password." msgstr "接続に失敗: username/password が欠けています。" #: ../src/msw/dialup.cpp:764 msgid "Failed to connect: no ISP to dial." msgstr "接続失敗: ダイヤル先のISPがありません。" #: ../src/common/textfile.cpp:200 #, c-format msgid "Failed to convert file \"%s\" to Unicode." msgstr "ファイル \"%s\" を Unicode に変換できませんでした。" #: ../src/generic/logg.cpp:976 msgid "Failed to copy dialog contents to the clipboard." msgstr "ダイアログの内容をクリップボードにコピーできませんでした。" #: ../src/msw/registry.cpp:691 #, c-format msgid "Failed to copy registry value '%s'" msgstr "レジストリーの値 '%s' をコピーできませんでした。" #: ../src/msw/registry.cpp:700 #, c-format msgid "Failed to copy the contents of registry key '%s' to '%s'." msgstr "レジストリーキー '%s' の内容を '%s' へコピーできませんでした。" #: ../src/common/filefn.cpp:1058 #, c-format msgid "Failed to copy the file '%s' to '%s'" msgstr "ファイル '%s' を '%s' へコピーできませんでした。" #: ../src/msw/registry.cpp:678 #, c-format msgid "Failed to copy the registry subkey '%s' to '%s'." msgstr "レジストリーのサブキー '%s' を '%s' へコピーできませんでした。" #: ../src/msw/dde.cpp:1073 msgid "Failed to create DDE string" msgstr "DDE文字列を作成できませんでした。" #: ../src/msw/mdi.cpp:590 msgid "Failed to create MDI parent frame." msgstr "MDI親フレームを作成できませんでした。" #: ../src/common/filename.cpp:1080 msgid "Failed to create a temporary file name" msgstr "一時ファイルの名前を作成できませんでした。" #: ../src/msw/utilsexc.cpp:235 msgid "Failed to create an anonymous pipe" msgstr "匿名パイプを作成できませんでした。" #: ../src/msw/ole/automtn.cpp:522 #, fuzzy, c-format msgid "Failed to create an instance of \"%s\"" msgstr "ディレクトリー \"%s\" を作成できませんでした。" #: ../src/msw/dde.cpp:442 #, c-format msgid "Failed to create connection to server '%s' on topic '%s'" msgstr "サーバー '%s' へのトピック '%s' 接続を確立できませんでした。" #: ../src/msw/cursor.cpp:212 msgid "Failed to create cursor." msgstr "カーソルを作成できませんでした。" #: ../src/common/debugrpt.cpp:209 #, c-format msgid "Failed to create directory \"%s\"" msgstr "ディレクトリー \"%s\" を作成できませんでした。" #: ../src/generic/dirdlgg.cpp:249 #, c-format msgid "" "Failed to create directory '%s'\n" "(Do you have the required permissions?)" msgstr "" "'%s' を作成できませんでした。\n" "処理に必要なパーミッションをお持ちですか?" #: ../src/unix/epolldispatcher.cpp:84 msgid "Failed to create epoll descriptor" msgstr "epoll 記述子を作成できませんでした" #: ../src/msw/mimetype.cpp:198 #, c-format msgid "Failed to create registry entry for '%s' files." msgstr "'%s' 用のレジストリエントリを作成できませんでした。" #: ../src/msw/fdrepdlg.cpp:442 #, c-format msgid "Failed to create the standard find/replace dialog (error code %d)" msgstr "標準の検索置換ダイアログを作成できませんでした (エラーコード %d)" #: ../src/unix/wakeuppipe.cpp:52 msgid "Failed to create wake up pipe used by event loop." msgstr "イベントループが使う起動パイプの作成に失敗しました。" #: ../src/html/winpars.cpp:739 #, c-format msgid "Failed to display HTML document in %s encoding" msgstr "%s エンコーディングで HTML 文書を表示できませんでした。" #: ../src/msw/clipbrd.cpp:127 msgid "Failed to empty the clipboard." msgstr "クリップボードを空にできませんでした。" #: ../src/unix/displayx11.cpp:265 msgid "Failed to enumerate video modes" msgstr "画面モードを列挙できませんでした。" #: ../src/msw/dde.cpp:727 msgid "Failed to establish an advise loop with DDE server" msgstr "DDE サーバーとのアドバイスループを確立できませんでした。" #: ../src/msw/dialup.cpp:650 ../src/msw/dialup.cpp:884 #, c-format msgid "Failed to establish dialup connection: %s" msgstr "ダイヤルアップ接続を確立できませんでした: %s" #: ../src/unix/utilsunx.cpp:617 #, c-format msgid "Failed to execute '%s'\n" msgstr "'%s' の実行に失敗しました\n" #: ../src/common/debugrpt.cpp:725 msgid "Failed to execute curl, please install it in PATH." msgstr "curl を実行できません。PATHの参照先にインストールしてください。" #: ../src/msw/ole/automtn.cpp:505 #, fuzzy, c-format msgid "Failed to find CLSID of \"%s\"" msgstr "リソース \"%s\" を読み取れませんでした。" #: ../src/common/regex.cpp:434 ../src/common/regex.cpp:482 #, c-format msgid "Failed to find match for regular expression: %s" msgstr "正規表現に合致する部分が見つかりませんでした: %s" #: ../src/msw/dialup.cpp:716 #, c-format msgid "Failed to get ISP names: %s" msgstr "ISP名を取得できませんでした: %s" #: ../src/msw/ole/automtn.cpp:574 #, fuzzy, c-format msgid "Failed to get OLE automation interface for \"%s\"" msgstr "ディレクトリー \"%s\" を作成できませんでした。" #: ../src/msw/clipbrd.cpp:747 msgid "Failed to get data from the clipboard" msgstr "クリップボードからデータを取得できませんでした。" #: ../src/common/time.cpp:249 msgid "Failed to get the local system time" msgstr "ローカルのシステム時刻を取得できませんでした。" #: ../src/common/filefn.cpp:1453 msgid "Failed to get the working directory" msgstr "作業ディレクトリーを取得できませんでした。" #: ../src/univ/theme.cpp:113 msgid "Failed to initialize GUI: no built-in themes found." msgstr "GUIの初期化に失敗: ビルトインテーマがありません。" #: ../src/msw/helpchm.cpp:63 msgid "Failed to initialize MS HTML Help." msgstr "Microsoft HTML Help を初期化できませんでした。" #: ../src/msw/glcanvas.cpp:892 msgid "Failed to initialize OpenGL" msgstr "OpenGLを初期化できませんでした。" #: ../src/msw/dialup.cpp:879 #, c-format msgid "Failed to initiate dialup connection: %s" msgstr "ダイヤルアップ接続の初期化に失敗しました: %s " #: ../src/gtk/textctrl.cpp:1117 msgid "Failed to insert text in the control." msgstr "そのコントロールにテキストを挿入できませんでした。" #: ../src/unix/snglinst.cpp:241 #, c-format msgid "Failed to inspect the lock file '%s'" msgstr "ロックファイル '%s' を検査できませんでした" #: ../src/unix/appunix.cpp:182 msgid "Failed to install signal handler" msgstr "シグナルハンドラーのインストールに失敗しました。" #: ../src/unix/threadpsx.cpp:1162 msgid "" "Failed to join a thread, potential memory leak detected - please restart the " "program" msgstr "" "スレッド接合に失敗しました。メモリリーク発生の可能性があります。プログラムを" "再起動してください。" #: ../src/msw/utils.cpp:745 #, c-format msgid "Failed to kill process %d" msgstr "プロセス %d の kill に失敗しました" #: ../src/common/image.cpp:2365 #, fuzzy, c-format msgid "Failed to load bitmap \"%s\" from resources." msgstr "画像 %d をストリームから読み取れませんでした。" #: ../src/common/image.cpp:2374 #, fuzzy, c-format msgid "Failed to load icon \"%s\" from resources." msgstr "画像 %d をストリームから読み取れませんでした。" #: ../src/common/iconbndl.cpp:182 #, c-format msgid "Failed to load image %%d from file '%s'." msgstr "画像 %%d をファイル '%s' から読み取れませんでした。" #: ../src/common/iconbndl.cpp:190 #, c-format msgid "Failed to load image %d from stream." msgstr "画像 %d をストリームから読み取れませんでした。" #: ../src/common/image.cpp:2450 ../src/common/image.cpp:2469 #, fuzzy, c-format msgid "Failed to load image from file \"%s\"." msgstr "ファイル \"%s\" からメタファイルを読み取れませんでした。" #: ../src/msw/enhmeta.cpp:97 #, c-format msgid "Failed to load metafile from file \"%s\"." msgstr "ファイル \"%s\" からメタファイルを読み取れませんでした。" #: ../src/msw/volume.cpp:327 msgid "Failed to load mpr.dll." msgstr "mpr.dll を読み取れませんでした。" #: ../src/msw/utils.cpp:1120 #, c-format msgid "Failed to load resource \"%s\"." msgstr "リソース \"%s\" を読み取れませんでした。" #: ../src/common/dynlib.cpp:100 #, c-format msgid "Failed to load shared library '%s'" msgstr "共有ライブラリ '%s' を読み取れませんでした。" #: ../src/msw/utils.cpp:1127 #, c-format msgid "Failed to lock resource \"%s\"." msgstr "リソース \"%s\" をロックできませんでした。" #: ../src/unix/snglinst.cpp:198 #, c-format msgid "Failed to lock the lock file '%s'" msgstr "ロックファイル '%s' をロックできませんでした" #: ../src/unix/epolldispatcher.cpp:136 #, c-format msgid "Failed to modify descriptor %d in epoll descriptor %d" msgstr "記述子 %d の変更が epoll 記述子 %d 内でできませんでした" #: ../src/common/filename.cpp:2681 #, c-format msgid "Failed to modify file times for '%s'" msgstr "'%s' のファイル時刻を変更できませんでした" #: ../src/common/selectdispatcher.cpp:252 msgid "Failed to monitor I/O channels" msgstr "I/O チャンネルの監視に失敗しました。" #: ../src/common/filename.cpp:194 #, c-format msgid "Failed to open '%s' for reading" msgstr "読み取りのためのファイル '%s' を開くことができません" #: ../src/common/filename.cpp:199 #, c-format msgid "Failed to open '%s' for writing" msgstr "ファイル '%s' を書き込み用に開くことができません" #: ../src/html/chm.cpp:141 #, c-format msgid "Failed to open CHM archive '%s'." msgstr "CHM 書庫 '%s' を開くことができませんでした。" #: ../src/common/utilscmn.cpp:1135 #, c-format msgid "Failed to open URL \"%s\" in default browser." msgstr "デフォルトブラウザでURL \"%s\" を開けませんでした。" #: ../include/wx/msw/private/fswatcher.h:92 #, c-format msgid "Failed to open directory \"%s\" for monitoring." msgstr "監視対象のディレクトリー \"%s\" を開くことができませんでした。" #: ../src/x11/utils.cpp:223 #, c-format msgid "Failed to open display \"%s\"." msgstr "ディスプレイ \"%s\" を開くことができませんでした。" #: ../src/common/filename.cpp:1115 msgid "Failed to open temporary file." msgstr "一時ファイルを開くことができませんでした。" #: ../src/msw/clipbrd.cpp:94 msgid "Failed to open the clipboard." msgstr "クリップボードを開くことができませんでした。" #: ../src/common/translation.cpp:1170 #, c-format msgid "Failed to parse Plural-Forms: '%s'" msgstr "複数形を解析できません: '%s'" #: ../src/unix/mediactrl.cpp:1268 #, fuzzy, c-format msgid "Failed to prepare playing \"%s\"." msgstr "ディスプレイ \"%s\" を開くことができませんでした。" #: ../src/msw/clipbrd.cpp:647 msgid "Failed to put data on the clipboard" msgstr "データをクリップボードに置けませんでした。" #: ../src/unix/snglinst.cpp:278 msgid "Failed to read PID from lock file." msgstr "ロックファイルからPIDを読み取れませんでした。" #: ../src/common/fileconf.cpp:464 msgid "Failed to read config options." msgstr "設定オプションを読み取ることができませんでした。" #: ../src/common/docview.cpp:678 #, c-format msgid "Failed to read document from the file \"%s\"." msgstr "ファイル \"%s\" から文書を読み取れませんでした。" #: ../src/dfb/evtloop.cpp:98 msgid "Failed to read event from DirectFB pipe" msgstr "DirectFB パイプからのイベント読み取りに失敗しました。" #: ../src/unix/wakeuppipe.cpp:120 msgid "Failed to read from wake-up pipe" msgstr "起動パイプからの読み取りに失敗しました。" #: ../src/unix/utilsunx.cpp:685 msgid "Failed to redirect child process input/output" msgstr "子プロセスの入出力をリダイレクトできませんでした。" #: ../src/msw/utilsexc.cpp:697 msgid "Failed to redirect the child process IO" msgstr "子プロセスの入出力をリダイレクトできませんでした。" #: ../src/msw/dde.cpp:293 #, c-format msgid "Failed to register DDE server '%s'" msgstr "DDEサーバー '%s' を登録できませんでした。" #: ../src/common/fontmap.cpp:245 #, c-format msgid "Failed to remember the encoding for the charset '%s'." msgstr "文字集合 '%s' に対するエンコーディングの記録に失敗しました。" #: ../src/common/debugrpt.cpp:227 #, c-format msgid "Failed to remove debug report file \"%s\"" msgstr "デバッグレポートファイル \"%s\" を削除できませんでした。" #: ../src/unix/snglinst.cpp:322 #, c-format msgid "Failed to remove lock file '%s'" msgstr "ロックファイル '%s' を削除できませんでした。" #: ../src/unix/snglinst.cpp:288 #, c-format msgid "Failed to remove stale lock file '%s'." msgstr "失効ロックファイル '%s' を削除できませんでした。" #: ../src/msw/registry.cpp:528 #, c-format msgid "Failed to rename registry value '%s' to '%s'." msgstr "レジストリーの値を '%s' から '%s' に改名できませんでした。" #: ../src/common/filefn.cpp:1168 #, c-format msgid "" "Failed to rename the file '%s' to '%s' because the destination file already " "exists." msgstr "" "ファイル '%s' を '%s' に改名できませんでした。改名先のファイルがすでに存在し" "ています。" #: ../src/msw/registry.cpp:633 #, c-format msgid "Failed to rename the registry key '%s' to '%s'." msgstr "レジストリーキー '%s' を '%s' に改名できませんでした。" #: ../src/msw/clipbrd.cpp:497 msgid "Failed to retrieve data from the clipboard." msgstr "クリップボードからデータを受け取ることができませんでした。" #: ../src/common/filename.cpp:2777 #, c-format msgid "Failed to retrieve file times for '%s'" msgstr "'%s' のファイル時刻を取得できませんでした。" #: ../src/msw/dialup.cpp:487 msgid "Failed to retrieve text of RAS error message" msgstr "RAS エラーメッセージのテキストを取得できませんでした。" #: ../src/msw/clipbrd.cpp:784 msgid "Failed to retrieve the supported clipboard formats" msgstr "対応しているクリップボードの様式を取得できませんでした。" #: ../src/common/docview.cpp:649 #, c-format msgid "Failed to save document to the file \"%s\"." msgstr "文書をファイル \"%s\" に保存できませんでした。" #: ../src/msw/dib.cpp:326 #, c-format msgid "Failed to save the bitmap image to file \"%s\"." msgstr "ファイル \"%s\" にビットマップイメージを保存できませんでした。" #: ../src/msw/dde.cpp:768 msgid "Failed to send DDE advise notification" msgstr "DDE アドバイス通知を送信できませんでした。" #: ../src/common/ftp.cpp:404 #, c-format msgid "Failed to set FTP transfer mode to %s." msgstr "FTP転送モードを %s に変更できませんでした。" #: ../src/msw/clipbrd.cpp:373 msgid "Failed to set clipboard data." msgstr "クリップボードデータを設定できませんでした。" #: ../src/unix/snglinst.cpp:181 #, c-format msgid "Failed to set permissions on lock file '%s'" msgstr "ロックファイル '%s' のパーミッションを設定できませんでした。" #: ../src/unix/utilsunx.cpp:674 #, fuzzy msgid "Failed to set process priority" msgstr "スレッド優先度を %d に設定できませんでした。" #: ../src/common/file.cpp:576 msgid "Failed to set temporary file permissions" msgstr "一時ファイルのパーミッションを設定できませんでした。" #: ../src/gtk/textctrl.cpp:1058 msgid "Failed to set text in the text control." msgstr "そのテキストコントロールにテキストを設定できませんでした。" #: ../src/unix/threadpsx.cpp:1293 #, fuzzy, c-format msgid "Failed to set thread concurrency level to %lu" msgstr "スレッド優先度を %d に設定できませんでした。" #: ../src/unix/threadpsx.cpp:1377 ../src/unix/threadpsx.cpp:1387 #, c-format msgid "Failed to set thread priority %d." msgstr "スレッド優先度を %d に設定できませんでした。" #: ../src/unix/utilsunx.cpp:791 msgid "Failed to set up non-blocking pipe, the program might hang." msgstr "" #: ../src/common/fs_mem.cpp:261 #, c-format msgid "Failed to store image '%s' to memory VFS!" msgstr "メモリーVFS にイメージ '%s' を格納できませんでした。" #: ../src/dfb/evtloop.cpp:170 msgid "Failed to switch DirectFB pipe to non-blocking mode" msgstr "" "DirectFB パイプを non-blocking モードに切り替えることができませんでした" #: ../src/unix/wakeuppipe.cpp:59 msgid "Failed to switch wake up pipe to non-blocking mode" msgstr "起動パイプをnon-blockingモードに切り替えることができませんでした" #: ../src/unix/threadpsx.cpp:1569 msgid "Failed to terminate a thread." msgstr "スレッドを終了できませんでした。" #: ../src/msw/dde.cpp:746 msgid "Failed to terminate the advise loop with DDE server" msgstr "DDE サーバ他とのアドバイスループを終了できませんでした。" #: ../src/msw/dialup.cpp:959 #, c-format msgid "Failed to terminate the dialup connection: %s" msgstr "ダイヤルアップ接続を終了できませんでした: %s" #: ../src/common/filename.cpp:2696 #, c-format msgid "Failed to touch the file '%s'" msgstr "ファイル '%s' の属性を変更できませんでした。" #: ../src/unix/snglinst.cpp:328 #, c-format msgid "Failed to unlock lock file '%s'" msgstr "ロックファイル '%s' のロック解除ができませんでした。" #: ../src/msw/dde.cpp:314 #, c-format msgid "Failed to unregister DDE server '%s'" msgstr "DDE サーバ '%s' の登録を削除できませんでした。" #: ../src/unix/epolldispatcher.cpp:155 #, c-format msgid "Failed to unregister descriptor %d from epoll descriptor %d" msgstr "記述子 %d を epoll記述子 %d から削除できませんでした。" #: ../src/common/fileconf.cpp:1037 msgid "Failed to update user configuration file." msgstr "ユーザー設定ファイルを更新できませんでした。" #: ../src/common/debugrpt.cpp:738 #, c-format msgid "Failed to upload the debug report (error code %d)." msgstr "デバッグレポートのアップロードができませんでした (エラーコード %d)。" #: ../src/unix/snglinst.cpp:168 #, c-format msgid "Failed to write to lock file '%s'" msgstr "ロックファイル '%s' に書き込めませんでした。" #: ../src/propgrid/propgrid.cpp:172 msgid "False" msgstr "偽" #: ../src/propgrid/advprops.cpp:658 msgid "Family" msgstr "フォントファミリー" #: ../src/common/stockitem.cpp:157 ../src/msw/wince/filedlgwce.cpp:121 msgid "File" msgstr "ファイル" #: ../src/common/docview.cpp:666 #, c-format msgid "File \"%s\" could not be opened for reading." msgstr "ファイル '%s' を読み取ろうとしましたが開くことができません" #: ../src/common/docview.cpp:643 #, c-format msgid "File \"%s\" could not be opened for writing." msgstr "ファイル '%s' に書き込もうとしましたが開くことができません" #: ../src/gtk/filedlg.cpp:56 #, c-format msgid "File '%s' already exists, do you really want to overwrite it?" msgstr "ファイル %s はすでに存在します。上書きしてよろしいですか?" #: ../src/os2/filedlg.cpp:310 #, c-format msgid "" "File '%s' already exists.\n" "Do you want to replace it?" msgstr "" "ファイル '%s' はすでに存在します。\n" "置き換えますか?" #: ../src/common/filefn.cpp:1207 #, fuzzy, c-format msgid "File '%s' couldn't be removed" msgstr "ファイル '%s' を開くことができません。" #: ../src/common/filefn.cpp:1187 #, fuzzy, c-format msgid "File '%s' couldn't be renamed '%s'" msgstr "ファイル '%s' を開くことができません。" #: ../src/richtext/richtextctrl.cpp:2688 ../src/common/textcmn.cpp:921 msgid "File couldn't be loaded." msgstr "ファイルを読み取ることができません。" #: ../src/msw/filedlg.cpp:458 #, c-format msgid "File dialog failed with error code %0lx." msgstr "ファイルダイアログがエラー %0lx で失敗しました。" #: ../src/common/docview.cpp:1771 msgid "File error" msgstr "ファイルエラー" #: ../src/generic/dirctrlg.cpp:688 ../src/generic/filectrlg.cpp:805 msgid "File name exists already." msgstr "その名前のファイルはすでに存在します。" #: ../src/motif/filedlg.cpp:220 msgid "Files" msgstr "ファイル" #: ../src/common/filefn.cpp:1761 #, c-format msgid "Files (%s)" msgstr "ファイル (%s)" #: ../src/motif/filedlg.cpp:218 msgid "Filter" msgstr "フィルター" #: ../src/common/stockitem.cpp:158 ../src/html/helpwnd.cpp:500 msgid "Find" msgstr "検索" #: ../src/common/stockitem.cpp:159 #, fuzzy msgid "First" msgstr "最初 (&F)" #: ../src/common/prntbase.cpp:1518 #, fuzzy msgid "First page" msgstr "次のページ" #: ../src/richtext/richtextsizepage.cpp:521 #, fuzzy msgid "Fixed" msgstr "固定幅フォント:" #: ../src/html/helpwnd.cpp:1219 msgid "Fixed font:" msgstr "固定幅フォント:" #: ../src/html/helpwnd.cpp:1282 msgid "Fixed size face.
    bold italic " msgstr "固定幅。
    太字イタリック" #: ../src/richtext/richtextsizepage.cpp:229 msgid "Floating" msgstr "" #: ../src/common/stockitem.cpp:160 #, fuzzy msgid "Floppy" msgstr "フロッピーディスク (&F)" #: ../src/common/paper.cpp:112 msgid "Folio, 8 1/2 x 13 in" msgstr "フォリオ, 8 1/2 x 13インチ" #: ../src/richtext/richtextformatdlg.cpp:324 ../src/osx/carbon/fontdlg.cpp:473 #: ../src/common/stockitem.cpp:194 msgid "Font" msgstr "フォント" #: ../src/richtext/richtextfontpage.cpp:230 msgid "Font &weight:" msgstr "フォントのウエイト(&W):" #: ../src/html/helpwnd.cpp:1220 msgid "Font size:" msgstr "フォントの大きさ:" #: ../src/richtext/richtextfontpage.cpp:217 msgid "Font st&yle:" msgstr "フォントのスタイル(&Y):" #: ../src/osx/carbon/fontdlg.cpp:515 msgid "Font:" msgstr "フォント:" #: ../src/dfb/fontmgr.cpp:198 #, c-format msgid "Fonts index file %s disappeared while loading fonts." msgstr "フォントの読み取り中に索引ファイル %s が失われました。" #: ../src/unix/utilsunx.cpp:651 msgid "Fork failed" msgstr "フォークに失敗しました" #: ../src/common/stockitem.cpp:161 #, fuzzy msgid "Forward" msgstr "進行 (&F)" #: ../src/common/xtixml.cpp:235 msgid "Forward hrefs are not supported" msgstr "前方参照のhrefには未対応です" #: ../src/html/helpwnd.cpp:888 #, c-format msgid "Found %i matches" msgstr "%i 件の該当部を発見" #: ../src/generic/prntdlgg.cpp:238 msgid "From:" msgstr "開始ページ:" #: ../src/common/imaggif.cpp:160 msgid "GIF: Invalid gif index." msgstr "GIF: gifの索引が正しくないようです。" #: ../src/common/imaggif.cpp:150 msgid "GIF: data stream seems to be truncated." msgstr "GIF: データストリームに欠落があるようです。" #: ../src/common/imaggif.cpp:134 msgid "GIF: error in GIF image format." msgstr "GIF: GIF画像形式にエラーがありました。" #: ../src/common/imaggif.cpp:137 msgid "GIF: not enough memory." msgstr "GIF: メモリ不足です。" #: ../src/common/imaggif.cpp:140 msgid "GIF: unknown error!!!" msgstr "GIF: 未知のエラーを検出しました。" #: ../src/gtk/window.cpp:4288 msgid "" "GTK+ installed on this machine is too old to support screen compositing, " "please install GTK+ 2.12 or later." msgstr "" #: ../src/univ/themes/gtk.cpp:525 msgid "GTK+ theme" msgstr "GTK+ テーマ" #: ../src/common/preferencescmn.cpp:39 msgid "General" msgstr "" #: ../src/common/prntbase.cpp:243 msgid "Generic PostScript" msgstr "汎用 PostScipt" #: ../src/common/paper.cpp:136 msgid "German Legal Fanfold, 8 1/2 x 13 in" msgstr "ドイツリーガル折りたたみ連続紙, 8 1/2 x 13インチ" #: ../src/common/paper.cpp:135 msgid "German Std Fanfold, 8 1/2 x 12 in" msgstr "ドイツ標準折りたたみ連続紙, 8 1/2 x 12インチ" #: ../include/wx/xtiprop.h:188 msgid "GetProperty called w/o valid getter" msgstr "適切な getter なしに GetPropertyが呼び出されました。" #: ../include/wx/xtiprop.h:266 msgid "GetPropertyCollection called on a generic accessor" msgstr "汎用アクセサーに対して GetPropertyCollection が呼び出されました。" #: ../include/wx/xtiprop.h:206 msgid "GetPropertyCollection called w/o valid collection getter" msgstr "" "適切なコレクション getter なしに GetPropertyCollection が呼び出されました。" #: ../src/html/helpwnd.cpp:673 msgid "Go back" msgstr "戻る" #: ../src/html/helpwnd.cpp:674 msgid "Go forward" msgstr "進む" #: ../src/html/helpwnd.cpp:676 msgid "Go one level up in document hierarchy" msgstr "文書構造のひとつ上へ" #: ../src/generic/filedlgg.cpp:223 ../src/generic/dirdlgg.cpp:136 msgid "Go to home directory" msgstr "ホームディレクトリーへ移動" #: ../src/generic/filedlgg.cpp:219 msgid "Go to parent directory" msgstr "親ディレクトリーへ移動" #: ../src/generic/aboutdlgg.cpp:76 msgid "Graphics art by " msgstr "デザイナー" #: ../src/common/fmapbase.cpp:154 msgid "Greek (ISO-8859-7)" msgstr "ギリシャ語 (ISO-8859-7)" #: ../src/richtext/richtextborderspage.cpp:547 msgid "Groove" msgstr "" #: ../src/common/zstream.cpp:158 ../src/common/zstream.cpp:318 msgid "Gzip not supported by this version of zlib" msgstr "このバージョンの zlib は Gzip を処理できません" #: ../src/common/accelcmn.cpp:75 msgid "HELP" msgstr "HELP" #: ../src/common/accelcmn.cpp:60 msgid "HOME" msgstr "HOME" #: ../src/html/helpwnd.cpp:1552 msgid "HTML Help Project (*.hhp)|*.hhp|" msgstr "HTMLヘルププロジェクト (*.hhp)|*.hhp|" #: ../src/html/htmlwin.cpp:659 #, c-format msgid "HTML anchor %s does not exist." msgstr "HTMLアンカー %s は存在しません。" #: ../src/html/helpwnd.cpp:1550 msgid "HTML files (*.html;*.htm)|*.html;*.htm|" msgstr "HTML ファイル (*.html;*.htm)|*.html;*.htm|" #: ../src/common/stockitem.cpp:162 #, fuzzy msgid "Harddisk" msgstr "ハードディスク (&H)" #: ../src/common/fmapbase.cpp:155 msgid "Hebrew (ISO-8859-8)" msgstr "ヘブライ語 (ISO-8859-8)" #: ../include/wx/msgdlg.h:275 ../src/osx/button_osx.cpp:39 #: ../src/common/stockitem.cpp:163 ../src/html/helpdlg.cpp:66 #: ../src/html/helpfrm.cpp:116 msgid "Help" msgstr "ヘルプ" #: ../src/html/helpwnd.cpp:1213 msgid "Help Browser Options" msgstr "ヘルプブラウザのオプション" #: ../src/generic/helpext.cpp:458 ../src/generic/helpext.cpp:459 msgid "Help Index" msgstr "ヘルプの索引" #: ../src/html/helpwnd.cpp:1534 msgid "Help Printing" msgstr "ヘルプの印刷" #: ../src/html/helpwnd.cpp:814 msgid "Help Topics" msgstr "ヘルプトピック" #: ../src/html/helpwnd.cpp:1551 msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|" msgstr "ヘルプブック (*.htb)|*.htb|ヘルプブック (*.zip)|*.zip|" #: ../src/generic/helpext.cpp:271 #, c-format msgid "Help directory \"%s\" not found." msgstr "ヘルプディレクトリー \"%s\" が見つかりません。" #: ../src/generic/helpext.cpp:279 #, c-format msgid "Help file \"%s\" not found." msgstr "ヘルプファイル \"%s\" が見つかりません。" #: ../src/html/helpctrl.cpp:63 #, c-format msgid "Help: %s" msgstr "ヘルプ: %s" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:649 #, fuzzy, c-format msgid "Hide %s" msgstr "ヘルプ: %s" #: ../src/osx/menu_osx.cpp:604 ../src/osx/menu_osx.cpp:651 msgid "Hide Others" msgstr "" #: ../src/generic/infobar.cpp:85 msgid "Hide this notification message." msgstr "この通知メッセージを隠します。" #: ../src/generic/dirdlgg.cpp:98 ../src/common/stockitem.cpp:164 msgid "Home" msgstr "ホーム" #: ../src/generic/dirctrlg.cpp:624 msgid "Home directory" msgstr "ホームディレクトリー" #: ../src/richtext/richtextsizepage.cpp:253 #: ../src/richtext/richtextsizepage.cpp:255 msgid "How the object will float relative to the text." msgstr "" #: ../src/common/imagbmp.cpp:1118 msgid "ICO: Error in reading mask DIB." msgstr "ICO: マスクDIBの読み取り中にエラーを検出しました。" #: ../src/common/imagbmp.cpp:1233 ../src/common/imagbmp.cpp:1294 #: ../src/common/imagbmp.cpp:1305 ../src/common/imagbmp.cpp:1318 #: ../src/common/imagbmp.cpp:1363 ../src/common/imagbmp.cpp:1375 #: ../src/common/imagbmp.cpp:1386 msgid "ICO: Error writing the image file!" msgstr "ICO: 画像ファイルの書き出し中にエラーが発生しました。" #: ../src/common/imagbmp.cpp:1198 msgid "ICO: Image too tall for an icon." msgstr "ICO: 縦に長すぎます。アイコンに変換できません。" #: ../src/common/imagbmp.cpp:1206 msgid "ICO: Image too wide for an icon." msgstr "ICO: 幅が大きすぎます。アイコンに変換できません。" #: ../src/common/imagbmp.cpp:1466 msgid "ICO: Invalid icon index." msgstr "ICO: アイコンの索引が不正のようです。" #: ../src/common/imagiff.cpp:759 msgid "IFF: data stream seems to be truncated." msgstr "IFF: データストリームに欠落があるようです。" #: ../src/common/imagiff.cpp:743 msgid "IFF: error in IFF image format." msgstr "IFF: IFF画像形式にエラーがありました。" #: ../src/common/imagiff.cpp:746 msgid "IFF: not enough memory." msgstr "IFF: メモリ不足です。" #: ../src/common/imagiff.cpp:749 msgid "IFF: unknown error!!!" msgstr "IFF: 未対応のエラーが発生しました。" #: ../src/common/accelcmn.cpp:50 msgid "INS" msgstr "INS" #: ../src/common/accelcmn.cpp:51 msgid "INSERT" msgstr "INSERT" #: ../src/common/fmapbase.cpp:197 msgid "ISO-2022-JP" msgstr "ISO-2022-JP" #: ../src/osx/carbon/dataview.cpp:2420 msgid "Icon & text renderer cannot render value; value type: " msgstr "アイコンとテキストのレンダラーが値を処理できません; 値の型: " #: ../src/html/htmprint.cpp:282 msgid "" "If possible, try changing the layout parameters to make the printout more " "narrow." msgstr "出力結果がより狭い範囲に収まるように印刷設定値を変更してください。" #: ../src/generic/dbgrptg.cpp:358 msgid "" "If you have any additional information pertaining to this bug\n" "report, please enter it here and it will be joined to it:" msgstr "" "このバグレポートに関連する追加情報をお持ちの場合は\n" "ここに記入頂くことでバグレポートに追加されます:" #: ../src/generic/dbgrptg.cpp:324 msgid "" "If you wish to suppress this debug report completely, please choose the " "\"Cancel\" button,\n" "but be warned that it may hinder improving the program, so if\n" "at all possible please do continue with the report generation.\n" msgstr "" "以後のデバッグレポート表示を完全に抑制したい場合は\"キャンセル\"ボタンを使っ" "てください。\n" "ただし、その抑制指示はプログラムの修正を遠ざけることになりますので\n" "できる限りレポート生成を続けるようにしてください。\n" #: ../src/msw/registry.cpp:1395 #, c-format msgid "Ignoring value \"%s\" of the key \"%s\"." msgstr "値 \"%s\" を無視します (キー \"%s\")。" #: ../src/common/xtistrm.cpp:299 msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source" msgstr "wxEvtHandler ではないオブジェクトクラスがイベントソースになっています" #: ../src/common/xti.cpp:513 msgid "Illegal Parameter Count for ConstructObject Method" msgstr "ConstructObject メソッドに不正なカウント引数が与えられました。" #: ../src/common/xti.cpp:501 msgid "Illegal Parameter Count for Create Method" msgstr "Create メソッドに不正なカウント引数が与えられました。" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/filectrlg.cpp:791 msgid "Illegal directory name." msgstr "不正なディレクトリー名です。" #: ../src/generic/filectrlg.cpp:1380 msgid "Illegal file specification." msgstr "ファイル記述子が不正です。" #: ../src/common/image.cpp:2158 msgid "Image and mask have different sizes." msgstr "画像とマスクが異なる大きさになっています。" #: ../src/common/image.cpp:2609 #, fuzzy, c-format msgid "Image file is not of type %d." msgstr "画像ファイルは %ld 形式ではないようです。" #: ../src/common/image.cpp:2739 #, fuzzy, c-format msgid "Image is not of type %s." msgstr "画像ファイルは %s 形式ではないようです。" #: ../src/msw/textctrl.cpp:399 msgid "" "Impossible to create a rich edit control, using simple text control instead. " "Please reinstall riched32.dll" msgstr "" "リッチエディットコントロールを作成できませんでした。代わりに簡素なテキストコ" "ントロールを使います。 riched32.dllを再インストールしてください。" #: ../src/unix/utilsunx.cpp:307 msgid "Impossible to get child process input" msgstr "子プロセスの入力は取得不可能です。" #: ../src/common/filefn.cpp:1074 #, c-format msgid "Impossible to get permissions for file '%s'" msgstr "ファイル '%s' へのパーミッションは取得不可能です" #: ../src/common/filefn.cpp:1088 #, c-format msgid "Impossible to overwrite the file '%s'" msgstr "ファイル '%s' の上書きは不可能です" #: ../src/common/filefn.cpp:1142 #, c-format msgid "Impossible to set permissions for the file '%s'" msgstr "ファイル '%s' へのパーミッションは設定不可能です" #: ../src/common/gifdecod.cpp:818 #, c-format msgid "Incorrect GIF frame size (%u, %d) for the frame #%u" msgstr "GIF フレームの大きさ (%u, %d) が不適切です (フレーム #%u)" #: ../src/msw/ole/automtn.cpp:624 msgid "Incorrect number of arguments." msgstr "" #: ../src/common/stockitem.cpp:165 msgid "Indent" msgstr "字下げ" #: ../src/richtext/richtextformatdlg.cpp:330 msgid "Indents && Spacing" msgstr "字下げと間隔" #: ../src/common/stockitem.cpp:166 ../src/html/helpwnd.cpp:525 msgid "Index" msgstr "索引" #: ../src/common/fmapbase.cpp:159 msgid "Indian (ISO-8859-12)" msgstr "ISO-8859-12 (ケルト語→14/デーヴァナーガリー→破棄)" #: ../src/common/stockitem.cpp:167 #, fuzzy msgid "Info" msgstr "情報 (&I)" #: ../src/common/init.cpp:276 msgid "Initialization failed in post init, aborting." msgstr "PostInit の初期化に失敗しました。中断します。" #: ../src/richtext/richtextsymboldlg.cpp:472 msgid "Insert" msgstr "挿入" #: ../src/richtext/richtextbuffer.cpp:7687 #, fuzzy msgid "Insert Field" msgstr "テキストの挿入" #: ../src/richtext/richtextbuffer.cpp:7598 #: ../src/richtext/richtextbuffer.cpp:8551 msgid "Insert Image" msgstr "画像の挿入" #: ../src/richtext/richtextbuffer.cpp:7645 #, fuzzy msgid "Insert Object" msgstr "テキストの挿入" #: ../src/richtext/richtextctrl.cpp:1172 ../src/richtext/richtextctrl.cpp:1362 #: ../src/richtext/richtextbuffer.cpp:7440 #: ../src/richtext/richtextbuffer.cpp:7470 #: ../src/richtext/richtextbuffer.cpp:7514 msgid "Insert Text" msgstr "テキストの挿入" #: ../src/richtext/richtextindentspage.cpp:295 #: ../src/richtext/richtextindentspage.cpp:297 #, fuzzy msgid "Inserts a page break before the paragraph." msgstr "段落の前の空間を指定します。" #: ../src/richtext/richtextborderspage.cpp:549 #, fuzzy msgid "Inset" msgstr "挿入" #: ../src/gtk/app.cpp:429 #, c-format msgid "Invalid GTK+ command line option, use \"%s --help\"" msgstr "" "不適切な GTK+ コマンドラインオプションです。\"%s --help\" で確認してくださ" "い。" #: ../src/common/imagtiff.cpp:314 msgid "Invalid TIFF image index." msgstr "TIFF 画像索引が不正です。" #: ../src/osx/carbon/dataview.cpp:1782 ../src/osx/carbon/dataview.cpp:1877 msgid "Invalid data view item" msgstr "不適切なデータビュー項目です" #: ../src/common/appcmn.cpp:266 #, c-format msgid "Invalid display mode specification '%s'." msgstr "画面モード '%s' は正しい指定ではありません。" #: ../src/x11/app.cpp:121 #, c-format msgid "Invalid geometry specification '%s'" msgstr "画面設定 '%s' は正しい指定ではありません" #: ../src/unix/fswatcher_inotify.cpp:298 #, c-format msgid "Invalid inotify event for \"%s\"" msgstr "" #: ../src/unix/snglinst.cpp:306 #, c-format msgid "Invalid lock file '%s'." msgstr "不正なロックファイルです: '%s'" #: ../src/common/translation.cpp:1111 msgid "Invalid message catalog." msgstr "正しいメッセージカタログではありません。" #: ../src/common/xtistrm.cpp:409 ../src/common/xtistrm.cpp:424 msgid "Invalid or Null Object ID passed to GetObjectClassInfo" msgstr "" "Null または不正なオブジェクト識別子が GetObjectClassInfo に渡されました。" #: ../src/common/xtistrm.cpp:439 msgid "Invalid or Null Object ID passed to HasObjectClassInfo" msgstr "" "Null または不正なオブジェクト識別子が HasObjectClassInfo に渡されました。" #: ../src/common/regex.cpp:313 #, c-format msgid "Invalid regular expression '%s': %s" msgstr "不正な正規表現です '%s': %s" #: ../src/common/config.cpp:226 #, c-format msgid "Invalid value %ld for a boolean key \"%s\" in config file." msgstr "" #: ../src/generic/fontdlgg.cpp:329 ../src/richtext/richtextfontpage.cpp:333 #: ../src/osx/carbon/fontdlg.cpp:547 ../src/common/stockitem.cpp:168 msgid "Italic" msgstr "イタリック" #: ../src/common/paper.cpp:131 msgid "Italy Envelope, 110 x 230 mm" msgstr "イタリア封筒, 110 x 230mm" #: ../src/common/imagjpeg.cpp:255 msgid "JPEG: Couldn't load - file is probably corrupted." msgstr "JPEG: 読み取れません。おそらくファイルが壊れています。" #: ../src/common/imagjpeg.cpp:434 msgid "JPEG: Couldn't save image." msgstr "JPEG: 画像を保存できません。" #: ../src/common/paper.cpp:164 msgid "Japanese Double Postcard 200 x 148 mm" msgstr "往復はがき 200×248mm" #: ../src/common/paper.cpp:168 msgid "Japanese Envelope Chou #3" msgstr "長形3号" #: ../src/common/paper.cpp:181 msgid "Japanese Envelope Chou #3 Rotated" msgstr "長形3号横置き" #: ../src/common/paper.cpp:169 msgid "Japanese Envelope Chou #4" msgstr "長形4号" #: ../src/common/paper.cpp:182 msgid "Japanese Envelope Chou #4 Rotated" msgstr "長形4号横置き" #: ../src/common/paper.cpp:166 msgid "Japanese Envelope Kaku #2" msgstr "角形2号" #: ../src/common/paper.cpp:179 msgid "Japanese Envelope Kaku #2 Rotated" msgstr "角形2号横置き" #: ../src/common/paper.cpp:167 msgid "Japanese Envelope Kaku #3" msgstr "角形3号" #: ../src/common/paper.cpp:180 msgid "Japanese Envelope Kaku #3 Rotated" msgstr "角形3号横置き" #: ../src/common/paper.cpp:186 msgid "Japanese Envelope You #4" msgstr "洋形4号" #: ../src/common/paper.cpp:187 msgid "Japanese Envelope You #4 Rotated" msgstr "洋形4号横置き" #: ../src/common/paper.cpp:139 msgid "Japanese Postcard 100 x 148 mm" msgstr "はがき 100×148mm" #: ../src/common/paper.cpp:176 msgid "Japanese Postcard Rotated 148 x 100 mm" msgstr "はがき横置き 148×100mm" #: ../src/common/stockitem.cpp:169 #, fuzzy msgid "Jump to" msgstr "移動 (&J)" #: ../src/common/stockitem.cpp:171 msgid "Justified" msgstr "両端揃え" #: ../src/richtext/richtextindentspage.cpp:155 #: ../src/richtext/richtextindentspage.cpp:157 #: ../src/richtext/richtextliststylepage.cpp:344 #: ../src/richtext/richtextliststylepage.cpp:346 msgid "Justify text left and right." msgstr "左右端いっぱいにテキストを表示します。" #: ../src/common/fmapbase.cpp:163 msgid "KOI8-R" msgstr "KOI8-R" #: ../src/common/fmapbase.cpp:164 msgid "KOI8-U" msgstr "KOI8-U" #: ../src/common/accelcmn.cpp:254 ../src/common/accelcmn.cpp:336 msgid "KP_" msgstr "Num" #: ../src/common/accelcmn.cpp:103 msgid "KP_ADD" msgstr "Num+" #: ../src/common/accelcmn.cpp:98 msgid "KP_BEGIN" msgstr "KP_BEGIN" #: ../src/common/accelcmn.cpp:106 msgid "KP_DECIMAL" msgstr "KP_DECIMAL" #: ../src/common/accelcmn.cpp:100 msgid "KP_DELETE" msgstr "KP_DELETE" #: ../src/common/accelcmn.cpp:107 msgid "KP_DIVIDE" msgstr "Num/" #: ../src/common/accelcmn.cpp:92 msgid "KP_DOWN" msgstr "Num↓" #: ../src/common/accelcmn.cpp:97 msgid "KP_END" msgstr "NumEnd" #: ../src/common/accelcmn.cpp:87 msgid "KP_ENTER" msgstr "NumEnter" #: ../src/common/accelcmn.cpp:101 msgid "KP_EQUAL" msgstr "Num=" #: ../src/common/accelcmn.cpp:88 msgid "KP_HOME" msgstr "NumHome" #: ../src/common/accelcmn.cpp:99 msgid "KP_INSERT" msgstr "NumInsert" #: ../src/common/accelcmn.cpp:89 msgid "KP_LEFT" msgstr "Num←" #: ../src/common/accelcmn.cpp:102 msgid "KP_MULTIPLY" msgstr "Num*" #: ../src/common/accelcmn.cpp:95 msgid "KP_NEXT" msgstr "KP_NEXT" #: ../src/common/accelcmn.cpp:96 msgid "KP_PAGEDOWN" msgstr "NumPageDown" #: ../src/common/accelcmn.cpp:94 msgid "KP_PAGEUP" msgstr "NumPageUp" #: ../src/common/accelcmn.cpp:93 msgid "KP_PRIOR" msgstr "KP_PRIOR" #: ../src/common/accelcmn.cpp:91 msgid "KP_RIGHT" msgstr "Num→" #: ../src/common/accelcmn.cpp:104 msgid "KP_SEPARATOR" msgstr "KP_SEPARATOR" #: ../src/common/accelcmn.cpp:85 msgid "KP_SPACE" msgstr "KP_SPACE" #: ../src/common/accelcmn.cpp:105 msgid "KP_SUBTRACT" msgstr "Num-" #: ../src/common/accelcmn.cpp:86 msgid "KP_TAB" msgstr "KP_TAB" #: ../src/common/accelcmn.cpp:90 msgid "KP_UP" msgstr "Num↑" #: ../src/richtext/richtextindentspage.cpp:270 msgid "L&ine spacing:" msgstr "行間隔 (&I):" #: ../src/common/accelcmn.cpp:56 msgid "LEFT" msgstr "←" #: ../src/generic/prntdlgg.cpp:613 ../src/generic/prntdlgg.cpp:868 msgid "Landscape" msgstr "横置き" #: ../src/common/stockitem.cpp:174 #, fuzzy msgid "Last" msgstr "最後 (&L)" #: ../src/common/prntbase.cpp:1542 #, fuzzy msgid "Last page" msgstr "次のページ" #: ../src/common/log.cpp:309 #, c-format msgid "Last repeated message (\"%s\", %lu time) wasn't output" msgid_plural "Last repeated message (\"%s\", %lu times) wasn't output" msgstr[0] "" #: ../src/common/paper.cpp:104 msgid "Ledger, 17 x 11 in" msgstr "Ledger(帳簿), 17 x 11インチ" #: ../src/richtext/richtextliststylepage.cpp:249 #: ../src/richtext/richtextliststylepage.cpp:252 #: ../src/richtext/richtextliststylepage.cpp:253 #: ../src/richtext/richtextbulletspage.cpp:199 #: ../src/richtext/richtextbulletspage.cpp:202 #: ../src/richtext/richtextbulletspage.cpp:203 #: ../src/richtext/richtextsizepage.cpp:249 msgid "Left" msgstr "左" #: ../src/richtext/richtextindentspage.cpp:204 #: ../src/richtext/richtextliststylepage.cpp:390 msgid "Left (&first line):" msgstr "左-一行目 (&F):" #: ../src/generic/prntdlgg.cpp:880 msgid "Left margin (mm):" msgstr "余白-左 (mm):" #: ../src/richtext/richtextindentspage.cpp:141 #: ../src/richtext/richtextindentspage.cpp:143 #: ../src/richtext/richtextliststylepage.cpp:330 #: ../src/richtext/richtextliststylepage.cpp:332 msgid "Left-align text." msgstr "テキストを左寄せにします。" #: ../src/common/paper.cpp:145 msgid "Legal Extra 9 1/2 x 15 in" msgstr "リーガル Extra 9 1/2 x 15インチ" #: ../src/common/paper.cpp:97 msgid "Legal, 8 1/2 x 14 in" msgstr "リーガル, 8 1/2 x 14インチ" #: ../src/common/paper.cpp:144 msgid "Letter Extra 9 1/2 x 12 in" msgstr "レター Extra 9 1/2 x 12インチ" #: ../src/common/paper.cpp:150 msgid "Letter Extra Transverse 9.275 x 12 in" msgstr "レター Extra Transverse 9.275 x 12 インチ" #: ../src/common/paper.cpp:153 msgid "Letter Plus 8 1/2 x 12.69 in" msgstr "レター Plus 8 1/2 x 12.69インチ" #: ../src/common/paper.cpp:170 msgid "Letter Rotated 11 x 8 1/2 in" msgstr "レター 横置き 11 x 8 1/2インチ" #: ../src/common/paper.cpp:102 msgid "Letter Small, 8 1/2 x 11 in" msgstr "レター Small, 8 1/2 x 11インチ" #: ../src/common/paper.cpp:148 msgid "Letter Transverse 8 1/2 x 11 in" msgstr "レター Transverse 8 1/2 x 11インチ" #: ../src/common/paper.cpp:96 msgid "Letter, 8 1/2 x 11 in" msgstr "レター, 8 1/2 x 11インチ" #: ../src/generic/aboutdlgg.cpp:173 msgid "License" msgstr "許諾" #: ../src/generic/fontdlgg.cpp:332 msgid "Light" msgstr "軽量" #: ../src/generic/helpext.cpp:298 #, c-format msgid "Line %lu of map file \"%s\" has invalid syntax, skipped." msgstr "" "%lu 行目 (マップファイル \"%s\" ) に文法不適合がありました。無視します。" #: ../src/richtext/richtextliststylepage.cpp:444 msgid "Line spacing:" msgstr "行間隔:" #: ../src/html/chm.cpp:838 msgid "Link contained '//', converted to absolute link." msgstr "リンクは '//' を含んでいます。絶対パスリンクに変換しました。" #: ../src/richtext/richtextformatdlg.cpp:349 msgid "List Style" msgstr "リストスタイル" #: ../src/richtext/richtextstyles.cpp:1060 msgid "List styles" msgstr "リストスタイル" #: ../src/richtext/richtextfontpage.cpp:206 #: ../src/richtext/richtextfontpage.cpp:208 msgid "Lists font sizes in points." msgstr "利用できるポイント指定の大きさ一覧です。" #: ../src/richtext/richtextfontpage.cpp:199 #: ../src/richtext/richtextfontpage.cpp:201 msgid "Lists the available fonts." msgstr "利用できるフォントの一覧です。" #: ../src/common/fldlgcmn.cpp:325 #, c-format msgid "Load %s file" msgstr "%s ファイルの読み取り" #: ../src/html/htmlwin.cpp:575 msgid "Loading : " msgstr "読み取り中 : " #: ../src/unix/snglinst.cpp:246 #, c-format msgid "Lock file '%s' has incorrect owner." msgstr "ロックファイル '%s' は不正な所有者を示しています。" #: ../src/unix/snglinst.cpp:251 #, c-format msgid "Lock file '%s' has incorrect permissions." msgstr "ロックファイル '%s' は不正なパーミッションを示しています。" #: ../src/generic/logg.cpp:582 #, c-format msgid "Log saved to the file '%s'." msgstr "ファイル '%s' にログを保存しました。" #: ../src/richtext/richtextliststylepage.cpp:484 #: ../src/richtext/richtextbulletspage.cpp:289 msgid "Lower case letters" msgstr "小文字単語" #: ../src/richtext/richtextliststylepage.cpp:486 #: ../src/richtext/richtextbulletspage.cpp:291 msgid "Lower case roman numerals" msgstr "小文字ローマ数字" #: ../src/gtk/mdi.cpp:422 ../src/gtk1/mdi.cpp:431 msgid "MDI child" msgstr "MDI子ウィンドウ" #: ../src/common/accelcmn.cpp:68 msgid "MENU" msgstr "MENU" #: ../src/msw/helpchm.cpp:56 msgid "" "MS HTML Help functions are unavailable because the MS HTML Help library is " "not installed on this machine. Please install it." msgstr "" "Microsoft Help ライブラリーがインストールされていないので Microsoft HTML " "Help 機能が使えません。そのライブラリーをインストールしてください。" #: ../src/univ/themes/win32.cpp:3754 msgid "Ma&ximize" msgstr "最大化 (&X)" #: ../src/common/fmapbase.cpp:203 msgid "MacArabic" msgstr "MacArabic" #: ../src/common/fmapbase.cpp:222 msgid "MacArmenian" msgstr "MacArmenian" #: ../src/common/fmapbase.cpp:211 msgid "MacBengali" msgstr "MacBengali" #: ../src/common/fmapbase.cpp:217 msgid "MacBurmese" msgstr "MacBurmese" #: ../src/common/fmapbase.cpp:236 msgid "MacCeltic" msgstr "MacCeltic" #: ../src/common/fmapbase.cpp:227 msgid "MacCentralEurRoman" msgstr "MacCentralEurRoman" #: ../src/common/fmapbase.cpp:223 msgid "MacChineseSimp" msgstr "MacChineseSimp" #: ../src/common/fmapbase.cpp:201 msgid "MacChineseTrad" msgstr "MacChineseTrad" #: ../src/common/fmapbase.cpp:233 msgid "MacCroatian" msgstr "MacCroatian" #: ../src/common/fmapbase.cpp:206 msgid "MacCyrillic" msgstr "MacCyrillic" #: ../src/common/fmapbase.cpp:207 msgid "MacDevanagari" msgstr "MacDevanagari" #: ../src/common/fmapbase.cpp:231 msgid "MacDingbats" msgstr "MacDingbats" #: ../src/common/fmapbase.cpp:226 msgid "MacEthiopic" msgstr "MacEthiopic" #: ../src/common/fmapbase.cpp:229 msgid "MacExtArabic" msgstr "MacExtArabic" #: ../src/common/fmapbase.cpp:237 msgid "MacGaelic" msgstr "MacGaelic" #: ../src/common/fmapbase.cpp:221 msgid "MacGeorgian" msgstr "MacGeorgian" #: ../src/common/fmapbase.cpp:205 msgid "MacGreek" msgstr "MacGreek" #: ../src/common/fmapbase.cpp:209 msgid "MacGujarati" msgstr "MacGujarati" #: ../src/common/fmapbase.cpp:208 msgid "MacGurmukhi" msgstr "MacGurmukhi" #: ../src/common/fmapbase.cpp:204 msgid "MacHebrew" msgstr "MacHebrew" #: ../src/common/fmapbase.cpp:234 msgid "MacIcelandic" msgstr "MacIcelandic" #: ../src/common/fmapbase.cpp:200 msgid "MacJapanese" msgstr "MacJapanese" #: ../src/common/fmapbase.cpp:214 msgid "MacKannada" msgstr "MacKannada" #: ../src/common/fmapbase.cpp:238 msgid "MacKeyboardGlyphs" msgstr "MacKeyboardGlyphs" #: ../src/common/fmapbase.cpp:218 msgid "MacKhmer" msgstr "MacKhmer" #: ../src/common/fmapbase.cpp:202 msgid "MacKorean" msgstr "MacKorean" #: ../src/common/fmapbase.cpp:220 msgid "MacLaotian" msgstr "MacLaotian" #: ../src/common/fmapbase.cpp:215 msgid "MacMalayalam" msgstr "MacMalayalam" #: ../src/common/fmapbase.cpp:225 msgid "MacMongolian" msgstr "MacMongolian" #: ../src/common/fmapbase.cpp:210 msgid "MacOriya" msgstr "MacOriya" #: ../src/common/fmapbase.cpp:199 msgid "MacRoman" msgstr "MacRoman" #: ../src/common/fmapbase.cpp:235 msgid "MacRomanian" msgstr "MacRomanian" #: ../src/common/fmapbase.cpp:216 msgid "MacSinhalese" msgstr "MacSinhalese" #: ../src/common/fmapbase.cpp:230 msgid "MacSymbol" msgstr "MacSymbol" #: ../src/common/fmapbase.cpp:212 msgid "MacTamil" msgstr "MacTamil" #: ../src/common/fmapbase.cpp:213 msgid "MacTelugu" msgstr "MacTelugu" #: ../src/common/fmapbase.cpp:219 msgid "MacThai" msgstr "MacThai" #: ../src/common/fmapbase.cpp:224 msgid "MacTibetan" msgstr "MacTibetan" #: ../src/common/fmapbase.cpp:232 msgid "MacTurkish" msgstr "MacTurkish" #: ../src/common/fmapbase.cpp:228 msgid "MacVietnamese" msgstr "MacVietnamese" #: ../src/propgrid/advprops.cpp:2031 msgid "Make a selection:" msgstr "選択してください:" #: ../src/richtext/richtextformatdlg.cpp:362 #: ../src/richtext/richtextmarginspage.cpp:172 #, fuzzy msgid "Margins" msgstr "MacGeorgian" #: ../src/generic/fdrepdlg.cpp:147 msgid "Match case" msgstr "大文字小文字を区別" #: ../src/richtext/richtextsizepage.cpp:463 #, fuzzy msgid "Max height:" msgstr "ウエイト (&W):" #: ../src/richtext/richtextsizepage.cpp:436 #, fuzzy msgid "Max width:" msgstr "置換先:" #: ../src/unix/mediactrl.cpp:1006 #, c-format msgid "Media playback error: %s" msgstr "" #: ../src/common/fs_mem.cpp:175 #, c-format msgid "Memory VFS already contains file '%s'!" msgstr "メモリーVFSにはファイル '%s' がすでにあります。" #: ../src/msw/frame.cpp:347 msgid "Menu" msgstr "メニュー" #: ../src/common/msgout.cpp:124 #, fuzzy msgid "Message" msgstr "%s からの通知" #: ../src/univ/themes/metal.cpp:168 msgid "Metal theme" msgstr "メタルテーマ" #: ../src/msw/ole/automtn.cpp:641 msgid "Method or property not found." msgstr "" #: ../src/univ/themes/win32.cpp:3752 msgid "Mi&nimize" msgstr "最小化 (&N)" #: ../src/richtext/richtextsizepage.cpp:409 #, fuzzy msgid "Min height:" msgstr "フォントのウエイト(&W):" #: ../src/richtext/richtextsizepage.cpp:382 msgid "Min width:" msgstr "" #: ../src/msw/ole/automtn.cpp:657 msgid "Missing a required parameter." msgstr "" #: ../src/generic/fontdlgg.cpp:324 msgid "Modern" msgstr "Modern" #: ../src/generic/filectrlg.cpp:462 msgid "Modified" msgstr "更新" #: ../src/common/module.cpp:133 #, c-format msgid "Module \"%s\" initialization failed" msgstr "モジュール \"%s\" の初期化に失敗しました" #: ../src/common/paper.cpp:132 msgid "Monarch Envelope, 3 7/8 x 7 1/2 in" msgstr "Monarch 封筒, 3 7/8 x 7 1/2インチ" #: ../src/msw/fswatcher.cpp:143 msgid "Monitoring individual files for changes is not supported currently." msgstr "" #: ../src/generic/editlbox.cpp:276 msgid "Move down" msgstr "下に移動" #: ../src/generic/editlbox.cpp:275 msgid "Move up" msgstr "上に移動" #: ../src/richtext/richtextsizepage.cpp:682 #: ../src/richtext/richtextsizepage.cpp:684 #, fuzzy msgid "Moves the object to the next paragraph." msgstr "次の段落に適用されるスタイルを指定します。" #: ../src/richtext/richtextsizepage.cpp:676 #: ../src/richtext/richtextsizepage.cpp:678 #, fuzzy msgid "Moves the object to the previous paragraph." msgstr "前のHTMLページに戻る" #: ../src/richtext/richtextbuffer.cpp:9345 msgid "Multiple Cell Properties" msgstr "" #: ../src/common/accelcmn.cpp:81 msgid "NUM_LOCK" msgstr "NumLock" #: ../src/generic/filectrlg.cpp:459 msgid "Name" msgstr "名前" #: ../src/common/stockitem.cpp:175 #, fuzzy msgid "Network" msgstr "ネットワーク (&N)" #: ../src/common/stockitem.cpp:176 #, fuzzy msgid "New" msgstr "新規作成 (&N)" #: ../src/richtext/richtextstyledlg.cpp:243 #, fuzzy msgid "New &Box Style..." msgstr "新規リストスタイル (&L) ..." #: ../src/richtext/richtextstyledlg.cpp:225 msgid "New &Character Style..." msgstr "新規文字スタイル (&C) ..." #: ../src/richtext/richtextstyledlg.cpp:237 msgid "New &List Style..." msgstr "新規リストスタイル (&L) ..." #: ../src/richtext/richtextstyledlg.cpp:231 msgid "New &Paragraph Style..." msgstr "新規段落スタイル (&P) ..." #: ../src/richtext/richtextstyledlg.cpp:603 #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:651 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:817 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:890 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:931 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "New Style" msgstr "新規スタイル" #: ../src/generic/dirdlgg.cpp:102 msgid "New directory" msgstr "新規ディレクトリー" #: ../src/generic/editlbox.cpp:273 msgid "New item" msgstr "新規項目" #: ../src/generic/dirdlgg.cpp:326 ../src/generic/dirdlgg.cpp:336 #: ../src/generic/filectrlg.cpp:653 ../src/generic/filectrlg.cpp:662 msgid "NewName" msgstr "新しい名前" #: ../src/generic/tipdlg.cpp:305 msgid "Next" msgstr "次" #: ../src/common/prntbase.cpp:1537 ../src/html/helpwnd.cpp:678 msgid "Next page" msgstr "次のページ" #: ../include/wx/msgdlg.h:272 ../src/common/stockitem.cpp:177 #: ../src/motif/msgdlg.cpp:196 msgid "No" msgstr "いいえ" #: ../src/generic/animateg.cpp:150 #, c-format msgid "No animation handler for type %ld defined." msgstr "%ld 型のアニメーションハンドラーは未定義です。" #: ../src/dfb/bitmap.cpp:642 ../src/dfb/bitmap.cpp:676 #, c-format msgid "No bitmap handler for type %d defined." msgstr "'%d' 型のイメージハンドラは定義されていません。" #: ../src/osx/carbon/dataview.cpp:1784 msgid "No column existing." msgstr "列がありません。" #: ../src/osx/carbon/dataview.cpp:1674 msgid "No column for the specified column existing." msgstr "プロパティーに対応する列がありません。" #: ../src/osx/carbon/dataview.cpp:1423 msgid "No column for the specified column position existing." msgstr "指定された位置には列がありません。" #: ../src/common/utilscmn.cpp:1049 msgid "No default application configured for HTML files." msgstr "HTMLファイルに対する既定のアプリケーション設定がありません。" #: ../src/generic/helpext.cpp:449 msgid "No entries found." msgstr "項目が見つかりません。" #: ../src/common/fontmap.cpp:421 #, c-format msgid "" "No font for displaying text in encoding '%s' found,\n" "but an alternative encoding '%s' is available.\n" "Do you want to use this encoding (otherwise you will have to choose another " "one)?" msgstr "" "エンコーディング '%s' のテキストを表示するフォントはありません\n" "他のエンコーディング '%s' でありば利用可能です。\n" "このエンコーディングを使いますか(そうでなければ別のものを選びます)?" #: ../src/common/fontmap.cpp:426 #, c-format msgid "" "No font for displaying text in encoding '%s' found.\n" "Would you like to select a font to be used for this encoding\n" "(otherwise the text in this encoding will not be shown correctly)?" msgstr "" "エンコーディング '%s' のテキストを表示するフォントはありません\n" "このエンコーディングに使うフォントを選択しますか\n" "(そうでなければこのエンコーディングのテキストは正しく表示されません)?" #: ../src/generic/animateg.cpp:142 msgid "No handler found for animation type." msgstr "アニメーションタイプのハンドラーが見つかりません。" #: ../src/common/image.cpp:2591 msgid "No handler found for image type." msgstr "イメージタイプのハンドラーが見つかりません。" #: ../src/common/image.cpp:2599 ../src/common/image.cpp:2710 #: ../src/common/image.cpp:2763 #, c-format msgid "No image handler for type %d defined." msgstr "%d 型のイメージハンドラーが定義されていません。" #: ../src/common/image.cpp:2733 ../src/common/image.cpp:2777 #, c-format msgid "No image handler for type %s defined." msgstr "%s 型のイメージハンドラーが定義されていません。" #: ../src/html/helpwnd.cpp:871 msgid "No matching page found yet" msgstr "一致するページがまだありません。" #: ../src/osx/carbon/dataview.cpp:1676 ../src/osx/carbon/dataview.cpp:1786 msgid "No renderer or invalid renderer type specified for custom data column." msgstr "" "カスタムデータ列に不適切なレンダラーまたは不適切なその型が与えられました。" #: ../src/osx/carbon/dataview.cpp:1424 msgid "No renderer specified for column." msgstr "列に対してレンダラーが与えられていません。" #: ../src/unix/sound.cpp:81 msgid "No sound" msgstr "音声なし" #: ../src/common/image.cpp:2166 ../src/common/image.cpp:2207 msgid "No unused colour in image being masked." msgstr "マスクされるべき未使用色が画像にありません。" #: ../src/common/image.cpp:3236 msgid "No unused colour in image." msgstr "画像に未使用色がありません。" #: ../src/generic/helpext.cpp:306 #, c-format msgid "No valid mappings found in the file \"%s\"." msgstr "ファイル \"%s\" には適切なマップが含まれていません。" #: ../src/richtext/richtextborderspage.cpp:542 #: ../src/richtext/richtextsizepage.cpp:248 #: ../src/richtext/richtextsizepage.cpp:252 #, fuzzy msgid "None" msgstr "(なし)" #: ../src/common/fmapbase.cpp:157 msgid "Nordic (ISO-8859-10)" msgstr "北欧言語 (Latin-6, ISO-8859-10)" #: ../src/generic/fontdlgg.cpp:328 ../src/generic/fontdlgg.cpp:331 msgid "Normal" msgstr "通常" #: ../src/html/helpwnd.cpp:1276 msgid "Normal face
    and underlined. " msgstr "通常
    下線付き" #: ../src/html/helpwnd.cpp:1218 msgid "Normal font:" msgstr "通常のフォント:" #: ../src/propgrid/props.cpp:887 #, c-format msgid "Not %s" msgstr "%sではない" #: ../include/wx/filename.h:586 ../include/wx/filename.h:591 msgid "Not available" msgstr "利用できません" #: ../src/richtext/richtextfontpage.cpp:340 msgid "Not underlined" msgstr "下線なし" #: ../src/common/paper.cpp:116 msgid "Note, 8 1/2 x 11 in" msgstr "ノート, 8 1/2×11インチ" #: ../src/generic/notifmsgg.cpp:104 msgid "Notice" msgstr "お知らせ" #: ../src/osx/carbon/dataview.cpp:902 msgid "Number of columns could not be determined." msgstr "列の数を決定できませんでした。" #: ../src/richtext/richtextliststylepage.cpp:487 #: ../src/richtext/richtextbulletspage.cpp:292 msgid "Numbered outline" msgstr "番号付きアウトライン" #: ../include/wx/msgdlg.h:273 ../src/richtext/richtextstyledlg.cpp:297 #: ../src/common/stockitem.cpp:178 ../src/msw/msgdlg.cpp:489 #: ../src/msw/msgdlg.cpp:799 ../src/msw/dialog.cpp:120 #: ../src/gtk1/fontdlg.cpp:138 msgid "OK" msgstr "OK" #: ../src/msw/ole/automtn.cpp:681 #, c-format msgid "OLE Automation error in %s: %s" msgstr "" #: ../include/wx/richtext/richtextimagedlg.h:39 #, fuzzy msgid "Object Properties" msgstr "プロパティー (&P)" #: ../src/msw/ole/automtn.cpp:649 msgid "Object implementation does not support named arguments." msgstr "" #: ../src/common/xtixml.cpp:264 msgid "Objects must have an id attribute" msgstr "オブジェクトには id 属性が必須です。" #: ../src/common/docview.cpp:1755 ../src/common/docview.cpp:1797 msgid "Open File" msgstr "ファイルを開く" #: ../src/html/helpwnd.cpp:684 ../src/html/helpwnd.cpp:1557 msgid "Open HTML document" msgstr "HTML文書を開く" #: ../src/generic/dbgrptg.cpp:163 #, c-format msgid "Open file \"%s\"" msgstr "ファイル \"%s\" を開く" #: ../src/common/stockitem.cpp:179 #, fuzzy msgid "Open..." msgstr "開く (&O) ..." #: ../src/osx/carbon/glcanvas.cpp:48 #, c-format msgid "OpenGL function \"%s\" failed: %s (error %d)" msgstr "OpenGL 関数 \"%s\" が失敗: %s (エラー %d)" #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:821 msgid "Operation not permitted." msgstr "処理が許可されていません。" #: ../src/common/cmdline.cpp:735 #, fuzzy, c-format msgid "Option '%s' can't be negated" msgstr "ディレクトリー '%s' を作成できませんでした" #: ../src/common/cmdline.cpp:899 #, c-format msgid "Option '%s' requires a value." msgstr "オプション '%s' には値の指定が必要です。" #: ../src/common/cmdline.cpp:982 #, c-format msgid "Option '%s': '%s' cannot be converted to a date." msgstr "オプション '%s': '%s' という表現は日付に変換できません。" #: ../src/generic/dirdlgg.cpp:187 ../src/generic/prntdlgg.cpp:618 msgid "Options" msgstr "オプション" #: ../src/generic/prntdlgg.cpp:615 ../src/generic/prntdlgg.cpp:869 msgid "Orientation" msgstr "向き" #: ../src/common/windowid.cpp:259 msgid "Out of window IDs. Recommend shutting down application." msgstr "" "ウィンドウIDが制限範囲を超えました。アプリケーションの再起動をおすすめしま" "す。" #: ../src/richtext/richtextborderspage.cpp:400 #: ../src/richtext/richtextborderspage.cpp:533 #, fuzzy msgid "Outline" msgstr "アウトラインレベル (&O):" #: ../src/richtext/richtextborderspage.cpp:550 msgid "Outset" msgstr "" #: ../src/msw/ole/automtn.cpp:645 msgid "Overflow while coercing argument values." msgstr "" #: ../src/common/accelcmn.cpp:84 msgid "PAGEDOWN" msgstr "PAGEDOWN" #: ../src/common/accelcmn.cpp:83 msgid "PAGEUP" msgstr "PAGEUP" #: ../src/common/accelcmn.cpp:69 msgid "PAUSE" msgstr "PAUSE" #: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:480 msgid "PCX: couldn't allocate memory" msgstr "PCX: メモリを割り当てることができません" #: ../src/common/imagpcx.cpp:456 msgid "PCX: image format unsupported" msgstr "PCX: 画像形式は未対応です" #: ../src/common/imagpcx.cpp:479 msgid "PCX: invalid image" msgstr "PCX: 不正な画像です" #: ../src/common/imagpcx.cpp:442 msgid "PCX: this is not a PCX file." msgstr "PCX: PCXファイルではないようです。" #: ../src/common/imagpcx.cpp:459 ../src/common/imagpcx.cpp:481 msgid "PCX: unknown error !!!" msgstr "PCX: 未対応のエラーが発生しました。" #: ../src/common/imagpcx.cpp:458 msgid "PCX: version number too low" msgstr "PCX: バージョン番号が低すぎるようです。" #: ../src/common/accelcmn.cpp:55 msgid "PGDN" msgstr "PGDN" #: ../src/common/accelcmn.cpp:54 msgid "PGUP" msgstr "PGUP" #: ../src/common/imagpnm.cpp:91 msgid "PNM: Couldn't allocate memory." msgstr "PNM: メモリを割り当てることができません。" #: ../src/common/imagpnm.cpp:73 msgid "PNM: File format is not recognized." msgstr "PNM: ファイル形式を解析できません。" #: ../src/common/imagpnm.cpp:112 ../src/common/imagpnm.cpp:134 #: ../src/common/imagpnm.cpp:156 msgid "PNM: File seems truncated." msgstr "PNM: ファイルが欠けているようです。" #: ../src/common/paper.cpp:188 msgid "PRC 16K 146 x 215 mm" msgstr "中国 16K 146 x 215 mm" #: ../src/common/paper.cpp:201 msgid "PRC 16K Rotated" msgstr "中国 16K 横置き" #: ../src/common/paper.cpp:189 msgid "PRC 32K 97 x 151 mm" msgstr "中国 32K 97 x 151 mm" #: ../src/common/paper.cpp:202 msgid "PRC 32K Rotated" msgstr "中国 32K 横置き" #: ../src/common/paper.cpp:190 msgid "PRC 32K(Big) 97 x 151 mm" msgstr "中国 32K(Big) 97 x 151 mm" #: ../src/common/paper.cpp:203 msgid "PRC 32K(Big) Rotated" msgstr "中国 32K(Big) 横置き" #: ../src/common/paper.cpp:191 msgid "PRC Envelope #1 102 x 165 mm" msgstr "中国封筒 #1 102 x 165 mm" #: ../src/common/paper.cpp:204 msgid "PRC Envelope #1 Rotated 165 x 102 mm" msgstr "中国封筒 #1 横置き 165 x 102 mm" #: ../src/common/paper.cpp:200 msgid "PRC Envelope #10 324 x 458 mm" msgstr "中国封筒 #10 324 x 458 mm" #: ../src/common/paper.cpp:213 msgid "PRC Envelope #10 Rotated 458 x 324 mm" msgstr "中国封筒 #10 横置き 458 x 324 mm" #: ../src/common/paper.cpp:192 msgid "PRC Envelope #2 102 x 176 mm" msgstr "中国封筒 #2 102 x 176 mm" #: ../src/common/paper.cpp:205 msgid "PRC Envelope #2 Rotated 176 x 102 mm" msgstr "中国封筒 #2 横置き 176 x 102 mm" #: ../src/common/paper.cpp:193 msgid "PRC Envelope #3 125 x 176 mm" msgstr "中国封筒 #3 125 x 176 mm" #: ../src/common/paper.cpp:206 msgid "PRC Envelope #3 Rotated 176 x 125 mm" msgstr "中国封筒 #3 横置き 176 x 125 mm" #: ../src/common/paper.cpp:194 msgid "PRC Envelope #4 110 x 208 mm" msgstr "中国封筒 #4 110 x 208 mm" #: ../src/common/paper.cpp:207 msgid "PRC Envelope #4 Rotated 208 x 110 mm" msgstr "中国封筒 #4 横置き 208 x 110 mm" #: ../src/common/paper.cpp:195 msgid "PRC Envelope #5 110 x 220 mm" msgstr "中国封筒 #5 110 x 220 mm" #: ../src/common/paper.cpp:208 msgid "PRC Envelope #5 Rotated 220 x 110 mm" msgstr "中国封筒 #5 横置き 220 x 110 mm" #: ../src/common/paper.cpp:196 msgid "PRC Envelope #6 120 x 230 mm" msgstr "中国封筒 #6 120 x 230 mm" #: ../src/common/paper.cpp:209 msgid "PRC Envelope #6 Rotated 230 x 120 mm" msgstr "中国封筒 #6 横置き 230 x 120 mm" #: ../src/common/paper.cpp:197 msgid "PRC Envelope #7 160 x 230 mm" msgstr "中国封筒 #7 160 x 230 mm" #: ../src/common/paper.cpp:210 msgid "PRC Envelope #7 Rotated 230 x 160 mm" msgstr "中国封筒 #7 横置き 230 x 160 mm" #: ../src/common/paper.cpp:198 msgid "PRC Envelope #8 120 x 309 mm" msgstr "中国封筒 #8 120 x 309 mm" #: ../src/common/paper.cpp:211 msgid "PRC Envelope #8 Rotated 309 x 120 mm" msgstr "中国封筒 #8 横置き 309 x 120 mm" #: ../src/common/paper.cpp:199 msgid "PRC Envelope #9 229 x 324 mm" msgstr "中国封筒 #9 229 x 324 mm" #: ../src/common/paper.cpp:212 msgid "PRC Envelope #9 Rotated 324 x 229 mm" msgstr "中国封筒 #9 横置き 324 x 229 mm" #: ../src/common/accelcmn.cpp:72 msgid "PRINT" msgstr "PrintScreen" #: ../src/richtext/richtextmarginspage.cpp:286 #, fuzzy msgid "Padding" msgstr "読み取り" #: ../src/common/prntbase.cpp:2044 #, c-format msgid "Page %d" msgstr "%dページ" #: ../src/common/prntbase.cpp:2042 #, c-format msgid "Page %d of %d" msgstr "%dページ (%dページ中)" #: ../src/gtk/print.cpp:774 msgid "Page Setup" msgstr "ページの設定" #: ../src/generic/prntdlgg.cpp:828 ../src/common/prntbase.cpp:467 msgid "Page setup" msgstr "ページの設定" #: ../src/generic/prntdlgg.cpp:216 msgid "Pages" msgstr "指定" #: ../src/generic/prntdlgg.cpp:602 ../src/generic/prntdlgg.cpp:801 #: ../src/generic/prntdlgg.cpp:842 ../src/generic/prntdlgg.cpp:855 #: ../src/generic/prntdlgg.cpp:1052 ../src/generic/prntdlgg.cpp:1057 msgid "Paper size" msgstr "用紙サイズ" #: ../src/richtext/richtextstyles.cpp:1058 msgid "Paragraph styles" msgstr "段落スタイル" #: ../src/common/xtistrm.cpp:469 msgid "Passing a already registered object to SetObject" msgstr "SetObject に登録済みのオブジェクトが渡されました" #: ../src/common/xtistrm.cpp:480 msgid "Passing an unknown object to GetObject" msgstr "GetObject に未知のオブジェクトが渡されました" #: ../src/richtext/richtextctrl.cpp:3117 ../src/common/stockitem.cpp:180 #: ../src/stc/stc_i18n.cpp:19 msgid "Paste" msgstr "貼り付け" #: ../src/common/stockitem.cpp:262 msgid "Paste selection" msgstr "選択部分を貼り付け" #: ../src/richtext/richtextliststylepage.cpp:222 #: ../src/richtext/richtextbulletspage.cpp:172 msgid "Peri&od" msgstr "ピリオド (&O)" #: ../src/generic/filectrlg.cpp:465 msgid "Permissions" msgstr "パーミッション" #: ../src/richtext/richtextbuffer.cpp:11942 #, fuzzy msgid "Picture Properties" msgstr "プロパティー (&P)" #: ../include/wx/unix/pipe.h:47 msgid "Pipe creation failed" msgstr "パイプを作成できませんでした" #: ../src/gtk1/fontdlg.cpp:74 msgid "Please choose a valid font." msgstr "有効なフォントを選んでください。" #: ../src/gtk/filedlg.cpp:72 msgid "Please choose an existing file." msgstr "存在するファイルを選んでください。" #: ../src/html/helpwnd.cpp:813 msgid "Please choose the page to display:" msgstr "表示するページを選んでください:" #: ../src/msw/dialup.cpp:785 msgid "Please choose which ISP do you want to connect to" msgstr "接続したいISPを選んでください" #: ../src/msw/listctrl.cpp:372 #, c-format msgid "" "Please install a newer version of comctl32.dll\n" "(at least version 4.70 is required but you have %d.%02d)\n" "or this program won't operate correctly." msgstr "" "comctl32.dll の新しい版をインストールしてください。\n" "4.70 以上の版が必要ですが現在インストールされているのは %d.%02d です。\n" "適切な版がないと正しく動作いたしません。" #: ../src/common/headerctrlcmn.cpp:59 msgid "Please select the columns to show and define their order:" msgstr "表示する列とその順番を選んでください:" #: ../src/common/prntbase.cpp:521 #, fuzzy msgid "Please wait while printing..." msgstr "印刷が終わるまでお待ちください\n" #: ../src/propgrid/advprops.cpp:631 msgid "Point Size" msgstr "大きさ(ポイント):" #: ../src/osx/carbon/dataview.cpp:1278 ../src/osx/carbon/dataview.cpp:1329 #: ../src/osx/carbon/dataview.cpp:1420 ../src/osx/carbon/dataview.cpp:1443 #: ../src/osx/carbon/dataview.cpp:1460 ../src/osx/carbon/dataview.cpp:1477 #: ../src/osx/carbon/dataview.cpp:1670 ../src/osx/carbon/dataview.cpp:1779 #: ../src/osx/carbon/dataview.cpp:1821 ../src/osx/carbon/dataview.cpp:1874 #: ../src/osx/carbon/dataview.cpp:1997 msgid "Pointer to data view control not set correctly." msgstr "データビューコントロールへのポインタが正しく設定されていません。" #: ../src/osx/carbon/dataview.cpp:1279 ../src/osx/carbon/dataview.cpp:1338 #: ../src/osx/carbon/dataview.cpp:1421 ../src/osx/carbon/dataview.cpp:1478 #: ../src/osx/carbon/dataview.cpp:1671 ../src/osx/carbon/dataview.cpp:1780 #: ../src/osx/carbon/dataview.cpp:1822 ../src/osx/carbon/dataview.cpp:1875 #: ../src/osx/carbon/dataview.cpp:1998 msgid "Pointer to model not set correctly." msgstr "モデルへのポインタが正しく設定されていません。" #: ../src/generic/prntdlgg.cpp:612 ../src/generic/prntdlgg.cpp:867 msgid "Portrait" msgstr "縦置き" #: ../src/richtext/richtextsizepage.cpp:496 #, fuzzy msgid "Position" msgstr "印刷" #: ../src/generic/prntdlgg.cpp:298 msgid "PostScript file" msgstr "PostScript ファイル" #: ../src/common/stockitem.cpp:181 #, fuzzy msgid "Preferences" msgstr "設定 (&P)" #: ../src/osx/menu_osx.cpp:643 #, fuzzy msgid "Preferences..." msgstr "設定 (&P)" #: ../src/common/prntbase.cpp:529 msgid "Preparing" msgstr "" #: ../src/generic/fontdlgg.cpp:455 ../src/osx/carbon/fontdlg.cpp:576 #: ../src/html/helpwnd.cpp:1235 msgid "Preview:" msgstr "プレビュー:" #: ../src/common/prntbase.cpp:1523 ../src/html/helpwnd.cpp:677 msgid "Previous page" msgstr "前のページ" #: ../src/generic/prntdlgg.cpp:143 ../src/generic/prntdlgg.cpp:157 #: ../src/common/prntbase.cpp:409 ../src/common/prntbase.cpp:1511 #: ../src/gtk/print.cpp:584 ../src/gtk/print.cpp:597 msgid "Print" msgstr "印刷" #: ../include/wx/prntbase.h:395 ../src/common/docview.cpp:1250 msgid "Print Preview" msgstr "印刷プレビュー" #: ../src/common/prntbase.cpp:1985 ../src/common/prntbase.cpp:2027 #: ../src/common/prntbase.cpp:2035 msgid "Print Preview Failure" msgstr "印刷プレビュー失敗" #: ../src/generic/prntdlgg.cpp:224 msgid "Print Range" msgstr "印刷範囲" #: ../src/generic/prntdlgg.cpp:449 msgid "Print Setup" msgstr "印刷設定" #: ../src/generic/prntdlgg.cpp:621 msgid "Print in colour" msgstr "カラー印刷" #: ../src/common/stockitem.cpp:182 #, fuzzy msgid "Print previe&w..." msgstr "印刷プレビュー(&W)" #: ../src/common/docview.cpp:1244 msgid "Print preview creation failed." msgstr "印刷プレビューを作成できませんでした。" #: ../src/common/stockitem.cpp:182 #, fuzzy msgid "Print preview..." msgstr "印刷プレビュー" #: ../src/generic/prntdlgg.cpp:630 msgid "Print spooling" msgstr "印刷予約設定" #: ../src/html/helpwnd.cpp:688 msgid "Print this page" msgstr "このページを印刷" #: ../src/generic/prntdlgg.cpp:185 msgid "Print to File" msgstr "ファイルへ印刷" #: ../src/common/stockitem.cpp:183 #, fuzzy msgid "Print..." msgstr "印刷 (&P) ..." #: ../src/generic/prntdlgg.cpp:493 msgid "Printer" msgstr "プリンター" #: ../src/generic/prntdlgg.cpp:633 msgid "Printer command:" msgstr "プリンターへのコマンド:" #: ../src/generic/prntdlgg.cpp:180 msgid "Printer options" msgstr "プリンターのオプション" #: ../src/generic/prntdlgg.cpp:645 msgid "Printer options:" msgstr "プリンターのオプション:" #: ../src/generic/prntdlgg.cpp:916 msgid "Printer..." msgstr "プリンター ..." #: ../src/generic/prntdlgg.cpp:196 msgid "Printer:" msgstr "プリンター:" #: ../include/wx/richtext/richtextprint.h:163 ../src/common/prntbase.cpp:518 #: ../src/html/htmprint.cpp:277 msgid "Printing" msgstr "印刷" #: ../src/common/prntbase.cpp:586 msgid "Printing " msgstr "印刷" #: ../src/common/prntbase.cpp:330 msgid "Printing Error" msgstr "印刷エラー" #: ../src/common/prntbase.cpp:544 #, fuzzy, c-format msgid "Printing page %d of %d" msgstr "%d ページを印刷中 ..." #: ../src/generic/printps.cpp:201 #, c-format msgid "Printing page %d..." msgstr "%d ページを印刷中 ..." #: ../src/generic/printps.cpp:161 msgid "Printing..." msgstr "印刷中 ..." #: ../include/wx/richtext/richtextprint.h:109 ../include/wx/prntbase.h:263 #: ../src/common/docview.cpp:2124 msgid "Printout" msgstr "印刷出力" #: ../src/common/debugrpt.cpp:565 #, c-format msgid "" "Processing debug report has failed, leaving the files in \"%s\" directory." msgstr "" "デバッグレポートの処理に失敗しました。ディレクトリー \"%s\" にファイルを残し" "ます。" #: ../src/osx/carbon/dataview.cpp:2472 msgid "Progress renderer cannot render value type; value type: " msgstr "進行状況レンダラーが値を処理できません: 値の型: " #: ../src/common/prntbase.cpp:528 msgid "Progress:" msgstr "" #: ../src/common/stockitem.cpp:184 #, fuzzy msgid "Properties" msgstr "プロパティー (&P)" #: ../src/propgrid/manager.cpp:237 msgid "Property" msgstr "プロパティー" #: ../src/propgrid/propgrid.cpp:3144 ../src/propgrid/propgrid.cpp:3276 #, fuzzy msgid "Property Error" msgstr "プロパティー" #: ../src/common/paper.cpp:113 msgid "Quarto, 215 x 275 mm" msgstr "クォート(四つ折り版), 215 x 275 mm" #: ../src/generic/logg.cpp:1036 msgid "Question" msgstr "お尋ねします" #: ../src/common/stockitem.cpp:156 #, fuzzy msgid "Quit" msgstr "終了 (&Q)" #: ../src/osx/menu_osx.cpp:610 ../src/osx/menu_osx.cpp:657 #, fuzzy, c-format msgid "Quit %s" msgstr "終了 (&Q)" #: ../src/common/stockitem.cpp:263 msgid "Quit this program" msgstr "このプログラムを終了します" #: ../src/common/accelcmn.cpp:53 msgid "RETURN" msgstr "RETURN" #: ../src/common/accelcmn.cpp:57 msgid "RIGHT" msgstr "→" #: ../src/common/accelcmn.cpp:327 #, fuzzy msgid "RawCtrl+" msgstr "Ctrl+" #: ../src/common/ffile.cpp:113 ../src/common/ffile.cpp:134 #, c-format msgid "Read error on file '%s'" msgstr "ファイル '%s' の読み取りエラー" #: ../src/common/prntbase.cpp:257 msgid "Ready" msgstr "準備完了" #: ../src/common/stockitem.cpp:185 ../src/stc/stc_i18n.cpp:16 msgid "Redo" msgstr "再実行" #: ../src/common/stockitem.cpp:264 msgid "Redo last action" msgstr "最後に取り消した編集を再実行します" #: ../src/common/stockitem.cpp:186 msgid "Refresh" msgstr "更新" #: ../src/msw/registry.cpp:625 #, c-format msgid "Registry key '%s' already exists." msgstr "レジストリーキー '%s' はすでに存在します。" #: ../src/msw/registry.cpp:594 #, c-format msgid "Registry key '%s' does not exist, cannot rename it." msgstr "改名元に指定されたレジストリーキー '%s' は存在しません。" #: ../src/msw/registry.cpp:726 #, c-format msgid "" "Registry key '%s' is needed for normal system operation,\n" "deleting it will leave your system in unusable state:\n" "operation aborted." msgstr "" "レジストリーキー '%s' は通常のシステム動作に必要です。\n" "これを削除するとシステムを不安定にします:\n" "処理を中断しました。" #: ../src/msw/registry.cpp:520 #, c-format msgid "Registry value '%s' already exists." msgstr "レジストリの値 '%s' はすでに存在します。" #: ../src/richtext/richtextfontpage.cpp:332 #: ../src/richtext/richtextfontpage.cpp:336 msgid "Regular" msgstr "通常" #: ../src/richtext/richtextsizepage.cpp:519 #, fuzzy msgid "Relative" msgstr "Decorative" #: ../src/generic/helpext.cpp:462 msgid "Relevant entries:" msgstr "関連項目:" #: ../include/wx/generic/progdlgg.h:86 msgid "Remaining time:" msgstr "残り時間:" #: ../src/common/stockitem.cpp:187 msgid "Remove" msgstr "削除" #: ../src/richtext/richtextctrl.cpp:1430 #, fuzzy msgid "Remove Bullet" msgstr "削除" #: ../src/html/helpwnd.cpp:440 msgid "Remove current page from bookmarks" msgstr "ブックマークから現在のページを削除します" #: ../src/common/rendcmn.cpp:194 #, c-format msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded." msgstr "" "レンダラー \"%s\" は非互換バージョン %d.%d で実装されているため読み取ることが" "できません。" #: ../src/osx/carbon/dataview.cpp:1430 msgid "Rendering failed." msgstr "レンダリングに失敗しました。" #: ../src/richtext/richtextbuffer.cpp:4214 msgid "Renumber List" msgstr "リスト連番の初期化" #: ../src/common/stockitem.cpp:188 msgid "Rep&lace" msgstr "置換(&L)" #: ../src/richtext/richtextctrl.cpp:3277 ../src/common/stockitem.cpp:188 msgid "Replace" msgstr "置換" #: ../src/generic/fdrepdlg.cpp:182 msgid "Replace &all" msgstr "すべて置換(&A)" #: ../src/common/stockitem.cpp:261 msgid "Replace selection" msgstr "選択範囲を置換します" #: ../src/generic/fdrepdlg.cpp:124 msgid "Replace with:" msgstr "置換先:" #: ../src/common/valtext.cpp:161 msgid "Required information entry is empty." msgstr "必須情報項目が空です。" #: ../src/common/translation.cpp:1966 #, c-format msgid "Resource '%s' is not a valid message catalog." msgstr "'%s' は正しいメッセージカタログではありません。" #: ../src/common/stockitem.cpp:189 msgid "Revert to Saved" msgstr "保存した状態まで戻します" #: ../src/richtext/richtextborderspage.cpp:548 #, fuzzy msgid "Ridge" msgstr "右" #: ../src/richtext/richtextliststylepage.cpp:251 #: ../src/richtext/richtextbulletspage.cpp:201 #: ../src/richtext/richtextsizepage.cpp:250 msgid "Right" msgstr "右" #: ../src/generic/prntdlgg.cpp:892 msgid "Right margin (mm):" msgstr "余白-右 (mm):" #: ../src/richtext/richtextindentspage.cpp:148 #: ../src/richtext/richtextindentspage.cpp:150 #: ../src/richtext/richtextliststylepage.cpp:337 #: ../src/richtext/richtextliststylepage.cpp:339 msgid "Right-align text." msgstr "右寄せにします。" #: ../src/generic/fontdlgg.cpp:322 msgid "Roman" msgstr "Roman" #: ../src/richtext/richtextliststylepage.cpp:299 #: ../src/richtext/richtextbulletspage.cpp:252 msgid "S&tandard bullet name:" msgstr "標準行頭文字名(&T):" #: ../src/common/accelcmn.cpp:82 msgid "SCROLL_LOCK" msgstr "ScrollLock" #: ../src/common/accelcmn.cpp:71 msgid "SELECT" msgstr "SELECT" #: ../src/common/accelcmn.cpp:77 msgid "SEPARATOR" msgstr "SEPARATOR" #: ../src/common/accelcmn.cpp:74 msgid "SNAPSHOT" msgstr "SNAPSHOT" #: ../src/common/accelcmn.cpp:62 msgid "SPACE" msgstr "SPACE" #: ../src/common/accelcmn.cpp:257 ../src/common/accelcmn.cpp:339 msgid "SPECIAL" msgstr "SPECIAL" #: ../src/common/accelcmn.cpp:78 msgid "SUBTRACT" msgstr "SUBTRACT" #: ../src/common/stockitem.cpp:190 ../src/common/sizer.cpp:2678 msgid "Save" msgstr "保存" #: ../src/common/fldlgcmn.cpp:327 #, c-format msgid "Save %s file" msgstr "%s ファイルを保存" #: ../src/generic/logg.cpp:518 msgid "Save &As..." msgstr "別名で保存(&A) ..." #: ../src/common/docview.cpp:360 msgid "Save As" msgstr "Save As" #: ../src/common/stockitem.cpp:191 #, fuzzy msgid "Save as" msgstr "Save As" #: ../src/common/stockitem.cpp:267 msgid "Save current document" msgstr "現在の文書を保存します" #: ../src/common/stockitem.cpp:268 msgid "Save current document with a different filename" msgstr "現在の文書を別名で保存します" #: ../src/generic/logg.cpp:518 msgid "Save log contents to file" msgstr "ログの内容をファイルに保存します" #: ../src/generic/fontdlgg.cpp:325 msgid "Script" msgstr "Script" #: ../src/generic/srchctlg.cpp:67 ../src/html/helpwnd.cpp:548 #: ../src/html/helpwnd.cpp:563 msgid "Search" msgstr "検索" #: ../src/html/helpwnd.cpp:550 msgid "" "Search contents of help book(s) for all occurrences of the text you typed " "above" msgstr "上で入力したテキストがある部分をヘルプブックの全体に渡って検索します" #: ../src/generic/fdrepdlg.cpp:160 msgid "Search direction" msgstr "検索の方向" #: ../src/generic/fdrepdlg.cpp:112 msgid "Search for:" msgstr "検索内容:" #: ../src/html/helpwnd.cpp:1065 msgid "Search in all books" msgstr "すべてのブックを検索" #: ../src/html/helpwnd.cpp:870 msgid "Searching..." msgstr "検索中..." #: ../src/generic/dirctrlg.cpp:546 msgid "Sections" msgstr "セクション" #: ../src/common/ffile.cpp:220 #, c-format msgid "Seek error on file '%s'" msgstr "ファイル '%s' のシークエラー" #: ../src/common/ffile.cpp:210 #, c-format msgid "Seek error on file '%s' (large files not supported by stdio)" msgstr "ファイル '%s' のシークエラー(stdioでは大きなファイルに対応できません)" #: ../src/richtext/richtextctrl.cpp:330 ../src/osx/textctrl_osx.cpp:587 #: ../src/common/stockitem.cpp:192 ../src/msw/textctrl.cpp:2288 msgid "Select &All" msgstr "すべて選択(&A)" #: ../src/common/stockitem.cpp:192 ../src/stc/stc_i18n.cpp:21 msgid "Select All" msgstr "すべて選択" #: ../src/common/docview.cpp:1877 msgid "Select a document template" msgstr "文書の雛形を選んでください" #: ../src/common/docview.cpp:1951 msgid "Select a document view" msgstr "文書ビューの選択" #: ../src/richtext/richtextfontpage.cpp:235 #: ../src/richtext/richtextfontpage.cpp:237 msgid "Select regular or bold." msgstr "太字にするかしないかを選んでください。" #: ../src/richtext/richtextfontpage.cpp:222 #: ../src/richtext/richtextfontpage.cpp:224 msgid "Select regular or italic style." msgstr "イタリックにするかしないかを選んでください。" #: ../src/richtext/richtextfontpage.cpp:248 #: ../src/richtext/richtextfontpage.cpp:250 msgid "Select underlining or no underlining." msgstr "下線を付けるか付けないかを選んでください" #: ../src/motif/filedlg.cpp:220 msgid "Selection" msgstr "選択" #: ../src/richtext/richtextliststylepage.cpp:187 #: ../src/richtext/richtextliststylepage.cpp:189 msgid "Selects the list level to edit." msgstr "編集したいリストレベルを選んでください。" #: ../src/common/cmdline.cpp:918 #, c-format msgid "Separator expected after the option '%s'." msgstr "オプション '%s' の後には区切り文字が必要です。" #: ../src/richtext/richtextbuffer.cpp:10513 #, fuzzy msgid "Set Cell Style" msgstr "スタイルの削除" #: ../include/wx/xtiprop.h:179 msgid "SetProperty called w/o valid setter" msgstr "SetProperty が適切なsetterなしで呼び出されました" #: ../src/common/filename.cpp:2632 msgid "Setting directory access times is not supported under this OS version" msgstr "このバージョンの OS ではディレクトリアクセス時刻を設定できません" #: ../src/generic/prntdlgg.cpp:188 msgid "Setup..." msgstr "設定 ..." #: ../src/msw/dialup.cpp:563 msgid "Several active dialup connections found, choosing one randomly." msgstr "複数のダイヤルアップ接続が有効です。乱数でひとつ選びます。" #: ../src/common/accelcmn.cpp:324 msgid "Shift+" msgstr "Shift+" #: ../src/generic/dirdlgg.cpp:170 msgid "Show &hidden directories" msgstr "隠しディレクトリーを表示する(&H)" #: ../src/generic/filectrlg.cpp:1003 msgid "Show &hidden files" msgstr "隠しファイルを表示する(&H)" #: ../src/osx/menu_osx.cpp:605 ../src/osx/menu_osx.cpp:652 #, fuzzy msgid "Show All" msgstr "すべて表示" #: ../src/common/stockitem.cpp:257 msgid "Show about dialog" msgstr "詳細ダイアログを表示します。" #: ../src/html/helpwnd.cpp:502 msgid "Show all" msgstr "すべて表示" #: ../src/html/helpwnd.cpp:513 msgid "Show all items in index" msgstr "索引に全項目を表示します" #: ../src/generic/dirdlgg.cpp:105 msgid "Show hidden directories" msgstr "隠しディレクトリーを表示します" #: ../src/html/helpwnd.cpp:671 msgid "Show/hide navigation panel" msgstr "ナビゲーションパネルの表示/非表示を切り替えます" #: ../src/richtext/richtextsymboldlg.cpp:421 #: ../src/richtext/richtextsymboldlg.cpp:423 msgid "Shows a Unicode subset." msgstr "ユニコードの部分集合を表示します。" #: ../src/richtext/richtextliststylepage.cpp:472 #: ../src/richtext/richtextliststylepage.cpp:474 #: ../src/richtext/richtextbulletspage.cpp:276 #: ../src/richtext/richtextbulletspage.cpp:278 msgid "Shows a preview of the bullet settings." msgstr "行頭文字設定のプレビューを表示します。" #: ../src/richtext/richtextfontpage.cpp:322 #: ../src/richtext/richtextfontpage.cpp:324 msgid "Shows a preview of the font settings." msgstr "フォント設定のプレビューを表示します。" #: ../src/osx/carbon/fontdlg.cpp:580 ../src/osx/carbon/fontdlg.cpp:582 msgid "Shows a preview of the font." msgstr "フォントのプレビューを表示します。" #: ../src/richtext/richtextindentspage.cpp:303 #: ../src/richtext/richtextindentspage.cpp:305 msgid "Shows a preview of the paragraph settings." msgstr "段落設定のプレビューを表示します。" #: ../src/generic/fontdlgg.cpp:460 ../src/generic/fontdlgg.cpp:462 msgid "Shows the font preview." msgstr "フォントのプレビューを表示します。" #: ../src/univ/themes/mono.cpp:516 msgid "Simple monochrome theme" msgstr "簡素なモノクロのテーマ" #: ../src/richtext/richtextindentspage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:449 msgid "Single" msgstr "1" #: ../src/generic/filectrlg.cpp:460 ../src/richtext/richtextformatdlg.cpp:356 #: ../src/richtext/richtextsizepage.cpp:299 msgid "Size" msgstr "大きさ" #: ../src/osx/carbon/fontdlg.cpp:525 msgid "Size:" msgstr "大きさ:" #: ../src/generic/progdlgg.cpp:262 ../src/generic/progdlgg.cpp:773 #: ../src/msw/progdlg.cpp:801 msgid "Skip" msgstr "スキップ" #: ../src/generic/fontdlgg.cpp:330 msgid "Slant" msgstr "斜体" #: ../src/richtext/richtextfontpage.cpp:298 #, fuzzy msgid "Small C&apitals" msgstr "大文字化 (&P)" #: ../src/richtext/richtextborderspage.cpp:543 #, fuzzy msgid "Solid" msgstr "太字" #: ../src/common/docview.cpp:1773 msgid "Sorry, could not open this file." msgstr "ファイルを開くことができませんでした。" #: ../src/common/prntbase.cpp:2027 ../src/common/prntbase.cpp:2035 msgid "Sorry, not enough memory to create a preview." msgstr "プレビューのためのメモリが足りません。" #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "Sorry, that name is taken. Please choose another." msgstr "その名前はすでに使われています。他の名前を選んでください。" #: ../src/common/docview.cpp:1796 msgid "Sorry, the format for this file is unknown." msgstr "このファイルの形式は未対応です。" #: ../src/unix/sound.cpp:492 msgid "Sound data are in unsupported format." msgstr "未対応の様式が使われている音声データです。" #: ../src/unix/sound.cpp:477 #, c-format msgid "Sound file '%s' is in unsupported format." msgstr "'%s' は未対応の様式が使われている音声ファイルです。" #: ../src/richtext/richtextliststylepage.cpp:467 msgid "Spacing" msgstr "間隔" #: ../src/common/stockitem.cpp:197 #, fuzzy msgid "Spell Check" msgstr "スペルチェック (&S)" #: ../src/richtext/richtextliststylepage.cpp:490 #: ../src/richtext/richtextbulletspage.cpp:295 msgid "Standard" msgstr "標準" #: ../src/common/paper.cpp:105 msgid "Statement, 5 1/2 x 8 1/2 in" msgstr "ステートメント(計算書), 5 1/2 x 8 1/2インチ" #: ../src/richtext/richtextsizepage.cpp:518 #: ../src/richtext/richtextsizepage.cpp:523 #, fuzzy msgid "Static" msgstr "状態:" #: ../src/generic/prntdlgg.cpp:204 msgid "Status:" msgstr "状態:" #: ../src/common/stockitem.cpp:198 #, fuzzy msgid "Stop" msgstr "停止 (&S)" #: ../src/common/stockitem.cpp:199 #, fuzzy msgid "Strikethrough" msgstr "打ち消し線 (&S)" #: ../src/common/colourcmn.cpp:45 #, c-format msgid "String To Colour : Incorrect colour specification : %s" msgstr "文字列から色へ : 変換に失敗しました : %s" #: ../src/richtext/richtextformatdlg.cpp:318 ../src/propgrid/advprops.cpp:647 msgid "Style" msgstr "スタイル" #: ../include/wx/richtext/richtextstyledlg.h:47 msgid "Style Organiser" msgstr "スタイルの構成" #: ../src/osx/carbon/fontdlg.cpp:534 msgid "Style:" msgstr "スタイル:" #: ../src/richtext/richtextfontpage.cpp:312 msgid "Subscrip&t" msgstr "下付き文字(&T)" #: ../src/richtext/richtextfontpage.cpp:305 msgid "Supe&rscript" msgstr "上付き文字(&R)" #: ../src/common/paper.cpp:151 msgid "SuperA/SuperA/A4 227 x 356 mm" msgstr "SuperA/SuperA/A4 227 x 356 mm" #: ../src/common/paper.cpp:152 msgid "SuperB/SuperB/A3 305 x 487 mm" msgstr "SuperB/SuperB/A3 305 x 487 mm" #: ../src/generic/fontdlgg.cpp:326 msgid "Swiss" msgstr "Swiss" #: ../src/richtext/richtextliststylepage.cpp:488 #: ../src/richtext/richtextbulletspage.cpp:293 msgid "Symbol" msgstr "記号" #: ../src/richtext/richtextliststylepage.cpp:288 #: ../src/richtext/richtextbulletspage.cpp:240 msgid "Symbol &font:" msgstr "記号フォント (&F) :" #: ../include/wx/richtext/richtextsymboldlg.h:47 msgid "Symbols" msgstr "記号" #: ../src/common/accelcmn.cpp:63 msgid "TAB" msgstr "TAB" #: ../src/common/imagtiff.cpp:372 ../src/common/imagtiff.cpp:385 #: ../src/common/imagtiff.cpp:744 msgid "TIFF: Couldn't allocate memory." msgstr "TIFF: メモリ割り当てに失敗しました。" #: ../src/common/imagtiff.cpp:304 msgid "TIFF: Error loading image." msgstr "TIFF: 画像の読み取りエラーを検出しました。" #: ../src/common/imagtiff.cpp:471 msgid "TIFF: Error reading image." msgstr "TIFF: 画像の読み取りエラーを検出しました。" #: ../src/common/imagtiff.cpp:611 msgid "TIFF: Error saving image." msgstr "TIFF: 画像の書き出しエラーを検出しました。" #: ../src/common/imagtiff.cpp:849 msgid "TIFF: Error writing image." msgstr "TIFF: 画像の書き出しエラーを検出しました。" #: ../src/common/imagtiff.cpp:358 msgid "TIFF: Image size is abnormally big." msgstr "TIFF: 画像の大きさが極端に大きいようです。" #: ../src/richtext/richtextbuffer.cpp:10794 #, fuzzy msgid "Table Properties" msgstr "プロパティー (&P)" #: ../src/common/paper.cpp:146 msgid "Tabloid Extra 11.69 x 18 in" msgstr "タブロイド Extra 11.69 x 18インチ" #: ../src/common/paper.cpp:103 msgid "Tabloid, 11 x 17 in" msgstr "タブロイド, 11 x 17インチ" #: ../src/richtext/richtextformatdlg.cpp:336 msgid "Tabs" msgstr "タブ" #: ../src/generic/fontdlgg.cpp:327 msgid "Teletype" msgstr "Teletype" #: ../src/common/docview.cpp:1878 msgid "Templates" msgstr "雛形" #: ../src/osx/carbon/dataview.cpp:2373 msgid "Text renderer cannot render value; value type: " msgstr "テキストレンダラーは次の値を処理できません; 値の型: " #: ../src/common/fmapbase.cpp:158 msgid "Thai (ISO-8859-11)" msgstr "タイ語 (ISO-8859-11)" #: ../src/common/ftp.cpp:620 msgid "The FTP server doesn't support passive mode." msgstr "そのFTPサーバーはPASSIVEモードに対応していません。" #: ../src/common/ftp.cpp:606 msgid "The FTP server doesn't support the PORT command." msgstr "そのFTPサーバーはPORTコマンドに対応していません。" #: ../src/richtext/richtextliststylepage.cpp:215 #: ../src/richtext/richtextliststylepage.cpp:217 #: ../src/richtext/richtextbulletspage.cpp:164 #: ../src/richtext/richtextbulletspage.cpp:166 msgid "The available bullet styles." msgstr "使用できる行頭文字スタイルです。" #: ../src/richtext/richtextstyledlg.cpp:202 #: ../src/richtext/richtextstyledlg.cpp:204 msgid "The available styles." msgstr "使用できるスタイルです。" #: ../src/richtext/richtextbackgroundpage.cpp:139 #: ../src/richtext/richtextbackgroundpage.cpp:141 #, fuzzy msgid "The background colour." msgstr "背景色" #: ../src/richtext/richtextmarginspage.cpp:268 #: ../src/richtext/richtextmarginspage.cpp:270 #, fuzzy msgid "The bottom margin size." msgstr "フォントの大きさをポイントで記します。" #: ../src/richtext/richtextmarginspage.cpp:382 #: ../src/richtext/richtextmarginspage.cpp:384 #, fuzzy msgid "The bottom padding size." msgstr "フォントの大きさをポイントで記します。" #: ../src/richtext/richtextsizepage.cpp:639 #: ../src/richtext/richtextsizepage.cpp:641 #: ../src/richtext/richtextsizepage.cpp:653 #: ../src/richtext/richtextsizepage.cpp:655 #, fuzzy msgid "The bottom position." msgstr "タブ位置です。" #: ../src/richtext/richtextliststylepage.cpp:254 #: ../src/richtext/richtextliststylepage.cpp:256 #: ../src/richtext/richtextliststylepage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:277 #: ../src/richtext/richtextbulletspage.cpp:204 #: ../src/richtext/richtextbulletspage.cpp:206 #: ../src/richtext/richtextbulletspage.cpp:227 #: ../src/richtext/richtextbulletspage.cpp:229 msgid "The bullet character." msgstr "行頭文字を指定します。" #: ../src/richtext/richtextsymboldlg.cpp:443 #: ../src/richtext/richtextsymboldlg.cpp:445 msgid "The character code." msgstr "文字コードです。" #: ../src/common/fontmap.cpp:203 #, c-format msgid "" "The charset '%s' is unknown. You may select\n" "another charset to replace it with or choose\n" "[Cancel] if it cannot be replaced" msgstr "" "文字集合 '%s' は未対応です。\n" "他の文字集合で置き換えるかそれができないときは\n" "キャンセルしてください" #: ../src/msw/ole/dataobj.cpp:367 #, c-format msgid "The clipboard format '%d' doesn't exist." msgstr "クリップボード様式 '%d' は存在しません。" #: ../src/richtext/richtextstylepage.cpp:128 #: ../src/richtext/richtextstylepage.cpp:130 msgid "The default style for the next paragraph." msgstr "次の段落に適用されるスタイルを指定します。" #: ../src/generic/dirdlgg.cpp:231 #, c-format msgid "" "The directory '%s' does not exist\n" "Create it now?" msgstr "" "ディレクトリー '%s' は存在しません\n" "作成しますか?" #: ../src/html/htmprint.cpp:271 #, c-format msgid "" "The document \"%s\" doesn't fit on the page horizontally and will be " "truncated if printed.\n" "\n" "Would you like to proceed with printing it nevertheless?" msgstr "" "文書 \"%s\" はページの水平方向にあわせることができません。印刷すると切り詰め" "られます。\n" "\n" "ご承知の上で印刷処理を進めますか?" #: ../src/common/docview.cpp:1184 #, fuzzy, c-format msgid "" "The file '%s' doesn't exist and couldn't be opened.\n" "It has been removed from the most recently used files list." msgstr "最近使ったファイルのリストから削除されています。" #: ../src/richtext/richtextindentspage.cpp:208 #: ../src/richtext/richtextindentspage.cpp:210 #: ../src/richtext/richtextliststylepage.cpp:394 #: ../src/richtext/richtextliststylepage.cpp:396 msgid "The first line indent." msgstr "最初の行の字下げです。" #: ../src/gtk/utilsgtk.cpp:427 msgid "The following standard GTK+ options are also supported:\n" msgstr "次の標準GTK+オプションも利用できます:\n" #: ../src/generic/fontdlgg.cpp:414 ../src/generic/fontdlgg.cpp:416 msgid "The font colour." msgstr "フォントの色を指定できます。" #: ../src/generic/fontdlgg.cpp:375 ../src/generic/fontdlgg.cpp:377 msgid "The font family." msgstr "フォントのファミリーを指定できます。" #: ../src/richtext/richtextsymboldlg.cpp:405 #: ../src/richtext/richtextsymboldlg.cpp:407 msgid "The font from which to take the symbol." msgstr "記号の取得元フォントを指定できます。" #: ../src/generic/fontdlgg.cpp:427 ../src/generic/fontdlgg.cpp:429 #: ../src/generic/fontdlgg.cpp:434 ../src/generic/fontdlgg.cpp:436 msgid "The font point size." msgstr "フォントの大きさをポイントで記します。" #: ../src/osx/carbon/fontdlg.cpp:529 ../src/osx/carbon/fontdlg.cpp:531 msgid "The font size in points." msgstr "フォントの大きさをポイントで記します。" #: ../src/richtext/richtextfontpage.cpp:190 #: ../src/richtext/richtextfontpage.cpp:192 #, fuzzy msgid "The font size units, points or pixels." msgstr "フォントの大きさをポイントで記します。" #: ../src/generic/fontdlgg.cpp:386 ../src/generic/fontdlgg.cpp:388 msgid "The font style." msgstr "フォントのスタイルを指定できます。" #: ../src/generic/fontdlgg.cpp:397 ../src/generic/fontdlgg.cpp:399 msgid "The font weight." msgstr "フォントのウエイトを指定できます。" #: ../src/common/docview.cpp:1465 #, c-format msgid "The format of file '%s' couldn't be determined." msgstr "ファイル '%s' の様式を決定できませんでした。" #: ../src/richtext/richtextindentspage.cpp:199 #: ../src/richtext/richtextindentspage.cpp:201 #: ../src/richtext/richtextliststylepage.cpp:385 #: ../src/richtext/richtextliststylepage.cpp:387 msgid "The left indent." msgstr "左側の字下げを指定できます。" #: ../src/richtext/richtextmarginspage.cpp:195 #: ../src/richtext/richtextmarginspage.cpp:197 #, fuzzy msgid "The left margin size." msgstr "フォントの大きさをポイントで記します。" #: ../src/richtext/richtextmarginspage.cpp:309 #: ../src/richtext/richtextmarginspage.cpp:311 #, fuzzy msgid "The left padding size." msgstr "フォントの大きさをポイントで記します。" #: ../src/richtext/richtextsizepage.cpp:534 #: ../src/richtext/richtextsizepage.cpp:536 #: ../src/richtext/richtextsizepage.cpp:548 #: ../src/richtext/richtextsizepage.cpp:550 #, fuzzy msgid "The left position." msgstr "タブ位置です。" #: ../src/richtext/richtextindentspage.cpp:288 #: ../src/richtext/richtextindentspage.cpp:290 #: ../src/richtext/richtextliststylepage.cpp:462 #: ../src/richtext/richtextliststylepage.cpp:464 msgid "The line spacing." msgstr "行間隔を指定できます。" #: ../src/richtext/richtextbulletspage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:270 msgid "The list item number." msgstr "連番の番号を指定できます。" #: ../src/msw/ole/automtn.cpp:653 msgid "The locale ID is unknown." msgstr "" #: ../src/richtext/richtextsizepage.cpp:366 #: ../src/richtext/richtextsizepage.cpp:368 #, fuzzy msgid "The object height." msgstr "フォントのウエイトを指定できます。" #: ../src/richtext/richtextsizepage.cpp:474 #: ../src/richtext/richtextsizepage.cpp:476 #, fuzzy msgid "The object maximum height." msgstr "フォントのウエイトを指定できます。" #: ../src/richtext/richtextsizepage.cpp:447 #: ../src/richtext/richtextsizepage.cpp:449 #, fuzzy msgid "The object maximum width." msgstr "フォントのウエイトを指定できます。" #: ../src/richtext/richtextsizepage.cpp:420 #: ../src/richtext/richtextsizepage.cpp:422 #, fuzzy msgid "The object minimum height." msgstr "フォントのウエイトを指定できます。" #: ../src/richtext/richtextsizepage.cpp:393 #: ../src/richtext/richtextsizepage.cpp:395 #, fuzzy msgid "The object minimum width." msgstr "フォントのウエイトを指定できます。" #: ../src/richtext/richtextsizepage.cpp:332 #: ../src/richtext/richtextsizepage.cpp:334 #, fuzzy msgid "The object width." msgstr "フォントのウエイトを指定できます。" #: ../src/richtext/richtextindentspage.cpp:227 #: ../src/richtext/richtextindentspage.cpp:229 msgid "The outline level." msgstr "アウトラインレベルを指定できます。" #: ../src/common/log.cpp:281 #, fuzzy, c-format msgid "The previous message repeated %lu time." msgid_plural "The previous message repeated %lu times." msgstr[0] "直前のメッセージは %lu 回繰り返されました。" #: ../src/common/log.cpp:274 #, fuzzy msgid "The previous message repeated once." msgstr "直前のメッセージは %lu 回繰り返されました。" #: ../src/gtk/print.cpp:931 ../src/gtk/print.cpp:1114 msgid "The print dialog returned an error." msgstr "印刷ダイアログがエラーを返しました。" #: ../src/richtext/richtextsymboldlg.cpp:462 #: ../src/richtext/richtextsymboldlg.cpp:464 msgid "The range to show." msgstr "表示する範囲を指定できます。" #: ../src/generic/dbgrptg.cpp:322 msgid "" "The report contains the files listed below. If any of these files contain " "private information,\n" "please uncheck them and they will be removed from the report.\n" msgstr "" "レポートに含まれるファイルは下記の通りです。公開すべきでないファイルが含まれ" "ている場合は\n" "そのファイルのチェックを外せばレポートから取り除かれます。\n" #: ../src/common/cmdline.cpp:1083 #, c-format msgid "The required parameter '%s' was not specified." msgstr "必須引数 '%s' が与えられていません。" #: ../src/richtext/richtextindentspage.cpp:217 #: ../src/richtext/richtextindentspage.cpp:219 #: ../src/richtext/richtextliststylepage.cpp:403 #: ../src/richtext/richtextliststylepage.cpp:405 msgid "The right indent." msgstr "右側の字下げです。" #: ../src/richtext/richtextmarginspage.cpp:220 #: ../src/richtext/richtextmarginspage.cpp:222 #, fuzzy msgid "The right margin size." msgstr "右側の字下げです。" #: ../src/richtext/richtextmarginspage.cpp:334 #: ../src/richtext/richtextmarginspage.cpp:336 #, fuzzy msgid "The right padding size." msgstr "右側の字下げです。" #: ../src/richtext/richtextsizepage.cpp:604 #: ../src/richtext/richtextsizepage.cpp:606 #: ../src/richtext/richtextsizepage.cpp:618 #: ../src/richtext/richtextsizepage.cpp:620 #, fuzzy msgid "The right position." msgstr "タブ位置です。" #: ../src/richtext/richtextindentspage.cpp:267 #: ../src/richtext/richtextliststylepage.cpp:439 #: ../src/richtext/richtextliststylepage.cpp:441 msgid "The spacing after the paragraph." msgstr "段落の後の空間を指定します。" #: ../src/richtext/richtextindentspage.cpp:257 #: ../src/richtext/richtextindentspage.cpp:259 #: ../src/richtext/richtextliststylepage.cpp:430 #: ../src/richtext/richtextliststylepage.cpp:432 msgid "The spacing before the paragraph." msgstr "段落の前の空間を指定します。" #: ../src/richtext/richtextstylepage.cpp:108 #: ../src/richtext/richtextstylepage.cpp:110 msgid "The style name." msgstr "スタイル名です。" #: ../src/richtext/richtextstylepage.cpp:118 #: ../src/richtext/richtextstylepage.cpp:120 msgid "The style on which this style is based." msgstr "このスタイルの元となるスタイルです。" #: ../src/richtext/richtextstyledlg.cpp:214 #: ../src/richtext/richtextstyledlg.cpp:216 msgid "The style preview." msgstr "スタイルのプレビューです。" #: ../src/msw/ole/automtn.cpp:669 msgid "The system cannot find the file specified." msgstr "" #: ../src/richtext/richtexttabspage.cpp:118 #: ../src/richtext/richtexttabspage.cpp:120 msgid "The tab position." msgstr "タブ位置です。" #: ../src/richtext/richtexttabspage.cpp:124 msgid "The tab positions." msgstr "タブ位置の一覧です。" #: ../src/richtext/richtextctrl.cpp:2705 msgid "The text couldn't be saved." msgstr "テキストが保存できませんでした。" #: ../src/richtext/richtextmarginspage.cpp:243 #: ../src/richtext/richtextmarginspage.cpp:245 #, fuzzy msgid "The top margin size." msgstr "フォントの大きさをポイントで記します。" #: ../src/richtext/richtextmarginspage.cpp:357 #: ../src/richtext/richtextmarginspage.cpp:359 #, fuzzy msgid "The top padding size." msgstr "フォントの大きさをポイントで記します。" #: ../src/richtext/richtextsizepage.cpp:569 #: ../src/richtext/richtextsizepage.cpp:571 #: ../src/richtext/richtextsizepage.cpp:583 #: ../src/richtext/richtextsizepage.cpp:585 #, fuzzy msgid "The top position." msgstr "タブ位置です。" #: ../src/common/cmdline.cpp:1061 #, c-format msgid "The value for the option '%s' must be specified." msgstr "オプション '%s' とその値は必ず指定してください。" #: ../src/msw/dialup.cpp:452 #, c-format msgid "" "The version of remote access service (RAS) installed on this machine is too " "old, please upgrade (the following required function is missing: %s)." msgstr "" "このコンピューターにインストールされているリモートアクセスサービス(RAS)は古す" "ぎるようです。新しいものを用意してください(機能 %s が必要です)。" #: ../src/gtk/print.cpp:959 msgid "The wxGtkPrinterDC cannot be used." msgstr "wxGtkPrinterDC が利用できません。" #: ../src/osx/carbon/dataview.cpp:1340 msgid "There is no column or renderer for the specified column index." msgstr "指定された列のレンダラーまたは列そのものが存在しません。" #: ../src/richtext/richtextprint.cpp:614 ../src/html/htmprint.cpp:735 msgid "" "There was a problem during page setup: you may need to set a default printer." msgstr "" "ページの準備中に問題が検出されました: 既定のプリンターが未指定なら指定してく" "ださい。" #: ../src/html/htmprint.cpp:255 msgid "" "This document doesn't fit on the page horizontally and will be truncated " "when it is printed." msgstr "" "この文書はページの水平方向にあわせることができません。印刷すると切り詰められ" "ます。" #: ../src/common/image.cpp:2716 #, fuzzy, c-format msgid "This is not a %s." msgstr "PCX: PCXファイルではないようです。" #: ../src/common/wincmn.cpp:1653 msgid "This platform does not support background transparency." msgstr "" #: ../src/gtk/window.cpp:4317 msgid "" "This program was compiled with a too old version of GTK+, please rebuild " "with GTK+ 2.12 or newer." msgstr "" #: ../src/msw/datecontrols.cpp:59 msgid "" "This system doesn't support date controls, please upgrade your version of " "comctl32.dll" msgstr "" "このシステムは、date コントロールに未対応です。comctl32.dllを更新してください" #: ../src/msw/thread.cpp:1300 msgid "" "Thread module initialization failed: cannot store value in thread local " "storage" msgstr "" "スレッドモジュールの初期化に失敗: スレッドローカルストレージに値を保存できま" "せんでした" #: ../src/unix/threadpsx.cpp:1758 msgid "Thread module initialization failed: failed to create thread key" msgstr "スレッドモジュールの初期化に失敗: スレッドキーを作成できませんでした" #: ../src/msw/thread.cpp:1288 msgid "" "Thread module initialization failed: impossible to allocate index in thread " "local storage" msgstr "" "スレッドモジュールの初期化に失敗: スレッドローカルストレージに索引を割り当て" "られませんでした" #: ../src/unix/threadpsx.cpp:1038 msgid "Thread priority setting is ignored." msgstr "スレッド優先度の設定は無視されました。" #: ../src/msw/mdi.cpp:172 msgid "Tile &Horizontally" msgstr "横に並べる(&H)" #: ../src/msw/mdi.cpp:173 msgid "Tile &Vertically" msgstr "縦に並べる(&V)" #: ../src/common/ftp.cpp:202 msgid "Timeout while waiting for FTP server to connect, try passive mode." msgstr "" "FTPサーバーとの接続を待機中に時間切れになりました。PASSIVEモードで試してみて" "ください。" #: ../src/os2/timer.cpp:99 msgid "Timer creation failed." msgstr "タイマーの作成に失敗しました。" #: ../src/generic/tipdlg.cpp:220 msgid "Tip of the Day" msgstr "今日のチップ" #: ../src/generic/tipdlg.cpp:154 msgid "Tips not available, sorry!" msgstr "チップが使えません、ごめんね!" #: ../src/generic/prntdlgg.cpp:242 msgid "To:" msgstr "末尾ページ:" #: ../src/osx/carbon/dataview.cpp:2451 msgid "Toggle renderer cannot render value; value type: " msgstr "トグルレンダラーが値を処理できません: 値の型: " #: ../src/richtext/richtextbuffer.cpp:7983 msgid "Too many EndStyle calls!" msgstr "EndStyle の呼び出しが多すぎます。" #: ../src/common/imagpng.cpp:286 msgid "Too many colours in PNG, the image may be slightly blurred." msgstr "PNGにある色が多すぎます。少しぼやけた感じになるかもしれません。" #: ../src/richtext/richtextsizepage.cpp:286 #: ../src/richtext/richtextsizepage.cpp:290 ../src/common/stockitem.cpp:200 #, fuzzy msgid "Top" msgstr "上端 (&T)" #: ../src/generic/prntdlgg.cpp:881 msgid "Top margin (mm):" msgstr "余白-天 (mm):" #: ../src/generic/aboutdlgg.cpp:79 msgid "Translations by " msgstr "翻訳 : " #: ../src/generic/aboutdlgg.cpp:188 msgid "Translators" msgstr "翻訳者" #: ../src/propgrid/propgrid.cpp:173 msgid "True" msgstr "真" #: ../src/common/fs_mem.cpp:227 #, c-format msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!" msgstr "メモリVFSにまだ読み込まれていない '%s' の削除を要求されました。" #: ../src/common/fmapbase.cpp:156 msgid "Turkish (ISO-8859-9)" msgstr "トルコ語 (ISO-8859-9)" #: ../src/generic/filectrlg.cpp:461 msgid "Type" msgstr "種類" #: ../src/richtext/richtextfontpage.cpp:160 #: ../src/richtext/richtextfontpage.cpp:162 msgid "Type a font name." msgstr "フォント名を指定します。" #: ../src/richtext/richtextfontpage.cpp:175 #: ../src/richtext/richtextfontpage.cpp:177 msgid "Type a size in points." msgstr "ポイントで大きさを指定します。" #: ../src/msw/ole/automtn.cpp:665 #, c-format msgid "Type mismatch in argument %u." msgstr "" #: ../src/common/xtixml.cpp:356 ../src/common/xtixml.cpp:509 #: ../src/common/xtistrm.cpp:322 msgid "Type must have enum - long conversion" msgstr "型は列挙からlongへの変換が可能でなくてはなりません。" #: ../src/propgrid/propgridiface.cpp:382 #, c-format msgid "" "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", NOT " "\"%s\"." msgstr "" "型の処理 \"%s\" に失敗: \"%s\" とラベルされたプロパティーは \"%s\" 型で" "す。\"%s\" ではありません。" #: ../src/common/accelcmn.cpp:58 msgid "UP" msgstr "↑" #: ../src/common/paper.cpp:134 msgid "US Std Fanfold, 14 7/8 x 11 in" msgstr "米国標準折りたたみ連続紙, 14 7/8 x 11インチ" #: ../src/common/fmapbase.cpp:196 msgid "US-ASCII" msgstr "US-ASCII" #: ../src/unix/fswatcher_inotify.cpp:109 msgid "Unable to add inotify watch" msgstr "inotify 監視を追加できませんでした" #: ../src/unix/fswatcher_kqueue.cpp:136 msgid "Unable to add kqueue watch" msgstr "kqueue 監視を追加できませんでした" #: ../include/wx/msw/private/fswatcher.h:142 msgid "Unable to associate handle with I/O completion port" msgstr "ハンドルをI/O完了ポートに関連づけることができませんでした" #: ../include/wx/msw/private/fswatcher.h:125 msgid "Unable to close I/O completion port handle" msgstr "I/O完了ポートハンドルを閉じることができませんでした" #: ../src/unix/fswatcher_inotify.cpp:97 msgid "Unable to close inotify instance" msgstr "inotify 実体を閉じることができませんでした。" #: ../include/wx/unix/private/fswatcher_kqueue.h:74 #, c-format msgid "Unable to close path '%s'" msgstr "パス '%s' を閉じることができませんでした。" #: ../include/wx/msw/private/fswatcher.h:48 #, c-format msgid "Unable to close the handle for '%s'" msgstr "'%s' へのハンドルを閉じることができませんでした。" #: ../include/wx/msw/private/fswatcher.h:240 msgid "Unable to create I/O completion port" msgstr "I/O完了ポートを作成できません" #: ../src/msw/fswatcher.cpp:84 msgid "Unable to create IOCP worker thread" msgstr "IOCP ワーカースレッドを作成できません" #: ../src/unix/fswatcher_inotify.cpp:74 msgid "Unable to create inotify instance" msgstr "inotify 実体を作成できません" #: ../src/unix/fswatcher_kqueue.cpp:97 msgid "Unable to create kqueue instance" msgstr "kqueue 実体を作成できません" #: ../include/wx/msw/private/fswatcher.h:229 msgid "Unable to dequeue completion packet" msgstr "完了パケットを双方向に扱えませんでした" #: ../src/unix/fswatcher_kqueue.cpp:185 msgid "Unable to get events from kqueue" msgstr "kqueue からのイベントを取得できませんでした" #: ../src/osx/carbon/dataview.cpp:1903 msgid "Unable to handle native drag&drop data" msgstr "ネイティブのドラッグアンドドロップデータを制御できませんでした" #: ../src/gtk/app.cpp:439 msgid "Unable to initialize GTK+, is DISPLAY set properly?" msgstr "GTK+を初期化できません。 DISPLAY の設定が不適切の可能性があります。" #: ../src/gtk/app.cpp:276 msgid "Unable to initialize Hildon program" msgstr "Hildon プログラムを初期化できません" #: ../include/wx/unix/private/fswatcher_kqueue.h:57 #, c-format msgid "Unable to open path '%s'" msgstr "パス '%s' を開くことができません" #: ../src/html/htmlwin.cpp:561 #, c-format msgid "Unable to open requested HTML document: %s" msgstr "要求されたHTML文書を開くことができません: %s" #: ../src/unix/sound.cpp:368 msgid "Unable to play sound asynchronously." msgstr "音の非同期演奏はできません。" #: ../include/wx/msw/private/fswatcher.h:207 msgid "Unable to post completion status" msgstr "完了状態を post できませんでした" #: ../src/unix/fswatcher_inotify.cpp:530 msgid "Unable to read from inotify descriptor" msgstr "inotify 記述子から読み取ることができません" #: ../src/unix/fswatcher_inotify.cpp:132 msgid "Unable to remove inotify watch" msgstr "inotify 監視を削除できませんでした" #: ../src/unix/fswatcher_kqueue.cpp:153 msgid "Unable to remove kqueue watch" msgstr "kqueue 監視を削除できませんでした" #: ../src/msw/fswatcher.cpp:168 #, c-format msgid "Unable to set up watch for '%s'" msgstr "'%s' の監視を準備できませんでした。" #: ../src/msw/fswatcher.cpp:91 msgid "Unable to start IOCP worker thread" msgstr "IOCP ワーカースレッドを開始できませんでした" #: ../src/common/stockitem.cpp:201 msgid "Undelete" msgstr "削除の取り消し" #: ../src/common/stockitem.cpp:202 #, fuzzy msgid "Underline" msgstr "下線 (&U)" #: ../src/richtext/richtextfontpage.cpp:341 ../src/osx/carbon/fontdlg.cpp:556 #: ../src/propgrid/advprops.cpp:655 msgid "Underlined" msgstr "下線付き" #: ../src/common/stockitem.cpp:203 ../src/stc/stc_i18n.cpp:15 msgid "Undo" msgstr "元に戻す" #: ../src/common/stockitem.cpp:265 msgid "Undo last action" msgstr "最後の編集を取り消します" #: ../src/common/cmdline.cpp:864 #, c-format msgid "Unexpected characters following option '%s'." msgstr "オプション '%s' に想定外の文字が続いています。" #: ../src/unix/fswatcher_inotify.cpp:261 #, c-format msgid "Unexpected event for \"%s\": no matching watch descriptor." msgstr "" #: ../src/common/cmdline.cpp:1024 #, c-format msgid "Unexpected parameter '%s'" msgstr "想定外の変数 '%s' があります" #: ../include/wx/msw/private/fswatcher.h:148 msgid "Unexpectedly new I/O completion port was created" msgstr "予期しない新しいI/O完了ポートが作成されました" #: ../src/msw/fswatcher.cpp:70 msgid "Ungraceful worker thread termination" msgstr "ワーカースレッドを強引に停止させます" #: ../src/richtext/richtextsymboldlg.cpp:459 #: ../src/richtext/richtextsymboldlg.cpp:460 #: ../src/richtext/richtextsymboldlg.cpp:461 msgid "Unicode" msgstr "ユニコード" #: ../src/common/fmapbase.cpp:185 ../src/common/fmapbase.cpp:191 msgid "Unicode 16 bit (UTF-16)" msgstr "ユニコード 16 ビット (UTF-16)" #: ../src/common/fmapbase.cpp:190 msgid "Unicode 16 bit Big Endian (UTF-16BE)" msgstr "ユニコード 16 ビット Big Endian (UTF-16BE)" #: ../src/common/fmapbase.cpp:186 msgid "Unicode 16 bit Little Endian (UTF-16LE)" msgstr "ユニコード 16ビット Little Endian (UTF-16LE)" #: ../src/common/fmapbase.cpp:187 ../src/common/fmapbase.cpp:193 msgid "Unicode 32 bit (UTF-32)" msgstr "ユニコード 32 ビット (UTF-32)" #: ../src/common/fmapbase.cpp:192 msgid "Unicode 32 bit Big Endian (UTF-32BE)" msgstr "ユニコード 32 ビット Big Endian (UTF-32BE)" #: ../src/common/fmapbase.cpp:188 msgid "Unicode 32 bit Little Endian (UTF-32LE)" msgstr "ユニコード 32 ビット Little Endian (UTF-32LE)" #: ../src/common/fmapbase.cpp:182 msgid "Unicode 7 bit (UTF-7)" msgstr "ユニコード 7 ビット (UTF-7)" #: ../src/common/fmapbase.cpp:183 msgid "Unicode 8 bit (UTF-8)" msgstr "ユニコード 8 ビット (UTF-8)" #: ../src/common/stockitem.cpp:204 #, fuzzy msgid "Unindent" msgstr "字下げ解除 (&U)" #: ../src/richtext/richtextborderspage.cpp:373 #: ../src/richtext/richtextborderspage.cpp:375 msgid "Units for the bottom border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:278 #: ../src/richtext/richtextmarginspage.cpp:280 msgid "Units for the bottom margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:517 #: ../src/richtext/richtextborderspage.cpp:519 msgid "Units for the bottom outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:392 #: ../src/richtext/richtextmarginspage.cpp:394 msgid "Units for the bottom padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:664 #: ../src/richtext/richtextsizepage.cpp:666 #, fuzzy msgid "Units for the bottom position." msgstr "スレッドの終了待ちに失敗しました。" #: ../src/richtext/richtextborderspage.cpp:283 #: ../src/richtext/richtextborderspage.cpp:285 msgid "Units for the left border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:205 #: ../src/richtext/richtextmarginspage.cpp:207 msgid "Units for the left margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:427 #: ../src/richtext/richtextborderspage.cpp:429 msgid "Units for the left outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:319 #: ../src/richtext/richtextmarginspage.cpp:321 msgid "Units for the left padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:559 #: ../src/richtext/richtextsizepage.cpp:561 #, fuzzy msgid "Units for the left position." msgstr "スレッドの終了待ちに失敗しました。" #: ../src/richtext/richtextsizepage.cpp:485 #: ../src/richtext/richtextsizepage.cpp:487 #, fuzzy msgid "Units for the maximum object height." msgstr "フォントのウエイトを指定できます。" #: ../src/richtext/richtextsizepage.cpp:458 #: ../src/richtext/richtextsizepage.cpp:460 #, fuzzy msgid "Units for the maximum object width." msgstr "フォントのウエイトを指定できます。" #: ../src/richtext/richtextsizepage.cpp:431 #: ../src/richtext/richtextsizepage.cpp:433 #, fuzzy msgid "Units for the minimum object height." msgstr "フォントのウエイトを指定できます。" #: ../src/richtext/richtextsizepage.cpp:404 #: ../src/richtext/richtextsizepage.cpp:406 #, fuzzy msgid "Units for the minimum object width." msgstr "フォントのウエイトを指定できます。" #: ../src/richtext/richtextsizepage.cpp:377 #: ../src/richtext/richtextsizepage.cpp:379 msgid "Units for the object height." msgstr "" #: ../src/richtext/richtextsizepage.cpp:343 #: ../src/richtext/richtextsizepage.cpp:345 msgid "Units for the object width." msgstr "" #: ../src/richtext/richtextborderspage.cpp:313 #: ../src/richtext/richtextborderspage.cpp:315 msgid "Units for the right border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:230 #: ../src/richtext/richtextmarginspage.cpp:232 msgid "Units for the right margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:457 #: ../src/richtext/richtextborderspage.cpp:459 msgid "Units for the right outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:344 #: ../src/richtext/richtextmarginspage.cpp:346 msgid "Units for the right padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:629 #: ../src/richtext/richtextsizepage.cpp:631 #, fuzzy msgid "Units for the right position." msgstr "スレッドの終了待ちに失敗しました。" #: ../src/richtext/richtextborderspage.cpp:343 #: ../src/richtext/richtextborderspage.cpp:345 msgid "Units for the top border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:253 #: ../src/richtext/richtextmarginspage.cpp:255 #, fuzzy msgid "Units for the top margin." msgstr "スレッドの終了待ちに失敗しました。" #: ../src/richtext/richtextborderspage.cpp:487 #: ../src/richtext/richtextborderspage.cpp:489 msgid "Units for the top outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:367 #: ../src/richtext/richtextmarginspage.cpp:369 msgid "Units for the top padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:594 #: ../src/richtext/richtextsizepage.cpp:596 #, fuzzy msgid "Units for the top position." msgstr "スレッドの終了待ちに失敗しました。" #: ../src/generic/progdlgg.cpp:382 ../src/generic/progdlgg.cpp:655 msgid "Unknown" msgstr "不明" #: ../src/msw/dde.cpp:1177 #, c-format msgid "Unknown DDE error %08x" msgstr "想定外のDDE エラー 0x%08x" #: ../src/common/xtistrm.cpp:414 msgid "Unknown Object passed to GetObjectClassInfo" msgstr "未知のオブジェクトが GetObjectClassInfo に渡されました" #: ../src/common/imagpng.cpp:614 #, fuzzy, c-format msgid "Unknown PNG resolution unit %d" msgstr "未知の解像度単位 %d を無視しました" #: ../src/common/xtixml.cpp:327 #, c-format msgid "Unknown Property %s" msgstr "未知のプロパティ %s" #: ../src/common/imagtiff.cpp:532 #, c-format msgid "Unknown TIFF resolution unit %d ignored" msgstr "未知の解像度単位 %d を無視しました" #: ../src/osx/carbon/dataview.cpp:1978 msgid "Unknown data format" msgstr "未知のデータ様式です" #: ../src/unix/dlunix.cpp:325 msgid "Unknown dynamic library error" msgstr "想定外の動的ライブラリーエラー" #: ../src/common/fmapbase.cpp:810 #, c-format msgid "Unknown encoding (%d)" msgstr "未知のエンコーディング (%d)" #: ../src/msw/ole/automtn.cpp:677 #, fuzzy, c-format msgid "Unknown error %08x" msgstr "想定外のDDE エラー 0x%08x" #: ../src/msw/ole/automtn.cpp:636 #, fuzzy msgid "Unknown exception" msgstr "未定義の簡易オプション名 '%s'" #: ../src/common/image.cpp:2701 #, fuzzy msgid "Unknown image data format." msgstr "未知のデータ様式です" #: ../src/common/cmdline.cpp:749 #, c-format msgid "Unknown long option '%s'" msgstr "未定義の詳細オプション名 '%s'" #: ../src/msw/ole/automtn.cpp:620 #, fuzzy msgid "Unknown name or named argument." msgstr "未知のデータ様式です" #: ../src/common/cmdline.cpp:764 ../src/common/cmdline.cpp:786 #, c-format msgid "Unknown option '%s'" msgstr "未定義の簡易オプション名 '%s'" #: ../src/common/mimecmn.cpp:230 #, c-format msgid "Unmatched '{' in an entry for mime type %s." msgstr "MIME型 %s の項目に閉じていない '{' がありました。" #: ../src/common/cmdproc.cpp:262 ../src/common/cmdproc.cpp:288 #: ../src/common/cmdproc.cpp:308 msgid "Unnamed command" msgstr "無名コマンド" #: ../src/propgrid/propgrid.cpp:398 msgid "Unspecified" msgstr "未指定" #: ../src/msw/clipbrd.cpp:271 ../src/msw/clipbrd.cpp:439 msgid "Unsupported clipboard format." msgstr "未対応のクリップボード様式です。" #: ../src/common/appcmn.cpp:249 #, c-format msgid "Unsupported theme '%s'." msgstr "テーマ '%s' は未対応です。" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:205 msgid "Up" msgstr "上へ" #: ../src/richtext/richtextliststylepage.cpp:483 #: ../src/richtext/richtextbulletspage.cpp:288 msgid "Upper case letters" msgstr "大文字単語" #: ../src/richtext/richtextliststylepage.cpp:485 #: ../src/richtext/richtextbulletspage.cpp:290 msgid "Upper case roman numerals" msgstr "大文字ローマ数字" #: ../src/common/cmdline.cpp:1155 #, c-format msgid "Usage: %s" msgstr "使い方: %s" #: ../src/richtext/richtextindentspage.cpp:169 #: ../src/richtext/richtextindentspage.cpp:171 #: ../src/richtext/richtextliststylepage.cpp:358 #: ../src/richtext/richtextliststylepage.cpp:360 msgid "Use the current alignment setting." msgstr "現在の整列設定を用います。" #: ../src/osx/carbon/dataview.cpp:2658 ../src/osx/carbon/dataview.cpp:2723 msgid "Valid pointer to native data view control does not exist" msgstr "ネイティブデータビューコントロールへの有効なポインタがありません。" #: ../src/common/valtext.cpp:174 msgid "Validation conflict" msgstr "確認処理に矛盾があります" #: ../src/propgrid/manager.cpp:238 msgid "Value" msgstr "値" #: ../src/propgrid/props.cpp:384 #, fuzzy, c-format msgid "Value must be %s or higher." msgstr "%f 以上の値にしてください" #: ../src/propgrid/props.cpp:411 #, fuzzy, c-format msgid "Value must be %s or less." msgstr "%f 以下の値にしてください" #: ../src/propgrid/props.cpp:388 ../src/propgrid/props.cpp:415 #, fuzzy, c-format msgid "Value must be between %s and %s." msgstr "%f 以下の値にしてください" #: ../src/generic/aboutdlgg.cpp:128 msgid "Version " msgstr "バージョン " #: ../src/richtext/richtextsizepage.cpp:291 #: ../src/richtext/richtextsizepage.cpp:293 #, fuzzy msgid "Vertical alignment." msgstr "整列方法を設定できませんでした。" #: ../src/generic/filedlgg.cpp:216 msgid "View files as a detailed view" msgstr "詳細情報付きでファイル一覧を見る" #: ../src/generic/filedlgg.cpp:214 msgid "View files as a list view" msgstr "リスト形式でファイル一覧を見る" #: ../src/common/docview.cpp:1952 msgid "Views" msgstr "ビュー" #: ../src/common/accelcmn.cpp:108 msgid "WINDOWS_LEFT" msgstr "左Windows" #: ../src/common/accelcmn.cpp:110 msgid "WINDOWS_MENU" msgstr "Application" #: ../src/common/accelcmn.cpp:109 msgid "WINDOWS_RIGHT" msgstr "右Windows" #: ../src/unix/epolldispatcher.cpp:213 #, c-format msgid "Waiting for IO on epoll descriptor %d failed" msgstr "epoll 記述子 %d の IO 待ちに失敗しました" #: ../src/common/log.cpp:227 msgid "Warning: " msgstr "警告:" #: ../src/propgrid/advprops.cpp:651 msgid "Weight" msgstr "ウエイト" #: ../src/common/fmapbase.cpp:148 msgid "Western European (ISO-8859-1)" msgstr "西ヨーロッパ言語 (ISO-8859-1)" #: ../src/common/fmapbase.cpp:162 msgid "Western European with Euro (ISO-8859-15)" msgstr "西ヨーロッパ言語ユーロ記号付き (Latin-9, ISO-8859-15)" #: ../src/generic/fontdlgg.cpp:446 ../src/generic/fontdlgg.cpp:448 msgid "Whether the font is underlined." msgstr "フォントに下線が付くかどうか。" #: ../src/generic/fdrepdlg.cpp:144 msgid "Whole word" msgstr "単語全体" #: ../src/html/helpwnd.cpp:547 msgid "Whole words only" msgstr "全体一致のみ" #: ../src/univ/themes/win32.cpp:1102 msgid "Win32 theme" msgstr "Win32 テーマ" #: ../src/msw/utils.cpp:1220 msgid "Win32s on Windows 3.1" msgstr "Windows 3.1 上の Win32s" #: ../src/msw/utils.cpp:1270 #, fuzzy msgid "Windows 2000" msgstr "Windows 95" #: ../src/msw/utils.cpp:1302 #, fuzzy msgid "Windows 7" msgstr "Windows 95" #: ../src/msw/utils.cpp:1234 msgid "Windows 95" msgstr "Windows 95" #: ../src/msw/utils.cpp:1230 msgid "Windows 95 OSR2" msgstr "Windows 95 OSR2" #: ../src/msw/utils.cpp:1245 msgid "Windows 98" msgstr "Windows 98" #: ../src/msw/utils.cpp:1241 msgid "Windows 98 SE" msgstr "Windows 98 SE" #: ../src/msw/utils.cpp:1252 #, c-format msgid "Windows 9x (%d.%d)" msgstr "Windows 9x (%d.%d)" #: ../src/common/fmapbase.cpp:177 msgid "Windows Arabic (CP 1256)" msgstr "Windows アラビア語 (CP 1256)" #: ../src/common/fmapbase.cpp:178 msgid "Windows Baltic (CP 1257)" msgstr "Windows バルト言語 (CP 1257)" #: ../src/msw/utils.cpp:1214 #, c-format msgid "Windows CE (%d.%d)" msgstr "Windows CE (%d.%d)" #: ../src/common/fmapbase.cpp:171 msgid "Windows Central European (CP 1250)" msgstr "Windows 中央ヨーロッパ言語 (CP 1250)" #: ../src/common/fmapbase.cpp:168 #, fuzzy msgid "Windows Chinese Simplified (CP 936) or GB-2312" msgstr "Windows 簡体字中国語 (CP 936)" #: ../src/common/fmapbase.cpp:170 #, fuzzy msgid "Windows Chinese Traditional (CP 950) or Big-5" msgstr "Windows 繁体字中国語 (CP 950)" #: ../src/common/fmapbase.cpp:172 msgid "Windows Cyrillic (CP 1251)" msgstr "Windows キリル言語 (CP 1251)" #: ../src/common/fmapbase.cpp:174 msgid "Windows Greek (CP 1253)" msgstr "Windows ギリシャ語 (CP 1253)" #: ../src/common/fmapbase.cpp:176 msgid "Windows Hebrew (CP 1255)" msgstr "Windows ヘブライ語 (CP 1255)" #: ../src/common/fmapbase.cpp:167 #, fuzzy msgid "Windows Japanese (CP 932) or Shift-JIS" msgstr "Windows 日本語/Windows シフトJIS (CP 932)" #: ../src/common/fmapbase.cpp:180 #, fuzzy msgid "Windows Johab (CP 1361)" msgstr "Windows アラビア語 (CP 1256)" #: ../src/common/fmapbase.cpp:169 msgid "Windows Korean (CP 949)" msgstr "Windows 韓国語 (CP 949)" #: ../src/msw/utils.cpp:1249 msgid "Windows ME" msgstr "Windows ME" #: ../src/msw/utils.cpp:1310 #, fuzzy, c-format msgid "Windows NT %lu.%lu" msgstr "Windows NT %lu.%lu (ビルド %lu" #: ../src/msw/utils.cpp:1279 #, fuzzy msgid "Windows Server 2003" msgstr "Windows Server 2003 (ビルド %lu" #: ../src/msw/utils.cpp:1295 #, fuzzy msgid "Windows Server 2008" msgstr "Windows Server 2003 (ビルド %lu" #: ../src/msw/utils.cpp:1301 #, fuzzy msgid "Windows Server 2008 R2" msgstr "Windows Server 2003 (ビルド %lu" #: ../src/common/fmapbase.cpp:166 msgid "Windows Thai (CP 874)" msgstr "Windows タイ語 (CP 874)" #: ../src/common/fmapbase.cpp:175 msgid "Windows Turkish (CP 1254)" msgstr "Windows トルコ語 (CP 1254)" #: ../src/common/fmapbase.cpp:179 #, fuzzy msgid "Windows Vietnamese (CP 1258)" msgstr "Windows ギリシャ語 (CP 1253)" #: ../src/msw/utils.cpp:1296 #, fuzzy msgid "Windows Vista" msgstr "Windows Vista (ビルド %lu" #: ../src/common/fmapbase.cpp:173 msgid "Windows Western European (CP 1252)" msgstr "Windows 西ヨーロッパ言語 (CP 1252)" #: ../src/msw/utils.cpp:1285 #, fuzzy msgid "Windows XP" msgstr "Windows 95" #: ../src/common/fmapbase.cpp:181 msgid "Windows/DOS OEM (CP 437)" msgstr "Windows/DOS OEM (CP 437)" #: ../src/common/fmapbase.cpp:165 #, fuzzy msgid "Windows/DOS OEM Cyrillic (CP 866)" msgstr "Windows キリル言語 (CP 1251)" #: ../src/common/ffile.cpp:148 #, c-format msgid "Write error on file '%s'" msgstr "ファイル '%s' への書き出しエラー" #: ../src/xml/xml.cpp:844 #, c-format msgid "XML parsing error: '%s' at line %d" msgstr "XML 解析エラー: '%s' (%d行目)" #: ../src/common/xpmdecod.cpp:796 msgid "XPM: Malformed pixel data!" msgstr "XPM: 定形外のピクセルデータがありました" #: ../src/common/xpmdecod.cpp:705 #, c-format msgid "XPM: incorrect colour description in line %d" msgstr "XPM: %d行目の色記述に問題があります" #: ../src/common/xpmdecod.cpp:680 msgid "XPM: incorrect header format!" msgstr "XPM: ヘッダーが必要な様式を満たしていません。" #: ../src/common/xpmdecod.cpp:716 ../src/common/xpmdecod.cpp:725 #, c-format msgid "XPM: malformed colour definition '%s' at line %d!" msgstr "XPM: 定形外の色定義 '%s' が%d行目にありました。" #: ../src/common/xpmdecod.cpp:755 msgid "XPM: no colors left to use for mask!" msgstr "XPM: マスクに使うための色が残っていません。" #: ../src/common/xpmdecod.cpp:782 #, c-format msgid "XPM: truncated image data at line %d!" msgstr "XPM: %d行目に不完全な画像データがありました。" #: ../include/wx/msgdlg.h:271 ../src/common/stockitem.cpp:206 #: ../src/motif/msgdlg.cpp:196 msgid "Yes" msgstr "はい" #: ../src/osx/carbon/overlay.cpp:155 msgid "You cannot Clear an overlay that is not inited" msgstr "オーバーレイは初期化する前に Clear できません" #: ../src/osx/carbon/overlay.cpp:107 ../src/dfb/overlay.cpp:61 msgid "You cannot Init an overlay twice" msgstr "オーバーレイは二度 Init できません" #: ../src/generic/dirdlgg.cpp:316 msgid "You cannot add a new directory to this section." msgstr "このセクションに新しいディレクトリーは追加できません。" #: ../src/propgrid/propgrid.cpp:3258 msgid "You have entered invalid value. Press ESC to cancel editing." msgstr "" #: ../src/common/stockitem.cpp:209 msgid "Zoom &In" msgstr "拡大(&I)" #: ../src/common/stockitem.cpp:210 msgid "Zoom &Out" msgstr "縮小(&O)" #: ../src/common/stockitem.cpp:209 ../src/common/prntbase.cpp:1564 #, fuzzy msgid "Zoom In" msgstr "拡大(&I)" #: ../src/common/stockitem.cpp:210 ../src/common/prntbase.cpp:1550 #, fuzzy msgid "Zoom Out" msgstr "縮小(&O)" #: ../src/common/stockitem.cpp:208 msgid "Zoom to &Fit" msgstr "画面に合わせる(&F)" #: ../src/common/stockitem.cpp:208 #, fuzzy msgid "Zoom to Fit" msgstr "画面に合わせる(&F)" #: ../src/msw/dde.cpp:1144 msgid "a DDEML application has created a prolonged race condition." msgstr "DDEML アプリケーションが競合状態の延長として作成されています。" #: ../src/msw/dde.cpp:1132 msgid "" "a DDEML function was called without first calling the DdeInitialize " "function,\n" "or an invalid instance identifier\n" "was passed to a DDEML function." msgstr "" "DdeInitalize 関数より先に別の DDEML 関数が呼び出されたか、\n" "無効な実体識別子が DDEML 関数に渡されました。\n" " " #: ../src/msw/dde.cpp:1150 msgid "a client's attempt to establish a conversation has failed." msgstr "クライアントによる通信対話の確立が試みられましたが失敗しました。" #: ../src/msw/dde.cpp:1147 msgid "a memory allocation failed." msgstr "メモリ割り当てに失敗しました。" #: ../src/msw/dde.cpp:1141 msgid "a parameter failed to be validated by the DDEML." msgstr "DDEML の評価により引数の失敗が検出されました。" #: ../src/msw/dde.cpp:1123 msgid "a request for a synchronous advise transaction has timed out." msgstr "非同期 advise トランザクションの要求が時間切れになりました。" #: ../src/msw/dde.cpp:1129 msgid "a request for a synchronous data transaction has timed out." msgstr "非同期 data トランザクションの要求が時間切れになりました。" #: ../src/msw/dde.cpp:1138 msgid "a request for a synchronous execute transaction has timed out." msgstr "非同期 execute トランザクションの要求が時間切れになりました。" #: ../src/msw/dde.cpp:1156 msgid "a request for a synchronous poke transaction has timed out." msgstr "非同期 poke トランザクションの要求が時間切れになりました。" #: ../src/msw/dde.cpp:1171 msgid "a request to end an advise transaction has timed out." msgstr "advise トランザクション終了の要求が時間切れになりました。" #: ../src/msw/dde.cpp:1165 msgid "" "a server-side transaction was attempted on a conversation\n" "that was terminated by the client, or the server\n" "terminated before completing a transaction." msgstr "" "サーバーサイドトランザクションが通信対話の確立を試みましたが\n" "クライアントによって終了されたかトランザクション成立前に\n" "終了してしまいました。" #: ../src/msw/dde.cpp:1153 msgid "a transaction failed." msgstr "トランザクションが失敗しました。" #: ../src/common/accelcmn.cpp:184 msgid "alt" msgstr "Alt" #: ../src/msw/dde.cpp:1135 msgid "" "an application initialized as APPCLASS_MONITOR has\n" "attempted to perform a DDE transaction,\n" "or an application initialized as APPCMD_CLIENTONLY has \n" "attempted to perform server transactions." msgstr "" "APPCLASS_MONITOR として初期化されたアプリケーションが\n" "DDEトランザクションの実現を試みたか、\n" "APPCMD_CLIENTONLY で初期化されたものが\n" "サーバートランザクションの実現を試みようとしました。" #: ../src/msw/dde.cpp:1159 msgid "an internal call to the PostMessage function has failed. " msgstr "PostMessage関数の内部呼び出しが失敗しました。" #: ../src/msw/dde.cpp:1168 msgid "an internal error has occurred in the DDEML." msgstr "DDEMLの内部エラーが発生しました。" #: ../src/msw/dde.cpp:1174 msgid "" "an invalid transaction identifier was passed to a DDEML function.\n" "Once the application has returned from an XTYP_XACT_COMPLETE callback,\n" "the transaction identifier for that callback is no longer valid." msgstr "" "不正なトランザクション識別子が DDEML 関数に渡されました。\n" "XTYP_XACT_COMPLETE コールバックで識別子を使った後復帰した\n" "アプリケーションはその識別子を以後の呼び出しで使うことができません。" #: ../src/common/zipstrm.cpp:1272 msgid "assuming this is a multi-part zip concatenated" msgstr "複数のzipファイルが結合されるよう意図されたデータです" #: ../src/common/fileconf.cpp:1882 #, c-format msgid "attempt to change immutable key '%s' ignored." msgstr "不変キー '%s' への変更要求を無視しました。" #: ../src/html/chm.cpp:329 msgid "bad arguments to library function" msgstr "ライブラリ関数への引数に問題があります" #: ../src/html/chm.cpp:341 msgid "bad signature" msgstr "未対応の識別文字です" #: ../src/common/zipstrm.cpp:1715 msgid "bad zipfile offset to entry" msgstr "項目へのzipfileオフセットが不適当です" #: ../src/common/ftp.cpp:405 msgid "binary" msgstr "バイナリー" #: ../src/common/fontcmn.cpp:978 msgid "bold" msgstr "太字" #: ../src/os2/iniconf.cpp:463 msgid "buffer is too small for Windows directory." msgstr "バッファーが小さいので Windows ディレクトリーを格納できません。" #: ../src/msw/utils.cpp:1316 #, fuzzy, c-format msgid "build %lu" msgstr "Windows XP (ビルド %lu" #: ../src/common/ffile.cpp:79 #, c-format msgid "can't close file '%s'" msgstr "ファイル '%s' を閉じることができません" #: ../src/common/file.cpp:278 #, c-format msgid "can't close file descriptor %d" msgstr "記述子 %d のファイルを閉じることができません" #: ../src/common/file.cpp:604 #, c-format msgid "can't commit changes to file '%s'" msgstr "変更をファイル '%s' に反映できません。" #: ../src/common/file.cpp:212 #, c-format msgid "can't create file '%s'" msgstr "ファイル '%s' を作成できません" #: ../src/common/fileconf.cpp:1176 #, c-format msgid "can't delete user configuration file '%s'" msgstr "ユーザー設定ファイル '%s' を削除できません" #: ../src/common/file.cpp:511 #, c-format msgid "can't determine if the end of file is reached on descriptor %d" msgstr "記述子 %d のファイルがEOFに達したかどうかを判断できません" #: ../src/msdos/utilsdos.cpp:310 ../src/msdos/utilsdos.cpp:475 #, c-format msgid "can't execute '%s'" msgstr "'%s' を実行できません。" #: ../src/common/zipstrm.cpp:1490 msgid "can't find central directory in zip" msgstr "zip内にセントラルディレクトリー部が見つかりません。" #: ../src/common/file.cpp:481 #, c-format msgid "can't find length of file on file descriptor %d" msgstr "記述子 %d のファイルから長さを取得できません" #: ../src/msw/utils.cpp:373 msgid "can't find user's HOME, using current directory." msgstr "ユーザーのHOMEが見つかりません。カレントディレクトリーを使用します。" #: ../src/common/file.cpp:382 #, c-format msgid "can't flush file descriptor %d" msgstr "記述子 %d のファイルをフラッシュできません" #: ../src/common/file.cpp:438 ../src/msw/wince/filefnwce.cpp:204 #, c-format msgid "can't get seek position on file descriptor %d" msgstr "記述子 %d のファイルからシーク位置を取得できません" #: ../src/common/fontmap.cpp:325 msgid "can't load any font, aborting" msgstr "フォントが一切読み取れません、中止します" #: ../src/common/file.cpp:264 ../src/common/ffile.cpp:63 #, c-format msgid "can't open file '%s'" msgstr "ファイル '%s' を開くことができません。" #: ../src/common/fileconf.cpp:351 #, c-format msgid "can't open global configuration file '%s'." msgstr "共有設定ファイル '%s' を開くことができません。" #: ../src/common/fileconf.cpp:367 #, c-format msgid "can't open user configuration file '%s'." msgstr "ユーザー設定ファイル '%s' を開くことができません。" #: ../src/common/fileconf.cpp:1017 msgid "can't open user configuration file." msgstr "ユーザー設定ファイルを開くことができません。" #: ../src/common/zipstrm.cpp:527 msgid "can't re-initialize zlib deflate stream" msgstr "zlibをdeflateストリームで再初期化できません" #: ../src/common/zipstrm.cpp:552 msgid "can't re-initialize zlib inflate stream" msgstr "zlibをinflateストリームで再初期化できません" #: ../src/common/file.cpp:334 #, c-format msgid "can't read from file descriptor %d" msgstr "記述子 %d のファイルから読み取ることができません" #: ../src/common/file.cpp:599 #, c-format msgid "can't remove file '%s'" msgstr "ファイル '%s' を削除できません" #: ../src/common/file.cpp:616 #, c-format msgid "can't remove temporary file '%s'" msgstr "一時ファイル '%s' を削除できません" #: ../src/common/file.cpp:424 ../src/msw/wince/filefnwce.cpp:190 #, c-format msgid "can't seek on file descriptor %d" msgstr "記述子 %d のファイル上をシークできません" #: ../src/common/textfile.cpp:299 #, c-format msgid "can't write buffer '%s' to disk." msgstr "バッファー '%s' をディスクに書き出すことができません。" #: ../src/common/file.cpp:350 #, c-format msgid "can't write to file descriptor %d" msgstr "記述子 %d のファイルへ書き出すことができません。" #: ../src/common/fileconf.cpp:1031 msgid "can't write user configuration file." msgstr "ユーザー設定ファイルを書き出すことができません。" #: ../src/html/chm.cpp:345 msgid "checksum error" msgstr "チェックサムエラー" #: ../src/common/tarstrm.cpp:820 msgid "checksum failure reading tar header block" msgstr "ヘッダーブロックを読み取り中にチェックサムの不整合が見つかりました" #: ../src/richtext/richtextborderspage.cpp:280 #: ../src/richtext/richtextborderspage.cpp:310 #: ../src/richtext/richtextborderspage.cpp:340 #: ../src/richtext/richtextborderspage.cpp:370 #: ../src/richtext/richtextborderspage.cpp:424 #: ../src/richtext/richtextborderspage.cpp:454 #: ../src/richtext/richtextborderspage.cpp:484 #: ../src/richtext/richtextborderspage.cpp:514 #: ../src/richtext/richtextmarginspage.cpp:202 #: ../src/richtext/richtextmarginspage.cpp:227 #: ../src/richtext/richtextmarginspage.cpp:250 #: ../src/richtext/richtextmarginspage.cpp:275 #: ../src/richtext/richtextmarginspage.cpp:316 #: ../src/richtext/richtextmarginspage.cpp:341 #: ../src/richtext/richtextmarginspage.cpp:364 #: ../src/richtext/richtextmarginspage.cpp:389 #: ../src/richtext/richtextsizepage.cpp:339 #: ../src/richtext/richtextsizepage.cpp:373 #: ../src/richtext/richtextsizepage.cpp:400 #: ../src/richtext/richtextsizepage.cpp:427 #: ../src/richtext/richtextsizepage.cpp:454 #: ../src/richtext/richtextsizepage.cpp:481 #: ../src/richtext/richtextsizepage.cpp:555 #: ../src/richtext/richtextsizepage.cpp:590 #: ../src/richtext/richtextsizepage.cpp:625 #: ../src/richtext/richtextsizepage.cpp:660 msgid "cm" msgstr "" #: ../src/html/chm.cpp:347 msgid "compression error" msgstr "圧縮エラー" #: ../src/common/regex.cpp:239 msgid "conversion to 8-bit encoding failed" msgstr "8ビットエンコーディングへの変換に失敗しました" #: ../src/common/accelcmn.cpp:182 msgid "ctrl" msgstr "Ctrl" #: ../src/common/cmdline.cpp:1323 msgid "date" msgstr "日付" #: ../src/html/chm.cpp:349 msgid "decompression error" msgstr "展開エラー" #: ../src/richtext/richtextstyles.cpp:780 ../src/common/fmapbase.cpp:820 msgid "default" msgstr "規定" #: ../src/common/cmdline.cpp:1319 msgid "double" msgstr "double値" #: ../src/common/debugrpt.cpp:543 msgid "dump of the process state (binary)" msgstr "バイナリーによるプロセス状態のダンプ" #: ../src/common/datetimefmt.cpp:1936 msgid "eighteenth" msgstr "18日" #: ../src/common/datetimefmt.cpp:1926 msgid "eighth" msgstr "8日" #: ../src/common/datetimefmt.cpp:1929 msgid "eleventh" msgstr "11日" #: ../src/common/fileconf.cpp:1868 #, c-format msgid "entry '%s' appears more than once in group '%s'" msgstr "項目 '%s' が二回以上グループ '%s' に現れています" #: ../src/html/chm.cpp:343 msgid "error in data format" msgstr "データ様式にエラーがありました" #: ../src/msdos/utilsdos.cpp:413 #, c-format msgid "error opening '%s'" msgstr "'%s' を開く際にエラーが発生しました" #: ../src/html/chm.cpp:331 msgid "error opening file" msgstr "ファイルを開く際にエラーが発生しました" #: ../src/common/zipstrm.cpp:1576 msgid "error reading zip central directory" msgstr "zipのセントラルディレクトリーを読み取り中にエラーを検出しました" #: ../src/common/zipstrm.cpp:1667 msgid "error reading zip local header" msgstr "zipのローカルヘッダーを読み取り中にエラーを検出しました。" #: ../src/common/zipstrm.cpp:2396 #, c-format msgid "error writing zip entry '%s': bad crc or length" msgstr "zip項目 '%s' の書き出しエラー: CRCまたは長さが不正です" #: ../src/common/ffile.cpp:170 #, c-format msgid "failed to flush the file '%s'" msgstr "ファイル '%s' のフラッシュができませんでした" #: ../src/common/datetimefmt.cpp:1933 msgid "fifteenth" msgstr "15日" #: ../src/common/datetimefmt.cpp:1923 msgid "fifth" msgstr "5日" #: ../src/common/fileconf.cpp:610 #, c-format msgid "file '%s', line %d: '%s' ignored after group header." msgstr "ファイル '%s' %d行目: グループヘッダの後にある '%s' は無視されます。" #: ../src/common/fileconf.cpp:639 #, c-format msgid "file '%s', line %d: '=' expected." msgstr "ファイル '%s' %d行目: '=' がありません。" #: ../src/common/fileconf.cpp:662 #, c-format msgid "file '%s', line %d: key '%s' was first found at line %d." msgstr "ファイル '%s' %d行目: キー '%s' はすでに %d行目に出てきました。" #: ../src/common/fileconf.cpp:652 #, c-format msgid "file '%s', line %d: value for immutable key '%s' ignored." msgstr "ファイル '%s' %d行目: 不変キー '%s' への値は無視されます。" #: ../src/common/fileconf.cpp:574 #, c-format msgid "file '%s': unexpected character %c at line %d." msgstr "ファイル '%s': 想定外の文字 %c が %d 行目にありました。" #: ../src/richtext/richtextbuffer.cpp:8358 msgid "files" msgstr "ファイル" #: ../src/common/datetimefmt.cpp:1919 msgid "first" msgstr "1日" #: ../src/html/helpwnd.cpp:1265 msgid "font size" msgstr "フォントの大きさ" #: ../src/common/datetimefmt.cpp:1932 msgid "fourteenth" msgstr "14日" #: ../src/common/datetimefmt.cpp:1922 msgid "fourth" msgstr "4日" #: ../src/common/appbase.cpp:695 msgid "generate verbose log messages" msgstr "冗長なログメッセージを生成します。" #: ../src/richtext/richtextbuffer.cpp:12212 #: ../src/richtext/richtextbuffer.cpp:12322 msgid "image" msgstr "画像一時ファイル" #: ../src/common/tarstrm.cpp:796 msgid "incomplete header block in tar" msgstr "不完全なtarヘッダブロックです" #: ../src/common/xtixml.cpp:489 msgid "incorrect event handler string, missing dot" msgstr "点が付いていない不正なイベントハンドラー文字列です" #: ../src/common/tarstrm.cpp:1381 msgid "incorrect size given for tar entry" msgstr "tar項目に不正な大きさが与えられています" #: ../src/common/tarstrm.cpp:993 msgid "invalid data in extended tar header" msgstr "拡張tarヘッダに不正なデータがあります" #: ../src/generic/logg.cpp:1050 msgid "invalid message box return value" msgstr "メッセージボックスの戻り値は不正なものになります。" #: ../src/common/zipstrm.cpp:1445 msgid "invalid zip file" msgstr "不完全なzipファイルです" #: ../src/common/fontcmn.cpp:983 msgid "italic" msgstr "イタリック" #: ../src/common/fontcmn.cpp:973 msgid "light" msgstr "軽量" #: ../src/common/intl.cpp:293 #, c-format msgid "locale '%s' cannot be set." msgstr "ロケールに '%s' を指定できませんでした。" #: ../src/common/datetimefmt.cpp:2092 msgid "midnight" msgstr "0時" #: ../src/common/datetimefmt.cpp:1937 msgid "nineteenth" msgstr "19日" #: ../src/common/datetimefmt.cpp:1927 msgid "ninth" msgstr "9日" #: ../src/msw/dde.cpp:1119 msgid "no DDE error." msgstr "DDE エラーはありませんでした。" #: ../src/html/chm.cpp:327 msgid "no error" msgstr "エラーなし" #: ../src/dfb/fontmgr.cpp:174 #, c-format msgid "no fonts found in %s, using builtin font" msgstr "%s にフォントが含まれていません。ビルトインフォントを使用します" #: ../src/html/helpdata.cpp:655 msgid "noname" msgstr "名称未設定" #: ../src/common/datetimefmt.cpp:2091 msgid "noon" msgstr "正午" #: ../src/richtext/richtextstyles.cpp:779 msgid "normal" msgstr "通常" #: ../src/gtk/print.cpp:1218 ../src/gtk/print.cpp:1323 msgid "not implemented" msgstr "実装されていません" #: ../src/common/cmdline.cpp:1315 msgid "num" msgstr "数値" #: ../src/common/xtixml.cpp:259 msgid "objects cannot have XML Text Nodes" msgstr "オブジェクトは XML テキストノードを持つことができません" #: ../src/html/chm.cpp:339 msgid "out of memory" msgstr "メモリ不足" #: ../src/richtext/richtextsizepage.cpp:340 #: ../src/richtext/richtextsizepage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:401 #: ../src/richtext/richtextsizepage.cpp:428 #: ../src/richtext/richtextsizepage.cpp:455 #: ../src/richtext/richtextsizepage.cpp:482 #: ../src/richtext/richtextsizepage.cpp:556 #: ../src/richtext/richtextsizepage.cpp:591 #: ../src/richtext/richtextsizepage.cpp:626 #: ../src/richtext/richtextsizepage.cpp:661 msgid "percent" msgstr "" #: ../src/common/debugrpt.cpp:519 msgid "process context description" msgstr "プロセスコンテキストの記述" #: ../src/richtext/richtextfontpage.cpp:186 #: ../src/richtext/richtextfontpage.cpp:189 msgid "pt" msgstr "" #: ../src/richtext/richtextfontpage.cpp:187 #: ../src/richtext/richtextborderspage.cpp:279 #: ../src/richtext/richtextborderspage.cpp:281 #: ../src/richtext/richtextborderspage.cpp:282 #: ../src/richtext/richtextborderspage.cpp:309 #: ../src/richtext/richtextborderspage.cpp:311 #: ../src/richtext/richtextborderspage.cpp:312 #: ../src/richtext/richtextborderspage.cpp:339 #: ../src/richtext/richtextborderspage.cpp:341 #: ../src/richtext/richtextborderspage.cpp:342 #: ../src/richtext/richtextborderspage.cpp:369 #: ../src/richtext/richtextborderspage.cpp:371 #: ../src/richtext/richtextborderspage.cpp:372 #: ../src/richtext/richtextborderspage.cpp:423 #: ../src/richtext/richtextborderspage.cpp:425 #: ../src/richtext/richtextborderspage.cpp:426 #: ../src/richtext/richtextborderspage.cpp:453 #: ../src/richtext/richtextborderspage.cpp:455 #: ../src/richtext/richtextborderspage.cpp:456 #: ../src/richtext/richtextborderspage.cpp:483 #: ../src/richtext/richtextborderspage.cpp:485 #: ../src/richtext/richtextborderspage.cpp:486 #: ../src/richtext/richtextborderspage.cpp:513 #: ../src/richtext/richtextborderspage.cpp:515 #: ../src/richtext/richtextborderspage.cpp:516 #: ../src/richtext/richtextmarginspage.cpp:201 #: ../src/richtext/richtextmarginspage.cpp:203 #: ../src/richtext/richtextmarginspage.cpp:204 #: ../src/richtext/richtextmarginspage.cpp:226 #: ../src/richtext/richtextmarginspage.cpp:228 #: ../src/richtext/richtextmarginspage.cpp:229 #: ../src/richtext/richtextmarginspage.cpp:249 #: ../src/richtext/richtextmarginspage.cpp:251 #: ../src/richtext/richtextmarginspage.cpp:252 #: ../src/richtext/richtextmarginspage.cpp:274 #: ../src/richtext/richtextmarginspage.cpp:276 #: ../src/richtext/richtextmarginspage.cpp:277 #: ../src/richtext/richtextmarginspage.cpp:315 #: ../src/richtext/richtextmarginspage.cpp:317 #: ../src/richtext/richtextmarginspage.cpp:318 #: ../src/richtext/richtextmarginspage.cpp:340 #: ../src/richtext/richtextmarginspage.cpp:342 #: ../src/richtext/richtextmarginspage.cpp:343 #: ../src/richtext/richtextmarginspage.cpp:363 #: ../src/richtext/richtextmarginspage.cpp:365 #: ../src/richtext/richtextmarginspage.cpp:366 #: ../src/richtext/richtextmarginspage.cpp:388 #: ../src/richtext/richtextmarginspage.cpp:390 #: ../src/richtext/richtextmarginspage.cpp:391 #: ../src/richtext/richtextsizepage.cpp:338 #: ../src/richtext/richtextsizepage.cpp:341 #: ../src/richtext/richtextsizepage.cpp:342 #: ../src/richtext/richtextsizepage.cpp:372 #: ../src/richtext/richtextsizepage.cpp:375 #: ../src/richtext/richtextsizepage.cpp:376 #: ../src/richtext/richtextsizepage.cpp:399 #: ../src/richtext/richtextsizepage.cpp:402 #: ../src/richtext/richtextsizepage.cpp:403 #: ../src/richtext/richtextsizepage.cpp:426 #: ../src/richtext/richtextsizepage.cpp:429 #: ../src/richtext/richtextsizepage.cpp:430 #: ../src/richtext/richtextsizepage.cpp:453 #: ../src/richtext/richtextsizepage.cpp:456 #: ../src/richtext/richtextsizepage.cpp:457 #: ../src/richtext/richtextsizepage.cpp:480 #: ../src/richtext/richtextsizepage.cpp:483 #: ../src/richtext/richtextsizepage.cpp:484 #: ../src/richtext/richtextsizepage.cpp:554 #: ../src/richtext/richtextsizepage.cpp:557 #: ../src/richtext/richtextsizepage.cpp:558 #: ../src/richtext/richtextsizepage.cpp:589 #: ../src/richtext/richtextsizepage.cpp:592 #: ../src/richtext/richtextsizepage.cpp:593 #: ../src/richtext/richtextsizepage.cpp:624 #: ../src/richtext/richtextsizepage.cpp:627 #: ../src/richtext/richtextsizepage.cpp:628 #: ../src/richtext/richtextsizepage.cpp:659 #: ../src/richtext/richtextsizepage.cpp:662 #: ../src/richtext/richtextsizepage.cpp:663 msgid "px" msgstr "" #: ../src/common/accelcmn.cpp:188 #, fuzzy msgid "rawctrl" msgstr "Ctrl" #: ../src/html/chm.cpp:333 msgid "read error" msgstr "読み取りエラー" #: ../src/common/zipstrm.cpp:1882 #, c-format msgid "reading zip stream (entry %s): bad crc" msgstr "zipストリームの読み取り中 (項目 %s): CRC 不一致" #: ../src/common/zipstrm.cpp:1877 #, c-format msgid "reading zip stream (entry %s): bad length" msgstr "zipストリームの読み取り中 (項目 %s): 不正な長さ" #: ../src/msw/dde.cpp:1162 msgid "reentrancy problem." msgstr "同期トランザクションが別の同期トランザクションを開始しようとしました。" #: ../src/common/datetimefmt.cpp:1920 msgid "second" msgstr "2日" #: ../src/html/chm.cpp:337 msgid "seek error" msgstr "シークエラー" #: ../src/common/datetimefmt.cpp:1935 msgid "seventeenth" msgstr "17日" #: ../src/common/datetimefmt.cpp:1925 msgid "seventh" msgstr "7日" #: ../src/common/accelcmn.cpp:186 msgid "shift" msgstr "Shift" #: ../src/common/appbase.cpp:685 msgid "show this help message" msgstr "このヘルプメッセージを表示します" #: ../src/common/datetimefmt.cpp:1934 msgid "sixteenth" msgstr "16日" #: ../src/common/datetimefmt.cpp:1924 msgid "sixth" msgstr "6日" #: ../src/common/appcmn.cpp:227 msgid "specify display mode to use (e.g. 640x480-16)" msgstr "使用する画面モードを指定ください(例: 640x480-16)" #: ../src/common/appcmn.cpp:213 msgid "specify the theme to use" msgstr "使用するテーマを指定ください" #: ../src/richtext/richtextbuffer.cpp:8876 msgid "standard/circle" msgstr "標準/丸" #: ../src/richtext/richtextbuffer.cpp:8877 #, fuzzy msgid "standard/circle-outline" msgstr "標準/丸" #: ../src/richtext/richtextbuffer.cpp:8879 msgid "standard/diamond" msgstr "標準/ひし形" #: ../src/richtext/richtextbuffer.cpp:8878 msgid "standard/square" msgstr "標準/四角" #: ../src/richtext/richtextbuffer.cpp:8880 msgid "standard/triangle" msgstr "標準/三角" #: ../src/common/zipstrm.cpp:1782 msgid "stored file length not in Zip header" msgstr "Zipヘッダーにファイルの長さが記されていません" #: ../src/common/cmdline.cpp:1311 msgid "str" msgstr "文字列" #: ../src/common/fontcmn.cpp:794 ../src/common/fontcmn.cpp:969 #, fuzzy msgid "strikethrough" msgstr "打ち消し線 (&S)" #: ../src/common/tarstrm.cpp:1003 ../src/common/tarstrm.cpp:1025 #: ../src/common/tarstrm.cpp:1507 ../src/common/tarstrm.cpp:1529 msgid "tar entry not open" msgstr "TARの項目を開くことができません" #: ../src/common/datetimefmt.cpp:1928 msgid "tenth" msgstr "10日" #: ../src/msw/dde.cpp:1126 msgid "the response to the transaction caused the DDE_FBUSY bit to be set." msgstr "トランザクションへの応答が DDE_FBUSY ビットの設定を引き起こしました。" #: ../src/common/datetimefmt.cpp:1921 msgid "third" msgstr "3日" #: ../src/common/datetimefmt.cpp:1931 msgid "thirteenth" msgstr "13日" #: ../src/common/datetimefmt.cpp:1725 msgid "today" msgstr "今日" #: ../src/common/datetimefmt.cpp:1727 msgid "tomorrow" msgstr "明日" #: ../src/common/fileconf.cpp:1979 #, c-format msgid "trailing backslash ignored in '%s'" msgstr "'%s' の末尾にある / は無視されました" #: ../src/gtk/aboutdlg.cpp:218 msgid "translator-credits" msgstr "翻訳者-謝辞" #: ../src/common/datetimefmt.cpp:1930 msgid "twelfth" msgstr "12日" #: ../src/common/datetimefmt.cpp:1938 msgid "twentieth" msgstr "20日" #: ../src/common/fontcmn.cpp:789 ../src/common/fontcmn.cpp:965 msgid "underlined" msgstr "下線" #: ../src/common/fileconf.cpp:2014 #, c-format msgid "unexpected \" at position %d in '%s'." msgstr "%d文字目に想定外の\"があります '%s'。" #: ../src/common/tarstrm.cpp:1045 msgid "unexpected end of file" msgstr "想定外の状況でファイル末尾に達しました" #: ../src/generic/progdlgg.cpp:399 ../src/common/tarstrm.cpp:371 #: ../src/common/tarstrm.cpp:394 ../src/common/tarstrm.cpp:425 msgid "unknown" msgstr "不明" #: ../src/common/xtixml.cpp:253 #, c-format msgid "unknown class %s" msgstr "不明なクラス %s" #: ../src/common/regex.cpp:261 ../src/html/chm.cpp:351 msgid "unknown error" msgstr "想定外のエラーです" #: ../src/msw/dialup.cpp:490 #, c-format msgid "unknown error (error code %08x)." msgstr "想定外のエラーです (エラーコード 0x%08x)." #: ../src/msw/wince/filefnwce.cpp:172 msgid "unknown seek origin" msgstr "未対応のシーク方法です" #: ../src/common/fmapbase.cpp:834 #, c-format msgid "unknown-%d" msgstr "未知-%d" #: ../src/common/docview.cpp:507 msgid "unnamed" msgstr "名称未指定" #: ../src/common/docview.cpp:1606 #, c-format msgid "unnamed%d" msgstr "名称未指定%d" #: ../src/common/zipstrm.cpp:1796 ../src/common/zipstrm.cpp:2184 msgid "unsupported Zip compression method" msgstr "この Zip 圧縮法には未対応です" #: ../src/common/translation.cpp:1883 #, c-format msgid "using catalog '%s' from '%s'." msgstr "カタログ '%s' を '%s' から利用します。" #: ../src/html/chm.cpp:335 msgid "write error" msgstr "書き出しエラー" #: ../src/common/time.cpp:318 msgid "wxGetTimeOfDay failed." msgstr "wxGetTimeOfDay が失敗しました。" #: ../src/gtk/print.cpp:987 msgid "wxPrintout::GetPageInfo gives a null maxPage." msgstr "wxPrintout::GetPageInfo が maxPage に 0 を返しました。" #: ../src/osx/carbon/dataview.cpp:1303 msgid "wxWidget control pointer is not a data view pointer" msgstr "wxWidgets コントロールポインターはデータビューポインターではありません" #: ../src/osx/carbon/dataview.cpp:907 msgid "wxWidget's control not initialized." msgstr "wxWidgetsのコントロールが初期化されていません。" #: ../src/motif/app.cpp:245 #, c-format msgid "wxWidgets could not open display for '%s': exiting." msgstr "" "wxWidgets はディスプレイ '%s' を開くことができませんでした: 終了します。" #: ../src/x11/app.cpp:164 msgid "wxWidgets could not open display. Exiting." msgstr "wxWidgets はディスプレイを開くことができませんでした。終了します。" #: ../src/richtext/richtextsymboldlg.cpp:434 msgid "xxxx" msgstr "xxxx" #: ../src/common/datetimefmt.cpp:1726 msgid "yesterday" msgstr "昨日" #: ../src/common/zstream.cpp:251 ../src/common/zstream.cpp:426 #, c-format msgid "zlib error %d" msgstr "zlib エラー %d" #: ../src/richtext/richtextliststylepage.cpp:496 #: ../src/richtext/richtextbulletspage.cpp:301 msgid "~" msgstr "~" #~ msgid "Print preview" #~ msgstr "印刷プレビュー" #~ msgid "'" #~ msgstr "'" #~ msgid "1" #~ msgstr "1" #, fuzzy #~ msgid "10" #~ msgstr "1" #~ msgid "3" #~ msgstr "3" #~ msgid "4" #~ msgstr "4" #~ msgid "5" #~ msgstr "5" #~ msgid "6" #~ msgstr "6" #~ msgid "7" #~ msgstr "7" #~ msgid "8" #~ msgstr "8" #~ msgid "9" #~ msgstr "9" #~ msgid "File system containing watched object was unmounted" #~ msgstr "監視中のオブジェクトを持つファイルシステムがアンマウントされました" #, fuzzy #~ msgid "&Preview..." #~ msgstr " プレビュー" #~ msgid "Passing an unkown object to GetObject" #~ msgstr "GetObject に未知のオブジェクトが渡されました" #, fuzzy #~ msgid "Preview..." #~ msgstr " プレビュー" #, fuzzy #~ msgid "The vertical offset relative to the paragraph." #~ msgstr "次の段落に適用されるスタイルを指定します。" #~ msgid "&Save..." #~ msgstr "保存 (&S) ..." #~ msgid "About " #~ msgstr "詳細" #~ msgid "All files (*.*)|*" #~ msgstr "すべてのファイル (*.*)|*" #~ msgid "Cannot initialize SciTech MGL!" #~ msgstr "SciTech MGL を初期化できません。" #~ msgid "Cannot initialize display." #~ msgstr "ディスプレイを初期化できません。" #~ msgid "Cannot start thread: error writing TLS" #~ msgstr "スレッドを開始できません: TLSへの書き込みに失敗しています。" #~ msgid "Close\tAlt-F4" #~ msgstr "閉じる\tAlt-F4" #~ msgid "Couldn't create cursor." #~ msgstr "カーソルを作成できませんでした" #~ msgid "Directory '%s' doesn't exist!" #~ msgstr "ディレクトリー '%s' は存在しません。" #~ msgid "File %s does not exist." #~ msgstr "ファイル %s は存在しません。" #~ msgid "Mode %ix%i-%i not available." #~ msgstr "モード %ix%i-%i は使えません。" #~ msgid "Paper Size" #~ msgstr "用紙サイズ" #~ msgid "%s" #~ msgstr "%s" #~ msgid "&Goto..." #~ msgstr "移動 (&G)..." #~ msgid "<<" #~ msgstr "<<" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">>|" #~ msgstr ">>|" #~ msgid "Added item is invalid." #~ msgstr "追加された項目は正しくないようです。" #~ msgid "BIG5" #~ msgstr "BIG5" #~ msgid "Can't check image format of file '%s': file does not exist." #~ msgstr "ファイル '%s' が存在しないため画像形式の調査はできません。" #~ msgid "Can't load image from file '%s': file does not exist." #~ msgstr "ファイル '%s' は存在しないため画像の読み取りができません。" #~ msgid "Cannot open file '%s'." #~ msgstr "ファイル '%s' を開くことができません。" #~ msgid "Changed item is invalid." #~ msgstr "変更された項目が不正のようです。" #~ msgid "Click to cancel this window." #~ msgstr "クリックでこのウィンドウをキャンセルします。" #~ msgid "Click to confirm your selection." #~ msgstr "クリックで選択を確定します。" #~ msgid "Column could not be added to native control." #~ msgstr "列をネイティブコントロールに追加できませんでした。" #~ msgid "Column does not have a renderer." #~ msgstr "列のレンダラーがありません。" #~ msgid "Column pointer must not be NULL." #~ msgstr "列のポインタは NULL にはできません。" #~ msgid "Column's model column has no equivalent in the associated model." #~ msgstr "関連づけられたモデルの中には列のモデルに適合するものがありません。" #~ msgid "Could not add column to internal structures." #~ msgstr "内部構造に列を追加できませんでした。" #~ msgid "Enter a page number between %d and %d:" #~ msgstr "%d から %d までの値でページを指定してください:" #~ msgid "Failed to create a status bar." #~ msgstr "ステータスバーを作成できませんでした。" #~ msgid "GB-2312" #~ msgstr "GB-2312" #~ msgid "Goto Page" #~ msgstr "ページ番号指定" #~ msgid "" #~ "HTML pagination algorithm generated more than the allowed maximum number " #~ "of pages and it can't continue any longer!" #~ msgstr "" #~ "HTMLのページ化アルゴリズムが出力可能数より多くのページを生成しました。生成" #~ "を中断します。" #~ msgid "I64" #~ msgstr "I64" #~ msgid "Internal error, illegal wxCustomTypeInfo" #~ msgstr "内部エラーです。不正な wxCustomTypeInfo を検出しました" #~ msgid "Model pointer not initialized." #~ msgstr "モデルポインターは初期化されていません。" #~ msgid "No image handler for type %ld defined." #~ msgstr "%ld 型のイメージハンドラーが定義されていません。" #~ msgid "No model associated with control." #~ msgstr "コントロールにモデルが関連づけられていません。" #~ msgid "Owner not initialized." #~ msgstr "Ownerは初期化されていません。" #~ msgid "Passed item is invalid." #~ msgstr "与えられた項目は無効です。" #~ msgid "Passing a already registered object to SetObjectName" #~ msgstr "SetObjectName に登録済みのオブジェクトが渡されました" #~ msgid "Pointer to dataview control must not be NULL" #~ msgstr "データビューコントロールへのポインタには NULL を指定できません" #~ msgid "Pointer to native control must not be NULL." #~ msgstr "ネイティブコントロールへのポインタには NULL を指定できません。" #~ msgid "SHIFT-JIS" #~ msgstr "SHIFT-JIS" #~ msgid "" #~ "Streaming delegates for not already streamed objects not yet supported" #~ msgstr "" #~ "ストリーム化されていないオブジェクトへのストリーム委譲は実装されていませ" #~ "ん。" #~ msgid "" #~ "The data format for the GET-direction of the to be added data object " #~ "already exists" #~ msgstr "" #~ "追加しようとしているデータオブジェクトのGET方向に関するデータ様式はすでに" #~ "存在します。" #~ msgid "" #~ "The data format for the SET-direction of the to be added data object " #~ "already exists" #~ msgstr "" #~ "追加しようとしているデータオブジェクトのSET方向に関するデータ様式はすでに" #~ "存在します。" #~ msgid "The file '%s' doesn't exist and couldn't be opened." #~ msgstr "ファイル '%s' を開こうとしましたが存在しませんでした。" #~ msgid "The path '%s' contains too many \"..\"!" #~ msgstr "パス '%s' に含まれる \"..\" が多すぎます。" #~ msgid "To be deleted item is invalid." #~ msgstr "削除しようとしている項目の指定が正しくないようです。" #~ msgid "Update" #~ msgstr "更新" #~ msgid "Value must be %lld or higher" #~ msgstr "%lld 以上の値にしてください" #~ msgid "Value must be %llu or higher" #~ msgstr "%llu 以上の値にしてください" #~ msgid "Value must be %llu or less" #~ msgstr "%llu 以下の値にしてください" #~ msgid "Warning" #~ msgstr "警告" #~ msgid "Windows 2000 (build %lu" #~ msgstr "Windows 2000 (ビルド %lu" #~ msgid "delegate has no type info" #~ msgstr "委譲の型情報がありません" #~ msgid "wxSearchEngine::LookFor must be called before scanning!" #~ msgstr "検索に先立って wxSearchEngine::LookFor を呼び出す必要があります。" #~ msgid "|<<" #~ msgstr "|<<" #~ msgid "\t%s: %s\n" #~ msgstr "\t%s: %s\n" #~ msgid " Couldn't create the UnicodeConverter" #~ msgstr " UnicodeConverterを作成できません" #~ msgid "#define %s must be an integer." #~ msgstr "#define %s は整数でなくてはなりません。" #~ msgid "%.*f GB" #~ msgstr "%.*f GiB" #~ msgid "%.*f MB" #~ msgstr "%.*f MiB" #~ msgid "%.*f TB" #~ msgstr "%.*f TiB" #~ msgid "%.*f kB" #~ msgstr "%.*f KiB" #~ msgid "%s not a bitmap resource specification." #~ msgstr "%s をビットマップリソースとして認識できません。" #~ msgid "%s not an icon resource specification." #~ msgstr "%s をアイコンリソースとして認識できません。" #~ msgid "%s: ill-formed resource file syntax." #~ msgstr "%s: リソース文法が満たされていないようです。" #~ msgid "&Open" #~ msgstr "開く (&O)" #~ msgid "&Print" #~ msgstr "印刷 (&P)" #~ msgid "" #~ ", expected static, #include or #define\n" #~ "while parsing resource." #~ msgstr "" #~ "を見つけましたが static, #include, #defineの\n" #~ "どれでもありません。" #~ msgid "Archive doesnt contain #SYSTEM file" #~ msgstr "書庫は #SYSTEM ファイルを含んでいません" #~ msgid "Bitmap resource specification %s not found." #~ msgstr "ビットマップリソース仕様 %s は未対応です。" #~ msgid "Cannot convert dialog units: dialog unknown." #~ msgstr "ダイアログ単位に変換できません: ダイアログが未知です。" #~ msgid "Cannot convert from the charset '%s'!" #~ msgstr "文字集合 '%s' から変換できません。" #~ msgid "Cannot find container for unknown control '%s'." #~ msgstr "未知のコントロール '%s' に対するコンテナを見つけられません。" #~ msgid "Cannot find font node '%s'." #~ msgstr "フォントノード '%s' が見つかりません。" #~ msgid "Cannot parse coordinates from '%s'." #~ msgstr "寸法を '%s' から取得できません。" #~ msgid "Cannot parse dimension from '%s'." #~ msgstr "'%s' から大きさの値を解析できません。" #~ msgid "Cant create the thread event queue" #~ msgstr "スレッドイベントキューを作成できませんでした" #~ msgid "Closes the dialog without inserting a symbol." #~ msgstr "記号を挿入せずにダイアログを閉じます。" #~ msgid "Control is wrongly initialized." #~ msgstr "コントロールが正しく初期化されていません。" #~ msgid "Could not find resource include file %s." #~ msgstr "リソースインクルードファイル %s が見つかりません。" #~ msgid "" #~ "Could not resolve control class or id '%s'. Use (non-zero) integer " #~ "instead\n" #~ " or provide #define (see manual for caveats)" #~ msgstr "" #~ "制御クラスまたは識別子 '%s' を解決できません。\n" #~ "0以外の整数を使うか #defineを用いてください (説明書の注意参照) 。" #~ msgid "" #~ "Could not resolve menu id '%s'. Use (non-zero) integer instead\n" #~ "or provide #define (see manual for caveats)" #~ msgstr "" #~ "識別子 '%s' を解決できません。\n" #~ "0以外の整数を使うか #define を用いてください (説明書の注意参照) 。" #~ msgid "Could not unlock mutex" #~ msgstr "Mutexのアンロックができませんでした" #~ msgid "Couldn't end the context on the overlay window" #~ msgstr "オーバーレイウィンドウの内容末尾にたどり着けませんでした。" #~ msgid "Data view control is not correctly initialized" #~ msgstr "データビューコントロールが正しく初期化されていません。" #~ msgid "Error while waiting on semaphore" #~ msgstr "セマフォー待ちの中途でエラーを検出しました" #~ msgid "Expected '*' while parsing resource." #~ msgstr "リソース解析中、必要な '*' がない場所を検出しました。" #~ msgid "Expected '=' while parsing resource." #~ msgstr "リソース解析中、必要な '=' がない場所を検出しました。" #~ msgid "Expected 'char' while parsing resource." #~ msgstr "リソース解析中、必要な 'char' がない場所を検出しました。" #~ msgid "Failed to %s dialup connection: %s" #~ msgstr "%s ダイヤルアップ接続に失敗しました: %s" #~ msgid "Failed to connect to session manager: %s" #~ msgstr "セッションマネージャへの接続に失敗しました: %s" #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "XBM リソース %s が見つかりません。\n" #~ "wxResourceLoadBitmapData を使うのを忘れていませんか?" #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadIconData?" #~ msgstr "" #~ "XBM リソース %s が見つかりません。\n" #~ "wxResourceLoadIconData を使うのを忘れていませんか?" #~ msgid "" #~ "Failed to find XPM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "XPM リソース %s が見つかりません。\n" #~ "wxResourceLoadBitmapData を使うのを忘れていませんか?" #~ msgid "Failed to get clipboard data." #~ msgstr "クリップボードのデータを取得できませんでした。" #~ msgid "Failed to load shared library '%s' Error '%s'" #~ msgstr "共有ライブラリ '%s' はエラー '%s' により読み取れませんでした。" #~ msgid "Failed to open '%s' for %s" #~ msgstr "'%s' を開くことができませんでした(%s)" #~ msgid "Failed to register OpenGL window class." #~ msgstr "OpenGL ウィンドウクラスを登録できませんでした。" #~ msgid "Fatal error" #~ msgstr "重大なエラー" #~ msgid "Fatal error: " #~ msgstr "重大なエラー:" #~ msgid "Found " #~ msgstr "リソース解析中に" #~ msgid "Go forward to the next HTML page" #~ msgstr "次のHTMLページに進む" #~ msgid "Help : %s" #~ msgstr "ヘルプ: %s" #~ msgid "Icon resource specification %s not found." #~ msgstr "アイコンリソース %s が見つかりません。" #~ msgid "Ill-formed resource file syntax." #~ msgstr "リソースファイルの書式に不整合があります。" #~ msgid "Inserts the chosen symbol." #~ msgstr "選択した記号を挿入します" #~ msgid "Invalid XRC resource '%s': doesn't have root node 'resource'." #~ msgstr "不正な XRC リソース '%s': ルートノードが 'resource' ではありません。" #~ msgid "Long Conversions not supported" #~ msgstr "Long 型への変換には対応していません" #~ msgid "No XPM icon facility available!" #~ msgstr "XPM アイコン機能は利用できません。" #~ msgid "No fonts found in %s." #~ msgstr "%s にフォントがありません。" #~ msgid "No handler found for XML node '%s', class '%s'!" #~ msgstr "XMLノード '%s' 、class='%s'に対するハンドラーがありません。" #~ msgid "Option '%s' requires a value, '=' expected." #~ msgstr "オプション '%s' は '=' を挟んで値の指定が必要です。" #~ msgid "Preparing help window..." #~ msgstr "ヘルプウィンドウ準備中..." #~ msgid "Program aborted." #~ msgstr "プログラムを中断しました。" #~ msgid "Referenced object node with ref=\"%s\" not found!" #~ msgstr "ref=\"%s\" で参照されているノードが見つかりません。" #~ msgid "Resource files must have same version number!" #~ msgstr "リソースファイルは同じバージョン番号でなくてはなりません。" #~ msgid "Search!" #~ msgstr "検索" #~ msgid "Select a file" #~ msgstr "ファイルを選んでください" #~ msgid "Select all" #~ msgstr "すべて選択" #~ msgid "Sorry, could not open this file for saving." #~ msgstr "保存のためにこのファイルを開くことができませんでした。" #~ msgid "Sorry, could not save this file." #~ msgstr "ファイルを保存することができませんでした。" #~ msgid "" #~ "Sorry, docking is not supported for ports other than wxMSW, wxMac and " #~ "wxGTK" #~ msgstr "ドッキングに対応しているのは wxMSW, wxMac, wxGTK だけです" #~ msgid "Sorry, print preview needs a printer to be installed." #~ msgstr "プレビューにはプリンターのインストールが必要です。" #~ msgid "Status: " #~ msgstr "状態:" #~ msgid "String conversions not supported" #~ msgstr "文字列変換は未対応です" #~ msgid "Subclass '%s' not found for resource '%s', not subclassing!" #~ msgstr "" #~ "サブクラスの元 '%s' がありませんでした。リソース '%s' はサブクラスにしま" #~ "せん。" #~ msgid "TIFF library error." #~ msgstr "TIFFライブラリーエラー。" #~ msgid "TIFF library warning." #~ msgstr "TIFFライブラリーの警告。" #~ msgid "" #~ "This system doesn't support date picker control, please upgrade your " #~ "version of comctl32.dll" #~ msgstr "" #~ "お使いのシステムは date picker コントロールに未対応です。comctl32.dll を新" #~ "しいものに更新してください" #~ msgid "Trying to solve a NULL hostname: giving up" #~ msgstr "NULLホスト名の解決を試行: 試行を中止しました" #~ msgid "Unexpected end of file while parsing resource." #~ msgstr "リソース解析中に想定外のEOFが検出されました。" #~ msgid "Unknown style flag " #~ msgstr "未知のスタイルフラグ" #~ msgid "Unkown Property %s" #~ msgstr "未定義の特性 %s" #~ msgid "Unrecognized style %s while parsing resource." #~ msgstr "リソース解析中に想定外のスタイル %s を検出しました。" #~ msgid "Version %s" #~ msgstr "version %s" #~ msgid "Video Output" #~ msgstr "映像出力" #~ msgid "Warning: attempt to remove HTML tag handler from empty stack." #~ msgstr "警告: 空のスタックからHTMLタグハンドラーを除去しようとしました。" #~ msgid "XRC resource '%s' (class '%s') not found!" #~ msgstr "XRC リソース '%s' (クラス '%s') が見つかりません。" #~ msgid "XRC resource: Cannot create animation from '%s'." #~ msgstr "XRC リソース: '%s' からアニメーションを作成できません。" #~ msgid "XRC resource: Cannot create bitmap from '%s'." #~ msgstr "XRC リソース: '%s' からビットマップを作成できません。" #~ msgid "XRC resource: Incorrect colour specification '%s' for property '%s'." #~ msgstr "XRC リソース: 色の設定値 '%s' は不正です(特性 '%s')" #~ msgid "[EMPTY]" #~ msgstr "[空]" #~ msgid "catalog file for domain '%s' not found." #~ msgstr "地域 '%s' に対するカタログファイルが見つかりません。" #~ msgid "encoding %i" #~ msgstr "エンコーディング %i" #~ msgid "establish" #~ msgstr "同期確立" #~ msgid "initiate" #~ msgstr "非同期確立" #~ msgid "invalid eof() return value." #~ msgstr "eof() の戻り値は不正なものになります。" #~ msgid "looking for catalog '%s' in path '%s'." #~ msgstr "カタログ '%s' をパス '%s' から探します。" #~ msgid "m_peer is not or incorrectly initialized" #~ msgstr "m_peer が正しく初期化されていません" #~ msgid "unknown line terminator" #~ msgstr "未対応の改行子です" #~ msgid "writing" #~ msgstr "書き出し" #~ msgid "wxRichTextBulletsPage" #~ msgstr "wxRichTextBulletsPage" #~ msgid "wxRichTextFontPage" #~ msgstr "wxRichTextFontPage" #~ msgid "wxRichTextListStylePage" #~ msgstr "wxRichTextListStylePage" #~ msgid "wxRichTextStylePage" #~ msgstr "wxRichTextStylePage" #~ msgid "wxSocket: invalid signature in ReadMsg." #~ msgstr "wxSocket: ReadMsgに不正なシグネチャーがありました。" #~ msgid "wxSocket: unknown event!." #~ msgstr "wxSocket: 未対応のイベントです。" ginkgocadx-3.8.7/cadxcore/lang/pl/000077500000000000000000000000001314736454600170105ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/pl/cadxcore.mo000066400000000000000000001630201314736454600211370ustar00rootroot00000000000000 -1BFB;BP4CC6CQC/-DI]DD<D1E#5E#YE}E6EE<E$F3>F4rF:FFFF GGG $G2G AGNGfG0}G/G2G1H'CH,kH0H+H)H.I-NI|IIIIIII IIIJJ JJJJ>J5@JvJzJ|J J J J J J J J J JJJJJKK&K.KBKbKyKKKKKKKK K(K (L6L ML#WL{LL+L3L L MM M M/MOM SM_MdM mMxM~MMM*MM M NN 1NRLRTR jR8tR R R R RRR RS SSS"S 7SES LSZSiSS S S SS"SSS6T&>T&eTTTTTTTUU'U>UTUmUqU zU UUUUUUU V"V*VFV"LVoVV V#VVVW.WDW'XWWW'W&W WX!X:X1TX X2X#XXY=Y#YY}YYQYY Z ZZZ0ZBZWZoZZ%Z ZZZZ[)[>[ X[c[w[f[=[:\X\s\\\\\+\]] ] ] ]]] ]^.^G^2K^ ~^^a^_'_(_7_B)`Bl```&`aa0a GaTa Ya da pa|aaa aaa'aaa bb b*b?b [b fb qb |b b b b b b bbbbbcVccdd&d:dVdqddld fg &g1gFgcgCzg gggg!h&h9hJhOhfh}hhh hh#hi"i1i@i"`i1i"i'ijj44jijnjqjvj|j j j jjjjjjjjjk kk 4k ?kIk _kjk|kk!k k^k"l4&l [l glul{l ll1l'lm mm5mFmOmfmom vmm m mmmmmmmmn nn "n-n6nLndnQgnTnoo(o/o Go"Towoooo oo o ooo o oo" p0p Ep Op[popwp~pppp ppp pp p p6 q CqOq1Xqq-qqqr#r)r 1rtt tttt u!u)uBu IuTu-iu"uuuu uuv vvv v ,v6v>vFvMMvvv vvvv w*w IwVwtww w3w3wx'x@x!`xxxxxx xxxy$y?yOy Wydy sy y y y1yyy yzz0z+Bznz wzzz z zzz zzz'{(>{g{p{ v{{{{{{{{{|3|9|>|F|`|h| n| || |"||||| | }}$}*}D} T}&`}&}}!} }.}%~9.~"h~~%~&~B~?:3z%00 >Q8ʀ;$?Hd%@Ӂ%8:AsT 5*(`%Ƀ΃ԃڃ   #-</j)\Ʉ<&+c  ʅׅ 8 LXFg ׆ .6 IW,]%‡GG8 !(Ո0 /9 ;HY t 8ȉlPT&̊v! MB8'Ɍ'"2-U"2ٍ81 6@CIaqvVn4ŐYT)qV-J kL-֒""'JL`?Ǔ;!7]Aה۔  , :Fa0y/2ڕ1 '?,g0+Ŗ).-J!x Ǘӗۗ  $*1:V?X Ř И ۘ (7FNb̙ԙ ڙ!&=7 u + њޚ.-Da h r|. Λٛ $ .1N & ȜӜ %'M.m.˝/۝  %#F j tɞ0+)UZ w (*I[q͠ 86,c͡ I ? M [ iw  ǢѢ 5H M[j" 4ƣ+2'$Z #ɤ 7Oh lwϥ֥ % D!Pr8y#̦%%<Ws9ç-3(aը7&?:9zѩK$<awL̪-D_{&ͫ$>X t+ĬHX+$ͭ*+IYa&l s   ˯9 >Jgc˰+t2EӱRQlز%0J iv }  ƳԳ)/@P `n Ǵ Ҵ ݴ  0@Sѵ$%J^x *ж +K R]rS  6#Imͺ  &'&Nu:3ֻ9 )D,n5ڼ#*?O ^ipx ' ̽׽   4A S_0v v*9.hw %;п1 >Ha   "2 CQ Ycfme -%Sgoru +> [hx  $ % 3=@ ~4,( >"Hk s   7 B$Mr{/# '@H[q$9$^u &'E m   Yt*3(Bk2'%4)Z! 0 ; Bcv ~  81 GTk4  ,FZi'}.. $<Tov~  "*2 F R0_, (F[&k&%$5 @9E'!''22L/00''FO'.<+?[kbI8ad^^,x#6 K V`g{$:9,.3Mb8*-CWh" V fr 5"A T/a  3 SPn"&2 Yd fr! :"mY+-0R^_31Ew'59 G>h i ><`WyLgv;O=IB@} Kc0Q5i]\q2l:Rq_a_;rM|GTw^k]TU5#kSt?X% jWxXJ4 "&V^[$=tUY=\f*2C}PS{AgREP!<7oYOM,zGf9b}E-Zpp.A9z^G'Va[$J tZKR#cAw+N "VI8L:e"0$cdoD/#YU)1( {n?dge q,xD~6u7b8h/Q1P_4n-d]@;Cmf`)uheCb>)s!kF6'p jy'*% TLwl33B9oZ 1NNX 5&Q?(EriHS`3 6 +um4 <srHvJ.\ Fl2KD:7m-/~%W|{!8.Majy s( O@ ~IBFz*[ h0+x|&>Hvn,  * Concatenation of patient name and surnames can't be higher than 61. * The format of the height in centimeters is not correct. * The format of the weight is not correct. Valid range is between 0 and 400 Kg. * The patient ID is required. * The patient's birth date is after the date of study - If you want to use SSL/TLS you have to set a valid certificate and private key - Maximum length of local AET is 16 characters - The PDU size should be greater than or equal to zero (default = 16384) - The local port is too large - The local port must be a positive short integer (16 bits) - The maximum length of the AET is 16 characters - The maximum value of the PDU is - The minimum value of the PDU is - The port is too large - The port must be a positive short integer (16 bits) - This PACS id is in use There are %d errors (see log for more detailed description) Would you like to retry? . Modality does not exists in model: Add it first. . SOP Class does not exists in model: Add it first. . Transfer Syntax does not exists in model: Add it first. : bytes from a total of doesn't exist not allowed of to to Modality to SOP Class trying temp unsupported components with transfer syntax "accion" attribute expected at "plantilla" scope"accion" attribute invalid at "plantilla" scope"action" attribute expected at "gnkworkflow" scope"action" attribute invalid at "gnkworkflow" scope"aid" attribute expected at "hce" scope"ambito" attribute expected at "dimse" scope"ambito" attribute expected at "plantilla" scope"ambito" attribute invalid at "dimse" scope"cid" atribute expected at "centro" scope"clave" attribute expected at "metadato" scope"code" attribute expected at "metadata" scope%d results has been found%m/%d/%Y%m/%d/%Y %H:%M:%S%m/%d/%Y 00:00:00&Accept&Cancel&Close&Close all&Delete from history&Edit&End&Exit&File&Help&Next >(ID or medical history number))): Check the configuration and attach it if necessary.../0 running tasks.1x1 Layout1x2 Layout2x1 Layout2x2 Layout3x3 Layout4x4 Layout644654645< &Previous@AETAcc#AcceptAccession NumberAccession numberAcquireAcquire DICOM filesAcquire a DICOM study from PACSAcquire from DICOM DirAcquire images from PACSAcquisition informationActiveAddAdvancedAdvanced Configuration ...Advanced settings...AgeAll patientsAlways use this view to open these filesAnonymizationAnonymization settingsAnonymizeAnonymous mode (history is cleaned)Any dateApplyAre you sure to delete this file from disk?Are you sure you want to cancel the import process?Are you sure you want to delete AreaArrowAsymmetryAuthenticationAutomatically check for updatesB/WB/W InverseBackBetween:Birth dateCairoCalibrating...Calibration value is too lowCan not upload to the PACS: Can not upload to the PACS: Internal ErrorCancelCentimetersCertificateCertificate used by Ginkgo CADxChange ...Change Password ...Change passwordCharsetCheck UpdatesCheck for newest versionsCheck for updatesCheck for updates automaticallyCheck update errorChoose a directoryChoose the view you want to use to open file/sClean afterClean beforeClean directory after dicomizationClean directory before dicomizationClearClear logCloseClose Ginkgo CADxClose allClose all viewsClose all windowsClose automatically Ginkgo CADx after dicomizeClose current viewCloses the application and aborts pending commandsCobbCobb Angle (2 straight lines)CommentsCommit dateCommit informCommitedConfiguration parameters of the local stationConfigure GridConfigure Grid ...Configure locationConfiguring environment ...Confirm PasswordConfirm removalConfirm the removal of the nodeConfirm the removal of the profile Connection test failConnection test successfulContinueCould not load extension library fileCould not load library file. Check logCould not write to fileCreating Thumbnail...Creating Thumbnails...Creation DateCreditsDICOM (native format)DICOM DirDICOM Dir is the local directory where history is storedDICOM ExportDICOM NodeDICOM NodesDICOM nodesDICOM nodes settingsDataData modifiedDateDate TimeDate:DefaultDefault ORU templateDefault valueDeleteDelete WidgetDelete messageDelete selected itemsDemographic dataDescriptionDestinationDestination:Dicomization completeDicomization finished successfullyDicomized filesDistanceDo not close the application and keep commands runningDo not warn me again about this updateDon't change image codec (if possible)Don't show this message againDownloadDownload %s imagesDownload all modalitiesDownload of modality Download seriesDownload studyDownloading file %dDownloading file %d/%dDownloading files ...Downloading from PACS...ER7Edit ...Edit MessageEdit UserEdit public keyElectronic health recordEllipseEmpty configurationEnable TLS configurationEnable http proxyEnable remote PACS configurationEnabledEnter the calibration valueErrorError checking application updatesError connecting to urlError creating database: Error creating history database Error creating thumbnails database Error deleting messagesError downloading study: Error editing messageError getting messageError loading studyError loading study insufficient memoryError loading study.Error loading study: Error loading the study: Internal ErrorError loading the study: Out of memoryError messageError reading history: Error reading the study:Error reading the study: Error reading the study: unsupported pixel formatError savingError sending HL7 message see log for more detailsError sending message. It was sent Error sending message:Error setting TLS layer: Error storing file, check the permissions over the directory.Error uploading the study to PACS: Error validating fieldsError:Errors have occurred when saving the series. Would you like to continue closing? Exception loading:ExceptionsExisting fileExitExit applicationExploring PACS...Exploring directory Exploring directory ...Exploring drives...Export ConfigurationExport has been finished successfullyExport imagesExport successfully completedExport to DICOM DirExporting file %d of %dExporting files...Exporting images ...Exporting series %d of %dExtensionsExtensions settingsFailed delivery confirmation:Failed to create directory, make sure the path is correct and you have permissions on parent directoryFailed to empty the history, you have to close opened studiesFailed to empty the history: Failed to perform search: Failed to set permissions: Failed to start connectionFamFamFam IconsFemaleFile couldn't be stored File exists Would you like to overwrite it?For large-scale implementation in a homogenous environment, you can specify the following wildcards in the local AET: %IP IP Address %IP n-th Octet (1~4) %HOSTNAME Host Name"FormatFugue IconsFull ScreenFull screenGE ColorGeneralGeneral configuration parametersGenerating preview...Generating thumbnail ...GetGingo CADx Application ID used to fill MSH.3 fieldGinkgo CADxGinkgo CADx Application IdGinkgo CADx has detected inactivity and it will be closed in %d seconds. Do you want to continue?Ginkgo CADx has detected more than one removable units, but none of them includes a DICOMDIR at root. Select drive where you want to acquire recursivelyGinkgo CADx is unable to compress from Ginkgo CADx must have at least one user.Ginkgo CADx must restart for the changes to take effectGinkgo CADx must restart for the extensions changes to take effectGinkgo CADx must restart for the permission changes to take effectGinkgo CADx private tagsGinkgo CADx restrictionsGinkgo CADx tags (Evaluation Maps...)Ginkgo CADx updatedGinkgo CADx updatesGinkgo Extension TitleGray RainbowGridGrid ScaleHL7 ServiceHL7 monitorHeightHideHide DICOM inspectorHide GridHide corner annotationsHostHostname (IP or DNS) integration engineHostname / PortHostname missingHot GreenHot IronHot MetalI Accept the licenseI do NOT accept the licenseISO_IR 100ISO_IR 101ISO_IR 109ISO_IR 110ISO_IR 126ISO_IR 127ISO_IR 138ISO_IR 144ISO_IR 148ISO_IR 192ISO_IR 6IdIdentification informationIdentificator *If you accept the terms of the agreement, click "I Accept the license" to continue. You must accept the license to start using Ginkgo CADx.If you want to use SSL/TLS you have to set a valid certificate and a valid private keyIgnoring incoming operation Image CalibrationImage Export WizardImage Import WizardImage acquisition finished.Image format not supportedImage presentation informationImage selectionImages (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*.bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*ImportImport ...Import ConfigurationImport files to DICOM formatImport process failed:Import successfully completed, restart Ginkgo CADx to apply changesImporting...InactiveInactivity detectedIncluded in the history ...Including files in the history ..Including files...Including image InfoIni Files(*.ini)|*.iniIni files(*.ini)|*.iniInitializing environment ...Institution's IdInstitution's nameInstitutionsIntegration engineIntegration engine hostname not setIntegration engine port not setInternal ErrorInternal errorInternal error checking updatesInternal error during auth processInternal error reading the study, unknown format Internal error reading the study: Internal error while reading the study:Interpreting parameters ...Interpreting propertiesIt has been read a "patient" tag without identifiersJPEGKgLONILONI2LanguageLast 3 monthsLast 30 daysLast 7 daysLengthLevelLibJpegLibPngLicense agreementLicensesLoad ...Load canceled by userLoadingLoading plugins ...Loading resources ...Loading...Local AETLocal AET certificateLocal PACSLocal institutionLocationLocation SettingsLocation titles can't be repeatedLocationsLocations are predefined paths to set locations from well known paths (ex: remote shared disk)LogLog file (*.log) | *.log | Text file (*.txt) | *.txtLog monitorLog monitoredLoginMaleMalformed XMLMax number of tabs openedMax seconds of Ginkgo CADx application inactivityMaximum length of title is 8 charactersMessageMessage content:Message successfully sentMessage's formatMessagesMetaEmotion HealthcareMetadataMetersMetric gridMicronsMilimetersModalitiesModalityModality download errorModification DateModifiedMosaicMoveNAME SURNAME SECOND_SURNAMENameNeed support ...New ...New UpdateNew UserNew version availableNew version available (NoNo DICOMDIR found in removable units, would you like to scan recursively %s driveNo DICOMDIR found in removable units. Would you like to scan other path recursively?No loginNo results foundNormalNormal Angle (3 points)Not commitedNot enough parameters found on XMLNot implementedNoteOKOkOmitted AETOmitted IdentificatorOmitted portOnline manualOnline supportOpenOpen FileOpen SeriesOpen Series with ..Open Source DICOM CADx environmentOpen Source LicensesOpen fileOpen folderOpen removable unitOpen...OpenGLOpenSSLOtherOthersOverview data of DICOM filesOverwriteP-ValuePACSPACS LimitsPACS acquisition is restrictedPACS error: PACS-ServicePEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*Parameters:PasswordPassword and confirm password can't be different.Password changed successfullyPassword has to contain at least 6 charactersPassword is not settedPassword is settedPathPath of the location doesn't existsPatientPatient IdPatient informationPatient namePatient's name and surnamePendingPhysicianPhysician's IdPhysician's namePointPoints (I)Points (M)PolygonPortPort is not a valid numberPosition (I)Position (M)Powered byPreviewPrintPrivate keyPrivate key and Certificate do not matchPrivate key in PEM formatProcess canceled by user.ProfileProfile nameProfile name can't be repeatedProfilesProfiles SettingsProgram UpdatesPropertiesProperties ...Properties of Properties...Proxy server requires authenticationProxy settingsPublic keyPublic key in PEM formatQualityREGEXP called with wrong number of arguments: %d instead of 2.Reading datasetReal MeasureReceiver organization IdRedoRefering physicianReferring physicianRefreshRelationship informationRemoveRemove allRemove sent messagesRequested module does not support importationRequested module is not registeredReset to defaultResultsRetrieve methodRetrieve modeReuse connectionRunningSQL LiteSSL/TLSSaveSave log...Save logsScale XScale YSearchSearch without parameters could take al long time Would you like to continue?SecuritySecurity SettingSecurity typeSelect DICOMDIRSelect a valid DICOMDIR fileSelect a valid PACS ServerSelect certificateSelect dicom dir files you want to acquireSelect driveSelect drive you want to openSelect files from filesystemSelect files...Select imagesSelect the directory where the files will be storedSelect the format and the images you want to exportSelected imagesSelecting Import ProfileSend Hl7 message when importingSend study to PACS when importingSend task status:Sending HL7 message %d of %dSentSeparate addresses with commas.SeriesSeries dateSeries does not existSeries path couldn't be foundServerServer ID not found. ID = Server settingsServiceService's IdService's nameSet DefaultSet PasswordSet activeSet by userSet compression, 0 implies no compression (0..14)Set default valueSet main passwordSet passwordSet property activeSet property inactiveSetting not foundSetting the electronic health record systemSettingsSettings menuSexShow DICOM inspectorShow GridShow MessageShow corner annotationsShow full screenShow gridShow on startupShow on startup default valueSkipping extension with duplicated SID:Some of selected series has been deletedSpectrumStartStart pageStarting Search ...Starting services...Starting tools...StatusStatus:Step %d of %d: Step 1 of 3: Importing imagesStep 2 of 3: Copying imagesStep 3 of 3: Uploading imagesSternStopStoppedStoring in the history...StudiesStudyStudy DetailsStudy UIDStudy dateStudy download size limit exceededStudy malformed or unsupportedStyleSurnameSystem authenticationTab RegroupTab groupingTabbed organizationTasksTemplate Id unsupported (Test connectionTest engineTesting conectivity with the server...Testing the connection to the node ...TextThe calibration value is too highThe calibration value is too lowThe calibration value must be a decimal numberThe fileThe following errors have occurred when validating fieldsThe pdu size is not a valid numberThe port is not a valid numberThe requested module isn't registeredThe selected directory can't be openedThe selected directory does not exist Would you like to create it?The selected directory does not exist Would you like to create?The service did not respond correctly to the C-ECHOThe username or password is incorrectThere are %d pending tasksThere are other DICOM directory in selected pathThere aren't any module with importation supportThere is no URL to check updates on the current configuration.There is no any PACS configuredThere is no running tasksThere is not newest Ginkgo CADx versions at this moment.There is not registered any module with importation supportThere was an error anonymizing filesThere was an error changing the password. To get more info open the LOG.There was an error creating directoryThere was an error deleting user. To get more info open the LOG.There was an error during exportationThere was an error during importation, check permissionsThere was an error inserting user. To get more info open the LOG.There was an error reading the directory, make sure you have write permissions on itThere was an error writing fileThese series have been deleted from the local historyThey have produced the following errors:This files doesn't exist:This files doesn't have DICOM format:TimeTitleTodayToday AMToday PMToolsTrapezoidTypeUPDATE_INFOURL of online supportUnable to open modality Unable to reserve memory for PDF dicomizationUnable to reserve memory for image DicomizationUndoUnexpected error, select the module againUnique identifier of the Picture Archiving and Communication System Application (SIID/PACS).Unique identifier of the organization receiving the message.Unique identifier of the requesting system.UnknownUnknown errorUnknown module Id (Unknown protocolUnsaved dataUnsupported protocolUpdate period (days)Upload images to a PACS serverUploading file %d of %dUploading files ...Use SSL/TLSUse by defaultUse default certificate (certificate configured in local AET settings)UserUser NameUser deleted successfullyUser inserted successfullyUser loginUser nameUser name has to contain at least 4 charactersUser name repeatedUser/PasswordUsersUsually due to an error in sending a messageVR BonesVR Muscles & BonesValueViewView Full ScreenWarn about newest Ginkgo CADx updatesWarningWarning, to update the directory, you have to close every opened seriesWarning, to update the directory, you must close current opened series.WeightWidget PropertiesWidget's NameWorkstationWould you like to overwrite them?Would you like to remove these messages?Would you like to save the changes in the study:WxWidgetsXX axis scaleXML dicomizationXML parsing internal errorY axis scaleYesYesterdayYou are not allowed to download this kind of modalities.You can't remove opened seriesYou do not have permissions to write to the dicom Dir, preferences will be stored in the temporary directoryYou have reached maximum number of opened tabs, close some tabs and try it againYou have to set private and public keyYou must configure the local AET, which is used to communicate with the DICOM nodes. The specified port must be opened in the firewall, as it is essential for transfers.You must configure the local AET, which is used to communicate with the PACS server. The specified port must be opened in the firewall, as it is essential for transfers.You must create at least one userYou must define a default PACS in the integration XML or in the settings menuYou must fill both title and location fields to continueYou must fill in all fields to continueYou must fill in name field to continueYou must select an imageYou must select at least one imageYou must select the images you want to importYou must select the import profileYou must select the profile you want to use importYou must set the main passwordYou must specify attributes you want to use in the queryZliball filescmerrorid_application expectedimage_%m-%d-%Y_loadsearch resultsProject-Id-Version: Ginkgo CADx Core 2.12.0.4869 Report-Msgid-Bugs-To: ginkgo@metaemotion.com POT-Creation-Date: 2014-06-11 15:51+0100 PO-Revision-Date: 2014-06-11 15:51+0100 Last-Translator: Carlos Barrales Ruiz Language-Team: IGICHP Language: pl_PL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Poedit-KeywordsList: _;_Std X-Generator: Poedit 1.6.5 X-Poedit-SearchPath-0: ..\.. * Konkatenacja imienia i nazwiska pacjenta nie powinna być większa niż 61 znaków. * Format wzrostu w centymetrach nie jest poprawny. * Format wagi jest niepoprawny. Waga powinna zawierać się w przedziale od 0 do 400 Kg. * Wymagane jest id pacjenta * Pacjent urodził się po dacie badania - Jeśli chcesz używać SSL/TLS, należy ustawić ważny certyfikat i klucz prywatny - Maksymalna długość AET wynosi16 znaków - Rozmiar PDU powinien być większy lub równy zero (domyślnie = 16384) - Lokalny port jest za duży - lokalny port musi być dodatnią krótką liczbą całkowitą (16 bitów) - Maksymalna długość AET wynosi16 znaków - Maksymalna wartość PDU wynosi - Minimalna wartość PDU wynosi - Port jest za duży - lokalny port musi być dodatnią krótką liczbą całkowitą (16 bitów) - Ten PACS jest używany Są %d błędy (patrz logi dla berdziej szczegółowego opisu) Chcesz ponowić próbę? . W modelu nie istnieje rodzaj badania: Najpierw go dodaj. . W modelu nie istnieje klasa SOP: Najpierw ją dodaj. . W modelu nie istnieje Składnia Transferu: Najpierw ją dodaj. : bajtów z całkowitej liczby nie istniejeniedozwolonezdodo Rodzaju badania do Klasy SOPpróba tempnieobsługiwane komponentyze składnią transferu"accion" attribute expected at "plantilla" scope"accion" attribute invalid at "plantilla" scope"action" attribute expected at "gnkworkflow" scope"action" attribute invalid at "gnkworkflow" scope"aid" attribute expected at "hce" scope"ambito" attribute expected at "dimse" scope"ambito" attribute expected at "plantilla" scope"ambito" attribute invalid at "dimse" scope"cid" atribute expected at "centro" scope"clave" attribute expected at "metadato" scope"code" attribute expected at "metadata" scopeZostało znalezionych %d wyników%m/%d/%Y%m/%d/%Y %H:%M:%S%m/%d/%Y 00:00:00&Zaakceptuj&Anuluj&Zamknij&Zamknij wszystko&Usuń z Historii&Edytuj&Zakończ&Wyjście&Plik&Pomoc&Dalej >(Id numer historii choroby))): Sprawdź konfigurację i podłącz ją w razie konieczności.../0 zadań w toku.Układ 1x1Układ 1x2Układ 2x1Układ 2x2Układ 3x3Układ 4x4 644654645< &Wstecz@AETAcc#AkceptujNumer dostępuNumer dostępuPobierzPobierz pliki DICOMPobierz badanie DICOM z PACS-aPobierz z katalogu DICOMPobierz zdjęcia z PACS-aInformacja o pobieraniuAktywnyDodajZaawansowaneKonfiguracja zaawansowana ...Ustawienia zaawansowane ...WiekWszyscy pacjenciZawsze używaj tego widoku do otwierania tego rodzaju plikówAnonimizacjaUstawienia anonimizacjiAnonimizujTryb anonimowy (historia jest wyczyszczona)Dowolna dataZastosujCzy na pewno chcesz usunąć ten plik z dysku?Czy na pewno chcesz anulować proces importu?Czy na pewno chcesz usunąćObszarStrzałkaAsymetriaUwierzytelnienieAutomatycznie sprawdzaj istnienie aktualizacjiCz/BCz/B negatywZ powrotemOd do:Data urodzinKairKalibracja w toku ...Wartość kalibracyjna jest za niskaNie można wczytać do PACS-a: Nie można wczytać do PACS-a: błąd wewnętrznyAnulujCentymetry/ówCertyfikatCertyfikat stosowany przez Ginkgo CADxZmień ...Zmień hasło ...Zmień hasłoZestaw znaków/ Strona kodowaSprawdź aktualizacjeSprawdź istnienie najnowszych wersjiSprawdź istnienie aktualizacjiAutomatycznie sprawdzaj istnienie aktualizacjiBłąd przy sprawdzaniu istnienia aktualizacjiWybierz katalogWybierz widok, w którym chcesz otwierać plikiWyczyść poWyczyść poWyczyść katalog po dikomizacjiWyczyść katalog przed dikomizacjaWyczyśćWyczyść logZamknijZamknij Ginkgo CADxZamknij wszystkoZamknij wszystkie widokiZamknij wszystkie oknaAutomatycznie zamknij Ginkgo CADx po dikomizacjiZamknij bieżący widokZamyka aplikację i przerywa komendy w tokuCobbKąt Cobb-a (2 proste linie)KomentarzeData zatwierdzeniaInformacja o zatwierdzeniuZatwierdzonyParametry konfiguracyjne lokalnej stacjiSkonfiguruj siatkęSkonfiguruj siatkę...Skonfiguruj lokalizacjęKonfigurowanie środowiska ...Potwierdź hasłoPotwierdź usunięciePotwierdź usunięcie węzłaPotwierdź usunięcie profiluNiepowodzenie test połączeniaPomyślny test połączeniaKontynuujNie mógł być załadowany plik biblioteki rozszerzeniaNie można załadować pliku biblioteki. Sprawdź logiNie można zapisać do plikuTworzenie miniaturkiTworzenie miniaturek ...Data utworzeniaWspółtwórcyDICOM (format oryginalny)Katalog DICOMKatalog DICOM jest lokalnym katalogiem, gdzie przechowywana jest historiaEksport DICOMWęzeł DICOMWęzły DICOMWęzły DICOMUstawienia węzłów DICOMDaneDane zmodyfikowaneData badaniaData czasData:DomyślnyDomyślny szablon ORUWartość domyślnaUsuńUsuń gadżetUsuń komunikatUsuń wybrane pozycjeDane demograficzneOpisPrzeznaczeniePrzeznaczenie:Dikomizacja zakończonaDikomizacja zakończona pomyślnieZdikomizowane plikiOdległośćNie zamykaj aplikacji i kontynuuj wykonywanie komendNie przypominaj ponownie o tej aktualizacjiNie zmieniaj kodeka zdjęcia (jeśli to możliwe)Nie pokazuj ponownie tego komunikatuŚciąganieŚciągnij %s zdjęcia/ćŚciągnij wszystkie rodzaje badańŚciąganie rodzaju badaniaŚciągnij serięŚciągnij badanieŚciąganie pliku %dŚciąganie pliku %d/%dŚciąganie plików ...Ściąganie z PACS-a ...ER7Edytuj ...Edytuj komunikatEdytuj użytkownikaEdytuj klucz publicznyElektroniczne dane medyczneElipsaOpróżnij konfiguracjęUmożliw konfigurację TLSUmożliw http proxyUmożliw zdalną konfigurację PACS-aUaktywnionyWprowadź wartość kalibracyjnąBłądBłąd przy sprawdzaniu istnienia aktualizacji aplikacjiBłąd połączenia z urlBłąd przy tworzeniu bazy danych: Błąd tworzenia historii bazy danychBłąd przy tworzeniu bazy miniaturekBłąd usuwania komunikatuBłąd ściągania badania:Błąd edycji komunikatuBłąd pobierania komunikatuBłąd ładowania badaniaBłąd ładowania badania - brak wystarczającej pamięciBłąd ładowania badania.Błąd ładowania badania:Błąd ładowania badania: błąd wewnętrznyBłąd ładowania badania: brak pamięciKomunikat o błędzieBłąd czytania historii: Błąd czytania badania:Błąd czytania badania:Błąd czytania badania: nieobsługiwany format pikselaBłąd przy zapisieBłąd wysyłania komunikatu HL7. Więcej szczegółów w logu.Błąd wysyłania komunikatu. Komunikat został wysłany.Błąd wysyłania komunikatuBłąd ustawienia warstwy TLS:Błąd przy zachowywaniu pliku, należy sprawdzić uprawnienia do katalogu.Błąd wczytywania badania do PACS-aBłąd walidacji pólBłąd:Wystąpiły błędy podczas zapisu serii. Czy chcesz kontynuować zamykanie?Ładowanie wyjątku:WyjątkiIstniejący plikWyjścieZakończ aplikacjęPrzeglądanie PACS-aPrzeglądanie kataloguPrzeglądanie katalogu ...Przeglądanie napędów ...Eksportuj konfiguracjęEksport został zakończony pomyślnieEksportuj zdjęciaEksport pomyślnie zakończonyEksportuj do katalogu DICOMEksportowanie pliku %d z %dEksportowanie plików ...Eksportowanie zdjęć ...Eksportowanie serii %d z %dRozszerzeniaUstawienia rozszerzeńNiepowodzenie w dostarczeniu potwierdzenia:Tworzenie katalogu zakończone niepowodzeniem. Upewnij się czy ścieżka jest prawidłowa i masz odpowiednie uprawnienia do katalogu nadrzędnego.Niepowodzenie w opróżnieniu historii, trzeba zamknąć otwarte badaniaNiepowodzenie przy opróżnianiu historii: Niepowodzenie w wykonianiu szukania:Niepowodzenie przy ustawianiu uprawnień: Niepowodzenie przy inicjowaniu połączeniaIkony FamFamFamKobietaPlik nie może zostać zapisanyPlik istnieje Czy chcesz go nadpisać?Dla implementacji na szeroką skalę w środowisku jednorodnym, można wyszczególnić następujące "dzikie karty" na lokalnym AET: %IP Adres IP %IP n-th Octet (1~4) %HOSTNAME Host Name"FormatIkony FuguePełny ekranPełny ekranKolor GEOgólneOgólne parametry konfiguracyjneTworzenie podglądu ...Tworzenie miniaturki ...PobierzId aplikacji Gingo CADx użyte do wypełnienia pól MSH.3Ginkgo CADxId aplikacji Ginkgo CADxGinkgo CADx wykrył brak aktywności i zostanie zamknięty w ciągu %d sekund. czy chcesz kontynuować?Ginkgo CADx wykrył więcej niż jeden wymienny nośnik, ale żaden z nich nie zawiera w głównym katalogu DICOMDIR. Select drive where you want to acquire recursivelyGinkgo CADx nie może dokonać kompresji z Ginkgo CADx musi mieć przynajmniej 1 użytkownika»Ginkgo CADx« musi dokonać restartu, aby zmiany mogły zadziałaćGingko CADx musi dokonać restartu, aby zmiany w rozszerzeniach mogły zadziałaćGinkgo CADx musi dokonać restartu, aby zmiany w uprawnieniach mogły zadziałaćPrywatne tagi Ginkgo CADxOgraniczenia Ginkgo CADxGinkgo CADxTagi (Mapy ewaluacyjne...)Ginkgo CADx uaktualnionyAktualizacje Ginkgo CADx Nagłówek rozszerzenia GinkgoSzara tęczaSiatkaSkala siatkiUsługa HL7Monitor HL7WzrostUkryjUkryj inspektora DICOMUkryj siatkąUkryj adnotacje narożneHostNazwa (IP lub DNS) maszyny integrującejNazwa hosta / PortBrak nazwy hostaGorąca zieleńGorące żelazoGorący metalAkceptuję licencjęNie akceptuję licencjiISO_IR 100ISO_IR 101ISO_IR 109ISO_IR 110ISO_IR 126ISO_IR 127ISO_IR 138ISO_IR 144ISO_IR 148ISO_IR 192ISO_IR 6IdInformacja identyfikacyjnaIdentifikator *Jeśli akceptujesz warunki umowy, kliknij "Akceptuję licencję", aby kontynuować. Musisz zaakceptować licencję, by korzystać z Ginkgo CADx.Jeśli chcesz używać SSL/TLS, należy ustawić ważny certyfikat i klucz prywatnyIgnorowanie przychodzących operacjiKalibracja zdjęciaAsystent eksportu zdjęćAsystent importu zdjęćPobieranie zdjęcia zakończone.Nierozpoznany format zdjęciaInformacja o sposobie prezentacji zdjęciaWybór zdjęciaZdjęcia (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|JPEG Zdjęcia (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Zdjęcia (*.bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Zdjęcia (*.tif;*.tiff)|*.tif;*.tiff|Dokumenty PDF (*.pdf)|*.pdf|Wszystkie pliki(*.*)|*.*Zdjęcia (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|JPEG Zdjęcia (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Zdjęcia (*.bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Zdjęcia (*.tif;*.tiff)|*.tif;*.tiff|Dokumenty PDF (*.pdf)|*.pdf|Wszystkie pliki(*.*)|*.*ImportImport ...Konfiguracja importuImportuj pliki do formatu DICOMNiepowodzenie procesu importu:Import zakończony pomyślnie. Uruchom ponownie Ginkgo CADx, by zastosować zmiany.ImportowanieNieaktywnyWykryty brak aktywnościZawarty w historiiWłączanie plików do historii ...Załączanie plików ...Załącz zdjęcieInfoPliki ini (*.ini)|*.iniPliki ini (*.ini)|*.iniInicjalizacja środowiska ...Id jednostkiNazwa jednostkiJednostkiMaszyna integrującaNie podano nazwy maszyny integrującejNie podano portu maszyny integrującejBłąd wewnętrznyBłąd wewnętrznyBłąd wewnętrzny przy sprawdzaniu istnienia aktualizacjiBłąd wewnętrzny podczas procesu uwierzytelnianiaBłąd wewnętrzny przy czytania badania, nieznany formatBłąd wewnętrzny przy czytaniu badania:Błąd wewnętrzny podczas czytania badania:Interpretowanie parametrów ...Interpretowanie właściwościPrzeczytano zakładkę "pacjent" bez identyfikatorówJPEGKgLONILONI2JęzykOstatnie 3 miesiąceOstatnie 30 dniOstatnie 7 dniDługośćPoziomLibJpegLibPngUmowa licencyjnaLicencjeŁaduj ...Ładowanie anulowane przez użytkownikaŁadowanieŁaduje dodatki ...Ładowanie zasobów ...Ładuje ...Lokalny AETCertyfikat lokalnego AETLokalny PACSJednostka lokalnaLokalizacjaUstawienia lokalizacjiNagłówek lokalizacji nie może się powtarzaćLokalizacjeLokalizacje to wcześniej zdefiniowane, dobrze znane lub często używane, ścieżki (np. udostępniony dysk sieciowy)LogPlik logu (*.log) | *.log | Plik tekstowy (*.txt) | *.txtMonitor logówMonitorowany logLoginMężczyznaZły format XMLOtwarto maksymalną liczbę zakładekMaksymalna liczba sekund bezczynności programu Ginkgo CADxMaksymalna długość nagłówka wynosi 8 znakówKomunikatZawartość komunikatu: Komunikat wysłany pomyślnieFormat komunikatuKomunikatyMetaEmotion HealthcareMetadaneMetry/ówSiatka metrycznaMikrony/ówMilimetry/ówRodzaje badańRodzaj badaniaBłąd ściągania rodzaju badaniaData modyfikacjiZmodyfikowanyMozaikaPrzenieśNazwisko imię drugie_imięNazwaPotrzeba wsparcia ...Nowy ...Nowy plik aktualizacjiNowy użytkownikDostępna nowa wersjaDostępna nowa wersja (NieNie znaleziono katalogi DICOM na nośniku wymiennym. Czy chcesz rekurencyjnie przeskanować napęd %s?Nie znaleziono katalogi DICOM na nośniku wymiennym. Czy chcesz rekurencyjnie przeskanować inną ścieżkę?Brak loginuBrak rezultatówNormalnyKąt standardowy (3 punkty)NiezatwierdzoneBrak wystarczającej liczby parametrów w XMLNiezaimplementowanyNotatkaOKOkPominięty AETPominięty identyfikatorPominięty portPodręcznik onlineWsparcie onlineOtwórzOtwórz plikOtwórz serięOtwórz serię za pomocą ...Środowisko Open Source programu DICOM CADxOtwórz licencje źródłoweOtwórz plikOtwórz katalogOtwórz nośnik wymiennyOtwórz...OtwórzGLOtwórzSSLInneInniPrzegląd plików DICOMNadpiszWartość PPACSOgraniczenia PACS-aPobieranie z PACS-a jest ograniczonePACS błąd: Usługa PACSPliki PEM (*.pem;*.key)|*.pem;*.key|Wszystkie pliki (*.*)|*.*Parametry:HasłoHasło i jego potwierdzenie nie mogą się różnićHasło pomyślnie zmienioneHasło musi zawierać przynajmniej 6 znakówHasło jest nie ustawioneHasło jest ustawioneŚcieżkaŚcieżka lokalizacji nie istniejePacjentId pacjentaInformacja o pacjencieNazwisko pacjentaImię i nazwisko pacjentaW tokuLekarzId lekarzaNazwisko lekarzaPunktPunkty (I)Punkty (M)WielokątPortPort nie jest poprawną liczbąPoycja (I)Poycja (M)Projekt prowadzony i rozwijany przezPodglądDrukujKlucz prywatnyKlucz prywatny i certyfikat nie pokrywają sięKlucz prywatny w formacie PEMProces anulowany przez użytkownikaProfilNazwa profiluNazwa profilu nie może się powtarzaćProfileUstawienia profiliAktualizacje programuWłaściwościWłaściwości ...Właściwości Właściwości ...Serwer proxy wymaga uwierzytelnieniaUstawienia proxyKlucz publicznyKlucz publiczny w formacie PEMJakośćREGEXP wywołane złą liczbą argumentów: %d zamiast 2.Czytanie zbioru danychMiara rzeczywistaId jednostki odbiorczejPonówLekarz kierującyLekarz kierującyOdświeżInformacja o powiązaniachUsuńUsuń wszystkoUsuń wysłane komunikatyŻądany moduł nie obsługuje importuŻądany moduł nie jest zarejestrowanyPwróć do ustawień domyślnychWynikiMetoda odbioruTryb odbioruPołącz się ponownieDziałaSQL LiteSSL/TLSZapiszZapisz log ...Zapisz logiSkala XSkala YSzukajWyszukiwanie bez parametrów może zająć dużo czasu Czy mimo tego chcesz kontynuować?BezpieczeństwoUstawienia bezpieczeństwaRodzaj bezpieczeństwaWybierz katalog DICOMWybierz plik DICOMWybierz serwer PACS-aWybierz certyfikatWybierz pliki DICOM, które chcesz pobraćWybierz napędWybierz napędz, który chcesz otworzyćWybierz plik z systemu plikówWybierz pliki ...Wybierz zdjęciaWybierz katalog, w którym pliki zostaną zapisaneWybierz do eksportu pliki i ich format Wybrane zdjęciaWybieranie profilu importuWyślij komunikat HL7 podczas importuWyślij badanie do PACS-a podczas importuStatus zadania wysyłania:Wysyłanie komunikatu HL7 %d z %dWysłaneOddziel adresy przecinkami.SeriaData seriiSeria nie istniejeŚcieżka serii nie mogła zostać odnaleziona.SerwerId serwera nie odnalezione. Id =Ustawienia serweraUsługaId usługiNazwa usługiUstaw domyślnieUstaw hasłoUaktywnijUstawnione przez użytkownikaUstaw poziom kompresji 0-14). ) oznacza brak kompresji. Ustaw wartość domyślnąUstaw główne hasłoUstaw hasłoAktywuj właściwośćDezaktywuj właciwośćNie odnaleziono ustawieniaUstawienia systemu elektronicznych danych medycznychUstawieniaMenu ustawieńPłećPokaż inspektora DICOMPokaż siatkęPokaż komunikatPokaż adnotacje narożnePokaż pełny ekranPokaż siatkęPokaż przy starciePokaż wartości domyślne przy starciePomijanie rozszerzenia ze zduplikowanym SID-emNiektóre z wybranych serii zostały usunięteSpektrumZacznijStrona startowaPoczątek szukania ...Uruchamianie usług ...Uruchamianie narzędzi ...StatusStatus:Etap %d z %d: Etap 1 z 3: Importowanie zdjęćEtap 2 z 3: Kopiowanie zdjęćEtap 3 z 3: Wczytywanie zdjęćTyłZatrzymajZatrzymanyZapisywanie w Historii ...BadaniaBadanieSzczegóły badaniaUID badaniaData badaniaPrzekroczony limit rozmiaru ściąganego badaniaBadanie o złym formacie lub nieobsługiwaneStylImięUwierzytelnianie systemuPrzegrupowanie zakładekGrupowanie zakładekUkład zakładekZadaniaNieobsługiwany id szablonu (Połączenie testoweMaszyna testowaTestowanie łączności z serwerem ...Testowanie połączenia z węzłem ...TekstWartość kalibracyjna jest za wysokaWartość kalibracyjna jest za niskaWartość kalibracyjna musi być liczbą dziesiętnąPlikPodczas walidacji pół wystąpiły następujące błędyŻądany moduł nie jest zarejestrowanyPort nie jest właściwą liczbąŻądany moduł nie jest zarejestrowanyNie można otworzyć wybranego kataloguWybrany katalog nie istnieje. Chcesz go utworzyć?Wybrany katalog nie istnieje. Chcesz go utworzyć?Usługa nie odpowiedziała prawidłowo C-ECHO-uNazwa użytkownika lub hasło są nieprawidłoweJest %d zadań w tokuW wybranej ścieżce istnieje inny katalog DICOMNie ma modułów obsługujących importBrak adresu URL do sprawdzania aktualizacji w bieżącej konfiguracji.Nie ma żadnego skonfigurowanego PACS-aNie ma zadań w tokuObecnie nie ma najnowszych wersji Ginkgo CADx.Nie ma żadnego zarejestrowanego modułu z obsługą importuWystąpił błąd przy anonimizacji plikówWystąpił błąd przy zmianie hasła. Otówrz plik logów, by uzyskać więcej informacji.Błąd przy tworzeniu kataloguWystąpił błąd przy usuwaniu użytkownika. Otwórz plik logów, by uzyskać więcej informacji.Błąd podczas eksportuWystąpił błąd podczas eksportu, sprawdź uprawnieniaWystąpił błąd przy wstawianiu użytkownika. Otwórz plik logów, by uzyskać więcej informacji.Wystąpił błąd przy czytaniu katalogu. Upewnij się czy masz uprawnienia zapisywania w nim.Błąd przy zapisie plikuSeria została usunięta z lokalnej historiiWygenerowali następujące błędy:Ten plik nie istniejeTen plik nie ma formatu DICOM:CzasTytuł/nagłówekDzisiajDzisiaj przed południemDzisiaj po południuNarzędziaTrapezoidRodzajInfo o aktualizacjiURL do wsparcia onlineNie można otworzyć rodzaju badaniaNie może zarezerwować pamięci na dikomizację pliku pdfNie może zarezerwować pamięci na dikomizację zdjęciaCofnijNiespodziewany błąd, ponownie wybierz modułUnikalny identyfikator Systemu Komunikacji i Archiwizacji Obrazu (SIID/PACS).Unikalny identyfikator jednostki otrzymującej komunikatUnikalny identyfikator systemu odbiorczegoNieznanyNieznany błądNieznane id modułu (Nieznany protokółNiezapisane daneNieobsługiwany protokółCzas aktualizacji (dni)Wczytaj zdjęcia do serwera PACS-aWczytywanie pliku %d z %dWczytywanie plików ...Użyj SSL/TLSUżyj domyślnieUżyj domyślnego certyfikatu (certyfikat skonfigurowany w ustawieniach lokalnego AET)UżytkownikNazwa użytkownikaUżytkownik usunięty pomyślnieUżytkownik wstawiony pomyślnieLogin użytkownikaNazwa uzytkownikaNazwa uzytkownika musi zawierać przynajmniej 4 znakiPowtórzona nazwa użytkownikaUżytkownik/HasłoUżytkownicyZwykle z powodu błędu w wysyłaniu komunikatuVR kościVR mięśnie i kościWartośćWidokPodgląd całego ekranuPrzypomnij o najnowszych aktualizacjach Ginkgo CADxOstrzeżenieOstrzeżenie. Aby zaktualizować katalog, należy zamknąć wszystkie otwarte serieOstrzeżenie. Aby uaktualnić katalog, należy zamknąć wszystkie otwarte serieWagaWłaściwości gadżetuNazwa gadżetuStacja roboczaChcesz je nadpisać?Czy chcesz usunąć te komunikaty?Czy chcesz zachować zmiany w badaniu?GxGadżetyXSkala osi XDikomizacja XMLBłąd wewnętrzny parsowania XMLSkala osi YTakWczorajNie masz pozwolenia na ściągnięcie tego rodzaju badań.Nie można usunąć otwartej seriiNie posiadać uprawnień do zapisu w katalogu DICOM, preferencje zostanoą przechowane w tymczasowym kataloguOtwarta została maksymalna możliwa liczba zakładek. Zamknij kilka i spróbuj ponownie.Należy ustawić klucz prywatny i publicznyNależy skonfigurować lokalny AET, który uzywany jest do komunikacji z węzłami DICOM. Port, co jest istotne, musi być otwarty na firewall-uNależy skonfigurować lokalny AET, który uzywany jest do komunikacji z serwerem PACS-a. Port, co jest istotne, musi być otwarty na firewall-uNależy utworzyć przynajmniej 1 użytkownikaNależy zdefiniować domyślny serwer PACS-a w integracji XML lub w menu ustawieńAby kontynuować, należy wypełnić zarówno pole "nagłówek/tytuł" jak i pole "lokalizacja"Aby kontynuować, należy wypełnić wszystkie polaAby kontynuować, należy wypełnić pole "nazwa"Należy wybrać zdjęcieNależy wybrać przynajmniej 1 zdjęcieNależy wybrać zdjęcia, które chcemy zaimportowaćNależy wybrać profil importuNależy wybrać profil, którego chcemy użyć w imporcieNależy ustawić główne hasłoNależy podać atrybuty, które chcemy zastosować w zapytaniuZlibwszystkie plikicmbłądoczekiwane jest id aplikacjizdjęcie_%d-%m-%R_ładujRezultaty szukaniaginkgocadx-3.8.7/cadxcore/lang/pl/cadxcore.po000066400000000000000000007012541314736454600211510ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR MetaEmotion S.L # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: Ginkgo CADx Core 2.12.0.4869\n" "Report-Msgid-Bugs-To: ginkgo@metaemotion.com\n" "POT-Creation-Date: 2014-06-11 15:51+0100\n" "PO-Revision-Date: 2014-06-11 15:51+0100\n" "Last-Translator: Carlos Barrales Ruiz \n" "Language-Team: IGICHP \n" "Language: pl_PL\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-KeywordsList: _;_Std\n" "X-Generator: Poedit 1.6.5\n" "X-Poedit-SearchPath-0: ..\\..\n" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "Cz/B" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "Cz/B negatyw" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "VR kości" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "VR mięśnie i kości" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "VR Red Vessels" msgstr "VR kości" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "Szara tęcza" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "Tył" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "Spektrum" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Metal" msgstr "Gorący metal" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "Gorące żelazo" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Green" msgstr "Gorąca zieleń" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "GE Color" msgstr "Kolor GE" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "PET" msgstr "AET" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "LONI" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "LONI2" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "Asymetria" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "P-Value" msgstr "Wartość P" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "" #: ..\../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #: ..\../api/dicom/idicomconformance.cpp:214 #: ..\../api/dicom/idicomconformance.cpp:220 #, fuzzy msgid "GIL/DICOM/Conformance" msgstr "Węzły DICOM" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #, fuzzy msgid "Unable to add supported transfer syntax " msgstr " . W modelu nie istnieje Składnia Transferu: Najpierw ją dodaj." #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid " to SOP Class " msgstr " do Klasy SOP" #: ..\../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr " . W modelu nie istnieje Składnia Transferu: Najpierw ją dodaj." #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr " . W modelu nie istnieje klasa SOP: Najpierw ją dodaj." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #, fuzzy msgid "Unable to add supported SOP Class " msgstr " . W modelu nie istnieje klasa SOP: Najpierw ją dodaj." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid " to Modality " msgstr "do Rodzaju badania" #: ..\../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr " . W modelu nie istnieje rodzaj badania: Najpierw go dodaj." #: ..\../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "Slice" msgstr "" #: ..\../api/iannotator.cpp:97 #, fuzzy msgid "of" msgstr "z" #: ..\../api/iannotator.cpp:97 #, fuzzy msgid "Volume" msgstr "Dodaj kolumnę" #: ..\../api/iannotator.cpp:107 msgid "Voxel:" msgstr "" #: ..\../api/iannotator.cpp:110 #, fuzzy msgid "Image without metric information" msgstr "Informacja o sposobie prezentacji zdjęcia" #: ..\../api/iannotator.cpp:119 msgid "Slice thickness" msgstr "" #: ..\../api/iannotator.cpp:127 #, fuzzy msgid "Slice location" msgstr "Lokalizacja" #: ..\../api/iannotator.cpp:139 #, fuzzy msgid "Scale" msgstr "Skala siatki" #: ..\../api/iannotator.cpp:147 #, fuzzy msgid "Right" msgstr "Waga" #: ..\../api/iannotator.cpp:149 msgid "Left" msgstr "" #: ..\../api/iannotator.cpp:219 #, fuzzy msgid "Position:" msgstr "Poycja (I)" #: ..\../api/iannotator.cpp:272 #, fuzzy msgid "Value:" msgstr "Wartość" #: ..\../api/iexception.cpp:52 #, fuzzy msgid "Exception in component" msgstr "Ładowanie wyjątku:" #: ..\../api/initwx.cpp:439 msgid "Initializing environment ..." msgstr "Inicjalizacja środowiska ..." #: ..\../api/initwx.cpp:446 ..\../api/initwx.cpp:447 ..\../api/initwx.cpp:448 #: ..\../api/initwx.cpp:449 ..\../api/initwx.cpp:450 ..\../api/initwx.cpp:451 #: ..\../api/initwx.cpp:452 ..\../api/initwx.cpp:453 msgid "Ginkgo CADx restrictions" msgstr "Ograniczenia Ginkgo CADx" #: ..\../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "" #: ..\../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "Tryb anonimowy (historia jest wyczyszczona)" #: ..\../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "Otwarto maksymalną liczbę zakładek" #: ..\../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "Maksymalna liczba sekund bezczynności programu Ginkgo CADx" #: ..\../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "Automatycznie zamknij Ginkgo CADx po dikomizacji" #: ..\../api/initwx.cpp:451 msgid "Export images" msgstr "Eksportuj zdjęcia" #: ..\../api/initwx.cpp:452 msgid "Acquire DICOM files" msgstr "Pobierz pliki DICOM" #: ..\../api/initwx.cpp:453 msgid "Import files to DICOM format" msgstr "Importuj pliki do formatu DICOM" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "Online manual" msgstr "Podręcznik online" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 #, fuzzy msgid "URL of manual" msgstr "Podręcznik online" #: ..\../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "" #: ..\../api/initwx.cpp:459 msgid "Online support" msgstr "Wsparcie online" #: ..\../api/initwx.cpp:459 msgid "URL of online support" msgstr "URL do wsparcia online" #: ..\../api/initwx.cpp:459 #, fuzzy msgid "http://ginkgo-cadx.com/" msgstr "Umożliw http proxy" #: ..\../api/initwx.cpp:460 ..\../api/initwx.cpp:461 msgid "Program Updates" msgstr "Aktualizacje programu" #: ..\../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "Przypomnij o najnowszych aktualizacjach Ginkgo CADx" #: ..\../api/initwx.cpp:461 msgid "Update period (days)" msgstr "Czas aktualizacji (dni)" #: ..\../api/initwx.cpp:462 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "Bezpieczeństwo" #: ..\../api/initwx.cpp:462 #, fuzzy msgid "Setup Security" msgstr "Bezpieczeństwo" #: ..\../api/initwx.cpp:463 msgid "Show on startup" msgstr "Pokaż przy starcie" #: ..\../api/initwx.cpp:463 msgid "Show on startup default value" msgstr "Pokaż wartości domyślne przy starcie" #: ..\../api/initwx.cpp:465 ..\../api/initwx.cpp:466 #: ..\../main/gui/history3/historypanel3.cpp:328 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "Narzędzia" #: ..\../api/initwx.cpp:465 msgid "Settings menu" msgstr "Menu ustawień" #: ..\../api/initwx.cpp:466 #, fuzzy msgid "License menu" msgstr "Menu ustawień" #: ..\../api/initwx.cpp:467 ..\../api/initwx.cpp:468 ..\../api/initwx.cpp:469 #: ..\../api/initwx.cpp:470 ..\../api/initwx.cpp:471 ..\../api/initwx.cpp:472 #: ..\../api/initwx.cpp:473 ..\../api/initwx.cpp:474 msgid "PACS Limits" msgstr "Ograniczenia PACS-a" #: ..\../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "" #: ..\../api/initwx.cpp:468 msgid "Upload images to a PACS server" msgstr "Wczytaj zdjęcia do serwera PACS-a" #: ..\../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "Pobierz zdjęcia z PACS-a" #: ..\../api/initwx.cpp:470 msgid "Enable remote PACS configuration" msgstr "Umożliw zdalną konfigurację PACS-a" #: ..\../api/initwx.cpp:471 msgid "Enable TLS configuration" msgstr "Umożliw konfigurację TLS" #: ..\../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "" #: ..\../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "" #: ..\../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "" #: ..\../api/initwx.cpp:475 ..\../api/initwx.cpp:476 ..\../api/initwx.cpp:477 #: ..\../api/initwx.cpp:478 ..\../api/initwx.cpp:479 ..\../api/initwx.cpp:480 msgid "Import" msgstr "Import" #: ..\../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "" #: ..\../api/initwx.cpp:476 #, fuzzy msgid "Show accession number input" msgstr "Numer dostępu" #: ..\../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "Ustaw poziom kompresji 0-14). ) oznacza brak kompresji. " #: ..\../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" #: ..\../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "Nie zmieniaj kodeka zdjęcia (jeśli to możliwe)" #: ..\../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "" #: ..\../api/initwx.cpp:482 msgid "HL7 Service" msgstr "Usługa HL7" #: ..\../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "" #: ..\../api/initwx.cpp:483 ..\../api/initwx.cpp:484 ..\../api/initwx.cpp:485 msgid "XML dicomization" msgstr "Dikomizacja XML" #: ..\../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "Wyślij komunikat HL7 podczas importu" #: ..\../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "Wyślij badanie do PACS-a podczas importu" #: ..\../api/initwx.cpp:485 msgid "Default ORU template" msgstr "Domyślny szablon ORU" #: ..\../api/initwx.cpp:488 ..\../api/initwx.cpp:489 ..\../api/initwx.cpp:491 #: ..\../api/initwx.cpp:493 ..\../api/initwx.cpp:494 ..\../api/initwx.cpp:495 #: ..\../api/initwx.cpp:496 ..\../api/initwx.cpp:498 msgid "Style" msgstr "Styl" #: ..\../api/initwx.cpp:503 #, c-format msgid "Download %s images" msgstr "Ściągnij %s zdjęcia/ć" #: ..\../api/initwx.cpp:504 ..\../api/initwx.cpp:508 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:21 msgid "PACS" msgstr "PACS" #: ..\../api/initwx.cpp:507 msgid "Download all modalities" msgstr "Ściągnij wszystkie rodzaje badań" #: ..\../api/initwx.cpp:510 msgid "OpenGL" msgstr "OtwórzGL" #: ..\../api/initwx.cpp:510 #, fuzzy msgid "Enable shaders" msgstr "Umożliw zdalną konfigurację PACS-a" #: ..\../api/initwx.cpp:513 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:388 #, fuzzy msgid "Ginkgo Cloud" msgstr "Ginkgo CADx" #: ..\../api/initwx.cpp:513 #, fuzzy msgid "Download from Ginkgo Cloud" msgstr "Ginkgo CADx nie może dokonać kompresji z " #: ..\../api/initwx.cpp:560 #, fuzzy msgid "Tools loading base ..." msgstr "Narzędzia" #: ..\../api/initwx.cpp:562 msgid "Starting tools..." msgstr "Uruchamianie narzędzi ..." #: ..\../api/initwx.cpp:566 msgid "Loading plugins ..." msgstr "Ładuje dodatki ..." #: ..\../api/initwx.cpp:580 #, fuzzy msgid "Unable to start GinkgoCADx:\n" msgstr "Uruchamianie Ginkgo CADx" #: ..\../api/initwx.cpp:580 ..\../api/initwx.cpp:621 msgid "error" msgstr "błąd" #: ..\../api/initwx.cpp:584 msgid "Loading resources ..." msgstr "Ładowanie zasobów ..." #: ..\../api/initwx.cpp:587 msgid "Starting services..." msgstr "Uruchamianie usług ..." #: ..\../api/initwx.cpp:601 msgid "Configuring environment ..." msgstr "Konfigurowanie środowiska ..." #: ..\../api/initwx.cpp:621 msgid "Failed to set permissions:\n" msgstr "Niepowodzenie przy ustawianiu uprawnień:\n" #: ..\../api/initwx.cpp:634 #, fuzzy msgid "Updating ..." msgstr "Uruchamianie ..." #: ..\../api/initwx.cpp:638 msgid "Interpreting parameters ..." msgstr "Interpretowanie parametrów ..." #: ..\../api/initwx.cpp:689 #, fuzzy msgid "Error unregistering tools: " msgstr "Narzędzia" #: ..\../api/initwx.cpp:769 #, fuzzy msgid "Starting" msgstr "Uruchamianie narzędzi ..." #: ..\../api/ivista.cpp:36 ..\../commands/comandocarga.cpp:73 msgid "Loading..." msgstr "Ładuje ..." #: ..\../api/iwidgets.cpp:268 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ..\../main/gui/import/pasosimportacionbase.cpp:151 msgid "Name" msgstr "Nazwa" #: ..\../api/iwidgets.cpp:285 msgid "Area" msgstr "Obszar" #: ..\../api/iwidgets.cpp:302 msgid "Perimeter" msgstr "" #: ..\../api/iwidgets.cpp:316 #, fuzzy msgid "Travel (I)" msgstr "Poycja (I)" #: ..\../api/iwidgets.cpp:326 #, fuzzy msgid "Travel (M)" msgstr "Poycja (M)" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #: ..\../api/threads/thread.cpp:120 msgid "Threading" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #, fuzzy msgid "Error while running thread: " msgstr "Błąd wewnętrzny podczas czytania badania:" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid " : " msgstr " : " #: ..\../api/threads/thread.cpp:120 #, fuzzy msgid "Internal error while running thread: " msgstr "Błąd wewnętrzny podczas czytania badania:" #: ..\../api/widgetserializable.cpp:60 msgid "Creation Date" msgstr "Data utworzenia" #: ..\../api/widgetserializable.cpp:65 msgid "Modification Date" msgstr "Data modyfikacji" #: ..\../api/widgetserializable.cpp:68 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ..\../wx/gnkinforme/gnkinformebase.cpp:40 msgid "Physician" msgstr "Lekarz" #: ..\../commands/acquirefromurlcommand.cpp:55 #: ..\../commands/pacsdownloadcommand.cpp:88 #: ..\../commands/synchronizationcommand.cpp:70 msgid "Downloading files ..." msgstr "Ściąganie plików ..." #: ..\../commands/acquirefromurlcommand.cpp:69 #: ..\../commands/synchronizationcommand.cpp:91 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, c-format msgid "Downloading file %d" msgstr "Ściąganie pliku %d" #: ..\../commands/acquirefromurlcommand.cpp:81 #, fuzzy msgid "Error downloading file: " msgstr "Ściąganie pliku %d" #: ..\../commands/acquirefromurlcommand.cpp:95 #: ..\../commands/pacsdownloadcommand.cpp:114 #: ..\../commands/synchronizationcommand.cpp:121 msgid "Internal Error" msgstr "Błąd wewnętrzny" #: ..\../commands/acquirefromurlcommand.cpp:115 #, fuzzy msgid "Error downloading files: " msgstr "Ściąganie plików ..." #: ..\../commands/autocleaningcommand.cpp:62 #, fuzzy msgid "Cleaning dicomdir..." msgstr "Wybierz katalog DICOM" #: ..\../commands/cloudcommand.cpp:67 #, fuzzy msgid "Downloading files..." msgstr "Ściąganie plików ..." #: ..\../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "" #: ..\../commands/cloudcommand.cpp:183 #, fuzzy msgid "Unknown operation" msgstr "Nieznany" #: ..\../commands/cloudcommand.cpp:188 #, fuzzy msgid "Error in cloud operation. See log to get more details..." msgstr "Błąd wysyłania komunikatu HL7. Więcej szczegółów w logu." #: ..\../commands/cloudcommand.cpp:249 #, fuzzy msgid "Could to retrieve study." msgstr "Metoda odbioru" #: ..\../commands/cloudcommand.cpp:260 ..\../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" #: ..\../commands/cloudcommand.cpp:262 #, fuzzy msgid "Error retrieving study." msgstr "Błąd ładowania badania: błąd wewnętrzny" #: ..\../commands/cloudcommand.cpp:271 #, fuzzy msgid "Study successfully retrieved." msgstr "Badanie" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "Speed" msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "bytes/sec during" msgstr "bajtów z całkowitej liczby " #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "seconds" msgstr "Maksymalna liczba sekund bezczynności programu Ginkgo CADx" #: ..\../commands/cloudcommand.cpp:275 #, fuzzy msgid "Empty Response" msgstr "Opróżnij konfigurację" #: ..\../commands/cloudcommand.cpp:289 #, fuzzy msgid "Extracting files..." msgstr "Ściąganie plików ..." #: ..\../commands/cloudcommand.cpp:313 ..\../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "" #: ..\../commands/cloudcommand.cpp:383 #, fuzzy msgid "Could to perform query." msgstr "Niepowodzenie w wykonianiu szukania:" #: ..\../commands/cloudcommand.cpp:396 #, fuzzy msgid "Error perfoming the query." msgstr "błąd" #: ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "Query successfully performed." msgstr "Dikomizacja zakończona pomyślnie" #: ..\../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "" #: ..\../commands/cloudcommand.cpp:472 #, fuzzy msgid "Unknown JSon attribute:" msgstr "Nieznany" #: ..\../commands/cloudcommand.cpp:482 #, fuzzy msgid "Error parsing JSon: " msgstr "Błąd wewnętrzny parsowania XML" #: ..\../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "" #: ..\../commands/cloudcommand.cpp:515 #: ..\../commands/openremovableunit.cpp:148 ..\../main/gui/open/abrir.cpp:119 #: ..\../main/gui/open/abrir.cpp:159 ..\../main/gui/open/opendialogs.cpp:146 msgid "Storing in the history..." msgstr "Zapisywanie w Historii ..." #: ..\../commands/comandoactualizaciones.cpp:46 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:536 msgid "Check Updates" msgstr "Sprawdź aktualizacje" #: ..\../commands/comandoactualizaciones.cpp:136 msgid "Not enough parameters found on XML" msgstr "Brak wystarczającej liczby parametrów w XML" #: ..\../commands/comandoactualizaciones.cpp:145 msgid "XML parsing internal error" msgstr "Błąd wewnętrzny parsowania XML" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Error checking application updates" msgstr "Błąd przy sprawdzaniu istnienia aktualizacji aplikacji" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Ginkgo CADx updates" msgstr "Aktualizacje Ginkgo CADx " #: ..\../commands/comandoactualizaciones.cpp:170 msgid "Internal error checking updates" msgstr "Błąd wewnętrzny przy sprawdzaniu istnienia aktualizacji" #: ..\../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "Ścieżka serii nie mogła zostać odnaleziona." #: ..\../commands/comandocarga.cpp:92 ..\../commands/comandocarga.cpp:96 msgid "Exception loading:" msgstr "Ładowanie wyjątku:" #: ..\../commands/comandocarga.cpp:100 msgid "Study malformed or unsupported" msgstr "Badanie o złym formacie lub nieobsługiwane" #: ..\../commands/comandocarga.cpp:129 ..\../commands/comandocarga.cpp:139 msgid "Error loading study: " msgstr "Błąd ładowania badania:" #: ..\../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "Błąd ładowania badania - brak wystarczającej pamięci" #: ..\../commands/comandocarga.cpp:144 msgid "Error loading study." msgstr "Błąd ładowania badania." #: ..\../commands/comandocarga.cpp:149 msgid "Load canceled by user" msgstr "Ładowanie anulowane przez użytkownika" #: ..\../commands/comandocarga.cpp:156 #: ..\../main/gui/history3/historypanel3.cpp:1056 #: ..\../main/gui/history3/historypanel3.cpp:1063 #: ..\../main/gui/history3/historypanel3.cpp:1068 msgid "Error loading study" msgstr "Błąd ładowania badania" #: ..\../commands/comandoexportacion.cpp:81 #: ..\../commands/exporttodicomdircommand.cpp:214 msgid "Exporting files..." msgstr "Eksportowanie plików ..." #: ..\../commands/comandoexportacion.cpp:105 #: ..\../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "Eksport został zakończony pomyślnie" #: ..\../commands/comandoexportacion.cpp:158 #, c-format msgid "Exporting file %d of %d" msgstr "Eksportowanie pliku %d z %d" #: ..\../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "" "Błąd przy zachowywaniu pliku, należy sprawdzić uprawnienia do katalogu." #: ..\../commands/comandoexportacion.cpp:233 msgid "image_%m-%d-%Y_" msgstr "zdjęcie_%d-%m-%R_" #: ..\../commands/comandoincluirhistorial.cpp:108 msgid "Exploring directory ..." msgstr "Przeglądanie katalogu ..." #: ..\../commands/comandoincluirhistorial.cpp:122 #, fuzzy msgid "Reading DICOMDIR ..." msgstr "Wybierz katalog DICOM" #: ..\../commands/comandoincluirhistorial.cpp:142 #: ..\../commands/comandoincluirhistorial.cpp:156 #: ..\../commands/comandoincluirhistorial.cpp:177 msgid "Including files in the history .." msgstr "Włączanie plików do historii ..." #: ..\../commands/comandoincluirhistorial.cpp:196 msgid "Exploring directory " msgstr "Przeglądanie katalogu" #: ..\../commands/comandoincluirhistorial.cpp:256 #: ..\../commands/linkhistorycommand.cpp:118 msgid "Image acquisition finished." msgstr "Pobieranie zdjęcia zakończone." #: ..\../commands/comandoincluirhistorial.cpp:258 #, fuzzy, c-format msgid "There have been included %d images." msgstr "Zostały włączone %d badania, %d serie and %d zdjęcia." #: ..\../commands/comandoincluirhistorial.cpp:261 #: ..\../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" "\n" "Są %d błędy (patrz logi dla berdziej szczegółowego opisu)" #: ..\../commands/comandoincluirhistorial.cpp:273 #: ..\../commands/linkhistorycommand.cpp:133 msgid "This files doesn't exist:" msgstr "Ten plik nie istnieje" #: ..\../commands/comandoincluirhistorial.cpp:284 #: ..\../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "Ten plik nie ma formatu DICOM:" #: ..\../commands/comandoincluirhistorial.cpp:296 #: ..\../commands/linkhistorycommand.cpp:156 #, fuzzy msgid "This files are Dicom Dirs:" msgstr "Pobierz pliki DICOM" #: ..\../commands/comandopacs.cpp:58 ..\../commands/pacsdownloadcommand.cpp:61 #: ..\../commands/sendpacscommand.cpp:137 #, fuzzy msgid "There is not any Remote PACS configured" msgstr "Nie ma żadnego skonfigurowanego PACS-a" #: ..\../commands/comandopacs.cpp:84 #, fuzzy msgid "Querying PACS ..." msgstr "PACS" #: ..\../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "" #: ..\../commands/comandopacs.cpp:98 msgid "Starting Search ..." msgstr "Początek szukania ..." #: ..\../commands/comandopacs.cpp:108 #: ..\../commands/pacsdownloadcommand.cpp:101 msgid "Server ID not found. ID = " msgstr "Id serwera nie odnalezione. Id =" #: ..\../commands/comandopacs.cpp:110 ..\../commands/comandopacs.cpp:112 #: ..\../commands/comandopacs.cpp:114 ..\../commands/comandopacs.cpp:116 #, fuzzy msgid "Query error with PACS Id " msgstr "" "\n" "- Ten PACS jest używany" #: ..\../commands/comandopacs.cpp:116 #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/gui/history3/historypanel3.cpp:1068 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error" msgstr "Błąd wewnętrzny" #: ..\../commands/comandopacs.cpp:135 msgid "Failed to perform search: " msgstr "Niepowodzenie w wykonianiu szukania:" #: ..\../commands/dbmigrationcommand.cpp:94 #: ..\../commands/dbmigrationcommand.cpp:103 #, fuzzy msgid "Migrating old DICOM Dir ..." msgstr "Katalog DICOM" #: ..\../commands/dbmigrationcommand.cpp:99 #: ..\../commands/dbmigrationcommand.cpp:108 #, fuzzy msgid "Including files ..." msgstr "Załączanie plików ..." #: ..\../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 #: ..\../commands/dicomizecommand.cpp:181 #: ..\../commands/openremovableunit.cpp:74 #: ..\../commands/openremovableunit.cpp:110 #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../commands/pdfextractercommand.cpp:130 #: ..\../main/controllers/historycontroller.cpp:447 #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 #: ..\../main/controllers/historycontroller.cpp:1976 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ..\../main/gui/export/parametrosprincipales.cpp:161 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 #: ..\../main/gui/history3/historypanel3.cpp:1045 #: ..\../main/gui/history3/historypanel3.cpp:1078 #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1119 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 #: ..\../main/gui/import/selectimagesimportation.cpp:141 #: ..\../main/gui/import/selectimagesimportation.cpp:342 #: ..\../main/gui/import/selectimagesimportation.cpp:743 #: ..\../main/gui/import/selectimagesimportation.cpp:761 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ..\../main/gui/login/dialogologin.cpp:50 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ..\../main/gui/open/opendialogs.cpp:58 #: ..\../main/gui/open/opendialogs.cpp:62 #: ..\../main/gui/open/opendialogs.cpp:134 #: ..\../main/gui/progress/statusbarprogreso.cpp:284 #: ..\../main/gui/progress/statusbarprogreso.cpp:287 #: ..\../main/gui/progress/statusbarprogreso.cpp:292 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Info" msgstr "Info" #: ..\../commands/dbmigrationcommand.cpp:123 #, fuzzy msgid "Migration finisthed successfully" msgstr "Dikomizacja zakończona pomyślnie" #: ..\../commands/dialogopathssobreescribirbase.cpp:27 #: ..\../commands/dialogopathssobreescribirbase.cpp:62 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "Overwrite" msgstr "Nadpisz" #: ..\../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr "Chcesz je nadpisać?" #: ..\../commands/dialogopathssobreescribirbase.cpp:65 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ..\../main/gui/history3/historypanel3base.cpp:339 #: ..\../main/gui/history3/historypanel3base.cpp:415 #: ..\../main/gui/history3/historypanel3base.cpp:486 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ..\../main/gui/open/opendialogsbase.cpp:53 #: ..\../main/gui/open/opendialogsbase.cpp:131 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ..\../widgets/gui/calibracionbase.cpp:86 #: ..\../widgets/gui/selecciontextobase.cpp:60 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "Anuluj" #: ..\../commands/dicomizationcompletebase.cpp:24 #: ..\../commands/dicomizationcompletebase.cpp:33 #: ..\../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "Dikomizacja zakończona" #: ..\../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "Dikomizacja zakończona pomyślnie" #: ..\../commands/dicomizationcompletebase.cpp:56 msgid "Don't show this message again" msgstr "Nie pokazuj ponownie tego komunikatu" #: ..\../commands/dicomizationcompletebase.cpp:62 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ..\../main/gui/history3/historypanel3base.cpp:411 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ..\../widgets/gui/calibracionbase.cpp:82 #: ..\../widgets/gui/selecciontextobase.cpp:56 msgid "Accept" msgstr "Akceptuj" #: ..\../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "Etap 1 z 3: Importowanie zdjęć" #: ..\../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "Etap 2 z 3: Kopiowanie zdjęć" #: ..\../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "Etap 3 z 3: Wczytywanie zdjęć" #: ..\../commands/dicomizecommand.cpp:179 msgid "Import process failed:" msgstr "Niepowodzenie procesu importu:" #: ..\../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" "\n" "Chcesz ponowić próbę?" #: ..\../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "Importowanie" #: ..\../commands/dicomizecommand.cpp:370 #, fuzzy msgid "Unknown error in dicomization process" msgstr "Nieznany błąd" #: ..\../commands/dicomizecommand.cpp:431 #: ..\../commands/dicomizecommand.cpp:442 #: ..\../commands/sendpacscommand.cpp:185 #, fuzzy msgid "Error sending evidences:" msgstr "Błąd wysyłania komunikatu" #: ..\../commands/dicomizecommand.cpp:437 #: ..\../commands/dicomizecommand.cpp:448 msgid "Can not upload to the PACS:\n" msgstr "Nie można wczytać do PACS-a:\n" #: ..\../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" "Nie można wczytać do PACS-a:\n" "błąd wewnętrzny" #: ..\../commands/exporttodicomdircommand.cpp:261 #: ..\../commands/exporttodicomdircommand.cpp:338 #, c-format msgid "Exporting series %d of %d" msgstr "Eksportowanie serii %d z %d" #: ..\../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "Niektóre z wybranych serii zostały usunięte" #: ..\../commands/exporttodicomdircommand.cpp:279 #: ..\../commands/exporttodicomdircommand.cpp:385 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/export/parametrosprincipales.cpp:167 msgid "There was an error creating directory" msgstr "Błąd przy tworzeniu katalogu" #: ..\../commands/exporttodicomdircommand.cpp:303 #: ..\../commands/exporttodicomdircommand.cpp:408 msgid "There was an error writing file" msgstr "Błąd przy zapisie pliku" #: ..\../commands/exporttodicomdircommand.cpp:358 msgid "There was an error anonymizing files" msgstr "Wystąpił błąd przy anonimizacji plików" #: ..\../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Ignoring incoming operation " msgstr "Ignorowanie przychodzących operacji" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:298 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "Niezaimplementowany" #: ..\../commands/incomingdicomassociationcommand.cpp:473 #: ..\../commands/pacsdownloadcommand.cpp:170 #: ..\../commands/pacsdownloadcommand.cpp:179 msgid "Including files..." msgstr "Załączanie plików ..." #: ..\../commands/linkhistorycommand.cpp:68 #, fuzzy msgid "Linking study..." msgstr "Badanie" #: ..\../commands/openremovableunit.cpp:42 #: ..\../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "Przeglądanie napędów ..." #: ..\../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" "Nie znaleziono katalogi DICOM na nośniku wymiennym.\n" "Czy chcesz rekurencyjnie przeskanować inną ścieżkę?" #: ..\../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" "Nie znaleziono katalogi DICOM na nośniku wymiennym. Czy chcesz rekurencyjnie " "przeskanować napęd %s?" #: ..\../commands/openremovableunit.cpp:130 msgid "Select drive you want to open" msgstr "Wybierz napędz, który chcesz otworzyć" #: ..\../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" "Ginkgo CADx wykrył więcej niż jeden wymienny nośnik,\n" "ale żaden z nich nie zawiera w głównym katalogu DICOMDIR.\n" "Select drive where you want to acquire recursively" #: ..\../commands/pacsdownloadcommand.cpp:134 msgid "Error downloading study: " msgstr "Błąd ściągania badania:" #: ..\../commands/pdfextractercommand.cpp:103 #, fuzzy msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "Ginkgo CADx nie może dokonać kompresji z " #: ..\../commands/pdfextractercommand.cpp:103 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ..\../main/gui/progress/statusbarprogreso.cpp:278 #: ..\../widgets/gui/calibracion.cpp:205 ..\../widgets/gui/calibracion.cpp:209 #: ..\../widgets/gui/calibracion.cpp:219 ..\../widgets/gui/calibracion.cpp:225 #: ..\../widgets/gui/calibracion.cpp:229 msgid "Error" msgstr "Błąd" #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "" #: ..\../commands/pdfextractercommand.cpp:130 #, fuzzy msgid "PDF files extracted successfully..." msgstr "Użytkownik wstawiony pomyślnie" #: ..\../commands/secondarycapturedicomizecommand.cpp:73 #, fuzzy msgid "Ginkgo CADx Secondary Capture" msgstr "Ginkgo CADx" #: ..\../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "Wysyłanie komunikatu HL7 %d z %d" #: ..\../commands/sendhl7command.cpp:73 msgid "Message successfully sent" msgstr "Komunikat wysłany pomyślnie" #: ..\../commands/sendhl7command.cpp:77 msgid "Unknown protocol" msgstr "Nieznany protokół" #: ..\../commands/sendhl7command.cpp:80 ..\../commands/sendhl7command.cpp:93 #: ..\../commands/sendhl7command.cpp:145 msgid "Error sending message:" msgstr "Błąd wysyłania komunikatu" #: ..\../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "Błąd wysyłania komunikatu HL7. Więcej szczegółów w logu." #: ..\../commands/sendhl7command.cpp:93 ..\../commands/sendhl7command.cpp:94 msgid "Unknown error" msgstr "Nieznany błąd" #: ..\../commands/sendhl7command.cpp:134 msgid "Failed to start connection" msgstr "Niepowodzenie przy inicjowaniu połączenia" #: ..\../commands/sendhl7command.cpp:148 msgid "Error sending message. It was sent " msgstr "Błąd wysyłania komunikatu. Komunikat został wysłany." #: ..\../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr "bajtów z całkowitej liczby " #: ..\../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "" #: ..\../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "" #: ..\../commands/sendhl7command.cpp:258 msgid "Failed delivery confirmation:" msgstr "Niepowodzenie w dostarczeniu potwierdzenia:" #: ..\../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "" #: ..\../commands/sendpacscommand.cpp:51 #, fuzzy msgid "Send files to PACS" msgstr "Wyślij badanie do PACS-a podczas importu" #: ..\../commands/sendpacscommand.cpp:155 msgid "Uploading files ..." msgstr "Wczytywanie plików ..." #: ..\../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "" #: ..\../commands/sendpacscommand.cpp:181 msgid "Error:" msgstr "Błąd:" #: ..\../commands/sendpacscommand.cpp:189 msgid "Error sending evidences: Internal error." msgstr "" #: ..\../commands/sendpacscommand.cpp:203 msgid "Error uploading the study to PACS: " msgstr "Błąd wczytywania badania do PACS-a" #: ..\../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" #: ..\../commands/sendpacscommand.cpp:206 #, fuzzy msgid "Retry send to PACS" msgstr "Wyślij badanie do PACS-a podczas importu" #: ..\../commands/synchronizationcommand.cpp:104 #, fuzzy msgid "Error downloading file" msgstr "Ściąganie pliku %d" #: ..\../commands/synchronizationcommand.cpp:141 #, fuzzy msgid "Error synchronizing study: " msgstr "Błąd ładowania badania: błąd wewnętrzny" #: ..\../commands/thumbnailscommand.cpp:107 #: ..\../commands/thumbnailscommand.cpp:133 #: ..\../commands/thumbnailscommand.cpp:247 #: ..\../commands/thumbnailscommand.cpp:376 #: ..\../commands/thumbnailscommand.cpp:382 #: ..\../main/gui/import/selectimagesimportation.cpp:504 msgid "Creating Thumbnail..." msgstr "Tworzenie miniaturki" #: ..\../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "Tworzenie miniaturki ..." #: ..\../export/tools/iaddfiletohistorytool.cpp:19 #: ..\../main/gui/history3/historypanel3.cpp:632 #, fuzzy msgid "Open study" msgstr "Otwórz" #: ..\../export/tools/iangletool.cpp:19 #, fuzzy msgid "Angle \tCtrl+A" msgstr "Kąt standardowy (3 punkty)" #: ..\../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "" #: ..\../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "" #: ..\../export/tools/icolormaptool.cpp:20 #, fuzzy msgid "Color Map" msgstr "Kolor" #: ..\../export/tools/icopyimagetoclipboardtool.cpp:19 #: ..\../main/gui/open/opendialogsbase.cpp:46 #: ..\../main/gui/open/opendialogsbase.cpp:198 msgid "Copy" msgstr "" #: ..\../export/tools/icornerannotationstool.cpp:20 #, fuzzy msgid "Window annotations" msgstr "Ukryj adnotacje narożne" #: ..\../export/tools/idetachwindowtool.cpp:19 #, fuzzy msgid "Detach window" msgstr "Zamknij wszystkie okna" #: ..\../export/tools/iimageexporttool.cpp:19 #, fuzzy msgid "Export image..." msgstr "Asystent eksportu zdjęć" #: ..\../export/tools/imarkertool.cpp:20 #, fuzzy msgid "Marking Tools \tCtrl+M" msgstr "Narzędzia do zaznaczania\tCtrl+M" #: ..\../export/tools/imetricgridtool.cpp:20 msgid "Metric grid" msgstr "Siatka metryczna" #: ..\../export/tools/inotetool.cpp:19 #, fuzzy msgid "Text Note \tCtrl+N" msgstr "Notatka\tCtrl+N" #: ..\../export/tools/ipacsuploadtool.cpp:19 #, fuzzy msgid "Upload study..." msgstr "Wczytaj zdjęcia do serwera PACS-a" #: ..\../export/tools/ipixelsbluringtool.cpp:20 #, fuzzy msgid "Pixels blurring" msgstr "Rozmycie pikseli" #: ..\../export/tools/ipointertool.cpp:19 #, fuzzy msgid "Pointer \tEsc" msgstr "Wskaźnik\tEsc" #: ..\../export/tools/iqueryretrievetool.cpp:19 #: ..\../main/tools/queryretrievehistorytool.cpp:25 #: ..\../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "Pobierz badanie DICOM z PACS-a" #: ..\../export/tools/iresettool.cpp:19 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 #, fuzzy msgid "Reset" msgstr "Pwróć do ustawień domyślnych" #: ..\../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "" #: ..\../export/tools/iruletool.cpp:19 #, fuzzy msgid "Rule \tCtrl+R" msgstr "Linijka/Prowadnica \tCtrl+R" #: ..\../export/tools/isecondarycapturetool.cpp:19 #, fuzzy msgid "Save snapshot as new series..." msgstr "Należy wybrać przynajmniej 1 zdjęcie" #: ..\../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "" #: ..\../export/tools/ishowtagstool.cpp:19 #: ..\../main/tools/showtagshistorytool.cpp:27 #, fuzzy msgid "DICOM inspector" msgstr "Ukryj inspektora DICOM" #: ..\../export/tools/isimpleprinttool.cpp:19 #: ..\../main/tools/simpleprinttool.cpp:226 msgid "Print" msgstr "Drukuj" #: ..\../export/tools/istartdicomizationtool.cpp:19 #, fuzzy msgid "Dicomize..." msgstr "Automatycznie zamknij Ginkgo CADx po dikomizacji" #: ..\../export/tools/itoolpan.cpp:19 #, fuzzy msgid "Pan \tCtrl+P" msgstr "Wartość P" #: ..\../export/tools/itoolslider.cpp:19 #, fuzzy msgid "Slider \tCtrl+S" msgstr "Ściągnij %s zdjęcia/ć" #: ..\../export/tools/itoolwindowlevel.cpp:19 #, fuzzy msgid "Window/Level \tCtrl+W" msgstr "Okno/poziom\tCtrl+W" #: ..\../export/tools/itoolzoom.cpp:19 #, fuzzy msgid "Zoom \tCtrl+O" msgstr "Powiększ\tCtrl+Z" #: ..\../export/tools/itrackballtool.cpp:19 msgid "Trackball \tCtrl+T" msgstr "" #: ..\../export/tools/iundotool.cpp:20 ..\../main/tools/undotool.cpp:109 msgid "Undo" msgstr "Cofnij" #: ..\../export/tools/ivideotool.cpp:19 msgid "Video \tCtrl+Space" msgstr "" #: ..\../export/tools/iwindowlayouttool.cpp:20 #, fuzzy msgid "Window layout" msgstr "Układ 1x1" #: ..\../main/controllers/controladorcarga.cpp:161 #, fuzzy msgid "Studies with" msgstr "Badania" #: ..\../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr "nieobsługiwane komponenty" #: ..\../main/controllers/controladorcarga.cpp:210 #, fuzzy msgid "Reading properties" msgstr "Właściwości ..." #: ..\../main/controllers/controladorcarga.cpp:219 #: ..\../main/controllers/controladorcarga.cpp:642 #: ..\../main/controllers/controladorcarga.cpp:888 #: ..\../main/controllers/streaming/streamingloader.cpp:600 msgid "Error reading the study: " msgstr "Błąd czytania badania:" #: ..\../main/controllers/controladorcarga.cpp:224 #: ..\../main/controllers/controladorcarga.cpp:229 #: ..\../main/controllers/controladorcarga.cpp:647 #: ..\../main/controllers/controladorcarga.cpp:893 msgid "Internal error reading the study: " msgstr "Błąd wewnętrzny przy czytaniu badania:" #: ..\../main/controllers/controladorcarga.cpp:269 #: ..\../main/controllers/controladorcarga.cpp:281 #: ..\../main/controllers/controladorcarga.cpp:905 #, fuzzy msgid "Spacing is not valid: (" msgstr "Żądany moduł nie jest zarejestrowany" #: ..\../main/controllers/controladorcarga.cpp:305 #: ..\../main/controllers/controladorcarga.cpp:338 #: ..\../main/controllers/controladorcarga.cpp:372 #: ..\../main/controllers/controladorcarga.cpp:408 #: ..\../main/controllers/controladorcarga.cpp:441 #: ..\../main/controllers/controladorcarga.cpp:474 #: ..\../main/controllers/controladorcarga.cpp:507 #: ..\../main/controllers/controladorcarga.cpp:540 #: ..\../main/controllers/controladorcarga.cpp:573 #: ..\../main/controllers/controladorcarga.cpp:606 #: ..\../main/controllers/controladorcarga.cpp:935 msgid "Error loading the study: Out of memory" msgstr "Błąd ładowania badania: brak pamięci" #: ..\../main/controllers/controladorcarga.cpp:375 msgid "Error loading the study: Internal Error" msgstr "Błąd ładowania badania: błąd wewnętrzny" #: ..\../main/controllers/controladorcarga.cpp:630 #: ..\../main/controllers/streaming/streamingloader.cpp:1023 #: ..\../main/controllers/streaming/streamingloader.cpp:1223 #: ..\../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "Błąd czytania badania: nieobsługiwany format piksela" #: ..\../main/controllers/controladorcarga.cpp:651 #: ..\../main/controllers/controladorcarga.cpp:960 msgid "Process canceled by user." msgstr "Proces anulowany przez użytkownika" #: ..\../main/controllers/controladorcarga.cpp:878 msgid "Interpreting properties" msgstr "Interpretowanie właściwości" #: ..\../main/controllers/controladorcarga.cpp:917 #, fuzzy msgid "Spacing of the image is invalid: (" msgstr "Załącz zdjęcie" #: ..\../main/controllers/controladorcarga.cpp:942 msgid "Reading dataset" msgstr "Czytanie zbioru danych" #: ..\../main/controllers/controladorcarga.cpp:951 msgid "Error reading the study:" msgstr "Błąd czytania badania:" #: ..\../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "Błąd wewnętrzny podczas czytania badania:" #: ..\../main/controllers/controladorcarga.cpp:972 msgid "load" msgstr "ładuj" #: ..\../main/controllers/controladorenviohl7.cpp:40 #, fuzzy msgid "Stopping HL7 sender" msgstr "Usługa HL7" #: ..\../main/controllers/controladorenviohl7.cpp:63 #: ..\../main/controllers/controladorenviohl7.cpp:76 #, fuzzy msgid "Error starting HL7 sender" msgstr "Błąd ustawienia warstwy TLS:" #: ..\../main/controllers/controladorenviohl7.cpp:65 #: ..\../main/controllers/controladorenviohl7.cpp:78 #, fuzzy msgid "HL7 sender started" msgstr "Usługa HL7" #: ..\../main/controllers/controladorenviohl7.cpp:108 #, fuzzy msgid "HL7 controller destroyed" msgstr "Usługa HL7" #: ..\../main/controllers/controladorenviohl7.cpp:150 #, fuzzy msgid "Error processing message" msgstr "Komunikat o błędzie" #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/controllers/pacscontroller.cpp:1549 #: ..\../main/controllers/pacscontroller.cpp:1553 #: ..\../main/controllers/pacscontroller.cpp:1557 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ..\../main/gui/import/pasosimportacionbase.cpp:195 #: ..\../wx/gnkinforme/gnkinformebase.cpp:184 msgid "Unknown" msgstr "Nieznany" #: ..\../main/controllers/controladorextensiones.cpp:110 msgid "Loading" msgstr "Ładowanie" #: ..\../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "Nie mógł być załadowany plik biblioteki rozszerzenia" #: ..\../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "Nie można załadować pliku biblioteki. Sprawdź logi" #: ..\../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:153 msgid "Could not find entry point" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "Pomijanie rozszerzenia ze zduplikowanym SID-em" #: ..\../main/controllers/controladorhl7.cpp:74 msgid "Integration engine hostname not set" msgstr "Nie podano nazwy maszyny integrującej" #: ..\../main/controllers/controladorhl7.cpp:77 msgid "Integration engine port not set" msgstr "Nie podano portu maszyny integrującej" #: ..\../main/controllers/controladorhl7.cpp:91 msgid "Unsupported protocol" msgstr "Nieobsługiwany protokół" #: ..\../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "" #: ..\../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "Zostało znalezionych %d wyników" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, c-format msgid "Downloading file %d/%d" msgstr "Ściąganie pliku %d/%d" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "Przekroczony limit rozmiaru ściąganego badania" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "Nie może zarezerwować pamięci na dikomizację pliku pdf" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "Nie może zarezerwować pamięci na dikomizację zdjęcia" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:359 msgid "Image format not supported" msgstr "Nierozpoznany format zdjęcia" #: ..\../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "Klucz prywatny i certyfikat nie pokrywają się" #: ..\../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "Błąd ustawienia warstwy TLS:" #: ..\../main/controllers/dcmtk/dicomservice.cpp:200 #, fuzzy msgid "Receiving Association failed: " msgstr "Unikalny identyfikator jednostki otrzymującej komunikat" #: ..\../main/controllers/dcmtk/dicomservice.cpp:209 msgid "Association received" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:210 msgid "Parameters:" msgstr "Parametry:" #: ..\../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr ")" #: ..\../main/controllers/dcmtk/dicomservice.cpp:274 #, fuzzy msgid "No valid presentation contexts" msgstr "Informacja o sposobie prezentacji zdjęcia" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 #, fuzzy msgid "Association(dicom://" msgstr "Węzły DICOM" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "@" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "Ginkgo CADx nie może dokonać kompresji z " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr "do" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, c-format msgid "Uploading file %d of %d" msgstr "Wczytywanie pliku %d z %d" #: ..\../main/controllers/dicommanager.cpp:504 #: ..\../main/controllers/dicommanager.cpp:531 #, fuzzy msgid "Extracting file..." msgstr "Plik" #: ..\../main/controllers/historycontroller.cpp:323 msgid "Error creating history database " msgstr "Błąd tworzenia historii bazy danych" #: ..\../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr "próba temp" #: ..\../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" "Nie posiadać uprawnień do zapisu w katalogu DICOM, preferencje zostanoą " "przechowane w tymczasowym katalogu" #: ..\../main/controllers/historycontroller.cpp:343 #, fuzzy msgid "Error creating dicomDir database " msgstr "Błąd tworzenia historii bazy danych" #: ..\../main/controllers/historycontroller.cpp:425 #: ..\../main/controllers/historycontroller.cpp:441 msgid "Error creating thumbnails database " msgstr "Błąd przy tworzeniu bazy miniaturek" #: ..\../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "Błąd przy tworzeniu bazy danych:\n" #: ..\../main/controllers/historycontroller.cpp:560 msgid "Including image " msgstr "Załącz zdjęcie" #: ..\../main/controllers/historycontroller.cpp:560 #: ..\../main/controllers/historycontroller.cpp:707 msgid " of " msgstr "z" #: ..\../main/controllers/historycontroller.cpp:707 #, fuzzy msgid "Linking image " msgstr "Załącz zdjęcie" #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "Błąd czytania historii: \n" #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "Niepowodzenie przy opróżnianiu historii:\n" #: ..\../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" "Ginkgo CADx wykrył brak aktywności i zostanie zamknięty w ciągu %d sekund.\n" "czy chcesz kontynuować?" #: ..\../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:493 #, fuzzy msgid "Malformed template Id (" msgstr "Nieobsługiwany id szablonu (" #: ..\../main/controllers/integrationcontroller.cpp:493 #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "Template Id unsupported (" msgstr "Nieobsługiwany id szablonu (" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "" "):\n" "Sprawdź konfigurację i podłącz ją w razie konieczności" #: ..\../main/controllers/integrationcontroller.cpp:566 msgid "Unknown module Id (" msgstr "Nieznane id modułu (" #: ..\../main/controllers/integrationcontroller.cpp:592 msgid "Empty configuration" msgstr "Opróżnij konfigurację" #: ..\../main/controllers/integrationcontroller.cpp:631 #, fuzzy msgid "XML Parser Not Found. Key=" msgstr "Brak wystarczającej liczby parametrów w XML" #: ..\../main/controllers/log4cplus/guiappender.cpp:75 #, fuzzy msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "%m/%d/%Y %H:%M:%S" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ..\../main/gui/history3/historypanel3base.cpp:48 #: ..\../main/gui/import/pasosimportacionbase.cpp:227 msgid "Patient" msgstr "Pacjent" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #, fuzzy msgid "Patient ID" msgstr "Id pacjenta" #: ..\../main/controllers/modalitysettingscontroller.cpp:86 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ..\../main/gui/history3/historypanel3.cpp:227 #: ..\../main/gui/open/opendialogs.cpp:50 msgid "Modality" msgstr "Rodzaj badania" #: ..\../main/controllers/modalitysettingscontroller.cpp:98 #, fuzzy msgid "Dimensions" msgstr "Rozszerzenia" #: ..\../main/controllers/modalitysettingscontroller.cpp:109 #, fuzzy, c-format msgid "Made with %s" msgstr "Ściągnij %s zdjęcia/ć" #: ..\../main/controllers/modalitysettingscontroller.cpp:167 #: ..\../main/controllers/modalitysettingscontroller.cpp:338 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "Domyślny" #: ..\../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1212 #, fuzzy msgid "Downloading file" msgstr "Ściąganie pliku %d" #: ..\../main/controllers/pacscontroller.cpp:1318 #, fuzzy msgid "Error downloading WADO file" msgstr "Ściąganie pliku %d" #: ..\../main/controllers/pacscontroller.cpp:1318 #, fuzzy msgid "Check PACS configuration" msgstr "Brak adresu URL do sprawdzania aktualizacji w bieżącej konfiguracji." #: ..\../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1428 #, fuzzy msgid "Invalid HTTP response" msgstr "Umożliw http proxy" #: ..\../main/controllers/pacscontroller.cpp:1433 #, fuzzy msgid "Invalid HTTP code" msgstr "Umożliw http proxy" #: ..\../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1472 msgid "PACS-Service" msgstr "Usługa PACS" #: ..\../main/controllers/parserxmlenglish.cpp:97 #: ..\../main/controllers/parserxmlspanish.cpp:94 msgid "Omitted Identificator" msgstr "Pominięty identyfikator" #: ..\../main/controllers/parserxmlenglish.cpp:105 #: ..\../main/controllers/parserxmlspanish.cpp:102 msgid "Omitted AET" msgstr "Pominięty AET" #: ..\../main/controllers/parserxmlenglish.cpp:113 #: ..\../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "Brak nazwy hosta" #: ..\../main/controllers/parserxmlenglish.cpp:121 #: ..\../main/controllers/parserxmlspanish.cpp:118 msgid "Omitted port" msgstr "Pominięty port" #: ..\../main/controllers/parserxmlenglish.cpp:206 #: ..\../main/controllers/parserxmlenglish.cpp:237 #: ..\../main/controllers/parserxmlspanish.cpp:188 #: ..\../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "Żądany moduł nie jest zarejestrowany" #: ..\../main/controllers/parserxmlenglish.cpp:212 #: ..\../main/controllers/parserxmlspanish.cpp:194 msgid "Port is not a valid number" msgstr "Port nie jest poprawną liczbą" #: ..\../main/controllers/parserxmlenglish.cpp:248 #: ..\../main/controllers/parserxmlspanish.cpp:228 msgid "The port is not a valid number" msgstr "Port nie jest właściwą liczbą" #: ..\../main/controllers/parserxmlenglish.cpp:265 #: ..\../main/controllers/parserxmlspanish.cpp:246 msgid "Setting not found" msgstr "Nie odnaleziono ustawienia" #: ..\../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "\"action\" attribute invalid at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "\"action\" attribute expected at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:391 #, fuzzy msgid "\"code\" attribute expected at \"patient\" scope" msgstr "\"code\" attribute expected at \"metadata\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:427 #, fuzzy msgid "\"code\" attribute expected at \"physician\" scope" msgstr "\"code\" attribute expected at \"metadata\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:434 #, fuzzy msgid "\"value\" attribute expected at \"physician\" scope" msgstr "\"action\" attribute expected at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:445 #, fuzzy msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "\"cid\" atribute expected at \"centro\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "\"code\" attribute expected at \"metadata\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:483 #, fuzzy msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "\"code\" attribute expected at \"metadata\" scope" #: ..\../main/controllers/parserxmlenglish.cpp:548 #: ..\../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "Należy podać atrybuty, które chcemy zastosować w zapytaniu" #: ..\../main/controllers/parserxmlenglish.cpp:552 #: ..\../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "Przeczytano zakładkę \"pacjent\" bez identyfikatorów" #: ..\../main/controllers/parserxmlenglish.cpp:570 #: ..\../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "" "Należy zdefiniować domyślny serwer PACS-a w integracji XML lub w menu " "ustawień" #: ..\../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "\"accion\" attribute invalid at \"plantilla\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "\"accion\" attribute expected at \"plantilla\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:340 #, fuzzy msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "\"ambito\" attribute expected at \"dimse\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "\"ambito\" attribute invalid at \"dimse\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "\"ambito\" attribute expected at \"dimse\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:402 #, fuzzy msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "\"action\" attribute expected at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:438 #, fuzzy msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "\"action\" attribute expected at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:445 #, fuzzy msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "\"action\" attribute expected at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "\"cid\" atribute expected at \"centro\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "\"aid\" attribute expected at \"hce\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:486 #, fuzzy msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "\"clave\" attribute expected at \"metadato\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "\"clave\" attribute expected at \"metadato\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:524 #, fuzzy msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "\"action\" attribute expected at \"gnkworkflow\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "\"ambito\" attribute expected at \"plantilla\" scope" #: ..\../main/controllers/parserxmlspanish.cpp:559 msgid "id_application expected" msgstr "oczekiwane jest id aplikacji" #: ..\../main/controllers/smartretrievecontroller.cpp:124 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:920 msgid "Downloading from PACS..." msgstr "Ściąganie z PACS-a ..." #: ..\../main/controllers/streaming/streamingloader.cpp:303 #: ..\../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" #: ..\../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "Błąd wewnętrzny przy czytania badania, nieznany format" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ..\../main/gui/history3/historytablemodel.cpp:403 #: ..\../main/gui/history3/historytablemodel.cpp:415 #: ..\../main/gui/history3/historytablemodel.cpp:470 #: ..\../main/gui/history3/historytablemodel.cpp:482 #: ..\../main/gui/open/dicomdirtablemodel.cpp:102 #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "%m/%d/%Y %H:%M:%S" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "%m/%d/%Y 00:00:00" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 msgid "Exploring PACS..." msgstr "Przeglądanie PACS-a" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ..\../main/gui/history3/historypanel3.cpp:225 #: ..\../main/gui/open/opendialogs.cpp:49 #, fuzzy msgid "Patient id" msgstr "Id pacjenta" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ..\../main/gui/history3/historypanel3.cpp:224 #: ..\../main/gui/open/opendialogs.cpp:48 msgid "Patient name" msgstr "Nazwisko pacjenta" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:479 #, fuzzy msgid "Study Instance UID" msgstr "UID badania" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ..\../main/gui/history3/historypanel3.cpp:231 #: ..\../main/gui/open/opendialogs.cpp:53 msgid "Accession number" msgstr "Numer dostępu" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:481 msgid "Study date" msgstr "Data badania" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:482 #, fuzzy msgid "Study time" msgstr "Czas" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:490 #, fuzzy msgid "Series Instance UID" msgstr "Seria" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:492 msgid "Series date" msgstr "Data serii" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:493 #, fuzzy msgid "Series time" msgstr "Czas" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:519 msgid "No results found" msgstr "Brak rezultatów" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #, fuzzy msgid "Write query name" msgstr "Nazwa" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #, fuzzy msgid "This query name is in use, do you want to overwrite it?" msgstr "" "Plik istnieje\n" "Czy chcesz go nadpisać?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 msgid "Id" msgstr "Id" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 msgid "Date Time" msgstr "Data czas" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ..\../main/gui/history3/historypanel3.cpp:229 #: ..\../main/gui/import/pasosimportacionbase.cpp:298 #: ..\../main/gui/import/pasosimportacionbase.cpp:340 #: ..\../main/gui/open/opendialogs.cpp:52 msgid "Description" msgstr "Opis" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ..\../main/gui/import/pasosimportacionbase.cpp:276 msgid "Accession Number" msgstr "Numer dostępu" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:210 msgid "Store query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:211 #, fuzzy msgid "Remove query" msgstr "Usuń" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:278 msgid "There is no any PACS configured" msgstr "Nie ma żadnego skonfigurowanego PACS-a" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "Acc#" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:54 msgid "Study UID" msgstr "UID badania" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" "Wyszukiwanie bez parametrów może zająć dużo czasu\n" "Czy mimo tego chcesz kontynuować?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "Search" msgstr "Szukaj" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:519 msgid "Download series" msgstr "Ściągnij serię" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 msgid "Download study" msgstr "Ściągnij badanie" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:535 #, fuzzy msgid "Link series" msgstr "Seria" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:537 #, fuzzy msgid "Link study" msgstr "Badanie" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:551 msgid "Properties..." msgstr "Właściwości ..." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #, fuzzy msgid "You must specify at least a modality or a period of time" msgstr "Należy podać przynajmniej uid badania lub numer dostępu" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #, fuzzy msgid "Select a valid query" msgstr "Wybierz serwer PACS-a" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 msgid "Select a valid PACS Server" msgstr "Wybierz serwer PACS-a" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid "Download of modality " msgstr "Ściąganie rodzaju badania" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr "niedozwolone" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "Nie masz pozwolenia na ściągnięcie tego rodzaju badań." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "Modality download error" msgstr "Błąd ściągania rodzaju badania" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:786 msgid "search results" msgstr "Rezultaty szukania" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:913 #, fuzzy msgid "Downloading serie..." msgstr "Ściąganie plików ..." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:916 #, fuzzy msgid "Downloading study..." msgstr "Błąd ściągania badania:" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:165 msgid "PACS acquisition is restricted" msgstr "Pobieranie z PACS-a jest ograniczone" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:96 msgid "Server" msgstr "Serwer" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ..\../main/gui/import/pasosimportacionbase.cpp:284 #: ..\../main/gui/import/pasosimportacionbase.cpp:326 #: ..\../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "Data badania" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ..\../main/gui/history3/historypanel3base.cpp:81 msgid "Any date" msgstr "Dowolna data" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ..\../main/gui/history3/historypanel3base.cpp:85 msgid "Today AM" msgstr "Dzisiaj przed południem" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ..\../main/gui/history3/historypanel3base.cpp:88 msgid "Today PM" msgstr "Dzisiaj po południu" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ..\../main/gui/history3/historypanel3base.cpp:91 msgid "Today" msgstr "Dzisiaj" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ..\../main/gui/history3/historypanel3base.cpp:100 msgid "Yesterday" msgstr "Wczoraj" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ..\../main/gui/history3/historypanel3base.cpp:103 msgid "Last 7 days" msgstr "Ostatnie 7 dni" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ..\../main/gui/history3/historypanel3base.cpp:106 msgid "Last 30 days" msgstr "Ostatnie 30 dni" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ..\../main/gui/history3/historypanel3base.cpp:109 msgid "Last 3 months" msgstr "Ostatnie 3 miesiące" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ..\../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "Od do:" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ..\../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "Rodzaje badań" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 #, fuzzy msgid "Stored queries" msgstr "Plik nie może zostać zapisany" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:216 #, fuzzy msgid "Select stored queries..." msgstr "Wybierz katalog, w którym pliki zostaną zapisane" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ..\../main/gui/open/opendialogsbase.cpp:50 #: ..\../main/gui/open/opendialogsbase.cpp:202 msgid "Link" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:289 msgid "Download" msgstr "Ściąganie" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ..\../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "Zamknij" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:329 msgid "Series does not exist" msgstr "Seria nie istnieje" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "Seria została usunięta z lokalnej historii" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "Kontynuuj" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ..\../main/gui/open/opendialogsbase.cpp:127 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ..\../main/tools/metricgridtool.cpp:101 msgid "Ok" msgstr "Ok" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:151 #, fuzzy msgid "Download again" msgstr "Ściąganie" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:441 msgid "Open" msgstr "Otwórz" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:179 #, fuzzy msgid "Set query name" msgstr "Nazwa" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:32 #, fuzzy msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" "Wybrana seria jest już otwarta\n" "Czy otworzyć ją ponownie?" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:34 #, fuzzy msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" "Wybrana seria jest już otwarta\n" "Czy otworzyć ją ponownie?" #: ..\../main/gui/anonymize/anonymizedialog.cpp:64 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ..\../main/gui/export/parametrosprincipales.cpp:194 msgid "Exporting images ..." msgstr "Eksportowanie zdjęć ..." #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:21 #, fuzzy msgid "Common tags" msgstr "Prywatne tagi Ginkgo CADx" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 msgid "Patient's name and surname" msgstr "Imię i nazwisko pacjenta" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 msgid "Patient Id" msgstr "Id pacjenta" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "Jednostki" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "Lekarz kierujący" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "Komentarze" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:44 msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "Ginkgo CADxTagi (Mapy ewaluacyjne...)" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:71 #, fuzzy msgid "Add new..." msgstr "Nowy ..." #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ..\../main/tools/anonymizetool.cpp:26 #: ..\../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "Anonimizuj" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:136 #, fuzzy msgid "Create new" msgstr "Nowy ..." #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ..\../main/gui/anonymize/anonymizepanelbase.h:136 #, fuzzy msgid "Add DICOM tag" msgstr "Dodaj" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:199 msgid "Group" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:203 msgid "Element" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ..\../widgets/wangulo.cpp:1114 msgid "Value" msgstr "Wartość" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 #, fuzzy msgid "Top right corner annotation" msgstr "Ukryj adnotacje narożne" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 #, fuzzy msgid "Top left corner annotation" msgstr "Ukryj adnotacje narożne" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 #, fuzzy msgid "Bottom left corner annotation" msgstr "Ukryj adnotacje narożne" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 #, fuzzy msgid "Bottom right corner annotation" msgstr "Ukryj adnotacje narożne" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #, fuzzy msgid "You must fill in all fields" msgstr "Aby kontynuować, należy wypełnić wszystkie pola" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 msgid "Window/level label in use" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 #, fuzzy msgid "Window" msgstr "Układ okna" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 msgid "Level" msgstr "Poziom" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #, fuzzy msgid "Do you confirm the removal of the preset?" msgstr "Potwierdź usunięcie profilu" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Data modified" msgstr "Dane zmodyfikowane" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 #, fuzzy msgid "Modality settings" msgstr "do Rodzaju badania" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 #, fuzzy msgid "Default modality settings" msgstr "do Rodzaju badania" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, fuzzy, c-format msgid "%s settings" msgstr "Ustawienia" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:60 #, fuzzy msgid "settings" msgstr "Ustawienia" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Export Configuration" msgstr "Eksportuj konfigurację" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Ini Files(*.ini)|*.ini" msgstr "Pliki ini (*.ini)|*.ini" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" "Plik istnieje\n" "Czy chcesz go nadpisać?" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 msgid "Existing file" msgstr "Istniejący plik" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 msgid "Export successfully completed" msgstr "Eksport pomyślnie zakończony" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 msgid "There was an error during exportation" msgstr "Błąd podczas eksportu" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Import Configuration" msgstr "Konfiguracja importu" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Ini files(*.ini)|*.ini" msgstr "Pliki ini (*.ini)|*.ini" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "" "Import zakończony pomyślnie. Uruchom ponownie Ginkgo CADx, by zastosować " "zmiany." #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 msgid "There was an error during importation, check permissions" msgstr "Wystąpił błąd podczas eksportu, sprawdź uprawnienia" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 #, fuzzy msgid "Dicom tag" msgstr "Zdikomizowane pliki" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 #, fuzzy msgid "Split horizontally..." msgstr "Ułóż obrazki w poziomie" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 #, fuzzy msgid "Split vertically..." msgstr "Ułóż obrazki w pionie" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ..\../main/tools/windowlayouttool.cpp:273 #, fuzzy msgid "Split active horizontally" msgstr "Aktywny" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ..\../main/tools/windowlayouttool.cpp:274 #, fuzzy msgid "Split active vertically" msgstr "Aktywny" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 #, fuzzy msgid "New hanging protocol" msgstr "Nowy ..." #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, fuzzy, c-format msgid "Window %d" msgstr "Eksportowanie pliku %d z %d" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "Aktywny" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "Yes" msgstr "Tak" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "Nie" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 #, fuzzy msgid "Hanging protocols" msgstr "Nieznany protokół" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 msgid "One day" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 #, fuzzy msgid "Two days" msgstr "Siatka (2 kolumny)" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 #, fuzzy msgid "Three days" msgstr "Siatka (3 kolumny)" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 #, fuzzy msgid "Two weeks" msgstr "Siatka (2 kolumny)" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 #, fuzzy msgid "One month" msgstr "Ostatni miesiąc" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 #, fuzzy msgid "Three months" msgstr "Ostatnie 3 miesiące" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 #, fuzzy msgid "Local database" msgstr "Błąd tworzenia historii bazy danych" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 #, fuzzy msgid "Local DICOM Dir setup" msgstr "Katalog DICOM" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" "Wybrany katalog nie istnieje.\n" "Chcesz go utworzyć?" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" "Tworzenie katalogu zakończone niepowodzeniem. Upewnij się czy ścieżka jest " "prawidłowa i masz odpowiednie uprawnienia do katalogu nadrzędnego." #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" "Wystąpił błąd przy czytaniu katalogu. Upewnij się czy masz uprawnienia " "zapisywania w nim." #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 msgid "Select DICOMDIR" msgstr "Wybierz katalog DICOM" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" "Ostrzeżenie. Aby uaktualnić katalog, należy zamknąć wszystkie otwarte serie" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "Stacja robocza" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "Parametry konfiguracyjne lokalnej stacji" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "Rozszerzenia" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:126 msgid "Extensions settings" msgstr "Ustawienia rozszerzeń" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "" "Gingko CADx musi dokonać restartu, aby zmiany w rozszerzeniach mogły " "zadziałać" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #, fuzzy msgid "Port has to be a valid number" msgstr "Port nie jest poprawną liczbą" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "Ogólne" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:190 msgid "General configuration parameters" msgstr "Ogólne parametry konfiguracyjne" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "»Ginkgo CADx« musi dokonać restartu, aby zmiany mogły zadziałać" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "Elektroniczne dane medyczne" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "Ustawienia systemu elektronicznych danych medycznych" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:134 msgid "Testing conectivity with the server..." msgstr "Testowanie łączności z serwerem ..." #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:144 msgid "Error connecting to url" msgstr "Błąd połączenia z url" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #, fuzzy msgid "hostname/port not set" msgstr "Nazwa hosta / Port" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "Niepowodzenie test połączenia" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "Pomyślny test połączenia" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "Select certificate" msgstr "Wybierz certyfikat" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "Pliki PEM (*.pem;*.key)|*.pem;*.key|Wszystkie pliki (*.*)|*.*" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "Należy ustawić klucz prywatny i publiczny" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:255 msgid "Change ..." msgstr "Zmień ..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 msgid "Import ..." msgstr "Import ..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:279 msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "" "Jeśli chcesz używać SSL/TLS, należy ustawić ważny certyfikat i klucz prywatny" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:472 #, fuzzy msgid "There are this errors: " msgstr "Wygenerowali następujące błędy:" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" "\n" "- Ten PACS jest używany" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" "\n" "- lokalny port musi być dodatnią krótką liczbą całkowitą (16 bitów)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" "\n" "- Port jest za duży" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" "\n" "- Maksymalna długość AET wynosi16 znaków" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" "\n" "- Rozmiar PDU powinien być większy lub równy zero (domyślnie = 16384)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" "\n" "- Maksymalna wartość PDU wynosi" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" "\n" "- Minimalna wartość PDU wynosi " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" "\n" "- Jeśli chcesz używać SSL/TLS, należy ustawić ważny certyfikat i klucz " "prywatny" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:525 #, fuzzy msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" "\n" "- Jeśli chcesz używać SSL/TLS, należy ustawić ważny certyfikat i klucz " "prywatny" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "Aby kontynuować, należy wypełnić wszystkie pola" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:558 msgid "Testing the connection to the node ..." msgstr "Testowanie połączenia z węzłem ..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:561 #, fuzzy msgid "DICOM Error" msgstr "błąd" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "Usługa nie odpowiedziała prawidłowo C-ECHO-u" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:607 #, fuzzy msgid "The service did not respond correctly to the DICOM standard" msgstr "Usługa nie odpowiedziała prawidłowo C-ECHO-u" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:616 #, fuzzy msgid "Invalid port number" msgstr "Port nie jest poprawną liczbą" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:622 #, fuzzy msgid "WADO Error" msgstr "błąd" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:703 msgid "Use by default" msgstr "Użyj domyślnie" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:795 msgid "DICOM nodes" msgstr "Węzły DICOM" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:800 msgid "DICOM nodes settings" msgstr "Ustawienia węzłów DICOM" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "Wygenerowali następujące błędy:" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" "\n" "- lokalny port musi być dodatnią krótką liczbą całkowitą (16 bitów)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" "\n" "- Lokalny port jest za duży" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" "\n" "- Maksymalna długość AET wynosi16 znaków" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "Potwierdź usunięcie węzła" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1101 msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Należy skonfigurować lokalny AET, który uzywany jest do komunikacji z " "węzłami DICOM. Port, co jest istotne, musi być otwarty na firewall-u" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ..\../main/gui/export/pasosexportacionbase.cpp:20 msgid "Profile" msgstr "Profil" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "Wartość domyślna" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 msgid "Set property active" msgstr "Aktywuj właściwość" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "Nieaktywny" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Set property inactive" msgstr "Dezaktywuj właciwość" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 msgid "Set default value" msgstr "Ustaw wartość domyślną" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:352 msgid "Set by user" msgstr "Ustawnione przez użytkownika" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 msgid "Profile name can't be repeated" msgstr "Nazwa profilu nie może się powtarzać" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "Aby kontynuować, należy wypełnić pole \"nazwa\"" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "Profile" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:498 msgid "Profiles Settings" msgstr "Ustawienia profili" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "" "Ginkgo CADx musi dokonać restartu, aby zmiany w uprawnieniach mogły zadziałać" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 msgid "Confirm the removal of the profile " msgstr "Potwierdź usunięcie profilu" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:53 msgid "New User" msgstr "Nowy użytkownik" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "Nazwa uzytkownika musi zawierać przynajmniej 4 znaki" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 msgid "User name repeated" msgstr "Powtórzona nazwa użytkownika" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "Hasło i jego potwierdzenie nie mogą się różnić" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 msgid "Password has to contain at least 6 characters" msgstr "Hasło musi zawierać przynajmniej 6 znaków" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:141 msgid "No login" msgstr "Brak loginu" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 msgid "User/Password" msgstr "Użytkownik/Hasło" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:224 msgid "Password" msgstr "Hasło" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:191 msgid "Password is setted" msgstr "Hasło jest ustawione" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "Zmień hasło" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 msgid "Password is not setted" msgstr "Hasło jest nie ustawione" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:195 msgid "Set password" msgstr "Ustaw hasło" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:224 msgid "Security Setting" msgstr "Ustawienia bezpieczeństwa" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "Należy utworzyć przynajmniej 1 użytkownika" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "Należy ustawić główne hasło" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 msgid "User inserted successfully" msgstr "Użytkownik wstawiony pomyślnie" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "" "Wystąpił błąd przy wstawianiu użytkownika. Otwórz plik logów, by uzyskać " "więcej informacji." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 msgid "Password changed successfully" msgstr "Hasło pomyślnie zmienione" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "" "Wystąpił błąd przy zmianie hasła. Otówrz plik logów, by uzyskać więcej " "informacji." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 msgid "User deleted successfully" msgstr "Użytkownik usunięty pomyślnie" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "" "Wystąpił błąd przy usuwaniu użytkownika. Otwórz plik logów, by uzyskać " "więcej informacji." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "Ginkgo CADx musi mieć przynajmniej 1 użytkownika" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ..\../main/gui/login/dialogologin.cpp:27 msgid "User" msgstr "Użytkownik" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ..\../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "Wybierz katalog" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "Nagłówek lokalizacji nie może się powtarzać" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 msgid "Maximum length of title is 8 characters" msgstr "Maksymalna długość nagłówka wynosi 8 znaków" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "Nie można otworzyć wybranego katalogu" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "" "Aby kontynuować, należy wypełnić zarówno pole \"nagłówek/tytuł\" jak i pole " "\"lokalizacja\"" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 msgid "Title" msgstr "Tytuł/nagłówek" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 msgid "Path" msgstr "Ścieżka" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 msgid "Clean before" msgstr "Wyczyść po" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 msgid "Clean after" msgstr "Wyczyść po" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "Lokalizacje" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 msgid "Location Settings" msgstr "Ustawienia lokalizacji" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "Anonimizacja" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:96 msgid "Anonymization settings" msgstr "Ustawienia anonimizacji" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1370 msgid "Settings" msgstr "Ustawienia" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 #, fuzzy msgid "Export config..." msgstr "Eksportuj zdjęcia" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 #, fuzzy msgid "Import config..." msgstr "Import" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "Zastosuj" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 msgid "Physician's name" msgstr "Nazwisko lekarza" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 msgid "Physician's Id" msgstr "Id lekarza" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 msgid "Service" msgstr "Usługa" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 msgid "Service's name" msgstr "Nazwa usługi" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 msgid "Service's Id" msgstr "Id usługi" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 msgid "Local institution" msgstr "Jednostka lokalna" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 msgid "Institution's name" msgstr "Nazwa jednostki" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 msgid "Institution's Id" msgstr "Id jednostki" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 msgid "Dicomized files" msgstr "Zdikomizowane pliki" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 msgid "Charset" msgstr "Zestaw znaków/ Strona kodowa" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "ISO_IR 192" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "ISO_IR 6" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "ISO_IR 100" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "ISO_IR 101" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "ISO_IR 109" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "ISO_IR 110" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "ISO_IR 126" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "ISO_IR 127" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "ISO_IR 138" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "ISO_IR 144" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 msgid "ISO_IR 148" msgstr "ISO_IR 148" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "Język" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 msgid "Automatically check for updates" msgstr "Automatycznie sprawdzaj istnienie aktualizacji" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ..\../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 msgid "Proxy settings" msgstr "Ustawienia proxy" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 msgid "Enable http proxy" msgstr "Umożliw http proxy" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:218 #, fuzzy msgid "Proxy Settings" msgstr "Ustawienia proxy" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 msgid "Server settings" msgstr "Ustawienia serwera" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 msgid "Host" msgstr "Host" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 msgid "Port" msgstr "Port" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "Uwierzytelnienie" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "Serwer proxy wymaga uwierzytelnienia" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 #, fuzzy msgid "Username" msgstr "Nazwa użytkownika lub hasło są nieprawidłowe" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "Wyjątki" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 #, fuzzy msgid "No proxy for addresses containing" msgstr "Oddziel adresy przecinkami." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "Oddziel adresy przecinkami." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 msgid "DICOM Dir" msgstr "Katalog DICOM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "" "Katalog DICOM jest lokalnym katalogiem, gdzie przechowywana jest historia" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" "Ostrzeżenie. Aby zaktualizować katalog, należy zamknąć wszystkie otwarte " "serie" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 msgid "Auto-cleaning" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 msgid "MB" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ..\../main/tools/toolwindowlevel.cpp:201 msgid "Reset to default" msgstr "Pwróć do ustawień domyślnych" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "Lokalny PACS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Należy skonfigurować lokalny AET, który uzywany jest do komunikacji z " "serwerem PACS-a. Port, co jest istotne, musi być otwarty na firewall-u" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 msgid "Local AET" msgstr "Lokalny AET" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" "Dla implementacji na szeroką skalę w środowisku jednorodnym, można " "wyszczególnić następujące \"dzikie karty\" na lokalnym AET:\n" "\t%IP Adres IP \n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "Ustawienia zaawansowane ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 msgid "DICOM Nodes" msgstr "Węzły DICOM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 msgid "New ..." msgstr "Nowy ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 msgid "Edit ..." msgstr "Edytuj ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ..\../main/gui/history3/historypanel3.cpp:677 #: ..\../main/gui/history3/historypanel3.cpp:686 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ..\../main/gui/import/selectimagesimportation.cpp:291 #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete" msgstr "Usuń" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 msgid "Set Default" msgstr "Ustaw domyślnie" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:388 msgid "DICOM Node" msgstr "Węzeł DICOM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "AET" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 #, fuzzy msgid "PDU (KB)" msgstr "Żądany moduł nie jest zarejestrowany" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 msgid "Retrieve method" msgstr "Metoda odbioru" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Move" msgstr "Przenieś" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Get" msgstr "Pobierz" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 #, fuzzy msgid "WADO URL" msgstr "URL do wsparcia online" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 msgid "Retrieve mode" msgstr "Tryb odbioru" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ..\../main/gui/import/pasosimportacionbase.cpp:319 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1395 msgid "Series" msgstr "Seria" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 msgid "Studies" msgstr "Badania" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "Połącz się ponownie" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 #, fuzzy msgid "Worklists" msgstr "Stacja robocza" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 #, fuzzy msgid "Select how do you want to handle MPPS items" msgstr "Wybierz pliki DICOM, które chcesz pobrać" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 #, fuzzy msgid "DICOM MPPS" msgstr "Węzły DICOM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 #, fuzzy msgid "HL7 messages" msgstr "Komunikaty" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 #, fuzzy msgid "HL7" msgstr "Usługa HL7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 #, fuzzy msgid "Abort message" msgstr "Komunikat" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 #, fuzzy msgid "Completed message" msgstr "Eksport pomyślnie zakończony" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 #, fuzzy msgid "In progress message" msgstr "Komunikat" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 #, fuzzy msgid "Default values" msgstr "Domyślny" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 #, fuzzy msgid "Worklist" msgstr "Stacja robocza" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 msgid "SSL/TLS" msgstr "SSL/TLS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 #, fuzzy msgid "Verify server credentials" msgstr "Serwer" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 msgid "Use SSL/TLS" msgstr "Użyj SSL/TLS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "Certyfikat" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 msgid "Certificate to use in this connection" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "Konfiguracja zaawansowana ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 #, fuzzy msgid "Default charset" msgstr "Zestaw znaków/ Strona kodowa" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 msgid "Advanced" msgstr "Zaawansowane" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "Połączenie testowe" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 msgid "Local AET certificate" msgstr "Certyfikat lokalnego AET" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 msgid "Certificate used by Ginkgo CADx" msgstr "Certyfikat stosowany przez Ginkgo CADx" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "Id aplikacji Gingo CADx użyte do wypełnienia pól MSH.3" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 msgid "Receiver organization Id" msgstr "Id jednostki odbiorczej" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "Unikalny identyfikator jednostki otrzymującej komunikat" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 #, fuzzy msgid "Petitioner System Id" msgstr "Id" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "Unikalny identyfikator systemu odbiorczego" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 #, fuzzy msgid "Filler Application Id" msgstr "oczekiwane jest id aplikacji" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 msgid "Ginkgo CADx Application Id" msgstr "Id aplikacji Ginkgo CADx" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" "Unikalny identyfikator Systemu Komunikacji i Archiwizacji Obrazu (SIID/PACS)." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 msgid "Integration engine" msgstr "Maszyna integrująca" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 msgid "Hostname / Port" msgstr "Nazwa hosta / Port" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "Nazwa (IP lub DNS) maszyny integrującej" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "/" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 #, fuzzy msgid "Protocol" msgstr "Nieznany protokół" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ..\../main/gui/export/pasosexportacionbase.cpp:28 msgid "Format" msgstr "Format" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 msgid "Message's format" msgstr "Format komunikatu" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "ER7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 msgid "Test engine" msgstr "Maszyna testowa" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 #, fuzzy msgid "Test Integration Engine connectivity" msgstr "Maszyna testowa" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 msgid "Ginkgo Extension Title" msgstr "Nagłówek rozszerzenia Ginkgo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 msgid "Edit public key" msgstr "Edytuj klucz publiczny" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "" "Użyj domyślnego certyfikatu (certyfikat skonfigurowany w ustawieniach " "lokalnego AET)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 msgid "Public key" msgstr "Klucz publiczny" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 msgid "Public key in PEM format" msgstr "Klucz publiczny w formacie PEM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 msgid "Load ..." msgstr "Ładuj ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 msgid "Private key" msgstr "Klucz prywatny" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 msgid "Private key in PEM format" msgstr "Klucz prywatny w formacie PEM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 msgid "Profile name" msgstr "Nazwa profilu" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 msgid "Set active" msgstr "Uaktywnij" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "" "Lokalizacje to wcześniej zdefiniowane, dobrze znane lub często używane, " "ścieżki (np. udostępniony dysk sieciowy)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 msgid "Configure location" msgstr "Skonfiguruj lokalizację" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 msgid "Location" msgstr "Lokalizacja" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "Wyczyść katalog po dikomizacji" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "Wyczyść katalog przed dikomizacja" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 msgid "Security type" msgstr "Rodzaj bezpieczeństwa" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "Użytkownicy" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 msgid "Change Password ..." msgstr "Zmień hasło ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 msgid "Set main password" msgstr "Ustaw główne hasło" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 msgid "Set Password" msgstr "Ustaw hasło" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:736 msgid "Edit User" msgstr "Edytuj użytkownika" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 msgid "User Name" msgstr "Nazwa użytkownika" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 msgid "Confirm Password" msgstr "Potwierdź hasło" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 msgid "Properties" msgstr "Właściwości" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:814 #, fuzzy msgid "Edit corner annotations" msgstr "Ukryj adnotacje narożne" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue} where GGGG is the tag's group in hexadecimal and EEEE is the " "tag's element." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 #, fuzzy msgid "Window/level" msgstr "Poziom" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "Dodaj" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ..\../main/gui/history3/historytoolmenu.cpp:149 #: ..\../widgets/gui/selecciontextobase.h:58 #, fuzzy msgid "Edit" msgstr "Edytuj ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 #, fuzzy msgid "Default Window/Level" msgstr "Poziom" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 #, fuzzy msgid "Corner annotations" msgstr "Ukryj adnotacje narożne" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 #, fuzzy msgid "Setup corner annotations" msgstr "Ukryj adnotacje narożne" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 #, fuzzy msgid "Setup..." msgstr "Ustawienie strony ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 #, fuzzy msgid "Other settings" msgstr "Inne" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 #, fuzzy msgid "Interpolate pixel data" msgstr "Dane" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:885 #, fuzzy msgid "Hanging protocol" msgstr "Nieznany protokół" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 #, fuzzy msgid "Opening mode" msgstr "Tryb odbioru" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 #, fuzzy msgid "Study opening criteria" msgstr "Badanie" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 #, fuzzy msgid "Workspace" msgstr "Stacja robocza" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 #, fuzzy msgid "Enable/Disable" msgstr "Umożliw zdalną konfigurację PACS-a" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 #, fuzzy msgid "Top left corner annotations" msgstr "Ukryj adnotacje narożne" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 #, fuzzy msgid "Setup window" msgstr "Zamknij wszystkie okna" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 #, fuzzy msgid "Set default" msgstr "Ustaw domyślnie" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 #, fuzzy msgid "Open in main window" msgstr "Ustaw główne hasło" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 #, fuzzy msgid "Setup position..." msgstr "Poycja (I)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 msgid "Setup undocked window position" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 #, fuzzy msgid "Layout" msgstr "Układ 1x1" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 #, fuzzy msgid "Current layout" msgstr "Bieżący" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 #, fuzzy msgid "Columns" msgstr "Siatka (2 kolumny)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 #, fuzzy msgid "Series criteria" msgstr "Seria" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 #, fuzzy msgid "Select opening mode" msgstr "Tryb odbioru" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 #, fuzzy msgid "Tag" msgstr "Przeczytano zakładkę \"pacjent\" bez identyfikatorów" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 msgid "Save" msgstr "Zapisz" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 #, fuzzy msgid "Enable background queries" msgstr "Umożliw zdalną konfigurację PACS-a" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 #, fuzzy msgid "Smart retrieve" msgstr "Metoda odbioru" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 #, fuzzy msgid "Smart retrieve settings" msgstr "Ustawienia" #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "Wykryty brak aktywności" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.h:64 #, fuzzy msgid "Export DICOM" msgstr "Eksportuj do katalogu DICOM" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "Lekarz kierujący" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 msgid "Ginkgo CADx private tags" msgstr "Prywatne tagi Ginkgo CADx" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ..\../main/gui/history3/historypanel3.cpp:340 #: ..\../main/gui/history3/historytoolmenu.cpp:158 #, fuzzy msgid "Export" msgstr "Eksportuj zdjęcia" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ..\../main/gui/export/parametrosprincipales.cpp:157 msgid "Select the directory where the files will be stored" msgstr "Wybierz katalog, w którym pliki zostaną zapisane" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" "Wybrany katalog nie istnieje.\n" "Chcesz go utworzyć?" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "W wybranej ścieżce istnieje inny katalog DICOM" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #, fuzzy msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" "Wystąpił błąd przy czytaniu katalogu. Upewnij się czy masz uprawnienia " "zapisywania w nim." #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 #, fuzzy msgid "Select the DICOM Dir folder" msgstr "Wybierz plik DICOM" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 #, fuzzy msgid "DICOM Dir migration" msgstr "Katalog DICOM" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 #, fuzzy msgid "Migrate existing (recommended)" msgstr "Istniejący plik" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 #, fuzzy msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" "Wersja DICOM Ginkgo CADx jest stara, baza danych zostanie przeniesiona do " "nowej wersji, prosze nie zamykać Ginkgo CADx dopóki migracja nie zostanie " "zakończona." #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 #, fuzzy msgid "Continue..." msgstr "Kontynuuj" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 #, fuzzy msgid "Select other" msgstr "Inne" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 msgid "Browse..." msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:106 msgid "DICOM Export" msgstr "Eksport DICOM" #: ..\../main/gui/export/parametrosprincipales.cpp:110 msgid "Select the format and the images you want to export" msgstr "Wybierz do eksportu pliki i ich format " #: ..\../main/gui/export/parametrosprincipales.cpp:143 #, fuzzy msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "Pliki PEM (*.pem;*.key)|*.pem;*.key|Wszystkie pliki (*.*)|*.*" #: ..\../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:150 #, fuzzy msgid "Select file" msgstr "Wybierz plik DICOM" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "DICOM (native format)" msgstr "DICOM (format oryginalny)" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "Image (jpg, bmp, png)" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:38 #, fuzzy msgid "Export all files of opened tab" msgstr "Eksportowanie pliku %d z %d" #: ..\../main/gui/export/pasosexportacionbase.cpp:55 msgid "JPEG" msgstr "JPEG" #: ..\../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "Jakość" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:40 msgid "Image Export Wizard" msgstr "Asystent eksportu zdjęć" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ..\../main/gui/license/aboutdialogbase.cpp:67 #: ..\../main/gui/license/aboutdialogbase.cpp:151 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:54 msgid "&Accept" msgstr "&Zaakceptuj" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "&Dalej >" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:32 #, fuzzy msgid "Open link" msgstr "Otwórz" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:402 #, fuzzy msgid "File link:" msgstr "Plik" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ..\../main/gui/import/pasosimportacionbase.cpp:270 msgid "Study" msgstr "Badanie" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:216 msgid "User name" msgstr "Nazwa uzytkownika" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:397 #, fuzzy msgid "Ginkgo Cloud link" msgstr "Ginkgo CADx" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:437 msgid "Copy to clipboard" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 #, fuzzy msgid "New Ginkgo Cloud study" msgstr "Ściągnij badanie" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 #, fuzzy msgid "To download the study, paste this url " msgstr "Ściągnij badanie" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 #, fuzzy msgid "Creator" msgstr "Data utworzenia" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 #, fuzzy msgid "Last Modificator" msgstr "Ostatnie 7 dni" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 #, fuzzy msgid "Show link..." msgstr "Pokaż przy starcie" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "" #: ..\../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 msgid "Invalid link" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:117 #: ..\../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "Otwórz serię" #: ..\../main/gui/history3/historypanel3.cpp:119 #: ..\../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "Otwórz serię za pomocą ..." #: ..\../main/gui/history3/historypanel3.cpp:226 #: ..\../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "Wiek" #: ..\../main/gui/history3/historypanel3.cpp:228 #, fuzzy msgid "Date acquired" msgstr "Data badania" #: ..\../main/gui/history3/historypanel3.cpp:230 #, fuzzy msgid "Date added" msgstr "Data badania" #: ..\../main/gui/history3/historypanel3.cpp:308 #: ..\../main/gui/history3/historytoolmenu.cpp:82 #: ..\../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "Pobierz" #: ..\../main/gui/history3/historypanel3.cpp:316 #: ..\../main/tools/dicomizetool.cpp:28 #, fuzzy msgid "Dicomize" msgstr "Automatycznie zamknij Ginkgo CADx po dikomizacji" #: ..\../main/gui/history3/historypanel3.cpp:363 msgid "All patients" msgstr "Wszyscy pacjenci" #: ..\../main/gui/history3/historypanel3.cpp:481 msgid "Results" msgstr "Wyniki" #: ..\../main/gui/history3/historypanel3.cpp:481 #, fuzzy, c-format msgid " (%d images)" msgstr "Eksportuj zdjęcia" #: ..\../main/gui/history3/historypanel3.cpp:634 #, fuzzy msgid "Open study with .." msgstr "Otwórz" #: ..\../main/gui/history3/historypanel3.cpp:663 #: ..\../main/gui/history3/historypanel3base.cpp:482 msgid "Synchronize" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:677 msgid "&Delete from history" msgstr "&Usuń z Historii" #: ..\../main/gui/history3/historypanel3.cpp:686 #, fuzzy msgid "&Clear history" msgstr "Wyczyść" #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "" "Otwarta została maksymalna możliwa liczba zakładek. Zamknij kilka i spróbuj " "ponownie." #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid "Unable to open modality " msgstr "Nie można otworzyć rodzaju badania" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr "ze składnią transferu" #: ..\../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "Niepowodzenie w opróżnieniu historii, trzeba zamknąć otwarte badania" #: ..\../main/gui/history3/historypanel3.cpp:1086 msgid "all files" msgstr "wszystkie pliki" #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #, fuzzy msgid "Select at least one series" msgstr "Należy wybrać przynajmniej 1 zdjęcie" #: ..\../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "Nie można usunąć otwartej serii" #: ..\../main/gui/history3/historypanel3.cpp:1128 #, fuzzy msgid "those series" msgstr "Seria" #: ..\../main/gui/history3/historypanel3.cpp:1128 #, fuzzy msgid "this series" msgstr "Seria" #: ..\../main/gui/history3/historypanel3base.cpp:57 #, fuzzy msgid "Advanced search" msgstr "Zaawansowane" #: ..\../main/gui/history3/historypanel3base.cpp:73 #, fuzzy msgid "Acquisition date" msgstr "Data badania" #: ..\../main/gui/history3/historypanel3base.cpp:302 #: ..\../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "Potwierdź usunięcie" #: ..\../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "Czy na pewno chcesz usunąć" #: ..\../main/gui/history3/historypanel3base.cpp:336 #: ..\../main/gui/history3/historytoolmenu.cpp:102 #: ..\../main/gui/history3/historytoolmenu.cpp:200 #: ..\../main/gui/history3/historytoolmenu.cpp:229 msgid "Remove" msgstr "Usuń" #: ..\../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "Wybierz widok, w którym chcesz otwierać pliki" #: ..\../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "Zawsze używaj tego widoku do otwierania tego rodzaju plików" #: ..\../main/gui/history3/historypanel3base.cpp:454 #: ..\../main/gui/history3/historypanel3base.h:187 #, fuzzy msgid "Synchronize files" msgstr "Ściąganie plików ..." #: ..\../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" #: ..\../main/gui/history3/historytablemodel.cpp:406 #: ..\../main/gui/history3/historytablemodel.cpp:418 #: ..\../main/gui/history3/historytablemodel.cpp:473 #: ..\../main/gui/history3/historytablemodel.cpp:485 #: ..\../main/gui/open/dicomdirtablemodel.cpp:105 #, fuzzy msgid "00/00/0000 00:00:00" msgstr "%m/%d/%Y 00:00:00" #: ..\../main/gui/history3/historytoolmenu.cpp:138 #, fuzzy msgid "Close history" msgstr "&Wyszyść Historię" #: ..\../main/gui/history3/historytoolmenu.cpp:139 #: ..\../main/gui/startup/startupform.cpp:53 #, fuzzy msgid "History" msgstr "Zapisywanie w Historii ..." #: ..\../main/gui/history3/historytoolmenu.cpp:201 #: ..\../main/gui/history3/historytoolmenu.cpp:230 #, fuzzy msgid "Clear history" msgstr "Wyczyść" #: ..\../main/gui/history3/historytoolmenu.cpp:232 #, fuzzy msgid "Select all" msgstr "Wszyscy" #: ..\../main/gui/history3/historytoolmenu.cpp:233 #, fuzzy msgid "Deselect all" msgstr "Wszyscy" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 msgid "Destination" msgstr "Przeznaczenie" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 msgid "Status" msgstr "Status" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 msgid "Error message" msgstr "Komunikat o błędzie" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 msgid "Show Message" msgstr "Pokaż komunikat" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 msgid "Edit Message" msgstr "Edytuj komunikat" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 msgid "Delete message" msgstr "Usuń komunikat" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 msgid "Error editing message" msgstr "Błąd edycji komunikatu" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 #, fuzzy msgid "Error purguing messages" msgstr "Błąd usuwania komunikatu" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Stop" msgstr "Zatrzymaj" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Sent" msgstr "Wysłane" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "W toku" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/progress/statusbarprogreso.cpp:281 msgid "Warning" msgstr "Ostrzeżenie" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 msgid "Error getting message" msgstr "Błąd pobierania komunikatu" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 msgid "Running" msgstr "Działa" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "Zatrzymany" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 msgid "Usually due to an error in sending a message" msgstr "Zwykle z powodu błędu w wysyłaniu komunikatu" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Start" msgstr "Zacznij" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "Czy chcesz usunąć te komunikaty?" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 msgid "Error deleting messages" msgstr "Błąd usuwania komunikatu" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 msgid "Remove sent messages" msgstr "Usuń wysłane komunikaty" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 msgid "Exit" msgstr "Wyjście" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 msgid "Messages" msgstr "Komunikaty" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 msgid "Refresh" msgstr "Odśwież" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1394 msgid "View" msgstr "Widok" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 msgid "Send task status:" msgstr "Status zadania wysyłania:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "Uaktywniony" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 msgid "Message" msgstr "Komunikat" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "Data:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 msgid "Destination:" msgstr "Przeznaczenie:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 msgid "Status:" msgstr "Status:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 msgid "Message content:" msgstr "Zawartość komunikatu: " #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:142 msgid "OK" msgstr "OK" #: ..\../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "Przegląd plików DICOM" #: ..\../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "" #: ..\../main/gui/import/generaldata.cpp:210 msgid "" "\n" "* The patient ID is required." msgstr "" "\n" "* Wymagane jest id pacjenta" #: ..\../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" "\n" "* Konkatenacja imienia i nazwiska pacjenta nie powinna być większa niż 61 " "znaków." #: ..\../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" "\n" "* Format wzrostu w centymetrach nie jest poprawny. " #: ..\../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" "\n" "* Pacjent urodził się po dacie badania" #: ..\../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" "\n" "* Format wagi jest niepoprawny. Waga powinna zawierać się w przedziale od 0 " "do 400 Kg." #: ..\../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "Podczas walidacji pół wystąpiły następujące błędy" #: ..\../main/gui/import/generaldata.cpp:231 msgid "Error validating fields" msgstr "Błąd walidacji pól" #: ..\../main/gui/import/pasoperfilimportacion.cpp:148 msgid "Selecting Import Profile" msgstr "Wybieranie profilu importu" #: ..\../main/gui/import/pasoperfilimportacion.cpp:152 msgid "You must select the profile you want to use import" msgstr "Należy wybrać profil, którego chcemy użyć w imporcie" #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 msgid "You must select the import profile" msgstr "Należy wybrać profil importu" #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "Niespodziewany błąd, ponownie wybierz moduł" #: ..\../main/gui/import/pasosimportacionbase.cpp:21 msgid "Selected images" msgstr "Wybrane zdjęcia" #: ..\../main/gui/import/pasosimportacionbase.cpp:56 msgid "Preview" msgstr "Podgląd" #: ..\../main/gui/import/pasosimportacionbase.cpp:62 msgid "Remove all" msgstr "Usuń wszystko" #: ..\../main/gui/import/pasosimportacionbase.cpp:113 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:65 msgid "Demographic data" msgstr "Dane demograficzne" #: ..\../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "Identifikator *" #: ..\../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "(Id numer historii choroby)" #: ..\../main/gui/import/pasosimportacionbase.cpp:159 #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "Birth date" msgstr "Data urodzin" #: ..\../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "Imię" #: ..\../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "Płeć" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "Mężczyzna" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "Kobieta" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "Inni" #: ..\../main/gui/import/pasosimportacionbase.cpp:217 msgid "Study Details" msgstr "Szczegóły badania" #: ..\../main/gui/import/pasosimportacionbase.cpp:234 #: ..\../wx/gnkinforme/gnkinformebase.cpp:122 msgid "Weight" msgstr "Waga" #: ..\../main/gui/import/pasosimportacionbase.cpp:245 msgid "Kg" msgstr "Kg" #: ..\../main/gui/import/pasosimportacionbase.cpp:252 #: ..\../wx/gnkinforme/gnkinformebase.cpp:119 msgid "Height" msgstr "Wzrost" #: ..\../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "cm" #: ..\../main/gui/import/pasosimportacionbase.cpp:291 #: ..\../main/gui/import/pasosimportacionbase.cpp:333 msgid "Time" msgstr "Czas" #: ..\../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "Ścieżka lokalizacji nie istnieje" #: ..\../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" "Zdjęcia (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Zdjęcia (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Zdjęcia " "(*.bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Zdjęcia (*.tif;*.tiff)|*.tif;*." "tiff|Dokumenty PDF (*.pdf)|*.pdf|Wszystkie pliki(*.*)|*.*" #: ..\../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" "Zdjęcia (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Zdjęcia (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Zdjęcia " "(*.bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Zdjęcia (*.tif;*.tiff)|*.tif;*." "tiff|Dokumenty PDF (*.pdf)|*.pdf|Wszystkie pliki(*.*)|*.*" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files..." msgstr "Wybierz pliki ..." #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "Wybierz plik z systemu plików" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 #, fuzzy msgid "Paste from clipboard" msgstr "Pobierz zdjęcia z PACS-a" #: ..\../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "Z powrotem" #: ..\../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "Czy na pewno chcesz usunąć ten plik z dysku?" #: ..\../main/gui/import/selectimagesimportation.cpp:330 msgid "Delete selected items" msgstr "Usuń wybrane pozycje" #: ..\../main/gui/import/selectimagesimportation.cpp:342 msgid "You must select an image" msgstr "Należy wybrać zdjęcie" #: ..\../main/gui/import/selectimagesimportation.cpp:346 msgid "Generating preview..." msgstr "Tworzenie podglądu ..." #: ..\../main/gui/import/selectimagesimportation.cpp:500 msgid "Select images" msgstr "Wybierz zdjęcia" #: ..\../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "Tworzenie miniaturek ..." #: ..\../main/gui/import/selectimagesimportation.cpp:715 msgid "Image selection" msgstr "Wybór zdjęcia" #: ..\../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "Należy wybrać zdjęcia, które chcemy zaimportować" #: ..\../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "Należy wybrać przynajmniej 1 zdjęcie" #: ..\../main/gui/import/selectimagesimportation.cpp:760 msgid "The file" msgstr "Plik" #: ..\../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr "nie istnieje" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:52 msgid "Image Import Wizard" msgstr "Asystent importu zdjęć" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "Żądany moduł nie obsługuje importu" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "Nie ma żadnego zarejestrowanego modułu z obsługą importu" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "Nie ma modułów obsługujących import" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "Żądany moduł nie jest zarejestrowany" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "Żądany moduł nie jest zarejestrowany" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:167 msgid "free of" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:181 #, fuzzy msgid "in dicomization dir." msgstr "Dikomizacja XML" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "Czy na pewno chcesz anulować proces importu?" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, c-format msgid "Step %d of %d: " msgstr "Etap %d z %d: " #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "&Zakończ" #: ..\../main/gui/license/aboutdialog.cpp:25 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 #, fuzzy msgid "About" msgstr "Przypomnij o najnowszych aktualizacjach Ginkgo CADx" #: ..\../main/gui/license/aboutdialogbase.cpp:22 msgid "Ginkgo CADx" msgstr "Ginkgo CADx" #: ..\../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "Współtwórcy" #: ..\../main/gui/license/aboutdialogbase.cpp:55 msgid "Licenses" msgstr "Licencje" #: ..\../main/gui/license/aboutdialogbase.cpp:58 msgid "UPDATE_INFO" msgstr "Info o aktualizacji" #: ..\../main/gui/license/aboutdialogbase.cpp:108 #: ..\../main/gui/license/aboutdialogbase.h:88 msgid "Open Source Licenses" msgstr "Otwórz licencje źródłowe" #: ..\../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "Kair" #: ..\../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:119 msgid "FamFamFam Icons" msgstr "Ikony FamFamFam" #: ..\../main/gui/license/aboutdialogbase.cpp:120 msgid "Fugue Icons" msgstr "Ikony Fugue" #: ..\../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "LibJpeg" #: ..\../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "LibPng" #: ..\../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "OtwórzSSL" #: ..\../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:126 msgid "WxWidgets" msgstr "GxGadżety" #: ..\../main/gui/license/aboutdialogbase.cpp:127 msgid "Zlib" msgstr "Zlib" #: ..\../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "SQL Lite" #: ..\../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:130 #, fuzzy msgid "Dark Glass Icons" msgstr "Ikony FamFamFam" #: ..\../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:23 #: ..\../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "Umowa licencyjna" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" "Jeśli akceptujesz warunki umowy, kliknij \"Akceptuję licencję\", aby " "kontynuować. Musisz zaakceptować licencję, by korzystać z Ginkgo CADx." #: ..\../main/gui/license/acceptlicensedialogbase.cpp:53 msgid "Check for updates automatically" msgstr "Automatycznie sprawdzaj istnienie aktualizacji" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:66 msgid "I Accept the license" msgstr "Akceptuję licencję" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "Nie akceptuję licencji" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Save logs" msgstr "Zapisz logi" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "Plik logu (*.log) | *.log | Plik tekstowy (*.txt) | *.txt" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 msgid "File couldn't be stored " msgstr "Plik nie może zostać zapisany" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 msgid "Could not write to file" msgstr "Nie można zapisać do pliku" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 msgid "Save log..." msgstr "Zapisz log ..." #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 msgid "Clear log" msgstr "Wyczyść log" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 msgid "Log" msgstr "Log" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "Wyczyść" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "" #: ..\../main/gui/login/dialogologin.cpp:50 msgid "The username or password is incorrect" msgstr "Nazwa użytkownika lub hasło są nieprawidłowe" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:250 msgid "Tasks" msgstr "Zadania" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1139 msgid "Included in the history ..." msgstr "Zawarty w historii" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "Brak adresu URL do sprawdzania aktualizacji w bieżącej konfiguracji." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "Check update error" msgstr "Błąd przy sprawdzaniu istnienia aktualizacji" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 msgid "Malformed XML" msgstr "Zły format XML" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1192 #, fuzzy msgid "Error in interpreting the parameters of the command line. (" msgstr "" "Błąd interpretacji parametrów linii komend. Plik lub katalog nie istnieje" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #, fuzzy msgid "Error parsing integration XML:\n" msgstr "Błąd wewnętrzny parsowania XML" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 msgid "PACS error:\n" msgstr "PACS błąd:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #, fuzzy msgid "Error executing WorkFlow\n" msgstr "Błąd przy tworzeniu bazy danych:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #, fuzzy msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" "Nie można wczytać do PACS-a:\n" "błąd wewnętrzny" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 msgid "Close current view" msgstr "Zamknij bieżący widok" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all" msgstr "Zamknij wszystko" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all views" msgstr "Zamknij wszystkie widoki" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "&Wyjście" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "Exit application" msgstr "Zakończ aplikację" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "Pełny ekran" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Show full screen" msgstr "Pokaż pełny ekran" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1302 msgid "Tab grouping" msgstr "Grupowanie zakładek" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1329 #, fuzzy msgid "Ginkgo CADx manual ..." msgstr "Ginkgo CADx" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1330 #, fuzzy msgid "Open test card" msgstr "Połączenie testowe" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "Sprawdź istnienie aktualizacji" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for newest versions" msgstr "Sprawdź istnienie najnowszych wersji" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1332 msgid "Need support ..." msgstr "Potrzeba wsparcia ..." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 #, fuzzy msgid "About " msgstr "Przypomnij o najnowszych aktualizacjach Ginkgo CADx" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 msgid "HL7 monitor" msgstr "Monitor HL7" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #, fuzzy msgid "HL7 message control" msgstr "Wyślij komunikat HL7 podczas importu" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 msgid "Log monitor" msgstr "Monitor logów" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 msgid "Log monitored" msgstr "Monitorowany log" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1390 msgid "&File" msgstr "&Plik" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "&Edytuj" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "&Pomoc" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "Mozaika" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "Czy chcesz zachować zmiany w badaniu?" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1664 msgid "Unsaved data" msgstr "Niezapisane dane" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "" "Wystąpiły błędy podczas zapisu serii.\n" "Czy chcesz kontynuować zamykanie?" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "Error saving" msgstr "Błąd przy zapisie" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "Full Screen" msgstr "Pełny ekran" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "View Full Screen" msgstr "Podgląd całego ekranu" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1708 msgid "Tab Regroup" msgstr "Przegrupowanie zakładek" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "&Zamknij" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "&Close all" msgstr "&Zamknij wszystko" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "Close all windows" msgstr "Zamknij wszystkie okna" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1728 msgid "Tabbed organization" msgstr "Układ zakładek" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "Obecnie nie ma najnowszych wersji Ginkgo CADx." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "Ginkgo CADx updated" msgstr "Ginkgo CADx uaktualniony" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1782 msgid "New version available (" msgstr "Dostępna nowa wersja (" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "Błąd wewnętrzny podczas procesu uwierzytelniania" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:29 msgid "New Update" msgstr "Nowy plik aktualizacji" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:34 msgid "New version available" msgstr "Dostępna nowa wersja" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "Nie przypominaj ponownie o tej aktualizacji" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:43 msgid "X" msgstr "X" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:45 #, fuzzy msgid "Close this notification" msgstr "Zamknij" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:104 #, fuzzy msgid "The following commands will be aborted if you close the application" msgstr "Jeśli zamkniesz aplikację, następujące komendy zostaną przerwane:" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:131 msgid "Close Ginkgo CADx" msgstr "Zamknij Ginkgo CADx" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "Zamyka aplikację i przerywa komendy w toku" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "Nie zamykaj aplikacji i kontynuuj wykonywanie komend" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:138 msgid "User login" msgstr "Login użytkownika" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:202 msgid "System authentication" msgstr "Uwierzytelnianie systemu" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:260 msgid "Login" msgstr "Login" #: ..\../main/gui/open/abrir.cpp:80 ..\../main/gui/open/abrir.cpp:82 msgid "Open..." msgstr "Otwórz..." #: ..\../main/gui/open/opendialogs.cpp:58 #, fuzzy msgid "There was an error reading DICOMDIR file" msgstr "Wybierz plik DICOM" #: ..\../main/gui/open/opendialogs.cpp:62 msgid "Select a valid DICOMDIR file" msgstr "Wybierz plik DICOM" #: ..\../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "Wybierz pliki DICOM, które chcesz pobrać" #: ..\../main/gui/open/opendialogs.cpp:180 #: ..\../main/gui/open/opendialogsbase.cpp:170 #: ..\../main/gui/open/opendialogsbase.h:112 msgid "Copy or link" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:22 #: ..\../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "Pobierz z katalogu DICOM" #: ..\../main/gui/open/opendialogsbase.cpp:94 #: ..\../main/gui/open/opendialogsbase.h:85 msgid "Select drive" msgstr "Wybierz napęd" #: ..\../main/gui/open/opendialogsbase.cpp:175 #, fuzzy msgid "Do you want to copy or link files?" msgstr "Wybierz widok, w którym chcesz otwierać pliki" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ..\../main/gui/selectpacsserver/selectpacsserver.cpp:30 #, fuzzy msgid "There aren't any PACS configured" msgstr "Nie ma żadnego skonfigurowanego PACS-a" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:69 #, fuzzy msgid "0000/00/00 00:00:00" msgstr "%m/%d/%Y 00:00:00" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.h:57 #, fuzzy msgid "Upload study" msgstr "Wczytaj zdjęcia do serwera PACS-a" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 #, fuzzy msgid "Select PACS server" msgstr "Wybierz serwer PACS-a" #: ..\../main/gui/paneltags/paneltags.cpp:119 msgid "Metadata" msgstr "Metadane" #: ..\../main/gui/paneltags/paneltags.cpp:120 msgid "Identification information" msgstr "Informacja identyfikacyjna" #: ..\../main/gui/paneltags/paneltags.cpp:121 msgid "Patient information" msgstr "Informacja o pacjencie" #: ..\../main/gui/paneltags/paneltags.cpp:122 msgid "Acquisition information" msgstr "Informacja o pobieraniu" #: ..\../main/gui/paneltags/paneltags.cpp:123 msgid "Relationship information" msgstr "Informacja o powiązaniach" #: ..\../main/gui/paneltags/paneltags.cpp:124 msgid "Image presentation information" msgstr "Informacja o sposobie prezentacji zdjęcia" #: ..\../main/gui/paneltags/paneltags.cpp:125 ..\../widgets/wtextbox.cpp:525 msgid "Text" msgstr "Tekst" #: ..\../main/gui/paneltags/paneltags.cpp:126 msgid "Other" msgstr "Inne" #: ..\../main/gui/paneltags/paneltags.cpp:137 #: ..\../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "Dane" #: ..\../main/gui/previewpanel/previewpanel.cpp:47 msgid "Hide" msgstr "Ukryj" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:187 #: ..\../main/gui/previewpanel/previewpanelbase.cpp:207 #, fuzzy msgid "Previews" msgstr "Podgląd" #: ..\../main/gui/progress/progresobase.cpp:23 msgid "There is no running tasks" msgstr "Nie ma zadań w toku" #: ..\../main/gui/progress/statusbarprogreso.cpp:165 msgid "0 running tasks." msgstr "0 zadań w toku." #: ..\../main/gui/progress/statusbarprogreso.cpp:192 #, c-format msgid "There are %d pending tasks" msgstr "Jest %d zadań w toku" #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.h:55 #, fuzzy msgid "Select PACS" msgstr "Wybierz serwer PACS-a" #: ..\../main/gui/startup/startupformbase.cpp:29 #, fuzzy msgid "http://ginkgo-cadx.com" msgstr "Umożliw http proxy" #: ..\../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:47 #, fuzzy msgid "Ginkgo CADx Pro" msgstr "Ginkgo CADx" #: ..\../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "Projekt prowadzony i rozwijany przez" #: ..\../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "MetaEmotion Healthcare" #: ..\../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "Strona startowa" #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete Widget" msgstr "Usuń gadżet" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Properties ..." msgstr "Właściwości ..." #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Widget Properties" msgstr "Właściwości gadżetu" #: ..\../main/tools/addfiletohistorytool.cpp:114 msgid "Open file" msgstr "Otwórz plik" #: ..\../main/tools/addfiletohistorytool.cpp:115 #: ..\../main/tools/openfoldertool.cpp:27 msgid "Open folder" msgstr "Otwórz katalog" #: ..\../main/tools/addfiletohistorytool.cpp:116 #: ..\../main/tools/openremovabletool.cpp:28 msgid "Open removable unit" msgstr "Otwórz nośnik wymienny" #: ..\../main/tools/addfiletohistorytool.cpp:117 #: ..\../main/tools/openginkgocloudlinktool.cpp:27 msgid "Open Ginkgo Cloud link" msgstr "" #: ..\../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "Kąt standardowy (3 punkty)" #: ..\../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "Kąt Cobb-a (2 proste linie)" #: ..\../main/tools/colormaptool.cpp:110 #, fuzzy msgid "Invert color map" msgstr "Kolor" #: ..\../main/tools/cornerannotationstool.cpp:44 msgid "Hide corner annotations" msgstr "Ukryj adnotacje narożne" #: ..\../main/tools/cornerannotationstool.cpp:46 msgid "Show corner annotations" msgstr "Pokaż adnotacje narożne" #: ..\../main/tools/detachwindowtool.cpp:42 #, fuzzy msgid "Attach View" msgstr "Widok" #: ..\../main/tools/detachwindowtool.cpp:44 #, fuzzy msgid "Detach view" msgstr "Widok" #: ..\../main/tools/dicomizetool.cpp:28 #, fuzzy msgid "Dicomize files" msgstr "Zdikomizowane pliki" #: ..\../main/tools/exportdicomdirtool.cpp:32 msgid "Export to DICOM Dir" msgstr "Eksportuj do katalogu DICOM" #: ..\../main/tools/markertool.cpp:171 msgid "Point" msgstr "Punkt" #: ..\../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "Strzałka" #: ..\../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "Elipsa" #: ..\../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "Trapezoid" #: ..\../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "Wielokąt" #: ..\../main/tools/markertool.cpp:176 msgid "Free form" msgstr "" #: ..\../main/tools/metricgridtool.cpp:57 msgid "Grid" msgstr "Siatka" #: ..\../main/tools/metricgridtool.cpp:67 msgid "Grid Scale" msgstr "Skala siatki" #: ..\../main/tools/metricgridtool.cpp:74 msgid "Scale X" msgstr "Skala X" #: ..\../main/tools/metricgridtool.cpp:78 msgid "X axis scale" msgstr "Skala osi X" #: ..\../main/tools/metricgridtool.cpp:87 msgid "Scale Y" msgstr "Skala Y" #: ..\../main/tools/metricgridtool.cpp:91 msgid "Y axis scale" msgstr "Skala osi Y" #: ..\../main/tools/metricgridtool.cpp:206 msgid "Show grid" msgstr "Pokaż siatkę" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "Skonfiguruj siatkę..." #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "Skonfiguruj siatkę" #: ..\../main/tools/metricgridtool.cpp:250 msgid "Hide Grid" msgstr "Ukryj siatką" #: ..\../main/tools/metricgridtool.cpp:252 msgid "Show Grid" msgstr "Pokaż siatkę" #: ..\../main/tools/openfiletool.cpp:28 msgid "Open File" msgstr "Otwórz plik" #: ..\../main/tools/pacsuploadtool.cpp:54 #, fuzzy msgid "Send to PACS..." msgstr "Wyślij do PACS-a" #: ..\../main/tools/pixelsbluringtool.cpp:59 #, fuzzy msgid "Unset pixels blurring" msgstr "Brak ustawienia rozmycia pikseli" #: ..\../main/tools/pixelsbluringtool.cpp:61 #, fuzzy msgid "Set pixels blurring" msgstr "Ustawnione przez użytkownika" #: ..\../main/tools/queryretrievehistorytool.cpp:25 #, fuzzy msgid "PACS Q/R" msgstr "PACS" #: ..\../main/tools/queryretrievetool.cpp:94 #: ..\../main/tools/searchginkgocloudhistorytool.cpp:28 #, fuzzy msgid "Search Ginkgo Cloud" msgstr "Szukaj" #: ..\../main/tools/rotateandfliptool.cpp:151 #, fuzzy msgid "Undo rotate and flip" msgstr "Cofnij" #: ..\../main/tools/rotateandfliptool.cpp:153 #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:156 #, fuzzy msgid "Flip horizontal" msgstr "Ułóż obrazki w poziomie" #: ..\../main/tools/rotateandfliptool.cpp:157 #, fuzzy msgid "Flip vertical" msgstr "Ułóż obrazki w pionie" #: ..\../main/tools/sendpacstool.cpp:34 #, fuzzy msgid "Send to PACS" msgstr "Wyślij do PACS-a" #: ..\../main/tools/sendpacstool.cpp:70 #, fuzzy msgid "Sending to PACS..." msgstr "PACS" #: ..\../main/tools/showtagstool.cpp:42 msgid "Hide DICOM inspector" msgstr "Ukryj inspektora DICOM" #: ..\../main/tools/showtagstool.cpp:44 msgid "Show DICOM inspector" msgstr "Pokaż inspektora DICOM" #: ..\../main/tools/simpleprinttool.cpp:119 #, fuzzy msgid "Image printing" msgstr "Załącz zdjęcie" #: ..\../main/tools/simpleprinttool.cpp:224 #, fuzzy msgid "Page setup" msgstr "Strona startowa" #: ..\../main/tools/simpleprinttool.cpp:225 #, fuzzy msgid "Print preview" msgstr "Drukuj" #: ..\../main/tools/simpleprinttool.cpp:272 #, fuzzy msgid "Print image" msgstr "Drukuj" #: ..\../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "" #: ..\../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "" #: ..\../main/tools/undotool.cpp:110 msgid "Redo" msgstr "Ponów" #: ..\../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "" #: ..\../main/tools/videotool.cpp:153 #, fuzzy msgid "Enable loop" msgstr "Umożliw zdalną konfigurację PACS-a" #: ..\../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:267 #, fuzzy msgid "Add column" msgstr "Dodaj" #: ..\../main/tools/windowlayouttool.cpp:268 #, fuzzy msgid "Add row" msgstr "Dodaj" #: ..\../main/tools/windowlayouttool.cpp:270 #, fuzzy msgid "Remove column" msgstr "Usuń" #: ..\../main/tools/windowlayouttool.cpp:271 #, fuzzy msgid "Remove row" msgstr "Usuń" #: ..\../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "Układ 1x1" #: ..\../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "Układ 1x2" #: ..\../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "Układ 2x1" #: ..\../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "Układ 2x2" #: ..\../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "Układ 3x3" #: ..\../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "Układ 4x4 " #: ..\../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:82 #, fuzzy msgid "The tool is already registered" msgstr "Żądany moduł nie jest zarejestrowany" #: ..\../main/toolsystem/toolsregistry.cpp:187 #, fuzzy msgid "The module " msgstr "Nieznane id modułu (" #: ..\../resources/ginkgoresourcesmanager.cpp:49 #, fuzzy msgid "Unable to load PNG bitmap resource" msgstr "Nie można załadować rozszerzenia:" #: ..\../resources/ginkgoresourcesmanager.cpp:56 #, fuzzy msgid "Unable to load PNG image resource" msgstr "Nie można załadować rozszerzenia:" #: ..\../resources/ginkgoresourcesmanager.cpp:63 #, fuzzy msgid "Unable to load GIF animation resource" msgstr "Nie można załadować rozszerzenia:" #: ..\../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "Wartość kalibracyjna musi być liczbą dziesiętną" #: ..\../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "Wartość kalibracyjna jest za niska" #: ..\../widgets/gui/calibracion.cpp:219 msgid "Enter the calibration value" msgstr "Wprowadź wartość kalibracyjną" #: ..\../widgets/gui/calibracion.cpp:225 msgid "The calibration value is too low" msgstr "Wartość kalibracyjna jest za niska" #: ..\../widgets/gui/calibracion.cpp:229 msgid "The calibration value is too high" msgstr "Wartość kalibracyjna jest za wysoka" #: ..\../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "Kalibracja w toku ..." #: ..\../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "Miara rzeczywista" #: ..\../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "Odległość" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "Mikrony/ów" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "Milimetry/ów" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "Centymetry/ów" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "Metry/ów" #: ..\../widgets/gui/selecciontextobase.cpp:26 msgid "Note" msgstr "Notatka" #: ..\../widgets/wangulo.cpp:1101 ..\../widgets/wangulo.cpp:1103 msgid "Type" msgstr "Rodzaj" #: ..\../widgets/wangulo.cpp:1101 msgid "Normal" msgstr "Normalny" #: ..\../widgets/wangulo.cpp:1103 msgid "Cobb" msgstr "Cobb" #: ..\../widgets/welipse.cpp:721 ..\../widgets/wfreeform.cpp:470 #: ..\../widgets/wpolygon.cpp:574 #, fuzzy msgid "Center (I)" msgstr "Poycja (I)" #: ..\../widgets/welipse.cpp:727 ..\../widgets/wfreeform.cpp:476 #: ..\../widgets/wpolygon.cpp:580 #, fuzzy msgid "Center (M)" msgstr "Poycja (M)" #: ..\../widgets/welipse.cpp:762 ..\../widgets/welipse.cpp:766 msgid "Greater Radius" msgstr "" #: ..\../widgets/welipse.cpp:763 ..\../widgets/welipse.cpp:767 msgid "Lower Radius" msgstr "" #: ..\../widgets/wfreeform.cpp:482 ..\../widgets/wpolygon.cpp:586 #, fuzzy msgid "Number of Vertex" msgstr "Numer dostępu" #: ..\../widgets/wpunto.cpp:353 msgid "Position (I)" msgstr "Poycja (I)" #: ..\../widgets/wpunto.cpp:358 msgid "Position (M)" msgstr "Poycja (M)" #: ..\../widgets/wrule.cpp:558 msgid "Image Calibration" msgstr "Kalibracja zdjęcia" #: ..\../widgets/wrule.cpp:663 msgid "Length" msgstr "Długość" #: ..\../widgets/wrule.cpp:668 msgid "Points (I)" msgstr "Punkty (I)" #: ..\../widgets/wrule.cpp:675 msgid "Points (M)" msgstr "Punkty (M)" #: ..\../widgets/wtextbox.cpp:445 #, fuzzy msgid "Default text" msgstr "Tekst" #: ..\../wx/gnkinforme/gnkinformebase.cpp:41 msgid "Commit date" msgstr "Data zatwierdzenia" #: ..\../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "%m/%d/%Y" #: ..\../wx/gnkinforme/gnkinformebase.cpp:214 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "Zatwierdzony" #: ..\../wx/gnkinforme/gnkinformebase.cpp:219 msgid "Modified" msgstr "Zmodyfikowany" #: ..\../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "Niezatwierdzone" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "Nazwisko imię drugie_imię" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "644654645" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:130 msgid "Commit inform" msgstr "Informacja o zatwierdzeniu" #: ..\../wx/propiedades/wxpropiedades.cpp:30 msgid "Properties of " msgstr "Właściwości " #: ..\../wx/propiedades/wxpropiedadesbase.cpp:31 msgid "Widget's Name" msgstr "Nazwa gadżetu" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "< &Wstecz" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "&Anuluj" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3701 #, fuzzy msgid "Regular expression invalid: '" msgstr "\"action\" attribute invalid at \"gnkworkflow\" scope" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "REGEXP wywołane złą liczbą argumentów: %d zamiast 2." #: ..\../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.h:56 #, fuzzy msgid "Overwrite Paths" msgstr "Nadpisz" #: ..\../ginkgopro/ginkgo_pro_defines.h:21 #, fuzzy msgid "Professional DICOM CADx environment" msgstr "Środowisko Open Source programu DICOM CADx" #: ..\../main/controllers/dcmtk/dicomservers.h:39 #, fuzzy msgid "Server not found" msgstr "Id serwera nie odnalezione. Id =" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:99 #, fuzzy msgid "DICOM Query/Retrieve" msgstr "Metoda odbioru" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:123 #, fuzzy msgid "Not found" msgstr "Nie odnaleziono ustawienia" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:418 #, fuzzy msgid "Advanced Settings" msgstr "Ustawienia zaawansowane ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:570 #, fuzzy msgid "Edit profile" msgstr "Profil" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:665 #, fuzzy msgid "Add/Edit Location" msgstr "Lokalizacja" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:784 #, fuzzy msgid "Add window/level" msgstr "Poziom" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 #, fuzzy msgid "Add tag" msgstr "Dodaj" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 #, fuzzy msgid "Setup window position" msgstr "Poycja (I)" #: ..\../main/gui/countdownmessage/countdownmessagebase.h:61 #, fuzzy msgid "Closing" msgstr "" "Wystąpiły błędy podczas zapisu serii.\n" "Czy chcesz kontynuować zamykanie?" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 #, fuzzy msgid "DICOM Dir configuration" msgstr "Katalog DICOM" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:70 #, fuzzy msgid "Open Ginkgo Cloud" msgstr "Otwórz" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:123 #, fuzzy msgid "Ginkgo Cloud search" msgstr "Szukaj" #: ..\../main/gui/history3/confirmdeletedialog.h:24 #, fuzzy msgid " from History?" msgstr "&Usuń z Historii" #: ..\../main/gui/history3/historypanel3base.h:100 #, fuzzy msgid "Medical history" msgstr "(Id numer historii choroby)" #: ..\../main/gui/history3/historypanel3base.h:161 #, fuzzy msgid "Open With ..." msgstr "Otwórz" #: ..\../main/gui/history3/openwithdialog.h:72 #, fuzzy msgid "Select a View" msgstr "Widok" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 #, fuzzy msgid "Message detail" msgstr "Komunikat" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 #, fuzzy msgid "Log node" msgstr "Log" #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:87 #, fuzzy msgid "Closing Ginkgo CADx" msgstr "Ginkgo CADx" #: ..\../main/gui/paneltags/paneltagsbase.h:57 #, fuzzy msgid "DICOM Inspector" msgstr "Ukryj inspektora DICOM" #: ..\../main/license.h:31 msgid "Open Source DICOM CADx environment" msgstr "Środowisko Open Source programu DICOM CADx" #: ..\../widgets/gui/calibracionbase.h:65 #, fuzzy msgid "Calibration" msgstr "Kalibracja zdjęcia" #: ..\../wx/propiedades/wxpropiedadesbase.h:62 #, fuzzy msgid "Properties of ..." msgstr "Właściwości ..." #: ..\../wx/thumbnailctrl/thumbnailwidget.h:44 #, fuzzy msgid "Image Browser Dialog" msgstr "Załącz zdjęcie" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.h:60 #, fuzzy msgid "Test title" msgstr "Tytuł/nagłówek" #~ msgid "" #~ "Unexpected Error exporting, the view is not allowed to export to the " #~ "format selected" #~ msgstr "" #~ "Nieoczekiwany błąd eksportu. Widok nie ma pozwolenia na eksport do " #~ "wybranego formatu" #~ msgid "Failed to store the file, check permissions on the directory" #~ msgstr "Niepowodzenia w zapisie pliku. Sprawdź uprawnienia do katalogu." #~ msgid "The key files will not be exported" #~ msgstr "Kluczowe pliki nie zostaną wyeksportowane" #~ msgid "Current" #~ msgstr "Bieżący" #~ msgid "All" #~ msgstr "Wszyscy" #~ msgid "JPG" #~ msgstr "JPG" #~ msgid "BMP" #~ msgstr "BMP" #~ msgid "PNG" #~ msgstr "PNG" #~ msgid "Content" #~ msgstr "Zawartość" #~ msgid "Evaluation maps" #~ msgstr "Mapy ewaluacyjne" #~ msgid "Tile Horizontally" #~ msgstr "Ułóż obrazki w poziomie" #~ msgid "Tile Vertically" #~ msgstr "Ułóż obrazki w pionie" #~ msgid "Grid (two columns)" #~ msgstr "Siatka (2 kolumny)" #~ msgid "Grid (three columns)" #~ msgstr "Siatka (3 kolumny)" #~ msgid "Grid organization" #~ msgstr "Układ siatki" #~ msgid "Color" #~ msgstr "Kolor" #, fuzzy #~ msgid "Vertex (I)" #~ msgstr "Poycja (I)" #, fuzzy #~ msgid "Vertex (M)" #~ msgstr "Poycja (M)" #~ msgid "0" #~ msgstr "0" #~ msgid "Checking program updates..." #~ msgstr "Sprawdzanie istnienia aktualizacji programowych ..." #~ msgid "You have to specify at least uid series" #~ msgstr "Należy podać przynajmniej uid serii" #~ msgid "You have to specify uid series" #~ msgstr "Należy podać uid serii" #~ msgid "Untitled" #~ msgstr "Bez nagłówka" #~ msgid "UID" #~ msgstr "UID" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">" #~ msgstr ">" #~ msgid "<" #~ msgstr "<" #~ msgid "<<" #~ msgstr "<<" #~ msgid "Patient's Id" #~ msgstr "Id pacjenta" #~ msgid "You are not allowed to download this kind of modalities (" #~ msgstr "Nie masz pozwolenia na ściągnięcie tego rodzaju badań" #~ msgid "Searching..." #~ msgstr "Szukanie ..." #~ msgid "unknown column" #~ msgstr "NIeznana kolumna" #, fuzzy #~ msgid "Pending tasks" #~ msgstr "W toku" #, fuzzy #~ msgid "Restart pending tasks" #~ msgstr "Jest %d zadań w toku" #, fuzzy #~ msgid "Remove pending tasks" #~ msgstr "Jest %d zadań w toku" #, fuzzy #~ msgid "Advanced tasks management..." #~ msgstr "Ustawienia zaawansowane ..." #, fuzzy #~ msgid "Are you sure you want to delete task?" #~ msgstr "Czy na pewno chcesz usunąć" #, fuzzy #~ msgid "Delete tasks" #~ msgstr "Usuń komunikat" #, fuzzy #~ msgid "Pateint id" #~ msgstr "Rozmiar punktu" #~ msgid "Horizontal mosaic" #~ msgstr "Mozaika pozioma" #~ msgid "Vertical mosaic" #~ msgstr "Mozaika pionowa" #~ msgid "Include Annotations" #~ msgstr "Załącz adnotację" #~ msgid "Evaluation Maps" #~ msgstr "Mapy ewaluacyjne" #~ msgid "Zoom" #~ msgstr "Powiększ" #~ msgid "Options" #~ msgstr "Opcje" #~ msgid "Images per sheet" #~ msgstr "Zdjęć na stronie" #~ msgid "Print ..." #~ msgstr "Drukuj ..." #, fuzzy #~ msgid "Completed" #~ msgstr "Niezaimplementowany" #, fuzzy #~ msgid "Delete task" #~ msgstr "Usuń" #, fuzzy #~ msgid "Delete all" #~ msgstr "Wybierz zdjęcia" #, fuzzy #~ msgid "Are you sure you want to delete tasks?" #~ msgstr "Czy na pewno chcesz usunąć" #, fuzzy #~ msgid "ID" #~ msgstr "UID" #~ msgid "Point Size" #~ msgstr "Rozmiar punktu" #~ msgid "Underline" #~ msgstr "Podkreśl" #~ msgid "Make a selection:" #~ msgstr "Dokonaj wyboru:" #~ msgid "Alphabetic Mode" #~ msgstr "Tryb alfanumeryczny" #~ msgid "False" #~ msgstr "Fałsz" #~ msgid "True" #~ msgstr "Prawda" #~ msgid "Unspecified" #~ msgstr "Niepodany" #~ msgid "Error in resource: %s" #~ msgstr "Błąd w zasobie: %s" #~ msgid "Value must be %lld or higher" #~ msgstr "Wartość musi być %lld lub większa" #~ msgid "Value must be %llu or higher" #~ msgstr "Wartość musi być %llu lub większa" #~ msgid "Value must be %llu or less" #~ msgstr "Wartość musi być %llu lub mniejsza" #~ msgid "Value must be %f or higher" #~ msgstr "Wartość musi być %f lub większa" #~ msgid "Value must be %f or less" #~ msgstr "Wartość musi być %f lub mniejsza" #~ msgid "Not %s" #~ msgstr "Nie %s" #~ msgid "Choose a directory:" #~ msgstr "Wybierz katalog:" #~ msgid "Choose a file" #~ msgstr "Wybierz plik" #~ msgid "All files (*.*)|*.*" #~ msgstr "Wszystkie pliki (*.*)|*.*" #~ msgid "Update" #~ msgstr "Aktualizuj" #~ msgid "Up" #~ msgstr "W górę" #~ msgid "Down" #~ msgstr "W dół" #~ msgid "Page %i" #~ msgstr "Page %i" #~ msgid "Configure proxy" #~ msgstr "Skonfiguruj proxy" #~ msgid "Use system settings" #~ msgstr "Zastosuj ustawienia systemowe" #~ msgid "Manual configuration of proxy:" #~ msgstr "Ręczna konfiguracja proxy" #~ msgid "Host:" #~ msgstr "Host:" #~ msgid "Port:" #~ msgstr "Port:" #~ msgid "Password:" #~ msgstr "Hasło:" #, fuzzy #~ msgid "Authenticate" #~ msgstr "Uwierzytelnienie" #~ msgid "Show / Hide DICOM tags panel" #~ msgstr "Pokaż / Ukryj panel tagów DICOM-a" #~ msgid "Updates" #~ msgstr "Aktualizacje" #, fuzzy #~ msgid "Visualization" #~ msgstr "Kalibracja w toku ..." #, fuzzy #~ msgid "Show metadatada" #~ msgstr "Metadane" #~ msgid "http://ginkgo-cadx.com/en/services/" #~ msgstr "http://ginkgo-cadx.com/en/services/" #~ msgid "Reset window level and zoom" #~ msgstr "Reset poziomu okna i powiększenia" #, fuzzy #~ msgid "Dicomize images..." #~ msgstr "Zdikomizowane pliki" #, fuzzy #~ msgid "Dicomize images" #~ msgstr "Zdikomizowane pliki" #~ msgid "Double click to edit" #~ msgstr "Kliknij dwa razy, by edytować" #~ msgid "Uploading to the PACS ..." #~ msgstr "Wczytywanie do PACS-a" #~ msgid "" #~ "No results obtained. Maybe you have a wrong PACS server configuration" #~ msgstr "" #~ "Nie uzyskano żadnych rezultatów. Być może konfiguracja PACS-a jest błędna." #~ msgid "" #~ "No results obtained in PACS retrieve.\n" #~ "Maybe study doesn't exist or you have a wrong PACS server configuration." #~ msgstr "" #~ "Brak rezultatów odbioru z PACS-a.\n" #~ "Być może badanie nie istnieje lub konfiguracja serwera PACS jest zła." #~ msgid "" #~ "Studies are already in the download queue.\n" #~ "Do you want to repeat download?" #~ msgstr "" #~ "Badania znajdują się już w kolejce do ściągnięcia.\n" #~ "Czy chcesz je ściągnąć ponownie?" #~ msgid "" #~ "Series were already in the download queue.\n" #~ "Do you want to force download?" #~ msgstr "" #~ "Serie były już w kolejce ściągania.\n" #~ "Czy chcesz wymusić ponowne ściągnięcie?" #~ msgid "Downloads" #~ msgstr "Obiekty ściągnięte" #~ msgid "Study description" #~ msgstr "Opis badania" #~ msgid "Clean" #~ msgstr "Wyczyść" #~ msgid "Clean finished downloads" #~ msgstr "Wyczyść listę ściągniętych obiektów" #~ msgid "Starting..." #~ msgstr "Uruchamianie ..." #~ msgid "" #~ "Diagnostic files can't be opened, you have to open the diagnosed series" #~ msgstr "" #~ "Nie można otworzyć plików diagnostycznych, należy otworzyć diagnozowaną " #~ "serię" #~ msgid "Error: " #~ msgstr "Błąd:" #~ msgid "Error: No images were downloaded" #~ msgstr "Błąd: Nie ściągnięto żadnych zdjęć" #~ msgid "Finished" #~ msgstr "Zakończone" #~ msgid "Play" #~ msgstr "Odtwórz" #~ msgid "Retry" #~ msgstr "Spróbuj ponownie" #~ msgid "Successful connection test." #~ msgstr "Pomyślny test połączenia." #~ msgid "The service did not respond properly:" #~ msgstr "Usługa nie odpowiedziała właściwie:" #, fuzzy #~ msgid "The selected directory does must be empty" #~ msgstr "Nie można otworzyć wybranego katalogu" #, fuzzy #~ msgid "What do you want to do?" #~ msgstr "Wybierz napędz, który chcesz otworzyć" #~ msgid "Choose the import profile" #~ msgstr "Wybierz profil importu" #~ msgid "Import profile" #~ msgstr "Importuj profil" #~ msgid "An error ocurred loading Ginkgo News check your internet connection" #~ msgstr "" #~ "Wystąpił błąd podczas ładowania Ginkgo New. Sprawdź Twoje połączenie " #~ "internetowe." #~ msgid "Welcome" #~ msgstr "Witamy" #~ msgid "Twitter" #~ msgstr "Twitter" #~ msgid "%m-%d-%y %H:%M:%S,%q" #~ msgstr "%m-%d-%y %H:%M:%S,%q" #~ msgid "Reprocess Series" #~ msgstr "Przetwórz ponownie serię" #~ msgid "" #~ "If you reprocess this series it will be uploaded to PACS server and \n" #~ "integration message will be resent to integration engine.\n" #~ "Do you want to continue?" #~ msgstr "" #~ "Jeśli seria zostanie ponownie przetworzona, zostanie wczytana do serwera " #~ "PACS-a \n" #~ "i komunikat zostanie ponownie wysłany do maszyny integrującej.\n" #~ "Czy chcesz kontynuować?" #~ msgid "" #~ "Unable to reprocess this series. This series hasn't been dicomized with " #~ "Ginkgo CADx." #~ msgstr "" #~ "Nie może ponownie przetworzyć serii. Seria nie została zdikomizowana przy " #~ "pomocy Ginkgo CADx." #~ msgid "" #~ "\n" #~ "Ginkgo CADx license agreement \n" #~ "-----------------------------------\n" #~ "\n" #~ "This version is a trial version for , and therefore its use is " #~ "restricted for this purpose.\n" #~ "\n" #~ "\n" #~ "\n" #~ "S.L MetaEmotion Healthcare\n" #~ "http://healthcare.metaemotion.com/en/welcome\n" #~ "contacto@metaemotion.com" #~ msgstr "" #~ "\n" #~ "Umowa licencyjna Ginkgo CADx \n" #~ "-----------------------------------\n" #~ "\n" #~ "To jest wersja testowa dla , i dlatego jesj użyczie ogranicza " #~ "się do tego celu.\n" #~ "\n" #~ "\n" #~ "\n" #~ "S.L MetaEmotion Healthcare\n" #~ "http://healthcare.metaemotion.com/en/welcome\n" #~ "contacto@metaemotion.com" #~ msgid "" #~ "\n" #~ "There are %d files that overwrite existing files" #~ msgstr "" #~ "\n" #~ "Są %d pliki, które zastąpią istniejące" #~ msgid "" #~ "\n" #~ "There aren't any stored study that matches with the search filter.\n" #~ msgstr "" #~ "\n" #~ "Nie istnieje żadne badanie, które odpowiada kryteriom filtru " #~ "przeszukiwania\n" #~ msgid "" #~ "\n" #~ "There is no size in the medical history to show every patients\n" #~ msgstr "" #~ "\n" #~ "There is no size in the medical history to show every patients\n" #~ msgid "" #~ "\n" #~ "To begin working must change filter criteria, acquire an existing study " #~ "or import images in DICOM format.\n" #~ msgstr "" #~ "\n" #~ "Aby zacząć pracę, trzeba zmienić kryteria filtru, pobrać istniejące " #~ "badanie lub zaimportować zdjęcia w formacie DICOM.\n" #~ msgid "" #~ "\n" #~ "Try using filters or collapsing nodes and refresh search\n" #~ msgstr "" #~ "\n" #~ "Spróbuj zastosować filtr lub collapsing nodes i odswież szukanie\n" #~ msgid " for all their support in Ginkgo CADx creation!" #~ msgstr " za wsparcie w tworzeniu Ginkgo CADx!" #~ msgid "&DICOM &Acquisition" #~ msgstr "Pobieranie DICOM" #~ msgid "&Delete Patient from History" #~ msgstr "&Usuń pacjenta z Historii" #~ msgid "&Import ..." #~ msgstr "&Import" #~ msgid "&Import images..." #~ msgstr "&Importuj zdjęcia ..." #~ msgid "&Open File" #~ msgstr "&Otwórz plik" #~ msgid "&Open Folder" #~ msgstr "&Otwórz katalog" #~ msgid "&Save" #~ msgstr "&Zapisz" #~ msgid "1.0" #~ msgstr "1.0" #~ msgid "10:20" #~ msgstr "10:20" #~ msgid "12412012 Q" #~ msgstr "12412012 Q" #~ msgid "1x1" #~ msgstr "1x1" #~ msgid "1x2" #~ msgstr "1x2" #~ msgid "2X2" #~ msgstr "2X2" #~ msgid "2x1" #~ msgstr "2x1" #~ msgid "31/02/2010" #~ msgstr "31/02/2010" #~ msgid "31/08/1983" #~ msgstr "31/08/1983" #~ msgid "3D tools" #~ msgstr "Narzędzia 3D" #~ msgid "3x3" #~ msgstr "3x3" #~ msgid "4x4" #~ msgstr "4x4" #~ msgid "" #~ msgstr "" #~ msgid "About &Ginkgo CADx ..." #~ msgstr "O &Ginkgo CADx ..." #~ msgid "About Ginkgo CADx ..." #~ msgstr "O Ginkgo CADx ..." #~ msgid "Acquire from a local folder" #~ msgstr "Pobierz z lokalnego katalogu" #~ msgid "Acquire from a removable unit" #~ msgstr "Pobierz z nośnika wymiennego" #, fuzzy #~ msgid "Acquiring a new DICOM study" #~ msgstr "Utwórz nowe badanie DICOM" #~ msgid "Activate" #~ msgstr "Aktywuj" #~ msgid "All modalities" #~ msgstr "Wszystkie rodzaje badań" #~ msgid "Andre Alvim Tolentino: Printing issues" #~ msgstr "Andre Alvim Tolentino: Problemy z drukowaniem" #~ msgid "Assistant to send files to PACS" #~ msgstr "Asystent wysyłania plików do PACS-a" #~ msgid "Birth date: " #~ msgstr "Data urodzin:" #~ msgid "Brazillian Portuguese: Marcel Ribeiro Dantas" #~ msgstr "Brazylijski portugalski: Marcel Ribeiro Dantas" #~ msgid "Browse slices\tCtrl+S" #~ msgstr "Przeglądaj przekroje\tCtrl+S" #~ msgid "CT" #~ msgstr "TK" #~ msgid "Close All" #~ msgstr "Zamknij wszystko" #~ msgid "Close Panel" #~ msgstr "Zamknij Panel" #~ msgid "Close all tabs" #~ msgstr "Zamknij wszystkie zakładki" #~ msgid "Closing windows..." #~ msgstr "Zamykanie okien ..." #~ msgid "Column organization (2 columns)" #~ msgstr "Układ kolumn (2kolumny)" #~ msgid "Creating new images ..." #~ msgstr "Tworzenie nowych zdjęć ..." #~ msgid "DICOM &acquisition from PACS" #~ msgstr "Pobierz badanie DICOM z PACS-a" #~ msgid "Date: " #~ msgstr "Data:" #~ msgid "Decrease" #~ msgstr "Zmniejsz" #~ msgid "Decrease value" #~ msgstr "Zmniejsz wartość" #~ msgid "Deleting a Column" #~ msgstr "Usuwanie kolumny" #~ msgid "Deleting a Row" #~ msgstr "Usuwanie wiersza" #~ msgid "Deleting series..." #~ msgstr "Usuwanie serii ..." #~ msgid "Description: " #~ msgstr "Opis" #~ msgid "Display Options" #~ msgstr "Opcje wyświetlania" #~ msgid "Duplicate Tool" #~ msgstr "Narzędzie duplikacji" #~ msgid "Enable XML-RPC server" #~ msgstr "Uaktywnij serwer XML-RPC" #~ msgid "Error deleting file from database:\n" #~ msgstr "Błąd przy usuwaniu pliku z bazy danych:\n" #~ msgid "Error deleting file from de database: \n" #~ msgstr "Błąd przy usuwaniu pliku z bazy danych:\n" #~ msgid "Error deleting the patient in the database:\n" #~ msgstr "Błąd przy usuwaniu pacjenta z bazy danych:\n" #~ msgid "Export current series..." #~ msgstr "Eksportuj bieżącą serię" #~ msgid "Export global..." #~ msgstr "Eksportuj konfigurację ..." #~ msgid "Export the active study to other formats" #~ msgstr "Eksportuj aktywne badanie do innych formatów" #~ msgid "" #~ "Extension is incompatible with current core. Please, check for upgrades." #~ msgstr "" #~ "Rozszerzenie nie jest kompatybilne z aktualnym rdzeniem. Prosze sprawdzić " #~ "istnienie aktualizacji." #~ msgid "Factor" #~ msgstr "Czynnik" #~ msgid "Factor (%.2f)" #~ msgstr "Czynnik (% 2f)" #~ msgid "Factor (0.50)" #~ msgstr "Czynnik (0.50)" #~ msgid "Failed to remove patient, you have to close opened studies" #~ msgstr "Niepowodzenie w usunięciu pacjenta. Należy zamknąć otwarte badania." #~ msgid "Filters" #~ msgstr "Filtry" #~ msgid "Finished .." #~ msgstr "Zakończone ..." #~ msgid "German: Sebastian Hilbert" #~ msgstr "Niemiecki: Sebastian Hilbert" #~ msgid "Get extensions ..." #~ msgstr "Pobierz rozszerzenia ..." #~ msgid "Ginkgo CADx license agreement version " #~ msgstr "Wersja umowy licencyjnej Ginkgo CADx" #~ msgid "Ginkgo CADx settings" #~ msgstr "Ustawienia Ginkgo CADx " #~ msgid "Ginkgo CADx start page ..." #~ msgstr "Strona startowa Ginkgo CADx ..." #~ msgid "Greetings" #~ msgstr "Pozdrowienia" #~ msgid "Grid Organization" #~ msgstr "Układ siatki" #~ msgid "Id: " #~ msgstr "Id: " #~ msgid "Image" #~ msgstr "Zdjęcie" #~ msgid "Import Images" #~ msgstr "Import zdjęć" #~ msgid "Import global..." #~ msgstr "Importuj konfigurację ..." #~ msgid "Import images" #~ msgstr "Importuj zdjęcia" #~ msgid "Increase" #~ msgstr "Zwiększ" #~ msgid "Increase value" #~ msgstr "Zwiększ wartość" #~ msgid "Japanese: Noriya Yokohama" #~ msgstr "Japoński: Noriya Yokohama" #~ msgid "Javier Tovar Velasco" #~ msgstr "Javier Tovar Velasco" #~ msgid "Last week" #~ msgstr "Ostatni tydzień" #~ msgid "Loading modules ..." #~ msgstr "Ładuje moduły ..." #~ msgid "Magnifying glass" #~ msgstr "Lupa" #~ msgid "Maximize" #~ msgstr "Maksymalizuj" #~ msgid "Merging file %d of %d" #~ msgstr "Łączenie plików %d z %d" #~ msgid "Merging files..." #~ msgstr "Łączy pliki ..." #~ msgid "Metaemotion S.L." #~ msgstr "Metaemotion S.L." #~ msgid "Modality: " #~ msgstr "Rodzaj badania:" #~ msgid "Name: " #~ msgstr "Nazwa:" #~ msgid "No description" #~ msgstr "Brak opisu" #~ msgid "Not loaded" #~ msgstr "Niezaładowane" #~ msgid "Obtain extensions..." #~ msgstr "Pobierz rozszerzenia ..." #~ msgid "Open a DICOM file" #~ msgstr "Otwórz plik DICOM" #~ msgid "Opening series..." #~ msgstr "Otwieranie serii..." #~ msgid "PACS server" #~ msgstr "Serwer PACS" #~ msgid "Plugin's path" #~ msgstr "Ścieżka dodatku" #~ msgid "Print..." #~ msgstr "Drukuj ..." #~ msgid "Redo\tCtrl+y" #~ msgstr "Ponów\tCtrl+y" #~ msgid "Redo " #~ msgstr "Ponów" #~ msgid "Select Series you want to export" #~ msgstr "Wybierz serię, którą chcesz wyeksportować" #~ msgid "Select Series you want to upload" #~ msgstr "Wybierz serię, którą chcesz wczytać" #~ msgid "Select files you want to export" #~ msgstr "Wybierz pliki do eksportu" #~ msgid "Select files you want to upload" #~ msgstr "Wybierz pliki do wczytania" #~ msgid "Send to PACS server" #~ msgstr "Wyślij do serwera PACS-a" #~ msgid "Series UID: " #~ msgstr "UID serii:" #~ msgid "Sex: female" #~ msgstr "Płeć: kobieta" #~ msgid "Sex: male" #~ msgstr "Płeć: mężczyzna" #~ msgid "Show On Startup" #~ msgstr "Pokaż przy starcie" #~ msgid "Spanish: JFLP (jluna80)" #~ msgstr "Hiszpański: JFLP (jluna80)" #~ msgid "Start page ..." #~ msgstr "Strona startowa ..." #~ msgid "Study download size limit exceded" #~ msgstr "Przekroczony limit rozmiaru ściąganego badania" #~ msgid "TCP listening port for XML-RPC server" #~ msgstr "Port nasłuchu TCP dla serwera XML-RPC" #~ msgid "" #~ "The study you want to export is modified.\n" #~ "Would you like to save it?" #~ msgstr "" #~ "Badanie, które chcesz wyeksportować jest zmodyfikowane.\n" #~ "Chcesz je zapisać?" #~ msgid "This files has to be overwritten" #~ msgstr "Ten plik należy nadpisać" #~ msgid "Time: " #~ msgstr "Czas:" #~ msgid "Translators" #~ msgstr "Tłumacze" #~ msgid "Turkish: zeugma (sunder67)" #~ msgstr "Turecki: zeugma (sunder67)" #~ msgid "UID Importer: " #~ msgstr "UID importera:" #~ msgid "URL for new extensions" #~ msgstr "Adres URL dla nowych rozszerzeń" #~ msgid "Undo\tCtrl+z" #~ msgstr "Cofnij\tCtrl+z" #~ msgid "Upload to PACS" #~ msgstr "Wczytaj do PACS-a" #~ msgid "We want to thanks " #~ msgstr "Wyrażamy nasze podziękowania " #~ msgid "XML-RPC Server" #~ msgstr "Serwer XML-RPC" #~ msgid "XmlRpc++" #~ msgstr "XmlRpc++" #~ msgid "You can't remove opened studies" #~ msgstr "Nie można usunąć otwartych badań" #~ msgid "You have to set a valid port" #~ msgstr "Należy ustawić ważny port" #~ msgid "Zoom +" #~ msgstr "Powiększ +" #~ msgid "Zoom -" #~ msgstr "Pomniejsz -" #~ msgid "error, have tried to select a file that is not added to history" #~ msgstr "Błąd bróba wybrania pliku, który nie został dodany do Historii" #~ msgid "this Patient" #~ msgstr "ten pacjent" #~ msgid "to" #~ msgstr "do" ginkgocadx-3.8.7/cadxcore/lang/pl/wxstd.mo000066400000000000000000003757751314736454600205460ustar00rootroot000000000000004 h??CTew{؋ .8A T _js ,Ɍڌ   ! 0; AL ams{ȍύ֍ߍ % 6BKQWfou{ Î̎ ӎݎ -4:B KV\b iv{  ُ̏ݏ  '4P ` mw Őΐ +18> Xekz ȑΑ Ցߑ =4M$!ɒ*/ :< w ē˓͓Гғ  # . 9D F gq Ɣ Ӕ ߔ  #"/Fv35ԕ6 AYq ϖ2G_zėܗ6JNT]f juɘ ܘ   -86H"":ۙ ")=T \ fqК !B\{ɛΛ!"2-L1z( ՜5I1P ˝ҝ 8Rl0 F T)rϟ%$#J"n*(&% %26X"?ϡ(1E w!ʢGP(l(-%3F ^-ä ߤ%&Dc) ƥ 9)R#|'Ȧ".?Odmv  ͧ BC'T!|+ʨ")&E#l)$&ߩ - ; IU\r"$ʪ# +4 `(%ƫ$ &2!Y&{#"Ƭ#* !8#Z~ /,>$V{NR(<e)n Ư(ϯ!&$5!Z%|&#ɰ !(J_}"б '(!Pr!޲!<(Z".޳& '4/\C#д((Q9j׵ !3 7E[o,1Ƕ0%*%Pv}#/!#$ HS dq ǸҸ- @K S a~l ""*Mf2Q2vN Żϻ  -BV[`tx~ ɼ9Pm ڽLRXw¾%%<Lc 0ݿJ,E$r2$ .)Xt -"'$0L"}9$00"L&o"$80GP!/A1,.^2))2A/t%## 3."b(%$ T6*(($"$G'l"! 5-$c +-4b#"#+B n-'"5'>f&-S//+_&,2)-<&j&+('+!S;u)23,-`$;)-2W!=4$"Be ~  /, 1 ? JW4] '5Mkc #!#;2_8 %0AT*[ ' / : H2T /A"a ''?UY `6lQwm$D7i2)$2Wju%+%2/X3-C J W d r*~1( #5Yx66#8;t{1% !%G!a!! 5&T{    &2 : FPY bo x  j)<AUgx%">^t|6 0 + F S#^) |    ! - 7 D P Zgp x  & %1 O Y ep!"C '1'9+a  )2: ?I*L&w51,$ %%'FB!')!6&= d q*7!Q s}*02 :8F(2Iejo#/D$a%$ $)N$k$$$1V$s$  0._eu }"1B9 /#Hlu~      *IX hv~   H8f $):!B3d#>FXh o"}D  # 5$C-h   "+ 0 =IQ/g  < [ gr%  ),V#eE?1DV_w'%*-Xp -1+&%R)x 6&,< C N[y .#Im~ /, 06gz(W)0on  8 . ? 'P x  &      ' = P k     #   .    !- O '_  *    0L">M@\7a#VO@,Ym#BRix1;"3 DAP%Lfi3 3#Q*u$   %,6c}$'$''Oe"{# !=Z!v"  +7c'w + L\z "8(<B^x   , (3\ |    3"Fi "+D"],1$%=c.g /<$  - 7 ?  H ;U  :!!\!0x!=!;!>#";b"5""k###9B$,|$$.s%-%!% %&&#&*(&S&i&!&&)&>&*'#='/a'0''-'(-(*B((m(#('('(" )-) D) e) )!)$))))'***#<*`*e*j*~**"* ***/**+#+#6+Z+/y++ ++4+! ,8.,9g,.,,, , ,,,--+;-"g-#- -----. .. ".0.(9.b.i.n.~.". ..... .&.)/9/M/ T/ _/k/s/y/ //-//$/ 00#0C)0m0 s0~00"000 0 0$011$1 51 C1d1 x11 1"11 11-13'23[2*22 2 222?45<5?5P5b5s5 w5 5555 555646=6E6 d6 n6 z6 666*66 66 7 7 )737B7 T7^7f7u7 7 77777777 7 7 788 8!8 )8 58B8_8f8 u8 8888888 88 888 9!9(9 -9 :9G9N9 a9)l99999 999999 : ::.:5: ;:F:O:a:s::::: ::::::):; "; /;;; M;X; h;r;z;;;; ;;;; ;;!; < )<3<);<e<z<<<< <<<<< <<<<< == +=5= ;=I=O=%T=z=;=3=*>.>*L>0w>?>$> ??? ? 1? =?H?J?M?O?c?e?i?m?q?u?y?}???? ? ? ? ? ??!? ??@-@ B@L@^@v@@@@ @ @@ @%@<ALAaArA1tA6AAA B@BYBqBB!BBBBC"C7CQCmCCCCCCDD1DEDKDQD VD`DfD+uD D"DD DDEE/E8EPEfEEEIEEF" FECF FFFFFFFFGG8GQGiGG!GGGGH.HGH&NH2uH+H H3H7)I'aII I IIIIIAI 7J BJNJTJZJoJ J JJJ JJ JJKK6KOKhKKKK1K K K KKTK)TL9~L)LL$L#M"CM0fM*M*M>M4,N5aN=N?N>O)TO4~OTO#P*,P@WP2P%P P6Q IQSQaqQ!Q,Q6"R:YR,RFR S+)S=USS!S*S*S''T.OT,~T:T*T*U%\*^\\'\)\'\+!],M]-z]#].]$]- ^N^V^g^^^6^^^)^ _+@_-l_]_O_3H`|`<` `!` ` `. a8aMahaoa va,a&a%a$a(#b"Lb#ob%bb'b(c*cFc%cc c(c+c%c%d,@d+md%d,d"d%e5e+Uee#e e.e2f/Ef3ufMf.f &g"Gg/jg g<ggh6hIh^hfhyhhh hhh1hiii8&i2_i3i3i,i'j0jIj&Oj;vjj2j1j -k8kLk_krkxk k kkk k kk3k.&lUlrlyl llm+m"4m!Wmymm@momUn:tn~n .o8oOo dopo yo o5o$oo ooppp#p*p3pCp*Up)pppppq7qTq mq+qqqaqKr$Rrwrrr"r(rs-s6sMs]s |ss+s8s tQ)t1{t)tt.t=u.Fu$uu;u u1u")v%Lv9rv&v0v6w2;wDnw.w8w(x,Dx9qx x)xDx";y(^yLy+y<zZ=zMz9z$ {,E{Lr{2{{Y|Ek|&|)|3}+6}>b},}#}3},&~.S~/~^~!130e22.-+!Y&{))̀35*0`@)ҁ(,%>R3&ł-"/=+m=-׃1,7BdA/?7Y0?…?YB<,ن,63Ej1.*7<'t>7ۈ21FKx7ĉG#DLh3+3/IDyA>B?8.&2Ig v ƍ? & 2<S\l~ <Վ6 +L$P*u"Ïۏt (&C<+Mh  ‘(͑.@T@[-Ւ' '>D _l ~:$Ǔ!  !,DX-l"*ܔ+$3*X"וە G\5f'ǗG<73t Ř% w'66֙( 467k"ƚϚ5< E P \ i'uF%$ //*_)$$ٜQQP,Oϝ'@E!+Ԟ##,P#j#̟"!+*V_ v  Ġ Πؠ    ' 3=F O\ eqx~`uz¢ޢ&7Ts ƣϣKأ$F?  %äߤ514#f  ¥ǥ T b p } ¦ Ϧ ۦ      & 3 @ N [ gq   ѧ$D IS*g ƨ -#$IH'*ߩ (17=Qey   êԪ.ت,45J8ѫv&  0)Q){(Xέ#'K1Z -ۮ($ 7DUk&q!Я<1%Wh~6˰$5 C IAT8ֱ߱&#7%Qw&߲0BVh&ܳ& %<b%~%%(%Dj%%ȵ% 0 7APbt{:ֶ ܶ !$5!Z!|.ͷBpCĸ3<DS co ùܹ, Mds  ˺ պ  "0Y7Dֻ߻!0@GMgnu "A& ýֽ*K,xо߾$:Nbh} ʿ ѿ ۿ    )50O%#" G-u-$,JQ$qQ` ]Jk!&=[*w%&  9DLU \)f57 ;C[ '"'9 ?M\z'%%(N+c=0*E'p !)-xzw>N^"p, 6Qfy,CX* 6Qi &/6)Ru|';]VN37Sp\x-XH& (#4X>\> *J4"-Xs#y  :%#?I,20""=` i w/$'8`$x'#&2"Y|%#&<$c&8 6%&\*-#7 Wx  +C) H'R%z/    < ] l(  # 3 >L_y% :E[%u&!)$C4h%'>*.1YJ  B+n@ *N3yMKNGK>!K&84(:c$w ))*#N<nE-;=By+??(h8>9E:G)+3=(q+8;RU1f    <ASh-~'@. DO:V$EH+Eqw "5* 1K=}*  $/ @CM 1&),5;2q  C +d% A %/5-;i  %# !0 R^ g!r !*? GM>n%OyK53:D]Er3d9/uA4$th,c6}<C=6NR5MDlB !:wRO5%7-zAVGov9sstV^L`b)$3z3TPTIw1{T"Vf(HwKN;/VHW?H>& OJNo< BtWEWnO_b :jKL+J- GV,%hqk2'?BxJQXZzUIH&S.x2"[C o%pT B0:ef#f\6=J8rqf}QgzA9a/GQe&[nB2 p" `239Pm"YZaM 0U>Y|db&t i!'^9G*qJGzi>7*3I8,{<R1cg CC;Mw>d1nv\ED2sm+ag4o'#]x/IrAbOm@Y:ll%ISa4d|p`,-CUXL|7F w o[?/W?)O*P)).hK#,j2{<p=eS;.15Q[lL&*0>0pX|}jIuPf}T~dW&} #. NN~l|K$cE^;X?:~kn(@U(c7^7MiDY\Ya!_wnA,\  }z5$fyrh\xOuq!*,6j6y#] b0HhRyv eS^' M'  5UE_G@+u$] u  R$]DF)[ kS mF4 _h/u -lWgD ]BHti&px`v iCYNaqXehv1#9.gV]u'bQ8+m4Mg*~oc80trRiJv7SK`nTzk'+[M*87)Zsq d(D=PZk?-rk vU`k9\42#(_!{Qjl3?~sj0\;;W>e +}6.8Q wEtR"@>PS~ p<aFc eU|E@bZ1@L~sI4"{L;|o8TF:</1V!fXK ZXy !^yi5d.x_{ ABs%Zm=J<YF@(x(C`[=y)=$qH^%+FN Ljc-{"6A-gPrm_G Please send this report to the program maintainer, thank you! Thank you and we're sorry for the inconvenience! (copy %d of %d) (error %ld: %s) (in module "%s") - Preview bold italic light#10 Envelope, 4 1/8 x 9 1/2 in#11 Envelope, 4 1/2 x 10 3/8 in#12 Envelope, 4 3/4 x 11 in#14 Envelope, 5 x 11 1/2 in#9 Envelope, 3 7/8 x 8 7/8 in%d of %lu%i of %i%ld byte%ld bytes%lu of %lu%s (or %s)%s Error%s Information%s Preferences%s Warning%s did not fit the tar header for entry '%s'%s files (%s)|%s&About&Actual Size&After a paragraph:&Alignment&Apply&Apply Style&Arrange Icons&Ascending&Back&Based on:&Before a paragraph:&Bg colour:&Bold&Bottom&Bottom:&Box&Bullet style:&CD-Rom&Cancel&Cascade&Cell&Character code:&Clear&Close&Colour:&Convert&Copy&Copy URL&Customize...&Debug report preview:&Delete&Delete Style...&Descending&Details&Down&Edit&Edit Style...&Execute&File&Find&Finish&Floating mode:&Floppy&Font family:&Font for Level...&Font:&Forward&From:&Harddisk&Height:&Help&Hide details&Home&Indentation (tenths of a mm)&Indeterminate&Index&Info&Italic&Jump to&Justified&Last&Left&Left:&List level:&Log&Move&Move the object to:&Network&New&Next&Next >&Next Paragraph&Next Tip&Next style:&No&Notes:&Number:&OK&Open...&Outline level:&Page Break&Paste&Picture&Point size:&Position (tenths of a mm):&Position mode:&Preferences&Previous&Previous Paragraph&Print...&Properties&Quit&Redo&Redo &Rename Style...&Replace&Restart numbering&Restore&Right&Right:&Save&Save as&See details&Show tips at startup&Size&Size:&Skip&Spacing (tenths of a mm)&Spell Check&Stop&Strikethrough&Style:&Styles:&Subset:&Symbol:&Table&Top&Top:&Underline&Underlining:&Undo&Undo &Unindent&Up&Vertical alignment:&View...&Weight:&Width:&Window&Yes'%s' has extra '..', ignored.'%s' is invalid'%s' is not a correct numeric value for option '%s'.'%s' is not a valid message catalog.'%s' is probably a binary buffer.'%s' should be numeric.'%s' should only contain ASCII characters.'%s' should only contain alphabetic characters.'%s' should only contain alphabetic or numeric characters.'%s' should only contain digits.(*)(Help)(None)(Normal text)(bookmarks)(none)**)+, 64-bit edition-...1.11.21.31.41.51.61.71.81.910 x 11 in10 x 14 in11 x 17 in12 x 11 in15 x 11 in26 3/4 Envelope, 3 5/8 x 6 1/2 in9 x 11 in: file does not exist!: unknown charset: unknown encoding< &BackBold italic face.
    bold italic underlined
    Bold face. Italic face. >A debug report has been generated in the directory A debug report has been generated. It can be found inA non empty collection must consist of 'element' nodesA standard bullet name.A0 sheet, 841 x 1189 mmA1 sheet, 594 x 841 mmA2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Transverse 322 x 445 mmA3 Rotated 420 x 297 mmA3 Transverse 297 x 420 mmA3 sheet, 297 x 420 mmA4 Extra 9.27 x 12.69 inA4 Plus 210 x 330 mmA4 Rotated 297 x 210 mmA4 Transverse 210 x 297 mmA4 sheet, 210 x 297 mmA4 small sheet, 210 x 297 mmA5 Extra 174 x 235 mmA5 Rotated 210 x 148 mmA5 Transverse 148 x 210 mmA5 sheet, 148 x 210 mmA6 105 x 148 mmA6 Rotated 148 x 105 mmABCDEFGabcdefg12345ADDASCIIAbout %sAbsoluteAddAdd columnAdd current page to bookmarksAdd rowAdd to custom coloursAdding book %sAdvancedAfter a paragraph:Align LeftAlign RightAllAll files (%s)|%sAll files (*)|*All files (*.*)|*.*All stylesAlphabetic ModeAlready Registered Object passed to SetObjectClassInfoAlready dialling ISP.And includes the following files: Animation file is not of type %ld.Append log to file '%s' (choosing [No] will overwrite it)?ApplicationArabicArabic (ISO-8859-6)Argument %u not found.ArtistsAscendingAttributesAvailable fonts.B4 (ISO) 250 x 353 mmB4 (JIS) Rotated 364 x 257 mmB4 Envelope, 250 x 353 mmB4 sheet, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Rotated 257 x 182 mmB5 (JIS) Transverse 182 x 257 mmB5 Envelope, 176 x 250 mmB5 sheet, 182 x 257 millimeterB6 (JIS) 128 x 182 mmB6 (JIS) Rotated 182 x 128 mmB6 Envelope, 176 x 125 mmBACKBMP: Couldn't allocate memory.BMP: Couldn't save invalid image.BMP: Couldn't write RGB color map.BMP: Couldn't write data.BMP: Couldn't write the file (Bitmap) header.BMP: Couldn't write the file (BitmapInfo) header.BMP: wxImage doesn't have own wxPalette.BackgroundBackground &colour:Background colourBaltic (ISO-8859-13)Baltic (old) (ISO-8859-4)Before a paragraph:BitmapBitmap renderer cannot render value; value type: BoldBorderBordersBottomBottom margin (mm):Box PropertiesBox stylesBrowseBullet &Alignment:Bullet styleBulletsC sheet, 17 x 22 inC&learC&olour:C3 Envelope, 324 x 458 mmC4 Envelope, 229 x 324 mmC5 Envelope, 162 x 229 mmC6 Envelope, 114 x 162 mmC65 Envelope, 114 x 229 mmCANCELCAPITALCD-RomCHM handler currently supports only local files!CLEARCOMMANDCa&pitalsCan't &Undo Can't automatically determine the image format for non-seekable input.Can't close registry key '%s'Can't copy values of unsupported type %d.Can't create registry key '%s'Can't create threadCan't create window of class %sCan't delete key '%s'Can't delete the INI file '%s'Can't delete value '%s' from key '%s'Can't enumerate subkeys of key '%s'Can't enumerate values of key '%s'Can't export value of unsupported type %d.Can't find current position in file '%s'Can't get info about registry key '%s'Can't initialize zlib deflate stream.Can't initialize zlib inflate stream.Can't monitor non-existent directory "%s" for changes.Can't open registry key '%s'Can't read from inflate stream: %sCan't read inflate stream: unexpected EOF in underlying stream.Can't read value of '%s'Can't read value of key '%s'Can't save image to file '%s': unknown extension.Can't save log contents to file.Can't set thread priorityCan't set value of '%s'Can't write to deflate stream: %sCancelCannot create mutex.Cannot create new column's ID. Probably max. number of columns reached.Cannot enumerate files '%s'Cannot enumerate files in directory '%s'Cannot find active dialup connection: %sCannot find the location of address book fileCannot get an active instance of "%s"Cannot get priority range for scheduling policy %d.Cannot get the hostnameCannot get the official hostnameCannot hang up - no active dialup connection.Cannot initialize OLECannot load icon from '%s'.Cannot load resources from '%s'.Cannot load resources from file '%s'.Cannot open HTML document: %sCannot open HTML help book: %sCannot open contents file: %sCannot open file for PostScript printing!Cannot open index file: %sCannot open resources file '%s'.Cannot print empty page.Cannot read typename from '%s'!Cannot resume thread %luCannot resume thread %lxCannot retrieve thread scheduling policy.Cannot set locale to language "%s".Cannot start thread: error writing TLS.Cannot suspend thread %luCannot suspend thread %lxCannot wait for thread terminationCase sensitiveCategorized ModeCell PropertiesCeltic (ISO-8859-14)Cen&tredCenteredCentral European (ISO-8859-2)CentreCentre text.CentredCh&oose...Change List StyleChange Object StyleChange PropertiesChange StyleChanges won't be saved to avoid overwriting the existing file "%s"Character stylesCheck to add a period after the bullet.Check to add a right parenthesis.Check to enclose the bullet in parentheses.Check to make the font bold.Check to make the font italic.Check to make the font underlined.Check to restart numbering.Check to show a line through the text.Check to show the text in capitals.Check to show the text in small capitals.Check to show the text in subscript.Check to show the text in superscript.Choose ISP to dialChoose a directory:Choose a fileChoose colourChoose fontCl&oseClass not registered.Clear the log contentsClick to apply the selected style.Click to browse for a symbol.Click to cancel changes to the font.Click to cancel the font selection.Click to change the font colour.Click to change the text background colour.Click to change the text colour.Click to choose the font for this level.Click to close this window.Click to confirm changes to the font.Click to confirm the font selection.Click to create a new box style.Click to create a new character style.Click to create a new list style.Click to create a new paragraph style.Click to create a new tab position.Click to delete all tab positions.Click to delete the selected style.Click to delete the selected tab position.Click to edit the selected style.Click to rename the selected style.CloseClose AllClose current documentClose this windowColourColour selection dialog failed with error %0lx.Colour:Column could not be added.Column description could not be initialized.Column index not found.Column width could not be determinedColumn width could not be set.Command line argument %d couldn't be converted to Unicode and will be ignored.Compositing not supported by this system, please enable it in your Window Manager.Compressed HTML Help file (*.chm)|*.chm|ComputerConfig entry name cannot start with '%c'.ConfirmConfirm registry updateConnecting...ContentsConversion to charset '%s' doesn't work.ConvertCopied to clipboard:"%s"Copies:CopyCopy selectionCould not create temporary file '%s'Could not determine column index.Could not determine column's positionCould not determine number of columns.Could not determine number of itemsCould not extract %s into %s: %sCould not find tab for idCould not get header description.Could not get items.Could not get property flags.Could not get selected items.Could not locate file '%s'.Could not remove column.Could not retrieve number of itemsCould not set alignment.Could not set column width.Could not set current working directoryCould not set header description.Could not set icon.Could not set maximum width.Could not set minimum width.Could not set property flags.Could not start document preview.Could not start printing.Could not transfer data to windowCouldn't acquire a mutex lockCouldn't add an image to the image list.Couldn't create a timerCouldn't create the overlay windowCouldn't enumerate translationsCouldn't find symbol '%s' in a dynamic libraryCouldn't get hatch style from wxBrush.Couldn't get the current thread pointerCouldn't init the context on the overlay windowCouldn't load a PNG image - file is corrupted or not enough memory.Couldn't load sound data from '%s'.Couldn't obtain folder nameCouldn't open audio: %sCouldn't register clipboard format '%s'.Couldn't release a mutexCouldn't retrieve information about list control item %d.Couldn't save PNG image.Couldn't terminate threadCreate directoryCreate new directoryCu&tCurrent directory:Custom sizeCustomize ColumnsCutCut selectionCyrillic (ISO-8859-5)D sheet, 22 x 34 inDDE poke request failedDECIMALDELDELETEDIB Header: Encoding doesn't match bitdepth.DIB Header: Image height > 32767 pixels for file.DIB Header: Image width > 32767 pixels for file.DIB Header: Unknown bitdepth in file.DIB Header: Unknown encoding in file.DIVIDEDL Envelope, 110 x 220 mmDOWNData object has invalid data formatDate renderer cannot render value; value type: Debug report "%s"Debug report couldn't be created.Debug report generation has failed.DecorativeDefault encodingDefault fontDefault printerDeleteDelete A&llDelete StyleDelete TextDelete columnDelete itemDelete rowDelete selectionDelete style %s?Deleted stale lock file '%s'.Dependency "%s" of module "%s" doesn't exist.DescendingDesktopDeveloped by DevelopersDial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it.Did you know...DirectoriesDirectory '%s' couldn't be createdDirectory '%s' couldn't be deletedDirectory does not existDirectory doesn't exist.Discard changes and reload the last saved version?Display all index items that contain given substring. Search is case insensitive.Display options dialogDisplays help as you browse the books on the left.Do you want to overwrite the command used to %s files with extension "%s" ? Current value is %s, New value is %s %1Document:Documentation by Documentation writersDon't SaveDoneDone.DottedDouble Japanese Postcard Rotated 148 x 200 mmDoubly used id : %dDownDragE sheet, 34 x 44 inENDENTERESCESCAPEEXECUTEEdit itemElapsed time:Enable the maximum width value.Enable the minimum width value.Enable the width value.Enable vertical alignment.Enables a background colour.Enter a box style nameEnter a character style nameEnter a list style nameEnter a new style nameEnter a paragraph style nameEnter command to open file "%s":Entries foundEnvelope Invite 220 x 220 mmEnvironment variables expansion failed: missing '%c' at position %u in '%s'.ErrorError closing epoll descriptorError creating directoryError in reading image DIB.Error in resource: %sError reading config options.Error saving user configuration data.Error while printing: Error: Esperanto (ISO-8859-3)Estimated time:Event queue overflowedExecutable files (*.exe)|*.exe|ExecuteExecution of command '%s' failedExecution of command '%s' failed with error: %ulExecutive, 7 1/4 x 10 1/2 inExporting registry key: file "%s" already exists and won't be overwritten.Extended Unix Codepage for Japanese (EUC-JP)Extraction of '%s' into '%s' failed.FFailed to access lock file.Failed to add descriptor %d to epoll descriptor %dFailed to allocate colour for OpenGLFailed to change video modeFailed to clean up debug report directory "%s"Failed to close file handleFailed to close lock file '%s'Failed to close the clipboard.Failed to close the display "%s"Failed to connect: missing username/password.Failed to connect: no ISP to dial.Failed to convert file "%s" to Unicode.Failed to copy dialog contents to the clipboard.Failed to copy registry value '%s'Failed to copy the contents of registry key '%s' to '%s'.Failed to copy the file '%s' to '%s'Failed to copy the registry subkey '%s' to '%s'.Failed to create DDE stringFailed to create MDI parent frame.Failed to create a temporary file nameFailed to create an anonymous pipeFailed to create an instance of "%s"Failed to create connection to server '%s' on topic '%s'Failed to create cursor.Failed to create directory "%s"Failed to create directory '%s' (Do you have the required permissions?)Failed to create epoll descriptorFailed to create registry entry for '%s' files.Failed to create the standard find/replace dialog (error code %d)Failed to create wake up pipe used by event loop.Failed to display HTML document in %s encodingFailed to empty the clipboard.Failed to enumerate video modesFailed to establish an advise loop with DDE serverFailed to establish dialup connection: %sFailed to execute '%s' Failed to execute curl, please install it in PATH.Failed to find match for regular expression: %sFailed to get ISP names: %sFailed to get data from the clipboardFailed to get the local system timeFailed to get the working directoryFailed to initialize GUI: no built-in themes found.Failed to initialize MS HTML Help.Failed to initialize OpenGLFailed to initiate dialup connection: %sFailed to insert text in the control.Failed to inspect the lock file '%s'Failed to install signal handlerFailed to join a thread, potential memory leak detected - please restart the programFailed to kill process %dFailed to load bitmap "%s" from resources.Failed to load icon "%s" from resources.Failed to load image %%d from file '%s'.Failed to load image %d from stream.Failed to load image from file "%s".Failed to load metafile from file "%s".Failed to load mpr.dll.Failed to load resource "%s".Failed to load shared library '%s'Failed to lock resource "%s".Failed to lock the lock file '%s'Failed to modify descriptor %d in epoll descriptor %dFailed to modify file times for '%s'Failed to monitor I/O channelsFailed to open '%s' for readingFailed to open '%s' for writingFailed to open CHM archive '%s'.Failed to open URL "%s" in default browser.Failed to open directory "%s" for monitoring.Failed to open display "%s".Failed to open temporary file.Failed to open the clipboard.Failed to prepare playing "%s".Failed to put data on the clipboardFailed to read PID from lock file.Failed to read config options.Failed to read document from the file "%s".Failed to read from wake-up pipeFailed to redirect child process input/outputFailed to redirect the child process IOFailed to register DDE server '%s'Failed to remember the encoding for the charset '%s'.Failed to remove debug report file "%s"Failed to remove lock file '%s'Failed to remove stale lock file '%s'.Failed to rename registry value '%s' to '%s'.Failed to rename the file '%s' to '%s' because the destination file already exists.Failed to rename the registry key '%s' to '%s'.Failed to retrieve data from the clipboard.Failed to retrieve file times for '%s'Failed to retrieve text of RAS error messageFailed to retrieve the supported clipboard formatsFailed to save document to the file "%s".Failed to save the bitmap image to file "%s".Failed to send DDE advise notificationFailed to set FTP transfer mode to %s.Failed to set clipboard data.Failed to set permissions on lock file '%s'Failed to set temporary file permissionsFailed to set text in the text control.Failed to set thread priority %d.Failed to set up non-blocking pipe, the program might hang.Failed to store image '%s' to memory VFS!Failed to switch wake up pipe to non-blocking modeFailed to terminate a thread.Failed to terminate the advise loop with DDE serverFailed to terminate the dialup connection: %sFailed to touch the file '%s'Failed to unlock lock file '%s'Failed to unregister DDE server '%s'Failed to unregister descriptor %d from epoll descriptor %dFailed to update user configuration file.Failed to upload the debug report (error code %d).Failed to write to lock file '%s'FileFile '%s' already exists, do you really want to overwrite it?File '%s' already exists. Do you want to replace it?File '%s' couldn't be removedFile '%s' couldn't be renamed '%s'File couldn't be loaded.File errorFile name exists already.FilesFiles (%s)FilterFindFirst pageFixed font:Fixed size face.
    bold italic FloatingFloppyFolio, 8 1/2 x 13 inFontFont &weight:Font size:Font st&yle:Font:Fonts index file %s disappeared while loading fonts.Fork failedForward hrefs are not supportedFound %i matchesFrom:GIF: Invalid gif index.GIF: data stream seems to be truncated.GIF: error in GIF image format.GIF: not enough memory.GIF: unknown error!!!GTK+ installed on this machine is too old to support screen compositing, please install GTK+ 2.12 or later.GTK+ themeGeneralGeneric PostScriptGerman Legal Fanfold, 8 1/2 x 13 inGerman Std Fanfold, 8 1/2 x 12 inGetProperty called w/o valid getterGetPropertyCollection called on a generic accessorGetPropertyCollection called w/o valid collection getterGo backGo forwardGo one level up in document hierarchyGo to home directoryGo to parent directoryGraphics art by Greek (ISO-8859-7)GrooveGzip not supported by this version of zlibHELPHOMEHTML Help Project (*.hhp)|*.hhp|HTML anchor %s does not exist.HTML files (*.html;*.htm)|*.html;*.htm|HarddiskHebrew (ISO-8859-8)HelpHelp Browser OptionsHelp IndexHelp PrintingHelp TopicsHelp books (*.htb)|*.htb|Help books (*.zip)|*.zip|Help directory "%s" not found.Help file "%s" not found.Help: %sHide %sHide OthersHide this notification message.HomeHome directoryHow the object will float relative to the text.ICO: Error in reading mask DIB.ICO: Error writing the image file!ICO: Image too tall for an icon.ICO: Image too wide for an icon.ICO: Invalid icon index.IFF: data stream seems to be truncated.IFF: error in IFF image format.IFF: not enough memory.IFF: unknown error!!!INSINSERTISO-2022-JPIcon & text renderer cannot render value; value type: If possible, try changing the layout parameters to make the printout more narrow.If you have any additional information pertaining to this bug report, please enter it here and it will be joined to it:If you wish to suppress this debug report completely, please choose the "Cancel" button, but be warned that it may hinder improving the program, so if at all possible please do continue with the report generation. Ignoring value "%s" of the key "%s".Illegal Object Class (Non-wxEvtHandler) as Event SourceIllegal Parameter Count for ConstructObject MethodIllegal Parameter Count for Create MethodIllegal directory name.Illegal file specification.Image and mask have different sizes.Image file is not of type %d.Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dllImpossible to get child process inputImpossible to get permissions for file '%s'Impossible to overwrite the file '%s'Impossible to set permissions for the file '%s'Incorrect GIF frame size (%u, %d) for the frame #%uIncorrect number of arguments.IndentIndents && SpacingIndexIndian (ISO-8859-12)InfoInitialization failed in post init, aborting.InsertInsert FieldInsert ImageInsert ObjectInsert TextInserts a page break before the paragraph.Invalid GTK+ command line option, use "%s --help"Invalid TIFF image index.Invalid data view itemInvalid display mode specification '%s'.Invalid geometry specification '%s'Invalid inotify event for "%s"Invalid lock file '%s'.Invalid message catalog.Invalid or Null Object ID passed to GetObjectClassInfoInvalid or Null Object ID passed to HasObjectClassInfoInvalid regular expression '%s': %sInvalid value %ld for a boolean key "%s" in config file.ItalicItaly Envelope, 110 x 230 mmJPEG: Couldn't load - file is probably corrupted.JPEG: Couldn't save image.Japanese Double Postcard 200 x 148 mmJapanese Envelope Chou #3Japanese Envelope Chou #3 RotatedJapanese Envelope Chou #4Japanese Envelope Chou #4 RotatedJapanese Envelope Kaku #2Japanese Envelope Kaku #2 RotatedJapanese Envelope Kaku #3Japanese Envelope Kaku #3 RotatedJapanese Envelope You #4Japanese Envelope You #4 RotatedJapanese Postcard 100 x 148 mmJapanese Postcard Rotated 148 x 100 mmJump toJustifiedJustify text left and right.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UPL&ine spacing:LEFTLandscapeLastLast pageLast repeated message ("%s", %lu time) wasn't outputLast repeated message ("%s", %lu times) wasn't outputLedger, 17 x 11 inLeftLeft (&first line):Left margin (mm):Left-align text.Legal Extra 9 1/2 x 15 inLegal, 8 1/2 x 14 inLetter Extra 9 1/2 x 12 inLetter Extra Transverse 9.275 x 12 inLetter Plus 8 1/2 x 12.69 inLetter Rotated 11 x 8 1/2 inLetter Small, 8 1/2 x 11 inLetter Transverse 8 1/2 x 11 inLetter, 8 1/2 x 11 inLicenseLightLine %lu of map file "%s" has invalid syntax, skipped.Line spacing:Link contained '//', converted to absolute link.List StyleList stylesLists font sizes in points.Lists the available fonts.Load %s fileLoading : Lock file '%s' has incorrect owner.Lock file '%s' has incorrect permissions.Log saved to the file '%s'.Lower case lettersLower case roman numeralsMDI childMENUMS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it.Ma&ximizeMacArmenianMacBengaliMacBurmeseMacCentralEurRomanMacChineseSimpMacChineseTradMacCroatianMacCyrillicMacEthiopicMacGaelicMacGeorgianMacGreekMacGujaratiMacHebrewMacIcelandicMacJapaneseMacKoreanMacMongolianMacTamilMacThaiMacTibetanMacTurkishMacVietnameseMake a selection:MarginsMatch caseMax height:Max width:Media playback error: %sMemory VFS already contains file '%s'!MenuMessageMetal themeMethod or property not found.Mi&nimizeMin height:Min width:Missing a required parameter.ModernModifiedModule "%s" initialization failedMonarch Envelope, 3 7/8 x 7 1/2 inMonitoring individual files for changes is not supported currently.Move downMove upMoves the object to the next paragraph.Moves the object to the previous paragraph.Multiple Cell PropertiesNUM_LOCKNameNetworkNew &Box Style...New &Character Style...New &List Style...New &Paragraph Style...New StyleNew directoryNew itemNewNameNextNext pageNoNo animation handler for type %ld defined.No bitmap handler for type %d defined.No column existing.No column for the specified column position existing.No default application configured for HTML files.No entries found.No font for displaying text in encoding '%s' found, but an alternative encoding '%s' is available. Do you want to use this encoding (otherwise you will have to choose another one)?No font for displaying text in encoding '%s' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly)?No handler found for animation type.No handler found for image type.No image handler for type %d defined.No image handler for type %s defined.No matching page found yetNo renderer or invalid renderer type specified for custom data column.No renderer specified for column.No soundNo unused colour in image being masked.No unused colour in image.No valid mappings found in the file "%s".Nordic (ISO-8859-10)NormalNormal face
    and underlined. Normal font:Not availableNot underlinedNote, 8 1/2 x 11 inNoticeNumber of columns could not be determined.Numbered outlineOKOLE Automation error in %s: %sObject PropertiesObject implementation does not support named arguments.Objects must have an id attributeOpen FileOpen HTML documentOpen file "%s"OpenGL function "%s" failed: %s (error %d)Operation not permitted.Option '%s' requires a value.Option '%s': '%s' cannot be converted to a date.OptionsOrientationOut of window IDs. Recommend shutting down application.OutlineOverflow while coercing argument values.PAGEDOWNPAGEUPPAUSEPCX: couldn't allocate memoryPCX: image format unsupportedPCX: invalid imagePCX: this is not a PCX file.PCX: unknown error !!!PCX: version number too lowPGDNPGUPPNM: Couldn't allocate memory.PNM: File format is not recognized.PNM: File seems truncated.PRC 16K 146 x 215 mmPRC 16K RotatedPRC 32K 97 x 151 mmPRC 32K RotatedPRC 32K(Big) 97 x 151 mmPRC 32K(Big) RotatedPRC Envelope #1 102 x 165 mmPRC Envelope #1 Rotated 165 x 102 mmPRC Envelope #10 324 x 458 mmPRC Envelope #10 Rotated 458 x 324 mmPRC Envelope #2 102 x 176 mmPRC Envelope #2 Rotated 176 x 102 mmPRC Envelope #3 125 x 176 mmPRC Envelope #3 Rotated 176 x 125 mmPRC Envelope #4 110 x 208 mmPRC Envelope #4 Rotated 208 x 110 mmPRC Envelope #5 110 x 220 mmPRC Envelope #5 Rotated 220 x 110 mmPRC Envelope #6 120 x 230 mmPRC Envelope #6 Rotated 230 x 120 mmPRC Envelope #7 160 x 230 mmPRC Envelope #7 Rotated 230 x 160 mmPRC Envelope #8 120 x 309 mmPRC Envelope #8 Rotated 309 x 120 mmPRC Envelope #9 229 x 324 mmPRC Envelope #9 Rotated 324 x 229 mmPRINTPage %dPage %d of %dPage SetupPage setupPagesPaper sizeParagraph stylesPassing a already registered object to SetObjectPastePaste selectionPeri&odPermissionsPicture PropertiesPipe creation failedPlease choose a valid font.Please choose an existing file.Please choose the page to display:Please choose which ISP do you want to connect toPlease install a newer version of comctl32.dll (at least version 4.70 is required but you have %d.%02d) or this program won't operate correctly.Please select the columns to show and define their order:Point SizePointer to data view control not set correctly.Pointer to model not set correctly.PortraitPositionPostScript filePreferencesPreferences...PreparingPreview:Previous pagePrintPrint PreviewPrint Preview FailurePrint RangePrint SetupPrint in colourPrint previewPrint preview creation failed.Print spoolingPrint this pagePrint to FilePrinterPrinter command:Printer optionsPrinter options:Printer...Printer:Printing Printing ErrorPrinting page %d of %dPrinting page %d...Printing...PrintoutProcessing debug report has failed, leaving the files in "%s" directory.Progress renderer cannot render value type; value type: Progress:PropertyProperty ErrorQuarto, 215 x 275 mmQuestionQuit %sQuit this programRETURNRIGHTRead error on file '%s'ReadyRedoRedo last actionRefreshRegistry key '%s' already exists.Registry key '%s' does not exist, cannot rename it.Registry key '%s' is needed for normal system operation, deleting it will leave your system in unusable state: operation aborted.Registry value '%s' already exists.RegularRelevant entries:Remaining time:RemoveRemove BulletRemove current page from bookmarksRenderer "%s" has incompatible version %d.%d and couldn't be loaded.Rendering failed.Renumber ListRep&laceReplaceReplace &allReplace selectionReplace with:Required information entry is empty.Resource '%s' is not a valid message catalog.Revert to SavedRightRight margin (mm):Right-align text.RomanS&tandard bullet name:SCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACTSaveSave %s fileSave &As...Save AsSave current documentSave current document with a different filenameSave log contents to fileScriptSearchSearch directionSearch for:Search in all booksSearching...SectionsSeek error on file '%s'Seek error on file '%s' (large files not supported by stdio)Select &AllSelect AllSelect a document templateSelect a document viewSelect regular or bold.Select regular or italic style.Select underlining or no underlining.SelectionSelects the list level to edit.Separator expected after the option '%s'.Set Cell StyleSetProperty called w/o valid setterSetting directory access times is not supported under this OS versionSetup...Several active dialup connections found, choosing one randomly.Show &hidden directoriesShow &hidden filesShow about dialogShow allShow all items in indexShow hidden directoriesShow/hide navigation panelShows a Unicode subset.Shows a preview of the bullet settings.Shows a preview of the font settings.Shows a preview of the font.Shows a preview of the paragraph settings.Shows the font preview.Simple monochrome themeSingleSizeSize:SkipSlantSorry, could not open this file.Sorry, not enough memory to create a preview.Sorry, that name is taken. Please choose another.Sorry, the format for this file is unknown.Sound data are in unsupported format.Sound file '%s' is in unsupported format.SpacingSpell CheckStandardStatement, 5 1/2 x 8 1/2 inStaticStatus:StopString To Colour : Incorrect colour specification : %sStyleStyle OrganiserStyle:Subscrip&tSupe&rscriptSuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSymbolSymbol &font:SymbolsTABTIFF: Couldn't allocate memory.TIFF: Error loading image.TIFF: Error reading image.TIFF: Error saving image.TIFF: Error writing image.TIFF: Image size is abnormally big.Table PropertiesTabloid Extra 11.69 x 18 inTabloid, 11 x 17 inTabsTeletypeTemplatesText renderer cannot render value; value type: Thai (ISO-8859-11)The FTP server doesn't support passive mode.The FTP server doesn't support the PORT command.The available bullet styles.The available styles.The bottom margin size.The bullet character.The character code.The charset '%s' is unknown. You may select another charset to replace it with or choose [Cancel] if it cannot be replacedThe clipboard format '%d' doesn't exist.The default style for the next paragraph.The directory '%s' does not exist Create it now?The document "%s" doesn't fit on the page horizontally and will be truncated if printed. Would you like to proceed with printing it nevertheless?The file '%s' doesn't exist and couldn't be opened. It has been removed from the most recently used files list.The first line indent.The following standard GTK+ options are also supported: The font colour.The font family.The font from which to take the symbol.The font point size.The font size in points.The font size units, points or pixels.The font style.The font weight.The left indent.The left margin size.The line spacing.The list item number.The object height.The object maximum height.The object maximum width.The object minimum height.The object minimum width.The object width.The outline level.The print dialog returned an error.The range to show.The report contains the files listed below. If any of these files contain private information, please uncheck them and they will be removed from the report. The required parameter '%s' was not specified.The right indent.The right margin size.The spacing after the paragraph.The spacing before the paragraph.The style name.The style on which this style is based.The style preview.The system cannot find the file specified.The tab position.The tab positions.The text couldn't be saved.The top margin size.The value for the option '%s' must be specified.The version of remote access service (RAS) installed on this machine is too old, please upgrade (the following required function is missing: %s).The wxGtkPrinterDC cannot be used.There is no column or renderer for the specified column index.There was a problem during page setup: you may need to set a default printer.This document doesn't fit on the page horizontally and will be truncated when it is printed.This platform does not support background transparency.This program was compiled with a too old version of GTK+, please rebuild with GTK+ 2.12 or newer.This system doesn't support date controls, please upgrade your version of comctl32.dllThread module initialization failed: cannot store value in thread local storageThread module initialization failed: failed to create thread keyThread module initialization failed: impossible to allocate index in thread local storageThread priority setting is ignored.Tile &HorizontallyTile &VerticallyTimeout while waiting for FTP server to connect, try passive mode.Timer creation failed.Tip of the DayTips not available, sorry!To:Toggle renderer cannot render value; value type: Too many EndStyle calls!Too many colours in PNG, the image may be slightly blurred.TopTop margin (mm):Translations by TranslatorsTrying to remove file '%s' from memory VFS, but it is not loaded!Turkish (ISO-8859-9)TypeType a font name.Type a size in points.Type mismatch in argument %u.Type must have enum - long conversionType operation "%s" failed: Property labeled "%s" is of type "%s", NOT "%s".UPUS Std Fanfold, 14 7/8 x 11 inUS-ASCIIUnable to add inotify watchUnable to add kqueue watchUnable to associate handle with I/O completion portUnable to get events from kqueueUnable to initialize GTK+, is DISPLAY set properly?Unable to initialize Hildon programUnable to open requested HTML document: %sUnable to play sound asynchronously.Unable to remove inotify watchUnable to remove kqueue watchUndeleteUnderlineUnderlinedUndoUndo last actionUnexpected characters following option '%s'.Unexpected parameter '%s'UnicodeUnicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)Units for the bottom border width.Units for the bottom margin.Units for the bottom outline width.Units for the left border width.Units for the left margin.Units for the left outline width.Units for the object height.Units for the object width.Units for the right border width.Units for the right margin.Units for the right outline width.Units for the top border width.Units for the top outline width.UnknownUnknown DDE error %08xUnknown Object passed to GetObjectClassInfoUnknown Property %sUnknown TIFF resolution unit %d ignoredUnknown dynamic library errorUnknown encoding (%d)Unknown long option '%s'Unknown name or named argument.Unknown option '%s'Unmatched '{' in an entry for mime type %s.Unnamed commandUnsupported clipboard format.Unsupported theme '%s'.UpUpper case lettersUpper case roman numeralsUsage: %sUse the current alignment setting.Valid pointer to native data view control does not existValidation conflictValueValue must be %s or higher.Value must be %s or less.View files as a detailed viewView files as a list viewViewsWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHTWaiting for IO on epoll descriptor %d failedWarning: Western European (ISO-8859-1)Western European with Euro (ISO-8859-15)Whether the font is underlined.Whole wordWhole words onlyWin32 themeWin32s on Windows 3.1Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arabic (CP 1256)Windows Baltic (CP 1257)Windows CE (%d.%d)Windows Central European (CP 1250)Windows Cyrillic (CP 1251)Windows Greek (CP 1253)Windows Hebrew (CP 1255)Windows Korean (CP 949)Windows MEWindows Thai (CP 874)Windows Turkish (CP 1254)Windows Western European (CP 1252)Windows/DOS OEM (CP 437)Write error on file '%s'XML parsing error: '%s' at line %dXPM: Malformed pixel data!XPM: incorrect colour description in line %dXPM: incorrect header format!XPM: malformed colour definition '%s' at line %d!XPM: no colors left to use for mask!XPM: truncated image data at line %d!YesYou cannot Clear an overlay that is not initedYou cannot Init an overlay twiceYou cannot add a new directory to this section.You have entered invalid value. Press ESC to cancel editing.Zoom &InZoom &OutZoom InZoom OutZoom to &Fita DDEML application has created a prolonged race condition.a DDEML function was called without first calling the DdeInitialize function, or an invalid instance identifier was passed to a DDEML function.a client's attempt to establish a conversation has failed.a memory allocation failed.a parameter failed to be validated by the DDEML.a request for a synchronous advise transaction has timed out.a request for a synchronous data transaction has timed out.a request for a synchronous execute transaction has timed out.a request for a synchronous poke transaction has timed out.a request to end an advise transaction has timed out.a server-side transaction was attempted on a conversation that was terminated by the client, or the server terminated before completing a transaction.a transaction failed.altan application initialized as APPCLASS_MONITOR has attempted to perform a DDE transaction, or an application initialized as APPCMD_CLIENTONLY has attempted to perform server transactions.an internal call to the PostMessage function has failed. an internal error has occurred in the DDEML.an invalid transaction identifier was passed to a DDEML function. Once the application has returned from an XTYP_XACT_COMPLETE callback, the transaction identifier for that callback is no longer valid.assuming this is a multi-part zip concatenatedattempt to change immutable key '%s' ignored.bad arguments to library functionbad signaturebad zipfile offset to entrybinaryboldbuffer is too small for Windows directory.can't close file '%s'can't close file descriptor %dcan't commit changes to file '%s'can't create file '%s'can't delete user configuration file '%s'can't determine if the end of file is reached on descriptor %dcan't execute '%s'can't find central directory in zipcan't find length of file on file descriptor %dcan't find user's HOME, using current directory.can't flush file descriptor %dcan't get seek position on file descriptor %dcan't load any font, abortingcan't open file '%s'can't open global configuration file '%s'.can't open user configuration file '%s'.can't open user configuration file.can't re-initialize zlib deflate streamcan't re-initialize zlib inflate streamcan't read from file descriptor %dcan't remove file '%s'can't remove temporary file '%s'can't seek on file descriptor %dcan't write buffer '%s' to disk.can't write to file descriptor %dcan't write user configuration file.checksum errorchecksum failure reading tar header blockcmcompression errorconversion to 8-bit encoding failedctrldatedecompression errordefaultdoubledump of the process state (binary)eighteentheightheleventhentry '%s' appears more than once in group '%s'error in data formaterror opening '%s'error opening fileerror reading zip central directoryerror reading zip local headererror writing zip entry '%s': bad crc or lengthfailed to flush the file '%s'fifteenthfifthfile '%s', line %d: '%s' ignored after group header.file '%s', line %d: '=' expected.file '%s', line %d: key '%s' was first found at line %d.file '%s', line %d: value for immutable key '%s' ignored.file '%s': unexpected character %c at line %d.filesfirstfont sizefourteenthfourthgenerate verbose log messagesimageincomplete header block in tarincorrect event handler string, missing dotincorrect size given for tar entryinvalid data in extended tar headerinvalid message box return valueinvalid zip fileitaliclightlocale '%s' cannot be set.midnightnineteenthninthno DDE error.no errorno fonts found in %s, using builtin fontnonamenoonnot implementednumobjects cannot have XML Text Nodesout of memorypercentprocess context descriptionptpxread errorreading zip stream (entry %s): bad crcreading zip stream (entry %s): bad lengthreentrancy problem.secondseek errorseventeenthseventhshiftshow this help messagesixteenthsixthspecify display mode to use (e.g. 640x480-16)specify the theme to usestored file length not in Zip headerstrtar entry not opentenththe response to the transaction caused the DDE_FBUSY bit to be set.thirdthirteenthtodaytomorrowtrailing backslash ignored in '%s'translator-creditstwelfthtwentiethunderlinedunexpected " at position %d in '%s'.unexpected end of fileunknownunknown class %sunknown errorunknown error (error code %08x).unknown seek originunknown-%dunnamedunnamed%dunsupported Zip compression methodusing catalog '%s' from '%s'.write errorwxGetTimeOfDay failed.wxPrintout::GetPageInfo gives a null maxPage.wxWidget control pointer is not a data view pointerwxWidgets could not open display for '%s': exiting.wxWidgets could not open display. Exiting.xxxxyesterdayzlib error %d~Project-Id-Version: wxWidgets 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2013-08-23 18:18+0200 PO-Revision-Date: 2013-09-29 14:09+0100 Last-Translator: Grzegorz Zlotowicz Language-Team: wxWidgets translators Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2; X-Generator: Poedit 1.5.7 Proszę przesłać ten raport do autora programu, dziękuję! Dziękujemy i przepraszamy za niedogodności! (kopia %d z %d) (błąd %ld: %s) (w module "%s") - PodglądpogrubionykursywalekkiKoperta #10, 4 1/8 x 9 1/2 caliKoperta #11, 4 1/2 x 10 3/8 caliKoperta #12, 4 3/4 x 11 caliKoperta #14, 5 x 11 1/2 caliKoperta #9, 3 7/8 x 8 7/8 cali%d z %lu%i z %i%ld bajt%ld bajty%ld bajtów%lu z %lu%s (lub %s)%s Błąd%s InformacjaPreferencje %s%s Ostrzeżenie%s nie pasuje nagłówek tar do wpisu '%s'%s pliki (%s)|%sInform&acje&Bieżący rozmiar&Po paragrafie:&WyrównanieZ&astosujZ&astosuj styl&Rozmieść ikony&Rosnąco&Wstecz&Na podstawie:&Przed paragrafem:Kolor &tła:Pogru&biony&Dolny&Dolny:&Blok&Styl wypunktowania:&CD-Rom&Anuluj&Kaskada&Komórka&Kod znaku:Wy&czyśćZam&knijK&olor:&Konwertuj&Kopiuj&Kopiuj URL&Dostosuj...Po&dgląd raportu błędów:&Usuń&Usuń styl...&Malejąco&SzczegółyW &dół&Edytuj&Edytuj styl...&Uruchom&Plik&ZnajdźZa&kończTryb &ruchomy:&Dyskietka&Rozmiar czcionki:&Czcionka dla poziomu...&Czcionka:&Dalej&Od:&Dysk twardy&Wysokość:&Pomoc&Ukryj szczegóły&Początek&Wcięcia (w dziesiątych częściach mm)&Nieokreślony&Indeks&Info&Kursywa&Skocz do&Wyrównanie obustronne&Ostatni&Lewy&Lewy:Poziom &listy:&DziennikPrz&enieś&Przenieś obiekt do:&Sieć&Nowy&Następne&Dalej >&Następny akapit&Następna porada&Następny styl:&Nie&Uwagi:&Numer:&OK&Otwórz...Poziom &kontur:&Podział stronyWkl&ej&Obraz&Rozmiar punktu:&Pozycja (w dziesiątych częściach mm):&Tryb pozycji:&Preferencje&Poprzednie&Poprzedni akapit&Drukuj...&Właściwości&Wyjście&Ponów&Ponów &Zmień nazwę stylu...&Zastąp&Ponowienie numeracji&Przywróć&Prawy&Prawy:Zapi&szZapisz &Jako&Zobacz szczegóły&Pokazuj porady przy uruchamianiu&Rozmiar&Rozmiar:&Pomiń&Odstępy (w dziesiątych częściach mm)&Sprawdzanie pisowni&Stop&Przekreślenie&Styl:&Style:&Podzbiór:&Symbol:&Tabela&Góra&Góra:&Podkreślony&Podkreślenie:&Cofnij&Cofnij &Cofnij wcięcie&W górę&Wyrównanie pionowe:&Widok...&Waga&Szerokość:&Okno&Tak'%s' ma nadmiarowe '..', zignorowane.'%s' jest nieprawidłowy'%s' nie jest poprawną wartością numeryczną opcji '%s'.'%s' nie jest prawidłowym katalogiem komunikatów.'%s' jest prawdopodobnie buforem binarnym.'%s' powinno być numeryczne.'%s' powinien zawierać tylko znaki ASCII.'%s' powinien zawierać tylko wartości znakowe.'%s' powinien zawierać tylko wartości znakowe lub numeryczne.'%s' powinien zawierać tylko cyfry.(*)(Pomoc)(Brak)(Normalny tekst)(zakładki)(beznazwy)**)+, wydanie 64-bitowe-...1.11.21.31.41.51.61.71.81.910 x 11 cali10 x 14 cali11 x 17 cali12 x 11 cali15 x 11 cali2Koperta 6 3/4, 3 5/8 x 6 1/2 cali9 x 11 cali: plik nie istnieje!: nieznany zestaw znaków: nieznane kodowanie< &Wstecz<ŁĄCZE>Pogrubiona kursywa.
    pogrubiona kursywa z podkreśleniem
    Pogrubienie. Kursywa. >Raport błędów został wygenerowany w katalogu Raport błędów został wygenerowany. Znajduje się wNie pusta kolekcja musi składać się z węzłów typu 'element'Standardowa nazwa wypunktowania.Arkusz A0, 841 x 1189 mmArkusz A1, 594 x 841 mmA2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Poprzecznie 322 x 445 mmA3 Obrócone 420 x 297 mmA3 Poprzecznie 297 x 420 mmArkusz A3, 297 x 420 mmA4 Extra 9.27 x 12.69 caliA4 Plus 210 x 330 mmA4 Obrócone 297 x 210 mmA4 Poprzecznie 210 x 297 mmArkusz A4, 210 x 297 mmMały arkusz A4, 210 x 297 mmA5 Extra 174 x 235 mmA5 Obrócone 210 x 148 mmA5 Poprzecznie 148 x 210 mmArkusz A5, 148 x 210 mmA6 105 x 148 mmA6 Obrócone 148 x 105 mmABCDEFGabcdefg12345DODAJASCIIO %sAbsolutneDodajDodaj kolumnęDodaj bieżącą stronę do listy zakładekDodaj wierszDodaj do kolorów niestandardowychDodawanie książki %sZaawansowaneZa paragrafem:Wyrównanie do lewejWyrównanie do prawejWszystkoWszystkie pliki (%s)|%sWszystkie pliki (*)|*Wszystkie pliki (*.*)|*.*Wszystkie styleTryb AlfabetycznyZarejestrowany wcześniej obiekt przekazany do funkcji SetObjectClassInfoJuż łączy z ISP.I zawiera następujące pliki: Plik animacyjny nie jest typu %ld.Dołączyć dziennik do pliku '%s' (wybierając [Nie] zastąpisz go)?AplikacjaArabskiArabski (ISO-8859-6)Nie znaleziono argumentu %u.ArtyściRosnącoWłaściwościDostępne czcionki.B4 (ISO) 250 x 353 mmB4 (JIS) Obrócone 364 x 257 mmKoperta B4, 250 x 353 mmArkusz B4, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Obrócone 257 x 182 mmB5 (JIS) Poprzecznie 182 x 257 mmKoperta B5, 176 x 250 mmArkusz B5, 182 x 257 mmB6 (JIS) 128 x 182 mmB6 (JIS) Obrócone 182 x 128 mmKoperta B6, 176 x 125 mmWSTECZBMP: Nie można przydzielić pamięci.BMP: Nie można zapisać nieprawidłowego obrazu..BMP: Nie można zapisać mapy kolorów RGB.BMP: Nie można zapisać danych.BMP: Nie można zapisać nagłówka pliku (Bitmap).BMP: Nie można zapisać nagłówka pliku (BitmapInfo).BMP: wxImage nie ma własnej wxPalette.TłoKolor &tłaKolor tłaBałtycki (ISO-8859-13)Bałtycki (stary) (ISO-8859-4)Przed paragrafem:BitmapBitmap renderer nie mógł wyświetlić wartości; typ wartości:PogrubionyObramowanieRamkiDolnyDolny margines (mm):&Właściwości blokuStyle blokuPrzeglądaj&Wyrównanie wypunktowania:Styl wypunktowaniaWypunktowaniaArkusz C, 17 x 22 cali&WyczyśćK&olor:Koperta C3, 324 x 458 mmKoperta C4, 229 x 324 mmKoperta C5, 162 x 229 mmKoperta C6, 114 x 162 mmKoperta C65, 114 x 229 mmANULUJCAPSCD-RomObsługa CHM obecnie wspiera tylko pliki lokalne!WYCZYŚĆPOLECENIE&Duże literyNie można &cofnąć Nie można automatycznie określić formatu obrazu dla nieprzeszukiwalnego wejścia.Nie można zamknąć klucza rejestru '%s'Nie można kopiować wartości nieobsługiwanego typu %d.Nie można utworzyć klucza rejestru '%s'Nie można utworzyć wątkuNie można utworzyć okna klasy '%s'Nie można usunąć klucza '%s'Nie można usunąć pliku INI '%s'Nie można usunąć wartości '%s' z klucza '%s'Nie można wyliczyć podkluczy klucza '%s'Nie można wyliczyć wartości klucza '%s'Nie można wyeksportować wartości nieobsługiwanego typu %d.Nie można znaleźć bieżącej pozycji w pliku '%s'Nie można uzyskać informacji o kluczu rejestru '%s'Nie można zainicjować strumienia kompresji biblioteki zlib.Nie można zainicjować strumienia dekompresji biblioteki zlib.Nie można monitorować zmian w nieistniejącym folderze "%s".Nie można otworzyć klucza rejestru '%s'Nie można czytać z dekompresowanego strumienia: %sNie można odczytać dekompresowanego strumienia: nieoczekiwany koniec w strumieniu.Nie można odczytać wartości '%s'Nie można odczytać wartości klucza '%s'Nie można zapisać obrazu do pliku '%s': nieznane rozszerzenie.Nie można zapisać zawartości dziennika w pliku.Nie można zmienić priorytetu wątkuNie można nadać wartości '%s'Nie można zapisywać do kompresowanego strumienia: %sZrezygnujNie można utworzyć muteksu.Nie można utworzyć nowego ID kolumny. Prawdopodobnie została osiągnięta maks. liczba kolumn.Nie można wyliczyć plików '%s'Nie można wyliczyć plików w katalogu '%s'Nie można znaleźć aktywnego połączenia dialup: %sNie można znaleźć lokalizacji pliku książki adresowejNIe można znaleźć aktywnej instancji "%s"Nie można uzyskać zakresu priorytetów strategii harmogramowania %d.Nie można pobrać nazwy serweraNie można pobrać oficjalnej nazwy serweraNie można rozłączyć - brak aktywnego połączenia dialup.Nie można zainicjować OLENie można wczytać ikony z '%s'.Nie można wczytać zasobów z pliku '%s'.Nie można wczytać zasobów z pliku '%s'.Nie można otworzyć dokumentu HTML: %sNie można otworzyć książki pomocy HTML: %sNie można otworzyć pliku spisu treści: %sNie można otworzyć pliku dla drukowania postscriptowego!Nie można otworzyć pliku indeksowego: %sNie można wczytać zasobów z pliku '%s'.Nie można wydrukować pustej strony.Nie można odczytać nazwy typu z '%s'!Nie można wznowić wątku %luNie można wznowić wątku %lxNie można uzyskać strategii harmonogramowania wątków.Nie można ustawić lokalizacji na język "%s".Nie można wystartować wątku: błąd zapisu TLS.Nie można zawiesić wątku %luNie można zawiesić wątku %lxNie można czekać na zakończenie wątkuUwzględniaj wielkość literTryb skategoryzowany&Właściwości komórkiCeltycki (ISO-8859-14)wyś&rodkowanyWyrównanie do środkaŚrodkowoeuropejski (ISO-8859-2)Wyrównanie do środkaWyśrodkowanie tekstu.wyśrodkowany&Wybierz...Zmień styl listyZmień styl obiektuZmień właściwościZmień stylZmiany nie zostaną zapisane, aby uniknąć nadpisania istniejącego pliku "%s"Style znakuZaznacz aby dodać kropkę po wypunktowaniu.Zaznacz aby dodać prawy nawias.Zaznacz aby dołączyć wypunktowanie w nawiasach.Zaznacz aby pogrubić czcionkę.Zaznacz aby uzyskać kursywę czcionki.Zaznacz aby podkreślić czcionkę.Zaznacz aby ponownie uruchomić numerację.Zaznacz aby pokazać linię poprzez tekst.Zaznacz aby wyświetlić tekst w dużych literach.Zaznacz aby wyświetlić tekst w dużych literach.Zaznacz aby wyświetlić tekst w indeksie dolnym.Zaznacz aby wyświetlić tekst w indeksie górnym.Wybierz ISP do połączeniaWybierz katalogWybierz plikWybierz kolorWybierz czcionkęZam&knijKlasa niezarejestrowana.Wyczyść zawartość dziennikaKliknij, aby zastosować wybrany styl.Kliknij, aby wyszukać symbol.Kliknij, aby anulować zmiany czcionki.Anulowanie wyboru czcionkiKliknij, aby zmienić kolor czcionki.Kliknij, aby zmienić kolor tła tekstu.Kliknij, aby zmienić kolor tekstu.Kliknij, aby wybrać czcionkę dla tego poziomu.Kliknij, aby zamknąć to okno.Kliknij, aby potwierdzić zmiany czcionki.Potwierdzenie wyboru czcionkiKliknij, aby utworzyć nowy styl bloku.Kliknij, aby utworzyć nowy styl znaków.Kliknij, aby utworzyć nowy styl listy.Kliknij, aby utworzyć nowy styl paragrafu.Kliknij, aby utworzyć nową pozycję karty.Kliknij, aby usunąć wszystkie pozycje kart.Kliknij, aby usunąć wybrany styl.Kliknij, aby usunąć wybraną pozycję karty.Kliknij, aby edytować wybrany styl.Kliknij, aby zmienić nazwę wybranego stylu.ZamknijZamknij wszystkoZamknij bieżący dokumentZamknij to oknoKolorOkno wyboru koloru nie powiodło się z błędem %0lx.Kolor:Kolumna nie mogła być dodana.Opis kolumny nie może być zainicjowany.Nie znaleziono indeksu kolumny.Szerokość kolumny nie może być ustalonaSzerokość kolumny nie może być ustawiona.Argument wiersza polecenia %d nie może zostać zamieniony na Unicode i zostanie zignorowany.Kompozycje nie są wspierane w tym systemie, proszę je włączyć w managerze.Skompresowane pliki pomocy HTML Help (*.chm)|*.chm|KomputerNazwa pozycji konfiguracji nie może zaczynać się od '%c'.PotwierdźPotwierdź uaktualnienie rejestruŁączenie...ZawartośćNie działa konwersja do zestawu znaków '%s'.KonwertujZawartośćSkopiowano do schowka:"%s"Kopie:KopiujKopiuj wybórNie można utworzyć tymczasowego pliku '%s'Nie można określić indeksu kolumny.Nie można określić pozycji kolumnyNie można określić ilości kolumnNie można określić ilości elementówNie można wydzielić %s do %s: %sNie można znaleźć (tab) dla (id)Nie można uzyskać opisu nagłówku.Nie można uzyskać elementów.Nie można pobrać flag właściwości.Nie można pobrać wybranych elementów.Nie odnaleziono pliku '%s'.Nie można usunąć kolumny.Nie można pobrać ilości elementówNie można ustawić wyrównania.Nie można ustawić szerokości kolumny.Nie udało się ustawić katalogu roboczegoNie można ustawić opisu nagłówka.Nie można ustawić ikony.Nie można ustawić maksymalnej szerokości.Nie można ustawić minimalnej szerokości.Nie można ustawić flag własności.Nie można wystartować podglądu dokumentu.Nie można rozpocząć drukowania.Nie można przenieść danych do oknaNie można przechwycić muteksuNie można dodać obrazu do listy obrazów.Nie można utworzyć stoperaNie można utworzyć okna nakładkiNie można policzyć tłumaczeńNie można znaleźć symbolu '%s' w biblioteceNie można uzyskać stylów kreskowania z wxBrush.Nie można pobrać wskaźnika aktualnego wątkuNie można zainicjować kontekstu w oknie nakładkiNie można wczytać obrazu PNG - plik jest uszkodzony lub zabrakło pamięci.Nie można wczytać danych dźwiękowych '%s'.Nie można pobrać nazwy folderuNie można otworzyć dźwięku: %sNie można zarejestrować formatu schowka '%s'.Muteks nie mógł być uwolnionyNie można pobrać informacji o elemencie listy kontroli %d.Nie można zapisać obrazu PNG.Nie można zakończyć wątkuTworzenie kataloguUtwórz nowy katalog&WytnijBieżący katalog:Rozmiar użytkownikaDostosuj kolumnyWytnijWytnij wybórCyrylica (ISO-8859-5)Arkusz D, 22 x 34 caliżądanie danych z serwera DDE nie powiodło sięDECIMALDELDELETENagłówek DIB: kodowanie nie odpowiada rozdzielczości.DIB nagłówek: Wysokość obrazu > 32767 pikseli.Nagłówek DIB: Szerokość obrazu > 32767 pikseli.Nagłówek DIB: Plik z nieznaną rozdzielczością.Nagłówek DIB: Plik z nieznanym kodowaniem.DZIELIĆKoperta DL, 110 x 220 mmDÓŁObiekt danych ma nieprawidłowy formatRender daty nie może renderować wartości; typ wartości:Raport błędów "%s"Wygenerowanie raport błędów nie powiodło się.Generowanie raportu błędów nie powiodło się.DecorativeKodowanie domyślneDomyślna czcionkaDomyślna drukarkaUsuń&Usuń wszystkoUsuń stylUsuń tekstUsuń kolumnęUsuń wybórUsuń pozycjęUsuń wierszUsuń wybórUsuń styl %s?Nieaktualny plik blokujący '%s' został usunięty.Zależność "%s" z modułu "%s" nie istnieje.MalejącoKodowanie domyślnePulpitOpracowane przezProgramiściFunkcje Dial up nie są dostępne, ponieważ serwis zdalnego dostępu (RAS) nie jest zainstalowany na tej maszynie. Zainstaluj go.Czy wiesz że...KatalogiNie można utworzyć katalogu '%s'Nie można usunąć katalogu '%s'Katalog nie istniejeKatalog nie istnieje.Odrzucić zmiany i wczytać ponownie ostatnio zapisaną wersję?Wyświetla wszystkie elementy indeksu zawierające podany łańcuch. Szuka bez uwzględniania wielkości liter.Wyświetl okno dialogowe opcjiWyświetla pomoc podczas przeglądania książek po lewej.Chcesz zastąpić polecenie używane do plików %s z rozszerzeniem "%s" ? Bieżaca wartość to %s, Nowa wartość to %s %1Dokument:Dokumentacja autorstwaAutorzy dokumentacjiNie ZapisujZrobioneZrobione.KropkowanyPodwójna Japońska Pocztówka Obrócona 148 x 200 mmDwukrotnie użyty identyfikator : %dW dółPrzeciągnijArkusz E, 34 x 44 caleENDENTERESCESCAPEWYKONAĆEdytuj pozycjęUpłynęło już:Włącz wartość maksymalnej szerokości.Włącz wartość minimalnej szerokości.Włącz wartość szerokości.Włącz wyrównanie w pionie.Włącza kolor tłaPodaj nową nazwę stylu blokuWprowadź nazwę stylu znakuWprowadź nazwę listy styluPodaj nową nazwę styluWprowadź nazwę stylu paragrafuWprowadź komendę otwierającą plik "%s":Znalezione pozycjeKoperta Invite 220 x 220 mmRozwinięcie zmiennych środowiskowych nie powiodło się: zabrakło '%c' na pozycji '%u' w '%s'.BłądBłąd zamknięcia deskryptora epollBłąd przy tworzeniu kataloguBłąd odczytu obrazu DIB.Błąd w zasobie: %sBłąd odczytu opcji konfiguracji.Błąd zapisu konfiguracji użytkownika.Błąd podczas drukowania:Błąd: Esperanto (ISO-8859-3)Szacowany czas:Przepełniona kolejka zdarzeńPliki wykonywalne (*.exe)|*.exe|UruchomWykonanie polecenia '%s' nie powiodło sięWykonanie polecenia '%s' nie powiodło się; błąd: %ulExecutive, 7 1/4 x 10 1/2 caliEksport klucza rejestrów: plik "%s" już istnieje i nie może zostać nadpisany.Japońska rozszerzona strona kodowa UNIX (EUC-JP)Pobranie '%s' do '%s' nie powiodło się.FNie udało się dostać do pliku blokującego.Nie udało się dodać deskryptora %d do deskryptora epoll %dNie udało się przydzielić koloru dla OpenGLNie udało się zmienić trybu videoNie udało się czyszczenie katalogu raportu błędów "%s"Nie udało się zamknąć pliku.Nie udało się zamknąć pliku blokującego '%s'Nie udało się zamknąć schowka.Nie udało się zamknąć ekranu "%s"Nie udało się połączyć: brakuje użytkownika/hasła.Nie udało się połączyć: brak ISP.Nie udało się zamienić pliku "%s" na Unicode.Nie udało się skopiować treści dialogu do schowka.Nie udało się skopiować wartości rejestru '%s'Nie udało się skopiować zawartości klucza rejestru '%s' do '%s'.Nie udało się skopiować pliku '%s' do '%s'.Nie udało się kopiowanie klucza rejestru '%s' na '%s'.Nie udało się utworzyć łańcucha DDENie udało się utworzyć ramki rodzica MDI.Nie udało się wygenerować nazwy dla pliku tymczasowegoNie udało się utworzyć potokuNie udało się utworzenie instancji "%s"Nie udało się utworzyć połączenia do serwera '%s' na temat '%s'Nie udało się utworzyć kursora.Nie udało się utworzenie katalogu "%s"Nie udało się utworzyć katalogu '%s' (Posiadasz wymagane prawa dostępu?)Nie udało się utworzyć deskryptora epollNie udało się utworzyć pozycji rejestru dla plików '%s'.Nie udało się utworzyć standardowego okna dialogowego wyszukaj/zastąp (kod błędu %d)Nie udało się utworzyć potoku budzącego używanego przez pętlę zdarzeńNie udało się wyświelić dokumentu HTML w kodowaniu %sNie udało się opróżnić schowka.Nie udało się pobranie listy trybów videoNie udało się rozpocząć transakcji doradzającej (advise) z serwerem DDENie udało się nawiązać połączenia dialup: %sNie udało się wykonać '%s' Nie udało się uruchomienie curl, proszę zainstalować go w dostępnym katalogu (PATH).Nie udało się znaleźć połączenia dla regularnego wyrażenia: %sNie udało się usyskać listy ISP: %sNie udało się pobrać danych ze schowkaNie udało się pobrać lokalnego czasu systemowegoNie udało się uzyskać katalogu roboczegoNie udało się zainicjować GUI: brak wbudowanych kompozycji.Nie udało się zainicjować pomocy MS HTML.Nie udało się zainicjować OpenGLNie udało się rozpocząć połączenia dialup: %sNie udało się wstawić tekstu w kontroli.Nie udało się sprawdzenie blokady pliku '%s'Nie udało się zainstalować obsługi sygnałuNie udało połączyć się z wątkiem, potencjalny wyciek pamięci - uruchom program ponownieNie udało się zabić procesu %dNie udało się wczytanie obrazu "%s" z zasobów.Nie udało się wczytanie ikony "%s" z zasobów.Nie udało się wczytanie obrazu %%d z pliku '%s'.Nie udało się wczytanie obrazu %d ze strumienia.Nie udało się wczytanie obrazu z pliku "%s".Nie udało się załadowanie pliku meta "%s".Nie udało się wczytać mpr.dll.Nie udało się wczytanie zasobu "%s".Nie udało się wczytać biblioteki '%s'.Nie udało się zablokowanie zasobu "%s".Nie udało się zablokować pliku blokującego '%s'Nie można zmienić hasła %d w deskryptorze epoll %dNie udało się zmodyfikować czasów pliku '%s'Nie udało się monitorować kanałów wejściowych/wyjściowychNie udało się otworzyć '%s' do odczytuNie udało się otworzyć '%s' do zapisuNie udało się otworzyć archiwum CHM '%s'.Nie udało się otworzyć URL "%s" w domyślnej przeglądarce.Nie udało się otwarcie monitoringu katalogu "%s".Nie udało się otworzyć ekranu "%s".Nie udało się otworzyć pliku tymczasowego.Nie udało się otworzyć schowka.Nie udało się przygotowanie odtwarzania "%s".Nie udało się umieścić danych w schowkuNie udało sie odczytać identyfikatora z pliku blokującego.Nie udało się odczytać opcji konfiguracji.Nie udało się wczytanie dokumentu z pliku "%s".Nie udało się czytać z potoku budzącego Nie udało się przekierować wejścia/wyjścia procesu potomnego.Nie udało się przekierować wejścia/wyjścia procesu potomnegoNie udało się zarejestrować serwera DDE '%s'Nie udało się zapamiętać kodowania dla zestawu znaków '%s'Nie udało się usunięcie pliku raportu błędów "%s"Nie udało się usunąć pliku blokującego '%s'Nie udało się usunąć nieaktualnego pliku blokującego '%s'.Nie udało się zmienić nazwy wartości rejestru '%s' do '%s'.Nie udało się zmienić nazwy pliku '%s' na '%s', ponieważ plik docelowy już istnieje.Nie udało się zmienić nazwy klucza rejestru '%s' na '%s'.Nie udało się odzyskać danych ze schowka.Nie udało się odczytać czasów pliku '%s'Nie udało się uzyskać tekstu komunikatu błędu RASNie udało się uzyskać listy formatów obsługiwanych przez schowekNie udało się zapisać dokumentu do pliku "%s".Nie udało się zapisać obrazu do pliku "%s".Nie udało się wysłać powiadomienia DDEFTP: Nie udało się ustawić trybu transmisji na '%s'.Nie udało się skorzystać ze schowka.Nie udało się nadanie praw dostępu na blokowanym pliku '%s'Nie udało się nadać praw dostępu pliku tymczasowemuNie udało się ustawić tekstu w kontroli tekstu.Nie udało się zmienić priorytetu wątku na %d.Nie udało się ustawić nieblokowego potoku, program może się zawiesić.Nie udało się odłożyć obrazu '%s' do pamięci VFS!Nie udało się przełączyć potoku budzącego na modus nie-blokującyNie udało się zakończyć wątku.Nie udało się zakończyć transakcji doradzającej (advise) z serwerem DDENie udało się zakończyć połączenia dialup: %sNie udało się zmienić czasów pliku '%s'Nie udało się odblokować pliku blokującego '%s'Nie udało się wyrejestrować serwera DDE '%s'Nie udało się wyrejestrować deskryptora %d z deskryptora epoll %dNie udała się aktualizacja pliku konfiguracyjnego użytkownika.Nie udało się przesłanie raportu błędów (kod błędu %d)Nie udało się zapisać identyfikatora do pliku blokującego '%s'PlikPlik '%s' już istnieje, naprawdę chcesz go zastąpić?Plik '%s' już istnieje. Chcesz go zastąpić?Plik '%s' nie mógł zostać usuniętyNazwa pliku '%s' nie mogła zostać zmieniona '%s'Plik nie może być wczytany.Błąd plikowyPlik o tej nazwie już istnieje.PlikiPliki (%s)FiltrZnajdźPierwsza stronaCzcionka o stałej szerokości:Ustalony rozmiar tekstu.
    pogrubienie kursywa PływającyDyskietkaFolio, 8 1/2 x 13 caliCzcionka&Waga czcionki:Rozmiar czcionki:&Styl czcionki:Czcionka:Plik indeksu czcionek %s znikł podczas ładowania czcionek.Rozwidlenie nie powiodło sięPrzekazywanie właściwości 'href' nie jest wspieraneZnaleziono %i odpowiednik(i/ów)Od:GIF: Brak obrazu o podanym indeksie.GIF: strumień daych wygląda na obcięty.GIF: błąd w formacie obrazu GIF.GIF: za mało pamięci.GIF: neznany błąd !!!GTK+ zainstalowana na tej maszynie jest zbyt stara i nie wspiera kompozycji ekranu, proszę zainstalować GTK+ 2.12 lub nowszą.Kompozycja GTK+OgólnePostScriptSkładanka German Legal, 8 1/2 x 13 caliSkładanka German Std, 8 1/2 x 12 caliFunkcja GetProperty wywołana bez poprawnego modułu pobierającegoFunkcja GetPropertyCollection wywołana w ogólnym akcesorzeFunkcja GetPropertyCollection wywołana bez poprawnego modułu pobierającegoIdź wsteczIdź dalejIdź poziom wyżej w hierarchi dokumentuIdź do katalogu domowegoIdź do katalogu nadrzędnegoGrafika autorstwaGrecki (ISO-8859-7)GrooveFormat Gzip nie jest wspierany przez tę wersję biblioteki zlibPOMOCHOMEPlik projektu pomocy HTML Help (*.hhp)|*.hhp|HTML: kotwica %s ie istnieje.Pliki HTML (*.html;*.htm)|*.html;*.htm|Dysk twardyHebrajski (ISO-8859-8)PomocOpcje przeglądarki pomocySpis treściDrukowanie pomocyTematy PomocyPakiety pomocy (*.htb)|*.htb|Pakiety pomocy (*.zip)|*.zip|Nie znaleziono katalogu pomocy "%s".Nie znaleziono pliku pomocy "%s".Pomoc: %sUkryj %sUkryj inneUkryj to powiadomienie.Katalog początkowyKatalog początkowyJak obiekt będzie pływać względem tekstu.ICO: Błąd odczytu maski DIB.ICO: Błąd przy zapisie do pliku.ICO: Obraz jest zbyt wysoki jak na ikonę.ICO: Obraz jest zbyt szeroki jak na ikonę.ICO: Brak ikony o podanym indeksie..IFF: strumień daych wygląda na obcięty.IFF: błąd w formacie obrazu IFF.IFF: za mało pamięci.IFF: nieznany błąd !!!INSWSTAWISO-2022-JPRenderer ikony i tekstu nie może renderować wartości; typ wartości:Jeżeli to możliwe, spróbuj zmodyfikować parametry układu, aby uczynić wydruk węższy.Jeśli masz jakiekolwiek dodatkowe informacje odnośnie raportowanego błędu, proszę dołącz je tu:Jeśli chcesz całkowicie pominąć raport błędów, wybierz "Anuluj", ale rozważ że to może utrudnić usprawnianie oprogramowania, w związku z tym zachęcamy do kontynuowania raportowania błędów. Wartiść "%s" klucza "%s" zignorowana.Błędna Klasa Obiekty (nie typu wxEvtHandler) jako Źródło ZdarzeniaNieprawidłowa Liczba Parametrów w Metodzie ConstructObjectNieprawidłowa Liczba Parametrów w Metodzie CreateNiedozwolona nazwa katalogu.Niedozwolona specyfikacja pliku.Obraz i maska mają różne rozmiary.Nie jest to obraz typu %d.Nie jest możliwe utworzenie kontrolki rich edit, użyj zamiast tego prostego 'text control'. Przeinstaluj riched32.dllNie jest możliwe uzyskanie wejścia procesu potomnegoUzyskanie praw dostępu do pliku '%s' jest niemożliweZastąpienie pliku '%s' jest niemożliweNie jest możliwe nadanie praw dostępu plikowi '%s'Nieprawidłowy rozmiar ramki GIF (%u, %d) dla ramki #%uNieprawidłowa liczba argumentów.WcięcieWcięcia i odstępyIndeksHinduski (ISO-8859-12)InfoInicjalizacja nie powiodła się powodując wyjście.WstawićWstaw poleWstaw obrazWstaw obiektWstaw tekstWstawia łamanie strony przed akapitem.Nieprawidłowa opcja GTK+ wiersza poleceń, należy użyć "%s --help"TIFF: Brak obrazu o podanym indeksie.Nieprawidłowa pozycja widoku danychBłędna specyfikacja trybu wyświetlania '%s'.Niedozwolona specyfikacja "geometry" '%s'.Nieprawidłowe zdarzenie inotify dla "%s"Nieprawidłowy plik blokujący '%s'.Nieprawidłowy katalog komunikatów.Błędny lub Pusty Identyfikator Obiektu przekazany do funkcji GetObjectClassInfoBłędny lub Pusty Identyfikator Obiektu przekazany do funkcji HasObjectClassInfoNieprawidłowe wyrażenie regularne '%s': %sNieprawidłowa wartość %ld dla klucza logicznego"%s" w pliku konfiguracyjnym.KursywaKoperta włoska, 110 x 230 mmJPEG: Nie można wczytać - prawdopodobnie plik jest uszkodzony.JPEG: Nie można zapisać obrazu.Japońska Podwójna Pocztówka 200 x 148 mmJapońska Koperta Chou #3Japońska Koperta Chou #3 ObróconaJapońska Koperta Chou #4Japońska Koperta Chou #4 ObróconaJapońska Koperta Kaku #2Japońska Koperta Kaku #2 ObróconaJapońska Koperta Kaku #3Japońska Koperta Kaku #3 ObróconaJapońska Koperta You #4Japońska Koperta You #4 ObróconaJapońska Pocztówka 100 x 148 mmJapońska Pocztówka Obrócona 148 x 100 mmSkocz doWyrównanie obustronneWyjustuj tekst w lewo i w prawo.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UP&Odstęp między wierszami:LEWOPejzażOstatniOstatnia stronaLast repeated message ("%s", %lu time) wasn't outputLast repeated message ("%s", %lu times) wasn't outputLast repeated message ("%s", %lu times) wasn't outputLedger, 17 x 11 caliLewoLewo (&pierwsza linijka):Lewy margines (mm):Lewe dostosowanie tekstu.Legal Extra 9 1/2 x 15 caliLegal, 8 1/2 x 14 caliList Extra 9 1/2 x 12 caliList Extra Poprzecznie 9.275 x 12 caliList Plus 8 1/2 x 12.69 calaList Obrócony 11 x 8 1/2 calaMały list, 8 1/2 x 11 caliList Poprzecznie 8 1/2 x 11 caliList, 8 1/2 x 11 caliLicencjaCieńszyLinijka %lu pliku mapy "%s" posiada nieprawidłową składnię, pominięta.Odstęp między wierszami:Odsyłacz zawierający '//' przekonwertowano do adresu bezwzględnego.Styl listyStyle listyWielkość czcionki listy w punktach.Lista dostępnych czcionek.Wczytaj plik %sWczytywanie : Blokowany plik '%s' ma niewłaściwego właściciela.Blokowany plik '%s' ma niewłaściwe uprawnienia.Log został zapisany do pliku '%s'.Małe literyMałe litery cyframi rzymskimipotomek MDIMENUFunkcje pomocy dla MS HTML Help nie są dostępne, ponieważ biblioteka MS HTML Help nie jest zainstalowana na tej maszynie. Zainstaluj ją.&MaksymalizujMacOrmiańskiMacBengalskiMacBirmańskiMacŚrodkowoEuroRzymskiMacChińskiUprMacChińskiTradMacChorwackiMacCyrylicaMacEtiopskiMacCeltyckiMacGruzińskiMacGreckiMacGudżaratiMacHebrajskiMacIslandzkiMacJapońskiMacKoreańskiMacMongolskiMacTamilskiMacTajskiMacTybetańskiMacTureckiMacWietnamskiDokonaj wyboru:MarginesyUwzględniaj wielkość literMaksymalna wysokość:Maksymalna szerokość:Błąd odtwarzania mediów: %sPamięć VFS już zawiera plik '%s'!MenuKomunikatKompozycja metalowaNie odnaleziono metody lub właściwości.Mi&nimalizujMinimalna wysokość:Min szerokość:Brak wymaganego parametru.ModernZmodyfikowanyInicjalizacja modułu "%s" nie powiodła sięKoperta Monarch, 3 7/8 x 7 1/2 calaMonitorowanie zmian pojedynczych plików nie jest aktualnie obsługiwane.Przenieś w dółPrzenieś w góręPrzenosi obiekt do następnego akapitu.Przenosi obiekt do poprzedniego paragrafu.Właściwości wielu komórekNUM_LOCKNazwaSiećNowy styl &bloku...Nowy styl &znaku...Nowy styl &listy...Nowy styl ¶grafu...Nowy stylNowy katalogNowa pozycjaNowaNazDalejNastępna stronaNieBrak procedury obsługi animacji dla typu %ld.Brak procedury obsługi bitmapy dla typu %d.Nie istnieje kolumny.Nie istnieje kolumny dla określonej pozycji kolumny.Nie ma ustawionej domyślnej aplikacji dla plików HTML.Nie znaleziono pozycji.Brak czcionki do wyświelenia tekstu w kodowaniu '%s', jednak dostępne jest alternatywne kodowanie '%s'. Chesz użyć tego kodowania (możesz także wybrać inne)?Brak czcionki do wyświelenia tekstu w kodowaniu '%s'. Chcesz wskazać czcionkę do użycia (inaczej tekst może nie być wyświetlony poprawnie)?Brak procedury obsługi typu animacji.Brak procedury obsługi grafiki.Brak procedury obsługi obrazów typu %d.Brak procedury obsługi obrazów typu %s.Jeszcze nie znaleziono pasującej stronyNie ma rendera lub nieprawidłowy typ rendera określonego dla własnych danych kolumny.Nie określono rendera dla kolumny.Brak dźwiękuBrak nieużywanych kolorów w maskowanym obrazie.Brak wolnych kolorów w obrazie.Znaleziono nie ważne mapowania w pliku "%s".Nordycki (ISO-8859-10)NormalnyZwykły tekst
    i podkreślony. Normalna czcionka:NiedostępneNie podkreślonyNote, 8 1/2 x 11 caliUwagaIlość kolumn nie może być ustalonaNumerowane konturyOKBłąd automatyzacji OLE w %s: %s&Właściwości obiektuImplementacja obiektu nie obsługuje nazywanych argumentów.Obiekty muszą posiadać właściwość typu 'id'Otwieranie PlikuOtwórz dokument HTMLOtwieranie pliku "%s"Nie powiodła się funkcja "%s" OpenGL: %s (błąd %d)Operacja nie jest dozwolona.Opcja '%s' wymaga podania wartości.Opcja '%s': nie można przekształcić '%s' na datę.OpcjeOrientacjaPo za identyfikatorami okna. Zalecane jest zamknięcie aplikacji.konturPrzepełnienie podczas wymuszania wartości argumentów.PAGEDOWNPAGEUPPAUZAPCX: Nie można przydzielić pamięci.PCX: nieobsługiwany format obrazu.PCX: nieprawidłowy obrazPCX: To nie jest plik w formacie PCX.PCX: nieznany błąd !!!PCX: zbyt niski numer wersji.PGDNPGUPPNM: Nie można przydzielić pamięci.PNM: Nieznany format pliku.PNM: Plik wygląda na obcięty.PRC 16K 146 x 215 mmPRC 16K ObróconyPRC 32K 97 x 151 mmPRC 32K ObróconyPRC 32K(Big) 97 x 151 mmPRC 32K(Big) ObróconyKoperta PRC #1, 102 x 165 mmKoperta PRC #1 Obrócona, 165 x 102 mmKoperta PRC #10 324 x 458 mmKoperta PRC #10 Obrócona 458 x 324 mmKoperta PRC #2 102 x 176 mmKoperta PRC #2 Obrócona 176 x 102 mmKoperta PRC #3 125 x 176 mmKoperta PRC #3 Obrócona 176 x 125 mmKoperta PRC #4 110 x 208 mmKoperta PRC #4 Obrócona 208 x 110 mmKoperta PRC #5 110 x 220 mmKoperta PRC #5 Obrócona 220 x 110 mmKoperta PRC #6 120 x 230 mmKoperta PRC #6 Obrócona 230 x 120 mmKoperta PRC #7 160 x 230 mmKoperta PRC #7 Obrócona 230 x 160 mmKoperta PRC #8 120 x 309 mmKoperta PRC #8 Obrócona 309 x 120 mmKoperta PRC #9 229 x 324 mmKoperta PRC #9 Obrócona 324 x 229 mmWYDRUKStrona %dStrona %d z %dUstawienia stronyUstawienia stronyStronyRozmiar papieruStyle paragrafuPrzekazano już zarejestrowany obiekt do funkcji SetObjectWklejWklej wybór&OkresUprawnienia&Właściwości obrazuNie udało się utworzyć potoku.Proszę wybrać poprawną czcionkę.Proszę wybrać istniejący plik.Wybierz stronę do wyświetlenia:Wybierz ISP, z którym chcesz się połączyćProszę zainstalować nowszą wersję bliblioteki comctl32.dll (wymagana co najmniej 4.70, zainstalowana %d.%02d) inaczej program nie będzie działał poprawnie.Proszę wybrać kolumny do pokazania i określić ich kolejność:&Rozmiar punktu:Wskaźnik do kontroli widoku danych nie jest prawidłowo ustawiony.Wskaźnik do modelu nie jest prawidłowo ustawiony.PortretPozycjaPytanieplik PostScriptPreferencje&Preferencje...PrzygotowywaniePodgląd:Poprzednia stronaDrukujPodgląd wydrukuAwaria podglądu wydrukuZakres wydrukuUstawienia wydrukuWydruk w kolorzePodgląd wydrukuNie udało się utworzyć podglądu wydruku.Kolejkowanie wydrukówDrukuj stronęDrukuj do plikuDrukarkaPolecenie drukarki:Opcje drukarkiOpcje drukarki:Drukarka...Drukarka:Drukowanie Błąd wydrukuDrukowanie strony %d z %dDrukowanie strony %d...Drukowanie...WydrukPrzetwarzanie raportu błędów nie powiodło się, pozostawiając pliku w katalogu "%s".Render postępu nie może renderować typu wartości; typ wartości:Postęp:WłaściwośćBłąd właściwościQuarto, 215 x 275 mmPytanie&Wyjście z %sZamknij programRETURNPRAWOBłąd odczytu pliku '%s'GotowyPonówPowtórz ostatnią czynnośćOdświeżKlucz rejestru '%s' już istnieje.Klucz rejestru '%s' nie istnieje, nie można zmienić jego nazwy.Klucz rejestru '%s' jest potrzebny do normalnego funkcjonowania systemu, usunięcie go zdestabilizowałoby system: operacja została przerwana.Wartość rejestru '%s' już istnieje.RegularnePozycje związane:Pozostały czas:UsuńUsuń wypunktowanieUsuń bieżącą stronę z listy zakładekWizualizator "%s" ma niezgodną wersję %d.%d i nie może być załadowany.Rendering nie powiodł się.Zmień numerację listy&ZastąpZastąpZastąp &wszystkoZastąp wybórZastąp przez:Wymagane pole informacji jest puste.Zasób '%s' nie jest prawidłowym katalogiem komunikatów.Przywróć zapisanyPrawyPrawy margines (mm):Prawe dostosowanie tekstu.RomanStandardowy styl wypunktowania:SCROLL_LOCKWYBÓRSEPARATORZRZUT EKRANUSPACJASPECJALNYDZIELENIEZapiszZapisz plik %sZapisz J&ako...Zapisz JakoZapisz bieżący dokumentZapisz bieżący dokument pod inną nazwą plikuZapisz zawartość dziennika do plikuScriptSzukajKierunek szukaniaZnajdź:Szukaj we wszystkich plikach pomocyWyszukiwanie...SekcjeBłąd pozycjonowania w pliku '%s'Błąd wyszukiwania w pliku '%s' (stdio nie wspiera olbrzymich plików)&Zaznacz wszystkoZaznacz wszystkoWybierz szablon dokumentuWybierz widok dokumentuWybierz regularną lub pogrubioną czcionkę.Wybierz regularny lub kursywny styl.Wybierz podkreślanie lub bez podkreślania.WybórWybiera poziom listy do edycji.Oczekiwano separatora po opcji '%s'.Usuń styl komórkiFunkcja SetProperty wywołana bez poprawnej moduły ustawiającego właściwośćUstawienie czasu dostępu do katalogów nie jest obsługiwane w tej wersji systemu operacyjnego.Ustawienia...Znalezione kilka dostępnych połączeń dialup, zostanie użyte pierwsze.Pokaż &ukryte katalogiPokazuj &ukryte plikiPokazuje okno OPokaż wszystkoPokaż wszystkie elementy indeksuPokaż ukryte katalogiPokaż/ukryj panel sterowaniaPokazuje podzbiór Unicode.Pokazuje podgląd ustawień wypunktowania.Pokazuje podgląd ustawień czcionki.Pokazuje podgląd czcionki.Pokazuje podgląd ustawień paragrafu.Podgląd czcionki.Prosty czarno-biały motywPojedynczyRozmiarRozmiar:PomińPochylonyNiestety nie można otworzyć tego pliku.Niestety za mało pamięci aby przygotować podgląd.Niestety, nazwa ta jest zajęta. Proszę wybrać inną.Niestety, nieznany format pliku.Dane dźwiękowe są w formacie, który nie jest wspierany.Plik z dźwiękiem '%s' jest w formacie, który nie jest wspierany.OdstępySprawdzanie pisowniStandardStatement, 5 1/2 x 8 1/2 calaStatycznyStatus:StopNieprawidłowa specyfikacja koloru : %sStylOrganizator styluStyl:Indeks &dolnyIndeks &górnySuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSymbol&Czcionka symbolu:SymboleTABTIFF: Nie można przydzielić pamięci.TIFF: Błąd przy wczytywaniu obrazu.TIFF: Błąd odczytu.TIFF: Wystąpił błąd przy zapisie.TIFF: Błąd zapisu.TIFF: Rozmiar obrazu jest wyjątkowo duży.&Właściwości tabeliTabloid Extra 11.69 x 18 caliTabloid, 11 x 17 caliKartyTeletypeSzablonyRender tekstu nie może renderować wartości; typ wartości:Tajski (ISO-8859-11)Serwer FTP nie obsługuje trybu pasywnego.Serwer FTP nie obsługuje komendy PORT.Dostępne style wypunktowania.Dostępne style.Rozmiar dolnego marginesu.Znak wypunktowania.Kod znaku.Nieznany zestaw znaków '%s'. Możesz wybrać inny zestaw aby go zastąpić lub wybierz [Anuluj] jeśli nie można go zastąpić.Format schowka '%d' nie istnieje.Domyślny styl dla następnego paragrafu.Katalog '%s' nie istnieje Utworzyć go teraz?Dokument "%s" nie mieści się na stronie poziomo i będzie ucięty na wydruku. Chcesz kontynuować drukowanie mimo to?Plik '%s' nie istnieje i nie można go otworzyć. Informacja o nim została usunięta z listy ostatnio używanych plików.Wcięcie pierwszego wierszu.Następujące opcje standardowe GTK+ także są obsługiwane: Kolor czcionki.Rodzina czcionki.Czcionka z której pobrać symbol.Rozmiar czcionki.Rozmiar czcionki w punktach.Rozmiar czcionki w punktach lub pikselach .Styl czcionki.Waga czcionki.Lewe wcięcie.Rozmiar lewego marginesu.Odstęp między wierszami.Numer pozycji listy.Wysokość obiektuMaksymalna wysokość obiektuMaksymalna szerokość obiektuMinimalna wysokość obiektuMinimalna szerokość obiektu.Szerokość obiektu.Poziom kontur.Okno dialogowe drukowania zwróciło błąd.Zakres do pokazania.Raport zawiera pliki wymienione niżej. Jeśli którykolwiek z tych plików zawiera prywatne informacje, proszę odznacz go w celu usunięcia go z raportu. Wymagany parametr '%s' nie został podany.Prawidłowe wcięcie.Rozmiar prawego marginesu.Odstępy po paragrafie.Odstępy przed paragrafem.Nazwa stylu.Styl, na którym ten styl jest oparty.Podgląd stylu.System nie może odnaleźć określonego pliku.Pozycja karty.Pozycje karty.Tekst nie może być zapisany..Rozmiar górnego marginesu.Wartość opcji '%s' musi zostać podana.Zainstalowana wersja serwisu zdalnego dostępu (RAS) jest zbyt stara, zainstaluj nowszą (brakująca funkcja to: %s).wxGtkPrinterDC nie może być używany.Nie ma kolumny lub rendera dla określonej kolumny indeksu.Wystąpił błąd podczas konfigurowania strony: powinieneś określić domyślną drukarkę.Ten dokument nie mieści się poziomo na stronie i będzie ucięty na wydruku.Ta platforma nie obsługuje przezroczystości tła.Ten program został skompilowany przy użyciu zbyt starej wersji GTK+, proszę skompilować ponownie z użyciem GTK+ 2.12 or nowszej.Ten system nie wspiera wyboru daty, należy zaktualizować bibliotekę comctl32.dllZainicjowanie modułu wątków nie powiodło się: nie można odłożyć wartości do lokalnej pamięci wątkówZainicjowanie modułu wątków nie powiodło się: nie udało się utworzyć klucza wątkówZainicjowanie modułu wątków nie powiodło się: nie jest możliwe przydzielenie indeksu w lokalnej pamięci wątków.Ustawienie priorytetu wątku jest ignorowane.&Sąsiadująco w poziomieSąsi&adująco w pioniePrzekroczono czas oczekiwania dla serwera FTP, spróbuj trybu pasywnego.Nie powiodło się utworzenie stopera.Porada dniaNiestety, porady nie są dostępne!Do:Aktywny render nie może renderować wartości; typ wartości:Zbyt wiele wezwań EndStyle!Zbyt wiele kolorów w formacie PNG, obraz może być zamazany.GóraGórny margines (mm):Tłumaczenia autorstwaTłumaczePróbą usunięcia pliku '%s' z pamięci VFS, który nie został wczytany!Turecki (ISO-8859-9)TypWpisz nazwę czcionki.Wpisz rozmiar w punktach.Niezgodność typów argumentu %u.Typ musi umożliwiać konswersję enum - longNiepowodzenie operacji typu "%s": właściwość nazwana "%s" jest typu "%s", nie "%s".GÓRASkładanka US Std, 14 7/8 x 11 caliUS-ASCIINie można dodać czujki inotifyNie można dodać czujki kolejkiNie można skojarzyć uchwytu z portem kompletności We/WyNie można pobrać zdarzeń z kolejkiNie można ustawić GTK+, czy jest prawidłowo ustawiony EKRAN?Nie udało się zainicjować programu HildonNie można otworzyć wskazanego dokumentu HTML: %sNie można odtowrzyć dźwięku asynchronicznie.Nie można usunąć czujki inotifyNie można usunąć czujki kolejkiOdzyskajPodkreśleniePodkreślonyCofnijCofnij ostatnią czynnośćNieoczekiwane znaki następujących opcji '%s'.Nieoczekiwany parametr '%s'UnicodeUnicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)jednostki szerokości dolnej ramki.Jednostki dolnego marginesu.Jednostki szerokości dolnego konturu.Jednostki szerokości lewej ramki.Jednostki lewego marginesu.Jednostki szerokości lewego konturu.Jednostki wysokości obiektu.Jednostki szerokości obiektu.Jednostki szerokości prawej ramki.Jednostki prawego marginesu.Jednostki szerokości prawego konturu.Jednostki szerokości górnej ramki.Jednostki szerokości prawego konturu.NieznanyNieznany błąd DDE %08xNieznany obiekt przekazany do funkcji GetObjectClassInfoNieznana właściwość %sZignorowana nieznana jednostka %d rozdzielczości TIFFNieznany błąd biblioteki dynamicznejNieznane kodowanie (%d)Nieznana długa opcja '%s'Nieprawidłowa nazwa lub nazwany argument.Nieznana opcja '%s'Nieodpowiedni '{' w pozycji dla typu mime %s.Polecenie bez nazwyNieobsługiwany format schowka.Nieobsługiwana kompozycja '%s'.W góręDuże literyDuże litery cyframi rzymskimiUżycie: %sUżyj bieżącego dostosowywania ustawień.Aktualny wskaźnik do rodzimego widoku danych kontroli nie istniejeKonflikt kontroli poprawnościWartośćWartość musi wynosić %s lub więcej.Wartość musi wynosić %s lub mniej.Przeglądaj pliki w formie szczegółowej listyPrzeglądaj pliki w formie listyWidokiWINDOWS_LEWOWINDOWS_MENUWINDOWS_PRAWOOczekiwanie na IO w deskryptorze epoll %d nie powiodło sięOstrzeżenie: Zachodnioeuropejski (ISO-8859-1)Zachodnioeuropejski z Euro (ISO-8859-15)Określenie podkreślenia.Całe słowoTylko całe słowaKompozycja Win32Win32s na Windows 3.1Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows arabski (CP 1256)Windows bałtycki (CP 1257)Windows CE (%d.%d)Windows środkowoeuropejski (CP 1250)Windows cyrylica (CP 1251)Windows grecki (CP 1253)Windows hebrajski (CP 1255)Windows koreański (CP 949)Windows MEWindows Thai (CP 874)Windows turecki (CP 1254)Windows zachodnioeuropejski (CP 1252)Windows/DOS OEM (CP 437)Błąd zapisu do pliku '%s'Błąd parsowania XML: '%s' w linii %dXPM: Zniekształcone dane obrazu!XPM: niepoprawny opis koloru w linijce %dXPM: niepoprawna nagłówka formatu!XPM: niepoprawna definicja koloru '%s 'w linijce %d!XPM: nie zostało kolorów dla maski!XPM: obcięte dane obrazu w linijce %d!TakNie można wyczyścić nakładki, która nie jest zainicjowanaNie można uruchomić nakładki podwójnieNie możesz dodać nowego katalogu do tej sekcji.Wprowadzono nieprawidłową wartość. Naciśnij ESC by anulować edycję.Powiększen&ieP&omniejszeniePowiększeniePomniejszenie&Dopasowanie powiększeniaAplikacja DDEML utworzyła przedłużony wyścig (race condition).została wywołana funkcja DDEML bez wcześniejszego wywołania funkcji DdeInitialize, lub do funkcji DDEML przesłano nieprawidłowy identyfikator instancji.próba nawiązania konwersacji przez klienta nie powiodła się.przydzielenie pamięci nie powiodło się.parametr nie przeszedł kontroli poprawności DDEMLupłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji advise.upłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji data.upłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji execute.upłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji poke.upłynął czas oczekiwania na zakończenie trancakcji advise.transakcja server-side próbowała kontynuować konwersację zakończoną przez klienta, lub serwer zakończył pracę przez zakończeniem transakcji.transakcja nie powiodła się.altaplikacja zainicjowana jako APPCLASS_MONITOR usiłowała wykonać transakcję DDE, lub aplikacja zainicjowana jako APPCMD_CLIENTONLY usiłowała wykonać transakcję serwera.wewnętrzne wywołanie funkcji PostMessage zakończyło się niepowodzeniemwystąpił wewnętrzny błąd w DDEML.do funkcji DDEML przesłano nieprawidłowy identyfikator transakcji. Kiedy aplikacja kończy połączenie zwrotne XTYP_XACT_COMPLETE, identyfikator transakcji dla tego połączenia nie jest dłużej ważny.założenie że jest to połączony wieloczęściowy zipzignorowano próbę zmiany niezmiennego klucza '%s'.błędne argumenty funkcji bibliotecznejbłędne oznaczeniebłędne przemieszczenie w pliku zipbinarnypogrubionybufor jest zbyt mały na katalog Windows.nie można zamknąć pliku '%s'nie można zamknąć deskryptora pliku %dnie można zatwierdzić zmian w pliku '%s'nie można utworzyć pliku '%s'nie można usunąć pliku konfiguracyjnego użytkownika '%s'nie można określić czy osiągnięto koniec pliku w deskryptorze %dnie udało się wykonać '%s'nie można znaleźć centralnego katalogu zipnie można znaleźć rozmiaru pliku w deskryptorze pliku %dnie można znaleźć katalogu domowego, zostanie użyty bieżący.nie można opróżnić deskryptora pliku %dnie można odczytać bieżącej pozycji w deskryptorze pliku %dnie można załadować żadnej czcionki, program kończy pracęnie można otworzyć pliku '%s'nie można otworzyć globalnego pliku konfiguracji '%s'.nie można otworzyć pliku konfiguracyjnego użytkownika '%s'.nie można otworzyć pliku konfiguracyjnego użytkownika.nie można ponownie zainicjować strumienia kompresji biblioteki zlibnie można ponownie zainicjować strumienia dekompresji biblioteki zlibnie można czytać z deskryptora pliku %dnie można usunąć pliku '%s'nie można usunąć tymczasowego pliku '%s'nie można ustawić pozycji w deskryptorze pliku %dnie można zapisać bufora '%s' na dysk.nie można zapisać do deskryptora pliku %dnie można zapisać pliku konfiguracyjnego użytkownika.błąd sumy kontrolnejNiepowodzenie sumy kontrolnej czytania nagłówka bloku tarcmbłąd kompresjinie powiodła się konwersja do kodowania '8-bit'ctrldatabłąd dekompresjidomyślnypodwójniekopia stanu procesu (binarnie)osiemnastyósmyjedenastypozycja '%s' występuje w grupie '%s' więcej niż jeden razbłąd w formaciebłąd otwarcia '%s'błąd otwarcia plikubłąd przy odczycie centralnego katalogu zipbłąd odczytu lokalnego nagłówka zipbłąd zapisu zip '%s': niepoprawna sygnatura crc lub długośćnie udało się opróżnić (flush) pliku '%s'piętnastypiątyplik '%s', linia %d: zignorowano '%s' po nagłówku grupy.plik '%s', linia %d: oczekiwano '='.plik '%s', linia %d: klucz '%s' wystąpił po raz pierwszy w lini %d.plik '%s', linia %d: zignorowano wartość dla niezmiennego klucza '%s'.plik '%s': nieoczekiwany znak %c w lini %d.plikipierwszyrozmiar czcionkiczternastyczwartygeneruje listę komunikatówobrazniekompletny blok nagłówka w tarnieprawidłowy uchwyt zdarzenia, brak kropki w nazwienieprawidłowy rozmiar podany w wpisie tarnieprawidłowe dane w rozszerzonym nagłówku tarwartość zwrócona przez okno komunikatu jest nieprawidłowanieprawidłowy plik zipkursywalekkilokalizacja '%s' nie może być ustawiona.północdziewiętnastydziewiątybez błędu DDE.brak błędunie znaleziono czcionek w %s, wykorzystując czcionki wypunktowaniabeznazwypołudnienie zaimplementowanyliczbaobiekty nie może mieć węzłów typu 'XML Text'brak wolnej pamięciprocentopis kontekstu procesuptpxbłąd odczytuodczyt strumienia zip (%s): niepoprawna sygnatura crcodczyt strumienia zip (%s): niepoprawna długośćproblem współbieżnościdrugibłąd przeszukiwaniasiedemnastysiódmyshiftwyświetla ten komunikatszesnastyszóstyokreśla tryb wyświetlania, który ma być użyty (np. 640x480-16)określa kompozycję, który ma być użytadługość pliku nie w nagłówku Ziptekstwpis tar nie otwartydziesiątyodpowiedź na transakcję spowodowała ustawienie bitu DDE_FBUSY.trzecitrzynastydziśjutrokońcowy ukośnik odwrotny zignorowany w '%s'Michał Trzebiatowskidwunastydwudziestypodkreślonynieoczekiwany " na pozycji %d w '%s'.nieoczekiwany koniec plikunieznanynieznana klasa %snieznany błądnieznany błąd (kod błędu %08x).nieznany odnośnik pozycjonowanianieznany-%dbeznazwybeznazwy%dniewspierana metoda kompresji Zipużycie katalogu '%s' z '%s'.błąd zapisuwxGetTimeOfDay zwróciło błąd.wxPrintout: GetPageInfo daje zero maxPage.Wskaźnik kontroli wxWidget nie jest wskaźnikiem widoku danychNie można zainicjować wyświetlania dla '%s': program kończy pracę.Nie można zainicjować wyświetlania. Program kończy pracę.xxxxwczorajbłąd biblioteki zlib %d~ginkgocadx-3.8.7/cadxcore/lang/pl/wxstd.po000066400000000000000000007765621314736454600205500ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: wxWidgets 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-08-23 18:18+0200\n" "PO-Revision-Date: 2013-09-29 14:09+0100\n" "Last-Translator: Grzegorz Zlotowicz \n" "Language-Team: wxWidgets translators \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" "X-Generator: Poedit 1.5.7\n" #: ../src/common/debugrpt.cpp:591 msgid "" "\n" "Please send this report to the program maintainer, thank you!\n" msgstr "" "\n" "Proszę przesłać ten raport do autora programu, dziękuję!\n" #: ../src/richtext/richtextstyledlg.cpp:210 #: ../src/richtext/richtextstyledlg.cpp:222 msgid " " msgstr " " #: ../src/generic/dbgrptg.cpp:326 msgid " Thank you and we're sorry for the inconvenience!\n" msgstr " Dziękujemy i przepraszamy za niedogodności!\n" #: ../src/common/prntbase.cpp:546 #, c-format msgid " (copy %d of %d)" msgstr " (kopia %d z %d)" #: ../src/common/log.cpp:427 #, c-format msgid " (error %ld: %s)" msgstr " (błąd %ld: %s)" #: ../src/common/imagtiff.cpp:75 #, c-format msgid " (in module \"%s\")" msgstr " (w module \"%s\")" #: ../src/common/docview.cpp:1625 msgid " - " msgstr " - " #: ../src/richtext/richtextprint.cpp:588 ../src/html/htmprint.cpp:704 msgid " Preview" msgstr " Podgląd" #: ../src/common/fontcmn.cpp:811 msgid " bold" msgstr "pogrubiony" #: ../src/common/fontcmn.cpp:827 msgid " italic" msgstr "kursywa" #: ../src/common/fontcmn.cpp:807 msgid " light" msgstr "lekki" #: ../src/common/paper.cpp:118 msgid "#10 Envelope, 4 1/8 x 9 1/2 in" msgstr "Koperta #10, 4 1/8 x 9 1/2 cali" #: ../src/common/paper.cpp:119 msgid "#11 Envelope, 4 1/2 x 10 3/8 in" msgstr "Koperta #11, 4 1/2 x 10 3/8 cali" #: ../src/common/paper.cpp:120 msgid "#12 Envelope, 4 3/4 x 11 in" msgstr "Koperta #12, 4 3/4 x 11 cali" #: ../src/common/paper.cpp:121 msgid "#14 Envelope, 5 x 11 1/2 in" msgstr "Koperta #14, 5 x 11 1/2 cali" #: ../src/common/paper.cpp:117 msgid "#9 Envelope, 3 7/8 x 8 7/8 in" msgstr "Koperta #9, 3 7/8 x 8 7/8 cali" #: ../src/html/helpwnd.cpp:1044 #, c-format msgid "%d of %lu" msgstr "%d z %lu" #: ../src/html/helpwnd.cpp:1681 ../src/html/helpwnd.cpp:1719 #, c-format msgid "%i of %i" msgstr "%i z %i" #: ../src/generic/filectrlg.cpp:315 #, c-format msgid "%ld byte" msgid_plural "%ld bytes" msgstr[0] "%ld bajt" msgstr[1] "%ld bajty" msgstr[2] "%ld bajtów" #: ../src/html/helpwnd.cpp:1046 #, c-format msgid "%lu of %lu" msgstr "%lu z %lu" #: ../src/common/cmdline.cpp:1050 #, c-format msgid "%s (or %s)" msgstr "%s (lub %s)" #: ../src/generic/logg.cpp:230 #, c-format msgid "%s Error" msgstr "%s Błąd" #: ../src/generic/logg.cpp:242 #, c-format msgid "%s Information" msgstr "%s Informacja" #: ../src/generic/preferencesg.cpp:110 #, c-format msgid "%s Preferences" msgstr "Preferencje %s" #: ../src/generic/logg.cpp:234 #, c-format msgid "%s Warning" msgstr "%s Ostrzeżenie" #: ../src/common/tarstrm.cpp:1319 #, c-format msgid "%s did not fit the tar header for entry '%s'" msgstr "%s nie pasuje nagłówek tar do wpisu '%s'" #: ../src/common/fldlgcmn.cpp:106 #, c-format msgid "%s files (%s)|%s" msgstr "%s pliki (%s)|%s" #: ../src/common/stockitem.cpp:139 ../src/html/helpfrm.cpp:142 #: ../src/html/helpfrm.cpp:144 msgid "&About" msgstr "Inform&acje" #: ../src/common/stockitem.cpp:207 msgid "&Actual Size" msgstr "&Bieżący rozmiar" #: ../src/richtext/richtextindentspage.cpp:262 msgid "&After a paragraph:" msgstr "&Po paragrafie:" #: ../src/richtext/richtextindentspage.cpp:128 #: ../src/richtext/richtextliststylepage.cpp:319 msgid "&Alignment" msgstr "&Wyrównanie" #: ../src/common/stockitem.cpp:141 msgid "&Apply" msgstr "Z&astosuj" #: ../src/richtext/richtextstyledlg.cpp:251 msgid "&Apply Style" msgstr "Z&astosuj styl" #: ../src/msw/mdi.cpp:175 msgid "&Arrange Icons" msgstr "&Rozmieść ikony" #: ../src/common/stockitem.cpp:195 msgid "&Ascending" msgstr "&Rosnąco" #: ../src/common/stockitem.cpp:142 msgid "&Back" msgstr "&Wstecz" #: ../src/richtext/richtextstylepage.cpp:113 msgid "&Based on:" msgstr "&Na podstawie:" #: ../src/richtext/richtextindentspage.cpp:253 msgid "&Before a paragraph:" msgstr "&Przed paragrafem:" #: ../src/richtext/richtextfontpage.cpp:271 msgid "&Bg colour:" msgstr "Kolor &tła:" #: ../src/common/stockitem.cpp:143 msgid "&Bold" msgstr "Pogru&biony" #: ../src/common/stockitem.cpp:144 msgid "&Bottom" msgstr "&Dolny" #: ../src/richtext/richtextborderspage.cpp:359 #: ../src/richtext/richtextborderspage.cpp:503 #: ../src/richtext/richtextmarginspage.cpp:260 #: ../src/richtext/richtextmarginspage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:634 #: ../src/richtext/richtextsizepage.cpp:641 msgid "&Bottom:" msgstr "&Dolny:" #: ../include/wx/richtext/richtextbuffer.h:3523 msgid "&Box" msgstr "&Blok" #: ../src/richtext/richtextliststylepage.cpp:210 #: ../src/richtext/richtextbulletspage.cpp:159 msgid "&Bullet style:" msgstr "&Styl wypunktowania:" #: ../src/common/stockitem.cpp:146 msgid "&CD-Rom" msgstr "&CD-Rom" #: ../src/generic/wizard.cpp:432 ../src/generic/fontdlgg.cpp:470 #: ../src/generic/fontdlgg.cpp:489 ../src/osx/carbon/fontdlg.cpp:588 #: ../src/common/stockitem.cpp:145 msgid "&Cancel" msgstr "&Anuluj" #: ../src/msw/mdi.cpp:171 msgid "&Cascade" msgstr "&Kaskada" #: ../include/wx/richtext/richtextbuffer.h:5578 msgid "&Cell" msgstr "&Komórka" #: ../src/richtext/richtextsymboldlg.cpp:439 msgid "&Character code:" msgstr "&Kod znaku:" #: ../src/common/stockitem.cpp:147 msgid "&Clear" msgstr "Wy&czyść" #: ../src/generic/logg.cpp:522 ../src/common/stockitem.cpp:148 #: ../src/common/prntbase.cpp:1570 ../src/univ/themes/win32.cpp:3756 #: ../src/html/helpfrm.cpp:139 msgid "&Close" msgstr "Zam&knij" #: ../src/common/stockitem.cpp:193 #, fuzzy msgid "&Color" msgstr "K&olor:" #: ../src/richtext/richtextfontpage.cpp:258 msgid "&Colour:" msgstr "K&olor:" #: ../src/common/stockitem.cpp:149 msgid "&Convert" msgstr "&Konwertuj" #: ../src/richtext/richtextctrl.cpp:326 ../src/osx/textctrl_osx.cpp:583 #: ../src/common/stockitem.cpp:150 ../src/msw/textctrl.cpp:2284 msgid "&Copy" msgstr "&Kopiuj" #: ../src/generic/hyperlinkg.cpp:156 msgid "&Copy URL" msgstr "&Kopiuj URL" #: ../src/common/headerctrlcmn.cpp:328 msgid "&Customize..." msgstr "&Dostosuj..." #: ../src/generic/dbgrptg.cpp:334 msgid "&Debug report preview:" msgstr "Po&dgląd raportu błędów:" #: ../src/richtext/richtexttabspage.cpp:142 #: ../src/richtext/richtextctrl.cpp:328 ../src/osx/textctrl_osx.cpp:585 #: ../src/common/stockitem.cpp:152 ../src/msw/textctrl.cpp:2286 msgid "&Delete" msgstr "&Usuń" #: ../src/richtext/richtextstyledlg.cpp:269 msgid "&Delete Style..." msgstr "&Usuń styl..." #: ../src/common/stockitem.cpp:196 msgid "&Descending" msgstr "&Malejąco" #: ../src/generic/logg.cpp:688 msgid "&Details" msgstr "&Szczegóły" #: ../src/common/stockitem.cpp:153 msgid "&Down" msgstr "W &dół" #: ../src/common/stockitem.cpp:154 msgid "&Edit" msgstr "&Edytuj" #: ../src/richtext/richtextstyledlg.cpp:263 msgid "&Edit Style..." msgstr "&Edytuj styl..." #: ../src/common/stockitem.cpp:155 msgid "&Execute" msgstr "&Uruchom" #: ../src/common/stockitem.cpp:157 ../src/html/helpfrm.cpp:146 msgid "&File" msgstr "&Plik" #: ../src/common/stockitem.cpp:158 msgid "&Find" msgstr "&Znajdź" #: ../src/generic/wizard.cpp:626 msgid "&Finish" msgstr "Za&kończ" #: ../src/common/stockitem.cpp:159 #, fuzzy msgid "&First" msgstr "pierwszy" #: ../src/richtext/richtextsizepage.cpp:241 msgid "&Floating mode:" msgstr "Tryb &ruchomy:" #: ../src/common/stockitem.cpp:160 msgid "&Floppy" msgstr "&Dyskietka" #: ../src/common/stockitem.cpp:194 #, fuzzy msgid "&Font" msgstr "&Czcionka:" #: ../src/generic/fontdlgg.cpp:371 msgid "&Font family:" msgstr "&Rozmiar czcionki:" #: ../src/richtext/richtextliststylepage.cpp:194 msgid "&Font for Level..." msgstr "&Czcionka dla poziomu..." #: ../src/richtext/richtextfontpage.cpp:156 #: ../src/richtext/richtextsymboldlg.cpp:400 msgid "&Font:" msgstr "&Czcionka:" #: ../src/common/stockitem.cpp:161 msgid "&Forward" msgstr "&Dalej" #: ../src/richtext/richtextsymboldlg.cpp:451 msgid "&From:" msgstr "&Od:" #: ../src/common/stockitem.cpp:162 msgid "&Harddisk" msgstr "&Dysk twardy" #: ../src/richtext/richtextsizepage.cpp:348 #: ../src/richtext/richtextsizepage.cpp:355 msgid "&Height:" msgstr "&Wysokość:" #: ../src/generic/wizard.cpp:435 ../src/richtext/richtextstyledlg.cpp:303 #: ../src/richtext/richtextsymboldlg.cpp:479 ../src/osx/menu_osx.cpp:785 #: ../src/common/stockitem.cpp:163 ../src/html/helpfrm.cpp:147 msgid "&Help" msgstr "&Pomoc" #: ../include/wx/richmsgdlg.h:30 msgid "&Hide details" msgstr "&Ukryj szczegóły" #: ../src/common/stockitem.cpp:164 msgid "&Home" msgstr "&Początek" #: ../src/richtext/richtextindentspage.cpp:184 #: ../src/richtext/richtextliststylepage.cpp:372 msgid "&Indentation (tenths of a mm)" msgstr "&Wcięcia (w dziesiątych częściach mm)" #: ../src/richtext/richtextindentspage.cpp:167 #: ../src/richtext/richtextliststylepage.cpp:356 msgid "&Indeterminate" msgstr "&Nieokreślony" #: ../src/common/stockitem.cpp:166 msgid "&Index" msgstr "&Indeks" #: ../src/common/stockitem.cpp:167 msgid "&Info" msgstr "&Info" #: ../src/common/stockitem.cpp:168 msgid "&Italic" msgstr "&Kursywa" #: ../src/common/stockitem.cpp:169 msgid "&Jump to" msgstr "&Skocz do" #: ../src/richtext/richtextindentspage.cpp:153 #: ../src/richtext/richtextliststylepage.cpp:342 msgid "&Justified" msgstr "&Wyrównanie obustronne" #: ../src/common/stockitem.cpp:174 msgid "&Last" msgstr "&Ostatni" #: ../src/richtext/richtextindentspage.cpp:139 #: ../src/richtext/richtextliststylepage.cpp:328 msgid "&Left" msgstr "&Lewy" #: ../src/richtext/richtextindentspage.cpp:195 #: ../src/richtext/richtextborderspage.cpp:269 #: ../src/richtext/richtextborderspage.cpp:413 #: ../src/richtext/richtextliststylepage.cpp:381 #: ../src/richtext/richtextmarginspage.cpp:187 #: ../src/richtext/richtextmarginspage.cpp:301 #: ../src/richtext/richtextsizepage.cpp:529 #: ../src/richtext/richtextsizepage.cpp:536 msgid "&Left:" msgstr "&Lewy:" #: ../src/richtext/richtextliststylepage.cpp:183 msgid "&List level:" msgstr "Poziom &listy:" #: ../src/generic/logg.cpp:523 msgid "&Log" msgstr "&Dziennik" #: ../src/univ/themes/win32.cpp:3748 msgid "&Move" msgstr "Prz&enieś" #: ../src/richtext/richtextsizepage.cpp:669 msgid "&Move the object to:" msgstr "&Przenieś obiekt do:" #: ../src/common/stockitem.cpp:175 msgid "&Network" msgstr "&Sieć" #: ../src/richtext/richtexttabspage.cpp:136 ../src/common/stockitem.cpp:176 msgid "&New" msgstr "&Nowy" #: ../src/aui/tabmdi.cpp:111 ../src/generic/mdig.cpp:100 #: ../src/msw/mdi.cpp:176 msgid "&Next" msgstr "&Następne" #: ../src/generic/wizard.cpp:431 ../src/generic/wizard.cpp:626 msgid "&Next >" msgstr "&Dalej >" #: ../src/richtext/richtextsizepage.cpp:678 msgid "&Next Paragraph" msgstr "&Następny akapit" #: ../src/generic/tipdlg.cpp:276 msgid "&Next Tip" msgstr "&Następna porada" #: ../src/richtext/richtextstylepage.cpp:123 msgid "&Next style:" msgstr "&Następny styl:" #: ../src/common/stockitem.cpp:177 ../src/msw/msgdlg.cpp:476 msgid "&No" msgstr "&Nie" #: ../src/generic/dbgrptg.cpp:356 msgid "&Notes:" msgstr "&Uwagi:" #: ../src/richtext/richtextbulletspage.cpp:264 msgid "&Number:" msgstr "&Numer:" #: ../src/generic/fontdlgg.cpp:475 ../src/generic/fontdlgg.cpp:482 #: ../src/osx/carbon/fontdlg.cpp:594 ../src/common/stockitem.cpp:178 msgid "&OK" msgstr "&OK" #: ../src/generic/dbgrptg.cpp:342 ../src/common/stockitem.cpp:179 #: ../src/html/helpfrm.cpp:137 msgid "&Open..." msgstr "&Otwórz..." #: ../src/richtext/richtextindentspage.cpp:222 msgid "&Outline level:" msgstr "Poziom &kontur:" #: ../src/richtext/richtextindentspage.cpp:293 msgid "&Page Break" msgstr "&Podział strony" #: ../src/richtext/richtextctrl.cpp:327 ../src/osx/textctrl_osx.cpp:584 #: ../src/common/stockitem.cpp:180 ../src/msw/textctrl.cpp:2285 msgid "&Paste" msgstr "Wkl&ej" #: ../include/wx/richtext/richtextbuffer.h:4648 msgid "&Picture" msgstr "&Obraz" #: ../src/generic/fontdlgg.cpp:422 msgid "&Point size:" msgstr "&Rozmiar punktu:" #: ../src/richtext/richtexttabspage.cpp:114 msgid "&Position (tenths of a mm):" msgstr "&Pozycja (w dziesiątych częściach mm):" #: ../src/richtext/richtextsizepage.cpp:511 msgid "&Position mode:" msgstr "&Tryb pozycji:" #: ../src/common/stockitem.cpp:181 msgid "&Preferences" msgstr "&Preferencje" #: ../src/aui/tabmdi.cpp:112 ../src/generic/mdig.cpp:101 #: ../src/msw/mdi.cpp:177 msgid "&Previous" msgstr "&Poprzednie" #: ../src/richtext/richtextsizepage.cpp:672 msgid "&Previous Paragraph" msgstr "&Poprzedni akapit" #: ../src/common/stockitem.cpp:183 msgid "&Print..." msgstr "&Drukuj..." #: ../src/richtext/richtextctrl.cpp:332 ../src/richtext/richtextctrl.cpp:4922 #: ../src/common/stockitem.cpp:184 msgid "&Properties" msgstr "&Właściwości" #: ../src/common/stockitem.cpp:156 msgid "&Quit" msgstr "&Wyjście" #: ../src/richtext/richtextctrl.cpp:323 ../src/osx/textctrl_osx.cpp:580 #: ../src/common/stockitem.cpp:185 ../src/common/cmdproc.cpp:293 #: ../src/common/cmdproc.cpp:300 ../src/msw/textctrl.cpp:2281 msgid "&Redo" msgstr "&Ponów" #: ../src/common/cmdproc.cpp:289 ../src/common/cmdproc.cpp:309 msgid "&Redo " msgstr "&Ponów " #: ../src/richtext/richtextstyledlg.cpp:257 msgid "&Rename Style..." msgstr "&Zmień nazwę stylu..." #: ../src/generic/fdrepdlg.cpp:179 msgid "&Replace" msgstr "&Zastąp" #: ../src/richtext/richtextstyledlg.cpp:287 msgid "&Restart numbering" msgstr "&Ponowienie numeracji" #: ../src/univ/themes/win32.cpp:3747 msgid "&Restore" msgstr "&Przywróć" #: ../src/richtext/richtextindentspage.cpp:146 #: ../src/richtext/richtextliststylepage.cpp:335 msgid "&Right" msgstr "&Prawy" #: ../src/richtext/richtextindentspage.cpp:213 #: ../src/richtext/richtextborderspage.cpp:299 #: ../src/richtext/richtextborderspage.cpp:443 #: ../src/richtext/richtextliststylepage.cpp:399 #: ../src/richtext/richtextmarginspage.cpp:212 #: ../src/richtext/richtextmarginspage.cpp:326 #: ../src/richtext/richtextsizepage.cpp:599 #: ../src/richtext/richtextsizepage.cpp:606 msgid "&Right:" msgstr "&Prawy:" #: ../src/common/stockitem.cpp:190 msgid "&Save" msgstr "Zapi&sz" #: ../src/common/stockitem.cpp:191 msgid "&Save as" msgstr "Zapisz &Jako" #: ../include/wx/richmsgdlg.h:29 msgid "&See details" msgstr "&Zobacz szczegóły" #: ../src/generic/tipdlg.cpp:270 msgid "&Show tips at startup" msgstr "&Pokazuj porady przy uruchamianiu" #: ../src/univ/themes/win32.cpp:3750 msgid "&Size" msgstr "&Rozmiar" #: ../src/richtext/richtextfontpage.cpp:168 msgid "&Size:" msgstr "&Rozmiar:" #: ../src/generic/progdlgg.cpp:282 msgid "&Skip" msgstr "&Pomiń" #: ../src/richtext/richtextindentspage.cpp:242 #: ../src/richtext/richtextliststylepage.cpp:417 msgid "&Spacing (tenths of a mm)" msgstr "&Odstępy (w dziesiątych częściach mm)" #: ../src/common/stockitem.cpp:197 msgid "&Spell Check" msgstr "&Sprawdzanie pisowni" #: ../src/common/stockitem.cpp:198 msgid "&Stop" msgstr "&Stop" #: ../src/richtext/richtextfontpage.cpp:284 ../src/common/stockitem.cpp:199 msgid "&Strikethrough" msgstr "&Przekreślenie" #: ../src/generic/fontdlgg.cpp:382 ../src/richtext/richtextstylepage.cpp:104 msgid "&Style:" msgstr "&Styl:" #: ../src/richtext/richtextstyledlg.cpp:198 msgid "&Styles:" msgstr "&Style:" #: ../src/richtext/richtextsymboldlg.cpp:413 msgid "&Subset:" msgstr "&Podzbiór:" #: ../src/richtext/richtextliststylepage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:222 msgid "&Symbol:" msgstr "&Symbol:" #: ../include/wx/richtext/richtextbuffer.h:5668 msgid "&Table" msgstr "&Tabela" #: ../src/common/stockitem.cpp:200 msgid "&Top" msgstr "&Góra" #: ../src/richtext/richtextborderspage.cpp:329 #: ../src/richtext/richtextborderspage.cpp:473 #: ../src/richtext/richtextmarginspage.cpp:235 #: ../src/richtext/richtextmarginspage.cpp:349 #: ../src/richtext/richtextsizepage.cpp:564 #: ../src/richtext/richtextsizepage.cpp:571 msgid "&Top:" msgstr "&Góra:" #: ../src/generic/fontdlgg.cpp:444 ../src/common/stockitem.cpp:202 msgid "&Underline" msgstr "&Podkreślony" #: ../src/richtext/richtextfontpage.cpp:243 msgid "&Underlining:" msgstr "&Podkreślenie:" #: ../src/richtext/richtextctrl.cpp:322 ../src/osx/textctrl_osx.cpp:579 #: ../src/common/stockitem.cpp:203 ../src/common/cmdproc.cpp:271 #: ../src/msw/textctrl.cpp:2280 msgid "&Undo" msgstr "&Cofnij" #: ../src/common/cmdproc.cpp:265 msgid "&Undo " msgstr "&Cofnij " #: ../src/common/stockitem.cpp:204 msgid "&Unindent" msgstr "&Cofnij wcięcie" #: ../src/common/stockitem.cpp:205 msgid "&Up" msgstr "&W górę" #: ../src/richtext/richtextsizepage.cpp:275 msgid "&Vertical alignment:" msgstr "&Wyrównanie pionowe:" #: ../src/generic/dbgrptg.cpp:340 msgid "&View..." msgstr "&Widok..." #: ../src/generic/fontdlgg.cpp:393 msgid "&Weight:" msgstr "&Waga" #: ../src/richtext/richtextsizepage.cpp:314 #: ../src/richtext/richtextsizepage.cpp:321 msgid "&Width:" msgstr "&Szerokość:" #: ../src/aui/tabmdi.cpp:311 ../src/aui/tabmdi.cpp:327 #: ../src/aui/tabmdi.cpp:329 ../src/generic/mdig.cpp:294 #: ../src/generic/mdig.cpp:310 ../src/generic/mdig.cpp:314 #: ../src/msw/mdi.cpp:77 msgid "&Window" msgstr "&Okno" #: ../src/common/stockitem.cpp:206 ../src/msw/msgdlg.cpp:476 msgid "&Yes" msgstr "&Tak" #: ../src/common/config.cpp:523 ../src/msw/regconf.cpp:258 #, c-format msgid "'%s' has extra '..', ignored." msgstr "'%s' ma nadmiarowe '..', zignorowane." #: ../src/common/valtext.cpp:249 ../src/common/valtext.cpp:251 #: ../src/common/valtext.cpp:253 ../src/common/valtext.cpp:255 #, c-format msgid "'%s' is invalid" msgstr "'%s' jest nieprawidłowy" #: ../src/common/cmdline.cpp:948 ../src/common/cmdline.cpp:966 #, c-format msgid "'%s' is not a correct numeric value for option '%s'." msgstr "'%s' nie jest poprawną wartością numeryczną opcji '%s'." #: ../src/common/translation.cpp:1086 #, c-format msgid "'%s' is not a valid message catalog." msgstr "'%s' nie jest prawidłowym katalogiem komunikatów." #: ../src/common/textbuf.cpp:239 #, c-format msgid "'%s' is probably a binary buffer." msgstr "'%s' jest prawdopodobnie buforem binarnym." #: ../src/common/valtext.cpp:247 #, c-format msgid "'%s' should be numeric." msgstr "'%s' powinno być numeryczne." #: ../src/common/valtext.cpp:239 #, c-format msgid "'%s' should only contain ASCII characters." msgstr "'%s' powinien zawierać tylko znaki ASCII." #: ../src/common/valtext.cpp:241 #, c-format msgid "'%s' should only contain alphabetic characters." msgstr "'%s' powinien zawierać tylko wartości znakowe." #: ../src/common/valtext.cpp:243 #, c-format msgid "'%s' should only contain alphabetic or numeric characters." msgstr "'%s' powinien zawierać tylko wartości znakowe lub numeryczne." #: ../src/common/valtext.cpp:245 #, c-format msgid "'%s' should only contain digits." msgstr "'%s' powinien zawierać tylko cyfry." #: ../src/richtext/richtextliststylepage.cpp:229 #: ../src/richtext/richtextbulletspage.cpp:179 msgid "(*)" msgstr "(*)" #: ../src/html/helpwnd.cpp:976 msgid "(Help)" msgstr "(Pomoc)" #: ../src/richtext/richtextliststylepage.cpp:481 #: ../src/richtext/richtextbulletspage.cpp:286 msgid "(None)" msgstr "(Brak)" #: ../src/richtext/richtextsymboldlg.cpp:504 msgid "(Normal text)" msgstr "(Normalny tekst)" #: ../src/html/helpwnd.cpp:426 ../src/html/helpwnd.cpp:1119 #: ../src/html/helpwnd.cpp:1745 msgid "(bookmarks)" msgstr "(zakładki)" #: ../src/richtext/richtextindentspage.cpp:274 #: ../src/richtext/richtextindentspage.cpp:286 #: ../src/richtext/richtextindentspage.cpp:287 #: ../src/richtext/richtextindentspage.cpp:311 #: ../src/richtext/richtextindentspage.cpp:326 #: ../src/richtext/richtextformatdlg.cpp:829 #: ../src/richtext/richtextfontpage.cpp:331 #: ../src/richtext/richtextfontpage.cpp:335 #: ../src/richtext/richtextfontpage.cpp:339 #: ../src/richtext/richtextliststylepage.cpp:448 #: ../src/richtext/richtextliststylepage.cpp:460 #: ../src/richtext/richtextliststylepage.cpp:461 msgid "(none)" msgstr "(beznazwy)" #: ../src/richtext/richtextliststylepage.cpp:492 #: ../src/richtext/richtextbulletspage.cpp:297 msgid "*" msgstr "*" #: ../src/richtext/richtextliststylepage.cpp:236 #: ../src/richtext/richtextbulletspage.cpp:186 msgid "*)" msgstr "*)" #: ../src/richtext/richtextliststylepage.cpp:495 #: ../src/richtext/richtextbulletspage.cpp:300 msgid "+" msgstr "+" #: ../src/msw/utils.cpp:1324 msgid ", 64-bit edition" msgstr ", wydanie 64-bitowe" #: ../src/richtext/richtextliststylepage.cpp:493 #: ../src/richtext/richtextbulletspage.cpp:298 msgid "-" msgstr "-" #: ../src/generic/filepickerg.cpp:66 msgid "..." msgstr "..." #: ../src/richtext/richtextindentspage.cpp:276 #: ../src/richtext/richtextliststylepage.cpp:450 msgid "1.1" msgstr "1.1" #: ../src/richtext/richtextindentspage.cpp:277 #: ../src/richtext/richtextliststylepage.cpp:451 msgid "1.2" msgstr "1.2" #: ../src/richtext/richtextindentspage.cpp:278 #: ../src/richtext/richtextliststylepage.cpp:452 msgid "1.3" msgstr "1.3" #: ../src/richtext/richtextindentspage.cpp:279 #: ../src/richtext/richtextliststylepage.cpp:453 msgid "1.4" msgstr "1.4" #: ../src/richtext/richtextindentspage.cpp:280 #: ../src/richtext/richtextliststylepage.cpp:454 msgid "1.5" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:455 msgid "1.6" msgstr "1.6" #: ../src/richtext/richtextindentspage.cpp:282 #: ../src/richtext/richtextliststylepage.cpp:456 msgid "1.7" msgstr "1.7" #: ../src/richtext/richtextindentspage.cpp:283 #: ../src/richtext/richtextliststylepage.cpp:457 msgid "1.8" msgstr "1.8" #: ../src/richtext/richtextindentspage.cpp:284 #: ../src/richtext/richtextliststylepage.cpp:458 msgid "1.9" msgstr "1.9" #: ../src/common/paper.cpp:141 msgid "10 x 11 in" msgstr "10 x 11 cali" #: ../src/common/paper.cpp:114 msgid "10 x 14 in" msgstr "10 x 14 cali" #: ../src/common/paper.cpp:115 msgid "11 x 17 in" msgstr "11 x 17 cali" #: ../src/common/paper.cpp:185 msgid "12 x 11 in" msgstr "12 x 11 cali" #: ../src/common/paper.cpp:142 msgid "15 x 11 in" msgstr "15 x 11 cali" #: ../src/richtext/richtextindentspage.cpp:285 #: ../src/richtext/richtextliststylepage.cpp:459 msgid "2" msgstr "2" #: ../src/common/paper.cpp:133 msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in" msgstr "Koperta 6 3/4, 3 5/8 x 6 1/2 cali" #: ../src/common/paper.cpp:140 msgid "9 x 11 in" msgstr "9 x 11 cali" #: ../src/html/htmprint.cpp:431 msgid ": file does not exist!" msgstr ": plik nie istnieje!" #: ../src/common/fontmap.cpp:199 msgid ": unknown charset" msgstr ": nieznany zestaw znaków" #: ../src/common/fontmap.cpp:413 msgid ": unknown encoding" msgstr ": nieznane kodowanie" #: ../src/generic/wizard.cpp:437 msgid "< &Back" msgstr "< &Wstecz" #: ../src/osx/carbon/fontdlg.cpp:608 ../src/osx/carbon/fontdlg.cpp:815 #: ../src/osx/carbon/fontdlg.cpp:835 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:609 ../src/osx/carbon/fontdlg.cpp:817 #: ../src/osx/carbon/fontdlg.cpp:837 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:607 ../src/osx/carbon/fontdlg.cpp:813 #: ../src/osx/carbon/fontdlg.cpp:833 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:610 ../src/osx/carbon/fontdlg.cpp:819 #: ../src/osx/carbon/fontdlg.cpp:839 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:611 ../src/osx/carbon/fontdlg.cpp:824 #: ../src/osx/carbon/fontdlg.cpp:843 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:612 ../src/osx/carbon/fontdlg.cpp:821 #: ../src/osx/carbon/fontdlg.cpp:841 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:606 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:286 ../src/generic/filectrlg.cpp:309 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:290 ../src/generic/filectrlg.cpp:313 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:288 ../src/generic/filectrlg.cpp:311 msgid "" msgstr "<ŁĄCZE>" #: ../src/html/helpwnd.cpp:1279 msgid "Bold italic face.
    " msgstr "Pogrubiona kursywa.
    " #: ../src/html/helpwnd.cpp:1283 msgid "bold italic underlined
    " msgstr "pogrubiona kursywa z podkreśleniem
    " #: ../src/html/helpwnd.cpp:1278 msgid "Bold face. " msgstr "Pogrubienie. " #: ../src/html/helpwnd.cpp:1277 msgid "Italic face. " msgstr "Kursywa. " #: ../src/richtext/richtextliststylepage.cpp:494 #: ../src/richtext/richtextbulletspage.cpp:299 msgid ">" msgstr ">" #: ../src/generic/dbgrptg.cpp:318 msgid "A debug report has been generated in the directory\n" msgstr "Raport błędów został wygenerowany w katalogu\n" #: ../src/common/debugrpt.cpp:578 msgid "A debug report has been generated. It can be found in" msgstr "Raport błędów został wygenerowany. Znajduje się w" #: ../src/common/xtixml.cpp:418 msgid "A non empty collection must consist of 'element' nodes" msgstr "Nie pusta kolekcja musi składać się z węzłów typu 'element'" #: ../src/richtext/richtextliststylepage.cpp:304 #: ../src/richtext/richtextliststylepage.cpp:306 #: ../src/richtext/richtextbulletspage.cpp:257 #: ../src/richtext/richtextbulletspage.cpp:259 msgid "A standard bullet name." msgstr "Standardowa nazwa wypunktowania." #: ../src/common/paper.cpp:218 msgid "A0 sheet, 841 x 1189 mm" msgstr "Arkusz A0, 841 x 1189 mm" #: ../src/common/paper.cpp:219 msgid "A1 sheet, 594 x 841 mm" msgstr "Arkusz A1, 594 x 841 mm" #: ../src/common/paper.cpp:160 msgid "A2 420 x 594 mm" msgstr "A2 420 x 594 mm" #: ../src/common/paper.cpp:157 msgid "A3 Extra 322 x 445 mm" msgstr "A3 Extra 322 x 445 mm" #: ../src/common/paper.cpp:162 msgid "A3 Extra Transverse 322 x 445 mm" msgstr "A3 Extra Poprzecznie 322 x 445 mm" #: ../src/common/paper.cpp:171 msgid "A3 Rotated 420 x 297 mm" msgstr "A3 Obrócone 420 x 297 mm" #: ../src/common/paper.cpp:161 msgid "A3 Transverse 297 x 420 mm" msgstr "A3 Poprzecznie 297 x 420 mm" #: ../src/common/paper.cpp:107 msgid "A3 sheet, 297 x 420 mm" msgstr "Arkusz A3, 297 x 420 mm" #: ../src/common/paper.cpp:147 msgid "A4 Extra 9.27 x 12.69 in" msgstr "A4 Extra 9.27 x 12.69 cali" #: ../src/common/paper.cpp:154 msgid "A4 Plus 210 x 330 mm" msgstr "A4 Plus 210 x 330 mm" #: ../src/common/paper.cpp:172 msgid "A4 Rotated 297 x 210 mm" msgstr "A4 Obrócone 297 x 210 mm" #: ../src/common/paper.cpp:149 msgid "A4 Transverse 210 x 297 mm" msgstr "A4 Poprzecznie 210 x 297 mm" #: ../src/common/paper.cpp:98 msgid "A4 sheet, 210 x 297 mm" msgstr "Arkusz A4, 210 x 297 mm" #: ../src/common/paper.cpp:108 msgid "A4 small sheet, 210 x 297 mm" msgstr "Mały arkusz A4, 210 x 297 mm" #: ../src/common/paper.cpp:158 msgid "A5 Extra 174 x 235 mm" msgstr "A5 Extra 174 x 235 mm" #: ../src/common/paper.cpp:173 msgid "A5 Rotated 210 x 148 mm" msgstr "A5 Obrócone 210 x 148 mm" #: ../src/common/paper.cpp:155 msgid "A5 Transverse 148 x 210 mm" msgstr "A5 Poprzecznie 148 x 210 mm" #: ../src/common/paper.cpp:109 msgid "A5 sheet, 148 x 210 mm" msgstr "Arkusz A5, 148 x 210 mm" #: ../src/common/paper.cpp:165 msgid "A6 105 x 148 mm" msgstr "A6 105 x 148 mm" #: ../src/common/paper.cpp:178 msgid "A6 Rotated 148 x 105 mm" msgstr "A6 Obrócone 148 x 105 mm" #: ../src/generic/fontdlgg.cpp:83 ../src/richtext/richtextformatdlg.cpp:526 #: ../src/osx/carbon/fontdlg.cpp:339 msgid "ABCDEFGabcdefg12345" msgstr "ABCDEFGabcdefg12345" #: ../src/common/accelcmn.cpp:76 msgid "ADD" msgstr "DODAJ" #: ../src/richtext/richtextsymboldlg.cpp:458 ../src/common/ftp.cpp:405 msgid "ASCII" msgstr "ASCII" #: ../src/osx/menu_osx.cpp:630 ../src/common/stockitem.cpp:139 #, fuzzy msgid "About" msgstr "Inform&acje" #: ../src/generic/aboutdlgg.cpp:140 ../src/msw/aboutdlg.cpp:64 #, c-format msgid "About %s" msgstr "O %s" #: ../src/richtext/richtextsizepage.cpp:517 msgid "Absolute" msgstr "Absolutne" #: ../src/common/stockitem.cpp:207 #, fuzzy msgid "Actual Size" msgstr "&Bieżący rozmiar" #: ../src/common/stockitem.cpp:140 msgid "Add" msgstr "Dodaj" #: ../src/richtext/richtextbuffer.cpp:10648 msgid "Add column" msgstr "Dodaj kolumnę" #: ../src/html/helpwnd.cpp:439 msgid "Add current page to bookmarks" msgstr "Dodaj bieżącą stronę do listy zakładek" #: ../src/richtext/richtextbuffer.cpp:10590 msgid "Add row" msgstr "Dodaj wiersz" #: ../src/generic/colrdlgg.cpp:283 msgid "Add to custom colours" msgstr "Dodaj do kolorów niestandardowych" #: ../include/wx/xtiprop.h:259 msgid "AddToPropertyCollection called on a generic accessor" msgstr "" #: ../include/wx/xtiprop.h:197 msgid "AddToPropertyCollection called w/o valid adder" msgstr "" #: ../src/html/helpctrl.cpp:159 #, c-format msgid "Adding book %s" msgstr "Dodawanie książki %s" #: ../src/osx/carbon/dataview.cpp:1933 msgid "Adding flavor TEXT failed" msgstr "" #: ../src/osx/carbon/dataview.cpp:1954 msgid "Adding flavor utxt failed" msgstr "" #: ../src/common/preferencescmn.cpp:41 msgid "Advanced" msgstr "Zaawansowane" #: ../src/richtext/richtextliststylepage.cpp:435 msgid "After a paragraph:" msgstr "Za paragrafem:" #: ../src/common/stockitem.cpp:172 msgid "Align Left" msgstr "Wyrównanie do lewej" #: ../src/common/stockitem.cpp:173 msgid "Align Right" msgstr "Wyrównanie do prawej" #: ../src/richtext/richtextsizepage.cpp:263 #, fuzzy msgid "Alignment" msgstr "&Wyrównanie" #: ../src/generic/prntdlgg.cpp:220 msgid "All" msgstr "Wszystko" #: ../src/generic/filectrlg.cpp:1205 ../src/common/fldlgcmn.cpp:89 #, c-format msgid "All files (%s)|%s" msgstr "Wszystkie pliki (%s)|%s" #: ../include/wx/defs.h:2884 msgid "All files (*)|*" msgstr "Wszystkie pliki (*)|*" #: ../include/wx/defs.h:2881 msgid "All files (*.*)|*.*" msgstr "Wszystkie pliki (*.*)|*.*" #: ../src/richtext/richtextstyles.cpp:1057 msgid "All styles" msgstr "Wszystkie style" #: ../src/propgrid/manager.cpp:1496 msgid "Alphabetic Mode" msgstr "Tryb Alfabetyczny" #: ../src/common/xtistrm.cpp:429 msgid "Already Registered Object passed to SetObjectClassInfo" msgstr "" "Zarejestrowany wcześniej obiekt przekazany do funkcji SetObjectClassInfo" #: ../src/unix/dialup.cpp:354 msgid "Already dialling ISP." msgstr "Już łączy z ISP." #: ../src/common/accelcmn.cpp:320 ../src/univ/themes/win32.cpp:3756 #, fuzzy msgid "Alt+" msgstr "Alt-" #: ../src/common/debugrpt.cpp:581 msgid "And includes the following files:\n" msgstr "I zawiera następujące pliki:\n" #: ../src/generic/animateg.cpp:162 #, c-format msgid "Animation file is not of type %ld." msgstr "Plik animacyjny nie jest typu %ld." #: ../src/generic/logg.cpp:1034 #, c-format msgid "Append log to file '%s' (choosing [No] will overwrite it)?" msgstr "Dołączyć dziennik do pliku '%s' (wybierając [Nie] zastąpisz go)?" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:610 #: ../src/osx/menu_osx.cpp:649 ../src/osx/menu_osx.cpp:657 msgid "Application" msgstr "Aplikacja" #: ../src/common/stockitem.cpp:141 #, fuzzy msgid "Apply" msgstr "Z&astosuj" #: ../src/richtext/richtextliststylepage.cpp:482 #: ../src/richtext/richtextbulletspage.cpp:287 msgid "Arabic" msgstr "Arabski" #: ../src/common/fmapbase.cpp:153 msgid "Arabic (ISO-8859-6)" msgstr "Arabski (ISO-8859-6)" # catalog file --> ? # domain --> ? #: ../src/msw/ole/automtn.cpp:661 #, c-format msgid "Argument %u not found." msgstr "Nie znaleziono argumentu %u." #: ../src/generic/aboutdlgg.cpp:184 msgid "Artists" msgstr "Artyści" #: ../src/common/stockitem.cpp:195 msgid "Ascending" msgstr "Rosnąco" #: ../src/generic/filectrlg.cpp:468 msgid "Attributes" msgstr "Właściwości" #: ../src/richtext/richtextliststylepage.cpp:294 #: ../src/richtext/richtextbulletspage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:247 msgid "Available fonts." msgstr "Dostępne czcionki." #: ../src/common/paper.cpp:138 msgid "B4 (ISO) 250 x 353 mm" msgstr "B4 (ISO) 250 x 353 mm" #: ../src/common/paper.cpp:174 msgid "B4 (JIS) Rotated 364 x 257 mm" msgstr "B4 (JIS) Obrócone 364 x 257 mm" #: ../src/common/paper.cpp:128 msgid "B4 Envelope, 250 x 353 mm" msgstr "Koperta B4, 250 x 353 mm" #: ../src/common/paper.cpp:110 msgid "B4 sheet, 250 x 354 mm" msgstr "Arkusz B4, 250 x 354 mm" #: ../src/common/paper.cpp:159 msgid "B5 (ISO) Extra 201 x 276 mm" msgstr "B5 (ISO) Extra 201 x 276 mm" #: ../src/common/paper.cpp:175 msgid "B5 (JIS) Rotated 257 x 182 mm" msgstr "B5 (JIS) Obrócone 257 x 182 mm" #: ../src/common/paper.cpp:156 msgid "B5 (JIS) Transverse 182 x 257 mm" msgstr "B5 (JIS) Poprzecznie 182 x 257 mm" #: ../src/common/paper.cpp:129 msgid "B5 Envelope, 176 x 250 mm" msgstr "Koperta B5, 176 x 250 mm" #: ../src/common/paper.cpp:111 msgid "B5 sheet, 182 x 257 millimeter" msgstr "Arkusz B5, 182 x 257 mm" #: ../src/common/paper.cpp:183 msgid "B6 (JIS) 128 x 182 mm" msgstr "B6 (JIS) 128 x 182 mm" #: ../src/common/paper.cpp:184 msgid "B6 (JIS) Rotated 182 x 128 mm" msgstr "B6 (JIS) Obrócone 182 x 128 mm" #: ../src/common/paper.cpp:130 msgid "B6 Envelope, 176 x 125 mm" msgstr "Koperta B6, 176 x 125 mm" #: ../src/common/accelcmn.cpp:49 msgid "BACK" msgstr "WSTECZ" #: ../src/common/imagbmp.cpp:523 ../src/common/imagbmp.cpp:553 #: ../src/common/imagbmp.cpp:568 msgid "BMP: Couldn't allocate memory." msgstr "BMP: Nie można przydzielić pamięci." #: ../src/common/imagbmp.cpp:97 msgid "BMP: Couldn't save invalid image." msgstr "BMP: Nie można zapisać nieprawidłowego obrazu.." #: ../src/common/imagbmp.cpp:338 msgid "BMP: Couldn't write RGB color map." msgstr "BMP: Nie można zapisać mapy kolorów RGB." #: ../src/common/imagbmp.cpp:473 msgid "BMP: Couldn't write data." msgstr "BMP: Nie można zapisać danych." #: ../src/common/imagbmp.cpp:239 msgid "BMP: Couldn't write the file (Bitmap) header." msgstr "BMP: Nie można zapisać nagłówka pliku (Bitmap)." #: ../src/common/imagbmp.cpp:262 msgid "BMP: Couldn't write the file (BitmapInfo) header." msgstr "BMP: Nie można zapisać nagłówka pliku (BitmapInfo)." #: ../src/common/imagbmp.cpp:133 msgid "BMP: wxImage doesn't have own wxPalette." msgstr "BMP: wxImage nie ma własnej wxPalette." #: ../src/common/stockitem.cpp:142 #, fuzzy msgid "Back" msgstr "&Wstecz" #: ../src/richtext/richtextbackgroundpage.cpp:119 #: ../src/richtext/richtextformatdlg.cpp:374 msgid "Background" msgstr "Tło" #: ../src/richtext/richtextbackgroundpage.cpp:131 msgid "Background &colour:" msgstr "Kolor &tła" #: ../src/osx/carbon/fontdlg.cpp:406 msgid "Background colour" msgstr "Kolor tła" #: ../src/common/fmapbase.cpp:160 msgid "Baltic (ISO-8859-13)" msgstr "Bałtycki (ISO-8859-13)" #: ../src/common/fmapbase.cpp:151 msgid "Baltic (old) (ISO-8859-4)" msgstr "Bałtycki (stary) (ISO-8859-4)" #: ../src/richtext/richtextliststylepage.cpp:426 msgid "Before a paragraph:" msgstr "Przed paragrafem:" #: ../src/richtext/richtextliststylepage.cpp:489 #: ../src/richtext/richtextbulletspage.cpp:294 msgid "Bitmap" msgstr "Bitmap" #: ../src/osx/carbon/dataview.cpp:2396 msgid "Bitmap renderer cannot render value; value type: " msgstr "Bitmap renderer nie mógł wyświetlić wartości; typ wartości:" #: ../src/generic/fontdlgg.cpp:333 ../src/richtext/richtextfontpage.cpp:337 #: ../src/osx/carbon/fontdlg.cpp:540 ../src/common/stockitem.cpp:143 msgid "Bold" msgstr "Pogrubiony" #: ../src/richtext/richtextborderspage.cpp:256 #: ../src/richtext/richtextborderspage.cpp:389 msgid "Border" msgstr "Obramowanie" #: ../src/richtext/richtextformatdlg.cpp:368 msgid "Borders" msgstr "Ramki" #: ../src/richtext/richtextsizepage.cpp:285 ../src/common/stockitem.cpp:144 msgid "Bottom" msgstr "Dolny" #: ../src/generic/prntdlgg.cpp:898 msgid "Bottom margin (mm):" msgstr "Dolny margines (mm):" #: ../src/richtext/richtextbuffer.cpp:8861 msgid "Box Properties" msgstr "&Właściwości bloku" #: ../src/richtext/richtextstyles.cpp:1061 msgid "Box styles" msgstr "Style bloku" #: ../src/common/filepickercmn.cpp:43 ../src/common/filepickercmn.cpp:44 msgid "Browse" msgstr "Przeglądaj" #: ../src/richtext/richtextliststylepage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:195 msgid "Bullet &Alignment:" msgstr "&Wyrównanie wypunktowania:" #: ../src/richtext/richtextliststylepage.cpp:309 msgid "Bullet style" msgstr "Styl wypunktowania" #: ../src/richtext/richtextformatdlg.cpp:342 msgid "Bullets" msgstr "Wypunktowania" #: ../src/common/paper.cpp:99 msgid "C sheet, 17 x 22 in" msgstr "Arkusz C, 17 x 22 cali" #: ../src/generic/logg.cpp:520 msgid "C&lear" msgstr "&Wyczyść" #: ../src/generic/fontdlgg.cpp:406 msgid "C&olour:" msgstr "K&olor:" #: ../src/common/paper.cpp:124 msgid "C3 Envelope, 324 x 458 mm" msgstr "Koperta C3, 324 x 458 mm" #: ../src/common/paper.cpp:125 msgid "C4 Envelope, 229 x 324 mm" msgstr "Koperta C4, 229 x 324 mm" #: ../src/common/paper.cpp:123 msgid "C5 Envelope, 162 x 229 mm" msgstr "Koperta C5, 162 x 229 mm" #: ../src/common/paper.cpp:126 msgid "C6 Envelope, 114 x 162 mm" msgstr "Koperta C6, 114 x 162 mm" #: ../src/common/paper.cpp:127 msgid "C65 Envelope, 114 x 229 mm" msgstr "Koperta C65, 114 x 229 mm" #: ../src/common/accelcmn.cpp:66 msgid "CANCEL" msgstr "ANULUJ" #: ../src/common/accelcmn.cpp:70 msgid "CAPITAL" msgstr "CAPS" #: ../src/common/stockitem.cpp:146 msgid "CD-Rom" msgstr "CD-Rom" #: ../src/html/chm.cpp:815 ../src/html/chm.cpp:874 msgid "CHM handler currently supports only local files!" msgstr "Obsługa CHM obecnie wspiera tylko pliki lokalne!" #: ../src/common/accelcmn.cpp:67 msgid "CLEAR" msgstr "WYCZYŚĆ" #: ../src/common/accelcmn.cpp:111 msgid "COMMAND" msgstr "POLECENIE" #: ../src/richtext/richtextfontpage.cpp:291 msgid "Ca&pitals" msgstr "&Duże litery" #: ../src/common/cmdproc.cpp:267 msgid "Can't &Undo " msgstr "Nie można &cofnąć " #: ../src/common/image.cpp:2686 msgid "Can't automatically determine the image format for non-seekable input." msgstr "" "Nie można automatycznie określić formatu obrazu dla nieprzeszukiwalnego " "wejścia." #: ../src/msw/registry.cpp:505 #, c-format msgid "Can't close registry key '%s'" msgstr "Nie można zamknąć klucza rejestru '%s'" #: ../src/msw/registry.cpp:583 #, c-format msgid "Can't copy values of unsupported type %d." msgstr "Nie można kopiować wartości nieobsługiwanego typu %d." #: ../src/msw/registry.cpp:486 #, c-format msgid "Can't create registry key '%s'" msgstr "Nie można utworzyć klucza rejestru '%s'" #: ../src/msw/thread.cpp:696 ../src/os2/thread.cpp:494 msgid "Can't create thread" msgstr "Nie można utworzyć wątku" #: ../src/msw/window.cpp:3783 #, c-format msgid "Can't create window of class %s" msgstr "Nie można utworzyć okna klasy '%s'" #: ../src/msw/registry.cpp:776 #, c-format msgid "Can't delete key '%s'" msgstr "Nie można usunąć klucza '%s'" #: ../src/msw/iniconf.cpp:458 ../src/os2/iniconf.cpp:471 #, c-format msgid "Can't delete the INI file '%s'" msgstr "Nie można usunąć pliku INI '%s'" #: ../src/msw/registry.cpp:804 #, c-format msgid "Can't delete value '%s' from key '%s'" msgstr "Nie można usunąć wartości '%s' z klucza '%s'" #: ../src/msw/registry.cpp:1161 #, c-format msgid "Can't enumerate subkeys of key '%s'" msgstr "Nie można wyliczyć podkluczy klucza '%s'" #: ../src/msw/registry.cpp:1116 #, c-format msgid "Can't enumerate values of key '%s'" msgstr "Nie można wyliczyć wartości klucza '%s'" #: ../src/msw/registry.cpp:1379 #, c-format msgid "Can't export value of unsupported type %d." msgstr "Nie można wyeksportować wartości nieobsługiwanego typu %d." #: ../src/common/ffile.cpp:236 #, c-format msgid "Can't find current position in file '%s'" msgstr "Nie można znaleźć bieżącej pozycji w pliku '%s'" #: ../src/msw/registry.cpp:416 #, c-format msgid "Can't get info about registry key '%s'" msgstr "Nie można uzyskać informacji o kluczu rejestru '%s'" #: ../src/common/zstream.cpp:346 msgid "Can't initialize zlib deflate stream." msgstr "Nie można zainicjować strumienia kompresji biblioteki zlib." #: ../src/common/zstream.cpp:185 msgid "Can't initialize zlib inflate stream." msgstr "Nie można zainicjować strumienia dekompresji biblioteki zlib." #: ../src/msw/fswatcher.cpp:432 #, c-format msgid "Can't monitor non-existent directory \"%s\" for changes." msgstr "Nie można monitorować zmian w nieistniejącym folderze \"%s\"." #: ../src/msw/registry.cpp:452 #, c-format msgid "Can't open registry key '%s'" msgstr "Nie można otworzyć klucza rejestru '%s'" #: ../src/common/zstream.cpp:252 #, c-format msgid "Can't read from inflate stream: %s" msgstr "Nie można czytać z dekompresowanego strumienia: %s" #: ../src/common/zstream.cpp:244 msgid "Can't read inflate stream: unexpected EOF in underlying stream." msgstr "" "Nie można odczytać dekompresowanego strumienia: nieoczekiwany koniec w " "strumieniu." #: ../src/msw/registry.cpp:1048 #, c-format msgid "Can't read value of '%s'" msgstr "Nie można odczytać wartości '%s'" #: ../src/msw/registry.cpp:877 ../src/msw/registry.cpp:909 #: ../src/msw/registry.cpp:971 #, c-format msgid "Can't read value of key '%s'" msgstr "Nie można odczytać wartości klucza '%s'" #: ../src/common/image.cpp:2483 #, c-format msgid "Can't save image to file '%s': unknown extension." msgstr "Nie można zapisać obrazu do pliku '%s': nieznane rozszerzenie." #: ../src/generic/logg.cpp:579 ../src/generic/logg.cpp:996 msgid "Can't save log contents to file." msgstr "Nie można zapisać zawartości dziennika w pliku." # ustalić? #: ../src/msw/thread.cpp:652 ../src/os2/thread.cpp:477 msgid "Can't set thread priority" msgstr "Nie można zmienić priorytetu wątku" #: ../src/msw/registry.cpp:895 ../src/msw/registry.cpp:939 #: ../src/msw/registry.cpp:1065 #, c-format msgid "Can't set value of '%s'" msgstr "Nie można nadać wartości '%s'" #: ../src/unix/utilsunx.cpp:357 msgid "Can't write to child process's stdin" msgstr "" #: ../src/common/zstream.cpp:427 #, c-format msgid "Can't write to deflate stream: %s" msgstr "Nie można zapisywać do kompresowanego strumienia: %s" #: ../include/wx/msgdlg.h:274 ../src/generic/dirdlgg.cpp:107 #: ../src/richtext/richtextstyledlg.cpp:300 ../src/common/stockitem.cpp:145 #: ../src/msw/msgdlg.cpp:489 ../src/msw/progdlg.cpp:673 #: ../src/gtk1/fontdlg.cpp:144 ../src/motif/msgdlg.cpp:196 msgid "Cancel" msgstr "Zrezygnuj" #: ../src/os2/thread.cpp:116 msgid "Cannot create mutex." msgstr "Nie można utworzyć muteksu." #: ../src/osx/carbon/dataview.cpp:895 msgid "Cannot create new column's ID. Probably max. number of columns reached." msgstr "" "Nie można utworzyć nowego ID kolumny. Prawdopodobnie została osiągnięta " "maks. liczba kolumn." #: ../src/common/filefn.cpp:1335 #, c-format msgid "Cannot enumerate files '%s'" msgstr "Nie można wyliczyć plików '%s'" #: ../src/msw/dir.cpp:264 #, c-format msgid "Cannot enumerate files in directory '%s'" msgstr "Nie można wyliczyć plików w katalogu '%s'" #: ../src/msw/dialup.cpp:542 #, c-format msgid "Cannot find active dialup connection: %s" msgstr "Nie można znaleźć aktywnego połączenia dialup: %s" #: ../src/msw/dialup.cpp:848 msgid "Cannot find the location of address book file" msgstr "Nie można znaleźć lokalizacji pliku książki adresowej" #: ../src/msw/ole/automtn.cpp:562 #, c-format msgid "Cannot get an active instance of \"%s\"" msgstr "NIe można znaleźć aktywnej instancji \"%s\"" #: ../src/unix/threadpsx.cpp:1030 #, c-format msgid "Cannot get priority range for scheduling policy %d." msgstr "Nie można uzyskać zakresu priorytetów strategii harmogramowania %d." #: ../src/unix/utilsunx.cpp:983 msgid "Cannot get the hostname" msgstr "Nie można pobrać nazwy serwera" #: ../src/unix/utilsunx.cpp:1019 msgid "Cannot get the official hostname" msgstr "Nie można pobrać oficjalnej nazwy serwera" #: ../src/msw/dialup.cpp:949 msgid "Cannot hang up - no active dialup connection." msgstr "Nie można rozłączyć - brak aktywnego połączenia dialup." #: ../include/wx/msw/ole/oleutils.h:52 msgid "Cannot initialize OLE" msgstr "Nie można zainicjować OLE" #: ../src/common/socket.cpp:847 msgid "Cannot initialize sockets" msgstr "" #: ../src/msw/volume.cpp:620 #, c-format msgid "Cannot load icon from '%s'." msgstr "Nie można wczytać ikony z '%s'." #: ../src/xrc/xmlres.cpp:361 #, c-format msgid "Cannot load resources from '%s'." msgstr "Nie można wczytać zasobów z pliku '%s'." #: ../src/xrc/xmlres.cpp:746 #, c-format msgid "Cannot load resources from file '%s'." msgstr "Nie można wczytać zasobów z pliku '%s'." #: ../src/html/htmlfilt.cpp:137 #, c-format msgid "Cannot open HTML document: %s" msgstr "Nie można otworzyć dokumentu HTML: %s" #: ../src/html/helpdata.cpp:664 #, c-format msgid "Cannot open HTML help book: %s" msgstr "Nie można otworzyć książki pomocy HTML: %s" #: ../src/html/helpdata.cpp:297 #, c-format msgid "Cannot open contents file: %s" msgstr "Nie można otworzyć pliku spisu treści: %s" #: ../src/generic/dcpsg.cpp:1751 msgid "Cannot open file for PostScript printing!" msgstr "Nie można otworzyć pliku dla drukowania postscriptowego!" #: ../src/html/helpdata.cpp:311 #, c-format msgid "Cannot open index file: %s" msgstr "Nie można otworzyć pliku indeksowego: %s" #: ../src/xrc/xmlres.cpp:728 #, c-format msgid "Cannot open resources file '%s'." msgstr "Nie można wczytać zasobów z pliku '%s'." #: ../src/html/helpwnd.cpp:1537 msgid "Cannot print empty page." msgstr "Nie można wydrukować pustej strony." #: ../src/msw/volume.cpp:507 #, c-format msgid "Cannot read typename from '%s'!" msgstr "Nie można odczytać nazwy typu z '%s'!" #: ../src/os2/thread.cpp:527 #, c-format msgid "Cannot resume thread %lu" msgstr "Nie można wznowić wątku %lu" #: ../src/msw/thread.cpp:923 #, c-format msgid "Cannot resume thread %lx" msgstr "Nie można wznowić wątku %lx" #: ../src/unix/threadpsx.cpp:1011 msgid "Cannot retrieve thread scheduling policy." msgstr "Nie można uzyskać strategii harmonogramowania wątków." #: ../src/common/intl.cpp:542 #, c-format msgid "Cannot set locale to language \"%s\"." msgstr "Nie można ustawić lokalizacji na język \"%s\"." #: ../src/unix/threadpsx.cpp:831 ../src/msw/thread.cpp:569 msgid "Cannot start thread: error writing TLS." msgstr "Nie można wystartować wątku: błąd zapisu TLS." #: ../src/os2/thread.cpp:513 #, c-format msgid "Cannot suspend thread %lu" msgstr "Nie można zawiesić wątku %lu" #: ../src/msw/thread.cpp:907 #, c-format msgid "Cannot suspend thread %lx" msgstr "Nie można zawiesić wątku %lx" #: ../src/msw/thread.cpp:830 msgid "Cannot wait for thread termination" msgstr "Nie można czekać na zakończenie wątku" #: ../src/html/helpwnd.cpp:546 msgid "Case sensitive" msgstr "Uwzględniaj wielkość liter" #: ../src/propgrid/manager.cpp:1495 msgid "Categorized Mode" msgstr "Tryb skategoryzowany" #: ../src/richtext/richtextbuffer.cpp:9273 msgid "Cell Properties" msgstr "&Właściwości komórki" #: ../src/common/fmapbase.cpp:161 msgid "Celtic (ISO-8859-14)" msgstr "Celtycki (ISO-8859-14)" #: ../src/richtext/richtextindentspage.cpp:160 #: ../src/richtext/richtextliststylepage.cpp:349 msgid "Cen&tred" msgstr "wyś&rodkowany" #: ../src/common/stockitem.cpp:170 msgid "Centered" msgstr "Wyrównanie do środka" #: ../src/common/fmapbase.cpp:149 msgid "Central European (ISO-8859-2)" msgstr "Środkowoeuropejski (ISO-8859-2)" #: ../src/richtext/richtextliststylepage.cpp:250 #: ../src/richtext/richtextbulletspage.cpp:200 msgid "Centre" msgstr "Wyrównanie do środka" #: ../src/richtext/richtextindentspage.cpp:162 #: ../src/richtext/richtextindentspage.cpp:164 #: ../src/richtext/richtextliststylepage.cpp:351 #: ../src/richtext/richtextliststylepage.cpp:353 msgid "Centre text." msgstr "Wyśrodkowanie tekstu." #: ../src/richtext/richtextsizepage.cpp:284 msgid "Centred" msgstr "wyśrodkowany" #: ../src/richtext/richtextliststylepage.cpp:280 #: ../src/richtext/richtextbulletspage.cpp:232 msgid "Ch&oose..." msgstr "&Wybierz..." #: ../src/richtext/richtextbuffer.cpp:4029 msgid "Change List Style" msgstr "Zmień styl listy" #: ../src/richtext/richtextbuffer.cpp:3380 msgid "Change Object Style" msgstr "Zmień styl obiektu" #: ../src/richtext/richtextbuffer.cpp:3646 msgid "Change Properties" msgstr "Zmień właściwości" #: ../src/richtext/richtextbuffer.cpp:3197 msgid "Change Style" msgstr "Zmień styl" #: ../src/common/fileconf.cpp:372 #, c-format msgid "Changes won't be saved to avoid overwriting the existing file \"%s\"" msgstr "" "Zmiany nie zostaną zapisane, aby uniknąć nadpisania istniejącego pliku \"%s\"" #: ../src/richtext/richtextstyles.cpp:1059 msgid "Character styles" msgstr "Style znaku" #: ../src/richtext/richtextliststylepage.cpp:224 #: ../src/richtext/richtextliststylepage.cpp:226 #: ../src/richtext/richtextbulletspage.cpp:174 #: ../src/richtext/richtextbulletspage.cpp:176 msgid "Check to add a period after the bullet." msgstr "Zaznacz aby dodać kropkę po wypunktowaniu." #: ../src/richtext/richtextliststylepage.cpp:238 #: ../src/richtext/richtextliststylepage.cpp:240 #: ../src/richtext/richtextbulletspage.cpp:188 #: ../src/richtext/richtextbulletspage.cpp:190 msgid "Check to add a right parenthesis." msgstr "Zaznacz aby dodać prawy nawias." #: ../src/richtext/richtextliststylepage.cpp:231 #: ../src/richtext/richtextliststylepage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:181 #: ../src/richtext/richtextbulletspage.cpp:183 msgid "Check to enclose the bullet in parentheses." msgstr "Zaznacz aby dołączyć wypunktowanie w nawiasach." #: ../src/osx/carbon/fontdlg.cpp:542 ../src/osx/carbon/fontdlg.cpp:544 msgid "Check to make the font bold." msgstr "Zaznacz aby pogrubić czcionkę." #: ../src/osx/carbon/fontdlg.cpp:549 ../src/osx/carbon/fontdlg.cpp:551 msgid "Check to make the font italic." msgstr "Zaznacz aby uzyskać kursywę czcionki." #: ../src/osx/carbon/fontdlg.cpp:558 ../src/osx/carbon/fontdlg.cpp:560 msgid "Check to make the font underlined." msgstr "Zaznacz aby podkreślić czcionkę." #: ../src/richtext/richtextstyledlg.cpp:289 #: ../src/richtext/richtextstyledlg.cpp:291 msgid "Check to restart numbering." msgstr "Zaznacz aby ponownie uruchomić numerację." #: ../src/richtext/richtextfontpage.cpp:286 #: ../src/richtext/richtextfontpage.cpp:288 msgid "Check to show a line through the text." msgstr "Zaznacz aby pokazać linię poprzez tekst." #: ../src/richtext/richtextfontpage.cpp:293 #: ../src/richtext/richtextfontpage.cpp:295 msgid "Check to show the text in capitals." msgstr "Zaznacz aby wyświetlić tekst w dużych literach." #: ../src/richtext/richtextfontpage.cpp:300 #: ../src/richtext/richtextfontpage.cpp:302 msgid "Check to show the text in small capitals." msgstr "Zaznacz aby wyświetlić tekst w dużych literach." #: ../src/richtext/richtextfontpage.cpp:314 #: ../src/richtext/richtextfontpage.cpp:316 msgid "Check to show the text in subscript." msgstr "Zaznacz aby wyświetlić tekst w indeksie dolnym." #: ../src/richtext/richtextfontpage.cpp:307 #: ../src/richtext/richtextfontpage.cpp:309 msgid "Check to show the text in superscript." msgstr "Zaznacz aby wyświetlić tekst w indeksie górnym." #: ../src/msw/dialup.cpp:784 msgid "Choose ISP to dial" msgstr "Wybierz ISP do połączenia" #: ../src/propgrid/props.cpp:1643 msgid "Choose a directory:" msgstr "Wybierz katalog" #: ../src/propgrid/props.cpp:1702 msgid "Choose a file" msgstr "Wybierz plik" #: ../src/generic/colrdlgg.cpp:144 ../src/gtk/colordlg.cpp:63 msgid "Choose colour" msgstr "Wybierz kolor" #: ../src/generic/fontpickerg.cpp:50 ../src/gtk/fontdlg.cpp:75 #: ../src/gtk1/fontdlg.cpp:125 msgid "Choose font" msgstr "Wybierz czcionkę" #: ../src/common/module.cpp:74 #, c-format msgid "Circular dependency involving module \"%s\" detected." msgstr "" #: ../src/aui/tabmdi.cpp:108 ../src/generic/mdig.cpp:97 msgid "Cl&ose" msgstr "Zam&knij" #: ../src/msw/ole/automtn.cpp:673 msgid "Class not registered." msgstr "Klasa niezarejestrowana." #: ../src/common/stockitem.cpp:147 #, fuzzy msgid "Clear" msgstr "Wy&czyść" #: ../src/generic/logg.cpp:520 msgid "Clear the log contents" msgstr "Wyczyść zawartość dziennika" #: ../src/richtext/richtextstyledlg.cpp:252 #: ../src/richtext/richtextstyledlg.cpp:254 msgid "Click to apply the selected style." msgstr "Kliknij, aby zastosować wybrany styl." #: ../src/richtext/richtextliststylepage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:283 #: ../src/richtext/richtextbulletspage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:235 msgid "Click to browse for a symbol." msgstr "Kliknij, aby wyszukać symbol." #: ../src/osx/carbon/fontdlg.cpp:589 ../src/osx/carbon/fontdlg.cpp:591 msgid "Click to cancel changes to the font." msgstr "Kliknij, aby anulować zmiany czcionki." #: ../src/generic/fontdlgg.cpp:472 ../src/generic/fontdlgg.cpp:491 msgid "Click to cancel the font selection." msgstr "Anulowanie wyboru czcionki" #: ../src/osx/carbon/fontdlg.cpp:570 ../src/osx/carbon/fontdlg.cpp:572 msgid "Click to change the font colour." msgstr "Kliknij, aby zmienić kolor czcionki." #: ../src/richtext/richtextfontpage.cpp:276 #: ../src/richtext/richtextfontpage.cpp:278 msgid "Click to change the text background colour." msgstr "Kliknij, aby zmienić kolor tła tekstu." #: ../src/richtext/richtextfontpage.cpp:263 #: ../src/richtext/richtextfontpage.cpp:265 msgid "Click to change the text colour." msgstr "Kliknij, aby zmienić kolor tekstu." #: ../src/richtext/richtextliststylepage.cpp:195 #: ../src/richtext/richtextliststylepage.cpp:197 msgid "Click to choose the font for this level." msgstr "Kliknij, aby wybrać czcionkę dla tego poziomu." #: ../src/richtext/richtextstyledlg.cpp:279 #: ../src/richtext/richtextstyledlg.cpp:281 msgid "Click to close this window." msgstr "Kliknij, aby zamknąć to okno." #: ../src/osx/carbon/fontdlg.cpp:596 ../src/osx/carbon/fontdlg.cpp:598 msgid "Click to confirm changes to the font." msgstr "Kliknij, aby potwierdzić zmiany czcionki." #: ../src/generic/fontdlgg.cpp:477 ../src/generic/fontdlgg.cpp:479 #: ../src/generic/fontdlgg.cpp:484 ../src/generic/fontdlgg.cpp:486 msgid "Click to confirm the font selection." msgstr "Potwierdzenie wyboru czcionki" #: ../src/richtext/richtextstyledlg.cpp:244 #: ../src/richtext/richtextstyledlg.cpp:246 msgid "Click to create a new box style." msgstr "Kliknij, aby utworzyć nowy styl bloku." #: ../src/richtext/richtextstyledlg.cpp:226 #: ../src/richtext/richtextstyledlg.cpp:228 msgid "Click to create a new character style." msgstr "Kliknij, aby utworzyć nowy styl znaków." #: ../src/richtext/richtextstyledlg.cpp:238 #: ../src/richtext/richtextstyledlg.cpp:240 msgid "Click to create a new list style." msgstr "Kliknij, aby utworzyć nowy styl listy." #: ../src/richtext/richtextstyledlg.cpp:232 #: ../src/richtext/richtextstyledlg.cpp:234 msgid "Click to create a new paragraph style." msgstr "Kliknij, aby utworzyć nowy styl paragrafu." #: ../src/richtext/richtexttabspage.cpp:137 #: ../src/richtext/richtexttabspage.cpp:139 msgid "Click to create a new tab position." msgstr "Kliknij, aby utworzyć nową pozycję karty." #: ../src/richtext/richtexttabspage.cpp:149 #: ../src/richtext/richtexttabspage.cpp:151 msgid "Click to delete all tab positions." msgstr "Kliknij, aby usunąć wszystkie pozycje kart." #: ../src/richtext/richtextstyledlg.cpp:270 #: ../src/richtext/richtextstyledlg.cpp:272 msgid "Click to delete the selected style." msgstr "Kliknij, aby usunąć wybrany styl." #: ../src/richtext/richtexttabspage.cpp:143 #: ../src/richtext/richtexttabspage.cpp:145 msgid "Click to delete the selected tab position." msgstr "Kliknij, aby usunąć wybraną pozycję karty." #: ../src/richtext/richtextstyledlg.cpp:264 #: ../src/richtext/richtextstyledlg.cpp:266 msgid "Click to edit the selected style." msgstr "Kliknij, aby edytować wybrany styl." #: ../src/richtext/richtextstyledlg.cpp:258 #: ../src/richtext/richtextstyledlg.cpp:260 msgid "Click to rename the selected style." msgstr "Kliknij, aby zmienić nazwę wybranego stylu." #: ../src/generic/dbgrptg.cpp:97 ../src/generic/progdlgg.cpp:804 #: ../src/generic/progdlgg.cpp:809 ../src/richtext/richtextstyledlg.cpp:277 #: ../src/richtext/richtextsymboldlg.cpp:476 ../src/common/stockitem.cpp:148 #: ../src/msw/progdlg.cpp:170 ../src/msw/progdlg.cpp:679 #: ../src/html/helpdlg.cpp:90 msgid "Close" msgstr "Zamknij" #: ../src/aui/tabmdi.cpp:109 ../src/generic/mdig.cpp:98 msgid "Close All" msgstr "Zamknij wszystko" #: ../src/common/stockitem.cpp:266 msgid "Close current document" msgstr "Zamknij bieżący dokument" #: ../src/generic/logg.cpp:522 msgid "Close this window" msgstr "Zamknij to okno" #: ../src/common/stockitem.cpp:193 #, fuzzy msgid "Color" msgstr "Kolor" #: ../src/richtext/richtextformatdlg.cpp:723 msgid "Colour" msgstr "Kolor" #: ../src/msw/colordlg.cpp:156 #, c-format msgid "Colour selection dialog failed with error %0lx." msgstr "Okno wyboru koloru nie powiodło się z błędem %0lx." #: ../src/osx/carbon/fontdlg.cpp:566 msgid "Colour:" msgstr "Kolor:" #: ../src/osx/carbon/dataview.cpp:900 msgid "Column could not be added." msgstr "Kolumna nie mogła być dodana." #: ../src/osx/carbon/dataview.cpp:899 msgid "Column description could not be initialized." msgstr "Opis kolumny nie może być zainicjowany." # catalog file --> ? # domain --> ? #: ../src/osx/carbon/dataview.cpp:1538 ../src/osx/carbon/dataview.cpp:1559 msgid "Column index not found." msgstr "Nie znaleziono indeksu kolumny." #: ../src/osx/carbon/dataview.cpp:1614 msgid "Column width could not be determined" msgstr "Szerokość kolumny nie może być ustalona" #: ../src/osx/carbon/dataview.cpp:901 msgid "Column width could not be set." msgstr "Szerokość kolumny nie może być ustawiona." #: ../src/common/init.cpp:188 #, c-format msgid "" "Command line argument %d couldn't be converted to Unicode and will be " "ignored." msgstr "" "Argument wiersza polecenia %d nie może zostać zamieniony na Unicode i " "zostanie zignorowany." #: ../src/msw/fontdlg.cpp:119 #, c-format msgid "Common dialog failed with error code %0lx." msgstr "" #: ../src/gtk/window.cpp:4284 msgid "" "Compositing not supported by this system, please enable it in your Window " "Manager." msgstr "" "Kompozycje nie są wspierane w tym systemie, proszę je włączyć w managerze." #: ../src/html/helpwnd.cpp:1554 msgid "Compressed HTML Help file (*.chm)|*.chm|" msgstr "Skompresowane pliki pomocy HTML Help (*.chm)|*.chm|" #: ../src/generic/dirctrlg.cpp:544 msgid "Computer" msgstr "Komputer" #: ../src/common/fileconf.cpp:965 #, c-format msgid "Config entry name cannot start with '%c'." msgstr "Nazwa pozycji konfiguracji nie może zaczynać się od '%c'." #: ../src/gtk/filedlg.cpp:59 msgid "Confirm" msgstr "Potwierdź" #: ../src/msw/mimetype.cpp:739 msgid "Confirm registry update" msgstr "Potwierdź uaktualnienie rejestru" #: ../src/html/htmlwin.cpp:544 msgid "Connecting..." msgstr "Łączenie..." #: ../src/html/helpwnd.cpp:482 msgid "Contents" msgstr "Zawartość" #: ../src/common/strconv.cpp:2261 #, c-format msgid "Conversion to charset '%s' doesn't work." msgstr "Nie działa konwersja do zestawu znaków '%s'." #: ../src/common/stockitem.cpp:149 msgid "Convert" msgstr "KonwertujZawartość" #: ../src/html/htmlwin.cpp:1057 #, c-format msgid "Copied to clipboard:\"%s\"" msgstr "Skopiowano do schowka:\"%s\"" #: ../src/generic/prntdlgg.cpp:252 msgid "Copies:" msgstr "Kopie:" #: ../src/common/stockitem.cpp:150 ../src/stc/stc_i18n.cpp:18 msgid "Copy" msgstr "Kopiuj" #: ../src/common/stockitem.cpp:258 msgid "Copy selection" msgstr "Kopiuj wybór" #: ../src/html/chm.cpp:718 #, c-format msgid "Could not create temporary file '%s'" msgstr "Nie można utworzyć tymczasowego pliku '%s'" #: ../src/osx/carbon/dataview.cpp:1285 ../src/osx/carbon/dataview.cpp:1672 msgid "Could not determine column index." msgstr "Nie można określić indeksu kolumny." #: ../src/osx/carbon/dataview.cpp:876 msgid "Could not determine column's position" msgstr "Nie można określić pozycji kolumny" #: ../src/osx/carbon/dataview.cpp:843 msgid "Could not determine number of columns." msgstr "Nie można określić ilości kolumn" #: ../src/osx/carbon/dataview.cpp:975 msgid "Could not determine number of items" msgstr "Nie można określić ilości elementów" #: ../src/html/chm.cpp:273 #, c-format msgid "Could not extract %s into %s: %s" msgstr "Nie można wydzielić %s do %s: %s" #: ../src/generic/tabg.cpp:1048 msgid "Could not find tab for id" msgstr "Nie można znaleźć (tab) dla (id)" #: ../src/osx/carbon/dataview.cpp:2556 ../src/osx/carbon/dataview.cpp:2591 #: ../src/osx/carbon/dataview.cpp:2615 ../src/osx/carbon/dataview.cpp:2636 #: ../src/osx/carbon/dataview.cpp:2773 msgid "Could not get header description." msgstr "Nie można uzyskać opisu nagłówku." #: ../src/osx/carbon/dataview.cpp:1169 ../src/osx/carbon/dataview.cpp:1195 msgid "Could not get items." msgstr "Nie można uzyskać elementów." #: ../src/osx/carbon/dataview.cpp:2659 ../src/osx/carbon/dataview.cpp:2724 msgid "Could not get property flags." msgstr "Nie można pobrać flag właściwości." #: ../src/osx/carbon/dataview.cpp:726 msgid "Could not get selected items." msgstr "Nie można pobrać wybranych elementów." #: ../src/html/chm.cpp:444 #, c-format msgid "Could not locate file '%s'." msgstr "Nie odnaleziono pliku '%s'." #: ../src/osx/carbon/dataview.cpp:845 msgid "Could not remove column." msgstr "Nie można usunąć kolumny." #: ../src/osx/carbon/dataview.cpp:642 msgid "Could not retrieve number of items" msgstr "Nie można pobrać ilości elementów" #: ../src/osx/carbon/dataview.cpp:2572 msgid "Could not set alignment." msgstr "Nie można ustawić wyrównania." #: ../src/osx/carbon/dataview.cpp:2803 msgid "Could not set column width." msgstr "Nie można ustawić szerokości kolumny." #: ../src/common/filefn.cpp:1568 msgid "Could not set current working directory" msgstr "Nie udało się ustawić katalogu roboczego" #: ../src/osx/carbon/dataview.cpp:2775 msgid "Could not set header description." msgstr "Nie można ustawić opisu nagłówka." #: ../src/osx/carbon/dataview.cpp:2596 msgid "Could not set icon." msgstr "Nie można ustawić ikony." #: ../src/osx/carbon/dataview.cpp:2617 msgid "Could not set maximum width." msgstr "Nie można ustawić maksymalnej szerokości." #: ../src/osx/carbon/dataview.cpp:2638 msgid "Could not set minimum width." msgstr "Nie można ustawić minimalnej szerokości." #: ../src/osx/carbon/dataview.cpp:2664 ../src/osx/carbon/dataview.cpp:2729 msgid "Could not set property flags." msgstr "Nie można ustawić flag własności." #: ../src/common/prntbase.cpp:1985 msgid "Could not start document preview." msgstr "Nie można wystartować podglądu dokumentu." #: ../src/generic/printps.cpp:178 ../src/msw/printwin.cpp:210 #: ../src/gtk/print.cpp:1086 ../src/gtk/gnome/gprint.cpp:922 msgid "Could not start printing." msgstr "Nie można rozpocząć drukowania." # przenieść? #: ../src/common/wincmn.cpp:2114 msgid "Could not transfer data to window" msgstr "Nie można przenieść danych do okna" #: ../src/os2/thread.cpp:160 msgid "Couldn't acquire a mutex lock" msgstr "Nie można przechwycić muteksu" #: ../src/msw/imaglist.cpp:166 ../src/msw/imaglist.cpp:197 #: ../src/msw/imaglist.cpp:209 ../src/msw/dragimag.cpp:193 #: ../src/msw/dragimag.cpp:232 msgid "Couldn't add an image to the image list." msgstr "Nie można dodać obrazu do listy obrazów." #: ../src/msw/timer.cpp:134 ../src/os2/timer.cpp:113 msgid "Couldn't create a timer" msgstr "Nie można utworzyć stopera" #: ../src/osx/carbon/overlay.cpp:122 msgid "Couldn't create the overlay window" msgstr "Nie można utworzyć okna nakładki" #: ../src/common/translation.cpp:2024 msgid "Couldn't enumerate translations" msgstr "Nie można policzyć tłumaczeń" # dynamicznej? nieładne, a chyba zbędne #: ../src/common/dynlib.cpp:152 #, c-format msgid "Couldn't find symbol '%s' in a dynamic library" msgstr "Nie można znaleźć symbolu '%s' w bibliotece" #: ../src/gtk/print.cpp:2023 msgid "Couldn't get hatch style from wxBrush." msgstr "Nie można uzyskać stylów kreskowania z wxBrush." #: ../src/msw/thread.cpp:950 msgid "Couldn't get the current thread pointer" msgstr "Nie można pobrać wskaźnika aktualnego wątku" #: ../src/osx/carbon/overlay.cpp:129 msgid "Couldn't init the context on the overlay window" msgstr "Nie można zainicjować kontekstu w oknie nakładki" #: ../src/common/imaggif.cpp:263 msgid "Couldn't initialize GIF hash table." msgstr "" #: ../src/common/imagpng.cpp:657 msgid "Couldn't load a PNG image - file is corrupted or not enough memory." msgstr "" "Nie można wczytać obrazu PNG - plik jest uszkodzony lub zabrakło pamięci." #: ../src/unix/sound.cpp:470 #, c-format msgid "Couldn't load sound data from '%s'." msgstr "Nie można wczytać danych dźwiękowych '%s'." #: ../src/msw/dirdlg.cpp:441 msgid "Couldn't obtain folder name" msgstr "Nie można pobrać nazwy folderu" #: ../src/unix/sound_sdl.cpp:229 #, c-format msgid "Couldn't open audio: %s" msgstr "Nie można otworzyć dźwięku: %s" #: ../src/msw/ole/dataobj.cpp:350 #, c-format msgid "Couldn't register clipboard format '%s'." msgstr "Nie można zarejestrować formatu schowka '%s'." #: ../src/os2/thread.cpp:177 msgid "Couldn't release a mutex" msgstr "Muteks nie mógł być uwolniony" #: ../src/msw/listctrl.cpp:756 #, c-format msgid "Couldn't retrieve information about list control item %d." msgstr "Nie można pobrać informacji o elemencie listy kontroli %d." #: ../src/common/imagpng.cpp:746 ../src/common/imagpng.cpp:757 #: ../src/common/imagpng.cpp:767 msgid "Couldn't save PNG image." msgstr "Nie można zapisać obrazu PNG." #: ../src/msw/thread.cpp:715 msgid "Couldn't terminate thread" msgstr "Nie można zakończyć wątku" #: ../src/common/xtistrm.cpp:170 #, c-format msgid "Create Parameter %s not found in declared RTTI Parameters" msgstr "" #: ../src/generic/dirdlgg.cpp:317 msgid "Create directory" msgstr "Tworzenie katalogu" #: ../src/generic/filedlgg.cpp:228 ../src/generic/dirdlgg.cpp:131 msgid "Create new directory" msgstr "Utwórz nowy katalog" #: ../src/common/accelcmn.cpp:322 #, fuzzy msgid "Ctrl+" msgstr "Ctrl-" #: ../src/richtext/richtextctrl.cpp:325 ../src/osx/textctrl_osx.cpp:582 #: ../src/common/stockitem.cpp:151 ../src/msw/textctrl.cpp:2283 msgid "Cu&t" msgstr "&Wytnij" #: ../src/generic/filectrlg.cpp:956 msgid "Current directory:" msgstr "Bieżący katalog:" #: ../src/gtk/print.cpp:768 msgid "Custom size" msgstr "Rozmiar użytkownika" #: ../src/common/headerctrlcmn.cpp:60 msgid "Customize Columns" msgstr "Dostosuj kolumny" #: ../src/common/stockitem.cpp:151 ../src/stc/stc_i18n.cpp:17 msgid "Cut" msgstr "Wytnij" #: ../src/common/stockitem.cpp:259 msgid "Cut selection" msgstr "Wytnij wybór" #: ../src/common/fmapbase.cpp:152 msgid "Cyrillic (ISO-8859-5)" msgstr "Cyrylica (ISO-8859-5)" #: ../src/common/paper.cpp:100 msgid "D sheet, 22 x 34 in" msgstr "Arkusz D, 22 x 34 cali" #: ../src/msw/dde.cpp:708 msgid "DDE poke request failed" msgstr "żądanie danych z serwera DDE nie powiodło się" #: ../src/common/accelcmn.cpp:79 msgid "DECIMAL" msgstr "DECIMAL" #: ../src/common/accelcmn.cpp:47 msgid "DEL" msgstr "DEL" #: ../src/common/accelcmn.cpp:48 msgid "DELETE" msgstr "DELETE" #: ../src/common/imagbmp.cpp:1092 msgid "DIB Header: Encoding doesn't match bitdepth." msgstr "Nagłówek DIB: kodowanie nie odpowiada rozdzielczości." #: ../src/common/imagbmp.cpp:1040 msgid "DIB Header: Image height > 32767 pixels for file." msgstr "DIB nagłówek: Wysokość obrazu > 32767 pikseli." # dla pliku? moim zdaniem zbędne #: ../src/common/imagbmp.cpp:1032 msgid "DIB Header: Image width > 32767 pixels for file." msgstr "Nagłówek DIB: Szerokość obrazu > 32767 pikseli." #: ../src/common/imagbmp.cpp:1060 msgid "DIB Header: Unknown bitdepth in file." msgstr "Nagłówek DIB: Plik z nieznaną rozdzielczością." #: ../src/common/imagbmp.cpp:1074 msgid "DIB Header: Unknown encoding in file." msgstr "Nagłówek DIB: Plik z nieznanym kodowaniem." #: ../src/common/accelcmn.cpp:80 msgid "DIVIDE" msgstr "DZIELIĆ" #: ../src/common/paper.cpp:122 msgid "DL Envelope, 110 x 220 mm" msgstr "Koperta DL, 110 x 220 mm" #: ../src/common/accelcmn.cpp:59 msgid "DOWN" msgstr "DÓŁ" #: ../src/richtext/richtextborderspage.cpp:545 msgid "Dashed" msgstr "" #: ../src/osx/carbon/dataview.cpp:1921 msgid "Data object has invalid data format" msgstr "Obiekt danych ma nieprawidłowy format" #: ../src/osx/carbon/dataview.cpp:2491 msgid "Date renderer cannot render value; value type: " msgstr "Render daty nie może renderować wartości; typ wartości:" #: ../src/generic/dbgrptg.cpp:300 #, c-format msgid "Debug report \"%s\"" msgstr "Raport błędów \"%s\"" #: ../src/common/debugrpt.cpp:210 msgid "Debug report couldn't be created." msgstr "Wygenerowanie raport błędów nie powiodło się." #: ../src/common/debugrpt.cpp:558 msgid "Debug report generation has failed." msgstr "Generowanie raportu błędów nie powiodło się." #: ../src/generic/fontdlgg.cpp:323 msgid "Decorative" msgstr "Decorative" #: ../src/common/fmapbase.cpp:796 msgid "Default encoding" msgstr "Kodowanie domyślne" #: ../src/dfb/fontmgr.cpp:180 msgid "Default font" msgstr "Domyślna czcionka" #: ../src/generic/prntdlgg.cpp:515 msgid "Default printer" msgstr "Domyślna drukarka" #: ../src/richtext/richtextbuffer.cpp:7793 ../src/common/stockitem.cpp:152 #: ../src/stc/stc_i18n.cpp:20 msgid "Delete" msgstr "Usuń" #: ../src/richtext/richtexttabspage.cpp:148 msgid "Delete A&ll" msgstr "&Usuń wszystko" #: ../src/richtext/richtextstyledlg.cpp:779 msgid "Delete Style" msgstr "Usuń styl" #: ../src/richtext/richtextctrl.cpp:1231 ../src/richtext/richtextctrl.cpp:1452 msgid "Delete Text" msgstr "Usuń tekst" #: ../src/richtext/richtextbuffer.cpp:10540 msgid "Delete column" msgstr "Usuń kolumnęUsuń wybór" #: ../src/generic/editlbox.cpp:274 msgid "Delete item" msgstr "Usuń pozycję" #: ../src/richtext/richtextbuffer.cpp:10472 msgid "Delete row" msgstr "Usuń wiersz" #: ../src/common/stockitem.cpp:260 msgid "Delete selection" msgstr "Usuń wybór" #: ../src/richtext/richtextstyledlg.cpp:779 #, c-format msgid "Delete style %s?" msgstr "Usuń styl %s?" #: ../src/unix/snglinst.cpp:295 #, c-format msgid "Deleted stale lock file '%s'." msgstr "Nieaktualny plik blokujący '%s' został usunięty." #: ../src/common/module.cpp:124 #, c-format msgid "Dependency \"%s\" of module \"%s\" doesn't exist." msgstr "Zależność \"%s\" z modułu \"%s\" nie istnieje." #: ../src/common/stockitem.cpp:196 msgid "Descending" msgstr "MalejącoKodowanie domyślne" #: ../src/generic/dirctrlg.cpp:626 msgid "Desktop" msgstr "Pulpit" #: ../src/generic/aboutdlgg.cpp:70 msgid "Developed by " msgstr "Opracowane przez" #: ../src/generic/aboutdlgg.cpp:176 msgid "Developers" msgstr "Programiści" #: ../src/msw/dialup.cpp:393 msgid "" "Dial up functions are unavailable because the remote access service (RAS) is " "not installed on this machine. Please install it." msgstr "" "Funkcje Dial up nie są dostępne, ponieważ serwis zdalnego dostępu (RAS) nie " "jest zainstalowany na tej maszynie. Zainstaluj go." #: ../src/generic/tipdlg.cpp:230 msgid "Did you know..." msgstr "Czy wiesz że..." #: ../src/dfb/wrapdfb.cpp:63 #, c-format msgid "DirectFB error %d occurred." msgstr "" #: ../src/motif/filedlg.cpp:219 msgid "Directories" msgstr "Katalogi" #: ../src/common/filefn.cpp:1250 #, c-format msgid "Directory '%s' couldn't be created" msgstr "Nie można utworzyć katalogu '%s'" #: ../src/common/filefn.cpp:1270 #, c-format msgid "Directory '%s' couldn't be deleted" msgstr "Nie można usunąć katalogu '%s'" #: ../src/generic/dirdlgg.cpp:233 msgid "Directory does not exist" msgstr "Katalog nie istnieje" #: ../src/generic/filectrlg.cpp:1412 msgid "Directory doesn't exist." msgstr "Katalog nie istnieje." #: ../src/common/docview.cpp:455 msgid "Discard changes and reload the last saved version?" msgstr "Odrzucić zmiany i wczytać ponownie ostatnio zapisaną wersję?" #: ../src/html/helpwnd.cpp:512 msgid "" "Display all index items that contain given substring. Search is case " "insensitive." msgstr "" "Wyświetla wszystkie elementy indeksu zawierające podany łańcuch. Szuka bez " "uwzględniania wielkości liter." #: ../src/html/helpwnd.cpp:692 msgid "Display options dialog" msgstr "Wyświetl okno dialogowe opcji" #: ../src/html/helpwnd.cpp:326 msgid "Displays help as you browse the books on the left." msgstr "Wyświetla pomoc podczas przeglądania książek po lewej." #: ../src/msw/mimetype.cpp:732 msgid "" "Do you want to overwrite the command used to %s files with extension \"%s" "\" ?\n" "Current value is \n" "%s, \n" "New value is \n" "%s %1" msgstr "" "Chcesz zastąpić polecenie używane do plików %s z rozszerzeniem \"%s\" ?\n" "Bieżaca wartość to \n" "%s, \n" "Nowa wartość to \n" "%s %1" #: ../src/common/docview.cpp:531 #, fuzzy, c-format msgid "Do you want to save changes to %s?" msgstr "Chcesz zapisać zmiany w dokumencie %s?" #: ../src/common/prntbase.cpp:525 msgid "Document:" msgstr "Dokument:" #: ../src/generic/aboutdlgg.cpp:73 msgid "Documentation by " msgstr "Dokumentacja autorstwa" #: ../src/generic/aboutdlgg.cpp:180 msgid "Documentation writers" msgstr "Autorzy dokumentacji" #: ../src/common/sizer.cpp:2680 msgid "Don't Save" msgstr "Nie Zapisuj" #: ../src/msw/frame.cpp:122 ../src/html/htmlwin.cpp:611 msgid "Done" msgstr "Zrobione" #: ../src/generic/progdlgg.cpp:481 ../src/msw/progdlg.cpp:407 msgid "Done." msgstr "Zrobione." #: ../src/richtext/richtextborderspage.cpp:544 msgid "Dotted" msgstr "Kropkowany" #: ../src/richtext/richtextborderspage.cpp:546 #, fuzzy msgid "Double" msgstr "podwójnie" #: ../src/common/paper.cpp:177 msgid "Double Japanese Postcard Rotated 148 x 200 mm" msgstr "Podwójna Japońska Pocztówka Obrócona 148 x 200 mm" #: ../src/common/xtixml.cpp:273 #, c-format msgid "Doubly used id : %d" msgstr "Dwukrotnie użyty identyfikator : %d" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:153 msgid "Down" msgstr "W dół" #: ../src/richtext/richtextctrl.cpp:814 msgid "Drag" msgstr "Przeciągnij" #: ../src/common/paper.cpp:101 msgid "E sheet, 34 x 44 in" msgstr "Arkusz E, 34 x 44 cale" #: ../src/common/accelcmn.cpp:61 msgid "END" msgstr "END" #: ../src/common/accelcmn.cpp:52 msgid "ENTER" msgstr "ENTER" #: ../src/unix/fswatcher_inotify.cpp:535 msgid "EOF while reading from inotify descriptor" msgstr "" #: ../src/common/accelcmn.cpp:64 msgid "ESC" msgstr "ESC" #: ../src/common/accelcmn.cpp:65 msgid "ESCAPE" msgstr "ESCAPE" #: ../src/common/accelcmn.cpp:73 msgid "EXECUTE" msgstr "WYKONAĆ" #: ../src/common/stockitem.cpp:154 #, fuzzy msgid "Edit" msgstr "&Edytuj" #: ../src/generic/editlbox.cpp:272 msgid "Edit item" msgstr "Edytuj pozycję" #: ../include/wx/generic/progdlgg.h:84 msgid "Elapsed time:" msgstr "Upłynęło już:" #: ../src/richtext/richtextsizepage.cpp:350 #: ../src/richtext/richtextsizepage.cpp:352 #: ../src/richtext/richtextsizepage.cpp:462 #: ../src/richtext/richtextsizepage.cpp:464 #, fuzzy msgid "Enable the height value." msgstr "włącz wartość wysokości." #: ../src/richtext/richtextsizepage.cpp:435 #: ../src/richtext/richtextsizepage.cpp:437 msgid "Enable the maximum width value." msgstr "Włącz wartość maksymalnej szerokości." #: ../src/richtext/richtextsizepage.cpp:408 #: ../src/richtext/richtextsizepage.cpp:410 #, fuzzy msgid "Enable the minimum height value." msgstr "Włącz minimalną wartość wysokości." #: ../src/richtext/richtextsizepage.cpp:381 #: ../src/richtext/richtextsizepage.cpp:383 msgid "Enable the minimum width value." msgstr "Włącz wartość minimalnej szerokości." #: ../src/richtext/richtextsizepage.cpp:316 #: ../src/richtext/richtextsizepage.cpp:318 msgid "Enable the width value." msgstr "Włącz wartość szerokości." #: ../src/richtext/richtextsizepage.cpp:277 #: ../src/richtext/richtextsizepage.cpp:279 msgid "Enable vertical alignment." msgstr "Włącz wyrównanie w pionie." #: ../src/richtext/richtextbackgroundpage.cpp:133 #: ../src/richtext/richtextbackgroundpage.cpp:135 msgid "Enables a background colour." msgstr "Włącza kolor tła" #: ../src/richtext/richtextstyledlg.cpp:931 msgid "Enter a box style name" msgstr "Podaj nową nazwę stylu bloku" #: ../src/richtext/richtextstyledlg.cpp:603 msgid "Enter a character style name" msgstr "Wprowadź nazwę stylu znaku" #: ../src/richtext/richtextstyledlg.cpp:817 msgid "Enter a list style name" msgstr "Wprowadź nazwę listy stylu" #: ../src/richtext/richtextstyledlg.cpp:890 msgid "Enter a new style name" msgstr "Podaj nową nazwę stylu" #: ../src/richtext/richtextstyledlg.cpp:651 msgid "Enter a paragraph style name" msgstr "Wprowadź nazwę stylu paragrafu" #: ../src/generic/dbgrptg.cpp:174 #, c-format msgid "Enter command to open file \"%s\":" msgstr "Wprowadź komendę otwierającą plik \"%s\":" #: ../src/generic/helpext.cpp:463 msgid "Entries found" msgstr "Znalezione pozycje" #: ../src/common/paper.cpp:143 msgid "Envelope Invite 220 x 220 mm" msgstr "Koperta Invite 220 x 220 mm" #: ../src/common/config.cpp:473 #, c-format msgid "" "Environment variables expansion failed: missing '%c' at position %u in '%s'." msgstr "" "Rozwinięcie zmiennych środowiskowych nie powiodło się: zabrakło '%c' na " "pozycji '%u' w '%s'." #: ../src/generic/dirctrlg.cpp:670 ../src/generic/dirctrlg.cpp:688 #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:791 #: ../src/generic/filectrlg.cpp:805 ../src/generic/filectrlg.cpp:821 #: ../src/generic/filectrlg.cpp:1381 ../src/generic/filectrlg.cpp:1412 #: ../src/gtk/filedlg.cpp:73 ../src/gtk1/fontdlg.cpp:74 msgid "Error" msgstr "Błąd" #: ../src/unix/epolldispatcher.cpp:103 msgid "Error closing epoll descriptor" msgstr "Błąd zamknięcia deskryptora epoll" #: ../src/unix/fswatcher_kqueue.cpp:114 msgid "Error closing kqueue instance" msgstr "" #: ../src/generic/dirdlgg.cpp:251 msgid "Error creating directory" msgstr "Błąd przy tworzeniu katalogu" #: ../src/common/imagbmp.cpp:1103 msgid "Error in reading image DIB." msgstr "Błąd odczytu obrazu DIB." #: ../src/propgrid/propgrid.cpp:6563 #, c-format msgid "Error in resource: %s" msgstr "Błąd w zasobie: %s" #: ../src/common/fileconf.cpp:453 msgid "Error reading config options." msgstr "Błąd odczytu opcji konfiguracji." #: ../src/common/fileconf.cpp:1064 msgid "Error saving user configuration data." msgstr "Błąd zapisu konfiguracji użytkownika." #: ../src/gtk/print.cpp:680 msgid "Error while printing: " msgstr "Błąd podczas drukowania:" #: ../src/common/log.cpp:225 msgid "Error: " msgstr "Błąd: " #: ../src/common/fmapbase.cpp:150 msgid "Esperanto (ISO-8859-3)" msgstr "Esperanto (ISO-8859-3)" #: ../include/wx/generic/progdlgg.h:85 msgid "Estimated time:" msgstr "Szacowany czas:" #: ../src/unix/fswatcher_inotify.cpp:639 msgid "Event queue overflowed" msgstr "Przepełniona kolejka zdarzeń" #: ../src/generic/dbgrptg.cpp:234 msgid "Executable files (*.exe)|*.exe|" msgstr "Pliki wykonywalne (*.exe)|*.exe|" #: ../src/common/stockitem.cpp:155 msgid "Execute" msgstr "Uruchom" #: ../src/msw/utilsexc.cpp:888 #, c-format msgid "Execution of command '%s' failed" msgstr "Wykonanie polecenia '%s' nie powiodło się" #: ../src/os2/utilsexc.cpp:163 #, c-format msgid "Execution of command '%s' failed with error: %ul" msgstr "Wykonanie polecenia '%s' nie powiodło się; błąd: %ul" #: ../src/common/paper.cpp:106 msgid "Executive, 7 1/4 x 10 1/2 in" msgstr "Executive, 7 1/4 x 10 1/2 cali" #: ../src/msw/registry.cpp:1230 #, c-format msgid "" "Exporting registry key: file \"%s\" already exists and won't be overwritten." msgstr "" "Eksport klucza rejestrów: plik \"%s\" już istnieje i nie może zostać " "nadpisany." #: ../src/common/fmapbase.cpp:195 msgid "Extended Unix Codepage for Japanese (EUC-JP)" msgstr "Japońska rozszerzona strona kodowa UNIX (EUC-JP)" #: ../src/html/chm.cpp:725 #, c-format msgid "Extraction of '%s' into '%s' failed." msgstr "Pobranie '%s' do '%s' nie powiodło się." #: ../src/common/accelcmn.cpp:238 ../src/common/accelcmn.cpp:333 msgid "F" msgstr "F" # To jest maska do tworzenia nazw typu NowaNaz1 itd #: ../src/propgrid/advprops.cpp:640 msgid "Face Name" msgstr "" #: ../src/unix/snglinst.cpp:269 msgid "Failed to access lock file." msgstr "Nie udało się dostać do pliku blokującego." #: ../src/unix/epolldispatcher.cpp:116 #, c-format msgid "Failed to add descriptor %d to epoll descriptor %d" msgstr "Nie udało się dodać deskryptora %d do deskryptora epoll %d" #: ../src/msw/dib.cpp:548 #, fuzzy, c-format msgid "Failed to allocate %luKb of memory for bitmap data." msgstr "Nie udała się rezerwacja %luKb pamięci na dane obrazu." #: ../src/common/glcmn.cpp:87 msgid "Failed to allocate colour for OpenGL" msgstr "Nie udało się przydzielić koloru dla OpenGL" # uchwyt chyba zbędny #: ../src/unix/displayx11.cpp:288 msgid "Failed to change video mode" msgstr "Nie udało się zmienić trybu video" #: ../src/common/image.cpp:3139 #, fuzzy, c-format msgid "Failed to check format of image file \"%s\"." msgstr "Nie udało się zapisać obrazu do pliku \"%s\"." #: ../src/common/debugrpt.cpp:244 #, c-format msgid "Failed to clean up debug report directory \"%s\"" msgstr "Nie udało się czyszczenie katalogu raportu błędów \"%s\"" # uchwyt chyba zbędny #: ../src/common/filename.cpp:211 msgid "Failed to close file handle" msgstr "Nie udało się zamknąć pliku." #: ../src/unix/snglinst.cpp:334 #, c-format msgid "Failed to close lock file '%s'" msgstr "Nie udało się zamknąć pliku blokującego '%s'" #: ../src/msw/clipbrd.cpp:115 msgid "Failed to close the clipboard." msgstr "Nie udało się zamknąć schowka." #: ../src/x11/utils.cpp:204 #, c-format msgid "Failed to close the display \"%s\"" msgstr "Nie udało się zamknąć ekranu \"%s\"" #: ../src/msw/dialup.cpp:818 msgid "Failed to connect: missing username/password." msgstr "Nie udało się połączyć: brakuje użytkownika/hasła." #: ../src/msw/dialup.cpp:764 msgid "Failed to connect: no ISP to dial." msgstr "Nie udało się połączyć: brak ISP." # uchwyt chyba zbędny #: ../src/common/textfile.cpp:200 #, c-format msgid "Failed to convert file \"%s\" to Unicode." msgstr "Nie udało się zamienić pliku \"%s\" na Unicode." #: ../src/generic/logg.cpp:976 msgid "Failed to copy dialog contents to the clipboard." msgstr "Nie udało się skopiować treści dialogu do schowka." #: ../src/msw/registry.cpp:691 #, c-format msgid "Failed to copy registry value '%s'" msgstr "Nie udało się skopiować wartości rejestru '%s'" #: ../src/msw/registry.cpp:700 #, c-format msgid "Failed to copy the contents of registry key '%s' to '%s'." msgstr "Nie udało się skopiować zawartości klucza rejestru '%s' do '%s'." #: ../src/common/filefn.cpp:1058 #, c-format msgid "Failed to copy the file '%s' to '%s'" msgstr "Nie udało się skopiować pliku '%s' do '%s'." #: ../src/msw/registry.cpp:678 #, c-format msgid "Failed to copy the registry subkey '%s' to '%s'." msgstr "Nie udało się kopiowanie klucza rejestru '%s' na '%s'." #: ../src/msw/dde.cpp:1073 msgid "Failed to create DDE string" msgstr "Nie udało się utworzyć łańcucha DDE" #: ../src/msw/mdi.cpp:590 msgid "Failed to create MDI parent frame." msgstr "Nie udało się utworzyć ramki rodzica MDI." #: ../src/common/filename.cpp:1080 msgid "Failed to create a temporary file name" msgstr "Nie udało się wygenerować nazwy dla pliku tymczasowego" # dlaczego anonimowego? #: ../src/msw/utilsexc.cpp:235 msgid "Failed to create an anonymous pipe" msgstr "Nie udało się utworzyć potoku" #: ../src/msw/ole/automtn.cpp:522 #, c-format msgid "Failed to create an instance of \"%s\"" msgstr "Nie udało się utworzenie instancji \"%s\"" #: ../src/msw/dde.cpp:442 #, c-format msgid "Failed to create connection to server '%s' on topic '%s'" msgstr "Nie udało się utworzyć połączenia do serwera '%s' na temat '%s'" #: ../src/msw/cursor.cpp:212 msgid "Failed to create cursor." msgstr "Nie udało się utworzyć kursora." #: ../src/common/debugrpt.cpp:209 #, c-format msgid "Failed to create directory \"%s\"" msgstr "Nie udało się utworzenie katalogu \"%s\"" #: ../src/generic/dirdlgg.cpp:249 #, c-format msgid "" "Failed to create directory '%s'\n" "(Do you have the required permissions?)" msgstr "" "Nie udało się utworzyć katalogu '%s'\n" "(Posiadasz wymagane prawa dostępu?)" #: ../src/unix/epolldispatcher.cpp:84 msgid "Failed to create epoll descriptor" msgstr "Nie udało się utworzyć deskryptora epoll" #: ../src/msw/mimetype.cpp:198 #, c-format msgid "Failed to create registry entry for '%s' files." msgstr "Nie udało się utworzyć pozycji rejestru dla plików '%s'." #: ../src/msw/fdrepdlg.cpp:442 #, c-format msgid "Failed to create the standard find/replace dialog (error code %d)" msgstr "" "Nie udało się utworzyć standardowego okna dialogowego wyszukaj/zastąp (kod " "błędu %d)" #: ../src/unix/wakeuppipe.cpp:52 msgid "Failed to create wake up pipe used by event loop." msgstr "Nie udało się utworzyć potoku budzącego używanego przez pętlę zdarzeń" #: ../src/html/winpars.cpp:739 #, c-format msgid "Failed to display HTML document in %s encoding" msgstr "Nie udało się wyświelić dokumentu HTML w kodowaniu %s" #: ../src/msw/clipbrd.cpp:127 msgid "Failed to empty the clipboard." msgstr "Nie udało się opróżnić schowka." #: ../src/unix/displayx11.cpp:265 msgid "Failed to enumerate video modes" msgstr "Nie udało się pobranie listy trybów video" # to moja swobodna interpretacja #: ../src/msw/dde.cpp:727 msgid "Failed to establish an advise loop with DDE server" msgstr "" "Nie udało się rozpocząć transakcji doradzającej (advise) z serwerem DDE" #: ../src/msw/dialup.cpp:650 ../src/msw/dialup.cpp:884 #, c-format msgid "Failed to establish dialup connection: %s" msgstr "Nie udało się nawiązać połączenia dialup: %s" #: ../src/unix/utilsunx.cpp:617 #, c-format msgid "Failed to execute '%s'\n" msgstr "Nie udało się wykonać '%s'\n" #: ../src/common/debugrpt.cpp:725 msgid "Failed to execute curl, please install it in PATH." msgstr "" "Nie udało się uruchomienie curl, proszę zainstalować go w dostępnym katalogu " "(PATH)." #: ../src/msw/ole/automtn.cpp:505 #, c-format msgid "Failed to find CLSID of \"%s\"" msgstr "" #: ../src/common/regex.cpp:434 ../src/common/regex.cpp:482 #, c-format msgid "Failed to find match for regular expression: %s" msgstr "Nie udało się znaleźć połączenia dla regularnego wyrażenia: %s" #: ../src/msw/dialup.cpp:716 #, c-format msgid "Failed to get ISP names: %s" msgstr "Nie udało się usyskać listy ISP: %s" #: ../src/msw/ole/automtn.cpp:574 #, c-format msgid "Failed to get OLE automation interface for \"%s\"" msgstr "" #: ../src/msw/clipbrd.cpp:747 msgid "Failed to get data from the clipboard" msgstr "Nie udało się pobrać danych ze schowka" #: ../src/common/time.cpp:249 msgid "Failed to get the local system time" msgstr "Nie udało się pobrać lokalnego czasu systemowego" #: ../src/common/filefn.cpp:1452 msgid "Failed to get the working directory" msgstr "Nie udało się uzyskać katalogu roboczego" #: ../src/univ/theme.cpp:113 msgid "Failed to initialize GUI: no built-in themes found." msgstr "Nie udało się zainicjować GUI: brak wbudowanych kompozycji." #: ../src/msw/helpchm.cpp:63 msgid "Failed to initialize MS HTML Help." msgstr "Nie udało się zainicjować pomocy MS HTML." #: ../src/msw/glcanvas.cpp:892 msgid "Failed to initialize OpenGL" msgstr "Nie udało się zainicjować OpenGL" #: ../src/msw/dialup.cpp:879 #, c-format msgid "Failed to initiate dialup connection: %s" msgstr "Nie udało się rozpocząć połączenia dialup: %s" #: ../src/gtk/textctrl.cpp:1117 msgid "Failed to insert text in the control." msgstr "Nie udało się wstawić tekstu w kontroli." #: ../src/unix/snglinst.cpp:241 #, c-format msgid "Failed to inspect the lock file '%s'" msgstr "Nie udało się sprawdzenie blokady pliku '%s'" # uchwyt chyba zbędny #: ../src/unix/appunix.cpp:182 msgid "Failed to install signal handler" msgstr "Nie udało się zainstalować obsługi sygnału" # połączyć? # wyciek? #: ../src/unix/threadpsx.cpp:1162 msgid "" "Failed to join a thread, potential memory leak detected - please restart the " "program" msgstr "" "Nie udało połączyć się z wątkiem, potencjalny wyciek pamięci - uruchom " "program ponownie" #: ../src/msw/utils.cpp:745 #, c-format msgid "Failed to kill process %d" msgstr "Nie udało się zabić procesu %d" #: ../src/common/image.cpp:2365 #, c-format msgid "Failed to load bitmap \"%s\" from resources." msgstr "Nie udało się wczytanie obrazu \"%s\" z zasobów." #: ../src/common/image.cpp:2374 #, c-format msgid "Failed to load icon \"%s\" from resources." msgstr "Nie udało się wczytanie ikony \"%s\" z zasobów." #: ../src/common/iconbndl.cpp:182 #, c-format msgid "Failed to load image %%d from file '%s'." msgstr "Nie udało się wczytanie obrazu %%d z pliku '%s'." #: ../src/common/iconbndl.cpp:190 #, c-format msgid "Failed to load image %d from stream." msgstr "Nie udało się wczytanie obrazu %d ze strumienia." #: ../src/common/image.cpp:2450 ../src/common/image.cpp:2469 #, c-format msgid "Failed to load image from file \"%s\"." msgstr "Nie udało się wczytanie obrazu z pliku \"%s\"." #: ../src/msw/enhmeta.cpp:97 #, c-format msgid "Failed to load metafile from file \"%s\"." msgstr "Nie udało się załadowanie pliku meta \"%s\"." #: ../src/msw/volume.cpp:327 msgid "Failed to load mpr.dll." msgstr "Nie udało się wczytać mpr.dll." #: ../src/msw/utils.cpp:1120 #, c-format msgid "Failed to load resource \"%s\"." msgstr "Nie udało się wczytanie zasobu \"%s\"." #: ../src/common/dynlib.cpp:100 #, c-format msgid "Failed to load shared library '%s'" msgstr "Nie udało się wczytać biblioteki '%s'." #: ../src/msw/utils.cpp:1127 #, c-format msgid "Failed to lock resource \"%s\"." msgstr "Nie udało się zablokowanie zasobu \"%s\"." #: ../src/unix/snglinst.cpp:198 #, c-format msgid "Failed to lock the lock file '%s'" msgstr "Nie udało się zablokować pliku blokującego '%s'" #: ../src/unix/epolldispatcher.cpp:136 #, c-format msgid "Failed to modify descriptor %d in epoll descriptor %d" msgstr "Nie można zmienić hasła %d w deskryptorze epoll %d" # nieładne #: ../src/common/filename.cpp:2681 #, c-format msgid "Failed to modify file times for '%s'" msgstr "Nie udało się zmodyfikować czasów pliku '%s'" #: ../src/common/selectdispatcher.cpp:252 msgid "Failed to monitor I/O channels" msgstr "Nie udało się monitorować kanałów wejściowych/wyjściowych" #: ../src/common/filename.cpp:194 #, c-format msgid "Failed to open '%s' for reading" msgstr "Nie udało się otworzyć '%s' do odczytu" #: ../src/common/filename.cpp:199 #, c-format msgid "Failed to open '%s' for writing" msgstr "Nie udało się otworzyć '%s' do zapisu" #: ../src/html/chm.cpp:141 #, c-format msgid "Failed to open CHM archive '%s'." msgstr "Nie udało się otworzyć archiwum CHM '%s'." #: ../src/common/utilscmn.cpp:1135 #, c-format msgid "Failed to open URL \"%s\" in default browser." msgstr "Nie udało się otworzyć URL \"%s\" w domyślnej przeglądarce." #: ../include/wx/msw/private/fswatcher.h:92 #, c-format msgid "Failed to open directory \"%s\" for monitoring." msgstr "Nie udało się otwarcie monitoringu katalogu \"%s\"." #: ../src/x11/utils.cpp:223 #, c-format msgid "Failed to open display \"%s\"." msgstr "Nie udało się otworzyć ekranu \"%s\"." #: ../src/common/filename.cpp:1115 msgid "Failed to open temporary file." msgstr "Nie udało się otworzyć pliku tymczasowego." #: ../src/msw/clipbrd.cpp:94 msgid "Failed to open the clipboard." msgstr "Nie udało się otworzyć schowka." #: ../src/common/translation.cpp:1170 #, fuzzy, c-format msgid "Failed to parse Plural-Forms: '%s'" msgstr "Nie można przetworzyć formy liczby mnogiej: '%s'" #: ../src/unix/mediactrl.cpp:1268 #, c-format msgid "Failed to prepare playing \"%s\"." msgstr "Nie udało się przygotowanie odtwarzania \"%s\"." #: ../src/msw/clipbrd.cpp:647 msgid "Failed to put data on the clipboard" msgstr "Nie udało się umieścić danych w schowku" #: ../src/unix/snglinst.cpp:278 msgid "Failed to read PID from lock file." msgstr "Nie udało sie odczytać identyfikatora z pliku blokującego." #: ../src/common/fileconf.cpp:464 msgid "Failed to read config options." msgstr "Nie udało się odczytać opcji konfiguracji." #: ../src/common/docview.cpp:678 #, c-format msgid "Failed to read document from the file \"%s\"." msgstr "Nie udało się wczytanie dokumentu z pliku \"%s\"." #: ../src/dfb/evtloop.cpp:98 msgid "Failed to read event from DirectFB pipe" msgstr "" #: ../src/unix/wakeuppipe.cpp:120 msgid "Failed to read from wake-up pipe" msgstr "Nie udało się czytać z potoku budzącego " #: ../src/unix/utilsunx.cpp:685 msgid "Failed to redirect child process input/output" msgstr "Nie udało się przekierować wejścia/wyjścia procesu potomnego." #: ../src/msw/utilsexc.cpp:697 msgid "Failed to redirect the child process IO" msgstr "Nie udało się przekierować wejścia/wyjścia procesu potomnego" #: ../src/msw/dde.cpp:293 #, c-format msgid "Failed to register DDE server '%s'" msgstr "Nie udało się zarejestrować serwera DDE '%s'" #: ../src/common/fontmap.cpp:245 #, c-format msgid "Failed to remember the encoding for the charset '%s'." msgstr "Nie udało się zapamiętać kodowania dla zestawu znaków '%s'" #: ../src/common/debugrpt.cpp:227 #, c-format msgid "Failed to remove debug report file \"%s\"" msgstr "Nie udało się usunięcie pliku raportu błędów \"%s\"" #: ../src/unix/snglinst.cpp:322 #, c-format msgid "Failed to remove lock file '%s'" msgstr "Nie udało się usunąć pliku blokującego '%s'" # stale --> ? #: ../src/unix/snglinst.cpp:288 #, c-format msgid "Failed to remove stale lock file '%s'." msgstr "Nie udało się usunąć nieaktualnego pliku blokującego '%s'." #: ../src/msw/registry.cpp:528 #, c-format msgid "Failed to rename registry value '%s' to '%s'." msgstr "Nie udało się zmienić nazwy wartości rejestru '%s' do '%s'." #: ../src/common/filefn.cpp:1168 #, c-format msgid "" "Failed to rename the file '%s' to '%s' because the destination file already " "exists." msgstr "" "Nie udało się zmienić nazwy pliku '%s' na '%s', ponieważ plik docelowy już " "istnieje." #: ../src/msw/registry.cpp:633 #, c-format msgid "Failed to rename the registry key '%s' to '%s'." msgstr "Nie udało się zmienić nazwy klucza rejestru '%s' na '%s'." #: ../src/msw/clipbrd.cpp:497 msgid "Failed to retrieve data from the clipboard." msgstr "Nie udało się odzyskać danych ze schowka." #: ../src/common/filename.cpp:2777 #, c-format msgid "Failed to retrieve file times for '%s'" msgstr "Nie udało się odczytać czasów pliku '%s'" #: ../src/msw/dialup.cpp:487 msgid "Failed to retrieve text of RAS error message" msgstr "Nie udało się uzyskać tekstu komunikatu błędu RAS" #: ../src/msw/clipbrd.cpp:784 msgid "Failed to retrieve the supported clipboard formats" msgstr "Nie udało się uzyskać listy formatów obsługiwanych przez schowek" #: ../src/common/docview.cpp:649 #, c-format msgid "Failed to save document to the file \"%s\"." msgstr "Nie udało się zapisać dokumentu do pliku \"%s\"." #: ../src/msw/dib.cpp:326 #, c-format msgid "Failed to save the bitmap image to file \"%s\"." msgstr "Nie udało się zapisać obrazu do pliku \"%s\"." #: ../src/msw/dde.cpp:768 msgid "Failed to send DDE advise notification" msgstr "Nie udało się wysłać powiadomienia DDE" #: ../src/common/ftp.cpp:404 #, c-format msgid "Failed to set FTP transfer mode to %s." msgstr "FTP: Nie udało się ustawić trybu transmisji na '%s'." #: ../src/msw/clipbrd.cpp:373 msgid "Failed to set clipboard data." msgstr "Nie udało się skorzystać ze schowka." #: ../src/unix/snglinst.cpp:181 #, c-format msgid "Failed to set permissions on lock file '%s'" msgstr "Nie udało się nadanie praw dostępu na blokowanym pliku '%s'" #: ../src/unix/utilsunx.cpp:674 msgid "Failed to set process priority" msgstr "" #: ../src/common/file.cpp:576 msgid "Failed to set temporary file permissions" msgstr "Nie udało się nadać praw dostępu pliku tymczasowemu" #: ../src/gtk/textctrl.cpp:1058 msgid "Failed to set text in the text control." msgstr "Nie udało się ustawić tekstu w kontroli tekstu." #: ../src/unix/threadpsx.cpp:1293 #, c-format msgid "Failed to set thread concurrency level to %lu" msgstr "" #: ../src/unix/threadpsx.cpp:1377 ../src/unix/threadpsx.cpp:1387 #, c-format msgid "Failed to set thread priority %d." msgstr "Nie udało się zmienić priorytetu wątku na %d." #: ../src/unix/utilsunx.cpp:791 msgid "Failed to set up non-blocking pipe, the program might hang." msgstr "Nie udało się ustawić nieblokowego potoku, program może się zawiesić." #: ../src/common/fs_mem.cpp:261 #, c-format msgid "Failed to store image '%s' to memory VFS!" msgstr "Nie udało się odłożyć obrazu '%s' do pamięci VFS!" #: ../src/dfb/evtloop.cpp:170 msgid "Failed to switch DirectFB pipe to non-blocking mode" msgstr "" #: ../src/unix/wakeuppipe.cpp:59 msgid "Failed to switch wake up pipe to non-blocking mode" msgstr "Nie udało się przełączyć potoku budzącego na modus nie-blokujący" #: ../src/unix/threadpsx.cpp:1569 msgid "Failed to terminate a thread." msgstr "Nie udało się zakończyć wątku." #: ../src/msw/dde.cpp:746 msgid "Failed to terminate the advise loop with DDE server" msgstr "" "Nie udało się zakończyć transakcji doradzającej (advise) z serwerem DDE" #: ../src/msw/dialup.cpp:959 #, c-format msgid "Failed to terminate the dialup connection: %s" msgstr "Nie udało się zakończyć połączenia dialup: %s" #: ../src/common/filename.cpp:2696 #, c-format msgid "Failed to touch the file '%s'" msgstr "Nie udało się zmienić czasów pliku '%s'" #: ../src/unix/snglinst.cpp:328 #, c-format msgid "Failed to unlock lock file '%s'" msgstr "Nie udało się odblokować pliku blokującego '%s'" #: ../src/msw/dde.cpp:314 #, c-format msgid "Failed to unregister DDE server '%s'" msgstr "Nie udało się wyrejestrować serwera DDE '%s'" #: ../src/unix/epolldispatcher.cpp:155 #, c-format msgid "Failed to unregister descriptor %d from epoll descriptor %d" msgstr "Nie udało się wyrejestrować deskryptora %d z deskryptora epoll %d" #: ../src/common/fileconf.cpp:1037 msgid "Failed to update user configuration file." msgstr "Nie udała się aktualizacja pliku konfiguracyjnego użytkownika." #: ../src/common/debugrpt.cpp:738 #, c-format msgid "Failed to upload the debug report (error code %d)." msgstr "Nie udało się przesłanie raportu błędów (kod błędu %d)" # ze źródeł wynika że chodzi o PID #: ../src/unix/snglinst.cpp:168 #, c-format msgid "Failed to write to lock file '%s'" msgstr "Nie udało się zapisać identyfikatora do pliku blokującego '%s'" #: ../src/propgrid/propgrid.cpp:172 msgid "False" msgstr "" #: ../src/propgrid/advprops.cpp:658 msgid "Family" msgstr "" #: ../src/common/stockitem.cpp:157 ../src/msw/wince/filedlgwce.cpp:121 msgid "File" msgstr "Plik" #: ../src/common/docview.cpp:666 #, fuzzy, c-format msgid "File \"%s\" could not be opened for reading." msgstr "Nie udało się otworzyć '%s' do odczytu" #: ../src/common/docview.cpp:643 #, fuzzy, c-format msgid "File \"%s\" could not be opened for writing." msgstr "Nie udało się otworzyć '%s' do zapisu" #: ../src/gtk/filedlg.cpp:56 #, c-format msgid "File '%s' already exists, do you really want to overwrite it?" msgstr "Plik '%s' już istnieje, naprawdę chcesz go zastąpić?" #: ../src/os2/filedlg.cpp:310 #, c-format msgid "" "File '%s' already exists.\n" "Do you want to replace it?" msgstr "" "Plik '%s' już istnieje.\n" "Chcesz go zastąpić?" #: ../src/common/filefn.cpp:1206 #, c-format msgid "File '%s' couldn't be removed" msgstr "Plik '%s' nie mógł zostać usunięty" #: ../src/common/filefn.cpp:1187 #, c-format msgid "File '%s' couldn't be renamed '%s'" msgstr "Nazwa pliku '%s' nie mogła zostać zmieniona '%s'" #: ../src/richtext/richtextctrl.cpp:2688 ../src/common/textcmn.cpp:921 msgid "File couldn't be loaded." msgstr "Plik nie może być wczytany." #: ../src/msw/filedlg.cpp:458 #, c-format msgid "File dialog failed with error code %0lx." msgstr "" #: ../src/common/docview.cpp:1772 msgid "File error" msgstr "Błąd plikowy" #: ../src/generic/dirctrlg.cpp:688 ../src/generic/filectrlg.cpp:805 msgid "File name exists already." msgstr "Plik o tej nazwie już istnieje." #: ../src/motif/filedlg.cpp:220 msgid "Files" msgstr "Pliki" #: ../src/common/filefn.cpp:1760 #, c-format msgid "Files (%s)" msgstr "Pliki (%s)" #: ../src/motif/filedlg.cpp:218 msgid "Filter" msgstr "Filtr" #: ../src/common/stockitem.cpp:158 ../src/html/helpwnd.cpp:500 msgid "Find" msgstr "Znajdź" #: ../src/common/stockitem.cpp:159 #, fuzzy msgid "First" msgstr "pierwszy" #: ../src/common/prntbase.cpp:1518 msgid "First page" msgstr "Pierwsza strona" #: ../src/richtext/richtextsizepage.cpp:518 #, fuzzy msgid "Fixed" msgstr "Czcionka o stałej szerokości:" #: ../src/html/helpwnd.cpp:1219 msgid "Fixed font:" msgstr "Czcionka o stałej szerokości:" #: ../src/html/helpwnd.cpp:1282 msgid "Fixed size face.
    bold italic " msgstr "Ustalony rozmiar tekstu.
    pogrubienie kursywa " #: ../src/richtext/richtextsizepage.cpp:226 msgid "Floating" msgstr "Pływający" #: ../src/common/stockitem.cpp:160 msgid "Floppy" msgstr "Dyskietka" #: ../src/common/paper.cpp:112 msgid "Folio, 8 1/2 x 13 in" msgstr "Folio, 8 1/2 x 13 cali" #: ../src/richtext/richtextformatdlg.cpp:324 ../src/osx/carbon/fontdlg.cpp:473 #: ../src/common/stockitem.cpp:194 msgid "Font" msgstr "Czcionka" #: ../src/richtext/richtextfontpage.cpp:230 msgid "Font &weight:" msgstr "&Waga czcionki:" #: ../src/html/helpwnd.cpp:1220 msgid "Font size:" msgstr "Rozmiar czcionki:" #: ../src/richtext/richtextfontpage.cpp:217 msgid "Font st&yle:" msgstr "&Styl czcionki:" #: ../src/osx/carbon/fontdlg.cpp:515 msgid "Font:" msgstr "Czcionka:" #: ../src/dfb/fontmgr.cpp:198 #, c-format msgid "Fonts index file %s disappeared while loading fonts." msgstr "Plik indeksu czcionek %s znikł podczas ładowania czcionek." #: ../src/unix/utilsunx.cpp:651 msgid "Fork failed" msgstr "Rozwidlenie nie powiodło się" #: ../src/common/stockitem.cpp:161 #, fuzzy msgid "Forward" msgstr "&Dalej" #: ../src/common/xtixml.cpp:235 msgid "Forward hrefs are not supported" msgstr "Przekazywanie właściwości 'href' nie jest wspierane" #: ../src/html/helpwnd.cpp:888 #, c-format msgid "Found %i matches" msgstr "Znaleziono %i odpowiednik(i/ów)" #: ../src/generic/prntdlgg.cpp:243 msgid "From:" msgstr "Od:" # ...indeks w grafice (?) # ideks - katalog, wska?nik? #: ../src/common/imaggif.cpp:160 msgid "GIF: Invalid gif index." msgstr "GIF: Brak obrazu o podanym indeksie." #: ../src/common/imaggif.cpp:150 msgid "GIF: data stream seems to be truncated." msgstr "GIF: strumień daych wygląda na obcięty." #: ../src/common/imaggif.cpp:134 msgid "GIF: error in GIF image format." msgstr "GIF: błąd w formacie obrazu GIF." #: ../src/common/imaggif.cpp:137 msgid "GIF: not enough memory." msgstr "GIF: za mało pamięci." #: ../src/common/imaggif.cpp:140 msgid "GIF: unknown error!!!" msgstr "GIF: neznany błąd !!!" #: ../src/gtk/window.cpp:4266 msgid "" "GTK+ installed on this machine is too old to support screen compositing, " "please install GTK+ 2.12 or later." msgstr "" "GTK+ zainstalowana na tej maszynie jest zbyt stara i nie wspiera kompozycji " "ekranu, proszę zainstalować GTK+ 2.12 lub nowszą." #: ../src/univ/themes/gtk.cpp:525 msgid "GTK+ theme" msgstr "Kompozycja GTK+" #: ../src/common/preferencescmn.cpp:39 msgid "General" msgstr "Ogólne" #: ../src/common/prntbase.cpp:243 msgid "Generic PostScript" msgstr "PostScript" #: ../src/common/paper.cpp:136 msgid "German Legal Fanfold, 8 1/2 x 13 in" msgstr "Składanka German Legal, 8 1/2 x 13 cali" #: ../src/common/paper.cpp:135 msgid "German Std Fanfold, 8 1/2 x 12 in" msgstr "Składanka German Std, 8 1/2 x 12 cali" #: ../include/wx/xtiprop.h:188 msgid "GetProperty called w/o valid getter" msgstr "Funkcja GetProperty wywołana bez poprawnego modułu pobierającego" #: ../include/wx/xtiprop.h:266 msgid "GetPropertyCollection called on a generic accessor" msgstr "Funkcja GetPropertyCollection wywołana w ogólnym akcesorze" #: ../include/wx/xtiprop.h:206 msgid "GetPropertyCollection called w/o valid collection getter" msgstr "" "Funkcja GetPropertyCollection wywołana bez poprawnego modułu pobierającego" #: ../src/html/helpwnd.cpp:673 msgid "Go back" msgstr "Idź wstecz" #: ../src/html/helpwnd.cpp:674 msgid "Go forward" msgstr "Idź dalej" #: ../src/html/helpwnd.cpp:676 msgid "Go one level up in document hierarchy" msgstr "Idź poziom wyżej w hierarchi dokumentu" #: ../src/generic/filedlgg.cpp:223 ../src/generic/dirdlgg.cpp:136 msgid "Go to home directory" msgstr "Idź do katalogu domowego" #: ../src/generic/filedlgg.cpp:219 msgid "Go to parent directory" msgstr "Idź do katalogu nadrzędnego" #: ../src/generic/aboutdlgg.cpp:76 msgid "Graphics art by " msgstr "Grafika autorstwa" #: ../src/common/fmapbase.cpp:154 msgid "Greek (ISO-8859-7)" msgstr "Grecki (ISO-8859-7)" #: ../src/richtext/richtextborderspage.cpp:547 msgid "Groove" msgstr "Groove" #: ../src/common/zstream.cpp:158 ../src/common/zstream.cpp:318 msgid "Gzip not supported by this version of zlib" msgstr "Format Gzip nie jest wspierany przez tę wersję biblioteki zlib" #: ../src/common/accelcmn.cpp:75 msgid "HELP" msgstr "POMOC" #: ../src/common/accelcmn.cpp:60 msgid "HOME" msgstr "HOME" #: ../src/html/helpwnd.cpp:1552 msgid "HTML Help Project (*.hhp)|*.hhp|" msgstr "Plik projektu pomocy HTML Help (*.hhp)|*.hhp|" # Kotwica? #: ../src/html/htmlwin.cpp:659 #, c-format msgid "HTML anchor %s does not exist." msgstr "HTML: kotwica %s ie istnieje." #: ../src/html/helpwnd.cpp:1550 msgid "HTML files (*.html;*.htm)|*.html;*.htm|" msgstr "Pliki HTML (*.html;*.htm)|*.html;*.htm|" #: ../src/common/stockitem.cpp:162 msgid "Harddisk" msgstr "Dysk twardy" #: ../src/common/fmapbase.cpp:155 msgid "Hebrew (ISO-8859-8)" msgstr "Hebrajski (ISO-8859-8)" #: ../include/wx/msgdlg.h:275 ../src/osx/button_osx.cpp:39 #: ../src/common/stockitem.cpp:163 ../src/html/helpdlg.cpp:66 #: ../src/html/helpfrm.cpp:116 msgid "Help" msgstr "Pomoc" #: ../src/html/helpwnd.cpp:1213 msgid "Help Browser Options" msgstr "Opcje przeglądarki pomocy" #: ../src/generic/helpext.cpp:458 ../src/generic/helpext.cpp:459 msgid "Help Index" msgstr "Spis treści" # pomoc do drukowania? #: ../src/html/helpwnd.cpp:1534 msgid "Help Printing" msgstr "Drukowanie pomocy" #: ../src/html/helpwnd.cpp:814 msgid "Help Topics" msgstr "Tematy Pomocy" #: ../src/html/helpwnd.cpp:1551 msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|" msgstr "Pakiety pomocy (*.htb)|*.htb|Pakiety pomocy (*.zip)|*.zip|" #: ../src/generic/helpext.cpp:271 #, c-format msgid "Help directory \"%s\" not found." msgstr "Nie znaleziono katalogu pomocy \"%s\"." # catalog file --> ? # domain --> ? #: ../src/generic/helpext.cpp:279 #, c-format msgid "Help file \"%s\" not found." msgstr "Nie znaleziono pliku pomocy \"%s\"." #: ../src/html/helpctrl.cpp:63 #, c-format msgid "Help: %s" msgstr "Pomoc: %s" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:649 #, c-format msgid "Hide %s" msgstr "Ukryj %s" #: ../src/osx/menu_osx.cpp:604 ../src/osx/menu_osx.cpp:651 msgid "Hide Others" msgstr "Ukryj inne" #: ../src/generic/infobar.cpp:85 msgid "Hide this notification message." msgstr "Ukryj to powiadomienie." #: ../src/generic/dirdlgg.cpp:98 ../src/common/stockitem.cpp:164 msgid "Home" msgstr "Katalog początkowy" #: ../src/generic/dirctrlg.cpp:624 msgid "Home directory" msgstr "Katalog początkowy" #: ../src/richtext/richtextsizepage.cpp:250 #: ../src/richtext/richtextsizepage.cpp:252 msgid "How the object will float relative to the text." msgstr "Jak obiekt będzie pływać względem tekstu." #: ../src/common/imagbmp.cpp:1118 msgid "ICO: Error in reading mask DIB." msgstr "ICO: Błąd odczytu maski DIB." #: ../src/common/imagbmp.cpp:1233 ../src/common/imagbmp.cpp:1294 #: ../src/common/imagbmp.cpp:1305 ../src/common/imagbmp.cpp:1318 #: ../src/common/imagbmp.cpp:1363 ../src/common/imagbmp.cpp:1375 #: ../src/common/imagbmp.cpp:1386 msgid "ICO: Error writing the image file!" msgstr "ICO: Błąd przy zapisie do pliku." #: ../src/common/imagbmp.cpp:1198 msgid "ICO: Image too tall for an icon." msgstr "ICO: Obraz jest zbyt wysoki jak na ikonę." #: ../src/common/imagbmp.cpp:1206 msgid "ICO: Image too wide for an icon." msgstr "ICO: Obraz jest zbyt szeroki jak na ikonę." # ...indeks w grafice (?) # ideks - katalog, wskaŸnik? #: ../src/common/imagbmp.cpp:1466 msgid "ICO: Invalid icon index." msgstr "ICO: Brak ikony o podanym indeksie.." #: ../src/common/imagiff.cpp:759 msgid "IFF: data stream seems to be truncated." msgstr "IFF: strumień daych wygląda na obcięty." #: ../src/common/imagiff.cpp:743 msgid "IFF: error in IFF image format." msgstr "IFF: błąd w formacie obrazu IFF." #: ../src/common/imagiff.cpp:746 msgid "IFF: not enough memory." msgstr "IFF: za mało pamięci." #: ../src/common/imagiff.cpp:749 msgid "IFF: unknown error!!!" msgstr "IFF: nieznany błąd !!!" #: ../src/common/accelcmn.cpp:50 msgid "INS" msgstr "INS" #: ../src/common/accelcmn.cpp:51 msgid "INSERT" msgstr "WSTAW" #: ../src/common/fmapbase.cpp:197 msgid "ISO-2022-JP" msgstr "ISO-2022-JP" #: ../src/osx/carbon/dataview.cpp:2420 msgid "Icon & text renderer cannot render value; value type: " msgstr "Renderer ikony i tekstu nie może renderować wartości; typ wartości:" #: ../src/html/htmprint.cpp:282 msgid "" "If possible, try changing the layout parameters to make the printout more " "narrow." msgstr "" "Jeżeli to możliwe, spróbuj zmodyfikować parametry układu, aby uczynić wydruk " "węższy." #: ../src/generic/dbgrptg.cpp:358 msgid "" "If you have any additional information pertaining to this bug\n" "report, please enter it here and it will be joined to it:" msgstr "" "Jeśli masz jakiekolwiek dodatkowe informacje odnośnie\n" "raportowanego błędu, proszę dołącz je tu:" #: ../src/generic/dbgrptg.cpp:324 msgid "" "If you wish to suppress this debug report completely, please choose the " "\"Cancel\" button,\n" "but be warned that it may hinder improving the program, so if\n" "at all possible please do continue with the report generation.\n" msgstr "" "Jeśli chcesz całkowicie pominąć raport błędów, wybierz \"Anuluj\",\n" "ale rozważ że to może utrudnić usprawnianie oprogramowania,\n" "w związku z tym zachęcamy do kontynuowania raportowania błędów.\n" #: ../src/msw/registry.cpp:1395 #, c-format msgid "Ignoring value \"%s\" of the key \"%s\"." msgstr "Wartiść \"%s\" klucza \"%s\" zignorowana." #: ../src/common/xtistrm.cpp:299 msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source" msgstr "Błędna Klasa Obiekty (nie typu wxEvtHandler) jako Źródło Zdarzenia" #: ../src/common/xti.cpp:513 msgid "Illegal Parameter Count for ConstructObject Method" msgstr "Nieprawidłowa Liczba Parametrów w Metodzie ConstructObject" #: ../src/common/xti.cpp:501 msgid "Illegal Parameter Count for Create Method" msgstr "Nieprawidłowa Liczba Parametrów w Metodzie Create" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/filectrlg.cpp:791 msgid "Illegal directory name." msgstr "Niedozwolona nazwa katalogu." #: ../src/generic/filectrlg.cpp:1380 msgid "Illegal file specification." msgstr "Niedozwolona specyfikacja pliku." #: ../src/common/image.cpp:2158 msgid "Image and mask have different sizes." msgstr "Obraz i maska mają różne rozmiary." #: ../src/common/image.cpp:2609 #, c-format msgid "Image file is not of type %d." msgstr "Nie jest to obraz typu %d." #: ../src/common/image.cpp:2739 #, fuzzy, c-format msgid "Image is not of type %s." msgstr "Nie jest to obraz typu %s." #: ../src/msw/textctrl.cpp:399 msgid "" "Impossible to create a rich edit control, using simple text control instead. " "Please reinstall riched32.dll" msgstr "" "Nie jest możliwe utworzenie kontrolki rich edit, użyj zamiast tego prostego " "'text control'. Przeinstaluj riched32.dll" #: ../src/unix/utilsunx.cpp:307 msgid "Impossible to get child process input" msgstr "Nie jest możliwe uzyskanie wejścia procesu potomnego" #: ../src/common/filefn.cpp:1074 #, c-format msgid "Impossible to get permissions for file '%s'" msgstr "Uzyskanie praw dostępu do pliku '%s' jest niemożliwe" #: ../src/common/filefn.cpp:1088 #, c-format msgid "Impossible to overwrite the file '%s'" msgstr "Zastąpienie pliku '%s' jest niemożliwe" #: ../src/common/filefn.cpp:1142 #, c-format msgid "Impossible to set permissions for the file '%s'" msgstr "Nie jest możliwe nadanie praw dostępu plikowi '%s'" #: ../src/common/gifdecod.cpp:818 #, c-format msgid "Incorrect GIF frame size (%u, %d) for the frame #%u" msgstr "Nieprawidłowy rozmiar ramki GIF (%u, %d) dla ramki #%u" #: ../src/msw/ole/automtn.cpp:624 msgid "Incorrect number of arguments." msgstr "Nieprawidłowa liczba argumentów." #: ../src/common/stockitem.cpp:165 msgid "Indent" msgstr "Wcięcie" #: ../src/richtext/richtextformatdlg.cpp:330 msgid "Indents && Spacing" msgstr "Wcięcia i odstępy" #: ../src/common/stockitem.cpp:166 ../src/html/helpwnd.cpp:525 msgid "Index" msgstr "Indeks" #: ../src/common/fmapbase.cpp:159 msgid "Indian (ISO-8859-12)" msgstr "Hinduski (ISO-8859-12)" #: ../src/common/stockitem.cpp:167 msgid "Info" msgstr "Info" #: ../src/common/init.cpp:276 msgid "Initialization failed in post init, aborting." msgstr "Inicjalizacja nie powiodła się powodując wyjście." #: ../src/richtext/richtextsymboldlg.cpp:472 msgid "Insert" msgstr "Wstawić" #: ../src/richtext/richtextbuffer.cpp:7672 msgid "Insert Field" msgstr "Wstaw pole" #: ../src/richtext/richtextbuffer.cpp:7583 #: ../src/richtext/richtextbuffer.cpp:8493 msgid "Insert Image" msgstr "Wstaw obraz" #: ../src/richtext/richtextbuffer.cpp:7630 msgid "Insert Object" msgstr "Wstaw obiekt" #: ../src/richtext/richtextctrl.cpp:1172 ../src/richtext/richtextctrl.cpp:1362 #: ../src/richtext/richtextbuffer.cpp:7428 #: ../src/richtext/richtextbuffer.cpp:7455 #: ../src/richtext/richtextbuffer.cpp:7499 msgid "Insert Text" msgstr "Wstaw tekst" #: ../src/richtext/richtextindentspage.cpp:295 #: ../src/richtext/richtextindentspage.cpp:297 msgid "Inserts a page break before the paragraph." msgstr "Wstawia łamanie strony przed akapitem." #: ../src/richtext/richtextborderspage.cpp:549 msgid "Inset" msgstr "" #: ../src/gtk/app.cpp:429 #, c-format msgid "Invalid GTK+ command line option, use \"%s --help\"" msgstr "Nieprawidłowa opcja GTK+ wiersza poleceń, należy użyć \"%s --help\"" # ...indeks w grafice (?) # ideks - katalog, wska?nik? #: ../src/common/imagtiff.cpp:314 msgid "Invalid TIFF image index." msgstr "TIFF: Brak obrazu o podanym indeksie." #: ../src/osx/carbon/dataview.cpp:1782 ../src/osx/carbon/dataview.cpp:1877 msgid "Invalid data view item" msgstr "Nieprawidłowa pozycja widoku danych" #: ../src/common/appcmn.cpp:245 #, c-format msgid "Invalid display mode specification '%s'." msgstr "Błędna specyfikacja trybu wyświetlania '%s'." # Pytanie X11 #: ../src/x11/app.cpp:121 #, c-format msgid "Invalid geometry specification '%s'" msgstr "Niedozwolona specyfikacja \"geometry\" '%s'." #: ../src/unix/fswatcher_inotify.cpp:298 #, c-format msgid "Invalid inotify event for \"%s\"" msgstr "Nieprawidłowe zdarzenie inotify dla \"%s\"" #: ../src/unix/snglinst.cpp:306 #, c-format msgid "Invalid lock file '%s'." msgstr "Nieprawidłowy plik blokujący '%s'." #: ../src/common/translation.cpp:1111 msgid "Invalid message catalog." msgstr "Nieprawidłowy katalog komunikatów." #: ../src/common/xtistrm.cpp:409 ../src/common/xtistrm.cpp:424 msgid "Invalid or Null Object ID passed to GetObjectClassInfo" msgstr "" "Błędny lub Pusty Identyfikator Obiektu przekazany do funkcji " "GetObjectClassInfo" #: ../src/common/xtistrm.cpp:439 msgid "Invalid or Null Object ID passed to HasObjectClassInfo" msgstr "" "Błędny lub Pusty Identyfikator Obiektu przekazany do funkcji " "HasObjectClassInfo" #: ../src/common/regex.cpp:313 #, c-format msgid "Invalid regular expression '%s': %s" msgstr "Nieprawidłowe wyrażenie regularne '%s': %s" #: ../src/common/config.cpp:226 #, c-format msgid "Invalid value %ld for a boolean key \"%s\" in config file." msgstr "" "Nieprawidłowa wartość %ld dla klucza logicznego\"%s\" w pliku " "konfiguracyjnym." #: ../src/generic/fontdlgg.cpp:329 ../src/richtext/richtextfontpage.cpp:333 #: ../src/osx/carbon/fontdlg.cpp:547 ../src/common/stockitem.cpp:168 msgid "Italic" msgstr "Kursywa" #: ../src/common/paper.cpp:131 msgid "Italy Envelope, 110 x 230 mm" msgstr "Koperta włoska, 110 x 230 mm" #: ../src/common/imagjpeg.cpp:255 msgid "JPEG: Couldn't load - file is probably corrupted." msgstr "JPEG: Nie można wczytać - prawdopodobnie plik jest uszkodzony." #: ../src/common/imagjpeg.cpp:434 msgid "JPEG: Couldn't save image." msgstr "JPEG: Nie można zapisać obrazu." #: ../src/common/paper.cpp:164 msgid "Japanese Double Postcard 200 x 148 mm" msgstr "Japońska Podwójna Pocztówka 200 x 148 mm" #: ../src/common/paper.cpp:168 msgid "Japanese Envelope Chou #3" msgstr "Japońska Koperta Chou #3" #: ../src/common/paper.cpp:181 msgid "Japanese Envelope Chou #3 Rotated" msgstr "Japońska Koperta Chou #3 Obrócona" #: ../src/common/paper.cpp:169 msgid "Japanese Envelope Chou #4" msgstr "Japońska Koperta Chou #4" #: ../src/common/paper.cpp:182 msgid "Japanese Envelope Chou #4 Rotated" msgstr "Japońska Koperta Chou #4 Obrócona" #: ../src/common/paper.cpp:166 msgid "Japanese Envelope Kaku #2" msgstr "Japońska Koperta Kaku #2" #: ../src/common/paper.cpp:179 msgid "Japanese Envelope Kaku #2 Rotated" msgstr "Japońska Koperta Kaku #2 Obrócona" #: ../src/common/paper.cpp:167 msgid "Japanese Envelope Kaku #3" msgstr "Japońska Koperta Kaku #3" #: ../src/common/paper.cpp:180 msgid "Japanese Envelope Kaku #3 Rotated" msgstr "Japońska Koperta Kaku #3 Obrócona" #: ../src/common/paper.cpp:186 msgid "Japanese Envelope You #4" msgstr "Japońska Koperta You #4" #: ../src/common/paper.cpp:187 msgid "Japanese Envelope You #4 Rotated" msgstr "Japońska Koperta You #4 Obrócona" #: ../src/common/paper.cpp:139 msgid "Japanese Postcard 100 x 148 mm" msgstr "Japońska Pocztówka 100 x 148 mm" #: ../src/common/paper.cpp:176 msgid "Japanese Postcard Rotated 148 x 100 mm" msgstr "Japońska Pocztówka Obrócona 148 x 100 mm" #: ../src/common/stockitem.cpp:169 msgid "Jump to" msgstr "Skocz do" #: ../src/common/stockitem.cpp:171 msgid "Justified" msgstr "Wyrównanie obustronne" #: ../src/richtext/richtextindentspage.cpp:155 #: ../src/richtext/richtextindentspage.cpp:157 #: ../src/richtext/richtextliststylepage.cpp:344 #: ../src/richtext/richtextliststylepage.cpp:346 msgid "Justify text left and right." msgstr "Wyjustuj tekst w lewo i w prawo." #: ../src/common/fmapbase.cpp:163 msgid "KOI8-R" msgstr "KOI8-R" #: ../src/common/fmapbase.cpp:164 msgid "KOI8-U" msgstr "KOI8-U" #: ../src/common/accelcmn.cpp:254 ../src/common/accelcmn.cpp:336 msgid "KP_" msgstr "KP_" #: ../src/common/accelcmn.cpp:103 msgid "KP_ADD" msgstr "KP_ADD" #: ../src/common/accelcmn.cpp:98 msgid "KP_BEGIN" msgstr "KP_BEGIN" #: ../src/common/accelcmn.cpp:106 msgid "KP_DECIMAL" msgstr "KP_DECIMAL" #: ../src/common/accelcmn.cpp:100 msgid "KP_DELETE" msgstr "KP_DELETE" #: ../src/common/accelcmn.cpp:107 msgid "KP_DIVIDE" msgstr "KP_DIVIDE" #: ../src/common/accelcmn.cpp:92 msgid "KP_DOWN" msgstr "KP_DOWN" #: ../src/common/accelcmn.cpp:97 msgid "KP_END" msgstr "KP_END" #: ../src/common/accelcmn.cpp:87 msgid "KP_ENTER" msgstr "KP_ENTER" #: ../src/common/accelcmn.cpp:101 msgid "KP_EQUAL" msgstr "KP_EQUAL" #: ../src/common/accelcmn.cpp:88 msgid "KP_HOME" msgstr "KP_HOME" #: ../src/common/accelcmn.cpp:99 msgid "KP_INSERT" msgstr "KP_INSERT" #: ../src/common/accelcmn.cpp:89 msgid "KP_LEFT" msgstr "KP_LEFT" #: ../src/common/accelcmn.cpp:102 msgid "KP_MULTIPLY" msgstr "KP_MULTIPLY" #: ../src/common/accelcmn.cpp:95 msgid "KP_NEXT" msgstr "KP_NEXT" #: ../src/common/accelcmn.cpp:96 msgid "KP_PAGEDOWN" msgstr "KP_PAGEDOWN" #: ../src/common/accelcmn.cpp:94 msgid "KP_PAGEUP" msgstr "KP_PAGEUP" #: ../src/common/accelcmn.cpp:93 msgid "KP_PRIOR" msgstr "KP_PRIOR" #: ../src/common/accelcmn.cpp:91 msgid "KP_RIGHT" msgstr "KP_RIGHT" #: ../src/common/accelcmn.cpp:104 msgid "KP_SEPARATOR" msgstr "KP_SEPARATOR" #: ../src/common/accelcmn.cpp:85 msgid "KP_SPACE" msgstr "KP_SPACE" #: ../src/common/accelcmn.cpp:105 msgid "KP_SUBTRACT" msgstr "KP_SUBTRACT" #: ../src/common/accelcmn.cpp:86 msgid "KP_TAB" msgstr "KP_TAB" #: ../src/common/accelcmn.cpp:90 msgid "KP_UP" msgstr "KP_UP" #: ../src/richtext/richtextindentspage.cpp:270 msgid "L&ine spacing:" msgstr "&Odstęp między wierszami:" #: ../src/common/accelcmn.cpp:56 msgid "LEFT" msgstr "LEWO" #: ../src/generic/prntdlgg.cpp:618 ../src/generic/prntdlgg.cpp:873 msgid "Landscape" msgstr "Pejzaż" #: ../src/common/stockitem.cpp:174 msgid "Last" msgstr "Ostatni" #: ../src/common/prntbase.cpp:1542 msgid "Last page" msgstr "Ostatnia strona" #: ../src/common/log.cpp:311 #, c-format msgid "Last repeated message (\"%s\", %lu time) wasn't output" msgid_plural "Last repeated message (\"%s\", %lu times) wasn't output" msgstr[0] "Last repeated message (\"%s\", %lu time) wasn't output" msgstr[1] "Last repeated message (\"%s\", %lu times) wasn't output" msgstr[2] "Last repeated message (\"%s\", %lu times) wasn't output" #: ../src/common/paper.cpp:104 msgid "Ledger, 17 x 11 in" msgstr "Ledger, 17 x 11 cali" #: ../src/richtext/richtextliststylepage.cpp:249 #: ../src/richtext/richtextliststylepage.cpp:252 #: ../src/richtext/richtextliststylepage.cpp:253 #: ../src/richtext/richtextbulletspage.cpp:199 #: ../src/richtext/richtextbulletspage.cpp:202 #: ../src/richtext/richtextbulletspage.cpp:203 #: ../src/richtext/richtextsizepage.cpp:246 msgid "Left" msgstr "Lewo" #: ../src/richtext/richtextindentspage.cpp:204 #: ../src/richtext/richtextliststylepage.cpp:390 msgid "Left (&first line):" msgstr "Lewo (&pierwsza linijka):" #: ../src/generic/prntdlgg.cpp:885 msgid "Left margin (mm):" msgstr "Lewy margines (mm):" #: ../src/richtext/richtextindentspage.cpp:141 #: ../src/richtext/richtextindentspage.cpp:143 #: ../src/richtext/richtextliststylepage.cpp:330 #: ../src/richtext/richtextliststylepage.cpp:332 msgid "Left-align text." msgstr "Lewe dostosowanie tekstu." #: ../src/common/paper.cpp:145 msgid "Legal Extra 9 1/2 x 15 in" msgstr "Legal Extra 9 1/2 x 15 cali" #: ../src/common/paper.cpp:97 msgid "Legal, 8 1/2 x 14 in" msgstr "Legal, 8 1/2 x 14 cali" #: ../src/common/paper.cpp:144 msgid "Letter Extra 9 1/2 x 12 in" msgstr "List Extra 9 1/2 x 12 cali" #: ../src/common/paper.cpp:150 msgid "Letter Extra Transverse 9.275 x 12 in" msgstr "List Extra Poprzecznie 9.275 x 12 cali" #: ../src/common/paper.cpp:153 msgid "Letter Plus 8 1/2 x 12.69 in" msgstr "List Plus 8 1/2 x 12.69 cala" #: ../src/common/paper.cpp:170 msgid "Letter Rotated 11 x 8 1/2 in" msgstr "List Obrócony 11 x 8 1/2 cala" #: ../src/common/paper.cpp:102 msgid "Letter Small, 8 1/2 x 11 in" msgstr "Mały list, 8 1/2 x 11 cali" #: ../src/common/paper.cpp:148 msgid "Letter Transverse 8 1/2 x 11 in" msgstr "List Poprzecznie 8 1/2 x 11 cali" #: ../src/common/paper.cpp:96 msgid "Letter, 8 1/2 x 11 in" msgstr "List, 8 1/2 x 11 cali" #: ../src/generic/aboutdlgg.cpp:173 msgid "License" msgstr "Licencja" #: ../src/generic/fontdlgg.cpp:332 msgid "Light" msgstr "Cieńszy" #: ../src/generic/helpext.cpp:298 #, c-format msgid "Line %lu of map file \"%s\" has invalid syntax, skipped." msgstr "" "Linijka %lu pliku mapy \"%s\" posiada nieprawidłową składnię, pominięta." #: ../src/richtext/richtextliststylepage.cpp:444 msgid "Line spacing:" msgstr "Odstęp między wierszami:" #: ../src/html/chm.cpp:838 msgid "Link contained '//', converted to absolute link." msgstr "Odsyłacz zawierający '//' przekonwertowano do adresu bezwzględnego." #: ../src/richtext/richtextformatdlg.cpp:349 msgid "List Style" msgstr "Styl listy" #: ../src/richtext/richtextstyles.cpp:1060 msgid "List styles" msgstr "Style listy" #: ../src/richtext/richtextfontpage.cpp:206 #: ../src/richtext/richtextfontpage.cpp:208 msgid "Lists font sizes in points." msgstr "Wielkość czcionki listy w punktach." #: ../src/richtext/richtextfontpage.cpp:199 #: ../src/richtext/richtextfontpage.cpp:201 msgid "Lists the available fonts." msgstr "Lista dostępnych czcionek." #: ../src/common/fldlgcmn.cpp:325 #, c-format msgid "Load %s file" msgstr "Wczytaj plik %s" #: ../src/html/htmlwin.cpp:575 msgid "Loading : " msgstr "Wczytywanie : " #: ../src/unix/snglinst.cpp:246 #, c-format msgid "Lock file '%s' has incorrect owner." msgstr "Blokowany plik '%s' ma niewłaściwego właściciela." #: ../src/unix/snglinst.cpp:251 #, c-format msgid "Lock file '%s' has incorrect permissions." msgstr "Blokowany plik '%s' ma niewłaściwe uprawnienia." #: ../src/generic/logg.cpp:582 #, c-format msgid "Log saved to the file '%s'." msgstr "Log został zapisany do pliku '%s'." #: ../src/richtext/richtextliststylepage.cpp:484 #: ../src/richtext/richtextbulletspage.cpp:289 msgid "Lower case letters" msgstr "Małe litery" #: ../src/richtext/richtextliststylepage.cpp:486 #: ../src/richtext/richtextbulletspage.cpp:291 msgid "Lower case roman numerals" msgstr "Małe litery cyframi rzymskimi" #: ../src/gtk/mdi.cpp:422 ../src/gtk1/mdi.cpp:431 msgid "MDI child" msgstr "potomek MDI" #: ../src/common/accelcmn.cpp:68 msgid "MENU" msgstr "MENU" #: ../src/msw/helpchm.cpp:56 msgid "" "MS HTML Help functions are unavailable because the MS HTML Help library is " "not installed on this machine. Please install it." msgstr "" "Funkcje pomocy dla MS HTML Help nie są dostępne, ponieważ biblioteka MS HTML " "Help nie jest zainstalowana na tej maszynie. Zainstaluj ją." #: ../src/univ/themes/win32.cpp:3754 msgid "Ma&ximize" msgstr "&Maksymalizuj" #: ../src/common/fmapbase.cpp:203 msgid "MacArabic" msgstr "" #: ../src/common/fmapbase.cpp:222 msgid "MacArmenian" msgstr "MacOrmiański" #: ../src/common/fmapbase.cpp:211 msgid "MacBengali" msgstr "MacBengalski" #: ../src/common/fmapbase.cpp:217 msgid "MacBurmese" msgstr "MacBirmański" #: ../src/common/fmapbase.cpp:236 msgid "MacCeltic" msgstr "" #: ../src/common/fmapbase.cpp:227 msgid "MacCentralEurRoman" msgstr "MacŚrodkowoEuroRzymski" #: ../src/common/fmapbase.cpp:223 msgid "MacChineseSimp" msgstr "MacChińskiUpr" #: ../src/common/fmapbase.cpp:201 msgid "MacChineseTrad" msgstr "MacChińskiTrad" #: ../src/common/fmapbase.cpp:233 msgid "MacCroatian" msgstr "MacChorwacki" #: ../src/common/fmapbase.cpp:206 msgid "MacCyrillic" msgstr "MacCyrylica" #: ../src/common/fmapbase.cpp:207 msgid "MacDevanagari" msgstr "" #: ../src/common/fmapbase.cpp:231 msgid "MacDingbats" msgstr "" #: ../src/common/fmapbase.cpp:226 msgid "MacEthiopic" msgstr "MacEtiopski" #: ../src/common/fmapbase.cpp:229 msgid "MacExtArabic" msgstr "" #: ../src/common/fmapbase.cpp:237 msgid "MacGaelic" msgstr "MacCeltycki" #: ../src/common/fmapbase.cpp:221 msgid "MacGeorgian" msgstr "MacGruziński" #: ../src/common/fmapbase.cpp:205 msgid "MacGreek" msgstr "MacGrecki" #: ../src/common/fmapbase.cpp:209 msgid "MacGujarati" msgstr "MacGudżarati" #: ../src/common/fmapbase.cpp:208 msgid "MacGurmukhi" msgstr "" #: ../src/common/fmapbase.cpp:204 msgid "MacHebrew" msgstr "MacHebrajski" #: ../src/common/fmapbase.cpp:234 msgid "MacIcelandic" msgstr "MacIslandzki" #: ../src/common/fmapbase.cpp:200 msgid "MacJapanese" msgstr "MacJapoński" #: ../src/common/fmapbase.cpp:214 msgid "MacKannada" msgstr "" #: ../src/common/fmapbase.cpp:238 msgid "MacKeyboardGlyphs" msgstr "" #: ../src/common/fmapbase.cpp:218 msgid "MacKhmer" msgstr "" #: ../src/common/fmapbase.cpp:202 msgid "MacKorean" msgstr "MacKoreański" #: ../src/common/fmapbase.cpp:220 msgid "MacLaotian" msgstr "" #: ../src/common/fmapbase.cpp:215 msgid "MacMalayalam" msgstr "" #: ../src/common/fmapbase.cpp:225 msgid "MacMongolian" msgstr "MacMongolski" #: ../src/common/fmapbase.cpp:210 msgid "MacOriya" msgstr "" #: ../src/common/fmapbase.cpp:199 msgid "MacRoman" msgstr "" #: ../src/common/fmapbase.cpp:235 msgid "MacRomanian" msgstr "" #: ../src/common/fmapbase.cpp:216 msgid "MacSinhalese" msgstr "" #: ../src/common/fmapbase.cpp:230 msgid "MacSymbol" msgstr "" #: ../src/common/fmapbase.cpp:212 msgid "MacTamil" msgstr "MacTamilski" #: ../src/common/fmapbase.cpp:213 msgid "MacTelugu" msgstr "" #: ../src/common/fmapbase.cpp:219 msgid "MacThai" msgstr "MacTajski" #: ../src/common/fmapbase.cpp:224 msgid "MacTibetan" msgstr "MacTybetański" #: ../src/common/fmapbase.cpp:232 msgid "MacTurkish" msgstr "MacTurecki" #: ../src/common/fmapbase.cpp:228 msgid "MacVietnamese" msgstr "MacWietnamski" #: ../src/propgrid/advprops.cpp:2024 msgid "Make a selection:" msgstr "Dokonaj wyboru:" #: ../src/richtext/richtextformatdlg.cpp:362 #: ../src/richtext/richtextmarginspage.cpp:172 msgid "Margins" msgstr "Marginesy" #: ../src/generic/fdrepdlg.cpp:147 msgid "Match case" msgstr "Uwzględniaj wielkość liter" #: ../src/richtext/richtextsizepage.cpp:460 msgid "Max height:" msgstr "Maksymalna wysokość:" #: ../src/richtext/richtextsizepage.cpp:433 msgid "Max width:" msgstr "Maksymalna szerokość:" #: ../src/unix/mediactrl.cpp:1006 #, c-format msgid "Media playback error: %s" msgstr "Błąd odtwarzania mediów: %s" #: ../src/common/fs_mem.cpp:175 #, c-format msgid "Memory VFS already contains file '%s'!" msgstr "Pamięć VFS już zawiera plik '%s'!" #: ../src/msw/frame.cpp:347 msgid "Menu" msgstr "Menu" #: ../src/common/msgout.cpp:124 msgid "Message" msgstr "Komunikat" #: ../src/univ/themes/metal.cpp:168 msgid "Metal theme" msgstr "Kompozycja metalowa" #: ../src/msw/ole/automtn.cpp:641 msgid "Method or property not found." msgstr "Nie odnaleziono metody lub właściwości." #: ../src/univ/themes/win32.cpp:3752 msgid "Mi&nimize" msgstr "Mi&nimalizuj" #: ../src/richtext/richtextsizepage.cpp:406 msgid "Min height:" msgstr "Minimalna wysokość:" #: ../src/richtext/richtextsizepage.cpp:379 msgid "Min width:" msgstr "Min szerokość:" #: ../src/msw/ole/automtn.cpp:657 msgid "Missing a required parameter." msgstr "Brak wymaganego parametru." #: ../src/generic/fontdlgg.cpp:324 msgid "Modern" msgstr "Modern" #: ../src/generic/filectrlg.cpp:462 msgid "Modified" msgstr "Zmodyfikowany" #: ../src/common/module.cpp:133 #, c-format msgid "Module \"%s\" initialization failed" msgstr "Inicjalizacja modułu \"%s\" nie powiodła się" #: ../src/common/paper.cpp:132 msgid "Monarch Envelope, 3 7/8 x 7 1/2 in" msgstr "Koperta Monarch, 3 7/8 x 7 1/2 cala" #: ../src/msw/fswatcher.cpp:143 msgid "Monitoring individual files for changes is not supported currently." msgstr "" "Monitorowanie zmian pojedynczych plików nie jest aktualnie obsługiwane." #: ../src/generic/editlbox.cpp:276 msgid "Move down" msgstr "Przenieś w dół" #: ../src/generic/editlbox.cpp:275 msgid "Move up" msgstr "Przenieś w górę" #: ../src/richtext/richtextsizepage.cpp:679 #: ../src/richtext/richtextsizepage.cpp:681 msgid "Moves the object to the next paragraph." msgstr "Przenosi obiekt do następnego akapitu." #: ../src/richtext/richtextsizepage.cpp:673 #: ../src/richtext/richtextsizepage.cpp:675 msgid "Moves the object to the previous paragraph." msgstr "Przenosi obiekt do poprzedniego paragrafu." #: ../src/richtext/richtextbuffer.cpp:9271 msgid "Multiple Cell Properties" msgstr "Właściwości wielu komórek" #: ../src/common/accelcmn.cpp:81 msgid "NUM_LOCK" msgstr "NUM_LOCK" #: ../src/generic/filectrlg.cpp:459 msgid "Name" msgstr "Nazwa" #: ../src/common/stockitem.cpp:175 msgid "Network" msgstr "Sieć" #: ../src/common/stockitem.cpp:176 #, fuzzy msgid "New" msgstr "&Nowy" #: ../src/richtext/richtextstyledlg.cpp:243 msgid "New &Box Style..." msgstr "Nowy styl &bloku..." #: ../src/richtext/richtextstyledlg.cpp:225 msgid "New &Character Style..." msgstr "Nowy styl &znaku..." #: ../src/richtext/richtextstyledlg.cpp:237 msgid "New &List Style..." msgstr "Nowy styl &listy..." #: ../src/richtext/richtextstyledlg.cpp:231 msgid "New &Paragraph Style..." msgstr "Nowy styl ¶grafu..." #: ../src/richtext/richtextstyledlg.cpp:603 #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:651 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:817 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:890 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:931 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "New Style" msgstr "Nowy styl" #: ../src/generic/dirdlgg.cpp:102 msgid "New directory" msgstr "Nowy katalog" #: ../src/generic/editlbox.cpp:273 msgid "New item" msgstr "Nowa pozycja" # To jest maska do tworzenia nazw typu NowaNaz1 itd #: ../src/generic/dirdlgg.cpp:326 ../src/generic/dirdlgg.cpp:336 #: ../src/generic/filectrlg.cpp:653 ../src/generic/filectrlg.cpp:662 msgid "NewName" msgstr "NowaNaz" #: ../src/generic/tipdlg.cpp:305 msgid "Next" msgstr "Dalej" #: ../src/common/prntbase.cpp:1537 ../src/html/helpwnd.cpp:678 msgid "Next page" msgstr "Następna strona" #: ../include/wx/msgdlg.h:272 ../src/common/stockitem.cpp:177 #: ../src/motif/msgdlg.cpp:196 msgid "No" msgstr "Nie" #: ../src/generic/animateg.cpp:150 #, c-format msgid "No animation handler for type %ld defined." msgstr "Brak procedury obsługi animacji dla typu %ld." #: ../src/dfb/bitmap.cpp:642 ../src/dfb/bitmap.cpp:676 #, c-format msgid "No bitmap handler for type %d defined." msgstr "Brak procedury obsługi bitmapy dla typu %d." #: ../src/osx/carbon/dataview.cpp:1784 msgid "No column existing." msgstr "Nie istnieje kolumny." #: ../src/osx/carbon/dataview.cpp:1674 msgid "No column for the specified column existing." msgstr "" #: ../src/osx/carbon/dataview.cpp:1423 msgid "No column for the specified column position existing." msgstr "Nie istnieje kolumny dla określonej pozycji kolumny." #: ../src/common/utilscmn.cpp:1049 msgid "No default application configured for HTML files." msgstr "Nie ma ustawionej domyślnej aplikacji dla plików HTML." #: ../src/generic/helpext.cpp:449 msgid "No entries found." msgstr "Nie znaleziono pozycji." #: ../src/common/fontmap.cpp:421 #, c-format msgid "" "No font for displaying text in encoding '%s' found,\n" "but an alternative encoding '%s' is available.\n" "Do you want to use this encoding (otherwise you will have to choose another " "one)?" msgstr "" "Brak czcionki do wyświelenia tekstu w kodowaniu '%s',\n" "jednak dostępne jest alternatywne kodowanie '%s'.\n" "Chesz użyć tego kodowania (możesz także wybrać inne)?" #: ../src/common/fontmap.cpp:426 #, c-format msgid "" "No font for displaying text in encoding '%s' found.\n" "Would you like to select a font to be used for this encoding\n" "(otherwise the text in this encoding will not be shown correctly)?" msgstr "" "Brak czcionki do wyświelenia tekstu w kodowaniu '%s'.\n" "Chcesz wskazać czcionkę do użycia\n" "(inaczej tekst może nie być wyświetlony poprawnie)?" #: ../src/generic/animateg.cpp:142 msgid "No handler found for animation type." msgstr "Brak procedury obsługi typu animacji." #: ../src/common/image.cpp:2591 msgid "No handler found for image type." msgstr "Brak procedury obsługi grafiki." #: ../src/common/image.cpp:2599 ../src/common/image.cpp:2710 #: ../src/common/image.cpp:2763 #, c-format msgid "No image handler for type %d defined." msgstr "Brak procedury obsługi obrazów typu %d." #: ../src/common/image.cpp:2733 ../src/common/image.cpp:2777 #, c-format msgid "No image handler for type %s defined." msgstr "Brak procedury obsługi obrazów typu %s." #: ../src/html/helpwnd.cpp:871 msgid "No matching page found yet" msgstr "Jeszcze nie znaleziono pasującej strony" #: ../src/osx/carbon/dataview.cpp:1676 ../src/osx/carbon/dataview.cpp:1786 msgid "No renderer or invalid renderer type specified for custom data column." msgstr "" "Nie ma rendera lub nieprawidłowy typ rendera określonego dla własnych danych " "kolumny." #: ../src/osx/carbon/dataview.cpp:1424 msgid "No renderer specified for column." msgstr "Nie określono rendera dla kolumny." #: ../src/unix/sound.cpp:81 msgid "No sound" msgstr "Brak dźwięku" #: ../src/common/image.cpp:2166 ../src/common/image.cpp:2207 msgid "No unused colour in image being masked." msgstr "Brak nieużywanych kolorów w maskowanym obrazie." #: ../src/common/image.cpp:3236 msgid "No unused colour in image." msgstr "Brak wolnych kolorów w obrazie." #: ../src/generic/helpext.cpp:306 #, c-format msgid "No valid mappings found in the file \"%s\"." msgstr "Znaleziono nie ważne mapowania w pliku \"%s\"." #: ../src/richtext/richtextborderspage.cpp:542 #: ../src/richtext/richtextsizepage.cpp:245 #: ../src/richtext/richtextsizepage.cpp:249 #, fuzzy msgid "None" msgstr "(Brak)" #: ../src/common/fmapbase.cpp:157 msgid "Nordic (ISO-8859-10)" msgstr "Nordycki (ISO-8859-10)" #: ../src/generic/fontdlgg.cpp:328 ../src/generic/fontdlgg.cpp:331 msgid "Normal" msgstr "Normalny" #: ../src/html/helpwnd.cpp:1276 msgid "Normal face
    and underlined. " msgstr "Zwykły tekst
    i podkreślony. " #: ../src/html/helpwnd.cpp:1218 msgid "Normal font:" msgstr "Normalna czcionka:" #: ../src/propgrid/props.cpp:887 #, c-format msgid "Not %s" msgstr "" #: ../include/wx/filename.h:586 ../include/wx/filename.h:591 msgid "Not available" msgstr "Niedostępne" #: ../src/richtext/richtextfontpage.cpp:340 msgid "Not underlined" msgstr "Nie podkreślony" #: ../src/common/paper.cpp:116 msgid "Note, 8 1/2 x 11 in" msgstr "Note, 8 1/2 x 11 cali" #: ../src/generic/notifmsgg.cpp:104 msgid "Notice" msgstr "Uwaga" #: ../src/osx/carbon/dataview.cpp:902 msgid "Number of columns could not be determined." msgstr "Ilość kolumn nie może być ustalona" #: ../src/richtext/richtextliststylepage.cpp:487 #: ../src/richtext/richtextbulletspage.cpp:292 msgid "Numbered outline" msgstr "Numerowane kontury" #: ../include/wx/msgdlg.h:273 ../src/richtext/richtextstyledlg.cpp:297 #: ../src/common/stockitem.cpp:178 ../src/msw/msgdlg.cpp:489 #: ../src/msw/msgdlg.cpp:795 ../src/msw/dialog.cpp:120 #: ../src/gtk1/fontdlg.cpp:138 msgid "OK" msgstr "OK" #: ../src/msw/ole/automtn.cpp:681 #, c-format msgid "OLE Automation error in %s: %s" msgstr "Błąd automatyzacji OLE w %s: %s" #: ../include/wx/richtext/richtextimagedlg.h:39 msgid "Object Properties" msgstr "&Właściwości obiektu" #: ../src/msw/ole/automtn.cpp:649 msgid "Object implementation does not support named arguments." msgstr "Implementacja obiektu nie obsługuje nazywanych argumentów." #: ../src/common/xtixml.cpp:264 msgid "Objects must have an id attribute" msgstr "Obiekty muszą posiadać właściwość typu 'id'" #: ../src/common/docview.cpp:1756 ../src/common/docview.cpp:1798 msgid "Open File" msgstr "Otwieranie Pliku" #: ../src/html/helpwnd.cpp:684 ../src/html/helpwnd.cpp:1557 msgid "Open HTML document" msgstr "Otwórz dokument HTML" #: ../src/generic/dbgrptg.cpp:163 #, c-format msgid "Open file \"%s\"" msgstr "Otwieranie pliku \"%s\"" #: ../src/common/stockitem.cpp:179 #, fuzzy msgid "Open..." msgstr "&Otwórz..." #: ../src/osx/carbon/glcanvas.cpp:48 #, c-format msgid "OpenGL function \"%s\" failed: %s (error %d)" msgstr "Nie powiodła się funkcja \"%s\" OpenGL: %s (błąd %d)" #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:821 msgid "Operation not permitted." msgstr "Operacja nie jest dozwolona." #: ../src/common/cmdline.cpp:735 #, c-format msgid "Option '%s' can't be negated" msgstr "" #: ../src/common/cmdline.cpp:899 #, c-format msgid "Option '%s' requires a value." msgstr "Opcja '%s' wymaga podania wartości." #: ../src/common/cmdline.cpp:982 #, c-format msgid "Option '%s': '%s' cannot be converted to a date." msgstr "Opcja '%s': nie można przekształcić '%s' na datę." #: ../src/generic/dirdlgg.cpp:187 ../src/generic/prntdlgg.cpp:623 msgid "Options" msgstr "Opcje" #: ../src/generic/prntdlgg.cpp:620 ../src/generic/prntdlgg.cpp:874 msgid "Orientation" msgstr "Orientacja" #: ../src/common/windowid.cpp:259 msgid "Out of window IDs. Recommend shutting down application." msgstr "Po za identyfikatorami okna. Zalecane jest zamknięcie aplikacji." #: ../src/richtext/richtextborderspage.cpp:400 #: ../src/richtext/richtextborderspage.cpp:533 msgid "Outline" msgstr "kontur" #: ../src/richtext/richtextborderspage.cpp:550 msgid "Outset" msgstr "" #: ../src/msw/ole/automtn.cpp:645 msgid "Overflow while coercing argument values." msgstr "Przepełnienie podczas wymuszania wartości argumentów." #: ../src/common/accelcmn.cpp:84 msgid "PAGEDOWN" msgstr "PAGEDOWN" #: ../src/common/accelcmn.cpp:83 msgid "PAGEUP" msgstr "PAGEUP" #: ../src/common/accelcmn.cpp:69 msgid "PAUSE" msgstr "PAUZA" #: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:480 msgid "PCX: couldn't allocate memory" msgstr "PCX: Nie można przydzielić pamięci." #: ../src/common/imagpcx.cpp:456 msgid "PCX: image format unsupported" msgstr "PCX: nieobsługiwany format obrazu." #: ../src/common/imagpcx.cpp:479 msgid "PCX: invalid image" msgstr "PCX: nieprawidłowy obraz" #: ../src/common/imagpcx.cpp:442 msgid "PCX: this is not a PCX file." msgstr "PCX: To nie jest plik w formacie PCX." #: ../src/common/imagpcx.cpp:459 ../src/common/imagpcx.cpp:481 msgid "PCX: unknown error !!!" msgstr "PCX: nieznany błąd !!!" #: ../src/common/imagpcx.cpp:458 msgid "PCX: version number too low" msgstr "PCX: zbyt niski numer wersji." #: ../src/common/accelcmn.cpp:55 msgid "PGDN" msgstr "PGDN" #: ../src/common/accelcmn.cpp:54 msgid "PGUP" msgstr "PGUP" #: ../src/common/imagpnm.cpp:91 msgid "PNM: Couldn't allocate memory." msgstr "PNM: Nie można przydzielić pamięci." #: ../src/common/imagpnm.cpp:73 msgid "PNM: File format is not recognized." msgstr "PNM: Nieznany format pliku." #: ../src/common/imagpnm.cpp:112 ../src/common/imagpnm.cpp:134 #: ../src/common/imagpnm.cpp:156 msgid "PNM: File seems truncated." msgstr "PNM: Plik wygląda na obcięty." #: ../src/common/paper.cpp:188 msgid "PRC 16K 146 x 215 mm" msgstr "PRC 16K 146 x 215 mm" #: ../src/common/paper.cpp:201 msgid "PRC 16K Rotated" msgstr "PRC 16K Obrócony" #: ../src/common/paper.cpp:189 msgid "PRC 32K 97 x 151 mm" msgstr "PRC 32K 97 x 151 mm" #: ../src/common/paper.cpp:202 msgid "PRC 32K Rotated" msgstr "PRC 32K Obrócony" #: ../src/common/paper.cpp:190 msgid "PRC 32K(Big) 97 x 151 mm" msgstr "PRC 32K(Big) 97 x 151 mm" #: ../src/common/paper.cpp:203 msgid "PRC 32K(Big) Rotated" msgstr "PRC 32K(Big) Obrócony" #: ../src/common/paper.cpp:191 msgid "PRC Envelope #1 102 x 165 mm" msgstr "Koperta PRC #1, 102 x 165 mm" #: ../src/common/paper.cpp:204 msgid "PRC Envelope #1 Rotated 165 x 102 mm" msgstr "Koperta PRC #1 Obrócona, 165 x 102 mm" #: ../src/common/paper.cpp:200 msgid "PRC Envelope #10 324 x 458 mm" msgstr "Koperta PRC #10 324 x 458 mm" #: ../src/common/paper.cpp:213 msgid "PRC Envelope #10 Rotated 458 x 324 mm" msgstr "Koperta PRC #10 Obrócona 458 x 324 mm" #: ../src/common/paper.cpp:192 msgid "PRC Envelope #2 102 x 176 mm" msgstr "Koperta PRC #2 102 x 176 mm" #: ../src/common/paper.cpp:205 msgid "PRC Envelope #2 Rotated 176 x 102 mm" msgstr "Koperta PRC #2 Obrócona 176 x 102 mm" #: ../src/common/paper.cpp:193 msgid "PRC Envelope #3 125 x 176 mm" msgstr "Koperta PRC #3 125 x 176 mm" #: ../src/common/paper.cpp:206 msgid "PRC Envelope #3 Rotated 176 x 125 mm" msgstr "Koperta PRC #3 Obrócona 176 x 125 mm" #: ../src/common/paper.cpp:194 msgid "PRC Envelope #4 110 x 208 mm" msgstr "Koperta PRC #4 110 x 208 mm" #: ../src/common/paper.cpp:207 msgid "PRC Envelope #4 Rotated 208 x 110 mm" msgstr "Koperta PRC #4 Obrócona 208 x 110 mm" #: ../src/common/paper.cpp:195 msgid "PRC Envelope #5 110 x 220 mm" msgstr "Koperta PRC #5 110 x 220 mm" #: ../src/common/paper.cpp:208 msgid "PRC Envelope #5 Rotated 220 x 110 mm" msgstr "Koperta PRC #5 Obrócona 220 x 110 mm" #: ../src/common/paper.cpp:196 msgid "PRC Envelope #6 120 x 230 mm" msgstr "Koperta PRC #6 120 x 230 mm" #: ../src/common/paper.cpp:209 msgid "PRC Envelope #6 Rotated 230 x 120 mm" msgstr "Koperta PRC #6 Obrócona 230 x 120 mm" #: ../src/common/paper.cpp:197 msgid "PRC Envelope #7 160 x 230 mm" msgstr "Koperta PRC #7 160 x 230 mm" #: ../src/common/paper.cpp:210 msgid "PRC Envelope #7 Rotated 230 x 160 mm" msgstr "Koperta PRC #7 Obrócona 230 x 160 mm" #: ../src/common/paper.cpp:198 msgid "PRC Envelope #8 120 x 309 mm" msgstr "Koperta PRC #8 120 x 309 mm" #: ../src/common/paper.cpp:211 msgid "PRC Envelope #8 Rotated 309 x 120 mm" msgstr "Koperta PRC #8 Obrócona 309 x 120 mm" #: ../src/common/paper.cpp:199 msgid "PRC Envelope #9 229 x 324 mm" msgstr "Koperta PRC #9 229 x 324 mm" #: ../src/common/paper.cpp:212 msgid "PRC Envelope #9 Rotated 324 x 229 mm" msgstr "Koperta PRC #9 Obrócona 324 x 229 mm" #: ../src/common/accelcmn.cpp:72 msgid "PRINT" msgstr "WYDRUK" #: ../src/richtext/richtextmarginspage.cpp:286 msgid "Padding" msgstr "" #: ../src/common/prntbase.cpp:2044 #, c-format msgid "Page %d" msgstr "Strona %d" #: ../src/common/prntbase.cpp:2042 #, c-format msgid "Page %d of %d" msgstr "Strona %d z %d" #: ../src/gtk/print.cpp:783 msgid "Page Setup" msgstr "Ustawienia strony" #: ../src/generic/prntdlgg.cpp:833 ../src/common/prntbase.cpp:467 #: ../src/gtk/gnome/gprint.cpp:710 msgid "Page setup" msgstr "Ustawienia strony" #: ../src/generic/prntdlgg.cpp:221 msgid "Pages" msgstr "Strony" #: ../src/generic/prntdlgg.cpp:607 ../src/generic/prntdlgg.cpp:806 #: ../src/generic/prntdlgg.cpp:847 ../src/generic/prntdlgg.cpp:860 #: ../src/generic/prntdlgg.cpp:1057 ../src/generic/prntdlgg.cpp:1062 msgid "Paper size" msgstr "Rozmiar papieru" #: ../src/richtext/richtextstyles.cpp:1058 msgid "Paragraph styles" msgstr "Style paragrafu" #: ../src/common/xtistrm.cpp:469 msgid "Passing a already registered object to SetObject" msgstr "Przekazano już zarejestrowany obiekt do funkcji SetObject" #: ../src/common/xtistrm.cpp:480 #, fuzzy msgid "Passing an unknown object to GetObject" msgstr "Przekazanie nieznanego obiektu do funkcji GetObject" #: ../src/richtext/richtextctrl.cpp:3103 ../src/common/stockitem.cpp:180 #: ../src/stc/stc_i18n.cpp:19 msgid "Paste" msgstr "Wklej" #: ../src/common/stockitem.cpp:262 msgid "Paste selection" msgstr "Wklej wybór" #: ../src/richtext/richtextliststylepage.cpp:222 #: ../src/richtext/richtextbulletspage.cpp:172 msgid "Peri&od" msgstr "&Okres" # prawa? #: ../src/generic/filectrlg.cpp:465 msgid "Permissions" msgstr "Uprawnienia" #: ../src/richtext/richtextbuffer.cpp:11745 msgid "Picture Properties" msgstr "&Właściwości obrazu" #: ../include/wx/unix/pipe.h:47 msgid "Pipe creation failed" msgstr "Nie udało się utworzyć potoku." #: ../src/gtk1/fontdlg.cpp:74 msgid "Please choose a valid font." msgstr "Proszę wybrać poprawną czcionkę." #: ../src/gtk/filedlg.cpp:72 msgid "Please choose an existing file." msgstr "Proszę wybrać istniejący plik." #: ../src/html/helpwnd.cpp:813 msgid "Please choose the page to display:" msgstr "Wybierz stronę do wyświetlenia:" #: ../src/msw/dialup.cpp:785 msgid "Please choose which ISP do you want to connect to" msgstr "Wybierz ISP, z którym chcesz się połączyć" #: ../src/msw/listctrl.cpp:372 #, c-format msgid "" "Please install a newer version of comctl32.dll\n" "(at least version 4.70 is required but you have %d.%02d)\n" "or this program won't operate correctly." msgstr "" "Proszę zainstalować nowszą wersję bliblioteki comctl32.dll\n" "(wymagana co najmniej 4.70, zainstalowana %d.%02d)\n" "inaczej program nie będzie działał poprawnie." #: ../src/common/headerctrlcmn.cpp:59 msgid "Please select the columns to show and define their order:" msgstr "Proszę wybrać kolumny do pokazania i określić ich kolejność:" #: ../src/common/prntbase.cpp:521 #, fuzzy msgid "Please wait while printing..." msgstr "Proszę czekać, trwa drukowanie\n" #: ../src/propgrid/advprops.cpp:631 msgid "Point Size" msgstr "&Rozmiar punktu:" #: ../src/osx/carbon/dataview.cpp:1278 ../src/osx/carbon/dataview.cpp:1329 #: ../src/osx/carbon/dataview.cpp:1420 ../src/osx/carbon/dataview.cpp:1443 #: ../src/osx/carbon/dataview.cpp:1460 ../src/osx/carbon/dataview.cpp:1477 #: ../src/osx/carbon/dataview.cpp:1670 ../src/osx/carbon/dataview.cpp:1779 #: ../src/osx/carbon/dataview.cpp:1821 ../src/osx/carbon/dataview.cpp:1874 #: ../src/osx/carbon/dataview.cpp:1997 msgid "Pointer to data view control not set correctly." msgstr "Wskaźnik do kontroli widoku danych nie jest prawidłowo ustawiony." #: ../src/osx/carbon/dataview.cpp:1279 ../src/osx/carbon/dataview.cpp:1338 #: ../src/osx/carbon/dataview.cpp:1421 ../src/osx/carbon/dataview.cpp:1478 #: ../src/osx/carbon/dataview.cpp:1671 ../src/osx/carbon/dataview.cpp:1780 #: ../src/osx/carbon/dataview.cpp:1822 ../src/osx/carbon/dataview.cpp:1875 #: ../src/osx/carbon/dataview.cpp:1998 msgid "Pointer to model not set correctly." msgstr "Wskaźnik do modelu nie jest prawidłowo ustawiony." #: ../src/generic/prntdlgg.cpp:617 ../src/generic/prntdlgg.cpp:872 msgid "Portrait" msgstr "Portret" #: ../src/richtext/richtextsizepage.cpp:493 msgid "Position" msgstr "PozycjaPytanie" #: ../src/generic/prntdlgg.cpp:303 msgid "PostScript file" msgstr "plik PostScript" #: ../src/common/stockitem.cpp:181 msgid "Preferences" msgstr "Preferencje" #: ../src/osx/menu_osx.cpp:643 msgid "Preferences..." msgstr "&Preferencje..." #: ../src/common/prntbase.cpp:529 msgid "Preparing" msgstr "Przygotowywanie" #: ../src/generic/fontdlgg.cpp:455 ../src/osx/carbon/fontdlg.cpp:576 #: ../src/html/helpwnd.cpp:1235 msgid "Preview:" msgstr "Podgląd:" #: ../src/common/prntbase.cpp:1523 ../src/html/helpwnd.cpp:677 msgid "Previous page" msgstr "Poprzednia strona" #: ../src/generic/prntdlgg.cpp:148 ../src/generic/prntdlgg.cpp:162 #: ../src/common/prntbase.cpp:409 ../src/common/prntbase.cpp:1511 #: ../src/gtk/print.cpp:593 ../src/gtk/print.cpp:606 #: ../src/gtk/gnome/gprint.cpp:537 ../src/gtk/gnome/gprint.cpp:549 msgid "Print" msgstr "Drukuj" #: ../include/wx/prntbase.h:395 ../src/common/docview.cpp:1250 msgid "Print Preview" msgstr "Podgląd wydruku" #: ../src/common/prntbase.cpp:1985 ../src/common/prntbase.cpp:2027 #: ../src/common/prntbase.cpp:2035 msgid "Print Preview Failure" msgstr "Awaria podglądu wydruku" #: ../src/generic/prntdlgg.cpp:229 msgid "Print Range" msgstr "Zakres wydruku" #: ../src/generic/prntdlgg.cpp:454 msgid "Print Setup" msgstr "Ustawienia wydruku" #: ../src/generic/prntdlgg.cpp:626 msgid "Print in colour" msgstr "Wydruk w kolorze" #: ../src/common/stockitem.cpp:182 #, fuzzy msgid "Print previe&w..." msgstr "Podgląd &wydruku" #: ../src/gtk/gnome/gprint.cpp:944 msgid "Print preview" msgstr "Podgląd wydruku" #: ../src/common/docview.cpp:1244 msgid "Print preview creation failed." msgstr "Nie udało się utworzyć podglądu wydruku." #: ../src/common/stockitem.cpp:182 #, fuzzy msgid "Print preview..." msgstr "Podgląd wydruku" #: ../src/generic/prntdlgg.cpp:635 msgid "Print spooling" msgstr "Kolejkowanie wydruków" #: ../src/html/helpwnd.cpp:688 msgid "Print this page" msgstr "Drukuj stronę" #: ../src/generic/prntdlgg.cpp:190 msgid "Print to File" msgstr "Drukuj do pliku" #: ../src/common/stockitem.cpp:183 #, fuzzy msgid "Print..." msgstr "&Drukuj..." #: ../src/generic/prntdlgg.cpp:498 msgid "Printer" msgstr "Drukarka" #: ../src/generic/prntdlgg.cpp:638 msgid "Printer command:" msgstr "Polecenie drukarki:" #: ../src/generic/prntdlgg.cpp:185 msgid "Printer options" msgstr "Opcje drukarki" #: ../src/generic/prntdlgg.cpp:650 msgid "Printer options:" msgstr "Opcje drukarki:" #: ../src/generic/prntdlgg.cpp:921 msgid "Printer..." msgstr "Drukarka..." #: ../src/generic/prntdlgg.cpp:201 msgid "Printer:" msgstr "Drukarka:" #: ../include/wx/richtext/richtextprint.h:163 ../src/common/prntbase.cpp:518 #: ../src/html/htmprint.cpp:277 #, fuzzy msgid "Printing" msgstr "Drukowanie " #: ../src/common/prntbase.cpp:586 msgid "Printing " msgstr "Drukowanie " #: ../src/common/prntbase.cpp:330 msgid "Printing Error" msgstr "Błąd wydruku" #: ../src/common/prntbase.cpp:544 #, c-format msgid "Printing page %d of %d" msgstr "Drukowanie strony %d z %d" #: ../src/generic/printps.cpp:201 #, c-format msgid "Printing page %d..." msgstr "Drukowanie strony %d..." #: ../src/generic/printps.cpp:161 msgid "Printing..." msgstr "Drukowanie..." #: ../include/wx/richtext/richtextprint.h:109 ../include/wx/prntbase.h:263 #: ../src/common/docview.cpp:2125 msgid "Printout" msgstr "Wydruk" #: ../src/common/debugrpt.cpp:565 #, c-format msgid "" "Processing debug report has failed, leaving the files in \"%s\" directory." msgstr "" "Przetwarzanie raportu błędów nie powiodło się, pozostawiając pliku w " "katalogu \"%s\"." #: ../src/osx/carbon/dataview.cpp:2472 msgid "Progress renderer cannot render value type; value type: " msgstr "Render postępu nie może renderować typu wartości; typ wartości:" #: ../src/common/prntbase.cpp:528 msgid "Progress:" msgstr "Postęp:" #: ../src/common/stockitem.cpp:184 #, fuzzy msgid "Properties" msgstr "&Właściwości" #: ../src/propgrid/manager.cpp:237 msgid "Property" msgstr "Właściwość" #: ../src/propgrid/propgrid.cpp:3144 ../src/propgrid/propgrid.cpp:3276 msgid "Property Error" msgstr "Błąd właściwości" #: ../src/common/paper.cpp:113 msgid "Quarto, 215 x 275 mm" msgstr "Quarto, 215 x 275 mm" #: ../src/generic/logg.cpp:1036 msgid "Question" msgstr "Pytanie" #: ../src/common/stockitem.cpp:156 #, fuzzy msgid "Quit" msgstr "&Wyjście" #: ../src/osx/menu_osx.cpp:610 ../src/osx/menu_osx.cpp:657 #, c-format msgid "Quit %s" msgstr "&Wyjście z %s" #: ../src/common/stockitem.cpp:263 msgid "Quit this program" msgstr "Zamknij program" #: ../src/common/accelcmn.cpp:53 msgid "RETURN" msgstr "RETURN" #: ../src/common/accelcmn.cpp:57 msgid "RIGHT" msgstr "PRAWO" #: ../src/common/accelcmn.cpp:327 msgid "RawCtrl+" msgstr "" #: ../src/common/ffile.cpp:113 ../src/common/ffile.cpp:134 #, c-format msgid "Read error on file '%s'" msgstr "Błąd odczytu pliku '%s'" #: ../src/common/prntbase.cpp:257 msgid "Ready" msgstr "Gotowy" #: ../src/common/stockitem.cpp:185 ../src/stc/stc_i18n.cpp:16 msgid "Redo" msgstr "Ponów" #: ../src/common/stockitem.cpp:264 msgid "Redo last action" msgstr "Powtórz ostatnią czynność" #: ../src/common/stockitem.cpp:186 msgid "Refresh" msgstr "Odśwież" #: ../src/msw/registry.cpp:625 #, c-format msgid "Registry key '%s' already exists." msgstr "Klucz rejestru '%s' już istnieje." #: ../src/msw/registry.cpp:594 #, c-format msgid "Registry key '%s' does not exist, cannot rename it." msgstr "Klucz rejestru '%s' nie istnieje, nie można zmienić jego nazwy." #: ../src/msw/registry.cpp:726 #, c-format msgid "" "Registry key '%s' is needed for normal system operation,\n" "deleting it will leave your system in unusable state:\n" "operation aborted." msgstr "" "Klucz rejestru '%s' jest potrzebny do normalnego funkcjonowania systemu,\n" "usunięcie go zdestabilizowałoby system:\n" "operacja została przerwana." #: ../src/msw/registry.cpp:520 #, c-format msgid "Registry value '%s' already exists." msgstr "Wartość rejestru '%s' już istnieje." #: ../src/richtext/richtextfontpage.cpp:332 #: ../src/richtext/richtextfontpage.cpp:336 msgid "Regular" msgstr "Regularne" #: ../src/richtext/richtextsizepage.cpp:516 msgid "Relative" msgstr "" #: ../src/generic/helpext.cpp:462 msgid "Relevant entries:" msgstr "Pozycje związane:" #: ../include/wx/generic/progdlgg.h:86 msgid "Remaining time:" msgstr "Pozostały czas:" #: ../src/common/stockitem.cpp:187 msgid "Remove" msgstr "Usuń" #: ../src/richtext/richtextctrl.cpp:1430 msgid "Remove Bullet" msgstr "Usuń wypunktowanie" #: ../src/html/helpwnd.cpp:440 msgid "Remove current page from bookmarks" msgstr "Usuń bieżącą stronę z listy zakładek" #: ../src/common/rendcmn.cpp:194 #, c-format msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded." msgstr "" "Wizualizator \"%s\" ma niezgodną wersję %d.%d i nie może być załadowany." #: ../src/osx/carbon/dataview.cpp:1430 msgid "Rendering failed." msgstr "Rendering nie powiodł się." #: ../src/richtext/richtextbuffer.cpp:4202 msgid "Renumber List" msgstr "Zmień numerację listy" #: ../src/common/stockitem.cpp:188 msgid "Rep&lace" msgstr "&Zastąp" #: ../src/richtext/richtextctrl.cpp:3263 ../src/common/stockitem.cpp:188 msgid "Replace" msgstr "Zastąp" #: ../src/generic/fdrepdlg.cpp:182 msgid "Replace &all" msgstr "Zastąp &wszystko" #: ../src/common/stockitem.cpp:261 msgid "Replace selection" msgstr "Zastąp wybór" #: ../src/generic/fdrepdlg.cpp:124 msgid "Replace with:" msgstr "Zastąp przez:" #: ../src/common/valtext.cpp:161 msgid "Required information entry is empty." msgstr "Wymagane pole informacji jest puste." #: ../src/common/translation.cpp:1975 #, c-format msgid "Resource '%s' is not a valid message catalog." msgstr "Zasób '%s' nie jest prawidłowym katalogiem komunikatów." #: ../src/common/stockitem.cpp:189 msgid "Revert to Saved" msgstr "Przywróć zapisany" #: ../src/richtext/richtextborderspage.cpp:548 msgid "Ridge" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:251 #: ../src/richtext/richtextbulletspage.cpp:201 #: ../src/richtext/richtextsizepage.cpp:247 msgid "Right" msgstr "Prawy" #: ../src/generic/prntdlgg.cpp:897 msgid "Right margin (mm):" msgstr "Prawy margines (mm):" #: ../src/richtext/richtextindentspage.cpp:148 #: ../src/richtext/richtextindentspage.cpp:150 #: ../src/richtext/richtextliststylepage.cpp:337 #: ../src/richtext/richtextliststylepage.cpp:339 msgid "Right-align text." msgstr "Prawe dostosowanie tekstu." #: ../src/generic/fontdlgg.cpp:322 msgid "Roman" msgstr "Roman" #: ../src/richtext/richtextliststylepage.cpp:299 #: ../src/richtext/richtextbulletspage.cpp:252 msgid "S&tandard bullet name:" msgstr "Standardowy styl wypunktowania:" #: ../src/common/accelcmn.cpp:82 msgid "SCROLL_LOCK" msgstr "SCROLL_LOCK" #: ../src/common/accelcmn.cpp:71 msgid "SELECT" msgstr "WYBÓR" #: ../src/common/accelcmn.cpp:77 msgid "SEPARATOR" msgstr "SEPARATOR" #: ../src/common/accelcmn.cpp:74 msgid "SNAPSHOT" msgstr "ZRZUT EKRANU" #: ../src/common/accelcmn.cpp:62 msgid "SPACE" msgstr "SPACJA" #: ../src/common/accelcmn.cpp:257 ../src/common/accelcmn.cpp:339 msgid "SPECIAL" msgstr "SPECJALNY" #: ../src/common/accelcmn.cpp:78 msgid "SUBTRACT" msgstr "DZIELENIE" #: ../src/common/stockitem.cpp:190 ../src/common/sizer.cpp:2678 msgid "Save" msgstr "Zapisz" #: ../src/common/fldlgcmn.cpp:327 #, c-format msgid "Save %s file" msgstr "Zapisz plik %s" #: ../src/generic/logg.cpp:518 msgid "Save &As..." msgstr "Zapisz J&ako..." #: ../src/common/docview.cpp:360 msgid "Save As" msgstr "Zapisz Jako" #: ../src/common/stockitem.cpp:191 #, fuzzy msgid "Save as" msgstr "Zapisz Jako" # perspektywę? #: ../src/common/stockitem.cpp:267 msgid "Save current document" msgstr "Zapisz bieżący dokument" #: ../src/common/stockitem.cpp:268 msgid "Save current document with a different filename" msgstr "Zapisz bieżący dokument pod inną nazwą pliku" #: ../src/generic/logg.cpp:518 msgid "Save log contents to file" msgstr "Zapisz zawartość dziennika do pliku" #: ../src/generic/fontdlgg.cpp:325 msgid "Script" msgstr "Script" #: ../src/generic/srchctlg.cpp:67 ../src/html/helpwnd.cpp:548 #: ../src/html/helpwnd.cpp:563 msgid "Search" msgstr "Szukaj" #: ../src/html/helpwnd.cpp:550 #, fuzzy msgid "" "Search contents of help book(s) for all occurrences of the text you typed " "above" msgstr "" "Przeszukuje zawartość pliku(ów) pomocy dla wszystkich wystąpień " "wprowadzonego powyżej tekstu" #: ../src/generic/fdrepdlg.cpp:160 msgid "Search direction" msgstr "Kierunek szukania" #: ../src/generic/fdrepdlg.cpp:112 msgid "Search for:" msgstr "Znajdź:" # spisach? #: ../src/html/helpwnd.cpp:1065 msgid "Search in all books" msgstr "Szukaj we wszystkich plikach pomocy" #: ../src/html/helpwnd.cpp:870 msgid "Searching..." msgstr "Wyszukiwanie..." #: ../src/generic/dirctrlg.cpp:546 msgid "Sections" msgstr "Sekcje" #: ../src/common/ffile.cpp:220 #, c-format msgid "Seek error on file '%s'" msgstr "Błąd pozycjonowania w pliku '%s'" #: ../src/common/ffile.cpp:210 #, c-format msgid "Seek error on file '%s' (large files not supported by stdio)" msgstr "Błąd wyszukiwania w pliku '%s' (stdio nie wspiera olbrzymich plików)" #: ../src/richtext/richtextctrl.cpp:330 ../src/osx/textctrl_osx.cpp:587 #: ../src/common/stockitem.cpp:192 ../src/msw/textctrl.cpp:2288 msgid "Select &All" msgstr "&Zaznacz wszystko" #: ../src/common/stockitem.cpp:192 ../src/stc/stc_i18n.cpp:21 msgid "Select All" msgstr "Zaznacz wszystko" #: ../src/common/docview.cpp:1878 msgid "Select a document template" msgstr "Wybierz szablon dokumentu" # perspektywę? #: ../src/common/docview.cpp:1952 msgid "Select a document view" msgstr "Wybierz widok dokumentu" #: ../src/richtext/richtextfontpage.cpp:235 #: ../src/richtext/richtextfontpage.cpp:237 msgid "Select regular or bold." msgstr "Wybierz regularną lub pogrubioną czcionkę." #: ../src/richtext/richtextfontpage.cpp:222 #: ../src/richtext/richtextfontpage.cpp:224 msgid "Select regular or italic style." msgstr "Wybierz regularny lub kursywny styl." #: ../src/richtext/richtextfontpage.cpp:248 #: ../src/richtext/richtextfontpage.cpp:250 msgid "Select underlining or no underlining." msgstr "Wybierz podkreślanie lub bez podkreślania." #: ../src/motif/filedlg.cpp:220 msgid "Selection" msgstr "Wybór" #: ../src/richtext/richtextliststylepage.cpp:187 #: ../src/richtext/richtextliststylepage.cpp:189 msgid "Selects the list level to edit." msgstr "Wybiera poziom listy do edycji." #: ../src/common/cmdline.cpp:918 #, c-format msgid "Separator expected after the option '%s'." msgstr "Oczekiwano separatora po opcji '%s'." #: ../src/richtext/richtextbuffer.cpp:10397 msgid "Set Cell Style" msgstr "Usuń styl komórki" #: ../include/wx/xtiprop.h:179 msgid "SetProperty called w/o valid setter" msgstr "" "Funkcja SetProperty wywołana bez poprawnej moduły ustawiającego właściwość" #: ../src/common/filename.cpp:2632 msgid "Setting directory access times is not supported under this OS version" msgstr "" "Ustawienie czasu dostępu do katalogów nie jest obsługiwane w tej wersji " "systemu operacyjnego." #: ../src/generic/prntdlgg.cpp:193 msgid "Setup..." msgstr "Ustawienia..." #: ../src/msw/dialup.cpp:563 msgid "Several active dialup connections found, choosing one randomly." msgstr "Znalezione kilka dostępnych połączeń dialup, zostanie użyte pierwsze." #: ../src/common/accelcmn.cpp:324 #, fuzzy msgid "Shift+" msgstr "Shift-" #: ../src/generic/dirdlgg.cpp:170 msgid "Show &hidden directories" msgstr "Pokaż &ukryte katalogi" #: ../src/generic/filectrlg.cpp:1003 msgid "Show &hidden files" msgstr "Pokazuj &ukryte pliki" #: ../src/osx/menu_osx.cpp:605 ../src/osx/menu_osx.cpp:652 #, fuzzy msgid "Show All" msgstr "Pokaż wszystko" #: ../src/common/stockitem.cpp:257 msgid "Show about dialog" msgstr "Pokazuje okno O" #: ../src/html/helpwnd.cpp:502 msgid "Show all" msgstr "Pokaż wszystko" #: ../src/html/helpwnd.cpp:513 msgid "Show all items in index" msgstr "Pokaż wszystkie elementy indeksu" #: ../src/generic/dirdlgg.cpp:105 msgid "Show hidden directories" msgstr "Pokaż ukryte katalogi" #: ../src/html/helpwnd.cpp:671 msgid "Show/hide navigation panel" msgstr "Pokaż/ukryj panel sterowania" #: ../src/richtext/richtextsymboldlg.cpp:421 #: ../src/richtext/richtextsymboldlg.cpp:423 msgid "Shows a Unicode subset." msgstr "Pokazuje podzbiór Unicode." #: ../src/richtext/richtextliststylepage.cpp:472 #: ../src/richtext/richtextliststylepage.cpp:474 #: ../src/richtext/richtextbulletspage.cpp:276 #: ../src/richtext/richtextbulletspage.cpp:278 msgid "Shows a preview of the bullet settings." msgstr "Pokazuje podgląd ustawień wypunktowania." #: ../src/richtext/richtextfontpage.cpp:322 #: ../src/richtext/richtextfontpage.cpp:324 msgid "Shows a preview of the font settings." msgstr "Pokazuje podgląd ustawień czcionki." #: ../src/osx/carbon/fontdlg.cpp:580 ../src/osx/carbon/fontdlg.cpp:582 msgid "Shows a preview of the font." msgstr "Pokazuje podgląd czcionki." #: ../src/richtext/richtextindentspage.cpp:303 #: ../src/richtext/richtextindentspage.cpp:305 msgid "Shows a preview of the paragraph settings." msgstr "Pokazuje podgląd ustawień paragrafu." #: ../src/generic/fontdlgg.cpp:460 ../src/generic/fontdlgg.cpp:462 msgid "Shows the font preview." msgstr "Podgląd czcionki." #: ../src/univ/themes/mono.cpp:516 msgid "Simple monochrome theme" msgstr "Prosty czarno-biały motyw" #: ../src/richtext/richtextindentspage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:449 msgid "Single" msgstr "Pojedynczy" #: ../src/generic/filectrlg.cpp:460 ../src/richtext/richtextformatdlg.cpp:356 #: ../src/richtext/richtextsizepage.cpp:296 msgid "Size" msgstr "Rozmiar" #: ../src/osx/carbon/fontdlg.cpp:525 msgid "Size:" msgstr "Rozmiar:" #: ../src/generic/progdlgg.cpp:262 ../src/generic/progdlgg.cpp:773 #: ../src/msw/progdlg.cpp:801 msgid "Skip" msgstr "Pomiń" #: ../src/generic/fontdlgg.cpp:330 msgid "Slant" msgstr "Pochylony" #: ../src/richtext/richtextfontpage.cpp:298 msgid "Small C&apitals" msgstr "" #: ../src/richtext/richtextborderspage.cpp:543 msgid "Solid" msgstr "" #: ../src/common/docview.cpp:1774 msgid "Sorry, could not open this file." msgstr "Niestety nie można otworzyć tego pliku." #: ../src/common/prntbase.cpp:2027 ../src/common/prntbase.cpp:2035 msgid "Sorry, not enough memory to create a preview." msgstr "Niestety za mało pamięci aby przygotować podgląd." #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "Sorry, that name is taken. Please choose another." msgstr "Niestety, nazwa ta jest zajęta. Proszę wybrać inną." #: ../src/common/docview.cpp:1797 msgid "Sorry, the format for this file is unknown." msgstr "Niestety, nieznany format pliku." #: ../src/unix/sound.cpp:492 msgid "Sound data are in unsupported format." msgstr "Dane dźwiękowe są w formacie, który nie jest wspierany." #: ../src/unix/sound.cpp:477 #, c-format msgid "Sound file '%s' is in unsupported format." msgstr "Plik z dźwiękiem '%s' jest w formacie, który nie jest wspierany." #: ../src/richtext/richtextliststylepage.cpp:467 msgid "Spacing" msgstr "Odstępy" #: ../src/common/stockitem.cpp:197 msgid "Spell Check" msgstr "Sprawdzanie pisowni" #: ../src/richtext/richtextliststylepage.cpp:490 #: ../src/richtext/richtextbulletspage.cpp:295 msgid "Standard" msgstr "Standard" #: ../src/common/paper.cpp:105 msgid "Statement, 5 1/2 x 8 1/2 in" msgstr "Statement, 5 1/2 x 8 1/2 cala" #: ../src/richtext/richtextsizepage.cpp:515 #: ../src/richtext/richtextsizepage.cpp:520 msgid "Static" msgstr "Statyczny" #: ../src/generic/prntdlgg.cpp:209 msgid "Status:" msgstr "Status:" #: ../src/common/stockitem.cpp:198 msgid "Stop" msgstr "Stop" #: ../src/common/stockitem.cpp:199 #, fuzzy msgid "Strikethrough" msgstr "&Przekreślenie" #: ../src/common/colourcmn.cpp:45 #, c-format msgid "String To Colour : Incorrect colour specification : %s" msgstr "Nieprawidłowa specyfikacja koloru : %s" #: ../src/richtext/richtextformatdlg.cpp:318 ../src/propgrid/advprops.cpp:647 msgid "Style" msgstr "Styl" #: ../include/wx/richtext/richtextstyledlg.h:47 msgid "Style Organiser" msgstr "Organizator stylu" #: ../src/osx/carbon/fontdlg.cpp:534 msgid "Style:" msgstr "Styl:" #: ../src/richtext/richtextfontpage.cpp:312 msgid "Subscrip&t" msgstr "Indeks &dolny" #: ../src/richtext/richtextfontpage.cpp:305 msgid "Supe&rscript" msgstr "Indeks &górny" #: ../src/common/paper.cpp:151 msgid "SuperA/SuperA/A4 227 x 356 mm" msgstr "SuperA/SuperA/A4 227 x 356 mm" #: ../src/common/paper.cpp:152 msgid "SuperB/SuperB/A3 305 x 487 mm" msgstr "SuperB/SuperB/A3 305 x 487 mm" #: ../src/generic/fontdlgg.cpp:326 msgid "Swiss" msgstr "Swiss" #: ../src/richtext/richtextliststylepage.cpp:488 #: ../src/richtext/richtextbulletspage.cpp:293 msgid "Symbol" msgstr "Symbol" #: ../src/richtext/richtextliststylepage.cpp:288 #: ../src/richtext/richtextbulletspage.cpp:240 msgid "Symbol &font:" msgstr "&Czcionka symbolu:" #: ../include/wx/richtext/richtextsymboldlg.h:47 msgid "Symbols" msgstr "Symbole" #: ../src/common/accelcmn.cpp:63 msgid "TAB" msgstr "TAB" #: ../src/common/imagtiff.cpp:372 ../src/common/imagtiff.cpp:385 #: ../src/common/imagtiff.cpp:744 msgid "TIFF: Couldn't allocate memory." msgstr "TIFF: Nie można przydzielić pamięci." #: ../src/common/imagtiff.cpp:304 msgid "TIFF: Error loading image." msgstr "TIFF: Błąd przy wczytywaniu obrazu." #: ../src/common/imagtiff.cpp:471 msgid "TIFF: Error reading image." msgstr "TIFF: Błąd odczytu." #: ../src/common/imagtiff.cpp:611 msgid "TIFF: Error saving image." msgstr "TIFF: Wystąpił błąd przy zapisie." #: ../src/common/imagtiff.cpp:849 msgid "TIFF: Error writing image." msgstr "TIFF: Błąd zapisu." #: ../src/common/imagtiff.cpp:358 msgid "TIFF: Image size is abnormally big." msgstr "TIFF: Rozmiar obrazu jest wyjątkowo duży." #: ../src/richtext/richtextbuffer.cpp:10687 msgid "Table Properties" msgstr "&Właściwości tabeli" #: ../src/common/paper.cpp:146 msgid "Tabloid Extra 11.69 x 18 in" msgstr "Tabloid Extra 11.69 x 18 cali" #: ../src/common/paper.cpp:103 msgid "Tabloid, 11 x 17 in" msgstr "Tabloid, 11 x 17 cali" #: ../src/richtext/richtextformatdlg.cpp:336 msgid "Tabs" msgstr "Karty" #: ../src/generic/fontdlgg.cpp:327 msgid "Teletype" msgstr "Teletype" #: ../src/common/docview.cpp:1879 msgid "Templates" msgstr "Szablony" #: ../src/osx/carbon/dataview.cpp:2373 msgid "Text renderer cannot render value; value type: " msgstr "Render tekstu nie może renderować wartości; typ wartości:" #: ../src/common/fmapbase.cpp:158 msgid "Thai (ISO-8859-11)" msgstr "Tajski (ISO-8859-11)" #: ../src/common/ftp.cpp:620 msgid "The FTP server doesn't support passive mode." msgstr "Serwer FTP nie obsługuje trybu pasywnego." #: ../src/common/ftp.cpp:606 msgid "The FTP server doesn't support the PORT command." msgstr "Serwer FTP nie obsługuje komendy PORT." #: ../src/richtext/richtextliststylepage.cpp:215 #: ../src/richtext/richtextliststylepage.cpp:217 #: ../src/richtext/richtextbulletspage.cpp:164 #: ../src/richtext/richtextbulletspage.cpp:166 msgid "The available bullet styles." msgstr "Dostępne style wypunktowania." #: ../src/richtext/richtextstyledlg.cpp:202 #: ../src/richtext/richtextstyledlg.cpp:204 msgid "The available styles." msgstr "Dostępne style." #: ../src/richtext/richtextbackgroundpage.cpp:139 #: ../src/richtext/richtextbackgroundpage.cpp:141 #, fuzzy msgid "The background colour." msgstr "Kolor tła" #: ../src/richtext/richtextmarginspage.cpp:268 #: ../src/richtext/richtextmarginspage.cpp:270 msgid "The bottom margin size." msgstr "Rozmiar dolnego marginesu." #: ../src/richtext/richtextmarginspage.cpp:382 #: ../src/richtext/richtextmarginspage.cpp:384 msgid "The bottom padding size." msgstr "" #: ../src/richtext/richtextsizepage.cpp:636 #: ../src/richtext/richtextsizepage.cpp:638 #: ../src/richtext/richtextsizepage.cpp:650 #: ../src/richtext/richtextsizepage.cpp:652 msgid "The bottom position." msgstr "" #: ../src/richtext/richtextliststylepage.cpp:254 #: ../src/richtext/richtextliststylepage.cpp:256 #: ../src/richtext/richtextliststylepage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:277 #: ../src/richtext/richtextbulletspage.cpp:204 #: ../src/richtext/richtextbulletspage.cpp:206 #: ../src/richtext/richtextbulletspage.cpp:227 #: ../src/richtext/richtextbulletspage.cpp:229 msgid "The bullet character." msgstr "Znak wypunktowania." #: ../src/richtext/richtextsymboldlg.cpp:443 #: ../src/richtext/richtextsymboldlg.cpp:445 msgid "The character code." msgstr "Kod znaku." #: ../src/common/fontmap.cpp:203 #, c-format msgid "" "The charset '%s' is unknown. You may select\n" "another charset to replace it with or choose\n" "[Cancel] if it cannot be replaced" msgstr "" "Nieznany zestaw znaków '%s'. Możesz wybrać\n" "inny zestaw aby go zastąpić lub wybierz\n" "[Anuluj] jeśli nie można go zastąpić." #: ../src/msw/ole/dataobj.cpp:367 #, c-format msgid "The clipboard format '%d' doesn't exist." msgstr "Format schowka '%d' nie istnieje." #: ../src/richtext/richtextstylepage.cpp:128 #: ../src/richtext/richtextstylepage.cpp:130 msgid "The default style for the next paragraph." msgstr "Domyślny styl dla następnego paragrafu." #: ../src/generic/dirdlgg.cpp:231 #, c-format msgid "" "The directory '%s' does not exist\n" "Create it now?" msgstr "" "Katalog '%s' nie istnieje\n" "Utworzyć go teraz?" #: ../src/html/htmprint.cpp:271 #, c-format msgid "" "The document \"%s\" doesn't fit on the page horizontally and will be " "truncated if printed.\n" "\n" "Would you like to proceed with printing it nevertheless?" msgstr "" "Dokument \"%s\" nie mieści się na stronie poziomo i będzie ucięty na " "wydruku.\n" "\n" "Chcesz kontynuować drukowanie mimo to?" #: ../src/common/docview.cpp:1184 #, c-format msgid "" "The file '%s' doesn't exist and couldn't be opened.\n" "It has been removed from the most recently used files list." msgstr "" "Plik '%s' nie istnieje i nie można go otworzyć.\n" "Informacja o nim została usunięta z listy ostatnio używanych plików." #: ../src/richtext/richtextindentspage.cpp:208 #: ../src/richtext/richtextindentspage.cpp:210 #: ../src/richtext/richtextliststylepage.cpp:394 #: ../src/richtext/richtextliststylepage.cpp:396 msgid "The first line indent." msgstr "Wcięcie pierwszego wierszu." #: ../src/gtk/utilsgtk.cpp:427 msgid "The following standard GTK+ options are also supported:\n" msgstr "Następujące opcje standardowe GTK+ także są obsługiwane:\n" #: ../src/generic/fontdlgg.cpp:414 ../src/generic/fontdlgg.cpp:416 msgid "The font colour." msgstr "Kolor czcionki." #: ../src/generic/fontdlgg.cpp:375 ../src/generic/fontdlgg.cpp:377 msgid "The font family." msgstr "Rodzina czcionki." #: ../src/richtext/richtextsymboldlg.cpp:405 #: ../src/richtext/richtextsymboldlg.cpp:407 msgid "The font from which to take the symbol." msgstr "Czcionka z której pobrać symbol." #: ../src/generic/fontdlgg.cpp:427 ../src/generic/fontdlgg.cpp:429 #: ../src/generic/fontdlgg.cpp:434 ../src/generic/fontdlgg.cpp:436 msgid "The font point size." msgstr "Rozmiar czcionki." #: ../src/osx/carbon/fontdlg.cpp:529 ../src/osx/carbon/fontdlg.cpp:531 msgid "The font size in points." msgstr "Rozmiar czcionki w punktach." #: ../src/richtext/richtextfontpage.cpp:190 #: ../src/richtext/richtextfontpage.cpp:192 msgid "The font size units, points or pixels." msgstr "Rozmiar czcionki w punktach lub pikselach ." #: ../src/generic/fontdlgg.cpp:386 ../src/generic/fontdlgg.cpp:388 msgid "The font style." msgstr "Styl czcionki." #: ../src/generic/fontdlgg.cpp:397 ../src/generic/fontdlgg.cpp:399 msgid "The font weight." msgstr "Waga czcionki." #: ../src/common/docview.cpp:1465 #, c-format msgid "The format of file '%s' couldn't be determined." msgstr "" #: ../src/richtext/richtextindentspage.cpp:199 #: ../src/richtext/richtextindentspage.cpp:201 #: ../src/richtext/richtextliststylepage.cpp:385 #: ../src/richtext/richtextliststylepage.cpp:387 msgid "The left indent." msgstr "Lewe wcięcie." #: ../src/richtext/richtextmarginspage.cpp:195 #: ../src/richtext/richtextmarginspage.cpp:197 msgid "The left margin size." msgstr "Rozmiar lewego marginesu." #: ../src/richtext/richtextmarginspage.cpp:309 #: ../src/richtext/richtextmarginspage.cpp:311 msgid "The left padding size." msgstr "" #: ../src/richtext/richtextsizepage.cpp:531 #: ../src/richtext/richtextsizepage.cpp:533 #: ../src/richtext/richtextsizepage.cpp:545 #: ../src/richtext/richtextsizepage.cpp:547 msgid "The left position." msgstr "" #: ../src/richtext/richtextindentspage.cpp:288 #: ../src/richtext/richtextindentspage.cpp:290 #: ../src/richtext/richtextliststylepage.cpp:462 #: ../src/richtext/richtextliststylepage.cpp:464 msgid "The line spacing." msgstr "Odstęp między wierszami." #: ../src/richtext/richtextbulletspage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:270 msgid "The list item number." msgstr "Numer pozycji listy." #: ../src/msw/ole/automtn.cpp:653 msgid "The locale ID is unknown." msgstr "" #: ../src/richtext/richtextsizepage.cpp:363 #: ../src/richtext/richtextsizepage.cpp:365 msgid "The object height." msgstr "Wysokość obiektu" #: ../src/richtext/richtextsizepage.cpp:471 #: ../src/richtext/richtextsizepage.cpp:473 msgid "The object maximum height." msgstr "Maksymalna wysokość obiektu" #: ../src/richtext/richtextsizepage.cpp:444 #: ../src/richtext/richtextsizepage.cpp:446 msgid "The object maximum width." msgstr "Maksymalna szerokość obiektu" #: ../src/richtext/richtextsizepage.cpp:417 #: ../src/richtext/richtextsizepage.cpp:419 msgid "The object minimum height." msgstr "Minimalna wysokość obiektu" #: ../src/richtext/richtextsizepage.cpp:390 #: ../src/richtext/richtextsizepage.cpp:392 msgid "The object minimum width." msgstr "Minimalna szerokość obiektu." #: ../src/richtext/richtextsizepage.cpp:329 #: ../src/richtext/richtextsizepage.cpp:331 msgid "The object width." msgstr "Szerokość obiektu." #: ../src/richtext/richtextindentspage.cpp:227 #: ../src/richtext/richtextindentspage.cpp:229 msgid "The outline level." msgstr "Poziom kontur." #: ../src/common/log.cpp:283 #, c-format msgid "The previous message repeated %lu time." msgid_plural "The previous message repeated %lu times." msgstr[0] "" msgstr[1] "" msgstr[2] "" #: ../src/common/log.cpp:276 #, fuzzy msgid "The previous message repeated once." msgstr "Poprzednia wiadomość była raz powtórzona." #: ../src/gtk/print.cpp:940 ../src/gtk/print.cpp:1123 msgid "The print dialog returned an error." msgstr "Okno dialogowe drukowania zwróciło błąd." #: ../src/richtext/richtextsymboldlg.cpp:462 #: ../src/richtext/richtextsymboldlg.cpp:464 msgid "The range to show." msgstr "Zakres do pokazania." #: ../src/generic/dbgrptg.cpp:322 msgid "" "The report contains the files listed below. If any of these files contain " "private information,\n" "please uncheck them and they will be removed from the report.\n" msgstr "" "Raport zawiera pliki wymienione niżej. Jeśli którykolwiek z tych plików " "zawiera prywatne informacje,\n" "proszę odznacz go w celu usunięcia go z raportu.\n" #: ../src/common/cmdline.cpp:1083 #, c-format msgid "The required parameter '%s' was not specified." msgstr "Wymagany parametr '%s' nie został podany." #: ../src/richtext/richtextindentspage.cpp:217 #: ../src/richtext/richtextindentspage.cpp:219 #: ../src/richtext/richtextliststylepage.cpp:403 #: ../src/richtext/richtextliststylepage.cpp:405 msgid "The right indent." msgstr "Prawidłowe wcięcie." #: ../src/richtext/richtextmarginspage.cpp:220 #: ../src/richtext/richtextmarginspage.cpp:222 msgid "The right margin size." msgstr "Rozmiar prawego marginesu." #: ../src/richtext/richtextmarginspage.cpp:334 #: ../src/richtext/richtextmarginspage.cpp:336 msgid "The right padding size." msgstr "" #: ../src/richtext/richtextsizepage.cpp:601 #: ../src/richtext/richtextsizepage.cpp:603 #: ../src/richtext/richtextsizepage.cpp:615 #: ../src/richtext/richtextsizepage.cpp:617 msgid "The right position." msgstr "" #: ../src/richtext/richtextindentspage.cpp:267 #: ../src/richtext/richtextliststylepage.cpp:439 #: ../src/richtext/richtextliststylepage.cpp:441 msgid "The spacing after the paragraph." msgstr "Odstępy po paragrafie." #: ../src/richtext/richtextindentspage.cpp:257 #: ../src/richtext/richtextindentspage.cpp:259 #: ../src/richtext/richtextliststylepage.cpp:430 #: ../src/richtext/richtextliststylepage.cpp:432 msgid "The spacing before the paragraph." msgstr "Odstępy przed paragrafem." #: ../src/richtext/richtextstylepage.cpp:108 #: ../src/richtext/richtextstylepage.cpp:110 msgid "The style name." msgstr "Nazwa stylu." #: ../src/richtext/richtextstylepage.cpp:118 #: ../src/richtext/richtextstylepage.cpp:120 msgid "The style on which this style is based." msgstr "Styl, na którym ten styl jest oparty." #: ../src/richtext/richtextstyledlg.cpp:214 #: ../src/richtext/richtextstyledlg.cpp:216 msgid "The style preview." msgstr "Podgląd stylu." #: ../src/msw/ole/automtn.cpp:669 msgid "The system cannot find the file specified." msgstr "System nie może odnaleźć określonego pliku." #: ../src/richtext/richtexttabspage.cpp:118 #: ../src/richtext/richtexttabspage.cpp:120 msgid "The tab position." msgstr "Pozycja karty." #: ../src/richtext/richtexttabspage.cpp:124 msgid "The tab positions." msgstr "Pozycje karty." #: ../src/richtext/richtextctrl.cpp:2705 msgid "The text couldn't be saved." msgstr "Tekst nie może być zapisany.." #: ../src/richtext/richtextmarginspage.cpp:243 #: ../src/richtext/richtextmarginspage.cpp:245 msgid "The top margin size." msgstr "Rozmiar górnego marginesu." #: ../src/richtext/richtextmarginspage.cpp:357 #: ../src/richtext/richtextmarginspage.cpp:359 msgid "The top padding size." msgstr "" #: ../src/richtext/richtextsizepage.cpp:566 #: ../src/richtext/richtextsizepage.cpp:568 #: ../src/richtext/richtextsizepage.cpp:580 #: ../src/richtext/richtextsizepage.cpp:582 msgid "The top position." msgstr "" #: ../src/common/cmdline.cpp:1061 #, c-format msgid "The value for the option '%s' must be specified." msgstr "Wartość opcji '%s' musi zostać podana." #: ../src/msw/dialup.cpp:452 #, c-format msgid "" "The version of remote access service (RAS) installed on this machine is too " "old, please upgrade (the following required function is missing: %s)." msgstr "" "Zainstalowana wersja serwisu zdalnego dostępu (RAS) jest zbyt stara, " "zainstaluj nowszą (brakująca funkcja to: %s)." #: ../src/gtk/print.cpp:968 msgid "The wxGtkPrinterDC cannot be used." msgstr "wxGtkPrinterDC nie może być używany." #: ../src/osx/carbon/dataview.cpp:1340 msgid "There is no column or renderer for the specified column index." msgstr "Nie ma kolumny lub rendera dla określonej kolumny indeksu." #: ../src/richtext/richtextprint.cpp:614 ../src/html/htmprint.cpp:735 msgid "" "There was a problem during page setup: you may need to set a default printer." msgstr "" "Wystąpił błąd podczas konfigurowania strony: powinieneś określić domyślną " "drukarkę." #: ../src/html/htmprint.cpp:255 msgid "" "This document doesn't fit on the page horizontally and will be truncated " "when it is printed." msgstr "" "Ten dokument nie mieści się poziomo na stronie i będzie ucięty na wydruku." #: ../src/common/image.cpp:2716 #, c-format msgid "This is not a %s." msgstr "" #: ../src/common/wincmn.cpp:1647 msgid "This platform does not support background transparency." msgstr "Ta platforma nie obsługuje przezroczystości tła." #: ../src/gtk/window.cpp:4295 msgid "" "This program was compiled with a too old version of GTK+, please rebuild " "with GTK+ 2.12 or newer." msgstr "" "Ten program został skompilowany przy użyciu zbyt starej wersji GTK+, proszę " "skompilować ponownie z użyciem GTK+ 2.12 or nowszej." #: ../src/msw/datecontrols.cpp:59 msgid "" "This system doesn't support date controls, please upgrade your version of " "comctl32.dll" msgstr "" "Ten system nie wspiera wyboru daty, należy zaktualizować bibliotekę comctl32." "dll" #: ../src/msw/thread.cpp:1300 msgid "" "Thread module initialization failed: cannot store value in thread local " "storage" msgstr "" "Zainicjowanie modułu wątków nie powiodło się: nie można odłożyć wartości do " "lokalnej pamięci wątków" #: ../src/unix/threadpsx.cpp:1758 msgid "Thread module initialization failed: failed to create thread key" msgstr "" "Zainicjowanie modułu wątków nie powiodło się: nie udało się utworzyć klucza " "wątków" #: ../src/msw/thread.cpp:1288 msgid "" "Thread module initialization failed: impossible to allocate index in thread " "local storage" msgstr "" "Zainicjowanie modułu wątków nie powiodło się: nie jest możliwe przydzielenie " "indeksu w lokalnej pamięci wątków." #: ../src/unix/threadpsx.cpp:1038 msgid "Thread priority setting is ignored." msgstr "Ustawienie priorytetu wątku jest ignorowane." #: ../src/msw/mdi.cpp:172 msgid "Tile &Horizontally" msgstr "&Sąsiadująco w poziomie" #: ../src/msw/mdi.cpp:173 msgid "Tile &Vertically" msgstr "Sąsi&adująco w pionie" #: ../src/common/ftp.cpp:202 msgid "Timeout while waiting for FTP server to connect, try passive mode." msgstr "" "Przekroczono czas oczekiwania dla serwera FTP, spróbuj trybu pasywnego." #: ../src/os2/timer.cpp:99 msgid "Timer creation failed." msgstr "Nie powiodło się utworzenie stopera." #: ../src/generic/tipdlg.cpp:220 msgid "Tip of the Day" msgstr "Porada dnia" #: ../src/generic/tipdlg.cpp:154 msgid "Tips not available, sorry!" msgstr "Niestety, porady nie są dostępne!" #: ../src/generic/prntdlgg.cpp:247 msgid "To:" msgstr "Do:" #: ../src/osx/carbon/dataview.cpp:2451 msgid "Toggle renderer cannot render value; value type: " msgstr "Aktywny render nie może renderować wartości; typ wartości:" #: ../src/richtext/richtextbuffer.cpp:7925 msgid "Too many EndStyle calls!" msgstr "Zbyt wiele wezwań EndStyle!" #: ../src/common/imagpng.cpp:286 msgid "Too many colours in PNG, the image may be slightly blurred." msgstr "Zbyt wiele kolorów w formacie PNG, obraz może być zamazany." #: ../src/richtext/richtextsizepage.cpp:283 #: ../src/richtext/richtextsizepage.cpp:287 ../src/common/stockitem.cpp:200 msgid "Top" msgstr "Góra" #: ../src/generic/prntdlgg.cpp:886 msgid "Top margin (mm):" msgstr "Górny margines (mm):" #: ../src/generic/aboutdlgg.cpp:79 msgid "Translations by " msgstr "Tłumaczenia autorstwa" #: ../src/generic/aboutdlgg.cpp:188 msgid "Translators" msgstr "Tłumacze" #: ../src/propgrid/propgrid.cpp:173 msgid "True" msgstr "" #: ../src/common/fs_mem.cpp:227 #, c-format msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!" msgstr "Próbą usunięcia pliku '%s' z pamięci VFS, który nie został wczytany!" #: ../src/common/fmapbase.cpp:156 msgid "Turkish (ISO-8859-9)" msgstr "Turecki (ISO-8859-9)" #: ../src/generic/filectrlg.cpp:461 msgid "Type" msgstr "Typ" #: ../src/richtext/richtextfontpage.cpp:160 #: ../src/richtext/richtextfontpage.cpp:162 msgid "Type a font name." msgstr "Wpisz nazwę czcionki." #: ../src/richtext/richtextfontpage.cpp:175 #: ../src/richtext/richtextfontpage.cpp:177 msgid "Type a size in points." msgstr "Wpisz rozmiar w punktach." #: ../src/msw/ole/automtn.cpp:665 #, c-format msgid "Type mismatch in argument %u." msgstr "Niezgodność typów argumentu %u." #: ../src/common/xtixml.cpp:356 ../src/common/xtixml.cpp:509 #: ../src/common/xtistrm.cpp:322 msgid "Type must have enum - long conversion" msgstr "Typ musi umożliwiać konswersję enum - long" #: ../src/propgrid/propgridiface.cpp:382 #, c-format msgid "" "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", NOT " "\"%s\"." msgstr "" "Niepowodzenie operacji typu \"%s\": właściwość nazwana \"%s\" jest typu \"%s" "\", nie \"%s\"." #: ../src/common/accelcmn.cpp:58 msgid "UP" msgstr "GÓRA" #: ../src/common/paper.cpp:134 msgid "US Std Fanfold, 14 7/8 x 11 in" msgstr "Składanka US Std, 14 7/8 x 11 cali" #: ../src/common/fmapbase.cpp:196 msgid "US-ASCII" msgstr "US-ASCII" #: ../src/unix/fswatcher_inotify.cpp:109 msgid "Unable to add inotify watch" msgstr "Nie można dodać czujki inotify" #: ../src/unix/fswatcher_kqueue.cpp:136 msgid "Unable to add kqueue watch" msgstr "Nie można dodać czujki kolejki" #: ../include/wx/msw/private/fswatcher.h:142 msgid "Unable to associate handle with I/O completion port" msgstr "Nie można skojarzyć uchwytu z portem kompletności We/Wy" # uchwyt chyba zbędny #: ../include/wx/msw/private/fswatcher.h:125 msgid "Unable to close I/O completion port handle" msgstr "" # uchwyt chyba zbędny #: ../src/unix/fswatcher_inotify.cpp:97 msgid "Unable to close inotify instance" msgstr "" #: ../include/wx/unix/private/fswatcher_kqueue.h:74 #, c-format msgid "Unable to close path '%s'" msgstr "" # uchwyt chyba zbędny #: ../include/wx/msw/private/fswatcher.h:48 #, c-format msgid "Unable to close the handle for '%s'" msgstr "" #: ../include/wx/msw/private/fswatcher.h:240 msgid "Unable to create I/O completion port" msgstr "" #: ../src/msw/fswatcher.cpp:84 msgid "Unable to create IOCP worker thread" msgstr "" #: ../src/unix/fswatcher_inotify.cpp:74 msgid "Unable to create inotify instance" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:97 msgid "Unable to create kqueue instance" msgstr "" #: ../include/wx/msw/private/fswatcher.h:229 #, fuzzy msgid "Unable to dequeue completion packet" msgstr "Nie można odkolejkować pakietu kompletności" #: ../src/unix/fswatcher_kqueue.cpp:185 msgid "Unable to get events from kqueue" msgstr "Nie można pobrać zdarzeń z kolejki" #: ../src/osx/carbon/dataview.cpp:1903 #, fuzzy msgid "Unable to handle native drag&drop data" msgstr "Nie można przetworzyć systemowych danych przeciągnij / upuść" #: ../src/gtk/app.cpp:439 msgid "Unable to initialize GTK+, is DISPLAY set properly?" msgstr "Nie można ustawić GTK+, czy jest prawidłowo ustawiony EKRAN?" #: ../src/gtk/app.cpp:276 msgid "Unable to initialize Hildon program" msgstr "Nie udało się zainicjować programu Hildon" #: ../include/wx/unix/private/fswatcher_kqueue.h:57 #, c-format msgid "Unable to open path '%s'" msgstr "" #: ../src/html/htmlwin.cpp:561 #, c-format msgid "Unable to open requested HTML document: %s" msgstr "Nie można otworzyć wskazanego dokumentu HTML: %s" #: ../src/unix/sound.cpp:368 msgid "Unable to play sound asynchronously." msgstr "Nie można odtowrzyć dźwięku asynchronicznie." #: ../include/wx/msw/private/fswatcher.h:207 msgid "Unable to post completion status" msgstr "" #: ../src/unix/fswatcher_inotify.cpp:530 msgid "Unable to read from inotify descriptor" msgstr "" #: ../src/unix/fswatcher_inotify.cpp:132 msgid "Unable to remove inotify watch" msgstr "Nie można usunąć czujki inotify" #: ../src/unix/fswatcher_kqueue.cpp:153 msgid "Unable to remove kqueue watch" msgstr "Nie można usunąć czujki kolejki" #: ../src/msw/fswatcher.cpp:168 #, c-format msgid "Unable to set up watch for '%s'" msgstr "" #: ../src/msw/fswatcher.cpp:91 msgid "Unable to start IOCP worker thread" msgstr "" #: ../src/common/stockitem.cpp:201 msgid "Undelete" msgstr "Odzyskaj" #: ../src/common/stockitem.cpp:202 msgid "Underline" msgstr "Podkreślenie" #: ../src/richtext/richtextfontpage.cpp:341 ../src/osx/carbon/fontdlg.cpp:556 #: ../src/propgrid/advprops.cpp:655 msgid "Underlined" msgstr "Podkreślony" #: ../src/common/stockitem.cpp:203 ../src/stc/stc_i18n.cpp:15 msgid "Undo" msgstr "Cofnij" #: ../src/common/stockitem.cpp:265 msgid "Undo last action" msgstr "Cofnij ostatnią czynność" #: ../src/common/cmdline.cpp:864 #, c-format msgid "Unexpected characters following option '%s'." msgstr "Nieoczekiwane znaki następujących opcji '%s'." #: ../src/unix/fswatcher_inotify.cpp:261 #, c-format msgid "Unexpected event for \"%s\": no matching watch descriptor." msgstr "" #: ../src/common/cmdline.cpp:1024 #, c-format msgid "Unexpected parameter '%s'" msgstr "Nieoczekiwany parametr '%s'" #: ../include/wx/msw/private/fswatcher.h:148 msgid "Unexpectedly new I/O completion port was created" msgstr "" #: ../src/msw/fswatcher.cpp:70 msgid "Ungraceful worker thread termination" msgstr "" #: ../src/richtext/richtextsymboldlg.cpp:459 #: ../src/richtext/richtextsymboldlg.cpp:460 #: ../src/richtext/richtextsymboldlg.cpp:461 msgid "Unicode" msgstr "Unicode" #: ../src/common/fmapbase.cpp:185 ../src/common/fmapbase.cpp:191 msgid "Unicode 16 bit (UTF-16)" msgstr "Unicode 16 bit (UTF-16)" #: ../src/common/fmapbase.cpp:190 msgid "Unicode 16 bit Big Endian (UTF-16BE)" msgstr "Unicode 16 bit Big Endian (UTF-16BE)" #: ../src/common/fmapbase.cpp:186 msgid "Unicode 16 bit Little Endian (UTF-16LE)" msgstr "Unicode 16 bit Little Endian (UTF-16LE)" #: ../src/common/fmapbase.cpp:187 ../src/common/fmapbase.cpp:193 msgid "Unicode 32 bit (UTF-32)" msgstr "Unicode 32 bit (UTF-32)" #: ../src/common/fmapbase.cpp:192 msgid "Unicode 32 bit Big Endian (UTF-32BE)" msgstr "Unicode 32 bit Big Endian (UTF-32BE)" #: ../src/common/fmapbase.cpp:188 msgid "Unicode 32 bit Little Endian (UTF-32LE)" msgstr "Unicode 32 bit Little Endian (UTF-32LE)" #: ../src/common/fmapbase.cpp:182 msgid "Unicode 7 bit (UTF-7)" msgstr "Unicode 7 bit (UTF-7)" #: ../src/common/fmapbase.cpp:183 msgid "Unicode 8 bit (UTF-8)" msgstr "Unicode 8 bit (UTF-8)" #: ../src/common/stockitem.cpp:204 #, fuzzy msgid "Unindent" msgstr "&Cofnij wcięcie" #: ../src/richtext/richtextborderspage.cpp:373 #: ../src/richtext/richtextborderspage.cpp:375 msgid "Units for the bottom border width." msgstr "jednostki szerokości dolnej ramki." #: ../src/richtext/richtextmarginspage.cpp:278 #: ../src/richtext/richtextmarginspage.cpp:280 msgid "Units for the bottom margin." msgstr "Jednostki dolnego marginesu." #: ../src/richtext/richtextborderspage.cpp:517 #: ../src/richtext/richtextborderspage.cpp:519 msgid "Units for the bottom outline width." msgstr "Jednostki szerokości dolnego konturu." #: ../src/richtext/richtextmarginspage.cpp:392 #: ../src/richtext/richtextmarginspage.cpp:394 msgid "Units for the bottom padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:661 #: ../src/richtext/richtextsizepage.cpp:663 msgid "Units for the bottom position." msgstr "" #: ../src/richtext/richtextborderspage.cpp:283 #: ../src/richtext/richtextborderspage.cpp:285 msgid "Units for the left border width." msgstr "Jednostki szerokości lewej ramki." #: ../src/richtext/richtextmarginspage.cpp:205 #: ../src/richtext/richtextmarginspage.cpp:207 msgid "Units for the left margin." msgstr "Jednostki lewego marginesu." #: ../src/richtext/richtextborderspage.cpp:427 #: ../src/richtext/richtextborderspage.cpp:429 msgid "Units for the left outline width." msgstr "Jednostki szerokości lewego konturu." #: ../src/richtext/richtextmarginspage.cpp:319 #: ../src/richtext/richtextmarginspage.cpp:321 msgid "Units for the left padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:556 #: ../src/richtext/richtextsizepage.cpp:558 msgid "Units for the left position." msgstr "" #: ../src/richtext/richtextsizepage.cpp:482 #: ../src/richtext/richtextsizepage.cpp:484 msgid "Units for the maximum object height." msgstr "" #: ../src/richtext/richtextsizepage.cpp:455 #: ../src/richtext/richtextsizepage.cpp:457 msgid "Units for the maximum object width." msgstr "" #: ../src/richtext/richtextsizepage.cpp:428 #: ../src/richtext/richtextsizepage.cpp:430 msgid "Units for the minimum object height." msgstr "" #: ../src/richtext/richtextsizepage.cpp:401 #: ../src/richtext/richtextsizepage.cpp:403 msgid "Units for the minimum object width." msgstr "" #: ../src/richtext/richtextsizepage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:376 msgid "Units for the object height." msgstr "Jednostki wysokości obiektu." #: ../src/richtext/richtextsizepage.cpp:340 #: ../src/richtext/richtextsizepage.cpp:342 msgid "Units for the object width." msgstr "Jednostki szerokości obiektu." #: ../src/richtext/richtextborderspage.cpp:313 #: ../src/richtext/richtextborderspage.cpp:315 msgid "Units for the right border width." msgstr "Jednostki szerokości prawej ramki." #: ../src/richtext/richtextmarginspage.cpp:230 #: ../src/richtext/richtextmarginspage.cpp:232 msgid "Units for the right margin." msgstr "Jednostki prawego marginesu." #: ../src/richtext/richtextborderspage.cpp:457 #: ../src/richtext/richtextborderspage.cpp:459 msgid "Units for the right outline width." msgstr "Jednostki szerokości prawego konturu." #: ../src/richtext/richtextmarginspage.cpp:344 #: ../src/richtext/richtextmarginspage.cpp:346 msgid "Units for the right padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:626 #: ../src/richtext/richtextsizepage.cpp:628 msgid "Units for the right position." msgstr "" #: ../src/richtext/richtextborderspage.cpp:343 #: ../src/richtext/richtextborderspage.cpp:345 msgid "Units for the top border width." msgstr "Jednostki szerokości górnej ramki." #: ../src/richtext/richtextmarginspage.cpp:253 #: ../src/richtext/richtextmarginspage.cpp:255 msgid "Units for the top margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:487 #: ../src/richtext/richtextborderspage.cpp:489 msgid "Units for the top outline width." msgstr "Jednostki szerokości prawego konturu." #: ../src/richtext/richtextmarginspage.cpp:367 #: ../src/richtext/richtextmarginspage.cpp:369 msgid "Units for the top padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:591 #: ../src/richtext/richtextsizepage.cpp:593 msgid "Units for the top position." msgstr "" #: ../src/generic/progdlgg.cpp:382 ../src/generic/progdlgg.cpp:655 msgid "Unknown" msgstr "Nieznany" #: ../src/msw/dde.cpp:1177 #, c-format msgid "Unknown DDE error %08x" msgstr "Nieznany błąd DDE %08x" #: ../src/common/xtistrm.cpp:414 msgid "Unknown Object passed to GetObjectClassInfo" msgstr "Nieznany obiekt przekazany do funkcji GetObjectClassInfo" #: ../src/common/imagpng.cpp:614 #, c-format msgid "Unknown PNG resolution unit %d" msgstr "" #: ../src/common/xtixml.cpp:327 #, c-format msgid "Unknown Property %s" msgstr "Nieznana właściwość %s" #: ../src/common/imagtiff.cpp:532 #, c-format msgid "Unknown TIFF resolution unit %d ignored" msgstr "Zignorowana nieznana jednostka %d rozdzielczości TIFF" #: ../src/osx/carbon/dataview.cpp:1978 #, fuzzy msgid "Unknown data format" msgstr "błąd w formacie" #: ../src/unix/dlunix.cpp:325 msgid "Unknown dynamic library error" msgstr "Nieznany błąd biblioteki dynamicznej" #: ../src/common/fmapbase.cpp:810 #, c-format msgid "Unknown encoding (%d)" msgstr "Nieznane kodowanie (%d)" #: ../src/msw/ole/automtn.cpp:677 #, c-format msgid "Unknown error %08x" msgstr "" #: ../src/msw/ole/automtn.cpp:636 msgid "Unknown exception" msgstr "" #: ../src/common/image.cpp:2701 msgid "Unknown image data format." msgstr "" #: ../src/common/cmdline.cpp:749 #, c-format msgid "Unknown long option '%s'" msgstr "Nieznana długa opcja '%s'" #: ../src/msw/ole/automtn.cpp:620 msgid "Unknown name or named argument." msgstr "Nieprawidłowa nazwa lub nazwany argument." #: ../src/common/cmdline.cpp:764 ../src/common/cmdline.cpp:786 #, c-format msgid "Unknown option '%s'" msgstr "Nieznana opcja '%s'" # inaczej #: ../src/common/mimecmn.cpp:230 #, c-format msgid "Unmatched '{' in an entry for mime type %s." msgstr "Nieodpowiedni '{' w pozycji dla typu mime %s." #: ../src/common/cmdproc.cpp:262 ../src/common/cmdproc.cpp:288 #: ../src/common/cmdproc.cpp:308 msgid "Unnamed command" msgstr "Polecenie bez nazwy" #: ../src/propgrid/propgrid.cpp:398 msgid "Unspecified" msgstr "" #: ../src/msw/clipbrd.cpp:271 ../src/msw/clipbrd.cpp:439 msgid "Unsupported clipboard format." msgstr "Nieobsługiwany format schowka." #: ../src/common/appcmn.cpp:228 #, c-format msgid "Unsupported theme '%s'." msgstr "Nieobsługiwana kompozycja '%s'." #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:205 msgid "Up" msgstr "W górę" #: ../src/richtext/richtextliststylepage.cpp:483 #: ../src/richtext/richtextbulletspage.cpp:288 msgid "Upper case letters" msgstr "Duże litery" #: ../src/richtext/richtextliststylepage.cpp:485 #: ../src/richtext/richtextbulletspage.cpp:290 msgid "Upper case roman numerals" msgstr "Duże litery cyframi rzymskimi" # hm #: ../src/common/cmdline.cpp:1155 #, c-format msgid "Usage: %s" msgstr "Użycie: %s" #: ../src/richtext/richtextindentspage.cpp:169 #: ../src/richtext/richtextindentspage.cpp:171 #: ../src/richtext/richtextliststylepage.cpp:358 #: ../src/richtext/richtextliststylepage.cpp:360 msgid "Use the current alignment setting." msgstr "Użyj bieżącego dostosowywania ustawień." #: ../src/osx/carbon/dataview.cpp:2658 ../src/osx/carbon/dataview.cpp:2723 msgid "Valid pointer to native data view control does not exist" msgstr "Aktualny wskaźnik do rodzimego widoku danych kontroli nie istnieje" #: ../src/common/valtext.cpp:174 msgid "Validation conflict" msgstr "Konflikt kontroli poprawności" #: ../src/propgrid/manager.cpp:238 msgid "Value" msgstr "Wartość" #: ../src/propgrid/props.cpp:384 #, c-format msgid "Value must be %s or higher." msgstr "Wartość musi wynosić %s lub więcej." #: ../src/propgrid/props.cpp:411 #, c-format msgid "Value must be %s or less." msgstr "Wartość musi wynosić %s lub mniej." #: ../src/propgrid/props.cpp:388 ../src/propgrid/props.cpp:415 #, c-format msgid "Value must be between %s and %s." msgstr "" # prawa? #: ../src/generic/aboutdlgg.cpp:128 #, fuzzy msgid "Version " msgstr "Wersja %s" #: ../src/richtext/richtextsizepage.cpp:288 #: ../src/richtext/richtextsizepage.cpp:290 msgid "Vertical alignment." msgstr "" #: ../src/generic/filedlgg.cpp:216 msgid "View files as a detailed view" msgstr "Przeglądaj pliki w formie szczegółowej listy" #: ../src/generic/filedlgg.cpp:214 msgid "View files as a list view" msgstr "Przeglądaj pliki w formie listy" #: ../src/common/docview.cpp:1953 msgid "Views" msgstr "Widoki" #: ../src/common/accelcmn.cpp:108 msgid "WINDOWS_LEFT" msgstr "WINDOWS_LEWO" #: ../src/common/accelcmn.cpp:110 msgid "WINDOWS_MENU" msgstr "WINDOWS_MENU" #: ../src/common/accelcmn.cpp:109 msgid "WINDOWS_RIGHT" msgstr "WINDOWS_PRAWO" #: ../src/unix/epolldispatcher.cpp:213 #, c-format msgid "Waiting for IO on epoll descriptor %d failed" msgstr "Oczekiwanie na IO w deskryptorze epoll %d nie powiodło się" #: ../src/common/log.cpp:229 msgid "Warning: " msgstr "Ostrzeżenie: " #: ../src/propgrid/advprops.cpp:651 #, fuzzy msgid "Weight" msgstr "&Waga" #: ../src/common/fmapbase.cpp:148 msgid "Western European (ISO-8859-1)" msgstr "Zachodnioeuropejski (ISO-8859-1)" #: ../src/common/fmapbase.cpp:162 msgid "Western European with Euro (ISO-8859-15)" msgstr "Zachodnioeuropejski z Euro (ISO-8859-15)" #: ../src/generic/fontdlgg.cpp:446 ../src/generic/fontdlgg.cpp:448 msgid "Whether the font is underlined." msgstr "Określenie podkreślenia." #: ../src/generic/fdrepdlg.cpp:144 msgid "Whole word" msgstr "Całe słowo" #: ../src/html/helpwnd.cpp:547 msgid "Whole words only" msgstr "Tylko całe słowa" #: ../src/univ/themes/win32.cpp:1102 msgid "Win32 theme" msgstr "Kompozycja Win32" #: ../src/msw/utils.cpp:1220 msgid "Win32s on Windows 3.1" msgstr "Win32s na Windows 3.1" #: ../src/msw/utils.cpp:1270 msgid "Windows 2000" msgstr "" #: ../src/msw/utils.cpp:1302 msgid "Windows 7" msgstr "" #: ../src/msw/utils.cpp:1234 msgid "Windows 95" msgstr "Windows 95" #: ../src/msw/utils.cpp:1230 msgid "Windows 95 OSR2" msgstr "Windows 95 OSR2" #: ../src/msw/utils.cpp:1245 msgid "Windows 98" msgstr "Windows 98" #: ../src/msw/utils.cpp:1241 msgid "Windows 98 SE" msgstr "Windows 98 SE" #: ../src/msw/utils.cpp:1252 #, c-format msgid "Windows 9x (%d.%d)" msgstr "Windows 9x (%d.%d)" #: ../src/common/fmapbase.cpp:177 msgid "Windows Arabic (CP 1256)" msgstr "Windows arabski (CP 1256)" #: ../src/common/fmapbase.cpp:178 msgid "Windows Baltic (CP 1257)" msgstr "Windows bałtycki (CP 1257)" #: ../src/msw/utils.cpp:1214 #, c-format msgid "Windows CE (%d.%d)" msgstr "Windows CE (%d.%d)" #: ../src/common/fmapbase.cpp:171 msgid "Windows Central European (CP 1250)" msgstr "Windows środkowoeuropejski (CP 1250)" #: ../src/common/fmapbase.cpp:168 #, fuzzy msgid "Windows Chinese Simplified (CP 936) or GB-2312" msgstr "Windows chiński uproszczony (CP 936)" #: ../src/common/fmapbase.cpp:170 #, fuzzy msgid "Windows Chinese Traditional (CP 950) or Big-5" msgstr "Windows chiński tradycyjny (CP 950)" #: ../src/common/fmapbase.cpp:172 msgid "Windows Cyrillic (CP 1251)" msgstr "Windows cyrylica (CP 1251)" #: ../src/common/fmapbase.cpp:174 msgid "Windows Greek (CP 1253)" msgstr "Windows grecki (CP 1253)" #: ../src/common/fmapbase.cpp:176 msgid "Windows Hebrew (CP 1255)" msgstr "Windows hebrajski (CP 1255)" #: ../src/common/fmapbase.cpp:167 #, fuzzy msgid "Windows Japanese (CP 932) or Shift-JIS" msgstr "Windows japoński (CP 932)" #: ../src/common/fmapbase.cpp:180 msgid "Windows Johab (CP 1361)" msgstr "" #: ../src/common/fmapbase.cpp:169 msgid "Windows Korean (CP 949)" msgstr "Windows koreański (CP 949)" #: ../src/msw/utils.cpp:1249 msgid "Windows ME" msgstr "Windows ME" #: ../src/msw/utils.cpp:1310 #, c-format msgid "Windows NT %lu.%lu" msgstr "" #: ../src/msw/utils.cpp:1279 msgid "Windows Server 2003" msgstr "" #: ../src/msw/utils.cpp:1295 msgid "Windows Server 2008" msgstr "" #: ../src/msw/utils.cpp:1301 msgid "Windows Server 2008 R2" msgstr "" #: ../src/common/fmapbase.cpp:166 msgid "Windows Thai (CP 874)" msgstr "Windows Thai (CP 874)" #: ../src/common/fmapbase.cpp:175 msgid "Windows Turkish (CP 1254)" msgstr "Windows turecki (CP 1254)" #: ../src/common/fmapbase.cpp:179 msgid "Windows Vietnamese (CP 1258)" msgstr "" #: ../src/msw/utils.cpp:1296 msgid "Windows Vista" msgstr "" #: ../src/common/fmapbase.cpp:173 msgid "Windows Western European (CP 1252)" msgstr "Windows zachodnioeuropejski (CP 1252)" #: ../src/msw/utils.cpp:1285 msgid "Windows XP" msgstr "" #: ../src/common/fmapbase.cpp:181 msgid "Windows/DOS OEM (CP 437)" msgstr "Windows/DOS OEM (CP 437)" #: ../src/common/fmapbase.cpp:165 msgid "Windows/DOS OEM Cyrillic (CP 866)" msgstr "" #: ../src/common/ffile.cpp:148 #, c-format msgid "Write error on file '%s'" msgstr "Błąd zapisu do pliku '%s'" #: ../src/xml/xml.cpp:844 #, c-format msgid "XML parsing error: '%s' at line %d" msgstr "Błąd parsowania XML: '%s' w linii %d" #: ../src/common/xpmdecod.cpp:796 msgid "XPM: Malformed pixel data!" msgstr "XPM: Zniekształcone dane obrazu!" #: ../src/common/xpmdecod.cpp:705 #, c-format msgid "XPM: incorrect colour description in line %d" msgstr "XPM: niepoprawny opis koloru w linijce %d" #: ../src/common/xpmdecod.cpp:680 msgid "XPM: incorrect header format!" msgstr "XPM: niepoprawna nagłówka formatu!" #: ../src/common/xpmdecod.cpp:716 ../src/common/xpmdecod.cpp:725 #, c-format msgid "XPM: malformed colour definition '%s' at line %d!" msgstr "XPM: niepoprawna definicja koloru '%s 'w linijce %d!" #: ../src/common/xpmdecod.cpp:755 msgid "XPM: no colors left to use for mask!" msgstr "XPM: nie zostało kolorów dla maski!" #: ../src/common/xpmdecod.cpp:782 #, c-format msgid "XPM: truncated image data at line %d!" msgstr "XPM: obcięte dane obrazu w linijce %d!" #: ../include/wx/msgdlg.h:271 ../src/common/stockitem.cpp:206 #: ../src/motif/msgdlg.cpp:196 msgid "Yes" msgstr "Tak" #: ../src/osx/carbon/overlay.cpp:155 msgid "You cannot Clear an overlay that is not inited" msgstr "Nie można wyczyścić nakładki, która nie jest zainicjowana" #: ../src/osx/carbon/overlay.cpp:107 ../src/dfb/overlay.cpp:61 msgid "You cannot Init an overlay twice" msgstr "Nie można uruchomić nakładki podwójnie" #: ../src/generic/dirdlgg.cpp:316 msgid "You cannot add a new directory to this section." msgstr "Nie możesz dodać nowego katalogu do tej sekcji." #: ../src/propgrid/propgrid.cpp:3258 msgid "You have entered invalid value. Press ESC to cancel editing." msgstr "Wprowadzono nieprawidłową wartość. Naciśnij ESC by anulować edycję." #: ../src/common/stockitem.cpp:209 msgid "Zoom &In" msgstr "Powiększen&ie" #: ../src/common/stockitem.cpp:210 msgid "Zoom &Out" msgstr "P&omniejszenie" #: ../src/common/stockitem.cpp:209 ../src/common/prntbase.cpp:1564 msgid "Zoom In" msgstr "Powiększenie" #: ../src/common/stockitem.cpp:210 ../src/common/prntbase.cpp:1550 msgid "Zoom Out" msgstr "Pomniejszenie" #: ../src/common/stockitem.cpp:208 msgid "Zoom to &Fit" msgstr "&Dopasowanie powiększenia" #: ../src/common/stockitem.cpp:208 #, fuzzy msgid "Zoom to Fit" msgstr "&Dopasowanie powiększenia" #: ../src/msw/dde.cpp:1144 msgid "a DDEML application has created a prolonged race condition." msgstr "Aplikacja DDEML utworzyła przedłużony wyścig (race condition)." # instance --> #: ../src/msw/dde.cpp:1132 msgid "" "a DDEML function was called without first calling the DdeInitialize " "function,\n" "or an invalid instance identifier\n" "was passed to a DDEML function." msgstr "" "została wywołana funkcja DDEML bez wcześniejszego wywołania funkcji " "DdeInitialize,\n" "lub do funkcji DDEML przesłano\n" "nieprawidłowy identyfikator instancji." #: ../src/msw/dde.cpp:1150 msgid "a client's attempt to establish a conversation has failed." msgstr "próba nawiązania konwersacji przez klienta nie powiodła się." #: ../src/msw/dde.cpp:1147 msgid "a memory allocation failed." msgstr "przydzielenie pamięci nie powiodło się." #: ../src/msw/dde.cpp:1141 msgid "a parameter failed to be validated by the DDEML." msgstr "parametr nie przeszedł kontroli poprawności DDEML" #: ../src/msw/dde.cpp:1123 msgid "a request for a synchronous advise transaction has timed out." msgstr "" "upłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji advise." #: ../src/msw/dde.cpp:1129 msgid "a request for a synchronous data transaction has timed out." msgstr "" "upłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji data." #: ../src/msw/dde.cpp:1138 msgid "a request for a synchronous execute transaction has timed out." msgstr "" "upłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji execute." #: ../src/msw/dde.cpp:1156 msgid "a request for a synchronous poke transaction has timed out." msgstr "" "upłynął czas oczekiwania na rozpoczęcie synchronicznej transakcji poke." #: ../src/msw/dde.cpp:1171 msgid "a request to end an advise transaction has timed out." msgstr "upłynął czas oczekiwania na zakończenie trancakcji advise." #: ../src/msw/dde.cpp:1165 msgid "" "a server-side transaction was attempted on a conversation\n" "that was terminated by the client, or the server\n" "terminated before completing a transaction." msgstr "" "transakcja server-side próbowała kontynuować konwersację\n" "zakończoną przez klienta, lub serwer\n" "zakończył pracę przez zakończeniem transakcji." #: ../src/msw/dde.cpp:1153 msgid "a transaction failed." msgstr "transakcja nie powiodła się." #: ../src/common/accelcmn.cpp:184 msgid "alt" msgstr "alt" # transakcję normalnie wykonywaną przez serwer, inaczej #: ../src/msw/dde.cpp:1135 msgid "" "an application initialized as APPCLASS_MONITOR has\n" "attempted to perform a DDE transaction,\n" "or an application initialized as APPCMD_CLIENTONLY has \n" "attempted to perform server transactions." msgstr "" "aplikacja zainicjowana jako APPCLASS_MONITOR\n" "usiłowała wykonać transakcję DDE,\n" "lub aplikacja zainicjowana jako APPCMD_CLIENTONLY\n" "usiłowała wykonać transakcję serwera." #: ../src/msw/dde.cpp:1159 msgid "an internal call to the PostMessage function has failed. " msgstr "wewnętrzne wywołanie funkcji PostMessage zakończyło się niepowodzeniem" #: ../src/msw/dde.cpp:1168 msgid "an internal error has occurred in the DDEML." msgstr "wystąpił wewnętrzny błąd w DDEML." #: ../src/msw/dde.cpp:1174 msgid "" "an invalid transaction identifier was passed to a DDEML function.\n" "Once the application has returned from an XTYP_XACT_COMPLETE callback,\n" "the transaction identifier for that callback is no longer valid." msgstr "" "do funkcji DDEML przesłano nieprawidłowy identyfikator transakcji.\n" "Kiedy aplikacja kończy połączenie zwrotne XTYP_XACT_COMPLETE,\n" "identyfikator transakcji dla tego połączenia nie jest dłużej ważny." #: ../src/common/zipstrm.cpp:1272 msgid "assuming this is a multi-part zip concatenated" msgstr "założenie że jest to połączony wieloczęściowy zip" #: ../src/common/fileconf.cpp:1882 #, c-format msgid "attempt to change immutable key '%s' ignored." msgstr "zignorowano próbę zmiany niezmiennego klucza '%s'." #: ../src/html/chm.cpp:329 msgid "bad arguments to library function" msgstr "błędne argumenty funkcji bibliotecznej" #: ../src/html/chm.cpp:341 msgid "bad signature" msgstr "błędne oznaczenie" #: ../src/common/zipstrm.cpp:1715 msgid "bad zipfile offset to entry" msgstr "błędne przemieszczenie w pliku zip" #: ../src/common/ftp.cpp:405 msgid "binary" msgstr "binarny" #: ../src/common/fontcmn.cpp:978 msgid "bold" msgstr "pogrubiony" #: ../src/os2/iniconf.cpp:463 msgid "buffer is too small for Windows directory." msgstr "bufor jest zbyt mały na katalog Windows." #: ../src/msw/utils.cpp:1316 #, c-format msgid "build %lu" msgstr "" #: ../src/common/ffile.cpp:79 #, c-format msgid "can't close file '%s'" msgstr "nie można zamknąć pliku '%s'" #: ../src/common/file.cpp:278 #, c-format msgid "can't close file descriptor %d" msgstr "nie można zamknąć deskryptora pliku %d" #: ../src/common/file.cpp:604 #, c-format msgid "can't commit changes to file '%s'" msgstr "nie można zatwierdzić zmian w pliku '%s'" #: ../src/common/file.cpp:212 #, c-format msgid "can't create file '%s'" msgstr "nie można utworzyć pliku '%s'" #: ../src/common/fileconf.cpp:1176 #, c-format msgid "can't delete user configuration file '%s'" msgstr "nie można usunąć pliku konfiguracyjnego użytkownika '%s'" #: ../src/common/file.cpp:511 #, c-format msgid "can't determine if the end of file is reached on descriptor %d" msgstr "nie można określić czy osiągnięto koniec pliku w deskryptorze %d" #: ../src/msdos/utilsdos.cpp:310 ../src/msdos/utilsdos.cpp:475 #, c-format msgid "can't execute '%s'" msgstr "nie udało się wykonać '%s'" #: ../src/common/zipstrm.cpp:1490 msgid "can't find central directory in zip" msgstr "nie można znaleźć centralnego katalogu zip" #: ../src/common/file.cpp:481 #, c-format msgid "can't find length of file on file descriptor %d" msgstr "nie można znaleźć rozmiaru pliku w deskryptorze pliku %d" #: ../src/msw/utils.cpp:373 msgid "can't find user's HOME, using current directory." msgstr "nie można znaleźć katalogu domowego, zostanie użyty bieżący." #: ../src/common/file.cpp:382 #, c-format msgid "can't flush file descriptor %d" msgstr "nie można opróżnić deskryptora pliku %d" #: ../src/common/file.cpp:438 ../src/msw/wince/filefnwce.cpp:204 #, c-format msgid "can't get seek position on file descriptor %d" msgstr "nie można odczytać bieżącej pozycji w deskryptorze pliku %d" #: ../src/common/fontmap.cpp:325 msgid "can't load any font, aborting" msgstr "nie można załadować żadnej czcionki, program kończy pracę" #: ../src/common/file.cpp:264 ../src/common/ffile.cpp:63 #, c-format msgid "can't open file '%s'" msgstr "nie można otworzyć pliku '%s'" # globalnej? #: ../src/common/fileconf.cpp:351 #, c-format msgid "can't open global configuration file '%s'." msgstr "nie można otworzyć globalnego pliku konfiguracji '%s'." #: ../src/common/fileconf.cpp:367 #, c-format msgid "can't open user configuration file '%s'." msgstr "nie można otworzyć pliku konfiguracyjnego użytkownika '%s'." #: ../src/common/fileconf.cpp:1017 msgid "can't open user configuration file." msgstr "nie można otworzyć pliku konfiguracyjnego użytkownika." #: ../src/common/zipstrm.cpp:527 msgid "can't re-initialize zlib deflate stream" msgstr "nie można ponownie zainicjować strumienia kompresji biblioteki zlib" #: ../src/common/zipstrm.cpp:552 msgid "can't re-initialize zlib inflate stream" msgstr "nie można ponownie zainicjować strumienia dekompresji biblioteki zlib" #: ../src/common/file.cpp:334 #, c-format msgid "can't read from file descriptor %d" msgstr "nie można czytać z deskryptora pliku %d" #: ../src/common/file.cpp:599 #, c-format msgid "can't remove file '%s'" msgstr "nie można usunąć pliku '%s'" #: ../src/common/file.cpp:616 #, c-format msgid "can't remove temporary file '%s'" msgstr "nie można usunąć tymczasowego pliku '%s'" #: ../src/common/file.cpp:424 ../src/msw/wince/filefnwce.cpp:190 #, c-format msgid "can't seek on file descriptor %d" msgstr "nie można ustawić pozycji w deskryptorze pliku %d" #: ../src/common/textfile.cpp:299 #, c-format msgid "can't write buffer '%s' to disk." msgstr "nie można zapisać bufora '%s' na dysk." #: ../src/common/file.cpp:350 #, c-format msgid "can't write to file descriptor %d" msgstr "nie można zapisać do deskryptora pliku %d" #: ../src/common/fileconf.cpp:1031 msgid "can't write user configuration file." msgstr "nie można zapisać pliku konfiguracyjnego użytkownika." #: ../src/html/chm.cpp:345 msgid "checksum error" msgstr "błąd sumy kontrolnej" #: ../src/common/tarstrm.cpp:820 msgid "checksum failure reading tar header block" msgstr "Niepowodzenie sumy kontrolnej czytania nagłówka bloku tar" #: ../src/richtext/richtextborderspage.cpp:280 #: ../src/richtext/richtextborderspage.cpp:310 #: ../src/richtext/richtextborderspage.cpp:340 #: ../src/richtext/richtextborderspage.cpp:370 #: ../src/richtext/richtextborderspage.cpp:424 #: ../src/richtext/richtextborderspage.cpp:454 #: ../src/richtext/richtextborderspage.cpp:484 #: ../src/richtext/richtextborderspage.cpp:514 #: ../src/richtext/richtextmarginspage.cpp:202 #: ../src/richtext/richtextmarginspage.cpp:227 #: ../src/richtext/richtextmarginspage.cpp:250 #: ../src/richtext/richtextmarginspage.cpp:275 #: ../src/richtext/richtextmarginspage.cpp:316 #: ../src/richtext/richtextmarginspage.cpp:341 #: ../src/richtext/richtextmarginspage.cpp:364 #: ../src/richtext/richtextmarginspage.cpp:389 #: ../src/richtext/richtextsizepage.cpp:336 #: ../src/richtext/richtextsizepage.cpp:370 #: ../src/richtext/richtextsizepage.cpp:397 #: ../src/richtext/richtextsizepage.cpp:424 #: ../src/richtext/richtextsizepage.cpp:451 #: ../src/richtext/richtextsizepage.cpp:478 #: ../src/richtext/richtextsizepage.cpp:552 #: ../src/richtext/richtextsizepage.cpp:587 #: ../src/richtext/richtextsizepage.cpp:622 #: ../src/richtext/richtextsizepage.cpp:657 msgid "cm" msgstr "cm" #: ../src/html/chm.cpp:347 msgid "compression error" msgstr "błąd kompresji" #: ../src/common/regex.cpp:239 msgid "conversion to 8-bit encoding failed" msgstr "nie powiodła się konwersja do kodowania '8-bit'" #: ../src/common/accelcmn.cpp:182 msgid "ctrl" msgstr "ctrl" #: ../src/common/cmdline.cpp:1323 msgid "date" msgstr "data" #: ../src/html/chm.cpp:349 msgid "decompression error" msgstr "błąd dekompresji" #: ../src/richtext/richtextstyles.cpp:780 ../src/common/fmapbase.cpp:820 msgid "default" msgstr "domyślny" #: ../src/common/cmdline.cpp:1319 msgid "double" msgstr "podwójnie" #: ../src/common/debugrpt.cpp:543 msgid "dump of the process state (binary)" msgstr "kopia stanu procesu (binarnie)" #: ../src/common/datetimefmt.cpp:1936 msgid "eighteenth" msgstr "osiemnasty" #: ../src/common/datetimefmt.cpp:1926 msgid "eighth" msgstr "ósmy" #: ../src/common/datetimefmt.cpp:1929 msgid "eleventh" msgstr "jedenasty" #: ../src/common/fileconf.cpp:1868 #, c-format msgid "entry '%s' appears more than once in group '%s'" msgstr "pozycja '%s' występuje w grupie '%s' więcej niż jeden raz" #: ../src/html/chm.cpp:343 msgid "error in data format" msgstr "błąd w formacie" #: ../src/msdos/utilsdos.cpp:413 #, c-format msgid "error opening '%s'" msgstr "błąd otwarcia '%s'" #: ../src/html/chm.cpp:331 msgid "error opening file" msgstr "błąd otwarcia pliku" #: ../src/common/zipstrm.cpp:1576 msgid "error reading zip central directory" msgstr "błąd przy odczycie centralnego katalogu zip" #: ../src/common/zipstrm.cpp:1667 msgid "error reading zip local header" msgstr "błąd odczytu lokalnego nagłówka zip" #: ../src/common/zipstrm.cpp:2396 #, c-format msgid "error writing zip entry '%s': bad crc or length" msgstr "błąd zapisu zip '%s': niepoprawna sygnatura crc lub długość" # nie do końca... #: ../src/common/ffile.cpp:170 #, c-format msgid "failed to flush the file '%s'" msgstr "nie udało się opróżnić (flush) pliku '%s'" #: ../src/common/datetimefmt.cpp:1933 msgid "fifteenth" msgstr "piętnasty" #: ../src/common/datetimefmt.cpp:1923 msgid "fifth" msgstr "piąty" #: ../src/common/fileconf.cpp:610 #, c-format msgid "file '%s', line %d: '%s' ignored after group header." msgstr "plik '%s', linia %d: zignorowano '%s' po nagłówku grupy." #: ../src/common/fileconf.cpp:639 #, c-format msgid "file '%s', line %d: '=' expected." msgstr "plik '%s', linia %d: oczekiwano '='." #: ../src/common/fileconf.cpp:662 #, c-format msgid "file '%s', line %d: key '%s' was first found at line %d." msgstr "plik '%s', linia %d: klucz '%s' wystąpił po raz pierwszy w lini %d." # niezmiennego? #: ../src/common/fileconf.cpp:652 #, c-format msgid "file '%s', line %d: value for immutable key '%s' ignored." msgstr "plik '%s', linia %d: zignorowano wartość dla niezmiennego klucza '%s'." #: ../src/common/fileconf.cpp:574 #, c-format msgid "file '%s': unexpected character %c at line %d." msgstr "plik '%s': nieoczekiwany znak %c w lini %d." #: ../src/richtext/richtextbuffer.cpp:8300 msgid "files" msgstr "pliki" #: ../src/common/datetimefmt.cpp:1919 msgid "first" msgstr "pierwszy" #: ../src/html/helpwnd.cpp:1265 msgid "font size" msgstr "rozmiar czcionki" #: ../src/common/datetimefmt.cpp:1932 msgid "fourteenth" msgstr "czternasty" #: ../src/common/datetimefmt.cpp:1922 msgid "fourth" msgstr "czwarty" # inaczej #: ../src/common/appbase.cpp:695 msgid "generate verbose log messages" msgstr "generuje listę komunikatów" #: ../src/richtext/richtextbuffer.cpp:12015 #: ../src/richtext/richtextbuffer.cpp:12125 msgid "image" msgstr "obraz" #: ../src/common/tarstrm.cpp:796 msgid "incomplete header block in tar" msgstr "niekompletny blok nagłówka w tar" #: ../src/common/xtixml.cpp:489 msgid "incorrect event handler string, missing dot" msgstr "nieprawidłowy uchwyt zdarzenia, brak kropki w nazwie" #: ../src/common/tarstrm.cpp:1381 msgid "incorrect size given for tar entry" msgstr "nieprawidłowy rozmiar podany w wpisie tar" #: ../src/common/tarstrm.cpp:993 msgid "invalid data in extended tar header" msgstr "nieprawidłowe dane w rozszerzonym nagłówku tar" #: ../src/generic/logg.cpp:1050 msgid "invalid message box return value" msgstr "wartość zwrócona przez okno komunikatu jest nieprawidłowa" #: ../src/common/zipstrm.cpp:1445 msgid "invalid zip file" msgstr "nieprawidłowy plik zip" #: ../src/common/fontcmn.cpp:983 msgid "italic" msgstr "kursywa" #: ../src/common/fontcmn.cpp:973 msgid "light" msgstr "lekki" #: ../src/common/intl.cpp:293 #, c-format msgid "locale '%s' cannot be set." msgstr "lokalizacja '%s' nie może być ustawiona." #: ../src/common/datetimefmt.cpp:2092 msgid "midnight" msgstr "północ" #: ../src/common/datetimefmt.cpp:1937 msgid "nineteenth" msgstr "dziewiętnasty" #: ../src/common/datetimefmt.cpp:1927 msgid "ninth" msgstr "dziewiąty" #: ../src/msw/dde.cpp:1119 msgid "no DDE error." msgstr "bez błędu DDE." #: ../src/html/chm.cpp:327 msgid "no error" msgstr "brak błędu" #: ../src/dfb/fontmgr.cpp:174 #, c-format msgid "no fonts found in %s, using builtin font" msgstr "nie znaleziono czcionek w %s, wykorzystując czcionki wypunktowania" #: ../src/html/helpdata.cpp:654 msgid "noname" msgstr "beznazwy" #: ../src/common/datetimefmt.cpp:2091 msgid "noon" msgstr "południe" #: ../src/richtext/richtextstyles.cpp:779 #, fuzzy msgid "normal" msgstr "Normalny" #: ../src/gtk/print.cpp:1227 ../src/gtk/print.cpp:1332 msgid "not implemented" msgstr "nie zaimplementowany" #: ../src/common/cmdline.cpp:1315 msgid "num" msgstr "liczba" #: ../src/common/xtixml.cpp:259 msgid "objects cannot have XML Text Nodes" msgstr "obiekty nie może mieć węzłów typu 'XML Text'" #: ../src/html/chm.cpp:339 msgid "out of memory" msgstr "brak wolnej pamięci" #: ../src/richtext/richtextsizepage.cpp:337 #: ../src/richtext/richtextsizepage.cpp:371 #: ../src/richtext/richtextsizepage.cpp:398 #: ../src/richtext/richtextsizepage.cpp:425 #: ../src/richtext/richtextsizepage.cpp:452 #: ../src/richtext/richtextsizepage.cpp:479 #: ../src/richtext/richtextsizepage.cpp:553 #: ../src/richtext/richtextsizepage.cpp:588 #: ../src/richtext/richtextsizepage.cpp:623 #: ../src/richtext/richtextsizepage.cpp:658 msgid "percent" msgstr "procent" #: ../src/common/debugrpt.cpp:519 msgid "process context description" msgstr "opis kontekstu procesu" #: ../src/richtext/richtextfontpage.cpp:186 #: ../src/richtext/richtextfontpage.cpp:189 msgid "pt" msgstr "pt" #: ../src/richtext/richtextfontpage.cpp:187 #: ../src/richtext/richtextborderspage.cpp:279 #: ../src/richtext/richtextborderspage.cpp:281 #: ../src/richtext/richtextborderspage.cpp:282 #: ../src/richtext/richtextborderspage.cpp:309 #: ../src/richtext/richtextborderspage.cpp:311 #: ../src/richtext/richtextborderspage.cpp:312 #: ../src/richtext/richtextborderspage.cpp:339 #: ../src/richtext/richtextborderspage.cpp:341 #: ../src/richtext/richtextborderspage.cpp:342 #: ../src/richtext/richtextborderspage.cpp:369 #: ../src/richtext/richtextborderspage.cpp:371 #: ../src/richtext/richtextborderspage.cpp:372 #: ../src/richtext/richtextborderspage.cpp:423 #: ../src/richtext/richtextborderspage.cpp:425 #: ../src/richtext/richtextborderspage.cpp:426 #: ../src/richtext/richtextborderspage.cpp:453 #: ../src/richtext/richtextborderspage.cpp:455 #: ../src/richtext/richtextborderspage.cpp:456 #: ../src/richtext/richtextborderspage.cpp:483 #: ../src/richtext/richtextborderspage.cpp:485 #: ../src/richtext/richtextborderspage.cpp:486 #: ../src/richtext/richtextborderspage.cpp:513 #: ../src/richtext/richtextborderspage.cpp:515 #: ../src/richtext/richtextborderspage.cpp:516 #: ../src/richtext/richtextmarginspage.cpp:201 #: ../src/richtext/richtextmarginspage.cpp:203 #: ../src/richtext/richtextmarginspage.cpp:204 #: ../src/richtext/richtextmarginspage.cpp:226 #: ../src/richtext/richtextmarginspage.cpp:228 #: ../src/richtext/richtextmarginspage.cpp:229 #: ../src/richtext/richtextmarginspage.cpp:249 #: ../src/richtext/richtextmarginspage.cpp:251 #: ../src/richtext/richtextmarginspage.cpp:252 #: ../src/richtext/richtextmarginspage.cpp:274 #: ../src/richtext/richtextmarginspage.cpp:276 #: ../src/richtext/richtextmarginspage.cpp:277 #: ../src/richtext/richtextmarginspage.cpp:315 #: ../src/richtext/richtextmarginspage.cpp:317 #: ../src/richtext/richtextmarginspage.cpp:318 #: ../src/richtext/richtextmarginspage.cpp:340 #: ../src/richtext/richtextmarginspage.cpp:342 #: ../src/richtext/richtextmarginspage.cpp:343 #: ../src/richtext/richtextmarginspage.cpp:363 #: ../src/richtext/richtextmarginspage.cpp:365 #: ../src/richtext/richtextmarginspage.cpp:366 #: ../src/richtext/richtextmarginspage.cpp:388 #: ../src/richtext/richtextmarginspage.cpp:390 #: ../src/richtext/richtextmarginspage.cpp:391 #: ../src/richtext/richtextsizepage.cpp:335 #: ../src/richtext/richtextsizepage.cpp:338 #: ../src/richtext/richtextsizepage.cpp:339 #: ../src/richtext/richtextsizepage.cpp:369 #: ../src/richtext/richtextsizepage.cpp:372 #: ../src/richtext/richtextsizepage.cpp:373 #: ../src/richtext/richtextsizepage.cpp:396 #: ../src/richtext/richtextsizepage.cpp:399 #: ../src/richtext/richtextsizepage.cpp:400 #: ../src/richtext/richtextsizepage.cpp:423 #: ../src/richtext/richtextsizepage.cpp:426 #: ../src/richtext/richtextsizepage.cpp:427 #: ../src/richtext/richtextsizepage.cpp:450 #: ../src/richtext/richtextsizepage.cpp:453 #: ../src/richtext/richtextsizepage.cpp:454 #: ../src/richtext/richtextsizepage.cpp:477 #: ../src/richtext/richtextsizepage.cpp:480 #: ../src/richtext/richtextsizepage.cpp:481 #: ../src/richtext/richtextsizepage.cpp:551 #: ../src/richtext/richtextsizepage.cpp:554 #: ../src/richtext/richtextsizepage.cpp:555 #: ../src/richtext/richtextsizepage.cpp:586 #: ../src/richtext/richtextsizepage.cpp:589 #: ../src/richtext/richtextsizepage.cpp:590 #: ../src/richtext/richtextsizepage.cpp:621 #: ../src/richtext/richtextsizepage.cpp:624 #: ../src/richtext/richtextsizepage.cpp:625 #: ../src/richtext/richtextsizepage.cpp:656 #: ../src/richtext/richtextsizepage.cpp:659 #: ../src/richtext/richtextsizepage.cpp:660 msgid "px" msgstr "px" #: ../src/common/accelcmn.cpp:188 msgid "rawctrl" msgstr "" #: ../src/html/chm.cpp:333 msgid "read error" msgstr "błąd odczytu" #: ../src/common/zipstrm.cpp:1882 #, c-format msgid "reading zip stream (entry %s): bad crc" msgstr "odczyt strumienia zip (%s): niepoprawna sygnatura crc" #: ../src/common/zipstrm.cpp:1877 #, c-format msgid "reading zip stream (entry %s): bad length" msgstr "odczyt strumienia zip (%s): niepoprawna długość" #: ../src/msw/dde.cpp:1162 msgid "reentrancy problem." msgstr "problem współbieżności" #: ../src/common/datetimefmt.cpp:1920 msgid "second" msgstr "drugi" #: ../src/html/chm.cpp:337 msgid "seek error" msgstr "błąd przeszukiwania" #: ../src/common/datetimefmt.cpp:1935 msgid "seventeenth" msgstr "siedemnasty" #: ../src/common/datetimefmt.cpp:1925 msgid "seventh" msgstr "siódmy" #: ../src/common/accelcmn.cpp:186 msgid "shift" msgstr "shift" #: ../src/common/appbase.cpp:685 msgid "show this help message" msgstr "wyświetla ten komunikat" #: ../src/common/datetimefmt.cpp:1934 msgid "sixteenth" msgstr "szesnasty" #: ../src/common/datetimefmt.cpp:1924 msgid "sixth" msgstr "szósty" #: ../src/common/appcmn.cpp:206 msgid "specify display mode to use (e.g. 640x480-16)" msgstr "określa tryb wyświetlania, który ma być użyty (np. 640x480-16)" #: ../src/common/appcmn.cpp:192 msgid "specify the theme to use" msgstr "określa kompozycję, który ma być użyta" #: ../src/richtext/richtextbuffer.cpp:8818 msgid "standard/circle" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8819 msgid "standard/circle-outline" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8821 msgid "standard/diamond" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8820 msgid "standard/square" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8822 msgid "standard/triangle" msgstr "" #: ../src/common/zipstrm.cpp:1782 msgid "stored file length not in Zip header" msgstr "długość pliku nie w nagłówku Zip" #: ../src/common/cmdline.cpp:1311 msgid "str" msgstr "tekst" #: ../src/common/fontcmn.cpp:794 ../src/common/fontcmn.cpp:969 #, fuzzy msgid "strikethrough" msgstr "&Przekreślenie" #: ../src/common/tarstrm.cpp:1003 ../src/common/tarstrm.cpp:1025 #: ../src/common/tarstrm.cpp:1507 ../src/common/tarstrm.cpp:1529 msgid "tar entry not open" msgstr "wpis tar nie otwarty" #: ../src/common/datetimefmt.cpp:1928 msgid "tenth" msgstr "dziesiąty" # niezręczne #: ../src/msw/dde.cpp:1126 msgid "the response to the transaction caused the DDE_FBUSY bit to be set." msgstr "odpowiedź na transakcję spowodowała ustawienie bitu DDE_FBUSY." #: ../src/common/datetimefmt.cpp:1921 msgid "third" msgstr "trzeci" #: ../src/common/datetimefmt.cpp:1931 msgid "thirteenth" msgstr "trzynasty" #: ../src/common/datetimefmt.cpp:1725 msgid "today" msgstr "dziś" #: ../src/common/datetimefmt.cpp:1727 msgid "tomorrow" msgstr "jutro" #: ../src/common/fileconf.cpp:1979 #, c-format msgid "trailing backslash ignored in '%s'" msgstr "końcowy ukośnik odwrotny zignorowany w '%s'" #: ../src/gtk/aboutdlg.cpp:218 msgid "translator-credits" msgstr "Michał Trzebiatowski" #: ../src/common/datetimefmt.cpp:1930 msgid "twelfth" msgstr "dwunasty" #: ../src/common/datetimefmt.cpp:1938 msgid "twentieth" msgstr "dwudziesty" #: ../src/common/fontcmn.cpp:789 ../src/common/fontcmn.cpp:965 msgid "underlined" msgstr "podkreślony" #: ../src/common/fileconf.cpp:2014 #, c-format msgid "unexpected \" at position %d in '%s'." msgstr "nieoczekiwany \" na pozycji %d w '%s'." #: ../src/common/tarstrm.cpp:1045 msgid "unexpected end of file" msgstr "nieoczekiwany koniec pliku" #: ../src/generic/progdlgg.cpp:399 ../src/common/tarstrm.cpp:371 #: ../src/common/tarstrm.cpp:394 ../src/common/tarstrm.cpp:425 msgid "unknown" msgstr "nieznany" #: ../src/common/xtixml.cpp:253 #, c-format msgid "unknown class %s" msgstr "nieznana klasa %s" #: ../src/common/regex.cpp:261 ../src/html/chm.cpp:351 msgid "unknown error" msgstr "nieznany błąd" #: ../src/msw/dialup.cpp:490 #, c-format msgid "unknown error (error code %08x)." msgstr "nieznany błąd (kod błędu %08x)." #: ../src/msw/wince/filefnwce.cpp:172 msgid "unknown seek origin" msgstr "nieznany odnośnik pozycjonowania" #: ../src/common/fmapbase.cpp:834 #, c-format msgid "unknown-%d" msgstr "nieznany-%d" #: ../src/common/docview.cpp:507 msgid "unnamed" msgstr "beznazwy" #: ../src/common/docview.cpp:1607 #, c-format msgid "unnamed%d" msgstr "beznazwy%d" #: ../src/common/zipstrm.cpp:1796 ../src/common/zipstrm.cpp:2184 msgid "unsupported Zip compression method" msgstr "niewspierana metoda kompresji Zip" #: ../src/common/translation.cpp:1892 #, c-format msgid "using catalog '%s' from '%s'." msgstr "użycie katalogu '%s' z '%s'." #: ../src/html/chm.cpp:335 msgid "write error" msgstr "błąd zapisu" #: ../src/common/time.cpp:318 msgid "wxGetTimeOfDay failed." msgstr "wxGetTimeOfDay zwróciło błąd." #: ../src/gtk/print.cpp:996 msgid "wxPrintout::GetPageInfo gives a null maxPage." msgstr "wxPrintout: GetPageInfo daje zero maxPage." #: ../src/osx/carbon/dataview.cpp:1303 msgid "wxWidget control pointer is not a data view pointer" msgstr "Wskaźnik kontroli wxWidget nie jest wskaźnikiem widoku danych" #: ../src/osx/carbon/dataview.cpp:907 msgid "wxWidget's control not initialized." msgstr "" #: ../src/motif/app.cpp:245 #, c-format msgid "wxWidgets could not open display for '%s': exiting." msgstr "Nie można zainicjować wyświetlania dla '%s': program kończy pracę." #: ../src/x11/app.cpp:164 msgid "wxWidgets could not open display. Exiting." msgstr "Nie można zainicjować wyświetlania. Program kończy pracę." #: ../src/richtext/richtextsymboldlg.cpp:434 msgid "xxxx" msgstr "xxxx" #: ../src/common/datetimefmt.cpp:1726 msgid "yesterday" msgstr "wczoraj" #: ../src/common/zstream.cpp:251 ../src/common/zstream.cpp:426 #, c-format msgid "zlib error %d" msgstr "błąd biblioteki zlib %d" #: ../src/richtext/richtextliststylepage.cpp:496 #: ../src/richtext/richtextbulletspage.cpp:301 msgid "~" msgstr "~" #~ msgid "1" #~ msgstr "1" #, fuzzy #~ msgid "10" #~ msgstr "1" #~ msgid "3" #~ msgstr "3" #~ msgid "4" #~ msgstr "4" #~ msgid "5" #~ msgstr "5" #~ msgid "6" #~ msgstr "6" #~ msgid "7" #~ msgstr "7" #~ msgid "8" #~ msgstr "8" #~ msgid "9" #~ msgstr "9" #, fuzzy #~ msgid "&Preview..." #~ msgstr " Podgląd" #, fuzzy #~ msgid "Preview..." #~ msgstr " Podgląd" #, fuzzy #~ msgid "The vertical offset relative to the paragraph." #~ msgstr "Domyślny styl dla następnego paragrafu." #~ msgid "&Save..." #~ msgstr "&Zapisz..." #~ msgid "About " #~ msgstr "O" #~ msgid "All files (*.*)|*" #~ msgstr "Wszystkie pliki (*.*)|*" #~ msgid "Cannot initialize SciTech MGL!" #~ msgstr "Nie można zainicjować SciTech MGL!" #~ msgid "Cannot initialize display." #~ msgstr "Nie można zainicjować obsługi wyświetlania." #~ msgid "Cannot start thread: error writing TLS" #~ msgstr "Nie można wystartować wątku: błąd zapisu TLS" #~ msgid "Close\tAlt-F4" #~ msgstr "Zamknij\tAlt-F4" #~ msgid "Couldn't create cursor." #~ msgstr "Nie można utworzyć kursora." #~ msgid "Directory '%s' doesn't exist!" #~ msgstr "Katalog '%s' nie istnieje!" #~ msgid "File %s does not exist." #~ msgstr "Plik %s nie istnieje." # sprawdzić "tryb", może "nie jest", "nie" - razem czy osobno, #~ msgid "Mode %ix%i-%i not available." #~ msgstr "Tryb %ix%i-%i nie jest dostępny." #~ msgid "Paper Size" #~ msgstr "Rozmiar papieru" #~ msgid "%.*f GB" #~ msgstr "%.*f GB" #~ msgid "%.*f MB" #~ msgstr "%.*f MB" #~ msgid "%.*f TB" #~ msgstr "%.*f TB" #~ msgid "%.*f kB" #~ msgstr "%.*f kB" #~ msgid "%s" #~ msgstr "%s" #~ msgid "%s B" #~ msgstr "%s B" #~ msgid "&Goto..." #~ msgstr "&Przejdź do..." #~ msgid "<<" #~ msgstr "<<" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">>|" #~ msgstr ">>|" #~ msgid "Added item is invalid." #~ msgstr "Dodana pozycja jest nieprawidłowa." #~ msgid "Archive doesnt contain #SYSTEM file" #~ msgstr "Archiwum nie zawiera pliku #SYSTEM" #~ msgid "BIG5" #~ msgstr "BIG5" #~ msgid "Can't check image format of file '%s': file does not exist." #~ msgstr "" #~ "Nie można sprawdzić formatu graficznego pliku '%s': plik nie istnieje." #~ msgid "Can't load image from file '%s': file does not exist." #~ msgstr "Nie można wczytać obrazu z pliku '%s': plik nie istnieje." # units --> ? #~ msgid "Cannot convert dialog units: dialog unknown." #~ msgstr "" #~ "Nie można wykonać konwersji okien dialogowych: nieznane okno dialogowe." #~ msgid "Cannot convert from the charset '%s'!" #~ msgstr "Nie można dokonać konwersji z tablicy '%s'!" #~ msgid "Cannot find container for unknown control '%s'." #~ msgstr "NIe można znaleźć kontenera dla nieznanej kontrolki '%s'." #~ msgid "Cannot find font node '%s'." #~ msgstr "Nie można znaleźć węzła czcionki '%s'." #~ msgid "Cannot open file '%s'." #~ msgstr "Nie można otworzyć pliku '%s'." #~ msgid "Cannot parse coordinates from '%s'." #~ msgstr "Nie można wyciągnąć koordynatów z '%s'." #~ msgid "Cannot parse dimension from '%s'." #~ msgstr "Nie można wyciągnąć wymiaru z '%s'." #~ msgid "Cant create the thread event queue" #~ msgstr "Nie można utworzyć kolejki zdarzeń wątku" #~ msgid "Changed item is invalid." #~ msgstr "Zmieniona pozycja jest nieprawidłowa." #~ msgid "Click to cancel this window." #~ msgstr "Kliknij, aby anulować to okno." #~ msgid "Click to confirm your selection." #~ msgstr "Kliknij, aby potwierdzić wybór." #~ msgid "Column does not have a renderer." #~ msgstr "Kolumna nie ma rendera." #~ msgid "Column pointer must not be NULL." #~ msgstr "Wskaźnik kolumny nie może być ZERO." #~ msgid "Column's model column has no equivalent in the associated model." #~ msgstr "Kolumna modelu kolumny nie ma odpowiednika w powiązanym modelu." #~ msgid "Control is wrongly initialized." #~ msgstr "Kontrola jest niesłusznie zainicjalizowana." #~ msgid "Could not add column to internal structures." #~ msgstr "Nie można dodać kolumny do wewnętrznych struktur." #~ msgid "Could not unlock mutex" #~ msgstr "Nie odblokowano muteksu" #~ msgid "Data view control is not correctly initialized" #~ msgstr "Widok kontroli danych nie jest poprawnie inicjowany" #~ msgid "Error while waiting on semaphore" #~ msgstr "Błąd oczekiwania na semafor" #~ msgid "Failed to connect to session manager: %s" #~ msgstr "Nie udało połączyć się do menedżera sesji: %s" #~ msgid "Failed to create a status bar." #~ msgstr "Nie udało się utworzyć paska statusu." #~ msgid "Failed to register OpenGL window class." #~ msgstr "Nie udała się rejestracja klasy okna OpenGL." #~ msgid "Fatal error" #~ msgstr "Błąd krytyczny " #~ msgid "Fatal error: " #~ msgstr "Błąd krytyczny: " #~ msgid "GB-2312" #~ msgstr "GB-2312" #~ msgid "Go forward to the next HTML page" #~ msgstr "Przejdź do następnej strony HTML" #~ msgid "Goto Page" #~ msgstr "Skocz do strony" #~ msgid "" #~ "HTML pagination algorithm generated more than the allowed maximum number " #~ "of pages and it can't continue any longer!" #~ msgstr "" #~ "Algorytm paginacji HTML generował więcej niż dozwoloną maksymalną liczbę " #~ "stron i nie może być dłużej kontynuowany!" #~ msgid "Help : %s" #~ msgstr "Pomoc : %s" #~ msgid "I64" #~ msgstr "I64" #~ msgid "Internal error, illegal wxCustomTypeInfo" #~ msgstr "Błąd wewnętrzny, nieprawidłowości w wxCustomTypeInfo" # korzenia? #~ msgid "Invalid XRC resource '%s': doesn't have root node 'resource'." #~ msgstr "Nieprawidłowy zasób XRC '%s': brakuje głównego węzła 'resource'." #~ msgid "No handler found for XML node '%s', class '%s'!" #~ msgstr "Brak procedury obsługi dla węzła XML '%s', klasa '%s'!" #~ msgid "No image handler for type %ld defined." #~ msgstr "Brak procedury obsługi obrazów typu %ld." #~ msgid "No model associated with control." #~ msgstr "Nie ma modelu powiązanego z kontrolą." #~ msgid "Owner not initialized." #~ msgstr "Właściciel niezainicjowany." #~ msgid "Passed item is invalid." #~ msgstr "Ostatni element jest nieprawidłowy." #~ msgid "Passing a already registered object to SetObjectName" #~ msgstr "Przekazano już zarejestrowany obiekt do funkcji SetObjectName" #~ msgid "Preparing help window..." #~ msgstr "Przygotowanie okna pomocy..." #~ msgid "Program aborted." #~ msgstr "Program przerwany." #~ msgid "Referenced object node with ref=\"%s\" not found!" #~ msgstr "Nie znalezione węzła obiektu, do którego odwołuje się ref=\"%s\"!" #~ msgid "Resource files must have same version number!" #~ msgstr "Pliki zasobów muszę mieć zgodny numer wersji!" #~ msgid "SHIFT-JIS" #~ msgstr "SHIFT-JIS" #~ msgid "Search!" #~ msgstr "Szukaj!" #~ msgid "Sorry, could not open this file for saving." #~ msgstr "Niestety nie można otworzyć tego pliku do zapisu." #~ msgid "Sorry, could not save this file." #~ msgstr "Niestety nie można zapisać tego pliku." #~ msgid "Sorry, print preview needs a printer to be installed." #~ msgstr "Niestety, podgląd wydruku wymaga zainstalowania drukarki." #~ msgid "Status: " #~ msgstr "Status: " #~ msgid "" #~ "Streaming delegates for not already streamed objects not yet supported" #~ msgstr "" #~ "Delegacja w strumieniu dlaobiektu który nie jest już w strumieniu nie " #~ "jest jeszcze wspierana" #~ msgid "Subclass '%s' not found for resource '%s', not subclassing!" #~ msgstr "Nie znaleziono podklasy '%s' dla zasobu '%s', bez podklas!" #~ msgid "TIFF library error." #~ msgstr "Błąd biblioteki TIFF." #~ msgid "TIFF library warning." #~ msgstr "Ostrzeżenie biblioteki TIFF." #~ msgid "" #~ "The file '%s' couldn't be opened.\n" #~ "It has been removed from the most recently used files list." #~ msgstr "" #~ "Nie można otworzyć pliku '%s'.\n" #~ "Informacja o nim została usunięta z listy ostatnio używanych plików." #~ msgid "The path '%s' contains too many \"..\"!" #~ msgstr "Ścieżka '%s' zawiera za dużo \"..\"!" #~ msgid "Trying to solve a NULL hostname: giving up" #~ msgstr "próba użycia niezdefiniowej (NULL) nazwy serwera: rezygnacja" #~ msgid "Unknown style flag " #~ msgstr "Nieznana flaga stylu" #~ msgid "Warning" #~ msgstr "Ostrzeżenie" #~ msgid "Windows 2000 (build %lu" #~ msgstr "Windows 2000 (kompilacja %lu" #~ msgid "XRC resource '%s' (class '%s') not found!" #~ msgstr "Nie znaleziono zasobu XRC '%s' (klasa '%s')!" #~ msgid "XRC resource: Cannot create animation from '%s'." #~ msgstr "Zasoby XRC: Nie można utworzyć animacji z '%s'." #~ msgid "XRC resource: Cannot create bitmap from '%s'." #~ msgstr "Zasoby XRC: Nie można utworzyć mapy bitowej z '%s'." #~ msgid "" #~ "XRC resource: Incorrect colour specification '%s' for attribute '%s'." #~ msgstr "" #~ "Zasoby XRC: Nieprawidłowa specyfikacja koloru '%s' dla atrybutu '%s'." #~ msgid "[EMPTY]" #~ msgstr "[PUSTY]" # catalog file --> ? # domain --> ? #~ msgid "catalog file for domain '%s' not found." #~ msgstr "Nie znaleziono pliku katalogowego dla domeny '%s'." #~ msgid "delegate has no type info" #~ msgstr "brak informacji o delegowanym typie" #~ msgid "encoding %i" #~ msgstr "kodowanie %i" # w ścieżce - nieładne #~ msgid "looking for catalog '%s' in path '%s'." #~ msgstr "szukanie katalogu '%s' w ścieżce '%s'." #~ msgid "m_peer is not or incorrectly initialized" #~ msgstr "m_peer nie jest lub nieprawidłowo zainicjowany" #~ msgid "wxRichTextFontPage" #~ msgstr "wxRichTextFontPage" #~ msgid "wxSearchEngine::LookFor must be called before scanning!" #~ msgstr "wxSearchEngine::LookFor musi być wywołane przed skanowaniem!" #~ msgid "wxSocket: invalid signature in ReadMsg." #~ msgstr "wxSocket: błędna sygnatura w ReadMsg." #~ msgid "wxSocket: unknown event!." #~ msgstr "wxSocket: nieznane zdarzenie!" #~ msgid "|<<" #~ msgstr "|<<" #~ msgid "\t%s: %s\n" #~ msgstr "\t%s: %s\n" #, fuzzy #~ msgid " Couldn't create the UnicodeConverter" #~ msgstr "Nie można utworzyć stopera" #~ msgid "#define %s must be an integer." #~ msgstr "#define %s musi być liczbą całkowitą." #~ msgid "%s not a bitmap resource specification." #~ msgstr "%s nie jest specyfikacją zasobu mapy bitowej." #~ msgid "%s not an icon resource specification." #~ msgstr "%s nie jest specyfikacją zasobu ikony." #~ msgid "%s: ill-formed resource file syntax." #~ msgstr "%s: błędna składnia pliku zasobu." #~ msgid "&Open" #~ msgstr "&Otwórz" #~ msgid "&Print" #~ msgstr "&Drukuj" #~ msgid "*** A debug report has been generated\n" #~ msgstr "*** Raport błędów został wygenerowany\n" #~ msgid "*** It can be found in \"%s\"\n" #~ msgstr "*** Znajduje się w \"%s\"\n" #~ msgid "" #~ ", expected static, #include or #define\n" #~ "while parsing resource." #~ msgstr "" #~ ", oczekiwano static, #include or #define\n" #~ "podczas przetwarzania zasobu." #~ msgid "Bitmap resource specification %s not found." #~ msgstr "Nie znaleziono specyfikacji %s zasobu mapy bitowej." #~ msgid "" #~ "Could not resolve control class or id '%s'. Use (non-zero) integer " #~ "instead\n" #~ " or provide #define (see manual for caveats)" #~ msgstr "" #~ "Nie rozpoznano klasy lub identyfikatora '%s'. Użyj (niezerową) liczbę " #~ "całkowitą \n" #~ " lub #define (szukaj szczegółów w dokumentacji)" #~ msgid "" #~ "Could not resolve menu id '%s'. Use (non-zero) integer instead\n" #~ "or provide #define (see manual for caveats)" #~ msgstr "" #~ "Nie rozpoznano identyfikatora menu '%s'. Użyj (niezerową) liczbę " #~ "całkowitą \n" #~ " lub #define (szukaj szczegółów w dokumentacji)" #, fuzzy #~ msgid "Couldn't end the context on the overlay window" #~ msgstr "Nie można pobrać wskaźnika aktualnego wątku" #~ msgid "Expected '*' while parsing resource." #~ msgstr "Przetwarzając zasób oczekiwano '*'." #~ msgid "Expected '=' while parsing resource." #~ msgstr "Przetwarzając zasób oczekiwano '='." #~ msgid "Expected 'char' while parsing resource." #~ msgstr "Przetwarzając zasób oczekiwano 'char'." #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "Brak zasobu XBM %s.\n" #~ "Nie wywołano wxResourceLoadBitmapData?" #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadIconData?" #~ msgstr "" #~ "Brak zasobu XBM %s.\n" #~ "Nie wywołano wxResourceLoadIconData?" #~ msgid "" #~ "Failed to find XPM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "Brak zasobu XBM %s.\n" #~ "Nie wywołano wxResourceLoadBitmapData?" #~ msgid "Failed to get clipboard data." #~ msgstr "Nie udało się pobrać danych ze schowka." # shared -->? #~ msgid "Failed to load shared library '%s' Error '%s'" #~ msgstr "Nie udało się wczytać biblioteki '%s': błąd '%s'" #~ msgid "Found " #~ msgstr "Znaleziono " #~ msgid "Icon resource specification %s not found." #~ msgstr "Specyfikacja zasobu ikony %s nie znaleziona." #~ msgid "Ill-formed resource file syntax." #~ msgstr "Błędna składnia pliku zasobu" #~ msgid "Long Conversions not supported" #~ msgstr "Konwersja typu 'Long' nie jest wspierana." #~ msgid "No XPM icon facility available!" #~ msgstr "Brak wsparcia dla ikon XPM!" #~ msgid "Option '%s' requires a value, '=' expected." #~ msgstr "Opcja '%s' wymaga wartości, oczekiwane: '='." #, fuzzy #~ msgid "Select all" #~ msgstr "&Zaznacz wszystko" #~ msgid "String conversions not supported" #~ msgstr "Konwersja tekstu nie jest wspierana" #~ msgid "Unexpected end of file while parsing resource." #~ msgstr "Nieoczekiwany koniec pliku podczas przetwarzania zasobu." #~ msgid "Unrecognized style %s while parsing resource." #~ msgstr "Nierozpoznany styl %s podczas przetwarzania zasobu." #~ msgid "Video Output" #~ msgstr "Wyjście Video" #~ msgid "Warning: attempt to remove HTML tag handler from empty stack." #~ msgstr "" #~ "Ostrzeżenie: próba usunięcia procedury obsługi znacznika HTML z pustego " #~ "stosu." # ustalić? ustanowić? #~ msgid "establish" #~ msgstr "nawiązać" #~ msgid "initiate" #~ msgstr "zainicjować" #~ msgid "invalid eof() return value." #~ msgstr "błędna wartość znacznika końca pliku." #~ msgid "unknown line terminator" #~ msgstr "nieznany znacznik końca linii" #~ msgid "writing" #~ msgstr "zapisu" #~ msgid "." #~ msgstr "." #~ msgid "Cannot open URL '%s'" #~ msgstr "Nie można otworzyć URL '%s'" #~ msgid "Error " #~ msgstr "Błąd " #~ msgid "Failed to create directory %s/.gnome." #~ msgstr "Nie udało się utworzyć katalogu %s/.gnome" #~ msgid "Failed to create directory %s/mime-info." #~ msgstr "Nie udało się utworzyć katalogu %s/mime-info." #~ msgid "MP Thread Support is not available on this System" #~ msgstr "MP Thread Support jest niedostępny w tym systemie" #~ msgid "Mailcap file %s, line %d: incomplete entry ignored." #~ msgstr "Plik mailcap %s, linia %d: zignorowano niekompletny wpis." #~ msgid "Mime.types file %s, line %d: unterminated quoted string." #~ msgstr "Plik typów mime %s, linia %d: brak zamykającego cudzysłowu." #~ msgid "Unknown field in file %s, line %d: '%s'." #~ msgstr "Nieznane pole w pliku %s, linia %d: '%s'." #~ msgid "bold " #~ msgstr "pogrubiony " #~ msgid "can't query for GUI plugins name in console applications" #~ msgstr "" #~ "nie można pobierać nazw wtyczek interfejsu graficznego w aplikacji " #~ "przeznaczonej dla trybu tekstowego" #~ msgid "light " #~ msgstr "lekki " #~ msgid "underlined " #~ msgstr "podkreślony " #~ msgid "unsupported zip archive" #~ msgstr "niewspierane archiwum zip" #, fuzzy #~ msgid "" #~ "Failed to get stack backtrace:\n" #~ "%s" #~ msgstr "Nie udało się usyskać listy ISP: %s" #~ msgid "Loading Grey Ascii PNM image is not yet implemented." #~ msgstr "Ładowanie obrazów Grey Ascii PNM nie jest jeszcze zaimplementowane." #~ msgid "Loading Grey Raw PNM image is not yet implemented." #~ msgstr "Ładowanie obrazów Grey Raw PNM nie jest jeszcze zaimplementowane." #, fuzzy #~ msgid "Cannot wait on thread to exit." #~ msgstr "Nie można czekać na zakończenie wątku" #~ msgid "Could not load Rich Edit DLL '%s'" #~ msgstr "Nie można wczytać biblioteki Rich Edit '%s'" #~ msgid "ZIP handler currently supports only local files!" #~ msgstr "Obsługiwane są tylko lokalne pliki ZIP!" #, fuzzy #~ msgid "" #~ "can't seek on file descriptor %d, large files support is not enabled." #~ msgstr "nie można ustawić pozycji w deskryptorze pliku %d" #~ msgid "More..." #~ msgstr "Więcej..." #~ msgid "Setup" #~ msgstr "Ustawienia" #~ msgid "/#SYSTEM" #~ msgstr "/#SYSTEM" #~ msgid "Backward" #~ msgstr "Wstecz" #~ msgid "GetUnusedColour:: No Unused Color in image " #~ msgstr "Brak wolnych kolorów w obrazie (GetUnusedColour)" ginkgocadx-3.8.7/cadxcore/lang/pt/000077500000000000000000000000001314736454600170205ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/pt/cadxcore.mo000066400000000000000000000432371314736454600211560ustar00rootroot00000000000000QQ/SI<1)#[#6< 3J4~:  (5: ?M\t   (5*`dfw         'G^w~  +3  =^ci   %& FQe u  /GP_r#6?W n| 8    #8 =KPV^ s      9 Q k  $  '   !'#! K!Y!r!!1! !2!#";"R"=l"#"""#+ #Q6## # ###=# $B&$i$$$$$$$"$1%"G%'j%%%%%% &&)& .& 8&D&X&m&u&|&& &&&&&& & &'' /'9' I'T'"d'&''H'%(@5(%v(A(T(%3)Y) r)G)G)*P/** *+4+:+J+SO+f-F .BQ..;.1.!/=/Y/@r//9/9 09E0G00 0 0001 11%171!T1v11111 11 112 222 2)26+2b2f2h22 2 2 2 2 2 2 2 22233 33.373W3w33 333333 44549O4444)44 4444 5$555>5 G5 T5$`5"5 55 5556(6H6g6}6 66666 6667'7A7Q7e77777&78$8 68@8F8]8=n888 8 8 889 99 9&9.9 C9Q9Y9h9y999 999999 :0:J:b:z:0::.: ;";%<;b;s;;;5;;;;%;<a<z<?<'<<=,=.2=Fa== = ===Q> Z>Yf>>>>? ? ?(%?*N?3y???#?'@6@U@o@@@ @ @@@@@@A"A1A:A IATAeA uAAAA AAAA+B-2B`BRB%BQB%JCQpCVC$D&>DeD]wD`D'6ER^EEnFFFFzyS6.(0i*l-fLCv9"7{m,W\OJTVte>X5!uEjkp]H?w@4 $ocQF#Bb<Irx=[;^ an`N Ag%/MK1Y&hs |3R)Z8U +:P_d}qDG'2~ - If you want to use SSL/TLS you have to set a valid certificate and private key - Maximum length of local AET is 16 characters - The PDU size should be greater than or equal to zero (default = 16384) - The local port is too large - The local port must be a positive short integer (16 bits) - The maximum length of the AET is 16 characters - The maximum value of the PDU is - The minimum value of the PDU is - The port is too large - The port must be a positive short integer (16 bits) - This PACS id is in use There are %d errors (see log for more detailed description) . Modality does not exists in model: Add it first. . SOP Class does not exists in model: Add it first. . Transfer Syntax does not exists in model: Add it first. : bytes from a total of doesn't exist from History? not allowed of to to Modality to SOP Class unsupported components with transfer syntax %d results has been found%m/%d/%Y%m/%d/%Y %H:%M:%S%m/%d/%Y 00:00:00&Accept&Cancel&Close&Close all&Delete from history&Edit&End&Exit&Help&Next >)): Check the configuration and attach it if necessary.../0 running tasks.00/00/0000 00:00:001x1 Layout1x2 Layout2x1 Layout2x2 Layout3x3 Layout4x4 Layout644654645< &Previous@AETAcceptAccession NumberAccession numberAcquireAcquire a DICOM study from PACSAcquire from DICOM DirAcquire images from PACSActiveAddAdvanced Configuration ...Advanced settings...AgeAnonymizationAnonymizeAny dateApplyAre you sure to delete this file from disk?Are you sure you want to cancel the import process?Are you sure you want to delete AreaArrowAutomatically check for updatesB/WB/W InverseBackBetween:CairoCalibrating...Calibration value is too lowCancelCardiacCentimetersCertificateCertificate to use in this connectionCertificate used by Ginkgo CADxChange ...Change Password ...Change passwordCheck UpdatesCheck for newest versionsCheck for updatesCheck for updates automaticallyCheck update errorChoose a directoryClearClear logCloseClose Ginkgo CADxClose all windowsClose this notificationCommentsConfigure GridConfigure Grid ...Configure locationConfiguring environment ...Confirm PasswordConfirm removalConfirm the removal of the nodeConfirm the removal of the profile Connection test failConnection test successfulContinueCould not write to fileCreating Thumbnails...Creation DateCreditsDCMTKDICOM (native format)DICOM DirDICOM Dir is the local directory where history is storedDICOM ExportDICOM InspectorDICOM NodeDICOM NodesDICOM nodesDICOM nodes settingsDataData modifiedDateDate:DefaultDefault ORU templateDefault valueDeleteDelete WidgetDelete messageDelete selected itemsDemographic dataEditEdit ...Edit MessageEdit UserEdit public keyErrorError connecting to urlError creating database: Error deleting messagesError downloading study: Error editing messageError getting messageError loading DICOM Conformance fileError loading studyError loading study insufficient memoryError loading study.Error loading study: Error loading the study: Internal ErrorError messageError reading history: Error reading the study:Error reading the study: Error reading the study: unsupported pixel formatError savingError sending HL7 message see log for more detailsError sending message. It was sent Error sending message:Error setting TLS layer: Error storing file, check the permissions over the directory.Error uploading the study to PACS: Error validating fieldsError while running thread: Error:Error: PACS entry configuration not found: Errors have occurred when saving the series. Would you like to continue closing? Exploring drives...Export imagesExtensionsExtensions settingsExtracting file...Failed to empty the history, you have to close opened studiesFull screenGinkgo CADx must restart for the extensions changes to take effectGinkgo CADx private tagsGinkgo CADx restrictionsIdentificator *InactiveInternal ErrorInternal errorInternal error checking updatesInternal error during auth processInternal error reading the study, unknown format Internal error reading the study: Internal error while reading the study:Internal error while running thread: Invalid DICOM Conformance fileMax number of tabs openedModality download errorNo results foundOnline supportOpenOpen FileOpen SeriesOpen Series with ..Open Source LicensesOpen...OpenGLOpenSSLOverview data of DICOM filesPACS error: PDU (KB)Proxy settingsResultsReuse connectionServer settingsShow GridShow MessageShow corner annotationsShow full screenShow gridShow on startupStart pageTest connectionThe pdu size is not a valid numberThe selected directory can't be openedThere are this errors: There was an error changing the password. To get more info open the LOG.There was an error creating directoryThere was an error deleting user. To get more info open the LOG.There was an error during exportationThere was an error inserting user. To get more info open the LOG.There was an error reading the directory, make sure you have write permissions on itThis files doesn't have DICOM format:Unable to open modality Unknown errorWarning, to update the directory, you have to close every opened seriesWarning, to update the directory, you must close current opened series.You can't remove opened seriesYou have reached maximum number of opened tabs, close some tabs and try it againYou must configure the local AET, which is used to communicate with the PACS server. The specified port must be opened in the firewall, as it is essential for transfers.all fileserrorimage_%m-%d-%Y_loadProject-Id-Version: ginkgocadx Report-Msgid-Bugs-To: POT-Creation-Date: 2014-06-11 15:51+0100 PO-Revision-Date: 2014-06-11 15:51+0100 Last-Translator: Carlos Barrales Ruiz Language-Team: Brazilian Portuguese Language: pt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 1.6.5 X-Launchpad-Export-Date: 2012-04-24 11:40+0000 X-Poedit-Basepath: . X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,296,-1,-1 X-Poedit-KeywordsList: _;_Std X-Poedit-SourceCharset: utf-8 X-Poedit-SearchPath-0: ..\.. Se você deseja utilizar SSL/TLS, você terá que informar um certificado válido e uma chave privada A quantidade máxima de caracteres para AET local é de 16 caracteres O tamanho do PDU deve ser maior ou igual a zero (padrão = 16384) A porta local é muito grande A porta local deve ser um inteiro curto positivo (16 bits) O comprimento máximo do AET é de 16 caracteres O valor máximo do PDU é O valor mínimo do PDU é A porta é muito grande O número da porta deve ser um inteiro positivo curto (16 bits) Este ID de PACS está em uso Existem %d erros (veja o log para descrição detalhada) . Modalidade não existe no modelo: Adicione-a primeiro. . Classe SOP não existe no modelo: Adicione-a primeiro. . Sintaxe de transferência não exite no modelo: Adicione-a primeiro. : bytes de não existe from History? não é permitido de para para a modalidade para classe SOP componentes não suportados com a sintaxe de transferência %d resultados foram encontrados%d/%m/%Y%d/%m/%Y %H:%M:%S%d/%m/%Y 00:00:00&Aceitar&Cancelar&Fechar&Fechar todos&Deletar do histórico&Editar&Fim&Sair&Ajuda&Próximo >)): Verifique a configuração e anexe-a se necessário.../0 tarefas sendo executadas.00/00/0000 00:00:001x1 Layout1x2 LayoutPlano 2x1Plano 2x2Plano 3x3Plano 4x4644654645< &Anterior@AETAceitarNumero de AcessoNumero de AcessoAdquirirAcquire a DICOM study from PACSAdquirir de um diretório DICOMAdquirir imagens de um PACSAtivoAdicionarConfiguração avançada ...Configurações avançadas...IdadeAnonimizaçãoDeixar anônimoQualquer dataAplicarTem certeza que deseja deletar este arquivo do disco?Tem certeza que quer cancelar o processo de importação?Tem certeza que deseja excluir ÁreaSetaChecar por atualizações automaticamenteP/BP/B InversoVoltarEntre:CairoCalibrando...Valor de calibração é muito baixoCancelarCardiacoCentímetrosCertificadoCertificado para usar nessa conexãoCertificado usado pelo Ginkgo CADxAlterar ...Alterar senha ...Alterar senhaVerificar AtualizaçõesVerificar novas versõesVerificar AtualizaçõesVerificar atualizações automaticamenteErro verificando atualizaçãoEscolha um diretórioLimparLimpar logFecharFechar Ginkgo CADxFechar todas as janelasFechar esta notificaçãoComentáriosConfigurar GradeConfigurar Grade ...Configurar localizaçãoConfigurando ambiente ...Confirmar SenhaConfirmar remoçãoConfirm the removal of the nodeConfirmar remoção do perfil Falha na conexão de testeConexão de teste bem sucedidaAvançarNão foi possível escrever no arquivoCriando Thumbnails...Data de criaçãoCréditosDCMTKDICOM (formato nativo)Diretório DICOMO diretório DICOM é o local onde o histórico é armazenadoExportar DICOMDICOM InspectorDICOM NodeDICOM NodesDICOM nodesDICOM nodes settingsDadosDados modificadosDataData:PadrãoDefault ORU templateValor padrãoExcluirExcluir WidgetExcluir mensagemExcluir itens selecionadosDados demográficosEditarEditar ...Editar MensagemEditar UsuárioEditar chave públicaErroErro ao conectar-se a urlErro ao criar o banco de dados: Erro ao deletar mensagensErro ao baixar estudo: Erro ao editar mensagemErro ao obter mensagemErro ao carregar o arquivo de Conformidade DICOMErro ao carregar estudoErro ao carregar estudo. Memória insuficienteErro ao carregar estudo.Erro ao carregar estudo: Erro ao carregar estudo: Erro InternoMensagem de erroErro ao ler histórico: Erro ao ler o estudo:Erro ao ler o estudo: Erro ao ler o estudo: Formato de pixel não suportadoErro ao salvarErro ao enviar mensagem HL7. Veja log para maiores detalhesErro ao enviar mensagem. Foi enviada Erro ao enviar mensagem:Erro ao configurar TLS: Erro ao armazenar arquivo, verifique permissões do diretório.Erro ao carregar o estudo para o PACS: Error validating fieldsErro ao rodar a thread: Erro:Erro: Configuração do PACS não encontrada: Erros ocorreram ao salvar as séries. Gostaria de fechar mesmo assim? Exploring drives...Export imagesExtençõesConfigurações das extensõesExtracting file...Não foi possível esvaziar o histórico, você precisa fechar os estudos abertosFull screenGinkgo CADx precisa ser reiniciado para que as alterações nas extensões surtam efeito.Ginkgo CADx private tagsGinkgo CADx restrictionsIdentificator *InactiveErro InternoErro internoErro interno ao verificar atualizaçõesErro interno no processo de autenticaçãoErro interno ao ler o estudo, formato desconhecido Erro interno ao ler o estudo: Erro interno ao ler o estudo:Erro interno ao executar a thread: Arquivo de conformidade DICOM inválidoNúmero máximo de abas abertoErro ao baixar modalidadeNenhum resultado encontradoOnline supportAbrirAbrir arquivoAbrir SériesAbrir Séries com ..Licenças de Código AbertoAbrir...OpenGLOpenSSLOverview data of DICOM filesErro do PACS: PDU (KB)Proxy settingsResultadosReuse connectionServer settingsMostrar GradeMostrar MensagemMostrar anotações de cantoExibir em tela cheiaMostrar gradeExibir ao iniciarPágina inicialTest connectionO tamanho do PDU não é um número válidoO diretório selecionado não pode ser abertoOcorreram os seguintes erros: Ocorreu um erro ao alterar a sua senha. Para obter mais informações, abra o log.Ocorreu um erro ao criar o diretórioOcorreu um erro ao remover o usuário. Para obter mais informações, abra o log.There was an error during exportationOcorreu um erro ao inserir o usuário. Para obter mais informações, abra o log.Ocorreu um erro ao acessar o diretório, verifique se você tem acesso de escrita neleEste arquivo não tem formato DICOM:Não foi possível abrir a modalidade Erro desconhecidoAviso, para atualizar o conteúdo do diretório você precisa fechar todas as séries abertasAviso, para atualizar o conteúdo do diretório você precisa fechar séries abertas no momento.Você não pode remover séries abertasVocê alcançou o número máximo de abas abertas, feche algumas e tente novamenteVocê precisa configurar o AET local, o qual é usado para se comunicar com o servidor PACS. A porta especificada precisa ser aberta no firewall, já que é essencial para transferências.todos os arquivoserroimagem_%d-%m-%Y_carregarginkgocadx-3.8.7/cadxcore/lang/pt/cadxcore.po000066400000000000000000006376521314736454600211730ustar00rootroot00000000000000# Portuguese translation for ginkgocadx # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the ginkgocadx package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: ginkgocadx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-06-11 15:51+0100\n" "PO-Revision-Date: 2014-06-11 15:51+0100\n" "Last-Translator: Carlos Barrales Ruiz \n" "Language-Team: Brazilian Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" "X-Launchpad-Export-Date: 2012-04-24 11:40+0000\n" "X-Poedit-Basepath: .\n" "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,296,-1,-1\n" "X-Poedit-KeywordsList: _;_Std\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SearchPath-0: ..\\..\n" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "P/B" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "P/B Inverso" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "Cardiaco" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Red Vessels" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "Hot Metal" msgstr "Tema Metal" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Green" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "GE Color" msgstr "Cor" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PET" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "P-Value" msgstr "Valor padrão" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "" #: ..\../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #: ..\../api/dicom/idicomconformance.cpp:214 #: ..\../api/dicom/idicomconformance.cpp:220 #, fuzzy msgid "GIL/DICOM/Conformance" msgstr "Arquivo de conformidade DICOM inválido" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #, fuzzy msgid "Unable to add supported transfer syntax " msgstr " . Sintaxe de transferência não exite no modelo: Adicione-a primeiro." #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid " to SOP Class " msgstr " para classe SOP " #: ..\../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr " . Sintaxe de transferência não exite no modelo: Adicione-a primeiro." #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr " . Classe SOP não existe no modelo: Adicione-a primeiro." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #, fuzzy msgid "Unable to add supported SOP Class " msgstr " . Classe SOP não existe no modelo: Adicione-a primeiro." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid " to Modality " msgstr " para a modalidade " #: ..\../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr " . Modalidade não existe no modelo: Adicione-a primeiro." #: ..\../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "Erro ao carregar o arquivo de Conformidade DICOM" #: ..\../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "Arquivo de conformidade DICOM inválido" #: ..\../api/iannotator.cpp:97 msgid "Slice" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "of" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "Volume" msgstr "" #: ..\../api/iannotator.cpp:107 msgid "Voxel:" msgstr "" #: ..\../api/iannotator.cpp:110 msgid "Image without metric information" msgstr "" #: ..\../api/iannotator.cpp:119 msgid "Slice thickness" msgstr "" #: ..\../api/iannotator.cpp:127 #, fuzzy msgid "Slice location" msgstr "Configurar localização" #: ..\../api/iannotator.cpp:139 msgid "Scale" msgstr "" #: ..\../api/iannotator.cpp:147 #, fuzzy msgid "Right" msgstr "Di&reita" #: ..\../api/iannotator.cpp:149 #, fuzzy msgid "Left" msgstr "&Esquerda" #: ..\../api/iannotator.cpp:219 #, fuzzy msgid "Position:" msgstr "A posição de tabulação." #: ..\../api/iannotator.cpp:272 #, fuzzy msgid "Value:" msgstr "Valor padrão" #: ..\../api/iexception.cpp:52 msgid "Exception in component" msgstr "" #: ..\../api/initwx.cpp:439 #, fuzzy msgid "Initializing environment ..." msgstr "Configurando ambiente ..." #: ..\../api/initwx.cpp:446 ..\../api/initwx.cpp:447 ..\../api/initwx.cpp:448 #: ..\../api/initwx.cpp:449 ..\../api/initwx.cpp:450 ..\../api/initwx.cpp:451 #: ..\../api/initwx.cpp:452 ..\../api/initwx.cpp:453 msgid "Ginkgo CADx restrictions" msgstr "Ginkgo CADx restrictions" #: ..\../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "" #: ..\../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "" #: ..\../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "Número máximo de abas aberto" #: ..\../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "" #: ..\../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "" #: ..\../api/initwx.cpp:451 msgid "Export images" msgstr "Export images" #: ..\../api/initwx.cpp:452 #, fuzzy msgid "Acquire DICOM files" msgstr "Adquirir de um diretório DICOM" #: ..\../api/initwx.cpp:453 #, fuzzy msgid "Import files to DICOM format" msgstr "Este arquivo não tem formato DICOM:" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 #, fuzzy msgid "Online manual" msgstr "Online support" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 #, fuzzy msgid "URL of manual" msgstr "Erro ao conectar-se a url" #: ..\../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "" #: ..\../api/initwx.cpp:459 msgid "Online support" msgstr "Online support" #: ..\../api/initwx.cpp:459 #, fuzzy msgid "URL of online support" msgstr "Online support" #: ..\../api/initwx.cpp:459 #, fuzzy msgid "http://ginkgo-cadx.com/" msgstr "Ginkgo CADx restrictions" #: ..\../api/initwx.cpp:460 ..\../api/initwx.cpp:461 #, fuzzy msgid "Program Updates" msgstr "Verificando atualizações para o programa..." #: ..\../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "" #: ..\../api/initwx.cpp:461 #, fuzzy msgid "Update period (days)" msgstr "Marcar para adicionar um ponto a seguir ao marcador." #: ..\../api/initwx.cpp:462 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "" #: ..\../api/initwx.cpp:462 #, fuzzy msgid "Setup Security" msgstr "Configurar..." #: ..\../api/initwx.cpp:463 msgid "Show on startup" msgstr "Exibir ao iniciar" #: ..\../api/initwx.cpp:463 #, fuzzy msgid "Show on startup default value" msgstr "Exibir ao iniciar" #: ..\../api/initwx.cpp:465 ..\../api/initwx.cpp:466 #: ..\../main/gui/history3/historypanel3.cpp:328 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "" #: ..\../api/initwx.cpp:465 #, fuzzy msgid "Settings menu" msgstr "MENU" #: ..\../api/initwx.cpp:466 #, fuzzy msgid "License menu" msgstr "MENU" #: ..\../api/initwx.cpp:467 ..\../api/initwx.cpp:468 ..\../api/initwx.cpp:469 #: ..\../api/initwx.cpp:470 ..\../api/initwx.cpp:471 ..\../api/initwx.cpp:472 #: ..\../api/initwx.cpp:473 ..\../api/initwx.cpp:474 #, fuzzy msgid "PACS Limits" msgstr "Adquirir imagens de um PACS" #: ..\../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "" #: ..\../api/initwx.cpp:468 #, fuzzy msgid "Upload images to a PACS server" msgstr "Adquirir imagens de um PACS" #: ..\../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "Adquirir imagens de um PACS" #: ..\../api/initwx.cpp:470 #, fuzzy msgid "Enable remote PACS configuration" msgstr "Erro: Configuração do PACS não encontrada: " #: ..\../api/initwx.cpp:471 #, fuzzy msgid "Enable TLS configuration" msgstr "Erro ao configurar TLS: " #: ..\../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "" #: ..\../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "" #: ..\../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "" #: ..\../api/initwx.cpp:475 ..\../api/initwx.cpp:476 ..\../api/initwx.cpp:477 #: ..\../api/initwx.cpp:478 ..\../api/initwx.cpp:479 ..\../api/initwx.cpp:480 #, fuzzy msgid "Import" msgstr "Tem certeza que quer cancelar o processo de importação?" #: ..\../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "" #: ..\../api/initwx.cpp:476 #, fuzzy msgid "Show accession number input" msgstr "Numero de Acesso" #: ..\../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "" #: ..\../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" #: ..\../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "" #: ..\../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "" #: ..\../api/initwx.cpp:482 msgid "HL7 Service" msgstr "" #: ..\../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "" #: ..\../api/initwx.cpp:483 ..\../api/initwx.cpp:484 ..\../api/initwx.cpp:485 msgid "XML dicomization" msgstr "" #: ..\../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "" #: ..\../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "" #: ..\../api/initwx.cpp:485 msgid "Default ORU template" msgstr "Default ORU template" #: ..\../api/initwx.cpp:488 ..\../api/initwx.cpp:489 ..\../api/initwx.cpp:491 #: ..\../api/initwx.cpp:493 ..\../api/initwx.cpp:494 ..\../api/initwx.cpp:495 #: ..\../api/initwx.cpp:496 ..\../api/initwx.cpp:498 #, fuzzy msgid "Style" msgstr "E&stilo:" #: ..\../api/initwx.cpp:503 #, fuzzy, c-format msgid "Download %s images" msgstr "Export images" #: ..\../api/initwx.cpp:504 ..\../api/initwx.cpp:508 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:21 #, fuzzy msgid "PACS" msgstr "Adquirir imagens de um PACS" #: ..\../api/initwx.cpp:507 #, fuzzy msgid "Download all modalities" msgstr "Todos" #: ..\../api/initwx.cpp:510 msgid "OpenGL" msgstr "OpenGL" #: ..\../api/initwx.cpp:510 msgid "Enable shaders" msgstr "" #: ..\../api/initwx.cpp:513 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:388 #, fuzzy msgid "Ginkgo Cloud" msgstr "Ginkgo CADx restrictions" #: ..\../api/initwx.cpp:513 msgid "Download from Ginkgo Cloud" msgstr "" #: ..\../api/initwx.cpp:560 #, fuzzy msgid "Tools loading base ..." msgstr "A Abrir : " #: ..\../api/initwx.cpp:562 msgid "Starting tools..." msgstr "" #: ..\../api/initwx.cpp:566 #, fuzzy msgid "Loading plugins ..." msgstr "A Abrir : " #: ..\../api/initwx.cpp:580 msgid "Unable to start GinkgoCADx:\n" msgstr "" #: ..\../api/initwx.cpp:580 ..\../api/initwx.cpp:621 msgid "error" msgstr "erro" #: ..\../api/initwx.cpp:584 #, fuzzy msgid "Loading resources ..." msgstr "A Abrir : " #: ..\../api/initwx.cpp:587 msgid "Starting services..." msgstr "" #: ..\../api/initwx.cpp:601 msgid "Configuring environment ..." msgstr "Configurando ambiente ..." #: ..\../api/initwx.cpp:621 #, fuzzy msgid "Failed to set permissions:\n" msgstr "Falha ao definir permissões do ficheiro temporário" #: ..\../api/initwx.cpp:634 msgid "Updating ..." msgstr "" #: ..\../api/initwx.cpp:638 msgid "Interpreting parameters ..." msgstr "" #: ..\../api/initwx.cpp:689 #, fuzzy msgid "Error unregistering tools: " msgstr "Erro: " #: ..\../api/initwx.cpp:769 msgid "Starting" msgstr "" #: ..\../api/ivista.cpp:36 ..\../commands/comandocarga.cpp:73 #, fuzzy msgid "Loading..." msgstr "A Abrir : " #: ..\../api/iwidgets.cpp:268 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ..\../main/gui/import/pasosimportacionbase.cpp:151 #, fuzzy msgid "Name" msgstr "Nome" #: ..\../api/iwidgets.cpp:285 msgid "Area" msgstr "Área" #: ..\../api/iwidgets.cpp:302 msgid "Perimeter" msgstr "" #: ..\../api/iwidgets.cpp:316 #, fuzzy msgid "Travel (I)" msgstr "%i de %i" #: ..\../api/iwidgets.cpp:326 msgid "Travel (M)" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #: ..\../api/threads/thread.cpp:120 msgid "Threading" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid "Error while running thread: " msgstr "Erro ao rodar a thread: " #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid " : " msgstr " : " #: ..\../api/threads/thread.cpp:120 msgid "Internal error while running thread: " msgstr "Erro interno ao executar a thread: " #: ..\../api/widgetserializable.cpp:60 msgid "Creation Date" msgstr "Data de criação" #: ..\../api/widgetserializable.cpp:65 #, fuzzy msgid "Modification Date" msgstr "data" #: ..\../api/widgetserializable.cpp:68 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ..\../wx/gnkinforme/gnkinformebase.cpp:40 msgid "Physician" msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:55 #: ..\../commands/pacsdownloadcommand.cpp:88 #: ..\../commands/synchronizationcommand.cpp:70 #, fuzzy msgid "Downloading files ..." msgstr "Ficheiros" #: ..\../commands/acquirefromurlcommand.cpp:69 #: ..\../commands/synchronizationcommand.cpp:91 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, c-format msgid "Downloading file %d" msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:81 #, fuzzy msgid "Error downloading file: " msgstr "Erro ao baixar estudo: " #: ..\../commands/acquirefromurlcommand.cpp:95 #: ..\../commands/pacsdownloadcommand.cpp:114 #: ..\../commands/synchronizationcommand.cpp:121 msgid "Internal Error" msgstr "Erro Interno" #: ..\../commands/acquirefromurlcommand.cpp:115 #, fuzzy msgid "Error downloading files: " msgstr "Erro ao baixar estudo: " #: ..\../commands/autocleaningcommand.cpp:62 msgid "Cleaning dicomdir..." msgstr "" #: ..\../commands/cloudcommand.cpp:67 #, fuzzy msgid "Downloading files..." msgstr "Ficheiros" #: ..\../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "" #: ..\../commands/cloudcommand.cpp:183 #, fuzzy msgid "Unknown operation" msgstr "Operação não permitida." #: ..\../commands/cloudcommand.cpp:188 msgid "Error in cloud operation. See log to get more details..." msgstr "" #: ..\../commands/cloudcommand.cpp:249 #, fuzzy msgid "Could to retrieve study." msgstr "Não foi possível localizar a tabulação para o id" #: ..\../commands/cloudcommand.cpp:260 ..\../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" #: ..\../commands/cloudcommand.cpp:262 #, fuzzy msgid "Error retrieving study." msgstr "Erro ao carregar estudo: Erro Interno" #: ..\../commands/cloudcommand.cpp:271 #, fuzzy msgid "Study successfully retrieved." msgstr "Erro ao carregar estudo: " #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "Speed" msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "bytes/sec during" msgstr " bytes de " #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "seconds" msgstr "" #: ..\../commands/cloudcommand.cpp:275 #, fuzzy msgid "Empty Response" msgstr "[VAZIO]" #: ..\../commands/cloudcommand.cpp:289 #, fuzzy msgid "Extracting files..." msgstr "Extracting file..." #: ..\../commands/cloudcommand.cpp:313 ..\../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "" #: ..\../commands/cloudcommand.cpp:383 #, fuzzy msgid "Could to perform query." msgstr "Não foi possível localizar a tabulação para o id" #: ..\../commands/cloudcommand.cpp:396 #, fuzzy msgid "Error perfoming the query." msgstr "Erro: " #: ..\../commands/cloudcommand.cpp:405 msgid "Query successfully performed." msgstr "" #: ..\../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "" #: ..\../commands/cloudcommand.cpp:472 #, fuzzy msgid "Unknown JSon attribute:" msgstr "Desconhecido" #: ..\../commands/cloudcommand.cpp:482 msgid "Error parsing JSon: " msgstr "" #: ..\../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "" #: ..\../commands/cloudcommand.cpp:515 #: ..\../commands/openremovableunit.cpp:148 ..\../main/gui/open/abrir.cpp:119 #: ..\../main/gui/open/abrir.cpp:159 ..\../main/gui/open/opendialogs.cpp:146 msgid "Storing in the history..." msgstr "" #: ..\../commands/comandoactualizaciones.cpp:46 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:536 msgid "Check Updates" msgstr "Verificar Atualizações" #: ..\../commands/comandoactualizaciones.cpp:136 #, fuzzy msgid "Not enough parameters found on XML" msgstr "Create Parameter não encontrado nos Parâmetros RTTI declarados" #: ..\../commands/comandoactualizaciones.cpp:145 #, fuzzy msgid "XML parsing internal error" msgstr "XML erro de verificação gramatical: '%s' na linha %d" #: ..\../commands/comandoactualizaciones.cpp:156 #, fuzzy msgid "Error checking application updates" msgstr "Erro interno ao verificar atualizações" #: ..\../commands/comandoactualizaciones.cpp:156 #, fuzzy msgid "Ginkgo CADx updates" msgstr "Ginkgo CADx restrictions" #: ..\../commands/comandoactualizaciones.cpp:170 msgid "Internal error checking updates" msgstr "Erro interno ao verificar atualizações" #: ..\../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "" #: ..\../commands/comandocarga.cpp:92 ..\../commands/comandocarga.cpp:96 #, fuzzy msgid "Exception loading:" msgstr "A Abrir : " #: ..\../commands/comandocarga.cpp:100 msgid "Study malformed or unsupported" msgstr "" #: ..\../commands/comandocarga.cpp:129 ..\../commands/comandocarga.cpp:139 msgid "Error loading study: " msgstr "Erro ao carregar estudo: " #: ..\../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "Erro ao carregar estudo. Memória insuficiente" #: ..\../commands/comandocarga.cpp:144 msgid "Error loading study." msgstr "Erro ao carregar estudo." #: ..\../commands/comandocarga.cpp:149 #, fuzzy msgid "Load canceled by user" msgstr "carregar" #: ..\../commands/comandocarga.cpp:156 #: ..\../main/gui/history3/historypanel3.cpp:1056 #: ..\../main/gui/history3/historypanel3.cpp:1063 #: ..\../main/gui/history3/historypanel3.cpp:1068 msgid "Error loading study" msgstr "Erro ao carregar estudo" #: ..\../commands/comandoexportacion.cpp:81 #: ..\../commands/exporttodicomdircommand.cpp:214 #, fuzzy msgid "Exporting files..." msgstr "Ficheiros" #: ..\../commands/comandoexportacion.cpp:105 #: ..\../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "" #: ..\../commands/comandoexportacion.cpp:158 #, fuzzy, c-format msgid "Exporting file %d of %d" msgstr "impossível fechar o descritor do ficheiro %d" #: ..\../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "Erro ao armazenar arquivo, verifique permissões do diretório." #: ..\../commands/comandoexportacion.cpp:233 msgid "image_%m-%d-%Y_" msgstr "imagem_%d-%m-%Y_" #: ..\../commands/comandoincluirhistorial.cpp:108 #, fuzzy msgid "Exploring directory ..." msgstr "Exploring drives..." #: ..\../commands/comandoincluirhistorial.cpp:122 #, fuzzy msgid "Reading DICOMDIR ..." msgstr "a ler" #: ..\../commands/comandoincluirhistorial.cpp:142 #: ..\../commands/comandoincluirhistorial.cpp:156 #: ..\../commands/comandoincluirhistorial.cpp:177 #, fuzzy msgid "Including files in the history .." msgstr "Ficheiros" #: ..\../commands/comandoincluirhistorial.cpp:196 #, fuzzy msgid "Exploring directory " msgstr "Exploring drives..." #: ..\../commands/comandoincluirhistorial.cpp:256 #: ..\../commands/linkhistorycommand.cpp:118 #, fuzzy msgid "Image acquisition finished." msgstr "imagem" #: ..\../commands/comandoincluirhistorial.cpp:258 #, c-format msgid "There have been included %d images." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:261 #: ..\../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" "\n" "Existem %d erros (veja o log para descrição detalhada)" #: ..\../commands/comandoincluirhistorial.cpp:273 #: ..\../commands/linkhistorycommand.cpp:133 #, fuzzy msgid "This files doesn't exist:" msgstr " não existe" #: ..\../commands/comandoincluirhistorial.cpp:284 #: ..\../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "Este arquivo não tem formato DICOM:" #: ..\../commands/comandoincluirhistorial.cpp:296 #: ..\../commands/linkhistorycommand.cpp:156 #, fuzzy msgid "This files are Dicom Dirs:" msgstr "Overview data of DICOM files" #: ..\../commands/comandopacs.cpp:58 ..\../commands/pacsdownloadcommand.cpp:61 #: ..\../commands/sendpacscommand.cpp:137 msgid "There is not any Remote PACS configured" msgstr "" #: ..\../commands/comandopacs.cpp:84 #, fuzzy msgid "Querying PACS ..." msgstr "Adquirir imagens de um PACS" #: ..\../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "" #: ..\../commands/comandopacs.cpp:98 #, fuzzy msgid "Starting Search ..." msgstr "Procurar" #: ..\../commands/comandopacs.cpp:108 #: ..\../commands/pacsdownloadcommand.cpp:101 #, fuzzy msgid "Server ID not found. ID = " msgstr "" #: ..\../commands/comandopacs.cpp:110 ..\../commands/comandopacs.cpp:112 #: ..\../commands/comandopacs.cpp:114 ..\../commands/comandopacs.cpp:116 #, fuzzy msgid "Query error with PACS Id " msgstr "" "\n" "Este ID de PACS está em uso" #: ..\../commands/comandopacs.cpp:116 #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/gui/history3/historypanel3.cpp:1068 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error" msgstr "Erro interno" #: ..\../commands/comandopacs.cpp:135 #, fuzzy msgid "Failed to perform search: " msgstr "Procurar" #: ..\../commands/dbmigrationcommand.cpp:94 #: ..\../commands/dbmigrationcommand.cpp:103 #, fuzzy msgid "Migrating old DICOM Dir ..." msgstr "Diretório DICOM" #: ..\../commands/dbmigrationcommand.cpp:99 #: ..\../commands/dbmigrationcommand.cpp:108 #, fuzzy msgid "Including files ..." msgstr "Ficheiros" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 #: ..\../commands/dicomizecommand.cpp:181 #: ..\../commands/openremovableunit.cpp:74 #: ..\../commands/openremovableunit.cpp:110 #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../commands/pdfextractercommand.cpp:130 #: ..\../main/controllers/historycontroller.cpp:447 #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 #: ..\../main/controllers/historycontroller.cpp:1976 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ..\../main/gui/export/parametrosprincipales.cpp:161 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 #: ..\../main/gui/history3/historypanel3.cpp:1045 #: ..\../main/gui/history3/historypanel3.cpp:1078 #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1119 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 #: ..\../main/gui/import/selectimagesimportation.cpp:141 #: ..\../main/gui/import/selectimagesimportation.cpp:342 #: ..\../main/gui/import/selectimagesimportation.cpp:743 #: ..\../main/gui/import/selectimagesimportation.cpp:761 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ..\../main/gui/login/dialogologin.cpp:50 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ..\../main/gui/open/opendialogs.cpp:58 #: ..\../main/gui/open/opendialogs.cpp:62 #: ..\../main/gui/open/opendialogs.cpp:134 #: ..\../main/gui/progress/statusbarprogreso.cpp:284 #: ..\../main/gui/progress/statusbarprogreso.cpp:287 #: ..\../main/gui/progress/statusbarprogreso.cpp:292 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #: ..\../main/gui/history3/openwithdialog.h:72 #, fuzzy msgid "Info" msgstr "delegado não tem informação de tipo" #: ..\../commands/dbmigrationcommand.cpp:123 msgid "Migration finisthed successfully" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:27 #: ..\../commands/dialogopathssobreescribirbase.cpp:62 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 #, fuzzy msgid "Overwrite" msgstr "Não foi possível sobrepor o ficheiro '%s'" #: ..\../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:65 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ..\../main/gui/history3/historypanel3base.cpp:339 #: ..\../main/gui/history3/historypanel3base.cpp:415 #: ..\../main/gui/history3/historypanel3base.cpp:486 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ..\../main/gui/open/opendialogsbase.cpp:53 #: ..\../main/gui/open/opendialogsbase.cpp:131 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ..\../widgets/gui/calibracionbase.cpp:86 #: ..\../widgets/gui/selecciontextobase.cpp:60 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "Cancelar" #: ..\../commands/dicomizationcompletebase.cpp:24 #: ..\../commands/dicomizationcompletebase.cpp:33 #: ..\../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:56 #, fuzzy msgid "Don't show this message again" msgstr "Mostrar Mensagem" #: ..\../commands/dicomizationcompletebase.cpp:62 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ..\../main/gui/history3/historypanel3base.cpp:411 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ..\../widgets/gui/calibracionbase.cpp:82 #: ..\../widgets/gui/selecciontextobase.cpp:56 msgid "Accept" msgstr "Aceitar" #: ..\../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "" #: ..\../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "" #: ..\../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "" #: ..\../commands/dicomizecommand.cpp:179 #, fuzzy msgid "Import process failed:" msgstr "Falha no encerramento do processo %d" #: ..\../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" #: ..\../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "" #: ..\../commands/dicomizecommand.cpp:370 #, fuzzy msgid "Unknown error in dicomization process" msgstr "erro desconhecido" #: ..\../commands/dicomizecommand.cpp:431 #: ..\../commands/dicomizecommand.cpp:442 #: ..\../commands/sendpacscommand.cpp:185 #, fuzzy msgid "Error sending evidences:" msgstr "Erro ao enviar mensagem:" #: ..\../commands/dicomizecommand.cpp:437 #: ..\../commands/dicomizecommand.cpp:448 #, fuzzy msgid "Can not upload to the PACS:\n" msgstr "" "\n" "Este ID de PACS está em uso" #: ..\../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:261 #: ..\../commands/exporttodicomdircommand.cpp:338 #, fuzzy, c-format msgid "Exporting series %d of %d" msgstr "Página %d de %d" #: ..\../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:279 #: ..\../commands/exporttodicomdircommand.cpp:385 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/export/parametrosprincipales.cpp:167 msgid "There was an error creating directory" msgstr "Ocorreu um erro ao criar o diretório" #: ..\../commands/exporttodicomdircommand.cpp:303 #: ..\../commands/exporttodicomdircommand.cpp:408 #, fuzzy msgid "There was an error writing file" msgstr "ICO: Erro a escrever ficheiro de imagem!" #: ..\../commands/exporttodicomdircommand.cpp:358 msgid "There was an error anonymizing files" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:355 #, fuzzy msgid "Ignoring incoming operation " msgstr "Operação não permitida." #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:298 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:473 #: ..\../commands/pacsdownloadcommand.cpp:170 #: ..\../commands/pacsdownloadcommand.cpp:179 #, fuzzy msgid "Including files..." msgstr "Ficheiros" #: ..\../commands/linkhistorycommand.cpp:68 #, fuzzy msgid "Linking study..." msgstr "Erro ao carregar estudo: " #: ..\../commands/openremovableunit.cpp:42 #: ..\../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "Exploring drives..." #: ..\../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" #: ..\../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" #: ..\../commands/openremovableunit.cpp:130 msgid "Select drive you want to open" msgstr "" #: ..\../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" #: ..\../commands/pacsdownloadcommand.cpp:134 msgid "Error downloading study: " msgstr "Erro ao baixar estudo: " #: ..\../commands/pdfextractercommand.cpp:103 msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "" #: ..\../commands/pdfextractercommand.cpp:103 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ..\../main/gui/progress/statusbarprogreso.cpp:278 #: ..\../widgets/gui/calibracion.cpp:205 ..\../widgets/gui/calibracion.cpp:209 #: ..\../widgets/gui/calibracion.cpp:219 ..\../widgets/gui/calibracion.cpp:225 #: ..\../widgets/gui/calibracion.cpp:229 msgid "Error" msgstr "Erro" #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "" #: ..\../commands/pdfextractercommand.cpp:130 msgid "PDF files extracted successfully..." msgstr "" #: ..\../commands/secondarycapturedicomizecommand.cpp:73 #, fuzzy msgid "Ginkgo CADx Secondary Capture" msgstr "Ginkgo CADx restrictions" #: ..\../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "" #: ..\../commands/sendhl7command.cpp:73 #, fuzzy msgid "Message successfully sent" msgstr "Erro ao enviar mensagem. Foi enviada " #: ..\../commands/sendhl7command.cpp:77 #, fuzzy msgid "Unknown protocol" msgstr "Desconhecido" #: ..\../commands/sendhl7command.cpp:80 ..\../commands/sendhl7command.cpp:93 #: ..\../commands/sendhl7command.cpp:145 msgid "Error sending message:" msgstr "Erro ao enviar mensagem:" #: ..\../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "Erro ao enviar mensagem HL7. Veja log para maiores detalhes" #: ..\../commands/sendhl7command.cpp:93 ..\../commands/sendhl7command.cpp:94 msgid "Unknown error" msgstr "Erro desconhecido" #: ..\../commands/sendhl7command.cpp:134 #, fuzzy msgid "Failed to start connection" msgstr "Falha ao %s a ligação telefónica: %s" #: ..\../commands/sendhl7command.cpp:148 msgid "Error sending message. It was sent " msgstr "Erro ao enviar mensagem. Foi enviada " #: ..\../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr " bytes de " #: ..\../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "" #: ..\../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "" #: ..\../commands/sendhl7command.cpp:258 #, fuzzy msgid "Failed delivery confirmation:" msgstr "Falha no fork" #: ..\../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "" #: ..\../commands/sendpacscommand.cpp:51 #, fuzzy msgid "Send files to PACS" msgstr "Ficheiros" #: ..\../commands/sendpacscommand.cpp:155 #, fuzzy msgid "Uploading files ..." msgstr "Erro ao carregar o estudo para o PACS: " #: ..\../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "Erro: Configuração do PACS não encontrada: " #: ..\../commands/sendpacscommand.cpp:181 msgid "Error:" msgstr "Erro:" #: ..\../commands/sendpacscommand.cpp:189 msgid "Error sending evidences: Internal error." msgstr "" #: ..\../commands/sendpacscommand.cpp:203 msgid "Error uploading the study to PACS: " msgstr "Erro ao carregar o estudo para o PACS: " #: ..\../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" #: ..\../commands/sendpacscommand.cpp:206 #, fuzzy msgid "Retry send to PACS" msgstr "Falha ao enviar aviso de notificação DDE" #: ..\../commands/synchronizationcommand.cpp:104 #, fuzzy msgid "Error downloading file" msgstr "Erro ao baixar estudo: " #: ..\../commands/synchronizationcommand.cpp:141 #, fuzzy msgid "Error synchronizing study: " msgstr "Erro ao carregar estudo: Erro Interno" #: ..\../commands/thumbnailscommand.cpp:107 #: ..\../commands/thumbnailscommand.cpp:133 #: ..\../commands/thumbnailscommand.cpp:247 #: ..\../commands/thumbnailscommand.cpp:376 #: ..\../commands/thumbnailscommand.cpp:382 #: ..\../main/gui/import/selectimagesimportation.cpp:504 #, fuzzy msgid "Creating Thumbnail..." msgstr "Criando Thumbnails..." #: ..\../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "" #: ..\../export/tools/iaddfiletohistorytool.cpp:19 #: ..\../main/gui/history3/historypanel3.cpp:632 #, fuzzy msgid "Open study" msgstr "&Abrir" #: ..\../export/tools/iangletool.cpp:19 msgid "Angle \tCtrl+A" msgstr "" #: ..\../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "" #: ..\../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "" #: ..\../export/tools/icolormaptool.cpp:20 #, fuzzy msgid "Color Map" msgstr "BMP: Impossível escrever mapa de cores RGB." #: ..\../export/tools/icopyimagetoclipboardtool.cpp:19 #: ..\../main/gui/open/opendialogsbase.cpp:46 #: ..\../main/gui/open/opendialogsbase.cpp:198 #, fuzzy msgid "Copy" msgstr "&Copiar" #: ..\../export/tools/icornerannotationstool.cpp:20 #, fuzzy msgid "Window annotations" msgstr "&Janela" #: ..\../export/tools/idetachwindowtool.cpp:19 #, fuzzy msgid "Detach window" msgstr "&Janela" #: ..\../export/tools/iimageexporttool.cpp:19 #, fuzzy msgid "Export image..." msgstr "imagem" #: ..\../export/tools/imarkertool.cpp:20 msgid "Marking Tools \tCtrl+M" msgstr "" #: ..\../export/tools/imetricgridtool.cpp:20 #, fuzzy msgid "Metric grid" msgstr "Grid organization" #: ..\../export/tools/inotetool.cpp:19 msgid "Text Note \tCtrl+N" msgstr "" #: ..\../export/tools/ipacsuploadtool.cpp:19 msgid "Upload study..." msgstr "" #: ..\../export/tools/ipixelsbluringtool.cpp:20 msgid "Pixels blurring" msgstr "" #: ..\../export/tools/ipointertool.cpp:19 msgid "Pointer \tEsc" msgstr "" #: ..\../export/tools/iqueryretrievetool.cpp:19 #: ..\../main/tools/queryretrievehistorytool.cpp:25 #: ..\../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "Acquire a DICOM study from PACS" #: ..\../export/tools/iresettool.cpp:19 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 msgid "Reset" msgstr "" #: ..\../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "" #: ..\../export/tools/iruletool.cpp:19 msgid "Rule \tCtrl+R" msgstr "" #: ..\../export/tools/isecondarycapturetool.cpp:19 msgid "Save snapshot as new series..." msgstr "" #: ..\../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "" #: ..\../export/tools/ishowtagstool.cpp:19 #: ..\../main/tools/showtagshistorytool.cpp:27 #, fuzzy msgid "DICOM inspector" msgstr "DICOM Inspector" #: ..\../export/tools/isimpleprinttool.cpp:19 #: ..\../main/tools/simpleprinttool.cpp:226 #, fuzzy msgid "Print" msgstr "&Imprimir" #: ..\../export/tools/istartdicomizationtool.cpp:19 msgid "Dicomize..." msgstr "" #: ..\../export/tools/itoolpan.cpp:19 msgid "Pan \tCtrl+P" msgstr "" #: ..\../export/tools/itoolslider.cpp:19 #, fuzzy msgid "Slider \tCtrl+S" msgstr "%s (ou %s)" #: ..\../export/tools/itoolwindowlevel.cpp:19 msgid "Window/Level \tCtrl+W" msgstr "" #: ..\../export/tools/itoolzoom.cpp:19 #, fuzzy msgid "Zoom \tCtrl+O" msgstr "Ampl&iar" #: ..\../export/tools/itrackballtool.cpp:19 #, fuzzy msgid "Trackball \tCtrl+T" msgstr "\t%s: %s\n" #: ..\../export/tools/iundotool.cpp:20 ..\../main/tools/undotool.cpp:109 #, fuzzy msgid "Undo" msgstr "&Desfazer" #: ..\../export/tools/ivideotool.cpp:19 #, fuzzy msgid "Video \tCtrl+Space" msgstr "SPACE" #: ..\../export/tools/iwindowlayouttool.cpp:20 #, fuzzy msgid "Window layout" msgstr "&Janela" #: ..\../main/controllers/controladorcarga.cpp:161 #, fuzzy msgid "Studies with" msgstr "" "Não foi possível esvaziar o histórico, você precisa fechar os estudos abertos" #: ..\../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr " componentes não suportados" #: ..\../main/controllers/controladorcarga.cpp:210 #, fuzzy msgid "Reading properties" msgstr "&Propriedades" #: ..\../main/controllers/controladorcarga.cpp:219 #: ..\../main/controllers/controladorcarga.cpp:642 #: ..\../main/controllers/controladorcarga.cpp:888 #: ..\../main/controllers/streaming/streamingloader.cpp:600 msgid "Error reading the study: " msgstr "Erro ao ler o estudo: " #: ..\../main/controllers/controladorcarga.cpp:224 #: ..\../main/controllers/controladorcarga.cpp:229 #: ..\../main/controllers/controladorcarga.cpp:647 #: ..\../main/controllers/controladorcarga.cpp:893 msgid "Internal error reading the study: " msgstr "Erro interno ao ler o estudo: " #: ..\../main/controllers/controladorcarga.cpp:269 #: ..\../main/controllers/controladorcarga.cpp:281 #: ..\../main/controllers/controladorcarga.cpp:905 #, fuzzy msgid "Spacing is not valid: (" msgstr "Espaçamento" #: ..\../main/controllers/controladorcarga.cpp:305 #: ..\../main/controllers/controladorcarga.cpp:338 #: ..\../main/controllers/controladorcarga.cpp:372 #: ..\../main/controllers/controladorcarga.cpp:408 #: ..\../main/controllers/controladorcarga.cpp:441 #: ..\../main/controllers/controladorcarga.cpp:474 #: ..\../main/controllers/controladorcarga.cpp:507 #: ..\../main/controllers/controladorcarga.cpp:540 #: ..\../main/controllers/controladorcarga.cpp:573 #: ..\../main/controllers/controladorcarga.cpp:606 #: ..\../main/controllers/controladorcarga.cpp:935 #, fuzzy msgid "Error loading the study: Out of memory" msgstr "Erro ao carregar estudo. Memória insuficiente" #: ..\../main/controllers/controladorcarga.cpp:375 msgid "Error loading the study: Internal Error" msgstr "Erro ao carregar estudo: Erro Interno" #: ..\../main/controllers/controladorcarga.cpp:630 #: ..\../main/controllers/streaming/streamingloader.cpp:1023 #: ..\../main/controllers/streaming/streamingloader.cpp:1223 #: ..\../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "Erro ao ler o estudo: Formato de pixel não suportado" #: ..\../main/controllers/controladorcarga.cpp:651 #: ..\../main/controllers/controladorcarga.cpp:960 #, fuzzy msgid "Process canceled by user." msgstr "Falha no encerramento do processo %d" #: ..\../main/controllers/controladorcarga.cpp:878 #, fuzzy msgid "Interpreting properties" msgstr "&Propriedades" #: ..\../main/controllers/controladorcarga.cpp:917 #, fuzzy msgid "Spacing of the image is invalid: (" msgstr "Índice inválido para imagem TIFF." #: ..\../main/controllers/controladorcarga.cpp:942 #, fuzzy msgid "Reading dataset" msgstr "a ler" #: ..\../main/controllers/controladorcarga.cpp:951 msgid "Error reading the study:" msgstr "Erro ao ler o estudo:" #: ..\../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "Erro interno ao ler o estudo:" #: ..\../main/controllers/controladorcarga.cpp:972 msgid "load" msgstr "carregar" #: ..\../main/controllers/controladorenviohl7.cpp:40 msgid "Stopping HL7 sender" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:63 #: ..\../main/controllers/controladorenviohl7.cpp:76 msgid "Error starting HL7 sender" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:65 #: ..\../main/controllers/controladorenviohl7.cpp:78 msgid "HL7 sender started" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:108 msgid "HL7 controller destroyed" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:150 #, fuzzy msgid "Error processing message" msgstr "Mensagem de erro" #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/controllers/pacscontroller.cpp:1549 #: ..\../main/controllers/pacscontroller.cpp:1553 #: ..\../main/controllers/pacscontroller.cpp:1557 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ..\../main/gui/import/pasosimportacionbase.cpp:195 #: ..\../wx/gnkinforme/gnkinformebase.cpp:184 #, fuzzy msgid "Unknown" msgstr "Desconhecido" #: ..\../main/controllers/controladorextensiones.cpp:110 #, fuzzy msgid "Loading" msgstr "A Abrir : " #: ..\../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:153 #, fuzzy msgid "Could not find entry point" msgstr "Não foi possível localizar a tabulação para o id" #: ..\../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:74 msgid "Integration engine hostname not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:77 msgid "Integration engine port not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:91 #, fuzzy msgid "Unsupported protocol" msgstr " componentes não suportados" #: ..\../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "" #: ..\../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "%d resultados foram encontrados" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, fuzzy, c-format msgid "Downloading file %d/%d" msgstr "impossível fechar o descritor do ficheiro %d" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:359 #, fuzzy msgid "Image format not supported" msgstr "PCX: formato de imagem não suportado" #: ..\../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "Erro ao configurar TLS: " #: ..\../main/controllers/dcmtk/dicomservice.cpp:200 #, fuzzy msgid "Receiving Association failed: " msgstr "Falha no fork" #: ..\../main/controllers/dcmtk/dicomservice.cpp:209 msgid "Association received" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:210 #, fuzzy msgid "Parameters:" msgstr "Create Parameter não encontrado nos Parâmetros RTTI declarados" #: ..\../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr ")" #: ..\../main/controllers/dcmtk/dicomservice.cpp:274 #, fuzzy msgid "No valid presentation contexts" msgstr "'%s' não é uma mensagem válida do catálogo." #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 #, fuzzy msgid "Association(dicom://" msgstr "DICOM nodes" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "@" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr " para " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, fuzzy, c-format msgid "Uploading file %d of %d" msgstr "impossível fechar o descritor do ficheiro %d" #: ..\../main/controllers/dicommanager.cpp:504 #: ..\../main/controllers/dicommanager.cpp:531 msgid "Extracting file..." msgstr "Extracting file..." #: ..\../main/controllers/historycontroller.cpp:323 #, fuzzy msgid "Error creating history database " msgstr "Erro ao criar o banco de dados:\n" #: ..\../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr "" #: ..\../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" #: ..\../main/controllers/historycontroller.cpp:343 #, fuzzy msgid "Error creating dicomDir database " msgstr "Erro ao criar o banco de dados:\n" #: ..\../main/controllers/historycontroller.cpp:425 #: ..\../main/controllers/historycontroller.cpp:441 #, fuzzy msgid "Error creating thumbnails database " msgstr "Erro ao criar o banco de dados:\n" #: ..\../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "Erro ao criar o banco de dados:\n" #: ..\../main/controllers/historycontroller.cpp:560 #, fuzzy msgid "Including image " msgstr "imagem" #: ..\../main/controllers/historycontroller.cpp:560 #: ..\../main/controllers/historycontroller.cpp:707 msgid " of " msgstr " de " #: ..\../main/controllers/historycontroller.cpp:707 #, fuzzy msgid "Linking image " msgstr "imagem" #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "Erro ao ler histórico: \n" #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "" #: ..\../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:493 #, fuzzy msgid "Malformed template Id (" msgstr "XPM: Dados de pixeis mal formados!" #: ..\../main/controllers/integrationcontroller.cpp:493 #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:540 #, fuzzy msgid "Template Id unsupported (" msgstr " componentes não suportados" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "" "):\n" "Verifique a configuração e anexe-a se necessário" #: ..\../main/controllers/integrationcontroller.cpp:566 #, fuzzy msgid "Unknown module Id (" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:592 #, fuzzy msgid "Empty configuration" msgstr "[VAZIO]" #: ..\../main/controllers/integrationcontroller.cpp:631 msgid "XML Parser Not Found. Key=" msgstr "" #: ..\../main/controllers/log4cplus/guiappender.cpp:75 #, fuzzy msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "%d/%m/%Y %H:%M:%S" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ..\../main/gui/history3/historypanel3base.cpp:48 #: ..\../main/gui/import/pasosimportacionbase.cpp:227 msgid "Patient" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #, fuzzy msgid "Patient ID" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:86 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ..\../main/gui/history3/historypanel3.cpp:227 #: ..\../main/gui/open/opendialogs.cpp:50 #, fuzzy msgid "Modality" msgstr " para a modalidade " #: ..\../main/controllers/modalitysettingscontroller.cpp:98 msgid "Dimensions" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:109 #, fuzzy, c-format msgid "Made with %s" msgstr "%s (ou %s)" #: ..\../main/controllers/modalitysettingscontroller.cpp:167 #: ..\../main/controllers/modalitysettingscontroller.cpp:338 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "Padrão" #: ..\../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1212 #, fuzzy msgid "Downloading file" msgstr "&Ficheiro" #: ..\../main/controllers/pacscontroller.cpp:1318 #, fuzzy msgid "Error downloading WADO file" msgstr "Erro ao baixar estudo: " #: ..\../main/controllers/pacscontroller.cpp:1318 #, fuzzy msgid "Check PACS configuration" msgstr "Erro: Configuração do PACS não encontrada: " #: ..\../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1428 #, fuzzy msgid "Invalid HTTP response" msgstr "'%s' é inválido" #: ..\../main/controllers/pacscontroller.cpp:1433 #, fuzzy msgid "Invalid HTTP code" msgstr "Código de &Caracter:" #: ..\../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1472 #, fuzzy msgid "PACS-Service" msgstr "Adquirir imagens de um PACS" #: ..\../main/controllers/parserxmlenglish.cpp:97 #: ..\../main/controllers/parserxmlspanish.cpp:94 #, fuzzy msgid "Omitted Identificator" msgstr "Identificator *" #: ..\../main/controllers/parserxmlenglish.cpp:105 #: ..\../main/controllers/parserxmlspanish.cpp:102 #, fuzzy msgid "Omitted AET" msgstr "AET" #: ..\../main/controllers/parserxmlenglish.cpp:113 #: ..\../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:121 #: ..\../main/controllers/parserxmlspanish.cpp:118 #, fuzzy msgid "Omitted port" msgstr "" "\n" "A porta é muito grande" #: ..\../main/controllers/parserxmlenglish.cpp:206 #: ..\../main/controllers/parserxmlenglish.cpp:237 #: ..\../main/controllers/parserxmlspanish.cpp:188 #: ..\../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "O tamanho do PDU não é um número válido" #: ..\../main/controllers/parserxmlenglish.cpp:212 #: ..\../main/controllers/parserxmlspanish.cpp:194 #, fuzzy msgid "Port is not a valid number" msgstr "O tamanho do PDU não é um número válido" #: ..\../main/controllers/parserxmlenglish.cpp:248 #: ..\../main/controllers/parserxmlspanish.cpp:228 #, fuzzy msgid "The port is not a valid number" msgstr "O tamanho do PDU não é um número válido" #: ..\../main/controllers/parserxmlenglish.cpp:265 #: ..\../main/controllers/parserxmlspanish.cpp:246 #, fuzzy msgid "Setting not found" msgstr "Encontrado " #: ..\../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:391 msgid "\"code\" attribute expected at \"patient\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:427 msgid "\"code\" attribute expected at \"physician\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:434 msgid "\"value\" attribute expected at \"physician\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:445 msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:483 msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:548 #: ..\../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:552 #: ..\../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:570 #: ..\../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:340 msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:402 msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:438 msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:445 msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:486 msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:524 msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:559 #, fuzzy msgid "id_application expected" msgstr "" #: ..\../main/controllers/smartretrievecontroller.cpp:124 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:920 #, fuzzy msgid "Downloading from PACS..." msgstr "Adquirir imagens de um PACS" #: ..\../main/controllers/streaming/streamingloader.cpp:303 #: ..\../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" #: ..\../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "Erro interno ao ler o estudo, formato desconhecido " #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ..\../main/gui/history3/historytablemodel.cpp:403 #: ..\../main/gui/history3/historytablemodel.cpp:415 #: ..\../main/gui/history3/historytablemodel.cpp:470 #: ..\../main/gui/history3/historytablemodel.cpp:482 #: ..\../main/gui/open/dicomdirtablemodel.cpp:102 #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "%d/%m/%Y %H:%M:%S" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "%d/%m/%Y 00:00:00" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 #, fuzzy msgid "Exploring PACS..." msgstr "Exploring drives..." #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ..\../main/gui/history3/historypanel3.cpp:225 #: ..\../main/gui/open/opendialogs.cpp:49 #, fuzzy msgid "Patient id" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ..\../main/gui/history3/historypanel3.cpp:224 #: ..\../main/gui/open/opendialogs.cpp:48 #, fuzzy msgid "Patient name" msgstr "Nome" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:479 msgid "Study Instance UID" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ..\../main/gui/history3/historypanel3.cpp:231 #: ..\../main/gui/open/opendialogs.cpp:53 msgid "Accession number" msgstr "Numero de Acesso" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:481 #, fuzzy msgid "Study date" msgstr "data" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:482 #, fuzzy msgid "Study time" msgstr "Tempo passado : " #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:490 #, fuzzy msgid "Series Instance UID" msgstr "Abrir Séries" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:492 #, fuzzy msgid "Series date" msgstr "data" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:493 #, fuzzy msgid "Series time" msgstr "Tempo passado : " #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:519 msgid "No results found" msgstr "Nenhum resultado encontrado" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #, fuzzy msgid "Write query name" msgstr "Nome" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 msgid "This query name is in use, do you want to overwrite it?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 #, fuzzy msgid "Id" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 #, fuzzy msgid "Date Time" msgstr "data" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ..\../main/gui/history3/historypanel3.cpp:229 #: ..\../main/gui/import/pasosimportacionbase.cpp:298 #: ..\../main/gui/import/pasosimportacionbase.cpp:340 #: ..\../main/gui/open/opendialogs.cpp:52 #, fuzzy msgid "Description" msgstr "descrição de contexto do processo" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ..\../main/gui/import/pasosimportacionbase.cpp:276 msgid "Accession Number" msgstr "Numero de Acesso" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:210 msgid "Store query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:211 #, fuzzy msgid "Remove query" msgstr "Remover" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:278 #, fuzzy msgid "There is no any PACS configured" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:54 #, fuzzy msgid "Study UID" msgstr "Erro ao carregar estudo: " #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 #, fuzzy msgid "Search" msgstr "Procurar" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:519 #, fuzzy msgid "Download series" msgstr "Abrir Séries" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 #, fuzzy msgid "Download study" msgstr "Erro ao baixar modalidade" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:535 #, fuzzy msgid "Link series" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:537 #, fuzzy msgid "Link study" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:551 #, fuzzy msgid "Properties..." msgstr "&Propriedades" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 msgid "You must specify at least a modality or a period of time" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #, fuzzy msgid "Select a valid query" msgstr "SELECT" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 msgid "Select a valid PACS Server" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 #, fuzzy msgid "Download of modality " msgstr "Erro ao baixar modalidade" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr " não é permitido" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "Modality download error" msgstr "Erro ao baixar modalidade" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:786 #, fuzzy msgid "search results" msgstr "Resultados" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:913 #, fuzzy msgid "Downloading serie..." msgstr "Erro ao baixar estudo: " #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:916 #, fuzzy msgid "Downloading study..." msgstr "Erro ao baixar estudo: " #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:165 #, fuzzy msgid "PACS acquisition is restricted" msgstr "Adquirir imagens de um PACS" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:96 #, fuzzy msgid "Server" msgstr "Server settings" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ..\../main/gui/import/pasosimportacionbase.cpp:284 #: ..\../main/gui/import/pasosimportacionbase.cpp:326 #: ..\../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "Data" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ..\../main/gui/history3/historypanel3base.cpp:81 msgid "Any date" msgstr "Qualquer data" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ..\../main/gui/history3/historypanel3base.cpp:85 #, fuzzy msgid "Today AM" msgstr "hoje" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ..\../main/gui/history3/historypanel3base.cpp:88 #, fuzzy msgid "Today PM" msgstr "hoje" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ..\../main/gui/history3/historypanel3base.cpp:91 #, fuzzy msgid "Today" msgstr "hoje" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ..\../main/gui/history3/historypanel3base.cpp:100 #, fuzzy msgid "Yesterday" msgstr "ontem" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ..\../main/gui/history3/historypanel3base.cpp:103 #, fuzzy msgid "Last 7 days" msgstr "Unicode 7 bit (UTF-7)" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ..\../main/gui/history3/historypanel3base.cpp:106 #, fuzzy msgid "Last 30 days" msgstr "Refazer última acção" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ..\../main/gui/history3/historypanel3base.cpp:109 #, fuzzy msgid "Last 3 months" msgstr "Refazer última acção" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ..\../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "Entre:" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ..\../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 msgid "Stored queries" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:216 #, fuzzy msgid "Select stored queries..." msgstr "SELECT" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ..\../main/gui/open/opendialogsbase.cpp:50 #: ..\../main/gui/open/opendialogsbase.cpp:202 #, fuzzy msgid "Link" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:289 #, fuzzy msgid "Download" msgstr "Erro ao baixar modalidade" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ..\../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "Fechar" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:329 #, fuzzy msgid "Series does not exist" msgstr ": ficheiro inexistente!" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "Avançar" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ..\../main/gui/open/opendialogsbase.cpp:127 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ..\../main/tools/metricgridtool.cpp:101 #, fuzzy msgid "Ok" msgstr "&OK" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:151 #, fuzzy msgid "Download again" msgstr "Erro ao baixar modalidade" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:441 msgid "Open" msgstr "Abrir" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:179 #, fuzzy msgid "Set query name" msgstr "Nome" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:32 msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:34 msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/anonymize/anonymizedialog.cpp:64 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ..\../main/gui/export/parametrosprincipales.cpp:194 #, fuzzy msgid "Exporting images ..." msgstr "Export images" #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:21 #, fuzzy msgid "Common tags" msgstr "Ginkgo CADx private tags" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 #, fuzzy msgid "Patient's name and surname" msgstr "Nome" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 #, fuzzy msgid "Patient Id" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "Comentários" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:44 #, fuzzy msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "Ginkgo CADx private tags" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:71 #, fuzzy msgid "Add new..." msgstr "Não pode adicionar um novo directório a esta secção." #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ..\../main/tools/anonymizetool.cpp:26 #: ..\../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "Deixar anônimo" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:136 #, fuzzy msgid "Create new" msgstr "Criar novo directório" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ..\../main/gui/anonymize/anonymizepanelbase.h:136 #, fuzzy msgid "Add DICOM tag" msgstr "ADICIONAR" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:199 #, fuzzy msgid "Group" msgstr "a entrada '%s' aparece mais do uma vez no grupo '%s'" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:203 #, fuzzy msgid "Element" msgstr "uma colecção não vazia deve consistir em nós de 'element'" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ..\../widgets/wangulo.cpp:1114 #, fuzzy msgid "Value" msgstr "Valor padrão" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 msgid "Top right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 msgid "Top left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 msgid "Bottom left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 msgid "Bottom right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 msgid "You must fill in all fields" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 msgid "Window/level label in use" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 #, fuzzy msgid "Window" msgstr "&Janela" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 #, fuzzy msgid "Level" msgstr "&Fonte para Nível..." #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 msgid "Do you confirm the removal of the preset?" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Data modified" msgstr "Dados modificados" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 #, fuzzy msgid "Modality settings" msgstr " para a modalidade " #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 #, fuzzy msgid "Default modality settings" msgstr " para a modalidade " #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, fuzzy, c-format msgid "%s settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:60 #, fuzzy msgid "settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 #, fuzzy msgid "Export Configuration" msgstr "Export images" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 #, fuzzy msgid "Ini Files(*.ini)|*.ini" msgstr "Não é possível apagar o ficheiro INI '%s'" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #, fuzzy msgid "Existing file" msgstr "Por favor escolha um ficheiro existente." #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #, fuzzy msgid "Export successfully completed" msgstr "Export images" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 msgid "There was an error during exportation" msgstr "There was an error during exportation" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 #, fuzzy msgid "Import Configuration" msgstr "Configuração avançada ..." #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 #, fuzzy msgid "Ini files(*.ini)|*.ini" msgstr "Não é possível apagar o ficheiro INI '%s'" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #, fuzzy msgid "There was an error during importation, check permissions" msgstr "Erro ao armazenar arquivo, verifique permissões do diretório." #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 msgid "Dicom tag" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 #, fuzzy msgid "Split horizontally..." msgstr "Dispor &Horizontalmente" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 #, fuzzy msgid "Split vertically..." msgstr "Dispor &Verticalmente" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ..\../main/tools/windowlayouttool.cpp:273 #, fuzzy msgid "Split active horizontally" msgstr "Ativo" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ..\../main/tools/windowlayouttool.cpp:274 #, fuzzy msgid "Split active vertically" msgstr "Ativo" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 #, fuzzy msgid "New hanging protocol" msgstr "&Novo" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, fuzzy, c-format msgid "Window %d" msgstr "&Janela" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "Ativo" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 #, fuzzy msgid "Yes" msgstr "&Sim" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 msgid "Hanging protocols" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 #, fuzzy msgid "One day" msgstr "Dica do Dia" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 msgid "Two days" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 msgid "Three days" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 msgid "Two weeks" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 msgid "One month" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 msgid "Three months" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 #, fuzzy msgid "Local database" msgstr "Erro ao criar o banco de dados:\n" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 msgid "Local DICOM Dir setup" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" "Ocorreu um erro ao acessar o diretório, verifique se você tem acesso de " "escrita nele" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 #, fuzzy msgid "Select DICOMDIR" msgstr "SELECT" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" "Aviso, para atualizar o conteúdo do diretório você precisa fechar séries " "abertas no momento." #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "Extenções" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:126 msgid "Extensions settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "" "Ginkgo CADx precisa ser reiniciado para que as alterações nas extensões " "surtam efeito." #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #, fuzzy msgid "Port has to be a valid number" msgstr "O tamanho do PDU não é um número válido" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:190 #, fuzzy msgid "General configuration parameters" msgstr "Configuração avançada ..." #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #, fuzzy msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "" "Ginkgo CADx precisa ser reiniciado para que as alterações nas extensões " "surtam efeito." #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:134 #, fuzzy msgid "Testing conectivity with the server..." msgstr "Server settings" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:144 msgid "Error connecting to url" msgstr "Erro ao conectar-se a url" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #, fuzzy msgid "hostname/port not set" msgstr "Não foi possível obter o nome de computador" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "Falha na conexão de teste" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "Conexão de teste bem sucedida" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 #, fuzzy msgid "Select certificate" msgstr "Certificado" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:255 msgid "Change ..." msgstr "Alterar ..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 #, fuzzy msgid "Import ..." msgstr "Tem certeza que quer cancelar o processo de importação?" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:279 #, fuzzy msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "" "\n" "Se você deseja utilizar SSL/TLS, você terá que informar um certificado " "válido e uma chave privada" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:472 msgid "There are this errors: " msgstr "Ocorreram os seguintes erros: " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" "\n" "Este ID de PACS está em uso" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" "\n" "O número da porta deve ser um inteiro positivo curto (16 bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" "\n" "A porta é muito grande" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" "\n" "O comprimento máximo do AET é de 16 caracteres" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" "\n" "O tamanho do PDU deve ser maior ou igual a zero (padrão = 16384)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" "\n" "O valor máximo do PDU é " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" "\n" "O valor mínimo do PDU é " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" "\n" "Se você deseja utilizar SSL/TLS, você terá que informar um certificado " "válido e uma chave privada" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:525 msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:558 #, fuzzy msgid "Testing the connection to the node ..." msgstr "DICOM Node" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:561 msgid "DICOM Error" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:607 msgid "The service did not respond correctly to the DICOM standard" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:616 #, fuzzy msgid "Invalid port number" msgstr "&Número:" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:622 #, fuzzy msgid "WADO Error" msgstr "Erro: " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:703 #, fuzzy msgid "Use by default" msgstr "pré-definição" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:795 msgid "DICOM nodes" msgstr "DICOM nodes" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:800 msgid "DICOM nodes settings" msgstr "DICOM nodes settings" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" "\n" "A porta local deve ser um inteiro curto positivo (16 bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" "\n" "A porta local é muito grande" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" "\n" "A quantidade máxima de caracteres para AET local é de 16 caracteres" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "Confirm the removal of the node" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1101 #, fuzzy msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Você precisa configurar o AET local, o qual é usado para se comunicar com o " "servidor PACS. A porta especificada precisa ser aberta no firewall, já que é " "essencial para transferências." #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ..\../main/gui/export/pasosexportacionbase.cpp:20 #, fuzzy msgid "Profile" msgstr "Confirmar remoção do perfil " #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "Valor padrão" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #, fuzzy msgid "Set property active" msgstr "Ativo" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "Inactive" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 #, fuzzy msgid "Set property inactive" msgstr "Inactive" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #, fuzzy msgid "Set default value" msgstr "Valor padrão" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:352 #, fuzzy msgid "Set by user" msgstr "Editar Usuário" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 msgid "Profile name can't be repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:498 #, fuzzy msgid "Profiles Settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #, fuzzy msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "" "Ginkgo CADx precisa ser reiniciado para que as alterações nas extensões " "surtam efeito." #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 msgid "Confirm the removal of the profile " msgstr "Confirmar remoção do perfil " #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:53 #, fuzzy msgid "New User" msgstr "&Novo" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #, fuzzy msgid "User name repeated" msgstr "Nome" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 msgid "Password has to contain at least 6 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:141 msgid "No login" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 #, fuzzy msgid "User/Password" msgstr "Alterar senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:224 #, fuzzy msgid "Password" msgstr "Alterar senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:191 #, fuzzy msgid "Password is setted" msgstr "Alterar senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "Alterar senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 #, fuzzy msgid "Password is not setted" msgstr "Alterar senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:195 #, fuzzy msgid "Set password" msgstr "Alterar senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:224 #, fuzzy msgid "Security Setting" msgstr "A definição de prioridade da thread é ignorada." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #, fuzzy msgid "User inserted successfully" msgstr "Editar Usuário" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "" "Ocorreu um erro ao inserir o usuário. Para obter mais informações, abra o " "log." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #, fuzzy msgid "Password changed successfully" msgstr "Alterar senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "" "Ocorreu um erro ao alterar a sua senha. Para obter mais informações, abra o " "log." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #, fuzzy msgid "User deleted successfully" msgstr "Ficheiro de bloqueio apagado '%s'." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "" "Ocorreu um erro ao remover o usuário. Para obter mais informações, abra o " "log." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ..\../main/gui/login/dialogologin.cpp:27 #, fuzzy msgid "User" msgstr "Editar Usuário" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ..\../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "Escolha um diretório" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #, fuzzy msgid "Maximum length of title is 8 characters" msgstr "" "\n" "O comprimento máximo do AET é de 16 caracteres" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "O diretório selecionado não pode ser aberto" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 msgid "Title" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 #, fuzzy msgid "Path" msgstr "O caminho '%s' contém demasiados \"..\"!" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 #, fuzzy msgid "Clean before" msgstr "Antes de um parágrafo:" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 #, fuzzy msgid "Clean after" msgstr "Depois de um parágrafo:" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 #, fuzzy msgid "Location Settings" msgstr "Configurar localização" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "Anonimização" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:96 #, fuzzy msgid "Anonymization settings" msgstr "Anonimização" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1370 #, fuzzy msgid "Settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 #, fuzzy msgid "Export config..." msgstr "Erro ao ler opções de configuração." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 #, fuzzy msgid "Import config..." msgstr "Erro ao ler opções de configuração." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "Aplicar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 #, fuzzy msgid "Physician's name" msgstr "Nome" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 #, fuzzy msgid "Physician's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 #, fuzzy msgid "Service" msgstr "" "Funções de ligação à telefónica não estão disponíveis, em virtude do serviço " "de acesso remoto (RAS) não estar instalado neste computador. Por favor " "Instale-o." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 #, fuzzy msgid "Service's name" msgstr "Nome" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 #, fuzzy msgid "Service's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 msgid "Local institution" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 #, fuzzy msgid "Institution's name" msgstr "Nome" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 #, fuzzy msgid "Institution's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 #, fuzzy msgid "Dicomized files" msgstr "Ficheiros" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 #, fuzzy msgid "Charset" msgstr ": conjunto de caracteres desconhecido" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 #, fuzzy msgid "ISO_IR 148" msgstr "A6 105 x 148 mm" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 msgid "Automatically check for updates" msgstr "Checar por atualizações automaticamente" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ..\../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 msgid "Proxy settings" msgstr "Proxy settings" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 #, fuzzy msgid "Enable http proxy" msgstr "Proxy settings" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:218 #, fuzzy msgid "Proxy Settings" msgstr "Proxy settings" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 msgid "Server settings" msgstr "Server settings" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 msgid "Host" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 #, fuzzy msgid "Port" msgstr "" "\n" "A porta é muito grande" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 #, fuzzy msgid "Username" msgstr "Falha na ligação: falta nome de utilizador/palavra passe." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 #, fuzzy msgid "No proxy for addresses containing" msgstr "Proxy settings" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 msgid "DICOM Dir" msgstr "Diretório DICOM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "O diretório DICOM é o local onde o histórico é armazenado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" "Aviso, para atualizar o conteúdo do diretório você precisa fechar todas as " "séries abertas" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 msgid "Auto-cleaning" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 #, fuzzy msgid "MB" msgstr "%.*f MB" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ..\../main/tools/toolwindowlevel.cpp:201 #, fuzzy msgid "Reset to default" msgstr "pré-definição" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Você precisa configurar o AET local, o qual é usado para se comunicar com o " "servidor PACS. A porta especificada precisa ser aberta no firewall, já que é " "essencial para transferências." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 #, fuzzy msgid "Local AET" msgstr "" "\n" "A quantidade máxima de caracteres para AET local é de 16 caracteres" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "Configurações avançadas..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 msgid "DICOM Nodes" msgstr "DICOM Nodes" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 #, fuzzy msgid "New ..." msgstr "&Novo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 msgid "Edit ..." msgstr "Editar ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ..\../main/gui/history3/historypanel3.cpp:677 #: ..\../main/gui/history3/historypanel3.cpp:686 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ..\../main/gui/import/selectimagesimportation.cpp:291 #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete" msgstr "Excluir" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 #, fuzzy msgid "Set Default" msgstr "" "Houve um problema durante a configuração da página: poderá necessitar de " "definir uma impressora pré-definida." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:388 msgid "DICOM Node" msgstr "DICOM Node" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "AET" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 msgid "PDU (KB)" msgstr "PDU (KB)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 #, fuzzy msgid "Retrieve method" msgstr "método de compressão Zip não suportado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 #, fuzzy msgid "Move" msgstr "&Mover" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 #, fuzzy msgid "Get" msgstr "Não foi possível obter o nome de computador" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 #, fuzzy msgid "WADO URL" msgstr "Erro ao conectar-se a url" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 #, fuzzy msgid "Retrieve mode" msgstr "Modo Categorizado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ..\../main/gui/import/pasosimportacionbase.cpp:319 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1395 #, fuzzy msgid "Series" msgstr "Abrir Séries" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #, fuzzy msgid "Studies" msgstr "" "Não foi possível esvaziar o histórico, você precisa fechar os estudos abertos" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "Reuse connection" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 msgid "Worklists" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 msgid "Select how do you want to handle MPPS items" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 #, fuzzy msgid "DICOM MPPS" msgstr "DICOM nodes" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 #, fuzzy msgid "HL7 messages" msgstr "gerar mensagens de registo verbosas" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 #, fuzzy msgid "HL7" msgstr "Erro ao enviar mensagem HL7. Veja log para maiores detalhes" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 #, fuzzy msgid "Abort message" msgstr "%s mensagem" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 #, fuzzy msgid "Completed message" msgstr "%s mensagem" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 #, fuzzy msgid "In progress message" msgstr "%s mensagem" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 #, fuzzy msgid "Default values" msgstr "pré-definição" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 msgid "Worklist" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 #, fuzzy msgid "SSL/TLS" msgstr "" "\n" "Se você deseja utilizar SSL/TLS, você terá que informar um certificado " "válido e uma chave privada" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 #, fuzzy msgid "Verify server credentials" msgstr "Server settings" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 #, fuzzy msgid "Use SSL/TLS" msgstr "" "\n" "Se você deseja utilizar SSL/TLS, você terá que informar um certificado " "válido e uma chave privada" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "Certificado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 msgid "Certificate to use in this connection" msgstr "Certificado para usar nessa conexão" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "Configuração avançada ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 #, fuzzy msgid "Default charset" msgstr ": conjunto de caracteres desconhecido" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 #, fuzzy msgid "Advanced" msgstr "Configurações avançadas..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "Test connection" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 msgid "Local AET certificate" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 msgid "Certificate used by Ginkgo CADx" msgstr "Certificado usado pelo Ginkgo CADx" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 #, fuzzy msgid "Receiver organization Id" msgstr "Grid organization" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 #, fuzzy msgid "Petitioner System Id" msgstr "Use system settings" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 #, fuzzy msgid "Filler Application Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 #, fuzzy msgid "Ginkgo CADx Application Id" msgstr "Ginkgo CADx restrictions" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 msgid "Integration engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 #, fuzzy msgid "Hostname / Port" msgstr "Não foi possível obter o nome de computador" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "/" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 msgid "Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ..\../main/gui/export/pasosexportacionbase.cpp:28 #, fuzzy msgid "Format" msgstr "PCX: formato de imagem não suportado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 #, fuzzy msgid "Message's format" msgstr "%s mensagem" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 #, fuzzy msgid "Test engine" msgstr "Test connection" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 msgid "Test Integration Engine connectivity" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 msgid "Ginkgo Extension Title" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 msgid "Edit public key" msgstr "Editar chave pública" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 #, fuzzy msgid "Public key" msgstr "Editar chave pública" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 #, fuzzy msgid "Public key in PEM format" msgstr "Editar chave pública" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 #, fuzzy msgid "Load ..." msgstr "carregar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 #, fuzzy msgid "Private key" msgstr "" "\n" "Se você deseja utilizar SSL/TLS, você terá que informar um certificado " "válido e uma chave privada" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 msgid "Private key in PEM format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 #, fuzzy msgid "Profile name" msgstr "Nome" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 #, fuzzy msgid "Set active" msgstr "Ativo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 msgid "Configure location" msgstr "Configurar localização" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 #, fuzzy msgid "Location" msgstr "Configurar localização" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 #, fuzzy msgid "Security type" msgstr "Tipo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 msgid "Change Password ..." msgstr "Alterar senha ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 #, fuzzy msgid "Set main password" msgstr "Alterar senha" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 #, fuzzy msgid "Set Password" msgstr "Alterar senha" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:736 msgid "Edit User" msgstr "Editar Usuário" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 #, fuzzy msgid "User Name" msgstr "Nome" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 msgid "Confirm Password" msgstr "Confirmar Senha" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 #, fuzzy msgid "Properties" msgstr "&Propriedades" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:814 #, fuzzy msgid "Edit corner annotations" msgstr "Mostrar anotações de canto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue} where GGGG is the tag's group in hexadecimal and EEEE is the " "tag's element." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 #, fuzzy msgid "Window/level" msgstr "&Janela" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "Adicionar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ..\../main/gui/history3/historytoolmenu.cpp:149 #: ..\../widgets/gui/selecciontextobase.h:58 msgid "Edit" msgstr "Editar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 #, fuzzy msgid "Default Window/Level" msgstr "&Janela" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 #, fuzzy msgid "Corner annotations" msgstr "Mostrar anotações de canto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 #, fuzzy msgid "Setup corner annotations" msgstr "Mostrar anotações de canto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 #, fuzzy msgid "Setup..." msgstr "Configurar..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 #, fuzzy msgid "Other settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 #, fuzzy msgid "Interpolate pixel data" msgstr "XPM: Dados de pixeis mal formados!" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:885 msgid "Hanging protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 #, fuzzy msgid "Opening mode" msgstr "Modo Categorizado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 #, fuzzy msgid "Study opening criteria" msgstr "erro ao abrir '%s'" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 msgid "Workspace" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 msgid "Enable/Disable" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 #, fuzzy msgid "Top left corner annotations" msgstr "Mostrar anotações de canto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 #, fuzzy msgid "Setup window" msgstr "Configurar..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 #, fuzzy msgid "Set default" msgstr "" "Houve um problema durante a configuração da página: poderá necessitar de " "definir uma impressora pré-definida." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 #, fuzzy msgid "Open in main window" msgstr "&Janela" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 #, fuzzy msgid "Setup position..." msgstr "Configurar..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 msgid "Setup undocked window position" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 #, fuzzy msgid "Layout" msgstr "1x1 Layout" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 #, fuzzy msgid "Current layout" msgstr "Directório actual:" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 msgid "Columns" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 #, fuzzy msgid "Series criteria" msgstr "Abrir Séries" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 #, fuzzy msgid "Select opening mode" msgstr "Modo Categorizado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 #, fuzzy msgid "Tag" msgstr "" "Aviso: tentativa de remover um manuseador de 'tag HTML' de uma pilha vazia." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 #, fuzzy msgid "Save" msgstr "&Guardar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 #, fuzzy msgid "Enable background queries" msgstr "Cor de fundo" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 msgid "Smart retrieve" msgstr "" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 #, fuzzy msgid "Smart retrieve settings" msgstr "Configurações das extensões" #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.h:64 #, fuzzy msgid "Export DICOM" msgstr "Exportar DICOM" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 msgid "Ginkgo CADx private tags" msgstr "Ginkgo CADx private tags" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ..\../main/gui/history3/historypanel3.cpp:340 #: ..\../main/gui/history3/historytoolmenu.cpp:158 #, fuzzy msgid "Export" msgstr "Export images" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ..\../main/gui/export/parametrosprincipales.cpp:157 #, fuzzy msgid "Select the directory where the files will be stored" msgstr "O diretório DICOM é o local onde o histórico é armazenado" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 #, fuzzy msgid "Select the DICOM Dir folder" msgstr "Diretório DICOM" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 #, fuzzy msgid "DICOM Dir migration" msgstr "Diretório DICOM" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 #, fuzzy msgid "Migrate existing (recommended)" msgstr "Por favor escolha um ficheiro existente." #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 #, fuzzy msgid "Continue..." msgstr "Avançar" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 #, fuzzy msgid "Select other" msgstr "SELECT" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 #, fuzzy msgid "Browse..." msgstr "Clique para procurar por um simbolo." #: ..\../main/gui/export/parametrosprincipales.cpp:106 msgid "DICOM Export" msgstr "Exportar DICOM" #: ..\../main/gui/export/parametrosprincipales.cpp:110 msgid "Select the format and the images you want to export" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:143 #, fuzzy msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "Todos os arquivos (*.*)|*.*" #: ..\../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:150 #, fuzzy msgid "Select file" msgstr "Seleccionar um ficheiro" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "DICOM (native format)" msgstr "DICOM (formato nativo)" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 #, fuzzy msgid "Image (jpg, bmp, png)" msgstr "Não foi possível gravar a imagem PNG." #: ..\../main/gui/export/pasosexportacionbase.cpp:38 #, fuzzy msgid "Export all files of opened tab" msgstr "impossível fechar o descritor do ficheiro %d" #: ..\../main/gui/export/pasosexportacionbase.cpp:55 #, fuzzy msgid "JPEG" msgstr "JPEG: Impossível gravar imagem." #: ..\../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:40 #, fuzzy msgid "Image Export Wizard" msgstr "imagem" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ..\../main/gui/license/aboutdialogbase.cpp:67 #: ..\../main/gui/license/aboutdialogbase.cpp:151 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:54 msgid "&Accept" msgstr "&Aceitar" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "&Próximo >" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:32 #, fuzzy msgid "Open link" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:402 #, fuzzy msgid "File link:" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ..\../main/gui/import/pasosimportacionbase.cpp:270 #, fuzzy msgid "Study" msgstr "Erro ao carregar estudo: " #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:216 #, fuzzy msgid "User name" msgstr "Nome" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:397 #, fuzzy msgid "Ginkgo Cloud link" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:437 #, fuzzy msgid "Copy to clipboard" msgstr "&Copiar" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "New Ginkgo Cloud study" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "To download the study, paste this url " msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 msgid "Creator" msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 #, fuzzy msgid "Last Modificator" msgstr "Refazer última acção" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 #, fuzzy msgid "Show link..." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "" #: ..\../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 #, fuzzy msgid "Invalid link" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:117 #: ..\../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "Abrir Séries" #: ..\../main/gui/history3/historypanel3.cpp:119 #: ..\../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "Abrir Séries com .." #: ..\../main/gui/history3/historypanel3.cpp:226 #: ..\../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "Idade" #: ..\../main/gui/history3/historypanel3.cpp:228 #, fuzzy msgid "Date acquired" msgstr "data" #: ..\../main/gui/history3/historypanel3.cpp:230 #, fuzzy msgid "Date added" msgstr "data" #: ..\../main/gui/history3/historypanel3.cpp:308 #: ..\../main/gui/history3/historytoolmenu.cpp:82 #: ..\../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "Adquirir" #: ..\../main/gui/history3/historypanel3.cpp:316 #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:363 #, fuzzy msgid "All patients" msgstr "Todos" #: ..\../main/gui/history3/historypanel3.cpp:481 msgid "Results" msgstr "Resultados" #: ..\../main/gui/history3/historypanel3.cpp:481 #, fuzzy, c-format msgid " (%d images)" msgstr "Export images" #: ..\../main/gui/history3/historypanel3.cpp:634 #, fuzzy msgid "Open study with .." msgstr "&Abrir" #: ..\../main/gui/history3/historypanel3.cpp:663 #: ..\../main/gui/history3/historypanel3base.cpp:482 msgid "Synchronize" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:677 msgid "&Delete from history" msgstr "&Deletar do histórico" #: ..\../main/gui/history3/historypanel3.cpp:686 #, fuzzy msgid "&Clear history" msgstr "&Limpar" #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "" "Você alcançou o número máximo de abas abertas, feche algumas e tente " "novamente" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid "Unable to open modality " msgstr "Não foi possível abrir a modalidade " #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr " com a sintaxe de transferência " #: ..\../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "" "Não foi possível esvaziar o histórico, você precisa fechar os estudos abertos" #: ..\../main/gui/history3/historypanel3.cpp:1086 msgid "all files" msgstr "todos os arquivos" #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 msgid "Select at least one series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "Você não pode remover séries abertas" #: ..\../main/gui/history3/historypanel3.cpp:1128 #, fuzzy msgid "those series" msgstr "Abrir Séries" #: ..\../main/gui/history3/historypanel3.cpp:1128 #, fuzzy msgid "this series" msgstr "Abrir Séries" #: ..\../main/gui/history3/historypanel3base.cpp:57 #, fuzzy msgid "Advanced search" msgstr "Procurar" #: ..\../main/gui/history3/historypanel3base.cpp:73 #, fuzzy msgid "Acquisition date" msgstr "data" #: ..\../main/gui/history3/historypanel3base.cpp:302 #: ..\../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "Confirmar remoção" #: ..\../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "Tem certeza que deseja excluir " #: ..\../main/gui/history3/historypanel3base.cpp:336 #: ..\../main/gui/history3/historytoolmenu.cpp:102 #: ..\../main/gui/history3/historytoolmenu.cpp:200 #: ..\../main/gui/history3/historytoolmenu.cpp:229 #, fuzzy msgid "Remove" msgstr "Remover" #: ..\../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:454 #: ..\../main/gui/history3/historypanel3base.h:187 #, fuzzy msgid "Synchronize files" msgstr "Ficheiros" #: ..\../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" #: ..\../main/gui/history3/historytablemodel.cpp:406 #: ..\../main/gui/history3/historytablemodel.cpp:418 #: ..\../main/gui/history3/historytablemodel.cpp:473 #: ..\../main/gui/history3/historytablemodel.cpp:485 #: ..\../main/gui/open/dicomdirtablemodel.cpp:105 msgid "00/00/0000 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/history3/historytoolmenu.cpp:138 msgid "Close history" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:139 #: ..\../main/gui/startup/startupform.cpp:53 #, fuzzy msgid "History" msgstr " from History?" #: ..\../main/gui/history3/historytoolmenu.cpp:201 #: ..\../main/gui/history3/historytoolmenu.cpp:230 #, fuzzy msgid "Clear history" msgstr "&Limpar" #: ..\../main/gui/history3/historytoolmenu.cpp:232 #, fuzzy msgid "Select all" msgstr "Seleccion&ar Todos" #: ..\../main/gui/history3/historytoolmenu.cpp:233 #, fuzzy msgid "Deselect all" msgstr "Todos" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 #, fuzzy msgid "Destination" msgstr "" "Falha ao renomear o ficheiro de '%s' para '%s' porque o ficheiro de destino " "já existe." #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 #, fuzzy msgid "Status" msgstr "Estado:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 msgid "Error message" msgstr "Mensagem de erro" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 msgid "Show Message" msgstr "Mostrar Mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 msgid "Edit Message" msgstr "Editar Mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 msgid "Delete message" msgstr "Excluir mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 msgid "Error editing message" msgstr "Erro ao editar mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 #, fuzzy msgid "Error purguing messages" msgstr "Erro ao deletar mensagens" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ..\../main/gui/progress/paneltarea.cpp:31 #, fuzzy msgid "Stop" msgstr "&Parar" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #, fuzzy msgid "Sent" msgstr "Erro ao enviar mensagem. Foi enviada " #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/progress/statusbarprogreso.cpp:281 #, fuzzy msgid "Warning" msgstr "Aviso" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 msgid "Error getting message" msgstr "Erro ao obter mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 #, fuzzy msgid "Running" msgstr "Erro ao rodar a thread: " #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 #, fuzzy msgid "Usually due to an error in sending a message" msgstr "Erro ao enviar mensagem:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ..\../main/gui/progress/paneltarea.cpp:31 #, fuzzy msgid "Start" msgstr "Página inicial" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 msgid "Error deleting messages" msgstr "Erro ao deletar mensagens" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 #, fuzzy msgid "Remove sent messages" msgstr "Remover" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 #, fuzzy msgid "Exit" msgstr "&Sair" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 #, fuzzy msgid "Messages" msgstr "gerar mensagens de registo verbosas" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 #, fuzzy msgid "Refresh" msgstr "Refrescar" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1394 #, fuzzy msgid "View" msgstr "Ver ficheiros como uma vista detalhada" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 #, fuzzy msgid "Send task status:" msgstr "Estado:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 #, fuzzy msgid "Message" msgstr "%s mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "Data:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 #, fuzzy msgid "Destination:" msgstr "" "Falha ao renomear o ficheiro de '%s' para '%s' porque o ficheiro de destino " "já existe." #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 #, fuzzy msgid "Status:" msgstr "Estado:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 #, fuzzy msgid "Message content:" msgstr "Conteúdo" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:142 #, fuzzy msgid "OK" msgstr "&OK" #: ..\../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "Overview data of DICOM files" #: ..\../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "" #: ..\../main/gui/import/generaldata.cpp:210 #, fuzzy msgid "" "\n" "* The patient ID is required." msgstr "" "\n" "Este ID de PACS está em uso" #: ..\../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" #: ..\../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" #: ..\../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" #: ..\../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" #: ..\../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "" #: ..\../main/gui/import/generaldata.cpp:231 msgid "Error validating fields" msgstr "Error validating fields" #: ..\../main/gui/import/pasoperfilimportacion.cpp:148 #, fuzzy msgid "Selecting Import Profile" msgstr "Confirmar remoção do perfil " #: ..\../main/gui/import/pasoperfilimportacion.cpp:152 msgid "You must select the profile you want to use import" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 msgid "You must select the import profile" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:21 #, fuzzy msgid "Selected images" msgstr "Export images" #: ..\../main/gui/import/pasosimportacionbase.cpp:56 #, fuzzy msgid "Preview" msgstr " Antevisão" #: ..\../main/gui/import/pasosimportacionbase.cpp:62 #, fuzzy msgid "Remove all" msgstr "Remover" #: ..\../main/gui/import/pasosimportacionbase.cpp:113 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:65 msgid "Demographic data" msgstr "Dados demográficos" #: ..\../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "Identificator *" #: ..\../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:159 #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 #, fuzzy msgid "Birth date" msgstr "data" #: ..\../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:217 #, fuzzy msgid "Study Details" msgstr "&Detalhes" #: ..\../main/gui/import/pasosimportacionbase.cpp:234 #: ..\../wx/gnkinforme/gnkinformebase.cpp:122 #, fuzzy msgid "Weight" msgstr "&Peso:" #: ..\../main/gui/import/pasosimportacionbase.cpp:245 msgid "Kg" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:252 #: ..\../wx/gnkinforme/gnkinformebase.cpp:119 #, fuzzy msgid "Height" msgstr "Cabeçalho DIB: Altura da imagem > 32767 pixeis para o ficheiro." #: ..\../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:291 #: ..\../main/gui/import/pasosimportacionbase.cpp:333 #, fuzzy msgid "Time" msgstr "Tempo passado : " #: ..\../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:191 #, fuzzy msgid "Select files..." msgstr "SELECT" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 #, fuzzy msgid "Paste" msgstr "&Colar" #: ..\../main/gui/import/selectimagesimportation.cpp:203 #, fuzzy msgid "Paste from clipboard" msgstr "Falha na obtenção de dados da área de transferência" #: ..\../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "Voltar" #: ..\../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "Tem certeza que deseja deletar este arquivo do disco?" #: ..\../main/gui/import/selectimagesimportation.cpp:330 msgid "Delete selected items" msgstr "Excluir itens selecionados" #: ..\../main/gui/import/selectimagesimportation.cpp:342 msgid "You must select an image" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:346 #, fuzzy msgid "Generating preview..." msgstr " Antevisão" #: ..\../main/gui/import/selectimagesimportation.cpp:500 #, fuzzy msgid "Select images" msgstr "SELECT" #: ..\../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "Criando Thumbnails..." #: ..\../main/gui/import/selectimagesimportation.cpp:715 #, fuzzy msgid "Image selection" msgstr "Selecção" #: ..\../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:760 #, fuzzy msgid "The file" msgstr "&Ficheiro" #: ..\../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr " não existe" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:52 #, fuzzy msgid "Image Import Wizard" msgstr "imagem" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:167 msgid "free of" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:181 #, fuzzy msgid "in dicomization dir." msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "Tem certeza que quer cancelar o processo de importação?" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, fuzzy, c-format msgid "Step %d of %d: " msgstr "Página %d de %d" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "&Fim" #: ..\../main/gui/license/aboutdialog.cpp:25 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 #, fuzzy msgid "About" msgstr "&Sobre" #: ..\../main/gui/license/aboutdialogbase.cpp:22 #, fuzzy msgid "Ginkgo CADx" msgstr "Ginkgo CADx restrictions" #: ..\../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "Créditos" #: ..\../main/gui/license/aboutdialogbase.cpp:55 #, fuzzy msgid "Licenses" msgstr "Licenças de Código Aberto" #: ..\../main/gui/license/aboutdialogbase.cpp:58 #, fuzzy msgid "UPDATE_INFO" msgstr "delegado não tem informação de tipo" #: ..\../main/gui/license/aboutdialogbase.cpp:108 #: ..\../main/gui/license/aboutdialogbase.h:88 msgid "Open Source Licenses" msgstr "Licenças de Código Aberto" #: ..\../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "Cairo" #: ..\../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "DCMTK" #: ..\../main/gui/license/aboutdialogbase.cpp:119 #, fuzzy msgid "FamFamFam Icons" msgstr "&Organizar Ícones" #: ..\../main/gui/license/aboutdialogbase.cpp:120 #, fuzzy msgid "Fugue Icons" msgstr "&Organizar Ícones" #: ..\../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "OpenSSL" #: ..\../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:126 #, fuzzy msgid "WxWidgets" msgstr "wxWidgets não foi possível abrir o ecrã. A sair." #: ..\../main/gui/license/aboutdialogbase.cpp:127 #, fuzzy msgid "Zlib" msgstr "Gzip não suportado nesta versão do zlib" #: ..\../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:130 #, fuzzy msgid "Dark Glass Icons" msgstr "&Organizar Ícones" #: ..\../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:23 #: ..\../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:53 msgid "Check for updates automatically" msgstr "Verificar atualizações automaticamente" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:66 #, fuzzy msgid "I Accept the license" msgstr "Aceitar" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 #, fuzzy msgid "Save logs" msgstr "&Guardar" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 #, fuzzy msgid "File couldn't be stored " msgstr "Não foi possível carregar o ficheiro." #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 msgid "Could not write to file" msgstr "Não foi possível escrever no arquivo" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 #, fuzzy msgid "Save log..." msgstr "Gravar conteúdos do registo para ficheiro" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 msgid "Clear log" msgstr "Limpar log" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 #, fuzzy msgid "Log" msgstr "&Registo" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "Limpar" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "" #: ..\../main/gui/login/dialogologin.cpp:50 #, fuzzy msgid "The username or password is incorrect" msgstr "Falha na ligação: falta nome de utilizador/palavra passe." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:250 #, fuzzy msgid "Tasks" msgstr "0 tarefas sendo executadas." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1139 #, fuzzy msgid "Included in the history ..." msgstr " from History?" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "Check update error" msgstr "Erro verificando atualização" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #, fuzzy msgid "Malformed XML" msgstr "XPM: Dados de pixeis mal formados!" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1192 msgid "Error in interpreting the parameters of the command line. (" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #, fuzzy msgid "Error parsing integration XML:\n" msgstr "XML erro de verificação gramatical: '%s' na linha %d" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 msgid "PACS error:\n" msgstr "Erro do PACS:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #, fuzzy msgid "Error executing WorkFlow\n" msgstr "Erro ao criar o banco de dados:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #, fuzzy msgid "Close current view" msgstr "Fechar documento actual" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 #, fuzzy msgid "Close all" msgstr "Fechar Tudo" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 #, fuzzy msgid "Close all views" msgstr "Fechar Tudo" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "&Sair" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 #, fuzzy msgid "Exit application" msgstr "&Sair" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "Full screen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Show full screen" msgstr "Exibir em tela cheia" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1302 #, fuzzy msgid "Tab grouping" msgstr "TAB" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1329 #, fuzzy msgid "Ginkgo CADx manual ..." msgstr "Ginkgo CADx restrictions" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1330 #, fuzzy msgid "Open test card" msgstr "Test connection" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "Verificar Atualizações" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for newest versions" msgstr "Verificar novas versões" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1332 #, fuzzy msgid "Need support ..." msgstr "Online support" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 #, fuzzy msgid "About " msgstr "&Sobre" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 msgid "HL7 monitor" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 msgid "HL7 message control" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 #, fuzzy msgid "Log monitor" msgstr "&Registo" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #, fuzzy msgid "Log monitored" msgstr "&Registo" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1390 #, fuzzy msgid "&File" msgstr "&Ficheiro" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "&Editar" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "&Ajuda" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1664 #, fuzzy msgid "Unsaved data" msgstr "Dados" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "" "Erros ocorreram ao salvar as séries.\n" "Gostaria de fechar mesmo assim? " #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "Error saving" msgstr "Erro ao salvar" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 #, fuzzy msgid "Full Screen" msgstr "Full screen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 #, fuzzy msgid "View Full Screen" msgstr "Full screen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1708 #, fuzzy msgid "Tab Regroup" msgstr "TAB" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "&Fechar" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "&Close all" msgstr "&Fechar todos" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "Close all windows" msgstr "Fechar todas as janelas" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1728 #, fuzzy msgid "Tabbed organization" msgstr "Grid organization" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 #, fuzzy msgid "Ginkgo CADx updated" msgstr "Ginkgo CADx restrictions" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1782 #, fuzzy msgid "New version available (" msgstr " Versão " #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "Erro interno no processo de autenticação" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:29 #, fuzzy msgid "New Update" msgstr "&Novo" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:34 #, fuzzy msgid "New version available" msgstr " Versão " #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:43 #, fuzzy msgid "X" msgstr "10 x 11 pol." #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:45 msgid "Close this notification" msgstr "Fechar esta notificação" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:104 msgid "The following commands will be aborted if you close the application" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:131 msgid "Close Ginkgo CADx" msgstr "Fechar Ginkgo CADx" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:138 #, fuzzy msgid "User login" msgstr "Editar Usuário" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:202 #, fuzzy msgid "System authentication" msgstr "Use system settings" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:260 msgid "Login" msgstr "" #: ..\../main/gui/open/abrir.cpp:80 ..\../main/gui/open/abrir.cpp:82 msgid "Open..." msgstr "Abrir..." #: ..\../main/gui/open/opendialogs.cpp:58 #, fuzzy msgid "There was an error reading DICOMDIR file" msgstr "Erro na leitura do DIB da imagem." #: ..\../main/gui/open/opendialogs.cpp:62 #, fuzzy msgid "Select a valid DICOMDIR file" msgstr "Seleccionar um ficheiro" #: ..\../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:180 #: ..\../main/gui/open/opendialogsbase.cpp:170 #: ..\../main/gui/open/opendialogsbase.h:112 #, fuzzy msgid "Copy or link" msgstr "&Copiar" #: ..\../main/gui/open/opendialogsbase.cpp:22 #: ..\../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "Adquirir de um diretório DICOM" #: ..\../main/gui/open/opendialogsbase.cpp:94 #: ..\../main/gui/open/opendialogsbase.h:85 #, fuzzy msgid "Select drive" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:175 msgid "Do you want to copy or link files?" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ..\../main/gui/selectpacsserver/selectpacsserver.cpp:30 msgid "There aren't any PACS configured" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:69 #, fuzzy msgid "0000/00/00 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.h:57 msgid "Upload study" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 #, fuzzy msgid "Select PACS server" msgstr "SELECT" #: ..\../main/gui/paneltags/paneltags.cpp:119 msgid "Metadata" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:120 #, fuzzy msgid "Identification information" msgstr "%s Informação" #: ..\../main/gui/paneltags/paneltags.cpp:121 #, fuzzy msgid "Patient information" msgstr "%s Informação" #: ..\../main/gui/paneltags/paneltags.cpp:122 #, fuzzy msgid "Acquisition information" msgstr "%s Informação" #: ..\../main/gui/paneltags/paneltags.cpp:123 #, fuzzy msgid "Relationship information" msgstr "%s Informação" #: ..\../main/gui/paneltags/paneltags.cpp:124 #, fuzzy msgid "Image presentation information" msgstr "%s Informação" #: ..\../main/gui/paneltags/paneltags.cpp:125 ..\../widgets/wtextbox.cpp:525 #, fuzzy msgid "Text" msgstr "(Texto normal)" #: ..\../main/gui/paneltags/paneltags.cpp:126 #, fuzzy msgid "Other" msgstr "" "Lamento, docking não é suportado por plataformas que não sejam wxMSW, wxMac " "e wxGTK" #: ..\../main/gui/paneltags/paneltags.cpp:137 #: ..\../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "Dados" #: ..\../main/gui/previewpanel/previewpanel.cpp:47 #, fuzzy msgid "Hide" msgstr "Mostra/esconde painel de navegação" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:187 #: ..\../main/gui/previewpanel/previewpanelbase.cpp:207 msgid "Previews" msgstr "" #: ..\../main/gui/progress/progresobase.cpp:23 #, fuzzy msgid "There is no running tasks" msgstr "0 tarefas sendo executadas." #: ..\../main/gui/progress/statusbarprogreso.cpp:165 msgid "0 running tasks." msgstr "0 tarefas sendo executadas." #: ..\../main/gui/progress/statusbarprogreso.cpp:192 #, fuzzy, c-format msgid "There are %d pending tasks" msgstr "0 tarefas sendo executadas." #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.h:55 #, fuzzy msgid "Select PACS" msgstr "SELECT" #: ..\../main/gui/startup/startupformbase.cpp:29 #, fuzzy msgid "http://ginkgo-cadx.com" msgstr "Ginkgo CADx restrictions" #: ..\../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:47 #, fuzzy msgid "Ginkgo CADx Pro" msgstr "Ginkgo CADx restrictions" #: ..\../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "" #: ..\../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "Página inicial" #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete Widget" msgstr "Excluir Widget" #: ..\../main/managers/widgetsmanager.cpp:1090 #, fuzzy msgid "Properties ..." msgstr "&Propriedades" #: ..\../main/managers/widgetsmanager.cpp:1090 #, fuzzy msgid "Widget Properties" msgstr "&Propriedades" #: ..\../main/tools/addfiletohistorytool.cpp:114 #, fuzzy msgid "Open file" msgstr "Abrir Ficheiro" #: ..\../main/tools/addfiletohistorytool.cpp:115 #: ..\../main/tools/openfoldertool.cpp:27 #, fuzzy msgid "Open folder" msgstr "&Abrir" #: ..\../main/tools/addfiletohistorytool.cpp:116 #: ..\../main/tools/openremovabletool.cpp:28 #, fuzzy msgid "Open removable unit" msgstr "&Abrir" #: ..\../main/tools/addfiletohistorytool.cpp:117 #: ..\../main/tools/openginkgocloudlinktool.cpp:27 msgid "Open Ginkgo Cloud link" msgstr "" #: ..\../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "" #: ..\../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "" #: ..\../main/tools/colormaptool.cpp:110 msgid "Invert color map" msgstr "" #: ..\../main/tools/cornerannotationstool.cpp:44 #, fuzzy msgid "Hide corner annotations" msgstr "Mostrar anotações de canto" #: ..\../main/tools/cornerannotationstool.cpp:46 msgid "Show corner annotations" msgstr "Mostrar anotações de canto" #: ..\../main/tools/detachwindowtool.cpp:42 #, fuzzy msgid "Attach View" msgstr "" "):\n" "Verifique a configuração e anexe-a se necessário" #: ..\../main/tools/detachwindowtool.cpp:44 #, fuzzy msgid "Detach view" msgstr "Ver ficheiros como uma vista detalhada" #: ..\../main/tools/dicomizetool.cpp:28 #, fuzzy msgid "Dicomize files" msgstr "Ficheiros" #: ..\../main/tools/exportdicomdirtool.cpp:32 #, fuzzy msgid "Export to DICOM Dir" msgstr "Exportar DICOM" #: ..\../main/tools/markertool.cpp:171 #, fuzzy msgid "Point" msgstr "Tamanho do &ponto:" #: ..\../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "Seta" #: ..\../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "" #: ..\../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "" #: ..\../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "" #: ..\../main/tools/markertool.cpp:176 msgid "Free form" msgstr "" #: ..\../main/tools/metricgridtool.cpp:57 #, fuzzy msgid "Grid" msgstr "Grid organization" #: ..\../main/tools/metricgridtool.cpp:67 #, fuzzy msgid "Grid Scale" msgstr "Grid organization" #: ..\../main/tools/metricgridtool.cpp:74 #, fuzzy msgid "Scale X" msgstr "10 x 11 pol." #: ..\../main/tools/metricgridtool.cpp:78 #, fuzzy msgid "X axis scale" msgstr "10 x 11 pol." #: ..\../main/tools/metricgridtool.cpp:87 #, fuzzy msgid "Scale Y" msgstr "imagem_%d-%m-%Y_" #: ..\../main/tools/metricgridtool.cpp:91 #, fuzzy msgid "Y axis scale" msgstr "imagem_%d-%m-%Y_" #: ..\../main/tools/metricgridtool.cpp:206 msgid "Show grid" msgstr "Mostrar grade" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "Configurar Grade ..." #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "Configurar Grade" #: ..\../main/tools/metricgridtool.cpp:250 #, fuzzy msgid "Hide Grid" msgstr "Mostra/esconde painel de navegação" #: ..\../main/tools/metricgridtool.cpp:252 msgid "Show Grid" msgstr "Mostrar Grade" #: ..\../main/tools/openfiletool.cpp:28 msgid "Open File" msgstr "Abrir arquivo" #: ..\../main/tools/pacsuploadtool.cpp:54 msgid "Send to PACS..." msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:59 msgid "Unset pixels blurring" msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:61 msgid "Set pixels blurring" msgstr "" #: ..\../main/tools/queryretrievehistorytool.cpp:25 #, fuzzy msgid "PACS Q/R" msgstr "Adquirir imagens de um PACS" #: ..\../main/tools/queryretrievetool.cpp:94 #: ..\../main/tools/searchginkgocloudhistorytool.cpp:28 #, fuzzy msgid "Search Ginkgo Cloud" msgstr "Procurar" #: ..\../main/tools/rotateandfliptool.cpp:151 #, fuzzy msgid "Undo rotate and flip" msgstr "&Desfazer" #: ..\../main/tools/rotateandfliptool.cpp:153 #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:156 msgid "Flip horizontal" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:157 msgid "Flip vertical" msgstr "" #: ..\../main/tools/sendpacstool.cpp:34 msgid "Send to PACS" msgstr "" #: ..\../main/tools/sendpacstool.cpp:70 #, fuzzy msgid "Sending to PACS..." msgstr "Erro ao enviar mensagem:" #: ..\../main/tools/showtagstool.cpp:42 #, fuzzy msgid "Hide DICOM inspector" msgstr "DICOM Inspector" #: ..\../main/tools/showtagstool.cpp:44 #, fuzzy msgid "Show DICOM inspector" msgstr "DICOM Inspector" #: ..\../main/tools/simpleprinttool.cpp:119 #, fuzzy msgid "Image printing" msgstr "A Imprimir " #: ..\../main/tools/simpleprinttool.cpp:224 #, fuzzy msgid "Page setup" msgstr "Configuração de Página" #: ..\../main/tools/simpleprinttool.cpp:225 #, fuzzy msgid "Print preview" msgstr "Antevisão de Impressão" #: ..\../main/tools/simpleprinttool.cpp:272 #, fuzzy msgid "Print image" msgstr "&Imprimir" #: ..\../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "" #: ..\../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "" #: ..\../main/tools/undotool.cpp:110 #, fuzzy msgid "Redo" msgstr "&Refazer" #: ..\../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "" #: ..\../main/tools/videotool.cpp:153 msgid "Enable loop" msgstr "" #: ..\../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:267 #, fuzzy msgid "Add column" msgstr "coluna desconhecida" #: ..\../main/tools/windowlayouttool.cpp:268 #, fuzzy msgid "Add row" msgstr "ADICIONAR" #: ..\../main/tools/windowlayouttool.cpp:270 #, fuzzy msgid "Remove column" msgstr "coluna desconhecida" #: ..\../main/tools/windowlayouttool.cpp:271 #, fuzzy msgid "Remove row" msgstr "Remover" #: ..\../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "1x1 Layout" #: ..\../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "1x2 Layout" #: ..\../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "Plano 2x1" #: ..\../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "Plano 2x2" #: ..\../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "Plano 3x3" #: ..\../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "Plano 4x4" #: ..\../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:82 #, fuzzy msgid "The tool is already registered" msgstr "Objecto Já Registado passado para SetObjectClassInfo" #: ..\../main/toolsystem/toolsregistry.cpp:187 #, fuzzy msgid "The module " msgstr "Falha de inicialização do Módulo \"%s\"" #: ..\../resources/ginkgoresourcesmanager.cpp:49 msgid "Unable to load PNG bitmap resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:56 msgid "Unable to load PNG image resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:63 msgid "Unable to load GIF animation resource" msgstr "" #: ..\../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "" #: ..\../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "Valor de calibração é muito baixo" #: ..\../widgets/gui/calibracion.cpp:219 #, fuzzy msgid "Enter the calibration value" msgstr "Valor de calibração é muito baixo" #: ..\../widgets/gui/calibracion.cpp:225 #, fuzzy msgid "The calibration value is too low" msgstr "Valor de calibração é muito baixo" #: ..\../widgets/gui/calibracion.cpp:229 #, fuzzy msgid "The calibration value is too high" msgstr "Valor de calibração é muito baixo" #: ..\../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "Calibrando..." #: ..\../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "Centímetros" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "" #: ..\../widgets/gui/selecciontextobase.cpp:26 #, fuzzy msgid "Note" msgstr "Nota, 8 1/2 x 11 pol." #: ..\../widgets/wangulo.cpp:1101 ..\../widgets/wangulo.cpp:1103 #, fuzzy msgid "Type" msgstr "Tipo" #: ..\../widgets/wangulo.cpp:1101 #, fuzzy msgid "Normal" msgstr "Normal" #: ..\../widgets/wangulo.cpp:1103 msgid "Cobb" msgstr "" #: ..\../widgets/welipse.cpp:721 ..\../widgets/wfreeform.cpp:470 #: ..\../widgets/wpolygon.cpp:574 #, fuzzy msgid "Center (I)" msgstr "Centro" #: ..\../widgets/welipse.cpp:727 ..\../widgets/wfreeform.cpp:476 #: ..\../widgets/wpolygon.cpp:580 #, fuzzy msgid "Center (M)" msgstr "Centro" #: ..\../widgets/welipse.cpp:762 ..\../widgets/welipse.cpp:766 msgid "Greater Radius" msgstr "" #: ..\../widgets/welipse.cpp:763 ..\../widgets/welipse.cpp:767 #, fuzzy msgid "Lower Radius" msgstr "Letras minúsculas" #: ..\../widgets/wfreeform.cpp:482 ..\../widgets/wpolygon.cpp:586 #, fuzzy msgid "Number of Vertex" msgstr "&Número:" #: ..\../widgets/wpunto.cpp:353 #, fuzzy msgid "Position (I)" msgstr "%i de %i" #: ..\../widgets/wpunto.cpp:358 #, fuzzy msgid "Position (M)" msgstr "A posição de tabulação." #: ..\../widgets/wrule.cpp:558 #, fuzzy msgid "Image Calibration" msgstr "imagem" #: ..\../widgets/wrule.cpp:663 #, fuzzy msgid "Length" msgstr "guardado tamanho do ficheiro não no cabeçalho Zip" #: ..\../widgets/wrule.cpp:668 #, fuzzy msgid "Points (I)" msgstr "%i de %i" #: ..\../widgets/wrule.cpp:675 #, fuzzy msgid "Points (M)" msgstr "Lista o tamanho das fontes em pontos." #: ..\../widgets/wtextbox.cpp:445 #, fuzzy msgid "Default text" msgstr "pré-definição" #: ..\../wx/gnkinforme/gnkinformebase.cpp:41 #, fuzzy msgid "Commit date" msgstr "data" #: ..\../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "%d/%m/%Y" #: ..\../wx/gnkinforme/gnkinformebase.cpp:214 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:219 #, fuzzy msgid "Modified" msgstr "Modificado" #: ..\../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "644654645" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:130 msgid "Commit inform" msgstr "" #: ..\../wx/propiedades/wxpropiedades.cpp:30 #, fuzzy msgid "Properties of " msgstr "&Propriedades" #: ..\../wx/propiedades/wxpropiedadesbase.cpp:31 #, fuzzy msgid "Widget's Name" msgstr "Excluir Widget" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "< &Anterior" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "&Cancelar" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3701 #, fuzzy msgid "Regular expression invalid: '" msgstr "Expressão regular inválida '%s': %s" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "" #: ..\../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.h:56 #, fuzzy msgid "Overwrite Paths" msgstr "Não foi possível sobrepor o ficheiro '%s'" #: ..\../ginkgopro/ginkgo_pro_defines.h:21 msgid "Professional DICOM CADx environment" msgstr "" #: ..\../main/controllers/dcmtk/dicomservers.h:39 #, fuzzy msgid "Server not found" msgstr "Encontrado " #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:99 #, fuzzy msgid "DICOM Query/Retrieve" msgstr "Não foi possível obter thread de política de agendamento." #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:123 #, fuzzy msgid "Not found" msgstr "Encontrado " #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:418 #, fuzzy msgid "Advanced Settings" msgstr "Configurações avançadas..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:570 #, fuzzy msgid "Edit profile" msgstr "Editar ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:665 #, fuzzy msgid "Add/Edit Location" msgstr "Editar ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:784 #, fuzzy msgid "Add window/level" msgstr "ADICIONAR" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 #, fuzzy msgid "Add tag" msgstr "ADICIONAR" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 #, fuzzy msgid "Setup window position" msgstr "Configurar..." #: ..\../main/gui/countdownmessage/countdownmessagebase.h:61 #, fuzzy msgid "Closing" msgstr "" "Erros ocorreram ao salvar as séries.\n" "Gostaria de fechar mesmo assim? " #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 #, fuzzy msgid "DICOM Dir configuration" msgstr "Diretório DICOM" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:70 #, fuzzy msgid "Open Ginkgo Cloud" msgstr "&Abrir" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:123 #, fuzzy msgid "Ginkgo Cloud search" msgstr "Procurar" #: ..\../main/gui/history3/confirmdeletedialog.h:24 msgid " from History?" msgstr " from History?" #: ..\../main/gui/history3/historypanel3base.h:100 #, fuzzy msgid "Medical history" msgstr " from History?" #: ..\../main/gui/history3/historypanel3base.h:161 #, fuzzy msgid "Open With ..." msgstr "&Abrir" #: ..\../main/gui/history3/openwithdialog.h:72 #, fuzzy msgid "Select a View" msgstr "Seleccionar uma vista de documento" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 #, fuzzy msgid "Message detail" msgstr "%s mensagem" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 #, fuzzy msgid "Log node" msgstr "&Registo" #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:87 #, fuzzy msgid "Closing Ginkgo CADx" msgstr "Ginkgo CADx restrictions" #: ..\../main/gui/paneltags/paneltagsbase.h:57 msgid "DICOM Inspector" msgstr "DICOM Inspector" #: ..\../main/license.h:31 msgid "Open Source DICOM CADx environment" msgstr "" #: ..\../widgets/gui/calibracionbase.h:65 #, fuzzy msgid "Calibration" msgstr "Valor de calibração é muito baixo" #: ..\../wx/propiedades/wxpropiedadesbase.h:62 #, fuzzy msgid "Properties of ..." msgstr "&Propriedades" #: ..\../wx/thumbnailctrl/thumbnailwidget.h:44 #, fuzzy msgid "Image Browser Dialog" msgstr "Opções do Navegador de Ajuda" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.h:60 #, fuzzy msgid "Test title" msgstr "Test connection" #, fuzzy #~ msgid "Failed to store the file, check permissions on the directory" #~ msgstr "Erro ao armazenar arquivo, verifique permissões do diretório." #, fuzzy #~ msgid "The key files will not be exported" #~ msgstr "Ficheiros" #, fuzzy #~ msgid "Current" #~ msgstr "Directório actual:" #~ msgid "All" #~ msgstr "Todos(as)" #~ msgid "BMP" #~ msgstr "BMP" #, fuzzy #~ msgid "PNG" #~ msgstr "Não foi possível gravar a imagem PNG." #~ msgid "Content" #~ msgstr "Conteúdo" #, fuzzy #~ msgid "Tile Horizontally" #~ msgstr "Dispor &Horizontalmente" #, fuzzy #~ msgid "Tile Vertically" #~ msgstr "Dispor &Verticalmente" #, fuzzy #~ msgid "Grid (two columns)" #~ msgstr "Grid organization" #, fuzzy #~ msgid "Grid (three columns)" #~ msgstr "Grid organization" #~ msgid "Grid organization" #~ msgstr "Grid organization" #~ msgid "Color" #~ msgstr "Cor" #, fuzzy #~ msgid "Vertex (I)" #~ msgstr "%i de %i" #~ msgid "Center" #~ msgstr "Centro" #~ msgid "0" #~ msgstr "0" #~ msgid "Checking program updates..." #~ msgstr "Verificando atualizações para o programa..." #~ msgid ">>" #~ msgstr ">>" #~ msgid ">" #~ msgstr ">" #~ msgid "<" #~ msgstr "<" #~ msgid "<<" #~ msgstr "<<" #~ msgid "unknown column" #~ msgstr "coluna desconhecida" #~ msgid "Options" #~ msgstr "Opções" #~ msgid "Categorized Mode" #~ msgstr "Modo Categorizado" #~ msgid "Alphabetic Mode" #~ msgstr "Modo Alfabético" #~ msgid "Error in resource: %s" #~ msgstr "Erro no recurso: %s" #~ msgid "Choose a directory:" #~ msgstr "Escolha um diretório:" #~ msgid "Choose a file" #~ msgstr "Escolha um arquivo" #~ msgid "Use system settings" #~ msgstr "Use system settings" #~ msgid "Authenticate" #~ msgstr "Authenticate" #~ msgid "Show / Hide DICOM tags panel" #~ msgstr "Mostrar / Esconder painel de tags DICOM" #~ msgid "Visualization" #~ msgstr "Calibrando..." #~ msgid "http://ginkgo-cadx.com/en/services/" #~ msgstr "http://ginkgo-cadx.com/en/services/" #~ msgid "Double click to edit" #~ msgstr "Clique duas vezes para editar" #~ msgid "" #~ "No results obtained. Maybe you have a wrong PACS server configuration" #~ msgstr "" #~ "Nenhum resultado obtido. Talvez você tenha uma configuração inválida do " #~ "servidor PACS" #~ msgid "" #~ "No results obtained in PACS retrieve.\n" #~ "Maybe study doesn't exist or you have a wrong PACS server configuration." #~ msgstr "" #~ "Nenhum resultado obtido. Talvez você tenha uma configuração inválida do " #~ "servidor PACS" #~ msgid "Clean" #~ msgstr "Limpar" #~ msgid "Error: " #~ msgstr "Erro: " #~ msgid "Error: No images were downloaded" #~ msgstr "Erro: Nenhuma imagem foi baixada" #~ msgid "Error starting network support" #~ msgstr "Erro ao iniciar o suporte a rede" #~ msgid "The selected directory does must be empty" #~ msgstr "O diretório selecionado não pode ser aberto" #~ msgid "Choose the import profile" #~ msgstr "Escolha o perfil de importação" #~ msgid "An error ocurred loading Ginkgo News check your internet connection" #~ msgstr "" #~ "Um erro ocorreu carregando o Ginkgo News. Verifique sua conexão com a " #~ "internet" #~ msgid "%m-%d-%y %H:%M:%S,%q" #~ msgstr "%d-%m-%y %H:%M:%S,%q" #~ msgid "Extensions Support" #~ msgstr "Suporte a extensões" #~ msgid "URL for new extensions" #~ msgstr "URL para novas extensões" #~ msgid "" #~ "\n" #~ "There are %d files that overwrite existing files" #~ msgstr "" #~ "\n" #~ "Existem %d arquivos que sobrescrevem arquivos existentes" #~ msgid "Display Options" #~ msgstr "Opções de Exibição" #~ msgid "Close Panel" #~ msgstr "Fechar Painel" #~ msgid "Close All" #~ msgstr "Fechar todos" #~ msgid "Error deleting the patient in the database:\n" #~ msgstr "Erro ao deletar o paciente no banco de dados:\n" #~ msgid "Error deleting the Study of database:\n" #~ msgstr "Erro ao deletar o Estudo do banco de dados:\n" #~ msgid "Error deleting file from de database: \n" #~ msgstr "Erro ao deletar arquivo do banco de dados: \n" #~ msgid "Error deleting file from database:\n" #~ msgstr "Erro ao deletar um arquivo do banco de dados:\n" #~ msgid "Closing windows..." #~ msgstr "Fechando janelas..." #~ msgid "Opening series..." #~ msgstr "Abrindo séries..." #~ msgid "Activate" #~ msgstr "Ativar" #~ msgid "Not loaded" #~ msgstr "Not loaded" #~ msgid "Import global..." #~ msgstr "&Importar ..." #~ msgid "Obtain extensions..." #~ msgstr "Obtain extensions..." #~ msgid "1.0" #~ msgstr "1.0" #~ msgid "Select files you want to export" #~ msgstr "Selecione os arquivos DICOM que você deseja enviar" #~ msgid "Select Series you want to export" #~ msgstr "Select Series you want to export" #~ msgid "You can't remove opened studies" #~ msgstr "Você não pode remover estudos abertos" #~ msgid "error, have tried to select a file that is not added to history" #~ msgstr "" #~ "erro, tentou-se selecionar um arquivo que não está adicionado ao histórico" #~ msgid "" #~ "\n" #~ "There aren't any stored study that matches with the search filter.\n" #~ msgstr "" #~ "\n" #~ "Não existem estudos guardados que correspondem com o filtro de busca\n" #~ msgid "" #~ "\n" #~ "To begin working must change filter criteria, acquire an existing study " #~ "or import images in DICOM format.\n" #~ msgstr "" #~ "\n" #~ "Para começar é necessário alterar os critérios do filtro, adquirir um " #~ "estudo existente ou importar imagens no formato DICOM.\n" #~ msgid "" #~ "\n" #~ "There is no size in the medical history to show every patients\n" #~ msgstr "" #~ "\n" #~ "Não existe espaço no histórico médico para mostrar todos os pacientes\n" #~ msgid "" #~ "\n" #~ "Try using filters or collapsing nodes and refresh search\n" #~ msgstr "" #~ "\n" #~ "Tente utilizar filtros ou reduzir nós e atualize a busca\n" #~ msgid "Acquiring a new DICOM study" #~ msgstr "Adquirindo um novo estudo DICOM" #~ msgid "&Open File" #~ msgstr "&Abrir Arquivo" #~ msgid "Open a DICOM file" #~ msgstr "Abrir um arquivo DICOM" #~ msgid "&Open Folder" #~ msgstr "&Abrir Diretório" #~ msgid "Acquire from a local folder" #~ msgstr "Adquirir de um diretório local" #~ msgid "&Import ..." #~ msgstr "&Importar ..." #~ msgid "12412012 Q" #~ msgstr "12412012 Q" #~ msgid "31/08/1983" #~ msgstr "31/08/1983" #~ msgid "10:20" #~ msgstr "10:20" #~ msgid "31/02/2010" #~ msgstr "31/02/2010" #~ msgid "CT" #~ msgstr "CT" #~ msgid "" #~ msgstr "" #~ msgid "Birth date: " #~ msgstr "Data de nascimento: " #~ msgid "&Delete Patient from History" #~ msgstr "&Deletar paciente do histórico" #~ msgid "Failed to remove patient, you have to close opened studies" #~ msgstr "" #~ "Não foi possível remover paciente, você precisa fechar os estudos abertos" #~ msgid " for all their support in Ginkgo CADx creation!" #~ msgstr " por todo seu apoio na criação do Ginkgo CADx!" #~ msgid "" #~ "Debian-Med team specially Andreas Tille and Karlsten Hilbert: packaging, " #~ "testing and bug reporting" #~ msgstr "" #~ "time Debian-Med especialmente Andreas Tille e Karlsten Hilbert: " #~ "empacotamento, testes e relatórios de bug" #~ msgid "Acquire from a removable unit" #~ msgstr "Acquire from a removable unit" #~ msgid "DICOM &acquisition from PACS" #~ msgstr "DICOM &acquisition from PACS" #~ msgid "Get extensions ..." #~ msgstr "Obter extensões ..." #~ msgid "Start page ..." #~ msgstr "Página inicial ..." #~ msgid "About &Ginkgo CADx ..." #~ msgstr "Sobre o &Ginkgo CADx ..." #~ msgid "About Ginkgo CADx ..." #~ msgstr "Sobre o Ginkgo CADx ..." #~ msgid "Ginkgo CADx settings" #~ msgstr "Ginkgo CADx settings" #~ msgid "3D tools" #~ msgstr "Ferramentas 3D" #~ msgid "Creating new images ..." #~ msgstr "Criando novas imagens ..." #~ msgid "Show On Startup" #~ msgstr "Exibir ao Iniciar" #~ msgid "Deleting a Column" #~ msgstr "Deletando Coluna" #~ msgid "Deleting a Row" #~ msgstr "Deletando Linha" #~ msgid "1x1" #~ msgstr "1x1" #~ msgid "1x2" #~ msgstr "1x2" #~ msgid "2x1" #~ msgstr "2x1" #~ msgid "2X2" #~ msgstr "2X2" #~ msgid "3x3" #~ msgstr "3x3" #~ msgid "4x4" #~ msgstr "4x4" #~ msgid "About Ginkgo CADx..." #~ msgstr "Sobre o Ginkgo CADx ..." #~ msgid " WL" #~ msgstr " WL" #~ msgid " WW" #~ msgstr " WW" #~ msgid " is compatible with Ginkgo CADx " #~ msgstr " é compatível com o Ginkgo CADx " #~ msgid "Are you sure to delete the tag" #~ msgstr "Tem certeza que deseja deletar a tag" #~ msgid "Birthday" #~ msgstr "Data de nascimento" #~ msgid "Code:" #~ msgstr "Código:" #~ msgid "Confirm the removal of the server" #~ msgstr "Confirmar remoção do servidor" #~ msgid "Correction" #~ msgstr "Correção" #~ msgid "Error in receiving the response" #~ msgstr "Erro ao receber a resposta" #~ msgid "Error when making SSL connection" #~ msgstr "Erro ao fazer a conexão SSL" #~ msgid "Error when making the request, writing incomplete" #~ msgstr "Erro ao fazer a requisição, escrita incompleta" #~ msgid "" #~ "Failed to perform the HTTP request, the server returned the error code " #~ msgstr "" #~ "Falha ao fazer a requisição HTTP, o servidor retornou com código de erro " #~ msgid "In connection openssl Exception:" #~ msgstr "Exceção durante conexão openssl" #~ msgid "No options" #~ msgstr "Sem opções" #~ msgid "No results obtained" #~ msgstr "Nenhum resultado obtido" #~ msgid "http://ginkgo-cadx.com/en/extensions/" #~ msgstr "http://ginkgo-cadx.com/en/extensions/" #~ msgid "Association Aborted" #~ msgstr "Associação Abortada" #~ msgid "" #~ "Error in interpreting the parameters of the command line. The file or " #~ "directory doesn't exist (" #~ msgstr "" #~ "Erro ao interpretar os parâmetros da linha de comando. O arquivo ou " #~ "diretório não existe (" #~ msgid "Open again" #~ msgstr "Abrir novamente" #~ msgid "" #~ "The series selected is already open\n" #~ "Do you want to open it again?" #~ msgstr "" #~ "A série selecionada já está aberta\n" #~ "Você deseja abri-la novamente?" #~ msgid "The service did not respond correctly to the DICOM standard:" #~ msgstr "O serviço não respondeu corretamente ao padrão DICOM:" ginkgocadx-3.8.7/cadxcore/lang/pt/wxstd.mo000066400000000000000000003041461314736454600205360ustar00rootroot00000000000000'\Oi?ij?jSjdjhjqjwjjjjjjjk$k 7kBkKk Zk,ekkk k kk kkk kkk lll-l4l;lDlJlalilzlllllll llllllllm#m*m 2m=mCm JmWm\mbmgmmm um mmmmmmm mm m m m m nnnn/n8nKnTn[ncninnnnnnnnn n nnn nno ooo7o4Go$|o!oo*o/p:6pqpup|p p ppppppp p p p p pp p qq,q>qQqYq jq wq q qqqqqq#q/qr-rBr3Dr6xrrrr rs&sAsXsqsssssstt6tMt]tutttttt4t.u/u>u Qu \uhulu~uu u6uu"u:vXv_v sv~vvvvvvw .wOwiwwwwww!w"x?x-Yx1x(xxx y#y7y>yCyWy jywyyyyyyyy z&z-z05zfzlz tzz)zzzz{2{%Q{#w{"{*{({&|%9|%_||"|?|}}1;} m}}}!}}}}(~(C~-l~3~~ ~-5K%g)-Ff)'р"2;Db i v '!ف+'D"c Â3ς "!D$b# ̃(%2$X&}!&Ƅ#"#4*X!#Ʌ υم( 3)<fn (Ɔ߆$ <V!r!Ї("/.R'/Cو#A(Y9Չ.3 FTj~,1֊0%9%_!#ߋ / 6 B O [gx-Ռ ݌~j z"Qۍ-2Dvw  -DX]qu{ ͏ L6%ܐ !0BsJ,ۑ$-/K.gђ -"?"b9$0"1&T"{8הG/XA.ʕ28)k2/%,#R#v3"Η% $3TX'ǘ"!*$L qΙ#"-3'a"5' &*-QS/ӛ+&/,V2-&& 2+P(|'!͝)37-k$מ)2&!Y{=4 1 7BI N/Z ʠ Рܠ '+Ss #!#2)8\ %΢ *IN St'ϣԣ 2A`z" ڤ '5]}w.$7*2b)ק$j%+%ը/+2EK-` (ȩ#6-6d#ƪ1%0V!p!Ϋ! !$F _& ƬЬ   $.6=FO Wa iu }   ǭέԭ ٭!2La%|ܮ.64 k0y ݯ #)4^z | 3 =&Ho t !" ߱* B LZck pz*}o$# H%i%д'ٴ)F[&b ʵ!͵  40R ˶0LQV#uɷٷ+$Hm%$θ$5$Rw$$ֹ$=$Z$Ǻ Ϻ ݺ  0FL\ dp"1 ɼ׼ ݼ  )8 HV^o   ѽHݽ&;DV]c{!3#r"Dڿ -6 >K ]k{    &/<l  < 0<Wn% )# D?M'7%_*  -;1i+%)(D6L #>Ys ,0Gdzz()H0ro*;'Lt. !1'Ai|0MO<@Y#'K^Bo;L]An%;*D$o ,$ 'Em$'+Ig}+2 L"Vy (D do   ".Ql ","Eh,1%&.* Y/z ;:0=;\>;5I9,.-!E gu*!)6>`#/07-V*(# '/'W" !$>c)r#" &-/6f{#/ 2<4B!w89. ;A G Q\c+"# :KRXs | "  & )3]q x  -$ 04GCM  $% 6 De y " 3*.Y ^ hvx1'Y5[  !-Kkt 3  )9 L X ep ) !) ; E OYm   (/ 5 ?KZlr z    .: R] fpy     $17>FKj=|/(),0V=   & 3 @M"O r~%  .? S^ dn*u6@=I! "9Te|*:Q eo u'"6?AVo5"4+WI :Ri / I!T)v,<@*&k  0 CNdlr = GNV1s<0 +4%`,163>P@C44I.~,M$(*MLx=/(32\!-<?%OeQ-55Ck$+6-72e5B0*B,m&<;(:5c     6 E 4[ 0 3 % $ &@ $g    B   *+ $V .{ ) # # . K +k * - , / 4M 6 ) ; ')Gq x0 > /#9 ] h4s+2)"4L-3'1 0=<n(3D-ME{X:%UF{#K'2$Z(/;6@rA27(`h/0 /H O \ j w"/!  ++nF:}  ) ' 0'<$d)/ Pjo!'5 #'3KW3'*R(T!}=&+*0[;x4(A )T 6~ . . *! >!9_!!&!D!=#"Ha"2")" #6(#._##3#B#$7=$,u$.$D$*%A%)_%1%p%$,&.Q&&-&.&/&&+' R'*s'-'7'0(>5(/t(%(E(;)*L)4w)5)W)7:*9r*+*4*H +4V+*+4+2+9,4X,,,),1,-2/-.b--.-&-D.?L.2..1.1.',/T/e/ //// /;// 00 020D0 K0%Y0&000-0#0161 P1Z1&o1$1%131>2 T2b2*s22222)3,323%73]3+z3333334:4*Q4'|4 4 444(4'5(?5!h5-5#55566 66#o7=7<738B8#^8/884?95t9+9:9::8:@:5V::: :#:0:+;$2;?W;?;%;;<@&< g<"<< << =!= ;=\= v====#= >*>H>O>V>Z>a> j> u> >>>>>> >> >> > >>> ? ? ?"?)?/?8?A?V?_?{?????(?%@D@b@"@@@L@A:'AbArA%AAA A7A6B!TBvBB BBB MCXC+pCC C CC C(C$CD)D9DBDGDcD|D DD DDDDDAD +ELEF<F87G2pG<G;GH($HMH=fHHH%H HHII.I$1IVIeIzIII<IJ JJ%J,J&2J%YJJ"JJ#JJJ'K-(K&VK}KKKKKKK#L8L$VL{L#LL#LL#M>M#[MM#MM#MN#NBN#_NN NNNNNNN0 O=OCO TO ^OjO$O(O+O*O*PPP PQQQ!8QZQpQQQQQ QQRR 0R >R JRVRiR R]RRS S$S+S 3S TS^S vS!S;SS!TTTT%TPT>U NU ZUeUwUUUUUUUU VV !V+V4V:VBVKVRVeV uVV*V*VVVV W#W ?W MW!WWUyWW"W"X (X&IX*pX X&X*X%X YY,Y YYY Y!Y Z$+ZPZ3pZ0Z Z5Z,[J[f[m[u[~[ [0[A[@\2F\/y\6\ \\\]E]b]i]]]]]]] ]](]^8^R^o^^^^^^^,^._$M_r____6W`2`6`u`!naaa%aaab)b:bVbobbb2Bcuc$c#cc(cd,dHdfd4drdt-eTeje2bfffSf#g ;g"GgjgpgDgggIgChVh[hth$hh hh6h2i Pi Ziei0~iiii$i'j7j$Oj'tjjj jj4j'%kMkmkkEkk2l5lOlTlgll-ll&l%m+m 2m ?m LmZmbm'mmmm mm nn ,n 7nEnXntnn$nnno!o =oHogo&oo o6o"p.=p&lp5p+pp?p39q8mqqqqAqrLr"r1sMHsJsOsK1tM}tteu~uu4Hv!}vv>}w:w0w(x%7x]x fx/px"x-x;x!-yIOyJyy9yR8z\z4zJ{4h{{B{I|DJ|9|9|2}!6}4X}8}7}7}E6~|~/~~0~ #%4Zip4%#9B|A&LBg2 ݁#;%BJh(,܂/ 9PY*^   ƃσ(Ӄ#21B9t„ʄۄ (5.d3хAم$5:B[ k u% Ά*"BR [)f"Ç;܇3LQ Wd|3M<Aa63j]u7f%:[i+ 9O~9;@Yh@#a\'_ ;"DV2<)SqM.se;yDp,Ir$cba,'aFEp!(|]4Bd?=kyE;`q5 sLt.Rz1t[=%JMO?8 C'O7djl kv8m*rS$Q`DtGC{=zvO~JE.vdQ  o jRs>/{W!\\ ZN@ 0H1btIV|"1#gNV>0luv#,SS:k Tf7/YCq68&>zuMBu3Yx_2/9It)kp*%:w}pJ=?KW)+2fZWcT4BO}:hFPG&  }(z"-{-AF69[31b >i7~{Fr N P ,+Cc8zDLB@U"r\Ij#]X^]XyTH4LrPK/-+R'e& 8?l#e"y$2~]- wm1L'6b!^q q <65xBo+V4ZHQf%wb,*_lKJNLH<w?`UG0hTm53[_U0xx^QGogC ^E5Z750}nDi;E.j < nwh%p|W_ e&o*({T\aJ g!RgR^dv/Ko`g  >i!c)Xkm`:HA=$dhAU2n nxKu&}NfU)MP@X|Sylm$.WA~*YQ94seI[FnYZsVP-i Xc((G Please send this report to the program maintainer, thank you! Thank you and we're sorry for the inconvenience! (error %ld: %s) - Preview bold italic light#10 Envelope, 4 1/8 x 9 1/2 in#11 Envelope, 4 1/2 x 10 3/8 in#12 Envelope, 4 3/4 x 11 in#14 Envelope, 5 x 11 1/2 in#9 Envelope, 3 7/8 x 8 7/8 in%i of %i%ld byte%ld bytes%s (or %s)%s Error%s Information%s Warning%s did not fit the tar header for entry '%s'%s files (%s)|%s&About&Actual Size&Alignment&Apply&Apply Style&Arrange Icons&Back&Based on:&Bold&Bullet style:&Cancel&Cascade&Character code:&Clear&Close&Colour:&Copy&Debug report preview:&Delete&Delete Style...&Details&Down&Edit&Edit Style...&File&Find&Finish&Font family:&Font for Level...&Font:&Forward&From:&Help&Home&Indentation (tenths of a mm)&Indeterminate&Index&Italic&Justified&Left&Left:&List level:&Log&Move&New&Next&Next >&Next Tip&Next style:&No&Notes:&Number:&OK&Open...&Paste&Point size:&Position (tenths of a mm):&Preferences&Previous&Print...&Properties&Quit&Redo&Redo &Rename Style...&Replace&Restart numbering&Restore&Right&Right:&Save&Show tips at startup&Size&Size:&Spacing (tenths of a mm)&Stop&Style:&Styles:&Subset:&Symbol:&Underline&Underlining:&Undo&Undo &Unindent&Up&Weight:&Window&Yes'%s' has extra '..', ignored.'%s' is invalid'%s' is not a correct numeric value for option '%s'.'%s' is not a valid message catalog.'%s' is probably a binary buffer.'%s' should be numeric.'%s' should only contain ASCII characters.'%s' should only contain alphabetic characters.'%s' should only contain alphabetic or numeric characters.(*)(Help)(None)(Normal text)(bookmarks)(none)**)+-1.510 x 11 in10 x 14 in11 x 17 in12 x 11 in15 x 11 in26 3/4 Envelope, 3 5/8 x 6 1/2 in9 x 11 in: file does not exist!: unknown charset: unknown encoding< &BackBold italic face.
    bold italic underlined
    Bold face. Italic face. >A debug report has been generated in the directory A non empty collection must consist of 'element' nodesA standard bullet name.A2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Transverse 322 x 445 mmA3 Rotated 420 x 297 mmA3 Transverse 297 x 420 mmA3 sheet, 297 x 420 mmA4 Extra 9.27 x 12.69 inA4 Plus 210 x 330 mmA4 Rotated 297 x 210 mmA4 Transverse 210 x 297 mmA4 sheet, 210 x 297 mmA4 small sheet, 210 x 297 mmA5 Extra 174 x 235 mmA5 Rotated 210 x 148 mmA5 Transverse 148 x 210 mmA5 sheet, 148 x 210 mmA6 105 x 148 mmA6 Rotated 148 x 105 mmABCDEFGabcdefg12345ADDASCIIAddAdd current page to bookmarksAdd to custom coloursAddToPropertyCollection called on a generic accessorAddToPropertyCollection called w/o valid adderAdding book %sAfter a paragraph:Align LeftAlign RightAllAll files (%s)|%sAll files (*)|*All files (*.*)|*.*All stylesAlready Registered Object passed to SetObjectClassInfoAlready dialling ISP.Animation file is not of type %ld.Append log to file '%s' (choosing [No] will overwrite it)?ArabicArabic (ISO-8859-6)AttributesAvailable fonts.B4 (ISO) 250 x 353 mmB4 (JIS) Rotated 364 x 257 mmB4 Envelope, 250 x 353 mmB4 sheet, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Rotated 257 x 182 mmB5 (JIS) Transverse 182 x 257 mmB5 Envelope, 176 x 250 mmB5 sheet, 182 x 257 millimeterB6 (JIS) 128 x 182 mmB6 (JIS) Rotated 182 x 128 mmB6 Envelope, 176 x 125 mmBACKBMP: Couldn't allocate memory.BMP: Couldn't save invalid image.BMP: Couldn't write RGB color map.BMP: Couldn't write data.BMP: Couldn't write the file (Bitmap) header.BMP: Couldn't write the file (BitmapInfo) header.BMP: wxImage doesn't have own wxPalette.Background colourBaltic (ISO-8859-13)Baltic (old) (ISO-8859-4)Before a paragraph:BitmapBoldBottom margin (mm):Bullet &Alignment:Bullet styleBulletsC sheet, 17 x 22 inC&learC&olour:C3 Envelope, 324 x 458 mmC4 Envelope, 229 x 324 mmC5 Envelope, 162 x 229 mmC6 Envelope, 114 x 162 mmC65 Envelope, 114 x 229 mmCANCELCAPITALCHM handler currently supports only local files!CLEARCOMMANDCan't &Undo Can't close registry key '%s'Can't copy values of unsupported type %d.Can't create registry key '%s'Can't create threadCan't create window of class %sCan't delete key '%s'Can't delete the INI file '%s'Can't delete value '%s' from key '%s'Can't enumerate subkeys of key '%s'Can't enumerate values of key '%s'Can't export value of unsupported type %d.Can't find current position in file '%s'Can't get info about registry key '%s'Can't initialize zlib deflate stream.Can't initialize zlib inflate stream.Can't open registry key '%s'Can't read from inflate stream: %sCan't read inflate stream: unexpected EOF in underlying stream.Can't read value of '%s'Can't read value of key '%s'Can't save image to file '%s': unknown extension.Can't save log contents to file.Can't set thread priorityCan't set value of '%s'Can't write to deflate stream: %sCancelCannot create mutex.Cannot enumerate files '%s'Cannot enumerate files in directory '%s'Cannot find active dialup connection: %sCannot find the location of address book fileCannot get priority range for scheduling policy %d.Cannot get the hostnameCannot get the official hostnameCannot hang up - no active dialup connection.Cannot initialize OLECannot load icon from '%s'.Cannot load resources from file '%s'.Cannot open HTML document: %sCannot open HTML help book: %sCannot open contents file: %sCannot open file for PostScript printing!Cannot open index file: %sCannot print empty page.Cannot read typename from '%s'!Cannot resume thread %luCannot retrieve thread scheduling policy.Cannot start thread: error writing TLS.Cannot suspend thread %luCannot wait for thread terminationCase sensitiveCeltic (ISO-8859-14)Cen&tredCenteredCentral European (ISO-8859-2)CentreCentre text.Ch&oose...Change List StyleChange StyleCharacter stylesCheck to add a period after the bullet.Check to add a right parenthesis.Check to enclose the bullet in parentheses.Check to make the font bold.Check to make the font italic.Check to make the font underlined.Check to restart numbering.Choose ISP to dialChoose colourChoose fontCircular dependency involving module "%s" detected.Cl&oseClear the log contentsClick to apply the selected style.Click to browse for a symbol.Click to cancel changes to the font.Click to cancel the font selection.Click to change the font colour.Click to change the text colour.Click to choose the font for this level.Click to close this window.Click to confirm changes to the font.Click to confirm the font selection.Click to create a new character style.Click to create a new list style.Click to create a new paragraph style.Click to create a new tab position.Click to delete all tab positions.Click to delete the selected style.Click to delete the selected tab position.Click to edit the selected style.Click to rename the selected style.CloseClose AllClose current documentClose this windowColour:Compressed HTML Help file (*.chm)|*.chm|ComputerConfig entry name cannot start with '%c'.ConfirmConfirm registry updateConnecting...ContentsConversion to charset '%s' doesn't work.Copied to clipboard:"%s"Copies:Copy selectionCould not create temporary file '%s'Could not extract %s into %s: %sCould not find tab for idCould not locate file '%s'.Could not start document preview.Could not start printing.Could not transfer data to windowCouldn't acquire a mutex lockCouldn't add an image to the image list.Couldn't create a timerCouldn't create the overlay windowCouldn't find symbol '%s' in a dynamic libraryCouldn't get the current thread pointerCouldn't init the context on the overlay windowCouldn't load a PNG image - file is corrupted or not enough memory.Couldn't load sound data from '%s'.Couldn't open audio: %sCouldn't register clipboard format '%s'.Couldn't release a mutexCouldn't retrieve information about list control item %d.Couldn't save PNG image.Couldn't terminate threadCreate directoryCreate new directoryCu&tCurrent directory:Cut selectionCyrillic (ISO-8859-5)D sheet, 22 x 34 inDDE poke request failedDECIMALDELDELETEDIB Header: Encoding doesn't match bitdepth.DIB Header: Image height > 32767 pixels for file.DIB Header: Image width > 32767 pixels for file.DIB Header: Unknown bitdepth in file.DIB Header: Unknown encoding in file.DIVIDEDL Envelope, 110 x 220 mmDOWNDebug report "%s"Debug report couldn't be created.Debug report generation has failed.DecorativeDefault encodingDefault printerDeleteDelete A&llDelete StyleDelete TextDelete itemDelete selectionDelete style %s?Deleted stale lock file '%s'.Dependency "%s" of module "%s" doesn't exist.DesktopDeveloped by Dial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it.Did you know...DirectoriesDirectory '%s' couldn't be createdDirectory does not existDirectory doesn't exist.Display all index items that contain given substring. Search is case insensitive.Display options dialogDisplays help as you browse the books on the left.Do you want to overwrite the command used to %s files with extension "%s" ? Current value is %s, New value is %s %1Documentation by Don't SaveDoneDone.Double Japanese Postcard Rotated 148 x 200 mmDoubly used id : %dDownE sheet, 34 x 44 inENDENTERESCESCAPEEXECUTEEdit itemEnter a character style nameEnter a list style nameEnter a paragraph style nameEnter command to open file "%s":Entries foundEnvelope Invite 220 x 220 mmEnvironment variables expansion failed: missing '%c' at position %u in '%s'.ErrorError creating directoryError in reading image DIB.Error reading config options.Error saving user configuration data.Error: Esperanto (ISO-8859-3)Execution of command '%s' failedExecution of command '%s' failed with error: %ulExecutive, 7 1/4 x 10 1/2 inExporting registry key: file "%s" already exists and won't be overwritten.Extended Unix Codepage for Japanese (EUC-JP)Extraction of '%s' into '%s' failed.FFailed to access lock file.Failed to change video modeFailed to clean up debug report directory "%s"Failed to close file handleFailed to close lock file '%s'Failed to close the clipboard.Failed to close the display "%s"Failed to connect: missing username/password.Failed to connect: no ISP to dial.Failed to copy registry value '%s'Failed to copy the contents of registry key '%s' to '%s'.Failed to copy the file '%s' to '%s'Failed to copy the registry subkey '%s' to '%s'.Failed to create DDE stringFailed to create MDI parent frame.Failed to create a temporary file nameFailed to create an anonymous pipeFailed to create connection to server '%s' on topic '%s'Failed to create cursor.Failed to create directory "%s"Failed to create directory '%s' (Do you have the required permissions?)Failed to create registry entry for '%s' files.Failed to create the standard find/replace dialog (error code %d)Failed to display HTML document in %s encodingFailed to empty the clipboard.Failed to enumerate video modesFailed to establish an advise loop with DDE serverFailed to establish dialup connection: %sFailed to execute '%s' Failed to execute curl, please install it in PATH.Failed to find match for regular expression: %sFailed to get ISP names: %sFailed to get data from the clipboardFailed to get the local system timeFailed to get the working directoryFailed to initialize GUI: no built-in themes found.Failed to initialize MS HTML Help.Failed to initialize OpenGLFailed to insert text in the control.Failed to inspect the lock file '%s'Failed to join a thread, potential memory leak detected - please restart the programFailed to kill process %dFailed to load metafile from file "%s".Failed to load mpr.dll.Failed to load shared library '%s'Failed to lock the lock file '%s'Failed to modify file times for '%s'Failed to open CHM archive '%s'.Failed to open display "%s".Failed to open temporary file.Failed to open the clipboard.Failed to put data on the clipboardFailed to read PID from lock file.Failed to redirect child process input/outputFailed to redirect the child process IOFailed to register DDE server '%s'Failed to remember the encoding for the charset '%s'.Failed to remove debug report file "%s"Failed to remove lock file '%s'Failed to remove stale lock file '%s'.Failed to rename registry value '%s' to '%s'.Failed to rename the file '%s' to '%s' because the destination file already exists.Failed to rename the registry key '%s' to '%s'.Failed to retrieve data from the clipboard.Failed to retrieve file times for '%s'Failed to retrieve text of RAS error messageFailed to retrieve the supported clipboard formatsFailed to save the bitmap image to file "%s".Failed to send DDE advise notificationFailed to set FTP transfer mode to %s.Failed to set clipboard data.Failed to set permissions on lock file '%s'Failed to set temporary file permissionsFailed to set text in the text control.Failed to set thread priority %d.Failed to store image '%s' to memory VFS!Failed to terminate a thread.Failed to terminate the advise loop with DDE serverFailed to terminate the dialup connection: %sFailed to touch the file '%s'Failed to unlock lock file '%s'Failed to unregister DDE server '%s'Failed to update user configuration file.Failed to upload the debug report (error code %d).Failed to write to lock file '%s'FileFile '%s' already exists, do you really want to overwrite it?File '%s' already exists. Do you want to replace it?File couldn't be loaded.File errorFile name exists already.FilesFiles (%s)FilterFindFixed font:Fixed size face.
    bold italic Folio, 8 1/2 x 13 inFontFont &weight:Font size:Font st&yle:Font:Fork failedForward hrefs are not supportedFound %i matchesFrom:GIF: Invalid gif index.GIF: data stream seems to be truncated.GIF: error in GIF image format.GIF: not enough memory.GIF: unknown error!!!GTK+ themeGeneric PostScriptGerman Legal Fanfold, 8 1/2 x 13 inGerman Std Fanfold, 8 1/2 x 12 inGetProperty called w/o valid getterGetPropertyCollection called on a generic accessorGetPropertyCollection called w/o valid collection getterGo backGo forwardGo one level up in document hierarchyGo to home directoryGo to parent directoryGraphics art by Greek (ISO-8859-7)Gzip not supported by this version of zlibHELPHOMEHTML Help Project (*.hhp)|*.hhp|HTML anchor %s does not exist.HTML files (*.html;*.htm)|*.html;*.htm|Hebrew (ISO-8859-8)HelpHelp Browser OptionsHelp IndexHelp PrintingHelp TopicsHelp books (*.htb)|*.htb|Help books (*.zip)|*.zip|Help directory "%s" not found.Help file "%s" not found.Help: %sHomeHome directoryICO: Error in reading mask DIB.ICO: Error writing the image file!ICO: Image too tall for an icon.ICO: Image too wide for an icon.ICO: Invalid icon index.IFF: data stream seems to be truncated.IFF: error in IFF image format.IFF: not enough memory.IFF: unknown error!!!INSINSERTIf you have any additional information pertaining to this bug report, please enter it here and it will be joined to it:If you wish to suppress this debug report completely, please choose the "Cancel" button, but be warned that it may hinder improving the program, so if at all possible please do continue with the report generation. Ignoring value "%s" of the key "%s".Illegal Object Class (Non-wxEvtHandler) as Event SourceIllegal Parameter Count for ConstructObject MethodIllegal Parameter Count for Create MethodIllegal directory name.Illegal file specification.Image and mask have different sizes.Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dllImpossible to get child process inputImpossible to get permissions for file '%s'Impossible to overwrite the file '%s'Impossible to set permissions for the file '%s'IndentIndents && SpacingIndexIndian (ISO-8859-12)Initialization failed in post init, aborting.InsertInsert ImageInsert TextInvalid TIFF image index.Invalid display mode specification '%s'.Invalid geometry specification '%s'Invalid lock file '%s'.Invalid or Null Object ID passed to GetObjectClassInfoInvalid or Null Object ID passed to HasObjectClassInfoInvalid regular expression '%s': %sItalicItaly Envelope, 110 x 230 mmJPEG: Couldn't load - file is probably corrupted.JPEG: Couldn't save image.Japanese Double Postcard 200 x 148 mmJapanese Envelope Chou #3Japanese Envelope Chou #3 RotatedJapanese Envelope Chou #4Japanese Envelope Chou #4 RotatedJapanese Envelope Kaku #2Japanese Envelope Kaku #2 RotatedJapanese Envelope Kaku #3Japanese Envelope Kaku #3 RotatedJapanese Envelope You #4Japanese Envelope You #4 RotatedJapanese Postcard 100 x 148 mmJapanese Postcard Rotated 148 x 100 mmJustifiedJustify text left and right.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UPLEFTLandscapeLedger, 17 x 11 inLeftLeft (&first line):Left margin (mm):Left-align text.Legal Extra 9 1/2 x 15 inLegal, 8 1/2 x 14 inLetter Extra 9 1/2 x 12 inLetter Extra Transverse 9.275 x 12 inLetter Plus 8 1/2 x 12.69 inLetter Rotated 11 x 8 1/2 inLetter Small, 8 1/2 x 11 inLetter Transverse 8 1/2 x 11 inLetter, 8 1/2 x 11 inLightLine %lu of map file "%s" has invalid syntax, skipped.Line spacing:Link contained '//', converted to absolute link.List StyleList stylesLists font sizes in points.Lists the available fonts.Load %s fileLoading : Lock file '%s' has incorrect owner.Lock file '%s' has incorrect permissions.Log saved to the file '%s'.Lower case lettersLower case roman numeralsMDI childMENUMS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it.Ma&ximizeMatch caseMemory VFS already contains file '%s'!MenuMetal themeMi&nimizeModernModifiedModule "%s" initialization failedMonarch Envelope, 3 7/8 x 7 1/2 inMove downMove upNUM_LOCKNameNew &Character Style...New &List Style...New &Paragraph Style...New StyleNew directoryNew itemNewNameNextNext pageNoNo animation handler for type %ld defined.No entries found.No font for displaying text in encoding '%s' found, but an alternative encoding '%s' is available. Do you want to use this encoding (otherwise you will have to choose another one)?No font for displaying text in encoding '%s' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly)?No handler found for animation type.No handler found for image type.No image handler for type %d defined.No image handler for type %s defined.No matching page found yetNo soundNo unused colour in image being masked.No unused colour in image.No valid mappings found in the file "%s".Nordic (ISO-8859-10)NormalNormal face
    and underlined. Normal font:Not underlinedNote, 8 1/2 x 11 inNumbered outlineOKObjects must have an id attributeOpen FileOpen HTML documentOpen file "%s"Operation not permitted.Option '%s' requires a value.Option '%s': '%s' cannot be converted to a date.OptionsOrientationPAGEDOWNPAGEUPPAUSEPCX: couldn't allocate memoryPCX: image format unsupportedPCX: invalid imagePCX: this is not a PCX file.PCX: unknown error !!!PCX: version number too lowPGDNPGUPPNM: Couldn't allocate memory.PNM: File format is not recognized.PNM: File seems truncated.PRC 16K 146 x 215 mmPRC 16K RotatedPRC 32K 97 x 151 mmPRC 32K RotatedPRC 32K(Big) 97 x 151 mmPRC 32K(Big) RotatedPRC Envelope #1 102 x 165 mmPRC Envelope #1 Rotated 165 x 102 mmPRC Envelope #10 324 x 458 mmPRC Envelope #10 Rotated 458 x 324 mmPRC Envelope #2 102 x 176 mmPRC Envelope #2 Rotated 176 x 102 mmPRC Envelope #3 125 x 176 mmPRC Envelope #3 Rotated 176 x 125 mmPRC Envelope #4 110 x 208 mmPRC Envelope #4 Rotated 208 x 110 mmPRC Envelope #5 110 x 220 mmPRC Envelope #5 Rotated 220 x 110 mmPRC Envelope #6 120 x 230 mmPRC Envelope #6 Rotated 230 x 120 mmPRC Envelope #7 160 x 230 mmPRC Envelope #7 Rotated 230 x 160 mmPRC Envelope #8 120 x 309 mmPRC Envelope #8 Rotated 309 x 120 mmPRC Envelope #9 229 x 324 mmPRC Envelope #9 Rotated 324 x 229 mmPRINTPage %dPage %d of %dPage SetupPage setupPagesPaper sizeParagraph stylesPassing a already registered object to SetObjectPastePaste selectionPeri&odPermissionsPipe creation failedPlease choose a valid font.Please choose an existing file.Please choose the page to display:Please choose which ISP do you want to connect toPlease install a newer version of comctl32.dll (at least version 4.70 is required but you have %d.%02d) or this program won't operate correctly.PortraitPostScript filePreview:Previous pagePrintPrint PreviewPrint Preview FailurePrint RangePrint SetupPrint in colourPrint spoolingPrint this pagePrint to FilePrinterPrinter command:Printer optionsPrinter options:Printer...Printer:Printing Printing ErrorPrinting page %d...Printing...Processing debug report has failed, leaving the files in "%s" directory.Quarto, 215 x 275 mmQuestionQuit this programRETURNRIGHTRead error on file '%s'ReadyRedo last actionRefreshRegistry key '%s' already exists.Registry key '%s' does not exist, cannot rename it.Registry key '%s' is needed for normal system operation, deleting it will leave your system in unusable state: operation aborted.Registry value '%s' already exists.RegularRelevant entries:RemoveRemove current page from bookmarksRenderer "%s" has incompatible version %d.%d and couldn't be loaded.Renumber ListRep&laceReplaceReplace &allReplace selectionReplace with:Revert to SavedRightRight margin (mm):Right-align text.RomanS&tandard bullet name:SCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACTSaveSave %s fileSave &As...Save AsSave current documentSave current document with a different filenameSave log contents to fileScriptSearchSearch directionSearch for:Search in all booksSearching...SectionsSeek error on file '%s'Seek error on file '%s' (large files not supported by stdio)Select &AllSelect a document templateSelect a document viewSelect regular or bold.Select regular or italic style.Select underlining or no underlining.SelectionSelects the list level to edit.Separator expected after the option '%s'.SetProperty called w/o valid setterSetup...Several active dialup connections found, choosing one randomly.Show &hidden directoriesShow &hidden filesShow about dialogShow allShow all items in indexShow hidden directoriesShow/hide navigation panelShows a Unicode subset.Shows a preview of the bullet settings.Shows a preview of the font settings.Shows a preview of the font.Shows a preview of the paragraph settings.Shows the font preview.Simple monochrome themeSingleSizeSize:SkipSlantSorry, could not open this file.Sorry, not enough memory to create a preview.Sorry, that name is taken. Please choose another.Sorry, the format for this file is unknown.Sound data are in unsupported format.Sound file '%s' is in unsupported format.SpacingStandardStatement, 5 1/2 x 8 1/2 inStatus:String To Colour : Incorrect colour specification : %sStyleStyle OrganiserStyle:SuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSymbolSymbol &font:SymbolsTABTIFF: Couldn't allocate memory.TIFF: Error loading image.TIFF: Error reading image.TIFF: Error saving image.TIFF: Error writing image.Tabloid Extra 11.69 x 18 inTabloid, 11 x 17 inTabsTeletypeTemplatesThai (ISO-8859-11)The FTP server doesn't support passive mode.The FTP server doesn't support the PORT command.The available bullet styles.The available styles.The bullet character.The character code.The charset '%s' is unknown. You may select another charset to replace it with or choose [Cancel] if it cannot be replacedThe clipboard format '%d' doesn't exist.The default style for the next paragraph.The directory '%s' does not exist Create it now?The file '%s' doesn't exist and couldn't be opened. It has been removed from the most recently used files list.The first line indent.The font colour.The font family.The font from which to take the symbol.The font point size.The font size in points.The font style.The font weight.The left indent.The line spacing.The list item number.The range to show.The report contains the files listed below. If any of these files contain private information, please uncheck them and they will be removed from the report. The required parameter '%s' was not specified.The right indent.The spacing after the paragraph.The spacing before the paragraph.The style name.The style on which this style is based.The style preview.The tab position.The tab positions.The text couldn't be saved.The value for the option '%s' must be specified.There was a problem during page setup: you may need to set a default printer.Thread module initialization failed: cannot store value in thread local storageThread module initialization failed: failed to create thread keyThread module initialization failed: impossible to allocate index in thread local storageThread priority setting is ignored.Tile &HorizontallyTile &VerticallyTimeout while waiting for FTP server to connect, try passive mode.Timer creation failed.Tip of the DayTips not available, sorry!To:Too many EndStyle calls!Too many colours in PNG, the image may be slightly blurred.Top margin (mm):Translations by Trying to remove file '%s' from memory VFS, but it is not loaded!Turkish (ISO-8859-9)TypeType a font name.Type a size in points.Type must have enum - long conversionUPUS Std Fanfold, 14 7/8 x 11 inUS-ASCIIUnable to open requested HTML document: %sUnable to play sound asynchronously.UndeleteUnderlinedUndo last actionUnexpected characters following option '%s'.Unexpected parameter '%s'UnicodeUnicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)UnknownUnknown DDE error %08xUnknown Object passed to GetObjectClassInfoUnknown dynamic library errorUnknown encoding (%d)Unknown long option '%s'Unknown option '%s'Unmatched '{' in an entry for mime type %s.Unnamed commandUnsupported clipboard format.Unsupported theme '%s'.UpUpper case lettersUpper case roman numeralsUsage: %sUse the current alignment setting.Validation conflictView files as a detailed viewView files as a list viewViewsWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHTWarning: Western European (ISO-8859-1)Western European with Euro (ISO-8859-15)Whether the font is underlined.Whole wordWhole words onlyWin32 themeWin32s on Windows 3.1Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arabic (CP 1256)Windows Baltic (CP 1257)Windows CE (%d.%d)Windows Central European (CP 1250)Windows Cyrillic (CP 1251)Windows Greek (CP 1253)Windows Hebrew (CP 1255)Windows Korean (CP 949)Windows MEWindows Thai (CP 874)Windows Turkish (CP 1254)Windows Western European (CP 1252)Windows/DOS OEM (CP 437)Write error on file '%s'XML parsing error: '%s' at line %dXPM: Malformed pixel data!XPM: incorrect colour description in line %dXPM: incorrect header format!XPM: malformed colour definition '%s' at line %d!XPM: truncated image data at line %d!YesYou cannot Clear an overlay that is not initedYou cannot Init an overlay twiceYou cannot add a new directory to this section.Zoom &InZoom &OutZoom to &Fita DDEML application has created a prolonged race condition.a DDEML function was called without first calling the DdeInitialize function, or an invalid instance identifier was passed to a DDEML function.a client's attempt to establish a conversation has failed.a memory allocation failed.a parameter failed to be validated by the DDEML.a request for a synchronous advise transaction has timed out.a request for a synchronous data transaction has timed out.a request for a synchronous execute transaction has timed out.a request for a synchronous poke transaction has timed out.a request to end an advise transaction has timed out.a server-side transaction was attempted on a conversation that was terminated by the client, or the server terminated before completing a transaction.a transaction failed.altan application initialized as APPCLASS_MONITOR has attempted to perform a DDE transaction, or an application initialized as APPCMD_CLIENTONLY has attempted to perform server transactions.an internal call to the PostMessage function has failed. an internal error has occurred in the DDEML.an invalid transaction identifier was passed to a DDEML function. Once the application has returned from an XTYP_XACT_COMPLETE callback, the transaction identifier for that callback is no longer valid.assuming this is a multi-part zip concatenatedattempt to change immutable key '%s' ignored.bad arguments to library functionbad signaturebad zipfile offset to entrybinaryboldbuffer is too small for Windows directory.can't close file '%s'can't close file descriptor %dcan't commit changes to file '%s'can't create file '%s'can't delete user configuration file '%s'can't determine if the end of file is reached on descriptor %dcan't execute '%s'can't find central directory in zipcan't find length of file on file descriptor %dcan't find user's HOME, using current directory.can't flush file descriptor %dcan't get seek position on file descriptor %dcan't load any font, abortingcan't open file '%s'can't open global configuration file '%s'.can't open user configuration file '%s'.can't open user configuration file.can't re-initialize zlib deflate streamcan't re-initialize zlib inflate streamcan't read from file descriptor %dcan't remove file '%s'can't remove temporary file '%s'can't seek on file descriptor %dcan't write buffer '%s' to disk.can't write to file descriptor %dcan't write user configuration file.checksum errorchecksum failure reading tar header blockcompression errorconversion to 8-bit encoding failedctrldatedecompression errordefaultdump of the process state (binary)eighteentheightheleventhentry '%s' appears more than once in group '%s'error in data formaterror opening '%s'error opening fileerror reading zip central directoryerror reading zip local headererror writing zip entry '%s': bad crc or lengthfailed to flush the file '%s'fifteenthfifthfile '%s', line %d: '%s' ignored after group header.file '%s', line %d: '=' expected.file '%s', line %d: key '%s' was first found at line %d.file '%s', line %d: value for immutable key '%s' ignored.file '%s': unexpected character %c at line %d.filesfirstfont sizefourteenthfourthgenerate verbose log messagesimageincomplete header block in tarincorrect event handler string, missing dotincorrect size given for tar entryinvalid data in extended tar headerinvalid message box return valueinvalid zip fileitaliclightlocale '%s' cannot be set.midnightnineteenthninthno DDE error.no errornonamenoonnumobjects cannot have XML Text Nodesout of memoryprocess context descriptionread errorreading zip stream (entry %s): bad crcreading zip stream (entry %s): bad lengthreentrancy problem.secondseek errorseventeenthseventhshiftshow this help messagesixteenthsixthspecify display mode to use (e.g. 640x480-16)specify the theme to usestored file length not in Zip headerstrtar entry not opentenththe response to the transaction caused the DDE_FBUSY bit to be set.thirdthirteenthtodaytomorrowtranslator-creditstwelfthtwentiethunderlinedunexpected " at position %d in '%s'.unexpected end of fileunknownunknown class %sunknown errorunknown error (error code %08x).unknown seek originunknown-%dunnamedunnamed%dunsupported Zip compression methodusing catalog '%s' from '%s'.write errorwxGetTimeOfDay failed.wxWidgets could not open display for '%s': exiting.wxWidgets could not open display. Exiting.xxxxyesterdayzlib error %d~Project-Id-Version: wxWidgets 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2013-10-01 19:04+0200 PO-Revision-Date: 2007-09-20 21:59+0100 Last-Translator: Antonio Cardoso Martins Language-Team: Portuguese Language: pt MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: KBabel 1.11.4 Envie este relatório ao programador, Obrigado! Obrigado e desculpe o inconveniência! (erro %ld: %s) - Antevisão destacado itálico leveEnvelope #10, 4 1/8 x 9 1/2 pol.Envelope #11, 4 1/2 x 10 3/8 pol.Envelope #12, 4 3/4 x 11 pol.Envelope #14, 5 x 11 1/2 pol.Envelope #9, 3 7/8 x 8 7/8 pol.%i de %i%ld byte%ld bytes%s (ou %s)%s Erro%s Informação%s Aviso%s não coube no cabeçalho tar para a entrada '%s'%s ficheiros (%s)|%s&SobreT&amanho Actual&Alinhamento&Aplicar&Aplicar Estilo&Organizar Ícones&Retroceder&Baseado em:&DestacadoEstilo do &Marcador:&Cancelar&CascataCódigo de &Caracter:&Limpar&Fechar&Cor:&CopiarAntevisão do relatório de &depuração:&Apagar&Apagar Estilo...&Detalhes&Baixo&Editar&Editar Estilo...&Ficheiro&Procurar&TerminarFamília de &fonte:&Fonte para Nível...&Fonte:&Avançar&De:&Ajuda&Início&Indentação (décimos de mm)&Indeterminado&Índice&Itálico&Justificado&Esquerda&Esquerda:&Lista de nível:&Registo&Mover&Novo&Próximo&Próximo >&Próxima Dica&Próximo estilo:&Não&Notas:&Número:&OK&Abrir...&ColarTamanho do &ponto:&Posição (décimos de mm):&Preferências&Anterior&Imprimir...&Propriedades&Desistir&Refazer&Refazer &Renomear Estilo...&Substituir&Recomeçar numeração&RestaurarDi&reitaDi&reita:&Guardar&Mostrar dicas no inicio&Tamanho&Tamanho:E&spaçamento (décimos de mm)&PararE&stilo:E&stilos:&Subconjunto:&Símbolo:S&ublinhadoS&ublinhar:&Desfazer&Desfazer &Desindentar&Cima&Peso:&Janela&Sim'%s' tem extra '..', ignorado.'%s' é inválido'%s' não é um valor numérico correcto para a opção '%s'.'%s' não é uma mensagem válida do catálogo.'%s' é capaz de ser um buffer binário.'%s' deve ser numérico.'%s' apenas deve conter caracteres ASCII.'%s' deve apenas conter caracteres alfabéticos.'%s' deve apenas conter caracteres alfabéticos e numéricos.(*)(Ajuda)(Nenhum)(Texto normal)(marcadores)(nenhum)**)+-1.510 x 11 pol.10 x 14 pol.11 x 17 pol.12 x 11 pol.15 x 11 pol.2Envelope 6 3/4, 3 5/8 x 6 1/2 pol.9 x 11 pol.: ficheiro inexistente!: conjunto de caracteres desconhecido: codificação desconhecida< &AtrásFace destacado itálico.
    destacado itálico sublinhado
    Face destacado. Face itálico. >Um relatório de depuração de erros foi gerado no directório uma colecção não vazia deve consistir em nós de 'element'Um nome standard para o marcador.A2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Transverso 322 x 445 mmA3 Rodado 420 x 297 mmA3 Transverso 297 x 420 mmFolha A3, 297 x 420 mmA4 Extra 9.27 x 12.69 pol.A4+ 210 x 330 mmA4 Rodado 297 x 210 mmA4 Transverso 210 x 297 mmFolha A4, 210 x 297 mmA4 folha pequena, 210x297 mmA5 Extra 174 x 235 mmA5 Rodado 210 x 148 mmA5 Transverso 148 x 210 mmA5 folha, 148 x 210 mmA6 105 x 148 mmA6 Rodado 148 x 105 mmABCDEFGabcdefg12345ADICIONARASCIIAdicionarAdicionar página actual aos marcadoresAdicionar às cores personalizadasAddToPropertyCollection chamando num acessor genéricoAddToPropertyCollection chamando com ou sem adicionador válidoA adicionar livro %sDepois de um parágrafo:Alinhar à EsquerdaAlinhar à DireitaTodosTodos os ficheiros (%s)|%sTodos os ficheiros (*)|*Todos os ficheiros (*.*)|*.*Todos os estilosObjecto Já Registado passado para SetObjectClassInfoJá está a ligar ao serviço ISP.Ficheiro de animação não é do tipo %ld.Adicionar ao ficheiro de registo '%s' (escolher [Não] vai substitui-lo)?ÁrabeÁrabe (ISO-8859-6)AtributosFontes disponíveis.B4 (ISO) 250 x 353 mmB4 (JIS) Rodado 364 x 257 mmEnvelope B4, 250x353 mmFolha B4, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Rodado 257 x 182 mmB5 (JIS) Transverso 182 x 257 mmEnvelope B5, 176 x 250 mmB5 folha, 182 x 257 millimeterB6 (JIS) 128 x 182 mmB6 (JIS) Rodado 182 x 128 mmEnvelope B6, 176 x 125 mmRETROCEDERBMP: Impossível alocar memória.BMP: Impossível gravar imagem inválida.BMP: Impossível escrever mapa de cores RGB.BMP: Impossível escrever data.BMP: Impossível escrever o cabeçalho do ficheiro (Bitmap).BMP: Impossível escrever o cabeçalho do ficheiro (BitmapInfo).BMP: wxImage não tem a sua wxPalette.Cor de fundoBáltico (ISO-8859-13)Báltico (antigo) (ISO-8859-4)Antes de um parágrafo:BitmapDestacadoMargem de rodapé (mm):&Alinhamento de Marcador:Estilo de marcadorMarcadoresFolha C, 17 x 22 pol.&LimparC&or:Envelope C3, 324 x 458 mmEnvelope C4, 229 x 324 mmEnvelope C5, 162 x 229 mmEnvelope C6, 114 x 162 mmEnvelope C65, 114 x 229 mmCANCELARMAIÚSCULAO manuseador CHM actualmente apenas suporta ficheiros locais!LIMPARCOMANDONão é possível &Desfazer Não foi possível fechar a chave de registo '%s'Não foi possível copiar valores do tipo %d não suportado.Não foi possível criar a chave de registo '%s'Não é possível criar a threadNão é possível criar janela da classe %sNão é possível apagar a chave '%s'Não é possível apagar o ficheiro INI '%s'Não é possível apagar valor '%s' da chave '%s'Não é possível enumerar as sub-chaves da chave '%s'Não é possível enumerar os valores da chave '%s'Não foi possível exportar valores de tipo %d não suportado.Não foi possível encontrar a posição actual no ficheiro '%s'Não foi possível obter informação sobre a chave de registo '%s'Não é possível inicializar o zlib deflate stream.Não é possível inicializar o zlib inflate stream.Não foi possível abrir chave de registo '%s'Não foi possível ler do inflate stream: %sNão foi possível ler o inflate stream: EOF inexperado no stream subjacente.Não foi possível ler valor de '%s'Não foi possível ler valor da chave '%s'Não foi possível gravar imagem para ficheiro '%s': extensão desconhecida.Não foi possível gravar conteúdo do registo para ficheiro.Não foi possível definir prioridade da threadNão foi possível definir valor de '%s'Não foi possível escrever no edeflate stream: %sCancelarNão foi possível criar o mutex.Não foi possível enumerar os ficheiros '%s'Não foi possível enumerar os ficheiros no directório '%s'Não foi possível encontrar a ligação telefónica activa: %sNão foi possível encontrar a localização do ficheiro do livro de endereçosNão foi possível obter a gama de prioridade para a política de agendamento %d.Não foi possível obter o nome de computadorNão foi possível obter o nome de computador oficialNão foi possível desligar - nenhuma ligação telefónica activa.Não foi possível inicializar o OLENão foi possível carregar ícone de '%s'.Não foi possível carregar recursos do ficheiro '%s'.Não foi possível abrir o documento HTML: %sNão foi possível abrir o livro de ajuda HTML: %sNão foi possível abrir o ficheiro de conteúdos: %sNão foi possível abrir o ficheiro para impressão em PostScript!Não foi possível abrir ficheiro de índice: %sNão foi possível imprimir página vazia.Não foi possível ler tipo de nome de '%s'!Não é possível retomar a thread %luNão foi possível obter thread de política de agendamento.Não é possível iniciar a thread: erro ao escrever o TLS.Não é possível suspender a thread %luNão é possível esperar pela terminação da threadSensível à capitulaçãoCéltico (ISO-8859-14)Cen&tradoCentradoEuropa Central (ISO-8859-2)CentroCentrar texto.Esc&olher...Alterar Lista de EstilosAlterar EstiloEstilos de CaracteresMarcar para adicionar um ponto a seguir ao marcador.Marcar para adicionar um parêntesis à direita.Marque para circundar o marcador entre parêntesis.Marque para tornar a letra destacada.Marque para tornar a letra itálica.Marque para tornar a letra sublinhada.Marque para reiniciar a numeração.Escolha o ISP para marcarEscolher corEscolher fonteFoi detectada uma dependência circular envolvendo o módulo "%s".F&echarLimpar o conteúdo do registoClique para aplicar o estilo seleccionado.Clique para procurar por um simbolo.Clique para cancelar as alterações à fonte.Clique para cancelar selecção de fonte.Clique para alterar a cor da fonte.Clique para alterar a cor do texto.Clique para escolher a fonte para este nível.Clique para fechar esta janela.Clique para confirmar alterações a fonte.Clique para confirmar selecção de fonte.Clique para criar um novo estilo de caracter.Clique para criar uma nova lista de estilos.Clique para criar um novo estilo de parágrafo.Clique para criar uma nova posição de tabulação.Clique para apagar todas as posições de tabulação.Clique para apagar o estilo seleccionado.Clique para apagar a posição de tabulação seleccionada.Clique para editar estilo seleccionado.Clique para renomear estilo seleccionado.FecharFechar TudoFechar documento actualFechar esta janelaCor:Ficheiro de ajuda HTML comprimido (*.chm)|*.chm|ComputadorNome de entrada de configuração não pode começar por '%c'.ConfirmarConfirmar actualização de registoA ligar...ConteúdosConversão código de caracteres '%s' não funciona.Copiado para a área de transferência:"%s"Cópias:Copiar selecçãoNão foi possível criar ficheiro temporário '%s'Não foi possível extrair %s para %s: %sNão foi possível localizar a tabulação para o idNão foi possível localizar o ficheiro '%s'.Não foi possível iniciar antevisão do documento.Não foi possível inicia a impressão.Não foi possível transferir dados para a janelaNão foi possível adquirir um bloqueio à mutexNão foi possível adicionar uma imagem à lista de imagens.Não foi possível criar um temporizadorNão foi possível criar a janela de sobreposiçãoNão foi possível encontrar o símbolo '%s' numa livraria dinâmicaimpossível obter o ponteiro actual da threadNão foi possível inicializar o contexto na janela de sobreposiçãoNão foi possível carregar uma imagem PNG - Ficheiro corrupto ou memória insuficiente.Não foi possível carregar dados de som a partir de '%s'.Não foi possível abrir o áudio: %sNão foi possível registar o formato da área de transferência '%s'.Não foi possível libertar a mutexNão foi possível obter informação sobre o item da lista de controlo %d.Não foi possível gravar a imagem PNG.Não foi possível terminar a threadCriar directórioCriar novo directórioCor&tarDirectório actual:Cortar selecçãoCirílico (ISO-8859-5)Folha D, 22 x 34 pol.Falhou o pedido de poke DDEDÉCIMALAPAGARAPAGARCabeçalho DIB: Codificação não coincide com o bitdepth.Cabeçalho DIB: Altura da imagem > 32767 pixeis para o ficheiro.Cabeçalho DIB: Largura da imagem > 32767 pixeis para o ficheiro.Cabeçalho DIB: Bitdepth desconhecido no ficheiro.Cabeçalho DIB: Codificação desconhecida no ficheiro.DIVIDIREnvelope DL, 110 x 220 mmBAIXORelatório de depuração "%s"Relatório de depuração não pode ser criado.Falhou a geração do relatório de depuração.DecorativeCodificação pré-definidaImpressora pré-definidaApagarApagar T&udoApagar EstiloApagar TextoApagar ItemApagar selecçãoApagar estilo %s?Ficheiro de bloqueio apagado '%s'.Dependência "%s" do módulo "%s" não existe.Ambiente de TrabalhoDesenvolvido por Funções de ligação à telefónica não estão disponíveis, em virtude do serviço de acesso remoto (RAS) não estar instalado neste computador. Por favor Instale-o.Sabia que...DirectóriosNão foi possível criar o directório '%s'O directório não existeO directório não existe.Mostrar todos os items de índice que contenham a seguinte cadeia. A pesquisa é insensível à capitulação.Caixa de diálogo do ecrãMostrar ajuda à medida que navega nos livros à esquerda.Pretende substituir o comando utilizado para %s ficheiros com extensão "%s" ? O valor actual é %s, O novo valor é %s %1Documentado por Não GravarFeitoFeito.Postal Japonês Duplo Rodado 148 x 200 mmId usado duplamente : %dBaixoFolha E, 34 x 44 pol.ENDENTERESCESCAPEEXECUTAREditar itemIntroduza um nome de estilo de caracterIntroduza um nome de estilo de listaIntroduza um nome de estilo de parágrafoIntroduza o comando para abrir o ficheiro "%s":Entradas encontradasEnvelope de Convite 220 x 220 mmFalhou a expansão das variáveis de ambiente: falta %c na posição %u em '%s'.ErroErro ao criar directórioErro na leitura do DIB da imagem.Erro ao ler opções de configuração.Erro ao gravar dados de configuração do utilizador.Erro: Esperanto (ISO-8859-3)Falhou a execução do comando '%s'Execução do comando '%s' terminou com o erro: %ulExecutivo, 7 1/4 x 10 1/2 pol.Exportação da chave de registo: o ficheiro "%s" já existe e não vai ser sobreposto.Código de Página Extendido para Japonês (EUC-JP)Falhou a extracção de '%s' para '%s'.FFalha no acesso ao ficheiro de bloqueio.Falha ao alterar o modo de vídeoFalha ao limpar directório de relatório de depuração "%s"Falha ao fechar manuseador de ficheiroFalha ao fechar o ficheiro de bloqueio '%s'Falha ao fechar a área de transferência.Falha ao fechar o ecrã "%s"Falha na ligação: falta nome de utilizador/palavra passe.Falha na ligação: nenhum serviço ISP para marcar.Falha na cópia do valor do registo '%s'Falha ao copiar os conteúdos da chave de registo '%s' para '%s'.Falha ao copiar o ficheiro '%s' para '%s'Falha ao copiar a sub-chave de registo '%s' para '%s'.Falha ne criação da cadeia de caracteres DDEFalha na criação da moldura MDI progenitora.Falha a criar nome de ficheiro temporárioFalha ao criar pipeline anónimoFalha ao criar ligação ao servidor '%s' no tópico '%s'Falha de criação de cursor.Falha de criação de directório "%s"Falha ao criar o directório '%s' (Tem as permissões necessárias?)Falha de criação de entrada de registo para ficheiros '%s'.Falha a criar dialogo standard de procura/substitui (código de erro %d)Falha a mostrar documento HTML na codificação %sFalha a limpar a área de transferência.Falha a enumerar modos de vídeoFalha ao estabelecer um advise loop com o servidor DDEFalha ao estabelecer ligação telefónica: %sFalha ao executar '%s' Falha a executar curl, por favor instale-o no PATH.Falha a encontrar resultados na procura por expressão regular: %sFalha ao obter nomes de ISP: %sFalha na obtenção de dados da área de transferênciaFalha na obtenção da hora local do sistemaFalha na obtenção do directório de trabalhoFalha ao inicializar o GUI: não foram encontrados temas integrados.Falha na inicialização da ajuda MS HTML.Falha ao inicializar o OpenGLFalha de inserção de texto no controlo.Falha de inspecção no ficheiro de bloqueio '%s'Falha na associação a uma thread, foi detectada uma potencial fuga de memória - por favor reinicie o programaFalha no encerramento do processo %dFalha na leitura de metafile do ficheiro "%s".Falha na abertura do mpr.dll.Falha na abertura da livraria partilhada '%s'Falha no bloqueio do ficheiro de bloqueio '%s'Falha a modificar o tempo do ficheiro para '%s'Falha na abertura do arquivo CHM '%s'.Falha na abertura do ecrã "%s".Falha na abertura de ficheiro temporário.Falha na abertura da área de transferência.Falha na inserção de dados na área de transferênciaFalha na leitura do PID do ficheiro de bloqueio.Falha no redireccionamento do processo filho de entrada/saídaFalha no redireccionamento do processo filho ESFalha no registo do servidor DDE '%s'Falha ao recordar a codificação para o conjunto de caracteres '%s'.Falha ao remover ficheiro de relatório de depuração "%s"Falha ao remover ficheiro de bloqueio '%s'Falha ao remover ficheiro de bloqueio estagnado'%s'.Falha ao renomear valor de registo de '%s' para '%s'.Falha ao renomear o ficheiro de '%s' para '%s' porque o ficheiro de destino já existe.Falha ao renomear a chave de registo de '%s' para '%s'.Falha na obtenção dos dados da área de transferência.Falha ao obter tempos do ficheiro para '%s'Falha na obtenção do texto da mensagem de erro RASFalha na obtenção dos formatos suportados pela área de transferênciaFalha ao gravar imagem de bitmap para ficheiro "%s".Falha ao enviar aviso de notificação DDEFalha ao definir modo de transferência FTP para %s.Falha ao definir dados da área de transferência.Falha ao definir permissões no ficheiro de bloqueio '%s'Falha ao definir permissões do ficheiro temporárioFalha ao definir texto no controlo de texto.Falha ao definir prioridade de thread %d.Falha ao armazenar imagem '%s' para memória VFS!Falha ao matar a thread.Falha ao terminar o advise loop com o servidor DDEFalha ao terminar a ligação telefónica: %s Falha ao tocar no ficheiro '%s'Falha ao desbloquear ficheiro de bloqueio '%s'Falha ao desregistar servidor DDE '%s'Falha na actualização do ficheiro de configuração do utilizador.Falha ao enviar relatório de depuração (código de erro %d).Falha ao escrever para o ficheiro de bloqueio '%s'FicheiroO ficheiro '%s' já existe, deseja substituí-lo?O ficheiro '%s' já existe. Deseja substituí-lo?Não foi possível carregar o ficheiro.Erro de ficheiroNome de ficheiro já existe.FicheirosFicheiros (%s)FiltroProcurarFonte Fixa:Tamanho fixo da face.
    destacado itálico Folio, 8 1/2 x 13 pol.Fonte&Peso da fonte:Tamanho da Fonte:Est&ilo da fonte:Fonte:Falha no forkhrefs avançados não são suportadosForam encontradas %i correspondênciasDe:GIF: Índice gif inválido.GIF: corrente de dados parece estar truncada.GIF: erro no formato de imagem GIF.GIF: sem memória suficiente.GIF: erro desconhecido!!!Tema GTK+PostScript GenéricoLegal Fanfold Alemão, 8 1/2 x 13 pol.Std Fanfold Alemão, 8 1/2 x 12 pol.GetProperty chamado sem 'get' válidoGetPropertyCollection chamado num acessor genéricoGetPropertyCollection chamado sem colecção de getter válidoIr para trásIr para a frenteSubir um nível na hierarquia do documentoir para o directório inicialIr para o directório superiorArte gráfica por Grêgo (ISO-8859-7)Gzip não suportado nesta versão do zlibAJUDAHOMEHTML projecto de ajuda (*.hhp)|*.hhp|Âncora HTML %s não existe.Ficheiros HTML (*.html;*.htm)|*.html;*.htm|Hebreu (ISO-8859-8)AjudaOpções do Navegador de AjudaÍndice de AjudaAjuda de ImpressãoTópicos de AjudaLivros de ajuda(*.htb)|*.htb|Livros de ajuda(*.zip)|*.zip|Directório de ajuda "%s" não encontrado.Ficheiro de ajuda "%s" não encontrado.Ajuda: %sPasta PessoalDirectório pessoalICO: Erro a ler máscara DIB.ICO: Erro a escrever ficheiro de imagem!ICO: Imagem alta demais para um ícone.ICO: Imagem larga demais para um ícone.ICO: Índice inválido de ícone.IFF: Corrente de dados parece estar truncada.IFF: erro no formato de imagem IFF.IFF: sem memória suficiente.IFF: erro desconhecido!!!INSINSERIRSe tiver alguma informação adicional relativa a este relatório de erro, por favor digite-a aqui e esta será adicionada a ele:Se desejar suprimir completamente este relatorio de erro, pressione o botão "Cancelar", mas pode limitar a evolução do programa, sempre que possível por favor continue com a geração do relatório . A ignorar valor "%s" da chave "%s".Classe de objecto ilegal (Não-wxEvtHandler) como EventSourceParâmetro de Contador Ilegal para o Método ConstructObjectParâmetro de Contador Ilegal para o Método CreateNome do directório ilegal.Especificação de ficheiro ilegal.A imagem e a máscara têm tamanhos diferentes.Impossível criar um controlo de edição rico, alternativamente usar-se-á um controlo de texto simples. Por favor reinstale o riched32.dllNão foi possível obter a entrada do processo filhoNão foi possível obter permissões do ficheiro '%s'Não foi possível sobrepor o ficheiro '%s'Não foi possível definir as permissões do ficheiro '%s'IndentarIndentações e EspaçamentosÍndiceIndiano (ISO-8859-12)Falha de inicialização no post init, a interromper.InserirInserir ImagemInserir TextoÍndice inválido para imagem TIFF.Especificação de modo de ecrã inválida '%s'.Especificação de geometria inválida '%s'Ficheiro de bloqueio inválido '%s'.ID Nulo de Objecto ou inválido passado para GetObjectClassInfoID Nulo de Objecto ou inválido passado para HasObjectClassInfoExpressão regular inválida '%s': %sItálicoEnvelope Italiano, 110 x 230 mmJPEG: Impossível ler - o ficheiro provavelmente está corrupto.JPEG: Impossível gravar imagem.Postal Duplo Japonês 200 x 148 mmEnvelope Japonês Chou #3Envelope Japonês Chou #3 RodadoEnvelope Japonês Chou #4Envelope Japonês Chou #4 RodadoEnvelope Japonês Kaku #2Envelope Japonês Kaku #2 RodadoEnvelope Japonês Kaku #3Envelope Japonês Kaku #3 RodadoEnvelope Japonês You #4Envelope Japonês You #4 RodadoPostal Japonês 100 x 148 mmPostal Japonês Rodado 148 x 100 mmJustificadoJustificar texto à esquerda e à direita.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UPESQUERDAPaisagemAgenda, 17 x 11 pol.EsquerdaEsquerda (&primeira linha):Margem esquerda (mm):Alinhar texto à esquerda.Legal Extra 9 1/2 x 15 pol.Legal, 8 1/2 x 14 pol.Letter Extra 9 1/2 x 12 pol.Letter Extra Transversal 9.275 x 12 pol.Letter Plus 8 1/2 x 12.69 pol.Letter Rodada 11 x 8 1/2 pol.Letter Pequena, 8 1/2 x 11 pol.Letter Transversal 8 1/2 x 11 pol.Letter, 8 1/2 x 11 pol.LeveA linha %lu do ficheiro de mapa "%s" contém uma sintaxe inválida, saltado.Espaçamento de linhas:O link contém '//', foi convertido para um link absoluto.Estilo da ListaEstilos da listaLista o tamanho das fontes em pontos.Lista as fontes disponíveis.Abrir %s ficheirosA Abrir : Ficheiro de bloqueio '%s' tem proprietário incorrecto.Ficheiro de bloqueio '%s' tem permissões incorrectas.Registo gravado no ficheiro '%s'.Letras minúsculasNúmeros romanos em minúsculasFillho MDIMENUFunções de ajuda MS HTML não estão disponíveis devido à livraria de ajuda MS HTML não estar instalada neste computador. por favor instale-a.Ma&ximizarCoincidir capitulaçãoA memória VFS já contém o ficheiro '%s'!MenuTema MetalMi&nimizarModernoModificadoFalha de inicialização do Módulo "%s"Envelope Monarch, 3 7/8 x 7 1/2 pol.Mover para baixoMover para cimaNUM_LOCKNomeNovo Estilo de &Caracter...Novo &Estilo de Lista...Novo Estilo de &Parágrafo...Novo EstiloNovo directórioNovo itemNovoNomeSeguintePágina seguinteNãoNão existe um manuseador de animação definida para o tipo %ld.Não foram encontradas entradas.Não foi encontrada uma fonte para mostrar texto na codificação '%s', mas uma codificação alternativa '%s' está disponível. Pretende utilizar esta codificação (caso contrário terá de escolher outra)?Não foi encontrada uma fonte para mostrar texto na codificação '%s', Deseja seleccionar uma fonte para ser usada nesta codificação (caso contrário o texto nesta codificação não será correctamente apresentado)?Não foi encontrado um manuseador para o tipo de animação.Não foi encontrado um manuseador para o tipo de imagem.Não existe um manuseador para o tipo %d definido.Não existe um manuseador de imagem para o tipo %s definido.Não foi encontrado até ao momento uma página coincidenteSem somSem cor usada na imagem a ser mascarada.Sem cor usada na imagem.Não foram encontrados mapeamentos válidos no ficheiro "%s".Nórdico (ISO-8859-10)NormalFace normal
    e sublinhado. Fonte normal:Não sublinhadoNota, 8 1/2 x 11 pol.Contorno numeradoOKOs Objectos devem ter um atributo idAbrir FicheiroAbrir documento HTMLAbrir ficheiro "%s"Operação não permitida.A opção '%s' requer um valor.A opção '%s': '%s' não pode ser convertida para uma data.OpçõesOrientaçãoPAGEDOWNPAGEUPPAUSEPCX: não é possível alocar memóriaPCX: formato de imagem não suportadoPCX: imagem inválidaPCX: este não é um ficheiro PCX.PCX: erro desconhecido!!!PCX: número de versão muito baixoPGDNPGUPPNM: Não é possível alocar memória.PNM: Formato do ficheiro não é reconhecido.PNM: O ficheiro parece estar truncado.PRC 16K 146 x 215 mmPRC 16K RodadoPRC 32K 97 x 151 mmPRC 32K RodadoPRC 32K(Grande) 97 x 151 mmPRC 32K(Grande) RodadoEnvelope PRC #1 102 x 165 mmEnvelope PRC #1 Rodado 165 x 102 mmEnvelope PRC #10 324 x 458 mmEnvelope PRC #10 Rodado 458 x 324 mmEnvelope PRC #2 102 x 176 mmEnvelope PRC #2 Rodado 176 x 102 mmEnvelope PRC #3 125 x 176 mmEnvelope PRC #3 Rodado 176 x 125 mmEnvelope PRC #4 110 x 208 mmEnvelope PRC #4 Rodado 208 x 110 mmEnvelope PRC #5 110 x 220 mmEnvelope PRC #5 Rodado 220 x 110 mmEnvelope PRC #6 120 x 230 mmEnvelope PRC #6 Rodado 230 x 120 mmEnvelope PRC #7 160 x 230 mmEnvelope PRC #7 Rodado 230 x 160 mmEnvelope PRC #8 120 x 309 mmEnvelope PRC #8 Rodado 309 x 120 mmEnvelope PRC #9 229 x 324 mmEnvelope PRC #9 Rodado 324 x 229 mmIMPRIMIRPágina %dPágina %d de %dConfiguração de PáginaConfiguração de páginaPáginasTamanho do papelEstilos de parágrafoA passar um objecto já registado para SetObjectColarColar selecçãoPerí&odoPermissõesFalha na criação do pipePor favor escolha uma fonte válida.Por favor escolha um ficheiro existente.Por favor escolha uma página para mostrar:Por favor escolha ISP a que pretende ligarPor favor instale uma versão mais recente do comctl32.dll (no mínimo a versão 4.70 é necessária, mas actualmente tem a %d.%02d) ou este programa não operará correctamente.RetratoFicheiro PostScriptAntevisão:Página anteriorImprimirAntevisão de ImpressãoFalha na Antevisão de ImpressãoAlcance da ImpressãoConfiguração da ImpressãoImprimir a coresSpool de impressãoImprimir esta páginaImprimir para FicheiroImpressoraComando de impressora:Opções de impressoraOpções de impressora:Impressora...Impressora:A Imprimir Erro de ImpressãoA imprimir página %d...A Imprimir...O processamento do relatório de erro falhou, os ficheiros são deixados no directório "%s".Quarto, 215 x 275 mmPerguntaTerminar deste programaRETURNDIREITOErro de leitura no ficheiro '%s'PreparadoRefazer última acçãoRefrescarChave de registo '%s' já existe.Chave de registo '%s' não existe, impossível renomeá-la.A chave de registo '%s' é necessária para a operação normal do sistema, apagá-lo vai deixar o seu sistema num estado inutilizável: operação interrompida.Valor de registo '%s' já existe.RegularEntradas relevantes:RemoverRemover página actual dos marcadoresRenderizador "%s" tem uma versão incompatível %d.%d e não pode ser carregado.Renumerar ListaSu&bstituirSubstituirSubstituir &todosSubstituir selecçãoSubstituir por:Reverter para o GravadoDireitaMargem direita (mm):Alinhar texto à direita.RomanNome de Marcador S&tandard:SCROLL_LOCKSELECTSEPARADORSNAPSHOTSPACESPECIALSUBTRAIRGravarGravar %s ficheiroGravar &Como...Gravar ComoGravar documento actualGravar documento actual com nome diferenteGravar conteúdos do registo para ficheiroScriptProcurarDirecção de procuraProcurar por:Procurar em todos os livrosA Procurar...SecçõesErro de pesquisa no ficheiro '%s'Erro de pesquisa no ficheiro '%s' (ficheiros grandes não são suportados pelo stdio)Seleccion&ar TodosSeleccionar um modelo de documentoSeleccionar uma vista de documentoSeleccionar normal ou destacado.Seleccionar estilo normal ou itálico.Seleccionar sublinhado ou não sublinhado.SelecçãoSelecciona o nível de lista a editar.Separador esperado depois da opção '%s'.SetProperty chamado sem 'set' válidoConfigurar...Foram encontradas várias ligações telefónicas activas, a escolher uma aleatoriamente.Mostrar directórios e&scondidosMostrar fic&heiros escondidosMostrar diálogo sobreMostrar tudoMostrar todos os items no índiceMostrar directórios escondidosMostra/esconde painel de navegaçãoMostra um sub-conjunto Unicode.Mostra uma antevisão das definições de marcador.Mostra uma antevisão das definições da fonte.Mostrar uma antevisão da fonte.Mostra uma antevisão das definições do parágrafo.Mostra a antevisão da fonte.Tema monocromático simplesÚnicoTamanhoTamanho:SaltarInclinaçãoLamento, não foi possível abrir este ficheiro.Lamento, não existe memória suficiente para criar a antevisão.Lamento, este nome já está escolhido. Por favor escolha outro.Lamento, o formato deste ficheiro é desconhecido.Dados de som estão num formato não suportado.Ficheiro de som '%s' está num formato não suportado.EspaçamentoStandardStatement, 5 1/2 x 8 1/2 pol.Estado:Cadeia de Caracteres para Cor :Especificação de cor incorrecta : %sEstiloOrganizador de EstilosEstilo:SuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSuíçoSymbol&Fonte Symbol:SímbolosTABTIFF: Não é possível alocar memória.TIFF: Erro ao carregar imagem.TIFF: Erro ao ler imagem.TIFF: Erro ao gravar imagem.TIFF: Erro ao escrever imagem.Tabloid Extra 11.69 x 18 pol.Tabloid, 11 x 17 pol.TabsTeletypeModelosTailandês (ISO-8859-11)O servidor do FTP não suporta modo passivo.O servidor de FTP não suporta o comando PORT.Os estilos de marcador disponíveis.Os estilos disponíveis.O caracter do marcador.Código do caracter.O conjunto de caracteres '%s' é desconhecido. Pode seleccionar outro conjunto de caracteres para substituir, ou escolher [Cancelar] se não puder ser trocadoO formato da área de transferência '%d' não existe.O estilo pré-definido para o próximo parágrafo.O directório '%s' não existe Prtende criá-lo agora?O ficheiro '%s' não existe e não pode ser aberto. Este foi removido da lista de ficheiros usados mais recentemente.A indentação da primeira linha.A cor da fonte.A família da fonte.A fonte de onde se retira o símbolo.O tamanho do ponto da fonte.O tamanho da fonte em pontos.O estilo da fonte.O peso da fonte.A indentação à esquerda.O espaçamento de linha.O número de item da lista.O alcance a mostrar.O relatório os ficheiros listados abaixo. Se algum destes ficheiros contém informação privada, por favor desmarque-os e eles serão removidos do relatório. O parâmetro requerido '%s' não foi especificado.A indentação à direita.O espaçamento depois do parágrafo.O espaçamento antes do parágrafo.O nome do estilo.O estilo do qual este estilo é baseado.A antevisão do estilo.A posição de tabulação.As posições de tabulação.O texto não pode ser gravado.O valor para a opção '%s' tem de ser especificado.Houve um problema durante a configuração da página: poderá necessitar de definir uma impressora pré-definida.Falhou a inicialização do módulo da thread: não foi possível armazenar o valor no armazenamento local da threadFalhou a inicialização do módulo da thread: falhou a criação da chave da threadFalhou a inicialização do módulo da thread: impossível alocar índice no armazenamento local da threadA definição de prioridade da thread é ignorada.Dispor &HorizontalmenteDispor &VerticalmenteTempo excedido enquanto esperava a ligação do servidor FTP, tente o modo passivo.Falha na criação do temporizador.Dica do DiaDicas não disponíveis, desculpe!Para:Demasiadas chamadas EndStyle!Demasiadas cores no PNG, a imagem pode ficar ligeiramente desfocada.Margem de topo (mm):Traduções por A Tentar remover o ficheiro '%s' da memória VFS, mas não foi carregado!Turco (ISO-8859-9)TipoEscreva o nome da fonte.Escreva um tamanho em pontos.Tipo deve ter conversão enum - longCIMAUS Std Fanfold, 14 7/8 x 11 pol.US-ASCIINão foi possível abrir documento HTML pretendido: %sNão foi possível reproduzir som assincronamente.RecuperarSublinhadoDesfazer última acçãoCaracteres inesperados a seguir à opção '%s'.Parâmetro inesperado '%s'UnicodeUnicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)DesconhecidoErro DDE desconhecido %08xObjecto desconhecido passado para GetObjectClassInfoErro desconhecido de livraria dinâmicaCodificação desconhecida (%d)Opção longa desconhecida '%s'Opção desconhecida '%s'Correspondência não encontrada de '{' numa entrada do tipo mime %s.Comando não nomeadoFormato da área de transferência não suportado.Tema não suportado '%s'.CimaLetras maiúsculasNúmeros romanos em maiúsculasUtilização: %sUtilizar a definição actual de alinhamento.Conflito de validaçãoVer ficheiros como uma vista detalhadaVer ficheiros como uma vista em listaVistasWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHTAviso: Europa Ocidental (ISO-8859-1)Europa Ocidental com Euro (ISO-8859-15)Se a fonte está sublinhada.Palavra completaApenas palavras completasTema Win32Win32s em Windows 3.1Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Árabe de Windows (CP 1256)Báltico de Windows (CP 1257)Windows CE (%d.%d)Europeu Central de Windows (CP 1250)Cirílico de Windows (CP 1251)Grêgo de Windows (CP 1253)Hebreu de Windows (CP 1255)Coreano de Windows (CP 949)Windows METailandês de Windows (CP 874)Turco de Windows (CP 1254)Europeu Ocidental de Windows (CP 1252)Windows/DOS OEM (CP 437)Erro de escrita no ficheiro '%s'XML erro de verificação gramatical: '%s' na linha %dXPM: Dados de pixeis mal formados!XPM: descrição incorrecta de cor na linha %dXPM: formato de cabeçalho incorrecto!XPM: definição de cor '%s' mal formada na linha %d!XPM: dados de imagem truncados na linha %d!SimNão pode Limpar uma sobreposição que não está inicializadaNão pode Inicializar uma sobreposição duas vezesNão pode adicionar um novo directório a esta secção.Ampl&iarRed&uzirAmpliar para &Caberuma aplicação DDEML criou uma condição de corrida prolongada.uma função DDEML foi chamada sem chamar primeiro a função DdeInitialize, ou um identificador inválido instância foi passado a uma função DDEML.a tentativa por parte de um cliente de estabelecer uma conversação falhou.falhou uma alocação de memória.falhou a validação de um parâmetro pelo DDEML.um pedido para uma transacção de conselho síncrona excedeu o tempo limite.um pedido para uma transacção de dados síncrona excedeu o tempo limite.um pedido para uma transacção de execução síncrona excedeu o tempo limite.um pedido para uma transacção de 'poke' síncrona excedeu o tempo limite.um pedido de término de uma transacção de conselho excedeu o tempo limite.foi tentada uma transacção do lado do servidor, numa conversação que foi terminada pelo cliente, ou o servidor terminou antes do fim da transacção.falhou uma transacção.altuma aplicação inicializada como APPCLASS_MONITOR tem tentado efectuar uma transacção DDE, ou uma aplicação inicaializada como APPCMD_CLIENTONLY tem tentado realizar transacções de servidor.falha numa chamada interna à função PostMessage. ocorreu um erro interno no DDEML.um identificador inválido de transacção foi passado a uma função DDEML. Uma vez que a aplicação retornou de uma chamada de um XTYP_XACT_COMPLETE, o identificador de transacção dessa chamada deixou de ser válido.a assumir que este é um ficheiro zip multi-partes concatenadotentativa de alteração da chave imutável '%s' ignorada.argumentos inválidos a uma função da livrariamá assinaturamau offset de entrada de ficheiro zipbináriodestacadobuffer pequeno demais para directório Windows.impossível fechar o ficheiro '%s'impossível fechar o descritor do ficheiro %dnão é possível garantir as alterações ao ficheiro '%s'impossível criar o ficheiro '%s'não foi possível apagar o ficheiro de configuração do utilizador '%s'impossível determinar se o fim do ficheiro foi alcançado no descritor %dimpossível executar '%s'não foi possível localizar o directório central no zipNão foi possível encontrar o comprimento do ficheiro no descritor do ficheiro %dNão foi possível localizar a pasta pessoal do utilizador, a utilizar o directório actual.Não foi possível escoar o descritor do ficheiro %dNão foi possível obter posição de pesquisa no descritor do ficheiro %dnão foi possível carregar nenhuma fonte, a abortarimpossível abrir ficheiro '%s'não foi possível abrir o ficheiro '%s' global de configuração.não foi possível abrir o ficheiro '%s' de configuração do utilizador.não foi possível abrir o ficheiro de configuração do utilizador.não foi possível re-inicializar o 'zlib deflate stream'não foi possível re-inicializar o 'zlib inflate stream'não foi possível ler do descritor do ficheiro %dimpossível remover ficheiro '%s'Não foi possível remover ficheiro temporário '%s'Não foi possível pesquisar no descritor de ficheiro %dNão foi possível escrever o buffer '%s' para o disco.Não foi possível escrever no descritor de ficheiro %dNão foi possível gravar o ficheiro de configuração do utilizador.erro de checksumfalha de checksum a ler bloco de cabeçalho tarerro de compressãofalhou a conversão para codificação de 8-bitsctrldataerro de descompressãopré-definiçãodump do estado do processo (binário)décimo oitavooitavodécimo primeiroa entrada '%s' aparece mais do uma vez no grupo '%s'erro no formato do dadoerro ao abrir '%s'erro ao abrir ficheiroerro a ler directório central de ziperro ao ler cabeçalho local de ziperro ao escrever entrada zip '%s': mau comprimento ou crcFalha a escoar o ficheiro '%s'décimo quintoquintoficheiro '%s', linha %d: '%s' ignorado após cabeçalho de grupo.ficheiro '%s', linha %d: '=' esperado.ficheiro '%s', linha %d: chave '%s' foi inicialmente encontrada na linha %d.ficheiro '%s', linha %d: valor para chave imutável '%s' ignorado.ficheiro '%s': caracter inesperado %c na linha %d.ficheirosprimeirotamanho da fontedécimo quartoquartogerar mensagens de registo verbosasimagembloco de cabeçalho incompleto no tarcadeia de caracteres de manuseamento de eventos incorrecta, falta um pontotamanho incorrecto dado a entrada do tardados inválidos no cabeçalho tar estendidovalor de retorno de caixa de diálogo inválidoficheiro zip inválidoitálicolevelocalização '%s' não pode ser definida.meia noitedécimo nonononosem erro DDE.sem errosem nomemeio-dianumos objectos não podem ter TextNodes XMLmemória esgotadadescrição de contexto do processoerro de leituraa ler corrente de dados zip (entrada %s): mau crca ler corrente de dados zip (entrada %s): mau comprimentoproblema recursivo.segundoerro de pesquisadécimo sétimosétimodeslocarmostra esta mensagem de ajudadécimo sextosextoespecificar modo de ecrã a utilizar (ex: 640x480-16)especifica o tema a utilizarguardado tamanho do ficheiro não no cabeçalho Zipstrentrada tar não abertadécimoa resposta à transacção causou a definição do bit DDE_FBUSY.terceirodécimo terceirohojeamanhãcréditos dos tradutoresdécimo segundovigésimosublinhado" inesperado na posição %d em '%s'.fim de ficheiro inesperadodesconhecidoclasse %s desconhecidaerro desconhecidoerro desconhecido ( código de erro %08x).origem de pesquisa desconhecidadesconhecido %dsem nomesem nome%dmétodo de compressão Zip não suportadoa utilizar catálogo '%s' de '%s'.erro de escritafalhou o wxGetTimeOfDay.wxWidgets não foi possível abrir ecrã para '%s': a sair.wxWidgets não foi possível abrir o ecrã. A sair.xxxxontemerro zlib %d~ginkgocadx-3.8.7/cadxcore/lang/pt/wxstd.po000066400000000000000000007677431314736454600205610ustar00rootroot00000000000000# translation of wxstd.pt.po to Portuguese # Copyright (C) 2007 wxWidgets Development Team # This file is distributed under wxWindows licence. # # Mario Pereira , 2007. # Antonio Cardoso Martins , 2007. # Carlos Gonçalves , 2007. msgid "" msgstr "" "Project-Id-Version: wxWidgets 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-01 19:04+0200\n" "PO-Revision-Date: 2007-09-20 21:59+0100\n" "Last-Translator: Antonio Cardoso Martins \n" "Language-Team: Portuguese \n" "Language: pt\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #: ../src/common/debugrpt.cpp:591 msgid "" "\n" "Please send this report to the program maintainer, thank you!\n" msgstr "" "\n" "Envie este relatório ao programador, Obrigado!\n" #: ../src/richtext/richtextstyledlg.cpp:210 #: ../src/richtext/richtextstyledlg.cpp:222 msgid " " msgstr " " #: ../src/generic/dbgrptg.cpp:326 msgid " Thank you and we're sorry for the inconvenience!\n" msgstr " Obrigado e desculpe o inconveniência!\n" #: ../src/common/prntbase.cpp:546 #, fuzzy, c-format msgid " (copy %d of %d)" msgstr "Página %d de %d" #: ../src/common/log.cpp:425 #, c-format msgid " (error %ld: %s)" msgstr " (erro %ld: %s)" #: ../src/common/imagtiff.cpp:75 #, fuzzy, c-format msgid " (in module \"%s\")" msgstr "módulo tiff: %s" #: ../src/common/docview.cpp:1624 msgid " - " msgstr " - " #: ../src/richtext/richtextprint.cpp:588 ../src/html/htmprint.cpp:704 msgid " Preview" msgstr " Antevisão" #: ../src/common/fontcmn.cpp:811 msgid " bold" msgstr " destacado" #: ../src/common/fontcmn.cpp:827 msgid " italic" msgstr " itálico" #: ../src/common/fontcmn.cpp:807 msgid " light" msgstr " leve" #: ../src/common/paper.cpp:118 msgid "#10 Envelope, 4 1/8 x 9 1/2 in" msgstr "Envelope #10, 4 1/8 x 9 1/2 pol." #: ../src/common/paper.cpp:119 msgid "#11 Envelope, 4 1/2 x 10 3/8 in" msgstr "Envelope #11, 4 1/2 x 10 3/8 pol." #: ../src/common/paper.cpp:120 msgid "#12 Envelope, 4 3/4 x 11 in" msgstr "Envelope #12, 4 3/4 x 11 pol." #: ../src/common/paper.cpp:121 msgid "#14 Envelope, 5 x 11 1/2 in" msgstr "Envelope #14, 5 x 11 1/2 pol." #: ../src/common/paper.cpp:117 msgid "#9 Envelope, 3 7/8 x 8 7/8 in" msgstr "Envelope #9, 3 7/8 x 8 7/8 pol." #: ../src/html/helpwnd.cpp:1044 #, fuzzy, c-format msgid "%d of %lu" msgstr "%i de %i" #: ../src/html/helpwnd.cpp:1681 ../src/html/helpwnd.cpp:1719 #, c-format msgid "%i of %i" msgstr "%i de %i" #: ../src/generic/filectrlg.cpp:315 #, c-format msgid "%ld byte" msgid_plural "%ld bytes" msgstr[0] "%ld byte" msgstr[1] "%ld bytes" #: ../src/html/helpwnd.cpp:1046 #, fuzzy, c-format msgid "%lu of %lu" msgstr "%i de %i" #: ../src/common/cmdline.cpp:1050 #, c-format msgid "%s (or %s)" msgstr "%s (ou %s)" #: ../src/generic/logg.cpp:230 #, c-format msgid "%s Error" msgstr "%s Erro" #: ../src/generic/logg.cpp:242 #, c-format msgid "%s Information" msgstr "%s Informação" #: ../src/generic/preferencesg.cpp:110 #, fuzzy, c-format msgid "%s Preferences" msgstr "&Preferências" #: ../src/generic/logg.cpp:234 #, c-format msgid "%s Warning" msgstr "%s Aviso" #: ../src/common/tarstrm.cpp:1319 #, c-format msgid "%s did not fit the tar header for entry '%s'" msgstr "%s não coube no cabeçalho tar para a entrada '%s'" #: ../src/common/fldlgcmn.cpp:106 #, c-format msgid "%s files (%s)|%s" msgstr "%s ficheiros (%s)|%s" #: ../src/common/stockitem.cpp:139 ../src/html/helpfrm.cpp:142 #: ../src/html/helpfrm.cpp:144 msgid "&About" msgstr "&Sobre" #: ../src/common/stockitem.cpp:207 msgid "&Actual Size" msgstr "T&amanho Actual" #: ../src/richtext/richtextindentspage.cpp:262 #, fuzzy msgid "&After a paragraph:" msgstr "Depois de um parágrafo:" #: ../src/richtext/richtextindentspage.cpp:128 #: ../src/richtext/richtextliststylepage.cpp:319 msgid "&Alignment" msgstr "&Alinhamento" #: ../src/common/stockitem.cpp:141 msgid "&Apply" msgstr "&Aplicar" #: ../src/richtext/richtextstyledlg.cpp:251 msgid "&Apply Style" msgstr "&Aplicar Estilo" #: ../src/msw/mdi.cpp:175 msgid "&Arrange Icons" msgstr "&Organizar Ícones" #: ../src/common/stockitem.cpp:195 msgid "&Ascending" msgstr "" #: ../src/common/stockitem.cpp:142 msgid "&Back" msgstr "&Retroceder" #: ../src/richtext/richtextstylepage.cpp:113 msgid "&Based on:" msgstr "&Baseado em:" #: ../src/richtext/richtextindentspage.cpp:253 #, fuzzy msgid "&Before a paragraph:" msgstr "Antes de um parágrafo:" #: ../src/richtext/richtextfontpage.cpp:271 #, fuzzy msgid "&Bg colour:" msgstr "&Cor:" #: ../src/common/stockitem.cpp:143 msgid "&Bold" msgstr "&Destacado" #: ../src/common/stockitem.cpp:144 msgid "&Bottom" msgstr "" #: ../src/richtext/richtextborderspage.cpp:359 #: ../src/richtext/richtextborderspage.cpp:503 #: ../src/richtext/richtextmarginspage.cpp:260 #: ../src/richtext/richtextmarginspage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:637 #: ../src/richtext/richtextsizepage.cpp:644 msgid "&Bottom:" msgstr "" #: ../include/wx/richtext/richtextbuffer.h:3530 #, fuzzy msgid "&Box" msgstr "&Destacado" #: ../src/richtext/richtextliststylepage.cpp:210 #: ../src/richtext/richtextbulletspage.cpp:159 msgid "&Bullet style:" msgstr "Estilo do &Marcador:" #: ../src/common/stockitem.cpp:146 msgid "&CD-Rom" msgstr "" #: ../src/generic/wizard.cpp:432 ../src/generic/fontdlgg.cpp:470 #: ../src/generic/fontdlgg.cpp:489 ../src/osx/carbon/fontdlg.cpp:588 #: ../src/common/stockitem.cpp:145 msgid "&Cancel" msgstr "&Cancelar" #: ../src/msw/mdi.cpp:171 msgid "&Cascade" msgstr "&Cascata" #: ../include/wx/richtext/richtextbuffer.h:5587 #, fuzzy msgid "&Cell" msgstr "&Cancelar" #: ../src/richtext/richtextsymboldlg.cpp:439 msgid "&Character code:" msgstr "Código de &Caracter:" #: ../src/common/stockitem.cpp:147 msgid "&Clear" msgstr "&Limpar" #: ../src/generic/logg.cpp:522 ../src/common/stockitem.cpp:148 #: ../src/common/prntbase.cpp:1570 ../src/univ/themes/win32.cpp:3756 #: ../src/html/helpfrm.cpp:139 msgid "&Close" msgstr "&Fechar" #: ../src/common/stockitem.cpp:193 #, fuzzy msgid "&Color" msgstr "&Cor:" #: ../src/richtext/richtextfontpage.cpp:258 msgid "&Colour:" msgstr "&Cor:" #: ../src/common/stockitem.cpp:149 #, fuzzy msgid "&Convert" msgstr "Conteúdos" #: ../src/richtext/richtextctrl.cpp:326 ../src/osx/textctrl_osx.cpp:583 #: ../src/common/stockitem.cpp:150 ../src/msw/textctrl.cpp:2284 msgid "&Copy" msgstr "&Copiar" #: ../src/generic/hyperlinkg.cpp:156 #, fuzzy msgid "&Copy URL" msgstr "&Copiar" #: ../src/common/headerctrlcmn.cpp:328 #, fuzzy msgid "&Customize..." msgstr "tamanho da fonte" #: ../src/generic/dbgrptg.cpp:334 msgid "&Debug report preview:" msgstr "Antevisão do relatório de &depuração:" #: ../src/richtext/richtexttabspage.cpp:142 #: ../src/richtext/richtextctrl.cpp:328 ../src/osx/textctrl_osx.cpp:585 #: ../src/common/stockitem.cpp:152 ../src/msw/textctrl.cpp:2286 msgid "&Delete" msgstr "&Apagar" #: ../src/richtext/richtextstyledlg.cpp:269 msgid "&Delete Style..." msgstr "&Apagar Estilo..." #: ../src/common/stockitem.cpp:196 msgid "&Descending" msgstr "" #: ../src/generic/logg.cpp:688 msgid "&Details" msgstr "&Detalhes" #: ../src/common/stockitem.cpp:153 msgid "&Down" msgstr "&Baixo" #: ../src/common/stockitem.cpp:154 msgid "&Edit" msgstr "&Editar" #: ../src/richtext/richtextstyledlg.cpp:263 msgid "&Edit Style..." msgstr "&Editar Estilo..." #: ../src/common/stockitem.cpp:155 msgid "&Execute" msgstr "" #: ../src/common/stockitem.cpp:157 ../src/html/helpfrm.cpp:146 msgid "&File" msgstr "&Ficheiro" #: ../src/common/stockitem.cpp:158 msgid "&Find" msgstr "&Procurar" #: ../src/generic/wizard.cpp:626 msgid "&Finish" msgstr "&Terminar" #: ../src/common/stockitem.cpp:159 #, fuzzy msgid "&First" msgstr "primeiro" #: ../src/richtext/richtextsizepage.cpp:244 msgid "&Floating mode:" msgstr "" #: ../src/common/stockitem.cpp:160 #, fuzzy msgid "&Floppy" msgstr "&Copiar" #: ../src/common/stockitem.cpp:194 #, fuzzy msgid "&Font" msgstr "&Fonte:" #: ../src/generic/fontdlgg.cpp:371 msgid "&Font family:" msgstr "Família de &fonte:" #: ../src/richtext/richtextliststylepage.cpp:194 msgid "&Font for Level..." msgstr "&Fonte para Nível..." #: ../src/richtext/richtextfontpage.cpp:156 #: ../src/richtext/richtextsymboldlg.cpp:400 msgid "&Font:" msgstr "&Fonte:" #: ../src/common/stockitem.cpp:161 msgid "&Forward" msgstr "&Avançar" #: ../src/richtext/richtextsymboldlg.cpp:451 msgid "&From:" msgstr "&De:" #: ../src/common/stockitem.cpp:162 msgid "&Harddisk" msgstr "" #: ../src/richtext/richtextsizepage.cpp:351 #: ../src/richtext/richtextsizepage.cpp:358 #, fuzzy msgid "&Height:" msgstr "&Peso:" #: ../src/generic/wizard.cpp:435 ../src/richtext/richtextstyledlg.cpp:303 #: ../src/richtext/richtextsymboldlg.cpp:479 ../src/osx/menu_osx.cpp:785 #: ../src/common/stockitem.cpp:163 ../src/html/helpfrm.cpp:147 msgid "&Help" msgstr "&Ajuda" #: ../include/wx/richmsgdlg.h:30 #, fuzzy msgid "&Hide details" msgstr "&Detalhes" #: ../src/common/stockitem.cpp:164 msgid "&Home" msgstr "&Início" #: ../src/richtext/richtextindentspage.cpp:184 #: ../src/richtext/richtextliststylepage.cpp:372 msgid "&Indentation (tenths of a mm)" msgstr "&Indentação (décimos de mm)" #: ../src/richtext/richtextindentspage.cpp:167 #: ../src/richtext/richtextliststylepage.cpp:356 msgid "&Indeterminate" msgstr "&Indeterminado" #: ../src/common/stockitem.cpp:166 msgid "&Index" msgstr "&Índice" #: ../src/common/stockitem.cpp:167 #, fuzzy msgid "&Info" msgstr "&Desfazer" #: ../src/common/stockitem.cpp:168 msgid "&Italic" msgstr "&Itálico" #: ../src/common/stockitem.cpp:169 msgid "&Jump to" msgstr "" #: ../src/richtext/richtextindentspage.cpp:153 #: ../src/richtext/richtextliststylepage.cpp:342 msgid "&Justified" msgstr "&Justificado" #: ../src/common/stockitem.cpp:174 #, fuzzy msgid "&Last" msgstr "&Colar" #: ../src/richtext/richtextindentspage.cpp:139 #: ../src/richtext/richtextliststylepage.cpp:328 msgid "&Left" msgstr "&Esquerda" #: ../src/richtext/richtextindentspage.cpp:195 #: ../src/richtext/richtextborderspage.cpp:269 #: ../src/richtext/richtextborderspage.cpp:413 #: ../src/richtext/richtextliststylepage.cpp:381 #: ../src/richtext/richtextmarginspage.cpp:187 #: ../src/richtext/richtextmarginspage.cpp:301 #: ../src/richtext/richtextsizepage.cpp:532 #: ../src/richtext/richtextsizepage.cpp:539 msgid "&Left:" msgstr "&Esquerda:" #: ../src/richtext/richtextliststylepage.cpp:183 msgid "&List level:" msgstr "&Lista de nível:" #: ../src/generic/logg.cpp:523 msgid "&Log" msgstr "&Registo" #: ../src/univ/themes/win32.cpp:3748 msgid "&Move" msgstr "&Mover" #: ../src/richtext/richtextsizepage.cpp:672 msgid "&Move the object to:" msgstr "" #: ../src/common/stockitem.cpp:175 #, fuzzy msgid "&Network" msgstr "&Novo" #: ../src/richtext/richtexttabspage.cpp:136 ../src/common/stockitem.cpp:176 msgid "&New" msgstr "&Novo" #: ../src/aui/tabmdi.cpp:111 ../src/generic/mdig.cpp:100 #: ../src/msw/mdi.cpp:176 msgid "&Next" msgstr "&Próximo" #: ../src/generic/wizard.cpp:431 ../src/generic/wizard.cpp:626 msgid "&Next >" msgstr "&Próximo >" #: ../src/richtext/richtextsizepage.cpp:681 #, fuzzy msgid "&Next Paragraph" msgstr "Depois de um parágrafo:" #: ../src/generic/tipdlg.cpp:276 msgid "&Next Tip" msgstr "&Próxima Dica" #: ../src/richtext/richtextstylepage.cpp:123 msgid "&Next style:" msgstr "&Próximo estilo:" #: ../src/common/stockitem.cpp:177 ../src/msw/msgdlg.cpp:476 msgid "&No" msgstr "&Não" #: ../src/generic/dbgrptg.cpp:356 msgid "&Notes:" msgstr "&Notas:" #: ../src/richtext/richtextbulletspage.cpp:264 msgid "&Number:" msgstr "&Número:" #: ../src/generic/fontdlgg.cpp:475 ../src/generic/fontdlgg.cpp:482 #: ../src/osx/carbon/fontdlg.cpp:594 ../src/common/stockitem.cpp:178 msgid "&OK" msgstr "&OK" #: ../src/generic/dbgrptg.cpp:342 ../src/common/stockitem.cpp:179 #: ../src/html/helpfrm.cpp:137 msgid "&Open..." msgstr "&Abrir..." #: ../src/richtext/richtextindentspage.cpp:222 #, fuzzy msgid "&Outline level:" msgstr "&Lista de nível:" #: ../src/richtext/richtextindentspage.cpp:293 msgid "&Page Break" msgstr "" #: ../src/richtext/richtextctrl.cpp:327 ../src/osx/textctrl_osx.cpp:584 #: ../src/common/stockitem.cpp:180 ../src/msw/textctrl.cpp:2285 msgid "&Paste" msgstr "&Colar" #: ../include/wx/richtext/richtextbuffer.h:4655 msgid "&Picture" msgstr "" #: ../src/generic/fontdlgg.cpp:422 msgid "&Point size:" msgstr "Tamanho do &ponto:" #: ../src/richtext/richtexttabspage.cpp:114 msgid "&Position (tenths of a mm):" msgstr "&Posição (décimos de mm):" #: ../src/richtext/richtextsizepage.cpp:514 #, fuzzy msgid "&Position mode:" msgstr "Pergunta" #: ../src/common/stockitem.cpp:181 msgid "&Preferences" msgstr "&Preferências" #: ../src/aui/tabmdi.cpp:112 ../src/generic/mdig.cpp:101 #: ../src/msw/mdi.cpp:177 msgid "&Previous" msgstr "&Anterior" #: ../src/richtext/richtextsizepage.cpp:675 #, fuzzy msgid "&Previous Paragraph" msgstr "Página anterior" #: ../src/common/stockitem.cpp:183 msgid "&Print..." msgstr "&Imprimir..." #: ../src/richtext/richtextctrl.cpp:332 ../src/richtext/richtextctrl.cpp:4945 #: ../src/common/stockitem.cpp:184 msgid "&Properties" msgstr "&Propriedades" #: ../src/common/stockitem.cpp:156 msgid "&Quit" msgstr "&Desistir" #: ../src/richtext/richtextctrl.cpp:323 ../src/osx/textctrl_osx.cpp:580 #: ../src/common/stockitem.cpp:185 ../src/common/cmdproc.cpp:293 #: ../src/common/cmdproc.cpp:300 ../src/msw/textctrl.cpp:2281 msgid "&Redo" msgstr "&Refazer" #: ../src/common/cmdproc.cpp:289 ../src/common/cmdproc.cpp:309 msgid "&Redo " msgstr "&Refazer " #: ../src/richtext/richtextstyledlg.cpp:257 msgid "&Rename Style..." msgstr "&Renomear Estilo..." #: ../src/generic/fdrepdlg.cpp:179 msgid "&Replace" msgstr "&Substituir" #: ../src/richtext/richtextstyledlg.cpp:287 msgid "&Restart numbering" msgstr "&Recomeçar numeração" #: ../src/univ/themes/win32.cpp:3747 msgid "&Restore" msgstr "&Restaurar" #: ../src/richtext/richtextindentspage.cpp:146 #: ../src/richtext/richtextliststylepage.cpp:335 msgid "&Right" msgstr "Di&reita" #: ../src/richtext/richtextindentspage.cpp:213 #: ../src/richtext/richtextborderspage.cpp:299 #: ../src/richtext/richtextborderspage.cpp:443 #: ../src/richtext/richtextliststylepage.cpp:399 #: ../src/richtext/richtextmarginspage.cpp:212 #: ../src/richtext/richtextmarginspage.cpp:326 #: ../src/richtext/richtextsizepage.cpp:602 #: ../src/richtext/richtextsizepage.cpp:609 msgid "&Right:" msgstr "Di&reita:" #: ../src/common/stockitem.cpp:190 msgid "&Save" msgstr "&Guardar" #: ../src/common/stockitem.cpp:191 #, fuzzy msgid "&Save as" msgstr "Gravar Como" #: ../include/wx/richmsgdlg.h:29 #, fuzzy msgid "&See details" msgstr "&Detalhes" #: ../src/generic/tipdlg.cpp:270 msgid "&Show tips at startup" msgstr "&Mostrar dicas no inicio" #: ../src/univ/themes/win32.cpp:3750 msgid "&Size" msgstr "&Tamanho" #: ../src/richtext/richtextfontpage.cpp:168 msgid "&Size:" msgstr "&Tamanho:" #: ../src/generic/progdlgg.cpp:282 #, fuzzy msgid "&Skip" msgstr "Saltar" #: ../src/richtext/richtextindentspage.cpp:242 #: ../src/richtext/richtextliststylepage.cpp:417 msgid "&Spacing (tenths of a mm)" msgstr "E&spaçamento (décimos de mm)" #: ../src/common/stockitem.cpp:197 msgid "&Spell Check" msgstr "" #: ../src/common/stockitem.cpp:198 msgid "&Stop" msgstr "&Parar" #: ../src/richtext/richtextfontpage.cpp:284 ../src/common/stockitem.cpp:199 msgid "&Strikethrough" msgstr "" #: ../src/generic/fontdlgg.cpp:382 ../src/richtext/richtextstylepage.cpp:104 msgid "&Style:" msgstr "E&stilo:" #: ../src/richtext/richtextstyledlg.cpp:198 msgid "&Styles:" msgstr "E&stilos:" #: ../src/richtext/richtextsymboldlg.cpp:413 msgid "&Subset:" msgstr "&Subconjunto:" #: ../src/richtext/richtextliststylepage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:222 msgid "&Symbol:" msgstr "&Símbolo:" #: ../include/wx/richtext/richtextbuffer.h:5679 #, fuzzy msgid "&Table" msgstr "Tabs" #: ../src/common/stockitem.cpp:200 #, fuzzy msgid "&Top" msgstr "&Copiar" #: ../src/richtext/richtextborderspage.cpp:329 #: ../src/richtext/richtextborderspage.cpp:473 #: ../src/richtext/richtextmarginspage.cpp:235 #: ../src/richtext/richtextmarginspage.cpp:349 #: ../src/richtext/richtextsizepage.cpp:567 #: ../src/richtext/richtextsizepage.cpp:574 #, fuzzy msgid "&Top:" msgstr "Para:" #: ../src/generic/fontdlgg.cpp:444 ../src/common/stockitem.cpp:202 msgid "&Underline" msgstr "S&ublinhado" #: ../src/richtext/richtextfontpage.cpp:243 msgid "&Underlining:" msgstr "S&ublinhar:" #: ../src/richtext/richtextctrl.cpp:322 ../src/osx/textctrl_osx.cpp:579 #: ../src/common/stockitem.cpp:203 ../src/common/cmdproc.cpp:271 #: ../src/msw/textctrl.cpp:2280 msgid "&Undo" msgstr "&Desfazer" #: ../src/common/cmdproc.cpp:265 msgid "&Undo " msgstr "&Desfazer " #: ../src/common/stockitem.cpp:204 msgid "&Unindent" msgstr "&Desindentar" #: ../src/common/stockitem.cpp:205 msgid "&Up" msgstr "&Cima" #: ../src/richtext/richtextsizepage.cpp:278 #, fuzzy msgid "&Vertical alignment:" msgstr "&Alinhamento de Marcador:" #: ../src/generic/dbgrptg.cpp:340 #, fuzzy msgid "&View..." msgstr "&Abrir..." #: ../src/generic/fontdlgg.cpp:393 msgid "&Weight:" msgstr "&Peso:" #: ../src/richtext/richtextsizepage.cpp:317 #: ../src/richtext/richtextsizepage.cpp:324 #, fuzzy msgid "&Width:" msgstr "&Peso:" #: ../src/aui/tabmdi.cpp:311 ../src/aui/tabmdi.cpp:327 #: ../src/aui/tabmdi.cpp:329 ../src/generic/mdig.cpp:294 #: ../src/generic/mdig.cpp:310 ../src/generic/mdig.cpp:314 #: ../src/msw/mdi.cpp:77 msgid "&Window" msgstr "&Janela" #: ../src/common/stockitem.cpp:206 ../src/msw/msgdlg.cpp:476 msgid "&Yes" msgstr "&Sim" #: ../src/common/config.cpp:523 ../src/msw/regconf.cpp:258 #, c-format msgid "'%s' has extra '..', ignored." msgstr "'%s' tem extra '..', ignorado." #: ../src/common/valtext.cpp:249 ../src/common/valtext.cpp:251 #: ../src/common/valtext.cpp:253 ../src/common/valtext.cpp:255 #, c-format msgid "'%s' is invalid" msgstr "'%s' é inválido" #: ../src/common/cmdline.cpp:948 ../src/common/cmdline.cpp:966 #, c-format msgid "'%s' is not a correct numeric value for option '%s'." msgstr "'%s' não é um valor numérico correcto para a opção '%s'." #: ../src/common/translation.cpp:1086 #, c-format msgid "'%s' is not a valid message catalog." msgstr "'%s' não é uma mensagem válida do catálogo." #: ../src/common/textbuf.cpp:239 #, c-format msgid "'%s' is probably a binary buffer." msgstr "'%s' é capaz de ser um buffer binário." #: ../src/common/valtext.cpp:247 #, c-format msgid "'%s' should be numeric." msgstr "'%s' deve ser numérico." #: ../src/common/valtext.cpp:239 #, c-format msgid "'%s' should only contain ASCII characters." msgstr "'%s' apenas deve conter caracteres ASCII." #: ../src/common/valtext.cpp:241 #, c-format msgid "'%s' should only contain alphabetic characters." msgstr "'%s' deve apenas conter caracteres alfabéticos." #: ../src/common/valtext.cpp:243 #, c-format msgid "'%s' should only contain alphabetic or numeric characters." msgstr "'%s' deve apenas conter caracteres alfabéticos e numéricos." #: ../src/common/valtext.cpp:245 #, fuzzy, c-format msgid "'%s' should only contain digits." msgstr "'%s' apenas deve conter caracteres ASCII." #: ../src/richtext/richtextliststylepage.cpp:229 #: ../src/richtext/richtextbulletspage.cpp:179 msgid "(*)" msgstr "(*)" #: ../src/html/helpwnd.cpp:976 msgid "(Help)" msgstr "(Ajuda)" #: ../src/richtext/richtextliststylepage.cpp:481 #: ../src/richtext/richtextbulletspage.cpp:286 msgid "(None)" msgstr "(Nenhum)" #: ../src/richtext/richtextsymboldlg.cpp:504 msgid "(Normal text)" msgstr "(Texto normal)" #: ../src/html/helpwnd.cpp:426 ../src/html/helpwnd.cpp:1119 #: ../src/html/helpwnd.cpp:1745 msgid "(bookmarks)" msgstr "(marcadores)" #: ../src/richtext/richtextindentspage.cpp:274 #: ../src/richtext/richtextindentspage.cpp:286 #: ../src/richtext/richtextindentspage.cpp:287 #: ../src/richtext/richtextindentspage.cpp:311 #: ../src/richtext/richtextindentspage.cpp:326 #: ../src/richtext/richtextformatdlg.cpp:831 #: ../src/richtext/richtextfontpage.cpp:331 #: ../src/richtext/richtextfontpage.cpp:335 #: ../src/richtext/richtextfontpage.cpp:339 #: ../src/richtext/richtextliststylepage.cpp:448 #: ../src/richtext/richtextliststylepage.cpp:460 #: ../src/richtext/richtextliststylepage.cpp:461 msgid "(none)" msgstr "(nenhum)" #: ../src/richtext/richtextliststylepage.cpp:492 #: ../src/richtext/richtextbulletspage.cpp:297 msgid "*" msgstr "*" #: ../src/richtext/richtextliststylepage.cpp:236 #: ../src/richtext/richtextbulletspage.cpp:186 msgid "*)" msgstr "*)" #: ../src/richtext/richtextliststylepage.cpp:495 #: ../src/richtext/richtextbulletspage.cpp:300 msgid "+" msgstr "+" #: ../src/msw/utils.cpp:1324 msgid ", 64-bit edition" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:493 #: ../src/richtext/richtextbulletspage.cpp:298 msgid "-" msgstr "-" #: ../src/generic/filepickerg.cpp:66 msgid "..." msgstr "" #: ../src/richtext/richtextindentspage.cpp:276 #: ../src/richtext/richtextliststylepage.cpp:450 #, fuzzy msgid "1.1" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:277 #: ../src/richtext/richtextliststylepage.cpp:451 #, fuzzy msgid "1.2" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:278 #: ../src/richtext/richtextliststylepage.cpp:452 #, fuzzy msgid "1.3" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:279 #: ../src/richtext/richtextliststylepage.cpp:453 #, fuzzy msgid "1.4" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:280 #: ../src/richtext/richtextliststylepage.cpp:454 msgid "1.5" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:455 #, fuzzy msgid "1.6" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:282 #: ../src/richtext/richtextliststylepage.cpp:456 #, fuzzy msgid "1.7" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:283 #: ../src/richtext/richtextliststylepage.cpp:457 #, fuzzy msgid "1.8" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:284 #: ../src/richtext/richtextliststylepage.cpp:458 #, fuzzy msgid "1.9" msgstr "1.5" #: ../src/common/paper.cpp:141 msgid "10 x 11 in" msgstr "10 x 11 pol." #: ../src/common/paper.cpp:114 msgid "10 x 14 in" msgstr "10 x 14 pol." #: ../src/common/paper.cpp:115 msgid "11 x 17 in" msgstr "11 x 17 pol." #: ../src/common/paper.cpp:185 msgid "12 x 11 in" msgstr "12 x 11 pol." #: ../src/common/paper.cpp:142 msgid "15 x 11 in" msgstr "15 x 11 pol." #: ../src/richtext/richtextindentspage.cpp:285 #: ../src/richtext/richtextliststylepage.cpp:459 msgid "2" msgstr "2" #: ../src/common/paper.cpp:133 msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in" msgstr "Envelope 6 3/4, 3 5/8 x 6 1/2 pol." #: ../src/common/paper.cpp:140 msgid "9 x 11 in" msgstr "9 x 11 pol." #: ../src/html/htmprint.cpp:431 msgid ": file does not exist!" msgstr ": ficheiro inexistente!" #: ../src/common/fontmap.cpp:199 msgid ": unknown charset" msgstr ": conjunto de caracteres desconhecido" #: ../src/common/fontmap.cpp:413 msgid ": unknown encoding" msgstr ": codificação desconhecida" #: ../src/generic/wizard.cpp:437 msgid "< &Back" msgstr "< &Atrás" #: ../src/osx/carbon/fontdlg.cpp:608 ../src/osx/carbon/fontdlg.cpp:815 #: ../src/osx/carbon/fontdlg.cpp:835 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:609 ../src/osx/carbon/fontdlg.cpp:817 #: ../src/osx/carbon/fontdlg.cpp:837 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:607 ../src/osx/carbon/fontdlg.cpp:813 #: ../src/osx/carbon/fontdlg.cpp:833 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:610 ../src/osx/carbon/fontdlg.cpp:819 #: ../src/osx/carbon/fontdlg.cpp:839 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:611 ../src/osx/carbon/fontdlg.cpp:824 #: ../src/osx/carbon/fontdlg.cpp:843 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:612 ../src/osx/carbon/fontdlg.cpp:821 #: ../src/osx/carbon/fontdlg.cpp:841 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:606 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:286 ../src/generic/filectrlg.cpp:309 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:290 ../src/generic/filectrlg.cpp:313 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:288 ../src/generic/filectrlg.cpp:311 msgid "" msgstr "" #: ../src/html/helpwnd.cpp:1279 msgid "Bold italic face.
    " msgstr "Face destacado itálico.
    " #: ../src/html/helpwnd.cpp:1283 msgid "bold italic underlined
    " msgstr "destacado itálico sublinhado
    " #: ../src/html/helpwnd.cpp:1278 msgid "Bold face. " msgstr "Face destacado. " #: ../src/html/helpwnd.cpp:1277 msgid "Italic face. " msgstr "Face itálico. " #: ../src/richtext/richtextliststylepage.cpp:494 #: ../src/richtext/richtextbulletspage.cpp:299 msgid ">" msgstr ">" #: ../src/generic/dbgrptg.cpp:318 msgid "A debug report has been generated in the directory\n" msgstr "Um relatório de depuração de erros foi gerado no directório\n" #: ../src/common/debugrpt.cpp:578 #, fuzzy msgid "A debug report has been generated. It can be found in" msgstr "Um relatório de depuração de erros foi gerado no directório\n" #: ../src/common/xtixml.cpp:418 msgid "A non empty collection must consist of 'element' nodes" msgstr "uma colecção não vazia deve consistir em nós de 'element'" #: ../src/richtext/richtextliststylepage.cpp:304 #: ../src/richtext/richtextliststylepage.cpp:306 #: ../src/richtext/richtextbulletspage.cpp:257 #: ../src/richtext/richtextbulletspage.cpp:259 msgid "A standard bullet name." msgstr "Um nome standard para o marcador." #: ../src/common/paper.cpp:218 #, fuzzy msgid "A0 sheet, 841 x 1189 mm" msgstr "Folha A4, 210 x 297 mm" #: ../src/common/paper.cpp:219 #, fuzzy msgid "A1 sheet, 594 x 841 mm" msgstr "Folha A3, 297 x 420 mm" #: ../src/common/paper.cpp:160 msgid "A2 420 x 594 mm" msgstr "A2 420 x 594 mm" #: ../src/common/paper.cpp:157 msgid "A3 Extra 322 x 445 mm" msgstr "A3 Extra 322 x 445 mm" #: ../src/common/paper.cpp:162 msgid "A3 Extra Transverse 322 x 445 mm" msgstr "A3 Extra Transverso 322 x 445 mm" #: ../src/common/paper.cpp:171 msgid "A3 Rotated 420 x 297 mm" msgstr "A3 Rodado 420 x 297 mm" #: ../src/common/paper.cpp:161 msgid "A3 Transverse 297 x 420 mm" msgstr "A3 Transverso 297 x 420 mm" #: ../src/common/paper.cpp:107 msgid "A3 sheet, 297 x 420 mm" msgstr "Folha A3, 297 x 420 mm" #: ../src/common/paper.cpp:147 msgid "A4 Extra 9.27 x 12.69 in" msgstr "A4 Extra 9.27 x 12.69 pol." #: ../src/common/paper.cpp:154 msgid "A4 Plus 210 x 330 mm" msgstr "A4+ 210 x 330 mm" #: ../src/common/paper.cpp:172 msgid "A4 Rotated 297 x 210 mm" msgstr "A4 Rodado 297 x 210 mm" #: ../src/common/paper.cpp:149 msgid "A4 Transverse 210 x 297 mm" msgstr "A4 Transverso 210 x 297 mm" #: ../src/common/paper.cpp:98 msgid "A4 sheet, 210 x 297 mm" msgstr "Folha A4, 210 x 297 mm" #: ../src/common/paper.cpp:108 msgid "A4 small sheet, 210 x 297 mm" msgstr "A4 folha pequena, 210x297 mm" #: ../src/common/paper.cpp:158 msgid "A5 Extra 174 x 235 mm" msgstr "A5 Extra 174 x 235 mm" #: ../src/common/paper.cpp:173 msgid "A5 Rotated 210 x 148 mm" msgstr "A5 Rodado 210 x 148 mm" #: ../src/common/paper.cpp:155 msgid "A5 Transverse 148 x 210 mm" msgstr "A5 Transverso 148 x 210 mm" #: ../src/common/paper.cpp:109 msgid "A5 sheet, 148 x 210 mm" msgstr "A5 folha, 148 x 210 mm" #: ../src/common/paper.cpp:165 msgid "A6 105 x 148 mm" msgstr "A6 105 x 148 mm" #: ../src/common/paper.cpp:178 msgid "A6 Rotated 148 x 105 mm" msgstr "A6 Rodado 148 x 105 mm" #: ../src/generic/fontdlgg.cpp:83 ../src/richtext/richtextformatdlg.cpp:526 #: ../src/osx/carbon/fontdlg.cpp:339 msgid "ABCDEFGabcdefg12345" msgstr "ABCDEFGabcdefg12345" #: ../src/common/accelcmn.cpp:76 msgid "ADD" msgstr "ADICIONAR" #: ../src/richtext/richtextsymboldlg.cpp:458 ../src/common/ftp.cpp:405 msgid "ASCII" msgstr "ASCII" #: ../src/osx/menu_osx.cpp:630 ../src/common/stockitem.cpp:139 #, fuzzy msgid "About" msgstr "&Sobre" #: ../src/generic/aboutdlgg.cpp:140 ../src/msw/aboutdlg.cpp:64 #, fuzzy, c-format msgid "About %s" msgstr "Sobre " #: ../src/richtext/richtextsizepage.cpp:520 msgid "Absolute" msgstr "" #: ../src/common/stockitem.cpp:207 #, fuzzy msgid "Actual Size" msgstr "T&amanho Actual" #: ../src/common/stockitem.cpp:140 msgid "Add" msgstr "Adicionar" #: ../src/richtext/richtextbuffer.cpp:10751 msgid "Add Column" msgstr "" #: ../src/richtext/richtextbuffer.cpp:10688 msgid "Add Row" msgstr "" #: ../src/html/helpwnd.cpp:439 msgid "Add current page to bookmarks" msgstr "Adicionar página actual aos marcadores" #: ../src/generic/colrdlgg.cpp:283 msgid "Add to custom colours" msgstr "Adicionar às cores personalizadas" #: ../include/wx/xtiprop.h:259 msgid "AddToPropertyCollection called on a generic accessor" msgstr "AddToPropertyCollection chamando num acessor genérico" #: ../include/wx/xtiprop.h:197 msgid "AddToPropertyCollection called w/o valid adder" msgstr "AddToPropertyCollection chamando com ou sem adicionador válido" #: ../src/html/helpctrl.cpp:159 #, c-format msgid "Adding book %s" msgstr "A adicionar livro %s" #: ../src/osx/carbon/dataview.cpp:1933 msgid "Adding flavor TEXT failed" msgstr "" #: ../src/osx/carbon/dataview.cpp:1954 msgid "Adding flavor utxt failed" msgstr "" #: ../src/common/preferencescmn.cpp:41 msgid "Advanced" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:435 msgid "After a paragraph:" msgstr "Depois de um parágrafo:" #: ../src/common/stockitem.cpp:172 msgid "Align Left" msgstr "Alinhar à Esquerda" #: ../src/common/stockitem.cpp:173 msgid "Align Right" msgstr "Alinhar à Direita" #: ../src/richtext/richtextsizepage.cpp:266 #, fuzzy msgid "Alignment" msgstr "&Alinhamento" #: ../src/generic/prntdlgg.cpp:215 msgid "All" msgstr "Todos" #: ../src/generic/filectrlg.cpp:1205 ../src/common/fldlgcmn.cpp:89 #, c-format msgid "All files (%s)|%s" msgstr "Todos os ficheiros (%s)|%s" #: ../include/wx/defs.h:2922 msgid "All files (*)|*" msgstr "Todos os ficheiros (*)|*" #: ../include/wx/defs.h:2919 msgid "All files (*.*)|*.*" msgstr "Todos os ficheiros (*.*)|*.*" #: ../src/richtext/richtextstyles.cpp:1057 msgid "All styles" msgstr "Todos os estilos" #: ../src/propgrid/manager.cpp:1496 msgid "Alphabetic Mode" msgstr "" #: ../src/common/xtistrm.cpp:429 msgid "Already Registered Object passed to SetObjectClassInfo" msgstr "Objecto Já Registado passado para SetObjectClassInfo" #: ../src/unix/dialup.cpp:353 msgid "Already dialling ISP." msgstr "Já está a ligar ao serviço ISP." #: ../src/common/accelcmn.cpp:320 ../src/univ/themes/win32.cpp:3756 #, fuzzy msgid "Alt+" msgstr "Alt-" #: ../src/common/debugrpt.cpp:581 #, fuzzy msgid "And includes the following files:\n" msgstr "*** E inclui os seguintes ficheiros:\n" #: ../src/generic/animateg.cpp:162 #, c-format msgid "Animation file is not of type %ld." msgstr "Ficheiro de animação não é do tipo %ld." #: ../src/generic/logg.cpp:1034 #, c-format msgid "Append log to file '%s' (choosing [No] will overwrite it)?" msgstr "" "Adicionar ao ficheiro de registo '%s' (escolher [Não] vai substitui-lo)?" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:610 #: ../src/osx/menu_osx.cpp:649 ../src/osx/menu_osx.cpp:657 #, fuzzy msgid "Application" msgstr "Selecção" #: ../src/common/stockitem.cpp:141 #, fuzzy msgid "Apply" msgstr "&Aplicar" #: ../src/richtext/richtextliststylepage.cpp:482 #: ../src/richtext/richtextbulletspage.cpp:287 msgid "Arabic" msgstr "Árabe" #: ../src/common/fmapbase.cpp:153 msgid "Arabic (ISO-8859-6)" msgstr "Árabe (ISO-8859-6)" #: ../src/msw/ole/automtn.cpp:661 #, fuzzy, c-format msgid "Argument %u not found." msgstr "Ficheiro de ajuda \"%s\" não encontrado." #: ../src/generic/aboutdlgg.cpp:184 msgid "Artists" msgstr "" #: ../src/common/stockitem.cpp:195 #, fuzzy msgid "Ascending" msgstr "a ler" #: ../src/generic/filectrlg.cpp:468 msgid "Attributes" msgstr "Atributos" #: ../src/richtext/richtextliststylepage.cpp:294 #: ../src/richtext/richtextbulletspage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:247 msgid "Available fonts." msgstr "Fontes disponíveis." #: ../src/common/paper.cpp:138 msgid "B4 (ISO) 250 x 353 mm" msgstr "B4 (ISO) 250 x 353 mm" #: ../src/common/paper.cpp:174 msgid "B4 (JIS) Rotated 364 x 257 mm" msgstr "B4 (JIS) Rodado 364 x 257 mm" #: ../src/common/paper.cpp:128 msgid "B4 Envelope, 250 x 353 mm" msgstr "Envelope B4, 250x353 mm" #: ../src/common/paper.cpp:110 msgid "B4 sheet, 250 x 354 mm" msgstr "Folha B4, 250 x 354 mm" #: ../src/common/paper.cpp:159 msgid "B5 (ISO) Extra 201 x 276 mm" msgstr "B5 (ISO) Extra 201 x 276 mm" #: ../src/common/paper.cpp:175 msgid "B5 (JIS) Rotated 257 x 182 mm" msgstr "B5 (JIS) Rodado 257 x 182 mm" #: ../src/common/paper.cpp:156 msgid "B5 (JIS) Transverse 182 x 257 mm" msgstr "B5 (JIS) Transverso 182 x 257 mm" #: ../src/common/paper.cpp:129 msgid "B5 Envelope, 176 x 250 mm" msgstr "Envelope B5, 176 x 250 mm" #: ../src/common/paper.cpp:111 msgid "B5 sheet, 182 x 257 millimeter" msgstr "B5 folha, 182 x 257 millimeter" #: ../src/common/paper.cpp:183 msgid "B6 (JIS) 128 x 182 mm" msgstr "B6 (JIS) 128 x 182 mm" #: ../src/common/paper.cpp:184 msgid "B6 (JIS) Rotated 182 x 128 mm" msgstr "B6 (JIS) Rodado 182 x 128 mm" #: ../src/common/paper.cpp:130 msgid "B6 Envelope, 176 x 125 mm" msgstr "Envelope B6, 176 x 125 mm" #: ../src/common/accelcmn.cpp:49 msgid "BACK" msgstr "RETROCEDER" #: ../src/common/imagbmp.cpp:523 ../src/common/imagbmp.cpp:553 #: ../src/common/imagbmp.cpp:568 msgid "BMP: Couldn't allocate memory." msgstr "BMP: Impossível alocar memória." #: ../src/common/imagbmp.cpp:97 msgid "BMP: Couldn't save invalid image." msgstr "BMP: Impossível gravar imagem inválida." #: ../src/common/imagbmp.cpp:338 msgid "BMP: Couldn't write RGB color map." msgstr "BMP: Impossível escrever mapa de cores RGB." #: ../src/common/imagbmp.cpp:473 msgid "BMP: Couldn't write data." msgstr "BMP: Impossível escrever data." #: ../src/common/imagbmp.cpp:239 msgid "BMP: Couldn't write the file (Bitmap) header." msgstr "BMP: Impossível escrever o cabeçalho do ficheiro (Bitmap)." #: ../src/common/imagbmp.cpp:262 msgid "BMP: Couldn't write the file (BitmapInfo) header." msgstr "BMP: Impossível escrever o cabeçalho do ficheiro (BitmapInfo)." #: ../src/common/imagbmp.cpp:133 msgid "BMP: wxImage doesn't have own wxPalette." msgstr "BMP: wxImage não tem a sua wxPalette." #: ../src/common/stockitem.cpp:142 #, fuzzy msgid "Back" msgstr "&Retroceder" #: ../src/richtext/richtextbackgroundpage.cpp:119 #: ../src/richtext/richtextformatdlg.cpp:374 #, fuzzy msgid "Background" msgstr "Cor de fundo" #: ../src/richtext/richtextbackgroundpage.cpp:131 #, fuzzy msgid "Background &colour:" msgstr "Cor de fundo" #: ../src/osx/carbon/fontdlg.cpp:406 msgid "Background colour" msgstr "Cor de fundo" #: ../src/common/fmapbase.cpp:160 msgid "Baltic (ISO-8859-13)" msgstr "Báltico (ISO-8859-13)" #: ../src/common/fmapbase.cpp:151 msgid "Baltic (old) (ISO-8859-4)" msgstr "Báltico (antigo) (ISO-8859-4)" #: ../src/richtext/richtextliststylepage.cpp:426 msgid "Before a paragraph:" msgstr "Antes de um parágrafo:" #: ../src/richtext/richtextliststylepage.cpp:489 #: ../src/richtext/richtextbulletspage.cpp:294 msgid "Bitmap" msgstr "Bitmap" #: ../src/osx/carbon/dataview.cpp:2396 msgid "Bitmap renderer cannot render value; value type: " msgstr "" #: ../src/generic/fontdlgg.cpp:333 ../src/richtext/richtextfontpage.cpp:337 #: ../src/osx/carbon/fontdlg.cpp:540 ../src/common/stockitem.cpp:143 msgid "Bold" msgstr "Destacado" #: ../src/richtext/richtextborderspage.cpp:256 #: ../src/richtext/richtextborderspage.cpp:389 #, fuzzy msgid "Border" msgstr "Moderno" #: ../src/richtext/richtextformatdlg.cpp:368 #, fuzzy msgid "Borders" msgstr "Moderno" #: ../src/richtext/richtextsizepage.cpp:288 ../src/common/stockitem.cpp:144 msgid "Bottom" msgstr "" #: ../src/generic/prntdlgg.cpp:893 msgid "Bottom margin (mm):" msgstr "Margem de rodapé (mm):" #: ../src/richtext/richtextbuffer.cpp:8919 #, fuzzy msgid "Box Properties" msgstr "&Propriedades" #: ../src/richtext/richtextstyles.cpp:1061 #, fuzzy msgid "Box styles" msgstr "Todos os estilos" #: ../src/common/filepickercmn.cpp:43 ../src/common/filepickercmn.cpp:44 msgid "Browse" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:195 msgid "Bullet &Alignment:" msgstr "&Alinhamento de Marcador:" #: ../src/richtext/richtextliststylepage.cpp:309 msgid "Bullet style" msgstr "Estilo de marcador" #: ../src/richtext/richtextformatdlg.cpp:342 msgid "Bullets" msgstr "Marcadores" #: ../src/common/paper.cpp:99 msgid "C sheet, 17 x 22 in" msgstr "Folha C, 17 x 22 pol." #: ../src/generic/logg.cpp:520 msgid "C&lear" msgstr "&Limpar" #: ../src/generic/fontdlgg.cpp:406 msgid "C&olour:" msgstr "C&or:" #: ../src/common/paper.cpp:124 msgid "C3 Envelope, 324 x 458 mm" msgstr "Envelope C3, 324 x 458 mm" #: ../src/common/paper.cpp:125 msgid "C4 Envelope, 229 x 324 mm" msgstr "Envelope C4, 229 x 324 mm" #: ../src/common/paper.cpp:123 msgid "C5 Envelope, 162 x 229 mm" msgstr "Envelope C5, 162 x 229 mm" #: ../src/common/paper.cpp:126 msgid "C6 Envelope, 114 x 162 mm" msgstr "Envelope C6, 114 x 162 mm" #: ../src/common/paper.cpp:127 msgid "C65 Envelope, 114 x 229 mm" msgstr "Envelope C65, 114 x 229 mm" #: ../src/common/accelcmn.cpp:66 msgid "CANCEL" msgstr "CANCELAR" #: ../src/common/accelcmn.cpp:70 msgid "CAPITAL" msgstr "MAIÚSCULA" #: ../src/common/stockitem.cpp:146 msgid "CD-Rom" msgstr "" #: ../src/html/chm.cpp:815 ../src/html/chm.cpp:874 msgid "CHM handler currently supports only local files!" msgstr "O manuseador CHM actualmente apenas suporta ficheiros locais!" #: ../src/common/accelcmn.cpp:67 msgid "CLEAR" msgstr "LIMPAR" #: ../src/common/accelcmn.cpp:111 msgid "COMMAND" msgstr "COMANDO" #: ../src/richtext/richtextfontpage.cpp:291 msgid "Ca&pitals" msgstr "" #: ../src/common/cmdproc.cpp:267 msgid "Can't &Undo " msgstr "Não é possível &Desfazer " #: ../src/common/image.cpp:2686 msgid "Can't automatically determine the image format for non-seekable input." msgstr "" #: ../src/msw/registry.cpp:505 #, c-format msgid "Can't close registry key '%s'" msgstr "Não foi possível fechar a chave de registo '%s'" #: ../src/msw/registry.cpp:583 #, c-format msgid "Can't copy values of unsupported type %d." msgstr "Não foi possível copiar valores do tipo %d não suportado." #: ../src/msw/registry.cpp:486 #, c-format msgid "Can't create registry key '%s'" msgstr "Não foi possível criar a chave de registo '%s'" #: ../src/msw/thread.cpp:696 ../src/os2/thread.cpp:494 msgid "Can't create thread" msgstr "Não é possível criar a thread" #: ../src/msw/window.cpp:3793 #, c-format msgid "Can't create window of class %s" msgstr "Não é possível criar janela da classe %s" #: ../src/msw/registry.cpp:776 #, c-format msgid "Can't delete key '%s'" msgstr "Não é possível apagar a chave '%s'" #: ../src/msw/iniconf.cpp:458 ../src/os2/iniconf.cpp:471 #, c-format msgid "Can't delete the INI file '%s'" msgstr "Não é possível apagar o ficheiro INI '%s'" #: ../src/msw/registry.cpp:804 #, c-format msgid "Can't delete value '%s' from key '%s'" msgstr "Não é possível apagar valor '%s' da chave '%s'" #: ../src/msw/registry.cpp:1161 #, c-format msgid "Can't enumerate subkeys of key '%s'" msgstr "Não é possível enumerar as sub-chaves da chave '%s'" #: ../src/msw/registry.cpp:1116 #, c-format msgid "Can't enumerate values of key '%s'" msgstr "Não é possível enumerar os valores da chave '%s'" #: ../src/msw/registry.cpp:1379 #, c-format msgid "Can't export value of unsupported type %d." msgstr "Não foi possível exportar valores de tipo %d não suportado." #: ../src/common/ffile.cpp:236 #, c-format msgid "Can't find current position in file '%s'" msgstr "Não foi possível encontrar a posição actual no ficheiro '%s'" #: ../src/msw/registry.cpp:416 #, c-format msgid "Can't get info about registry key '%s'" msgstr "Não foi possível obter informação sobre a chave de registo '%s'" #: ../src/common/zstream.cpp:346 msgid "Can't initialize zlib deflate stream." msgstr "Não é possível inicializar o zlib deflate stream." #: ../src/common/zstream.cpp:185 msgid "Can't initialize zlib inflate stream." msgstr "Não é possível inicializar o zlib inflate stream." #: ../src/msw/fswatcher.cpp:432 #, c-format msgid "Can't monitor non-existent directory \"%s\" for changes." msgstr "" #: ../src/msw/registry.cpp:452 #, c-format msgid "Can't open registry key '%s'" msgstr "Não foi possível abrir chave de registo '%s'" #: ../src/common/zstream.cpp:252 #, c-format msgid "Can't read from inflate stream: %s" msgstr "Não foi possível ler do inflate stream: %s" #: ../src/common/zstream.cpp:244 msgid "Can't read inflate stream: unexpected EOF in underlying stream." msgstr "" "Não foi possível ler o inflate stream: EOF inexperado no stream subjacente." #: ../src/msw/registry.cpp:1048 #, c-format msgid "Can't read value of '%s'" msgstr "Não foi possível ler valor de '%s'" #: ../src/msw/registry.cpp:877 ../src/msw/registry.cpp:909 #: ../src/msw/registry.cpp:971 #, c-format msgid "Can't read value of key '%s'" msgstr "Não foi possível ler valor da chave '%s'" #: ../src/common/image.cpp:2483 #, c-format msgid "Can't save image to file '%s': unknown extension." msgstr "" "Não foi possível gravar imagem para ficheiro '%s': extensão desconhecida." #: ../src/generic/logg.cpp:579 ../src/generic/logg.cpp:996 msgid "Can't save log contents to file." msgstr "Não foi possível gravar conteúdo do registo para ficheiro." #: ../src/msw/thread.cpp:652 ../src/os2/thread.cpp:477 msgid "Can't set thread priority" msgstr "Não foi possível definir prioridade da thread" #: ../src/msw/registry.cpp:895 ../src/msw/registry.cpp:939 #: ../src/msw/registry.cpp:1065 #, c-format msgid "Can't set value of '%s'" msgstr "Não foi possível definir valor de '%s'" #: ../src/unix/utilsunx.cpp:357 #, fuzzy msgid "Can't write to child process's stdin" msgstr "Falha no encerramento do processo %d" #: ../src/common/zstream.cpp:427 #, c-format msgid "Can't write to deflate stream: %s" msgstr "Não foi possível escrever no edeflate stream: %s" #: ../include/wx/msgdlg.h:274 ../src/generic/dirdlgg.cpp:107 #: ../src/richtext/richtextstyledlg.cpp:300 ../src/common/stockitem.cpp:145 #: ../src/msw/msgdlg.cpp:489 ../src/msw/progdlg.cpp:673 #: ../src/gtk1/fontdlg.cpp:144 ../src/motif/msgdlg.cpp:196 msgid "Cancel" msgstr "Cancelar" #: ../src/os2/thread.cpp:116 msgid "Cannot create mutex." msgstr "Não foi possível criar o mutex." #: ../src/osx/carbon/dataview.cpp:895 msgid "Cannot create new column's ID. Probably max. number of columns reached." msgstr "" #: ../src/common/filefn.cpp:1336 #, c-format msgid "Cannot enumerate files '%s'" msgstr "Não foi possível enumerar os ficheiros '%s'" #: ../src/msw/dir.cpp:264 #, c-format msgid "Cannot enumerate files in directory '%s'" msgstr "Não foi possível enumerar os ficheiros no directório '%s'" #: ../src/msw/dialup.cpp:542 #, c-format msgid "Cannot find active dialup connection: %s" msgstr "Não foi possível encontrar a ligação telefónica activa: %s" #: ../src/msw/dialup.cpp:848 msgid "Cannot find the location of address book file" msgstr "" "Não foi possível encontrar a localização do ficheiro do livro de endereços" #: ../src/msw/ole/automtn.cpp:562 #, fuzzy, c-format msgid "Cannot get an active instance of \"%s\"" msgstr "Não foi possível encontrar a ligação telefónica activa: %s" #: ../src/unix/threadpsx.cpp:1030 #, c-format msgid "Cannot get priority range for scheduling policy %d." msgstr "" "Não foi possível obter a gama de prioridade para a política de agendamento " "%d." #: ../src/unix/utilsunx.cpp:988 msgid "Cannot get the hostname" msgstr "Não foi possível obter o nome de computador" #: ../src/unix/utilsunx.cpp:1024 msgid "Cannot get the official hostname" msgstr "Não foi possível obter o nome de computador oficial" #: ../src/msw/dialup.cpp:949 msgid "Cannot hang up - no active dialup connection." msgstr "Não foi possível desligar - nenhuma ligação telefónica activa." #: ../include/wx/msw/ole/oleutils.h:52 msgid "Cannot initialize OLE" msgstr "Não foi possível inicializar o OLE" #: ../src/common/socket.cpp:847 #, fuzzy msgid "Cannot initialize sockets" msgstr "Não foi possível inicializar o OLE" #: ../src/msw/volume.cpp:620 #, c-format msgid "Cannot load icon from '%s'." msgstr "Não foi possível carregar ícone de '%s'." #: ../src/xrc/xmlres.cpp:361 #, fuzzy, c-format msgid "Cannot load resources from '%s'." msgstr "Não foi possível carregar recursos do ficheiro '%s'." #: ../src/xrc/xmlres.cpp:746 #, c-format msgid "Cannot load resources from file '%s'." msgstr "Não foi possível carregar recursos do ficheiro '%s'." #: ../src/html/htmlfilt.cpp:137 #, c-format msgid "Cannot open HTML document: %s" msgstr "Não foi possível abrir o documento HTML: %s" #: ../src/html/helpdata.cpp:665 #, c-format msgid "Cannot open HTML help book: %s" msgstr "Não foi possível abrir o livro de ajuda HTML: %s" #: ../src/html/helpdata.cpp:297 #, c-format msgid "Cannot open contents file: %s" msgstr "Não foi possível abrir o ficheiro de conteúdos: %s" #: ../src/generic/dcpsg.cpp:1751 msgid "Cannot open file for PostScript printing!" msgstr "Não foi possível abrir o ficheiro para impressão em PostScript!" #: ../src/html/helpdata.cpp:311 #, c-format msgid "Cannot open index file: %s" msgstr "Não foi possível abrir ficheiro de índice: %s" #: ../src/xrc/xmlres.cpp:728 #, fuzzy, c-format msgid "Cannot open resources file '%s'." msgstr "Não foi possível carregar recursos do ficheiro '%s'." #: ../src/html/helpwnd.cpp:1537 msgid "Cannot print empty page." msgstr "Não foi possível imprimir página vazia." #: ../src/msw/volume.cpp:507 #, c-format msgid "Cannot read typename from '%s'!" msgstr "Não foi possível ler tipo de nome de '%s'!" #: ../src/os2/thread.cpp:527 #, c-format msgid "Cannot resume thread %lu" msgstr "Não é possível retomar a thread %lu" #: ../src/msw/thread.cpp:923 #, fuzzy, c-format msgid "Cannot resume thread %lx" msgstr "Não é possível retomar a thread %x" #: ../src/unix/threadpsx.cpp:1011 msgid "Cannot retrieve thread scheduling policy." msgstr "Não foi possível obter thread de política de agendamento." #: ../src/common/intl.cpp:542 #, c-format msgid "Cannot set locale to language \"%s\"." msgstr "" #: ../src/unix/threadpsx.cpp:831 ../src/msw/thread.cpp:569 msgid "Cannot start thread: error writing TLS." msgstr "Não é possível iniciar a thread: erro ao escrever o TLS." #: ../src/os2/thread.cpp:513 #, c-format msgid "Cannot suspend thread %lu" msgstr "Não é possível suspender a thread %lu" #: ../src/msw/thread.cpp:907 #, fuzzy, c-format msgid "Cannot suspend thread %lx" msgstr "Não é possível suspender a thread %x" #: ../src/msw/thread.cpp:830 msgid "Cannot wait for thread termination" msgstr "Não é possível esperar pela terminação da thread" #: ../src/html/helpwnd.cpp:546 msgid "Case sensitive" msgstr "Sensível à capitulação" #: ../src/propgrid/manager.cpp:1495 msgid "Categorized Mode" msgstr "" #: ../src/richtext/richtextbuffer.cpp:9347 #, fuzzy msgid "Cell Properties" msgstr "&Propriedades" #: ../src/common/fmapbase.cpp:161 msgid "Celtic (ISO-8859-14)" msgstr "Céltico (ISO-8859-14)" #: ../src/richtext/richtextindentspage.cpp:160 #: ../src/richtext/richtextliststylepage.cpp:349 msgid "Cen&tred" msgstr "Cen&trado" #: ../src/common/stockitem.cpp:170 msgid "Centered" msgstr "Centrado" #: ../src/common/fmapbase.cpp:149 msgid "Central European (ISO-8859-2)" msgstr "Europa Central (ISO-8859-2)" #: ../src/richtext/richtextliststylepage.cpp:250 #: ../src/richtext/richtextbulletspage.cpp:200 msgid "Centre" msgstr "Centro" #: ../src/richtext/richtextindentspage.cpp:162 #: ../src/richtext/richtextindentspage.cpp:164 #: ../src/richtext/richtextliststylepage.cpp:351 #: ../src/richtext/richtextliststylepage.cpp:353 msgid "Centre text." msgstr "Centrar texto." #: ../src/richtext/richtextsizepage.cpp:287 #, fuzzy msgid "Centred" msgstr "Cen&trado" #: ../src/richtext/richtextliststylepage.cpp:280 #: ../src/richtext/richtextbulletspage.cpp:232 msgid "Ch&oose..." msgstr "Esc&olher..." #: ../src/richtext/richtextbuffer.cpp:4041 msgid "Change List Style" msgstr "Alterar Lista de Estilos" #: ../src/richtext/richtextbuffer.cpp:3392 #, fuzzy msgid "Change Object Style" msgstr "Alterar Lista de Estilos" #: ../src/richtext/richtextbuffer.cpp:3658 #: ../src/richtext/richtextbuffer.cpp:7749 #, fuzzy msgid "Change Properties" msgstr "&Propriedades" #: ../src/richtext/richtextbuffer.cpp:3209 msgid "Change Style" msgstr "Alterar Estilo" #: ../src/common/fileconf.cpp:372 #, c-format msgid "Changes won't be saved to avoid overwriting the existing file \"%s\"" msgstr "" #: ../src/richtext/richtextstyles.cpp:1059 msgid "Character styles" msgstr "Estilos de Caracteres" #: ../src/richtext/richtextliststylepage.cpp:224 #: ../src/richtext/richtextliststylepage.cpp:226 #: ../src/richtext/richtextbulletspage.cpp:174 #: ../src/richtext/richtextbulletspage.cpp:176 msgid "Check to add a period after the bullet." msgstr "Marcar para adicionar um ponto a seguir ao marcador." #: ../src/richtext/richtextliststylepage.cpp:238 #: ../src/richtext/richtextliststylepage.cpp:240 #: ../src/richtext/richtextbulletspage.cpp:188 #: ../src/richtext/richtextbulletspage.cpp:190 msgid "Check to add a right parenthesis." msgstr "Marcar para adicionar um parêntesis à direita." #: ../src/richtext/richtextliststylepage.cpp:231 #: ../src/richtext/richtextliststylepage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:181 #: ../src/richtext/richtextbulletspage.cpp:183 msgid "Check to enclose the bullet in parentheses." msgstr "Marque para circundar o marcador entre parêntesis." #: ../src/osx/carbon/fontdlg.cpp:542 ../src/osx/carbon/fontdlg.cpp:544 msgid "Check to make the font bold." msgstr "Marque para tornar a letra destacada." #: ../src/osx/carbon/fontdlg.cpp:549 ../src/osx/carbon/fontdlg.cpp:551 msgid "Check to make the font italic." msgstr "Marque para tornar a letra itálica." #: ../src/osx/carbon/fontdlg.cpp:558 ../src/osx/carbon/fontdlg.cpp:560 msgid "Check to make the font underlined." msgstr "Marque para tornar a letra sublinhada." #: ../src/richtext/richtextstyledlg.cpp:289 #: ../src/richtext/richtextstyledlg.cpp:291 msgid "Check to restart numbering." msgstr "Marque para reiniciar a numeração." #: ../src/richtext/richtextfontpage.cpp:286 #: ../src/richtext/richtextfontpage.cpp:288 #, fuzzy msgid "Check to show a line through the text." msgstr "Marcar para adicionar um ponto a seguir ao marcador." #: ../src/richtext/richtextfontpage.cpp:293 #: ../src/richtext/richtextfontpage.cpp:295 #, fuzzy msgid "Check to show the text in capitals." msgstr "Marque para tornar a letra itálica." #: ../src/richtext/richtextfontpage.cpp:300 #: ../src/richtext/richtextfontpage.cpp:302 #, fuzzy msgid "Check to show the text in small capitals." msgstr "Marque para tornar a letra itálica." #: ../src/richtext/richtextfontpage.cpp:314 #: ../src/richtext/richtextfontpage.cpp:316 #, fuzzy msgid "Check to show the text in subscript." msgstr "Clique para alterar a cor do texto." #: ../src/richtext/richtextfontpage.cpp:307 #: ../src/richtext/richtextfontpage.cpp:309 #, fuzzy msgid "Check to show the text in superscript." msgstr "Marque para circundar o marcador entre parêntesis." #: ../src/msw/dialup.cpp:784 msgid "Choose ISP to dial" msgstr "Escolha o ISP para marcar" #: ../src/propgrid/props.cpp:1643 #, fuzzy msgid "Choose a directory:" msgstr "Criar directório" #: ../src/propgrid/props.cpp:1702 #, fuzzy msgid "Choose a file" msgstr "Escolher fonte" #: ../src/generic/colrdlgg.cpp:144 ../src/gtk/colordlg.cpp:63 msgid "Choose colour" msgstr "Escolher cor" #: ../src/generic/fontpickerg.cpp:50 ../src/gtk/fontdlg.cpp:75 #: ../src/gtk1/fontdlg.cpp:125 msgid "Choose font" msgstr "Escolher fonte" #: ../src/common/module.cpp:74 #, c-format msgid "Circular dependency involving module \"%s\" detected." msgstr "Foi detectada uma dependência circular envolvendo o módulo \"%s\"." #: ../src/aui/tabmdi.cpp:108 ../src/generic/mdig.cpp:97 msgid "Cl&ose" msgstr "F&echar" #: ../src/msw/ole/automtn.cpp:673 #, fuzzy msgid "Class not registered." msgstr "Não é possível criar a thread" #: ../src/common/stockitem.cpp:147 #, fuzzy msgid "Clear" msgstr "&Limpar" #: ../src/generic/logg.cpp:520 msgid "Clear the log contents" msgstr "Limpar o conteúdo do registo" #: ../src/richtext/richtextstyledlg.cpp:252 #: ../src/richtext/richtextstyledlg.cpp:254 msgid "Click to apply the selected style." msgstr "Clique para aplicar o estilo seleccionado." #: ../src/richtext/richtextliststylepage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:283 #: ../src/richtext/richtextbulletspage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:235 msgid "Click to browse for a symbol." msgstr "Clique para procurar por um simbolo." #: ../src/osx/carbon/fontdlg.cpp:589 ../src/osx/carbon/fontdlg.cpp:591 msgid "Click to cancel changes to the font." msgstr "Clique para cancelar as alterações à fonte." #: ../src/generic/fontdlgg.cpp:472 ../src/generic/fontdlgg.cpp:491 msgid "Click to cancel the font selection." msgstr "Clique para cancelar selecção de fonte." #: ../src/osx/carbon/fontdlg.cpp:570 ../src/osx/carbon/fontdlg.cpp:572 msgid "Click to change the font colour." msgstr "Clique para alterar a cor da fonte." #: ../src/richtext/richtextfontpage.cpp:276 #: ../src/richtext/richtextfontpage.cpp:278 #, fuzzy msgid "Click to change the text background colour." msgstr "Clique para alterar a cor do texto." #: ../src/richtext/richtextfontpage.cpp:263 #: ../src/richtext/richtextfontpage.cpp:265 msgid "Click to change the text colour." msgstr "Clique para alterar a cor do texto." #: ../src/richtext/richtextliststylepage.cpp:195 #: ../src/richtext/richtextliststylepage.cpp:197 msgid "Click to choose the font for this level." msgstr "Clique para escolher a fonte para este nível." #: ../src/richtext/richtextstyledlg.cpp:279 #: ../src/richtext/richtextstyledlg.cpp:281 msgid "Click to close this window." msgstr "Clique para fechar esta janela." #: ../src/osx/carbon/fontdlg.cpp:596 ../src/osx/carbon/fontdlg.cpp:598 msgid "Click to confirm changes to the font." msgstr "Clique para confirmar alterações a fonte." #: ../src/generic/fontdlgg.cpp:477 ../src/generic/fontdlgg.cpp:479 #: ../src/generic/fontdlgg.cpp:484 ../src/generic/fontdlgg.cpp:486 msgid "Click to confirm the font selection." msgstr "Clique para confirmar selecção de fonte." #: ../src/richtext/richtextstyledlg.cpp:244 #: ../src/richtext/richtextstyledlg.cpp:246 #, fuzzy msgid "Click to create a new box style." msgstr "Clique para criar uma nova lista de estilos." #: ../src/richtext/richtextstyledlg.cpp:226 #: ../src/richtext/richtextstyledlg.cpp:228 msgid "Click to create a new character style." msgstr "Clique para criar um novo estilo de caracter." #: ../src/richtext/richtextstyledlg.cpp:238 #: ../src/richtext/richtextstyledlg.cpp:240 msgid "Click to create a new list style." msgstr "Clique para criar uma nova lista de estilos." #: ../src/richtext/richtextstyledlg.cpp:232 #: ../src/richtext/richtextstyledlg.cpp:234 msgid "Click to create a new paragraph style." msgstr "Clique para criar um novo estilo de parágrafo." #: ../src/richtext/richtexttabspage.cpp:137 #: ../src/richtext/richtexttabspage.cpp:139 msgid "Click to create a new tab position." msgstr "Clique para criar uma nova posição de tabulação." #: ../src/richtext/richtexttabspage.cpp:149 #: ../src/richtext/richtexttabspage.cpp:151 msgid "Click to delete all tab positions." msgstr "Clique para apagar todas as posições de tabulação." #: ../src/richtext/richtextstyledlg.cpp:270 #: ../src/richtext/richtextstyledlg.cpp:272 msgid "Click to delete the selected style." msgstr "Clique para apagar o estilo seleccionado." #: ../src/richtext/richtexttabspage.cpp:143 #: ../src/richtext/richtexttabspage.cpp:145 msgid "Click to delete the selected tab position." msgstr "Clique para apagar a posição de tabulação seleccionada." #: ../src/richtext/richtextstyledlg.cpp:264 #: ../src/richtext/richtextstyledlg.cpp:266 msgid "Click to edit the selected style." msgstr "Clique para editar estilo seleccionado." #: ../src/richtext/richtextstyledlg.cpp:258 #: ../src/richtext/richtextstyledlg.cpp:260 msgid "Click to rename the selected style." msgstr "Clique para renomear estilo seleccionado." #: ../src/generic/dbgrptg.cpp:97 ../src/generic/progdlgg.cpp:804 #: ../src/generic/progdlgg.cpp:809 ../src/richtext/richtextstyledlg.cpp:277 #: ../src/richtext/richtextsymboldlg.cpp:476 ../src/common/stockitem.cpp:148 #: ../src/msw/progdlg.cpp:170 ../src/msw/progdlg.cpp:679 #: ../src/html/helpdlg.cpp:90 msgid "Close" msgstr "Fechar" #: ../src/aui/tabmdi.cpp:109 ../src/generic/mdig.cpp:98 msgid "Close All" msgstr "Fechar Tudo" #: ../src/common/stockitem.cpp:266 msgid "Close current document" msgstr "Fechar documento actual" #: ../src/generic/logg.cpp:522 msgid "Close this window" msgstr "Fechar esta janela" #: ../src/common/stockitem.cpp:193 #, fuzzy msgid "Color" msgstr "Cor:" #: ../src/richtext/richtextformatdlg.cpp:725 #, fuzzy msgid "Colour" msgstr "Cor:" #: ../src/msw/colordlg.cpp:156 #, fuzzy, c-format msgid "Colour selection dialog failed with error %0lx." msgstr "Execução do comando '%s' terminou com o erro: %ul" #: ../src/osx/carbon/fontdlg.cpp:566 msgid "Colour:" msgstr "Cor:" #: ../src/osx/carbon/dataview.cpp:900 #, fuzzy msgid "Column could not be added." msgstr "Não foi possível carregar o ficheiro." #: ../src/osx/carbon/dataview.cpp:899 msgid "Column description could not be initialized." msgstr "" #: ../src/osx/carbon/dataview.cpp:1538 ../src/osx/carbon/dataview.cpp:1559 #, fuzzy msgid "Column index not found." msgstr "Ficheiro de ajuda \"%s\" não encontrado." #: ../src/osx/carbon/dataview.cpp:1614 msgid "Column width could not be determined" msgstr "" #: ../src/osx/carbon/dataview.cpp:901 msgid "Column width could not be set." msgstr "" #: ../src/common/init.cpp:188 #, c-format msgid "" "Command line argument %d couldn't be converted to Unicode and will be " "ignored." msgstr "" #: ../src/msw/fontdlg.cpp:119 #, fuzzy, c-format msgid "Common dialog failed with error code %0lx." msgstr "Execução do comando '%s' terminou com o erro: %ul" #: ../src/gtk/window.cpp:4306 msgid "" "Compositing not supported by this system, please enable it in your Window " "Manager." msgstr "" #: ../src/html/helpwnd.cpp:1554 msgid "Compressed HTML Help file (*.chm)|*.chm|" msgstr "Ficheiro de ajuda HTML comprimido (*.chm)|*.chm|" #: ../src/generic/dirctrlg.cpp:544 msgid "Computer" msgstr "Computador" #: ../src/common/fileconf.cpp:965 #, c-format msgid "Config entry name cannot start with '%c'." msgstr "Nome de entrada de configuração não pode começar por '%c'." #: ../src/gtk/filedlg.cpp:59 msgid "Confirm" msgstr "Confirmar" #: ../src/msw/mimetype.cpp:739 msgid "Confirm registry update" msgstr "Confirmar actualização de registo" #: ../src/html/htmlwin.cpp:544 msgid "Connecting..." msgstr "A ligar..." #: ../src/html/helpwnd.cpp:482 msgid "Contents" msgstr "Conteúdos" #: ../src/common/strconv.cpp:2261 #, c-format msgid "Conversion to charset '%s' doesn't work." msgstr "Conversão código de caracteres '%s' não funciona." #: ../src/common/stockitem.cpp:149 #, fuzzy msgid "Convert" msgstr "Conteúdos" #: ../src/html/htmlwin.cpp:1057 #, c-format msgid "Copied to clipboard:\"%s\"" msgstr "Copiado para a área de transferência:\"%s\"" #: ../src/generic/prntdlgg.cpp:247 msgid "Copies:" msgstr "Cópias:" #: ../src/common/stockitem.cpp:150 ../src/stc/stc_i18n.cpp:18 #, fuzzy msgid "Copy" msgstr "&Copiar" #: ../src/common/stockitem.cpp:258 msgid "Copy selection" msgstr "Copiar selecção" #: ../src/html/chm.cpp:718 #, c-format msgid "Could not create temporary file '%s'" msgstr "Não foi possível criar ficheiro temporário '%s'" #: ../src/osx/carbon/dataview.cpp:1285 ../src/osx/carbon/dataview.cpp:1672 #, fuzzy msgid "Could not determine column index." msgstr "Não foi possível iniciar antevisão do documento." #: ../src/osx/carbon/dataview.cpp:876 msgid "Could not determine column's position" msgstr "" #: ../src/osx/carbon/dataview.cpp:843 #, fuzzy msgid "Could not determine number of columns." msgstr "Não foi possível encontrar recursos de ficheiro incluído %s." #: ../src/osx/carbon/dataview.cpp:975 #, fuzzy msgid "Could not determine number of items" msgstr "Não foi possível encontrar recursos de ficheiro incluído %s." #: ../src/html/chm.cpp:273 #, c-format msgid "Could not extract %s into %s: %s" msgstr "Não foi possível extrair %s para %s: %s" #: ../src/generic/tabg.cpp:1048 msgid "Could not find tab for id" msgstr "Não foi possível localizar a tabulação para o id" #: ../src/osx/carbon/dataview.cpp:2556 ../src/osx/carbon/dataview.cpp:2591 #: ../src/osx/carbon/dataview.cpp:2615 ../src/osx/carbon/dataview.cpp:2636 #: ../src/osx/carbon/dataview.cpp:2773 #, fuzzy msgid "Could not get header description." msgstr "Não foi possível inicia a impressão." #: ../src/osx/carbon/dataview.cpp:1169 ../src/osx/carbon/dataview.cpp:1195 #, fuzzy msgid "Could not get items." msgstr "Não foi possível localizar o ficheiro '%s'." #: ../src/osx/carbon/dataview.cpp:2659 ../src/osx/carbon/dataview.cpp:2724 #, fuzzy msgid "Could not get property flags." msgstr "Não foi possível criar ficheiro temporário '%s'" #: ../src/osx/carbon/dataview.cpp:726 #, fuzzy msgid "Could not get selected items." msgstr "Não foi possível localizar o ficheiro '%s'." #: ../src/html/chm.cpp:444 #, c-format msgid "Could not locate file '%s'." msgstr "Não foi possível localizar o ficheiro '%s'." #: ../src/osx/carbon/dataview.cpp:845 #, fuzzy msgid "Could not remove column." msgstr "Não foi possível criar um cursor." #: ../src/osx/carbon/dataview.cpp:642 #, fuzzy msgid "Could not retrieve number of items" msgstr "Não foi possível criar ficheiro temporário '%s'" #: ../src/osx/carbon/dataview.cpp:2572 #, fuzzy msgid "Could not set alignment." msgstr "Não foi possível inicia a impressão." #: ../src/osx/carbon/dataview.cpp:2803 #, fuzzy msgid "Could not set column width." msgstr "Não foi possível iniciar antevisão do documento." #: ../src/common/filefn.cpp:1569 #, fuzzy msgid "Could not set current working directory" msgstr "Falha na obtenção do directório de trabalho" #: ../src/osx/carbon/dataview.cpp:2775 #, fuzzy msgid "Could not set header description." msgstr "Não foi possível inicia a impressão." #: ../src/osx/carbon/dataview.cpp:2596 #, fuzzy msgid "Could not set icon." msgstr "Não foi possível inicia a impressão." #: ../src/osx/carbon/dataview.cpp:2617 #, fuzzy msgid "Could not set maximum width." msgstr "Não foi possível inicia a impressão." #: ../src/osx/carbon/dataview.cpp:2638 #, fuzzy msgid "Could not set minimum width." msgstr "Não foi possível inicia a impressão." #: ../src/osx/carbon/dataview.cpp:2664 ../src/osx/carbon/dataview.cpp:2729 #, fuzzy msgid "Could not set property flags." msgstr "Não foi possível inicia a impressão." #: ../src/common/prntbase.cpp:1985 msgid "Could not start document preview." msgstr "Não foi possível iniciar antevisão do documento." #: ../src/generic/printps.cpp:178 ../src/msw/printwin.cpp:210 #: ../src/gtk/print.cpp:1077 msgid "Could not start printing." msgstr "Não foi possível inicia a impressão." #: ../src/common/wincmn.cpp:2131 msgid "Could not transfer data to window" msgstr "Não foi possível transferir dados para a janela" #: ../src/os2/thread.cpp:160 msgid "Couldn't acquire a mutex lock" msgstr "Não foi possível adquirir um bloqueio à mutex" #: ../src/msw/imaglist.cpp:166 ../src/msw/imaglist.cpp:197 #: ../src/msw/imaglist.cpp:209 ../src/msw/dragimag.cpp:193 #: ../src/msw/dragimag.cpp:232 msgid "Couldn't add an image to the image list." msgstr "Não foi possível adicionar uma imagem à lista de imagens." #: ../src/msw/timer.cpp:134 ../src/os2/timer.cpp:113 msgid "Couldn't create a timer" msgstr "Não foi possível criar um temporizador" #: ../src/osx/carbon/overlay.cpp:122 msgid "Couldn't create the overlay window" msgstr "Não foi possível criar a janela de sobreposição" #: ../src/common/translation.cpp:2015 #, fuzzy msgid "Couldn't enumerate translations" msgstr "Não foi possível terminar a thread" #: ../src/common/dynlib.cpp:152 #, c-format msgid "Couldn't find symbol '%s' in a dynamic library" msgstr "Não foi possível encontrar o símbolo '%s' numa livraria dinâmica" #: ../src/gtk/print.cpp:2014 msgid "Couldn't get hatch style from wxBrush." msgstr "" #: ../src/msw/thread.cpp:950 msgid "Couldn't get the current thread pointer" msgstr "impossível obter o ponteiro actual da thread" #: ../src/osx/carbon/overlay.cpp:129 msgid "Couldn't init the context on the overlay window" msgstr "Não foi possível inicializar o contexto na janela de sobreposição" #: ../src/common/imaggif.cpp:263 #, fuzzy msgid "Couldn't initialize GIF hash table." msgstr "Não é possível inicializar o zlib deflate stream." #: ../src/common/imagpng.cpp:657 msgid "Couldn't load a PNG image - file is corrupted or not enough memory." msgstr "" "Não foi possível carregar uma imagem PNG - Ficheiro corrupto ou memória " "insuficiente." #: ../src/unix/sound.cpp:470 #, c-format msgid "Couldn't load sound data from '%s'." msgstr "Não foi possível carregar dados de som a partir de '%s'." #: ../src/msw/dirdlg.cpp:441 #, fuzzy msgid "Couldn't obtain folder name" msgstr "Não foi possível criar um temporizador" #: ../src/unix/sound_sdl.cpp:229 #, c-format msgid "Couldn't open audio: %s" msgstr "Não foi possível abrir o áudio: %s" #: ../src/msw/ole/dataobj.cpp:350 #, c-format msgid "Couldn't register clipboard format '%s'." msgstr "Não foi possível registar o formato da área de transferência '%s'." #: ../src/os2/thread.cpp:177 msgid "Couldn't release a mutex" msgstr "Não foi possível libertar a mutex" #: ../src/msw/listctrl.cpp:756 #, c-format msgid "Couldn't retrieve information about list control item %d." msgstr "" "Não foi possível obter informação sobre o item da lista de controlo %d." #: ../src/common/imagpng.cpp:746 ../src/common/imagpng.cpp:757 #: ../src/common/imagpng.cpp:767 msgid "Couldn't save PNG image." msgstr "Não foi possível gravar a imagem PNG." #: ../src/msw/thread.cpp:715 msgid "Couldn't terminate thread" msgstr "Não foi possível terminar a thread" #: ../src/common/xtistrm.cpp:170 #, fuzzy, c-format msgid "Create Parameter %s not found in declared RTTI Parameters" msgstr "Create Parameter não encontrado nos Parâmetros RTTI declarados" #: ../src/generic/dirdlgg.cpp:317 msgid "Create directory" msgstr "Criar directório" #: ../src/generic/filedlgg.cpp:228 ../src/generic/dirdlgg.cpp:131 msgid "Create new directory" msgstr "Criar novo directório" #: ../src/common/accelcmn.cpp:322 #, fuzzy msgid "Ctrl+" msgstr "Ctrl-" #: ../src/richtext/richtextctrl.cpp:325 ../src/osx/textctrl_osx.cpp:582 #: ../src/common/stockitem.cpp:151 ../src/msw/textctrl.cpp:2283 msgid "Cu&t" msgstr "Cor&tar" #: ../src/generic/filectrlg.cpp:956 msgid "Current directory:" msgstr "Directório actual:" #: ../src/gtk/print.cpp:759 #, fuzzy msgid "Custom size" msgstr "tamanho da fonte" #: ../src/common/headerctrlcmn.cpp:60 #, fuzzy msgid "Customize Columns" msgstr "tamanho da fonte" #: ../src/common/stockitem.cpp:151 ../src/stc/stc_i18n.cpp:17 #, fuzzy msgid "Cut" msgstr "Cor&tar" #: ../src/common/stockitem.cpp:259 msgid "Cut selection" msgstr "Cortar selecção" #: ../src/common/fmapbase.cpp:152 msgid "Cyrillic (ISO-8859-5)" msgstr "Cirílico (ISO-8859-5)" #: ../src/common/paper.cpp:100 msgid "D sheet, 22 x 34 in" msgstr "Folha D, 22 x 34 pol." #: ../src/msw/dde.cpp:708 msgid "DDE poke request failed" msgstr "Falhou o pedido de poke DDE" #: ../src/common/accelcmn.cpp:79 msgid "DECIMAL" msgstr "DÉCIMAL" #: ../src/common/accelcmn.cpp:47 msgid "DEL" msgstr "APAGAR" #: ../src/common/accelcmn.cpp:48 msgid "DELETE" msgstr "APAGAR" #: ../src/common/imagbmp.cpp:1092 msgid "DIB Header: Encoding doesn't match bitdepth." msgstr "Cabeçalho DIB: Codificação não coincide com o bitdepth." #: ../src/common/imagbmp.cpp:1040 msgid "DIB Header: Image height > 32767 pixels for file." msgstr "Cabeçalho DIB: Altura da imagem > 32767 pixeis para o ficheiro." #: ../src/common/imagbmp.cpp:1032 msgid "DIB Header: Image width > 32767 pixels for file." msgstr "Cabeçalho DIB: Largura da imagem > 32767 pixeis para o ficheiro." #: ../src/common/imagbmp.cpp:1060 msgid "DIB Header: Unknown bitdepth in file." msgstr "Cabeçalho DIB: Bitdepth desconhecido no ficheiro." #: ../src/common/imagbmp.cpp:1074 msgid "DIB Header: Unknown encoding in file." msgstr "Cabeçalho DIB: Codificação desconhecida no ficheiro." #: ../src/common/accelcmn.cpp:80 msgid "DIVIDE" msgstr "DIVIDIR" #: ../src/common/paper.cpp:122 msgid "DL Envelope, 110 x 220 mm" msgstr "Envelope DL, 110 x 220 mm" #: ../src/common/accelcmn.cpp:59 msgid "DOWN" msgstr "BAIXO" #: ../src/richtext/richtextborderspage.cpp:545 msgid "Dashed" msgstr "" #: ../src/osx/carbon/dataview.cpp:1921 msgid "Data object has invalid data format" msgstr "" #: ../src/osx/carbon/dataview.cpp:2491 msgid "Date renderer cannot render value; value type: " msgstr "" #: ../src/generic/dbgrptg.cpp:300 #, c-format msgid "Debug report \"%s\"" msgstr "Relatório de depuração \"%s\"" #: ../src/common/debugrpt.cpp:210 msgid "Debug report couldn't be created." msgstr "Relatório de depuração não pode ser criado." #: ../src/common/debugrpt.cpp:558 msgid "Debug report generation has failed." msgstr "Falhou a geração do relatório de depuração." #: ../src/generic/fontdlgg.cpp:323 msgid "Decorative" msgstr "Decorative" #: ../src/common/fmapbase.cpp:796 msgid "Default encoding" msgstr "Codificação pré-definida" #: ../src/dfb/fontmgr.cpp:180 #, fuzzy msgid "Default font" msgstr "Impressora pré-definida" #: ../src/generic/prntdlgg.cpp:510 msgid "Default printer" msgstr "Impressora pré-definida" #: ../src/richtext/richtextbuffer.cpp:7841 ../src/common/stockitem.cpp:152 #: ../src/stc/stc_i18n.cpp:20 msgid "Delete" msgstr "Apagar" #: ../src/richtext/richtexttabspage.cpp:148 msgid "Delete A&ll" msgstr "Apagar T&udo" #: ../src/richtext/richtextbuffer.cpp:10637 #, fuzzy msgid "Delete Column" msgstr "Apagar selecção" #: ../src/richtext/richtextbuffer.cpp:10587 #, fuzzy msgid "Delete Row" msgstr "Apagar" #: ../src/richtext/richtextstyledlg.cpp:779 msgid "Delete Style" msgstr "Apagar Estilo" #: ../src/richtext/richtextctrl.cpp:1231 ../src/richtext/richtextctrl.cpp:1452 msgid "Delete Text" msgstr "Apagar Texto" #: ../src/generic/editlbox.cpp:274 msgid "Delete item" msgstr "Apagar Item" #: ../src/common/stockitem.cpp:260 msgid "Delete selection" msgstr "Apagar selecção" #: ../src/richtext/richtextstyledlg.cpp:779 #, c-format msgid "Delete style %s?" msgstr "Apagar estilo %s?" #: ../src/unix/snglinst.cpp:295 #, c-format msgid "Deleted stale lock file '%s'." msgstr "Ficheiro de bloqueio apagado '%s'." #: ../src/common/module.cpp:124 #, c-format msgid "Dependency \"%s\" of module \"%s\" doesn't exist." msgstr "Dependência \"%s\" do módulo \"%s\" não existe." #: ../src/common/stockitem.cpp:196 #, fuzzy msgid "Descending" msgstr "Codificação pré-definida" #: ../src/generic/dirctrlg.cpp:626 msgid "Desktop" msgstr "Ambiente de Trabalho" #: ../src/generic/aboutdlgg.cpp:70 msgid "Developed by " msgstr "Desenvolvido por " #: ../src/generic/aboutdlgg.cpp:176 #, fuzzy msgid "Developers" msgstr "Desenvolvido por " #: ../src/msw/dialup.cpp:393 msgid "" "Dial up functions are unavailable because the remote access service (RAS) is " "not installed on this machine. Please install it." msgstr "" "Funções de ligação à telefónica não estão disponíveis, em virtude do serviço " "de acesso remoto (RAS) não estar instalado neste computador. Por favor " "Instale-o." #: ../src/generic/tipdlg.cpp:230 msgid "Did you know..." msgstr "Sabia que..." #: ../src/dfb/wrapdfb.cpp:63 #, fuzzy, c-format msgid "DirectFB error %d occurred." msgstr "Ocorreu um erro %d de DirectFB." #: ../src/motif/filedlg.cpp:219 msgid "Directories" msgstr "Directórios" #: ../src/common/filefn.cpp:1251 #, c-format msgid "Directory '%s' couldn't be created" msgstr "Não foi possível criar o directório '%s'" #: ../src/common/filefn.cpp:1271 #, fuzzy, c-format msgid "Directory '%s' couldn't be deleted" msgstr "Não foi possível criar o directório '%s'" #: ../src/generic/dirdlgg.cpp:233 msgid "Directory does not exist" msgstr "O directório não existe" #: ../src/generic/filectrlg.cpp:1412 msgid "Directory doesn't exist." msgstr "O directório não existe." #: ../src/common/docview.cpp:455 msgid "Discard changes and reload the last saved version?" msgstr "" #: ../src/html/helpwnd.cpp:512 msgid "" "Display all index items that contain given substring. Search is case " "insensitive." msgstr "" "Mostrar todos os items de índice que contenham a seguinte cadeia. A pesquisa " "é insensível à capitulação." #: ../src/html/helpwnd.cpp:692 msgid "Display options dialog" msgstr "Caixa de diálogo do ecrã" #: ../src/html/helpwnd.cpp:326 msgid "Displays help as you browse the books on the left." msgstr "Mostrar ajuda à medida que navega nos livros à esquerda." #: ../src/msw/mimetype.cpp:732 msgid "" "Do you want to overwrite the command used to %s files with extension \"%s" "\" ?\n" "Current value is \n" "%s, \n" "New value is \n" "%s %1" msgstr "" "Pretende substituir o comando utilizado para %s ficheiros com extensão \"%s" "\" ?\n" "O valor actual é \n" "%s, \n" "O novo valor é \n" "%s %1" #: ../src/common/docview.cpp:531 #, fuzzy, c-format msgid "Do you want to save changes to %s?" msgstr "Deseja gravar as alterações ao documento %s?" #: ../src/common/prntbase.cpp:525 #, fuzzy msgid "Document:" msgstr "Documentado por " #: ../src/generic/aboutdlgg.cpp:73 msgid "Documentation by " msgstr "Documentado por " #: ../src/generic/aboutdlgg.cpp:180 #, fuzzy msgid "Documentation writers" msgstr "Documentado por " #: ../src/common/sizer.cpp:2680 msgid "Don't Save" msgstr "Não Gravar" #: ../src/msw/frame.cpp:122 ../src/html/htmlwin.cpp:611 msgid "Done" msgstr "Feito" #: ../src/generic/progdlgg.cpp:481 ../src/msw/progdlg.cpp:407 msgid "Done." msgstr "Feito." #: ../src/richtext/richtextborderspage.cpp:544 #, fuzzy msgid "Dotted" msgstr "Feito" #: ../src/richtext/richtextborderspage.cpp:546 #, fuzzy msgid "Double" msgstr "Feito" #: ../src/common/paper.cpp:177 msgid "Double Japanese Postcard Rotated 148 x 200 mm" msgstr "Postal Japonês Duplo Rodado 148 x 200 mm" #: ../src/common/xtixml.cpp:273 #, c-format msgid "Doubly used id : %d" msgstr "Id usado duplamente : %d" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:153 msgid "Down" msgstr "Baixo" #: ../src/richtext/richtextctrl.cpp:814 msgid "Drag" msgstr "" #: ../src/common/paper.cpp:101 msgid "E sheet, 34 x 44 in" msgstr "Folha E, 34 x 44 pol." #: ../src/common/accelcmn.cpp:61 msgid "END" msgstr "END" #: ../src/common/accelcmn.cpp:52 msgid "ENTER" msgstr "ENTER" #: ../src/unix/fswatcher_inotify.cpp:535 #, fuzzy msgid "EOF while reading from inotify descriptor" msgstr "não foi possível ler do descritor do ficheiro %d" #: ../src/common/accelcmn.cpp:64 msgid "ESC" msgstr "ESC" #: ../src/common/accelcmn.cpp:65 msgid "ESCAPE" msgstr "ESCAPE" #: ../src/common/accelcmn.cpp:73 msgid "EXECUTE" msgstr "EXECUTAR" #: ../src/common/stockitem.cpp:154 #, fuzzy msgid "Edit" msgstr "&Editar" #: ../src/generic/editlbox.cpp:272 msgid "Edit item" msgstr "Editar item" #: ../include/wx/generic/progdlgg.h:84 #, fuzzy msgid "Elapsed time:" msgstr "Tempo passado : " #: ../src/richtext/richtextsizepage.cpp:353 #: ../src/richtext/richtextsizepage.cpp:355 #: ../src/richtext/richtextsizepage.cpp:465 #: ../src/richtext/richtextsizepage.cpp:467 msgid "Enable the height value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:438 #: ../src/richtext/richtextsizepage.cpp:440 #, fuzzy msgid "Enable the maximum width value." msgstr "Não foi possível inicia a impressão." #: ../src/richtext/richtextsizepage.cpp:411 #: ../src/richtext/richtextsizepage.cpp:413 msgid "Enable the minimum height value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:384 #: ../src/richtext/richtextsizepage.cpp:386 #, fuzzy msgid "Enable the minimum width value." msgstr "Não foi possível inicia a impressão." #: ../src/richtext/richtextsizepage.cpp:319 #: ../src/richtext/richtextsizepage.cpp:321 msgid "Enable the width value." msgstr "" #: ../src/richtext/richtextsizepage.cpp:280 #: ../src/richtext/richtextsizepage.cpp:282 #, fuzzy msgid "Enable vertical alignment." msgstr "Não foi possível inicia a impressão." #: ../src/richtext/richtextbackgroundpage.cpp:133 #: ../src/richtext/richtextbackgroundpage.cpp:135 #, fuzzy msgid "Enables a background colour." msgstr "Cor de fundo" #: ../src/richtext/richtextstyledlg.cpp:931 #, fuzzy msgid "Enter a box style name" msgstr "Introduza um nome de estilo de lista" #: ../src/richtext/richtextstyledlg.cpp:603 msgid "Enter a character style name" msgstr "Introduza um nome de estilo de caracter" #: ../src/richtext/richtextstyledlg.cpp:817 msgid "Enter a list style name" msgstr "Introduza um nome de estilo de lista" #: ../src/richtext/richtextstyledlg.cpp:890 #, fuzzy msgid "Enter a new style name" msgstr "Introduza um nome de estilo de lista" #: ../src/richtext/richtextstyledlg.cpp:651 msgid "Enter a paragraph style name" msgstr "Introduza um nome de estilo de parágrafo" #: ../src/generic/dbgrptg.cpp:174 #, c-format msgid "Enter command to open file \"%s\":" msgstr "Introduza o comando para abrir o ficheiro \"%s\":" #: ../src/generic/helpext.cpp:463 msgid "Entries found" msgstr "Entradas encontradas" #: ../src/common/paper.cpp:143 msgid "Envelope Invite 220 x 220 mm" msgstr "Envelope de Convite 220 x 220 mm" #: ../src/common/config.cpp:473 #, c-format msgid "" "Environment variables expansion failed: missing '%c' at position %u in '%s'." msgstr "" "Falhou a expansão das variáveis de ambiente: falta %c na posição %u em '%s'." #: ../src/generic/dirctrlg.cpp:670 ../src/generic/dirctrlg.cpp:688 #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:791 #: ../src/generic/filectrlg.cpp:805 ../src/generic/filectrlg.cpp:821 #: ../src/generic/filectrlg.cpp:1381 ../src/generic/filectrlg.cpp:1412 #: ../src/gtk/filedlg.cpp:73 ../src/gtk1/fontdlg.cpp:74 msgid "Error" msgstr "Erro" #: ../src/unix/epolldispatcher.cpp:103 #, fuzzy msgid "Error closing epoll descriptor" msgstr "Erro ao criar directório" #: ../src/unix/fswatcher_kqueue.cpp:114 #, fuzzy msgid "Error closing kqueue instance" msgstr "Erro ao criar directório" #: ../src/generic/dirdlgg.cpp:251 msgid "Error creating directory" msgstr "Erro ao criar directório" #: ../src/common/imagbmp.cpp:1103 msgid "Error in reading image DIB." msgstr "Erro na leitura do DIB da imagem." #: ../src/propgrid/propgrid.cpp:6563 #, c-format msgid "Error in resource: %s" msgstr "" #: ../src/common/fileconf.cpp:453 msgid "Error reading config options." msgstr "Erro ao ler opções de configuração." #: ../src/common/fileconf.cpp:1064 msgid "Error saving user configuration data." msgstr "Erro ao gravar dados de configuração do utilizador." #: ../src/gtk/print.cpp:671 #, fuzzy msgid "Error while printing: " msgstr "Erro durante a espera de um semáforo" #: ../src/common/log.cpp:223 msgid "Error: " msgstr "Erro: " #: ../src/common/fmapbase.cpp:150 msgid "Esperanto (ISO-8859-3)" msgstr "Esperanto (ISO-8859-3)" #: ../include/wx/generic/progdlgg.h:85 #, fuzzy msgid "Estimated time:" msgstr "Tempo estimado : " #: ../src/unix/fswatcher_inotify.cpp:639 msgid "Event queue overflowed" msgstr "" #: ../src/generic/dbgrptg.cpp:234 #, fuzzy msgid "Executable files (*.exe)|*.exe|" msgstr "Ficheiros executáveis (*.exe)|*.exe|Todos os ficheiros (*.*)|*.*||" #: ../src/common/stockitem.cpp:155 msgid "Execute" msgstr "" #: ../src/msw/utilsexc.cpp:888 #, c-format msgid "Execution of command '%s' failed" msgstr "Falhou a execução do comando '%s'" #: ../src/os2/utilsexc.cpp:163 #, c-format msgid "Execution of command '%s' failed with error: %ul" msgstr "Execução do comando '%s' terminou com o erro: %ul" #: ../src/common/paper.cpp:106 msgid "Executive, 7 1/4 x 10 1/2 in" msgstr "Executivo, 7 1/4 x 10 1/2 pol." #: ../src/msw/registry.cpp:1230 #, c-format msgid "" "Exporting registry key: file \"%s\" already exists and won't be overwritten." msgstr "" "Exportação da chave de registo: o ficheiro \"%s\" já existe e não vai ser " "sobreposto." #: ../src/common/fmapbase.cpp:195 msgid "Extended Unix Codepage for Japanese (EUC-JP)" msgstr "Código de Página Extendido para Japonês (EUC-JP)" #: ../src/html/chm.cpp:725 #, c-format msgid "Extraction of '%s' into '%s' failed." msgstr "Falhou a extracção de '%s' para '%s'." #: ../src/common/accelcmn.cpp:238 ../src/common/accelcmn.cpp:333 msgid "F" msgstr "F" #: ../src/propgrid/advprops.cpp:640 #, fuzzy msgid "Face Name" msgstr "NovoNome" #: ../src/unix/snglinst.cpp:269 msgid "Failed to access lock file." msgstr "Falha no acesso ao ficheiro de bloqueio." #: ../src/unix/epolldispatcher.cpp:116 #, fuzzy, c-format msgid "Failed to add descriptor %d to epoll descriptor %d" msgstr "Não foi possível escrever no descritor de ficheiro %d" #: ../src/msw/dib.cpp:548 #, fuzzy, c-format msgid "Failed to allocate %luKb of memory for bitmap data." msgstr "Falha ao alocar %luKb de memória para dados bitmap." #: ../src/common/glcmn.cpp:87 #, fuzzy msgid "Failed to allocate colour for OpenGL" msgstr "Falha de criação de cursor." #: ../src/unix/displayx11.cpp:288 msgid "Failed to change video mode" msgstr "Falha ao alterar o modo de vídeo" #: ../src/common/image.cpp:3139 #, fuzzy, c-format msgid "Failed to check format of image file \"%s\"." msgstr "Falha ao gravar imagem de bitmap para ficheiro \"%s\"." #: ../src/common/debugrpt.cpp:244 #, c-format msgid "Failed to clean up debug report directory \"%s\"" msgstr "Falha ao limpar directório de relatório de depuração \"%s\"" #: ../src/common/filename.cpp:211 msgid "Failed to close file handle" msgstr "Falha ao fechar manuseador de ficheiro" #: ../src/unix/snglinst.cpp:334 #, c-format msgid "Failed to close lock file '%s'" msgstr "Falha ao fechar o ficheiro de bloqueio '%s'" #: ../src/msw/clipbrd.cpp:115 msgid "Failed to close the clipboard." msgstr "Falha ao fechar a área de transferência." #: ../src/x11/utils.cpp:204 #, c-format msgid "Failed to close the display \"%s\"" msgstr "Falha ao fechar o ecrã \"%s\"" #: ../src/msw/dialup.cpp:818 msgid "Failed to connect: missing username/password." msgstr "Falha na ligação: falta nome de utilizador/palavra passe." #: ../src/msw/dialup.cpp:764 msgid "Failed to connect: no ISP to dial." msgstr "Falha na ligação: nenhum serviço ISP para marcar." #: ../src/common/textfile.cpp:200 #, fuzzy, c-format msgid "Failed to convert file \"%s\" to Unicode." msgstr "Falha ao converter conteúdo do ficheiro para Unicode." #: ../src/generic/logg.cpp:976 #, fuzzy msgid "Failed to copy dialog contents to the clipboard." msgstr "Falha na abertura da área de transferência." #: ../src/msw/registry.cpp:691 #, c-format msgid "Failed to copy registry value '%s'" msgstr "Falha na cópia do valor do registo '%s'" #: ../src/msw/registry.cpp:700 #, c-format msgid "Failed to copy the contents of registry key '%s' to '%s'." msgstr "Falha ao copiar os conteúdos da chave de registo '%s' para '%s'." #: ../src/common/filefn.cpp:1058 #, c-format msgid "Failed to copy the file '%s' to '%s'" msgstr "Falha ao copiar o ficheiro '%s' para '%s'" #: ../src/msw/registry.cpp:678 #, c-format msgid "Failed to copy the registry subkey '%s' to '%s'." msgstr "Falha ao copiar a sub-chave de registo '%s' para '%s'." #: ../src/msw/dde.cpp:1073 msgid "Failed to create DDE string" msgstr "Falha ne criação da cadeia de caracteres DDE" #: ../src/msw/mdi.cpp:590 msgid "Failed to create MDI parent frame." msgstr "Falha na criação da moldura MDI progenitora." #: ../src/common/filename.cpp:1080 msgid "Failed to create a temporary file name" msgstr "Falha a criar nome de ficheiro temporário" #: ../src/msw/utilsexc.cpp:235 msgid "Failed to create an anonymous pipe" msgstr "Falha ao criar pipeline anónimo" #: ../src/msw/ole/automtn.cpp:522 #, fuzzy, c-format msgid "Failed to create an instance of \"%s\"" msgstr "Falha de criação de directório \"%s\"" #: ../src/msw/dde.cpp:442 #, c-format msgid "Failed to create connection to server '%s' on topic '%s'" msgstr "Falha ao criar ligação ao servidor '%s' no tópico '%s'" #: ../src/msw/cursor.cpp:212 msgid "Failed to create cursor." msgstr "Falha de criação de cursor." #: ../src/common/debugrpt.cpp:209 #, c-format msgid "Failed to create directory \"%s\"" msgstr "Falha de criação de directório \"%s\"" #: ../src/generic/dirdlgg.cpp:249 #, c-format msgid "" "Failed to create directory '%s'\n" "(Do you have the required permissions?)" msgstr "" "Falha ao criar o directório '%s'\n" "(Tem as permissões necessárias?)" #: ../src/unix/epolldispatcher.cpp:84 #, fuzzy msgid "Failed to create epoll descriptor" msgstr "Falha de criação de cursor." #: ../src/msw/mimetype.cpp:198 #, c-format msgid "Failed to create registry entry for '%s' files." msgstr "Falha de criação de entrada de registo para ficheiros '%s'." #: ../src/msw/fdrepdlg.cpp:442 #, c-format msgid "Failed to create the standard find/replace dialog (error code %d)" msgstr "" "Falha a criar dialogo standard de procura/substitui (código de erro %d)" #: ../src/unix/wakeuppipe.cpp:52 #, fuzzy msgid "Failed to create wake up pipe used by event loop." msgstr "Falha de criação de barra de estado." #: ../src/html/winpars.cpp:739 #, c-format msgid "Failed to display HTML document in %s encoding" msgstr "Falha a mostrar documento HTML na codificação %s" #: ../src/msw/clipbrd.cpp:127 msgid "Failed to empty the clipboard." msgstr "Falha a limpar a área de transferência." #: ../src/unix/displayx11.cpp:265 msgid "Failed to enumerate video modes" msgstr "Falha a enumerar modos de vídeo" #: ../src/msw/dde.cpp:727 msgid "Failed to establish an advise loop with DDE server" msgstr "Falha ao estabelecer um advise loop com o servidor DDE" #: ../src/msw/dialup.cpp:650 ../src/msw/dialup.cpp:884 #, c-format msgid "Failed to establish dialup connection: %s" msgstr "Falha ao estabelecer ligação telefónica: %s" #: ../src/unix/utilsunx.cpp:617 #, c-format msgid "Failed to execute '%s'\n" msgstr "Falha ao executar '%s'\n" #: ../src/common/debugrpt.cpp:725 msgid "Failed to execute curl, please install it in PATH." msgstr "Falha a executar curl, por favor instale-o no PATH." #: ../src/msw/ole/automtn.cpp:505 #, fuzzy, c-format msgid "Failed to find CLSID of \"%s\"" msgstr "Falha na abertura do ecrã \"%s\"." #: ../src/common/regex.cpp:434 ../src/common/regex.cpp:482 #, c-format msgid "Failed to find match for regular expression: %s" msgstr "Falha a encontrar resultados na procura por expressão regular: %s" #: ../src/msw/dialup.cpp:716 #, c-format msgid "Failed to get ISP names: %s" msgstr "Falha ao obter nomes de ISP: %s" #: ../src/msw/ole/automtn.cpp:574 #, fuzzy, c-format msgid "Failed to get OLE automation interface for \"%s\"" msgstr "Falha de criação de directório \"%s\"" #: ../src/msw/clipbrd.cpp:747 msgid "Failed to get data from the clipboard" msgstr "Falha na obtenção de dados da área de transferência" #: ../src/common/time.cpp:249 msgid "Failed to get the local system time" msgstr "Falha na obtenção da hora local do sistema" #: ../src/common/filefn.cpp:1453 msgid "Failed to get the working directory" msgstr "Falha na obtenção do directório de trabalho" #: ../src/univ/theme.cpp:113 msgid "Failed to initialize GUI: no built-in themes found." msgstr "Falha ao inicializar o GUI: não foram encontrados temas integrados." #: ../src/msw/helpchm.cpp:63 msgid "Failed to initialize MS HTML Help." msgstr "Falha na inicialização da ajuda MS HTML." #: ../src/msw/glcanvas.cpp:892 msgid "Failed to initialize OpenGL" msgstr "Falha ao inicializar o OpenGL" #: ../src/msw/dialup.cpp:879 #, fuzzy, c-format msgid "Failed to initiate dialup connection: %s" msgstr "Falha ao terminar a ligação telefónica: %s " #: ../src/gtk/textctrl.cpp:1117 msgid "Failed to insert text in the control." msgstr "Falha de inserção de texto no controlo." #: ../src/unix/snglinst.cpp:241 #, c-format msgid "Failed to inspect the lock file '%s'" msgstr "Falha de inspecção no ficheiro de bloqueio '%s'" #: ../src/unix/appunix.cpp:182 #, fuzzy msgid "Failed to install signal handler" msgstr "Falha ao fechar manuseador de ficheiro" #: ../src/unix/threadpsx.cpp:1162 msgid "" "Failed to join a thread, potential memory leak detected - please restart the " "program" msgstr "" "Falha na associação a uma thread, foi detectada uma potencial fuga de " "memória - por favor reinicie o programa" #: ../src/msw/utils.cpp:745 #, c-format msgid "Failed to kill process %d" msgstr "Falha no encerramento do processo %d" #: ../src/common/image.cpp:2365 #, fuzzy, c-format msgid "Failed to load bitmap \"%s\" from resources." msgstr "Falha na abertura da imagem %d do ficheiro '%s'." #: ../src/common/image.cpp:2374 #, fuzzy, c-format msgid "Failed to load icon \"%s\" from resources." msgstr "Falha na abertura da imagem %d do ficheiro '%s'." #: ../src/common/iconbndl.cpp:182 #, fuzzy, c-format msgid "Failed to load image %%d from file '%s'." msgstr "Falha na abertura da imagem %d do ficheiro '%s'." #: ../src/common/iconbndl.cpp:190 #, fuzzy, c-format msgid "Failed to load image %d from stream." msgstr "Falha na abertura da imagem %d do ficheiro '%s'." #: ../src/common/image.cpp:2450 ../src/common/image.cpp:2469 #, fuzzy, c-format msgid "Failed to load image from file \"%s\"." msgstr "Falha na abertura da imagem %d do ficheiro '%s'." #: ../src/msw/enhmeta.cpp:97 #, c-format msgid "Failed to load metafile from file \"%s\"." msgstr "Falha na leitura de metafile do ficheiro \"%s\"." #: ../src/msw/volume.cpp:327 msgid "Failed to load mpr.dll." msgstr "Falha na abertura do mpr.dll." #: ../src/msw/utils.cpp:1120 #, fuzzy, c-format msgid "Failed to load resource \"%s\"." msgstr "Falha na leitura de metafile do ficheiro \"%s\"." #: ../src/common/dynlib.cpp:100 #, c-format msgid "Failed to load shared library '%s'" msgstr "Falha na abertura da livraria partilhada '%s'" #: ../src/msw/utils.cpp:1127 #, fuzzy, c-format msgid "Failed to lock resource \"%s\"." msgstr "Falha no bloqueio do ficheiro de bloqueio '%s'" #: ../src/unix/snglinst.cpp:198 #, c-format msgid "Failed to lock the lock file '%s'" msgstr "Falha no bloqueio do ficheiro de bloqueio '%s'" #: ../src/unix/epolldispatcher.cpp:136 #, c-format msgid "Failed to modify descriptor %d in epoll descriptor %d" msgstr "" #: ../src/common/filename.cpp:2681 #, c-format msgid "Failed to modify file times for '%s'" msgstr "Falha a modificar o tempo do ficheiro para '%s'" #: ../src/common/selectdispatcher.cpp:252 msgid "Failed to monitor I/O channels" msgstr "" #: ../src/common/filename.cpp:194 #, fuzzy, c-format msgid "Failed to open '%s' for reading" msgstr "Falha ao abrir '%s' para %s" #: ../src/common/filename.cpp:199 #, fuzzy, c-format msgid "Failed to open '%s' for writing" msgstr "Falha ao abrir '%s' para %s" #: ../src/html/chm.cpp:141 #, c-format msgid "Failed to open CHM archive '%s'." msgstr "Falha na abertura do arquivo CHM '%s'." #: ../src/common/utilscmn.cpp:1135 #, fuzzy, c-format msgid "Failed to open URL \"%s\" in default browser." msgstr "Falha ao abrir '%s' para %s" #: ../include/wx/msw/private/fswatcher.h:92 #, fuzzy, c-format msgid "Failed to open directory \"%s\" for monitoring." msgstr "Falha ao abrir '%s' para %s" #: ../src/x11/utils.cpp:223 #, c-format msgid "Failed to open display \"%s\"." msgstr "Falha na abertura do ecrã \"%s\"." #: ../src/common/filename.cpp:1115 msgid "Failed to open temporary file." msgstr "Falha na abertura de ficheiro temporário." #: ../src/msw/clipbrd.cpp:94 msgid "Failed to open the clipboard." msgstr "Falha na abertura da área de transferência." #: ../src/common/translation.cpp:1170 #, fuzzy, c-format msgid "Failed to parse Plural-Forms: '%s'" msgstr "Não foi possível analisar gramaticalmente Plural-Forms: '%s'" #: ../src/unix/mediactrl.cpp:1268 #, fuzzy, c-format msgid "Failed to prepare playing \"%s\"." msgstr "Falha na abertura do ecrã \"%s\"." #: ../src/msw/clipbrd.cpp:647 msgid "Failed to put data on the clipboard" msgstr "Falha na inserção de dados na área de transferência" #: ../src/unix/snglinst.cpp:278 msgid "Failed to read PID from lock file." msgstr "Falha na leitura do PID do ficheiro de bloqueio." #: ../src/common/fileconf.cpp:464 #, fuzzy msgid "Failed to read config options." msgstr "Erro ao ler opções de configuração." #: ../src/common/docview.cpp:678 #, fuzzy, c-format msgid "Failed to read document from the file \"%s\"." msgstr "Falha na leitura de metafile do ficheiro \"%s\"." #: ../src/dfb/evtloop.cpp:98 #, fuzzy msgid "Failed to read event from DirectFB pipe" msgstr "Falha na leitura do PID do ficheiro de bloqueio." #: ../src/unix/wakeuppipe.cpp:120 #, fuzzy msgid "Failed to read from wake-up pipe" msgstr "Falha na leitura do PID do ficheiro de bloqueio." #: ../src/unix/utilsunx.cpp:685 msgid "Failed to redirect child process input/output" msgstr "Falha no redireccionamento do processo filho de entrada/saída" #: ../src/msw/utilsexc.cpp:697 msgid "Failed to redirect the child process IO" msgstr "Falha no redireccionamento do processo filho ES" #: ../src/msw/dde.cpp:293 #, c-format msgid "Failed to register DDE server '%s'" msgstr "Falha no registo do servidor DDE '%s'" #: ../src/common/fontmap.cpp:245 #, c-format msgid "Failed to remember the encoding for the charset '%s'." msgstr "Falha ao recordar a codificação para o conjunto de caracteres '%s'." #: ../src/common/debugrpt.cpp:227 #, c-format msgid "Failed to remove debug report file \"%s\"" msgstr "Falha ao remover ficheiro de relatório de depuração \"%s\"" #: ../src/unix/snglinst.cpp:322 #, c-format msgid "Failed to remove lock file '%s'" msgstr "Falha ao remover ficheiro de bloqueio '%s'" #: ../src/unix/snglinst.cpp:288 #, c-format msgid "Failed to remove stale lock file '%s'." msgstr "Falha ao remover ficheiro de bloqueio estagnado'%s'." #: ../src/msw/registry.cpp:528 #, c-format msgid "Failed to rename registry value '%s' to '%s'." msgstr "Falha ao renomear valor de registo de '%s' para '%s'." #: ../src/common/filefn.cpp:1168 #, c-format msgid "" "Failed to rename the file '%s' to '%s' because the destination file already " "exists." msgstr "" "Falha ao renomear o ficheiro de '%s' para '%s' porque o ficheiro de destino " "já existe." #: ../src/msw/registry.cpp:633 #, c-format msgid "Failed to rename the registry key '%s' to '%s'." msgstr "Falha ao renomear a chave de registo de '%s' para '%s'." #: ../src/msw/clipbrd.cpp:497 msgid "Failed to retrieve data from the clipboard." msgstr "Falha na obtenção dos dados da área de transferência." #: ../src/common/filename.cpp:2777 #, c-format msgid "Failed to retrieve file times for '%s'" msgstr "Falha ao obter tempos do ficheiro para '%s'" #: ../src/msw/dialup.cpp:487 msgid "Failed to retrieve text of RAS error message" msgstr "Falha na obtenção do texto da mensagem de erro RAS" #: ../src/msw/clipbrd.cpp:784 msgid "Failed to retrieve the supported clipboard formats" msgstr "Falha na obtenção dos formatos suportados pela área de transferência" #: ../src/common/docview.cpp:649 #, fuzzy, c-format msgid "Failed to save document to the file \"%s\"." msgstr "Falha ao gravar imagem de bitmap para ficheiro \"%s\"." #: ../src/msw/dib.cpp:326 #, c-format msgid "Failed to save the bitmap image to file \"%s\"." msgstr "Falha ao gravar imagem de bitmap para ficheiro \"%s\"." #: ../src/msw/dde.cpp:768 msgid "Failed to send DDE advise notification" msgstr "Falha ao enviar aviso de notificação DDE" #: ../src/common/ftp.cpp:404 #, c-format msgid "Failed to set FTP transfer mode to %s." msgstr "Falha ao definir modo de transferência FTP para %s." #: ../src/msw/clipbrd.cpp:373 msgid "Failed to set clipboard data." msgstr "Falha ao definir dados da área de transferência." #: ../src/unix/snglinst.cpp:181 #, c-format msgid "Failed to set permissions on lock file '%s'" msgstr "Falha ao definir permissões no ficheiro de bloqueio '%s'" #: ../src/unix/utilsunx.cpp:674 #, fuzzy msgid "Failed to set process priority" msgstr "Falha ao definir prioridade de thread %d." #: ../src/common/file.cpp:576 msgid "Failed to set temporary file permissions" msgstr "Falha ao definir permissões do ficheiro temporário" #: ../src/gtk/textctrl.cpp:1058 msgid "Failed to set text in the text control." msgstr "Falha ao definir texto no controlo de texto." #: ../src/unix/threadpsx.cpp:1293 #, fuzzy, c-format msgid "Failed to set thread concurrency level to %lu" msgstr "Falha ao definir prioridade de thread %d." #: ../src/unix/threadpsx.cpp:1377 ../src/unix/threadpsx.cpp:1387 #, c-format msgid "Failed to set thread priority %d." msgstr "Falha ao definir prioridade de thread %d." #: ../src/unix/utilsunx.cpp:791 msgid "Failed to set up non-blocking pipe, the program might hang." msgstr "" #: ../src/common/fs_mem.cpp:261 #, c-format msgid "Failed to store image '%s' to memory VFS!" msgstr "Falha ao armazenar imagem '%s' para memória VFS!" #: ../src/dfb/evtloop.cpp:170 msgid "Failed to switch DirectFB pipe to non-blocking mode" msgstr "" #: ../src/unix/wakeuppipe.cpp:59 msgid "Failed to switch wake up pipe to non-blocking mode" msgstr "" #: ../src/unix/threadpsx.cpp:1569 msgid "Failed to terminate a thread." msgstr "Falha ao matar a thread." #: ../src/msw/dde.cpp:746 msgid "Failed to terminate the advise loop with DDE server" msgstr "Falha ao terminar o advise loop com o servidor DDE" #: ../src/msw/dialup.cpp:959 #, c-format msgid "Failed to terminate the dialup connection: %s" msgstr "Falha ao terminar a ligação telefónica: %s " #: ../src/common/filename.cpp:2696 #, c-format msgid "Failed to touch the file '%s'" msgstr "Falha ao tocar no ficheiro '%s'" #: ../src/unix/snglinst.cpp:328 #, c-format msgid "Failed to unlock lock file '%s'" msgstr "Falha ao desbloquear ficheiro de bloqueio '%s'" #: ../src/msw/dde.cpp:314 #, c-format msgid "Failed to unregister DDE server '%s'" msgstr "Falha ao desregistar servidor DDE '%s'" #: ../src/unix/epolldispatcher.cpp:155 #, fuzzy, c-format msgid "Failed to unregister descriptor %d from epoll descriptor %d" msgstr "Falha na obtenção dos dados da área de transferência." #: ../src/common/fileconf.cpp:1037 msgid "Failed to update user configuration file." msgstr "Falha na actualização do ficheiro de configuração do utilizador." #: ../src/common/debugrpt.cpp:738 #, c-format msgid "Failed to upload the debug report (error code %d)." msgstr "Falha ao enviar relatório de depuração (código de erro %d)." #: ../src/unix/snglinst.cpp:168 #, c-format msgid "Failed to write to lock file '%s'" msgstr "Falha ao escrever para o ficheiro de bloqueio '%s'" #: ../src/propgrid/propgrid.cpp:172 #, fuzzy msgid "False" msgstr "Ficheiro" #: ../src/propgrid/advprops.cpp:658 #, fuzzy msgid "Family" msgstr "Família de &fonte:" #: ../src/common/stockitem.cpp:157 ../src/msw/wince/filedlgwce.cpp:121 msgid "File" msgstr "Ficheiro" #: ../src/common/docview.cpp:666 #, fuzzy, c-format msgid "File \"%s\" could not be opened for reading." msgstr "Falha ao abrir '%s' para %s" #: ../src/common/docview.cpp:643 #, fuzzy, c-format msgid "File \"%s\" could not be opened for writing." msgstr "Falha ao abrir '%s' para %s" #: ../src/gtk/filedlg.cpp:56 #, c-format msgid "File '%s' already exists, do you really want to overwrite it?" msgstr "O ficheiro '%s' já existe, deseja substituí-lo?" #: ../src/os2/filedlg.cpp:310 #, c-format msgid "" "File '%s' already exists.\n" "Do you want to replace it?" msgstr "" "O ficheiro '%s' já existe.\n" "Deseja substituí-lo?" #: ../src/common/filefn.cpp:1207 #, fuzzy, c-format msgid "File '%s' couldn't be removed" msgstr "Não foi possível criar o directório '%s'" #: ../src/common/filefn.cpp:1187 #, fuzzy, c-format msgid "File '%s' couldn't be renamed '%s'" msgstr "Não foi possível criar o directório '%s'" #: ../src/richtext/richtextctrl.cpp:2688 ../src/common/textcmn.cpp:921 msgid "File couldn't be loaded." msgstr "Não foi possível carregar o ficheiro." #: ../src/msw/filedlg.cpp:458 #, fuzzy, c-format msgid "File dialog failed with error code %0lx." msgstr "Execução do comando '%s' terminou com o erro: %ul" #: ../src/common/docview.cpp:1771 msgid "File error" msgstr "Erro de ficheiro" #: ../src/generic/dirctrlg.cpp:688 ../src/generic/filectrlg.cpp:805 msgid "File name exists already." msgstr "Nome de ficheiro já existe." #: ../src/motif/filedlg.cpp:220 msgid "Files" msgstr "Ficheiros" #: ../src/common/filefn.cpp:1761 #, c-format msgid "Files (%s)" msgstr "Ficheiros (%s)" #: ../src/motif/filedlg.cpp:218 msgid "Filter" msgstr "Filtro" #: ../src/common/stockitem.cpp:158 ../src/html/helpwnd.cpp:500 msgid "Find" msgstr "Procurar" #: ../src/common/stockitem.cpp:159 #, fuzzy msgid "First" msgstr "primeiro" #: ../src/common/prntbase.cpp:1518 #, fuzzy msgid "First page" msgstr "Página seguinte" #: ../src/richtext/richtextsizepage.cpp:521 #, fuzzy msgid "Fixed" msgstr "Fonte Fixa:" #: ../src/html/helpwnd.cpp:1219 msgid "Fixed font:" msgstr "Fonte Fixa:" #: ../src/html/helpwnd.cpp:1282 msgid "Fixed size face.
    bold italic " msgstr "Tamanho fixo da face.
    destacado itálico " #: ../src/richtext/richtextsizepage.cpp:229 #, fuzzy msgid "Floating" msgstr "A formatar" #: ../src/common/stockitem.cpp:160 #, fuzzy msgid "Floppy" msgstr "&Copiar" #: ../src/common/paper.cpp:112 msgid "Folio, 8 1/2 x 13 in" msgstr "Folio, 8 1/2 x 13 pol." #: ../src/richtext/richtextformatdlg.cpp:324 ../src/osx/carbon/fontdlg.cpp:473 #: ../src/common/stockitem.cpp:194 msgid "Font" msgstr "Fonte" #: ../src/richtext/richtextfontpage.cpp:230 msgid "Font &weight:" msgstr "&Peso da fonte:" #: ../src/html/helpwnd.cpp:1220 msgid "Font size:" msgstr "Tamanho da Fonte:" #: ../src/richtext/richtextfontpage.cpp:217 msgid "Font st&yle:" msgstr "Est&ilo da fonte:" #: ../src/osx/carbon/fontdlg.cpp:515 msgid "Font:" msgstr "Fonte:" #: ../src/dfb/fontmgr.cpp:198 #, c-format msgid "Fonts index file %s disappeared while loading fonts." msgstr "" #: ../src/unix/utilsunx.cpp:651 msgid "Fork failed" msgstr "Falha no fork" #: ../src/common/stockitem.cpp:161 #, fuzzy msgid "Forward" msgstr "&Avançar" #: ../src/common/xtixml.cpp:235 msgid "Forward hrefs are not supported" msgstr "hrefs avançados não são suportados" #: ../src/html/helpwnd.cpp:888 #, c-format msgid "Found %i matches" msgstr "Foram encontradas %i correspondências" #: ../src/generic/prntdlgg.cpp:238 msgid "From:" msgstr "De:" #: ../src/common/imaggif.cpp:160 msgid "GIF: Invalid gif index." msgstr "GIF: Índice gif inválido." #: ../src/common/imaggif.cpp:150 msgid "GIF: data stream seems to be truncated." msgstr "GIF: corrente de dados parece estar truncada." #: ../src/common/imaggif.cpp:134 msgid "GIF: error in GIF image format." msgstr "GIF: erro no formato de imagem GIF." #: ../src/common/imaggif.cpp:137 msgid "GIF: not enough memory." msgstr "GIF: sem memória suficiente." #: ../src/common/imaggif.cpp:140 msgid "GIF: unknown error!!!" msgstr "GIF: erro desconhecido!!!" #: ../src/gtk/window.cpp:4288 msgid "" "GTK+ installed on this machine is too old to support screen compositing, " "please install GTK+ 2.12 or later." msgstr "" #: ../src/univ/themes/gtk.cpp:525 msgid "GTK+ theme" msgstr "Tema GTK+" #: ../src/common/preferencescmn.cpp:39 msgid "General" msgstr "" #: ../src/common/prntbase.cpp:243 msgid "Generic PostScript" msgstr "PostScript Genérico" #: ../src/common/paper.cpp:136 msgid "German Legal Fanfold, 8 1/2 x 13 in" msgstr "Legal Fanfold Alemão, 8 1/2 x 13 pol." #: ../src/common/paper.cpp:135 msgid "German Std Fanfold, 8 1/2 x 12 in" msgstr "Std Fanfold Alemão, 8 1/2 x 12 pol." #: ../include/wx/xtiprop.h:188 msgid "GetProperty called w/o valid getter" msgstr "GetProperty chamado sem 'get' válido" #: ../include/wx/xtiprop.h:266 msgid "GetPropertyCollection called on a generic accessor" msgstr "GetPropertyCollection chamado num acessor genérico" #: ../include/wx/xtiprop.h:206 msgid "GetPropertyCollection called w/o valid collection getter" msgstr "GetPropertyCollection chamado sem colecção de getter válido" #: ../src/html/helpwnd.cpp:673 msgid "Go back" msgstr "Ir para trás" #: ../src/html/helpwnd.cpp:674 msgid "Go forward" msgstr "Ir para a frente" #: ../src/html/helpwnd.cpp:676 msgid "Go one level up in document hierarchy" msgstr "Subir um nível na hierarquia do documento" #: ../src/generic/filedlgg.cpp:223 ../src/generic/dirdlgg.cpp:136 msgid "Go to home directory" msgstr "ir para o directório inicial" #: ../src/generic/filedlgg.cpp:219 msgid "Go to parent directory" msgstr "Ir para o directório superior" #: ../src/generic/aboutdlgg.cpp:76 msgid "Graphics art by " msgstr "Arte gráfica por " #: ../src/common/fmapbase.cpp:154 msgid "Greek (ISO-8859-7)" msgstr "Grêgo (ISO-8859-7)" #: ../src/richtext/richtextborderspage.cpp:547 msgid "Groove" msgstr "" #: ../src/common/zstream.cpp:158 ../src/common/zstream.cpp:318 msgid "Gzip not supported by this version of zlib" msgstr "Gzip não suportado nesta versão do zlib" #: ../src/common/accelcmn.cpp:75 msgid "HELP" msgstr "AJUDA" #: ../src/common/accelcmn.cpp:60 msgid "HOME" msgstr "HOME" #: ../src/html/helpwnd.cpp:1552 msgid "HTML Help Project (*.hhp)|*.hhp|" msgstr "HTML projecto de ajuda (*.hhp)|*.hhp|" #: ../src/html/htmlwin.cpp:659 #, c-format msgid "HTML anchor %s does not exist." msgstr "Âncora HTML %s não existe." #: ../src/html/helpwnd.cpp:1550 msgid "HTML files (*.html;*.htm)|*.html;*.htm|" msgstr "Ficheiros HTML (*.html;*.htm)|*.html;*.htm|" #: ../src/common/stockitem.cpp:162 msgid "Harddisk" msgstr "" #: ../src/common/fmapbase.cpp:155 msgid "Hebrew (ISO-8859-8)" msgstr "Hebreu (ISO-8859-8)" #: ../include/wx/msgdlg.h:275 ../src/osx/button_osx.cpp:39 #: ../src/common/stockitem.cpp:163 ../src/html/helpdlg.cpp:66 #: ../src/html/helpfrm.cpp:116 msgid "Help" msgstr "Ajuda" #: ../src/html/helpwnd.cpp:1213 msgid "Help Browser Options" msgstr "Opções do Navegador de Ajuda" #: ../src/generic/helpext.cpp:458 ../src/generic/helpext.cpp:459 msgid "Help Index" msgstr "Índice de Ajuda" #: ../src/html/helpwnd.cpp:1534 msgid "Help Printing" msgstr "Ajuda de Impressão" #: ../src/html/helpwnd.cpp:814 msgid "Help Topics" msgstr "Tópicos de Ajuda" #: ../src/html/helpwnd.cpp:1551 msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|" msgstr "Livros de ajuda(*.htb)|*.htb|Livros de ajuda(*.zip)|*.zip|" #: ../src/generic/helpext.cpp:271 #, c-format msgid "Help directory \"%s\" not found." msgstr "Directório de ajuda \"%s\" não encontrado." #: ../src/generic/helpext.cpp:279 #, c-format msgid "Help file \"%s\" not found." msgstr "Ficheiro de ajuda \"%s\" não encontrado." #: ../src/html/helpctrl.cpp:63 #, c-format msgid "Help: %s" msgstr "Ajuda: %s" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:649 #, fuzzy, c-format msgid "Hide %s" msgstr "Ajuda: %s" #: ../src/osx/menu_osx.cpp:604 ../src/osx/menu_osx.cpp:651 msgid "Hide Others" msgstr "" #: ../src/generic/infobar.cpp:85 msgid "Hide this notification message." msgstr "" #: ../src/generic/dirdlgg.cpp:98 ../src/common/stockitem.cpp:164 msgid "Home" msgstr "Pasta Pessoal" #: ../src/generic/dirctrlg.cpp:624 msgid "Home directory" msgstr "Directório pessoal" #: ../src/richtext/richtextsizepage.cpp:253 #: ../src/richtext/richtextsizepage.cpp:255 msgid "How the object will float relative to the text." msgstr "" #: ../src/common/imagbmp.cpp:1118 msgid "ICO: Error in reading mask DIB." msgstr "ICO: Erro a ler máscara DIB." #: ../src/common/imagbmp.cpp:1233 ../src/common/imagbmp.cpp:1294 #: ../src/common/imagbmp.cpp:1305 ../src/common/imagbmp.cpp:1318 #: ../src/common/imagbmp.cpp:1363 ../src/common/imagbmp.cpp:1375 #: ../src/common/imagbmp.cpp:1386 msgid "ICO: Error writing the image file!" msgstr "ICO: Erro a escrever ficheiro de imagem!" #: ../src/common/imagbmp.cpp:1198 msgid "ICO: Image too tall for an icon." msgstr "ICO: Imagem alta demais para um ícone." #: ../src/common/imagbmp.cpp:1206 msgid "ICO: Image too wide for an icon." msgstr "ICO: Imagem larga demais para um ícone." #: ../src/common/imagbmp.cpp:1466 msgid "ICO: Invalid icon index." msgstr "ICO: Índice inválido de ícone." #: ../src/common/imagiff.cpp:759 msgid "IFF: data stream seems to be truncated." msgstr "IFF: Corrente de dados parece estar truncada." #: ../src/common/imagiff.cpp:743 msgid "IFF: error in IFF image format." msgstr "IFF: erro no formato de imagem IFF." #: ../src/common/imagiff.cpp:746 msgid "IFF: not enough memory." msgstr "IFF: sem memória suficiente." #: ../src/common/imagiff.cpp:749 msgid "IFF: unknown error!!!" msgstr "IFF: erro desconhecido!!!" #: ../src/common/accelcmn.cpp:50 msgid "INS" msgstr "INS" #: ../src/common/accelcmn.cpp:51 msgid "INSERT" msgstr "INSERIR" #: ../src/common/fmapbase.cpp:197 msgid "ISO-2022-JP" msgstr "" #: ../src/osx/carbon/dataview.cpp:2420 msgid "Icon & text renderer cannot render value; value type: " msgstr "" #: ../src/html/htmprint.cpp:282 msgid "" "If possible, try changing the layout parameters to make the printout more " "narrow." msgstr "" #: ../src/generic/dbgrptg.cpp:358 msgid "" "If you have any additional information pertaining to this bug\n" "report, please enter it here and it will be joined to it:" msgstr "" "Se tiver alguma informação adicional relativa a este relatório de erro,\n" "por favor digite-a aqui e esta será adicionada a ele:" #: ../src/generic/dbgrptg.cpp:324 msgid "" "If you wish to suppress this debug report completely, please choose the " "\"Cancel\" button,\n" "but be warned that it may hinder improving the program, so if\n" "at all possible please do continue with the report generation.\n" msgstr "" "Se desejar suprimir completamente este relatorio de erro, pressione o botão " "\"Cancelar\",\n" "mas pode limitar a evolução do programa, sempre que possível\n" "por favor continue com a geração do relatório .\n" #: ../src/msw/registry.cpp:1395 #, c-format msgid "Ignoring value \"%s\" of the key \"%s\"." msgstr "A ignorar valor \"%s\" da chave \"%s\"." #: ../src/common/xtistrm.cpp:299 msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source" msgstr "Classe de objecto ilegal (Não-wxEvtHandler) como EventSource" #: ../src/common/xti.cpp:513 msgid "Illegal Parameter Count for ConstructObject Method" msgstr "Parâmetro de Contador Ilegal para o Método ConstructObject" #: ../src/common/xti.cpp:501 msgid "Illegal Parameter Count for Create Method" msgstr "Parâmetro de Contador Ilegal para o Método Create" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/filectrlg.cpp:791 msgid "Illegal directory name." msgstr "Nome do directório ilegal." #: ../src/generic/filectrlg.cpp:1380 msgid "Illegal file specification." msgstr "Especificação de ficheiro ilegal." #: ../src/common/image.cpp:2158 msgid "Image and mask have different sizes." msgstr "A imagem e a máscara têm tamanhos diferentes." #: ../src/common/image.cpp:2609 #, fuzzy, c-format msgid "Image file is not of type %d." msgstr "O ficheiro de imagem não é do tipo %ld." #: ../src/common/image.cpp:2739 #, fuzzy, c-format msgid "Image is not of type %s." msgstr "O ficheiro de imagem não é do tipo %s." #: ../src/msw/textctrl.cpp:399 msgid "" "Impossible to create a rich edit control, using simple text control instead. " "Please reinstall riched32.dll" msgstr "" "Impossível criar um controlo de edição rico, alternativamente usar-se-á um " "controlo de texto simples. Por favor reinstale o riched32.dll" #: ../src/unix/utilsunx.cpp:307 msgid "Impossible to get child process input" msgstr "Não foi possível obter a entrada do processo filho" #: ../src/common/filefn.cpp:1074 #, c-format msgid "Impossible to get permissions for file '%s'" msgstr "Não foi possível obter permissões do ficheiro '%s'" #: ../src/common/filefn.cpp:1088 #, c-format msgid "Impossible to overwrite the file '%s'" msgstr "Não foi possível sobrepor o ficheiro '%s'" #: ../src/common/filefn.cpp:1142 #, c-format msgid "Impossible to set permissions for the file '%s'" msgstr "Não foi possível definir as permissões do ficheiro '%s'" #: ../src/common/gifdecod.cpp:818 #, c-format msgid "Incorrect GIF frame size (%u, %d) for the frame #%u" msgstr "" #: ../src/msw/ole/automtn.cpp:624 msgid "Incorrect number of arguments." msgstr "" #: ../src/common/stockitem.cpp:165 msgid "Indent" msgstr "Indentar" #: ../src/richtext/richtextformatdlg.cpp:330 msgid "Indents && Spacing" msgstr "Indentações e Espaçamentos" #: ../src/common/stockitem.cpp:166 ../src/html/helpwnd.cpp:525 msgid "Index" msgstr "Índice" #: ../src/common/fmapbase.cpp:159 msgid "Indian (ISO-8859-12)" msgstr "Indiano (ISO-8859-12)" #: ../src/common/stockitem.cpp:167 msgid "Info" msgstr "" #: ../src/common/init.cpp:276 msgid "Initialization failed in post init, aborting." msgstr "Falha de inicialização no post init, a interromper." #: ../src/richtext/richtextsymboldlg.cpp:472 msgid "Insert" msgstr "Inserir" #: ../src/richtext/richtextbuffer.cpp:7687 #, fuzzy msgid "Insert Field" msgstr "Inserir Texto" #: ../src/richtext/richtextbuffer.cpp:7598 #: ../src/richtext/richtextbuffer.cpp:8551 msgid "Insert Image" msgstr "Inserir Imagem" #: ../src/richtext/richtextbuffer.cpp:7645 #, fuzzy msgid "Insert Object" msgstr "Inserir Texto" #: ../src/richtext/richtextctrl.cpp:1172 ../src/richtext/richtextctrl.cpp:1362 #: ../src/richtext/richtextbuffer.cpp:7440 #: ../src/richtext/richtextbuffer.cpp:7470 #: ../src/richtext/richtextbuffer.cpp:7514 msgid "Insert Text" msgstr "Inserir Texto" #: ../src/richtext/richtextindentspage.cpp:295 #: ../src/richtext/richtextindentspage.cpp:297 #, fuzzy msgid "Inserts a page break before the paragraph." msgstr "O espaçamento antes do parágrafo." #: ../src/richtext/richtextborderspage.cpp:549 #, fuzzy msgid "Inset" msgstr "Inserir" #: ../src/gtk/app.cpp:429 #, c-format msgid "Invalid GTK+ command line option, use \"%s --help\"" msgstr "" #: ../src/common/imagtiff.cpp:314 msgid "Invalid TIFF image index." msgstr "Índice inválido para imagem TIFF." #: ../src/osx/carbon/dataview.cpp:1782 ../src/osx/carbon/dataview.cpp:1877 msgid "Invalid data view item" msgstr "" #: ../src/common/appcmn.cpp:266 #, c-format msgid "Invalid display mode specification '%s'." msgstr "Especificação de modo de ecrã inválida '%s'." #: ../src/x11/app.cpp:121 #, c-format msgid "Invalid geometry specification '%s'" msgstr "Especificação de geometria inválida '%s'" #: ../src/unix/fswatcher_inotify.cpp:298 #, c-format msgid "Invalid inotify event for \"%s\"" msgstr "" #: ../src/unix/snglinst.cpp:306 #, c-format msgid "Invalid lock file '%s'." msgstr "Ficheiro de bloqueio inválido '%s'." #: ../src/common/translation.cpp:1111 #, fuzzy msgid "Invalid message catalog." msgstr "'%s' não é uma mensagem válida do catálogo." #: ../src/common/xtistrm.cpp:409 ../src/common/xtistrm.cpp:424 msgid "Invalid or Null Object ID passed to GetObjectClassInfo" msgstr "ID Nulo de Objecto ou inválido passado para GetObjectClassInfo" #: ../src/common/xtistrm.cpp:439 msgid "Invalid or Null Object ID passed to HasObjectClassInfo" msgstr "ID Nulo de Objecto ou inválido passado para HasObjectClassInfo" #: ../src/common/regex.cpp:313 #, c-format msgid "Invalid regular expression '%s': %s" msgstr "Expressão regular inválida '%s': %s" #: ../src/common/config.cpp:226 #, c-format msgid "Invalid value %ld for a boolean key \"%s\" in config file." msgstr "" #: ../src/generic/fontdlgg.cpp:329 ../src/richtext/richtextfontpage.cpp:333 #: ../src/osx/carbon/fontdlg.cpp:547 ../src/common/stockitem.cpp:168 msgid "Italic" msgstr "Itálico" #: ../src/common/paper.cpp:131 msgid "Italy Envelope, 110 x 230 mm" msgstr "Envelope Italiano, 110 x 230 mm" #: ../src/common/imagjpeg.cpp:255 msgid "JPEG: Couldn't load - file is probably corrupted." msgstr "JPEG: Impossível ler - o ficheiro provavelmente está corrupto." #: ../src/common/imagjpeg.cpp:434 msgid "JPEG: Couldn't save image." msgstr "JPEG: Impossível gravar imagem." #: ../src/common/paper.cpp:164 msgid "Japanese Double Postcard 200 x 148 mm" msgstr "Postal Duplo Japonês 200 x 148 mm" #: ../src/common/paper.cpp:168 msgid "Japanese Envelope Chou #3" msgstr "Envelope Japonês Chou #3" #: ../src/common/paper.cpp:181 msgid "Japanese Envelope Chou #3 Rotated" msgstr "Envelope Japonês Chou #3 Rodado" #: ../src/common/paper.cpp:169 msgid "Japanese Envelope Chou #4" msgstr "Envelope Japonês Chou #4" #: ../src/common/paper.cpp:182 msgid "Japanese Envelope Chou #4 Rotated" msgstr "Envelope Japonês Chou #4 Rodado" #: ../src/common/paper.cpp:166 msgid "Japanese Envelope Kaku #2" msgstr "Envelope Japonês Kaku #2" #: ../src/common/paper.cpp:179 msgid "Japanese Envelope Kaku #2 Rotated" msgstr "Envelope Japonês Kaku #2 Rodado" #: ../src/common/paper.cpp:167 msgid "Japanese Envelope Kaku #3" msgstr "Envelope Japonês Kaku #3" #: ../src/common/paper.cpp:180 msgid "Japanese Envelope Kaku #3 Rotated" msgstr "Envelope Japonês Kaku #3 Rodado" #: ../src/common/paper.cpp:186 msgid "Japanese Envelope You #4" msgstr "Envelope Japonês You #4" #: ../src/common/paper.cpp:187 msgid "Japanese Envelope You #4 Rotated" msgstr "Envelope Japonês You #4 Rodado" #: ../src/common/paper.cpp:139 msgid "Japanese Postcard 100 x 148 mm" msgstr "Postal Japonês 100 x 148 mm" #: ../src/common/paper.cpp:176 msgid "Japanese Postcard Rotated 148 x 100 mm" msgstr "Postal Japonês Rodado 148 x 100 mm" #: ../src/common/stockitem.cpp:169 msgid "Jump to" msgstr "" #: ../src/common/stockitem.cpp:171 msgid "Justified" msgstr "Justificado" #: ../src/richtext/richtextindentspage.cpp:155 #: ../src/richtext/richtextindentspage.cpp:157 #: ../src/richtext/richtextliststylepage.cpp:344 #: ../src/richtext/richtextliststylepage.cpp:346 msgid "Justify text left and right." msgstr "Justificar texto à esquerda e à direita." #: ../src/common/fmapbase.cpp:163 msgid "KOI8-R" msgstr "KOI8-R" #: ../src/common/fmapbase.cpp:164 msgid "KOI8-U" msgstr "KOI8-U" #: ../src/common/accelcmn.cpp:254 ../src/common/accelcmn.cpp:336 msgid "KP_" msgstr "KP_" #: ../src/common/accelcmn.cpp:103 msgid "KP_ADD" msgstr "KP_ADD" #: ../src/common/accelcmn.cpp:98 msgid "KP_BEGIN" msgstr "KP_BEGIN" #: ../src/common/accelcmn.cpp:106 msgid "KP_DECIMAL" msgstr "KP_DECIMAL" #: ../src/common/accelcmn.cpp:100 msgid "KP_DELETE" msgstr "KP_DELETE" #: ../src/common/accelcmn.cpp:107 msgid "KP_DIVIDE" msgstr "KP_DIVIDE" #: ../src/common/accelcmn.cpp:92 msgid "KP_DOWN" msgstr "KP_DOWN" #: ../src/common/accelcmn.cpp:97 msgid "KP_END" msgstr "KP_END" #: ../src/common/accelcmn.cpp:87 msgid "KP_ENTER" msgstr "KP_ENTER" #: ../src/common/accelcmn.cpp:101 msgid "KP_EQUAL" msgstr "KP_EQUAL" #: ../src/common/accelcmn.cpp:88 msgid "KP_HOME" msgstr "KP_HOME" #: ../src/common/accelcmn.cpp:99 msgid "KP_INSERT" msgstr "KP_INSERT" #: ../src/common/accelcmn.cpp:89 msgid "KP_LEFT" msgstr "KP_LEFT" #: ../src/common/accelcmn.cpp:102 msgid "KP_MULTIPLY" msgstr "KP_MULTIPLY" #: ../src/common/accelcmn.cpp:95 msgid "KP_NEXT" msgstr "KP_NEXT" #: ../src/common/accelcmn.cpp:96 msgid "KP_PAGEDOWN" msgstr "KP_PAGEDOWN" #: ../src/common/accelcmn.cpp:94 msgid "KP_PAGEUP" msgstr "KP_PAGEUP" #: ../src/common/accelcmn.cpp:93 msgid "KP_PRIOR" msgstr "KP_PRIOR" #: ../src/common/accelcmn.cpp:91 msgid "KP_RIGHT" msgstr "KP_RIGHT" #: ../src/common/accelcmn.cpp:104 msgid "KP_SEPARATOR" msgstr "KP_SEPARATOR" #: ../src/common/accelcmn.cpp:85 msgid "KP_SPACE" msgstr "KP_SPACE" #: ../src/common/accelcmn.cpp:105 msgid "KP_SUBTRACT" msgstr "KP_SUBTRACT" #: ../src/common/accelcmn.cpp:86 msgid "KP_TAB" msgstr "KP_TAB" #: ../src/common/accelcmn.cpp:90 msgid "KP_UP" msgstr "KP_UP" #: ../src/richtext/richtextindentspage.cpp:270 #, fuzzy msgid "L&ine spacing:" msgstr "Espaçamento de linhas:" #: ../src/common/accelcmn.cpp:56 msgid "LEFT" msgstr "ESQUERDA" #: ../src/generic/prntdlgg.cpp:613 ../src/generic/prntdlgg.cpp:868 msgid "Landscape" msgstr "Paisagem" #: ../src/common/stockitem.cpp:174 #, fuzzy msgid "Last" msgstr "Colar" #: ../src/common/prntbase.cpp:1542 #, fuzzy msgid "Last page" msgstr "Página seguinte" #: ../src/common/log.cpp:309 #, c-format msgid "Last repeated message (\"%s\", %lu time) wasn't output" msgid_plural "Last repeated message (\"%s\", %lu times) wasn't output" msgstr[0] "" msgstr[1] "" #: ../src/common/paper.cpp:104 msgid "Ledger, 17 x 11 in" msgstr "Agenda, 17 x 11 pol." #: ../src/richtext/richtextliststylepage.cpp:249 #: ../src/richtext/richtextliststylepage.cpp:252 #: ../src/richtext/richtextliststylepage.cpp:253 #: ../src/richtext/richtextbulletspage.cpp:199 #: ../src/richtext/richtextbulletspage.cpp:202 #: ../src/richtext/richtextbulletspage.cpp:203 #: ../src/richtext/richtextsizepage.cpp:249 msgid "Left" msgstr "Esquerda" #: ../src/richtext/richtextindentspage.cpp:204 #: ../src/richtext/richtextliststylepage.cpp:390 msgid "Left (&first line):" msgstr "Esquerda (&primeira linha):" #: ../src/generic/prntdlgg.cpp:880 msgid "Left margin (mm):" msgstr "Margem esquerda (mm):" #: ../src/richtext/richtextindentspage.cpp:141 #: ../src/richtext/richtextindentspage.cpp:143 #: ../src/richtext/richtextliststylepage.cpp:330 #: ../src/richtext/richtextliststylepage.cpp:332 msgid "Left-align text." msgstr "Alinhar texto à esquerda." #: ../src/common/paper.cpp:145 msgid "Legal Extra 9 1/2 x 15 in" msgstr "Legal Extra 9 1/2 x 15 pol." #: ../src/common/paper.cpp:97 msgid "Legal, 8 1/2 x 14 in" msgstr "Legal, 8 1/2 x 14 pol." #: ../src/common/paper.cpp:144 msgid "Letter Extra 9 1/2 x 12 in" msgstr "Letter Extra 9 1/2 x 12 pol." #: ../src/common/paper.cpp:150 msgid "Letter Extra Transverse 9.275 x 12 in" msgstr "Letter Extra Transversal 9.275 x 12 pol." #: ../src/common/paper.cpp:153 msgid "Letter Plus 8 1/2 x 12.69 in" msgstr "Letter Plus 8 1/2 x 12.69 pol." #: ../src/common/paper.cpp:170 msgid "Letter Rotated 11 x 8 1/2 in" msgstr "Letter Rodada 11 x 8 1/2 pol." #: ../src/common/paper.cpp:102 msgid "Letter Small, 8 1/2 x 11 in" msgstr "Letter Pequena, 8 1/2 x 11 pol." #: ../src/common/paper.cpp:148 msgid "Letter Transverse 8 1/2 x 11 in" msgstr "Letter Transversal 8 1/2 x 11 pol." #: ../src/common/paper.cpp:96 msgid "Letter, 8 1/2 x 11 in" msgstr "Letter, 8 1/2 x 11 pol." #: ../src/generic/aboutdlgg.cpp:173 msgid "License" msgstr "" #: ../src/generic/fontdlgg.cpp:332 msgid "Light" msgstr "Leve" #: ../src/generic/helpext.cpp:298 #, c-format msgid "Line %lu of map file \"%s\" has invalid syntax, skipped." msgstr "" "A linha %lu do ficheiro de mapa \"%s\" contém uma sintaxe inválida, saltado." #: ../src/richtext/richtextliststylepage.cpp:444 msgid "Line spacing:" msgstr "Espaçamento de linhas:" #: ../src/html/chm.cpp:838 msgid "Link contained '//', converted to absolute link." msgstr "O link contém '//', foi convertido para um link absoluto." #: ../src/richtext/richtextformatdlg.cpp:349 msgid "List Style" msgstr "Estilo da Lista" #: ../src/richtext/richtextstyles.cpp:1060 msgid "List styles" msgstr "Estilos da lista" #: ../src/richtext/richtextfontpage.cpp:206 #: ../src/richtext/richtextfontpage.cpp:208 msgid "Lists font sizes in points." msgstr "Lista o tamanho das fontes em pontos." #: ../src/richtext/richtextfontpage.cpp:199 #: ../src/richtext/richtextfontpage.cpp:201 msgid "Lists the available fonts." msgstr "Lista as fontes disponíveis." #: ../src/common/fldlgcmn.cpp:325 #, c-format msgid "Load %s file" msgstr "Abrir %s ficheiros" #: ../src/html/htmlwin.cpp:575 msgid "Loading : " msgstr "A Abrir : " #: ../src/unix/snglinst.cpp:246 #, c-format msgid "Lock file '%s' has incorrect owner." msgstr "Ficheiro de bloqueio '%s' tem proprietário incorrecto." #: ../src/unix/snglinst.cpp:251 #, c-format msgid "Lock file '%s' has incorrect permissions." msgstr "Ficheiro de bloqueio '%s' tem permissões incorrectas." #: ../src/generic/logg.cpp:582 #, c-format msgid "Log saved to the file '%s'." msgstr "Registo gravado no ficheiro '%s'." #: ../src/richtext/richtextliststylepage.cpp:484 #: ../src/richtext/richtextbulletspage.cpp:289 msgid "Lower case letters" msgstr "Letras minúsculas" #: ../src/richtext/richtextliststylepage.cpp:486 #: ../src/richtext/richtextbulletspage.cpp:291 msgid "Lower case roman numerals" msgstr "Números romanos em minúsculas" #: ../src/gtk/mdi.cpp:422 ../src/gtk1/mdi.cpp:431 msgid "MDI child" msgstr "Fillho MDI" #: ../src/common/accelcmn.cpp:68 msgid "MENU" msgstr "MENU" #: ../src/msw/helpchm.cpp:56 msgid "" "MS HTML Help functions are unavailable because the MS HTML Help library is " "not installed on this machine. Please install it." msgstr "" "Funções de ajuda MS HTML não estão disponíveis devido à livraria de ajuda MS " "HTML não estar instalada neste computador. por favor instale-a." #: ../src/univ/themes/win32.cpp:3754 msgid "Ma&ximize" msgstr "Ma&ximizar" #: ../src/common/fmapbase.cpp:203 #, fuzzy msgid "MacArabic" msgstr "Árabe" #: ../src/common/fmapbase.cpp:222 msgid "MacArmenian" msgstr "" #: ../src/common/fmapbase.cpp:211 msgid "MacBengali" msgstr "" #: ../src/common/fmapbase.cpp:217 msgid "MacBurmese" msgstr "" #: ../src/common/fmapbase.cpp:236 msgid "MacCeltic" msgstr "" #: ../src/common/fmapbase.cpp:227 msgid "MacCentralEurRoman" msgstr "" #: ../src/common/fmapbase.cpp:223 msgid "MacChineseSimp" msgstr "" #: ../src/common/fmapbase.cpp:201 msgid "MacChineseTrad" msgstr "" #: ../src/common/fmapbase.cpp:233 msgid "MacCroatian" msgstr "" #: ../src/common/fmapbase.cpp:206 msgid "MacCyrillic" msgstr "" #: ../src/common/fmapbase.cpp:207 msgid "MacDevanagari" msgstr "" #: ../src/common/fmapbase.cpp:231 msgid "MacDingbats" msgstr "" #: ../src/common/fmapbase.cpp:226 msgid "MacEthiopic" msgstr "" #: ../src/common/fmapbase.cpp:229 #, fuzzy msgid "MacExtArabic" msgstr "Árabe" #: ../src/common/fmapbase.cpp:237 msgid "MacGaelic" msgstr "" #: ../src/common/fmapbase.cpp:221 msgid "MacGeorgian" msgstr "" #: ../src/common/fmapbase.cpp:205 msgid "MacGreek" msgstr "" #: ../src/common/fmapbase.cpp:209 msgid "MacGujarati" msgstr "" #: ../src/common/fmapbase.cpp:208 msgid "MacGurmukhi" msgstr "" #: ../src/common/fmapbase.cpp:204 msgid "MacHebrew" msgstr "" #: ../src/common/fmapbase.cpp:234 msgid "MacIcelandic" msgstr "" #: ../src/common/fmapbase.cpp:200 msgid "MacJapanese" msgstr "" #: ../src/common/fmapbase.cpp:214 msgid "MacKannada" msgstr "" #: ../src/common/fmapbase.cpp:238 msgid "MacKeyboardGlyphs" msgstr "" #: ../src/common/fmapbase.cpp:218 msgid "MacKhmer" msgstr "" #: ../src/common/fmapbase.cpp:202 msgid "MacKorean" msgstr "" #: ../src/common/fmapbase.cpp:220 msgid "MacLaotian" msgstr "" #: ../src/common/fmapbase.cpp:215 msgid "MacMalayalam" msgstr "" #: ../src/common/fmapbase.cpp:225 msgid "MacMongolian" msgstr "" #: ../src/common/fmapbase.cpp:210 msgid "MacOriya" msgstr "" #: ../src/common/fmapbase.cpp:199 #, fuzzy msgid "MacRoman" msgstr "Roman" #: ../src/common/fmapbase.cpp:235 #, fuzzy msgid "MacRomanian" msgstr "Roman" #: ../src/common/fmapbase.cpp:216 #, fuzzy msgid "MacSinhalese" msgstr "Coincidir capitulação" #: ../src/common/fmapbase.cpp:230 #, fuzzy msgid "MacSymbol" msgstr "Symbol" #: ../src/common/fmapbase.cpp:212 msgid "MacTamil" msgstr "" #: ../src/common/fmapbase.cpp:213 msgid "MacTelugu" msgstr "" #: ../src/common/fmapbase.cpp:219 msgid "MacThai" msgstr "" #: ../src/common/fmapbase.cpp:224 msgid "MacTibetan" msgstr "" #: ../src/common/fmapbase.cpp:232 msgid "MacTurkish" msgstr "" #: ../src/common/fmapbase.cpp:228 msgid "MacVietnamese" msgstr "" #: ../src/propgrid/advprops.cpp:2031 #, fuzzy msgid "Make a selection:" msgstr "Colar selecção" #: ../src/richtext/richtextformatdlg.cpp:362 #: ../src/richtext/richtextmarginspage.cpp:172 msgid "Margins" msgstr "" #: ../src/generic/fdrepdlg.cpp:147 msgid "Match case" msgstr "Coincidir capitulação" #: ../src/richtext/richtextsizepage.cpp:463 #, fuzzy msgid "Max height:" msgstr "&Peso:" #: ../src/richtext/richtextsizepage.cpp:436 #, fuzzy msgid "Max width:" msgstr "Substituir por:" #: ../src/unix/mediactrl.cpp:1006 #, c-format msgid "Media playback error: %s" msgstr "" #: ../src/common/fs_mem.cpp:175 #, c-format msgid "Memory VFS already contains file '%s'!" msgstr "A memória VFS já contém o ficheiro '%s'!" #: ../src/msw/frame.cpp:347 msgid "Menu" msgstr "Menu" #: ../src/common/msgout.cpp:124 #, fuzzy msgid "Message" msgstr "%s mensagem" #: ../src/univ/themes/metal.cpp:168 msgid "Metal theme" msgstr "Tema Metal" #: ../src/msw/ole/automtn.cpp:641 msgid "Method or property not found." msgstr "" #: ../src/univ/themes/win32.cpp:3752 msgid "Mi&nimize" msgstr "Mi&nimizar" #: ../src/richtext/richtextsizepage.cpp:409 #, fuzzy msgid "Min height:" msgstr "&Peso da fonte:" #: ../src/richtext/richtextsizepage.cpp:382 msgid "Min width:" msgstr "" #: ../src/msw/ole/automtn.cpp:657 msgid "Missing a required parameter." msgstr "" #: ../src/generic/fontdlgg.cpp:324 msgid "Modern" msgstr "Moderno" #: ../src/generic/filectrlg.cpp:462 msgid "Modified" msgstr "Modificado" #: ../src/common/module.cpp:133 #, c-format msgid "Module \"%s\" initialization failed" msgstr "Falha de inicialização do Módulo \"%s\"" #: ../src/common/paper.cpp:132 msgid "Monarch Envelope, 3 7/8 x 7 1/2 in" msgstr "Envelope Monarch, 3 7/8 x 7 1/2 pol." #: ../src/msw/fswatcher.cpp:143 msgid "Monitoring individual files for changes is not supported currently." msgstr "" #: ../src/generic/editlbox.cpp:276 msgid "Move down" msgstr "Mover para baixo" #: ../src/generic/editlbox.cpp:275 msgid "Move up" msgstr "Mover para cima" #: ../src/richtext/richtextsizepage.cpp:682 #: ../src/richtext/richtextsizepage.cpp:684 #, fuzzy msgid "Moves the object to the next paragraph." msgstr "O estilo pré-definido para o próximo parágrafo." #: ../src/richtext/richtextsizepage.cpp:676 #: ../src/richtext/richtextsizepage.cpp:678 #, fuzzy msgid "Moves the object to the previous paragraph." msgstr "Voltar para página HTML anterior" #: ../src/richtext/richtextbuffer.cpp:9345 msgid "Multiple Cell Properties" msgstr "" #: ../src/common/accelcmn.cpp:81 msgid "NUM_LOCK" msgstr "NUM_LOCK" #: ../src/generic/filectrlg.cpp:459 msgid "Name" msgstr "Nome" #: ../src/common/stockitem.cpp:175 msgid "Network" msgstr "" #: ../src/common/stockitem.cpp:176 #, fuzzy msgid "New" msgstr "&Novo" #: ../src/richtext/richtextstyledlg.cpp:243 #, fuzzy msgid "New &Box Style..." msgstr "Novo &Estilo de Lista..." #: ../src/richtext/richtextstyledlg.cpp:225 msgid "New &Character Style..." msgstr "Novo Estilo de &Caracter..." #: ../src/richtext/richtextstyledlg.cpp:237 msgid "New &List Style..." msgstr "Novo &Estilo de Lista..." #: ../src/richtext/richtextstyledlg.cpp:231 msgid "New &Paragraph Style..." msgstr "Novo Estilo de &Parágrafo..." #: ../src/richtext/richtextstyledlg.cpp:603 #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:651 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:817 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:890 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:931 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "New Style" msgstr "Novo Estilo" #: ../src/generic/dirdlgg.cpp:102 msgid "New directory" msgstr "Novo directório" #: ../src/generic/editlbox.cpp:273 msgid "New item" msgstr "Novo item" #: ../src/generic/dirdlgg.cpp:326 ../src/generic/dirdlgg.cpp:336 #: ../src/generic/filectrlg.cpp:653 ../src/generic/filectrlg.cpp:662 msgid "NewName" msgstr "NovoNome" #: ../src/generic/tipdlg.cpp:305 msgid "Next" msgstr "Seguinte" #: ../src/common/prntbase.cpp:1537 ../src/html/helpwnd.cpp:678 msgid "Next page" msgstr "Página seguinte" #: ../include/wx/msgdlg.h:272 ../src/common/stockitem.cpp:177 #: ../src/motif/msgdlg.cpp:196 msgid "No" msgstr "Não" #: ../src/generic/animateg.cpp:150 #, c-format msgid "No animation handler for type %ld defined." msgstr "Não existe um manuseador de animação definida para o tipo %ld." #: ../src/dfb/bitmap.cpp:642 ../src/dfb/bitmap.cpp:676 #, fuzzy, c-format msgid "No bitmap handler for type %d defined." msgstr "Não existe um manuseador para o tipo %d definido." #: ../src/osx/carbon/dataview.cpp:1784 msgid "No column existing." msgstr "" #: ../src/osx/carbon/dataview.cpp:1674 msgid "No column for the specified column existing." msgstr "" #: ../src/osx/carbon/dataview.cpp:1423 msgid "No column for the specified column position existing." msgstr "" #: ../src/common/utilscmn.cpp:1049 msgid "No default application configured for HTML files." msgstr "" #: ../src/generic/helpext.cpp:449 msgid "No entries found." msgstr "Não foram encontradas entradas." #: ../src/common/fontmap.cpp:421 #, c-format msgid "" "No font for displaying text in encoding '%s' found,\n" "but an alternative encoding '%s' is available.\n" "Do you want to use this encoding (otherwise you will have to choose another " "one)?" msgstr "" "Não foi encontrada uma fonte para mostrar texto na codificação '%s',\n" "mas uma codificação alternativa '%s' está disponível.\n" "Pretende utilizar esta codificação (caso contrário terá de escolher outra)?" #: ../src/common/fontmap.cpp:426 #, c-format msgid "" "No font for displaying text in encoding '%s' found.\n" "Would you like to select a font to be used for this encoding\n" "(otherwise the text in this encoding will not be shown correctly)?" msgstr "" "Não foi encontrada uma fonte para mostrar texto na codificação '%s',\n" "Deseja seleccionar uma fonte para ser usada nesta codificação\n" "(caso contrário o texto nesta codificação não será correctamente " "apresentado)?" #: ../src/generic/animateg.cpp:142 msgid "No handler found for animation type." msgstr "Não foi encontrado um manuseador para o tipo de animação." #: ../src/common/image.cpp:2591 msgid "No handler found for image type." msgstr "Não foi encontrado um manuseador para o tipo de imagem." #: ../src/common/image.cpp:2599 ../src/common/image.cpp:2710 #: ../src/common/image.cpp:2763 #, c-format msgid "No image handler for type %d defined." msgstr "Não existe um manuseador para o tipo %d definido." #: ../src/common/image.cpp:2733 ../src/common/image.cpp:2777 #, c-format msgid "No image handler for type %s defined." msgstr "Não existe um manuseador de imagem para o tipo %s definido." #: ../src/html/helpwnd.cpp:871 msgid "No matching page found yet" msgstr "Não foi encontrado até ao momento uma página coincidente" #: ../src/osx/carbon/dataview.cpp:1676 ../src/osx/carbon/dataview.cpp:1786 msgid "No renderer or invalid renderer type specified for custom data column." msgstr "" #: ../src/osx/carbon/dataview.cpp:1424 msgid "No renderer specified for column." msgstr "" #: ../src/unix/sound.cpp:81 msgid "No sound" msgstr "Sem som" #: ../src/common/image.cpp:2166 ../src/common/image.cpp:2207 msgid "No unused colour in image being masked." msgstr "Sem cor usada na imagem a ser mascarada." #: ../src/common/image.cpp:3236 msgid "No unused colour in image." msgstr "Sem cor usada na imagem." #: ../src/generic/helpext.cpp:306 #, c-format msgid "No valid mappings found in the file \"%s\"." msgstr "Não foram encontrados mapeamentos válidos no ficheiro \"%s\"." #: ../src/richtext/richtextborderspage.cpp:542 #: ../src/richtext/richtextsizepage.cpp:248 #: ../src/richtext/richtextsizepage.cpp:252 #, fuzzy msgid "None" msgstr "(Nenhum)" #: ../src/common/fmapbase.cpp:157 msgid "Nordic (ISO-8859-10)" msgstr "Nórdico (ISO-8859-10)" #: ../src/generic/fontdlgg.cpp:328 ../src/generic/fontdlgg.cpp:331 msgid "Normal" msgstr "Normal" #: ../src/html/helpwnd.cpp:1276 msgid "Normal face
    and underlined. " msgstr "Face normal
    e sublinhado. " #: ../src/html/helpwnd.cpp:1218 msgid "Normal font:" msgstr "Fonte normal:" #: ../src/propgrid/props.cpp:887 #, fuzzy, c-format msgid "Not %s" msgstr "Sobre " #: ../include/wx/filename.h:586 ../include/wx/filename.h:591 #, fuzzy msgid "Not available" msgstr "Nenhuma funcionalidade XBM disponível!" #: ../src/richtext/richtextfontpage.cpp:340 msgid "Not underlined" msgstr "Não sublinhado" #: ../src/common/paper.cpp:116 msgid "Note, 8 1/2 x 11 in" msgstr "Nota, 8 1/2 x 11 pol." #: ../src/generic/notifmsgg.cpp:104 #, fuzzy msgid "Notice" msgstr "&Notas:" #: ../src/osx/carbon/dataview.cpp:902 #, fuzzy msgid "Number of columns could not be determined." msgstr "Não foi possível carregar o ficheiro." #: ../src/richtext/richtextliststylepage.cpp:487 #: ../src/richtext/richtextbulletspage.cpp:292 msgid "Numbered outline" msgstr "Contorno numerado" #: ../include/wx/msgdlg.h:273 ../src/richtext/richtextstyledlg.cpp:297 #: ../src/common/stockitem.cpp:178 ../src/msw/msgdlg.cpp:489 #: ../src/msw/msgdlg.cpp:799 ../src/msw/dialog.cpp:120 #: ../src/gtk1/fontdlg.cpp:138 msgid "OK" msgstr "OK" #: ../src/msw/ole/automtn.cpp:681 #, c-format msgid "OLE Automation error in %s: %s" msgstr "" #: ../include/wx/richtext/richtextimagedlg.h:39 #, fuzzy msgid "Object Properties" msgstr "&Propriedades" #: ../src/msw/ole/automtn.cpp:649 msgid "Object implementation does not support named arguments." msgstr "" #: ../src/common/xtixml.cpp:264 msgid "Objects must have an id attribute" msgstr "Os Objectos devem ter um atributo id" #: ../src/common/docview.cpp:1755 ../src/common/docview.cpp:1797 msgid "Open File" msgstr "Abrir Ficheiro" #: ../src/html/helpwnd.cpp:684 ../src/html/helpwnd.cpp:1557 msgid "Open HTML document" msgstr "Abrir documento HTML" #: ../src/generic/dbgrptg.cpp:163 #, c-format msgid "Open file \"%s\"" msgstr "Abrir ficheiro \"%s\"" #: ../src/common/stockitem.cpp:179 #, fuzzy msgid "Open..." msgstr "&Abrir..." #: ../src/osx/carbon/glcanvas.cpp:48 #, c-format msgid "OpenGL function \"%s\" failed: %s (error %d)" msgstr "" #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:821 msgid "Operation not permitted." msgstr "Operação não permitida." #: ../src/common/cmdline.cpp:735 #, fuzzy, c-format msgid "Option '%s' can't be negated" msgstr "Não foi possível criar o directório '%s'" #: ../src/common/cmdline.cpp:899 #, c-format msgid "Option '%s' requires a value." msgstr "A opção '%s' requer um valor." #: ../src/common/cmdline.cpp:982 #, c-format msgid "Option '%s': '%s' cannot be converted to a date." msgstr "A opção '%s': '%s' não pode ser convertida para uma data." #: ../src/generic/dirdlgg.cpp:187 ../src/generic/prntdlgg.cpp:618 msgid "Options" msgstr "Opções" #: ../src/generic/prntdlgg.cpp:615 ../src/generic/prntdlgg.cpp:869 msgid "Orientation" msgstr "Orientação" #: ../src/common/windowid.cpp:259 msgid "Out of window IDs. Recommend shutting down application." msgstr "" #: ../src/richtext/richtextborderspage.cpp:400 #: ../src/richtext/richtextborderspage.cpp:533 #, fuzzy msgid "Outline" msgstr "&Lista de nível:" #: ../src/richtext/richtextborderspage.cpp:550 msgid "Outset" msgstr "" #: ../src/msw/ole/automtn.cpp:645 msgid "Overflow while coercing argument values." msgstr "" #: ../src/common/accelcmn.cpp:84 msgid "PAGEDOWN" msgstr "PAGEDOWN" #: ../src/common/accelcmn.cpp:83 msgid "PAGEUP" msgstr "PAGEUP" #: ../src/common/accelcmn.cpp:69 msgid "PAUSE" msgstr "PAUSE" #: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:480 msgid "PCX: couldn't allocate memory" msgstr "PCX: não é possível alocar memória" #: ../src/common/imagpcx.cpp:456 msgid "PCX: image format unsupported" msgstr "PCX: formato de imagem não suportado" #: ../src/common/imagpcx.cpp:479 msgid "PCX: invalid image" msgstr "PCX: imagem inválida" #: ../src/common/imagpcx.cpp:442 msgid "PCX: this is not a PCX file." msgstr "PCX: este não é um ficheiro PCX." #: ../src/common/imagpcx.cpp:459 ../src/common/imagpcx.cpp:481 msgid "PCX: unknown error !!!" msgstr "PCX: erro desconhecido!!!" #: ../src/common/imagpcx.cpp:458 msgid "PCX: version number too low" msgstr "PCX: número de versão muito baixo" #: ../src/common/accelcmn.cpp:55 msgid "PGDN" msgstr "PGDN" #: ../src/common/accelcmn.cpp:54 msgid "PGUP" msgstr "PGUP" #: ../src/common/imagpnm.cpp:91 msgid "PNM: Couldn't allocate memory." msgstr "PNM: Não é possível alocar memória." #: ../src/common/imagpnm.cpp:73 msgid "PNM: File format is not recognized." msgstr "PNM: Formato do ficheiro não é reconhecido." #: ../src/common/imagpnm.cpp:112 ../src/common/imagpnm.cpp:134 #: ../src/common/imagpnm.cpp:156 msgid "PNM: File seems truncated." msgstr "PNM: O ficheiro parece estar truncado." #: ../src/common/paper.cpp:188 msgid "PRC 16K 146 x 215 mm" msgstr "PRC 16K 146 x 215 mm" #: ../src/common/paper.cpp:201 msgid "PRC 16K Rotated" msgstr "PRC 16K Rodado" #: ../src/common/paper.cpp:189 msgid "PRC 32K 97 x 151 mm" msgstr "PRC 32K 97 x 151 mm" #: ../src/common/paper.cpp:202 msgid "PRC 32K Rotated" msgstr "PRC 32K Rodado" #: ../src/common/paper.cpp:190 msgid "PRC 32K(Big) 97 x 151 mm" msgstr "PRC 32K(Grande) 97 x 151 mm" #: ../src/common/paper.cpp:203 msgid "PRC 32K(Big) Rotated" msgstr "PRC 32K(Grande) Rodado" #: ../src/common/paper.cpp:191 msgid "PRC Envelope #1 102 x 165 mm" msgstr "Envelope PRC #1 102 x 165 mm" #: ../src/common/paper.cpp:204 msgid "PRC Envelope #1 Rotated 165 x 102 mm" msgstr "Envelope PRC #1 Rodado 165 x 102 mm" #: ../src/common/paper.cpp:200 msgid "PRC Envelope #10 324 x 458 mm" msgstr "Envelope PRC #10 324 x 458 mm" #: ../src/common/paper.cpp:213 msgid "PRC Envelope #10 Rotated 458 x 324 mm" msgstr "Envelope PRC #10 Rodado 458 x 324 mm" #: ../src/common/paper.cpp:192 msgid "PRC Envelope #2 102 x 176 mm" msgstr "Envelope PRC #2 102 x 176 mm" #: ../src/common/paper.cpp:205 msgid "PRC Envelope #2 Rotated 176 x 102 mm" msgstr "Envelope PRC #2 Rodado 176 x 102 mm" #: ../src/common/paper.cpp:193 msgid "PRC Envelope #3 125 x 176 mm" msgstr "Envelope PRC #3 125 x 176 mm" #: ../src/common/paper.cpp:206 msgid "PRC Envelope #3 Rotated 176 x 125 mm" msgstr "Envelope PRC #3 Rodado 176 x 125 mm" #: ../src/common/paper.cpp:194 msgid "PRC Envelope #4 110 x 208 mm" msgstr "Envelope PRC #4 110 x 208 mm" #: ../src/common/paper.cpp:207 msgid "PRC Envelope #4 Rotated 208 x 110 mm" msgstr "Envelope PRC #4 Rodado 208 x 110 mm" #: ../src/common/paper.cpp:195 msgid "PRC Envelope #5 110 x 220 mm" msgstr "Envelope PRC #5 110 x 220 mm" #: ../src/common/paper.cpp:208 msgid "PRC Envelope #5 Rotated 220 x 110 mm" msgstr "Envelope PRC #5 Rodado 220 x 110 mm" #: ../src/common/paper.cpp:196 msgid "PRC Envelope #6 120 x 230 mm" msgstr "Envelope PRC #6 120 x 230 mm" #: ../src/common/paper.cpp:209 msgid "PRC Envelope #6 Rotated 230 x 120 mm" msgstr "Envelope PRC #6 Rodado 230 x 120 mm" #: ../src/common/paper.cpp:197 msgid "PRC Envelope #7 160 x 230 mm" msgstr "Envelope PRC #7 160 x 230 mm" #: ../src/common/paper.cpp:210 msgid "PRC Envelope #7 Rotated 230 x 160 mm" msgstr "Envelope PRC #7 Rodado 230 x 160 mm" #: ../src/common/paper.cpp:198 msgid "PRC Envelope #8 120 x 309 mm" msgstr "Envelope PRC #8 120 x 309 mm" #: ../src/common/paper.cpp:211 msgid "PRC Envelope #8 Rotated 309 x 120 mm" msgstr "Envelope PRC #8 Rodado 309 x 120 mm" #: ../src/common/paper.cpp:199 msgid "PRC Envelope #9 229 x 324 mm" msgstr "Envelope PRC #9 229 x 324 mm" #: ../src/common/paper.cpp:212 msgid "PRC Envelope #9 Rotated 324 x 229 mm" msgstr "Envelope PRC #9 Rodado 324 x 229 mm" #: ../src/common/accelcmn.cpp:72 msgid "PRINT" msgstr "IMPRIMIR" #: ../src/richtext/richtextmarginspage.cpp:286 #, fuzzy msgid "Padding" msgstr "a ler" #: ../src/common/prntbase.cpp:2044 #, c-format msgid "Page %d" msgstr "Página %d" #: ../src/common/prntbase.cpp:2042 #, c-format msgid "Page %d of %d" msgstr "Página %d de %d" #: ../src/gtk/print.cpp:774 msgid "Page Setup" msgstr "Configuração de Página" #: ../src/generic/prntdlgg.cpp:828 ../src/common/prntbase.cpp:467 msgid "Page setup" msgstr "Configuração de página" #: ../src/generic/prntdlgg.cpp:216 msgid "Pages" msgstr "Páginas" #: ../src/generic/prntdlgg.cpp:602 ../src/generic/prntdlgg.cpp:801 #: ../src/generic/prntdlgg.cpp:842 ../src/generic/prntdlgg.cpp:855 #: ../src/generic/prntdlgg.cpp:1052 ../src/generic/prntdlgg.cpp:1057 msgid "Paper size" msgstr "Tamanho do papel" #: ../src/richtext/richtextstyles.cpp:1058 msgid "Paragraph styles" msgstr "Estilos de parágrafo" #: ../src/common/xtistrm.cpp:469 msgid "Passing a already registered object to SetObject" msgstr "A passar um objecto já registado para SetObject" #: ../src/common/xtistrm.cpp:480 #, fuzzy msgid "Passing an unknown object to GetObject" msgstr "A passar um objecto desconhecido para GetObject" #: ../src/richtext/richtextctrl.cpp:3117 ../src/common/stockitem.cpp:180 #: ../src/stc/stc_i18n.cpp:19 msgid "Paste" msgstr "Colar" #: ../src/common/stockitem.cpp:262 msgid "Paste selection" msgstr "Colar selecção" #: ../src/richtext/richtextliststylepage.cpp:222 #: ../src/richtext/richtextbulletspage.cpp:172 msgid "Peri&od" msgstr "Perí&odo" #: ../src/generic/filectrlg.cpp:465 msgid "Permissions" msgstr "Permissões" #: ../src/richtext/richtextbuffer.cpp:11942 #, fuzzy msgid "Picture Properties" msgstr "&Propriedades" #: ../include/wx/unix/pipe.h:47 msgid "Pipe creation failed" msgstr "Falha na criação do pipe" #: ../src/gtk1/fontdlg.cpp:74 msgid "Please choose a valid font." msgstr "Por favor escolha uma fonte válida." #: ../src/gtk/filedlg.cpp:72 msgid "Please choose an existing file." msgstr "Por favor escolha um ficheiro existente." #: ../src/html/helpwnd.cpp:813 msgid "Please choose the page to display:" msgstr "Por favor escolha uma página para mostrar:" #: ../src/msw/dialup.cpp:785 msgid "Please choose which ISP do you want to connect to" msgstr "Por favor escolha ISP a que pretende ligar" #: ../src/msw/listctrl.cpp:372 #, c-format msgid "" "Please install a newer version of comctl32.dll\n" "(at least version 4.70 is required but you have %d.%02d)\n" "or this program won't operate correctly." msgstr "" "Por favor instale uma versão mais recente do comctl32.dll\n" "(no mínimo a versão 4.70 é necessária, mas actualmente tem a %d.%02d)\n" "ou este programa não operará correctamente." #: ../src/common/headerctrlcmn.cpp:59 msgid "Please select the columns to show and define their order:" msgstr "" #: ../src/common/prntbase.cpp:521 #, fuzzy msgid "Please wait while printing..." msgstr "Por favor aguarde enquanto imprime\n" #: ../src/propgrid/advprops.cpp:631 #, fuzzy msgid "Point Size" msgstr "Tamanho do &ponto:" #: ../src/osx/carbon/dataview.cpp:1278 ../src/osx/carbon/dataview.cpp:1329 #: ../src/osx/carbon/dataview.cpp:1420 ../src/osx/carbon/dataview.cpp:1443 #: ../src/osx/carbon/dataview.cpp:1460 ../src/osx/carbon/dataview.cpp:1477 #: ../src/osx/carbon/dataview.cpp:1670 ../src/osx/carbon/dataview.cpp:1779 #: ../src/osx/carbon/dataview.cpp:1821 ../src/osx/carbon/dataview.cpp:1874 #: ../src/osx/carbon/dataview.cpp:1997 msgid "Pointer to data view control not set correctly." msgstr "" #: ../src/osx/carbon/dataview.cpp:1279 ../src/osx/carbon/dataview.cpp:1338 #: ../src/osx/carbon/dataview.cpp:1421 ../src/osx/carbon/dataview.cpp:1478 #: ../src/osx/carbon/dataview.cpp:1671 ../src/osx/carbon/dataview.cpp:1780 #: ../src/osx/carbon/dataview.cpp:1822 ../src/osx/carbon/dataview.cpp:1875 #: ../src/osx/carbon/dataview.cpp:1998 msgid "Pointer to model not set correctly." msgstr "" #: ../src/generic/prntdlgg.cpp:612 ../src/generic/prntdlgg.cpp:867 msgid "Portrait" msgstr "Retrato" #: ../src/richtext/richtextsizepage.cpp:496 #, fuzzy msgid "Position" msgstr "Pergunta" #: ../src/generic/prntdlgg.cpp:298 msgid "PostScript file" msgstr "Ficheiro PostScript" #: ../src/common/stockitem.cpp:181 #, fuzzy msgid "Preferences" msgstr "&Preferências" #: ../src/osx/menu_osx.cpp:643 #, fuzzy msgid "Preferences..." msgstr "&Preferências" #: ../src/common/prntbase.cpp:529 msgid "Preparing" msgstr "" #: ../src/generic/fontdlgg.cpp:455 ../src/osx/carbon/fontdlg.cpp:576 #: ../src/html/helpwnd.cpp:1235 msgid "Preview:" msgstr "Antevisão:" #: ../src/common/prntbase.cpp:1523 ../src/html/helpwnd.cpp:677 msgid "Previous page" msgstr "Página anterior" #: ../src/generic/prntdlgg.cpp:143 ../src/generic/prntdlgg.cpp:157 #: ../src/common/prntbase.cpp:409 ../src/common/prntbase.cpp:1511 #: ../src/gtk/print.cpp:584 ../src/gtk/print.cpp:597 msgid "Print" msgstr "Imprimir" #: ../include/wx/prntbase.h:395 ../src/common/docview.cpp:1250 msgid "Print Preview" msgstr "Antevisão de Impressão" #: ../src/common/prntbase.cpp:1985 ../src/common/prntbase.cpp:2027 #: ../src/common/prntbase.cpp:2035 msgid "Print Preview Failure" msgstr "Falha na Antevisão de Impressão" #: ../src/generic/prntdlgg.cpp:224 msgid "Print Range" msgstr "Alcance da Impressão" #: ../src/generic/prntdlgg.cpp:449 msgid "Print Setup" msgstr "Configuração da Impressão" #: ../src/generic/prntdlgg.cpp:621 msgid "Print in colour" msgstr "Imprimir a cores" #: ../src/common/stockitem.cpp:182 #, fuzzy msgid "Print previe&w..." msgstr "&Antevisão de Impressão" #: ../src/common/docview.cpp:1244 #, fuzzy msgid "Print preview creation failed." msgstr "Falha na criação do pipe" #: ../src/common/stockitem.cpp:182 #, fuzzy msgid "Print preview..." msgstr "Antevisão de impressão" #: ../src/generic/prntdlgg.cpp:630 msgid "Print spooling" msgstr "Spool de impressão" #: ../src/html/helpwnd.cpp:688 msgid "Print this page" msgstr "Imprimir esta página" #: ../src/generic/prntdlgg.cpp:185 msgid "Print to File" msgstr "Imprimir para Ficheiro" #: ../src/common/stockitem.cpp:183 #, fuzzy msgid "Print..." msgstr "&Imprimir..." #: ../src/generic/prntdlgg.cpp:493 msgid "Printer" msgstr "Impressora" #: ../src/generic/prntdlgg.cpp:633 msgid "Printer command:" msgstr "Comando de impressora:" #: ../src/generic/prntdlgg.cpp:180 msgid "Printer options" msgstr "Opções de impressora" #: ../src/generic/prntdlgg.cpp:645 msgid "Printer options:" msgstr "Opções de impressora:" #: ../src/generic/prntdlgg.cpp:916 msgid "Printer..." msgstr "Impressora..." #: ../src/generic/prntdlgg.cpp:196 msgid "Printer:" msgstr "Impressora:" #: ../include/wx/richtext/richtextprint.h:163 ../src/common/prntbase.cpp:518 #: ../src/html/htmprint.cpp:277 #, fuzzy msgid "Printing" msgstr "A Imprimir " #: ../src/common/prntbase.cpp:586 msgid "Printing " msgstr "A Imprimir " #: ../src/common/prntbase.cpp:330 msgid "Printing Error" msgstr "Erro de Impressão" #: ../src/common/prntbase.cpp:544 #, fuzzy, c-format msgid "Printing page %d of %d" msgstr "A imprimir página %d..." #: ../src/generic/printps.cpp:201 #, c-format msgid "Printing page %d..." msgstr "A imprimir página %d..." #: ../src/generic/printps.cpp:161 msgid "Printing..." msgstr "A Imprimir..." #: ../include/wx/richtext/richtextprint.h:109 ../include/wx/prntbase.h:263 #: ../src/common/docview.cpp:2124 #, fuzzy msgid "Printout" msgstr "Imprimir" #: ../src/common/debugrpt.cpp:565 #, c-format msgid "" "Processing debug report has failed, leaving the files in \"%s\" directory." msgstr "" "O processamento do relatório de erro falhou, os ficheiros são deixados no " "directório \"%s\"." #: ../src/osx/carbon/dataview.cpp:2472 msgid "Progress renderer cannot render value type; value type: " msgstr "" #: ../src/common/prntbase.cpp:528 msgid "Progress:" msgstr "" #: ../src/common/stockitem.cpp:184 #, fuzzy msgid "Properties" msgstr "&Propriedades" #: ../src/propgrid/manager.cpp:237 #, fuzzy msgid "Property" msgstr "&Propriedades" #: ../src/propgrid/propgrid.cpp:3144 ../src/propgrid/propgrid.cpp:3276 #, fuzzy msgid "Property Error" msgstr "Erro de Impressão" #: ../src/common/paper.cpp:113 msgid "Quarto, 215 x 275 mm" msgstr "Quarto, 215 x 275 mm" #: ../src/generic/logg.cpp:1036 msgid "Question" msgstr "Pergunta" #: ../src/common/stockitem.cpp:156 #, fuzzy msgid "Quit" msgstr "&Desistir" #: ../src/osx/menu_osx.cpp:610 ../src/osx/menu_osx.cpp:657 #, fuzzy, c-format msgid "Quit %s" msgstr "&Desistir" #: ../src/common/stockitem.cpp:263 msgid "Quit this program" msgstr "Terminar deste programa" #: ../src/common/accelcmn.cpp:53 msgid "RETURN" msgstr "RETURN" #: ../src/common/accelcmn.cpp:57 msgid "RIGHT" msgstr "DIREITO" #: ../src/common/accelcmn.cpp:327 #, fuzzy msgid "RawCtrl+" msgstr "Ctrl-" #: ../src/common/ffile.cpp:113 ../src/common/ffile.cpp:134 #, c-format msgid "Read error on file '%s'" msgstr "Erro de leitura no ficheiro '%s'" #: ../src/common/prntbase.cpp:257 msgid "Ready" msgstr "Preparado" #: ../src/common/stockitem.cpp:185 ../src/stc/stc_i18n.cpp:16 #, fuzzy msgid "Redo" msgstr "&Refazer" #: ../src/common/stockitem.cpp:264 msgid "Redo last action" msgstr "Refazer última acção" #: ../src/common/stockitem.cpp:186 msgid "Refresh" msgstr "Refrescar" #: ../src/msw/registry.cpp:625 #, c-format msgid "Registry key '%s' already exists." msgstr "Chave de registo '%s' já existe." #: ../src/msw/registry.cpp:594 #, c-format msgid "Registry key '%s' does not exist, cannot rename it." msgstr "Chave de registo '%s' não existe, impossível renomeá-la." #: ../src/msw/registry.cpp:726 #, c-format msgid "" "Registry key '%s' is needed for normal system operation,\n" "deleting it will leave your system in unusable state:\n" "operation aborted." msgstr "" "A chave de registo '%s' é necessária para a operação normal do sistema,\n" "apagá-lo vai deixar o seu sistema num estado inutilizável:\n" "operação interrompida." #: ../src/msw/registry.cpp:520 #, c-format msgid "Registry value '%s' already exists." msgstr "Valor de registo '%s' já existe." #: ../src/richtext/richtextfontpage.cpp:332 #: ../src/richtext/richtextfontpage.cpp:336 msgid "Regular" msgstr "Regular" #: ../src/richtext/richtextsizepage.cpp:519 #, fuzzy msgid "Relative" msgstr "Decorative" #: ../src/generic/helpext.cpp:462 msgid "Relevant entries:" msgstr "Entradas relevantes:" #: ../include/wx/generic/progdlgg.h:86 #, fuzzy msgid "Remaining time:" msgstr "Tempo restante : " #: ../src/common/stockitem.cpp:187 msgid "Remove" msgstr "Remover" #: ../src/richtext/richtextctrl.cpp:1430 #, fuzzy msgid "Remove Bullet" msgstr "Remover" #: ../src/html/helpwnd.cpp:440 msgid "Remove current page from bookmarks" msgstr "Remover página actual dos marcadores" #: ../src/common/rendcmn.cpp:194 #, c-format msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded." msgstr "" "Renderizador \"%s\" tem uma versão incompatível %d.%d e não pode ser " "carregado." #: ../src/osx/carbon/dataview.cpp:1430 #, fuzzy msgid "Rendering failed." msgstr "Falha na criação do temporizador." #: ../src/richtext/richtextbuffer.cpp:4214 msgid "Renumber List" msgstr "Renumerar Lista" #: ../src/common/stockitem.cpp:188 msgid "Rep&lace" msgstr "Su&bstituir" #: ../src/richtext/richtextctrl.cpp:3277 ../src/common/stockitem.cpp:188 msgid "Replace" msgstr "Substituir" #: ../src/generic/fdrepdlg.cpp:182 msgid "Replace &all" msgstr "Substituir &todos" #: ../src/common/stockitem.cpp:261 msgid "Replace selection" msgstr "Substituir selecção" #: ../src/generic/fdrepdlg.cpp:124 msgid "Replace with:" msgstr "Substituir por:" #: ../src/common/valtext.cpp:161 msgid "Required information entry is empty." msgstr "" #: ../src/common/translation.cpp:1966 #, fuzzy, c-format msgid "Resource '%s' is not a valid message catalog." msgstr "'%s' não é uma mensagem válida do catálogo." #: ../src/common/stockitem.cpp:189 msgid "Revert to Saved" msgstr "Reverter para o Gravado" #: ../src/richtext/richtextborderspage.cpp:548 #, fuzzy msgid "Ridge" msgstr "Direita" #: ../src/richtext/richtextliststylepage.cpp:251 #: ../src/richtext/richtextbulletspage.cpp:201 #: ../src/richtext/richtextsizepage.cpp:250 msgid "Right" msgstr "Direita" #: ../src/generic/prntdlgg.cpp:892 msgid "Right margin (mm):" msgstr "Margem direita (mm):" #: ../src/richtext/richtextindentspage.cpp:148 #: ../src/richtext/richtextindentspage.cpp:150 #: ../src/richtext/richtextliststylepage.cpp:337 #: ../src/richtext/richtextliststylepage.cpp:339 msgid "Right-align text." msgstr "Alinhar texto à direita." #: ../src/generic/fontdlgg.cpp:322 msgid "Roman" msgstr "Roman" #: ../src/richtext/richtextliststylepage.cpp:299 #: ../src/richtext/richtextbulletspage.cpp:252 msgid "S&tandard bullet name:" msgstr "Nome de Marcador S&tandard:" #: ../src/common/accelcmn.cpp:82 msgid "SCROLL_LOCK" msgstr "SCROLL_LOCK" #: ../src/common/accelcmn.cpp:71 msgid "SELECT" msgstr "SELECT" #: ../src/common/accelcmn.cpp:77 msgid "SEPARATOR" msgstr "SEPARADOR" #: ../src/common/accelcmn.cpp:74 msgid "SNAPSHOT" msgstr "SNAPSHOT" #: ../src/common/accelcmn.cpp:62 msgid "SPACE" msgstr "SPACE" #: ../src/common/accelcmn.cpp:257 ../src/common/accelcmn.cpp:339 msgid "SPECIAL" msgstr "SPECIAL" #: ../src/common/accelcmn.cpp:78 msgid "SUBTRACT" msgstr "SUBTRAIR" #: ../src/common/stockitem.cpp:190 ../src/common/sizer.cpp:2678 msgid "Save" msgstr "Gravar" #: ../src/common/fldlgcmn.cpp:327 #, c-format msgid "Save %s file" msgstr "Gravar %s ficheiro" #: ../src/generic/logg.cpp:518 msgid "Save &As..." msgstr "Gravar &Como..." #: ../src/common/docview.cpp:360 msgid "Save As" msgstr "Gravar Como" #: ../src/common/stockitem.cpp:191 #, fuzzy msgid "Save as" msgstr "Gravar Como" #: ../src/common/stockitem.cpp:267 msgid "Save current document" msgstr "Gravar documento actual" #: ../src/common/stockitem.cpp:268 msgid "Save current document with a different filename" msgstr "Gravar documento actual com nome diferente" #: ../src/generic/logg.cpp:518 msgid "Save log contents to file" msgstr "Gravar conteúdos do registo para ficheiro" #: ../src/generic/fontdlgg.cpp:325 msgid "Script" msgstr "Script" #: ../src/generic/srchctlg.cpp:67 ../src/html/helpwnd.cpp:548 #: ../src/html/helpwnd.cpp:563 msgid "Search" msgstr "Procurar" #: ../src/html/helpwnd.cpp:550 #, fuzzy msgid "" "Search contents of help book(s) for all occurrences of the text you typed " "above" msgstr "" "Procurar conteúdos de livros de ajuda para todas as ocorrências do texto " "digitado acima" #: ../src/generic/fdrepdlg.cpp:160 msgid "Search direction" msgstr "Direcção de procura" #: ../src/generic/fdrepdlg.cpp:112 msgid "Search for:" msgstr "Procurar por:" #: ../src/html/helpwnd.cpp:1065 msgid "Search in all books" msgstr "Procurar em todos os livros" #: ../src/html/helpwnd.cpp:870 msgid "Searching..." msgstr "A Procurar..." #: ../src/generic/dirctrlg.cpp:546 msgid "Sections" msgstr "Secções" #: ../src/common/ffile.cpp:220 #, c-format msgid "Seek error on file '%s'" msgstr "Erro de pesquisa no ficheiro '%s'" #: ../src/common/ffile.cpp:210 #, c-format msgid "Seek error on file '%s' (large files not supported by stdio)" msgstr "" "Erro de pesquisa no ficheiro '%s' (ficheiros grandes não são suportados pelo " "stdio)" #: ../src/richtext/richtextctrl.cpp:330 ../src/osx/textctrl_osx.cpp:587 #: ../src/common/stockitem.cpp:192 ../src/msw/textctrl.cpp:2288 msgid "Select &All" msgstr "Seleccion&ar Todos" #: ../src/common/stockitem.cpp:192 ../src/stc/stc_i18n.cpp:21 #, fuzzy msgid "Select All" msgstr "Seleccion&ar Todos" #: ../src/common/docview.cpp:1877 msgid "Select a document template" msgstr "Seleccionar um modelo de documento" #: ../src/common/docview.cpp:1951 msgid "Select a document view" msgstr "Seleccionar uma vista de documento" #: ../src/richtext/richtextfontpage.cpp:235 #: ../src/richtext/richtextfontpage.cpp:237 msgid "Select regular or bold." msgstr "Seleccionar normal ou destacado." #: ../src/richtext/richtextfontpage.cpp:222 #: ../src/richtext/richtextfontpage.cpp:224 msgid "Select regular or italic style." msgstr "Seleccionar estilo normal ou itálico." #: ../src/richtext/richtextfontpage.cpp:248 #: ../src/richtext/richtextfontpage.cpp:250 msgid "Select underlining or no underlining." msgstr "Seleccionar sublinhado ou não sublinhado." #: ../src/motif/filedlg.cpp:220 msgid "Selection" msgstr "Selecção" #: ../src/richtext/richtextliststylepage.cpp:187 #: ../src/richtext/richtextliststylepage.cpp:189 msgid "Selects the list level to edit." msgstr "Selecciona o nível de lista a editar." #: ../src/common/cmdline.cpp:918 #, c-format msgid "Separator expected after the option '%s'." msgstr "Separador esperado depois da opção '%s'." #: ../src/richtext/richtextbuffer.cpp:10513 #, fuzzy msgid "Set Cell Style" msgstr "Apagar Estilo" #: ../include/wx/xtiprop.h:179 msgid "SetProperty called w/o valid setter" msgstr "SetProperty chamado sem 'set' válido" #: ../src/common/filename.cpp:2632 msgid "Setting directory access times is not supported under this OS version" msgstr "" #: ../src/generic/prntdlgg.cpp:188 msgid "Setup..." msgstr "Configurar..." #: ../src/msw/dialup.cpp:563 msgid "Several active dialup connections found, choosing one randomly." msgstr "" "Foram encontradas várias ligações telefónicas activas, a escolher uma " "aleatoriamente." #: ../src/common/accelcmn.cpp:324 #, fuzzy msgid "Shift+" msgstr "Shift-" #: ../src/generic/dirdlgg.cpp:170 msgid "Show &hidden directories" msgstr "Mostrar directórios e&scondidos" #: ../src/generic/filectrlg.cpp:1003 msgid "Show &hidden files" msgstr "Mostrar fic&heiros escondidos" #: ../src/osx/menu_osx.cpp:605 ../src/osx/menu_osx.cpp:652 #, fuzzy msgid "Show All" msgstr "Mostrar tudo" #: ../src/common/stockitem.cpp:257 msgid "Show about dialog" msgstr "Mostrar diálogo sobre" #: ../src/html/helpwnd.cpp:502 msgid "Show all" msgstr "Mostrar tudo" #: ../src/html/helpwnd.cpp:513 msgid "Show all items in index" msgstr "Mostrar todos os items no índice" #: ../src/generic/dirdlgg.cpp:105 msgid "Show hidden directories" msgstr "Mostrar directórios escondidos" #: ../src/html/helpwnd.cpp:671 msgid "Show/hide navigation panel" msgstr "Mostra/esconde painel de navegação" #: ../src/richtext/richtextsymboldlg.cpp:421 #: ../src/richtext/richtextsymboldlg.cpp:423 msgid "Shows a Unicode subset." msgstr "Mostra um sub-conjunto Unicode." #: ../src/richtext/richtextliststylepage.cpp:472 #: ../src/richtext/richtextliststylepage.cpp:474 #: ../src/richtext/richtextbulletspage.cpp:276 #: ../src/richtext/richtextbulletspage.cpp:278 msgid "Shows a preview of the bullet settings." msgstr "Mostra uma antevisão das definições de marcador." #: ../src/richtext/richtextfontpage.cpp:322 #: ../src/richtext/richtextfontpage.cpp:324 msgid "Shows a preview of the font settings." msgstr "Mostra uma antevisão das definições da fonte." #: ../src/osx/carbon/fontdlg.cpp:580 ../src/osx/carbon/fontdlg.cpp:582 msgid "Shows a preview of the font." msgstr "Mostrar uma antevisão da fonte." #: ../src/richtext/richtextindentspage.cpp:303 #: ../src/richtext/richtextindentspage.cpp:305 msgid "Shows a preview of the paragraph settings." msgstr "Mostra uma antevisão das definições do parágrafo." #: ../src/generic/fontdlgg.cpp:460 ../src/generic/fontdlgg.cpp:462 msgid "Shows the font preview." msgstr "Mostra a antevisão da fonte." #: ../src/univ/themes/mono.cpp:516 msgid "Simple monochrome theme" msgstr "Tema monocromático simples" #: ../src/richtext/richtextindentspage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:449 msgid "Single" msgstr "Único" #: ../src/generic/filectrlg.cpp:460 ../src/richtext/richtextformatdlg.cpp:356 #: ../src/richtext/richtextsizepage.cpp:299 msgid "Size" msgstr "Tamanho" #: ../src/osx/carbon/fontdlg.cpp:525 msgid "Size:" msgstr "Tamanho:" #: ../src/generic/progdlgg.cpp:262 ../src/generic/progdlgg.cpp:773 #: ../src/msw/progdlg.cpp:801 msgid "Skip" msgstr "Saltar" #: ../src/generic/fontdlgg.cpp:330 msgid "Slant" msgstr "Inclinação" #: ../src/richtext/richtextfontpage.cpp:298 msgid "Small C&apitals" msgstr "" #: ../src/richtext/richtextborderspage.cpp:543 #, fuzzy msgid "Solid" msgstr "Destacado" #: ../src/common/docview.cpp:1773 msgid "Sorry, could not open this file." msgstr "Lamento, não foi possível abrir este ficheiro." #: ../src/common/prntbase.cpp:2027 ../src/common/prntbase.cpp:2035 msgid "Sorry, not enough memory to create a preview." msgstr "Lamento, não existe memória suficiente para criar a antevisão." #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "Sorry, that name is taken. Please choose another." msgstr "Lamento, este nome já está escolhido. Por favor escolha outro." #: ../src/common/docview.cpp:1796 msgid "Sorry, the format for this file is unknown." msgstr "Lamento, o formato deste ficheiro é desconhecido." #: ../src/unix/sound.cpp:492 msgid "Sound data are in unsupported format." msgstr "Dados de som estão num formato não suportado." #: ../src/unix/sound.cpp:477 #, c-format msgid "Sound file '%s' is in unsupported format." msgstr "Ficheiro de som '%s' está num formato não suportado." #: ../src/richtext/richtextliststylepage.cpp:467 msgid "Spacing" msgstr "Espaçamento" #: ../src/common/stockitem.cpp:197 msgid "Spell Check" msgstr "" #: ../src/richtext/richtextliststylepage.cpp:490 #: ../src/richtext/richtextbulletspage.cpp:295 msgid "Standard" msgstr "Standard" #: ../src/common/paper.cpp:105 msgid "Statement, 5 1/2 x 8 1/2 in" msgstr "Statement, 5 1/2 x 8 1/2 pol." #: ../src/richtext/richtextsizepage.cpp:518 #: ../src/richtext/richtextsizepage.cpp:523 #, fuzzy msgid "Static" msgstr "Estado:" #: ../src/generic/prntdlgg.cpp:204 msgid "Status:" msgstr "Estado:" #: ../src/common/stockitem.cpp:198 #, fuzzy msgid "Stop" msgstr "&Parar" #: ../src/common/stockitem.cpp:199 msgid "Strikethrough" msgstr "" #: ../src/common/colourcmn.cpp:45 #, c-format msgid "String To Colour : Incorrect colour specification : %s" msgstr "Cadeia de Caracteres para Cor :Especificação de cor incorrecta : %s" #: ../src/richtext/richtextformatdlg.cpp:318 ../src/propgrid/advprops.cpp:647 msgid "Style" msgstr "Estilo" #: ../include/wx/richtext/richtextstyledlg.h:47 msgid "Style Organiser" msgstr "Organizador de Estilos" #: ../src/osx/carbon/fontdlg.cpp:534 msgid "Style:" msgstr "Estilo:" #: ../src/richtext/richtextfontpage.cpp:312 #, fuzzy msgid "Subscrip&t" msgstr "Script" #: ../src/richtext/richtextfontpage.cpp:305 #, fuzzy msgid "Supe&rscript" msgstr "Script" #: ../src/common/paper.cpp:151 msgid "SuperA/SuperA/A4 227 x 356 mm" msgstr "SuperA/SuperA/A4 227 x 356 mm" #: ../src/common/paper.cpp:152 msgid "SuperB/SuperB/A3 305 x 487 mm" msgstr "SuperB/SuperB/A3 305 x 487 mm" #: ../src/generic/fontdlgg.cpp:326 msgid "Swiss" msgstr "Suíço" #: ../src/richtext/richtextliststylepage.cpp:488 #: ../src/richtext/richtextbulletspage.cpp:293 msgid "Symbol" msgstr "Symbol" #: ../src/richtext/richtextliststylepage.cpp:288 #: ../src/richtext/richtextbulletspage.cpp:240 msgid "Symbol &font:" msgstr "&Fonte Symbol:" #: ../include/wx/richtext/richtextsymboldlg.h:47 msgid "Symbols" msgstr "Símbolos" #: ../src/common/accelcmn.cpp:63 msgid "TAB" msgstr "TAB" #: ../src/common/imagtiff.cpp:372 ../src/common/imagtiff.cpp:385 #: ../src/common/imagtiff.cpp:744 msgid "TIFF: Couldn't allocate memory." msgstr "TIFF: Não é possível alocar memória." #: ../src/common/imagtiff.cpp:304 msgid "TIFF: Error loading image." msgstr "TIFF: Erro ao carregar imagem." #: ../src/common/imagtiff.cpp:471 msgid "TIFF: Error reading image." msgstr "TIFF: Erro ao ler imagem." #: ../src/common/imagtiff.cpp:611 msgid "TIFF: Error saving image." msgstr "TIFF: Erro ao gravar imagem." #: ../src/common/imagtiff.cpp:849 msgid "TIFF: Error writing image." msgstr "TIFF: Erro ao escrever imagem." #: ../src/common/imagtiff.cpp:358 msgid "TIFF: Image size is abnormally big." msgstr "" #: ../src/richtext/richtextbuffer.cpp:10794 #, fuzzy msgid "Table Properties" msgstr "&Propriedades" #: ../src/common/paper.cpp:146 msgid "Tabloid Extra 11.69 x 18 in" msgstr "Tabloid Extra 11.69 x 18 pol." #: ../src/common/paper.cpp:103 msgid "Tabloid, 11 x 17 in" msgstr "Tabloid, 11 x 17 pol." #: ../src/richtext/richtextformatdlg.cpp:336 msgid "Tabs" msgstr "Tabs" #: ../src/generic/fontdlgg.cpp:327 msgid "Teletype" msgstr "Teletype" #: ../src/common/docview.cpp:1878 msgid "Templates" msgstr "Modelos" #: ../src/osx/carbon/dataview.cpp:2373 msgid "Text renderer cannot render value; value type: " msgstr "" #: ../src/common/fmapbase.cpp:158 msgid "Thai (ISO-8859-11)" msgstr "Tailandês (ISO-8859-11)" #: ../src/common/ftp.cpp:620 msgid "The FTP server doesn't support passive mode." msgstr "O servidor do FTP não suporta modo passivo." #: ../src/common/ftp.cpp:606 msgid "The FTP server doesn't support the PORT command." msgstr "O servidor de FTP não suporta o comando PORT." #: ../src/richtext/richtextliststylepage.cpp:215 #: ../src/richtext/richtextliststylepage.cpp:217 #: ../src/richtext/richtextbulletspage.cpp:164 #: ../src/richtext/richtextbulletspage.cpp:166 msgid "The available bullet styles." msgstr "Os estilos de marcador disponíveis." #: ../src/richtext/richtextstyledlg.cpp:202 #: ../src/richtext/richtextstyledlg.cpp:204 msgid "The available styles." msgstr "Os estilos disponíveis." #: ../src/richtext/richtextbackgroundpage.cpp:139 #: ../src/richtext/richtextbackgroundpage.cpp:141 #, fuzzy msgid "The background colour." msgstr "Cor de fundo" #: ../src/richtext/richtextmarginspage.cpp:268 #: ../src/richtext/richtextmarginspage.cpp:270 #, fuzzy msgid "The bottom margin size." msgstr "O tamanho do ponto da fonte." #: ../src/richtext/richtextmarginspage.cpp:382 #: ../src/richtext/richtextmarginspage.cpp:384 #, fuzzy msgid "The bottom padding size." msgstr "O tamanho do ponto da fonte." #: ../src/richtext/richtextsizepage.cpp:639 #: ../src/richtext/richtextsizepage.cpp:641 #: ../src/richtext/richtextsizepage.cpp:653 #: ../src/richtext/richtextsizepage.cpp:655 #, fuzzy msgid "The bottom position." msgstr "A posição de tabulação." #: ../src/richtext/richtextliststylepage.cpp:254 #: ../src/richtext/richtextliststylepage.cpp:256 #: ../src/richtext/richtextliststylepage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:277 #: ../src/richtext/richtextbulletspage.cpp:204 #: ../src/richtext/richtextbulletspage.cpp:206 #: ../src/richtext/richtextbulletspage.cpp:227 #: ../src/richtext/richtextbulletspage.cpp:229 msgid "The bullet character." msgstr "O caracter do marcador." #: ../src/richtext/richtextsymboldlg.cpp:443 #: ../src/richtext/richtextsymboldlg.cpp:445 msgid "The character code." msgstr "Código do caracter." #: ../src/common/fontmap.cpp:203 #, c-format msgid "" "The charset '%s' is unknown. You may select\n" "another charset to replace it with or choose\n" "[Cancel] if it cannot be replaced" msgstr "" "O conjunto de caracteres '%s' é desconhecido. Pode seleccionar\n" "outro conjunto de caracteres para substituir, ou escolher\n" "[Cancelar] se não puder ser trocado" #: ../src/msw/ole/dataobj.cpp:367 #, c-format msgid "The clipboard format '%d' doesn't exist." msgstr "O formato da área de transferência '%d' não existe." #: ../src/richtext/richtextstylepage.cpp:128 #: ../src/richtext/richtextstylepage.cpp:130 msgid "The default style for the next paragraph." msgstr "O estilo pré-definido para o próximo parágrafo." #: ../src/generic/dirdlgg.cpp:231 #, c-format msgid "" "The directory '%s' does not exist\n" "Create it now?" msgstr "" "O directório '%s' não existe\n" "Prtende criá-lo agora?" #: ../src/html/htmprint.cpp:271 #, c-format msgid "" "The document \"%s\" doesn't fit on the page horizontally and will be " "truncated if printed.\n" "\n" "Would you like to proceed with printing it nevertheless?" msgstr "" #: ../src/common/docview.cpp:1184 #, c-format msgid "" "The file '%s' doesn't exist and couldn't be opened.\n" "It has been removed from the most recently used files list." msgstr "" "O ficheiro '%s' não existe e não pode ser aberto.\n" "Este foi removido da lista de ficheiros usados mais recentemente." #: ../src/richtext/richtextindentspage.cpp:208 #: ../src/richtext/richtextindentspage.cpp:210 #: ../src/richtext/richtextliststylepage.cpp:394 #: ../src/richtext/richtextliststylepage.cpp:396 msgid "The first line indent." msgstr "A indentação da primeira linha." #: ../src/gtk/utilsgtk.cpp:427 msgid "The following standard GTK+ options are also supported:\n" msgstr "" #: ../src/generic/fontdlgg.cpp:414 ../src/generic/fontdlgg.cpp:416 msgid "The font colour." msgstr "A cor da fonte." #: ../src/generic/fontdlgg.cpp:375 ../src/generic/fontdlgg.cpp:377 msgid "The font family." msgstr "A família da fonte." #: ../src/richtext/richtextsymboldlg.cpp:405 #: ../src/richtext/richtextsymboldlg.cpp:407 msgid "The font from which to take the symbol." msgstr "A fonte de onde se retira o símbolo." #: ../src/generic/fontdlgg.cpp:427 ../src/generic/fontdlgg.cpp:429 #: ../src/generic/fontdlgg.cpp:434 ../src/generic/fontdlgg.cpp:436 msgid "The font point size." msgstr "O tamanho do ponto da fonte." #: ../src/osx/carbon/fontdlg.cpp:529 ../src/osx/carbon/fontdlg.cpp:531 msgid "The font size in points." msgstr "O tamanho da fonte em pontos." #: ../src/richtext/richtextfontpage.cpp:190 #: ../src/richtext/richtextfontpage.cpp:192 #, fuzzy msgid "The font size units, points or pixels." msgstr "O tamanho da fonte em pontos." #: ../src/generic/fontdlgg.cpp:386 ../src/generic/fontdlgg.cpp:388 msgid "The font style." msgstr "O estilo da fonte." #: ../src/generic/fontdlgg.cpp:397 ../src/generic/fontdlgg.cpp:399 msgid "The font weight." msgstr "O peso da fonte." #: ../src/common/docview.cpp:1465 #, fuzzy, c-format msgid "The format of file '%s' couldn't be determined." msgstr "Não foi possível criar o directório '%s'" #: ../src/richtext/richtextindentspage.cpp:199 #: ../src/richtext/richtextindentspage.cpp:201 #: ../src/richtext/richtextliststylepage.cpp:385 #: ../src/richtext/richtextliststylepage.cpp:387 msgid "The left indent." msgstr "A indentação à esquerda." #: ../src/richtext/richtextmarginspage.cpp:195 #: ../src/richtext/richtextmarginspage.cpp:197 #, fuzzy msgid "The left margin size." msgstr "O tamanho do ponto da fonte." #: ../src/richtext/richtextmarginspage.cpp:309 #: ../src/richtext/richtextmarginspage.cpp:311 #, fuzzy msgid "The left padding size." msgstr "O tamanho do ponto da fonte." #: ../src/richtext/richtextsizepage.cpp:534 #: ../src/richtext/richtextsizepage.cpp:536 #: ../src/richtext/richtextsizepage.cpp:548 #: ../src/richtext/richtextsizepage.cpp:550 #, fuzzy msgid "The left position." msgstr "A posição de tabulação." #: ../src/richtext/richtextindentspage.cpp:288 #: ../src/richtext/richtextindentspage.cpp:290 #: ../src/richtext/richtextliststylepage.cpp:462 #: ../src/richtext/richtextliststylepage.cpp:464 msgid "The line spacing." msgstr "O espaçamento de linha." #: ../src/richtext/richtextbulletspage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:270 msgid "The list item number." msgstr "O número de item da lista." #: ../src/msw/ole/automtn.cpp:653 msgid "The locale ID is unknown." msgstr "" #: ../src/richtext/richtextsizepage.cpp:366 #: ../src/richtext/richtextsizepage.cpp:368 #, fuzzy msgid "The object height." msgstr "O peso da fonte." #: ../src/richtext/richtextsizepage.cpp:474 #: ../src/richtext/richtextsizepage.cpp:476 #, fuzzy msgid "The object maximum height." msgstr "O peso da fonte." #: ../src/richtext/richtextsizepage.cpp:447 #: ../src/richtext/richtextsizepage.cpp:449 #, fuzzy msgid "The object maximum width." msgstr "O peso da fonte." #: ../src/richtext/richtextsizepage.cpp:420 #: ../src/richtext/richtextsizepage.cpp:422 #, fuzzy msgid "The object minimum height." msgstr "O peso da fonte." #: ../src/richtext/richtextsizepage.cpp:393 #: ../src/richtext/richtextsizepage.cpp:395 #, fuzzy msgid "The object minimum width." msgstr "O peso da fonte." #: ../src/richtext/richtextsizepage.cpp:332 #: ../src/richtext/richtextsizepage.cpp:334 #, fuzzy msgid "The object width." msgstr "O peso da fonte." #: ../src/richtext/richtextindentspage.cpp:227 #: ../src/richtext/richtextindentspage.cpp:229 #, fuzzy msgid "The outline level." msgstr "A antevisão do estilo." #: ../src/common/log.cpp:281 #, fuzzy, c-format msgid "The previous message repeated %lu time." msgid_plural "The previous message repeated %lu times." msgstr[0] "A mensagem anterior repetida uma vez." msgstr[1] "A mensagem anterior repetida %lu vezes." #: ../src/common/log.cpp:274 #, fuzzy msgid "The previous message repeated once." msgstr "A mensagem anterior repetida uma vez." #: ../src/gtk/print.cpp:931 ../src/gtk/print.cpp:1114 msgid "The print dialog returned an error." msgstr "" #: ../src/richtext/richtextsymboldlg.cpp:462 #: ../src/richtext/richtextsymboldlg.cpp:464 msgid "The range to show." msgstr "O alcance a mostrar." #: ../src/generic/dbgrptg.cpp:322 msgid "" "The report contains the files listed below. If any of these files contain " "private information,\n" "please uncheck them and they will be removed from the report.\n" msgstr "" "O relatório os ficheiros listados abaixo. Se algum destes ficheiros contém " "informação privada,\n" "por favor desmarque-os e eles serão removidos do relatório.\n" #: ../src/common/cmdline.cpp:1083 #, c-format msgid "The required parameter '%s' was not specified." msgstr "O parâmetro requerido '%s' não foi especificado." #: ../src/richtext/richtextindentspage.cpp:217 #: ../src/richtext/richtextindentspage.cpp:219 #: ../src/richtext/richtextliststylepage.cpp:403 #: ../src/richtext/richtextliststylepage.cpp:405 msgid "The right indent." msgstr "A indentação à direita." #: ../src/richtext/richtextmarginspage.cpp:220 #: ../src/richtext/richtextmarginspage.cpp:222 #, fuzzy msgid "The right margin size." msgstr "A indentação à direita." #: ../src/richtext/richtextmarginspage.cpp:334 #: ../src/richtext/richtextmarginspage.cpp:336 #, fuzzy msgid "The right padding size." msgstr "A indentação à direita." #: ../src/richtext/richtextsizepage.cpp:604 #: ../src/richtext/richtextsizepage.cpp:606 #: ../src/richtext/richtextsizepage.cpp:618 #: ../src/richtext/richtextsizepage.cpp:620 #, fuzzy msgid "The right position." msgstr "A posição de tabulação." #: ../src/richtext/richtextindentspage.cpp:267 #: ../src/richtext/richtextliststylepage.cpp:439 #: ../src/richtext/richtextliststylepage.cpp:441 msgid "The spacing after the paragraph." msgstr "O espaçamento depois do parágrafo." #: ../src/richtext/richtextindentspage.cpp:257 #: ../src/richtext/richtextindentspage.cpp:259 #: ../src/richtext/richtextliststylepage.cpp:430 #: ../src/richtext/richtextliststylepage.cpp:432 msgid "The spacing before the paragraph." msgstr "O espaçamento antes do parágrafo." #: ../src/richtext/richtextstylepage.cpp:108 #: ../src/richtext/richtextstylepage.cpp:110 msgid "The style name." msgstr "O nome do estilo." #: ../src/richtext/richtextstylepage.cpp:118 #: ../src/richtext/richtextstylepage.cpp:120 msgid "The style on which this style is based." msgstr "O estilo do qual este estilo é baseado." #: ../src/richtext/richtextstyledlg.cpp:214 #: ../src/richtext/richtextstyledlg.cpp:216 msgid "The style preview." msgstr "A antevisão do estilo." #: ../src/msw/ole/automtn.cpp:669 msgid "The system cannot find the file specified." msgstr "" #: ../src/richtext/richtexttabspage.cpp:118 #: ../src/richtext/richtexttabspage.cpp:120 msgid "The tab position." msgstr "A posição de tabulação." #: ../src/richtext/richtexttabspage.cpp:124 msgid "The tab positions." msgstr "As posições de tabulação." #: ../src/richtext/richtextctrl.cpp:2705 msgid "The text couldn't be saved." msgstr "O texto não pode ser gravado." #: ../src/richtext/richtextmarginspage.cpp:243 #: ../src/richtext/richtextmarginspage.cpp:245 #, fuzzy msgid "The top margin size." msgstr "O tamanho do ponto da fonte." #: ../src/richtext/richtextmarginspage.cpp:357 #: ../src/richtext/richtextmarginspage.cpp:359 #, fuzzy msgid "The top padding size." msgstr "O tamanho do ponto da fonte." #: ../src/richtext/richtextsizepage.cpp:569 #: ../src/richtext/richtextsizepage.cpp:571 #: ../src/richtext/richtextsizepage.cpp:583 #: ../src/richtext/richtextsizepage.cpp:585 #, fuzzy msgid "The top position." msgstr "A posição de tabulação." #: ../src/common/cmdline.cpp:1061 #, c-format msgid "The value for the option '%s' must be specified." msgstr "O valor para a opção '%s' tem de ser especificado." #: ../src/msw/dialup.cpp:452 #, fuzzy, c-format msgid "" "The version of remote access service (RAS) installed on this machine is too " "old, please upgrade (the following required function is missing: %s)." msgstr "" "A versão do serviço de acesso remoto (RAS) instalado nesta máquina é " "demasiado antigo, por favor actualize-o (as seguintes funções necessárias " "estão em falta: %s)." #: ../src/gtk/print.cpp:959 msgid "The wxGtkPrinterDC cannot be used." msgstr "" #: ../src/osx/carbon/dataview.cpp:1340 msgid "There is no column or renderer for the specified column index." msgstr "" #: ../src/richtext/richtextprint.cpp:614 ../src/html/htmprint.cpp:735 msgid "" "There was a problem during page setup: you may need to set a default printer." msgstr "" "Houve um problema durante a configuração da página: poderá necessitar de " "definir uma impressora pré-definida." #: ../src/html/htmprint.cpp:255 msgid "" "This document doesn't fit on the page horizontally and will be truncated " "when it is printed." msgstr "" #: ../src/common/image.cpp:2716 #, fuzzy, c-format msgid "This is not a %s." msgstr "PCX: este não é um ficheiro PCX." #: ../src/common/wincmn.cpp:1653 msgid "This platform does not support background transparency." msgstr "" #: ../src/gtk/window.cpp:4317 msgid "" "This program was compiled with a too old version of GTK+, please rebuild " "with GTK+ 2.12 or newer." msgstr "" #: ../src/msw/datecontrols.cpp:59 #, fuzzy msgid "" "This system doesn't support date controls, please upgrade your version of " "comctl32.dll" msgstr "" "Este sistema não suporta o controlo de selecção de data, por favor actualize " "a versão do comctl32.dll" #: ../src/msw/thread.cpp:1300 msgid "" "Thread module initialization failed: cannot store value in thread local " "storage" msgstr "" "Falhou a inicialização do módulo da thread: não foi possível armazenar o " "valor no armazenamento local da thread" #: ../src/unix/threadpsx.cpp:1758 msgid "Thread module initialization failed: failed to create thread key" msgstr "" "Falhou a inicialização do módulo da thread: falhou a criação da chave da " "thread" #: ../src/msw/thread.cpp:1288 msgid "" "Thread module initialization failed: impossible to allocate index in thread " "local storage" msgstr "" "Falhou a inicialização do módulo da thread: impossível alocar índice no " "armazenamento local da thread" #: ../src/unix/threadpsx.cpp:1038 msgid "Thread priority setting is ignored." msgstr "A definição de prioridade da thread é ignorada." #: ../src/msw/mdi.cpp:172 msgid "Tile &Horizontally" msgstr "Dispor &Horizontalmente" #: ../src/msw/mdi.cpp:173 msgid "Tile &Vertically" msgstr "Dispor &Verticalmente" #: ../src/common/ftp.cpp:202 msgid "Timeout while waiting for FTP server to connect, try passive mode." msgstr "" "Tempo excedido enquanto esperava a ligação do servidor FTP, tente o modo " "passivo." #: ../src/os2/timer.cpp:99 msgid "Timer creation failed." msgstr "Falha na criação do temporizador." #: ../src/generic/tipdlg.cpp:220 msgid "Tip of the Day" msgstr "Dica do Dia" #: ../src/generic/tipdlg.cpp:154 msgid "Tips not available, sorry!" msgstr "Dicas não disponíveis, desculpe!" #: ../src/generic/prntdlgg.cpp:242 msgid "To:" msgstr "Para:" #: ../src/osx/carbon/dataview.cpp:2451 msgid "Toggle renderer cannot render value; value type: " msgstr "" #: ../src/richtext/richtextbuffer.cpp:7983 msgid "Too many EndStyle calls!" msgstr "Demasiadas chamadas EndStyle!" #: ../src/common/imagpng.cpp:286 msgid "Too many colours in PNG, the image may be slightly blurred." msgstr "Demasiadas cores no PNG, a imagem pode ficar ligeiramente desfocada." #: ../src/richtext/richtextsizepage.cpp:286 #: ../src/richtext/richtextsizepage.cpp:290 ../src/common/stockitem.cpp:200 #, fuzzy msgid "Top" msgstr "Para:" #: ../src/generic/prntdlgg.cpp:881 msgid "Top margin (mm):" msgstr "Margem de topo (mm):" #: ../src/generic/aboutdlgg.cpp:79 msgid "Translations by " msgstr "Traduções por " #: ../src/generic/aboutdlgg.cpp:188 #, fuzzy msgid "Translators" msgstr "Traduções por " #: ../src/propgrid/propgrid.cpp:173 msgid "True" msgstr "" #: ../src/common/fs_mem.cpp:227 #, c-format msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!" msgstr "" "A Tentar remover o ficheiro '%s' da memória VFS, mas não foi carregado!" #: ../src/common/fmapbase.cpp:156 msgid "Turkish (ISO-8859-9)" msgstr "Turco (ISO-8859-9)" #: ../src/generic/filectrlg.cpp:461 msgid "Type" msgstr "Tipo" #: ../src/richtext/richtextfontpage.cpp:160 #: ../src/richtext/richtextfontpage.cpp:162 msgid "Type a font name." msgstr "Escreva o nome da fonte." #: ../src/richtext/richtextfontpage.cpp:175 #: ../src/richtext/richtextfontpage.cpp:177 msgid "Type a size in points." msgstr "Escreva um tamanho em pontos." #: ../src/msw/ole/automtn.cpp:665 #, c-format msgid "Type mismatch in argument %u." msgstr "" #: ../src/common/xtixml.cpp:356 ../src/common/xtixml.cpp:509 #: ../src/common/xtistrm.cpp:322 msgid "Type must have enum - long conversion" msgstr "Tipo deve ter conversão enum - long" #: ../src/propgrid/propgridiface.cpp:382 #, c-format msgid "" "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", NOT " "\"%s\"." msgstr "" #: ../src/common/accelcmn.cpp:58 msgid "UP" msgstr "CIMA" #: ../src/common/paper.cpp:134 msgid "US Std Fanfold, 14 7/8 x 11 in" msgstr "US Std Fanfold, 14 7/8 x 11 pol." #: ../src/common/fmapbase.cpp:196 msgid "US-ASCII" msgstr "US-ASCII" #: ../src/unix/fswatcher_inotify.cpp:109 msgid "Unable to add inotify watch" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:136 msgid "Unable to add kqueue watch" msgstr "" #: ../include/wx/msw/private/fswatcher.h:142 msgid "Unable to associate handle with I/O completion port" msgstr "" #: ../include/wx/msw/private/fswatcher.h:125 #, fuzzy msgid "Unable to close I/O completion port handle" msgstr "Falha ao fechar manuseador de ficheiro" #: ../src/unix/fswatcher_inotify.cpp:97 #, fuzzy msgid "Unable to close inotify instance" msgstr "Falha ao fechar manuseador de ficheiro" #: ../include/wx/unix/private/fswatcher_kqueue.h:74 #, fuzzy, c-format msgid "Unable to close path '%s'" msgstr "Falha ao fechar o ficheiro de bloqueio '%s'" #: ../include/wx/msw/private/fswatcher.h:48 #, fuzzy, c-format msgid "Unable to close the handle for '%s'" msgstr "Falha ao fechar manuseador de ficheiro" #: ../include/wx/msw/private/fswatcher.h:240 #, fuzzy msgid "Unable to create I/O completion port" msgstr "Não foi possível criar TextEncodingConverter" #: ../src/msw/fswatcher.cpp:84 #, fuzzy msgid "Unable to create IOCP worker thread" msgstr "Não foi possível criar TextEncodingConverter" #: ../src/unix/fswatcher_inotify.cpp:74 #, fuzzy msgid "Unable to create inotify instance" msgstr "Não foi possível criar TextEncodingConverter" #: ../src/unix/fswatcher_kqueue.cpp:97 #, fuzzy msgid "Unable to create kqueue instance" msgstr "Não foi possível criar TextEncodingConverter" #: ../include/wx/msw/private/fswatcher.h:229 msgid "Unable to dequeue completion packet" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:185 msgid "Unable to get events from kqueue" msgstr "" #: ../src/osx/carbon/dataview.cpp:1903 msgid "Unable to handle native drag&drop data" msgstr "" #: ../src/gtk/app.cpp:439 msgid "Unable to initialize GTK+, is DISPLAY set properly?" msgstr "" #: ../src/gtk/app.cpp:276 #, fuzzy msgid "Unable to initialize Hildon program" msgstr "Falha ao inicializar o OpenGL" #: ../include/wx/unix/private/fswatcher_kqueue.h:57 #, fuzzy, c-format msgid "Unable to open path '%s'" msgstr "Falha na abertura do arquivo CHM '%s'." #: ../src/html/htmlwin.cpp:561 #, c-format msgid "Unable to open requested HTML document: %s" msgstr "Não foi possível abrir documento HTML pretendido: %s" #: ../src/unix/sound.cpp:368 msgid "Unable to play sound asynchronously." msgstr "Não foi possível reproduzir som assincronamente." #: ../include/wx/msw/private/fswatcher.h:207 msgid "Unable to post completion status" msgstr "" #: ../src/unix/fswatcher_inotify.cpp:530 #, fuzzy msgid "Unable to read from inotify descriptor" msgstr "não foi possível ler do descritor do ficheiro %d" #: ../src/unix/fswatcher_inotify.cpp:132 msgid "Unable to remove inotify watch" msgstr "" #: ../src/unix/fswatcher_kqueue.cpp:153 msgid "Unable to remove kqueue watch" msgstr "" #: ../src/msw/fswatcher.cpp:168 #, fuzzy, c-format msgid "Unable to set up watch for '%s'" msgstr "Falha ao tocar no ficheiro '%s'" #: ../src/msw/fswatcher.cpp:91 msgid "Unable to start IOCP worker thread" msgstr "" #: ../src/common/stockitem.cpp:201 msgid "Undelete" msgstr "Recuperar" #: ../src/common/stockitem.cpp:202 #, fuzzy msgid "Underline" msgstr "S&ublinhado" #: ../src/richtext/richtextfontpage.cpp:341 ../src/osx/carbon/fontdlg.cpp:556 #: ../src/propgrid/advprops.cpp:655 msgid "Underlined" msgstr "Sublinhado" #: ../src/common/stockitem.cpp:203 ../src/stc/stc_i18n.cpp:15 #, fuzzy msgid "Undo" msgstr "&Desfazer" #: ../src/common/stockitem.cpp:265 msgid "Undo last action" msgstr "Desfazer última acção" #: ../src/common/cmdline.cpp:864 #, c-format msgid "Unexpected characters following option '%s'." msgstr "Caracteres inesperados a seguir à opção '%s'." #: ../src/unix/fswatcher_inotify.cpp:261 #, c-format msgid "Unexpected event for \"%s\": no matching watch descriptor." msgstr "" #: ../src/common/cmdline.cpp:1024 #, c-format msgid "Unexpected parameter '%s'" msgstr "Parâmetro inesperado '%s'" #: ../include/wx/msw/private/fswatcher.h:148 msgid "Unexpectedly new I/O completion port was created" msgstr "" #: ../src/msw/fswatcher.cpp:70 #, fuzzy msgid "Ungraceful worker thread termination" msgstr "Não é possível esperar pela terminação da thread" #: ../src/richtext/richtextsymboldlg.cpp:459 #: ../src/richtext/richtextsymboldlg.cpp:460 #: ../src/richtext/richtextsymboldlg.cpp:461 msgid "Unicode" msgstr "Unicode" #: ../src/common/fmapbase.cpp:185 ../src/common/fmapbase.cpp:191 msgid "Unicode 16 bit (UTF-16)" msgstr "Unicode 16 bit (UTF-16)" #: ../src/common/fmapbase.cpp:190 msgid "Unicode 16 bit Big Endian (UTF-16BE)" msgstr "Unicode 16 bit Big Endian (UTF-16BE)" #: ../src/common/fmapbase.cpp:186 msgid "Unicode 16 bit Little Endian (UTF-16LE)" msgstr "Unicode 16 bit Little Endian (UTF-16LE)" #: ../src/common/fmapbase.cpp:187 ../src/common/fmapbase.cpp:193 msgid "Unicode 32 bit (UTF-32)" msgstr "Unicode 32 bit (UTF-32)" #: ../src/common/fmapbase.cpp:192 msgid "Unicode 32 bit Big Endian (UTF-32BE)" msgstr "Unicode 32 bit Big Endian (UTF-32BE)" #: ../src/common/fmapbase.cpp:188 msgid "Unicode 32 bit Little Endian (UTF-32LE)" msgstr "Unicode 32 bit Little Endian (UTF-32LE)" #: ../src/common/fmapbase.cpp:182 msgid "Unicode 7 bit (UTF-7)" msgstr "Unicode 7 bit (UTF-7)" #: ../src/common/fmapbase.cpp:183 msgid "Unicode 8 bit (UTF-8)" msgstr "Unicode 8 bit (UTF-8)" #: ../src/common/stockitem.cpp:204 #, fuzzy msgid "Unindent" msgstr "&Desindentar" #: ../src/richtext/richtextborderspage.cpp:373 #: ../src/richtext/richtextborderspage.cpp:375 msgid "Units for the bottom border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:278 #: ../src/richtext/richtextmarginspage.cpp:280 msgid "Units for the bottom margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:517 #: ../src/richtext/richtextborderspage.cpp:519 msgid "Units for the bottom outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:392 #: ../src/richtext/richtextmarginspage.cpp:394 msgid "Units for the bottom padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:664 #: ../src/richtext/richtextsizepage.cpp:666 #, fuzzy msgid "Units for the bottom position." msgstr "Não é possível esperar pela terminação da thread." #: ../src/richtext/richtextborderspage.cpp:283 #: ../src/richtext/richtextborderspage.cpp:285 msgid "Units for the left border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:205 #: ../src/richtext/richtextmarginspage.cpp:207 msgid "Units for the left margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:427 #: ../src/richtext/richtextborderspage.cpp:429 msgid "Units for the left outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:319 #: ../src/richtext/richtextmarginspage.cpp:321 msgid "Units for the left padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:559 #: ../src/richtext/richtextsizepage.cpp:561 #, fuzzy msgid "Units for the left position." msgstr "Não é possível esperar pela terminação da thread." #: ../src/richtext/richtextsizepage.cpp:485 #: ../src/richtext/richtextsizepage.cpp:487 #, fuzzy msgid "Units for the maximum object height." msgstr "O peso da fonte." #: ../src/richtext/richtextsizepage.cpp:458 #: ../src/richtext/richtextsizepage.cpp:460 #, fuzzy msgid "Units for the maximum object width." msgstr "O peso da fonte." #: ../src/richtext/richtextsizepage.cpp:431 #: ../src/richtext/richtextsizepage.cpp:433 #, fuzzy msgid "Units for the minimum object height." msgstr "O peso da fonte." #: ../src/richtext/richtextsizepage.cpp:404 #: ../src/richtext/richtextsizepage.cpp:406 #, fuzzy msgid "Units for the minimum object width." msgstr "O peso da fonte." #: ../src/richtext/richtextsizepage.cpp:377 #: ../src/richtext/richtextsizepage.cpp:379 msgid "Units for the object height." msgstr "" #: ../src/richtext/richtextsizepage.cpp:343 #: ../src/richtext/richtextsizepage.cpp:345 msgid "Units for the object width." msgstr "" #: ../src/richtext/richtextborderspage.cpp:313 #: ../src/richtext/richtextborderspage.cpp:315 msgid "Units for the right border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:230 #: ../src/richtext/richtextmarginspage.cpp:232 msgid "Units for the right margin." msgstr "" #: ../src/richtext/richtextborderspage.cpp:457 #: ../src/richtext/richtextborderspage.cpp:459 msgid "Units for the right outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:344 #: ../src/richtext/richtextmarginspage.cpp:346 msgid "Units for the right padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:629 #: ../src/richtext/richtextsizepage.cpp:631 #, fuzzy msgid "Units for the right position." msgstr "Não é possível esperar pela terminação da thread." #: ../src/richtext/richtextborderspage.cpp:343 #: ../src/richtext/richtextborderspage.cpp:345 msgid "Units for the top border width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:253 #: ../src/richtext/richtextmarginspage.cpp:255 #, fuzzy msgid "Units for the top margin." msgstr "Não é possível esperar pela terminação da thread." #: ../src/richtext/richtextborderspage.cpp:487 #: ../src/richtext/richtextborderspage.cpp:489 msgid "Units for the top outline width." msgstr "" #: ../src/richtext/richtextmarginspage.cpp:367 #: ../src/richtext/richtextmarginspage.cpp:369 msgid "Units for the top padding." msgstr "" #: ../src/richtext/richtextsizepage.cpp:594 #: ../src/richtext/richtextsizepage.cpp:596 #, fuzzy msgid "Units for the top position." msgstr "Não é possível esperar pela terminação da thread." #: ../src/generic/progdlgg.cpp:382 ../src/generic/progdlgg.cpp:655 msgid "Unknown" msgstr "Desconhecido" #: ../src/msw/dde.cpp:1177 #, c-format msgid "Unknown DDE error %08x" msgstr "Erro DDE desconhecido %08x" #: ../src/common/xtistrm.cpp:414 msgid "Unknown Object passed to GetObjectClassInfo" msgstr "Objecto desconhecido passado para GetObjectClassInfo" #: ../src/common/imagpng.cpp:614 #, fuzzy, c-format msgid "Unknown PNG resolution unit %d" msgstr "Opção desconhecida '%s'" #: ../src/common/xtixml.cpp:327 #, fuzzy, c-format msgid "Unknown Property %s" msgstr "Propriedade desconhecida %s" #: ../src/common/imagtiff.cpp:532 #, c-format msgid "Unknown TIFF resolution unit %d ignored" msgstr "" #: ../src/osx/carbon/dataview.cpp:1978 #, fuzzy msgid "Unknown data format" msgstr "erro no formato do dado" #: ../src/unix/dlunix.cpp:325 msgid "Unknown dynamic library error" msgstr "Erro desconhecido de livraria dinâmica" #: ../src/common/fmapbase.cpp:810 #, c-format msgid "Unknown encoding (%d)" msgstr "Codificação desconhecida (%d)" #: ../src/msw/ole/automtn.cpp:677 #, fuzzy, c-format msgid "Unknown error %08x" msgstr "Erro DDE desconhecido %08x" #: ../src/msw/ole/automtn.cpp:636 #, fuzzy msgid "Unknown exception" msgstr "Opção desconhecida '%s'" #: ../src/common/image.cpp:2701 #, fuzzy msgid "Unknown image data format." msgstr "erro no formato do dado" #: ../src/common/cmdline.cpp:749 #, c-format msgid "Unknown long option '%s'" msgstr "Opção longa desconhecida '%s'" #: ../src/msw/ole/automtn.cpp:620 msgid "Unknown name or named argument." msgstr "" #: ../src/common/cmdline.cpp:764 ../src/common/cmdline.cpp:786 #, c-format msgid "Unknown option '%s'" msgstr "Opção desconhecida '%s'" #: ../src/common/mimecmn.cpp:230 #, c-format msgid "Unmatched '{' in an entry for mime type %s." msgstr "Correspondência não encontrada de '{' numa entrada do tipo mime %s." #: ../src/common/cmdproc.cpp:262 ../src/common/cmdproc.cpp:288 #: ../src/common/cmdproc.cpp:308 msgid "Unnamed command" msgstr "Comando não nomeado" #: ../src/propgrid/propgrid.cpp:398 #, fuzzy msgid "Unspecified" msgstr "Justificado" #: ../src/msw/clipbrd.cpp:271 ../src/msw/clipbrd.cpp:439 msgid "Unsupported clipboard format." msgstr "Formato da área de transferência não suportado." #: ../src/common/appcmn.cpp:249 #, c-format msgid "Unsupported theme '%s'." msgstr "Tema não suportado '%s'." #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:205 msgid "Up" msgstr "Cima" #: ../src/richtext/richtextliststylepage.cpp:483 #: ../src/richtext/richtextbulletspage.cpp:288 msgid "Upper case letters" msgstr "Letras maiúsculas" #: ../src/richtext/richtextliststylepage.cpp:485 #: ../src/richtext/richtextbulletspage.cpp:290 msgid "Upper case roman numerals" msgstr "Números romanos em maiúsculas" #: ../src/common/cmdline.cpp:1155 #, c-format msgid "Usage: %s" msgstr "Utilização: %s" #: ../src/richtext/richtextindentspage.cpp:169 #: ../src/richtext/richtextindentspage.cpp:171 #: ../src/richtext/richtextliststylepage.cpp:358 #: ../src/richtext/richtextliststylepage.cpp:360 msgid "Use the current alignment setting." msgstr "Utilizar a definição actual de alinhamento." #: ../src/osx/carbon/dataview.cpp:2658 ../src/osx/carbon/dataview.cpp:2723 msgid "Valid pointer to native data view control does not exist" msgstr "" #: ../src/common/valtext.cpp:174 msgid "Validation conflict" msgstr "Conflito de validação" #: ../src/propgrid/manager.cpp:238 msgid "Value" msgstr "" #: ../src/propgrid/props.cpp:384 #, c-format msgid "Value must be %s or higher." msgstr "" #: ../src/propgrid/props.cpp:411 #, c-format msgid "Value must be %s or less." msgstr "" #: ../src/propgrid/props.cpp:388 ../src/propgrid/props.cpp:415 #, fuzzy, c-format msgid "Value must be between %s and %s." msgstr "Introduza um número de página entre %d e %d:" #: ../src/generic/aboutdlgg.cpp:128 #, fuzzy msgid "Version " msgstr " Versão " #: ../src/richtext/richtextsizepage.cpp:291 #: ../src/richtext/richtextsizepage.cpp:293 #, fuzzy msgid "Vertical alignment." msgstr "Não foi possível inicia a impressão." #: ../src/generic/filedlgg.cpp:216 msgid "View files as a detailed view" msgstr "Ver ficheiros como uma vista detalhada" #: ../src/generic/filedlgg.cpp:214 msgid "View files as a list view" msgstr "Ver ficheiros como uma vista em lista" #: ../src/common/docview.cpp:1952 msgid "Views" msgstr "Vistas" #: ../src/common/accelcmn.cpp:108 msgid "WINDOWS_LEFT" msgstr "WINDOWS_LEFT" #: ../src/common/accelcmn.cpp:110 msgid "WINDOWS_MENU" msgstr "WINDOWS_MENU" #: ../src/common/accelcmn.cpp:109 msgid "WINDOWS_RIGHT" msgstr "WINDOWS_RIGHT" #: ../src/unix/epolldispatcher.cpp:213 #, fuzzy, c-format msgid "Waiting for IO on epoll descriptor %d failed" msgstr "Falha na espera do fim do subprocesso" #: ../src/common/log.cpp:227 msgid "Warning: " msgstr "Aviso: " #: ../src/propgrid/advprops.cpp:651 #, fuzzy msgid "Weight" msgstr "&Peso:" #: ../src/common/fmapbase.cpp:148 msgid "Western European (ISO-8859-1)" msgstr "Europa Ocidental (ISO-8859-1)" #: ../src/common/fmapbase.cpp:162 msgid "Western European with Euro (ISO-8859-15)" msgstr "Europa Ocidental com Euro (ISO-8859-15)" #: ../src/generic/fontdlgg.cpp:446 ../src/generic/fontdlgg.cpp:448 msgid "Whether the font is underlined." msgstr "Se a fonte está sublinhada." #: ../src/generic/fdrepdlg.cpp:144 msgid "Whole word" msgstr "Palavra completa" #: ../src/html/helpwnd.cpp:547 msgid "Whole words only" msgstr "Apenas palavras completas" #: ../src/univ/themes/win32.cpp:1102 msgid "Win32 theme" msgstr "Tema Win32" #: ../src/msw/utils.cpp:1220 msgid "Win32s on Windows 3.1" msgstr "Win32s em Windows 3.1" #: ../src/msw/utils.cpp:1270 #, fuzzy msgid "Windows 2000" msgstr "Windows 95" #: ../src/msw/utils.cpp:1302 #, fuzzy msgid "Windows 7" msgstr "Windows 95" #: ../src/msw/utils.cpp:1234 msgid "Windows 95" msgstr "Windows 95" #: ../src/msw/utils.cpp:1230 msgid "Windows 95 OSR2" msgstr "Windows 95 OSR2" #: ../src/msw/utils.cpp:1245 msgid "Windows 98" msgstr "Windows 98" #: ../src/msw/utils.cpp:1241 msgid "Windows 98 SE" msgstr "Windows 98 SE" #: ../src/msw/utils.cpp:1252 #, c-format msgid "Windows 9x (%d.%d)" msgstr "Windows 9x (%d.%d)" #: ../src/common/fmapbase.cpp:177 msgid "Windows Arabic (CP 1256)" msgstr "Árabe de Windows (CP 1256)" #: ../src/common/fmapbase.cpp:178 msgid "Windows Baltic (CP 1257)" msgstr "Báltico de Windows (CP 1257)" #: ../src/msw/utils.cpp:1214 #, c-format msgid "Windows CE (%d.%d)" msgstr "Windows CE (%d.%d)" #: ../src/common/fmapbase.cpp:171 msgid "Windows Central European (CP 1250)" msgstr "Europeu Central de Windows (CP 1250)" #: ../src/common/fmapbase.cpp:168 #, fuzzy msgid "Windows Chinese Simplified (CP 936) or GB-2312" msgstr "Chinês Simplificado de Windows (CP 936)" #: ../src/common/fmapbase.cpp:170 #, fuzzy msgid "Windows Chinese Traditional (CP 950) or Big-5" msgstr "Chinês Tradicional de Windows (CP 950)" #: ../src/common/fmapbase.cpp:172 msgid "Windows Cyrillic (CP 1251)" msgstr "Cirílico de Windows (CP 1251)" #: ../src/common/fmapbase.cpp:174 msgid "Windows Greek (CP 1253)" msgstr "Grêgo de Windows (CP 1253)" #: ../src/common/fmapbase.cpp:176 msgid "Windows Hebrew (CP 1255)" msgstr "Hebreu de Windows (CP 1255)" #: ../src/common/fmapbase.cpp:167 #, fuzzy msgid "Windows Japanese (CP 932) or Shift-JIS" msgstr "Japonês de Windows (CP 932)" #: ../src/common/fmapbase.cpp:180 #, fuzzy msgid "Windows Johab (CP 1361)" msgstr "Árabe de Windows (CP 1256)" #: ../src/common/fmapbase.cpp:169 msgid "Windows Korean (CP 949)" msgstr "Coreano de Windows (CP 949)" #: ../src/msw/utils.cpp:1249 msgid "Windows ME" msgstr "Windows ME" #: ../src/msw/utils.cpp:1310 #, fuzzy, c-format msgid "Windows NT %lu.%lu" msgstr "Windows NT %lu.%lu (build %lu" #: ../src/msw/utils.cpp:1279 #, fuzzy msgid "Windows Server 2003" msgstr "Windows Server 2003 (build %lu" #: ../src/msw/utils.cpp:1295 #, fuzzy msgid "Windows Server 2008" msgstr "Windows Server 2003 (build %lu" #: ../src/msw/utils.cpp:1301 #, fuzzy msgid "Windows Server 2008 R2" msgstr "Windows Server 2003 (build %lu" #: ../src/common/fmapbase.cpp:166 msgid "Windows Thai (CP 874)" msgstr "Tailandês de Windows (CP 874)" #: ../src/common/fmapbase.cpp:175 msgid "Windows Turkish (CP 1254)" msgstr "Turco de Windows (CP 1254)" #: ../src/common/fmapbase.cpp:179 #, fuzzy msgid "Windows Vietnamese (CP 1258)" msgstr "Grêgo de Windows (CP 1253)" #: ../src/msw/utils.cpp:1296 #, fuzzy msgid "Windows Vista" msgstr "Windows 95" #: ../src/common/fmapbase.cpp:173 msgid "Windows Western European (CP 1252)" msgstr "Europeu Ocidental de Windows (CP 1252)" #: ../src/msw/utils.cpp:1285 #, fuzzy msgid "Windows XP" msgstr "Windows 95" #: ../src/common/fmapbase.cpp:181 msgid "Windows/DOS OEM (CP 437)" msgstr "Windows/DOS OEM (CP 437)" #: ../src/common/fmapbase.cpp:165 #, fuzzy msgid "Windows/DOS OEM Cyrillic (CP 866)" msgstr "Cirílico de Windows (CP 1251)" #: ../src/common/ffile.cpp:148 #, c-format msgid "Write error on file '%s'" msgstr "Erro de escrita no ficheiro '%s'" #: ../src/xml/xml.cpp:844 #, c-format msgid "XML parsing error: '%s' at line %d" msgstr "XML erro de verificação gramatical: '%s' na linha %d" #: ../src/common/xpmdecod.cpp:796 msgid "XPM: Malformed pixel data!" msgstr "XPM: Dados de pixeis mal formados!" #: ../src/common/xpmdecod.cpp:705 #, c-format msgid "XPM: incorrect colour description in line %d" msgstr "XPM: descrição incorrecta de cor na linha %d" #: ../src/common/xpmdecod.cpp:680 msgid "XPM: incorrect header format!" msgstr "XPM: formato de cabeçalho incorrecto!" #: ../src/common/xpmdecod.cpp:716 ../src/common/xpmdecod.cpp:725 #, c-format msgid "XPM: malformed colour definition '%s' at line %d!" msgstr "XPM: definição de cor '%s' mal formada na linha %d!" #: ../src/common/xpmdecod.cpp:755 #, fuzzy msgid "XPM: no colors left to use for mask!" msgstr "XPM: formato de cabeçalho incorrecto!" #: ../src/common/xpmdecod.cpp:782 #, c-format msgid "XPM: truncated image data at line %d!" msgstr "XPM: dados de imagem truncados na linha %d!" #: ../include/wx/msgdlg.h:271 ../src/common/stockitem.cpp:206 #: ../src/motif/msgdlg.cpp:196 msgid "Yes" msgstr "Sim" #: ../src/osx/carbon/overlay.cpp:155 msgid "You cannot Clear an overlay that is not inited" msgstr "Não pode Limpar uma sobreposição que não está inicializada" #: ../src/osx/carbon/overlay.cpp:107 ../src/dfb/overlay.cpp:61 msgid "You cannot Init an overlay twice" msgstr "Não pode Inicializar uma sobreposição duas vezes" #: ../src/generic/dirdlgg.cpp:316 msgid "You cannot add a new directory to this section." msgstr "Não pode adicionar um novo directório a esta secção." #: ../src/propgrid/propgrid.cpp:3258 msgid "You have entered invalid value. Press ESC to cancel editing." msgstr "" #: ../src/common/stockitem.cpp:209 msgid "Zoom &In" msgstr "Ampl&iar" #: ../src/common/stockitem.cpp:210 msgid "Zoom &Out" msgstr "Red&uzir" #: ../src/common/stockitem.cpp:209 ../src/common/prntbase.cpp:1564 #, fuzzy msgid "Zoom In" msgstr "Ampl&iar" #: ../src/common/stockitem.cpp:210 ../src/common/prntbase.cpp:1550 #, fuzzy msgid "Zoom Out" msgstr "Red&uzir" #: ../src/common/stockitem.cpp:208 msgid "Zoom to &Fit" msgstr "Ampliar para &Caber" #: ../src/common/stockitem.cpp:208 #, fuzzy msgid "Zoom to Fit" msgstr "Ampliar para &Caber" #: ../src/msw/dde.cpp:1144 msgid "a DDEML application has created a prolonged race condition." msgstr "uma aplicação DDEML criou uma condição de corrida prolongada." #: ../src/msw/dde.cpp:1132 msgid "" "a DDEML function was called without first calling the DdeInitialize " "function,\n" "or an invalid instance identifier\n" "was passed to a DDEML function." msgstr "" "uma função DDEML foi chamada sem chamar primeiro a função DdeInitialize,\n" "ou um identificador inválido instância\n" "foi passado a uma função DDEML." #: ../src/msw/dde.cpp:1150 msgid "a client's attempt to establish a conversation has failed." msgstr "" "a tentativa por parte de um cliente de estabelecer uma conversação falhou." #: ../src/msw/dde.cpp:1147 msgid "a memory allocation failed." msgstr "falhou uma alocação de memória." #: ../src/msw/dde.cpp:1141 msgid "a parameter failed to be validated by the DDEML." msgstr "falhou a validação de um parâmetro pelo DDEML." #: ../src/msw/dde.cpp:1123 msgid "a request for a synchronous advise transaction has timed out." msgstr "" "um pedido para uma transacção de conselho síncrona excedeu o tempo limite." #: ../src/msw/dde.cpp:1129 msgid "a request for a synchronous data transaction has timed out." msgstr "" "um pedido para uma transacção de dados síncrona excedeu o tempo limite." #: ../src/msw/dde.cpp:1138 msgid "a request for a synchronous execute transaction has timed out." msgstr "" "um pedido para uma transacção de execução síncrona excedeu o tempo limite." #: ../src/msw/dde.cpp:1156 msgid "a request for a synchronous poke transaction has timed out." msgstr "" "um pedido para uma transacção de 'poke' síncrona excedeu o tempo limite." #: ../src/msw/dde.cpp:1171 msgid "a request to end an advise transaction has timed out." msgstr "" "um pedido de término de uma transacção de conselho excedeu o tempo limite." #: ../src/msw/dde.cpp:1165 msgid "" "a server-side transaction was attempted on a conversation\n" "that was terminated by the client, or the server\n" "terminated before completing a transaction." msgstr "" "foi tentada uma transacção do lado do servidor, numa conversação\n" "que foi terminada pelo cliente, ou o servidor\n" "terminou antes do fim da transacção." #: ../src/msw/dde.cpp:1153 msgid "a transaction failed." msgstr "falhou uma transacção." #: ../src/common/accelcmn.cpp:184 msgid "alt" msgstr "alt" #: ../src/msw/dde.cpp:1135 msgid "" "an application initialized as APPCLASS_MONITOR has\n" "attempted to perform a DDE transaction,\n" "or an application initialized as APPCMD_CLIENTONLY has \n" "attempted to perform server transactions." msgstr "" "uma aplicação inicializada como APPCLASS_MONITOR tem\n" "tentado efectuar uma transacção DDE,\n" "ou uma aplicação inicaializada como APPCMD_CLIENTONLY tem\n" "tentado realizar transacções de servidor." #: ../src/msw/dde.cpp:1159 msgid "an internal call to the PostMessage function has failed. " msgstr "falha numa chamada interna à função PostMessage. " #: ../src/msw/dde.cpp:1168 msgid "an internal error has occurred in the DDEML." msgstr "ocorreu um erro interno no DDEML." #: ../src/msw/dde.cpp:1174 msgid "" "an invalid transaction identifier was passed to a DDEML function.\n" "Once the application has returned from an XTYP_XACT_COMPLETE callback,\n" "the transaction identifier for that callback is no longer valid." msgstr "" "um identificador inválido de transacção foi passado a uma função DDEML.\n" "Uma vez que a aplicação retornou de uma chamada de um XTYP_XACT_COMPLETE,\n" "o identificador de transacção dessa chamada deixou de ser válido." #: ../src/common/zipstrm.cpp:1272 msgid "assuming this is a multi-part zip concatenated" msgstr "a assumir que este é um ficheiro zip multi-partes concatenado" #: ../src/common/fileconf.cpp:1882 #, c-format msgid "attempt to change immutable key '%s' ignored." msgstr "tentativa de alteração da chave imutável '%s' ignorada." #: ../src/html/chm.cpp:329 msgid "bad arguments to library function" msgstr "argumentos inválidos a uma função da livraria" #: ../src/html/chm.cpp:341 msgid "bad signature" msgstr "má assinatura" #: ../src/common/zipstrm.cpp:1715 msgid "bad zipfile offset to entry" msgstr "mau offset de entrada de ficheiro zip" #: ../src/common/ftp.cpp:405 msgid "binary" msgstr "binário" #: ../src/common/fontcmn.cpp:978 msgid "bold" msgstr "destacado" #: ../src/os2/iniconf.cpp:463 msgid "buffer is too small for Windows directory." msgstr "buffer pequeno demais para directório Windows." #: ../src/msw/utils.cpp:1316 #, fuzzy, c-format msgid "build %lu" msgstr "Windows XP (build %lu" #: ../src/common/ffile.cpp:79 #, c-format msgid "can't close file '%s'" msgstr "impossível fechar o ficheiro '%s'" #: ../src/common/file.cpp:278 #, c-format msgid "can't close file descriptor %d" msgstr "impossível fechar o descritor do ficheiro %d" #: ../src/common/file.cpp:604 #, c-format msgid "can't commit changes to file '%s'" msgstr "não é possível garantir as alterações ao ficheiro '%s'" #: ../src/common/file.cpp:212 #, c-format msgid "can't create file '%s'" msgstr "impossível criar o ficheiro '%s'" #: ../src/common/fileconf.cpp:1176 #, c-format msgid "can't delete user configuration file '%s'" msgstr "não foi possível apagar o ficheiro de configuração do utilizador '%s'" #: ../src/common/file.cpp:511 #, c-format msgid "can't determine if the end of file is reached on descriptor %d" msgstr "" "impossível determinar se o fim do ficheiro foi alcançado no descritor %d" #: ../src/msdos/utilsdos.cpp:310 ../src/msdos/utilsdos.cpp:475 #, c-format msgid "can't execute '%s'" msgstr "impossível executar '%s'" #: ../src/common/zipstrm.cpp:1490 msgid "can't find central directory in zip" msgstr "não foi possível localizar o directório central no zip" #: ../src/common/file.cpp:481 #, c-format msgid "can't find length of file on file descriptor %d" msgstr "" "Não foi possível encontrar o comprimento do ficheiro no descritor do " "ficheiro %d" #: ../src/msw/utils.cpp:373 msgid "can't find user's HOME, using current directory." msgstr "" "Não foi possível localizar a pasta pessoal do utilizador, a utilizar o " "directório actual." #: ../src/common/file.cpp:382 #, c-format msgid "can't flush file descriptor %d" msgstr "Não foi possível escoar o descritor do ficheiro %d" #: ../src/common/file.cpp:438 ../src/msw/wince/filefnwce.cpp:204 #, c-format msgid "can't get seek position on file descriptor %d" msgstr "Não foi possível obter posição de pesquisa no descritor do ficheiro %d" #: ../src/common/fontmap.cpp:325 msgid "can't load any font, aborting" msgstr "não foi possível carregar nenhuma fonte, a abortar" #: ../src/common/file.cpp:264 ../src/common/ffile.cpp:63 #, c-format msgid "can't open file '%s'" msgstr "impossível abrir ficheiro '%s'" #: ../src/common/fileconf.cpp:351 #, c-format msgid "can't open global configuration file '%s'." msgstr "não foi possível abrir o ficheiro '%s' global de configuração." #: ../src/common/fileconf.cpp:367 #, c-format msgid "can't open user configuration file '%s'." msgstr "não foi possível abrir o ficheiro '%s' de configuração do utilizador." #: ../src/common/fileconf.cpp:1017 msgid "can't open user configuration file." msgstr "não foi possível abrir o ficheiro de configuração do utilizador." #: ../src/common/zipstrm.cpp:527 msgid "can't re-initialize zlib deflate stream" msgstr "não foi possível re-inicializar o 'zlib deflate stream'" #: ../src/common/zipstrm.cpp:552 msgid "can't re-initialize zlib inflate stream" msgstr "não foi possível re-inicializar o 'zlib inflate stream'" #: ../src/common/file.cpp:334 #, c-format msgid "can't read from file descriptor %d" msgstr "não foi possível ler do descritor do ficheiro %d" #: ../src/common/file.cpp:599 #, c-format msgid "can't remove file '%s'" msgstr "impossível remover ficheiro '%s'" #: ../src/common/file.cpp:616 #, c-format msgid "can't remove temporary file '%s'" msgstr "Não foi possível remover ficheiro temporário '%s'" #: ../src/common/file.cpp:424 ../src/msw/wince/filefnwce.cpp:190 #, c-format msgid "can't seek on file descriptor %d" msgstr "Não foi possível pesquisar no descritor de ficheiro %d" #: ../src/common/textfile.cpp:299 #, c-format msgid "can't write buffer '%s' to disk." msgstr "Não foi possível escrever o buffer '%s' para o disco." #: ../src/common/file.cpp:350 #, c-format msgid "can't write to file descriptor %d" msgstr "Não foi possível escrever no descritor de ficheiro %d" #: ../src/common/fileconf.cpp:1031 msgid "can't write user configuration file." msgstr "Não foi possível gravar o ficheiro de configuração do utilizador." #: ../src/html/chm.cpp:345 msgid "checksum error" msgstr "erro de checksum" #: ../src/common/tarstrm.cpp:820 msgid "checksum failure reading tar header block" msgstr "falha de checksum a ler bloco de cabeçalho tar" #: ../src/richtext/richtextborderspage.cpp:280 #: ../src/richtext/richtextborderspage.cpp:310 #: ../src/richtext/richtextborderspage.cpp:340 #: ../src/richtext/richtextborderspage.cpp:370 #: ../src/richtext/richtextborderspage.cpp:424 #: ../src/richtext/richtextborderspage.cpp:454 #: ../src/richtext/richtextborderspage.cpp:484 #: ../src/richtext/richtextborderspage.cpp:514 #: ../src/richtext/richtextmarginspage.cpp:202 #: ../src/richtext/richtextmarginspage.cpp:227 #: ../src/richtext/richtextmarginspage.cpp:250 #: ../src/richtext/richtextmarginspage.cpp:275 #: ../src/richtext/richtextmarginspage.cpp:316 #: ../src/richtext/richtextmarginspage.cpp:341 #: ../src/richtext/richtextmarginspage.cpp:364 #: ../src/richtext/richtextmarginspage.cpp:389 #: ../src/richtext/richtextsizepage.cpp:339 #: ../src/richtext/richtextsizepage.cpp:373 #: ../src/richtext/richtextsizepage.cpp:400 #: ../src/richtext/richtextsizepage.cpp:427 #: ../src/richtext/richtextsizepage.cpp:454 #: ../src/richtext/richtextsizepage.cpp:481 #: ../src/richtext/richtextsizepage.cpp:555 #: ../src/richtext/richtextsizepage.cpp:590 #: ../src/richtext/richtextsizepage.cpp:625 #: ../src/richtext/richtextsizepage.cpp:660 msgid "cm" msgstr "" #: ../src/html/chm.cpp:347 msgid "compression error" msgstr "erro de compressão" #: ../src/common/regex.cpp:239 msgid "conversion to 8-bit encoding failed" msgstr "falhou a conversão para codificação de 8-bits" #: ../src/common/accelcmn.cpp:182 msgid "ctrl" msgstr "ctrl" #: ../src/common/cmdline.cpp:1323 msgid "date" msgstr "data" #: ../src/html/chm.cpp:349 msgid "decompression error" msgstr "erro de descompressão" #: ../src/richtext/richtextstyles.cpp:780 ../src/common/fmapbase.cpp:820 msgid "default" msgstr "pré-definição" #: ../src/common/cmdline.cpp:1319 msgid "double" msgstr "" #: ../src/common/debugrpt.cpp:543 msgid "dump of the process state (binary)" msgstr "dump do estado do processo (binário)" #: ../src/common/datetimefmt.cpp:1936 msgid "eighteenth" msgstr "décimo oitavo" #: ../src/common/datetimefmt.cpp:1926 msgid "eighth" msgstr "oitavo" #: ../src/common/datetimefmt.cpp:1929 msgid "eleventh" msgstr "décimo primeiro" #: ../src/common/fileconf.cpp:1868 #, c-format msgid "entry '%s' appears more than once in group '%s'" msgstr "a entrada '%s' aparece mais do uma vez no grupo '%s'" #: ../src/html/chm.cpp:343 msgid "error in data format" msgstr "erro no formato do dado" #: ../src/msdos/utilsdos.cpp:413 #, c-format msgid "error opening '%s'" msgstr "erro ao abrir '%s'" #: ../src/html/chm.cpp:331 msgid "error opening file" msgstr "erro ao abrir ficheiro" #: ../src/common/zipstrm.cpp:1576 msgid "error reading zip central directory" msgstr "erro a ler directório central de zip" #: ../src/common/zipstrm.cpp:1667 msgid "error reading zip local header" msgstr "erro ao ler cabeçalho local de zip" #: ../src/common/zipstrm.cpp:2396 #, c-format msgid "error writing zip entry '%s': bad crc or length" msgstr "erro ao escrever entrada zip '%s': mau comprimento ou crc" #: ../src/common/ffile.cpp:170 #, c-format msgid "failed to flush the file '%s'" msgstr "Falha a escoar o ficheiro '%s'" #: ../src/common/datetimefmt.cpp:1933 msgid "fifteenth" msgstr "décimo quinto" #: ../src/common/datetimefmt.cpp:1923 msgid "fifth" msgstr "quinto" #: ../src/common/fileconf.cpp:610 #, c-format msgid "file '%s', line %d: '%s' ignored after group header." msgstr "ficheiro '%s', linha %d: '%s' ignorado após cabeçalho de grupo." #: ../src/common/fileconf.cpp:639 #, c-format msgid "file '%s', line %d: '=' expected." msgstr "ficheiro '%s', linha %d: '=' esperado." #: ../src/common/fileconf.cpp:662 #, c-format msgid "file '%s', line %d: key '%s' was first found at line %d." msgstr "" "ficheiro '%s', linha %d: chave '%s' foi inicialmente encontrada na linha %d." #: ../src/common/fileconf.cpp:652 #, c-format msgid "file '%s', line %d: value for immutable key '%s' ignored." msgstr "ficheiro '%s', linha %d: valor para chave imutável '%s' ignorado." #: ../src/common/fileconf.cpp:574 #, c-format msgid "file '%s': unexpected character %c at line %d." msgstr "ficheiro '%s': caracter inesperado %c na linha %d." #: ../src/richtext/richtextbuffer.cpp:8358 msgid "files" msgstr "ficheiros" #: ../src/common/datetimefmt.cpp:1919 msgid "first" msgstr "primeiro" #: ../src/html/helpwnd.cpp:1265 msgid "font size" msgstr "tamanho da fonte" #: ../src/common/datetimefmt.cpp:1932 msgid "fourteenth" msgstr "décimo quarto" #: ../src/common/datetimefmt.cpp:1922 msgid "fourth" msgstr "quarto" #: ../src/common/appbase.cpp:695 msgid "generate verbose log messages" msgstr "gerar mensagens de registo verbosas" #: ../src/richtext/richtextbuffer.cpp:12212 #: ../src/richtext/richtextbuffer.cpp:12322 msgid "image" msgstr "imagem" #: ../src/common/tarstrm.cpp:796 msgid "incomplete header block in tar" msgstr "bloco de cabeçalho incompleto no tar" #: ../src/common/xtixml.cpp:489 msgid "incorrect event handler string, missing dot" msgstr "" "cadeia de caracteres de manuseamento de eventos incorrecta, falta um ponto" #: ../src/common/tarstrm.cpp:1381 msgid "incorrect size given for tar entry" msgstr "tamanho incorrecto dado a entrada do tar" #: ../src/common/tarstrm.cpp:993 msgid "invalid data in extended tar header" msgstr "dados inválidos no cabeçalho tar estendido" #: ../src/generic/logg.cpp:1050 msgid "invalid message box return value" msgstr "valor de retorno de caixa de diálogo inválido" #: ../src/common/zipstrm.cpp:1445 msgid "invalid zip file" msgstr "ficheiro zip inválido" #: ../src/common/fontcmn.cpp:983 msgid "italic" msgstr "itálico" #: ../src/common/fontcmn.cpp:973 msgid "light" msgstr "leve" #: ../src/common/intl.cpp:293 #, c-format msgid "locale '%s' cannot be set." msgstr "localização '%s' não pode ser definida." #: ../src/common/datetimefmt.cpp:2092 msgid "midnight" msgstr "meia noite" #: ../src/common/datetimefmt.cpp:1937 msgid "nineteenth" msgstr "décimo nono" #: ../src/common/datetimefmt.cpp:1927 msgid "ninth" msgstr "nono" #: ../src/msw/dde.cpp:1119 msgid "no DDE error." msgstr "sem erro DDE." #: ../src/html/chm.cpp:327 msgid "no error" msgstr "sem erro" #: ../src/dfb/fontmgr.cpp:174 #, c-format msgid "no fonts found in %s, using builtin font" msgstr "" #: ../src/html/helpdata.cpp:655 msgid "noname" msgstr "sem nome" #: ../src/common/datetimefmt.cpp:2091 msgid "noon" msgstr "meio-dia" #: ../src/richtext/richtextstyles.cpp:779 #, fuzzy msgid "normal" msgstr "Normal" #: ../src/gtk/print.cpp:1218 ../src/gtk/print.cpp:1323 msgid "not implemented" msgstr "" #: ../src/common/cmdline.cpp:1315 msgid "num" msgstr "num" #: ../src/common/xtixml.cpp:259 msgid "objects cannot have XML Text Nodes" msgstr "os objectos não podem ter TextNodes XML" #: ../src/html/chm.cpp:339 msgid "out of memory" msgstr "memória esgotada" #: ../src/richtext/richtextsizepage.cpp:340 #: ../src/richtext/richtextsizepage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:401 #: ../src/richtext/richtextsizepage.cpp:428 #: ../src/richtext/richtextsizepage.cpp:455 #: ../src/richtext/richtextsizepage.cpp:482 #: ../src/richtext/richtextsizepage.cpp:556 #: ../src/richtext/richtextsizepage.cpp:591 #: ../src/richtext/richtextsizepage.cpp:626 #: ../src/richtext/richtextsizepage.cpp:661 msgid "percent" msgstr "" #: ../src/common/debugrpt.cpp:519 msgid "process context description" msgstr "descrição de contexto do processo" #: ../src/richtext/richtextfontpage.cpp:186 #: ../src/richtext/richtextfontpage.cpp:189 msgid "pt" msgstr "" #: ../src/richtext/richtextfontpage.cpp:187 #: ../src/richtext/richtextborderspage.cpp:279 #: ../src/richtext/richtextborderspage.cpp:281 #: ../src/richtext/richtextborderspage.cpp:282 #: ../src/richtext/richtextborderspage.cpp:309 #: ../src/richtext/richtextborderspage.cpp:311 #: ../src/richtext/richtextborderspage.cpp:312 #: ../src/richtext/richtextborderspage.cpp:339 #: ../src/richtext/richtextborderspage.cpp:341 #: ../src/richtext/richtextborderspage.cpp:342 #: ../src/richtext/richtextborderspage.cpp:369 #: ../src/richtext/richtextborderspage.cpp:371 #: ../src/richtext/richtextborderspage.cpp:372 #: ../src/richtext/richtextborderspage.cpp:423 #: ../src/richtext/richtextborderspage.cpp:425 #: ../src/richtext/richtextborderspage.cpp:426 #: ../src/richtext/richtextborderspage.cpp:453 #: ../src/richtext/richtextborderspage.cpp:455 #: ../src/richtext/richtextborderspage.cpp:456 #: ../src/richtext/richtextborderspage.cpp:483 #: ../src/richtext/richtextborderspage.cpp:485 #: ../src/richtext/richtextborderspage.cpp:486 #: ../src/richtext/richtextborderspage.cpp:513 #: ../src/richtext/richtextborderspage.cpp:515 #: ../src/richtext/richtextborderspage.cpp:516 #: ../src/richtext/richtextmarginspage.cpp:201 #: ../src/richtext/richtextmarginspage.cpp:203 #: ../src/richtext/richtextmarginspage.cpp:204 #: ../src/richtext/richtextmarginspage.cpp:226 #: ../src/richtext/richtextmarginspage.cpp:228 #: ../src/richtext/richtextmarginspage.cpp:229 #: ../src/richtext/richtextmarginspage.cpp:249 #: ../src/richtext/richtextmarginspage.cpp:251 #: ../src/richtext/richtextmarginspage.cpp:252 #: ../src/richtext/richtextmarginspage.cpp:274 #: ../src/richtext/richtextmarginspage.cpp:276 #: ../src/richtext/richtextmarginspage.cpp:277 #: ../src/richtext/richtextmarginspage.cpp:315 #: ../src/richtext/richtextmarginspage.cpp:317 #: ../src/richtext/richtextmarginspage.cpp:318 #: ../src/richtext/richtextmarginspage.cpp:340 #: ../src/richtext/richtextmarginspage.cpp:342 #: ../src/richtext/richtextmarginspage.cpp:343 #: ../src/richtext/richtextmarginspage.cpp:363 #: ../src/richtext/richtextmarginspage.cpp:365 #: ../src/richtext/richtextmarginspage.cpp:366 #: ../src/richtext/richtextmarginspage.cpp:388 #: ../src/richtext/richtextmarginspage.cpp:390 #: ../src/richtext/richtextmarginspage.cpp:391 #: ../src/richtext/richtextsizepage.cpp:338 #: ../src/richtext/richtextsizepage.cpp:341 #: ../src/richtext/richtextsizepage.cpp:342 #: ../src/richtext/richtextsizepage.cpp:372 #: ../src/richtext/richtextsizepage.cpp:375 #: ../src/richtext/richtextsizepage.cpp:376 #: ../src/richtext/richtextsizepage.cpp:399 #: ../src/richtext/richtextsizepage.cpp:402 #: ../src/richtext/richtextsizepage.cpp:403 #: ../src/richtext/richtextsizepage.cpp:426 #: ../src/richtext/richtextsizepage.cpp:429 #: ../src/richtext/richtextsizepage.cpp:430 #: ../src/richtext/richtextsizepage.cpp:453 #: ../src/richtext/richtextsizepage.cpp:456 #: ../src/richtext/richtextsizepage.cpp:457 #: ../src/richtext/richtextsizepage.cpp:480 #: ../src/richtext/richtextsizepage.cpp:483 #: ../src/richtext/richtextsizepage.cpp:484 #: ../src/richtext/richtextsizepage.cpp:554 #: ../src/richtext/richtextsizepage.cpp:557 #: ../src/richtext/richtextsizepage.cpp:558 #: ../src/richtext/richtextsizepage.cpp:589 #: ../src/richtext/richtextsizepage.cpp:592 #: ../src/richtext/richtextsizepage.cpp:593 #: ../src/richtext/richtextsizepage.cpp:624 #: ../src/richtext/richtextsizepage.cpp:627 #: ../src/richtext/richtextsizepage.cpp:628 #: ../src/richtext/richtextsizepage.cpp:659 #: ../src/richtext/richtextsizepage.cpp:662 #: ../src/richtext/richtextsizepage.cpp:663 msgid "px" msgstr "" #: ../src/common/accelcmn.cpp:188 #, fuzzy msgid "rawctrl" msgstr "ctrl" #: ../src/html/chm.cpp:333 msgid "read error" msgstr "erro de leitura" #: ../src/common/zipstrm.cpp:1882 #, c-format msgid "reading zip stream (entry %s): bad crc" msgstr "a ler corrente de dados zip (entrada %s): mau crc" #: ../src/common/zipstrm.cpp:1877 #, c-format msgid "reading zip stream (entry %s): bad length" msgstr "a ler corrente de dados zip (entrada %s): mau comprimento" #: ../src/msw/dde.cpp:1162 msgid "reentrancy problem." msgstr "problema recursivo." #: ../src/common/datetimefmt.cpp:1920 msgid "second" msgstr "segundo" #: ../src/html/chm.cpp:337 msgid "seek error" msgstr "erro de pesquisa" #: ../src/common/datetimefmt.cpp:1935 msgid "seventeenth" msgstr "décimo sétimo" #: ../src/common/datetimefmt.cpp:1925 msgid "seventh" msgstr "sétimo" #: ../src/common/accelcmn.cpp:186 msgid "shift" msgstr "deslocar" #: ../src/common/appbase.cpp:685 msgid "show this help message" msgstr "mostra esta mensagem de ajuda" #: ../src/common/datetimefmt.cpp:1934 msgid "sixteenth" msgstr "décimo sexto" #: ../src/common/datetimefmt.cpp:1924 msgid "sixth" msgstr "sexto" #: ../src/common/appcmn.cpp:227 msgid "specify display mode to use (e.g. 640x480-16)" msgstr "especificar modo de ecrã a utilizar (ex: 640x480-16)" #: ../src/common/appcmn.cpp:213 msgid "specify the theme to use" msgstr "especifica o tema a utilizar" #: ../src/richtext/richtextbuffer.cpp:8876 #, fuzzy msgid "standard/circle" msgstr "Standard" #: ../src/richtext/richtextbuffer.cpp:8877 msgid "standard/circle-outline" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8879 msgid "standard/diamond" msgstr "" #: ../src/richtext/richtextbuffer.cpp:8878 #, fuzzy msgid "standard/square" msgstr "Standard" #: ../src/richtext/richtextbuffer.cpp:8880 msgid "standard/triangle" msgstr "" #: ../src/common/zipstrm.cpp:1782 msgid "stored file length not in Zip header" msgstr "guardado tamanho do ficheiro não no cabeçalho Zip" #: ../src/common/cmdline.cpp:1311 msgid "str" msgstr "str" #: ../src/common/fontcmn.cpp:794 ../src/common/fontcmn.cpp:969 msgid "strikethrough" msgstr "" #: ../src/common/tarstrm.cpp:1003 ../src/common/tarstrm.cpp:1025 #: ../src/common/tarstrm.cpp:1507 ../src/common/tarstrm.cpp:1529 msgid "tar entry not open" msgstr "entrada tar não aberta" #: ../src/common/datetimefmt.cpp:1928 msgid "tenth" msgstr "décimo" #: ../src/msw/dde.cpp:1126 msgid "the response to the transaction caused the DDE_FBUSY bit to be set." msgstr "a resposta à transacção causou a definição do bit DDE_FBUSY." #: ../src/common/datetimefmt.cpp:1921 msgid "third" msgstr "terceiro" #: ../src/common/datetimefmt.cpp:1931 msgid "thirteenth" msgstr "décimo terceiro" #: ../src/common/datetimefmt.cpp:1725 msgid "today" msgstr "hoje" #: ../src/common/datetimefmt.cpp:1727 msgid "tomorrow" msgstr "amanhã" #: ../src/common/fileconf.cpp:1979 #, c-format msgid "trailing backslash ignored in '%s'" msgstr "" #: ../src/gtk/aboutdlg.cpp:218 msgid "translator-credits" msgstr "créditos dos tradutores" #: ../src/common/datetimefmt.cpp:1930 msgid "twelfth" msgstr "décimo segundo" #: ../src/common/datetimefmt.cpp:1938 msgid "twentieth" msgstr "vigésimo" #: ../src/common/fontcmn.cpp:789 ../src/common/fontcmn.cpp:965 msgid "underlined" msgstr "sublinhado" #: ../src/common/fileconf.cpp:2014 #, c-format msgid "unexpected \" at position %d in '%s'." msgstr "\" inesperado na posição %d em '%s'." #: ../src/common/tarstrm.cpp:1045 msgid "unexpected end of file" msgstr "fim de ficheiro inesperado" #: ../src/generic/progdlgg.cpp:399 ../src/common/tarstrm.cpp:371 #: ../src/common/tarstrm.cpp:394 ../src/common/tarstrm.cpp:425 msgid "unknown" msgstr "desconhecido" #: ../src/common/xtixml.cpp:253 #, c-format msgid "unknown class %s" msgstr "classe %s desconhecida" #: ../src/common/regex.cpp:261 ../src/html/chm.cpp:351 msgid "unknown error" msgstr "erro desconhecido" #: ../src/msw/dialup.cpp:490 #, c-format msgid "unknown error (error code %08x)." msgstr "erro desconhecido ( código de erro %08x)." #: ../src/msw/wince/filefnwce.cpp:172 msgid "unknown seek origin" msgstr "origem de pesquisa desconhecida" #: ../src/common/fmapbase.cpp:834 #, c-format msgid "unknown-%d" msgstr "desconhecido %d" #: ../src/common/docview.cpp:507 msgid "unnamed" msgstr "sem nome" #: ../src/common/docview.cpp:1606 #, c-format msgid "unnamed%d" msgstr "sem nome%d" #: ../src/common/zipstrm.cpp:1796 ../src/common/zipstrm.cpp:2184 msgid "unsupported Zip compression method" msgstr "método de compressão Zip não suportado" #: ../src/common/translation.cpp:1883 #, c-format msgid "using catalog '%s' from '%s'." msgstr "a utilizar catálogo '%s' de '%s'." #: ../src/html/chm.cpp:335 msgid "write error" msgstr "erro de escrita" #: ../src/common/time.cpp:318 msgid "wxGetTimeOfDay failed." msgstr "falhou o wxGetTimeOfDay." #: ../src/gtk/print.cpp:987 msgid "wxPrintout::GetPageInfo gives a null maxPage." msgstr "" #: ../src/osx/carbon/dataview.cpp:1303 msgid "wxWidget control pointer is not a data view pointer" msgstr "" #: ../src/osx/carbon/dataview.cpp:907 #, fuzzy msgid "wxWidget's control not initialized." msgstr "Não foi possível inicializar o ecrã." #: ../src/motif/app.cpp:245 #, c-format msgid "wxWidgets could not open display for '%s': exiting." msgstr "wxWidgets não foi possível abrir ecrã para '%s': a sair." #: ../src/x11/app.cpp:164 msgid "wxWidgets could not open display. Exiting." msgstr "wxWidgets não foi possível abrir o ecrã. A sair." #: ../src/richtext/richtextsymboldlg.cpp:434 msgid "xxxx" msgstr "xxxx" #: ../src/common/datetimefmt.cpp:1726 msgid "yesterday" msgstr "ontem" #: ../src/common/zstream.cpp:251 ../src/common/zstream.cpp:426 #, c-format msgid "zlib error %d" msgstr "erro zlib %d" #: ../src/richtext/richtextliststylepage.cpp:496 #: ../src/richtext/richtextbulletspage.cpp:301 msgid "~" msgstr "~" #~ msgid "Print preview" #~ msgstr "Antevisão de impressão" #, fuzzy #~ msgid "&Preview..." #~ msgstr " Antevisão" #, fuzzy #~ msgid "Preview..." #~ msgstr " Antevisão" #, fuzzy #~ msgid "The vertical offset relative to the paragraph." #~ msgstr "O estilo pré-definido para o próximo parágrafo." #~ msgid "&Save..." #~ msgstr "&Guardar..." #~ msgid "About " #~ msgstr "Sobre " #~ msgid "All files (*.*)|*" #~ msgstr "Todos os ficheiros (*.*)|*" #~ msgid "Cannot initialize SciTech MGL!" #~ msgstr "Não foi possível inicializar o SciTech MGL!" #~ msgid "Cannot initialize display." #~ msgstr "Não foi possível inicializar o ecrã." #~ msgid "Cannot start thread: error writing TLS" #~ msgstr "Não foi possível iniciar a thread: erro ao escrever o TLS" #~ msgid "Close\tAlt-F4" #~ msgstr "Fechar\tAlt+F4" #~ msgid "Couldn't create cursor." #~ msgstr "Não foi possível criar um cursor." #~ msgid "Directory '%s' doesn't exist!" #~ msgstr "O directório '%s' não existe!" #~ msgid "File %s does not exist." #~ msgstr "Ficheiro %s não existe." #~ msgid "Mode %ix%i-%i not available." #~ msgstr "Modo %ix%i-%i não disponível." #~ msgid "Paper Size" #~ msgstr "Tamanho do Papel" #~ msgid "%.*f GB" #~ msgstr "%.*f GB" #~ msgid "%.*f MB" #~ msgstr "%.*f MB" #~ msgid "%.*f TB" #~ msgstr "%.*f TB" #~ msgid "%.*f kB" #~ msgstr "%.*f kB" #, fuzzy #~ msgid "%s" #~ msgstr "%s B" #~ msgid "%s B" #~ msgstr "%s B" #~ msgid "&Goto..." #~ msgstr "&Ir para..." #~ msgid "<<" #~ msgstr "<<" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">>|" #~ msgstr ">>|" #~ msgid "Archive doesnt contain #SYSTEM file" #~ msgstr "O arquivo não contém o ficheiro #SYSTEM" #~ msgid "BIG5" #~ msgstr "BIG5" #~ msgid "Can't check image format of file '%s': file does not exist." #~ msgstr "" #~ "Não foi possível verificar formato da imagem do ficheiro '%s':o ficheiro " #~ "não existe." #~ msgid "Can't load image from file '%s': file does not exist." #~ msgstr "" #~ "Não foi possível carregar imagem do ficheiro '%s': o ficheiro não existe." #~ msgid "Cannot convert dialog units: dialog unknown." #~ msgstr "" #~ "Não foi possível converter unidades de diálogo: diálogo desconhecido." #~ msgid "Cannot convert from the charset '%s'!" #~ msgstr "Não foi possível converter do código de caracteres '%s'!" #~ msgid "Cannot find container for unknown control '%s'." #~ msgstr "" #~ "Não foi possível encontrar o recipiente para controlo desconhecido '%s'." #~ msgid "Cannot find font node '%s'." #~ msgstr "Não foi possível encontrar o nodo de fonte '%s'." #~ msgid "Cannot open file '%s'." #~ msgstr "Não foi possível abrir o ficheiro '%s'." #~ msgid "Cannot parse coordinates from '%s'." #~ msgstr "Não foi possível analisar gramaticalmente coordenadas de '%s'." #~ msgid "Cannot parse dimension from '%s'." #~ msgstr "Não foi possível analisar gramaticalmente dimensões de '%s'." #~ msgid "Cant create the thread event queue" #~ msgstr "Não foi possível criar a fila de eventos da thread" #~ msgid "Click to cancel this window." #~ msgstr "Clique para cancelar esta janela." #~ msgid "Click to confirm your selection." #~ msgstr "Clique para confirmar a sua selecção." #~ msgid "Could not unlock mutex" #~ msgstr "Não foi possível desbloquear a mutex" #~ msgid "Error while waiting on semaphore" #~ msgstr "Erro durante a espera de um semáforo" #, fuzzy #~ msgid "Failed to connect to session manager: %s" #~ msgstr "Falha ao %s a ligação telefónica: %s" #~ msgid "Failed to create a status bar." #~ msgstr "Falha de criação de barra de estado." #~ msgid "Failed to register OpenGL window class." #~ msgstr "Falha ao registar classe de janela OpenGL." #~ msgid "Fatal error" #~ msgstr "Erro Fatal" #~ msgid "Fatal error: " #~ msgstr "Erro Fatal: " #~ msgid "GB-2312" #~ msgstr "GB-2312" #~ msgid "Go forward to the next HTML page" #~ msgstr "Ir para a página HTML seguinte" #~ msgid "Goto Page" #~ msgstr "Ir para a Página" #, fuzzy #~ msgid "" #~ "HTML pagination algorithm generated more than the allowed maximum number " #~ "of pages and it can't continue any longer!" #~ msgstr "" #~ "O algoritmo de paginação HTML gerou mais do que o número máximo permitido " #~ "de páginas e pode continuar ainda mais!" #~ msgid "Help : %s" #~ msgstr "Ajuda : %s" #~ msgid "I64" #~ msgstr "I64" #~ msgid "Internal error, illegal wxCustomTypeInfo" #~ msgstr "Erro Interno, wxCustomTypeInfo ilegal" #~ msgid "Invalid XRC resource '%s': doesn't have root node 'resource'." #~ msgstr "Recurso inválido de XRC '%s': não tem recursos de root." #~ msgid "No handler found for XML node '%s', class '%s'!" #~ msgstr "Não foi encontrado um manuseador para o nó XML '%s', classe '%s'!" #~ msgid "No image handler for type %ld defined." #~ msgstr "Não existe um manuseador de imagem para o tipo %ld definido." #, fuzzy #~ msgid "Owner not initialized." #~ msgstr "Não foi possível inicializar o ecrã." #, fuzzy #~ msgid "Passed item is invalid." #~ msgstr "'%s' é inválido" #~ msgid "Passing a already registered object to SetObjectName" #~ msgstr "A passar um objecto já registado para SetObjectName" #~ msgid "Preparing help window..." #~ msgstr "A preparar janela de ajuda..." #~ msgid "Program aborted." #~ msgstr "Programa interrompido." #~ msgid "Referenced object node with ref=\"%s\" not found!" #~ msgstr "Nó de objecto referenciado com ref=\"%s\" não encontrado!" #~ msgid "Resource files must have same version number!" #~ msgstr "Ficheiros de recurso devem ter a mesma versão!" #~ msgid "SHIFT-JIS" #~ msgstr "SHIFT-JIS" #~ msgid "Search!" #~ msgstr "Procurar!" #~ msgid "Sorry, could not open this file for saving." #~ msgstr "Lamento, não é possível abrir este ficheiro para escrita." #~ msgid "Sorry, could not save this file." #~ msgstr "Lamento, não foi possível gravar este ficheiro." #~ msgid "Sorry, print preview needs a printer to be installed." #~ msgstr "" #~ "Lamento, a antevisão de impressão necessita de uma impressora instalada." #~ msgid "Status: " #~ msgstr "Estado: " #~ msgid "" #~ "Streaming delegates for not already streamed objects not yet supported" #~ msgstr "" #~ "Delegações de 'streaming' para objectos ainda não 'streamed' não é ainda " #~ "suportado" #~ msgid "Subclass '%s' not found for resource '%s', not subclassing!" #~ msgstr "" #~ "Sub-Classe '%s' não encontrada para o recurso '%s', a sub-classe não é " #~ "criada!" #~ msgid "TIFF library error." #~ msgstr "Erro de livraria TIFF." #~ msgid "TIFF library warning." #~ msgstr "Aviso de livraria TIFF." #~ msgid "" #~ "The file '%s' couldn't be opened.\n" #~ "It has been removed from the most recently used files list." #~ msgstr "" #~ "O ficheiro '%s' não pode ser aberto.\n" #~ "Este foi removido da lista de ficheiros usados mais recentemente." #~ msgid "The path '%s' contains too many \"..\"!" #~ msgstr "O caminho '%s' contém demasiados \"..\"!" #~ msgid "Trying to solve a NULL hostname: giving up" #~ msgstr "Tentativa de resolver um nome de computador NULL: a desistir" #~ msgid "Unknown style flag " #~ msgstr "Bandeira de estilo desconhecida " #~ msgid "Warning" #~ msgstr "Aviso" #~ msgid "Windows 2000 (build %lu" #~ msgstr "Windows 2000 (build %lu" #~ msgid "XRC resource '%s' (class '%s') not found!" #~ msgstr "XRC recurso '%s' (classe '%s') não encontrada!" #~ msgid "XRC resource: Cannot create animation from '%s'." #~ msgstr "Recurso XRC: Não é possível criar animação a partir de '%s'." #~ msgid "XRC resource: Cannot create bitmap from '%s'." #~ msgstr "Recurso XRC: Não é possível criar bitmap a partir de '%s'." #, fuzzy #~ msgid "" #~ "XRC resource: Incorrect colour specification '%s' for attribute '%s'." #~ msgstr "" #~ "Recurso XRC: Especificação incorrecta de cor '%s' para a propriedade '%s'." #~ msgid "[EMPTY]" #~ msgstr "[VAZIO]" #~ msgid "catalog file for domain '%s' not found." #~ msgstr "ficheiro de catálogo para o domínio '%s' não foi encontrado." #~ msgid "delegate has no type info" #~ msgstr "delegado não tem informação de tipo" #~ msgid "encoding %i" #~ msgstr "a codificar %i" #~ msgid "looking for catalog '%s' in path '%s'." #~ msgstr "a localizar catálogo '%s' no caminho '%s'." #~ msgid "wxRichTextFontPage" #~ msgstr "wxRichTextFontPage" #~ msgid "wxSearchEngine::LookFor must be called before scanning!" #~ msgstr "wxSearchEngine::LookFor deve ser chamado antes do rastreio!" #~ msgid "wxSocket: invalid signature in ReadMsg." #~ msgstr "wxSocket: assinatura inválida em ReadMsg." #~ msgid "wxSocket: unknown event!." #~ msgstr "wxSocket: evento desconhecido!." #~ msgid "|<<" #~ msgstr "|<<" #~ msgid "\t%s: %s\n" #~ msgstr "\t%s: %s\n" #~ msgid " Couldn't create the UnicodeConverter" #~ msgstr " Não foi possível criar o UnicodeConverter" #~ msgid "#define %s must be an integer." #~ msgstr "#define %s tem de ser um inteiro." #~ msgid "%s not a bitmap resource specification." #~ msgstr "%s não é uma especificação de recurso bitmap." #~ msgid "%s not an icon resource specification." #~ msgstr "%s não é uma especificação de recurso de ícone." #~ msgid "%s: ill-formed resource file syntax." #~ msgstr "%s sintaxe de ficheiro de recurso mal formado." #~ msgid "&Open" #~ msgstr "&Abrir" #~ msgid "&Print" #~ msgstr "&Imprimir" #~ msgid "*** A debug report has been generated\n" #~ msgstr "*** Foi gerado um relatório de depuração de erros\n" #~ msgid "*** It can be found in \"%s\"\n" #~ msgstr "***Pode ser encontrado em \"%s\"\n" #~ msgid "" #~ ", expected static, #include or #define\n" #~ "while parsing resource." #~ msgstr "" #~ ", esperáva-se static, #include ou #define\n" #~ "enquanto se analisou gramaticalmente o recurso." #~ msgid "Bitmap resource specification %s not found." #~ msgstr "Especificação de recursos Bitmap %s não encontrada." #~ msgid "Closes the dialog without inserting a symbol." #~ msgstr "Fecha a caixa de diáogo sem inserir símbolo." #~ msgid "" #~ "Could not resolve control class or id '%s'. Use (non-zero) integer " #~ "instead\n" #~ " or provide #define (see manual for caveats)" #~ msgstr "" #~ "Não foi possível resolver controlo de classe ou id '%s'. Use um inteiro " #~ "(não zero)\n" #~ " ou coloque um #define (ver manual para os detalhes)" #~ msgid "" #~ "Could not resolve menu id '%s'. Use (non-zero) integer instead\n" #~ "or provide #define (see manual for caveats)" #~ msgstr "" #~ "Não foi possível resolver menu id '%s'. Use um inteiro (não zero)\n" #~ "ou coloque um #define (ver manual para os detalhes)" #~ msgid "Couldn't end the context on the overlay window" #~ msgstr "Não foi possível terminar o contexto na janela de sobreposição" #~ msgid "Expected '*' while parsing resource." #~ msgstr "Esperado '*' durante a interpretação do recurso." #~ msgid "Expected '=' while parsing resource." #~ msgstr "Esperado '=' durante a interpretação do recurso." #~ msgid "Expected 'char' while parsing resource." #~ msgstr "Esperado 'char' durante a interpretação do recurso." #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "Falha ao encontrar recurso XBM %s.\n" #~ "Esqueceu-se de usar wxResourceLoadBitmapData?" #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadIconData?" #~ msgstr "" #~ "Falha ao encontrar recurso XBM %s.\n" #~ "Esqueceu-se de usar wxResourceLoadIconData?" #~ msgid "" #~ "Failed to find XPM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "Falha ao encontrar recurso XBM %s.\n" #~ "Esqueceu-se de usar wxResourceLoadBitmapData?" #~ msgid "Failed to get clipboard data." #~ msgstr "Falha na obtenção de dados da área de transferência." #~ msgid "Failed to load shared library '%s' Error '%s'" #~ msgstr "Falha na abertura da livraria partilhada '%s' Erro de '%s'" #~ msgid "Found " #~ msgstr "Encontrado " #~ msgid "Icon resource specification %s not found." #~ msgstr "Especificação de recurso de ícone %s não encontrado." #~ msgid "Ill-formed resource file syntax." #~ msgstr "Sintaxe do ficheiro de recurso mal formado." #~ msgid "Inserts the chosen symbol." #~ msgstr "Insere o símbolo escolhido." #~ msgid "Long Conversions not supported" #~ msgstr "Conversões longas não suportadas" #~ msgid "No XPM icon facility available!" #~ msgstr "Nenhuma funcionalidade de ícone XPM disponível!" #~ msgid "Option '%s' requires a value, '=' expected." #~ msgstr "A opção '%s' requer um valor, '=' esperado." #~ msgid "Select all" #~ msgstr "Seleccionar todos" #~ msgid "" #~ "Sorry, docking is not supported for ports other than wxMSW, wxMac and " #~ "wxGTK" #~ msgstr "" #~ "Lamento, docking não é suportado por plataformas que não sejam wxMSW, " #~ "wxMac e wxGTK" #~ msgid "String conversions not supported" #~ msgstr "Não são suportadas conversões de cadeias de caracteres" #~ msgid "Unexpected end of file while parsing resource." #~ msgstr "" #~ "Fim de ficheiro inesperado enquanto se analisava gramaticalmente o " #~ "recurso." #~ msgid "Unrecognized style %s while parsing resource." #~ msgstr "" #~ "Estilo %s não reconhecido enquanto se analisava gramaticalmente o recurso." #~ msgid "Video Output" #~ msgstr "Saída de Vídeo" #~ msgid "Warning: attempt to remove HTML tag handler from empty stack." #~ msgstr "" #~ "Aviso: tentativa de remover um manuseador de 'tag HTML' de uma pilha " #~ "vazia." #~ msgid "establish" #~ msgstr "estabelecer" #~ msgid "initiate" #~ msgstr "iniciar" #~ msgid "invalid eof() return value." #~ msgstr "valor inválido de retorno de eof()." #~ msgid "unknown line terminator" #~ msgstr "terminador de linha desconhecido" #~ msgid "writing" #~ msgstr "a escrever" #~ msgid "wxRichTextBulletsPage" #~ msgstr "wxRichTextBulletsPage" #~ msgid "wxRichTextListStylePage" #~ msgstr "wxRichTextListStylePage" #~ msgid "wxRichTextStylePage" #~ msgstr "wxRichTextStylePage" ginkgocadx-3.8.7/cadxcore/lang/pt_BR/000077500000000000000000000000001314736454600174035ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/pt_BR/cadxcore.mo000066400000000000000000000775371314736454600215530ustar00rootroot00000000000000 A$F$;H$P$$6$Q+%/}%I%%<&1S&#&#&&6&'<7't' '3'4':(?(C([(j( y((( ((((((()#)+)3) :)E)Z)`)e)k)q)w)))5)C)** *1* E* P* [* f* q* |* * * *********+,+E+L+P+Y+t++ + ++ +#+++++3(, \,},, ,,,,, ,,, ,,,-+-*H-s-z- - - - -%-- -..%. -.;.U.g... . .".#. / //#/5/.G/v//-/////0'070#W0{0000%0&0141J1 a1o1w1}1 181 11 1 1 22+2 02>2 C2M2S2[2 p2~2 2222 2 2 22"3'373&@3g3333333344 4 4'474?4S4l4 ~4444"445 5?5W5q55$55'556')6&Q6 x666616 727#D7h77=7#77808+78Qc8 8 88888 9#979%L9 r999999 9::f*:=:::;$;?;F;+_;; @< L<X< `<<<< <a<"='=(=7 >BD>B>>>>?$? )? 4?@? T?`?g? l?v??? ? ? ? ? ? ? @ @ @ "@-@6@9@T@d@@@AA"7A1ZA"A'A%AAB6BNB_BnB sB }BBBBBBB BBB CC$C 4C >CKCcC tC~C CC"C&CCH D%TD@zD%DADT#E%xEE EE EEE F,FDF XFdFFsFF FFF F G.GBG UGcG,iGGGGG%GHGHGWHHH H!H(H0I AIKI MIZIuII II IIPI&,JSJJ!KMK8L'PL'xLL"L-L M)M .M8M;MAMQMVMVeMVO;PMOP#PHPf QFqQBQQ;R1VRRRR@RS98SrS S9S9SGT[T _T jTwTTTTTTT!T U*U3UEUWU `UjU rUUUUUUU U%UU6UJ%VpVtVvVV V V V V V V V VV WWWW+W_U_=f___ _ _ ___`` `$`*`2` G`U`]`l`}`` ````*` a a1+a#]aaaaaaaaa b bb-bCbJb_b|b'b bbb,bc 0c+Qc}cccc0cd.'dVdod%d'dddee5/eee;te%eee?f'Hfpfff.fFf g(g:g?gSgfg}ggg'g g#gh9hPhgh hhhhQAi,i#i*i'j 7j#Ej3ijj ak lkxk#~kkkk k_kIl%l/mIKmYmWmGn`nynnnn nnno o oo%B5R:sh FN"V ;wHKzZH^xeB}l"igpj`S!oO~Cqc1 -ks9f' iyQVD$/4OW?+m(GYt&`.rk/0>*UIf 6QcMN3|vAJ=9Um an7j^R T$YDXE;a'TZ _#~!FS]q}2@u * Concatenation of patient name and surnames can't be higher than 61. * The format of the height in centimeters is not correct. * The format of the weight is not correct. Valid range is between 0 and 400 Kg. * The patient ID is required. * The patient's birth date is after the date of study - If you want to use SSL/TLS you have to set a valid certificate and private key - Maximum length of local AET is 16 characters - The PDU size should be greater than or equal to zero (default = 16384) - The local port is too large - The local port must be a positive short integer (16 bits) - The maximum length of the AET is 16 characters - The maximum value of the PDU is - The minimum value of the PDU is - The port is too large - The port must be a positive short integer (16 bits) - This PACS id is in use There are %d errors (see log for more detailed description) Would you like to retry? (%d images) . Modality does not exists in model: Add it first. . SOP Class does not exists in model: Add it first. . Transfer Syntax does not exists in model: Add it first. : bytes from a total of doesn't exist from History? not allowed of to to Modality to SOP Class unsupported components with transfer syntax %d results has been found%m/%d/%Y%m/%d/%Y %H:%M:%S%m/%d/%Y 00:00:00&Accept&Cancel&Close&Close all&Delete from history&Edit&End&Exit&File&Help&Next >(ID or medical history number))): Check the configuration and attach it if necessary): Is not a valid HL7 identifier (ie: code^description^namespaceId).../0 running tasks.00/00/0000 00:00:001x1 Layout1x2 Layout2x1 Layout2x2 Layout3x3 Layout4x4 Layout644654645< &Previous@AETAcceptAccession NumberAccession numberAcquireAcquire DICOM filesAcquire a DICOM study from PACSAcquire from DICOM DirAcquire images from PACSActiveAddAdvancedAdvanced Configuration ...Advanced settings...AgeAll patientsAnonymizationAnonymization settingsAnonymizeAnonymous mode (history is cleaned)Any dateApplyAre you sure to delete this file from disk?Are you sure you want to cancel the import process?Are you sure you want to delete AreaArrowAsymmetryAuthenticationAuto calculateAutomatically check for updatesB/WB/W InverseBackBetween:Birth dateCairoCalibrating...Calibration value is too lowCan not upload to the PACS: Can not upload to the PACS: Internal ErrorCancelCardiacCenter (I)Center (M)CentimetersCertificateCertificate to use in this connectionCertificate used by Ginkgo CADxChange ...Change Password ...Change passwordCharsetCheck UpdatesCheck for newest versionsCheck for updatesCheck for updates automaticallyCheck update errorChoose a directoryClean afterClean beforeClean directory after dicomizationClean directory before dicomizationClearClear logCloseClose Ginkgo CADxClose all windowsClose automatically Ginkgo CADx after dicomizeClose this notificationCommentsConfiguration parameters of the local stationConfigure GridConfigure Grid ...Configure locationConfiguring environment ...Confirm PasswordConfirm removalConfirm the removal of the nodeConfirm the removal of the profile Connection test failConnection test successfulContinueCould not find entry pointCould not load extension library fileCould not load library file. Check logCould not write to fileCreating Thumbnail...Creating Thumbnails...Creation DateCreditsDCMTKDICOM (native format)DICOM DirDICOM Dir is the local directory where history is storedDICOM ExportDICOM InspectorDICOM NodeDICOM NodesDICOM nodesDICOM nodes settingsDataData modifiedDateDate TimeDate:DefaultDefault ORU templateDefault valueDeleteDelete WidgetDelete messageDelete selected itemsDemographic dataDescriptionDestinationDestination:Dicomization completeDicomization finished successfullyDicomized filesDistanceDo not warn me again about this updateDon't show this message againDownloadDownload of modality Downloading file %dDownloading file %d/%dDownloading files ...Downloading from PACS...ER7EditEdit ...Edit MessageEdit UserEdit public keyEllipseEmpty configurationEnable TLS configurationEnable http proxyEnable remote PACS configurationEnabledEnter the calibration valueErrorError checking application updatesError connecting to urlError creating database: Error creating history database Error deleting messagesError downloading study: Error editing messageError getting messageError loading DICOM Conformance fileError loading studyError loading study insufficient memoryError loading study.Error loading study: Error loading the study: Internal ErrorError loading the study: Out of memoryError messageError reading history: Error reading the study:Error reading the study: Error reading the study: unsupported pixel formatError savingError sending HL7 message see log for more detailsError sending message. It was sent Error sending message:Error setting TLS layer: Error storing file, check the permissions over the directory.Error uploading the study to PACS: Error validating fieldsError while running thread: Error:Error: PACS entry configuration not found: Errors have occurred when saving the series. Would you like to continue closing? ExceptionsExisting fileExitExit applicationExploring PACS...Exploring directory Exploring directory ...Exploring drives...Export ConfigurationExport has been finished successfullyExport imagesExport successfully completedExporting file %d of %dExporting files...Exporting images ...Exporting series %d of %dExtensionsExtensions settingsExtracting file...Failed to create directory, make sure the path is correct and you have permissions on parent directoryFailed to empty the history, you have to close opened studiesFailed to empty the history: Failed to perform search: Failed to set permissions: Failed to start connectionFemaleFile couldn't be stored File exists Would you like to overwrite it?For large-scale implementation in a homogenous environment, you can specify the following wildcards in the local AET: %IP IP Address %IP n-th Octet (1~4) %HOSTNAME Host Name"Full ScreenFull screenGeneralGeneral configuration parametersGenerating preview...Generating thumbnail ...GetGinkgo CADxGinkgo CADx has detected inactivity and it will be closed in %d seconds. Do you want to continue?Ginkgo CADx has detected more than one removable units, but none of them includes a DICOMDIR at root. Select drive where you want to acquire recursivelyGinkgo CADx is unable to compress from Ginkgo CADx must have at least one user.Ginkgo CADx must restart for the changes to take effectGinkgo CADx must restart for the extensions changes to take effectGinkgo CADx must restart for the permission changes to take effectGinkgo CADx private tagsGinkgo CADx restrictionsGinkgo CADx updatedGinkgo CADx updatesGridGrid ScaleHL7 ServiceHL7 message controlHL7 monitorHeightHideHide GridHide corner annotationsI Accept the licenseI do NOT accept the licenseISO_IR 100ISO_IR 101ISO_IR 109ISO_IR 110ISO_IR 126ISO_IR 127ISO_IR 138ISO_IR 144ISO_IR 148ISO_IR 192ISO_IR 6IdIdentification informationIdentificator *If you accept the terms of the agreement, click "I Accept the license" to continue. You must accept the license to start using Ginkgo CADx.InactiveInternal ErrorInternal errorInternal error checking updatesInternal error during auth processInternal error reading the study, unknown format Internal error reading the study: Internal error while reading the study:Internal error while running thread: Invalid DICOM Conformance fileMax number of tabs openedModality download errorNo results foundOnline supportOpenOpen FileOpen SeriesOpen Series with ..Open Source LicensesOpen...OpenGLOpenSSLOverview data of DICOM filesPACS error: PDU (KB)Proxy settingsResultsReuse connectionServer settingsShow GridShow MessageShow corner annotationsShow full screenShow gridShow on startupStart pageTest connectionThe pdu size is not a valid numberThe selected directory can't be openedThere are this errors: There was an error changing the password. To get more info open the LOG.There was an error creating directoryThere was an error deleting user. To get more info open the LOG.There was an error during exportationThere was an error inserting user. To get more info open the LOG.There was an error reading the directory, make sure you have write permissions on itThis files doesn't have DICOM format:Unable to open modality Unknown errorUnknown protocolUnsaved dataUnsupported protocolUpdate period (days)Upload images to a PACS serverUploading file %d of %dUploading files ...Use SSL/TLSUse by defaultUse default certificate (certificate configured in local AET settings)UserUser NameUser deleted successfullyUser inserted successfullyUser loginUser nameUser name has to contain at least 4 charactersUser name repeatedUser/PasswordUsersUsually due to an error in sending a messageValueVerify client credentialsVerify server credentialsView Full ScreenWarn about newest Ginkgo CADx updatesWarningWarning, to update the directory, you have to close every opened seriesWarning, to update the directory, you must close current opened series.WeightWindow annotationsWorkstationWould you like to overwrite them?Would you like to remove these messages?Would you like to save the changes in the study:WxWidgetsXX axis scaleXML Parser Not Found. Key=XML dicomizationXML parsing internal errorY axis scaleYesYesterdayYou can't remove opened seriesYou have reached maximum number of opened tabs, close some tabs and try it againYou have to set private and public keyYou must configure the local AET, which is used to communicate with the DICOM nodes. The specified port must be opened in the firewall, as it is essential for transfers.You must configure the local AET, which is used to communicate with the PACS server. The specified port must be opened in the firewall, as it is essential for transfers.You must create at least one userYou must define a default PACS in the integration XML or in the settings menuYou must fill both title and location fields to continueYou must fill in all fields to continueYou must fill in name field to continueYou must select an imageYou must select at least one imageYou must select the images you want to importYou must set the main passwordZliball filescmerrorimage_%m-%d-%Y_loadsearch resultsProject-Id-Version: ginkgocadx Report-Msgid-Bugs-To: POT-Creation-Date: 2014-06-11 15:51+0100 PO-Revision-Date: 2014-06-11 15:51+0100 Last-Translator: Carlos Barrales Ruiz Language-Team: Brazilian Portuguese Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 1.6.5 X-Launchpad-Export-Date: 2012-04-24 11:40+0000 X-Poedit-Basepath: . X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,296,-1,-1 X-Poedit-KeywordsList: _;_Std X-Poedit-SourceCharset: utf-8 X-Poedit-SearchPath-0: ..\.. * Concatenação do nome e sobrenome do paciente não pode ultrapassar 61 caracteres. * O formato da altura em centímetros não está correto. * O formato do peso não está correto. A faixa válida é entre 0 e 400 Kg. * É necessário o ID do paciente. * A data de nascimento do paciente é mais recente que a data do estudo Se você deseja utilizar SSL/TLS, você terá que informar um certificado válido e uma chave privada A quantidade máxima de caracteres para AET local é de 16 caracteres O tamanho do PDU deve ser maior ou igual a zero (padrão = 16384) A porta local é muito grande A porta local deve ser um inteiro curto positivo (16 bits) O comprimento máximo do AET é de 16 caracteres O valor máximo do PDU é O valor mínimo do PDU é A porta é muito grande O número da porta deve ser um inteiro positivo curto (16 bits) Este ID de PACS está em uso Existem %d erros (veja o log para descrição detalhada) Gostaria de tentar novamente? (%d imagens) . Modalidade não existe no modelo: Adicione-a primeiro. . Classe SOP não existe no modelo: Adicione-a primeiro. . Sintaxe de transferência não exite no modelo: Adicione-a primeiro. : bytes de não existe from History? não é permitido de para para a modalidade para classe SOP componentes não suportados com a sintaxe de transferência %d resultados foram encontrados%d/%m/%Y%d/%m/%Y %H:%M:%S%d/%m/%Y 00:00:00&Aceitar&Cancelar&Fechar&Fechar todos&Deletar do histórico&Editar&Fim&Sair&Arquivo&Ajuda&Próximo >(ID ou número do histórico médico))): Verifique a configuração e anexe-a se necessário): não é um identificador HL7 válido (ie: code^description^namespaceid).../0 tarefas sendo executadas.00/00/0000 00:00:001x1 Layout1x2 LayoutPlano 2x1Plano 2x2Plano 3x3Plano 4x4644654645< &Anterior@AETAceitarNumero de AcessoNumero de AcessoAdquirirAdquirir arquivos DICOMAcquire a DICOM study from PACSAdquirir de um diretório DICOMAdquirir imagens de um PACSAtivoAdicionarAvançadoConfiguração avançada ...Configurações avançadas...IdadeTodos os pacientesAnonimizaçãoConfigurações de anonimizaçãoDeixar anônimoModo anônimo (histórico será limpo)Qualquer dataAplicarTem certeza que deseja deletar este arquivo do disco?Tem certeza que quer cancelar o processo de importação?Tem certeza que deseja excluir ÁreaSetaAssimetriaAutenticaçãoCalcular automaticamenteChecar por atualizações automaticamenteP/BP/B InversoVoltarEntre:Data de nascimentoCairoCalibrando...Valor de calibração é muito baixoNão foi possível enviar para o PACS: Não foi possível enviar para o PACS: Erro internoCancelarCardiacoCentro (I)Centro (M)CentímetrosCertificadoCertificado para usar nessa conexãoCertificado usado pelo Ginkgo CADxAlterar ...Alterar senha ...Alterar senhaCodificação de caracteresVerificar AtualizaçõesVerificar novas versõesVerificar AtualizaçõesVerificar atualizações automaticamenteErro verificando atualizaçãoEscolha um diretórioLimpar depoisLimpar antesLimpar diretório após dicomizaçãoLimpar diretório antes da dicomizaçãoLimparLimpar logFecharFechar Ginkgo CADxFechar todas as janelasFechar automaticamente Ginkgo CADx após dicomizaçãoFechar esta notificaçãoComentáriosParâmetros de configuração da estação localConfigurar GradeConfigurar Grade ...Configurar localizaçãoConfigurando ambiente ...Confirmar SenhaConfirmar remoçãoConfirm the removal of the nodeConfirmar remoção do perfil Falha na conexão de testeConexão de teste bem sucedidaAvançarNão foi possível encontrar ponto de entradaNão foi possível carregar arquivo da biblioteca de extensão.Não foi possível carregar arquivo da biblioteca. Verifique o logNão foi possível escrever no arquivoCriando Thumbnail...Criando Thumbnails...Data de criaçãoCréditosDCMTKDICOM (formato nativo)Diretório DICOMO diretório DICOM é o local onde o histórico é armazenadoExportar DICOMDICOM InspectorDICOM NodeDICOM NodesDICOM nodesDICOM nodes settingsDadosDados modificadosDataData e HoraData:PadrãoDefault ORU templateValor padrãoExcluirExcluir WidgetExcluir mensagemExcluir itens selecionadosDados demográficosDescriçãoDestinoDestino:Dicomização completaA dicomização foi concluída com sucessoArquivos dicomizadosDistânciaNão me avisar novamente sobre essa atualizaçãoNão exibir esta mensagem novamenteDownloadDownload da modalidade Baixando arquivo %dBaixando arquivo %d/%dBaixando arquivos ...Baixando do PACS...ER7EditarEditar ...Editar MensagemEditar UsuárioEditar chave públicaElipseConfiguração vaziaAtivar configuração do TLSHabilitar proxy HTTPHabilitar configuração remota do PACSHabilitadoInforme o valor de calibraçãoErroErro ao checar atualizações da aplicaçãoErro ao conectar-se a urlErro ao criar o banco de dados: Erro ao criar histórico do banco de dados Erro ao deletar mensagensErro ao baixar estudo: Erro ao editar mensagemErro ao obter mensagemErro ao carregar o arquivo de Conformidade DICOMErro ao carregar estudoErro ao carregar estudo. Memória insuficienteErro ao carregar estudo.Erro ao carregar estudo: Erro ao carregar estudo: Erro InternoErro ao carregar o estudo: Sem memóriaMensagem de erroErro ao ler histórico: Erro ao ler o estudo:Erro ao ler o estudo: Erro ao ler o estudo: Formato de pixel não suportadoErro ao salvarErro ao enviar mensagem HL7. Veja log para maiores detalhesErro ao enviar mensagem. Foi enviada Erro ao enviar mensagem:Erro ao configurar TLS: Erro ao armazenar arquivo, verifique permissões do diretório.Erro ao carregar o estudo para o PACS: Error validating fieldsErro ao rodar a thread: Erro:Erro: Configuração do PACS não encontrada: Erros ocorreram ao salvar as séries. Gostaria de fechar mesmo assim? ExceçõesArquivo existenteSairSair da aplicaçãoExplorando PACS...Explorando diretório Explorando diretório ...Exploring drives...Exportar configuraçãoExportação foi concluída com sucessoExport imagesExportação concluída com sucessoExportando arquivo %d de %dExportando arquivos...Exportando imagens ...Exportando série %d de %dExtençõesConfigurações das extensõesExtracting file...Ocorreu uma falha ao criar o diretório, verifique se o caminho está correto e se você tem permissões no diretório principalNão foi possível esvaziar o histórico, você precisa fechar os estudos abertosOcorreu uma falha ao esvaziar o histórico: Ocorreu uma falha durante a busca: Ocorreu uma falha ao definir permissões: Ocorreu uma falha ao iniciar a conexãoSexo femininoO arquivo não pode ser armazenado O arquivo existe Você gostaria de sobrescrevê-lo?Para implementação em larga-escala em um ambiente homogêneo, você pode especificar os seguintes curingas para o AET local: %IP Endereço IP %IP n-ésimo octeto (1~4) %HOSTNAME hostname"Tela cheiaFull screenGeralParâmetros de configuração geralGerando pré-visualização...Gerando thumbnail ...ObterGinkgo CADxO Ginkgo CADx detectou inatividade e será fechado em %d segundos. Você gostaria de continuar?O Ginkgo CADx detectou mais de uma unidade removível, mas nenhuma delas inclui um DICOMDIR na raiz. Selecione o dispositivo onde você gostaria de adquirir recursivamenteO Ginkgo CADx não pode comprimir de O Ginkgo CADx precisa ter ao menos um usuário.O Ginkgo CADx precisa ser reiniciado para que as mudanças surtam efeito.Ginkgo CADx precisa ser reiniciado para que as alterações nas extensões surtam efeito.O Ginkgo CADx precisa ser reiniciado para que as mudanças de permissão surtam efeito.Ginkgo CADx private tagsGinkgo CADx restrictionsO Ginkgo CADX foi atualizadoAtualizações do Ginkgo CADxGradeEscala da gradeServiço HL7Controle de mensagem do HL7Monitor do HL7AlturaOcultarOcultar gradeOcultar anotações de cantoEu aceito a licençaEu NÃO aceito a licençaISO_IR 100ISO_IR 101SO_IR 109ISO_IR 110ISO_IR 126ISO_IR 127ISO_IR 138ISO_IR 144ISO_IR 148ISO_IR 192ISO_IR 6IdentificadorInformações de identificaçãoIdentificator *Se você aceita os termos do acordo, clique em "Eu aceito a licença" para continuar. Você precisa aceitar a licença para começar a usar o Ginkgo CADx.InactiveErro InternoErro internoErro interno ao verificar atualizaçõesErro interno no processo de autenticaçãoErro interno ao ler o estudo, formato desconhecido Erro interno ao ler o estudo: Erro interno ao ler o estudo:Erro interno ao executar a thread: Arquivo de conformidade DICOM inválidoNúmero máximo de abas abertoErro ao baixar modalidadeNenhum resultado encontradoOnline supportAbrirAbrir arquivoAbrir SériesAbrir Séries com ..Licenças de Código AbertoAbrir...OpenGLOpenSSLOverview data of DICOM filesErro do PACS: PDU (KB)Proxy settingsResultadosReuse connectionServer settingsMostrar GradeMostrar MensagemMostrar anotações de cantoExibir em tela cheiaMostrar gradeExibir ao iniciarPágina inicialTest connectionO tamanho do PDU não é um número válidoO diretório selecionado não pode ser abertoOcorreram os seguintes erros: Ocorreu um erro ao alterar a sua senha. Para obter mais informações, abra o log.Ocorreu um erro ao criar o diretórioOcorreu um erro ao remover o usuário. Para obter mais informações, abra o log.There was an error during exportationOcorreu um erro ao inserir o usuário. Para obter mais informações, abra o log.Ocorreu um erro ao acessar o diretório, verifique se você tem acesso de escrita neleEste arquivo não tem formato DICOM:Não foi possível abrir a modalidade Erro desconhecidoProtocolo desconhecidoDados não salvosProtocolo não suportadoPeríodo de atualização (dias)Enviar imagens para o servidor PACSEnviando arquivo %d de %dEnviando arquivos ...Usar SSL/TLSUsar por padrãoUsar certificado padrão (certificado configurado nas configurações do AET local)UsuárioNome de usuárioUsuário deletado com sucessoUsuário criado com sucessoLogin do usuárioNome de usuárioNome de usuário precisa ter ao menos quatro caracteresNome de usuário repetidoUsuário/SenhaUsuáriosGeralmente devido a um erro no envio de mensagemValorVerificar credenciais de clienteVerificar credenciais do servidorVer em tela-cheiaAvisar sobre novas atualizações do Ginkgo CADxAtençãoAviso, para atualizar o conteúdo do diretório você precisa fechar todas as séries abertasAviso, para atualizar o conteúdo do diretório você precisa fechar séries abertas no momento.PesoAnotações de janelaEstação de TrabalhoVocê gostaria de sobrescrevê-los?Gostaria de remover estas mensagens?Gostaria de salvar as modificações no estudo:WxWidgetsXEscala no eixo XParser XML não encontrado. Chave=Dicomização XMLErro interno na análise XMLEscala no eixo YSimOntemVocê não pode remover séries abertasVocê alcançou o número máximo de abas abertas, feche algumas e tente novamenteVocê precisa configurar uma chave pública e uma privadaVocê precisa configurar o AET local, o qual é usado para se comunicar com os nós DICOM. A porta especificada deve ser liberada no firewall, já que ela é essencial para as transferências.Você precisa configurar o AET local, o qual é usado para se comunicar com o servidor PACS. A porta especificada precisa ser aberta no firewall, já que é essencial para transferências.Você precisa criar ao menos um usuárioVocê precisa definir um PACS padrão no XML de integração ou no menu de configuraçõesVocê precisa preencher os campos título e o local para continuarVocê precisa preencher todos os campos para continuarVocê precisa preencher o campo nome para continuarVocê precisa selecionar uma imagemVocê precisa selecionar ao menos uma imagemVocê precisa selecionar as imagens que você deseja importarVocê precisa escolher a senha principalZlibtodos os arquivoscmerroimagem_%d-%m-%Y_carregarResultados da buscaginkgocadx-3.8.7/cadxcore/lang/pt_BR/cadxcore.po000066400000000000000000006526631314736454600215550ustar00rootroot00000000000000# Brazilian Portuguese translation for ginkgocadx # Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 # This file is distributed under the same license as the ginkgocadx package. # FIRST AUTHOR , 2012. # msgid "" msgstr "" "Project-Id-Version: ginkgocadx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-06-11 15:51+0100\n" "PO-Revision-Date: 2014-06-11 15:51+0100\n" "Last-Translator: Carlos Barrales Ruiz \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" "X-Launchpad-Export-Date: 2012-04-24 11:40+0000\n" "X-Poedit-Basepath: .\n" "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,296,-1,-1\n" "X-Poedit-KeywordsList: _;_Std\n" "X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SearchPath-0: ..\\..\n" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "P/B" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "P/B Inverso" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "Cardiaco" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Red Vessels" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "Hot Metal" msgstr "Tema Metal" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Green" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "GE Color" msgstr "Cor" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PET" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "Assimetria" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "P-Value" msgstr "Valor" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "" #: ..\../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #: ..\../api/dicom/idicomconformance.cpp:214 #: ..\../api/dicom/idicomconformance.cpp:220 #, fuzzy msgid "GIL/DICOM/Conformance" msgstr "Arquivo de conformidade DICOM inválido" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #, fuzzy msgid "Unable to add supported transfer syntax " msgstr " . Sintaxe de transferência não exite no modelo: Adicione-a primeiro." #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid " to SOP Class " msgstr " para classe SOP " #: ..\../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr " . Sintaxe de transferência não exite no modelo: Adicione-a primeiro." #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr " . Classe SOP não existe no modelo: Adicione-a primeiro." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #, fuzzy msgid "Unable to add supported SOP Class " msgstr " . Classe SOP não existe no modelo: Adicione-a primeiro." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid " to Modality " msgstr " para a modalidade " #: ..\../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr " . Modalidade não existe no modelo: Adicione-a primeiro." #: ..\../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "Erro ao carregar o arquivo de Conformidade DICOM" #: ..\../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "Arquivo de conformidade DICOM inválido" #: ..\../api/iannotator.cpp:97 msgid "Slice" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "of" msgstr "" #: ..\../api/iannotator.cpp:97 #, fuzzy msgid "Volume" msgstr "Renderização de volume 3D" #: ..\../api/iannotator.cpp:107 msgid "Voxel:" msgstr "" #: ..\../api/iannotator.cpp:110 msgid "Image without metric information" msgstr "" #: ..\../api/iannotator.cpp:119 msgid "Slice thickness" msgstr "" #: ..\../api/iannotator.cpp:127 #, fuzzy msgid "Slice location" msgstr "Configurar localização" #: ..\../api/iannotator.cpp:139 #, fuzzy msgid "Scale" msgstr "Escala da grade" #: ..\../api/iannotator.cpp:147 #, fuzzy msgid "Right" msgstr "&Direita" #: ..\../api/iannotator.cpp:149 #, fuzzy msgid "Left" msgstr "&Esquerda" #: ..\../api/iannotator.cpp:219 #, fuzzy msgid "Position:" msgstr "A posi��o da tabula��o." #: ..\../api/iannotator.cpp:272 #, fuzzy msgid "Value:" msgstr "Valor" #: ..\../api/iexception.cpp:52 msgid "Exception in component" msgstr "" #: ..\../api/initwx.cpp:439 #, fuzzy msgid "Initializing environment ..." msgstr "Configurando ambiente ..." #: ..\../api/initwx.cpp:446 ..\../api/initwx.cpp:447 ..\../api/initwx.cpp:448 #: ..\../api/initwx.cpp:449 ..\../api/initwx.cpp:450 ..\../api/initwx.cpp:451 #: ..\../api/initwx.cpp:452 ..\../api/initwx.cpp:453 msgid "Ginkgo CADx restrictions" msgstr "Ginkgo CADx restrictions" #: ..\../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "" #: ..\../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "Modo anônimo (histórico será limpo)" #: ..\../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "Número máximo de abas aberto" #: ..\../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "" #: ..\../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "Fechar automaticamente Ginkgo CADx após dicomização" #: ..\../api/initwx.cpp:451 msgid "Export images" msgstr "Export images" #: ..\../api/initwx.cpp:452 msgid "Acquire DICOM files" msgstr "Adquirir arquivos DICOM" #: ..\../api/initwx.cpp:453 #, fuzzy msgid "Import files to DICOM format" msgstr "Este arquivo não tem formato DICOM:" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 #, fuzzy msgid "Online manual" msgstr "Online support" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 #, fuzzy msgid "URL of manual" msgstr "Erro ao conectar-se a url" #: ..\../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "" #: ..\../api/initwx.cpp:459 msgid "Online support" msgstr "Online support" #: ..\../api/initwx.cpp:459 #, fuzzy msgid "URL of online support" msgstr "Online support" #: ..\../api/initwx.cpp:459 #, fuzzy msgid "http://ginkgo-cadx.com/" msgstr "Habilitar proxy HTTP" #: ..\../api/initwx.cpp:460 ..\../api/initwx.cpp:461 #, fuzzy msgid "Program Updates" msgstr "Programa interrompido." #: ..\../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "Avisar sobre novas atualizações do Ginkgo CADx" #: ..\../api/initwx.cpp:461 msgid "Update period (days)" msgstr "Período de atualização (dias)" #: ..\../api/initwx.cpp:462 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "" #: ..\../api/initwx.cpp:462 #, fuzzy msgid "Setup Security" msgstr "Configurar..." #: ..\../api/initwx.cpp:463 msgid "Show on startup" msgstr "Exibir ao iniciar" #: ..\../api/initwx.cpp:463 #, fuzzy msgid "Show on startup default value" msgstr "Exibir ao iniciar" #: ..\../api/initwx.cpp:465 ..\../api/initwx.cpp:466 #: ..\../main/gui/history3/historypanel3.cpp:328 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "" #: ..\../api/initwx.cpp:465 #, fuzzy msgid "Settings menu" msgstr "" "Você precisa definir um PACS padrão no XML de integração ou no menu de " "configurações" #: ..\../api/initwx.cpp:466 #, fuzzy msgid "License menu" msgstr "MENU" #: ..\../api/initwx.cpp:467 ..\../api/initwx.cpp:468 ..\../api/initwx.cpp:469 #: ..\../api/initwx.cpp:470 ..\../api/initwx.cpp:471 ..\../api/initwx.cpp:472 #: ..\../api/initwx.cpp:473 ..\../api/initwx.cpp:474 #, fuzzy msgid "PACS Limits" msgstr "Explorando PACS..." #: ..\../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "" #: ..\../api/initwx.cpp:468 msgid "Upload images to a PACS server" msgstr "Enviar imagens para o servidor PACS" #: ..\../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "Adquirir imagens de um PACS" #: ..\../api/initwx.cpp:470 msgid "Enable remote PACS configuration" msgstr "Habilitar configuração remota do PACS" #: ..\../api/initwx.cpp:471 msgid "Enable TLS configuration" msgstr "Ativar configuração do TLS" #: ..\../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "" #: ..\../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "" #: ..\../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "" #: ..\../api/initwx.cpp:475 ..\../api/initwx.cpp:476 ..\../api/initwx.cpp:477 #: ..\../api/initwx.cpp:478 ..\../api/initwx.cpp:479 ..\../api/initwx.cpp:480 #, fuzzy msgid "Import" msgstr "Você precisa selecionar as imagens que você deseja importar" #: ..\../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "" #: ..\../api/initwx.cpp:476 #, fuzzy msgid "Show accession number input" msgstr "Numero de Acesso" #: ..\../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "" #: ..\../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" #: ..\../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "" #: ..\../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "" #: ..\../api/initwx.cpp:482 msgid "HL7 Service" msgstr "Serviço HL7" #: ..\../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "" #: ..\../api/initwx.cpp:483 ..\../api/initwx.cpp:484 ..\../api/initwx.cpp:485 msgid "XML dicomization" msgstr "Dicomização XML" #: ..\../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "" #: ..\../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "" #: ..\../api/initwx.cpp:485 msgid "Default ORU template" msgstr "Default ORU template" #: ..\../api/initwx.cpp:488 ..\../api/initwx.cpp:489 ..\../api/initwx.cpp:491 #: ..\../api/initwx.cpp:493 ..\../api/initwx.cpp:494 ..\../api/initwx.cpp:495 #: ..\../api/initwx.cpp:496 ..\../api/initwx.cpp:498 #, fuzzy msgid "Style" msgstr "&Estilo:" #: ..\../api/initwx.cpp:503 #, fuzzy, c-format msgid "Download %s images" msgstr "Download" #: ..\../api/initwx.cpp:504 ..\../api/initwx.cpp:508 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:21 #, fuzzy msgid "PACS" msgstr "Explorando PACS..." #: ..\../api/initwx.cpp:507 #, fuzzy msgid "Download all modalities" msgstr "Download" #: ..\../api/initwx.cpp:510 msgid "OpenGL" msgstr "OpenGL" #: ..\../api/initwx.cpp:510 #, fuzzy msgid "Enable shaders" msgstr "Habilitar configuração remota do PACS" #: ..\../api/initwx.cpp:513 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:388 #, fuzzy msgid "Ginkgo Cloud" msgstr "Ginkgo CADx" #: ..\../api/initwx.cpp:513 #, fuzzy msgid "Download from Ginkgo Cloud" msgstr "O Ginkgo CADx não pode comprimir de " #: ..\../api/initwx.cpp:560 #, fuzzy msgid "Tools loading base ..." msgstr "Carregando : " #: ..\../api/initwx.cpp:562 msgid "Starting tools..." msgstr "" #: ..\../api/initwx.cpp:566 #, fuzzy msgid "Loading plugins ..." msgstr "Carregando : " #: ..\../api/initwx.cpp:580 msgid "Unable to start GinkgoCADx:\n" msgstr "" #: ..\../api/initwx.cpp:580 ..\../api/initwx.cpp:621 msgid "error" msgstr "erro" #: ..\../api/initwx.cpp:584 #, fuzzy msgid "Loading resources ..." msgstr "Carregando : " #: ..\../api/initwx.cpp:587 msgid "Starting services..." msgstr "" #: ..\../api/initwx.cpp:601 msgid "Configuring environment ..." msgstr "Configurando ambiente ..." #: ..\../api/initwx.cpp:621 msgid "Failed to set permissions:\n" msgstr "Ocorreu uma falha ao definir permissões:\n" #: ..\../api/initwx.cpp:634 msgid "Updating ..." msgstr "" #: ..\../api/initwx.cpp:638 #, fuzzy msgid "Interpreting parameters ..." msgstr "Parâmetros de configuração da estação local" #: ..\../api/initwx.cpp:689 #, fuzzy msgid "Error unregistering tools: " msgstr "Erro: " #: ..\../api/initwx.cpp:769 msgid "Starting" msgstr "" #: ..\../api/ivista.cpp:36 ..\../commands/comandocarga.cpp:73 #, fuzzy msgid "Loading..." msgstr "Carregando : " #: ..\../api/iwidgets.cpp:268 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ..\../main/gui/import/pasosimportacionbase.cpp:151 #, fuzzy msgid "Name" msgstr "Nome" #: ..\../api/iwidgets.cpp:285 msgid "Area" msgstr "Área" #: ..\../api/iwidgets.cpp:302 msgid "Perimeter" msgstr "" #: ..\../api/iwidgets.cpp:316 #, fuzzy msgid "Travel (I)" msgstr "%i de %i" #: ..\../api/iwidgets.cpp:326 #, fuzzy msgid "Travel (M)" msgstr "Centro (M)" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #: ..\../api/threads/thread.cpp:120 msgid "Threading" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid "Error while running thread: " msgstr "Erro ao rodar a thread: " #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid " : " msgstr " : " #: ..\../api/threads/thread.cpp:120 msgid "Internal error while running thread: " msgstr "Erro interno ao executar a thread: " #: ..\../api/widgetserializable.cpp:60 msgid "Creation Date" msgstr "Data de criação" #: ..\../api/widgetserializable.cpp:65 #, fuzzy msgid "Modification Date" msgstr "data" #: ..\../api/widgetserializable.cpp:68 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ..\../wx/gnkinforme/gnkinformebase.cpp:40 msgid "Physician" msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:55 #: ..\../commands/pacsdownloadcommand.cpp:88 #: ..\../commands/synchronizationcommand.cpp:70 msgid "Downloading files ..." msgstr "Baixando arquivos ..." #: ..\../commands/acquirefromurlcommand.cpp:69 #: ..\../commands/synchronizationcommand.cpp:91 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, c-format msgid "Downloading file %d" msgstr "Baixando arquivo %d" #: ..\../commands/acquirefromurlcommand.cpp:81 #, fuzzy msgid "Error downloading file: " msgstr "Baixando arquivo %d" #: ..\../commands/acquirefromurlcommand.cpp:95 #: ..\../commands/pacsdownloadcommand.cpp:114 #: ..\../commands/synchronizationcommand.cpp:121 msgid "Internal Error" msgstr "Erro Interno" #: ..\../commands/acquirefromurlcommand.cpp:115 #, fuzzy msgid "Error downloading files: " msgstr "Baixando arquivos ..." #: ..\../commands/autocleaningcommand.cpp:62 msgid "Cleaning dicomdir..." msgstr "" #: ..\../commands/cloudcommand.cpp:67 #, fuzzy msgid "Downloading files..." msgstr "Baixando arquivos ..." #: ..\../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "" #: ..\../commands/cloudcommand.cpp:183 #, fuzzy msgid "Unknown operation" msgstr "Operação não permitida." #: ..\../commands/cloudcommand.cpp:188 msgid "Error in cloud operation. See log to get more details..." msgstr "" #: ..\../commands/cloudcommand.cpp:249 #, fuzzy msgid "Could to retrieve study." msgstr "Não foi possível localizar aba pela id" #: ..\../commands/cloudcommand.cpp:260 ..\../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" #: ..\../commands/cloudcommand.cpp:262 #, fuzzy msgid "Error retrieving study." msgstr "Erro ao carregar estudo: Erro Interno" #: ..\../commands/cloudcommand.cpp:271 #, fuzzy msgid "Study successfully retrieved." msgstr "A dicomização foi concluída com sucesso" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "Speed" msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "bytes/sec during" msgstr " bytes de " #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "seconds" msgstr "" "O Ginkgo CADx detectou inatividade e será fechado em %d segundos.\n" "Você gostaria de continuar?" #: ..\../commands/cloudcommand.cpp:275 #, fuzzy msgid "Empty Response" msgstr "[EMPTY]" #: ..\../commands/cloudcommand.cpp:289 #, fuzzy msgid "Extracting files..." msgstr "Extracting file..." #: ..\../commands/cloudcommand.cpp:313 ..\../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "" #: ..\../commands/cloudcommand.cpp:383 #, fuzzy msgid "Could to perform query." msgstr "Ocorreu uma falha durante a busca: " #: ..\../commands/cloudcommand.cpp:396 #, fuzzy msgid "Error perfoming the query." msgstr "Erro: " #: ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "Query successfully performed." msgstr "A dicomização foi concluída com sucesso" #: ..\../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "" #: ..\../commands/cloudcommand.cpp:472 #, fuzzy msgid "Unknown JSon attribute:" msgstr "Desconhecido" #: ..\../commands/cloudcommand.cpp:482 #, fuzzy msgid "Error parsing JSon: " msgstr "Erro interno na análise XML" #: ..\../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "" #: ..\../commands/cloudcommand.cpp:515 #: ..\../commands/openremovableunit.cpp:148 ..\../main/gui/open/abrir.cpp:119 #: ..\../main/gui/open/abrir.cpp:159 ..\../main/gui/open/opendialogs.cpp:146 msgid "Storing in the history..." msgstr "" #: ..\../commands/comandoactualizaciones.cpp:46 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:536 msgid "Check Updates" msgstr "Verificar Atualizações" #: ..\../commands/comandoactualizaciones.cpp:136 #, fuzzy msgid "Not enough parameters found on XML" msgstr "Parser XML não encontrado. Chave=" #: ..\../commands/comandoactualizaciones.cpp:145 msgid "XML parsing internal error" msgstr "Erro interno na análise XML" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Error checking application updates" msgstr "Erro ao checar atualizações da aplicação" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Ginkgo CADx updates" msgstr "Atualizações do Ginkgo CADx" #: ..\../commands/comandoactualizaciones.cpp:170 msgid "Internal error checking updates" msgstr "Erro interno ao verificar atualizações" #: ..\../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "" #: ..\../commands/comandocarga.cpp:92 ..\../commands/comandocarga.cpp:96 #, fuzzy msgid "Exception loading:" msgstr "Carregando : " #: ..\../commands/comandocarga.cpp:100 msgid "Study malformed or unsupported" msgstr "" #: ..\../commands/comandocarga.cpp:129 ..\../commands/comandocarga.cpp:139 msgid "Error loading study: " msgstr "Erro ao carregar estudo: " #: ..\../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "Erro ao carregar estudo. Memória insuficiente" #: ..\../commands/comandocarga.cpp:144 msgid "Error loading study." msgstr "Erro ao carregar estudo." #: ..\../commands/comandocarga.cpp:149 #, fuzzy msgid "Load canceled by user" msgstr "carregar" #: ..\../commands/comandocarga.cpp:156 #: ..\../main/gui/history3/historypanel3.cpp:1056 #: ..\../main/gui/history3/historypanel3.cpp:1063 #: ..\../main/gui/history3/historypanel3.cpp:1068 msgid "Error loading study" msgstr "Erro ao carregar estudo" #: ..\../commands/comandoexportacion.cpp:81 #: ..\../commands/exporttodicomdircommand.cpp:214 msgid "Exporting files..." msgstr "Exportando arquivos..." #: ..\../commands/comandoexportacion.cpp:105 #: ..\../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "Exportação foi concluída com sucesso" #: ..\../commands/comandoexportacion.cpp:158 #, c-format msgid "Exporting file %d of %d" msgstr "Exportando arquivo %d de %d" #: ..\../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "Erro ao armazenar arquivo, verifique permissões do diretório." #: ..\../commands/comandoexportacion.cpp:233 msgid "image_%m-%d-%Y_" msgstr "imagem_%d-%m-%Y_" #: ..\../commands/comandoincluirhistorial.cpp:108 msgid "Exploring directory ..." msgstr "Explorando diretório ..." #: ..\../commands/comandoincluirhistorial.cpp:122 #, fuzzy msgid "Reading DICOMDIR ..." msgstr "lendo" #: ..\../commands/comandoincluirhistorial.cpp:142 #: ..\../commands/comandoincluirhistorial.cpp:156 #: ..\../commands/comandoincluirhistorial.cpp:177 #, fuzzy msgid "Including files in the history .." msgstr "Arquivos" #: ..\../commands/comandoincluirhistorial.cpp:196 msgid "Exploring directory " msgstr "Explorando diretório " #: ..\../commands/comandoincluirhistorial.cpp:256 #: ..\../commands/linkhistorycommand.cpp:118 #, fuzzy msgid "Image acquisition finished." msgstr "A dicomização foi concluída com sucesso" #: ..\../commands/comandoincluirhistorial.cpp:258 #, c-format msgid "There have been included %d images." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:261 #: ..\../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" "\n" "Existem %d erros (veja o log para descrição detalhada)" #: ..\../commands/comandoincluirhistorial.cpp:273 #: ..\../commands/linkhistorycommand.cpp:133 #, fuzzy msgid "This files doesn't exist:" msgstr " não existe" #: ..\../commands/comandoincluirhistorial.cpp:284 #: ..\../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "Este arquivo não tem formato DICOM:" #: ..\../commands/comandoincluirhistorial.cpp:296 #: ..\../commands/linkhistorycommand.cpp:156 #, fuzzy msgid "This files are Dicom Dirs:" msgstr "Adquirir arquivos DICOM" #: ..\../commands/comandopacs.cpp:58 ..\../commands/pacsdownloadcommand.cpp:61 #: ..\../commands/sendpacscommand.cpp:137 #, fuzzy msgid "There is not any Remote PACS configured" msgstr "Habilitar configuração remota do PACS" #: ..\../commands/comandopacs.cpp:84 #, fuzzy msgid "Querying PACS ..." msgstr "Explorando PACS..." #: ..\../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "" #: ..\../commands/comandopacs.cpp:98 #, fuzzy msgid "Starting Search ..." msgstr "Pesquisar" #: ..\../commands/comandopacs.cpp:108 #: ..\../commands/pacsdownloadcommand.cpp:101 msgid "Server ID not found. ID = " msgstr "" #: ..\../commands/comandopacs.cpp:110 ..\../commands/comandopacs.cpp:112 #: ..\../commands/comandopacs.cpp:114 ..\../commands/comandopacs.cpp:116 #, fuzzy msgid "Query error with PACS Id " msgstr "" "\n" "Este ID de PACS está em uso" #: ..\../commands/comandopacs.cpp:116 #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/gui/history3/historypanel3.cpp:1068 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error" msgstr "Erro interno" #: ..\../commands/comandopacs.cpp:135 msgid "Failed to perform search: " msgstr "Ocorreu uma falha durante a busca: " #: ..\../commands/dbmigrationcommand.cpp:94 #: ..\../commands/dbmigrationcommand.cpp:103 #, fuzzy msgid "Migrating old DICOM Dir ..." msgstr "Diretório DICOM" #: ..\../commands/dbmigrationcommand.cpp:99 #: ..\../commands/dbmigrationcommand.cpp:108 #, fuzzy msgid "Including files ..." msgstr "Arquivos" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 #: ..\../commands/dicomizecommand.cpp:181 #: ..\../commands/openremovableunit.cpp:74 #: ..\../commands/openremovableunit.cpp:110 #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../commands/pdfextractercommand.cpp:130 #: ..\../main/controllers/historycontroller.cpp:447 #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 #: ..\../main/controllers/historycontroller.cpp:1976 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ..\../main/gui/export/parametrosprincipales.cpp:161 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 #: ..\../main/gui/history3/historypanel3.cpp:1045 #: ..\../main/gui/history3/historypanel3.cpp:1078 #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1119 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 #: ..\../main/gui/import/selectimagesimportation.cpp:141 #: ..\../main/gui/import/selectimagesimportation.cpp:342 #: ..\../main/gui/import/selectimagesimportation.cpp:743 #: ..\../main/gui/import/selectimagesimportation.cpp:761 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ..\../main/gui/login/dialogologin.cpp:50 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ..\../main/gui/open/opendialogs.cpp:58 #: ..\../main/gui/open/opendialogs.cpp:62 #: ..\../main/gui/open/opendialogs.cpp:134 #: ..\../main/gui/progress/statusbarprogreso.cpp:284 #: ..\../main/gui/progress/statusbarprogreso.cpp:287 #: ..\../main/gui/progress/statusbarprogreso.cpp:292 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #: ..\../main/gui/history3/openwithdialog.h:72 #, fuzzy msgid "Info" msgstr "delegate has não tipo_devolvido info" #: ..\../commands/dbmigrationcommand.cpp:123 #, fuzzy msgid "Migration finisthed successfully" msgstr "A dicomização foi concluída com sucesso" #: ..\../commands/dialogopathssobreescribirbase.cpp:27 #: ..\../commands/dialogopathssobreescribirbase.cpp:62 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 #, fuzzy msgid "Overwrite" msgstr "Impossível sobrescrever o arquivo '%s'" #: ..\../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr "Você gostaria de sobrescrevê-los?" #: ..\../commands/dialogopathssobreescribirbase.cpp:65 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ..\../main/gui/history3/historypanel3base.cpp:339 #: ..\../main/gui/history3/historypanel3base.cpp:415 #: ..\../main/gui/history3/historypanel3base.cpp:486 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ..\../main/gui/open/opendialogsbase.cpp:53 #: ..\../main/gui/open/opendialogsbase.cpp:131 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ..\../widgets/gui/calibracionbase.cpp:86 #: ..\../widgets/gui/selecciontextobase.cpp:60 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "Cancelar" #: ..\../commands/dicomizationcompletebase.cpp:24 #: ..\../commands/dicomizationcompletebase.cpp:33 #: ..\../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "Dicomização completa" #: ..\../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "A dicomização foi concluída com sucesso" #: ..\../commands/dicomizationcompletebase.cpp:56 msgid "Don't show this message again" msgstr "Não exibir esta mensagem novamente" #: ..\../commands/dicomizationcompletebase.cpp:62 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ..\../main/gui/history3/historypanel3base.cpp:411 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ..\../widgets/gui/calibracionbase.cpp:82 #: ..\../widgets/gui/selecciontextobase.cpp:56 msgid "Accept" msgstr "Aceitar" #: ..\../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "" #: ..\../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "" #: ..\../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "" #: ..\../commands/dicomizecommand.cpp:179 #, fuzzy msgid "Import process failed:" msgstr "Falha ao destruir processo %d" #: ..\../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" "\n" "Gostaria de tentar novamente?" #: ..\../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "" #: ..\../commands/dicomizecommand.cpp:370 #, fuzzy msgid "Unknown error in dicomization process" msgstr "erro desconhecido" #: ..\../commands/dicomizecommand.cpp:431 #: ..\../commands/dicomizecommand.cpp:442 #: ..\../commands/sendpacscommand.cpp:185 #, fuzzy msgid "Error sending evidences:" msgstr "Erro ao enviar mensagem:" #: ..\../commands/dicomizecommand.cpp:437 #: ..\../commands/dicomizecommand.cpp:448 msgid "Can not upload to the PACS:\n" msgstr "Não foi possível enviar para o PACS:\n" #: ..\../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" "Não foi possível enviar para o PACS:\n" "Erro interno" #: ..\../commands/exporttodicomdircommand.cpp:261 #: ..\../commands/exporttodicomdircommand.cpp:338 #, c-format msgid "Exporting series %d of %d" msgstr "Exportando série %d de %d" #: ..\../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:279 #: ..\../commands/exporttodicomdircommand.cpp:385 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/export/parametrosprincipales.cpp:167 msgid "There was an error creating directory" msgstr "Ocorreu um erro ao criar o diretório" #: ..\../commands/exporttodicomdircommand.cpp:303 #: ..\../commands/exporttodicomdircommand.cpp:408 #, fuzzy msgid "There was an error writing file" msgstr "ICO: Erro ao gravar o arquivo de imagem!" #: ..\../commands/exporttodicomdircommand.cpp:358 #, fuzzy msgid "There was an error anonymizing files" msgstr "Arquivos" #: ..\../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:355 #, fuzzy msgid "Ignoring incoming operation " msgstr "Operação não permitida." #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:298 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:473 #: ..\../commands/pacsdownloadcommand.cpp:170 #: ..\../commands/pacsdownloadcommand.cpp:179 #, fuzzy msgid "Including files..." msgstr "Arquivos" #: ..\../commands/linkhistorycommand.cpp:68 #, fuzzy msgid "Linking study..." msgstr "Erro ao carregar estudo: " #: ..\../commands/openremovableunit.cpp:42 #: ..\../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "Exploring drives..." #: ..\../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" #: ..\../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" #: ..\../commands/openremovableunit.cpp:130 #, fuzzy msgid "Select drive you want to open" msgstr "Você precisa selecionar as imagens que você deseja importar" #: ..\../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" "O Ginkgo CADx detectou mais de uma unidade removível,\n" "mas nenhuma delas inclui um DICOMDIR na raiz.\n" "Selecione o dispositivo onde você gostaria de adquirir recursivamente" #: ..\../commands/pacsdownloadcommand.cpp:134 msgid "Error downloading study: " msgstr "Erro ao baixar estudo: " #: ..\../commands/pdfextractercommand.cpp:103 msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "" #: ..\../commands/pdfextractercommand.cpp:103 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ..\../main/gui/progress/statusbarprogreso.cpp:278 #: ..\../widgets/gui/calibracion.cpp:205 ..\../widgets/gui/calibracion.cpp:209 #: ..\../widgets/gui/calibracion.cpp:219 ..\../widgets/gui/calibracion.cpp:225 #: ..\../widgets/gui/calibracion.cpp:229 msgid "Error" msgstr "Erro" #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "" #: ..\../commands/pdfextractercommand.cpp:130 msgid "PDF files extracted successfully..." msgstr "" #: ..\../commands/secondarycapturedicomizecommand.cpp:73 #, fuzzy msgid "Ginkgo CADx Secondary Capture" msgstr "Ginkgo CADx" #: ..\../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "" #: ..\../commands/sendhl7command.cpp:73 #, fuzzy msgid "Message successfully sent" msgstr "Erro ao enviar mensagem. Foi enviada " #: ..\../commands/sendhl7command.cpp:77 msgid "Unknown protocol" msgstr "Protocolo desconhecido" #: ..\../commands/sendhl7command.cpp:80 ..\../commands/sendhl7command.cpp:93 #: ..\../commands/sendhl7command.cpp:145 msgid "Error sending message:" msgstr "Erro ao enviar mensagem:" #: ..\../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "Erro ao enviar mensagem HL7. Veja log para maiores detalhes" #: ..\../commands/sendhl7command.cpp:93 ..\../commands/sendhl7command.cpp:94 msgid "Unknown error" msgstr "Erro desconhecido" #: ..\../commands/sendhl7command.cpp:134 msgid "Failed to start connection" msgstr "Ocorreu uma falha ao iniciar a conexão" #: ..\../commands/sendhl7command.cpp:148 msgid "Error sending message. It was sent " msgstr "Erro ao enviar mensagem. Foi enviada " #: ..\../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr " bytes de " #: ..\../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "" #: ..\../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "" #: ..\../commands/sendhl7command.cpp:258 #, fuzzy msgid "Failed delivery confirmation:" msgstr "Falha no \"fork\"" #: ..\../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "" #: ..\../commands/sendpacscommand.cpp:51 #, fuzzy msgid "Send files to PACS" msgstr "Arquivos" #: ..\../commands/sendpacscommand.cpp:155 msgid "Uploading files ..." msgstr "Enviando arquivos ..." #: ..\../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "Erro: Configuração do PACS não encontrada: " #: ..\../commands/sendpacscommand.cpp:181 msgid "Error:" msgstr "Erro:" #: ..\../commands/sendpacscommand.cpp:189 msgid "Error sending evidences: Internal error." msgstr "" #: ..\../commands/sendpacscommand.cpp:203 msgid "Error uploading the study to PACS: " msgstr "Erro ao carregar o estudo para o PACS: " #: ..\../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" #: ..\../commands/sendpacscommand.cpp:206 #, fuzzy msgid "Retry send to PACS" msgstr "" "\n" "Gostaria de tentar novamente?" #: ..\../commands/synchronizationcommand.cpp:104 #, fuzzy msgid "Error downloading file" msgstr "Baixando arquivo %d" #: ..\../commands/synchronizationcommand.cpp:141 #, fuzzy msgid "Error synchronizing study: " msgstr "Erro ao carregar estudo: Erro Interno" #: ..\../commands/thumbnailscommand.cpp:107 #: ..\../commands/thumbnailscommand.cpp:133 #: ..\../commands/thumbnailscommand.cpp:247 #: ..\../commands/thumbnailscommand.cpp:376 #: ..\../commands/thumbnailscommand.cpp:382 #: ..\../main/gui/import/selectimagesimportation.cpp:504 msgid "Creating Thumbnail..." msgstr "Criando Thumbnail..." #: ..\../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "Gerando thumbnail ..." #: ..\../export/tools/iaddfiletohistorytool.cpp:19 #: ..\../main/gui/history3/historypanel3.cpp:632 #, fuzzy msgid "Open study" msgstr "&Abrir" #: ..\../export/tools/iangletool.cpp:19 msgid "Angle \tCtrl+A" msgstr "" #: ..\../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "" #: ..\../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "" #: ..\../export/tools/icolormaptool.cpp:20 #, fuzzy msgid "Color Map" msgstr "BMP: Não foi possível gravar mapa de cores RGB." #: ..\../export/tools/icopyimagetoclipboardtool.cpp:19 #: ..\../main/gui/open/opendialogsbase.cpp:46 #: ..\../main/gui/open/opendialogsbase.cpp:198 #, fuzzy msgid "Copy" msgstr "&Copiar" #: ..\../export/tools/icornerannotationstool.cpp:20 msgid "Window annotations" msgstr "Anotações de janela" #: ..\../export/tools/idetachwindowtool.cpp:19 #, fuzzy msgid "Detach window" msgstr "&Janela" #: ..\../export/tools/iimageexporttool.cpp:19 #, fuzzy msgid "Export image..." msgstr "imagem" #: ..\../export/tools/imarkertool.cpp:20 msgid "Marking Tools \tCtrl+M" msgstr "" #: ..\../export/tools/imetricgridtool.cpp:20 #, fuzzy msgid "Metric grid" msgstr "Grade" #: ..\../export/tools/inotetool.cpp:19 msgid "Text Note \tCtrl+N" msgstr "" #: ..\../export/tools/ipacsuploadtool.cpp:19 #, fuzzy msgid "Upload study..." msgstr "Enviar imagens para o servidor PACS" #: ..\../export/tools/ipixelsbluringtool.cpp:20 msgid "Pixels blurring" msgstr "" #: ..\../export/tools/ipointertool.cpp:19 msgid "Pointer \tEsc" msgstr "" #: ..\../export/tools/iqueryretrievetool.cpp:19 #: ..\../main/tools/queryretrievehistorytool.cpp:25 #: ..\../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "Acquire a DICOM study from PACS" #: ..\../export/tools/iresettool.cpp:19 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 msgid "Reset" msgstr "" #: ..\../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "" #: ..\../export/tools/iruletool.cpp:19 msgid "Rule \tCtrl+R" msgstr "" #: ..\../export/tools/isecondarycapturetool.cpp:19 msgid "Save snapshot as new series..." msgstr "" #: ..\../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "" #: ..\../export/tools/ishowtagstool.cpp:19 #: ..\../main/tools/showtagshistorytool.cpp:27 #, fuzzy msgid "DICOM inspector" msgstr "DICOM Inspector" #: ..\../export/tools/isimpleprinttool.cpp:19 #: ..\../main/tools/simpleprinttool.cpp:226 #, fuzzy msgid "Print" msgstr "&Imprimir" #: ..\../export/tools/istartdicomizationtool.cpp:19 #, fuzzy msgid "Dicomize..." msgstr "Fechar automaticamente Ginkgo CADx após dicomização" #: ..\../export/tools/itoolpan.cpp:19 msgid "Pan \tCtrl+P" msgstr "" #: ..\../export/tools/itoolslider.cpp:19 #, fuzzy msgid "Slider \tCtrl+S" msgstr "%s (ou %s)" #: ..\../export/tools/itoolwindowlevel.cpp:19 msgid "Window/Level \tCtrl+W" msgstr "" #: ..\../export/tools/itoolzoom.cpp:19 #, fuzzy msgid "Zoom \tCtrl+O" msgstr "Zoom &In" #: ..\../export/tools/itrackballtool.cpp:19 #, fuzzy msgid "Trackball \tCtrl+T" msgstr "\t%s: %s\n" #: ..\../export/tools/iundotool.cpp:20 ..\../main/tools/undotool.cpp:109 #, fuzzy msgid "Undo" msgstr "&Desfazer" #: ..\../export/tools/ivideotool.cpp:19 #, fuzzy msgid "Video \tCtrl+Space" msgstr "ESPA�O" #: ..\../export/tools/iwindowlayouttool.cpp:20 #, fuzzy msgid "Window layout" msgstr "&Janela" #: ..\../main/controllers/controladorcarga.cpp:161 #, fuzzy msgid "Studies with" msgstr "" "Não foi possível esvaziar o histórico, você precisa fechar os estudos abertos" #: ..\../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr " componentes não suportados" #: ..\../main/controllers/controladorcarga.cpp:210 #, fuzzy msgid "Reading properties" msgstr "&Propriedades" #: ..\../main/controllers/controladorcarga.cpp:219 #: ..\../main/controllers/controladorcarga.cpp:642 #: ..\../main/controllers/controladorcarga.cpp:888 #: ..\../main/controllers/streaming/streamingloader.cpp:600 msgid "Error reading the study: " msgstr "Erro ao ler o estudo: " #: ..\../main/controllers/controladorcarga.cpp:224 #: ..\../main/controllers/controladorcarga.cpp:229 #: ..\../main/controllers/controladorcarga.cpp:647 #: ..\../main/controllers/controladorcarga.cpp:893 msgid "Internal error reading the study: " msgstr "Erro interno ao ler o estudo: " #: ..\../main/controllers/controladorcarga.cpp:269 #: ..\../main/controllers/controladorcarga.cpp:281 #: ..\../main/controllers/controladorcarga.cpp:905 #, fuzzy msgid "Spacing is not valid: (" msgstr "Espa�amento" #: ..\../main/controllers/controladorcarga.cpp:305 #: ..\../main/controllers/controladorcarga.cpp:338 #: ..\../main/controllers/controladorcarga.cpp:372 #: ..\../main/controllers/controladorcarga.cpp:408 #: ..\../main/controllers/controladorcarga.cpp:441 #: ..\../main/controllers/controladorcarga.cpp:474 #: ..\../main/controllers/controladorcarga.cpp:507 #: ..\../main/controllers/controladorcarga.cpp:540 #: ..\../main/controllers/controladorcarga.cpp:573 #: ..\../main/controllers/controladorcarga.cpp:606 #: ..\../main/controllers/controladorcarga.cpp:935 msgid "Error loading the study: Out of memory" msgstr "Erro ao carregar o estudo: Sem memória" #: ..\../main/controllers/controladorcarga.cpp:375 msgid "Error loading the study: Internal Error" msgstr "Erro ao carregar estudo: Erro Interno" #: ..\../main/controllers/controladorcarga.cpp:630 #: ..\../main/controllers/streaming/streamingloader.cpp:1023 #: ..\../main/controllers/streaming/streamingloader.cpp:1223 #: ..\../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "Erro ao ler o estudo: Formato de pixel não suportado" #: ..\../main/controllers/controladorcarga.cpp:651 #: ..\../main/controllers/controladorcarga.cpp:960 #, fuzzy msgid "Process canceled by user." msgstr "Usuário" #: ..\../main/controllers/controladorcarga.cpp:878 #, fuzzy msgid "Interpreting properties" msgstr "&Propriedades" #: ..\../main/controllers/controladorcarga.cpp:917 #, fuzzy msgid "Spacing of the image is invalid: (" msgstr "Índice de imagem TIFF inválido " #: ..\../main/controllers/controladorcarga.cpp:942 #, fuzzy msgid "Reading dataset" msgstr "lendo" #: ..\../main/controllers/controladorcarga.cpp:951 msgid "Error reading the study:" msgstr "Erro ao ler o estudo:" #: ..\../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "Erro interno ao ler o estudo:" #: ..\../main/controllers/controladorcarga.cpp:972 msgid "load" msgstr "carregar" #: ..\../main/controllers/controladorenviohl7.cpp:40 #, fuzzy msgid "Stopping HL7 sender" msgstr "Serviço HL7" #: ..\../main/controllers/controladorenviohl7.cpp:63 #: ..\../main/controllers/controladorenviohl7.cpp:76 msgid "Error starting HL7 sender" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:65 #: ..\../main/controllers/controladorenviohl7.cpp:78 #, fuzzy msgid "HL7 sender started" msgstr "Serviço HL7" #: ..\../main/controllers/controladorenviohl7.cpp:108 #, fuzzy msgid "HL7 controller destroyed" msgstr "Serviço HL7" #: ..\../main/controllers/controladorenviohl7.cpp:150 #, fuzzy msgid "Error processing message" msgstr "Mensagem de erro" #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/controllers/pacscontroller.cpp:1549 #: ..\../main/controllers/pacscontroller.cpp:1553 #: ..\../main/controllers/pacscontroller.cpp:1557 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ..\../main/gui/import/pasosimportacionbase.cpp:195 #: ..\../wx/gnkinforme/gnkinformebase.cpp:184 #, fuzzy msgid "Unknown" msgstr "Desconhecido" #: ..\../main/controllers/controladorextensiones.cpp:110 #, fuzzy msgid "Loading" msgstr "Carregando : " #: ..\../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "Não foi possível carregar arquivo da biblioteca de extensão." #: ..\../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "Não foi possível carregar arquivo da biblioteca. Verifique o log" #: ..\../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:153 msgid "Could not find entry point" msgstr "Não foi possível encontrar ponto de entrada" #: ..\../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:74 msgid "Integration engine hostname not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:77 msgid "Integration engine port not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:91 msgid "Unsupported protocol" msgstr "Protocolo não suportado" #: ..\../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "" #: ..\../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "%d resultados foram encontrados" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, c-format msgid "Downloading file %d/%d" msgstr "Baixando arquivo %d/%d" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:359 #, fuzzy msgid "Image format not supported" msgstr "PCX: formato de imagem não suportado" #: ..\../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "Erro ao configurar TLS: " #: ..\../main/controllers/dcmtk/dicomservice.cpp:200 #, fuzzy msgid "Receiving Association failed: " msgstr "Falha no \"fork\"" #: ..\../main/controllers/dcmtk/dicomservice.cpp:209 msgid "Association received" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:210 #, fuzzy msgid "Parameters:" msgstr "Parâmetros de configuração da estação local" #: ..\../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr ")" #: ..\../main/controllers/dcmtk/dicomservice.cpp:274 #, fuzzy msgid "No valid presentation contexts" msgstr "'%s' não é um catálogo de mensagens válido." #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 #, fuzzy msgid "Association(dicom://" msgstr "DICOM nodes" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "@" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "O Ginkgo CADx não pode comprimir de " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr " para " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, c-format msgid "Uploading file %d of %d" msgstr "Enviando arquivo %d de %d" #: ..\../main/controllers/dicommanager.cpp:504 #: ..\../main/controllers/dicommanager.cpp:531 msgid "Extracting file..." msgstr "Extracting file..." #: ..\../main/controllers/historycontroller.cpp:323 msgid "Error creating history database " msgstr "Erro ao criar histórico do banco de dados " #: ..\../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr "" #: ..\../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" #: ..\../main/controllers/historycontroller.cpp:343 #, fuzzy msgid "Error creating dicomDir database " msgstr "Erro ao criar histórico do banco de dados " #: ..\../main/controllers/historycontroller.cpp:425 #: ..\../main/controllers/historycontroller.cpp:441 #, fuzzy msgid "Error creating thumbnails database " msgstr "Erro ao criar histórico do banco de dados " #: ..\../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "Erro ao criar o banco de dados:\n" #: ..\../main/controllers/historycontroller.cpp:560 #, fuzzy msgid "Including image " msgstr "imagem" #: ..\../main/controllers/historycontroller.cpp:560 #: ..\../main/controllers/historycontroller.cpp:707 msgid " of " msgstr " de " #: ..\../main/controllers/historycontroller.cpp:707 #, fuzzy msgid "Linking image " msgstr "imagem" #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "Erro ao ler histórico: \n" #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "Ocorreu uma falha ao esvaziar o histórico:\n" #: ..\../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" "O Ginkgo CADx detectou inatividade e será fechado em %d segundos.\n" "Você gostaria de continuar?" #: ..\../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:493 #, fuzzy msgid "Malformed template Id (" msgstr "Identificador" #: ..\../main/controllers/integrationcontroller.cpp:493 #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" "):\n" "não é um identificador HL7 válido (ie: code^description^namespaceid)" #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:540 #, fuzzy msgid "Template Id unsupported (" msgstr "Identificador" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "" "):\n" "Verifique a configuração e anexe-a se necessário" #: ..\../main/controllers/integrationcontroller.cpp:566 #, fuzzy msgid "Unknown module Id (" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:592 msgid "Empty configuration" msgstr "Configuração vazia" #: ..\../main/controllers/integrationcontroller.cpp:631 msgid "XML Parser Not Found. Key=" msgstr "Parser XML não encontrado. Chave=" #: ..\../main/controllers/log4cplus/guiappender.cpp:75 #, fuzzy msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "%d/%m/%Y %H:%M:%S" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ..\../main/gui/history3/historypanel3base.cpp:48 #: ..\../main/gui/import/pasosimportacionbase.cpp:227 #, fuzzy msgid "Patient" msgstr "" "\n" "* É necessário o ID do paciente." #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #, fuzzy msgid "Patient ID" msgstr "" "\n" "* É necessário o ID do paciente." #: ..\../main/controllers/modalitysettingscontroller.cpp:86 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ..\../main/gui/history3/historypanel3.cpp:227 #: ..\../main/gui/open/opendialogs.cpp:50 #, fuzzy msgid "Modality" msgstr " para a modalidade " #: ..\../main/controllers/modalitysettingscontroller.cpp:98 msgid "Dimensions" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:109 #, fuzzy, c-format msgid "Made with %s" msgstr "%s (ou %s)" #: ..\../main/controllers/modalitysettingscontroller.cpp:167 #: ..\../main/controllers/modalitysettingscontroller.cpp:338 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "Padrão" #: ..\../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1212 #, fuzzy msgid "Downloading file" msgstr "Baixando arquivo %d" #: ..\../main/controllers/pacscontroller.cpp:1318 #, fuzzy msgid "Error downloading WADO file" msgstr "Baixando arquivo %d" #: ..\../main/controllers/pacscontroller.cpp:1318 #, fuzzy msgid "Check PACS configuration" msgstr "Habilitar configuração remota do PACS" #: ..\../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1428 #, fuzzy msgid "Invalid HTTP response" msgstr "Habilitar proxy HTTP" #: ..\../main/controllers/pacscontroller.cpp:1433 #, fuzzy msgid "Invalid HTTP code" msgstr "&C�digo do caractere:" #: ..\../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1472 #, fuzzy msgid "PACS-Service" msgstr "Serviço HL7" #: ..\../main/controllers/parserxmlenglish.cpp:97 #: ..\../main/controllers/parserxmlspanish.cpp:94 #, fuzzy msgid "Omitted Identificator" msgstr "Identificator *" #: ..\../main/controllers/parserxmlenglish.cpp:105 #: ..\../main/controllers/parserxmlspanish.cpp:102 #, fuzzy msgid "Omitted AET" msgstr "AET" #: ..\../main/controllers/parserxmlenglish.cpp:113 #: ..\../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:121 #: ..\../main/controllers/parserxmlspanish.cpp:118 #, fuzzy msgid "Omitted port" msgstr "" "\n" "A porta é muito grande" #: ..\../main/controllers/parserxmlenglish.cpp:206 #: ..\../main/controllers/parserxmlenglish.cpp:237 #: ..\../main/controllers/parserxmlspanish.cpp:188 #: ..\../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "O tamanho do PDU não é um número válido" #: ..\../main/controllers/parserxmlenglish.cpp:212 #: ..\../main/controllers/parserxmlspanish.cpp:194 #, fuzzy msgid "Port is not a valid number" msgstr "O tamanho do PDU não é um número válido" #: ..\../main/controllers/parserxmlenglish.cpp:248 #: ..\../main/controllers/parserxmlspanish.cpp:228 #, fuzzy msgid "The port is not a valid number" msgstr "O tamanho do PDU não é um número válido" #: ..\../main/controllers/parserxmlenglish.cpp:265 #: ..\../main/controllers/parserxmlspanish.cpp:246 #, fuzzy msgid "Setting not found" msgstr "Encontrado" #: ..\../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:391 msgid "\"code\" attribute expected at \"patient\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:427 msgid "\"code\" attribute expected at \"physician\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:434 msgid "\"value\" attribute expected at \"physician\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:445 msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:483 msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:548 #: ..\../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:552 #: ..\../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:570 #: ..\../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "" "Você precisa definir um PACS padrão no XML de integração ou no menu de " "configurações" #: ..\../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:340 msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:402 msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:438 msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:445 msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:486 msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:524 msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:559 #, fuzzy msgid "id_application expected" msgstr "Identificador" #: ..\../main/controllers/smartretrievecontroller.cpp:124 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:920 msgid "Downloading from PACS..." msgstr "Baixando do PACS..." #: ..\../main/controllers/streaming/streamingloader.cpp:303 #: ..\../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" #: ..\../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "Erro interno ao ler o estudo, formato desconhecido " #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ..\../main/gui/history3/historytablemodel.cpp:403 #: ..\../main/gui/history3/historytablemodel.cpp:415 #: ..\../main/gui/history3/historytablemodel.cpp:470 #: ..\../main/gui/history3/historytablemodel.cpp:482 #: ..\../main/gui/open/dicomdirtablemodel.cpp:102 #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "%d/%m/%Y %H:%M:%S" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "%d/%m/%Y 00:00:00" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 msgid "Exploring PACS..." msgstr "Explorando PACS..." #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ..\../main/gui/history3/historypanel3.cpp:225 #: ..\../main/gui/open/opendialogs.cpp:49 #, fuzzy msgid "Patient id" msgstr "" "\n" "* É necessário o ID do paciente." #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ..\../main/gui/history3/historypanel3.cpp:224 #: ..\../main/gui/open/opendialogs.cpp:48 #, fuzzy msgid "Patient name" msgstr "" "\n" "* Concatenação do nome e sobrenome do paciente não pode ultrapassar 61 " "caracteres." #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:479 msgid "Study Instance UID" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ..\../main/gui/history3/historypanel3.cpp:231 #: ..\../main/gui/open/opendialogs.cpp:53 msgid "Accession number" msgstr "Numero de Acesso" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:481 msgid "Study date" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:482 #, fuzzy msgid "Study time" msgstr "Tempo decorrido: " #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:490 #, fuzzy msgid "Series Instance UID" msgstr "Abrir Séries" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:492 #, fuzzy msgid "Series date" msgstr "data" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:493 #, fuzzy msgid "Series time" msgstr "Tempo decorrido: " #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:519 msgid "No results found" msgstr "Nenhum resultado encontrado" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #, fuzzy msgid "Write query name" msgstr "Nome" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #, fuzzy msgid "This query name is in use, do you want to overwrite it?" msgstr "" "O arquivo existe\n" "Você gostaria de sobrescrevê-lo?" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 msgid "Id" msgstr "Identificador" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 msgid "Date Time" msgstr "Data e Hora" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ..\../main/gui/history3/historypanel3.cpp:229 #: ..\../main/gui/import/pasosimportacionbase.cpp:298 #: ..\../main/gui/import/pasosimportacionbase.cpp:340 #: ..\../main/gui/open/opendialogs.cpp:52 msgid "Description" msgstr "Descrição" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ..\../main/gui/import/pasosimportacionbase.cpp:276 msgid "Accession Number" msgstr "Numero de Acesso" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:210 msgid "Store query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:211 #, fuzzy msgid "Remove query" msgstr "Remove" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:278 #, fuzzy msgid "There is no any PACS configured" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:54 #, fuzzy msgid "Study UID" msgstr "Erro ao carregar estudo: " #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 #, fuzzy msgid "Search" msgstr "Pesquisar" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:519 #, fuzzy msgid "Download series" msgstr "Download" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 #, fuzzy msgid "Download study" msgstr "Download" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:535 #, fuzzy msgid "Link series" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:537 #, fuzzy msgid "Link study" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:551 #, fuzzy msgid "Properties..." msgstr "&Propriedades" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #, fuzzy msgid "You must specify at least a modality or a period of time" msgstr "Você precisa selecionar ao menos uma imagem" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #, fuzzy msgid "Select a valid query" msgstr "SELECT" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #, fuzzy msgid "Select a valid PACS Server" msgstr "Enviar imagens para o servidor PACS" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid "Download of modality " msgstr "Download da modalidade " #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr " não é permitido" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "Modality download error" msgstr "Erro ao baixar modalidade" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:786 msgid "search results" msgstr "Resultados da busca" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:913 #, fuzzy msgid "Downloading serie..." msgstr "Baixando arquivos ..." #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:916 #, fuzzy msgid "Downloading study..." msgstr "Erro ao baixar estudo: " #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:165 #, fuzzy msgid "PACS acquisition is restricted" msgstr "Explorando PACS..." #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:96 #, fuzzy msgid "Server" msgstr "Server settings" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ..\../main/gui/import/pasosimportacionbase.cpp:284 #: ..\../main/gui/import/pasosimportacionbase.cpp:326 #: ..\../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "Data" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ..\../main/gui/history3/historypanel3base.cpp:81 msgid "Any date" msgstr "Qualquer data" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ..\../main/gui/history3/historypanel3base.cpp:85 #, fuzzy msgid "Today AM" msgstr "hoje" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ..\../main/gui/history3/historypanel3base.cpp:88 #, fuzzy msgid "Today PM" msgstr "hoje" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ..\../main/gui/history3/historypanel3base.cpp:91 #, fuzzy msgid "Today" msgstr "hoje" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ..\../main/gui/history3/historypanel3base.cpp:100 msgid "Yesterday" msgstr "Ontem" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ..\../main/gui/history3/historypanel3base.cpp:103 #, fuzzy msgid "Last 7 days" msgstr "7" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ..\../main/gui/history3/historypanel3base.cpp:106 #, fuzzy msgid "Last 30 days" msgstr "Refazer �ltima a��o" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ..\../main/gui/history3/historypanel3base.cpp:109 #, fuzzy msgid "Last 3 months" msgstr "3" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ..\../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "Entre:" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ..\../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 #, fuzzy msgid "Stored queries" msgstr "O arquivo não pode ser armazenado " #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:216 #, fuzzy msgid "Select stored queries..." msgstr "SELECT" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ..\../main/gui/open/opendialogsbase.cpp:50 #: ..\../main/gui/open/opendialogsbase.cpp:202 #, fuzzy msgid "Link" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:289 msgid "Download" msgstr "Download" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ..\../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "Fechar" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:329 #, fuzzy msgid "Series does not exist" msgstr ": arquivo não existe!" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "Avançar" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ..\../main/gui/open/opendialogsbase.cpp:127 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ..\../main/tools/metricgridtool.cpp:101 #, fuzzy msgid "Ok" msgstr "&OK" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:151 #, fuzzy msgid "Download again" msgstr "Download" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:441 msgid "Open" msgstr "Abrir" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:179 #, fuzzy msgid "Set query name" msgstr "Nome" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:32 msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:34 msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/anonymize/anonymizedialog.cpp:64 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ..\../main/gui/export/parametrosprincipales.cpp:194 msgid "Exporting images ..." msgstr "Exportando imagens ..." #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:21 #, fuzzy msgid "Common tags" msgstr "Ginkgo CADx private tags" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 msgid "Patient's name and surname" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 #, fuzzy msgid "Patient Id" msgstr "" "\n" "* É necessário o ID do paciente." #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "Comentários" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:44 #, fuzzy msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "Ginkgo CADx private tags" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:71 #, fuzzy msgid "Add new..." msgstr "Não é possível adicionar um novo diretório a esta seção." #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ..\../main/tools/anonymizetool.cpp:26 #: ..\../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "Deixar anônimo" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:136 #, fuzzy msgid "Create new" msgstr "Criar novo diretório" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ..\../main/gui/anonymize/anonymizepanelbase.h:136 #, fuzzy msgid "Add DICOM tag" msgstr "SOMA" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:199 #, fuzzy msgid "Group" msgstr "a entrada '%s' aparece mais de uma vez no grupo '%s'" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:203 #, fuzzy msgid "Element" msgstr "Uma coleção que não seja vazia precisa consistir de nós 'elementos'" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ..\../widgets/wangulo.cpp:1114 msgid "Value" msgstr "Valor" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 msgid "Top right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 msgid "Top left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 msgid "Bottom left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 msgid "Bottom right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #, fuzzy msgid "You must fill in all fields" msgstr "Você precisa preencher todos os campos para continuar" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 msgid "Window/level label in use" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 #, fuzzy msgid "Window" msgstr "&Janela" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 #, fuzzy msgid "Level" msgstr "&Fonte para n�vel..." #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 msgid "Do you confirm the removal of the preset?" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Data modified" msgstr "Dados modificados" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 #, fuzzy msgid "Modality settings" msgstr " para a modalidade " #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 #, fuzzy msgid "Default modality settings" msgstr " para a modalidade " #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, fuzzy, c-format msgid "%s settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:60 #, fuzzy msgid "settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Export Configuration" msgstr "Exportar configuração" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 #, fuzzy msgid "Ini Files(*.ini)|*.ini" msgstr "Impossível excluir o arquivo INI '%s'" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" "O arquivo existe\n" "Você gostaria de sobrescrevê-lo?" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 msgid "Existing file" msgstr "Arquivo existente" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 msgid "Export successfully completed" msgstr "Exportação concluída com sucesso" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 msgid "There was an error during exportation" msgstr "There was an error during exportation" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 #, fuzzy msgid "Import Configuration" msgstr "Configuração vazia" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 #, fuzzy msgid "Ini files(*.ini)|*.ini" msgstr "Impossível excluir o arquivo INI '%s'" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #, fuzzy msgid "There was an error during importation, check permissions" msgstr "Erro ao armazenar arquivo, verifique permissões do diretório." #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 msgid "Dicom tag" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 #, fuzzy msgid "Split horizontally..." msgstr "Lado a lado &horizontalmente" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 #, fuzzy msgid "Split vertically..." msgstr "Lado a lado &verticalmente" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ..\../main/tools/windowlayouttool.cpp:273 #, fuzzy msgid "Split active horizontally" msgstr "Ativo" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ..\../main/tools/windowlayouttool.cpp:274 #, fuzzy msgid "Split active vertically" msgstr "Ativo" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 #, fuzzy msgid "New hanging protocol" msgstr "&Novo" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, fuzzy, c-format msgid "Window %d" msgstr "&Janela" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "Ativo" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "Yes" msgstr "Sim" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 msgid "Hanging protocols" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 #, fuzzy msgid "One day" msgstr "Dica do dia" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 #, fuzzy msgid "Two days" msgstr "Grade (duas colunas)" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 #, fuzzy msgid "Three days" msgstr "Grade (três colunas)" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 #, fuzzy msgid "Two weeks" msgstr "Grade (duas colunas)" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 msgid "One month" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 #, fuzzy msgid "Three months" msgstr "Grade (três colunas)" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 #, fuzzy msgid "Local database" msgstr "Erro ao criar histórico do banco de dados " #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 msgid "Local DICOM Dir setup" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" "Ocorreu uma falha ao criar o diretório, verifique se o caminho está correto " "e se você tem permissões no diretório principal" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" "Ocorreu um erro ao acessar o diretório, verifique se você tem acesso de " "escrita nele" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 #, fuzzy msgid "Select DICOMDIR" msgstr "SELECT" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" "Aviso, para atualizar o conteúdo do diretório você precisa fechar séries " "abertas no momento." #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "Estação de Trabalho" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "Parâmetros de configuração da estação local" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "Extenções" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:126 msgid "Extensions settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "" "Ginkgo CADx precisa ser reiniciado para que as alterações nas extensões " "surtam efeito." #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #, fuzzy msgid "Port has to be a valid number" msgstr "O tamanho do PDU não é um número válido" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "Geral" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:190 msgid "General configuration parameters" msgstr "Parâmetros de configuração geral" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "" "O Ginkgo CADx precisa ser reiniciado para que as mudanças surtam efeito." #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:134 #, fuzzy msgid "Testing conectivity with the server..." msgstr "Server settings" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:144 msgid "Error connecting to url" msgstr "Erro ao conectar-se a url" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #, fuzzy msgid "hostname/port not set" msgstr "Impossível obter o nome da máquina" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "Falha na conexão de teste" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "Conexão de teste bem sucedida" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 #, fuzzy msgid "Select certificate" msgstr "Certificado" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "Você precisa configurar uma chave pública e uma privada" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:255 msgid "Change ..." msgstr "Alterar ..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 #, fuzzy msgid "Import ..." msgstr "Você precisa selecionar as imagens que você deseja importar" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:279 #, fuzzy msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "" "\n" "Se você deseja utilizar SSL/TLS, você terá que informar um certificado " "válido e uma chave privada" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:472 msgid "There are this errors: " msgstr "Ocorreram os seguintes erros: " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" "\n" "Este ID de PACS está em uso" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" "\n" "O número da porta deve ser um inteiro positivo curto (16 bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" "\n" "A porta é muito grande" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" "\n" "O comprimento máximo do AET é de 16 caracteres" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" "\n" "O tamanho do PDU deve ser maior ou igual a zero (padrão = 16384)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" "\n" "O valor máximo do PDU é " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" "\n" "O valor mínimo do PDU é " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" "\n" "Se você deseja utilizar SSL/TLS, você terá que informar um certificado " "válido e uma chave privada" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:525 msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "Você precisa preencher todos os campos para continuar" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:558 #, fuzzy msgid "Testing the connection to the node ..." msgstr "DICOM Node" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:561 msgid "DICOM Error" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:607 msgid "The service did not respond correctly to the DICOM standard" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:616 #, fuzzy msgid "Invalid port number" msgstr "&N�mero:" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:622 #, fuzzy msgid "WADO Error" msgstr "Erro: " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:703 msgid "Use by default" msgstr "Usar por padrão" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:795 msgid "DICOM nodes" msgstr "DICOM nodes" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:800 msgid "DICOM nodes settings" msgstr "DICOM nodes settings" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" "\n" "A porta local deve ser um inteiro curto positivo (16 bits)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" "\n" "A porta local é muito grande" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" "\n" "A quantidade máxima de caracteres para AET local é de 16 caracteres" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "Confirm the removal of the node" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1101 msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Você precisa configurar o AET local, o qual é usado para se comunicar com os " "nós DICOM. A porta especificada deve ser liberada no firewall, já que ela é " "essencial para as transferências." #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ..\../main/gui/export/pasosexportacionbase.cpp:20 #, fuzzy msgid "Profile" msgstr "Confirmar remoção do perfil " #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "Valor padrão" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #, fuzzy msgid "Set property active" msgstr "Ativo" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "Inactive" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 #, fuzzy msgid "Set property inactive" msgstr "Inactive" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #, fuzzy msgid "Set default value" msgstr "Valor padrão" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:352 #, fuzzy msgid "Set by user" msgstr "Usuário" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #, fuzzy msgid "Profile name can't be repeated" msgstr "Nome de usuário repetido" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "Você precisa preencher o campo nome para continuar" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:498 #, fuzzy msgid "Profiles Settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "" "O Ginkgo CADx precisa ser reiniciado para que as mudanças de permissão " "surtam efeito." #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 msgid "Confirm the removal of the profile " msgstr "Confirmar remoção do perfil " #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:53 #, fuzzy msgid "New User" msgstr "&Novo" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "Nome de usuário precisa ter ao menos quatro caracteres" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 msgid "User name repeated" msgstr "Nome de usuário repetido" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #, fuzzy msgid "Password has to contain at least 6 characters" msgstr "Nome de usuário precisa ter ao menos quatro caracteres" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:141 #, fuzzy msgid "No login" msgstr "Login do usuário" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 msgid "User/Password" msgstr "Usuário/Senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:224 #, fuzzy msgid "Password" msgstr "Usuário/Senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:191 #, fuzzy msgid "Password is setted" msgstr "Usuário/Senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "Alterar senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 #, fuzzy msgid "Password is not setted" msgstr "Usuário/Senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:195 msgid "Set password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:224 #, fuzzy msgid "Security Setting" msgstr "A configuração de prioridade da thread foi ignorada." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "Você precisa criar ao menos um usuário" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "Você precisa escolher a senha principal" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 msgid "User inserted successfully" msgstr "Usuário criado com sucesso" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "" "Ocorreu um erro ao inserir o usuário. Para obter mais informações, abra o " "log." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #, fuzzy msgid "Password changed successfully" msgstr "Usuário/Senha" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "" "Ocorreu um erro ao alterar a sua senha. Para obter mais informações, abra o " "log." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 msgid "User deleted successfully" msgstr "Usuário deletado com sucesso" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "" "Ocorreu um erro ao remover o usuário. Para obter mais informações, abra o " "log." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "O Ginkgo CADx precisa ter ao menos um usuário." #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ..\../main/gui/login/dialogologin.cpp:27 msgid "User" msgstr "Usuário" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ..\../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "Escolha um diretório" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #, fuzzy msgid "Maximum length of title is 8 characters" msgstr "" "\n" "O comprimento máximo do AET é de 16 caracteres" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "O diretório selecionado não pode ser aberto" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "Você precisa preencher os campos título e o local para continuar" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 #, fuzzy msgid "Title" msgstr "Você precisa preencher os campos título e o local para continuar" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 #, fuzzy msgid "Path" msgstr "The caminho '%s' contém muitos \"..\"!" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 msgid "Clean before" msgstr "Limpar antes" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 msgid "Clean after" msgstr "Limpar depois" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 #, fuzzy msgid "Location Settings" msgstr "Configurar localização" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "Anonimização" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:96 msgid "Anonymization settings" msgstr "Configurações de anonimização" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1370 #, fuzzy msgid "Settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 #, fuzzy msgid "Export config..." msgstr "Erro ao ler opções de configuração." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 #, fuzzy msgid "Import config..." msgstr "Erro ao ler opções de configuração." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "Aplicar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 #, fuzzy msgid "Physician's name" msgstr "Nome" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 #, fuzzy msgid "Physician's Id" msgstr "Identificador" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 #, fuzzy msgid "Service" msgstr "Serviço HL7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 #, fuzzy msgid "Service's name" msgstr "Nome" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 #, fuzzy msgid "Service's Id" msgstr "Identificador" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 #, fuzzy msgid "Local institution" msgstr "Parâmetros de configuração da estação local" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 #, fuzzy msgid "Institution's name" msgstr "Nome" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 #, fuzzy msgid "Institution's Id" msgstr "Identificador" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 msgid "Dicomized files" msgstr "Arquivos dicomizados" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 msgid "Charset" msgstr "Codificação de caracteres" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "ISO_IR 192" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "ISO_IR 6" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "ISO_IR 100" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "ISO_IR 101" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "SO_IR 109" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "ISO_IR 110" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "ISO_IR 126" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "ISO_IR 127" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "ISO_IR 138" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "ISO_IR 144" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 msgid "ISO_IR 148" msgstr "ISO_IR 148" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 msgid "Automatically check for updates" msgstr "Checar por atualizações automaticamente" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ..\../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 msgid "Proxy settings" msgstr "Proxy settings" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 msgid "Enable http proxy" msgstr "Habilitar proxy HTTP" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:218 #, fuzzy msgid "Proxy Settings" msgstr "Proxy settings" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 msgid "Server settings" msgstr "Server settings" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 #, fuzzy msgid "Host" msgstr "" "Para implementação em larga-escala em um ambiente homogêneo, você pode " "especificar os seguintes curingas para o AET local:\n" "\t%IP Endereço IP\n" "\t%IP n-ésimo octeto (1~4)\n" "\t%HOSTNAME hostname\"" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 #, fuzzy msgid "Port" msgstr "" "\n" "A porta é muito grande" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "Autenticação" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 #, fuzzy msgid "Username" msgstr "Falha na conexão: faltando usuário/senha." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "Exceções" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 #, fuzzy msgid "No proxy for addresses containing" msgstr "Proxy settings" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 msgid "DICOM Dir" msgstr "Diretório DICOM" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "O diretório DICOM é o local onde o histórico é armazenado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" "Aviso, para atualizar o conteúdo do diretório você precisa fechar todas as " "séries abertas" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 #, fuzzy msgid "Auto-cleaning" msgstr "Calcular automaticamente" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 #, fuzzy msgid "MB" msgstr "%.*f MB" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ..\../main/tools/toolwindowlevel.cpp:201 #, fuzzy msgid "Reset to default" msgstr "padrão" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" "Você precisa configurar o AET local, o qual é usado para se comunicar com o " "servidor PACS. A porta especificada precisa ser aberta no firewall, já que é " "essencial para transferências." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 #, fuzzy msgid "Local AET" msgstr "" "\n" "A quantidade máxima de caracteres para AET local é de 16 caracteres" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" "Para implementação em larga-escala em um ambiente homogêneo, você pode " "especificar os seguintes curingas para o AET local:\n" "\t%IP Endereço IP\n" "\t%IP n-ésimo octeto (1~4)\n" "\t%HOSTNAME hostname\"" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "Configurações avançadas..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 msgid "DICOM Nodes" msgstr "DICOM Nodes" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 #, fuzzy msgid "New ..." msgstr "&Novo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 msgid "Edit ..." msgstr "Editar ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ..\../main/gui/history3/historypanel3.cpp:677 #: ..\../main/gui/history3/historypanel3.cpp:686 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ..\../main/gui/import/selectimagesimportation.cpp:291 #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete" msgstr "Excluir" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 #, fuzzy msgid "Set Default" msgstr "" "Existe um problema durante a configuração da página: você pode precisar " "configurar a impressora default" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:388 msgid "DICOM Node" msgstr "DICOM Node" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "AET" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 msgid "PDU (KB)" msgstr "PDU (KB)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 #, fuzzy msgid "Retrieve method" msgstr "m�todo de compacta��o Zip n�o suportado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 #, fuzzy msgid "Move" msgstr "&Mover" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Get" msgstr "Obter" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 #, fuzzy msgid "WADO URL" msgstr "Erro ao conectar-se a url" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 #, fuzzy msgid "Retrieve mode" msgstr "Falha na mudança do modo de vídeo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ..\../main/gui/import/pasosimportacionbase.cpp:319 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1395 #, fuzzy msgid "Series" msgstr "Abrir Séries" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #, fuzzy msgid "Studies" msgstr "" "Não foi possível esvaziar o histórico, você precisa fechar os estudos abertos" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "Reuse connection" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 msgid "Worklists" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 msgid "Select how do you want to handle MPPS items" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 #, fuzzy msgid "DICOM MPPS" msgstr "DICOM nodes" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 #, fuzzy msgid "HL7 messages" msgstr "Serviço HL7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 #, fuzzy msgid "HL7" msgstr "Serviço HL7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 #, fuzzy msgid "Abort message" msgstr "mensagem %s" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 #, fuzzy msgid "Completed message" msgstr "Exportação concluída com sucesso" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 #, fuzzy msgid "In progress message" msgstr "mensagem %s" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 #, fuzzy msgid "Default values" msgstr "padrão" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 msgid "Worklist" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 #, fuzzy msgid "SSL/TLS" msgstr "Usar SSL/TLS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 msgid "Verify server credentials" msgstr "Verificar credenciais do servidor" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 msgid "Use SSL/TLS" msgstr "Usar SSL/TLS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "Certificado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 msgid "Certificate to use in this connection" msgstr "Certificado para usar nessa conexão" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "Configuração avançada ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 #, fuzzy msgid "Default charset" msgstr "Codificação de caracteres" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 msgid "Advanced" msgstr "Avançado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "Test connection" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "Verificar credenciais de cliente" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 msgid "Local AET certificate" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 msgid "Certificate used by Ginkgo CADx" msgstr "Certificado usado pelo Ginkgo CADx" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 #, fuzzy msgid "Receiver organization Id" msgstr "Grid organization" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 #, fuzzy msgid "Petitioner System Id" msgstr "Identificador" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 #, fuzzy msgid "Filler Application Id" msgstr "Identificador" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 #, fuzzy msgid "Ginkgo CADx Application Id" msgstr "Ginkgo CADx" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 msgid "Integration engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 #, fuzzy msgid "Hostname / Port" msgstr "Impossível obter o nome da máquina" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "/" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 #, fuzzy msgid "Protocol" msgstr "Protocolo desconhecido" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ..\../main/gui/export/pasosexportacionbase.cpp:28 #, fuzzy msgid "Format" msgstr "PCX: formato de imagem não suportado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 #, fuzzy msgid "Message's format" msgstr "mensagem %s" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "ER7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 #, fuzzy msgid "Test engine" msgstr "Test connection" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 msgid "Test Integration Engine connectivity" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 #, fuzzy msgid "Ginkgo Extension Title" msgstr "Não foi possível carregar arquivo da biblioteca de extensão." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 msgid "Edit public key" msgstr "Editar chave pública" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "" "Usar certificado padrão (certificado configurado nas configurações do AET " "local)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 #, fuzzy msgid "Public key" msgstr "Editar chave pública" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 #, fuzzy msgid "Public key in PEM format" msgstr "Editar chave pública" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 #, fuzzy msgid "Load ..." msgstr "carregar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 #, fuzzy msgid "Private key" msgstr "" "\n" "Se você deseja utilizar SSL/TLS, você terá que informar um certificado " "válido e uma chave privada" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 #, fuzzy msgid "Private key in PEM format" msgstr "Você precisa configurar uma chave pública e uma privada" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 #, fuzzy msgid "Profile name" msgstr "Nome" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 #, fuzzy msgid "Set active" msgstr "Ativo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 msgid "Configure location" msgstr "Configurar localização" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 #, fuzzy msgid "Location" msgstr "Configurar localização" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "Limpar diretório após dicomização" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "Limpar diretório antes da dicomização" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 #, fuzzy msgid "Security type" msgstr "Tipo" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "Usuários" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 msgid "Change Password ..." msgstr "Alterar senha ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 #, fuzzy msgid "Set main password" msgstr "Você precisa escolher a senha principal" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 msgid "Set Password" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:736 msgid "Edit User" msgstr "Editar Usuário" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 msgid "User Name" msgstr "Nome de usuário" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 msgid "Confirm Password" msgstr "Confirmar Senha" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 #, fuzzy msgid "Properties" msgstr "&Propriedades" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:814 #, fuzzy msgid "Edit corner annotations" msgstr "Ocultar anotações de canto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue} where GGGG is the tag's group in hexadecimal and EEEE is the " "tag's element." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 #, fuzzy msgid "Window/level" msgstr "&Janela" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "Adicionar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ..\../main/gui/history3/historytoolmenu.cpp:149 #: ..\../widgets/gui/selecciontextobase.h:58 msgid "Edit" msgstr "Editar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 #, fuzzy msgid "Default Window/Level" msgstr "&Janela" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 #, fuzzy msgid "Corner annotations" msgstr "Ocultar anotações de canto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 #, fuzzy msgid "Setup corner annotations" msgstr "Ocultar anotações de canto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 #, fuzzy msgid "Setup..." msgstr "Configurar..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 #, fuzzy msgid "Other settings" msgstr "Configurações das extensões" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 #, fuzzy msgid "Interpolate pixel data" msgstr "XPM: Dados de pixel defeituosos!" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:885 #, fuzzy msgid "Hanging protocol" msgstr "Protocolo desconhecido" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 #, fuzzy msgid "Opening mode" msgstr "erro ao abrir '%s'" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 #, fuzzy msgid "Study opening criteria" msgstr "erro ao abrir '%s'" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 msgid "Workspace" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 #, fuzzy msgid "Enable/Disable" msgstr "Habilitar configuração remota do PACS" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 #, fuzzy msgid "Top left corner annotations" msgstr "Ocultar anotações de canto" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 #, fuzzy msgid "Setup window" msgstr "Configurar..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 #, fuzzy msgid "Set default" msgstr "" "Existe um problema durante a configuração da página: você pode precisar " "configurar a impressora default" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 #, fuzzy msgid "Open in main window" msgstr "&Janela" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 #, fuzzy msgid "Setup position..." msgstr "Configurar..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 msgid "Setup undocked window position" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 #, fuzzy msgid "Layout" msgstr "1x1 Layout" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 #, fuzzy msgid "Current layout" msgstr "Atual" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 #, fuzzy msgid "Columns" msgstr "Grade (duas colunas)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 #, fuzzy msgid "Series criteria" msgstr "Abrir Séries" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 #, fuzzy msgid "Select opening mode" msgstr "erro ao abrir '%s'" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 #, fuzzy msgid "Tag" msgstr "" "Aviso: tentativa de remoção de manipulador de tag HTML de uma pilha vazia." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 #, fuzzy msgid "Save" msgstr "&Salvar" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 #, fuzzy msgid "Enable background queries" msgstr "Cor do fundo" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 msgid "Smart retrieve" msgstr "" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 #, fuzzy msgid "Smart retrieve settings" msgstr "Configurações das extensões" #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.h:64 #, fuzzy msgid "Export DICOM" msgstr "Exportar DICOM" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 msgid "Ginkgo CADx private tags" msgstr "Ginkgo CADx private tags" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ..\../main/gui/history3/historypanel3.cpp:340 #: ..\../main/gui/history3/historytoolmenu.cpp:158 #, fuzzy msgid "Export" msgstr "Export images" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ..\../main/gui/export/parametrosprincipales.cpp:157 #, fuzzy msgid "Select the directory where the files will be stored" msgstr "O diretório DICOM é o local onde o histórico é armazenado" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 #, fuzzy msgid "Select the DICOM Dir folder" msgstr "Diretório DICOM" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 #, fuzzy msgid "DICOM Dir migration" msgstr "Diretório DICOM" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 #, fuzzy msgid "Migrate existing (recommended)" msgstr "Arquivo existente" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 #, fuzzy msgid "Continue..." msgstr "Avançar" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 #, fuzzy msgid "Select other" msgstr "SELECT" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 #, fuzzy msgid "Browse..." msgstr "Clique para procurar por um s�mbolo." #: ..\../main/gui/export/parametrosprincipales.cpp:106 msgid "DICOM Export" msgstr "Exportar DICOM" #: ..\../main/gui/export/parametrosprincipales.cpp:110 #, fuzzy msgid "Select the format and the images you want to export" msgstr "Você precisa selecionar as imagens que você deseja importar" #: ..\../main/gui/export/parametrosprincipales.cpp:143 #, fuzzy msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "Todos os arquivos (*.*)|*.*" #: ..\../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:150 #, fuzzy msgid "Select file" msgstr "Selecionar um arquivo" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "DICOM (native format)" msgstr "DICOM (formato nativo)" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 #, fuzzy msgid "Image (jpg, bmp, png)" msgstr "Não foi possível salvar imagem PNG." #: ..\../main/gui/export/pasosexportacionbase.cpp:38 #, fuzzy msgid "Export all files of opened tab" msgstr "Exportando arquivo %d de %d" #: ..\../main/gui/export/pasosexportacionbase.cpp:55 #, fuzzy msgid "JPEG" msgstr "JPEG: Não foi possível salvar imagem." #: ..\../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:40 #, fuzzy msgid "Image Export Wizard" msgstr "imagem" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ..\../main/gui/license/aboutdialogbase.cpp:67 #: ..\../main/gui/license/aboutdialogbase.cpp:151 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:54 msgid "&Accept" msgstr "&Aceitar" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "&Próximo >" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:32 #, fuzzy msgid "Open link" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:402 #, fuzzy msgid "File link:" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ..\../main/gui/import/pasosimportacionbase.cpp:270 #, fuzzy msgid "Study" msgstr "Erro ao carregar estudo: " #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:216 msgid "User name" msgstr "Nome de usuário" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:397 #, fuzzy msgid "Ginkgo Cloud link" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:437 #, fuzzy msgid "Copy to clipboard" msgstr "&Copiar" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "New Ginkgo Cloud study" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "To download the study, paste this url " msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 msgid "Creator" msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 #, fuzzy msgid "Last Modificator" msgstr "Refazer �ltima a��o" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 #, fuzzy msgid "Show link..." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "" #: ..\../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 #, fuzzy msgid "Invalid link" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:117 #: ..\../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "Abrir Séries" #: ..\../main/gui/history3/historypanel3.cpp:119 #: ..\../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "Abrir Séries com .." #: ..\../main/gui/history3/historypanel3.cpp:226 #: ..\../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "Idade" #: ..\../main/gui/history3/historypanel3.cpp:228 #, fuzzy msgid "Date acquired" msgstr "data" #: ..\../main/gui/history3/historypanel3.cpp:230 #, fuzzy msgid "Date added" msgstr "data" #: ..\../main/gui/history3/historypanel3.cpp:308 #: ..\../main/gui/history3/historytoolmenu.cpp:82 #: ..\../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "Adquirir" #: ..\../main/gui/history3/historypanel3.cpp:316 #: ..\../main/tools/dicomizetool.cpp:28 #, fuzzy msgid "Dicomize" msgstr "Fechar automaticamente Ginkgo CADx após dicomização" #: ..\../main/gui/history3/historypanel3.cpp:363 msgid "All patients" msgstr "Todos os pacientes" #: ..\../main/gui/history3/historypanel3.cpp:481 msgid "Results" msgstr "Resultados" #: ..\../main/gui/history3/historypanel3.cpp:481 #, c-format msgid " (%d images)" msgstr " (%d imagens)" #: ..\../main/gui/history3/historypanel3.cpp:634 #, fuzzy msgid "Open study with .." msgstr "&Abrir" #: ..\../main/gui/history3/historypanel3.cpp:663 #: ..\../main/gui/history3/historypanel3base.cpp:482 msgid "Synchronize" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:677 msgid "&Delete from history" msgstr "&Deletar do histórico" #: ..\../main/gui/history3/historypanel3.cpp:686 #, fuzzy msgid "&Clear history" msgstr "&Limpar" #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "" "Você alcançou o número máximo de abas abertas, feche algumas e tente " "novamente" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid "Unable to open modality " msgstr "Não foi possível abrir a modalidade " #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr " com a sintaxe de transferência " #: ..\../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "" "Não foi possível esvaziar o histórico, você precisa fechar os estudos abertos" #: ..\../main/gui/history3/historypanel3.cpp:1086 msgid "all files" msgstr "todos os arquivos" #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #, fuzzy msgid "Select at least one series" msgstr "Você precisa selecionar ao menos uma imagem" #: ..\../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "Você não pode remover séries abertas" #: ..\../main/gui/history3/historypanel3.cpp:1128 #, fuzzy msgid "those series" msgstr "Abrir Séries" #: ..\../main/gui/history3/historypanel3.cpp:1128 #, fuzzy msgid "this series" msgstr "Abrir Séries" #: ..\../main/gui/history3/historypanel3base.cpp:57 #, fuzzy msgid "Advanced search" msgstr "Avançado" #: ..\../main/gui/history3/historypanel3base.cpp:73 #, fuzzy msgid "Acquisition date" msgstr "data" #: ..\../main/gui/history3/historypanel3base.cpp:302 #: ..\../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "Confirmar remoção" #: ..\../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "Tem certeza que deseja excluir " #: ..\../main/gui/history3/historypanel3base.cpp:336 #: ..\../main/gui/history3/historytoolmenu.cpp:102 #: ..\../main/gui/history3/historytoolmenu.cpp:200 #: ..\../main/gui/history3/historytoolmenu.cpp:229 #, fuzzy msgid "Remove" msgstr "Remove" #: ..\../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:454 #: ..\../main/gui/history3/historypanel3base.h:187 #, fuzzy msgid "Synchronize files" msgstr "Arquivos" #: ..\../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" #: ..\../main/gui/history3/historytablemodel.cpp:406 #: ..\../main/gui/history3/historytablemodel.cpp:418 #: ..\../main/gui/history3/historytablemodel.cpp:473 #: ..\../main/gui/history3/historytablemodel.cpp:485 #: ..\../main/gui/open/dicomdirtablemodel.cpp:105 msgid "00/00/0000 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/history3/historytoolmenu.cpp:138 msgid "Close history" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:139 #: ..\../main/gui/startup/startupform.cpp:53 #, fuzzy msgid "History" msgstr " from History?" #: ..\../main/gui/history3/historytoolmenu.cpp:201 #: ..\../main/gui/history3/historytoolmenu.cpp:230 #, fuzzy msgid "Clear history" msgstr "&Limpar" #: ..\../main/gui/history3/historytoolmenu.cpp:232 #, fuzzy msgid "Select all" msgstr "Selecionar &tudo" #: ..\../main/gui/history3/historytoolmenu.cpp:233 #, fuzzy msgid "Deselect all" msgstr "Tudo" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 msgid "Destination" msgstr "Destino" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 #, fuzzy msgid "Status" msgstr "Status: " #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 msgid "Error message" msgstr "Mensagem de erro" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 msgid "Show Message" msgstr "Mostrar Mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 msgid "Edit Message" msgstr "Editar Mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 msgid "Delete message" msgstr "Excluir mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 msgid "Error editing message" msgstr "Erro ao editar mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 #, fuzzy msgid "Error purguing messages" msgstr "Erro ao deletar mensagens" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ..\../main/gui/progress/paneltarea.cpp:31 #, fuzzy msgid "Stop" msgstr "&Parar" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #, fuzzy msgid "Sent" msgstr "Erro ao enviar mensagem. Foi enviada " #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/progress/statusbarprogreso.cpp:281 msgid "Warning" msgstr "Atenção" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 msgid "Error getting message" msgstr "Erro ao obter mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 #, fuzzy msgid "Running" msgstr "Erro ao rodar a thread: " #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 msgid "Usually due to an error in sending a message" msgstr "Geralmente devido a um erro no envio de mensagem" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ..\../main/gui/progress/paneltarea.cpp:31 #, fuzzy msgid "Start" msgstr "Página inicial" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "Gostaria de remover estas mensagens?" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 msgid "Error deleting messages" msgstr "Erro ao deletar mensagens" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 #, fuzzy msgid "Remove sent messages" msgstr "Gostaria de remover estas mensagens?" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 msgid "Exit" msgstr "Sair" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 #, fuzzy msgid "Messages" msgstr "gerar mensagens de log detalhadas" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 #, fuzzy msgid "Refresh" msgstr "Atualizar" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1394 #, fuzzy msgid "View" msgstr "Exibir arquivos de forma detalhada" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 #, fuzzy msgid "Send task status:" msgstr "Status: " #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "Habilitado" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 #, fuzzy msgid "Message" msgstr "mensagem %s" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "Data:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 msgid "Destination:" msgstr "Destino:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 #, fuzzy msgid "Status:" msgstr "Status: " #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 #, fuzzy msgid "Message content:" msgstr "Conteúdo" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:142 #, fuzzy msgid "OK" msgstr "&OK" #: ..\../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "Overview data of DICOM files" #: ..\../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "" #: ..\../main/gui/import/generaldata.cpp:210 msgid "" "\n" "* The patient ID is required." msgstr "" "\n" "* É necessário o ID do paciente." #: ..\../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" "\n" "* Concatenação do nome e sobrenome do paciente não pode ultrapassar 61 " "caracteres." #: ..\../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" "\n" "* O formato da altura em centímetros não está correto. " #: ..\../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" "\n" "* A data de nascimento do paciente é mais recente que a data do estudo" #: ..\../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" "\n" "* O formato do peso não está correto. A faixa válida é entre 0 e 400 Kg." #: ..\../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "" #: ..\../main/gui/import/generaldata.cpp:231 msgid "Error validating fields" msgstr "Error validating fields" #: ..\../main/gui/import/pasoperfilimportacion.cpp:148 #, fuzzy msgid "Selecting Import Profile" msgstr "Confirmar remoção do perfil " #: ..\../main/gui/import/pasoperfilimportacion.cpp:152 #, fuzzy msgid "You must select the profile you want to use import" msgstr "Você precisa selecionar as imagens que você deseja importar" #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #, fuzzy msgid "You must select the import profile" msgstr "Você precisa selecionar as imagens que você deseja importar" #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:21 #, fuzzy msgid "Selected images" msgstr "Export images" #: ..\../main/gui/import/pasosimportacionbase.cpp:56 #, fuzzy msgid "Preview" msgstr " Visualizar" #: ..\../main/gui/import/pasosimportacionbase.cpp:62 #, fuzzy msgid "Remove all" msgstr "Remove" #: ..\../main/gui/import/pasosimportacionbase.cpp:113 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:65 msgid "Demographic data" msgstr "Dados demográficos" #: ..\../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "Identificator *" #: ..\../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "(ID ou número do histórico médico)" #: ..\../main/gui/import/pasosimportacionbase.cpp:159 #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "Birth date" msgstr "Data de nascimento" #: ..\../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "Sexo feminino" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:217 #, fuzzy msgid "Study Details" msgstr "&Detalhes" #: ..\../main/gui/import/pasosimportacionbase.cpp:234 #: ..\../wx/gnkinforme/gnkinformebase.cpp:122 msgid "Weight" msgstr "Peso" #: ..\../main/gui/import/pasosimportacionbase.cpp:245 #, fuzzy msgid "Kg" msgstr "" "\n" "* O formato do peso não está correto. A faixa válida é entre 0 e 400 Kg." #: ..\../main/gui/import/pasosimportacionbase.cpp:252 #: ..\../wx/gnkinforme/gnkinformebase.cpp:119 msgid "Height" msgstr "Altura" #: ..\../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "cm" #: ..\../main/gui/import/pasosimportacionbase.cpp:291 #: ..\../main/gui/import/pasosimportacionbase.cpp:333 #, fuzzy msgid "Time" msgstr "Tempo decorrido: " #: ..\../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:191 #, fuzzy msgid "Select files..." msgstr "SELECT" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 #, fuzzy msgid "Paste" msgstr "&Colar" #: ..\../main/gui/import/selectimagesimportation.cpp:203 #, fuzzy msgid "Paste from clipboard" msgstr "Falha ao obter dados da área de transferência" #: ..\../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "Voltar" #: ..\../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "Tem certeza que deseja deletar este arquivo do disco?" #: ..\../main/gui/import/selectimagesimportation.cpp:330 msgid "Delete selected items" msgstr "Excluir itens selecionados" #: ..\../main/gui/import/selectimagesimportation.cpp:342 msgid "You must select an image" msgstr "Você precisa selecionar uma imagem" #: ..\../main/gui/import/selectimagesimportation.cpp:346 msgid "Generating preview..." msgstr "Gerando pré-visualização..." #: ..\../main/gui/import/selectimagesimportation.cpp:500 #, fuzzy msgid "Select images" msgstr "Você precisa selecionar as imagens que você deseja importar" #: ..\../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "Criando Thumbnails..." #: ..\../main/gui/import/selectimagesimportation.cpp:715 #, fuzzy msgid "Image selection" msgstr "Sele��o" #: ..\../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "Você precisa selecionar as imagens que você deseja importar" #: ..\../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "Você precisa selecionar ao menos uma imagem" #: ..\../main/gui/import/selectimagesimportation.cpp:760 #, fuzzy msgid "The file" msgstr "Arquivo" #: ..\../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr " não existe" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:52 #, fuzzy msgid "Image Import Wizard" msgstr "imagem" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:167 msgid "free of" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:181 #, fuzzy msgid "in dicomization dir." msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "Tem certeza que quer cancelar o processo de importação?" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, fuzzy, c-format msgid "Step %d of %d: " msgstr "Página %d de %d" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "&Fim" #: ..\../main/gui/license/aboutdialog.cpp:25 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 #, fuzzy msgid "About" msgstr "&Sobre" #: ..\../main/gui/license/aboutdialogbase.cpp:22 msgid "Ginkgo CADx" msgstr "Ginkgo CADx" #: ..\../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "Créditos" #: ..\../main/gui/license/aboutdialogbase.cpp:55 #, fuzzy msgid "Licenses" msgstr "Licenças de Código Aberto" #: ..\../main/gui/license/aboutdialogbase.cpp:58 #, fuzzy msgid "UPDATE_INFO" msgstr "delegate has não tipo_devolvido info" #: ..\../main/gui/license/aboutdialogbase.cpp:108 #: ..\../main/gui/license/aboutdialogbase.h:88 msgid "Open Source Licenses" msgstr "Licenças de Código Aberto" #: ..\../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "Cairo" #: ..\../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "DCMTK" #: ..\../main/gui/license/aboutdialogbase.cpp:119 #, fuzzy msgid "FamFamFam Icons" msgstr "&Organizar ícones" #: ..\../main/gui/license/aboutdialogbase.cpp:120 #, fuzzy msgid "Fugue Icons" msgstr "&Organizar ícones" #: ..\../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "OpenSSL" #: ..\../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:126 msgid "WxWidgets" msgstr "WxWidgets" #: ..\../main/gui/license/aboutdialogbase.cpp:127 msgid "Zlib" msgstr "Zlib" #: ..\../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:130 #, fuzzy msgid "Dark Glass Icons" msgstr "&Organizar ícones" #: ..\../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:23 #: ..\../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" "Se você aceita os termos do acordo, clique em \"Eu aceito a licença\" para " "continuar. Você precisa aceitar a licença para começar a usar o Ginkgo CADx." #: ..\../main/gui/license/acceptlicensedialogbase.cpp:53 msgid "Check for updates automatically" msgstr "Verificar atualizações automaticamente" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:66 msgid "I Accept the license" msgstr "Eu aceito a licença" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "Eu NÃO aceito a licença" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 #, fuzzy msgid "Save logs" msgstr "&Salvar" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 msgid "File couldn't be stored " msgstr "O arquivo não pode ser armazenado " #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 msgid "Could not write to file" msgstr "Não foi possível escrever no arquivo" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 #, fuzzy msgid "Save log..." msgstr "Salvar conteúdo do log no arquivo" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 msgid "Clear log" msgstr "Limpar log" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 #, fuzzy msgid "Log" msgstr "&Log" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "Limpar" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "" #: ..\../main/gui/login/dialogologin.cpp:50 #, fuzzy msgid "The username or password is incorrect" msgstr "Falha na conexão: faltando usuário/senha." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:250 #, fuzzy msgid "Tasks" msgstr "0 tarefas sendo executadas." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1139 #, fuzzy msgid "Included in the history ..." msgstr " from History?" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "Check update error" msgstr "Erro verificando atualização" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #, fuzzy msgid "Malformed XML" msgstr "Dicomização XML" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1192 msgid "Error in interpreting the parameters of the command line. (" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #, fuzzy msgid "Error parsing integration XML:\n" msgstr "Erro interno na análise XML" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 msgid "PACS error:\n" msgstr "Erro do PACS:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #, fuzzy msgid "Error executing WorkFlow\n" msgstr "Erro ao criar o banco de dados:\n" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #, fuzzy msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" "Não foi possível enviar para o PACS:\n" "Erro interno" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #, fuzzy msgid "Close current view" msgstr "Fecha o documento atual" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 #, fuzzy msgid "Close all" msgstr "Fechar tudo" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 #, fuzzy msgid "Close all views" msgstr "Fechar tudo" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "&Sair" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "Exit application" msgstr "Sair da aplicação" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "Full screen" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Show full screen" msgstr "Exibir em tela cheia" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1302 #, fuzzy msgid "Tab grouping" msgstr "TAB" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1329 #, fuzzy msgid "Ginkgo CADx manual ..." msgstr "Ginkgo CADx" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1330 #, fuzzy msgid "Open test card" msgstr "Test connection" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "Verificar Atualizações" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for newest versions" msgstr "Verificar novas versões" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1332 #, fuzzy msgid "Need support ..." msgstr "Online support" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 #, fuzzy msgid "About " msgstr "&Sobre" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 msgid "HL7 monitor" msgstr "Monitor do HL7" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 msgid "HL7 message control" msgstr "Controle de mensagem do HL7" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 #, fuzzy msgid "Log monitor" msgstr "Monitor do HL7" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #, fuzzy msgid "Log monitored" msgstr "&Log" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1390 msgid "&File" msgstr "&Arquivo" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "&Editar" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "&Ajuda" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "Gostaria de salvar as modificações no estudo:" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1664 msgid "Unsaved data" msgstr "Dados não salvos" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "" "Erros ocorreram ao salvar as séries.\n" "Gostaria de fechar mesmo assim? " #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "Error saving" msgstr "Erro ao salvar" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "Full Screen" msgstr "Tela cheia" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "View Full Screen" msgstr "Ver em tela-cheia" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1708 #, fuzzy msgid "Tab Regroup" msgstr "TAB" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "&Fechar" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "&Close all" msgstr "&Fechar todos" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "Close all windows" msgstr "Fechar todas as janelas" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1728 #, fuzzy msgid "Tabbed organization" msgstr "Grid organization" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 #, fuzzy msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "Avisar sobre novas atualizações do Ginkgo CADx" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "Ginkgo CADx updated" msgstr "O Ginkgo CADX foi atualizado" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1782 #, fuzzy msgid "New version available (" msgstr " Vers�o " #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "Erro interno no processo de autenticação" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:29 #, fuzzy msgid "New Update" msgstr "&Novo" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:34 #, fuzzy msgid "New version available" msgstr " Vers�o " #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "Não me avisar novamente sobre essa atualização" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:43 msgid "X" msgstr "X" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:45 msgid "Close this notification" msgstr "Fechar esta notificação" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:104 msgid "The following commands will be aborted if you close the application" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:131 msgid "Close Ginkgo CADx" msgstr "Fechar Ginkgo CADx" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:138 msgid "User login" msgstr "Login do usuário" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:202 #, fuzzy msgid "System authentication" msgstr "Autenticação" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:260 #, fuzzy msgid "Login" msgstr "Login do usuário" #: ..\../main/gui/open/abrir.cpp:80 ..\../main/gui/open/abrir.cpp:82 msgid "Open..." msgstr "Abrir..." #: ..\../main/gui/open/opendialogs.cpp:58 #, fuzzy msgid "There was an error reading DICOMDIR file" msgstr "Erro ao ler imagem DIB." #: ..\../main/gui/open/opendialogs.cpp:62 #, fuzzy msgid "Select a valid DICOMDIR file" msgstr "Selecionar um arquivo" #: ..\../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:180 #: ..\../main/gui/open/opendialogsbase.cpp:170 #: ..\../main/gui/open/opendialogsbase.h:112 #, fuzzy msgid "Copy or link" msgstr "&Copiar" #: ..\../main/gui/open/opendialogsbase.cpp:22 #: ..\../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "Adquirir de um diretório DICOM" #: ..\../main/gui/open/opendialogsbase.cpp:94 #: ..\../main/gui/open/opendialogsbase.h:85 #, fuzzy msgid "Select drive" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:175 msgid "Do you want to copy or link files?" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ..\../main/gui/selectpacsserver/selectpacsserver.cpp:30 msgid "There aren't any PACS configured" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:69 #, fuzzy msgid "0000/00/00 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.h:57 #, fuzzy msgid "Upload study" msgstr "Enviar imagens para o servidor PACS" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 #, fuzzy msgid "Select PACS server" msgstr "Enviar imagens para o servidor PACS" #: ..\../main/gui/paneltags/paneltags.cpp:119 msgid "Metadata" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:120 msgid "Identification information" msgstr "Informações de identificação" #: ..\../main/gui/paneltags/paneltags.cpp:121 #, fuzzy msgid "Patient information" msgstr "Informação %s" #: ..\../main/gui/paneltags/paneltags.cpp:122 #, fuzzy msgid "Acquisition information" msgstr "Informação %s" #: ..\../main/gui/paneltags/paneltags.cpp:123 #, fuzzy msgid "Relationship information" msgstr "Informação %s" #: ..\../main/gui/paneltags/paneltags.cpp:124 #, fuzzy msgid "Image presentation information" msgstr "Informação %s" #: ..\../main/gui/paneltags/paneltags.cpp:125 ..\../widgets/wtextbox.cpp:525 #, fuzzy msgid "Text" msgstr "(Texto normal)" #: ..\../main/gui/paneltags/paneltags.cpp:126 #, fuzzy msgid "Other" msgstr "O encaixamento s� � suportado nas vers�es wxMSW, wxMac e wxGTK" #: ..\../main/gui/paneltags/paneltags.cpp:137 #: ..\../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "Dados" #: ..\../main/gui/previewpanel/previewpanel.cpp:47 msgid "Hide" msgstr "Ocultar" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:187 #: ..\../main/gui/previewpanel/previewpanelbase.cpp:207 msgid "Previews" msgstr "" #: ..\../main/gui/progress/progresobase.cpp:23 #, fuzzy msgid "There is no running tasks" msgstr "0 tarefas sendo executadas." #: ..\../main/gui/progress/statusbarprogreso.cpp:165 msgid "0 running tasks." msgstr "0 tarefas sendo executadas." #: ..\../main/gui/progress/statusbarprogreso.cpp:192 #, fuzzy, c-format msgid "There are %d pending tasks" msgstr "0 tarefas sendo executadas." #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.h:55 #, fuzzy msgid "Select PACS" msgstr "SELECT" #: ..\../main/gui/startup/startupformbase.cpp:29 #, fuzzy msgid "http://ginkgo-cadx.com" msgstr "Habilitar proxy HTTP" #: ..\../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:47 #, fuzzy msgid "Ginkgo CADx Pro" msgstr "Ginkgo CADx" #: ..\../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "" #: ..\../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "Página inicial" #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete Widget" msgstr "Excluir Widget" #: ..\../main/managers/widgetsmanager.cpp:1090 #, fuzzy msgid "Properties ..." msgstr "&Propriedades" #: ..\../main/managers/widgetsmanager.cpp:1090 #, fuzzy msgid "Widget Properties" msgstr "&Propriedades" #: ..\../main/tools/addfiletohistorytool.cpp:114 #, fuzzy msgid "Open file" msgstr "Abrir arquivo" #: ..\../main/tools/addfiletohistorytool.cpp:115 #: ..\../main/tools/openfoldertool.cpp:27 #, fuzzy msgid "Open folder" msgstr "&Abrir" #: ..\../main/tools/addfiletohistorytool.cpp:116 #: ..\../main/tools/openremovabletool.cpp:28 #, fuzzy msgid "Open removable unit" msgstr "&Abrir" #: ..\../main/tools/addfiletohistorytool.cpp:117 #: ..\../main/tools/openginkgocloudlinktool.cpp:27 msgid "Open Ginkgo Cloud link" msgstr "" #: ..\../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "" #: ..\../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "" #: ..\../main/tools/colormaptool.cpp:110 msgid "Invert color map" msgstr "" #: ..\../main/tools/cornerannotationstool.cpp:44 msgid "Hide corner annotations" msgstr "Ocultar anotações de canto" #: ..\../main/tools/cornerannotationstool.cpp:46 msgid "Show corner annotations" msgstr "Mostrar anotações de canto" #: ..\../main/tools/detachwindowtool.cpp:42 #, fuzzy msgid "Attach View" msgstr "" "):\n" "Verifique a configuração e anexe-a se necessário" #: ..\../main/tools/detachwindowtool.cpp:44 #, fuzzy msgid "Detach view" msgstr "Exibir arquivos de forma detalhada" #: ..\../main/tools/dicomizetool.cpp:28 #, fuzzy msgid "Dicomize files" msgstr "Arquivos" #: ..\../main/tools/exportdicomdirtool.cpp:32 #, fuzzy msgid "Export to DICOM Dir" msgstr "Exportar DICOM" #: ..\../main/tools/markertool.cpp:171 #, fuzzy msgid "Point" msgstr "Tamanho da fonte:" #: ..\../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "Seta" #: ..\../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "Elipse" #: ..\../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "" #: ..\../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "" #: ..\../main/tools/markertool.cpp:176 msgid "Free form" msgstr "" #: ..\../main/tools/metricgridtool.cpp:57 msgid "Grid" msgstr "Grade" #: ..\../main/tools/metricgridtool.cpp:67 msgid "Grid Scale" msgstr "Escala da grade" #: ..\../main/tools/metricgridtool.cpp:74 #, fuzzy msgid "Scale X" msgstr "Escala no eixo X" #: ..\../main/tools/metricgridtool.cpp:78 msgid "X axis scale" msgstr "Escala no eixo X" #: ..\../main/tools/metricgridtool.cpp:87 #, fuzzy msgid "Scale Y" msgstr "Escala no eixo Y" #: ..\../main/tools/metricgridtool.cpp:91 msgid "Y axis scale" msgstr "Escala no eixo Y" #: ..\../main/tools/metricgridtool.cpp:206 msgid "Show grid" msgstr "Mostrar grade" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "Configurar Grade ..." #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "Configurar Grade" #: ..\../main/tools/metricgridtool.cpp:250 msgid "Hide Grid" msgstr "Ocultar grade" #: ..\../main/tools/metricgridtool.cpp:252 msgid "Show Grid" msgstr "Mostrar Grade" #: ..\../main/tools/openfiletool.cpp:28 msgid "Open File" msgstr "Abrir arquivo" #: ..\../main/tools/pacsuploadtool.cpp:54 msgid "Send to PACS..." msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:59 msgid "Unset pixels blurring" msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:61 msgid "Set pixels blurring" msgstr "" #: ..\../main/tools/queryretrievehistorytool.cpp:25 #, fuzzy msgid "PACS Q/R" msgstr "Explorando PACS..." #: ..\../main/tools/queryretrievetool.cpp:94 #: ..\../main/tools/searchginkgocloudhistorytool.cpp:28 #, fuzzy msgid "Search Ginkgo Cloud" msgstr "Pesquisar" #: ..\../main/tools/rotateandfliptool.cpp:151 #, fuzzy msgid "Undo rotate and flip" msgstr "&Desfazer" #: ..\../main/tools/rotateandfliptool.cpp:153 #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:156 msgid "Flip horizontal" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:157 msgid "Flip vertical" msgstr "" #: ..\../main/tools/sendpacstool.cpp:34 msgid "Send to PACS" msgstr "" #: ..\../main/tools/sendpacstool.cpp:70 #, fuzzy msgid "Sending to PACS..." msgstr "Erro ao enviar mensagem:" #: ..\../main/tools/showtagstool.cpp:42 #, fuzzy msgid "Hide DICOM inspector" msgstr "DICOM Inspector" #: ..\../main/tools/showtagstool.cpp:44 #, fuzzy msgid "Show DICOM inspector" msgstr "DICOM Inspector" #: ..\../main/tools/simpleprinttool.cpp:119 #, fuzzy msgid "Image printing" msgstr "Imprimindo " #: ..\../main/tools/simpleprinttool.cpp:224 #, fuzzy msgid "Page setup" msgstr "Configurar Página" #: ..\../main/tools/simpleprinttool.cpp:225 #, fuzzy msgid "Print preview" msgstr "Visualizar impressão" #: ..\../main/tools/simpleprinttool.cpp:272 #, fuzzy msgid "Print image" msgstr "&Imprimir" #: ..\../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "Calcular automaticamente" #: ..\../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "" #: ..\../main/tools/undotool.cpp:110 #, fuzzy msgid "Redo" msgstr "&Refazer" #: ..\../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "" #: ..\../main/tools/videotool.cpp:153 #, fuzzy msgid "Enable loop" msgstr "Habilitar configuração remota do PACS" #: ..\../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:267 #, fuzzy msgid "Add column" msgstr "SOMA" #: ..\../main/tools/windowlayouttool.cpp:268 #, fuzzy msgid "Add row" msgstr "SOMA" #: ..\../main/tools/windowlayouttool.cpp:270 #, fuzzy msgid "Remove column" msgstr "Remove" #: ..\../main/tools/windowlayouttool.cpp:271 #, fuzzy msgid "Remove row" msgstr "Remove" #: ..\../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "1x1 Layout" #: ..\../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "1x2 Layout" #: ..\../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "Plano 2x1" #: ..\../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "Plano 2x2" #: ..\../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "Plano 3x3" #: ..\../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "Plano 4x4" #: ..\../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:82 #, fuzzy msgid "The tool is already registered" msgstr "Objeto já registrado passado a SetObjectClassInfo" #: ..\../main/toolsystem/toolsregistry.cpp:187 #, fuzzy msgid "The module " msgstr "Inicialização do modulo \"%s\" falhou" #: ..\../resources/ginkgoresourcesmanager.cpp:49 msgid "Unable to load PNG bitmap resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:56 msgid "Unable to load PNG image resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:63 msgid "Unable to load GIF animation resource" msgstr "" #: ..\../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "" #: ..\../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "Valor de calibração é muito baixo" #: ..\../widgets/gui/calibracion.cpp:219 msgid "Enter the calibration value" msgstr "Informe o valor de calibração" #: ..\../widgets/gui/calibracion.cpp:225 #, fuzzy msgid "The calibration value is too low" msgstr "Valor de calibração é muito baixo" #: ..\../widgets/gui/calibracion.cpp:229 #, fuzzy msgid "The calibration value is too high" msgstr "Valor de calibração é muito baixo" #: ..\../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "Calibrando..." #: ..\../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "Distância" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "Centímetros" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "" #: ..\../widgets/gui/selecciontextobase.cpp:26 #, fuzzy msgid "Note" msgstr "Nota, 8 1/2 x 11 in" #: ..\../widgets/wangulo.cpp:1101 ..\../widgets/wangulo.cpp:1103 #, fuzzy msgid "Type" msgstr "Tipo" #: ..\../widgets/wangulo.cpp:1101 #, fuzzy msgid "Normal" msgstr "Normal" #: ..\../widgets/wangulo.cpp:1103 msgid "Cobb" msgstr "" #: ..\../widgets/welipse.cpp:721 ..\../widgets/wfreeform.cpp:470 #: ..\../widgets/wpolygon.cpp:574 msgid "Center (I)" msgstr "Centro (I)" #: ..\../widgets/welipse.cpp:727 ..\../widgets/wfreeform.cpp:476 #: ..\../widgets/wpolygon.cpp:580 msgid "Center (M)" msgstr "Centro (M)" #: ..\../widgets/welipse.cpp:762 ..\../widgets/welipse.cpp:766 msgid "Greater Radius" msgstr "" #: ..\../widgets/welipse.cpp:763 ..\../widgets/welipse.cpp:767 #, fuzzy msgid "Lower Radius" msgstr "Letras min�sculas" #: ..\../widgets/wfreeform.cpp:482 ..\../widgets/wpolygon.cpp:586 #, fuzzy msgid "Number of Vertex" msgstr "&N�mero:" #: ..\../widgets/wpunto.cpp:353 #, fuzzy msgid "Position (I)" msgstr "%i de %i" #: ..\../widgets/wpunto.cpp:358 #, fuzzy msgid "Position (M)" msgstr "A posi��o da tabula��o." #: ..\../widgets/wrule.cpp:558 #, fuzzy msgid "Image Calibration" msgstr "imagem" #: ..\../widgets/wrule.cpp:663 #, fuzzy msgid "Length" msgstr "tamanho do arquivo armazenado n�o consta do cabe�alho Zip" #: ..\../widgets/wrule.cpp:668 #, fuzzy msgid "Points (I)" msgstr "%i de %i" #: ..\../widgets/wrule.cpp:675 #, fuzzy msgid "Points (M)" msgstr "Lista o tamanho das fontes em pontos." #: ..\../widgets/wtextbox.cpp:445 #, fuzzy msgid "Default text" msgstr "padrão" #: ..\../wx/gnkinforme/gnkinformebase.cpp:41 #, fuzzy msgid "Commit date" msgstr "data" #: ..\../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "%d/%m/%Y" #: ..\../wx/gnkinforme/gnkinformebase.cpp:214 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:219 #, fuzzy msgid "Modified" msgstr "Modificado" #: ..\../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "644654645" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:130 msgid "Commit inform" msgstr "" #: ..\../wx/propiedades/wxpropiedades.cpp:30 #, fuzzy msgid "Properties of " msgstr "&Propriedades" #: ..\../wx/propiedades/wxpropiedadesbase.cpp:31 #, fuzzy msgid "Widget's Name" msgstr "Excluir Widget" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "< &Anterior" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "&Cancelar" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3701 #, fuzzy msgid "Regular expression invalid: '" msgstr "Expressão regular '%s' inválida: %s" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "" #: ..\../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.h:56 #, fuzzy msgid "Overwrite Paths" msgstr "Impossível sobrescrever o arquivo '%s'" #: ..\../ginkgopro/ginkgo_pro_defines.h:21 msgid "Professional DICOM CADx environment" msgstr "" #: ..\../main/controllers/dcmtk/dicomservers.h:39 #, fuzzy msgid "Server not found" msgstr "Encontrado" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:99 #, fuzzy msgid "DICOM Query/Retrieve" msgstr "Impossível obter política de agendamento de threads." #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:123 #, fuzzy msgid "Not found" msgstr "Encontrado" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:418 #, fuzzy msgid "Advanced Settings" msgstr "Configurações avançadas..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:570 #, fuzzy msgid "Edit profile" msgstr "Editar ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:665 #, fuzzy msgid "Add/Edit Location" msgstr "Editar ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:784 #, fuzzy msgid "Add window/level" msgstr "&Janela" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 #, fuzzy msgid "Add tag" msgstr "SOMA" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 #, fuzzy msgid "Setup window position" msgstr "Configurar..." #: ..\../main/gui/countdownmessage/countdownmessagebase.h:61 #, fuzzy msgid "Closing" msgstr "" "Erros ocorreram ao salvar as séries.\n" "Gostaria de fechar mesmo assim? " #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 #, fuzzy msgid "DICOM Dir configuration" msgstr "Diretório DICOM" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:70 #, fuzzy msgid "Open Ginkgo Cloud" msgstr "&Abrir" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:123 #, fuzzy msgid "Ginkgo Cloud search" msgstr "Pesquisar" #: ..\../main/gui/history3/confirmdeletedialog.h:24 msgid " from History?" msgstr " from History?" #: ..\../main/gui/history3/historypanel3base.h:100 #, fuzzy msgid "Medical history" msgstr "(ID ou número do histórico médico)" #: ..\../main/gui/history3/historypanel3base.h:161 #, fuzzy msgid "Open With ..." msgstr "&Abrir" #: ..\../main/gui/history3/openwithdialog.h:72 #, fuzzy msgid "Select a View" msgstr "Selecionar uma visualização do documento" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 #, fuzzy msgid "Message detail" msgstr "mensagem %s" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 #, fuzzy msgid "Log node" msgstr "&Log" #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:87 #, fuzzy msgid "Closing Ginkgo CADx" msgstr "Ginkgo CADx" #: ..\../main/gui/paneltags/paneltagsbase.h:57 msgid "DICOM Inspector" msgstr "DICOM Inspector" #: ..\../main/license.h:31 msgid "Open Source DICOM CADx environment" msgstr "" #: ..\../widgets/gui/calibracionbase.h:65 #, fuzzy msgid "Calibration" msgstr "Valor de calibração é muito baixo" #: ..\../wx/propiedades/wxpropiedadesbase.h:62 #, fuzzy msgid "Properties of ..." msgstr "&Propriedades" #: ..\../wx/thumbnailctrl/thumbnailwidget.h:44 #, fuzzy msgid "Image Browser Dialog" msgstr "Opções da Ajuda do Navegador" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.h:60 #, fuzzy msgid "Test title" msgstr "Test connection" #~ msgid "Failed to store the file, check permissions on the directory" #~ msgstr "" #~ "Ocorreu uma falha ao armazenar o arquivo, verifique permissões no " #~ "diretório" #, fuzzy #~ msgid "The key files will not be exported" #~ msgstr "Arquivos" #~ msgid "Current" #~ msgstr "Atual" #~ msgid "All" #~ msgstr "Todos(as)" #~ msgid "BMP" #~ msgstr "BMP" #, fuzzy #~ msgid "PNG" #~ msgstr "Não foi possível salvar imagem PNG." #~ msgid "Content" #~ msgstr "Conteúdo" #, fuzzy #~ msgid "Tile Horizontally" #~ msgstr "Lado a lado &horizontalmente" #, fuzzy #~ msgid "Tile Vertically" #~ msgstr "Lado a lado &verticalmente" #~ msgid "Grid (two columns)" #~ msgstr "Grade (duas colunas)" #~ msgid "Grid (three columns)" #~ msgstr "Grade (três colunas)" #~ msgid "Grid organization" #~ msgstr "Grid organization" #~ msgid "Color" #~ msgstr "Cor" #, fuzzy #~ msgid "Vertex (I)" #~ msgstr "%i de %i" #, fuzzy #~ msgid "Vertex (M)" #~ msgstr "Centro (M)" #~ msgid "Center" #~ msgstr "Centro" #~ msgid "0" #~ msgstr "0" #~ msgid "Checking program updates..." #~ msgstr "Verificando atualizações para o programa..." #~ msgid "Untitled" #~ msgstr "Sem nome" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">" #~ msgstr ">" #~ msgid "<" #~ msgstr "<" #~ msgid "<<" #~ msgstr "<<" #~ msgid "unknown column" #~ msgstr "coluna desconhecida" #~ msgid "Zoom" #~ msgstr "Zoom" #~ msgid "Options" #~ msgstr "Opções" #~ msgid "Family" #~ msgstr "Família" #~ msgid "Face Name" #~ msgstr "Nome da Face" #~ msgid "Categorized Mode" #~ msgstr "Modo Categorizado" #~ msgid "Alphabetic Mode" #~ msgstr "Modo Alfabético" #~ msgid "False" #~ msgstr "Falso" #~ msgid "Unspecified" #~ msgstr "Não especificado" #~ msgid "Error in resource: %s" #~ msgstr "Erro no recurso: %s" #~ msgid "Value must be %lld or higher" #~ msgstr "O valor precisa ser %lld ou maior" #~ msgid "Value must be %llu or higher" #~ msgstr "O valor precisa ser %llu ou maior" #~ msgid "Value must be %llu or less" #~ msgstr "O valor precisa ser %llu ou menor" #~ msgid "Value must be %f or higher" #~ msgstr "O valor precisa ser %f ou maior" #~ msgid "Value must be %f or less" #~ msgstr "O valor precisa ser %f ou menor" #~ msgid "Choose a directory:" #~ msgstr "Escolha um diretório:" #~ msgid "Choose a file" #~ msgstr "Escolha um arquivo" #~ msgid "Configure proxy" #~ msgstr "Configurar proxy" #~ msgid "Use system settings" #~ msgstr "Use system settings" #~ msgid "Authenticate" #~ msgstr "Authenticate" #~ msgid "Show / Hide DICOM tags panel" #~ msgstr "Mostrar / Esconder painel de tags DICOM" #~ msgid "Visualization" #~ msgstr "Calibrando..." #~ msgid "http://ginkgo-cadx.com/en/services/" #~ msgstr "http://ginkgo-cadx.com/en/services/" #~ msgid "Double click to edit" #~ msgstr "Clique duas vezes para editar" #~ msgid "" #~ "No results obtained. Maybe you have a wrong PACS server configuration" #~ msgstr "" #~ "Nenhum resultado obtido. Talvez você tenha uma configuração inválida do " #~ "servidor PACS" #~ msgid "" #~ "No results obtained in PACS retrieve.\n" #~ "Maybe study doesn't exist or you have a wrong PACS server configuration." #~ msgstr "" #~ "Nenhum resultado obtido. Talvez você tenha uma configuração inválida do " #~ "servidor PACS" #~ msgid "Clean" #~ msgstr "Limpar" #~ msgid "Error: " #~ msgstr "Erro: " #~ msgid "Error: No images were downloaded" #~ msgstr "Erro: Nenhuma imagem foi baixada" #~ msgid "Error starting network support" #~ msgstr "Erro ao iniciar o suporte a rede" #~ msgid "The selected directory does must be empty" #~ msgstr "O diretório selecionado não pode ser aberto" #~ msgid "Choose the import profile" #~ msgstr "Escolha o perfil de importação" #~ msgid "An error ocurred loading Ginkgo News check your internet connection" #~ msgstr "" #~ "Um erro ocorreu carregando o Ginkgo News. Verifique sua conexão com a " #~ "internet" #~ msgid "%m-%d-%y %H:%M:%S,%q" #~ msgstr "%d-%m-%y %H:%M:%S,%q" #~ msgid "Extensions Support" #~ msgstr "Suporte a extensões" #~ msgid "URL for new extensions" #~ msgstr "URL para novas extensões" #~ msgid "" #~ "\n" #~ "There are %d files that overwrite existing files" #~ msgstr "" #~ "\n" #~ "Existem %d arquivos que sobrescrevem arquivos existentes" #~ msgid "Display Options" #~ msgstr "Opções de Exibição" #~ msgid "Close Panel" #~ msgstr "Fechar Painel" #~ msgid "Close All" #~ msgstr "Fechar todos" #~ msgid "Error deleting the patient in the database:\n" #~ msgstr "Erro ao deletar o paciente no banco de dados:\n" #~ msgid "Error deleting the Study of database:\n" #~ msgstr "Erro ao deletar o Estudo do banco de dados:\n" #~ msgid "Error deleting file from de database: \n" #~ msgstr "Erro ao deletar arquivo do banco de dados: \n" #~ msgid "Error deleting file from database:\n" #~ msgstr "Erro ao deletar um arquivo do banco de dados:\n" #~ msgid "Closing windows..." #~ msgstr "Fechando janelas..." #~ msgid "Opening series..." #~ msgstr "Abrindo séries..." #~ msgid "Activate" #~ msgstr "Ativar" #~ msgid "Not loaded" #~ msgstr "Not loaded" #~ msgid "Import global..." #~ msgstr "&Importar ..." #~ msgid "Obtain extensions..." #~ msgstr "Obtain extensions..." #~ msgid "1.0" #~ msgstr "1.0" #~ msgid "Select files you want to export" #~ msgstr "Selecione os arquivos DICOM que você deseja enviar" #~ msgid "Select Series you want to export" #~ msgstr "Select Series you want to export" #~ msgid "You can't remove opened studies" #~ msgstr "Você não pode remover estudos abertos" #~ msgid "error, have tried to select a file that is not added to history" #~ msgstr "" #~ "erro, tentou-se selecionar um arquivo que não está adicionado ao histórico" #~ msgid "" #~ "\n" #~ "There aren't any stored study that matches with the search filter.\n" #~ msgstr "" #~ "\n" #~ "Não existem estudos guardados que correspondem com o filtro de busca\n" #~ msgid "" #~ "\n" #~ "To begin working must change filter criteria, acquire an existing study " #~ "or import images in DICOM format.\n" #~ msgstr "" #~ "\n" #~ "Para começar é necessário alterar os critérios do filtro, adquirir um " #~ "estudo existente ou importar imagens no formato DICOM.\n" #~ msgid "" #~ "\n" #~ "There is no size in the medical history to show every patients\n" #~ msgstr "" #~ "\n" #~ "Não existe espaço no histórico médico para mostrar todos os pacientes\n" #~ msgid "" #~ "\n" #~ "Try using filters or collapsing nodes and refresh search\n" #~ msgstr "" #~ "\n" #~ "Tente utilizar filtros ou reduzir nós e atualize a busca\n" #~ msgid "Acquiring a new DICOM study" #~ msgstr "Adquirindo um novo estudo DICOM" #~ msgid "&Open File" #~ msgstr "&Abrir Arquivo" #~ msgid "Open a DICOM file" #~ msgstr "Abrir um arquivo DICOM" #~ msgid "&Open Folder" #~ msgstr "&Abrir Diretório" #~ msgid "Acquire from a local folder" #~ msgstr "Adquirir de um diretório local" #~ msgid "&Import ..." #~ msgstr "&Importar ..." #~ msgid "12412012 Q" #~ msgstr "12412012 Q" #~ msgid "31/08/1983" #~ msgstr "31/08/1983" #~ msgid "10:20" #~ msgstr "10:20" #~ msgid "31/02/2010" #~ msgstr "31/02/2010" #~ msgid "CT" #~ msgstr "CT" #~ msgid "" #~ msgstr "" #~ msgid "Birth date: " #~ msgstr "Data de nascimento: " #~ msgid "&Delete Patient from History" #~ msgstr "&Deletar paciente do histórico" #~ msgid "Failed to remove patient, you have to close opened studies" #~ msgstr "" #~ "Não foi possível remover paciente, você precisa fechar os estudos abertos" #~ msgid "Date: " #~ msgstr "Data: " #~ msgid " for all their support in Ginkgo CADx creation!" #~ msgstr " por todo seu apoio na criação do Ginkgo CADx!" #~ msgid "" #~ "Debian-Med team specially Andreas Tille and Karlsten Hilbert: packaging, " #~ "testing and bug reporting" #~ msgstr "" #~ "time Debian-Med especialmente Andreas Tille e Karlsten Hilbert: " #~ "empacotamento, testes e relatórios de bug" #~ msgid "Acquire from a removable unit" #~ msgstr "Acquire from a removable unit" #~ msgid "DICOM &acquisition from PACS" #~ msgstr "DICOM &acquisition from PACS" #~ msgid "Get extensions ..." #~ msgstr "Obter extensões ..." #~ msgid "Start page ..." #~ msgstr "Página inicial ..." #~ msgid "About &Ginkgo CADx ..." #~ msgstr "Sobre o &Ginkgo CADx ..." #~ msgid "About Ginkgo CADx ..." #~ msgstr "Sobre o Ginkgo CADx ..." #~ msgid "Ginkgo CADx settings" #~ msgstr "Ginkgo CADx settings" #~ msgid "3D tools" #~ msgstr "Ferramentas 3D" #~ msgid "Creating new images ..." #~ msgstr "Criando novas imagens ..." #~ msgid "Show On Startup" #~ msgstr "Exibir ao Iniciar" #~ msgid "Deleting a Column" #~ msgstr "Deletando Coluna" #~ msgid "Deleting a Row" #~ msgstr "Deletando Linha" #~ msgid "1x1" #~ msgstr "1x1" #~ msgid "1x2" #~ msgstr "1x2" #~ msgid "2x1" #~ msgstr "2x1" #~ msgid "2X2" #~ msgstr "2X2" #~ msgid "3x3" #~ msgstr "3x3" #~ msgid "4x4" #~ msgstr "4x4" #~ msgid "About Ginkgo CADx..." #~ msgstr "Sobre o Ginkgo CADx ..." #~ msgid " WL" #~ msgstr " WL" #~ msgid " WW" #~ msgstr " WW" #~ msgid " is compatible with Ginkgo CADx " #~ msgstr " é compatível com o Ginkgo CADx " #~ msgid "Are you sure to delete the tag" #~ msgstr "Tem certeza que deseja deletar a tag" #~ msgid "Birthday" #~ msgstr "Data de nascimento" #~ msgid "Code:" #~ msgstr "Código:" #~ msgid "Confirm the removal of the server" #~ msgstr "Confirmar remoção do servidor" #~ msgid "Correction" #~ msgstr "Correção" #~ msgid "Error in receiving the response" #~ msgstr "Erro ao receber a resposta" #~ msgid "Error when making SSL connection" #~ msgstr "Erro ao fazer a conexão SSL" #~ msgid "Error when making the request, writing incomplete" #~ msgstr "Erro ao fazer a requisição, escrita incompleta" #~ msgid "" #~ "Failed to perform the HTTP request, the server returned the error code " #~ msgstr "" #~ "Falha ao fazer a requisição HTTP, o servidor retornou com código de erro " #~ msgid "In connection openssl Exception:" #~ msgstr "Exceção durante conexão openssl" #~ msgid "No options" #~ msgstr "Sem opções" #~ msgid "No results obtained" #~ msgstr "Nenhum resultado obtido" #~ msgid "http://ginkgo-cadx.com/en/extensions/" #~ msgstr "http://ginkgo-cadx.com/en/extensions/" #~ msgid "%d/%m/%Y %H:%M:%S" #~ msgstr "%d/%m/%Y %H:%M:%S" #~ msgid "Association Aborted" #~ msgstr "Associação Abortada" #~ msgid "Clean finished downloads" #~ msgstr "Limpar downloads concluídos" #~ msgid "" #~ "Diagnostic files can't be opened, you have to open the diagnosed series" #~ msgstr "" #~ "Arquivos de diagnóstico não podem ser abertos, você precisa abrir a série " #~ "de diagnóstico." #~ msgid "Downloads" #~ msgstr "Downloads" #~ msgid "" #~ "Error in interpreting the parameters of the command line. The file or " #~ "directory doesn't exist (" #~ msgstr "" #~ "Erro ao interpretar os parâmetros da linha de comando. O arquivo ou " #~ "diretório não existe (" #~ msgid "Finished" #~ msgstr "Concluído." #~ msgid "Open again" #~ msgstr "Abrir novamente" #~ msgid "" #~ "The series selected is already open\n" #~ "Do you want to open it again?" #~ msgstr "" #~ "A série selecionada já está aberta\n" #~ "Você deseja abri-la novamente?" #~ msgid "The service did not respond correctly to the DICOM standard:" #~ msgstr "O serviço não respondeu corretamente ao padrão DICOM:" #~ msgid "Updates" #~ msgstr "Atualizações" #~ msgid "Uploading to the PACS ..." #~ msgstr "Enviando para o PACS ..." #~ msgid "Welcome" #~ msgstr "Bem-vindo" #~ msgid "Username:" #~ msgstr "Nome do usuário:" ginkgocadx-3.8.7/cadxcore/lang/pt_BR/wxstd.mo000066400000000000000000004300051314736454600211130ustar00rootroot00000000000000.9 rh?i? #,2:A` ֚ * 9,Dq   ɛ ؛  #,1@HPY_pw~ ̜Ԝ $*29IQ Wex  ڝ  %27=R[`fn ~  ǞӞڞ   )3 G Q]cip ğџ !'6>GPY`e k v ƠΠ֠۠4 $>!c*/ȡ: 3TX_ f tŢ ɢ Ԣ ߢ   #-DViq ãɣϣף#ޣ/2EZ3\56Ƥ-DT jե6Mjʦڦ  (4 8CKi4. &/ B M Ycgy 6" "-:P ϩ ש 1Kb~ ת *DI!h"-ǫ1('P U`tɬ1Ь1 @KR erzҭ!(007hn v FԮ);Oo%#ʯ"*(<&e%%6ذ",?O1ű 2$J!oG((:-c%3 -$Rh %")@j ߵ)#;'_"޶#,5S Zg oz B'!;+]"Ÿ&#+)O$y&Źع 3HOek"$ú# +- Y(z%$ &+!R&t#"#*!1#Sw }/,=$UzN*R(f)¿ʿ ("*CKP$_!%&# 8!Rt"6'R!z!*!Df(".&7'^/#C#B^(v9 9%_p  !,(1U0%% %*#1/U!#    ) 7 B O [gx-  ~ ""20Qc2v"v  -16;OS)Y   -E`} ,LI$%Bh 0?J\,$ 2!3T$*.#?^ }-"'0"H9k$0"&:"a$8G!c/A1.)Xw2)2 ?/\/%##"3F"z(%$ -TN*(($:$_'"!#5E${ + -Lz"#";^+}' -' "H5k'&-S>/+&,2B)u-&&+9e('-!;%)a323-Dr$;)2;!n**=46k"(  $+0 6A G/S 4 "BSY'qk S^f#y!#28O W%b*  5'T| 2 *DM Ua/"  )J'c 6Q'wy$72%)X$j%}+%/3%Yx-  *F1L~(#36L6#81;m%!!&!@b!| & &0MT[_f o z      '.4C HR Wja 5J%e6% \0j  #)%Ok~ | $ . 8 D O Zdw   ! . :EW ` j u      ( 4?&X  !"'CJ '+ #'9Qd |  *& ,5J1y$- R%s%F!!C'Lt)&  #2F*Mx7! !4C*Kv0 8HP(W5:?#^ $1 V %t  $  $  $; ` $}  $  $ & $C h $          0 &7 ^ d t  |     " 1 A 9   */5#e      )9Kj{   !8 LXHa8  %.3;MTZc{!3#w "DK ]kt | $- +=C Zf mw  / %,O3  <  +6Qh% )#)EM?*3Kc~'%*,D\chnsy -1+%<)b  6$4 ; FSq  &#Aev /,0._|z()0o 82 k | '   &  !!/+![!l!!!!!!!""6"Q"k"}"P"#"##)#<#.# $$2$J$ ^$!$$'$$*$%)%<%X%m%%0%%"X&>{&M&\'e'7w'a'V(Oh(@(Y(#S)w))B)))**1#*U*;n**** **A*#+8+=+O+f+%+L+++,",>,3Y,*, ,,#,$-#<-!`- -#- -&-3.#C.g.*.$. .&./7/U/"u// / ///,/8/200L0$}000$0'01$'1'L1t111"11#1 2+2 J2k2!222$2#3$*3#O3s33!33"3 4*4H4h4 44444+4%5D5'X55555556!6A6+U66 666666 7" 7807i7}777 77778/8 58 B8 O8,]8 888(88 9 9 9*9 @9 M9 W9b9 r9 }99999"9.:-5:c:~::&::: ;;$;8;L;c;y;; ;"; ;;!<'<"@<c<,~<<1<$<% =F=.J= y=/=<=> >>"> +> 8>;D>>:?K?0g?=?;?>@;Q@5@@ZApAtA91B,kBB.bC-C!C CC DD*D BDLDbD!DD)D>D#E#6E/ZE0EE-EF&F*;F(fF#F'F'F"G&G =G ^G G!G$GG)G H#H#5HYH^HcHwHH"H HHH/HH II#/ISI/rII II4I!J8'J9`J.JJJ J JJJKK+4K"`K#K KKKKKL LL L)L(2L[LbLgLnL~L"L LLLLLL L&L)MAMUM \M gMsM{MM MM-MMMMN(N8N$JNoN sNNNCNN NNN"N!O4O (]g]]]]] ]]]]]]]]]]]]]]]]] ^ ^ ^ $^ /^:^!<^ ^^h^%^^ ^^^^ __._ B_M_S_[_+b_4____0_9(`>b`!````a!a:aVaraaaaaab&bh/h%i ,i6iIiZiqiiiEiiij jj1jGjXjaj}j jjjjjjj k&kAk JkVk:]kkk kkdk).l6Xl(ll%ll#m+9m.em+m5m1m5(n4^n4nGn(o(9oEboo#o@o1+p(]p!p.p-pqqY(q$q2q,q9r-ArRorr&r4s=s!Ys${s(s/s$s)t,Ht7ut(t%t#t% uFufuBu.u2u!+v!Mv*ovvvvv v vw w'w:w CwPwhwwwQww4 x,Ax/nx+x,x+x$#y0Hy+yy+y)y+y'zBzZzmz}z:zzzzz) {%7{+]{*{!{){!|."|Q|,p|+|+|/|+%}/Q}0}.}(}2 ~(=~*f~~ ~~~~~8~#4:o.,]3H^|/ۀ 7 N%X ~ > ց+ +/*[++(ނ!)-Hv-'$ ')!Q's1/̈́%%@.f6 ̅,$3?s""<ӆ++<3h/Ẏ,& St?҈K:Z?wȉމ)0CZ!nI;<)Af6ߋ  2CI,*ӌ   -@ GTdu #ɍ0 *<N^ '&(Nw9X=<\{% ;FX u 6֑ %CGNW ^j{"!"ג.!H'j#'Փ+) :Y[ "۔3"G6jו$*#33WS<&9` b&o8<ϗ(  58V:+ʘ)+ "L6o*2љG)LCv)7#9.] '@՛0HP!<H9A5{-%ߝB.Hw7ʞ=%(;N3'(@.P'&Ơ.'jD.͡.0+)\,2"2'!Z*|81$!7!Y#{07Ф!&**Q,|*2ԥ)$1*V'9Ǧ.'0AX7*ҧ/9-Pg981+6]E1ک5 9B:|6?*.7Y/=,G,2t9;>;*z-ĭ+<<[<,ծ25L@4ï&,#L8pװ  9& `js±Lɱ  $%/Ulp*#۲} $"ٳ/7,Dd.,?,Gtz$* 5F]<o%(Ҷ  (!JO*_ *&ַ'"%*H#s͸Ѹ ظKY0% @3Ft?"*9'd--4['6; +LRiq1 ƾԾ 12;:!v*5ÿ,"&!I!k@@%B5x!E!* 6%Pv%%%6$O$t0  * % . 9 CMU\en v     $,<$@[p% *?HBM4'0N d,r4 ).   $8 ? IT]el s}   )2 8CX'`  * # * 5 B+P| ("S/@)P)z$0 NZ jt }83 4$AY<2.35/"eh/!0)Z1x$  +?0Du!=# )7L_+h#<0 9:F3%%(!>`#{&.4H\p()8(U~'( (&O(l((!(>g m x2-+Y_q x$'%3'[@$@ePv2   - >I^o!x&8&$_   & 4 @ KWh WP a l y 6$@<e$>cjs%U+D W cn09 #/7Lgn    9 'Zh  8FOKm )%'C'k ((/ U; H  &3 L!Y{'B<(\B& # ) 6C&KGr952*7]  7<CZ b mz '3On1 Dc+|-&'!Eg6],-p<O^!r25&\p# 4PmL%*Do2-`s""#(% N7o /2Dw%F?k_R5fq^gmRo(5T[ x!C; INd s ~N )&)PYz+*+<V;& )+A-m%$-"07Kh(,1*&\#)(./) Y c my/G:/,j%( % (F o   3  - $/ %T ,z  / & & )F *p ) * ! " +5 !a . % % ) ( ,H #u "   5 *E4a))-W,w62K dn+P#;A_!}76, < I V.d( .9 O \ fq  !0-Gu& ':Nby # " C)c#.%53<+p6-<HB  ?+D&05SfJONUC7Z!53.+);en6v *3 6 =U H  + @ !>a!2!B!,"C"8b"="8"2#4E#)z# #,#.##!$.E$;t$$3$$$0 %=%B%G%^%f%%l%%%%4%%&&&3&$Z&:&&&&&B&%:'C`'C'1'(#(,(=(L(S(r(%y(<()(,)/3)c)y))") ) ))) )1)**(*.*@*)D*n* }*#*****(*,*+7+ ?+M+]+e+k+ ++9+++,,.,?,4R,, ,,,?,,---* -K-^- n- x-%-- ---)-#.@.Q. Z.,f. ...,.O/(X/</,/// /0t-=<s-Wkg@ xi)JBZInaef[*5+DCh`> )R*En& ?%WQ)q# nU{W87;#3 N+NkpuIwu>f016n2ToDZf\ v12  tB z?VOUdBH3^r(cHW:ca  k:|p?}~|[>n"88Y}"^(+-z'{KhO"DEvO?oany&k|a$)[LjY9M~lOE5^i_${ZT@F Fs5YrHPm Ei20<H_pQr{WAY\%{C[}f^gU\NQz =7 \% "Ge7. -hJxEv-m!=-g;+Y2om'J'V*C(`~:@ ]%5PS3tG>Z/)_Z"Fpr(Oo~VWR16{ 70ba #BS3 b@G 'e44,A`-+A#a;!i]WO}),Vo$9%P.,Q<Xyo &uDH5Ib'AYvK%~q^ d/ =<w0ytSKK}mNLM gj]/t NX ih9#/Ld9lD##_~w Pka3ZXe9| '=chzqDhgT6 v<C]?>eR&( 2{B8U9 :}Hsgr!dF2PC$":mJ;VE1%yGur ziLsB'[_L+bp .T mD841,J*5:l /qC6.[Q%J<tH*k#$U^ M*/8$. 'R4yF\!Yf e 1csMG.V6=X]qZF7xSu sR7hEe*dv`q$3>0G.,&w(J b!40RbA?+7,VIKjb/-xl9Ps`;uxj|;"UMAyz3wN S&@d56XL\wviQPKr8|ockd@=clpx>z"O!wG)f!,lj  q;LA6@tf:y}gI(~S(*lN.cM$T!,<mpK4&RBQ+II X_XSn\u]]F`j0Tx_[^1jUC|?)&`T4 2M Please send this report to the program maintainer, thank you! Thank you and we're sorry for the inconvenience! (copy %d of %d) (error %ld: %s) (in module "%s") - Preview bold italic light#10 Envelope, 4 1/8 x 9 1/2 in#11 Envelope, 4 1/2 x 10 3/8 in#12 Envelope, 4 3/4 x 11 in#14 Envelope, 5 x 11 1/2 in#9 Envelope, 3 7/8 x 8 7/8 in%d of %lu%i of %i%ld byte%ld bytes%lu of %lu%s (or %s)%s Error%s Information%s Preferences%s Warning%s did not fit the tar header for entry '%s'%s files (%s)|%s&About&Actual Size&After a paragraph:&Alignment&Apply&Apply Style&Arrange Icons&Ascending&Back&Based on:&Before a paragraph:&Bg colour:&Bold&Bottom&Bottom:&Box&Bullet style:&CD-Rom&Cancel&Cascade&Cell&Character code:&Clear&Close&Color&Colour:&Convert&Copy&Copy URL&Customize...&Debug report preview:&Delete&Delete Style...&Descending&Details&Down&Edit&Edit Style...&Execute&File&Find&Finish&First&Floating mode:&Floppy&Font&Font family:&Font for Level...&Font:&Forward&From:&Harddisk&Height:&Help&Hide details&Home&Indentation (tenths of a mm)&Indeterminate&Index&Info&Italic&Jump to&Justified&Last&Left&Left:&List level:&Log&Move&Move the object to:&Network&New&Next&Next >&Next Paragraph&Next Tip&Next style:&No&Notes:&Number:&OK&Open...&Outline level:&Page Break&Paste&Picture&Point size:&Position (tenths of a mm):&Position mode:&Preferences&Previous&Previous Paragraph&Print...&Properties&Quit&Redo&Redo &Rename Style...&Replace&Restart numbering&Restore&Right&Right:&Save&Save as&See details&Show tips at startup&Size&Size:&Skip&Spacing (tenths of a mm)&Spell Check&Stop&Strikethrough&Style:&Styles:&Subset:&Symbol:&Table&Top&Top:&Underline&Underlining:&Undo&Undo &Unindent&Up&Vertical alignment:&View...&Weight:&Width:&Window&Yes'%s' has extra '..', ignored.'%s' is invalid'%s' is not a correct numeric value for option '%s'.'%s' is not a valid message catalog.'%s' is probably a binary buffer.'%s' should be numeric.'%s' should only contain ASCII characters.'%s' should only contain alphabetic characters.'%s' should only contain alphabetic or numeric characters.'%s' should only contain digits.(*)(Help)(None)(Normal text)(bookmarks)(none)**)+, 64-bit edition-...1.11.21.31.41.51.61.71.81.910 x 11 in10 x 14 in11 x 17 in12 x 11 in15 x 11 in26 3/4 Envelope, 3 5/8 x 6 1/2 in9 x 11 in: file does not exist!: unknown charset: unknown encoding< &BackBold italic face.
    bold italic underlined
    Bold face. Italic face. >A debug report has been generated in the directory A debug report has been generated. It can be found inA non empty collection must consist of 'element' nodesA standard bullet name.A0 sheet, 841 x 1189 mmA1 sheet, 594 x 841 mmA2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Transverse 322 x 445 mmA3 Rotated 420 x 297 mmA3 Transverse 297 x 420 mmA3 sheet, 297 x 420 mmA4 Extra 9.27 x 12.69 inA4 Plus 210 x 330 mmA4 Rotated 297 x 210 mmA4 Transverse 210 x 297 mmA4 sheet, 210 x 297 mmA4 small sheet, 210 x 297 mmA5 Extra 174 x 235 mmA5 Rotated 210 x 148 mmA5 Transverse 148 x 210 mmA5 sheet, 148 x 210 mmA6 105 x 148 mmA6 Rotated 148 x 105 mmABCDEFGabcdefg12345ADDASCIIAboutAbout %sAbsoluteActual SizeAddAdd ColumnAdd RowAdd current page to bookmarksAdd to custom coloursAddToPropertyCollection called on a generic accessorAddToPropertyCollection called w/o valid adderAdding book %sAdding flavor TEXT failedAdding flavor utxt failedAdvancedAfter a paragraph:Align LeftAlign RightAlignmentAllAll files (%s)|%sAll files (*)|*All files (*.*)|*.*All stylesAlphabetic ModeAlready Registered Object passed to SetObjectClassInfoAlready dialling ISP.Alt+And includes the following files: Animation file is not of type %ld.Append log to file '%s' (choosing [No] will overwrite it)?ApplicationApplyArabicArabic (ISO-8859-6)Argument %u not found.ArtistsAscendingAttributesAvailable fonts.B4 (ISO) 250 x 353 mmB4 (JIS) Rotated 364 x 257 mmB4 Envelope, 250 x 353 mmB4 sheet, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Rotated 257 x 182 mmB5 (JIS) Transverse 182 x 257 mmB5 Envelope, 176 x 250 mmB5 sheet, 182 x 257 millimeterB6 (JIS) 128 x 182 mmB6 (JIS) Rotated 182 x 128 mmB6 Envelope, 176 x 125 mmBACKBMP: Couldn't allocate memory.BMP: Couldn't save invalid image.BMP: Couldn't write RGB color map.BMP: Couldn't write data.BMP: Couldn't write the file (Bitmap) header.BMP: Couldn't write the file (BitmapInfo) header.BMP: wxImage doesn't have own wxPalette.BackBackgroundBackground &colour:Background colourBaltic (ISO-8859-13)Baltic (old) (ISO-8859-4)Before a paragraph:BitmapBitmap renderer cannot render value; value type: BoldBorderBordersBottomBottom margin (mm):Box PropertiesBox stylesBrowseBullet &Alignment:Bullet styleBulletsC sheet, 17 x 22 inC&learC&olour:C3 Envelope, 324 x 458 mmC4 Envelope, 229 x 324 mmC5 Envelope, 162 x 229 mmC6 Envelope, 114 x 162 mmC65 Envelope, 114 x 229 mmCANCELCAPITALCD-RomCHM handler currently supports only local files!CLEARCOMMANDCa&pitalsCan't &Undo Can't automatically determine the image format for non-seekable input.Can't close registry key '%s'Can't copy values of unsupported type %d.Can't create registry key '%s'Can't create threadCan't create window of class %sCan't delete key '%s'Can't delete the INI file '%s'Can't delete value '%s' from key '%s'Can't enumerate subkeys of key '%s'Can't enumerate values of key '%s'Can't export value of unsupported type %d.Can't find current position in file '%s'Can't get info about registry key '%s'Can't initialize zlib deflate stream.Can't initialize zlib inflate stream.Can't monitor non-existent directory "%s" for changes.Can't open registry key '%s'Can't read from inflate stream: %sCan't read inflate stream: unexpected EOF in underlying stream.Can't read value of '%s'Can't read value of key '%s'Can't save image to file '%s': unknown extension.Can't save log contents to file.Can't set thread priorityCan't set value of '%s'Can't write to child process's stdinCan't write to deflate stream: %sCancelCannot create mutex.Cannot create new column's ID. Probably max. number of columns reached.Cannot enumerate files '%s'Cannot enumerate files in directory '%s'Cannot find active dialup connection: %sCannot find the location of address book fileCannot get an active instance of "%s"Cannot get priority range for scheduling policy %d.Cannot get the hostnameCannot get the official hostnameCannot hang up - no active dialup connection.Cannot initialize OLECannot initialize socketsCannot load icon from '%s'.Cannot load resources from '%s'.Cannot load resources from file '%s'.Cannot open HTML document: %sCannot open HTML help book: %sCannot open contents file: %sCannot open file for PostScript printing!Cannot open index file: %sCannot open resources file '%s'.Cannot print empty page.Cannot read typename from '%s'!Cannot resume thread %luCannot resume thread %lxCannot retrieve thread scheduling policy.Cannot set locale to language "%s".Cannot start thread: error writing TLS.Cannot suspend thread %luCannot suspend thread %lxCannot wait for thread terminationCase sensitiveCategorized ModeCell PropertiesCeltic (ISO-8859-14)Cen&tredCenteredCentral European (ISO-8859-2)CentreCentre text.CentredCh&oose...Change List StyleChange Object StyleChange PropertiesChange StyleChanges won't be saved to avoid overwriting the existing file "%s"Character stylesCheck to add a period after the bullet.Check to add a right parenthesis.Check to enclose the bullet in parentheses.Check to make the font bold.Check to make the font italic.Check to make the font underlined.Check to restart numbering.Check to show a line through the text.Check to show the text in capitals.Check to show the text in small capitals.Check to show the text in subscript.Check to show the text in superscript.Choose ISP to dialChoose a directory:Choose a fileChoose colourChoose fontCircular dependency involving module "%s" detected.Cl&oseClass not registered.ClearClear the log contentsClick to apply the selected style.Click to browse for a symbol.Click to cancel changes to the font.Click to cancel the font selection.Click to change the font colour.Click to change the text background colour.Click to change the text colour.Click to choose the font for this level.Click to close this window.Click to confirm changes to the font.Click to confirm the font selection.Click to create a new box style.Click to create a new character style.Click to create a new list style.Click to create a new paragraph style.Click to create a new tab position.Click to delete all tab positions.Click to delete the selected style.Click to delete the selected tab position.Click to edit the selected style.Click to rename the selected style.CloseClose AllClose current documentClose this windowColorColourColour selection dialog failed with error %0lx.Colour:Column could not be added.Column description could not be initialized.Column index not found.Column width could not be determinedColumn width could not be set.Command line argument %d couldn't be converted to Unicode and will be ignored.Common dialog failed with error code %0lx.Compositing not supported by this system, please enable it in your Window Manager.Compressed HTML Help file (*.chm)|*.chm|ComputerConfig entry name cannot start with '%c'.ConfirmConfirm registry updateConnecting...ContentsConversion to charset '%s' doesn't work.ConvertCopied to clipboard:"%s"Copies:CopyCopy selectionCould not create temporary file '%s'Could not determine column index.Could not determine column's positionCould not determine number of columns.Could not determine number of itemsCould not extract %s into %s: %sCould not find tab for idCould not get header description.Could not get items.Could not get property flags.Could not get selected items.Could not locate file '%s'.Could not remove column.Could not retrieve number of itemsCould not set alignment.Could not set column width.Could not set current working directoryCould not set header description.Could not set icon.Could not set maximum width.Could not set minimum width.Could not set property flags.Could not start document preview.Could not start printing.Could not transfer data to windowCouldn't acquire a mutex lockCouldn't add an image to the image list.Couldn't create a timerCouldn't create the overlay windowCouldn't enumerate translationsCouldn't find symbol '%s' in a dynamic libraryCouldn't get hatch style from wxBrush.Couldn't get the current thread pointerCouldn't init the context on the overlay windowCouldn't initialize GIF hash table.Couldn't load a PNG image - file is corrupted or not enough memory.Couldn't load sound data from '%s'.Couldn't obtain folder nameCouldn't open audio: %sCouldn't register clipboard format '%s'.Couldn't release a mutexCouldn't retrieve information about list control item %d.Couldn't save PNG image.Couldn't terminate threadCreate Parameter %s not found in declared RTTI ParametersCreate directoryCreate new directoryCtrl+Cu&tCurrent directory:Custom sizeCustomize ColumnsCutCut selectionCyrillic (ISO-8859-5)D sheet, 22 x 34 inDDE poke request failedDECIMALDELDELETEDIB Header: Encoding doesn't match bitdepth.DIB Header: Image height > 32767 pixels for file.DIB Header: Image width > 32767 pixels for file.DIB Header: Unknown bitdepth in file.DIB Header: Unknown encoding in file.DIVIDEDL Envelope, 110 x 220 mmDOWNDashedData object has invalid data formatDate renderer cannot render value; value type: Debug report "%s"Debug report couldn't be created.Debug report generation has failed.DecorativeDefault encodingDefault fontDefault printerDeleteDelete A&llDelete ColumnDelete RowDelete StyleDelete TextDelete itemDelete selectionDelete style %s?Deleted stale lock file '%s'.Dependency "%s" of module "%s" doesn't exist.DescendingDesktopDeveloped by DevelopersDial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it.Did you know...DirectFB error %d occurred.DirectoriesDirectory '%s' couldn't be createdDirectory '%s' couldn't be deletedDirectory does not existDirectory doesn't exist.Discard changes and reload the last saved version?Display all index items that contain given substring. Search is case insensitive.Display options dialogDisplays help as you browse the books on the left.Do you want to overwrite the command used to %s files with extension "%s" ? Current value is %s, New value is %s %1Do you want to save changes to %s?Document:Documentation by Documentation writersDon't SaveDoneDone.DottedDoubleDouble Japanese Postcard Rotated 148 x 200 mmDoubly used id : %dDownDragE sheet, 34 x 44 inENDENTEREOF while reading from inotify descriptorESCESCAPEEXECUTEEditEdit itemElapsed time:Enable the height value.Enable the maximum width value.Enable the minimum height value.Enable the minimum width value.Enable the width value.Enable vertical alignment.Enables a background colour.Enter a box style nameEnter a character style nameEnter a list style nameEnter a new style nameEnter a paragraph style nameEnter command to open file "%s":Entries foundEnvelope Invite 220 x 220 mmEnvironment variables expansion failed: missing '%c' at position %u in '%s'.ErrorError closing epoll descriptorError closing kqueue instanceError creating directoryError in reading image DIB.Error in resource: %sError reading config options.Error saving user configuration data.Error while printing: Error: Esperanto (ISO-8859-3)Estimated time:Event queue overflowedExecutable files (*.exe)|*.exe|ExecuteExecution of command '%s' failedExecution of command '%s' failed with error: %ulExecutive, 7 1/4 x 10 1/2 inExporting registry key: file "%s" already exists and won't be overwritten.Extended Unix Codepage for Japanese (EUC-JP)Extraction of '%s' into '%s' failed.FFace NameFailed to access lock file.Failed to add descriptor %d to epoll descriptor %dFailed to allocate %luKb of memory for bitmap data.Failed to allocate colour for OpenGLFailed to change video modeFailed to check format of image file "%s".Failed to clean up debug report directory "%s"Failed to close file handleFailed to close lock file '%s'Failed to close the clipboard.Failed to close the display "%s"Failed to connect: missing username/password.Failed to connect: no ISP to dial.Failed to convert file "%s" to Unicode.Failed to copy dialog contents to the clipboard.Failed to copy registry value '%s'Failed to copy the contents of registry key '%s' to '%s'.Failed to copy the file '%s' to '%s'Failed to copy the registry subkey '%s' to '%s'.Failed to create DDE stringFailed to create MDI parent frame.Failed to create a temporary file nameFailed to create an anonymous pipeFailed to create an instance of "%s"Failed to create connection to server '%s' on topic '%s'Failed to create cursor.Failed to create directory "%s"Failed to create directory '%s' (Do you have the required permissions?)Failed to create epoll descriptorFailed to create registry entry for '%s' files.Failed to create the standard find/replace dialog (error code %d)Failed to create wake up pipe used by event loop.Failed to display HTML document in %s encodingFailed to empty the clipboard.Failed to enumerate video modesFailed to establish an advise loop with DDE serverFailed to establish dialup connection: %sFailed to execute '%s' Failed to execute curl, please install it in PATH.Failed to find CLSID of "%s"Failed to find match for regular expression: %sFailed to get ISP names: %sFailed to get OLE automation interface for "%s"Failed to get data from the clipboardFailed to get the local system timeFailed to get the working directoryFailed to initialize GUI: no built-in themes found.Failed to initialize MS HTML Help.Failed to initialize OpenGLFailed to initiate dialup connection: %sFailed to insert text in the control.Failed to inspect the lock file '%s'Failed to install signal handlerFailed to join a thread, potential memory leak detected - please restart the programFailed to kill process %dFailed to load bitmap "%s" from resources.Failed to load icon "%s" from resources.Failed to load image %%d from file '%s'.Failed to load image %d from stream.Failed to load image from file "%s".Failed to load metafile from file "%s".Failed to load mpr.dll.Failed to load resource "%s".Failed to load shared library '%s'Failed to lock resource "%s".Failed to lock the lock file '%s'Failed to modify descriptor %d in epoll descriptor %dFailed to modify file times for '%s'Failed to monitor I/O channelsFailed to open '%s' for readingFailed to open '%s' for writingFailed to open CHM archive '%s'.Failed to open URL "%s" in default browser.Failed to open directory "%s" for monitoring.Failed to open display "%s".Failed to open temporary file.Failed to open the clipboard.Failed to parse Plural-Forms: '%s'Failed to prepare playing "%s".Failed to put data on the clipboardFailed to read PID from lock file.Failed to read config options.Failed to read document from the file "%s".Failed to read event from DirectFB pipeFailed to read from wake-up pipeFailed to redirect child process input/outputFailed to redirect the child process IOFailed to register DDE server '%s'Failed to remember the encoding for the charset '%s'.Failed to remove debug report file "%s"Failed to remove lock file '%s'Failed to remove stale lock file '%s'.Failed to rename registry value '%s' to '%s'.Failed to rename the file '%s' to '%s' because the destination file already exists.Failed to rename the registry key '%s' to '%s'.Failed to retrieve data from the clipboard.Failed to retrieve file times for '%s'Failed to retrieve text of RAS error messageFailed to retrieve the supported clipboard formatsFailed to save document to the file "%s".Failed to save the bitmap image to file "%s".Failed to send DDE advise notificationFailed to set FTP transfer mode to %s.Failed to set clipboard data.Failed to set permissions on lock file '%s'Failed to set process priorityFailed to set temporary file permissionsFailed to set text in the text control.Failed to set thread concurrency level to %luFailed to set thread priority %d.Failed to set up non-blocking pipe, the program might hang.Failed to store image '%s' to memory VFS!Failed to switch DirectFB pipe to non-blocking modeFailed to switch wake up pipe to non-blocking modeFailed to terminate a thread.Failed to terminate the advise loop with DDE serverFailed to terminate the dialup connection: %sFailed to touch the file '%s'Failed to unlock lock file '%s'Failed to unregister DDE server '%s'Failed to unregister descriptor %d from epoll descriptor %dFailed to update user configuration file.Failed to upload the debug report (error code %d).Failed to write to lock file '%s'FalseFamilyFileFile "%s" could not be opened for reading.File "%s" could not be opened for writing.File '%s' already exists, do you really want to overwrite it?File '%s' already exists. Do you want to replace it?File '%s' couldn't be removedFile '%s' couldn't be renamed '%s'File couldn't be loaded.File dialog failed with error code %0lx.File errorFile name exists already.FilesFiles (%s)FilterFindFirstFirst pageFixedFixed font:Fixed size face.
    bold italic FloatingFloppyFolio, 8 1/2 x 13 inFontFont &weight:Font size:Font st&yle:Font:Fonts index file %s disappeared while loading fonts.Fork failedForwardForward hrefs are not supportedFound %i matchesFrom:GIF: Invalid gif index.GIF: data stream seems to be truncated.GIF: error in GIF image format.GIF: not enough memory.GIF: unknown error!!!GTK+ installed on this machine is too old to support screen compositing, please install GTK+ 2.12 or later.GTK+ themeGeneralGeneric PostScriptGerman Legal Fanfold, 8 1/2 x 13 inGerman Std Fanfold, 8 1/2 x 12 inGetProperty called w/o valid getterGetPropertyCollection called on a generic accessorGetPropertyCollection called w/o valid collection getterGo backGo forwardGo one level up in document hierarchyGo to home directoryGo to parent directoryGraphics art by Greek (ISO-8859-7)GrooveGzip not supported by this version of zlibHELPHOMEHTML Help Project (*.hhp)|*.hhp|HTML anchor %s does not exist.HTML files (*.html;*.htm)|*.html;*.htm|HarddiskHebrew (ISO-8859-8)HelpHelp Browser OptionsHelp IndexHelp PrintingHelp TopicsHelp books (*.htb)|*.htb|Help books (*.zip)|*.zip|Help directory "%s" not found.Help file "%s" not found.Help: %sHide %sHide OthersHide this notification message.HomeHome directoryHow the object will float relative to the text.ICO: Error in reading mask DIB.ICO: Error writing the image file!ICO: Image too tall for an icon.ICO: Image too wide for an icon.ICO: Invalid icon index.IFF: data stream seems to be truncated.IFF: error in IFF image format.IFF: not enough memory.IFF: unknown error!!!INSINSERTISO-2022-JPIcon & text renderer cannot render value; value type: If possible, try changing the layout parameters to make the printout more narrow.If you have any additional information pertaining to this bug report, please enter it here and it will be joined to it:If you wish to suppress this debug report completely, please choose the "Cancel" button, but be warned that it may hinder improving the program, so if at all possible please do continue with the report generation. Ignoring value "%s" of the key "%s".Illegal Object Class (Non-wxEvtHandler) as Event SourceIllegal Parameter Count for ConstructObject MethodIllegal Parameter Count for Create MethodIllegal directory name.Illegal file specification.Image and mask have different sizes.Image file is not of type %d.Image is not of type %s.Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dllImpossible to get child process inputImpossible to get permissions for file '%s'Impossible to overwrite the file '%s'Impossible to set permissions for the file '%s'Incorrect GIF frame size (%u, %d) for the frame #%uIncorrect number of arguments.IndentIndents && SpacingIndexIndian (ISO-8859-12)InfoInitialization failed in post init, aborting.InsertInsert FieldInsert ImageInsert ObjectInsert TextInserts a page break before the paragraph.InsetInvalid GTK+ command line option, use "%s --help"Invalid TIFF image index.Invalid data view itemInvalid display mode specification '%s'.Invalid geometry specification '%s'Invalid inotify event for "%s"Invalid lock file '%s'.Invalid message catalog.Invalid or Null Object ID passed to GetObjectClassInfoInvalid or Null Object ID passed to HasObjectClassInfoInvalid regular expression '%s': %sInvalid value %ld for a boolean key "%s" in config file.ItalicItaly Envelope, 110 x 230 mmJPEG: Couldn't load - file is probably corrupted.JPEG: Couldn't save image.Japanese Double Postcard 200 x 148 mmJapanese Envelope Chou #3Japanese Envelope Chou #3 RotatedJapanese Envelope Chou #4Japanese Envelope Chou #4 RotatedJapanese Envelope Kaku #2Japanese Envelope Kaku #2 RotatedJapanese Envelope Kaku #3Japanese Envelope Kaku #3 RotatedJapanese Envelope You #4Japanese Envelope You #4 RotatedJapanese Postcard 100 x 148 mmJapanese Postcard Rotated 148 x 100 mmJump toJustifiedJustify text left and right.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UPL&ine spacing:LEFTLandscapeLastLast pageLast repeated message ("%s", %lu time) wasn't outputLast repeated message ("%s", %lu times) wasn't outputLedger, 17 x 11 inLeftLeft (&first line):Left margin (mm):Left-align text.Legal Extra 9 1/2 x 15 inLegal, 8 1/2 x 14 inLetter Extra 9 1/2 x 12 inLetter Extra Transverse 9.275 x 12 inLetter Plus 8 1/2 x 12.69 inLetter Rotated 11 x 8 1/2 inLetter Small, 8 1/2 x 11 inLetter Transverse 8 1/2 x 11 inLetter, 8 1/2 x 11 inLicenseLightLine %lu of map file "%s" has invalid syntax, skipped.Line spacing:Link contained '//', converted to absolute link.List StyleList stylesLists font sizes in points.Lists the available fonts.Load %s fileLoading : Lock file '%s' has incorrect owner.Lock file '%s' has incorrect permissions.Log saved to the file '%s'.Lower case lettersLower case roman numeralsMDI childMENUMS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it.Ma&ximizeMacArabicMacArmenianMacBengaliMacBurmeseMacCelticMacCentralEurRomanMacChineseSimpMacChineseTradMacCroatianMacCyrillicMacDevanagariMacDingbatsMacEthiopicMacExtArabicMacGaelicMacGeorgianMacGreekMacGujaratiMacGurmukhiMacHebrewMacIcelandicMacJapaneseMacKannadaMacKeyboardGlyphsMacKhmerMacKoreanMacLaotianMacMalayalamMacMongolianMacOriyaMacRomanMacRomanianMacSinhaleseMacSymbolMacTamilMacTeluguMacThaiMacTibetanMacTurkishMacVietnameseMake a selection:MarginsMatch caseMax height:Max width:Media playback error: %sMemory VFS already contains file '%s'!MenuMessageMetal themeMethod or property not found.Mi&nimizeMin height:Min width:Missing a required parameter.ModernModifiedModule "%s" initialization failedMonarch Envelope, 3 7/8 x 7 1/2 inMonitoring individual files for changes is not supported currently.Move downMove upMoves the object to the next paragraph.Moves the object to the previous paragraph.Multiple Cell PropertiesNUM_LOCKNameNetworkNewNew &Box Style...New &Character Style...New &List Style...New &Paragraph Style...New StyleNew directoryNew itemNewNameNextNext pageNoNo animation handler for type %ld defined.No bitmap handler for type %d defined.No column existing.No column for the specified column existing.No column for the specified column position existing.No default application configured for HTML files.No entries found.No font for displaying text in encoding '%s' found, but an alternative encoding '%s' is available. Do you want to use this encoding (otherwise you will have to choose another one)?No font for displaying text in encoding '%s' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly)?No handler found for animation type.No handler found for image type.No image handler for type %d defined.No image handler for type %s defined.No matching page found yetNo renderer or invalid renderer type specified for custom data column.No renderer specified for column.No soundNo unused colour in image being masked.No unused colour in image.No valid mappings found in the file "%s".NoneNordic (ISO-8859-10)NormalNormal face
    and underlined. Normal font:Not %sNot availableNot underlinedNote, 8 1/2 x 11 inNoticeNumber of columns could not be determined.Numbered outlineOKOLE Automation error in %s: %sObject PropertiesObject implementation does not support named arguments.Objects must have an id attributeOpen FileOpen HTML documentOpen file "%s"Open...OpenGL function "%s" failed: %s (error %d)Operation not permitted.Option '%s' can't be negatedOption '%s' requires a value.Option '%s': '%s' cannot be converted to a date.OptionsOrientationOut of window IDs. Recommend shutting down application.OutlineOutsetOverflow while coercing argument values.PAGEDOWNPAGEUPPAUSEPCX: couldn't allocate memoryPCX: image format unsupportedPCX: invalid imagePCX: this is not a PCX file.PCX: unknown error !!!PCX: version number too lowPGDNPGUPPNM: Couldn't allocate memory.PNM: File format is not recognized.PNM: File seems truncated.PRC 16K 146 x 215 mmPRC 16K RotatedPRC 32K 97 x 151 mmPRC 32K RotatedPRC 32K(Big) 97 x 151 mmPRC 32K(Big) RotatedPRC Envelope #1 102 x 165 mmPRC Envelope #1 Rotated 165 x 102 mmPRC Envelope #10 324 x 458 mmPRC Envelope #10 Rotated 458 x 324 mmPRC Envelope #2 102 x 176 mmPRC Envelope #2 Rotated 176 x 102 mmPRC Envelope #3 125 x 176 mmPRC Envelope #3 Rotated 176 x 125 mmPRC Envelope #4 110 x 208 mmPRC Envelope #4 Rotated 208 x 110 mmPRC Envelope #5 110 x 220 mmPRC Envelope #5 Rotated 220 x 110 mmPRC Envelope #6 120 x 230 mmPRC Envelope #6 Rotated 230 x 120 mmPRC Envelope #7 160 x 230 mmPRC Envelope #7 Rotated 230 x 160 mmPRC Envelope #8 120 x 309 mmPRC Envelope #8 Rotated 309 x 120 mmPRC Envelope #9 229 x 324 mmPRC Envelope #9 Rotated 324 x 229 mmPRINTPaddingPage %dPage %d of %dPage SetupPage setupPagesPaper sizeParagraph stylesPassing a already registered object to SetObjectPassing an unknown object to GetObjectPastePaste selectionPeri&odPermissionsPicture PropertiesPipe creation failedPlease choose a valid font.Please choose an existing file.Please choose the page to display:Please choose which ISP do you want to connect toPlease install a newer version of comctl32.dll (at least version 4.70 is required but you have %d.%02d) or this program won't operate correctly.Please select the columns to show and define their order:Please wait while printing...Point SizePointer to data view control not set correctly.Pointer to model not set correctly.PortraitPositionPostScript filePreferencesPreferences...PreparingPreview:Previous pagePrintPrint PreviewPrint Preview FailurePrint RangePrint SetupPrint in colourPrint previe&w...Print preview creation failed.Print preview...Print spoolingPrint this pagePrint to FilePrint...PrinterPrinter command:Printer optionsPrinter options:Printer...Printer:PrintingPrinting Printing ErrorPrinting page %d of %dPrinting page %d...Printing...PrintoutProcessing debug report has failed, leaving the files in "%s" directory.Progress renderer cannot render value type; value type: Progress:PropertiesPropertyProperty ErrorQuarto, 215 x 275 mmQuestionQuitQuit %sQuit this programRETURNRIGHTRawCtrl+Read error on file '%s'ReadyRedoRedo last actionRefreshRegistry key '%s' already exists.Registry key '%s' does not exist, cannot rename it.Registry key '%s' is needed for normal system operation, deleting it will leave your system in unusable state: operation aborted.Registry value '%s' already exists.RegularRelativeRelevant entries:Remaining time:RemoveRemove BulletRemove current page from bookmarksRenderer "%s" has incompatible version %d.%d and couldn't be loaded.Rendering failed.Renumber ListRep&laceReplaceReplace &allReplace selectionReplace with:Required information entry is empty.Resource '%s' is not a valid message catalog.Revert to SavedRidgeRightRight margin (mm):Right-align text.RomanS&tandard bullet name:SCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACTSaveSave %s fileSave &As...Save AsSave asSave current documentSave current document with a different filenameSave log contents to fileScriptSearchSearch contents of help book(s) for all occurrences of the text you typed aboveSearch directionSearch for:Search in all booksSearching...SectionsSeek error on file '%s'Seek error on file '%s' (large files not supported by stdio)Select &AllSelect AllSelect a document templateSelect a document viewSelect regular or bold.Select regular or italic style.Select underlining or no underlining.SelectionSelects the list level to edit.Separator expected after the option '%s'.Set Cell StyleSetProperty called w/o valid setterSetting directory access times is not supported under this OS versionSetup...Several active dialup connections found, choosing one randomly.Shift+Show &hidden directoriesShow &hidden filesShow AllShow about dialogShow allShow all items in indexShow hidden directoriesShow/hide navigation panelShows a Unicode subset.Shows a preview of the bullet settings.Shows a preview of the font settings.Shows a preview of the font.Shows a preview of the paragraph settings.Shows the font preview.Simple monochrome themeSingleSizeSize:SkipSlantSmall C&apitalsSolidSorry, could not open this file.Sorry, not enough memory to create a preview.Sorry, that name is taken. Please choose another.Sorry, the format for this file is unknown.Sound data are in unsupported format.Sound file '%s' is in unsupported format.SpacingSpell CheckStandardStatement, 5 1/2 x 8 1/2 inStaticStatus:StopStrikethroughString To Colour : Incorrect colour specification : %sStyleStyle OrganiserStyle:Subscrip&tSupe&rscriptSuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSymbolSymbol &font:SymbolsTABTIFF: Couldn't allocate memory.TIFF: Error loading image.TIFF: Error reading image.TIFF: Error saving image.TIFF: Error writing image.TIFF: Image size is abnormally big.Table PropertiesTabloid Extra 11.69 x 18 inTabloid, 11 x 17 inTabsTeletypeTemplatesText renderer cannot render value; value type: Thai (ISO-8859-11)The FTP server doesn't support passive mode.The FTP server doesn't support the PORT command.The available bullet styles.The available styles.The background colour.The bottom margin size.The bottom padding size.The bottom position.The bullet character.The character code.The charset '%s' is unknown. You may select another charset to replace it with or choose [Cancel] if it cannot be replacedThe clipboard format '%d' doesn't exist.The default style for the next paragraph.The directory '%s' does not exist Create it now?The document "%s" doesn't fit on the page horizontally and will be truncated if printed. Would you like to proceed with printing it nevertheless?The file '%s' doesn't exist and couldn't be opened. It has been removed from the most recently used files list.The first line indent.The following standard GTK+ options are also supported: The font colour.The font family.The font from which to take the symbol.The font point size.The font size in points.The font size units, points or pixels.The font style.The font weight.The format of file '%s' couldn't be determined.The left indent.The left margin size.The left padding size.The left position.The line spacing.The list item number.The locale ID is unknown.The object height.The object maximum height.The object maximum width.The object minimum height.The object minimum width.The object width.The outline level.The previous message repeated %lu time.The previous message repeated %lu times.The previous message repeated once.The print dialog returned an error.The range to show.The report contains the files listed below. If any of these files contain private information, please uncheck them and they will be removed from the report. The required parameter '%s' was not specified.The right indent.The right margin size.The right padding size.The right position.The spacing after the paragraph.The spacing before the paragraph.The style name.The style on which this style is based.The style preview.The system cannot find the file specified.The tab position.The tab positions.The text couldn't be saved.The top margin size.The top padding size.The top position.The value for the option '%s' must be specified.The version of remote access service (RAS) installed on this machine is too old, please upgrade (the following required function is missing: %s).The wxGtkPrinterDC cannot be used.There is no column or renderer for the specified column index.There was a problem during page setup: you may need to set a default printer.This document doesn't fit on the page horizontally and will be truncated when it is printed.This is not a %s.This platform does not support background transparency.This program was compiled with a too old version of GTK+, please rebuild with GTK+ 2.12 or newer.This system doesn't support date controls, please upgrade your version of comctl32.dllThread module initialization failed: cannot store value in thread local storageThread module initialization failed: failed to create thread keyThread module initialization failed: impossible to allocate index in thread local storageThread priority setting is ignored.Tile &HorizontallyTile &VerticallyTimeout while waiting for FTP server to connect, try passive mode.Timer creation failed.Tip of the DayTips not available, sorry!To:Toggle renderer cannot render value; value type: Too many EndStyle calls!Too many colours in PNG, the image may be slightly blurred.TopTop margin (mm):Translations by TranslatorsTrueTrying to remove file '%s' from memory VFS, but it is not loaded!Turkish (ISO-8859-9)TypeType a font name.Type a size in points.Type mismatch in argument %u.Type must have enum - long conversionType operation "%s" failed: Property labeled "%s" is of type "%s", NOT "%s".UPUS Std Fanfold, 14 7/8 x 11 inUS-ASCIIUnable to add inotify watchUnable to add kqueue watchUnable to associate handle with I/O completion portUnable to close I/O completion port handleUnable to close inotify instanceUnable to close path '%s'Unable to close the handle for '%s'Unable to create I/O completion portUnable to create IOCP worker threadUnable to create inotify instanceUnable to create kqueue instanceUnable to dequeue completion packetUnable to get events from kqueueUnable to handle native drag&drop dataUnable to initialize GTK+, is DISPLAY set properly?Unable to initialize Hildon programUnable to open path '%s'Unable to open requested HTML document: %sUnable to play sound asynchronously.Unable to post completion statusUnable to read from inotify descriptorUnable to remove inotify watchUnable to remove kqueue watchUnable to set up watch for '%s'Unable to start IOCP worker threadUndeleteUnderlineUnderlinedUndoUndo last actionUnexpected characters following option '%s'.Unexpected event for "%s": no matching watch descriptor.Unexpected parameter '%s'Unexpectedly new I/O completion port was createdUngraceful worker thread terminationUnicodeUnicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)UnindentUnits for the bottom border width.Units for the bottom margin.Units for the bottom outline width.Units for the bottom padding.Units for the bottom position.Units for the left border width.Units for the left margin.Units for the left outline width.Units for the left padding.Units for the left position.Units for the maximum object height.Units for the maximum object width.Units for the minimum object height.Units for the minimum object width.Units for the object height.Units for the object width.Units for the right border width.Units for the right margin.Units for the right outline width.Units for the right padding.Units for the right position.Units for the top border width.Units for the top margin.Units for the top outline width.Units for the top padding.Units for the top position.UnknownUnknown DDE error %08xUnknown Object passed to GetObjectClassInfoUnknown PNG resolution unit %dUnknown Property %sUnknown TIFF resolution unit %d ignoredUnknown data formatUnknown dynamic library errorUnknown encoding (%d)Unknown error %08xUnknown exceptionUnknown image data format.Unknown long option '%s'Unknown name or named argument.Unknown option '%s'Unmatched '{' in an entry for mime type %s.Unnamed commandUnspecifiedUnsupported clipboard format.Unsupported theme '%s'.UpUpper case lettersUpper case roman numeralsUsage: %sUse the current alignment setting.Valid pointer to native data view control does not existValidation conflictValueValue must be %s or higher.Value must be %s or less.Value must be between %s and %s.Version Vertical alignment.View files as a detailed viewView files as a list viewViewsWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHTWaiting for IO on epoll descriptor %d failedWarning: WeightWestern European (ISO-8859-1)Western European with Euro (ISO-8859-15)Whether the font is underlined.Whole wordWhole words onlyWin32 themeWin32s on Windows 3.1Windows 2000Windows 7Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arabic (CP 1256)Windows Baltic (CP 1257)Windows CE (%d.%d)Windows Central European (CP 1250)Windows Chinese Simplified (CP 936) or GB-2312Windows Chinese Traditional (CP 950) or Big-5Windows Cyrillic (CP 1251)Windows Greek (CP 1253)Windows Hebrew (CP 1255)Windows Japanese (CP 932) or Shift-JISWindows Johab (CP 1361)Windows Korean (CP 949)Windows MEWindows NT %lu.%luWindows Server 2003Windows Server 2008Windows Server 2008 R2Windows Thai (CP 874)Windows Turkish (CP 1254)Windows Vietnamese (CP 1258)Windows VistaWindows Western European (CP 1252)Windows XPWindows/DOS OEM (CP 437)Windows/DOS OEM Cyrillic (CP 866)Write error on file '%s'XML parsing error: '%s' at line %dXPM: Malformed pixel data!XPM: incorrect colour description in line %dXPM: incorrect header format!XPM: malformed colour definition '%s' at line %d!XPM: no colors left to use for mask!XPM: truncated image data at line %d!YesYou cannot Clear an overlay that is not initedYou cannot Init an overlay twiceYou cannot add a new directory to this section.You have entered invalid value. Press ESC to cancel editing.Zoom &InZoom &OutZoom InZoom OutZoom to &FitZoom to Fita DDEML application has created a prolonged race condition.a DDEML function was called without first calling the DdeInitialize function, or an invalid instance identifier was passed to a DDEML function.a client's attempt to establish a conversation has failed.a memory allocation failed.a parameter failed to be validated by the DDEML.a request for a synchronous advise transaction has timed out.a request for a synchronous data transaction has timed out.a request for a synchronous execute transaction has timed out.a request for a synchronous poke transaction has timed out.a request to end an advise transaction has timed out.a server-side transaction was attempted on a conversation that was terminated by the client, or the server terminated before completing a transaction.a transaction failed.altan application initialized as APPCLASS_MONITOR has attempted to perform a DDE transaction, or an application initialized as APPCMD_CLIENTONLY has attempted to perform server transactions.an internal call to the PostMessage function has failed. an internal error has occurred in the DDEML.an invalid transaction identifier was passed to a DDEML function. Once the application has returned from an XTYP_XACT_COMPLETE callback, the transaction identifier for that callback is no longer valid.assuming this is a multi-part zip concatenatedattempt to change immutable key '%s' ignored.bad arguments to library functionbad signaturebad zipfile offset to entrybinaryboldbuffer is too small for Windows directory.build %lucan't close file '%s'can't close file descriptor %dcan't commit changes to file '%s'can't create file '%s'can't delete user configuration file '%s'can't determine if the end of file is reached on descriptor %dcan't execute '%s'can't find central directory in zipcan't find length of file on file descriptor %dcan't find user's HOME, using current directory.can't flush file descriptor %dcan't get seek position on file descriptor %dcan't load any font, abortingcan't open file '%s'can't open global configuration file '%s'.can't open user configuration file '%s'.can't open user configuration file.can't re-initialize zlib deflate streamcan't re-initialize zlib inflate streamcan't read from file descriptor %dcan't remove file '%s'can't remove temporary file '%s'can't seek on file descriptor %dcan't write buffer '%s' to disk.can't write to file descriptor %dcan't write user configuration file.checksum errorchecksum failure reading tar header blockcmcompression errorconversion to 8-bit encoding failedctrldatedecompression errordefaultdoubledump of the process state (binary)eighteentheightheleventhentry '%s' appears more than once in group '%s'error in data formaterror opening '%s'error opening fileerror reading zip central directoryerror reading zip local headererror writing zip entry '%s': bad crc or lengthfailed to flush the file '%s'fifteenthfifthfile '%s', line %d: '%s' ignored after group header.file '%s', line %d: '=' expected.file '%s', line %d: key '%s' was first found at line %d.file '%s', line %d: value for immutable key '%s' ignored.file '%s': unexpected character %c at line %d.filesfirstfont sizefourteenthfourthgenerate verbose log messagesimageincomplete header block in tarincorrect event handler string, missing dotincorrect size given for tar entryinvalid data in extended tar headerinvalid message box return valueinvalid zip fileitaliclightlocale '%s' cannot be set.midnightnineteenthninthno DDE error.no errorno fonts found in %s, using builtin fontnonamenoonnormalnot implementednumobjects cannot have XML Text Nodesout of memorypercentprocess context descriptionptpxrawctrlread errorreading zip stream (entry %s): bad crcreading zip stream (entry %s): bad lengthreentrancy problem.secondseek errorseventeenthseventhshiftshow this help messagesixteenthsixthspecify display mode to use (e.g. 640x480-16)specify the theme to usestandard/circlestandard/circle-outlinestandard/diamondstandard/squarestandard/trianglestored file length not in Zip headerstrstrikethroughtar entry not opentenththe response to the transaction caused the DDE_FBUSY bit to be set.thirdthirteenthtodaytomorrowtrailing backslash ignored in '%s'translator-creditstwelfthtwentiethunderlinedunexpected " at position %d in '%s'.unexpected end of fileunknownunknown class %sunknown errorunknown error (error code %08x).unknown seek originunknown-%dunnamedunnamed%dunsupported Zip compression methodusing catalog '%s' from '%s'.write errorwxGetTimeOfDay failed.wxPrintout::GetPageInfo gives a null maxPage.wxWidget control pointer is not a data view pointerwxWidget's control not initialized.wxWidgets could not open display for '%s': exiting.wxWidgets could not open display. Exiting.xxxxyesterdayzlib error %d~Project-Id-Version: wxWidgets 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2013-10-01 19:04+0200 PO-Revision-Date: 2013-10-02 16:24-0300 Last-Translator: Felipe Language-Team: Felipe Language: pt_BR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n > 1; X-Generator: Poedit 1.5.7 X-Poedit-SourceCharset: UTF-8 Por favor, envie este relatório ao mantedor do programa, obrigado a você! Obrigado a você e nós lamentamos pela inconveniência! (cópia %d de %d) (erro %ld: %s) (no módulo "%s") - Pré-visualizarnegritoitálicoleveEnvelope #10, 4 1/8 x 9 1/2 emEnvelope #11, 4 1/2 x 10 3/8 emEnvelope #12, 4 3/4 x 11 emEnvelope #14, 5 x 11 1/2 emEnvelope #9, 3 7/8 x 8 7/8 em%d de %lu%i de %i%ld byte%ld bytes%lu de %lu%s (ou %s)Erro do %sInformação %s%s PreferênciasAviso do %s%s não encaixou no cabeçalho tar para a entrada '%s'Arquivos %s (%s)|%s&Sobre&Tamanho Real&Após um parágrafo:&Alinhamento&Aplicar&Aplicar Estilo&Organizar Ícones&Ascendente&Voltar&Baseado em:&Antes de um parágrafo:&Côr de fundo:&Negrito&Fundo&Fundo:&Caixa&Estilo de Bala:&CD-Rom&Cancelar&Em cascata&Célula&Código dos caracteres:&Limpar&Fechar&Côr&Cor:&Converter&Copiar&Copiar URL&Personalizar...&Pré-visualizar o relatório do debug:&Apagar&Apagar o Estilo...&Descendente&Detalhes&Para baixo&Editar&Editar Estilo...&Executar&Arquivo&Achar&Concluir&Primeiro&Modo flutuante:&Disquete&Fonte&Família da fonte:&Fonte para o Nível...&Fonte:&Para frente&De:&Disco rígido&Altura:&Ajuda&Esconder detalhes&Home&Recorte (décimos de um mm)&Indeterminado&Índice&Info&Itálico&Pular para&Justificado&Último&Esquerda&Esquerda:&Nível da lista:&Log&Mover&Mover o objeto para:&Rede&Novo&Próximo&Próximo >&Parágrafo Seguinte&Próxima Dica&Próximo estilo:&Não&Notas:&Número:&OK&Abrir...&Nível do contorno:&Quebra da Página&Colar&Foto&Tamanho do ponto:&Posição (décimos de um milímetro):&Modo da posição:&Preferências&Anterior&Parágrafo Anterior&Imprimir...&Propriedades&Sair&Refazer&Refazer &Renomear Estilo...&Substituir&Reiniciar a numeração&Restaurar&Direita&Direita:&Salvar&Salvar como&Ver detalhes&Mostrar dicas ao iniciar&Tamanho&Tamanho:&Pular&Espaçamento (décimos de um milímetro)&&Parar&Penetrar&Estilo:&Estilos:&Subset:&Símbolo:&Tabela&Topo&Topo:&Sublinhar&Sublinhado:&Desfazer&Desfazer &Sem parágrafo&Para cima&Alinhamento vertical:&Visualizar...&Peso:&Largura:&Janela&Sim'%s' tem '..' extras; ignorados.'%s' é inválido'%s' não é um valor numérico correto para a opçãoo '%s'.'%s' não é um catálogo de mensagens válido.'%s' é provavelmente um buffer binário.'%s' deve ser numérico.'%s' deve conter apenas caracteres ASCII.'%s' deve conter apenas caracteres alfabéticos.'%s' deve conter apenas caracteres alfabéticos ou numéricos.'%s' só deve conter dígitos.(*)(Ajuda)(Nenhum)(Texto normal)(favoritos)(nenhum)**)+, edição 64 bits-...1.11.21.31.41.51.61.71.81.910 x 11 em10 x 14 em11 x 17 em12 x 11 em15 x 11 em2Envelope 6 3/4, 3 5/8 x 6 1/2 em"9 x 11 em: o arquivo não existe!: conjunto de caracteres desconhecido: codificação desconhecida< &VoltarFace em negrito itálico.
    negrito itálico sublinhado
    Face em negrito.Face em itálico. >Um relatório de debug foi gerado no diretório Um relatório de debug foi gerado. Ele pode ser achado emUma coleção não vazia deve consistir de nodes do 'elemento'Um nome para o projétil padrão.Folha A0, 841 x 1189 mmFolha A1, 594 x 841 mmA2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra transversal 322 x 445 mmA3 Rotacionada 420 x 297 mmA3 transversal 297 x 420 mmFolha A3, 297 x 420 mmA4 Extra, 9.27 x 12.69 emA4 Plus, 210 x 330 mmA4 Rotacionada, 297 x 210 mmA4 Transversal 210 x 297 mmFolha A4 210 x 297 mmFolha A4 pequena 210 x 297 mmA5 Extra 174 x 235 mmA5 Rotacionada 210 x 148 mmA5 Tranversal 148 x 210 mmFolha A5, 148 x 210 mmA6 105 x 148 mmA6 Rotacionada 148 x 105 mmABCDEFGabcdefg12345ADICIONARASCIISobreSobre o %sAbsolutoTamanho RealAdicionarAdicionar ColunaAdicionar FileiraAdicionar a página atual aos favoritosAdicionar as cores personalizadasAddToPropertyCollection chamada em um m�todo de acesso gen�ricoAddToPropertyCollection chamada sem adicionador v�lidoAdicionando o livro %sFalhou em adicionar o sabor TEXTFalhou em adicionar o sabor utxtAvançadoApós um parágrafo:Alinhar a EsquerdaAlinhar a DireitaAlinhamentoTudoTodos os arquivos (%s)|%sTodos os arquivos (*)|*Todos os arquivos (*.*)|*.*Todos os estilosModo AlfabéticoObjeto Já Registrado passado para o SetObjectClassInfoJá discando para o ISP.Alt+E inclui os seguintes arquivos: O arquivo de animação não é do tipo %ld.Anexar o log ao arquivo '%s'? (escolher [Não] o sobrescreverá)AplicativoAplicarÁrabeÁrabe (ISO-8859-6)Argumento %u não achado.ArtistasAscendenteAtributosFontes disponíveis.B4 (ISO), 250 x 353 mmB4 (JIS) Rotacionada 364 x 257 mmEnvelope B4, 250 x 353 mmFolha B4, 250 x 354 mmB5 (ISO) Extra, 201 x 276 mmB5 (JIS) Rotacionada 257 x 182 mmB5 (JIS) Transversal 182 x 257 mmEnvelope B5, 176 x 250 mmFolha B5, 182 x 257 milímetrosB6 (JIS) 128 x 182 mmB6 (JIS) Rotacionada 182 x 128 mmEnvelope B6, 176 x 125 mmBACKBMP: Não pôde distribuir a memória.BMP: Não pôde salvar a imagem inválida.BMP: Não pôde escrever o mapa de cores RGB.BMP: Não pôde escrever os dados.BMP: Não pôde escrever o cabeçalho do arquivo (Bitmap).BMP: Não pôde escrever o cabeçalho do arquivo (BitmapInfo).BMP: o wxImage não tem sua própria wxPalette.Voltar2º planoCor do &2º plano:Cor do 2º planoBáltico (ISO-8859-13)Báltico (antigo) (ISO-8859-4)Antes de um parágrafo:BitmapO renderizador do bitmap não pode renderizar o valor; tipo de valor:NegritoMargemMargensFundoMargem na parte de baixo (mm):Propriedades da CaixaEstilos da caixaProcurarAlinhamento do &Projétilr:Estilo do projétilProjéteisFolha C, 17 x 22 emL&imparC&or:Envelope C3, 324 x 458 mmEnvelope C4, 229 x 324 mmEnvelope C5, 162 x 229 mmEnvelope C6, 114 x 162 mmEnvelope C65, 114 x 229 mmCANCELARMAIÚSCULASCD-RomO manejador CHM suporta atualmente apenas arquivos locais!LIMPARCOMANDOMa&iúsculasNão Pode &Desfazer Não consegue determinar automaticamente o formato da imagem para entrada de dados não-procurável.Não pode fechar a chave de registro '%s'Não pode copiar os valores do tipo não suportado %d.Não pode criar a chave de registro '%s'Não pode criar o threadNão pode criar a janela da classe %sNão pode apagar a chave '%s'Não pode apagar o arquivo INI '%s'Não pode apagar o valor '%s' da chave '%s'Não pode enumerar as sub-chaves da chave '%s'Não pode enumerar os valores da chave '%s'Não pode exportar o valor do tipo não suportado %d.Não pode achar a posição atual no arquivo '%s'Não pode obter a info sobre a chave de registro '%s'Não pode inicializar o fluxo de deflação do zlib.Não pode inicializar o fluxo de inflação do zlib.Não consegue monitorar o diretório não-existente "%s" por mudanças.Não pode abrir a chave do registro '%s'Não pode ler do fluxo da inflação: %sNão pode ler o fluxo da inflação: EOF inexperado no fluxo básico.Não pode ler o valor de '%s'Não pode ler o valor da chave '%s'Nâo pode salvar imagem no arquivo '%s': extensão desconhecida.Não pode salvar os conteúdos do log no arquivo.Não pode definir a prioridade do threadNão pode definir o valor de '%s'Não pôde gravar como processo criança stdinNão pode escrever no fluxo de deflação: %sCancelarNão pôde criar o mutex.Não pode criar a ID da nova coluna. O nº máx. de colunas provavelmente foi alcançado.Não pôde enumerar os arquivos '%s'Não pôde enumerar os arquivos no diretório '%s'Não pode achar a conexão dial-up ativa: %sNão pode achar o local do arquivo do livro de endereçosNão pôde obter uma instância ativa de "%s"Não pode obter o alcance da prioridade para a norma de conduta do agendamento %d.Não pode obter o nome do hostNão pode obter o nome oficial do hostNão pode desligar - nenhuma conexão dial-up ativa.Não pode inicializar o OLENão pôde inicializar os socketsNão pode carregar o ícone do '%s'.Não pôde carregar os recursos de '%s'.Não pode carregar os recursos do arquivo '%s'.Não pode abrir o documento HTML: %sNão pode abrir o livro de ajuda HTML: %sNão pode abrir o arquivo dos conteúdos: %sNão pode abrir o arquivo para a impressão PostScript!Não pode abrir o arquivo do índice: %sNão pôde abrir os recursos de '%s'.Não pode imprimir a página vazia.Não pode ler o nome do tipo de '%s'!Não pôde resumir o thread %luNão pôde resumir o thread %lxNão pode recuperar a norma de conduta do agendamento dos threads.Não pode definir o locale para o idioma "%s".Não pôde iniciar o thread: erro ao gravar o TLS.Não pôde suspender o thread %luNão pôde suspender o thread %lxNão pôde esperar pelo término do threadCaso sensitivoModo Categorizado&Propriedades da CélulaCelta (ISO-8859-14)Cen&tralizadoCentralizadoEuropeu central (ISO-8859-2)CentroCentralizar texto.CentradoEs&colher...Mudar o Estilo da ListaMudar o Estilo do ObjetoMudar PropriedadesMudar o EstiloAs mudanças não serão salvas para evitar sobrescrever o arquivo existente "%s"Estilos dos caracteresMarque para adicionar um período após o projétil.Marque para adicionar um parêntese direito.Marque para cercar o projétil com parênteses.Marque para fazer a fonte ficar em negrito.Marque para fazer a fonte ficar em itálico.Marque para fazer a fonte ficar sublinhada.Marque para reiniciar a numeração.Marque para mostrar uma linha através do texto.Marque para mostrar o texto em maiúsculas.Marque para mostrar o texto em minúsculas.Marque para mostrar o texto no subscript.Marque para mostrar o texto em superscript.Escolha um ISP para discarEscolher um diretório:Escolha um arquivoEscolha uma corEscolha uma fonteDependência circular envolvendo o módulo "%s" detectada.&FecharClasse não registrada.LimparLimpar os conteúdos do logClique para aplicar o estilo selecionado.Clique para procurar por um símbolo.Clique para cancelar as mudanças na fonte.Clique para cancelar a seleção da fonte.Clique para mudar a cor da fonte.Clique pra mudar a cor de fundo do texto.Clique para mudar a cor do texto.Clique para escolher a fonte para este nível.Clique para fechar esta janelaClique para confirmar as mudanças na fonte.Clique para confirmar a seleção da fonte.Clique para criar um novo estilo de caixas.Clique para criar um novo estilo de caracteres.Clique para criar um novo estilo de listas.Clique para criar um novo estilo de parágrafo.Clique para criar uma nova posição para a aba.Clique para apagar todas as posições da aba.Clique para apagar o estilo selecionado.Clique para apagar a posição da aba selecionada.Clique para editar o estilo selecionado.Clique para renomear o estilo selecionado.FecharFechar TudoFecha o documento atualFechar esta janelaCôrCorO diálogo da seleção de cores falhou com o erro %0lx.Cor:A coluna não pôde ser adicionada.A descrição da coluna não pôde ser inicializada.Índice da coluna não achado.A largura da coluna não pôde ser determinadaA largura da coluna não pôde ser definida.O argumento da linha de comando %d não pôde ser convertido para o Unicode e será ignorado.O diálogo comum falhou com o código do erro %0lx.Composição não suportado por este sistema, por favor ative-a no seu Gerenciador de Janelas.Arquivo de ajuda HTML Compactado (*.chm)|*.chm|ComputadorO nome da entrada da config não pode iniciar com '%c'.ConfirmarConfirmar a atualização do registroConectando...ConteúdosA conversão para o conjunto de caracteres '%s' não funciona.ConverterCopiado para a área de transferência:"%s"Cópias:CopiarCopiar a seleçãoNão pôde criar o arquivo temporário '%s'Não pôde determinar o índice da coluna.Não pôde determinar a posição da colunaNão pôde determinar o número de colunas.Não pôde determinar o número de itensNão pôde extrair %s para %s: %sNão pôde achar a aba pela idNão pôde obter a descrição do cabeçalho.Não pôde obter os itens.Não pôde obter as bandeiras de propriedade.Não pôde obter os itens selecionados.Não pôde localizar o arquivo '%s'.Não pôde remover a coluna.Não pôde recuperar o número de itensNão pôde definir o alinhamento.Não pôde definir a largura da coluna.Não pôde definir o diretório de trabalho atualNão pôde definir a descrição do cabeçalho.Não pôde definir o ícone.Não pôde definir a largura máxima.Não pôde definir a largura mínima.Não pode definir as bandeiras de propriedade.Não pôde iniciar a pré-visualização do documento.Não pôde iniciar a impressão.Não pôde transferir os dados para a janelaNão pôde adquirir uma tranca mutexNão pôde adicionar uma imagem a lista de imagens.Não pôde criar um timerNão pôde crirar a janela overlayNão pôde enumerar as traduçõesNão pôde achar o símbolo '%s' em uma biblioteca dinâmicaNão pôde obter o estilo hatch do wxBrush.Não pôde obter o ponteiro atual do threadNão pôde inicializar o contexto na janela overlayNão pôde inicializar a tabela de hash do GIF.Não pôde carregar uma imagem PNG - o arquivo está corrompido ou memória insuficiente.Não pôde carregar os dados do som de '%s'.Não pôde obter o nome da pastaNão pôde abrir o áudio: %sNão pôde registrar o formato da área de transferência '%s'.Não pôde liberar um mutexNão pôde recuperar a informação sobre o item de controle das listas %d.Não pôde salvar a imagem PNG.Não pôde concluir o threadCriar Parâmetro %s não achado nos Parâmetros RTTI declaradosCriar diretórioCriar novo diretórioCtrl+Co&rtarDiretório atual:Tamanho personalizadoPersonalizar ColunasCortarCortar a seleçãoCirílico (ISO-8859-5)Folha D, 22 x 34 emPedido para cutucar do DDE falhouDECIMALDELAPAGARCabeçalho DIB: A codificação não combina com a profundidade dos bits.Cabeçalho DIB: Altura da imagem > 32767 pixels no arquivo.Cabeçalho DIB: Largura da imagem > 32767 pixels no arquivo.Cabeçalho DIB: Profundidade dos de bits desconhecida no arquivo.Cabeçalho DIB: Codificação desconhecida no arquivo.DIVIDIREnvelope DL, 110 x 220 mmPARA_BAIXOTracejadoObjeto dos dados tem o formato dos dados inválidoO renderizador da data não pode renderizar o valor; tipo de valor:Relatório do debug "%s"O relatório de debug não pôde ser criado.A geração do relatório de debug falhou.DecorativoCodificação padrãoFonte padrãoImpressora padrãoApagarApagar T&udoApagar a ColunaApagar a FileiraApagar o EstiloApagar o TextoApagar o itemApagar a seleçãoApagar o estilo %s?Arquivo de stale lock apagado '%s'.A dependência "%s" do módulo "%s" não existe.DescendenteÁrea de trabalhoDesenvolvido por DesenvolvedoresAs funções de discagem estão indisponíveis porque o serviço de acesso remoto (RAS) não foi instalado nesta máquina. Por favor instale-o.Você sabia...Ocorreu um erro DirectFB %d.DiretóriosO diretório '%s' não pôde ser criadoO diretório '%s' não pôde ser apagadoO diretório não existeO diretório não existe.Descartar mudanças e recarregar a última versão salva?Exibe todos os itens do índice que contém a substring dada. A busca é caso sensitivo.Exibir o diálogo das opçõesExibe a ajuda enquanto você navega pelos livros a esquerda.Você quer sobrescrever o comando usado para %s arquivos com extensão "%s" ? O valor atual é %s, O novo valor é %s %1Você quer salvar as mudanças em %s?Documento:Documentação deEscritores da documentaçãoNão SalvarFeitoFeito.PontilhadoDuploCartão Postal Japonês Duplo Rotacionado 148 x 200 mmID usada duas vezes : %dPara baixoArrastarFolha E 34 x 44ENDENTEREOF enquanto lia do descritor inotifyESCESCAPEEXECUTAREditarEditar itemTempo decorrido:Ativar o valor altura.Ativar o valor máximo da largura.Ativar o valor mínimo da altura.Ativar o valor mínimo da largura.Ativar o valor larguraAtivar alinhamento vertical.Ativar uma côr de fundo.Insira um nome do estilo da caixaInsira um nome de estilo de caracteres:Insira um nome de estilo de listas:Insira um novo nome de estilo:Insira um nome de estilo do parágrafo:Insira o comando para abrir o arquivo "%s":Entradas achadasEnvelope de Convite 220 x 220 mmA expansão das variáveis do ambiente falhou: '%c' desaparecido na posição %u em '%s'.ErroErro ao fechar o descritor epollErro ao fechar a instância kqueueErro ao criar o diretórioErro ao ler a imagem DIB.Erro no recurso: %sErro ao ler as opções da config.Erro ao salvar os dados de configuração do usuário.Erro enquanto imprimia:Erro: Esperanto (ISO-8859-3)Tempo estimado:Fila do evento sobrecarregadaArquivos executáveis (*.exe)|*.exe|ExecutarA execução do comando '%s' falhouA execução do comando '%s' falhou com o erro: %ulExecutivo, 7 1/4 x 10 1/2 emExportando a chave de registro: o arquivo "%s" já existe e não será sobrescrito.Página de Código Unix Extendida para Japon�s (EUC-JP)A extração de '%s' para '%s' falhou.FNome da FaceFalhou em acessar o arquivo da tranca.Falhou em adicionar o descritor %d ao descritor epoll %dFalhou em distribuir %luKb de memória pros dados do bitmap.Falhou em distribuir a cor para o OpenGLFalhou em mudar o modo de vídeoFalhou em verificar o formato do arquivo de imagem "%s".Falhou em limpar o diretório do relatório de debug "%s".Falhou em fechar o manejamento dos arquivosFalhou em fechar o arquivo da tranca '%s'Falhou em fechar a área de transferência.Falhou em fechar a exibição "%s"Falhou em conectar: faltando o nome de usuário/senha.Falhou em conectar nenhum ISP para discar.Falhou em converter o arquivo "%s" para o Unicode.Falhou em copiar os conteúdos do diálogo pra área de transferência.Falhou em copiar o valor de registro '%s'Falhou em copiar os conteúdos da chave de registro '%s' para '%s'.Falhou em copiar o arquivo '%s' para '%s'Falhou em copiar a sub-chave do registro '%s' para '%s'Falhou em criar a string DDEFalhou em criar o MDI parent frame.Falhou em criar um nome de arquivo temporárioFalhou em criar um pipe anônimoFalhou em criar uma instância de "%s"Falhou em criar uma conexão com o servidor '%s' no tópico '%s'Falhou em criar o cursor.Falhou em criar diretório "%s"Falhou em criar o diretório '%s' (Você tem as permissões requeridas?)Falhou em criar o descritor epollFalhou em criar a entrada no registro para os arquivos '%s'.Falhou em criar o diálogo achar/substituir padrão (código do erro %d)Falhou em criar wake up pipe usado para o loop de evento.Falhou em exibir o documento HTML na codificação %sFalhou em esvaziar a área de transferência.Falhou em enumerar os modos de vídeoFalhou em estabelecer um loop de recomendação com o servidor DDEFalhou em estabelecer uma conexão dial-up: %sFalhou em executar o '%s' Falhou ao executar o curl, por favor instale-o no PATH.Falhou em achar a CLSID de "%s"Falhou em achar a combinação para a expressãoo regular: %sFalhou em obter os nomes dos ISPs: %sFalhou em obter a interface de automação do OLE para "%s"Falhou em obter os dados da área de transferênciaFalhou em obter a hora local do sistemaFalhou em obter o diretório de trabalhoFalhou em inicializar a GUI: não foram achados temas embutidos.Falhou ao inicializar a Ajuda do MS HTML Help.Falhou ao inicializar o OpenGLFalhou em iniciar a conexão dialup: %sFalhou em inserir o texto no controle.Falhou em inspecionar o arquivo da tranca '%s'Falhou em instalar o manejador do sinalFalhou em se juntar a um thread, vazamento potencial de memória detectado - por favor reinicie o programaFalhou em matar o processo %dFalhou em carregar o bitmap "%s" dos recursos.Falhou em carregar o ícone "%s" dos recursos.Falhou em carregar a imagem %%d do arquivo '%s'.Falhou em carregar a imagem %d da stream.Falhou em carregar a imagem do arquivo "%s".Falhou em carregar o meta-arquivo do arquivo "%s".Falhou em carregar o mpr.dll.Falhou em carregar o recurso "%s".Falhou em carregar a biblioteca compartilhada '%s'Falhou em trancar o recurso "%s".Falhou em trancar o arquivo da tranca '%s'Falhou em modificar o descritor %d no descritor epoll %dFalhou em modificar as horas do arquivo para '%s'Falhou em monitorar os canais de E/SFalhou em abrir '%s' para leituraFalhou em abrir '%s' para escritaFalhou em abrir o arquivo CHM '%s'.Falhou em abrir a URL '%s' no navegador padrão.Falhou em abrir o diretório "%s" para o monitoramento.Falhou em abrir a exibição "%s"Falhou em abrir o arquivo temporário.Falhou em abrir a área de transferência.Falhou em analisar as Formas-do-Plural: '%s'Falhou em preparar a reprodução do "%s".Falhou em pôr os dados na área de transferênciaFalhou em ler o PID do arquivo da tranca.Falhou em ler as opções de config.Falhou em ler o documento do arquivo "%s".Falhou em ler o evento do DirectFB pipeFalhou em ler do wake-up pipeFalhou em redirecionar a entrada/saída do processo filhoFalhou em redirecionar a E/S do processo filhoFalhou em registrar o servidor DDE '%s'Falhou em lembrar a codificação do conjunto de caracteres '%s'.Falhou em remover o arquivo do relatório do debug "%s"Falhou em remover o arquivo da tranca '%s'Falhou em remover o arquivo do stale lock '%s'.Falhou em renomear o valor do registro de '%s' para '%s'.Falhou em renomear o arquivo '%s' para '%s' porque o arquivo destino já existe.Falhou em renomear a chave do registro de '%s' para '%s'.Falhou em recuperar os dados da área de transferência.Falhou em recuperar as horas do arquivo para '%s'Falhou em recuperar o texto da mensagem de erro do RASFalhou em recuperar os formatos da área de transferência suportadosFalhou em salvar o documento como o arquivo "%s".Falhou em salvar a imagem bitmap como o arquivo "%s".Falhou em enviar a notificação de recomendação do DDEFalhou em definir o modo de transferência do FTP para %s.Falhou em definir os dados da área de transferência.Falhou em definir as permissões sobre o arquivo da tranca '%s'Falhou em definir a prioridade do processoFalhou em definir as permissões do arquivo temporárioFalhou em definir o texto no controle de texto.Falhou em definir o nível de concordância do thread em %lu.Falhou em definir a prioridade do thread %d.Falhou em configurar o pipe não-bloqueador, o programa poderia travar.Falhou em armazenar a imagem '%s' na memória VFS!Falhou em trocar o DirectFB pipe pro modo não bloqueadorFalhou em trocar o wake up pipe para o modo não bloqueadorFalhou em concluir um thread.Falhou em concluir o loop de recomendação com o servidor DDEFalhou em finalizar a conexão dial-up: %sFalhou em tocar o arquivo '%s'Falhou em destrancar o arquivo da tranca '%s'Falhou em des-registrar o servidor DDE '%s'Falhou em des-registrar o descritor %d do descritor epoll %dFalhou em atualizar o arquivo de configuração do usuário.Falhou em enviar o relatório de debug (código do erro %d).Falhou em escrever no arquivo da tranca '%s'FalsoFamíliaArquivoO arquivo "%s" não pôde ser aberto para leitura.O arquivo "%s" não pôde ser aberto para gravação.O arquivo '%s' já existe; você realmente quer sobrescrevê-lo?O arquivo '%s' já existe. Você quer substituí-lo?O arquivo '%s' não pôde ser removidoO arquivo '%s' não pôde ser renomeado '%s'O arquivo não pôde ser carregado.O diálogo do arquivo falhou com o código de erro %0lx.Erro do arquivoO nome do arquivo já existe.ArquivosArquivos (%s)FiltroAcharPrimeiroPrimeira páginaFixoFonte fixa:Face do tamanho fixo.
    negrito itálico FlutuanteDisqueteFolio, 8 1/2 x 13 emFontePeso da &fonte:Tamanho da fonte:Estilo da f&onte:Fonte:O arquivo do índice das fontes %s desapareceu enquanto carregava as fontes.O fork falhouPra frentehrefs adiantadas não são suportadasAchou %i combinaçõesDe:GIF: Índice gif inválido.GIF: fluxo de dados parece estar truncado.GIF: erro no formato da imagem GIF.GIF: memória insuficiente.GIF: erro desconhecido!!!O GTK+ instalado nesta máquina é muito antigo pra suportar a composição de tela, por favor instale GTK+ 2.12 ou superior.Tema GTK+GeralPostScript GenéricoFanfold Legal Alemão, 8 1/2 x 13 emFanfold Std Alemão, 8 1/2 x 12 emGetProperty chamada sem um "getter" v�lidoGetPropertyCollection chamada num acessor gen�ricoGetPropertyCollection chamada sem um "collection getter" v�lidoVoltarAvançarIr um nível aciima na hierarquia do documentoIr para o diretório homeIr para o diretório paiArte gráfica deGrego (ISO-8859-7)RanhuraGzip não suportado por esta versão do zlibAJUDAHOMEProjeto de Ajuda HTML (*.hhp)|*.hhp|Âncora HTML %s não existe.Arquivos HTML (*.html;*.htm)|*.html;*.htm|Disco rígidoHebraico (ISO-8859-8)AjudaOpções do Navegador da AjudaÍndice da AjudaAjuda com a ImpressãoTópicos da AjudaLivros de ajuda (*.htb)|*.htb|Livros de ajuda (*.zip)|*.zip|Diretório de ajuda "%s" não achado.O arquivo de ajuda "%s" não foi achado.Ajuda: %sEsconder %sEsconder OutrosEsconder esta mensagem de notificação.HomeDiretório homeComo o objeto flutuará relativo ao texto.ICO: Erro ao ler a máscara DIB.ICO: Erro ao escrever o arquivo de imagem!ICO: Imagem muito alta para um ícone.ICO: Imagem muito larga para um ícone.ICO: Índice do ícone inválido .IFF: fluxo de dados parece estar truncado.IFF: erro no formato da imagem IFF.IFF: memória insuficiente.IFF: erro desconhecido!!!INSINSERTISO-2022-JPRenderizador de ícone & texto não pode renderizar o valor; tipo de valor:Se possível, tente mudar os parâmetros do layout pra tornar a impressão mais restrita.Se você tem qualquer informação adicional pertinente a este relatório de erro, por favor insira-a aqui e ela será adicionada a ele:Se você deseja suprimir este relatório de debug completamente, por favor escolha o botão "Cancelar", mas esteja avisado que pode impedir de melhorar o programa, então se possível de algum modo por favor continue com a geraçãoo do relatório. Ignorando o valor "%s" da chave "%s".Classe de Objeto Ilegal (Não-wxEvtHandler) como Fonte do EventoN�mero ilegal de par�metros para m�todo ConstructObjectN�mero ilegal de par�metros para o m�todo CreateNome ilegal de diretório.Especificação ilegal do arquivo.Imagem e máscara tem tamanhos diferentes.O arquivo de imagem não é do tipo %d.A imagem não é do tipo %s.Impossível criar um controle de edição rica, usando o controle de texto simples em vez disso. Por favor reinstale o riched32.dllImpossível obter a entrada do processo filhoImpossível obter as permissões para o arquivo '%s'Impossível sobrescrever o arquivo '%s'Impossível definir as permissões para o arquivo '%s'Tamanho do frame do GIF incorreto (%u, %d) para o frame #%uNúmero incorreto de argumentos.RecuoRecuos && EspaçamentoÍndiceIndiano (ISO-8859-12)InfoA inicialização falhou no post init, abortando.InserirInserir CampoInserir ImagemInserir ObjetoInserir TextoInsere uma quebra de página antes do parágrafo.InserirOpção da linha de comando GTK+ inválida, use "%s --help"Índice da imagem TIFF inválido.Item de visualização dos dados inválidoEspecificação do modo de exibição '%s' inválida.Especificação da geometria '%s' inválida Evento inotify inválido para "%s"Arquivo da tranca '%s' inválido.Catálogo de mensagens inválido.ID do Objeto passada para o GetObjectClassInfo Inválida ou NulaID do Objeto passada para o HasObjectClassInfo Inválida ou NulaExpressão regular '%s' inválida: %sValor inválido %ld para uma chave boolean "%s" no arquivo config.ItálicoEnvelope da Itália, 110 x 230 mmJPEG: Não pôde carregar - o arquivo está provavelmente corrompido.JPEG: Não pôde salvar a imagem.Cartão Postal Japonês Duplo 200 x 148 mmEnvelope Japonês Chou #3Envelope Japonês Chou #3 RotacionadoEnvelope Japonês Chou #4Envelope Japonês Chou #4 RotacionadoEnvelope Japonês Kaku #2Envelope Japonês Kaku #2 RotacionadoEnvelope Japonês Kaku #3Envelope Japonês Kaku #3 RotacionadoEnvelope Japonês You #4Envelope Japonês You #4 RotacionadoCartão Postal Japonês 100 x 148 mmCartão Postal Japonês Rotacionado 148 x 100 mmPular paraJustificadoJustificar o texto a esquerda e a direita.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UPE&spaçamento entre as linhas:ESQUERDAPaisagemÚltimoÚltima páginaA última mensagens repetida (tempo "%s", %lu) não era da saída de dadosAs últimas mensagens repetidas (tempo "%s", %lu) não eram da saída de dadosLedger, 17 x 11 emEsquerdaEsquerda (&primeira linha):Margem esquerda (mm):Alinhar o texto a esquerda.Extra Legal, 9 1/2 x 15 emLegal, 8 1/2 x 14 emCarta Extra 9 1/2 x 12 emCarta Extra Transversal 9.275 x 12 emCarta Plus, 8 1/2 x 12.69 emCarta Rotacionada 11 x 8 1/2 emCarta Pequena, 8 1/2 x 11 emCarta Transversal 8 1/2 x 11 emCarta, 8 1/2 x 11 emLicençaLeveA linha %lu do arquivo de mapa "%s" tem sintaxe inválida, pulada.Espaçamento entre as linhas:O link continha '//'; convertido para link absoluto.Estilo das ListasEstilos das listasLista os tamanhos das fontes em pontos.Lista as fontes disponíveis.Carregar o arquivo %sCarregando : O arquivo da tranca '%s' tem dono incorreto.O arquivo da tranca '%s' tem permissões incorretas.Log salvo no arquivo '%s'.Letras minúsculasNumerais romanos minúsculosFilha MDIMENUAs funções da Ajuda do MS HTML não estão disponíveis porque a biblioteca de Ajuda do MS HTML não está instalada nesta máquina. Por favor instale-a.Ma&ximizarÁrabeArmênioBengalêsBirmanêsCeltaCentralEurRomanChinês SimplificadoChinês TradicionalCroataCirílicoDevanagariDingbatsEtíopeÁrabeGalêsGeorgianoGregoGuzerateGurmukhiHebreuIslandêsJaponêsKannadaGlifos do TecladoKhmerCoreanoLaoMalaioMongolOriáRomanoRomenoCingalêsSímboloTâmilTeluguTailandêsTibetanoTurcoVietnamitaFazer uma seleção:MargensCombinar com maiúsculas ou minúsculasAltura máx:Largura máx:Erro do playback da mídia: %sA memória VFS já contém o arquivo '%s'!MenuMensagemTema MetalMétodo ou propriedade não achado.Mi&nimizarAltura mín:Largura mín:Um parâmetro requerido está desaparecido.ModernoModificadoA inicialização do módulo "%s" falhouEnvelope Monarca, 3 7/8 x 7 1/2 emO monitoramento de arquivos individuais por mudanças não é suportado atualmente.Mover para baixoMover para cimaMove o objeto para o próximo parágrafo.Move o objeto para o parágrafo anterior.Propriedades Múltiplas das CélulasNUM_LOCKNomeRedeNovoNovo &Estilo da Caixa...Novo &Estilo de Caractere...Novo &Estilo de Lista...Novo &Estilo de Parágrafo...Novo EstiloNovo diretórioNovo itemNovoNome&PróximoPróxima páginaNãoNenhum manejador de animação para o tipo %ld definido.Nenhum manejador de bitmap para o tipo %d definido.Nenhuma coluna existente.Nenhuma coluna para a coluna especificada existente.Nenhuma coluna para a posição da coluna especificada existente.Nenhum aplicativo padrão configurado para os arquivos HTML.Não foram achadas entradas.Nenhuma fonte para exibir o texto na codificação '%s' achada, mas uma codificação alternativa '%s' está disponível. Você quer usar esta codificação? (de outro modo você terá que escolher outra)Nenhuma fonte para exibir o texto na codificação '%s' achada. Você gostaria de selecionar a fonte a ser usada para esta codificação? (de outro modo o texto nesta codificação não será mostrado corretamente)Nenhum manejador achado para o tipo de animação.Nenhum manejador achado para o tipo de imagem.Nenhum manejador de imagem para o tipo %d definido.Nenhum manipulador de imagem para o tipo %s definido.Nenhuma página que combine achadaNenhum renderizador ou tipo de renderizador inválido especificado para a coluna de dados personalizada.Nenhum renderizador especificado para a coluna.Sem somSem cores não usadas na imagem sendo mascarada.Sem cor não usada na imagem.Nenhum mapeamento válido achado no arquivo "%s".NenhumNórdico (ISO-8859-10)NormalFace normal
    e sublinhado. Fonte normal:Não %sNão disponívelNão sublinhadoNota, 8 1/2 x 11 emNotaO número de colunas não pôde ser determinado.Numerados no contornoOKErro de automação OLE em %s: %sPropriedades do ObjetoA implementação do objeto não suporta argumentos nomeados.Os objetos devem ter um atributo idAbrir ArquivoAbrir documento HTMLAbrir arquivo "%s"Abrir...A função OpenGL "%s" falhou: %s (erro %d)Operação não permitida.A opção '%s' não pode ser negadaA opção '%s' requer um valor.A opção '%s': '%s' não pode ser convertida para uma data.OpçõesOrientaçãoIDs fora da janela. Recomendar o fechamento do aplicativo.ContornoComeçoSobrecarga enquanto força os valores do argumento.PAGEDOWNPAGEUPPAUSEPCX: não pôde distribuir a memóriaPCX: formato da imagem não suportadoPCX: imagem inválidaPCX: este não é um arquivo PCX.PCX: erro desconhecido !!!PCX: número de versão muito baixoPGDNPGUPPNM: Não pôde distribuir a memória.PNM: O formato do arquivo não é reconhecido.PNM: O arquivo parece truncado.PRC 16K 146 x 215 mmPRC 16K RotacionadoPRC 32K 97 x 151 mmPRC 32K RotacionadoPRC 32K (Grande) 97 x 151 mmPRC 32K (Grande) RotacionadoEnvelope PRC #1 102 x 165 mmEnvelope PRC #1 Rotacionado 165 x 102 mmEnvelope PRC #10 324 x 458 mmEnvelope PRC #10 Rotacionado 458 x 324 mmEnvelope PRC #2 102 x 176 mmEnvelope PRC #2 Rotacionado 176 x 102 mmEnvelope PRC #3 125 x 176 mmEnvelope B6 #3 Rotacionado 176 x 125 mmEnvelope PRC #4 110 x 208 mmEnvelope PRC #4 Rotacionado 208 x 110 mmEnvelope PRC #5 110 x 220 mmEnvelope PRC #5 Rotacionado 220 x 110 mmEnvelope PRC #6 120 x 230 mmEnvelope PRC #6 Rotacionado 230 x 120 mmEnvelope PRC #7 160 x 230 mmEnvelope PRC #7 Rotacionado 230 x 160 mmEnvelope PRC #8 120 x 309 mmEnvelope PRC #8 Rotacionado 309 x 120 mmEnvelope PRC #9 229 x 324 mmEnvelope PRC #9 Rotacionado 324 x 229 mmPRINTEnchimentoPágina %dPágina %d de %dConfiguração da PáginaConfiguração da páginaPáginasTamanho do papelEstilos de parágrafoPassando um objeto já registrado para o SetObjectPassando um objeto desconhecido pro GetObjectColarColar a seleçãoPont&oPermissõesPropriedades da FotoA criação do pipe falhouPor favor escolha uma fonte válida.Por favor escolha um arquivo existente.Por favor escolha a página a exibir:Por favor escolha a qual ISP vocé quer se conectarPor favor instale uma versão mais nova do comctl32.dll (no mínimo a versão 4.70 é requerida mas você tem %d.%02d) ou este programa não operará corretamente.Por favor selecione as colunas a mostrar e defina a ordem delas:Por favor espere enquanto imprime...Tamanho do PontoPonteiro para o controle da visualização de dados não definidos corretamente.Ponteiro para o modelo não definido corretamente.RetratoPosiçãoArquivo PostScriptPreferênciasPreferências...PreparandoPré-visualização:Página anteriorImprimirPré-visualização de ImpressãoFalha ao Pré-visualizar a ImpressãooAlcance da ImpressãoConfiguraçãoo da ImpressãoImprimir em coresPré-visualizar impressã&o...A criação da pré-visualização da impressão falhou.Pré-visualização da impressão...Spooling de impressãoImprimir esta páginaImprimir para o ArquivoImprimir...ImpressoraComando da impressora:Opções da impressoraOpções da impressora:Impressora...Impressora:ImprimindoImprimindo Erro ao imprimirImprimindo a página %d de %dImprimindo a página %d...Imprimindo...ImprimirO processamento do relatório do debug falhou, deixando os arquivos no diretório "%s".O renderizador do progresso não pode renderizar o tipo de valor; tipo de valor:Progresso:PropriedadesPropriedadeErro da PropriedadeQuarto, 215 x 275 mmPerguntaSairSair %sSair deste programaRETURNRIGHTRawCtrl+Erro de leitura no arquivo '%s'ProntoRefazerRefazer a última açãoAtualizarA chave de registro '%s' já existe.A chave de registro '%s' não existe; não pode renomeá-la.A chave de registro '%s' é necessária para a operação normal do sistema, apagando-a deixará seu sistema num estado inutilizável: operação abortada.O valor do registro '%s' já existe.NormalRelativoEntradas relevantes:Tempo restante:RemoverRemover a BalaRemover a página atual dos favoritosO renderizador "%s" tem uma versão incompatível, %d.%d; e não pôde ser carregado.A renderização falhou.Re-numerar a ListaSub&stituirSubstituirSubstituir &tudoSubstituir a seleçãoSubstituir por:O espaço da informação requerida está vazio.O recurso '%s' não é um catálogo de mensagens válido.Reverter ao SalvoCordilheiraDireitaMargem direita (mm):Alinhar o texto a direita.RomanoN&ome do projétil padrãoSCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACTSalvarSalvar arquivo %sSalvar &Como...Salvar ComoSalvar comoSalvar o documento atualSalvar o documento atual com um nome de arquivo diferenteSalvar os conteúdos do log com arquivoScriptProcurarPesquisar conteúdos do(s) livro(s) de ajuda para todas as ocorrências do texto que você digitou acimaDireção da buscaProcurar por:Procurar em todos os livrosProcurando...SeçõesErro de busca no arquivo '%s'Erro de busca no arquivo '%s' (arquivos grandes não suportados pela stdio)Selecionar &TudoSelecionar TudoSelecione um modelo de documentoSelecione uma visualização do documentoSelecione regular ou negrito.Selecione o estilo regular ou itálico.Selecione sublinhado ou sem sublinhado.SeleçãoSeleciona o nível da lista para editar.Separador esperado após a opção '%s'.Definir o Estilo da CélulaSetProperty chamada sem um "setter" v�lidoConfigurar os tempos de acesso do diretório não é suportado por esta versão do SOConfigurar...Várias conexões dial-up ativas achadas, escolhendo uma aleatoriamente.Shift+Mostrar &diretórios ocultosMostrar &arquivos ocultosMostrar TudoMostrar o diálogo sobreMostrar tudoMostrar todos os itens no índiceMostrar diretórios ocultosMostrar/ocultar o painel de navegaçãoMostra um subset do Unicode.Mostra uma pré-visualização das configurações dos projéteis.Mostra uma pré-visualização das configurações da fonte.Mostra uma pré-visualização da fonte.Mostra uma pré-visualizaçãoo das configurações do parágrafo.Mostra a pré-visualização da fonte.Tema monocromático simplesÚnicoTamanhoTamanho:PularInclinaçãoMi&núsculasSólidoLamento, não pude abrir este arquivo.Lamento, memória não o suficiente para criar uma pré-visualização.Lamento, este nome está tomado. Por favor escolha outro.Lamento, o formato para este arquivo é desconhecido.Os dados de som estão num formato não suportado.O arquivo de som '%s' está num formato não suportado.EspaçamentoVerificação da EscritaPadrãoDeclaração, 5 1/2 x 8 1/2 emEstáticoStatus: PararPenetrarString para a Cor: Especificação da cor incorreta: %sEstiloOrganizador de EstilosEstilo:SubScrip&tSupe&rscriptSuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSuíçoSímboloFonte dos &símbolos:SímbolosTABTIFF: Não pôde distribuir a memória.TIFF: Erro carregando a imagem.TIFF: Erro ao ler a imagem.TIFF: Erro ao salvar a imagem.TIFF: Erro ao gravar imagem.TiFF: o tamanho da imagem é anormalmente grande.Propriedades da TabelaTablóide Extra 11.69 x 18 emTablóide, 11 x 17 emAbasTeletypeModelosO renderizador de texto não pode renderizar o valor; tipo de valor:Tailandês (ISO-8859-11)O servidor FTP não suporta o modo passivo.O servidor FTP não suporta o comando "PORT".Os estilos de projéteis disponíveis.Os estilos disponíveis.A côr de fundo.O tamanho da margem do fundo.O tamanho do enchimento do fundo.A posição do rodapé.O caractere projétil.O código do caracteres.O conjunto de caracteres '%s' é desconhecido. Você pode selecionar outro conjunto de caracteres para substituí-lo ou escolher [Cancelar] se ele não pode ser substituídoO formato '%d' da área de transferência não existe.O estilo padrão para o próximo parágrafo.O diretório '%s' não existe Criá-lo agora?O documento "%s" não se encaixa na página horizontalmente e será truncado se impresso. Você gostaria de prosseguir com a impressão apesar disso?O arquivo '%s' não existe e não pôde ser aberto. Foi removido da lista dos arquivos mais usados recentemente.O recuo da primeira linha.As seguintes opções GTK+ padrão também são suportadas: A cor da fonteA família da fonteA fonte da qual tomar o símbolo.O tamanho do ponto da fonte.O tamanho da fonte em pontos.As unidades de tamanho da fonte, pontos ou pixels.O estilo da fonte.O peso da fonte.O formato do arquivo '%s' não pôde ser determinado.O recuo a esquerda.O tamanho da margem esquerda.O tamanho do enchimento a esquerda.A posição da esquerda.O espaçamento entre linhas.O número do item da lista.A ID local é desconhecida.A altura do objeto.A altura máxima do objeto.A largura máxima do objeto.A altura mínima do objeto.A largura mínima do objeto.A largura do objeto.O nível do contorno.A mensagem anterior repetida uma vez.A mensagem anterior repetida %lu vezesA mensagem anterior repetida uma vez.O diálogo da impressão retornou um erro.O alcance a mostrar.O relatório contém os arquivos listados abaixo. Se alguns destes arquivos contém informação privada, por favor desmarque-os e eles serão removidos do relatório. O parâmetro requerido '%s' não foi especificado.O recuo a direita.O tamanho da margem a direita.O tamanho do enchimento a direita.A posição da direta.O espaçamento após o parágrafo.O espaçamento antes do parágrafo.O nome do estilo.O estilo no qual este estilo é baseado.A pré-visualização do estilo.O sistema não consegue acessar o arquivo especificado.A posição da aba.As posições das abas.O texto não pôde ser salvo.O tamanho da margem do topo.O tamanho do enchimento do topo.A posição do topo.O valor para a opção '%s' deve ser especificado.A versão do serviço de acesso remoto (RAS) instalado nesta máquina é muito antiga, por favor atualize (a seguinte função requerida está desaparecida: %s).O wxGtkPrinterDC não pode ser usado.Não há coluna ou renderizador para o índice da coluna especificado.Houve um problema durante a configuração da página: talvez você precise definir uma impressora padrão.Este documento não se encaixa na página horizontalmente e será truncado quando for impresso.Isto não é um %s.Esta plataforma não suporta transparência de fundo.Este programa foi compilado com uma versão muito velha do GTK+, por favor reconstrua com GTK+ 2.12 ou mais novo.Este sistema não suporta os controles de data, por favor atualize sua versão do comctl32.dllO módulo de inicialização do thread falhou: não pôde armazenar o valor no armazém local do threadA inicialização do módulo dos threads falhou: falhou em criar a chave do threadA inicialização do módulo dos threads falhou: impossível distribuir o índice no armazém local dos threadsA configuração da prioridade do thread é ignorada.Lado a Lado &HorizontalmenteLado a Lado &VerticalmenteTempo para esgotar enquanto espera o servidor FTP se conectar, tente o modo passivo.A criação do timer falhou.Dica do DiaDicas não disponíveis, lamento!Para:O renderizador ativado não pode renderizar o valor; tipo de valor:Chamadas demais ao EndStyle!Cores demais no PNG; a imagem pode ficar levemente borrada.TopoMargem superior (mm):Traduções deTradutoresVerdadeiroTentando remover o arquivo '%s' da memória VFS, mas ele não está carregado!Turco (ISO-8859-9)TipoDigite um nome de fonte.Digite um tamanho em pontos.Mal combinação do tipo no argumento %u.O tipo precisa ter conversão enum - longA operação do tipo "%s" falhou: A propriedade rotulada "%s" é do tipo "%s", NÃO "%s".UPFanfold Std US, 14 7/8 x 11 emUS-ASCIIIncapaz de adicionar a observação inotifyIncapaz de adicionar a observação kqueueIncapaz de associar o manejar com a porta de término de E/SIncapaz de fechar o manejamento do término da porta de E/SIncapaz de fechar a instância inotifyIncapaz de fechar o caminho '%s'Incapaz de fechar o manejamento para '%s'Incapaz de criar a porta do término da E/SIncapaz de criar o thread do trabalhador IOCPIncapaz de criar a instância inotifyIncapaz de criar a instância kqueueIncapaz de tirar da fila o pacote de términoIncapaz de obter eventos do kqueueIncapaz de manejar dados arrastar&soltar nativosIncapaz de inicializar o GTK+, o DISPLAY está configurado apropriadamente?Incapaz de inicializar o programa HildonIncapaz de abrir o caminho '%s'Incapaz de abrir o documento HTML pedido: %sIncapaz de reproduzir o som de forma assíncrona.Incapaz de postar o status do términoIncapaz de ler do descritor inotifyIncapaz de remover a observação inotifyIncapaz de removar a observação kqueueIncapaz de configurar a observação para '%s'Incapaz de iniciar o thread do trabalhador IOCPRestaurarSublinhar&SublinhadoDesfazerDesfazer a última açãoCaracteres inexperados seguindo a opção '%s'.Evento inesperado para "%s": sem descritor de observação que combine.Parâmetro '%s' inexperadoInesperadamente a nova porta do término de E/S foi criadaTérmino do thread do trabalhador não gratoUnicodeUnicode 16 bits (UTF-16)Unicode 16 bits Big Endian (UTF-16BE)Unicode 16 bits Little Endian (UTF-16LE)Unicode 32 bits (UTF-32)Unicode 32 bits Big Endian (UTF-32BE)Unicode 32 bits Little Endian (UTF-32LE)Unicode 7 bits (UTF-7)Unicode 8 bits (UTF-8)Sem parágrafoUnidades para a largura da borda da parte de baixo.Unidades para a margem do fundo.Unidades para a largura do contorno do fundo.Unidades para o enchimento do fundo.Unidades para a posição do rodapé.Unidades para a largura da borda a esquerda.Unidades para a margem esquerda.Unidades para a largura do contorno a esquerda.Unidades para o enchimento a esquerda.Unidades para a posição da esquerda.Unidades para a altura máxima do objeto.Unidades para a largura máxima do objeto.Unidades para a altura mínima do objeto.Unidades para a largura mínima do objeto.Unidades para a altura do objeto.Unidades para a largura do objeto.Unidades para a largura da borda a direita.Unidades para a margem a direita.Unidades para a largura do contorno a direita.Unidades para o enchimento a direita.Unidades para a posição da direita.Unidades para a largura da borda do topo.Unidades para a margem do topo.Unidades para a largura do contorno do topo.Unidades para o enchimento do topo.Unidades para a posição do topo.DesconhecidoErro DDE desconhecido %08xObjeto Desconhecido passado para o GetObjectClassInfoUnidade de resolução PNG %d desconhecidaPropriedade %s DesconhecidaUnidade de resolução TIFF desconhecida %d ignoradaFormato dos dados desconhecidoErro da biblioteca dinâmica desconhecidoCodificação desconhecida (%d)Erro %08x desconhecidoExceção desconhecidaFormato dos dados da imagem desconhecido.Opção longa '%s' desconhecidaNome desconhecido ou argumento desconhecido.Opção '%s' desconhecidaNão combinada '{' em uma entrada para o tipo mime %s.Comando sem nomeNão especificadoFormato da área de transferência não suportado.Tema '%s' não suportadoPara cimaLetras maiúsculasNumerais romanos maiúsculosUso: %sUsar a configuração de alinhamento atual.Ponteiro válido para o controle de visualização dos dados nativos não existeConflito de validaçãoValorO valor deve ser %s ou maior.O valor deve ser %s ou menor.O valor deve estar entre %s e %s.VersãoAlinhamento vertical.Visualizar osr arquivos em uma visualização detalhadaVisualizar os arquivos em uma visualização de listasVisualizaçõesWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHTEsperando pelo IO no descritor epoll %d falhouAviso: PesoEuropeu Ocidental (ISO-8859-1)Europeu Ocidental com Euro (ISO-8859-15)Se a fonte está sublinhada.Palavra inteiraApenas palavras inteirasTema Win32Win32s no Windows 3.1Windows 2000Windows 7Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d %d)Windows Árabe (CP 1256)Windows Báltico (CP 1257)Windows CE (%d %d)Windows Europeu Central (CP 1250)Windows Chinês Simplificado (CP 936) ou GB-2312Windows Chinês Tradicional (CP 950) ou Big-5Windows Cirílico (CP 1251)Windows Grego (CP 1253)Windows Hebraico (CP 1255)Windows Japonês (CP 932) ou Shift-JISWindows Johab (CP 1361)Windows Coreano (CP 949)Windows MEWindows NT %lu.%luWindows Server 2003Windows Server 2008Windows Server 2008 R2Windows Tailandês (CP 874)Windows Turco (CP 1254)Windows Vietnamita (CP 1258)Windows VistaWindows Europeu Ocidental (CP 1252)Windows XPWindows/DOS OEM (CP 437)Windows/DOS OEM Cirílico (CP 866)Erro de escrita no arquivo '%s'Erro de análise do XML: '%s' na linha %dXPM: Dados dos pixels mal formados!XPM: descrição da cor incorreta na linha %d!XPM: formato do cabeçalho inválido!XPM: definição da cor mal formada '%s' na linha %d!XPM: sem cores restantes para usar para a máscara!XPM: dados da imagem truncados na linha %d!SimVocê não pode limpar um overlay que não é iniciadoVocê não pode iniciar um overlay duas vezesVocê não pode adicionar um novo diretório a esta seção.Você inseriu um valor inválido. Pressione ESC pra cancelar a edição.Aumentar &ZoomDiminuir &ZoomAumentar ZoomDiminuir ZoomZoom para &EncaixarZoom pra Encaixarum aplicativo DDEML criou uma condição de corrida prolongada.uma função DDEML foi chamada sem primeiro chamar a função DdeInitialize, ou um identificador de instância inválido foi passado para uma função DDEML.Uma tentativa de um cliente de estabelecer uma conversação falhou.Uma distribuição de memória falhou.Um parâmetro falhou em ser validado pelo DDEML.o tempo para um pedido para uma transação de recomendação síncrona se esgotou.o tempo para um pedido para uma transação de dados síncrona se esgotou.o tempo para um pedido para uma transação de execução síncrona se esgotou.o tempo para um pedido para uma transação de empurrão síncrona se esgotou.o tempo para terminar uma transação de recomendação se esgotou.uma transação do lado do servidor foi tentada em uma conversação que foi terminada pelo cliente, ou o servidor terminou antes de completar uma transação.um transação falhou.altum aplicativo inicializado como APPCLASS_MONITOR tentou, realizar uma transação DDE, ou um aplicativo inicializado como APPCMD_CLIENTONLY tentou realizar transações de servidor.uma chamada interna para a função PostMessage falhou.um erro interno ocorreu no DDEML.um identificador de transação inválido foi passado para uma função DDEML. Uma vez que o aplicativo retornou de um callback XTYP_XACT_COMPLETE, o identificador da transação para aquele callback não é mais válido.assumindo que este é um zip multi-partes concatenadotentativa de mudar a chave imutável '%s' ignorada.argumentos ruins para a função da bibliotecaassinatura ruimoffset do arquivo zip ruim para a entradabinárionegritoo buffer é muito pequeno para o diretório do Windowsbuild %lunão pode fechar o arquivo '%s'não pode fechar o descritor de arquivo %dnão pode entregar as mudanças para o arquivo '%s'não pode criar o arquivo '%s'não pode apagar o arquivo de configuração do usuário '%s'não pode determinar se o final do arquivo é alcançado no descritor %dnão pode executar '%s'não pode achar o diretório central no zipnão pode achar o tamanho do arquivo no descritor de arquivos %dnão pode achar o HOME do usuário, usando o diretório atual.não pode dar descarga no descritor de arquivos %dnão pode obter a posição de procura no descritor de arquivos %dnão pode carregar qualquer fonte, abortandonão pode abrir o arquivo '%s'não pode abrir o arquivo de configuração global '%s'.não pode abrir o arquivo de configuração do usuário '%s'.não pode abrir o arquivo de configuração do usuário.não pode reinicializar o fluxo de deflação zlibnão pode reinicializar o sistema de inflação zlibnão pode ler do descritor de arquivos %dnão pode remover o arquivo '%s'não pode remover o arquivo temporário '%s'não pode procurar no descritor de arquivos %dnão pode escrever o '%s' no disco.não pode escrever no descritor de arquivos %dnão pode escrever o arquivo de configuração do usuário.erro de checksumfalhou do checksum ao ler o bloco do cabeçalho tarcmerro de compressãoconversão para a codificação de 8 bits falhouctrldataerro de descompressãopadrãoduplodump do estado do processo (binário)décimo-oitavooitavodécimo-primeiroa entrada '%s' aparece mais de uma vez no grupo '%s'erro no formato dos dadoserro ao abrir '%s'erro ao abrir o arquivoerro lendo o diretório central do ziperro lendo o cabeçalho local do ziperro escrevendo a entrada do zip '%s': crc ou tamanho ruimfalhou em dar descarga no arquivo '%s'décimo-quintoquintoarquivo '%s', linha %d: '%s' ignorado após o cabeçalho do grupo.arquivo '%s', linha %d: '=' esperado.arquivo '%s', linha %d: chave '%s' foi achada primeiro na linha %d.arquivo '%s', linha %d: valor para a chave imutável '%s' ignorado.arquivo '%s': caractere %c ineperado na linha %d.arquivosprimeirotamanho da fontedécimo-quartoquartogerar mensagens de log verboseimagembloco do cabeçalho incompleto no tarstring do manejador de eventos incorreta; ponto desaparecidotamanho incorreto dado para a entrada tardados inválidos no cabeçalho estendido tarvalor de retorno da caixa de mensagem inválidoarquivo zip inválidoitálicolevelocal '%s' não pode ser definido.meia-noitedécimo-nononononenhum erro DDE.nenhum errosem fontes achadas em %s, usando a fonte embutidasem nomemeio-dianrmalnão implementadonumobjetos não podem ter Nodes de Texto XMLfalta memóriapor centodescrição do contexto do processoptpxrawctrlerro de leituralendo o fluxo zip (entrada %s): crc ruimlendo o fluxo zip (entrada %s): tamanho ruimproblema na re-entrada.segundoerro de buscadécimo-sétimosétimoshiftmostrar esta mensagem de ajudadécimo-sextosextoespecificar o modo de exibição a usar ( ex: 640x480-16)especificar o tema a usarpadrão/círculopadrão/círculo-contornopadrão/diamantepadrão/quadradopadrão/triângulotamanho do arquivo armazenado não no cabeçalho Zipstrstrikethroughentrada tar não abertadécimoa resposta para a transação fez o bit DDE_FBUSY ser definido.terceirodécimo-terceirohojeamanhãbackslash de rastreamente ignorado em '%s'tradutor-créditosdécimo-segundovigésimosublinhadoinesperado " na posição %d de '%s'.fim de arquivo inesperadodesconhecidoclasse %s desconhecidaerro desconhecidoerro desconhecido (código do erro %08x).origem da busca desconhecidadesconhecido- %dsem nome%d sem nomemétodo de compressão do Zip não suportadousando o catálogo '%s' de '%s'.erro de escritawxGetTimeOfDay falhou.wxPrintout::GetPageInfo dá um maxPage nulo.O ponteiro do controle wxWidget não é um ponteiro de visualização dos dadosControle do wxWidgets não inicializado.O wxWidgets não pôde abrir a exibição para '%s': saindo.O wxWidgets não pôde a exibição. Saindo.xxxxontemerro zlib %d~ginkgocadx-3.8.7/cadxcore/lang/pt_BR/wxstd.po000066400000000000000000010015241314736454600211170ustar00rootroot00000000000000# translation of pt_BR2.po to # Adiel Mittmann , 2007. # Allann Jones , 2009. # translation of pt_BR.po to msgid "" msgstr "" "Project-Id-Version: wxWidgets 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-01 19:04+0200\n" "PO-Revision-Date: 2013-10-02 16:24-0300\n" "Last-Translator: Felipe \n" "Language-Team: Felipe \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Poedit 1.5.7\n" "X-Poedit-SourceCharset: UTF-8\n" #: ../src/common/debugrpt.cpp:591 msgid "" "\n" "Please send this report to the program maintainer, thank you!\n" msgstr "" "\n" "Por favor, envie este relatório ao mantedor do programa, obrigado a você!\n" #: ../src/richtext/richtextstyledlg.cpp:210 #: ../src/richtext/richtextstyledlg.cpp:222 msgid " " msgstr " " #: ../src/generic/dbgrptg.cpp:326 msgid " Thank you and we're sorry for the inconvenience!\n" msgstr " Obrigado a você e nós lamentamos pela inconveniência!\n" #: ../src/common/prntbase.cpp:546 #, c-format msgid " (copy %d of %d)" msgstr "(cópia %d de %d)" #: ../src/common/log.cpp:425 #, c-format msgid " (error %ld: %s)" msgstr " (erro %ld: %s)" #: ../src/common/imagtiff.cpp:75 #, c-format msgid " (in module \"%s\")" msgstr " (no módulo \"%s\")" #: ../src/common/docview.cpp:1624 msgid " - " msgstr " - " #: ../src/richtext/richtextprint.cpp:588 ../src/html/htmprint.cpp:704 msgid " Preview" msgstr " Pré-visualizar" #: ../src/common/fontcmn.cpp:811 msgid " bold" msgstr "negrito" #: ../src/common/fontcmn.cpp:827 msgid " italic" msgstr "itálico" #: ../src/common/fontcmn.cpp:807 msgid " light" msgstr "leve" #: ../src/common/paper.cpp:118 msgid "#10 Envelope, 4 1/8 x 9 1/2 in" msgstr "Envelope #10, 4 1/8 x 9 1/2 em" #: ../src/common/paper.cpp:119 msgid "#11 Envelope, 4 1/2 x 10 3/8 in" msgstr "Envelope #11, 4 1/2 x 10 3/8 em" #: ../src/common/paper.cpp:120 msgid "#12 Envelope, 4 3/4 x 11 in" msgstr "Envelope #12, 4 3/4 x 11 em" #: ../src/common/paper.cpp:121 msgid "#14 Envelope, 5 x 11 1/2 in" msgstr "Envelope #14, 5 x 11 1/2 em" #: ../src/common/paper.cpp:117 msgid "#9 Envelope, 3 7/8 x 8 7/8 in" msgstr "Envelope #9, 3 7/8 x 8 7/8 em" #: ../src/html/helpwnd.cpp:1044 #, c-format msgid "%d of %lu" msgstr "%d de %lu" #: ../src/html/helpwnd.cpp:1681 ../src/html/helpwnd.cpp:1719 #, c-format msgid "%i of %i" msgstr "%i de %i" #: ../src/generic/filectrlg.cpp:315 #, c-format msgid "%ld byte" msgid_plural "%ld bytes" msgstr[0] "%ld byte" msgstr[1] "%ld bytes" #: ../src/html/helpwnd.cpp:1046 #, c-format msgid "%lu of %lu" msgstr "%lu de %lu" #: ../src/common/cmdline.cpp:1050 #, c-format msgid "%s (or %s)" msgstr "%s (ou %s)" #: ../src/generic/logg.cpp:230 #, c-format msgid "%s Error" msgstr "Erro do %s" #: ../src/generic/logg.cpp:242 #, c-format msgid "%s Information" msgstr "Informação %s" #: ../src/generic/preferencesg.cpp:110 #, c-format msgid "%s Preferences" msgstr "%s Preferências" #: ../src/generic/logg.cpp:234 #, c-format msgid "%s Warning" msgstr "Aviso do %s" #: ../src/common/tarstrm.cpp:1319 #, c-format msgid "%s did not fit the tar header for entry '%s'" msgstr "%s não encaixou no cabeçalho tar para a entrada '%s'" #: ../src/common/fldlgcmn.cpp:106 #, c-format msgid "%s files (%s)|%s" msgstr "Arquivos %s (%s)|%s" #: ../src/common/stockitem.cpp:139 ../src/html/helpfrm.cpp:142 #: ../src/html/helpfrm.cpp:144 msgid "&About" msgstr "&Sobre" #: ../src/common/stockitem.cpp:207 msgid "&Actual Size" msgstr "&Tamanho Real" #: ../src/richtext/richtextindentspage.cpp:262 msgid "&After a paragraph:" msgstr "&Após um parágrafo:" #: ../src/richtext/richtextindentspage.cpp:128 #: ../src/richtext/richtextliststylepage.cpp:319 msgid "&Alignment" msgstr "&Alinhamento" #: ../src/common/stockitem.cpp:141 msgid "&Apply" msgstr "&Aplicar" #: ../src/richtext/richtextstyledlg.cpp:251 msgid "&Apply Style" msgstr "&Aplicar Estilo" #: ../src/msw/mdi.cpp:175 msgid "&Arrange Icons" msgstr "&Organizar Ícones" #: ../src/common/stockitem.cpp:195 msgid "&Ascending" msgstr "&Ascendente" #: ../src/common/stockitem.cpp:142 msgid "&Back" msgstr "&Voltar" #: ../src/richtext/richtextstylepage.cpp:113 msgid "&Based on:" msgstr "&Baseado em:" #: ../src/richtext/richtextindentspage.cpp:253 msgid "&Before a paragraph:" msgstr "&Antes de um parágrafo:" #: ../src/richtext/richtextfontpage.cpp:271 msgid "&Bg colour:" msgstr "&Côr de fundo:" #: ../src/common/stockitem.cpp:143 msgid "&Bold" msgstr "&Negrito" #: ../src/common/stockitem.cpp:144 msgid "&Bottom" msgstr "&Fundo" #: ../src/richtext/richtextborderspage.cpp:359 #: ../src/richtext/richtextborderspage.cpp:503 #: ../src/richtext/richtextmarginspage.cpp:260 #: ../src/richtext/richtextmarginspage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:637 #: ../src/richtext/richtextsizepage.cpp:644 msgid "&Bottom:" msgstr "&Fundo:" #: ../include/wx/richtext/richtextbuffer.h:3530 msgid "&Box" msgstr "&Caixa" #: ../src/richtext/richtextliststylepage.cpp:210 #: ../src/richtext/richtextbulletspage.cpp:159 msgid "&Bullet style:" msgstr "&Estilo de Bala:" #: ../src/common/stockitem.cpp:146 msgid "&CD-Rom" msgstr "&CD-Rom" #: ../src/generic/wizard.cpp:432 ../src/generic/fontdlgg.cpp:470 #: ../src/generic/fontdlgg.cpp:489 ../src/osx/carbon/fontdlg.cpp:588 #: ../src/common/stockitem.cpp:145 msgid "&Cancel" msgstr "&Cancelar" #: ../src/msw/mdi.cpp:171 msgid "&Cascade" msgstr "&Em cascata" #: ../include/wx/richtext/richtextbuffer.h:5587 msgid "&Cell" msgstr "&Célula" #: ../src/richtext/richtextsymboldlg.cpp:439 msgid "&Character code:" msgstr "&Código dos caracteres:" #: ../src/common/stockitem.cpp:147 msgid "&Clear" msgstr "&Limpar" #: ../src/generic/logg.cpp:522 ../src/common/stockitem.cpp:148 #: ../src/common/prntbase.cpp:1570 ../src/univ/themes/win32.cpp:3756 #: ../src/html/helpfrm.cpp:139 msgid "&Close" msgstr "&Fechar" #: ../src/common/stockitem.cpp:193 msgid "&Color" msgstr "&Côr" #: ../src/richtext/richtextfontpage.cpp:258 msgid "&Colour:" msgstr "&Cor:" #: ../src/common/stockitem.cpp:149 msgid "&Convert" msgstr "&Converter" #: ../src/richtext/richtextctrl.cpp:326 ../src/osx/textctrl_osx.cpp:583 #: ../src/common/stockitem.cpp:150 ../src/msw/textctrl.cpp:2284 msgid "&Copy" msgstr "&Copiar" #: ../src/generic/hyperlinkg.cpp:156 msgid "&Copy URL" msgstr "&Copiar URL" #: ../src/common/headerctrlcmn.cpp:328 msgid "&Customize..." msgstr "&Personalizar..." #: ../src/generic/dbgrptg.cpp:334 msgid "&Debug report preview:" msgstr "&Pré-visualizar o relatório do debug:" #: ../src/richtext/richtexttabspage.cpp:142 #: ../src/richtext/richtextctrl.cpp:328 ../src/osx/textctrl_osx.cpp:585 #: ../src/common/stockitem.cpp:152 ../src/msw/textctrl.cpp:2286 msgid "&Delete" msgstr "&Apagar" #: ../src/richtext/richtextstyledlg.cpp:269 msgid "&Delete Style..." msgstr "&Apagar o Estilo..." #: ../src/common/stockitem.cpp:196 msgid "&Descending" msgstr "&Descendente" #: ../src/generic/logg.cpp:688 msgid "&Details" msgstr "&Detalhes" #: ../src/common/stockitem.cpp:153 msgid "&Down" msgstr "&Para baixo" #: ../src/common/stockitem.cpp:154 msgid "&Edit" msgstr "&Editar" #: ../src/richtext/richtextstyledlg.cpp:263 msgid "&Edit Style..." msgstr "&Editar Estilo..." #: ../src/common/stockitem.cpp:155 msgid "&Execute" msgstr "&Executar" #: ../src/common/stockitem.cpp:157 ../src/html/helpfrm.cpp:146 msgid "&File" msgstr "&Arquivo" #: ../src/common/stockitem.cpp:158 msgid "&Find" msgstr "&Achar" #: ../src/generic/wizard.cpp:626 msgid "&Finish" msgstr "&Concluir" #: ../src/common/stockitem.cpp:159 msgid "&First" msgstr "&Primeiro" #: ../src/richtext/richtextsizepage.cpp:244 msgid "&Floating mode:" msgstr "&Modo flutuante:" #: ../src/common/stockitem.cpp:160 msgid "&Floppy" msgstr "&Disquete" #: ../src/common/stockitem.cpp:194 msgid "&Font" msgstr "&Fonte" #: ../src/generic/fontdlgg.cpp:371 msgid "&Font family:" msgstr "&Família da fonte:" #: ../src/richtext/richtextliststylepage.cpp:194 msgid "&Font for Level..." msgstr "&Fonte para o Nível..." #: ../src/richtext/richtextfontpage.cpp:156 #: ../src/richtext/richtextsymboldlg.cpp:400 msgid "&Font:" msgstr "&Fonte:" #: ../src/common/stockitem.cpp:161 msgid "&Forward" msgstr "&Para frente" #: ../src/richtext/richtextsymboldlg.cpp:451 msgid "&From:" msgstr "&De:" #: ../src/common/stockitem.cpp:162 msgid "&Harddisk" msgstr "&Disco rígido" #: ../src/richtext/richtextsizepage.cpp:351 #: ../src/richtext/richtextsizepage.cpp:358 msgid "&Height:" msgstr "&Altura:" #: ../src/generic/wizard.cpp:435 ../src/richtext/richtextstyledlg.cpp:303 #: ../src/richtext/richtextsymboldlg.cpp:479 ../src/osx/menu_osx.cpp:785 #: ../src/common/stockitem.cpp:163 ../src/html/helpfrm.cpp:147 msgid "&Help" msgstr "&Ajuda" #: ../include/wx/richmsgdlg.h:30 msgid "&Hide details" msgstr "&Esconder detalhes" #: ../src/common/stockitem.cpp:164 msgid "&Home" msgstr "&Home" #: ../src/richtext/richtextindentspage.cpp:184 #: ../src/richtext/richtextliststylepage.cpp:372 msgid "&Indentation (tenths of a mm)" msgstr "&Recorte (décimos de um mm)" #: ../src/richtext/richtextindentspage.cpp:167 #: ../src/richtext/richtextliststylepage.cpp:356 msgid "&Indeterminate" msgstr "&Indeterminado" #: ../src/common/stockitem.cpp:166 msgid "&Index" msgstr "&Índice" #: ../src/common/stockitem.cpp:167 msgid "&Info" msgstr "&Info" #: ../src/common/stockitem.cpp:168 msgid "&Italic" msgstr "&Itálico" #: ../src/common/stockitem.cpp:169 msgid "&Jump to" msgstr "&Pular para" #: ../src/richtext/richtextindentspage.cpp:153 #: ../src/richtext/richtextliststylepage.cpp:342 msgid "&Justified" msgstr "&Justificado" #: ../src/common/stockitem.cpp:174 msgid "&Last" msgstr "&Último" #: ../src/richtext/richtextindentspage.cpp:139 #: ../src/richtext/richtextliststylepage.cpp:328 msgid "&Left" msgstr "&Esquerda" #: ../src/richtext/richtextindentspage.cpp:195 #: ../src/richtext/richtextborderspage.cpp:269 #: ../src/richtext/richtextborderspage.cpp:413 #: ../src/richtext/richtextliststylepage.cpp:381 #: ../src/richtext/richtextmarginspage.cpp:187 #: ../src/richtext/richtextmarginspage.cpp:301 #: ../src/richtext/richtextsizepage.cpp:532 #: ../src/richtext/richtextsizepage.cpp:539 msgid "&Left:" msgstr "&Esquerda:" #: ../src/richtext/richtextliststylepage.cpp:183 msgid "&List level:" msgstr "&Nível da lista:" #: ../src/generic/logg.cpp:523 msgid "&Log" msgstr "&Log" #: ../src/univ/themes/win32.cpp:3748 msgid "&Move" msgstr "&Mover" #: ../src/richtext/richtextsizepage.cpp:672 msgid "&Move the object to:" msgstr "&Mover o objeto para:" #: ../src/common/stockitem.cpp:175 msgid "&Network" msgstr "&Rede" #: ../src/richtext/richtexttabspage.cpp:136 ../src/common/stockitem.cpp:176 msgid "&New" msgstr "&Novo" #: ../src/aui/tabmdi.cpp:111 ../src/generic/mdig.cpp:100 #: ../src/msw/mdi.cpp:176 msgid "&Next" msgstr "&Próximo" #: ../src/generic/wizard.cpp:431 ../src/generic/wizard.cpp:626 msgid "&Next >" msgstr "&Próximo >" #: ../src/richtext/richtextsizepage.cpp:681 msgid "&Next Paragraph" msgstr "&Parágrafo Seguinte" #: ../src/generic/tipdlg.cpp:276 msgid "&Next Tip" msgstr "&Próxima Dica" #: ../src/richtext/richtextstylepage.cpp:123 msgid "&Next style:" msgstr "&Próximo estilo:" #: ../src/common/stockitem.cpp:177 ../src/msw/msgdlg.cpp:476 msgid "&No" msgstr "&Não" #: ../src/generic/dbgrptg.cpp:356 msgid "&Notes:" msgstr "&Notas:" #: ../src/richtext/richtextbulletspage.cpp:264 msgid "&Number:" msgstr "&Número:" #: ../src/generic/fontdlgg.cpp:475 ../src/generic/fontdlgg.cpp:482 #: ../src/osx/carbon/fontdlg.cpp:594 ../src/common/stockitem.cpp:178 msgid "&OK" msgstr "&OK" #: ../src/generic/dbgrptg.cpp:342 ../src/common/stockitem.cpp:179 #: ../src/html/helpfrm.cpp:137 msgid "&Open..." msgstr "&Abrir..." #: ../src/richtext/richtextindentspage.cpp:222 msgid "&Outline level:" msgstr "&Nível do contorno:" #: ../src/richtext/richtextindentspage.cpp:293 msgid "&Page Break" msgstr "&Quebra da Página" #: ../src/richtext/richtextctrl.cpp:327 ../src/osx/textctrl_osx.cpp:584 #: ../src/common/stockitem.cpp:180 ../src/msw/textctrl.cpp:2285 msgid "&Paste" msgstr "&Colar" #: ../include/wx/richtext/richtextbuffer.h:4655 msgid "&Picture" msgstr "&Foto" #: ../src/generic/fontdlgg.cpp:422 msgid "&Point size:" msgstr "&Tamanho do ponto:" #: ../src/richtext/richtexttabspage.cpp:114 msgid "&Position (tenths of a mm):" msgstr "&Posição (décimos de um milímetro):" #: ../src/richtext/richtextsizepage.cpp:514 msgid "&Position mode:" msgstr "&Modo da posição:" #: ../src/common/stockitem.cpp:181 msgid "&Preferences" msgstr "&Preferências" #: ../src/aui/tabmdi.cpp:112 ../src/generic/mdig.cpp:101 #: ../src/msw/mdi.cpp:177 msgid "&Previous" msgstr "&Anterior" #: ../src/richtext/richtextsizepage.cpp:675 msgid "&Previous Paragraph" msgstr "&Parágrafo Anterior" #: ../src/common/stockitem.cpp:183 msgid "&Print..." msgstr "&Imprimir..." #: ../src/richtext/richtextctrl.cpp:332 ../src/richtext/richtextctrl.cpp:4945 #: ../src/common/stockitem.cpp:184 msgid "&Properties" msgstr "&Propriedades" #: ../src/common/stockitem.cpp:156 msgid "&Quit" msgstr "&Sair" #: ../src/richtext/richtextctrl.cpp:323 ../src/osx/textctrl_osx.cpp:580 #: ../src/common/stockitem.cpp:185 ../src/common/cmdproc.cpp:293 #: ../src/common/cmdproc.cpp:300 ../src/msw/textctrl.cpp:2281 msgid "&Redo" msgstr "&Refazer" #: ../src/common/cmdproc.cpp:289 ../src/common/cmdproc.cpp:309 msgid "&Redo " msgstr "&Refazer " #: ../src/richtext/richtextstyledlg.cpp:257 msgid "&Rename Style..." msgstr "&Renomear Estilo..." #: ../src/generic/fdrepdlg.cpp:179 msgid "&Replace" msgstr "&Substituir" #: ../src/richtext/richtextstyledlg.cpp:287 msgid "&Restart numbering" msgstr "&Reiniciar a numeração" #: ../src/univ/themes/win32.cpp:3747 msgid "&Restore" msgstr "&Restaurar" #: ../src/richtext/richtextindentspage.cpp:146 #: ../src/richtext/richtextliststylepage.cpp:335 msgid "&Right" msgstr "&Direita" #: ../src/richtext/richtextindentspage.cpp:213 #: ../src/richtext/richtextborderspage.cpp:299 #: ../src/richtext/richtextborderspage.cpp:443 #: ../src/richtext/richtextliststylepage.cpp:399 #: ../src/richtext/richtextmarginspage.cpp:212 #: ../src/richtext/richtextmarginspage.cpp:326 #: ../src/richtext/richtextsizepage.cpp:602 #: ../src/richtext/richtextsizepage.cpp:609 msgid "&Right:" msgstr "&Direita:" #: ../src/common/stockitem.cpp:190 msgid "&Save" msgstr "&Salvar" #: ../src/common/stockitem.cpp:191 msgid "&Save as" msgstr "&Salvar como" #: ../include/wx/richmsgdlg.h:29 msgid "&See details" msgstr "&Ver detalhes" #: ../src/generic/tipdlg.cpp:270 msgid "&Show tips at startup" msgstr "&Mostrar dicas ao iniciar" #: ../src/univ/themes/win32.cpp:3750 msgid "&Size" msgstr "&Tamanho" #: ../src/richtext/richtextfontpage.cpp:168 msgid "&Size:" msgstr "&Tamanho:" #: ../src/generic/progdlgg.cpp:282 msgid "&Skip" msgstr "&Pular" #: ../src/richtext/richtextindentspage.cpp:242 #: ../src/richtext/richtextliststylepage.cpp:417 msgid "&Spacing (tenths of a mm)" msgstr "&Espaçamento (décimos de um milímetro)" #: ../src/common/stockitem.cpp:197 msgid "&Spell Check" msgstr "&" #: ../src/common/stockitem.cpp:198 msgid "&Stop" msgstr "&Parar" #: ../src/richtext/richtextfontpage.cpp:284 ../src/common/stockitem.cpp:199 msgid "&Strikethrough" msgstr "&Penetrar" #: ../src/generic/fontdlgg.cpp:382 ../src/richtext/richtextstylepage.cpp:104 msgid "&Style:" msgstr "&Estilo:" #: ../src/richtext/richtextstyledlg.cpp:198 msgid "&Styles:" msgstr "&Estilos:" #: ../src/richtext/richtextsymboldlg.cpp:413 msgid "&Subset:" msgstr "&Subset:" #: ../src/richtext/richtextliststylepage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:222 msgid "&Symbol:" msgstr "&Símbolo:" #: ../include/wx/richtext/richtextbuffer.h:5679 msgid "&Table" msgstr "&Tabela" #: ../src/common/stockitem.cpp:200 msgid "&Top" msgstr "&Topo" #: ../src/richtext/richtextborderspage.cpp:329 #: ../src/richtext/richtextborderspage.cpp:473 #: ../src/richtext/richtextmarginspage.cpp:235 #: ../src/richtext/richtextmarginspage.cpp:349 #: ../src/richtext/richtextsizepage.cpp:567 #: ../src/richtext/richtextsizepage.cpp:574 msgid "&Top:" msgstr "&Topo:" #: ../src/generic/fontdlgg.cpp:444 ../src/common/stockitem.cpp:202 msgid "&Underline" msgstr "&Sublinhar" #: ../src/richtext/richtextfontpage.cpp:243 msgid "&Underlining:" msgstr "&Sublinhado:" #: ../src/richtext/richtextctrl.cpp:322 ../src/osx/textctrl_osx.cpp:579 #: ../src/common/stockitem.cpp:203 ../src/common/cmdproc.cpp:271 #: ../src/msw/textctrl.cpp:2280 msgid "&Undo" msgstr "&Desfazer" #: ../src/common/cmdproc.cpp:265 msgid "&Undo " msgstr "&Desfazer " #: ../src/common/stockitem.cpp:204 msgid "&Unindent" msgstr "&Sem parágrafo" #: ../src/common/stockitem.cpp:205 msgid "&Up" msgstr "&Para cima" #: ../src/richtext/richtextsizepage.cpp:278 msgid "&Vertical alignment:" msgstr "&Alinhamento vertical:" #: ../src/generic/dbgrptg.cpp:340 msgid "&View..." msgstr "&Visualizar..." #: ../src/generic/fontdlgg.cpp:393 msgid "&Weight:" msgstr "&Peso:" #: ../src/richtext/richtextsizepage.cpp:317 #: ../src/richtext/richtextsizepage.cpp:324 msgid "&Width:" msgstr "&Largura:" #: ../src/aui/tabmdi.cpp:311 ../src/aui/tabmdi.cpp:327 #: ../src/aui/tabmdi.cpp:329 ../src/generic/mdig.cpp:294 #: ../src/generic/mdig.cpp:310 ../src/generic/mdig.cpp:314 #: ../src/msw/mdi.cpp:77 msgid "&Window" msgstr "&Janela" #: ../src/common/stockitem.cpp:206 ../src/msw/msgdlg.cpp:476 msgid "&Yes" msgstr "&Sim" #: ../src/common/config.cpp:523 ../src/msw/regconf.cpp:258 #, c-format msgid "'%s' has extra '..', ignored." msgstr "'%s' tem '..' extras; ignorados." #: ../src/common/valtext.cpp:249 ../src/common/valtext.cpp:251 #: ../src/common/valtext.cpp:253 ../src/common/valtext.cpp:255 #, c-format msgid "'%s' is invalid" msgstr "'%s' é inválido" #: ../src/common/cmdline.cpp:948 ../src/common/cmdline.cpp:966 #, c-format msgid "'%s' is not a correct numeric value for option '%s'." msgstr "'%s' não é um valor numérico correto para a opçãoo '%s'." #: ../src/common/translation.cpp:1086 #, c-format msgid "'%s' is not a valid message catalog." msgstr "'%s' não é um catálogo de mensagens válido." #: ../src/common/textbuf.cpp:239 #, c-format msgid "'%s' is probably a binary buffer." msgstr "'%s' é provavelmente um buffer binário." #: ../src/common/valtext.cpp:247 #, c-format msgid "'%s' should be numeric." msgstr "'%s' deve ser numérico." #: ../src/common/valtext.cpp:239 #, c-format msgid "'%s' should only contain ASCII characters." msgstr "'%s' deve conter apenas caracteres ASCII." #: ../src/common/valtext.cpp:241 #, c-format msgid "'%s' should only contain alphabetic characters." msgstr "'%s' deve conter apenas caracteres alfabéticos." #: ../src/common/valtext.cpp:243 #, c-format msgid "'%s' should only contain alphabetic or numeric characters." msgstr "'%s' deve conter apenas caracteres alfabéticos ou numéricos." #: ../src/common/valtext.cpp:245 #, c-format msgid "'%s' should only contain digits." msgstr "'%s' só deve conter dígitos." #: ../src/richtext/richtextliststylepage.cpp:229 #: ../src/richtext/richtextbulletspage.cpp:179 msgid "(*)" msgstr "(*)" #: ../src/html/helpwnd.cpp:976 msgid "(Help)" msgstr "(Ajuda)" #: ../src/richtext/richtextliststylepage.cpp:481 #: ../src/richtext/richtextbulletspage.cpp:286 msgid "(None)" msgstr "(Nenhum)" #: ../src/richtext/richtextsymboldlg.cpp:504 msgid "(Normal text)" msgstr "(Texto normal)" #: ../src/html/helpwnd.cpp:426 ../src/html/helpwnd.cpp:1119 #: ../src/html/helpwnd.cpp:1745 msgid "(bookmarks)" msgstr "(favoritos)" #: ../src/richtext/richtextindentspage.cpp:274 #: ../src/richtext/richtextindentspage.cpp:286 #: ../src/richtext/richtextindentspage.cpp:287 #: ../src/richtext/richtextindentspage.cpp:311 #: ../src/richtext/richtextindentspage.cpp:326 #: ../src/richtext/richtextformatdlg.cpp:831 #: ../src/richtext/richtextfontpage.cpp:331 #: ../src/richtext/richtextfontpage.cpp:335 #: ../src/richtext/richtextfontpage.cpp:339 #: ../src/richtext/richtextliststylepage.cpp:448 #: ../src/richtext/richtextliststylepage.cpp:460 #: ../src/richtext/richtextliststylepage.cpp:461 msgid "(none)" msgstr "(nenhum)" #: ../src/richtext/richtextliststylepage.cpp:492 #: ../src/richtext/richtextbulletspage.cpp:297 msgid "*" msgstr "*" #: ../src/richtext/richtextliststylepage.cpp:236 #: ../src/richtext/richtextbulletspage.cpp:186 msgid "*)" msgstr "*)" #: ../src/richtext/richtextliststylepage.cpp:495 #: ../src/richtext/richtextbulletspage.cpp:300 msgid "+" msgstr "+" #: ../src/msw/utils.cpp:1324 msgid ", 64-bit edition" msgstr ", edição 64 bits" #: ../src/richtext/richtextliststylepage.cpp:493 #: ../src/richtext/richtextbulletspage.cpp:298 msgid "-" msgstr "-" #: ../src/generic/filepickerg.cpp:66 msgid "..." msgstr "..." #: ../src/richtext/richtextindentspage.cpp:276 #: ../src/richtext/richtextliststylepage.cpp:450 msgid "1.1" msgstr "1.1" #: ../src/richtext/richtextindentspage.cpp:277 #: ../src/richtext/richtextliststylepage.cpp:451 msgid "1.2" msgstr "1.2" #: ../src/richtext/richtextindentspage.cpp:278 #: ../src/richtext/richtextliststylepage.cpp:452 msgid "1.3" msgstr "1.3" #: ../src/richtext/richtextindentspage.cpp:279 #: ../src/richtext/richtextliststylepage.cpp:453 msgid "1.4" msgstr "1.4" #: ../src/richtext/richtextindentspage.cpp:280 #: ../src/richtext/richtextliststylepage.cpp:454 msgid "1.5" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:455 msgid "1.6" msgstr "1.6" #: ../src/richtext/richtextindentspage.cpp:282 #: ../src/richtext/richtextliststylepage.cpp:456 msgid "1.7" msgstr "1.7" #: ../src/richtext/richtextindentspage.cpp:283 #: ../src/richtext/richtextliststylepage.cpp:457 msgid "1.8" msgstr "1.8" #: ../src/richtext/richtextindentspage.cpp:284 #: ../src/richtext/richtextliststylepage.cpp:458 msgid "1.9" msgstr "1.9" #: ../src/common/paper.cpp:141 msgid "10 x 11 in" msgstr "10 x 11 em" #: ../src/common/paper.cpp:114 msgid "10 x 14 in" msgstr "10 x 14 em" #: ../src/common/paper.cpp:115 msgid "11 x 17 in" msgstr "11 x 17 em" #: ../src/common/paper.cpp:185 msgid "12 x 11 in" msgstr "12 x 11 em" #: ../src/common/paper.cpp:142 msgid "15 x 11 in" msgstr "15 x 11 em" #: ../src/richtext/richtextindentspage.cpp:285 #: ../src/richtext/richtextliststylepage.cpp:459 msgid "2" msgstr "2" #: ../src/common/paper.cpp:133 msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in" msgstr "Envelope 6 3/4, 3 5/8 x 6 1/2 em\"" #: ../src/common/paper.cpp:140 msgid "9 x 11 in" msgstr "9 x 11 em" #: ../src/html/htmprint.cpp:431 msgid ": file does not exist!" msgstr ": o arquivo não existe!" #: ../src/common/fontmap.cpp:199 msgid ": unknown charset" msgstr ": conjunto de caracteres desconhecido" #: ../src/common/fontmap.cpp:413 msgid ": unknown encoding" msgstr ": codificação desconhecida" #: ../src/generic/wizard.cpp:437 msgid "< &Back" msgstr "< &Voltar" #: ../src/osx/carbon/fontdlg.cpp:608 ../src/osx/carbon/fontdlg.cpp:815 #: ../src/osx/carbon/fontdlg.cpp:835 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:609 ../src/osx/carbon/fontdlg.cpp:817 #: ../src/osx/carbon/fontdlg.cpp:837 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:607 ../src/osx/carbon/fontdlg.cpp:813 #: ../src/osx/carbon/fontdlg.cpp:833 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:610 ../src/osx/carbon/fontdlg.cpp:819 #: ../src/osx/carbon/fontdlg.cpp:839 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:611 ../src/osx/carbon/fontdlg.cpp:824 #: ../src/osx/carbon/fontdlg.cpp:843 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:612 ../src/osx/carbon/fontdlg.cpp:821 #: ../src/osx/carbon/fontdlg.cpp:841 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:606 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:286 ../src/generic/filectrlg.cpp:309 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:290 ../src/generic/filectrlg.cpp:313 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:288 ../src/generic/filectrlg.cpp:311 msgid "" msgstr "" #: ../src/html/helpwnd.cpp:1279 msgid "Bold italic face.
    " msgstr "Face em negrito itálico.
    " #: ../src/html/helpwnd.cpp:1283 msgid "bold italic underlined
    " msgstr "negrito itálico sublinhado
    " #: ../src/html/helpwnd.cpp:1278 msgid "Bold face. " msgstr "Face em negrito." #: ../src/html/helpwnd.cpp:1277 msgid "Italic face. " msgstr "Face em itálico. " #: ../src/richtext/richtextliststylepage.cpp:494 #: ../src/richtext/richtextbulletspage.cpp:299 msgid ">" msgstr ">" #: ../src/generic/dbgrptg.cpp:318 msgid "A debug report has been generated in the directory\n" msgstr "Um relatório de debug foi gerado no diretório\n" #: ../src/common/debugrpt.cpp:578 msgid "A debug report has been generated. It can be found in" msgstr "Um relatório de debug foi gerado. Ele pode ser achado em" #: ../src/common/xtixml.cpp:418 msgid "A non empty collection must consist of 'element' nodes" msgstr "Uma coleção não vazia deve consistir de nodes do 'elemento'" #: ../src/richtext/richtextliststylepage.cpp:304 #: ../src/richtext/richtextliststylepage.cpp:306 #: ../src/richtext/richtextbulletspage.cpp:257 #: ../src/richtext/richtextbulletspage.cpp:259 msgid "A standard bullet name." msgstr "Um nome para o projétil padrão." #: ../src/common/paper.cpp:218 msgid "A0 sheet, 841 x 1189 mm" msgstr "Folha A0, 841 x 1189 mm" #: ../src/common/paper.cpp:219 msgid "A1 sheet, 594 x 841 mm" msgstr "Folha A1, 594 x 841 mm" #: ../src/common/paper.cpp:160 msgid "A2 420 x 594 mm" msgstr "A2 420 x 594 mm" #: ../src/common/paper.cpp:157 msgid "A3 Extra 322 x 445 mm" msgstr "A3 Extra 322 x 445 mm" #: ../src/common/paper.cpp:162 msgid "A3 Extra Transverse 322 x 445 mm" msgstr "A3 Extra transversal 322 x 445 mm" #: ../src/common/paper.cpp:171 msgid "A3 Rotated 420 x 297 mm" msgstr "A3 Rotacionada 420 x 297 mm" #: ../src/common/paper.cpp:161 msgid "A3 Transverse 297 x 420 mm" msgstr "A3 transversal 297 x 420 mm" #: ../src/common/paper.cpp:107 msgid "A3 sheet, 297 x 420 mm" msgstr "Folha A3, 297 x 420 mm" #: ../src/common/paper.cpp:147 msgid "A4 Extra 9.27 x 12.69 in" msgstr "A4 Extra, 9.27 x 12.69 em" #: ../src/common/paper.cpp:154 msgid "A4 Plus 210 x 330 mm" msgstr "A4 Plus, 210 x 330 mm" #: ../src/common/paper.cpp:172 msgid "A4 Rotated 297 x 210 mm" msgstr "A4 Rotacionada, 297 x 210 mm" #: ../src/common/paper.cpp:149 msgid "A4 Transverse 210 x 297 mm" msgstr "A4 Transversal 210 x 297 mm" #: ../src/common/paper.cpp:98 msgid "A4 sheet, 210 x 297 mm" msgstr "Folha A4 210 x 297 mm" #: ../src/common/paper.cpp:108 msgid "A4 small sheet, 210 x 297 mm" msgstr "Folha A4 pequena 210 x 297 mm" #: ../src/common/paper.cpp:158 msgid "A5 Extra 174 x 235 mm" msgstr "A5 Extra 174 x 235 mm" #: ../src/common/paper.cpp:173 msgid "A5 Rotated 210 x 148 mm" msgstr "A5 Rotacionada 210 x 148 mm" #: ../src/common/paper.cpp:155 msgid "A5 Transverse 148 x 210 mm" msgstr "A5 Tranversal 148 x 210 mm" #: ../src/common/paper.cpp:109 msgid "A5 sheet, 148 x 210 mm" msgstr "Folha A5, 148 x 210 mm" #: ../src/common/paper.cpp:165 msgid "A6 105 x 148 mm" msgstr "A6 105 x 148 mm" #: ../src/common/paper.cpp:178 msgid "A6 Rotated 148 x 105 mm" msgstr "A6 Rotacionada 148 x 105 mm" #: ../src/generic/fontdlgg.cpp:83 ../src/richtext/richtextformatdlg.cpp:526 #: ../src/osx/carbon/fontdlg.cpp:339 msgid "ABCDEFGabcdefg12345" msgstr "ABCDEFGabcdefg12345" #: ../src/common/accelcmn.cpp:76 msgid "ADD" msgstr "ADICIONAR" #: ../src/richtext/richtextsymboldlg.cpp:458 ../src/common/ftp.cpp:405 msgid "ASCII" msgstr "ASCII" #: ../src/osx/menu_osx.cpp:630 ../src/common/stockitem.cpp:139 msgid "About" msgstr "Sobre" #: ../src/generic/aboutdlgg.cpp:140 ../src/msw/aboutdlg.cpp:64 #, c-format msgid "About %s" msgstr "Sobre o %s" #: ../src/richtext/richtextsizepage.cpp:520 msgid "Absolute" msgstr "Absoluto" #: ../src/common/stockitem.cpp:207 msgid "Actual Size" msgstr "Tamanho Real" #: ../src/common/stockitem.cpp:140 msgid "Add" msgstr "Adicionar" #: ../src/richtext/richtextbuffer.cpp:10751 msgid "Add Column" msgstr "Adicionar Coluna" #: ../src/richtext/richtextbuffer.cpp:10688 msgid "Add Row" msgstr "Adicionar Fileira" #: ../src/html/helpwnd.cpp:439 msgid "Add current page to bookmarks" msgstr "Adicionar a página atual aos favoritos" #: ../src/generic/colrdlgg.cpp:283 msgid "Add to custom colours" msgstr "Adicionar as cores personalizadas" #: ../include/wx/xtiprop.h:259 msgid "AddToPropertyCollection called on a generic accessor" msgstr "AddToPropertyCollection chamada em um m�todo de acesso gen�rico" #: ../include/wx/xtiprop.h:197 msgid "AddToPropertyCollection called w/o valid adder" msgstr "AddToPropertyCollection chamada sem adicionador v�lido" #: ../src/html/helpctrl.cpp:159 #, c-format msgid "Adding book %s" msgstr "Adicionando o livro %s" #: ../src/osx/carbon/dataview.cpp:1933 msgid "Adding flavor TEXT failed" msgstr "Falhou em adicionar o sabor TEXT" #: ../src/osx/carbon/dataview.cpp:1954 msgid "Adding flavor utxt failed" msgstr "Falhou em adicionar o sabor utxt" #: ../src/common/preferencescmn.cpp:41 msgid "Advanced" msgstr "Avançado" #: ../src/richtext/richtextliststylepage.cpp:435 msgid "After a paragraph:" msgstr "Após um parágrafo:" #: ../src/common/stockitem.cpp:172 msgid "Align Left" msgstr "Alinhar a Esquerda" #: ../src/common/stockitem.cpp:173 msgid "Align Right" msgstr "Alinhar a Direita" #: ../src/richtext/richtextsizepage.cpp:266 msgid "Alignment" msgstr "Alinhamento" #: ../src/generic/prntdlgg.cpp:215 msgid "All" msgstr "Tudo" #: ../src/generic/filectrlg.cpp:1205 ../src/common/fldlgcmn.cpp:89 #, c-format msgid "All files (%s)|%s" msgstr "Todos os arquivos (%s)|%s" #: ../include/wx/defs.h:2922 msgid "All files (*)|*" msgstr "Todos os arquivos (*)|*" #: ../include/wx/defs.h:2919 msgid "All files (*.*)|*.*" msgstr "Todos os arquivos (*.*)|*.*" #: ../src/richtext/richtextstyles.cpp:1057 msgid "All styles" msgstr "Todos os estilos" #: ../src/propgrid/manager.cpp:1496 msgid "Alphabetic Mode" msgstr "Modo Alfabético" #: ../src/common/xtistrm.cpp:429 msgid "Already Registered Object passed to SetObjectClassInfo" msgstr "Objeto Já Registrado passado para o SetObjectClassInfo" #: ../src/unix/dialup.cpp:353 msgid "Already dialling ISP." msgstr "Já discando para o ISP." #: ../src/common/accelcmn.cpp:320 ../src/univ/themes/win32.cpp:3756 msgid "Alt+" msgstr "Alt+" #: ../src/common/debugrpt.cpp:581 msgid "And includes the following files:\n" msgstr "E inclui os seguintes arquivos:\n" #: ../src/generic/animateg.cpp:162 #, c-format msgid "Animation file is not of type %ld." msgstr "O arquivo de animação não é do tipo %ld." #: ../src/generic/logg.cpp:1034 #, c-format msgid "Append log to file '%s' (choosing [No] will overwrite it)?" msgstr "Anexar o log ao arquivo '%s'? (escolher [Não] o sobrescreverá)" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:610 #: ../src/osx/menu_osx.cpp:649 ../src/osx/menu_osx.cpp:657 msgid "Application" msgstr "Aplicativo" #: ../src/common/stockitem.cpp:141 msgid "Apply" msgstr "Aplicar" #: ../src/richtext/richtextliststylepage.cpp:482 #: ../src/richtext/richtextbulletspage.cpp:287 msgid "Arabic" msgstr "Árabe" #: ../src/common/fmapbase.cpp:153 msgid "Arabic (ISO-8859-6)" msgstr "Árabe (ISO-8859-6)" #: ../src/msw/ole/automtn.cpp:661 #, c-format msgid "Argument %u not found." msgstr "Argumento %u não achado." #: ../src/generic/aboutdlgg.cpp:184 msgid "Artists" msgstr "Artistas" #: ../src/common/stockitem.cpp:195 msgid "Ascending" msgstr "Ascendente" #: ../src/generic/filectrlg.cpp:468 msgid "Attributes" msgstr "Atributos" #: ../src/richtext/richtextliststylepage.cpp:294 #: ../src/richtext/richtextbulletspage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:247 msgid "Available fonts." msgstr "Fontes disponíveis." #: ../src/common/paper.cpp:138 msgid "B4 (ISO) 250 x 353 mm" msgstr "B4 (ISO), 250 x 353 mm" #: ../src/common/paper.cpp:174 msgid "B4 (JIS) Rotated 364 x 257 mm" msgstr "B4 (JIS) Rotacionada 364 x 257 mm" #: ../src/common/paper.cpp:128 msgid "B4 Envelope, 250 x 353 mm" msgstr "Envelope B4, 250 x 353 mm" #: ../src/common/paper.cpp:110 msgid "B4 sheet, 250 x 354 mm" msgstr "Folha B4, 250 x 354 mm" #: ../src/common/paper.cpp:159 msgid "B5 (ISO) Extra 201 x 276 mm" msgstr "B5 (ISO) Extra, 201 x 276 mm" #: ../src/common/paper.cpp:175 msgid "B5 (JIS) Rotated 257 x 182 mm" msgstr "B5 (JIS) Rotacionada 257 x 182 mm" #: ../src/common/paper.cpp:156 msgid "B5 (JIS) Transverse 182 x 257 mm" msgstr "B5 (JIS) Transversal 182 x 257 mm" #: ../src/common/paper.cpp:129 msgid "B5 Envelope, 176 x 250 mm" msgstr "Envelope B5, 176 x 250 mm" #: ../src/common/paper.cpp:111 msgid "B5 sheet, 182 x 257 millimeter" msgstr "Folha B5, 182 x 257 milímetros" #: ../src/common/paper.cpp:183 msgid "B6 (JIS) 128 x 182 mm" msgstr "B6 (JIS) 128 x 182 mm" #: ../src/common/paper.cpp:184 msgid "B6 (JIS) Rotated 182 x 128 mm" msgstr "B6 (JIS) Rotacionada 182 x 128 mm" #: ../src/common/paper.cpp:130 msgid "B6 Envelope, 176 x 125 mm" msgstr "Envelope B6, 176 x 125 mm" #: ../src/common/accelcmn.cpp:49 msgid "BACK" msgstr "BACK" #: ../src/common/imagbmp.cpp:523 ../src/common/imagbmp.cpp:553 #: ../src/common/imagbmp.cpp:568 msgid "BMP: Couldn't allocate memory." msgstr "BMP: Não pôde distribuir a memória." #: ../src/common/imagbmp.cpp:97 msgid "BMP: Couldn't save invalid image." msgstr "BMP: Não pôde salvar a imagem inválida." #: ../src/common/imagbmp.cpp:338 msgid "BMP: Couldn't write RGB color map." msgstr "BMP: Não pôde escrever o mapa de cores RGB." #: ../src/common/imagbmp.cpp:473 msgid "BMP: Couldn't write data." msgstr "BMP: Não pôde escrever os dados." #: ../src/common/imagbmp.cpp:239 msgid "BMP: Couldn't write the file (Bitmap) header." msgstr "BMP: Não pôde escrever o cabeçalho do arquivo (Bitmap)." #: ../src/common/imagbmp.cpp:262 msgid "BMP: Couldn't write the file (BitmapInfo) header." msgstr "BMP: Não pôde escrever o cabeçalho do arquivo (BitmapInfo)." #: ../src/common/imagbmp.cpp:133 msgid "BMP: wxImage doesn't have own wxPalette." msgstr "BMP: o wxImage não tem sua própria wxPalette." #: ../src/common/stockitem.cpp:142 msgid "Back" msgstr "Voltar" #: ../src/richtext/richtextbackgroundpage.cpp:119 #: ../src/richtext/richtextformatdlg.cpp:374 msgid "Background" msgstr "2º plano" #: ../src/richtext/richtextbackgroundpage.cpp:131 msgid "Background &colour:" msgstr "Cor do &2º plano:" #: ../src/osx/carbon/fontdlg.cpp:406 msgid "Background colour" msgstr "Cor do 2º plano" #: ../src/common/fmapbase.cpp:160 msgid "Baltic (ISO-8859-13)" msgstr "Báltico (ISO-8859-13)" #: ../src/common/fmapbase.cpp:151 msgid "Baltic (old) (ISO-8859-4)" msgstr "Báltico (antigo) (ISO-8859-4)" #: ../src/richtext/richtextliststylepage.cpp:426 msgid "Before a paragraph:" msgstr "Antes de um parágrafo:" #: ../src/richtext/richtextliststylepage.cpp:489 #: ../src/richtext/richtextbulletspage.cpp:294 msgid "Bitmap" msgstr "Bitmap" #: ../src/osx/carbon/dataview.cpp:2396 msgid "Bitmap renderer cannot render value; value type: " msgstr "O renderizador do bitmap não pode renderizar o valor; tipo de valor:" #: ../src/generic/fontdlgg.cpp:333 ../src/richtext/richtextfontpage.cpp:337 #: ../src/osx/carbon/fontdlg.cpp:540 ../src/common/stockitem.cpp:143 msgid "Bold" msgstr "Negrito" #: ../src/richtext/richtextborderspage.cpp:256 #: ../src/richtext/richtextborderspage.cpp:389 msgid "Border" msgstr "Margem" #: ../src/richtext/richtextformatdlg.cpp:368 msgid "Borders" msgstr "Margens" #: ../src/richtext/richtextsizepage.cpp:288 ../src/common/stockitem.cpp:144 msgid "Bottom" msgstr "Fundo" #: ../src/generic/prntdlgg.cpp:893 msgid "Bottom margin (mm):" msgstr "Margem na parte de baixo (mm):" #: ../src/richtext/richtextbuffer.cpp:8919 msgid "Box Properties" msgstr "Propriedades da Caixa" #: ../src/richtext/richtextstyles.cpp:1061 msgid "Box styles" msgstr "Estilos da caixa" #: ../src/common/filepickercmn.cpp:43 ../src/common/filepickercmn.cpp:44 msgid "Browse" msgstr "Procurar" #: ../src/richtext/richtextliststylepage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:195 msgid "Bullet &Alignment:" msgstr "Alinhamento do &Projétilr:" #: ../src/richtext/richtextliststylepage.cpp:309 msgid "Bullet style" msgstr "Estilo do projétil" #: ../src/richtext/richtextformatdlg.cpp:342 msgid "Bullets" msgstr "Projéteis" #: ../src/common/paper.cpp:99 msgid "C sheet, 17 x 22 in" msgstr "Folha C, 17 x 22 em" #: ../src/generic/logg.cpp:520 msgid "C&lear" msgstr "L&impar" #: ../src/generic/fontdlgg.cpp:406 msgid "C&olour:" msgstr "C&or:" #: ../src/common/paper.cpp:124 msgid "C3 Envelope, 324 x 458 mm" msgstr "Envelope C3, 324 x 458 mm" #: ../src/common/paper.cpp:125 msgid "C4 Envelope, 229 x 324 mm" msgstr "Envelope C4, 229 x 324 mm" #: ../src/common/paper.cpp:123 msgid "C5 Envelope, 162 x 229 mm" msgstr "Envelope C5, 162 x 229 mm" #: ../src/common/paper.cpp:126 msgid "C6 Envelope, 114 x 162 mm" msgstr "Envelope C6, 114 x 162 mm" #: ../src/common/paper.cpp:127 msgid "C65 Envelope, 114 x 229 mm" msgstr "Envelope C65, 114 x 229 mm" #: ../src/common/accelcmn.cpp:66 msgid "CANCEL" msgstr "CANCELAR" #: ../src/common/accelcmn.cpp:70 msgid "CAPITAL" msgstr "MAIÚSCULAS" #: ../src/common/stockitem.cpp:146 msgid "CD-Rom" msgstr "CD-Rom" #: ../src/html/chm.cpp:815 ../src/html/chm.cpp:874 msgid "CHM handler currently supports only local files!" msgstr "O manejador CHM suporta atualmente apenas arquivos locais!" #: ../src/common/accelcmn.cpp:67 msgid "CLEAR" msgstr "LIMPAR" #: ../src/common/accelcmn.cpp:111 msgid "COMMAND" msgstr "COMANDO" #: ../src/richtext/richtextfontpage.cpp:291 msgid "Ca&pitals" msgstr "Ma&iúsculas" #: ../src/common/cmdproc.cpp:267 msgid "Can't &Undo " msgstr "Não Pode &Desfazer " #: ../src/common/image.cpp:2686 msgid "Can't automatically determine the image format for non-seekable input." msgstr "" "Não consegue determinar automaticamente o formato da imagem para entrada de " "dados não-procurável." #: ../src/msw/registry.cpp:505 #, c-format msgid "Can't close registry key '%s'" msgstr "Não pode fechar a chave de registro '%s'" #: ../src/msw/registry.cpp:583 #, c-format msgid "Can't copy values of unsupported type %d." msgstr "Não pode copiar os valores do tipo não suportado %d." #: ../src/msw/registry.cpp:486 #, c-format msgid "Can't create registry key '%s'" msgstr "Não pode criar a chave de registro '%s'" #: ../src/msw/thread.cpp:696 ../src/os2/thread.cpp:494 msgid "Can't create thread" msgstr "Não pode criar o thread" #: ../src/msw/window.cpp:3793 #, c-format msgid "Can't create window of class %s" msgstr "Não pode criar a janela da classe %s" #: ../src/msw/registry.cpp:776 #, c-format msgid "Can't delete key '%s'" msgstr "Não pode apagar a chave '%s'" #: ../src/msw/iniconf.cpp:458 ../src/os2/iniconf.cpp:471 #, c-format msgid "Can't delete the INI file '%s'" msgstr "Não pode apagar o arquivo INI '%s'" #: ../src/msw/registry.cpp:804 #, c-format msgid "Can't delete value '%s' from key '%s'" msgstr "Não pode apagar o valor '%s' da chave '%s'" #: ../src/msw/registry.cpp:1161 #, c-format msgid "Can't enumerate subkeys of key '%s'" msgstr "Não pode enumerar as sub-chaves da chave '%s'" #: ../src/msw/registry.cpp:1116 #, c-format msgid "Can't enumerate values of key '%s'" msgstr "Não pode enumerar os valores da chave '%s'" #: ../src/msw/registry.cpp:1379 #, c-format msgid "Can't export value of unsupported type %d." msgstr "Não pode exportar o valor do tipo não suportado %d." #: ../src/common/ffile.cpp:236 #, c-format msgid "Can't find current position in file '%s'" msgstr "Não pode achar a posição atual no arquivo '%s'" #: ../src/msw/registry.cpp:416 #, c-format msgid "Can't get info about registry key '%s'" msgstr "Não pode obter a info sobre a chave de registro '%s'" #: ../src/common/zstream.cpp:346 msgid "Can't initialize zlib deflate stream." msgstr "Não pode inicializar o fluxo de deflação do zlib." #: ../src/common/zstream.cpp:185 msgid "Can't initialize zlib inflate stream." msgstr "Não pode inicializar o fluxo de inflação do zlib." #: ../src/msw/fswatcher.cpp:432 #, c-format msgid "Can't monitor non-existent directory \"%s\" for changes." msgstr "Não consegue monitorar o diretório não-existente \"%s\" por mudanças." #: ../src/msw/registry.cpp:452 #, c-format msgid "Can't open registry key '%s'" msgstr "Não pode abrir a chave do registro '%s'" #: ../src/common/zstream.cpp:252 #, c-format msgid "Can't read from inflate stream: %s" msgstr "Não pode ler do fluxo da inflação: %s" #: ../src/common/zstream.cpp:244 msgid "Can't read inflate stream: unexpected EOF in underlying stream." msgstr "Não pode ler o fluxo da inflação: EOF inexperado no fluxo básico." #: ../src/msw/registry.cpp:1048 #, c-format msgid "Can't read value of '%s'" msgstr "Não pode ler o valor de '%s'" #: ../src/msw/registry.cpp:877 ../src/msw/registry.cpp:909 #: ../src/msw/registry.cpp:971 #, c-format msgid "Can't read value of key '%s'" msgstr "Não pode ler o valor da chave '%s'" #: ../src/common/image.cpp:2483 #, c-format msgid "Can't save image to file '%s': unknown extension." msgstr "Nâo pode salvar imagem no arquivo '%s': extensão desconhecida." #: ../src/generic/logg.cpp:579 ../src/generic/logg.cpp:996 msgid "Can't save log contents to file." msgstr "Não pode salvar os conteúdos do log no arquivo." #: ../src/msw/thread.cpp:652 ../src/os2/thread.cpp:477 msgid "Can't set thread priority" msgstr "Não pode definir a prioridade do thread" #: ../src/msw/registry.cpp:895 ../src/msw/registry.cpp:939 #: ../src/msw/registry.cpp:1065 #, c-format msgid "Can't set value of '%s'" msgstr "Não pode definir o valor de '%s'" #: ../src/unix/utilsunx.cpp:357 msgid "Can't write to child process's stdin" msgstr "Não pôde gravar como processo criança stdin" #: ../src/common/zstream.cpp:427 #, c-format msgid "Can't write to deflate stream: %s" msgstr "Não pode escrever no fluxo de deflação: %s" #: ../include/wx/msgdlg.h:274 ../src/generic/dirdlgg.cpp:107 #: ../src/richtext/richtextstyledlg.cpp:300 ../src/common/stockitem.cpp:145 #: ../src/msw/msgdlg.cpp:489 ../src/msw/progdlg.cpp:673 #: ../src/gtk1/fontdlg.cpp:144 ../src/motif/msgdlg.cpp:196 msgid "Cancel" msgstr "Cancelar" #: ../src/os2/thread.cpp:116 msgid "Cannot create mutex." msgstr "Não pôde criar o mutex." #: ../src/osx/carbon/dataview.cpp:895 msgid "Cannot create new column's ID. Probably max. number of columns reached." msgstr "" "Não pode criar a ID da nova coluna. O nº máx. de colunas provavelmente foi " "alcançado." #: ../src/common/filefn.cpp:1336 #, c-format msgid "Cannot enumerate files '%s'" msgstr "Não pôde enumerar os arquivos '%s'" #: ../src/msw/dir.cpp:264 #, c-format msgid "Cannot enumerate files in directory '%s'" msgstr "Não pôde enumerar os arquivos no diretório '%s'" #: ../src/msw/dialup.cpp:542 #, c-format msgid "Cannot find active dialup connection: %s" msgstr "Não pode achar a conexão dial-up ativa: %s" #: ../src/msw/dialup.cpp:848 msgid "Cannot find the location of address book file" msgstr "Não pode achar o local do arquivo do livro de endereços" #: ../src/msw/ole/automtn.cpp:562 #, c-format msgid "Cannot get an active instance of \"%s\"" msgstr "Não pôde obter uma instância ativa de \"%s\"" #: ../src/unix/threadpsx.cpp:1030 #, c-format msgid "Cannot get priority range for scheduling policy %d." msgstr "" "Não pode obter o alcance da prioridade para a norma de conduta do " "agendamento %d." #: ../src/unix/utilsunx.cpp:988 msgid "Cannot get the hostname" msgstr "Não pode obter o nome do host" #: ../src/unix/utilsunx.cpp:1024 msgid "Cannot get the official hostname" msgstr "Não pode obter o nome oficial do host" #: ../src/msw/dialup.cpp:949 msgid "Cannot hang up - no active dialup connection." msgstr "Não pode desligar - nenhuma conexão dial-up ativa." #: ../include/wx/msw/ole/oleutils.h:52 msgid "Cannot initialize OLE" msgstr "Não pode inicializar o OLE" #: ../src/common/socket.cpp:847 msgid "Cannot initialize sockets" msgstr "Não pôde inicializar os sockets" #: ../src/msw/volume.cpp:620 #, c-format msgid "Cannot load icon from '%s'." msgstr "Não pode carregar o ícone do '%s'." #: ../src/xrc/xmlres.cpp:361 #, c-format msgid "Cannot load resources from '%s'." msgstr "Não pôde carregar os recursos de '%s'." #: ../src/xrc/xmlres.cpp:746 #, c-format msgid "Cannot load resources from file '%s'." msgstr "Não pode carregar os recursos do arquivo '%s'." #: ../src/html/htmlfilt.cpp:137 #, c-format msgid "Cannot open HTML document: %s" msgstr "Não pode abrir o documento HTML: %s" #: ../src/html/helpdata.cpp:665 #, c-format msgid "Cannot open HTML help book: %s" msgstr "Não pode abrir o livro de ajuda HTML: %s" #: ../src/html/helpdata.cpp:297 #, c-format msgid "Cannot open contents file: %s" msgstr "Não pode abrir o arquivo dos conteúdos: %s" #: ../src/generic/dcpsg.cpp:1751 msgid "Cannot open file for PostScript printing!" msgstr "Não pode abrir o arquivo para a impressão PostScript!" #: ../src/html/helpdata.cpp:311 #, c-format msgid "Cannot open index file: %s" msgstr "Não pode abrir o arquivo do índice: %s" #: ../src/xrc/xmlres.cpp:728 #, c-format msgid "Cannot open resources file '%s'." msgstr "Não pôde abrir os recursos de '%s'." #: ../src/html/helpwnd.cpp:1537 msgid "Cannot print empty page." msgstr "Não pode imprimir a página vazia." #: ../src/msw/volume.cpp:507 #, c-format msgid "Cannot read typename from '%s'!" msgstr "Não pode ler o nome do tipo de '%s'!" #: ../src/os2/thread.cpp:527 #, c-format msgid "Cannot resume thread %lu" msgstr "Não pôde resumir o thread %lu" #: ../src/msw/thread.cpp:923 #, c-format msgid "Cannot resume thread %lx" msgstr "Não pôde resumir o thread %lx" #: ../src/unix/threadpsx.cpp:1011 msgid "Cannot retrieve thread scheduling policy." msgstr "Não pode recuperar a norma de conduta do agendamento dos threads." #: ../src/common/intl.cpp:542 #, c-format msgid "Cannot set locale to language \"%s\"." msgstr "Não pode definir o locale para o idioma \"%s\"." #: ../src/unix/threadpsx.cpp:831 ../src/msw/thread.cpp:569 msgid "Cannot start thread: error writing TLS." msgstr "Não pôde iniciar o thread: erro ao gravar o TLS." #: ../src/os2/thread.cpp:513 #, c-format msgid "Cannot suspend thread %lu" msgstr "Não pôde suspender o thread %lu" #: ../src/msw/thread.cpp:907 #, c-format msgid "Cannot suspend thread %lx" msgstr "Não pôde suspender o thread %lx" #: ../src/msw/thread.cpp:830 msgid "Cannot wait for thread termination" msgstr "Não pôde esperar pelo término do thread" #: ../src/html/helpwnd.cpp:546 msgid "Case sensitive" msgstr "Caso sensitivo" #: ../src/propgrid/manager.cpp:1495 msgid "Categorized Mode" msgstr "Modo Categorizado" #: ../src/richtext/richtextbuffer.cpp:9347 msgid "Cell Properties" msgstr "&Propriedades da Célula" #: ../src/common/fmapbase.cpp:161 msgid "Celtic (ISO-8859-14)" msgstr "Celta (ISO-8859-14)" #: ../src/richtext/richtextindentspage.cpp:160 #: ../src/richtext/richtextliststylepage.cpp:349 msgid "Cen&tred" msgstr "Cen&tralizado" #: ../src/common/stockitem.cpp:170 msgid "Centered" msgstr "Centralizado" #: ../src/common/fmapbase.cpp:149 msgid "Central European (ISO-8859-2)" msgstr "Europeu central (ISO-8859-2)" #: ../src/richtext/richtextliststylepage.cpp:250 #: ../src/richtext/richtextbulletspage.cpp:200 msgid "Centre" msgstr "Centro" #: ../src/richtext/richtextindentspage.cpp:162 #: ../src/richtext/richtextindentspage.cpp:164 #: ../src/richtext/richtextliststylepage.cpp:351 #: ../src/richtext/richtextliststylepage.cpp:353 msgid "Centre text." msgstr "Centralizar texto." #: ../src/richtext/richtextsizepage.cpp:287 msgid "Centred" msgstr "Centrado" #: ../src/richtext/richtextliststylepage.cpp:280 #: ../src/richtext/richtextbulletspage.cpp:232 msgid "Ch&oose..." msgstr "Es&colher..." #: ../src/richtext/richtextbuffer.cpp:4041 msgid "Change List Style" msgstr "Mudar o Estilo da Lista" #: ../src/richtext/richtextbuffer.cpp:3392 msgid "Change Object Style" msgstr "Mudar o Estilo do Objeto" #: ../src/richtext/richtextbuffer.cpp:3658 #: ../src/richtext/richtextbuffer.cpp:7749 msgid "Change Properties" msgstr "Mudar Propriedades" #: ../src/richtext/richtextbuffer.cpp:3209 msgid "Change Style" msgstr "Mudar o Estilo" #: ../src/common/fileconf.cpp:372 #, c-format msgid "Changes won't be saved to avoid overwriting the existing file \"%s\"" msgstr "" "As mudanças não serão salvas para evitar sobrescrever o arquivo existente " "\"%s\"" #: ../src/richtext/richtextstyles.cpp:1059 msgid "Character styles" msgstr "Estilos dos caracteres" #: ../src/richtext/richtextliststylepage.cpp:224 #: ../src/richtext/richtextliststylepage.cpp:226 #: ../src/richtext/richtextbulletspage.cpp:174 #: ../src/richtext/richtextbulletspage.cpp:176 msgid "Check to add a period after the bullet." msgstr "Marque para adicionar um período após o projétil." #: ../src/richtext/richtextliststylepage.cpp:238 #: ../src/richtext/richtextliststylepage.cpp:240 #: ../src/richtext/richtextbulletspage.cpp:188 #: ../src/richtext/richtextbulletspage.cpp:190 msgid "Check to add a right parenthesis." msgstr "Marque para adicionar um parêntese direito." #: ../src/richtext/richtextliststylepage.cpp:231 #: ../src/richtext/richtextliststylepage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:181 #: ../src/richtext/richtextbulletspage.cpp:183 msgid "Check to enclose the bullet in parentheses." msgstr "Marque para cercar o projétil com parênteses." #: ../src/osx/carbon/fontdlg.cpp:542 ../src/osx/carbon/fontdlg.cpp:544 msgid "Check to make the font bold." msgstr "Marque para fazer a fonte ficar em negrito." #: ../src/osx/carbon/fontdlg.cpp:549 ../src/osx/carbon/fontdlg.cpp:551 msgid "Check to make the font italic." msgstr "Marque para fazer a fonte ficar em itálico." #: ../src/osx/carbon/fontdlg.cpp:558 ../src/osx/carbon/fontdlg.cpp:560 msgid "Check to make the font underlined." msgstr "Marque para fazer a fonte ficar sublinhada." #: ../src/richtext/richtextstyledlg.cpp:289 #: ../src/richtext/richtextstyledlg.cpp:291 msgid "Check to restart numbering." msgstr "Marque para reiniciar a numeração." #: ../src/richtext/richtextfontpage.cpp:286 #: ../src/richtext/richtextfontpage.cpp:288 msgid "Check to show a line through the text." msgstr "Marque para mostrar uma linha através do texto." #: ../src/richtext/richtextfontpage.cpp:293 #: ../src/richtext/richtextfontpage.cpp:295 msgid "Check to show the text in capitals." msgstr "Marque para mostrar o texto em maiúsculas." #: ../src/richtext/richtextfontpage.cpp:300 #: ../src/richtext/richtextfontpage.cpp:302 msgid "Check to show the text in small capitals." msgstr "Marque para mostrar o texto em minúsculas." #: ../src/richtext/richtextfontpage.cpp:314 #: ../src/richtext/richtextfontpage.cpp:316 msgid "Check to show the text in subscript." msgstr "Marque para mostrar o texto no subscript." #: ../src/richtext/richtextfontpage.cpp:307 #: ../src/richtext/richtextfontpage.cpp:309 msgid "Check to show the text in superscript." msgstr "Marque para mostrar o texto em superscript." #: ../src/msw/dialup.cpp:784 msgid "Choose ISP to dial" msgstr "Escolha um ISP para discar" #: ../src/propgrid/props.cpp:1643 msgid "Choose a directory:" msgstr "Escolher um diretório:" #: ../src/propgrid/props.cpp:1702 msgid "Choose a file" msgstr "Escolha um arquivo" #: ../src/generic/colrdlgg.cpp:144 ../src/gtk/colordlg.cpp:63 msgid "Choose colour" msgstr "Escolha uma cor" #: ../src/generic/fontpickerg.cpp:50 ../src/gtk/fontdlg.cpp:75 #: ../src/gtk1/fontdlg.cpp:125 msgid "Choose font" msgstr "Escolha uma fonte" #: ../src/common/module.cpp:74 #, c-format msgid "Circular dependency involving module \"%s\" detected." msgstr "Dependência circular envolvendo o módulo \"%s\" detectada." #: ../src/aui/tabmdi.cpp:108 ../src/generic/mdig.cpp:97 msgid "Cl&ose" msgstr "&Fechar" #: ../src/msw/ole/automtn.cpp:673 msgid "Class not registered." msgstr "Classe não registrada." #: ../src/common/stockitem.cpp:147 msgid "Clear" msgstr "Limpar" #: ../src/generic/logg.cpp:520 msgid "Clear the log contents" msgstr "Limpar os conteúdos do log" #: ../src/richtext/richtextstyledlg.cpp:252 #: ../src/richtext/richtextstyledlg.cpp:254 msgid "Click to apply the selected style." msgstr "Clique para aplicar o estilo selecionado." #: ../src/richtext/richtextliststylepage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:283 #: ../src/richtext/richtextbulletspage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:235 msgid "Click to browse for a symbol." msgstr "Clique para procurar por um símbolo." #: ../src/osx/carbon/fontdlg.cpp:589 ../src/osx/carbon/fontdlg.cpp:591 msgid "Click to cancel changes to the font." msgstr "Clique para cancelar as mudanças na fonte." #: ../src/generic/fontdlgg.cpp:472 ../src/generic/fontdlgg.cpp:491 msgid "Click to cancel the font selection." msgstr "Clique para cancelar a seleção da fonte." #: ../src/osx/carbon/fontdlg.cpp:570 ../src/osx/carbon/fontdlg.cpp:572 msgid "Click to change the font colour." msgstr "Clique para mudar a cor da fonte." #: ../src/richtext/richtextfontpage.cpp:276 #: ../src/richtext/richtextfontpage.cpp:278 msgid "Click to change the text background colour." msgstr "Clique pra mudar a cor de fundo do texto." #: ../src/richtext/richtextfontpage.cpp:263 #: ../src/richtext/richtextfontpage.cpp:265 msgid "Click to change the text colour." msgstr "Clique para mudar a cor do texto." #: ../src/richtext/richtextliststylepage.cpp:195 #: ../src/richtext/richtextliststylepage.cpp:197 msgid "Click to choose the font for this level." msgstr "Clique para escolher a fonte para este nível." #: ../src/richtext/richtextstyledlg.cpp:279 #: ../src/richtext/richtextstyledlg.cpp:281 msgid "Click to close this window." msgstr "Clique para fechar esta janela" #: ../src/osx/carbon/fontdlg.cpp:596 ../src/osx/carbon/fontdlg.cpp:598 msgid "Click to confirm changes to the font." msgstr "Clique para confirmar as mudanças na fonte." #: ../src/generic/fontdlgg.cpp:477 ../src/generic/fontdlgg.cpp:479 #: ../src/generic/fontdlgg.cpp:484 ../src/generic/fontdlgg.cpp:486 msgid "Click to confirm the font selection." msgstr "Clique para confirmar a seleção da fonte." #: ../src/richtext/richtextstyledlg.cpp:244 #: ../src/richtext/richtextstyledlg.cpp:246 msgid "Click to create a new box style." msgstr "Clique para criar um novo estilo de caixas." #: ../src/richtext/richtextstyledlg.cpp:226 #: ../src/richtext/richtextstyledlg.cpp:228 msgid "Click to create a new character style." msgstr "Clique para criar um novo estilo de caracteres." #: ../src/richtext/richtextstyledlg.cpp:238 #: ../src/richtext/richtextstyledlg.cpp:240 msgid "Click to create a new list style." msgstr "Clique para criar um novo estilo de listas." #: ../src/richtext/richtextstyledlg.cpp:232 #: ../src/richtext/richtextstyledlg.cpp:234 msgid "Click to create a new paragraph style." msgstr "Clique para criar um novo estilo de parágrafo." #: ../src/richtext/richtexttabspage.cpp:137 #: ../src/richtext/richtexttabspage.cpp:139 msgid "Click to create a new tab position." msgstr "Clique para criar uma nova posição para a aba." #: ../src/richtext/richtexttabspage.cpp:149 #: ../src/richtext/richtexttabspage.cpp:151 msgid "Click to delete all tab positions." msgstr "Clique para apagar todas as posições da aba." #: ../src/richtext/richtextstyledlg.cpp:270 #: ../src/richtext/richtextstyledlg.cpp:272 msgid "Click to delete the selected style." msgstr "Clique para apagar o estilo selecionado." #: ../src/richtext/richtexttabspage.cpp:143 #: ../src/richtext/richtexttabspage.cpp:145 msgid "Click to delete the selected tab position." msgstr "Clique para apagar a posição da aba selecionada." #: ../src/richtext/richtextstyledlg.cpp:264 #: ../src/richtext/richtextstyledlg.cpp:266 msgid "Click to edit the selected style." msgstr "Clique para editar o estilo selecionado." #: ../src/richtext/richtextstyledlg.cpp:258 #: ../src/richtext/richtextstyledlg.cpp:260 msgid "Click to rename the selected style." msgstr "Clique para renomear o estilo selecionado." #: ../src/generic/dbgrptg.cpp:97 ../src/generic/progdlgg.cpp:804 #: ../src/generic/progdlgg.cpp:809 ../src/richtext/richtextstyledlg.cpp:277 #: ../src/richtext/richtextsymboldlg.cpp:476 ../src/common/stockitem.cpp:148 #: ../src/msw/progdlg.cpp:170 ../src/msw/progdlg.cpp:679 #: ../src/html/helpdlg.cpp:90 msgid "Close" msgstr "Fechar" #: ../src/aui/tabmdi.cpp:109 ../src/generic/mdig.cpp:98 msgid "Close All" msgstr "Fechar Tudo" #: ../src/common/stockitem.cpp:266 msgid "Close current document" msgstr "Fecha o documento atual" #: ../src/generic/logg.cpp:522 msgid "Close this window" msgstr "Fechar esta janela" #: ../src/common/stockitem.cpp:193 msgid "Color" msgstr "Côr" #: ../src/richtext/richtextformatdlg.cpp:725 msgid "Colour" msgstr "Cor" #: ../src/msw/colordlg.cpp:156 #, c-format msgid "Colour selection dialog failed with error %0lx." msgstr "O diálogo da seleção de cores falhou com o erro %0lx." #: ../src/osx/carbon/fontdlg.cpp:566 msgid "Colour:" msgstr "Cor:" #: ../src/osx/carbon/dataview.cpp:900 msgid "Column could not be added." msgstr "A coluna não pôde ser adicionada." #: ../src/osx/carbon/dataview.cpp:899 msgid "Column description could not be initialized." msgstr "A descrição da coluna não pôde ser inicializada." #: ../src/osx/carbon/dataview.cpp:1538 ../src/osx/carbon/dataview.cpp:1559 msgid "Column index not found." msgstr "Índice da coluna não achado." #: ../src/osx/carbon/dataview.cpp:1614 msgid "Column width could not be determined" msgstr "A largura da coluna não pôde ser determinada" #: ../src/osx/carbon/dataview.cpp:901 msgid "Column width could not be set." msgstr "A largura da coluna não pôde ser definida." #: ../src/common/init.cpp:188 #, c-format msgid "" "Command line argument %d couldn't be converted to Unicode and will be " "ignored." msgstr "" "O argumento da linha de comando %d não pôde ser convertido para o Unicode e " "será ignorado." #: ../src/msw/fontdlg.cpp:119 #, c-format msgid "Common dialog failed with error code %0lx." msgstr "O diálogo comum falhou com o código do erro %0lx." #: ../src/gtk/window.cpp:4306 msgid "" "Compositing not supported by this system, please enable it in your Window " "Manager." msgstr "" "Composição não suportado por este sistema, por favor ative-a no seu " "Gerenciador de Janelas." #: ../src/html/helpwnd.cpp:1554 msgid "Compressed HTML Help file (*.chm)|*.chm|" msgstr "Arquivo de ajuda HTML Compactado (*.chm)|*.chm|" #: ../src/generic/dirctrlg.cpp:544 msgid "Computer" msgstr "Computador" #: ../src/common/fileconf.cpp:965 #, c-format msgid "Config entry name cannot start with '%c'." msgstr "O nome da entrada da config não pode iniciar com '%c'." #: ../src/gtk/filedlg.cpp:59 msgid "Confirm" msgstr "Confirmar" #: ../src/msw/mimetype.cpp:739 msgid "Confirm registry update" msgstr "Confirmar a atualização do registro" #: ../src/html/htmlwin.cpp:544 msgid "Connecting..." msgstr "Conectando..." #: ../src/html/helpwnd.cpp:482 msgid "Contents" msgstr "Conteúdos" #: ../src/common/strconv.cpp:2261 #, c-format msgid "Conversion to charset '%s' doesn't work." msgstr "A conversão para o conjunto de caracteres '%s' não funciona." #: ../src/common/stockitem.cpp:149 msgid "Convert" msgstr "Converter" #: ../src/html/htmlwin.cpp:1057 #, c-format msgid "Copied to clipboard:\"%s\"" msgstr "Copiado para a área de transferência:\"%s\"" #: ../src/generic/prntdlgg.cpp:247 msgid "Copies:" msgstr "Cópias:" #: ../src/common/stockitem.cpp:150 ../src/stc/stc_i18n.cpp:18 msgid "Copy" msgstr "Copiar" #: ../src/common/stockitem.cpp:258 msgid "Copy selection" msgstr "Copiar a seleção" #: ../src/html/chm.cpp:718 #, c-format msgid "Could not create temporary file '%s'" msgstr "Não pôde criar o arquivo temporário '%s'" #: ../src/osx/carbon/dataview.cpp:1285 ../src/osx/carbon/dataview.cpp:1672 msgid "Could not determine column index." msgstr "Não pôde determinar o índice da coluna." #: ../src/osx/carbon/dataview.cpp:876 msgid "Could not determine column's position" msgstr "Não pôde determinar a posição da coluna" #: ../src/osx/carbon/dataview.cpp:843 msgid "Could not determine number of columns." msgstr "Não pôde determinar o número de colunas." #: ../src/osx/carbon/dataview.cpp:975 msgid "Could not determine number of items" msgstr "Não pôde determinar o número de itens" #: ../src/html/chm.cpp:273 #, c-format msgid "Could not extract %s into %s: %s" msgstr "Não pôde extrair %s para %s: %s" #: ../src/generic/tabg.cpp:1048 msgid "Could not find tab for id" msgstr "Não pôde achar a aba pela id" #: ../src/osx/carbon/dataview.cpp:2556 ../src/osx/carbon/dataview.cpp:2591 #: ../src/osx/carbon/dataview.cpp:2615 ../src/osx/carbon/dataview.cpp:2636 #: ../src/osx/carbon/dataview.cpp:2773 msgid "Could not get header description." msgstr "Não pôde obter a descrição do cabeçalho." #: ../src/osx/carbon/dataview.cpp:1169 ../src/osx/carbon/dataview.cpp:1195 msgid "Could not get items." msgstr "Não pôde obter os itens." #: ../src/osx/carbon/dataview.cpp:2659 ../src/osx/carbon/dataview.cpp:2724 msgid "Could not get property flags." msgstr "Não pôde obter as bandeiras de propriedade." #: ../src/osx/carbon/dataview.cpp:726 msgid "Could not get selected items." msgstr "Não pôde obter os itens selecionados." #: ../src/html/chm.cpp:444 #, c-format msgid "Could not locate file '%s'." msgstr "Não pôde localizar o arquivo '%s'." #: ../src/osx/carbon/dataview.cpp:845 msgid "Could not remove column." msgstr "Não pôde remover a coluna." #: ../src/osx/carbon/dataview.cpp:642 msgid "Could not retrieve number of items" msgstr "Não pôde recuperar o número de itens" #: ../src/osx/carbon/dataview.cpp:2572 msgid "Could not set alignment." msgstr "Não pôde definir o alinhamento." #: ../src/osx/carbon/dataview.cpp:2803 msgid "Could not set column width." msgstr "Não pôde definir a largura da coluna." #: ../src/common/filefn.cpp:1569 msgid "Could not set current working directory" msgstr "Não pôde definir o diretório de trabalho atual" #: ../src/osx/carbon/dataview.cpp:2775 msgid "Could not set header description." msgstr "Não pôde definir a descrição do cabeçalho." #: ../src/osx/carbon/dataview.cpp:2596 msgid "Could not set icon." msgstr "Não pôde definir o ícone." #: ../src/osx/carbon/dataview.cpp:2617 msgid "Could not set maximum width." msgstr "Não pôde definir a largura máxima." #: ../src/osx/carbon/dataview.cpp:2638 msgid "Could not set minimum width." msgstr "Não pôde definir a largura mínima." #: ../src/osx/carbon/dataview.cpp:2664 ../src/osx/carbon/dataview.cpp:2729 msgid "Could not set property flags." msgstr "Não pode definir as bandeiras de propriedade." #: ../src/common/prntbase.cpp:1985 msgid "Could not start document preview." msgstr "Não pôde iniciar a pré-visualização do documento." #: ../src/generic/printps.cpp:178 ../src/msw/printwin.cpp:210 #: ../src/gtk/print.cpp:1077 msgid "Could not start printing." msgstr "Não pôde iniciar a impressão." #: ../src/common/wincmn.cpp:2131 msgid "Could not transfer data to window" msgstr "Não pôde transferir os dados para a janela" #: ../src/os2/thread.cpp:160 msgid "Couldn't acquire a mutex lock" msgstr "Não pôde adquirir uma tranca mutex" #: ../src/msw/imaglist.cpp:166 ../src/msw/imaglist.cpp:197 #: ../src/msw/imaglist.cpp:209 ../src/msw/dragimag.cpp:193 #: ../src/msw/dragimag.cpp:232 msgid "Couldn't add an image to the image list." msgstr "Não pôde adicionar uma imagem a lista de imagens." #: ../src/msw/timer.cpp:134 ../src/os2/timer.cpp:113 msgid "Couldn't create a timer" msgstr "Não pôde criar um timer" #: ../src/osx/carbon/overlay.cpp:122 msgid "Couldn't create the overlay window" msgstr "Não pôde crirar a janela overlay" #: ../src/common/translation.cpp:2015 msgid "Couldn't enumerate translations" msgstr "Não pôde enumerar as traduções" #: ../src/common/dynlib.cpp:152 #, c-format msgid "Couldn't find symbol '%s' in a dynamic library" msgstr "Não pôde achar o símbolo '%s' em uma biblioteca dinâmica" #: ../src/gtk/print.cpp:2014 msgid "Couldn't get hatch style from wxBrush." msgstr "Não pôde obter o estilo hatch do wxBrush." #: ../src/msw/thread.cpp:950 msgid "Couldn't get the current thread pointer" msgstr "Não pôde obter o ponteiro atual do thread" #: ../src/osx/carbon/overlay.cpp:129 msgid "Couldn't init the context on the overlay window" msgstr "Não pôde inicializar o contexto na janela overlay" #: ../src/common/imaggif.cpp:263 msgid "Couldn't initialize GIF hash table." msgstr "Não pôde inicializar a tabela de hash do GIF." #: ../src/common/imagpng.cpp:657 msgid "Couldn't load a PNG image - file is corrupted or not enough memory." msgstr "" "Não pôde carregar uma imagem PNG - o arquivo está corrompido ou memória " "insuficiente." #: ../src/unix/sound.cpp:470 #, c-format msgid "Couldn't load sound data from '%s'." msgstr "Não pôde carregar os dados do som de '%s'." #: ../src/msw/dirdlg.cpp:441 msgid "Couldn't obtain folder name" msgstr "Não pôde obter o nome da pasta" #: ../src/unix/sound_sdl.cpp:229 #, c-format msgid "Couldn't open audio: %s" msgstr "Não pôde abrir o áudio: %s" #: ../src/msw/ole/dataobj.cpp:350 #, c-format msgid "Couldn't register clipboard format '%s'." msgstr "Não pôde registrar o formato da área de transferência '%s'." #: ../src/os2/thread.cpp:177 msgid "Couldn't release a mutex" msgstr "Não pôde liberar um mutex" #: ../src/msw/listctrl.cpp:756 #, c-format msgid "Couldn't retrieve information about list control item %d." msgstr "" "Não pôde recuperar a informação sobre o item de controle das listas %d." #: ../src/common/imagpng.cpp:746 ../src/common/imagpng.cpp:757 #: ../src/common/imagpng.cpp:767 msgid "Couldn't save PNG image." msgstr "Não pôde salvar a imagem PNG." #: ../src/msw/thread.cpp:715 msgid "Couldn't terminate thread" msgstr "Não pôde concluir o thread" #: ../src/common/xtistrm.cpp:170 #, c-format msgid "Create Parameter %s not found in declared RTTI Parameters" msgstr "Criar Parâmetro %s não achado nos Parâmetros RTTI declarados" #: ../src/generic/dirdlgg.cpp:317 msgid "Create directory" msgstr "Criar diretório" #: ../src/generic/filedlgg.cpp:228 ../src/generic/dirdlgg.cpp:131 msgid "Create new directory" msgstr "Criar novo diretório" #: ../src/common/accelcmn.cpp:322 msgid "Ctrl+" msgstr "Ctrl+" #: ../src/richtext/richtextctrl.cpp:325 ../src/osx/textctrl_osx.cpp:582 #: ../src/common/stockitem.cpp:151 ../src/msw/textctrl.cpp:2283 msgid "Cu&t" msgstr "Co&rtar" #: ../src/generic/filectrlg.cpp:956 msgid "Current directory:" msgstr "Diretório atual:" #: ../src/gtk/print.cpp:759 msgid "Custom size" msgstr "Tamanho personalizado" #: ../src/common/headerctrlcmn.cpp:60 msgid "Customize Columns" msgstr "Personalizar Colunas" #: ../src/common/stockitem.cpp:151 ../src/stc/stc_i18n.cpp:17 msgid "Cut" msgstr "Cortar" #: ../src/common/stockitem.cpp:259 msgid "Cut selection" msgstr "Cortar a seleção" #: ../src/common/fmapbase.cpp:152 msgid "Cyrillic (ISO-8859-5)" msgstr "Cirílico (ISO-8859-5)" #: ../src/common/paper.cpp:100 msgid "D sheet, 22 x 34 in" msgstr "Folha D, 22 x 34 em" #: ../src/msw/dde.cpp:708 msgid "DDE poke request failed" msgstr "Pedido para cutucar do DDE falhou" #: ../src/common/accelcmn.cpp:79 msgid "DECIMAL" msgstr "DECIMAL" #: ../src/common/accelcmn.cpp:47 msgid "DEL" msgstr "DEL" #: ../src/common/accelcmn.cpp:48 msgid "DELETE" msgstr "APAGAR" #: ../src/common/imagbmp.cpp:1092 msgid "DIB Header: Encoding doesn't match bitdepth." msgstr "Cabeçalho DIB: A codificação não combina com a profundidade dos bits." #: ../src/common/imagbmp.cpp:1040 msgid "DIB Header: Image height > 32767 pixels for file." msgstr "Cabeçalho DIB: Altura da imagem > 32767 pixels no arquivo." #: ../src/common/imagbmp.cpp:1032 msgid "DIB Header: Image width > 32767 pixels for file." msgstr "Cabeçalho DIB: Largura da imagem > 32767 pixels no arquivo." #: ../src/common/imagbmp.cpp:1060 msgid "DIB Header: Unknown bitdepth in file." msgstr "Cabeçalho DIB: Profundidade dos de bits desconhecida no arquivo." #: ../src/common/imagbmp.cpp:1074 msgid "DIB Header: Unknown encoding in file." msgstr "Cabeçalho DIB: Codificação desconhecida no arquivo." #: ../src/common/accelcmn.cpp:80 msgid "DIVIDE" msgstr "DIVIDIR" #: ../src/common/paper.cpp:122 msgid "DL Envelope, 110 x 220 mm" msgstr "Envelope DL, 110 x 220 mm" #: ../src/common/accelcmn.cpp:59 msgid "DOWN" msgstr "PARA_BAIXO" #: ../src/richtext/richtextborderspage.cpp:545 msgid "Dashed" msgstr "Tracejado" #: ../src/osx/carbon/dataview.cpp:1921 msgid "Data object has invalid data format" msgstr "Objeto dos dados tem o formato dos dados inválido" #: ../src/osx/carbon/dataview.cpp:2491 msgid "Date renderer cannot render value; value type: " msgstr "O renderizador da data não pode renderizar o valor; tipo de valor:" #: ../src/generic/dbgrptg.cpp:300 #, c-format msgid "Debug report \"%s\"" msgstr "Relatório do debug \"%s\"" #: ../src/common/debugrpt.cpp:210 msgid "Debug report couldn't be created." msgstr "O relatório de debug não pôde ser criado." #: ../src/common/debugrpt.cpp:558 msgid "Debug report generation has failed." msgstr "A geração do relatório de debug falhou." #: ../src/generic/fontdlgg.cpp:323 msgid "Decorative" msgstr "Decorativo" #: ../src/common/fmapbase.cpp:796 msgid "Default encoding" msgstr "Codificação padrão" #: ../src/dfb/fontmgr.cpp:180 msgid "Default font" msgstr "Fonte padrão" #: ../src/generic/prntdlgg.cpp:510 msgid "Default printer" msgstr "Impressora padrão" #: ../src/richtext/richtextbuffer.cpp:7841 ../src/common/stockitem.cpp:152 #: ../src/stc/stc_i18n.cpp:20 msgid "Delete" msgstr "Apagar" #: ../src/richtext/richtexttabspage.cpp:148 msgid "Delete A&ll" msgstr "Apagar T&udo" #: ../src/richtext/richtextbuffer.cpp:10637 msgid "Delete Column" msgstr "Apagar a Coluna" #: ../src/richtext/richtextbuffer.cpp:10587 msgid "Delete Row" msgstr "Apagar a Fileira" #: ../src/richtext/richtextstyledlg.cpp:779 msgid "Delete Style" msgstr "Apagar o Estilo" #: ../src/richtext/richtextctrl.cpp:1231 ../src/richtext/richtextctrl.cpp:1452 msgid "Delete Text" msgstr "Apagar o Texto" #: ../src/generic/editlbox.cpp:274 msgid "Delete item" msgstr "Apagar o item" #: ../src/common/stockitem.cpp:260 msgid "Delete selection" msgstr "Apagar a seleção" #: ../src/richtext/richtextstyledlg.cpp:779 #, c-format msgid "Delete style %s?" msgstr "Apagar o estilo %s?" #: ../src/unix/snglinst.cpp:295 #, c-format msgid "Deleted stale lock file '%s'." msgstr "Arquivo de stale lock apagado '%s'." #: ../src/common/module.cpp:124 #, c-format msgid "Dependency \"%s\" of module \"%s\" doesn't exist." msgstr "A dependência \"%s\" do módulo \"%s\" não existe." #: ../src/common/stockitem.cpp:196 msgid "Descending" msgstr "Descendente" #: ../src/generic/dirctrlg.cpp:626 msgid "Desktop" msgstr "Área de trabalho" #: ../src/generic/aboutdlgg.cpp:70 msgid "Developed by " msgstr "Desenvolvido por " #: ../src/generic/aboutdlgg.cpp:176 msgid "Developers" msgstr "Desenvolvedores" #: ../src/msw/dialup.cpp:393 msgid "" "Dial up functions are unavailable because the remote access service (RAS) is " "not installed on this machine. Please install it." msgstr "" "As funções de discagem estão indisponíveis porque o serviço de acesso remoto " "(RAS) não foi instalado nesta máquina. Por favor instale-o." #: ../src/generic/tipdlg.cpp:230 msgid "Did you know..." msgstr "Você sabia..." #: ../src/dfb/wrapdfb.cpp:63 #, c-format msgid "DirectFB error %d occurred." msgstr "Ocorreu um erro DirectFB %d." #: ../src/motif/filedlg.cpp:219 msgid "Directories" msgstr "Diretórios" #: ../src/common/filefn.cpp:1251 #, c-format msgid "Directory '%s' couldn't be created" msgstr "O diretório '%s' não pôde ser criado" #: ../src/common/filefn.cpp:1271 #, c-format msgid "Directory '%s' couldn't be deleted" msgstr "O diretório '%s' não pôde ser apagado" #: ../src/generic/dirdlgg.cpp:233 msgid "Directory does not exist" msgstr "O diretório não existe" #: ../src/generic/filectrlg.cpp:1412 msgid "Directory doesn't exist." msgstr "O diretório não existe." #: ../src/common/docview.cpp:455 msgid "Discard changes and reload the last saved version?" msgstr "Descartar mudanças e recarregar a última versão salva?" #: ../src/html/helpwnd.cpp:512 msgid "" "Display all index items that contain given substring. Search is case " "insensitive." msgstr "" "Exibe todos os itens do índice que contém a substring dada. A busca é caso " "sensitivo." #: ../src/html/helpwnd.cpp:692 msgid "Display options dialog" msgstr "Exibir o diálogo das opções" #: ../src/html/helpwnd.cpp:326 msgid "Displays help as you browse the books on the left." msgstr "Exibe a ajuda enquanto você navega pelos livros a esquerda." #: ../src/msw/mimetype.cpp:732 msgid "" "Do you want to overwrite the command used to %s files with extension \"%s" "\" ?\n" "Current value is \n" "%s, \n" "New value is \n" "%s %1" msgstr "" "Você quer sobrescrever o comando usado para %s arquivos com extensão \"%s" "\" ?\n" "O valor atual é \n" "%s, \n" "O novo valor é \n" "%s %1" #: ../src/common/docview.cpp:531 #, c-format msgid "Do you want to save changes to %s?" msgstr "Você quer salvar as mudanças em %s?" #: ../src/common/prntbase.cpp:525 msgid "Document:" msgstr "Documento:" #: ../src/generic/aboutdlgg.cpp:73 msgid "Documentation by " msgstr "Documentação de" #: ../src/generic/aboutdlgg.cpp:180 msgid "Documentation writers" msgstr "Escritores da documentação" #: ../src/common/sizer.cpp:2680 msgid "Don't Save" msgstr "Não Salvar" #: ../src/msw/frame.cpp:122 ../src/html/htmlwin.cpp:611 msgid "Done" msgstr "Feito" #: ../src/generic/progdlgg.cpp:481 ../src/msw/progdlg.cpp:407 msgid "Done." msgstr "Feito." #: ../src/richtext/richtextborderspage.cpp:544 msgid "Dotted" msgstr "Pontilhado" #: ../src/richtext/richtextborderspage.cpp:546 msgid "Double" msgstr "Duplo" #: ../src/common/paper.cpp:177 msgid "Double Japanese Postcard Rotated 148 x 200 mm" msgstr "Cartão Postal Japonês Duplo Rotacionado 148 x 200 mm" #: ../src/common/xtixml.cpp:273 #, c-format msgid "Doubly used id : %d" msgstr "ID usada duas vezes : %d" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:153 msgid "Down" msgstr "Para baixo" #: ../src/richtext/richtextctrl.cpp:814 msgid "Drag" msgstr "Arrastar" #: ../src/common/paper.cpp:101 msgid "E sheet, 34 x 44 in" msgstr "Folha E 34 x 44" #: ../src/common/accelcmn.cpp:61 msgid "END" msgstr "END" #: ../src/common/accelcmn.cpp:52 msgid "ENTER" msgstr "ENTER" #: ../src/unix/fswatcher_inotify.cpp:535 msgid "EOF while reading from inotify descriptor" msgstr "EOF enquanto lia do descritor inotify" #: ../src/common/accelcmn.cpp:64 msgid "ESC" msgstr "ESC" #: ../src/common/accelcmn.cpp:65 msgid "ESCAPE" msgstr "ESCAPE" #: ../src/common/accelcmn.cpp:73 msgid "EXECUTE" msgstr "EXECUTAR" #: ../src/common/stockitem.cpp:154 msgid "Edit" msgstr "Editar" #: ../src/generic/editlbox.cpp:272 msgid "Edit item" msgstr "Editar item" #: ../include/wx/generic/progdlgg.h:84 msgid "Elapsed time:" msgstr "Tempo decorrido:" #: ../src/richtext/richtextsizepage.cpp:353 #: ../src/richtext/richtextsizepage.cpp:355 #: ../src/richtext/richtextsizepage.cpp:465 #: ../src/richtext/richtextsizepage.cpp:467 msgid "Enable the height value." msgstr "Ativar o valor altura." #: ../src/richtext/richtextsizepage.cpp:438 #: ../src/richtext/richtextsizepage.cpp:440 msgid "Enable the maximum width value." msgstr "Ativar o valor máximo da largura." #: ../src/richtext/richtextsizepage.cpp:411 #: ../src/richtext/richtextsizepage.cpp:413 msgid "Enable the minimum height value." msgstr "Ativar o valor mínimo da altura." #: ../src/richtext/richtextsizepage.cpp:384 #: ../src/richtext/richtextsizepage.cpp:386 msgid "Enable the minimum width value." msgstr "Ativar o valor mínimo da largura." #: ../src/richtext/richtextsizepage.cpp:319 #: ../src/richtext/richtextsizepage.cpp:321 msgid "Enable the width value." msgstr "Ativar o valor largura" #: ../src/richtext/richtextsizepage.cpp:280 #: ../src/richtext/richtextsizepage.cpp:282 msgid "Enable vertical alignment." msgstr "Ativar alinhamento vertical." #: ../src/richtext/richtextbackgroundpage.cpp:133 #: ../src/richtext/richtextbackgroundpage.cpp:135 msgid "Enables a background colour." msgstr "Ativar uma côr de fundo." #: ../src/richtext/richtextstyledlg.cpp:931 msgid "Enter a box style name" msgstr "Insira um nome do estilo da caixa" #: ../src/richtext/richtextstyledlg.cpp:603 msgid "Enter a character style name" msgstr "Insira um nome de estilo de caracteres:" #: ../src/richtext/richtextstyledlg.cpp:817 msgid "Enter a list style name" msgstr "Insira um nome de estilo de listas:" #: ../src/richtext/richtextstyledlg.cpp:890 msgid "Enter a new style name" msgstr "Insira um novo nome de estilo:" #: ../src/richtext/richtextstyledlg.cpp:651 msgid "Enter a paragraph style name" msgstr "Insira um nome de estilo do parágrafo:" #: ../src/generic/dbgrptg.cpp:174 #, c-format msgid "Enter command to open file \"%s\":" msgstr "Insira o comando para abrir o arquivo \"%s\":" #: ../src/generic/helpext.cpp:463 msgid "Entries found" msgstr "Entradas achadas" #: ../src/common/paper.cpp:143 msgid "Envelope Invite 220 x 220 mm" msgstr "Envelope de Convite 220 x 220 mm" #: ../src/common/config.cpp:473 #, c-format msgid "" "Environment variables expansion failed: missing '%c' at position %u in '%s'." msgstr "" "A expansão das variáveis do ambiente falhou: '%c' desaparecido na posição %u " "em '%s'." #: ../src/generic/dirctrlg.cpp:670 ../src/generic/dirctrlg.cpp:688 #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:791 #: ../src/generic/filectrlg.cpp:805 ../src/generic/filectrlg.cpp:821 #: ../src/generic/filectrlg.cpp:1381 ../src/generic/filectrlg.cpp:1412 #: ../src/gtk/filedlg.cpp:73 ../src/gtk1/fontdlg.cpp:74 msgid "Error" msgstr "Erro" #: ../src/unix/epolldispatcher.cpp:103 msgid "Error closing epoll descriptor" msgstr "Erro ao fechar o descritor epoll" #: ../src/unix/fswatcher_kqueue.cpp:114 msgid "Error closing kqueue instance" msgstr "Erro ao fechar a instância kqueue" #: ../src/generic/dirdlgg.cpp:251 msgid "Error creating directory" msgstr "Erro ao criar o diretório" #: ../src/common/imagbmp.cpp:1103 msgid "Error in reading image DIB." msgstr "Erro ao ler a imagem DIB." #: ../src/propgrid/propgrid.cpp:6563 #, c-format msgid "Error in resource: %s" msgstr "Erro no recurso: %s" #: ../src/common/fileconf.cpp:453 msgid "Error reading config options." msgstr "Erro ao ler as opções da config." #: ../src/common/fileconf.cpp:1064 msgid "Error saving user configuration data." msgstr "Erro ao salvar os dados de configuração do usuário." #: ../src/gtk/print.cpp:671 msgid "Error while printing: " msgstr "Erro enquanto imprimia:" #: ../src/common/log.cpp:223 msgid "Error: " msgstr "Erro: " #: ../src/common/fmapbase.cpp:150 msgid "Esperanto (ISO-8859-3)" msgstr "Esperanto (ISO-8859-3)" #: ../include/wx/generic/progdlgg.h:85 msgid "Estimated time:" msgstr "Tempo estimado:" #: ../src/unix/fswatcher_inotify.cpp:639 msgid "Event queue overflowed" msgstr "Fila do evento sobrecarregada" #: ../src/generic/dbgrptg.cpp:234 msgid "Executable files (*.exe)|*.exe|" msgstr "Arquivos executáveis (*.exe)|*.exe|" #: ../src/common/stockitem.cpp:155 msgid "Execute" msgstr "Executar" #: ../src/msw/utilsexc.cpp:888 #, c-format msgid "Execution of command '%s' failed" msgstr "A execução do comando '%s' falhou" #: ../src/os2/utilsexc.cpp:163 #, c-format msgid "Execution of command '%s' failed with error: %ul" msgstr "A execução do comando '%s' falhou com o erro: %ul" #: ../src/common/paper.cpp:106 msgid "Executive, 7 1/4 x 10 1/2 in" msgstr "Executivo, 7 1/4 x 10 1/2 em" #: ../src/msw/registry.cpp:1230 #, c-format msgid "" "Exporting registry key: file \"%s\" already exists and won't be overwritten." msgstr "" "Exportando a chave de registro: o arquivo \"%s\" já existe e não será " "sobrescrito." #: ../src/common/fmapbase.cpp:195 msgid "Extended Unix Codepage for Japanese (EUC-JP)" msgstr "Página de Código Unix Extendida para Japon�s (EUC-JP)" #: ../src/html/chm.cpp:725 #, c-format msgid "Extraction of '%s' into '%s' failed." msgstr "A extração de '%s' para '%s' falhou." #: ../src/common/accelcmn.cpp:238 ../src/common/accelcmn.cpp:333 msgid "F" msgstr "F" #: ../src/propgrid/advprops.cpp:640 msgid "Face Name" msgstr "Nome da Face" #: ../src/unix/snglinst.cpp:269 msgid "Failed to access lock file." msgstr "Falhou em acessar o arquivo da tranca." #: ../src/unix/epolldispatcher.cpp:116 #, c-format msgid "Failed to add descriptor %d to epoll descriptor %d" msgstr "Falhou em adicionar o descritor %d ao descritor epoll %d" #: ../src/msw/dib.cpp:548 #, c-format msgid "Failed to allocate %luKb of memory for bitmap data." msgstr "Falhou em distribuir %luKb de memória pros dados do bitmap." #: ../src/common/glcmn.cpp:87 msgid "Failed to allocate colour for OpenGL" msgstr "Falhou em distribuir a cor para o OpenGL" #: ../src/unix/displayx11.cpp:288 msgid "Failed to change video mode" msgstr "Falhou em mudar o modo de vídeo" #: ../src/common/image.cpp:3139 #, c-format msgid "Failed to check format of image file \"%s\"." msgstr "Falhou em verificar o formato do arquivo de imagem \"%s\"." #: ../src/common/debugrpt.cpp:244 #, c-format msgid "Failed to clean up debug report directory \"%s\"" msgstr "Falhou em limpar o diretório do relatório de debug \"%s\"." #: ../src/common/filename.cpp:211 msgid "Failed to close file handle" msgstr "Falhou em fechar o manejamento dos arquivos" #: ../src/unix/snglinst.cpp:334 #, c-format msgid "Failed to close lock file '%s'" msgstr "Falhou em fechar o arquivo da tranca '%s'" #: ../src/msw/clipbrd.cpp:115 msgid "Failed to close the clipboard." msgstr "Falhou em fechar a área de transferência." #: ../src/x11/utils.cpp:204 #, c-format msgid "Failed to close the display \"%s\"" msgstr "Falhou em fechar a exibição \"%s\"" #: ../src/msw/dialup.cpp:818 msgid "Failed to connect: missing username/password." msgstr "Falhou em conectar: faltando o nome de usuário/senha." #: ../src/msw/dialup.cpp:764 msgid "Failed to connect: no ISP to dial." msgstr "Falhou em conectar nenhum ISP para discar." #: ../src/common/textfile.cpp:200 #, c-format msgid "Failed to convert file \"%s\" to Unicode." msgstr "Falhou em converter o arquivo \"%s\" para o Unicode." #: ../src/generic/logg.cpp:976 msgid "Failed to copy dialog contents to the clipboard." msgstr "Falhou em copiar os conteúdos do diálogo pra área de transferência." #: ../src/msw/registry.cpp:691 #, c-format msgid "Failed to copy registry value '%s'" msgstr "Falhou em copiar o valor de registro '%s'" #: ../src/msw/registry.cpp:700 #, c-format msgid "Failed to copy the contents of registry key '%s' to '%s'." msgstr "Falhou em copiar os conteúdos da chave de registro '%s' para '%s'." #: ../src/common/filefn.cpp:1058 #, c-format msgid "Failed to copy the file '%s' to '%s'" msgstr "Falhou em copiar o arquivo '%s' para '%s'" #: ../src/msw/registry.cpp:678 #, c-format msgid "Failed to copy the registry subkey '%s' to '%s'." msgstr "Falhou em copiar a sub-chave do registro '%s' para '%s'" #: ../src/msw/dde.cpp:1073 msgid "Failed to create DDE string" msgstr "Falhou em criar a string DDE" #: ../src/msw/mdi.cpp:590 msgid "Failed to create MDI parent frame." msgstr "Falhou em criar o MDI parent frame." #: ../src/common/filename.cpp:1080 msgid "Failed to create a temporary file name" msgstr "Falhou em criar um nome de arquivo temporário" #: ../src/msw/utilsexc.cpp:235 msgid "Failed to create an anonymous pipe" msgstr "Falhou em criar um pipe anônimo" #: ../src/msw/ole/automtn.cpp:522 #, c-format msgid "Failed to create an instance of \"%s\"" msgstr "Falhou em criar uma instância de \"%s\"" #: ../src/msw/dde.cpp:442 #, c-format msgid "Failed to create connection to server '%s' on topic '%s'" msgstr "Falhou em criar uma conexão com o servidor '%s' no tópico '%s'" #: ../src/msw/cursor.cpp:212 msgid "Failed to create cursor." msgstr "Falhou em criar o cursor." #: ../src/common/debugrpt.cpp:209 #, c-format msgid "Failed to create directory \"%s\"" msgstr "Falhou em criar diretório \"%s\"" #: ../src/generic/dirdlgg.cpp:249 #, c-format msgid "" "Failed to create directory '%s'\n" "(Do you have the required permissions?)" msgstr "" "Falhou em criar o diretório '%s'\n" "(Você tem as permissões requeridas?)" #: ../src/unix/epolldispatcher.cpp:84 msgid "Failed to create epoll descriptor" msgstr "Falhou em criar o descritor epoll" #: ../src/msw/mimetype.cpp:198 #, c-format msgid "Failed to create registry entry for '%s' files." msgstr "Falhou em criar a entrada no registro para os arquivos '%s'." #: ../src/msw/fdrepdlg.cpp:442 #, c-format msgid "Failed to create the standard find/replace dialog (error code %d)" msgstr "Falhou em criar o diálogo achar/substituir padrão (código do erro %d)" #: ../src/unix/wakeuppipe.cpp:52 msgid "Failed to create wake up pipe used by event loop." msgstr "Falhou em criar wake up pipe usado para o loop de evento." #: ../src/html/winpars.cpp:739 #, c-format msgid "Failed to display HTML document in %s encoding" msgstr "Falhou em exibir o documento HTML na codificação %s" #: ../src/msw/clipbrd.cpp:127 msgid "Failed to empty the clipboard." msgstr "Falhou em esvaziar a área de transferência." #: ../src/unix/displayx11.cpp:265 msgid "Failed to enumerate video modes" msgstr "Falhou em enumerar os modos de vídeo" #: ../src/msw/dde.cpp:727 msgid "Failed to establish an advise loop with DDE server" msgstr "Falhou em estabelecer um loop de recomendação com o servidor DDE" #: ../src/msw/dialup.cpp:650 ../src/msw/dialup.cpp:884 #, c-format msgid "Failed to establish dialup connection: %s" msgstr "Falhou em estabelecer uma conexão dial-up: %s" #: ../src/unix/utilsunx.cpp:617 #, c-format msgid "Failed to execute '%s'\n" msgstr "Falhou em executar o '%s'\n" #: ../src/common/debugrpt.cpp:725 msgid "Failed to execute curl, please install it in PATH." msgstr "Falhou ao executar o curl, por favor instale-o no PATH." #: ../src/msw/ole/automtn.cpp:505 #, c-format msgid "Failed to find CLSID of \"%s\"" msgstr "Falhou em achar a CLSID de \"%s\"" #: ../src/common/regex.cpp:434 ../src/common/regex.cpp:482 #, c-format msgid "Failed to find match for regular expression: %s" msgstr "Falhou em achar a combinação para a expressãoo regular: %s" #: ../src/msw/dialup.cpp:716 #, c-format msgid "Failed to get ISP names: %s" msgstr "Falhou em obter os nomes dos ISPs: %s" #: ../src/msw/ole/automtn.cpp:574 #, c-format msgid "Failed to get OLE automation interface for \"%s\"" msgstr "Falhou em obter a interface de automação do OLE para \"%s\"" #: ../src/msw/clipbrd.cpp:747 msgid "Failed to get data from the clipboard" msgstr "Falhou em obter os dados da área de transferência" #: ../src/common/time.cpp:249 msgid "Failed to get the local system time" msgstr "Falhou em obter a hora local do sistema" #: ../src/common/filefn.cpp:1453 msgid "Failed to get the working directory" msgstr "Falhou em obter o diretório de trabalho" #: ../src/univ/theme.cpp:113 msgid "Failed to initialize GUI: no built-in themes found." msgstr "Falhou em inicializar a GUI: não foram achados temas embutidos." #: ../src/msw/helpchm.cpp:63 msgid "Failed to initialize MS HTML Help." msgstr "Falhou ao inicializar a Ajuda do MS HTML Help." #: ../src/msw/glcanvas.cpp:892 msgid "Failed to initialize OpenGL" msgstr "Falhou ao inicializar o OpenGL" #: ../src/msw/dialup.cpp:879 #, c-format msgid "Failed to initiate dialup connection: %s" msgstr "Falhou em iniciar a conexão dialup: %s" #: ../src/gtk/textctrl.cpp:1117 msgid "Failed to insert text in the control." msgstr "Falhou em inserir o texto no controle." #: ../src/unix/snglinst.cpp:241 #, c-format msgid "Failed to inspect the lock file '%s'" msgstr "Falhou em inspecionar o arquivo da tranca '%s'" #: ../src/unix/appunix.cpp:182 msgid "Failed to install signal handler" msgstr "Falhou em instalar o manejador do sinal" #: ../src/unix/threadpsx.cpp:1162 msgid "" "Failed to join a thread, potential memory leak detected - please restart the " "program" msgstr "" "Falhou em se juntar a um thread, vazamento potencial de memória detectado - " "por favor reinicie o programa" #: ../src/msw/utils.cpp:745 #, c-format msgid "Failed to kill process %d" msgstr "Falhou em matar o processo %d" #: ../src/common/image.cpp:2365 #, c-format msgid "Failed to load bitmap \"%s\" from resources." msgstr "Falhou em carregar o bitmap \"%s\" dos recursos." #: ../src/common/image.cpp:2374 #, c-format msgid "Failed to load icon \"%s\" from resources." msgstr "Falhou em carregar o ícone \"%s\" dos recursos." #: ../src/common/iconbndl.cpp:182 #, c-format msgid "Failed to load image %%d from file '%s'." msgstr "Falhou em carregar a imagem %%d do arquivo '%s'." #: ../src/common/iconbndl.cpp:190 #, c-format msgid "Failed to load image %d from stream." msgstr "Falhou em carregar a imagem %d da stream." #: ../src/common/image.cpp:2450 ../src/common/image.cpp:2469 #, c-format msgid "Failed to load image from file \"%s\"." msgstr "Falhou em carregar a imagem do arquivo \"%s\"." #: ../src/msw/enhmeta.cpp:97 #, c-format msgid "Failed to load metafile from file \"%s\"." msgstr "Falhou em carregar o meta-arquivo do arquivo \"%s\"." #: ../src/msw/volume.cpp:327 msgid "Failed to load mpr.dll." msgstr "Falhou em carregar o mpr.dll." #: ../src/msw/utils.cpp:1120 #, c-format msgid "Failed to load resource \"%s\"." msgstr "Falhou em carregar o recurso \"%s\"." #: ../src/common/dynlib.cpp:100 #, c-format msgid "Failed to load shared library '%s'" msgstr "Falhou em carregar a biblioteca compartilhada '%s'" #: ../src/msw/utils.cpp:1127 #, c-format msgid "Failed to lock resource \"%s\"." msgstr "Falhou em trancar o recurso \"%s\"." #: ../src/unix/snglinst.cpp:198 #, c-format msgid "Failed to lock the lock file '%s'" msgstr "Falhou em trancar o arquivo da tranca '%s'" #: ../src/unix/epolldispatcher.cpp:136 #, c-format msgid "Failed to modify descriptor %d in epoll descriptor %d" msgstr "Falhou em modificar o descritor %d no descritor epoll %d" #: ../src/common/filename.cpp:2681 #, c-format msgid "Failed to modify file times for '%s'" msgstr "Falhou em modificar as horas do arquivo para '%s'" #: ../src/common/selectdispatcher.cpp:252 msgid "Failed to monitor I/O channels" msgstr "Falhou em monitorar os canais de E/S" #: ../src/common/filename.cpp:194 #, c-format msgid "Failed to open '%s' for reading" msgstr "Falhou em abrir '%s' para leitura" #: ../src/common/filename.cpp:199 #, c-format msgid "Failed to open '%s' for writing" msgstr "Falhou em abrir '%s' para escrita" #: ../src/html/chm.cpp:141 #, c-format msgid "Failed to open CHM archive '%s'." msgstr "Falhou em abrir o arquivo CHM '%s'." #: ../src/common/utilscmn.cpp:1135 #, c-format msgid "Failed to open URL \"%s\" in default browser." msgstr "Falhou em abrir a URL '%s' no navegador padrão." #: ../include/wx/msw/private/fswatcher.h:92 #, c-format msgid "Failed to open directory \"%s\" for monitoring." msgstr "Falhou em abrir o diretório \"%s\" para o monitoramento." #: ../src/x11/utils.cpp:223 #, c-format msgid "Failed to open display \"%s\"." msgstr "Falhou em abrir a exibição \"%s\"" #: ../src/common/filename.cpp:1115 msgid "Failed to open temporary file." msgstr "Falhou em abrir o arquivo temporário." #: ../src/msw/clipbrd.cpp:94 msgid "Failed to open the clipboard." msgstr "Falhou em abrir a área de transferência." #: ../src/common/translation.cpp:1170 #, c-format msgid "Failed to parse Plural-Forms: '%s'" msgstr "Falhou em analisar as Formas-do-Plural: '%s'" #: ../src/unix/mediactrl.cpp:1268 #, c-format msgid "Failed to prepare playing \"%s\"." msgstr "Falhou em preparar a reprodução do \"%s\"." #: ../src/msw/clipbrd.cpp:647 msgid "Failed to put data on the clipboard" msgstr "Falhou em pôr os dados na área de transferência" #: ../src/unix/snglinst.cpp:278 msgid "Failed to read PID from lock file." msgstr "Falhou em ler o PID do arquivo da tranca." #: ../src/common/fileconf.cpp:464 msgid "Failed to read config options." msgstr "Falhou em ler as opções de config." #: ../src/common/docview.cpp:678 #, c-format msgid "Failed to read document from the file \"%s\"." msgstr "Falhou em ler o documento do arquivo \"%s\"." #: ../src/dfb/evtloop.cpp:98 msgid "Failed to read event from DirectFB pipe" msgstr "Falhou em ler o evento do DirectFB pipe" #: ../src/unix/wakeuppipe.cpp:120 msgid "Failed to read from wake-up pipe" msgstr "Falhou em ler do wake-up pipe" #: ../src/unix/utilsunx.cpp:685 msgid "Failed to redirect child process input/output" msgstr "Falhou em redirecionar a entrada/saída do processo filho" #: ../src/msw/utilsexc.cpp:697 msgid "Failed to redirect the child process IO" msgstr "Falhou em redirecionar a E/S do processo filho" #: ../src/msw/dde.cpp:293 #, c-format msgid "Failed to register DDE server '%s'" msgstr "Falhou em registrar o servidor DDE '%s'" #: ../src/common/fontmap.cpp:245 #, c-format msgid "Failed to remember the encoding for the charset '%s'." msgstr "Falhou em lembrar a codificação do conjunto de caracteres '%s'." #: ../src/common/debugrpt.cpp:227 #, c-format msgid "Failed to remove debug report file \"%s\"" msgstr "Falhou em remover o arquivo do relatório do debug \"%s\"" #: ../src/unix/snglinst.cpp:322 #, c-format msgid "Failed to remove lock file '%s'" msgstr "Falhou em remover o arquivo da tranca '%s'" #: ../src/unix/snglinst.cpp:288 #, c-format msgid "Failed to remove stale lock file '%s'." msgstr "Falhou em remover o arquivo do stale lock '%s'." #: ../src/msw/registry.cpp:528 #, c-format msgid "Failed to rename registry value '%s' to '%s'." msgstr "Falhou em renomear o valor do registro de '%s' para '%s'." #: ../src/common/filefn.cpp:1168 #, c-format msgid "" "Failed to rename the file '%s' to '%s' because the destination file already " "exists." msgstr "" "Falhou em renomear o arquivo '%s' para '%s' porque o arquivo destino já " "existe." #: ../src/msw/registry.cpp:633 #, c-format msgid "Failed to rename the registry key '%s' to '%s'." msgstr "Falhou em renomear a chave do registro de '%s' para '%s'." #: ../src/msw/clipbrd.cpp:497 msgid "Failed to retrieve data from the clipboard." msgstr "Falhou em recuperar os dados da área de transferência." #: ../src/common/filename.cpp:2777 #, c-format msgid "Failed to retrieve file times for '%s'" msgstr "Falhou em recuperar as horas do arquivo para '%s'" #: ../src/msw/dialup.cpp:487 msgid "Failed to retrieve text of RAS error message" msgstr "Falhou em recuperar o texto da mensagem de erro do RAS" #: ../src/msw/clipbrd.cpp:784 msgid "Failed to retrieve the supported clipboard formats" msgstr "Falhou em recuperar os formatos da área de transferência suportados" #: ../src/common/docview.cpp:649 #, c-format msgid "Failed to save document to the file \"%s\"." msgstr "Falhou em salvar o documento como o arquivo \"%s\"." #: ../src/msw/dib.cpp:326 #, c-format msgid "Failed to save the bitmap image to file \"%s\"." msgstr "Falhou em salvar a imagem bitmap como o arquivo \"%s\"." #: ../src/msw/dde.cpp:768 msgid "Failed to send DDE advise notification" msgstr "Falhou em enviar a notificação de recomendação do DDE" #: ../src/common/ftp.cpp:404 #, c-format msgid "Failed to set FTP transfer mode to %s." msgstr "Falhou em definir o modo de transferência do FTP para %s." #: ../src/msw/clipbrd.cpp:373 msgid "Failed to set clipboard data." msgstr "Falhou em definir os dados da área de transferência." #: ../src/unix/snglinst.cpp:181 #, c-format msgid "Failed to set permissions on lock file '%s'" msgstr "Falhou em definir as permissões sobre o arquivo da tranca '%s'" #: ../src/unix/utilsunx.cpp:674 msgid "Failed to set process priority" msgstr "Falhou em definir a prioridade do processo" #: ../src/common/file.cpp:576 msgid "Failed to set temporary file permissions" msgstr "Falhou em definir as permissões do arquivo temporário" #: ../src/gtk/textctrl.cpp:1058 msgid "Failed to set text in the text control." msgstr "Falhou em definir o texto no controle de texto." #: ../src/unix/threadpsx.cpp:1293 #, c-format msgid "Failed to set thread concurrency level to %lu" msgstr "Falhou em definir o nível de concordância do thread em %lu." #: ../src/unix/threadpsx.cpp:1377 ../src/unix/threadpsx.cpp:1387 #, c-format msgid "Failed to set thread priority %d." msgstr "Falhou em definir a prioridade do thread %d." #: ../src/unix/utilsunx.cpp:791 msgid "Failed to set up non-blocking pipe, the program might hang." msgstr "Falhou em configurar o pipe não-bloqueador, o programa poderia travar." #: ../src/common/fs_mem.cpp:261 #, c-format msgid "Failed to store image '%s' to memory VFS!" msgstr "Falhou em armazenar a imagem '%s' na memória VFS!" #: ../src/dfb/evtloop.cpp:170 msgid "Failed to switch DirectFB pipe to non-blocking mode" msgstr "Falhou em trocar o DirectFB pipe pro modo não bloqueador" #: ../src/unix/wakeuppipe.cpp:59 msgid "Failed to switch wake up pipe to non-blocking mode" msgstr "Falhou em trocar o wake up pipe para o modo não bloqueador" #: ../src/unix/threadpsx.cpp:1569 msgid "Failed to terminate a thread." msgstr "Falhou em concluir um thread." #: ../src/msw/dde.cpp:746 msgid "Failed to terminate the advise loop with DDE server" msgstr "Falhou em concluir o loop de recomendação com o servidor DDE" #: ../src/msw/dialup.cpp:959 #, c-format msgid "Failed to terminate the dialup connection: %s" msgstr "Falhou em finalizar a conexão dial-up: %s" #: ../src/common/filename.cpp:2696 #, c-format msgid "Failed to touch the file '%s'" msgstr "Falhou em tocar o arquivo '%s'" #: ../src/unix/snglinst.cpp:328 #, c-format msgid "Failed to unlock lock file '%s'" msgstr "Falhou em destrancar o arquivo da tranca '%s'" #: ../src/msw/dde.cpp:314 #, c-format msgid "Failed to unregister DDE server '%s'" msgstr "Falhou em des-registrar o servidor DDE '%s'" #: ../src/unix/epolldispatcher.cpp:155 #, c-format msgid "Failed to unregister descriptor %d from epoll descriptor %d" msgstr "Falhou em des-registrar o descritor %d do descritor epoll %d" #: ../src/common/fileconf.cpp:1037 msgid "Failed to update user configuration file." msgstr "Falhou em atualizar o arquivo de configuração do usuário." #: ../src/common/debugrpt.cpp:738 #, c-format msgid "Failed to upload the debug report (error code %d)." msgstr "Falhou em enviar o relatório de debug (código do erro %d)." #: ../src/unix/snglinst.cpp:168 #, c-format msgid "Failed to write to lock file '%s'" msgstr "Falhou em escrever no arquivo da tranca '%s'" #: ../src/propgrid/propgrid.cpp:172 msgid "False" msgstr "Falso" #: ../src/propgrid/advprops.cpp:658 msgid "Family" msgstr "Família" #: ../src/common/stockitem.cpp:157 ../src/msw/wince/filedlgwce.cpp:121 msgid "File" msgstr "Arquivo" #: ../src/common/docview.cpp:666 #, c-format msgid "File \"%s\" could not be opened for reading." msgstr "O arquivo \"%s\" não pôde ser aberto para leitura." #: ../src/common/docview.cpp:643 #, c-format msgid "File \"%s\" could not be opened for writing." msgstr "O arquivo \"%s\" não pôde ser aberto para gravação." #: ../src/gtk/filedlg.cpp:56 #, c-format msgid "File '%s' already exists, do you really want to overwrite it?" msgstr "O arquivo '%s' já existe; você realmente quer sobrescrevê-lo?" #: ../src/os2/filedlg.cpp:310 #, c-format msgid "" "File '%s' already exists.\n" "Do you want to replace it?" msgstr "" "O arquivo '%s' já existe.\n" "Você quer substituí-lo?" #: ../src/common/filefn.cpp:1207 #, c-format msgid "File '%s' couldn't be removed" msgstr "O arquivo '%s' não pôde ser removido" #: ../src/common/filefn.cpp:1187 #, c-format msgid "File '%s' couldn't be renamed '%s'" msgstr "O arquivo '%s' não pôde ser renomeado '%s'" #: ../src/richtext/richtextctrl.cpp:2688 ../src/common/textcmn.cpp:921 msgid "File couldn't be loaded." msgstr "O arquivo não pôde ser carregado." #: ../src/msw/filedlg.cpp:458 #, c-format msgid "File dialog failed with error code %0lx." msgstr "O diálogo do arquivo falhou com o código de erro %0lx." #: ../src/common/docview.cpp:1771 msgid "File error" msgstr "Erro do arquivo" #: ../src/generic/dirctrlg.cpp:688 ../src/generic/filectrlg.cpp:805 msgid "File name exists already." msgstr "O nome do arquivo já existe." #: ../src/motif/filedlg.cpp:220 msgid "Files" msgstr "Arquivos" #: ../src/common/filefn.cpp:1761 #, c-format msgid "Files (%s)" msgstr "Arquivos (%s)" #: ../src/motif/filedlg.cpp:218 msgid "Filter" msgstr "Filtro" #: ../src/common/stockitem.cpp:158 ../src/html/helpwnd.cpp:500 msgid "Find" msgstr "Achar" #: ../src/common/stockitem.cpp:159 msgid "First" msgstr "Primeiro" #: ../src/common/prntbase.cpp:1518 msgid "First page" msgstr "Primeira página" #: ../src/richtext/richtextsizepage.cpp:521 msgid "Fixed" msgstr "Fixo" #: ../src/html/helpwnd.cpp:1219 msgid "Fixed font:" msgstr "Fonte fixa:" #: ../src/html/helpwnd.cpp:1282 msgid "Fixed size face.
    bold italic " msgstr "Face do tamanho fixo.
    negrito itálico " #: ../src/richtext/richtextsizepage.cpp:229 msgid "Floating" msgstr "Flutuante" #: ../src/common/stockitem.cpp:160 msgid "Floppy" msgstr "Disquete" #: ../src/common/paper.cpp:112 msgid "Folio, 8 1/2 x 13 in" msgstr "Folio, 8 1/2 x 13 em" #: ../src/richtext/richtextformatdlg.cpp:324 ../src/osx/carbon/fontdlg.cpp:473 #: ../src/common/stockitem.cpp:194 msgid "Font" msgstr "Fonte" #: ../src/richtext/richtextfontpage.cpp:230 msgid "Font &weight:" msgstr "Peso da &fonte:" #: ../src/html/helpwnd.cpp:1220 msgid "Font size:" msgstr "Tamanho da fonte:" #: ../src/richtext/richtextfontpage.cpp:217 msgid "Font st&yle:" msgstr "Estilo da f&onte:" #: ../src/osx/carbon/fontdlg.cpp:515 msgid "Font:" msgstr "Fonte:" #: ../src/dfb/fontmgr.cpp:198 #, c-format msgid "Fonts index file %s disappeared while loading fonts." msgstr "" "O arquivo do índice das fontes %s desapareceu enquanto carregava as fontes." #: ../src/unix/utilsunx.cpp:651 msgid "Fork failed" msgstr "O fork falhou" #: ../src/common/stockitem.cpp:161 msgid "Forward" msgstr "Pra frente" #: ../src/common/xtixml.cpp:235 msgid "Forward hrefs are not supported" msgstr "hrefs adiantadas não são suportadas" #: ../src/html/helpwnd.cpp:888 #, c-format msgid "Found %i matches" msgstr "Achou %i combinações" #: ../src/generic/prntdlgg.cpp:238 msgid "From:" msgstr "De:" #: ../src/common/imaggif.cpp:160 msgid "GIF: Invalid gif index." msgstr "GIF: Índice gif inválido." #: ../src/common/imaggif.cpp:150 msgid "GIF: data stream seems to be truncated." msgstr "GIF: fluxo de dados parece estar truncado." #: ../src/common/imaggif.cpp:134 msgid "GIF: error in GIF image format." msgstr "GIF: erro no formato da imagem GIF." #: ../src/common/imaggif.cpp:137 msgid "GIF: not enough memory." msgstr "GIF: memória insuficiente." #: ../src/common/imaggif.cpp:140 msgid "GIF: unknown error!!!" msgstr "GIF: erro desconhecido!!!" #: ../src/gtk/window.cpp:4288 msgid "" "GTK+ installed on this machine is too old to support screen compositing, " "please install GTK+ 2.12 or later." msgstr "" "O GTK+ instalado nesta máquina é muito antigo pra suportar a composição de " "tela, por favor instale GTK+ 2.12 ou superior." #: ../src/univ/themes/gtk.cpp:525 msgid "GTK+ theme" msgstr "Tema GTK+" #: ../src/common/preferencescmn.cpp:39 msgid "General" msgstr "Geral" #: ../src/common/prntbase.cpp:243 msgid "Generic PostScript" msgstr "PostScript Genérico" #: ../src/common/paper.cpp:136 msgid "German Legal Fanfold, 8 1/2 x 13 in" msgstr "Fanfold Legal Alemão, 8 1/2 x 13 em" #: ../src/common/paper.cpp:135 msgid "German Std Fanfold, 8 1/2 x 12 in" msgstr "Fanfold Std Alemão, 8 1/2 x 12 em" #: ../include/wx/xtiprop.h:188 msgid "GetProperty called w/o valid getter" msgstr "GetProperty chamada sem um \"getter\" v�lido" #: ../include/wx/xtiprop.h:266 msgid "GetPropertyCollection called on a generic accessor" msgstr "GetPropertyCollection chamada num acessor gen�rico" #: ../include/wx/xtiprop.h:206 msgid "GetPropertyCollection called w/o valid collection getter" msgstr "GetPropertyCollection chamada sem um \"collection getter\" v�lido" #: ../src/html/helpwnd.cpp:673 msgid "Go back" msgstr "Voltar" #: ../src/html/helpwnd.cpp:674 msgid "Go forward" msgstr "Avançar" #: ../src/html/helpwnd.cpp:676 msgid "Go one level up in document hierarchy" msgstr "Ir um nível aciima na hierarquia do documento" #: ../src/generic/filedlgg.cpp:223 ../src/generic/dirdlgg.cpp:136 msgid "Go to home directory" msgstr "Ir para o diretório home" #: ../src/generic/filedlgg.cpp:219 msgid "Go to parent directory" msgstr "Ir para o diretório pai" #: ../src/generic/aboutdlgg.cpp:76 msgid "Graphics art by " msgstr "Arte gráfica de" #: ../src/common/fmapbase.cpp:154 msgid "Greek (ISO-8859-7)" msgstr "Grego (ISO-8859-7)" #: ../src/richtext/richtextborderspage.cpp:547 msgid "Groove" msgstr "Ranhura" #: ../src/common/zstream.cpp:158 ../src/common/zstream.cpp:318 msgid "Gzip not supported by this version of zlib" msgstr "Gzip não suportado por esta versão do zlib" #: ../src/common/accelcmn.cpp:75 msgid "HELP" msgstr "AJUDA" #: ../src/common/accelcmn.cpp:60 msgid "HOME" msgstr "HOME" #: ../src/html/helpwnd.cpp:1552 msgid "HTML Help Project (*.hhp)|*.hhp|" msgstr "Projeto de Ajuda HTML (*.hhp)|*.hhp|" #: ../src/html/htmlwin.cpp:659 #, c-format msgid "HTML anchor %s does not exist." msgstr "Âncora HTML %s não existe." #: ../src/html/helpwnd.cpp:1550 msgid "HTML files (*.html;*.htm)|*.html;*.htm|" msgstr "Arquivos HTML (*.html;*.htm)|*.html;*.htm|" #: ../src/common/stockitem.cpp:162 msgid "Harddisk" msgstr "Disco rígido" #: ../src/common/fmapbase.cpp:155 msgid "Hebrew (ISO-8859-8)" msgstr "Hebraico (ISO-8859-8)" #: ../include/wx/msgdlg.h:275 ../src/osx/button_osx.cpp:39 #: ../src/common/stockitem.cpp:163 ../src/html/helpdlg.cpp:66 #: ../src/html/helpfrm.cpp:116 msgid "Help" msgstr "Ajuda" #: ../src/html/helpwnd.cpp:1213 msgid "Help Browser Options" msgstr "Opções do Navegador da Ajuda" #: ../src/generic/helpext.cpp:458 ../src/generic/helpext.cpp:459 msgid "Help Index" msgstr "Índice da Ajuda" #: ../src/html/helpwnd.cpp:1534 msgid "Help Printing" msgstr "Ajuda com a Impressão" #: ../src/html/helpwnd.cpp:814 msgid "Help Topics" msgstr "Tópicos da Ajuda" #: ../src/html/helpwnd.cpp:1551 msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|" msgstr "Livros de ajuda (*.htb)|*.htb|Livros de ajuda (*.zip)|*.zip|" #: ../src/generic/helpext.cpp:271 #, c-format msgid "Help directory \"%s\" not found." msgstr "Diretório de ajuda \"%s\" não achado." #: ../src/generic/helpext.cpp:279 #, c-format msgid "Help file \"%s\" not found." msgstr "O arquivo de ajuda \"%s\" não foi achado." #: ../src/html/helpctrl.cpp:63 #, c-format msgid "Help: %s" msgstr "Ajuda: %s" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:649 #, c-format msgid "Hide %s" msgstr "Esconder %s" #: ../src/osx/menu_osx.cpp:604 ../src/osx/menu_osx.cpp:651 msgid "Hide Others" msgstr "Esconder Outros" #: ../src/generic/infobar.cpp:85 msgid "Hide this notification message." msgstr "Esconder esta mensagem de notificação." #: ../src/generic/dirdlgg.cpp:98 ../src/common/stockitem.cpp:164 msgid "Home" msgstr "Home" #: ../src/generic/dirctrlg.cpp:624 msgid "Home directory" msgstr "Diretório home" #: ../src/richtext/richtextsizepage.cpp:253 #: ../src/richtext/richtextsizepage.cpp:255 msgid "How the object will float relative to the text." msgstr "Como o objeto flutuará relativo ao texto." #: ../src/common/imagbmp.cpp:1118 msgid "ICO: Error in reading mask DIB." msgstr "ICO: Erro ao ler a máscara DIB." #: ../src/common/imagbmp.cpp:1233 ../src/common/imagbmp.cpp:1294 #: ../src/common/imagbmp.cpp:1305 ../src/common/imagbmp.cpp:1318 #: ../src/common/imagbmp.cpp:1363 ../src/common/imagbmp.cpp:1375 #: ../src/common/imagbmp.cpp:1386 msgid "ICO: Error writing the image file!" msgstr "ICO: Erro ao escrever o arquivo de imagem!" #: ../src/common/imagbmp.cpp:1198 msgid "ICO: Image too tall for an icon." msgstr "ICO: Imagem muito alta para um ícone." #: ../src/common/imagbmp.cpp:1206 msgid "ICO: Image too wide for an icon." msgstr "ICO: Imagem muito larga para um ícone." #: ../src/common/imagbmp.cpp:1466 msgid "ICO: Invalid icon index." msgstr "ICO: Índice do ícone inválido ." #: ../src/common/imagiff.cpp:759 msgid "IFF: data stream seems to be truncated." msgstr "IFF: fluxo de dados parece estar truncado." #: ../src/common/imagiff.cpp:743 msgid "IFF: error in IFF image format." msgstr "IFF: erro no formato da imagem IFF." #: ../src/common/imagiff.cpp:746 msgid "IFF: not enough memory." msgstr "IFF: memória insuficiente." #: ../src/common/imagiff.cpp:749 msgid "IFF: unknown error!!!" msgstr "IFF: erro desconhecido!!!" #: ../src/common/accelcmn.cpp:50 msgid "INS" msgstr "INS" #: ../src/common/accelcmn.cpp:51 msgid "INSERT" msgstr "INSERT" #: ../src/common/fmapbase.cpp:197 msgid "ISO-2022-JP" msgstr "ISO-2022-JP" #: ../src/osx/carbon/dataview.cpp:2420 msgid "Icon & text renderer cannot render value; value type: " msgstr "" "Renderizador de ícone & texto não pode renderizar o valor; tipo de valor:" #: ../src/html/htmprint.cpp:282 msgid "" "If possible, try changing the layout parameters to make the printout more " "narrow." msgstr "" "Se possível, tente mudar os parâmetros do layout pra tornar a impressão mais " "restrita." #: ../src/generic/dbgrptg.cpp:358 msgid "" "If you have any additional information pertaining to this bug\n" "report, please enter it here and it will be joined to it:" msgstr "" "Se você tem qualquer informação adicional pertinente a este relatório\n" "de erro, por favor insira-a aqui e ela será adicionada a ele:" #: ../src/generic/dbgrptg.cpp:324 msgid "" "If you wish to suppress this debug report completely, please choose the " "\"Cancel\" button,\n" "but be warned that it may hinder improving the program, so if\n" "at all possible please do continue with the report generation.\n" msgstr "" "Se você deseja suprimir este relatório de debug completamente, por favor " "escolha o botão \"Cancelar\",\n" "mas esteja avisado que pode impedir de melhorar o programa, então se\n" "possível de algum modo por favor continue com a geraçãoo do relatório.\n" #: ../src/msw/registry.cpp:1395 #, c-format msgid "Ignoring value \"%s\" of the key \"%s\"." msgstr "Ignorando o valor \"%s\" da chave \"%s\"." #: ../src/common/xtistrm.cpp:299 msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source" msgstr "Classe de Objeto Ilegal (Não-wxEvtHandler) como Fonte do Evento" #: ../src/common/xti.cpp:513 msgid "Illegal Parameter Count for ConstructObject Method" msgstr "N�mero ilegal de par�metros para m�todo ConstructObject" #: ../src/common/xti.cpp:501 msgid "Illegal Parameter Count for Create Method" msgstr "N�mero ilegal de par�metros para o m�todo Create" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/filectrlg.cpp:791 msgid "Illegal directory name." msgstr "Nome ilegal de diretório." #: ../src/generic/filectrlg.cpp:1380 msgid "Illegal file specification." msgstr "Especificação ilegal do arquivo." #: ../src/common/image.cpp:2158 msgid "Image and mask have different sizes." msgstr "Imagem e máscara tem tamanhos diferentes." #: ../src/common/image.cpp:2609 #, c-format msgid "Image file is not of type %d." msgstr "O arquivo de imagem não é do tipo %d." #: ../src/common/image.cpp:2739 #, c-format msgid "Image is not of type %s." msgstr "A imagem não é do tipo %s." #: ../src/msw/textctrl.cpp:399 msgid "" "Impossible to create a rich edit control, using simple text control instead. " "Please reinstall riched32.dll" msgstr "" "Impossível criar um controle de edição rica, usando o controle de texto " "simples em vez disso. Por favor reinstale o riched32.dll" #: ../src/unix/utilsunx.cpp:307 msgid "Impossible to get child process input" msgstr "Impossível obter a entrada do processo filho" #: ../src/common/filefn.cpp:1074 #, c-format msgid "Impossible to get permissions for file '%s'" msgstr "Impossível obter as permissões para o arquivo '%s'" #: ../src/common/filefn.cpp:1088 #, c-format msgid "Impossible to overwrite the file '%s'" msgstr "Impossível sobrescrever o arquivo '%s'" #: ../src/common/filefn.cpp:1142 #, c-format msgid "Impossible to set permissions for the file '%s'" msgstr "Impossível definir as permissões para o arquivo '%s'" #: ../src/common/gifdecod.cpp:818 #, c-format msgid "Incorrect GIF frame size (%u, %d) for the frame #%u" msgstr "Tamanho do frame do GIF incorreto (%u, %d) para o frame #%u" #: ../src/msw/ole/automtn.cpp:624 msgid "Incorrect number of arguments." msgstr "Número incorreto de argumentos." #: ../src/common/stockitem.cpp:165 msgid "Indent" msgstr "Recuo" #: ../src/richtext/richtextformatdlg.cpp:330 msgid "Indents && Spacing" msgstr "Recuos && Espaçamento" #: ../src/common/stockitem.cpp:166 ../src/html/helpwnd.cpp:525 msgid "Index" msgstr "Índice" #: ../src/common/fmapbase.cpp:159 msgid "Indian (ISO-8859-12)" msgstr "Indiano (ISO-8859-12)" #: ../src/common/stockitem.cpp:167 msgid "Info" msgstr "Info" #: ../src/common/init.cpp:276 msgid "Initialization failed in post init, aborting." msgstr "A inicialização falhou no post init, abortando." #: ../src/richtext/richtextsymboldlg.cpp:472 msgid "Insert" msgstr "Inserir" #: ../src/richtext/richtextbuffer.cpp:7687 msgid "Insert Field" msgstr "Inserir Campo" #: ../src/richtext/richtextbuffer.cpp:7598 #: ../src/richtext/richtextbuffer.cpp:8551 msgid "Insert Image" msgstr "Inserir Imagem" #: ../src/richtext/richtextbuffer.cpp:7645 msgid "Insert Object" msgstr "Inserir Objeto" #: ../src/richtext/richtextctrl.cpp:1172 ../src/richtext/richtextctrl.cpp:1362 #: ../src/richtext/richtextbuffer.cpp:7440 #: ../src/richtext/richtextbuffer.cpp:7470 #: ../src/richtext/richtextbuffer.cpp:7514 msgid "Insert Text" msgstr "Inserir Texto" #: ../src/richtext/richtextindentspage.cpp:295 #: ../src/richtext/richtextindentspage.cpp:297 msgid "Inserts a page break before the paragraph." msgstr "Insere uma quebra de página antes do parágrafo." #: ../src/richtext/richtextborderspage.cpp:549 msgid "Inset" msgstr "Inserir" #: ../src/gtk/app.cpp:429 #, c-format msgid "Invalid GTK+ command line option, use \"%s --help\"" msgstr "Opção da linha de comando GTK+ inválida, use \"%s --help\"" #: ../src/common/imagtiff.cpp:314 msgid "Invalid TIFF image index." msgstr "Índice da imagem TIFF inválido." #: ../src/osx/carbon/dataview.cpp:1782 ../src/osx/carbon/dataview.cpp:1877 msgid "Invalid data view item" msgstr "Item de visualização dos dados inválido" #: ../src/common/appcmn.cpp:266 #, c-format msgid "Invalid display mode specification '%s'." msgstr "Especificação do modo de exibição '%s' inválida." #: ../src/x11/app.cpp:121 #, c-format msgid "Invalid geometry specification '%s'" msgstr "Especificação da geometria '%s' inválida " #: ../src/unix/fswatcher_inotify.cpp:298 #, c-format msgid "Invalid inotify event for \"%s\"" msgstr "Evento inotify inválido para \"%s\"" #: ../src/unix/snglinst.cpp:306 #, c-format msgid "Invalid lock file '%s'." msgstr "Arquivo da tranca '%s' inválido." #: ../src/common/translation.cpp:1111 msgid "Invalid message catalog." msgstr "Catálogo de mensagens inválido." #: ../src/common/xtistrm.cpp:409 ../src/common/xtistrm.cpp:424 msgid "Invalid or Null Object ID passed to GetObjectClassInfo" msgstr "ID do Objeto passada para o GetObjectClassInfo Inválida ou Nula" #: ../src/common/xtistrm.cpp:439 msgid "Invalid or Null Object ID passed to HasObjectClassInfo" msgstr "ID do Objeto passada para o HasObjectClassInfo Inválida ou Nula" #: ../src/common/regex.cpp:313 #, c-format msgid "Invalid regular expression '%s': %s" msgstr "Expressão regular '%s' inválida: %s" #: ../src/common/config.cpp:226 #, c-format msgid "Invalid value %ld for a boolean key \"%s\" in config file." msgstr "Valor inválido %ld para uma chave boolean \"%s\" no arquivo config." #: ../src/generic/fontdlgg.cpp:329 ../src/richtext/richtextfontpage.cpp:333 #: ../src/osx/carbon/fontdlg.cpp:547 ../src/common/stockitem.cpp:168 msgid "Italic" msgstr "Itálico" #: ../src/common/paper.cpp:131 msgid "Italy Envelope, 110 x 230 mm" msgstr "Envelope da Itália, 110 x 230 mm" #: ../src/common/imagjpeg.cpp:255 msgid "JPEG: Couldn't load - file is probably corrupted." msgstr "JPEG: Não pôde carregar - o arquivo está provavelmente corrompido." #: ../src/common/imagjpeg.cpp:434 msgid "JPEG: Couldn't save image." msgstr "JPEG: Não pôde salvar a imagem." #: ../src/common/paper.cpp:164 msgid "Japanese Double Postcard 200 x 148 mm" msgstr "Cartão Postal Japonês Duplo 200 x 148 mm" #: ../src/common/paper.cpp:168 msgid "Japanese Envelope Chou #3" msgstr "Envelope Japonês Chou #3" #: ../src/common/paper.cpp:181 msgid "Japanese Envelope Chou #3 Rotated" msgstr "Envelope Japonês Chou #3 Rotacionado" #: ../src/common/paper.cpp:169 msgid "Japanese Envelope Chou #4" msgstr "Envelope Japonês Chou #4" #: ../src/common/paper.cpp:182 msgid "Japanese Envelope Chou #4 Rotated" msgstr "Envelope Japonês Chou #4 Rotacionado" #: ../src/common/paper.cpp:166 msgid "Japanese Envelope Kaku #2" msgstr "Envelope Japonês Kaku #2" #: ../src/common/paper.cpp:179 msgid "Japanese Envelope Kaku #2 Rotated" msgstr "Envelope Japonês Kaku #2 Rotacionado" #: ../src/common/paper.cpp:167 msgid "Japanese Envelope Kaku #3" msgstr "Envelope Japonês Kaku #3" #: ../src/common/paper.cpp:180 msgid "Japanese Envelope Kaku #3 Rotated" msgstr "Envelope Japonês Kaku #3 Rotacionado" #: ../src/common/paper.cpp:186 msgid "Japanese Envelope You #4" msgstr "Envelope Japonês You #4" #: ../src/common/paper.cpp:187 msgid "Japanese Envelope You #4 Rotated" msgstr "Envelope Japonês You #4 Rotacionado" #: ../src/common/paper.cpp:139 msgid "Japanese Postcard 100 x 148 mm" msgstr "Cartão Postal Japonês 100 x 148 mm" #: ../src/common/paper.cpp:176 msgid "Japanese Postcard Rotated 148 x 100 mm" msgstr "Cartão Postal Japonês Rotacionado 148 x 100 mm" #: ../src/common/stockitem.cpp:169 msgid "Jump to" msgstr "Pular para" #: ../src/common/stockitem.cpp:171 msgid "Justified" msgstr "Justificado" #: ../src/richtext/richtextindentspage.cpp:155 #: ../src/richtext/richtextindentspage.cpp:157 #: ../src/richtext/richtextliststylepage.cpp:344 #: ../src/richtext/richtextliststylepage.cpp:346 msgid "Justify text left and right." msgstr "Justificar o texto a esquerda e a direita." #: ../src/common/fmapbase.cpp:163 msgid "KOI8-R" msgstr "KOI8-R" #: ../src/common/fmapbase.cpp:164 msgid "KOI8-U" msgstr "KOI8-U" #: ../src/common/accelcmn.cpp:254 ../src/common/accelcmn.cpp:336 msgid "KP_" msgstr "KP_" #: ../src/common/accelcmn.cpp:103 msgid "KP_ADD" msgstr "KP_ADD" #: ../src/common/accelcmn.cpp:98 msgid "KP_BEGIN" msgstr "KP_BEGIN" #: ../src/common/accelcmn.cpp:106 msgid "KP_DECIMAL" msgstr "KP_DECIMAL" #: ../src/common/accelcmn.cpp:100 msgid "KP_DELETE" msgstr "KP_DELETE" #: ../src/common/accelcmn.cpp:107 msgid "KP_DIVIDE" msgstr "KP_DIVIDE" #: ../src/common/accelcmn.cpp:92 msgid "KP_DOWN" msgstr "KP_DOWN" #: ../src/common/accelcmn.cpp:97 msgid "KP_END" msgstr "KP_END" #: ../src/common/accelcmn.cpp:87 msgid "KP_ENTER" msgstr "KP_ENTER" #: ../src/common/accelcmn.cpp:101 msgid "KP_EQUAL" msgstr "KP_EQUAL" #: ../src/common/accelcmn.cpp:88 msgid "KP_HOME" msgstr "KP_HOME" #: ../src/common/accelcmn.cpp:99 msgid "KP_INSERT" msgstr "KP_INSERT" #: ../src/common/accelcmn.cpp:89 msgid "KP_LEFT" msgstr "KP_LEFT" #: ../src/common/accelcmn.cpp:102 msgid "KP_MULTIPLY" msgstr "KP_MULTIPLY" #: ../src/common/accelcmn.cpp:95 msgid "KP_NEXT" msgstr "KP_NEXT" #: ../src/common/accelcmn.cpp:96 msgid "KP_PAGEDOWN" msgstr "KP_PAGEDOWN" #: ../src/common/accelcmn.cpp:94 msgid "KP_PAGEUP" msgstr "KP_PAGEUP" #: ../src/common/accelcmn.cpp:93 msgid "KP_PRIOR" msgstr "KP_PRIOR" #: ../src/common/accelcmn.cpp:91 msgid "KP_RIGHT" msgstr "KP_RIGHT" #: ../src/common/accelcmn.cpp:104 msgid "KP_SEPARATOR" msgstr "KP_SEPARATOR" #: ../src/common/accelcmn.cpp:85 msgid "KP_SPACE" msgstr "KP_SPACE" #: ../src/common/accelcmn.cpp:105 msgid "KP_SUBTRACT" msgstr "KP_SUBTRACT" #: ../src/common/accelcmn.cpp:86 msgid "KP_TAB" msgstr "KP_TAB" #: ../src/common/accelcmn.cpp:90 msgid "KP_UP" msgstr "KP_UP" #: ../src/richtext/richtextindentspage.cpp:270 msgid "L&ine spacing:" msgstr "E&spaçamento entre as linhas:" #: ../src/common/accelcmn.cpp:56 msgid "LEFT" msgstr "ESQUERDA" #: ../src/generic/prntdlgg.cpp:613 ../src/generic/prntdlgg.cpp:868 msgid "Landscape" msgstr "Paisagem" #: ../src/common/stockitem.cpp:174 msgid "Last" msgstr "Último" #: ../src/common/prntbase.cpp:1542 msgid "Last page" msgstr "Última página" #: ../src/common/log.cpp:309 #, c-format msgid "Last repeated message (\"%s\", %lu time) wasn't output" msgid_plural "Last repeated message (\"%s\", %lu times) wasn't output" msgstr[0] "" "A última mensagens repetida (tempo \"%s\", %lu) não era da saída de dados" msgstr[1] "" "As últimas mensagens repetidas (tempo \"%s\", %lu) não eram da saída de dados" #: ../src/common/paper.cpp:104 msgid "Ledger, 17 x 11 in" msgstr "Ledger, 17 x 11 em" #: ../src/richtext/richtextliststylepage.cpp:249 #: ../src/richtext/richtextliststylepage.cpp:252 #: ../src/richtext/richtextliststylepage.cpp:253 #: ../src/richtext/richtextbulletspage.cpp:199 #: ../src/richtext/richtextbulletspage.cpp:202 #: ../src/richtext/richtextbulletspage.cpp:203 #: ../src/richtext/richtextsizepage.cpp:249 msgid "Left" msgstr "Esquerda" #: ../src/richtext/richtextindentspage.cpp:204 #: ../src/richtext/richtextliststylepage.cpp:390 msgid "Left (&first line):" msgstr "Esquerda (&primeira linha):" #: ../src/generic/prntdlgg.cpp:880 msgid "Left margin (mm):" msgstr "Margem esquerda (mm):" #: ../src/richtext/richtextindentspage.cpp:141 #: ../src/richtext/richtextindentspage.cpp:143 #: ../src/richtext/richtextliststylepage.cpp:330 #: ../src/richtext/richtextliststylepage.cpp:332 msgid "Left-align text." msgstr "Alinhar o texto a esquerda." #: ../src/common/paper.cpp:145 msgid "Legal Extra 9 1/2 x 15 in" msgstr "Extra Legal, 9 1/2 x 15 em" #: ../src/common/paper.cpp:97 msgid "Legal, 8 1/2 x 14 in" msgstr "Legal, 8 1/2 x 14 em" #: ../src/common/paper.cpp:144 msgid "Letter Extra 9 1/2 x 12 in" msgstr "Carta Extra 9 1/2 x 12 em" #: ../src/common/paper.cpp:150 msgid "Letter Extra Transverse 9.275 x 12 in" msgstr "Carta Extra Transversal 9.275 x 12 em" #: ../src/common/paper.cpp:153 msgid "Letter Plus 8 1/2 x 12.69 in" msgstr "Carta Plus, 8 1/2 x 12.69 em" #: ../src/common/paper.cpp:170 msgid "Letter Rotated 11 x 8 1/2 in" msgstr "Carta Rotacionada 11 x 8 1/2 em" #: ../src/common/paper.cpp:102 msgid "Letter Small, 8 1/2 x 11 in" msgstr "Carta Pequena, 8 1/2 x 11 em" #: ../src/common/paper.cpp:148 msgid "Letter Transverse 8 1/2 x 11 in" msgstr "Carta Transversal 8 1/2 x 11 em" #: ../src/common/paper.cpp:96 msgid "Letter, 8 1/2 x 11 in" msgstr "Carta, 8 1/2 x 11 em" #: ../src/generic/aboutdlgg.cpp:173 msgid "License" msgstr "Licença" #: ../src/generic/fontdlgg.cpp:332 msgid "Light" msgstr "Leve" #: ../src/generic/helpext.cpp:298 #, c-format msgid "Line %lu of map file \"%s\" has invalid syntax, skipped." msgstr "A linha %lu do arquivo de mapa \"%s\" tem sintaxe inválida, pulada." #: ../src/richtext/richtextliststylepage.cpp:444 msgid "Line spacing:" msgstr "Espaçamento entre as linhas:" #: ../src/html/chm.cpp:838 msgid "Link contained '//', converted to absolute link." msgstr "O link continha '//'; convertido para link absoluto." #: ../src/richtext/richtextformatdlg.cpp:349 msgid "List Style" msgstr "Estilo das Listas" #: ../src/richtext/richtextstyles.cpp:1060 msgid "List styles" msgstr "Estilos das listas" #: ../src/richtext/richtextfontpage.cpp:206 #: ../src/richtext/richtextfontpage.cpp:208 msgid "Lists font sizes in points." msgstr "Lista os tamanhos das fontes em pontos." #: ../src/richtext/richtextfontpage.cpp:199 #: ../src/richtext/richtextfontpage.cpp:201 msgid "Lists the available fonts." msgstr "Lista as fontes disponíveis." #: ../src/common/fldlgcmn.cpp:325 #, c-format msgid "Load %s file" msgstr "Carregar o arquivo %s" #: ../src/html/htmlwin.cpp:575 msgid "Loading : " msgstr "Carregando : " #: ../src/unix/snglinst.cpp:246 #, c-format msgid "Lock file '%s' has incorrect owner." msgstr "O arquivo da tranca '%s' tem dono incorreto." #: ../src/unix/snglinst.cpp:251 #, c-format msgid "Lock file '%s' has incorrect permissions." msgstr "O arquivo da tranca '%s' tem permissões incorretas." #: ../src/generic/logg.cpp:582 #, c-format msgid "Log saved to the file '%s'." msgstr "Log salvo no arquivo '%s'." #: ../src/richtext/richtextliststylepage.cpp:484 #: ../src/richtext/richtextbulletspage.cpp:289 msgid "Lower case letters" msgstr "Letras minúsculas" #: ../src/richtext/richtextliststylepage.cpp:486 #: ../src/richtext/richtextbulletspage.cpp:291 msgid "Lower case roman numerals" msgstr "Numerais romanos minúsculos" #: ../src/gtk/mdi.cpp:422 ../src/gtk1/mdi.cpp:431 msgid "MDI child" msgstr "Filha MDI" #: ../src/common/accelcmn.cpp:68 msgid "MENU" msgstr "MENU" #: ../src/msw/helpchm.cpp:56 msgid "" "MS HTML Help functions are unavailable because the MS HTML Help library is " "not installed on this machine. Please install it." msgstr "" "As funções da Ajuda do MS HTML não estão disponíveis porque a biblioteca de " "Ajuda do MS HTML não está instalada nesta máquina. Por favor instale-a." #: ../src/univ/themes/win32.cpp:3754 msgid "Ma&ximize" msgstr "Ma&ximizar" #: ../src/common/fmapbase.cpp:203 msgid "MacArabic" msgstr "Árabe" #: ../src/common/fmapbase.cpp:222 msgid "MacArmenian" msgstr "Armênio" #: ../src/common/fmapbase.cpp:211 msgid "MacBengali" msgstr "Bengalês" #: ../src/common/fmapbase.cpp:217 msgid "MacBurmese" msgstr "Birmanês" #: ../src/common/fmapbase.cpp:236 msgid "MacCeltic" msgstr "Celta" #: ../src/common/fmapbase.cpp:227 msgid "MacCentralEurRoman" msgstr "CentralEurRoman" #: ../src/common/fmapbase.cpp:223 msgid "MacChineseSimp" msgstr "Chinês Simplificado" #: ../src/common/fmapbase.cpp:201 msgid "MacChineseTrad" msgstr "Chinês Tradicional" #: ../src/common/fmapbase.cpp:233 msgid "MacCroatian" msgstr "Croata" #: ../src/common/fmapbase.cpp:206 msgid "MacCyrillic" msgstr "Cirílico" #: ../src/common/fmapbase.cpp:207 msgid "MacDevanagari" msgstr "Devanagari" #: ../src/common/fmapbase.cpp:231 msgid "MacDingbats" msgstr "Dingbats" #: ../src/common/fmapbase.cpp:226 msgid "MacEthiopic" msgstr "Etíope" #: ../src/common/fmapbase.cpp:229 msgid "MacExtArabic" msgstr "Árabe" #: ../src/common/fmapbase.cpp:237 msgid "MacGaelic" msgstr "Galês" #: ../src/common/fmapbase.cpp:221 msgid "MacGeorgian" msgstr "Georgiano" #: ../src/common/fmapbase.cpp:205 msgid "MacGreek" msgstr "Grego" #: ../src/common/fmapbase.cpp:209 msgid "MacGujarati" msgstr "Guzerate" #: ../src/common/fmapbase.cpp:208 msgid "MacGurmukhi" msgstr "Gurmukhi" #: ../src/common/fmapbase.cpp:204 msgid "MacHebrew" msgstr "Hebreu" #: ../src/common/fmapbase.cpp:234 msgid "MacIcelandic" msgstr "Islandês" #: ../src/common/fmapbase.cpp:200 msgid "MacJapanese" msgstr "Japonês" #: ../src/common/fmapbase.cpp:214 msgid "MacKannada" msgstr "Kannada" #: ../src/common/fmapbase.cpp:238 msgid "MacKeyboardGlyphs" msgstr "Glifos do Teclado" #: ../src/common/fmapbase.cpp:218 msgid "MacKhmer" msgstr "Khmer" #: ../src/common/fmapbase.cpp:202 msgid "MacKorean" msgstr "Coreano" #: ../src/common/fmapbase.cpp:220 msgid "MacLaotian" msgstr "Lao" #: ../src/common/fmapbase.cpp:215 msgid "MacMalayalam" msgstr "Malaio" #: ../src/common/fmapbase.cpp:225 msgid "MacMongolian" msgstr "Mongol" #: ../src/common/fmapbase.cpp:210 msgid "MacOriya" msgstr "Oriá" #: ../src/common/fmapbase.cpp:199 msgid "MacRoman" msgstr "Romano" #: ../src/common/fmapbase.cpp:235 msgid "MacRomanian" msgstr "Romeno" #: ../src/common/fmapbase.cpp:216 msgid "MacSinhalese" msgstr "Cingalês" #: ../src/common/fmapbase.cpp:230 msgid "MacSymbol" msgstr "Símbolo" #: ../src/common/fmapbase.cpp:212 msgid "MacTamil" msgstr "Tâmil" #: ../src/common/fmapbase.cpp:213 msgid "MacTelugu" msgstr "Telugu" #: ../src/common/fmapbase.cpp:219 msgid "MacThai" msgstr "Tailandês" #: ../src/common/fmapbase.cpp:224 msgid "MacTibetan" msgstr "Tibetano" #: ../src/common/fmapbase.cpp:232 msgid "MacTurkish" msgstr "Turco" #: ../src/common/fmapbase.cpp:228 msgid "MacVietnamese" msgstr "Vietnamita" #: ../src/propgrid/advprops.cpp:2031 msgid "Make a selection:" msgstr "Fazer uma seleção:" #: ../src/richtext/richtextformatdlg.cpp:362 #: ../src/richtext/richtextmarginspage.cpp:172 msgid "Margins" msgstr "Margens" #: ../src/generic/fdrepdlg.cpp:147 msgid "Match case" msgstr "Combinar com maiúsculas ou minúsculas" #: ../src/richtext/richtextsizepage.cpp:463 msgid "Max height:" msgstr "Altura máx:" #: ../src/richtext/richtextsizepage.cpp:436 msgid "Max width:" msgstr "Largura máx:" #: ../src/unix/mediactrl.cpp:1006 #, c-format msgid "Media playback error: %s" msgstr "Erro do playback da mídia: %s" #: ../src/common/fs_mem.cpp:175 #, c-format msgid "Memory VFS already contains file '%s'!" msgstr "A memória VFS já contém o arquivo '%s'!" #: ../src/msw/frame.cpp:347 msgid "Menu" msgstr "Menu" #: ../src/common/msgout.cpp:124 msgid "Message" msgstr "Mensagem" #: ../src/univ/themes/metal.cpp:168 msgid "Metal theme" msgstr "Tema Metal" #: ../src/msw/ole/automtn.cpp:641 msgid "Method or property not found." msgstr "Método ou propriedade não achado." #: ../src/univ/themes/win32.cpp:3752 msgid "Mi&nimize" msgstr "Mi&nimizar" #: ../src/richtext/richtextsizepage.cpp:409 msgid "Min height:" msgstr "Altura mín:" #: ../src/richtext/richtextsizepage.cpp:382 msgid "Min width:" msgstr "Largura mín:" #: ../src/msw/ole/automtn.cpp:657 msgid "Missing a required parameter." msgstr "Um parâmetro requerido está desaparecido." #: ../src/generic/fontdlgg.cpp:324 msgid "Modern" msgstr "Moderno" #: ../src/generic/filectrlg.cpp:462 msgid "Modified" msgstr "Modificado" #: ../src/common/module.cpp:133 #, c-format msgid "Module \"%s\" initialization failed" msgstr "A inicialização do módulo \"%s\" falhou" #: ../src/common/paper.cpp:132 msgid "Monarch Envelope, 3 7/8 x 7 1/2 in" msgstr "Envelope Monarca, 3 7/8 x 7 1/2 em" #: ../src/msw/fswatcher.cpp:143 msgid "Monitoring individual files for changes is not supported currently." msgstr "" "O monitoramento de arquivos individuais por mudanças não é suportado " "atualmente." #: ../src/generic/editlbox.cpp:276 msgid "Move down" msgstr "Mover para baixo" #: ../src/generic/editlbox.cpp:275 msgid "Move up" msgstr "Mover para cima" #: ../src/richtext/richtextsizepage.cpp:682 #: ../src/richtext/richtextsizepage.cpp:684 msgid "Moves the object to the next paragraph." msgstr "Move o objeto para o próximo parágrafo." #: ../src/richtext/richtextsizepage.cpp:676 #: ../src/richtext/richtextsizepage.cpp:678 msgid "Moves the object to the previous paragraph." msgstr "Move o objeto para o parágrafo anterior." #: ../src/richtext/richtextbuffer.cpp:9345 msgid "Multiple Cell Properties" msgstr "Propriedades Múltiplas das Células" #: ../src/common/accelcmn.cpp:81 msgid "NUM_LOCK" msgstr "NUM_LOCK" #: ../src/generic/filectrlg.cpp:459 msgid "Name" msgstr "Nome" #: ../src/common/stockitem.cpp:175 msgid "Network" msgstr "Rede" #: ../src/common/stockitem.cpp:176 msgid "New" msgstr "Novo" #: ../src/richtext/richtextstyledlg.cpp:243 msgid "New &Box Style..." msgstr "Novo &Estilo da Caixa..." #: ../src/richtext/richtextstyledlg.cpp:225 msgid "New &Character Style..." msgstr "Novo &Estilo de Caractere..." #: ../src/richtext/richtextstyledlg.cpp:237 msgid "New &List Style..." msgstr "Novo &Estilo de Lista..." #: ../src/richtext/richtextstyledlg.cpp:231 msgid "New &Paragraph Style..." msgstr "Novo &Estilo de Parágrafo..." #: ../src/richtext/richtextstyledlg.cpp:603 #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:651 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:817 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:890 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:931 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "New Style" msgstr "Novo Estilo" #: ../src/generic/dirdlgg.cpp:102 msgid "New directory" msgstr "Novo diretório" #: ../src/generic/editlbox.cpp:273 msgid "New item" msgstr "Novo item" #: ../src/generic/dirdlgg.cpp:326 ../src/generic/dirdlgg.cpp:336 #: ../src/generic/filectrlg.cpp:653 ../src/generic/filectrlg.cpp:662 msgid "NewName" msgstr "NovoNome" #: ../src/generic/tipdlg.cpp:305 msgid "Next" msgstr "&Próximo" #: ../src/common/prntbase.cpp:1537 ../src/html/helpwnd.cpp:678 msgid "Next page" msgstr "Próxima página" #: ../include/wx/msgdlg.h:272 ../src/common/stockitem.cpp:177 #: ../src/motif/msgdlg.cpp:196 msgid "No" msgstr "Não" #: ../src/generic/animateg.cpp:150 #, c-format msgid "No animation handler for type %ld defined." msgstr "Nenhum manejador de animação para o tipo %ld definido." #: ../src/dfb/bitmap.cpp:642 ../src/dfb/bitmap.cpp:676 #, c-format msgid "No bitmap handler for type %d defined." msgstr "Nenhum manejador de bitmap para o tipo %d definido." #: ../src/osx/carbon/dataview.cpp:1784 msgid "No column existing." msgstr "Nenhuma coluna existente." #: ../src/osx/carbon/dataview.cpp:1674 msgid "No column for the specified column existing." msgstr "Nenhuma coluna para a coluna especificada existente." #: ../src/osx/carbon/dataview.cpp:1423 msgid "No column for the specified column position existing." msgstr "Nenhuma coluna para a posição da coluna especificada existente." #: ../src/common/utilscmn.cpp:1049 msgid "No default application configured for HTML files." msgstr "Nenhum aplicativo padrão configurado para os arquivos HTML." #: ../src/generic/helpext.cpp:449 msgid "No entries found." msgstr "Não foram achadas entradas." #: ../src/common/fontmap.cpp:421 #, c-format msgid "" "No font for displaying text in encoding '%s' found,\n" "but an alternative encoding '%s' is available.\n" "Do you want to use this encoding (otherwise you will have to choose another " "one)?" msgstr "" "Nenhuma fonte para exibir o texto na codificação '%s' achada,\n" "mas uma codificação alternativa '%s' está disponível.\n" "Você quer usar esta codificação? (de outro modo você terá que escolher outra)" #: ../src/common/fontmap.cpp:426 #, c-format msgid "" "No font for displaying text in encoding '%s' found.\n" "Would you like to select a font to be used for this encoding\n" "(otherwise the text in this encoding will not be shown correctly)?" msgstr "" "Nenhuma fonte para exibir o texto na codificação '%s' achada.\n" "Você gostaria de selecionar a fonte a ser usada para esta codificação?\n" "(de outro modo o texto nesta codificação não será mostrado corretamente)" #: ../src/generic/animateg.cpp:142 msgid "No handler found for animation type." msgstr "Nenhum manejador achado para o tipo de animação." #: ../src/common/image.cpp:2591 msgid "No handler found for image type." msgstr "Nenhum manejador achado para o tipo de imagem." #: ../src/common/image.cpp:2599 ../src/common/image.cpp:2710 #: ../src/common/image.cpp:2763 #, c-format msgid "No image handler for type %d defined." msgstr "Nenhum manejador de imagem para o tipo %d definido." #: ../src/common/image.cpp:2733 ../src/common/image.cpp:2777 #, c-format msgid "No image handler for type %s defined." msgstr "Nenhum manipulador de imagem para o tipo %s definido." #: ../src/html/helpwnd.cpp:871 msgid "No matching page found yet" msgstr "Nenhuma página que combine achada" #: ../src/osx/carbon/dataview.cpp:1676 ../src/osx/carbon/dataview.cpp:1786 msgid "No renderer or invalid renderer type specified for custom data column." msgstr "" "Nenhum renderizador ou tipo de renderizador inválido especificado para a " "coluna de dados personalizada." #: ../src/osx/carbon/dataview.cpp:1424 msgid "No renderer specified for column." msgstr "Nenhum renderizador especificado para a coluna." #: ../src/unix/sound.cpp:81 msgid "No sound" msgstr "Sem som" #: ../src/common/image.cpp:2166 ../src/common/image.cpp:2207 msgid "No unused colour in image being masked." msgstr "Sem cores não usadas na imagem sendo mascarada." #: ../src/common/image.cpp:3236 msgid "No unused colour in image." msgstr "Sem cor não usada na imagem." #: ../src/generic/helpext.cpp:306 #, c-format msgid "No valid mappings found in the file \"%s\"." msgstr "Nenhum mapeamento válido achado no arquivo \"%s\"." #: ../src/richtext/richtextborderspage.cpp:542 #: ../src/richtext/richtextsizepage.cpp:248 #: ../src/richtext/richtextsizepage.cpp:252 msgid "None" msgstr "Nenhum" #: ../src/common/fmapbase.cpp:157 msgid "Nordic (ISO-8859-10)" msgstr "Nórdico (ISO-8859-10)" #: ../src/generic/fontdlgg.cpp:328 ../src/generic/fontdlgg.cpp:331 msgid "Normal" msgstr "Normal" #: ../src/html/helpwnd.cpp:1276 msgid "Normal face
    and underlined. " msgstr "Face normal
    e sublinhado. " #: ../src/html/helpwnd.cpp:1218 msgid "Normal font:" msgstr "Fonte normal:" #: ../src/propgrid/props.cpp:887 #, c-format msgid "Not %s" msgstr "Não %s" #: ../include/wx/filename.h:586 ../include/wx/filename.h:591 msgid "Not available" msgstr "Não disponível" #: ../src/richtext/richtextfontpage.cpp:340 msgid "Not underlined" msgstr "Não sublinhado" #: ../src/common/paper.cpp:116 msgid "Note, 8 1/2 x 11 in" msgstr "Nota, 8 1/2 x 11 em" #: ../src/generic/notifmsgg.cpp:104 msgid "Notice" msgstr "Nota" #: ../src/osx/carbon/dataview.cpp:902 msgid "Number of columns could not be determined." msgstr "O número de colunas não pôde ser determinado." #: ../src/richtext/richtextliststylepage.cpp:487 #: ../src/richtext/richtextbulletspage.cpp:292 msgid "Numbered outline" msgstr "Numerados no contorno" #: ../include/wx/msgdlg.h:273 ../src/richtext/richtextstyledlg.cpp:297 #: ../src/common/stockitem.cpp:178 ../src/msw/msgdlg.cpp:489 #: ../src/msw/msgdlg.cpp:799 ../src/msw/dialog.cpp:120 #: ../src/gtk1/fontdlg.cpp:138 msgid "OK" msgstr "OK" #: ../src/msw/ole/automtn.cpp:681 #, c-format msgid "OLE Automation error in %s: %s" msgstr "Erro de automação OLE em %s: %s" #: ../include/wx/richtext/richtextimagedlg.h:39 msgid "Object Properties" msgstr "Propriedades do Objeto" #: ../src/msw/ole/automtn.cpp:649 msgid "Object implementation does not support named arguments." msgstr "A implementação do objeto não suporta argumentos nomeados." #: ../src/common/xtixml.cpp:264 msgid "Objects must have an id attribute" msgstr "Os objetos devem ter um atributo id" #: ../src/common/docview.cpp:1755 ../src/common/docview.cpp:1797 msgid "Open File" msgstr "Abrir Arquivo" #: ../src/html/helpwnd.cpp:684 ../src/html/helpwnd.cpp:1557 msgid "Open HTML document" msgstr "Abrir documento HTML" #: ../src/generic/dbgrptg.cpp:163 #, c-format msgid "Open file \"%s\"" msgstr "Abrir arquivo \"%s\"" #: ../src/common/stockitem.cpp:179 msgid "Open..." msgstr "Abrir..." #: ../src/osx/carbon/glcanvas.cpp:48 #, c-format msgid "OpenGL function \"%s\" failed: %s (error %d)" msgstr "A função OpenGL \"%s\" falhou: %s (erro %d)" #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:821 msgid "Operation not permitted." msgstr "Operação não permitida." #: ../src/common/cmdline.cpp:735 #, c-format msgid "Option '%s' can't be negated" msgstr "A opção '%s' não pode ser negada" #: ../src/common/cmdline.cpp:899 #, c-format msgid "Option '%s' requires a value." msgstr "A opção '%s' requer um valor." #: ../src/common/cmdline.cpp:982 #, c-format msgid "Option '%s': '%s' cannot be converted to a date." msgstr "A opção '%s': '%s' não pode ser convertida para uma data." #: ../src/generic/dirdlgg.cpp:187 ../src/generic/prntdlgg.cpp:618 msgid "Options" msgstr "Opções" #: ../src/generic/prntdlgg.cpp:615 ../src/generic/prntdlgg.cpp:869 msgid "Orientation" msgstr "Orientação" #: ../src/common/windowid.cpp:259 msgid "Out of window IDs. Recommend shutting down application." msgstr "IDs fora da janela. Recomendar o fechamento do aplicativo." #: ../src/richtext/richtextborderspage.cpp:400 #: ../src/richtext/richtextborderspage.cpp:533 msgid "Outline" msgstr "Contorno" #: ../src/richtext/richtextborderspage.cpp:550 msgid "Outset" msgstr "Começo" #: ../src/msw/ole/automtn.cpp:645 msgid "Overflow while coercing argument values." msgstr "Sobrecarga enquanto força os valores do argumento." #: ../src/common/accelcmn.cpp:84 msgid "PAGEDOWN" msgstr "PAGEDOWN" #: ../src/common/accelcmn.cpp:83 msgid "PAGEUP" msgstr "PAGEUP" #: ../src/common/accelcmn.cpp:69 msgid "PAUSE" msgstr "PAUSE" #: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:480 msgid "PCX: couldn't allocate memory" msgstr "PCX: não pôde distribuir a memória" #: ../src/common/imagpcx.cpp:456 msgid "PCX: image format unsupported" msgstr "PCX: formato da imagem não suportado" #: ../src/common/imagpcx.cpp:479 msgid "PCX: invalid image" msgstr "PCX: imagem inválida" #: ../src/common/imagpcx.cpp:442 msgid "PCX: this is not a PCX file." msgstr "PCX: este não é um arquivo PCX." #: ../src/common/imagpcx.cpp:459 ../src/common/imagpcx.cpp:481 msgid "PCX: unknown error !!!" msgstr "PCX: erro desconhecido !!!" #: ../src/common/imagpcx.cpp:458 msgid "PCX: version number too low" msgstr "PCX: número de versão muito baixo" #: ../src/common/accelcmn.cpp:55 msgid "PGDN" msgstr "PGDN" #: ../src/common/accelcmn.cpp:54 msgid "PGUP" msgstr "PGUP" #: ../src/common/imagpnm.cpp:91 msgid "PNM: Couldn't allocate memory." msgstr "PNM: Não pôde distribuir a memória." #: ../src/common/imagpnm.cpp:73 msgid "PNM: File format is not recognized." msgstr "PNM: O formato do arquivo não é reconhecido." #: ../src/common/imagpnm.cpp:112 ../src/common/imagpnm.cpp:134 #: ../src/common/imagpnm.cpp:156 msgid "PNM: File seems truncated." msgstr "PNM: O arquivo parece truncado." #: ../src/common/paper.cpp:188 msgid "PRC 16K 146 x 215 mm" msgstr "PRC 16K 146 x 215 mm" #: ../src/common/paper.cpp:201 msgid "PRC 16K Rotated" msgstr "PRC 16K Rotacionado" #: ../src/common/paper.cpp:189 msgid "PRC 32K 97 x 151 mm" msgstr "PRC 32K 97 x 151 mm" #: ../src/common/paper.cpp:202 msgid "PRC 32K Rotated" msgstr "PRC 32K Rotacionado" #: ../src/common/paper.cpp:190 msgid "PRC 32K(Big) 97 x 151 mm" msgstr "PRC 32K (Grande) 97 x 151 mm" #: ../src/common/paper.cpp:203 msgid "PRC 32K(Big) Rotated" msgstr "PRC 32K (Grande) Rotacionado" #: ../src/common/paper.cpp:191 msgid "PRC Envelope #1 102 x 165 mm" msgstr "Envelope PRC #1 102 x 165 mm" #: ../src/common/paper.cpp:204 msgid "PRC Envelope #1 Rotated 165 x 102 mm" msgstr "Envelope PRC #1 Rotacionado 165 x 102 mm" #: ../src/common/paper.cpp:200 msgid "PRC Envelope #10 324 x 458 mm" msgstr "Envelope PRC #10 324 x 458 mm" #: ../src/common/paper.cpp:213 msgid "PRC Envelope #10 Rotated 458 x 324 mm" msgstr "Envelope PRC #10 Rotacionado 458 x 324 mm" #: ../src/common/paper.cpp:192 msgid "PRC Envelope #2 102 x 176 mm" msgstr "Envelope PRC #2 102 x 176 mm" #: ../src/common/paper.cpp:205 msgid "PRC Envelope #2 Rotated 176 x 102 mm" msgstr "Envelope PRC #2 Rotacionado 176 x 102 mm" #: ../src/common/paper.cpp:193 msgid "PRC Envelope #3 125 x 176 mm" msgstr "Envelope PRC #3 125 x 176 mm" #: ../src/common/paper.cpp:206 msgid "PRC Envelope #3 Rotated 176 x 125 mm" msgstr "Envelope B6 #3 Rotacionado 176 x 125 mm" #: ../src/common/paper.cpp:194 msgid "PRC Envelope #4 110 x 208 mm" msgstr "Envelope PRC #4 110 x 208 mm" #: ../src/common/paper.cpp:207 msgid "PRC Envelope #4 Rotated 208 x 110 mm" msgstr "Envelope PRC #4 Rotacionado 208 x 110 mm" #: ../src/common/paper.cpp:195 msgid "PRC Envelope #5 110 x 220 mm" msgstr "Envelope PRC #5 110 x 220 mm" #: ../src/common/paper.cpp:208 msgid "PRC Envelope #5 Rotated 220 x 110 mm" msgstr "Envelope PRC #5 Rotacionado 220 x 110 mm" #: ../src/common/paper.cpp:196 msgid "PRC Envelope #6 120 x 230 mm" msgstr "Envelope PRC #6 120 x 230 mm" #: ../src/common/paper.cpp:209 msgid "PRC Envelope #6 Rotated 230 x 120 mm" msgstr "Envelope PRC #6 Rotacionado 230 x 120 mm" #: ../src/common/paper.cpp:197 msgid "PRC Envelope #7 160 x 230 mm" msgstr "Envelope PRC #7 160 x 230 mm" #: ../src/common/paper.cpp:210 msgid "PRC Envelope #7 Rotated 230 x 160 mm" msgstr "Envelope PRC #7 Rotacionado 230 x 160 mm" #: ../src/common/paper.cpp:198 msgid "PRC Envelope #8 120 x 309 mm" msgstr "Envelope PRC #8 120 x 309 mm" #: ../src/common/paper.cpp:211 msgid "PRC Envelope #8 Rotated 309 x 120 mm" msgstr "Envelope PRC #8 Rotacionado 309 x 120 mm" #: ../src/common/paper.cpp:199 msgid "PRC Envelope #9 229 x 324 mm" msgstr "Envelope PRC #9 229 x 324 mm" #: ../src/common/paper.cpp:212 msgid "PRC Envelope #9 Rotated 324 x 229 mm" msgstr "Envelope PRC #9 Rotacionado 324 x 229 mm" #: ../src/common/accelcmn.cpp:72 msgid "PRINT" msgstr "PRINT" #: ../src/richtext/richtextmarginspage.cpp:286 msgid "Padding" msgstr "Enchimento" #: ../src/common/prntbase.cpp:2044 #, c-format msgid "Page %d" msgstr "Página %d" #: ../src/common/prntbase.cpp:2042 #, c-format msgid "Page %d of %d" msgstr "Página %d de %d" #: ../src/gtk/print.cpp:774 msgid "Page Setup" msgstr "Configuração da Página" #: ../src/generic/prntdlgg.cpp:828 ../src/common/prntbase.cpp:467 msgid "Page setup" msgstr "Configuração da página" #: ../src/generic/prntdlgg.cpp:216 msgid "Pages" msgstr "Páginas" #: ../src/generic/prntdlgg.cpp:602 ../src/generic/prntdlgg.cpp:801 #: ../src/generic/prntdlgg.cpp:842 ../src/generic/prntdlgg.cpp:855 #: ../src/generic/prntdlgg.cpp:1052 ../src/generic/prntdlgg.cpp:1057 msgid "Paper size" msgstr "Tamanho do papel" #: ../src/richtext/richtextstyles.cpp:1058 msgid "Paragraph styles" msgstr "Estilos de parágrafo" #: ../src/common/xtistrm.cpp:469 msgid "Passing a already registered object to SetObject" msgstr "Passando um objeto já registrado para o SetObject" #: ../src/common/xtistrm.cpp:480 msgid "Passing an unknown object to GetObject" msgstr "Passando um objeto desconhecido pro GetObject" #: ../src/richtext/richtextctrl.cpp:3117 ../src/common/stockitem.cpp:180 #: ../src/stc/stc_i18n.cpp:19 msgid "Paste" msgstr "Colar" #: ../src/common/stockitem.cpp:262 msgid "Paste selection" msgstr "Colar a seleção" #: ../src/richtext/richtextliststylepage.cpp:222 #: ../src/richtext/richtextbulletspage.cpp:172 msgid "Peri&od" msgstr "Pont&o" #: ../src/generic/filectrlg.cpp:465 msgid "Permissions" msgstr "Permissões" #: ../src/richtext/richtextbuffer.cpp:11942 msgid "Picture Properties" msgstr "Propriedades da Foto" #: ../include/wx/unix/pipe.h:47 msgid "Pipe creation failed" msgstr "A criação do pipe falhou" #: ../src/gtk1/fontdlg.cpp:74 msgid "Please choose a valid font." msgstr "Por favor escolha uma fonte válida." #: ../src/gtk/filedlg.cpp:72 msgid "Please choose an existing file." msgstr "Por favor escolha um arquivo existente." #: ../src/html/helpwnd.cpp:813 msgid "Please choose the page to display:" msgstr "Por favor escolha a página a exibir:" #: ../src/msw/dialup.cpp:785 msgid "Please choose which ISP do you want to connect to" msgstr "Por favor escolha a qual ISP vocé quer se conectar" #: ../src/msw/listctrl.cpp:372 #, c-format msgid "" "Please install a newer version of comctl32.dll\n" "(at least version 4.70 is required but you have %d.%02d)\n" "or this program won't operate correctly." msgstr "" "Por favor instale uma versão mais nova do comctl32.dll\n" "(no mínimo a versão 4.70 é requerida mas você tem %d.%02d)\n" "ou este programa não operará corretamente." #: ../src/common/headerctrlcmn.cpp:59 msgid "Please select the columns to show and define their order:" msgstr "Por favor selecione as colunas a mostrar e defina a ordem delas:" #: ../src/common/prntbase.cpp:521 msgid "Please wait while printing..." msgstr "Por favor espere enquanto imprime..." #: ../src/propgrid/advprops.cpp:631 msgid "Point Size" msgstr "Tamanho do Ponto" #: ../src/osx/carbon/dataview.cpp:1278 ../src/osx/carbon/dataview.cpp:1329 #: ../src/osx/carbon/dataview.cpp:1420 ../src/osx/carbon/dataview.cpp:1443 #: ../src/osx/carbon/dataview.cpp:1460 ../src/osx/carbon/dataview.cpp:1477 #: ../src/osx/carbon/dataview.cpp:1670 ../src/osx/carbon/dataview.cpp:1779 #: ../src/osx/carbon/dataview.cpp:1821 ../src/osx/carbon/dataview.cpp:1874 #: ../src/osx/carbon/dataview.cpp:1997 msgid "Pointer to data view control not set correctly." msgstr "" "Ponteiro para o controle da visualização de dados não definidos corretamente." #: ../src/osx/carbon/dataview.cpp:1279 ../src/osx/carbon/dataview.cpp:1338 #: ../src/osx/carbon/dataview.cpp:1421 ../src/osx/carbon/dataview.cpp:1478 #: ../src/osx/carbon/dataview.cpp:1671 ../src/osx/carbon/dataview.cpp:1780 #: ../src/osx/carbon/dataview.cpp:1822 ../src/osx/carbon/dataview.cpp:1875 #: ../src/osx/carbon/dataview.cpp:1998 msgid "Pointer to model not set correctly." msgstr "Ponteiro para o modelo não definido corretamente." #: ../src/generic/prntdlgg.cpp:612 ../src/generic/prntdlgg.cpp:867 msgid "Portrait" msgstr "Retrato" #: ../src/richtext/richtextsizepage.cpp:496 msgid "Position" msgstr "Posição" #: ../src/generic/prntdlgg.cpp:298 msgid "PostScript file" msgstr "Arquivo PostScript" #: ../src/common/stockitem.cpp:181 msgid "Preferences" msgstr "Preferências" #: ../src/osx/menu_osx.cpp:643 msgid "Preferences..." msgstr "Preferências..." #: ../src/common/prntbase.cpp:529 msgid "Preparing" msgstr "Preparando" #: ../src/generic/fontdlgg.cpp:455 ../src/osx/carbon/fontdlg.cpp:576 #: ../src/html/helpwnd.cpp:1235 msgid "Preview:" msgstr "Pré-visualização:" #: ../src/common/prntbase.cpp:1523 ../src/html/helpwnd.cpp:677 msgid "Previous page" msgstr "Página anterior" #: ../src/generic/prntdlgg.cpp:143 ../src/generic/prntdlgg.cpp:157 #: ../src/common/prntbase.cpp:409 ../src/common/prntbase.cpp:1511 #: ../src/gtk/print.cpp:584 ../src/gtk/print.cpp:597 msgid "Print" msgstr "Imprimir" #: ../include/wx/prntbase.h:395 ../src/common/docview.cpp:1250 msgid "Print Preview" msgstr "Pré-visualização de Impressão" #: ../src/common/prntbase.cpp:1985 ../src/common/prntbase.cpp:2027 #: ../src/common/prntbase.cpp:2035 msgid "Print Preview Failure" msgstr "Falha ao Pré-visualizar a Impressãoo" #: ../src/generic/prntdlgg.cpp:224 msgid "Print Range" msgstr "Alcance da Impressão" #: ../src/generic/prntdlgg.cpp:449 msgid "Print Setup" msgstr "Configuraçãoo da Impressão" #: ../src/generic/prntdlgg.cpp:621 msgid "Print in colour" msgstr "Imprimir em cores" #: ../src/common/stockitem.cpp:182 msgid "Print previe&w..." msgstr "Pré-visualizar impressã&o..." #: ../src/common/docview.cpp:1244 msgid "Print preview creation failed." msgstr "A criação da pré-visualização da impressão falhou." #: ../src/common/stockitem.cpp:182 msgid "Print preview..." msgstr "Pré-visualização da impressão..." #: ../src/generic/prntdlgg.cpp:630 msgid "Print spooling" msgstr "Spooling de impressão" #: ../src/html/helpwnd.cpp:688 msgid "Print this page" msgstr "Imprimir esta página" #: ../src/generic/prntdlgg.cpp:185 msgid "Print to File" msgstr "Imprimir para o Arquivo" #: ../src/common/stockitem.cpp:183 msgid "Print..." msgstr "Imprimir..." #: ../src/generic/prntdlgg.cpp:493 msgid "Printer" msgstr "Impressora" #: ../src/generic/prntdlgg.cpp:633 msgid "Printer command:" msgstr "Comando da impressora:" #: ../src/generic/prntdlgg.cpp:180 msgid "Printer options" msgstr "Opções da impressora" #: ../src/generic/prntdlgg.cpp:645 msgid "Printer options:" msgstr "Opções da impressora:" #: ../src/generic/prntdlgg.cpp:916 msgid "Printer..." msgstr "Impressora..." #: ../src/generic/prntdlgg.cpp:196 msgid "Printer:" msgstr "Impressora:" #: ../include/wx/richtext/richtextprint.h:163 ../src/common/prntbase.cpp:518 #: ../src/html/htmprint.cpp:277 msgid "Printing" msgstr "Imprimindo" #: ../src/common/prntbase.cpp:586 msgid "Printing " msgstr "Imprimindo " #: ../src/common/prntbase.cpp:330 msgid "Printing Error" msgstr "Erro ao imprimir" #: ../src/common/prntbase.cpp:544 #, c-format msgid "Printing page %d of %d" msgstr "Imprimindo a página %d de %d" #: ../src/generic/printps.cpp:201 #, c-format msgid "Printing page %d..." msgstr "Imprimindo a página %d..." #: ../src/generic/printps.cpp:161 msgid "Printing..." msgstr "Imprimindo..." #: ../include/wx/richtext/richtextprint.h:109 ../include/wx/prntbase.h:263 #: ../src/common/docview.cpp:2124 msgid "Printout" msgstr "Imprimir" #: ../src/common/debugrpt.cpp:565 #, c-format msgid "" "Processing debug report has failed, leaving the files in \"%s\" directory." msgstr "" "O processamento do relatório do debug falhou, deixando os arquivos no " "diretório \"%s\"." #: ../src/osx/carbon/dataview.cpp:2472 msgid "Progress renderer cannot render value type; value type: " msgstr "" "O renderizador do progresso não pode renderizar o tipo de valor; tipo de " "valor:" #: ../src/common/prntbase.cpp:528 msgid "Progress:" msgstr "Progresso:" #: ../src/common/stockitem.cpp:184 msgid "Properties" msgstr "Propriedades" #: ../src/propgrid/manager.cpp:237 msgid "Property" msgstr "Propriedade" #: ../src/propgrid/propgrid.cpp:3144 ../src/propgrid/propgrid.cpp:3276 msgid "Property Error" msgstr "Erro da Propriedade" #: ../src/common/paper.cpp:113 msgid "Quarto, 215 x 275 mm" msgstr "Quarto, 215 x 275 mm" #: ../src/generic/logg.cpp:1036 msgid "Question" msgstr "Pergunta" #: ../src/common/stockitem.cpp:156 msgid "Quit" msgstr "Sair" #: ../src/osx/menu_osx.cpp:610 ../src/osx/menu_osx.cpp:657 #, c-format msgid "Quit %s" msgstr "Sair %s" #: ../src/common/stockitem.cpp:263 msgid "Quit this program" msgstr "Sair deste programa" #: ../src/common/accelcmn.cpp:53 msgid "RETURN" msgstr "RETURN" #: ../src/common/accelcmn.cpp:57 msgid "RIGHT" msgstr "RIGHT" #: ../src/common/accelcmn.cpp:327 msgid "RawCtrl+" msgstr "RawCtrl+" #: ../src/common/ffile.cpp:113 ../src/common/ffile.cpp:134 #, c-format msgid "Read error on file '%s'" msgstr "Erro de leitura no arquivo '%s'" #: ../src/common/prntbase.cpp:257 msgid "Ready" msgstr "Pronto" #: ../src/common/stockitem.cpp:185 ../src/stc/stc_i18n.cpp:16 msgid "Redo" msgstr "Refazer" #: ../src/common/stockitem.cpp:264 msgid "Redo last action" msgstr "Refazer a última ação" #: ../src/common/stockitem.cpp:186 msgid "Refresh" msgstr "Atualizar" #: ../src/msw/registry.cpp:625 #, c-format msgid "Registry key '%s' already exists." msgstr "A chave de registro '%s' já existe." #: ../src/msw/registry.cpp:594 #, c-format msgid "Registry key '%s' does not exist, cannot rename it." msgstr "A chave de registro '%s' não existe; não pode renomeá-la." #: ../src/msw/registry.cpp:726 #, c-format msgid "" "Registry key '%s' is needed for normal system operation,\n" "deleting it will leave your system in unusable state:\n" "operation aborted." msgstr "" "A chave de registro '%s' é necessária para a operação normal do sistema,\n" "apagando-a deixará seu sistema num estado inutilizável:\n" "operação abortada." #: ../src/msw/registry.cpp:520 #, c-format msgid "Registry value '%s' already exists." msgstr "O valor do registro '%s' já existe." #: ../src/richtext/richtextfontpage.cpp:332 #: ../src/richtext/richtextfontpage.cpp:336 msgid "Regular" msgstr "Normal" #: ../src/richtext/richtextsizepage.cpp:519 msgid "Relative" msgstr "Relativo" #: ../src/generic/helpext.cpp:462 msgid "Relevant entries:" msgstr "Entradas relevantes:" #: ../include/wx/generic/progdlgg.h:86 msgid "Remaining time:" msgstr "Tempo restante:" #: ../src/common/stockitem.cpp:187 msgid "Remove" msgstr "Remover" #: ../src/richtext/richtextctrl.cpp:1430 msgid "Remove Bullet" msgstr "Remover a Bala" #: ../src/html/helpwnd.cpp:440 msgid "Remove current page from bookmarks" msgstr "Remover a página atual dos favoritos" #: ../src/common/rendcmn.cpp:194 #, c-format msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded." msgstr "" "O renderizador \"%s\" tem uma versão incompatível, %d.%d; e não pôde ser " "carregado." #: ../src/osx/carbon/dataview.cpp:1430 msgid "Rendering failed." msgstr "A renderização falhou." #: ../src/richtext/richtextbuffer.cpp:4214 msgid "Renumber List" msgstr "Re-numerar a Lista" #: ../src/common/stockitem.cpp:188 msgid "Rep&lace" msgstr "Sub&stituir" #: ../src/richtext/richtextctrl.cpp:3277 ../src/common/stockitem.cpp:188 msgid "Replace" msgstr "Substituir" #: ../src/generic/fdrepdlg.cpp:182 msgid "Replace &all" msgstr "Substituir &tudo" #: ../src/common/stockitem.cpp:261 msgid "Replace selection" msgstr "Substituir a seleção" #: ../src/generic/fdrepdlg.cpp:124 msgid "Replace with:" msgstr "Substituir por:" #: ../src/common/valtext.cpp:161 msgid "Required information entry is empty." msgstr "O espaço da informação requerida está vazio." #: ../src/common/translation.cpp:1966 #, c-format msgid "Resource '%s' is not a valid message catalog." msgstr "O recurso '%s' não é um catálogo de mensagens válido." #: ../src/common/stockitem.cpp:189 msgid "Revert to Saved" msgstr "Reverter ao Salvo" #: ../src/richtext/richtextborderspage.cpp:548 msgid "Ridge" msgstr "Cordilheira" #: ../src/richtext/richtextliststylepage.cpp:251 #: ../src/richtext/richtextbulletspage.cpp:201 #: ../src/richtext/richtextsizepage.cpp:250 msgid "Right" msgstr "Direita" #: ../src/generic/prntdlgg.cpp:892 msgid "Right margin (mm):" msgstr "Margem direita (mm):" #: ../src/richtext/richtextindentspage.cpp:148 #: ../src/richtext/richtextindentspage.cpp:150 #: ../src/richtext/richtextliststylepage.cpp:337 #: ../src/richtext/richtextliststylepage.cpp:339 msgid "Right-align text." msgstr "Alinhar o texto a direita." #: ../src/generic/fontdlgg.cpp:322 msgid "Roman" msgstr "Romano" #: ../src/richtext/richtextliststylepage.cpp:299 #: ../src/richtext/richtextbulletspage.cpp:252 msgid "S&tandard bullet name:" msgstr "N&ome do projétil padrão" #: ../src/common/accelcmn.cpp:82 msgid "SCROLL_LOCK" msgstr "SCROLL_LOCK" #: ../src/common/accelcmn.cpp:71 msgid "SELECT" msgstr "SELECT" #: ../src/common/accelcmn.cpp:77 msgid "SEPARATOR" msgstr "SEPARATOR" #: ../src/common/accelcmn.cpp:74 msgid "SNAPSHOT" msgstr "SNAPSHOT" #: ../src/common/accelcmn.cpp:62 msgid "SPACE" msgstr "SPACE" #: ../src/common/accelcmn.cpp:257 ../src/common/accelcmn.cpp:339 msgid "SPECIAL" msgstr "SPECIAL" #: ../src/common/accelcmn.cpp:78 msgid "SUBTRACT" msgstr "SUBTRACT" #: ../src/common/stockitem.cpp:190 ../src/common/sizer.cpp:2678 msgid "Save" msgstr "Salvar" #: ../src/common/fldlgcmn.cpp:327 #, c-format msgid "Save %s file" msgstr "Salvar arquivo %s" #: ../src/generic/logg.cpp:518 msgid "Save &As..." msgstr "Salvar &Como..." #: ../src/common/docview.cpp:360 msgid "Save As" msgstr "Salvar Como" #: ../src/common/stockitem.cpp:191 msgid "Save as" msgstr "Salvar como" #: ../src/common/stockitem.cpp:267 msgid "Save current document" msgstr "Salvar o documento atual" #: ../src/common/stockitem.cpp:268 msgid "Save current document with a different filename" msgstr "Salvar o documento atual com um nome de arquivo diferente" #: ../src/generic/logg.cpp:518 msgid "Save log contents to file" msgstr "Salvar os conteúdos do log com arquivo" #: ../src/generic/fontdlgg.cpp:325 msgid "Script" msgstr "Script" #: ../src/generic/srchctlg.cpp:67 ../src/html/helpwnd.cpp:548 #: ../src/html/helpwnd.cpp:563 msgid "Search" msgstr "Procurar" #: ../src/html/helpwnd.cpp:550 msgid "" "Search contents of help book(s) for all occurrences of the text you typed " "above" msgstr "" "Pesquisar conteúdos do(s) livro(s) de ajuda para todas as ocorrências do " "texto que você digitou acima" #: ../src/generic/fdrepdlg.cpp:160 msgid "Search direction" msgstr "Direção da busca" #: ../src/generic/fdrepdlg.cpp:112 msgid "Search for:" msgstr "Procurar por:" #: ../src/html/helpwnd.cpp:1065 msgid "Search in all books" msgstr "Procurar em todos os livros" #: ../src/html/helpwnd.cpp:870 msgid "Searching..." msgstr "Procurando..." #: ../src/generic/dirctrlg.cpp:546 msgid "Sections" msgstr "Seções" #: ../src/common/ffile.cpp:220 #, c-format msgid "Seek error on file '%s'" msgstr "Erro de busca no arquivo '%s'" #: ../src/common/ffile.cpp:210 #, c-format msgid "Seek error on file '%s' (large files not supported by stdio)" msgstr "" "Erro de busca no arquivo '%s' (arquivos grandes não suportados pela stdio)" #: ../src/richtext/richtextctrl.cpp:330 ../src/osx/textctrl_osx.cpp:587 #: ../src/common/stockitem.cpp:192 ../src/msw/textctrl.cpp:2288 msgid "Select &All" msgstr "Selecionar &Tudo" #: ../src/common/stockitem.cpp:192 ../src/stc/stc_i18n.cpp:21 msgid "Select All" msgstr "Selecionar Tudo" #: ../src/common/docview.cpp:1877 msgid "Select a document template" msgstr "Selecione um modelo de documento" #: ../src/common/docview.cpp:1951 msgid "Select a document view" msgstr "Selecione uma visualização do documento" #: ../src/richtext/richtextfontpage.cpp:235 #: ../src/richtext/richtextfontpage.cpp:237 msgid "Select regular or bold." msgstr "Selecione regular ou negrito." #: ../src/richtext/richtextfontpage.cpp:222 #: ../src/richtext/richtextfontpage.cpp:224 msgid "Select regular or italic style." msgstr "Selecione o estilo regular ou itálico." #: ../src/richtext/richtextfontpage.cpp:248 #: ../src/richtext/richtextfontpage.cpp:250 msgid "Select underlining or no underlining." msgstr "Selecione sublinhado ou sem sublinhado." #: ../src/motif/filedlg.cpp:220 msgid "Selection" msgstr "Seleção" #: ../src/richtext/richtextliststylepage.cpp:187 #: ../src/richtext/richtextliststylepage.cpp:189 msgid "Selects the list level to edit." msgstr "Seleciona o nível da lista para editar." #: ../src/common/cmdline.cpp:918 #, c-format msgid "Separator expected after the option '%s'." msgstr "Separador esperado após a opção '%s'." #: ../src/richtext/richtextbuffer.cpp:10513 msgid "Set Cell Style" msgstr "Definir o Estilo da Célula" #: ../include/wx/xtiprop.h:179 msgid "SetProperty called w/o valid setter" msgstr "SetProperty chamada sem um \"setter\" v�lido" #: ../src/common/filename.cpp:2632 msgid "Setting directory access times is not supported under this OS version" msgstr "" "Configurar os tempos de acesso do diretório não é suportado por esta versão " "do SO" #: ../src/generic/prntdlgg.cpp:188 msgid "Setup..." msgstr "Configurar..." #: ../src/msw/dialup.cpp:563 msgid "Several active dialup connections found, choosing one randomly." msgstr "Várias conexões dial-up ativas achadas, escolhendo uma aleatoriamente." #: ../src/common/accelcmn.cpp:324 msgid "Shift+" msgstr "Shift+" #: ../src/generic/dirdlgg.cpp:170 msgid "Show &hidden directories" msgstr "Mostrar &diretórios ocultos" #: ../src/generic/filectrlg.cpp:1003 msgid "Show &hidden files" msgstr "Mostrar &arquivos ocultos" #: ../src/osx/menu_osx.cpp:605 ../src/osx/menu_osx.cpp:652 msgid "Show All" msgstr "Mostrar Tudo" #: ../src/common/stockitem.cpp:257 msgid "Show about dialog" msgstr "Mostrar o diálogo sobre" #: ../src/html/helpwnd.cpp:502 msgid "Show all" msgstr "Mostrar tudo" #: ../src/html/helpwnd.cpp:513 msgid "Show all items in index" msgstr "Mostrar todos os itens no índice" #: ../src/generic/dirdlgg.cpp:105 msgid "Show hidden directories" msgstr "Mostrar diretórios ocultos" #: ../src/html/helpwnd.cpp:671 msgid "Show/hide navigation panel" msgstr "Mostrar/ocultar o painel de navegação" #: ../src/richtext/richtextsymboldlg.cpp:421 #: ../src/richtext/richtextsymboldlg.cpp:423 msgid "Shows a Unicode subset." msgstr "Mostra um subset do Unicode." #: ../src/richtext/richtextliststylepage.cpp:472 #: ../src/richtext/richtextliststylepage.cpp:474 #: ../src/richtext/richtextbulletspage.cpp:276 #: ../src/richtext/richtextbulletspage.cpp:278 msgid "Shows a preview of the bullet settings." msgstr "Mostra uma pré-visualização das configurações dos projéteis." #: ../src/richtext/richtextfontpage.cpp:322 #: ../src/richtext/richtextfontpage.cpp:324 msgid "Shows a preview of the font settings." msgstr "Mostra uma pré-visualização das configurações da fonte." #: ../src/osx/carbon/fontdlg.cpp:580 ../src/osx/carbon/fontdlg.cpp:582 msgid "Shows a preview of the font." msgstr "Mostra uma pré-visualização da fonte." #: ../src/richtext/richtextindentspage.cpp:303 #: ../src/richtext/richtextindentspage.cpp:305 msgid "Shows a preview of the paragraph settings." msgstr "Mostra uma pré-visualizaçãoo das configurações do parágrafo." #: ../src/generic/fontdlgg.cpp:460 ../src/generic/fontdlgg.cpp:462 msgid "Shows the font preview." msgstr "Mostra a pré-visualização da fonte." #: ../src/univ/themes/mono.cpp:516 msgid "Simple monochrome theme" msgstr "Tema monocromático simples" #: ../src/richtext/richtextindentspage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:449 msgid "Single" msgstr "Único" #: ../src/generic/filectrlg.cpp:460 ../src/richtext/richtextformatdlg.cpp:356 #: ../src/richtext/richtextsizepage.cpp:299 msgid "Size" msgstr "Tamanho" #: ../src/osx/carbon/fontdlg.cpp:525 msgid "Size:" msgstr "Tamanho:" #: ../src/generic/progdlgg.cpp:262 ../src/generic/progdlgg.cpp:773 #: ../src/msw/progdlg.cpp:801 msgid "Skip" msgstr "Pular" #: ../src/generic/fontdlgg.cpp:330 msgid "Slant" msgstr "Inclinação" #: ../src/richtext/richtextfontpage.cpp:298 msgid "Small C&apitals" msgstr "Mi&núsculas" #: ../src/richtext/richtextborderspage.cpp:543 msgid "Solid" msgstr "Sólido" #: ../src/common/docview.cpp:1773 msgid "Sorry, could not open this file." msgstr "Lamento, não pude abrir este arquivo." #: ../src/common/prntbase.cpp:2027 ../src/common/prntbase.cpp:2035 msgid "Sorry, not enough memory to create a preview." msgstr "Lamento, memória não o suficiente para criar uma pré-visualização." #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "Sorry, that name is taken. Please choose another." msgstr "Lamento, este nome está tomado. Por favor escolha outro." #: ../src/common/docview.cpp:1796 msgid "Sorry, the format for this file is unknown." msgstr "Lamento, o formato para este arquivo é desconhecido." #: ../src/unix/sound.cpp:492 msgid "Sound data are in unsupported format." msgstr "Os dados de som estão num formato não suportado." #: ../src/unix/sound.cpp:477 #, c-format msgid "Sound file '%s' is in unsupported format." msgstr "O arquivo de som '%s' está num formato não suportado." #: ../src/richtext/richtextliststylepage.cpp:467 msgid "Spacing" msgstr "Espaçamento" #: ../src/common/stockitem.cpp:197 msgid "Spell Check" msgstr "Verificação da Escrita" #: ../src/richtext/richtextliststylepage.cpp:490 #: ../src/richtext/richtextbulletspage.cpp:295 msgid "Standard" msgstr "Padrão" #: ../src/common/paper.cpp:105 msgid "Statement, 5 1/2 x 8 1/2 in" msgstr "Declaração, 5 1/2 x 8 1/2 em" #: ../src/richtext/richtextsizepage.cpp:518 #: ../src/richtext/richtextsizepage.cpp:523 msgid "Static" msgstr "Estático" #: ../src/generic/prntdlgg.cpp:204 msgid "Status:" msgstr "Status: " #: ../src/common/stockitem.cpp:198 msgid "Stop" msgstr "Parar" #: ../src/common/stockitem.cpp:199 msgid "Strikethrough" msgstr "Penetrar" #: ../src/common/colourcmn.cpp:45 #, c-format msgid "String To Colour : Incorrect colour specification : %s" msgstr "String para a Cor: Especificação da cor incorreta: %s" #: ../src/richtext/richtextformatdlg.cpp:318 ../src/propgrid/advprops.cpp:647 msgid "Style" msgstr "Estilo" #: ../include/wx/richtext/richtextstyledlg.h:47 msgid "Style Organiser" msgstr "Organizador de Estilos" #: ../src/osx/carbon/fontdlg.cpp:534 msgid "Style:" msgstr "Estilo:" #: ../src/richtext/richtextfontpage.cpp:312 msgid "Subscrip&t" msgstr "SubScrip&t" #: ../src/richtext/richtextfontpage.cpp:305 msgid "Supe&rscript" msgstr "Supe&rscript" #: ../src/common/paper.cpp:151 msgid "SuperA/SuperA/A4 227 x 356 mm" msgstr "SuperA/SuperA/A4 227 x 356 mm" #: ../src/common/paper.cpp:152 msgid "SuperB/SuperB/A3 305 x 487 mm" msgstr "SuperB/SuperB/A3 305 x 487 mm" #: ../src/generic/fontdlgg.cpp:326 msgid "Swiss" msgstr "Suíço" #: ../src/richtext/richtextliststylepage.cpp:488 #: ../src/richtext/richtextbulletspage.cpp:293 msgid "Symbol" msgstr "Símbolo" #: ../src/richtext/richtextliststylepage.cpp:288 #: ../src/richtext/richtextbulletspage.cpp:240 msgid "Symbol &font:" msgstr "Fonte dos &símbolos:" #: ../include/wx/richtext/richtextsymboldlg.h:47 msgid "Symbols" msgstr "Símbolos" #: ../src/common/accelcmn.cpp:63 msgid "TAB" msgstr "TAB" #: ../src/common/imagtiff.cpp:372 ../src/common/imagtiff.cpp:385 #: ../src/common/imagtiff.cpp:744 msgid "TIFF: Couldn't allocate memory." msgstr "TIFF: Não pôde distribuir a memória." #: ../src/common/imagtiff.cpp:304 msgid "TIFF: Error loading image." msgstr "TIFF: Erro carregando a imagem." #: ../src/common/imagtiff.cpp:471 msgid "TIFF: Error reading image." msgstr "TIFF: Erro ao ler a imagem." #: ../src/common/imagtiff.cpp:611 msgid "TIFF: Error saving image." msgstr "TIFF: Erro ao salvar a imagem." #: ../src/common/imagtiff.cpp:849 msgid "TIFF: Error writing image." msgstr "TIFF: Erro ao gravar imagem." #: ../src/common/imagtiff.cpp:358 msgid "TIFF: Image size is abnormally big." msgstr "TiFF: o tamanho da imagem é anormalmente grande." #: ../src/richtext/richtextbuffer.cpp:10794 msgid "Table Properties" msgstr "Propriedades da Tabela" #: ../src/common/paper.cpp:146 msgid "Tabloid Extra 11.69 x 18 in" msgstr "Tablóide Extra 11.69 x 18 em" #: ../src/common/paper.cpp:103 msgid "Tabloid, 11 x 17 in" msgstr "Tablóide, 11 x 17 em" #: ../src/richtext/richtextformatdlg.cpp:336 msgid "Tabs" msgstr "Abas" #: ../src/generic/fontdlgg.cpp:327 msgid "Teletype" msgstr "Teletype" #: ../src/common/docview.cpp:1878 msgid "Templates" msgstr "Modelos" #: ../src/osx/carbon/dataview.cpp:2373 msgid "Text renderer cannot render value; value type: " msgstr "O renderizador de texto não pode renderizar o valor; tipo de valor:" #: ../src/common/fmapbase.cpp:158 msgid "Thai (ISO-8859-11)" msgstr "Tailandês (ISO-8859-11)" #: ../src/common/ftp.cpp:620 msgid "The FTP server doesn't support passive mode." msgstr "O servidor FTP não suporta o modo passivo." #: ../src/common/ftp.cpp:606 msgid "The FTP server doesn't support the PORT command." msgstr "O servidor FTP não suporta o comando \"PORT\"." #: ../src/richtext/richtextliststylepage.cpp:215 #: ../src/richtext/richtextliststylepage.cpp:217 #: ../src/richtext/richtextbulletspage.cpp:164 #: ../src/richtext/richtextbulletspage.cpp:166 msgid "The available bullet styles." msgstr "Os estilos de projéteis disponíveis." #: ../src/richtext/richtextstyledlg.cpp:202 #: ../src/richtext/richtextstyledlg.cpp:204 msgid "The available styles." msgstr "Os estilos disponíveis." #: ../src/richtext/richtextbackgroundpage.cpp:139 #: ../src/richtext/richtextbackgroundpage.cpp:141 msgid "The background colour." msgstr "A côr de fundo." #: ../src/richtext/richtextmarginspage.cpp:268 #: ../src/richtext/richtextmarginspage.cpp:270 msgid "The bottom margin size." msgstr "O tamanho da margem do fundo." #: ../src/richtext/richtextmarginspage.cpp:382 #: ../src/richtext/richtextmarginspage.cpp:384 msgid "The bottom padding size." msgstr "O tamanho do enchimento do fundo." #: ../src/richtext/richtextsizepage.cpp:639 #: ../src/richtext/richtextsizepage.cpp:641 #: ../src/richtext/richtextsizepage.cpp:653 #: ../src/richtext/richtextsizepage.cpp:655 msgid "The bottom position." msgstr "A posição do rodapé." #: ../src/richtext/richtextliststylepage.cpp:254 #: ../src/richtext/richtextliststylepage.cpp:256 #: ../src/richtext/richtextliststylepage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:277 #: ../src/richtext/richtextbulletspage.cpp:204 #: ../src/richtext/richtextbulletspage.cpp:206 #: ../src/richtext/richtextbulletspage.cpp:227 #: ../src/richtext/richtextbulletspage.cpp:229 msgid "The bullet character." msgstr "O caractere projétil." #: ../src/richtext/richtextsymboldlg.cpp:443 #: ../src/richtext/richtextsymboldlg.cpp:445 msgid "The character code." msgstr "O código do caracteres." #: ../src/common/fontmap.cpp:203 #, c-format msgid "" "The charset '%s' is unknown. You may select\n" "another charset to replace it with or choose\n" "[Cancel] if it cannot be replaced" msgstr "" "O conjunto de caracteres '%s' é desconhecido. Você pode selecionar\n" "outro conjunto de caracteres para substituí-lo ou escolher\n" "[Cancelar] se ele não pode ser substituído" #: ../src/msw/ole/dataobj.cpp:367 #, c-format msgid "The clipboard format '%d' doesn't exist." msgstr "O formato '%d' da área de transferência não existe." #: ../src/richtext/richtextstylepage.cpp:128 #: ../src/richtext/richtextstylepage.cpp:130 msgid "The default style for the next paragraph." msgstr "O estilo padrão para o próximo parágrafo." #: ../src/generic/dirdlgg.cpp:231 #, c-format msgid "" "The directory '%s' does not exist\n" "Create it now?" msgstr "" "O diretório '%s' não existe\n" "Criá-lo agora?" #: ../src/html/htmprint.cpp:271 #, c-format msgid "" "The document \"%s\" doesn't fit on the page horizontally and will be " "truncated if printed.\n" "\n" "Would you like to proceed with printing it nevertheless?" msgstr "" "O documento \"%s\" não se encaixa na página horizontalmente e será truncado " "se impresso.\n" "\n" "Você gostaria de prosseguir com a impressão apesar disso?" #: ../src/common/docview.cpp:1184 #, c-format msgid "" "The file '%s' doesn't exist and couldn't be opened.\n" "It has been removed from the most recently used files list." msgstr "" "O arquivo '%s' não existe e não pôde ser aberto.\n" "Foi removido da lista dos arquivos mais usados recentemente." #: ../src/richtext/richtextindentspage.cpp:208 #: ../src/richtext/richtextindentspage.cpp:210 #: ../src/richtext/richtextliststylepage.cpp:394 #: ../src/richtext/richtextliststylepage.cpp:396 msgid "The first line indent." msgstr "O recuo da primeira linha." #: ../src/gtk/utilsgtk.cpp:427 msgid "The following standard GTK+ options are also supported:\n" msgstr "As seguintes opções GTK+ padrão também são suportadas:\n" #: ../src/generic/fontdlgg.cpp:414 ../src/generic/fontdlgg.cpp:416 msgid "The font colour." msgstr "A cor da fonte" #: ../src/generic/fontdlgg.cpp:375 ../src/generic/fontdlgg.cpp:377 msgid "The font family." msgstr "A família da fonte" #: ../src/richtext/richtextsymboldlg.cpp:405 #: ../src/richtext/richtextsymboldlg.cpp:407 msgid "The font from which to take the symbol." msgstr "A fonte da qual tomar o símbolo." #: ../src/generic/fontdlgg.cpp:427 ../src/generic/fontdlgg.cpp:429 #: ../src/generic/fontdlgg.cpp:434 ../src/generic/fontdlgg.cpp:436 msgid "The font point size." msgstr "O tamanho do ponto da fonte." #: ../src/osx/carbon/fontdlg.cpp:529 ../src/osx/carbon/fontdlg.cpp:531 msgid "The font size in points." msgstr "O tamanho da fonte em pontos." #: ../src/richtext/richtextfontpage.cpp:190 #: ../src/richtext/richtextfontpage.cpp:192 msgid "The font size units, points or pixels." msgstr "As unidades de tamanho da fonte, pontos ou pixels." #: ../src/generic/fontdlgg.cpp:386 ../src/generic/fontdlgg.cpp:388 msgid "The font style." msgstr "O estilo da fonte." #: ../src/generic/fontdlgg.cpp:397 ../src/generic/fontdlgg.cpp:399 msgid "The font weight." msgstr "O peso da fonte." #: ../src/common/docview.cpp:1465 #, c-format msgid "The format of file '%s' couldn't be determined." msgstr "O formato do arquivo '%s' não pôde ser determinado." #: ../src/richtext/richtextindentspage.cpp:199 #: ../src/richtext/richtextindentspage.cpp:201 #: ../src/richtext/richtextliststylepage.cpp:385 #: ../src/richtext/richtextliststylepage.cpp:387 msgid "The left indent." msgstr "O recuo a esquerda." #: ../src/richtext/richtextmarginspage.cpp:195 #: ../src/richtext/richtextmarginspage.cpp:197 msgid "The left margin size." msgstr "O tamanho da margem esquerda." #: ../src/richtext/richtextmarginspage.cpp:309 #: ../src/richtext/richtextmarginspage.cpp:311 msgid "The left padding size." msgstr "O tamanho do enchimento a esquerda." #: ../src/richtext/richtextsizepage.cpp:534 #: ../src/richtext/richtextsizepage.cpp:536 #: ../src/richtext/richtextsizepage.cpp:548 #: ../src/richtext/richtextsizepage.cpp:550 msgid "The left position." msgstr "A posição da esquerda." #: ../src/richtext/richtextindentspage.cpp:288 #: ../src/richtext/richtextindentspage.cpp:290 #: ../src/richtext/richtextliststylepage.cpp:462 #: ../src/richtext/richtextliststylepage.cpp:464 msgid "The line spacing." msgstr "O espaçamento entre linhas." #: ../src/richtext/richtextbulletspage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:270 msgid "The list item number." msgstr "O número do item da lista." #: ../src/msw/ole/automtn.cpp:653 msgid "The locale ID is unknown." msgstr "A ID local é desconhecida." #: ../src/richtext/richtextsizepage.cpp:366 #: ../src/richtext/richtextsizepage.cpp:368 msgid "The object height." msgstr "A altura do objeto." #: ../src/richtext/richtextsizepage.cpp:474 #: ../src/richtext/richtextsizepage.cpp:476 msgid "The object maximum height." msgstr "A altura máxima do objeto." #: ../src/richtext/richtextsizepage.cpp:447 #: ../src/richtext/richtextsizepage.cpp:449 msgid "The object maximum width." msgstr "A largura máxima do objeto." #: ../src/richtext/richtextsizepage.cpp:420 #: ../src/richtext/richtextsizepage.cpp:422 msgid "The object minimum height." msgstr "A altura mínima do objeto." #: ../src/richtext/richtextsizepage.cpp:393 #: ../src/richtext/richtextsizepage.cpp:395 msgid "The object minimum width." msgstr "A largura mínima do objeto." #: ../src/richtext/richtextsizepage.cpp:332 #: ../src/richtext/richtextsizepage.cpp:334 msgid "The object width." msgstr "A largura do objeto." #: ../src/richtext/richtextindentspage.cpp:227 #: ../src/richtext/richtextindentspage.cpp:229 msgid "The outline level." msgstr "O nível do contorno." #: ../src/common/log.cpp:281 #, c-format msgid "The previous message repeated %lu time." msgid_plural "The previous message repeated %lu times." msgstr[0] "A mensagem anterior repetida uma vez." msgstr[1] "A mensagem anterior repetida %lu vezes" #: ../src/common/log.cpp:274 msgid "The previous message repeated once." msgstr "A mensagem anterior repetida uma vez." #: ../src/gtk/print.cpp:931 ../src/gtk/print.cpp:1114 msgid "The print dialog returned an error." msgstr "O diálogo da impressão retornou um erro." #: ../src/richtext/richtextsymboldlg.cpp:462 #: ../src/richtext/richtextsymboldlg.cpp:464 msgid "The range to show." msgstr "O alcance a mostrar." #: ../src/generic/dbgrptg.cpp:322 msgid "" "The report contains the files listed below. If any of these files contain " "private information,\n" "please uncheck them and they will be removed from the report.\n" msgstr "" "O relatório contém os arquivos listados abaixo. Se alguns destes arquivos " "contém informação privada,\n" "por favor desmarque-os e eles serão removidos do relatório.\n" #: ../src/common/cmdline.cpp:1083 #, c-format msgid "The required parameter '%s' was not specified." msgstr "O parâmetro requerido '%s' não foi especificado." #: ../src/richtext/richtextindentspage.cpp:217 #: ../src/richtext/richtextindentspage.cpp:219 #: ../src/richtext/richtextliststylepage.cpp:403 #: ../src/richtext/richtextliststylepage.cpp:405 msgid "The right indent." msgstr "O recuo a direita." #: ../src/richtext/richtextmarginspage.cpp:220 #: ../src/richtext/richtextmarginspage.cpp:222 msgid "The right margin size." msgstr "O tamanho da margem a direita." #: ../src/richtext/richtextmarginspage.cpp:334 #: ../src/richtext/richtextmarginspage.cpp:336 msgid "The right padding size." msgstr "O tamanho do enchimento a direita." #: ../src/richtext/richtextsizepage.cpp:604 #: ../src/richtext/richtextsizepage.cpp:606 #: ../src/richtext/richtextsizepage.cpp:618 #: ../src/richtext/richtextsizepage.cpp:620 msgid "The right position." msgstr "A posição da direta." #: ../src/richtext/richtextindentspage.cpp:267 #: ../src/richtext/richtextliststylepage.cpp:439 #: ../src/richtext/richtextliststylepage.cpp:441 msgid "The spacing after the paragraph." msgstr "O espaçamento após o parágrafo." #: ../src/richtext/richtextindentspage.cpp:257 #: ../src/richtext/richtextindentspage.cpp:259 #: ../src/richtext/richtextliststylepage.cpp:430 #: ../src/richtext/richtextliststylepage.cpp:432 msgid "The spacing before the paragraph." msgstr "O espaçamento antes do parágrafo." #: ../src/richtext/richtextstylepage.cpp:108 #: ../src/richtext/richtextstylepage.cpp:110 msgid "The style name." msgstr "O nome do estilo." #: ../src/richtext/richtextstylepage.cpp:118 #: ../src/richtext/richtextstylepage.cpp:120 msgid "The style on which this style is based." msgstr "O estilo no qual este estilo é baseado." #: ../src/richtext/richtextstyledlg.cpp:214 #: ../src/richtext/richtextstyledlg.cpp:216 msgid "The style preview." msgstr "A pré-visualização do estilo." #: ../src/msw/ole/automtn.cpp:669 msgid "The system cannot find the file specified." msgstr "O sistema não consegue acessar o arquivo especificado." #: ../src/richtext/richtexttabspage.cpp:118 #: ../src/richtext/richtexttabspage.cpp:120 msgid "The tab position." msgstr "A posição da aba." #: ../src/richtext/richtexttabspage.cpp:124 msgid "The tab positions." msgstr "As posições das abas." #: ../src/richtext/richtextctrl.cpp:2705 msgid "The text couldn't be saved." msgstr "O texto não pôde ser salvo." #: ../src/richtext/richtextmarginspage.cpp:243 #: ../src/richtext/richtextmarginspage.cpp:245 msgid "The top margin size." msgstr "O tamanho da margem do topo." #: ../src/richtext/richtextmarginspage.cpp:357 #: ../src/richtext/richtextmarginspage.cpp:359 msgid "The top padding size." msgstr "O tamanho do enchimento do topo." #: ../src/richtext/richtextsizepage.cpp:569 #: ../src/richtext/richtextsizepage.cpp:571 #: ../src/richtext/richtextsizepage.cpp:583 #: ../src/richtext/richtextsizepage.cpp:585 msgid "The top position." msgstr "A posição do topo." #: ../src/common/cmdline.cpp:1061 #, c-format msgid "The value for the option '%s' must be specified." msgstr "O valor para a opção '%s' deve ser especificado." #: ../src/msw/dialup.cpp:452 #, c-format msgid "" "The version of remote access service (RAS) installed on this machine is too " "old, please upgrade (the following required function is missing: %s)." msgstr "" "A versão do serviço de acesso remoto (RAS) instalado nesta máquina é muito " "antiga, por favor atualize (a seguinte função requerida está desaparecida: " "%s)." #: ../src/gtk/print.cpp:959 msgid "The wxGtkPrinterDC cannot be used." msgstr "O wxGtkPrinterDC não pode ser usado." #: ../src/osx/carbon/dataview.cpp:1340 msgid "There is no column or renderer for the specified column index." msgstr "Não há coluna ou renderizador para o índice da coluna especificado." #: ../src/richtext/richtextprint.cpp:614 ../src/html/htmprint.cpp:735 msgid "" "There was a problem during page setup: you may need to set a default printer." msgstr "" "Houve um problema durante a configuração da página: talvez você precise " "definir uma impressora padrão." #: ../src/html/htmprint.cpp:255 msgid "" "This document doesn't fit on the page horizontally and will be truncated " "when it is printed." msgstr "" "Este documento não se encaixa na página horizontalmente e será truncado " "quando for impresso." #: ../src/common/image.cpp:2716 #, c-format msgid "This is not a %s." msgstr "Isto não é um %s." #: ../src/common/wincmn.cpp:1653 msgid "This platform does not support background transparency." msgstr "Esta plataforma não suporta transparência de fundo." #: ../src/gtk/window.cpp:4317 msgid "" "This program was compiled with a too old version of GTK+, please rebuild " "with GTK+ 2.12 or newer." msgstr "" "Este programa foi compilado com uma versão muito velha do GTK+, por favor " "reconstrua com GTK+ 2.12 ou mais novo." #: ../src/msw/datecontrols.cpp:59 msgid "" "This system doesn't support date controls, please upgrade your version of " "comctl32.dll" msgstr "" "Este sistema não suporta os controles de data, por favor atualize sua versão " "do comctl32.dll" #: ../src/msw/thread.cpp:1300 msgid "" "Thread module initialization failed: cannot store value in thread local " "storage" msgstr "" "O módulo de inicialização do thread falhou: não pôde armazenar o valor no " "armazém local do thread" #: ../src/unix/threadpsx.cpp:1758 msgid "Thread module initialization failed: failed to create thread key" msgstr "" "A inicialização do módulo dos threads falhou: falhou em criar a chave do " "thread" #: ../src/msw/thread.cpp:1288 msgid "" "Thread module initialization failed: impossible to allocate index in thread " "local storage" msgstr "" "A inicialização do módulo dos threads falhou: impossível distribuir o índice " "no armazém local dos threads" #: ../src/unix/threadpsx.cpp:1038 msgid "Thread priority setting is ignored." msgstr "A configuração da prioridade do thread é ignorada." #: ../src/msw/mdi.cpp:172 msgid "Tile &Horizontally" msgstr "Lado a Lado &Horizontalmente" #: ../src/msw/mdi.cpp:173 msgid "Tile &Vertically" msgstr "Lado a Lado &Verticalmente" #: ../src/common/ftp.cpp:202 msgid "Timeout while waiting for FTP server to connect, try passive mode." msgstr "" "Tempo para esgotar enquanto espera o servidor FTP se conectar, tente o modo " "passivo." #: ../src/os2/timer.cpp:99 msgid "Timer creation failed." msgstr "A criação do timer falhou." #: ../src/generic/tipdlg.cpp:220 msgid "Tip of the Day" msgstr "Dica do Dia" #: ../src/generic/tipdlg.cpp:154 msgid "Tips not available, sorry!" msgstr "Dicas não disponíveis, lamento!" #: ../src/generic/prntdlgg.cpp:242 msgid "To:" msgstr "Para:" #: ../src/osx/carbon/dataview.cpp:2451 msgid "Toggle renderer cannot render value; value type: " msgstr "O renderizador ativado não pode renderizar o valor; tipo de valor:" #: ../src/richtext/richtextbuffer.cpp:7983 msgid "Too many EndStyle calls!" msgstr "Chamadas demais ao EndStyle!" #: ../src/common/imagpng.cpp:286 msgid "Too many colours in PNG, the image may be slightly blurred." msgstr "Cores demais no PNG; a imagem pode ficar levemente borrada." #: ../src/richtext/richtextsizepage.cpp:286 #: ../src/richtext/richtextsizepage.cpp:290 ../src/common/stockitem.cpp:200 msgid "Top" msgstr "Topo" #: ../src/generic/prntdlgg.cpp:881 msgid "Top margin (mm):" msgstr "Margem superior (mm):" #: ../src/generic/aboutdlgg.cpp:79 msgid "Translations by " msgstr "Traduções de" #: ../src/generic/aboutdlgg.cpp:188 msgid "Translators" msgstr "Tradutores" #: ../src/propgrid/propgrid.cpp:173 msgid "True" msgstr "Verdadeiro" #: ../src/common/fs_mem.cpp:227 #, c-format msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!" msgstr "" "Tentando remover o arquivo '%s' da memória VFS, mas ele não está carregado!" #: ../src/common/fmapbase.cpp:156 msgid "Turkish (ISO-8859-9)" msgstr "Turco (ISO-8859-9)" #: ../src/generic/filectrlg.cpp:461 msgid "Type" msgstr "Tipo" #: ../src/richtext/richtextfontpage.cpp:160 #: ../src/richtext/richtextfontpage.cpp:162 msgid "Type a font name." msgstr "Digite um nome de fonte." #: ../src/richtext/richtextfontpage.cpp:175 #: ../src/richtext/richtextfontpage.cpp:177 msgid "Type a size in points." msgstr "Digite um tamanho em pontos." #: ../src/msw/ole/automtn.cpp:665 #, c-format msgid "Type mismatch in argument %u." msgstr "Mal combinação do tipo no argumento %u." #: ../src/common/xtixml.cpp:356 ../src/common/xtixml.cpp:509 #: ../src/common/xtistrm.cpp:322 msgid "Type must have enum - long conversion" msgstr "O tipo precisa ter conversão enum - long" #: ../src/propgrid/propgridiface.cpp:382 #, c-format msgid "" "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", NOT " "\"%s\"." msgstr "" "A operação do tipo \"%s\" falhou: A propriedade rotulada \"%s\" é do tipo " "\"%s\", NÃO \"%s\"." #: ../src/common/accelcmn.cpp:58 msgid "UP" msgstr "UP" #: ../src/common/paper.cpp:134 msgid "US Std Fanfold, 14 7/8 x 11 in" msgstr "Fanfold Std US, 14 7/8 x 11 em" #: ../src/common/fmapbase.cpp:196 msgid "US-ASCII" msgstr "US-ASCII" #: ../src/unix/fswatcher_inotify.cpp:109 msgid "Unable to add inotify watch" msgstr "Incapaz de adicionar a observação inotify" #: ../src/unix/fswatcher_kqueue.cpp:136 msgid "Unable to add kqueue watch" msgstr "Incapaz de adicionar a observação kqueue" #: ../include/wx/msw/private/fswatcher.h:142 msgid "Unable to associate handle with I/O completion port" msgstr "Incapaz de associar o manejar com a porta de término de E/S" #: ../include/wx/msw/private/fswatcher.h:125 msgid "Unable to close I/O completion port handle" msgstr "Incapaz de fechar o manejamento do término da porta de E/S" #: ../src/unix/fswatcher_inotify.cpp:97 msgid "Unable to close inotify instance" msgstr "Incapaz de fechar a instância inotify" #: ../include/wx/unix/private/fswatcher_kqueue.h:74 #, c-format msgid "Unable to close path '%s'" msgstr "Incapaz de fechar o caminho '%s'" #: ../include/wx/msw/private/fswatcher.h:48 #, c-format msgid "Unable to close the handle for '%s'" msgstr "Incapaz de fechar o manejamento para '%s'" #: ../include/wx/msw/private/fswatcher.h:240 msgid "Unable to create I/O completion port" msgstr "Incapaz de criar a porta do término da E/S" #: ../src/msw/fswatcher.cpp:84 msgid "Unable to create IOCP worker thread" msgstr "Incapaz de criar o thread do trabalhador IOCP" #: ../src/unix/fswatcher_inotify.cpp:74 msgid "Unable to create inotify instance" msgstr "Incapaz de criar a instância inotify" #: ../src/unix/fswatcher_kqueue.cpp:97 msgid "Unable to create kqueue instance" msgstr "Incapaz de criar a instância kqueue" #: ../include/wx/msw/private/fswatcher.h:229 msgid "Unable to dequeue completion packet" msgstr "Incapaz de tirar da fila o pacote de término" #: ../src/unix/fswatcher_kqueue.cpp:185 msgid "Unable to get events from kqueue" msgstr "Incapaz de obter eventos do kqueue" #: ../src/osx/carbon/dataview.cpp:1903 msgid "Unable to handle native drag&drop data" msgstr "Incapaz de manejar dados arrastar&soltar nativos" #: ../src/gtk/app.cpp:439 msgid "Unable to initialize GTK+, is DISPLAY set properly?" msgstr "" "Incapaz de inicializar o GTK+, o DISPLAY está configurado apropriadamente?" #: ../src/gtk/app.cpp:276 msgid "Unable to initialize Hildon program" msgstr "Incapaz de inicializar o programa Hildon" #: ../include/wx/unix/private/fswatcher_kqueue.h:57 #, c-format msgid "Unable to open path '%s'" msgstr "Incapaz de abrir o caminho '%s'" #: ../src/html/htmlwin.cpp:561 #, c-format msgid "Unable to open requested HTML document: %s" msgstr "Incapaz de abrir o documento HTML pedido: %s" #: ../src/unix/sound.cpp:368 msgid "Unable to play sound asynchronously." msgstr "Incapaz de reproduzir o som de forma assíncrona." #: ../include/wx/msw/private/fswatcher.h:207 msgid "Unable to post completion status" msgstr "Incapaz de postar o status do término" #: ../src/unix/fswatcher_inotify.cpp:530 msgid "Unable to read from inotify descriptor" msgstr "Incapaz de ler do descritor inotify" #: ../src/unix/fswatcher_inotify.cpp:132 msgid "Unable to remove inotify watch" msgstr "Incapaz de remover a observação inotify" #: ../src/unix/fswatcher_kqueue.cpp:153 msgid "Unable to remove kqueue watch" msgstr "Incapaz de removar a observação kqueue" #: ../src/msw/fswatcher.cpp:168 #, c-format msgid "Unable to set up watch for '%s'" msgstr "Incapaz de configurar a observação para '%s'" #: ../src/msw/fswatcher.cpp:91 msgid "Unable to start IOCP worker thread" msgstr "Incapaz de iniciar o thread do trabalhador IOCP" #: ../src/common/stockitem.cpp:201 msgid "Undelete" msgstr "Restaurar" #: ../src/common/stockitem.cpp:202 msgid "Underline" msgstr "Sublinhar" #: ../src/richtext/richtextfontpage.cpp:341 ../src/osx/carbon/fontdlg.cpp:556 #: ../src/propgrid/advprops.cpp:655 msgid "Underlined" msgstr "&Sublinhado" #: ../src/common/stockitem.cpp:203 ../src/stc/stc_i18n.cpp:15 msgid "Undo" msgstr "Desfazer" #: ../src/common/stockitem.cpp:265 msgid "Undo last action" msgstr "Desfazer a última ação" #: ../src/common/cmdline.cpp:864 #, c-format msgid "Unexpected characters following option '%s'." msgstr "Caracteres inexperados seguindo a opção '%s'." #: ../src/unix/fswatcher_inotify.cpp:261 #, c-format msgid "Unexpected event for \"%s\": no matching watch descriptor." msgstr "" "Evento inesperado para \"%s\": sem descritor de observação que combine." #: ../src/common/cmdline.cpp:1024 #, c-format msgid "Unexpected parameter '%s'" msgstr "Parâmetro '%s' inexperado" #: ../include/wx/msw/private/fswatcher.h:148 msgid "Unexpectedly new I/O completion port was created" msgstr "Inesperadamente a nova porta do término de E/S foi criada" #: ../src/msw/fswatcher.cpp:70 msgid "Ungraceful worker thread termination" msgstr "Término do thread do trabalhador não grato" #: ../src/richtext/richtextsymboldlg.cpp:459 #: ../src/richtext/richtextsymboldlg.cpp:460 #: ../src/richtext/richtextsymboldlg.cpp:461 msgid "Unicode" msgstr "Unicode" #: ../src/common/fmapbase.cpp:185 ../src/common/fmapbase.cpp:191 msgid "Unicode 16 bit (UTF-16)" msgstr "Unicode 16 bits (UTF-16)" #: ../src/common/fmapbase.cpp:190 msgid "Unicode 16 bit Big Endian (UTF-16BE)" msgstr "Unicode 16 bits Big Endian (UTF-16BE)" #: ../src/common/fmapbase.cpp:186 msgid "Unicode 16 bit Little Endian (UTF-16LE)" msgstr "Unicode 16 bits Little Endian (UTF-16LE)" #: ../src/common/fmapbase.cpp:187 ../src/common/fmapbase.cpp:193 msgid "Unicode 32 bit (UTF-32)" msgstr "Unicode 32 bits (UTF-32)" #: ../src/common/fmapbase.cpp:192 msgid "Unicode 32 bit Big Endian (UTF-32BE)" msgstr "Unicode 32 bits Big Endian (UTF-32BE)" #: ../src/common/fmapbase.cpp:188 msgid "Unicode 32 bit Little Endian (UTF-32LE)" msgstr "Unicode 32 bits Little Endian (UTF-32LE)" #: ../src/common/fmapbase.cpp:182 msgid "Unicode 7 bit (UTF-7)" msgstr "Unicode 7 bits (UTF-7)" #: ../src/common/fmapbase.cpp:183 msgid "Unicode 8 bit (UTF-8)" msgstr "Unicode 8 bits (UTF-8)" #: ../src/common/stockitem.cpp:204 msgid "Unindent" msgstr "Sem parágrafo" #: ../src/richtext/richtextborderspage.cpp:373 #: ../src/richtext/richtextborderspage.cpp:375 msgid "Units for the bottom border width." msgstr "Unidades para a largura da borda da parte de baixo." #: ../src/richtext/richtextmarginspage.cpp:278 #: ../src/richtext/richtextmarginspage.cpp:280 msgid "Units for the bottom margin." msgstr "Unidades para a margem do fundo." #: ../src/richtext/richtextborderspage.cpp:517 #: ../src/richtext/richtextborderspage.cpp:519 msgid "Units for the bottom outline width." msgstr "Unidades para a largura do contorno do fundo." #: ../src/richtext/richtextmarginspage.cpp:392 #: ../src/richtext/richtextmarginspage.cpp:394 msgid "Units for the bottom padding." msgstr "Unidades para o enchimento do fundo." #: ../src/richtext/richtextsizepage.cpp:664 #: ../src/richtext/richtextsizepage.cpp:666 msgid "Units for the bottom position." msgstr "Unidades para a posição do rodapé." #: ../src/richtext/richtextborderspage.cpp:283 #: ../src/richtext/richtextborderspage.cpp:285 msgid "Units for the left border width." msgstr "Unidades para a largura da borda a esquerda." #: ../src/richtext/richtextmarginspage.cpp:205 #: ../src/richtext/richtextmarginspage.cpp:207 msgid "Units for the left margin." msgstr "Unidades para a margem esquerda." #: ../src/richtext/richtextborderspage.cpp:427 #: ../src/richtext/richtextborderspage.cpp:429 msgid "Units for the left outline width." msgstr "Unidades para a largura do contorno a esquerda." #: ../src/richtext/richtextmarginspage.cpp:319 #: ../src/richtext/richtextmarginspage.cpp:321 msgid "Units for the left padding." msgstr "Unidades para o enchimento a esquerda." #: ../src/richtext/richtextsizepage.cpp:559 #: ../src/richtext/richtextsizepage.cpp:561 msgid "Units for the left position." msgstr "Unidades para a posição da esquerda." #: ../src/richtext/richtextsizepage.cpp:485 #: ../src/richtext/richtextsizepage.cpp:487 msgid "Units for the maximum object height." msgstr "Unidades para a altura máxima do objeto." #: ../src/richtext/richtextsizepage.cpp:458 #: ../src/richtext/richtextsizepage.cpp:460 msgid "Units for the maximum object width." msgstr "Unidades para a largura máxima do objeto." #: ../src/richtext/richtextsizepage.cpp:431 #: ../src/richtext/richtextsizepage.cpp:433 msgid "Units for the minimum object height." msgstr "Unidades para a altura mínima do objeto." #: ../src/richtext/richtextsizepage.cpp:404 #: ../src/richtext/richtextsizepage.cpp:406 msgid "Units for the minimum object width." msgstr "Unidades para a largura mínima do objeto." #: ../src/richtext/richtextsizepage.cpp:377 #: ../src/richtext/richtextsizepage.cpp:379 msgid "Units for the object height." msgstr "Unidades para a altura do objeto." #: ../src/richtext/richtextsizepage.cpp:343 #: ../src/richtext/richtextsizepage.cpp:345 msgid "Units for the object width." msgstr "Unidades para a largura do objeto." #: ../src/richtext/richtextborderspage.cpp:313 #: ../src/richtext/richtextborderspage.cpp:315 msgid "Units for the right border width." msgstr "Unidades para a largura da borda a direita." #: ../src/richtext/richtextmarginspage.cpp:230 #: ../src/richtext/richtextmarginspage.cpp:232 msgid "Units for the right margin." msgstr "Unidades para a margem a direita." #: ../src/richtext/richtextborderspage.cpp:457 #: ../src/richtext/richtextborderspage.cpp:459 msgid "Units for the right outline width." msgstr "Unidades para a largura do contorno a direita." #: ../src/richtext/richtextmarginspage.cpp:344 #: ../src/richtext/richtextmarginspage.cpp:346 msgid "Units for the right padding." msgstr "Unidades para o enchimento a direita." #: ../src/richtext/richtextsizepage.cpp:629 #: ../src/richtext/richtextsizepage.cpp:631 msgid "Units for the right position." msgstr "Unidades para a posição da direita." #: ../src/richtext/richtextborderspage.cpp:343 #: ../src/richtext/richtextborderspage.cpp:345 msgid "Units for the top border width." msgstr "Unidades para a largura da borda do topo." #: ../src/richtext/richtextmarginspage.cpp:253 #: ../src/richtext/richtextmarginspage.cpp:255 msgid "Units for the top margin." msgstr "Unidades para a margem do topo." #: ../src/richtext/richtextborderspage.cpp:487 #: ../src/richtext/richtextborderspage.cpp:489 msgid "Units for the top outline width." msgstr "Unidades para a largura do contorno do topo." #: ../src/richtext/richtextmarginspage.cpp:367 #: ../src/richtext/richtextmarginspage.cpp:369 msgid "Units for the top padding." msgstr "Unidades para o enchimento do topo." #: ../src/richtext/richtextsizepage.cpp:594 #: ../src/richtext/richtextsizepage.cpp:596 msgid "Units for the top position." msgstr "Unidades para a posição do topo." #: ../src/generic/progdlgg.cpp:382 ../src/generic/progdlgg.cpp:655 msgid "Unknown" msgstr "Desconhecido" #: ../src/msw/dde.cpp:1177 #, c-format msgid "Unknown DDE error %08x" msgstr "Erro DDE desconhecido %08x" #: ../src/common/xtistrm.cpp:414 msgid "Unknown Object passed to GetObjectClassInfo" msgstr "Objeto Desconhecido passado para o GetObjectClassInfo" #: ../src/common/imagpng.cpp:614 #, c-format msgid "Unknown PNG resolution unit %d" msgstr "Unidade de resolução PNG %d desconhecida" #: ../src/common/xtixml.cpp:327 #, c-format msgid "Unknown Property %s" msgstr "Propriedade %s Desconhecida" #: ../src/common/imagtiff.cpp:532 #, c-format msgid "Unknown TIFF resolution unit %d ignored" msgstr "Unidade de resolução TIFF desconhecida %d ignorada" #: ../src/osx/carbon/dataview.cpp:1978 msgid "Unknown data format" msgstr "Formato dos dados desconhecido" #: ../src/unix/dlunix.cpp:325 msgid "Unknown dynamic library error" msgstr "Erro da biblioteca dinâmica desconhecido" #: ../src/common/fmapbase.cpp:810 #, c-format msgid "Unknown encoding (%d)" msgstr "Codificação desconhecida (%d)" #: ../src/msw/ole/automtn.cpp:677 #, c-format msgid "Unknown error %08x" msgstr "Erro %08x desconhecido" #: ../src/msw/ole/automtn.cpp:636 msgid "Unknown exception" msgstr "Exceção desconhecida" #: ../src/common/image.cpp:2701 msgid "Unknown image data format." msgstr "Formato dos dados da imagem desconhecido." #: ../src/common/cmdline.cpp:749 #, c-format msgid "Unknown long option '%s'" msgstr "Opção longa '%s' desconhecida" #: ../src/msw/ole/automtn.cpp:620 msgid "Unknown name or named argument." msgstr "Nome desconhecido ou argumento desconhecido." #: ../src/common/cmdline.cpp:764 ../src/common/cmdline.cpp:786 #, c-format msgid "Unknown option '%s'" msgstr "Opção '%s' desconhecida" #: ../src/common/mimecmn.cpp:230 #, c-format msgid "Unmatched '{' in an entry for mime type %s." msgstr "Não combinada '{' em uma entrada para o tipo mime %s." #: ../src/common/cmdproc.cpp:262 ../src/common/cmdproc.cpp:288 #: ../src/common/cmdproc.cpp:308 msgid "Unnamed command" msgstr "Comando sem nome" #: ../src/propgrid/propgrid.cpp:398 msgid "Unspecified" msgstr "Não especificado" #: ../src/msw/clipbrd.cpp:271 ../src/msw/clipbrd.cpp:439 msgid "Unsupported clipboard format." msgstr "Formato da área de transferência não suportado." #: ../src/common/appcmn.cpp:249 #, c-format msgid "Unsupported theme '%s'." msgstr "Tema '%s' não suportado" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:205 msgid "Up" msgstr "Para cima" #: ../src/richtext/richtextliststylepage.cpp:483 #: ../src/richtext/richtextbulletspage.cpp:288 msgid "Upper case letters" msgstr "Letras maiúsculas" #: ../src/richtext/richtextliststylepage.cpp:485 #: ../src/richtext/richtextbulletspage.cpp:290 msgid "Upper case roman numerals" msgstr "Numerais romanos maiúsculos" #: ../src/common/cmdline.cpp:1155 #, c-format msgid "Usage: %s" msgstr "Uso: %s" #: ../src/richtext/richtextindentspage.cpp:169 #: ../src/richtext/richtextindentspage.cpp:171 #: ../src/richtext/richtextliststylepage.cpp:358 #: ../src/richtext/richtextliststylepage.cpp:360 msgid "Use the current alignment setting." msgstr "Usar a configuração de alinhamento atual." #: ../src/osx/carbon/dataview.cpp:2658 ../src/osx/carbon/dataview.cpp:2723 msgid "Valid pointer to native data view control does not exist" msgstr "" "Ponteiro válido para o controle de visualização dos dados nativos não existe" #: ../src/common/valtext.cpp:174 msgid "Validation conflict" msgstr "Conflito de validação" #: ../src/propgrid/manager.cpp:238 msgid "Value" msgstr "Valor" #: ../src/propgrid/props.cpp:384 #, c-format msgid "Value must be %s or higher." msgstr "O valor deve ser %s ou maior." #: ../src/propgrid/props.cpp:411 #, c-format msgid "Value must be %s or less." msgstr "O valor deve ser %s ou menor." #: ../src/propgrid/props.cpp:388 ../src/propgrid/props.cpp:415 #, c-format msgid "Value must be between %s and %s." msgstr "O valor deve estar entre %s e %s." #: ../src/generic/aboutdlgg.cpp:128 msgid "Version " msgstr "Versão" #: ../src/richtext/richtextsizepage.cpp:291 #: ../src/richtext/richtextsizepage.cpp:293 msgid "Vertical alignment." msgstr "Alinhamento vertical." #: ../src/generic/filedlgg.cpp:216 msgid "View files as a detailed view" msgstr "Visualizar osr arquivos em uma visualização detalhada" #: ../src/generic/filedlgg.cpp:214 msgid "View files as a list view" msgstr "Visualizar os arquivos em uma visualização de listas" #: ../src/common/docview.cpp:1952 msgid "Views" msgstr "Visualizações" #: ../src/common/accelcmn.cpp:108 msgid "WINDOWS_LEFT" msgstr "WINDOWS_LEFT" #: ../src/common/accelcmn.cpp:110 msgid "WINDOWS_MENU" msgstr "WINDOWS_MENU" #: ../src/common/accelcmn.cpp:109 msgid "WINDOWS_RIGHT" msgstr "WINDOWS_RIGHT" #: ../src/unix/epolldispatcher.cpp:213 #, c-format msgid "Waiting for IO on epoll descriptor %d failed" msgstr "Esperando pelo IO no descritor epoll %d falhou" #: ../src/common/log.cpp:227 msgid "Warning: " msgstr "Aviso: " #: ../src/propgrid/advprops.cpp:651 msgid "Weight" msgstr "Peso" #: ../src/common/fmapbase.cpp:148 msgid "Western European (ISO-8859-1)" msgstr "Europeu Ocidental (ISO-8859-1)" #: ../src/common/fmapbase.cpp:162 msgid "Western European with Euro (ISO-8859-15)" msgstr "Europeu Ocidental com Euro (ISO-8859-15)" #: ../src/generic/fontdlgg.cpp:446 ../src/generic/fontdlgg.cpp:448 msgid "Whether the font is underlined." msgstr "Se a fonte está sublinhada." #: ../src/generic/fdrepdlg.cpp:144 msgid "Whole word" msgstr "Palavra inteira" #: ../src/html/helpwnd.cpp:547 msgid "Whole words only" msgstr "Apenas palavras inteiras" #: ../src/univ/themes/win32.cpp:1102 msgid "Win32 theme" msgstr "Tema Win32" #: ../src/msw/utils.cpp:1220 msgid "Win32s on Windows 3.1" msgstr "Win32s no Windows 3.1" #: ../src/msw/utils.cpp:1270 msgid "Windows 2000" msgstr "Windows 2000" #: ../src/msw/utils.cpp:1302 msgid "Windows 7" msgstr "Windows 7" #: ../src/msw/utils.cpp:1234 msgid "Windows 95" msgstr "Windows 95" #: ../src/msw/utils.cpp:1230 msgid "Windows 95 OSR2" msgstr "Windows 95 OSR2" #: ../src/msw/utils.cpp:1245 msgid "Windows 98" msgstr "Windows 98" #: ../src/msw/utils.cpp:1241 msgid "Windows 98 SE" msgstr "Windows 98 SE" #: ../src/msw/utils.cpp:1252 #, c-format msgid "Windows 9x (%d.%d)" msgstr "Windows 9x (%d %d)" #: ../src/common/fmapbase.cpp:177 msgid "Windows Arabic (CP 1256)" msgstr "Windows Árabe (CP 1256)" #: ../src/common/fmapbase.cpp:178 msgid "Windows Baltic (CP 1257)" msgstr "Windows Báltico (CP 1257)" #: ../src/msw/utils.cpp:1214 #, c-format msgid "Windows CE (%d.%d)" msgstr "Windows CE (%d %d)" #: ../src/common/fmapbase.cpp:171 msgid "Windows Central European (CP 1250)" msgstr "Windows Europeu Central (CP 1250)" #: ../src/common/fmapbase.cpp:168 msgid "Windows Chinese Simplified (CP 936) or GB-2312" msgstr "Windows Chinês Simplificado (CP 936) ou GB-2312" #: ../src/common/fmapbase.cpp:170 msgid "Windows Chinese Traditional (CP 950) or Big-5" msgstr "Windows Chinês Tradicional (CP 950) ou Big-5" #: ../src/common/fmapbase.cpp:172 msgid "Windows Cyrillic (CP 1251)" msgstr "Windows Cirílico (CP 1251)" #: ../src/common/fmapbase.cpp:174 msgid "Windows Greek (CP 1253)" msgstr "Windows Grego (CP 1253)" #: ../src/common/fmapbase.cpp:176 msgid "Windows Hebrew (CP 1255)" msgstr "Windows Hebraico (CP 1255)" #: ../src/common/fmapbase.cpp:167 msgid "Windows Japanese (CP 932) or Shift-JIS" msgstr "Windows Japonês (CP 932) ou Shift-JIS" #: ../src/common/fmapbase.cpp:180 msgid "Windows Johab (CP 1361)" msgstr "Windows Johab (CP 1361)" #: ../src/common/fmapbase.cpp:169 msgid "Windows Korean (CP 949)" msgstr "Windows Coreano (CP 949)" #: ../src/msw/utils.cpp:1249 msgid "Windows ME" msgstr "Windows ME" #: ../src/msw/utils.cpp:1310 #, c-format msgid "Windows NT %lu.%lu" msgstr "Windows NT %lu.%lu" #: ../src/msw/utils.cpp:1279 msgid "Windows Server 2003" msgstr "Windows Server 2003" #: ../src/msw/utils.cpp:1295 msgid "Windows Server 2008" msgstr "Windows Server 2008" #: ../src/msw/utils.cpp:1301 msgid "Windows Server 2008 R2" msgstr "Windows Server 2008 R2" #: ../src/common/fmapbase.cpp:166 msgid "Windows Thai (CP 874)" msgstr "Windows Tailandês (CP 874)" #: ../src/common/fmapbase.cpp:175 msgid "Windows Turkish (CP 1254)" msgstr "Windows Turco (CP 1254)" #: ../src/common/fmapbase.cpp:179 msgid "Windows Vietnamese (CP 1258)" msgstr "Windows Vietnamita (CP 1258)" #: ../src/msw/utils.cpp:1296 msgid "Windows Vista" msgstr "Windows Vista" #: ../src/common/fmapbase.cpp:173 msgid "Windows Western European (CP 1252)" msgstr "Windows Europeu Ocidental (CP 1252)" #: ../src/msw/utils.cpp:1285 msgid "Windows XP" msgstr "Windows XP" #: ../src/common/fmapbase.cpp:181 msgid "Windows/DOS OEM (CP 437)" msgstr "Windows/DOS OEM (CP 437)" #: ../src/common/fmapbase.cpp:165 msgid "Windows/DOS OEM Cyrillic (CP 866)" msgstr "Windows/DOS OEM Cirílico (CP 866)" #: ../src/common/ffile.cpp:148 #, c-format msgid "Write error on file '%s'" msgstr "Erro de escrita no arquivo '%s'" #: ../src/xml/xml.cpp:844 #, c-format msgid "XML parsing error: '%s' at line %d" msgstr "Erro de análise do XML: '%s' na linha %d" #: ../src/common/xpmdecod.cpp:796 msgid "XPM: Malformed pixel data!" msgstr "XPM: Dados dos pixels mal formados!" #: ../src/common/xpmdecod.cpp:705 #, c-format msgid "XPM: incorrect colour description in line %d" msgstr "XPM: descrição da cor incorreta na linha %d!" #: ../src/common/xpmdecod.cpp:680 msgid "XPM: incorrect header format!" msgstr "XPM: formato do cabeçalho inválido!" #: ../src/common/xpmdecod.cpp:716 ../src/common/xpmdecod.cpp:725 #, c-format msgid "XPM: malformed colour definition '%s' at line %d!" msgstr "XPM: definição da cor mal formada '%s' na linha %d!" #: ../src/common/xpmdecod.cpp:755 msgid "XPM: no colors left to use for mask!" msgstr "XPM: sem cores restantes para usar para a máscara!" #: ../src/common/xpmdecod.cpp:782 #, c-format msgid "XPM: truncated image data at line %d!" msgstr "XPM: dados da imagem truncados na linha %d!" #: ../include/wx/msgdlg.h:271 ../src/common/stockitem.cpp:206 #: ../src/motif/msgdlg.cpp:196 msgid "Yes" msgstr "Sim" #: ../src/osx/carbon/overlay.cpp:155 msgid "You cannot Clear an overlay that is not inited" msgstr "Você não pode limpar um overlay que não é iniciado" #: ../src/osx/carbon/overlay.cpp:107 ../src/dfb/overlay.cpp:61 msgid "You cannot Init an overlay twice" msgstr "Você não pode iniciar um overlay duas vezes" #: ../src/generic/dirdlgg.cpp:316 msgid "You cannot add a new directory to this section." msgstr "Você não pode adicionar um novo diretório a esta seção." #: ../src/propgrid/propgrid.cpp:3258 msgid "You have entered invalid value. Press ESC to cancel editing." msgstr "Você inseriu um valor inválido. Pressione ESC pra cancelar a edição." #: ../src/common/stockitem.cpp:209 msgid "Zoom &In" msgstr "Aumentar &Zoom" #: ../src/common/stockitem.cpp:210 msgid "Zoom &Out" msgstr "Diminuir &Zoom" #: ../src/common/stockitem.cpp:209 ../src/common/prntbase.cpp:1564 msgid "Zoom In" msgstr "Aumentar Zoom" #: ../src/common/stockitem.cpp:210 ../src/common/prntbase.cpp:1550 msgid "Zoom Out" msgstr "Diminuir Zoom" #: ../src/common/stockitem.cpp:208 msgid "Zoom to &Fit" msgstr "Zoom para &Encaixar" #: ../src/common/stockitem.cpp:208 msgid "Zoom to Fit" msgstr "Zoom pra Encaixar" #: ../src/msw/dde.cpp:1144 msgid "a DDEML application has created a prolonged race condition." msgstr "um aplicativo DDEML criou uma condição de corrida prolongada." #: ../src/msw/dde.cpp:1132 msgid "" "a DDEML function was called without first calling the DdeInitialize " "function,\n" "or an invalid instance identifier\n" "was passed to a DDEML function." msgstr "" "uma função DDEML foi chamada sem primeiro chamar a função DdeInitialize,\n" "ou um identificador de instância inválido\n" "foi passado para uma função DDEML." #: ../src/msw/dde.cpp:1150 msgid "a client's attempt to establish a conversation has failed." msgstr "Uma tentativa de um cliente de estabelecer uma conversação falhou." #: ../src/msw/dde.cpp:1147 msgid "a memory allocation failed." msgstr "Uma distribuição de memória falhou." #: ../src/msw/dde.cpp:1141 msgid "a parameter failed to be validated by the DDEML." msgstr "Um parâmetro falhou em ser validado pelo DDEML." #: ../src/msw/dde.cpp:1123 msgid "a request for a synchronous advise transaction has timed out." msgstr "" "o tempo para um pedido para uma transação de recomendação síncrona se " "esgotou." #: ../src/msw/dde.cpp:1129 msgid "a request for a synchronous data transaction has timed out." msgstr "" "o tempo para um pedido para uma transação de dados síncrona se esgotou." #: ../src/msw/dde.cpp:1138 msgid "a request for a synchronous execute transaction has timed out." msgstr "" "o tempo para um pedido para uma transação de execução síncrona se esgotou." #: ../src/msw/dde.cpp:1156 msgid "a request for a synchronous poke transaction has timed out." msgstr "" "o tempo para um pedido para uma transação de empurrão síncrona se esgotou." #: ../src/msw/dde.cpp:1171 msgid "a request to end an advise transaction has timed out." msgstr "o tempo para terminar uma transação de recomendação se esgotou." #: ../src/msw/dde.cpp:1165 msgid "" "a server-side transaction was attempted on a conversation\n" "that was terminated by the client, or the server\n" "terminated before completing a transaction." msgstr "" "uma transação do lado do servidor foi tentada em uma conversação\n" "que foi terminada pelo cliente, ou o servidor\n" "terminou antes de completar uma transação." #: ../src/msw/dde.cpp:1153 msgid "a transaction failed." msgstr "um transação falhou." #: ../src/common/accelcmn.cpp:184 msgid "alt" msgstr "alt" #: ../src/msw/dde.cpp:1135 msgid "" "an application initialized as APPCLASS_MONITOR has\n" "attempted to perform a DDE transaction,\n" "or an application initialized as APPCMD_CLIENTONLY has \n" "attempted to perform server transactions." msgstr "" "um aplicativo inicializado como APPCLASS_MONITOR tentou,\n" "realizar uma transação DDE,\n" "ou um aplicativo inicializado como APPCMD_CLIENTONLY tentou \n" "realizar transações de servidor." #: ../src/msw/dde.cpp:1159 msgid "an internal call to the PostMessage function has failed. " msgstr "uma chamada interna para a função PostMessage falhou." #: ../src/msw/dde.cpp:1168 msgid "an internal error has occurred in the DDEML." msgstr "um erro interno ocorreu no DDEML." #: ../src/msw/dde.cpp:1174 msgid "" "an invalid transaction identifier was passed to a DDEML function.\n" "Once the application has returned from an XTYP_XACT_COMPLETE callback,\n" "the transaction identifier for that callback is no longer valid." msgstr "" "um identificador de transação inválido foi passado para uma função DDEML.\n" "Uma vez que o aplicativo retornou de um callback XTYP_XACT_COMPLETE,\n" "o identificador da transação para aquele callback não é mais válido." #: ../src/common/zipstrm.cpp:1272 msgid "assuming this is a multi-part zip concatenated" msgstr "assumindo que este é um zip multi-partes concatenado" #: ../src/common/fileconf.cpp:1882 #, c-format msgid "attempt to change immutable key '%s' ignored." msgstr "tentativa de mudar a chave imutável '%s' ignorada." #: ../src/html/chm.cpp:329 msgid "bad arguments to library function" msgstr "argumentos ruins para a função da biblioteca" #: ../src/html/chm.cpp:341 msgid "bad signature" msgstr "assinatura ruim" #: ../src/common/zipstrm.cpp:1715 msgid "bad zipfile offset to entry" msgstr "offset do arquivo zip ruim para a entrada" #: ../src/common/ftp.cpp:405 msgid "binary" msgstr "binário" #: ../src/common/fontcmn.cpp:978 msgid "bold" msgstr "negrito" #: ../src/os2/iniconf.cpp:463 msgid "buffer is too small for Windows directory." msgstr "o buffer é muito pequeno para o diretório do Windows" #: ../src/msw/utils.cpp:1316 #, c-format msgid "build %lu" msgstr "build %lu" #: ../src/common/ffile.cpp:79 #, c-format msgid "can't close file '%s'" msgstr "não pode fechar o arquivo '%s'" #: ../src/common/file.cpp:278 #, c-format msgid "can't close file descriptor %d" msgstr "não pode fechar o descritor de arquivo %d" #: ../src/common/file.cpp:604 #, c-format msgid "can't commit changes to file '%s'" msgstr "não pode entregar as mudanças para o arquivo '%s'" #: ../src/common/file.cpp:212 #, c-format msgid "can't create file '%s'" msgstr "não pode criar o arquivo '%s'" #: ../src/common/fileconf.cpp:1176 #, c-format msgid "can't delete user configuration file '%s'" msgstr "não pode apagar o arquivo de configuração do usuário '%s'" #: ../src/common/file.cpp:511 #, c-format msgid "can't determine if the end of file is reached on descriptor %d" msgstr "não pode determinar se o final do arquivo é alcançado no descritor %d" #: ../src/msdos/utilsdos.cpp:310 ../src/msdos/utilsdos.cpp:475 #, c-format msgid "can't execute '%s'" msgstr "não pode executar '%s'" #: ../src/common/zipstrm.cpp:1490 msgid "can't find central directory in zip" msgstr "não pode achar o diretório central no zip" #: ../src/common/file.cpp:481 #, c-format msgid "can't find length of file on file descriptor %d" msgstr "não pode achar o tamanho do arquivo no descritor de arquivos %d" #: ../src/msw/utils.cpp:373 msgid "can't find user's HOME, using current directory." msgstr "não pode achar o HOME do usuário, usando o diretório atual." #: ../src/common/file.cpp:382 #, c-format msgid "can't flush file descriptor %d" msgstr "não pode dar descarga no descritor de arquivos %d" #: ../src/common/file.cpp:438 ../src/msw/wince/filefnwce.cpp:204 #, c-format msgid "can't get seek position on file descriptor %d" msgstr "não pode obter a posição de procura no descritor de arquivos %d" #: ../src/common/fontmap.cpp:325 msgid "can't load any font, aborting" msgstr "não pode carregar qualquer fonte, abortando" #: ../src/common/file.cpp:264 ../src/common/ffile.cpp:63 #, c-format msgid "can't open file '%s'" msgstr "não pode abrir o arquivo '%s'" #: ../src/common/fileconf.cpp:351 #, c-format msgid "can't open global configuration file '%s'." msgstr "não pode abrir o arquivo de configuração global '%s'." #: ../src/common/fileconf.cpp:367 #, c-format msgid "can't open user configuration file '%s'." msgstr "não pode abrir o arquivo de configuração do usuário '%s'." #: ../src/common/fileconf.cpp:1017 msgid "can't open user configuration file." msgstr "não pode abrir o arquivo de configuração do usuário." #: ../src/common/zipstrm.cpp:527 msgid "can't re-initialize zlib deflate stream" msgstr "não pode reinicializar o fluxo de deflação zlib" #: ../src/common/zipstrm.cpp:552 msgid "can't re-initialize zlib inflate stream" msgstr "não pode reinicializar o sistema de inflação zlib" #: ../src/common/file.cpp:334 #, c-format msgid "can't read from file descriptor %d" msgstr "não pode ler do descritor de arquivos %d" #: ../src/common/file.cpp:599 #, c-format msgid "can't remove file '%s'" msgstr "não pode remover o arquivo '%s'" #: ../src/common/file.cpp:616 #, c-format msgid "can't remove temporary file '%s'" msgstr "não pode remover o arquivo temporário '%s'" #: ../src/common/file.cpp:424 ../src/msw/wince/filefnwce.cpp:190 #, c-format msgid "can't seek on file descriptor %d" msgstr "não pode procurar no descritor de arquivos %d" #: ../src/common/textfile.cpp:299 #, c-format msgid "can't write buffer '%s' to disk." msgstr "não pode escrever o '%s' no disco." #: ../src/common/file.cpp:350 #, c-format msgid "can't write to file descriptor %d" msgstr "não pode escrever no descritor de arquivos %d" #: ../src/common/fileconf.cpp:1031 msgid "can't write user configuration file." msgstr "não pode escrever o arquivo de configuração do usuário." #: ../src/html/chm.cpp:345 msgid "checksum error" msgstr "erro de checksum" #: ../src/common/tarstrm.cpp:820 msgid "checksum failure reading tar header block" msgstr "falhou do checksum ao ler o bloco do cabeçalho tar" #: ../src/richtext/richtextborderspage.cpp:280 #: ../src/richtext/richtextborderspage.cpp:310 #: ../src/richtext/richtextborderspage.cpp:340 #: ../src/richtext/richtextborderspage.cpp:370 #: ../src/richtext/richtextborderspage.cpp:424 #: ../src/richtext/richtextborderspage.cpp:454 #: ../src/richtext/richtextborderspage.cpp:484 #: ../src/richtext/richtextborderspage.cpp:514 #: ../src/richtext/richtextmarginspage.cpp:202 #: ../src/richtext/richtextmarginspage.cpp:227 #: ../src/richtext/richtextmarginspage.cpp:250 #: ../src/richtext/richtextmarginspage.cpp:275 #: ../src/richtext/richtextmarginspage.cpp:316 #: ../src/richtext/richtextmarginspage.cpp:341 #: ../src/richtext/richtextmarginspage.cpp:364 #: ../src/richtext/richtextmarginspage.cpp:389 #: ../src/richtext/richtextsizepage.cpp:339 #: ../src/richtext/richtextsizepage.cpp:373 #: ../src/richtext/richtextsizepage.cpp:400 #: ../src/richtext/richtextsizepage.cpp:427 #: ../src/richtext/richtextsizepage.cpp:454 #: ../src/richtext/richtextsizepage.cpp:481 #: ../src/richtext/richtextsizepage.cpp:555 #: ../src/richtext/richtextsizepage.cpp:590 #: ../src/richtext/richtextsizepage.cpp:625 #: ../src/richtext/richtextsizepage.cpp:660 msgid "cm" msgstr "cm" #: ../src/html/chm.cpp:347 msgid "compression error" msgstr "erro de compressão" #: ../src/common/regex.cpp:239 msgid "conversion to 8-bit encoding failed" msgstr "conversão para a codificação de 8 bits falhou" #: ../src/common/accelcmn.cpp:182 msgid "ctrl" msgstr "ctrl" #: ../src/common/cmdline.cpp:1323 msgid "date" msgstr "data" #: ../src/html/chm.cpp:349 msgid "decompression error" msgstr "erro de descompressão" #: ../src/richtext/richtextstyles.cpp:780 ../src/common/fmapbase.cpp:820 msgid "default" msgstr "padrão" #: ../src/common/cmdline.cpp:1319 msgid "double" msgstr "duplo" #: ../src/common/debugrpt.cpp:543 msgid "dump of the process state (binary)" msgstr "dump do estado do processo (binário)" #: ../src/common/datetimefmt.cpp:1936 msgid "eighteenth" msgstr "décimo-oitavo" #: ../src/common/datetimefmt.cpp:1926 msgid "eighth" msgstr "oitavo" #: ../src/common/datetimefmt.cpp:1929 msgid "eleventh" msgstr "décimo-primeiro" #: ../src/common/fileconf.cpp:1868 #, c-format msgid "entry '%s' appears more than once in group '%s'" msgstr "a entrada '%s' aparece mais de uma vez no grupo '%s'" #: ../src/html/chm.cpp:343 msgid "error in data format" msgstr "erro no formato dos dados" #: ../src/msdos/utilsdos.cpp:413 #, c-format msgid "error opening '%s'" msgstr "erro ao abrir '%s'" #: ../src/html/chm.cpp:331 msgid "error opening file" msgstr "erro ao abrir o arquivo" #: ../src/common/zipstrm.cpp:1576 msgid "error reading zip central directory" msgstr "erro lendo o diretório central do zip" #: ../src/common/zipstrm.cpp:1667 msgid "error reading zip local header" msgstr "erro lendo o cabeçalho local do zip" #: ../src/common/zipstrm.cpp:2396 #, c-format msgid "error writing zip entry '%s': bad crc or length" msgstr "erro escrevendo a entrada do zip '%s': crc ou tamanho ruim" #: ../src/common/ffile.cpp:170 #, c-format msgid "failed to flush the file '%s'" msgstr "falhou em dar descarga no arquivo '%s'" #: ../src/common/datetimefmt.cpp:1933 msgid "fifteenth" msgstr "décimo-quinto" #: ../src/common/datetimefmt.cpp:1923 msgid "fifth" msgstr "quinto" #: ../src/common/fileconf.cpp:610 #, c-format msgid "file '%s', line %d: '%s' ignored after group header." msgstr "arquivo '%s', linha %d: '%s' ignorado após o cabeçalho do grupo." #: ../src/common/fileconf.cpp:639 #, c-format msgid "file '%s', line %d: '=' expected." msgstr "arquivo '%s', linha %d: '=' esperado." #: ../src/common/fileconf.cpp:662 #, c-format msgid "file '%s', line %d: key '%s' was first found at line %d." msgstr "arquivo '%s', linha %d: chave '%s' foi achada primeiro na linha %d." #: ../src/common/fileconf.cpp:652 #, c-format msgid "file '%s', line %d: value for immutable key '%s' ignored." msgstr "arquivo '%s', linha %d: valor para a chave imutável '%s' ignorado." #: ../src/common/fileconf.cpp:574 #, c-format msgid "file '%s': unexpected character %c at line %d." msgstr "arquivo '%s': caractere %c ineperado na linha %d." #: ../src/richtext/richtextbuffer.cpp:8358 msgid "files" msgstr "arquivos" #: ../src/common/datetimefmt.cpp:1919 msgid "first" msgstr "primeiro" #: ../src/html/helpwnd.cpp:1265 msgid "font size" msgstr "tamanho da fonte" #: ../src/common/datetimefmt.cpp:1932 msgid "fourteenth" msgstr "décimo-quarto" #: ../src/common/datetimefmt.cpp:1922 msgid "fourth" msgstr "quarto" #: ../src/common/appbase.cpp:695 msgid "generate verbose log messages" msgstr "gerar mensagens de log verbose" #: ../src/richtext/richtextbuffer.cpp:12212 #: ../src/richtext/richtextbuffer.cpp:12322 msgid "image" msgstr "imagem" #: ../src/common/tarstrm.cpp:796 msgid "incomplete header block in tar" msgstr "bloco do cabeçalho incompleto no tar" #: ../src/common/xtixml.cpp:489 msgid "incorrect event handler string, missing dot" msgstr "string do manejador de eventos incorreta; ponto desaparecido" #: ../src/common/tarstrm.cpp:1381 msgid "incorrect size given for tar entry" msgstr "tamanho incorreto dado para a entrada tar" #: ../src/common/tarstrm.cpp:993 msgid "invalid data in extended tar header" msgstr "dados inválidos no cabeçalho estendido tar" #: ../src/generic/logg.cpp:1050 msgid "invalid message box return value" msgstr "valor de retorno da caixa de mensagem inválido" #: ../src/common/zipstrm.cpp:1445 msgid "invalid zip file" msgstr "arquivo zip inválido" #: ../src/common/fontcmn.cpp:983 msgid "italic" msgstr "itálico" #: ../src/common/fontcmn.cpp:973 msgid "light" msgstr "leve" #: ../src/common/intl.cpp:293 #, c-format msgid "locale '%s' cannot be set." msgstr "local '%s' não pode ser definido." #: ../src/common/datetimefmt.cpp:2092 msgid "midnight" msgstr "meia-noite" #: ../src/common/datetimefmt.cpp:1937 msgid "nineteenth" msgstr "décimo-nono" #: ../src/common/datetimefmt.cpp:1927 msgid "ninth" msgstr "nono" #: ../src/msw/dde.cpp:1119 msgid "no DDE error." msgstr "nenhum erro DDE." #: ../src/html/chm.cpp:327 msgid "no error" msgstr "nenhum erro" #: ../src/dfb/fontmgr.cpp:174 #, c-format msgid "no fonts found in %s, using builtin font" msgstr "sem fontes achadas em %s, usando a fonte embutida" #: ../src/html/helpdata.cpp:655 msgid "noname" msgstr "sem nome" #: ../src/common/datetimefmt.cpp:2091 msgid "noon" msgstr "meio-dia" #: ../src/richtext/richtextstyles.cpp:779 msgid "normal" msgstr "nrmal" #: ../src/gtk/print.cpp:1218 ../src/gtk/print.cpp:1323 msgid "not implemented" msgstr "não implementado" #: ../src/common/cmdline.cpp:1315 msgid "num" msgstr "num" #: ../src/common/xtixml.cpp:259 msgid "objects cannot have XML Text Nodes" msgstr "objetos não podem ter Nodes de Texto XML" #: ../src/html/chm.cpp:339 msgid "out of memory" msgstr "falta memória" #: ../src/richtext/richtextsizepage.cpp:340 #: ../src/richtext/richtextsizepage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:401 #: ../src/richtext/richtextsizepage.cpp:428 #: ../src/richtext/richtextsizepage.cpp:455 #: ../src/richtext/richtextsizepage.cpp:482 #: ../src/richtext/richtextsizepage.cpp:556 #: ../src/richtext/richtextsizepage.cpp:591 #: ../src/richtext/richtextsizepage.cpp:626 #: ../src/richtext/richtextsizepage.cpp:661 msgid "percent" msgstr "por cento" #: ../src/common/debugrpt.cpp:519 msgid "process context description" msgstr "descrição do contexto do processo" #: ../src/richtext/richtextfontpage.cpp:186 #: ../src/richtext/richtextfontpage.cpp:189 msgid "pt" msgstr "pt" #: ../src/richtext/richtextfontpage.cpp:187 #: ../src/richtext/richtextborderspage.cpp:279 #: ../src/richtext/richtextborderspage.cpp:281 #: ../src/richtext/richtextborderspage.cpp:282 #: ../src/richtext/richtextborderspage.cpp:309 #: ../src/richtext/richtextborderspage.cpp:311 #: ../src/richtext/richtextborderspage.cpp:312 #: ../src/richtext/richtextborderspage.cpp:339 #: ../src/richtext/richtextborderspage.cpp:341 #: ../src/richtext/richtextborderspage.cpp:342 #: ../src/richtext/richtextborderspage.cpp:369 #: ../src/richtext/richtextborderspage.cpp:371 #: ../src/richtext/richtextborderspage.cpp:372 #: ../src/richtext/richtextborderspage.cpp:423 #: ../src/richtext/richtextborderspage.cpp:425 #: ../src/richtext/richtextborderspage.cpp:426 #: ../src/richtext/richtextborderspage.cpp:453 #: ../src/richtext/richtextborderspage.cpp:455 #: ../src/richtext/richtextborderspage.cpp:456 #: ../src/richtext/richtextborderspage.cpp:483 #: ../src/richtext/richtextborderspage.cpp:485 #: ../src/richtext/richtextborderspage.cpp:486 #: ../src/richtext/richtextborderspage.cpp:513 #: ../src/richtext/richtextborderspage.cpp:515 #: ../src/richtext/richtextborderspage.cpp:516 #: ../src/richtext/richtextmarginspage.cpp:201 #: ../src/richtext/richtextmarginspage.cpp:203 #: ../src/richtext/richtextmarginspage.cpp:204 #: ../src/richtext/richtextmarginspage.cpp:226 #: ../src/richtext/richtextmarginspage.cpp:228 #: ../src/richtext/richtextmarginspage.cpp:229 #: ../src/richtext/richtextmarginspage.cpp:249 #: ../src/richtext/richtextmarginspage.cpp:251 #: ../src/richtext/richtextmarginspage.cpp:252 #: ../src/richtext/richtextmarginspage.cpp:274 #: ../src/richtext/richtextmarginspage.cpp:276 #: ../src/richtext/richtextmarginspage.cpp:277 #: ../src/richtext/richtextmarginspage.cpp:315 #: ../src/richtext/richtextmarginspage.cpp:317 #: ../src/richtext/richtextmarginspage.cpp:318 #: ../src/richtext/richtextmarginspage.cpp:340 #: ../src/richtext/richtextmarginspage.cpp:342 #: ../src/richtext/richtextmarginspage.cpp:343 #: ../src/richtext/richtextmarginspage.cpp:363 #: ../src/richtext/richtextmarginspage.cpp:365 #: ../src/richtext/richtextmarginspage.cpp:366 #: ../src/richtext/richtextmarginspage.cpp:388 #: ../src/richtext/richtextmarginspage.cpp:390 #: ../src/richtext/richtextmarginspage.cpp:391 #: ../src/richtext/richtextsizepage.cpp:338 #: ../src/richtext/richtextsizepage.cpp:341 #: ../src/richtext/richtextsizepage.cpp:342 #: ../src/richtext/richtextsizepage.cpp:372 #: ../src/richtext/richtextsizepage.cpp:375 #: ../src/richtext/richtextsizepage.cpp:376 #: ../src/richtext/richtextsizepage.cpp:399 #: ../src/richtext/richtextsizepage.cpp:402 #: ../src/richtext/richtextsizepage.cpp:403 #: ../src/richtext/richtextsizepage.cpp:426 #: ../src/richtext/richtextsizepage.cpp:429 #: ../src/richtext/richtextsizepage.cpp:430 #: ../src/richtext/richtextsizepage.cpp:453 #: ../src/richtext/richtextsizepage.cpp:456 #: ../src/richtext/richtextsizepage.cpp:457 #: ../src/richtext/richtextsizepage.cpp:480 #: ../src/richtext/richtextsizepage.cpp:483 #: ../src/richtext/richtextsizepage.cpp:484 #: ../src/richtext/richtextsizepage.cpp:554 #: ../src/richtext/richtextsizepage.cpp:557 #: ../src/richtext/richtextsizepage.cpp:558 #: ../src/richtext/richtextsizepage.cpp:589 #: ../src/richtext/richtextsizepage.cpp:592 #: ../src/richtext/richtextsizepage.cpp:593 #: ../src/richtext/richtextsizepage.cpp:624 #: ../src/richtext/richtextsizepage.cpp:627 #: ../src/richtext/richtextsizepage.cpp:628 #: ../src/richtext/richtextsizepage.cpp:659 #: ../src/richtext/richtextsizepage.cpp:662 #: ../src/richtext/richtextsizepage.cpp:663 msgid "px" msgstr "px" #: ../src/common/accelcmn.cpp:188 msgid "rawctrl" msgstr "rawctrl" #: ../src/html/chm.cpp:333 msgid "read error" msgstr "erro de leitura" #: ../src/common/zipstrm.cpp:1882 #, c-format msgid "reading zip stream (entry %s): bad crc" msgstr "lendo o fluxo zip (entrada %s): crc ruim" #: ../src/common/zipstrm.cpp:1877 #, c-format msgid "reading zip stream (entry %s): bad length" msgstr "lendo o fluxo zip (entrada %s): tamanho ruim" #: ../src/msw/dde.cpp:1162 msgid "reentrancy problem." msgstr "problema na re-entrada." #: ../src/common/datetimefmt.cpp:1920 msgid "second" msgstr "segundo" #: ../src/html/chm.cpp:337 msgid "seek error" msgstr "erro de busca" #: ../src/common/datetimefmt.cpp:1935 msgid "seventeenth" msgstr "décimo-sétimo" #: ../src/common/datetimefmt.cpp:1925 msgid "seventh" msgstr "sétimo" #: ../src/common/accelcmn.cpp:186 msgid "shift" msgstr "shift" #: ../src/common/appbase.cpp:685 msgid "show this help message" msgstr "mostrar esta mensagem de ajuda" #: ../src/common/datetimefmt.cpp:1934 msgid "sixteenth" msgstr "décimo-sexto" #: ../src/common/datetimefmt.cpp:1924 msgid "sixth" msgstr "sexto" #: ../src/common/appcmn.cpp:227 msgid "specify display mode to use (e.g. 640x480-16)" msgstr "especificar o modo de exibição a usar ( ex: 640x480-16)" #: ../src/common/appcmn.cpp:213 msgid "specify the theme to use" msgstr "especificar o tema a usar" #: ../src/richtext/richtextbuffer.cpp:8876 msgid "standard/circle" msgstr "padrão/círculo" #: ../src/richtext/richtextbuffer.cpp:8877 msgid "standard/circle-outline" msgstr "padrão/círculo-contorno" #: ../src/richtext/richtextbuffer.cpp:8879 msgid "standard/diamond" msgstr "padrão/diamante" #: ../src/richtext/richtextbuffer.cpp:8878 msgid "standard/square" msgstr "padrão/quadrado" #: ../src/richtext/richtextbuffer.cpp:8880 msgid "standard/triangle" msgstr "padrão/triângulo" #: ../src/common/zipstrm.cpp:1782 msgid "stored file length not in Zip header" msgstr "tamanho do arquivo armazenado não no cabeçalho Zip" #: ../src/common/cmdline.cpp:1311 msgid "str" msgstr "str" #: ../src/common/fontcmn.cpp:794 ../src/common/fontcmn.cpp:969 msgid "strikethrough" msgstr "strikethrough" #: ../src/common/tarstrm.cpp:1003 ../src/common/tarstrm.cpp:1025 #: ../src/common/tarstrm.cpp:1507 ../src/common/tarstrm.cpp:1529 msgid "tar entry not open" msgstr "entrada tar não aberta" #: ../src/common/datetimefmt.cpp:1928 msgid "tenth" msgstr "décimo" #: ../src/msw/dde.cpp:1126 msgid "the response to the transaction caused the DDE_FBUSY bit to be set." msgstr "a resposta para a transação fez o bit DDE_FBUSY ser definido." #: ../src/common/datetimefmt.cpp:1921 msgid "third" msgstr "terceiro" #: ../src/common/datetimefmt.cpp:1931 msgid "thirteenth" msgstr "décimo-terceiro" #: ../src/common/datetimefmt.cpp:1725 msgid "today" msgstr "hoje" #: ../src/common/datetimefmt.cpp:1727 msgid "tomorrow" msgstr "amanhã" #: ../src/common/fileconf.cpp:1979 #, c-format msgid "trailing backslash ignored in '%s'" msgstr "backslash de rastreamente ignorado em '%s'" #: ../src/gtk/aboutdlg.cpp:218 msgid "translator-credits" msgstr "tradutor-créditos" #: ../src/common/datetimefmt.cpp:1930 msgid "twelfth" msgstr "décimo-segundo" #: ../src/common/datetimefmt.cpp:1938 msgid "twentieth" msgstr "vigésimo" #: ../src/common/fontcmn.cpp:789 ../src/common/fontcmn.cpp:965 msgid "underlined" msgstr "sublinhado" #: ../src/common/fileconf.cpp:2014 #, c-format msgid "unexpected \" at position %d in '%s'." msgstr "inesperado \" na posição %d de '%s'." #: ../src/common/tarstrm.cpp:1045 msgid "unexpected end of file" msgstr "fim de arquivo inesperado" #: ../src/generic/progdlgg.cpp:399 ../src/common/tarstrm.cpp:371 #: ../src/common/tarstrm.cpp:394 ../src/common/tarstrm.cpp:425 msgid "unknown" msgstr "desconhecido" #: ../src/common/xtixml.cpp:253 #, c-format msgid "unknown class %s" msgstr "classe %s desconhecida" #: ../src/common/regex.cpp:261 ../src/html/chm.cpp:351 msgid "unknown error" msgstr "erro desconhecido" #: ../src/msw/dialup.cpp:490 #, c-format msgid "unknown error (error code %08x)." msgstr "erro desconhecido (código do erro %08x)." #: ../src/msw/wince/filefnwce.cpp:172 msgid "unknown seek origin" msgstr "origem da busca desconhecida" #: ../src/common/fmapbase.cpp:834 #, c-format msgid "unknown-%d" msgstr "desconhecido- %d" #: ../src/common/docview.cpp:507 msgid "unnamed" msgstr "sem nome" #: ../src/common/docview.cpp:1606 #, c-format msgid "unnamed%d" msgstr "%d sem nome" #: ../src/common/zipstrm.cpp:1796 ../src/common/zipstrm.cpp:2184 msgid "unsupported Zip compression method" msgstr "método de compressão do Zip não suportado" #: ../src/common/translation.cpp:1883 #, c-format msgid "using catalog '%s' from '%s'." msgstr "usando o catálogo '%s' de '%s'." #: ../src/html/chm.cpp:335 msgid "write error" msgstr "erro de escrita" #: ../src/common/time.cpp:318 msgid "wxGetTimeOfDay failed." msgstr "wxGetTimeOfDay falhou." #: ../src/gtk/print.cpp:987 msgid "wxPrintout::GetPageInfo gives a null maxPage." msgstr "wxPrintout::GetPageInfo dá um maxPage nulo." #: ../src/osx/carbon/dataview.cpp:1303 msgid "wxWidget control pointer is not a data view pointer" msgstr "" "O ponteiro do controle wxWidget não é um ponteiro de visualização dos dados" #: ../src/osx/carbon/dataview.cpp:907 msgid "wxWidget's control not initialized." msgstr "Controle do wxWidgets não inicializado." #: ../src/motif/app.cpp:245 #, c-format msgid "wxWidgets could not open display for '%s': exiting." msgstr "O wxWidgets não pôde abrir a exibição para '%s': saindo." #: ../src/x11/app.cpp:164 msgid "wxWidgets could not open display. Exiting." msgstr "O wxWidgets não pôde a exibição. Saindo." #: ../src/richtext/richtextsymboldlg.cpp:434 msgid "xxxx" msgstr "xxxx" #: ../src/common/datetimefmt.cpp:1726 msgid "yesterday" msgstr "ontem" #: ../src/common/zstream.cpp:251 ../src/common/zstream.cpp:426 #, c-format msgid "zlib error %d" msgstr "erro zlib %d" #: ../src/richtext/richtextliststylepage.cpp:496 #: ../src/richtext/richtextbulletspage.cpp:301 msgid "~" msgstr "~" #~ msgid "Print preview" #~ msgstr "Pré-visualização da impressão" #~ msgid "'" #~ msgstr "'" #~ msgid "1" #~ msgstr "1" #~ msgid "10" #~ msgstr "10" #~ msgid "3" #~ msgstr "3" #~ msgid "4" #~ msgstr "4" #~ msgid "5" #~ msgstr "5" #~ msgid "6" #~ msgstr "6" #~ msgid "7" #~ msgstr "7" #~ msgid "8" #~ msgstr "8" #~ msgid "9" #~ msgstr "9" #~ msgid "Can't monitor non-existent path \"%s\" for changes." #~ msgstr "Não consegue monitorar o caminho não-existente \"%s\" por mudanças." #~ msgid "File system containing watched object was unmounted" #~ msgstr "O sistema de arquivos contendo o objeto observado foi desmontado" #~ msgid "&Preview..." #~ msgstr "&Pré-visualização..." #~ msgid "Enable vertical offset." #~ msgstr "Ativar offset vertical." #~ msgid "Preview..." #~ msgstr "Pré-visualização..." #~ msgid "The vertical offset relative to the paragraph." #~ msgstr "O offset vertical relativo ao parágrafo." #~ msgid "Units for the object offset." #~ msgstr "Unidades para o offset do objeto." #~ msgid "Vertical &Offset:" #~ msgstr "Offset &Vertical:" #~ msgid "&About..." #~ msgstr "&Sobre..." #~ msgid "&Save..." #~ msgstr "&Salvar..." #~ msgid "About " #~ msgstr "Sobre" #~ msgid "About..." #~ msgstr "Sobre..." #~ msgid "All files (*.*)|*" #~ msgstr "Todos os arquivos (*.*)|*" #~ msgid "Cannot initialize SciTech MGL!" #~ msgstr "Não pode inicializar o SciTech MGL!" #~ msgid "Cannot initialize display." #~ msgstr "Não pode inicializar a exibição." #~ msgid "Cannot start thread: error writing TLS" #~ msgstr "Não pode iniciar o thread: erro ao escrever o TLS" #~ msgid "Close\tAlt-F4" #~ msgstr "Fechar\tAlt-F4" #~ msgid "Couldn't create cursor." #~ msgstr "Não pôde criar o cursor." #~ msgid "Directory '%s' doesn't exist!" #~ msgstr "O diretório '%s' não existe!" #~ msgid "File %s does not exist." #~ msgstr "O arquivo %s não existe." #~ msgid "Mode %ix%i-%i not available." #~ msgstr "Modo %ix%i-%i não disponível." #~ msgid "Paper Size" #~ msgstr "Tamanho do Papel" #~ msgid "%.*f GB" #~ msgstr "%.*f GB" #~ msgid "%.*f MB" #~ msgstr "%.*f MB" #~ msgid "%.*f TB" #~ msgstr "%.*f TB" #~ msgid "%.*f kB" #~ msgstr "%.*f kB" #~ msgid "%s" #~ msgstr "%s " #~ msgid "%s B" #~ msgstr "%s B" #~ msgid "&Goto..." #~ msgstr "&Ir para..." #~ msgid "<<" #~ msgstr "<<" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">>|" #~ msgstr ">>|" #~ msgid "Added item is invalid." #~ msgstr "O item adicionado é inválido." #~ msgid "Archive doesnt contain #SYSTEM file" #~ msgstr "O arquivo não contém o arquivo #SYSTEM" #~ msgid "BIG5" #~ msgstr "BIG5" #~ msgid "Can't check image format of file '%s': file does not exist." #~ msgstr "" #~ "Não pode verificar o formato da imagem do arquivo '%s': o arquivo não " #~ "existe." #~ msgid "Can't load image from file '%s': file does not exist." #~ msgstr "Não pode carregar a imagem do arquivo '%s': o arquivo não existe." #~ msgid "Cannot convert dialog units: dialog unknown." #~ msgstr "Não pode converter as unidades do diálogo: diálogo desconhecido." #~ msgid "Cannot convert from the charset '%s'!" #~ msgstr "Não pode converter do conjunto de caracteres '%s'!" #~ msgid "Cannot find container for unknown control '%s'." #~ msgstr "Não pode achar o recipiente para o controle desconhecido '%s'." #~ msgid "Cannot find font node '%s'." #~ msgstr "Não pode achar o node da fonte '%s'." #~ msgid "Cannot open file '%s'." #~ msgstr "Não pode abrir o arquivo '%s'." #~ msgid "Cannot parse coordinates from '%s'." #~ msgstr "Não pode analisar as coordenadas de '%s'." #~ msgid "Cannot parse dimension from '%s'." #~ msgstr "Não pode analisar a dimensão de '%s'." #~ msgid "Cant create the thread event queue" #~ msgstr "Não pode criar a fila de eventos do thread" #~ msgid "Changed item is invalid." #~ msgstr "O item mudado é inválido." #~ msgid "Click to cancel this window." #~ msgstr "Clique para cancelar esta janela." #~ msgid "Click to confirm your selection." #~ msgstr "Clique para confirmar a sua seleção." #~ msgid "Column does not have a renderer." #~ msgstr "A coluna não tem um renderizador." #~ msgid "Column pointer must not be NULL." #~ msgstr "O ponteiro da coluna não dever ser NULO." #~ msgid "Column's model column has no equivalent in the associated model." #~ msgstr "A coluna modelo da coluna não tem equivalente no modelo associado." #~ msgid "Control is wrongly initialized." #~ msgstr "O controle foi inicializado erroneamente." #~ msgid "Could not add column to internal structures." #~ msgstr "Não pôde adicionar a coluna as estruturas internas." #~ msgid "Could not unlock mutex" #~ msgstr "Não pôde destrancar o mutex" #~ msgid "Data view control is not correctly initialized" #~ msgstr "" #~ "O controle da visualização dos dados não foi inicializado corretamente" #~ msgid "Error while waiting on semaphore" #~ msgstr "Erro enquanto esperando no semáforo" #~ msgid "Failed to connect to session manager: %s" #~ msgstr "Falhou em conectar ao gerenciador da sessão: %s" #~ msgid "Failed to create a status bar." #~ msgstr "Falhou em criar uma barra de status." #~ msgid "Failed to register OpenGL window class." #~ msgstr "Falhou em registrar a classe de janela do OpenGL." #~ msgid "Fatal error" #~ msgstr "Erro fatal" #~ msgid "Fatal error: " #~ msgstr "Erro fatal: " #~ msgid "GB-2312" #~ msgstr "GB-2312" #~ msgid "Go forward to the next HTML page" #~ msgstr "Ir adiante para a próxima página HTML" #~ msgid "Goto Page" #~ msgstr "Ir para a página" #~ msgid "" #~ "HTML pagination algorithm generated more than the allowed maximum number " #~ "of pages and it can't continue any longer!" #~ msgstr "" #~ "O algorítmo de paginação HTML gerou mais do que o número máximo de " #~ "páginas permitidas e não pode mais continuar!" #~ msgid "Help : %s" #~ msgstr "Ajuda : %s" #~ msgid "I64" #~ msgstr "I64" #~ msgid "Internal error, illegal wxCustomTypeInfo" #~ msgstr "Erro interno; wxCustomTypeInfo ilegal" #~ msgid "Invalid XRC resource '%s': doesn't have root node 'resource'." #~ msgstr "Recurso XRC '%s' inválido: não tem o node da raiz 'resource'." #~ msgid "No handler found for XML node '%s', class '%s'!" #~ msgstr "Nenhum manejador achado para o node XML '%s', classe '%s'!" #~ msgid "No image handler for type %ld defined." #~ msgstr "Nenhum manipulador de imagem para o tipo %ld definido." #~ msgid "No model associated with control." #~ msgstr "Nenhum modelo associado com o controle." #~ msgid "Owner not initialized." #~ msgstr "Proprietário não inicializado." #~ msgid "Passed item is invalid." #~ msgstr "O item passado é inválido." #~ msgid "Passing a already registered object to SetObjectName" #~ msgstr "Passando um objeto já registrado para o SetObjectName" #~ msgid "Preparing help window..." #~ msgstr "Preparando a janela de ajuda..." #~ msgid "Program aborted." #~ msgstr "Programa abortado." #~ msgid "Referenced object node with ref=\"%s\" not found!" #~ msgstr "Node do objeto referenciado com ref=\"%s\" não achado!" #~ msgid "Resource files must have same version number!" #~ msgstr "Os arquivos de recurso devem ter o mesmo número da versão!" #~ msgid "SHIFT-JIS" #~ msgstr "SHIFT-JIS" #~ msgid "Search!" #~ msgstr "Procurar!" #~ msgid "Sorry, could not open this file for saving." #~ msgstr "Lamento, não pôde abrir este arquivo para salvar." #~ msgid "Sorry, could not save this file." #~ msgstr "Lamento, não pude salvar este arquivo." #~ msgid "Sorry, print preview needs a printer to be installed." #~ msgstr "" #~ "Lamento, a pré-visualização da impressão precisa que uma impressora " #~ "esteja instalada." #~ msgid "Status: " #~ msgstr "Status: " #~ msgid "" #~ "Streaming delegates for not already streamed objects not yet supported" #~ msgstr "O streaming delega para objetos não já streamed ainda não suportado" #~ msgid "Subclass '%s' not found for resource '%s', not subclassing!" #~ msgstr "" #~ "Sub-classe '%s' não achada para o recurso '%s'; não sub-classificando!" #~ msgid "TIFF library error." #~ msgstr "Erro da biblioteca TIFF." #~ msgid "TIFF library warning." #~ msgstr "Aviso da biblioteca TIFF." #~ msgid "" #~ "The file '%s' couldn't be opened.\n" #~ "It has been removed from the most recently used files list." #~ msgstr "" #~ "O arquivo '%s' não pôde ser aberto.\n" #~ "Foi removido da lista dos arquivos mais usados recentemente." #~ msgid "The path '%s' contains too many \"..\"!" #~ msgstr "O caminho '%s' contém \"..\" demais!" #~ msgid "Trying to solve a NULL hostname: giving up" #~ msgstr "Tentandoe resolver um nome de host NULO: desistindo" #~ msgid "Unknown style flag " #~ msgstr "Bandeira do estilo desconhecida" #~ msgid "Warning" #~ msgstr "Aviso" #~ msgid "Windows 2000 (build %lu" #~ msgstr "Windows 2000 (build %lu)" #~ msgid "XRC resource '%s' (class '%s') not found!" #~ msgstr "Recurso XRC '%s' (classe '%s') não achado!" #~ msgid "XRC resource: Cannot create animation from '%s'." #~ msgstr "Recurso XRC: Não pode criar a animação de '%s'." #~ msgid "XRC resource: Cannot create bitmap from '%s'." #~ msgstr "Recurso XRC: Não pode criar o bitmap de '%s'." #~ msgid "" #~ "XRC resource: Incorrect colour specification '%s' for attribute '%s'." #~ msgstr "" #~ "Recurso XRC: Especificação das cores '%s' incorreta para o atributo '%s'." #~ msgid "[EMPTY]" #~ msgstr "[VAZIO]" #~ msgid "catalog file for domain '%s' not found." #~ msgstr "arquivo do catálogo para o domínio '%s' não achado." #~ msgid "delegate has no type info" #~ msgstr "o delegate não tem info sobre o tipo" #~ msgid "encoding %i" #~ msgstr "codificação %i" #~ msgid "looking for catalog '%s' in path '%s'." #~ msgstr "procurando pelo catálogo '%s' no caminho '%s'." #~ msgid "m_peer is not or incorrectly initialized" #~ msgstr "m_peer não está ou foi incorretamente inicializado" #~ msgid "wxRichTextFontPage" #~ msgstr "wxRichTextFontPage" #~ msgid "wxSearchEngine::LookFor must be called before scanning!" #~ msgstr "wxSearchEngine::LookFor deve ser chamado antes de escanear!" #~ msgid "wxSocket: invalid signature in ReadMsg." #~ msgstr "wxSocket: assinatura inválida em ReadMsg." #~ msgid "wxSocket: unknown event!." #~ msgstr "wxSocket: evento desconhecido!" #~ msgid "|<<" #~ msgstr "|<<" #~ msgid "\t%s: %s\n" #~ msgstr "\t%s: %s\n" #~ msgid " Couldn't create the UnicodeConverter" #~ msgstr "Imposs�vel criar o UnicodeConverter" #~ msgid "#define %s must be an integer." #~ msgstr "#define %s deve ser um inteiro." #~ msgid "%s not a bitmap resource specification." #~ msgstr "%s n�o � uma especifica��o de um recurso de bitmap." #~ msgid "%s not an icon resource specification." #~ msgstr "%s n�o � uma especifica��o de um recurso de �cone." #~ msgid "%s: ill-formed resource file syntax." #~ msgstr "%s: sintaxe de arquivo de recurso mal-formada." #~ msgid "&Open" #~ msgstr "&Abrir" #~ msgid "&Print" #~ msgstr "&Imprimir" #, fuzzy #~ msgid "*** A debug report has been generated\n" #~ msgstr "Um relat�rio de depura��o foi gerado no diret�rio\n" #~ msgid "" #~ ", expected static, #include or #define\n" #~ "while parsing resource." #~ msgstr "" #~ ", era esperado static, #include ou #define\n" #~ "durante an�lise do recurso." #~ msgid "Bitmap resource specification %s not found." #~ msgstr "A especifica��o de recurso de bitmap %s n�o foi encontrada." #~ msgid "Closes the dialog without inserting a symbol." #~ msgstr "Fecha o di�logo sem inserir o s�mbolo." #~ msgid "" #~ "Could not resolve control class or id '%s'. Use (non-zero) integer " #~ "instead\n" #~ " or provide #define (see manual for caveats)" #~ msgstr "" #~ "Controle da classe ou id '%s' n�o resolvido. Use inteiros (diferentes " #~ "zero)\n" #~ " ou disponibilize um #define (veja o manual para precau��es)" #~ msgid "" #~ "Could not resolve menu id '%s'. Use (non-zero) integer instead\n" #~ "or provide #define (see manual for caveats)" #~ msgstr "" #~ "N�o foi poss�vel resolver id de menu '%s'. Use inteiros (diferentes " #~ "de zero)\n" #~ " ou disponibilize um #define (veja o manual para precau��es)" #~ msgid "Couldn't end the context on the overlay window" #~ msgstr "Imposs�vel finalizar o contexto na janela \"overlay\"" #~ msgid "Expected '*' while parsing resource." #~ msgstr "Era esperado '*' durante a an�lise do recurso." #~ msgid "Expected '=' while parsing resource." #~ msgstr "Era esperado '=' durante a an�lise do recurso." #~ msgid "Expected 'char' while parsing resource." #~ msgstr "Era esperado 'char' durante a an�lise do recurso." #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "N�o foi poss�vel encontrar o recurso XBM %s.\n" #~ "Esqueceu-se de usar o wxResourceLoadBitmapData?" #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadIconData?" #~ msgstr "" #~ "N�o foi poss�vel encontrar o recurso XBM %s.\n" #~ "Esqueceu-se de usar o wxResourceLoadIconData?" #~ msgid "" #~ "Failed to find XPM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "N�o foi poss�vel encontrar o recurso XPM %s.\n" #~ "Esqueceu-se de usar o wxResourceLoadBitmapData?" #~ msgid "Failed to get clipboard data." #~ msgstr "Falha ao obter dados da �rea de transfer�ncia." #~ msgid "Failed to load shared library '%s' Error '%s'" #~ msgstr "Falha ao carregar biblioteca compartilhada '%s' Erro '%s'" #~ msgid "Found " #~ msgstr "Encontrado" #~ msgid "Icon resource specification %s not found." #~ msgstr "Especifica��o de recurso de �cone '%s' n�o encontrada." #~ msgid "Ill-formed resource file syntax." #~ msgstr "Sintaxe do arquivo de recursos mal-formada." #~ msgid "Inserts the chosen symbol." #~ msgstr "Insere o s�mbolo escolhido." #~ msgid "Long Conversions not supported" #~ msgstr "Convers�es do tipo \"long\" n�o suportadas" #~ msgid "No XPM icon facility available!" #~ msgstr "�cones XPM ainda n�o est�o dispon�ves no wxWidgets!" #~ msgid "Option '%s' requires a value, '=' expected." #~ msgstr "Op��o '%s' precisa de um valor, '=' era esperado." #~ msgid "Select all" #~ msgstr "Selecionar &tudo" #~ msgid "" #~ "Sorry, docking is not supported for ports other than wxMSW, wxMac and " #~ "wxGTK" #~ msgstr "" #~ "O encaixamento s� � suportado nas vers�es wxMSW, wxMac e wxGTK" #~ msgid "String conversions not supported" #~ msgstr "Convers�es de string n�o suportadas" #~ msgid "Unexpected end of file while parsing resource." #~ msgstr "" #~ "Fim de arquivo encontrado inesperadamento durante an�lise do recurso." #~ msgid "Unrecognized style %s while parsing resource." #~ msgstr "Estilo %s n�o foi reconhecido durante an�lise do recurso." #~ msgid "Video Output" #~ msgstr "Sa�da de v�deo" #~ msgid "Warning: attempt to remove HTML tag handler from empty stack." #~ msgstr "" #~ "Aviso: tentativa de remo��o de manipulador de tag HTML de uma pilha " #~ "vazia." #~ msgid "establish" #~ msgstr "estabelecer" #~ msgid "initiate" #~ msgstr "iniciar" #~ msgid "invalid eof() return value." #~ msgstr "valor de retorno de eof() inv�lido." #~ msgid "unknown line terminator" #~ msgstr "finalizador de linha desconhecido" #~ msgid "writing" #~ msgstr "gravando" #~ msgid "wxRichTextBulletsPage" #~ msgstr "wxRichTextBulletsPage" #~ msgid "wxRichTextListStylePage" #~ msgstr "wxRichTextListStylePage" #~ msgid "wxRichTextStylePage" #~ msgstr "wxRichTextStylePage" ginkgocadx-3.8.7/cadxcore/lang/sr/000077500000000000000000000000001314736454600170215ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/sr/cadxcore.mo000066400000000000000000000333001314736454600211450ustar00rootroot00000000000000 F ; P\  6 Q/UI<1+#]#6<L f3s4:3 BOT Ygv0/219'k,0+).G-v,.-/./^7.,:"7]85),./[: , 3>SY^djpx5   $ / : E P Z fsuy  ( ,#:^g+m3   & 1;A H T`px~       ' 3 @LU]bzRp1WYNzv:@ w{ A 45!4j!/!l!7<"ft";"#P,#Y}#e#=$A$`$u$$$$$&$($S%Wm%U%Y&Ju&O&S'Sd'M'Q(PX(O(Q(PK)R)R)ZB*R*O*\@+Y+Z+WR,L,O,RG-]--- &.2.G.\. n. |...'. . . // $/0/<B//d///(/0)0=0R0g0|000 000000 1#1 91D1\1n1)1(1 11_1Y2Fp222p2dK3H3 34!494 N4 Y4g44 4 444!44 55)5$?5d5v5555 5 5 556 (656>6T6g6{66 6 6tD;} l]"T4 9v>i-nNH:|Qsj,IUE[~7wr^kq$'6X !*W<m/%_+z `@ LdPJhMKAZy cb{?eo=CV3g2BpF8(R&f#\S05ax.1)uGYO * Concatenation of patient name and surnames can't be higher than 61. * The format of the height in centimeters is not correct. * The format of the weight is not correct. Valid range is between 0 and 400 Kg. * The patient ID is required. * The patient's birth date is after the date of study - If you want to use SSL/TLS you have to set a valid certificate and private key - Maximum length of local AET is 16 characters - The PDU size should be greater than or equal to zero (default = 16384) - The local port is too large - The local port must be a positive short integer (16 bits) - The maximum length of the AET is 16 characters - The maximum value of the PDU is - The minimum value of the PDU is - The port is too large - The port must be a positive short integer (16 bits) - This PACS id is in use There are %d errors (see log for more detailed description) Would you like to retry? (%d images) . Modality does not exists in model: Add it first. . SOP Class does not exists in model: Add it first. . Transfer Syntax does not exists in model: Add it first. : bytes from a total of doesn't exist not allowed of to to Modality to SOP Class unsupported components with transfer syntax "accion" attribute expected at "plantilla" scope"accion" attribute invalid at "plantilla" scope"action" attribute expected at "gnkworkflow" scope"action" attribute invalid at "gnkworkflow" scope"aid" attribute expected at "hce" scope"ambito" attribute expected at "dimse" scope"ambito" attribute expected at "plantilla" scope"ambito" attribute invalid at "dimse" scope"cid" atribute expected at "centro" scope"clave" attribute expected at "metadato" scope"code" attribute expected at "metadata" scope"code" attribute expected at "patient" scope"code" attribute expected at "physician" scope"codigo" attribute expected at "medico" scope"codigo" attribute expected at "metadato" scope"codigo" attribute expected at "paciente" scope"id_peticion" attribute expected at "gnkworkflow" scope"iid" atribute expected at "institution" scope"key" attribute expected at "metadata" scope"pacs-retrieve-sid" attribute empty at "gnkworkflow" scope"pacs-store-sid" attribute empty at "gnkworkflow" scope"pacs_retrieve_sid" attribute empty at "plantilla" scope"pacs_store_sid" attribute empty at "plantilla" scope"uid" attribute expected at "dimse" scope"valor" attribute expected at "medico" scope"value" attribute expected at "physician" scope"value" attribute expected at "query-retrieve-level" scope%d results has been found%m/%d/%Y%m/%d/%Y %H:%M:%S%m/%d/%Y 00:00:00&Accept&Cancel&Clear history&Close&Close all&Delete from history&Edit&End&Exit&File&Help&Next >(ID or medical history number))): Check the configuration and attach it if necessary.../0 running tasks.00/00/0000 00:00:000000/00/00 00:00:001x1 Layout1x2 Layout2x1 Layout2x2 Layout3x3 Layout4x4 Layout644654645< &Previous@AETAcceptAccession NumberAccession numberAddAdd columnAdd rowAdvancedAdvanced Configuration ...Advanced settings...AgeAll patientsAlways use this view to open these filesAngle Ctrl+AAnonymous mode (history is cleaned)Any dateApplyAre you sure to delete this file from disk?Are you sure you want to cancel the import process?Are you sure you want to delete AreaArrowAssociation(dicom://AsymmetryBackBetween:Birth dateBrowse...CairoCancelCentimetersCertificateChange passwordCharsetClearCloseClose allClose all windowsColor MapCommentsCommit dateConfigure GridConfigure Grid ...DataDateDate:DefaultDefault valueDeleteDescriptionDeselect allDestinationDestination:Detach viewDistanceGeneralGridProject-Id-Version: GinkgoCADx POT-Creation-Date: 2014-06-11 15:52+0100 PO-Revision-Date: Last-Translator: Carlos Barrales Ruiz Language-Team: Serbian Language: sr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 1.6.5 X-Poedit-Basepath: . X-Poedit-KeywordsList: _Std;_ X-Poedit-SourceCharset: UTF-8 X-Poedit-SearchPath-0: ..\.. * Надовезивање имена и презимена пацијената не може бити више од 61. * Запис висине у центиметрима није исправан. * Запис тежине није исправан. Исправан опсег је између 0 и 400 Kg. * Потребан је ИБ пацијента. * Датум рођења пацијента је након датума студије — Ако желите да користите ССЛ/ТЛС треба да подесите исправно уверење и лични кључ — Највећа дужина месног АЕТ-а је 16 знакова — ПДУ величина треба да буде већа или једнака нули (основно = 16384) — Месни прикључник је превелик — Месни прикључник мора да буде позитиван краћи цео број (16 бита) — Највећа дужина АЕТ-а је 16 знакова — Највећа вредност ПДУ-а је — Најмања вредност ПДУ-а је — Прикључник је превелик — Прикључник мора да буде позитиван краћи цео број (16 бита) — ИБ овог ПАЦС-а је у употреби Постоје %d грешке (погледајте дневник за опширнији опис) Да ли желите да покушате поново? (слика — %d) . Начин не постоји у моделу: Додајте га прво. . СОП разред не постоји у моделу: Додајте га прво. . Синтакса преноса не постоји у моделу: Додајте је прво. : бајта од укупно не постоји није допуштено од до у начин у СОП разред неподржани састојци са синтаксом преноса „accion“ атрибут је очекиван на „plantilla“ досегу„accion“ атрибут је неисправан на „plantilla“ досегу„action“ атрибут је очекиван на „gnkworkflow“ досегу„action“ атрибут је неисправан на „gnkworkflow“ досегу„aid“ атрибут је очекиван на „hce“ досегу„ambito“ атрибут је очекиван на „dimse“ досегу„ambito“ атрибут је очекиван на „plantilla“ досегу„ambito“ атрибут је неисправан на „dimse“ досегу„cid“ атрибут је очекиван на „centro“ досегу„clave“ атрибут је очекиван на „metadato“ досегу„code“ атрибут је очекиван на „metadata“ досегу„code“ атрибут је очекиван на „patient“ досегу„code“ атрибут је очекиван на „physician“ досегу„codigo“ атрибут је очекиван на „medico“ досегу„codigo“ атрибут је очекиван на „metadato“ досегу„codigo“ атрибут је очекиван на „paciente“ досегу„id_peticion“ атрибут је очекиван на „gnkworkflow“ досегу„iid“ атрибут је очекиван на „institution“ досегу„key“ атрибут је очекиван на „metadata“ досегу„pacs-retrieve-sid“ атрибут је празан на „gnkworkflow“ досегу„pacs-store-sid“ атрибут је празан на „gnkworkflow“ досегу„pacs_retrieve_sid“ атрибут је празан на „plantilla“ досегу„pacs_store_sid“ атрибут је празан на „plantilla“ досегу„uid“ атрибут је очекиван на „dimse“ досегу„valor“ атрибут је очекиван на „medico“ досегу„value“ атрибут је очекиван на „physician“ досегу„value“ атрибут је очекиван на „query-retrieve-level“ досегуПронашао сам %d резултата%d. %m. %Y.%d. %m. %Y. %H:%M:%S%d. %m. %Y. 00:00:00&Прихвати&Откажи&Очисти историјат&Затвори&Затвори све&Обриши из историјата&Уреди&Заврши&Изађи&ДатотекаПо&моћ&Следеће >(ИБ или број медицинске историје))): Проверите подешавање и приложите га ако је неопходно.../0 покренутих задатака.00/00/0000 00:00:000000/00/00 00:00:001x1 распоред1x2 распоред2x1 распоред2x2 распоред3x3 распоред4x4 распоред644654645< &Претходно<непознат ИБ>@АЕТПрихватиБрој нападаБрој нападаДодајДодај колонуДодај редНапредноНапредна подешавања ...Напредна подешавања...ГодинеСви болеснициУвек користи овај преглед за отварање ових датотекаУгао Ктрл+АРежим безименог (историјат је очишћен)Неки датумПримениДа ли сте сигурни да желите да обришете ову датотеку са диска?Да ли сте сигурни да желите да откажете поступак увоза?Да ли сте сигурни да желите да обришете ОбластСтрелицаПридруживање(dicom://АсиметријаНазадИзмеђу:Датум рођењаРазгледај...КаироОткажиЦентиметриУверењеПромените лозинкуСкуп знаковаИзбришиЗатвориЗатвори свеЗатвори све прозореМапа бојаНапоменеДатум предајеПодеси мрежуПодеси мрежу ...ПодациДатумДатум:ОсновноОсновна вредностОбришиОписОдзначи свеОдредиштеОдредиште:Откачи прегледРастојањеОпштеМрежаginkgocadx-3.8.7/cadxcore/lang/sr/cadxcore.po000066400000000000000000006215071314736454600211640ustar00rootroot00000000000000# msgid "" msgstr "" "Project-Id-Version: GinkgoCADx\n" "POT-Creation-Date: 2014-06-11 15:52+0100\n" "PO-Revision-Date: \n" "Last-Translator: Carlos Barrales Ruiz \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" "X-Poedit-Basepath: .\n" "X-Poedit-KeywordsList: _Std;_\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SearchPath-0: ..\\..\n" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Red Vessels" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Metal" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Green" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "GE Color" msgstr "Боја" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PET" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "Асиметрија" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "P-Value" msgstr "П-Р-Т осе: " #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "" #: ..\../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #: ..\../api/dicom/idicomconformance.cpp:214 #: ..\../api/dicom/idicomconformance.cpp:220 #, fuzzy msgid "GIL/DICOM/Conformance" msgstr "Придруживање(dicom://" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #, fuzzy msgid "Unable to add supported transfer syntax " msgstr " . Синтакса преноса не постоји у моделу: Додајте је прво." #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid " to SOP Class " msgstr " у СОП разред " #: ..\../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr " . Синтакса преноса не постоји у моделу: Додајте је прво." #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr " . СОП разред не постоји у моделу: Додајте га прво." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #, fuzzy msgid "Unable to add supported SOP Class " msgstr " . СОП разред не постоји у моделу: Додајте га прво." #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid " to Modality " msgstr " у начин " #: ..\../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr " . Начин не постоји у моделу: Додајте га прво." #: ..\../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "" #: ..\../api/iannotator.cpp:97 #, fuzzy msgid "Slice" msgstr "Парче: " #: ..\../api/iannotator.cpp:97 msgid "of" msgstr "" #: ..\../api/iannotator.cpp:97 #, fuzzy msgid "Volume" msgstr "Исцртавање 3Д запремине" #: ..\../api/iannotator.cpp:107 msgid "Voxel:" msgstr "" #: ..\../api/iannotator.cpp:110 msgid "Image without metric information" msgstr "" #: ..\../api/iannotator.cpp:119 #, fuzzy msgid "Slice thickness" msgstr "Парче: " #: ..\../api/iannotator.cpp:127 #, fuzzy msgid "Slice location" msgstr "Парче: " #: ..\../api/iannotator.cpp:139 msgid "Scale" msgstr "" #: ..\../api/iannotator.cpp:147 msgid "Right" msgstr "" #: ..\../api/iannotator.cpp:149 msgid "Left" msgstr "" #: ..\../api/iannotator.cpp:219 #, fuzzy msgid "Position:" msgstr "Положај : " #: ..\../api/iannotator.cpp:272 #, fuzzy msgid "Value:" msgstr "Основна вредност" #: ..\../api/iexception.cpp:52 msgid "Exception in component" msgstr "" #: ..\../api/initwx.cpp:439 msgid "Initializing environment ..." msgstr "" #: ..\../api/initwx.cpp:446 ..\../api/initwx.cpp:447 ..\../api/initwx.cpp:448 #: ..\../api/initwx.cpp:449 ..\../api/initwx.cpp:450 ..\../api/initwx.cpp:451 #: ..\../api/initwx.cpp:452 ..\../api/initwx.cpp:453 #, fuzzy msgid "Ginkgo CADx restrictions" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "" #: ..\../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "Режим безименог (историјат је очишћен)" #: ..\../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "" #: ..\../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "" #: ..\../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "" #: ..\../api/initwx.cpp:451 #, fuzzy msgid "Export images" msgstr " (слика — %d)" #: ..\../api/initwx.cpp:452 #, fuzzy msgid "Acquire DICOM files" msgstr "Придруживање(dicom://" #: ..\../api/initwx.cpp:453 msgid "Import files to DICOM format" msgstr "" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "Online manual" msgstr "" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "URL of manual" msgstr "" #: ..\../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "" #: ..\../api/initwx.cpp:459 #, fuzzy msgid "Online support" msgstr "Радимо на подршци " #: ..\../api/initwx.cpp:459 #, fuzzy msgid "URL of online support" msgstr "Радимо на подршци " #: ..\../api/initwx.cpp:459 #, fuzzy msgid "http://ginkgo-cadx.com/" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../api/initwx.cpp:460 ..\../api/initwx.cpp:461 msgid "Program Updates" msgstr "" #: ..\../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "" #: ..\../api/initwx.cpp:461 msgid "Update period (days)" msgstr "" #: ..\../api/initwx.cpp:462 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "" #: ..\../api/initwx.cpp:462 msgid "Setup Security" msgstr "" #: ..\../api/initwx.cpp:463 #, fuzzy msgid "Show on startup" msgstr "Прикажи/сакриј мета податке" #: ..\../api/initwx.cpp:463 #, fuzzy msgid "Show on startup default value" msgstr "Основна вредност" #: ..\../api/initwx.cpp:465 ..\../api/initwx.cpp:466 #: ..\../main/gui/history3/historypanel3.cpp:328 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "" #: ..\../api/initwx.cpp:465 #, fuzzy msgid "Settings menu" msgstr "Напредна подешавања..." #: ..\../api/initwx.cpp:466 msgid "License menu" msgstr "" #: ..\../api/initwx.cpp:467 ..\../api/initwx.cpp:468 ..\../api/initwx.cpp:469 #: ..\../api/initwx.cpp:470 ..\../api/initwx.cpp:471 ..\../api/initwx.cpp:472 #: ..\../api/initwx.cpp:473 ..\../api/initwx.cpp:474 #, fuzzy msgid "PACS Limits" msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "" #: ..\../api/initwx.cpp:468 msgid "Upload images to a PACS server" msgstr "" #: ..\../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "" #: ..\../api/initwx.cpp:470 msgid "Enable remote PACS configuration" msgstr "" #: ..\../api/initwx.cpp:471 #, fuzzy msgid "Enable TLS configuration" msgstr "Напредна подешавања ..." #: ..\../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "" #: ..\../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "" #: ..\../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "" #: ..\../api/initwx.cpp:475 ..\../api/initwx.cpp:476 ..\../api/initwx.cpp:477 #: ..\../api/initwx.cpp:478 ..\../api/initwx.cpp:479 ..\../api/initwx.cpp:480 #, fuzzy msgid "Import" msgstr "Да ли сте сигурни да желите да откажете поступак увоза?" #: ..\../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "" #: ..\../api/initwx.cpp:476 #, fuzzy msgid "Show accession number input" msgstr "Број напада" #: ..\../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "" #: ..\../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" #: ..\../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "" #: ..\../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "" #: ..\../api/initwx.cpp:482 msgid "HL7 Service" msgstr "" #: ..\../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "" #: ..\../api/initwx.cpp:483 ..\../api/initwx.cpp:484 ..\../api/initwx.cpp:485 msgid "XML dicomization" msgstr "" #: ..\../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "" #: ..\../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "" #: ..\../api/initwx.cpp:485 #, fuzzy msgid "Default ORU template" msgstr "Основно" #: ..\../api/initwx.cpp:488 ..\../api/initwx.cpp:489 ..\../api/initwx.cpp:491 #: ..\../api/initwx.cpp:493 ..\../api/initwx.cpp:494 ..\../api/initwx.cpp:495 #: ..\../api/initwx.cpp:496 ..\../api/initwx.cpp:498 msgid "Style" msgstr "" #: ..\../api/initwx.cpp:503 #, fuzzy, c-format msgid "Download %s images" msgstr " (слика — %d)" #: ..\../api/initwx.cpp:504 ..\../api/initwx.cpp:508 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:21 #, fuzzy msgid "PACS" msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../api/initwx.cpp:507 #, fuzzy msgid "Download all modalities" msgstr "Све" #: ..\../api/initwx.cpp:510 msgid "OpenGL" msgstr "" #: ..\../api/initwx.cpp:510 msgid "Enable shaders" msgstr "" #: ..\../api/initwx.cpp:513 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:388 #, fuzzy msgid "Ginkgo Cloud" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../api/initwx.cpp:513 msgid "Download from Ginkgo Cloud" msgstr "" #: ..\../api/initwx.cpp:560 msgid "Tools loading base ..." msgstr "" #: ..\../api/initwx.cpp:562 msgid "Starting tools..." msgstr "" #: ..\../api/initwx.cpp:566 msgid "Loading plugins ..." msgstr "" #: ..\../api/initwx.cpp:580 msgid "Unable to start GinkgoCADx:\n" msgstr "" #: ..\../api/initwx.cpp:580 ..\../api/initwx.cpp:621 #, fuzzy msgid "error" msgstr "Грeшкa" #: ..\../api/initwx.cpp:584 msgid "Loading resources ..." msgstr "" #: ..\../api/initwx.cpp:587 msgid "Starting services..." msgstr "" #: ..\../api/initwx.cpp:601 #, fuzzy msgid "Configuring environment ..." msgstr "Грешка подешавања мреже" #: ..\../api/initwx.cpp:621 msgid "Failed to set permissions:\n" msgstr "" #: ..\../api/initwx.cpp:634 msgid "Updating ..." msgstr "" #: ..\../api/initwx.cpp:638 msgid "Interpreting parameters ..." msgstr "" #: ..\../api/initwx.cpp:689 #, fuzzy msgid "Error unregistering tools: " msgstr "Грeшкa" #: ..\../api/initwx.cpp:769 msgid "Starting" msgstr "" #: ..\../api/ivista.cpp:36 ..\../commands/comandocarga.cpp:73 msgid "Loading..." msgstr "" #: ..\../api/iwidgets.cpp:268 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ..\../main/gui/import/pasosimportacionbase.cpp:151 #, fuzzy msgid "Name" msgstr "" "\n" "* Надовезивање имена и презимена пацијената не може бити више од 61." #: ..\../api/iwidgets.cpp:285 msgid "Area" msgstr "Област" #: ..\../api/iwidgets.cpp:302 #, fuzzy msgid "Perimeter" msgstr "Обим : " #: ..\../api/iwidgets.cpp:316 msgid "Travel (I)" msgstr "" #: ..\../api/iwidgets.cpp:326 msgid "Travel (M)" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #: ..\../api/threads/thread.cpp:120 msgid "Threading" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid "Error while running thread: " msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid " : " msgstr " : " #: ..\../api/threads/thread.cpp:120 msgid "Internal error while running thread: " msgstr "" #: ..\../api/widgetserializable.cpp:60 #, fuzzy msgid "Creation Date" msgstr "Датум" #: ..\../api/widgetserializable.cpp:65 #, fuzzy msgid "Modification Date" msgstr "Датум" #: ..\../api/widgetserializable.cpp:68 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ..\../wx/gnkinforme/gnkinformebase.cpp:40 #, fuzzy msgid "Physician" msgstr "„code“ атрибут је очекиван на „physician“ досегу" #: ..\../commands/acquirefromurlcommand.cpp:55 #: ..\../commands/pacsdownloadcommand.cpp:88 #: ..\../commands/synchronizationcommand.cpp:70 msgid "Downloading files ..." msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:69 #: ..\../commands/synchronizationcommand.cpp:91 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, fuzzy, c-format msgid "Downloading file %d" msgstr "&Датотека" #: ..\../commands/acquirefromurlcommand.cpp:81 #, fuzzy msgid "Error downloading file: " msgstr "&Датотека" #: ..\../commands/acquirefromurlcommand.cpp:95 #: ..\../commands/pacsdownloadcommand.cpp:114 #: ..\../commands/synchronizationcommand.cpp:121 #, fuzzy msgid "Internal Error" msgstr "Грешка: Унутрашња грешка." #: ..\../commands/acquirefromurlcommand.cpp:115 #, fuzzy msgid "Error downloading files: " msgstr "Грeшкa" #: ..\../commands/autocleaningcommand.cpp:62 msgid "Cleaning dicomdir..." msgstr "" #: ..\../commands/cloudcommand.cpp:67 msgid "Downloading files..." msgstr "" #: ..\../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "" #: ..\../commands/cloudcommand.cpp:183 #, fuzzy msgid "Unknown operation" msgstr "<непознат ИБ>" #: ..\../commands/cloudcommand.cpp:188 msgid "Error in cloud operation. See log to get more details..." msgstr "" #: ..\../commands/cloudcommand.cpp:249 msgid "Could to retrieve study." msgstr "" #: ..\../commands/cloudcommand.cpp:260 ..\../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" #: ..\../commands/cloudcommand.cpp:262 #, fuzzy msgid "Error retrieving study." msgstr "Грешка отварања студије" #: ..\../commands/cloudcommand.cpp:271 #, fuzzy msgid "Study successfully retrieved." msgstr "Грешка отварања студије" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "Speed" msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 #, fuzzy msgid "bytes/sec during" msgstr " бајта од укупно " #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "seconds" msgstr "" #: ..\../commands/cloudcommand.cpp:275 msgid "Empty Response" msgstr "" #: ..\../commands/cloudcommand.cpp:289 msgid "Extracting files..." msgstr "" #: ..\../commands/cloudcommand.cpp:313 ..\../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "" #: ..\../commands/cloudcommand.cpp:383 msgid "Could to perform query." msgstr "" #: ..\../commands/cloudcommand.cpp:396 msgid "Error perfoming the query." msgstr "" #: ..\../commands/cloudcommand.cpp:405 msgid "Query successfully performed." msgstr "" #: ..\../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "" #: ..\../commands/cloudcommand.cpp:472 #, fuzzy msgid "Unknown JSon attribute:" msgstr "<непознат ИБ>" #: ..\../commands/cloudcommand.cpp:482 #, fuzzy msgid "Error parsing JSon: " msgstr "Грeшкa" #: ..\../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "" #: ..\../commands/cloudcommand.cpp:515 #: ..\../commands/openremovableunit.cpp:148 ..\../main/gui/open/abrir.cpp:119 #: ..\../main/gui/open/abrir.cpp:159 ..\../main/gui/open/opendialogs.cpp:146 #, fuzzy msgid "Storing in the history..." msgstr "&Очисти историјат" #: ..\../commands/comandoactualizaciones.cpp:46 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:536 msgid "Check Updates" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:136 msgid "Not enough parameters found on XML" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:145 #, fuzzy msgid "XML parsing internal error" msgstr "Грешка: Унутрашња грешка." #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Error checking application updates" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:156 #, fuzzy msgid "Ginkgo CADx updates" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../commands/comandoactualizaciones.cpp:170 #, fuzzy msgid "Internal error checking updates" msgstr "Грешка: Унутрашња грешка." #: ..\../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "" #: ..\../commands/comandocarga.cpp:92 ..\../commands/comandocarga.cpp:96 msgid "Exception loading:" msgstr "" #: ..\../commands/comandocarga.cpp:100 #, fuzzy msgid "Study malformed or unsupported" msgstr " неподржани састојци" #: ..\../commands/comandocarga.cpp:129 ..\../commands/comandocarga.cpp:139 #, fuzzy msgid "Error loading study: " msgstr "Грешка отварања студије" #: ..\../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "" #: ..\../commands/comandocarga.cpp:144 #, fuzzy msgid "Error loading study." msgstr "Грешка отварања студије" #: ..\../commands/comandocarga.cpp:149 msgid "Load canceled by user" msgstr "" #: ..\../commands/comandocarga.cpp:156 #: ..\../main/gui/history3/historypanel3.cpp:1056 #: ..\../main/gui/history3/historypanel3.cpp:1063 #: ..\../main/gui/history3/historypanel3.cpp:1068 #, fuzzy msgid "Error loading study" msgstr "Грешка отварања студије" #: ..\../commands/comandoexportacion.cpp:81 #: ..\../commands/exporttodicomdircommand.cpp:214 msgid "Exporting files..." msgstr "" #: ..\../commands/comandoexportacion.cpp:105 #: ..\../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "" #: ..\../commands/comandoexportacion.cpp:158 #, fuzzy, c-format msgid "Exporting file %d of %d" msgstr " (слика — %d)" #: ..\../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "" #: ..\../commands/comandoexportacion.cpp:233 #, fuzzy msgid "image_%m-%d-%Y_" msgstr "%d. %m. %Y." #: ..\../commands/comandoincluirhistorial.cpp:108 msgid "Exploring directory ..." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:122 msgid "Reading DICOMDIR ..." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:142 #: ..\../commands/comandoincluirhistorial.cpp:156 #: ..\../commands/comandoincluirhistorial.cpp:177 #, fuzzy msgid "Including files in the history .." msgstr "&Очисти историјат" #: ..\../commands/comandoincluirhistorial.cpp:196 msgid "Exploring directory " msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:256 #: ..\../commands/linkhistorycommand.cpp:118 #, fuzzy msgid "Image acquisition finished." msgstr "Нема преклапања на овој слици" #: ..\../commands/comandoincluirhistorial.cpp:258 #, c-format msgid "There have been included %d images." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:261 #: ..\../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" "\n" "Постоје %d грешке (погледајте дневник за опширнији опис)" #: ..\../commands/comandoincluirhistorial.cpp:273 #: ..\../commands/linkhistorycommand.cpp:133 #, fuzzy msgid "This files doesn't exist:" msgstr " не постоји" #: ..\../commands/comandoincluirhistorial.cpp:284 #: ..\../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:296 #: ..\../commands/linkhistorycommand.cpp:156 #, fuzzy msgid "This files are Dicom Dirs:" msgstr "Придруживање(dicom://" #: ..\../commands/comandopacs.cpp:58 ..\../commands/pacsdownloadcommand.cpp:61 #: ..\../commands/sendpacscommand.cpp:137 msgid "There is not any Remote PACS configured" msgstr "" #: ..\../commands/comandopacs.cpp:84 #, fuzzy msgid "Querying PACS ..." msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "" #: ..\../commands/comandopacs.cpp:98 msgid "Starting Search ..." msgstr "" #: ..\../commands/comandopacs.cpp:108 #: ..\../commands/pacsdownloadcommand.cpp:101 #, fuzzy msgid "Server ID not found. ID = " msgstr "<непознат ИБ>" #: ..\../commands/comandopacs.cpp:110 ..\../commands/comandopacs.cpp:112 #: ..\../commands/comandopacs.cpp:114 ..\../commands/comandopacs.cpp:116 #, fuzzy msgid "Query error with PACS Id " msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../commands/comandopacs.cpp:116 #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/gui/history3/historypanel3.cpp:1068 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 #, fuzzy msgid "Internal error" msgstr "Грешка: Унутрашња грешка." #: ..\../commands/comandopacs.cpp:135 msgid "Failed to perform search: " msgstr "" #: ..\../commands/dbmigrationcommand.cpp:94 #: ..\../commands/dbmigrationcommand.cpp:103 msgid "Migrating old DICOM Dir ..." msgstr "" #: ..\../commands/dbmigrationcommand.cpp:99 #: ..\../commands/dbmigrationcommand.cpp:108 msgid "Including files ..." msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 #: ..\../commands/dicomizecommand.cpp:181 #: ..\../commands/openremovableunit.cpp:74 #: ..\../commands/openremovableunit.cpp:110 #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../commands/pdfextractercommand.cpp:130 #: ..\../main/controllers/historycontroller.cpp:447 #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 #: ..\../main/controllers/historycontroller.cpp:1976 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ..\../main/gui/export/parametrosprincipales.cpp:161 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 #: ..\../main/gui/history3/historypanel3.cpp:1045 #: ..\../main/gui/history3/historypanel3.cpp:1078 #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1119 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 #: ..\../main/gui/import/selectimagesimportation.cpp:141 #: ..\../main/gui/import/selectimagesimportation.cpp:342 #: ..\../main/gui/import/selectimagesimportation.cpp:743 #: ..\../main/gui/import/selectimagesimportation.cpp:761 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ..\../main/gui/login/dialogologin.cpp:50 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ..\../main/gui/open/opendialogs.cpp:58 #: ..\../main/gui/open/opendialogs.cpp:62 #: ..\../main/gui/open/opendialogs.cpp:134 #: ..\../main/gui/progress/statusbarprogreso.cpp:284 #: ..\../main/gui/progress/statusbarprogreso.cpp:287 #: ..\../main/gui/progress/statusbarprogreso.cpp:292 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #: ..\../main/gui/history3/openwithdialog.h:72 #, fuzzy msgid "Info" msgstr "Подаци" #: ..\../commands/dbmigrationcommand.cpp:123 msgid "Migration finisthed successfully" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:27 #: ..\../commands/dialogopathssobreescribirbase.cpp:62 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "Overwrite" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:65 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ..\../main/gui/history3/historypanel3base.cpp:339 #: ..\../main/gui/history3/historypanel3base.cpp:415 #: ..\../main/gui/history3/historypanel3base.cpp:486 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ..\../main/gui/open/opendialogsbase.cpp:53 #: ..\../main/gui/open/opendialogsbase.cpp:131 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ..\../widgets/gui/calibracionbase.cpp:86 #: ..\../widgets/gui/selecciontextobase.cpp:60 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "Откажи" #: ..\../commands/dicomizationcompletebase.cpp:24 #: ..\../commands/dicomizationcompletebase.cpp:33 #: ..\../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:56 msgid "Don't show this message again" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:62 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ..\../main/gui/history3/historypanel3base.cpp:411 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ..\../widgets/gui/calibracionbase.cpp:82 #: ..\../widgets/gui/selecciontextobase.cpp:56 msgid "Accept" msgstr "Прихвати" #: ..\../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "" #: ..\../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "" #: ..\../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "" #: ..\../commands/dicomizecommand.cpp:179 msgid "Import process failed:" msgstr "" #: ..\../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" "\n" "Да ли желите да покушате поново?" #: ..\../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "" #: ..\../commands/dicomizecommand.cpp:370 msgid "Unknown error in dicomization process" msgstr "" #: ..\../commands/dicomizecommand.cpp:431 #: ..\../commands/dicomizecommand.cpp:442 #: ..\../commands/sendpacscommand.cpp:185 #, fuzzy msgid "Error sending evidences:" msgstr "Грeшкa" #: ..\../commands/dicomizecommand.cpp:437 #: ..\../commands/dicomizecommand.cpp:448 #, fuzzy msgid "Can not upload to the PACS:\n" msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:261 #: ..\../commands/exporttodicomdircommand.cpp:338 #, fuzzy, c-format msgid "Exporting series %d of %d" msgstr " (слика — %d)" #: ..\../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:279 #: ..\../commands/exporttodicomdircommand.cpp:385 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #, fuzzy msgid "There was an error creating directory" msgstr "Грeшкa" #: ..\../commands/exporttodicomdircommand.cpp:303 #: ..\../commands/exporttodicomdircommand.cpp:408 #, fuzzy msgid "There was an error writing file" msgstr "&Датотека" #: ..\../commands/exporttodicomdircommand.cpp:358 #, fuzzy msgid "There was an error anonymizing files" msgstr "Грeшкa" #: ..\../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Ignoring incoming operation " msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:298 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:473 #: ..\../commands/pacsdownloadcommand.cpp:170 #: ..\../commands/pacsdownloadcommand.cpp:179 msgid "Including files..." msgstr "" #: ..\../commands/linkhistorycommand.cpp:68 #, fuzzy msgid "Linking study..." msgstr "Грешка отварања студије" #: ..\../commands/openremovableunit.cpp:42 #: ..\../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "" #: ..\../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" #: ..\../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" #: ..\../commands/openremovableunit.cpp:130 #, fuzzy msgid "Select drive you want to open" msgstr "Изаберите преглед који желите да ускладите са текућим" #: ..\../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" #: ..\../commands/pacsdownloadcommand.cpp:134 #, fuzzy msgid "Error downloading study: " msgstr "Грешка отварања студије" #: ..\../commands/pdfextractercommand.cpp:103 msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "" #: ..\../commands/pdfextractercommand.cpp:103 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ..\../main/gui/progress/statusbarprogreso.cpp:278 #: ..\../widgets/gui/calibracion.cpp:205 ..\../widgets/gui/calibracion.cpp:209 #: ..\../widgets/gui/calibracion.cpp:219 ..\../widgets/gui/calibracion.cpp:225 #: ..\../widgets/gui/calibracion.cpp:229 #, fuzzy msgid "Error" msgstr "Грeшкa" #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "" #: ..\../commands/pdfextractercommand.cpp:130 msgid "PDF files extracted successfully..." msgstr "" #: ..\../commands/secondarycapturedicomizecommand.cpp:73 #, fuzzy msgid "Ginkgo CADx Secondary Capture" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "" #: ..\../commands/sendhl7command.cpp:73 msgid "Message successfully sent" msgstr "" #: ..\../commands/sendhl7command.cpp:77 #, fuzzy msgid "Unknown protocol" msgstr "<непознат ИБ>" #: ..\../commands/sendhl7command.cpp:80 ..\../commands/sendhl7command.cpp:93 #: ..\../commands/sendhl7command.cpp:145 #, fuzzy msgid "Error sending message:" msgstr "Грeшкa" #: ..\../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "" #: ..\../commands/sendhl7command.cpp:93 ..\../commands/sendhl7command.cpp:94 #, fuzzy msgid "Unknown error" msgstr "<непознат ИБ>" #: ..\../commands/sendhl7command.cpp:134 msgid "Failed to start connection" msgstr "" #: ..\../commands/sendhl7command.cpp:148 msgid "Error sending message. It was sent " msgstr "" #: ..\../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr " бајта од укупно " #: ..\../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "" #: ..\../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "" #: ..\../commands/sendhl7command.cpp:258 msgid "Failed delivery confirmation:" msgstr "" #: ..\../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "" #: ..\../commands/sendpacscommand.cpp:51 #, fuzzy msgid "Send files to PACS" msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../commands/sendpacscommand.cpp:155 msgid "Uploading files ..." msgstr "" #: ..\../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "" #: ..\../commands/sendpacscommand.cpp:181 #, fuzzy msgid "Error:" msgstr "Грeшкa" #: ..\../commands/sendpacscommand.cpp:189 #, fuzzy msgid "Error sending evidences: Internal error." msgstr "Грешка: Унутрашња грешка." #: ..\../commands/sendpacscommand.cpp:203 #, fuzzy msgid "Error uploading the study to PACS: " msgstr "Грешка отварања студије" #: ..\../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" #: ..\../commands/sendpacscommand.cpp:206 #, fuzzy msgid "Retry send to PACS" msgstr "" "\n" "Да ли желите да покушате поново?" #: ..\../commands/synchronizationcommand.cpp:104 #, fuzzy msgid "Error downloading file" msgstr "&Датотека" #: ..\../commands/synchronizationcommand.cpp:141 #, fuzzy msgid "Error synchronizing study: " msgstr "Грешка отварања студије" #: ..\../commands/thumbnailscommand.cpp:107 #: ..\../commands/thumbnailscommand.cpp:133 #: ..\../commands/thumbnailscommand.cpp:247 #: ..\../commands/thumbnailscommand.cpp:376 #: ..\../commands/thumbnailscommand.cpp:382 #: ..\../main/gui/import/selectimagesimportation.cpp:504 msgid "Creating Thumbnail..." msgstr "" #: ..\../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "" #: ..\../export/tools/iaddfiletohistorytool.cpp:19 #: ..\../main/gui/history3/historypanel3.cpp:632 #, fuzzy msgid "Open study" msgstr "Грешка отварања студије" #: ..\../export/tools/iangletool.cpp:19 msgid "Angle \tCtrl+A" msgstr "Угао Ктрл+А" #: ..\../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "" #: ..\../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "" #: ..\../export/tools/icolormaptool.cpp:20 msgid "Color Map" msgstr "Мапа боја" #: ..\../export/tools/icopyimagetoclipboardtool.cpp:19 #: ..\../main/gui/open/opendialogsbase.cpp:46 #: ..\../main/gui/open/opendialogsbase.cpp:198 msgid "Copy" msgstr "" #: ..\../export/tools/icornerannotationstool.cpp:20 msgid "Window annotations" msgstr "" #: ..\../export/tools/idetachwindowtool.cpp:19 #, fuzzy msgid "Detach window" msgstr "Откачи преглед" #: ..\../export/tools/iimageexporttool.cpp:19 #, fuzzy msgid "Export image..." msgstr "Нема преклапања на овој слици" #: ..\../export/tools/imarkertool.cpp:20 msgid "Marking Tools \tCtrl+M" msgstr "" #: ..\../export/tools/imetricgridtool.cpp:20 #, fuzzy msgid "Metric grid" msgstr "Мрежа" #: ..\../export/tools/inotetool.cpp:19 msgid "Text Note \tCtrl+N" msgstr "" #: ..\../export/tools/ipacsuploadtool.cpp:19 #, fuzzy msgid "Upload study..." msgstr "Грешка отварања студије" #: ..\../export/tools/ipixelsbluringtool.cpp:20 msgid "Pixels blurring" msgstr "" #: ..\../export/tools/ipointertool.cpp:19 msgid "Pointer \tEsc" msgstr "" #: ..\../export/tools/iqueryretrievetool.cpp:19 #: ..\../main/tools/queryretrievehistorytool.cpp:25 #: ..\../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "" #: ..\../export/tools/iresettool.cpp:19 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 msgid "Reset" msgstr "" #: ..\../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "" #: ..\../export/tools/iruletool.cpp:19 #, fuzzy msgid "Rule \tCtrl+R" msgstr "П-Р-Т осе: " #: ..\../export/tools/isecondarycapturetool.cpp:19 msgid "Save snapshot as new series..." msgstr "" #: ..\../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "" #: ..\../export/tools/ishowtagstool.cpp:19 #: ..\../main/tools/showtagshistorytool.cpp:27 #, fuzzy msgid "DICOM inspector" msgstr "Придруживање(dicom://" #: ..\../export/tools/isimpleprinttool.cpp:19 #: ..\../main/tools/simpleprinttool.cpp:226 msgid "Print" msgstr "" #: ..\../export/tools/istartdicomizationtool.cpp:19 msgid "Dicomize..." msgstr "" #: ..\../export/tools/itoolpan.cpp:19 #, fuzzy msgid "Pan \tCtrl+P" msgstr "П-Р-Т осе: " #: ..\../export/tools/itoolslider.cpp:19 #, fuzzy msgid "Slider \tCtrl+S" msgstr "Угао Ктрл+А" #: ..\../export/tools/itoolwindowlevel.cpp:19 msgid "Window/Level \tCtrl+W" msgstr "" #: ..\../export/tools/itoolzoom.cpp:19 #, fuzzy msgid "Zoom \tCtrl+O" msgstr "Угао Ктрл+А" #: ..\../export/tools/itrackballtool.cpp:19 #, fuzzy msgid "Trackball \tCtrl+T" msgstr "П-Р-Т осе: " #: ..\../export/tools/iundotool.cpp:20 ..\../main/tools/undotool.cpp:109 msgid "Undo" msgstr "" #: ..\../export/tools/ivideotool.cpp:19 #, fuzzy msgid "Video \tCtrl+Space" msgstr "Угао Ктрл+А" #: ..\../export/tools/iwindowlayouttool.cpp:20 #, fuzzy msgid "Window layout" msgstr "1x1 распоред" #: ..\../main/controllers/controladorcarga.cpp:161 #, fuzzy msgid "Studies with" msgstr "" "Грешка: Систем је остао без меморије. Затворите неке студије да ослободите " "меморију." #: ..\../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr " неподржани састојци" #: ..\../main/controllers/controladorcarga.cpp:210 msgid "Reading properties" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:219 #: ..\../main/controllers/controladorcarga.cpp:642 #: ..\../main/controllers/controladorcarga.cpp:888 #: ..\../main/controllers/streaming/streamingloader.cpp:600 #, fuzzy msgid "Error reading the study: " msgstr "Грешка отварања студије" #: ..\../main/controllers/controladorcarga.cpp:224 #: ..\../main/controllers/controladorcarga.cpp:229 #: ..\../main/controllers/controladorcarga.cpp:647 #: ..\../main/controllers/controladorcarga.cpp:893 #, fuzzy msgid "Internal error reading the study: " msgstr "Грешка: Унутрашња грешка." #: ..\../main/controllers/controladorcarga.cpp:269 #: ..\../main/controllers/controladorcarga.cpp:281 #: ..\../main/controllers/controladorcarga.cpp:905 msgid "Spacing is not valid: (" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:305 #: ..\../main/controllers/controladorcarga.cpp:338 #: ..\../main/controllers/controladorcarga.cpp:372 #: ..\../main/controllers/controladorcarga.cpp:408 #: ..\../main/controllers/controladorcarga.cpp:441 #: ..\../main/controllers/controladorcarga.cpp:474 #: ..\../main/controllers/controladorcarga.cpp:507 #: ..\../main/controllers/controladorcarga.cpp:540 #: ..\../main/controllers/controladorcarga.cpp:573 #: ..\../main/controllers/controladorcarga.cpp:606 #: ..\../main/controllers/controladorcarga.cpp:935 msgid "Error loading the study: Out of memory" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:375 #, fuzzy msgid "Error loading the study: Internal Error" msgstr "Грешка: Унутрашња грешка." #: ..\../main/controllers/controladorcarga.cpp:630 #: ..\../main/controllers/streaming/streamingloader.cpp:1023 #: ..\../main/controllers/streaming/streamingloader.cpp:1223 #: ..\../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:651 #: ..\../main/controllers/controladorcarga.cpp:960 msgid "Process canceled by user." msgstr "" #: ..\../main/controllers/controladorcarga.cpp:878 msgid "Interpreting properties" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:917 #, fuzzy msgid "Spacing of the image is invalid: (" msgstr "Нема преклапања на овој слици" #: ..\../main/controllers/controladorcarga.cpp:942 msgid "Reading dataset" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:951 #, fuzzy msgid "Error reading the study:" msgstr "Грешка отварања студије" #: ..\../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:972 #, fuzzy msgid "load" msgstr "" "Грешка: Потрошили сте видео меморију система и због тога није могуће учитати " "слику. Затворите неке студије да ослободите меморију." #: ..\../main/controllers/controladorenviohl7.cpp:40 msgid "Stopping HL7 sender" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:63 #: ..\../main/controllers/controladorenviohl7.cpp:76 msgid "Error starting HL7 sender" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:65 #: ..\../main/controllers/controladorenviohl7.cpp:78 msgid "HL7 sender started" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:108 msgid "HL7 controller destroyed" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:150 #, fuzzy msgid "Error processing message" msgstr "Грeшкa" #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/controllers/pacscontroller.cpp:1549 #: ..\../main/controllers/pacscontroller.cpp:1553 #: ..\../main/controllers/pacscontroller.cpp:1557 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ..\../main/gui/import/pasosimportacionbase.cpp:195 #: ..\../wx/gnkinforme/gnkinformebase.cpp:184 #, fuzzy msgid "Unknown" msgstr "<непознат ИБ>" #: ..\../main/controllers/controladorextensiones.cpp:110 msgid "Loading" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:153 msgid "Could not find entry point" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:74 msgid "Integration engine hostname not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:77 msgid "Integration engine port not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:91 #, fuzzy msgid "Unsupported protocol" msgstr " неподржани састојци" #: ..\../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "" #: ..\../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "Пронашао сам %d резултата" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, fuzzy, c-format msgid "Downloading file %d/%d" msgstr " (слика — %d)" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:359 #, fuzzy msgid "Image format not supported" msgstr "ЕЦГ запис није подржан" #: ..\../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:200 #, fuzzy msgid "Receiving Association failed: " msgstr "Придруживање(dicom://" #: ..\../main/controllers/dcmtk/dicomservice.cpp:209 #, fuzzy msgid "Association received" msgstr "Придруживање(dicom://" #: ..\../main/controllers/dcmtk/dicomservice.cpp:210 msgid "Parameters:" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr ")" #: ..\../main/controllers/dcmtk/dicomservice.cpp:274 msgid "No valid presentation contexts" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "Association(dicom://" msgstr "Придруживање(dicom://" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "@" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr " до " #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, fuzzy, c-format msgid "Uploading file %d of %d" msgstr " (слика — %d)" #: ..\../main/controllers/dicommanager.cpp:504 #: ..\../main/controllers/dicommanager.cpp:531 #, fuzzy msgid "Extracting file..." msgstr "&Датотека" #: ..\../main/controllers/historycontroller.cpp:323 msgid "Error creating history database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr "" #: ..\../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" #: ..\../main/controllers/historycontroller.cpp:343 msgid "Error creating dicomDir database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:425 #: ..\../main/controllers/historycontroller.cpp:441 msgid "Error creating thumbnails database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:560 #, fuzzy msgid "Including image " msgstr "Нема преклапања на овој слици" #: ..\../main/controllers/historycontroller.cpp:560 #: ..\../main/controllers/historycontroller.cpp:707 msgid " of " msgstr " од " #: ..\../main/controllers/historycontroller.cpp:707 #, fuzzy msgid "Linking image " msgstr "Нема преклапања на овој слици" #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "" #: ..\../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:493 #, fuzzy msgid "Malformed template Id (" msgstr "<непознат ИБ>" #: ..\../main/controllers/integrationcontroller.cpp:493 #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:540 #, fuzzy msgid "Template Id unsupported (" msgstr " неподржани састојци" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "" "):\n" "Проверите подешавање и приложите га ако је неопходно" #: ..\../main/controllers/integrationcontroller.cpp:566 #, fuzzy msgid "Unknown module Id (" msgstr "<непознат ИБ>" #: ..\../main/controllers/integrationcontroller.cpp:592 #, fuzzy msgid "Empty configuration" msgstr "Напредна подешавања ..." #: ..\../main/controllers/integrationcontroller.cpp:631 msgid "XML Parser Not Found. Key=" msgstr "" #: ..\../main/controllers/log4cplus/guiappender.cpp:75 #, fuzzy msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "%d. %m. %Y. %H:%M:%S" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ..\../main/gui/history3/historypanel3base.cpp:48 #: ..\../main/gui/import/pasosimportacionbase.cpp:227 #, fuzzy msgid "Patient" msgstr "" "\n" "* Потребан је ИБ пацијента." #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #, fuzzy msgid "Patient ID" msgstr "" "\n" "* Потребан је ИБ пацијента." #: ..\../main/controllers/modalitysettingscontroller.cpp:86 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ..\../main/gui/history3/historypanel3.cpp:227 #: ..\../main/gui/open/opendialogs.cpp:50 #, fuzzy msgid "Modality" msgstr " у начин " #: ..\../main/controllers/modalitysettingscontroller.cpp:98 msgid "Dimensions" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:109 #, c-format msgid "Made with %s" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:167 #: ..\../main/controllers/modalitysettingscontroller.cpp:338 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "Основно" #: ..\../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1212 #, fuzzy msgid "Downloading file" msgstr "&Датотека" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Error downloading WADO file" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1318 #, fuzzy msgid "Check PACS configuration" msgstr "Напредна подешавања ..." #: ..\../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1428 #, fuzzy msgid "Invalid HTTP response" msgstr "„action“ атрибут је неисправан на „gnkworkflow“ досегу" #: ..\../main/controllers/pacscontroller.cpp:1433 #, fuzzy msgid "Invalid HTTP code" msgstr "„code“ атрибут је очекиван на „patient“ досегу" #: ..\../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1472 #, fuzzy msgid "PACS-Service" msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../main/controllers/parserxmlenglish.cpp:97 #: ..\../main/controllers/parserxmlspanish.cpp:94 msgid "Omitted Identificator" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:105 #: ..\../main/controllers/parserxmlspanish.cpp:102 #, fuzzy msgid "Omitted AET" msgstr "АЕТ" #: ..\../main/controllers/parserxmlenglish.cpp:113 #: ..\../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:121 #: ..\../main/controllers/parserxmlspanish.cpp:118 #, fuzzy msgid "Omitted port" msgstr "" "\n" "— Прикључник је превелик" #: ..\../main/controllers/parserxmlenglish.cpp:206 #: ..\../main/controllers/parserxmlenglish.cpp:237 #: ..\../main/controllers/parserxmlspanish.cpp:188 #: ..\../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:212 #: ..\../main/controllers/parserxmlspanish.cpp:194 #, fuzzy msgid "Port is not a valid number" msgstr "Број напада" #: ..\../main/controllers/parserxmlenglish.cpp:248 #: ..\../main/controllers/parserxmlspanish.cpp:228 #, fuzzy msgid "The port is not a valid number" msgstr "Број напада" #: ..\../main/controllers/parserxmlenglish.cpp:265 #: ..\../main/controllers/parserxmlspanish.cpp:246 #, fuzzy msgid "Setting not found" msgstr "Нисам пронашао мерења" #: ..\../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "„action“ атрибут је неисправан на „gnkworkflow“ досегу" #: ..\../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "„action“ атрибут је очекиван на „gnkworkflow“ досегу" #: ..\../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "„pacs-retrieve-sid“ атрибут је празан на „gnkworkflow“ досегу" #: ..\../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "„pacs-store-sid“ атрибут је празан на „gnkworkflow“ досегу" #: ..\../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "„value“ атрибут је очекиван на „query-retrieve-level“ досегу" #: ..\../main/controllers/parserxmlenglish.cpp:391 msgid "\"code\" attribute expected at \"patient\" scope" msgstr "„code“ атрибут је очекиван на „patient“ досегу" #: ..\../main/controllers/parserxmlenglish.cpp:427 msgid "\"code\" attribute expected at \"physician\" scope" msgstr "„code“ атрибут је очекиван на „physician“ досегу" #: ..\../main/controllers/parserxmlenglish.cpp:434 msgid "\"value\" attribute expected at \"physician\" scope" msgstr "„value“ атрибут је очекиван на „physician“ досегу" #: ..\../main/controllers/parserxmlenglish.cpp:445 msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "„iid“ атрибут је очекиван на „institution“ досегу" #: ..\../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "„code“ атрибут је очекиван на „metadata“ досегу" #: ..\../main/controllers/parserxmlenglish.cpp:483 msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "„key“ атрибут је очекиван на „metadata“ досегу" #: ..\../main/controllers/parserxmlenglish.cpp:548 #: ..\../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:552 #: ..\../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:570 #: ..\../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "„accion“ атрибут је неисправан на „plantilla“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "„accion“ атрибут је очекиван на „plantilla“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "„pacs_retrieve_sid“ атрибут је празан на „plantilla“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "„pacs_store_sid“ атрибут је празан на „plantilla“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:340 msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "„uid“ атрибут је очекиван на „dimse“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "„ambito“ атрибут је неисправан на „dimse“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "„ambito“ атрибут је очекиван на „dimse“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:402 msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "„codigo“ атрибут је очекиван на „paciente“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:438 msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "„codigo“ атрибут је очекиван на „medico“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:445 msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "„valor“ атрибут је очекиван на „medico“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "„cid“ атрибут је очекиван на „centro“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "„aid“ атрибут је очекиван на „hce“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:486 msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "„codigo“ атрибут је очекиван на „metadato“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "„clave“ атрибут је очекиван на „metadato“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:524 msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "„id_peticion“ атрибут је очекиван на „gnkworkflow“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "„ambito“ атрибут је очекиван на „plantilla“ досегу" #: ..\../main/controllers/parserxmlspanish.cpp:559 msgid "id_application expected" msgstr "" #: ..\../main/controllers/smartretrievecontroller.cpp:124 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:920 #, fuzzy msgid "Downloading from PACS..." msgstr " бајта од укупно " #: ..\../main/controllers/streaming/streamingloader.cpp:303 #: ..\../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" #: ..\../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ..\../main/gui/history3/historytablemodel.cpp:403 #: ..\../main/gui/history3/historytablemodel.cpp:415 #: ..\../main/gui/history3/historytablemodel.cpp:470 #: ..\../main/gui/history3/historytablemodel.cpp:482 #: ..\../main/gui/open/dicomdirtablemodel.cpp:102 #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "%d. %m. %Y. %H:%M:%S" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "%d. %m. %Y. 00:00:00" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 #, fuzzy msgid "Exploring PACS..." msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ..\../main/gui/history3/historypanel3.cpp:225 #: ..\../main/gui/open/opendialogs.cpp:49 #, fuzzy msgid "Patient id" msgstr "" "\n" "* Потребан је ИБ пацијента." #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ..\../main/gui/history3/historypanel3.cpp:224 #: ..\../main/gui/open/opendialogs.cpp:48 #, fuzzy msgid "Patient name" msgstr "" "\n" "* Надовезивање имена и презимена пацијената не може бити више од 61." #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:479 #, fuzzy msgid "Study Instance UID" msgstr "„uid“ атрибут је очекиван на „dimse“ досегу" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ..\../main/gui/history3/historypanel3.cpp:231 #: ..\../main/gui/open/opendialogs.cpp:53 msgid "Accession number" msgstr "Број напада" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:481 msgid "Study date" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:482 #, fuzzy msgid "Study time" msgstr "Грешка отварања студије" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:490 #, fuzzy msgid "Series Instance UID" msgstr "„uid“ атрибут је очекиван на „dimse“ досегу" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:492 #, fuzzy msgid "Series date" msgstr "Датум" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:493 msgid "Series time" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:519 msgid "No results found" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 msgid "Write query name" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 msgid "This query name is in use, do you want to overwrite it?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 #, fuzzy msgid "Id" msgstr "<непознат ИБ>" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 #, fuzzy msgid "Date Time" msgstr "Датум" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ..\../main/gui/history3/historypanel3.cpp:229 #: ..\../main/gui/import/pasosimportacionbase.cpp:298 #: ..\../main/gui/import/pasosimportacionbase.cpp:340 #: ..\../main/gui/open/opendialogs.cpp:52 msgid "Description" msgstr "Опис" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ..\../main/gui/import/pasosimportacionbase.cpp:276 msgid "Accession Number" msgstr "Број напада" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:210 msgid "Store query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:211 msgid "Remove query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:278 #, fuzzy msgid "There is no any PACS configured" msgstr "Неки датум" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:54 msgid "Study UID" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "Search" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:519 msgid "Download series" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 #, fuzzy msgid "Download study" msgstr "Грешка отварања студије" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:535 msgid "Link series" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:537 #, fuzzy msgid "Link study" msgstr "Грешка отварања студије" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:551 msgid "Properties..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 msgid "You must specify at least a modality or a period of time" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 msgid "Select a valid query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 msgid "Select a valid PACS Server" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 #, fuzzy msgid "Download of modality " msgstr " у начин " #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr " није допуштено" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 #, fuzzy msgid "Modality download error" msgstr " у начин " #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:786 msgid "search results" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:913 msgid "Downloading serie..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:916 #, fuzzy msgid "Downloading study..." msgstr "Грешка отварања студије" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:165 #, fuzzy msgid "PACS acquisition is restricted" msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:96 msgid "Server" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ..\../main/gui/import/pasosimportacionbase.cpp:284 #: ..\../main/gui/import/pasosimportacionbase.cpp:326 #: ..\../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "Датум" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ..\../main/gui/history3/historypanel3base.cpp:81 msgid "Any date" msgstr "Неки датум" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ..\../main/gui/history3/historypanel3base.cpp:85 msgid "Today AM" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ..\../main/gui/history3/historypanel3base.cpp:88 msgid "Today PM" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ..\../main/gui/history3/historypanel3base.cpp:91 msgid "Today" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ..\../main/gui/history3/historypanel3base.cpp:100 msgid "Yesterday" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ..\../main/gui/history3/historypanel3base.cpp:103 msgid "Last 7 days" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ..\../main/gui/history3/historypanel3base.cpp:106 msgid "Last 30 days" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ..\../main/gui/history3/historypanel3base.cpp:109 msgid "Last 3 months" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ..\../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "Између:" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ..\../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 msgid "Stored queries" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:216 msgid "Select stored queries..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ..\../main/gui/open/opendialogsbase.cpp:50 #: ..\../main/gui/open/opendialogsbase.cpp:202 msgid "Link" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:289 msgid "Download" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ..\../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "Затвори" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:329 #, fuzzy msgid "Series does not exist" msgstr " не постоји" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ..\../main/gui/open/opendialogsbase.cpp:127 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ..\../main/tools/metricgridtool.cpp:101 msgid "Ok" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:151 msgid "Download again" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:441 #, fuzzy msgid "Open" msgstr "Приказивач Гинкго КАДикс-а је отвореног кода" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:179 msgid "Set query name" msgstr "" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:32 msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:34 msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/anonymize/anonymizedialog.cpp:64 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ..\../main/gui/export/parametrosprincipales.cpp:194 #, fuzzy msgid "Exporting images ..." msgstr " (слика — %d)" #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:21 msgid "Common tags" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 msgid "Patient's name and surname" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 #, fuzzy msgid "Patient Id" msgstr "" "\n" "* Потребан је ИБ пацијента." #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "Напомене" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:44 msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:71 #, fuzzy msgid "Add new..." msgstr "Додај" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ..\../main/tools/anonymizetool.cpp:26 #: ..\../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:136 msgid "Create new" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ..\../main/gui/anonymize/anonymizepanelbase.h:136 #, fuzzy msgid "Add DICOM tag" msgstr "Додај" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:199 msgid "Group" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:203 msgid "Element" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ..\../widgets/wangulo.cpp:1114 #, fuzzy msgid "Value" msgstr "Основна вредност" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 msgid "Top right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 msgid "Top left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 msgid "Bottom left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 msgid "Bottom right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 msgid "You must fill in all fields" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 msgid "Window/level label in use" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 msgid "Window" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 #, fuzzy msgid "Level" msgstr "„value“ атрибут је очекиван на „query-retrieve-level“ досегу" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 msgid "Do you confirm the removal of the preset?" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 #, fuzzy msgid "Data modified" msgstr "Подаци" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 #, fuzzy msgid "Modality settings" msgstr " у начин " #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 #, fuzzy msgid "Default modality settings" msgstr " у начин " #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, fuzzy, c-format msgid "%s settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:60 #, fuzzy msgid "settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 #, fuzzy msgid "Export Configuration" msgstr "Напредна подешавања ..." #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Ini Files(*.ini)|*.ini" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #, fuzzy msgid "Existing file" msgstr "&Датотека" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 msgid "Export successfully completed" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #, fuzzy msgid "There was an error during exportation" msgstr "Грeшкa" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 #, fuzzy msgid "Import Configuration" msgstr "Напредна подешавања ..." #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Ini files(*.ini)|*.ini" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 msgid "There was an error during importation, check permissions" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 #, fuzzy msgid "Dicom tag" msgstr "Придруживање(dicom://" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 msgid "Split horizontally..." msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 msgid "Split vertically..." msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ..\../main/tools/windowlayouttool.cpp:273 msgid "Split active horizontally" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ..\../main/tools/windowlayouttool.cpp:274 msgid "Split active vertically" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 msgid "New hanging protocol" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, fuzzy, c-format msgid "Window %d" msgstr " (слика — %d)" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "Yes" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 msgid "Hanging protocols" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 msgid "One day" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 msgid "Two days" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 msgid "Three days" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 msgid "Two weeks" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 msgid "One month" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 msgid "Three months" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 msgid "Local database" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 msgid "Local DICOM Dir setup" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 msgid "Select DICOMDIR" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:126 #, fuzzy msgid "Extensions settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 msgid "Port has to be a valid number" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "Опште" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:190 #, fuzzy msgid "General configuration parameters" msgstr "Опште" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:134 msgid "Testing conectivity with the server..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:144 #, fuzzy msgid "Error connecting to url" msgstr "Грeшкa" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #, fuzzy msgid "hostname/port not set" msgstr "" "\n" "— Прикључник је превелик" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 #, fuzzy msgid "Select certificate" msgstr "Уверење" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:255 #, fuzzy msgid "Change ..." msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 #, fuzzy msgid "Import ..." msgstr "Да ли сте сигурни да желите да откажете поступак увоза?" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:279 #, fuzzy msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "" "\n" "— Ако желите да користите ССЛ/ТЛС треба да подесите исправно уверење и лични " "кључ" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:472 #, fuzzy msgid "There are this errors: " msgstr "" "\n" "Постоје %d грешке (погледајте дневник за опширнији опис)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" "\n" "— Прикључник мора да буде позитиван краћи цео број (16 бита)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" "\n" "— Прикључник је превелик" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" "\n" "— Највећа дужина АЕТ-а је 16 знакова" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" "\n" "— ПДУ величина треба да буде већа или једнака нули (основно = 16384)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" "\n" "— Највећа вредност ПДУ-а је " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" "\n" "— Најмања вредност ПДУ-а је " #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" "\n" "— Ако желите да користите ССЛ/ТЛС треба да подесите исправно уверење и лични " "кључ" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:525 msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:558 msgid "Testing the connection to the node ..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:561 #, fuzzy msgid "DICOM Error" msgstr "Придруживање(dicom://" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:607 msgid "The service did not respond correctly to the DICOM standard" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:616 #, fuzzy msgid "Invalid port number" msgstr "Број напада" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:622 #, fuzzy msgid "WADO Error" msgstr "Грeшкa" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:703 #, fuzzy msgid "Use by default" msgstr "Основно" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:795 #, fuzzy msgid "DICOM nodes" msgstr "Придруживање(dicom://" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:800 #, fuzzy msgid "DICOM nodes settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" "\n" "— Месни прикључник мора да буде позитиван краћи цео број (16 бита)" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" "\n" "— Месни прикључник је превелик" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" "\n" "— Највећа дужина месног АЕТ-а је 16 знакова" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1101 msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ..\../main/gui/export/pasosexportacionbase.cpp:20 msgid "Profile" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "Основна вредност" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 msgid "Set property active" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Set property inactive" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #, fuzzy msgid "Set default value" msgstr "Основна вредност" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:352 msgid "Set by user" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 msgid "Profile name can't be repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:498 #, fuzzy msgid "Profiles Settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 msgid "Confirm the removal of the profile " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:53 msgid "New User" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 msgid "User name repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 msgid "Password has to contain at least 6 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:141 msgid "No login" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 #, fuzzy msgid "User/Password" msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:224 #, fuzzy msgid "Password" msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:191 #, fuzzy msgid "Password is setted" msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 #, fuzzy msgid "Password is not setted" msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:195 #, fuzzy msgid "Set password" msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:224 msgid "Security Setting" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 msgid "User inserted successfully" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #, fuzzy msgid "Password changed successfully" msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 msgid "User deleted successfully" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ..\../main/gui/login/dialogologin.cpp:27 msgid "User" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ..\../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #, fuzzy msgid "Maximum length of title is 8 characters" msgstr "" "\n" "— Највећа дужина АЕТ-а је 16 знакова" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 msgid "Title" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 msgid "Path" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 msgid "Clean before" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 msgid "Clean after" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 #, fuzzy msgid "Location Settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:96 #, fuzzy msgid "Anonymization settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1370 #, fuzzy msgid "Settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 msgid "Export config..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 msgid "Import config..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "Примени" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 msgid "Physician's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 msgid "Physician's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 msgid "Service" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 msgid "Service's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 #, fuzzy msgid "Service's Id" msgstr "<непознат ИБ>" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 msgid "Local institution" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 msgid "Institution's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 msgid "Institution's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 msgid "Dicomized files" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 msgid "Charset" msgstr "Скуп знакова" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 msgid "ISO_IR 148" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 msgid "Automatically check for updates" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ..\../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 #, fuzzy msgid "Proxy settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 msgid "Enable http proxy" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:218 #, fuzzy msgid "Proxy Settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 #, fuzzy msgid "Server settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 msgid "Host" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 #, fuzzy msgid "Port" msgstr "" "\n" "— Прикључник је превелик" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 msgid "Username" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 msgid "No proxy for addresses containing" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 #, fuzzy msgid "DICOM Dir" msgstr "Придруживање(dicom://" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 msgid "Auto-cleaning" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 msgid "MB" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ..\../main/tools/toolwindowlevel.cpp:201 #, fuzzy msgid "Reset to default" msgstr "Основно" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 #, fuzzy msgid "Local AET" msgstr "" "\n" "— Највећа дужина месног АЕТ-а је 16 знакова" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 #, fuzzy msgid "DICOM Nodes" msgstr "Придруживање(dicom://" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 msgid "New ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 #, fuzzy msgid "Edit ..." msgstr "&Уреди" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ..\../main/gui/history3/historypanel3.cpp:677 #: ..\../main/gui/history3/historypanel3.cpp:686 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ..\../main/gui/import/selectimagesimportation.cpp:291 #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete" msgstr "Обриши" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 #, fuzzy msgid "Set Default" msgstr "Основно" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:388 #, fuzzy msgid "DICOM Node" msgstr "Придруживање(dicom://" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "АЕТ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 #, fuzzy msgid "PDU (KB)" msgstr "" "\n" "— Највећа вредност ПДУ-а је " #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 msgid "Retrieve method" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Move" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Get" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 msgid "WADO URL" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 #, fuzzy msgid "Retrieve mode" msgstr "Режим безименог (историјат је очишћен)" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ..\../main/gui/import/pasosimportacionbase.cpp:319 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1395 msgid "Series" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #, fuzzy msgid "Studies" msgstr "" "Грешка: Систем је остао без меморије. Затворите неке студије да ослободите " "меморију." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 msgid "Worklists" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 msgid "Select how do you want to handle MPPS items" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 #, fuzzy msgid "DICOM MPPS" msgstr "Придруживање(dicom://" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 msgid "HL7 messages" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 msgid "HL7" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 msgid "Abort message" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 msgid "Completed message" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 msgid "In progress message" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 #, fuzzy msgid "Default values" msgstr "Основно" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 msgid "Worklist" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 #, fuzzy msgid "SSL/TLS" msgstr "" "\n" "— Ако желите да користите ССЛ/ТЛС треба да подесите исправно уверење и лични " "кључ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 msgid "Verify server credentials" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 #, fuzzy msgid "Use SSL/TLS" msgstr "" "\n" "— Ако желите да користите ССЛ/ТЛС треба да подесите исправно уверење и лични " "кључ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "Уверење" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 #, fuzzy msgid "Certificate to use in this connection" msgstr "Уверење" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "Напредна подешавања ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 #, fuzzy msgid "Default charset" msgstr "Скуп знакова" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 msgid "Advanced" msgstr "Напредно" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 msgid "Local AET certificate" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 #, fuzzy msgid "Certificate used by Ginkgo CADx" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 #, fuzzy msgid "Receiver organization Id" msgstr "<непознат ИБ>" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 #, fuzzy msgid "Petitioner System Id" msgstr "<непознат ИБ>" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 #, fuzzy msgid "Filler Application Id" msgstr "<непознат ИБ>" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 #, fuzzy msgid "Ginkgo CADx Application Id" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 #, fuzzy msgid "Integration engine" msgstr "Обављам задатке обједињавања ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 #, fuzzy msgid "Hostname / Port" msgstr "" "\n" "— Прикључник је превелик" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "/" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 msgid "Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ..\../main/gui/export/pasosexportacionbase.cpp:28 #, fuzzy msgid "Format" msgstr "ЕЦГ запис није подржан" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 #, fuzzy msgid "Message's format" msgstr "ЕЦГ запис није подржан" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 msgid "Test engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 msgid "Test Integration Engine connectivity" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 #, fuzzy msgid "Ginkgo Extension Title" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 #, fuzzy msgid "Edit public key" msgstr "&Уреди" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 msgid "Public key" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 msgid "Public key in PEM format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 #, fuzzy msgid "Load ..." msgstr "" "Грешка: Потрошили сте видео меморију система и због тога није могуће учитати " "слику. Затворите неке студије да ослободите меморију." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 #, fuzzy msgid "Private key" msgstr "" "\n" "— Ако желите да користите ССЛ/ТЛС треба да подесите исправно уверење и лични " "кључ" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 msgid "Private key in PEM format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 msgid "Profile name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 msgid "Set active" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 #, fuzzy msgid "Configure location" msgstr "Подеси мрежу ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 msgid "Location" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 msgid "Security type" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 #, fuzzy msgid "Change Password ..." msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 #, fuzzy msgid "Set main password" msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 #, fuzzy msgid "Set Password" msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:736 #, fuzzy msgid "Edit User" msgstr "&Уреди" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 msgid "User Name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 #, fuzzy msgid "Confirm Password" msgstr "Промените лозинку" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 msgid "Properties" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:814 #, fuzzy msgid "Edit corner annotations" msgstr "&Уреди" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue} where GGGG is the tag's group in hexadecimal and EEEE is the " "tag's element." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 msgid "Window/level" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "Додај" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ..\../main/gui/history3/historytoolmenu.cpp:149 #: ..\../widgets/gui/selecciontextobase.h:58 #, fuzzy msgid "Edit" msgstr "&Уреди" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 #, fuzzy msgid "Default Window/Level" msgstr "Основно" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 msgid "Corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 msgid "Setup corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 msgid "Setup..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 #, fuzzy msgid "Other settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 #, fuzzy msgid "Interpolate pixel data" msgstr "Подаци" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:885 msgid "Hanging protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 #, fuzzy msgid "Opening mode" msgstr "Грешка отварања студије" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 #, fuzzy msgid "Study opening criteria" msgstr "Грешка отварања студије" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 msgid "Workspace" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 msgid "Enable/Disable" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 msgid "Top left corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 msgid "Setup window" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 #, fuzzy msgid "Set default" msgstr "Основно" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 #, fuzzy msgid "Open in main window" msgstr "Приказивач Гинкго КАДикс-а је отвореног кода" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 #, fuzzy msgid "Setup position..." msgstr "Положај : " #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 msgid "Setup undocked window position" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 #, fuzzy msgid "Layout" msgstr "1x1 распоред" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 #, fuzzy msgid "Current layout" msgstr "1x1 распоред" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 msgid "Columns" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 msgid "Series criteria" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 #, fuzzy msgid "Select opening mode" msgstr "Грешка отварања студије" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 msgid "Tag" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 msgid "Save" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 msgid "Enable background queries" msgstr "" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 msgid "Smart retrieve" msgstr "" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 #, fuzzy msgid "Smart retrieve settings" msgstr "Напредна подешавања..." #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.h:64 #, fuzzy msgid "Export DICOM" msgstr "Придруживање(dicom://" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 #, fuzzy msgid "Ginkgo CADx private tags" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ..\../main/gui/history3/historypanel3.cpp:340 #: ..\../main/gui/history3/historytoolmenu.cpp:158 msgid "Export" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ..\../main/gui/export/parametrosprincipales.cpp:157 msgid "Select the directory where the files will be stored" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 msgid "Select the DICOM Dir folder" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 #, fuzzy msgid "DICOM Dir migration" msgstr "Придруживање(dicom://" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 msgid "Migrate existing (recommended)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 msgid "Continue..." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 msgid "Select other" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 msgid "Browse..." msgstr "Разгледај..." #: ..\../main/gui/export/parametrosprincipales.cpp:106 #, fuzzy msgid "DICOM Export" msgstr "Придруживање(dicom://" #: ..\../main/gui/export/parametrosprincipales.cpp:110 msgid "Select the format and the images you want to export" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:143 #, fuzzy msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "Све датотеке (*.*)|*.*" #: ..\../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:150 #, fuzzy msgid "Select file" msgstr "&Датотека" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 #, fuzzy msgid "DICOM (native format)" msgstr "ЕЦГ запис није подржан" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "Image (jpg, bmp, png)" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:38 #, fuzzy msgid "Export all files of opened tab" msgstr " (слика — %d)" #: ..\../main/gui/export/pasosexportacionbase.cpp:55 msgid "JPEG" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:40 #, fuzzy msgid "Image Export Wizard" msgstr "Нема преклапања на овој слици" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ..\../main/gui/license/aboutdialogbase.cpp:67 #: ..\../main/gui/license/aboutdialogbase.cpp:151 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:54 msgid "&Accept" msgstr "&Прихвати" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "&Следеће >" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:32 msgid "Open link" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:402 #, fuzzy msgid "File link:" msgstr "&Датотека" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ..\../main/gui/import/pasosimportacionbase.cpp:270 #, fuzzy msgid "Study" msgstr "Грешка отварања студије" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:216 msgid "User name" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:397 #, fuzzy msgid "Ginkgo Cloud link" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:437 msgid "Copy to clipboard" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "New Ginkgo Cloud study" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "To download the study, paste this url " msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 msgid "Creator" msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 msgid "Last Modificator" msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 #, fuzzy msgid "Show link..." msgstr "Прикажи/сакриј мета податке" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "" #: ..\../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 msgid "Invalid link" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:117 #: ..\../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:119 #: ..\../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:226 #: ..\../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "Године" #: ..\../main/gui/history3/historypanel3.cpp:228 #, fuzzy msgid "Date acquired" msgstr "Датум" #: ..\../main/gui/history3/historypanel3.cpp:230 #, fuzzy msgid "Date added" msgstr "Датум" #: ..\../main/gui/history3/historypanel3.cpp:308 #: ..\../main/gui/history3/historytoolmenu.cpp:82 #: ..\../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:316 #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:363 msgid "All patients" msgstr "Сви болесници" #: ..\../main/gui/history3/historypanel3.cpp:481 #, fuzzy msgid "Results" msgstr "Пронашао сам %d резултата" #: ..\../main/gui/history3/historypanel3.cpp:481 #, c-format msgid " (%d images)" msgstr " (слика — %d)" #: ..\../main/gui/history3/historypanel3.cpp:634 #, fuzzy msgid "Open study with .." msgstr "Грешка отварања студије" #: ..\../main/gui/history3/historypanel3.cpp:663 #: ..\../main/gui/history3/historypanel3base.cpp:482 #, fuzzy msgid "Synchronize" msgstr "Усклади/Врати усклађивање" #: ..\../main/gui/history3/historypanel3.cpp:677 msgid "&Delete from history" msgstr "&Обриши из историјата" #: ..\../main/gui/history3/historypanel3.cpp:686 msgid "&Clear history" msgstr "&Очисти историјат" #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1045 #, fuzzy msgid "Unable to open modality " msgstr " у начин " #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr " са синтаксом преноса " #: ..\../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1086 #, fuzzy msgid "all files" msgstr "Све" #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 msgid "Select at least one series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "those series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "this series" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:57 #, fuzzy msgid "Advanced search" msgstr "Напредно" #: ..\../main/gui/history3/historypanel3base.cpp:73 #, fuzzy msgid "Acquisition date" msgstr "Датум" #: ..\../main/gui/history3/historypanel3base.cpp:302 #: ..\../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "Да ли сте сигурни да желите да обришете " #: ..\../main/gui/history3/historypanel3base.cpp:336 #: ..\../main/gui/history3/historytoolmenu.cpp:102 #: ..\../main/gui/history3/historytoolmenu.cpp:200 #: ..\../main/gui/history3/historytoolmenu.cpp:229 msgid "Remove" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "Увек користи овај преглед за отварање ових датотека" #: ..\../main/gui/history3/historypanel3base.cpp:454 #: ..\../main/gui/history3/historypanel3base.h:187 #, fuzzy msgid "Synchronize files" msgstr "Усклади/Врати усклађивање" #: ..\../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" #: ..\../main/gui/history3/historytablemodel.cpp:406 #: ..\../main/gui/history3/historytablemodel.cpp:418 #: ..\../main/gui/history3/historytablemodel.cpp:473 #: ..\../main/gui/history3/historytablemodel.cpp:485 #: ..\../main/gui/open/dicomdirtablemodel.cpp:105 msgid "00/00/0000 00:00:00" msgstr "00/00/0000 00:00:00" #: ..\../main/gui/history3/historytoolmenu.cpp:138 #, fuzzy msgid "Close history" msgstr "Затвори" #: ..\../main/gui/history3/historytoolmenu.cpp:139 #: ..\../main/gui/startup/startupform.cpp:53 #, fuzzy msgid "History" msgstr "&Очисти историјат" #: ..\../main/gui/history3/historytoolmenu.cpp:201 #: ..\../main/gui/history3/historytoolmenu.cpp:230 #, fuzzy msgid "Clear history" msgstr "&Очисти историјат" #: ..\../main/gui/history3/historytoolmenu.cpp:232 #, fuzzy msgid "Select all" msgstr "Све" #: ..\../main/gui/history3/historytoolmenu.cpp:233 msgid "Deselect all" msgstr "Одзначи све" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 msgid "Destination" msgstr "Одредиште" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 msgid "Status" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 #, fuzzy msgid "Error message" msgstr "Грeшкa" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 #, fuzzy msgid "Show Message" msgstr "Прикажи/сакриј мета податке" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 #, fuzzy msgid "Edit Message" msgstr "&Уреди" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 #, fuzzy msgid "Delete message" msgstr "Обриши" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 #, fuzzy msgid "Error editing message" msgstr "Грeшкa" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 #, fuzzy msgid "Error purguing messages" msgstr "Грeшкa" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Stop" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Sent" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/progress/statusbarprogreso.cpp:281 msgid "Warning" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 #, fuzzy msgid "Error getting message" msgstr "Грeшкa" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 #, fuzzy msgid "Running" msgstr "0 покренутих задатака." #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 msgid "Usually due to an error in sending a message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Start" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 #, fuzzy msgid "Error deleting messages" msgstr "Грeшкa" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 msgid "Remove sent messages" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 #, fuzzy msgid "Exit" msgstr "&Изађи" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 msgid "Messages" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 msgid "Refresh" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1394 #, fuzzy msgid "View" msgstr "Уништи преглед" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 msgid "Send task status:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 msgid "Message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "Датум:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 msgid "Destination:" msgstr "Одредиште:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 msgid "Status:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 msgid "Message content:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:142 msgid "OK" msgstr "" #: ..\../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "" #: ..\../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "" #: ..\../main/gui/import/generaldata.cpp:210 msgid "" "\n" "* The patient ID is required." msgstr "" "\n" "* Потребан је ИБ пацијента." #: ..\../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" "\n" "* Надовезивање имена и презимена пацијената не може бити више од 61." #: ..\../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" "\n" "* Запис висине у центиметрима није исправан. " #: ..\../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" "\n" "* Датум рођења пацијента је након датума студије" #: ..\../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" "\n" "* Запис тежине није исправан. Исправан опсег је између 0 и 400 Kg." #: ..\../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "" #: ..\../main/gui/import/generaldata.cpp:231 #, fuzzy msgid "Error validating fields" msgstr "Грeшкa" #: ..\../main/gui/import/pasoperfilimportacion.cpp:148 msgid "Selecting Import Profile" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:152 msgid "You must select the profile you want to use import" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 msgid "You must select the import profile" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:21 #, fuzzy msgid "Selected images" msgstr " (слика — %d)" #: ..\../main/gui/import/pasosimportacionbase.cpp:56 msgid "Preview" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:62 #, fuzzy msgid "Remove all" msgstr "Све" #: ..\../main/gui/import/pasosimportacionbase.cpp:113 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:65 #, fuzzy msgid "Demographic data" msgstr "Подаци" #: ..\../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "(ИБ или број медицинске историје)" #: ..\../main/gui/import/pasosimportacionbase.cpp:159 #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "Birth date" msgstr "Датум рођења" #: ..\../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:217 #, fuzzy msgid "Study Details" msgstr "Грешка отварања студије" #: ..\../main/gui/import/pasosimportacionbase.cpp:234 #: ..\../wx/gnkinforme/gnkinformebase.cpp:122 #, fuzzy msgid "Weight" msgstr "" "\n" "* Запис тежине није исправан. Исправан опсег је између 0 и 400 Kg." #: ..\../main/gui/import/pasosimportacionbase.cpp:245 #, fuzzy msgid "Kg" msgstr "" "\n" "* Запис тежине није исправан. Исправан опсег је између 0 и 400 Kg." #: ..\../main/gui/import/pasosimportacionbase.cpp:252 #: ..\../wx/gnkinforme/gnkinformebase.cpp:119 #, fuzzy msgid "Height" msgstr "" "\n" "* Запис висине у центиметрима није исправан. " #: ..\../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:291 #: ..\../main/gui/import/pasosimportacionbase.cpp:333 msgid "Time" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files..." msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 #, fuzzy msgid "Paste from clipboard" msgstr " бајта од укупно " #: ..\../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "Назад" #: ..\../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "Да ли сте сигурни да желите да обришете ову датотеку са диска?" #: ..\../main/gui/import/selectimagesimportation.cpp:330 #, fuzzy msgid "Delete selected items" msgstr "Обриши" #: ..\../main/gui/import/selectimagesimportation.cpp:342 #, fuzzy msgid "You must select an image" msgstr "Изаберите преглед који желите да ускладите са текућим" #: ..\../main/gui/import/selectimagesimportation.cpp:346 msgid "Generating preview..." msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:500 #, fuzzy msgid "Select images" msgstr " (слика — %d)" #: ..\../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:715 #, fuzzy msgid "Image selection" msgstr "Нема преклапања на овој слици" #: ..\../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:760 #, fuzzy msgid "The file" msgstr "&Датотека" #: ..\../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr " не постоји" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:52 #, fuzzy msgid "Image Import Wizard" msgstr "Нема преклапања на овој слици" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:167 #, fuzzy msgid "free of" msgstr "" "Грешка: Систем је остао без меморије. Затворите неке студије да ослободите " "меморију." #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:181 msgid "in dicomization dir." msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "Да ли сте сигурни да желите да откажете поступак увоза?" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, fuzzy, c-format msgid "Step %d of %d: " msgstr " (слика — %d)" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "&Заврши" #: ..\../main/gui/license/aboutdialog.cpp:25 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:22 #, fuzzy msgid "Ginkgo CADx" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:55 msgid "Licenses" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:58 #, fuzzy msgid "UPDATE_INFO" msgstr "Подаци" #: ..\../main/gui/license/aboutdialogbase.cpp:108 #: ..\../main/gui/license/aboutdialogbase.h:88 #, fuzzy msgid "Open Source Licenses" msgstr "Приказивач Гинкго КАДикс-а је отвореног кода" #: ..\../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "Каиро" #: ..\../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:119 msgid "FamFamFam Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:120 msgid "Fugue Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:126 msgid "WxWidgets" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:127 msgid "Zlib" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:130 msgid "Dark Glass Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:23 #: ..\../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:53 msgid "Check for updates automatically" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:66 #, fuzzy msgid "I Accept the license" msgstr "Прихвати" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Save logs" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 #, fuzzy msgid "File couldn't be stored " msgstr "&Датотека" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 #, fuzzy msgid "Could not write to file" msgstr "&Датотека" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 msgid "Save log..." msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 #, fuzzy msgid "Clear log" msgstr "Избриши" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 #, fuzzy msgid "Log" msgstr "" "\n" "Постоје %d грешке (погледајте дневник за опширнији опис)" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "Избриши" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "" #: ..\../main/gui/login/dialogologin.cpp:50 #, fuzzy msgid "The username or password is incorrect" msgstr "Промените лозинку" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:250 #, fuzzy msgid "Tasks" msgstr "Обављам задатке обједињавања ..." #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1139 #, fuzzy msgid "Included in the history ..." msgstr "&Очисти историјат" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 #, fuzzy msgid "Check update error" msgstr "Грeшкa" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 msgid "Malformed XML" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1192 msgid "Error in interpreting the parameters of the command line. (" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 msgid "Error parsing integration XML:\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #, fuzzy msgid "PACS error:\n" msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 msgid "Error executing WorkFlow\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 msgid "Close current view" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all" msgstr "Затвори све" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 #, fuzzy msgid "Close all views" msgstr "Затвори све" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "&Изађи" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 #, fuzzy msgid "Exit application" msgstr "&Изађи" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 #, fuzzy msgid "Show full screen" msgstr "Прикажи/сакриј мета податке" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1302 msgid "Tab grouping" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1329 #, fuzzy msgid "Ginkgo CADx manual ..." msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1330 #, fuzzy msgid "Open test card" msgstr "Приказивач Гинкго КАДикс-а је отвореног кода" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for newest versions" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1332 #, fuzzy msgid "Need support ..." msgstr "Радимо на подршци " #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About " msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 msgid "HL7 monitor" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 msgid "HL7 message control" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 msgid "Log monitor" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 msgid "Log monitored" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1390 msgid "&File" msgstr "&Датотека" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "&Уреди" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "По&моћ" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1664 #, fuzzy msgid "Unsaved data" msgstr "Подаци" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 #, fuzzy msgid "Error saving" msgstr "Грeшкa" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "Full Screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 #, fuzzy msgid "View Full Screen" msgstr "Уништи преглед" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1708 msgid "Tab Regroup" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "&Затвори" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "&Close all" msgstr "&Затвори све" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "Close all windows" msgstr "Затвори све прозоре" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1728 msgid "Tabbed organization" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 #, fuzzy msgid "Ginkgo CADx updated" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1782 msgid "New version available (" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:29 msgid "New Update" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:34 msgid "New version available" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:43 msgid "X" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:45 #, fuzzy msgid "Close this notification" msgstr "Затвори" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:104 msgid "The following commands will be aborted if you close the application" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:131 #, fuzzy msgid "Close Ginkgo CADx" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:138 msgid "User login" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:202 msgid "System authentication" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:260 msgid "Login" msgstr "" #: ..\../main/gui/open/abrir.cpp:80 ..\../main/gui/open/abrir.cpp:82 #, fuzzy msgid "Open..." msgstr "Приказивач Гинкго КАДикс-а је отвореног кода" #: ..\../main/gui/open/opendialogs.cpp:58 msgid "There was an error reading DICOMDIR file" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:62 msgid "Select a valid DICOMDIR file" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:180 #: ..\../main/gui/open/opendialogsbase.cpp:170 #: ..\../main/gui/open/opendialogsbase.h:112 msgid "Copy or link" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:22 #: ..\../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:94 #: ..\../main/gui/open/opendialogsbase.h:85 msgid "Select drive" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:175 msgid "Do you want to copy or link files?" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ..\../main/gui/selectpacsserver/selectpacsserver.cpp:30 msgid "There aren't any PACS configured" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:69 msgid "0000/00/00 00:00:00" msgstr "0000/00/00 00:00:00" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.h:57 #, fuzzy msgid "Upload study" msgstr "Грешка отварања студије" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 #, fuzzy msgid "Select PACS server" msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../main/gui/paneltags/paneltags.cpp:119 #, fuzzy msgid "Metadata" msgstr "Метаподаци" #: ..\../main/gui/paneltags/paneltags.cpp:120 msgid "Identification information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:121 #, fuzzy msgid "Patient information" msgstr "" "\n" "* Потребан је ИБ пацијента." #: ..\../main/gui/paneltags/paneltags.cpp:122 msgid "Acquisition information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:123 msgid "Relationship information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:124 #, fuzzy msgid "Image presentation information" msgstr "Нема преклапања на овој слици" #: ..\../main/gui/paneltags/paneltags.cpp:125 ..\../widgets/wtextbox.cpp:525 msgid "Text" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:126 msgid "Other" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:137 #: ..\../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "Подаци" #: ..\../main/gui/previewpanel/previewpanel.cpp:47 #, fuzzy msgid "Hide" msgstr "Прикажи/сакриј мета податке" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:187 #: ..\../main/gui/previewpanel/previewpanelbase.cpp:207 msgid "Previews" msgstr "" #: ..\../main/gui/progress/progresobase.cpp:23 #, fuzzy msgid "There is no running tasks" msgstr "0 покренутих задатака." #: ..\../main/gui/progress/statusbarprogreso.cpp:165 msgid "0 running tasks." msgstr "0 покренутих задатака." #: ..\../main/gui/progress/statusbarprogreso.cpp:192 #, fuzzy, c-format msgid "There are %d pending tasks" msgstr "Обављам задатке обједињавања ..." #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.h:55 #, fuzzy msgid "Select PACS" msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../main/gui/startup/startupformbase.cpp:29 #, fuzzy msgid "http://ginkgo-cadx.com" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:47 #, fuzzy msgid "Ginkgo CADx Pro" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "" #: ..\../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "" #: ..\../main/managers/widgetsmanager.cpp:1079 #, fuzzy msgid "Delete Widget" msgstr "Обриши" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Properties ..." msgstr "" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Widget Properties" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:114 #, fuzzy msgid "Open file" msgstr "&Датотека" #: ..\../main/tools/addfiletohistorytool.cpp:115 #: ..\../main/tools/openfoldertool.cpp:27 msgid "Open folder" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:116 #: ..\../main/tools/openremovabletool.cpp:28 #, fuzzy msgid "Open removable unit" msgstr "Приказивач Гинкго КАДикс-а је отвореног кода" #: ..\../main/tools/addfiletohistorytool.cpp:117 #: ..\../main/tools/openginkgocloudlinktool.cpp:27 #, fuzzy msgid "Open Ginkgo Cloud link" msgstr "Приказивач Гинкго КАДикс-а је отвореног кода" #: ..\../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "" #: ..\../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "" #: ..\../main/tools/colormaptool.cpp:110 #, fuzzy msgid "Invert color map" msgstr "Мапа боја" #: ..\../main/tools/cornerannotationstool.cpp:44 #, fuzzy msgid "Hide corner annotations" msgstr "Прикажи/сакриј мета податке" #: ..\../main/tools/cornerannotationstool.cpp:46 #, fuzzy msgid "Show corner annotations" msgstr "Прикажи/сакриј мета податке" #: ..\../main/tools/detachwindowtool.cpp:42 #, fuzzy msgid "Attach View" msgstr "" "):\n" "Проверите подешавање и приложите га ако је неопходно" #: ..\../main/tools/detachwindowtool.cpp:44 msgid "Detach view" msgstr "Откачи преглед" #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize files" msgstr "" #: ..\../main/tools/exportdicomdirtool.cpp:32 #, fuzzy msgid "Export to DICOM Dir" msgstr "Придруживање(dicom://" #: ..\../main/tools/markertool.cpp:171 msgid "Point" msgstr "" #: ..\../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "Стрелица" #: ..\../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "" #: ..\../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "" #: ..\../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "" #: ..\../main/tools/markertool.cpp:176 #, fuzzy msgid "Free form" msgstr "" "Грешка: Систем је остао без меморије. Затворите неке студије да ослободите " "меморију." #: ..\../main/tools/metricgridtool.cpp:57 msgid "Grid" msgstr "Мрежа" #: ..\../main/tools/metricgridtool.cpp:67 #, fuzzy msgid "Grid Scale" msgstr "Мрежа" #: ..\../main/tools/metricgridtool.cpp:74 msgid "Scale X" msgstr "" #: ..\../main/tools/metricgridtool.cpp:78 msgid "X axis scale" msgstr "" #: ..\../main/tools/metricgridtool.cpp:87 #, fuzzy msgid "Scale Y" msgstr "%d. %m. %Y." #: ..\../main/tools/metricgridtool.cpp:91 #, fuzzy msgid "Y axis scale" msgstr "%d. %m. %Y." #: ..\../main/tools/metricgridtool.cpp:206 #, fuzzy msgid "Show grid" msgstr "Мрежа" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "Подеси мрежу ..." #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "Подеси мрежу" #: ..\../main/tools/metricgridtool.cpp:250 #, fuzzy msgid "Hide Grid" msgstr "Мрежа" #: ..\../main/tools/metricgridtool.cpp:252 #, fuzzy msgid "Show Grid" msgstr "Мрежа" #: ..\../main/tools/openfiletool.cpp:28 #, fuzzy msgid "Open File" msgstr "&Датотека" #: ..\../main/tools/pacsuploadtool.cpp:54 #, fuzzy msgid "Send to PACS..." msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../main/tools/pixelsbluringtool.cpp:59 msgid "Unset pixels blurring" msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:61 msgid "Set pixels blurring" msgstr "" #: ..\../main/tools/queryretrievehistorytool.cpp:25 #, fuzzy msgid "PACS Q/R" msgstr "П-Р-Т осе: " #: ..\../main/tools/queryretrievetool.cpp:94 #: ..\../main/tools/searchginkgocloudhistorytool.cpp:28 #, fuzzy msgid "Search Ginkgo Cloud" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/tools/rotateandfliptool.cpp:151 msgid "Undo rotate and flip" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:156 msgid "Flip horizontal" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:157 msgid "Flip vertical" msgstr "" #: ..\../main/tools/sendpacstool.cpp:34 #, fuzzy msgid "Send to PACS" msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../main/tools/sendpacstool.cpp:70 #, fuzzy msgid "Sending to PACS..." msgstr "" "\n" "— ИБ овог ПАЦС-а је у употреби" #: ..\../main/tools/showtagstool.cpp:42 #, fuzzy msgid "Hide DICOM inspector" msgstr "Прикажи/сакриј мета податке" #: ..\../main/tools/showtagstool.cpp:44 #, fuzzy msgid "Show DICOM inspector" msgstr "Прикажи/сакриј мета податке" #: ..\../main/tools/simpleprinttool.cpp:119 #, fuzzy msgid "Image printing" msgstr "Нема преклапања на овој слици" #: ..\../main/tools/simpleprinttool.cpp:224 msgid "Page setup" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:225 msgid "Print preview" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:272 #, fuzzy msgid "Print image" msgstr "Нема преклапања на овој слици" #: ..\../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "" #: ..\../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "" #: ..\../main/tools/undotool.cpp:110 msgid "Redo" msgstr "" #: ..\../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "" #: ..\../main/tools/videotool.cpp:153 msgid "Enable loop" msgstr "" #: ..\../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:267 msgid "Add column" msgstr "Додај колону" #: ..\../main/tools/windowlayouttool.cpp:268 msgid "Add row" msgstr "Додај ред" #: ..\../main/tools/windowlayouttool.cpp:270 #, fuzzy msgid "Remove column" msgstr "Додај колону" #: ..\../main/tools/windowlayouttool.cpp:271 #, fuzzy msgid "Remove row" msgstr "Додај ред" #: ..\../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "1x1 распоред" #: ..\../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "1x2 распоред" #: ..\../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "2x1 распоред" #: ..\../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "2x2 распоред" #: ..\../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "3x3 распоред" #: ..\../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "4x4 распоред" #: ..\../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:82 msgid "The tool is already registered" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:187 msgid "The module " msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:49 msgid "Unable to load PNG bitmap resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:56 msgid "Unable to load PNG image resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:63 msgid "Unable to load GIF animation resource" msgstr "" #: ..\../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "" #: ..\../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "" #: ..\../widgets/gui/calibracion.cpp:219 #, fuzzy msgid "Enter the calibration value" msgstr "Основна вредност" #: ..\../widgets/gui/calibracion.cpp:225 msgid "The calibration value is too low" msgstr "" #: ..\../widgets/gui/calibracion.cpp:229 msgid "The calibration value is too high" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "Растојање" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "Центиметри" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "" #: ..\../widgets/gui/selecciontextobase.cpp:26 msgid "Note" msgstr "" #: ..\../widgets/wangulo.cpp:1101 ..\../widgets/wangulo.cpp:1103 msgid "Type" msgstr "" #: ..\../widgets/wangulo.cpp:1101 msgid "Normal" msgstr "" #: ..\../widgets/wangulo.cpp:1103 msgid "Cobb" msgstr "" #: ..\../widgets/welipse.cpp:721 ..\../widgets/wfreeform.cpp:470 #: ..\../widgets/wpolygon.cpp:574 msgid "Center (I)" msgstr "" #: ..\../widgets/welipse.cpp:727 ..\../widgets/wfreeform.cpp:476 #: ..\../widgets/wpolygon.cpp:580 msgid "Center (M)" msgstr "" #: ..\../widgets/welipse.cpp:762 ..\../widgets/welipse.cpp:766 msgid "Greater Radius" msgstr "" #: ..\../widgets/welipse.cpp:763 ..\../widgets/welipse.cpp:767 msgid "Lower Radius" msgstr "" #: ..\../widgets/wfreeform.cpp:482 ..\../widgets/wpolygon.cpp:586 #, fuzzy msgid "Number of Vertex" msgstr "Број напада" #: ..\../widgets/wpunto.cpp:353 #, fuzzy msgid "Position (I)" msgstr "Положај : " #: ..\../widgets/wpunto.cpp:358 #, fuzzy msgid "Position (M)" msgstr "Положај : " #: ..\../widgets/wrule.cpp:558 #, fuzzy msgid "Image Calibration" msgstr "Нема преклапања на овој слици" #: ..\../widgets/wrule.cpp:663 #, fuzzy msgid "Length" msgstr "" "\n" "— Највећа дужина АЕТ-а је 16 знакова" #: ..\../widgets/wrule.cpp:668 msgid "Points (I)" msgstr "" #: ..\../widgets/wrule.cpp:675 msgid "Points (M)" msgstr "" #: ..\../widgets/wtextbox.cpp:445 #, fuzzy msgid "Default text" msgstr "Основно" #: ..\../wx/gnkinforme/gnkinformebase.cpp:41 msgid "Commit date" msgstr "Датум предаје" #: ..\../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "<непознат ИБ>" #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "%d. %m. %Y." #: ..\../wx/gnkinforme/gnkinformebase.cpp:214 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:219 msgid "Modified" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "644654645" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:130 #, fuzzy msgid "Commit inform" msgstr "Датум предаје" #: ..\../wx/propiedades/wxpropiedades.cpp:30 msgid "Properties of " msgstr "" #: ..\../wx/propiedades/wxpropiedadesbase.cpp:31 msgid "Widget's Name" msgstr "" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "< &Претходно" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "&Откажи" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3701 #, fuzzy msgid "Regular expression invalid: '" msgstr "„action“ атрибут је неисправан на „gnkworkflow“ досегу" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "" #: ..\../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.h:56 msgid "Overwrite Paths" msgstr "" #: ..\../ginkgopro/ginkgo_pro_defines.h:21 msgid "Professional DICOM CADx environment" msgstr "" #: ..\../main/controllers/dcmtk/dicomservers.h:39 #, fuzzy msgid "Server not found" msgstr "Нисам пронашао мерења" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:99 msgid "DICOM Query/Retrieve" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:123 #, fuzzy msgid "Not found" msgstr "Нисам пронашао мерења" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:418 #, fuzzy msgid "Advanced Settings" msgstr "Напредна подешавања..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:570 #, fuzzy msgid "Edit profile" msgstr "&Уреди" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:665 #, fuzzy msgid "Add/Edit Location" msgstr "&Уреди" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:784 #, fuzzy msgid "Add window/level" msgstr "Додај" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 #, fuzzy msgid "Add tag" msgstr "Додај" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 #, fuzzy msgid "Setup window position" msgstr "Положај : " #: ..\../main/gui/countdownmessage/countdownmessagebase.h:61 msgid "Closing" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 #, fuzzy msgid "DICOM Dir configuration" msgstr "Напредна подешавања ..." #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:70 #, fuzzy msgid "Open Ginkgo Cloud" msgstr "Приказивач Гинкго КАДикс-а је отвореног кода" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:123 #, fuzzy msgid "Ginkgo Cloud search" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/history3/confirmdeletedialog.h:24 #, fuzzy msgid " from History?" msgstr "&Обриши из историјата" #: ..\../main/gui/history3/historypanel3base.h:100 #, fuzzy msgid "Medical history" msgstr "(ИБ или број медицинске историје)" #: ..\../main/gui/history3/historypanel3base.h:161 #, fuzzy msgid "Open With ..." msgstr "Приказивач Гинкго КАДикс-а је отвореног кода" #: ..\../main/gui/history3/openwithdialog.h:72 #, fuzzy msgid "Select a View" msgstr "Изаберите преглед који желите да ускладите са текућим" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 msgid "Message detail" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 msgid "Log node" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:87 #, fuzzy msgid "Closing Ginkgo CADx" msgstr "Прегледник Гинкго КАДикс-а" #: ..\../main/gui/paneltags/paneltagsbase.h:57 #, fuzzy msgid "DICOM Inspector" msgstr "Придруживање(dicom://" #: ..\../main/license.h:31 #, fuzzy msgid "Open Source DICOM CADx environment" msgstr "Приказивач Гинкго КАДикс-а је отвореног кода" #: ..\../widgets/gui/calibracionbase.h:65 msgid "Calibration" msgstr "" #: ..\../wx/propiedades/wxpropiedadesbase.h:62 msgid "Properties of ..." msgstr "" #: ..\../wx/thumbnailctrl/thumbnailwidget.h:44 #, fuzzy msgid "Image Browser Dialog" msgstr "Нема преклапања на овој слици" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.h:60 msgid "Test title" msgstr "" #, fuzzy #~ msgid "The key files will not be exported" #~ msgstr "„key“ атрибут је очекиван на „metadata“ досегу" #, fuzzy #~ msgid "Current" #~ msgstr "Изаберите преглед који желите да ускладите са текућим" #~ msgid "All" #~ msgstr "Све" #~ msgid "BMP" #~ msgstr "БМП" #, fuzzy #~ msgid "Grid (two columns)" #~ msgstr "Мрежа" #, fuzzy #~ msgid "Grid (three columns)" #~ msgstr "Мрежа" #, fuzzy #~ msgid "Grid organization" #~ msgstr "Мрежа" #~ msgid "Color" #~ msgstr "Боја" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">" #~ msgstr ">" #~ msgid "<" #~ msgstr "<" #~ msgid "<<" #~ msgstr "<<" #~ msgid "Alphabetic Mode" #~ msgstr "Азбучни ред" #~ msgid " but no valid presentation contexts" #~ msgstr " али нема исправног садржаја презентације" #~ msgid "\"petition-id\" attribute expected at \"gnkworkflow\" scope" #~ msgstr "„petition-id“ атрибут је очекиван на „gnkworkflow“ досегу" #~ msgid "%d/%m/%Y %H:%M:%S" #~ msgstr "%d.%m.%Y, %H:%M:%S" #~ msgid "%m-%d-%y %H:%M:%S,%q" #~ msgstr "%d. %m. %y %H:%M:%S,%q" #~ msgid "Abdomen" #~ msgstr "Стомак" #~ msgid "An error ocurred loading Ginkgo News check your internet connection" #~ msgstr "" #~ "Дошло је до грешке учитавања вести Гинкго-а. Проверите везу на Интернет" #~ msgid "Association Aborted" #~ msgstr "Придруживање је прекинуто" #~ msgid "Association Received" #~ msgstr "Придруживање је примљено" #~ msgid "Clean" #~ msgstr "Очисти" ginkgocadx-3.8.7/cadxcore/lang/tr/000077500000000000000000000000001314736454600170225ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/tr/cadxcore.mo000066400000000000000000000043301314736454600211470ustar00rootroot00000000000000)d;  & - 9EUg mw}       +=E L Vajn pz#  $*>MRc it {     %&()'#  $  "!%m/%d/%Y%m/%d/%Y %H:%M:%S%m/%d/%Y 00:00:00&Cancel&Close&Edit&Exit&Help.../644654645AddAgeApplyAre you sure you want to delete CancelCentimetersCertificateChange passwordCheck for updatesClearClear logCloseContinueCreation DateCreditsDataData modifiedDateDate TimeDate:DefaultDefault valueDeleteDelete messageDescriptionER7Edit ...ErrorError messageProject-Id-Version: ginkgocadx Report-Msgid-Bugs-To: POT-Creation-Date: 2014-06-11 15:52+0100 PO-Revision-Date: 2014-06-11 15:52+0100 Last-Translator: Carlos Barrales Ruiz Language-Team: Turkish Language: tr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 1.6.5 X-Launchpad-Export-Date: 2011-09-02 12:40+0000 X-Poedit-Basepath: . X-Poedit-KeywordsList: _;_Std X-Poedit-SearchPath-0: ..\.. %m/%d/%Y%m/%d/%Y %H:%M:%S%m/%d/%Y 00:00:00&İptal&Kapat&Düzenle&Çıkış&Yardım.../644654645EkleYaşUygulaSilmek istediğinize emin misiniz? İptalSantimetreSertifikaParolayı değiştirGüncellemeleri kontrol etTemizleKayıt Dosyasını TemizleKapatDevamOluşturulma TarihiHazırlayanlarVeriVeri düzenlendiTarihTarih SaatTarih:VarsayılanVarsayılan değerSilMesajı silAçıklamaER7Düzenle ...HataHata mesajıginkgocadx-3.8.7/cadxcore/lang/tr/cadxcore.po000066400000000000000000005460421314736454600211650ustar00rootroot00000000000000# Turkish translation for ginkgocadx # Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 # This file is distributed under the same license as the ginkgocadx package. # FIRST AUTHOR , 2011. # msgid "" msgstr "" "Project-Id-Version: ginkgocadx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-06-11 15:52+0100\n" "PO-Revision-Date: 2014-06-11 15:52+0100\n" "Last-Translator: Carlos Barrales Ruiz \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" "X-Launchpad-Export-Date: 2011-09-02 12:40+0000\n" "X-Poedit-Basepath: .\n" "X-Poedit-KeywordsList: _;_Std\n" "X-Poedit-SearchPath-0: ..\\..\n" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Red Vessels" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Metal" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Green" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "GE Color" msgstr "Renk" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PET" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 #, fuzzy msgid "P-Value" msgstr "Varsayılan değer" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "" #: ..\../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #: ..\../api/dicom/idicomconformance.cpp:214 #: ..\../api/dicom/idicomconformance.cpp:220 msgid "GIL/DICOM/Conformance" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid "Unable to add supported transfer syntax " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid " to SOP Class " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr "" #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr "" #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid "Unable to add supported SOP Class " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid " to Modality " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr "" #: ..\../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "Slice" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "of" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "Volume" msgstr "" #: ..\../api/iannotator.cpp:107 msgid "Voxel:" msgstr "" #: ..\../api/iannotator.cpp:110 msgid "Image without metric information" msgstr "" #: ..\../api/iannotator.cpp:119 msgid "Slice thickness" msgstr "" #: ..\../api/iannotator.cpp:127 msgid "Slice location" msgstr "" #: ..\../api/iannotator.cpp:139 msgid "Scale" msgstr "" #: ..\../api/iannotator.cpp:147 msgid "Right" msgstr "" #: ..\../api/iannotator.cpp:149 msgid "Left" msgstr "" #: ..\../api/iannotator.cpp:219 msgid "Position:" msgstr "" #: ..\../api/iannotator.cpp:272 #, fuzzy msgid "Value:" msgstr "Varsayılan değer" #: ..\../api/iexception.cpp:52 msgid "Exception in component" msgstr "" #: ..\../api/initwx.cpp:439 msgid "Initializing environment ..." msgstr "" #: ..\../api/initwx.cpp:446 ..\../api/initwx.cpp:447 ..\../api/initwx.cpp:448 #: ..\../api/initwx.cpp:449 ..\../api/initwx.cpp:450 ..\../api/initwx.cpp:451 #: ..\../api/initwx.cpp:452 ..\../api/initwx.cpp:453 msgid "Ginkgo CADx restrictions" msgstr "" #: ..\../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "" #: ..\../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "" #: ..\../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "" #: ..\../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "" #: ..\../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "" #: ..\../api/initwx.cpp:451 msgid "Export images" msgstr "" #: ..\../api/initwx.cpp:452 msgid "Acquire DICOM files" msgstr "" #: ..\../api/initwx.cpp:453 msgid "Import files to DICOM format" msgstr "" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "Online manual" msgstr "" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "URL of manual" msgstr "" #: ..\../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "" #: ..\../api/initwx.cpp:459 msgid "Online support" msgstr "" #: ..\../api/initwx.cpp:459 msgid "URL of online support" msgstr "" #: ..\../api/initwx.cpp:459 msgid "http://ginkgo-cadx.com/" msgstr "" #: ..\../api/initwx.cpp:460 ..\../api/initwx.cpp:461 #, fuzzy msgid "Program Updates" msgstr "Güncellemeleri kontrol et" #: ..\../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "" #: ..\../api/initwx.cpp:461 msgid "Update period (days)" msgstr "" #: ..\../api/initwx.cpp:462 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "" #: ..\../api/initwx.cpp:462 msgid "Setup Security" msgstr "" #: ..\../api/initwx.cpp:463 msgid "Show on startup" msgstr "" #: ..\../api/initwx.cpp:463 #, fuzzy msgid "Show on startup default value" msgstr "Varsayılan değer" #: ..\../api/initwx.cpp:465 ..\../api/initwx.cpp:466 #: ..\../main/gui/history3/historypanel3.cpp:328 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "" #: ..\../api/initwx.cpp:465 msgid "Settings menu" msgstr "" #: ..\../api/initwx.cpp:466 msgid "License menu" msgstr "" #: ..\../api/initwx.cpp:467 ..\../api/initwx.cpp:468 ..\../api/initwx.cpp:469 #: ..\../api/initwx.cpp:470 ..\../api/initwx.cpp:471 ..\../api/initwx.cpp:472 #: ..\../api/initwx.cpp:473 ..\../api/initwx.cpp:474 msgid "PACS Limits" msgstr "" #: ..\../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "" #: ..\../api/initwx.cpp:468 msgid "Upload images to a PACS server" msgstr "" #: ..\../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "" #: ..\../api/initwx.cpp:470 msgid "Enable remote PACS configuration" msgstr "" #: ..\../api/initwx.cpp:471 msgid "Enable TLS configuration" msgstr "" #: ..\../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "" #: ..\../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "" #: ..\../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "" #: ..\../api/initwx.cpp:475 ..\../api/initwx.cpp:476 ..\../api/initwx.cpp:477 #: ..\../api/initwx.cpp:478 ..\../api/initwx.cpp:479 ..\../api/initwx.cpp:480 msgid "Import" msgstr "" #: ..\../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "" #: ..\../api/initwx.cpp:476 msgid "Show accession number input" msgstr "" #: ..\../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "" #: ..\../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" #: ..\../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "" #: ..\../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "" #: ..\../api/initwx.cpp:482 msgid "HL7 Service" msgstr "" #: ..\../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "" #: ..\../api/initwx.cpp:483 ..\../api/initwx.cpp:484 ..\../api/initwx.cpp:485 msgid "XML dicomization" msgstr "" #: ..\../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "" #: ..\../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "" #: ..\../api/initwx.cpp:485 #, fuzzy msgid "Default ORU template" msgstr "Varsayılan" #: ..\../api/initwx.cpp:488 ..\../api/initwx.cpp:489 ..\../api/initwx.cpp:491 #: ..\../api/initwx.cpp:493 ..\../api/initwx.cpp:494 ..\../api/initwx.cpp:495 #: ..\../api/initwx.cpp:496 ..\../api/initwx.cpp:498 msgid "Style" msgstr "" #: ..\../api/initwx.cpp:503 #, c-format msgid "Download %s images" msgstr "" #: ..\../api/initwx.cpp:504 ..\../api/initwx.cpp:508 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:21 msgid "PACS" msgstr "" #: ..\../api/initwx.cpp:507 #, fuzzy msgid "Download all modalities" msgstr "Tümü" #: ..\../api/initwx.cpp:510 msgid "OpenGL" msgstr "" #: ..\../api/initwx.cpp:510 msgid "Enable shaders" msgstr "" #: ..\../api/initwx.cpp:513 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:388 msgid "Ginkgo Cloud" msgstr "" #: ..\../api/initwx.cpp:513 msgid "Download from Ginkgo Cloud" msgstr "" #: ..\../api/initwx.cpp:560 msgid "Tools loading base ..." msgstr "" #: ..\../api/initwx.cpp:562 msgid "Starting tools..." msgstr "" #: ..\../api/initwx.cpp:566 msgid "Loading plugins ..." msgstr "" #: ..\../api/initwx.cpp:580 msgid "Unable to start GinkgoCADx:\n" msgstr "" #: ..\../api/initwx.cpp:580 ..\../api/initwx.cpp:621 #, fuzzy msgid "error" msgstr "Hata" #: ..\../api/initwx.cpp:584 msgid "Loading resources ..." msgstr "" #: ..\../api/initwx.cpp:587 msgid "Starting services..." msgstr "" #: ..\../api/initwx.cpp:601 msgid "Configuring environment ..." msgstr "" #: ..\../api/initwx.cpp:621 msgid "Failed to set permissions:\n" msgstr "" #: ..\../api/initwx.cpp:634 msgid "Updating ..." msgstr "" #: ..\../api/initwx.cpp:638 msgid "Interpreting parameters ..." msgstr "" #: ..\../api/initwx.cpp:689 #, fuzzy msgid "Error unregistering tools: " msgstr "Hata" #: ..\../api/initwx.cpp:769 msgid "Starting" msgstr "" #: ..\../api/ivista.cpp:36 ..\../commands/comandocarga.cpp:73 msgid "Loading..." msgstr "" #: ..\../api/iwidgets.cpp:268 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ..\../main/gui/import/pasosimportacionbase.cpp:151 msgid "Name" msgstr "" #: ..\../api/iwidgets.cpp:285 msgid "Area" msgstr "" #: ..\../api/iwidgets.cpp:302 msgid "Perimeter" msgstr "" #: ..\../api/iwidgets.cpp:316 msgid "Travel (I)" msgstr "" #: ..\../api/iwidgets.cpp:326 msgid "Travel (M)" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #: ..\../api/threads/thread.cpp:120 msgid "Threading" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid "Error while running thread: " msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid " : " msgstr "" #: ..\../api/threads/thread.cpp:120 msgid "Internal error while running thread: " msgstr "" #: ..\../api/widgetserializable.cpp:60 msgid "Creation Date" msgstr "Oluşturulma Tarihi" #: ..\../api/widgetserializable.cpp:65 #, fuzzy msgid "Modification Date" msgstr "Tarih" #: ..\../api/widgetserializable.cpp:68 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ..\../wx/gnkinforme/gnkinformebase.cpp:40 msgid "Physician" msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:55 #: ..\../commands/pacsdownloadcommand.cpp:88 #: ..\../commands/synchronizationcommand.cpp:70 msgid "Downloading files ..." msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:69 #: ..\../commands/synchronizationcommand.cpp:91 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, fuzzy, c-format msgid "Downloading file %d" msgstr "%m/%d/%Y" #: ..\../commands/acquirefromurlcommand.cpp:81 #, fuzzy msgid "Error downloading file: " msgstr "Hata" #: ..\../commands/acquirefromurlcommand.cpp:95 #: ..\../commands/pacsdownloadcommand.cpp:114 #: ..\../commands/synchronizationcommand.cpp:121 #, fuzzy msgid "Internal Error" msgstr "Hata" #: ..\../commands/acquirefromurlcommand.cpp:115 #, fuzzy msgid "Error downloading files: " msgstr "Hata" #: ..\../commands/autocleaningcommand.cpp:62 msgid "Cleaning dicomdir..." msgstr "" #: ..\../commands/cloudcommand.cpp:67 msgid "Downloading files..." msgstr "" #: ..\../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "" #: ..\../commands/cloudcommand.cpp:183 msgid "Unknown operation" msgstr "" #: ..\../commands/cloudcommand.cpp:188 msgid "Error in cloud operation. See log to get more details..." msgstr "" #: ..\../commands/cloudcommand.cpp:249 msgid "Could to retrieve study." msgstr "" #: ..\../commands/cloudcommand.cpp:260 ..\../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" #: ..\../commands/cloudcommand.cpp:262 #, fuzzy msgid "Error retrieving study." msgstr "Hata" #: ..\../commands/cloudcommand.cpp:271 msgid "Study successfully retrieved." msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "Speed" msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "bytes/sec during" msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "seconds" msgstr "" #: ..\../commands/cloudcommand.cpp:275 msgid "Empty Response" msgstr "" #: ..\../commands/cloudcommand.cpp:289 msgid "Extracting files..." msgstr "" #: ..\../commands/cloudcommand.cpp:313 ..\../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "" #: ..\../commands/cloudcommand.cpp:383 msgid "Could to perform query." msgstr "" #: ..\../commands/cloudcommand.cpp:396 #, fuzzy msgid "Error perfoming the query." msgstr "Hata" #: ..\../commands/cloudcommand.cpp:405 msgid "Query successfully performed." msgstr "" #: ..\../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "" #: ..\../commands/cloudcommand.cpp:472 msgid "Unknown JSon attribute:" msgstr "" #: ..\../commands/cloudcommand.cpp:482 #, fuzzy msgid "Error parsing JSon: " msgstr "Hata" #: ..\../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "" #: ..\../commands/cloudcommand.cpp:515 #: ..\../commands/openremovableunit.cpp:148 ..\../main/gui/open/abrir.cpp:119 #: ..\../main/gui/open/abrir.cpp:159 ..\../main/gui/open/opendialogs.cpp:146 msgid "Storing in the history..." msgstr "" #: ..\../commands/comandoactualizaciones.cpp:46 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:536 #, fuzzy msgid "Check Updates" msgstr "Güncellemeleri kontrol et" #: ..\../commands/comandoactualizaciones.cpp:136 msgid "Not enough parameters found on XML" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:145 msgid "XML parsing internal error" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Error checking application updates" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:156 #, fuzzy msgid "Ginkgo CADx updates" msgstr "Güncellemeleri kontrol et" #: ..\../commands/comandoactualizaciones.cpp:170 msgid "Internal error checking updates" msgstr "" #: ..\../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "" #: ..\../commands/comandocarga.cpp:92 ..\../commands/comandocarga.cpp:96 msgid "Exception loading:" msgstr "" #: ..\../commands/comandocarga.cpp:100 msgid "Study malformed or unsupported" msgstr "" #: ..\../commands/comandocarga.cpp:129 ..\../commands/comandocarga.cpp:139 #, fuzzy msgid "Error loading study: " msgstr "Hata" #: ..\../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "" #: ..\../commands/comandocarga.cpp:144 #, fuzzy msgid "Error loading study." msgstr "Hata" #: ..\../commands/comandocarga.cpp:149 msgid "Load canceled by user" msgstr "" #: ..\../commands/comandocarga.cpp:156 #: ..\../main/gui/history3/historypanel3.cpp:1056 #: ..\../main/gui/history3/historypanel3.cpp:1063 #: ..\../main/gui/history3/historypanel3.cpp:1068 #, fuzzy msgid "Error loading study" msgstr "Hata" #: ..\../commands/comandoexportacion.cpp:81 #: ..\../commands/exporttodicomdircommand.cpp:214 msgid "Exporting files..." msgstr "" #: ..\../commands/comandoexportacion.cpp:105 #: ..\../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "" #: ..\../commands/comandoexportacion.cpp:158 #, fuzzy, c-format msgid "Exporting file %d of %d" msgstr "%m/%d/%Y" #: ..\../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "" #: ..\../commands/comandoexportacion.cpp:233 #, fuzzy msgid "image_%m-%d-%Y_" msgstr "%m/%d/%Y" #: ..\../commands/comandoincluirhistorial.cpp:108 msgid "Exploring directory ..." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:122 msgid "Reading DICOMDIR ..." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:142 #: ..\../commands/comandoincluirhistorial.cpp:156 #: ..\../commands/comandoincluirhistorial.cpp:177 msgid "Including files in the history .." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:196 msgid "Exploring directory " msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:256 #: ..\../commands/linkhistorycommand.cpp:118 msgid "Image acquisition finished." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:258 #, c-format msgid "There have been included %d images." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:261 #: ..\../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:273 #: ..\../commands/linkhistorycommand.cpp:133 msgid "This files doesn't exist:" msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:284 #: ..\../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:296 #: ..\../commands/linkhistorycommand.cpp:156 msgid "This files are Dicom Dirs:" msgstr "" #: ..\../commands/comandopacs.cpp:58 ..\../commands/pacsdownloadcommand.cpp:61 #: ..\../commands/sendpacscommand.cpp:137 msgid "There is not any Remote PACS configured" msgstr "" #: ..\../commands/comandopacs.cpp:84 msgid "Querying PACS ..." msgstr "" #: ..\../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "" #: ..\../commands/comandopacs.cpp:98 msgid "Starting Search ..." msgstr "" #: ..\../commands/comandopacs.cpp:108 #: ..\../commands/pacsdownloadcommand.cpp:101 msgid "Server ID not found. ID = " msgstr "" #: ..\../commands/comandopacs.cpp:110 ..\../commands/comandopacs.cpp:112 #: ..\../commands/comandopacs.cpp:114 ..\../commands/comandopacs.cpp:116 msgid "Query error with PACS Id " msgstr "" #: ..\../commands/comandopacs.cpp:116 #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/gui/history3/historypanel3.cpp:1068 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 #, fuzzy msgid "Internal error" msgstr "Hata" #: ..\../commands/comandopacs.cpp:135 msgid "Failed to perform search: " msgstr "" #: ..\../commands/dbmigrationcommand.cpp:94 #: ..\../commands/dbmigrationcommand.cpp:103 msgid "Migrating old DICOM Dir ..." msgstr "" #: ..\../commands/dbmigrationcommand.cpp:99 #: ..\../commands/dbmigrationcommand.cpp:108 msgid "Including files ..." msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 #: ..\../commands/dicomizecommand.cpp:181 #: ..\../commands/openremovableunit.cpp:74 #: ..\../commands/openremovableunit.cpp:110 #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../commands/pdfextractercommand.cpp:130 #: ..\../main/controllers/historycontroller.cpp:447 #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 #: ..\../main/controllers/historycontroller.cpp:1976 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ..\../main/gui/export/parametrosprincipales.cpp:161 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 #: ..\../main/gui/history3/historypanel3.cpp:1045 #: ..\../main/gui/history3/historypanel3.cpp:1078 #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1119 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 #: ..\../main/gui/import/selectimagesimportation.cpp:141 #: ..\../main/gui/import/selectimagesimportation.cpp:342 #: ..\../main/gui/import/selectimagesimportation.cpp:743 #: ..\../main/gui/import/selectimagesimportation.cpp:761 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ..\../main/gui/login/dialogologin.cpp:50 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ..\../main/gui/open/opendialogs.cpp:58 #: ..\../main/gui/open/opendialogs.cpp:62 #: ..\../main/gui/open/opendialogs.cpp:134 #: ..\../main/gui/progress/statusbarprogreso.cpp:284 #: ..\../main/gui/progress/statusbarprogreso.cpp:287 #: ..\../main/gui/progress/statusbarprogreso.cpp:292 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #: ..\../main/gui/history3/openwithdialog.h:72 #, fuzzy msgid "Info" msgstr "Bilgi" #: ..\../commands/dbmigrationcommand.cpp:123 msgid "Migration finisthed successfully" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:27 #: ..\../commands/dialogopathssobreescribirbase.cpp:62 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "Overwrite" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:65 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ..\../main/gui/history3/historypanel3base.cpp:339 #: ..\../main/gui/history3/historypanel3base.cpp:415 #: ..\../main/gui/history3/historypanel3base.cpp:486 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ..\../main/gui/open/opendialogsbase.cpp:53 #: ..\../main/gui/open/opendialogsbase.cpp:131 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ..\../widgets/gui/calibracionbase.cpp:86 #: ..\../widgets/gui/selecciontextobase.cpp:60 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "İptal" #: ..\../commands/dicomizationcompletebase.cpp:24 #: ..\../commands/dicomizationcompletebase.cpp:33 #: ..\../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:56 msgid "Don't show this message again" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:62 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ..\../main/gui/history3/historypanel3base.cpp:411 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ..\../widgets/gui/calibracionbase.cpp:82 #: ..\../widgets/gui/selecciontextobase.cpp:56 #, fuzzy msgid "Accept" msgstr "Kabul et" #: ..\../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "" #: ..\../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "" #: ..\../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "" #: ..\../commands/dicomizecommand.cpp:179 msgid "Import process failed:" msgstr "" #: ..\../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" #: ..\../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "" #: ..\../commands/dicomizecommand.cpp:370 msgid "Unknown error in dicomization process" msgstr "" #: ..\../commands/dicomizecommand.cpp:431 #: ..\../commands/dicomizecommand.cpp:442 #: ..\../commands/sendpacscommand.cpp:185 #, fuzzy msgid "Error sending evidences:" msgstr "Hata" #: ..\../commands/dicomizecommand.cpp:437 #: ..\../commands/dicomizecommand.cpp:448 msgid "Can not upload to the PACS:\n" msgstr "" #: ..\../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:261 #: ..\../commands/exporttodicomdircommand.cpp:338 #, fuzzy, c-format msgid "Exporting series %d of %d" msgstr "%m/%d/%Y" #: ..\../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:279 #: ..\../commands/exporttodicomdircommand.cpp:385 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #, fuzzy msgid "There was an error creating directory" msgstr "Hata" #: ..\../commands/exporttodicomdircommand.cpp:303 #: ..\../commands/exporttodicomdircommand.cpp:408 #, fuzzy msgid "There was an error writing file" msgstr "Hata" #: ..\../commands/exporttodicomdircommand.cpp:358 #, fuzzy msgid "There was an error anonymizing files" msgstr "Hata" #: ..\../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Ignoring incoming operation " msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:298 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:473 #: ..\../commands/pacsdownloadcommand.cpp:170 #: ..\../commands/pacsdownloadcommand.cpp:179 msgid "Including files..." msgstr "" #: ..\../commands/linkhistorycommand.cpp:68 msgid "Linking study..." msgstr "" #: ..\../commands/openremovableunit.cpp:42 #: ..\../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "" #: ..\../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" #: ..\../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" #: ..\../commands/openremovableunit.cpp:130 msgid "Select drive you want to open" msgstr "" #: ..\../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" #: ..\../commands/pacsdownloadcommand.cpp:134 #, fuzzy msgid "Error downloading study: " msgstr "Hata" #: ..\../commands/pdfextractercommand.cpp:103 msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "" #: ..\../commands/pdfextractercommand.cpp:103 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ..\../main/gui/progress/statusbarprogreso.cpp:278 #: ..\../widgets/gui/calibracion.cpp:205 ..\../widgets/gui/calibracion.cpp:209 #: ..\../widgets/gui/calibracion.cpp:219 ..\../widgets/gui/calibracion.cpp:225 #: ..\../widgets/gui/calibracion.cpp:229 msgid "Error" msgstr "Hata" #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "" #: ..\../commands/pdfextractercommand.cpp:130 msgid "PDF files extracted successfully..." msgstr "" #: ..\../commands/secondarycapturedicomizecommand.cpp:73 msgid "Ginkgo CADx Secondary Capture" msgstr "" #: ..\../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "" #: ..\../commands/sendhl7command.cpp:73 #, fuzzy msgid "Message successfully sent" msgstr "Hata mesajı" #: ..\../commands/sendhl7command.cpp:77 msgid "Unknown protocol" msgstr "" #: ..\../commands/sendhl7command.cpp:80 ..\../commands/sendhl7command.cpp:93 #: ..\../commands/sendhl7command.cpp:145 #, fuzzy msgid "Error sending message:" msgstr "Hata mesajı" #: ..\../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "" #: ..\../commands/sendhl7command.cpp:93 ..\../commands/sendhl7command.cpp:94 #, fuzzy msgid "Unknown error" msgstr "Hata" #: ..\../commands/sendhl7command.cpp:134 msgid "Failed to start connection" msgstr "" #: ..\../commands/sendhl7command.cpp:148 #, fuzzy msgid "Error sending message. It was sent " msgstr "Hata mesajı" #: ..\../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr "" #: ..\../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "" #: ..\../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "" #: ..\../commands/sendhl7command.cpp:258 msgid "Failed delivery confirmation:" msgstr "" #: ..\../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "" #: ..\../commands/sendpacscommand.cpp:51 msgid "Send files to PACS" msgstr "" #: ..\../commands/sendpacscommand.cpp:155 msgid "Uploading files ..." msgstr "" #: ..\../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "" #: ..\../commands/sendpacscommand.cpp:181 #, fuzzy msgid "Error:" msgstr "Hata" #: ..\../commands/sendpacscommand.cpp:189 msgid "Error sending evidences: Internal error." msgstr "" #: ..\../commands/sendpacscommand.cpp:203 msgid "Error uploading the study to PACS: " msgstr "" #: ..\../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" #: ..\../commands/sendpacscommand.cpp:206 msgid "Retry send to PACS" msgstr "" #: ..\../commands/synchronizationcommand.cpp:104 #, fuzzy msgid "Error downloading file" msgstr "Hata" #: ..\../commands/synchronizationcommand.cpp:141 #, fuzzy msgid "Error synchronizing study: " msgstr "Hata" #: ..\../commands/thumbnailscommand.cpp:107 #: ..\../commands/thumbnailscommand.cpp:133 #: ..\../commands/thumbnailscommand.cpp:247 #: ..\../commands/thumbnailscommand.cpp:376 #: ..\../commands/thumbnailscommand.cpp:382 #: ..\../main/gui/import/selectimagesimportation.cpp:504 msgid "Creating Thumbnail..." msgstr "" #: ..\../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "" #: ..\../export/tools/iaddfiletohistorytool.cpp:19 #: ..\../main/gui/history3/historypanel3.cpp:632 msgid "Open study" msgstr "" #: ..\../export/tools/iangletool.cpp:19 msgid "Angle \tCtrl+A" msgstr "" #: ..\../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "" #: ..\../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "" #: ..\../export/tools/icolormaptool.cpp:20 #, fuzzy msgid "Color Map" msgstr "Renk" #: ..\../export/tools/icopyimagetoclipboardtool.cpp:19 #: ..\../main/gui/open/opendialogsbase.cpp:46 #: ..\../main/gui/open/opendialogsbase.cpp:198 msgid "Copy" msgstr "" #: ..\../export/tools/icornerannotationstool.cpp:20 msgid "Window annotations" msgstr "" #: ..\../export/tools/idetachwindowtool.cpp:19 msgid "Detach window" msgstr "" #: ..\../export/tools/iimageexporttool.cpp:19 msgid "Export image..." msgstr "" #: ..\../export/tools/imarkertool.cpp:20 msgid "Marking Tools \tCtrl+M" msgstr "" #: ..\../export/tools/imetricgridtool.cpp:20 msgid "Metric grid" msgstr "" #: ..\../export/tools/inotetool.cpp:19 msgid "Text Note \tCtrl+N" msgstr "" #: ..\../export/tools/ipacsuploadtool.cpp:19 msgid "Upload study..." msgstr "" #: ..\../export/tools/ipixelsbluringtool.cpp:20 msgid "Pixels blurring" msgstr "" #: ..\../export/tools/ipointertool.cpp:19 msgid "Pointer \tEsc" msgstr "" #: ..\../export/tools/iqueryretrievetool.cpp:19 #: ..\../main/tools/queryretrievehistorytool.cpp:25 #: ..\../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "" #: ..\../export/tools/iresettool.cpp:19 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 msgid "Reset" msgstr "" #: ..\../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "" #: ..\../export/tools/iruletool.cpp:19 msgid "Rule \tCtrl+R" msgstr "" #: ..\../export/tools/isecondarycapturetool.cpp:19 msgid "Save snapshot as new series..." msgstr "" #: ..\../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "" #: ..\../export/tools/ishowtagstool.cpp:19 #: ..\../main/tools/showtagshistorytool.cpp:27 msgid "DICOM inspector" msgstr "" #: ..\../export/tools/isimpleprinttool.cpp:19 #: ..\../main/tools/simpleprinttool.cpp:226 msgid "Print" msgstr "" #: ..\../export/tools/istartdicomizationtool.cpp:19 msgid "Dicomize..." msgstr "" #: ..\../export/tools/itoolpan.cpp:19 msgid "Pan \tCtrl+P" msgstr "" #: ..\../export/tools/itoolslider.cpp:19 msgid "Slider \tCtrl+S" msgstr "" #: ..\../export/tools/itoolwindowlevel.cpp:19 msgid "Window/Level \tCtrl+W" msgstr "" #: ..\../export/tools/itoolzoom.cpp:19 msgid "Zoom \tCtrl+O" msgstr "" #: ..\../export/tools/itrackballtool.cpp:19 msgid "Trackball \tCtrl+T" msgstr "" #: ..\../export/tools/iundotool.cpp:20 ..\../main/tools/undotool.cpp:109 msgid "Undo" msgstr "" #: ..\../export/tools/ivideotool.cpp:19 msgid "Video \tCtrl+Space" msgstr "" #: ..\../export/tools/iwindowlayouttool.cpp:20 msgid "Window layout" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:161 msgid "Studies with" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:210 msgid "Reading properties" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:219 #: ..\../main/controllers/controladorcarga.cpp:642 #: ..\../main/controllers/controladorcarga.cpp:888 #: ..\../main/controllers/streaming/streamingloader.cpp:600 #, fuzzy msgid "Error reading the study: " msgstr "Hata" #: ..\../main/controllers/controladorcarga.cpp:224 #: ..\../main/controllers/controladorcarga.cpp:229 #: ..\../main/controllers/controladorcarga.cpp:647 #: ..\../main/controllers/controladorcarga.cpp:893 msgid "Internal error reading the study: " msgstr "" #: ..\../main/controllers/controladorcarga.cpp:269 #: ..\../main/controllers/controladorcarga.cpp:281 #: ..\../main/controllers/controladorcarga.cpp:905 msgid "Spacing is not valid: (" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:305 #: ..\../main/controllers/controladorcarga.cpp:338 #: ..\../main/controllers/controladorcarga.cpp:372 #: ..\../main/controllers/controladorcarga.cpp:408 #: ..\../main/controllers/controladorcarga.cpp:441 #: ..\../main/controllers/controladorcarga.cpp:474 #: ..\../main/controllers/controladorcarga.cpp:507 #: ..\../main/controllers/controladorcarga.cpp:540 #: ..\../main/controllers/controladorcarga.cpp:573 #: ..\../main/controllers/controladorcarga.cpp:606 #: ..\../main/controllers/controladorcarga.cpp:935 msgid "Error loading the study: Out of memory" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:375 msgid "Error loading the study: Internal Error" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:630 #: ..\../main/controllers/streaming/streamingloader.cpp:1023 #: ..\../main/controllers/streaming/streamingloader.cpp:1223 #: ..\../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:651 #: ..\../main/controllers/controladorcarga.cpp:960 msgid "Process canceled by user." msgstr "" #: ..\../main/controllers/controladorcarga.cpp:878 msgid "Interpreting properties" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:917 msgid "Spacing of the image is invalid: (" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:942 msgid "Reading dataset" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:951 #, fuzzy msgid "Error reading the study:" msgstr "Hata" #: ..\../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:972 msgid "load" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:40 msgid "Stopping HL7 sender" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:63 #: ..\../main/controllers/controladorenviohl7.cpp:76 msgid "Error starting HL7 sender" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:65 #: ..\../main/controllers/controladorenviohl7.cpp:78 msgid "HL7 sender started" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:108 msgid "HL7 controller destroyed" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:150 #, fuzzy msgid "Error processing message" msgstr "Hata mesajı" #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/controllers/pacscontroller.cpp:1549 #: ..\../main/controllers/pacscontroller.cpp:1553 #: ..\../main/controllers/pacscontroller.cpp:1557 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ..\../main/gui/import/pasosimportacionbase.cpp:195 #: ..\../wx/gnkinforme/gnkinformebase.cpp:184 msgid "Unknown" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:110 msgid "Loading" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:153 msgid "Could not find entry point" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:74 msgid "Integration engine hostname not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:77 msgid "Integration engine port not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:91 msgid "Unsupported protocol" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "" #: ..\../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, fuzzy, c-format msgid "Downloading file %d/%d" msgstr "%m/%d/%Y" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:359 msgid "Image format not supported" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:200 msgid "Receiving Association failed: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:209 msgid "Association received" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:210 msgid "Parameters:" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:274 msgid "No valid presentation contexts" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "Association(dicom://" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr "" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, fuzzy, c-format msgid "Uploading file %d of %d" msgstr "%m/%d/%Y" #: ..\../main/controllers/dicommanager.cpp:504 #: ..\../main/controllers/dicommanager.cpp:531 msgid "Extracting file..." msgstr "" #: ..\../main/controllers/historycontroller.cpp:323 msgid "Error creating history database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr "" #: ..\../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" #: ..\../main/controllers/historycontroller.cpp:343 msgid "Error creating dicomDir database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:425 #: ..\../main/controllers/historycontroller.cpp:441 msgid "Error creating thumbnails database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:560 msgid "Including image " msgstr "" #: ..\../main/controllers/historycontroller.cpp:560 #: ..\../main/controllers/historycontroller.cpp:707 msgid " of " msgstr "" #: ..\../main/controllers/historycontroller.cpp:707 msgid "Linking image " msgstr "" #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "" #: ..\../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:493 msgid "Malformed template Id (" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:493 #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "Template Id unsupported (" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:566 msgid "Unknown module Id (" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:592 msgid "Empty configuration" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:631 msgid "XML Parser Not Found. Key=" msgstr "" #: ..\../main/controllers/log4cplus/guiappender.cpp:75 #, fuzzy msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "%m/%d/%Y %H:%M:%S" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ..\../main/gui/history3/historypanel3base.cpp:48 #: ..\../main/gui/import/pasosimportacionbase.cpp:227 msgid "Patient" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 msgid "Patient ID" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:86 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ..\../main/gui/history3/historypanel3.cpp:227 #: ..\../main/gui/open/opendialogs.cpp:50 msgid "Modality" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:98 msgid "Dimensions" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:109 #, c-format msgid "Made with %s" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:167 #: ..\../main/controllers/modalitysettingscontroller.cpp:338 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "Varsayılan" #: ..\../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1212 msgid "Downloading file" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Error downloading WADO file" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1318 #, fuzzy msgid "Check PACS configuration" msgstr "Güncellemeleri kontrol et" #: ..\../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1428 msgid "Invalid HTTP response" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1433 msgid "Invalid HTTP code" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1472 msgid "PACS-Service" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:97 #: ..\../main/controllers/parserxmlspanish.cpp:94 msgid "Omitted Identificator" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:105 #: ..\../main/controllers/parserxmlspanish.cpp:102 msgid "Omitted AET" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:113 #: ..\../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:121 #: ..\../main/controllers/parserxmlspanish.cpp:118 msgid "Omitted port" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:206 #: ..\../main/controllers/parserxmlenglish.cpp:237 #: ..\../main/controllers/parserxmlspanish.cpp:188 #: ..\../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:212 #: ..\../main/controllers/parserxmlspanish.cpp:194 msgid "Port is not a valid number" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:248 #: ..\../main/controllers/parserxmlspanish.cpp:228 msgid "The port is not a valid number" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:265 #: ..\../main/controllers/parserxmlspanish.cpp:246 msgid "Setting not found" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:391 msgid "\"code\" attribute expected at \"patient\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:427 msgid "\"code\" attribute expected at \"physician\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:434 msgid "\"value\" attribute expected at \"physician\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:445 msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:483 msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:548 #: ..\../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:552 #: ..\../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:570 #: ..\../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:340 msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:402 msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:438 msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:445 msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:486 msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:524 msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:559 msgid "id_application expected" msgstr "" #: ..\../main/controllers/smartretrievecontroller.cpp:124 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:920 msgid "Downloading from PACS..." msgstr "" #: ..\../main/controllers/streaming/streamingloader.cpp:303 #: ..\../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" #: ..\../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ..\../main/gui/history3/historytablemodel.cpp:403 #: ..\../main/gui/history3/historytablemodel.cpp:415 #: ..\../main/gui/history3/historytablemodel.cpp:470 #: ..\../main/gui/history3/historytablemodel.cpp:482 #: ..\../main/gui/open/dicomdirtablemodel.cpp:102 #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "%m/%d/%Y %H:%M:%S" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "%m/%d/%Y 00:00:00" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 msgid "Exploring PACS..." msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ..\../main/gui/history3/historypanel3.cpp:225 #: ..\../main/gui/open/opendialogs.cpp:49 msgid "Patient id" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ..\../main/gui/history3/historypanel3.cpp:224 #: ..\../main/gui/open/opendialogs.cpp:48 msgid "Patient name" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:479 msgid "Study Instance UID" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ..\../main/gui/history3/historypanel3.cpp:231 #: ..\../main/gui/open/opendialogs.cpp:53 msgid "Accession number" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:481 #, fuzzy msgid "Study date" msgstr "Tarih" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:482 #, fuzzy msgid "Study time" msgstr "Tarih Saat" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:490 msgid "Series Instance UID" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:492 #, fuzzy msgid "Series date" msgstr "Tarih" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:493 #, fuzzy msgid "Series time" msgstr "Tarih Saat" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:519 msgid "No results found" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 msgid "Write query name" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 msgid "This query name is in use, do you want to overwrite it?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 msgid "Id" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 msgid "Date Time" msgstr "Tarih Saat" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ..\../main/gui/history3/historypanel3.cpp:229 #: ..\../main/gui/import/pasosimportacionbase.cpp:298 #: ..\../main/gui/import/pasosimportacionbase.cpp:340 #: ..\../main/gui/open/opendialogs.cpp:52 msgid "Description" msgstr "Açıklama" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ..\../main/gui/import/pasosimportacionbase.cpp:276 msgid "Accession Number" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:210 msgid "Store query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:211 msgid "Remove query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:278 msgid "There is no any PACS configured" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:54 msgid "Study UID" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "Search" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:519 msgid "Download series" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 msgid "Download study" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:535 msgid "Link series" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:537 msgid "Link study" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:551 msgid "Properties..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 msgid "You must specify at least a modality or a period of time" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 msgid "Select a valid query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 msgid "Select a valid PACS Server" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid "Download of modality " msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 #, fuzzy msgid "Modality download error" msgstr "Hata" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:786 msgid "search results" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:913 msgid "Downloading serie..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:916 msgid "Downloading study..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:165 msgid "PACS acquisition is restricted" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:96 msgid "Server" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ..\../main/gui/import/pasosimportacionbase.cpp:284 #: ..\../main/gui/import/pasosimportacionbase.cpp:326 #: ..\../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "Tarih" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ..\../main/gui/history3/historypanel3base.cpp:81 #, fuzzy msgid "Any date" msgstr "Tarih" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ..\../main/gui/history3/historypanel3base.cpp:85 msgid "Today AM" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ..\../main/gui/history3/historypanel3base.cpp:88 msgid "Today PM" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ..\../main/gui/history3/historypanel3base.cpp:91 msgid "Today" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ..\../main/gui/history3/historypanel3base.cpp:100 msgid "Yesterday" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ..\../main/gui/history3/historypanel3base.cpp:103 msgid "Last 7 days" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ..\../main/gui/history3/historypanel3base.cpp:106 msgid "Last 30 days" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ..\../main/gui/history3/historypanel3base.cpp:109 msgid "Last 3 months" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ..\../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ..\../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 msgid "Stored queries" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:216 msgid "Select stored queries..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ..\../main/gui/open/opendialogsbase.cpp:50 #: ..\../main/gui/open/opendialogsbase.cpp:202 msgid "Link" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:289 msgid "Download" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ..\../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "Kapat" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:329 msgid "Series does not exist" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "Devam" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ..\../main/gui/open/opendialogsbase.cpp:127 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ..\../main/tools/metricgridtool.cpp:101 msgid "Ok" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:151 msgid "Download again" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:441 msgid "Open" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:179 msgid "Set query name" msgstr "" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:32 msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:34 msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/anonymize/anonymizedialog.cpp:64 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ..\../main/gui/export/parametrosprincipales.cpp:194 msgid "Exporting images ..." msgstr "" #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:21 msgid "Common tags" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 msgid "Patient's name and surname" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 msgid "Patient Id" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:44 msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:71 #, fuzzy msgid "Add new..." msgstr "Ekle" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ..\../main/tools/anonymizetool.cpp:26 #: ..\../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:136 msgid "Create new" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ..\../main/gui/anonymize/anonymizepanelbase.h:136 #, fuzzy msgid "Add DICOM tag" msgstr "Ekle" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:199 msgid "Group" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:203 msgid "Element" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ..\../widgets/wangulo.cpp:1114 #, fuzzy msgid "Value" msgstr "Varsayılan değer" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 msgid "Top right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 msgid "Top left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 msgid "Bottom left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 msgid "Bottom right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 msgid "You must fill in all fields" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 msgid "Window/level label in use" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 msgid "Window" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 msgid "Level" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 msgid "Do you confirm the removal of the preset?" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Data modified" msgstr "Veri düzenlendi" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 msgid "Modality settings" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 #, fuzzy msgid "Default modality settings" msgstr "Varsayılan" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, c-format msgid "%s settings" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:60 msgid "settings" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Export Configuration" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Ini Files(*.ini)|*.ini" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 msgid "Existing file" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 msgid "Export successfully completed" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #, fuzzy msgid "There was an error during exportation" msgstr "Hata" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Import Configuration" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Ini files(*.ini)|*.ini" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 msgid "There was an error during importation, check permissions" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 msgid "Dicom tag" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 msgid "Split horizontally..." msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 msgid "Split vertically..." msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ..\../main/tools/windowlayouttool.cpp:273 msgid "Split active horizontally" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ..\../main/tools/windowlayouttool.cpp:274 msgid "Split active vertically" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 msgid "New hanging protocol" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, fuzzy, c-format msgid "Window %d" msgstr "%m/%d/%Y" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "Yes" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 msgid "Hanging protocols" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 msgid "One day" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 msgid "Two days" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 msgid "Three days" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 msgid "Two weeks" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 msgid "One month" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 msgid "Three months" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 msgid "Local database" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 msgid "Local DICOM Dir setup" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 msgid "Select DICOMDIR" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:126 msgid "Extensions settings" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 msgid "Port has to be a valid number" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:190 msgid "General configuration parameters" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:134 msgid "Testing conectivity with the server..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:144 #, fuzzy msgid "Error connecting to url" msgstr "Hata" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 msgid "hostname/port not set" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 #, fuzzy msgid "Select certificate" msgstr "Sertifika" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:255 #, fuzzy msgid "Change ..." msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 msgid "Import ..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:279 msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:472 msgid "There are this errors: " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:525 msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:558 msgid "Testing the connection to the node ..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:561 #, fuzzy msgid "DICOM Error" msgstr "Hata" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:607 msgid "The service did not respond correctly to the DICOM standard" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:616 msgid "Invalid port number" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:622 #, fuzzy msgid "WADO Error" msgstr "Hata" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:703 #, fuzzy msgid "Use by default" msgstr "Varsayılan" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:795 msgid "DICOM nodes" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:800 msgid "DICOM nodes settings" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1101 msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ..\../main/gui/export/pasosexportacionbase.cpp:20 msgid "Profile" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "Varsayılan değer" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 msgid "Set property active" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Set property inactive" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #, fuzzy msgid "Set default value" msgstr "Varsayılan değer" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:352 msgid "Set by user" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 msgid "Profile name can't be repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:498 msgid "Profiles Settings" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 msgid "Confirm the removal of the profile " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:53 msgid "New User" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 msgid "User name repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 msgid "Password has to contain at least 6 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:141 msgid "No login" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 #, fuzzy msgid "User/Password" msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:224 #, fuzzy msgid "Password" msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:191 #, fuzzy msgid "Password is setted" msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 #, fuzzy msgid "Password is not setted" msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:195 #, fuzzy msgid "Set password" msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:224 msgid "Security Setting" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 msgid "User inserted successfully" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #, fuzzy msgid "Password changed successfully" msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 msgid "User deleted successfully" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ..\../main/gui/login/dialogologin.cpp:27 msgid "User" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ..\../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 msgid "Maximum length of title is 8 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 msgid "Title" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 msgid "Path" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 msgid "Clean before" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 msgid "Clean after" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 msgid "Location Settings" msgstr "" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:96 msgid "Anonymization settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1370 msgid "Settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 msgid "Export config..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 msgid "Import config..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "Uygula" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 msgid "Physician's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 msgid "Physician's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 msgid "Service" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 msgid "Service's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 msgid "Service's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 msgid "Local institution" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 msgid "Institution's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 msgid "Institution's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 msgid "Dicomized files" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 msgid "Charset" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 msgid "ISO_IR 148" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 #, fuzzy msgid "Automatically check for updates" msgstr "Güncellemeleri kontrol et" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ..\../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 msgid "Proxy settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 msgid "Enable http proxy" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:218 msgid "Proxy Settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 msgid "Server settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 msgid "Host" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 msgid "Port" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 msgid "Username" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 msgid "No proxy for addresses containing" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 msgid "DICOM Dir" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 msgid "Auto-cleaning" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 msgid "MB" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ..\../main/tools/toolwindowlevel.cpp:201 #, fuzzy msgid "Reset to default" msgstr "Varsayılan" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 msgid "Local AET" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 msgid "DICOM Nodes" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 msgid "New ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 msgid "Edit ..." msgstr "Düzenle ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ..\../main/gui/history3/historypanel3.cpp:677 #: ..\../main/gui/history3/historypanel3.cpp:686 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ..\../main/gui/import/selectimagesimportation.cpp:291 #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete" msgstr "Sil" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 #, fuzzy msgid "Set Default" msgstr "Varsayılan" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:388 msgid "DICOM Node" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 msgid "PDU (KB)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 msgid "Retrieve method" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Move" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Get" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 msgid "WADO URL" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 msgid "Retrieve mode" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ..\../main/gui/import/pasosimportacionbase.cpp:319 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1395 msgid "Series" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 msgid "Studies" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 msgid "Worklists" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 msgid "Select how do you want to handle MPPS items" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 msgid "DICOM MPPS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 msgid "HL7 messages" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 msgid "HL7" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 #, fuzzy msgid "Abort message" msgstr "Hata mesajı" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 #, fuzzy msgid "Completed message" msgstr "Hata mesajı" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 #, fuzzy msgid "In progress message" msgstr "Hata mesajı" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 #, fuzzy msgid "Default values" msgstr "Varsayılan" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 msgid "Worklist" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 msgid "SSL/TLS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 msgid "Verify server credentials" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 msgid "Use SSL/TLS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "Sertifika" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 #, fuzzy msgid "Certificate to use in this connection" msgstr "Sertifika" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 #, fuzzy msgid "Default charset" msgstr "Varsayılan" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 msgid "Advanced" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 #, fuzzy msgid "Local AET certificate" msgstr "Sertifika" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 msgid "Certificate used by Ginkgo CADx" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 msgid "Receiver organization Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 msgid "Petitioner System Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 msgid "Filler Application Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 msgid "Ginkgo CADx Application Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 msgid "Integration engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 msgid "Hostname / Port" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "/" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 msgid "Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ..\../main/gui/export/pasosexportacionbase.cpp:28 msgid "Format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 #, fuzzy msgid "Message's format" msgstr "Hata mesajı" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "ER7" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 msgid "Test engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 msgid "Test Integration Engine connectivity" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 msgid "Ginkgo Extension Title" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 #, fuzzy msgid "Edit public key" msgstr "Düzenle ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 msgid "Public key" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 msgid "Public key in PEM format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 msgid "Load ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 msgid "Private key" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 msgid "Private key in PEM format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 msgid "Profile name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 msgid "Set active" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 msgid "Configure location" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 msgid "Location" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 msgid "Security type" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 #, fuzzy msgid "Change Password ..." msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 #, fuzzy msgid "Set main password" msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 #, fuzzy msgid "Set Password" msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:736 #, fuzzy msgid "Edit User" msgstr "Düzenle ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 msgid "User Name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 #, fuzzy msgid "Confirm Password" msgstr "Parolayı değiştir" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 msgid "Properties" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:814 #, fuzzy msgid "Edit corner annotations" msgstr "Düzenle ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue} where GGGG is the tag's group in hexadecimal and EEEE is the " "tag's element." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 msgid "Window/level" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "Ekle" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ..\../main/gui/history3/historytoolmenu.cpp:149 #: ..\../widgets/gui/selecciontextobase.h:58 #, fuzzy msgid "Edit" msgstr "Düzenle ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 #, fuzzy msgid "Default Window/Level" msgstr "Varsayılan" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 msgid "Corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 msgid "Setup corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 msgid "Setup..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 msgid "Other settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 #, fuzzy msgid "Interpolate pixel data" msgstr "Veri" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:885 msgid "Hanging protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 msgid "Opening mode" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 msgid "Study opening criteria" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 msgid "Workspace" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 msgid "Enable/Disable" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 msgid "Top left corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 msgid "Setup window" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 #, fuzzy msgid "Set default" msgstr "Varsayılan" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 msgid "Open in main window" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 msgid "Setup position..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 msgid "Setup undocked window position" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 msgid "Layout" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 #, fuzzy msgid "Current layout" msgstr "Mevcut" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 msgid "Columns" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 msgid "Series criteria" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 msgid "Select opening mode" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 msgid "Tag" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 msgid "Save" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 msgid "Enable background queries" msgstr "" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 msgid "Smart retrieve" msgstr "" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 msgid "Smart retrieve settings" msgstr "" #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.h:64 msgid "Export DICOM" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 msgid "Ginkgo CADx private tags" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ..\../main/gui/history3/historypanel3.cpp:340 #: ..\../main/gui/history3/historytoolmenu.cpp:158 msgid "Export" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ..\../main/gui/export/parametrosprincipales.cpp:157 msgid "Select the directory where the files will be stored" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 msgid "Select the DICOM Dir folder" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 msgid "DICOM Dir migration" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 msgid "Migrate existing (recommended)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 #, fuzzy msgid "Continue..." msgstr "Devam" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 msgid "Select other" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 msgid "Browse..." msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:106 msgid "DICOM Export" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:110 msgid "Select the format and the images you want to export" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:143 #, fuzzy msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "Tüm dosyalar (*.*)|*.*" #: ..\../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:150 #, fuzzy msgid "Select file" msgstr "Tümü" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "DICOM (native format)" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "Image (jpg, bmp, png)" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:38 #, fuzzy msgid "Export all files of opened tab" msgstr "%m/%d/%Y" #: ..\../main/gui/export/pasosexportacionbase.cpp:55 msgid "JPEG" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:40 msgid "Image Export Wizard" msgstr "" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ..\../main/gui/license/aboutdialogbase.cpp:67 #: ..\../main/gui/license/aboutdialogbase.cpp:151 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:54 #, fuzzy msgid "&Accept" msgstr "Kabul et" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:32 msgid "Open link" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:402 msgid "File link:" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ..\../main/gui/import/pasosimportacionbase.cpp:270 msgid "Study" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:216 msgid "User name" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:397 msgid "Ginkgo Cloud link" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:437 msgid "Copy to clipboard" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "New Ginkgo Cloud study" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "To download the study, paste this url " msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 msgid "Creator" msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 msgid "Last Modificator" msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 msgid "Show link..." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "" #: ..\../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 msgid "Invalid link" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:117 #: ..\../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:119 #: ..\../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:226 #: ..\../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "Yaş" #: ..\../main/gui/history3/historypanel3.cpp:228 #, fuzzy msgid "Date acquired" msgstr "Tarih" #: ..\../main/gui/history3/historypanel3.cpp:230 #, fuzzy msgid "Date added" msgstr "Tarih" #: ..\../main/gui/history3/historypanel3.cpp:308 #: ..\../main/gui/history3/historytoolmenu.cpp:82 #: ..\../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:316 #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:363 #, fuzzy msgid "All patients" msgstr "Tümü" #: ..\../main/gui/history3/historypanel3.cpp:481 msgid "Results" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:481 #, fuzzy, c-format msgid " (%d images)" msgstr "%m/%d/%Y" #: ..\../main/gui/history3/historypanel3.cpp:634 msgid "Open study with .." msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:663 #: ..\../main/gui/history3/historypanel3base.cpp:482 msgid "Synchronize" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:677 #, fuzzy msgid "&Delete from history" msgstr "Sil" #: ..\../main/gui/history3/historypanel3.cpp:686 #, fuzzy msgid "&Clear history" msgstr "Temizle" #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid "Unable to open modality " msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1086 #, fuzzy msgid "all files" msgstr "Tümü" #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 msgid "Select at least one series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "those series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "this series" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:57 msgid "Advanced search" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:73 #, fuzzy msgid "Acquisition date" msgstr "Tarih" #: ..\../main/gui/history3/historypanel3base.cpp:302 #: ..\../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "Silmek istediğinize emin misiniz? " #: ..\../main/gui/history3/historypanel3base.cpp:336 #: ..\../main/gui/history3/historytoolmenu.cpp:102 #: ..\../main/gui/history3/historytoolmenu.cpp:200 #: ..\../main/gui/history3/historytoolmenu.cpp:229 msgid "Remove" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:454 #: ..\../main/gui/history3/historypanel3base.h:187 msgid "Synchronize files" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" #: ..\../main/gui/history3/historytablemodel.cpp:406 #: ..\../main/gui/history3/historytablemodel.cpp:418 #: ..\../main/gui/history3/historytablemodel.cpp:473 #: ..\../main/gui/history3/historytablemodel.cpp:485 #: ..\../main/gui/open/dicomdirtablemodel.cpp:105 #, fuzzy msgid "00/00/0000 00:00:00" msgstr "%m/%d/%Y 00:00:00" #: ..\../main/gui/history3/historytoolmenu.cpp:138 #, fuzzy msgid "Close history" msgstr "Kapat" #: ..\../main/gui/history3/historytoolmenu.cpp:139 #: ..\../main/gui/startup/startupform.cpp:53 msgid "History" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:201 #: ..\../main/gui/history3/historytoolmenu.cpp:230 #, fuzzy msgid "Clear history" msgstr "Temizle" #: ..\../main/gui/history3/historytoolmenu.cpp:232 #, fuzzy msgid "Select all" msgstr "Tümü" #: ..\../main/gui/history3/historytoolmenu.cpp:233 #, fuzzy msgid "Deselect all" msgstr "Tümü" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 msgid "Destination" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 msgid "Status" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 msgid "Error message" msgstr "Hata mesajı" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 #, fuzzy msgid "Show Message" msgstr "Hata mesajı" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 #, fuzzy msgid "Edit Message" msgstr "Düzenle ..." #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 msgid "Delete message" msgstr "Mesajı sil" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 #, fuzzy msgid "Error editing message" msgstr "Hata mesajı" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 #, fuzzy msgid "Error purguing messages" msgstr "Hata" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Stop" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Sent" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/progress/statusbarprogreso.cpp:281 msgid "Warning" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 #, fuzzy msgid "Error getting message" msgstr "Hata mesajı" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 msgid "Running" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 msgid "Usually due to an error in sending a message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Start" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 #, fuzzy msgid "Error deleting messages" msgstr "Hata" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 msgid "Remove sent messages" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 #, fuzzy msgid "Exit" msgstr "&Çıkış" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 msgid "Messages" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 msgid "Refresh" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1394 msgid "View" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 msgid "Send task status:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 #, fuzzy msgid "Message" msgstr "Hata mesajı" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "Tarih:" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 msgid "Destination:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 msgid "Status:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 #, fuzzy msgid "Message content:" msgstr "Hata mesajı" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:142 msgid "OK" msgstr "" #: ..\../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "" #: ..\../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "" #: ..\../main/gui/import/generaldata.cpp:210 msgid "" "\n" "* The patient ID is required." msgstr "" #: ..\../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" #: ..\../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" #: ..\../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" #: ..\../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" #: ..\../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "" #: ..\../main/gui/import/generaldata.cpp:231 #, fuzzy msgid "Error validating fields" msgstr "Hata" #: ..\../main/gui/import/pasoperfilimportacion.cpp:148 msgid "Selecting Import Profile" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:152 msgid "You must select the profile you want to use import" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 msgid "You must select the import profile" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:21 msgid "Selected images" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:56 msgid "Preview" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:62 #, fuzzy msgid "Remove all" msgstr "Tümü" #: ..\../main/gui/import/pasosimportacionbase.cpp:113 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:65 #, fuzzy msgid "Demographic data" msgstr "Veri" #: ..\../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:159 #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 #, fuzzy msgid "Birth date" msgstr "Tarih" #: ..\../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:217 msgid "Study Details" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:234 #: ..\../wx/gnkinforme/gnkinformebase.cpp:122 msgid "Weight" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:245 msgid "Kg" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:252 #: ..\../wx/gnkinforme/gnkinformebase.cpp:119 msgid "Height" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:291 #: ..\../main/gui/import/pasosimportacionbase.cpp:333 #, fuzzy msgid "Time" msgstr "Tarih Saat" #: ..\../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files..." msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste from clipboard" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:330 #, fuzzy msgid "Delete selected items" msgstr "Sil" #: ..\../main/gui/import/selectimagesimportation.cpp:342 msgid "You must select an image" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:346 msgid "Generating preview..." msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:500 msgid "Select images" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:715 msgid "Image selection" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:760 msgid "The file" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:52 msgid "Image Import Wizard" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:167 msgid "free of" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:181 msgid "in dicomization dir." msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, fuzzy, c-format msgid "Step %d of %d: " msgstr "%m/%d/%Y" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "" #: ..\../main/gui/license/aboutdialog.cpp:25 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:22 msgid "Ginkgo CADx" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "Hazırlayanlar" #: ..\../main/gui/license/aboutdialogbase.cpp:55 msgid "Licenses" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:58 #, fuzzy msgid "UPDATE_INFO" msgstr "Bilgi" #: ..\../main/gui/license/aboutdialogbase.cpp:108 #: ..\../main/gui/license/aboutdialogbase.h:88 msgid "Open Source Licenses" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:119 msgid "FamFamFam Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:120 msgid "Fugue Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:126 msgid "WxWidgets" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:127 msgid "Zlib" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:130 msgid "Dark Glass Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:23 #: ..\../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:53 #, fuzzy msgid "Check for updates automatically" msgstr "Güncellemeleri kontrol et" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:66 #, fuzzy msgid "I Accept the license" msgstr "Kabul et" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Save logs" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 msgid "File couldn't be stored " msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 msgid "Could not write to file" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 #, fuzzy msgid "Save log..." msgstr "Kayıt Dosyasını Temizle" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 msgid "Clear log" msgstr "Kayıt Dosyasını Temizle" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 #, fuzzy msgid "Log" msgstr "Kayıt Dosyasını Temizle" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "Temizle" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "" #: ..\../main/gui/login/dialogologin.cpp:50 #, fuzzy msgid "The username or password is incorrect" msgstr "Parolayı değiştir" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:250 msgid "Tasks" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1139 msgid "Included in the history ..." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 #, fuzzy msgid "Check update error" msgstr "Güncellemeleri kontrol et" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 msgid "Malformed XML" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1192 msgid "Error in interpreting the parameters of the command line. (" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 msgid "Error parsing integration XML:\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #, fuzzy msgid "PACS error:\n" msgstr "Hata" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 msgid "Error executing WorkFlow\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #, fuzzy msgid "Close current view" msgstr "Mevcut" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 #, fuzzy msgid "Close all" msgstr "Tümü" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 #, fuzzy msgid "Close all views" msgstr "Tümü" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "&Çıkış" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 #, fuzzy msgid "Exit application" msgstr "&Çıkış" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Show full screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1302 msgid "Tab grouping" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1329 msgid "Ginkgo CADx manual ..." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1330 msgid "Open test card" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "Güncellemeleri kontrol et" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 #, fuzzy msgid "Check for newest versions" msgstr "Güncellemeleri kontrol et" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1332 msgid "Need support ..." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About " msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 msgid "HL7 monitor" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #, fuzzy msgid "HL7 message control" msgstr "Hata mesajı" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 #, fuzzy msgid "Log monitor" msgstr "Kayıt Dosyasını Temizle" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #, fuzzy msgid "Log monitored" msgstr "Kayıt Dosyasını Temizle" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1390 msgid "&File" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "&Düzenle" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "&Yardım" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1664 #, fuzzy msgid "Unsaved data" msgstr "Veri" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 #, fuzzy msgid "Error saving" msgstr "Hata" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "Full Screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "View Full Screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1708 msgid "Tab Regroup" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "&Kapat" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 #, fuzzy msgid "&Close all" msgstr "Tümü" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 #, fuzzy msgid "Close all windows" msgstr "Tümü" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1728 msgid "Tabbed organization" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "Ginkgo CADx updated" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1782 msgid "New version available (" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:29 msgid "New Update" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:34 msgid "New version available" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:43 msgid "X" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:45 #, fuzzy msgid "Close this notification" msgstr "Kapat" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:104 msgid "The following commands will be aborted if you close the application" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:131 #, fuzzy msgid "Close Ginkgo CADx" msgstr "Kapat" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:138 msgid "User login" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:202 msgid "System authentication" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:260 msgid "Login" msgstr "" #: ..\../main/gui/open/abrir.cpp:80 ..\../main/gui/open/abrir.cpp:82 msgid "Open..." msgstr "" #: ..\../main/gui/open/opendialogs.cpp:58 msgid "There was an error reading DICOMDIR file" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:62 msgid "Select a valid DICOMDIR file" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:180 #: ..\../main/gui/open/opendialogsbase.cpp:170 #: ..\../main/gui/open/opendialogsbase.h:112 msgid "Copy or link" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:22 #: ..\../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:94 #: ..\../main/gui/open/opendialogsbase.h:85 msgid "Select drive" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:175 msgid "Do you want to copy or link files?" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ..\../main/gui/selectpacsserver/selectpacsserver.cpp:30 msgid "There aren't any PACS configured" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:69 #, fuzzy msgid "0000/00/00 00:00:00" msgstr "%m/%d/%Y 00:00:00" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.h:57 msgid "Upload study" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 msgid "Select PACS server" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:119 msgid "Metadata" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:120 msgid "Identification information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:121 msgid "Patient information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:122 msgid "Acquisition information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:123 msgid "Relationship information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:124 msgid "Image presentation information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:125 ..\../widgets/wtextbox.cpp:525 msgid "Text" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:126 msgid "Other" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:137 #: ..\../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "Veri" #: ..\../main/gui/previewpanel/previewpanel.cpp:47 msgid "Hide" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:187 #: ..\../main/gui/previewpanel/previewpanelbase.cpp:207 msgid "Previews" msgstr "" #: ..\../main/gui/progress/progresobase.cpp:23 msgid "There is no running tasks" msgstr "" #: ..\../main/gui/progress/statusbarprogreso.cpp:165 #, fuzzy msgid "0 running tasks." msgstr "0" #: ..\../main/gui/progress/statusbarprogreso.cpp:192 #, fuzzy, c-format msgid "There are %d pending tasks" msgstr "%m/%d/%Y" #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.h:55 msgid "Select PACS" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:29 msgid "http://ginkgo-cadx.com" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:47 msgid "Ginkgo CADx Pro" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "" #: ..\../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "" #: ..\../main/managers/widgetsmanager.cpp:1079 #, fuzzy msgid "Delete Widget" msgstr "Sil" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Properties ..." msgstr "" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Widget Properties" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:114 msgid "Open file" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:115 #: ..\../main/tools/openfoldertool.cpp:27 msgid "Open folder" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:116 #: ..\../main/tools/openremovabletool.cpp:28 msgid "Open removable unit" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:117 #: ..\../main/tools/openginkgocloudlinktool.cpp:27 msgid "Open Ginkgo Cloud link" msgstr "" #: ..\../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "" #: ..\../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "" #: ..\../main/tools/colormaptool.cpp:110 #, fuzzy msgid "Invert color map" msgstr "Renk" #: ..\../main/tools/cornerannotationstool.cpp:44 msgid "Hide corner annotations" msgstr "" #: ..\../main/tools/cornerannotationstool.cpp:46 msgid "Show corner annotations" msgstr "" #: ..\../main/tools/detachwindowtool.cpp:42 msgid "Attach View" msgstr "" #: ..\../main/tools/detachwindowtool.cpp:44 msgid "Detach view" msgstr "" #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize files" msgstr "" #: ..\../main/tools/exportdicomdirtool.cpp:32 msgid "Export to DICOM Dir" msgstr "" #: ..\../main/tools/markertool.cpp:171 msgid "Point" msgstr "" #: ..\../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "" #: ..\../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "" #: ..\../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "" #: ..\../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "" #: ..\../main/tools/markertool.cpp:176 msgid "Free form" msgstr "" #: ..\../main/tools/metricgridtool.cpp:57 msgid "Grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:67 msgid "Grid Scale" msgstr "" #: ..\../main/tools/metricgridtool.cpp:74 msgid "Scale X" msgstr "" #: ..\../main/tools/metricgridtool.cpp:78 msgid "X axis scale" msgstr "" #: ..\../main/tools/metricgridtool.cpp:87 #, fuzzy msgid "Scale Y" msgstr "%m/%d/%Y" #: ..\../main/tools/metricgridtool.cpp:91 #, fuzzy msgid "Y axis scale" msgstr "%m/%d/%Y" #: ..\../main/tools/metricgridtool.cpp:206 msgid "Show grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:250 msgid "Hide Grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:252 msgid "Show Grid" msgstr "" #: ..\../main/tools/openfiletool.cpp:28 msgid "Open File" msgstr "" #: ..\../main/tools/pacsuploadtool.cpp:54 msgid "Send to PACS..." msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:59 msgid "Unset pixels blurring" msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:61 msgid "Set pixels blurring" msgstr "" #: ..\../main/tools/queryretrievehistorytool.cpp:25 msgid "PACS Q/R" msgstr "" #: ..\../main/tools/queryretrievetool.cpp:94 #: ..\../main/tools/searchginkgocloudhistorytool.cpp:28 msgid "Search Ginkgo Cloud" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:151 msgid "Undo rotate and flip" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:156 msgid "Flip horizontal" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:157 msgid "Flip vertical" msgstr "" #: ..\../main/tools/sendpacstool.cpp:34 msgid "Send to PACS" msgstr "" #: ..\../main/tools/sendpacstool.cpp:70 msgid "Sending to PACS..." msgstr "" #: ..\../main/tools/showtagstool.cpp:42 msgid "Hide DICOM inspector" msgstr "" #: ..\../main/tools/showtagstool.cpp:44 msgid "Show DICOM inspector" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:119 msgid "Image printing" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:224 msgid "Page setup" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:225 msgid "Print preview" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:272 msgid "Print image" msgstr "" #: ..\../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "" #: ..\../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "" #: ..\../main/tools/undotool.cpp:110 msgid "Redo" msgstr "" #: ..\../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "" #: ..\../main/tools/videotool.cpp:153 msgid "Enable loop" msgstr "" #: ..\../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:267 #, fuzzy msgid "Add column" msgstr "Ekle" #: ..\../main/tools/windowlayouttool.cpp:268 #, fuzzy msgid "Add row" msgstr "Ekle" #: ..\../main/tools/windowlayouttool.cpp:270 msgid "Remove column" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:271 msgid "Remove row" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:82 msgid "The tool is already registered" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:187 msgid "The module " msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:49 msgid "Unable to load PNG bitmap resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:56 msgid "Unable to load PNG image resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:63 msgid "Unable to load GIF animation resource" msgstr "" #: ..\../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "" #: ..\../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "" #: ..\../widgets/gui/calibracion.cpp:219 #, fuzzy msgid "Enter the calibration value" msgstr "Varsayılan değer" #: ..\../widgets/gui/calibracion.cpp:225 msgid "The calibration value is too low" msgstr "" #: ..\../widgets/gui/calibracion.cpp:229 msgid "The calibration value is too high" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "Santimetre" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "" #: ..\../widgets/gui/selecciontextobase.cpp:26 msgid "Note" msgstr "" #: ..\../widgets/wangulo.cpp:1101 ..\../widgets/wangulo.cpp:1103 msgid "Type" msgstr "" #: ..\../widgets/wangulo.cpp:1101 msgid "Normal" msgstr "" #: ..\../widgets/wangulo.cpp:1103 msgid "Cobb" msgstr "" #: ..\../widgets/welipse.cpp:721 ..\../widgets/wfreeform.cpp:470 #: ..\../widgets/wpolygon.cpp:574 #, fuzzy msgid "Center (I)" msgstr "Merkez" #: ..\../widgets/welipse.cpp:727 ..\../widgets/wfreeform.cpp:476 #: ..\../widgets/wpolygon.cpp:580 #, fuzzy msgid "Center (M)" msgstr "Merkez" #: ..\../widgets/welipse.cpp:762 ..\../widgets/welipse.cpp:766 msgid "Greater Radius" msgstr "" #: ..\../widgets/welipse.cpp:763 ..\../widgets/welipse.cpp:767 msgid "Lower Radius" msgstr "" #: ..\../widgets/wfreeform.cpp:482 ..\../widgets/wpolygon.cpp:586 msgid "Number of Vertex" msgstr "" #: ..\../widgets/wpunto.cpp:353 msgid "Position (I)" msgstr "" #: ..\../widgets/wpunto.cpp:358 msgid "Position (M)" msgstr "" #: ..\../widgets/wrule.cpp:558 msgid "Image Calibration" msgstr "" #: ..\../widgets/wrule.cpp:663 msgid "Length" msgstr "" #: ..\../widgets/wrule.cpp:668 msgid "Points (I)" msgstr "" #: ..\../widgets/wrule.cpp:675 msgid "Points (M)" msgstr "" #: ..\../widgets/wtextbox.cpp:445 #, fuzzy msgid "Default text" msgstr "Varsayılan" #: ..\../wx/gnkinforme/gnkinformebase.cpp:41 #, fuzzy msgid "Commit date" msgstr "Tarih" #: ..\../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "%m/%d/%Y" #: ..\../wx/gnkinforme/gnkinformebase.cpp:214 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:219 #, fuzzy msgid "Modified" msgstr "Veri düzenlendi" #: ..\../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "644654645" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:130 msgid "Commit inform" msgstr "" #: ..\../wx/propiedades/wxpropiedades.cpp:30 msgid "Properties of " msgstr "" #: ..\../wx/propiedades/wxpropiedadesbase.cpp:31 msgid "Widget's Name" msgstr "" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "&İptal" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3701 msgid "Regular expression invalid: '" msgstr "" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "" #: ..\../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.h:56 msgid "Overwrite Paths" msgstr "" #: ..\../ginkgopro/ginkgo_pro_defines.h:21 msgid "Professional DICOM CADx environment" msgstr "" #: ..\../main/controllers/dcmtk/dicomservers.h:39 msgid "Server not found" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:99 msgid "DICOM Query/Retrieve" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:123 msgid "Not found" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:418 msgid "Advanced Settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:570 #, fuzzy msgid "Edit profile" msgstr "Düzenle ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:665 #, fuzzy msgid "Add/Edit Location" msgstr "Düzenle ..." #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:784 #, fuzzy msgid "Add window/level" msgstr "Ekle" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 #, fuzzy msgid "Add tag" msgstr "Ekle" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 msgid "Setup window position" msgstr "" #: ..\../main/gui/countdownmessage/countdownmessagebase.h:61 msgid "Closing" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 msgid "DICOM Dir configuration" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:70 msgid "Open Ginkgo Cloud" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:123 msgid "Ginkgo Cloud search" msgstr "" #: ..\../main/gui/history3/confirmdeletedialog.h:24 msgid " from History?" msgstr "" #: ..\../main/gui/history3/historypanel3base.h:100 msgid "Medical history" msgstr "" #: ..\../main/gui/history3/historypanel3base.h:161 msgid "Open With ..." msgstr "" #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Select a View" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 #, fuzzy msgid "Message detail" msgstr "Hata mesajı" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 #, fuzzy msgid "Log node" msgstr "Kayıt Dosyasını Temizle" #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:87 msgid "Closing Ginkgo CADx" msgstr "" #: ..\../main/gui/paneltags/paneltagsbase.h:57 msgid "DICOM Inspector" msgstr "" #: ..\../main/license.h:31 msgid "Open Source DICOM CADx environment" msgstr "" #: ..\../widgets/gui/calibracionbase.h:65 msgid "Calibration" msgstr "" #: ..\../wx/propiedades/wxpropiedadesbase.h:62 msgid "Properties of ..." msgstr "" #: ..\../wx/thumbnailctrl/thumbnailwidget.h:44 msgid "Image Browser Dialog" msgstr "" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.h:60 msgid "Test title" msgstr "" #~ msgid "Current" #~ msgstr "Mevcut" #~ msgid "All" #~ msgstr "Tümü" #~ msgid "BMP" #~ msgstr "BMP" #~ msgid "Color" #~ msgstr "Renk" #~ msgid "Center" #~ msgstr "Merkez" #~ msgid "0" #~ msgstr "0" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">" #~ msgstr ">" #~ msgid "<" #~ msgstr "<" #~ msgid "<<" #~ msgstr "<<" #~ msgid "Choose a directory:" #~ msgstr "Bir dizin seç:" #~ msgid "Choose a file" #~ msgstr "Bir dosya seçin" #~ msgid "Study description" #~ msgstr "Açıklama" #~ msgid "Clean" #~ msgstr "Temizle" #~ msgid "Display Options" #~ msgstr "Görünüm Seçenekleri" #~ msgid "Close All" #~ msgstr "Tümünü Kapat" #~ msgid "&Open File" #~ msgstr "&Dosya Aç" #~ msgid "12412012 Q" #~ msgstr "12412012 Q" #~ msgid "31/08/1983" #~ msgstr "31/08/1983" #~ msgid "10:20" #~ msgstr "10:20" #~ msgid "31/02/2010" #~ msgstr "31/02/2010" #~ msgid "Date: " #~ msgstr "Tarih: " #~ msgid "About &Ginkgo CADx ..." #~ msgstr "&Ginkgo CADx Hakkında ..." #~ msgid "About Ginkgo CADx ..." #~ msgstr "Ginkgo CADx Hakkında ..." #~ msgid "Ginkgo CADx settings" #~ msgstr "Ginkgo CADx Hakkında ..." #~ msgid "1x1" #~ msgstr "1x1" #~ msgid "1x2" #~ msgstr "1x2" #~ msgid "2x1" #~ msgstr "2x1" #~ msgid "2X2" #~ msgstr "2X2" #~ msgid "3x3" #~ msgstr "3x3" #~ msgid "4x4" #~ msgstr "4x4" #~ msgid "About Ginkgo CADx..." #~ msgstr "Ginkgo CADx Hakkında ..." #~ msgid "Default Value" #~ msgstr "Varsayılan Değer" #~ msgid "Save Certificate" #~ msgstr "Sertifika" #~ msgid "Address" #~ msgstr "Adres" #~ msgid "Downloads" #~ msgstr "İndirilenler" ginkgocadx-3.8.7/cadxcore/lang/tr/wxstd.mo000066400000000000000000004200371314736454600205360ustar00rootroot00000000000000.9 rh?i? #,2:A` ֚ * 9,Dq   ɛ ؛  #,1@HPY_pw~ ̜Ԝ $*29IQ Wex  ڝ  %27=R[`fn ~  ǞӞڞ   )3 G Q]cip ğџ !'6>GPY`e k v ƠΠ֠۠4 $>!c*/ȡ: 3TX_ f tŢ ɢ Ԣ ߢ   #-DViq ãɣϣף#ޣ/2EZ3\56Ƥ-DT jե6Mjʦڦ  (4 8CKi4. &/ B M Ycgy 6" "-:P ϩ ש 1Kb~ ת *DI!h"-ǫ1('P U`tɬ1Ь1 @KR erzҭ!(007hn v FԮ);Oo%#ʯ"*(<&e%%6ذ",?O1ű 2$J!oG((:-c%3 -$Rh %")@j ߵ)#;'_"޶#,5S Zg oz B'!;+]"Ÿ&#+)O$y&Źع 3HOek"$ú# +- Y(z%$ &+!R&t#"#*!1#Sw }/,=$UzN*R(f)¿ʿ ("*CKP$_!%&# 8!Rt"6'R!z!*!Df(".&7'^/#C#B^(v9 9%_p  !,(1U0%% %*#1/U!#    ) 7 B O [gx-  ~ ""20Qc2v"v  -16;OS)Y   -E`} ,LI$%Bh 0?J\,$ 2!3T$*.#?^ }-"'0"H9k$0"&:"a$8G!c/A1.)Xw2)2 ?/\/%##"3F"z(%$ -TN*(($:$_'"!#5E${ + -Lz"#";^+}' -' "H5k'&-S>/+&,2B)u-&&+9e('-!;%)a323-Dr$;)2;!n**=46k"(  $+0 6A G/S 4 "BSY'qk S^f#y!#28O W%b*  5'T| 2 *DM Ua/"  )J'c 6Q'wy$72%)X$j%}+%/3%Yx-  *F1L~(#36L6#81;m%!!&!@b!| & &0MT[_f o z      '.4C HR Wja 5J%e6% \0j  #)%Ok~ | $ . 8 D O Zdw   ! . :EW ` j u      ( 4?&X  !"'CJ '+ #'9Qd |  *& ,5J1y$- R%s%F!!C'Lt)&  #2F*Mx7! !4C*Kv0 8HP(W5:?#^ $1 V %t  $  $  $; ` $}  $  $ & $C h $          0 &7 ^ d t  |     " 1 A 9   */5#e      )9Kj{   !8 LXHa8  %.3;MTZc{!3#w "DK ]kt | $- +=C Zf mw  / %,O3  <  +6Qh% )#)EM?*3Kc~'%*,D\chnsy -1+%<)b  6$4 ; FSq  &#Aev /,0._|z()0o 82 k | '   &  !!/+![!l!!!!!!!""6"Q"k"}"P"#"##)#<#.# $$2$J$ ^$!$$'$$*$%)%<%X%m%%0%%"X&>{&M&\'e'7w'a'V(Oh(@(Y(#S)w))B)))**1#*U*;n**** **A*#+8+=+O+f+%+L+++,",>,3Y,*, ,,#,$-#<-!`- -#- -&-3.#C.g.*.$. .&./7/U/"u// / ///,/8/200L0$}000$0'01$'1'L1t111"11#1 2+2 J2k2!222$2#3$*3#O3s33!33"3 4*4H4h4 44444+4%5D5'X55555556!6A6+U66 666666 7" 7807i7}777 77778/8 58 B8 O8,]8 888(88 9 9 9*9 @9 M9 W9b9 r9 }99999"9.:-5:c:~::&::: ;;$;8;L;c;y;; ;"; ;;!<'<"@<c<,~<<1<$<% =F=.J= y=/=<=> >>"> +> 8>;D>>:?K?0g?=?;?>@;Q@5@@ZApAtA91B,kBB.bC-C!C CC DD*D BDLDbD!DD)D>D#E#6E/ZE0EE-EF&F*;F(fF#F'F'F"G&G =G ^G G!G$GG)G H#H#5HYH^HcHwHH"H HHH/HH II#/ISI/rII II4I!J8'J9`J.JJJ J JJJKK+4K"`K#K KKKKKL LL L)L(2L[LbLgLnL~L"L LLLLLL L&L)MAMUM \M gMsM{MM MM-MMMMN(N8N$JNoN sNNNCNN NNN"N!O4O SSOSSSS T TTT'T/TLTjTTTTTT T TT T U U/UHU YUdUtU U UUUUUUUUVV VVV*V2V:VIVQV aV mVwV}VV VVV$VVWW W 'W 1W>W TW`WgWnWuW {WW WWW WWW W WWX X +X LXVX ]XgX oX yXXXXX X XXXXX XX YY*Y2Y;YCY JYUY hYtYYYY YYYYY Y Y Z ZZ 8Z&FZmZ}ZZ ZZ Z,ZZZ ZZ [ ['[7[ >[ H[T[\[c[i[p[[ [ [[[[[ [ [\ \*\<\=K\)\!\\)\-]<D] ]] ] ]] ] ]]]]]]]^^ ^^^^^^"^ &^ 3^ @^ M^ Z^g^i^ ^^^^^ ^^^^ _ _ _'_-_5_%<_0b____1_;_C/`s``````aa5aLaha~aaaaaab0bGbWbsbbb b bbbbbb&b cK#cJocccc dd!d1dBdKdRdhd|d d dHdd e&e)9eLcee eeee e f f f>f!Tfvfff!fffg+g!Agcgyg~g(g%gg2g62h!ihhhh hhhhh:i=i Di Ni[i_iyi i iii ii iijj.jDjZjqjxjj=jjjjjFj$>k4ck&k#k+kl)l+Fl/rl*l-l-l1)m.[m)m@m"m!nE:nn%n=n)n/'oWovo*oooWo7p)Tp+~p+p(p:p:qRq1pqqq!q)q)rGr$dr r.rr"rs"3s'Vs'~s0s's7s+7t+ct/ttttu u &u3uLuQu cu pu{uuuuau@v8Rv.v5v#v%w,:w,gw+w7w8w41x6fx&xxx xx5y =yGy _yjy)y#y<y3z-Iz5wz-z2z${<3{0p{1{5{2 |5<|3r|1|&|/|+/}4[}}}}}}}1}~~1~O~!j~!~H~*~j"9 * ! -@3I} €'ր:Yv&؁!,G`{!,-!%G#f#ʃ)#-&Qx.!.1"C>f&̅ 54j'H "(/ AMh n|ǡχ8ևFEV81Ո$)'29Z''׉2GM ^l {   !Ċ4 " -:hJƋ (<GQn"6+bA/ 6A S a mz0َ  5EIP Xd w!+,ӏ, -N#lʐ'GVFq$#!AV1oђ( $/&KrH4ړ 02B<a2є!01Dv"!͕0# #D(h"?(5S&p# ܗ62L:l(8ИA BK0!ә2/(X9t+˚0D ] ~2!қ* 7 Rsm+'K,s#'ĝ(+.Hw!H-. I"j=+ 7S*f"ɠ##$H,e,%3-G$f;WǢ=]'w"'£$8&H*o. $!*5L.4424N*8-/30cF-ۧ2 "<_hm*s,1˨1/4H},  ̩   #)0;ls y   Ī ҪAު 6(=fx+!ǫm $'άDJ;\  .*G[r$#, ,7NVvB#" 3 ?Ka 'ǰ$# %0V+s!ױ BTIG2;޳;2V$##(&ֵ(-&.T¶ض9 #0 @ N'\K׷"*#D'hH˸H!]DĹ˹*$/Tg˺.L*k ̻ӻڻ޻    %. 6@ HT \ hr{  Ǽ̼Ҽ ּ6,0C]sݽ" A^v}KоB &2.A)p '/$>Onvl{     )4GV jx              0 : D O Zfo x     %$9M0g !/ 6C!bD##8S\_ch|    97@x/&:'D-+ 383l!I' 4/<#l./ *4EZox$@+' S`t 7133go=t'#> Uv$ #2FZn$%&$?d$}$$$7\$u$$ ( 1 ? M[ds>4&/D'Z!*= I$ &?3*s    0EYk"  / C OYiyP;/k t & -7 Q [F|Felt &L&; X fs3(.3Nek  *1%\G   T< "'J%Q,wJQ  [Ff" $5'M!u)'49*X3* *07P;('.DL\e)  %CKRfos%.A\r{ 9&)%-Sn} g(3uVZ>!,Ng-( 1 ITg) 9 Z#{(]   ">%P v -| HXG[3uV_NZR`4D On}H EFKf o|T%-*S\~ $;?3{)'2!Z |,%*9!Uw'+ $!( Jk'   2;.j?*#&2Y#p&'!"$Di%!$ +)B(l&% &#"J%m("%=] u<)7R$j /?"X { *4=r%&# 3/M }   A !!,C p{      4Na8.(5^v  7E do#.2)R-|13- ,C Sp         3 S = & ,; Ah < F <. =k  E ` d 3(\rDA_- ( 0 @K*i/4_y'AN)M@w/&,+(X05* ,8M$*'7PS(j    -/DW%k&8 E!&gFL1"T]e w -+' "5(X"   ;KRZ ak(t +/Md k y#  < )8Q `n0 F ) 4AH.O ~ )  !> ]kr){- 998#r;0    t-=<s-Wkg@ xi)JBZInaef[*5+DCh`> )R*En& ?%WQ)q# nU{W87;#3 N+NkpuIwu>f016n2ToDZf\ v12  tB z?VOUdBH3^r(cHW:ca  k:|p?}~|[>n"88Y}"^(+-z'{KhO"DEvO?oany&k|a$)[LjY9M~lOE5^i_${ZT@F Fs5YrHPm Ei20<H_pQr{WAY\%{C[}f^gU\NQz =7 \% "Ge7. -hJxEv-m!=-g;+Y2om'J'V*C(`~:@ ]%5PS3tG>Z/)_Z"Fpr(Oo~VWR16{ 70ba #BS3 b@G 'e44,A`-+A#a;!i]WO}),Vo$9%P.,Q<Xyo &uDH5Ib'AYvK%~q^ d/ =<w0ytSKK}mNLM gj]/t NX ih9#/Ld9lD##_~w Pka3ZXe9| '=chzqDhgT6 v<C]?>eR&( 2{B8U9 :}Hsgr!dF2PC$":mJ;VE1%yGur ziLsB'[_L+bp .T mD841,J*5:l /qC6.[Q%J<tH*k#$U^ M*/8$. 'R4yF\!Yf e 1csMG.V6=X]qZF7xSu sR7hEe*dv`q$3>0G.,&w(J b!40RbA?+7,VIKjb/-xl9Ps`;uxj|;"UMAyz3wN S&@d56XL\wviQPKr8|ockd@=clpx>z"O!wG)f!,lj  q;LA6@tf:y}gI(~S(*lN.cM$T!,<mpK4&RBQ+II X_XSn\u]]F`j0Tx_[^1jUC|?)&`T4 2M Please send this report to the program maintainer, thank you! Thank you and we're sorry for the inconvenience! (copy %d of %d) (error %ld: %s) (in module "%s") - Preview bold italic light#10 Envelope, 4 1/8 x 9 1/2 in#11 Envelope, 4 1/2 x 10 3/8 in#12 Envelope, 4 3/4 x 11 in#14 Envelope, 5 x 11 1/2 in#9 Envelope, 3 7/8 x 8 7/8 in%d of %lu%i of %i%ld byte%ld bytes%lu of %lu%s (or %s)%s Error%s Information%s Preferences%s Warning%s did not fit the tar header for entry '%s'%s files (%s)|%s&About&Actual Size&After a paragraph:&Alignment&Apply&Apply Style&Arrange Icons&Ascending&Back&Based on:&Before a paragraph:&Bg colour:&Bold&Bottom&Bottom:&Box&Bullet style:&CD-Rom&Cancel&Cascade&Cell&Character code:&Clear&Close&Color&Colour:&Convert&Copy&Copy URL&Customize...&Debug report preview:&Delete&Delete Style...&Descending&Details&Down&Edit&Edit Style...&Execute&File&Find&Finish&First&Floating mode:&Floppy&Font&Font family:&Font for Level...&Font:&Forward&From:&Harddisk&Height:&Help&Hide details&Home&Indentation (tenths of a mm)&Indeterminate&Index&Info&Italic&Jump to&Justified&Last&Left&Left:&List level:&Log&Move&Move the object to:&Network&New&Next&Next >&Next Paragraph&Next Tip&Next style:&No&Notes:&Number:&OK&Open...&Outline level:&Page Break&Paste&Picture&Point size:&Position (tenths of a mm):&Position mode:&Preferences&Previous&Previous Paragraph&Print...&Properties&Quit&Redo&Redo &Rename Style...&Replace&Restart numbering&Restore&Right&Right:&Save&Save as&See details&Show tips at startup&Size&Size:&Skip&Spacing (tenths of a mm)&Spell Check&Stop&Strikethrough&Style:&Styles:&Subset:&Symbol:&Table&Top&Top:&Underline&Underlining:&Undo&Undo &Unindent&Up&Vertical alignment:&View...&Weight:&Width:&Window&Yes'%s' has extra '..', ignored.'%s' is invalid'%s' is not a correct numeric value for option '%s'.'%s' is not a valid message catalog.'%s' is probably a binary buffer.'%s' should be numeric.'%s' should only contain ASCII characters.'%s' should only contain alphabetic characters.'%s' should only contain alphabetic or numeric characters.'%s' should only contain digits.(*)(Help)(None)(Normal text)(bookmarks)(none)**)+, 64-bit edition-...1.11.21.31.41.51.61.71.81.910 x 11 in10 x 14 in11 x 17 in12 x 11 in15 x 11 in26 3/4 Envelope, 3 5/8 x 6 1/2 in9 x 11 in: file does not exist!: unknown charset: unknown encoding< &BackBold italic face.
    bold italic underlined
    Bold face. Italic face. >A debug report has been generated in the directory A debug report has been generated. It can be found inA non empty collection must consist of 'element' nodesA standard bullet name.A0 sheet, 841 x 1189 mmA1 sheet, 594 x 841 mmA2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Transverse 322 x 445 mmA3 Rotated 420 x 297 mmA3 Transverse 297 x 420 mmA3 sheet, 297 x 420 mmA4 Extra 9.27 x 12.69 inA4 Plus 210 x 330 mmA4 Rotated 297 x 210 mmA4 Transverse 210 x 297 mmA4 sheet, 210 x 297 mmA4 small sheet, 210 x 297 mmA5 Extra 174 x 235 mmA5 Rotated 210 x 148 mmA5 Transverse 148 x 210 mmA5 sheet, 148 x 210 mmA6 105 x 148 mmA6 Rotated 148 x 105 mmABCDEFGabcdefg12345ADDASCIIAboutAbout %sAbsoluteActual SizeAddAdd ColumnAdd RowAdd current page to bookmarksAdd to custom coloursAddToPropertyCollection called on a generic accessorAddToPropertyCollection called w/o valid adderAdding book %sAdding flavor TEXT failedAdding flavor utxt failedAdvancedAfter a paragraph:Align LeftAlign RightAlignmentAllAll files (%s)|%sAll files (*)|*All files (*.*)|*.*All stylesAlphabetic ModeAlready Registered Object passed to SetObjectClassInfoAlready dialling ISP.Alt+And includes the following files: Animation file is not of type %ld.Append log to file '%s' (choosing [No] will overwrite it)?ApplicationApplyArabicArabic (ISO-8859-6)Argument %u not found.ArtistsAscendingAttributesAvailable fonts.B4 (ISO) 250 x 353 mmB4 (JIS) Rotated 364 x 257 mmB4 Envelope, 250 x 353 mmB4 sheet, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Rotated 257 x 182 mmB5 (JIS) Transverse 182 x 257 mmB5 Envelope, 176 x 250 mmB5 sheet, 182 x 257 millimeterB6 (JIS) 128 x 182 mmB6 (JIS) Rotated 182 x 128 mmB6 Envelope, 176 x 125 mmBACKBMP: Couldn't allocate memory.BMP: Couldn't save invalid image.BMP: Couldn't write RGB color map.BMP: Couldn't write data.BMP: Couldn't write the file (Bitmap) header.BMP: Couldn't write the file (BitmapInfo) header.BMP: wxImage doesn't have own wxPalette.BackBackgroundBackground &colour:Background colourBaltic (ISO-8859-13)Baltic (old) (ISO-8859-4)Before a paragraph:BitmapBitmap renderer cannot render value; value type: BoldBorderBordersBottomBottom margin (mm):Box PropertiesBox stylesBrowseBullet &Alignment:Bullet styleBulletsC sheet, 17 x 22 inC&learC&olour:C3 Envelope, 324 x 458 mmC4 Envelope, 229 x 324 mmC5 Envelope, 162 x 229 mmC6 Envelope, 114 x 162 mmC65 Envelope, 114 x 229 mmCANCELCAPITALCD-RomCHM handler currently supports only local files!CLEARCOMMANDCa&pitalsCan't &Undo Can't automatically determine the image format for non-seekable input.Can't close registry key '%s'Can't copy values of unsupported type %d.Can't create registry key '%s'Can't create threadCan't create window of class %sCan't delete key '%s'Can't delete the INI file '%s'Can't delete value '%s' from key '%s'Can't enumerate subkeys of key '%s'Can't enumerate values of key '%s'Can't export value of unsupported type %d.Can't find current position in file '%s'Can't get info about registry key '%s'Can't initialize zlib deflate stream.Can't initialize zlib inflate stream.Can't monitor non-existent directory "%s" for changes.Can't open registry key '%s'Can't read from inflate stream: %sCan't read inflate stream: unexpected EOF in underlying stream.Can't read value of '%s'Can't read value of key '%s'Can't save image to file '%s': unknown extension.Can't save log contents to file.Can't set thread priorityCan't set value of '%s'Can't write to child process's stdinCan't write to deflate stream: %sCancelCannot create mutex.Cannot create new column's ID. Probably max. number of columns reached.Cannot enumerate files '%s'Cannot enumerate files in directory '%s'Cannot find active dialup connection: %sCannot find the location of address book fileCannot get an active instance of "%s"Cannot get priority range for scheduling policy %d.Cannot get the hostnameCannot get the official hostnameCannot hang up - no active dialup connection.Cannot initialize OLECannot initialize socketsCannot load icon from '%s'.Cannot load resources from '%s'.Cannot load resources from file '%s'.Cannot open HTML document: %sCannot open HTML help book: %sCannot open contents file: %sCannot open file for PostScript printing!Cannot open index file: %sCannot open resources file '%s'.Cannot print empty page.Cannot read typename from '%s'!Cannot resume thread %luCannot resume thread %lxCannot retrieve thread scheduling policy.Cannot set locale to language "%s".Cannot start thread: error writing TLS.Cannot suspend thread %luCannot suspend thread %lxCannot wait for thread terminationCase sensitiveCategorized ModeCell PropertiesCeltic (ISO-8859-14)Cen&tredCenteredCentral European (ISO-8859-2)CentreCentre text.CentredCh&oose...Change List StyleChange Object StyleChange PropertiesChange StyleChanges won't be saved to avoid overwriting the existing file "%s"Character stylesCheck to add a period after the bullet.Check to add a right parenthesis.Check to enclose the bullet in parentheses.Check to make the font bold.Check to make the font italic.Check to make the font underlined.Check to restart numbering.Check to show a line through the text.Check to show the text in capitals.Check to show the text in small capitals.Check to show the text in subscript.Check to show the text in superscript.Choose ISP to dialChoose a directory:Choose a fileChoose colourChoose fontCircular dependency involving module "%s" detected.Cl&oseClass not registered.ClearClear the log contentsClick to apply the selected style.Click to browse for a symbol.Click to cancel changes to the font.Click to cancel the font selection.Click to change the font colour.Click to change the text background colour.Click to change the text colour.Click to choose the font for this level.Click to close this window.Click to confirm changes to the font.Click to confirm the font selection.Click to create a new box style.Click to create a new character style.Click to create a new list style.Click to create a new paragraph style.Click to create a new tab position.Click to delete all tab positions.Click to delete the selected style.Click to delete the selected tab position.Click to edit the selected style.Click to rename the selected style.CloseClose AllClose current documentClose this windowColorColourColour selection dialog failed with error %0lx.Colour:Column could not be added.Column description could not be initialized.Column index not found.Column width could not be determinedColumn width could not be set.Command line argument %d couldn't be converted to Unicode and will be ignored.Common dialog failed with error code %0lx.Compositing not supported by this system, please enable it in your Window Manager.Compressed HTML Help file (*.chm)|*.chm|ComputerConfig entry name cannot start with '%c'.ConfirmConfirm registry updateConnecting...ContentsConversion to charset '%s' doesn't work.ConvertCopied to clipboard:"%s"Copies:CopyCopy selectionCould not create temporary file '%s'Could not determine column index.Could not determine column's positionCould not determine number of columns.Could not determine number of itemsCould not extract %s into %s: %sCould not find tab for idCould not get header description.Could not get items.Could not get property flags.Could not get selected items.Could not locate file '%s'.Could not remove column.Could not retrieve number of itemsCould not set alignment.Could not set column width.Could not set current working directoryCould not set header description.Could not set icon.Could not set maximum width.Could not set minimum width.Could not set property flags.Could not start document preview.Could not start printing.Could not transfer data to windowCouldn't acquire a mutex lockCouldn't add an image to the image list.Couldn't create a timerCouldn't create the overlay windowCouldn't enumerate translationsCouldn't find symbol '%s' in a dynamic libraryCouldn't get hatch style from wxBrush.Couldn't get the current thread pointerCouldn't init the context on the overlay windowCouldn't initialize GIF hash table.Couldn't load a PNG image - file is corrupted or not enough memory.Couldn't load sound data from '%s'.Couldn't obtain folder nameCouldn't open audio: %sCouldn't register clipboard format '%s'.Couldn't release a mutexCouldn't retrieve information about list control item %d.Couldn't save PNG image.Couldn't terminate threadCreate Parameter %s not found in declared RTTI ParametersCreate directoryCreate new directoryCtrl+Cu&tCurrent directory:Custom sizeCustomize ColumnsCutCut selectionCyrillic (ISO-8859-5)D sheet, 22 x 34 inDDE poke request failedDECIMALDELDELETEDIB Header: Encoding doesn't match bitdepth.DIB Header: Image height > 32767 pixels for file.DIB Header: Image width > 32767 pixels for file.DIB Header: Unknown bitdepth in file.DIB Header: Unknown encoding in file.DIVIDEDL Envelope, 110 x 220 mmDOWNDashedData object has invalid data formatDate renderer cannot render value; value type: Debug report "%s"Debug report couldn't be created.Debug report generation has failed.DecorativeDefault encodingDefault fontDefault printerDeleteDelete A&llDelete ColumnDelete RowDelete StyleDelete TextDelete itemDelete selectionDelete style %s?Deleted stale lock file '%s'.Dependency "%s" of module "%s" doesn't exist.DescendingDesktopDeveloped by DevelopersDial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it.Did you know...DirectFB error %d occurred.DirectoriesDirectory '%s' couldn't be createdDirectory '%s' couldn't be deletedDirectory does not existDirectory doesn't exist.Discard changes and reload the last saved version?Display all index items that contain given substring. Search is case insensitive.Display options dialogDisplays help as you browse the books on the left.Do you want to overwrite the command used to %s files with extension "%s" ? Current value is %s, New value is %s %1Do you want to save changes to %s?Document:Documentation by Documentation writersDon't SaveDoneDone.DottedDoubleDouble Japanese Postcard Rotated 148 x 200 mmDoubly used id : %dDownDragE sheet, 34 x 44 inENDENTEREOF while reading from inotify descriptorESCESCAPEEXECUTEEditEdit itemElapsed time:Enable the height value.Enable the maximum width value.Enable the minimum height value.Enable the minimum width value.Enable the width value.Enable vertical alignment.Enables a background colour.Enter a box style nameEnter a character style nameEnter a list style nameEnter a new style nameEnter a paragraph style nameEnter command to open file "%s":Entries foundEnvelope Invite 220 x 220 mmEnvironment variables expansion failed: missing '%c' at position %u in '%s'.ErrorError closing epoll descriptorError closing kqueue instanceError creating directoryError in reading image DIB.Error in resource: %sError reading config options.Error saving user configuration data.Error while printing: Error: Esperanto (ISO-8859-3)Estimated time:Event queue overflowedExecutable files (*.exe)|*.exe|ExecuteExecution of command '%s' failedExecution of command '%s' failed with error: %ulExecutive, 7 1/4 x 10 1/2 inExporting registry key: file "%s" already exists and won't be overwritten.Extended Unix Codepage for Japanese (EUC-JP)Extraction of '%s' into '%s' failed.FFace NameFailed to access lock file.Failed to add descriptor %d to epoll descriptor %dFailed to allocate %luKb of memory for bitmap data.Failed to allocate colour for OpenGLFailed to change video modeFailed to check format of image file "%s".Failed to clean up debug report directory "%s"Failed to close file handleFailed to close lock file '%s'Failed to close the clipboard.Failed to close the display "%s"Failed to connect: missing username/password.Failed to connect: no ISP to dial.Failed to convert file "%s" to Unicode.Failed to copy dialog contents to the clipboard.Failed to copy registry value '%s'Failed to copy the contents of registry key '%s' to '%s'.Failed to copy the file '%s' to '%s'Failed to copy the registry subkey '%s' to '%s'.Failed to create DDE stringFailed to create MDI parent frame.Failed to create a temporary file nameFailed to create an anonymous pipeFailed to create an instance of "%s"Failed to create connection to server '%s' on topic '%s'Failed to create cursor.Failed to create directory "%s"Failed to create directory '%s' (Do you have the required permissions?)Failed to create epoll descriptorFailed to create registry entry for '%s' files.Failed to create the standard find/replace dialog (error code %d)Failed to create wake up pipe used by event loop.Failed to display HTML document in %s encodingFailed to empty the clipboard.Failed to enumerate video modesFailed to establish an advise loop with DDE serverFailed to establish dialup connection: %sFailed to execute '%s' Failed to execute curl, please install it in PATH.Failed to find CLSID of "%s"Failed to find match for regular expression: %sFailed to get ISP names: %sFailed to get OLE automation interface for "%s"Failed to get data from the clipboardFailed to get the local system timeFailed to get the working directoryFailed to initialize GUI: no built-in themes found.Failed to initialize MS HTML Help.Failed to initialize OpenGLFailed to initiate dialup connection: %sFailed to insert text in the control.Failed to inspect the lock file '%s'Failed to install signal handlerFailed to join a thread, potential memory leak detected - please restart the programFailed to kill process %dFailed to load bitmap "%s" from resources.Failed to load icon "%s" from resources.Failed to load image %%d from file '%s'.Failed to load image %d from stream.Failed to load image from file "%s".Failed to load metafile from file "%s".Failed to load mpr.dll.Failed to load resource "%s".Failed to load shared library '%s'Failed to lock resource "%s".Failed to lock the lock file '%s'Failed to modify descriptor %d in epoll descriptor %dFailed to modify file times for '%s'Failed to monitor I/O channelsFailed to open '%s' for readingFailed to open '%s' for writingFailed to open CHM archive '%s'.Failed to open URL "%s" in default browser.Failed to open directory "%s" for monitoring.Failed to open display "%s".Failed to open temporary file.Failed to open the clipboard.Failed to parse Plural-Forms: '%s'Failed to prepare playing "%s".Failed to put data on the clipboardFailed to read PID from lock file.Failed to read config options.Failed to read document from the file "%s".Failed to read event from DirectFB pipeFailed to read from wake-up pipeFailed to redirect child process input/outputFailed to redirect the child process IOFailed to register DDE server '%s'Failed to remember the encoding for the charset '%s'.Failed to remove debug report file "%s"Failed to remove lock file '%s'Failed to remove stale lock file '%s'.Failed to rename registry value '%s' to '%s'.Failed to rename the file '%s' to '%s' because the destination file already exists.Failed to rename the registry key '%s' to '%s'.Failed to retrieve data from the clipboard.Failed to retrieve file times for '%s'Failed to retrieve text of RAS error messageFailed to retrieve the supported clipboard formatsFailed to save document to the file "%s".Failed to save the bitmap image to file "%s".Failed to send DDE advise notificationFailed to set FTP transfer mode to %s.Failed to set clipboard data.Failed to set permissions on lock file '%s'Failed to set process priorityFailed to set temporary file permissionsFailed to set text in the text control.Failed to set thread concurrency level to %luFailed to set thread priority %d.Failed to set up non-blocking pipe, the program might hang.Failed to store image '%s' to memory VFS!Failed to switch DirectFB pipe to non-blocking modeFailed to switch wake up pipe to non-blocking modeFailed to terminate a thread.Failed to terminate the advise loop with DDE serverFailed to terminate the dialup connection: %sFailed to touch the file '%s'Failed to unlock lock file '%s'Failed to unregister DDE server '%s'Failed to unregister descriptor %d from epoll descriptor %dFailed to update user configuration file.Failed to upload the debug report (error code %d).Failed to write to lock file '%s'FalseFamilyFileFile "%s" could not be opened for reading.File "%s" could not be opened for writing.File '%s' already exists, do you really want to overwrite it?File '%s' already exists. Do you want to replace it?File '%s' couldn't be removedFile '%s' couldn't be renamed '%s'File couldn't be loaded.File dialog failed with error code %0lx.File errorFile name exists already.FilesFiles (%s)FilterFindFirstFirst pageFixedFixed font:Fixed size face.
    bold italic FloatingFloppyFolio, 8 1/2 x 13 inFontFont &weight:Font size:Font st&yle:Font:Fonts index file %s disappeared while loading fonts.Fork failedForwardForward hrefs are not supportedFound %i matchesFrom:GIF: Invalid gif index.GIF: data stream seems to be truncated.GIF: error in GIF image format.GIF: not enough memory.GIF: unknown error!!!GTK+ installed on this machine is too old to support screen compositing, please install GTK+ 2.12 or later.GTK+ themeGeneralGeneric PostScriptGerman Legal Fanfold, 8 1/2 x 13 inGerman Std Fanfold, 8 1/2 x 12 inGetProperty called w/o valid getterGetPropertyCollection called on a generic accessorGetPropertyCollection called w/o valid collection getterGo backGo forwardGo one level up in document hierarchyGo to home directoryGo to parent directoryGraphics art by Greek (ISO-8859-7)GrooveGzip not supported by this version of zlibHELPHOMEHTML Help Project (*.hhp)|*.hhp|HTML anchor %s does not exist.HTML files (*.html;*.htm)|*.html;*.htm|HarddiskHebrew (ISO-8859-8)HelpHelp Browser OptionsHelp IndexHelp PrintingHelp TopicsHelp books (*.htb)|*.htb|Help books (*.zip)|*.zip|Help directory "%s" not found.Help file "%s" not found.Help: %sHide %sHide OthersHide this notification message.HomeHome directoryHow the object will float relative to the text.ICO: Error in reading mask DIB.ICO: Error writing the image file!ICO: Image too tall for an icon.ICO: Image too wide for an icon.ICO: Invalid icon index.IFF: data stream seems to be truncated.IFF: error in IFF image format.IFF: not enough memory.IFF: unknown error!!!INSINSERTISO-2022-JPIcon & text renderer cannot render value; value type: If possible, try changing the layout parameters to make the printout more narrow.If you have any additional information pertaining to this bug report, please enter it here and it will be joined to it:If you wish to suppress this debug report completely, please choose the "Cancel" button, but be warned that it may hinder improving the program, so if at all possible please do continue with the report generation. Ignoring value "%s" of the key "%s".Illegal Object Class (Non-wxEvtHandler) as Event SourceIllegal Parameter Count for ConstructObject MethodIllegal Parameter Count for Create MethodIllegal directory name.Illegal file specification.Image and mask have different sizes.Image file is not of type %d.Image is not of type %s.Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dllImpossible to get child process inputImpossible to get permissions for file '%s'Impossible to overwrite the file '%s'Impossible to set permissions for the file '%s'Incorrect GIF frame size (%u, %d) for the frame #%uIncorrect number of arguments.IndentIndents && SpacingIndexIndian (ISO-8859-12)InfoInitialization failed in post init, aborting.InsertInsert FieldInsert ImageInsert ObjectInsert TextInserts a page break before the paragraph.InsetInvalid GTK+ command line option, use "%s --help"Invalid TIFF image index.Invalid data view itemInvalid display mode specification '%s'.Invalid geometry specification '%s'Invalid inotify event for "%s"Invalid lock file '%s'.Invalid message catalog.Invalid or Null Object ID passed to GetObjectClassInfoInvalid or Null Object ID passed to HasObjectClassInfoInvalid regular expression '%s': %sInvalid value %ld for a boolean key "%s" in config file.ItalicItaly Envelope, 110 x 230 mmJPEG: Couldn't load - file is probably corrupted.JPEG: Couldn't save image.Japanese Double Postcard 200 x 148 mmJapanese Envelope Chou #3Japanese Envelope Chou #3 RotatedJapanese Envelope Chou #4Japanese Envelope Chou #4 RotatedJapanese Envelope Kaku #2Japanese Envelope Kaku #2 RotatedJapanese Envelope Kaku #3Japanese Envelope Kaku #3 RotatedJapanese Envelope You #4Japanese Envelope You #4 RotatedJapanese Postcard 100 x 148 mmJapanese Postcard Rotated 148 x 100 mmJump toJustifiedJustify text left and right.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UPL&ine spacing:LEFTLandscapeLastLast pageLast repeated message ("%s", %lu time) wasn't outputLast repeated message ("%s", %lu times) wasn't outputLedger, 17 x 11 inLeftLeft (&first line):Left margin (mm):Left-align text.Legal Extra 9 1/2 x 15 inLegal, 8 1/2 x 14 inLetter Extra 9 1/2 x 12 inLetter Extra Transverse 9.275 x 12 inLetter Plus 8 1/2 x 12.69 inLetter Rotated 11 x 8 1/2 inLetter Small, 8 1/2 x 11 inLetter Transverse 8 1/2 x 11 inLetter, 8 1/2 x 11 inLicenseLightLine %lu of map file "%s" has invalid syntax, skipped.Line spacing:Link contained '//', converted to absolute link.List StyleList stylesLists font sizes in points.Lists the available fonts.Load %s fileLoading : Lock file '%s' has incorrect owner.Lock file '%s' has incorrect permissions.Log saved to the file '%s'.Lower case lettersLower case roman numeralsMDI childMENUMS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it.Ma&ximizeMacArabicMacArmenianMacBengaliMacBurmeseMacCelticMacCentralEurRomanMacChineseSimpMacChineseTradMacCroatianMacCyrillicMacDevanagariMacDingbatsMacEthiopicMacExtArabicMacGaelicMacGeorgianMacGreekMacGujaratiMacGurmukhiMacHebrewMacIcelandicMacJapaneseMacKannadaMacKeyboardGlyphsMacKhmerMacKoreanMacLaotianMacMalayalamMacMongolianMacOriyaMacRomanMacRomanianMacSinhaleseMacSymbolMacTamilMacTeluguMacThaiMacTibetanMacTurkishMacVietnameseMake a selection:MarginsMatch caseMax height:Max width:Media playback error: %sMemory VFS already contains file '%s'!MenuMessageMetal themeMethod or property not found.Mi&nimizeMin height:Min width:Missing a required parameter.ModernModifiedModule "%s" initialization failedMonarch Envelope, 3 7/8 x 7 1/2 inMonitoring individual files for changes is not supported currently.Move downMove upMoves the object to the next paragraph.Moves the object to the previous paragraph.Multiple Cell PropertiesNUM_LOCKNameNetworkNewNew &Box Style...New &Character Style...New &List Style...New &Paragraph Style...New StyleNew directoryNew itemNewNameNextNext pageNoNo animation handler for type %ld defined.No bitmap handler for type %d defined.No column existing.No column for the specified column existing.No column for the specified column position existing.No default application configured for HTML files.No entries found.No font for displaying text in encoding '%s' found, but an alternative encoding '%s' is available. Do you want to use this encoding (otherwise you will have to choose another one)?No font for displaying text in encoding '%s' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly)?No handler found for animation type.No handler found for image type.No image handler for type %d defined.No image handler for type %s defined.No matching page found yetNo renderer or invalid renderer type specified for custom data column.No renderer specified for column.No soundNo unused colour in image being masked.No unused colour in image.No valid mappings found in the file "%s".NoneNordic (ISO-8859-10)NormalNormal face
    and underlined. Normal font:Not %sNot availableNot underlinedNote, 8 1/2 x 11 inNoticeNumber of columns could not be determined.Numbered outlineOKOLE Automation error in %s: %sObject PropertiesObject implementation does not support named arguments.Objects must have an id attributeOpen FileOpen HTML documentOpen file "%s"Open...OpenGL function "%s" failed: %s (error %d)Operation not permitted.Option '%s' can't be negatedOption '%s' requires a value.Option '%s': '%s' cannot be converted to a date.OptionsOrientationOut of window IDs. Recommend shutting down application.OutlineOutsetOverflow while coercing argument values.PAGEDOWNPAGEUPPAUSEPCX: couldn't allocate memoryPCX: image format unsupportedPCX: invalid imagePCX: this is not a PCX file.PCX: unknown error !!!PCX: version number too lowPGDNPGUPPNM: Couldn't allocate memory.PNM: File format is not recognized.PNM: File seems truncated.PRC 16K 146 x 215 mmPRC 16K RotatedPRC 32K 97 x 151 mmPRC 32K RotatedPRC 32K(Big) 97 x 151 mmPRC 32K(Big) RotatedPRC Envelope #1 102 x 165 mmPRC Envelope #1 Rotated 165 x 102 mmPRC Envelope #10 324 x 458 mmPRC Envelope #10 Rotated 458 x 324 mmPRC Envelope #2 102 x 176 mmPRC Envelope #2 Rotated 176 x 102 mmPRC Envelope #3 125 x 176 mmPRC Envelope #3 Rotated 176 x 125 mmPRC Envelope #4 110 x 208 mmPRC Envelope #4 Rotated 208 x 110 mmPRC Envelope #5 110 x 220 mmPRC Envelope #5 Rotated 220 x 110 mmPRC Envelope #6 120 x 230 mmPRC Envelope #6 Rotated 230 x 120 mmPRC Envelope #7 160 x 230 mmPRC Envelope #7 Rotated 230 x 160 mmPRC Envelope #8 120 x 309 mmPRC Envelope #8 Rotated 309 x 120 mmPRC Envelope #9 229 x 324 mmPRC Envelope #9 Rotated 324 x 229 mmPRINTPaddingPage %dPage %d of %dPage SetupPage setupPagesPaper sizeParagraph stylesPassing a already registered object to SetObjectPassing an unknown object to GetObjectPastePaste selectionPeri&odPermissionsPicture PropertiesPipe creation failedPlease choose a valid font.Please choose an existing file.Please choose the page to display:Please choose which ISP do you want to connect toPlease install a newer version of comctl32.dll (at least version 4.70 is required but you have %d.%02d) or this program won't operate correctly.Please select the columns to show and define their order:Please wait while printing...Point SizePointer to data view control not set correctly.Pointer to model not set correctly.PortraitPositionPostScript filePreferencesPreferences...PreparingPreview:Previous pagePrintPrint PreviewPrint Preview FailurePrint RangePrint SetupPrint in colourPrint previe&w...Print preview creation failed.Print preview...Print spoolingPrint this pagePrint to FilePrint...PrinterPrinter command:Printer optionsPrinter options:Printer...Printer:PrintingPrinting Printing ErrorPrinting page %d of %dPrinting page %d...Printing...PrintoutProcessing debug report has failed, leaving the files in "%s" directory.Progress renderer cannot render value type; value type: Progress:PropertiesPropertyProperty ErrorQuarto, 215 x 275 mmQuestionQuitQuit %sQuit this programRETURNRIGHTRawCtrl+Read error on file '%s'ReadyRedoRedo last actionRefreshRegistry key '%s' already exists.Registry key '%s' does not exist, cannot rename it.Registry key '%s' is needed for normal system operation, deleting it will leave your system in unusable state: operation aborted.Registry value '%s' already exists.RegularRelativeRelevant entries:Remaining time:RemoveRemove BulletRemove current page from bookmarksRenderer "%s" has incompatible version %d.%d and couldn't be loaded.Rendering failed.Renumber ListRep&laceReplaceReplace &allReplace selectionReplace with:Required information entry is empty.Resource '%s' is not a valid message catalog.Revert to SavedRidgeRightRight margin (mm):Right-align text.RomanS&tandard bullet name:SCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACTSaveSave %s fileSave &As...Save AsSave asSave current documentSave current document with a different filenameSave log contents to fileScriptSearchSearch contents of help book(s) for all occurrences of the text you typed aboveSearch directionSearch for:Search in all booksSearching...SectionsSeek error on file '%s'Seek error on file '%s' (large files not supported by stdio)Select &AllSelect AllSelect a document templateSelect a document viewSelect regular or bold.Select regular or italic style.Select underlining or no underlining.SelectionSelects the list level to edit.Separator expected after the option '%s'.Set Cell StyleSetProperty called w/o valid setterSetting directory access times is not supported under this OS versionSetup...Several active dialup connections found, choosing one randomly.Shift+Show &hidden directoriesShow &hidden filesShow AllShow about dialogShow allShow all items in indexShow hidden directoriesShow/hide navigation panelShows a Unicode subset.Shows a preview of the bullet settings.Shows a preview of the font settings.Shows a preview of the font.Shows a preview of the paragraph settings.Shows the font preview.Simple monochrome themeSingleSizeSize:SkipSlantSmall C&apitalsSolidSorry, could not open this file.Sorry, not enough memory to create a preview.Sorry, that name is taken. Please choose another.Sorry, the format for this file is unknown.Sound data are in unsupported format.Sound file '%s' is in unsupported format.SpacingSpell CheckStandardStatement, 5 1/2 x 8 1/2 inStaticStatus:StopStrikethroughString To Colour : Incorrect colour specification : %sStyleStyle OrganiserStyle:Subscrip&tSupe&rscriptSuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSymbolSymbol &font:SymbolsTABTIFF: Couldn't allocate memory.TIFF: Error loading image.TIFF: Error reading image.TIFF: Error saving image.TIFF: Error writing image.TIFF: Image size is abnormally big.Table PropertiesTabloid Extra 11.69 x 18 inTabloid, 11 x 17 inTabsTeletypeTemplatesText renderer cannot render value; value type: Thai (ISO-8859-11)The FTP server doesn't support passive mode.The FTP server doesn't support the PORT command.The available bullet styles.The available styles.The background colour.The bottom margin size.The bottom padding size.The bottom position.The bullet character.The character code.The charset '%s' is unknown. You may select another charset to replace it with or choose [Cancel] if it cannot be replacedThe clipboard format '%d' doesn't exist.The default style for the next paragraph.The directory '%s' does not exist Create it now?The document "%s" doesn't fit on the page horizontally and will be truncated if printed. Would you like to proceed with printing it nevertheless?The file '%s' doesn't exist and couldn't be opened. It has been removed from the most recently used files list.The first line indent.The following standard GTK+ options are also supported: The font colour.The font family.The font from which to take the symbol.The font point size.The font size in points.The font size units, points or pixels.The font style.The font weight.The format of file '%s' couldn't be determined.The left indent.The left margin size.The left padding size.The left position.The line spacing.The list item number.The locale ID is unknown.The object height.The object maximum height.The object maximum width.The object minimum height.The object minimum width.The object width.The outline level.The previous message repeated %lu time.The previous message repeated %lu times.The previous message repeated once.The print dialog returned an error.The range to show.The report contains the files listed below. If any of these files contain private information, please uncheck them and they will be removed from the report. The required parameter '%s' was not specified.The right indent.The right margin size.The right padding size.The right position.The spacing after the paragraph.The spacing before the paragraph.The style name.The style on which this style is based.The style preview.The system cannot find the file specified.The tab position.The tab positions.The text couldn't be saved.The top margin size.The top padding size.The top position.The value for the option '%s' must be specified.The version of remote access service (RAS) installed on this machine is too old, please upgrade (the following required function is missing: %s).The wxGtkPrinterDC cannot be used.There is no column or renderer for the specified column index.There was a problem during page setup: you may need to set a default printer.This document doesn't fit on the page horizontally and will be truncated when it is printed.This is not a %s.This platform does not support background transparency.This program was compiled with a too old version of GTK+, please rebuild with GTK+ 2.12 or newer.This system doesn't support date controls, please upgrade your version of comctl32.dllThread module initialization failed: cannot store value in thread local storageThread module initialization failed: failed to create thread keyThread module initialization failed: impossible to allocate index in thread local storageThread priority setting is ignored.Tile &HorizontallyTile &VerticallyTimeout while waiting for FTP server to connect, try passive mode.Timer creation failed.Tip of the DayTips not available, sorry!To:Toggle renderer cannot render value; value type: Too many EndStyle calls!Too many colours in PNG, the image may be slightly blurred.TopTop margin (mm):Translations by TranslatorsTrueTrying to remove file '%s' from memory VFS, but it is not loaded!Turkish (ISO-8859-9)TypeType a font name.Type a size in points.Type mismatch in argument %u.Type must have enum - long conversionType operation "%s" failed: Property labeled "%s" is of type "%s", NOT "%s".UPUS Std Fanfold, 14 7/8 x 11 inUS-ASCIIUnable to add inotify watchUnable to add kqueue watchUnable to associate handle with I/O completion portUnable to close I/O completion port handleUnable to close inotify instanceUnable to close path '%s'Unable to close the handle for '%s'Unable to create I/O completion portUnable to create IOCP worker threadUnable to create inotify instanceUnable to create kqueue instanceUnable to dequeue completion packetUnable to get events from kqueueUnable to handle native drag&drop dataUnable to initialize GTK+, is DISPLAY set properly?Unable to initialize Hildon programUnable to open path '%s'Unable to open requested HTML document: %sUnable to play sound asynchronously.Unable to post completion statusUnable to read from inotify descriptorUnable to remove inotify watchUnable to remove kqueue watchUnable to set up watch for '%s'Unable to start IOCP worker threadUndeleteUnderlineUnderlinedUndoUndo last actionUnexpected characters following option '%s'.Unexpected event for "%s": no matching watch descriptor.Unexpected parameter '%s'Unexpectedly new I/O completion port was createdUngraceful worker thread terminationUnicodeUnicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)UnindentUnits for the bottom border width.Units for the bottom margin.Units for the bottom outline width.Units for the bottom padding.Units for the bottom position.Units for the left border width.Units for the left margin.Units for the left outline width.Units for the left padding.Units for the left position.Units for the maximum object height.Units for the maximum object width.Units for the minimum object height.Units for the minimum object width.Units for the object height.Units for the object width.Units for the right border width.Units for the right margin.Units for the right outline width.Units for the right padding.Units for the right position.Units for the top border width.Units for the top margin.Units for the top outline width.Units for the top padding.Units for the top position.UnknownUnknown DDE error %08xUnknown Object passed to GetObjectClassInfoUnknown PNG resolution unit %dUnknown Property %sUnknown TIFF resolution unit %d ignoredUnknown data formatUnknown dynamic library errorUnknown encoding (%d)Unknown error %08xUnknown exceptionUnknown image data format.Unknown long option '%s'Unknown name or named argument.Unknown option '%s'Unmatched '{' in an entry for mime type %s.Unnamed commandUnspecifiedUnsupported clipboard format.Unsupported theme '%s'.UpUpper case lettersUpper case roman numeralsUsage: %sUse the current alignment setting.Valid pointer to native data view control does not existValidation conflictValueValue must be %s or higher.Value must be %s or less.Value must be between %s and %s.Version Vertical alignment.View files as a detailed viewView files as a list viewViewsWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHTWaiting for IO on epoll descriptor %d failedWarning: WeightWestern European (ISO-8859-1)Western European with Euro (ISO-8859-15)Whether the font is underlined.Whole wordWhole words onlyWin32 themeWin32s on Windows 3.1Windows 2000Windows 7Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arabic (CP 1256)Windows Baltic (CP 1257)Windows CE (%d.%d)Windows Central European (CP 1250)Windows Chinese Simplified (CP 936) or GB-2312Windows Chinese Traditional (CP 950) or Big-5Windows Cyrillic (CP 1251)Windows Greek (CP 1253)Windows Hebrew (CP 1255)Windows Japanese (CP 932) or Shift-JISWindows Johab (CP 1361)Windows Korean (CP 949)Windows MEWindows NT %lu.%luWindows Server 2003Windows Server 2008Windows Server 2008 R2Windows Thai (CP 874)Windows Turkish (CP 1254)Windows Vietnamese (CP 1258)Windows VistaWindows Western European (CP 1252)Windows XPWindows/DOS OEM (CP 437)Windows/DOS OEM Cyrillic (CP 866)Write error on file '%s'XML parsing error: '%s' at line %dXPM: Malformed pixel data!XPM: incorrect colour description in line %dXPM: incorrect header format!XPM: malformed colour definition '%s' at line %d!XPM: no colors left to use for mask!XPM: truncated image data at line %d!YesYou cannot Clear an overlay that is not initedYou cannot Init an overlay twiceYou cannot add a new directory to this section.You have entered invalid value. Press ESC to cancel editing.Zoom &InZoom &OutZoom InZoom OutZoom to &FitZoom to Fita DDEML application has created a prolonged race condition.a DDEML function was called without first calling the DdeInitialize function, or an invalid instance identifier was passed to a DDEML function.a client's attempt to establish a conversation has failed.a memory allocation failed.a parameter failed to be validated by the DDEML.a request for a synchronous advise transaction has timed out.a request for a synchronous data transaction has timed out.a request for a synchronous execute transaction has timed out.a request for a synchronous poke transaction has timed out.a request to end an advise transaction has timed out.a server-side transaction was attempted on a conversation that was terminated by the client, or the server terminated before completing a transaction.a transaction failed.altan application initialized as APPCLASS_MONITOR has attempted to perform a DDE transaction, or an application initialized as APPCMD_CLIENTONLY has attempted to perform server transactions.an internal call to the PostMessage function has failed. an internal error has occurred in the DDEML.an invalid transaction identifier was passed to a DDEML function. Once the application has returned from an XTYP_XACT_COMPLETE callback, the transaction identifier for that callback is no longer valid.assuming this is a multi-part zip concatenatedattempt to change immutable key '%s' ignored.bad arguments to library functionbad signaturebad zipfile offset to entrybinaryboldbuffer is too small for Windows directory.build %lucan't close file '%s'can't close file descriptor %dcan't commit changes to file '%s'can't create file '%s'can't delete user configuration file '%s'can't determine if the end of file is reached on descriptor %dcan't execute '%s'can't find central directory in zipcan't find length of file on file descriptor %dcan't find user's HOME, using current directory.can't flush file descriptor %dcan't get seek position on file descriptor %dcan't load any font, abortingcan't open file '%s'can't open global configuration file '%s'.can't open user configuration file '%s'.can't open user configuration file.can't re-initialize zlib deflate streamcan't re-initialize zlib inflate streamcan't read from file descriptor %dcan't remove file '%s'can't remove temporary file '%s'can't seek on file descriptor %dcan't write buffer '%s' to disk.can't write to file descriptor %dcan't write user configuration file.checksum errorchecksum failure reading tar header blockcmcompression errorconversion to 8-bit encoding failedctrldatedecompression errordefaultdoubledump of the process state (binary)eighteentheightheleventhentry '%s' appears more than once in group '%s'error in data formaterror opening '%s'error opening fileerror reading zip central directoryerror reading zip local headererror writing zip entry '%s': bad crc or lengthfailed to flush the file '%s'fifteenthfifthfile '%s', line %d: '%s' ignored after group header.file '%s', line %d: '=' expected.file '%s', line %d: key '%s' was first found at line %d.file '%s', line %d: value for immutable key '%s' ignored.file '%s': unexpected character %c at line %d.filesfirstfont sizefourteenthfourthgenerate verbose log messagesimageincomplete header block in tarincorrect event handler string, missing dotincorrect size given for tar entryinvalid data in extended tar headerinvalid message box return valueinvalid zip fileitaliclightlocale '%s' cannot be set.midnightnineteenthninthno DDE error.no errorno fonts found in %s, using builtin fontnonamenoonnormalnot implementednumobjects cannot have XML Text Nodesout of memorypercentprocess context descriptionptpxrawctrlread errorreading zip stream (entry %s): bad crcreading zip stream (entry %s): bad lengthreentrancy problem.secondseek errorseventeenthseventhshiftshow this help messagesixteenthsixthspecify display mode to use (e.g. 640x480-16)specify the theme to usestandard/circlestandard/circle-outlinestandard/diamondstandard/squarestandard/trianglestored file length not in Zip headerstrstrikethroughtar entry not opentenththe response to the transaction caused the DDE_FBUSY bit to be set.thirdthirteenthtodaytomorrowtrailing backslash ignored in '%s'translator-creditstwelfthtwentiethunderlinedunexpected " at position %d in '%s'.unexpected end of fileunknownunknown class %sunknown errorunknown error (error code %08x).unknown seek originunknown-%dunnamedunnamed%dunsupported Zip compression methodusing catalog '%s' from '%s'.write errorwxGetTimeOfDay failed.wxPrintout::GetPageInfo gives a null maxPage.wxWidget control pointer is not a data view pointerwxWidget's control not initialized.wxWidgets could not open display for '%s': exiting.wxWidgets could not open display. Exiting.xxxxyesterdayzlib error %d~Project-Id-Version: wxWidgets 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2013-10-01 19:04+0200 PO-Revision-Date: 2013-10-04 19:58+0200 Last-Translator: Kaya Zeren Language-Team: Turkish (Turkey) (http://www.transifex.com/projects/p/wxwidgets_unofficial/language/tr_TR/) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Language: tr_TR Plural-Forms: nplurals=1; plural=0; X-Generator: Poedit 1.5.7 Lütfen bu raporu program geliştiricisine gönderin, teşekkürler! Teşekkürler, yaşadığınız sorundan dolayı özür dileriz! (kopya %d / %d) (hata %ld: %s) ("%s" modülünde) - Önizleme koyu yatık açık#10 Zarf, 4 1/8 x 9 1/2 inç#11 Zarf, 4 1/2 x 10 3/8 inç#12 Zarf, 4 3/4 x 11 inç#14 Zarf, 5 x 11 1/2 inç#9 Zarf, 3 7/8 x 8 7/8 inç%d / %lu%i / %i%ld bayt%lu / %lu%s (ya da %s)%s Hata%s Bilgileri%s Ayarları%s Uyarı%s '%s' kaydının tar başlığına sığmadı%s dosya (%s)|%sH&akkında&Geçerli BoyutP&aragraftan sonra:Hiz&alamaUygul&ayınStili Uygul&ayınSi&mgeleri Düzenleyin&Artan&Geri&Kaynak:&Paragraftan önce:&Artalan rengi:&KoyuAl&tAl&t:&Kutu&Madde imi stili:&CD-Romİ&ptalArdarda &dizin&Hücre&Karakter kodu:T&emizleyin&Kapatın&Renk&Renk:&DönüştürünK&opyalayınİnternet Adresini K&opyalayınÖ&zelleştirin...&Hata ayıklama raporu ön izlemesi:&Silin&Stili silin...A&zalan&Ayrıntılar&AşağıDü&zenleyinStili Düz&enleyin...&Yürütün&DosyaB&ulun&Bittiİ&lk&Yüzer kip:&Esnek&Yazı tipi&Yazı tipi ailesi:&Düzeyin yazıtipi...&Yazı tipi:İ&leri&Kaynak:&Sabit disk&Yükseklik:&YardımAyrıntıları &gizleyin&Açılışİçe&rlek (1/10mm ölçeğinde)&BelirsizD&izin&Bilgiler&YatıkA&tlayın&Hizalanmış&SonSo&lSo&l:&Liste düzeyi:Gün&lük&Taşıyın&Nesneyi şuraya taşıyın:&AğYe&niSo&nrakiSo&nraki >So&nraki ParagrafSo&nraki İpucuSo&nraki stil:&Hayır&Notlar:&Sayı:&Tamam&Açın...Başlık &düzeyi:&Sayfa SonuYa&pıştırın&ResimYazı &boyutu:&Konum (1/10mm):&Konum kipi:&AyarlarÖ&ncekiÖnceki &Paragraf&Yazdırın...Ö&zelliklerÇı&kış&Yineleyin&YineleyinStili ¥iden adlandırın...&DeğiştirinNuma&ralandırmayı yeniden başlatınGe&ri yükleyin&Sağ&Sağ:Kay&dedin&Farklı kaydedin&Ayrıntılarİpuçları &başlangıçta görüntülensin&Boyut&Boyut:A&tlayın&Boşluk (1/10mm)&Yazım Denetimi&DurdurunÜ&stü çizili&Stil:&Stiller:A< küme:&Simge:&TabloÜs&tÜs&t:&Altı çizili&Altını çizme:&Geri Alın&Geri Alınİçerleği &geri alınY&ukarı&Dikey hizalama:&Görünüm...&Yoğunluk:&Genişlik:&Pencere&Evet'%s' içindeki fazladan '..' yoksayıldı.'%s' geçersiz'%s' '%s' seçeneği için doğru bir sayısal değer değil.'%s' geçerli bir ileti kataloğu değil.'%s' muhtemelen ikili ara bellek.'%s' sayısal olmalı.'%s' yalnız ASCII karakterler içermeli.'%s' yalnız alfabetik karakterler içermeli.'%s' yalnız alfabetik ya da sayısal karakterler içermeli.'%s' yalnız rakamlar içermeli.(*)(Yardım)(Hiçbiri)(Normal metin)(yer imleri)(hiçbiri)**)+, 64-bit sürümü-...1.11.21.31.41.51.61.71.81.910 x 11 inç10 x 14 inç11 x 17 inç12 x 11 inç15 x 11 inç26 3/4 Zarf, 3 5/8 x 6 1/2 inç9 x 11 inç: dosya bulunamadı!: bilinmeyen karakter kümesi: bilinmeyen kodlama< &Geri<İsveç>Koyu yatık şekil.
    koyu yatık altçizgili
    Koyu şekil. Yatık şekil. >Klasörde bir hata ayıklama raporu oluşturuldu Hata ayıklama raporu oluşturuldu. Şurada bulabilirsiniz:Boş olmayan bir yığın 'element' düğümlerinden oluşmalıdırStandart bir madde imi adı.A0 sayfa, 841 x 1189 mmA1 sayfa, 594 x 841 mmA2 420 x 594 mmA3 Ekstra 322 x 445 mmA3 Ekstra Enine 322 x 445 mmA3 Çevrilmiş 420 x 297 mmA3 Enine 297 x 420 mmA3 sayfa, 297 x 420 mmA4 Ekstra 9.27 x 12.69 inçA4 Artı 210 x 330 mmA4 Çevrilmiş 297 x 210 mmA4 Enine 210 x 297 mmA4 sayfa, 210 x 297 mmA4 küçük sayfa, 210 x 297 mmA5 Ekstra 174 x 235 mmA5 Çevrilmiş 210 x 148 mmA5 Enine 148 x 210 mmA5 sayfa, 148 x 210 mmA6 105 x 148 mmA6 Çevrilmiş 148 x 105 mmABCDEFGabcdefg12345ADDASCIIHakkında%s Hakkında MutlakGeçerli BoyutEkleyinSütun EkleyinSatır EkleyinGeçerli sayfayı yer imlerine ekleyinÖzel renklere ekleyinAddToPropertyCollection işlevi, genel bir erişici üzerinden çağrıldıAddToPropertyCollection işlevi, geçerli bir ekleyici olmadançağrıldı%s kitabı ekleniyorTEXT niteliği eklenemediutxt niteliği eklenemediGelişmişParagraftan sonra:Sola YaslansınSağa YaslansınHizalamaTümüTüm dosyalar (%s)|%sTüm dosyalar (*)|*Tüm dosyalar (*.*)|*.*Tüm stillerAlfabetik KipSetObjectClassInfo işlevi zaten kaydedilmiş bir nesne ile çağrıldıISP zaten aranıyor.Alt+Ve aşağıdaki dosyaları içeriyor: Canlandırma dosyası %ld tipinde değil.'%s' günlük dosyasına eklensin ([Hayır] seçilirse üstüne yazılacak).UygulamaUygulayınArapçaArapça (ISO-8859-6)%u argümanı bulunamadı.SanatçılarArtanÖzniteliklerKullanılabilecek yazı tipleri.B4 (ISO) 250 x 353 mmB4 (JIS) Çevrilmiş 364 x 257 mmB4 Zarf, 250 x 353 mmB4 sayfa, 250 x 354 mmB5 (ISO) Ekstra 201 x 276 mmB5 (JIS) Çevrilmiş 257 x 182 mmB5 (JIS) Enine 182 x 257 mmB5 Zarf, 176 x 250 mmB5 sayfa, 182 x 257 mmB6 (JIS) 128 x 182 mmB6 (JIS) Çevrilmiş 182 x 128 mmB6 Zarf, 176 x 125 mmBACKBMP: bellek ayrılamadı.BMP: Geçersiz görüntü kaydedilemedi.BMP: RGB renk haritası yazılamadı.BMP: Veri yazılamadı.BMP: Dosya (Bitmap) başlık bilgisi yazılamadı.BMP: Dosya (BitmapInfo) başlık bilgisi yazılamadı.BMP: wxImage için wxPalette yok.GeriArtalanArtalan &rengi:Artalan rengiBaltık (ISO-8859-13)Baltık (eski) (ISO-8859-4)Paragraftan önce:BitmapBitmap görüntüleyici değeri işleyemiyor; değer tipi:KalınKenarlıkKenarlıklarAltAlt kenar boşluğu (mm):Kutu ÖzellikleriKutu stilleriGözatınMadde İmi &Hizalaması:Madde imi stiliMadde imleriC sayfa, 17 x 22 inçT&emizleyin&Renk:C3 Zarf, 324 x 458 mmC4 Zarf, 229 x 324 mmC5 Zarf, 162 x 229 mmC6 Zarf, 114 x 162 mmC65 Zarf, 114 x 229 mmCANCELCAPITALCD-RomCHM işleyici şimdilik yalnız yerel dosyaları destekliyor!CLEARCOMMAND&Büyük harfler&Geri AlınamıyorAranamayan giriş için görsel biçimi kendiliğinden belirlenemiyor.'%s' kayıt anahtarı kapatılamadıDesteklenmeyen %d tipinin değerleri kopyalanamadı.'%s' kayıt anahtarı oluşturulamadıİş parçacığı oluşturulamadı%s sınıfının penceresi oluşturulamadı'%s' anahtarı silinemedi'%s' INI dosyası silinemedi'%s' değeri '%s' anahtarından silinemiyor'%s' anahtarının altanahtarları sayılamadı'%s' anahtarının değerleri sayılamadıDesteklenmeyen %d tipinin değeri verilemedi.'%s' dosyasındaki geçerli konum bulunamadı'%s' kayıt anahtarı hakkında bilgi alınamadıZlib sıkıştırma akışı başlatılamadı.Zlib ayıklama akışı başlatılamadı."%s" klasörü bulunamadığından değişiklikleri izlenemiyor.'%s' kayıt anahtarı açılamadıAyıklama akışı okunamadı: %sAyıklama akışı okunamadı: alt akışıta beklenmeyen dosya sonu.'%s'' değeri okunamadı'%s' anahtarının değeri okunamadıGörüntü '%s' dosyasına kaydedilemedi: bilinmeyen uzantı.Günlük içeriği dosyaya kaydedilemedi.İş parçacığının önceliği ayarlanamadı'%s' değeri değiştirilemediAlt işlem stdin yazılamadıSıkıştırma akışına yazılamadı: %sİptalMuteks oluşturulamadı.Yeni sütunun kodu oluşturulamadı. En fazla sütun sayısına ulaşılmış olabilir.'%s' dosyaları sayılamadı'%s' klasöründeki dosyalar sayılamadıEtkin çevirmeli bağlantı bulunamadı: %sAdres defteri dosyasının yeri bulunamadıÇalışan bir "%s" kopyası bulunamadıZamanlama ilkesi %d için öncelik aralığı alınamadı.Sunucu adı alınamadıResmi sunucu adı alınamadıKapatılamadı - etkin çevirmeli bağlantı yok.OLE başlatılamadıSoketler başlatılamadı'%s' içinden simge yüklenemedi.Kaynaklar '%s' dosyasından yüklenemedi.Kaynaklar '%s' dosyasından yüklenemedi.%s HTML belgesi açılamadı%s HTML yardım kitabı açılamadı%s içerik dosyası açılamadıDosya PostScript yazdırma için açılamadı!%s dizin dosyası açılamadı.'%s' kaynak dosyası açılamadı.Boş sayfa basılamaz.'%s' içinden tip adı okunamadı.%lu iş parçacığı sürdürülemiyor%lx iş parçacığı sürdürülemiyorİş parçacığı zamanlama ilkesi alınamadı.Yerel ayarlar "%s" diline çevrilemedi.İş parçacığı başlatılamadı: TLS yazma hatası.%lu iş parçacığı beklemeye alınamadı%lx iş parçacığı beklemeye alınamadıİş parçacığının sonlanması beklenemiyorBüyük küçük harfe duyarlıKategorize KipHücre ÖzellikleriKeltçe (ISO-8859-14)Or&talanmışOrtalanmışOrta Avrupa (ISO-8859-2)OrtaMetni ortalayın.OrtalanmışS&eçin...Liste Stilini DeğiştirinNesne Stilini DeğiştirinÖzellikleri DeğiştirinStili DeğiştirinVarolan "%s" dosyasının üstüne yazılmasını önlemek için değişiklikler kaydedilmeyecek.Karakter stilleriMadde iminin ardına nokta eklenmesi için işaretleyin.Sağa bir parantez eklemek için işaretleyin.Madde imini parantez içine almak için işaretleyin.Koyu yazı tipi için işaretleyin.Yatık yazı tipi için işaretleyin.Altı çizili yazı tipi için işaretleyin.Yeniden numaralandırmak için işaretleyin.Metnin üzerini çizmek için işaretleyin.Metni büyük harfe dönüştürmek için işaretleyin.Metni küçük harfe dönüştürmek için işaretleyin.Metni altyazıya dönüştürmek için işaretleyin.Metni üst yazıya dönüştürmek için işaretleyin.Aranacak servis sağlayıcıyı seçinBir klasör seçin:Bir dosya seçinRenk seçinYazı tipi seçin"%s" modülü ile döngüsel bağlılık algılandı.Kapa&tınSınıf kaydedilmemiş.TemizleyinGünlük içeriğini temizleyinSeçili stili uygulamak için tıklayın.Bir simge seçmek için tıklayın.Yazı tipi değişikliklerinden vazgeçmek için tıklayın.Yazı tipi seçiminden vazgeçmek için tıklayın.Metin rengini değiştirmek için tıklayın.Metin artalan rengini değiştirmek için tıklayın.Metin rengini değiştirmek için tıklayın.Bu düzeyin yazı tipini seçmek için tıklayın.Pencereyi kapatmak için tıklayın.Yazı tipindeki değişiklikleri onaylamak için tıklayın.Yazı tipi seçimini onaylamak için tıklayın.Yeni bir kutu stili oluşturmak için tıklayın.Yeni bir karakter stili oluşturmak için tıklayın.Yeni bir liste stili oluşturmak için tıklayın.Yeni bir paragraf stili oluşturmak için tıklayın.Yeni bir sekme konumu oluşturmak için tıklayın.Tüm sekme konumlarını silmek için tıklayın.Seçili stili silmek için tıklayın.Seçili sekme konumunu silmek için tıklayın.Seçili stili düzenlemek için tıklayın.Seçili stili yeniden adlandırmak için tıklayın.KapatınTümünü KapatınGeçerli belgeyi kapatınBu pencereyi kapatınRenkRenkRenk seçimi diyaloğu %0lx hatasıyla sonlandı.Renk:Sütun eklenemedi.Sütun tanımı yüklenemedi.Sütun dizini bulunamadı.Sütun genişliği belirlenemedi.Sütun genişliği ayarlanamadı.%d komut satırı değişkeni Unikoda çevrilemediğinden yoksayılacak.Ortak diyalog %0lx hata koduyla sonlandı.Sistmein birleştirme (compositing) desteği etkin değil. Lütfen Pencere Yöneticinizden etkinleştirin.Sıkıştırılmış HTML Yardım dosyası (*.chm)|*.chm|BilgisayarımAyar kaydının adı '%c' ile başlayamaz.OnaylayınKayıt değişikligini onaylayınBağlanılıyor...İçerik'%s' karakter kümesine dönüşüm çalışmıyor.Dönüştürün"%s" panoya kopyalandı.Kopya sayısı:KopyalayınSeçimi kopyalayın'%s' geçici dosyası oluşturulamadı.Sütun dizini belirlenemedi.Sütunun konumu belirlenemedi.Sütun sayısı belirlenemedi.Öge sayısı belirlenemedi.%s %s içine ayıklanamadı: %sKodun sekmesi bulunamadı.Başlık bilgisi tanımı alınamadı.Ögeler alınamadı.Özellik işaretleri alınamadı.Seçili ögeler alınamadı.'%s' dosyası bulunamadı.Sütun kaldırılamadı.Öge sayısı alınamadı.Hizalama ayarlanamadı.Sütun genişliği ayarlanamadı.Geçerli çalışma klasörü ayarlanamadı.Başlık bilgisi açıklaması ayarlanamadı.Simge ayarlanamadı.En fazla genişlik ayarlanamadı.En az genişlik ayarlanamadı.Özellik işaretleri ayarlanamadı.Belge önizlemesi başlatılamadı.Yazdırma başlatılamadı.Veri pencereye aktarılamadı.Mutex kilidi alınamadı.Görsel listesine bir görsel eklenemedi.Bir zamanlayıcı oluşturulamadı.Örtüşme penceresi oluşturulamadı.Çeviriler sayılamadı.'%s' simgesi devingen kitaplıkta bulunamadı.wxBrush tarama stili alınamadı.Geçerli iş parçacığı imleci alınamadı.Örtüşme penceresinde bağlam başlatılamadı.GIF hash tablosu başlatılamadı.PNG görseli yüklenemedi - dosya bozuk ya da bellek yetersiz.'%s' içinden ses verisi yüklenemedi.Klasör adı alınamadı.Ses açılamadı: %s'%s' pano biçimi kaydedilemedi.Muteks bırakılamadı.%d liste denetimi ögesi hakkında bilgi alınamadı.PNG görseli kaydedilemedi.İş parçacığı sonlandırılamadı.'Create Parameter' %s bildirilen RTTI parametreleri içinde bulunamadı.Klasör oluşturunYeni klasör oluşturunCtrl+&KesinGeçerli klasör:Özel boyutSütunları ÖzelleştirinKesinSeçimi kesinKril (ISO-8859-5)D sayfa, 22 x 34 inçDDE itme isteği yapılamadı.DECIMALDELDELETEDIB Başlık Bilgisi: Kodlama, bit derinliğine uymuyor.DIB Başlık Bilgisi: Dosya için görsel yüksekliği > 32767 piksel.DIB Başlık Bilgisi: Dosya için görsel genişliği > 32767 piksel.DIB Başlık Bilgisi: Dosyada bilinmeyen bit derinliği.DIB Başlık Bilgisi: Dosyada bilinmeyen kodlama.DIVIDEDL Zarf, 110 x 220 mmDOWNÇizgiliVeri nesnesinin veri biçimi geçersiz.Tarih görüntüleyici değeri işleyemiyor; değer tipi:Hata ayıklama raporu "%s"Hata ayıklama raporu oluşturulamadı.Hata ayıklama raporu oluşturulamadı.SüslüVarsayılan kodlamaVarsayılan yazı tipiVarsayılan yazıcıSilinTümünü Si&linSütunu SilinSatırı SilinStili SilinMetni SilinÖgeyi SilinSeçimi silin%s stili silinsin mi?Eski kilit dosyası '%s' silindi."%s" bağlılığı "%s" modülü için bulunamadı.AzalanMasaüstüGeliştiriciGeliştiricilerUzaktan erişim hizmeti (RAS) kurulu olmadığı için arama işlevleri kullanılamıyor. Lütfen kurun.Biliyor musunuz...%d DirectFB hatası oluştu.Klasörler'%s' klasörü oluşturulamadı'%s' klasörü silinemediKlasör bulunamadıKlasör bulunamadı.Değişiklikler iptal edilip son kaydedilmiş sürüme dönülsün mü?Verilen altdizgeyi içeren tüm dizin elemanları görüntülensin. Arama küçük-büyük harfe duyarlıdır.Ayarlar penceresi görüntülensinSoldaki kitapları gezilirken yardım görüntülenir.%s dosyaları için kullanılan komutu değiştirmek istiyor musunuz ("%s" uzantılı dosyalar) ? Geçerli değer %s, Yeni değer %s %1%s üzerinde yapılan değişiklikleri kaydetmek istiyor musunuz?Belge:BelgeleyenBelge yazarları KaydedilmesinTamamlandıTamamlandı.NoktalıÇiftJapon Çift Postakartı Çevrilmiş 148 x 200 mmKod iki kez kullanılmış: %dAşağıSürükleyinE sayfa, 34 x 44 inçSONENTERinotify belirteci okunurken dosya sonuna ulaşıldı ESCESCAPEEXECUTEDüzenleyinÖgeyi düzenleyinGeçen süre:Yükseklik değeri kullanılsın.En büyük genişlik değeri kullanılsın.En büyük yükseklik değeri kullanılsın.En küçük genişlik değeri kullanılsın.Genişlik değeri kullanılsın.Dikey hizalama kullanılsın.Bir artalan rengini etkinleştirir.Bir kutu stili adı yazınBir karakter stili adı yazınBir liste stili adı yazınYeni bir stil adı yazınBir paragraf stili adı yazın"%s" dosyasını açacak komutu yazın:Bulunan kayıtDavetiye Zarf 220 x 220 mmOrtam değişkenleri açılamadı: eksik '%c', konum %u, '%s' içinde.Hataepoll tanımlayıcı kapatma hatasıkqueue kopyası kapatılırken hataKlasör oluşturma hatasıDIB görüntüsü okuma hatası%s kaynağında hataAyarları okuma hatası.Kullanıcı ayarları kaydedilirken hata oluştu.Yazdırma hatası:Hata:Esperanto (ISO-8859-3)Öngörülen süre:Olay kuyruğu taştıYürütülebilir dosyalar (*.exe)|*.exe|Yürütün'%s' komutu yürütülemedi'%s' komutu yürütülemedi; hata: %ulExecutive, 7 1/4 x 10 1/2 inçKayıt anahtarı verme: "%s" dosyası zaten var, üstüne yazılmayacak.Japonca için genişletilmiş Unix Codepage (EUC-JP)'%s'', '%s' içine açılamadı.FYazı Tipi AdıKilit dosyasına erişilemedi.%d tanımlayıcısı %d epoll tanımlayısıcına eklenemediBit eşlem verisi için %luKb bellek ayrılamadı.OpenGL için renk ayarlanamadıGörüntü kipi değiştirilemedi"%s" görsel dosyasının biçimi denetlenemedi."%s" hata ayıklama rapor klasörü temizlenemediDosya işleyici kapatılamadı'%s' kilit dosyası kapatılamadıPano kapatılamadı."%s" görüntüsü kapatılamadıBağlanılamadı: kullanıcı adı/parola eksik.Bağlanılamadı: aranacak ISS yok."%s" dosyası Unikoda çevrilemedi.Pencere içeriği panoya kopyalanamadı.'%s' kayıt değeri kopyalanamadı'%s' kayıt anahtarının içeriği '%s' içine kopyalanamadı.'%s' dosyası '%s' içine kopyalanamadı'%s' kayıt alt anahtarı '%s' içine kopyalanamadı.DDE dizgesi oluşturulamadıMDI üst çerçevesi oluşturulamadı.Geçici dosya adı oluşturulamadıAnonim bir boru oluşturulamadı"%s" kopyası oluşturulamadı'%s' sunucusuna '%s' konusundan bağlantı kurulamadıİmleç oluşturulamadı."%s" klasörü oluşturulamadı'%s' klasörü oluşturulamadı (Yeterli izniniz var mı?)epoll tanımlayıcısı oluşturulamadı'%s' dosyaları için kayıt anahtarı oluşturulamadı.Standart bul/değiştir penceresi oluşturulamadı (hata kodu %d)Olay döngüsünde kullanılan uyandırma borusu oluşturulamadı.HTML belgesi %s kodlamasıyla görüntülenemediPano temizlenemedi.Görüntü kipleri sıralanamadıDDE sunucusuyla danışma döngüsü sağlanamadıÇevirmeli bağlantı gerçekleştirilemedi: %s'%s' çalıştırılamadı curl çalıştırılamadı, lütfen YOL içine yükleyin."%s" için CLSID bulunamadıKurallı ifadeye uygun veri bulunamadı: %sISS adları alınamadı: %s"%s" için OLE otomasyonu arayüzü getirilemediPanodan veri alınamadıYerel sistem zamanı alınamadıÇalışma klasörü alınamadıGUI başlatılamadı: içsel bir tema bulunamadı.MS HTML Yardım başlatılamadı.OpenGL başlatılamadıÇevirmeli bağlantı başlatılamadı: %sMetin denetime eklenemedi.'%s' kilit dosyası incelenemediİşaret işleyici kurulamadıİş parçacığına bağlanılamadı, olası bellek taşması bulundu - lütfen programı yeniden başlatın%d işlemi sonlandırılamadıKaynaklardan "%s" bit eşlemi yüklenemedi.Kaynaklardan "%s" simgesi yüklenemedi.%%d görseli '%s' dosyasından yüklenemedi.%d görseli akıştan yüklenemedi."%s" dosyasından görsel yüklenemedi."%s" dosyasından metafile yüklenemedi.mpr.dll yüklenemedi."%s" kaynağı yüklenemedi.'%s' paylaşılmış kitaplığı yüklenemedi"%s" kaynağı kilitlenemedi.'%s' kilit dosyası kilitlenemedi%d tanımlayıcısı değiştirilemedi (epoll %d tanımlayıcısındaki)'%s' için dosya zamanları değiştirilemediG/Ç kanalları izlenemedi'%s' okunmak üzere açılamadı'%s' yazılmak üzere açılamadı'%s' CHM arşivi açılamadı.'%s' İnternet adresi varsayılan tarayıcıyla açılamadı."%s"klasörü izlenmek üzere açılamadı."%s" görüntüsü açılamadı.Geçici dosya açılamadı.Pano açılamadı.Çoğul-formlar ayrıştırılamadı: '%s'"%s" oynatmaya hazırlanamadı.Veri panoya konulamadıKilit dosyasından PID okunamadı.Ayarlar okunamadı."%s" dosyasından belge okunamadı.DirectFB borusundan olay okunamadıUyandırma borusu okunamadıAlt iş giriş/çıkışı yönlendirilemediAlt iş giriş/çıkışı yönlendirilemedi'%s' DDE sunucusuna kayıt olunamadı'%s' karakter kümesi için kodlama anımsanamadı."%s" hata ayıklama rapor dosyası silinemedi'%s' kilit dosyası silinemedi'%s' eski kilit dosyası silinemedi.'%s' kayıt değeri '%s' olarak yeniden adlandırılamadı.'%s' dosyası aynı adlı bir dosya olduğundan '%s' olarak yeniden adlandırılamadı.'%s' kayıt anahtarı '%s' olarak yeniden adlandırılamadı.Panodan veri alınamadı.'%s' için dosya zamanları alınamadıRAS hata iletisi metni alınamadıDesteklenen pano biçimleri alınamadıBelge "%s" dosyasına kaydedilemedi.Bit eşlemi görüntüsü "%s" dosyasına kaydedilemedi.DDE danışma uyarısı gönderilemediFTP aktarım kipi %s olarak ayarlanamadı.Pano verisi ayarlanamadı.'%s' kilit dosyasının izinleri ayarlanamadıİşlem önceliği ayarlanamadıGeçici dosya izinleri ayarlanamadıMetin denetime yerleştirilemedi.%lu iş parçacığı öncelik düzeyi ayarlanamadı.%d iş parçacığı önceliği ayarlanamadı.Engellemesiz boru kurulamadı, program takılabilir.'%s' görüntüsü VFS belleğine yerleştirilemedi!DirectFB borusu engellemesiz kipe döndürülemediUyandırma borusu engellemesiz kipe döndürülemediBir iş parçacığı sonlandırılamadı.DDE sunucusuyla danışma döngüsü sonlandırılamadıÇevirmeli bağlantı sonlandırılamadı: %s'%s' dosyasına dokunulamadı'%s' kilit dosyasının kilidi kaldırılamadı'%s' DDE sunucusundan kayıt iptali yapılamadı%d tanımlayıcısı kaldırılamadı (%d epoll tanımlayıcısından)Kullanıcı ayarları dosyası kaydedilemedi.Hata ayıklama raporu yüklenemedi (hata kodu %d).'%s' kilit dosyasına yazılamadıYanlışAileDosya"%s" dosyası okunmak üzere açılamadı."%s" dosyası yazılmak üzere açılamadı.'%s' dosyası zaten var, üstüne yazılsın mı?'%s' dosyası zaten var. Üstüne yazılsın mı?'%s' dosyası silinemedi'%s' dosyası '%s' olarak yeniden adlandırılamadıDosya yüklenemedi.Dosya diyaloğu %0lx hata koduyla sonlandı.Dosya hatasıAynı adlı bir dosya zaten var.DosyalarDosyalar (%s)SüzgeçBulunİlkİlk sayfaSabitSabit yazı tipi:Sabit boyutlu tip.
    koyu eğik YüzenEsnekKitap yaprağı, 8 1/2 x 13 inçYazı tipiYazı &koyuluğu:Yazı boyutuYazı &stili:Yazı tipi:Yazı tipleri yüklenirken %s yazı tipi dizin dosyası kayboldu.Ayrılma başarısızİleriYönlendirme href biçimi desteklenmiyor%i sonuç bulunduKaynak:GIF: Geçersiz gif dizini.GIF: veri akışı budanmış görünüyor.GIF: GIF görsel biçimi hatası.GIF: yetersiz bellek.GIF: bilinmeyen hata!!!Yüklü GTK+ çok eski ve ekran karmayı desteklemiyor. Lütfen GTK+ 2.12 ya da üzeri bir sürüm yükleyin.GTK+ temasıGenelGenel PostScriptAlman Legal Fanfold, 8 1/2 x 13 inçAlman Standart Fanfold, 8 1/2 x 12 inç'GetProperty' işlevi geçerli bir alıcı olmaksızın çağrıldı'GetPropertyCollection' işlevi genel bir erişici üzerinden çağrıldı'GetPropertyCollection' işlevi geçerli bir koleksiyon alıcısı olmaksızın çağrıldıGeri gidinİleri gidinBelge hiyerarşisinde bir düzey yukarı gidinAçılış klasörüne gidinÜst klasöre gidinGrafikleri hazırlayanYunanca (ISO-8859-7)GrooveBu Zlib sürümü Gzip desteklemiyorHELPHOMEHTML Yardım Projesi (*.hhp)|*.hhp|%s HTML çapası bulunamadı.HTML dosyaları (*.html;*.htm)|*.html;*.htm|Sabit diskİbranice (ISO-8859-8)YardımYardım Tarayıcısı AyarlarıYardım DiziniYardım YazdırmaYardım KonularıYardım kitapları (*.htb)|*.htb|Yardım kitapları (*.zip)|*.zip|"%s" yardım klasörü bulunamadı."%s" yardım dosyası bulunamadı.Yardım: %s%s gizleyinDiğerlerini GizleyinBu uyarı iletisini gizleyin.AçılışAçılış klasörüNesnenin metne göre nasıl yüzeceği.ICO: DIB maskesi okuma hatası.ICO: Görsel dosyası yazma hatası!ICO: Görsel simge için çok uzun.ICO: Görsel simge için çok geniş.ICO: Geçersiz simge dizini.IIF: veri akışı budanmış görünüyor.IIF: IFF görsel biçimi hatası.IIF: yetersiz bellek.IIF: bilinmeyen hata!!!INSINSERTISO-2022-JPSimge ve metin görüntüleyici değeri işleyemiyor; değer tipi:Olabiliyorsa, çıktıyı daraltmak için sayfa ayarlarını değiştirmeyi deneyin.Bu hata raporuna ekleyeceğiniz bir bilgi varsa, lütfen buraya yazın:Bu hata raporunu göndermek istemiyorsanız, "İptal" düğmesine tıklayın, ancak bu rapor, yazılımın geliştirilmesine yardımcı olabilir, bu nedenle olanağınız varsa raporu gönderin. "%s" değeri "%s" anahtarı için yok sayılıyor.Olay kaynağı nesne sınıfı geçersiz (Non-wxEvtHandler)ConstructObject yordamı için parametre sayısı geçersizCreate yordamı için parametre sayısı geçersizKlasör adı geçersiz.Dosya tanımı geçersiz.Görsel ve maske farklı boyutlarda.Görsel dosyası %d tipinde değil.Görsel dosyası %s tipinde değil.Zengin metin denetimi oluşturulamıyor. Onun yerine basit metin denetimi kullanılacak. Lütfen riched32.dll kitaplığını yeniden yükleyin.Alt iş girdisi alınamıyor'%s' dosyasının izinleri okunamıyor'%s' dosyasının üzerine yazılamıyor'%s' dosyasının izinleri değiştirilemiyorGIF kare sayısı yanlış (%u, %d) #%u karesiArgüman sayısı hatalı.GirintiGirinti ve BoşluklarDizinHintçe (ISO-8859-12)BilgilerHazırlığın ardından başlatılamadı, vazgeçiliyor.EkleyinAlan EkleyinGörsel EkleyinNesne EkleyinMetin EkleyinParagraftan önce bir sayfa sonu ekler.GömmeGeçersiz GTK+ komut satırı seçeneği, "%s --help" yazarak yardım alınTIFF görsel dizini geçersiz.Veri görünümü ögesi geçersiz'%s' görünüm kipi özelliği geçersiz.'%s' geometri özelliği geçersiz."%s" için inotify etkinliği geçersiz'%s' kilit dosyası geçersiz.İleti kataloğu geçersiz.GetObjectClassInfo işlevine geçersiz ya da boş nesne kodu gönderildiHasObjectClassInfo işlevine geçersiz ya da boş nesne kodu gönderildiKurallı ifade geçersiz '%s': %sAyar dosyasındaki %ld değeri "%s" ikili anahtarı için geçersiz.Yatıkİtalyan Zarf, 110 x 230 mmJPEG: Yüklenemedi - dosya bozuk olabilir.JPEG: Görsel kaydedilemedi.Japon Çift Postakartı 200 x 148 mmJapon Zarf Chou #3Japon Zarf Chou #3 ÇevrilmişJapon Zarf Chou #4Japon Zarf Chou #4 ÇevrilmişJapon Zarf Kaku #2Japon Zarf Kaku #2 ÇevrilmişJapon Zarf Kaku #3Japon Zarf Kaku #3 ÇevrilmişJapon Zarf You #4Japon Zarf You #4 ÇevrilmişJapon Postakartı 100 x 148 mmJapon Postakartı Çevrilmiş 148 x 100 mmAtlayınHizalanmışMetin sola ve sağa hizalanır.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UP&Satır aralığı:LEFTYataySonSon sayfaSon yinelenen ileti ("%s", %lu kez) çıkış değildiLedger, 17 x 11 inçSolSol (i&lk satır):Sol kenar boşluğu (mm):Metin sola yaslanır.Legal Ek 9 1/2 x 15 inçLegal, 8 1/2 x 14 inçLetter Ek 9 1/2 x 12 inçLetter Ek Enine 9.275 x 12 inçLetter Artı 8 1/2 x 12.69 inçLetter Çevrilmiş 11 x 8 1/2 inçLetter Küçük, 8 1/2 x 11 inçLetter Enine 8 1/2 x 11 inçLetter, 8 1/2 x 11 inçLisansAçık%lu. satır "%s" eşleştirme dosyasında sözdizimi hatası var, atlandı.Satır aralığı:Bağlantı '//' içeriyor, mutlak bağlantıya dönüştürüldü.Liste StiliListe stilleriYazı tipi boyutları punto olarak listelenir.Kullanılabilir yazı tipleri listelenir.%s dosyasını yükleyinYükleniyor :'%s' kilit dosyasının sahibi hatalı.'%s' kilit dosyasının izinleri doğru değil.Günlük '%s' dosyasına kaydedildi.Küçük harflerKüçük harf Romen rakamlarıMDI altMENUMS HTML Yardım kitaplığı yüklü olmadığından yardım işlevleri kullanılamıyor. Lütfen yükleyin.Ekranı &kaplatınMacArapçaMacErmeniceMacBengalceMacBurmeseMacKeltçeMacOrtaAvrupaRomanMacÇinceBasitMacÇinceGelenekselMacHırvatçaMacKirilMacDevanagariMacDingbatsMacEtyopçaMacExtArapçaMacGaliçceMacAzericeMacYunancaMacGujaratiMacGurmukhiMacİbraniceMacIzlandacaMacJaponcaMacKanadaMacKeyboardGlyphsMacKmerceMacKoreceMacLaotianMacMalaycaMacMongolcaMacOriyaMacRomanMacRomenceMacSinhaleseMacSimgeMacTamilMacTeluguMacTayMacTibetçeMacTürkçeMacVietnamcaBir seçim yapın:Kenar BoşluklarıKüçük büyük harf eşleştirilsinEn fazla yükseklik:En fazla genişlik:Ortam oynatma hatası: %s'%s' dosyası zaten VFS belleğinde yer alıyor!MenüİletiMetal temaYordam ya da özellik bulunamadıSimge &durumuna küçültünEn az yükseklik:En az genişlik:Gereken bir parametre eksik.ModernDeğişiklik"%s" modülü başlatılamadıMonarşi Zarf, 3 7/8 x 7 1/2 inçTek tek dosyaların değişiminin izlenmesi şu anda desteklenmiyor.Aşağı taşıyınYukarı taşıyınNesne sonraki paragrafa taşınır.Nesne önceki paragrafa taşınır.Çoklu Hücre ÖzellikleriNUM_LOCKAdAğYeniYeni &Kutu Stili...Yeni &Karakter Stili...Yeni &Liste Stili...Yeni &Paragraf Stili...Yeni StilYeni klasörYeni ögeYeniAdSonrakiSonraki sayfaHayır%ld tipi için canlandırma işleyicisi tanımlanmamış.%d tipi için bit eşlemi işleyicisi tanımlanmamış.Hiç bir sütun bulunamadı.Belirtilen sütun için varolan bir sütun yok.Belirtilen konumda sütun bulunamadı.HTML dosyaları için varsayılan uygulama ayarlanmamış.Hiç bir kayıt bulunamadı.Metni '%s' kodlamasıyla görüntüleyecek bir yazı tipi yok, ancak onun yerine '%s' kodlama seçeneği kullanılabilir. Bu kodlamayı kullanmak istiyor musunuz (aksi halde başka bir tane seçmelisiniz) ?Metni '%s' kodlamasıyla görüntüleyecek bir yazı tipi yok. Bu kodlamayı kullanabileceğiniz bir yazı tipi seçmek istiyor musunuz (aksi halde bu kodlamadaki metin doğru olarak görüntülenmez) ?Canlandırma tipinin işleyicisi bulunamadı.Görüntü tipinin işleyicisi bulunamadı.%d tipinin görüntü işleyicisi tanımlanmamış.%s tipinin görüntü işleyicisi tanımlanmamış.Henüz uyan bir sayfa bulunamadıÖzel veri sütunu için görüntüleyici belirtilmemiş ya da geçersiz.Sütun görüntüleyici belirtilmemiş.Ses yokMaskelenen görselde kullanılmamış renk yok.Görselde kullanılmamış renk yok"%s" dosyasında geçerli eşleme bulunamadı.HiçbiriNorveçce (ISO-8859-10)NormalNormal yazı tipi
    ve altı çizili. Normal yazı tipi:%s değilKullanılamıyorAltı çizili değilNot, 8 1/2 x 11 inçBildirimSütun sayısı belirlenemedi.Numaralı taslakTamam%s içinde OLE otomasyon hatası: %sNesne ÖzellikleriNesne uygulaması adlandırılmış argümanları desteklemiyor.Nesnelerin bir kod özniteliği olmalıdırDosya AçınHTML belgesi açınDosya açın "%s"Açın..."%s" OpenGL işlevi çalıştırılamadı: %s (hata %d)İşleme izin verilmiyor.'%s' seçeneği yok sayılamaz'%s' seçeneğinin bir değeri olması gerekiyor.'%s' seçeneği: '%s' tarihe dönüştürülemiyor.AyarlarYönPencere kodları tükendi. Uygulamayı kapatmanız önerilir.TaslakKabartmaArguman değerleri zorlanırken taşma.PAGEDOWNPAGEUPPAUSEPCX: bellek ayrılamadı.PCX: görsel biçimi desteklenmiyorPCX: görsel geçersizPCX: bu bir PCX dosyası değil.PCX: bilinmeyen hata !!!PCX: sürüm numarası çok küçükPGDNPGUPPNM: Bellek ayrılamadı.PNM: Dosya biçimi tanınamadı.PNM: Dosya budanmış görünüyor.PRC 16K 146 x 215 mmPRC 16K ÇevrilmişPRC 32K 97 x 151 mmPRC 32K ÇevrilmişPRC 32K(Büyük) 97 x 151 mmPRC 32K(Büyük) ÇevrilmişPRC Zarf #1 102 x 165 mmPRC Zarf #1 Çevrilmiş 165 x 102 mmPRC Zarf #10 324 x 458 mmPRC Zarf #10 Çevrilmiş 458 x 324 mmPRC Zarf #2 102 x 176 mmPRC Zarf #2 Çevrilmiş 176 x 102 mmPRC Zarf #3 125 x 176 mmPRC Zarf #3 Çevrilmiş 176 x 125 mmPRC Zarf #4 110 x 208 mmPRC Zarf #4 Çevrilmiş 208 x 110 mmPRC Zarf #5 110 x 220 mmPRC Zarf #5 Çevrilmiş 220 x 110 mmPRC Zarf #6 120 x 230 mmPRC Zarf #6 Çevrilmiş 230 x 120 mmPRC Zarf #7 160 x 230 mmPRC Zarf #7 Çevrilmiş 230 x 160 mmPRC Zarf #8 120 x 309 mmPRC Zarf #8 Çevrilmiş 309 x 120 mmPRC Zarf #9 229 x 324 mmPRC Zarf #9 Çevrilmiş 324 x 229 mmPRINTYastıklamaSayfa %dSayfa %d / %dSayfa DüzeniSayfa düzeniSayfalarKağıt boyutuParagraf stilleriSetObject işlevine zaten kayıtlı olan bir nesne gönderildiGetObject işlevine bilinmeyen bir nesne gönderildiYapıştırınSeçimi yapıştırınN&oktaİzinlerGörsel ÖzellikleriBoru oluşturulamadıLütfen geçerli bir yazı tipi seçin.Lütfen varolan bir dosya seçin.Lütfen görüntülenecek sayfayı seçin:Lütfen bağlanmak istediğiniz servis sağlayıcıyı seçinLütfen daha yeni bir comctl32.dll sürümü yükleyin (en az 4.70 sürümü kullanılabilir, %d.%02d sürümü yüklü) yoksa bu program düzgün şekilde çalışamaz.Lütfen görüntülenecek sütunları seçin ve sıralarını belirleyin:Yazdırılıyor, lütfen bekleyin...Punto BoyutuVeri görünümü denetimi imleci doğru olarak ayarlanmamış.Model imleci doğru olarak ayarlanmamış.DikeyKonumPostScript dosyasıAyarlarAyarlar...HazırlanıyorÖnizleme:Önceki sayfaYazdırınBaskı ÖnizlemesiBaskı Önizleme HatasıYazdırma AralığıYazdırma AyarlarıRenkli yazdırınBaskı ö&nizleme...Baskı önizleme oluşturulamadı.Baskı önizleme...Yazdırma kuyruğuBu sayfayı yazdırınDosyaya YazdırınYazdırın...YazıcıYazıcı komutu:Yazıcı ayarlarıYazıcı ayarları:Yazıcı...Yazıcı:YazdırılıyorYazdırılıyorYazdırma HatasıYazdırılan sayfa %d / %d...Yazdırılan sayfa %d...Yazdırılıyor...ÇıktıHata ayıklama raporu oluşturulamadı, dosyalar "%s" klasöründe bırakıldı.İşlem görüntüleyici değeri işleyemiyor; değer tipi:İşlem:ÖzelliklerÖzellikÖzellik HatasıQuarto, 215 x 275 mmSoruÇıkış%s uygulamasından çıkınBu programdan çıkınRETURNRIGHTHamCtrl+'%s' dosyasında okuma hatasıHazırYineleyinSon eylemi yeniden yapınYenileyin'%s' kayıt anahtarı zaten var.'%s' kayıt anahtarı bulunamadığından yeniden adlandırılamıyor.'%s' kayıt anahtarı normal sistem işlemleri için gerekiyor, silinmesi sistemi kararsız bir hale getirir: işlem iptal edildi.'%s' kayıt değeri zaten var.NormalBağılİlgili kayıtlar:Kalan süre:SilinMadde İmini KaldırınGeçerli sayfayı yer imlerinden silin"%s" görüntüleyicisinin %d.%d sürümü uyumsuz olduğundan yüklenemedi.Görüntülenemiyor.Listeyi Yeniden Numaralayın&DeğiştirinDeğiştirin&Tümünü değiştirinSeçimi değiştirinŞununla değiştirin:Gereken bilgi kayıdı boş.'%s' kaynağı geçerli bir ileti kataloğu değil.Kaydedilmiş Olana Geri DönünSırtSağSağ kenar boşluğu (mm):Metin sağa yaslanır.RomanS&tandart madde imi adı:SCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACTKaydedin%s dosyasını kaydedin&Farklı KaydedinFarklı KaydedinFarklı kaydedinGeçerli belgeyi kaydedinGeçerli belgeyi farklı bir adla kaydedinGünlük içeriğini dosyaya kaydedinBetikArayınYukarıya yazılan metin yardım kitapları içinde her türlü aranırArama yönüAranan:Tüm kitaplarda arayınAranıyor...Bölümler'%s' dosyasında arama hatası'%s' dosyasında arama hatası (büyük dosyalar 'stdio' tarafından desteklenmiyor)&Tümünü SeçinTümünü SeçinBir belge şablonu seçinBir belge görünümü seçinNormal ya da koyu seçin.Normal ya da yatık stil seçin.Altıçizili ya da normal seçin.SeçimDüzenlenecek liste düzeyini seçer.'%s' seçeneğinden sonra ayraç bekleniyor.Hücre Stilini Ayarlayın'SetProperty' işlevi geçerli bir yerleştirici olmaksızın çağrıldıKlasör erişim zamanları ayarı bu işletim sistemi sürümünde desteklenmiyorKurulum...Birkaç etkin çevirmeli bağlantı bulundu, rastgele biri seçiliyor.Shift+Gizli &klasörler görüntülensinGizli &dosyalar görüntülensinTümü GörüntülensinHakkında penceresi görüntülensinTümü görüntülensinDizindeki tüm ögeler görüntülensinGizli klasörler görüntülensinGezinti panelini görüntüleyin/gizleyinBir Unikod alt kümesi görüntülenir.Madde imi ayarlarının önizlemesi görüntülenir.Yazı tipi ayarlarının bir önizlemesi görüntülenir.Yazı tipinin önizlemesi görüntülenir.Paragraf ayarlarının önizlemesi görüntülenir.Yazı tipinin önizlemesi görüntülenir.Basit tek renkli temaTekBoyutBoyut:AtlayınEğikKüçük H&arflerKatıMalesef bu dosya açılamıyor.Malesef önizleme oluşturmak için yeterli bellek yok.Malesef bu ad kullanılmış. Lütfen başka bir ad seçin.Malesef bu dosyanın biçimi bilinmiyor.Ses verisi desteklenmeyen bir biçimde.'%s' ses dosyası desteklenmeyen bir biçimde.AralıkYazım DenetimiStandartStatement, 5 1/2 x 8 1/2 inçDurağanDurum:DurdurunÜstü çiziliDizgeden Renge: Hatalı renk tanımı: %sStilStil DüzenleyiciStil:Al&tyazıÜ&styazıSuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmİsveçSembolSembol &yazı tipi:SimgelerTABTIFF: Bellek ayrılamadı.TIFF: Görsel yükleme hatası.TIFF: Görsel okuma hatası.TIFF: Görsel kaydetme hatası.TIFF: Görsel yazma hatası.TIFF: Görsel boyutu anormal büyük.Tablo ÖzellikleriTabloid Ek 11.69 x 18 inçTabloid, 11 x 17 inçSekmelerTeletypeŞablonlarMetin görüntüleyici değeri işleyemiyor; değer tipi:Thai (ISO-8859-11)FTP sunucusu pasif kipi desteklemiyor.FTP sunucusu PORT komutunu desteklemiyor.Kullanılabilecek madde imi stilleri.Kullanılabilecek stiller.Artalan rengi.Alt kenar boşluğunun boyutu.Alt yastıklama boyutu.Alt konum.Madde imi karakteri.Karakter kodu.'%s' karakter kümesi bilinmiyor. Yerine başka bir tane seçebilir ya da seçemiyorsanız [İptal] düğmesine tıklayabilirsiniz'%d' pano biçimi bulunamıyor.Sonraki paragraf için varsayılan stil.'%s' klasörü bulunamadı Şimdi oluşturulsun mu?"%s" belgesi sayfaya yatay olarak sığmıyor ve yazdırılırsa budanacak. Buna rağmen yazdırmak istiyor musunuz?'%s' dosyası yok ve açılamadı. Son kullanılan dosyalar listesinden kaldırıldı.İlk satır girintisi.Aşağıdaki standart GTK+ seçenekleri de desteklenmektedir: Yazı tipi rengi.Yazı tipi ailesi.Simgenin alınacağı yazı tipi.Yazı tipi punto boyutu.Punto olarak yazı tipi boyutu.Yazı tipi boyutu birimi, punto ya da piksel.Yazı tipi stili.Yazı tipi yoğunluğu.'%s' dosyasının biçimi belirlenemedi.Sol girinti.Sol kenar boşluğu boyutu.Sol yastıklama boyutu.Sol konum.Satır aralığı.Liste ögesi numarası.Yerel kodu bilinmiyor.Nesne yüksekliği.En fazla nesne yüksekliği.En fazla nesne genişliği.En az nesne yüksekliği.En az nesne genişliği.Nesne genişliği.Taslak düzeyi.Önceki ileti %lu kez yinelendi.Önceki ileti bir kez yinelendi.Yazdırma penceresi bir hata verdi.Görüntülenecek aralık.Bu rapor aşağıdaki dosyaları içermektedir. Eğer bu dosyalarda özel bilgileriniz varsa, rapordan çıkarmak istediğiniz dosyaların işaretini kaldırın. Gerekli '%s' parametresi belirtilmemiş.Sağ girinti.Sağ kenar boşluğu boyutu.Sağ yastıklama boyutu.Sağ konum.Paragraftan sonraki boşluk.Paragraftan önceki boşluk.Stil adı.Bu stilin temel alındığı stil.Stil önizlemesi.Sistem belirtilen dosyayı bulamadı.Sekme konumu.Sekme konumları.Metin kaydedilemedi.Üst kenar boşluğu boyutu.Üst yastıklama boyutu.Üst konum.'%s' seçeneği için değer belirtilmelidir.Bu bilgisayarda kurulu uzak erişim hizmetinin (RAS) sürümü çok eski, lütfen yükseltin (gereken şu işlev eksik: %s).wxGtkPrinterDC kullanılamıyor.Belirtilen sütun dizin için sütun ya da görüntüleyici bulunamadı.Sayfa ayarlanırken bir hata oluştu: varsayılan bir yazıcı belirlemeniz gerekebilir.Bu belge sayfaya yatay olarak sığmıyor ve yazdırılırsa budanacak.Bu bir %s değil.Bu platformda artalan saydamlığı desteklenmiyor.Bu program çok eski bir GTK+ sürümüyle derlenmiş. Lütfen GTK+ 2.12 ya da üzeri bir sürümle yeniden derleyin.Bu sistem tarih ögelerini desteklemiyor, lütfen comctl32.dll sürümünü yükseltinİş parçacığı modülü başlatılamadı: yerel depoya değer koyulamıyorİş parçacığı modülü başlatılamadı: iş parçacığı anahtarı oluşturulamadıİş parçacığı modülü başlatılamadı: yerel depoda dizin oluşturulamıyorİş parçacığı öncelik ayarları yok sayıldı.&Yatay Döşeyin&Dikey DöşeyinFTP sunucusuna bağlanırken zamanaşımı oldu, pasif kipi deneyin.Zamanlayıcı oluşturulamadıGünün İpucuMalesef ipucu yok!Kime:İki durumlu düğme görüntüleyici değeri işleyemiyor; değer tipi:Çok fazla EndStyle çağrısı!PNG içinde çok fazla renk var, görüntü biraz bulanıklaşabilir.ÜstÜst kenar boşluğu (mm):ÇevirenÇevirmenlerDoğru'%s' dosyası yüklü olmadığı halde VFS belleğinden silinmeye çalışılıyor!Türkçe (ISO-8859-9)TipBir yazı tipi adı yazın.Punto olarak bir boyut yazın.%u argümanında tip uyuşmazlığı.Tip enum - long çevrimini desteklemelidir"%s" tip işlemi yapılamadı: Etiketlenen özellik "%s" "%s" tipinde, "%s" tipinde DEĞİL.UPUS Std Fanfold, 14 7/8 x 11 inçUS-ASCIIinotify izlemesi eklenemedikqueue izlemesi eklenemediG/Ç tamamlanma kapısı işleyici ile ilişkilendirilemediG/Ç tamamlanma kapısı işleyicisi kapatılamadıinotify kopyası kapatılamadı'%s' yolu kapatılamadı'%s' işleyicisi kapatılamadıG/Ç tamamlanma kapısı oluşturulamadıIOCP iş parçacığı oluşturulamadıinotify kopyası oluşturulamadıkqueue kopyası oluşturulamadıTamamlanma paketi kuyruktan çıkarılamadıOlaylar kqueue üzerinden alınamadıDoğal sürükle bırak verisi işlenemediGTK+ başlatılamadı, DISPLAY düzgün ayarlanmış mı?Hildon programı başlatılamadı'%s' yolu açılamadıİstenen HTML belgesi açılamıyor: %sSes zaman eşlemesiz olarak çalınamıyor.Tamamlanma durumu gönderilemediinotify tanımlayıcısı okunamadıinotify izlemesi kaldırılamadıkqueue izlemesi kaldırılamadı'%s' izlemesi kurulamadıIOCP iş parçacığı başlatılamadıSilmeyi geri alınAltıçiziliAltıçiziliGeri AlınSon eylemi geri alın'%s' seçeneğinden sonra beklenmeyen karakterler."%s" için beklenmeyen etkinlik: uyan izleme belirteci yok.Beklenmeyen parametre '%s'Beklenmedik şekilde yeni G/Ç tamamlanma kapısı oluşturulduUygunsuz iş parçacığı sonlandırmasıUnikodUnikod 16 bit (UTF-16)Unikod 16 bit Big Endian (UTF-16BE)Unikod 16 bit Little Endian (UTF-16LE)Unikod 32 bit (UTF-32)Unikod 32 bit Big Endian (UTF-32BE)Unikod 32 bit Little Endian (UTF-32LE)7 bit Unikod (UTF-7)8 bit Unikod (UTF-8)Girintiyi geri alınAlt kenarlık genişliğinin birimleri.Alt kenar boşluğunun birimleri.Alt taslak genişliğinin birimleri.Alt yastıklamanın birimleri.Alt konumun birimleri.Sol sınır genişliğinin birimleri.Sol kenar boşluğunun birimleri.Sol taslak genişliğinin birimleri.Sol yastıklamanın birimleri.Sol konumun birimleri.En fazla nesne yüksekliğinin birimleri.En fazla nesne genişliğinin birimleri.En az nesne yüksekliğinin birimleri.En az nesne genişliğinin birimleri.Nesne yüksekliğinin birimleri.Nesne genişliğinin birimleri.Sağ sınır genişliğinin birimleri.Sağ kenar boşluğunun birimleri.Sağ taslak genişliğinin birimleri.Sağ yastıklamanın birimleri.Sağ konumun birimleri.Üst kenarlık genişliğinin birimleri.Üst kenar boşluğunun birimleri.Üst taslak genişliğinin birimleri.Üst yastıklamanın birimleri.Üst konumun birimleri.BilinmeyenBilinmeyen DDE hatası %08xGetObjectClassInfo işlevi bilinmeyen nesne ile çağrıldıBilinmeyen PNG çözünürlük birimi %d Bilinmeyen Özellik %sBilinmeyen TIFF %d çözünürlük birimi yok sayıldıBilinmeyen veri biçimiBlinmeyen devingen kitaplık hatasıBilinmeyen kodlama (%d)Bilinmeyen hata %08xBilinmeyen istisnaBilinmeyen görsel veri biçimi.Blinmeyen long seçeneği '%s'Bilinmeyen ad ya da adlandırılmış argüman.Bilinmeyen seçenek '%s'%s MIME tipi kaydına uymayan '{'.Adsız komutBelirtilmemişDesteklenmeyen pano biçimi.Desteklenmeyen tema '%s'.YukarıBüyük harflerBüyük harf romen rakamlarıKullanım: %sGeçerli hizalama ayarları kullanılsın.Doğal veri görünüm denetimine ait bir imleç yokDoğrulama çelişkisiDeğerDeğer %s ya da daha büyük olmalı.Değer %s ya da daha küçük olmalı.Değer %s ile %s arasında olmalı.SürümDikey hizalama.Dosyalar ayrıntılı görünümde görüntülensinDosyalar liste görünümünde görüntülensinGörünümlerWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHT%d epoll tanımlayıcısı üstündeki GÇ beklemesi başarısızUyarı:YoğunlukBatı Avrupa (ISO-8859-1)Batı Avrupa (Euro) (ISO-8859-15)Yazı tipinin altıçizili olup olmadığı.Tam kelimeYalnız tam kelimelerWin32 temasıWindows 3.1 üstünde Win32sWindows 2000Windows 7Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arapça (CP 1256)Windows Baltık (CP 1257)Windows CE (%d.%d)Windows Orta Avrupa (CP 1250)Windows Basitleştirilmiş Çince (CP 936) ya da GB-2312Windows Geleneksel Çince (CP 950) ya da Big-5Windows Kiril (CP 1251)Windows Yunanca (CP 1253)Windows İbranice (CP 1255)Windows Japonca (CP 932) ya da Shift-JISWindows Johab (CP 1361)Windows Korece (CP 949)Windows MEWindows NT %lu.%luWindows Server 2003Windows Server 2008Windows Server 2008 R2Windows Tai (CP 874)Windows Türkçe (CP 1254)Windows Vietnamca (CP 1258)Windows VistaWindows Batı Avrupa (CP 1252)Windows XPWindows/DOS OEM (CP 437)Windows/DOS OEM Kiril (CP 866)'%s' dosyasına yazma hatası'%s' XML işleme hatası: Satır %dXPM: Bozuk piksel verisi!XPM: %d satırında hatalı renk açıklamasıXPM: hatalı üstbilgi biçimi!XPM: '%s' bozuk renk tanımı, satır %d!XPM: maske için kullanılacak renk kalmadı!XPM: %d satırında budanmış görüntü verisi!EvetHazırlanmamış bir örtüşmeyi temizleyemezsinizBir örtüşmeyi iki kez hazırlayamazsınızBu bölüme yeni bir klasör ekleyemezsiniz.Geçersiz bir değer yazdınız, düzenlemeyi iptal etmek için ESC tuşuna basın.&Yaklaştırın&UzaklaştırınYaklaştırınUzaklaştırın&SığdırınSığdırınbir DDEML uygulaması uzun koşu durumu oluşturdu.DDEML işlevi önceden DdeInitialize işlevi çağrılmadan çağrıldı, ya da DDEML işlevine geçersiz bir örnek tanımlayıcısı gönderildi.bir istemcinin konuşma başlatma denemesi başarısız oldu.bellek ayrılamadı.parametre DDEML tarafından doğrulanamadı.eşzamanlı danışma hareketi isteği zaman aşımına uğradı.eşzamanlı veri hareketi isteği zaman aşımına uğradı.eşzamanlı çalıştırma hareketi isteği zaman aşımına uğradı.eşzamanlı itme hareketi isteği zaman aşımına uğradı.danışma hareketi bitirme isteği zaman aşımına uğradı.istemci tarafından sonlandırılmış bir görüşme üstünde sunucu tarafında bir hareket denendi, ya da sunucu hareket tamamlanmadan sonlandırıldı.hareket başarısız oldu.altAPPCLASS_MONITOR olarak başlatılmış bir uygulama DDE hareketi gerçekleştirmeyi denedi, ya da APPCMD_CLIENTONLY olarak başlatılmış bir uygulama sunucu hareketi gerçekleştirmeyi denedi.PostMessage işlevine içsel çağrı yapılamadı.DDEML içsel hatası.DDEML işlevine geçersiz hareket kimliği gönderilmiş. Uygulama XTYP_XACT_COMPLETE çağrısından döndüğünde bu çağrının hareket kimliği geçersiz olacak.bunun çok parçalı birleştirilmiş bir zip olduğu varsayılıyor'%s' değişmez anahtarını değiştirme denemesi yok sayıldı.kitaplık işlevi için hatalı değişkenlerkötü imzakayıt için hatalı zip dosyası konumuikilikoyuarabellek Windows klasörü için çok küçük.yapım %lu'%s' dosyası kapatılamıyor%d dosya tanımlayıcısı kapatılamıyor'%s' dosyasındaki değişiklikler işlenemiyor'%s' dosyası oluşturulamıyorkullanıcı yapılandırma dosyası '%s' silinemiyor%d tanımlayıcısı üstündeki dosyanın sonuna ulaşılıp ulaşılamadığı belirlenemiyor'%s' çalıştırılamadızip içinde merkez klasör bulunamıyor%d tanımlayıcısı üstündeki dosyanın uzunluğu bulunamıyorkullanıcının klasörü bulunamadığından geçerli klasör kullanılıyor.%d dosya tanımlayıcısı temizlenemiyor%d dosya tanımlayıcısı üstündeki arama konumu alınamıyorhiç bir yazı tipi yüklenemedi, vazgeçiliyor'%s' dosyası açılamıyor'%s' genel ayar dosyası açılamıyor'%s' kullanıcı ayar dosyası açılamıyorkullanıcı ayar dosyası açılamıyor.zlib ayıklama akışı yeniden başlatılamadızlib sıkıştırma akışı yeniden başlatılamadı%d dosya tanımlayıcısından okunamıyor'%s' dosyası silinemedi'%s' geçici dosyası silinemedi%d dosya tanımlayıcısı üzerinde arama yapılamıyor'%s' arabelleği diske yazılamadı.%d dosya tanımlayıcısına yazılamıyorkullanıcı ayar dosyası yazılamadı.sağlama toplamı hatasıtar başlık bloğu okunurken sağlama toplamı hatasıcmsıkıştırma hatası8-bit kodlama dönüşümü yapılamadıctrltarihayıklama hatasıvarsayılançiftişlem durum dökümü (ikili)onsekizincisekizincionbirinci'%s' kaydı '%s' grubunda birden çok kez varveri biçimi hatası'%s' açma hatasıdosya açma hatasızip merkez klasörünü okuma hatasızip yerel başlığını okuma hatası'%s' zip kaydı yazma hatası: hatalı CRC ya da uzunluk'%s' dosyası temizlenemedionbeşincibeşincidosya '%s', satır %d: '%s' grup başlığından sonra yok sayıldı.dosya '%s', satır %d: '=' bekleniyor.dosya '%s', satır %d: anahtar '%s' ilk olarak %d satırında bulundu.dosya '%s', satır %d: '%s' değişmez anahtarı için değer yok sayıldı.dosya '%s': beklenmedik karakter %c, satır: %d.dosyalarbirinciyazı tipi boyutuondördüncüdördüncüayrıntılı günlük iletileri oluşturulsungörseltar başlık bloğu eksikhatalı olay işleyici dizgesi, nokta eksiktar kaydının boyutu hatalı verilmişek tar başlığında hatalı verigeçersiz ileti penceresi sonuç değerigeçersiz zip dosyasıyatıkaçık'%s' yerel ayarları seçilemiyor.gece yarısıondokuzuncudokuzuncuDDE bulunamadı hatası.hata yok%s içinde yazı tipi yok, içsel yazı tipi kullanılıyoradsızöğlennormaleklenmeditamsayınesnelerin XML Metin Düğümleri olamazbellek yetersizyüzdeişlem bağlamı tanımıpuntopikselhamctrlokuma hatasızip akışı okuma (kayıt %s): CRC hatalızip akışı okuma (kayıt %s): uzunluk hatalıyeniden giriş sorunu.ikinciarama hatasıonyedinciyedincishiftbu yardım iletisi görüntülensinonaltıncıaltıncıkullanılacak görüntü kipini belirleyin (ör. 640x480-16)kullanılacak temayı belirleyinstandart/dairestandart/daire-çerçevestandart/elmasstandart/karestandart/üçgenkayıtlı dosya uzunluğu Zip başlığında yokstrüstüçizilitar kaydı açık değilonuncuharekete yanıt DDE_FBUSY bayrak bitinin kaldırılmasına yol açtı.üçüncüonüçüncübugünyarın'%s' sonundaki ters eğik çizgi yok sayıldıçevirmenleryirmincionikincialtıçizili%d konumunda, '%s' içinde beklenmeyen " beklenmeyen dosya sonubilinmeyenbilinmeyen sınıf %sbilinmeyen hatabilinmeyen hata (hata kodu %08x).bilinmeyen arama başlangıcıbilinmeyen-%dadsızadsız%ddesteklemeyen Zip sıkıştırma yöntemi'%s' kataloğu '%s' üzerinden kullanılıyoryazma hatasıwxGetTimeOfDay başarısız.wxPrintout::GetPageInfo boş bir maxPage değeri veriyor.wxWidget denetim imleci bir veri görünüm imleci değilwxWidget denetimi başlatılamadı.wxWidgets '%s' için görünümü açamadı: çıkılıyor.wxWidgets görünümü açamadı. Çıkılıyor.xxxxdünzlib hatası %d~ginkgocadx-3.8.7/cadxcore/lang/tr/wxstd.po000066400000000000000000007313431314736454600205460ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # # Translators: # Kaya Zeren , 2013 msgid "" msgstr "" "Project-Id-Version: wxWidgets 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-01 19:04+0200\n" "PO-Revision-Date: 2013-10-04 19:58+0200\n" "Last-Translator: Kaya Zeren \n" "Language-Team: Turkish (Turkey) (http://www.transifex.com/projects/p/" "wxwidgets_unofficial/language/tr_TR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr_TR\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.5.7\n" #: ../src/common/debugrpt.cpp:591 msgid "" "\n" "Please send this report to the program maintainer, thank you!\n" msgstr "" "\n" "Lütfen bu raporu program geliştiricisine gönderin, teşekkürler!\n" #: ../src/richtext/richtextstyledlg.cpp:210 #: ../src/richtext/richtextstyledlg.cpp:222 msgid " " msgstr " " #: ../src/generic/dbgrptg.cpp:326 msgid " Thank you and we're sorry for the inconvenience!\n" msgstr " Teşekkürler, yaşadığınız sorundan dolayı özür dileriz!\n" #: ../src/common/prntbase.cpp:546 #, c-format msgid " (copy %d of %d)" msgstr "(kopya %d / %d)" #: ../src/common/log.cpp:425 #, c-format msgid " (error %ld: %s)" msgstr " (hata %ld: %s)" #: ../src/common/imagtiff.cpp:75 #, c-format msgid " (in module \"%s\")" msgstr " (\"%s\" modülünde)" #: ../src/common/docview.cpp:1624 msgid " - " msgstr " - " #: ../src/richtext/richtextprint.cpp:588 ../src/html/htmprint.cpp:704 msgid " Preview" msgstr "Önizleme" #: ../src/common/fontcmn.cpp:811 msgid " bold" msgstr " koyu" #: ../src/common/fontcmn.cpp:827 msgid " italic" msgstr " yatık" #: ../src/common/fontcmn.cpp:807 msgid " light" msgstr " açık" #: ../src/common/paper.cpp:118 msgid "#10 Envelope, 4 1/8 x 9 1/2 in" msgstr "#10 Zarf, 4 1/8 x 9 1/2 inç" #: ../src/common/paper.cpp:119 msgid "#11 Envelope, 4 1/2 x 10 3/8 in" msgstr "#11 Zarf, 4 1/2 x 10 3/8 inç" #: ../src/common/paper.cpp:120 msgid "#12 Envelope, 4 3/4 x 11 in" msgstr "#12 Zarf, 4 3/4 x 11 inç" #: ../src/common/paper.cpp:121 msgid "#14 Envelope, 5 x 11 1/2 in" msgstr "#14 Zarf, 5 x 11 1/2 inç" #: ../src/common/paper.cpp:117 msgid "#9 Envelope, 3 7/8 x 8 7/8 in" msgstr "#9 Zarf, 3 7/8 x 8 7/8 inç" #: ../src/html/helpwnd.cpp:1044 #, c-format msgid "%d of %lu" msgstr "%d / %lu" #: ../src/html/helpwnd.cpp:1681 ../src/html/helpwnd.cpp:1719 #, c-format msgid "%i of %i" msgstr "%i / %i" #: ../src/generic/filectrlg.cpp:315 #, c-format msgid "%ld byte" msgid_plural "%ld bytes" msgstr[0] "%ld bayt" #: ../src/html/helpwnd.cpp:1046 #, c-format msgid "%lu of %lu" msgstr "%lu / %lu" #: ../src/common/cmdline.cpp:1050 #, c-format msgid "%s (or %s)" msgstr "%s (ya da %s)" #: ../src/generic/logg.cpp:230 #, c-format msgid "%s Error" msgstr "%s Hata" #: ../src/generic/logg.cpp:242 #, c-format msgid "%s Information" msgstr "%s Bilgileri" #: ../src/generic/preferencesg.cpp:110 #, c-format msgid "%s Preferences" msgstr "%s Ayarları" #: ../src/generic/logg.cpp:234 #, c-format msgid "%s Warning" msgstr "%s Uyarı" #: ../src/common/tarstrm.cpp:1319 #, c-format msgid "%s did not fit the tar header for entry '%s'" msgstr "%s '%s' kaydının tar başlığına sığmadı" #: ../src/common/fldlgcmn.cpp:106 #, c-format msgid "%s files (%s)|%s" msgstr "%s dosya (%s)|%s" #: ../src/common/stockitem.cpp:139 ../src/html/helpfrm.cpp:142 #: ../src/html/helpfrm.cpp:144 msgid "&About" msgstr "H&akkında" #: ../src/common/stockitem.cpp:207 msgid "&Actual Size" msgstr "&Geçerli Boyut" #: ../src/richtext/richtextindentspage.cpp:262 msgid "&After a paragraph:" msgstr "P&aragraftan sonra:" #: ../src/richtext/richtextindentspage.cpp:128 #: ../src/richtext/richtextliststylepage.cpp:319 msgid "&Alignment" msgstr "Hiz&alama" #: ../src/common/stockitem.cpp:141 msgid "&Apply" msgstr "Uygul&ayın" #: ../src/richtext/richtextstyledlg.cpp:251 msgid "&Apply Style" msgstr "Stili Uygul&ayın" #: ../src/msw/mdi.cpp:175 msgid "&Arrange Icons" msgstr "Si&mgeleri Düzenleyin" #: ../src/common/stockitem.cpp:195 msgid "&Ascending" msgstr "&Artan" #: ../src/common/stockitem.cpp:142 msgid "&Back" msgstr "&Geri" #: ../src/richtext/richtextstylepage.cpp:113 msgid "&Based on:" msgstr "&Kaynak:" #: ../src/richtext/richtextindentspage.cpp:253 msgid "&Before a paragraph:" msgstr "&Paragraftan önce:" #: ../src/richtext/richtextfontpage.cpp:271 msgid "&Bg colour:" msgstr "&Artalan rengi:" #: ../src/common/stockitem.cpp:143 msgid "&Bold" msgstr "&Koyu" #: ../src/common/stockitem.cpp:144 msgid "&Bottom" msgstr "Al&t" #: ../src/richtext/richtextborderspage.cpp:359 #: ../src/richtext/richtextborderspage.cpp:503 #: ../src/richtext/richtextmarginspage.cpp:260 #: ../src/richtext/richtextmarginspage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:637 #: ../src/richtext/richtextsizepage.cpp:644 msgid "&Bottom:" msgstr "Al&t:" #: ../include/wx/richtext/richtextbuffer.h:3530 msgid "&Box" msgstr "&Kutu" #: ../src/richtext/richtextliststylepage.cpp:210 #: ../src/richtext/richtextbulletspage.cpp:159 msgid "&Bullet style:" msgstr "&Madde imi stili:" #: ../src/common/stockitem.cpp:146 msgid "&CD-Rom" msgstr "&CD-Rom" #: ../src/generic/wizard.cpp:432 ../src/generic/fontdlgg.cpp:470 #: ../src/generic/fontdlgg.cpp:489 ../src/osx/carbon/fontdlg.cpp:588 #: ../src/common/stockitem.cpp:145 msgid "&Cancel" msgstr "İ&ptal" #: ../src/msw/mdi.cpp:171 msgid "&Cascade" msgstr "Ardarda &dizin" #: ../include/wx/richtext/richtextbuffer.h:5587 msgid "&Cell" msgstr "&Hücre" #: ../src/richtext/richtextsymboldlg.cpp:439 msgid "&Character code:" msgstr "&Karakter kodu:" #: ../src/common/stockitem.cpp:147 msgid "&Clear" msgstr "T&emizleyin" #: ../src/generic/logg.cpp:522 ../src/common/stockitem.cpp:148 #: ../src/common/prntbase.cpp:1570 ../src/univ/themes/win32.cpp:3756 #: ../src/html/helpfrm.cpp:139 msgid "&Close" msgstr "&Kapatın" #: ../src/common/stockitem.cpp:193 msgid "&Color" msgstr "&Renk" #: ../src/richtext/richtextfontpage.cpp:258 msgid "&Colour:" msgstr "&Renk:" #: ../src/common/stockitem.cpp:149 msgid "&Convert" msgstr "&Dönüştürün" #: ../src/richtext/richtextctrl.cpp:326 ../src/osx/textctrl_osx.cpp:583 #: ../src/common/stockitem.cpp:150 ../src/msw/textctrl.cpp:2284 msgid "&Copy" msgstr "K&opyalayın" #: ../src/generic/hyperlinkg.cpp:156 msgid "&Copy URL" msgstr "İnternet Adresini K&opyalayın" #: ../src/common/headerctrlcmn.cpp:328 msgid "&Customize..." msgstr "Ö&zelleştirin..." #: ../src/generic/dbgrptg.cpp:334 msgid "&Debug report preview:" msgstr "&Hata ayıklama raporu ön izlemesi:" #: ../src/richtext/richtexttabspage.cpp:142 #: ../src/richtext/richtextctrl.cpp:328 ../src/osx/textctrl_osx.cpp:585 #: ../src/common/stockitem.cpp:152 ../src/msw/textctrl.cpp:2286 msgid "&Delete" msgstr "&Silin" #: ../src/richtext/richtextstyledlg.cpp:269 msgid "&Delete Style..." msgstr "&Stili silin..." #: ../src/common/stockitem.cpp:196 msgid "&Descending" msgstr "A&zalan" #: ../src/generic/logg.cpp:688 msgid "&Details" msgstr "&Ayrıntılar" #: ../src/common/stockitem.cpp:153 msgid "&Down" msgstr "&Aşağı" #: ../src/common/stockitem.cpp:154 msgid "&Edit" msgstr "Dü&zenleyin" #: ../src/richtext/richtextstyledlg.cpp:263 msgid "&Edit Style..." msgstr "Stili Düz&enleyin..." #: ../src/common/stockitem.cpp:155 msgid "&Execute" msgstr "&Yürütün" #: ../src/common/stockitem.cpp:157 ../src/html/helpfrm.cpp:146 msgid "&File" msgstr "&Dosya" #: ../src/common/stockitem.cpp:158 msgid "&Find" msgstr "B&ulun" #: ../src/generic/wizard.cpp:626 msgid "&Finish" msgstr "&Bitti" #: ../src/common/stockitem.cpp:159 msgid "&First" msgstr "İ&lk" #: ../src/richtext/richtextsizepage.cpp:244 msgid "&Floating mode:" msgstr "&Yüzer kip:" #: ../src/common/stockitem.cpp:160 msgid "&Floppy" msgstr "&Esnek" #: ../src/common/stockitem.cpp:194 msgid "&Font" msgstr "&Yazı tipi" #: ../src/generic/fontdlgg.cpp:371 msgid "&Font family:" msgstr "&Yazı tipi ailesi:" #: ../src/richtext/richtextliststylepage.cpp:194 msgid "&Font for Level..." msgstr "&Düzeyin yazıtipi..." #: ../src/richtext/richtextfontpage.cpp:156 #: ../src/richtext/richtextsymboldlg.cpp:400 msgid "&Font:" msgstr "&Yazı tipi:" #: ../src/common/stockitem.cpp:161 msgid "&Forward" msgstr "İ&leri" #: ../src/richtext/richtextsymboldlg.cpp:451 msgid "&From:" msgstr "&Kaynak:" #: ../src/common/stockitem.cpp:162 msgid "&Harddisk" msgstr "&Sabit disk" #: ../src/richtext/richtextsizepage.cpp:351 #: ../src/richtext/richtextsizepage.cpp:358 msgid "&Height:" msgstr "&Yükseklik:" #: ../src/generic/wizard.cpp:435 ../src/richtext/richtextstyledlg.cpp:303 #: ../src/richtext/richtextsymboldlg.cpp:479 ../src/osx/menu_osx.cpp:785 #: ../src/common/stockitem.cpp:163 ../src/html/helpfrm.cpp:147 msgid "&Help" msgstr "&Yardım" #: ../include/wx/richmsgdlg.h:30 msgid "&Hide details" msgstr "Ayrıntıları &gizleyin" #: ../src/common/stockitem.cpp:164 msgid "&Home" msgstr "&Açılış" #: ../src/richtext/richtextindentspage.cpp:184 #: ../src/richtext/richtextliststylepage.cpp:372 msgid "&Indentation (tenths of a mm)" msgstr "İçe&rlek (1/10mm ölçeğinde)" #: ../src/richtext/richtextindentspage.cpp:167 #: ../src/richtext/richtextliststylepage.cpp:356 msgid "&Indeterminate" msgstr "&Belirsiz" #: ../src/common/stockitem.cpp:166 msgid "&Index" msgstr "D&izin" #: ../src/common/stockitem.cpp:167 msgid "&Info" msgstr "&Bilgiler" #: ../src/common/stockitem.cpp:168 msgid "&Italic" msgstr "&Yatık" #: ../src/common/stockitem.cpp:169 msgid "&Jump to" msgstr "A&tlayın" #: ../src/richtext/richtextindentspage.cpp:153 #: ../src/richtext/richtextliststylepage.cpp:342 msgid "&Justified" msgstr "&Hizalanmış" #: ../src/common/stockitem.cpp:174 msgid "&Last" msgstr "&Son" #: ../src/richtext/richtextindentspage.cpp:139 #: ../src/richtext/richtextliststylepage.cpp:328 msgid "&Left" msgstr "So&l" #: ../src/richtext/richtextindentspage.cpp:195 #: ../src/richtext/richtextborderspage.cpp:269 #: ../src/richtext/richtextborderspage.cpp:413 #: ../src/richtext/richtextliststylepage.cpp:381 #: ../src/richtext/richtextmarginspage.cpp:187 #: ../src/richtext/richtextmarginspage.cpp:301 #: ../src/richtext/richtextsizepage.cpp:532 #: ../src/richtext/richtextsizepage.cpp:539 msgid "&Left:" msgstr "So&l:" #: ../src/richtext/richtextliststylepage.cpp:183 msgid "&List level:" msgstr "&Liste düzeyi:" #: ../src/generic/logg.cpp:523 msgid "&Log" msgstr "Gün&lük" #: ../src/univ/themes/win32.cpp:3748 msgid "&Move" msgstr "&Taşıyın" #: ../src/richtext/richtextsizepage.cpp:672 msgid "&Move the object to:" msgstr "&Nesneyi şuraya taşıyın:" #: ../src/common/stockitem.cpp:175 msgid "&Network" msgstr "&Ağ" #: ../src/richtext/richtexttabspage.cpp:136 ../src/common/stockitem.cpp:176 msgid "&New" msgstr "Ye&ni" #: ../src/aui/tabmdi.cpp:111 ../src/generic/mdig.cpp:100 #: ../src/msw/mdi.cpp:176 msgid "&Next" msgstr "So&nraki" #: ../src/generic/wizard.cpp:431 ../src/generic/wizard.cpp:626 msgid "&Next >" msgstr "So&nraki >" #: ../src/richtext/richtextsizepage.cpp:681 msgid "&Next Paragraph" msgstr "So&nraki Paragraf" #: ../src/generic/tipdlg.cpp:276 msgid "&Next Tip" msgstr "So&nraki İpucu" #: ../src/richtext/richtextstylepage.cpp:123 msgid "&Next style:" msgstr "So&nraki stil:" #: ../src/common/stockitem.cpp:177 ../src/msw/msgdlg.cpp:476 msgid "&No" msgstr "&Hayır" #: ../src/generic/dbgrptg.cpp:356 msgid "&Notes:" msgstr "&Notlar:" #: ../src/richtext/richtextbulletspage.cpp:264 msgid "&Number:" msgstr "&Sayı:" #: ../src/generic/fontdlgg.cpp:475 ../src/generic/fontdlgg.cpp:482 #: ../src/osx/carbon/fontdlg.cpp:594 ../src/common/stockitem.cpp:178 msgid "&OK" msgstr "&Tamam" #: ../src/generic/dbgrptg.cpp:342 ../src/common/stockitem.cpp:179 #: ../src/html/helpfrm.cpp:137 msgid "&Open..." msgstr "&Açın..." #: ../src/richtext/richtextindentspage.cpp:222 msgid "&Outline level:" msgstr "Başlık &düzeyi:" #: ../src/richtext/richtextindentspage.cpp:293 msgid "&Page Break" msgstr "&Sayfa Sonu" #: ../src/richtext/richtextctrl.cpp:327 ../src/osx/textctrl_osx.cpp:584 #: ../src/common/stockitem.cpp:180 ../src/msw/textctrl.cpp:2285 msgid "&Paste" msgstr "Ya&pıştırın" #: ../include/wx/richtext/richtextbuffer.h:4655 msgid "&Picture" msgstr "&Resim" #: ../src/generic/fontdlgg.cpp:422 msgid "&Point size:" msgstr "Yazı &boyutu:" #: ../src/richtext/richtexttabspage.cpp:114 msgid "&Position (tenths of a mm):" msgstr "&Konum (1/10mm):" #: ../src/richtext/richtextsizepage.cpp:514 msgid "&Position mode:" msgstr "&Konum kipi:" #: ../src/common/stockitem.cpp:181 msgid "&Preferences" msgstr "&Ayarlar" #: ../src/aui/tabmdi.cpp:112 ../src/generic/mdig.cpp:101 #: ../src/msw/mdi.cpp:177 msgid "&Previous" msgstr "Ö&nceki" #: ../src/richtext/richtextsizepage.cpp:675 msgid "&Previous Paragraph" msgstr "Önceki &Paragraf" #: ../src/common/stockitem.cpp:183 msgid "&Print..." msgstr "&Yazdırın..." #: ../src/richtext/richtextctrl.cpp:332 ../src/richtext/richtextctrl.cpp:4945 #: ../src/common/stockitem.cpp:184 msgid "&Properties" msgstr "Ö&zellikler" #: ../src/common/stockitem.cpp:156 msgid "&Quit" msgstr "Çı&kış" #: ../src/richtext/richtextctrl.cpp:323 ../src/osx/textctrl_osx.cpp:580 #: ../src/common/stockitem.cpp:185 ../src/common/cmdproc.cpp:293 #: ../src/common/cmdproc.cpp:300 ../src/msw/textctrl.cpp:2281 msgid "&Redo" msgstr "&Yineleyin" #: ../src/common/cmdproc.cpp:289 ../src/common/cmdproc.cpp:309 msgid "&Redo " msgstr "&Yineleyin" #: ../src/richtext/richtextstyledlg.cpp:257 msgid "&Rename Style..." msgstr "Stili ¥iden adlandırın..." #: ../src/generic/fdrepdlg.cpp:179 msgid "&Replace" msgstr "&Değiştirin" #: ../src/richtext/richtextstyledlg.cpp:287 msgid "&Restart numbering" msgstr "Numa&ralandırmayı yeniden başlatın" #: ../src/univ/themes/win32.cpp:3747 msgid "&Restore" msgstr "Ge&ri yükleyin" #: ../src/richtext/richtextindentspage.cpp:146 #: ../src/richtext/richtextliststylepage.cpp:335 msgid "&Right" msgstr "&Sağ" #: ../src/richtext/richtextindentspage.cpp:213 #: ../src/richtext/richtextborderspage.cpp:299 #: ../src/richtext/richtextborderspage.cpp:443 #: ../src/richtext/richtextliststylepage.cpp:399 #: ../src/richtext/richtextmarginspage.cpp:212 #: ../src/richtext/richtextmarginspage.cpp:326 #: ../src/richtext/richtextsizepage.cpp:602 #: ../src/richtext/richtextsizepage.cpp:609 msgid "&Right:" msgstr "&Sağ:" #: ../src/common/stockitem.cpp:190 msgid "&Save" msgstr "Kay&dedin" #: ../src/common/stockitem.cpp:191 msgid "&Save as" msgstr "&Farklı kaydedin" #: ../include/wx/richmsgdlg.h:29 msgid "&See details" msgstr "&Ayrıntılar" #: ../src/generic/tipdlg.cpp:270 msgid "&Show tips at startup" msgstr "İpuçları &başlangıçta görüntülensin" #: ../src/univ/themes/win32.cpp:3750 msgid "&Size" msgstr "&Boyut" #: ../src/richtext/richtextfontpage.cpp:168 msgid "&Size:" msgstr "&Boyut:" #: ../src/generic/progdlgg.cpp:282 msgid "&Skip" msgstr "A&tlayın" #: ../src/richtext/richtextindentspage.cpp:242 #: ../src/richtext/richtextliststylepage.cpp:417 msgid "&Spacing (tenths of a mm)" msgstr "&Boşluk (1/10mm)" #: ../src/common/stockitem.cpp:197 msgid "&Spell Check" msgstr "&Yazım Denetimi" #: ../src/common/stockitem.cpp:198 msgid "&Stop" msgstr "&Durdurun" #: ../src/richtext/richtextfontpage.cpp:284 ../src/common/stockitem.cpp:199 msgid "&Strikethrough" msgstr "Ü&stü çizili" #: ../src/generic/fontdlgg.cpp:382 ../src/richtext/richtextstylepage.cpp:104 msgid "&Style:" msgstr "&Stil:" #: ../src/richtext/richtextstyledlg.cpp:198 msgid "&Styles:" msgstr "&Stiller:" #: ../src/richtext/richtextsymboldlg.cpp:413 msgid "&Subset:" msgstr "A< küme:" #: ../src/richtext/richtextliststylepage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:222 msgid "&Symbol:" msgstr "&Simge:" #: ../include/wx/richtext/richtextbuffer.h:5679 msgid "&Table" msgstr "&Tablo" #: ../src/common/stockitem.cpp:200 msgid "&Top" msgstr "Üs&t" #: ../src/richtext/richtextborderspage.cpp:329 #: ../src/richtext/richtextborderspage.cpp:473 #: ../src/richtext/richtextmarginspage.cpp:235 #: ../src/richtext/richtextmarginspage.cpp:349 #: ../src/richtext/richtextsizepage.cpp:567 #: ../src/richtext/richtextsizepage.cpp:574 msgid "&Top:" msgstr "Üs&t:" #: ../src/generic/fontdlgg.cpp:444 ../src/common/stockitem.cpp:202 msgid "&Underline" msgstr "&Altı çizili" #: ../src/richtext/richtextfontpage.cpp:243 msgid "&Underlining:" msgstr "&Altını çizme:" #: ../src/richtext/richtextctrl.cpp:322 ../src/osx/textctrl_osx.cpp:579 #: ../src/common/stockitem.cpp:203 ../src/common/cmdproc.cpp:271 #: ../src/msw/textctrl.cpp:2280 msgid "&Undo" msgstr "&Geri Alın" #: ../src/common/cmdproc.cpp:265 msgid "&Undo " msgstr "&Geri Alın" #: ../src/common/stockitem.cpp:204 msgid "&Unindent" msgstr "İçerleği &geri alın" #: ../src/common/stockitem.cpp:205 msgid "&Up" msgstr "Y&ukarı" #: ../src/richtext/richtextsizepage.cpp:278 msgid "&Vertical alignment:" msgstr "&Dikey hizalama:" #: ../src/generic/dbgrptg.cpp:340 msgid "&View..." msgstr "&Görünüm..." #: ../src/generic/fontdlgg.cpp:393 msgid "&Weight:" msgstr "&Yoğunluk:" #: ../src/richtext/richtextsizepage.cpp:317 #: ../src/richtext/richtextsizepage.cpp:324 msgid "&Width:" msgstr "&Genişlik:" #: ../src/aui/tabmdi.cpp:311 ../src/aui/tabmdi.cpp:327 #: ../src/aui/tabmdi.cpp:329 ../src/generic/mdig.cpp:294 #: ../src/generic/mdig.cpp:310 ../src/generic/mdig.cpp:314 #: ../src/msw/mdi.cpp:77 msgid "&Window" msgstr "&Pencere" #: ../src/common/stockitem.cpp:206 ../src/msw/msgdlg.cpp:476 msgid "&Yes" msgstr "&Evet" #: ../src/common/config.cpp:523 ../src/msw/regconf.cpp:258 #, c-format msgid "'%s' has extra '..', ignored." msgstr "'%s' içindeki fazladan '..' yoksayıldı." #: ../src/common/valtext.cpp:249 ../src/common/valtext.cpp:251 #: ../src/common/valtext.cpp:253 ../src/common/valtext.cpp:255 #, c-format msgid "'%s' is invalid" msgstr "'%s' geçersiz" #: ../src/common/cmdline.cpp:948 ../src/common/cmdline.cpp:966 #, c-format msgid "'%s' is not a correct numeric value for option '%s'." msgstr "'%s' '%s' seçeneği için doğru bir sayısal değer değil." #: ../src/common/translation.cpp:1086 #, c-format msgid "'%s' is not a valid message catalog." msgstr "'%s' geçerli bir ileti kataloğu değil." #: ../src/common/textbuf.cpp:239 #, c-format msgid "'%s' is probably a binary buffer." msgstr "'%s' muhtemelen ikili ara bellek." #: ../src/common/valtext.cpp:247 #, c-format msgid "'%s' should be numeric." msgstr "'%s' sayısal olmalı." #: ../src/common/valtext.cpp:239 #, c-format msgid "'%s' should only contain ASCII characters." msgstr "'%s' yalnız ASCII karakterler içermeli." #: ../src/common/valtext.cpp:241 #, c-format msgid "'%s' should only contain alphabetic characters." msgstr "'%s' yalnız alfabetik karakterler içermeli." #: ../src/common/valtext.cpp:243 #, c-format msgid "'%s' should only contain alphabetic or numeric characters." msgstr "'%s' yalnız alfabetik ya da sayısal karakterler içermeli." #: ../src/common/valtext.cpp:245 #, c-format msgid "'%s' should only contain digits." msgstr "'%s' yalnız rakamlar içermeli." #: ../src/richtext/richtextliststylepage.cpp:229 #: ../src/richtext/richtextbulletspage.cpp:179 msgid "(*)" msgstr "(*)" #: ../src/html/helpwnd.cpp:976 msgid "(Help)" msgstr "(Yardım)" #: ../src/richtext/richtextliststylepage.cpp:481 #: ../src/richtext/richtextbulletspage.cpp:286 msgid "(None)" msgstr "(Hiçbiri)" #: ../src/richtext/richtextsymboldlg.cpp:504 msgid "(Normal text)" msgstr "(Normal metin)" #: ../src/html/helpwnd.cpp:426 ../src/html/helpwnd.cpp:1119 #: ../src/html/helpwnd.cpp:1745 msgid "(bookmarks)" msgstr "(yer imleri)" #: ../src/richtext/richtextindentspage.cpp:274 #: ../src/richtext/richtextindentspage.cpp:286 #: ../src/richtext/richtextindentspage.cpp:287 #: ../src/richtext/richtextindentspage.cpp:311 #: ../src/richtext/richtextindentspage.cpp:326 #: ../src/richtext/richtextformatdlg.cpp:831 #: ../src/richtext/richtextfontpage.cpp:331 #: ../src/richtext/richtextfontpage.cpp:335 #: ../src/richtext/richtextfontpage.cpp:339 #: ../src/richtext/richtextliststylepage.cpp:448 #: ../src/richtext/richtextliststylepage.cpp:460 #: ../src/richtext/richtextliststylepage.cpp:461 msgid "(none)" msgstr "(hiçbiri)" #: ../src/richtext/richtextliststylepage.cpp:492 #: ../src/richtext/richtextbulletspage.cpp:297 msgid "*" msgstr "*" #: ../src/richtext/richtextliststylepage.cpp:236 #: ../src/richtext/richtextbulletspage.cpp:186 msgid "*)" msgstr "*)" #: ../src/richtext/richtextliststylepage.cpp:495 #: ../src/richtext/richtextbulletspage.cpp:300 msgid "+" msgstr "+" #: ../src/msw/utils.cpp:1324 msgid ", 64-bit edition" msgstr ", 64-bit sürümü" #: ../src/richtext/richtextliststylepage.cpp:493 #: ../src/richtext/richtextbulletspage.cpp:298 msgid "-" msgstr "-" #: ../src/generic/filepickerg.cpp:66 msgid "..." msgstr "..." #: ../src/richtext/richtextindentspage.cpp:276 #: ../src/richtext/richtextliststylepage.cpp:450 msgid "1.1" msgstr "1.1" #: ../src/richtext/richtextindentspage.cpp:277 #: ../src/richtext/richtextliststylepage.cpp:451 msgid "1.2" msgstr "1.2" #: ../src/richtext/richtextindentspage.cpp:278 #: ../src/richtext/richtextliststylepage.cpp:452 msgid "1.3" msgstr "1.3" #: ../src/richtext/richtextindentspage.cpp:279 #: ../src/richtext/richtextliststylepage.cpp:453 msgid "1.4" msgstr "1.4" #: ../src/richtext/richtextindentspage.cpp:280 #: ../src/richtext/richtextliststylepage.cpp:454 msgid "1.5" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:455 msgid "1.6" msgstr "1.6" #: ../src/richtext/richtextindentspage.cpp:282 #: ../src/richtext/richtextliststylepage.cpp:456 msgid "1.7" msgstr "1.7" #: ../src/richtext/richtextindentspage.cpp:283 #: ../src/richtext/richtextliststylepage.cpp:457 msgid "1.8" msgstr "1.8" #: ../src/richtext/richtextindentspage.cpp:284 #: ../src/richtext/richtextliststylepage.cpp:458 msgid "1.9" msgstr "1.9" #: ../src/common/paper.cpp:141 msgid "10 x 11 in" msgstr "10 x 11 inç" #: ../src/common/paper.cpp:114 msgid "10 x 14 in" msgstr "10 x 14 inç" #: ../src/common/paper.cpp:115 msgid "11 x 17 in" msgstr "11 x 17 inç" #: ../src/common/paper.cpp:185 msgid "12 x 11 in" msgstr "12 x 11 inç" #: ../src/common/paper.cpp:142 msgid "15 x 11 in" msgstr "15 x 11 inç" #: ../src/richtext/richtextindentspage.cpp:285 #: ../src/richtext/richtextliststylepage.cpp:459 msgid "2" msgstr "2" #: ../src/common/paper.cpp:133 msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in" msgstr "6 3/4 Zarf, 3 5/8 x 6 1/2 inç" #: ../src/common/paper.cpp:140 msgid "9 x 11 in" msgstr "9 x 11 inç" #: ../src/html/htmprint.cpp:431 msgid ": file does not exist!" msgstr ": dosya bulunamadı!" #: ../src/common/fontmap.cpp:199 msgid ": unknown charset" msgstr ": bilinmeyen karakter kümesi" #: ../src/common/fontmap.cpp:413 msgid ": unknown encoding" msgstr ": bilinmeyen kodlama" #: ../src/generic/wizard.cpp:437 msgid "< &Back" msgstr "< &Geri" #: ../src/osx/carbon/fontdlg.cpp:608 ../src/osx/carbon/fontdlg.cpp:815 #: ../src/osx/carbon/fontdlg.cpp:835 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:609 ../src/osx/carbon/fontdlg.cpp:817 #: ../src/osx/carbon/fontdlg.cpp:837 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:607 ../src/osx/carbon/fontdlg.cpp:813 #: ../src/osx/carbon/fontdlg.cpp:833 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:610 ../src/osx/carbon/fontdlg.cpp:819 #: ../src/osx/carbon/fontdlg.cpp:839 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:611 ../src/osx/carbon/fontdlg.cpp:824 #: ../src/osx/carbon/fontdlg.cpp:843 msgid "" msgstr "<İsveç>" #: ../src/osx/carbon/fontdlg.cpp:612 ../src/osx/carbon/fontdlg.cpp:821 #: ../src/osx/carbon/fontdlg.cpp:841 msgid "" msgstr "" #: ../src/osx/carbon/fontdlg.cpp:606 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:286 ../src/generic/filectrlg.cpp:309 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:290 ../src/generic/filectrlg.cpp:313 msgid "" msgstr "" #: ../src/generic/filectrlg.cpp:288 ../src/generic/filectrlg.cpp:311 msgid "" msgstr "" #: ../src/html/helpwnd.cpp:1279 msgid "Bold italic face.
    " msgstr "Koyu yatık şekil.
    " #: ../src/html/helpwnd.cpp:1283 msgid "bold italic underlined
    " msgstr "koyu yatık altçizgili
    " #: ../src/html/helpwnd.cpp:1278 msgid "Bold face. " msgstr "Koyu şekil. " #: ../src/html/helpwnd.cpp:1277 msgid "Italic face. " msgstr "Yatık şekil. " #: ../src/richtext/richtextliststylepage.cpp:494 #: ../src/richtext/richtextbulletspage.cpp:299 msgid ">" msgstr ">" #: ../src/generic/dbgrptg.cpp:318 msgid "A debug report has been generated in the directory\n" msgstr "Klasörde bir hata ayıklama raporu oluşturuldu\n" #: ../src/common/debugrpt.cpp:578 msgid "A debug report has been generated. It can be found in" msgstr "Hata ayıklama raporu oluşturuldu. Şurada bulabilirsiniz:" #: ../src/common/xtixml.cpp:418 msgid "A non empty collection must consist of 'element' nodes" msgstr "Boş olmayan bir yığın 'element' düğümlerinden oluşmalıdır" #: ../src/richtext/richtextliststylepage.cpp:304 #: ../src/richtext/richtextliststylepage.cpp:306 #: ../src/richtext/richtextbulletspage.cpp:257 #: ../src/richtext/richtextbulletspage.cpp:259 msgid "A standard bullet name." msgstr "Standart bir madde imi adı." #: ../src/common/paper.cpp:218 msgid "A0 sheet, 841 x 1189 mm" msgstr "A0 sayfa, 841 x 1189 mm" #: ../src/common/paper.cpp:219 msgid "A1 sheet, 594 x 841 mm" msgstr "A1 sayfa, 594 x 841 mm" #: ../src/common/paper.cpp:160 msgid "A2 420 x 594 mm" msgstr "A2 420 x 594 mm" #: ../src/common/paper.cpp:157 msgid "A3 Extra 322 x 445 mm" msgstr "A3 Ekstra 322 x 445 mm" #: ../src/common/paper.cpp:162 msgid "A3 Extra Transverse 322 x 445 mm" msgstr "A3 Ekstra Enine 322 x 445 mm" #: ../src/common/paper.cpp:171 msgid "A3 Rotated 420 x 297 mm" msgstr "A3 Çevrilmiş 420 x 297 mm" #: ../src/common/paper.cpp:161 msgid "A3 Transverse 297 x 420 mm" msgstr "A3 Enine 297 x 420 mm" #: ../src/common/paper.cpp:107 msgid "A3 sheet, 297 x 420 mm" msgstr "A3 sayfa, 297 x 420 mm" #: ../src/common/paper.cpp:147 msgid "A4 Extra 9.27 x 12.69 in" msgstr "A4 Ekstra 9.27 x 12.69 inç" #: ../src/common/paper.cpp:154 msgid "A4 Plus 210 x 330 mm" msgstr "A4 Artı 210 x 330 mm" #: ../src/common/paper.cpp:172 msgid "A4 Rotated 297 x 210 mm" msgstr "A4 Çevrilmiş 297 x 210 mm" #: ../src/common/paper.cpp:149 msgid "A4 Transverse 210 x 297 mm" msgstr "A4 Enine 210 x 297 mm" #: ../src/common/paper.cpp:98 msgid "A4 sheet, 210 x 297 mm" msgstr "A4 sayfa, 210 x 297 mm" #: ../src/common/paper.cpp:108 msgid "A4 small sheet, 210 x 297 mm" msgstr "A4 küçük sayfa, 210 x 297 mm" #: ../src/common/paper.cpp:158 msgid "A5 Extra 174 x 235 mm" msgstr "A5 Ekstra 174 x 235 mm" #: ../src/common/paper.cpp:173 msgid "A5 Rotated 210 x 148 mm" msgstr "A5 Çevrilmiş 210 x 148 mm" #: ../src/common/paper.cpp:155 msgid "A5 Transverse 148 x 210 mm" msgstr "A5 Enine 148 x 210 mm" #: ../src/common/paper.cpp:109 msgid "A5 sheet, 148 x 210 mm" msgstr "A5 sayfa, 148 x 210 mm" #: ../src/common/paper.cpp:165 msgid "A6 105 x 148 mm" msgstr "A6 105 x 148 mm" #: ../src/common/paper.cpp:178 msgid "A6 Rotated 148 x 105 mm" msgstr "A6 Çevrilmiş 148 x 105 mm" #: ../src/generic/fontdlgg.cpp:83 ../src/richtext/richtextformatdlg.cpp:526 #: ../src/osx/carbon/fontdlg.cpp:339 msgid "ABCDEFGabcdefg12345" msgstr "ABCDEFGabcdefg12345" #: ../src/common/accelcmn.cpp:76 msgid "ADD" msgstr "ADD" #: ../src/richtext/richtextsymboldlg.cpp:458 ../src/common/ftp.cpp:405 msgid "ASCII" msgstr "ASCII" #: ../src/osx/menu_osx.cpp:630 ../src/common/stockitem.cpp:139 msgid "About" msgstr "Hakkında" #: ../src/generic/aboutdlgg.cpp:140 ../src/msw/aboutdlg.cpp:64 #, c-format msgid "About %s" msgstr "%s Hakkında " #: ../src/richtext/richtextsizepage.cpp:520 msgid "Absolute" msgstr "Mutlak" #: ../src/common/stockitem.cpp:207 msgid "Actual Size" msgstr "Geçerli Boyut" #: ../src/common/stockitem.cpp:140 msgid "Add" msgstr "Ekleyin" #: ../src/richtext/richtextbuffer.cpp:10751 msgid "Add Column" msgstr "Sütun Ekleyin" #: ../src/richtext/richtextbuffer.cpp:10688 msgid "Add Row" msgstr "Satır Ekleyin" #: ../src/html/helpwnd.cpp:439 msgid "Add current page to bookmarks" msgstr "Geçerli sayfayı yer imlerine ekleyin" #: ../src/generic/colrdlgg.cpp:283 msgid "Add to custom colours" msgstr "Özel renklere ekleyin" #: ../include/wx/xtiprop.h:259 msgid "AddToPropertyCollection called on a generic accessor" msgstr "AddToPropertyCollection işlevi, genel bir erişici üzerinden çağrıldı" #: ../include/wx/xtiprop.h:197 msgid "AddToPropertyCollection called w/o valid adder" msgstr "AddToPropertyCollection işlevi, geçerli bir ekleyici olmadançağrıldı" #: ../src/html/helpctrl.cpp:159 #, c-format msgid "Adding book %s" msgstr "%s kitabı ekleniyor" #: ../src/osx/carbon/dataview.cpp:1933 msgid "Adding flavor TEXT failed" msgstr "TEXT niteliği eklenemedi" #: ../src/osx/carbon/dataview.cpp:1954 msgid "Adding flavor utxt failed" msgstr "utxt niteliği eklenemedi" #: ../src/common/preferencescmn.cpp:41 msgid "Advanced" msgstr "Gelişmiş" #: ../src/richtext/richtextliststylepage.cpp:435 msgid "After a paragraph:" msgstr "Paragraftan sonra:" #: ../src/common/stockitem.cpp:172 msgid "Align Left" msgstr "Sola Yaslansın" #: ../src/common/stockitem.cpp:173 msgid "Align Right" msgstr "Sağa Yaslansın" #: ../src/richtext/richtextsizepage.cpp:266 msgid "Alignment" msgstr "Hizalama" #: ../src/generic/prntdlgg.cpp:215 msgid "All" msgstr "Tümü" #: ../src/generic/filectrlg.cpp:1205 ../src/common/fldlgcmn.cpp:89 #, c-format msgid "All files (%s)|%s" msgstr "Tüm dosyalar (%s)|%s" #: ../include/wx/defs.h:2922 msgid "All files (*)|*" msgstr "Tüm dosyalar (*)|*" #: ../include/wx/defs.h:2919 msgid "All files (*.*)|*.*" msgstr "Tüm dosyalar (*.*)|*.*" #: ../src/richtext/richtextstyles.cpp:1057 msgid "All styles" msgstr "Tüm stiller" #: ../src/propgrid/manager.cpp:1496 msgid "Alphabetic Mode" msgstr "Alfabetik Kip" #: ../src/common/xtistrm.cpp:429 msgid "Already Registered Object passed to SetObjectClassInfo" msgstr "SetObjectClassInfo işlevi zaten kaydedilmiş bir nesne ile çağrıldı" #: ../src/unix/dialup.cpp:353 msgid "Already dialling ISP." msgstr "ISP zaten aranıyor." #: ../src/common/accelcmn.cpp:320 ../src/univ/themes/win32.cpp:3756 msgid "Alt+" msgstr "Alt+" #: ../src/common/debugrpt.cpp:581 msgid "And includes the following files:\n" msgstr "Ve aşağıdaki dosyaları içeriyor:\n" #: ../src/generic/animateg.cpp:162 #, c-format msgid "Animation file is not of type %ld." msgstr "Canlandırma dosyası %ld tipinde değil." #: ../src/generic/logg.cpp:1034 #, c-format msgid "Append log to file '%s' (choosing [No] will overwrite it)?" msgstr "'%s' günlük dosyasına eklensin ([Hayır] seçilirse üstüne yazılacak)." #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:610 #: ../src/osx/menu_osx.cpp:649 ../src/osx/menu_osx.cpp:657 msgid "Application" msgstr "Uygulama" #: ../src/common/stockitem.cpp:141 msgid "Apply" msgstr "Uygulayın" #: ../src/richtext/richtextliststylepage.cpp:482 #: ../src/richtext/richtextbulletspage.cpp:287 msgid "Arabic" msgstr "Arapça" #: ../src/common/fmapbase.cpp:153 msgid "Arabic (ISO-8859-6)" msgstr "Arapça (ISO-8859-6)" #: ../src/msw/ole/automtn.cpp:661 #, c-format msgid "Argument %u not found." msgstr "%u argümanı bulunamadı." #: ../src/generic/aboutdlgg.cpp:184 msgid "Artists" msgstr "Sanatçılar" #: ../src/common/stockitem.cpp:195 msgid "Ascending" msgstr "Artan" #: ../src/generic/filectrlg.cpp:468 msgid "Attributes" msgstr "Öznitelikler" #: ../src/richtext/richtextliststylepage.cpp:294 #: ../src/richtext/richtextbulletspage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:247 msgid "Available fonts." msgstr "Kullanılabilecek yazı tipleri." #: ../src/common/paper.cpp:138 msgid "B4 (ISO) 250 x 353 mm" msgstr "B4 (ISO) 250 x 353 mm" #: ../src/common/paper.cpp:174 msgid "B4 (JIS) Rotated 364 x 257 mm" msgstr "B4 (JIS) Çevrilmiş 364 x 257 mm" #: ../src/common/paper.cpp:128 msgid "B4 Envelope, 250 x 353 mm" msgstr "B4 Zarf, 250 x 353 mm" #: ../src/common/paper.cpp:110 msgid "B4 sheet, 250 x 354 mm" msgstr "B4 sayfa, 250 x 354 mm" #: ../src/common/paper.cpp:159 msgid "B5 (ISO) Extra 201 x 276 mm" msgstr "B5 (ISO) Ekstra 201 x 276 mm" #: ../src/common/paper.cpp:175 msgid "B5 (JIS) Rotated 257 x 182 mm" msgstr "B5 (JIS) Çevrilmiş 257 x 182 mm" #: ../src/common/paper.cpp:156 msgid "B5 (JIS) Transverse 182 x 257 mm" msgstr "B5 (JIS) Enine 182 x 257 mm" #: ../src/common/paper.cpp:129 msgid "B5 Envelope, 176 x 250 mm" msgstr "B5 Zarf, 176 x 250 mm" #: ../src/common/paper.cpp:111 msgid "B5 sheet, 182 x 257 millimeter" msgstr "B5 sayfa, 182 x 257 mm" #: ../src/common/paper.cpp:183 msgid "B6 (JIS) 128 x 182 mm" msgstr "B6 (JIS) 128 x 182 mm" #: ../src/common/paper.cpp:184 msgid "B6 (JIS) Rotated 182 x 128 mm" msgstr "B6 (JIS) Çevrilmiş 182 x 128 mm" #: ../src/common/paper.cpp:130 msgid "B6 Envelope, 176 x 125 mm" msgstr "B6 Zarf, 176 x 125 mm" #: ../src/common/accelcmn.cpp:49 msgid "BACK" msgstr "BACK" #: ../src/common/imagbmp.cpp:523 ../src/common/imagbmp.cpp:553 #: ../src/common/imagbmp.cpp:568 msgid "BMP: Couldn't allocate memory." msgstr "BMP: bellek ayrılamadı." #: ../src/common/imagbmp.cpp:97 msgid "BMP: Couldn't save invalid image." msgstr "BMP: Geçersiz görüntü kaydedilemedi." #: ../src/common/imagbmp.cpp:338 msgid "BMP: Couldn't write RGB color map." msgstr "BMP: RGB renk haritası yazılamadı." #: ../src/common/imagbmp.cpp:473 msgid "BMP: Couldn't write data." msgstr "BMP: Veri yazılamadı." #: ../src/common/imagbmp.cpp:239 msgid "BMP: Couldn't write the file (Bitmap) header." msgstr "BMP: Dosya (Bitmap) başlık bilgisi yazılamadı." #: ../src/common/imagbmp.cpp:262 msgid "BMP: Couldn't write the file (BitmapInfo) header." msgstr "BMP: Dosya (BitmapInfo) başlık bilgisi yazılamadı." #: ../src/common/imagbmp.cpp:133 msgid "BMP: wxImage doesn't have own wxPalette." msgstr "BMP: wxImage için wxPalette yok." #: ../src/common/stockitem.cpp:142 msgid "Back" msgstr "Geri" #: ../src/richtext/richtextbackgroundpage.cpp:119 #: ../src/richtext/richtextformatdlg.cpp:374 msgid "Background" msgstr "Artalan" #: ../src/richtext/richtextbackgroundpage.cpp:131 msgid "Background &colour:" msgstr "Artalan &rengi:" #: ../src/osx/carbon/fontdlg.cpp:406 msgid "Background colour" msgstr "Artalan rengi" #: ../src/common/fmapbase.cpp:160 msgid "Baltic (ISO-8859-13)" msgstr "Baltık (ISO-8859-13)" #: ../src/common/fmapbase.cpp:151 msgid "Baltic (old) (ISO-8859-4)" msgstr "Baltık (eski) (ISO-8859-4)" #: ../src/richtext/richtextliststylepage.cpp:426 msgid "Before a paragraph:" msgstr "Paragraftan önce:" #: ../src/richtext/richtextliststylepage.cpp:489 #: ../src/richtext/richtextbulletspage.cpp:294 msgid "Bitmap" msgstr "Bitmap" #: ../src/osx/carbon/dataview.cpp:2396 msgid "Bitmap renderer cannot render value; value type: " msgstr "Bitmap görüntüleyici değeri işleyemiyor; değer tipi:" #: ../src/generic/fontdlgg.cpp:333 ../src/richtext/richtextfontpage.cpp:337 #: ../src/osx/carbon/fontdlg.cpp:540 ../src/common/stockitem.cpp:143 msgid "Bold" msgstr "Kalın" #: ../src/richtext/richtextborderspage.cpp:256 #: ../src/richtext/richtextborderspage.cpp:389 msgid "Border" msgstr "Kenarlık" #: ../src/richtext/richtextformatdlg.cpp:368 msgid "Borders" msgstr "Kenarlıklar" #: ../src/richtext/richtextsizepage.cpp:288 ../src/common/stockitem.cpp:144 msgid "Bottom" msgstr "Alt" #: ../src/generic/prntdlgg.cpp:893 msgid "Bottom margin (mm):" msgstr "Alt kenar boşluğu (mm):" #: ../src/richtext/richtextbuffer.cpp:8919 msgid "Box Properties" msgstr "Kutu Özellikleri" #: ../src/richtext/richtextstyles.cpp:1061 msgid "Box styles" msgstr "Kutu stilleri" #: ../src/common/filepickercmn.cpp:43 ../src/common/filepickercmn.cpp:44 msgid "Browse" msgstr "Gözatın" #: ../src/richtext/richtextliststylepage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:195 msgid "Bullet &Alignment:" msgstr "Madde İmi &Hizalaması:" #: ../src/richtext/richtextliststylepage.cpp:309 msgid "Bullet style" msgstr "Madde imi stili" #: ../src/richtext/richtextformatdlg.cpp:342 msgid "Bullets" msgstr "Madde imleri" #: ../src/common/paper.cpp:99 msgid "C sheet, 17 x 22 in" msgstr "C sayfa, 17 x 22 inç" #: ../src/generic/logg.cpp:520 msgid "C&lear" msgstr "T&emizleyin" #: ../src/generic/fontdlgg.cpp:406 msgid "C&olour:" msgstr "&Renk:" #: ../src/common/paper.cpp:124 msgid "C3 Envelope, 324 x 458 mm" msgstr "C3 Zarf, 324 x 458 mm" #: ../src/common/paper.cpp:125 msgid "C4 Envelope, 229 x 324 mm" msgstr "C4 Zarf, 229 x 324 mm" #: ../src/common/paper.cpp:123 msgid "C5 Envelope, 162 x 229 mm" msgstr "C5 Zarf, 162 x 229 mm" #: ../src/common/paper.cpp:126 msgid "C6 Envelope, 114 x 162 mm" msgstr "C6 Zarf, 114 x 162 mm" #: ../src/common/paper.cpp:127 msgid "C65 Envelope, 114 x 229 mm" msgstr "C65 Zarf, 114 x 229 mm" #: ../src/common/accelcmn.cpp:66 msgid "CANCEL" msgstr "CANCEL" #: ../src/common/accelcmn.cpp:70 msgid "CAPITAL" msgstr "CAPITAL" #: ../src/common/stockitem.cpp:146 msgid "CD-Rom" msgstr "CD-Rom" #: ../src/html/chm.cpp:815 ../src/html/chm.cpp:874 msgid "CHM handler currently supports only local files!" msgstr "CHM işleyici şimdilik yalnız yerel dosyaları destekliyor!" #: ../src/common/accelcmn.cpp:67 msgid "CLEAR" msgstr "CLEAR" #: ../src/common/accelcmn.cpp:111 msgid "COMMAND" msgstr "COMMAND" #: ../src/richtext/richtextfontpage.cpp:291 msgid "Ca&pitals" msgstr "&Büyük harfler" #: ../src/common/cmdproc.cpp:267 msgid "Can't &Undo " msgstr "&Geri Alınamıyor" #: ../src/common/image.cpp:2686 msgid "Can't automatically determine the image format for non-seekable input." msgstr "Aranamayan giriş için görsel biçimi kendiliğinden belirlenemiyor." #: ../src/msw/registry.cpp:505 #, c-format msgid "Can't close registry key '%s'" msgstr "'%s' kayıt anahtarı kapatılamadı" #: ../src/msw/registry.cpp:583 #, c-format msgid "Can't copy values of unsupported type %d." msgstr "Desteklenmeyen %d tipinin değerleri kopyalanamadı." #: ../src/msw/registry.cpp:486 #, c-format msgid "Can't create registry key '%s'" msgstr "'%s' kayıt anahtarı oluşturulamadı" #: ../src/msw/thread.cpp:696 ../src/os2/thread.cpp:494 msgid "Can't create thread" msgstr "İş parçacığı oluşturulamadı" #: ../src/msw/window.cpp:3793 #, c-format msgid "Can't create window of class %s" msgstr "%s sınıfının penceresi oluşturulamadı" #: ../src/msw/registry.cpp:776 #, c-format msgid "Can't delete key '%s'" msgstr "'%s' anahtarı silinemedi" #: ../src/msw/iniconf.cpp:458 ../src/os2/iniconf.cpp:471 #, c-format msgid "Can't delete the INI file '%s'" msgstr "'%s' INI dosyası silinemedi" #: ../src/msw/registry.cpp:804 #, c-format msgid "Can't delete value '%s' from key '%s'" msgstr "'%s' değeri '%s' anahtarından silinemiyor" #: ../src/msw/registry.cpp:1161 #, c-format msgid "Can't enumerate subkeys of key '%s'" msgstr "'%s' anahtarının altanahtarları sayılamadı" #: ../src/msw/registry.cpp:1116 #, c-format msgid "Can't enumerate values of key '%s'" msgstr "'%s' anahtarının değerleri sayılamadı" #: ../src/msw/registry.cpp:1379 #, c-format msgid "Can't export value of unsupported type %d." msgstr "Desteklenmeyen %d tipinin değeri verilemedi." #: ../src/common/ffile.cpp:236 #, c-format msgid "Can't find current position in file '%s'" msgstr "'%s' dosyasındaki geçerli konum bulunamadı" #: ../src/msw/registry.cpp:416 #, c-format msgid "Can't get info about registry key '%s'" msgstr "'%s' kayıt anahtarı hakkında bilgi alınamadı" #: ../src/common/zstream.cpp:346 msgid "Can't initialize zlib deflate stream." msgstr "Zlib sıkıştırma akışı başlatılamadı." #: ../src/common/zstream.cpp:185 msgid "Can't initialize zlib inflate stream." msgstr "Zlib ayıklama akışı başlatılamadı." #: ../src/msw/fswatcher.cpp:432 #, c-format msgid "Can't monitor non-existent directory \"%s\" for changes." msgstr "\"%s\" klasörü bulunamadığından değişiklikleri izlenemiyor." #: ../src/msw/registry.cpp:452 #, c-format msgid "Can't open registry key '%s'" msgstr "'%s' kayıt anahtarı açılamadı" #: ../src/common/zstream.cpp:252 #, c-format msgid "Can't read from inflate stream: %s" msgstr "Ayıklama akışı okunamadı: %s" #: ../src/common/zstream.cpp:244 msgid "Can't read inflate stream: unexpected EOF in underlying stream." msgstr "Ayıklama akışı okunamadı: alt akışıta beklenmeyen dosya sonu." #: ../src/msw/registry.cpp:1048 #, c-format msgid "Can't read value of '%s'" msgstr "'%s'' değeri okunamadı" #: ../src/msw/registry.cpp:877 ../src/msw/registry.cpp:909 #: ../src/msw/registry.cpp:971 #, c-format msgid "Can't read value of key '%s'" msgstr "'%s' anahtarının değeri okunamadı" #: ../src/common/image.cpp:2483 #, c-format msgid "Can't save image to file '%s': unknown extension." msgstr "Görüntü '%s' dosyasına kaydedilemedi: bilinmeyen uzantı." #: ../src/generic/logg.cpp:579 ../src/generic/logg.cpp:996 msgid "Can't save log contents to file." msgstr "Günlük içeriği dosyaya kaydedilemedi." #: ../src/msw/thread.cpp:652 ../src/os2/thread.cpp:477 msgid "Can't set thread priority" msgstr "İş parçacığının önceliği ayarlanamadı" #: ../src/msw/registry.cpp:895 ../src/msw/registry.cpp:939 #: ../src/msw/registry.cpp:1065 #, c-format msgid "Can't set value of '%s'" msgstr "'%s' değeri değiştirilemedi" #: ../src/unix/utilsunx.cpp:357 msgid "Can't write to child process's stdin" msgstr "Alt işlem stdin yazılamadı" #: ../src/common/zstream.cpp:427 #, c-format msgid "Can't write to deflate stream: %s" msgstr "Sıkıştırma akışına yazılamadı: %s" #: ../include/wx/msgdlg.h:274 ../src/generic/dirdlgg.cpp:107 #: ../src/richtext/richtextstyledlg.cpp:300 ../src/common/stockitem.cpp:145 #: ../src/msw/msgdlg.cpp:489 ../src/msw/progdlg.cpp:673 #: ../src/gtk1/fontdlg.cpp:144 ../src/motif/msgdlg.cpp:196 msgid "Cancel" msgstr "İptal" #: ../src/os2/thread.cpp:116 msgid "Cannot create mutex." msgstr "Muteks oluşturulamadı." #: ../src/osx/carbon/dataview.cpp:895 msgid "Cannot create new column's ID. Probably max. number of columns reached." msgstr "" "Yeni sütunun kodu oluşturulamadı. En fazla sütun sayısına ulaşılmış olabilir." #: ../src/common/filefn.cpp:1336 #, c-format msgid "Cannot enumerate files '%s'" msgstr "'%s' dosyaları sayılamadı" #: ../src/msw/dir.cpp:264 #, c-format msgid "Cannot enumerate files in directory '%s'" msgstr "'%s' klasöründeki dosyalar sayılamadı" #: ../src/msw/dialup.cpp:542 #, c-format msgid "Cannot find active dialup connection: %s" msgstr "Etkin çevirmeli bağlantı bulunamadı: %s" #: ../src/msw/dialup.cpp:848 msgid "Cannot find the location of address book file" msgstr "Adres defteri dosyasının yeri bulunamadı" #: ../src/msw/ole/automtn.cpp:562 #, c-format msgid "Cannot get an active instance of \"%s\"" msgstr "Çalışan bir \"%s\" kopyası bulunamadı" #: ../src/unix/threadpsx.cpp:1030 #, c-format msgid "Cannot get priority range for scheduling policy %d." msgstr "Zamanlama ilkesi %d için öncelik aralığı alınamadı." #: ../src/unix/utilsunx.cpp:988 msgid "Cannot get the hostname" msgstr "Sunucu adı alınamadı" #: ../src/unix/utilsunx.cpp:1024 msgid "Cannot get the official hostname" msgstr "Resmi sunucu adı alınamadı" #: ../src/msw/dialup.cpp:949 msgid "Cannot hang up - no active dialup connection." msgstr "Kapatılamadı - etkin çevirmeli bağlantı yok." #: ../include/wx/msw/ole/oleutils.h:52 msgid "Cannot initialize OLE" msgstr "OLE başlatılamadı" #: ../src/common/socket.cpp:847 msgid "Cannot initialize sockets" msgstr "Soketler başlatılamadı" #: ../src/msw/volume.cpp:620 #, c-format msgid "Cannot load icon from '%s'." msgstr "'%s' içinden simge yüklenemedi." #: ../src/xrc/xmlres.cpp:361 #, c-format msgid "Cannot load resources from '%s'." msgstr "Kaynaklar '%s' dosyasından yüklenemedi." #: ../src/xrc/xmlres.cpp:746 #, c-format msgid "Cannot load resources from file '%s'." msgstr "Kaynaklar '%s' dosyasından yüklenemedi." #: ../src/html/htmlfilt.cpp:137 #, c-format msgid "Cannot open HTML document: %s" msgstr "%s HTML belgesi açılamadı" #: ../src/html/helpdata.cpp:665 #, c-format msgid "Cannot open HTML help book: %s" msgstr "%s HTML yardım kitabı açılamadı" #: ../src/html/helpdata.cpp:297 #, c-format msgid "Cannot open contents file: %s" msgstr "%s içerik dosyası açılamadı" #: ../src/generic/dcpsg.cpp:1751 msgid "Cannot open file for PostScript printing!" msgstr "Dosya PostScript yazdırma için açılamadı!" #: ../src/html/helpdata.cpp:311 #, c-format msgid "Cannot open index file: %s" msgstr "%s dizin dosyası açılamadı." #: ../src/xrc/xmlres.cpp:728 #, c-format msgid "Cannot open resources file '%s'." msgstr "'%s' kaynak dosyası açılamadı." #: ../src/html/helpwnd.cpp:1537 msgid "Cannot print empty page." msgstr "Boş sayfa basılamaz." #: ../src/msw/volume.cpp:507 #, c-format msgid "Cannot read typename from '%s'!" msgstr "'%s' içinden tip adı okunamadı." #: ../src/os2/thread.cpp:527 #, c-format msgid "Cannot resume thread %lu" msgstr "%lu iş parçacığı sürdürülemiyor" #: ../src/msw/thread.cpp:923 #, c-format msgid "Cannot resume thread %lx" msgstr "%lx iş parçacığı sürdürülemiyor" #: ../src/unix/threadpsx.cpp:1011 msgid "Cannot retrieve thread scheduling policy." msgstr "İş parçacığı zamanlama ilkesi alınamadı." #: ../src/common/intl.cpp:542 #, c-format msgid "Cannot set locale to language \"%s\"." msgstr "Yerel ayarlar \"%s\" diline çevrilemedi." #: ../src/unix/threadpsx.cpp:831 ../src/msw/thread.cpp:569 msgid "Cannot start thread: error writing TLS." msgstr "İş parçacığı başlatılamadı: TLS yazma hatası." #: ../src/os2/thread.cpp:513 #, c-format msgid "Cannot suspend thread %lu" msgstr "%lu iş parçacığı beklemeye alınamadı" #: ../src/msw/thread.cpp:907 #, c-format msgid "Cannot suspend thread %lx" msgstr "%lx iş parçacığı beklemeye alınamadı" #: ../src/msw/thread.cpp:830 msgid "Cannot wait for thread termination" msgstr "İş parçacığının sonlanması beklenemiyor" #: ../src/html/helpwnd.cpp:546 msgid "Case sensitive" msgstr "Büyük küçük harfe duyarlı" #: ../src/propgrid/manager.cpp:1495 msgid "Categorized Mode" msgstr "Kategorize Kip" #: ../src/richtext/richtextbuffer.cpp:9347 msgid "Cell Properties" msgstr "Hücre Özellikleri" #: ../src/common/fmapbase.cpp:161 msgid "Celtic (ISO-8859-14)" msgstr "Keltçe (ISO-8859-14)" #: ../src/richtext/richtextindentspage.cpp:160 #: ../src/richtext/richtextliststylepage.cpp:349 msgid "Cen&tred" msgstr "Or&talanmış" #: ../src/common/stockitem.cpp:170 msgid "Centered" msgstr "Ortalanmış" #: ../src/common/fmapbase.cpp:149 msgid "Central European (ISO-8859-2)" msgstr "Orta Avrupa (ISO-8859-2)" #: ../src/richtext/richtextliststylepage.cpp:250 #: ../src/richtext/richtextbulletspage.cpp:200 msgid "Centre" msgstr "Orta" #: ../src/richtext/richtextindentspage.cpp:162 #: ../src/richtext/richtextindentspage.cpp:164 #: ../src/richtext/richtextliststylepage.cpp:351 #: ../src/richtext/richtextliststylepage.cpp:353 msgid "Centre text." msgstr "Metni ortalayın." #: ../src/richtext/richtextsizepage.cpp:287 msgid "Centred" msgstr "Ortalanmış" #: ../src/richtext/richtextliststylepage.cpp:280 #: ../src/richtext/richtextbulletspage.cpp:232 msgid "Ch&oose..." msgstr "S&eçin..." #: ../src/richtext/richtextbuffer.cpp:4041 msgid "Change List Style" msgstr "Liste Stilini Değiştirin" #: ../src/richtext/richtextbuffer.cpp:3392 msgid "Change Object Style" msgstr "Nesne Stilini Değiştirin" #: ../src/richtext/richtextbuffer.cpp:3658 #: ../src/richtext/richtextbuffer.cpp:7749 msgid "Change Properties" msgstr "Özellikleri Değiştirin" #: ../src/richtext/richtextbuffer.cpp:3209 msgid "Change Style" msgstr "Stili Değiştirin" #: ../src/common/fileconf.cpp:372 #, c-format msgid "Changes won't be saved to avoid overwriting the existing file \"%s\"" msgstr "" "Varolan \"%s\" dosyasının üstüne yazılmasını önlemek için değişiklikler " "kaydedilmeyecek." #: ../src/richtext/richtextstyles.cpp:1059 msgid "Character styles" msgstr "Karakter stilleri" #: ../src/richtext/richtextliststylepage.cpp:224 #: ../src/richtext/richtextliststylepage.cpp:226 #: ../src/richtext/richtextbulletspage.cpp:174 #: ../src/richtext/richtextbulletspage.cpp:176 msgid "Check to add a period after the bullet." msgstr "Madde iminin ardına nokta eklenmesi için işaretleyin." #: ../src/richtext/richtextliststylepage.cpp:238 #: ../src/richtext/richtextliststylepage.cpp:240 #: ../src/richtext/richtextbulletspage.cpp:188 #: ../src/richtext/richtextbulletspage.cpp:190 msgid "Check to add a right parenthesis." msgstr "Sağa bir parantez eklemek için işaretleyin." #: ../src/richtext/richtextliststylepage.cpp:231 #: ../src/richtext/richtextliststylepage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:181 #: ../src/richtext/richtextbulletspage.cpp:183 msgid "Check to enclose the bullet in parentheses." msgstr "Madde imini parantez içine almak için işaretleyin." #: ../src/osx/carbon/fontdlg.cpp:542 ../src/osx/carbon/fontdlg.cpp:544 msgid "Check to make the font bold." msgstr "Koyu yazı tipi için işaretleyin." #: ../src/osx/carbon/fontdlg.cpp:549 ../src/osx/carbon/fontdlg.cpp:551 msgid "Check to make the font italic." msgstr "Yatık yazı tipi için işaretleyin." #: ../src/osx/carbon/fontdlg.cpp:558 ../src/osx/carbon/fontdlg.cpp:560 msgid "Check to make the font underlined." msgstr "Altı çizili yazı tipi için işaretleyin." #: ../src/richtext/richtextstyledlg.cpp:289 #: ../src/richtext/richtextstyledlg.cpp:291 msgid "Check to restart numbering." msgstr "Yeniden numaralandırmak için işaretleyin." #: ../src/richtext/richtextfontpage.cpp:286 #: ../src/richtext/richtextfontpage.cpp:288 msgid "Check to show a line through the text." msgstr "Metnin üzerini çizmek için işaretleyin." #: ../src/richtext/richtextfontpage.cpp:293 #: ../src/richtext/richtextfontpage.cpp:295 msgid "Check to show the text in capitals." msgstr "Metni büyük harfe dönüştürmek için işaretleyin." #: ../src/richtext/richtextfontpage.cpp:300 #: ../src/richtext/richtextfontpage.cpp:302 msgid "Check to show the text in small capitals." msgstr "Metni küçük harfe dönüştürmek için işaretleyin." #: ../src/richtext/richtextfontpage.cpp:314 #: ../src/richtext/richtextfontpage.cpp:316 msgid "Check to show the text in subscript." msgstr "Metni altyazıya dönüştürmek için işaretleyin." #: ../src/richtext/richtextfontpage.cpp:307 #: ../src/richtext/richtextfontpage.cpp:309 msgid "Check to show the text in superscript." msgstr "Metni üst yazıya dönüştürmek için işaretleyin." #: ../src/msw/dialup.cpp:784 msgid "Choose ISP to dial" msgstr "Aranacak servis sağlayıcıyı seçin" #: ../src/propgrid/props.cpp:1643 msgid "Choose a directory:" msgstr "Bir klasör seçin:" #: ../src/propgrid/props.cpp:1702 msgid "Choose a file" msgstr "Bir dosya seçin" #: ../src/generic/colrdlgg.cpp:144 ../src/gtk/colordlg.cpp:63 msgid "Choose colour" msgstr "Renk seçin" #: ../src/generic/fontpickerg.cpp:50 ../src/gtk/fontdlg.cpp:75 #: ../src/gtk1/fontdlg.cpp:125 msgid "Choose font" msgstr "Yazı tipi seçin" #: ../src/common/module.cpp:74 #, c-format msgid "Circular dependency involving module \"%s\" detected." msgstr "\"%s\" modülü ile döngüsel bağlılık algılandı." #: ../src/aui/tabmdi.cpp:108 ../src/generic/mdig.cpp:97 msgid "Cl&ose" msgstr "Kapa&tın" #: ../src/msw/ole/automtn.cpp:673 msgid "Class not registered." msgstr "Sınıf kaydedilmemiş." #: ../src/common/stockitem.cpp:147 msgid "Clear" msgstr "Temizleyin" #: ../src/generic/logg.cpp:520 msgid "Clear the log contents" msgstr "Günlük içeriğini temizleyin" #: ../src/richtext/richtextstyledlg.cpp:252 #: ../src/richtext/richtextstyledlg.cpp:254 msgid "Click to apply the selected style." msgstr "Seçili stili uygulamak için tıklayın." #: ../src/richtext/richtextliststylepage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:283 #: ../src/richtext/richtextbulletspage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:235 msgid "Click to browse for a symbol." msgstr "Bir simge seçmek için tıklayın." #: ../src/osx/carbon/fontdlg.cpp:589 ../src/osx/carbon/fontdlg.cpp:591 msgid "Click to cancel changes to the font." msgstr "Yazı tipi değişikliklerinden vazgeçmek için tıklayın." #: ../src/generic/fontdlgg.cpp:472 ../src/generic/fontdlgg.cpp:491 msgid "Click to cancel the font selection." msgstr "Yazı tipi seçiminden vazgeçmek için tıklayın." #: ../src/osx/carbon/fontdlg.cpp:570 ../src/osx/carbon/fontdlg.cpp:572 msgid "Click to change the font colour." msgstr "Metin rengini değiştirmek için tıklayın." #: ../src/richtext/richtextfontpage.cpp:276 #: ../src/richtext/richtextfontpage.cpp:278 msgid "Click to change the text background colour." msgstr "Metin artalan rengini değiştirmek için tıklayın." #: ../src/richtext/richtextfontpage.cpp:263 #: ../src/richtext/richtextfontpage.cpp:265 msgid "Click to change the text colour." msgstr "Metin rengini değiştirmek için tıklayın." #: ../src/richtext/richtextliststylepage.cpp:195 #: ../src/richtext/richtextliststylepage.cpp:197 msgid "Click to choose the font for this level." msgstr "Bu düzeyin yazı tipini seçmek için tıklayın." #: ../src/richtext/richtextstyledlg.cpp:279 #: ../src/richtext/richtextstyledlg.cpp:281 msgid "Click to close this window." msgstr "Pencereyi kapatmak için tıklayın." #: ../src/osx/carbon/fontdlg.cpp:596 ../src/osx/carbon/fontdlg.cpp:598 msgid "Click to confirm changes to the font." msgstr "Yazı tipindeki değişiklikleri onaylamak için tıklayın." #: ../src/generic/fontdlgg.cpp:477 ../src/generic/fontdlgg.cpp:479 #: ../src/generic/fontdlgg.cpp:484 ../src/generic/fontdlgg.cpp:486 msgid "Click to confirm the font selection." msgstr "Yazı tipi seçimini onaylamak için tıklayın." #: ../src/richtext/richtextstyledlg.cpp:244 #: ../src/richtext/richtextstyledlg.cpp:246 msgid "Click to create a new box style." msgstr "Yeni bir kutu stili oluşturmak için tıklayın." #: ../src/richtext/richtextstyledlg.cpp:226 #: ../src/richtext/richtextstyledlg.cpp:228 msgid "Click to create a new character style." msgstr "Yeni bir karakter stili oluşturmak için tıklayın." #: ../src/richtext/richtextstyledlg.cpp:238 #: ../src/richtext/richtextstyledlg.cpp:240 msgid "Click to create a new list style." msgstr "Yeni bir liste stili oluşturmak için tıklayın." #: ../src/richtext/richtextstyledlg.cpp:232 #: ../src/richtext/richtextstyledlg.cpp:234 msgid "Click to create a new paragraph style." msgstr "Yeni bir paragraf stili oluşturmak için tıklayın." #: ../src/richtext/richtexttabspage.cpp:137 #: ../src/richtext/richtexttabspage.cpp:139 msgid "Click to create a new tab position." msgstr "Yeni bir sekme konumu oluşturmak için tıklayın." #: ../src/richtext/richtexttabspage.cpp:149 #: ../src/richtext/richtexttabspage.cpp:151 msgid "Click to delete all tab positions." msgstr "Tüm sekme konumlarını silmek için tıklayın." #: ../src/richtext/richtextstyledlg.cpp:270 #: ../src/richtext/richtextstyledlg.cpp:272 msgid "Click to delete the selected style." msgstr "Seçili stili silmek için tıklayın." #: ../src/richtext/richtexttabspage.cpp:143 #: ../src/richtext/richtexttabspage.cpp:145 msgid "Click to delete the selected tab position." msgstr "Seçili sekme konumunu silmek için tıklayın." #: ../src/richtext/richtextstyledlg.cpp:264 #: ../src/richtext/richtextstyledlg.cpp:266 msgid "Click to edit the selected style." msgstr "Seçili stili düzenlemek için tıklayın." #: ../src/richtext/richtextstyledlg.cpp:258 #: ../src/richtext/richtextstyledlg.cpp:260 msgid "Click to rename the selected style." msgstr "Seçili stili yeniden adlandırmak için tıklayın." #: ../src/generic/dbgrptg.cpp:97 ../src/generic/progdlgg.cpp:804 #: ../src/generic/progdlgg.cpp:809 ../src/richtext/richtextstyledlg.cpp:277 #: ../src/richtext/richtextsymboldlg.cpp:476 ../src/common/stockitem.cpp:148 #: ../src/msw/progdlg.cpp:170 ../src/msw/progdlg.cpp:679 #: ../src/html/helpdlg.cpp:90 msgid "Close" msgstr "Kapatın" #: ../src/aui/tabmdi.cpp:109 ../src/generic/mdig.cpp:98 msgid "Close All" msgstr "Tümünü Kapatın" #: ../src/common/stockitem.cpp:266 msgid "Close current document" msgstr "Geçerli belgeyi kapatın" #: ../src/generic/logg.cpp:522 msgid "Close this window" msgstr "Bu pencereyi kapatın" #: ../src/common/stockitem.cpp:193 msgid "Color" msgstr "Renk" #: ../src/richtext/richtextformatdlg.cpp:725 msgid "Colour" msgstr "Renk" #: ../src/msw/colordlg.cpp:156 #, c-format msgid "Colour selection dialog failed with error %0lx." msgstr "Renk seçimi diyaloğu %0lx hatasıyla sonlandı." #: ../src/osx/carbon/fontdlg.cpp:566 msgid "Colour:" msgstr "Renk:" #: ../src/osx/carbon/dataview.cpp:900 msgid "Column could not be added." msgstr "Sütun eklenemedi." #: ../src/osx/carbon/dataview.cpp:899 msgid "Column description could not be initialized." msgstr "Sütun tanımı yüklenemedi." #: ../src/osx/carbon/dataview.cpp:1538 ../src/osx/carbon/dataview.cpp:1559 msgid "Column index not found." msgstr "Sütun dizini bulunamadı." #: ../src/osx/carbon/dataview.cpp:1614 msgid "Column width could not be determined" msgstr "Sütun genişliği belirlenemedi." #: ../src/osx/carbon/dataview.cpp:901 msgid "Column width could not be set." msgstr "Sütun genişliği ayarlanamadı." #: ../src/common/init.cpp:188 #, c-format msgid "" "Command line argument %d couldn't be converted to Unicode and will be " "ignored." msgstr "%d komut satırı değişkeni Unikoda çevrilemediğinden yoksayılacak." #: ../src/msw/fontdlg.cpp:119 #, c-format msgid "Common dialog failed with error code %0lx." msgstr "Ortak diyalog %0lx hata koduyla sonlandı." #: ../src/gtk/window.cpp:4306 msgid "" "Compositing not supported by this system, please enable it in your Window " "Manager." msgstr "" "Sistmein birleştirme (compositing) desteği etkin değil. Lütfen Pencere " "Yöneticinizden etkinleştirin." #: ../src/html/helpwnd.cpp:1554 msgid "Compressed HTML Help file (*.chm)|*.chm|" msgstr "Sıkıştırılmış HTML Yardım dosyası (*.chm)|*.chm|" #: ../src/generic/dirctrlg.cpp:544 msgid "Computer" msgstr "Bilgisayarım" #: ../src/common/fileconf.cpp:965 #, c-format msgid "Config entry name cannot start with '%c'." msgstr "Ayar kaydının adı '%c' ile başlayamaz." #: ../src/gtk/filedlg.cpp:59 msgid "Confirm" msgstr "Onaylayın" #: ../src/msw/mimetype.cpp:739 msgid "Confirm registry update" msgstr "Kayıt değişikligini onaylayın" #: ../src/html/htmlwin.cpp:544 msgid "Connecting..." msgstr "Bağlanılıyor..." #: ../src/html/helpwnd.cpp:482 msgid "Contents" msgstr "İçerik" #: ../src/common/strconv.cpp:2261 #, c-format msgid "Conversion to charset '%s' doesn't work." msgstr "'%s' karakter kümesine dönüşüm çalışmıyor." #: ../src/common/stockitem.cpp:149 msgid "Convert" msgstr "Dönüştürün" #: ../src/html/htmlwin.cpp:1057 #, c-format msgid "Copied to clipboard:\"%s\"" msgstr "\"%s\" panoya kopyalandı." #: ../src/generic/prntdlgg.cpp:247 msgid "Copies:" msgstr "Kopya sayısı:" #: ../src/common/stockitem.cpp:150 ../src/stc/stc_i18n.cpp:18 msgid "Copy" msgstr "Kopyalayın" #: ../src/common/stockitem.cpp:258 msgid "Copy selection" msgstr "Seçimi kopyalayın" #: ../src/html/chm.cpp:718 #, c-format msgid "Could not create temporary file '%s'" msgstr "'%s' geçici dosyası oluşturulamadı." #: ../src/osx/carbon/dataview.cpp:1285 ../src/osx/carbon/dataview.cpp:1672 msgid "Could not determine column index." msgstr "Sütun dizini belirlenemedi." #: ../src/osx/carbon/dataview.cpp:876 msgid "Could not determine column's position" msgstr "Sütunun konumu belirlenemedi." #: ../src/osx/carbon/dataview.cpp:843 msgid "Could not determine number of columns." msgstr "Sütun sayısı belirlenemedi." #: ../src/osx/carbon/dataview.cpp:975 msgid "Could not determine number of items" msgstr "Öge sayısı belirlenemedi." #: ../src/html/chm.cpp:273 #, c-format msgid "Could not extract %s into %s: %s" msgstr "%s %s içine ayıklanamadı: %s" #: ../src/generic/tabg.cpp:1048 msgid "Could not find tab for id" msgstr "Kodun sekmesi bulunamadı." #: ../src/osx/carbon/dataview.cpp:2556 ../src/osx/carbon/dataview.cpp:2591 #: ../src/osx/carbon/dataview.cpp:2615 ../src/osx/carbon/dataview.cpp:2636 #: ../src/osx/carbon/dataview.cpp:2773 msgid "Could not get header description." msgstr "Başlık bilgisi tanımı alınamadı." #: ../src/osx/carbon/dataview.cpp:1169 ../src/osx/carbon/dataview.cpp:1195 msgid "Could not get items." msgstr "Ögeler alınamadı." #: ../src/osx/carbon/dataview.cpp:2659 ../src/osx/carbon/dataview.cpp:2724 msgid "Could not get property flags." msgstr "Özellik işaretleri alınamadı." #: ../src/osx/carbon/dataview.cpp:726 msgid "Could not get selected items." msgstr "Seçili ögeler alınamadı." #: ../src/html/chm.cpp:444 #, c-format msgid "Could not locate file '%s'." msgstr "'%s' dosyası bulunamadı." #: ../src/osx/carbon/dataview.cpp:845 msgid "Could not remove column." msgstr "Sütun kaldırılamadı." #: ../src/osx/carbon/dataview.cpp:642 msgid "Could not retrieve number of items" msgstr "Öge sayısı alınamadı." #: ../src/osx/carbon/dataview.cpp:2572 msgid "Could not set alignment." msgstr "Hizalama ayarlanamadı." #: ../src/osx/carbon/dataview.cpp:2803 msgid "Could not set column width." msgstr "Sütun genişliği ayarlanamadı." #: ../src/common/filefn.cpp:1569 msgid "Could not set current working directory" msgstr "Geçerli çalışma klasörü ayarlanamadı." #: ../src/osx/carbon/dataview.cpp:2775 msgid "Could not set header description." msgstr "Başlık bilgisi açıklaması ayarlanamadı." #: ../src/osx/carbon/dataview.cpp:2596 msgid "Could not set icon." msgstr "Simge ayarlanamadı." #: ../src/osx/carbon/dataview.cpp:2617 msgid "Could not set maximum width." msgstr "En fazla genişlik ayarlanamadı." #: ../src/osx/carbon/dataview.cpp:2638 msgid "Could not set minimum width." msgstr "En az genişlik ayarlanamadı." #: ../src/osx/carbon/dataview.cpp:2664 ../src/osx/carbon/dataview.cpp:2729 msgid "Could not set property flags." msgstr "Özellik işaretleri ayarlanamadı." #: ../src/common/prntbase.cpp:1985 msgid "Could not start document preview." msgstr "Belge önizlemesi başlatılamadı." #: ../src/generic/printps.cpp:178 ../src/msw/printwin.cpp:210 #: ../src/gtk/print.cpp:1077 msgid "Could not start printing." msgstr "Yazdırma başlatılamadı." #: ../src/common/wincmn.cpp:2131 msgid "Could not transfer data to window" msgstr "Veri pencereye aktarılamadı." #: ../src/os2/thread.cpp:160 msgid "Couldn't acquire a mutex lock" msgstr "Mutex kilidi alınamadı." #: ../src/msw/imaglist.cpp:166 ../src/msw/imaglist.cpp:197 #: ../src/msw/imaglist.cpp:209 ../src/msw/dragimag.cpp:193 #: ../src/msw/dragimag.cpp:232 msgid "Couldn't add an image to the image list." msgstr "Görsel listesine bir görsel eklenemedi." #: ../src/msw/timer.cpp:134 ../src/os2/timer.cpp:113 msgid "Couldn't create a timer" msgstr "Bir zamanlayıcı oluşturulamadı." #: ../src/osx/carbon/overlay.cpp:122 msgid "Couldn't create the overlay window" msgstr "Örtüşme penceresi oluşturulamadı." #: ../src/common/translation.cpp:2015 msgid "Couldn't enumerate translations" msgstr "Çeviriler sayılamadı." #: ../src/common/dynlib.cpp:152 #, c-format msgid "Couldn't find symbol '%s' in a dynamic library" msgstr "'%s' simgesi devingen kitaplıkta bulunamadı." #: ../src/gtk/print.cpp:2014 msgid "Couldn't get hatch style from wxBrush." msgstr "wxBrush tarama stili alınamadı." #: ../src/msw/thread.cpp:950 msgid "Couldn't get the current thread pointer" msgstr "Geçerli iş parçacığı imleci alınamadı." #: ../src/osx/carbon/overlay.cpp:129 msgid "Couldn't init the context on the overlay window" msgstr "Örtüşme penceresinde bağlam başlatılamadı." #: ../src/common/imaggif.cpp:263 msgid "Couldn't initialize GIF hash table." msgstr "GIF hash tablosu başlatılamadı." #: ../src/common/imagpng.cpp:657 msgid "Couldn't load a PNG image - file is corrupted or not enough memory." msgstr "PNG görseli yüklenemedi - dosya bozuk ya da bellek yetersiz." #: ../src/unix/sound.cpp:470 #, c-format msgid "Couldn't load sound data from '%s'." msgstr "'%s' içinden ses verisi yüklenemedi." #: ../src/msw/dirdlg.cpp:441 msgid "Couldn't obtain folder name" msgstr "Klasör adı alınamadı." #: ../src/unix/sound_sdl.cpp:229 #, c-format msgid "Couldn't open audio: %s" msgstr "Ses açılamadı: %s" #: ../src/msw/ole/dataobj.cpp:350 #, c-format msgid "Couldn't register clipboard format '%s'." msgstr "'%s' pano biçimi kaydedilemedi." #: ../src/os2/thread.cpp:177 msgid "Couldn't release a mutex" msgstr "Muteks bırakılamadı." #: ../src/msw/listctrl.cpp:756 #, c-format msgid "Couldn't retrieve information about list control item %d." msgstr "%d liste denetimi ögesi hakkında bilgi alınamadı." #: ../src/common/imagpng.cpp:746 ../src/common/imagpng.cpp:757 #: ../src/common/imagpng.cpp:767 msgid "Couldn't save PNG image." msgstr "PNG görseli kaydedilemedi." #: ../src/msw/thread.cpp:715 msgid "Couldn't terminate thread" msgstr "İş parçacığı sonlandırılamadı." #: ../src/common/xtistrm.cpp:170 #, c-format msgid "Create Parameter %s not found in declared RTTI Parameters" msgstr "'Create Parameter' %s bildirilen RTTI parametreleri içinde bulunamadı." #: ../src/generic/dirdlgg.cpp:317 msgid "Create directory" msgstr "Klasör oluşturun" #: ../src/generic/filedlgg.cpp:228 ../src/generic/dirdlgg.cpp:131 msgid "Create new directory" msgstr "Yeni klasör oluşturun" #: ../src/common/accelcmn.cpp:322 msgid "Ctrl+" msgstr "Ctrl+" #: ../src/richtext/richtextctrl.cpp:325 ../src/osx/textctrl_osx.cpp:582 #: ../src/common/stockitem.cpp:151 ../src/msw/textctrl.cpp:2283 msgid "Cu&t" msgstr "&Kesin" #: ../src/generic/filectrlg.cpp:956 msgid "Current directory:" msgstr "Geçerli klasör:" #: ../src/gtk/print.cpp:759 msgid "Custom size" msgstr "Özel boyut" #: ../src/common/headerctrlcmn.cpp:60 msgid "Customize Columns" msgstr "Sütunları Özelleştirin" #: ../src/common/stockitem.cpp:151 ../src/stc/stc_i18n.cpp:17 msgid "Cut" msgstr "Kesin" #: ../src/common/stockitem.cpp:259 msgid "Cut selection" msgstr "Seçimi kesin" #: ../src/common/fmapbase.cpp:152 msgid "Cyrillic (ISO-8859-5)" msgstr "Kril (ISO-8859-5)" #: ../src/common/paper.cpp:100 msgid "D sheet, 22 x 34 in" msgstr "D sayfa, 22 x 34 inç" #: ../src/msw/dde.cpp:708 msgid "DDE poke request failed" msgstr "DDE itme isteği yapılamadı." #: ../src/common/accelcmn.cpp:79 msgid "DECIMAL" msgstr "DECIMAL" #: ../src/common/accelcmn.cpp:47 msgid "DEL" msgstr "DEL" #: ../src/common/accelcmn.cpp:48 msgid "DELETE" msgstr "DELETE" #: ../src/common/imagbmp.cpp:1092 msgid "DIB Header: Encoding doesn't match bitdepth." msgstr "DIB Başlık Bilgisi: Kodlama, bit derinliğine uymuyor." #: ../src/common/imagbmp.cpp:1040 msgid "DIB Header: Image height > 32767 pixels for file." msgstr "DIB Başlık Bilgisi: Dosya için görsel yüksekliği > 32767 piksel." #: ../src/common/imagbmp.cpp:1032 msgid "DIB Header: Image width > 32767 pixels for file." msgstr "DIB Başlık Bilgisi: Dosya için görsel genişliği > 32767 piksel." #: ../src/common/imagbmp.cpp:1060 msgid "DIB Header: Unknown bitdepth in file." msgstr "DIB Başlık Bilgisi: Dosyada bilinmeyen bit derinliği." #: ../src/common/imagbmp.cpp:1074 msgid "DIB Header: Unknown encoding in file." msgstr "DIB Başlık Bilgisi: Dosyada bilinmeyen kodlama." #: ../src/common/accelcmn.cpp:80 msgid "DIVIDE" msgstr "DIVIDE" #: ../src/common/paper.cpp:122 msgid "DL Envelope, 110 x 220 mm" msgstr "DL Zarf, 110 x 220 mm" #: ../src/common/accelcmn.cpp:59 msgid "DOWN" msgstr "DOWN" #: ../src/richtext/richtextborderspage.cpp:545 msgid "Dashed" msgstr "Çizgili" #: ../src/osx/carbon/dataview.cpp:1921 msgid "Data object has invalid data format" msgstr "Veri nesnesinin veri biçimi geçersiz." #: ../src/osx/carbon/dataview.cpp:2491 msgid "Date renderer cannot render value; value type: " msgstr "Tarih görüntüleyici değeri işleyemiyor; değer tipi:" #: ../src/generic/dbgrptg.cpp:300 #, c-format msgid "Debug report \"%s\"" msgstr "Hata ayıklama raporu \"%s\"" #: ../src/common/debugrpt.cpp:210 msgid "Debug report couldn't be created." msgstr "Hata ayıklama raporu oluşturulamadı." #: ../src/common/debugrpt.cpp:558 msgid "Debug report generation has failed." msgstr "Hata ayıklama raporu oluşturulamadı." #: ../src/generic/fontdlgg.cpp:323 msgid "Decorative" msgstr "Süslü" #: ../src/common/fmapbase.cpp:796 msgid "Default encoding" msgstr "Varsayılan kodlama" #: ../src/dfb/fontmgr.cpp:180 msgid "Default font" msgstr "Varsayılan yazı tipi" #: ../src/generic/prntdlgg.cpp:510 msgid "Default printer" msgstr "Varsayılan yazıcı" #: ../src/richtext/richtextbuffer.cpp:7841 ../src/common/stockitem.cpp:152 #: ../src/stc/stc_i18n.cpp:20 msgid "Delete" msgstr "Silin" #: ../src/richtext/richtexttabspage.cpp:148 msgid "Delete A&ll" msgstr "Tümünü Si&lin" #: ../src/richtext/richtextbuffer.cpp:10637 msgid "Delete Column" msgstr "Sütunu Silin" #: ../src/richtext/richtextbuffer.cpp:10587 msgid "Delete Row" msgstr "Satırı Silin" #: ../src/richtext/richtextstyledlg.cpp:779 msgid "Delete Style" msgstr "Stili Silin" #: ../src/richtext/richtextctrl.cpp:1231 ../src/richtext/richtextctrl.cpp:1452 msgid "Delete Text" msgstr "Metni Silin" #: ../src/generic/editlbox.cpp:274 msgid "Delete item" msgstr "Ögeyi Silin" #: ../src/common/stockitem.cpp:260 msgid "Delete selection" msgstr "Seçimi silin" #: ../src/richtext/richtextstyledlg.cpp:779 #, c-format msgid "Delete style %s?" msgstr "%s stili silinsin mi?" #: ../src/unix/snglinst.cpp:295 #, c-format msgid "Deleted stale lock file '%s'." msgstr "Eski kilit dosyası '%s' silindi." #: ../src/common/module.cpp:124 #, c-format msgid "Dependency \"%s\" of module \"%s\" doesn't exist." msgstr "\"%s\" bağlılığı \"%s\" modülü için bulunamadı." #: ../src/common/stockitem.cpp:196 msgid "Descending" msgstr "Azalan" #: ../src/generic/dirctrlg.cpp:626 msgid "Desktop" msgstr "Masaüstü" #: ../src/generic/aboutdlgg.cpp:70 msgid "Developed by " msgstr "Geliştirici" #: ../src/generic/aboutdlgg.cpp:176 msgid "Developers" msgstr "Geliştiriciler" #: ../src/msw/dialup.cpp:393 msgid "" "Dial up functions are unavailable because the remote access service (RAS) is " "not installed on this machine. Please install it." msgstr "" "Uzaktan erişim hizmeti (RAS) kurulu olmadığı için arama işlevleri " "kullanılamıyor. Lütfen kurun." #: ../src/generic/tipdlg.cpp:230 msgid "Did you know..." msgstr "Biliyor musunuz..." #: ../src/dfb/wrapdfb.cpp:63 #, c-format msgid "DirectFB error %d occurred." msgstr "%d DirectFB hatası oluştu." #: ../src/motif/filedlg.cpp:219 msgid "Directories" msgstr "Klasörler" #: ../src/common/filefn.cpp:1251 #, c-format msgid "Directory '%s' couldn't be created" msgstr "'%s' klasörü oluşturulamadı" #: ../src/common/filefn.cpp:1271 #, c-format msgid "Directory '%s' couldn't be deleted" msgstr "'%s' klasörü silinemedi" #: ../src/generic/dirdlgg.cpp:233 msgid "Directory does not exist" msgstr "Klasör bulunamadı" #: ../src/generic/filectrlg.cpp:1412 msgid "Directory doesn't exist." msgstr "Klasör bulunamadı." #: ../src/common/docview.cpp:455 msgid "Discard changes and reload the last saved version?" msgstr "Değişiklikler iptal edilip son kaydedilmiş sürüme dönülsün mü?" #: ../src/html/helpwnd.cpp:512 msgid "" "Display all index items that contain given substring. Search is case " "insensitive." msgstr "" "Verilen altdizgeyi içeren tüm dizin elemanları görüntülensin. Arama küçük-" "büyük harfe duyarlıdır." #: ../src/html/helpwnd.cpp:692 msgid "Display options dialog" msgstr "Ayarlar penceresi görüntülensin" #: ../src/html/helpwnd.cpp:326 msgid "Displays help as you browse the books on the left." msgstr "Soldaki kitapları gezilirken yardım görüntülenir." #: ../src/msw/mimetype.cpp:732 msgid "" "Do you want to overwrite the command used to %s files with extension \"%s" "\" ?\n" "Current value is \n" "%s, \n" "New value is \n" "%s %1" msgstr "" "%s dosyaları için kullanılan komutu değiştirmek istiyor musunuz (\"%s\" " "uzantılı dosyalar) ?\n" "Geçerli değer \n" "%s, \n" "Yeni değer \n" "%s %1" #: ../src/common/docview.cpp:531 #, c-format msgid "Do you want to save changes to %s?" msgstr "%s üzerinde yapılan değişiklikleri kaydetmek istiyor musunuz?" #: ../src/common/prntbase.cpp:525 msgid "Document:" msgstr "Belge:" #: ../src/generic/aboutdlgg.cpp:73 msgid "Documentation by " msgstr "Belgeleyen" #: ../src/generic/aboutdlgg.cpp:180 msgid "Documentation writers" msgstr "Belge yazarları " #: ../src/common/sizer.cpp:2680 msgid "Don't Save" msgstr "Kaydedilmesin" #: ../src/msw/frame.cpp:122 ../src/html/htmlwin.cpp:611 msgid "Done" msgstr "Tamamlandı" #: ../src/generic/progdlgg.cpp:481 ../src/msw/progdlg.cpp:407 msgid "Done." msgstr "Tamamlandı." #: ../src/richtext/richtextborderspage.cpp:544 msgid "Dotted" msgstr "Noktalı" #: ../src/richtext/richtextborderspage.cpp:546 msgid "Double" msgstr "Çift" #: ../src/common/paper.cpp:177 msgid "Double Japanese Postcard Rotated 148 x 200 mm" msgstr "Japon Çift Postakartı Çevrilmiş 148 x 200 mm" #: ../src/common/xtixml.cpp:273 #, c-format msgid "Doubly used id : %d" msgstr "Kod iki kez kullanılmış: %d" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:153 msgid "Down" msgstr "Aşağı" #: ../src/richtext/richtextctrl.cpp:814 msgid "Drag" msgstr "Sürükleyin" #: ../src/common/paper.cpp:101 msgid "E sheet, 34 x 44 in" msgstr "E sayfa, 34 x 44 inç" #: ../src/common/accelcmn.cpp:61 msgid "END" msgstr "SON" #: ../src/common/accelcmn.cpp:52 msgid "ENTER" msgstr "ENTER" #: ../src/unix/fswatcher_inotify.cpp:535 msgid "EOF while reading from inotify descriptor" msgstr "inotify belirteci okunurken dosya sonuna ulaşıldı " #: ../src/common/accelcmn.cpp:64 msgid "ESC" msgstr "ESC" #: ../src/common/accelcmn.cpp:65 msgid "ESCAPE" msgstr "ESCAPE" #: ../src/common/accelcmn.cpp:73 msgid "EXECUTE" msgstr "EXECUTE" #: ../src/common/stockitem.cpp:154 msgid "Edit" msgstr "Düzenleyin" #: ../src/generic/editlbox.cpp:272 msgid "Edit item" msgstr "Ögeyi düzenleyin" #: ../include/wx/generic/progdlgg.h:84 msgid "Elapsed time:" msgstr "Geçen süre:" #: ../src/richtext/richtextsizepage.cpp:353 #: ../src/richtext/richtextsizepage.cpp:355 #: ../src/richtext/richtextsizepage.cpp:465 #: ../src/richtext/richtextsizepage.cpp:467 msgid "Enable the height value." msgstr "Yükseklik değeri kullanılsın." #: ../src/richtext/richtextsizepage.cpp:438 #: ../src/richtext/richtextsizepage.cpp:440 msgid "Enable the maximum width value." msgstr "En büyük genişlik değeri kullanılsın." #: ../src/richtext/richtextsizepage.cpp:411 #: ../src/richtext/richtextsizepage.cpp:413 msgid "Enable the minimum height value." msgstr "En büyük yükseklik değeri kullanılsın." #: ../src/richtext/richtextsizepage.cpp:384 #: ../src/richtext/richtextsizepage.cpp:386 msgid "Enable the minimum width value." msgstr "En küçük genişlik değeri kullanılsın." #: ../src/richtext/richtextsizepage.cpp:319 #: ../src/richtext/richtextsizepage.cpp:321 msgid "Enable the width value." msgstr "Genişlik değeri kullanılsın." #: ../src/richtext/richtextsizepage.cpp:280 #: ../src/richtext/richtextsizepage.cpp:282 msgid "Enable vertical alignment." msgstr "Dikey hizalama kullanılsın." #: ../src/richtext/richtextbackgroundpage.cpp:133 #: ../src/richtext/richtextbackgroundpage.cpp:135 msgid "Enables a background colour." msgstr "Bir artalan rengini etkinleştirir." #: ../src/richtext/richtextstyledlg.cpp:931 msgid "Enter a box style name" msgstr "Bir kutu stili adı yazın" #: ../src/richtext/richtextstyledlg.cpp:603 msgid "Enter a character style name" msgstr "Bir karakter stili adı yazın" #: ../src/richtext/richtextstyledlg.cpp:817 msgid "Enter a list style name" msgstr "Bir liste stili adı yazın" #: ../src/richtext/richtextstyledlg.cpp:890 msgid "Enter a new style name" msgstr "Yeni bir stil adı yazın" #: ../src/richtext/richtextstyledlg.cpp:651 msgid "Enter a paragraph style name" msgstr "Bir paragraf stili adı yazın" #: ../src/generic/dbgrptg.cpp:174 #, c-format msgid "Enter command to open file \"%s\":" msgstr "\"%s\" dosyasını açacak komutu yazın:" #: ../src/generic/helpext.cpp:463 msgid "Entries found" msgstr "Bulunan kayıt" #: ../src/common/paper.cpp:143 msgid "Envelope Invite 220 x 220 mm" msgstr "Davetiye Zarf 220 x 220 mm" #: ../src/common/config.cpp:473 #, c-format msgid "" "Environment variables expansion failed: missing '%c' at position %u in '%s'." msgstr "Ortam değişkenleri açılamadı: eksik '%c', konum %u, '%s' içinde." #: ../src/generic/dirctrlg.cpp:670 ../src/generic/dirctrlg.cpp:688 #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:791 #: ../src/generic/filectrlg.cpp:805 ../src/generic/filectrlg.cpp:821 #: ../src/generic/filectrlg.cpp:1381 ../src/generic/filectrlg.cpp:1412 #: ../src/gtk/filedlg.cpp:73 ../src/gtk1/fontdlg.cpp:74 msgid "Error" msgstr "Hata" #: ../src/unix/epolldispatcher.cpp:103 msgid "Error closing epoll descriptor" msgstr "epoll tanımlayıcı kapatma hatası" #: ../src/unix/fswatcher_kqueue.cpp:114 msgid "Error closing kqueue instance" msgstr "kqueue kopyası kapatılırken hata" #: ../src/generic/dirdlgg.cpp:251 msgid "Error creating directory" msgstr "Klasör oluşturma hatası" #: ../src/common/imagbmp.cpp:1103 msgid "Error in reading image DIB." msgstr "DIB görüntüsü okuma hatası" #: ../src/propgrid/propgrid.cpp:6563 #, c-format msgid "Error in resource: %s" msgstr "%s kaynağında hata" #: ../src/common/fileconf.cpp:453 msgid "Error reading config options." msgstr "Ayarları okuma hatası." #: ../src/common/fileconf.cpp:1064 msgid "Error saving user configuration data." msgstr "Kullanıcı ayarları kaydedilirken hata oluştu." #: ../src/gtk/print.cpp:671 msgid "Error while printing: " msgstr "Yazdırma hatası:" #: ../src/common/log.cpp:223 msgid "Error: " msgstr "Hata:" #: ../src/common/fmapbase.cpp:150 msgid "Esperanto (ISO-8859-3)" msgstr "Esperanto (ISO-8859-3)" #: ../include/wx/generic/progdlgg.h:85 msgid "Estimated time:" msgstr "Öngörülen süre:" #: ../src/unix/fswatcher_inotify.cpp:639 msgid "Event queue overflowed" msgstr "Olay kuyruğu taştı" #: ../src/generic/dbgrptg.cpp:234 msgid "Executable files (*.exe)|*.exe|" msgstr "Yürütülebilir dosyalar (*.exe)|*.exe|" #: ../src/common/stockitem.cpp:155 msgid "Execute" msgstr "Yürütün" #: ../src/msw/utilsexc.cpp:888 #, c-format msgid "Execution of command '%s' failed" msgstr "'%s' komutu yürütülemedi" #: ../src/os2/utilsexc.cpp:163 #, c-format msgid "Execution of command '%s' failed with error: %ul" msgstr "'%s' komutu yürütülemedi; hata: %ul" #: ../src/common/paper.cpp:106 msgid "Executive, 7 1/4 x 10 1/2 in" msgstr "Executive, 7 1/4 x 10 1/2 inç" #: ../src/msw/registry.cpp:1230 #, c-format msgid "" "Exporting registry key: file \"%s\" already exists and won't be overwritten." msgstr "Kayıt anahtarı verme: \"%s\" dosyası zaten var, üstüne yazılmayacak." #: ../src/common/fmapbase.cpp:195 msgid "Extended Unix Codepage for Japanese (EUC-JP)" msgstr "Japonca için genişletilmiş Unix Codepage (EUC-JP)" #: ../src/html/chm.cpp:725 #, c-format msgid "Extraction of '%s' into '%s' failed." msgstr "'%s'', '%s' içine açılamadı." #: ../src/common/accelcmn.cpp:238 ../src/common/accelcmn.cpp:333 msgid "F" msgstr "F" #: ../src/propgrid/advprops.cpp:640 msgid "Face Name" msgstr "Yazı Tipi Adı" #: ../src/unix/snglinst.cpp:269 msgid "Failed to access lock file." msgstr "Kilit dosyasına erişilemedi." #: ../src/unix/epolldispatcher.cpp:116 #, c-format msgid "Failed to add descriptor %d to epoll descriptor %d" msgstr "%d tanımlayıcısı %d epoll tanımlayısıcına eklenemedi" #: ../src/msw/dib.cpp:548 #, c-format msgid "Failed to allocate %luKb of memory for bitmap data." msgstr "Bit eşlem verisi için %luKb bellek ayrılamadı." #: ../src/common/glcmn.cpp:87 msgid "Failed to allocate colour for OpenGL" msgstr "OpenGL için renk ayarlanamadı" #: ../src/unix/displayx11.cpp:288 msgid "Failed to change video mode" msgstr "Görüntü kipi değiştirilemedi" #: ../src/common/image.cpp:3139 #, c-format msgid "Failed to check format of image file \"%s\"." msgstr "\"%s\" görsel dosyasının biçimi denetlenemedi." #: ../src/common/debugrpt.cpp:244 #, c-format msgid "Failed to clean up debug report directory \"%s\"" msgstr "\"%s\" hata ayıklama rapor klasörü temizlenemedi" #: ../src/common/filename.cpp:211 msgid "Failed to close file handle" msgstr "Dosya işleyici kapatılamadı" #: ../src/unix/snglinst.cpp:334 #, c-format msgid "Failed to close lock file '%s'" msgstr "'%s' kilit dosyası kapatılamadı" #: ../src/msw/clipbrd.cpp:115 msgid "Failed to close the clipboard." msgstr "Pano kapatılamadı." #: ../src/x11/utils.cpp:204 #, c-format msgid "Failed to close the display \"%s\"" msgstr "\"%s\" görüntüsü kapatılamadı" #: ../src/msw/dialup.cpp:818 msgid "Failed to connect: missing username/password." msgstr "Bağlanılamadı: kullanıcı adı/parola eksik." #: ../src/msw/dialup.cpp:764 msgid "Failed to connect: no ISP to dial." msgstr "Bağlanılamadı: aranacak ISS yok." #: ../src/common/textfile.cpp:200 #, c-format msgid "Failed to convert file \"%s\" to Unicode." msgstr "\"%s\" dosyası Unikoda çevrilemedi." #: ../src/generic/logg.cpp:976 msgid "Failed to copy dialog contents to the clipboard." msgstr "Pencere içeriği panoya kopyalanamadı." #: ../src/msw/registry.cpp:691 #, c-format msgid "Failed to copy registry value '%s'" msgstr "'%s' kayıt değeri kopyalanamadı" #: ../src/msw/registry.cpp:700 #, c-format msgid "Failed to copy the contents of registry key '%s' to '%s'." msgstr "'%s' kayıt anahtarının içeriği '%s' içine kopyalanamadı." #: ../src/common/filefn.cpp:1058 #, c-format msgid "Failed to copy the file '%s' to '%s'" msgstr "'%s' dosyası '%s' içine kopyalanamadı" #: ../src/msw/registry.cpp:678 #, c-format msgid "Failed to copy the registry subkey '%s' to '%s'." msgstr "'%s' kayıt alt anahtarı '%s' içine kopyalanamadı." #: ../src/msw/dde.cpp:1073 msgid "Failed to create DDE string" msgstr "DDE dizgesi oluşturulamadı" #: ../src/msw/mdi.cpp:590 msgid "Failed to create MDI parent frame." msgstr "MDI üst çerçevesi oluşturulamadı." #: ../src/common/filename.cpp:1080 msgid "Failed to create a temporary file name" msgstr "Geçici dosya adı oluşturulamadı" #: ../src/msw/utilsexc.cpp:235 msgid "Failed to create an anonymous pipe" msgstr "Anonim bir boru oluşturulamadı" #: ../src/msw/ole/automtn.cpp:522 #, c-format msgid "Failed to create an instance of \"%s\"" msgstr "\"%s\" kopyası oluşturulamadı" #: ../src/msw/dde.cpp:442 #, c-format msgid "Failed to create connection to server '%s' on topic '%s'" msgstr "'%s' sunucusuna '%s' konusundan bağlantı kurulamadı" #: ../src/msw/cursor.cpp:212 msgid "Failed to create cursor." msgstr "İmleç oluşturulamadı." #: ../src/common/debugrpt.cpp:209 #, c-format msgid "Failed to create directory \"%s\"" msgstr "\"%s\" klasörü oluşturulamadı" #: ../src/generic/dirdlgg.cpp:249 #, c-format msgid "" "Failed to create directory '%s'\n" "(Do you have the required permissions?)" msgstr "" "'%s' klasörü oluşturulamadı\n" "(Yeterli izniniz var mı?)" #: ../src/unix/epolldispatcher.cpp:84 msgid "Failed to create epoll descriptor" msgstr "epoll tanımlayıcısı oluşturulamadı" #: ../src/msw/mimetype.cpp:198 #, c-format msgid "Failed to create registry entry for '%s' files." msgstr "'%s' dosyaları için kayıt anahtarı oluşturulamadı." #: ../src/msw/fdrepdlg.cpp:442 #, c-format msgid "Failed to create the standard find/replace dialog (error code %d)" msgstr "Standart bul/değiştir penceresi oluşturulamadı (hata kodu %d)" #: ../src/unix/wakeuppipe.cpp:52 msgid "Failed to create wake up pipe used by event loop." msgstr "Olay döngüsünde kullanılan uyandırma borusu oluşturulamadı." #: ../src/html/winpars.cpp:739 #, c-format msgid "Failed to display HTML document in %s encoding" msgstr "HTML belgesi %s kodlamasıyla görüntülenemedi" #: ../src/msw/clipbrd.cpp:127 msgid "Failed to empty the clipboard." msgstr "Pano temizlenemedi." #: ../src/unix/displayx11.cpp:265 msgid "Failed to enumerate video modes" msgstr "Görüntü kipleri sıralanamadı" #: ../src/msw/dde.cpp:727 msgid "Failed to establish an advise loop with DDE server" msgstr "DDE sunucusuyla danışma döngüsü sağlanamadı" #: ../src/msw/dialup.cpp:650 ../src/msw/dialup.cpp:884 #, c-format msgid "Failed to establish dialup connection: %s" msgstr "Çevirmeli bağlantı gerçekleştirilemedi: %s" #: ../src/unix/utilsunx.cpp:617 #, c-format msgid "Failed to execute '%s'\n" msgstr "'%s' çalıştırılamadı\n" #: ../src/common/debugrpt.cpp:725 msgid "Failed to execute curl, please install it in PATH." msgstr "curl çalıştırılamadı, lütfen YOL içine yükleyin." #: ../src/msw/ole/automtn.cpp:505 #, c-format msgid "Failed to find CLSID of \"%s\"" msgstr "\"%s\" için CLSID bulunamadı" #: ../src/common/regex.cpp:434 ../src/common/regex.cpp:482 #, c-format msgid "Failed to find match for regular expression: %s" msgstr "Kurallı ifadeye uygun veri bulunamadı: %s" #: ../src/msw/dialup.cpp:716 #, c-format msgid "Failed to get ISP names: %s" msgstr "ISS adları alınamadı: %s" #: ../src/msw/ole/automtn.cpp:574 #, c-format msgid "Failed to get OLE automation interface for \"%s\"" msgstr "\"%s\" için OLE otomasyonu arayüzü getirilemedi" #: ../src/msw/clipbrd.cpp:747 msgid "Failed to get data from the clipboard" msgstr "Panodan veri alınamadı" #: ../src/common/time.cpp:249 msgid "Failed to get the local system time" msgstr "Yerel sistem zamanı alınamadı" #: ../src/common/filefn.cpp:1453 msgid "Failed to get the working directory" msgstr "Çalışma klasörü alınamadı" #: ../src/univ/theme.cpp:113 msgid "Failed to initialize GUI: no built-in themes found." msgstr "GUI başlatılamadı: içsel bir tema bulunamadı." #: ../src/msw/helpchm.cpp:63 msgid "Failed to initialize MS HTML Help." msgstr "MS HTML Yardım başlatılamadı." #: ../src/msw/glcanvas.cpp:892 msgid "Failed to initialize OpenGL" msgstr "OpenGL başlatılamadı" #: ../src/msw/dialup.cpp:879 #, c-format msgid "Failed to initiate dialup connection: %s" msgstr "Çevirmeli bağlantı başlatılamadı: %s" #: ../src/gtk/textctrl.cpp:1117 msgid "Failed to insert text in the control." msgstr "Metin denetime eklenemedi." #: ../src/unix/snglinst.cpp:241 #, c-format msgid "Failed to inspect the lock file '%s'" msgstr "'%s' kilit dosyası incelenemedi" #: ../src/unix/appunix.cpp:182 msgid "Failed to install signal handler" msgstr "İşaret işleyici kurulamadı" #: ../src/unix/threadpsx.cpp:1162 msgid "" "Failed to join a thread, potential memory leak detected - please restart the " "program" msgstr "" "İş parçacığına bağlanılamadı, olası bellek taşması bulundu - lütfen programı " "yeniden başlatın" #: ../src/msw/utils.cpp:745 #, c-format msgid "Failed to kill process %d" msgstr "%d işlemi sonlandırılamadı" #: ../src/common/image.cpp:2365 #, c-format msgid "Failed to load bitmap \"%s\" from resources." msgstr "Kaynaklardan \"%s\" bit eşlemi yüklenemedi." #: ../src/common/image.cpp:2374 #, c-format msgid "Failed to load icon \"%s\" from resources." msgstr "Kaynaklardan \"%s\" simgesi yüklenemedi." #: ../src/common/iconbndl.cpp:182 #, c-format msgid "Failed to load image %%d from file '%s'." msgstr "%%d görseli '%s' dosyasından yüklenemedi." #: ../src/common/iconbndl.cpp:190 #, c-format msgid "Failed to load image %d from stream." msgstr "%d görseli akıştan yüklenemedi." #: ../src/common/image.cpp:2450 ../src/common/image.cpp:2469 #, c-format msgid "Failed to load image from file \"%s\"." msgstr "\"%s\" dosyasından görsel yüklenemedi." #: ../src/msw/enhmeta.cpp:97 #, c-format msgid "Failed to load metafile from file \"%s\"." msgstr "\"%s\" dosyasından metafile yüklenemedi." #: ../src/msw/volume.cpp:327 msgid "Failed to load mpr.dll." msgstr "mpr.dll yüklenemedi." #: ../src/msw/utils.cpp:1120 #, c-format msgid "Failed to load resource \"%s\"." msgstr "\"%s\" kaynağı yüklenemedi." #: ../src/common/dynlib.cpp:100 #, c-format msgid "Failed to load shared library '%s'" msgstr "'%s' paylaşılmış kitaplığı yüklenemedi" #: ../src/msw/utils.cpp:1127 #, c-format msgid "Failed to lock resource \"%s\"." msgstr "\"%s\" kaynağı kilitlenemedi." #: ../src/unix/snglinst.cpp:198 #, c-format msgid "Failed to lock the lock file '%s'" msgstr "'%s' kilit dosyası kilitlenemedi" #: ../src/unix/epolldispatcher.cpp:136 #, c-format msgid "Failed to modify descriptor %d in epoll descriptor %d" msgstr "%d tanımlayıcısı değiştirilemedi (epoll %d tanımlayıcısındaki)" #: ../src/common/filename.cpp:2681 #, c-format msgid "Failed to modify file times for '%s'" msgstr "'%s' için dosya zamanları değiştirilemedi" #: ../src/common/selectdispatcher.cpp:252 msgid "Failed to monitor I/O channels" msgstr "G/Ç kanalları izlenemedi" #: ../src/common/filename.cpp:194 #, c-format msgid "Failed to open '%s' for reading" msgstr "'%s' okunmak üzere açılamadı" #: ../src/common/filename.cpp:199 #, c-format msgid "Failed to open '%s' for writing" msgstr "'%s' yazılmak üzere açılamadı" #: ../src/html/chm.cpp:141 #, c-format msgid "Failed to open CHM archive '%s'." msgstr "'%s' CHM arşivi açılamadı." #: ../src/common/utilscmn.cpp:1135 #, c-format msgid "Failed to open URL \"%s\" in default browser." msgstr "'%s' İnternet adresi varsayılan tarayıcıyla açılamadı." #: ../include/wx/msw/private/fswatcher.h:92 #, c-format msgid "Failed to open directory \"%s\" for monitoring." msgstr "\"%s\"klasörü izlenmek üzere açılamadı." #: ../src/x11/utils.cpp:223 #, c-format msgid "Failed to open display \"%s\"." msgstr "\"%s\" görüntüsü açılamadı." #: ../src/common/filename.cpp:1115 msgid "Failed to open temporary file." msgstr "Geçici dosya açılamadı." #: ../src/msw/clipbrd.cpp:94 msgid "Failed to open the clipboard." msgstr "Pano açılamadı." #: ../src/common/translation.cpp:1170 #, c-format msgid "Failed to parse Plural-Forms: '%s'" msgstr "Çoğul-formlar ayrıştırılamadı: '%s'" #: ../src/unix/mediactrl.cpp:1268 #, c-format msgid "Failed to prepare playing \"%s\"." msgstr "\"%s\" oynatmaya hazırlanamadı." #: ../src/msw/clipbrd.cpp:647 msgid "Failed to put data on the clipboard" msgstr "Veri panoya konulamadı" #: ../src/unix/snglinst.cpp:278 msgid "Failed to read PID from lock file." msgstr "Kilit dosyasından PID okunamadı." #: ../src/common/fileconf.cpp:464 msgid "Failed to read config options." msgstr "Ayarlar okunamadı." #: ../src/common/docview.cpp:678 #, c-format msgid "Failed to read document from the file \"%s\"." msgstr "\"%s\" dosyasından belge okunamadı." #: ../src/dfb/evtloop.cpp:98 msgid "Failed to read event from DirectFB pipe" msgstr "DirectFB borusundan olay okunamadı" #: ../src/unix/wakeuppipe.cpp:120 msgid "Failed to read from wake-up pipe" msgstr "Uyandırma borusu okunamadı" #: ../src/unix/utilsunx.cpp:685 msgid "Failed to redirect child process input/output" msgstr "Alt iş giriş/çıkışı yönlendirilemedi" #: ../src/msw/utilsexc.cpp:697 msgid "Failed to redirect the child process IO" msgstr "Alt iş giriş/çıkışı yönlendirilemedi" #: ../src/msw/dde.cpp:293 #, c-format msgid "Failed to register DDE server '%s'" msgstr "'%s' DDE sunucusuna kayıt olunamadı" #: ../src/common/fontmap.cpp:245 #, c-format msgid "Failed to remember the encoding for the charset '%s'." msgstr "'%s' karakter kümesi için kodlama anımsanamadı." #: ../src/common/debugrpt.cpp:227 #, c-format msgid "Failed to remove debug report file \"%s\"" msgstr "\"%s\" hata ayıklama rapor dosyası silinemedi" #: ../src/unix/snglinst.cpp:322 #, c-format msgid "Failed to remove lock file '%s'" msgstr "'%s' kilit dosyası silinemedi" #: ../src/unix/snglinst.cpp:288 #, c-format msgid "Failed to remove stale lock file '%s'." msgstr "'%s' eski kilit dosyası silinemedi." #: ../src/msw/registry.cpp:528 #, c-format msgid "Failed to rename registry value '%s' to '%s'." msgstr "'%s' kayıt değeri '%s' olarak yeniden adlandırılamadı." #: ../src/common/filefn.cpp:1168 #, c-format msgid "" "Failed to rename the file '%s' to '%s' because the destination file already " "exists." msgstr "" "'%s' dosyası aynı adlı bir dosya olduğundan '%s' olarak yeniden " "adlandırılamadı." #: ../src/msw/registry.cpp:633 #, c-format msgid "Failed to rename the registry key '%s' to '%s'." msgstr "'%s' kayıt anahtarı '%s' olarak yeniden adlandırılamadı." #: ../src/msw/clipbrd.cpp:497 msgid "Failed to retrieve data from the clipboard." msgstr "Panodan veri alınamadı." #: ../src/common/filename.cpp:2777 #, c-format msgid "Failed to retrieve file times for '%s'" msgstr "'%s' için dosya zamanları alınamadı" #: ../src/msw/dialup.cpp:487 msgid "Failed to retrieve text of RAS error message" msgstr "RAS hata iletisi metni alınamadı" #: ../src/msw/clipbrd.cpp:784 msgid "Failed to retrieve the supported clipboard formats" msgstr "Desteklenen pano biçimleri alınamadı" #: ../src/common/docview.cpp:649 #, c-format msgid "Failed to save document to the file \"%s\"." msgstr "Belge \"%s\" dosyasına kaydedilemedi." #: ../src/msw/dib.cpp:326 #, c-format msgid "Failed to save the bitmap image to file \"%s\"." msgstr "Bit eşlemi görüntüsü \"%s\" dosyasına kaydedilemedi." #: ../src/msw/dde.cpp:768 msgid "Failed to send DDE advise notification" msgstr "DDE danışma uyarısı gönderilemedi" #: ../src/common/ftp.cpp:404 #, c-format msgid "Failed to set FTP transfer mode to %s." msgstr "FTP aktarım kipi %s olarak ayarlanamadı." #: ../src/msw/clipbrd.cpp:373 msgid "Failed to set clipboard data." msgstr "Pano verisi ayarlanamadı." #: ../src/unix/snglinst.cpp:181 #, c-format msgid "Failed to set permissions on lock file '%s'" msgstr "'%s' kilit dosyasının izinleri ayarlanamadı" #: ../src/unix/utilsunx.cpp:674 msgid "Failed to set process priority" msgstr "İşlem önceliği ayarlanamadı" #: ../src/common/file.cpp:576 msgid "Failed to set temporary file permissions" msgstr "Geçici dosya izinleri ayarlanamadı" #: ../src/gtk/textctrl.cpp:1058 msgid "Failed to set text in the text control." msgstr "Metin denetime yerleştirilemedi." #: ../src/unix/threadpsx.cpp:1293 #, c-format msgid "Failed to set thread concurrency level to %lu" msgstr "%lu iş parçacığı öncelik düzeyi ayarlanamadı." #: ../src/unix/threadpsx.cpp:1377 ../src/unix/threadpsx.cpp:1387 #, c-format msgid "Failed to set thread priority %d." msgstr "%d iş parçacığı önceliği ayarlanamadı." #: ../src/unix/utilsunx.cpp:791 msgid "Failed to set up non-blocking pipe, the program might hang." msgstr "Engellemesiz boru kurulamadı, program takılabilir." #: ../src/common/fs_mem.cpp:261 #, c-format msgid "Failed to store image '%s' to memory VFS!" msgstr "'%s' görüntüsü VFS belleğine yerleştirilemedi!" #: ../src/dfb/evtloop.cpp:170 msgid "Failed to switch DirectFB pipe to non-blocking mode" msgstr "DirectFB borusu engellemesiz kipe döndürülemedi" #: ../src/unix/wakeuppipe.cpp:59 msgid "Failed to switch wake up pipe to non-blocking mode" msgstr "Uyandırma borusu engellemesiz kipe döndürülemedi" #: ../src/unix/threadpsx.cpp:1569 msgid "Failed to terminate a thread." msgstr "Bir iş parçacığı sonlandırılamadı." #: ../src/msw/dde.cpp:746 msgid "Failed to terminate the advise loop with DDE server" msgstr "DDE sunucusuyla danışma döngüsü sonlandırılamadı" #: ../src/msw/dialup.cpp:959 #, c-format msgid "Failed to terminate the dialup connection: %s" msgstr "Çevirmeli bağlantı sonlandırılamadı: %s" #: ../src/common/filename.cpp:2696 #, c-format msgid "Failed to touch the file '%s'" msgstr "'%s' dosyasına dokunulamadı" #: ../src/unix/snglinst.cpp:328 #, c-format msgid "Failed to unlock lock file '%s'" msgstr "'%s' kilit dosyasının kilidi kaldırılamadı" #: ../src/msw/dde.cpp:314 #, c-format msgid "Failed to unregister DDE server '%s'" msgstr "'%s' DDE sunucusundan kayıt iptali yapılamadı" #: ../src/unix/epolldispatcher.cpp:155 #, c-format msgid "Failed to unregister descriptor %d from epoll descriptor %d" msgstr "%d tanımlayıcısı kaldırılamadı (%d epoll tanımlayıcısından)" #: ../src/common/fileconf.cpp:1037 msgid "Failed to update user configuration file." msgstr "Kullanıcı ayarları dosyası kaydedilemedi." #: ../src/common/debugrpt.cpp:738 #, c-format msgid "Failed to upload the debug report (error code %d)." msgstr "Hata ayıklama raporu yüklenemedi (hata kodu %d)." #: ../src/unix/snglinst.cpp:168 #, c-format msgid "Failed to write to lock file '%s'" msgstr "'%s' kilit dosyasına yazılamadı" #: ../src/propgrid/propgrid.cpp:172 msgid "False" msgstr "Yanlış" #: ../src/propgrid/advprops.cpp:658 msgid "Family" msgstr "Aile" #: ../src/common/stockitem.cpp:157 ../src/msw/wince/filedlgwce.cpp:121 msgid "File" msgstr "Dosya" #: ../src/common/docview.cpp:666 #, c-format msgid "File \"%s\" could not be opened for reading." msgstr "\"%s\" dosyası okunmak üzere açılamadı." #: ../src/common/docview.cpp:643 #, c-format msgid "File \"%s\" could not be opened for writing." msgstr "\"%s\" dosyası yazılmak üzere açılamadı." #: ../src/gtk/filedlg.cpp:56 #, c-format msgid "File '%s' already exists, do you really want to overwrite it?" msgstr "'%s' dosyası zaten var, üstüne yazılsın mı?" #: ../src/os2/filedlg.cpp:310 #, c-format msgid "" "File '%s' already exists.\n" "Do you want to replace it?" msgstr "" "'%s' dosyası zaten var.\n" "Üstüne yazılsın mı?" #: ../src/common/filefn.cpp:1207 #, c-format msgid "File '%s' couldn't be removed" msgstr "'%s' dosyası silinemedi" #: ../src/common/filefn.cpp:1187 #, c-format msgid "File '%s' couldn't be renamed '%s'" msgstr "'%s' dosyası '%s' olarak yeniden adlandırılamadı" #: ../src/richtext/richtextctrl.cpp:2688 ../src/common/textcmn.cpp:921 msgid "File couldn't be loaded." msgstr "Dosya yüklenemedi." #: ../src/msw/filedlg.cpp:458 #, c-format msgid "File dialog failed with error code %0lx." msgstr "Dosya diyaloğu %0lx hata koduyla sonlandı." #: ../src/common/docview.cpp:1771 msgid "File error" msgstr "Dosya hatası" #: ../src/generic/dirctrlg.cpp:688 ../src/generic/filectrlg.cpp:805 msgid "File name exists already." msgstr "Aynı adlı bir dosya zaten var." #: ../src/motif/filedlg.cpp:220 msgid "Files" msgstr "Dosyalar" #: ../src/common/filefn.cpp:1761 #, c-format msgid "Files (%s)" msgstr "Dosyalar (%s)" #: ../src/motif/filedlg.cpp:218 msgid "Filter" msgstr "Süzgeç" #: ../src/common/stockitem.cpp:158 ../src/html/helpwnd.cpp:500 msgid "Find" msgstr "Bulun" #: ../src/common/stockitem.cpp:159 msgid "First" msgstr "İlk" #: ../src/common/prntbase.cpp:1518 msgid "First page" msgstr "İlk sayfa" #: ../src/richtext/richtextsizepage.cpp:521 msgid "Fixed" msgstr "Sabit" #: ../src/html/helpwnd.cpp:1219 msgid "Fixed font:" msgstr "Sabit yazı tipi:" #: ../src/html/helpwnd.cpp:1282 msgid "Fixed size face.
    bold italic " msgstr "Sabit boyutlu tip.
    koyu eğik " #: ../src/richtext/richtextsizepage.cpp:229 msgid "Floating" msgstr "Yüzen" #: ../src/common/stockitem.cpp:160 msgid "Floppy" msgstr "Esnek" #: ../src/common/paper.cpp:112 msgid "Folio, 8 1/2 x 13 in" msgstr "Kitap yaprağı, 8 1/2 x 13 inç" #: ../src/richtext/richtextformatdlg.cpp:324 ../src/osx/carbon/fontdlg.cpp:473 #: ../src/common/stockitem.cpp:194 msgid "Font" msgstr "Yazı tipi" #: ../src/richtext/richtextfontpage.cpp:230 msgid "Font &weight:" msgstr "Yazı &koyuluğu:" #: ../src/html/helpwnd.cpp:1220 msgid "Font size:" msgstr "Yazı boyutu" #: ../src/richtext/richtextfontpage.cpp:217 msgid "Font st&yle:" msgstr "Yazı &stili:" #: ../src/osx/carbon/fontdlg.cpp:515 msgid "Font:" msgstr "Yazı tipi:" #: ../src/dfb/fontmgr.cpp:198 #, c-format msgid "Fonts index file %s disappeared while loading fonts." msgstr "Yazı tipleri yüklenirken %s yazı tipi dizin dosyası kayboldu." #: ../src/unix/utilsunx.cpp:651 msgid "Fork failed" msgstr "Ayrılma başarısız" #: ../src/common/stockitem.cpp:161 msgid "Forward" msgstr "İleri" #: ../src/common/xtixml.cpp:235 msgid "Forward hrefs are not supported" msgstr "Yönlendirme href biçimi desteklenmiyor" #: ../src/html/helpwnd.cpp:888 #, c-format msgid "Found %i matches" msgstr "%i sonuç bulundu" #: ../src/generic/prntdlgg.cpp:238 msgid "From:" msgstr "Kaynak:" #: ../src/common/imaggif.cpp:160 msgid "GIF: Invalid gif index." msgstr "GIF: Geçersiz gif dizini." #: ../src/common/imaggif.cpp:150 msgid "GIF: data stream seems to be truncated." msgstr "GIF: veri akışı budanmış görünüyor." #: ../src/common/imaggif.cpp:134 msgid "GIF: error in GIF image format." msgstr "GIF: GIF görsel biçimi hatası." #: ../src/common/imaggif.cpp:137 msgid "GIF: not enough memory." msgstr "GIF: yetersiz bellek." #: ../src/common/imaggif.cpp:140 msgid "GIF: unknown error!!!" msgstr "GIF: bilinmeyen hata!!!" #: ../src/gtk/window.cpp:4288 msgid "" "GTK+ installed on this machine is too old to support screen compositing, " "please install GTK+ 2.12 or later." msgstr "" "Yüklü GTK+ çok eski ve ekran karmayı desteklemiyor. Lütfen GTK+ 2.12 ya da " "üzeri bir sürüm yükleyin." #: ../src/univ/themes/gtk.cpp:525 msgid "GTK+ theme" msgstr "GTK+ teması" #: ../src/common/preferencescmn.cpp:39 msgid "General" msgstr "Genel" #: ../src/common/prntbase.cpp:243 msgid "Generic PostScript" msgstr "Genel PostScript" #: ../src/common/paper.cpp:136 msgid "German Legal Fanfold, 8 1/2 x 13 in" msgstr "Alman Legal Fanfold, 8 1/2 x 13 inç" #: ../src/common/paper.cpp:135 msgid "German Std Fanfold, 8 1/2 x 12 in" msgstr "Alman Standart Fanfold, 8 1/2 x 12 inç" #: ../include/wx/xtiprop.h:188 msgid "GetProperty called w/o valid getter" msgstr "'GetProperty' işlevi geçerli bir alıcı olmaksızın çağrıldı" #: ../include/wx/xtiprop.h:266 msgid "GetPropertyCollection called on a generic accessor" msgstr "'GetPropertyCollection' işlevi genel bir erişici üzerinden çağrıldı" #: ../include/wx/xtiprop.h:206 msgid "GetPropertyCollection called w/o valid collection getter" msgstr "" "'GetPropertyCollection' işlevi geçerli bir koleksiyon alıcısı olmaksızın " "çağrıldı" #: ../src/html/helpwnd.cpp:673 msgid "Go back" msgstr "Geri gidin" #: ../src/html/helpwnd.cpp:674 msgid "Go forward" msgstr "İleri gidin" #: ../src/html/helpwnd.cpp:676 msgid "Go one level up in document hierarchy" msgstr "Belge hiyerarşisinde bir düzey yukarı gidin" #: ../src/generic/filedlgg.cpp:223 ../src/generic/dirdlgg.cpp:136 msgid "Go to home directory" msgstr "Açılış klasörüne gidin" #: ../src/generic/filedlgg.cpp:219 msgid "Go to parent directory" msgstr "Üst klasöre gidin" #: ../src/generic/aboutdlgg.cpp:76 msgid "Graphics art by " msgstr "Grafikleri hazırlayan" #: ../src/common/fmapbase.cpp:154 msgid "Greek (ISO-8859-7)" msgstr "Yunanca (ISO-8859-7)" #: ../src/richtext/richtextborderspage.cpp:547 msgid "Groove" msgstr "Groove" #: ../src/common/zstream.cpp:158 ../src/common/zstream.cpp:318 msgid "Gzip not supported by this version of zlib" msgstr "Bu Zlib sürümü Gzip desteklemiyor" #: ../src/common/accelcmn.cpp:75 msgid "HELP" msgstr "HELP" #: ../src/common/accelcmn.cpp:60 msgid "HOME" msgstr "HOME" #: ../src/html/helpwnd.cpp:1552 msgid "HTML Help Project (*.hhp)|*.hhp|" msgstr "HTML Yardım Projesi (*.hhp)|*.hhp|" #: ../src/html/htmlwin.cpp:659 #, c-format msgid "HTML anchor %s does not exist." msgstr "%s HTML çapası bulunamadı." #: ../src/html/helpwnd.cpp:1550 msgid "HTML files (*.html;*.htm)|*.html;*.htm|" msgstr "HTML dosyaları (*.html;*.htm)|*.html;*.htm|" #: ../src/common/stockitem.cpp:162 msgid "Harddisk" msgstr "Sabit disk" #: ../src/common/fmapbase.cpp:155 msgid "Hebrew (ISO-8859-8)" msgstr "İbranice (ISO-8859-8)" #: ../include/wx/msgdlg.h:275 ../src/osx/button_osx.cpp:39 #: ../src/common/stockitem.cpp:163 ../src/html/helpdlg.cpp:66 #: ../src/html/helpfrm.cpp:116 msgid "Help" msgstr "Yardım" #: ../src/html/helpwnd.cpp:1213 msgid "Help Browser Options" msgstr "Yardım Tarayıcısı Ayarları" #: ../src/generic/helpext.cpp:458 ../src/generic/helpext.cpp:459 msgid "Help Index" msgstr "Yardım Dizini" #: ../src/html/helpwnd.cpp:1534 msgid "Help Printing" msgstr "Yardım Yazdırma" #: ../src/html/helpwnd.cpp:814 msgid "Help Topics" msgstr "Yardım Konuları" #: ../src/html/helpwnd.cpp:1551 msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|" msgstr "Yardım kitapları (*.htb)|*.htb|Yardım kitapları (*.zip)|*.zip|" #: ../src/generic/helpext.cpp:271 #, c-format msgid "Help directory \"%s\" not found." msgstr "\"%s\" yardım klasörü bulunamadı." #: ../src/generic/helpext.cpp:279 #, c-format msgid "Help file \"%s\" not found." msgstr "\"%s\" yardım dosyası bulunamadı." #: ../src/html/helpctrl.cpp:63 #, c-format msgid "Help: %s" msgstr "Yardım: %s" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:649 #, c-format msgid "Hide %s" msgstr "%s gizleyin" #: ../src/osx/menu_osx.cpp:604 ../src/osx/menu_osx.cpp:651 msgid "Hide Others" msgstr "Diğerlerini Gizleyin" #: ../src/generic/infobar.cpp:85 msgid "Hide this notification message." msgstr "Bu uyarı iletisini gizleyin." #: ../src/generic/dirdlgg.cpp:98 ../src/common/stockitem.cpp:164 msgid "Home" msgstr "Açılış" #: ../src/generic/dirctrlg.cpp:624 msgid "Home directory" msgstr "Açılış klasörü" #: ../src/richtext/richtextsizepage.cpp:253 #: ../src/richtext/richtextsizepage.cpp:255 msgid "How the object will float relative to the text." msgstr "Nesnenin metne göre nasıl yüzeceği." #: ../src/common/imagbmp.cpp:1118 msgid "ICO: Error in reading mask DIB." msgstr "ICO: DIB maskesi okuma hatası." #: ../src/common/imagbmp.cpp:1233 ../src/common/imagbmp.cpp:1294 #: ../src/common/imagbmp.cpp:1305 ../src/common/imagbmp.cpp:1318 #: ../src/common/imagbmp.cpp:1363 ../src/common/imagbmp.cpp:1375 #: ../src/common/imagbmp.cpp:1386 msgid "ICO: Error writing the image file!" msgstr "ICO: Görsel dosyası yazma hatası!" #: ../src/common/imagbmp.cpp:1198 msgid "ICO: Image too tall for an icon." msgstr "ICO: Görsel simge için çok uzun." #: ../src/common/imagbmp.cpp:1206 msgid "ICO: Image too wide for an icon." msgstr "ICO: Görsel simge için çok geniş." #: ../src/common/imagbmp.cpp:1466 msgid "ICO: Invalid icon index." msgstr "ICO: Geçersiz simge dizini." #: ../src/common/imagiff.cpp:759 msgid "IFF: data stream seems to be truncated." msgstr "IIF: veri akışı budanmış görünüyor." #: ../src/common/imagiff.cpp:743 msgid "IFF: error in IFF image format." msgstr "IIF: IFF görsel biçimi hatası." #: ../src/common/imagiff.cpp:746 msgid "IFF: not enough memory." msgstr "IIF: yetersiz bellek." #: ../src/common/imagiff.cpp:749 msgid "IFF: unknown error!!!" msgstr "IIF: bilinmeyen hata!!!" #: ../src/common/accelcmn.cpp:50 msgid "INS" msgstr "INS" #: ../src/common/accelcmn.cpp:51 msgid "INSERT" msgstr "INSERT" #: ../src/common/fmapbase.cpp:197 msgid "ISO-2022-JP" msgstr "ISO-2022-JP" #: ../src/osx/carbon/dataview.cpp:2420 msgid "Icon & text renderer cannot render value; value type: " msgstr "Simge ve metin görüntüleyici değeri işleyemiyor; değer tipi:" #: ../src/html/htmprint.cpp:282 msgid "" "If possible, try changing the layout parameters to make the printout more " "narrow." msgstr "" "Olabiliyorsa, çıktıyı daraltmak için sayfa ayarlarını değiştirmeyi deneyin." #: ../src/generic/dbgrptg.cpp:358 msgid "" "If you have any additional information pertaining to this bug\n" "report, please enter it here and it will be joined to it:" msgstr "" "Bu hata raporuna ekleyeceğiniz bir bilgi varsa,\n" "lütfen buraya yazın:" #: ../src/generic/dbgrptg.cpp:324 msgid "" "If you wish to suppress this debug report completely, please choose the " "\"Cancel\" button,\n" "but be warned that it may hinder improving the program, so if\n" "at all possible please do continue with the report generation.\n" msgstr "" "Bu hata raporunu göndermek istemiyorsanız, \"İptal\" düğmesine tıklayın,\n" "ancak bu rapor, yazılımın geliştirilmesine yardımcı olabilir, \n" "bu nedenle olanağınız varsa raporu gönderin.\n" #: ../src/msw/registry.cpp:1395 #, c-format msgid "Ignoring value \"%s\" of the key \"%s\"." msgstr "\"%s\" değeri \"%s\" anahtarı için yok sayılıyor." #: ../src/common/xtistrm.cpp:299 msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source" msgstr "Olay kaynağı nesne sınıfı geçersiz (Non-wxEvtHandler)" #: ../src/common/xti.cpp:513 msgid "Illegal Parameter Count for ConstructObject Method" msgstr "ConstructObject yordamı için parametre sayısı geçersiz" #: ../src/common/xti.cpp:501 msgid "Illegal Parameter Count for Create Method" msgstr "Create yordamı için parametre sayısı geçersiz" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/filectrlg.cpp:791 msgid "Illegal directory name." msgstr "Klasör adı geçersiz." #: ../src/generic/filectrlg.cpp:1380 msgid "Illegal file specification." msgstr "Dosya tanımı geçersiz." #: ../src/common/image.cpp:2158 msgid "Image and mask have different sizes." msgstr "Görsel ve maske farklı boyutlarda." #: ../src/common/image.cpp:2609 #, c-format msgid "Image file is not of type %d." msgstr "Görsel dosyası %d tipinde değil." #: ../src/common/image.cpp:2739 #, c-format msgid "Image is not of type %s." msgstr "Görsel dosyası %s tipinde değil." #: ../src/msw/textctrl.cpp:399 msgid "" "Impossible to create a rich edit control, using simple text control instead. " "Please reinstall riched32.dll" msgstr "" "Zengin metin denetimi oluşturulamıyor. Onun yerine basit metin denetimi " "kullanılacak. Lütfen riched32.dll kitaplığını yeniden yükleyin." #: ../src/unix/utilsunx.cpp:307 msgid "Impossible to get child process input" msgstr "Alt iş girdisi alınamıyor" #: ../src/common/filefn.cpp:1074 #, c-format msgid "Impossible to get permissions for file '%s'" msgstr "'%s' dosyasının izinleri okunamıyor" #: ../src/common/filefn.cpp:1088 #, c-format msgid "Impossible to overwrite the file '%s'" msgstr "'%s' dosyasının üzerine yazılamıyor" #: ../src/common/filefn.cpp:1142 #, c-format msgid "Impossible to set permissions for the file '%s'" msgstr "'%s' dosyasının izinleri değiştirilemiyor" #: ../src/common/gifdecod.cpp:818 #, c-format msgid "Incorrect GIF frame size (%u, %d) for the frame #%u" msgstr "GIF kare sayısı yanlış (%u, %d) #%u karesi" #: ../src/msw/ole/automtn.cpp:624 msgid "Incorrect number of arguments." msgstr "Argüman sayısı hatalı." #: ../src/common/stockitem.cpp:165 msgid "Indent" msgstr "Girinti" #: ../src/richtext/richtextformatdlg.cpp:330 msgid "Indents && Spacing" msgstr "Girinti ve Boşluklar" #: ../src/common/stockitem.cpp:166 ../src/html/helpwnd.cpp:525 msgid "Index" msgstr "Dizin" #: ../src/common/fmapbase.cpp:159 msgid "Indian (ISO-8859-12)" msgstr "Hintçe (ISO-8859-12)" #: ../src/common/stockitem.cpp:167 msgid "Info" msgstr "Bilgiler" #: ../src/common/init.cpp:276 msgid "Initialization failed in post init, aborting." msgstr "Hazırlığın ardından başlatılamadı, vazgeçiliyor." #: ../src/richtext/richtextsymboldlg.cpp:472 msgid "Insert" msgstr "Ekleyin" #: ../src/richtext/richtextbuffer.cpp:7687 msgid "Insert Field" msgstr "Alan Ekleyin" #: ../src/richtext/richtextbuffer.cpp:7598 #: ../src/richtext/richtextbuffer.cpp:8551 msgid "Insert Image" msgstr "Görsel Ekleyin" #: ../src/richtext/richtextbuffer.cpp:7645 msgid "Insert Object" msgstr "Nesne Ekleyin" #: ../src/richtext/richtextctrl.cpp:1172 ../src/richtext/richtextctrl.cpp:1362 #: ../src/richtext/richtextbuffer.cpp:7440 #: ../src/richtext/richtextbuffer.cpp:7470 #: ../src/richtext/richtextbuffer.cpp:7514 msgid "Insert Text" msgstr "Metin Ekleyin" #: ../src/richtext/richtextindentspage.cpp:295 #: ../src/richtext/richtextindentspage.cpp:297 msgid "Inserts a page break before the paragraph." msgstr "Paragraftan önce bir sayfa sonu ekler." #: ../src/richtext/richtextborderspage.cpp:549 msgid "Inset" msgstr "Gömme" #: ../src/gtk/app.cpp:429 #, c-format msgid "Invalid GTK+ command line option, use \"%s --help\"" msgstr "Geçersiz GTK+ komut satırı seçeneği, \"%s --help\" yazarak yardım alın" #: ../src/common/imagtiff.cpp:314 msgid "Invalid TIFF image index." msgstr "TIFF görsel dizini geçersiz." #: ../src/osx/carbon/dataview.cpp:1782 ../src/osx/carbon/dataview.cpp:1877 msgid "Invalid data view item" msgstr "Veri görünümü ögesi geçersiz" #: ../src/common/appcmn.cpp:266 #, c-format msgid "Invalid display mode specification '%s'." msgstr "'%s' görünüm kipi özelliği geçersiz." #: ../src/x11/app.cpp:121 #, c-format msgid "Invalid geometry specification '%s'" msgstr "'%s' geometri özelliği geçersiz." #: ../src/unix/fswatcher_inotify.cpp:298 #, c-format msgid "Invalid inotify event for \"%s\"" msgstr "\"%s\" için inotify etkinliği geçersiz" #: ../src/unix/snglinst.cpp:306 #, c-format msgid "Invalid lock file '%s'." msgstr "'%s' kilit dosyası geçersiz." #: ../src/common/translation.cpp:1111 msgid "Invalid message catalog." msgstr "İleti kataloğu geçersiz." #: ../src/common/xtistrm.cpp:409 ../src/common/xtistrm.cpp:424 msgid "Invalid or Null Object ID passed to GetObjectClassInfo" msgstr "GetObjectClassInfo işlevine geçersiz ya da boş nesne kodu gönderildi" #: ../src/common/xtistrm.cpp:439 msgid "Invalid or Null Object ID passed to HasObjectClassInfo" msgstr "HasObjectClassInfo işlevine geçersiz ya da boş nesne kodu gönderildi" #: ../src/common/regex.cpp:313 #, c-format msgid "Invalid regular expression '%s': %s" msgstr "Kurallı ifade geçersiz '%s': %s" #: ../src/common/config.cpp:226 #, c-format msgid "Invalid value %ld for a boolean key \"%s\" in config file." msgstr "Ayar dosyasındaki %ld değeri \"%s\" ikili anahtarı için geçersiz." #: ../src/generic/fontdlgg.cpp:329 ../src/richtext/richtextfontpage.cpp:333 #: ../src/osx/carbon/fontdlg.cpp:547 ../src/common/stockitem.cpp:168 msgid "Italic" msgstr "Yatık" #: ../src/common/paper.cpp:131 msgid "Italy Envelope, 110 x 230 mm" msgstr "İtalyan Zarf, 110 x 230 mm" #: ../src/common/imagjpeg.cpp:255 msgid "JPEG: Couldn't load - file is probably corrupted." msgstr "JPEG: Yüklenemedi - dosya bozuk olabilir." #: ../src/common/imagjpeg.cpp:434 msgid "JPEG: Couldn't save image." msgstr "JPEG: Görsel kaydedilemedi." #: ../src/common/paper.cpp:164 msgid "Japanese Double Postcard 200 x 148 mm" msgstr "Japon Çift Postakartı 200 x 148 mm" #: ../src/common/paper.cpp:168 msgid "Japanese Envelope Chou #3" msgstr "Japon Zarf Chou #3" #: ../src/common/paper.cpp:181 msgid "Japanese Envelope Chou #3 Rotated" msgstr "Japon Zarf Chou #3 Çevrilmiş" #: ../src/common/paper.cpp:169 msgid "Japanese Envelope Chou #4" msgstr "Japon Zarf Chou #4" #: ../src/common/paper.cpp:182 msgid "Japanese Envelope Chou #4 Rotated" msgstr "Japon Zarf Chou #4 Çevrilmiş" #: ../src/common/paper.cpp:166 msgid "Japanese Envelope Kaku #2" msgstr "Japon Zarf Kaku #2" #: ../src/common/paper.cpp:179 msgid "Japanese Envelope Kaku #2 Rotated" msgstr "Japon Zarf Kaku #2 Çevrilmiş" #: ../src/common/paper.cpp:167 msgid "Japanese Envelope Kaku #3" msgstr "Japon Zarf Kaku #3" #: ../src/common/paper.cpp:180 msgid "Japanese Envelope Kaku #3 Rotated" msgstr "Japon Zarf Kaku #3 Çevrilmiş" #: ../src/common/paper.cpp:186 msgid "Japanese Envelope You #4" msgstr "Japon Zarf You #4" #: ../src/common/paper.cpp:187 msgid "Japanese Envelope You #4 Rotated" msgstr "Japon Zarf You #4 Çevrilmiş" #: ../src/common/paper.cpp:139 msgid "Japanese Postcard 100 x 148 mm" msgstr "Japon Postakartı 100 x 148 mm" #: ../src/common/paper.cpp:176 msgid "Japanese Postcard Rotated 148 x 100 mm" msgstr "Japon Postakartı Çevrilmiş 148 x 100 mm" #: ../src/common/stockitem.cpp:169 msgid "Jump to" msgstr "Atlayın" #: ../src/common/stockitem.cpp:171 msgid "Justified" msgstr "Hizalanmış" #: ../src/richtext/richtextindentspage.cpp:155 #: ../src/richtext/richtextindentspage.cpp:157 #: ../src/richtext/richtextliststylepage.cpp:344 #: ../src/richtext/richtextliststylepage.cpp:346 msgid "Justify text left and right." msgstr "Metin sola ve sağa hizalanır." #: ../src/common/fmapbase.cpp:163 msgid "KOI8-R" msgstr "KOI8-R" #: ../src/common/fmapbase.cpp:164 msgid "KOI8-U" msgstr "KOI8-U" #: ../src/common/accelcmn.cpp:254 ../src/common/accelcmn.cpp:336 msgid "KP_" msgstr "KP_" #: ../src/common/accelcmn.cpp:103 msgid "KP_ADD" msgstr "KP_ADD" #: ../src/common/accelcmn.cpp:98 msgid "KP_BEGIN" msgstr "KP_BEGIN" #: ../src/common/accelcmn.cpp:106 msgid "KP_DECIMAL" msgstr "KP_DECIMAL" #: ../src/common/accelcmn.cpp:100 msgid "KP_DELETE" msgstr "KP_DELETE" #: ../src/common/accelcmn.cpp:107 msgid "KP_DIVIDE" msgstr "KP_DIVIDE" #: ../src/common/accelcmn.cpp:92 msgid "KP_DOWN" msgstr "KP_DOWN" #: ../src/common/accelcmn.cpp:97 msgid "KP_END" msgstr "KP_END" #: ../src/common/accelcmn.cpp:87 msgid "KP_ENTER" msgstr "KP_ENTER" #: ../src/common/accelcmn.cpp:101 msgid "KP_EQUAL" msgstr "KP_EQUAL" #: ../src/common/accelcmn.cpp:88 msgid "KP_HOME" msgstr "KP_HOME" #: ../src/common/accelcmn.cpp:99 msgid "KP_INSERT" msgstr "KP_INSERT" #: ../src/common/accelcmn.cpp:89 msgid "KP_LEFT" msgstr "KP_LEFT" #: ../src/common/accelcmn.cpp:102 msgid "KP_MULTIPLY" msgstr "KP_MULTIPLY" #: ../src/common/accelcmn.cpp:95 msgid "KP_NEXT" msgstr "KP_NEXT" #: ../src/common/accelcmn.cpp:96 msgid "KP_PAGEDOWN" msgstr "KP_PAGEDOWN" #: ../src/common/accelcmn.cpp:94 msgid "KP_PAGEUP" msgstr "KP_PAGEUP" #: ../src/common/accelcmn.cpp:93 msgid "KP_PRIOR" msgstr "KP_PRIOR" #: ../src/common/accelcmn.cpp:91 msgid "KP_RIGHT" msgstr "KP_RIGHT" #: ../src/common/accelcmn.cpp:104 msgid "KP_SEPARATOR" msgstr "KP_SEPARATOR" #: ../src/common/accelcmn.cpp:85 msgid "KP_SPACE" msgstr "KP_SPACE" #: ../src/common/accelcmn.cpp:105 msgid "KP_SUBTRACT" msgstr "KP_SUBTRACT" #: ../src/common/accelcmn.cpp:86 msgid "KP_TAB" msgstr "KP_TAB" #: ../src/common/accelcmn.cpp:90 msgid "KP_UP" msgstr "KP_UP" #: ../src/richtext/richtextindentspage.cpp:270 msgid "L&ine spacing:" msgstr "&Satır aralığı:" #: ../src/common/accelcmn.cpp:56 msgid "LEFT" msgstr "LEFT" #: ../src/generic/prntdlgg.cpp:613 ../src/generic/prntdlgg.cpp:868 msgid "Landscape" msgstr "Yatay" #: ../src/common/stockitem.cpp:174 msgid "Last" msgstr "Son" #: ../src/common/prntbase.cpp:1542 msgid "Last page" msgstr "Son sayfa" #: ../src/common/log.cpp:309 #, c-format msgid "Last repeated message (\"%s\", %lu time) wasn't output" msgid_plural "Last repeated message (\"%s\", %lu times) wasn't output" msgstr[0] "Son yinelenen ileti (\"%s\", %lu kez) çıkış değildi" #: ../src/common/paper.cpp:104 msgid "Ledger, 17 x 11 in" msgstr "Ledger, 17 x 11 inç" #: ../src/richtext/richtextliststylepage.cpp:249 #: ../src/richtext/richtextliststylepage.cpp:252 #: ../src/richtext/richtextliststylepage.cpp:253 #: ../src/richtext/richtextbulletspage.cpp:199 #: ../src/richtext/richtextbulletspage.cpp:202 #: ../src/richtext/richtextbulletspage.cpp:203 #: ../src/richtext/richtextsizepage.cpp:249 msgid "Left" msgstr "Sol" #: ../src/richtext/richtextindentspage.cpp:204 #: ../src/richtext/richtextliststylepage.cpp:390 msgid "Left (&first line):" msgstr "Sol (i&lk satır):" #: ../src/generic/prntdlgg.cpp:880 msgid "Left margin (mm):" msgstr "Sol kenar boşluğu (mm):" #: ../src/richtext/richtextindentspage.cpp:141 #: ../src/richtext/richtextindentspage.cpp:143 #: ../src/richtext/richtextliststylepage.cpp:330 #: ../src/richtext/richtextliststylepage.cpp:332 msgid "Left-align text." msgstr "Metin sola yaslanır." #: ../src/common/paper.cpp:145 msgid "Legal Extra 9 1/2 x 15 in" msgstr "Legal Ek 9 1/2 x 15 inç" #: ../src/common/paper.cpp:97 msgid "Legal, 8 1/2 x 14 in" msgstr "Legal, 8 1/2 x 14 inç" #: ../src/common/paper.cpp:144 msgid "Letter Extra 9 1/2 x 12 in" msgstr "Letter Ek 9 1/2 x 12 inç" #: ../src/common/paper.cpp:150 msgid "Letter Extra Transverse 9.275 x 12 in" msgstr "Letter Ek Enine 9.275 x 12 inç" #: ../src/common/paper.cpp:153 msgid "Letter Plus 8 1/2 x 12.69 in" msgstr "Letter Artı 8 1/2 x 12.69 inç" #: ../src/common/paper.cpp:170 msgid "Letter Rotated 11 x 8 1/2 in" msgstr "Letter Çevrilmiş 11 x 8 1/2 inç" #: ../src/common/paper.cpp:102 msgid "Letter Small, 8 1/2 x 11 in" msgstr "Letter Küçük, 8 1/2 x 11 inç" #: ../src/common/paper.cpp:148 msgid "Letter Transverse 8 1/2 x 11 in" msgstr "Letter Enine 8 1/2 x 11 inç" #: ../src/common/paper.cpp:96 msgid "Letter, 8 1/2 x 11 in" msgstr "Letter, 8 1/2 x 11 inç" #: ../src/generic/aboutdlgg.cpp:173 msgid "License" msgstr "Lisans" #: ../src/generic/fontdlgg.cpp:332 msgid "Light" msgstr "Açık" #: ../src/generic/helpext.cpp:298 #, c-format msgid "Line %lu of map file \"%s\" has invalid syntax, skipped." msgstr "%lu. satır \"%s\" eşleştirme dosyasında sözdizimi hatası var, atlandı." #: ../src/richtext/richtextliststylepage.cpp:444 msgid "Line spacing:" msgstr "Satır aralığı:" #: ../src/html/chm.cpp:838 msgid "Link contained '//', converted to absolute link." msgstr "Bağlantı '//' içeriyor, mutlak bağlantıya dönüştürüldü." #: ../src/richtext/richtextformatdlg.cpp:349 msgid "List Style" msgstr "Liste Stili" #: ../src/richtext/richtextstyles.cpp:1060 msgid "List styles" msgstr "Liste stilleri" #: ../src/richtext/richtextfontpage.cpp:206 #: ../src/richtext/richtextfontpage.cpp:208 msgid "Lists font sizes in points." msgstr "Yazı tipi boyutları punto olarak listelenir." #: ../src/richtext/richtextfontpage.cpp:199 #: ../src/richtext/richtextfontpage.cpp:201 msgid "Lists the available fonts." msgstr "Kullanılabilir yazı tipleri listelenir." #: ../src/common/fldlgcmn.cpp:325 #, c-format msgid "Load %s file" msgstr "%s dosyasını yükleyin" #: ../src/html/htmlwin.cpp:575 msgid "Loading : " msgstr "Yükleniyor :" #: ../src/unix/snglinst.cpp:246 #, c-format msgid "Lock file '%s' has incorrect owner." msgstr "'%s' kilit dosyasının sahibi hatalı." #: ../src/unix/snglinst.cpp:251 #, c-format msgid "Lock file '%s' has incorrect permissions." msgstr "'%s' kilit dosyasının izinleri doğru değil." #: ../src/generic/logg.cpp:582 #, c-format msgid "Log saved to the file '%s'." msgstr "Günlük '%s' dosyasına kaydedildi." #: ../src/richtext/richtextliststylepage.cpp:484 #: ../src/richtext/richtextbulletspage.cpp:289 msgid "Lower case letters" msgstr "Küçük harfler" #: ../src/richtext/richtextliststylepage.cpp:486 #: ../src/richtext/richtextbulletspage.cpp:291 msgid "Lower case roman numerals" msgstr "Küçük harf Romen rakamları" #: ../src/gtk/mdi.cpp:422 ../src/gtk1/mdi.cpp:431 msgid "MDI child" msgstr "MDI alt" #: ../src/common/accelcmn.cpp:68 msgid "MENU" msgstr "MENU" #: ../src/msw/helpchm.cpp:56 msgid "" "MS HTML Help functions are unavailable because the MS HTML Help library is " "not installed on this machine. Please install it." msgstr "" "MS HTML Yardım kitaplığı yüklü olmadığından yardım işlevleri kullanılamıyor. " "Lütfen yükleyin." #: ../src/univ/themes/win32.cpp:3754 msgid "Ma&ximize" msgstr "Ekranı &kaplatın" #: ../src/common/fmapbase.cpp:203 msgid "MacArabic" msgstr "MacArapça" #: ../src/common/fmapbase.cpp:222 msgid "MacArmenian" msgstr "MacErmenice" #: ../src/common/fmapbase.cpp:211 msgid "MacBengali" msgstr "MacBengalce" #: ../src/common/fmapbase.cpp:217 msgid "MacBurmese" msgstr "MacBurmese" #: ../src/common/fmapbase.cpp:236 msgid "MacCeltic" msgstr "MacKeltçe" #: ../src/common/fmapbase.cpp:227 msgid "MacCentralEurRoman" msgstr "MacOrtaAvrupaRoman" #: ../src/common/fmapbase.cpp:223 msgid "MacChineseSimp" msgstr "MacÇinceBasit" #: ../src/common/fmapbase.cpp:201 msgid "MacChineseTrad" msgstr "MacÇinceGeleneksel" #: ../src/common/fmapbase.cpp:233 msgid "MacCroatian" msgstr "MacHırvatça" #: ../src/common/fmapbase.cpp:206 msgid "MacCyrillic" msgstr "MacKiril" #: ../src/common/fmapbase.cpp:207 msgid "MacDevanagari" msgstr "MacDevanagari" #: ../src/common/fmapbase.cpp:231 msgid "MacDingbats" msgstr "MacDingbats" #: ../src/common/fmapbase.cpp:226 msgid "MacEthiopic" msgstr "MacEtyopça" #: ../src/common/fmapbase.cpp:229 msgid "MacExtArabic" msgstr "MacExtArapça" #: ../src/common/fmapbase.cpp:237 msgid "MacGaelic" msgstr "MacGaliçce" #: ../src/common/fmapbase.cpp:221 msgid "MacGeorgian" msgstr "MacAzerice" #: ../src/common/fmapbase.cpp:205 msgid "MacGreek" msgstr "MacYunanca" #: ../src/common/fmapbase.cpp:209 msgid "MacGujarati" msgstr "MacGujarati" #: ../src/common/fmapbase.cpp:208 msgid "MacGurmukhi" msgstr "MacGurmukhi" #: ../src/common/fmapbase.cpp:204 msgid "MacHebrew" msgstr "Macİbranice" #: ../src/common/fmapbase.cpp:234 msgid "MacIcelandic" msgstr "MacIzlandaca" #: ../src/common/fmapbase.cpp:200 msgid "MacJapanese" msgstr "MacJaponca" #: ../src/common/fmapbase.cpp:214 msgid "MacKannada" msgstr "MacKanada" #: ../src/common/fmapbase.cpp:238 msgid "MacKeyboardGlyphs" msgstr "MacKeyboardGlyphs" #: ../src/common/fmapbase.cpp:218 msgid "MacKhmer" msgstr "MacKmerce" #: ../src/common/fmapbase.cpp:202 msgid "MacKorean" msgstr "MacKorece" #: ../src/common/fmapbase.cpp:220 msgid "MacLaotian" msgstr "MacLaotian" #: ../src/common/fmapbase.cpp:215 msgid "MacMalayalam" msgstr "MacMalayca" #: ../src/common/fmapbase.cpp:225 msgid "MacMongolian" msgstr "MacMongolca" #: ../src/common/fmapbase.cpp:210 msgid "MacOriya" msgstr "MacOriya" #: ../src/common/fmapbase.cpp:199 msgid "MacRoman" msgstr "MacRoman" #: ../src/common/fmapbase.cpp:235 msgid "MacRomanian" msgstr "MacRomence" #: ../src/common/fmapbase.cpp:216 msgid "MacSinhalese" msgstr "MacSinhalese" #: ../src/common/fmapbase.cpp:230 msgid "MacSymbol" msgstr "MacSimge" #: ../src/common/fmapbase.cpp:212 msgid "MacTamil" msgstr "MacTamil" #: ../src/common/fmapbase.cpp:213 msgid "MacTelugu" msgstr "MacTelugu" #: ../src/common/fmapbase.cpp:219 msgid "MacThai" msgstr "MacTay" #: ../src/common/fmapbase.cpp:224 msgid "MacTibetan" msgstr "MacTibetçe" #: ../src/common/fmapbase.cpp:232 msgid "MacTurkish" msgstr "MacTürkçe" #: ../src/common/fmapbase.cpp:228 msgid "MacVietnamese" msgstr "MacVietnamca" #: ../src/propgrid/advprops.cpp:2031 msgid "Make a selection:" msgstr "Bir seçim yapın:" #: ../src/richtext/richtextformatdlg.cpp:362 #: ../src/richtext/richtextmarginspage.cpp:172 msgid "Margins" msgstr "Kenar Boşlukları" #: ../src/generic/fdrepdlg.cpp:147 msgid "Match case" msgstr "Küçük büyük harf eşleştirilsin" #: ../src/richtext/richtextsizepage.cpp:463 msgid "Max height:" msgstr "En fazla yükseklik:" #: ../src/richtext/richtextsizepage.cpp:436 msgid "Max width:" msgstr "En fazla genişlik:" #: ../src/unix/mediactrl.cpp:1006 #, c-format msgid "Media playback error: %s" msgstr "Ortam oynatma hatası: %s" #: ../src/common/fs_mem.cpp:175 #, c-format msgid "Memory VFS already contains file '%s'!" msgstr "'%s' dosyası zaten VFS belleğinde yer alıyor!" #: ../src/msw/frame.cpp:347 msgid "Menu" msgstr "Menü" #: ../src/common/msgout.cpp:124 msgid "Message" msgstr "İleti" #: ../src/univ/themes/metal.cpp:168 msgid "Metal theme" msgstr "Metal tema" #: ../src/msw/ole/automtn.cpp:641 msgid "Method or property not found." msgstr "Yordam ya da özellik bulunamadı" #: ../src/univ/themes/win32.cpp:3752 msgid "Mi&nimize" msgstr "Simge &durumuna küçültün" #: ../src/richtext/richtextsizepage.cpp:409 msgid "Min height:" msgstr "En az yükseklik:" #: ../src/richtext/richtextsizepage.cpp:382 msgid "Min width:" msgstr "En az genişlik:" #: ../src/msw/ole/automtn.cpp:657 msgid "Missing a required parameter." msgstr "Gereken bir parametre eksik." #: ../src/generic/fontdlgg.cpp:324 msgid "Modern" msgstr "Modern" #: ../src/generic/filectrlg.cpp:462 msgid "Modified" msgstr "Değişiklik" #: ../src/common/module.cpp:133 #, c-format msgid "Module \"%s\" initialization failed" msgstr "\"%s\" modülü başlatılamadı" #: ../src/common/paper.cpp:132 msgid "Monarch Envelope, 3 7/8 x 7 1/2 in" msgstr "Monarşi Zarf, 3 7/8 x 7 1/2 inç" #: ../src/msw/fswatcher.cpp:143 msgid "Monitoring individual files for changes is not supported currently." msgstr "Tek tek dosyaların değişiminin izlenmesi şu anda desteklenmiyor." #: ../src/generic/editlbox.cpp:276 msgid "Move down" msgstr "Aşağı taşıyın" #: ../src/generic/editlbox.cpp:275 msgid "Move up" msgstr "Yukarı taşıyın" #: ../src/richtext/richtextsizepage.cpp:682 #: ../src/richtext/richtextsizepage.cpp:684 msgid "Moves the object to the next paragraph." msgstr "Nesne sonraki paragrafa taşınır." #: ../src/richtext/richtextsizepage.cpp:676 #: ../src/richtext/richtextsizepage.cpp:678 msgid "Moves the object to the previous paragraph." msgstr "Nesne önceki paragrafa taşınır." #: ../src/richtext/richtextbuffer.cpp:9345 msgid "Multiple Cell Properties" msgstr "Çoklu Hücre Özellikleri" #: ../src/common/accelcmn.cpp:81 msgid "NUM_LOCK" msgstr "NUM_LOCK" #: ../src/generic/filectrlg.cpp:459 msgid "Name" msgstr "Ad" #: ../src/common/stockitem.cpp:175 msgid "Network" msgstr "Ağ" #: ../src/common/stockitem.cpp:176 msgid "New" msgstr "Yeni" #: ../src/richtext/richtextstyledlg.cpp:243 msgid "New &Box Style..." msgstr "Yeni &Kutu Stili..." #: ../src/richtext/richtextstyledlg.cpp:225 msgid "New &Character Style..." msgstr "Yeni &Karakter Stili..." #: ../src/richtext/richtextstyledlg.cpp:237 msgid "New &List Style..." msgstr "Yeni &Liste Stili..." #: ../src/richtext/richtextstyledlg.cpp:231 msgid "New &Paragraph Style..." msgstr "Yeni &Paragraf Stili..." #: ../src/richtext/richtextstyledlg.cpp:603 #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:651 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:817 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:890 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:931 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "New Style" msgstr "Yeni Stil" #: ../src/generic/dirdlgg.cpp:102 msgid "New directory" msgstr "Yeni klasör" #: ../src/generic/editlbox.cpp:273 msgid "New item" msgstr "Yeni öge" #: ../src/generic/dirdlgg.cpp:326 ../src/generic/dirdlgg.cpp:336 #: ../src/generic/filectrlg.cpp:653 ../src/generic/filectrlg.cpp:662 msgid "NewName" msgstr "YeniAd" #: ../src/generic/tipdlg.cpp:305 msgid "Next" msgstr "Sonraki" #: ../src/common/prntbase.cpp:1537 ../src/html/helpwnd.cpp:678 msgid "Next page" msgstr "Sonraki sayfa" #: ../include/wx/msgdlg.h:272 ../src/common/stockitem.cpp:177 #: ../src/motif/msgdlg.cpp:196 msgid "No" msgstr "Hayır" #: ../src/generic/animateg.cpp:150 #, c-format msgid "No animation handler for type %ld defined." msgstr "%ld tipi için canlandırma işleyicisi tanımlanmamış." #: ../src/dfb/bitmap.cpp:642 ../src/dfb/bitmap.cpp:676 #, c-format msgid "No bitmap handler for type %d defined." msgstr "%d tipi için bit eşlemi işleyicisi tanımlanmamış." #: ../src/osx/carbon/dataview.cpp:1784 msgid "No column existing." msgstr "Hiç bir sütun bulunamadı." #: ../src/osx/carbon/dataview.cpp:1674 msgid "No column for the specified column existing." msgstr "Belirtilen sütun için varolan bir sütun yok." #: ../src/osx/carbon/dataview.cpp:1423 msgid "No column for the specified column position existing." msgstr "Belirtilen konumda sütun bulunamadı." #: ../src/common/utilscmn.cpp:1049 msgid "No default application configured for HTML files." msgstr "HTML dosyaları için varsayılan uygulama ayarlanmamış." #: ../src/generic/helpext.cpp:449 msgid "No entries found." msgstr "Hiç bir kayıt bulunamadı." #: ../src/common/fontmap.cpp:421 #, c-format msgid "" "No font for displaying text in encoding '%s' found,\n" "but an alternative encoding '%s' is available.\n" "Do you want to use this encoding (otherwise you will have to choose another " "one)?" msgstr "" "Metni '%s' kodlamasıyla görüntüleyecek bir yazı tipi yok,\n" "ancak onun yerine '%s' kodlama seçeneği kullanılabilir.\n" "Bu kodlamayı kullanmak istiyor musunuz (aksi halde başka bir tane " "seçmelisiniz) ?" #: ../src/common/fontmap.cpp:426 #, c-format msgid "" "No font for displaying text in encoding '%s' found.\n" "Would you like to select a font to be used for this encoding\n" "(otherwise the text in this encoding will not be shown correctly)?" msgstr "" "Metni '%s' kodlamasıyla görüntüleyecek bir yazı tipi yok.\n" "Bu kodlamayı kullanabileceğiniz bir yazı tipi seçmek istiyor musunuz\n" "(aksi halde bu kodlamadaki metin doğru olarak görüntülenmez) ?" #: ../src/generic/animateg.cpp:142 msgid "No handler found for animation type." msgstr "Canlandırma tipinin işleyicisi bulunamadı." #: ../src/common/image.cpp:2591 msgid "No handler found for image type." msgstr "Görüntü tipinin işleyicisi bulunamadı." #: ../src/common/image.cpp:2599 ../src/common/image.cpp:2710 #: ../src/common/image.cpp:2763 #, c-format msgid "No image handler for type %d defined." msgstr "%d tipinin görüntü işleyicisi tanımlanmamış." #: ../src/common/image.cpp:2733 ../src/common/image.cpp:2777 #, c-format msgid "No image handler for type %s defined." msgstr "%s tipinin görüntü işleyicisi tanımlanmamış." #: ../src/html/helpwnd.cpp:871 msgid "No matching page found yet" msgstr "Henüz uyan bir sayfa bulunamadı" #: ../src/osx/carbon/dataview.cpp:1676 ../src/osx/carbon/dataview.cpp:1786 msgid "No renderer or invalid renderer type specified for custom data column." msgstr "Özel veri sütunu için görüntüleyici belirtilmemiş ya da geçersiz." #: ../src/osx/carbon/dataview.cpp:1424 msgid "No renderer specified for column." msgstr "Sütun görüntüleyici belirtilmemiş." #: ../src/unix/sound.cpp:81 msgid "No sound" msgstr "Ses yok" #: ../src/common/image.cpp:2166 ../src/common/image.cpp:2207 msgid "No unused colour in image being masked." msgstr "Maskelenen görselde kullanılmamış renk yok." #: ../src/common/image.cpp:3236 msgid "No unused colour in image." msgstr "Görselde kullanılmamış renk yok" #: ../src/generic/helpext.cpp:306 #, c-format msgid "No valid mappings found in the file \"%s\"." msgstr "\"%s\" dosyasında geçerli eşleme bulunamadı." #: ../src/richtext/richtextborderspage.cpp:542 #: ../src/richtext/richtextsizepage.cpp:248 #: ../src/richtext/richtextsizepage.cpp:252 msgid "None" msgstr "Hiçbiri" #: ../src/common/fmapbase.cpp:157 msgid "Nordic (ISO-8859-10)" msgstr "Norveçce (ISO-8859-10)" #: ../src/generic/fontdlgg.cpp:328 ../src/generic/fontdlgg.cpp:331 msgid "Normal" msgstr "Normal" #: ../src/html/helpwnd.cpp:1276 msgid "Normal face
    and underlined. " msgstr "Normal yazı tipi
    ve altı çizili. " #: ../src/html/helpwnd.cpp:1218 msgid "Normal font:" msgstr "Normal yazı tipi:" #: ../src/propgrid/props.cpp:887 #, c-format msgid "Not %s" msgstr "%s değil" #: ../include/wx/filename.h:586 ../include/wx/filename.h:591 msgid "Not available" msgstr "Kullanılamıyor" #: ../src/richtext/richtextfontpage.cpp:340 msgid "Not underlined" msgstr "Altı çizili değil" #: ../src/common/paper.cpp:116 msgid "Note, 8 1/2 x 11 in" msgstr "Not, 8 1/2 x 11 inç" #: ../src/generic/notifmsgg.cpp:104 msgid "Notice" msgstr "Bildirim" #: ../src/osx/carbon/dataview.cpp:902 msgid "Number of columns could not be determined." msgstr "Sütun sayısı belirlenemedi." #: ../src/richtext/richtextliststylepage.cpp:487 #: ../src/richtext/richtextbulletspage.cpp:292 msgid "Numbered outline" msgstr "Numaralı taslak" #: ../include/wx/msgdlg.h:273 ../src/richtext/richtextstyledlg.cpp:297 #: ../src/common/stockitem.cpp:178 ../src/msw/msgdlg.cpp:489 #: ../src/msw/msgdlg.cpp:799 ../src/msw/dialog.cpp:120 #: ../src/gtk1/fontdlg.cpp:138 msgid "OK" msgstr "Tamam" #: ../src/msw/ole/automtn.cpp:681 #, c-format msgid "OLE Automation error in %s: %s" msgstr "%s içinde OLE otomasyon hatası: %s" #: ../include/wx/richtext/richtextimagedlg.h:39 msgid "Object Properties" msgstr "Nesne Özellikleri" #: ../src/msw/ole/automtn.cpp:649 msgid "Object implementation does not support named arguments." msgstr "Nesne uygulaması adlandırılmış argümanları desteklemiyor." #: ../src/common/xtixml.cpp:264 msgid "Objects must have an id attribute" msgstr "Nesnelerin bir kod özniteliği olmalıdır" #: ../src/common/docview.cpp:1755 ../src/common/docview.cpp:1797 msgid "Open File" msgstr "Dosya Açın" #: ../src/html/helpwnd.cpp:684 ../src/html/helpwnd.cpp:1557 msgid "Open HTML document" msgstr "HTML belgesi açın" #: ../src/generic/dbgrptg.cpp:163 #, c-format msgid "Open file \"%s\"" msgstr "Dosya açın \"%s\"" #: ../src/common/stockitem.cpp:179 msgid "Open..." msgstr "Açın..." #: ../src/osx/carbon/glcanvas.cpp:48 #, c-format msgid "OpenGL function \"%s\" failed: %s (error %d)" msgstr "\"%s\" OpenGL işlevi çalıştırılamadı: %s (hata %d)" #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:821 msgid "Operation not permitted." msgstr "İşleme izin verilmiyor." #: ../src/common/cmdline.cpp:735 #, c-format msgid "Option '%s' can't be negated" msgstr "'%s' seçeneği yok sayılamaz" #: ../src/common/cmdline.cpp:899 #, c-format msgid "Option '%s' requires a value." msgstr "'%s' seçeneğinin bir değeri olması gerekiyor." #: ../src/common/cmdline.cpp:982 #, c-format msgid "Option '%s': '%s' cannot be converted to a date." msgstr "'%s' seçeneği: '%s' tarihe dönüştürülemiyor." #: ../src/generic/dirdlgg.cpp:187 ../src/generic/prntdlgg.cpp:618 msgid "Options" msgstr "Ayarlar" #: ../src/generic/prntdlgg.cpp:615 ../src/generic/prntdlgg.cpp:869 msgid "Orientation" msgstr "Yön" #: ../src/common/windowid.cpp:259 msgid "Out of window IDs. Recommend shutting down application." msgstr "Pencere kodları tükendi. Uygulamayı kapatmanız önerilir." #: ../src/richtext/richtextborderspage.cpp:400 #: ../src/richtext/richtextborderspage.cpp:533 msgid "Outline" msgstr "Taslak" #: ../src/richtext/richtextborderspage.cpp:550 msgid "Outset" msgstr "Kabartma" #: ../src/msw/ole/automtn.cpp:645 msgid "Overflow while coercing argument values." msgstr "Arguman değerleri zorlanırken taşma." #: ../src/common/accelcmn.cpp:84 msgid "PAGEDOWN" msgstr "PAGEDOWN" #: ../src/common/accelcmn.cpp:83 msgid "PAGEUP" msgstr "PAGEUP" #: ../src/common/accelcmn.cpp:69 msgid "PAUSE" msgstr "PAUSE" #: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:480 msgid "PCX: couldn't allocate memory" msgstr "PCX: bellek ayrılamadı." #: ../src/common/imagpcx.cpp:456 msgid "PCX: image format unsupported" msgstr "PCX: görsel biçimi desteklenmiyor" #: ../src/common/imagpcx.cpp:479 msgid "PCX: invalid image" msgstr "PCX: görsel geçersiz" #: ../src/common/imagpcx.cpp:442 msgid "PCX: this is not a PCX file." msgstr "PCX: bu bir PCX dosyası değil." #: ../src/common/imagpcx.cpp:459 ../src/common/imagpcx.cpp:481 msgid "PCX: unknown error !!!" msgstr "PCX: bilinmeyen hata !!!" #: ../src/common/imagpcx.cpp:458 msgid "PCX: version number too low" msgstr "PCX: sürüm numarası çok küçük" #: ../src/common/accelcmn.cpp:55 msgid "PGDN" msgstr "PGDN" #: ../src/common/accelcmn.cpp:54 msgid "PGUP" msgstr "PGUP" #: ../src/common/imagpnm.cpp:91 msgid "PNM: Couldn't allocate memory." msgstr "PNM: Bellek ayrılamadı." #: ../src/common/imagpnm.cpp:73 msgid "PNM: File format is not recognized." msgstr "PNM: Dosya biçimi tanınamadı." #: ../src/common/imagpnm.cpp:112 ../src/common/imagpnm.cpp:134 #: ../src/common/imagpnm.cpp:156 msgid "PNM: File seems truncated." msgstr "PNM: Dosya budanmış görünüyor." #: ../src/common/paper.cpp:188 msgid "PRC 16K 146 x 215 mm" msgstr "PRC 16K 146 x 215 mm" #: ../src/common/paper.cpp:201 msgid "PRC 16K Rotated" msgstr "PRC 16K Çevrilmiş" #: ../src/common/paper.cpp:189 msgid "PRC 32K 97 x 151 mm" msgstr "PRC 32K 97 x 151 mm" #: ../src/common/paper.cpp:202 msgid "PRC 32K Rotated" msgstr "PRC 32K Çevrilmiş" #: ../src/common/paper.cpp:190 msgid "PRC 32K(Big) 97 x 151 mm" msgstr "PRC 32K(Büyük) 97 x 151 mm" #: ../src/common/paper.cpp:203 msgid "PRC 32K(Big) Rotated" msgstr "PRC 32K(Büyük) Çevrilmiş" #: ../src/common/paper.cpp:191 msgid "PRC Envelope #1 102 x 165 mm" msgstr "PRC Zarf #1 102 x 165 mm" #: ../src/common/paper.cpp:204 msgid "PRC Envelope #1 Rotated 165 x 102 mm" msgstr "PRC Zarf #1 Çevrilmiş 165 x 102 mm" #: ../src/common/paper.cpp:200 msgid "PRC Envelope #10 324 x 458 mm" msgstr "PRC Zarf #10 324 x 458 mm" #: ../src/common/paper.cpp:213 msgid "PRC Envelope #10 Rotated 458 x 324 mm" msgstr "PRC Zarf #10 Çevrilmiş 458 x 324 mm" #: ../src/common/paper.cpp:192 msgid "PRC Envelope #2 102 x 176 mm" msgstr "PRC Zarf #2 102 x 176 mm" #: ../src/common/paper.cpp:205 msgid "PRC Envelope #2 Rotated 176 x 102 mm" msgstr "PRC Zarf #2 Çevrilmiş 176 x 102 mm" #: ../src/common/paper.cpp:193 msgid "PRC Envelope #3 125 x 176 mm" msgstr "PRC Zarf #3 125 x 176 mm" #: ../src/common/paper.cpp:206 msgid "PRC Envelope #3 Rotated 176 x 125 mm" msgstr "PRC Zarf #3 Çevrilmiş 176 x 125 mm" #: ../src/common/paper.cpp:194 msgid "PRC Envelope #4 110 x 208 mm" msgstr "PRC Zarf #4 110 x 208 mm" #: ../src/common/paper.cpp:207 msgid "PRC Envelope #4 Rotated 208 x 110 mm" msgstr "PRC Zarf #4 Çevrilmiş 208 x 110 mm" #: ../src/common/paper.cpp:195 msgid "PRC Envelope #5 110 x 220 mm" msgstr "PRC Zarf #5 110 x 220 mm" #: ../src/common/paper.cpp:208 msgid "PRC Envelope #5 Rotated 220 x 110 mm" msgstr "PRC Zarf #5 Çevrilmiş 220 x 110 mm" #: ../src/common/paper.cpp:196 msgid "PRC Envelope #6 120 x 230 mm" msgstr "PRC Zarf #6 120 x 230 mm" #: ../src/common/paper.cpp:209 msgid "PRC Envelope #6 Rotated 230 x 120 mm" msgstr "PRC Zarf #6 Çevrilmiş 230 x 120 mm" #: ../src/common/paper.cpp:197 msgid "PRC Envelope #7 160 x 230 mm" msgstr "PRC Zarf #7 160 x 230 mm" #: ../src/common/paper.cpp:210 msgid "PRC Envelope #7 Rotated 230 x 160 mm" msgstr "PRC Zarf #7 Çevrilmiş 230 x 160 mm" #: ../src/common/paper.cpp:198 msgid "PRC Envelope #8 120 x 309 mm" msgstr "PRC Zarf #8 120 x 309 mm" #: ../src/common/paper.cpp:211 msgid "PRC Envelope #8 Rotated 309 x 120 mm" msgstr "PRC Zarf #8 Çevrilmiş 309 x 120 mm" #: ../src/common/paper.cpp:199 msgid "PRC Envelope #9 229 x 324 mm" msgstr "PRC Zarf #9 229 x 324 mm" #: ../src/common/paper.cpp:212 msgid "PRC Envelope #9 Rotated 324 x 229 mm" msgstr "PRC Zarf #9 Çevrilmiş 324 x 229 mm" #: ../src/common/accelcmn.cpp:72 msgid "PRINT" msgstr "PRINT" #: ../src/richtext/richtextmarginspage.cpp:286 msgid "Padding" msgstr "Yastıklama" #: ../src/common/prntbase.cpp:2044 #, c-format msgid "Page %d" msgstr "Sayfa %d" #: ../src/common/prntbase.cpp:2042 #, c-format msgid "Page %d of %d" msgstr "Sayfa %d / %d" #: ../src/gtk/print.cpp:774 msgid "Page Setup" msgstr "Sayfa Düzeni" #: ../src/generic/prntdlgg.cpp:828 ../src/common/prntbase.cpp:467 msgid "Page setup" msgstr "Sayfa düzeni" #: ../src/generic/prntdlgg.cpp:216 msgid "Pages" msgstr "Sayfalar" #: ../src/generic/prntdlgg.cpp:602 ../src/generic/prntdlgg.cpp:801 #: ../src/generic/prntdlgg.cpp:842 ../src/generic/prntdlgg.cpp:855 #: ../src/generic/prntdlgg.cpp:1052 ../src/generic/prntdlgg.cpp:1057 msgid "Paper size" msgstr "Kağıt boyutu" #: ../src/richtext/richtextstyles.cpp:1058 msgid "Paragraph styles" msgstr "Paragraf stilleri" #: ../src/common/xtistrm.cpp:469 msgid "Passing a already registered object to SetObject" msgstr "SetObject işlevine zaten kayıtlı olan bir nesne gönderildi" #: ../src/common/xtistrm.cpp:480 msgid "Passing an unknown object to GetObject" msgstr "GetObject işlevine bilinmeyen bir nesne gönderildi" #: ../src/richtext/richtextctrl.cpp:3117 ../src/common/stockitem.cpp:180 #: ../src/stc/stc_i18n.cpp:19 msgid "Paste" msgstr "Yapıştırın" #: ../src/common/stockitem.cpp:262 msgid "Paste selection" msgstr "Seçimi yapıştırın" #: ../src/richtext/richtextliststylepage.cpp:222 #: ../src/richtext/richtextbulletspage.cpp:172 msgid "Peri&od" msgstr "N&okta" #: ../src/generic/filectrlg.cpp:465 msgid "Permissions" msgstr "İzinler" #: ../src/richtext/richtextbuffer.cpp:11942 msgid "Picture Properties" msgstr "Görsel Özellikleri" #: ../include/wx/unix/pipe.h:47 msgid "Pipe creation failed" msgstr "Boru oluşturulamadı" #: ../src/gtk1/fontdlg.cpp:74 msgid "Please choose a valid font." msgstr "Lütfen geçerli bir yazı tipi seçin." #: ../src/gtk/filedlg.cpp:72 msgid "Please choose an existing file." msgstr "Lütfen varolan bir dosya seçin." #: ../src/html/helpwnd.cpp:813 msgid "Please choose the page to display:" msgstr "Lütfen görüntülenecek sayfayı seçin:" #: ../src/msw/dialup.cpp:785 msgid "Please choose which ISP do you want to connect to" msgstr "Lütfen bağlanmak istediğiniz servis sağlayıcıyı seçin" #: ../src/msw/listctrl.cpp:372 #, c-format msgid "" "Please install a newer version of comctl32.dll\n" "(at least version 4.70 is required but you have %d.%02d)\n" "or this program won't operate correctly." msgstr "" "Lütfen daha yeni bir comctl32.dll sürümü yükleyin\n" "(en az 4.70 sürümü kullanılabilir, %d.%02d sürümü yüklü)\n" "yoksa bu program düzgün şekilde çalışamaz." #: ../src/common/headerctrlcmn.cpp:59 msgid "Please select the columns to show and define their order:" msgstr "Lütfen görüntülenecek sütunları seçin ve sıralarını belirleyin:" #: ../src/common/prntbase.cpp:521 msgid "Please wait while printing..." msgstr "Yazdırılıyor, lütfen bekleyin..." #: ../src/propgrid/advprops.cpp:631 msgid "Point Size" msgstr "Punto Boyutu" #: ../src/osx/carbon/dataview.cpp:1278 ../src/osx/carbon/dataview.cpp:1329 #: ../src/osx/carbon/dataview.cpp:1420 ../src/osx/carbon/dataview.cpp:1443 #: ../src/osx/carbon/dataview.cpp:1460 ../src/osx/carbon/dataview.cpp:1477 #: ../src/osx/carbon/dataview.cpp:1670 ../src/osx/carbon/dataview.cpp:1779 #: ../src/osx/carbon/dataview.cpp:1821 ../src/osx/carbon/dataview.cpp:1874 #: ../src/osx/carbon/dataview.cpp:1997 msgid "Pointer to data view control not set correctly." msgstr "Veri görünümü denetimi imleci doğru olarak ayarlanmamış." #: ../src/osx/carbon/dataview.cpp:1279 ../src/osx/carbon/dataview.cpp:1338 #: ../src/osx/carbon/dataview.cpp:1421 ../src/osx/carbon/dataview.cpp:1478 #: ../src/osx/carbon/dataview.cpp:1671 ../src/osx/carbon/dataview.cpp:1780 #: ../src/osx/carbon/dataview.cpp:1822 ../src/osx/carbon/dataview.cpp:1875 #: ../src/osx/carbon/dataview.cpp:1998 msgid "Pointer to model not set correctly." msgstr "Model imleci doğru olarak ayarlanmamış." #: ../src/generic/prntdlgg.cpp:612 ../src/generic/prntdlgg.cpp:867 msgid "Portrait" msgstr "Dikey" #: ../src/richtext/richtextsizepage.cpp:496 msgid "Position" msgstr "Konum" #: ../src/generic/prntdlgg.cpp:298 msgid "PostScript file" msgstr "PostScript dosyası" #: ../src/common/stockitem.cpp:181 msgid "Preferences" msgstr "Ayarlar" #: ../src/osx/menu_osx.cpp:643 msgid "Preferences..." msgstr "Ayarlar..." #: ../src/common/prntbase.cpp:529 msgid "Preparing" msgstr "Hazırlanıyor" #: ../src/generic/fontdlgg.cpp:455 ../src/osx/carbon/fontdlg.cpp:576 #: ../src/html/helpwnd.cpp:1235 msgid "Preview:" msgstr "Önizleme:" #: ../src/common/prntbase.cpp:1523 ../src/html/helpwnd.cpp:677 msgid "Previous page" msgstr "Önceki sayfa" #: ../src/generic/prntdlgg.cpp:143 ../src/generic/prntdlgg.cpp:157 #: ../src/common/prntbase.cpp:409 ../src/common/prntbase.cpp:1511 #: ../src/gtk/print.cpp:584 ../src/gtk/print.cpp:597 msgid "Print" msgstr "Yazdırın" #: ../include/wx/prntbase.h:395 ../src/common/docview.cpp:1250 msgid "Print Preview" msgstr "Baskı Önizlemesi" #: ../src/common/prntbase.cpp:1985 ../src/common/prntbase.cpp:2027 #: ../src/common/prntbase.cpp:2035 msgid "Print Preview Failure" msgstr "Baskı Önizleme Hatası" #: ../src/generic/prntdlgg.cpp:224 msgid "Print Range" msgstr "Yazdırma Aralığı" #: ../src/generic/prntdlgg.cpp:449 msgid "Print Setup" msgstr "Yazdırma Ayarları" #: ../src/generic/prntdlgg.cpp:621 msgid "Print in colour" msgstr "Renkli yazdırın" #: ../src/common/stockitem.cpp:182 msgid "Print previe&w..." msgstr "Baskı ö&nizleme..." #: ../src/common/docview.cpp:1244 msgid "Print preview creation failed." msgstr "Baskı önizleme oluşturulamadı." #: ../src/common/stockitem.cpp:182 msgid "Print preview..." msgstr "Baskı önizleme..." #: ../src/generic/prntdlgg.cpp:630 msgid "Print spooling" msgstr "Yazdırma kuyruğu" #: ../src/html/helpwnd.cpp:688 msgid "Print this page" msgstr "Bu sayfayı yazdırın" #: ../src/generic/prntdlgg.cpp:185 msgid "Print to File" msgstr "Dosyaya Yazdırın" #: ../src/common/stockitem.cpp:183 msgid "Print..." msgstr "Yazdırın..." #: ../src/generic/prntdlgg.cpp:493 msgid "Printer" msgstr "Yazıcı" #: ../src/generic/prntdlgg.cpp:633 msgid "Printer command:" msgstr "Yazıcı komutu:" #: ../src/generic/prntdlgg.cpp:180 msgid "Printer options" msgstr "Yazıcı ayarları" #: ../src/generic/prntdlgg.cpp:645 msgid "Printer options:" msgstr "Yazıcı ayarları:" #: ../src/generic/prntdlgg.cpp:916 msgid "Printer..." msgstr "Yazıcı..." #: ../src/generic/prntdlgg.cpp:196 msgid "Printer:" msgstr "Yazıcı:" #: ../include/wx/richtext/richtextprint.h:163 ../src/common/prntbase.cpp:518 #: ../src/html/htmprint.cpp:277 msgid "Printing" msgstr "Yazdırılıyor" #: ../src/common/prntbase.cpp:586 msgid "Printing " msgstr "Yazdırılıyor" #: ../src/common/prntbase.cpp:330 msgid "Printing Error" msgstr "Yazdırma Hatası" #: ../src/common/prntbase.cpp:544 #, c-format msgid "Printing page %d of %d" msgstr "Yazdırılan sayfa %d / %d..." #: ../src/generic/printps.cpp:201 #, c-format msgid "Printing page %d..." msgstr "Yazdırılan sayfa %d..." #: ../src/generic/printps.cpp:161 msgid "Printing..." msgstr "Yazdırılıyor..." #: ../include/wx/richtext/richtextprint.h:109 ../include/wx/prntbase.h:263 #: ../src/common/docview.cpp:2124 msgid "Printout" msgstr "Çıktı" #: ../src/common/debugrpt.cpp:565 #, c-format msgid "" "Processing debug report has failed, leaving the files in \"%s\" directory." msgstr "" "Hata ayıklama raporu oluşturulamadı, dosyalar \"%s\" klasöründe bırakıldı." #: ../src/osx/carbon/dataview.cpp:2472 msgid "Progress renderer cannot render value type; value type: " msgstr "İşlem görüntüleyici değeri işleyemiyor; değer tipi:" #: ../src/common/prntbase.cpp:528 msgid "Progress:" msgstr "İşlem:" #: ../src/common/stockitem.cpp:184 msgid "Properties" msgstr "Özellikler" #: ../src/propgrid/manager.cpp:237 msgid "Property" msgstr "Özellik" #: ../src/propgrid/propgrid.cpp:3144 ../src/propgrid/propgrid.cpp:3276 msgid "Property Error" msgstr "Özellik Hatası" #: ../src/common/paper.cpp:113 msgid "Quarto, 215 x 275 mm" msgstr "Quarto, 215 x 275 mm" #: ../src/generic/logg.cpp:1036 msgid "Question" msgstr "Soru" #: ../src/common/stockitem.cpp:156 msgid "Quit" msgstr "Çıkış" #: ../src/osx/menu_osx.cpp:610 ../src/osx/menu_osx.cpp:657 #, c-format msgid "Quit %s" msgstr "%s uygulamasından çıkın" #: ../src/common/stockitem.cpp:263 msgid "Quit this program" msgstr "Bu programdan çıkın" #: ../src/common/accelcmn.cpp:53 msgid "RETURN" msgstr "RETURN" #: ../src/common/accelcmn.cpp:57 msgid "RIGHT" msgstr "RIGHT" #: ../src/common/accelcmn.cpp:327 msgid "RawCtrl+" msgstr "HamCtrl+" #: ../src/common/ffile.cpp:113 ../src/common/ffile.cpp:134 #, c-format msgid "Read error on file '%s'" msgstr "'%s' dosyasında okuma hatası" #: ../src/common/prntbase.cpp:257 msgid "Ready" msgstr "Hazır" #: ../src/common/stockitem.cpp:185 ../src/stc/stc_i18n.cpp:16 msgid "Redo" msgstr "Yineleyin" #: ../src/common/stockitem.cpp:264 msgid "Redo last action" msgstr "Son eylemi yeniden yapın" #: ../src/common/stockitem.cpp:186 msgid "Refresh" msgstr "Yenileyin" #: ../src/msw/registry.cpp:625 #, c-format msgid "Registry key '%s' already exists." msgstr "'%s' kayıt anahtarı zaten var." #: ../src/msw/registry.cpp:594 #, c-format msgid "Registry key '%s' does not exist, cannot rename it." msgstr "'%s' kayıt anahtarı bulunamadığından yeniden adlandırılamıyor." #: ../src/msw/registry.cpp:726 #, c-format msgid "" "Registry key '%s' is needed for normal system operation,\n" "deleting it will leave your system in unusable state:\n" "operation aborted." msgstr "" "'%s' kayıt anahtarı normal sistem işlemleri için gerekiyor,\n" "silinmesi sistemi kararsız bir hale getirir:\n" "işlem iptal edildi." #: ../src/msw/registry.cpp:520 #, c-format msgid "Registry value '%s' already exists." msgstr "'%s' kayıt değeri zaten var." #: ../src/richtext/richtextfontpage.cpp:332 #: ../src/richtext/richtextfontpage.cpp:336 msgid "Regular" msgstr "Normal" #: ../src/richtext/richtextsizepage.cpp:519 msgid "Relative" msgstr "Bağıl" #: ../src/generic/helpext.cpp:462 msgid "Relevant entries:" msgstr "İlgili kayıtlar:" #: ../include/wx/generic/progdlgg.h:86 msgid "Remaining time:" msgstr "Kalan süre:" #: ../src/common/stockitem.cpp:187 msgid "Remove" msgstr "Silin" #: ../src/richtext/richtextctrl.cpp:1430 msgid "Remove Bullet" msgstr "Madde İmini Kaldırın" #: ../src/html/helpwnd.cpp:440 msgid "Remove current page from bookmarks" msgstr "Geçerli sayfayı yer imlerinden silin" #: ../src/common/rendcmn.cpp:194 #, c-format msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded." msgstr "\"%s\" görüntüleyicisinin %d.%d sürümü uyumsuz olduğundan yüklenemedi." #: ../src/osx/carbon/dataview.cpp:1430 msgid "Rendering failed." msgstr "Görüntülenemiyor." #: ../src/richtext/richtextbuffer.cpp:4214 msgid "Renumber List" msgstr "Listeyi Yeniden Numaralayın" #: ../src/common/stockitem.cpp:188 msgid "Rep&lace" msgstr "&Değiştirin" #: ../src/richtext/richtextctrl.cpp:3277 ../src/common/stockitem.cpp:188 msgid "Replace" msgstr "Değiştirin" #: ../src/generic/fdrepdlg.cpp:182 msgid "Replace &all" msgstr "&Tümünü değiştirin" #: ../src/common/stockitem.cpp:261 msgid "Replace selection" msgstr "Seçimi değiştirin" #: ../src/generic/fdrepdlg.cpp:124 msgid "Replace with:" msgstr "Şununla değiştirin:" #: ../src/common/valtext.cpp:161 msgid "Required information entry is empty." msgstr "Gereken bilgi kayıdı boş." #: ../src/common/translation.cpp:1966 #, c-format msgid "Resource '%s' is not a valid message catalog." msgstr "'%s' kaynağı geçerli bir ileti kataloğu değil." #: ../src/common/stockitem.cpp:189 msgid "Revert to Saved" msgstr "Kaydedilmiş Olana Geri Dönün" #: ../src/richtext/richtextborderspage.cpp:548 msgid "Ridge" msgstr "Sırt" #: ../src/richtext/richtextliststylepage.cpp:251 #: ../src/richtext/richtextbulletspage.cpp:201 #: ../src/richtext/richtextsizepage.cpp:250 msgid "Right" msgstr "Sağ" #: ../src/generic/prntdlgg.cpp:892 msgid "Right margin (mm):" msgstr "Sağ kenar boşluğu (mm):" #: ../src/richtext/richtextindentspage.cpp:148 #: ../src/richtext/richtextindentspage.cpp:150 #: ../src/richtext/richtextliststylepage.cpp:337 #: ../src/richtext/richtextliststylepage.cpp:339 msgid "Right-align text." msgstr "Metin sağa yaslanır." #: ../src/generic/fontdlgg.cpp:322 msgid "Roman" msgstr "Roman" #: ../src/richtext/richtextliststylepage.cpp:299 #: ../src/richtext/richtextbulletspage.cpp:252 msgid "S&tandard bullet name:" msgstr "S&tandart madde imi adı:" #: ../src/common/accelcmn.cpp:82 msgid "SCROLL_LOCK" msgstr "SCROLL_LOCK" #: ../src/common/accelcmn.cpp:71 msgid "SELECT" msgstr "SELECT" #: ../src/common/accelcmn.cpp:77 msgid "SEPARATOR" msgstr "SEPARATOR" #: ../src/common/accelcmn.cpp:74 msgid "SNAPSHOT" msgstr "SNAPSHOT" #: ../src/common/accelcmn.cpp:62 msgid "SPACE" msgstr "SPACE" #: ../src/common/accelcmn.cpp:257 ../src/common/accelcmn.cpp:339 msgid "SPECIAL" msgstr "SPECIAL" #: ../src/common/accelcmn.cpp:78 msgid "SUBTRACT" msgstr "SUBTRACT" #: ../src/common/stockitem.cpp:190 ../src/common/sizer.cpp:2678 msgid "Save" msgstr "Kaydedin" #: ../src/common/fldlgcmn.cpp:327 #, c-format msgid "Save %s file" msgstr "%s dosyasını kaydedin" #: ../src/generic/logg.cpp:518 msgid "Save &As..." msgstr "&Farklı Kaydedin" #: ../src/common/docview.cpp:360 msgid "Save As" msgstr "Farklı Kaydedin" #: ../src/common/stockitem.cpp:191 msgid "Save as" msgstr "Farklı kaydedin" #: ../src/common/stockitem.cpp:267 msgid "Save current document" msgstr "Geçerli belgeyi kaydedin" #: ../src/common/stockitem.cpp:268 msgid "Save current document with a different filename" msgstr "Geçerli belgeyi farklı bir adla kaydedin" #: ../src/generic/logg.cpp:518 msgid "Save log contents to file" msgstr "Günlük içeriğini dosyaya kaydedin" #: ../src/generic/fontdlgg.cpp:325 msgid "Script" msgstr "Betik" #: ../src/generic/srchctlg.cpp:67 ../src/html/helpwnd.cpp:548 #: ../src/html/helpwnd.cpp:563 msgid "Search" msgstr "Arayın" #: ../src/html/helpwnd.cpp:550 msgid "" "Search contents of help book(s) for all occurrences of the text you typed " "above" msgstr "Yukarıya yazılan metin yardım kitapları içinde her türlü aranır" #: ../src/generic/fdrepdlg.cpp:160 msgid "Search direction" msgstr "Arama yönü" #: ../src/generic/fdrepdlg.cpp:112 msgid "Search for:" msgstr "Aranan:" #: ../src/html/helpwnd.cpp:1065 msgid "Search in all books" msgstr "Tüm kitaplarda arayın" #: ../src/html/helpwnd.cpp:870 msgid "Searching..." msgstr "Aranıyor..." #: ../src/generic/dirctrlg.cpp:546 msgid "Sections" msgstr "Bölümler" #: ../src/common/ffile.cpp:220 #, c-format msgid "Seek error on file '%s'" msgstr "'%s' dosyasında arama hatası" #: ../src/common/ffile.cpp:210 #, c-format msgid "Seek error on file '%s' (large files not supported by stdio)" msgstr "" "'%s' dosyasında arama hatası (büyük dosyalar 'stdio' tarafından " "desteklenmiyor)" #: ../src/richtext/richtextctrl.cpp:330 ../src/osx/textctrl_osx.cpp:587 #: ../src/common/stockitem.cpp:192 ../src/msw/textctrl.cpp:2288 msgid "Select &All" msgstr "&Tümünü Seçin" #: ../src/common/stockitem.cpp:192 ../src/stc/stc_i18n.cpp:21 msgid "Select All" msgstr "Tümünü Seçin" #: ../src/common/docview.cpp:1877 msgid "Select a document template" msgstr "Bir belge şablonu seçin" #: ../src/common/docview.cpp:1951 msgid "Select a document view" msgstr "Bir belge görünümü seçin" #: ../src/richtext/richtextfontpage.cpp:235 #: ../src/richtext/richtextfontpage.cpp:237 msgid "Select regular or bold." msgstr "Normal ya da koyu seçin." #: ../src/richtext/richtextfontpage.cpp:222 #: ../src/richtext/richtextfontpage.cpp:224 msgid "Select regular or italic style." msgstr "Normal ya da yatık stil seçin." #: ../src/richtext/richtextfontpage.cpp:248 #: ../src/richtext/richtextfontpage.cpp:250 msgid "Select underlining or no underlining." msgstr "Altıçizili ya da normal seçin." #: ../src/motif/filedlg.cpp:220 msgid "Selection" msgstr "Seçim" #: ../src/richtext/richtextliststylepage.cpp:187 #: ../src/richtext/richtextliststylepage.cpp:189 msgid "Selects the list level to edit." msgstr "Düzenlenecek liste düzeyini seçer." #: ../src/common/cmdline.cpp:918 #, c-format msgid "Separator expected after the option '%s'." msgstr "'%s' seçeneğinden sonra ayraç bekleniyor." #: ../src/richtext/richtextbuffer.cpp:10513 msgid "Set Cell Style" msgstr "Hücre Stilini Ayarlayın" #: ../include/wx/xtiprop.h:179 msgid "SetProperty called w/o valid setter" msgstr "'SetProperty' işlevi geçerli bir yerleştirici olmaksızın çağrıldı" #: ../src/common/filename.cpp:2632 msgid "Setting directory access times is not supported under this OS version" msgstr "" "Klasör erişim zamanları ayarı bu işletim sistemi sürümünde desteklenmiyor" #: ../src/generic/prntdlgg.cpp:188 msgid "Setup..." msgstr "Kurulum..." #: ../src/msw/dialup.cpp:563 msgid "Several active dialup connections found, choosing one randomly." msgstr "Birkaç etkin çevirmeli bağlantı bulundu, rastgele biri seçiliyor." #: ../src/common/accelcmn.cpp:324 msgid "Shift+" msgstr "Shift+" #: ../src/generic/dirdlgg.cpp:170 msgid "Show &hidden directories" msgstr "Gizli &klasörler görüntülensin" #: ../src/generic/filectrlg.cpp:1003 msgid "Show &hidden files" msgstr "Gizli &dosyalar görüntülensin" #: ../src/osx/menu_osx.cpp:605 ../src/osx/menu_osx.cpp:652 msgid "Show All" msgstr "Tümü Görüntülensin" #: ../src/common/stockitem.cpp:257 msgid "Show about dialog" msgstr "Hakkında penceresi görüntülensin" #: ../src/html/helpwnd.cpp:502 msgid "Show all" msgstr "Tümü görüntülensin" #: ../src/html/helpwnd.cpp:513 msgid "Show all items in index" msgstr "Dizindeki tüm ögeler görüntülensin" #: ../src/generic/dirdlgg.cpp:105 msgid "Show hidden directories" msgstr "Gizli klasörler görüntülensin" #: ../src/html/helpwnd.cpp:671 msgid "Show/hide navigation panel" msgstr "Gezinti panelini görüntüleyin/gizleyin" #: ../src/richtext/richtextsymboldlg.cpp:421 #: ../src/richtext/richtextsymboldlg.cpp:423 msgid "Shows a Unicode subset." msgstr "Bir Unikod alt kümesi görüntülenir." #: ../src/richtext/richtextliststylepage.cpp:472 #: ../src/richtext/richtextliststylepage.cpp:474 #: ../src/richtext/richtextbulletspage.cpp:276 #: ../src/richtext/richtextbulletspage.cpp:278 msgid "Shows a preview of the bullet settings." msgstr "Madde imi ayarlarının önizlemesi görüntülenir." #: ../src/richtext/richtextfontpage.cpp:322 #: ../src/richtext/richtextfontpage.cpp:324 msgid "Shows a preview of the font settings." msgstr "Yazı tipi ayarlarının bir önizlemesi görüntülenir." #: ../src/osx/carbon/fontdlg.cpp:580 ../src/osx/carbon/fontdlg.cpp:582 msgid "Shows a preview of the font." msgstr "Yazı tipinin önizlemesi görüntülenir." #: ../src/richtext/richtextindentspage.cpp:303 #: ../src/richtext/richtextindentspage.cpp:305 msgid "Shows a preview of the paragraph settings." msgstr "Paragraf ayarlarının önizlemesi görüntülenir." #: ../src/generic/fontdlgg.cpp:460 ../src/generic/fontdlgg.cpp:462 msgid "Shows the font preview." msgstr "Yazı tipinin önizlemesi görüntülenir." #: ../src/univ/themes/mono.cpp:516 msgid "Simple monochrome theme" msgstr "Basit tek renkli tema" #: ../src/richtext/richtextindentspage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:449 msgid "Single" msgstr "Tek" #: ../src/generic/filectrlg.cpp:460 ../src/richtext/richtextformatdlg.cpp:356 #: ../src/richtext/richtextsizepage.cpp:299 msgid "Size" msgstr "Boyut" #: ../src/osx/carbon/fontdlg.cpp:525 msgid "Size:" msgstr "Boyut:" #: ../src/generic/progdlgg.cpp:262 ../src/generic/progdlgg.cpp:773 #: ../src/msw/progdlg.cpp:801 msgid "Skip" msgstr "Atlayın" #: ../src/generic/fontdlgg.cpp:330 msgid "Slant" msgstr "Eğik" #: ../src/richtext/richtextfontpage.cpp:298 msgid "Small C&apitals" msgstr "Küçük H&arfler" #: ../src/richtext/richtextborderspage.cpp:543 msgid "Solid" msgstr "Katı" #: ../src/common/docview.cpp:1773 msgid "Sorry, could not open this file." msgstr "Malesef bu dosya açılamıyor." #: ../src/common/prntbase.cpp:2027 ../src/common/prntbase.cpp:2035 msgid "Sorry, not enough memory to create a preview." msgstr "Malesef önizleme oluşturmak için yeterli bellek yok." #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "Sorry, that name is taken. Please choose another." msgstr "Malesef bu ad kullanılmış. Lütfen başka bir ad seçin." #: ../src/common/docview.cpp:1796 msgid "Sorry, the format for this file is unknown." msgstr "Malesef bu dosyanın biçimi bilinmiyor." #: ../src/unix/sound.cpp:492 msgid "Sound data are in unsupported format." msgstr "Ses verisi desteklenmeyen bir biçimde." #: ../src/unix/sound.cpp:477 #, c-format msgid "Sound file '%s' is in unsupported format." msgstr "'%s' ses dosyası desteklenmeyen bir biçimde." #: ../src/richtext/richtextliststylepage.cpp:467 msgid "Spacing" msgstr "Aralık" #: ../src/common/stockitem.cpp:197 msgid "Spell Check" msgstr "Yazım Denetimi" #: ../src/richtext/richtextliststylepage.cpp:490 #: ../src/richtext/richtextbulletspage.cpp:295 msgid "Standard" msgstr "Standart" #: ../src/common/paper.cpp:105 msgid "Statement, 5 1/2 x 8 1/2 in" msgstr "Statement, 5 1/2 x 8 1/2 inç" #: ../src/richtext/richtextsizepage.cpp:518 #: ../src/richtext/richtextsizepage.cpp:523 msgid "Static" msgstr "Durağan" #: ../src/generic/prntdlgg.cpp:204 msgid "Status:" msgstr "Durum:" #: ../src/common/stockitem.cpp:198 msgid "Stop" msgstr "Durdurun" #: ../src/common/stockitem.cpp:199 msgid "Strikethrough" msgstr "Üstü çizili" #: ../src/common/colourcmn.cpp:45 #, c-format msgid "String To Colour : Incorrect colour specification : %s" msgstr "Dizgeden Renge: Hatalı renk tanımı: %s" #: ../src/richtext/richtextformatdlg.cpp:318 ../src/propgrid/advprops.cpp:647 msgid "Style" msgstr "Stil" #: ../include/wx/richtext/richtextstyledlg.h:47 msgid "Style Organiser" msgstr "Stil Düzenleyici" #: ../src/osx/carbon/fontdlg.cpp:534 msgid "Style:" msgstr "Stil:" #: ../src/richtext/richtextfontpage.cpp:312 msgid "Subscrip&t" msgstr "Al&tyazı" #: ../src/richtext/richtextfontpage.cpp:305 msgid "Supe&rscript" msgstr "Ü&styazı" #: ../src/common/paper.cpp:151 msgid "SuperA/SuperA/A4 227 x 356 mm" msgstr "SuperA/SuperA/A4 227 x 356 mm" #: ../src/common/paper.cpp:152 msgid "SuperB/SuperB/A3 305 x 487 mm" msgstr "SuperB/SuperB/A3 305 x 487 mm" #: ../src/generic/fontdlgg.cpp:326 msgid "Swiss" msgstr "İsveç" #: ../src/richtext/richtextliststylepage.cpp:488 #: ../src/richtext/richtextbulletspage.cpp:293 msgid "Symbol" msgstr "Sembol" #: ../src/richtext/richtextliststylepage.cpp:288 #: ../src/richtext/richtextbulletspage.cpp:240 msgid "Symbol &font:" msgstr "Sembol &yazı tipi:" #: ../include/wx/richtext/richtextsymboldlg.h:47 msgid "Symbols" msgstr "Simgeler" #: ../src/common/accelcmn.cpp:63 msgid "TAB" msgstr "TAB" #: ../src/common/imagtiff.cpp:372 ../src/common/imagtiff.cpp:385 #: ../src/common/imagtiff.cpp:744 msgid "TIFF: Couldn't allocate memory." msgstr "TIFF: Bellek ayrılamadı." #: ../src/common/imagtiff.cpp:304 msgid "TIFF: Error loading image." msgstr "TIFF: Görsel yükleme hatası." #: ../src/common/imagtiff.cpp:471 msgid "TIFF: Error reading image." msgstr "TIFF: Görsel okuma hatası." #: ../src/common/imagtiff.cpp:611 msgid "TIFF: Error saving image." msgstr "TIFF: Görsel kaydetme hatası." #: ../src/common/imagtiff.cpp:849 msgid "TIFF: Error writing image." msgstr "TIFF: Görsel yazma hatası." #: ../src/common/imagtiff.cpp:358 msgid "TIFF: Image size is abnormally big." msgstr "TIFF: Görsel boyutu anormal büyük." #: ../src/richtext/richtextbuffer.cpp:10794 msgid "Table Properties" msgstr "Tablo Özellikleri" #: ../src/common/paper.cpp:146 msgid "Tabloid Extra 11.69 x 18 in" msgstr "Tabloid Ek 11.69 x 18 inç" #: ../src/common/paper.cpp:103 msgid "Tabloid, 11 x 17 in" msgstr "Tabloid, 11 x 17 inç" #: ../src/richtext/richtextformatdlg.cpp:336 msgid "Tabs" msgstr "Sekmeler" #: ../src/generic/fontdlgg.cpp:327 msgid "Teletype" msgstr "Teletype" #: ../src/common/docview.cpp:1878 msgid "Templates" msgstr "Şablonlar" #: ../src/osx/carbon/dataview.cpp:2373 msgid "Text renderer cannot render value; value type: " msgstr "Metin görüntüleyici değeri işleyemiyor; değer tipi:" #: ../src/common/fmapbase.cpp:158 msgid "Thai (ISO-8859-11)" msgstr "Thai (ISO-8859-11)" #: ../src/common/ftp.cpp:620 msgid "The FTP server doesn't support passive mode." msgstr "FTP sunucusu pasif kipi desteklemiyor." #: ../src/common/ftp.cpp:606 msgid "The FTP server doesn't support the PORT command." msgstr "FTP sunucusu PORT komutunu desteklemiyor." #: ../src/richtext/richtextliststylepage.cpp:215 #: ../src/richtext/richtextliststylepage.cpp:217 #: ../src/richtext/richtextbulletspage.cpp:164 #: ../src/richtext/richtextbulletspage.cpp:166 msgid "The available bullet styles." msgstr "Kullanılabilecek madde imi stilleri." #: ../src/richtext/richtextstyledlg.cpp:202 #: ../src/richtext/richtextstyledlg.cpp:204 msgid "The available styles." msgstr "Kullanılabilecek stiller." #: ../src/richtext/richtextbackgroundpage.cpp:139 #: ../src/richtext/richtextbackgroundpage.cpp:141 msgid "The background colour." msgstr "Artalan rengi." #: ../src/richtext/richtextmarginspage.cpp:268 #: ../src/richtext/richtextmarginspage.cpp:270 msgid "The bottom margin size." msgstr "Alt kenar boşluğunun boyutu." #: ../src/richtext/richtextmarginspage.cpp:382 #: ../src/richtext/richtextmarginspage.cpp:384 msgid "The bottom padding size." msgstr "Alt yastıklama boyutu." #: ../src/richtext/richtextsizepage.cpp:639 #: ../src/richtext/richtextsizepage.cpp:641 #: ../src/richtext/richtextsizepage.cpp:653 #: ../src/richtext/richtextsizepage.cpp:655 msgid "The bottom position." msgstr "Alt konum." #: ../src/richtext/richtextliststylepage.cpp:254 #: ../src/richtext/richtextliststylepage.cpp:256 #: ../src/richtext/richtextliststylepage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:277 #: ../src/richtext/richtextbulletspage.cpp:204 #: ../src/richtext/richtextbulletspage.cpp:206 #: ../src/richtext/richtextbulletspage.cpp:227 #: ../src/richtext/richtextbulletspage.cpp:229 msgid "The bullet character." msgstr "Madde imi karakteri." #: ../src/richtext/richtextsymboldlg.cpp:443 #: ../src/richtext/richtextsymboldlg.cpp:445 msgid "The character code." msgstr "Karakter kodu." #: ../src/common/fontmap.cpp:203 #, c-format msgid "" "The charset '%s' is unknown. You may select\n" "another charset to replace it with or choose\n" "[Cancel] if it cannot be replaced" msgstr "" "'%s' karakter kümesi bilinmiyor. Yerine\n" "başka bir tane seçebilir ya da \n" "seçemiyorsanız [İptal] düğmesine tıklayabilirsiniz" #: ../src/msw/ole/dataobj.cpp:367 #, c-format msgid "The clipboard format '%d' doesn't exist." msgstr "'%d' pano biçimi bulunamıyor." #: ../src/richtext/richtextstylepage.cpp:128 #: ../src/richtext/richtextstylepage.cpp:130 msgid "The default style for the next paragraph." msgstr "Sonraki paragraf için varsayılan stil." #: ../src/generic/dirdlgg.cpp:231 #, c-format msgid "" "The directory '%s' does not exist\n" "Create it now?" msgstr "" "'%s' klasörü bulunamadı\n" "Şimdi oluşturulsun mu?" #: ../src/html/htmprint.cpp:271 #, c-format msgid "" "The document \"%s\" doesn't fit on the page horizontally and will be " "truncated if printed.\n" "\n" "Would you like to proceed with printing it nevertheless?" msgstr "" "\"%s\" belgesi sayfaya yatay olarak sığmıyor ve yazdırılırsa budanacak.\n" "\n" "Buna rağmen yazdırmak istiyor musunuz?" #: ../src/common/docview.cpp:1184 #, c-format msgid "" "The file '%s' doesn't exist and couldn't be opened.\n" "It has been removed from the most recently used files list." msgstr "" "'%s' dosyası yok ve açılamadı.\n" "Son kullanılan dosyalar listesinden kaldırıldı." #: ../src/richtext/richtextindentspage.cpp:208 #: ../src/richtext/richtextindentspage.cpp:210 #: ../src/richtext/richtextliststylepage.cpp:394 #: ../src/richtext/richtextliststylepage.cpp:396 msgid "The first line indent." msgstr "İlk satır girintisi." #: ../src/gtk/utilsgtk.cpp:427 msgid "The following standard GTK+ options are also supported:\n" msgstr "Aşağıdaki standart GTK+ seçenekleri de desteklenmektedir:\n" #: ../src/generic/fontdlgg.cpp:414 ../src/generic/fontdlgg.cpp:416 msgid "The font colour." msgstr "Yazı tipi rengi." #: ../src/generic/fontdlgg.cpp:375 ../src/generic/fontdlgg.cpp:377 msgid "The font family." msgstr "Yazı tipi ailesi." #: ../src/richtext/richtextsymboldlg.cpp:405 #: ../src/richtext/richtextsymboldlg.cpp:407 msgid "The font from which to take the symbol." msgstr "Simgenin alınacağı yazı tipi." #: ../src/generic/fontdlgg.cpp:427 ../src/generic/fontdlgg.cpp:429 #: ../src/generic/fontdlgg.cpp:434 ../src/generic/fontdlgg.cpp:436 msgid "The font point size." msgstr "Yazı tipi punto boyutu." #: ../src/osx/carbon/fontdlg.cpp:529 ../src/osx/carbon/fontdlg.cpp:531 msgid "The font size in points." msgstr "Punto olarak yazı tipi boyutu." #: ../src/richtext/richtextfontpage.cpp:190 #: ../src/richtext/richtextfontpage.cpp:192 msgid "The font size units, points or pixels." msgstr "Yazı tipi boyutu birimi, punto ya da piksel." #: ../src/generic/fontdlgg.cpp:386 ../src/generic/fontdlgg.cpp:388 msgid "The font style." msgstr "Yazı tipi stili." #: ../src/generic/fontdlgg.cpp:397 ../src/generic/fontdlgg.cpp:399 msgid "The font weight." msgstr "Yazı tipi yoğunluğu." #: ../src/common/docview.cpp:1465 #, c-format msgid "The format of file '%s' couldn't be determined." msgstr "'%s' dosyasının biçimi belirlenemedi." #: ../src/richtext/richtextindentspage.cpp:199 #: ../src/richtext/richtextindentspage.cpp:201 #: ../src/richtext/richtextliststylepage.cpp:385 #: ../src/richtext/richtextliststylepage.cpp:387 msgid "The left indent." msgstr "Sol girinti." #: ../src/richtext/richtextmarginspage.cpp:195 #: ../src/richtext/richtextmarginspage.cpp:197 msgid "The left margin size." msgstr "Sol kenar boşluğu boyutu." #: ../src/richtext/richtextmarginspage.cpp:309 #: ../src/richtext/richtextmarginspage.cpp:311 msgid "The left padding size." msgstr "Sol yastıklama boyutu." #: ../src/richtext/richtextsizepage.cpp:534 #: ../src/richtext/richtextsizepage.cpp:536 #: ../src/richtext/richtextsizepage.cpp:548 #: ../src/richtext/richtextsizepage.cpp:550 msgid "The left position." msgstr "Sol konum." #: ../src/richtext/richtextindentspage.cpp:288 #: ../src/richtext/richtextindentspage.cpp:290 #: ../src/richtext/richtextliststylepage.cpp:462 #: ../src/richtext/richtextliststylepage.cpp:464 msgid "The line spacing." msgstr "Satır aralığı." #: ../src/richtext/richtextbulletspage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:270 msgid "The list item number." msgstr "Liste ögesi numarası." #: ../src/msw/ole/automtn.cpp:653 msgid "The locale ID is unknown." msgstr "Yerel kodu bilinmiyor." #: ../src/richtext/richtextsizepage.cpp:366 #: ../src/richtext/richtextsizepage.cpp:368 msgid "The object height." msgstr "Nesne yüksekliği." #: ../src/richtext/richtextsizepage.cpp:474 #: ../src/richtext/richtextsizepage.cpp:476 msgid "The object maximum height." msgstr "En fazla nesne yüksekliği." #: ../src/richtext/richtextsizepage.cpp:447 #: ../src/richtext/richtextsizepage.cpp:449 msgid "The object maximum width." msgstr "En fazla nesne genişliği." #: ../src/richtext/richtextsizepage.cpp:420 #: ../src/richtext/richtextsizepage.cpp:422 msgid "The object minimum height." msgstr "En az nesne yüksekliği." #: ../src/richtext/richtextsizepage.cpp:393 #: ../src/richtext/richtextsizepage.cpp:395 msgid "The object minimum width." msgstr "En az nesne genişliği." #: ../src/richtext/richtextsizepage.cpp:332 #: ../src/richtext/richtextsizepage.cpp:334 msgid "The object width." msgstr "Nesne genişliği." #: ../src/richtext/richtextindentspage.cpp:227 #: ../src/richtext/richtextindentspage.cpp:229 msgid "The outline level." msgstr "Taslak düzeyi." #: ../src/common/log.cpp:281 #, c-format msgid "The previous message repeated %lu time." msgid_plural "The previous message repeated %lu times." msgstr[0] "Önceki ileti %lu kez yinelendi." #: ../src/common/log.cpp:274 msgid "The previous message repeated once." msgstr "Önceki ileti bir kez yinelendi." #: ../src/gtk/print.cpp:931 ../src/gtk/print.cpp:1114 msgid "The print dialog returned an error." msgstr "Yazdırma penceresi bir hata verdi." #: ../src/richtext/richtextsymboldlg.cpp:462 #: ../src/richtext/richtextsymboldlg.cpp:464 msgid "The range to show." msgstr "Görüntülenecek aralık." #: ../src/generic/dbgrptg.cpp:322 msgid "" "The report contains the files listed below. If any of these files contain " "private information,\n" "please uncheck them and they will be removed from the report.\n" msgstr "" "Bu rapor aşağıdaki dosyaları içermektedir. Eğer bu dosyalarda özel " "bilgileriniz varsa,\n" "rapordan çıkarmak istediğiniz dosyaların işaretini kaldırın.\n" #: ../src/common/cmdline.cpp:1083 #, c-format msgid "The required parameter '%s' was not specified." msgstr "Gerekli '%s' parametresi belirtilmemiş." #: ../src/richtext/richtextindentspage.cpp:217 #: ../src/richtext/richtextindentspage.cpp:219 #: ../src/richtext/richtextliststylepage.cpp:403 #: ../src/richtext/richtextliststylepage.cpp:405 msgid "The right indent." msgstr "Sağ girinti." #: ../src/richtext/richtextmarginspage.cpp:220 #: ../src/richtext/richtextmarginspage.cpp:222 msgid "The right margin size." msgstr "Sağ kenar boşluğu boyutu." #: ../src/richtext/richtextmarginspage.cpp:334 #: ../src/richtext/richtextmarginspage.cpp:336 msgid "The right padding size." msgstr "Sağ yastıklama boyutu." #: ../src/richtext/richtextsizepage.cpp:604 #: ../src/richtext/richtextsizepage.cpp:606 #: ../src/richtext/richtextsizepage.cpp:618 #: ../src/richtext/richtextsizepage.cpp:620 msgid "The right position." msgstr "Sağ konum." #: ../src/richtext/richtextindentspage.cpp:267 #: ../src/richtext/richtextliststylepage.cpp:439 #: ../src/richtext/richtextliststylepage.cpp:441 msgid "The spacing after the paragraph." msgstr "Paragraftan sonraki boşluk." #: ../src/richtext/richtextindentspage.cpp:257 #: ../src/richtext/richtextindentspage.cpp:259 #: ../src/richtext/richtextliststylepage.cpp:430 #: ../src/richtext/richtextliststylepage.cpp:432 msgid "The spacing before the paragraph." msgstr "Paragraftan önceki boşluk." #: ../src/richtext/richtextstylepage.cpp:108 #: ../src/richtext/richtextstylepage.cpp:110 msgid "The style name." msgstr "Stil adı." #: ../src/richtext/richtextstylepage.cpp:118 #: ../src/richtext/richtextstylepage.cpp:120 msgid "The style on which this style is based." msgstr "Bu stilin temel alındığı stil." #: ../src/richtext/richtextstyledlg.cpp:214 #: ../src/richtext/richtextstyledlg.cpp:216 msgid "The style preview." msgstr "Stil önizlemesi." #: ../src/msw/ole/automtn.cpp:669 msgid "The system cannot find the file specified." msgstr "Sistem belirtilen dosyayı bulamadı." #: ../src/richtext/richtexttabspage.cpp:118 #: ../src/richtext/richtexttabspage.cpp:120 msgid "The tab position." msgstr "Sekme konumu." #: ../src/richtext/richtexttabspage.cpp:124 msgid "The tab positions." msgstr "Sekme konumları." #: ../src/richtext/richtextctrl.cpp:2705 msgid "The text couldn't be saved." msgstr "Metin kaydedilemedi." #: ../src/richtext/richtextmarginspage.cpp:243 #: ../src/richtext/richtextmarginspage.cpp:245 msgid "The top margin size." msgstr "Üst kenar boşluğu boyutu." #: ../src/richtext/richtextmarginspage.cpp:357 #: ../src/richtext/richtextmarginspage.cpp:359 msgid "The top padding size." msgstr "Üst yastıklama boyutu." #: ../src/richtext/richtextsizepage.cpp:569 #: ../src/richtext/richtextsizepage.cpp:571 #: ../src/richtext/richtextsizepage.cpp:583 #: ../src/richtext/richtextsizepage.cpp:585 msgid "The top position." msgstr "Üst konum." #: ../src/common/cmdline.cpp:1061 #, c-format msgid "The value for the option '%s' must be specified." msgstr "'%s' seçeneği için değer belirtilmelidir." #: ../src/msw/dialup.cpp:452 #, c-format msgid "" "The version of remote access service (RAS) installed on this machine is too " "old, please upgrade (the following required function is missing: %s)." msgstr "" "Bu bilgisayarda kurulu uzak erişim hizmetinin (RAS) sürümü çok eski, lütfen " "yükseltin (gereken şu işlev eksik: %s)." #: ../src/gtk/print.cpp:959 msgid "The wxGtkPrinterDC cannot be used." msgstr "wxGtkPrinterDC kullanılamıyor." #: ../src/osx/carbon/dataview.cpp:1340 msgid "There is no column or renderer for the specified column index." msgstr "Belirtilen sütun dizin için sütun ya da görüntüleyici bulunamadı." #: ../src/richtext/richtextprint.cpp:614 ../src/html/htmprint.cpp:735 msgid "" "There was a problem during page setup: you may need to set a default printer." msgstr "" "Sayfa ayarlanırken bir hata oluştu: varsayılan bir yazıcı belirlemeniz " "gerekebilir." #: ../src/html/htmprint.cpp:255 msgid "" "This document doesn't fit on the page horizontally and will be truncated " "when it is printed." msgstr "Bu belge sayfaya yatay olarak sığmıyor ve yazdırılırsa budanacak." #: ../src/common/image.cpp:2716 #, c-format msgid "This is not a %s." msgstr "Bu bir %s değil." #: ../src/common/wincmn.cpp:1653 msgid "This platform does not support background transparency." msgstr "Bu platformda artalan saydamlığı desteklenmiyor." #: ../src/gtk/window.cpp:4317 msgid "" "This program was compiled with a too old version of GTK+, please rebuild " "with GTK+ 2.12 or newer." msgstr "" "Bu program çok eski bir GTK+ sürümüyle derlenmiş. Lütfen GTK+ 2.12 ya da " "üzeri bir sürümle yeniden derleyin." #: ../src/msw/datecontrols.cpp:59 msgid "" "This system doesn't support date controls, please upgrade your version of " "comctl32.dll" msgstr "" "Bu sistem tarih ögelerini desteklemiyor, lütfen comctl32.dll sürümünü " "yükseltin" #: ../src/msw/thread.cpp:1300 msgid "" "Thread module initialization failed: cannot store value in thread local " "storage" msgstr "İş parçacığı modülü başlatılamadı: yerel depoya değer koyulamıyor" #: ../src/unix/threadpsx.cpp:1758 msgid "Thread module initialization failed: failed to create thread key" msgstr "" "İş parçacığı modülü başlatılamadı: iş parçacığı anahtarı oluşturulamadı" #: ../src/msw/thread.cpp:1288 msgid "" "Thread module initialization failed: impossible to allocate index in thread " "local storage" msgstr "İş parçacığı modülü başlatılamadı: yerel depoda dizin oluşturulamıyor" #: ../src/unix/threadpsx.cpp:1038 msgid "Thread priority setting is ignored." msgstr "İş parçacığı öncelik ayarları yok sayıldı." #: ../src/msw/mdi.cpp:172 msgid "Tile &Horizontally" msgstr "&Yatay Döşeyin" #: ../src/msw/mdi.cpp:173 msgid "Tile &Vertically" msgstr "&Dikey Döşeyin" #: ../src/common/ftp.cpp:202 msgid "Timeout while waiting for FTP server to connect, try passive mode." msgstr "FTP sunucusuna bağlanırken zamanaşımı oldu, pasif kipi deneyin." #: ../src/os2/timer.cpp:99 msgid "Timer creation failed." msgstr "Zamanlayıcı oluşturulamadı" #: ../src/generic/tipdlg.cpp:220 msgid "Tip of the Day" msgstr "Günün İpucu" #: ../src/generic/tipdlg.cpp:154 msgid "Tips not available, sorry!" msgstr "Malesef ipucu yok!" #: ../src/generic/prntdlgg.cpp:242 msgid "To:" msgstr "Kime:" #: ../src/osx/carbon/dataview.cpp:2451 msgid "Toggle renderer cannot render value; value type: " msgstr "İki durumlu düğme görüntüleyici değeri işleyemiyor; değer tipi:" #: ../src/richtext/richtextbuffer.cpp:7983 msgid "Too many EndStyle calls!" msgstr "Çok fazla EndStyle çağrısı!" #: ../src/common/imagpng.cpp:286 msgid "Too many colours in PNG, the image may be slightly blurred." msgstr "PNG içinde çok fazla renk var, görüntü biraz bulanıklaşabilir." #: ../src/richtext/richtextsizepage.cpp:286 #: ../src/richtext/richtextsizepage.cpp:290 ../src/common/stockitem.cpp:200 msgid "Top" msgstr "Üst" #: ../src/generic/prntdlgg.cpp:881 msgid "Top margin (mm):" msgstr "Üst kenar boşluğu (mm):" #: ../src/generic/aboutdlgg.cpp:79 msgid "Translations by " msgstr "Çeviren" #: ../src/generic/aboutdlgg.cpp:188 msgid "Translators" msgstr "Çevirmenler" #: ../src/propgrid/propgrid.cpp:173 msgid "True" msgstr "Doğru" #: ../src/common/fs_mem.cpp:227 #, c-format msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!" msgstr "" "'%s' dosyası yüklü olmadığı halde VFS belleğinden silinmeye çalışılıyor!" #: ../src/common/fmapbase.cpp:156 msgid "Turkish (ISO-8859-9)" msgstr "Türkçe (ISO-8859-9)" #: ../src/generic/filectrlg.cpp:461 msgid "Type" msgstr "Tip" #: ../src/richtext/richtextfontpage.cpp:160 #: ../src/richtext/richtextfontpage.cpp:162 msgid "Type a font name." msgstr "Bir yazı tipi adı yazın." #: ../src/richtext/richtextfontpage.cpp:175 #: ../src/richtext/richtextfontpage.cpp:177 msgid "Type a size in points." msgstr "Punto olarak bir boyut yazın." #: ../src/msw/ole/automtn.cpp:665 #, c-format msgid "Type mismatch in argument %u." msgstr "%u argümanında tip uyuşmazlığı." #: ../src/common/xtixml.cpp:356 ../src/common/xtixml.cpp:509 #: ../src/common/xtistrm.cpp:322 msgid "Type must have enum - long conversion" msgstr "Tip enum - long çevrimini desteklemelidir" #: ../src/propgrid/propgridiface.cpp:382 #, c-format msgid "" "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", NOT " "\"%s\"." msgstr "" "\"%s\" tip işlemi yapılamadı: Etiketlenen özellik \"%s\" \"%s\" tipinde, \"%s" "\" tipinde DEĞİL." #: ../src/common/accelcmn.cpp:58 msgid "UP" msgstr "UP" #: ../src/common/paper.cpp:134 msgid "US Std Fanfold, 14 7/8 x 11 in" msgstr "US Std Fanfold, 14 7/8 x 11 inç" #: ../src/common/fmapbase.cpp:196 msgid "US-ASCII" msgstr "US-ASCII" #: ../src/unix/fswatcher_inotify.cpp:109 msgid "Unable to add inotify watch" msgstr "inotify izlemesi eklenemedi" #: ../src/unix/fswatcher_kqueue.cpp:136 msgid "Unable to add kqueue watch" msgstr "kqueue izlemesi eklenemedi" #: ../include/wx/msw/private/fswatcher.h:142 msgid "Unable to associate handle with I/O completion port" msgstr "G/Ç tamamlanma kapısı işleyici ile ilişkilendirilemedi" #: ../include/wx/msw/private/fswatcher.h:125 msgid "Unable to close I/O completion port handle" msgstr "G/Ç tamamlanma kapısı işleyicisi kapatılamadı" #: ../src/unix/fswatcher_inotify.cpp:97 msgid "Unable to close inotify instance" msgstr "inotify kopyası kapatılamadı" #: ../include/wx/unix/private/fswatcher_kqueue.h:74 #, c-format msgid "Unable to close path '%s'" msgstr "'%s' yolu kapatılamadı" #: ../include/wx/msw/private/fswatcher.h:48 #, c-format msgid "Unable to close the handle for '%s'" msgstr "'%s' işleyicisi kapatılamadı" #: ../include/wx/msw/private/fswatcher.h:240 msgid "Unable to create I/O completion port" msgstr "G/Ç tamamlanma kapısı oluşturulamadı" #: ../src/msw/fswatcher.cpp:84 msgid "Unable to create IOCP worker thread" msgstr "IOCP iş parçacığı oluşturulamadı" #: ../src/unix/fswatcher_inotify.cpp:74 msgid "Unable to create inotify instance" msgstr "inotify kopyası oluşturulamadı" #: ../src/unix/fswatcher_kqueue.cpp:97 msgid "Unable to create kqueue instance" msgstr "kqueue kopyası oluşturulamadı" #: ../include/wx/msw/private/fswatcher.h:229 msgid "Unable to dequeue completion packet" msgstr "Tamamlanma paketi kuyruktan çıkarılamadı" #: ../src/unix/fswatcher_kqueue.cpp:185 msgid "Unable to get events from kqueue" msgstr "Olaylar kqueue üzerinden alınamadı" #: ../src/osx/carbon/dataview.cpp:1903 msgid "Unable to handle native drag&drop data" msgstr "Doğal sürükle bırak verisi işlenemedi" #: ../src/gtk/app.cpp:439 msgid "Unable to initialize GTK+, is DISPLAY set properly?" msgstr "GTK+ başlatılamadı, DISPLAY düzgün ayarlanmış mı?" #: ../src/gtk/app.cpp:276 msgid "Unable to initialize Hildon program" msgstr "Hildon programı başlatılamadı" #: ../include/wx/unix/private/fswatcher_kqueue.h:57 #, c-format msgid "Unable to open path '%s'" msgstr "'%s' yolu açılamadı" #: ../src/html/htmlwin.cpp:561 #, c-format msgid "Unable to open requested HTML document: %s" msgstr "İstenen HTML belgesi açılamıyor: %s" #: ../src/unix/sound.cpp:368 msgid "Unable to play sound asynchronously." msgstr "Ses zaman eşlemesiz olarak çalınamıyor." #: ../include/wx/msw/private/fswatcher.h:207 msgid "Unable to post completion status" msgstr "Tamamlanma durumu gönderilemedi" #: ../src/unix/fswatcher_inotify.cpp:530 msgid "Unable to read from inotify descriptor" msgstr "inotify tanımlayıcısı okunamadı" #: ../src/unix/fswatcher_inotify.cpp:132 msgid "Unable to remove inotify watch" msgstr "inotify izlemesi kaldırılamadı" #: ../src/unix/fswatcher_kqueue.cpp:153 msgid "Unable to remove kqueue watch" msgstr "kqueue izlemesi kaldırılamadı" #: ../src/msw/fswatcher.cpp:168 #, c-format msgid "Unable to set up watch for '%s'" msgstr "'%s' izlemesi kurulamadı" #: ../src/msw/fswatcher.cpp:91 msgid "Unable to start IOCP worker thread" msgstr "IOCP iş parçacığı başlatılamadı" #: ../src/common/stockitem.cpp:201 msgid "Undelete" msgstr "Silmeyi geri alın" #: ../src/common/stockitem.cpp:202 msgid "Underline" msgstr "Altıçizili" #: ../src/richtext/richtextfontpage.cpp:341 ../src/osx/carbon/fontdlg.cpp:556 #: ../src/propgrid/advprops.cpp:655 msgid "Underlined" msgstr "Altıçizili" #: ../src/common/stockitem.cpp:203 ../src/stc/stc_i18n.cpp:15 msgid "Undo" msgstr "Geri Alın" #: ../src/common/stockitem.cpp:265 msgid "Undo last action" msgstr "Son eylemi geri alın" #: ../src/common/cmdline.cpp:864 #, c-format msgid "Unexpected characters following option '%s'." msgstr "'%s' seçeneğinden sonra beklenmeyen karakterler." #: ../src/unix/fswatcher_inotify.cpp:261 #, c-format msgid "Unexpected event for \"%s\": no matching watch descriptor." msgstr "\"%s\" için beklenmeyen etkinlik: uyan izleme belirteci yok." #: ../src/common/cmdline.cpp:1024 #, c-format msgid "Unexpected parameter '%s'" msgstr "Beklenmeyen parametre '%s'" #: ../include/wx/msw/private/fswatcher.h:148 msgid "Unexpectedly new I/O completion port was created" msgstr "Beklenmedik şekilde yeni G/Ç tamamlanma kapısı oluşturuldu" #: ../src/msw/fswatcher.cpp:70 msgid "Ungraceful worker thread termination" msgstr "Uygunsuz iş parçacığı sonlandırması" #: ../src/richtext/richtextsymboldlg.cpp:459 #: ../src/richtext/richtextsymboldlg.cpp:460 #: ../src/richtext/richtextsymboldlg.cpp:461 msgid "Unicode" msgstr "Unikod" #: ../src/common/fmapbase.cpp:185 ../src/common/fmapbase.cpp:191 msgid "Unicode 16 bit (UTF-16)" msgstr "Unikod 16 bit (UTF-16)" #: ../src/common/fmapbase.cpp:190 msgid "Unicode 16 bit Big Endian (UTF-16BE)" msgstr "Unikod 16 bit Big Endian (UTF-16BE)" #: ../src/common/fmapbase.cpp:186 msgid "Unicode 16 bit Little Endian (UTF-16LE)" msgstr "Unikod 16 bit Little Endian (UTF-16LE)" #: ../src/common/fmapbase.cpp:187 ../src/common/fmapbase.cpp:193 msgid "Unicode 32 bit (UTF-32)" msgstr "Unikod 32 bit (UTF-32)" #: ../src/common/fmapbase.cpp:192 msgid "Unicode 32 bit Big Endian (UTF-32BE)" msgstr "Unikod 32 bit Big Endian (UTF-32BE)" #: ../src/common/fmapbase.cpp:188 msgid "Unicode 32 bit Little Endian (UTF-32LE)" msgstr "Unikod 32 bit Little Endian (UTF-32LE)" #: ../src/common/fmapbase.cpp:182 msgid "Unicode 7 bit (UTF-7)" msgstr "7 bit Unikod (UTF-7)" #: ../src/common/fmapbase.cpp:183 msgid "Unicode 8 bit (UTF-8)" msgstr "8 bit Unikod (UTF-8)" #: ../src/common/stockitem.cpp:204 msgid "Unindent" msgstr "Girintiyi geri alın" #: ../src/richtext/richtextborderspage.cpp:373 #: ../src/richtext/richtextborderspage.cpp:375 msgid "Units for the bottom border width." msgstr "Alt kenarlık genişliğinin birimleri." #: ../src/richtext/richtextmarginspage.cpp:278 #: ../src/richtext/richtextmarginspage.cpp:280 msgid "Units for the bottom margin." msgstr "Alt kenar boşluğunun birimleri." #: ../src/richtext/richtextborderspage.cpp:517 #: ../src/richtext/richtextborderspage.cpp:519 msgid "Units for the bottom outline width." msgstr "Alt taslak genişliğinin birimleri." #: ../src/richtext/richtextmarginspage.cpp:392 #: ../src/richtext/richtextmarginspage.cpp:394 msgid "Units for the bottom padding." msgstr "Alt yastıklamanın birimleri." #: ../src/richtext/richtextsizepage.cpp:664 #: ../src/richtext/richtextsizepage.cpp:666 msgid "Units for the bottom position." msgstr "Alt konumun birimleri." #: ../src/richtext/richtextborderspage.cpp:283 #: ../src/richtext/richtextborderspage.cpp:285 msgid "Units for the left border width." msgstr "Sol sınır genişliğinin birimleri." #: ../src/richtext/richtextmarginspage.cpp:205 #: ../src/richtext/richtextmarginspage.cpp:207 msgid "Units for the left margin." msgstr "Sol kenar boşluğunun birimleri." #: ../src/richtext/richtextborderspage.cpp:427 #: ../src/richtext/richtextborderspage.cpp:429 msgid "Units for the left outline width." msgstr "Sol taslak genişliğinin birimleri." #: ../src/richtext/richtextmarginspage.cpp:319 #: ../src/richtext/richtextmarginspage.cpp:321 msgid "Units for the left padding." msgstr "Sol yastıklamanın birimleri." #: ../src/richtext/richtextsizepage.cpp:559 #: ../src/richtext/richtextsizepage.cpp:561 msgid "Units for the left position." msgstr "Sol konumun birimleri." #: ../src/richtext/richtextsizepage.cpp:485 #: ../src/richtext/richtextsizepage.cpp:487 msgid "Units for the maximum object height." msgstr "En fazla nesne yüksekliğinin birimleri." #: ../src/richtext/richtextsizepage.cpp:458 #: ../src/richtext/richtextsizepage.cpp:460 msgid "Units for the maximum object width." msgstr "En fazla nesne genişliğinin birimleri." #: ../src/richtext/richtextsizepage.cpp:431 #: ../src/richtext/richtextsizepage.cpp:433 msgid "Units for the minimum object height." msgstr "En az nesne yüksekliğinin birimleri." #: ../src/richtext/richtextsizepage.cpp:404 #: ../src/richtext/richtextsizepage.cpp:406 msgid "Units for the minimum object width." msgstr "En az nesne genişliğinin birimleri." #: ../src/richtext/richtextsizepage.cpp:377 #: ../src/richtext/richtextsizepage.cpp:379 msgid "Units for the object height." msgstr "Nesne yüksekliğinin birimleri." #: ../src/richtext/richtextsizepage.cpp:343 #: ../src/richtext/richtextsizepage.cpp:345 msgid "Units for the object width." msgstr "Nesne genişliğinin birimleri." #: ../src/richtext/richtextborderspage.cpp:313 #: ../src/richtext/richtextborderspage.cpp:315 msgid "Units for the right border width." msgstr "Sağ sınır genişliğinin birimleri." #: ../src/richtext/richtextmarginspage.cpp:230 #: ../src/richtext/richtextmarginspage.cpp:232 msgid "Units for the right margin." msgstr "Sağ kenar boşluğunun birimleri." #: ../src/richtext/richtextborderspage.cpp:457 #: ../src/richtext/richtextborderspage.cpp:459 msgid "Units for the right outline width." msgstr "Sağ taslak genişliğinin birimleri." #: ../src/richtext/richtextmarginspage.cpp:344 #: ../src/richtext/richtextmarginspage.cpp:346 msgid "Units for the right padding." msgstr "Sağ yastıklamanın birimleri." #: ../src/richtext/richtextsizepage.cpp:629 #: ../src/richtext/richtextsizepage.cpp:631 msgid "Units for the right position." msgstr "Sağ konumun birimleri." #: ../src/richtext/richtextborderspage.cpp:343 #: ../src/richtext/richtextborderspage.cpp:345 msgid "Units for the top border width." msgstr "Üst kenarlık genişliğinin birimleri." #: ../src/richtext/richtextmarginspage.cpp:253 #: ../src/richtext/richtextmarginspage.cpp:255 msgid "Units for the top margin." msgstr "Üst kenar boşluğunun birimleri." #: ../src/richtext/richtextborderspage.cpp:487 #: ../src/richtext/richtextborderspage.cpp:489 msgid "Units for the top outline width." msgstr "Üst taslak genişliğinin birimleri." #: ../src/richtext/richtextmarginspage.cpp:367 #: ../src/richtext/richtextmarginspage.cpp:369 msgid "Units for the top padding." msgstr "Üst yastıklamanın birimleri." #: ../src/richtext/richtextsizepage.cpp:594 #: ../src/richtext/richtextsizepage.cpp:596 msgid "Units for the top position." msgstr "Üst konumun birimleri." #: ../src/generic/progdlgg.cpp:382 ../src/generic/progdlgg.cpp:655 msgid "Unknown" msgstr "Bilinmeyen" #: ../src/msw/dde.cpp:1177 #, c-format msgid "Unknown DDE error %08x" msgstr "Bilinmeyen DDE hatası %08x" #: ../src/common/xtistrm.cpp:414 msgid "Unknown Object passed to GetObjectClassInfo" msgstr "GetObjectClassInfo işlevi bilinmeyen nesne ile çağrıldı" #: ../src/common/imagpng.cpp:614 #, c-format msgid "Unknown PNG resolution unit %d" msgstr "Bilinmeyen PNG çözünürlük birimi %d " #: ../src/common/xtixml.cpp:327 #, c-format msgid "Unknown Property %s" msgstr "Bilinmeyen Özellik %s" #: ../src/common/imagtiff.cpp:532 #, c-format msgid "Unknown TIFF resolution unit %d ignored" msgstr "Bilinmeyen TIFF %d çözünürlük birimi yok sayıldı" #: ../src/osx/carbon/dataview.cpp:1978 msgid "Unknown data format" msgstr "Bilinmeyen veri biçimi" #: ../src/unix/dlunix.cpp:325 msgid "Unknown dynamic library error" msgstr "Blinmeyen devingen kitaplık hatası" #: ../src/common/fmapbase.cpp:810 #, c-format msgid "Unknown encoding (%d)" msgstr "Bilinmeyen kodlama (%d)" #: ../src/msw/ole/automtn.cpp:677 #, c-format msgid "Unknown error %08x" msgstr "Bilinmeyen hata %08x" #: ../src/msw/ole/automtn.cpp:636 msgid "Unknown exception" msgstr "Bilinmeyen istisna" #: ../src/common/image.cpp:2701 msgid "Unknown image data format." msgstr "Bilinmeyen görsel veri biçimi." #: ../src/common/cmdline.cpp:749 #, c-format msgid "Unknown long option '%s'" msgstr "Blinmeyen long seçeneği '%s'" #: ../src/msw/ole/automtn.cpp:620 msgid "Unknown name or named argument." msgstr "Bilinmeyen ad ya da adlandırılmış argüman." #: ../src/common/cmdline.cpp:764 ../src/common/cmdline.cpp:786 #, c-format msgid "Unknown option '%s'" msgstr "Bilinmeyen seçenek '%s'" #: ../src/common/mimecmn.cpp:230 #, c-format msgid "Unmatched '{' in an entry for mime type %s." msgstr "%s MIME tipi kaydına uymayan '{'." #: ../src/common/cmdproc.cpp:262 ../src/common/cmdproc.cpp:288 #: ../src/common/cmdproc.cpp:308 msgid "Unnamed command" msgstr "Adsız komut" #: ../src/propgrid/propgrid.cpp:398 msgid "Unspecified" msgstr "Belirtilmemiş" #: ../src/msw/clipbrd.cpp:271 ../src/msw/clipbrd.cpp:439 msgid "Unsupported clipboard format." msgstr "Desteklenmeyen pano biçimi." #: ../src/common/appcmn.cpp:249 #, c-format msgid "Unsupported theme '%s'." msgstr "Desteklenmeyen tema '%s'." #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:205 msgid "Up" msgstr "Yukarı" #: ../src/richtext/richtextliststylepage.cpp:483 #: ../src/richtext/richtextbulletspage.cpp:288 msgid "Upper case letters" msgstr "Büyük harfler" #: ../src/richtext/richtextliststylepage.cpp:485 #: ../src/richtext/richtextbulletspage.cpp:290 msgid "Upper case roman numerals" msgstr "Büyük harf romen rakamları" #: ../src/common/cmdline.cpp:1155 #, c-format msgid "Usage: %s" msgstr "Kullanım: %s" #: ../src/richtext/richtextindentspage.cpp:169 #: ../src/richtext/richtextindentspage.cpp:171 #: ../src/richtext/richtextliststylepage.cpp:358 #: ../src/richtext/richtextliststylepage.cpp:360 msgid "Use the current alignment setting." msgstr "Geçerli hizalama ayarları kullanılsın." #: ../src/osx/carbon/dataview.cpp:2658 ../src/osx/carbon/dataview.cpp:2723 msgid "Valid pointer to native data view control does not exist" msgstr "Doğal veri görünüm denetimine ait bir imleç yok" #: ../src/common/valtext.cpp:174 msgid "Validation conflict" msgstr "Doğrulama çelişkisi" #: ../src/propgrid/manager.cpp:238 msgid "Value" msgstr "Değer" #: ../src/propgrid/props.cpp:384 #, c-format msgid "Value must be %s or higher." msgstr "Değer %s ya da daha büyük olmalı." #: ../src/propgrid/props.cpp:411 #, c-format msgid "Value must be %s or less." msgstr "Değer %s ya da daha küçük olmalı." #: ../src/propgrid/props.cpp:388 ../src/propgrid/props.cpp:415 #, c-format msgid "Value must be between %s and %s." msgstr "Değer %s ile %s arasında olmalı." #: ../src/generic/aboutdlgg.cpp:128 msgid "Version " msgstr "Sürüm" #: ../src/richtext/richtextsizepage.cpp:291 #: ../src/richtext/richtextsizepage.cpp:293 msgid "Vertical alignment." msgstr "Dikey hizalama." #: ../src/generic/filedlgg.cpp:216 msgid "View files as a detailed view" msgstr "Dosyalar ayrıntılı görünümde görüntülensin" #: ../src/generic/filedlgg.cpp:214 msgid "View files as a list view" msgstr "Dosyalar liste görünümünde görüntülensin" #: ../src/common/docview.cpp:1952 msgid "Views" msgstr "Görünümler" #: ../src/common/accelcmn.cpp:108 msgid "WINDOWS_LEFT" msgstr "WINDOWS_LEFT" #: ../src/common/accelcmn.cpp:110 msgid "WINDOWS_MENU" msgstr "WINDOWS_MENU" #: ../src/common/accelcmn.cpp:109 msgid "WINDOWS_RIGHT" msgstr "WINDOWS_RIGHT" #: ../src/unix/epolldispatcher.cpp:213 #, c-format msgid "Waiting for IO on epoll descriptor %d failed" msgstr "%d epoll tanımlayıcısı üstündeki GÇ beklemesi başarısız" #: ../src/common/log.cpp:227 msgid "Warning: " msgstr "Uyarı:" #: ../src/propgrid/advprops.cpp:651 msgid "Weight" msgstr "Yoğunluk" #: ../src/common/fmapbase.cpp:148 msgid "Western European (ISO-8859-1)" msgstr "Batı Avrupa (ISO-8859-1)" #: ../src/common/fmapbase.cpp:162 msgid "Western European with Euro (ISO-8859-15)" msgstr "Batı Avrupa (Euro) (ISO-8859-15)" #: ../src/generic/fontdlgg.cpp:446 ../src/generic/fontdlgg.cpp:448 msgid "Whether the font is underlined." msgstr "Yazı tipinin altıçizili olup olmadığı." #: ../src/generic/fdrepdlg.cpp:144 msgid "Whole word" msgstr "Tam kelime" #: ../src/html/helpwnd.cpp:547 msgid "Whole words only" msgstr "Yalnız tam kelimeler" #: ../src/univ/themes/win32.cpp:1102 msgid "Win32 theme" msgstr "Win32 teması" #: ../src/msw/utils.cpp:1220 msgid "Win32s on Windows 3.1" msgstr "Windows 3.1 üstünde Win32s" #: ../src/msw/utils.cpp:1270 msgid "Windows 2000" msgstr "Windows 2000" #: ../src/msw/utils.cpp:1302 msgid "Windows 7" msgstr "Windows 7" #: ../src/msw/utils.cpp:1234 msgid "Windows 95" msgstr "Windows 95" #: ../src/msw/utils.cpp:1230 msgid "Windows 95 OSR2" msgstr "Windows 95 OSR2" #: ../src/msw/utils.cpp:1245 msgid "Windows 98" msgstr "Windows 98" #: ../src/msw/utils.cpp:1241 msgid "Windows 98 SE" msgstr "Windows 98 SE" #: ../src/msw/utils.cpp:1252 #, c-format msgid "Windows 9x (%d.%d)" msgstr "Windows 9x (%d.%d)" #: ../src/common/fmapbase.cpp:177 msgid "Windows Arabic (CP 1256)" msgstr "Windows Arapça (CP 1256)" #: ../src/common/fmapbase.cpp:178 msgid "Windows Baltic (CP 1257)" msgstr "Windows Baltık (CP 1257)" #: ../src/msw/utils.cpp:1214 #, c-format msgid "Windows CE (%d.%d)" msgstr "Windows CE (%d.%d)" #: ../src/common/fmapbase.cpp:171 msgid "Windows Central European (CP 1250)" msgstr "Windows Orta Avrupa (CP 1250)" #: ../src/common/fmapbase.cpp:168 msgid "Windows Chinese Simplified (CP 936) or GB-2312" msgstr "Windows Basitleştirilmiş Çince (CP 936) ya da GB-2312" #: ../src/common/fmapbase.cpp:170 msgid "Windows Chinese Traditional (CP 950) or Big-5" msgstr "Windows Geleneksel Çince (CP 950) ya da Big-5" #: ../src/common/fmapbase.cpp:172 msgid "Windows Cyrillic (CP 1251)" msgstr "Windows Kiril (CP 1251)" #: ../src/common/fmapbase.cpp:174 msgid "Windows Greek (CP 1253)" msgstr "Windows Yunanca (CP 1253)" #: ../src/common/fmapbase.cpp:176 msgid "Windows Hebrew (CP 1255)" msgstr "Windows İbranice (CP 1255)" #: ../src/common/fmapbase.cpp:167 msgid "Windows Japanese (CP 932) or Shift-JIS" msgstr "Windows Japonca (CP 932) ya da Shift-JIS" #: ../src/common/fmapbase.cpp:180 msgid "Windows Johab (CP 1361)" msgstr "Windows Johab (CP 1361)" #: ../src/common/fmapbase.cpp:169 msgid "Windows Korean (CP 949)" msgstr "Windows Korece (CP 949)" #: ../src/msw/utils.cpp:1249 msgid "Windows ME" msgstr "Windows ME" #: ../src/msw/utils.cpp:1310 #, c-format msgid "Windows NT %lu.%lu" msgstr "Windows NT %lu.%lu" #: ../src/msw/utils.cpp:1279 msgid "Windows Server 2003" msgstr "Windows Server 2003" #: ../src/msw/utils.cpp:1295 msgid "Windows Server 2008" msgstr "Windows Server 2008" #: ../src/msw/utils.cpp:1301 msgid "Windows Server 2008 R2" msgstr "Windows Server 2008 R2" #: ../src/common/fmapbase.cpp:166 msgid "Windows Thai (CP 874)" msgstr "Windows Tai (CP 874)" #: ../src/common/fmapbase.cpp:175 msgid "Windows Turkish (CP 1254)" msgstr "Windows Türkçe (CP 1254)" #: ../src/common/fmapbase.cpp:179 msgid "Windows Vietnamese (CP 1258)" msgstr "Windows Vietnamca (CP 1258)" #: ../src/msw/utils.cpp:1296 msgid "Windows Vista" msgstr "Windows Vista" #: ../src/common/fmapbase.cpp:173 msgid "Windows Western European (CP 1252)" msgstr "Windows Batı Avrupa (CP 1252)" #: ../src/msw/utils.cpp:1285 msgid "Windows XP" msgstr "Windows XP" #: ../src/common/fmapbase.cpp:181 msgid "Windows/DOS OEM (CP 437)" msgstr "Windows/DOS OEM (CP 437)" #: ../src/common/fmapbase.cpp:165 msgid "Windows/DOS OEM Cyrillic (CP 866)" msgstr "Windows/DOS OEM Kiril (CP 866)" #: ../src/common/ffile.cpp:148 #, c-format msgid "Write error on file '%s'" msgstr "'%s' dosyasına yazma hatası" #: ../src/xml/xml.cpp:844 #, c-format msgid "XML parsing error: '%s' at line %d" msgstr "'%s' XML işleme hatası: Satır %d" #: ../src/common/xpmdecod.cpp:796 msgid "XPM: Malformed pixel data!" msgstr "XPM: Bozuk piksel verisi!" #: ../src/common/xpmdecod.cpp:705 #, c-format msgid "XPM: incorrect colour description in line %d" msgstr "XPM: %d satırında hatalı renk açıklaması" #: ../src/common/xpmdecod.cpp:680 msgid "XPM: incorrect header format!" msgstr "XPM: hatalı üstbilgi biçimi!" #: ../src/common/xpmdecod.cpp:716 ../src/common/xpmdecod.cpp:725 #, c-format msgid "XPM: malformed colour definition '%s' at line %d!" msgstr "XPM: '%s' bozuk renk tanımı, satır %d!" #: ../src/common/xpmdecod.cpp:755 msgid "XPM: no colors left to use for mask!" msgstr "XPM: maske için kullanılacak renk kalmadı!" #: ../src/common/xpmdecod.cpp:782 #, c-format msgid "XPM: truncated image data at line %d!" msgstr "XPM: %d satırında budanmış görüntü verisi!" #: ../include/wx/msgdlg.h:271 ../src/common/stockitem.cpp:206 #: ../src/motif/msgdlg.cpp:196 msgid "Yes" msgstr "Evet" #: ../src/osx/carbon/overlay.cpp:155 msgid "You cannot Clear an overlay that is not inited" msgstr "Hazırlanmamış bir örtüşmeyi temizleyemezsiniz" #: ../src/osx/carbon/overlay.cpp:107 ../src/dfb/overlay.cpp:61 msgid "You cannot Init an overlay twice" msgstr "Bir örtüşmeyi iki kez hazırlayamazsınız" #: ../src/generic/dirdlgg.cpp:316 msgid "You cannot add a new directory to this section." msgstr "Bu bölüme yeni bir klasör ekleyemezsiniz." #: ../src/propgrid/propgrid.cpp:3258 msgid "You have entered invalid value. Press ESC to cancel editing." msgstr "" "Geçersiz bir değer yazdınız, düzenlemeyi iptal etmek için ESC tuşuna basın." #: ../src/common/stockitem.cpp:209 msgid "Zoom &In" msgstr "&Yaklaştırın" #: ../src/common/stockitem.cpp:210 msgid "Zoom &Out" msgstr "&Uzaklaştırın" #: ../src/common/stockitem.cpp:209 ../src/common/prntbase.cpp:1564 msgid "Zoom In" msgstr "Yaklaştırın" #: ../src/common/stockitem.cpp:210 ../src/common/prntbase.cpp:1550 msgid "Zoom Out" msgstr "Uzaklaştırın" #: ../src/common/stockitem.cpp:208 msgid "Zoom to &Fit" msgstr "&Sığdırın" #: ../src/common/stockitem.cpp:208 msgid "Zoom to Fit" msgstr "Sığdırın" #: ../src/msw/dde.cpp:1144 msgid "a DDEML application has created a prolonged race condition." msgstr "bir DDEML uygulaması uzun koşu durumu oluşturdu." #: ../src/msw/dde.cpp:1132 msgid "" "a DDEML function was called without first calling the DdeInitialize " "function,\n" "or an invalid instance identifier\n" "was passed to a DDEML function." msgstr "" "DDEML işlevi önceden DdeInitialize işlevi çağrılmadan çağrıldı,\n" "ya da DDEML işlevine geçersiz bir \n" "örnek tanımlayıcısı gönderildi." #: ../src/msw/dde.cpp:1150 msgid "a client's attempt to establish a conversation has failed." msgstr "bir istemcinin konuşma başlatma denemesi başarısız oldu." #: ../src/msw/dde.cpp:1147 msgid "a memory allocation failed." msgstr "bellek ayrılamadı." #: ../src/msw/dde.cpp:1141 msgid "a parameter failed to be validated by the DDEML." msgstr "parametre DDEML tarafından doğrulanamadı." #: ../src/msw/dde.cpp:1123 msgid "a request for a synchronous advise transaction has timed out." msgstr "eşzamanlı danışma hareketi isteği zaman aşımına uğradı." #: ../src/msw/dde.cpp:1129 msgid "a request for a synchronous data transaction has timed out." msgstr "eşzamanlı veri hareketi isteği zaman aşımına uğradı." #: ../src/msw/dde.cpp:1138 msgid "a request for a synchronous execute transaction has timed out." msgstr "eşzamanlı çalıştırma hareketi isteği zaman aşımına uğradı." #: ../src/msw/dde.cpp:1156 msgid "a request for a synchronous poke transaction has timed out." msgstr "eşzamanlı itme hareketi isteği zaman aşımına uğradı." #: ../src/msw/dde.cpp:1171 msgid "a request to end an advise transaction has timed out." msgstr "danışma hareketi bitirme isteği zaman aşımına uğradı." #: ../src/msw/dde.cpp:1165 msgid "" "a server-side transaction was attempted on a conversation\n" "that was terminated by the client, or the server\n" "terminated before completing a transaction." msgstr "" "istemci tarafından sonlandırılmış bir görüşme üstünde\n" "sunucu tarafında bir hareket denendi, ya da sunucu\n" "hareket tamamlanmadan sonlandırıldı." #: ../src/msw/dde.cpp:1153 msgid "a transaction failed." msgstr "hareket başarısız oldu." #: ../src/common/accelcmn.cpp:184 msgid "alt" msgstr "alt" #: ../src/msw/dde.cpp:1135 msgid "" "an application initialized as APPCLASS_MONITOR has\n" "attempted to perform a DDE transaction,\n" "or an application initialized as APPCMD_CLIENTONLY has \n" "attempted to perform server transactions." msgstr "" "APPCLASS_MONITOR olarak başlatılmış bir uygulama\n" "DDE hareketi gerçekleştirmeyi denedi,\n" "ya da APPCMD_CLIENTONLY olarak başlatılmış bir uygulama\n" "sunucu hareketi gerçekleştirmeyi denedi." #: ../src/msw/dde.cpp:1159 msgid "an internal call to the PostMessage function has failed. " msgstr "PostMessage işlevine içsel çağrı yapılamadı." #: ../src/msw/dde.cpp:1168 msgid "an internal error has occurred in the DDEML." msgstr "DDEML içsel hatası." #: ../src/msw/dde.cpp:1174 msgid "" "an invalid transaction identifier was passed to a DDEML function.\n" "Once the application has returned from an XTYP_XACT_COMPLETE callback,\n" "the transaction identifier for that callback is no longer valid." msgstr "" "DDEML işlevine geçersiz hareket kimliği gönderilmiş.\n" "Uygulama XTYP_XACT_COMPLETE çağrısından döndüğünde\n" "bu çağrının hareket kimliği geçersiz olacak." #: ../src/common/zipstrm.cpp:1272 msgid "assuming this is a multi-part zip concatenated" msgstr "bunun çok parçalı birleştirilmiş bir zip olduğu varsayılıyor" #: ../src/common/fileconf.cpp:1882 #, c-format msgid "attempt to change immutable key '%s' ignored." msgstr "'%s' değişmez anahtarını değiştirme denemesi yok sayıldı." #: ../src/html/chm.cpp:329 msgid "bad arguments to library function" msgstr "kitaplık işlevi için hatalı değişkenler" #: ../src/html/chm.cpp:341 msgid "bad signature" msgstr "kötü imza" #: ../src/common/zipstrm.cpp:1715 msgid "bad zipfile offset to entry" msgstr "kayıt için hatalı zip dosyası konumu" #: ../src/common/ftp.cpp:405 msgid "binary" msgstr "ikili" #: ../src/common/fontcmn.cpp:978 msgid "bold" msgstr "koyu" #: ../src/os2/iniconf.cpp:463 msgid "buffer is too small for Windows directory." msgstr "arabellek Windows klasörü için çok küçük." #: ../src/msw/utils.cpp:1316 #, c-format msgid "build %lu" msgstr "yapım %lu" #: ../src/common/ffile.cpp:79 #, c-format msgid "can't close file '%s'" msgstr "'%s' dosyası kapatılamıyor" #: ../src/common/file.cpp:278 #, c-format msgid "can't close file descriptor %d" msgstr "%d dosya tanımlayıcısı kapatılamıyor" #: ../src/common/file.cpp:604 #, c-format msgid "can't commit changes to file '%s'" msgstr "'%s' dosyasındaki değişiklikler işlenemiyor" #: ../src/common/file.cpp:212 #, c-format msgid "can't create file '%s'" msgstr "'%s' dosyası oluşturulamıyor" #: ../src/common/fileconf.cpp:1176 #, c-format msgid "can't delete user configuration file '%s'" msgstr "kullanıcı yapılandırma dosyası '%s' silinemiyor" #: ../src/common/file.cpp:511 #, c-format msgid "can't determine if the end of file is reached on descriptor %d" msgstr "" "%d tanımlayıcısı üstündeki dosyanın sonuna ulaşılıp ulaşılamadığı " "belirlenemiyor" #: ../src/msdos/utilsdos.cpp:310 ../src/msdos/utilsdos.cpp:475 #, c-format msgid "can't execute '%s'" msgstr "'%s' çalıştırılamadı" #: ../src/common/zipstrm.cpp:1490 msgid "can't find central directory in zip" msgstr "zip içinde merkez klasör bulunamıyor" #: ../src/common/file.cpp:481 #, c-format msgid "can't find length of file on file descriptor %d" msgstr "%d tanımlayıcısı üstündeki dosyanın uzunluğu bulunamıyor" #: ../src/msw/utils.cpp:373 msgid "can't find user's HOME, using current directory." msgstr "kullanıcının klasörü bulunamadığından geçerli klasör kullanılıyor." #: ../src/common/file.cpp:382 #, c-format msgid "can't flush file descriptor %d" msgstr "%d dosya tanımlayıcısı temizlenemiyor" #: ../src/common/file.cpp:438 ../src/msw/wince/filefnwce.cpp:204 #, c-format msgid "can't get seek position on file descriptor %d" msgstr "%d dosya tanımlayıcısı üstündeki arama konumu alınamıyor" #: ../src/common/fontmap.cpp:325 msgid "can't load any font, aborting" msgstr "hiç bir yazı tipi yüklenemedi, vazgeçiliyor" #: ../src/common/file.cpp:264 ../src/common/ffile.cpp:63 #, c-format msgid "can't open file '%s'" msgstr "'%s' dosyası açılamıyor" #: ../src/common/fileconf.cpp:351 #, c-format msgid "can't open global configuration file '%s'." msgstr "'%s' genel ayar dosyası açılamıyor" #: ../src/common/fileconf.cpp:367 #, c-format msgid "can't open user configuration file '%s'." msgstr "'%s' kullanıcı ayar dosyası açılamıyor" #: ../src/common/fileconf.cpp:1017 msgid "can't open user configuration file." msgstr "kullanıcı ayar dosyası açılamıyor." #: ../src/common/zipstrm.cpp:527 msgid "can't re-initialize zlib deflate stream" msgstr "zlib ayıklama akışı yeniden başlatılamadı" #: ../src/common/zipstrm.cpp:552 msgid "can't re-initialize zlib inflate stream" msgstr "zlib sıkıştırma akışı yeniden başlatılamadı" #: ../src/common/file.cpp:334 #, c-format msgid "can't read from file descriptor %d" msgstr "%d dosya tanımlayıcısından okunamıyor" #: ../src/common/file.cpp:599 #, c-format msgid "can't remove file '%s'" msgstr "'%s' dosyası silinemedi" #: ../src/common/file.cpp:616 #, c-format msgid "can't remove temporary file '%s'" msgstr "'%s' geçici dosyası silinemedi" #: ../src/common/file.cpp:424 ../src/msw/wince/filefnwce.cpp:190 #, c-format msgid "can't seek on file descriptor %d" msgstr "%d dosya tanımlayıcısı üzerinde arama yapılamıyor" #: ../src/common/textfile.cpp:299 #, c-format msgid "can't write buffer '%s' to disk." msgstr "'%s' arabelleği diske yazılamadı." #: ../src/common/file.cpp:350 #, c-format msgid "can't write to file descriptor %d" msgstr "%d dosya tanımlayıcısına yazılamıyor" #: ../src/common/fileconf.cpp:1031 msgid "can't write user configuration file." msgstr "kullanıcı ayar dosyası yazılamadı." #: ../src/html/chm.cpp:345 msgid "checksum error" msgstr "sağlama toplamı hatası" #: ../src/common/tarstrm.cpp:820 msgid "checksum failure reading tar header block" msgstr "tar başlık bloğu okunurken sağlama toplamı hatası" #: ../src/richtext/richtextborderspage.cpp:280 #: ../src/richtext/richtextborderspage.cpp:310 #: ../src/richtext/richtextborderspage.cpp:340 #: ../src/richtext/richtextborderspage.cpp:370 #: ../src/richtext/richtextborderspage.cpp:424 #: ../src/richtext/richtextborderspage.cpp:454 #: ../src/richtext/richtextborderspage.cpp:484 #: ../src/richtext/richtextborderspage.cpp:514 #: ../src/richtext/richtextmarginspage.cpp:202 #: ../src/richtext/richtextmarginspage.cpp:227 #: ../src/richtext/richtextmarginspage.cpp:250 #: ../src/richtext/richtextmarginspage.cpp:275 #: ../src/richtext/richtextmarginspage.cpp:316 #: ../src/richtext/richtextmarginspage.cpp:341 #: ../src/richtext/richtextmarginspage.cpp:364 #: ../src/richtext/richtextmarginspage.cpp:389 #: ../src/richtext/richtextsizepage.cpp:339 #: ../src/richtext/richtextsizepage.cpp:373 #: ../src/richtext/richtextsizepage.cpp:400 #: ../src/richtext/richtextsizepage.cpp:427 #: ../src/richtext/richtextsizepage.cpp:454 #: ../src/richtext/richtextsizepage.cpp:481 #: ../src/richtext/richtextsizepage.cpp:555 #: ../src/richtext/richtextsizepage.cpp:590 #: ../src/richtext/richtextsizepage.cpp:625 #: ../src/richtext/richtextsizepage.cpp:660 msgid "cm" msgstr "cm" #: ../src/html/chm.cpp:347 msgid "compression error" msgstr "sıkıştırma hatası" #: ../src/common/regex.cpp:239 msgid "conversion to 8-bit encoding failed" msgstr "8-bit kodlama dönüşümü yapılamadı" #: ../src/common/accelcmn.cpp:182 msgid "ctrl" msgstr "ctrl" #: ../src/common/cmdline.cpp:1323 msgid "date" msgstr "tarih" #: ../src/html/chm.cpp:349 msgid "decompression error" msgstr "ayıklama hatası" #: ../src/richtext/richtextstyles.cpp:780 ../src/common/fmapbase.cpp:820 msgid "default" msgstr "varsayılan" #: ../src/common/cmdline.cpp:1319 msgid "double" msgstr "çift" #: ../src/common/debugrpt.cpp:543 msgid "dump of the process state (binary)" msgstr "işlem durum dökümü (ikili)" #: ../src/common/datetimefmt.cpp:1936 msgid "eighteenth" msgstr "onsekizinci" #: ../src/common/datetimefmt.cpp:1926 msgid "eighth" msgstr "sekizinci" #: ../src/common/datetimefmt.cpp:1929 msgid "eleventh" msgstr "onbirinci" #: ../src/common/fileconf.cpp:1868 #, c-format msgid "entry '%s' appears more than once in group '%s'" msgstr "'%s' kaydı '%s' grubunda birden çok kez var" #: ../src/html/chm.cpp:343 msgid "error in data format" msgstr "veri biçimi hatası" #: ../src/msdos/utilsdos.cpp:413 #, c-format msgid "error opening '%s'" msgstr "'%s' açma hatası" #: ../src/html/chm.cpp:331 msgid "error opening file" msgstr "dosya açma hatası" #: ../src/common/zipstrm.cpp:1576 msgid "error reading zip central directory" msgstr "zip merkez klasörünü okuma hatası" #: ../src/common/zipstrm.cpp:1667 msgid "error reading zip local header" msgstr "zip yerel başlığını okuma hatası" #: ../src/common/zipstrm.cpp:2396 #, c-format msgid "error writing zip entry '%s': bad crc or length" msgstr "'%s' zip kaydı yazma hatası: hatalı CRC ya da uzunluk" #: ../src/common/ffile.cpp:170 #, c-format msgid "failed to flush the file '%s'" msgstr "'%s' dosyası temizlenemedi" #: ../src/common/datetimefmt.cpp:1933 msgid "fifteenth" msgstr "onbeşinci" #: ../src/common/datetimefmt.cpp:1923 msgid "fifth" msgstr "beşinci" #: ../src/common/fileconf.cpp:610 #, c-format msgid "file '%s', line %d: '%s' ignored after group header." msgstr "dosya '%s', satır %d: '%s' grup başlığından sonra yok sayıldı." #: ../src/common/fileconf.cpp:639 #, c-format msgid "file '%s', line %d: '=' expected." msgstr "dosya '%s', satır %d: '=' bekleniyor." #: ../src/common/fileconf.cpp:662 #, c-format msgid "file '%s', line %d: key '%s' was first found at line %d." msgstr "dosya '%s', satır %d: anahtar '%s' ilk olarak %d satırında bulundu." #: ../src/common/fileconf.cpp:652 #, c-format msgid "file '%s', line %d: value for immutable key '%s' ignored." msgstr "dosya '%s', satır %d: '%s' değişmez anahtarı için değer yok sayıldı." #: ../src/common/fileconf.cpp:574 #, c-format msgid "file '%s': unexpected character %c at line %d." msgstr "dosya '%s': beklenmedik karakter %c, satır: %d." #: ../src/richtext/richtextbuffer.cpp:8358 msgid "files" msgstr "dosyalar" #: ../src/common/datetimefmt.cpp:1919 msgid "first" msgstr "birinci" #: ../src/html/helpwnd.cpp:1265 msgid "font size" msgstr "yazı tipi boyutu" #: ../src/common/datetimefmt.cpp:1932 msgid "fourteenth" msgstr "ondördüncü" #: ../src/common/datetimefmt.cpp:1922 msgid "fourth" msgstr "dördüncü" #: ../src/common/appbase.cpp:695 msgid "generate verbose log messages" msgstr "ayrıntılı günlük iletileri oluşturulsun" #: ../src/richtext/richtextbuffer.cpp:12212 #: ../src/richtext/richtextbuffer.cpp:12322 msgid "image" msgstr "görsel" #: ../src/common/tarstrm.cpp:796 msgid "incomplete header block in tar" msgstr "tar başlık bloğu eksik" #: ../src/common/xtixml.cpp:489 msgid "incorrect event handler string, missing dot" msgstr "hatalı olay işleyici dizgesi, nokta eksik" #: ../src/common/tarstrm.cpp:1381 msgid "incorrect size given for tar entry" msgstr "tar kaydının boyutu hatalı verilmiş" #: ../src/common/tarstrm.cpp:993 msgid "invalid data in extended tar header" msgstr "ek tar başlığında hatalı veri" #: ../src/generic/logg.cpp:1050 msgid "invalid message box return value" msgstr "geçersiz ileti penceresi sonuç değeri" #: ../src/common/zipstrm.cpp:1445 msgid "invalid zip file" msgstr "geçersiz zip dosyası" #: ../src/common/fontcmn.cpp:983 msgid "italic" msgstr "yatık" #: ../src/common/fontcmn.cpp:973 msgid "light" msgstr "açık" #: ../src/common/intl.cpp:293 #, c-format msgid "locale '%s' cannot be set." msgstr "'%s' yerel ayarları seçilemiyor." #: ../src/common/datetimefmt.cpp:2092 msgid "midnight" msgstr "gece yarısı" #: ../src/common/datetimefmt.cpp:1937 msgid "nineteenth" msgstr "ondokuzuncu" #: ../src/common/datetimefmt.cpp:1927 msgid "ninth" msgstr "dokuzuncu" #: ../src/msw/dde.cpp:1119 msgid "no DDE error." msgstr "DDE bulunamadı hatası." #: ../src/html/chm.cpp:327 msgid "no error" msgstr "hata yok" #: ../src/dfb/fontmgr.cpp:174 #, c-format msgid "no fonts found in %s, using builtin font" msgstr "%s içinde yazı tipi yok, içsel yazı tipi kullanılıyor" #: ../src/html/helpdata.cpp:655 msgid "noname" msgstr "adsız" #: ../src/common/datetimefmt.cpp:2091 msgid "noon" msgstr "öğlen" #: ../src/richtext/richtextstyles.cpp:779 msgid "normal" msgstr "normal" #: ../src/gtk/print.cpp:1218 ../src/gtk/print.cpp:1323 msgid "not implemented" msgstr "eklenmedi" #: ../src/common/cmdline.cpp:1315 msgid "num" msgstr "tamsayı" #: ../src/common/xtixml.cpp:259 msgid "objects cannot have XML Text Nodes" msgstr "nesnelerin XML Metin Düğümleri olamaz" #: ../src/html/chm.cpp:339 msgid "out of memory" msgstr "bellek yetersiz" #: ../src/richtext/richtextsizepage.cpp:340 #: ../src/richtext/richtextsizepage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:401 #: ../src/richtext/richtextsizepage.cpp:428 #: ../src/richtext/richtextsizepage.cpp:455 #: ../src/richtext/richtextsizepage.cpp:482 #: ../src/richtext/richtextsizepage.cpp:556 #: ../src/richtext/richtextsizepage.cpp:591 #: ../src/richtext/richtextsizepage.cpp:626 #: ../src/richtext/richtextsizepage.cpp:661 msgid "percent" msgstr "yüzde" #: ../src/common/debugrpt.cpp:519 msgid "process context description" msgstr "işlem bağlamı tanımı" #: ../src/richtext/richtextfontpage.cpp:186 #: ../src/richtext/richtextfontpage.cpp:189 msgid "pt" msgstr "punto" #: ../src/richtext/richtextfontpage.cpp:187 #: ../src/richtext/richtextborderspage.cpp:279 #: ../src/richtext/richtextborderspage.cpp:281 #: ../src/richtext/richtextborderspage.cpp:282 #: ../src/richtext/richtextborderspage.cpp:309 #: ../src/richtext/richtextborderspage.cpp:311 #: ../src/richtext/richtextborderspage.cpp:312 #: ../src/richtext/richtextborderspage.cpp:339 #: ../src/richtext/richtextborderspage.cpp:341 #: ../src/richtext/richtextborderspage.cpp:342 #: ../src/richtext/richtextborderspage.cpp:369 #: ../src/richtext/richtextborderspage.cpp:371 #: ../src/richtext/richtextborderspage.cpp:372 #: ../src/richtext/richtextborderspage.cpp:423 #: ../src/richtext/richtextborderspage.cpp:425 #: ../src/richtext/richtextborderspage.cpp:426 #: ../src/richtext/richtextborderspage.cpp:453 #: ../src/richtext/richtextborderspage.cpp:455 #: ../src/richtext/richtextborderspage.cpp:456 #: ../src/richtext/richtextborderspage.cpp:483 #: ../src/richtext/richtextborderspage.cpp:485 #: ../src/richtext/richtextborderspage.cpp:486 #: ../src/richtext/richtextborderspage.cpp:513 #: ../src/richtext/richtextborderspage.cpp:515 #: ../src/richtext/richtextborderspage.cpp:516 #: ../src/richtext/richtextmarginspage.cpp:201 #: ../src/richtext/richtextmarginspage.cpp:203 #: ../src/richtext/richtextmarginspage.cpp:204 #: ../src/richtext/richtextmarginspage.cpp:226 #: ../src/richtext/richtextmarginspage.cpp:228 #: ../src/richtext/richtextmarginspage.cpp:229 #: ../src/richtext/richtextmarginspage.cpp:249 #: ../src/richtext/richtextmarginspage.cpp:251 #: ../src/richtext/richtextmarginspage.cpp:252 #: ../src/richtext/richtextmarginspage.cpp:274 #: ../src/richtext/richtextmarginspage.cpp:276 #: ../src/richtext/richtextmarginspage.cpp:277 #: ../src/richtext/richtextmarginspage.cpp:315 #: ../src/richtext/richtextmarginspage.cpp:317 #: ../src/richtext/richtextmarginspage.cpp:318 #: ../src/richtext/richtextmarginspage.cpp:340 #: ../src/richtext/richtextmarginspage.cpp:342 #: ../src/richtext/richtextmarginspage.cpp:343 #: ../src/richtext/richtextmarginspage.cpp:363 #: ../src/richtext/richtextmarginspage.cpp:365 #: ../src/richtext/richtextmarginspage.cpp:366 #: ../src/richtext/richtextmarginspage.cpp:388 #: ../src/richtext/richtextmarginspage.cpp:390 #: ../src/richtext/richtextmarginspage.cpp:391 #: ../src/richtext/richtextsizepage.cpp:338 #: ../src/richtext/richtextsizepage.cpp:341 #: ../src/richtext/richtextsizepage.cpp:342 #: ../src/richtext/richtextsizepage.cpp:372 #: ../src/richtext/richtextsizepage.cpp:375 #: ../src/richtext/richtextsizepage.cpp:376 #: ../src/richtext/richtextsizepage.cpp:399 #: ../src/richtext/richtextsizepage.cpp:402 #: ../src/richtext/richtextsizepage.cpp:403 #: ../src/richtext/richtextsizepage.cpp:426 #: ../src/richtext/richtextsizepage.cpp:429 #: ../src/richtext/richtextsizepage.cpp:430 #: ../src/richtext/richtextsizepage.cpp:453 #: ../src/richtext/richtextsizepage.cpp:456 #: ../src/richtext/richtextsizepage.cpp:457 #: ../src/richtext/richtextsizepage.cpp:480 #: ../src/richtext/richtextsizepage.cpp:483 #: ../src/richtext/richtextsizepage.cpp:484 #: ../src/richtext/richtextsizepage.cpp:554 #: ../src/richtext/richtextsizepage.cpp:557 #: ../src/richtext/richtextsizepage.cpp:558 #: ../src/richtext/richtextsizepage.cpp:589 #: ../src/richtext/richtextsizepage.cpp:592 #: ../src/richtext/richtextsizepage.cpp:593 #: ../src/richtext/richtextsizepage.cpp:624 #: ../src/richtext/richtextsizepage.cpp:627 #: ../src/richtext/richtextsizepage.cpp:628 #: ../src/richtext/richtextsizepage.cpp:659 #: ../src/richtext/richtextsizepage.cpp:662 #: ../src/richtext/richtextsizepage.cpp:663 msgid "px" msgstr "piksel" #: ../src/common/accelcmn.cpp:188 msgid "rawctrl" msgstr "hamctrl" #: ../src/html/chm.cpp:333 msgid "read error" msgstr "okuma hatası" #: ../src/common/zipstrm.cpp:1882 #, c-format msgid "reading zip stream (entry %s): bad crc" msgstr "zip akışı okuma (kayıt %s): CRC hatalı" #: ../src/common/zipstrm.cpp:1877 #, c-format msgid "reading zip stream (entry %s): bad length" msgstr "zip akışı okuma (kayıt %s): uzunluk hatalı" #: ../src/msw/dde.cpp:1162 msgid "reentrancy problem." msgstr "yeniden giriş sorunu." #: ../src/common/datetimefmt.cpp:1920 msgid "second" msgstr "ikinci" #: ../src/html/chm.cpp:337 msgid "seek error" msgstr "arama hatası" #: ../src/common/datetimefmt.cpp:1935 msgid "seventeenth" msgstr "onyedinci" #: ../src/common/datetimefmt.cpp:1925 msgid "seventh" msgstr "yedinci" #: ../src/common/accelcmn.cpp:186 msgid "shift" msgstr "shift" #: ../src/common/appbase.cpp:685 msgid "show this help message" msgstr "bu yardım iletisi görüntülensin" #: ../src/common/datetimefmt.cpp:1934 msgid "sixteenth" msgstr "onaltıncı" #: ../src/common/datetimefmt.cpp:1924 msgid "sixth" msgstr "altıncı" #: ../src/common/appcmn.cpp:227 msgid "specify display mode to use (e.g. 640x480-16)" msgstr "kullanılacak görüntü kipini belirleyin (ör. 640x480-16)" #: ../src/common/appcmn.cpp:213 msgid "specify the theme to use" msgstr "kullanılacak temayı belirleyin" #: ../src/richtext/richtextbuffer.cpp:8876 msgid "standard/circle" msgstr "standart/daire" #: ../src/richtext/richtextbuffer.cpp:8877 msgid "standard/circle-outline" msgstr "standart/daire-çerçeve" #: ../src/richtext/richtextbuffer.cpp:8879 msgid "standard/diamond" msgstr "standart/elmas" #: ../src/richtext/richtextbuffer.cpp:8878 msgid "standard/square" msgstr "standart/kare" #: ../src/richtext/richtextbuffer.cpp:8880 msgid "standard/triangle" msgstr "standart/üçgen" #: ../src/common/zipstrm.cpp:1782 msgid "stored file length not in Zip header" msgstr "kayıtlı dosya uzunluğu Zip başlığında yok" #: ../src/common/cmdline.cpp:1311 msgid "str" msgstr "str" #: ../src/common/fontcmn.cpp:794 ../src/common/fontcmn.cpp:969 msgid "strikethrough" msgstr "üstüçizili" #: ../src/common/tarstrm.cpp:1003 ../src/common/tarstrm.cpp:1025 #: ../src/common/tarstrm.cpp:1507 ../src/common/tarstrm.cpp:1529 msgid "tar entry not open" msgstr "tar kaydı açık değil" #: ../src/common/datetimefmt.cpp:1928 msgid "tenth" msgstr "onuncu" #: ../src/msw/dde.cpp:1126 msgid "the response to the transaction caused the DDE_FBUSY bit to be set." msgstr "harekete yanıt DDE_FBUSY bayrak bitinin kaldırılmasına yol açtı." #: ../src/common/datetimefmt.cpp:1921 msgid "third" msgstr "üçüncü" #: ../src/common/datetimefmt.cpp:1931 msgid "thirteenth" msgstr "onüçüncü" #: ../src/common/datetimefmt.cpp:1725 msgid "today" msgstr "bugün" #: ../src/common/datetimefmt.cpp:1727 msgid "tomorrow" msgstr "yarın" #: ../src/common/fileconf.cpp:1979 #, c-format msgid "trailing backslash ignored in '%s'" msgstr "'%s' sonundaki ters eğik çizgi yok sayıldı" #: ../src/gtk/aboutdlg.cpp:218 msgid "translator-credits" msgstr "çevirmenler" #: ../src/common/datetimefmt.cpp:1930 msgid "twelfth" msgstr "yirminci" #: ../src/common/datetimefmt.cpp:1938 msgid "twentieth" msgstr "onikinci" #: ../src/common/fontcmn.cpp:789 ../src/common/fontcmn.cpp:965 msgid "underlined" msgstr "altıçizili" #: ../src/common/fileconf.cpp:2014 #, c-format msgid "unexpected \" at position %d in '%s'." msgstr "%d konumunda, '%s' içinde beklenmeyen \" " #: ../src/common/tarstrm.cpp:1045 msgid "unexpected end of file" msgstr "beklenmeyen dosya sonu" #: ../src/generic/progdlgg.cpp:399 ../src/common/tarstrm.cpp:371 #: ../src/common/tarstrm.cpp:394 ../src/common/tarstrm.cpp:425 msgid "unknown" msgstr "bilinmeyen" #: ../src/common/xtixml.cpp:253 #, c-format msgid "unknown class %s" msgstr "bilinmeyen sınıf %s" #: ../src/common/regex.cpp:261 ../src/html/chm.cpp:351 msgid "unknown error" msgstr "bilinmeyen hata" #: ../src/msw/dialup.cpp:490 #, c-format msgid "unknown error (error code %08x)." msgstr "bilinmeyen hata (hata kodu %08x)." #: ../src/msw/wince/filefnwce.cpp:172 msgid "unknown seek origin" msgstr "bilinmeyen arama başlangıcı" #: ../src/common/fmapbase.cpp:834 #, c-format msgid "unknown-%d" msgstr "bilinmeyen-%d" #: ../src/common/docview.cpp:507 msgid "unnamed" msgstr "adsız" #: ../src/common/docview.cpp:1606 #, c-format msgid "unnamed%d" msgstr "adsız%d" #: ../src/common/zipstrm.cpp:1796 ../src/common/zipstrm.cpp:2184 msgid "unsupported Zip compression method" msgstr "desteklemeyen Zip sıkıştırma yöntemi" #: ../src/common/translation.cpp:1883 #, c-format msgid "using catalog '%s' from '%s'." msgstr "'%s' kataloğu '%s' üzerinden kullanılıyor" #: ../src/html/chm.cpp:335 msgid "write error" msgstr "yazma hatası" #: ../src/common/time.cpp:318 msgid "wxGetTimeOfDay failed." msgstr "wxGetTimeOfDay başarısız." #: ../src/gtk/print.cpp:987 msgid "wxPrintout::GetPageInfo gives a null maxPage." msgstr "wxPrintout::GetPageInfo boş bir maxPage değeri veriyor." #: ../src/osx/carbon/dataview.cpp:1303 msgid "wxWidget control pointer is not a data view pointer" msgstr "wxWidget denetim imleci bir veri görünüm imleci değil" #: ../src/osx/carbon/dataview.cpp:907 msgid "wxWidget's control not initialized." msgstr "wxWidget denetimi başlatılamadı." #: ../src/motif/app.cpp:245 #, c-format msgid "wxWidgets could not open display for '%s': exiting." msgstr "wxWidgets '%s' için görünümü açamadı: çıkılıyor." #: ../src/x11/app.cpp:164 msgid "wxWidgets could not open display. Exiting." msgstr "wxWidgets görünümü açamadı. Çıkılıyor." #: ../src/richtext/richtextsymboldlg.cpp:434 msgid "xxxx" msgstr "xxxx" #: ../src/common/datetimefmt.cpp:1726 msgid "yesterday" msgstr "dün" #: ../src/common/zstream.cpp:251 ../src/common/zstream.cpp:426 #, c-format msgid "zlib error %d" msgstr "zlib hatası %d" #: ../src/richtext/richtextliststylepage.cpp:496 #: ../src/richtext/richtextbulletspage.cpp:301 msgid "~" msgstr "~" ginkgocadx-3.8.7/cadxcore/lang/zh_CN/000077500000000000000000000000001314736454600173765ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/lang/zh_CN/cadxcore.mo000066400000000000000000000010541314736454600215230ustar00rootroot00000000000000$,89Project-Id-Version: ginkgocadx Report-Msgid-Bugs-To: POT-Creation-Date: 2014-06-11 15:52+0100 PO-Revision-Date: 2014-06-11 15:53+0100 Last-Translator: Carlos Barrales Ruiz Language-Team: Chinese Language: zh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Poedit 1.6.5 X-Launchpad-Export-Date: 2011-09-02 12:40+0000 X-Poedit-Basepath: . X-Poedit-KeywordsList: _;_Std X-Poedit-SearchPath-0: ..\.. ginkgocadx-3.8.7/cadxcore/lang/zh_CN/cadxcore.po000066400000000000000000005333001314736454600215320ustar00rootroot00000000000000msgid "" msgstr "" "Project-Id-Version: ginkgocadx\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2014-06-11 15:52+0100\n" "PO-Revision-Date: 2014-06-11 15:53+0100\n" "Last-Translator: Carlos Barrales Ruiz \n" "Language-Team: Chinese \n" "Language: zh\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.6.5\n" "X-Launchpad-Export-Date: 2011-09-02 12:40+0000\n" "X-Poedit-Basepath: .\n" "X-Poedit-KeywordsList: _;_Std\n" "X-Poedit-SearchPath-0: ..\\..\n" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "B/W Inverse" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Barten" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Black Body" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Cardiac" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Muscles & Bones" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "VR Red Vessels" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Gray Rainbow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Stern" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Spectrum" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Metal" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Iron" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Hot Green" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "GE Color" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PERFusion" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "PET" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Flow" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "LONI2" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "Asymmetry" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "P-Value" msgstr "" #: ..\../VTKInria3D/vtkVISUManagement/vtkLookupTableManager.cpp:54 msgid "ROI" msgstr "" #: ..\../api/autoptr.cpp:6 msgid "Attempted to dereference null pointer" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 #: ..\../api/dicom/idicomconformance.cpp:214 #: ..\../api/dicom/idicomconformance.cpp:220 msgid "GIL/DICOM/Conformance" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid "Unable to add supported transfer syntax " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 #: ..\../api/dicom/idicomconformance.cpp:84 msgid " to SOP Class " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:80 msgid " . Transfer Syntax does not exists in model: Add it first." msgstr "" #: ..\../api/dicom/idicomconformance.cpp:84 #: ..\../api/dicom/idicomconformance.cpp:143 msgid " . SOP Class does not exists in model: Add it first." msgstr "" #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid "Unable to add supported SOP Class " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:143 #: ..\../api/dicom/idicomconformance.cpp:152 msgid " to Modality " msgstr "" #: ..\../api/dicom/idicomconformance.cpp:152 msgid " . Modality does not exists in model: Add it first." msgstr "" #: ..\../api/dicom/idicomconformance.cpp:214 msgid "Error loading DICOM Conformance file" msgstr "" #: ..\../api/dicom/idicomconformance.cpp:220 msgid "Invalid DICOM Conformance file" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "Slice" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "of" msgstr "" #: ..\../api/iannotator.cpp:97 msgid "Volume" msgstr "" #: ..\../api/iannotator.cpp:107 msgid "Voxel:" msgstr "" #: ..\../api/iannotator.cpp:110 msgid "Image without metric information" msgstr "" #: ..\../api/iannotator.cpp:119 msgid "Slice thickness" msgstr "" #: ..\../api/iannotator.cpp:127 msgid "Slice location" msgstr "" #: ..\../api/iannotator.cpp:139 msgid "Scale" msgstr "" #: ..\../api/iannotator.cpp:147 msgid "Right" msgstr "" #: ..\../api/iannotator.cpp:149 msgid "Left" msgstr "" #: ..\../api/iannotator.cpp:219 msgid "Position:" msgstr "" #: ..\../api/iannotator.cpp:272 msgid "Value:" msgstr "" #: ..\../api/iexception.cpp:52 msgid "Exception in component" msgstr "" #: ..\../api/initwx.cpp:439 msgid "Initializing environment ..." msgstr "" #: ..\../api/initwx.cpp:446 ..\../api/initwx.cpp:447 ..\../api/initwx.cpp:448 #: ..\../api/initwx.cpp:449 ..\../api/initwx.cpp:450 ..\../api/initwx.cpp:451 #: ..\../api/initwx.cpp:452 ..\../api/initwx.cpp:453 msgid "Ginkgo CADx restrictions" msgstr "" #: ..\../api/initwx.cpp:446 msgid "Open only one tab for each study" msgstr "" #: ..\../api/initwx.cpp:447 msgid "Anonymous mode (history is cleaned)" msgstr "" #: ..\../api/initwx.cpp:448 msgid "Max number of tabs opened" msgstr "" #: ..\../api/initwx.cpp:449 msgid "Max seconds of Ginkgo CADx application inactivity" msgstr "" #: ..\../api/initwx.cpp:450 msgid "Close automatically Ginkgo CADx after dicomize" msgstr "" #: ..\../api/initwx.cpp:451 msgid "Export images" msgstr "" #: ..\../api/initwx.cpp:452 msgid "Acquire DICOM files" msgstr "" #: ..\../api/initwx.cpp:453 msgid "Import files to DICOM format" msgstr "" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "Online manual" msgstr "" #: ..\../api/initwx.cpp:455 ..\../api/initwx.cpp:457 msgid "URL of manual" msgstr "" #: ..\../api/initwx.cpp:455 msgid "doc\\manual_ginkgo_cadx_pro_en.pdf" msgstr "" #: ..\../api/initwx.cpp:459 msgid "Online support" msgstr "" #: ..\../api/initwx.cpp:459 msgid "URL of online support" msgstr "" #: ..\../api/initwx.cpp:459 msgid "http://ginkgo-cadx.com/" msgstr "" #: ..\../api/initwx.cpp:460 ..\../api/initwx.cpp:461 msgid "Program Updates" msgstr "" #: ..\../api/initwx.cpp:460 msgid "Warn about newest Ginkgo CADx updates" msgstr "" #: ..\../api/initwx.cpp:461 msgid "Update period (days)" msgstr "" #: ..\../api/initwx.cpp:462 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:219 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1253 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2119 msgid "Security" msgstr "" #: ..\../api/initwx.cpp:462 msgid "Setup Security" msgstr "" #: ..\../api/initwx.cpp:463 msgid "Show on startup" msgstr "" #: ..\../api/initwx.cpp:463 msgid "Show on startup default value" msgstr "" #: ..\../api/initwx.cpp:465 ..\../api/initwx.cpp:466 #: ..\../main/gui/history3/historypanel3.cpp:328 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1396 msgid "Tools" msgstr "" #: ..\../api/initwx.cpp:465 msgid "Settings menu" msgstr "" #: ..\../api/initwx.cpp:466 msgid "License menu" msgstr "" #: ..\../api/initwx.cpp:467 ..\../api/initwx.cpp:468 ..\../api/initwx.cpp:469 #: ..\../api/initwx.cpp:470 ..\../api/initwx.cpp:471 ..\../api/initwx.cpp:472 #: ..\../api/initwx.cpp:473 ..\../api/initwx.cpp:474 msgid "PACS Limits" msgstr "" #: ..\../api/initwx.cpp:467 msgid "Maximum number of C-Find responses allowed" msgstr "" #: ..\../api/initwx.cpp:468 msgid "Upload images to a PACS server" msgstr "" #: ..\../api/initwx.cpp:469 msgid "Acquire images from PACS" msgstr "" #: ..\../api/initwx.cpp:470 msgid "Enable remote PACS configuration" msgstr "" #: ..\../api/initwx.cpp:471 msgid "Enable TLS configuration" msgstr "" #: ..\../api/initwx.cpp:472 msgid "Restrict search over selected patient" msgstr "" #: ..\../api/initwx.cpp:473 msgid "Restrict study retrieval by maximum size (KB)" msgstr "" #: ..\../api/initwx.cpp:474 msgid "Force lossless when upload" msgstr "" #: ..\../api/initwx.cpp:475 ..\../api/initwx.cpp:476 ..\../api/initwx.cpp:477 #: ..\../api/initwx.cpp:478 ..\../api/initwx.cpp:479 ..\../api/initwx.cpp:480 msgid "Import" msgstr "" #: ..\../api/initwx.cpp:475 msgid "Specify this Storage SOP Class in dicomization" msgstr "" #: ..\../api/initwx.cpp:476 msgid "Show accession number input" msgstr "" #: ..\../api/initwx.cpp:477 msgid "Set compression, 0 implies no compression (0..14)" msgstr "" #: ..\../api/initwx.cpp:478 msgid "" "Recompression codec (0=JPEG Baseline(default), 1=JPEG Progressive, 2=JPEG " "Lossless)" msgstr "" #: ..\../api/initwx.cpp:479 msgid "Don't change image codec (if possible)" msgstr "" #: ..\../api/initwx.cpp:480 msgid "Skip demographic step if it's possible" msgstr "" #: ..\../api/initwx.cpp:482 msgid "HL7 Service" msgstr "" #: ..\../api/initwx.cpp:482 msgid "Automatically start HL7 Sender service" msgstr "" #: ..\../api/initwx.cpp:483 ..\../api/initwx.cpp:484 ..\../api/initwx.cpp:485 msgid "XML dicomization" msgstr "" #: ..\../api/initwx.cpp:483 msgid "Send Hl7 message when importing" msgstr "" #: ..\../api/initwx.cpp:484 msgid "Send study to PACS when importing" msgstr "" #: ..\../api/initwx.cpp:485 msgid "Default ORU template" msgstr "" #: ..\../api/initwx.cpp:488 ..\../api/initwx.cpp:489 ..\../api/initwx.cpp:491 #: ..\../api/initwx.cpp:493 ..\../api/initwx.cpp:494 ..\../api/initwx.cpp:495 #: ..\../api/initwx.cpp:496 ..\../api/initwx.cpp:498 msgid "Style" msgstr "" #: ..\../api/initwx.cpp:503 #, c-format msgid "Download %s images" msgstr "" #: ..\../api/initwx.cpp:504 ..\../api/initwx.cpp:508 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:21 msgid "PACS" msgstr "" #: ..\../api/initwx.cpp:507 msgid "Download all modalities" msgstr "" #: ..\../api/initwx.cpp:510 msgid "OpenGL" msgstr "" #: ..\../api/initwx.cpp:510 msgid "Enable shaders" msgstr "" #: ..\../api/initwx.cpp:513 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:23 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:120 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:388 msgid "Ginkgo Cloud" msgstr "" #: ..\../api/initwx.cpp:513 msgid "Download from Ginkgo Cloud" msgstr "" #: ..\../api/initwx.cpp:560 msgid "Tools loading base ..." msgstr "" #: ..\../api/initwx.cpp:562 msgid "Starting tools..." msgstr "" #: ..\../api/initwx.cpp:566 msgid "Loading plugins ..." msgstr "" #: ..\../api/initwx.cpp:580 msgid "Unable to start GinkgoCADx:\n" msgstr "" #: ..\../api/initwx.cpp:580 ..\../api/initwx.cpp:621 msgid "error" msgstr "" #: ..\../api/initwx.cpp:584 msgid "Loading resources ..." msgstr "" #: ..\../api/initwx.cpp:587 msgid "Starting services..." msgstr "" #: ..\../api/initwx.cpp:601 msgid "Configuring environment ..." msgstr "" #: ..\../api/initwx.cpp:621 msgid "Failed to set permissions:\n" msgstr "" #: ..\../api/initwx.cpp:634 msgid "Updating ..." msgstr "" #: ..\../api/initwx.cpp:638 msgid "Interpreting parameters ..." msgstr "" #: ..\../api/initwx.cpp:689 msgid "Error unregistering tools: " msgstr "" #: ..\../api/initwx.cpp:769 msgid "Starting" msgstr "" #: ..\../api/ivista.cpp:36 ..\../commands/comandocarga.cpp:73 msgid "Loading..." msgstr "" #: ..\../api/iwidgets.cpp:268 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:148 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:164 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:166 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:412 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:52 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:763 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:702 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:425 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2729 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:59 #: ..\../main/gui/import/pasosimportacionbase.cpp:151 msgid "Name" msgstr "" #: ..\../api/iwidgets.cpp:285 msgid "Area" msgstr "" #: ..\../api/iwidgets.cpp:302 msgid "Perimeter" msgstr "" #: ..\../api/iwidgets.cpp:316 msgid "Travel (I)" msgstr "" #: ..\../api/iwidgets.cpp:326 msgid "Travel (M)" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 #: ..\../api/threads/thread.cpp:120 msgid "Threading" msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid "Error while running thread: " msgstr "" #: ..\../api/threads/thread.cpp:114 ..\../api/threads/thread.cpp:117 msgid " : " msgstr "" #: ..\../api/threads/thread.cpp:120 msgid "Internal error while running thread: " msgstr "" #: ..\../api/widgetserializable.cpp:60 msgid "Creation Date" msgstr "" #: ..\../api/widgetserializable.cpp:65 msgid "Modification Date" msgstr "" #: ..\../api/widgetserializable.cpp:68 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:155 #: ..\../wx/gnkinforme/gnkinformebase.cpp:40 msgid "Physician" msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:55 #: ..\../commands/pacsdownloadcommand.cpp:88 #: ..\../commands/synchronizationcommand.cpp:70 msgid "Downloading files ..." msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:69 #: ..\../commands/synchronizationcommand.cpp:91 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:447 #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:580 #, c-format msgid "Downloading file %d" msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:81 msgid "Error downloading file: " msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:95 #: ..\../commands/pacsdownloadcommand.cpp:114 #: ..\../commands/synchronizationcommand.cpp:121 msgid "Internal Error" msgstr "" #: ..\../commands/acquirefromurlcommand.cpp:115 msgid "Error downloading files: " msgstr "" #: ..\../commands/autocleaningcommand.cpp:62 msgid "Cleaning dicomdir..." msgstr "" #: ..\../commands/cloudcommand.cpp:67 msgid "Downloading files..." msgstr "" #: ..\../commands/cloudcommand.cpp:167 msgid "CloudCommand" msgstr "" #: ..\../commands/cloudcommand.cpp:183 msgid "Unknown operation" msgstr "" #: ..\../commands/cloudcommand.cpp:188 msgid "Error in cloud operation. See log to get more details..." msgstr "" #: ..\../commands/cloudcommand.cpp:249 msgid "Could to retrieve study." msgstr "" #: ..\../commands/cloudcommand.cpp:260 ..\../commands/cloudcommand.cpp:394 msgid "" "This version of Ginkgo CADx is not compatible with current version of Ginkgo " "Cloud." msgstr "" #: ..\../commands/cloudcommand.cpp:262 msgid "Error retrieving study." msgstr "" #: ..\../commands/cloudcommand.cpp:271 msgid "Study successfully retrieved." msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "Speed" msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "bytes/sec during" msgstr "" #: ..\../commands/cloudcommand.cpp:271 ..\../commands/cloudcommand.cpp:405 msgid "seconds" msgstr "" #: ..\../commands/cloudcommand.cpp:275 msgid "Empty Response" msgstr "" #: ..\../commands/cloudcommand.cpp:289 msgid "Extracting files..." msgstr "" #: ..\../commands/cloudcommand.cpp:313 ..\../commands/cloudcommand.cpp:316 msgid "Invalid file has been downloaded" msgstr "" #: ..\../commands/cloudcommand.cpp:383 msgid "Could to perform query." msgstr "" #: ..\../commands/cloudcommand.cpp:396 msgid "Error perfoming the query." msgstr "" #: ..\../commands/cloudcommand.cpp:405 msgid "Query successfully performed." msgstr "" #: ..\../commands/cloudcommand.cpp:415 msgid "JSon Response" msgstr "" #: ..\../commands/cloudcommand.cpp:472 msgid "Unknown JSon attribute:" msgstr "" #: ..\../commands/cloudcommand.cpp:482 msgid "Error parsing JSon: " msgstr "" #: ..\../commands/cloudcommand.cpp:491 msgid "Null Response" msgstr "" #: ..\../commands/cloudcommand.cpp:515 #: ..\../commands/openremovableunit.cpp:148 ..\../main/gui/open/abrir.cpp:119 #: ..\../main/gui/open/abrir.cpp:159 ..\../main/gui/open/opendialogs.cpp:146 msgid "Storing in the history..." msgstr "" #: ..\../commands/comandoactualizaciones.cpp:46 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:369 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:375 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:536 msgid "Check Updates" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:136 msgid "Not enough parameters found on XML" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:145 msgid "XML parsing internal error" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Error checking application updates" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:156 msgid "Ginkgo CADx updates" msgstr "" #: ..\../commands/comandoactualizaciones.cpp:170 msgid "Internal error checking updates" msgstr "" #: ..\../commands/comandocarga.cpp:86 msgid "Series path couldn't be found" msgstr "" #: ..\../commands/comandocarga.cpp:92 ..\../commands/comandocarga.cpp:96 msgid "Exception loading:" msgstr "" #: ..\../commands/comandocarga.cpp:100 msgid "Study malformed or unsupported" msgstr "" #: ..\../commands/comandocarga.cpp:129 ..\../commands/comandocarga.cpp:139 msgid "Error loading study: " msgstr "" #: ..\../commands/comandocarga.cpp:134 msgid "Error loading study insufficient memory" msgstr "" #: ..\../commands/comandocarga.cpp:144 msgid "Error loading study." msgstr "" #: ..\../commands/comandocarga.cpp:149 msgid "Load canceled by user" msgstr "" #: ..\../commands/comandocarga.cpp:156 #: ..\../main/gui/history3/historypanel3.cpp:1056 #: ..\../main/gui/history3/historypanel3.cpp:1063 #: ..\../main/gui/history3/historypanel3.cpp:1068 msgid "Error loading study" msgstr "" #: ..\../commands/comandoexportacion.cpp:81 #: ..\../commands/exporttodicomdircommand.cpp:214 msgid "Exporting files..." msgstr "" #: ..\../commands/comandoexportacion.cpp:105 #: ..\../commands/exporttodicomdircommand.cpp:450 msgid "Export has been finished successfully" msgstr "" #: ..\../commands/comandoexportacion.cpp:158 #, c-format msgid "Exporting file %d of %d" msgstr "" #: ..\../commands/comandoexportacion.cpp:213 msgid "Error storing file, check the permissions over the directory." msgstr "" #: ..\../commands/comandoexportacion.cpp:233 msgid "image_%m-%d-%Y_" msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:108 msgid "Exploring directory ..." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:122 msgid "Reading DICOMDIR ..." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:142 #: ..\../commands/comandoincluirhistorial.cpp:156 #: ..\../commands/comandoincluirhistorial.cpp:177 msgid "Including files in the history .." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:196 msgid "Exploring directory " msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:256 #: ..\../commands/linkhistorycommand.cpp:118 msgid "Image acquisition finished." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:258 #, c-format msgid "There have been included %d images." msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:261 #: ..\../commands/linkhistorycommand.cpp:121 #, c-format msgid "" "\n" "There are %d errors (see log for more detailed description)" msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:273 #: ..\../commands/linkhistorycommand.cpp:133 msgid "This files doesn't exist:" msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:284 #: ..\../commands/linkhistorycommand.cpp:144 msgid "This files doesn't have DICOM format:" msgstr "" #: ..\../commands/comandoincluirhistorial.cpp:296 #: ..\../commands/linkhistorycommand.cpp:156 msgid "This files are Dicom Dirs:" msgstr "" #: ..\../commands/comandopacs.cpp:58 ..\../commands/pacsdownloadcommand.cpp:61 #: ..\../commands/sendpacscommand.cpp:137 msgid "There is not any Remote PACS configured" msgstr "" #: ..\../commands/comandopacs.cpp:84 msgid "Querying PACS ..." msgstr "" #: ..\../commands/comandopacs.cpp:93 msgid "Error accessing the controller subsystem integration: (GIL:: DICOM)." msgstr "" #: ..\../commands/comandopacs.cpp:98 msgid "Starting Search ..." msgstr "" #: ..\../commands/comandopacs.cpp:108 #: ..\../commands/pacsdownloadcommand.cpp:101 msgid "Server ID not found. ID = " msgstr "" #: ..\../commands/comandopacs.cpp:110 ..\../commands/comandopacs.cpp:112 #: ..\../commands/comandopacs.cpp:114 ..\../commands/comandopacs.cpp:116 msgid "Query error with PACS Id " msgstr "" #: ..\../commands/comandopacs.cpp:116 #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/gui/history3/historypanel3.cpp:1068 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error" msgstr "" #: ..\../commands/comandopacs.cpp:135 msgid "Failed to perform search: " msgstr "" #: ..\../commands/dbmigrationcommand.cpp:94 #: ..\../commands/dbmigrationcommand.cpp:103 msgid "Migrating old DICOM Dir ..." msgstr "" #: ..\../commands/dbmigrationcommand.cpp:99 #: ..\../commands/dbmigrationcommand.cpp:108 msgid "Including files ..." msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "Migration finished successfully, now Ginkgo CADx will delete folder:\n" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 msgid "" "and all it's sub folders\n" "Do you confirm deletion?" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:116 #: ..\../commands/dicomizecommand.cpp:181 #: ..\../commands/openremovableunit.cpp:74 #: ..\../commands/openremovableunit.cpp:110 #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../commands/pdfextractercommand.cpp:130 #: ..\../main/controllers/historycontroller.cpp:447 #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 #: ..\../main/controllers/historycontroller.cpp:1976 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:88 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:196 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:282 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:539 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:637 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:826 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:103 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 #: ..\../main/gui/export/parametrosprincipales.cpp:161 #: ..\../main/gui/export/parametrosprincipales.cpp:167 #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 #: ..\../main/gui/history3/historypanel3.cpp:1045 #: ..\../main/gui/history3/historypanel3.cpp:1078 #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1119 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 #: ..\../main/gui/import/selectimagesimportation.cpp:141 #: ..\../main/gui/import/selectimagesimportation.cpp:342 #: ..\../main/gui/import/selectimagesimportation.cpp:743 #: ..\../main/gui/import/selectimagesimportation.cpp:761 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 #: ..\../main/gui/login/dialogologin.cpp:50 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 #: ..\../main/gui/open/opendialogs.cpp:58 #: ..\../main/gui/open/opendialogs.cpp:62 #: ..\../main/gui/open/opendialogs.cpp:134 #: ..\../main/gui/progress/statusbarprogreso.cpp:284 #: ..\../main/gui/progress/statusbarprogreso.cpp:287 #: ..\../main/gui/progress/statusbarprogreso.cpp:292 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Info" msgstr "" #: ..\../commands/dbmigrationcommand.cpp:123 msgid "Migration finisthed successfully" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:27 #: ..\../commands/dialogopathssobreescribirbase.cpp:62 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:133 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "Overwrite" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:36 msgid "Would you like to overwrite them?" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.cpp:65 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:358 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:448 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:527 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:139 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:248 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:103 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:548 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1197 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1308 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1816 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2087 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2321 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2458 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2558 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2789 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3319 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:63 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:144 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:85 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:67 #: ..\../main/gui/history3/historypanel3base.cpp:339 #: ..\../main/gui/history3/historypanel3base.cpp:415 #: ..\../main/gui/history3/historypanel3base.cpp:486 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:189 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:136 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:254 #: ..\../main/gui/open/opendialogsbase.cpp:53 #: ..\../main/gui/open/opendialogsbase.cpp:131 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:76 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:66 #: ..\../widgets/gui/calibracionbase.cpp:86 #: ..\../widgets/gui/selecciontextobase.cpp:60 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:145 msgid "Cancel" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:24 #: ..\../commands/dicomizationcompletebase.cpp:33 #: ..\../commands/dicomizationcompletebase.h:60 msgid "Dicomization complete" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:38 msgid "Dicomization finished successfully" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:56 msgid "Don't show this message again" msgstr "" #: ..\../commands/dicomizationcompletebase.cpp:62 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:99 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:544 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1305 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1711 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1812 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2083 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2317 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2786 #: ..\../main/gui/history3/historypanel3base.cpp:411 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:141 #: ..\../widgets/gui/calibracionbase.cpp:82 #: ..\../widgets/gui/selecciontextobase.cpp:56 msgid "Accept" msgstr "" #: ..\../commands/dicomizecommand.cpp:148 msgid "Step 1 of 3: Importing images" msgstr "" #: ..\../commands/dicomizecommand.cpp:157 msgid "Step 2 of 3: Copying images" msgstr "" #: ..\../commands/dicomizecommand.cpp:168 msgid "Step 3 of 3: Uploading images" msgstr "" #: ..\../commands/dicomizecommand.cpp:179 msgid "Import process failed:" msgstr "" #: ..\../commands/dicomizecommand.cpp:179 msgid "" "\n" "Would you like to retry?" msgstr "" #: ..\../commands/dicomizecommand.cpp:186 msgid "Importing..." msgstr "" #: ..\../commands/dicomizecommand.cpp:370 msgid "Unknown error in dicomization process" msgstr "" #: ..\../commands/dicomizecommand.cpp:431 #: ..\../commands/dicomizecommand.cpp:442 #: ..\../commands/sendpacscommand.cpp:185 msgid "Error sending evidences:" msgstr "" #: ..\../commands/dicomizecommand.cpp:437 #: ..\../commands/dicomizecommand.cpp:448 msgid "Can not upload to the PACS:\n" msgstr "" #: ..\../commands/dicomizecommand.cpp:454 msgid "" "Can not upload to the PACS:\n" "Internal Error" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:261 #: ..\../commands/exporttodicomdircommand.cpp:338 #, c-format msgid "Exporting series %d of %d" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:271 msgid "Some of selected series has been deleted" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:279 #: ..\../commands/exporttodicomdircommand.cpp:385 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:61 #: ..\../main/gui/export/parametrosprincipales.cpp:167 msgid "There was an error creating directory" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:303 #: ..\../commands/exporttodicomdircommand.cpp:408 msgid "There was an error writing file" msgstr "" #: ..\../commands/exporttodicomdircommand.cpp:358 msgid "There was an error anonymizing files" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:113 msgid "element patient id absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:120 msgid "element study instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:127 msgid "element series instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:135 msgid "element sop instance uid absent in dataset" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Ignoring incoming operation " msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:274 #: ..\../commands/incomingdicomassociationcommand.cpp:298 #: ..\../commands/incomingdicomassociationcommand.cpp:355 msgid "Not implemented" msgstr "" #: ..\../commands/incomingdicomassociationcommand.cpp:473 #: ..\../commands/pacsdownloadcommand.cpp:170 #: ..\../commands/pacsdownloadcommand.cpp:179 msgid "Including files..." msgstr "" #: ..\../commands/linkhistorycommand.cpp:68 msgid "Linking study..." msgstr "" #: ..\../commands/openremovableunit.cpp:42 #: ..\../commands/openremovableunit.cpp:44 msgid "Exploring drives..." msgstr "" #: ..\../commands/openremovableunit.cpp:74 msgid "" "No DICOMDIR found in removable units.\n" "Would you like to scan other path recursively?" msgstr "" #: ..\../commands/openremovableunit.cpp:109 #, c-format msgid "" "No DICOMDIR found in removable units, would you like to scan recursively %s " "drive" msgstr "" #: ..\../commands/openremovableunit.cpp:130 msgid "Select drive you want to open" msgstr "" #: ..\../commands/openremovableunit.cpp:132 msgid "" "Ginkgo CADx has detected more than one removable units,\n" "but none of them includes a DICOMDIR at root.\n" "Select drive where you want to acquire recursively" msgstr "" #: ..\../commands/pacsdownloadcommand.cpp:134 msgid "Error downloading study: " msgstr "" #: ..\../commands/pdfextractercommand.cpp:103 msgid "Error extracting pdf, Ginkgo CADx is unable to load this format" msgstr "" #: ..\../commands/pdfextractercommand.cpp:103 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:376 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:184 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:191 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:201 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:211 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1196 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 #: ..\../main/gui/progress/statusbarprogreso.cpp:278 #: ..\../widgets/gui/calibracion.cpp:205 ..\../widgets/gui/calibracion.cpp:209 #: ..\../widgets/gui/calibracion.cpp:219 ..\../widgets/gui/calibracion.cpp:225 #: ..\../widgets/gui/calibracion.cpp:229 msgid "Error" msgstr "" #: ..\../commands/pdfextractercommand.cpp:113 #: ..\../commands/pdfextractercommand.cpp:122 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:492 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:500 msgid "There isn't any pdf reader registered in the system" msgstr "" #: ..\../commands/pdfextractercommand.cpp:130 msgid "PDF files extracted successfully..." msgstr "" #: ..\../commands/secondarycapturedicomizecommand.cpp:73 msgid "Ginkgo CADx Secondary Capture" msgstr "" #: ..\../commands/sendhl7command.cpp:63 #, c-format msgid "Sending HL7 message %d of %d" msgstr "" #: ..\../commands/sendhl7command.cpp:73 msgid "Message successfully sent" msgstr "" #: ..\../commands/sendhl7command.cpp:77 msgid "Unknown protocol" msgstr "" #: ..\../commands/sendhl7command.cpp:80 ..\../commands/sendhl7command.cpp:93 #: ..\../commands/sendhl7command.cpp:145 msgid "Error sending message:" msgstr "" #: ..\../commands/sendhl7command.cpp:90 msgid "Error sending HL7 message see log for more details" msgstr "" #: ..\../commands/sendhl7command.cpp:93 ..\../commands/sendhl7command.cpp:94 msgid "Unknown error" msgstr "" #: ..\../commands/sendhl7command.cpp:134 msgid "Failed to start connection" msgstr "" #: ..\../commands/sendhl7command.cpp:148 msgid "Error sending message. It was sent " msgstr "" #: ..\../commands/sendhl7command.cpp:148 msgid " bytes from a total of " msgstr "" #: ..\../commands/sendhl7command.cpp:247 msgid "" "Error in the logic of confirmation. The control of the message ID does not " "match recognized" msgstr "" #: ..\../commands/sendhl7command.cpp:251 msgid "NACK received:" msgstr "" #: ..\../commands/sendhl7command.cpp:258 msgid "Failed delivery confirmation:" msgstr "" #: ..\../commands/sendhl7command.cpp:264 msgid "" "Error in the confirmation of delivery: Delivery is not recognized by the " "remote end" msgstr "" #: ..\../commands/sendpacscommand.cpp:51 msgid "Send files to PACS" msgstr "" #: ..\../commands/sendpacscommand.cpp:155 msgid "Uploading files ..." msgstr "" #: ..\../commands/sendpacscommand.cpp:178 msgid "Error: PACS entry configuration not found: " msgstr "" #: ..\../commands/sendpacscommand.cpp:181 msgid "Error:" msgstr "" #: ..\../commands/sendpacscommand.cpp:189 msgid "Error sending evidences: Internal error." msgstr "" #: ..\../commands/sendpacscommand.cpp:203 msgid "Error uploading the study to PACS: " msgstr "" #: ..\../commands/sendpacscommand.cpp:205 #, c-format msgid "" "\n" "Would you like to retry(automatically retried in %d seconds)?" msgstr "" #: ..\../commands/sendpacscommand.cpp:206 msgid "Retry send to PACS" msgstr "" #: ..\../commands/synchronizationcommand.cpp:104 msgid "Error downloading file" msgstr "" #: ..\../commands/synchronizationcommand.cpp:141 msgid "Error synchronizing study: " msgstr "" #: ..\../commands/thumbnailscommand.cpp:107 #: ..\../commands/thumbnailscommand.cpp:133 #: ..\../commands/thumbnailscommand.cpp:247 #: ..\../commands/thumbnailscommand.cpp:376 #: ..\../commands/thumbnailscommand.cpp:382 #: ..\../main/gui/import/selectimagesimportation.cpp:504 msgid "Creating Thumbnail..." msgstr "" #: ..\../commands/thumbnailscommand.cpp:399 msgid "Generating thumbnail ..." msgstr "" #: ..\../export/tools/iaddfiletohistorytool.cpp:19 #: ..\../main/gui/history3/historypanel3.cpp:632 msgid "Open study" msgstr "" #: ..\../export/tools/iangletool.cpp:19 msgid "Angle \tCtrl+A" msgstr "" #: ..\../export/tools/ibrightnesscontrasttool.cpp:20 msgid "Brightness/Contrast \tCtrl+B" msgstr "" #: ..\../export/tools/icamerarotationtool.cpp:19 msgid "Rotate camera" msgstr "" #: ..\../export/tools/icolormaptool.cpp:20 msgid "Color Map" msgstr "" #: ..\../export/tools/icopyimagetoclipboardtool.cpp:19 #: ..\../main/gui/open/opendialogsbase.cpp:46 #: ..\../main/gui/open/opendialogsbase.cpp:198 msgid "Copy" msgstr "" #: ..\../export/tools/icornerannotationstool.cpp:20 msgid "Window annotations" msgstr "" #: ..\../export/tools/idetachwindowtool.cpp:19 msgid "Detach window" msgstr "" #: ..\../export/tools/iimageexporttool.cpp:19 msgid "Export image..." msgstr "" #: ..\../export/tools/imarkertool.cpp:20 msgid "Marking Tools \tCtrl+M" msgstr "" #: ..\../export/tools/imetricgridtool.cpp:20 msgid "Metric grid" msgstr "" #: ..\../export/tools/inotetool.cpp:19 msgid "Text Note \tCtrl+N" msgstr "" #: ..\../export/tools/ipacsuploadtool.cpp:19 msgid "Upload study..." msgstr "" #: ..\../export/tools/ipixelsbluringtool.cpp:20 msgid "Pixels blurring" msgstr "" #: ..\../export/tools/ipointertool.cpp:19 msgid "Pointer \tEsc" msgstr "" #: ..\../export/tools/iqueryretrievetool.cpp:19 #: ..\../main/tools/queryretrievehistorytool.cpp:25 #: ..\../main/tools/queryretrievetool.cpp:93 msgid "Acquire a DICOM study from PACS" msgstr "" #: ..\../export/tools/iresettool.cpp:19 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:346 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:440 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2548 msgid "Reset" msgstr "" #: ..\../export/tools/irotateandfliptool.cpp:19 msgid "Rotate and flip" msgstr "" #: ..\../export/tools/iruletool.cpp:19 msgid "Rule \tCtrl+R" msgstr "" #: ..\../export/tools/isecondarycapturetool.cpp:19 msgid "Save snapshot as new series..." msgstr "" #: ..\../export/tools/ishowhistorytool.cpp:19 msgid "Show history \tAlt+h" msgstr "" #: ..\../export/tools/ishowtagstool.cpp:19 #: ..\../main/tools/showtagshistorytool.cpp:27 msgid "DICOM inspector" msgstr "" #: ..\../export/tools/isimpleprinttool.cpp:19 #: ..\../main/tools/simpleprinttool.cpp:226 msgid "Print" msgstr "" #: ..\../export/tools/istartdicomizationtool.cpp:19 msgid "Dicomize..." msgstr "" #: ..\../export/tools/itoolpan.cpp:19 msgid "Pan \tCtrl+P" msgstr "" #: ..\../export/tools/itoolslider.cpp:19 msgid "Slider \tCtrl+S" msgstr "" #: ..\../export/tools/itoolwindowlevel.cpp:19 msgid "Window/Level \tCtrl+W" msgstr "" #: ..\../export/tools/itoolzoom.cpp:19 msgid "Zoom \tCtrl+O" msgstr "" #: ..\../export/tools/itrackballtool.cpp:19 msgid "Trackball \tCtrl+T" msgstr "" #: ..\../export/tools/iundotool.cpp:20 ..\../main/tools/undotool.cpp:109 msgid "Undo" msgstr "" #: ..\../export/tools/ivideotool.cpp:19 msgid "Video \tCtrl+Space" msgstr "" #: ..\../export/tools/iwindowlayouttool.cpp:20 msgid "Window layout" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:161 msgid "Studies with" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:161 msgid " unsupported components" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:210 msgid "Reading properties" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:219 #: ..\../main/controllers/controladorcarga.cpp:642 #: ..\../main/controllers/controladorcarga.cpp:888 #: ..\../main/controllers/streaming/streamingloader.cpp:600 msgid "Error reading the study: " msgstr "" #: ..\../main/controllers/controladorcarga.cpp:224 #: ..\../main/controllers/controladorcarga.cpp:229 #: ..\../main/controllers/controladorcarga.cpp:647 #: ..\../main/controllers/controladorcarga.cpp:893 msgid "Internal error reading the study: " msgstr "" #: ..\../main/controllers/controladorcarga.cpp:269 #: ..\../main/controllers/controladorcarga.cpp:281 #: ..\../main/controllers/controladorcarga.cpp:905 msgid "Spacing is not valid: (" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:305 #: ..\../main/controllers/controladorcarga.cpp:338 #: ..\../main/controllers/controladorcarga.cpp:372 #: ..\../main/controllers/controladorcarga.cpp:408 #: ..\../main/controllers/controladorcarga.cpp:441 #: ..\../main/controllers/controladorcarga.cpp:474 #: ..\../main/controllers/controladorcarga.cpp:507 #: ..\../main/controllers/controladorcarga.cpp:540 #: ..\../main/controllers/controladorcarga.cpp:573 #: ..\../main/controllers/controladorcarga.cpp:606 #: ..\../main/controllers/controladorcarga.cpp:935 msgid "Error loading the study: Out of memory" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:375 msgid "Error loading the study: Internal Error" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:630 #: ..\../main/controllers/streaming/streamingloader.cpp:1023 #: ..\../main/controllers/streaming/streamingloader.cpp:1223 #: ..\../main/controllers/streaming/streamingloader.cpp:1230 msgid "Error reading the study: unsupported pixel format" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:651 #: ..\../main/controllers/controladorcarga.cpp:960 msgid "Process canceled by user." msgstr "" #: ..\../main/controllers/controladorcarga.cpp:878 msgid "Interpreting properties" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:917 msgid "Spacing of the image is invalid: (" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:942 msgid "Reading dataset" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:951 msgid "Error reading the study:" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:956 msgid "Internal error while reading the study:" msgstr "" #: ..\../main/controllers/controladorcarga.cpp:972 msgid "load" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:40 msgid "Stopping HL7 sender" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:63 #: ..\../main/controllers/controladorenviohl7.cpp:76 msgid "Error starting HL7 sender" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:65 #: ..\../main/controllers/controladorenviohl7.cpp:78 msgid "HL7 sender started" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:108 msgid "HL7 controller destroyed" msgstr "" #: ..\../main/controllers/controladorenviohl7.cpp:150 msgid "Error processing message" msgstr "" #: ..\../main/controllers/controladoreventos.cpp:284 #: ..\../main/controllers/pacscontroller.cpp:1549 #: ..\../main/controllers/pacscontroller.cpp:1553 #: ..\../main/controllers/pacscontroller.cpp:1557 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:75 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:78 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:81 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:84 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:87 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:88 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:89 #: ..\../main/gui/import/pasosimportacionbase.cpp:195 #: ..\../wx/gnkinforme/gnkinformebase.cpp:184 msgid "Unknown" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:110 msgid "Loading" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:113 msgid "Could not load extension library file" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:114 msgid "Could not load library file. Check log" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:149 msgid "Extension descriptor does not match" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:153 msgid "Could not find entry point" msgstr "" #: ..\../main/controllers/controladorextensiones.cpp:548 msgid "Skipping extension with duplicated SID:" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:74 msgid "Integration engine hostname not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:77 msgid "Integration engine port not set" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:91 msgid "Unsupported protocol" msgstr "" #: ..\../main/controllers/controladorhl7.cpp:106 msgid "Error queueing message. Check your supplier" msgstr "" #: ..\../main/controllers/dcmtk/dicomfindassociation.cpp:132 #, c-format msgid "%d results has been found" msgstr "" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:577 #, c-format msgid "Downloading file %d/%d" msgstr "" #: ..\../main/controllers/dcmtk/dicomgetassociation.cpp:597 msgid "Study download size limit exceeded" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:221 msgid "Unable to reserve memory for PDF dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:240 msgid "Unable to reserve memory for image Dicomization" msgstr "" #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:254 #: ..\../main/controllers/dcmtk/dicomimg2dcm.cpp:359 msgid "Image format not supported" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:114 msgid "Unable to create TLS transport layer" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:123 msgid "Private key and Certificate do not match" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:145 msgid "Error setting TLS layer: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:200 msgid "Receiving Association failed: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:209 msgid "Association received" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:210 msgid "Parameters:" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:240 msgid "Association Rejected: Bad Application Context Name: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:258 msgid "Association Rejected: No Implementation Class UID provided" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 msgid "Association Acknowledged (Max Send PDV: " msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:272 #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid ")" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:274 msgid "No valid presentation contexts" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "Association(dicom://" msgstr "" #: ..\../main/controllers/dcmtk/dicomservice.cpp:282 msgid "@" msgstr "" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid "Ginkgo CADx is unable to compress from " msgstr "" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:712 msgid " to " msgstr "" #: ..\../main/controllers/dcmtk/dicomstoreassociation.cpp:1285 #, c-format msgid "Uploading file %d of %d" msgstr "" #: ..\../main/controllers/dicommanager.cpp:504 #: ..\../main/controllers/dicommanager.cpp:531 msgid "Extracting file..." msgstr "" #: ..\../main/controllers/historycontroller.cpp:323 msgid "Error creating history database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:323 msgid " trying temp" msgstr "" #: ..\../main/controllers/historycontroller.cpp:327 msgid "" "You do not have permissions to write to the dicom Dir, preferences will be " "stored in the temporary directory" msgstr "" #: ..\../main/controllers/historycontroller.cpp:343 msgid "Error creating dicomDir database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:425 #: ..\../main/controllers/historycontroller.cpp:441 msgid "Error creating thumbnails database " msgstr "" #: ..\../main/controllers/historycontroller.cpp:447 msgid "Error creating database:\n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:560 msgid "Including image " msgstr "" #: ..\../main/controllers/historycontroller.cpp:560 #: ..\../main/controllers/historycontroller.cpp:707 msgid " of " msgstr "" #: ..\../main/controllers/historycontroller.cpp:707 msgid "Linking image " msgstr "" #: ..\../main/controllers/historycontroller.cpp:1680 #: ..\../main/controllers/historycontroller.cpp:1725 #: ..\../main/controllers/historycontroller.cpp:1779 #: ..\../main/controllers/historycontroller.cpp:1801 #: ..\../main/controllers/historycontroller.cpp:1825 msgid "Error reading history: \n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:1882 #: ..\../main/controllers/historycontroller.cpp:1939 msgid "Failed to delete the number of database:\n" msgstr "" #: ..\../main/controllers/historycontroller.cpp:1976 msgid "Failed to empty the history:\n" msgstr "" #: ..\../main/controllers/inactivitycontroller.cpp:43 #, c-format msgid "" "Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\n" "Do you want to continue?" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:98 msgid "Fatal error! you can't register two parsers with same key" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:493 msgid "Malformed template Id (" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:493 #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "" "):\n" "Is not a valid HL7 identifier (ie: code^description^namespaceId)" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:523 msgid "Id malformed template in the module configuration" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "Template Id unsupported (" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:540 msgid "" "):\n" "Check the configuration and attach it if necessary" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:566 msgid "Unknown module Id (" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:592 msgid "Empty configuration" msgstr "" #: ..\../main/controllers/integrationcontroller.cpp:631 msgid "XML Parser Not Found. Key=" msgstr "" #: ..\../main/controllers/log4cplus/guiappender.cpp:75 msgid "%Y/%m/%d %H:%M:%S.%q" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:41 #: ..\../main/gui/history3/historypanel3base.cpp:48 #: ..\../main/gui/import/pasosimportacionbase.cpp:227 msgid "Patient" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:73 msgid "Patient ID" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:86 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:491 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:198 #: ..\../main/gui/history3/historypanel3.cpp:227 #: ..\../main/gui/open/opendialogs.cpp:50 msgid "Modality" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:98 msgid "Dimensions" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:109 #, c-format msgid "Made with %s" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:167 #: ..\../main/controllers/modalitysettingscontroller.cpp:338 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:136 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:158 #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:207 msgid "Default" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:343 msgid "Autocalculate" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:446 msgid "SPINAL" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:450 msgid "CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:454 msgid "BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:458 msgid "CRANIUM BONE" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:462 msgid "MEDIASTINUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:466 msgid "LUNG" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:470 msgid "BREAST" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:474 msgid "VERTEBRA" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:484 msgid "ANGIO" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:488 msgid "CT CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:492 msgid "T1 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:496 msgid "T2 CRANIUM" msgstr "" #: ..\../main/controllers/modalitysettingscontroller.cpp:500 msgid "KNEE" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1212 msgid "Downloading file" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Error downloading WADO file" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1318 msgid "Check PACS configuration" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1387 msgid "Unknown query/retrieve level" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1390 msgid "Query retrieve level not specified" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1424 msgid "Unable to perform HTTP request" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1428 msgid "Invalid HTTP response" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1433 msgid "Invalid HTTP code" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1440 msgid "Unable to init HTTP subsystem" msgstr "" #: ..\../main/controllers/pacscontroller.cpp:1472 msgid "PACS-Service" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:97 #: ..\../main/controllers/parserxmlspanish.cpp:94 msgid "Omitted Identificator" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:105 #: ..\../main/controllers/parserxmlspanish.cpp:102 msgid "Omitted AET" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:113 #: ..\../main/controllers/parserxmlspanish.cpp:110 msgid "Hostname missing" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:121 #: ..\../main/controllers/parserxmlspanish.cpp:118 msgid "Omitted port" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:206 #: ..\../main/controllers/parserxmlenglish.cpp:237 #: ..\../main/controllers/parserxmlspanish.cpp:188 #: ..\../main/controllers/parserxmlspanish.cpp:219 msgid "The pdu size is not a valid number" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:212 #: ..\../main/controllers/parserxmlspanish.cpp:194 msgid "Port is not a valid number" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:248 #: ..\../main/controllers/parserxmlspanish.cpp:228 msgid "The port is not a valid number" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:265 #: ..\../main/controllers/parserxmlspanish.cpp:246 msgid "Setting not found" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:308 msgid "\"action\" attribute invalid at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:312 msgid "\"action\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:331 msgid "\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:341 msgid "\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:360 msgid "\"value\" attribute expected at \"query-retrieve-level\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:391 msgid "\"code\" attribute expected at \"patient\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:427 msgid "\"code\" attribute expected at \"physician\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:434 msgid "\"value\" attribute expected at \"physician\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:445 msgid "\"iid\" atribute expected at \"institution\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:476 msgid "\"code\" attribute expected at \"metadata\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:483 msgid "\"key\" attribute expected at \"metadata\" scope" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:548 #: ..\../main/controllers/parserxmlspanish.cpp:555 msgid "You must specify attributes you want to use in the query" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:552 #: ..\../main/controllers/parserxmlspanish.cpp:562 msgid "It has been read a \"patient\" tag without identifiers" msgstr "" #: ..\../main/controllers/parserxmlenglish.cpp:570 #: ..\../main/controllers/parserxmlspanish.cpp:578 msgid "" "You must define a default PACS in the integration XML or in the settings menu" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:290 msgid "\"accion\" attribute invalid at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:294 msgid "\"accion\" attribute expected at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:313 msgid "\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:323 msgid "\"pacs_store_sid\" attribute empty at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:340 msgid "\"uid\" attribute expected at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:363 msgid "\"ambito\" attribute invalid at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:369 msgid "\"ambito\" attribute expected at \"dimse\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:402 msgid "\"codigo\" attribute expected at \"paciente\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:438 msgid "\"codigo\" attribute expected at \"medico\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:445 msgid "\"valor\" attribute expected at \"medico\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:456 msgid "\"cid\" atribute expected at \"centro\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:472 msgid "\"aid\" attribute expected at \"hce\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:486 msgid "\"codigo\" attribute expected at \"metadato\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:493 msgid "\"clave\" attribute expected at \"metadato\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:524 msgid "\"id_peticion\" attribute expected at \"gnkworkflow\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:527 msgid "\"ambito\" attribute expected at \"plantilla\" scope" msgstr "" #: ..\../main/controllers/parserxmlspanish.cpp:559 msgid "id_application expected" msgstr "" #: ..\../main/controllers/smartretrievecontroller.cpp:124 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:920 msgid "Downloading from PACS..." msgstr "" #: ..\../main/controllers/streaming/streamingloader.cpp:303 #: ..\../main/controllers/streaming/streamingloader.cpp:311 msgid "" "Error reading the study: Largest image pixel value data is not coherent with " "combination of Pixel Representation and High bit" msgstr "" #: ..\../main/controllers/streaming/streamingloader.cpp:608 msgid "Internal error reading the study, unknown format " msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:118 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:332 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:333 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:460 #: ..\../main/gui/history3/historytablemodel.cpp:403 #: ..\../main/gui/history3/historytablemodel.cpp:415 #: ..\../main/gui/history3/historytablemodel.cpp:470 #: ..\../main/gui/history3/historytablemodel.cpp:482 #: ..\../main/gui/open/dicomdirtablemodel.cpp:102 #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:66 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:80 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:81 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:109 #: ..\../main/gui/ginkgocloud/wxtreelistctrlcloud.h:110 msgid "%m/%d/%Y %H:%M:%S" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:121 msgid "%m/%d/%Y 00:00:00" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:418 #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:444 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:262 msgid "Exploring PACS..." msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:472 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:197 #: ..\../main/gui/history3/historypanel3.cpp:225 #: ..\../main/gui/open/opendialogs.cpp:49 msgid "Patient id" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:473 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:196 #: ..\../main/gui/history3/historypanel3.cpp:224 #: ..\../main/gui/open/opendialogs.cpp:48 msgid "Patient name" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:479 msgid "Study Instance UID" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:480 #: ..\../main/gui/history3/historypanel3.cpp:231 #: ..\../main/gui/open/opendialogs.cpp:53 msgid "Accession number" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:481 msgid "Study date" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:482 msgid "Study time" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:490 msgid "Series Instance UID" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:492 msgid "Series date" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:493 msgid "Series time" msgstr "" #: ..\../main/gui/acquisition/acquisitiontablemodel.cpp:519 msgid "No results found" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:96 msgid "Write query name" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:101 msgid "This query name is in use, do you want to overwrite it?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:144 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:168 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:170 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:410 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:51 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:905 msgid "Id" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:199 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:116 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:158 msgid "Date Time" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:200 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:178 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2044 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:150 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:112 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:248 #: ..\../main/gui/history3/historypanel3.cpp:229 #: ..\../main/gui/import/pasosimportacionbase.cpp:298 #: ..\../main/gui/import/pasosimportacionbase.cpp:340 #: ..\../main/gui/open/opendialogs.cpp:52 msgid "Description" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:201 #: ..\../main/gui/import/pasosimportacionbase.cpp:276 msgid "Accession Number" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:210 msgid "Store query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:211 msgid "Remove query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:278 msgid "There is no any PACS configured" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:414 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:53 msgid "Acc#" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:416 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:54 msgid "Study UID" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "" "Search without parameters could take al long time\n" "Would you like to continue?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:437 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:30 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:129 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:232 msgid "Search" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:519 msgid "Download series" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:521 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:325 msgid "Download study" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:535 msgid "Link series" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:537 msgid "Link study" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:551 msgid "Properties..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:686 msgid "You must specify at least a modality or a period of time" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:704 msgid "This query will be removed permanently, do you confirm removal?" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:709 msgid "Select a valid query" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:721 msgid "Select a valid PACS Server" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid "Download of modality " msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:754 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:762 msgid " not allowed" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "You are not allowed to download this kind of modalities." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:755 #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:763 msgid "Modality download error" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:786 msgid "search results" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:913 msgid "Downloading serie..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicion.cpp:916 msgid "Downloading study..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:70 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:165 msgid "PACS acquisition is restricted" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:96 msgid "Server" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:115 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:195 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:154 #: ..\../main/gui/import/pasosimportacionbase.cpp:284 #: ..\../main/gui/import/pasosimportacionbase.cpp:326 #: ..\../main/gui/open/opendialogs.cpp:51 msgid "Date" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:123 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:203 #: ..\../main/gui/history3/historypanel3base.cpp:81 msgid "Any date" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:127 #: ..\../main/gui/history3/historypanel3base.cpp:85 msgid "Today AM" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:130 #: ..\../main/gui/history3/historypanel3base.cpp:88 msgid "Today PM" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:133 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:207 #: ..\../main/gui/history3/historypanel3base.cpp:91 msgid "Today" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:142 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:210 #: ..\../main/gui/history3/historypanel3base.cpp:100 msgid "Yesterday" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:145 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:219 #: ..\../main/gui/history3/historypanel3base.cpp:103 msgid "Last 7 days" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:148 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:222 #: ..\../main/gui/history3/historypanel3base.cpp:106 msgid "Last 30 days" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:151 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:225 #: ..\../main/gui/history3/historypanel3base.cpp:109 msgid "Last 3 months" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:160 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:234 #: ..\../main/gui/history3/historypanel3base.cpp:118 msgid "Between:" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:191 #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:265 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:113 #: ..\../main/gui/history3/historypanel3base.cpp:149 msgid "Modalities" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:212 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3351 msgid "Stored queries" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:216 msgid "Select stored queries..." msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:227 #: ..\../main/gui/open/opendialogsbase.cpp:50 #: ..\../main/gui/open/opendialogsbase.cpp:202 msgid "Link" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:229 msgid "Available only in WADO servers" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:233 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:445 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:289 msgid "Download" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:238 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:60 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:318 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 #: ..\../main/gui/paneltags/paneltagsbase.cpp:28 msgid "Close" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:329 msgid "Series does not exist" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:334 msgid "These series have been deleted from the local history" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:354 msgid "Continue" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:374 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:523 #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2454 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2554 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3190 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3270 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:140 #: ..\../main/gui/open/opendialogsbase.cpp:127 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:72 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:62 #: ..\../main/tools/metricgridtool.cpp:101 msgid "Ok" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:404 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:413 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:151 msgid "Download again" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:441 msgid "Open" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:483 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:492 #: ..\../main/gui/acquisition/dialogoadquisicionbase.cpp:497 #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:179 msgid "Set query name" msgstr "" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:32 msgid "" "This series has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/acquisition/downloadagaindialog.cpp:34 msgid "" "This study has been already downloaded in the local history, Do you want to " "download it again?" msgstr "" #: ..\../main/gui/anonymize/anonymizedialog.cpp:64 #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:95 #: ..\../main/gui/export/parametrosprincipales.cpp:194 msgid "Exporting images ..." msgstr "" #: ..\../main/gui/anonymize/anonymizepanel.cpp:95 msgid "Element field or group field have invalid values" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:21 msgid "Common tags" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:29 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:54 msgid "Patient's name and surname" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:32 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:40 msgid "Patient Id" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:35 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:46 msgid "Institutions" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:38 msgid "Referring physician" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:41 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:57 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:90 msgid "Comments" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:44 msgid "Ginkgo CADx tags (Evaluation Maps...)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:63 msgid "Tags (double click to change value)" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:71 msgid "Add new..." msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:113 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:32 #: ..\../main/tools/anonymizetool.cpp:26 #: ..\../main/gui/anonymize/anonymizepanelbase.h:103 msgid "Anonymize" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:136 msgid "Create new" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:181 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2399 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3227 #: ..\../main/gui/anonymize/anonymizepanelbase.h:136 msgid "Add DICOM tag" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:199 msgid "Group" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:203 msgid "Element" msgstr "" #: ..\../main/gui/anonymize/anonymizepanelbase.cpp:207 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:180 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3238 #: ..\../widgets/wangulo.cpp:1114 msgid "Value" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:91 msgid "Top right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:94 msgid "Top left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:97 msgid "Bottom left corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:100 msgid "Bottom right corner annotation" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:198 msgid "You must fill in all fields" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:204 msgid "Window/level label in use" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:209 msgid "Fill in valid numbers in window and level fields." msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:225 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2407 msgid "Label" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:226 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2415 msgid "Window" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:227 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2425 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:58 msgid "Level" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:250 msgid "Nearest neighbour" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:251 msgid "Linear" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:252 msgid "Cubic" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 msgid "Do you confirm the removal of the preset?" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:347 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Data modified" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:473 msgid "Modality settings" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:478 msgid "Default modality settings" msgstr "" #: ..\../main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp:519 #, c-format msgid "%s settings" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:60 msgid "settings" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Export Configuration" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:262 msgid "Ini Files(*.ini)|*.ini" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:170 msgid "" "File exists\n" "Would you like to overwrite it?" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:266 msgid "Existing file" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:273 msgid "Export successfully completed" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:275 msgid "There was an error during exportation" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Import Configuration" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:282 msgid "Ini files(*.ini)|*.ini" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:298 msgid "Import successfully completed, restart Ginkgo CADx to apply changes" msgstr "" #: ..\../main/gui/configuration/dialogoconfiguracion.cpp:300 msgid "There was an error during importation, check permissions" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:179 msgid "Dicom tag" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:332 msgid "Split horizontally..." msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:339 msgid "Split vertically..." msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:434 #: ..\../main/tools/windowlayouttool.cpp:273 msgid "Split active horizontally" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:437 #: ..\../main/tools/windowlayouttool.cpp:274 msgid "Split active vertically" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:627 msgid "New hanging protocol" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:668 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:715 #, c-format msgid "Window %d" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:719 msgid "This view doesn't support multiple windows" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:764 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:426 #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:60 msgid "Active" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:797 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:880 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:896 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:922 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:765 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:940 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1076 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:461 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:524 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:565 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:601 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:227 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:233 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:239 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:333 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:339 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:345 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "Yes" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:799 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:882 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:898 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:924 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:767 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:942 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1078 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:463 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:562 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:603 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:236 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:242 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:336 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:342 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:348 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:381 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:382 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:383 msgid "No" msgstr "" #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:822 #: ..\../main/gui/configuration/hangingprotocolconfigurationpanel.cpp:827 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2827 msgid "Hanging protocols" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:59 msgid "One day" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:60 msgid "Two days" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:61 msgid "Three days" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:62 msgid "One week" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:63 msgid "Two weeks" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:64 msgid "One month" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:65 msgid "Three months" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:66 msgid "One year" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:140 msgid "Local database" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:145 msgid "Local DICOM Dir setup" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:160 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:122 msgid "" "The selected directory does not exist\n" "Would you like to create it?" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:171 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:133 msgid "" "Failed to create directory, make sure the path is correct and you have " "permissions on parent directory" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:185 #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:147 msgid "" "There was an error reading the directory, make sure you have write " "permissions on it" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:258 msgid "Select DICOMDIR" msgstr "" #: ..\../main/gui/configuration/localdatabaseconfigurationpanel.cpp:270 msgid "Warning, to update the directory, you must close current opened series." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:87 msgid "Workstation" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionestacion.cpp:92 msgid "Configuration parameters of the local station" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:121 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1538 msgid "Extensions" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:126 msgid "Extensions settings" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionextensiones.cpp:132 msgid "Ginkgo CADx must restart for the extensions changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:94 msgid "Port has to be a valid number" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:185 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2760 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:40 msgid "General" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:190 msgid "General configuration parameters" msgstr "" #: ..\../main/gui/configuration/panelconfiguraciongeneral.cpp:196 msgid "Ginkgo CADx must restart for the changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:74 msgid "Electronic health record" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:79 msgid "Setting the electronic health record system" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:134 msgid "Testing conectivity with the server..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:144 msgid "Error connecting to url" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:141 msgid "hostname/port not set" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:146 msgid "Connection test fail" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionhce.cpp:148 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:635 msgid "Connection test successful" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "Select certificate" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:96 msgid "PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:193 msgid "You have to set private and public key" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:230 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:255 msgid "Change ..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:232 #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:257 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1277 msgid "Import ..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:279 msgid "" "If you want to use SSL/TLS you have to set a valid certificate and a valid " "private key" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:472 msgid "There are this errors: " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:477 msgid "" "\n" "- This PACS id is in use" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:486 msgid "" "\n" "- The port must be a positive short integer (16 bits)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:490 msgid "" "\n" "- The port is too large" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:496 msgid "" "\n" "- The maximum length of the AET is 16 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:503 msgid "" "\n" "- The PDU size should be greater than or equal to zero (default = 16384)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:507 msgid "" "\n" "- The maximum value of the PDU is " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:511 msgid "" "\n" "- The minimum value of the PDU is " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:519 msgid "" "\n" "- If you want to use SSL/TLS you have to set a valid certificate and private " "key" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:525 msgid "" "\n" "- If you want to use WADO you have to fill in wado url" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:529 msgid "" "\n" "- WADO URL doesn't contains scheme (i.e. http://)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:532 msgid "" "\n" "- WADO URL doesn't contains host" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:542 msgid "You must fill in all fields to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:558 msgid "Testing the connection to the node ..." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:561 msgid "DICOM Error" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:591 msgid "Unable to connect: Could not start network support." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:602 msgid "The service did not respond correctly to the C-ECHO" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:607 msgid "The service did not respond correctly to the DICOM standard" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:616 msgid "Invalid port number" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:622 msgid "WADO Error" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:703 msgid "Use by default" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:795 msgid "DICOM nodes" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:800 msgid "DICOM nodes settings" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:807 msgid "They have produced the following errors:" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:812 msgid "" "\n" "- The local port must be a positive short integer (16 bits)" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:816 msgid "" "\n" "- The local port is too large" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:822 msgid "" "\n" "- Maximum length of local AET is 16 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1022 #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:404 msgid "Confirm the removal of the node" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpacs.cpp:1101 msgid "" "You must configure the local AET, which is used to communicate with the " "DICOM nodes. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:97 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1760 #: ..\../main/gui/export/pasosexportacionbase.cpp:20 msgid "Profile" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:140 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:324 #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:349 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2361 msgid "Default value" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:263 msgid "Set property active" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Inactive" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:264 msgid "Set property inactive" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:265 msgid "Set default value" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:352 msgid "Set by user" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:400 msgid "Profile name can't be repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:407 msgid "You must fill in name field to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:493 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1852 msgid "Profiles" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:498 msgid "Profiles Settings" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:507 msgid "Ginkgo CADx must restart for the permission changes to take effect" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionpermisos.cpp:671 msgid "Confirm the removal of the profile " msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:51 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:52 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:53 msgid "New User" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:92 msgid "User name has to contain at least 4 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:100 msgid "User name repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:108 msgid "Password and confirm password can't be different." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:117 msgid "Password has to contain at least 6 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:141 msgid "No login" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:142 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1110 msgid "User/Password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:143 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:486 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1126 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2276 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:224 msgid "Password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:191 msgid "Password is setted" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:192 msgid "Change password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:194 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2191 msgid "Password is not setted" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:195 msgid "Set password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:224 msgid "Security Setting" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:240 msgid "You must create at least one user" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:250 msgid "You must set the main password" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:302 msgid "User inserted successfully" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:305 msgid "There was an error inserting user. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:332 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:374 msgid "Password changed successfully" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:334 #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:377 msgid "" "There was an error changing the password. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:352 msgid "User deleted successfully" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:355 msgid "There was an error deleting user. To get more info open the LOG." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:359 msgid "Ginkgo CADx must have at least one user." msgstr "" #: ..\../main/gui/configuration/panelconfiguracionseguridad.cpp:366 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1118 #: ..\../main/gui/login/dialogologin.cpp:27 msgid "User" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:90 #: ..\../main/gui/open/abrir.cpp:145 msgid "Choose a directory" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:117 msgid "Location titles can't be repeated" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:124 msgid "Maximum length of title is 8 characters" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:130 msgid "The selected directory can't be opened" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:156 msgid "You must fill both title and location fields to continue" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:176 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2019 msgid "Title" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:177 msgid "Path" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:179 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2055 msgid "Monitorize" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:180 msgid "Clean before" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:181 msgid "Clean after" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:256 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1922 msgid "Locations" msgstr "" #: ..\../main/gui/configuration/panelconfiguracionubicaciones.cpp:261 msgid "Location Settings" msgstr "" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:91 msgid "Anonymization" msgstr "" #: ..\../main/gui/configuration/panelconfigurationanonymization.cpp:96 msgid "Anonymization settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:22 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:27 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:897 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3012 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3083 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1370 msgid "Settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:84 msgid "Export config..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:87 msgid "Import config..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:106 msgid "Apply" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:163 msgid "Physician's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:171 msgid "Physician's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:189 msgid "Service" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:197 msgid "Service's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:205 msgid "Service's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:223 msgid "Local institution" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:231 msgid "Institution's name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:239 msgid "Institution's Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:257 msgid "Dicomized files" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:265 msgid "Charset" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:270 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1157 msgid "ISO_IR 192" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:271 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1158 msgid "ISO_IR 6" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:272 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1156 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1159 msgid "ISO_IR 100" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:273 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1160 msgid "ISO_IR 101" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:274 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1161 msgid "ISO_IR 109" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:275 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1162 msgid "ISO_IR 110" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:276 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1163 msgid "ISO_IR 126" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:277 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1164 msgid "ISO_IR 127" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:278 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1165 msgid "ISO_IR 138" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:279 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1166 msgid "ISO_IR 144" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:280 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1167 msgid "ISO_IR 148" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:323 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:328 msgid "Language" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:345 msgid "Misc" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:350 msgid "Automatically check for updates" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:354 #: ..\../main/gui/license/acceptlicensedialogbase.cpp:57 msgid "Help us sending anonymous usage data (no patient data will be sent)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:368 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:376 msgid "Proxy settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:373 msgid "Enable http proxy" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:419 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:218 msgid "Proxy Settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:428 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:459 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:504 msgid "Server settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:436 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:921 msgid "Host" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:444 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:779 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:929 msgid "Port" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:464 msgid "Authentication" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:469 msgid "Proxy server requires authentication" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:478 msgid "Username" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:509 msgid "Exceptions" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:514 msgid "No proxy for addresses containing" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:521 msgid "Separate addresses with commas." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:584 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:599 msgid "DICOM Dir" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:589 msgid "DICOM Dir is the local directory where history is stored" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:607 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2038 msgid "..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:613 msgid "Warning, to update the directory, you have to close every opened series" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:621 msgid "Auto-cleaning" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:629 msgid "Delete studies with acquisition date older than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:639 msgid "Delete older studies when hd free space is less than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:650 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:668 msgid "MB" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:657 msgid "Delete studies when DICOM Dir size bigger than:" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:678 msgid "This feature only affects to studies COPIED to DICOM Dir and not in use" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:687 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1705 #: ..\../main/tools/toolwindowlevel.cpp:201 msgid "Reset to default" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:739 msgid "Local PACS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:744 msgid "" "You must configure the local AET, which is used to communicate with the PACS " "server. The specified port must be opened in the firewall, as it is " "essential for transfers." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:756 msgid "Local AET" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:772 msgid "" "For large-scale implementation in a homogenous environment, you can specify " "the following wildcards in the local AET:\n" "\t%IP IP Address\n" "\t%IP n-th Octet (1~4)\n" "\t%HOSTNAME Host Name\"" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:790 msgid "Advanced settings..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:806 msgid "DICOM Nodes" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:817 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1863 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1946 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2160 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2838 msgid "New ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:820 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1866 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1949 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2841 msgid "Edit ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:825 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1871 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1954 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2168 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2612 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2846 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3120 #: ..\../main/gui/history3/historypanel3.cpp:677 #: ..\../main/gui/history3/historypanel3.cpp:686 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 #: ..\../main/gui/import/selectimagesimportation.cpp:291 #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:833 msgid "Set Default" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:887 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:993 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:388 msgid "DICOM Node" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:913 msgid "AET" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:937 msgid "PDU (KB)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:944 msgid "Retrieve method" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Move" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "Get" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:948 msgid "WADO" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:954 msgid "WADO URL" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:964 msgid "Retrieve mode" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 #: ..\../main/gui/import/pasosimportacionbase.cpp:319 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1395 msgid "Series" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:968 msgid "Studies" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:974 msgid "Reuse connection" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:979 msgid "Reuse connections when is needed to make more than one queries" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:999 msgid "Worklists" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1004 msgid "Select how do you want to handle MPPS items" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1008 msgid "DICOM MPPS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1012 msgid "HL7 messages" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1016 msgid "HL7" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1024 msgid "Abort message" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1031 msgid "Completed message" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1038 msgid "In progress message" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1048 msgid "Default values" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1070 msgid "Worklist" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1076 msgid "SSL/TLS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1081 msgid "Verify server credentials" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1084 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1261 msgid "Use SSL/TLS" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1088 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:541 msgid "Certificate" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1090 msgid "Certificate to use in this connection" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1094 msgid "Advanced Configuration ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1144 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1152 msgid "Default charset" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1180 msgid "Advanced" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1188 msgid "Test connection" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1258 msgid "Verify client credentials" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1265 msgid "Local AET certificate" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1273 msgid "Certificate used by Ginkgo CADx" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1344 msgid "Gingo CADx Application ID used to fill MSH.3 field" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1355 msgid "Receiver organization Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1357 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1363 msgid "Unique identifier of the organization receiving the message." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1367 msgid "Petitioner System Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1369 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1375 msgid "Unique identifier of the requesting system." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1379 msgid "Filler Application Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1381 msgid "Unique identifier of the filler application (SIID/Ginkgo CADx)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1387 msgid "Unique identifier of the filler application (SIID/Ginkgo)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1391 msgid "Ginkgo CADx Application Id" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1393 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1399 msgid "" "Unique identifier of the Picture Archiving and Communication System " "Application (SIID/PACS)." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1416 msgid "Integration engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1427 msgid "Hostname / Port" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1429 msgid "Hostname (IP or DNS) integration engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1440 msgid "/" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1451 msgid "Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1453 msgid "Integration Engine's Transport Layer Protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1460 msgid "MLLP" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1469 #: ..\../main/gui/export/pasosexportacionbase.cpp:28 msgid "Format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1471 msgid "Message's format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1475 msgid "ER7" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1484 msgid "Test engine" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1485 msgid "Test Integration Engine connectivity" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1597 msgid "Ginkgo Extension Title" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1629 msgid "Edit public key" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1634 msgid "Use default certificate (certificate configured in local AET settings)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1647 msgid "Public key" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1652 msgid "Public key in PEM format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1660 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1686 msgid "Load ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1673 msgid "Private key" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1678 msgid "Private key in PEM format" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1771 msgid "Profile name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1879 msgid "Set active" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:1930 msgid "" "Locations are predefined paths to set locations from well known paths (ex: " "remote shared disk)" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2008 msgid "Configure location" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2027 msgid "Location" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2058 msgid "Clean directory after dicomization" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2061 msgid "Clean directory before dicomization" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2127 msgid "Security type" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2149 msgid "Users" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2163 msgid "Change Password ..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2186 msgid "Set main password" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2195 msgid "Set Password" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2245 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2254 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:736 msgid "Edit User" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2268 msgid "User Name" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2284 msgid "Confirm Password" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2353 msgid "Properties" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2491 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:814 msgid "Edit corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2502 msgid "" "To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:" "DefaultValue} where GGGG is the tag's group in hexadecimal and EEEE is the " "tag's element." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2506 msgid "" "You can also use special tags listed in the tooltip over the question button." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2514 msgid "" "${NEWLINE}\n" "${GINKGO.VERSION.FULLTEXT}\n" "${GINKGO.ARCH} \n" "\n" "${VOLUME.IDX}\n" "${SLICE.WIDTH}\n" "${SLICE.HEIGHT}\n" "${SLICE.WL.FULLTEXT}\n" "${SLICE.IDX}\n" "${SLICE.COUNT}\n" "${SLICE.IDX.FULLTEXT}\n" "${SLICE.LATERALITY}\n" "${SLICE.VOXEL.SIZE}\n" "${SLICE.THICKNESS}\n" "${SLICE.THICKNESS.FULLTEXT}\n" "${SLICE.LOCATION}\n" "${SLICE.LOCATION.FULLTEXT}\n" "${VIEW.SCALE}" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2590 msgid "Window/level" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2606 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3117 msgid "Add" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2609 #: ..\../main/gui/history3/historytoolmenu.cpp:149 #: ..\../widgets/gui/selecciontextobase.h:58 msgid "Edit" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2629 msgid "Default Window/Level" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2645 msgid "Corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2647 msgid "Setup corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2651 msgid "Setup..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2658 msgid "Other settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2665 msgid "Interpolate pixel data" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2714 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:885 msgid "Hanging protocol" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2737 msgid "Opening mode" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2750 msgid "Study opening criteria" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2767 msgid "+" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2775 msgid "Workspace" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2854 msgid "Enable/Disable" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2947 msgid "Top left corner annotations" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2983 msgid "Setup window" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2988 msgid "Push configuration button and place window where you want" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2995 msgid "Set default" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:2996 msgid "Open in main window" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3000 msgid "Setup position..." msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3001 msgid "Setup undocked window position" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3017 msgid "Layout" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3024 msgid "Current layout" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3037 msgid "Rows" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3044 msgid "Columns" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3067 msgid "Series criteria" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3157 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3162 #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1054 msgid "Select opening mode" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3234 msgid "Tag" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3308 msgid "Setup position and size of the window where you want to open the study" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3315 msgid "Save" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.cpp:3347 msgid "Enable background queries" msgstr "" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:98 msgid "Smart retrieve" msgstr "" #: ..\../main/gui/configuration/smartretrieveconfigurationpanel.cpp:103 msgid "Smart retrieve settings" msgstr "" #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:23 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:32 #: ..\../main/gui/countdownmessage/countdownmessagebase.cpp:112 msgid "Inactivity detected" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:23 #: ..\../main/gui/dicomdirexport/dicomdirexportbase.h:64 msgid "Export DICOM" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:43 msgid "Refering physician" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:60 msgid "Ginkgo CADx private tags" msgstr "" #: ..\../main/gui/dicomdirexport/dicomdirexportbase.cpp:82 #: ..\../main/gui/history3/historypanel3.cpp:340 #: ..\../main/gui/history3/historytoolmenu.cpp:158 msgid "Export" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:48 #: ..\../main/gui/export/parametrosprincipales.cpp:157 msgid "Select the directory where the files will be stored" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:55 #: ..\../main/gui/export/parametrosprincipales.cpp:161 msgid "" "The selected directory does not exist\n" "Would you like to create?" msgstr "" #: ..\../main/gui/dicomdirexport/exportdicomdir.cpp:67 msgid "There are other DICOM directory in selected path" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:36 #, c-format msgid "" "Ginkgo CADx has detected a default DICOM Dir created with an old version of\n" "Ginkgo CADx (BBDD v.%d). What do you want to do?" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:39 #, c-format msgid "" "DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\n" "This version is unabled to open it." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:95 msgid "" "Error renaming old dicomdir to _old, ensure you have permissions to do " "it" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigration.cpp:108 msgid "Select the DICOM Dir folder" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:27 msgid "DICOM Dir migration" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:44 msgid "Migrate existing (recommended)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:55 msgid "" "Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. " "Do not close Ginkgo CADx until migration is finished." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:59 msgid "Remove old DICOM Dir after migration (will be renamed as *_old)" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:65 msgid "Continue..." msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:77 msgid "Select other" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:85 msgid "" "Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new " "one will be created, else existing DICOM Dir will be used" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.cpp:89 msgid "Browse..." msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:106 msgid "DICOM Export" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:110 msgid "Select the format and the images you want to export" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:143 msgid "DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:147 msgid "" "JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/export/parametrosprincipales.cpp:150 msgid "Select file" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "DICOM (native format)" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:32 msgid "Image (jpg, bmp, png)" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:38 msgid "Export all files of opened tab" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:55 msgid "JPEG" msgstr "" #: ..\../main/gui/export/pasosexportacionbase.cpp:60 msgid "Quality" msgstr "" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:40 msgid "Image Export Wizard" msgstr "" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:139 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:63 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:440 #: ..\../main/gui/license/aboutdialogbase.cpp:67 #: ..\../main/gui/license/aboutdialogbase.cpp:151 #: ..\../wx/propiedades/wxpropiedadesbase.cpp:54 msgid "&Accept" msgstr "" #: ..\../main/gui/export/wxwizardexportacionginkgo.cpp:141 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:378 #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:57 msgid "&Next >" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:32 msgid "Open link" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:37 #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:402 msgid "File link:" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:140 #: ..\../main/gui/import/pasosimportacionbase.cpp:270 msgid "Study" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:151 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:250 #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:216 msgid "User name" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:397 msgid "Ginkgo Cloud link" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:409 msgid "" "You can copy and paste link to use it in e-mails and web pages, you have to " "install Ginkgo CADx to download and visualize it." msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:431 msgid "Send link by e-mail" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.cpp:437 msgid "Copy to clipboard" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "New Ginkgo Cloud study" msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:59 msgid "To download the study, paste this url " msgstr "" #: ..\../main/gui/ginkgocloud/filelinkdialog.cpp:61 msgid "" "into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it " "into the address bar of your browser." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:114 msgid "Creator" msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:115 msgid "Last Modificator" msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:335 msgid "Show link..." msgstr "" #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:436 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:441 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:446 #: ..\../main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp:451 msgid "?" msgstr "" #: ..\../main/gui/ginkgocloud/openginkgoclouddialog.cpp:39 msgid "Invalid link" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:117 #: ..\../main/gui/history3/historypanel3.cpp:637 msgid "Open Series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:119 #: ..\../main/gui/history3/historypanel3.cpp:639 msgid "Open Series with .." msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:226 #: ..\../wx/gnkinforme/gnkinformebase.cpp:108 msgid "Age" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:228 msgid "Date acquired" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:230 msgid "Date added" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:308 #: ..\../main/gui/history3/historytoolmenu.cpp:82 #: ..\../main/gui/startup/startupform.cpp:56 msgid "Acquire" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:316 #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:363 msgid "All patients" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:481 msgid "Results" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:481 #, c-format msgid " (%d images)" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:634 msgid "Open study with .." msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:663 #: ..\../main/gui/history3/historypanel3base.cpp:482 msgid "Synchronize" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:677 msgid "&Delete from history" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:686 msgid "&Clear history" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:904 #: ..\../main/gui/history3/historypanel3.cpp:975 msgid "" "You have reached maximum number of opened tabs, close some tabs and try it " "again" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid "Unable to open modality " msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1045 msgid " with transfer syntax " msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1056 msgid "Error loading study, check hanging protocol settings" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1078 msgid "Failed to empty the history, you have to close opened studies" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1086 msgid "all files" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1106 #: ..\../main/gui/history3/historypanel3.cpp:1171 #: ..\../main/tools/anonymizetool.cpp:46 #: ..\../main/tools/exportdicomdirtool.cpp:57 #: ..\../main/tools/sendpacstool.cpp:59 #: ..\../main/tools/showtagshistorytool.cpp:42 msgid "Select at least one series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1119 msgid "You can't remove opened series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "those series" msgstr "" #: ..\../main/gui/history3/historypanel3.cpp:1128 msgid "this series" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:57 msgid "Advanced search" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:73 msgid "Acquisition date" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:302 #: ..\../main/gui/history3/historypanel3base.h:134 msgid "Confirm removal" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:310 msgid "Are you sure you want to delete " msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:336 #: ..\../main/gui/history3/historytoolmenu.cpp:102 #: ..\../main/gui/history3/historytoolmenu.cpp:200 #: ..\../main/gui/history3/historytoolmenu.cpp:229 msgid "Remove" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:381 msgid "Choose the view you want to use to open file/s" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:389 msgid "Always use this view to open these files" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:454 #: ..\../main/gui/history3/historypanel3base.h:187 msgid "Synchronize files" msgstr "" #: ..\../main/gui/history3/historypanel3base.cpp:459 msgid "" "There are files that has to be downloaded to local database before executing " "this action, \n" "do you want to synchornize files now?" msgstr "" #: ..\../main/gui/history3/historytablemodel.cpp:406 #: ..\../main/gui/history3/historytablemodel.cpp:418 #: ..\../main/gui/history3/historytablemodel.cpp:473 #: ..\../main/gui/history3/historytablemodel.cpp:485 #: ..\../main/gui/open/dicomdirtablemodel.cpp:105 msgid "00/00/0000 00:00:00" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:138 msgid "Close history" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:139 #: ..\../main/gui/startup/startupform.cpp:53 msgid "History" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:201 #: ..\../main/gui/history3/historytoolmenu.cpp:230 msgid "Clear history" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:232 msgid "Select all" msgstr "" #: ..\../main/gui/history3/historytoolmenu.cpp:233 msgid "Deselect all" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:155 msgid "Destination" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:156 msgid "Status" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:157 msgid "Error message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:207 msgid "Show Message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:208 msgid "Edit Message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:209 msgid "Delete message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:262 msgid "Error editing message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:308 msgid "Error purguing messages" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:322 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:402 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Stop" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:364 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Sent" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:368 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 msgid "Pending" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:372 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:151 #: ..\../main/gui/progress/statusbarprogreso.cpp:281 msgid "Warning" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:390 msgid "Error getting message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:399 msgid "Running" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:400 msgid "The submission process is started and ready to send" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:404 msgid "Stopped" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:405 msgid "Usually due to an error in sending a message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:407 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:64 #: ..\../main/gui/progress/paneltarea.cpp:31 msgid "Start" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:448 msgid "Would you like to remove these messages?" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7.cpp:454 msgid "Error deleting messages" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:19 msgid "Remove sent messages" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:24 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:31 msgid "Exit" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:27 msgid "Messages" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:30 msgid "Refresh" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:33 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1394 msgid "View" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:53 msgid "Send task status:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:57 msgid "Enabled" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:116 msgid "Message" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:124 msgid "Date:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:132 msgid "Destination:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:140 msgid "Status:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:165 msgid "Message content:" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.cpp:185 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:142 msgid "OK" msgstr "" #: ..\../main/gui/import/generaldata.cpp:182 msgid "Overview data of DICOM files" msgstr "" #: ..\../main/gui/import/generaldata.cpp:186 msgid "DICOM data from the files to be generated can be populated" msgstr "" #: ..\../main/gui/import/generaldata.cpp:210 msgid "" "\n" "* The patient ID is required." msgstr "" #: ..\../main/gui/import/generaldata.cpp:214 msgid "" "\n" "* Concatenation of patient name and surnames can't be higher than 61." msgstr "" #: ..\../main/gui/import/generaldata.cpp:218 msgid "" "\n" "* The format of the height in centimeters is not correct. " msgstr "" #: ..\../main/gui/import/generaldata.cpp:222 msgid "" "\n" "* The patient's birth date is after the date of study" msgstr "" #: ..\../main/gui/import/generaldata.cpp:226 msgid "" "\n" "* The format of the weight is not correct. Valid range is between 0 and 400 " "Kg." msgstr "" #: ..\../main/gui/import/generaldata.cpp:231 msgid "The following errors have occurred when validating fields" msgstr "" #: ..\../main/gui/import/generaldata.cpp:231 msgid "Error validating fields" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:148 msgid "Selecting Import Profile" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:152 msgid "You must select the profile you want to use import" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:170 msgid "You must select the import profile" msgstr "" #: ..\../main/gui/import/pasoperfilimportacion.cpp:188 msgid "Unexpected error, select the module again" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:21 msgid "Selected images" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:56 msgid "Preview" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:62 msgid "Remove all" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:113 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:65 msgid "Demographic data" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:133 msgid "Identificator *" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:144 msgid "(ID or medical history number)" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:159 #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "Birth date" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:183 msgid "Surname" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:191 msgid "Sex" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Male" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Female" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:195 msgid "Others" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:217 msgid "Study Details" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:234 #: ..\../wx/gnkinforme/gnkinformebase.cpp:122 msgid "Weight" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:245 msgid "Kg" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:252 #: ..\../wx/gnkinforme/gnkinformebase.cpp:119 msgid "Height" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:263 msgid "cm" msgstr "" #: ..\../main/gui/import/pasosimportacionbase.cpp:291 #: ..\../main/gui/import/pasosimportacionbase.cpp:333 msgid "Time" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:141 msgid "Path of the location doesn't exists" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:167 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*." "bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|" "PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:169 msgid "" "Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*." "png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG " "Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;" "*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;" "*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files..." msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:191 msgid "Select files from filesystem" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:203 msgid "Paste from clipboard" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:210 msgid "Back" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:291 msgid "Are you sure to delete this file from disk?" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:330 msgid "Delete selected items" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:342 msgid "You must select an image" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:346 msgid "Generating preview..." msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:500 msgid "Select images" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:534 msgid "Creating Thumbnails..." msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:715 msgid "Image selection" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:719 msgid "You must select the images you want to import" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:743 msgid "You must select at least one image" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:760 msgid "The file" msgstr "" #: ..\../main/gui/import/selectimagesimportation.cpp:761 msgid " doesn't exist" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:52 msgid "Image Import Wizard" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:73 #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:75 msgid "Requested module does not support importation" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:88 msgid "There is not registered any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:90 msgid "There aren't any module with importation support" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:93 msgid "Requested module is not registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:95 msgid "The requested module isn't registered" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:167 msgid "free of" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:181 msgid "in dicomization dir." msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:335 msgid "Are you sure you want to cancel the import process?" msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:369 #, c-format msgid "Step %d of %d: " msgstr "" #: ..\../main/gui/import/wxwizardimportacionginkgo.cpp:376 msgid "&End" msgstr "" #: ..\../main/gui/license/aboutdialog.cpp:25 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:22 msgid "Ginkgo CADx" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:31 msgid "Credits" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:55 msgid "Licenses" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:58 msgid "UPDATE_INFO" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:108 #: ..\../main/gui/license/aboutdialogbase.h:88 msgid "Open Source Licenses" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:117 msgid "Cairo" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:118 msgid "DCMTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:119 msgid "FamFamFam Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:120 msgid "Fugue Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:121 msgid "ITK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:122 msgid "LibJpeg" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:123 msgid "LibPng" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:124 msgid "OpenSSL" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:125 msgid "VTK" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:126 msgid "WxWidgets" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:127 msgid "Zlib" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:128 msgid "SQL Lite" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:129 msgid "CharLS" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:130 msgid "Dark Glass Icons" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:131 msgid "Libcurl" msgstr "" #: ..\../main/gui/license/aboutdialogbase.cpp:132 msgid "JsonCpp" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:23 #: ..\../main/gui/license/acceptlicensedialogbase.h:64 msgid "License agreement" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:43 msgid "" "If you accept the terms of the agreement, click \"I Accept the license\" to " "continue. You must accept the license to start using Ginkgo CADx." msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:53 msgid "Check for updates automatically" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:66 msgid "I Accept the license" msgstr "" #: ..\../main/gui/license/acceptlicensedialogbase.cpp:70 msgid "I do NOT accept the license" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Save logs" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:166 msgid "Log file (*.log) | *.log | Text file (*.txt) | *.txt" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:183 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:190 #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:200 msgid "File couldn't be stored " msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogs.cpp:210 msgid "Could not write to file" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:21 msgid "Save log..." msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:26 msgid "Clear log" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:34 msgid "Log" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:72 msgid "Clear" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.cpp:126 msgid "LogText" msgstr "" #: ..\../main/gui/login/dialogologin.cpp:50 msgid "The username or password is incorrect" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:250 msgid "Tasks" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:524 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1107 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1139 msgid "Included in the history ..." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "There is no URL to check updates on the current configuration." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:533 msgid "Check update error" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1072 msgid "" "Semantic/Sintactic error parsing integration URL (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1174 msgid "Malformed XML" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1192 msgid "Error in interpreting the parameters of the command line. (" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1212 #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1216 msgid "" "Semantic/Sintactic error parsing integration XML (see log for details):\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1220 msgid "Error parsing integration XML:\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1224 msgid "PACS error:\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1228 msgid "Error executing WorkFlow\n" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1232 msgid "" "Error executing WorkFlow\n" "Internal Error" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1270 msgid "Close current view" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1271 msgid "Close all views" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "&Exit" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1272 msgid "Exit application" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Full screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1301 msgid "Show full screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1302 msgid "Tab grouping" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1329 msgid "Ginkgo CADx manual ..." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1330 msgid "Open test card" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for updates" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1331 msgid "Check for newest versions" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1332 msgid "Need support ..." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1333 msgid "About " msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:71 msgid "HL7 monitor" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1371 msgid "HL7 message control" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:73 msgid "Log monitor" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1372 msgid "Log monitored" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1390 msgid "&File" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1393 msgid "&Edit" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1397 #: ..\../wx/thumbnailctrl/thumbnailwidget.cpp:148 msgid "&Help" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1444 msgid "Error loading history, Ginkgo CADx will be closed" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1458 msgid "Mosaic" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1662 msgid "Would you like to save the changes in the study:" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1664 msgid "Unsaved data" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "" "Errors have occurred when saving the series.\n" "Would you like to continue closing? " msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1672 msgid "Error saving" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "Full Screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1705 msgid "View Full Screen" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1708 msgid "Tab Regroup" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1709 msgid "&Close" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "&Close all" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1710 msgid "Close all windows" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1728 msgid "Tabbed organization" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "There is not newest Ginkgo CADx versions at this moment." msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1768 msgid "Ginkgo CADx updated" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1782 msgid "New version available (" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipal.cpp:1945 msgid "Internal error during auth process" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:29 msgid "New Update" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:34 msgid "New version available" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:40 msgid "Do not warn me again about this update" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:43 msgid "X" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:45 msgid "Close this notification" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:104 msgid "The following commands will be aborted if you close the application" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:131 msgid "Close Ginkgo CADx" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:132 msgid "Closes the application and aborts pending commands" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:138 msgid "Do not close the application and keep commands running" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:193 #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:138 msgid "User login" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:202 msgid "System authentication" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.cpp:260 msgid "Login" msgstr "" #: ..\../main/gui/open/abrir.cpp:80 ..\../main/gui/open/abrir.cpp:82 msgid "Open..." msgstr "" #: ..\../main/gui/open/opendialogs.cpp:58 msgid "There was an error reading DICOMDIR file" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:62 msgid "Select a valid DICOMDIR file" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:134 msgid "Select dicom dir files you want to acquire" msgstr "" #: ..\../main/gui/open/opendialogs.cpp:180 #: ..\../main/gui/open/opendialogsbase.cpp:170 #: ..\../main/gui/open/opendialogsbase.h:112 msgid "Copy or link" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:22 #: ..\../main/gui/open/opendialogsbase.h:58 msgid "Acquire from DICOM Dir" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:94 #: ..\../main/gui/open/opendialogsbase.h:85 msgid "Select drive" msgstr "" #: ..\../main/gui/open/opendialogsbase.cpp:175 msgid "Do you want to copy or link files?" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:45 #: ..\../main/gui/selectpacsserver/selectpacsserver.cpp:30 msgid "There aren't any PACS configured" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialog.cpp:69 msgid "0000/00/00 00:00:00" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:27 #: ..\../main/gui/pacsupload/pacsuploaddialogbase.h:57 msgid "Upload study" msgstr "" #: ..\../main/gui/pacsupload/pacsuploaddialogbase.cpp:35 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:32 msgid "Select PACS server" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:119 msgid "Metadata" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:120 msgid "Identification information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:121 msgid "Patient information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:122 msgid "Acquisition information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:123 msgid "Relationship information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:124 msgid "Image presentation information" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:125 ..\../widgets/wtextbox.cpp:525 msgid "Text" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:126 msgid "Other" msgstr "" #: ..\../main/gui/paneltags/paneltags.cpp:137 #: ..\../main/gui/paneltags/paneltags.cpp:173 msgid "Data" msgstr "" #: ..\../main/gui/previewpanel/previewpanel.cpp:47 msgid "Hide" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:26 msgid "javi" msgstr "" #: ..\../main/gui/previewpanel/previewpanelbase.cpp:187 #: ..\../main/gui/previewpanel/previewpanelbase.cpp:207 msgid "Previews" msgstr "" #: ..\../main/gui/progress/progresobase.cpp:23 msgid "There is no running tasks" msgstr "" #: ..\../main/gui/progress/statusbarprogreso.cpp:165 msgid "0 running tasks." msgstr "" #: ..\../main/gui/progress/statusbarprogreso.cpp:192 #, c-format msgid "There are %d pending tasks" msgstr "" #: ..\../main/gui/selectpacsserver/selectpacsserverbase.cpp:27 #: ..\../main/gui/selectpacsserver/selectpacsserverbase.h:55 msgid "Select PACS" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:29 msgid "http://ginkgo-cadx.com" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:40 msgid "No suitable for diagnostic usage. Please consider upgrade to" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:47 msgid "Ginkgo CADx Pro" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:55 msgid "" "Remember that when you buy Ginkgo CADx Pro, you are contributing to " "development efforts" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:67 msgid "Powered by" msgstr "" #: ..\../main/gui/startup/startupformbase.cpp:71 msgid "MetaEmotion Healthcare" msgstr "" #: ..\../main/gui/startup/startupview.cpp:144 msgid "Start page" msgstr "" #: ..\../main/managers/widgetsmanager.cpp:1079 msgid "Delete Widget" msgstr "" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Properties ..." msgstr "" #: ..\../main/managers/widgetsmanager.cpp:1090 msgid "Widget Properties" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:114 msgid "Open file" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:115 #: ..\../main/tools/openfoldertool.cpp:27 msgid "Open folder" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:116 #: ..\../main/tools/openremovabletool.cpp:28 msgid "Open removable unit" msgstr "" #: ..\../main/tools/addfiletohistorytool.cpp:117 #: ..\../main/tools/openginkgocloudlinktool.cpp:27 msgid "Open Ginkgo Cloud link" msgstr "" #: ..\../main/tools/angletool.cpp:133 msgid "Normal Angle (3 points)" msgstr "" #: ..\../main/tools/angletool.cpp:134 msgid "Cobb Angle (2 straight lines)" msgstr "" #: ..\../main/tools/colormaptool.cpp:110 msgid "Invert color map" msgstr "" #: ..\../main/tools/cornerannotationstool.cpp:44 msgid "Hide corner annotations" msgstr "" #: ..\../main/tools/cornerannotationstool.cpp:46 msgid "Show corner annotations" msgstr "" #: ..\../main/tools/detachwindowtool.cpp:42 msgid "Attach View" msgstr "" #: ..\../main/tools/detachwindowtool.cpp:44 msgid "Detach view" msgstr "" #: ..\../main/tools/dicomizetool.cpp:28 msgid "Dicomize files" msgstr "" #: ..\../main/tools/exportdicomdirtool.cpp:32 msgid "Export to DICOM Dir" msgstr "" #: ..\../main/tools/markertool.cpp:171 msgid "Point" msgstr "" #: ..\../main/tools/markertool.cpp:172 msgid "Arrow" msgstr "" #: ..\../main/tools/markertool.cpp:173 msgid "Ellipse" msgstr "" #: ..\../main/tools/markertool.cpp:174 msgid "Trapezoid" msgstr "" #: ..\../main/tools/markertool.cpp:175 msgid "Polygon" msgstr "" #: ..\../main/tools/markertool.cpp:176 msgid "Free form" msgstr "" #: ..\../main/tools/metricgridtool.cpp:57 msgid "Grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:67 msgid "Grid Scale" msgstr "" #: ..\../main/tools/metricgridtool.cpp:74 msgid "Scale X" msgstr "" #: ..\../main/tools/metricgridtool.cpp:78 msgid "X axis scale" msgstr "" #: ..\../main/tools/metricgridtool.cpp:87 msgid "Scale Y" msgstr "" #: ..\../main/tools/metricgridtool.cpp:91 msgid "Y axis scale" msgstr "" #: ..\../main/tools/metricgridtool.cpp:206 msgid "Show grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid ..." msgstr "" #: ..\../main/tools/metricgridtool.cpp:207 msgid "Configure Grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:250 msgid "Hide Grid" msgstr "" #: ..\../main/tools/metricgridtool.cpp:252 msgid "Show Grid" msgstr "" #: ..\../main/tools/openfiletool.cpp:28 msgid "Open File" msgstr "" #: ..\../main/tools/pacsuploadtool.cpp:54 msgid "Send to PACS..." msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:59 msgid "Unset pixels blurring" msgstr "" #: ..\../main/tools/pixelsbluringtool.cpp:61 msgid "Set pixels blurring" msgstr "" #: ..\../main/tools/queryretrievehistorytool.cpp:25 msgid "PACS Q/R" msgstr "" #: ..\../main/tools/queryretrievetool.cpp:94 #: ..\../main/tools/searchginkgocloudhistorytool.cpp:28 msgid "Search Ginkgo Cloud" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:151 msgid "Undo rotate and flip" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "Rotate 90" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:153 msgid "counter-clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:154 msgid "clockwise" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:156 msgid "Flip horizontal" msgstr "" #: ..\../main/tools/rotateandfliptool.cpp:157 msgid "Flip vertical" msgstr "" #: ..\../main/tools/sendpacstool.cpp:34 msgid "Send to PACS" msgstr "" #: ..\../main/tools/sendpacstool.cpp:70 msgid "Sending to PACS..." msgstr "" #: ..\../main/tools/showtagstool.cpp:42 msgid "Hide DICOM inspector" msgstr "" #: ..\../main/tools/showtagstool.cpp:44 msgid "Show DICOM inspector" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:119 msgid "Image printing" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:224 msgid "Page setup" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:225 msgid "Print preview" msgstr "" #: ..\../main/tools/simpleprinttool.cpp:272 msgid "Print image" msgstr "" #: ..\../main/tools/toolwindowlevel.cpp:202 msgid "Auto calculate" msgstr "" #: ..\../main/tools/toolzoom.cpp:182 msgid "Reset size to display resolution" msgstr "" #: ..\../main/tools/undotool.cpp:110 msgid "Redo" msgstr "" #: ..\../main/tools/videotool.cpp:150 msgid "Disable loop" msgstr "" #: ..\../main/tools/videotool.cpp:153 msgid "Enable loop" msgstr "" #: ..\../main/tools/videotool.cpp:162 #, c-format msgid "%.1f fps" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:267 msgid "Add column" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:268 msgid "Add row" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:270 msgid "Remove column" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:271 msgid "Remove row" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:276 msgid "1x1 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:277 msgid "1x2 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:278 msgid "2x1 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:279 msgid "2x2 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:280 msgid "3x3 Layout" msgstr "" #: ..\../main/tools/windowlayouttool.cpp:281 msgid "4x4 Layout" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:63 msgid "Module tool still registered when disposing ToolsRegistry" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:82 msgid "The tool is already registered" msgstr "" #: ..\../main/toolsystem/toolsregistry.cpp:187 msgid "The module " msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:49 msgid "Unable to load PNG bitmap resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:56 msgid "Unable to load PNG image resource" msgstr "" #: ..\../resources/ginkgoresourcesmanager.cpp:63 msgid "Unable to load GIF animation resource" msgstr "" #: ..\../widgets/gui/calibracion.cpp:205 msgid "The calibration value must be a decimal number" msgstr "" #: ..\../widgets/gui/calibracion.cpp:209 msgid "Calibration value is too low" msgstr "" #: ..\../widgets/gui/calibracion.cpp:219 msgid "Enter the calibration value" msgstr "" #: ..\../widgets/gui/calibracion.cpp:225 msgid "The calibration value is too low" msgstr "" #: ..\../widgets/gui/calibracion.cpp:229 msgid "The calibration value is too high" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:34 msgid "Calibrating..." msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:47 msgid "Real Measure" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:52 msgid "Distance" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Microns" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Milimeters" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Centimeters" msgstr "" #: ..\../widgets/gui/calibracionbase.cpp:59 msgid "Meters" msgstr "" #: ..\../widgets/gui/selecciontextobase.cpp:26 msgid "Note" msgstr "" #: ..\../widgets/wangulo.cpp:1101 ..\../widgets/wangulo.cpp:1103 msgid "Type" msgstr "" #: ..\../widgets/wangulo.cpp:1101 msgid "Normal" msgstr "" #: ..\../widgets/wangulo.cpp:1103 msgid "Cobb" msgstr "" #: ..\../widgets/welipse.cpp:721 ..\../widgets/wfreeform.cpp:470 #: ..\../widgets/wpolygon.cpp:574 msgid "Center (I)" msgstr "" #: ..\../widgets/welipse.cpp:727 ..\../widgets/wfreeform.cpp:476 #: ..\../widgets/wpolygon.cpp:580 msgid "Center (M)" msgstr "" #: ..\../widgets/welipse.cpp:762 ..\../widgets/welipse.cpp:766 msgid "Greater Radius" msgstr "" #: ..\../widgets/welipse.cpp:763 ..\../widgets/welipse.cpp:767 msgid "Lower Radius" msgstr "" #: ..\../widgets/wfreeform.cpp:482 ..\../widgets/wpolygon.cpp:586 msgid "Number of Vertex" msgstr "" #: ..\../widgets/wpunto.cpp:353 msgid "Position (I)" msgstr "" #: ..\../widgets/wpunto.cpp:358 msgid "Position (M)" msgstr "" #: ..\../widgets/wrule.cpp:558 msgid "Image Calibration" msgstr "" #: ..\../widgets/wrule.cpp:663 msgid "Length" msgstr "" #: ..\../widgets/wrule.cpp:668 msgid "Points (I)" msgstr "" #: ..\../widgets/wrule.cpp:675 msgid "Points (M)" msgstr "" #: ..\../widgets/wtextbox.cpp:445 msgid "Default text" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:41 msgid "Commit date" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:80 msgid "UNKNOW" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:86 msgid "" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:115 msgid "%m/%d/%Y" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:214 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:124 msgid "Commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:219 msgid "Modified" msgstr "" #: ..\../wx/gnkinforme/gnkinformebase.cpp:225 msgid "Not commited" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:42 msgid "NAME SURNAME SECOND_SURNAME" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:52 msgid "644654645" msgstr "" #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:109 #: ..\../wx/gnkinforme/gnkinformebasewx.cpp:130 msgid "Commit inform" msgstr "" #: ..\../wx/propiedades/wxpropiedades.cpp:30 msgid "Properties of " msgstr "" #: ..\../wx/propiedades/wxpropiedadesbase.cpp:31 msgid "Widget's Name" msgstr "" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:54 msgid "< &Previous" msgstr "" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.cpp:64 msgid "&Cancel" msgstr "" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3701 msgid "Regular expression invalid: '" msgstr "" #: ..\../wx/wxsqlite3/wxsqlite3.cpp:3706 #, c-format msgid "REGEXP called with wrong number of arguments: %d instead of 2." msgstr "" #: ..\../api/dicom/imodelodicom.h:700 msgid "Logical error: Study not associated with existent patient in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:728 msgid "Logical error: Serie not associated with existent study in model" msgstr "" #: ..\../api/dicom/imodelodicom.h:757 msgid "Logical error: Image not associated with existent serie in model" msgstr "" #: ..\../commands/dialogopathssobreescribirbase.h:56 msgid "Overwrite Paths" msgstr "" #: ..\../ginkgopro/ginkgo_pro_defines.h:21 msgid "Professional DICOM CADx environment" msgstr "" #: ..\../main/controllers/dcmtk/dicomservers.h:39 msgid "Server not found" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:99 msgid "DICOM Query/Retrieve" msgstr "" #: ..\../main/gui/acquisition/dialogoadquisicionbase.h:123 msgid "Not found" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:418 msgid "Advanced Settings" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:570 msgid "Edit profile" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:665 msgid "Add/Edit Location" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:784 msgid "Add window/level" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1079 msgid "Add tag" msgstr "" #: ..\../main/gui/configuration/panelesconfiguracionginkgobase.h:1099 msgid "Setup window position" msgstr "" #: ..\../main/gui/countdownmessage/countdownmessagebase.h:61 msgid "Closing" msgstr "" #: ..\../main/gui/dicomdirmigration/dicomdirmigrationbase.h:66 msgid "DICOM Dir configuration" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:70 msgid "Open Ginkgo Cloud" msgstr "" #: ..\../main/gui/ginkgocloud/downloadcloudbase.h:123 msgid "Ginkgo Cloud search" msgstr "" #: ..\../main/gui/history3/confirmdeletedialog.h:24 msgid " from History?" msgstr "" #: ..\../main/gui/history3/historypanel3base.h:100 msgid "Medical history" msgstr "" #: ..\../main/gui/history3/historypanel3base.h:161 msgid "Open With ..." msgstr "" #: ..\../main/gui/history3/openwithdialog.h:72 msgid "Select a View" msgstr "" #: ..\../main/gui/hl7controlwindow/ventanacontrolhl7base.h:100 msgid "Message detail" msgstr "" #: ..\../main/gui/logcontrolwindow/ventanacontrollogsbase.h:93 msgid "Log node" msgstr "" #: ..\../main/gui/mainwindow/ventanaprincipalbase.h:87 msgid "Closing Ginkgo CADx" msgstr "" #: ..\../main/gui/paneltags/paneltagsbase.h:57 msgid "DICOM Inspector" msgstr "" #: ..\../main/license.h:31 msgid "Open Source DICOM CADx environment" msgstr "" #: ..\../widgets/gui/calibracionbase.h:65 msgid "Calibration" msgstr "" #: ..\../wx/propiedades/wxpropiedadesbase.h:62 msgid "Properties of ..." msgstr "" #: ..\../wx/thumbnailctrl/thumbnailwidget.h:44 msgid "Image Browser Dialog" msgstr "" #: ..\../wx/wizardginkgo/wxwizardginkgobasewx.h:60 msgid "Test title" msgstr "" ginkgocadx-3.8.7/cadxcore/lang/zh_CN/wxstd.mo000066400000000000000000003703471314736454600211220ustar00rootroot000000000000007M oД?є?Sduȕ >HQ d oz ,ٖ   $1 @K Q\ q}͗ԗۗ )1 BNW]cr{ ˜՘ܘ  7>DL U`fl s ̙ ֙ !( 1>Z j w Ϛؚ 5;BH bou ěқ؛ ߛ $)G4W$!Ӝ*/:F  Ν՝םڝܝ   " - 8 CN P q{ О ݞ %#,/P35ޟ6Kc{ ٠ #<QiΡ(@TX^d my}4.$>Xa t   ϣڣ6!7"<"_:äʤޤ #9Wq ¥2Pjo!"Ӧ-1(Mv {ۧ1(-4<CW fqx Ĩި,GNV0] F)Bau%ʪ#"*7(b&%%ث65"R?uά1 >X$p!Gӭ(7(`-%3ݮ )-Jx į% )H)f ̰)7#a'DZ"$4IR[y  Ʋ زB('9!a+̳"&*#Q$u&Դ 3DKag"~$# +) U(v%$ &'!N&p#"#޷*!-#Os y/, 9$QvN*R(b)ƺ ޺(&?GL$[!%&Ȼ# 4!Npݼ"2'N!vɽ!&!@b(".&':Cb#ʿ('9@z9  +7I M[q,10%@%f#/!#: ^i z - =H P ^~i " "Cf2Qv4"   -DX]bvz)  4Tl $ ESLp5K%i 05fJ,$ ",2H3{$*.Jf -"'0>"o9$0"">&a"$8 "GB!/A.Ml2)24/Q%##3 "?b(~%$ Th*(($$$'Iq"!5 $@e +0"N#q"+'-+'Y"5'&"-ISw/+&',N2{-&&*+Ht(!;)3D2x3-+I$i)2! **C=n4"" ;F` fqx}  /   4& [go'k4 #!# 208c %*%PU Z{'  2Qp / "+ N o' # *66Qmw7$732k)$!?jX%+%/;3k-& - : H*T1(# /Nf66#8JQ1n%!!7Y!s!  &*Q Yc     &/ 8E NZagv { j+=Nh}%4JR6X 0   )#4)X | W a k w    ) 2 > J T a mx      (6H P [ gr&   (/!8"ZC} '+'@INVZl  ,5+1aZ$ 3%T%zF!$'-U)p&  *J[^}7! *Ha0 8(&/6<Zx#(CXh|$%@$]$$$#H$e$$$+PV ^ l w 0  ;"[1~9A{ /#  & 5? HV \j    (9I Zen w H8 R \gp ! 30 d #   $ 4 "; D^      $    + = C  Z f  m w          /  % , O3       <    + 6 Q h  %   ) #)EM?*3Kc~'%*,D\aglr x-1+%%)Ku } 6  $ /<Zx~ #*N_{ /,0He{z(})0o8Te'v&/DUk:TfPy##%.3 G!h'*%AVl0~"A>dM\N7`aVOQ@Y#< ` s B    !1 !>!;W!!!! !!A! "!"&"8"O"%m""""""3"*)# T#u###$###!# $#?$ c$&$3$#$%*%$G% l%&%%%%"&4& =& G&R&W&,h&&$&&&$&''A'$Y''~''''"''#(?(]( |((!((($)#8)$\)#)))!)*"*?*\*z** *** +++++W+v+'+++++ ,,:,S,s,+,, ,,,--- 5-"?-b-v-|-- ----.(. .. ;. H.,V. ...(.. ./ /#/ 9/ F/ P/[/ k/ v/////"/./-.0\0w00&000 0 1111E1\1r11 1"1 11!1 2"92\2,w2212$2%3?3.C3 r3/3<34 444 $4 14;=4y4: 5D50`5=5;5> 6;J6566S7i7m79*8,d88.[9-9!9 99: :*: ;:E:[:!z::):>:;#/;/S;0;;-;<<*4<(_<#<'<'<"<= 6= W= x=!=$==)=>>#.>R>W>\>p>"x> >>>/>>>?#!?E?/d?? ??4?!?8@9R@.@@@ @ @@@AA+&A"RA#uA AAAAAA AB BB($BMBTBYB`BpB"tB BBBBBB B&B) C3CGC NC YCeCmCsC CC-CCCC DD*D$IB@IIIIIIIII!I"I"JAJ `JJJ J J J J JJ J$JK K#K4K FK QK\KmK ~K K KKK K K KK K L L"L 4L ?L JL UL aL lLwLLL LL L L L LL M M %M 0M ;MFM XM cM nMzM M MM M M MMMM N N N +N9N JNUN]NfN xN NN N N NNNNNO O "O .O 9OGOYO jO uOOO OO OO O O P P P%P Y4wYYYYY Y Z ZZ!Z(Z=ZPZ gZtZ+ZZZZ"Z@ [L[S[c[}[[[[[ ['[\2\'N\'v\)\\\ ]'!]I]e]j] ]]]#]'^)*^T^[^b^ t^^%^ ^^-^____$_ 8_ E_R_Y_q_ __ _ ____`1`N`U` ]`-g``` ``6``)a;aVaiaaa#aaa)b*=b$hb!b!b-bbc-:chc~cGc'cd#d$e!ce1eee-ef.f!Ff'hf'ffff-g=g Zg{g'ggg!gh%-hShjhhh hhh hhhii%i ,i:iMi `i mi9zi i'ii*j-jFj_jujjjjjj k k k *k*7k bkmk}kkkkkkl! lBl^l}lllllm"m!>m!`mm!mmmm nn"n2n9n/@npnxnnnnnGn).oEXo(o o'oopp&p*-pXp_pzpp ppppppq3qJqfq|qqqqqqr*rIr_rurrrrrrs$-sRshs)s'ssFs*.5<Uhx ǔ̔)є'<C]d z  0ҕ   #0I N$Z55$#Bf ŗ6їHjQ55,D]$|!Úmߚ!M*o*, &-=D_'f   1ۜ '@^y5˝5!74Y!0$)>[pԟ!!'C k u  Š Ϡ٠     ( 4>G P] fry  +ס%-%Sy'"!#E_f5j* ӣ '*0'[  ϤaԤ 6 D N Z e pz   å ѥ ݥ      ! - 7 D P[m v     æ Цڦ     $+ ; IW"o  ɧ ק  !:-\Ш/I c p z   !۩(&9Ҫ$\$%$̫9 D ]*j!Ӭ׬+ %3 :Dah  !ݭ  +(5^t'*î  8Se}#ү ":!Vx& &ܰ.'2/Z&.&.&6.]&.&. &8._&.&. :@ G S `m q ~* ʴ Ѵ޴"4Qm-5$Jo  Ķζֶݶ    +?Xh x  ʷ ۷    9 OY<`.̸Ը۸   07=F[bi*d˹0J Q _mt?к  *IMaqx  ɻһٻ  "A`gHn ļ̼ 3 @ Q^qǽ*,$3Q 3þʾ  !(J]x ſؿ!%-G6u'$*$ +8#?cks z'  ** 7>EV]a} "3KRb.i'$  # -7 GT g^t!)b8X $& 6@Vo'!   " ,9HXn *$  5 N[t$  $ `1*PE)o!U;G32{J!,B= $+9NU l vL ((Hq*t,# .Jb !,7N0Ke   !. =+^+ ++/N mz 6Rn 0@PW+n*1 CPi# - 4A T_ ~!!#*F M Z g*u #   + E R \g w !)':b% !4H\s  %:%Pv*1/,?l)p!*/  "-4;U.k{'>T#p!$!&h$";"^,#$Pu(   #7[#s.).61h.'&&!D'f' '*Rn'  $ @J Q0[65 NX7_):754jq x 2!@\qx  ,  # ' H U_uy +(  % 8B6I    ( )20c jt{    '  " /P c m w *2"A6d.=rCfjn}gh#~Wg,aA:[6zJf0+K/lTW:Dh{4o{#5TGwxPk}S3Vony? UdH \h)""fiO9mWn6pO1ie `E3;V$wC+NI,V_t[utU?h  %+N wq)^;q/aFk'ZX")v?|X8_;o/`G$G-OkuP lhqKQIyZ]tSWza*N{$2X /l*IDM@UK5X]a 4J:Y'1uQ{2&xnSZU:\KH=C~9-c%*eE{L-L#/g'<Tm_ HeN@C+e[BS]o8 W;B}Mr "TkmJ-LQEw<j.s[HY|V*,;c75BI'7Rf!<ZD(B%bl5L<$C|PJ.20-F,!1wvyv0I3y"n\dbt3ASMAM!p="iXF Na[u5d5>N/{9*V{<4NR1E; Qt`>HkCc_)\ lbM!1JP]+=KQ^q`.F 5r. g>A^!)A! ~y& R$j j+s>}_;Ki`GRx%E,1XmA2k$#@Z0rSQ=lp'bt\cY_ Gjavz g~p byVRe("9\af@,u^` sDqeg%>GMic)[kcZ|WsPB U8)L( h^ 4?rCm^%]*W`g76D>%O6$&O]'46<\x2?xm @LrZ_@-Pdd?Qo22w=i8 eY<z3.:47 lyY:.7h #vb*0?!JM'(|si87DVH+ -SqEd|}Y]z&:fR&F v&BOp u1mB~Otn(Tsc#3}w/I},j 9jU od~sDUGYFp6RJ[00 .#9zT94(pu8|(@ n6>PXq&A HILbTo^F= ~xfxEKzv87r3  Please send this report to the program maintainer, thank you! Thank you and we're sorry for the inconvenience! (copy %d of %d) (error %ld: %s) (in module "%s") - Preview bold italic light#10 Envelope, 4 1/8 x 9 1/2 in#11 Envelope, 4 1/2 x 10 3/8 in#12 Envelope, 4 3/4 x 11 in#14 Envelope, 5 x 11 1/2 in#9 Envelope, 3 7/8 x 8 7/8 in%d of %lu%i of %i%ld byte%ld bytes%lu of %lu%s (or %s)%s Error%s Information%s Preferences%s Warning%s did not fit the tar header for entry '%s'%s files (%s)|%s&About&Actual Size&After a paragraph:&Alignment&Apply&Apply Style&Arrange Icons&Ascending&Back&Based on:&Before a paragraph:&Bg colour:&Bold&Bottom&Bottom:&Bullet style:&CD-Rom&Cancel&Cascade&Character code:&Clear&Close&Color&Colour:&Convert&Copy&Copy URL&Customize...&Debug report preview:&Delete&Delete Style...&Descending&Details&Down&Edit&Edit Style...&Execute&File&Find&Finish&First&Floating mode:&Floppy&Font&Font family:&Font for Level...&Font:&Forward&From:&Harddisk&Height:&Help&Hide details&Home&Indentation (tenths of a mm)&Index&Info&Italic&Jump to&Justified&Last&Left&Left:&List level:&Log&Move&Move the object to:&Network&New&Next&Next >&Next Paragraph&Next Tip&Next style:&No&Notes:&Number:&OK&Open...&Outline level:&Page Break&Paste&Picture&Point size:&Position (tenths of a mm):&Position mode:&Preferences&Previous&Previous Paragraph&Print...&Properties&Quit&Redo&Redo &Rename Style...&Replace&Restart numbering&Restore&Right&Right:&Save&Save as&See details&Show tips at startup&Size&Size:&Skip&Spacing (tenths of a mm)&Spell Check&Stop&Strikethrough&Style:&Styles:&Subset:&Symbol:&Table&Top&Top:&Underline&Underlining:&Undo&Undo &Unindent&Up&Vertical alignment:&View...&Weight:&Width:&Window&Yes'%s' has extra '..', ignored.'%s' is invalid'%s' is not a correct numeric value for option '%s'.'%s' is not a valid message catalog.'%s' is probably a binary buffer.'%s' should be numeric.'%s' should only contain ASCII characters.'%s' should only contain alphabetic characters.'%s' should only contain alphabetic or numeric characters.'%s' should only contain digits.(*)(Help)(None)(Normal text)(bookmarks)(none)**)+, 64-bit edition-...1.11.21.31.41.51.61.71.81.910 x 11 in10 x 14 in11 x 17 in12 x 11 in15 x 11 in26 3/4 Envelope, 3 5/8 x 6 1/2 in9 x 11 in: file does not exist!: unknown charset: unknown encoding< &BackBold italic face.
    bold italic underlined
    Bold face. Italic face. >A debug report has been generated in the directory A debug report has been generated. It can be found inA non empty collection must consist of 'element' nodesA standard bullet name.A0 sheet, 841 x 1189 mmA1 sheet, 594 x 841 mmA2 420 x 594 mmA3 Extra 322 x 445 mmA3 Extra Transverse 322 x 445 mmA3 Rotated 420 x 297 mmA3 Transverse 297 x 420 mmA3 sheet, 297 x 420 mmA4 Extra 9.27 x 12.69 inA4 Plus 210 x 330 mmA4 Rotated 297 x 210 mmA4 Transverse 210 x 297 mmA4 sheet, 210 x 297 mmA4 small sheet, 210 x 297 mmA5 Extra 174 x 235 mmA5 Rotated 210 x 148 mmA5 Transverse 148 x 210 mmA5 sheet, 148 x 210 mmA6 105 x 148 mmA6 Rotated 148 x 105 mmABCDEFGabcdefg12345ADDASCIIAboutAbout %sActual SizeAddAdd current page to bookmarksAdd to custom coloursAddToPropertyCollection called on a generic accessorAddToPropertyCollection called w/o valid adderAdding book %sAdding flavor TEXT failedAdding flavor utxt failedAdvancedAfter a paragraph:Align LeftAlign RightAlignmentAllAll files (%s)|%sAll files (*)|*All files (*.*)|*.*All stylesAlphabetic ModeAlready Registered Object passed to SetObjectClassInfoAlready dialling ISP.Alt+And includes the following files: Animation file is not of type %ld.Append log to file '%s' (choosing [No] will overwrite it)?ApplyArabicArabic (ISO-8859-6)Argument %u not found.ArtistsAscendingAttributesAvailable fonts.B4 (ISO) 250 x 353 mmB4 (JIS) Rotated 364 x 257 mmB4 Envelope, 250 x 353 mmB4 sheet, 250 x 354 mmB5 (ISO) Extra 201 x 276 mmB5 (JIS) Rotated 257 x 182 mmB5 (JIS) Transverse 182 x 257 mmB5 Envelope, 176 x 250 mmB5 sheet, 182 x 257 millimeterB6 (JIS) 128 x 182 mmB6 (JIS) Rotated 182 x 128 mmB6 Envelope, 176 x 125 mmBACKBMP: Couldn't allocate memory.BMP: Couldn't save invalid image.BMP: Couldn't write RGB color map.BMP: Couldn't write data.BMP: Couldn't write the file (Bitmap) header.BMP: Couldn't write the file (BitmapInfo) header.BMP: wxImage doesn't have own wxPalette.BackBackgroundBackground &colour:Background colourBaltic (ISO-8859-13)Baltic (old) (ISO-8859-4)Before a paragraph:BitmapBitmap renderer cannot render value; value type: BoldBorderBordersBottomBottom margin (mm):Box PropertiesBox stylesBrowseBullet &Alignment:Bullet styleBulletsC sheet, 17 x 22 inC&learC&olour:C3 Envelope, 324 x 458 mmC4 Envelope, 229 x 324 mmC5 Envelope, 162 x 229 mmC6 Envelope, 114 x 162 mmC65 Envelope, 114 x 229 mmCANCELCAPITALCD-RomCHM handler currently supports only local files!CLEARCOMMANDCa&pitalsCan't &Undo Can't automatically determine the image format for non-seekable input.Can't close registry key '%s'Can't copy values of unsupported type %d.Can't create registry key '%s'Can't create threadCan't create window of class %sCan't delete key '%s'Can't delete the INI file '%s'Can't delete value '%s' from key '%s'Can't enumerate subkeys of key '%s'Can't enumerate values of key '%s'Can't export value of unsupported type %d.Can't find current position in file '%s'Can't get info about registry key '%s'Can't initialize zlib deflate stream.Can't initialize zlib inflate stream.Can't monitor non-existent directory "%s" for changes.Can't open registry key '%s'Can't read from inflate stream: %sCan't read inflate stream: unexpected EOF in underlying stream.Can't read value of '%s'Can't read value of key '%s'Can't save image to file '%s': unknown extension.Can't save log contents to file.Can't set thread priorityCan't set value of '%s'Can't write to child process's stdinCan't write to deflate stream: %sCancelCannot create mutex.Cannot create new column's ID. Probably max. number of columns reached.Cannot enumerate files '%s'Cannot enumerate files in directory '%s'Cannot find active dialup connection: %sCannot find the location of address book fileCannot get an active instance of "%s"Cannot get priority range for scheduling policy %d.Cannot get the hostnameCannot get the official hostnameCannot hang up - no active dialup connection.Cannot initialize OLECannot initialize socketsCannot load icon from '%s'.Cannot load resources from '%s'.Cannot load resources from file '%s'.Cannot open HTML document: %sCannot open HTML help book: %sCannot open contents file: %sCannot open file for PostScript printing!Cannot open index file: %sCannot open resources file '%s'.Cannot print empty page.Cannot read typename from '%s'!Cannot resume thread %luCannot resume thread %lxCannot retrieve thread scheduling policy.Cannot set locale to language "%s".Cannot start thread: error writing TLS.Cannot suspend thread %luCannot suspend thread %lxCannot wait for thread terminationCase sensitiveCategorized ModeCell PropertiesCeltic (ISO-8859-14)Cen&tredCenteredCentral European (ISO-8859-2)CentreCentre text.CentredCh&oose...Change List StyleChange Object StyleChange PropertiesChange StyleChanges won't be saved to avoid overwriting the existing file "%s"Character stylesCheck to add a period after the bullet.Check to add a right parenthesis.Check to enclose the bullet in parentheses.Check to make the font bold.Check to make the font italic.Check to make the font underlined.Check to restart numbering.Check to show a line through the text.Check to show the text in capitals.Check to show the text in subscript.Check to show the text in superscript.Choose ISP to dialChoose a directory:Choose a fileChoose colourChoose fontCircular dependency involving module "%s" detected.Cl&oseClass not registered.ClearClear the log contentsClick to apply the selected style.Click to browse for a symbol.Click to cancel changes to the font.Click to cancel the font selection.Click to change the font colour.Click to change the text background colour.Click to change the text colour.Click to choose the font for this level.Click to close this window.Click to confirm changes to the font.Click to confirm the font selection.Click to create a new box style.Click to create a new character style.Click to create a new list style.Click to create a new paragraph style.Click to create a new tab position.Click to delete all tab positions.Click to delete the selected style.Click to delete the selected tab position.Click to edit the selected style.Click to rename the selected style.CloseClose AllClose current documentClose this windowColorColourColour selection dialog failed with error %0lx.Colour:Column could not be added.Column description could not be initialized.Column index not found.Column width could not be determinedColumn width could not be set.Command line argument %d couldn't be converted to Unicode and will be ignored.Common dialog failed with error code %0lx.Compositing not supported by this system, please enable it in your Window Manager.Compressed HTML Help file (*.chm)|*.chm|ComputerConfig entry name cannot start with '%c'.ConfirmConfirm registry updateConnecting...ContentsConversion to charset '%s' doesn't work.ConvertCopied to clipboard:"%s"Copies:CopyCopy selectionCould not create temporary file '%s'Could not determine column index.Could not determine column's positionCould not determine number of columns.Could not determine number of itemsCould not extract %s into %s: %sCould not find tab for idCould not get header description.Could not get items.Could not get property flags.Could not get selected items.Could not locate file '%s'.Could not remove column.Could not retrieve number of itemsCould not set alignment.Could not set column width.Could not set current working directoryCould not set header description.Could not set icon.Could not set maximum width.Could not set minimum width.Could not set property flags.Could not start document preview.Could not start printing.Could not transfer data to windowCouldn't acquire a mutex lockCouldn't add an image to the image list.Couldn't create a timerCouldn't create the overlay windowCouldn't find symbol '%s' in a dynamic libraryCouldn't get hatch style from wxBrush.Couldn't get the current thread pointerCouldn't load a PNG image - file is corrupted or not enough memory.Couldn't load sound data from '%s'.Couldn't obtain folder nameCouldn't open audio: %sCouldn't register clipboard format '%s'.Couldn't release a mutexCouldn't retrieve information about list control item %d.Couldn't save PNG image.Couldn't terminate threadCreate Parameter %s not found in declared RTTI ParametersCreate directoryCreate new directoryCtrl+Cu&tCurrent directory:Custom sizeCustomize ColumnsCutCut selectionCyrillic (ISO-8859-5)D sheet, 22 x 34 inDDE poke request failedDECIMALDELDELETEDIB Header: Encoding doesn't match bitdepth.DIB Header: Image height > 32767 pixels for file.DIB Header: Image width > 32767 pixels for file.DIB Header: Unknown bitdepth in file.DIB Header: Unknown encoding in file.DIVIDEDL Envelope, 110 x 220 mmDOWNData object has invalid data formatDate renderer cannot render value; value type: Debug report "%s"Debug report couldn't be created.Debug report generation has failed.DecorativeDefault encodingDefault fontDefault printerDeleteDelete A&llDelete StyleDelete TextDelete itemDelete selectionDelete style %s?Deleted stale lock file '%s'.Dependency "%s" of module "%s" doesn't exist.DescendingDesktopDeveloped by DevelopersDial up functions are unavailable because the remote access service (RAS) is not installed on this machine. Please install it.Did you know...DirectFB error %d occurred.DirectoriesDirectory '%s' couldn't be createdDirectory '%s' couldn't be deletedDirectory does not existDirectory doesn't exist.Discard changes and reload the last saved version?Display all index items that contain given substring. Search is case insensitive.Display options dialogDo you want to overwrite the command used to %s files with extension "%s" ? Current value is %s, New value is %s %1Do you want to save changes to %s?Document:Documentation by Documentation writersDon't SaveDoneDone.Double Japanese Postcard Rotated 148 x 200 mmDoubly used id : %dDownDragE sheet, 34 x 44 inENDENTEREOF while reading from inotify descriptorESCESCAPEEXECUTEEditEdit itemElapsed time:Enable the height value.Enable the maximum width value.Enable the minimum height value.Enable the minimum width value.Enable the width value.Enable vertical alignment.Enables a background colour.Enter a box style nameEnter a character style nameEnter a list style nameEnter a new style nameEnter a paragraph style nameEnter command to open file "%s":Entries foundEnvelope Invite 220 x 220 mmEnvironment variables expansion failed: missing '%c' at position %u in '%s'.ErrorError closing epoll descriptorError closing kqueue instanceError creating directoryError in reading image DIB.Error in resource: %sError reading config options.Error saving user configuration data.Error while printing: Error: Esperanto (ISO-8859-3)Estimated time:Event queue overflowedExecutable files (*.exe)|*.exe|ExecuteExecution of command '%s' failedExecution of command '%s' failed with error: %ulExecutive, 7 1/4 x 10 1/2 inExporting registry key: file "%s" already exists and won't be overwritten.Extended Unix Codepage for Japanese (EUC-JP)Extraction of '%s' into '%s' failed.FFace NameFailed to access lock file.Failed to add descriptor %d to epoll descriptor %dFailed to allocate %luKb of memory for bitmap data.Failed to allocate colour for OpenGLFailed to change video modeFailed to check format of image file "%s".Failed to clean up debug report directory "%s"Failed to close file handleFailed to close lock file '%s'Failed to close the clipboard.Failed to close the display "%s"Failed to connect: missing username/password.Failed to connect: no ISP to dial.Failed to convert file "%s" to Unicode.Failed to copy dialog contents to the clipboard.Failed to copy registry value '%s'Failed to copy the contents of registry key '%s' to '%s'.Failed to copy the file '%s' to '%s'Failed to copy the registry subkey '%s' to '%s'.Failed to create DDE stringFailed to create MDI parent frame.Failed to create a temporary file nameFailed to create an anonymous pipeFailed to create an instance of "%s"Failed to create connection to server '%s' on topic '%s'Failed to create cursor.Failed to create directory "%s"Failed to create directory '%s' (Do you have the required permissions?)Failed to create epoll descriptorFailed to create registry entry for '%s' files.Failed to create the standard find/replace dialog (error code %d)Failed to display HTML document in %s encodingFailed to empty the clipboard.Failed to enumerate video modesFailed to establish an advise loop with DDE serverFailed to establish dialup connection: %sFailed to execute '%s' Failed to execute curl, please install it in PATH.Failed to find CLSID of "%s"Failed to find match for regular expression: %sFailed to get ISP names: %sFailed to get data from the clipboardFailed to get the local system timeFailed to get the working directoryFailed to initialize GUI: no built-in themes found.Failed to initialize MS HTML Help.Failed to initialize OpenGLFailed to initiate dialup connection: %sFailed to insert text in the control.Failed to inspect the lock file '%s'Failed to install signal handlerFailed to join a thread, potential memory leak detected - please restart the programFailed to kill process %dFailed to load bitmap "%s" from resources.Failed to load icon "%s" from resources.Failed to load image %%d from file '%s'.Failed to load image %d from stream.Failed to load image from file "%s".Failed to load metafile from file "%s".Failed to load mpr.dll.Failed to load resource "%s".Failed to load shared library '%s'Failed to lock resource "%s".Failed to lock the lock file '%s'Failed to modify descriptor %d in epoll descriptor %dFailed to modify file times for '%s'Failed to monitor I/O channelsFailed to open '%s' for readingFailed to open '%s' for writingFailed to open CHM archive '%s'.Failed to open URL "%s" in default browser.Failed to open temporary file.Failed to open the clipboard.Failed to parse Plural-Forms: '%s'Failed to put data on the clipboardFailed to read PID from lock file.Failed to read config options.Failed to read document from the file "%s".Failed to read event from DirectFB pipeFailed to redirect child process input/outputFailed to redirect the child process IOFailed to register DDE server '%s'Failed to remember the encoding for the charset '%s'.Failed to remove debug report file "%s"Failed to remove lock file '%s'Failed to remove stale lock file '%s'.Failed to rename registry value '%s' to '%s'.Failed to rename the file '%s' to '%s' because the destination file already exists.Failed to rename the registry key '%s' to '%s'.Failed to retrieve data from the clipboard.Failed to retrieve file times for '%s'Failed to retrieve text of RAS error messageFailed to retrieve the supported clipboard formatsFailed to save the bitmap image to file "%s".Failed to send DDE advise notificationFailed to set FTP transfer mode to %s.Failed to set clipboard data.Failed to set permissions on lock file '%s'Failed to set process priorityFailed to set temporary file permissionsFailed to set thread priority %d.Failed to set up non-blocking pipe, the program might hang.Failed to store image '%s' to memory VFS!Failed to switch DirectFB pipe to non-blocking modeFailed to switch wake up pipe to non-blocking modeFailed to terminate a thread.Failed to terminate the advise loop with DDE serverFailed to terminate the dialup connection: %sFailed to touch the file '%s'Failed to unlock lock file '%s'Failed to unregister DDE server '%s'Failed to update user configuration file.Failed to upload the debug report (error code %d).Failed to write to lock file '%s'FalseFileFile "%s" could not be opened for reading.File "%s" could not be opened for writing.File '%s' already exists, do you really want to overwrite it?File '%s' already exists. Do you want to replace it?File '%s' couldn't be removedFile '%s' couldn't be renamed '%s'File couldn't be loaded.File errorFile name exists already.FilesFiles (%s)FilterFindFirstFirst pageFixedFixed font:Fixed size face.
    bold italic FloatingFloppyFolio, 8 1/2 x 13 inFontFont &weight:Font size:Font st&yle:Font:Fonts index file %s disappeared while loading fonts.Fork failedForwardForward hrefs are not supportedFound %i matchesFrom:GIF: Invalid gif index.GIF: data stream seems to be truncated.GIF: error in GIF image format.GIF: not enough memory.GIF: unknown error!!!GTK+ installed on this machine is too old to support screen compositing, please install GTK+ 2.12 or later.GTK+ themeGeneralGeneric PostScriptGerman Legal Fanfold, 8 1/2 x 13 inGerman Std Fanfold, 8 1/2 x 12 inGetProperty called w/o valid getterGetPropertyCollection called on a generic accessorGetPropertyCollection called w/o valid collection getterGo backGo forwardGo one level up in document hierarchyGo to home directoryGo to parent directoryGraphics art by Greek (ISO-8859-7)Gzip not supported by this version of zlibHELPHOMEHTML Help Project (*.hhp)|*.hhp|HTML anchor %s does not exist.HTML files (*.html;*.htm)|*.html;*.htm|HarddiskHebrew (ISO-8859-8)HelpHelp Browser OptionsHelp IndexHelp PrintingHelp TopicsHelp books (*.htb)|*.htb|Help books (*.zip)|*.zip|Help directory "%s" not found.Help file "%s" not found.Help: %sHide %sHide OthersHide this notification message.HomeHome directoryHow the object will float relative to the text.ICO: Error in reading mask DIB.ICO: Error writing the image file!ICO: Image too tall for an icon.ICO: Image too wide for an icon.ICO: Invalid icon index.IFF: data stream seems to be truncated.IFF: error in IFF image format.IFF: not enough memory.IFF: unknown error!!!INSINSERTISO-2022-JPIcon & text renderer cannot render value; value type: If possible, try changing the layout parameters to make the printout more narrow.If you have any additional information pertaining to this bug report, please enter it here and it will be joined to it:If you wish to suppress this debug report completely, please choose the "Cancel" button, but be warned that it may hinder improving the program, so if at all possible please do continue with the report generation. Ignoring value "%s" of the key "%s".Illegal Object Class (Non-wxEvtHandler) as Event SourceIllegal Parameter Count for ConstructObject MethodIllegal Parameter Count for Create MethodIllegal directory name.Illegal file specification.Image and mask have different sizes.Image file is not of type %d.Image is not of type %s.Impossible to create a rich edit control, using simple text control instead. Please reinstall riched32.dllImpossible to get child process inputImpossible to get permissions for file '%s'Impossible to overwrite the file '%s'Impossible to set permissions for the file '%s'Incorrect GIF frame size (%u, %d) for the frame #%uIncorrect number of arguments.IndentIndents && SpacingIndexIndian (ISO-8859-12)InfoInitialization failed in post init, aborting.InsertInsert ImageInsert ObjectInsert TextInserts a page break before the paragraph.Invalid GTK+ command line option, use "%s --help"Invalid TIFF image index.Invalid data view itemInvalid display mode specification '%s'.Invalid geometry specification '%s'Invalid inotify event for "%s"Invalid lock file '%s'.Invalid message catalog.Invalid or Null Object ID passed to GetObjectClassInfoInvalid or Null Object ID passed to HasObjectClassInfoInvalid regular expression '%s': %sInvalid value %ld for a boolean key "%s" in config file.ItalicItaly Envelope, 110 x 230 mmJPEG: Couldn't load - file is probably corrupted.JPEG: Couldn't save image.Japanese Double Postcard 200 x 148 mmJapanese Envelope Chou #3Japanese Envelope Chou #3 RotatedJapanese Envelope Chou #4Japanese Envelope Chou #4 RotatedJapanese Envelope Kaku #2Japanese Envelope Kaku #2 RotatedJapanese Envelope Kaku #3Japanese Envelope Kaku #3 RotatedJapanese Envelope You #4Japanese Envelope You #4 RotatedJapanese Postcard 100 x 148 mmJapanese Postcard Rotated 148 x 100 mmJump toJustifiedJustify text left and right.KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UPL&ine spacing:LEFTLandscapeLastLast pageLast repeated message ("%s", %lu time) wasn't outputLast repeated message ("%s", %lu times) wasn't outputLedger, 17 x 11 inLeftLeft (&first line):Left margin (mm):Left-align text.Legal Extra 9 1/2 x 15 inLegal, 8 1/2 x 14 inLetter Extra 9 1/2 x 12 inLetter Extra Transverse 9.275 x 12 inLetter Plus 8 1/2 x 12.69 inLetter Rotated 11 x 8 1/2 inLetter Small, 8 1/2 x 11 inLetter Transverse 8 1/2 x 11 inLetter, 8 1/2 x 11 inLicenseLightLine %lu of map file "%s" has invalid syntax, skipped.Line spacing:Link contained '//', converted to absolute link.List StyleList stylesLists font sizes in points.Lists the available fonts.Load %s fileLoading : Lock file '%s' has incorrect owner.Lock file '%s' has incorrect permissions.Log saved to the file '%s'.Lower case lettersLower case roman numeralsMDI childMENUMS HTML Help functions are unavailable because the MS HTML Help library is not installed on this machine. Please install it.Ma&ximizeMacArabicMacArmenianMacBengaliMacBurmeseMacCelticMacCentralEurRomanMacChineseSimpMacChineseTradMacCroatianMacCyrillicMacDevanagariMacDingbatsMacEthiopicMacExtArabicMacGaelicMacGeorgianMacGreekMacGujaratiMacGurmukhiMacHebrewMacIcelandicMacJapaneseMacKannadaMacKeyboardGlyphsMacKhmerMacKoreanMacLaotianMacMalayalamMacMongolianMacOriyaMacRomanMacRomanianMacSinhaleseMacSymbolMacTamilMacTeluguMacThaiMacTibetanMacTurkishMacVietnameseMake a selection:MarginsMatch caseMax height:Max width:Media playback error: %sMemory VFS already contains file '%s'!MenuMessageMetal themeMethod or property not found.Mi&nimizeMin height:Min width:Missing a required parameter.ModernModifiedModule "%s" initialization failedMonarch Envelope, 3 7/8 x 7 1/2 inMonitoring individual files for changes is not supported currently.Move downMove upMoves the object to the next paragraph.Moves the object to the previous paragraph.Multiple Cell PropertiesNUM_LOCKNameNetworkNewNew &Box Style...New &Character Style...New &List Style...New &Paragraph Style...New StyleNew directoryNew itemNewNameNextNext pageNoNo column existing.No column for the specified column existing.No column for the specified column position existing.No default application configured for HTML files.No entries found.No font for displaying text in encoding '%s' found, but an alternative encoding '%s' is available. Do you want to use this encoding (otherwise you will have to choose another one)?No font for displaying text in encoding '%s' found. Would you like to select a font to be used for this encoding (otherwise the text in this encoding will not be shown correctly)?No handler found for animation type.No handler found for image type.No image handler for type %d defined.No image handler for type %s defined.No matching page found yetNo renderer or invalid renderer type specified for custom data column.No renderer specified for column.No soundNo unused colour in image being masked.No unused colour in image.No valid mappings found in the file "%s".NoneNordic (ISO-8859-10)NormalNormal face
    and underlined. Normal font:Not %sNot availableNote, 8 1/2 x 11 inNoticeNumber of columns could not be determined.Numbered outlineOKOLE Automation error in %s: %sObject PropertiesObject implementation does not support named arguments.Objects must have an id attributeOpen FileOpen HTML documentOpen file "%s"Open...OpenGL function "%s" failed: %s (error %d)Operation not permitted.Option '%s' requires a value.Option '%s': '%s' cannot be converted to a date.OptionsOrientationOut of window IDs. Recommend shutting down application.Overflow while coercing argument values.PAGEDOWNPAGEUPPAUSEPCX: couldn't allocate memoryPCX: image format unsupportedPCX: invalid imagePCX: this is not a PCX file.PCX: unknown error !!!PCX: version number too lowPGDNPGUPPNM: Couldn't allocate memory.PNM: File format is not recognized.PNM: File seems truncated.PRC 16K 146 x 215 mmPRC 16K RotatedPRC 32K 97 x 151 mmPRC 32K RotatedPRC 32K(Big) 97 x 151 mmPRC 32K(Big) RotatedPRC Envelope #1 102 x 165 mmPRC Envelope #1 Rotated 165 x 102 mmPRC Envelope #10 324 x 458 mmPRC Envelope #10 Rotated 458 x 324 mmPRC Envelope #2 102 x 176 mmPRC Envelope #2 Rotated 176 x 102 mmPRC Envelope #3 125 x 176 mmPRC Envelope #3 Rotated 176 x 125 mmPRC Envelope #4 110 x 208 mmPRC Envelope #4 Rotated 208 x 110 mmPRC Envelope #5 110 x 220 mmPRC Envelope #5 Rotated 220 x 110 mmPRC Envelope #6 120 x 230 mmPRC Envelope #6 Rotated 230 x 120 mmPRC Envelope #7 160 x 230 mmPRC Envelope #7 Rotated 230 x 160 mmPRC Envelope #8 120 x 309 mmPRC Envelope #8 Rotated 309 x 120 mmPRC Envelope #9 229 x 324 mmPRC Envelope #9 Rotated 324 x 229 mmPRINTPage %dPage %d of %dPage SetupPage setupPagesPaper sizeParagraph stylesPassing a already registered object to SetObjectPastePaste selectionPermissionsPicture PropertiesPipe creation failedPlease choose a valid font.Please choose an existing file.Please choose the page to display:Please choose which ISP do you want to connect toPlease install a newer version of comctl32.dll (at least version 4.70 is required but you have %d.%02d) or this program won't operate correctly.Please select the columns to show and define their order:Please wait while printing...Point SizePointer to data view control not set correctly.Pointer to model not set correctly.PortraitPositionPostScript filePreferencesPreferences...PreparingPreview:Previous pagePrintPrint PreviewPrint Preview FailurePrint RangePrint SetupPrint in colourPrint previe&w...Print preview creation failed.Print preview...Print spoolingPrint this pagePrint to FilePrint...PrinterPrinter command:Printer optionsPrinter options:Printer...Printer:PrintingPrinting Printing ErrorPrinting page %d of %dPrinting page %d...Printing...PrintoutProcessing debug report has failed, leaving the files in "%s" directory.Progress renderer cannot render value type; value type: Progress:PropertiesPropertyProperty ErrorQuarto, 215 x 275 mmQuestionQuitQuit %sQuit this programRETURNRIGHTRawCtrl+Read error on file '%s'ReadyRedoRedo last actionRefreshRegistry key '%s' already exists.Registry key '%s' does not exist, cannot rename it.Registry key '%s' is needed for normal system operation, deleting it will leave your system in unusable state: operation aborted.Registry value '%s' already exists.RegularRelevant entries:Remaining time:RemoveRemove current page from bookmarksRenderer "%s" has incompatible version %d.%d and couldn't be loaded.Renumber ListRep&laceReplaceReplace &allReplace with:Required information entry is empty.Revert to SavedRightRight margin (mm):Right-align text.RomanS&tandard bullet name:SCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACTSaveSave %s fileSave &As...Save AsSave asSave current documentSave current document with a different filenameSave log contents to fileScriptSearchSearch contents of help book(s) for all occurrences of the text you typed aboveSearch directionSearch for:Search in all booksSearching...SectionsSeek error on file '%s'Seek error on file '%s' (large files not supported by stdio)Select &AllSelect AllSelect a document templateSelect a document viewSelect regular or bold.Select regular or italic style.Select underlining or no underlining.SelectionSelects the list level to edit.Separator expected after the option '%s'.Set Cell StyleSetProperty called w/o valid setterSetting directory access times is not supported under this OS versionSetup...Several active dialup connections found, choosing one randomly.Shift+Show &hidden directoriesShow &hidden filesShow AllShow about dialogShow allShow all items in indexShow hidden directoriesShow/hide navigation panelShows a Unicode subset.Shows a preview of the bullet settings.Shows a preview of the font settings.Shows a preview of the font.Shows a preview of the paragraph settings.Shows the font preview.Simple monochrome themeSizeSize:SkipSlantSolidSorry, could not open this file.Sorry, not enough memory to create a preview.Sorry, that name is taken. Please choose another.Sorry, the format for this file is unknown.Sound data are in unsupported format.Sound file '%s' is in unsupported format.SpacingSpell CheckStandardStatement, 5 1/2 x 8 1/2 inStaticStatus:StopStrikethroughString To Colour : Incorrect colour specification : %sStyleStyle OrganiserStyle:Subscrip&tSupe&rscriptSuperA/SuperA/A4 227 x 356 mmSuperB/SuperB/A3 305 x 487 mmSwissSymbolSymbol &font:SymbolsTABTIFF: Couldn't allocate memory.TIFF: Error loading image.TIFF: Error reading image.TIFF: Error saving image.TIFF: Error writing image.TIFF: Image size is abnormally big.Table PropertiesTabloid Extra 11.69 x 18 inTabloid, 11 x 17 inTabsTeletypeTemplatesText renderer cannot render value; value type: Thai (ISO-8859-11)The FTP server doesn't support passive mode.The FTP server doesn't support the PORT command.The available bullet styles.The available styles.The background colour.The bottom margin size.The bottom padding size.The bottom position.The bullet character.The character code.The charset '%s' is unknown. You may select another charset to replace it with or choose [Cancel] if it cannot be replacedThe clipboard format '%d' doesn't exist.The default style for the next paragraph.The directory '%s' does not exist Create it now?The document "%s" doesn't fit on the page horizontally and will be truncated if printed. Would you like to proceed with printing it nevertheless?The file '%s' doesn't exist and couldn't be opened. It has been removed from the most recently used files list.The first line indent.The following standard GTK+ options are also supported: The font colour.The font family.The font from which to take the symbol.The font point size.The font size in points.The font size units, points or pixels.The font style.The font weight.The format of file '%s' couldn't be determined.The left indent.The left margin size.The left padding size.The left position.The line spacing.The list item number.The locale ID is unknown.The object height.The object maximum height.The object maximum width.The object minimum height.The object minimum width.The object width.The outline level.The previous message repeated %lu time.The previous message repeated %lu times.The previous message repeated once.The print dialog returned an error.The range to show.The report contains the files listed below. If any of these files contain private information, please uncheck them and they will be removed from the report. The required parameter '%s' was not specified.The right indent.The right margin size.The right padding size.The right position.The spacing after the paragraph.The spacing before the paragraph.The style name.The style on which this style is based.The style preview.The system cannot find the file specified.The tab position.The tab positions.The text couldn't be saved.The top margin size.The top padding size.The top position.The value for the option '%s' must be specified.The version of remote access service (RAS) installed on this machine is too old, please upgrade (the following required function is missing: %s).The wxGtkPrinterDC cannot be used.There is no column or renderer for the specified column index.There was a problem during page setup: you may need to set a default printer.This document doesn't fit on the page horizontally and will be truncated when it is printed.This is not a %s.This platform does not support background transparency.This program was compiled with a too old version of GTK+, please rebuild with GTK+ 2.12 or newer.This system doesn't support date controls, please upgrade your version of comctl32.dllThread module initialization failed: cannot store value in thread local storageThread module initialization failed: failed to create thread keyThread module initialization failed: impossible to allocate index in thread local storageThread priority setting is ignored.Tile &HorizontallyTile &VerticallyTimeout while waiting for FTP server to connect, try passive mode.Timer creation failed.Tip of the DayTips not available, sorry!To:Toggle renderer cannot render value; value type: Too many EndStyle calls!Too many colours in PNG, the image may be slightly blurred.TopTop margin (mm):Translations by TranslatorsTrueTrying to remove file '%s' from memory VFS, but it is not loaded!Turkish (ISO-8859-9)TypeType a font name.Type a size in points.Type mismatch in argument %u.Type must have enum - long conversionUPUS Std Fanfold, 14 7/8 x 11 inUS-ASCIIUnable to add inotify watchUnable to add kqueue watchUnable to associate handle with I/O completion portUnable to close I/O completion port handleUnable to close inotify instanceUnable to close path '%s'Unable to close the handle for '%s'Unable to create I/O completion portUnable to create IOCP worker threadUnable to create inotify instanceUnable to create kqueue instanceUnable to dequeue completion packetUnable to get events from kqueueUnable to handle native drag&drop dataUnable to initialize GTK+, is DISPLAY set properly?Unable to initialize Hildon programUnable to open path '%s'Unable to open requested HTML document: %sUnable to play sound asynchronously.Unable to post completion statusUnable to read from inotify descriptorUnable to remove inotify watchUnable to remove kqueue watchUnable to set up watch for '%s'Unable to start IOCP worker threadUndeleteUnderlineUnderlinedUndoUndo last actionUnexpected characters following option '%s'.Unexpected parameter '%s'Ungraceful worker thread terminationUnicodeUnicode 16 bit (UTF-16)Unicode 16 bit Big Endian (UTF-16BE)Unicode 16 bit Little Endian (UTF-16LE)Unicode 32 bit (UTF-32)Unicode 32 bit Big Endian (UTF-32BE)Unicode 32 bit Little Endian (UTF-32LE)Unicode 7 bit (UTF-7)Unicode 8 bit (UTF-8)UnindentUnits for the bottom border width.Units for the bottom margin.Units for the bottom outline width.Units for the bottom padding.Units for the bottom position.Units for the left border width.Units for the left margin.Units for the left outline width.Units for the left padding.Units for the left position.Units for the maximum object height.Units for the maximum object width.Units for the minimum object height.Units for the minimum object width.Units for the object height.Units for the object width.Units for the right border width.Units for the right margin.Units for the right outline width.Units for the right padding.Units for the right position.Units for the top border width.Units for the top margin.Units for the top outline width.Units for the top padding.Units for the top position.UnknownUnknown DDE error %08xUnknown Object passed to GetObjectClassInfoUnknown PNG resolution unit %dUnknown Property %sUnknown TIFF resolution unit %d ignoredUnknown data formatUnknown dynamic library errorUnknown encoding (%d)Unknown error %08xUnknown exceptionUnknown image data format.Unknown long option '%s'Unknown name or named argument.Unknown option '%s'Unmatched '{' in an entry for mime type %s.Unnamed commandUnspecifiedUnsupported clipboard format.Unsupported theme '%s'.UpUpper case lettersUpper case roman numeralsUsage: %sUse the current alignment setting.Validation conflictValueValue must be %s or higher.Value must be %s or less.Value must be between %s and %s.Version Vertical alignment.View files as a detailed viewView files as a list viewViewsWINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHTWaiting for IO on epoll descriptor %d failedWarning: WeightWestern European (ISO-8859-1)Western European with Euro (ISO-8859-15)Whether the font is underlined.Whole wordWhole words onlyWin32 themeWin32s on Windows 3.1Windows 2000Windows 7Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows Arabic (CP 1256)Windows Baltic (CP 1257)Windows CE (%d.%d)Windows Central European (CP 1250)Windows Chinese Simplified (CP 936) or GB-2312Windows Chinese Traditional (CP 950) or Big-5Windows Cyrillic (CP 1251)Windows Greek (CP 1253)Windows Hebrew (CP 1255)Windows Japanese (CP 932) or Shift-JISWindows Johab (CP 1361)Windows Korean (CP 949)Windows MEWindows NT %lu.%luWindows Server 2003Windows Server 2008Windows Server 2008 R2Windows Thai (CP 874)Windows Turkish (CP 1254)Windows Vietnamese (CP 1258)Windows VistaWindows Western European (CP 1252)Windows XPWindows/DOS OEM (CP 437)Windows/DOS OEM Cyrillic (CP 866)Write error on file '%s'XML parsing error: '%s' at line %dXPM: Malformed pixel data!XPM: incorrect colour description in line %dXPM: incorrect header format!XPM: malformed colour definition '%s' at line %d!XPM: no colors left to use for mask!XPM: truncated image data at line %d!YesYou cannot Clear an overlay that is not initedYou cannot Init an overlay twiceYou cannot add a new directory to this section.You have entered invalid value. Press ESC to cancel editing.Zoom &InZoom &OutZoom InZoom OutZoom to &FitZoom to Fita DDEML application has created a prolonged race condition.a DDEML function was called without first calling the DdeInitialize function, or an invalid instance identifier was passed to a DDEML function.a client's attempt to establish a conversation has failed.a memory allocation failed.a parameter failed to be validated by the DDEML.a request for a synchronous advise transaction has timed out.a request for a synchronous data transaction has timed out.a request for a synchronous execute transaction has timed out.a request for a synchronous poke transaction has timed out.a request to end an advise transaction has timed out.a server-side transaction was attempted on a conversation that was terminated by the client, or the server terminated before completing a transaction.a transaction failed.altan application initialized as APPCLASS_MONITOR has attempted to perform a DDE transaction, or an application initialized as APPCMD_CLIENTONLY has attempted to perform server transactions.an internal call to the PostMessage function has failed. an internal error has occurred in the DDEML.an invalid transaction identifier was passed to a DDEML function. Once the application has returned from an XTYP_XACT_COMPLETE callback, the transaction identifier for that callback is no longer valid.assuming this is a multi-part zip concatenatedattempt to change immutable key '%s' ignored.bad arguments to library functionbad signaturebad zipfile offset to entrybinaryboldbuffer is too small for Windows directory.build %lucan't close file '%s'can't close file descriptor %dcan't commit changes to file '%s'can't create file '%s'can't delete user configuration file '%s'can't determine if the end of file is reached on descriptor %dcan't execute '%s'can't find central directory in zipcan't find length of file on file descriptor %dcan't find user's HOME, using current directory.can't flush file descriptor %dcan't get seek position on file descriptor %dcan't load any font, abortingcan't open file '%s'can't open global configuration file '%s'.can't open user configuration file '%s'.can't open user configuration file.can't re-initialize zlib deflate streamcan't re-initialize zlib inflate streamcan't read from file descriptor %dcan't remove file '%s'can't remove temporary file '%s'can't seek on file descriptor %dcan't write buffer '%s' to disk.can't write to file descriptor %dcan't write user configuration file.checksum errorchecksum failure reading tar header blockcmcompression errorconversion to 8-bit encoding failedctrldatedecompression errordefaultdump of the process state (binary)eighteentheightheleventhentry '%s' appears more than once in group '%s'error in data formaterror opening '%s'error opening fileerror reading zip central directoryerror reading zip local headererror writing zip entry '%s': bad crc or lengthfailed to flush the file '%s'fifteenthfifthfile '%s', line %d: '%s' ignored after group header.file '%s', line %d: '=' expected.file '%s', line %d: key '%s' was first found at line %d.file '%s', line %d: value for immutable key '%s' ignored.file '%s': unexpected character %c at line %d.filesfirstfont sizefourteenthfourthgenerate verbose log messagesimageincomplete header block in tarincorrect event handler string, missing dotincorrect size given for tar entryinvalid data in extended tar headerinvalid message box return valueinvalid zip fileitaliclightlocale '%s' cannot be set.midnightnineteenthninthno DDE error.no errorno fonts found in %s, using builtin fontnonamenoonnormalnot implementednumobjects cannot have XML Text Nodesout of memorypercentprocess context descriptionptpxrawctrlread errorreading zip stream (entry %s): bad crcreading zip stream (entry %s): bad lengthreentrancy problem.secondseek errorseventeenthseventhshiftshow this help messagesixteenthsixthspecify display mode to use (e.g. 640x480-16)specify the theme to usestandard/circlestandard/circle-outlinestandard/diamondstandard/squarestandard/trianglestored file length not in Zip headerstrstrikethroughtar entry not opentenththe response to the transaction caused the DDE_FBUSY bit to be set.thirdthirteenthtodaytomorrowtrailing backslash ignored in '%s'translator-creditstwelfthtwentiethunderlinedunexpected " at position %d in '%s'.unexpected end of fileunknownunknown class %sunknown errorunknown error (error code %08x).unknown seek originunknown-%dunnamedunnamed%dunsupported Zip compression methodusing catalog '%s' from '%s'.write errorwxGetTimeOfDay failed.wxPrintout::GetPageInfo gives a null maxPage.wxWidget control pointer is not a data view pointerwxWidget's control not initialized.wxWidgets could not open display for '%s': exiting.wxWidgets could not open display. Exiting.xxxxyesterdayzlib error %d~Project-Id-Version: wxWidgets 3.0 Report-Msgid-Bugs-To: POT-Creation-Date: 2013-10-01 19:04+0200 PO-Revision-Date: 2013-09-27 10:30-0800 Last-Translator: Jiawei Huang Language-Team: wxWidgets tranlators Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: Poedit 1.5.7 请将报告发送给程序维护人员,谢谢! 谢谢,我们对您遇到的不便表示抱歉! (复制 %d / %d) (错误 %ld: %s) (于模块: "%s") - 预览 粗体 斜体 细体#10 信封,4 1/8 x 9 1/2 英寸#11 信封,4 1/2 x 10 3/8 英寸#12 信封,4 3/4 x 11 英寸#14 信封,5 x 11 1/2 英寸#9 信封,3 7/8 x 8 7/8 英寸%d / %lu%i / %i%ld 字节%lu / %lu%s (或 %s)%s 错误%s 信息%s 偏好设置%s 警告%s 不符合tar项目 '%s' 的标头%s 文件 (%s)|%s关于(&A)实际大小(&A)段落之后(&A):对齐(&A)应用(&A)应用样式(&A)重排图标(&A)递增(&A)返回(&B)基于(&B):段落之前(&B):背景颜色(&B):粗体(&B)底端(&B)底端(&B):项目符号样式(&B):CD 光驱(&C)取消(&C)层叠(&C)字符编码(&C):清除(&C)关闭(&C)颜色(&C)颜色(&C):转换(&C)复制(&C)复制 URL(&C)自定义(&C)...调试报告预览(&D): 删除(&D)删除样式(&D)...递减(&D)细节(&D)向下(&D)编辑(&E)编辑样式(&E)...执行(&E)文件(&F)查找(&F)完成(&F)最前(&F)浮动模式(&F):软盘(&F)字体(&F)字体(&F):层级字体(&F)...字体(&F):前进(&F)从(&F):硬盘(&H)高度(&H):帮助(&H)隐藏细节(&H)Home(&H)缩进(&I) (十分之一毫米)索引(&I)信息(&I)斜体(&I)跳转到(&J)分散对齐(&J)最后(&L)左(&L)左(&L):列表层级(&L):日志(&L)移动(&M)移动对象至(&M):网络(&N)新建(&N)下一个(&N)下一个(&N) >下一段落(&N)下一技巧(&N)下一个样式(&N):否(&N)注意(&N):编号(&N):确认(&O)打开(&O)...大纲层级(&O):断页符号(&P)粘贴(&P)图片(&P)字体大小(&P):位置(&P) (十分之一毫米)位置(&P)偏好设置(&P)前页(&P)前一段落(&P)打印(&P)...属性(&P)退出(&Q)恢复(&R)恢复(&R) 重命名样式(&R)...替换(&R)重新编号(&R)复原(&R)右(&R)右(&R):保存(&S)另存为(&S)查看细节(&S)启动时显示技巧(&S)大小(&S)大小(&S):跳过(&S)间距(&S) (十分之一毫米)拼写检查(&S)停止(&S)删除线(&S)字体(&S):样式(&S):子集(&S):符号(&S):表格(&T)顶端(&T)顶端(&T):下划线(&U)下划线(&U)撤销(&U)撤销(&U) 取消缩进(&U)向上(&U)垂直对齐(&V)查看(&V)...字体粗细(&W):宽度(&W):窗口(&W)是(&Y)'%s' 有额外的 '..',忽略之。'%s' 是无效的'%s' 不是匹配选项 '%s'的正确数字值。'%s' 不是有效的消息目录。'%s' 或许是一个二进制文件。'%s' 应该是一个数值。'%s' 应该仅包含ASCII字符。'%s' 应仅包含字母字符。'%s' 应仅包含字母或数字字符。'%s' 应该仅包含数字。(*)(帮助)(无)(正常字体)(书签)(无)**)+,64位版-...1.11.21.31.41.51.61.71.81.910 x 11 英寸10 x 14 英寸11 x 17 英寸12 x 11 英寸15 x 11 英寸26 3/4 信封, 3 5/8 x 6 1/2 英寸9 x 11 英寸: 文件不存在!: 未知字符集: 未知编码< 返回(&B)<任意 Decorative><任意 Modern><任意 Roman><任意 Script><任意 Swiss><任意 Teletype><任意><目录><盘符><连接>粗斜体.
    粗斜体 加下划线
    粗体. 斜体. >产生了一份调试报告, 位于目录 产生了一份调试报告, 位于非空集合必须包含 'element' 节点标准项目符号名称。A0 纸张, 841 x 1189 毫米A1 纸张, 594 x 841 毫米A2 纸张, 420 x 594 毫米特大 A3 纸张, 322 x 445 毫米特大 A3 纸张(横排), 322 x 445 毫米横向 A3 纸张, 420 x 297 毫米A3 纸张(横排), 297 x 420 毫米A3 纸张, 297 x 420 毫米特大 A4 纸张, 9.27 x 12.69 英寸加大 A4 纸张, 210 x 330 毫米横向 A4 纸张, 297 x 210 毫米A4 纸张(横排), 210 x 297 毫米A4 纸张, 210 x 297 毫米小 A4 纸张, 210 x 297 毫米特大 A5 纸张, 174 x 235 毫米横向 A5 纸张, 210 x 148 毫米A5 纸张(横排), 148 x 210 毫米A5 纸张, 148 x 210 毫米A6 纸张, 105 x 148 毫米横向 A5 纸张, 148 x 105 毫米ABCDEFGabcdefg12345ADDASCII关于关于 %s实际大小加入把当前页加到书签中加到自定义颜色中在一个通用处理器上调用AddToPropertyCollection调用AddToPropertyCollection时未带有效的adder正在添加卷 %s添加风格 TEXT 失败添加风格 utxt 失败高级段落之后:左对齐右对齐对齐所有所有文件 (%s)|%s所有文件 (*)|*所有文件 (*.*)|*.*所有样式字母顺序模式传递已注册对象给 SetObjectClassInfo已经拨接 ISP 。Alt+并且包含以下文件: 动画文件的类型不是 %ld。把日志添加到文件 '%s' (选择 [否] 将覆盖该文件)?应用阿拉伯数字阿拉伯语 (ISO-8859-6)找不到参数 %u。美术设计者升序属性(Attributes)可用字体。B4 纸张(ISO), 250 x 353 毫米横向 B4 纸张(JIS), 364 x 257 毫米B4 信封, 250 x 353 毫米B4 纸张, 250 x 354 毫米特大 B4 纸张(JIS), 201 x 276 毫米横向 B5 纸张(JIS), 257 x 182 毫米B5 纸张 (JIS, 横排), 182 x 257 毫米B5 信封, 176 x 250 毫米B5 纸张, 182 x 257 毫米B6 纸张(JIS), 128 x 182 毫米横向 B6 纸张(JIS), 182 x 128 毫米B6 信封, 176 x 125 毫米BACKBMP: 无法分配内存。BMP: 无法保存无效图像。BMP: 无法写 RGB 色彩表。BMP: 无法写数据。BMP: 无法写文件头 (Bitmap)。BMP: 无法写文件头 (BitmapInfo)。BMP: wxImage 没有自己的 wxPalette。返回背景背景颜色(&c):背景颜色波罗的海语 (ISO-8859-13)波罗的海语 (旧式) (ISO-8859-4)段落之前:位图位图渲染器无法渲染该值; 类型为:粗体边框边框底端底边距 (毫米):方块属性方块样式浏览项目符号对齐(&A):项目符号样式项目符号C 纸张, 17 x 22 英寸清除(&L)颜色(&o):C3 信封, 324 x 458 毫米C4 信封, 229 x 324 毫米C5 信封, 162 x 229 毫米C6 信封, 114 x 162 毫米C65 信封, 114 x 229 毫米CANCELCAPITALCD 光驱CHM处理程序目前只支持本地文件!CLEARCOMMAND大写(&P)无法撤销(&U)不能自动确定不可定位输入的图像格式。无法关闭注册键 '%s'无法复制不支持的类型 %d 的值.无法创建注册键 '%s'无法创建线程无法创建窗口类 %s无法删除键 '%s'无法删除 INI 文件 '%s'无法删除值 '%s' 位于键 '%s'无法枚举键 '%s' 的子键无法枚举键 '%s' 的值无法导出不支持的类型 %d 的值.无法在文件 '%s' 中找到当前位置无法获得注册键 '%s' 的信息无法初始化 zlib 压缩流。无法初始化 zlib 解压流。无法监视不存在目录 "%s" 的更新。无法打开注册键 '%s'无法从解压流 %s 中读取无法读解压流: 流内有异常的 EOF。无法读 '%s' 的值无法读键 '%s' 的值无法从将图像保存至文件 '%s' 中: 无法识别的扩展名。无法把日志内容保存到文件。无法设置线程优先级无法设置 '%s' 的值无法写入子进程的标准输入无法写到压缩流: %s取消无法创建互斥子。无法建立新的列 ID。可能已达到列数量的上限。无法枚举文件 '%s'无法枚举目录 '%s' 中的文件无法找到活动的拨号连接: %s无法找到地址簿文件的位置无法获得 "%s" 的活动实体无法获得调度策略 %d 的优先级范围。无法获得主机名无法获得正式的主机名无法挂断 - 没有活动的拨号连接。无法初始化 OLE无法初始化 sockets无法从 '%s' 中读取图标。无法从文件 '%s' 中载入资源。无法从文件 '%s' 中载入资源。无法打开 HTML 文档: %s无法打开 HTML 帮助: %s无法打开目录文件: %s无法打开文件进行 PostScript 打印!无法打开索引文件: %s无法打开资源文件 '%s'。无法打印空白页面。无法从 '%s' 中读取类型名称!无法恢复线程 %lu无法恢复线程 %lx无法找回线程调度策略。无法设定为语言 "%s"。无法启动线程: 写 TLS 出错。无法挂起线程 %lu无法挂起线程 %lx无法等候线程终止大小写敏感分类模式单元格属性凯尔特语 (ISO-8859-14)居中(&t)居中中欧语系 (ISO-8859-2)居中文字居中。居中选择(&o)...更改列表样式更改对象样式修改属性更改样式为了防止重写已有文件 "%s" 更改不会被保存文字样式勾选以在项目符号后加上句号勾选以加上右括号勾选以将项目符号加上一对括号勾选设定为粗体。勾选设定为斜体。勾选加下划线。勾选以重新编号勾选加删除线。勾选显示为大写。勾选显示为下标。勾选显示为上标。选择ISP进行拨号选择目录:选择文件选择颜色选择字体检测到导致循环依赖模块 "%s" 。关闭(&o)类未注册。清除清除日志内容点击应用所选样式。点击浏览该符号。点击取消字体变更。点击取消字体选择。点击更改字体颜色。点击修改字体背景颜色。点击修改字体颜色。点击选择此层级字体。点击关闭此窗口。点击确认字体更改。点击确认字体选择。点击新增方块样式。点击新建文字样式。点击新增列表样式。点击新建段落样式。点击建立新的标签位置。点击删除所有标签位置。点击删除所选样式。点击删除所选标签位置。点击编辑所选样式。点击重命名所选样式。关闭全部关闭关闭当前文档关闭此窗口颜色颜色颜色选择对话框错误,错误码 %0lx。颜色:无法增加列。列描述无法初始化。找不到列索引。无法确定列宽无法设定列宽。命令行参数 %d 无法被转化成Unicode编码,其将被忽略。公共对话框错误,错误码 %0lx。当前系统不支持组合模式,请在窗口管理器中启用。压缩的HTML帮助文件 (*.chm)|*.chm|计算机配置条目名不能以 '%c' 开头。确认确认更新注册表正在连接...目录无法进行到字符集 '%s' 的转换。转换已复制到剪贴板:"%s"份数:复制复制选区无法创建临时文件 '%s'无法确定列索引。无法确定列位置无法确定列数量。无法确定项目数量无法将 %s 解开至 %s: %s找不到 id 的标签无法获取表头描述。无法获取项目。无法获取属性标志。无法获取所选项目。找不到文件 '%s'。无法删除列。无法获取项目数量无法设定对齐。无法启动文档预览。无法设置当前工作目录无法启动打印。无法启动打印。无法设定最大宽度。无法设定最小宽度。无法设定属性标志。无法启动文档预览。无法启动打印。无法把数据转到窗口无法得到互斥锁无法把图像加到图象列表。无法创建计时器无法创建 overlay 窗口在动态连接库中找不到符号 '%s'无法从 wxBrush 获取阴影样式。无法获得当前线程指针无法装入 PNG 图像 - 文件被破坏 或者 没有足够内存。无法从 '%s' 中的读取声音数据。无法获取文件夹名称无法打开音频: %s无法注册剪贴板格式 '%s'。无法释放互斥子无法获得列表控件的项 %d 信息。无法保存 PNG 图像。无法终止线程在声明的 RTTI 参数里找不到创建参数 %s创建目录创建新目录Ctrl+剪切(&t)当前目录:自定义大小自定义列剪切剪切选区西里尔语 (ISO-8859-5)D 纸张, 22 x 34 英寸DDE poke 请求失败DECIMALDELDELETEDIB头: 编码不匹配颜色位数。DIB头: 对于文件, 图像高度 > 32767 象素。DIB头: 对于文件, 图像宽度 > 32767 象素。DIB头: 文件中颜色位数未知。DIB头: 文件编码未知。DIVIDEDL 信封, 110 x 220 毫米DOWN数据对象有无效数据格式数据渲染器无法渲染该值; 类型为:调试报告 "%s"无法创建调试报告。无法生成调试报告。修饰缺省编码缺省字体缺省的打印机删除删除全部(&l)删除样式删除文字删除项删除选区删除样式 %s?已删除过期的锁文件 '%s'。依赖 "%s" 对模块 "%s" 不存在。降序桌面开发由开发者由于远程访问服务(RAS)没有安装在本机,拨号功能无法使用。请安装它。你知道吗...DirectFB错误 %d 发生。目录无法创建目录 '%s'目录'%s'无法被删除目录不存在目录不存在。放弃更改并重新载入最近保存的版本?显示包含给定子串的所有索引项. 搜索是大小写无关的.显示选项对话框是否要覆盖用于%s文件(扩展名为"%s")的命令? 当前值为 %s, 新的值为 %s %1你想保存对文档 %s 的修改吗?文档:文档撰写由文档作者不保存完成完成.横向日本双明信片, 148 x 200 毫米重复使用的id : %d向下移动E 纸张,34 x 44 英寸ENDENTER读取 inotify 描述符时遇到 EOFESCESCAPEEXECUTE编辑编辑项用时: 启用高度值。启用最大宽度值。启用最小高度值。启用最小宽度值。启用宽度值。启用垂直对齐。启用背景颜色。输入文字方块样式名称输入文字样式名输入列表样式名输入新样式名输入段落样式名输入命令以打开文件 "%s":找到的条目邀请信, 220 x 220 毫米环境变量扩展失败: '%c' 没有出现在位置 %u / '%s'。错误关闭 epoll 描述符时发生错误关闭 kqueue 实例时发生错误创建目录错误读取图像 DIB 错误。资源错误: %s读配置选项错误。保存用户配置数据错误.打印时出错: 错误: 世界语 (ISO-8859-3)预期时间:消息队列溢出可执行文件 (*.exe)|*.exe|执行命令 '%s' 执行失败命令 '%s' 执行失败, 错误信息: %ul实用纸张(Executive), 7 1/4 x 10 1/2 英寸导出注册键: 文件 "%s"已经存在, 无法覆盖.扩展的日本语Unix代码页 (EUC-JP)将 '%s' 解压至 '%s' 失败。F字体名称无法访问锁文件。无法将描述符 %d 加到 epoll 描述符 %d无法为位图数据分配 %luKb 内存。无法为 OpenGL 分配颜色无法改变视频模式。无法确认图像文件 "%s" 的格式。无法清除调试报告目录 "%s"无法关闭文件句柄无法关闭锁文件 '%s'无法关闭剪贴板。无法关闭显示 "%s"连接失败: 缺少用户名/口令。连接失败: 没有要拨号的 ISP。无法转换文件 "%s" 为 Unicode。无法将对话框内容复制到剪贴板。无法复制注册键值 '%s'无法把注册键内容从 '%s' 复制到 '%s'。无法复制文件 '%s' 至 '%s'无法复制注册表子键 '%s' 至 '%s'。无法创建 DDE 字符串无法创建 MDI 父框架。无法创建临时文件名无法创建匿名管道无法创建实例 "%s"无法创建到服务器 '%s' 关于主题 '%s' 的连接无法创建游标。无法创建目录 "%s"无法创建目录 '%s' (您是否有所需的权限?)无法创建 epoll 描述符无法为 '%s' 文件创建注册条目。无法创建标准"查找/替换"对话框 (错误号 %d)无法按编码 %s 显示 HTML 文档无法清空剪贴板无法枚举视频模式无法在 DDE 服务器建立 advise 循环无法建立拨号连接: %s无法执行 '%s' 无法执行curl,请在PATH变量所指的目录中安装curl。无法找到 "%s" 的 CLSID无法找到匹配的正则表达式: %s无法获取 ISP 名称: %s无法从剪贴板获取数据无法获取本地系统时间无法获取工作目录无法初始化 GUI: 找不到内嵌的主题。无法初始化 MS HTML 帮助。无法初始化 OpenGL无法初始化拨号连接: %s无法在控件中插入文字。无法检查锁文件 '%s'无法安装信号句柄无法合并线程,检测到潜在地内存丢失 - 请重新启动系统无法终止进程 %d无法从资源中载入图像 "%s"。无法从资源中载入图标 "%s"。无法从文件 '%s' 中读取图像 %%d。无法从数据流中载入图像 %d。无法从文件 "%s" 中读取图像。无法从文件 "%s" 读取元文件。无法装载 mpr.dll。无法载入资源 "%s"。无法装载共享库 '%s'无法锁定资源 "%s"。无法锁定锁文件 '%s'无法修改描述符 %d (于epoll描述符 %d)无法为 '%s' 修改文件时间无法检测I/O通道无法读取文件 '%s'无法写入文件 '%s'无法打开 CHM 存档 '%s'。无法在默认浏览器中打开 URL "%s"。无法打开临时文件。无法打开剪贴板。无法解析复数形式: '%s'无法把数据放到剪贴板无法从锁文件读取 PID。无法读配置选项。无法从文件 "%s" 中读取文档。无法从 DirectFB 管道中读取事件无法重定向子过程输入/输出无法重定向子过程 IO无法注册 DDE 服务器 '%s'无法记忆字符集 '%s' 的编码。无法删除调试报告文件 "%s"无法删除锁文件 '%s'无法删除过期的锁文件 '%s'。无法将注册值 '%s' 重命名为 '%s'。无法将文件'%s' 重命名为 '%s',因为目标文件已存在。无法将注册键 '%s' 重命名为 '%s'。无法从剪贴板检取数据。无法提取 '%s' 文件时间无法提取 RAS 错误消息正文无法提取支持的剪贴板格式无法将位图图像保存至文件 "%s"。无法发送 DDE advise 通知无法设置 FTP 传输模式为 %s。无法设置剪贴板数据。无法在锁文件 '%s' 上设置许可权限无法设置线程优先级无法设置临时文件的许可权限无法设置线程优先级 %d。无法设置非闭塞通道,程序可能挂起。无法将图像 '%s' 存到内存 VFS!无法将DirectFB通道切换至非闭塞模式无法将唤醒管道切换至非闭塞模式无法终止线程。无法终止与 DDE 服务器的 advise 循环无法终止拨号连接: %s对文件 '%s' 进行 touch 操作时失败无法对已锁文件 '%s' 解锁无法撤消 DDE 服务器 '%s' 的注册无法更新用户配置文件。无法上传调试报告 (错误号 %d)。无法写入锁文件 '%s'False文件文件 "%s" 无法开启为读取模式。文件 "%s" 无法开启为写入模式。文件 '%s' 已存在,确实需要复写它?文件 '%s' 已存在。 真的需要替换它?文件 '%s' 无法被移除文件 '%s' 无法重命名为 '%s'文件无法装载。文件错误文件名已存在。文件文件 (%s)过滤器查找最前第一页固定固定字体:固定字体.
    粗体 斜体 浮动软盘对开纸, 8 1/2 x 13 英寸字体字体粗细(&w):字体大小:字体样式(&y):字体:字体索引文件 %s 载入字体时丢失。Fork 失败前进不支持传递hrefs找到 %i 个匹配项从:GIF: 无效的 gif 图像索引。GIF: 数据流似乎已被截断。GIF: GIF文件格式错误。GIF: 没有足够内存。GIF: 位置错误!!!本机安装的GTK+版本过低,不支持屏幕组合,请安装GTK+2.12或者更新版本。GTK+ 主题通用普通PostScript德国法定复写簿, 8 1/2 x 13 英寸德国标准复写簿, 8 1/2 x 12 英寸调用GetProperty时未带有效的getter在一个通用处理器上调用GetPropertyCollection调用GetPropertyCollection时未带有效的collection getter返回前进到上一级文档目录进入 home 目录进入父目录图形艺术设计由 希腊语 (ISO-8859-7)此版本的 zlib 不支持 GzipHELPHOMEHTML 帮助的工程文件 (*.hhp)|*.hhp|HTML 锚 %s 不存在。HTML文件 (*.html;*.htm)|*.html;*.htm|磁盘希伯来语 (ISO-8859-8)帮助帮助浏览器选项帮助索引帮助打印帮助主题帮助书 (*.htb)|*.htb|帮助书 (*.zip)|*.zip|找不到帮助目录 "%s"。找不到帮助文件 "%s"。帮助: %s隐藏 %s隐藏其他隐藏此通知消息。HomeHome 目录对象怎样浮动与文本有关。ICO: 读掩码DIB错误。ICO: 写图像文件错误!ICO: 图像高度超出范围,不适合做图标。ICO: 图像宽度超出范围,不适合做图标。ICO: 无效的图标索引。IFF: 数据流似乎已被截断。IFF: IFF文件格式错误。IFF: 没有足够内存。IFF: 位置错误!!!INSINSERTISO-2022-JP图标和文本渲染器无法渲染该值; 类型为:如有可能,请尝试更改布局参数以使输出结果更紧凑。如果您有任何与此错误报告有关的信息, 请在此输入,它将会被加到错误报告中:如果您想完全禁用调试报告,请按"取消"按钮, 但我们不建议这样做,因为调试报告有助于改进本程序。 在可能的情况下,请尽量选择让程序生成调试报告。 忽略值 "%s" (键 "%s")。非法的对象类 (非-wxEvtHandler) 作为事件源非法的针对 ConstructObject 方法的参数计数非法的针对 Create 方法的参数计数不合法的目录名。不合规范的文件描述。图像和掩码的大小不一致。图像文件的类型不是 %d。图像的类型不是 %s。无法创建富文本编辑器控件,使用简单文本编辑器控件代替。请重新安装 riched32.dll不可能获得子过程的输入不可能获得文件 '%s' 的许可权限不可能复写文件 '%s'不可能设置文件 '%s' 的许可权限错误的GIF帧尺寸(%u, %d)对于第#%u帧错误的变量数目。缩进锁紧和空格索引印地安语 (ISO-8859-12)信息在后初始化阶段出错,退出...插入插入图片插入对象插入文本在段落前插入断页符。无效的GTK+命令行选项,使用 "%s --help"无效TIFF图像索引。无效的数据视图项无效的显示模式 '%s'。无效的几何规格 '%s'无效的 "%s" inotify 事件无效的锁文件 '%s'。无效的消息目录。无效的或空的对象 ID 传给 GetObjectClassInfo无效的或空的对象 ID 传给 HasObjectClassInfo无效的正则表达式 '%s': %s配置文件中无效的值 %ld 于布尔键 "%s"。斜体意大利信封, 110 x 230 毫米JPEG: 无法装入 - 文件也许已被破坏。JPEG: 无法保存图像。日本双明信片, 200 x 148 毫米日本 Chou 3 信封日本 Chou 3 信封(横向)日本 Chou 4 信封日本 Chou 4 信封(横向)日本 Kaku 2 信封日本 Kaku 2 信封(横向)日本 Kaku 3 信封日本 Kaku 3 信封(横向)日本 You 4 信封日本 You 4 信封(横向)日本明信片, 100 x 148 毫米横向日本明信片, 148 x 100 毫米跳转至分散对齐文本左右对齐。KOI8-RKOI8-UKP_KP_ADDKP_BEGINKP_DECIMALKP_DELETEKP_DIVIDEKP_DOWNKP_ENDKP_ENTERKP_EQUALKP_HOMEKP_INSERTKP_LEFTKP_MULTIPLYKP_NEXTKP_PAGEDOWNKP_PAGEUPKP_PRIORKP_RIGHTKP_SEPARATORKP_SPACEKP_SUBTRACTKP_TABKP_UP行距(&I):LEFT横向最后最后一页最后重复消息("%s", %lu time)未输出帐簿, 17 x 11 英寸左左(第一行)(&F):左边距 (毫米):文字左对齐。特大法律纸张, 9 1/2 x 15 英寸标准法律纸张, 8 1/2 x 14 英寸特大信纸, 9 1/2 x 12 英寸特大信纸(横排), 9.275 x 12 英寸加大信纸, 8 1/2 x 12.69 英寸横向信纸, 11 x 8 1/2 英寸信纸(小), 8 1/2 x 11 英寸信纸(横排), 8 1/2 x 11 英寸信纸, 8 1/2 x 11 英寸授权细行 %lu 的map文件 "%s" 有无效语法,跳过。行距:链接包含 '//',转换为绝对链接.列表样式列表样式列表字体大小列出可用字体。装入文件 %s 装载: 锁文件 '%s' 没有正确的所有者。锁文件 '%s' 没有正确的权限。日志保存到文件 '%s'。小写字母小写罗马数字MDI 子窗口MENUMS HTML帮助功能不存在,因为此机器上没有安装 MS HTML 帮助库。请安装它。最大化(&x)MacArabicMacArmenianMacBengaliMacBurmeseMacCelticMacCentralEurRomanMacChineseSimpMacChineseTradMacCroatianMacCyrillicMacDevanagariMacDingbatsMacEthiopicMacExtArabicMacGaelicMacGeorgianMacGreekMacGujaratiMacGurmukhiMacHebrewMacIcelandicMacJapaneseMacKannadaMacKeyboardGlyphsMacKhmerMacKoreanMacLaotianMacMalayalamMacMongolianMacOriyaMacRomanMacRomanianMacSinhaleseMacSymbolMacTamilMacTeluguMacThaiMacTibetanMacTurkishMacVietnamese请选择:边距区分大小写最达高度:最大宽度:媒体回放错误:%s内存 VFS 已包含文件 '%s'!菜单消息金属主题找不到方法或属性。最小化(&n)最小高度:最小宽度: 缺少必要参数。现代修改日期模块 "%s" 初始化失败7.75信封,3 7/8 x 7 1/2 英寸当前不支持监视单独文件的更改。下移上移将对象移至下一段落将对象移至前一段落多重单元属性NUM_LOCK名称网络新建新方块样式(&B)新增字体样式(&C)...新增列表样式(&L)...新增段落样式(&P)...新增样式新目录新项目新名称下一个下一页否没有任何列存在。没有指定的列存在。没有指定的列位置存在。没有设定HTML文件的默认应用。没找到条目。编码 '%s' 的字体未找到,无法显示文本。 但发现另一替代编码 '%s'。 是否使用该编码 (否则您必须选择另外的编码)?编码 '%s' 的字体未找到,无法显示文本。 请选择用于该编码的字体 (否则该编码的文本将无法正确显示)?没有找到动画类型处理器。没有找到图像类型处理器。没有类型 %d 的图像处理器。没有类型 %s的图像处理器。还没有找到匹配页无渲染器或为该数据列指定了无效的渲染器该列未指定渲染器没有声音图像中没有被掩码的未用颜色。图像中没有未用的颜色。文件 "%s" 中无效映射无日尔曼语 (ISO-8859-10)正常正常字体
    带下划线。正常字体:非 %s不可用笔记簿, 8 1/2 x 11 英寸注意无法确定列数量。大纲标号确认OLE自动化错误%s: %s对象属性对象实现不支持命名参数对象必须有一个id属性打开文件打开HTML文档打开文件 "%s"打开...OpenGL函数 "%s"失败: %s (error %d)不允许的操作。选项 '%s' 需要值。选项 '%s': '%s' 无法转成日期。选项方向window ID已用完。建议关闭应用。强制修改参数值溢出PAGEDOWNPAGEUPPAUSEPCX: 无法分配内存PCX: 图像格式不支持PCX: 无效图像PCX: 不是PCX文件。PCX: 未知错误!!!PCX: 版本号太小PGDNPGUPPNM: 无法分配内存。PNM: 无法识别的文件格式。PNM: 文件似乎已被截断。中国 16开 纸, 146 x 215 毫米中国 16开 纸张(横向)中国 32开 纸, 97 x 151 毫米中国 32开 纸张(横向)中国 32开(大) 纸, 97 x 151 毫米中国 32开(大) 纸张(横向)中国标准信封1#, 102 x 165 毫米中国标准信封1#(横向), 165 x 102 毫米中国标准信封10#, 324 x 458 毫米中国标准信封10#(横向), 458 x 324 毫米中国标准信封2#, 102 x 176 毫米中国标准信封2#(横向), 176 x 102 毫米中国标准信封3#, 125 x 176 毫米中国标准信封3#(横向), 176 x 125 毫米中国标准信封4#, 110 x 208 毫米中国标准信封4#(横向), 208 x 110 毫米中国标准信封5#, 110 x 220 毫米中国标准信封5#(横向), 220 x 110 毫米中国标准信封6#, 120 x 230 毫米中国标准信封6#(横向), 230 x 120 毫米中国标准信封7#, 160 x 230 毫米中国标准信封7#(横向), 230 x 160 毫米中国标准信封8#, 120 x 309 毫米中国标准信封8#(横向), 309 x 120 毫米中国标准信封9#, 229 x 324 毫米中国标准信封9#(横向), 324 x 229 毫米PRINT页 %d页 %d / %d页面设置页面设置页纸张大小段落样式传递一个已注册的对象给SetObject粘贴粘贴选区允许图片属性管道创建失败请选择一个有效的字体.请选择一个已存在的文件.请选择欲显示的页面:请选择你想连接的ISP请安装较新版本的 comctl32.dll (至少需要4.70版,您现有的版本是 %d.%02d), 否则此程序无法正确运行。请选择列并显示和定义它们的顺序打印,请等待...字体大小(磅值)数据视图控制指针设定错误模型指针设定错误纵向位置PostScript文件偏好设置偏好设置...准备中预览:前页打印打印预览打印预览失败打印范围打印设置彩色打印打印预览(&W)...打印预览创建失败打印预览...打印假脱机打印本页打印到文件打印...打印机打印机命令:打印机选项打印机选项:打印机...打印机:正在打印 正在打印 打印出错正在打印页 %d 共 %d...正在打印页 %d...打印...打印处理调试报告失败, 文件被保存在目录 "%s" 中.程序渲染器无法渲染该值;类型为:进度:属性属性属性错误四开, 215 x 275 毫米问题退出退出 %s推出此程序RETURNRIGHTRawCtrl+读文件 '%s'出错就绪恢复恢复上一次操作刷新注册键 '%s' 已存在.注册键 '%s' 不存在,无法改名。正常的系统操作需要注册键 '%s', 删除它将使系统进入不可用状态: 操作终止.注册值 '%s' 已存在.一般相关条目:剩余时间:移除从书签中移去当前页渲染器(renderer) "%s"的版本 %d.%d不兼容, 无法加载.重编号列表替换(&l)替换全部替换(&a)替换为:所需的项目信息为空还原为上次保存的文件右右边距 (毫米):文本右对齐罗马标准项目符号名称(&T)SCROLL_LOCKSELECTSEPARATORSNAPSHOTSPACESPECIALSUBTRACT保存保存文件 %s 另存为(&A)...另存为另存为保存当前文档保存当前文档至重命名把日志内容保存到文件Script搜索从帮助内容中搜索符合你在上面输入的正文的所有条目搜索方向搜索:搜索所有的书籍搜索中...段文件 '%s' 定位错误文件 '%s' 定位错误 (stdio 不支持大文件)全部选择(&A)全部选择选择文档模板选择文档视图选择是否粗体选择是否斜体选择是否下划线选区选择并辨析列表层级期望在选项 '%s' 后存在分隔符。设置单元格样式调用 SetProperty 时未带有效的 setter当前操作系统不支持目录访问次数设定设置...找到多个活动拨号连接, 随机选择一个.Shift+显示隐藏目录(&H)显示隐藏文件(&H)显示全部显示关于对话框显示全部以索引方式显示所有项目显示隐藏目录显示/隐藏 导航面板显示Unicode子集预览项目符号设定预览字体设定预览字体预览段落设定显示字体预览。简单黑白主题大小大小:跳过倾斜实线对不起,无法打开文件。对不起,没有足够内存创建预览。抱歉,名字已被使用。请选择其他名字。对不起,此文件的格式未知。声音数据为不支持的格式。声音文件 '%s' 为不支持的格式。空格拼写检查标准报表用纸,5 1/2 x 8 1/2 英寸状态:状态:停止删除线字符串 - 颜色: 错误的颜色: %s样式样式组织器样式:下标(&T)上标(&R)SuperA/SuperA/A4 纸张,227 x 356 毫米SuperB/SuperB/A3 纸张,305 x 487 毫米瑞士符号符号样式(&F)符号TABTIFF: 无法分配内存。TIFF: 装载图像错误。TIFF: 读图像错误。TIFF: 保存图像错误。TIFF: 写图像错误。TIFF: 图像大小过大。表格属性小报(特大),11.69 x 18 英寸小报,11 x 17 英寸标签电传打字机模板文本渲染器无法渲染该值;类型为:泰语 (ISO-8859-11)FTP服务器不支持 passive 模式。FTP服务器不支持 PORT 命令。可用的项目符号样式可用样式背景色底边距底内衬大小底部位置项目符号字符字符编码未知字符集 '%s'。选择其它字符集 代替它,如果无法替代请选择 [取消] 剪贴板格式 '%d' 不存在。下一段落默认样式目录 '%s' 不存在 是否现在创建?文件 "%s" 的水平尺寸不符合页面,若打印将会被截断。 强制打印该文档?文件 '%s' 不存在所以无法打开。 已从最近使用的文件列表中移去。首行缩进以下标准GTK+选项也被支持: 字体颜色。字体。符号使用该字体字体大小 (磅值)。字体大小(磅值)字体大小单位,磅值或像素值字体风格。字体粗细。无法确定文件 '%s' 格式。左缩进左边距大小左内衬大小左位置行距。列表编号区域ID未知对象高度。对象最大高度。对象最大宽度。对象最小高度对象最小宽度。对象宽度。大纲层级前一消息重复 %lu 次前一消息重复一次打印对话返回错误显示的范围。报告包含了以下文件。如果这些文件含有私人信息, 请去掉选中相应的文件,未选中的文件就会从报告中删除。 必须的参数 '%s' 没有指定。右侧缩进。右边距大小。右内衬又位置段落之后的间距。段落之前的间距。样式名称此样式的基础样式样式预览。系统无法找到指定的文件。标签位置标签位置文本无法保存。上边距大小。上内衬大小顶部位置。选项 '%s' 的值必须被指定。安装在本机的远程访问服务(RAS)太旧, 请更新它 (缺少下列必要的函数: %s).wxGtkPrinterDC无法使用所指定的列索引或渲染器不存在在页面建立时发生问题: 您可能需要设置一台默认的打印机。该文档的水平尺寸不符合页面,若打印将会被截断。这不是 %s。该平台不支持背景透明度该应用由过早版本的GTK+编译,请用GTK+ 2.12或以上版本重新构建。本系统不支持日期控制, 请升级您的comctl32.dll线程模块初始化失败: 无法在线程本地存储区中存放值线程模块初始化失败: 创建线程键失败线程模块初始化失败: 无法在线程本地存储区中分配索引线程优先级设置被忽略。水平排布(&H)垂直排布(&V)等待FTP服务器连接时超时,请尝试用 passive 模式。计时器创建失败每日技巧对不起,没有所需的提示!到:切换渲染器无法渲染该;类型为:呼叫EndStyle太多次!PNG中的颜色数过多,图像可能会有点模糊。顶端上页边距 (毫米):翻译由翻译者True试图从内存 VFS 中移去文件 '%s',但它并没有被装入内存!土耳其语 (ISO-8859-9)类型输入字体名称。输入大小,以磅为单位参数 %u 的类型不匹配。必须进行 enum - long 的类型转换UP美国标准复写簿,14 7/8 x 11 英寸US-ASCII无法添加 inotify watch无法添加 kqueue watch无法将句柄与 I/O 完成端口相关联无法关闭 I/O 完成口的句柄无法关闭 inotify 实例无法关闭路径 '%s'无法关闭 '%s' 的句柄。无法创建 I/O 完成口无法创建 IOCP 工作线程无法创建 inotify 实例无法创建 kqueue 实例无法移出完成封包无法从 kqueue 中获取事件无法处理原生的拖放数据无法初始化 GTK+,DISPLAY 是否已正确设置?无法初始化 Hildon 程序无法打开路径 '%s'无法打开 HTML 文档: %s无法异步地播放声音。无法贴上完成状态无法读取 inotify 描述符无法删除 inotify watch无法删除 kqueue watch无法为 '%s' 设定 watch无法开始 IOCP 工作线程取消删除下划线下划线撤销撤销上一次操作选项 '%s' 后有意外字符。意外参数 '%s'工作线程非正常终止Unicode 编码16位的 Unicode 编码 (UTF-16)16位大字节序 Unicode 编码 (UTF-16BE)16位小字节序 Unicode 编码 (UTF-16LE)32位的 Unicode 编码 (UTF-32)32位大字节序 Unicode 编码 (UTF-32BE)32位小字节序 Unicode 编码 (UTF-32LE)7位的 Unicode 编码 (UTF-7)8位的 Unicode 编码 (UTF-8)取消缩进下边框单位下边距单位下轮廓单位下内衬单位下位置单位左边框单位左边距单位左轮廓单位左内衬单位左位置单位最大对象高度单位。最大对象宽度单位。最小对象高度单位。最小对象宽度单位。对象高度单位对象宽度单位右边框单位右边距单位右轮廓单位右内衬单位右位置单位上边框单位上边距单位上轮廓单位上内衬单位上位置单位未知未知 DDE 错误 %08x未知的对象传递给 GetObjectClassInfo未知 PNG 解析度单位 %d未知属性 %s未知 TIFF 解析度单位 %d,忽略之未知数据格式未知的动态库错误未知编码 (%d)未知错误 %08x未知异常未知图像数据格式未知的长选项 '%s'未知名称或者命名参数未知选项 '%s'类型 %s 中有不配套的 '{'。未命名的命令未指定不支持的剪贴板格式。不支持的主题 '%s'。向上大写字母大写罗马数字用法: %s使用当前的对齐设置。验证冲突值数值必须大于或等于 %s。数值必须小于或等于 %s。数值必须在 %s 和 %s 之间。版本垂直对齐。按详细视图观看文件按列表视图观看文件视图WINDOWS_LEFTWINDOWS_MENUWINDOWS_RIGHT等待 epoll 描述符 %d 的 IO 时失败警告: 字体粗细西欧 (ISO-8859-1)西欧带欧元符号 (ISO-8859-15)字体是否为下划线。整字仅为整字Win32 主题Windows 3.1 上的 Win32sWindows 2000Windows 7Windows 95Windows 95 OSR2Windows 98Windows 98 SEWindows 9x (%d.%d)Windows 阿拉伯语 (CP 1256)Windows 波罗的海语 (CP 1257)Windows CE (%d.%d)Windows 中欧 (CP 1250)Windows 简体中文 (CP 936) 或 GB-2312Windows 繁体中文 (CP 950) 或 Big-5Windows 西里尔语 (CP 1251)Windows 希腊语 (CP 1253)Windows 希伯来语 (CP 1255)Windows 日语 (CP 932) 或 Shift-JISWindows 朝鲜语 (CP 1361)Windows 韩语 (CP 949)Windows MEWindows NT %lu.%luWindows Server 2003Windows Server 2008Windows Server 2008 R2Windows 泰国语 (CP 874)Windows 土耳其语 (CP 1254)Windows 越南语 (CP 1258)Windows VistaWindows 西欧 (CP 1252)Windows XPWindows/DOS OEM (CP 437)Windows/DOS OEM 西里尔语 (CP 866)写文件 '%s' 错误XML 解析错误: '%s',位于行 %dXPM: 错误的象素数据!XPM: 在第 %d 行有错误的颜色描述XPM: 不正确的头格式!XPM: 错误的颜色定义 '%s',位于行 %d!XPM: 没有剩下可供选择的掩码颜色!XPM: 图像数据被截断,位于行 %d!是你无法清除未初始化的 overlay。你不能初始化 overlay 两次你无法向该项中加入新的目录。你输入了无效值。按 ESC 取消编辑。放大(&I)缩小(&O)放大缩小缩放以适应窗口(&F)缩放以适应窗口DDEML 应用程序已创建延时 race 条件.没有调用 DdeInitialize 初始化函数就调用DDEML其它函数, 或传给DDEML函数的是 无效的实例标识。客户试图建立的会话已失败。内存分配失败。DDEML 参数验证失败。同步 advise 事务请求超时。同步 data 事务请求超时。同步 execute 事务请求超时。同步 poke 事务请求超时。终止 advise 事务的请求超时。服务器端事务试图处理 已被客户端终止的会话,或服务器 在完成事务前终止。事务失败。alt初始化为 APPCLASS_MONITOR 的应用程序 试图执行 DDE 事务, 或初始化为 APPCMD_CLIENTONLY 的应用程序 视图执行服务器事务。内部调用 PostMessage 失败。在 DDEML 中发生内部错误。传给 DDEML 函数的是无效的事务标识符。 一旦应用程序从 XTYP_XACT_COMPLETE 回调函数返回, 回调函数事务标识符就不再有效。假定这是一个分段 zip 文件的合并忽略对只读键 '%s' 的修改。库函数参数错误错误的签名zip 文件中到条目的偏移值错误二进制粗体Windows 目录的缓存太小。build %lu无法关闭文件 '%s'无法关闭文件描述符 %d无法把修改提交给文件 '%s'无法创建文件 '%s'无法删除用户配置文件 '%s'无法确定是否已达描述符 %d 的尾部执行 '%s'失败无法在 zip 文件中找到中央目录无法获得文件描述符 %d 的文件长度找不到用户的 HOME 目录,使用当前目录。无法刷新文件描述符 %d无法获得文件描述符 %d 的指针位置无法装载任何字体,正在中止无法打开文件 '%s'无法打开全局配置文件 '%s'。无法打开用户配置文件 '%s'。无法打开用户配置文件。无法重新初始化 zlib 压缩流。无法重新初始化 zlib 解压流。无法读取文件描述符 %d无法删除文件 '%s'无法删除临时文件 '%s'无法定位文件描述符 %d无法把缓存区 '%s' 写到磁盘。无法写文件描述符 %d无法写用户配置文件。校验和错误读取tar头部块发生校验和错误厘米压缩错误无法转换为 8 位编码ctrl日期解压缩错误缺省值转储进程状态(二进制码)第十八第八第十一条目 '%s' 在组 '%s' 中已出现一次以上文件格式错误打开 '%s' 出错打开文件出错读 zip 中央目录时出错读 zip 本地头时出错写zip条目 '%s' 时出错: crc 校验或长度错误刷新文件 '%s' 失败第十五第五文件 '%s',行 %d: 组头之后的 '%s' 被忽略。文件 '%s',行 %d: 期待出现 '='。文件 '%s',行 %d: 键 '%s' 第一次出现在行 %d。文件 '%s',行 %d: 忽略不可变键 '%s' 的值。文件 '%s': 非预期的字符 %c 存在于行 %d。文件第一字体大小第十四第四生成详细的日志信息图片tar头部块不完整错误的时间句柄字符串,缺少点号('.')tar项目不正确的大小tar扩展头部中有图小数据消息框返回无效的值无效的 zip 文件斜体细体无法设置地区为 '%s'。午夜第十九第九没有 DDE 错误。没有错误%s中字体为找到,将使用内置字体未名中午正常为实现num对象不能有 XML 文本节点内存耗尽百分比进程上下文描述点像素rawctrl读取错误读入 zip 流 (条目 %s): crc校验错误读入 zip 流 (条目 %s): 长度错误重入问题。第二搜索错误第十七第七shift显示帮助信息第十六第六指定使用的显示模式 (例如: 640x480-16位色)指定使用的主题标准/圆形标准/圆框标准/菱形标准/方形标准/三角形Zip 头没有已存文件的长度信息str删除线tar标头未打开第十对事件的响应导致 DDE_FBUSY 位被设置。第三第十三今天明天'%s'尾部的斜线将被忽略翻译人员第十二第二十下划线例外的 " 在位置 %d (位于 '%s').意外到达文件结尾未知未知类 %s未知错误未知错误 (错误号 %08x)。未知搜索原点未知-%d未命名未命名 %d不支持的 Zip 压缩方法使用目录 '%s' 从 '%s'。写错误wxGetTimeOfDay 失败。wxPrintout::GetPageInfo给出无效maxPagewxWidget控制指针不是一个数据视图指针wxWidgets 的控件未初始化。wxWidgets 无法为 '%s' 打开显示设备: 退出。wxWidgets 无法打开显示设备。退出。xxxx昨天zlib 错误 %d~ginkgocadx-3.8.7/cadxcore/lang/zh_CN/wxstd.po000066400000000000000000007435161314736454600211270ustar00rootroot00000000000000# Simplified Chinese Messages for wxWidgets # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the wxWidgets package. # mrfx # Liu Xiao Xi , 2005 # Jiawei Huang , 2011 # msgid "" msgstr "" "Project-Id-Version: wxWidgets 3.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2013-10-01 19:04+0200\n" "PO-Revision-Date: 2013-09-27 10:30-0800\n" "Last-Translator: Jiawei Huang \n" "Language-Team: wxWidgets tranlators \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.5.7\n" #: ../src/common/debugrpt.cpp:591 msgid "" "\n" "Please send this report to the program maintainer, thank you!\n" msgstr "" "\n" "请将报告发送给程序维护人员,谢谢!\n" #: ../src/richtext/richtextstyledlg.cpp:210 #: ../src/richtext/richtextstyledlg.cpp:222 msgid " " msgstr " " #: ../src/generic/dbgrptg.cpp:326 msgid " Thank you and we're sorry for the inconvenience!\n" msgstr " 谢谢,我们对您遇到的不便表示抱歉!\n" #: ../src/common/prntbase.cpp:546 #, c-format msgid " (copy %d of %d)" msgstr "(复制 %d / %d)" #: ../src/common/log.cpp:425 #, c-format msgid " (error %ld: %s)" msgstr " (错误 %ld: %s)" #: ../src/common/imagtiff.cpp:75 #, c-format msgid " (in module \"%s\")" msgstr " (于模块: \"%s\")" #: ../src/common/docview.cpp:1624 msgid " - " msgstr " - " #: ../src/richtext/richtextprint.cpp:588 ../src/html/htmprint.cpp:704 msgid " Preview" msgstr " 预览" #: ../src/common/fontcmn.cpp:811 msgid " bold" msgstr " 粗体" #: ../src/common/fontcmn.cpp:827 msgid " italic" msgstr " 斜体" #: ../src/common/fontcmn.cpp:807 msgid " light" msgstr " 细体" #: ../src/common/paper.cpp:118 msgid "#10 Envelope, 4 1/8 x 9 1/2 in" msgstr "#10 信封,4 1/8 x 9 1/2 英寸" #: ../src/common/paper.cpp:119 msgid "#11 Envelope, 4 1/2 x 10 3/8 in" msgstr "#11 信封,4 1/2 x 10 3/8 英寸" #: ../src/common/paper.cpp:120 msgid "#12 Envelope, 4 3/4 x 11 in" msgstr "#12 信封,4 3/4 x 11 英寸" #: ../src/common/paper.cpp:121 msgid "#14 Envelope, 5 x 11 1/2 in" msgstr "#14 信封,5 x 11 1/2 英寸" #: ../src/common/paper.cpp:117 msgid "#9 Envelope, 3 7/8 x 8 7/8 in" msgstr "#9 信封,3 7/8 x 8 7/8 英寸" #: ../src/html/helpwnd.cpp:1044 #, c-format msgid "%d of %lu" msgstr "%d / %lu" #: ../src/html/helpwnd.cpp:1681 ../src/html/helpwnd.cpp:1719 #, c-format msgid "%i of %i" msgstr "%i / %i" #: ../src/generic/filectrlg.cpp:315 #, c-format msgid "%ld byte" msgid_plural "%ld bytes" msgstr[0] "%ld 字节" #: ../src/html/helpwnd.cpp:1046 #, c-format msgid "%lu of %lu" msgstr "%lu / %lu" #: ../src/common/cmdline.cpp:1050 #, c-format msgid "%s (or %s)" msgstr "%s (或 %s)" #: ../src/generic/logg.cpp:230 #, c-format msgid "%s Error" msgstr "%s 错误" #: ../src/generic/logg.cpp:242 #, c-format msgid "%s Information" msgstr "%s 信息" #: ../src/generic/preferencesg.cpp:110 #, c-format msgid "%s Preferences" msgstr "%s 偏好设置" #: ../src/generic/logg.cpp:234 #, c-format msgid "%s Warning" msgstr "%s 警告" #: ../src/common/tarstrm.cpp:1319 #, c-format msgid "%s did not fit the tar header for entry '%s'" msgstr "%s 不符合tar项目 '%s' 的标头" #: ../src/common/fldlgcmn.cpp:106 #, c-format msgid "%s files (%s)|%s" msgstr "%s 文件 (%s)|%s" #: ../src/common/stockitem.cpp:139 ../src/html/helpfrm.cpp:142 #: ../src/html/helpfrm.cpp:144 msgid "&About" msgstr "关于(&A)" #: ../src/common/stockitem.cpp:207 msgid "&Actual Size" msgstr "实际大小(&A)" #: ../src/richtext/richtextindentspage.cpp:262 msgid "&After a paragraph:" msgstr "段落之后(&A):" #: ../src/richtext/richtextindentspage.cpp:128 #: ../src/richtext/richtextliststylepage.cpp:319 msgid "&Alignment" msgstr "对齐(&A)" #: ../src/common/stockitem.cpp:141 msgid "&Apply" msgstr "应用(&A)" #: ../src/richtext/richtextstyledlg.cpp:251 msgid "&Apply Style" msgstr "应用样式(&A)" #: ../src/msw/mdi.cpp:175 msgid "&Arrange Icons" msgstr "重排图标(&A)" #: ../src/common/stockitem.cpp:195 msgid "&Ascending" msgstr "递增(&A)" #: ../src/common/stockitem.cpp:142 msgid "&Back" msgstr "返回(&B)" #: ../src/richtext/richtextstylepage.cpp:113 msgid "&Based on:" msgstr "基于(&B):" #: ../src/richtext/richtextindentspage.cpp:253 msgid "&Before a paragraph:" msgstr "段落之前(&B):" #: ../src/richtext/richtextfontpage.cpp:271 msgid "&Bg colour:" msgstr "背景颜色(&B):" #: ../src/common/stockitem.cpp:143 msgid "&Bold" msgstr "粗体(&B)" #: ../src/common/stockitem.cpp:144 msgid "&Bottom" msgstr "底端(&B)" #: ../src/richtext/richtextborderspage.cpp:359 #: ../src/richtext/richtextborderspage.cpp:503 #: ../src/richtext/richtextmarginspage.cpp:260 #: ../src/richtext/richtextmarginspage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:637 #: ../src/richtext/richtextsizepage.cpp:644 msgid "&Bottom:" msgstr "底端(&B):" #: ../include/wx/richtext/richtextbuffer.h:3530 #, fuzzy msgid "&Box" msgstr "粗体(&B)" #: ../src/richtext/richtextliststylepage.cpp:210 #: ../src/richtext/richtextbulletspage.cpp:159 msgid "&Bullet style:" msgstr "项目符号样式(&B):" #: ../src/common/stockitem.cpp:146 msgid "&CD-Rom" msgstr "CD 光驱(&C)" #: ../src/generic/wizard.cpp:432 ../src/generic/fontdlgg.cpp:470 #: ../src/generic/fontdlgg.cpp:489 ../src/osx/carbon/fontdlg.cpp:588 #: ../src/common/stockitem.cpp:145 msgid "&Cancel" msgstr "取消(&C)" #: ../src/msw/mdi.cpp:171 msgid "&Cascade" msgstr "层叠(&C)" #: ../include/wx/richtext/richtextbuffer.h:5587 #, fuzzy msgid "&Cell" msgstr "取消(&C)" #: ../src/richtext/richtextsymboldlg.cpp:439 msgid "&Character code:" msgstr "字符编码(&C):" #: ../src/common/stockitem.cpp:147 msgid "&Clear" msgstr "清除(&C)" #: ../src/generic/logg.cpp:522 ../src/common/stockitem.cpp:148 #: ../src/common/prntbase.cpp:1570 ../src/univ/themes/win32.cpp:3756 #: ../src/html/helpfrm.cpp:139 msgid "&Close" msgstr "关闭(&C)" #: ../src/common/stockitem.cpp:193 msgid "&Color" msgstr "颜色(&C)" #: ../src/richtext/richtextfontpage.cpp:258 msgid "&Colour:" msgstr "颜色(&C):" #: ../src/common/stockitem.cpp:149 msgid "&Convert" msgstr "转换(&C)" #: ../src/richtext/richtextctrl.cpp:326 ../src/osx/textctrl_osx.cpp:583 #: ../src/common/stockitem.cpp:150 ../src/msw/textctrl.cpp:2284 msgid "&Copy" msgstr "复制(&C)" #: ../src/generic/hyperlinkg.cpp:156 msgid "&Copy URL" msgstr "复制 URL(&C)" #: ../src/common/headerctrlcmn.cpp:328 msgid "&Customize..." msgstr "自定义(&C)..." #: ../src/generic/dbgrptg.cpp:334 msgid "&Debug report preview:" msgstr "调试报告预览(&D): " #: ../src/richtext/richtexttabspage.cpp:142 #: ../src/richtext/richtextctrl.cpp:328 ../src/osx/textctrl_osx.cpp:585 #: ../src/common/stockitem.cpp:152 ../src/msw/textctrl.cpp:2286 msgid "&Delete" msgstr "删除(&D)" #: ../src/richtext/richtextstyledlg.cpp:269 msgid "&Delete Style..." msgstr "删除样式(&D)..." #: ../src/common/stockitem.cpp:196 msgid "&Descending" msgstr "递减(&D)" #: ../src/generic/logg.cpp:688 msgid "&Details" msgstr "细节(&D)" #: ../src/common/stockitem.cpp:153 msgid "&Down" msgstr "向下(&D)" #: ../src/common/stockitem.cpp:154 msgid "&Edit" msgstr "编辑(&E)" #: ../src/richtext/richtextstyledlg.cpp:263 msgid "&Edit Style..." msgstr "编辑样式(&E)..." #: ../src/common/stockitem.cpp:155 msgid "&Execute" msgstr "执行(&E)" #: ../src/common/stockitem.cpp:157 ../src/html/helpfrm.cpp:146 msgid "&File" msgstr "文件(&F)" #: ../src/common/stockitem.cpp:158 msgid "&Find" msgstr "查找(&F)" #: ../src/generic/wizard.cpp:626 msgid "&Finish" msgstr "完成(&F)" #: ../src/common/stockitem.cpp:159 msgid "&First" msgstr "最前(&F)" #: ../src/richtext/richtextsizepage.cpp:244 msgid "&Floating mode:" msgstr "浮动模式(&F):" #: ../src/common/stockitem.cpp:160 msgid "&Floppy" msgstr "软盘(&F)" #: ../src/common/stockitem.cpp:194 msgid "&Font" msgstr "字体(&F)" #: ../src/generic/fontdlgg.cpp:371 msgid "&Font family:" msgstr "字体(&F):" #: ../src/richtext/richtextliststylepage.cpp:194 msgid "&Font for Level..." msgstr "层级字体(&F)..." #: ../src/richtext/richtextfontpage.cpp:156 #: ../src/richtext/richtextsymboldlg.cpp:400 msgid "&Font:" msgstr "字体(&F):" #: ../src/common/stockitem.cpp:161 msgid "&Forward" msgstr "前进(&F)" #: ../src/richtext/richtextsymboldlg.cpp:451 msgid "&From:" msgstr "从(&F):" #: ../src/common/stockitem.cpp:162 msgid "&Harddisk" msgstr "硬盘(&H)" #: ../src/richtext/richtextsizepage.cpp:351 #: ../src/richtext/richtextsizepage.cpp:358 msgid "&Height:" msgstr "高度(&H):" #: ../src/generic/wizard.cpp:435 ../src/richtext/richtextstyledlg.cpp:303 #: ../src/richtext/richtextsymboldlg.cpp:479 ../src/osx/menu_osx.cpp:785 #: ../src/common/stockitem.cpp:163 ../src/html/helpfrm.cpp:147 msgid "&Help" msgstr "帮助(&H)" #: ../include/wx/richmsgdlg.h:30 msgid "&Hide details" msgstr "隐藏细节(&H)" #: ../src/common/stockitem.cpp:164 msgid "&Home" msgstr "Home(&H)" #: ../src/richtext/richtextindentspage.cpp:184 #: ../src/richtext/richtextliststylepage.cpp:372 msgid "&Indentation (tenths of a mm)" msgstr "缩进(&I) (十分之一毫米)" #: ../src/richtext/richtextindentspage.cpp:167 #: ../src/richtext/richtextliststylepage.cpp:356 #, fuzzy msgid "&Indeterminate" msgstr "下划线(&U)" #: ../src/common/stockitem.cpp:166 msgid "&Index" msgstr "索引(&I)" #: ../src/common/stockitem.cpp:167 msgid "&Info" msgstr "信息(&I)" #: ../src/common/stockitem.cpp:168 msgid "&Italic" msgstr "斜体(&I)" #: ../src/common/stockitem.cpp:169 msgid "&Jump to" msgstr "跳转到(&J)" #: ../src/richtext/richtextindentspage.cpp:153 #: ../src/richtext/richtextliststylepage.cpp:342 msgid "&Justified" msgstr "分散对齐(&J)" #: ../src/common/stockitem.cpp:174 msgid "&Last" msgstr "最后(&L)" #: ../src/richtext/richtextindentspage.cpp:139 #: ../src/richtext/richtextliststylepage.cpp:328 msgid "&Left" msgstr "左(&L)" #: ../src/richtext/richtextindentspage.cpp:195 #: ../src/richtext/richtextborderspage.cpp:269 #: ../src/richtext/richtextborderspage.cpp:413 #: ../src/richtext/richtextliststylepage.cpp:381 #: ../src/richtext/richtextmarginspage.cpp:187 #: ../src/richtext/richtextmarginspage.cpp:301 #: ../src/richtext/richtextsizepage.cpp:532 #: ../src/richtext/richtextsizepage.cpp:539 msgid "&Left:" msgstr "左(&L):" #: ../src/richtext/richtextliststylepage.cpp:183 msgid "&List level:" msgstr "列表层级(&L):" #: ../src/generic/logg.cpp:523 msgid "&Log" msgstr "日志(&L)" #: ../src/univ/themes/win32.cpp:3748 msgid "&Move" msgstr "移动(&M)" #: ../src/richtext/richtextsizepage.cpp:672 msgid "&Move the object to:" msgstr "移动对象至(&M):" #: ../src/common/stockitem.cpp:175 msgid "&Network" msgstr "网络(&N)" #: ../src/richtext/richtexttabspage.cpp:136 ../src/common/stockitem.cpp:176 msgid "&New" msgstr "新建(&N)" #: ../src/aui/tabmdi.cpp:111 ../src/generic/mdig.cpp:100 #: ../src/msw/mdi.cpp:176 msgid "&Next" msgstr "下一个(&N)" #: ../src/generic/wizard.cpp:431 ../src/generic/wizard.cpp:626 msgid "&Next >" msgstr "下一个(&N) >" #: ../src/richtext/richtextsizepage.cpp:681 msgid "&Next Paragraph" msgstr "下一段落(&N)" #: ../src/generic/tipdlg.cpp:276 msgid "&Next Tip" msgstr "下一技巧(&N)" #: ../src/richtext/richtextstylepage.cpp:123 msgid "&Next style:" msgstr "下一个样式(&N):" #: ../src/common/stockitem.cpp:177 ../src/msw/msgdlg.cpp:476 msgid "&No" msgstr "否(&N)" #: ../src/generic/dbgrptg.cpp:356 msgid "&Notes:" msgstr "注意(&N):" #: ../src/richtext/richtextbulletspage.cpp:264 msgid "&Number:" msgstr "编号(&N):" #: ../src/generic/fontdlgg.cpp:475 ../src/generic/fontdlgg.cpp:482 #: ../src/osx/carbon/fontdlg.cpp:594 ../src/common/stockitem.cpp:178 msgid "&OK" msgstr "确认(&O)" #: ../src/generic/dbgrptg.cpp:342 ../src/common/stockitem.cpp:179 #: ../src/html/helpfrm.cpp:137 msgid "&Open..." msgstr "打开(&O)..." #: ../src/richtext/richtextindentspage.cpp:222 msgid "&Outline level:" msgstr "大纲层级(&O):" #: ../src/richtext/richtextindentspage.cpp:293 msgid "&Page Break" msgstr "断页符号(&P)" #: ../src/richtext/richtextctrl.cpp:327 ../src/osx/textctrl_osx.cpp:584 #: ../src/common/stockitem.cpp:180 ../src/msw/textctrl.cpp:2285 msgid "&Paste" msgstr "粘贴(&P)" #: ../include/wx/richtext/richtextbuffer.h:4655 msgid "&Picture" msgstr "图片(&P)" #: ../src/generic/fontdlgg.cpp:422 msgid "&Point size:" msgstr "字体大小(&P):" #: ../src/richtext/richtexttabspage.cpp:114 msgid "&Position (tenths of a mm):" msgstr "位置(&P) (十分之一毫米)" #: ../src/richtext/richtextsizepage.cpp:514 msgid "&Position mode:" msgstr "位置(&P)" #: ../src/common/stockitem.cpp:181 msgid "&Preferences" msgstr "偏好设置(&P)" #: ../src/aui/tabmdi.cpp:112 ../src/generic/mdig.cpp:101 #: ../src/msw/mdi.cpp:177 msgid "&Previous" msgstr "前页(&P)" #: ../src/richtext/richtextsizepage.cpp:675 msgid "&Previous Paragraph" msgstr "前一段落(&P)" #: ../src/common/stockitem.cpp:183 msgid "&Print..." msgstr "打印(&P)..." #: ../src/richtext/richtextctrl.cpp:332 ../src/richtext/richtextctrl.cpp:4945 #: ../src/common/stockitem.cpp:184 msgid "&Properties" msgstr "属性(&P)" #: ../src/common/stockitem.cpp:156 msgid "&Quit" msgstr "退出(&Q)" #: ../src/richtext/richtextctrl.cpp:323 ../src/osx/textctrl_osx.cpp:580 #: ../src/common/stockitem.cpp:185 ../src/common/cmdproc.cpp:293 #: ../src/common/cmdproc.cpp:300 ../src/msw/textctrl.cpp:2281 msgid "&Redo" msgstr "恢复(&R)" #: ../src/common/cmdproc.cpp:289 ../src/common/cmdproc.cpp:309 msgid "&Redo " msgstr "恢复(&R) " #: ../src/richtext/richtextstyledlg.cpp:257 msgid "&Rename Style..." msgstr "重命名样式(&R)..." #: ../src/generic/fdrepdlg.cpp:179 msgid "&Replace" msgstr "替换(&R)" #: ../src/richtext/richtextstyledlg.cpp:287 msgid "&Restart numbering" msgstr "重新编号(&R)" #: ../src/univ/themes/win32.cpp:3747 msgid "&Restore" msgstr "复原(&R)" #: ../src/richtext/richtextindentspage.cpp:146 #: ../src/richtext/richtextliststylepage.cpp:335 msgid "&Right" msgstr "右(&R)" #: ../src/richtext/richtextindentspage.cpp:213 #: ../src/richtext/richtextborderspage.cpp:299 #: ../src/richtext/richtextborderspage.cpp:443 #: ../src/richtext/richtextliststylepage.cpp:399 #: ../src/richtext/richtextmarginspage.cpp:212 #: ../src/richtext/richtextmarginspage.cpp:326 #: ../src/richtext/richtextsizepage.cpp:602 #: ../src/richtext/richtextsizepage.cpp:609 msgid "&Right:" msgstr "右(&R):" #: ../src/common/stockitem.cpp:190 msgid "&Save" msgstr "保存(&S)" #: ../src/common/stockitem.cpp:191 msgid "&Save as" msgstr "另存为(&S)" #: ../include/wx/richmsgdlg.h:29 msgid "&See details" msgstr "查看细节(&S)" #: ../src/generic/tipdlg.cpp:270 msgid "&Show tips at startup" msgstr "启动时显示技巧(&S)" #: ../src/univ/themes/win32.cpp:3750 msgid "&Size" msgstr "大小(&S)" #: ../src/richtext/richtextfontpage.cpp:168 msgid "&Size:" msgstr "大小(&S):" #: ../src/generic/progdlgg.cpp:282 msgid "&Skip" msgstr "跳过(&S)" #: ../src/richtext/richtextindentspage.cpp:242 #: ../src/richtext/richtextliststylepage.cpp:417 msgid "&Spacing (tenths of a mm)" msgstr "间距(&S) (十分之一毫米)" #: ../src/common/stockitem.cpp:197 msgid "&Spell Check" msgstr "拼写检查(&S)" #: ../src/common/stockitem.cpp:198 msgid "&Stop" msgstr "停止(&S)" #: ../src/richtext/richtextfontpage.cpp:284 ../src/common/stockitem.cpp:199 msgid "&Strikethrough" msgstr "删除线(&S)" #: ../src/generic/fontdlgg.cpp:382 ../src/richtext/richtextstylepage.cpp:104 msgid "&Style:" msgstr "字体(&S):" #: ../src/richtext/richtextstyledlg.cpp:198 msgid "&Styles:" msgstr "样式(&S):" #: ../src/richtext/richtextsymboldlg.cpp:413 msgid "&Subset:" msgstr "子集(&S):" #: ../src/richtext/richtextliststylepage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:222 msgid "&Symbol:" msgstr "符号(&S):" #: ../include/wx/richtext/richtextbuffer.h:5679 msgid "&Table" msgstr "表格(&T)" #: ../src/common/stockitem.cpp:200 msgid "&Top" msgstr "顶端(&T)" #: ../src/richtext/richtextborderspage.cpp:329 #: ../src/richtext/richtextborderspage.cpp:473 #: ../src/richtext/richtextmarginspage.cpp:235 #: ../src/richtext/richtextmarginspage.cpp:349 #: ../src/richtext/richtextsizepage.cpp:567 #: ../src/richtext/richtextsizepage.cpp:574 msgid "&Top:" msgstr "顶端(&T):" #: ../src/generic/fontdlgg.cpp:444 ../src/common/stockitem.cpp:202 msgid "&Underline" msgstr "下划线(&U)" #: ../src/richtext/richtextfontpage.cpp:243 msgid "&Underlining:" msgstr "下划线(&U)" #: ../src/richtext/richtextctrl.cpp:322 ../src/osx/textctrl_osx.cpp:579 #: ../src/common/stockitem.cpp:203 ../src/common/cmdproc.cpp:271 #: ../src/msw/textctrl.cpp:2280 msgid "&Undo" msgstr "撤销(&U)" #: ../src/common/cmdproc.cpp:265 msgid "&Undo " msgstr "撤销(&U) " #: ../src/common/stockitem.cpp:204 msgid "&Unindent" msgstr "取消缩进(&U)" #: ../src/common/stockitem.cpp:205 msgid "&Up" msgstr "向上(&U)" #: ../src/richtext/richtextsizepage.cpp:278 msgid "&Vertical alignment:" msgstr "垂直对齐(&V)" #: ../src/generic/dbgrptg.cpp:340 msgid "&View..." msgstr "查看(&V)..." #: ../src/generic/fontdlgg.cpp:393 msgid "&Weight:" msgstr "字体粗细(&W):" #: ../src/richtext/richtextsizepage.cpp:317 #: ../src/richtext/richtextsizepage.cpp:324 msgid "&Width:" msgstr "宽度(&W):" #: ../src/aui/tabmdi.cpp:311 ../src/aui/tabmdi.cpp:327 #: ../src/aui/tabmdi.cpp:329 ../src/generic/mdig.cpp:294 #: ../src/generic/mdig.cpp:310 ../src/generic/mdig.cpp:314 #: ../src/msw/mdi.cpp:77 msgid "&Window" msgstr "窗口(&W)" #: ../src/common/stockitem.cpp:206 ../src/msw/msgdlg.cpp:476 msgid "&Yes" msgstr "是(&Y)" #: ../src/common/config.cpp:523 ../src/msw/regconf.cpp:258 #, c-format msgid "'%s' has extra '..', ignored." msgstr "'%s' 有额外的 '..',忽略之。" #: ../src/common/valtext.cpp:249 ../src/common/valtext.cpp:251 #: ../src/common/valtext.cpp:253 ../src/common/valtext.cpp:255 #, c-format msgid "'%s' is invalid" msgstr "'%s' 是无效的" #: ../src/common/cmdline.cpp:948 ../src/common/cmdline.cpp:966 #, c-format msgid "'%s' is not a correct numeric value for option '%s'." msgstr "'%s' 不是匹配选项 '%s'的正确数字值。" #: ../src/common/translation.cpp:1086 #, c-format msgid "'%s' is not a valid message catalog." msgstr "'%s' 不是有效的消息目录。" #: ../src/common/textbuf.cpp:239 #, c-format msgid "'%s' is probably a binary buffer." msgstr "'%s' 或许是一个二进制文件。" #: ../src/common/valtext.cpp:247 #, c-format msgid "'%s' should be numeric." msgstr "'%s' 应该是一个数值。" #: ../src/common/valtext.cpp:239 #, c-format msgid "'%s' should only contain ASCII characters." msgstr "'%s' 应该仅包含ASCII字符。" #: ../src/common/valtext.cpp:241 #, c-format msgid "'%s' should only contain alphabetic characters." msgstr "'%s' 应仅包含字母字符。" #: ../src/common/valtext.cpp:243 #, c-format msgid "'%s' should only contain alphabetic or numeric characters." msgstr "'%s' 应仅包含字母或数字字符。" #: ../src/common/valtext.cpp:245 #, c-format msgid "'%s' should only contain digits." msgstr "'%s' 应该仅包含数字。" #: ../src/richtext/richtextliststylepage.cpp:229 #: ../src/richtext/richtextbulletspage.cpp:179 msgid "(*)" msgstr "(*)" #: ../src/html/helpwnd.cpp:976 msgid "(Help)" msgstr "(帮助)" #: ../src/richtext/richtextliststylepage.cpp:481 #: ../src/richtext/richtextbulletspage.cpp:286 msgid "(None)" msgstr "(无)" #: ../src/richtext/richtextsymboldlg.cpp:504 msgid "(Normal text)" msgstr "(正常字体)" #: ../src/html/helpwnd.cpp:426 ../src/html/helpwnd.cpp:1119 #: ../src/html/helpwnd.cpp:1745 msgid "(bookmarks)" msgstr "(书签)" #: ../src/richtext/richtextindentspage.cpp:274 #: ../src/richtext/richtextindentspage.cpp:286 #: ../src/richtext/richtextindentspage.cpp:287 #: ../src/richtext/richtextindentspage.cpp:311 #: ../src/richtext/richtextindentspage.cpp:326 #: ../src/richtext/richtextformatdlg.cpp:831 #: ../src/richtext/richtextfontpage.cpp:331 #: ../src/richtext/richtextfontpage.cpp:335 #: ../src/richtext/richtextfontpage.cpp:339 #: ../src/richtext/richtextliststylepage.cpp:448 #: ../src/richtext/richtextliststylepage.cpp:460 #: ../src/richtext/richtextliststylepage.cpp:461 msgid "(none)" msgstr "(无)" #: ../src/richtext/richtextliststylepage.cpp:492 #: ../src/richtext/richtextbulletspage.cpp:297 msgid "*" msgstr "*" #: ../src/richtext/richtextliststylepage.cpp:236 #: ../src/richtext/richtextbulletspage.cpp:186 msgid "*)" msgstr "*)" #: ../src/richtext/richtextliststylepage.cpp:495 #: ../src/richtext/richtextbulletspage.cpp:300 msgid "+" msgstr "+" #: ../src/msw/utils.cpp:1324 msgid ", 64-bit edition" msgstr ",64位版" #: ../src/richtext/richtextliststylepage.cpp:493 #: ../src/richtext/richtextbulletspage.cpp:298 msgid "-" msgstr "-" #: ../src/generic/filepickerg.cpp:66 msgid "..." msgstr "..." #: ../src/richtext/richtextindentspage.cpp:276 #: ../src/richtext/richtextliststylepage.cpp:450 msgid "1.1" msgstr "1.1" #: ../src/richtext/richtextindentspage.cpp:277 #: ../src/richtext/richtextliststylepage.cpp:451 msgid "1.2" msgstr "1.2" #: ../src/richtext/richtextindentspage.cpp:278 #: ../src/richtext/richtextliststylepage.cpp:452 msgid "1.3" msgstr "1.3" #: ../src/richtext/richtextindentspage.cpp:279 #: ../src/richtext/richtextliststylepage.cpp:453 msgid "1.4" msgstr "1.4" #: ../src/richtext/richtextindentspage.cpp:280 #: ../src/richtext/richtextliststylepage.cpp:454 msgid "1.5" msgstr "1.5" #: ../src/richtext/richtextindentspage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:455 msgid "1.6" msgstr "1.6" #: ../src/richtext/richtextindentspage.cpp:282 #: ../src/richtext/richtextliststylepage.cpp:456 msgid "1.7" msgstr "1.7" #: ../src/richtext/richtextindentspage.cpp:283 #: ../src/richtext/richtextliststylepage.cpp:457 msgid "1.8" msgstr "1.8" #: ../src/richtext/richtextindentspage.cpp:284 #: ../src/richtext/richtextliststylepage.cpp:458 msgid "1.9" msgstr "1.9" #: ../src/common/paper.cpp:141 msgid "10 x 11 in" msgstr "10 x 11 英寸" #: ../src/common/paper.cpp:114 msgid "10 x 14 in" msgstr "10 x 14 英寸" #: ../src/common/paper.cpp:115 msgid "11 x 17 in" msgstr "11 x 17 英寸" #: ../src/common/paper.cpp:185 msgid "12 x 11 in" msgstr "12 x 11 英寸" #: ../src/common/paper.cpp:142 msgid "15 x 11 in" msgstr "15 x 11 英寸" #: ../src/richtext/richtextindentspage.cpp:285 #: ../src/richtext/richtextliststylepage.cpp:459 msgid "2" msgstr "2" #: ../src/common/paper.cpp:133 msgid "6 3/4 Envelope, 3 5/8 x 6 1/2 in" msgstr "6 3/4 信封, 3 5/8 x 6 1/2 英寸" #: ../src/common/paper.cpp:140 msgid "9 x 11 in" msgstr "9 x 11 英寸" #: ../src/html/htmprint.cpp:431 msgid ": file does not exist!" msgstr ": 文件不存在!" #: ../src/common/fontmap.cpp:199 msgid ": unknown charset" msgstr ": 未知字符集" #: ../src/common/fontmap.cpp:413 msgid ": unknown encoding" msgstr ": 未知编码" #: ../src/generic/wizard.cpp:437 msgid "< &Back" msgstr "< 返回(&B)" #: ../src/osx/carbon/fontdlg.cpp:608 ../src/osx/carbon/fontdlg.cpp:815 #: ../src/osx/carbon/fontdlg.cpp:835 msgid "" msgstr "<任意 Decorative>" #: ../src/osx/carbon/fontdlg.cpp:609 ../src/osx/carbon/fontdlg.cpp:817 #: ../src/osx/carbon/fontdlg.cpp:837 msgid "" msgstr "<任意 Modern>" #: ../src/osx/carbon/fontdlg.cpp:607 ../src/osx/carbon/fontdlg.cpp:813 #: ../src/osx/carbon/fontdlg.cpp:833 msgid "" msgstr "<任意 Roman>" #: ../src/osx/carbon/fontdlg.cpp:610 ../src/osx/carbon/fontdlg.cpp:819 #: ../src/osx/carbon/fontdlg.cpp:839 msgid "" msgstr "<任意 Script>" #: ../src/osx/carbon/fontdlg.cpp:611 ../src/osx/carbon/fontdlg.cpp:824 #: ../src/osx/carbon/fontdlg.cpp:843 msgid "" msgstr "<任意 Swiss>" #: ../src/osx/carbon/fontdlg.cpp:612 ../src/osx/carbon/fontdlg.cpp:821 #: ../src/osx/carbon/fontdlg.cpp:841 msgid "" msgstr "<任意 Teletype>" #: ../src/osx/carbon/fontdlg.cpp:606 msgid "" msgstr "<任意>" #: ../src/generic/filectrlg.cpp:286 ../src/generic/filectrlg.cpp:309 msgid "" msgstr "<目录>" #: ../src/generic/filectrlg.cpp:290 ../src/generic/filectrlg.cpp:313 msgid "" msgstr "<盘符>" #: ../src/generic/filectrlg.cpp:288 ../src/generic/filectrlg.cpp:311 msgid "" msgstr "<连接>" #: ../src/html/helpwnd.cpp:1279 msgid "Bold italic face.
    " msgstr "粗斜体.
    " #: ../src/html/helpwnd.cpp:1283 msgid "bold italic underlined
    " msgstr "粗斜体 加下划线
    " #: ../src/html/helpwnd.cpp:1278 msgid "Bold face. " msgstr "粗体. " #: ../src/html/helpwnd.cpp:1277 msgid "Italic face. " msgstr "斜体. " #: ../src/richtext/richtextliststylepage.cpp:494 #: ../src/richtext/richtextbulletspage.cpp:299 msgid ">" msgstr ">" #: ../src/generic/dbgrptg.cpp:318 msgid "A debug report has been generated in the directory\n" msgstr "产生了一份调试报告, 位于目录\n" #: ../src/common/debugrpt.cpp:578 msgid "A debug report has been generated. It can be found in" msgstr "产生了一份调试报告, 位于" #: ../src/common/xtixml.cpp:418 msgid "A non empty collection must consist of 'element' nodes" msgstr "非空集合必须包含 'element' 节点" #: ../src/richtext/richtextliststylepage.cpp:304 #: ../src/richtext/richtextliststylepage.cpp:306 #: ../src/richtext/richtextbulletspage.cpp:257 #: ../src/richtext/richtextbulletspage.cpp:259 msgid "A standard bullet name." msgstr "标准项目符号名称。" #: ../src/common/paper.cpp:218 msgid "A0 sheet, 841 x 1189 mm" msgstr "A0 纸张, 841 x 1189 毫米" #: ../src/common/paper.cpp:219 msgid "A1 sheet, 594 x 841 mm" msgstr "A1 纸张, 594 x 841 毫米" #: ../src/common/paper.cpp:160 msgid "A2 420 x 594 mm" msgstr "A2 纸张, 420 x 594 毫米" #: ../src/common/paper.cpp:157 msgid "A3 Extra 322 x 445 mm" msgstr "特大 A3 纸张, 322 x 445 毫米" #: ../src/common/paper.cpp:162 msgid "A3 Extra Transverse 322 x 445 mm" msgstr "特大 A3 纸张(横排), 322 x 445 毫米" #: ../src/common/paper.cpp:171 msgid "A3 Rotated 420 x 297 mm" msgstr "横向 A3 纸张, 420 x 297 毫米" #: ../src/common/paper.cpp:161 msgid "A3 Transverse 297 x 420 mm" msgstr "A3 纸张(横排), 297 x 420 毫米" #: ../src/common/paper.cpp:107 msgid "A3 sheet, 297 x 420 mm" msgstr "A3 纸张, 297 x 420 毫米" #: ../src/common/paper.cpp:147 msgid "A4 Extra 9.27 x 12.69 in" msgstr "特大 A4 纸张, 9.27 x 12.69 英寸" #: ../src/common/paper.cpp:154 msgid "A4 Plus 210 x 330 mm" msgstr "加大 A4 纸张, 210 x 330 毫米" #: ../src/common/paper.cpp:172 msgid "A4 Rotated 297 x 210 mm" msgstr "横向 A4 纸张, 297 x 210 毫米" #: ../src/common/paper.cpp:149 msgid "A4 Transverse 210 x 297 mm" msgstr "A4 纸张(横排), 210 x 297 毫米" #: ../src/common/paper.cpp:98 msgid "A4 sheet, 210 x 297 mm" msgstr "A4 纸张, 210 x 297 毫米" #: ../src/common/paper.cpp:108 msgid "A4 small sheet, 210 x 297 mm" msgstr "小 A4 纸张, 210 x 297 毫米" #: ../src/common/paper.cpp:158 msgid "A5 Extra 174 x 235 mm" msgstr "特大 A5 纸张, 174 x 235 毫米" #: ../src/common/paper.cpp:173 msgid "A5 Rotated 210 x 148 mm" msgstr "横向 A5 纸张, 210 x 148 毫米" #: ../src/common/paper.cpp:155 msgid "A5 Transverse 148 x 210 mm" msgstr "A5 纸张(横排), 148 x 210 毫米" #: ../src/common/paper.cpp:109 msgid "A5 sheet, 148 x 210 mm" msgstr "A5 纸张, 148 x 210 毫米" #: ../src/common/paper.cpp:165 msgid "A6 105 x 148 mm" msgstr "A6 纸张, 105 x 148 毫米" #: ../src/common/paper.cpp:178 msgid "A6 Rotated 148 x 105 mm" msgstr "横向 A5 纸张, 148 x 105 毫米" #: ../src/generic/fontdlgg.cpp:83 ../src/richtext/richtextformatdlg.cpp:526 #: ../src/osx/carbon/fontdlg.cpp:339 msgid "ABCDEFGabcdefg12345" msgstr "ABCDEFGabcdefg12345" #: ../src/common/accelcmn.cpp:76 msgid "ADD" msgstr "ADD" #: ../src/richtext/richtextsymboldlg.cpp:458 ../src/common/ftp.cpp:405 msgid "ASCII" msgstr "ASCII" #: ../src/osx/menu_osx.cpp:630 ../src/common/stockitem.cpp:139 msgid "About" msgstr "关于" #: ../src/generic/aboutdlgg.cpp:140 ../src/msw/aboutdlg.cpp:64 #, c-format msgid "About %s" msgstr "关于 %s" #: ../src/richtext/richtextsizepage.cpp:520 msgid "Absolute" msgstr "" #: ../src/common/stockitem.cpp:207 msgid "Actual Size" msgstr "实际大小" #: ../src/common/stockitem.cpp:140 msgid "Add" msgstr "加入" #: ../src/richtext/richtextbuffer.cpp:10751 #, fuzzy msgid "Add Column" msgstr "添加列" #: ../src/richtext/richtextbuffer.cpp:10688 #, fuzzy msgid "Add Row" msgstr "添加行" #: ../src/html/helpwnd.cpp:439 msgid "Add current page to bookmarks" msgstr "把当前页加到书签中" #: ../src/generic/colrdlgg.cpp:283 msgid "Add to custom colours" msgstr "加到自定义颜色中" #: ../include/wx/xtiprop.h:259 msgid "AddToPropertyCollection called on a generic accessor" msgstr "在一个通用处理器上调用AddToPropertyCollection" #: ../include/wx/xtiprop.h:197 msgid "AddToPropertyCollection called w/o valid adder" msgstr "调用AddToPropertyCollection时未带有效的adder" #: ../src/html/helpctrl.cpp:159 #, c-format msgid "Adding book %s" msgstr "正在添加卷 %s" #: ../src/osx/carbon/dataview.cpp:1933 msgid "Adding flavor TEXT failed" msgstr "添加风格 TEXT 失败" #: ../src/osx/carbon/dataview.cpp:1954 msgid "Adding flavor utxt failed" msgstr "添加风格 utxt 失败" #: ../src/common/preferencescmn.cpp:41 msgid "Advanced" msgstr "高级" #: ../src/richtext/richtextliststylepage.cpp:435 msgid "After a paragraph:" msgstr "段落之后:" #: ../src/common/stockitem.cpp:172 msgid "Align Left" msgstr "左对齐" #: ../src/common/stockitem.cpp:173 msgid "Align Right" msgstr "右对齐" #: ../src/richtext/richtextsizepage.cpp:266 msgid "Alignment" msgstr "对齐" #: ../src/generic/prntdlgg.cpp:215 msgid "All" msgstr "所有" #: ../src/generic/filectrlg.cpp:1205 ../src/common/fldlgcmn.cpp:89 #, c-format msgid "All files (%s)|%s" msgstr "所有文件 (%s)|%s" #: ../include/wx/defs.h:2922 msgid "All files (*)|*" msgstr "所有文件 (*)|*" #: ../include/wx/defs.h:2919 msgid "All files (*.*)|*.*" msgstr "所有文件 (*.*)|*.*" #: ../src/richtext/richtextstyles.cpp:1057 msgid "All styles" msgstr "所有样式" #: ../src/propgrid/manager.cpp:1496 msgid "Alphabetic Mode" msgstr "字母顺序模式" #: ../src/common/xtistrm.cpp:429 msgid "Already Registered Object passed to SetObjectClassInfo" msgstr "传递已注册对象给 SetObjectClassInfo" #: ../src/unix/dialup.cpp:353 msgid "Already dialling ISP." msgstr "已经拨接 ISP 。" #: ../src/common/accelcmn.cpp:320 ../src/univ/themes/win32.cpp:3756 msgid "Alt+" msgstr "Alt+" #: ../src/common/debugrpt.cpp:581 msgid "And includes the following files:\n" msgstr "并且包含以下文件:\n" #: ../src/generic/animateg.cpp:162 #, c-format msgid "Animation file is not of type %ld." msgstr "动画文件的类型不是 %ld。" #: ../src/generic/logg.cpp:1034 #, c-format msgid "Append log to file '%s' (choosing [No] will overwrite it)?" msgstr "把日志添加到文件 '%s' (选择 [否] 将覆盖该文件)?" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:610 #: ../src/osx/menu_osx.cpp:649 ../src/osx/menu_osx.cpp:657 #, fuzzy msgid "Application" msgstr "选区" #: ../src/common/stockitem.cpp:141 msgid "Apply" msgstr "应用" #: ../src/richtext/richtextliststylepage.cpp:482 #: ../src/richtext/richtextbulletspage.cpp:287 msgid "Arabic" msgstr "阿拉伯数字" #: ../src/common/fmapbase.cpp:153 msgid "Arabic (ISO-8859-6)" msgstr "阿拉伯语 (ISO-8859-6)" #: ../src/msw/ole/automtn.cpp:661 #, c-format msgid "Argument %u not found." msgstr "找不到参数 %u。" #: ../src/generic/aboutdlgg.cpp:184 msgid "Artists" msgstr "美术设计者" #: ../src/common/stockitem.cpp:195 msgid "Ascending" msgstr "升序" #: ../src/generic/filectrlg.cpp:468 msgid "Attributes" msgstr "属性(Attributes)" #: ../src/richtext/richtextliststylepage.cpp:294 #: ../src/richtext/richtextbulletspage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:247 msgid "Available fonts." msgstr "可用字体。" #: ../src/common/paper.cpp:138 msgid "B4 (ISO) 250 x 353 mm" msgstr "B4 纸张(ISO), 250 x 353 毫米" #: ../src/common/paper.cpp:174 msgid "B4 (JIS) Rotated 364 x 257 mm" msgstr "横向 B4 纸张(JIS), 364 x 257 毫米" #: ../src/common/paper.cpp:128 msgid "B4 Envelope, 250 x 353 mm" msgstr "B4 信封, 250 x 353 毫米" #: ../src/common/paper.cpp:110 msgid "B4 sheet, 250 x 354 mm" msgstr "B4 纸张, 250 x 354 毫米" #: ../src/common/paper.cpp:159 msgid "B5 (ISO) Extra 201 x 276 mm" msgstr "特大 B4 纸张(JIS), 201 x 276 毫米" #: ../src/common/paper.cpp:175 msgid "B5 (JIS) Rotated 257 x 182 mm" msgstr "横向 B5 纸张(JIS), 257 x 182 毫米" #: ../src/common/paper.cpp:156 msgid "B5 (JIS) Transverse 182 x 257 mm" msgstr "B5 纸张 (JIS, 横排), 182 x 257 毫米" #: ../src/common/paper.cpp:129 msgid "B5 Envelope, 176 x 250 mm" msgstr "B5 信封, 176 x 250 毫米" #: ../src/common/paper.cpp:111 msgid "B5 sheet, 182 x 257 millimeter" msgstr "B5 纸张, 182 x 257 毫米" #: ../src/common/paper.cpp:183 msgid "B6 (JIS) 128 x 182 mm" msgstr "B6 纸张(JIS), 128 x 182 毫米" #: ../src/common/paper.cpp:184 msgid "B6 (JIS) Rotated 182 x 128 mm" msgstr "横向 B6 纸张(JIS), 182 x 128 毫米" #: ../src/common/paper.cpp:130 msgid "B6 Envelope, 176 x 125 mm" msgstr "B6 信封, 176 x 125 毫米" #: ../src/common/accelcmn.cpp:49 msgid "BACK" msgstr "BACK" #: ../src/common/imagbmp.cpp:523 ../src/common/imagbmp.cpp:553 #: ../src/common/imagbmp.cpp:568 msgid "BMP: Couldn't allocate memory." msgstr "BMP: 无法分配内存。" #: ../src/common/imagbmp.cpp:97 msgid "BMP: Couldn't save invalid image." msgstr "BMP: 无法保存无效图像。" #: ../src/common/imagbmp.cpp:338 msgid "BMP: Couldn't write RGB color map." msgstr "BMP: 无法写 RGB 色彩表。" #: ../src/common/imagbmp.cpp:473 msgid "BMP: Couldn't write data." msgstr "BMP: 无法写数据。" #: ../src/common/imagbmp.cpp:239 msgid "BMP: Couldn't write the file (Bitmap) header." msgstr "BMP: 无法写文件头 (Bitmap)。" #: ../src/common/imagbmp.cpp:262 msgid "BMP: Couldn't write the file (BitmapInfo) header." msgstr "BMP: 无法写文件头 (BitmapInfo)。" #: ../src/common/imagbmp.cpp:133 msgid "BMP: wxImage doesn't have own wxPalette." msgstr "BMP: wxImage 没有自己的 wxPalette。" #: ../src/common/stockitem.cpp:142 msgid "Back" msgstr "返回" #: ../src/richtext/richtextbackgroundpage.cpp:119 #: ../src/richtext/richtextformatdlg.cpp:374 msgid "Background" msgstr "背景" #: ../src/richtext/richtextbackgroundpage.cpp:131 msgid "Background &colour:" msgstr "背景颜色(&c):" #: ../src/osx/carbon/fontdlg.cpp:406 msgid "Background colour" msgstr "背景颜色" #: ../src/common/fmapbase.cpp:160 msgid "Baltic (ISO-8859-13)" msgstr "波罗的海语 (ISO-8859-13)" #: ../src/common/fmapbase.cpp:151 msgid "Baltic (old) (ISO-8859-4)" msgstr "波罗的海语 (旧式) (ISO-8859-4)" #: ../src/richtext/richtextliststylepage.cpp:426 msgid "Before a paragraph:" msgstr "段落之前:" #: ../src/richtext/richtextliststylepage.cpp:489 #: ../src/richtext/richtextbulletspage.cpp:294 msgid "Bitmap" msgstr "位图" #: ../src/osx/carbon/dataview.cpp:2396 msgid "Bitmap renderer cannot render value; value type: " msgstr "位图渲染器无法渲染该值; 类型为:" #: ../src/generic/fontdlgg.cpp:333 ../src/richtext/richtextfontpage.cpp:337 #: ../src/osx/carbon/fontdlg.cpp:540 ../src/common/stockitem.cpp:143 msgid "Bold" msgstr "粗体" #: ../src/richtext/richtextborderspage.cpp:256 #: ../src/richtext/richtextborderspage.cpp:389 msgid "Border" msgstr "边框" #: ../src/richtext/richtextformatdlg.cpp:368 msgid "Borders" msgstr "边框" #: ../src/richtext/richtextsizepage.cpp:288 ../src/common/stockitem.cpp:144 msgid "Bottom" msgstr "底端" #: ../src/generic/prntdlgg.cpp:893 msgid "Bottom margin (mm):" msgstr "底边距 (毫米):" #: ../src/richtext/richtextbuffer.cpp:8919 msgid "Box Properties" msgstr "方块属性" #: ../src/richtext/richtextstyles.cpp:1061 msgid "Box styles" msgstr "方块样式" #: ../src/common/filepickercmn.cpp:43 ../src/common/filepickercmn.cpp:44 msgid "Browse" msgstr "浏览" #: ../src/richtext/richtextliststylepage.cpp:245 #: ../src/richtext/richtextbulletspage.cpp:195 msgid "Bullet &Alignment:" msgstr "项目符号对齐(&A):" #: ../src/richtext/richtextliststylepage.cpp:309 msgid "Bullet style" msgstr "项目符号样式" #: ../src/richtext/richtextformatdlg.cpp:342 msgid "Bullets" msgstr "项目符号" #: ../src/common/paper.cpp:99 msgid "C sheet, 17 x 22 in" msgstr "C 纸张, 17 x 22 英寸" #: ../src/generic/logg.cpp:520 msgid "C&lear" msgstr "清除(&L)" #: ../src/generic/fontdlgg.cpp:406 msgid "C&olour:" msgstr "颜色(&o):" #: ../src/common/paper.cpp:124 msgid "C3 Envelope, 324 x 458 mm" msgstr "C3 信封, 324 x 458 毫米" #: ../src/common/paper.cpp:125 msgid "C4 Envelope, 229 x 324 mm" msgstr "C4 信封, 229 x 324 毫米" #: ../src/common/paper.cpp:123 msgid "C5 Envelope, 162 x 229 mm" msgstr "C5 信封, 162 x 229 毫米" #: ../src/common/paper.cpp:126 msgid "C6 Envelope, 114 x 162 mm" msgstr "C6 信封, 114 x 162 毫米" #: ../src/common/paper.cpp:127 msgid "C65 Envelope, 114 x 229 mm" msgstr "C65 信封, 114 x 229 毫米" #: ../src/common/accelcmn.cpp:66 msgid "CANCEL" msgstr "CANCEL" #: ../src/common/accelcmn.cpp:70 msgid "CAPITAL" msgstr "CAPITAL" #: ../src/common/stockitem.cpp:146 msgid "CD-Rom" msgstr "CD 光驱" #: ../src/html/chm.cpp:815 ../src/html/chm.cpp:874 msgid "CHM handler currently supports only local files!" msgstr "CHM处理程序目前只支持本地文件!" #: ../src/common/accelcmn.cpp:67 msgid "CLEAR" msgstr "CLEAR" #: ../src/common/accelcmn.cpp:111 msgid "COMMAND" msgstr "COMMAND" #: ../src/richtext/richtextfontpage.cpp:291 msgid "Ca&pitals" msgstr "大写(&P)" #: ../src/common/cmdproc.cpp:267 msgid "Can't &Undo " msgstr "无法撤销(&U)" #: ../src/common/image.cpp:2686 msgid "Can't automatically determine the image format for non-seekable input." msgstr "不能自动确定不可定位输入的图像格式。" #: ../src/msw/registry.cpp:505 #, c-format msgid "Can't close registry key '%s'" msgstr "无法关闭注册键 '%s'" #: ../src/msw/registry.cpp:583 #, c-format msgid "Can't copy values of unsupported type %d." msgstr "无法复制不支持的类型 %d 的值." #: ../src/msw/registry.cpp:486 #, c-format msgid "Can't create registry key '%s'" msgstr "无法创建注册键 '%s'" #: ../src/msw/thread.cpp:696 ../src/os2/thread.cpp:494 msgid "Can't create thread" msgstr "无法创建线程" #: ../src/msw/window.cpp:3793 #, c-format msgid "Can't create window of class %s" msgstr "无法创建窗口类 %s" #: ../src/msw/registry.cpp:776 #, c-format msgid "Can't delete key '%s'" msgstr "无法删除键 '%s'" #: ../src/msw/iniconf.cpp:458 ../src/os2/iniconf.cpp:471 #, c-format msgid "Can't delete the INI file '%s'" msgstr "无法删除 INI 文件 '%s'" #: ../src/msw/registry.cpp:804 #, c-format msgid "Can't delete value '%s' from key '%s'" msgstr "无法删除值 '%s' 位于键 '%s'" #: ../src/msw/registry.cpp:1161 #, c-format msgid "Can't enumerate subkeys of key '%s'" msgstr "无法枚举键 '%s' 的子键" #: ../src/msw/registry.cpp:1116 #, c-format msgid "Can't enumerate values of key '%s'" msgstr "无法枚举键 '%s' 的值" #: ../src/msw/registry.cpp:1379 #, c-format msgid "Can't export value of unsupported type %d." msgstr "无法导出不支持的类型 %d 的值." #: ../src/common/ffile.cpp:236 #, c-format msgid "Can't find current position in file '%s'" msgstr "无法在文件 '%s' 中找到当前位置" #: ../src/msw/registry.cpp:416 #, c-format msgid "Can't get info about registry key '%s'" msgstr "无法获得注册键 '%s' 的信息" #: ../src/common/zstream.cpp:346 msgid "Can't initialize zlib deflate stream." msgstr "无法初始化 zlib 压缩流。" #: ../src/common/zstream.cpp:185 msgid "Can't initialize zlib inflate stream." msgstr "无法初始化 zlib 解压流。" #: ../src/msw/fswatcher.cpp:432 #, c-format msgid "Can't monitor non-existent directory \"%s\" for changes." msgstr "无法监视不存在目录 \"%s\" 的更新。" #: ../src/msw/registry.cpp:452 #, c-format msgid "Can't open registry key '%s'" msgstr "无法打开注册键 '%s'" #: ../src/common/zstream.cpp:252 #, c-format msgid "Can't read from inflate stream: %s" msgstr "无法从解压流 %s 中读取" #: ../src/common/zstream.cpp:244 msgid "Can't read inflate stream: unexpected EOF in underlying stream." msgstr "无法读解压流: 流内有异常的 EOF。" #: ../src/msw/registry.cpp:1048 #, c-format msgid "Can't read value of '%s'" msgstr "无法读 '%s' 的值" #: ../src/msw/registry.cpp:877 ../src/msw/registry.cpp:909 #: ../src/msw/registry.cpp:971 #, c-format msgid "Can't read value of key '%s'" msgstr "无法读键 '%s' 的值" #: ../src/common/image.cpp:2483 #, c-format msgid "Can't save image to file '%s': unknown extension." msgstr "无法从将图像保存至文件 '%s' 中: 无法识别的扩展名。" #: ../src/generic/logg.cpp:579 ../src/generic/logg.cpp:996 msgid "Can't save log contents to file." msgstr "无法把日志内容保存到文件。" #: ../src/msw/thread.cpp:652 ../src/os2/thread.cpp:477 msgid "Can't set thread priority" msgstr "无法设置线程优先级" #: ../src/msw/registry.cpp:895 ../src/msw/registry.cpp:939 #: ../src/msw/registry.cpp:1065 #, c-format msgid "Can't set value of '%s'" msgstr "无法设置 '%s' 的值" #: ../src/unix/utilsunx.cpp:357 msgid "Can't write to child process's stdin" msgstr "无法写入子进程的标准输入" #: ../src/common/zstream.cpp:427 #, c-format msgid "Can't write to deflate stream: %s" msgstr "无法写到压缩流: %s" #: ../include/wx/msgdlg.h:274 ../src/generic/dirdlgg.cpp:107 #: ../src/richtext/richtextstyledlg.cpp:300 ../src/common/stockitem.cpp:145 #: ../src/msw/msgdlg.cpp:489 ../src/msw/progdlg.cpp:673 #: ../src/gtk1/fontdlg.cpp:144 ../src/motif/msgdlg.cpp:196 msgid "Cancel" msgstr "取消" #: ../src/os2/thread.cpp:116 msgid "Cannot create mutex." msgstr "无法创建互斥子。" #: ../src/osx/carbon/dataview.cpp:895 msgid "Cannot create new column's ID. Probably max. number of columns reached." msgstr "无法建立新的列 ID。可能已达到列数量的上限。" #: ../src/common/filefn.cpp:1336 #, c-format msgid "Cannot enumerate files '%s'" msgstr "无法枚举文件 '%s'" #: ../src/msw/dir.cpp:264 #, c-format msgid "Cannot enumerate files in directory '%s'" msgstr "无法枚举目录 '%s' 中的文件" #: ../src/msw/dialup.cpp:542 #, c-format msgid "Cannot find active dialup connection: %s" msgstr "无法找到活动的拨号连接: %s" #: ../src/msw/dialup.cpp:848 msgid "Cannot find the location of address book file" msgstr "无法找到地址簿文件的位置" #: ../src/msw/ole/automtn.cpp:562 #, c-format msgid "Cannot get an active instance of \"%s\"" msgstr "无法获得 \"%s\" 的活动实体" #: ../src/unix/threadpsx.cpp:1030 #, c-format msgid "Cannot get priority range for scheduling policy %d." msgstr "无法获得调度策略 %d 的优先级范围。" #: ../src/unix/utilsunx.cpp:988 msgid "Cannot get the hostname" msgstr "无法获得主机名" #: ../src/unix/utilsunx.cpp:1024 msgid "Cannot get the official hostname" msgstr "无法获得正式的主机名" #: ../src/msw/dialup.cpp:949 msgid "Cannot hang up - no active dialup connection." msgstr "无法挂断 - 没有活动的拨号连接。" #: ../include/wx/msw/ole/oleutils.h:52 msgid "Cannot initialize OLE" msgstr "无法初始化 OLE" #: ../src/common/socket.cpp:847 msgid "Cannot initialize sockets" msgstr "无法初始化 sockets" #: ../src/msw/volume.cpp:620 #, c-format msgid "Cannot load icon from '%s'." msgstr "无法从 '%s' 中读取图标。" #: ../src/xrc/xmlres.cpp:361 #, c-format msgid "Cannot load resources from '%s'." msgstr "无法从文件 '%s' 中载入资源。" #: ../src/xrc/xmlres.cpp:746 #, c-format msgid "Cannot load resources from file '%s'." msgstr "无法从文件 '%s' 中载入资源。" #: ../src/html/htmlfilt.cpp:137 #, c-format msgid "Cannot open HTML document: %s" msgstr "无法打开 HTML 文档: %s" #: ../src/html/helpdata.cpp:665 #, c-format msgid "Cannot open HTML help book: %s" msgstr "无法打开 HTML 帮助: %s" #: ../src/html/helpdata.cpp:297 #, c-format msgid "Cannot open contents file: %s" msgstr "无法打开目录文件: %s" #: ../src/generic/dcpsg.cpp:1751 msgid "Cannot open file for PostScript printing!" msgstr "无法打开文件进行 PostScript 打印!" #: ../src/html/helpdata.cpp:311 #, c-format msgid "Cannot open index file: %s" msgstr "无法打开索引文件: %s" #: ../src/xrc/xmlres.cpp:728 #, c-format msgid "Cannot open resources file '%s'." msgstr "无法打开资源文件 '%s'。" #: ../src/html/helpwnd.cpp:1537 msgid "Cannot print empty page." msgstr "无法打印空白页面。" #: ../src/msw/volume.cpp:507 #, c-format msgid "Cannot read typename from '%s'!" msgstr "无法从 '%s' 中读取类型名称!" #: ../src/os2/thread.cpp:527 #, c-format msgid "Cannot resume thread %lu" msgstr "无法恢复线程 %lu" #: ../src/msw/thread.cpp:923 #, c-format msgid "Cannot resume thread %lx" msgstr "无法恢复线程 %lx" #: ../src/unix/threadpsx.cpp:1011 msgid "Cannot retrieve thread scheduling policy." msgstr "无法找回线程调度策略。" #: ../src/common/intl.cpp:542 #, c-format msgid "Cannot set locale to language \"%s\"." msgstr "无法设定为语言 \"%s\"。" #: ../src/unix/threadpsx.cpp:831 ../src/msw/thread.cpp:569 msgid "Cannot start thread: error writing TLS." msgstr "无法启动线程: 写 TLS 出错。" #: ../src/os2/thread.cpp:513 #, c-format msgid "Cannot suspend thread %lu" msgstr "无法挂起线程 %lu" #: ../src/msw/thread.cpp:907 #, c-format msgid "Cannot suspend thread %lx" msgstr "无法挂起线程 %lx" #: ../src/msw/thread.cpp:830 msgid "Cannot wait for thread termination" msgstr "无法等候线程终止" #: ../src/html/helpwnd.cpp:546 msgid "Case sensitive" msgstr "大小写敏感" #: ../src/propgrid/manager.cpp:1495 msgid "Categorized Mode" msgstr "分类模式" #: ../src/richtext/richtextbuffer.cpp:9347 msgid "Cell Properties" msgstr "单元格属性" #: ../src/common/fmapbase.cpp:161 msgid "Celtic (ISO-8859-14)" msgstr "凯尔特语 (ISO-8859-14)" #: ../src/richtext/richtextindentspage.cpp:160 #: ../src/richtext/richtextliststylepage.cpp:349 msgid "Cen&tred" msgstr "居中(&t)" #: ../src/common/stockitem.cpp:170 msgid "Centered" msgstr "居中" #: ../src/common/fmapbase.cpp:149 msgid "Central European (ISO-8859-2)" msgstr "中欧语系 (ISO-8859-2)" #: ../src/richtext/richtextliststylepage.cpp:250 #: ../src/richtext/richtextbulletspage.cpp:200 msgid "Centre" msgstr "居中" #: ../src/richtext/richtextindentspage.cpp:162 #: ../src/richtext/richtextindentspage.cpp:164 #: ../src/richtext/richtextliststylepage.cpp:351 #: ../src/richtext/richtextliststylepage.cpp:353 msgid "Centre text." msgstr "文字居中。" #: ../src/richtext/richtextsizepage.cpp:287 msgid "Centred" msgstr "居中" #: ../src/richtext/richtextliststylepage.cpp:280 #: ../src/richtext/richtextbulletspage.cpp:232 msgid "Ch&oose..." msgstr "选择(&o)..." #: ../src/richtext/richtextbuffer.cpp:4041 msgid "Change List Style" msgstr "更改列表样式" #: ../src/richtext/richtextbuffer.cpp:3392 msgid "Change Object Style" msgstr "更改对象样式" #: ../src/richtext/richtextbuffer.cpp:3658 #: ../src/richtext/richtextbuffer.cpp:7749 msgid "Change Properties" msgstr "修改属性" #: ../src/richtext/richtextbuffer.cpp:3209 msgid "Change Style" msgstr "更改样式" #: ../src/common/fileconf.cpp:372 #, c-format msgid "Changes won't be saved to avoid overwriting the existing file \"%s\"" msgstr "为了防止重写已有文件 \"%s\" 更改不会被保存" #: ../src/richtext/richtextstyles.cpp:1059 msgid "Character styles" msgstr "文字样式" #: ../src/richtext/richtextliststylepage.cpp:224 #: ../src/richtext/richtextliststylepage.cpp:226 #: ../src/richtext/richtextbulletspage.cpp:174 #: ../src/richtext/richtextbulletspage.cpp:176 msgid "Check to add a period after the bullet." msgstr "勾选以在项目符号后加上句号" #: ../src/richtext/richtextliststylepage.cpp:238 #: ../src/richtext/richtextliststylepage.cpp:240 #: ../src/richtext/richtextbulletspage.cpp:188 #: ../src/richtext/richtextbulletspage.cpp:190 msgid "Check to add a right parenthesis." msgstr "勾选以加上右括号" #: ../src/richtext/richtextliststylepage.cpp:231 #: ../src/richtext/richtextliststylepage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:181 #: ../src/richtext/richtextbulletspage.cpp:183 msgid "Check to enclose the bullet in parentheses." msgstr "勾选以将项目符号加上一对括号" #: ../src/osx/carbon/fontdlg.cpp:542 ../src/osx/carbon/fontdlg.cpp:544 msgid "Check to make the font bold." msgstr "勾选设定为粗体。" #: ../src/osx/carbon/fontdlg.cpp:549 ../src/osx/carbon/fontdlg.cpp:551 msgid "Check to make the font italic." msgstr "勾选设定为斜体。" #: ../src/osx/carbon/fontdlg.cpp:558 ../src/osx/carbon/fontdlg.cpp:560 msgid "Check to make the font underlined." msgstr "勾选加下划线。" #: ../src/richtext/richtextstyledlg.cpp:289 #: ../src/richtext/richtextstyledlg.cpp:291 msgid "Check to restart numbering." msgstr "勾选以重新编号" #: ../src/richtext/richtextfontpage.cpp:286 #: ../src/richtext/richtextfontpage.cpp:288 msgid "Check to show a line through the text." msgstr "勾选加删除线。" #: ../src/richtext/richtextfontpage.cpp:293 #: ../src/richtext/richtextfontpage.cpp:295 msgid "Check to show the text in capitals." msgstr "勾选显示为大写。" #: ../src/richtext/richtextfontpage.cpp:300 #: ../src/richtext/richtextfontpage.cpp:302 #, fuzzy msgid "Check to show the text in small capitals." msgstr "勾选显示为大写。" #: ../src/richtext/richtextfontpage.cpp:314 #: ../src/richtext/richtextfontpage.cpp:316 msgid "Check to show the text in subscript." msgstr "勾选显示为下标。" #: ../src/richtext/richtextfontpage.cpp:307 #: ../src/richtext/richtextfontpage.cpp:309 msgid "Check to show the text in superscript." msgstr "勾选显示为上标。" #: ../src/msw/dialup.cpp:784 msgid "Choose ISP to dial" msgstr "选择ISP进行拨号" #: ../src/propgrid/props.cpp:1643 msgid "Choose a directory:" msgstr "选择目录:" #: ../src/propgrid/props.cpp:1702 msgid "Choose a file" msgstr "选择文件" #: ../src/generic/colrdlgg.cpp:144 ../src/gtk/colordlg.cpp:63 msgid "Choose colour" msgstr "选择颜色" #: ../src/generic/fontpickerg.cpp:50 ../src/gtk/fontdlg.cpp:75 #: ../src/gtk1/fontdlg.cpp:125 msgid "Choose font" msgstr "选择字体" #: ../src/common/module.cpp:74 #, c-format msgid "Circular dependency involving module \"%s\" detected." msgstr "检测到导致循环依赖模块 \"%s\" 。" #: ../src/aui/tabmdi.cpp:108 ../src/generic/mdig.cpp:97 msgid "Cl&ose" msgstr "关闭(&o)" #: ../src/msw/ole/automtn.cpp:673 msgid "Class not registered." msgstr "类未注册。" #: ../src/common/stockitem.cpp:147 msgid "Clear" msgstr "清除" #: ../src/generic/logg.cpp:520 msgid "Clear the log contents" msgstr "清除日志内容" #: ../src/richtext/richtextstyledlg.cpp:252 #: ../src/richtext/richtextstyledlg.cpp:254 msgid "Click to apply the selected style." msgstr "点击应用所选样式。" #: ../src/richtext/richtextliststylepage.cpp:281 #: ../src/richtext/richtextliststylepage.cpp:283 #: ../src/richtext/richtextbulletspage.cpp:233 #: ../src/richtext/richtextbulletspage.cpp:235 msgid "Click to browse for a symbol." msgstr "点击浏览该符号。" #: ../src/osx/carbon/fontdlg.cpp:589 ../src/osx/carbon/fontdlg.cpp:591 msgid "Click to cancel changes to the font." msgstr "点击取消字体变更。" #: ../src/generic/fontdlgg.cpp:472 ../src/generic/fontdlgg.cpp:491 msgid "Click to cancel the font selection." msgstr "点击取消字体选择。" #: ../src/osx/carbon/fontdlg.cpp:570 ../src/osx/carbon/fontdlg.cpp:572 msgid "Click to change the font colour." msgstr "点击更改字体颜色。" #: ../src/richtext/richtextfontpage.cpp:276 #: ../src/richtext/richtextfontpage.cpp:278 msgid "Click to change the text background colour." msgstr "点击修改字体背景颜色。" #: ../src/richtext/richtextfontpage.cpp:263 #: ../src/richtext/richtextfontpage.cpp:265 msgid "Click to change the text colour." msgstr "点击修改字体颜色。" #: ../src/richtext/richtextliststylepage.cpp:195 #: ../src/richtext/richtextliststylepage.cpp:197 msgid "Click to choose the font for this level." msgstr "点击选择此层级字体。" #: ../src/richtext/richtextstyledlg.cpp:279 #: ../src/richtext/richtextstyledlg.cpp:281 msgid "Click to close this window." msgstr "点击关闭此窗口。" #: ../src/osx/carbon/fontdlg.cpp:596 ../src/osx/carbon/fontdlg.cpp:598 msgid "Click to confirm changes to the font." msgstr "点击确认字体更改。" #: ../src/generic/fontdlgg.cpp:477 ../src/generic/fontdlgg.cpp:479 #: ../src/generic/fontdlgg.cpp:484 ../src/generic/fontdlgg.cpp:486 msgid "Click to confirm the font selection." msgstr "点击确认字体选择。" #: ../src/richtext/richtextstyledlg.cpp:244 #: ../src/richtext/richtextstyledlg.cpp:246 msgid "Click to create a new box style." msgstr "点击新增方块样式。" #: ../src/richtext/richtextstyledlg.cpp:226 #: ../src/richtext/richtextstyledlg.cpp:228 msgid "Click to create a new character style." msgstr "点击新建文字样式。" #: ../src/richtext/richtextstyledlg.cpp:238 #: ../src/richtext/richtextstyledlg.cpp:240 msgid "Click to create a new list style." msgstr "点击新增列表样式。" #: ../src/richtext/richtextstyledlg.cpp:232 #: ../src/richtext/richtextstyledlg.cpp:234 msgid "Click to create a new paragraph style." msgstr "点击新建段落样式。" #: ../src/richtext/richtexttabspage.cpp:137 #: ../src/richtext/richtexttabspage.cpp:139 msgid "Click to create a new tab position." msgstr "点击建立新的标签位置。" #: ../src/richtext/richtexttabspage.cpp:149 #: ../src/richtext/richtexttabspage.cpp:151 msgid "Click to delete all tab positions." msgstr "点击删除所有标签位置。" #: ../src/richtext/richtextstyledlg.cpp:270 #: ../src/richtext/richtextstyledlg.cpp:272 msgid "Click to delete the selected style." msgstr "点击删除所选样式。" #: ../src/richtext/richtexttabspage.cpp:143 #: ../src/richtext/richtexttabspage.cpp:145 msgid "Click to delete the selected tab position." msgstr "点击删除所选标签位置。" #: ../src/richtext/richtextstyledlg.cpp:264 #: ../src/richtext/richtextstyledlg.cpp:266 msgid "Click to edit the selected style." msgstr "点击编辑所选样式。" #: ../src/richtext/richtextstyledlg.cpp:258 #: ../src/richtext/richtextstyledlg.cpp:260 msgid "Click to rename the selected style." msgstr "点击重命名所选样式。" #: ../src/generic/dbgrptg.cpp:97 ../src/generic/progdlgg.cpp:804 #: ../src/generic/progdlgg.cpp:809 ../src/richtext/richtextstyledlg.cpp:277 #: ../src/richtext/richtextsymboldlg.cpp:476 ../src/common/stockitem.cpp:148 #: ../src/msw/progdlg.cpp:170 ../src/msw/progdlg.cpp:679 #: ../src/html/helpdlg.cpp:90 msgid "Close" msgstr "关闭" #: ../src/aui/tabmdi.cpp:109 ../src/generic/mdig.cpp:98 msgid "Close All" msgstr "全部关闭" #: ../src/common/stockitem.cpp:266 msgid "Close current document" msgstr "关闭当前文档" #: ../src/generic/logg.cpp:522 msgid "Close this window" msgstr "关闭此窗口" #: ../src/common/stockitem.cpp:193 msgid "Color" msgstr "颜色" #: ../src/richtext/richtextformatdlg.cpp:725 msgid "Colour" msgstr "颜色" #: ../src/msw/colordlg.cpp:156 #, c-format msgid "Colour selection dialog failed with error %0lx." msgstr "颜色选择对话框错误,错误码 %0lx。" #: ../src/osx/carbon/fontdlg.cpp:566 msgid "Colour:" msgstr "颜色:" #: ../src/osx/carbon/dataview.cpp:900 msgid "Column could not be added." msgstr "无法增加列。" #: ../src/osx/carbon/dataview.cpp:899 msgid "Column description could not be initialized." msgstr "列描述无法初始化。" #: ../src/osx/carbon/dataview.cpp:1538 ../src/osx/carbon/dataview.cpp:1559 msgid "Column index not found." msgstr "找不到列索引。" #: ../src/osx/carbon/dataview.cpp:1614 msgid "Column width could not be determined" msgstr "无法确定列宽" #: ../src/osx/carbon/dataview.cpp:901 msgid "Column width could not be set." msgstr "无法设定列宽。" #: ../src/common/init.cpp:188 #, c-format msgid "" "Command line argument %d couldn't be converted to Unicode and will be " "ignored." msgstr "命令行参数 %d 无法被转化成Unicode编码,其将被忽略。" #: ../src/msw/fontdlg.cpp:119 #, c-format msgid "Common dialog failed with error code %0lx." msgstr "公共对话框错误,错误码 %0lx。" #: ../src/gtk/window.cpp:4306 msgid "" "Compositing not supported by this system, please enable it in your Window " "Manager." msgstr "当前系统不支持组合模式,请在窗口管理器中启用。" #: ../src/html/helpwnd.cpp:1554 msgid "Compressed HTML Help file (*.chm)|*.chm|" msgstr "压缩的HTML帮助文件 (*.chm)|*.chm|" #: ../src/generic/dirctrlg.cpp:544 msgid "Computer" msgstr "计算机" #: ../src/common/fileconf.cpp:965 #, c-format msgid "Config entry name cannot start with '%c'." msgstr "配置条目名不能以 '%c' 开头。" #: ../src/gtk/filedlg.cpp:59 msgid "Confirm" msgstr "确认" #: ../src/msw/mimetype.cpp:739 msgid "Confirm registry update" msgstr "确认更新注册表" #: ../src/html/htmlwin.cpp:544 msgid "Connecting..." msgstr "正在连接..." #: ../src/html/helpwnd.cpp:482 msgid "Contents" msgstr "目录" #: ../src/common/strconv.cpp:2261 #, c-format msgid "Conversion to charset '%s' doesn't work." msgstr "无法进行到字符集 '%s' 的转换。" #: ../src/common/stockitem.cpp:149 msgid "Convert" msgstr "转换" #: ../src/html/htmlwin.cpp:1057 #, c-format msgid "Copied to clipboard:\"%s\"" msgstr "已复制到剪贴板:\"%s\"" #: ../src/generic/prntdlgg.cpp:247 msgid "Copies:" msgstr "份数:" #: ../src/common/stockitem.cpp:150 ../src/stc/stc_i18n.cpp:18 msgid "Copy" msgstr "复制" #: ../src/common/stockitem.cpp:258 msgid "Copy selection" msgstr "复制选区" #: ../src/html/chm.cpp:718 #, c-format msgid "Could not create temporary file '%s'" msgstr "无法创建临时文件 '%s'" #: ../src/osx/carbon/dataview.cpp:1285 ../src/osx/carbon/dataview.cpp:1672 msgid "Could not determine column index." msgstr "无法确定列索引。" #: ../src/osx/carbon/dataview.cpp:876 msgid "Could not determine column's position" msgstr "无法确定列位置" #: ../src/osx/carbon/dataview.cpp:843 msgid "Could not determine number of columns." msgstr "无法确定列数量。" #: ../src/osx/carbon/dataview.cpp:975 msgid "Could not determine number of items" msgstr "无法确定项目数量" #: ../src/html/chm.cpp:273 #, c-format msgid "Could not extract %s into %s: %s" msgstr "无法将 %s 解开至 %s: %s" #: ../src/generic/tabg.cpp:1048 msgid "Could not find tab for id" msgstr "找不到 id 的标签" #: ../src/osx/carbon/dataview.cpp:2556 ../src/osx/carbon/dataview.cpp:2591 #: ../src/osx/carbon/dataview.cpp:2615 ../src/osx/carbon/dataview.cpp:2636 #: ../src/osx/carbon/dataview.cpp:2773 msgid "Could not get header description." msgstr "无法获取表头描述。" #: ../src/osx/carbon/dataview.cpp:1169 ../src/osx/carbon/dataview.cpp:1195 msgid "Could not get items." msgstr "无法获取项目。" #: ../src/osx/carbon/dataview.cpp:2659 ../src/osx/carbon/dataview.cpp:2724 msgid "Could not get property flags." msgstr "无法获取属性标志。" #: ../src/osx/carbon/dataview.cpp:726 msgid "Could not get selected items." msgstr "无法获取所选项目。" #: ../src/html/chm.cpp:444 #, c-format msgid "Could not locate file '%s'." msgstr "找不到文件 '%s'。" #: ../src/osx/carbon/dataview.cpp:845 msgid "Could not remove column." msgstr "无法删除列。" #: ../src/osx/carbon/dataview.cpp:642 msgid "Could not retrieve number of items" msgstr "无法获取项目数量" #: ../src/osx/carbon/dataview.cpp:2572 msgid "Could not set alignment." msgstr "无法设定对齐。" #: ../src/osx/carbon/dataview.cpp:2803 msgid "Could not set column width." msgstr "无法启动文档预览。" #: ../src/common/filefn.cpp:1569 msgid "Could not set current working directory" msgstr "无法设置当前工作目录" #: ../src/osx/carbon/dataview.cpp:2775 msgid "Could not set header description." msgstr "无法启动打印。" #: ../src/osx/carbon/dataview.cpp:2596 msgid "Could not set icon." msgstr "无法启动打印。" #: ../src/osx/carbon/dataview.cpp:2617 msgid "Could not set maximum width." msgstr "无法设定最大宽度。" #: ../src/osx/carbon/dataview.cpp:2638 msgid "Could not set minimum width." msgstr "无法设定最小宽度。" #: ../src/osx/carbon/dataview.cpp:2664 ../src/osx/carbon/dataview.cpp:2729 msgid "Could not set property flags." msgstr "无法设定属性标志。" #: ../src/common/prntbase.cpp:1985 msgid "Could not start document preview." msgstr "无法启动文档预览。" #: ../src/generic/printps.cpp:178 ../src/msw/printwin.cpp:210 #: ../src/gtk/print.cpp:1077 msgid "Could not start printing." msgstr "无法启动打印。" #: ../src/common/wincmn.cpp:2131 msgid "Could not transfer data to window" msgstr "无法把数据转到窗口" #: ../src/os2/thread.cpp:160 msgid "Couldn't acquire a mutex lock" msgstr "无法得到互斥锁" #: ../src/msw/imaglist.cpp:166 ../src/msw/imaglist.cpp:197 #: ../src/msw/imaglist.cpp:209 ../src/msw/dragimag.cpp:193 #: ../src/msw/dragimag.cpp:232 msgid "Couldn't add an image to the image list." msgstr "无法把图像加到图象列表。" #: ../src/msw/timer.cpp:134 ../src/os2/timer.cpp:113 msgid "Couldn't create a timer" msgstr "无法创建计时器" #: ../src/osx/carbon/overlay.cpp:122 msgid "Couldn't create the overlay window" msgstr "无法创建 overlay 窗口" #: ../src/common/translation.cpp:2015 #, fuzzy msgid "Couldn't enumerate translations" msgstr "无法终止线程" #: ../src/common/dynlib.cpp:152 #, c-format msgid "Couldn't find symbol '%s' in a dynamic library" msgstr "在动态连接库中找不到符号 '%s'" #: ../src/gtk/print.cpp:2014 msgid "Couldn't get hatch style from wxBrush." msgstr "无法从 wxBrush 获取阴影样式。" #: ../src/msw/thread.cpp:950 msgid "Couldn't get the current thread pointer" msgstr "无法获得当前线程指针" #: ../src/osx/carbon/overlay.cpp:129 #, fuzzy msgid "Couldn't init the context on the overlay window" msgstr "无法获得当前线程指针" #: ../src/common/imaggif.cpp:263 #, fuzzy msgid "Couldn't initialize GIF hash table." msgstr "无法初始化 zlib 压缩流." #: ../src/common/imagpng.cpp:657 msgid "Couldn't load a PNG image - file is corrupted or not enough memory." msgstr "无法装入 PNG 图像 - 文件被破坏 或者 没有足够内存。" #: ../src/unix/sound.cpp:470 #, c-format msgid "Couldn't load sound data from '%s'." msgstr "无法从 '%s' 中的读取声音数据。" #: ../src/msw/dirdlg.cpp:441 msgid "Couldn't obtain folder name" msgstr "无法获取文件夹名称" #: ../src/unix/sound_sdl.cpp:229 #, c-format msgid "Couldn't open audio: %s" msgstr "无法打开音频: %s" #: ../src/msw/ole/dataobj.cpp:350 #, c-format msgid "Couldn't register clipboard format '%s'." msgstr "无法注册剪贴板格式 '%s'。" #: ../src/os2/thread.cpp:177 msgid "Couldn't release a mutex" msgstr "无法释放互斥子" #: ../src/msw/listctrl.cpp:756 #, c-format msgid "Couldn't retrieve information about list control item %d." msgstr "无法获得列表控件的项 %d 信息。" #: ../src/common/imagpng.cpp:746 ../src/common/imagpng.cpp:757 #: ../src/common/imagpng.cpp:767 msgid "Couldn't save PNG image." msgstr "无法保存 PNG 图像。" #: ../src/msw/thread.cpp:715 msgid "Couldn't terminate thread" msgstr "无法终止线程" #: ../src/common/xtistrm.cpp:170 #, c-format msgid "Create Parameter %s not found in declared RTTI Parameters" msgstr "在声明的 RTTI 参数里找不到创建参数 %s" #: ../src/generic/dirdlgg.cpp:317 msgid "Create directory" msgstr "创建目录" #: ../src/generic/filedlgg.cpp:228 ../src/generic/dirdlgg.cpp:131 msgid "Create new directory" msgstr "创建新目录" #: ../src/common/accelcmn.cpp:322 msgid "Ctrl+" msgstr "Ctrl+" #: ../src/richtext/richtextctrl.cpp:325 ../src/osx/textctrl_osx.cpp:582 #: ../src/common/stockitem.cpp:151 ../src/msw/textctrl.cpp:2283 msgid "Cu&t" msgstr "剪切(&t)" #: ../src/generic/filectrlg.cpp:956 msgid "Current directory:" msgstr "当前目录:" #: ../src/gtk/print.cpp:759 msgid "Custom size" msgstr "自定义大小" #: ../src/common/headerctrlcmn.cpp:60 msgid "Customize Columns" msgstr "自定义列" #: ../src/common/stockitem.cpp:151 ../src/stc/stc_i18n.cpp:17 msgid "Cut" msgstr "剪切" #: ../src/common/stockitem.cpp:259 msgid "Cut selection" msgstr "剪切选区" #: ../src/common/fmapbase.cpp:152 msgid "Cyrillic (ISO-8859-5)" msgstr "西里尔语 (ISO-8859-5)" #: ../src/common/paper.cpp:100 msgid "D sheet, 22 x 34 in" msgstr "D 纸张, 22 x 34 英寸" #: ../src/msw/dde.cpp:708 msgid "DDE poke request failed" msgstr "DDE poke 请求失败" #: ../src/common/accelcmn.cpp:79 msgid "DECIMAL" msgstr "DECIMAL" #: ../src/common/accelcmn.cpp:47 msgid "DEL" msgstr "DEL" #: ../src/common/accelcmn.cpp:48 msgid "DELETE" msgstr "DELETE" #: ../src/common/imagbmp.cpp:1092 msgid "DIB Header: Encoding doesn't match bitdepth." msgstr "DIB头: 编码不匹配颜色位数。" #: ../src/common/imagbmp.cpp:1040 msgid "DIB Header: Image height > 32767 pixels for file." msgstr "DIB头: 对于文件, 图像高度 > 32767 象素。" #: ../src/common/imagbmp.cpp:1032 msgid "DIB Header: Image width > 32767 pixels for file." msgstr "DIB头: 对于文件, 图像宽度 > 32767 象素。" #: ../src/common/imagbmp.cpp:1060 msgid "DIB Header: Unknown bitdepth in file." msgstr "DIB头: 文件中颜色位数未知。" #: ../src/common/imagbmp.cpp:1074 msgid "DIB Header: Unknown encoding in file." msgstr "DIB头: 文件编码未知。" #: ../src/common/accelcmn.cpp:80 msgid "DIVIDE" msgstr "DIVIDE" #: ../src/common/paper.cpp:122 msgid "DL Envelope, 110 x 220 mm" msgstr "DL 信封, 110 x 220 毫米" #: ../src/common/accelcmn.cpp:59 msgid "DOWN" msgstr "DOWN" #: ../src/richtext/richtextborderspage.cpp:545 msgid "Dashed" msgstr "" #: ../src/osx/carbon/dataview.cpp:1921 msgid "Data object has invalid data format" msgstr "数据对象有无效数据格式" #: ../src/osx/carbon/dataview.cpp:2491 msgid "Date renderer cannot render value; value type: " msgstr "数据渲染器无法渲染该值; 类型为:" #: ../src/generic/dbgrptg.cpp:300 #, c-format msgid "Debug report \"%s\"" msgstr "调试报告 \"%s\"" #: ../src/common/debugrpt.cpp:210 msgid "Debug report couldn't be created." msgstr "无法创建调试报告。" #: ../src/common/debugrpt.cpp:558 msgid "Debug report generation has failed." msgstr "无法生成调试报告。" #: ../src/generic/fontdlgg.cpp:323 msgid "Decorative" msgstr "修饰" #: ../src/common/fmapbase.cpp:796 msgid "Default encoding" msgstr "缺省编码" #: ../src/dfb/fontmgr.cpp:180 msgid "Default font" msgstr "缺省字体" #: ../src/generic/prntdlgg.cpp:510 msgid "Default printer" msgstr "缺省的打印机" #: ../src/richtext/richtextbuffer.cpp:7841 ../src/common/stockitem.cpp:152 #: ../src/stc/stc_i18n.cpp:20 msgid "Delete" msgstr "删除" #: ../src/richtext/richtexttabspage.cpp:148 msgid "Delete A&ll" msgstr "删除全部(&l)" #: ../src/richtext/richtextbuffer.cpp:10637 #, fuzzy msgid "Delete Column" msgstr "删除列" #: ../src/richtext/richtextbuffer.cpp:10587 #, fuzzy msgid "Delete Row" msgstr "删除行" #: ../src/richtext/richtextstyledlg.cpp:779 msgid "Delete Style" msgstr "删除样式" #: ../src/richtext/richtextctrl.cpp:1231 ../src/richtext/richtextctrl.cpp:1452 msgid "Delete Text" msgstr "删除文字" #: ../src/generic/editlbox.cpp:274 msgid "Delete item" msgstr "删除项" #: ../src/common/stockitem.cpp:260 msgid "Delete selection" msgstr "删除选区" #: ../src/richtext/richtextstyledlg.cpp:779 #, c-format msgid "Delete style %s?" msgstr "删除样式 %s?" #: ../src/unix/snglinst.cpp:295 #, c-format msgid "Deleted stale lock file '%s'." msgstr "已删除过期的锁文件 '%s'。" #: ../src/common/module.cpp:124 #, c-format msgid "Dependency \"%s\" of module \"%s\" doesn't exist." msgstr "依赖 \"%s\" 对模块 \"%s\" 不存在。" #: ../src/common/stockitem.cpp:196 msgid "Descending" msgstr "降序" #: ../src/generic/dirctrlg.cpp:626 msgid "Desktop" msgstr "桌面" #: ../src/generic/aboutdlgg.cpp:70 msgid "Developed by " msgstr "开发由" #: ../src/generic/aboutdlgg.cpp:176 msgid "Developers" msgstr "开发者" #: ../src/msw/dialup.cpp:393 msgid "" "Dial up functions are unavailable because the remote access service (RAS) is " "not installed on this machine. Please install it." msgstr "由于远程访问服务(RAS)没有安装在本机,拨号功能无法使用。请安装它。" #: ../src/generic/tipdlg.cpp:230 msgid "Did you know..." msgstr "你知道吗..." #: ../src/dfb/wrapdfb.cpp:63 #, c-format msgid "DirectFB error %d occurred." msgstr "DirectFB错误 %d 发生。" #: ../src/motif/filedlg.cpp:219 msgid "Directories" msgstr "目录" #: ../src/common/filefn.cpp:1251 #, c-format msgid "Directory '%s' couldn't be created" msgstr "无法创建目录 '%s'" #: ../src/common/filefn.cpp:1271 #, c-format msgid "Directory '%s' couldn't be deleted" msgstr "目录'%s'无法被删除" #: ../src/generic/dirdlgg.cpp:233 msgid "Directory does not exist" msgstr "目录不存在" #: ../src/generic/filectrlg.cpp:1412 msgid "Directory doesn't exist." msgstr "目录不存在。" #: ../src/common/docview.cpp:455 msgid "Discard changes and reload the last saved version?" msgstr "放弃更改并重新载入最近保存的版本?" #: ../src/html/helpwnd.cpp:512 msgid "" "Display all index items that contain given substring. Search is case " "insensitive." msgstr "显示包含给定子串的所有索引项. 搜索是大小写无关的." #: ../src/html/helpwnd.cpp:692 msgid "Display options dialog" msgstr "显示选项对话框" #: ../src/html/helpwnd.cpp:326 msgid "Displays help as you browse the books on the left." msgstr "" #: ../src/msw/mimetype.cpp:732 msgid "" "Do you want to overwrite the command used to %s files with extension \"%s" "\" ?\n" "Current value is \n" "%s, \n" "New value is \n" "%s %1" msgstr "" "是否要覆盖用于%s文件(扩展名为\"%s\")的命令?\n" "当前值为 \n" "%s, \n" "新的值为 \n" "%s %1" #: ../src/common/docview.cpp:531 #, c-format msgid "Do you want to save changes to %s?" msgstr "你想保存对文档 %s 的修改吗?" #: ../src/common/prntbase.cpp:525 msgid "Document:" msgstr "文档:" #: ../src/generic/aboutdlgg.cpp:73 msgid "Documentation by " msgstr "文档撰写由" #: ../src/generic/aboutdlgg.cpp:180 msgid "Documentation writers" msgstr "文档作者" #: ../src/common/sizer.cpp:2680 msgid "Don't Save" msgstr "不保存" #: ../src/msw/frame.cpp:122 ../src/html/htmlwin.cpp:611 msgid "Done" msgstr "完成" #: ../src/generic/progdlgg.cpp:481 ../src/msw/progdlg.cpp:407 msgid "Done." msgstr "完成." #: ../src/richtext/richtextborderspage.cpp:544 #, fuzzy msgid "Dotted" msgstr "完成" #: ../src/richtext/richtextborderspage.cpp:546 #, fuzzy msgid "Double" msgstr "完成" #: ../src/common/paper.cpp:177 msgid "Double Japanese Postcard Rotated 148 x 200 mm" msgstr "横向日本双明信片, 148 x 200 毫米" #: ../src/common/xtixml.cpp:273 #, c-format msgid "Doubly used id : %d" msgstr "重复使用的id : %d" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:153 msgid "Down" msgstr "向下" #: ../src/richtext/richtextctrl.cpp:814 msgid "Drag" msgstr "移动" #: ../src/common/paper.cpp:101 msgid "E sheet, 34 x 44 in" msgstr "E 纸张,34 x 44 英寸" #: ../src/common/accelcmn.cpp:61 msgid "END" msgstr "END" #: ../src/common/accelcmn.cpp:52 msgid "ENTER" msgstr "ENTER" #: ../src/unix/fswatcher_inotify.cpp:535 msgid "EOF while reading from inotify descriptor" msgstr "读取 inotify 描述符时遇到 EOF" #: ../src/common/accelcmn.cpp:64 msgid "ESC" msgstr "ESC" #: ../src/common/accelcmn.cpp:65 msgid "ESCAPE" msgstr "ESCAPE" #: ../src/common/accelcmn.cpp:73 msgid "EXECUTE" msgstr "EXECUTE" #: ../src/common/stockitem.cpp:154 msgid "Edit" msgstr "编辑" #: ../src/generic/editlbox.cpp:272 msgid "Edit item" msgstr "编辑项" #: ../include/wx/generic/progdlgg.h:84 msgid "Elapsed time:" msgstr "用时: " #: ../src/richtext/richtextsizepage.cpp:353 #: ../src/richtext/richtextsizepage.cpp:355 #: ../src/richtext/richtextsizepage.cpp:465 #: ../src/richtext/richtextsizepage.cpp:467 msgid "Enable the height value." msgstr "启用高度值。" #: ../src/richtext/richtextsizepage.cpp:438 #: ../src/richtext/richtextsizepage.cpp:440 msgid "Enable the maximum width value." msgstr "启用最大宽度值。" #: ../src/richtext/richtextsizepage.cpp:411 #: ../src/richtext/richtextsizepage.cpp:413 msgid "Enable the minimum height value." msgstr "启用最小高度值。" #: ../src/richtext/richtextsizepage.cpp:384 #: ../src/richtext/richtextsizepage.cpp:386 msgid "Enable the minimum width value." msgstr "启用最小宽度值。" #: ../src/richtext/richtextsizepage.cpp:319 #: ../src/richtext/richtextsizepage.cpp:321 msgid "Enable the width value." msgstr "启用宽度值。" #: ../src/richtext/richtextsizepage.cpp:280 #: ../src/richtext/richtextsizepage.cpp:282 msgid "Enable vertical alignment." msgstr "启用垂直对齐。" #: ../src/richtext/richtextbackgroundpage.cpp:133 #: ../src/richtext/richtextbackgroundpage.cpp:135 msgid "Enables a background colour." msgstr "启用背景颜色。" #: ../src/richtext/richtextstyledlg.cpp:931 msgid "Enter a box style name" msgstr "输入文字方块样式名称" #: ../src/richtext/richtextstyledlg.cpp:603 msgid "Enter a character style name" msgstr "输入文字样式名" #: ../src/richtext/richtextstyledlg.cpp:817 msgid "Enter a list style name" msgstr "输入列表样式名" #: ../src/richtext/richtextstyledlg.cpp:890 msgid "Enter a new style name" msgstr "输入新样式名" #: ../src/richtext/richtextstyledlg.cpp:651 msgid "Enter a paragraph style name" msgstr "输入段落样式名" #: ../src/generic/dbgrptg.cpp:174 #, c-format msgid "Enter command to open file \"%s\":" msgstr "输入命令以打开文件 \"%s\":" #: ../src/generic/helpext.cpp:463 msgid "Entries found" msgstr "找到的条目" #: ../src/common/paper.cpp:143 msgid "Envelope Invite 220 x 220 mm" msgstr "邀请信, 220 x 220 毫米" #: ../src/common/config.cpp:473 #, c-format msgid "" "Environment variables expansion failed: missing '%c' at position %u in '%s'." msgstr "环境变量扩展失败: '%c' 没有出现在位置 %u / '%s'。" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/dirctrlg.cpp:688 #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:791 #: ../src/generic/filectrlg.cpp:805 ../src/generic/filectrlg.cpp:821 #: ../src/generic/filectrlg.cpp:1381 ../src/generic/filectrlg.cpp:1412 #: ../src/gtk/filedlg.cpp:73 ../src/gtk1/fontdlg.cpp:74 msgid "Error" msgstr "错误" #: ../src/unix/epolldispatcher.cpp:103 msgid "Error closing epoll descriptor" msgstr "关闭 epoll 描述符时发生错误" #: ../src/unix/fswatcher_kqueue.cpp:114 msgid "Error closing kqueue instance" msgstr "关闭 kqueue 实例时发生错误" #: ../src/generic/dirdlgg.cpp:251 msgid "Error creating directory" msgstr "创建目录错误" #: ../src/common/imagbmp.cpp:1103 msgid "Error in reading image DIB." msgstr "读取图像 DIB 错误。" #: ../src/propgrid/propgrid.cpp:6563 #, c-format msgid "Error in resource: %s" msgstr "资源错误: %s" #: ../src/common/fileconf.cpp:453 msgid "Error reading config options." msgstr "读配置选项错误。" #: ../src/common/fileconf.cpp:1064 msgid "Error saving user configuration data." msgstr "保存用户配置数据错误." #: ../src/gtk/print.cpp:671 msgid "Error while printing: " msgstr "打印时出错: " #: ../src/common/log.cpp:223 msgid "Error: " msgstr "错误: " #: ../src/common/fmapbase.cpp:150 msgid "Esperanto (ISO-8859-3)" msgstr "世界语 (ISO-8859-3)" #: ../include/wx/generic/progdlgg.h:85 msgid "Estimated time:" msgstr "预期时间:" #: ../src/unix/fswatcher_inotify.cpp:639 msgid "Event queue overflowed" msgstr "消息队列溢出" #: ../src/generic/dbgrptg.cpp:234 msgid "Executable files (*.exe)|*.exe|" msgstr "可执行文件 (*.exe)|*.exe|" #: ../src/common/stockitem.cpp:155 msgid "Execute" msgstr "执行" #: ../src/msw/utilsexc.cpp:888 #, c-format msgid "Execution of command '%s' failed" msgstr "命令 '%s' 执行失败" #: ../src/os2/utilsexc.cpp:163 #, c-format msgid "Execution of command '%s' failed with error: %ul" msgstr "命令 '%s' 执行失败, 错误信息: %ul" #: ../src/common/paper.cpp:106 msgid "Executive, 7 1/4 x 10 1/2 in" msgstr "实用纸张(Executive), 7 1/4 x 10 1/2 英寸" #: ../src/msw/registry.cpp:1230 #, c-format msgid "" "Exporting registry key: file \"%s\" already exists and won't be overwritten." msgstr "导出注册键: 文件 \"%s\"已经存在, 无法覆盖." #: ../src/common/fmapbase.cpp:195 msgid "Extended Unix Codepage for Japanese (EUC-JP)" msgstr "扩展的日本语Unix代码页 (EUC-JP)" #: ../src/html/chm.cpp:725 #, c-format msgid "Extraction of '%s' into '%s' failed." msgstr "将 '%s' 解压至 '%s' 失败。" #: ../src/common/accelcmn.cpp:238 ../src/common/accelcmn.cpp:333 msgid "F" msgstr "F" #: ../src/propgrid/advprops.cpp:640 msgid "Face Name" msgstr "字体名称" #: ../src/unix/snglinst.cpp:269 msgid "Failed to access lock file." msgstr "无法访问锁文件。" #: ../src/unix/epolldispatcher.cpp:116 #, c-format msgid "Failed to add descriptor %d to epoll descriptor %d" msgstr "无法将描述符 %d 加到 epoll 描述符 %d" #: ../src/msw/dib.cpp:548 #, c-format msgid "Failed to allocate %luKb of memory for bitmap data." msgstr "无法为位图数据分配 %luKb 内存。" #: ../src/common/glcmn.cpp:87 msgid "Failed to allocate colour for OpenGL" msgstr "无法为 OpenGL 分配颜色" #: ../src/unix/displayx11.cpp:288 msgid "Failed to change video mode" msgstr "无法改变视频模式。" #: ../src/common/image.cpp:3139 #, c-format msgid "Failed to check format of image file \"%s\"." msgstr "无法确认图像文件 \"%s\" 的格式。" #: ../src/common/debugrpt.cpp:244 #, c-format msgid "Failed to clean up debug report directory \"%s\"" msgstr "无法清除调试报告目录 \"%s\"" #: ../src/common/filename.cpp:211 msgid "Failed to close file handle" msgstr "无法关闭文件句柄" #: ../src/unix/snglinst.cpp:334 #, c-format msgid "Failed to close lock file '%s'" msgstr "无法关闭锁文件 '%s'" #: ../src/msw/clipbrd.cpp:115 msgid "Failed to close the clipboard." msgstr "无法关闭剪贴板。" #: ../src/x11/utils.cpp:204 #, c-format msgid "Failed to close the display \"%s\"" msgstr "无法关闭显示 \"%s\"" #: ../src/msw/dialup.cpp:818 msgid "Failed to connect: missing username/password." msgstr "连接失败: 缺少用户名/口令。" #: ../src/msw/dialup.cpp:764 msgid "Failed to connect: no ISP to dial." msgstr "连接失败: 没有要拨号的 ISP。" #: ../src/common/textfile.cpp:200 #, c-format msgid "Failed to convert file \"%s\" to Unicode." msgstr "无法转换文件 \"%s\" 为 Unicode。" #: ../src/generic/logg.cpp:976 msgid "Failed to copy dialog contents to the clipboard." msgstr "无法将对话框内容复制到剪贴板。" #: ../src/msw/registry.cpp:691 #, c-format msgid "Failed to copy registry value '%s'" msgstr "无法复制注册键值 '%s'" #: ../src/msw/registry.cpp:700 #, c-format msgid "Failed to copy the contents of registry key '%s' to '%s'." msgstr "无法把注册键内容从 '%s' 复制到 '%s'。" #: ../src/common/filefn.cpp:1058 #, c-format msgid "Failed to copy the file '%s' to '%s'" msgstr "无法复制文件 '%s' 至 '%s'" #: ../src/msw/registry.cpp:678 #, c-format msgid "Failed to copy the registry subkey '%s' to '%s'." msgstr "无法复制注册表子键 '%s' 至 '%s'。" #: ../src/msw/dde.cpp:1073 msgid "Failed to create DDE string" msgstr "无法创建 DDE 字符串" #: ../src/msw/mdi.cpp:590 msgid "Failed to create MDI parent frame." msgstr "无法创建 MDI 父框架。" #: ../src/common/filename.cpp:1080 msgid "Failed to create a temporary file name" msgstr "无法创建临时文件名" #: ../src/msw/utilsexc.cpp:235 msgid "Failed to create an anonymous pipe" msgstr "无法创建匿名管道" #: ../src/msw/ole/automtn.cpp:522 #, c-format msgid "Failed to create an instance of \"%s\"" msgstr "无法创建实例 \"%s\"" #: ../src/msw/dde.cpp:442 #, c-format msgid "Failed to create connection to server '%s' on topic '%s'" msgstr "无法创建到服务器 '%s' 关于主题 '%s' 的连接" #: ../src/msw/cursor.cpp:212 msgid "Failed to create cursor." msgstr "无法创建游标。" #: ../src/common/debugrpt.cpp:209 #, c-format msgid "Failed to create directory \"%s\"" msgstr "无法创建目录 \"%s\"" #: ../src/generic/dirdlgg.cpp:249 #, c-format msgid "" "Failed to create directory '%s'\n" "(Do you have the required permissions?)" msgstr "" "无法创建目录 '%s'\n" "(您是否有所需的权限?)" #: ../src/unix/epolldispatcher.cpp:84 msgid "Failed to create epoll descriptor" msgstr "无法创建 epoll 描述符" #: ../src/msw/mimetype.cpp:198 #, c-format msgid "Failed to create registry entry for '%s' files." msgstr "无法为 '%s' 文件创建注册条目。" #: ../src/msw/fdrepdlg.cpp:442 #, c-format msgid "Failed to create the standard find/replace dialog (error code %d)" msgstr "无法创建标准\"查找/替换\"对话框 (错误号 %d)" #: ../src/unix/wakeuppipe.cpp:52 #, fuzzy msgid "Failed to create wake up pipe used by event loop." msgstr "创建状态条失败." #: ../src/html/winpars.cpp:739 #, c-format msgid "Failed to display HTML document in %s encoding" msgstr "无法按编码 %s 显示 HTML 文档" #: ../src/msw/clipbrd.cpp:127 msgid "Failed to empty the clipboard." msgstr "无法清空剪贴板" #: ../src/unix/displayx11.cpp:265 msgid "Failed to enumerate video modes" msgstr "无法枚举视频模式" #: ../src/msw/dde.cpp:727 msgid "Failed to establish an advise loop with DDE server" msgstr "无法在 DDE 服务器建立 advise 循环" #: ../src/msw/dialup.cpp:650 ../src/msw/dialup.cpp:884 #, c-format msgid "Failed to establish dialup connection: %s" msgstr "无法建立拨号连接: %s" #: ../src/unix/utilsunx.cpp:617 #, c-format msgid "Failed to execute '%s'\n" msgstr "无法执行 '%s'\n" #: ../src/common/debugrpt.cpp:725 msgid "Failed to execute curl, please install it in PATH." msgstr "无法执行curl,请在PATH变量所指的目录中安装curl。" #: ../src/msw/ole/automtn.cpp:505 #, c-format msgid "Failed to find CLSID of \"%s\"" msgstr "无法找到 \"%s\" 的 CLSID" #: ../src/common/regex.cpp:434 ../src/common/regex.cpp:482 #, c-format msgid "Failed to find match for regular expression: %s" msgstr "无法找到匹配的正则表达式: %s" #: ../src/msw/dialup.cpp:716 #, c-format msgid "Failed to get ISP names: %s" msgstr "无法获取 ISP 名称: %s" #: ../src/msw/ole/automtn.cpp:574 #, fuzzy, c-format msgid "Failed to get OLE automation interface for \"%s\"" msgstr "无法创建目录 \"%s\"" #: ../src/msw/clipbrd.cpp:747 msgid "Failed to get data from the clipboard" msgstr "无法从剪贴板获取数据" #: ../src/common/time.cpp:249 msgid "Failed to get the local system time" msgstr "无法获取本地系统时间" #: ../src/common/filefn.cpp:1453 msgid "Failed to get the working directory" msgstr "无法获取工作目录" #: ../src/univ/theme.cpp:113 msgid "Failed to initialize GUI: no built-in themes found." msgstr "无法初始化 GUI: 找不到内嵌的主题。" #: ../src/msw/helpchm.cpp:63 msgid "Failed to initialize MS HTML Help." msgstr "无法初始化 MS HTML 帮助。" #: ../src/msw/glcanvas.cpp:892 msgid "Failed to initialize OpenGL" msgstr "无法初始化 OpenGL" #: ../src/msw/dialup.cpp:879 #, c-format msgid "Failed to initiate dialup connection: %s" msgstr "无法初始化拨号连接: %s" #: ../src/gtk/textctrl.cpp:1117 msgid "Failed to insert text in the control." msgstr "无法在控件中插入文字。" #: ../src/unix/snglinst.cpp:241 #, c-format msgid "Failed to inspect the lock file '%s'" msgstr "无法检查锁文件 '%s'" #: ../src/unix/appunix.cpp:182 msgid "Failed to install signal handler" msgstr "无法安装信号句柄" #: ../src/unix/threadpsx.cpp:1162 msgid "" "Failed to join a thread, potential memory leak detected - please restart the " "program" msgstr "无法合并线程,检测到潜在地内存丢失 - 请重新启动系统" #: ../src/msw/utils.cpp:745 #, c-format msgid "Failed to kill process %d" msgstr "无法终止进程 %d" #: ../src/common/image.cpp:2365 #, c-format msgid "Failed to load bitmap \"%s\" from resources." msgstr "无法从资源中载入图像 \"%s\"。" #: ../src/common/image.cpp:2374 #, c-format msgid "Failed to load icon \"%s\" from resources." msgstr "无法从资源中载入图标 \"%s\"。" #: ../src/common/iconbndl.cpp:182 #, c-format msgid "Failed to load image %%d from file '%s'." msgstr "无法从文件 '%s' 中读取图像 %%d。" #: ../src/common/iconbndl.cpp:190 #, c-format msgid "Failed to load image %d from stream." msgstr "无法从数据流中载入图像 %d。" #: ../src/common/image.cpp:2450 ../src/common/image.cpp:2469 #, c-format msgid "Failed to load image from file \"%s\"." msgstr "无法从文件 \"%s\" 中读取图像。" #: ../src/msw/enhmeta.cpp:97 #, c-format msgid "Failed to load metafile from file \"%s\"." msgstr "无法从文件 \"%s\" 读取元文件。" #: ../src/msw/volume.cpp:327 msgid "Failed to load mpr.dll." msgstr "无法装载 mpr.dll。" #: ../src/msw/utils.cpp:1120 #, c-format msgid "Failed to load resource \"%s\"." msgstr "无法载入资源 \"%s\"。" #: ../src/common/dynlib.cpp:100 #, c-format msgid "Failed to load shared library '%s'" msgstr "无法装载共享库 '%s'" #: ../src/msw/utils.cpp:1127 #, c-format msgid "Failed to lock resource \"%s\"." msgstr "无法锁定资源 \"%s\"。" #: ../src/unix/snglinst.cpp:198 #, c-format msgid "Failed to lock the lock file '%s'" msgstr "无法锁定锁文件 '%s'" #: ../src/unix/epolldispatcher.cpp:136 #, c-format msgid "Failed to modify descriptor %d in epoll descriptor %d" msgstr "无法修改描述符 %d (于epoll描述符 %d)" #: ../src/common/filename.cpp:2681 #, c-format msgid "Failed to modify file times for '%s'" msgstr "无法为 '%s' 修改文件时间" #: ../src/common/selectdispatcher.cpp:252 msgid "Failed to monitor I/O channels" msgstr "无法检测I/O通道" #: ../src/common/filename.cpp:194 #, c-format msgid "Failed to open '%s' for reading" msgstr "无法读取文件 '%s'" #: ../src/common/filename.cpp:199 #, c-format msgid "Failed to open '%s' for writing" msgstr "无法写入文件 '%s'" #: ../src/html/chm.cpp:141 #, c-format msgid "Failed to open CHM archive '%s'." msgstr "无法打开 CHM 存档 '%s'。" #: ../src/common/utilscmn.cpp:1135 #, c-format msgid "Failed to open URL \"%s\" in default browser." msgstr "无法在默认浏览器中打开 URL \"%s\"。" #: ../include/wx/msw/private/fswatcher.h:92 #, fuzzy, c-format msgid "Failed to open directory \"%s\" for monitoring." msgstr "打开 '%s'(为 %s) 失败" #: ../src/x11/utils.cpp:223 #, fuzzy, c-format msgid "Failed to open display \"%s\"." msgstr "打开 '%s'(为 %s) 失败" #: ../src/common/filename.cpp:1115 msgid "Failed to open temporary file." msgstr "无法打开临时文件。" #: ../src/msw/clipbrd.cpp:94 msgid "Failed to open the clipboard." msgstr "无法打开剪贴板。" #: ../src/common/translation.cpp:1170 #, c-format msgid "Failed to parse Plural-Forms: '%s'" msgstr "无法解析复数形式: '%s'" #: ../src/unix/mediactrl.cpp:1268 #, fuzzy, c-format msgid "Failed to prepare playing \"%s\"." msgstr "打开 '%s'(为 %s) 失败" #: ../src/msw/clipbrd.cpp:647 msgid "Failed to put data on the clipboard" msgstr "无法把数据放到剪贴板" #: ../src/unix/snglinst.cpp:278 msgid "Failed to read PID from lock file." msgstr "无法从锁文件读取 PID。" #: ../src/common/fileconf.cpp:464 msgid "Failed to read config options." msgstr "无法读配置选项。" #: ../src/common/docview.cpp:678 #, c-format msgid "Failed to read document from the file \"%s\"." msgstr "无法从文件 \"%s\" 中读取文档。" #: ../src/dfb/evtloop.cpp:98 msgid "Failed to read event from DirectFB pipe" msgstr "无法从 DirectFB 管道中读取事件" #: ../src/unix/wakeuppipe.cpp:120 #, fuzzy msgid "Failed to read from wake-up pipe" msgstr "从锁文件读取PID失败." #: ../src/unix/utilsunx.cpp:685 msgid "Failed to redirect child process input/output" msgstr "无法重定向子过程输入/输出" #: ../src/msw/utilsexc.cpp:697 msgid "Failed to redirect the child process IO" msgstr "无法重定向子过程 IO" #: ../src/msw/dde.cpp:293 #, c-format msgid "Failed to register DDE server '%s'" msgstr "无法注册 DDE 服务器 '%s'" #: ../src/common/fontmap.cpp:245 #, c-format msgid "Failed to remember the encoding for the charset '%s'." msgstr "无法记忆字符集 '%s' 的编码。" #: ../src/common/debugrpt.cpp:227 #, c-format msgid "Failed to remove debug report file \"%s\"" msgstr "无法删除调试报告文件 \"%s\"" #: ../src/unix/snglinst.cpp:322 #, c-format msgid "Failed to remove lock file '%s'" msgstr "无法删除锁文件 '%s'" #: ../src/unix/snglinst.cpp:288 #, c-format msgid "Failed to remove stale lock file '%s'." msgstr "无法删除过期的锁文件 '%s'。" #: ../src/msw/registry.cpp:528 #, c-format msgid "Failed to rename registry value '%s' to '%s'." msgstr "无法将注册值 '%s' 重命名为 '%s'。" #: ../src/common/filefn.cpp:1168 #, c-format msgid "" "Failed to rename the file '%s' to '%s' because the destination file already " "exists." msgstr "无法将文件'%s' 重命名为 '%s',因为目标文件已存在。" #: ../src/msw/registry.cpp:633 #, c-format msgid "Failed to rename the registry key '%s' to '%s'." msgstr "无法将注册键 '%s' 重命名为 '%s'。" #: ../src/msw/clipbrd.cpp:497 msgid "Failed to retrieve data from the clipboard." msgstr "无法从剪贴板检取数据。" #: ../src/common/filename.cpp:2777 #, c-format msgid "Failed to retrieve file times for '%s'" msgstr "无法提取 '%s' 文件时间" #: ../src/msw/dialup.cpp:487 msgid "Failed to retrieve text of RAS error message" msgstr "无法提取 RAS 错误消息正文" #: ../src/msw/clipbrd.cpp:784 msgid "Failed to retrieve the supported clipboard formats" msgstr "无法提取支持的剪贴板格式" #: ../src/common/docview.cpp:649 #, fuzzy, c-format msgid "Failed to save document to the file \"%s\"." msgstr "将位图图像保存至文件 \"%s\"失败." #: ../src/msw/dib.cpp:326 #, c-format msgid "Failed to save the bitmap image to file \"%s\"." msgstr "无法将位图图像保存至文件 \"%s\"。" #: ../src/msw/dde.cpp:768 msgid "Failed to send DDE advise notification" msgstr "无法发送 DDE advise 通知" #: ../src/common/ftp.cpp:404 #, c-format msgid "Failed to set FTP transfer mode to %s." msgstr "无法设置 FTP 传输模式为 %s。" #: ../src/msw/clipbrd.cpp:373 msgid "Failed to set clipboard data." msgstr "无法设置剪贴板数据。" #: ../src/unix/snglinst.cpp:181 #, c-format msgid "Failed to set permissions on lock file '%s'" msgstr "无法在锁文件 '%s' 上设置许可权限" #: ../src/unix/utilsunx.cpp:674 msgid "Failed to set process priority" msgstr "无法设置线程优先级" #: ../src/common/file.cpp:576 msgid "Failed to set temporary file permissions" msgstr "无法设置临时文件的许可权限" #: ../src/gtk/textctrl.cpp:1058 #, fuzzy msgid "Failed to set text in the text control." msgstr "获取工作目录失败" #: ../src/unix/threadpsx.cpp:1293 #, fuzzy, c-format msgid "Failed to set thread concurrency level to %lu" msgstr "设置线程优先级 %d 失败。" #: ../src/unix/threadpsx.cpp:1377 ../src/unix/threadpsx.cpp:1387 #, c-format msgid "Failed to set thread priority %d." msgstr "无法设置线程优先级 %d。" #: ../src/unix/utilsunx.cpp:791 msgid "Failed to set up non-blocking pipe, the program might hang." msgstr "无法设置非闭塞通道,程序可能挂起。" #: ../src/common/fs_mem.cpp:261 #, c-format msgid "Failed to store image '%s' to memory VFS!" msgstr "无法将图像 '%s' 存到内存 VFS!" #: ../src/dfb/evtloop.cpp:170 msgid "Failed to switch DirectFB pipe to non-blocking mode" msgstr "无法将DirectFB通道切换至非闭塞模式" #: ../src/unix/wakeuppipe.cpp:59 msgid "Failed to switch wake up pipe to non-blocking mode" msgstr "无法将唤醒管道切换至非闭塞模式" #: ../src/unix/threadpsx.cpp:1569 msgid "Failed to terminate a thread." msgstr "无法终止线程。" #: ../src/msw/dde.cpp:746 msgid "Failed to terminate the advise loop with DDE server" msgstr "无法终止与 DDE 服务器的 advise 循环" #: ../src/msw/dialup.cpp:959 #, c-format msgid "Failed to terminate the dialup connection: %s" msgstr "无法终止拨号连接: %s" #: ../src/common/filename.cpp:2696 #, c-format msgid "Failed to touch the file '%s'" msgstr "对文件 '%s' 进行 touch 操作时失败" #: ../src/unix/snglinst.cpp:328 #, c-format msgid "Failed to unlock lock file '%s'" msgstr "无法对已锁文件 '%s' 解锁" #: ../src/msw/dde.cpp:314 #, c-format msgid "Failed to unregister DDE server '%s'" msgstr "无法撤消 DDE 服务器 '%s' 的注册" #: ../src/unix/epolldispatcher.cpp:155 #, fuzzy, c-format msgid "Failed to unregister descriptor %d from epoll descriptor %d" msgstr "从剪贴板检取数据失败." #: ../src/common/fileconf.cpp:1037 msgid "Failed to update user configuration file." msgstr "无法更新用户配置文件。" #: ../src/common/debugrpt.cpp:738 #, c-format msgid "Failed to upload the debug report (error code %d)." msgstr "无法上传调试报告 (错误号 %d)。" #: ../src/unix/snglinst.cpp:168 #, c-format msgid "Failed to write to lock file '%s'" msgstr "无法写入锁文件 '%s'" #: ../src/propgrid/propgrid.cpp:172 msgid "False" msgstr "False" #: ../src/propgrid/advprops.cpp:658 #, fuzzy msgid "Family" msgstr "字体(&F):" #: ../src/common/stockitem.cpp:157 ../src/msw/wince/filedlgwce.cpp:121 msgid "File" msgstr "文件" #: ../src/common/docview.cpp:666 #, c-format msgid "File \"%s\" could not be opened for reading." msgstr "文件 \"%s\" 无法开启为读取模式。" #: ../src/common/docview.cpp:643 #, c-format msgid "File \"%s\" could not be opened for writing." msgstr "文件 \"%s\" 无法开启为写入模式。" #: ../src/gtk/filedlg.cpp:56 #, c-format msgid "File '%s' already exists, do you really want to overwrite it?" msgstr "文件 '%s' 已存在,确实需要复写它?" #: ../src/os2/filedlg.cpp:310 #, c-format msgid "" "File '%s' already exists.\n" "Do you want to replace it?" msgstr "" "文件 '%s' 已存在。\n" "真的需要替换它?" #: ../src/common/filefn.cpp:1207 #, c-format msgid "File '%s' couldn't be removed" msgstr "文件 '%s' 无法被移除" #: ../src/common/filefn.cpp:1187 #, c-format msgid "File '%s' couldn't be renamed '%s'" msgstr "文件 '%s' 无法重命名为 '%s'" #: ../src/richtext/richtextctrl.cpp:2688 ../src/common/textcmn.cpp:921 msgid "File couldn't be loaded." msgstr "文件无法装载。" #: ../src/msw/filedlg.cpp:458 #, fuzzy, c-format msgid "File dialog failed with error code %0lx." msgstr "命令 '%s'执行失败, 错误信息: %ul" #: ../src/common/docview.cpp:1771 msgid "File error" msgstr "文件错误" #: ../src/generic/dirctrlg.cpp:688 ../src/generic/filectrlg.cpp:805 msgid "File name exists already." msgstr "文件名已存在。" #: ../src/motif/filedlg.cpp:220 msgid "Files" msgstr "文件" #: ../src/common/filefn.cpp:1761 #, c-format msgid "Files (%s)" msgstr "文件 (%s)" #: ../src/motif/filedlg.cpp:218 msgid "Filter" msgstr "过滤器" #: ../src/common/stockitem.cpp:158 ../src/html/helpwnd.cpp:500 msgid "Find" msgstr "查找" #: ../src/common/stockitem.cpp:159 msgid "First" msgstr "最前" #: ../src/common/prntbase.cpp:1518 msgid "First page" msgstr "第一页" #: ../src/richtext/richtextsizepage.cpp:521 msgid "Fixed" msgstr "固定" #: ../src/html/helpwnd.cpp:1219 msgid "Fixed font:" msgstr "固定字体:" #: ../src/html/helpwnd.cpp:1282 msgid "Fixed size face.
    bold italic " msgstr "固定字体.
    粗体 斜体 " #: ../src/richtext/richtextsizepage.cpp:229 msgid "Floating" msgstr "浮动" #: ../src/common/stockitem.cpp:160 msgid "Floppy" msgstr "软盘" #: ../src/common/paper.cpp:112 msgid "Folio, 8 1/2 x 13 in" msgstr "对开纸, 8 1/2 x 13 英寸" #: ../src/richtext/richtextformatdlg.cpp:324 ../src/osx/carbon/fontdlg.cpp:473 #: ../src/common/stockitem.cpp:194 msgid "Font" msgstr "字体" #: ../src/richtext/richtextfontpage.cpp:230 msgid "Font &weight:" msgstr "字体粗细(&w):" #: ../src/html/helpwnd.cpp:1220 msgid "Font size:" msgstr "字体大小:" #: ../src/richtext/richtextfontpage.cpp:217 msgid "Font st&yle:" msgstr "字体样式(&y):" #: ../src/osx/carbon/fontdlg.cpp:515 msgid "Font:" msgstr "字体:" #: ../src/dfb/fontmgr.cpp:198 #, c-format msgid "Fonts index file %s disappeared while loading fonts." msgstr "字体索引文件 %s 载入字体时丢失。" #: ../src/unix/utilsunx.cpp:651 msgid "Fork failed" msgstr "Fork 失败" #: ../src/common/stockitem.cpp:161 msgid "Forward" msgstr "前进" #: ../src/common/xtixml.cpp:235 msgid "Forward hrefs are not supported" msgstr "不支持传递hrefs" #: ../src/html/helpwnd.cpp:888 #, c-format msgid "Found %i matches" msgstr "找到 %i 个匹配项" #: ../src/generic/prntdlgg.cpp:238 msgid "From:" msgstr "从:" #: ../src/common/imaggif.cpp:160 msgid "GIF: Invalid gif index." msgstr "GIF: 无效的 gif 图像索引。" #: ../src/common/imaggif.cpp:150 msgid "GIF: data stream seems to be truncated." msgstr "GIF: 数据流似乎已被截断。" #: ../src/common/imaggif.cpp:134 msgid "GIF: error in GIF image format." msgstr "GIF: GIF文件格式错误。" #: ../src/common/imaggif.cpp:137 msgid "GIF: not enough memory." msgstr "GIF: 没有足够内存。" #: ../src/common/imaggif.cpp:140 msgid "GIF: unknown error!!!" msgstr "GIF: 位置错误!!!" #: ../src/gtk/window.cpp:4288 msgid "" "GTK+ installed on this machine is too old to support screen compositing, " "please install GTK+ 2.12 or later." msgstr "本机安装的GTK+版本过低,不支持屏幕组合,请安装GTK+2.12或者更新版本。" #: ../src/univ/themes/gtk.cpp:525 msgid "GTK+ theme" msgstr "GTK+ 主题" #: ../src/common/preferencescmn.cpp:39 msgid "General" msgstr "通用" #: ../src/common/prntbase.cpp:243 msgid "Generic PostScript" msgstr "普通PostScript" #: ../src/common/paper.cpp:136 msgid "German Legal Fanfold, 8 1/2 x 13 in" msgstr "德国法定复写簿, 8 1/2 x 13 英寸" #: ../src/common/paper.cpp:135 msgid "German Std Fanfold, 8 1/2 x 12 in" msgstr "德国标准复写簿, 8 1/2 x 12 英寸" #: ../include/wx/xtiprop.h:188 msgid "GetProperty called w/o valid getter" msgstr "调用GetProperty时未带有效的getter" #: ../include/wx/xtiprop.h:266 msgid "GetPropertyCollection called on a generic accessor" msgstr "在一个通用处理器上调用GetPropertyCollection" #: ../include/wx/xtiprop.h:206 msgid "GetPropertyCollection called w/o valid collection getter" msgstr "调用GetPropertyCollection时未带有效的collection getter" #: ../src/html/helpwnd.cpp:673 msgid "Go back" msgstr "返回" #: ../src/html/helpwnd.cpp:674 msgid "Go forward" msgstr "前进" #: ../src/html/helpwnd.cpp:676 msgid "Go one level up in document hierarchy" msgstr "到上一级文档目录" #: ../src/generic/filedlgg.cpp:223 ../src/generic/dirdlgg.cpp:136 msgid "Go to home directory" msgstr "进入 home 目录" #: ../src/generic/filedlgg.cpp:219 msgid "Go to parent directory" msgstr "进入父目录" #: ../src/generic/aboutdlgg.cpp:76 msgid "Graphics art by " msgstr "图形艺术设计由 " #: ../src/common/fmapbase.cpp:154 msgid "Greek (ISO-8859-7)" msgstr "希腊语 (ISO-8859-7)" #: ../src/richtext/richtextborderspage.cpp:547 msgid "Groove" msgstr "" #: ../src/common/zstream.cpp:158 ../src/common/zstream.cpp:318 msgid "Gzip not supported by this version of zlib" msgstr "此版本的 zlib 不支持 Gzip" #: ../src/common/accelcmn.cpp:75 msgid "HELP" msgstr "HELP" #: ../src/common/accelcmn.cpp:60 msgid "HOME" msgstr "HOME" #: ../src/html/helpwnd.cpp:1552 msgid "HTML Help Project (*.hhp)|*.hhp|" msgstr "HTML 帮助的工程文件 (*.hhp)|*.hhp|" #: ../src/html/htmlwin.cpp:659 #, c-format msgid "HTML anchor %s does not exist." msgstr "HTML 锚 %s 不存在。" #: ../src/html/helpwnd.cpp:1550 msgid "HTML files (*.html;*.htm)|*.html;*.htm|" msgstr "HTML文件 (*.html;*.htm)|*.html;*.htm|" #: ../src/common/stockitem.cpp:162 msgid "Harddisk" msgstr "磁盘" #: ../src/common/fmapbase.cpp:155 msgid "Hebrew (ISO-8859-8)" msgstr "希伯来语 (ISO-8859-8)" #: ../include/wx/msgdlg.h:275 ../src/osx/button_osx.cpp:39 #: ../src/common/stockitem.cpp:163 ../src/html/helpdlg.cpp:66 #: ../src/html/helpfrm.cpp:116 msgid "Help" msgstr "帮助" #: ../src/html/helpwnd.cpp:1213 msgid "Help Browser Options" msgstr "帮助浏览器选项" #: ../src/generic/helpext.cpp:458 ../src/generic/helpext.cpp:459 msgid "Help Index" msgstr "帮助索引" #: ../src/html/helpwnd.cpp:1534 msgid "Help Printing" msgstr "帮助打印" #: ../src/html/helpwnd.cpp:814 msgid "Help Topics" msgstr "帮助主题" #: ../src/html/helpwnd.cpp:1551 msgid "Help books (*.htb)|*.htb|Help books (*.zip)|*.zip|" msgstr "帮助书 (*.htb)|*.htb|帮助书 (*.zip)|*.zip|" #: ../src/generic/helpext.cpp:271 #, c-format msgid "Help directory \"%s\" not found." msgstr "找不到帮助目录 \"%s\"。" #: ../src/generic/helpext.cpp:279 #, c-format msgid "Help file \"%s\" not found." msgstr "找不到帮助文件 \"%s\"。" #: ../src/html/helpctrl.cpp:63 #, c-format msgid "Help: %s" msgstr "帮助: %s" #: ../src/osx/menu_osx.cpp:602 ../src/osx/menu_osx.cpp:649 #, c-format msgid "Hide %s" msgstr "隐藏 %s" #: ../src/osx/menu_osx.cpp:604 ../src/osx/menu_osx.cpp:651 msgid "Hide Others" msgstr "隐藏其他" #: ../src/generic/infobar.cpp:85 msgid "Hide this notification message." msgstr "隐藏此通知消息。" #: ../src/generic/dirdlgg.cpp:98 ../src/common/stockitem.cpp:164 msgid "Home" msgstr "Home" #: ../src/generic/dirctrlg.cpp:624 msgid "Home directory" msgstr "Home 目录" #: ../src/richtext/richtextsizepage.cpp:253 #: ../src/richtext/richtextsizepage.cpp:255 msgid "How the object will float relative to the text." msgstr "对象怎样浮动与文本有关。" #: ../src/common/imagbmp.cpp:1118 msgid "ICO: Error in reading mask DIB." msgstr "ICO: 读掩码DIB错误。" #: ../src/common/imagbmp.cpp:1233 ../src/common/imagbmp.cpp:1294 #: ../src/common/imagbmp.cpp:1305 ../src/common/imagbmp.cpp:1318 #: ../src/common/imagbmp.cpp:1363 ../src/common/imagbmp.cpp:1375 #: ../src/common/imagbmp.cpp:1386 msgid "ICO: Error writing the image file!" msgstr "ICO: 写图像文件错误!" #: ../src/common/imagbmp.cpp:1198 msgid "ICO: Image too tall for an icon." msgstr "ICO: 图像高度超出范围,不适合做图标。" #: ../src/common/imagbmp.cpp:1206 msgid "ICO: Image too wide for an icon." msgstr "ICO: 图像宽度超出范围,不适合做图标。" #: ../src/common/imagbmp.cpp:1466 msgid "ICO: Invalid icon index." msgstr "ICO: 无效的图标索引。" #: ../src/common/imagiff.cpp:759 msgid "IFF: data stream seems to be truncated." msgstr "IFF: 数据流似乎已被截断。" #: ../src/common/imagiff.cpp:743 msgid "IFF: error in IFF image format." msgstr "IFF: IFF文件格式错误。" #: ../src/common/imagiff.cpp:746 msgid "IFF: not enough memory." msgstr "IFF: 没有足够内存。" #: ../src/common/imagiff.cpp:749 msgid "IFF: unknown error!!!" msgstr "IFF: 位置错误!!!" #: ../src/common/accelcmn.cpp:50 msgid "INS" msgstr "INS" #: ../src/common/accelcmn.cpp:51 msgid "INSERT" msgstr "INSERT" #: ../src/common/fmapbase.cpp:197 msgid "ISO-2022-JP" msgstr "ISO-2022-JP" #: ../src/osx/carbon/dataview.cpp:2420 msgid "Icon & text renderer cannot render value; value type: " msgstr "图标和文本渲染器无法渲染该值; 类型为:" #: ../src/html/htmprint.cpp:282 msgid "" "If possible, try changing the layout parameters to make the printout more " "narrow." msgstr "如有可能,请尝试更改布局参数以使输出结果更紧凑。" #: ../src/generic/dbgrptg.cpp:358 msgid "" "If you have any additional information pertaining to this bug\n" "report, please enter it here and it will be joined to it:" msgstr "" "如果您有任何与此错误报告有关的信息, \n" "请在此输入,它将会被加到错误报告中:" #: ../src/generic/dbgrptg.cpp:324 msgid "" "If you wish to suppress this debug report completely, please choose the " "\"Cancel\" button,\n" "but be warned that it may hinder improving the program, so if\n" "at all possible please do continue with the report generation.\n" msgstr "" "如果您想完全禁用调试报告,请按\"取消\"按钮,\n" "但我们不建议这样做,因为调试报告有助于改进本程序。\n" "在可能的情况下,请尽量选择让程序生成调试报告。\n" #: ../src/msw/registry.cpp:1395 #, c-format msgid "Ignoring value \"%s\" of the key \"%s\"." msgstr "忽略值 \"%s\" (键 \"%s\")。" #: ../src/common/xtistrm.cpp:299 msgid "Illegal Object Class (Non-wxEvtHandler) as Event Source" msgstr "非法的对象类 (非-wxEvtHandler) 作为事件源" #: ../src/common/xti.cpp:513 msgid "Illegal Parameter Count for ConstructObject Method" msgstr "非法的针对 ConstructObject 方法的参数计数" #: ../src/common/xti.cpp:501 msgid "Illegal Parameter Count for Create Method" msgstr "非法的针对 Create 方法的参数计数" #: ../src/generic/dirctrlg.cpp:670 ../src/generic/filectrlg.cpp:791 msgid "Illegal directory name." msgstr "不合法的目录名。" #: ../src/generic/filectrlg.cpp:1380 msgid "Illegal file specification." msgstr "不合规范的文件描述。" #: ../src/common/image.cpp:2158 msgid "Image and mask have different sizes." msgstr "图像和掩码的大小不一致。" #: ../src/common/image.cpp:2609 #, c-format msgid "Image file is not of type %d." msgstr "图像文件的类型不是 %d。" #: ../src/common/image.cpp:2739 #, c-format msgid "Image is not of type %s." msgstr "图像的类型不是 %s。" #: ../src/msw/textctrl.cpp:399 msgid "" "Impossible to create a rich edit control, using simple text control instead. " "Please reinstall riched32.dll" msgstr "" "无法创建富文本编辑器控件,使用简单文本编辑器控件代替。请重新安装 riched32.dll" #: ../src/unix/utilsunx.cpp:307 msgid "Impossible to get child process input" msgstr "不可能获得子过程的输入" #: ../src/common/filefn.cpp:1074 #, c-format msgid "Impossible to get permissions for file '%s'" msgstr "不可能获得文件 '%s' 的许可权限" #: ../src/common/filefn.cpp:1088 #, c-format msgid "Impossible to overwrite the file '%s'" msgstr "不可能复写文件 '%s'" #: ../src/common/filefn.cpp:1142 #, c-format msgid "Impossible to set permissions for the file '%s'" msgstr "不可能设置文件 '%s' 的许可权限" #: ../src/common/gifdecod.cpp:818 #, c-format msgid "Incorrect GIF frame size (%u, %d) for the frame #%u" msgstr "错误的GIF帧尺寸(%u, %d)对于第#%u帧" #: ../src/msw/ole/automtn.cpp:624 msgid "Incorrect number of arguments." msgstr "错误的变量数目。" #: ../src/common/stockitem.cpp:165 msgid "Indent" msgstr "缩进" #: ../src/richtext/richtextformatdlg.cpp:330 msgid "Indents && Spacing" msgstr "锁紧和空格" #: ../src/common/stockitem.cpp:166 ../src/html/helpwnd.cpp:525 msgid "Index" msgstr "索引" #: ../src/common/fmapbase.cpp:159 msgid "Indian (ISO-8859-12)" msgstr "印地安语 (ISO-8859-12)" #: ../src/common/stockitem.cpp:167 msgid "Info" msgstr "信息" #: ../src/common/init.cpp:276 msgid "Initialization failed in post init, aborting." msgstr "在后初始化阶段出错,退出..." #: ../src/richtext/richtextsymboldlg.cpp:472 msgid "Insert" msgstr "插入" #: ../src/richtext/richtextbuffer.cpp:7687 #, fuzzy msgid "Insert Field" msgstr "插入" #: ../src/richtext/richtextbuffer.cpp:7598 #: ../src/richtext/richtextbuffer.cpp:8551 msgid "Insert Image" msgstr "插入图片" #: ../src/richtext/richtextbuffer.cpp:7645 msgid "Insert Object" msgstr "插入对象" #: ../src/richtext/richtextctrl.cpp:1172 ../src/richtext/richtextctrl.cpp:1362 #: ../src/richtext/richtextbuffer.cpp:7440 #: ../src/richtext/richtextbuffer.cpp:7470 #: ../src/richtext/richtextbuffer.cpp:7514 msgid "Insert Text" msgstr "插入文本" #: ../src/richtext/richtextindentspage.cpp:295 #: ../src/richtext/richtextindentspage.cpp:297 msgid "Inserts a page break before the paragraph." msgstr "在段落前插入断页符。" #: ../src/richtext/richtextborderspage.cpp:549 #, fuzzy msgid "Inset" msgstr "缩进" #: ../src/gtk/app.cpp:429 #, c-format msgid "Invalid GTK+ command line option, use \"%s --help\"" msgstr "无效的GTK+命令行选项,使用 \"%s --help\"" #: ../src/common/imagtiff.cpp:314 msgid "Invalid TIFF image index." msgstr "无效TIFF图像索引。" #: ../src/osx/carbon/dataview.cpp:1782 ../src/osx/carbon/dataview.cpp:1877 msgid "Invalid data view item" msgstr "无效的数据视图项" #: ../src/common/appcmn.cpp:266 #, c-format msgid "Invalid display mode specification '%s'." msgstr "无效的显示模式 '%s'。" #: ../src/x11/app.cpp:121 #, c-format msgid "Invalid geometry specification '%s'" msgstr "无效的几何规格 '%s'" #: ../src/unix/fswatcher_inotify.cpp:298 #, c-format msgid "Invalid inotify event for \"%s\"" msgstr "无效的 \"%s\" inotify 事件" #: ../src/unix/snglinst.cpp:306 #, c-format msgid "Invalid lock file '%s'." msgstr "无效的锁文件 '%s'。" #: ../src/common/translation.cpp:1111 msgid "Invalid message catalog." msgstr "无效的消息目录。" #: ../src/common/xtistrm.cpp:409 ../src/common/xtistrm.cpp:424 msgid "Invalid or Null Object ID passed to GetObjectClassInfo" msgstr "无效的或空的对象 ID 传给 GetObjectClassInfo" #: ../src/common/xtistrm.cpp:439 msgid "Invalid or Null Object ID passed to HasObjectClassInfo" msgstr "无效的或空的对象 ID 传给 HasObjectClassInfo" #: ../src/common/regex.cpp:313 #, c-format msgid "Invalid regular expression '%s': %s" msgstr "无效的正则表达式 '%s': %s" #: ../src/common/config.cpp:226 #, c-format msgid "Invalid value %ld for a boolean key \"%s\" in config file." msgstr "配置文件中无效的值 %ld 于布尔键 \"%s\"。" #: ../src/generic/fontdlgg.cpp:329 ../src/richtext/richtextfontpage.cpp:333 #: ../src/osx/carbon/fontdlg.cpp:547 ../src/common/stockitem.cpp:168 msgid "Italic" msgstr "斜体" #: ../src/common/paper.cpp:131 msgid "Italy Envelope, 110 x 230 mm" msgstr "意大利信封, 110 x 230 毫米" #: ../src/common/imagjpeg.cpp:255 msgid "JPEG: Couldn't load - file is probably corrupted." msgstr "JPEG: 无法装入 - 文件也许已被破坏。" #: ../src/common/imagjpeg.cpp:434 msgid "JPEG: Couldn't save image." msgstr "JPEG: 无法保存图像。" #: ../src/common/paper.cpp:164 msgid "Japanese Double Postcard 200 x 148 mm" msgstr "日本双明信片, 200 x 148 毫米" #: ../src/common/paper.cpp:168 msgid "Japanese Envelope Chou #3" msgstr "日本 Chou 3 信封" #: ../src/common/paper.cpp:181 msgid "Japanese Envelope Chou #3 Rotated" msgstr "日本 Chou 3 信封(横向)" #: ../src/common/paper.cpp:169 msgid "Japanese Envelope Chou #4" msgstr "日本 Chou 4 信封" #: ../src/common/paper.cpp:182 msgid "Japanese Envelope Chou #4 Rotated" msgstr "日本 Chou 4 信封(横向)" #: ../src/common/paper.cpp:166 msgid "Japanese Envelope Kaku #2" msgstr "日本 Kaku 2 信封" #: ../src/common/paper.cpp:179 msgid "Japanese Envelope Kaku #2 Rotated" msgstr "日本 Kaku 2 信封(横向)" #: ../src/common/paper.cpp:167 msgid "Japanese Envelope Kaku #3" msgstr "日本 Kaku 3 信封" #: ../src/common/paper.cpp:180 msgid "Japanese Envelope Kaku #3 Rotated" msgstr "日本 Kaku 3 信封(横向)" #: ../src/common/paper.cpp:186 msgid "Japanese Envelope You #4" msgstr "日本 You 4 信封" #: ../src/common/paper.cpp:187 msgid "Japanese Envelope You #4 Rotated" msgstr "日本 You 4 信封(横向)" #: ../src/common/paper.cpp:139 msgid "Japanese Postcard 100 x 148 mm" msgstr "日本明信片, 100 x 148 毫米" #: ../src/common/paper.cpp:176 msgid "Japanese Postcard Rotated 148 x 100 mm" msgstr "横向日本明信片, 148 x 100 毫米" #: ../src/common/stockitem.cpp:169 msgid "Jump to" msgstr "跳转至" #: ../src/common/stockitem.cpp:171 msgid "Justified" msgstr "分散对齐" #: ../src/richtext/richtextindentspage.cpp:155 #: ../src/richtext/richtextindentspage.cpp:157 #: ../src/richtext/richtextliststylepage.cpp:344 #: ../src/richtext/richtextliststylepage.cpp:346 msgid "Justify text left and right." msgstr "文本左右对齐。" #: ../src/common/fmapbase.cpp:163 msgid "KOI8-R" msgstr "KOI8-R" #: ../src/common/fmapbase.cpp:164 msgid "KOI8-U" msgstr "KOI8-U" #: ../src/common/accelcmn.cpp:254 ../src/common/accelcmn.cpp:336 msgid "KP_" msgstr "KP_" #: ../src/common/accelcmn.cpp:103 msgid "KP_ADD" msgstr "KP_ADD" #: ../src/common/accelcmn.cpp:98 msgid "KP_BEGIN" msgstr "KP_BEGIN" #: ../src/common/accelcmn.cpp:106 msgid "KP_DECIMAL" msgstr "KP_DECIMAL" #: ../src/common/accelcmn.cpp:100 msgid "KP_DELETE" msgstr "KP_DELETE" #: ../src/common/accelcmn.cpp:107 msgid "KP_DIVIDE" msgstr "KP_DIVIDE" #: ../src/common/accelcmn.cpp:92 msgid "KP_DOWN" msgstr "KP_DOWN" #: ../src/common/accelcmn.cpp:97 msgid "KP_END" msgstr "KP_END" #: ../src/common/accelcmn.cpp:87 msgid "KP_ENTER" msgstr "KP_ENTER" #: ../src/common/accelcmn.cpp:101 msgid "KP_EQUAL" msgstr "KP_EQUAL" #: ../src/common/accelcmn.cpp:88 msgid "KP_HOME" msgstr "KP_HOME" #: ../src/common/accelcmn.cpp:99 msgid "KP_INSERT" msgstr "KP_INSERT" #: ../src/common/accelcmn.cpp:89 msgid "KP_LEFT" msgstr "KP_LEFT" #: ../src/common/accelcmn.cpp:102 msgid "KP_MULTIPLY" msgstr "KP_MULTIPLY" #: ../src/common/accelcmn.cpp:95 msgid "KP_NEXT" msgstr "KP_NEXT" #: ../src/common/accelcmn.cpp:96 msgid "KP_PAGEDOWN" msgstr "KP_PAGEDOWN" #: ../src/common/accelcmn.cpp:94 msgid "KP_PAGEUP" msgstr "KP_PAGEUP" #: ../src/common/accelcmn.cpp:93 msgid "KP_PRIOR" msgstr "KP_PRIOR" #: ../src/common/accelcmn.cpp:91 msgid "KP_RIGHT" msgstr "KP_RIGHT" #: ../src/common/accelcmn.cpp:104 msgid "KP_SEPARATOR" msgstr "KP_SEPARATOR" #: ../src/common/accelcmn.cpp:85 msgid "KP_SPACE" msgstr "KP_SPACE" #: ../src/common/accelcmn.cpp:105 msgid "KP_SUBTRACT" msgstr "KP_SUBTRACT" #: ../src/common/accelcmn.cpp:86 msgid "KP_TAB" msgstr "KP_TAB" #: ../src/common/accelcmn.cpp:90 msgid "KP_UP" msgstr "KP_UP" #: ../src/richtext/richtextindentspage.cpp:270 msgid "L&ine spacing:" msgstr "行距(&I):" #: ../src/common/accelcmn.cpp:56 msgid "LEFT" msgstr "LEFT" #: ../src/generic/prntdlgg.cpp:613 ../src/generic/prntdlgg.cpp:868 msgid "Landscape" msgstr "横向" #: ../src/common/stockitem.cpp:174 msgid "Last" msgstr "最后" #: ../src/common/prntbase.cpp:1542 msgid "Last page" msgstr "最后一页" #: ../src/common/log.cpp:309 #, c-format msgid "Last repeated message (\"%s\", %lu time) wasn't output" msgid_plural "Last repeated message (\"%s\", %lu times) wasn't output" msgstr[0] "最后重复消息(\"%s\", %lu time)未输出" #: ../src/common/paper.cpp:104 msgid "Ledger, 17 x 11 in" msgstr "帐簿, 17 x 11 英寸" #: ../src/richtext/richtextliststylepage.cpp:249 #: ../src/richtext/richtextliststylepage.cpp:252 #: ../src/richtext/richtextliststylepage.cpp:253 #: ../src/richtext/richtextbulletspage.cpp:199 #: ../src/richtext/richtextbulletspage.cpp:202 #: ../src/richtext/richtextbulletspage.cpp:203 #: ../src/richtext/richtextsizepage.cpp:249 msgid "Left" msgstr "左" #: ../src/richtext/richtextindentspage.cpp:204 #: ../src/richtext/richtextliststylepage.cpp:390 msgid "Left (&first line):" msgstr "左(第一行)(&F):" #: ../src/generic/prntdlgg.cpp:880 msgid "Left margin (mm):" msgstr "左边距 (毫米):" #: ../src/richtext/richtextindentspage.cpp:141 #: ../src/richtext/richtextindentspage.cpp:143 #: ../src/richtext/richtextliststylepage.cpp:330 #: ../src/richtext/richtextliststylepage.cpp:332 msgid "Left-align text." msgstr "文字左对齐。" #: ../src/common/paper.cpp:145 msgid "Legal Extra 9 1/2 x 15 in" msgstr "特大法律纸张, 9 1/2 x 15 英寸" #: ../src/common/paper.cpp:97 msgid "Legal, 8 1/2 x 14 in" msgstr "标准法律纸张, 8 1/2 x 14 英寸" #: ../src/common/paper.cpp:144 msgid "Letter Extra 9 1/2 x 12 in" msgstr "特大信纸, 9 1/2 x 12 英寸" #: ../src/common/paper.cpp:150 msgid "Letter Extra Transverse 9.275 x 12 in" msgstr "特大信纸(横排), 9.275 x 12 英寸" #: ../src/common/paper.cpp:153 msgid "Letter Plus 8 1/2 x 12.69 in" msgstr "加大信纸, 8 1/2 x 12.69 英寸" #: ../src/common/paper.cpp:170 msgid "Letter Rotated 11 x 8 1/2 in" msgstr "横向信纸, 11 x 8 1/2 英寸" #: ../src/common/paper.cpp:102 msgid "Letter Small, 8 1/2 x 11 in" msgstr "信纸(小), 8 1/2 x 11 英寸" #: ../src/common/paper.cpp:148 msgid "Letter Transverse 8 1/2 x 11 in" msgstr "信纸(横排), 8 1/2 x 11 英寸" #: ../src/common/paper.cpp:96 msgid "Letter, 8 1/2 x 11 in" msgstr "信纸, 8 1/2 x 11 英寸" #: ../src/generic/aboutdlgg.cpp:173 msgid "License" msgstr "授权" #: ../src/generic/fontdlgg.cpp:332 msgid "Light" msgstr "细" #: ../src/generic/helpext.cpp:298 #, c-format msgid "Line %lu of map file \"%s\" has invalid syntax, skipped." msgstr "行 %lu 的map文件 \"%s\" 有无效语法,跳过。" #: ../src/richtext/richtextliststylepage.cpp:444 msgid "Line spacing:" msgstr "行距:" #: ../src/html/chm.cpp:838 msgid "Link contained '//', converted to absolute link." msgstr "链接包含 '//',转换为绝对链接." #: ../src/richtext/richtextformatdlg.cpp:349 msgid "List Style" msgstr "列表样式" #: ../src/richtext/richtextstyles.cpp:1060 msgid "List styles" msgstr "列表样式" #: ../src/richtext/richtextfontpage.cpp:206 #: ../src/richtext/richtextfontpage.cpp:208 msgid "Lists font sizes in points." msgstr "列表字体大小" #: ../src/richtext/richtextfontpage.cpp:199 #: ../src/richtext/richtextfontpage.cpp:201 msgid "Lists the available fonts." msgstr "列出可用字体。" #: ../src/common/fldlgcmn.cpp:325 #, c-format msgid "Load %s file" msgstr "装入文件 %s " #: ../src/html/htmlwin.cpp:575 msgid "Loading : " msgstr "装载: " #: ../src/unix/snglinst.cpp:246 #, c-format msgid "Lock file '%s' has incorrect owner." msgstr "锁文件 '%s' 没有正确的所有者。" #: ../src/unix/snglinst.cpp:251 #, c-format msgid "Lock file '%s' has incorrect permissions." msgstr "锁文件 '%s' 没有正确的权限。" #: ../src/generic/logg.cpp:582 #, c-format msgid "Log saved to the file '%s'." msgstr "日志保存到文件 '%s'。" #: ../src/richtext/richtextliststylepage.cpp:484 #: ../src/richtext/richtextbulletspage.cpp:289 msgid "Lower case letters" msgstr "小写字母" #: ../src/richtext/richtextliststylepage.cpp:486 #: ../src/richtext/richtextbulletspage.cpp:291 msgid "Lower case roman numerals" msgstr "小写罗马数字" #: ../src/gtk/mdi.cpp:422 ../src/gtk1/mdi.cpp:431 msgid "MDI child" msgstr "MDI 子窗口" #: ../src/common/accelcmn.cpp:68 msgid "MENU" msgstr "MENU" #: ../src/msw/helpchm.cpp:56 msgid "" "MS HTML Help functions are unavailable because the MS HTML Help library is " "not installed on this machine. Please install it." msgstr "MS HTML帮助功能不存在,因为此机器上没有安装 MS HTML 帮助库。请安装它。" #: ../src/univ/themes/win32.cpp:3754 msgid "Ma&ximize" msgstr "最大化(&x)" #: ../src/common/fmapbase.cpp:203 msgid "MacArabic" msgstr "MacArabic" #: ../src/common/fmapbase.cpp:222 msgid "MacArmenian" msgstr "MacArmenian" #: ../src/common/fmapbase.cpp:211 msgid "MacBengali" msgstr "MacBengali" #: ../src/common/fmapbase.cpp:217 msgid "MacBurmese" msgstr "MacBurmese" #: ../src/common/fmapbase.cpp:236 msgid "MacCeltic" msgstr "MacCeltic" #: ../src/common/fmapbase.cpp:227 msgid "MacCentralEurRoman" msgstr "MacCentralEurRoman" #: ../src/common/fmapbase.cpp:223 msgid "MacChineseSimp" msgstr "MacChineseSimp" #: ../src/common/fmapbase.cpp:201 msgid "MacChineseTrad" msgstr "MacChineseTrad" #: ../src/common/fmapbase.cpp:233 msgid "MacCroatian" msgstr "MacCroatian" #: ../src/common/fmapbase.cpp:206 msgid "MacCyrillic" msgstr "MacCyrillic" #: ../src/common/fmapbase.cpp:207 msgid "MacDevanagari" msgstr "MacDevanagari" #: ../src/common/fmapbase.cpp:231 msgid "MacDingbats" msgstr "MacDingbats" #: ../src/common/fmapbase.cpp:226 msgid "MacEthiopic" msgstr "MacEthiopic" #: ../src/common/fmapbase.cpp:229 msgid "MacExtArabic" msgstr "MacExtArabic" #: ../src/common/fmapbase.cpp:237 msgid "MacGaelic" msgstr "MacGaelic" #: ../src/common/fmapbase.cpp:221 msgid "MacGeorgian" msgstr "MacGeorgian" #: ../src/common/fmapbase.cpp:205 msgid "MacGreek" msgstr "MacGreek" #: ../src/common/fmapbase.cpp:209 msgid "MacGujarati" msgstr "MacGujarati" #: ../src/common/fmapbase.cpp:208 msgid "MacGurmukhi" msgstr "MacGurmukhi" #: ../src/common/fmapbase.cpp:204 msgid "MacHebrew" msgstr "MacHebrew" #: ../src/common/fmapbase.cpp:234 msgid "MacIcelandic" msgstr "MacIcelandic" #: ../src/common/fmapbase.cpp:200 msgid "MacJapanese" msgstr "MacJapanese" #: ../src/common/fmapbase.cpp:214 msgid "MacKannada" msgstr "MacKannada" #: ../src/common/fmapbase.cpp:238 msgid "MacKeyboardGlyphs" msgstr "MacKeyboardGlyphs" #: ../src/common/fmapbase.cpp:218 msgid "MacKhmer" msgstr "MacKhmer" #: ../src/common/fmapbase.cpp:202 msgid "MacKorean" msgstr "MacKorean" #: ../src/common/fmapbase.cpp:220 msgid "MacLaotian" msgstr "MacLaotian" #: ../src/common/fmapbase.cpp:215 msgid "MacMalayalam" msgstr "MacMalayalam" #: ../src/common/fmapbase.cpp:225 msgid "MacMongolian" msgstr "MacMongolian" #: ../src/common/fmapbase.cpp:210 msgid "MacOriya" msgstr "MacOriya" #: ../src/common/fmapbase.cpp:199 msgid "MacRoman" msgstr "MacRoman" #: ../src/common/fmapbase.cpp:235 msgid "MacRomanian" msgstr "MacRomanian" #: ../src/common/fmapbase.cpp:216 msgid "MacSinhalese" msgstr "MacSinhalese" #: ../src/common/fmapbase.cpp:230 msgid "MacSymbol" msgstr "MacSymbol" #: ../src/common/fmapbase.cpp:212 msgid "MacTamil" msgstr "MacTamil" #: ../src/common/fmapbase.cpp:213 msgid "MacTelugu" msgstr "MacTelugu" #: ../src/common/fmapbase.cpp:219 msgid "MacThai" msgstr "MacThai" #: ../src/common/fmapbase.cpp:224 msgid "MacTibetan" msgstr "MacTibetan" #: ../src/common/fmapbase.cpp:232 msgid "MacTurkish" msgstr "MacTurkish" #: ../src/common/fmapbase.cpp:228 msgid "MacVietnamese" msgstr "MacVietnamese" #: ../src/propgrid/advprops.cpp:2031 msgid "Make a selection:" msgstr "请选择:" #: ../src/richtext/richtextformatdlg.cpp:362 #: ../src/richtext/richtextmarginspage.cpp:172 msgid "Margins" msgstr "边距" #: ../src/generic/fdrepdlg.cpp:147 msgid "Match case" msgstr "区分大小写" #: ../src/richtext/richtextsizepage.cpp:463 msgid "Max height:" msgstr "最达高度:" #: ../src/richtext/richtextsizepage.cpp:436 msgid "Max width:" msgstr "最大宽度:" #: ../src/unix/mediactrl.cpp:1006 #, c-format msgid "Media playback error: %s" msgstr "媒体回放错误:%s" #: ../src/common/fs_mem.cpp:175 #, c-format msgid "Memory VFS already contains file '%s'!" msgstr "内存 VFS 已包含文件 '%s'!" #: ../src/msw/frame.cpp:347 msgid "Menu" msgstr "菜单" #: ../src/common/msgout.cpp:124 msgid "Message" msgstr "消息" #: ../src/univ/themes/metal.cpp:168 msgid "Metal theme" msgstr "金属主题" #: ../src/msw/ole/automtn.cpp:641 msgid "Method or property not found." msgstr "找不到方法或属性。" #: ../src/univ/themes/win32.cpp:3752 msgid "Mi&nimize" msgstr "最小化(&n)" #: ../src/richtext/richtextsizepage.cpp:409 msgid "Min height:" msgstr "最小高度:" #: ../src/richtext/richtextsizepage.cpp:382 msgid "Min width:" msgstr "最小宽度: " #: ../src/msw/ole/automtn.cpp:657 msgid "Missing a required parameter." msgstr "缺少必要参数。" #: ../src/generic/fontdlgg.cpp:324 msgid "Modern" msgstr "现代" #: ../src/generic/filectrlg.cpp:462 msgid "Modified" msgstr "修改日期" #: ../src/common/module.cpp:133 #, c-format msgid "Module \"%s\" initialization failed" msgstr "模块 \"%s\" 初始化失败" #: ../src/common/paper.cpp:132 msgid "Monarch Envelope, 3 7/8 x 7 1/2 in" msgstr "7.75信封,3 7/8 x 7 1/2 英寸" #: ../src/msw/fswatcher.cpp:143 msgid "Monitoring individual files for changes is not supported currently." msgstr "当前不支持监视单独文件的更改。" #: ../src/generic/editlbox.cpp:276 msgid "Move down" msgstr "下移" #: ../src/generic/editlbox.cpp:275 msgid "Move up" msgstr "上移" #: ../src/richtext/richtextsizepage.cpp:682 #: ../src/richtext/richtextsizepage.cpp:684 msgid "Moves the object to the next paragraph." msgstr "将对象移至下一段落" #: ../src/richtext/richtextsizepage.cpp:676 #: ../src/richtext/richtextsizepage.cpp:678 msgid "Moves the object to the previous paragraph." msgstr "将对象移至前一段落" #: ../src/richtext/richtextbuffer.cpp:9345 msgid "Multiple Cell Properties" msgstr "多重单元属性" #: ../src/common/accelcmn.cpp:81 msgid "NUM_LOCK" msgstr "NUM_LOCK" #: ../src/generic/filectrlg.cpp:459 msgid "Name" msgstr "名称" #: ../src/common/stockitem.cpp:175 msgid "Network" msgstr "网络" #: ../src/common/stockitem.cpp:176 msgid "New" msgstr "新建" #: ../src/richtext/richtextstyledlg.cpp:243 msgid "New &Box Style..." msgstr "新方块样式(&B)" #: ../src/richtext/richtextstyledlg.cpp:225 msgid "New &Character Style..." msgstr "新增字体样式(&C)..." #: ../src/richtext/richtextstyledlg.cpp:237 msgid "New &List Style..." msgstr "新增列表样式(&L)..." #: ../src/richtext/richtextstyledlg.cpp:231 msgid "New &Paragraph Style..." msgstr "新增段落样式(&P)..." #: ../src/richtext/richtextstyledlg.cpp:603 #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:651 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:817 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:890 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:931 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "New Style" msgstr "新增样式" #: ../src/generic/dirdlgg.cpp:102 msgid "New directory" msgstr "新目录" #: ../src/generic/editlbox.cpp:273 msgid "New item" msgstr "新项目" #: ../src/generic/dirdlgg.cpp:326 ../src/generic/dirdlgg.cpp:336 #: ../src/generic/filectrlg.cpp:653 ../src/generic/filectrlg.cpp:662 msgid "NewName" msgstr "新名称" #: ../src/generic/tipdlg.cpp:305 msgid "Next" msgstr "下一个" #: ../src/common/prntbase.cpp:1537 ../src/html/helpwnd.cpp:678 msgid "Next page" msgstr "下一页" #: ../include/wx/msgdlg.h:272 ../src/common/stockitem.cpp:177 #: ../src/motif/msgdlg.cpp:196 msgid "No" msgstr "否" #: ../src/generic/animateg.cpp:150 #, fuzzy, c-format msgid "No animation handler for type %ld defined." msgstr "没有类型 %d 的图像处理器." #: ../src/dfb/bitmap.cpp:642 ../src/dfb/bitmap.cpp:676 #, fuzzy, c-format msgid "No bitmap handler for type %d defined." msgstr "没有类型 %d 的图像处理器." #: ../src/osx/carbon/dataview.cpp:1784 msgid "No column existing." msgstr "没有任何列存在。" #: ../src/osx/carbon/dataview.cpp:1674 msgid "No column for the specified column existing." msgstr "没有指定的列存在。" #: ../src/osx/carbon/dataview.cpp:1423 msgid "No column for the specified column position existing." msgstr "没有指定的列位置存在。" #: ../src/common/utilscmn.cpp:1049 msgid "No default application configured for HTML files." msgstr "没有设定HTML文件的默认应用。" #: ../src/generic/helpext.cpp:449 msgid "No entries found." msgstr "没找到条目。" #: ../src/common/fontmap.cpp:421 #, c-format msgid "" "No font for displaying text in encoding '%s' found,\n" "but an alternative encoding '%s' is available.\n" "Do you want to use this encoding (otherwise you will have to choose another " "one)?" msgstr "" "编码 '%s' 的字体未找到,无法显示文本。\n" "但发现另一替代编码 '%s'。\n" "是否使用该编码 (否则您必须选择另外的编码)?" #: ../src/common/fontmap.cpp:426 #, c-format msgid "" "No font for displaying text in encoding '%s' found.\n" "Would you like to select a font to be used for this encoding\n" "(otherwise the text in this encoding will not be shown correctly)?" msgstr "" "编码 '%s' 的字体未找到,无法显示文本。\n" "请选择用于该编码的字体\n" "(否则该编码的文本将无法正确显示)?" #: ../src/generic/animateg.cpp:142 msgid "No handler found for animation type." msgstr "没有找到动画类型处理器。" #: ../src/common/image.cpp:2591 msgid "No handler found for image type." msgstr "没有找到图像类型处理器。" #: ../src/common/image.cpp:2599 ../src/common/image.cpp:2710 #: ../src/common/image.cpp:2763 #, c-format msgid "No image handler for type %d defined." msgstr "没有类型 %d 的图像处理器。" #: ../src/common/image.cpp:2733 ../src/common/image.cpp:2777 #, c-format msgid "No image handler for type %s defined." msgstr "没有类型 %s的图像处理器。" #: ../src/html/helpwnd.cpp:871 msgid "No matching page found yet" msgstr "还没有找到匹配页" #: ../src/osx/carbon/dataview.cpp:1676 ../src/osx/carbon/dataview.cpp:1786 msgid "No renderer or invalid renderer type specified for custom data column." msgstr "无渲染器或为该数据列指定了无效的渲染器" #: ../src/osx/carbon/dataview.cpp:1424 msgid "No renderer specified for column." msgstr "该列未指定渲染器" #: ../src/unix/sound.cpp:81 msgid "No sound" msgstr "没有声音" #: ../src/common/image.cpp:2166 ../src/common/image.cpp:2207 msgid "No unused colour in image being masked." msgstr "图像中没有被掩码的未用颜色。" #: ../src/common/image.cpp:3236 msgid "No unused colour in image." msgstr "图像中没有未用的颜色。" #: ../src/generic/helpext.cpp:306 #, c-format msgid "No valid mappings found in the file \"%s\"." msgstr "文件 \"%s\" 中无效映射" #: ../src/richtext/richtextborderspage.cpp:542 #: ../src/richtext/richtextsizepage.cpp:248 #: ../src/richtext/richtextsizepage.cpp:252 msgid "None" msgstr "无" #: ../src/common/fmapbase.cpp:157 msgid "Nordic (ISO-8859-10)" msgstr "日尔曼语 (ISO-8859-10)" #: ../src/generic/fontdlgg.cpp:328 ../src/generic/fontdlgg.cpp:331 msgid "Normal" msgstr "正常" #: ../src/html/helpwnd.cpp:1276 msgid "Normal face
    and underlined. " msgstr "正常字体
    带下划线。" #: ../src/html/helpwnd.cpp:1218 msgid "Normal font:" msgstr "正常字体:" #: ../src/propgrid/props.cpp:887 #, c-format msgid "Not %s" msgstr "非 %s" #: ../include/wx/filename.h:586 ../include/wx/filename.h:591 msgid "Not available" msgstr "不可用" #: ../src/richtext/richtextfontpage.cpp:340 #, fuzzy msgid "Not underlined" msgstr "下划线" #: ../src/common/paper.cpp:116 msgid "Note, 8 1/2 x 11 in" msgstr "笔记簿, 8 1/2 x 11 英寸" #: ../src/generic/notifmsgg.cpp:104 msgid "Notice" msgstr "注意" #: ../src/osx/carbon/dataview.cpp:902 msgid "Number of columns could not be determined." msgstr "无法确定列数量。" #: ../src/richtext/richtextliststylepage.cpp:487 #: ../src/richtext/richtextbulletspage.cpp:292 msgid "Numbered outline" msgstr "大纲标号" #: ../include/wx/msgdlg.h:273 ../src/richtext/richtextstyledlg.cpp:297 #: ../src/common/stockitem.cpp:178 ../src/msw/msgdlg.cpp:489 #: ../src/msw/msgdlg.cpp:799 ../src/msw/dialog.cpp:120 #: ../src/gtk1/fontdlg.cpp:138 msgid "OK" msgstr "确认" #: ../src/msw/ole/automtn.cpp:681 #, c-format msgid "OLE Automation error in %s: %s" msgstr "OLE自动化错误%s: %s" #: ../include/wx/richtext/richtextimagedlg.h:39 msgid "Object Properties" msgstr "对象属性" #: ../src/msw/ole/automtn.cpp:649 msgid "Object implementation does not support named arguments." msgstr "对象实现不支持命名参数" #: ../src/common/xtixml.cpp:264 msgid "Objects must have an id attribute" msgstr "对象必须有一个id属性" #: ../src/common/docview.cpp:1755 ../src/common/docview.cpp:1797 msgid "Open File" msgstr "打开文件" #: ../src/html/helpwnd.cpp:684 ../src/html/helpwnd.cpp:1557 msgid "Open HTML document" msgstr "打开HTML文档" #: ../src/generic/dbgrptg.cpp:163 #, c-format msgid "Open file \"%s\"" msgstr "打开文件 \"%s\"" #: ../src/common/stockitem.cpp:179 msgid "Open..." msgstr "打开..." #: ../src/osx/carbon/glcanvas.cpp:48 #, c-format msgid "OpenGL function \"%s\" failed: %s (error %d)" msgstr "OpenGL函数 \"%s\"失败: %s (error %d)" #: ../src/generic/dirctrlg.cpp:699 ../src/generic/dirdlgg.cpp:352 #: ../src/generic/filectrlg.cpp:677 ../src/generic/filectrlg.cpp:821 msgid "Operation not permitted." msgstr "不允许的操作。" #: ../src/common/cmdline.cpp:735 #, fuzzy, c-format msgid "Option '%s' can't be negated" msgstr "目录'%s'不能被创建" #: ../src/common/cmdline.cpp:899 #, c-format msgid "Option '%s' requires a value." msgstr "选项 '%s' 需要值。" #: ../src/common/cmdline.cpp:982 #, c-format msgid "Option '%s': '%s' cannot be converted to a date." msgstr "选项 '%s': '%s' 无法转成日期。" #: ../src/generic/dirdlgg.cpp:187 ../src/generic/prntdlgg.cpp:618 msgid "Options" msgstr "选项" #: ../src/generic/prntdlgg.cpp:615 ../src/generic/prntdlgg.cpp:869 msgid "Orientation" msgstr "方向" #: ../src/common/windowid.cpp:259 msgid "Out of window IDs. Recommend shutting down application." msgstr "window ID已用完。建议关闭应用。" #: ../src/richtext/richtextborderspage.cpp:400 #: ../src/richtext/richtextborderspage.cpp:533 msgid "Outline" msgstr "" #: ../src/richtext/richtextborderspage.cpp:550 msgid "Outset" msgstr "" #: ../src/msw/ole/automtn.cpp:645 msgid "Overflow while coercing argument values." msgstr "强制修改参数值溢出" #: ../src/common/accelcmn.cpp:84 msgid "PAGEDOWN" msgstr "PAGEDOWN" #: ../src/common/accelcmn.cpp:83 msgid "PAGEUP" msgstr "PAGEUP" #: ../src/common/accelcmn.cpp:69 msgid "PAUSE" msgstr "PAUSE" #: ../src/common/imagpcx.cpp:457 ../src/common/imagpcx.cpp:480 msgid "PCX: couldn't allocate memory" msgstr "PCX: 无法分配内存" #: ../src/common/imagpcx.cpp:456 msgid "PCX: image format unsupported" msgstr "PCX: 图像格式不支持" #: ../src/common/imagpcx.cpp:479 msgid "PCX: invalid image" msgstr "PCX: 无效图像" #: ../src/common/imagpcx.cpp:442 msgid "PCX: this is not a PCX file." msgstr "PCX: 不是PCX文件。" #: ../src/common/imagpcx.cpp:459 ../src/common/imagpcx.cpp:481 msgid "PCX: unknown error !!!" msgstr "PCX: 未知错误!!!" #: ../src/common/imagpcx.cpp:458 msgid "PCX: version number too low" msgstr "PCX: 版本号太小" #: ../src/common/accelcmn.cpp:55 msgid "PGDN" msgstr "PGDN" #: ../src/common/accelcmn.cpp:54 msgid "PGUP" msgstr "PGUP" #: ../src/common/imagpnm.cpp:91 msgid "PNM: Couldn't allocate memory." msgstr "PNM: 无法分配内存。" #: ../src/common/imagpnm.cpp:73 msgid "PNM: File format is not recognized." msgstr "PNM: 无法识别的文件格式。" #: ../src/common/imagpnm.cpp:112 ../src/common/imagpnm.cpp:134 #: ../src/common/imagpnm.cpp:156 msgid "PNM: File seems truncated." msgstr "PNM: 文件似乎已被截断。" #: ../src/common/paper.cpp:188 msgid "PRC 16K 146 x 215 mm" msgstr "中国 16开 纸, 146 x 215 毫米" #: ../src/common/paper.cpp:201 msgid "PRC 16K Rotated" msgstr "中国 16开 纸张(横向)" #: ../src/common/paper.cpp:189 msgid "PRC 32K 97 x 151 mm" msgstr "中国 32开 纸, 97 x 151 毫米" #: ../src/common/paper.cpp:202 msgid "PRC 32K Rotated" msgstr "中国 32开 纸张(横向)" #: ../src/common/paper.cpp:190 msgid "PRC 32K(Big) 97 x 151 mm" msgstr "中国 32开(大) 纸, 97 x 151 毫米" #: ../src/common/paper.cpp:203 msgid "PRC 32K(Big) Rotated" msgstr "中国 32开(大) 纸张(横向)" #: ../src/common/paper.cpp:191 msgid "PRC Envelope #1 102 x 165 mm" msgstr "中国标准信封1#, 102 x 165 毫米" #: ../src/common/paper.cpp:204 msgid "PRC Envelope #1 Rotated 165 x 102 mm" msgstr "中国标准信封1#(横向), 165 x 102 毫米" #: ../src/common/paper.cpp:200 msgid "PRC Envelope #10 324 x 458 mm" msgstr "中国标准信封10#, 324 x 458 毫米" #: ../src/common/paper.cpp:213 msgid "PRC Envelope #10 Rotated 458 x 324 mm" msgstr "中国标准信封10#(横向), 458 x 324 毫米" #: ../src/common/paper.cpp:192 msgid "PRC Envelope #2 102 x 176 mm" msgstr "中国标准信封2#, 102 x 176 毫米" #: ../src/common/paper.cpp:205 msgid "PRC Envelope #2 Rotated 176 x 102 mm" msgstr "中国标准信封2#(横向), 176 x 102 毫米" #: ../src/common/paper.cpp:193 msgid "PRC Envelope #3 125 x 176 mm" msgstr "中国标准信封3#, 125 x 176 毫米" #: ../src/common/paper.cpp:206 msgid "PRC Envelope #3 Rotated 176 x 125 mm" msgstr "中国标准信封3#(横向), 176 x 125 毫米" #: ../src/common/paper.cpp:194 msgid "PRC Envelope #4 110 x 208 mm" msgstr "中国标准信封4#, 110 x 208 毫米" #: ../src/common/paper.cpp:207 msgid "PRC Envelope #4 Rotated 208 x 110 mm" msgstr "中国标准信封4#(横向), 208 x 110 毫米" #: ../src/common/paper.cpp:195 msgid "PRC Envelope #5 110 x 220 mm" msgstr "中国标准信封5#, 110 x 220 毫米" #: ../src/common/paper.cpp:208 msgid "PRC Envelope #5 Rotated 220 x 110 mm" msgstr "中国标准信封5#(横向), 220 x 110 毫米" #: ../src/common/paper.cpp:196 msgid "PRC Envelope #6 120 x 230 mm" msgstr "中国标准信封6#, 120 x 230 毫米" #: ../src/common/paper.cpp:209 msgid "PRC Envelope #6 Rotated 230 x 120 mm" msgstr "中国标准信封6#(横向), 230 x 120 毫米" #: ../src/common/paper.cpp:197 msgid "PRC Envelope #7 160 x 230 mm" msgstr "中国标准信封7#, 160 x 230 毫米" #: ../src/common/paper.cpp:210 msgid "PRC Envelope #7 Rotated 230 x 160 mm" msgstr "中国标准信封7#(横向), 230 x 160 毫米" #: ../src/common/paper.cpp:198 msgid "PRC Envelope #8 120 x 309 mm" msgstr "中国标准信封8#, 120 x 309 毫米" #: ../src/common/paper.cpp:211 msgid "PRC Envelope #8 Rotated 309 x 120 mm" msgstr "中国标准信封8#(横向), 309 x 120 毫米" #: ../src/common/paper.cpp:199 msgid "PRC Envelope #9 229 x 324 mm" msgstr "中国标准信封9#, 229 x 324 毫米" #: ../src/common/paper.cpp:212 msgid "PRC Envelope #9 Rotated 324 x 229 mm" msgstr "中国标准信封9#(横向), 324 x 229 毫米" #: ../src/common/accelcmn.cpp:72 msgid "PRINT" msgstr "PRINT" #: ../src/richtext/richtextmarginspage.cpp:286 #, fuzzy msgid "Padding" msgstr "正在读入" #: ../src/common/prntbase.cpp:2044 #, c-format msgid "Page %d" msgstr "页 %d" #: ../src/common/prntbase.cpp:2042 #, c-format msgid "Page %d of %d" msgstr "页 %d / %d" #: ../src/gtk/print.cpp:774 msgid "Page Setup" msgstr "页面设置" #: ../src/generic/prntdlgg.cpp:828 ../src/common/prntbase.cpp:467 msgid "Page setup" msgstr "页面设置" #: ../src/generic/prntdlgg.cpp:216 msgid "Pages" msgstr "页" #: ../src/generic/prntdlgg.cpp:602 ../src/generic/prntdlgg.cpp:801 #: ../src/generic/prntdlgg.cpp:842 ../src/generic/prntdlgg.cpp:855 #: ../src/generic/prntdlgg.cpp:1052 ../src/generic/prntdlgg.cpp:1057 msgid "Paper size" msgstr "纸张大小" #: ../src/richtext/richtextstyles.cpp:1058 msgid "Paragraph styles" msgstr "段落样式" #: ../src/common/xtistrm.cpp:469 msgid "Passing a already registered object to SetObject" msgstr "传递一个已注册的对象给SetObject" #: ../src/common/xtistrm.cpp:480 #, fuzzy msgid "Passing an unknown object to GetObject" msgstr "传递一个未知对象给GetObject" #: ../src/richtext/richtextctrl.cpp:3117 ../src/common/stockitem.cpp:180 #: ../src/stc/stc_i18n.cpp:19 msgid "Paste" msgstr "粘贴" #: ../src/common/stockitem.cpp:262 msgid "Paste selection" msgstr "粘贴选区" #: ../src/richtext/richtextliststylepage.cpp:222 #: ../src/richtext/richtextbulletspage.cpp:172 msgid "Peri&od" msgstr "" #: ../src/generic/filectrlg.cpp:465 msgid "Permissions" msgstr "允许" #: ../src/richtext/richtextbuffer.cpp:11942 msgid "Picture Properties" msgstr "图片属性" #: ../include/wx/unix/pipe.h:47 msgid "Pipe creation failed" msgstr "管道创建失败" #: ../src/gtk1/fontdlg.cpp:74 msgid "Please choose a valid font." msgstr "请选择一个有效的字体." #: ../src/gtk/filedlg.cpp:72 msgid "Please choose an existing file." msgstr "请选择一个已存在的文件." #: ../src/html/helpwnd.cpp:813 msgid "Please choose the page to display:" msgstr "请选择欲显示的页面:" #: ../src/msw/dialup.cpp:785 msgid "Please choose which ISP do you want to connect to" msgstr "请选择你想连接的ISP" #: ../src/msw/listctrl.cpp:372 #, c-format msgid "" "Please install a newer version of comctl32.dll\n" "(at least version 4.70 is required but you have %d.%02d)\n" "or this program won't operate correctly." msgstr "" "请安装较新版本的 comctl32.dll\n" "(至少需要4.70版,您现有的版本是 %d.%02d),\n" "否则此程序无法正确运行。" #: ../src/common/headerctrlcmn.cpp:59 msgid "Please select the columns to show and define their order:" msgstr "请选择列并显示和定义它们的顺序" #: ../src/common/prntbase.cpp:521 msgid "Please wait while printing..." msgstr "打印,请等待..." #: ../src/propgrid/advprops.cpp:631 msgid "Point Size" msgstr "字体大小(磅值)" #: ../src/osx/carbon/dataview.cpp:1278 ../src/osx/carbon/dataview.cpp:1329 #: ../src/osx/carbon/dataview.cpp:1420 ../src/osx/carbon/dataview.cpp:1443 #: ../src/osx/carbon/dataview.cpp:1460 ../src/osx/carbon/dataview.cpp:1477 #: ../src/osx/carbon/dataview.cpp:1670 ../src/osx/carbon/dataview.cpp:1779 #: ../src/osx/carbon/dataview.cpp:1821 ../src/osx/carbon/dataview.cpp:1874 #: ../src/osx/carbon/dataview.cpp:1997 msgid "Pointer to data view control not set correctly." msgstr "数据视图控制指针设定错误" #: ../src/osx/carbon/dataview.cpp:1279 ../src/osx/carbon/dataview.cpp:1338 #: ../src/osx/carbon/dataview.cpp:1421 ../src/osx/carbon/dataview.cpp:1478 #: ../src/osx/carbon/dataview.cpp:1671 ../src/osx/carbon/dataview.cpp:1780 #: ../src/osx/carbon/dataview.cpp:1822 ../src/osx/carbon/dataview.cpp:1875 #: ../src/osx/carbon/dataview.cpp:1998 msgid "Pointer to model not set correctly." msgstr "模型指针设定错误" #: ../src/generic/prntdlgg.cpp:612 ../src/generic/prntdlgg.cpp:867 msgid "Portrait" msgstr "纵向" #: ../src/richtext/richtextsizepage.cpp:496 msgid "Position" msgstr "位置" #: ../src/generic/prntdlgg.cpp:298 msgid "PostScript file" msgstr "PostScript文件" #: ../src/common/stockitem.cpp:181 msgid "Preferences" msgstr "偏好设置" #: ../src/osx/menu_osx.cpp:643 msgid "Preferences..." msgstr "偏好设置..." #: ../src/common/prntbase.cpp:529 msgid "Preparing" msgstr "准备中" #: ../src/generic/fontdlgg.cpp:455 ../src/osx/carbon/fontdlg.cpp:576 #: ../src/html/helpwnd.cpp:1235 msgid "Preview:" msgstr "预览:" #: ../src/common/prntbase.cpp:1523 ../src/html/helpwnd.cpp:677 msgid "Previous page" msgstr "前页" #: ../src/generic/prntdlgg.cpp:143 ../src/generic/prntdlgg.cpp:157 #: ../src/common/prntbase.cpp:409 ../src/common/prntbase.cpp:1511 #: ../src/gtk/print.cpp:584 ../src/gtk/print.cpp:597 msgid "Print" msgstr "打印" #: ../include/wx/prntbase.h:395 ../src/common/docview.cpp:1250 msgid "Print Preview" msgstr "打印预览" #: ../src/common/prntbase.cpp:1985 ../src/common/prntbase.cpp:2027 #: ../src/common/prntbase.cpp:2035 msgid "Print Preview Failure" msgstr "打印预览失败" #: ../src/generic/prntdlgg.cpp:224 msgid "Print Range" msgstr "打印范围" #: ../src/generic/prntdlgg.cpp:449 msgid "Print Setup" msgstr "打印设置" #: ../src/generic/prntdlgg.cpp:621 msgid "Print in colour" msgstr "彩色打印" #: ../src/common/stockitem.cpp:182 msgid "Print previe&w..." msgstr "打印预览(&W)..." #: ../src/common/docview.cpp:1244 msgid "Print preview creation failed." msgstr "打印预览创建失败" #: ../src/common/stockitem.cpp:182 msgid "Print preview..." msgstr "打印预览..." #: ../src/generic/prntdlgg.cpp:630 msgid "Print spooling" msgstr "打印假脱机" #: ../src/html/helpwnd.cpp:688 msgid "Print this page" msgstr "打印本页" #: ../src/generic/prntdlgg.cpp:185 msgid "Print to File" msgstr "打印到文件" #: ../src/common/stockitem.cpp:183 msgid "Print..." msgstr "打印..." #: ../src/generic/prntdlgg.cpp:493 msgid "Printer" msgstr "打印机" #: ../src/generic/prntdlgg.cpp:633 msgid "Printer command:" msgstr "打印机命令:" #: ../src/generic/prntdlgg.cpp:180 msgid "Printer options" msgstr "打印机选项" #: ../src/generic/prntdlgg.cpp:645 msgid "Printer options:" msgstr "打印机选项:" #: ../src/generic/prntdlgg.cpp:916 msgid "Printer..." msgstr "打印机..." #: ../src/generic/prntdlgg.cpp:196 msgid "Printer:" msgstr "打印机:" #: ../include/wx/richtext/richtextprint.h:163 ../src/common/prntbase.cpp:518 #: ../src/html/htmprint.cpp:277 msgid "Printing" msgstr "正在打印 " #: ../src/common/prntbase.cpp:586 msgid "Printing " msgstr "正在打印 " #: ../src/common/prntbase.cpp:330 msgid "Printing Error" msgstr "打印出错" #: ../src/common/prntbase.cpp:544 #, c-format msgid "Printing page %d of %d" msgstr "正在打印页 %d 共 %d..." #: ../src/generic/printps.cpp:201 #, c-format msgid "Printing page %d..." msgstr "正在打印页 %d..." #: ../src/generic/printps.cpp:161 msgid "Printing..." msgstr "打印..." #: ../include/wx/richtext/richtextprint.h:109 ../include/wx/prntbase.h:263 #: ../src/common/docview.cpp:2124 msgid "Printout" msgstr "打印" #: ../src/common/debugrpt.cpp:565 #, c-format msgid "" "Processing debug report has failed, leaving the files in \"%s\" directory." msgstr "处理调试报告失败, 文件被保存在目录 \"%s\" 中." #: ../src/osx/carbon/dataview.cpp:2472 msgid "Progress renderer cannot render value type; value type: " msgstr "程序渲染器无法渲染该值;类型为:" #: ../src/common/prntbase.cpp:528 msgid "Progress:" msgstr "进度:" #: ../src/common/stockitem.cpp:184 msgid "Properties" msgstr "属性" #: ../src/propgrid/manager.cpp:237 msgid "Property" msgstr "属性" #: ../src/propgrid/propgrid.cpp:3144 ../src/propgrid/propgrid.cpp:3276 msgid "Property Error" msgstr "属性错误" #: ../src/common/paper.cpp:113 msgid "Quarto, 215 x 275 mm" msgstr "四开, 215 x 275 毫米" #: ../src/generic/logg.cpp:1036 msgid "Question" msgstr "问题" #: ../src/common/stockitem.cpp:156 msgid "Quit" msgstr "退出" #: ../src/osx/menu_osx.cpp:610 ../src/osx/menu_osx.cpp:657 #, c-format msgid "Quit %s" msgstr "退出 %s" #: ../src/common/stockitem.cpp:263 msgid "Quit this program" msgstr "推出此程序" #: ../src/common/accelcmn.cpp:53 msgid "RETURN" msgstr "RETURN" #: ../src/common/accelcmn.cpp:57 msgid "RIGHT" msgstr "RIGHT" #: ../src/common/accelcmn.cpp:327 msgid "RawCtrl+" msgstr "RawCtrl+" #: ../src/common/ffile.cpp:113 ../src/common/ffile.cpp:134 #, c-format msgid "Read error on file '%s'" msgstr "读文件 '%s'出错" #: ../src/common/prntbase.cpp:257 msgid "Ready" msgstr "就绪" #: ../src/common/stockitem.cpp:185 ../src/stc/stc_i18n.cpp:16 msgid "Redo" msgstr "恢复" #: ../src/common/stockitem.cpp:264 msgid "Redo last action" msgstr "恢复上一次操作" #: ../src/common/stockitem.cpp:186 msgid "Refresh" msgstr "刷新" #: ../src/msw/registry.cpp:625 #, c-format msgid "Registry key '%s' already exists." msgstr "注册键 '%s' 已存在." #: ../src/msw/registry.cpp:594 #, c-format msgid "Registry key '%s' does not exist, cannot rename it." msgstr "注册键 '%s' 不存在,无法改名。" #: ../src/msw/registry.cpp:726 #, c-format msgid "" "Registry key '%s' is needed for normal system operation,\n" "deleting it will leave your system in unusable state:\n" "operation aborted." msgstr "" "正常的系统操作需要注册键 '%s',\n" "删除它将使系统进入不可用状态:\n" "操作终止." #: ../src/msw/registry.cpp:520 #, c-format msgid "Registry value '%s' already exists." msgstr "注册值 '%s' 已存在." #: ../src/richtext/richtextfontpage.cpp:332 #: ../src/richtext/richtextfontpage.cpp:336 msgid "Regular" msgstr "一般" #: ../src/richtext/richtextsizepage.cpp:519 #, fuzzy msgid "Relative" msgstr "修饰" #: ../src/generic/helpext.cpp:462 msgid "Relevant entries:" msgstr "相关条目:" #: ../include/wx/generic/progdlgg.h:86 msgid "Remaining time:" msgstr "剩余时间:" #: ../src/common/stockitem.cpp:187 msgid "Remove" msgstr "移除" #: ../src/richtext/richtextctrl.cpp:1430 #, fuzzy msgid "Remove Bullet" msgstr "移除" #: ../src/html/helpwnd.cpp:440 msgid "Remove current page from bookmarks" msgstr "从书签中移去当前页" #: ../src/common/rendcmn.cpp:194 #, c-format msgid "Renderer \"%s\" has incompatible version %d.%d and couldn't be loaded." msgstr "渲染器(renderer) \"%s\"的版本 %d.%d不兼容, 无法加载." #: ../src/osx/carbon/dataview.cpp:1430 #, fuzzy msgid "Rendering failed." msgstr "计时器创建失败" #: ../src/richtext/richtextbuffer.cpp:4214 msgid "Renumber List" msgstr "重编号列表" #: ../src/common/stockitem.cpp:188 msgid "Rep&lace" msgstr "替换(&l)" #: ../src/richtext/richtextctrl.cpp:3277 ../src/common/stockitem.cpp:188 msgid "Replace" msgstr "替换" #: ../src/generic/fdrepdlg.cpp:182 msgid "Replace &all" msgstr "全部替换(&a)" #: ../src/common/stockitem.cpp:261 #, fuzzy msgid "Replace selection" msgstr "全部替换(&a)" #: ../src/generic/fdrepdlg.cpp:124 msgid "Replace with:" msgstr "替换为:" #: ../src/common/valtext.cpp:161 msgid "Required information entry is empty." msgstr "所需的项目信息为空" #: ../src/common/translation.cpp:1966 #, fuzzy, c-format msgid "Resource '%s' is not a valid message catalog." msgstr "'%s' 不是有效的消息目录." #: ../src/common/stockitem.cpp:189 msgid "Revert to Saved" msgstr "还原为上次保存的文件" #: ../src/richtext/richtextborderspage.cpp:548 #, fuzzy msgid "Ridge" msgstr "细" #: ../src/richtext/richtextliststylepage.cpp:251 #: ../src/richtext/richtextbulletspage.cpp:201 #: ../src/richtext/richtextsizepage.cpp:250 msgid "Right" msgstr "右" #: ../src/generic/prntdlgg.cpp:892 msgid "Right margin (mm):" msgstr "右边距 (毫米):" #: ../src/richtext/richtextindentspage.cpp:148 #: ../src/richtext/richtextindentspage.cpp:150 #: ../src/richtext/richtextliststylepage.cpp:337 #: ../src/richtext/richtextliststylepage.cpp:339 msgid "Right-align text." msgstr "文本右对齐" #: ../src/generic/fontdlgg.cpp:322 msgid "Roman" msgstr "罗马" #: ../src/richtext/richtextliststylepage.cpp:299 #: ../src/richtext/richtextbulletspage.cpp:252 msgid "S&tandard bullet name:" msgstr "标准项目符号名称(&T)" #: ../src/common/accelcmn.cpp:82 msgid "SCROLL_LOCK" msgstr "SCROLL_LOCK" #: ../src/common/accelcmn.cpp:71 msgid "SELECT" msgstr "SELECT" #: ../src/common/accelcmn.cpp:77 msgid "SEPARATOR" msgstr "SEPARATOR" #: ../src/common/accelcmn.cpp:74 msgid "SNAPSHOT" msgstr "SNAPSHOT" #: ../src/common/accelcmn.cpp:62 msgid "SPACE" msgstr "SPACE" #: ../src/common/accelcmn.cpp:257 ../src/common/accelcmn.cpp:339 msgid "SPECIAL" msgstr "SPECIAL" #: ../src/common/accelcmn.cpp:78 msgid "SUBTRACT" msgstr "SUBTRACT" #: ../src/common/stockitem.cpp:190 ../src/common/sizer.cpp:2678 msgid "Save" msgstr "保存" #: ../src/common/fldlgcmn.cpp:327 #, c-format msgid "Save %s file" msgstr "保存文件 %s " #: ../src/generic/logg.cpp:518 msgid "Save &As..." msgstr "另存为(&A)..." #: ../src/common/docview.cpp:360 msgid "Save As" msgstr "另存为" #: ../src/common/stockitem.cpp:191 msgid "Save as" msgstr "另存为" #: ../src/common/stockitem.cpp:267 msgid "Save current document" msgstr "保存当前文档" #: ../src/common/stockitem.cpp:268 msgid "Save current document with a different filename" msgstr "保存当前文档至重命名" #: ../src/generic/logg.cpp:518 msgid "Save log contents to file" msgstr "把日志内容保存到文件" #: ../src/generic/fontdlgg.cpp:325 msgid "Script" msgstr "Script" #: ../src/generic/srchctlg.cpp:67 ../src/html/helpwnd.cpp:548 #: ../src/html/helpwnd.cpp:563 msgid "Search" msgstr "搜索" #: ../src/html/helpwnd.cpp:550 msgid "" "Search contents of help book(s) for all occurrences of the text you typed " "above" msgstr "从帮助内容中搜索符合你在上面输入的正文的所有条目" #: ../src/generic/fdrepdlg.cpp:160 msgid "Search direction" msgstr "搜索方向" #: ../src/generic/fdrepdlg.cpp:112 msgid "Search for:" msgstr "搜索:" #: ../src/html/helpwnd.cpp:1065 msgid "Search in all books" msgstr "搜索所有的书籍" #: ../src/html/helpwnd.cpp:870 msgid "Searching..." msgstr "搜索中..." #: ../src/generic/dirctrlg.cpp:546 msgid "Sections" msgstr "段" #: ../src/common/ffile.cpp:220 #, c-format msgid "Seek error on file '%s'" msgstr "文件 '%s' 定位错误" #: ../src/common/ffile.cpp:210 #, c-format msgid "Seek error on file '%s' (large files not supported by stdio)" msgstr "文件 '%s' 定位错误 (stdio 不支持大文件)" #: ../src/richtext/richtextctrl.cpp:330 ../src/osx/textctrl_osx.cpp:587 #: ../src/common/stockitem.cpp:192 ../src/msw/textctrl.cpp:2288 msgid "Select &All" msgstr "全部选择(&A)" #: ../src/common/stockitem.cpp:192 ../src/stc/stc_i18n.cpp:21 msgid "Select All" msgstr "全部选择" #: ../src/common/docview.cpp:1877 msgid "Select a document template" msgstr "选择文档模板" #: ../src/common/docview.cpp:1951 msgid "Select a document view" msgstr "选择文档视图" #: ../src/richtext/richtextfontpage.cpp:235 #: ../src/richtext/richtextfontpage.cpp:237 msgid "Select regular or bold." msgstr "选择是否粗体" #: ../src/richtext/richtextfontpage.cpp:222 #: ../src/richtext/richtextfontpage.cpp:224 msgid "Select regular or italic style." msgstr "选择是否斜体" #: ../src/richtext/richtextfontpage.cpp:248 #: ../src/richtext/richtextfontpage.cpp:250 msgid "Select underlining or no underlining." msgstr "选择是否下划线" #: ../src/motif/filedlg.cpp:220 msgid "Selection" msgstr "选区" #: ../src/richtext/richtextliststylepage.cpp:187 #: ../src/richtext/richtextliststylepage.cpp:189 msgid "Selects the list level to edit." msgstr "选择并辨析列表层级" #: ../src/common/cmdline.cpp:918 #, c-format msgid "Separator expected after the option '%s'." msgstr "期望在选项 '%s' 后存在分隔符。" #: ../src/richtext/richtextbuffer.cpp:10513 msgid "Set Cell Style" msgstr "设置单元格样式" #: ../include/wx/xtiprop.h:179 msgid "SetProperty called w/o valid setter" msgstr "调用 SetProperty 时未带有效的 setter" #: ../src/common/filename.cpp:2632 msgid "Setting directory access times is not supported under this OS version" msgstr "当前操作系统不支持目录访问次数设定" #: ../src/generic/prntdlgg.cpp:188 msgid "Setup..." msgstr "设置..." #: ../src/msw/dialup.cpp:563 msgid "Several active dialup connections found, choosing one randomly." msgstr "找到多个活动拨号连接, 随机选择一个." #: ../src/common/accelcmn.cpp:324 msgid "Shift+" msgstr "Shift+" #: ../src/generic/dirdlgg.cpp:170 msgid "Show &hidden directories" msgstr "显示隐藏目录(&H)" #: ../src/generic/filectrlg.cpp:1003 msgid "Show &hidden files" msgstr "显示隐藏文件(&H)" #: ../src/osx/menu_osx.cpp:605 ../src/osx/menu_osx.cpp:652 msgid "Show All" msgstr "显示全部" #: ../src/common/stockitem.cpp:257 msgid "Show about dialog" msgstr "显示关于对话框" #: ../src/html/helpwnd.cpp:502 msgid "Show all" msgstr "显示全部" #: ../src/html/helpwnd.cpp:513 msgid "Show all items in index" msgstr "以索引方式显示所有项目" #: ../src/generic/dirdlgg.cpp:105 msgid "Show hidden directories" msgstr "显示隐藏目录" #: ../src/html/helpwnd.cpp:671 msgid "Show/hide navigation panel" msgstr "显示/隐藏 导航面板" #: ../src/richtext/richtextsymboldlg.cpp:421 #: ../src/richtext/richtextsymboldlg.cpp:423 msgid "Shows a Unicode subset." msgstr "显示Unicode子集" #: ../src/richtext/richtextliststylepage.cpp:472 #: ../src/richtext/richtextliststylepage.cpp:474 #: ../src/richtext/richtextbulletspage.cpp:276 #: ../src/richtext/richtextbulletspage.cpp:278 msgid "Shows a preview of the bullet settings." msgstr "预览项目符号设定" #: ../src/richtext/richtextfontpage.cpp:322 #: ../src/richtext/richtextfontpage.cpp:324 msgid "Shows a preview of the font settings." msgstr "预览字体设定" #: ../src/osx/carbon/fontdlg.cpp:580 ../src/osx/carbon/fontdlg.cpp:582 msgid "Shows a preview of the font." msgstr "预览字体" #: ../src/richtext/richtextindentspage.cpp:303 #: ../src/richtext/richtextindentspage.cpp:305 msgid "Shows a preview of the paragraph settings." msgstr "预览段落设定" #: ../src/generic/fontdlgg.cpp:460 ../src/generic/fontdlgg.cpp:462 msgid "Shows the font preview." msgstr "显示字体预览。" #: ../src/univ/themes/mono.cpp:516 msgid "Simple monochrome theme" msgstr "简单黑白主题" #: ../src/richtext/richtextindentspage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:449 msgid "Single" msgstr "" #: ../src/generic/filectrlg.cpp:460 ../src/richtext/richtextformatdlg.cpp:356 #: ../src/richtext/richtextsizepage.cpp:299 msgid "Size" msgstr "大小" #: ../src/osx/carbon/fontdlg.cpp:525 msgid "Size:" msgstr "大小:" #: ../src/generic/progdlgg.cpp:262 ../src/generic/progdlgg.cpp:773 #: ../src/msw/progdlg.cpp:801 msgid "Skip" msgstr "跳过" #: ../src/generic/fontdlgg.cpp:330 msgid "Slant" msgstr "倾斜" #: ../src/richtext/richtextfontpage.cpp:298 #, fuzzy msgid "Small C&apitals" msgstr "大写(&P)" #: ../src/richtext/richtextborderspage.cpp:543 msgid "Solid" msgstr "实线" #: ../src/common/docview.cpp:1773 msgid "Sorry, could not open this file." msgstr "对不起,无法打开文件。" #: ../src/common/prntbase.cpp:2027 ../src/common/prntbase.cpp:2035 msgid "Sorry, not enough memory to create a preview." msgstr "对不起,没有足够内存创建预览。" #: ../src/richtext/richtextstyledlg.cpp:608 #: ../src/richtext/richtextstyledlg.cpp:656 #: ../src/richtext/richtextstyledlg.cpp:822 #: ../src/richtext/richtextstyledlg.cpp:898 #: ../src/richtext/richtextstyledlg.cpp:936 msgid "Sorry, that name is taken. Please choose another." msgstr "抱歉,名字已被使用。请选择其他名字。" #: ../src/common/docview.cpp:1796 msgid "Sorry, the format for this file is unknown." msgstr "对不起,此文件的格式未知。" #: ../src/unix/sound.cpp:492 msgid "Sound data are in unsupported format." msgstr "声音数据为不支持的格式。" #: ../src/unix/sound.cpp:477 #, c-format msgid "Sound file '%s' is in unsupported format." msgstr "声音文件 '%s' 为不支持的格式。" #: ../src/richtext/richtextliststylepage.cpp:467 msgid "Spacing" msgstr "空格" #: ../src/common/stockitem.cpp:197 msgid "Spell Check" msgstr "拼写检查" #: ../src/richtext/richtextliststylepage.cpp:490 #: ../src/richtext/richtextbulletspage.cpp:295 msgid "Standard" msgstr "标准" #: ../src/common/paper.cpp:105 msgid "Statement, 5 1/2 x 8 1/2 in" msgstr "报表用纸,5 1/2 x 8 1/2 英寸" #: ../src/richtext/richtextsizepage.cpp:518 #: ../src/richtext/richtextsizepage.cpp:523 msgid "Static" msgstr "状态:" #: ../src/generic/prntdlgg.cpp:204 msgid "Status:" msgstr "状态:" #: ../src/common/stockitem.cpp:198 msgid "Stop" msgstr "停止" #: ../src/common/stockitem.cpp:199 msgid "Strikethrough" msgstr "删除线" #: ../src/common/colourcmn.cpp:45 #, c-format msgid "String To Colour : Incorrect colour specification : %s" msgstr "字符串 - 颜色: 错误的颜色: %s" #: ../src/richtext/richtextformatdlg.cpp:318 ../src/propgrid/advprops.cpp:647 msgid "Style" msgstr "样式" #: ../include/wx/richtext/richtextstyledlg.h:47 msgid "Style Organiser" msgstr "样式组织器" #: ../src/osx/carbon/fontdlg.cpp:534 msgid "Style:" msgstr "样式:" #: ../src/richtext/richtextfontpage.cpp:312 msgid "Subscrip&t" msgstr "下标(&T)" #: ../src/richtext/richtextfontpage.cpp:305 msgid "Supe&rscript" msgstr "上标(&R)" #: ../src/common/paper.cpp:151 msgid "SuperA/SuperA/A4 227 x 356 mm" msgstr "SuperA/SuperA/A4 纸张,227 x 356 毫米" #: ../src/common/paper.cpp:152 msgid "SuperB/SuperB/A3 305 x 487 mm" msgstr "SuperB/SuperB/A3 纸张,305 x 487 毫米" #: ../src/generic/fontdlgg.cpp:326 msgid "Swiss" msgstr "瑞士" #: ../src/richtext/richtextliststylepage.cpp:488 #: ../src/richtext/richtextbulletspage.cpp:293 msgid "Symbol" msgstr "符号" #: ../src/richtext/richtextliststylepage.cpp:288 #: ../src/richtext/richtextbulletspage.cpp:240 msgid "Symbol &font:" msgstr "符号样式(&F)" #: ../include/wx/richtext/richtextsymboldlg.h:47 msgid "Symbols" msgstr "符号" #: ../src/common/accelcmn.cpp:63 msgid "TAB" msgstr "TAB" #: ../src/common/imagtiff.cpp:372 ../src/common/imagtiff.cpp:385 #: ../src/common/imagtiff.cpp:744 msgid "TIFF: Couldn't allocate memory." msgstr "TIFF: 无法分配内存。" #: ../src/common/imagtiff.cpp:304 msgid "TIFF: Error loading image." msgstr "TIFF: 装载图像错误。" #: ../src/common/imagtiff.cpp:471 msgid "TIFF: Error reading image." msgstr "TIFF: 读图像错误。" #: ../src/common/imagtiff.cpp:611 msgid "TIFF: Error saving image." msgstr "TIFF: 保存图像错误。" #: ../src/common/imagtiff.cpp:849 msgid "TIFF: Error writing image." msgstr "TIFF: 写图像错误。" #: ../src/common/imagtiff.cpp:358 msgid "TIFF: Image size is abnormally big." msgstr "TIFF: 图像大小过大。" #: ../src/richtext/richtextbuffer.cpp:10794 msgid "Table Properties" msgstr "表格属性" #: ../src/common/paper.cpp:146 msgid "Tabloid Extra 11.69 x 18 in" msgstr "小报(特大),11.69 x 18 英寸" #: ../src/common/paper.cpp:103 msgid "Tabloid, 11 x 17 in" msgstr "小报,11 x 17 英寸" #: ../src/richtext/richtextformatdlg.cpp:336 msgid "Tabs" msgstr "标签" #: ../src/generic/fontdlgg.cpp:327 msgid "Teletype" msgstr "电传打字机" #: ../src/common/docview.cpp:1878 msgid "Templates" msgstr "模板" #: ../src/osx/carbon/dataview.cpp:2373 msgid "Text renderer cannot render value; value type: " msgstr "文本渲染器无法渲染该值;类型为:" #: ../src/common/fmapbase.cpp:158 msgid "Thai (ISO-8859-11)" msgstr "泰语 (ISO-8859-11)" #: ../src/common/ftp.cpp:620 msgid "The FTP server doesn't support passive mode." msgstr "FTP服务器不支持 passive 模式。" #: ../src/common/ftp.cpp:606 msgid "The FTP server doesn't support the PORT command." msgstr "FTP服务器不支持 PORT 命令。" #: ../src/richtext/richtextliststylepage.cpp:215 #: ../src/richtext/richtextliststylepage.cpp:217 #: ../src/richtext/richtextbulletspage.cpp:164 #: ../src/richtext/richtextbulletspage.cpp:166 msgid "The available bullet styles." msgstr "可用的项目符号样式" #: ../src/richtext/richtextstyledlg.cpp:202 #: ../src/richtext/richtextstyledlg.cpp:204 msgid "The available styles." msgstr "可用样式" #: ../src/richtext/richtextbackgroundpage.cpp:139 #: ../src/richtext/richtextbackgroundpage.cpp:141 msgid "The background colour." msgstr "背景色" #: ../src/richtext/richtextmarginspage.cpp:268 #: ../src/richtext/richtextmarginspage.cpp:270 msgid "The bottom margin size." msgstr "底边距" #: ../src/richtext/richtextmarginspage.cpp:382 #: ../src/richtext/richtextmarginspage.cpp:384 msgid "The bottom padding size." msgstr "底内衬大小" #: ../src/richtext/richtextsizepage.cpp:639 #: ../src/richtext/richtextsizepage.cpp:641 #: ../src/richtext/richtextsizepage.cpp:653 #: ../src/richtext/richtextsizepage.cpp:655 msgid "The bottom position." msgstr "底部位置" #: ../src/richtext/richtextliststylepage.cpp:254 #: ../src/richtext/richtextliststylepage.cpp:256 #: ../src/richtext/richtextliststylepage.cpp:275 #: ../src/richtext/richtextliststylepage.cpp:277 #: ../src/richtext/richtextbulletspage.cpp:204 #: ../src/richtext/richtextbulletspage.cpp:206 #: ../src/richtext/richtextbulletspage.cpp:227 #: ../src/richtext/richtextbulletspage.cpp:229 msgid "The bullet character." msgstr "项目符号字符" #: ../src/richtext/richtextsymboldlg.cpp:443 #: ../src/richtext/richtextsymboldlg.cpp:445 msgid "The character code." msgstr "字符编码" #: ../src/common/fontmap.cpp:203 #, c-format msgid "" "The charset '%s' is unknown. You may select\n" "another charset to replace it with or choose\n" "[Cancel] if it cannot be replaced" msgstr "" "未知字符集 '%s'。选择其它字符集\n" "代替它,如果无法替代请选择 [取消] " #: ../src/msw/ole/dataobj.cpp:367 #, c-format msgid "The clipboard format '%d' doesn't exist." msgstr "剪贴板格式 '%d' 不存在。" #: ../src/richtext/richtextstylepage.cpp:128 #: ../src/richtext/richtextstylepage.cpp:130 msgid "The default style for the next paragraph." msgstr "下一段落默认样式" #: ../src/generic/dirdlgg.cpp:231 #, c-format msgid "" "The directory '%s' does not exist\n" "Create it now?" msgstr "" "目录 '%s' 不存在\n" "是否现在创建?" #: ../src/html/htmprint.cpp:271 #, c-format msgid "" "The document \"%s\" doesn't fit on the page horizontally and will be " "truncated if printed.\n" "\n" "Would you like to proceed with printing it nevertheless?" msgstr "" "文件 \"%s\" 的水平尺寸不符合页面,若打印将会被截断。\n" "\n" "强制打印该文档?" #: ../src/common/docview.cpp:1184 #, c-format msgid "" "The file '%s' doesn't exist and couldn't be opened.\n" "It has been removed from the most recently used files list." msgstr "" "文件 '%s' 不存在所以无法打开。\n" "已从最近使用的文件列表中移去。" #: ../src/richtext/richtextindentspage.cpp:208 #: ../src/richtext/richtextindentspage.cpp:210 #: ../src/richtext/richtextliststylepage.cpp:394 #: ../src/richtext/richtextliststylepage.cpp:396 msgid "The first line indent." msgstr "首行缩进" #: ../src/gtk/utilsgtk.cpp:427 msgid "The following standard GTK+ options are also supported:\n" msgstr "以下标准GTK+选项也被支持:\n" #: ../src/generic/fontdlgg.cpp:414 ../src/generic/fontdlgg.cpp:416 msgid "The font colour." msgstr "字体颜色。" #: ../src/generic/fontdlgg.cpp:375 ../src/generic/fontdlgg.cpp:377 msgid "The font family." msgstr "字体。" #: ../src/richtext/richtextsymboldlg.cpp:405 #: ../src/richtext/richtextsymboldlg.cpp:407 msgid "The font from which to take the symbol." msgstr "符号使用该字体" #: ../src/generic/fontdlgg.cpp:427 ../src/generic/fontdlgg.cpp:429 #: ../src/generic/fontdlgg.cpp:434 ../src/generic/fontdlgg.cpp:436 msgid "The font point size." msgstr "字体大小 (磅值)。" #: ../src/osx/carbon/fontdlg.cpp:529 ../src/osx/carbon/fontdlg.cpp:531 msgid "The font size in points." msgstr "字体大小(磅值)" #: ../src/richtext/richtextfontpage.cpp:190 #: ../src/richtext/richtextfontpage.cpp:192 msgid "The font size units, points or pixels." msgstr "字体大小单位,磅值或像素值" #: ../src/generic/fontdlgg.cpp:386 ../src/generic/fontdlgg.cpp:388 msgid "The font style." msgstr "字体风格。" #: ../src/generic/fontdlgg.cpp:397 ../src/generic/fontdlgg.cpp:399 msgid "The font weight." msgstr "字体粗细。" #: ../src/common/docview.cpp:1465 #, c-format msgid "The format of file '%s' couldn't be determined." msgstr "无法确定文件 '%s' 格式。" #: ../src/richtext/richtextindentspage.cpp:199 #: ../src/richtext/richtextindentspage.cpp:201 #: ../src/richtext/richtextliststylepage.cpp:385 #: ../src/richtext/richtextliststylepage.cpp:387 msgid "The left indent." msgstr "左缩进" #: ../src/richtext/richtextmarginspage.cpp:195 #: ../src/richtext/richtextmarginspage.cpp:197 msgid "The left margin size." msgstr "左边距大小" #: ../src/richtext/richtextmarginspage.cpp:309 #: ../src/richtext/richtextmarginspage.cpp:311 msgid "The left padding size." msgstr "左内衬大小" #: ../src/richtext/richtextsizepage.cpp:534 #: ../src/richtext/richtextsizepage.cpp:536 #: ../src/richtext/richtextsizepage.cpp:548 #: ../src/richtext/richtextsizepage.cpp:550 msgid "The left position." msgstr "左位置" #: ../src/richtext/richtextindentspage.cpp:288 #: ../src/richtext/richtextindentspage.cpp:290 #: ../src/richtext/richtextliststylepage.cpp:462 #: ../src/richtext/richtextliststylepage.cpp:464 msgid "The line spacing." msgstr "行距。" #: ../src/richtext/richtextbulletspage.cpp:268 #: ../src/richtext/richtextbulletspage.cpp:270 msgid "The list item number." msgstr "列表编号" #: ../src/msw/ole/automtn.cpp:653 msgid "The locale ID is unknown." msgstr "区域ID未知" #: ../src/richtext/richtextsizepage.cpp:366 #: ../src/richtext/richtextsizepage.cpp:368 msgid "The object height." msgstr "对象高度。" #: ../src/richtext/richtextsizepage.cpp:474 #: ../src/richtext/richtextsizepage.cpp:476 msgid "The object maximum height." msgstr "对象最大高度。" #: ../src/richtext/richtextsizepage.cpp:447 #: ../src/richtext/richtextsizepage.cpp:449 msgid "The object maximum width." msgstr "对象最大宽度。" #: ../src/richtext/richtextsizepage.cpp:420 #: ../src/richtext/richtextsizepage.cpp:422 msgid "The object minimum height." msgstr "对象最小高度" #: ../src/richtext/richtextsizepage.cpp:393 #: ../src/richtext/richtextsizepage.cpp:395 msgid "The object minimum width." msgstr "对象最小宽度。" #: ../src/richtext/richtextsizepage.cpp:332 #: ../src/richtext/richtextsizepage.cpp:334 msgid "The object width." msgstr "对象宽度。" #: ../src/richtext/richtextindentspage.cpp:227 #: ../src/richtext/richtextindentspage.cpp:229 msgid "The outline level." msgstr "大纲层级" #: ../src/common/log.cpp:281 #, c-format msgid "The previous message repeated %lu time." msgid_plural "The previous message repeated %lu times." msgstr[0] "前一消息重复 %lu 次" #: ../src/common/log.cpp:274 msgid "The previous message repeated once." msgstr "前一消息重复一次" #: ../src/gtk/print.cpp:931 ../src/gtk/print.cpp:1114 msgid "The print dialog returned an error." msgstr "打印对话返回错误" #: ../src/richtext/richtextsymboldlg.cpp:462 #: ../src/richtext/richtextsymboldlg.cpp:464 msgid "The range to show." msgstr "显示的范围。" #: ../src/generic/dbgrptg.cpp:322 msgid "" "The report contains the files listed below. If any of these files contain " "private information,\n" "please uncheck them and they will be removed from the report.\n" msgstr "" "报告包含了以下文件。如果这些文件含有私人信息,\n" "请去掉选中相应的文件,未选中的文件就会从报告中删除。\n" #: ../src/common/cmdline.cpp:1083 #, c-format msgid "The required parameter '%s' was not specified." msgstr "必须的参数 '%s' 没有指定。" #: ../src/richtext/richtextindentspage.cpp:217 #: ../src/richtext/richtextindentspage.cpp:219 #: ../src/richtext/richtextliststylepage.cpp:403 #: ../src/richtext/richtextliststylepage.cpp:405 msgid "The right indent." msgstr "右侧缩进。" #: ../src/richtext/richtextmarginspage.cpp:220 #: ../src/richtext/richtextmarginspage.cpp:222 msgid "The right margin size." msgstr "右边距大小。" #: ../src/richtext/richtextmarginspage.cpp:334 #: ../src/richtext/richtextmarginspage.cpp:336 msgid "The right padding size." msgstr "右内衬" #: ../src/richtext/richtextsizepage.cpp:604 #: ../src/richtext/richtextsizepage.cpp:606 #: ../src/richtext/richtextsizepage.cpp:618 #: ../src/richtext/richtextsizepage.cpp:620 msgid "The right position." msgstr "又位置" #: ../src/richtext/richtextindentspage.cpp:267 #: ../src/richtext/richtextliststylepage.cpp:439 #: ../src/richtext/richtextliststylepage.cpp:441 msgid "The spacing after the paragraph." msgstr "段落之后的间距。" #: ../src/richtext/richtextindentspage.cpp:257 #: ../src/richtext/richtextindentspage.cpp:259 #: ../src/richtext/richtextliststylepage.cpp:430 #: ../src/richtext/richtextliststylepage.cpp:432 msgid "The spacing before the paragraph." msgstr "段落之前的间距。" #: ../src/richtext/richtextstylepage.cpp:108 #: ../src/richtext/richtextstylepage.cpp:110 msgid "The style name." msgstr "样式名称" #: ../src/richtext/richtextstylepage.cpp:118 #: ../src/richtext/richtextstylepage.cpp:120 msgid "The style on which this style is based." msgstr "此样式的基础样式" #: ../src/richtext/richtextstyledlg.cpp:214 #: ../src/richtext/richtextstyledlg.cpp:216 msgid "The style preview." msgstr "样式预览。" #: ../src/msw/ole/automtn.cpp:669 msgid "The system cannot find the file specified." msgstr "系统无法找到指定的文件。" #: ../src/richtext/richtexttabspage.cpp:118 #: ../src/richtext/richtexttabspage.cpp:120 msgid "The tab position." msgstr "标签位置" #: ../src/richtext/richtexttabspage.cpp:124 msgid "The tab positions." msgstr "标签位置" #: ../src/richtext/richtextctrl.cpp:2705 msgid "The text couldn't be saved." msgstr "文本无法保存。" #: ../src/richtext/richtextmarginspage.cpp:243 #: ../src/richtext/richtextmarginspage.cpp:245 msgid "The top margin size." msgstr "上边距大小。" #: ../src/richtext/richtextmarginspage.cpp:357 #: ../src/richtext/richtextmarginspage.cpp:359 msgid "The top padding size." msgstr "上内衬大小" #: ../src/richtext/richtextsizepage.cpp:569 #: ../src/richtext/richtextsizepage.cpp:571 #: ../src/richtext/richtextsizepage.cpp:583 #: ../src/richtext/richtextsizepage.cpp:585 msgid "The top position." msgstr "顶部位置。" #: ../src/common/cmdline.cpp:1061 #, c-format msgid "The value for the option '%s' must be specified." msgstr "选项 '%s' 的值必须被指定。" #: ../src/msw/dialup.cpp:452 #, c-format msgid "" "The version of remote access service (RAS) installed on this machine is too " "old, please upgrade (the following required function is missing: %s)." msgstr "安装在本机的远程访问服务(RAS)太旧, 请更新它 (缺少下列必要的函数: %s)." #: ../src/gtk/print.cpp:959 msgid "The wxGtkPrinterDC cannot be used." msgstr "wxGtkPrinterDC无法使用" #: ../src/osx/carbon/dataview.cpp:1340 msgid "There is no column or renderer for the specified column index." msgstr "所指定的列索引或渲染器不存在" #: ../src/richtext/richtextprint.cpp:614 ../src/html/htmprint.cpp:735 msgid "" "There was a problem during page setup: you may need to set a default printer." msgstr "在页面建立时发生问题: 您可能需要设置一台默认的打印机。" #: ../src/html/htmprint.cpp:255 msgid "" "This document doesn't fit on the page horizontally and will be truncated " "when it is printed." msgstr "该文档的水平尺寸不符合页面,若打印将会被截断。" #: ../src/common/image.cpp:2716 #, c-format msgid "This is not a %s." msgstr "这不是 %s。" #: ../src/common/wincmn.cpp:1653 msgid "This platform does not support background transparency." msgstr "该平台不支持背景透明度" #: ../src/gtk/window.cpp:4317 msgid "" "This program was compiled with a too old version of GTK+, please rebuild " "with GTK+ 2.12 or newer." msgstr "该应用由过早版本的GTK+编译,请用GTK+ 2.12或以上版本重新构建。" #: ../src/msw/datecontrols.cpp:59 msgid "" "This system doesn't support date controls, please upgrade your version of " "comctl32.dll" msgstr "本系统不支持日期控制, 请升级您的comctl32.dll" #: ../src/msw/thread.cpp:1300 msgid "" "Thread module initialization failed: cannot store value in thread local " "storage" msgstr "线程模块初始化失败: 无法在线程本地存储区中存放值" #: ../src/unix/threadpsx.cpp:1758 msgid "Thread module initialization failed: failed to create thread key" msgstr "线程模块初始化失败: 创建线程键失败" #: ../src/msw/thread.cpp:1288 msgid "" "Thread module initialization failed: impossible to allocate index in thread " "local storage" msgstr "线程模块初始化失败: 无法在线程本地存储区中分配索引" #: ../src/unix/threadpsx.cpp:1038 msgid "Thread priority setting is ignored." msgstr "线程优先级设置被忽略。" #: ../src/msw/mdi.cpp:172 msgid "Tile &Horizontally" msgstr "水平排布(&H)" #: ../src/msw/mdi.cpp:173 msgid "Tile &Vertically" msgstr "垂直排布(&V)" #: ../src/common/ftp.cpp:202 msgid "Timeout while waiting for FTP server to connect, try passive mode." msgstr "等待FTP服务器连接时超时,请尝试用 passive 模式。" #: ../src/os2/timer.cpp:99 msgid "Timer creation failed." msgstr "计时器创建失败" #: ../src/generic/tipdlg.cpp:220 msgid "Tip of the Day" msgstr "每日技巧" #: ../src/generic/tipdlg.cpp:154 msgid "Tips not available, sorry!" msgstr "对不起,没有所需的提示!" #: ../src/generic/prntdlgg.cpp:242 msgid "To:" msgstr "到:" #: ../src/osx/carbon/dataview.cpp:2451 msgid "Toggle renderer cannot render value; value type: " msgstr "切换渲染器无法渲染该;类型为:" #: ../src/richtext/richtextbuffer.cpp:7983 msgid "Too many EndStyle calls!" msgstr "呼叫EndStyle太多次!" #: ../src/common/imagpng.cpp:286 msgid "Too many colours in PNG, the image may be slightly blurred." msgstr "PNG中的颜色数过多,图像可能会有点模糊。" #: ../src/richtext/richtextsizepage.cpp:286 #: ../src/richtext/richtextsizepage.cpp:290 ../src/common/stockitem.cpp:200 msgid "Top" msgstr "顶端" #: ../src/generic/prntdlgg.cpp:881 msgid "Top margin (mm):" msgstr "上页边距 (毫米):" #: ../src/generic/aboutdlgg.cpp:79 msgid "Translations by " msgstr "翻译由" #: ../src/generic/aboutdlgg.cpp:188 msgid "Translators" msgstr "翻译者" #: ../src/propgrid/propgrid.cpp:173 msgid "True" msgstr "True" #: ../src/common/fs_mem.cpp:227 #, c-format msgid "Trying to remove file '%s' from memory VFS, but it is not loaded!" msgstr "试图从内存 VFS 中移去文件 '%s',但它并没有被装入内存!" #: ../src/common/fmapbase.cpp:156 msgid "Turkish (ISO-8859-9)" msgstr "土耳其语 (ISO-8859-9)" #: ../src/generic/filectrlg.cpp:461 msgid "Type" msgstr "类型" #: ../src/richtext/richtextfontpage.cpp:160 #: ../src/richtext/richtextfontpage.cpp:162 msgid "Type a font name." msgstr "输入字体名称。" #: ../src/richtext/richtextfontpage.cpp:175 #: ../src/richtext/richtextfontpage.cpp:177 msgid "Type a size in points." msgstr "输入大小,以磅为单位" #: ../src/msw/ole/automtn.cpp:665 #, c-format msgid "Type mismatch in argument %u." msgstr "参数 %u 的类型不匹配。" #: ../src/common/xtixml.cpp:356 ../src/common/xtixml.cpp:509 #: ../src/common/xtistrm.cpp:322 msgid "Type must have enum - long conversion" msgstr "必须进行 enum - long 的类型转换" #: ../src/propgrid/propgridiface.cpp:382 #, c-format msgid "" "Type operation \"%s\" failed: Property labeled \"%s\" is of type \"%s\", NOT " "\"%s\"." msgstr "" #: ../src/common/accelcmn.cpp:58 msgid "UP" msgstr "UP" #: ../src/common/paper.cpp:134 msgid "US Std Fanfold, 14 7/8 x 11 in" msgstr "美国标准复写簿,14 7/8 x 11 英寸" #: ../src/common/fmapbase.cpp:196 msgid "US-ASCII" msgstr "US-ASCII" #: ../src/unix/fswatcher_inotify.cpp:109 msgid "Unable to add inotify watch" msgstr "无法添加 inotify watch" #: ../src/unix/fswatcher_kqueue.cpp:136 msgid "Unable to add kqueue watch" msgstr "无法添加 kqueue watch" #: ../include/wx/msw/private/fswatcher.h:142 msgid "Unable to associate handle with I/O completion port" msgstr "无法将句柄与 I/O 完成端口相关联" #: ../include/wx/msw/private/fswatcher.h:125 msgid "Unable to close I/O completion port handle" msgstr "无法关闭 I/O 完成口的句柄" #: ../src/unix/fswatcher_inotify.cpp:97 msgid "Unable to close inotify instance" msgstr "无法关闭 inotify 实例" #: ../include/wx/unix/private/fswatcher_kqueue.h:74 #, c-format msgid "Unable to close path '%s'" msgstr "无法关闭路径 '%s'" #: ../include/wx/msw/private/fswatcher.h:48 #, c-format msgid "Unable to close the handle for '%s'" msgstr "无法关闭 '%s' 的句柄。" #: ../include/wx/msw/private/fswatcher.h:240 msgid "Unable to create I/O completion port" msgstr "无法创建 I/O 完成口" #: ../src/msw/fswatcher.cpp:84 msgid "Unable to create IOCP worker thread" msgstr "无法创建 IOCP 工作线程" #: ../src/unix/fswatcher_inotify.cpp:74 msgid "Unable to create inotify instance" msgstr "无法创建 inotify 实例" #: ../src/unix/fswatcher_kqueue.cpp:97 msgid "Unable to create kqueue instance" msgstr "无法创建 kqueue 实例" #: ../include/wx/msw/private/fswatcher.h:229 msgid "Unable to dequeue completion packet" msgstr "无法移出完成封包" #: ../src/unix/fswatcher_kqueue.cpp:185 msgid "Unable to get events from kqueue" msgstr "无法从 kqueue 中获取事件" #: ../src/osx/carbon/dataview.cpp:1903 msgid "Unable to handle native drag&drop data" msgstr "无法处理原生的拖放数据" #: ../src/gtk/app.cpp:439 msgid "Unable to initialize GTK+, is DISPLAY set properly?" msgstr "无法初始化 GTK+,DISPLAY 是否已正确设置?" #: ../src/gtk/app.cpp:276 msgid "Unable to initialize Hildon program" msgstr "无法初始化 Hildon 程序" #: ../include/wx/unix/private/fswatcher_kqueue.h:57 #, c-format msgid "Unable to open path '%s'" msgstr "无法打开路径 '%s'" #: ../src/html/htmlwin.cpp:561 #, c-format msgid "Unable to open requested HTML document: %s" msgstr "无法打开 HTML 文档: %s" #: ../src/unix/sound.cpp:368 msgid "Unable to play sound asynchronously." msgstr "无法异步地播放声音。" #: ../include/wx/msw/private/fswatcher.h:207 msgid "Unable to post completion status" msgstr "无法贴上完成状态" #: ../src/unix/fswatcher_inotify.cpp:530 msgid "Unable to read from inotify descriptor" msgstr "无法读取 inotify 描述符" #: ../src/unix/fswatcher_inotify.cpp:132 msgid "Unable to remove inotify watch" msgstr "无法删除 inotify watch" #: ../src/unix/fswatcher_kqueue.cpp:153 msgid "Unable to remove kqueue watch" msgstr "无法删除 kqueue watch" #: ../src/msw/fswatcher.cpp:168 #, c-format msgid "Unable to set up watch for '%s'" msgstr "无法为 '%s' 设定 watch" #: ../src/msw/fswatcher.cpp:91 msgid "Unable to start IOCP worker thread" msgstr "无法开始 IOCP 工作线程" #: ../src/common/stockitem.cpp:201 msgid "Undelete" msgstr "取消删除" #: ../src/common/stockitem.cpp:202 msgid "Underline" msgstr "下划线" #: ../src/richtext/richtextfontpage.cpp:341 ../src/osx/carbon/fontdlg.cpp:556 #: ../src/propgrid/advprops.cpp:655 msgid "Underlined" msgstr "下划线" #: ../src/common/stockitem.cpp:203 ../src/stc/stc_i18n.cpp:15 msgid "Undo" msgstr "撤销" #: ../src/common/stockitem.cpp:265 msgid "Undo last action" msgstr "撤销上一次操作" #: ../src/common/cmdline.cpp:864 #, c-format msgid "Unexpected characters following option '%s'." msgstr "选项 '%s' 后有意外字符。" #: ../src/unix/fswatcher_inotify.cpp:261 #, c-format msgid "Unexpected event for \"%s\": no matching watch descriptor." msgstr "" #: ../src/common/cmdline.cpp:1024 #, c-format msgid "Unexpected parameter '%s'" msgstr "意外参数 '%s'" #: ../include/wx/msw/private/fswatcher.h:148 msgid "Unexpectedly new I/O completion port was created" msgstr "" #: ../src/msw/fswatcher.cpp:70 msgid "Ungraceful worker thread termination" msgstr "工作线程非正常终止" #: ../src/richtext/richtextsymboldlg.cpp:459 #: ../src/richtext/richtextsymboldlg.cpp:460 #: ../src/richtext/richtextsymboldlg.cpp:461 msgid "Unicode" msgstr "Unicode 编码" #: ../src/common/fmapbase.cpp:185 ../src/common/fmapbase.cpp:191 msgid "Unicode 16 bit (UTF-16)" msgstr "16位的 Unicode 编码 (UTF-16)" #: ../src/common/fmapbase.cpp:190 msgid "Unicode 16 bit Big Endian (UTF-16BE)" msgstr "16位大字节序 Unicode 编码 (UTF-16BE)" #: ../src/common/fmapbase.cpp:186 msgid "Unicode 16 bit Little Endian (UTF-16LE)" msgstr "16位小字节序 Unicode 编码 (UTF-16LE)" #: ../src/common/fmapbase.cpp:187 ../src/common/fmapbase.cpp:193 msgid "Unicode 32 bit (UTF-32)" msgstr "32位的 Unicode 编码 (UTF-32)" #: ../src/common/fmapbase.cpp:192 msgid "Unicode 32 bit Big Endian (UTF-32BE)" msgstr "32位大字节序 Unicode 编码 (UTF-32BE)" #: ../src/common/fmapbase.cpp:188 msgid "Unicode 32 bit Little Endian (UTF-32LE)" msgstr "32位小字节序 Unicode 编码 (UTF-32LE)" #: ../src/common/fmapbase.cpp:182 msgid "Unicode 7 bit (UTF-7)" msgstr "7位的 Unicode 编码 (UTF-7)" #: ../src/common/fmapbase.cpp:183 msgid "Unicode 8 bit (UTF-8)" msgstr "8位的 Unicode 编码 (UTF-8)" #: ../src/common/stockitem.cpp:204 msgid "Unindent" msgstr "取消缩进" #: ../src/richtext/richtextborderspage.cpp:373 #: ../src/richtext/richtextborderspage.cpp:375 msgid "Units for the bottom border width." msgstr "下边框单位" #: ../src/richtext/richtextmarginspage.cpp:278 #: ../src/richtext/richtextmarginspage.cpp:280 msgid "Units for the bottom margin." msgstr "下边距单位" #: ../src/richtext/richtextborderspage.cpp:517 #: ../src/richtext/richtextborderspage.cpp:519 msgid "Units for the bottom outline width." msgstr "下轮廓单位" #: ../src/richtext/richtextmarginspage.cpp:392 #: ../src/richtext/richtextmarginspage.cpp:394 msgid "Units for the bottom padding." msgstr "下内衬单位" #: ../src/richtext/richtextsizepage.cpp:664 #: ../src/richtext/richtextsizepage.cpp:666 msgid "Units for the bottom position." msgstr "下位置单位" #: ../src/richtext/richtextborderspage.cpp:283 #: ../src/richtext/richtextborderspage.cpp:285 msgid "Units for the left border width." msgstr "左边框单位" #: ../src/richtext/richtextmarginspage.cpp:205 #: ../src/richtext/richtextmarginspage.cpp:207 msgid "Units for the left margin." msgstr "左边距单位" #: ../src/richtext/richtextborderspage.cpp:427 #: ../src/richtext/richtextborderspage.cpp:429 msgid "Units for the left outline width." msgstr "左轮廓单位" #: ../src/richtext/richtextmarginspage.cpp:319 #: ../src/richtext/richtextmarginspage.cpp:321 msgid "Units for the left padding." msgstr "左内衬单位" #: ../src/richtext/richtextsizepage.cpp:559 #: ../src/richtext/richtextsizepage.cpp:561 msgid "Units for the left position." msgstr "左位置单位" #: ../src/richtext/richtextsizepage.cpp:485 #: ../src/richtext/richtextsizepage.cpp:487 msgid "Units for the maximum object height." msgstr "最大对象高度单位。" #: ../src/richtext/richtextsizepage.cpp:458 #: ../src/richtext/richtextsizepage.cpp:460 msgid "Units for the maximum object width." msgstr "最大对象宽度单位。" #: ../src/richtext/richtextsizepage.cpp:431 #: ../src/richtext/richtextsizepage.cpp:433 msgid "Units for the minimum object height." msgstr "最小对象高度单位。" #: ../src/richtext/richtextsizepage.cpp:404 #: ../src/richtext/richtextsizepage.cpp:406 msgid "Units for the minimum object width." msgstr "最小对象宽度单位。" #: ../src/richtext/richtextsizepage.cpp:377 #: ../src/richtext/richtextsizepage.cpp:379 msgid "Units for the object height." msgstr "对象高度单位" #: ../src/richtext/richtextsizepage.cpp:343 #: ../src/richtext/richtextsizepage.cpp:345 msgid "Units for the object width." msgstr "对象宽度单位" #: ../src/richtext/richtextborderspage.cpp:313 #: ../src/richtext/richtextborderspage.cpp:315 msgid "Units for the right border width." msgstr "右边框单位" #: ../src/richtext/richtextmarginspage.cpp:230 #: ../src/richtext/richtextmarginspage.cpp:232 msgid "Units for the right margin." msgstr "右边距单位" #: ../src/richtext/richtextborderspage.cpp:457 #: ../src/richtext/richtextborderspage.cpp:459 msgid "Units for the right outline width." msgstr "右轮廓单位" #: ../src/richtext/richtextmarginspage.cpp:344 #: ../src/richtext/richtextmarginspage.cpp:346 msgid "Units for the right padding." msgstr "右内衬单位" #: ../src/richtext/richtextsizepage.cpp:629 #: ../src/richtext/richtextsizepage.cpp:631 msgid "Units for the right position." msgstr "右位置单位" #: ../src/richtext/richtextborderspage.cpp:343 #: ../src/richtext/richtextborderspage.cpp:345 msgid "Units for the top border width." msgstr "上边框单位" #: ../src/richtext/richtextmarginspage.cpp:253 #: ../src/richtext/richtextmarginspage.cpp:255 msgid "Units for the top margin." msgstr "上边距单位" #: ../src/richtext/richtextborderspage.cpp:487 #: ../src/richtext/richtextborderspage.cpp:489 msgid "Units for the top outline width." msgstr "上轮廓单位" #: ../src/richtext/richtextmarginspage.cpp:367 #: ../src/richtext/richtextmarginspage.cpp:369 msgid "Units for the top padding." msgstr "上内衬单位" #: ../src/richtext/richtextsizepage.cpp:594 #: ../src/richtext/richtextsizepage.cpp:596 msgid "Units for the top position." msgstr "上位置单位" #: ../src/generic/progdlgg.cpp:382 ../src/generic/progdlgg.cpp:655 msgid "Unknown" msgstr "未知" #: ../src/msw/dde.cpp:1177 #, c-format msgid "Unknown DDE error %08x" msgstr "未知 DDE 错误 %08x" #: ../src/common/xtistrm.cpp:414 msgid "Unknown Object passed to GetObjectClassInfo" msgstr "未知的对象传递给 GetObjectClassInfo" #: ../src/common/imagpng.cpp:614 #, c-format msgid "Unknown PNG resolution unit %d" msgstr "未知 PNG 解析度单位 %d" #: ../src/common/xtixml.cpp:327 #, c-format msgid "Unknown Property %s" msgstr "未知属性 %s" #: ../src/common/imagtiff.cpp:532 #, c-format msgid "Unknown TIFF resolution unit %d ignored" msgstr "未知 TIFF 解析度单位 %d,忽略之" #: ../src/osx/carbon/dataview.cpp:1978 msgid "Unknown data format" msgstr "未知数据格式" #: ../src/unix/dlunix.cpp:325 msgid "Unknown dynamic library error" msgstr "未知的动态库错误" #: ../src/common/fmapbase.cpp:810 #, c-format msgid "Unknown encoding (%d)" msgstr "未知编码 (%d)" #: ../src/msw/ole/automtn.cpp:677 #, c-format msgid "Unknown error %08x" msgstr "未知错误 %08x" #: ../src/msw/ole/automtn.cpp:636 msgid "Unknown exception" msgstr "未知异常" #: ../src/common/image.cpp:2701 msgid "Unknown image data format." msgstr "未知图像数据格式" #: ../src/common/cmdline.cpp:749 #, c-format msgid "Unknown long option '%s'" msgstr "未知的长选项 '%s'" #: ../src/msw/ole/automtn.cpp:620 msgid "Unknown name or named argument." msgstr "未知名称或者命名参数" #: ../src/common/cmdline.cpp:764 ../src/common/cmdline.cpp:786 #, c-format msgid "Unknown option '%s'" msgstr "未知选项 '%s'" #: ../src/common/mimecmn.cpp:230 #, c-format msgid "Unmatched '{' in an entry for mime type %s." msgstr "类型 %s 中有不配套的 '{'。" #: ../src/common/cmdproc.cpp:262 ../src/common/cmdproc.cpp:288 #: ../src/common/cmdproc.cpp:308 msgid "Unnamed command" msgstr "未命名的命令" #: ../src/propgrid/propgrid.cpp:398 msgid "Unspecified" msgstr "未指定" #: ../src/msw/clipbrd.cpp:271 ../src/msw/clipbrd.cpp:439 msgid "Unsupported clipboard format." msgstr "不支持的剪贴板格式。" #: ../src/common/appcmn.cpp:249 #, c-format msgid "Unsupported theme '%s'." msgstr "不支持的主题 '%s'。" #: ../src/generic/fdrepdlg.cpp:152 ../src/common/stockitem.cpp:205 msgid "Up" msgstr "向上" #: ../src/richtext/richtextliststylepage.cpp:483 #: ../src/richtext/richtextbulletspage.cpp:288 msgid "Upper case letters" msgstr "大写字母" #: ../src/richtext/richtextliststylepage.cpp:485 #: ../src/richtext/richtextbulletspage.cpp:290 msgid "Upper case roman numerals" msgstr "大写罗马数字" #: ../src/common/cmdline.cpp:1155 #, c-format msgid "Usage: %s" msgstr "用法: %s" #: ../src/richtext/richtextindentspage.cpp:169 #: ../src/richtext/richtextindentspage.cpp:171 #: ../src/richtext/richtextliststylepage.cpp:358 #: ../src/richtext/richtextliststylepage.cpp:360 msgid "Use the current alignment setting." msgstr "使用当前的对齐设置。" #: ../src/osx/carbon/dataview.cpp:2658 ../src/osx/carbon/dataview.cpp:2723 msgid "Valid pointer to native data view control does not exist" msgstr "" #: ../src/common/valtext.cpp:174 msgid "Validation conflict" msgstr "验证冲突" #: ../src/propgrid/manager.cpp:238 msgid "Value" msgstr "值" #: ../src/propgrid/props.cpp:384 #, c-format msgid "Value must be %s or higher." msgstr "数值必须大于或等于 %s。" #: ../src/propgrid/props.cpp:411 #, c-format msgid "Value must be %s or less." msgstr "数值必须小于或等于 %s。" #: ../src/propgrid/props.cpp:388 ../src/propgrid/props.cpp:415 #, c-format msgid "Value must be between %s and %s." msgstr "数值必须在 %s 和 %s 之间。" #: ../src/generic/aboutdlgg.cpp:128 msgid "Version " msgstr "版本" #: ../src/richtext/richtextsizepage.cpp:291 #: ../src/richtext/richtextsizepage.cpp:293 msgid "Vertical alignment." msgstr "垂直对齐。" #: ../src/generic/filedlgg.cpp:216 msgid "View files as a detailed view" msgstr "按详细视图观看文件" #: ../src/generic/filedlgg.cpp:214 msgid "View files as a list view" msgstr "按列表视图观看文件" #: ../src/common/docview.cpp:1952 msgid "Views" msgstr "视图" #: ../src/common/accelcmn.cpp:108 msgid "WINDOWS_LEFT" msgstr "WINDOWS_LEFT" #: ../src/common/accelcmn.cpp:110 msgid "WINDOWS_MENU" msgstr "WINDOWS_MENU" #: ../src/common/accelcmn.cpp:109 msgid "WINDOWS_RIGHT" msgstr "WINDOWS_RIGHT" #: ../src/unix/epolldispatcher.cpp:213 #, c-format msgid "Waiting for IO on epoll descriptor %d failed" msgstr "等待 epoll 描述符 %d 的 IO 时失败" #: ../src/common/log.cpp:227 msgid "Warning: " msgstr "警告: " #: ../src/propgrid/advprops.cpp:651 msgid "Weight" msgstr "字体粗细" #: ../src/common/fmapbase.cpp:148 msgid "Western European (ISO-8859-1)" msgstr "西欧 (ISO-8859-1)" #: ../src/common/fmapbase.cpp:162 msgid "Western European with Euro (ISO-8859-15)" msgstr "西欧带欧元符号 (ISO-8859-15)" #: ../src/generic/fontdlgg.cpp:446 ../src/generic/fontdlgg.cpp:448 msgid "Whether the font is underlined." msgstr "字体是否为下划线。" #: ../src/generic/fdrepdlg.cpp:144 msgid "Whole word" msgstr "整字" #: ../src/html/helpwnd.cpp:547 msgid "Whole words only" msgstr "仅为整字" #: ../src/univ/themes/win32.cpp:1102 msgid "Win32 theme" msgstr "Win32 主题" #: ../src/msw/utils.cpp:1220 msgid "Win32s on Windows 3.1" msgstr "Windows 3.1 上的 Win32s" #: ../src/msw/utils.cpp:1270 msgid "Windows 2000" msgstr "Windows 2000" #: ../src/msw/utils.cpp:1302 msgid "Windows 7" msgstr "Windows 7" #: ../src/msw/utils.cpp:1234 msgid "Windows 95" msgstr "Windows 95" #: ../src/msw/utils.cpp:1230 msgid "Windows 95 OSR2" msgstr "Windows 95 OSR2" #: ../src/msw/utils.cpp:1245 msgid "Windows 98" msgstr "Windows 98" #: ../src/msw/utils.cpp:1241 msgid "Windows 98 SE" msgstr "Windows 98 SE" #: ../src/msw/utils.cpp:1252 #, c-format msgid "Windows 9x (%d.%d)" msgstr "Windows 9x (%d.%d)" #: ../src/common/fmapbase.cpp:177 msgid "Windows Arabic (CP 1256)" msgstr "Windows 阿拉伯语 (CP 1256)" #: ../src/common/fmapbase.cpp:178 msgid "Windows Baltic (CP 1257)" msgstr "Windows 波罗的海语 (CP 1257)" #: ../src/msw/utils.cpp:1214 #, c-format msgid "Windows CE (%d.%d)" msgstr "Windows CE (%d.%d)" #: ../src/common/fmapbase.cpp:171 msgid "Windows Central European (CP 1250)" msgstr "Windows 中欧 (CP 1250)" #: ../src/common/fmapbase.cpp:168 msgid "Windows Chinese Simplified (CP 936) or GB-2312" msgstr "Windows 简体中文 (CP 936) 或 GB-2312" #: ../src/common/fmapbase.cpp:170 msgid "Windows Chinese Traditional (CP 950) or Big-5" msgstr "Windows 繁体中文 (CP 950) 或 Big-5" #: ../src/common/fmapbase.cpp:172 msgid "Windows Cyrillic (CP 1251)" msgstr "Windows 西里尔语 (CP 1251)" #: ../src/common/fmapbase.cpp:174 msgid "Windows Greek (CP 1253)" msgstr "Windows 希腊语 (CP 1253)" #: ../src/common/fmapbase.cpp:176 msgid "Windows Hebrew (CP 1255)" msgstr "Windows 希伯来语 (CP 1255)" #: ../src/common/fmapbase.cpp:167 msgid "Windows Japanese (CP 932) or Shift-JIS" msgstr "Windows 日语 (CP 932) 或 Shift-JIS" #: ../src/common/fmapbase.cpp:180 msgid "Windows Johab (CP 1361)" msgstr "Windows 朝鲜语 (CP 1361)" #: ../src/common/fmapbase.cpp:169 msgid "Windows Korean (CP 949)" msgstr "Windows 韩语 (CP 949)" #: ../src/msw/utils.cpp:1249 msgid "Windows ME" msgstr "Windows ME" #: ../src/msw/utils.cpp:1310 #, c-format msgid "Windows NT %lu.%lu" msgstr "Windows NT %lu.%lu" #: ../src/msw/utils.cpp:1279 msgid "Windows Server 2003" msgstr "Windows Server 2003" #: ../src/msw/utils.cpp:1295 msgid "Windows Server 2008" msgstr "Windows Server 2008" #: ../src/msw/utils.cpp:1301 msgid "Windows Server 2008 R2" msgstr "Windows Server 2008 R2" #: ../src/common/fmapbase.cpp:166 msgid "Windows Thai (CP 874)" msgstr "Windows 泰国语 (CP 874)" #: ../src/common/fmapbase.cpp:175 msgid "Windows Turkish (CP 1254)" msgstr "Windows 土耳其语 (CP 1254)" #: ../src/common/fmapbase.cpp:179 msgid "Windows Vietnamese (CP 1258)" msgstr "Windows 越南语 (CP 1258)" #: ../src/msw/utils.cpp:1296 msgid "Windows Vista" msgstr "Windows Vista" #: ../src/common/fmapbase.cpp:173 msgid "Windows Western European (CP 1252)" msgstr "Windows 西欧 (CP 1252)" #: ../src/msw/utils.cpp:1285 msgid "Windows XP" msgstr "Windows XP" #: ../src/common/fmapbase.cpp:181 msgid "Windows/DOS OEM (CP 437)" msgstr "Windows/DOS OEM (CP 437)" #: ../src/common/fmapbase.cpp:165 msgid "Windows/DOS OEM Cyrillic (CP 866)" msgstr "Windows/DOS OEM 西里尔语 (CP 866)" #: ../src/common/ffile.cpp:148 #, c-format msgid "Write error on file '%s'" msgstr "写文件 '%s' 错误" #: ../src/xml/xml.cpp:844 #, c-format msgid "XML parsing error: '%s' at line %d" msgstr "XML 解析错误: '%s',位于行 %d" #: ../src/common/xpmdecod.cpp:796 msgid "XPM: Malformed pixel data!" msgstr "XPM: 错误的象素数据!" #: ../src/common/xpmdecod.cpp:705 #, c-format msgid "XPM: incorrect colour description in line %d" msgstr "XPM: 在第 %d 行有错误的颜色描述" #: ../src/common/xpmdecod.cpp:680 msgid "XPM: incorrect header format!" msgstr "XPM: 不正确的头格式!" #: ../src/common/xpmdecod.cpp:716 ../src/common/xpmdecod.cpp:725 #, c-format msgid "XPM: malformed colour definition '%s' at line %d!" msgstr "XPM: 错误的颜色定义 '%s',位于行 %d!" #: ../src/common/xpmdecod.cpp:755 msgid "XPM: no colors left to use for mask!" msgstr "XPM: 没有剩下可供选择的掩码颜色!" #: ../src/common/xpmdecod.cpp:782 #, c-format msgid "XPM: truncated image data at line %d!" msgstr "XPM: 图像数据被截断,位于行 %d!" #: ../include/wx/msgdlg.h:271 ../src/common/stockitem.cpp:206 #: ../src/motif/msgdlg.cpp:196 msgid "Yes" msgstr "是" #: ../src/osx/carbon/overlay.cpp:155 msgid "You cannot Clear an overlay that is not inited" msgstr "你无法清除未初始化的 overlay。" #: ../src/osx/carbon/overlay.cpp:107 ../src/dfb/overlay.cpp:61 msgid "You cannot Init an overlay twice" msgstr "你不能初始化 overlay 两次" #: ../src/generic/dirdlgg.cpp:316 msgid "You cannot add a new directory to this section." msgstr "你无法向该项中加入新的目录。" #: ../src/propgrid/propgrid.cpp:3258 msgid "You have entered invalid value. Press ESC to cancel editing." msgstr "你输入了无效值。按 ESC 取消编辑。" #: ../src/common/stockitem.cpp:209 msgid "Zoom &In" msgstr "放大(&I)" #: ../src/common/stockitem.cpp:210 msgid "Zoom &Out" msgstr "缩小(&O)" #: ../src/common/stockitem.cpp:209 ../src/common/prntbase.cpp:1564 msgid "Zoom In" msgstr "放大" #: ../src/common/stockitem.cpp:210 ../src/common/prntbase.cpp:1550 msgid "Zoom Out" msgstr "缩小" #: ../src/common/stockitem.cpp:208 msgid "Zoom to &Fit" msgstr "缩放以适应窗口(&F)" #: ../src/common/stockitem.cpp:208 msgid "Zoom to Fit" msgstr "缩放以适应窗口" #: ../src/msw/dde.cpp:1144 msgid "a DDEML application has created a prolonged race condition." msgstr "DDEML 应用程序已创建延时 race 条件." #: ../src/msw/dde.cpp:1132 msgid "" "a DDEML function was called without first calling the DdeInitialize " "function,\n" "or an invalid instance identifier\n" "was passed to a DDEML function." msgstr "" "没有调用 DdeInitialize 初始化函数就调用DDEML其它函数,\n" "或传给DDEML函数的是\n" "无效的实例标识。" #: ../src/msw/dde.cpp:1150 msgid "a client's attempt to establish a conversation has failed." msgstr "客户试图建立的会话已失败。" #: ../src/msw/dde.cpp:1147 msgid "a memory allocation failed." msgstr "内存分配失败。" #: ../src/msw/dde.cpp:1141 msgid "a parameter failed to be validated by the DDEML." msgstr "DDEML 参数验证失败。" #: ../src/msw/dde.cpp:1123 msgid "a request for a synchronous advise transaction has timed out." msgstr "同步 advise 事务请求超时。" #: ../src/msw/dde.cpp:1129 msgid "a request for a synchronous data transaction has timed out." msgstr "同步 data 事务请求超时。" #: ../src/msw/dde.cpp:1138 msgid "a request for a synchronous execute transaction has timed out." msgstr "同步 execute 事务请求超时。" #: ../src/msw/dde.cpp:1156 msgid "a request for a synchronous poke transaction has timed out." msgstr "同步 poke 事务请求超时。" #: ../src/msw/dde.cpp:1171 msgid "a request to end an advise transaction has timed out." msgstr "终止 advise 事务的请求超时。" #: ../src/msw/dde.cpp:1165 msgid "" "a server-side transaction was attempted on a conversation\n" "that was terminated by the client, or the server\n" "terminated before completing a transaction." msgstr "" "服务器端事务试图处理\n" "已被客户端终止的会话,或服务器\n" "在完成事务前终止。" #: ../src/msw/dde.cpp:1153 msgid "a transaction failed." msgstr "事务失败。" #: ../src/common/accelcmn.cpp:184 msgid "alt" msgstr "alt" #: ../src/msw/dde.cpp:1135 msgid "" "an application initialized as APPCLASS_MONITOR has\n" "attempted to perform a DDE transaction,\n" "or an application initialized as APPCMD_CLIENTONLY has \n" "attempted to perform server transactions." msgstr "" "初始化为 APPCLASS_MONITOR 的应用程序\n" "试图执行 DDE 事务,\n" "或初始化为 APPCMD_CLIENTONLY 的应用程序\n" "视图执行服务器事务。" #: ../src/msw/dde.cpp:1159 msgid "an internal call to the PostMessage function has failed. " msgstr "内部调用 PostMessage 失败。" #: ../src/msw/dde.cpp:1168 msgid "an internal error has occurred in the DDEML." msgstr "在 DDEML 中发生内部错误。" #: ../src/msw/dde.cpp:1174 msgid "" "an invalid transaction identifier was passed to a DDEML function.\n" "Once the application has returned from an XTYP_XACT_COMPLETE callback,\n" "the transaction identifier for that callback is no longer valid." msgstr "" "传给 DDEML 函数的是无效的事务标识符。\n" "一旦应用程序从 XTYP_XACT_COMPLETE 回调函数返回,\n" "回调函数事务标识符就不再有效。" #: ../src/common/zipstrm.cpp:1272 msgid "assuming this is a multi-part zip concatenated" msgstr "假定这是一个分段 zip 文件的合并" #: ../src/common/fileconf.cpp:1882 #, c-format msgid "attempt to change immutable key '%s' ignored." msgstr "忽略对只读键 '%s' 的修改。" #: ../src/html/chm.cpp:329 msgid "bad arguments to library function" msgstr "库函数参数错误" #: ../src/html/chm.cpp:341 msgid "bad signature" msgstr "错误的签名" #: ../src/common/zipstrm.cpp:1715 msgid "bad zipfile offset to entry" msgstr "zip 文件中到条目的偏移值错误" #: ../src/common/ftp.cpp:405 msgid "binary" msgstr "二进制" #: ../src/common/fontcmn.cpp:978 msgid "bold" msgstr "粗体" #: ../src/os2/iniconf.cpp:463 msgid "buffer is too small for Windows directory." msgstr "Windows 目录的缓存太小。" #: ../src/msw/utils.cpp:1316 #, c-format msgid "build %lu" msgstr "build %lu" #: ../src/common/ffile.cpp:79 #, c-format msgid "can't close file '%s'" msgstr "无法关闭文件 '%s'" #: ../src/common/file.cpp:278 #, c-format msgid "can't close file descriptor %d" msgstr "无法关闭文件描述符 %d" #: ../src/common/file.cpp:604 #, c-format msgid "can't commit changes to file '%s'" msgstr "无法把修改提交给文件 '%s'" #: ../src/common/file.cpp:212 #, c-format msgid "can't create file '%s'" msgstr "无法创建文件 '%s'" #: ../src/common/fileconf.cpp:1176 #, c-format msgid "can't delete user configuration file '%s'" msgstr "无法删除用户配置文件 '%s'" #: ../src/common/file.cpp:511 #, c-format msgid "can't determine if the end of file is reached on descriptor %d" msgstr "无法确定是否已达描述符 %d 的尾部" #: ../src/msdos/utilsdos.cpp:310 ../src/msdos/utilsdos.cpp:475 #, c-format msgid "can't execute '%s'" msgstr "执行 '%s'失败" #: ../src/common/zipstrm.cpp:1490 msgid "can't find central directory in zip" msgstr "无法在 zip 文件中找到中央目录" #: ../src/common/file.cpp:481 #, c-format msgid "can't find length of file on file descriptor %d" msgstr "无法获得文件描述符 %d 的文件长度" #: ../src/msw/utils.cpp:373 msgid "can't find user's HOME, using current directory." msgstr "找不到用户的 HOME 目录,使用当前目录。" #: ../src/common/file.cpp:382 #, c-format msgid "can't flush file descriptor %d" msgstr "无法刷新文件描述符 %d" #: ../src/common/file.cpp:438 ../src/msw/wince/filefnwce.cpp:204 #, c-format msgid "can't get seek position on file descriptor %d" msgstr "无法获得文件描述符 %d 的指针位置" #: ../src/common/fontmap.cpp:325 msgid "can't load any font, aborting" msgstr "无法装载任何字体,正在中止" #: ../src/common/file.cpp:264 ../src/common/ffile.cpp:63 #, c-format msgid "can't open file '%s'" msgstr "无法打开文件 '%s'" #: ../src/common/fileconf.cpp:351 #, c-format msgid "can't open global configuration file '%s'." msgstr "无法打开全局配置文件 '%s'。" #: ../src/common/fileconf.cpp:367 #, c-format msgid "can't open user configuration file '%s'." msgstr "无法打开用户配置文件 '%s'。" #: ../src/common/fileconf.cpp:1017 msgid "can't open user configuration file." msgstr "无法打开用户配置文件。" #: ../src/common/zipstrm.cpp:527 msgid "can't re-initialize zlib deflate stream" msgstr "无法重新初始化 zlib 压缩流。" #: ../src/common/zipstrm.cpp:552 msgid "can't re-initialize zlib inflate stream" msgstr "无法重新初始化 zlib 解压流。" #: ../src/common/file.cpp:334 #, c-format msgid "can't read from file descriptor %d" msgstr "无法读取文件描述符 %d" #: ../src/common/file.cpp:599 #, c-format msgid "can't remove file '%s'" msgstr "无法删除文件 '%s'" #: ../src/common/file.cpp:616 #, c-format msgid "can't remove temporary file '%s'" msgstr "无法删除临时文件 '%s'" #: ../src/common/file.cpp:424 ../src/msw/wince/filefnwce.cpp:190 #, c-format msgid "can't seek on file descriptor %d" msgstr "无法定位文件描述符 %d" #: ../src/common/textfile.cpp:299 #, c-format msgid "can't write buffer '%s' to disk." msgstr "无法把缓存区 '%s' 写到磁盘。" #: ../src/common/file.cpp:350 #, c-format msgid "can't write to file descriptor %d" msgstr "无法写文件描述符 %d" #: ../src/common/fileconf.cpp:1031 msgid "can't write user configuration file." msgstr "无法写用户配置文件。" #: ../src/html/chm.cpp:345 msgid "checksum error" msgstr "校验和错误" #: ../src/common/tarstrm.cpp:820 msgid "checksum failure reading tar header block" msgstr "读取tar头部块发生校验和错误" #: ../src/richtext/richtextborderspage.cpp:280 #: ../src/richtext/richtextborderspage.cpp:310 #: ../src/richtext/richtextborderspage.cpp:340 #: ../src/richtext/richtextborderspage.cpp:370 #: ../src/richtext/richtextborderspage.cpp:424 #: ../src/richtext/richtextborderspage.cpp:454 #: ../src/richtext/richtextborderspage.cpp:484 #: ../src/richtext/richtextborderspage.cpp:514 #: ../src/richtext/richtextmarginspage.cpp:202 #: ../src/richtext/richtextmarginspage.cpp:227 #: ../src/richtext/richtextmarginspage.cpp:250 #: ../src/richtext/richtextmarginspage.cpp:275 #: ../src/richtext/richtextmarginspage.cpp:316 #: ../src/richtext/richtextmarginspage.cpp:341 #: ../src/richtext/richtextmarginspage.cpp:364 #: ../src/richtext/richtextmarginspage.cpp:389 #: ../src/richtext/richtextsizepage.cpp:339 #: ../src/richtext/richtextsizepage.cpp:373 #: ../src/richtext/richtextsizepage.cpp:400 #: ../src/richtext/richtextsizepage.cpp:427 #: ../src/richtext/richtextsizepage.cpp:454 #: ../src/richtext/richtextsizepage.cpp:481 #: ../src/richtext/richtextsizepage.cpp:555 #: ../src/richtext/richtextsizepage.cpp:590 #: ../src/richtext/richtextsizepage.cpp:625 #: ../src/richtext/richtextsizepage.cpp:660 msgid "cm" msgstr "厘米" #: ../src/html/chm.cpp:347 msgid "compression error" msgstr "压缩错误" #: ../src/common/regex.cpp:239 msgid "conversion to 8-bit encoding failed" msgstr "无法转换为 8 位编码" #: ../src/common/accelcmn.cpp:182 msgid "ctrl" msgstr "ctrl" #: ../src/common/cmdline.cpp:1323 msgid "date" msgstr "日期" #: ../src/html/chm.cpp:349 msgid "decompression error" msgstr "解压缩错误" #: ../src/richtext/richtextstyles.cpp:780 ../src/common/fmapbase.cpp:820 msgid "default" msgstr "缺省值" #: ../src/common/cmdline.cpp:1319 msgid "double" msgstr "" #: ../src/common/debugrpt.cpp:543 msgid "dump of the process state (binary)" msgstr "转储进程状态(二进制码)" #: ../src/common/datetimefmt.cpp:1936 msgid "eighteenth" msgstr "第十八" #: ../src/common/datetimefmt.cpp:1926 msgid "eighth" msgstr "第八" #: ../src/common/datetimefmt.cpp:1929 msgid "eleventh" msgstr "第十一" #: ../src/common/fileconf.cpp:1868 #, c-format msgid "entry '%s' appears more than once in group '%s'" msgstr "条目 '%s' 在组 '%s' 中已出现一次以上" #: ../src/html/chm.cpp:343 msgid "error in data format" msgstr "文件格式错误" #: ../src/msdos/utilsdos.cpp:413 #, c-format msgid "error opening '%s'" msgstr "打开 '%s' 出错" #: ../src/html/chm.cpp:331 msgid "error opening file" msgstr "打开文件出错" #: ../src/common/zipstrm.cpp:1576 msgid "error reading zip central directory" msgstr "读 zip 中央目录时出错" #: ../src/common/zipstrm.cpp:1667 msgid "error reading zip local header" msgstr "读 zip 本地头时出错" #: ../src/common/zipstrm.cpp:2396 #, c-format msgid "error writing zip entry '%s': bad crc or length" msgstr "写zip条目 '%s' 时出错: crc 校验或长度错误" #: ../src/common/ffile.cpp:170 #, c-format msgid "failed to flush the file '%s'" msgstr "刷新文件 '%s' 失败" #: ../src/common/datetimefmt.cpp:1933 msgid "fifteenth" msgstr "第十五" #: ../src/common/datetimefmt.cpp:1923 msgid "fifth" msgstr "第五" #: ../src/common/fileconf.cpp:610 #, c-format msgid "file '%s', line %d: '%s' ignored after group header." msgstr "文件 '%s',行 %d: 组头之后的 '%s' 被忽略。" #: ../src/common/fileconf.cpp:639 #, c-format msgid "file '%s', line %d: '=' expected." msgstr "文件 '%s',行 %d: 期待出现 '='。" #: ../src/common/fileconf.cpp:662 #, c-format msgid "file '%s', line %d: key '%s' was first found at line %d." msgstr "文件 '%s',行 %d: 键 '%s' 第一次出现在行 %d。" #: ../src/common/fileconf.cpp:652 #, c-format msgid "file '%s', line %d: value for immutable key '%s' ignored." msgstr "文件 '%s',行 %d: 忽略不可变键 '%s' 的值。" #: ../src/common/fileconf.cpp:574 #, c-format msgid "file '%s': unexpected character %c at line %d." msgstr "文件 '%s': 非预期的字符 %c 存在于行 %d。" #: ../src/richtext/richtextbuffer.cpp:8358 msgid "files" msgstr "文件" #: ../src/common/datetimefmt.cpp:1919 msgid "first" msgstr "第一" #: ../src/html/helpwnd.cpp:1265 msgid "font size" msgstr "字体大小" #: ../src/common/datetimefmt.cpp:1932 msgid "fourteenth" msgstr "第十四" #: ../src/common/datetimefmt.cpp:1922 msgid "fourth" msgstr "第四" #: ../src/common/appbase.cpp:695 msgid "generate verbose log messages" msgstr "生成详细的日志信息" #: ../src/richtext/richtextbuffer.cpp:12212 #: ../src/richtext/richtextbuffer.cpp:12322 msgid "image" msgstr "图片" #: ../src/common/tarstrm.cpp:796 msgid "incomplete header block in tar" msgstr "tar头部块不完整" #: ../src/common/xtixml.cpp:489 msgid "incorrect event handler string, missing dot" msgstr "错误的时间句柄字符串,缺少点号('.')" #: ../src/common/tarstrm.cpp:1381 msgid "incorrect size given for tar entry" msgstr "tar项目不正确的大小" #: ../src/common/tarstrm.cpp:993 msgid "invalid data in extended tar header" msgstr "tar扩展头部中有图小数据" #: ../src/generic/logg.cpp:1050 msgid "invalid message box return value" msgstr "消息框返回无效的值" #: ../src/common/zipstrm.cpp:1445 msgid "invalid zip file" msgstr "无效的 zip 文件" #: ../src/common/fontcmn.cpp:983 msgid "italic" msgstr "斜体" #: ../src/common/fontcmn.cpp:973 msgid "light" msgstr "细体" #: ../src/common/intl.cpp:293 #, c-format msgid "locale '%s' cannot be set." msgstr "无法设置地区为 '%s'。" #: ../src/common/datetimefmt.cpp:2092 msgid "midnight" msgstr "午夜" #: ../src/common/datetimefmt.cpp:1937 msgid "nineteenth" msgstr "第十九" #: ../src/common/datetimefmt.cpp:1927 msgid "ninth" msgstr "第九" #: ../src/msw/dde.cpp:1119 msgid "no DDE error." msgstr "没有 DDE 错误。" #: ../src/html/chm.cpp:327 msgid "no error" msgstr "没有错误" #: ../src/dfb/fontmgr.cpp:174 #, c-format msgid "no fonts found in %s, using builtin font" msgstr "%s中字体为找到,将使用内置字体" #: ../src/html/helpdata.cpp:655 msgid "noname" msgstr "未名" #: ../src/common/datetimefmt.cpp:2091 msgid "noon" msgstr "中午" #: ../src/richtext/richtextstyles.cpp:779 msgid "normal" msgstr "正常" #: ../src/gtk/print.cpp:1218 ../src/gtk/print.cpp:1323 msgid "not implemented" msgstr "为实现" #: ../src/common/cmdline.cpp:1315 msgid "num" msgstr "num" #: ../src/common/xtixml.cpp:259 msgid "objects cannot have XML Text Nodes" msgstr "对象不能有 XML 文本节点" #: ../src/html/chm.cpp:339 msgid "out of memory" msgstr "内存耗尽" #: ../src/richtext/richtextsizepage.cpp:340 #: ../src/richtext/richtextsizepage.cpp:374 #: ../src/richtext/richtextsizepage.cpp:401 #: ../src/richtext/richtextsizepage.cpp:428 #: ../src/richtext/richtextsizepage.cpp:455 #: ../src/richtext/richtextsizepage.cpp:482 #: ../src/richtext/richtextsizepage.cpp:556 #: ../src/richtext/richtextsizepage.cpp:591 #: ../src/richtext/richtextsizepage.cpp:626 #: ../src/richtext/richtextsizepage.cpp:661 msgid "percent" msgstr "百分比" #: ../src/common/debugrpt.cpp:519 msgid "process context description" msgstr "进程上下文描述" #: ../src/richtext/richtextfontpage.cpp:186 #: ../src/richtext/richtextfontpage.cpp:189 msgid "pt" msgstr "点" #: ../src/richtext/richtextfontpage.cpp:187 #: ../src/richtext/richtextborderspage.cpp:279 #: ../src/richtext/richtextborderspage.cpp:281 #: ../src/richtext/richtextborderspage.cpp:282 #: ../src/richtext/richtextborderspage.cpp:309 #: ../src/richtext/richtextborderspage.cpp:311 #: ../src/richtext/richtextborderspage.cpp:312 #: ../src/richtext/richtextborderspage.cpp:339 #: ../src/richtext/richtextborderspage.cpp:341 #: ../src/richtext/richtextborderspage.cpp:342 #: ../src/richtext/richtextborderspage.cpp:369 #: ../src/richtext/richtextborderspage.cpp:371 #: ../src/richtext/richtextborderspage.cpp:372 #: ../src/richtext/richtextborderspage.cpp:423 #: ../src/richtext/richtextborderspage.cpp:425 #: ../src/richtext/richtextborderspage.cpp:426 #: ../src/richtext/richtextborderspage.cpp:453 #: ../src/richtext/richtextborderspage.cpp:455 #: ../src/richtext/richtextborderspage.cpp:456 #: ../src/richtext/richtextborderspage.cpp:483 #: ../src/richtext/richtextborderspage.cpp:485 #: ../src/richtext/richtextborderspage.cpp:486 #: ../src/richtext/richtextborderspage.cpp:513 #: ../src/richtext/richtextborderspage.cpp:515 #: ../src/richtext/richtextborderspage.cpp:516 #: ../src/richtext/richtextmarginspage.cpp:201 #: ../src/richtext/richtextmarginspage.cpp:203 #: ../src/richtext/richtextmarginspage.cpp:204 #: ../src/richtext/richtextmarginspage.cpp:226 #: ../src/richtext/richtextmarginspage.cpp:228 #: ../src/richtext/richtextmarginspage.cpp:229 #: ../src/richtext/richtextmarginspage.cpp:249 #: ../src/richtext/richtextmarginspage.cpp:251 #: ../src/richtext/richtextmarginspage.cpp:252 #: ../src/richtext/richtextmarginspage.cpp:274 #: ../src/richtext/richtextmarginspage.cpp:276 #: ../src/richtext/richtextmarginspage.cpp:277 #: ../src/richtext/richtextmarginspage.cpp:315 #: ../src/richtext/richtextmarginspage.cpp:317 #: ../src/richtext/richtextmarginspage.cpp:318 #: ../src/richtext/richtextmarginspage.cpp:340 #: ../src/richtext/richtextmarginspage.cpp:342 #: ../src/richtext/richtextmarginspage.cpp:343 #: ../src/richtext/richtextmarginspage.cpp:363 #: ../src/richtext/richtextmarginspage.cpp:365 #: ../src/richtext/richtextmarginspage.cpp:366 #: ../src/richtext/richtextmarginspage.cpp:388 #: ../src/richtext/richtextmarginspage.cpp:390 #: ../src/richtext/richtextmarginspage.cpp:391 #: ../src/richtext/richtextsizepage.cpp:338 #: ../src/richtext/richtextsizepage.cpp:341 #: ../src/richtext/richtextsizepage.cpp:342 #: ../src/richtext/richtextsizepage.cpp:372 #: ../src/richtext/richtextsizepage.cpp:375 #: ../src/richtext/richtextsizepage.cpp:376 #: ../src/richtext/richtextsizepage.cpp:399 #: ../src/richtext/richtextsizepage.cpp:402 #: ../src/richtext/richtextsizepage.cpp:403 #: ../src/richtext/richtextsizepage.cpp:426 #: ../src/richtext/richtextsizepage.cpp:429 #: ../src/richtext/richtextsizepage.cpp:430 #: ../src/richtext/richtextsizepage.cpp:453 #: ../src/richtext/richtextsizepage.cpp:456 #: ../src/richtext/richtextsizepage.cpp:457 #: ../src/richtext/richtextsizepage.cpp:480 #: ../src/richtext/richtextsizepage.cpp:483 #: ../src/richtext/richtextsizepage.cpp:484 #: ../src/richtext/richtextsizepage.cpp:554 #: ../src/richtext/richtextsizepage.cpp:557 #: ../src/richtext/richtextsizepage.cpp:558 #: ../src/richtext/richtextsizepage.cpp:589 #: ../src/richtext/richtextsizepage.cpp:592 #: ../src/richtext/richtextsizepage.cpp:593 #: ../src/richtext/richtextsizepage.cpp:624 #: ../src/richtext/richtextsizepage.cpp:627 #: ../src/richtext/richtextsizepage.cpp:628 #: ../src/richtext/richtextsizepage.cpp:659 #: ../src/richtext/richtextsizepage.cpp:662 #: ../src/richtext/richtextsizepage.cpp:663 msgid "px" msgstr "像素" #: ../src/common/accelcmn.cpp:188 msgid "rawctrl" msgstr "rawctrl" #: ../src/html/chm.cpp:333 msgid "read error" msgstr "读取错误" #: ../src/common/zipstrm.cpp:1882 #, c-format msgid "reading zip stream (entry %s): bad crc" msgstr "读入 zip 流 (条目 %s): crc校验错误" #: ../src/common/zipstrm.cpp:1877 #, c-format msgid "reading zip stream (entry %s): bad length" msgstr "读入 zip 流 (条目 %s): 长度错误" #: ../src/msw/dde.cpp:1162 msgid "reentrancy problem." msgstr "重入问题。" #: ../src/common/datetimefmt.cpp:1920 msgid "second" msgstr "第二" #: ../src/html/chm.cpp:337 msgid "seek error" msgstr "搜索错误" #: ../src/common/datetimefmt.cpp:1935 msgid "seventeenth" msgstr "第十七" #: ../src/common/datetimefmt.cpp:1925 msgid "seventh" msgstr "第七" #: ../src/common/accelcmn.cpp:186 msgid "shift" msgstr "shift" #: ../src/common/appbase.cpp:685 msgid "show this help message" msgstr "显示帮助信息" #: ../src/common/datetimefmt.cpp:1934 msgid "sixteenth" msgstr "第十六" #: ../src/common/datetimefmt.cpp:1924 msgid "sixth" msgstr "第六" #: ../src/common/appcmn.cpp:227 msgid "specify display mode to use (e.g. 640x480-16)" msgstr "指定使用的显示模式 (例如: 640x480-16位色)" #: ../src/common/appcmn.cpp:213 msgid "specify the theme to use" msgstr "指定使用的主题" #: ../src/richtext/richtextbuffer.cpp:8876 msgid "standard/circle" msgstr "标准/圆形" #: ../src/richtext/richtextbuffer.cpp:8877 msgid "standard/circle-outline" msgstr "标准/圆框" #: ../src/richtext/richtextbuffer.cpp:8879 msgid "standard/diamond" msgstr "标准/菱形" #: ../src/richtext/richtextbuffer.cpp:8878 msgid "standard/square" msgstr "标准/方形" #: ../src/richtext/richtextbuffer.cpp:8880 msgid "standard/triangle" msgstr "标准/三角形" #: ../src/common/zipstrm.cpp:1782 msgid "stored file length not in Zip header" msgstr "Zip 头没有已存文件的长度信息" #: ../src/common/cmdline.cpp:1311 msgid "str" msgstr "str" #: ../src/common/fontcmn.cpp:794 ../src/common/fontcmn.cpp:969 msgid "strikethrough" msgstr "删除线" #: ../src/common/tarstrm.cpp:1003 ../src/common/tarstrm.cpp:1025 #: ../src/common/tarstrm.cpp:1507 ../src/common/tarstrm.cpp:1529 msgid "tar entry not open" msgstr "tar标头未打开" #: ../src/common/datetimefmt.cpp:1928 msgid "tenth" msgstr "第十" #: ../src/msw/dde.cpp:1126 msgid "the response to the transaction caused the DDE_FBUSY bit to be set." msgstr "对事件的响应导致 DDE_FBUSY 位被设置。" #: ../src/common/datetimefmt.cpp:1921 msgid "third" msgstr "第三" #: ../src/common/datetimefmt.cpp:1931 msgid "thirteenth" msgstr "第十三" #: ../src/common/datetimefmt.cpp:1725 msgid "today" msgstr "今天" #: ../src/common/datetimefmt.cpp:1727 msgid "tomorrow" msgstr "明天" #: ../src/common/fileconf.cpp:1979 #, c-format msgid "trailing backslash ignored in '%s'" msgstr "'%s'尾部的斜线将被忽略" #: ../src/gtk/aboutdlg.cpp:218 msgid "translator-credits" msgstr "翻译人员" #: ../src/common/datetimefmt.cpp:1930 msgid "twelfth" msgstr "第十二" #: ../src/common/datetimefmt.cpp:1938 msgid "twentieth" msgstr "第二十" #: ../src/common/fontcmn.cpp:789 ../src/common/fontcmn.cpp:965 msgid "underlined" msgstr "下划线" #: ../src/common/fileconf.cpp:2014 #, c-format msgid "unexpected \" at position %d in '%s'." msgstr "例外的 \" 在位置 %d (位于 '%s')." #: ../src/common/tarstrm.cpp:1045 msgid "unexpected end of file" msgstr "意外到达文件结尾" #: ../src/generic/progdlgg.cpp:399 ../src/common/tarstrm.cpp:371 #: ../src/common/tarstrm.cpp:394 ../src/common/tarstrm.cpp:425 msgid "unknown" msgstr "未知" #: ../src/common/xtixml.cpp:253 #, c-format msgid "unknown class %s" msgstr "未知类 %s" #: ../src/common/regex.cpp:261 ../src/html/chm.cpp:351 msgid "unknown error" msgstr "未知错误" #: ../src/msw/dialup.cpp:490 #, c-format msgid "unknown error (error code %08x)." msgstr "未知错误 (错误号 %08x)。" #: ../src/msw/wince/filefnwce.cpp:172 msgid "unknown seek origin" msgstr "未知搜索原点" #: ../src/common/fmapbase.cpp:834 #, c-format msgid "unknown-%d" msgstr "未知-%d" #: ../src/common/docview.cpp:507 msgid "unnamed" msgstr "未命名" #: ../src/common/docview.cpp:1606 #, c-format msgid "unnamed%d" msgstr "未命名 %d" #: ../src/common/zipstrm.cpp:1796 ../src/common/zipstrm.cpp:2184 msgid "unsupported Zip compression method" msgstr "不支持的 Zip 压缩方法" #: ../src/common/translation.cpp:1883 #, c-format msgid "using catalog '%s' from '%s'." msgstr "使用目录 '%s' 从 '%s'。" #: ../src/html/chm.cpp:335 msgid "write error" msgstr "写错误" #: ../src/common/time.cpp:318 msgid "wxGetTimeOfDay failed." msgstr "wxGetTimeOfDay 失败。" #: ../src/gtk/print.cpp:987 msgid "wxPrintout::GetPageInfo gives a null maxPage." msgstr "wxPrintout::GetPageInfo给出无效maxPage" #: ../src/osx/carbon/dataview.cpp:1303 msgid "wxWidget control pointer is not a data view pointer" msgstr "wxWidget控制指针不是一个数据视图指针" #: ../src/osx/carbon/dataview.cpp:907 msgid "wxWidget's control not initialized." msgstr "wxWidgets 的控件未初始化。" #: ../src/motif/app.cpp:245 #, c-format msgid "wxWidgets could not open display for '%s': exiting." msgstr "wxWidgets 无法为 '%s' 打开显示设备: 退出。" #: ../src/x11/app.cpp:164 msgid "wxWidgets could not open display. Exiting." msgstr "wxWidgets 无法打开显示设备。退出。" #: ../src/richtext/richtextsymboldlg.cpp:434 msgid "xxxx" msgstr "xxxx" #: ../src/common/datetimefmt.cpp:1726 msgid "yesterday" msgstr "昨天" #: ../src/common/zstream.cpp:251 ../src/common/zstream.cpp:426 #, c-format msgid "zlib error %d" msgstr "zlib 错误 %d" #: ../src/richtext/richtextliststylepage.cpp:496 #: ../src/richtext/richtextbulletspage.cpp:301 msgid "~" msgstr "~" #~ msgid "Print preview" #~ msgstr "打印预览" #~ msgid "'" #~ msgstr "'" #~ msgid "1" #~ msgstr "1" #~ msgid "10" #~ msgstr "10" #~ msgid "3" #~ msgstr "3" #~ msgid "4" #~ msgstr "4" #~ msgid "5" #~ msgstr "5" #~ msgid "6" #~ msgstr "6" #~ msgid "7" #~ msgstr "7" #~ msgid "8" #~ msgstr "8" #~ msgid "9" #~ msgstr "9" #~ msgid "Can't monitor non-existent path \"%s\" for changes." #~ msgstr "无法监视不存在路径 \"%s\" 的更新。" #~ msgid "File system containing watched object was unmounted" #~ msgstr "包含监控对象的文件系统已被卸载" #~ msgid "&Preview..." #~ msgstr "预览(&P)..." #~ msgid "Passing an unkown object to GetObject" #~ msgstr "传递一个未知对象给GetObject" #~ msgid "Preview..." #~ msgstr "预览..." #~ msgid "&Save..." #~ msgstr "保存(&S)..." #~ msgid "About " #~ msgstr "关于" #~ msgid "All files (*.*)|*" #~ msgstr "所有文件 (*.*)|*" #~ msgid "Cannot initialize SciTech MGL!" #~ msgstr "无法初始化 SciTech MGL!" #~ msgid "Cannot initialize display." #~ msgstr "无法初始化显示。" #~ msgid "Cannot start thread: error writing TLS" #~ msgstr "无法启动线程: 写 TLS 错误" #~ msgid "Close\tAlt-F4" #~ msgstr "关闭\tAlt-F4" #~ msgid "Couldn't create cursor." #~ msgstr "无法创建光标。" #~ msgid "Directory '%s' doesn't exist!" #~ msgstr "目录 '%s'不存在!" #~ msgid "File %s does not exist." #~ msgstr "文件 %s 不存在。" #~ msgid "Mode %ix%i-%i not available." #~ msgstr "显示模式 %ix%i-%i位色 不支持。" #~ msgid "Paper Size" #~ msgstr "纸张大小" #~ msgid "%s" #~ msgstr "%s" #~ msgid "&Goto..." #~ msgstr "跳转(&G)..." #~ msgid "<<" #~ msgstr "<<" #~ msgid ">>" #~ msgstr ">>" #~ msgid ">>|" #~ msgstr ">>|" #~ msgid "Can't check image format of file '%s': file does not exist." #~ msgstr "不能检查文件格式 '%s': 文件不存在." #~ msgid "Can't load image from file '%s': file does not exist." #~ msgstr "不能从文件 '%s'中装入图像: 文件不存在." #~ msgid "Cannot open file '%s'." #~ msgstr "不能打开文件 '%s'." #, fuzzy #~ msgid "Click to cancel this window." #~ msgstr "关闭此窗口" #, fuzzy #~ msgid "Click to confirm your selection." #~ msgstr "点击确认字体选择." #, fuzzy #~ msgid "Column could not be added to native control." #~ msgstr "文件不能被装载." #~ msgid "Failed to create a status bar." #~ msgstr "创建状态条失败." #~ msgid "Goto Page" #~ msgstr "跳转页面" #~ msgid "I64" #~ msgstr "I64" #~ msgid "Internal error, illegal wxCustomTypeInfo" #~ msgstr "整数错误, 非法的wxCustomTypeInfo" #, fuzzy #~ msgid "Model pointer not initialized." #~ msgstr "不能初始化显示." #, fuzzy #~ msgid "No image handler for type %ld defined." #~ msgstr "没有类型 %d 的图像处理器." #, fuzzy #~ msgid "Owner not initialized." #~ msgstr "不能初始化显示." #, fuzzy #~ msgid "Passed item is invalid." #~ msgstr "'%s' 是无效的" #~ msgid "Passing a already registered object to SetObjectName" #~ msgstr "传递一个已注册的对象给SetObjectName" #~ msgid "" #~ "Streaming delegates for not already streamed objects not yet supported" #~ msgstr "不支持针对尚未形成流的对象的流委派" #, fuzzy #~ msgid "The file '%s' doesn't exist and couldn't be opened." #~ msgstr "" #~ "文件 '%s' 不存在,不能被打开.\n" #~ "已从最近使用的文件列表(MRU)中移去." #~ msgid "The path '%s' contains too many \"..\"!" #~ msgstr "路径 '%s' 包含了过多的\"..\"!" #, fuzzy #~ msgid "To be deleted item is invalid." #~ msgstr "'%s' 是无效的" #~ msgid "Update" #~ msgstr "更新" #~ msgid "Warning" #~ msgstr "警告" #~ msgid "Windows 2000 (build %lu" #~ msgstr "Windows 2000 (build %lu" #~ msgid "delegate has no type info" #~ msgstr "委派没有类型信息" #~ msgid "|<<" #~ msgstr "|<<" #~ msgid "Archive doesnt contain #SYSTEM file" #~ msgstr "存档里没有包含 #SYSTEM 文件" #~ msgid "Cannot convert dialog units: dialog unknown." #~ msgstr "不能转换对话框单元: 未知的对话框." #~ msgid "Cannot convert from the charset '%s'!" #~ msgstr "不能从字符集 '%s' 转换!" #~ msgid "Cannot find container for unknown control '%s'." #~ msgstr "找不到可以对应于未知控件 '%s' 的容器." #~ msgid "Cannot find font node '%s'." #~ msgstr "找不到字体节点 '%s'." #~ msgid "Cannot parse coordinates from '%s'." #~ msgstr "不能从 '%s'中粘贴坐标." #~ msgid "Cannot parse dimension from '%s'." #~ msgstr "不能从 '%s'中解析尺寸." #~ msgid "Cant create the thread event queue" #~ msgstr "不能创建线程事件队列" #~ msgid "Could not unlock mutex" #~ msgstr "不能释放互斥体" #~ msgid "Error while waiting on semaphore" #~ msgstr "等待信号量时出错" #, fuzzy #~ msgid "Failed to connect to session manager: %s" #~ msgstr "到 %s 的拨号连接失败: %s" #~ msgid "Failed to register OpenGL window class." #~ msgstr "不能注册 OpenGL窗口类." #~ msgid "Fatal error" #~ msgstr "致命错误" #~ msgid "Fatal error: " #~ msgstr "致命错误: " #, fuzzy #~ msgid "Help : %s" #~ msgstr "帮助: %s" #~ msgid "Invalid XRC resource '%s': doesn't have root node 'resource'." #~ msgstr "无效的XRC资源 '%s': 根节点'resource'不存在." #~ msgid "No handler found for XML node '%s', class '%s'!" #~ msgstr "没有找到XML节点 '%s', 类 '%s' 的处理器!" #~ msgid "Program aborted." #~ msgstr "程序终止." #~ msgid "Referenced object node with ref=\"%s\" not found!" #~ msgstr "ref=\"%s\"的引用对象节点不存在!" #~ msgid "Resource files must have same version number!" #~ msgstr "资源文件必须有相同的版本号!" #, fuzzy #~ msgid "Search!" #~ msgstr "搜索" #~ msgid "Sorry, could not open this file for saving." #~ msgstr "对不起, 不能打开文件供保存." #~ msgid "Sorry, could not save this file." #~ msgstr "对不起, 不能保存文件." #~ msgid "Sorry, print preview needs a printer to be installed." #~ msgstr "对不起, 需要先安装打印机才能创建打印预览." #~ msgid "Status: " #~ msgstr "状态: " #~ msgid "Subclass '%s' not found for resource '%s', not subclassing!" #~ msgstr "子类 '%s' 在资源 '%s'中不存在, 无法子类化!" #~ msgid "TIFF library error." #~ msgstr "TIFF库错误." #~ msgid "TIFF library warning." #~ msgstr "TIFF库警告." #~ msgid "Trying to solve a NULL hostname: giving up" #~ msgstr "试图解析 NULL 主机名: 放弃" #~ msgid "Unknown style flag " #~ msgstr "未知的风格标志 " #~ msgid "XRC resource '%s' (class '%s') not found!" #~ msgstr "没有找到XRC资源 '%s' (类 '%s')!" #, fuzzy #~ msgid "XRC resource: Cannot create animation from '%s'." #~ msgstr "XRC资源: 不能从 '%s'创建位图." #~ msgid "XRC resource: Cannot create bitmap from '%s'." #~ msgstr "XRC资源: 不能从 '%s'创建位图." #, fuzzy #~ msgid "" #~ "XRC resource: Incorrect colour specification '%s' for attribute '%s'." #~ msgstr "XRC资源: 错误的颜色 '%s' 对于 属性 '%s'." #~ msgid "[EMPTY]" #~ msgstr "[空]" #~ msgid "catalog file for domain '%s' not found." #~ msgstr "找不到域 '%s'的目录文件." #, fuzzy #~ msgid "encoding %i" #~ msgstr "编码 %s" #~ msgid "looking for catalog '%s' in path '%s'." #~ msgstr "查找目录 '%s' 在路径 '%s'下." #~ msgid "wxSocket: invalid signature in ReadMsg." #~ msgstr "wxSocket: ReadMsg中无效的签名." #~ msgid "wxSocket: unknown event!." #~ msgstr "wxSocket: 未知事件!." #~ msgid "\t%s: %s\n" #~ msgstr "\t%s: %s\n" #, fuzzy #~ msgid " Couldn't create the UnicodeConverter" #~ msgstr "不能创建计时器" #~ msgid "#define %s must be an integer." #~ msgstr "#所定义的 %s 必须是整数." #~ msgid "%s not a bitmap resource specification." #~ msgstr "%s 不是位图资源." #~ msgid "%s not an icon resource specification." #~ msgstr "%s 不是图标资源." #~ msgid "%s: ill-formed resource file syntax." #~ msgstr "%s: 不良资源文件语法." #~ msgid "&Open" #~ msgstr "打开(&O)" #~ msgid "&Print" #~ msgstr "打印(&P)" #~ msgid "*** A debug report has been generated\n" #~ msgstr "*** 生成了一份调试报告\n" #~ msgid "*** It can be found in \"%s\"\n" #~ msgstr "*** 可在此找到: \"%s\"\n" #~ msgid "" #~ ", expected static, #include or #define\n" #~ "while parsing resource." #~ msgstr "" #~ ", 在对资源进行语法分析时\n" #~ ", 期望如下关键字 static, #include 或 #define ." #~ msgid "Bitmap resource specification %s not found." #~ msgstr "找不到位图规格 %s." #~ msgid "" #~ "Could not resolve control class or id '%s'. Use (non-zero) integer " #~ "instead\n" #~ " or provide #define (see manual for caveats)" #~ msgstr "" #~ "不能解析控件类或者id '%s'. 用(非零)整数代替\n" #~ "或 提供 #define (详细信息见手册)" #~ msgid "" #~ "Could not resolve menu id '%s'. Use (non-zero) integer instead\n" #~ "or provide #define (see manual for caveats)" #~ msgstr "" #~ "不能解析菜单id '%s'. 用(非零)整数代替\n" #~ "或 提供 #define (详细信息见手册)" #, fuzzy #~ msgid "Couldn't end the context on the overlay window" #~ msgstr "不能获得当前线程指针" #~ msgid "Expected '*' while parsing resource." #~ msgstr "解析资源时期待出现 '*' ." #~ msgid "Expected '=' while parsing resource." #~ msgstr "解析资源时期待出现 '='." #~ msgid "Expected 'char' while parsing resource." #~ msgstr "解析资源时期待遇到 'char' ." #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "查找XBM资源 %s失败.\n" #~ "没有使用wxResourceLoadBitmapData?" #~ msgid "" #~ "Failed to find XBM resource %s.\n" #~ "Forgot to use wxResourceLoadIconData?" #~ msgstr "" #~ "查找XBM资源%s失败.\n" #~ "没有使用wxResourceLoadIconData?" #~ msgid "" #~ "Failed to find XPM resource %s.\n" #~ "Forgot to use wxResourceLoadBitmapData?" #~ msgstr "" #~ "查找XPM资源 %s失败.\n" #~ "没有使用wxResourceLoadBitmapData?" #~ msgid "Failed to get clipboard data." #~ msgstr "获取剪贴板数据失败." #~ msgid "Failed to load shared library '%s' Error '%s'" #~ msgstr "不能装载共享库 '%s'. 错误信息: '%s'" #~ msgid "Found " #~ msgstr "找到 " #~ msgid "Icon resource specification %s not found." #~ msgstr "没有找到图标资源规范 %s ." #~ msgid "Ill-formed resource file syntax." #~ msgstr "不良的资源文件语法." #~ msgid "Long Conversions not supported" #~ msgstr "不支持长转换" #~ msgid "No XPM icon facility available!" #~ msgstr "没有可用的XPM图标设备!" #~ msgid "Option '%s' requires a value, '=' expected." #~ msgstr "选项 '%s' 要求一个值, 期望 '='." #, fuzzy #~ msgid "Select all" #~ msgstr "全部选择(&A)" #~ msgid "String conversions not supported" #~ msgstr "不支持字符串装换" #~ msgid "Unexpected end of file while parsing resource." #~ msgstr "在解析资源时意外到达文件结尾." #~ msgid "Unrecognized style %s while parsing resource." #~ msgstr "解析资源时遇到无法识别的风格 %s." #~ msgid "Video Output" #~ msgstr "视频输出" #~ msgid "Warning: attempt to remove HTML tag handler from empty stack." #~ msgstr "警告: 试图从空栈中移去HTML标签处理器." #~ msgid "establish" #~ msgstr "建立" #~ msgid "initiate" #~ msgstr "初始化" #~ msgid "invalid eof() return value." #~ msgstr "无效的eof()返回值." #~ msgid "unknown line terminator" #~ msgstr "未知行终止符" #~ msgid "writing" #~ msgstr "正在写入" #~ msgid "." #~ msgstr "." #~ msgid "Cannot open URL '%s'" #~ msgstr "不能打开 URL '%s'" #~ msgid "Error " #~ msgstr "错误 " #~ msgid "Failed to create directory %s/.gnome." #~ msgstr "创建目录 %s/.gnome 失败." #~ msgid "Failed to create directory %s/mime-info." #~ msgstr "创建目录 %s/.mime-info 失败." #~ msgid "MP Thread Support is not available on this System" #~ msgstr "此系统不提供MP线程支持." #~ msgid "Mailcap file %s, line %d: incomplete entry ignored." #~ msgstr "Mailcap 文件 %s, 行 %d: 不完整条目被忽略." #~ msgid "Mime.types file %s, line %d: unterminated quoted string." #~ msgstr "Mime.类型文件 %s, 行 %d: 没有结束符号的引用字符串." #~ msgid "Unknown field in file %s, line %d: '%s'." #~ msgstr "在文件 %s, 行 %d是未知字段: '%s'." #~ msgid "bold " #~ msgstr "粗体 " #~ msgid "can't query for GUI plugins name in console applications" #~ msgstr "无法在控制台程序里查询GUI插件" #, fuzzy #~ msgid "light " #~ msgstr "细 " #~ msgid "underlined " #~ msgstr "下划线 " #~ msgid "unsupported zip archive" #~ msgstr "不支持的zip存档" #~ msgid "" #~ "Failed to get stack backtrace:\n" #~ "%s" #~ msgstr "" #~ "不能获取堆栈的回溯路径:\n" #~ " %s" #~ msgid "Loading Grey Ascii PNM image is not yet implemented." #~ msgstr "装入灰度 Ascii PNM图像功能还没有实现." #~ msgid "Loading Grey Raw PNM image is not yet implemented." #~ msgstr "装入灰度 Raw PNM图像功能还没有实现." ginkgocadx-3.8.7/cadxcore/main/000077500000000000000000000000001314736454600164005ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/controllers/000077500000000000000000000000001314736454600207465ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/controllers/anonusagestats.cpp000066400000000000000000000036201314736454600245120ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "anonusagestats.h" //singleton GNC::GCS::AnonUsageStats* GNC::GCS::AnonUsageStats::m_pInstance = NULL; GNC::GCS::AnonUsageStats * GNC::GCS::AnonUsageStats::Instance() { if (m_pInstance == NULL) { m_pInstance = new AnonUsageStats(); } return m_pInstance; } void GNC::GCS::AnonUsageStats::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } // GNC::GCS::IAnonUsageStatsDelegate::~IAnonUsageStatsDelegate() { } GNC::GCS::AnonUsageStats::AnonUsageStats() { } GNC::GCS::AnonUsageStats::~AnonUsageStats() { } void GNC::GCS::AnonUsageStats::log(const std::string& operation, const std::string& description) { try { if (Delegate.IsValid()) { Delegate->log(operation, description); } } catch(...) { } } void GNC::GCS::AnonUsageStats::setDelegate(const GNC::GCS::Ptr& delegate) { Delegate = delegate; } void GNC::GCS::AnonUsageStats::resetSettings() { if (Delegate.IsValid()) { Delegate->resetSettings(); } } ginkgocadx-3.8.7/cadxcore/main/controllers/anonusagestats.h000066400000000000000000000036661314736454600241710ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include //macro definition #define LOG_STAT(action) \ { \ GNC::GCS::AnonUsageStats* cA = GNC::GCS::AnonUsageStats::Instance(); \ if (cA != NULL) { \ cA->log(action);\ } \ } #define LOG_STAT_WITH_DESCRIPTION(action, description) \ { \ GNC::GCS::AnonUsageStats* cA = GNC::GCS::AnonUsageStats::Instance(); \ if (cA != NULL) { \ cA->log(action, description);\ } \ } namespace GNC { namespace GCS { class IAnonUsageStatsDelegate { public: virtual ~IAnonUsageStatsDelegate(); virtual void log(const std::string& operation, const std::string& description) = 0; virtual void resetSettings() = 0; }; class AnonUsageStats { public: static AnonUsageStats *Instance(); static void FreeInstance(); void log(const std::string& operation, const std::string& description = ""); void setDelegate(const GNC::GCS::Ptr& deleg); void resetSettings(); protected: AnonUsageStats(); ~AnonUsageStats(); GNC::GCS::Ptr Delegate; //singleton static AnonUsageStats* m_pInstance; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/anonymizationcontroller.cpp000066400000000000000000000076601314736454600264660ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "anonymizationcontroller.h" #include "controladorlog.h" #include "configurationcontroller.h" #include #include namespace GNC { namespace GCS { AnonymizationController::TAnonymizationMap AnonymizationController::GetAnonymizationMap() { AnonymizationController::TAnonymizationMap map; std::string propertie; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Anonymization", "ConfidentialityProfile", propertie); if (propertie.empty()) { map["0008|0014"] = TA_REPLACE_DEFAULT; map["0008|0018"] = TA_CREATE_NEW; map["0008|0050"] = TA_CREATE_NEW; map["0008|0080"] = TA_REPLACE_DEFAULT; map["0008|0081"] = TA_REPLACE_DEFAULT; map["0008|0090"] = TA_REPLACE_DEFAULT; map["0008|0092"] = TA_REPLACE_DEFAULT; map["0008|0094"] = TA_REPLACE_DEFAULT; map["0008|1010"] = TA_REPLACE_DEFAULT; map["0008|1030"] = TA_REPLACE_DEFAULT; map["0008|103e"] = TA_REPLACE_DEFAULT; map["0008|1040"] = TA_REPLACE_DEFAULT; map["0008|1048"] = TA_REPLACE_DEFAULT; map["0008|1060"] = TA_REPLACE_DEFAULT; map["0008|1070"] = TA_REPLACE_DEFAULT; map["0008|1080"] = TA_REPLACE_DEFAULT; map["0008|1155"] = TA_REPLACE_DEFAULT; map["0008|2111"] = TA_REPLACE_DEFAULT; map["0010|0010"] = TA_REPLACE_DEFAULT; map["0010|0020"] = TA_CREATE_NEW; map["0010|0030"] = TA_DELETE; map["0010|0032"] = TA_DELETE; map["0010|0040"] = TA_DELETE; map["0010|1000"] = TA_DELETE; map["0010|1001"] = TA_DELETE; map["0010|1010"] = TA_DELETE; map["0010|1020"] = TA_DELETE; map["0010|1030"] = TA_DELETE; map["0010|1090"] = TA_DELETE; map["0010|2160"] = TA_DELETE; map["0010|2180"] = TA_DELETE; map["0010|21b0"] = TA_DELETE; map["0010|4000"] = TA_DELETE; map["0018|1000"] = TA_DELETE; map["0018|1030"] = TA_DELETE; map["0020|000d"] = TA_CREATE_NEW; map["0020|000e"] = TA_CREATE_NEW; map["0020|0010"] = TA_REPLACE_DEFAULT; map["0020|0052"] = TA_CREATE_NEW; map["0020|0200"] = TA_CREATE_NEW; map["0020|4000"] = TA_REPLACE_DEFAULT; map["0040|0275"] = TA_DELETE; map["0040|a124"] = TA_CREATE_NEW; map["0040|a730"] = TA_DELETE; map["0088|0140"] = TA_CREATE_NEW; map["3006|0024"] = TA_CREATE_NEW; map["3006|00c2"] = TA_CREATE_NEW; } return map; } void AnonymizationController::ResetDefaultValues() { GNC::GCS::ConfigurationController::Instance()->deleteEntryUser("/GinkgoCore/Anonymization", "ConfidentialityProfile"); } void AnonymizationController::SaveAnonymizationMap(const AnonymizationController::TAnonymizationMap& /*map*/) { } } } ginkgocadx-3.8.7/cadxcore/main/controllers/anonymizationcontroller.h000066400000000000000000000024041314736454600261220ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include namespace GNC { namespace GCS { class EXTAPI AnonymizationController { public: typedef enum TAction { TA_DELETE, TA_REPLACE_DEFAULT, TA_CREATE_NEW } TAction; typedef std::map TAnonymizationMap; static TAnonymizationMap GetAnonymizationMap(); static void ResetDefaultValues(); static void SaveAnonymizationMap(const TAnonymizationMap& map); }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/autocleaningcontroller.cpp000066400000000000000000000076131314736454600262360ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include "autocleaningcontroller.h" #include #include
    #include #include
    //this timer is to controlate user inactivity namespace GNC { namespace GCS { class TimerAutocleaning: public wxTimer { public: //first shot 30s TimerAutocleaning():wxTimer() { //Start(30000, true); Start(1000, true); } ~TimerAutocleaning() { GNC::CommandController::Instance()->AbortarComandosDeOwner(this); } virtual void Notify() { //next shot one each 10 minutes... Start(10*60*1000, true); int acquisitionOlder,hdSpace,dicomDirSize; GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/Station/CleanDicomDir", "AcquisitionOlderThan", acquisitionOlder, -1); GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/Station/CleanDicomDir", "HDFreeSpace", hdSpace, -1); GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/Station/CleanDicomDir", "DicomDirSize", dicomDirSize, -1); if (acquisitionOlder != -1 || hdSpace != -1 || dicomDirSize != -1) { //launch autocleaning command... GADAPI::AutoCleaningCommandParameters* pParams = new GADAPI::AutoCleaningCommandParameters(acquisitionOlder, hdSpace, dicomDirSize); GADAPI::AutoCleaningCommand* pCmd = new GADAPI::AutoCleaningCommand(pParams); GNC::CommandController::Instance()->ProcessAsync("Autocleaning", pCmd, this); } } virtual void Reset() { if (IsRunning()) { Stop(); } Start(1000, true); } }; } } // //region "Patron singleton" GNC::GCS::AutoCleaningController* GNC::GCS::AutoCleaningController::m_pInstance = 0; GNC::GCS::AutoCleaningController::AutoCleaningController() { m_pTimerAutocleaning = new TimerAutocleaning; } GNC::GCS::AutoCleaningController::~AutoCleaningController() { if (m_pTimerAutocleaning != NULL) { if (m_pTimerAutocleaning->IsRunning()) { m_pTimerAutocleaning->Stop(); } delete m_pTimerAutocleaning; m_pTimerAutocleaning = NULL; } } GNC::GCS::AutoCleaningController* GNC::GCS::AutoCleaningController::Instance() { if (m_pInstance == NULL) { m_pInstance = new GNC::GCS::AutoCleaningController(); } return m_pInstance; } void GNC::GCS::AutoCleaningController::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } void GNC::GCS::AutoCleaningController::Reset() { if (m_pTimerAutocleaning != NULL) { m_pTimerAutocleaning->Reset(); } } //endregion ginkgocadx-3.8.7/cadxcore/main/controllers/autocleaningcontroller.h000066400000000000000000000025111314736454600256730ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include namespace GNC { namespace GCS { class TimerAutocleaning; class EXTAPI AutoCleaningController { //region "Patron singleton" public: static AutoCleaningController* Instance(); static void FreeInstance(); virtual void Reset(); //endregion //region "Interfaz de controlador de vistas" protected: TimerAutocleaning* m_pTimerAutocleaning; static AutoCleaningController* m_pInstance; AutoCleaningController(); virtual ~AutoCleaningController(); }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/commandcontroller.cpp000066400000000000000000001136231314736454600252020ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include
    #include #include #include "commandcontroller.h" #include
    //#undef GTRACE //#define GTRACE(expr) std::cout << expr << std::endl /** POLL Period in ms **/ #define POLL_PERIOD 100 /** Thread pool size **/ #define THREAD_POOL_SIZE 1 namespace GNC { class ThreadPool : public GNC::GCS::ILockable { public: ThreadPool() : m_Shutdown(false) { for (size_t i = 0; i < THREAD_POOL_SIZE; ++i) { new GNC::CommandLauncher(this); } } /** * Borrows a launcher from the pool **/ GNC::CommandLauncher* Borrow() { while (true) { { GNC::GCS::ILocker lock(this); if (!m_Shutdown) { if (!available.empty()) { GNC::CommandLauncher* pCmd = available.front(); available.pop_front(); working.insert(pCmd); return pCmd; } else { new GNC::CommandLauncher(this); } } else { return NULL; } } wxThread::Sleep(POLL_PERIOD); // Wait for completion } return NULL; } /** * Returns a launcher to the pool **/ void Return(GNC::CommandLauncher* pCmd) { pCmd->SetCommand(NULL); GNC::GCS::ILocker lock(this); working.erase(pCmd); available.push_back(pCmd); } void Shutdown() { GNC::GCS::ILocker lock(this); m_Shutdown = true; for (std::set::iterator it = working.begin(); it != working.end(); ++it) { (*it)->m_Shutdown = true; } working.clear(); for (std::deque::iterator it = available.begin(); it != available.end(); ++it) { (*it)->m_Shutdown = true; (*it)->m_pParker->Post(); } available.clear(); } friend class CommandLauncher; GNC::GCS::ILockable poolLock; bool m_Shutdown; std::deque available; std::set working; }; } static GNC::ThreadPool* threadPool = NULL; GNC::CommandLauncher::CommandLauncher(GNC::ThreadPool* pool) { //std::cout << "CommandLauncher::CommandLauncher()" << this << std::endl; m_idThreadGinkgo = 0; m_pComando = NULL; m_Abortar = false; m_Shutdown = false; m_pPool = pool; m_pParker = new wxSemaphore(0); Create(); Run(); GNC::GCS::Threading::SetThreadName( GetId(), "Ginkgo Thread"); } GNC::CommandLauncher::~CommandLauncher() { } GNC::GCS::IComando* GNC::CommandLauncher::GetCommand() { return m_pComando; } void GNC::CommandLauncher::SetCommand(GNC::GCS::IComando* pCmd) { if (m_pComando != NULL) { //std::cout << "Error: Already has a command" << std::endl; } if (pCmd != NULL) { pCmd->SetNotificadorProgreso(this); } m_pComando = pCmd; m_Abortar = false; } void GNC::CommandLauncher::Park() { wxSemaError ret = wxSEMA_TIMEOUT; m_pPool->Return(this); while (!m_Shutdown && !m_Abortar && ret == wxSEMA_TIMEOUT) { ret = m_pParker->WaitTimeout(POLL_PERIOD); } } void GNC::CommandLauncher::UnPark() { m_pParker->Post(); } void* GNC::CommandLauncher::Entry() { while (!m_Shutdown) { Park(); if (m_Shutdown) { return NULL; } this->IniciarUnlocker(); //GNC::GCS::Threading::SetThreadName( GetId(), m_pComando->GetName()); if (m_pComando != NULL && !m_pComando->EstaAbortado() && m_Dependencias.Size() > 0) { while (m_Dependencias.NotEmpty()&& !m_pComando->EstaAbortado()) { if (!m_Dependencias.Wait(POLL_PERIOD)) { //std::cout << "Timeout de espera para " << m_pComando->GetName() << "(" << m_idThreadGinkgo << ") " << m_Dependencias.Size() << " pendientes" << std::endl; m_Dependencias.TerminarPendientes(); } } } wxWindow* w = GNC::GCS::IEntorno::Instance()->GetVentanaPrincipal(); if (m_pComando != NULL && !m_pComando->EstaAbortado()) { if (w != NULL) { EventoProgreso ce(EventoProgreso::ComandoIniciado, m_idThreadGinkgo); w->GetEventHandler()->AddPendingEvent(ce); } try { // don't add the lock for GNC::CommandController::Instance() here, // even though running tread sanitizer might suggest that this is a // good idea m_pComando->Execute(); } catch (GNC::GCS::CommandControllerException& ) { //comando abortado } catch (const std::bad_alloc& ) { //comando ha cascado por un bad alloc } catch (const std::exception& ) { //comando abortado } catch (...) { LOG_ERROR("CommandLauncher", "Error interno ejecutando el comando con id = " << m_pComando->GetId()); } OnExit(); } else if (m_pComando != NULL && m_pComando->EstaAbortado()) { //aborted commands have to signal to free their dependencies OnExit(); } } return NULL; } bool GNC::CommandLauncher::RecalcularDependencias() { //revisamos la lista de "aborta si" ya que en ese caso no arrancamos if(m_Abortar) { return false; } GNC::GCS::IPersistentCommand* pPersistent = dynamic_cast(m_pComando); //GTRACE(">> comprobando el ''AbortaSi'' y el ''CancelaA'' : " << m_idThreadGinkgo); GNC::CommandController::MapaComandos* mapaComandosLanzados = &(GNC::CommandController::Instance()->m_ComandosLanzados); for(GNC::CommandController::MapaComandos::iterator it = mapaComandosLanzados->begin(); it!= mapaComandosLanzados->end(); ++it) { CommandLauncher* pLauncher = (*it).second; if (pLauncher == this) { continue; } for(GNC::GCS::IComando::TipoListaIdComandos::iterator it1 = m_pComando->m_Conflictos.begin(); it1 != m_pComando->m_Conflictos.end(); ++it1) { if(pLauncher->GetCommand() != NULL && pLauncher->GetCommand()->GetId() == (*it1) && pLauncher->m_idThreadGinkgo != m_idThreadGinkgo) { return false; } } //cancel persistent commands with same idBBDD if (pPersistent != NULL) { GNC::GCS::IPersistentCommand* pPersistent2 = dynamic_cast(pLauncher->GetCommand()); if (pPersistent2 != NULL && pPersistent2->getIdBBDD() == pPersistent->getIdBBDD()) { return false; } } } for(GNC::CommandController::MapaComandos::iterator it = mapaComandosLanzados->begin(); it!= mapaComandosLanzados->end(); ++it) { CommandLauncher* pLauncher = (*it).second; if (pLauncher == this) { continue; } for(GNC::GCS::IComando::TipoListaIdComandos::iterator it1 = m_pComando->m_Reemplazos.begin(); it1 != m_pComando->m_Reemplazos.end(); ++it1) { if(pLauncher != NULL && pLauncher->GetCommand()!=NULL && pLauncher->GetCommand()->GetId() == (*it1) && pLauncher->m_idThreadGinkgo != m_idThreadGinkgo) { m_Dependencias.RegistrarEspera(pLauncher); pLauncher->Terminar(); } else if (pLauncher == NULL) { LOG_ERROR("CommandsController","Inconsistency detected: Launched command was dereferenced"); } } for(GNC::GCS::IComando::TipoListaIdComandos::iterator it1 = m_pComando->m_Dependencias.begin(); it1 != m_pComando->m_Dependencias.end(); ++it1) { if(pLauncher != NULL && pLauncher->GetCommand()!=NULL && pLauncher->GetCommand()->GetId() == (*it1) && pLauncher->m_idThreadGinkgo != m_idThreadGinkgo) { //GTRACE(">> encontrado un comando de ''Espera a'' => El hilo " << m_idThreadGinkgo<< " esprerara a "<m_idThreadGinkgo); //nos aseguramos de que el no esta esperando por nosostros... en tal caso habría un bloqueo mutuo!!! //solo se permite en caso de que los dos comandos tengan el mismo id por ejemplo comandos que se tienen que ejecutar en serie, //en tal caso solo le esperamos si su id es menor que el nuestro if(pLauncher->GetCommand()->GetId() != this->GetCommand()->GetId() || (pLauncher->GetCommand()->GetId() == this->GetCommand()->GetId() && m_idThreadGinkgo > pLauncher->m_idThreadGinkgo)) { m_Dependencias.RegistrarEspera(pLauncher); } } } } return true; } void GNC::CommandLauncher::OnExit() { { GNC::GCS::ILocker pLocker(GNC::CommandController::Instance()); //region "Region sincrona con CommandController" if (m_pComando != NULL) { m_pComando->SetNotificadorProgreso(NULL); } GNC::CommandController::MapaComandos::iterator it = GNC::CommandController::Instance()->m_ComandosLanzados.find(m_idThreadGinkgo); if (it != GNC::CommandController::Instance()->m_ComandosLanzados.end()) { GNC::CommandController::Instance()->m_ComandosLanzados.erase(it); } //avisa a los que estan esperando wxWindow* w = GNC::GCS::IEntorno::Instance()->GetVentanaPrincipal(); if (w != NULL) { GNC::CommandController::Instance()->m_ComandosTerminados[m_idThreadGinkgo] = m_pComando; EventoProgreso ce(EventoProgreso::ComandoFinalizado, m_idThreadGinkgo); w->GetEventHandler()->AddPendingEvent(ce); } else { LOG_WARN("CommandLauncher::OnExit()", "Error: No se invocara el evento de finalizacion del comando. El sistema puede quedar bloqueado o inestable"); if (m_pComando != NULL) { m_pComando->Abort(); // Notificamos al comando de que va a abortar. delete m_pComando; m_pComando = NULL; } } } Signal(); //LOG_TRACE("CommandLauncher", "<< Comando Terminado"); //endregion } void GNC::CommandLauncher::IniciarUnlocker() { #if defined(_WINDOWS) #else /* struct sigaction action; memset(&action, 0, sizeof(action)); sigemptyset(&action.sa_mask); action.sa_flags = 0; action.sa_handler = FooSignalHandler; sigaction(SIGUSR2, &action, NULL); */ #endif } void GNC::CommandLauncher::DoTerminar() { this->m_Abortar = true; if (m_pComando != NULL) { //std::cout << "CommandLauncher::DoTerminar(): Abortando comando:" << std::endl; m_pComando->Abort(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoProgresoComando(GetCommand(), GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado, 0.0f, GetCommand()->GetName())); } #if defined(_WINDOWS) #else //pthread_kill((pthread_t)this->GetId(), SIGUSR2); #endif } bool GNC::CommandLauncher::NotificarProgreso(float progresoNormalizado, const std::string& texto) { if(m_Abortar) { return false; } //this protect system to overflow event message queue bool sendEvent = false; const float newProgress = std::max(0, std::min(progresoNormalizado,1.0f)); LockProgreso(); sendEvent = (std::abs(m_ProgresoNormalizado - newProgress) > 0.01); SetProgresoNormalizado(newProgress); sendEvent = sendEvent || (texto != m_Texto); SetTextoProgreso(texto); UnLockProgreso(); wxWindow* w = GNC::GCS::IEntorno::Instance()->GetVentanaPrincipal(); if(sendEvent && w!=NULL) { EventoProgreso* ce = new EventoProgreso(EventoProgreso::ComandoEjecutando, m_idThreadGinkgo); wxQueueEvent(w->GetEventHandler(), ce); } return true; } //---------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------- //region Controlador de comandos GNC::CommandController* GNC::CommandController::m_psInstancia = NULL; GNC::CommandController::CommandController(): m_Destroying(false), m_EsperarComandos(false), m_pProgreso(nullptr), m_idThreads(1) { threadPool = new GNC::ThreadPool(); } GNC::CommandController::~CommandController() { GTRACE(">> CommandController::~CommandController() "); AbortarComandosDeOwner(NULL); GTRACE("<< CommandController::~CommandController() "); } GNC::CommandController* GNC::CommandController::Instance() { if (m_psInstancia == NULL) { m_psInstancia = new CommandController(); } return m_psInstancia; } void GNC::CommandController::FreeInstance() { if (m_psInstancia != NULL) { delete m_psInstancia; m_psInstancia = NULL; } } void GNC::CommandController::ProcessSync(GNC::GCS::IComando* cmd, bool autodelete, bool update, GNC::INotificadorProgreso* pNotifier) { if (cmd == NULL) { return; } if (pNotifier != NULL) { cmd->SetNotificadorProgreso(pNotifier); } cmd->Execute(); if (wxThread::IsMain() && update) { cmd->Update(); } if (autodelete) { cmd->Free(); delete cmd; } } void GNC::CommandController::ProcessAsync(const std::string& /*str*/, GNC::GCS::IComando* cmd, void * owner) { // in the release build we don't want to crash the program here if (!cmd) { LOG_ERROR("CommandController", "Initiate command with an empty command structure"); return; } cmd->SetOwner(owner); cmd->SetNotificadorProgreso(NULL); CommandLauncher* thread = threadPool->Borrow(); if (thread) { thread->SetCommand(cmd); //thread->SetPriority(WXTHREAD_MAX_PRIORITY); GNC::GCS::ILocker pLocker(GNC::CommandController::Instance()); long threadId = m_idThreads++; thread->m_idThreadGinkgo = threadId; try { if (thread->RecalcularDependencias()) { //if command is persistent... save it GNC::GCS::IPersistentCommand* pPersistent = dynamic_cast(cmd); if (pPersistent != NULL) { GNC::GCS::HistoryController::Instance()->SaveTask(pPersistent); } } else { thread->SetCommand(NULL); cmd->Free(); delete cmd; thread = NULL; } } catch (...) { LOG_ERROR("CommandController", "Error interno al lanzar el comando"); if (cmd != NULL) { thread->SetCommand(NULL); cmd->Free(); delete cmd; } thread = NULL; } } else { if (cmd != NULL) { thread->SetCommand(NULL); cmd->Free(); delete cmd; } } if (thread != NULL) { m_ComandosLanzados[thread->m_idThreadGinkgo] = thread; MapaOwners::iterator it = m_MapaOwners.find(owner); if (it != m_MapaOwners.end()) { (*it).second.push_back(thread->m_idThreadGinkgo); } else { ListaHilos l; l.push_back(thread->m_idThreadGinkgo); m_MapaOwners[owner] = l; } thread->UnPark(); } } //este metodo es un poco malo porque la busqueda iterada... void GNC::CommandController::AbortarComando(GNC::GCS::IComando* pComando, bool sincrono) { GNC::GCS::WaitQueue wqueue; GNC::GCS::ILocker pLocker(GNC::CommandController::Instance()); // Recorremos la lista de threads_ids de la vista for(MapaComandos::iterator it = m_ComandosLanzados.begin(); it!= m_ComandosLanzados.end(); ++it) { CommandLauncher* pLauncher = (*it).second; if(pLauncher == NULL || (*it).second->GetCommand() != pComando) { continue; } if (sincrono ) { wqueue.RegistrarEspera(pLauncher); std::cerr << "Registrando espera para tarea: ptr = " << pLauncher << std::endl; } pLauncher->Terminar(); } } void GNC::CommandController::AbortarComando(long threadId, bool sincrono) { GNC::GCS::WaitQueue wqueue; //--------------------------------------------------------------------- // REGION CRITICA //--------------------------------------------------------------------- { // BEGIN Modificación del estado interno del controlador de comandos. GNC::GCS::ILocker pLocker(GNC::CommandController::Instance()); // Recorremos la lista de threads_ids de la vista MapaComandos::iterator it = m_ComandosLanzados.find(threadId); if (it != m_ComandosLanzados.end()) { CommandLauncher* pLauncher = (*it).second; if (pLauncher != NULL) { // if (sincrono ) { wqueue.RegistrarEspera(pLauncher); std::cerr << "Registrando espera para tarea: threadId = " << (unsigned long) threadId << " ptr = " << pLauncher << std::endl; } pLauncher->Terminar(); pLauncher->SetCommand(NULL); } else { std::cerr << "Detectada inconsistencia en el controlador de comandos: Comando lanzado desreferenciado. Flujo de comando perdido." << std::endl; } } else { // Buscamos el id en la lista de comandos terminados MapaComandosTerminados::iterator it3 = m_ComandosTerminados.find(threadId); if (it3 != m_ComandosTerminados.end()) { GNC::GCS::IComando* pComando = (*it3).second; if (pComando != NULL) { std::cerr << "Anulando comando terminado: threadId = " << (unsigned long) threadId << std::endl; pComando->Abort(); pComando->Free(); if (pComando != NULL) { pComando->Free(); delete pComando; pComando = NULL; } } else { std::cerr << "Detectada inconsistencia en el controlador de comandos: Comando terminado nulo." << std::endl; } m_ComandosTerminados.erase(it3); } else { std::cerr << "Detectada inconsistencia en el controlador de comandos: Comando desreferenciado. Flujo de comando perdido." << std::endl; } } } // END Modificación del estado interno del controlador de comandos. //--------------------------------------------------------------------- //--------------------------------------------------------------------- while (wqueue.NotEmpty()) { if (!wqueue.Wait(POLL_PERIOD)) { wqueue.TerminarPendientes( ); } } } void GNC::CommandController::AbortarComandosDeOwner(void * owner) { GNC::GCS::WaitQueue wqueue; { GNC::GCS::ILocker pLocker(GNC::CommandController::Instance()); // Recorremos la lista de threads_ids de la vista MapaOwners::iterator it1 = m_MapaOwners.find(owner); MapaComandos::iterator itcl; if (it1 != m_MapaOwners.end()) { for (ListaHilos::iterator it2 = (*it1).second.begin(); it2 != (*it1).second.end(); ++it2) { long threadId = (*it2); // Buscamos el id en la lista de comandos lanzados itcl = m_ComandosLanzados.find(threadId); if (itcl != m_ComandosLanzados.end()) { // El comando esta lanzado CommandLauncher* pLauncher = (*itcl).second; if (pLauncher != NULL) { // wqueue.RegistrarEspera(pLauncher); pLauncher->Terminar(); std::cerr << "Registrando espera para tarea: threadId = " << (unsigned long) threadId << " ptr = " << pLauncher << std::endl; } else { std::cerr << "Detectada inconsistencia en el controlador de comandos: Comando lanzado desreferenciado. Flujo de comando perdido." << std::endl; } } else { // Buscamos el id en la lista de comandos terminados MapaComandosTerminados::iterator it3 = m_ComandosTerminados.find(threadId); if (it3 != m_ComandosTerminados.end()) { GNC::GCS::IComando* pComando = (*it3).second; if (pComando != NULL) { std::cerr << "Anulando comando terminado: threadId = " << (unsigned long) threadId << std::endl; pComando->Abort(); pComando->Free(); delete pComando; pComando = NULL; } else { std::cerr << "Detectada inconsistencia en el controlador de comandos: Comando terminado nulo." << std::endl; } m_ComandosTerminados.erase(it3); } else { std::cerr << "Detectada inconsistencia en el controlador de comandos: Comando desreferenciado. Flujo de comando perdido." << std::endl; } } } m_MapaOwners.erase(it1); } } while (wqueue.NotEmpty()) { if (!wqueue.Wait(POLL_PERIOD)) { wqueue.TerminarPendientes(); } } } void GNC::CommandController::AbortarComandosDeOwnerAsincrono(void * owner) { GNC::GCS::ILocker pLocker(GNC::CommandController::Instance()); // Recorremos la lista de threads_ids de la vista MapaOwners::iterator it1 = m_MapaOwners.find(owner); if (it1 != m_MapaOwners.end()) { for (ListaHilos::iterator it2 = (*it1).second.begin(); it2 != (*it1).second.end(); ++it2) { long threadId = (*it2); // Buscamos el id en la lista de comandos lanzados MapaComandos::iterator it = m_ComandosLanzados.find(threadId); if (it != m_ComandosLanzados.end()) { // El comando esta lanzado CommandLauncher* pLauncher = (*it).second; if (pLauncher != NULL) { // pLauncher->Terminar(); } else { std::cerr << "Detectada inconsistencia en el controlador de comandos: Comando lanzado desreferenciado. Flujo de comando perdido." << std::endl; } } else { // Buscamos el id en la lista de comandos terminados MapaComandosTerminados::iterator it3 = m_ComandosTerminados.find(threadId); if (it3 != m_ComandosTerminados.end()) { GNC::GCS::IComando* pComando = (*it3).second; if (pComando != NULL) { std::cerr << "Anulando comando terminado: threadId = " << (unsigned long) threadId << std::endl; pComando->Abort(); pComando->Free(); delete pComando; pComando = NULL; } else { std::cerr << "Detectada inconsistencia en el controlador de comandos: Comando terminado nulo." << std::endl; } m_ComandosTerminados.erase(it3); } else { std::cerr << "Detectada inconsistencia en el controlador de comandos: Comando desreferenciado. Flujo de comando perdido." << std::endl; } } } m_MapaOwners.erase(it1); } } void GNC::CommandController::WaitToOwnerCommands(void* owner) { GNC::GCS::WaitQueue wqueue; { GNC::GCS::ILocker pLocker(GNC::CommandController::Instance()); // Recorremos la lista de threads_ids de la vista MapaOwners::iterator it1 = m_MapaOwners.find(owner); MapaComandos::iterator itcl; if (it1 != m_MapaOwners.end()) { for (ListaHilos::iterator it2 = (*it1).second.begin(); it2 != (*it1).second.end(); ++it2) { long threadId = (*it2); // Buscamos el id en la lista de comandos lanzados itcl = m_ComandosLanzados.find(threadId); if (itcl != m_ComandosLanzados.end()) { // El comando esta lanzado CommandLauncher* pLauncher = (*itcl).second; if (pLauncher != NULL) { // wqueue.RegistrarEspera(pLauncher); pLauncher->Terminar(); std::cerr << "Registrando espera para tarea: threadId = " << (unsigned long) threadId << " ptr = " << pLauncher << std::endl; } else { std::cerr << "Detectada inconsistencia en el controlador de comandos: Comando lanzado desreferenciado. Flujo de comando perdido." << std::endl; } } } } } while (wqueue.NotEmpty()) { if (!wqueue.Wait(POLL_PERIOD)) { } } } unsigned int GNC::CommandController::GetNumActiveCommands() { GNC::GCS::ILocker pLocker(GNC::CommandController::Instance()); return m_ComandosLanzados.size(); } void GNC::CommandController::OnComandoLanzado(long threadId) { GNC::GCS::ILocker pLocker(GNC::CommandController::Instance()); MapaComandos::iterator it = m_ComandosLanzados.find(threadId); if (it != m_ComandosLanzados.end()) { CommandLauncher* pLauncher = (*it).second; pLauncher->GetCommand()->SetNotificadorProgreso(pLauncher); if (m_pProgreso) { m_pProgreso->InsertarTarea(threadId, pLauncher->GetCommand()->GetName()); } GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoProgresoComando(pLauncher->GetCommand(), GNC::GCS::Events::EventoProgresoComando::TEP_Iniciado, 0.0f, pLauncher->GetCommand()->GetName())); } else { MapaComandosTerminados::iterator it = m_ComandosTerminados.find(threadId); if (it != m_ComandosTerminados.end()) { GNC::GCS::IComando* pComando = (*it).second; if (m_pProgreso) { m_pProgreso->InsertarTarea(threadId, pComando->GetName()); } GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoProgresoComando(pComando, GNC::GCS::Events::EventoProgresoComando::TEP_Iniciado, 1.0f, pComando->GetName())); } else { LOG_WARN("CommandController", "Error al iniciar comunicacion de progreso del comando. Thread Id no encontrado."); //std::cout << "OnComandoLanzado: Thread Id not found: " << threadId << std::endl; } } } void GNC::CommandController::OnComandoProgreso(long threadId) { GNC::GCS::ILocker pLocker(GNC::CommandController::Instance()); MapaComandos::iterator it = m_ComandosLanzados.find(threadId); if (it != m_ComandosLanzados.end()) { CommandLauncher* pLauncher = (*it).second; pLauncher->LockProgreso(); float progreso = pLauncher->GetProgresoNormalizado(); std::string texto = pLauncher->GetTextoProgreso(); pLauncher->UnLockProgreso(); m_pProgreso->SetProgresoTarea(threadId, progreso, texto); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoProgresoComando(pLauncher->GetCommand(), GNC::GCS::Events::EventoProgresoComando::TEP_Progreso, progreso, texto)); } else { //std::cout << "OnComandoProgreso: Thread Id not found: " << threadId << std::endl; } } void GNC::CommandController::OnComandoFinalizado(long threadId, bool lock) { GNC::GCS::IComando* pComando = NULL; bool actualizar=false; GNC::GCS::ILocker* pLocker = NULL; //LOG_TRACE("CommandController", "OnComandoFinalizado(" << threadId << ")"); { if (lock) { pLocker = new GNC::GCS::ILocker(GNC::CommandController::Instance()); } try { if(m_pProgreso != NULL) { m_pProgreso->EliminarTarea(threadId); } MapaComandosTerminados::iterator it1 = m_ComandosTerminados.find(threadId); if (it1 != m_ComandosTerminados.end()) { actualizar = true; pComando = (*it1).second; m_ComandosTerminados.erase(it1); } else { //LOG_TRACE("CommandController", "Id thread no encontrado en finalizados"); } // TODO: Añadir un diccionario inverso o usar un set for (MapaOwners::iterator it2 = m_MapaOwners.begin(); it2 != m_MapaOwners.end(); ++it2) { ListaHilos::iterator it3 = (*it2).second.begin(); bool found = false; while (!found && it3 != (*it2).second.end()) { if ((*it3) == threadId) { found = true; } else { ++it3; } } if (found) { (*it2).second.erase(it3); } } } catch (std::exception&) { throw; } if (pLocker != NULL) { delete pLocker; pLocker = NULL; } } if (pComando != NULL) { if (actualizar && !pComando->EstaAbortado()) { pComando->Update(); //if command is persistent... drop from bbdd GNC::GCS::IPersistentCommand* pPersistent = dynamic_cast(pComando); if (pPersistent != NULL) { GNC::GCS::HistoryController::Instance()->SaveTask(pPersistent); } } else { LOG_DEBUG("CommandController" , "IComando::Update no invocado"); } //LOG_TRACE("CommandController", "Procesando evento de comando finalizado"); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoProgresoComando(pComando, GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado)); pComando->Free(); delete pComando; pComando = NULL; } else { LOG_WARN("CommandController", "Comando nulo. no se propagara el evento de fin de comando ni se actualizara"); //std::cout << "CommandController>> pComando = NULL!!!!" << std::endl; } } GNC::CommandController::ListaNombreComandos GNC::CommandController::GetComandosActivos() { ListaNombreComandos lista; GNC::GCS::ILocker pLocker(GNC::CommandController::Instance()); for(MapaComandos::iterator it = m_ComandosLanzados.begin(); it!=m_ComandosLanzados.end(); ++it) { std::stringstream strstream; const GNC::GCS::IComando* pCmd = (*it).second->GetCommand(); if (pCmd != NULL) { strstream << pCmd->GetName(); } else { strstream << ""; } strstream << ": " << (*it).second->GetTextoProgreso(); lista.push_back( strstream.str()); } return lista; } //endregion ginkgocadx-3.8.7/cadxcore/main/controllers/commandcontroller.h000066400000000000000000000115511314736454600246440ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include #include // TODO: Refactor this #include #include //---------------------------------------------------------------------------------------------------- //region forward declarations namespace GNC { class CommandController; class ThreadPool; } class wxWindow; //endregion namespace GNC { //---------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------- class EXTAPI CommandLauncher : public wxThread, public GNC::GCS::WaitQueueTask, public GNC::INotificadorProgreso { public: //id Ginkgo unsigned long m_idThreadGinkgo; GNC::GCS::IComando* GetCommand(); void SetCommand(GNC::GCS::IComando* pCmd); virtual void* Entry(); virtual void OnExit(); bool RecalcularDependencias(); void IniciarUnlocker(); void Park(); private: void UnPark(); protected: virtual void DoTerminar(); private: CommandLauncher(GNC::ThreadPool* pool); ~CommandLauncher(); virtual bool NotificarProgreso(float progresoNormalizado, const std::string& texto); private: GNC::GCS::IComando* m_pComando; GNC::GCS::WaitQueue m_Dependencias; // this varable should be an atomic or guarded by a mutex std::atomic m_Abortar; bool m_Shutdown; wxSemaphore* m_pParker; GNC::ThreadPool* m_pPool; #if defined(_WINDOWS) //HANDLE m_hEventoCancelacion; #else #endif friend class GNC::ThreadPool; friend class GNC::CommandController; }; //---------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------- class EXTAPI CommandController : public GNC::GCS::ICommandController, public GNC::GCS::ILockable { public: typedef std::map MapaComandos; typedef std::map MapaComandosTerminados; typedef std::list ListaHilos; typedef std::map MapaOwners; typedef std::list ListaNombreComandos; static CommandController *Instance(); static void FreeInstance(); virtual ~CommandController(); virtual void ProcessSync(GNC::GCS::IComando* cmd, bool autodelete, bool update = true, GNC::INotificadorProgreso* pNotifier = NULL); virtual void ProcessAsync(const std::string& str, GNC::GCS::IComando* cmd, void* owner); virtual void AbortarComando(GNC::GCS::IComando* pComando, bool sincrono = true); virtual void AbortarComando(long threadId, bool sincrono = true); virtual void AbortarComandosDeOwner(void* owner); virtual void AbortarComandosDeOwnerAsincrono(void* owner); virtual void WaitToOwnerCommands(void* owner); virtual unsigned int GetNumActiveCommands(); void RegistrarProgreso(GNC::IControladorProgreso* pProgreso) { m_pProgreso = pProgreso; } GNC::IControladorProgreso* GetProgresoRegistrado() { return m_pProgreso; } void OnComandoLanzado(long threadId); void OnComandoProgreso(long threadId); void OnComandoFinalizado(long threadId, bool lock=true); ListaNombreComandos GetComandosActivos(); protected: CommandController(); static CommandController* m_psInstancia; bool m_Destroying; MapaComandos m_ComandosLanzados; MapaComandosTerminados m_ComandosTerminados; MapaOwners m_MapaOwners; bool m_EsperarComandos; GNC::IControladorProgreso* m_pProgreso; unsigned long m_idThreads; friend class GNC::CommandLauncher; }; } ginkgocadx-3.8.7/cadxcore/main/controllers/configurationcontroller.cpp000066400000000000000000000741121314736454600264320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "controladorlog.h" #include "configurationcontroller.h" #include
    #include #include #include #include #include #include #include #ifdef __WINDOWS__ #include // includes #endif namespace GNC { namespace GCS { ProxySettings::ProxySettings(): port(0), useProxy(false), requiresAuth(false) { } ProxySettings::~ProxySettings() { } ConfigurationController* ConfigurationController::m_pInstance = NULL; wxCriticalSection ConfigurationController::m_criticalSection; wxString ConfigurationController::m_PreferredGeneralConfigPath; ConfigurationController* ConfigurationController::Instance() { if (m_pInstance == NULL) { wxCriticalSectionLocker locker(m_criticalSection); m_pInstance = new ConfigurationController(); } return m_pInstance; } void ConfigurationController::FreeInstance() { wxCriticalSectionLocker locker(m_criticalSection); if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } void ConfigurationController::SetPreferredConfigFile(const std::string& path) { m_PreferredGeneralConfigPath = wxString(FROMPATH(path)); } void ConfigurationController::Flush() { wxFileName user(m_pathUserConfig); if (user.IsFileWritable()) { m_pUserConfig->Flush(); } wxFileName global(m_pathGlobalConfig); if (global.IsFileWritable()) { m_pGeneralConfig->Flush(); } } bool ConfigurationController::deleteEntryGeneral(const std::string& scope, const std::string&key) { return deleteEntry(TC_General, scope, key); } bool ConfigurationController::writeStringGeneral(const std::string& scope, const std::string& key, const std::string& value) { return writeString(TC_General, scope, key, value); } bool ConfigurationController::readStringGeneral(const std::string& scope, const std::string& key, std::string& value, const std::string& defaultValue) { return readString(TC_General, scope, key, value, defaultValue); } bool ConfigurationController::readBoolGeneral(const std::string& scope, const std::string& key, bool& value, bool defaultValue) { return readBool(TC_General, scope, key, value, defaultValue); } bool ConfigurationController::writeBoolGeneral(const std::string& scope, const std::string& key, bool value) { return writeBool(TC_General, scope, key, value); } bool ConfigurationController::readIntGeneral(const std::string& scope, const std::string& key, int& value, int defaultValue) { return readInt(TC_General, scope, key, value, defaultValue); } bool ConfigurationController::writeIntGeneral(const std::string& scope, const std::string& key, int value) { return writeInt(TC_General, scope, key, value); } bool ConfigurationController::readDoubleGeneral(const std::string& scope, const std::string& key, double& value, double defaultValue) { return readDouble(TC_General, scope, key, value, defaultValue); } bool ConfigurationController::writeDoubleGeneral(const std::string& scope, const std::string& key, double value) { return writeDouble(TC_General, scope, key, value); } bool ConfigurationController::writeGroupGeneral(const std::string& scope, const TListGroups& listOfGroups, const std::string& prefix) { return writeGroup(TC_General, scope, listOfGroups, prefix); } bool ConfigurationController::readGroupGeneral(const std::string& scope, TListGroups& listOfGroups) { return readGroup(TC_General, scope, listOfGroups); } bool ConfigurationController::deleteEntryUser(const std::string& scope, const std::string&key) { return deleteEntry(TC_User, scope, key); } bool ConfigurationController::writeStringUser(const std::string& scope, const std::string& key, const std::string& value) { return writeString(TC_User, scope, key, value); } bool ConfigurationController::readStringUser(const std::string& scope, const std::string& key, std::string& value, const std::string& defaultValue) { if (!readString(TC_General, scope, key, value, defaultValue)) { if (!readString(TC_Machine, scope, key, value, defaultValue)) { return readString(TC_User, scope, key, value, defaultValue); } } return true; } bool ConfigurationController::readBoolUser(const std::string& scope, const std::string& key, bool& value, bool defaultValue) { if (!readBool(TC_General, scope, key, value, defaultValue)) { if (!readBool(TC_Machine, scope, key, value, defaultValue)) { return readBool(TC_User, scope, key, value, defaultValue); } } return true; } bool ConfigurationController::writeBoolUser(const std::string& scope, const std::string& key, bool value) { return writeBool(TC_User, scope, key, value); } bool ConfigurationController::readIntUser(const std::string& scope, const std::string& key, int& value, int defaultValue) { if (!readInt(TC_General, scope, key, value, defaultValue)) { if (!readInt(TC_Machine, scope, key, value, defaultValue)) { return readInt(TC_User, scope, key, value, defaultValue); } } return true; } bool ConfigurationController::writeIntUser(const std::string& scope, const std::string& key, int value) { return writeInt(TC_User, scope, key, value); } bool ConfigurationController::readDoubleUser(const std::string& scope, const std::string& key, double& value, double defaultValue) { if (!readDouble(TC_General, scope, key, value, defaultValue)) { if (!readDouble(TC_Machine, scope, key, value, defaultValue)) { return readDouble(TC_User, scope, key, value, defaultValue); } } return true; } bool ConfigurationController::writeDoubleUser(const std::string& scope, const std::string& key, double value) { return writeDouble(TC_User, scope, key, value); } bool ConfigurationController::writeGroupUser(const std::string& scope, const TListGroups& listOfGroups, const std::string& prefix) { return writeGroup(TC_User, scope, listOfGroups, prefix); } bool ConfigurationController::readGroupUser(const std::string& scope, TListGroups& listOfGroups) { if (!readGroup(TC_General, scope, listOfGroups)) { if (!readGroup(TC_Machine, scope, listOfGroups)) { return readGroup(TC_User, scope, listOfGroups); } } return true; } //proxy settings.. ProxySettings ConfigurationController::GetProxySettings() { ProxySettings settings; readStringUser("/GinkgoCore/Station/Proxy", "Hostname", settings.hostName); readStringUser("/GinkgoCore/Station/Proxy", "Username", settings.userName); readStringUser("/GinkgoCore/Station/Proxy", "Password", settings.password); readStringUser("/GinkgoCore/Station/Proxy", "Exceptions", settings.exceptions); readIntUser("/GinkgoCore/Station/Proxy", "Port", settings.port); readBoolUser("/GinkgoCore/Station/Proxy", "UseProxy", settings.useProxy, false); readBoolUser("/GinkgoCore/Station/Proxy", "RequiresAuth", settings.requiresAuth, false); return settings; } void ConfigurationController::SetProxySettings(const ProxySettings& settings) { writeStringUser("/GinkgoCore/Station/Proxy", "Hostname", settings.hostName); writeStringUser("/GinkgoCore/Station/Proxy", "Username", settings.userName); writeStringUser("/GinkgoCore/Station/Proxy", "Password", settings.password); writeStringUser("/GinkgoCore/Station/Proxy", "Exceptions", settings.exceptions); writeIntUser("/GinkgoCore/Station/Proxy", "Port", settings.port); writeBoolUser("/GinkgoCore/Station/Proxy", "UseProxy", settings.useProxy); writeBoolUser("/GinkgoCore/Station/Proxy", "RequiresAuth", settings.requiresAuth); } // bool ConfigurationController::saveGlobalConfigurationFile(const std::string& path) { wxString pathWx = FROMPATH(path); wxCriticalSectionLocker locker(m_criticalSection); wxFileOutputStream ostream(pathWx); if (m_pPreferredGeneralConfig != NULL) { return false; } return m_pGeneralConfig->Save(ostream); } bool ConfigurationController::loadGlobalConfigurationFile(const std::string& path) { if (m_pPreferredGeneralConfig != NULL) { return false; } wxString pathWx = FROMPATH(path); wxCriticalSectionLocker locker(m_criticalSection); delete m_pGeneralConfig; bool res = wxCopyFile(pathWx, m_pathGlobalConfig, true); if (!res) { LOG_WARN("ConfigurationController", "Error Loading configuration file " << path); } m_pGeneralConfig = new wxFileConfig(wxEmptyString,wxEmptyString,m_pathGlobalConfig,wxEmptyString,wxCONFIG_USE_LOCAL_FILE); return res; } bool ConfigurationController::deleteEntry(TConfig type, const std::string& scope, const std::string&key) { if (m_pPreferredGeneralConfig != NULL) { return false; } wxCriticalSectionLocker locker(m_criticalSection); wxConfigBase * config; if (type==TC_General) { config = m_pGeneralConfig; } else { config = m_pUserConfig; } if (key == "") { return config->DeleteGroup(wxString::FromUTF8(scope.c_str())); } else { config->SetPath(wxString::FromUTF8(scope.c_str())); return config->DeleteEntry(wxString::FromUTF8(key.c_str())); } } bool ConfigurationController::writeString(TConfig type, const std::string& scope, const std::string& key, const std::string& value) { wxCriticalSectionLocker locker(m_criticalSection); wxConfigBase * config; switch (type) { case TC_User: config = m_pUserConfig; break; case TC_Machine: config = m_pMachineConfig; break; case TC_General: default: if (m_pPreferredGeneralConfig != NULL) { config = NULL; } else { config = m_pGeneralConfig; } } if (config == NULL) { return false; } config->SetPath(wxString::FromUTF8(scope.c_str())); bool result = config->Write(wxString::FromUTF8(key.c_str()),wxString::FromUTF8(value.c_str())); Flush(); return result; } bool ConfigurationController::readString(TConfig type, const std::string& scope, const std::string& key, std::string& value, const std::string& defaultValue) { wxCriticalSectionLocker locker(m_criticalSection); wxConfigBase * config; switch (type) { case TC_User: config = m_pUserConfig; break; case TC_Machine: config = m_pMachineConfig; break; case TC_General: default: if (m_pPreferredGeneralConfig != NULL) { config = m_pPreferredGeneralConfig; } else { config = m_pGeneralConfig; } } if (config == NULL) { return false; } config->SetPath(wxString::FromUTF8(scope.c_str())); wxString wxTmp; bool result = config->Read(wxString::FromUTF8(key.c_str()),&wxTmp,wxString::FromUTF8(defaultValue.c_str())); value = wxTmp.ToUTF8(); return result; } bool ConfigurationController::writeBool(TConfig type, const std::string& scope, const std::string& key, bool value) { wxCriticalSectionLocker locker(m_criticalSection); wxConfigBase * config; switch (type) { case TC_User: config = m_pUserConfig; break; case TC_Machine: config = m_pMachineConfig; break; case TC_General: default: if (m_pPreferredGeneralConfig != NULL) { config = NULL; } else { config = m_pGeneralConfig; } } if (config == NULL) { return false; } config->SetPath(wxString::FromUTF8(scope.c_str())); bool result = config->Write(wxString::FromUTF8(key.c_str()),value); Flush(); return result; } bool ConfigurationController::readBool(TConfig type, const std::string& scope, const std::string& key, bool& value, bool defaultValue) { wxCriticalSectionLocker locker(m_criticalSection); wxConfigBase * config; switch (type) { case TC_User: config = m_pUserConfig; break; case TC_Machine: config = m_pMachineConfig; break; case TC_General: default: if (m_pPreferredGeneralConfig != NULL) { config = m_pPreferredGeneralConfig; } else { config = m_pGeneralConfig; } } if (config == NULL) { return false; } config->SetPath(wxString::FromUTF8(scope.c_str())); bool result = config->Read(wxString::FromUTF8(key.c_str()),&value,defaultValue); return result; } bool ConfigurationController::readInt(TConfig type, const std::string& scope, const std::string& key, int& value, int defaultValue) { wxCriticalSectionLocker locker(m_criticalSection); wxConfigBase * config; switch (type) { case TC_User: config = m_pUserConfig; break; case TC_Machine: config = m_pMachineConfig; break; case TC_General: default: if (m_pPreferredGeneralConfig != NULL) { config = m_pPreferredGeneralConfig; } else { config = m_pGeneralConfig; } } if (config == NULL) { return false; } config->SetPath(wxString::FromUTF8(scope.c_str())); bool result = config->Read(wxString::FromUTF8(key.c_str()),&value,defaultValue); return result; } bool ConfigurationController::writeInt(TConfig type, const std::string& scope, const std::string& key, int value) { wxCriticalSectionLocker locker(m_criticalSection); wxConfigBase * config; switch (type) { case TC_User: config = m_pUserConfig; break; case TC_Machine: config = m_pMachineConfig; break; case TC_General: default: if (m_pPreferredGeneralConfig != NULL) { config = NULL; } else { config = m_pGeneralConfig; } } if (config == NULL) { return false; } config->SetPath(wxString::FromUTF8(scope.c_str())); bool result = config->Write(wxString::FromUTF8(key.c_str()),value); Flush(); return result; } bool ConfigurationController::readDouble(TConfig type, const std::string& scope, const std::string& key, double& value, double defaultValue) { wxCriticalSectionLocker locker(m_criticalSection); wxConfigBase * config; switch (type) { case TC_User: config = m_pUserConfig; break; case TC_Machine: config = m_pMachineConfig; break; case TC_General: default: if (m_pPreferredGeneralConfig != NULL) { config = m_pPreferredGeneralConfig; } else { config = m_pGeneralConfig; } } if (config == NULL) { return false; } config->SetPath(wxString::FromUTF8(scope.c_str())); bool result = config->Read(wxString::FromUTF8(key.c_str()),&value,defaultValue); return result; } bool ConfigurationController::writeDouble(TConfig type, const std::string& scope, const std::string& key, double value) { wxCriticalSectionLocker locker(m_criticalSection); wxConfigBase * config; switch (type) { case TC_User: config = m_pUserConfig; break; case TC_Machine: config = m_pMachineConfig; break; case TC_General: default: if (m_pPreferredGeneralConfig != NULL) { config = NULL; } else { config = m_pGeneralConfig; } } if (config == NULL) { return false; } config->SetPath(wxString::FromUTF8(scope.c_str())); bool result = config->Write(wxString::FromUTF8(key.c_str()),value); Flush(); return result; } bool ConfigurationController::writeGroup(TConfig type, const std::string& scope, const TListGroups& listOfGroups, const std::string& prefix) { wxCriticalSectionLocker locker(m_criticalSection); wxConfigBase * config; switch (type) { case TC_User: config = m_pUserConfig; break; case TC_Machine: config = m_pMachineConfig; break; case TC_General: default: if (m_pPreferredGeneralConfig != NULL) { config = NULL; } else { config = m_pGeneralConfig; } } if (config == NULL) { return false; } config->DeleteGroup(wxString::FromUTF8(scope.c_str())); config->SetPath(wxString::FromUTF8(scope.c_str())); int i=0; bool ok = true; for (TListGroups::const_iterator itGroups = listOfGroups.begin(); itGroups != listOfGroups.end(); ++itGroups, ++i) { for (TMapValues::const_iterator itValues = (*itGroups).begin(); itValues != (*itGroups).end(); ++itValues) { std::ostringstream ostrKey; ostrKey << prefix << i << "/" << (*itValues).first; ok &= config->Write(wxString::FromUTF8(ostrKey.str().c_str()), wxString::FromUTF8((*itValues).second.c_str())); } } return ok; } bool ConfigurationController::readGroup(TConfig type, const std::string& scope, TListGroups& listOfGroups) { wxCriticalSectionLocker locker(m_criticalSection); wxConfigBase * config; switch (type) { case TC_User: config = m_pUserConfig; break; case TC_Machine: config = m_pMachineConfig; break; case TC_General: default: if (m_pPreferredGeneralConfig != NULL) { config = m_pPreferredGeneralConfig; } else { config = m_pGeneralConfig; } } if (config == NULL) { return false; } config->SetPath(wxString::FromUTF8(scope.c_str())); long dummy; wxString str; bool bCont = config->GetFirstGroup(str, dummy); while ( bCont ) { config->SetPath(str); TMapValues mapTmp; long dummy2; wxString str2; bool bCont2 = config->GetFirstEntry(str, dummy2); while (bCont2) { config->Read(str, &str2); mapTmp[std::string(str.ToUTF8())] = std::string(str2.ToUTF8()); bCont2 = config->GetNextEntry(str, dummy2); } listOfGroups.push_back(mapTmp); config->SetPath(wxT("..")); bCont = config->GetNextGroup(str, dummy); } return !listOfGroups.empty(); } /**Overwrite wxWidgets home user searching*/ wxString GetOverwrittedHomeDir(wxString *pstr) { wxString& strDir = *pstr; // first branch is for Cygwin #if defined(__UNIX__) && !defined(__WINE__) const wxChar *szHome = wxGetenv(wxT("HOME")); if ( szHome == NULL ) { // we're homeless... //wxLogWarning(_("can't find user's HOME, using current directory.")); strDir = wxT("."); } else strDir = szHome; // add a trailing slash if needed if ( strDir.Last() != wxT('/') ) strDir << wxT('/'); #ifdef __CYGWIN__ // Cygwin returns unix type path but that does not work well static wxChar windowsPath[MAX_PATH]; cygwin_conv_to_full_win32_path(strDir, windowsPath); strDir = windowsPath; #endif #elif defined(__WXWINCE__) strDir = wxT("\\"); #elif defined(__WXWINDOWS__) strDir.clear(); const wxChar *szHome = wxGetenv(wxT("HOMEDRIVE")); if ( szHome != NULL ) strDir << szHome; szHome = wxGetenv(wxT("HOMEPATH")); if ( szHome != NULL ) { strDir << szHome; // the idea is that under NT these variables have default values // of "%systemdrive%:" and "\\". As we don't want to create our // config files in the root directory of the system drive, we will // create it in our program's dir. However, if the user took care // to set HOMEPATH to something other than "\\", we suppose that he // knows what he is doing and use the supplied value. if ( wxStrcmp(szHome, wxT("\\")) == 0 ) strDir.clear(); } else { if ( strDir.empty() ) { // If we have a valid USERPROFILE directory, as is the case in // Windows NT, 2000 and XP, we should use that as our home directory. szHome = wxGetenv(wxT("USERPROFILE")); if ( szHome != NULL ) { strDir = szHome; } else { // If we have a valid HOME directory, as is used on many machines that // have unix utilities on them, we should use that. szHome = wxGetenv(wxT("HOME")); if ( szHome != NULL ) { strDir = szHome; } } } } if ( !strDir.empty() ) { // sometimes the value of HOME may be "%USERPROFILE%", so reexpand the // value once again, it shouldn't hurt anyhow strDir = wxExpandEnvVars(strDir); } else { // fall back to the program directory // extract the directory component of the program file name wxFileName::SplitPath(wxGetFullModuleName(), &strDir, NULL, NULL); } #else strDir.clear(); // If we have a valid HOME directory, as is used on many machines that // have unix utilities on them, we should use that. const wxChar *szHome = wxGetenv(wxT("HOME")); if ( szHome != NULL ) { strDir = szHome; } else { // no HOME, try HOMEDRIVE/PATH szHome = wxGetenv(wxT("HOMEDRIVE")); if ( szHome != NULL ) strDir << szHome; szHome = wxGetenv(wxT("HOMEPATH")); if ( szHome != NULL ) { strDir << szHome; // the idea is that under NT these variables have default values // of "%systemdrive%:" and "\\". As we don't want to create our // config files in the root directory of the system drive, we will // create it in our program's dir. However, if the user took care // to set HOMEPATH to something other than "\\", we suppose that he // knows what he is doing and use the supplied value. if ( wxStrcmp(szHome, wxT("\\")) == 0 ) strDir.clear(); } } if ( strDir.empty() ) { // If we have a valid USERPROFILE directory, as is the case in // Windows NT, 2000 and XP, we should use that as our home directory. szHome = wxGetenv(wxT("USERPROFILE")); if ( szHome != NULL ) strDir = szHome; } if ( !strDir.empty() ) { // sometimes the value of HOME may be "%USERPROFILE%", so reexpand the // value once again, it shouldn't hurt anyhow strDir = wxExpandEnvVars(strDir); } else { // fall back to the program directory // extract the directory component of the program file name wxSplitPath(wxGetFullModuleName(), &strDir, NULL, NULL); } #endif // UNIX return strDir.c_str(); } wxString GetOverwrittedLocalDir() { wxString strDir; #if defined(__WXMAC__) || defined(__DOS__) // no local dir concept on Mac OS 9 or MS-DOS strDir << GetGlobalDir() ; #else GetOverwrittedHomeDir(&strDir); #ifdef __UNIX__ if ( (strDir.Last() != wxT('/')) #ifdef __VMS && (strDir.Last() != wxT(']')) #endif ) strDir << wxT('/'); #else if (strDir.Last() != wxT('\\')) strDir << wxT('\\'); #endif #endif return strDir; } wxString GetLocalFileName(const wxString& appName) { #ifdef __VMS__ // On VMS I saw the problem that the home directory was appended // twice for the configuration file. Does that also happen for // other platforms? wxString str = wxT( '.' ); #else wxString str = GetOverwrittedLocalDir(); #endif #if defined( __UNIX__ ) && !defined( __VMS ) && !defined( __WXMAC__ ) str << wxT('.'); #endif str << appName; #if defined(__WINDOWS__) || defined(__DOS__) if ( wxStrchr(appName, wxT('.')) == NULL ) str << wxT(".ini"); #endif #ifdef __WXMAC__ str << wxT(" Preferences") ; #endif return str; } ConfigurationController::ConfigurationController() { if (!m_PreferredGeneralConfigPath.IsEmpty()) { m_pPreferredGeneralConfig = new wxFileConfig(wxEmptyString, wxEmptyString, m_PreferredGeneralConfigPath, wxEmptyString, wxCONFIG_USE_LOCAL_FILE); } else { m_pPreferredGeneralConfig = NULL; } wxString localFileconfig = GetLocalFileName(wxT("GinkgoUser")); m_pUserConfig = new wxFileConfig(wxT("GinkgoUser"), wxT("Metaemotion"), localFileconfig, wxEmptyString, wxCONFIG_USE_LOCAL_FILE ); wxLogDebug("User config file: %s", localFileconfig); wxString pathEjecutable = wxStandardPaths::Get().GetExecutablePath(); wxFileName fileName(pathEjecutable); //= than execute fileName.SetExt(wxT("ini")); m_pathGlobalConfig = fileName.GetLongPath(); wxLogDebug("Global config file: %s", m_pathGlobalConfig); if(wxFileExists(m_pathGlobalConfig)) { m_pGeneralConfig = new wxFileConfig(wxEmptyString,wxEmptyString,m_pathGlobalConfig,wxEmptyString,wxCONFIG_USE_LOCAL_FILE); } else { //Ginkgo.ini m_pathGlobalConfig = wxPathOnly(m_pathGlobalConfig) + wxFileName::GetPathSeparator() + wxT("GinkgoGeneral.ini"); if(wxFileExists(m_pathGlobalConfig)) { m_pGeneralConfig = new wxFileConfig(wxEmptyString,wxEmptyString,m_pathGlobalConfig,wxEmptyString,wxCONFIG_USE_LOCAL_FILE); } else { m_pathGlobalConfig = wxPathOnly(m_pathGlobalConfig) + wxFileName::GetPathSeparator() + wxT("Ginkgo.ini"); if(wxFileExists(m_pathGlobalConfig)) { m_pGeneralConfig = new wxFileConfig(wxEmptyString,wxEmptyString,m_pathGlobalConfig,wxEmptyString,wxCONFIG_USE_LOCAL_FILE); } else { //se inicializa el fichero de propiedades m_pathGlobalConfig = GetLocalFileName(wxT("Ginkgo")); m_pGeneralConfig = new wxFileConfig(wxT("Ginkgo"), wxT("Metaemotion"),m_pathGlobalConfig,wxEmptyString,wxCONFIG_USE_LOCAL_FILE ); } } } m_pathUserConfig = m_pGeneralConfig->GetLocalFileName(wxT("GinkgoUser")); wxString pathMachineConfig = fileName.GetPath(true) + wxT("GinkgoMachine.ini"); wxLogDebug("Machine config file: %s", pathMachineConfig); if(wxFileExists(pathMachineConfig)) { m_pMachineConfig = new wxFileConfig(wxEmptyString,wxEmptyString,pathMachineConfig,wxEmptyString,wxCONFIG_USE_LOCAL_FILE); } else { m_pMachineConfig = NULL; } } ConfigurationController::~ConfigurationController() { Flush(); delete m_pUserConfig; delete m_pGeneralConfig; if (m_pMachineConfig != NULL) { delete m_pMachineConfig; } } } } ginkgocadx-3.8.7/cadxcore/main/controllers/configurationcontroller.h000066400000000000000000000141341314736454600260750ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include class wxFileConfig; namespace GNC { namespace GCS { class ProxySettings { public: std::string hostName; std::string userName; std::string password; std::string exceptions; int port; bool useProxy; bool requiresAuth; ProxySettings(); ~ProxySettings(); }; class EXTAPI ConfigurationController: public GNC::GCS::IConfigurationController { public: static ConfigurationController* Instance(); static void FreeInstance(); static void SetPreferredConfigFile(const std::string& path); virtual void Flush(); virtual bool deleteEntryGeneral(const std::string& scope, const std::string&key = ""); virtual bool writeStringGeneral(const std::string& scope, const std::string& key, const std::string& value); virtual bool readStringGeneral(const std::string& scope, const std::string& key, std::string& value, const std::string& defaultValue = ""); virtual bool writeBoolGeneral(const std::string& scope, const std::string& key, bool value); virtual bool readBoolGeneral(const std::string& scope, const std::string& key, bool& value, bool defaultValue = true); virtual bool readIntGeneral(const std::string& scope, const std::string& key, int& value, int defaultValue = 0); virtual bool writeIntGeneral(const std::string& scope, const std::string& key, int value); virtual bool readDoubleGeneral(const std::string& scope, const std::string& key, double& value, double defaultValue = 0.0); virtual bool writeDoubleGeneral(const std::string& scope, const std::string& key, double value); virtual bool writeGroupGeneral(const std::string& scope, const TListGroups& listOfGroups, const std::string& prefix = ""); virtual bool readGroupGeneral(const std::string& scope, TListGroups& listOfGroups); virtual bool deleteEntryUser(const std::string& scope, const std::string&key = ""); virtual bool writeStringUser(const std::string& scope, const std::string& key, const std::string& value); virtual bool readStringUser(const std::string& scope, const std::string& key, std::string& value, const std::string& defaultValue = ""); virtual bool readBoolUser(const std::string& scope, const std::string& key, bool& value, bool defaultValue = true); virtual bool writeBoolUser(const std::string& scope, const std::string& key, bool value); virtual bool readIntUser(const std::string& scope, const std::string& key, int& value, int defaultValue = 0); virtual bool writeIntUser(const std::string& scope, const std::string& key, int value); virtual bool readDoubleUser(const std::string& scope, const std::string& key, double& value, double defaultValue = 0.0); virtual bool writeDoubleUser(const std::string& scope, const std::string& key, double value); virtual bool writeGroupUser(const std::string& scope, const TListGroups& listOfGroups, const std::string& prefix = ""); virtual bool readGroupUser(const std::string& scope, TListGroups& listOfGroups); //proxy settings.. virtual ProxySettings GetProxySettings(); virtual void SetProxySettings(const ProxySettings& settings); // virtual bool saveGlobalConfigurationFile(const std::string& path); virtual bool loadGlobalConfigurationFile(const std::string& path); protected: typedef enum TConfig { TC_General, TC_Machine, TC_User } TConfig; bool deleteEntry(TConfig type, const std::string& scope, const std::string&key = ""); bool writeString(TConfig type, const std::string& scope, const std::string& key, const std::string& value); bool readString(TConfig type, const std::string& scope, const std::string& key, std::string& value, const std::string& defaultValue = ""); bool readBool(TConfig type, const std::string& scope, const std::string& key, bool& value, bool defaultValue = true); bool writeBool(TConfig type, const std::string& scope, const std::string& key, bool value); bool writeInt(TConfig type, const std::string& scope, const std::string& key, int value); bool readInt(TConfig type, const std::string& scope, const std::string& key, int& value, int defaultValue = 0); bool writeDouble(TConfig type, const std::string& scope, const std::string& key, double value); bool readDouble(TConfig type, const std::string& scope, const std::string& key, double& value, double defaultValue = 0.0); bool writeGroup(TConfig type, const std::string& scope, const TListGroups& listOfGroups, const std::string& prefix = ""); bool readGroup(TConfig type, const std::string& scope, TListGroups& listOfGroups); ConfigurationController(); ~ConfigurationController(); static ConfigurationController* m_pInstance; static wxCriticalSection m_criticalSection; static wxString m_PreferredGeneralConfigPath; wxFileConfig * m_pPreferredGeneralConfig; wxFileConfig * m_pGeneralConfig; wxFileConfig * m_pUserConfig; wxFileConfig * m_pMachineConfig; wxString m_pathGlobalConfig; wxString m_pathUserConfig; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladoracciones.cpp000066400000000000000000000137771314736454600255240ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "controladoracciones.h" #include "../entorno.h" #include #define TAMANIO_MAX_PILA 10 namespace GNC { namespace GCS { ControladorAcciones* ControladorAcciones::Instance() { if (m_pInstance == NULL) { m_pInstance = new ControladorAcciones(); } return m_pInstance; } void ControladorAcciones::FreeInstance() { if(m_pInstance!=NULL) { delete m_pInstance; m_pInstance = NULL; } } ControladorAcciones* ControladorAcciones::m_pInstance = NULL; ControladorAcciones::ControladorAcciones() { m_pCriticalSection = new wxCriticalSection(); GNC::Entorno::Instance()->ViewsObservers.push_back(this); } ControladorAcciones::~ControladorAcciones() { GNC::Entorno::Instance()->ViewsObservers.remove(this); if(m_pCriticalSection != NULL) { delete m_pCriticalSection; m_pCriticalSection = NULL; } m_mapaAcciones.clear(); } void ControladorAcciones::PushAccion(GNC::GCS::IVista* pVista, GNC::GCS::Ptr pAccion) { wxCriticalSectionLocker lock((*m_pCriticalSection)); if(m_mapaAcciones.find(pVista) == m_mapaAcciones.end()) { m_mapaAcciones[pVista] = new TPilaDeshacer(); } TListaAcciones& listaAcciones = m_mapaAcciones[pVista]->m_listaAcciones; TListaAcciones::iterator& accionActual = m_mapaAcciones[pVista]->m_iteradorAcciones; if(accionActual != listaAcciones.begin()) { //este estado es cuando hemos deshecho algun paso, tendremos que vaciar desde el principio hasta el puntero while(accionActual != listaAcciones.begin()) { listaAcciones.pop_front(); } } listaAcciones.push_front(pAccion); if(listaAcciones.size() > TAMANIO_MAX_PILA) { listaAcciones.pop_back(); } accionActual = listaAcciones.begin(); } void ControladorAcciones::Deshacer(GNC::GCS::IVista* pVista) { wxCriticalSectionLocker lock((*m_pCriticalSection)); if(m_mapaAcciones.find(pVista) != m_mapaAcciones.end()) { //si hay una pila de deshacer TListaAcciones& listaAcciones = m_mapaAcciones[pVista]->m_listaAcciones; TListaAcciones::iterator& accionActual = m_mapaAcciones[pVista]->m_iteradorAcciones; if(accionActual != listaAcciones.end()) { //la accion actual no apunta al final (*accionActual)->Deshacer(); ++accionActual; } } } void ControladorAcciones::Hacer(GNC::GCS::IVista* pVista) { wxCriticalSectionLocker lock((*m_pCriticalSection)); if(m_mapaAcciones.find(pVista) != m_mapaAcciones.end()) { //si hay una pila de deshacer TListaAcciones& listaAcciones = m_mapaAcciones[pVista]->m_listaAcciones; TListaAcciones::iterator accionActual = m_mapaAcciones[pVista]->m_iteradorAcciones; if(accionActual != listaAcciones.begin()) { //y el puntero no esta al principio --accionActual; if((*accionActual)->PuedeRehacer()) { // y la accion se puede rehacer... (*accionActual)->Hacer(); m_mapaAcciones[pVista]->m_iteradorAcciones = accionActual; } } } } bool ControladorAcciones::PuedeHacer(GNC::GCS::IVista* pVista, std::string& nombreAccion) { nombreAccion = ""; wxCriticalSectionLocker lock((*m_pCriticalSection)); if(m_mapaAcciones.find(pVista) == m_mapaAcciones.end()) { return false; } else { TListaAcciones& listaAcciones = m_mapaAcciones[pVista]->m_listaAcciones; TListaAcciones::iterator accionActual = m_mapaAcciones[pVista]->m_iteradorAcciones; if(accionActual == listaAcciones.begin()) { return false; } else { --accionActual; nombreAccion = (*accionActual)->GetNombre(); return (*accionActual)->PuedeRehacer(); } } } bool ControladorAcciones::PuedeDeshacer(GNC::GCS::IVista* pVista, std::string& nombreAccion) { wxCriticalSectionLocker lock((*m_pCriticalSection)); if(m_mapaAcciones.find(pVista) == m_mapaAcciones.end()) { return false; } else { TListaAcciones& listaAcciones = m_mapaAcciones[pVista]->m_listaAcciones; TListaAcciones::iterator& accionActual = m_mapaAcciones[pVista]->m_iteradorAcciones; if(accionActual == listaAcciones.end()) { return false; } else { nombreAccion = (*accionActual)->GetNombre(); return true; } } } void ControladorAcciones::OnVistaDestruida(GNC::GCS::IVista* pVista) { //cuando se destruye una vista se vacia su pila de hacer/deshacer wxCriticalSectionLocker lock((*m_pCriticalSection)); TMapaVista::iterator it = m_mapaAcciones.find(pVista); if(it != m_mapaAcciones.end()) { delete (*it).second; m_mapaAcciones.erase(it); } } } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladoracciones.h000066400000000000000000000044671314736454600251650ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include class wxCriticalSection; namespace GNC { namespace GCS { class EXTAPI ControladorAcciones: public IControladorAcciones, public IObservadorVistas { public: static ControladorAcciones* Instance(); static void FreeInstance(); virtual void PushAccion(GNC::GCS::IVista* pVista, GNC::GCS::Ptr pAccion); virtual void Deshacer(GNC::GCS::IVista* pVista); virtual void Hacer(GNC::GCS::IVista* pVista); virtual bool PuedeHacer(GNC::GCS::IVista* pVista, std::string& nombreAccion); virtual bool PuedeDeshacer(GNC::GCS::IVista* pVista, std::string& nombreAccion); protected: static ControladorAcciones* m_pInstance; ControladorAcciones(); ~ControladorAcciones(); void OnVistaDestruida(GNC::GCS::IVista* pVista); typedef std::list > TListaAcciones; typedef struct TPilaDeshacer { TListaAcciones m_listaAcciones; TListaAcciones::iterator m_iteradorAcciones; TPilaDeshacer() { m_iteradorAcciones = m_listaAcciones.end(); } ~TPilaDeshacer() { m_listaAcciones.clear(); } } TPilaDeshacer; typedef std::map TMapaVista; TMapaVista m_mapaAcciones; wxCriticalSection* m_pCriticalSection; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorautenticacion.cpp000066400000000000000000000317131314736454600265540ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include "controladorautenticacion.h" #include "controladorpermisos.h" #include "controladorlog.h" #include #include
    #include
    #include #define SALT "654w34qt5sdf/*-/435609'zvasd?asf" #define USUARIO_MODO_PASSWORD "" GSEC::Auth::ControladorAutenticacion* GSEC::Auth::ControladorAutenticacion::m_pInstance = NULL; GSEC::Auth::ControladorAutenticacion::ControladorAutenticacion() { } GSEC::Auth::ControladorAutenticacion::~ControladorAutenticacion() { } GSEC::Auth::ControladorAutenticacion* GSEC::Auth::ControladorAutenticacion::Instance() { if (m_pInstance == NULL) { m_pInstance = new ControladorAutenticacion(); } return m_pInstance; } void GSEC::Auth::ControladorAutenticacion::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } GNC::GCS::Ptr GSEC::Auth::ControladorAutenticacion::IniciarSesionModificacionBBDDSeguridad() { GNC::GCS::Ptr pConexion = GetNewConexionSeguridad(); pConexion->Begin(); return pConexion; } void GSEC::Auth::ControladorAutenticacion::GuardarCambiosBBDDSeguridad(GNC::GCS::Ptr sesion) { sesion->Commit(); sesion->Begin(); } void GSEC::Auth::ControladorAutenticacion::CancelarCambiosYCerrarBBDDSeguridad(GNC::GCS::Ptr sesion) { sesion->Rollback(); sesion->Close(); } GSEC::Auth::TipoAutenticacion GSEC::Auth::ControladorAutenticacion::GetTipoAutenticacion() { //se busca en la configuracion... int secMode; GNC::GCS::ConfigurationController::Instance()->readIntGeneral("/GinkgoCore/Security", "SecMode", secMode, (int) TA_NO_LOGIN); switch (secMode) { case TA_NO_LOGIN: return TA_NO_LOGIN; case TA_USER_PASSWORD: return TA_USER_PASSWORD; case TA_PASSWORD: return TA_PASSWORD; default: return TA_NO_LOGIN; } } void GSEC::Auth::ControladorAutenticacion::SetTipoAutenticacion(GSEC::Auth::TipoAutenticacion tipo) { GNC::GCS::ConfigurationController::Instance()->writeIntGeneral("/GinkgoCore/Security", "SecMode", (int) tipo); } bool GSEC::Auth::ControladorAutenticacion::Auth(const std::string& usuario, const std::string& password) { TipoAutenticacion ta = GetTipoAutenticacion(); if (ta == TA_PASSWORD) { return AutenticacionPassword(password); } else if(ta == TA_USER_PASSWORD) { return AutenticacionUsuarioPassword(usuario, password); } else { return true; } } bool GSEC::Auth::ControladorAutenticacion::InsertarUsuario(const std::string& user, const std::string& password, GNC::GCS::Ptr sesion) { GNC::GCS::Ptr pConexion; if(sesion.IsValid()) { pConexion = sesion; } else { pConexion = GetNewConexionSeguridad(); } if(!pConexion.IsValid()) { //ha habido error porque no se ha podido abrir la bbdd de seguridad, asumimos que no hay ni users ni passwords ni na return false; } bool resultado = false; try { wxSQLite3StatementBuffer bufSQL; std::string passwordHash = GetHashPassword(password); bufSQL.Format("INSERT INTO UserPass (User,Password) VALUES ('%q','%q')",user.c_str(),passwordHash.c_str()); if(pConexion->ExecuteUpdate(bufSQL)>0) { resultado = true; } } catch (wxSQLite3Exception& ex) { LOG_WARN("Core/BBDD", "Error al insertar el usuario " << ex.GetMessage().ToUTF8()); } if(!sesion.IsValid()) { pConexion->Close(); } return resultado; } bool GSEC::Auth::ControladorAutenticacion::CambiarPassword(const std::string& user, const std::string& password, GNC::GCS::Ptr sesion) { GNC::GCS::Ptr pConexion; if(sesion.IsValid()) { pConexion = sesion; } else { pConexion = GetNewConexionSeguridad(); } if(!pConexion.IsValid()) { //ha habido error porque no se ha podido abrir la bbdd de seguridad, asumimos que no hay ni users ni passwords ni na return false; } bool resultado = false; try { wxSQLite3StatementBuffer bufSQL; std::string passwordHash = GetHashPassword(password); bufSQL.Format("UPDATE UserPass SET Password='%q' WHERE user='%q'",passwordHash.c_str(), user.c_str()); if(pConexion->ExecuteUpdate(bufSQL)>0) { resultado = true; } } catch (wxSQLite3Exception& ex) { LOG_WARN("Core/BBDD", "Error al insertar el usuario " << ex.GetMessage().ToUTF8()); } if(!sesion.IsValid()) { pConexion->Close(); } return resultado; } bool GSEC::Auth::ControladorAutenticacion::SetPasswordGeneral(const std::string& password, GNC::GCS::Ptr sesion) { GNC::GCS::Ptr pConexion; if(sesion.IsValid()) { pConexion = sesion; } else { pConexion = GetNewConexionSeguridad(); } if(!pConexion.IsValid()) { //ha habido error porque no se ha podido abrir la bbdd de seguridad, asumimos que no hay ni users ni passwords ni na return false; } bool resultado = false; try { wxSQLite3StatementBuffer bufSQL; std::string passwordHash = GetHashPassword(password); bufSQL.Format("INSERT OR REPLACE INTO UserPass (User,Password) VALUES ('%q','%q')",USUARIO_MODO_PASSWORD,passwordHash.c_str()); if(pConexion->ExecuteUpdate(bufSQL)>0) { resultado = true; } } catch (wxSQLite3Exception& ex) { LOG_WARN("Core/BBDD", "Error al establecer password general " << ex.GetMessage().ToUTF8()); } if(!sesion.IsValid()) { pConexion->Close(); } return resultado; } bool GSEC::Auth::ControladorAutenticacion::EliminarUsuario(const std::string& user, GNC::GCS::Ptr sesion) { GNC::GCS::Ptr pConexion; if(sesion.IsValid()) { pConexion = sesion; } else { pConexion = GetNewConexionSeguridad(); } if(!pConexion.IsValid()) { //ha habido error porque no se ha podido abrir la bbdd de seguridad, asumimos que no hay ni users ni passwords ni na return false; } bool resultado = false; try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("DELETE FROM UserPass WHERE User = '%q'",user.c_str()); if(pConexion->ExecuteUpdate(bufSQL)>0) { resultado = true; } } catch (wxSQLite3Exception& ex) { LOG_WARN("Core/BBDD", "Error al eliminar el usuario de la base de datos " << ex.GetMessage().ToUTF8()); } if(!sesion.IsValid()) { pConexion->Close(); } return resultado; } void GSEC::Auth::ControladorAutenticacion::GetAllUsers(std::list& listaUsuarios, GNC::GCS::Ptr sesion) { GNC::GCS::Ptr pConexion; if(sesion.IsValid()) { pConexion = sesion; } else { pConexion = GetNewConexionSeguridad(); } if(!pConexion.IsValid()) { //ha habido error porque no se ha podido abrir la bbdd de seguridad, asumimos que no hay ni users ni passwords ni na return; } try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("SELECT User " "FROM UserPass WHERE User <> '%q'", USUARIO_MODO_PASSWORD); wxSQLite3ResultSet resultados = pConexion->ExecuteQuery(bufSQL); while (resultados.NextRow()) { const std::string user(resultados.GetAsString(0).ToUTF8()); listaUsuarios.push_back(user); } } catch (wxSQLite3Exception& ex) { LOG_WARN("Core/BBDD", "Error al realizar la consulta de usuarios " << ex.GetMessage().ToUTF8()); } if(!sesion.IsValid()) { pConexion->Close(); } } bool GSEC::Auth::ControladorAutenticacion::ExisteUsuario(const std::string& user, GNC::GCS::Ptr sesion) { GNC::GCS::Ptr pConexion; if(sesion.IsValid()) { pConexion = sesion; } else { pConexion = GetNewConexionSeguridad(); } if(!pConexion.IsValid()) { //ha habido error porque no se ha podido abrir la bbdd de seguridad, asumimos que no hay ni users ni passwords ni na return false; } bool resultado = false; try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("SELECT count(*) FROM UserPass WHERE User='%q'", user.c_str()); resultado = pConexion->ExecuteScalar(bufSQL) > 0; } catch (wxSQLite3Exception& ex) { LOG_WARN("Core/BBDD", "Error al realizar la consulta IsPasswordGeneralSetted " << ex.GetMessage().ToUTF8()); } if(!sesion.IsValid()) { pConexion->Close(); } return resultado; } bool GSEC::Auth::ControladorAutenticacion::IsPasswordGeneralSetted(GNC::GCS::Ptr sesion) { GNC::GCS::Ptr pConexion; if(sesion.IsValid()) { pConexion = sesion; } else { pConexion = GetNewConexionSeguridad(); } if(!pConexion.IsValid()) { //ha habido error porque no se ha podido abrir la bbdd de seguridad, asumimos que no hay ni users ni passwords ni na return false; } bool resultado = false; try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("SELECT count(*) FROM UserPass WHERE User='%q'", USUARIO_MODO_PASSWORD); resultado = pConexion->ExecuteScalar(bufSQL) > 0; } catch (wxSQLite3Exception& ex) { LOG_WARN("Core/BBDD", "Error al realizar la consulta IsPasswordGeneralSetted " << ex.GetMessage().ToUTF8()); } if(!sesion.IsValid()) { pConexion->Close(); } return resultado; } int GSEC::Auth::ControladorAutenticacion::GetMaxLongitudUsuario() { return 20; } bool GSEC::Auth::ControladorAutenticacion::AutenticacionUsuarioPassword(const std::string& usuario, const std::string& password) { GNC::GCS::Ptr pConexion = GetNewConexionSeguridad(); if(!pConexion.IsValid()) { //ha habido error porque no se ha podido abrir la bbdd de seguridad, asumimos que no hay ni users ni passwords ni na return true; } bool resultado = false; try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("SELECT Password " "FROM UserPass WHERE " "User = '%q'",usuario.c_str()); wxSQLite3ResultSet resultados = pConexion->ExecuteQuery(bufSQL); if (resultados.NextRow()) { const std::string passWordBBDD(resultados.GetAsString(0).ToUTF8()); resultado = passWordBBDD == GetHashPassword(password); } } catch (wxSQLite3Exception& ex) { LOG_WARN("Core/BBDD", "Error al realizar la consulta de password " << ex.GetMessage().ToUTF8()); } //si ha habido errores... devolvemos true para que siga pConexion->Close(); if (resultado) { LOG_INFO("Core/Autenticacion", "El usuario " << usuario << " se ha autenticado correctamente"); } else { LOG_INFO("Core/Autenticacion", "El usuario " << usuario << " ha introducido un password invlido"); } return resultado; } bool GSEC::Auth::ControladorAutenticacion::AutenticacionPassword(const std::string& password) { return AutenticacionUsuarioPassword(USUARIO_MODO_PASSWORD, password); } std::string GSEC::Auth::ControladorAutenticacion::GetHashPassword(const std::string& password) { std::ostringstream ostr; ostr << password; //salt ostr << SALT; std::string cadenaEntrada = ostr.str(); unsigned char salida[SHA512_DIGEST_LENGTH]; SHA512((const unsigned char*)cadenaEntrada.c_str(), cadenaEntrada.size(), salida); std::ostringstream cadenaSHA; cadenaSHA.setf ( std::ios::hex, std::ios::basefield ); for(int i = 0; i GSEC::Auth::ControladorAutenticacion::GetNewConexionSeguridad() { GNC::GCS::Ptr pConexion(new wxSQLite3Database()); try { //pillamos la bbdd std::string pathFicheroDB; std::ostringstream ostr; ostr << GNC::Entorno::Instance()->GetGinkgoUserDir() << (char)wxFileName::GetPathSeparator(wxPATH_NATIVE) << "ginkgosec.db"; pathFicheroDB = ostr.str(); wxString wxDirectorio = FROMPATH(GNC::Entorno::Instance()->GetGinkgoUserDir()); if(!wxDirExists(wxDirectorio)) { #ifdef _WIN32 bool correcto = wxMkdir(wxDirectorio,511); #else bool correcto = wxMkDir(wxDirectorio.ToUTF8(), 0770) == -1? false : true; #endif if(!correcto) { //std::cout << "Error al crear el directorio " << wxDirectorio.ToUTF8() << std::endl; //se escribe en tmp... LOG_WARN("Core/BBDD", "No tiene permisos para escribir en el directorio del usuario, esto hace que la seguridad deje de funcionar dado que no puede crearse la base de datos") std::ostringstream ostr2; ostr2 << GNC::Entorno::Instance()->GetGinkgoTempDir() << (char)wxFileName::GetPathSeparator(wxPATH_NATIVE) << "ginkgosec.db"<IsOpen()) { if( !AbrirConexionBBDDSeguridad(*pConexion,pathFicheroDB) ) { ////////////////////////////////////////////error fatal no se puede abrir la bbdd LOG_ERROR("Core/BBDD", "Error fatal, no se puede escribir la base de datos de seguridad") return NULL; } } } catch (wxSQLite3Exception& ex) { LOG_WARN("Core/BBDD", "Error al crear la base de datos de mensajera: "<(pConexion); } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorautenticacion.h000066400000000000000000000056071314736454600262240ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include class wxSQLite3Database; namespace GSEC { namespace Auth { typedef enum { TA_NO_LOGIN = 0, TA_USER_PASSWORD, TA_PASSWORD } TipoAutenticacion; class EXTAPI ControladorAutenticacion : public IControladorAutenticacion { public: static ControladorAutenticacion* Instance(); static void FreeInstance(); GNC::GCS::Ptr IniciarSesionModificacionBBDDSeguridad(); void GuardarCambiosBBDDSeguridad(GNC::GCS::Ptr sesion); void CancelarCambiosYCerrarBBDDSeguridad(GNC::GCS::Ptr sesion); TipoAutenticacion GetTipoAutenticacion(); void SetTipoAutenticacion(TipoAutenticacion tipo); virtual bool Auth(const std::string& user, const std::string& password); bool InsertarUsuario(const std::string& user, const std::string& password, GNC::GCS::Ptr sesion=NULL); bool CambiarPassword(const std::string& user, const std::string& password, GNC::GCS::Ptr sesion=NULL); bool SetPasswordGeneral(const std::string& password, GNC::GCS::Ptr sesion = NULL); bool EliminarUsuario(const std::string& user, GNC::GCS::Ptr sesion=NULL); void GetAllUsers(std::list& listaUsuarios, GNC::GCS::Ptr sesion =NULL); bool ExisteUsuario(const std::string& user, GNC::GCS::Ptr sesion=NULL); bool IsPasswordGeneralSetted(GNC::GCS::Ptr sesion=NULL); int GetMaxLongitudUsuario(); protected: ControladorAutenticacion(); ~ControladorAutenticacion(); static ControladorAutenticacion* m_pInstance; bool AutenticacionUsuarioPassword(const std::string& usuario, const std::string& password); bool AutenticacionPassword(const std::string& password); std::string GetHashPassword(const std::string& password); GNC::GCS::Ptr GetNewConexionSeguridad(); }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorbbddhl7.cpp000066400000000000000000000343411314736454600252340ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "controladorbbddhl7.h" #include "controladorextensiones.h" #include #include #define LOGGER "ControladorBBDDHl7" #include "controladorlog.h" #include "dcmtk/dicomservers.h" #include "../entorno.h" #include #include #include #include #include #ifndef _WIN32 #include #endif #include #include
    #include #include GIL::HL7::ControladorBBDDHl7* GIL::HL7::ControladorBBDDHl7::Instance() { if (m_pInstance == NULL) { m_pInstance = new GIL::HL7::ControladorBBDDHl7(); } return m_pInstance; } void GIL::HL7::ControladorBBDDHl7::FreeInstance() { LOG_DEBUG("Core/BBDD", "Liberando instancia de ControladorBBDDHl7") if(m_pInstance!=NULL) { delete m_pInstance; m_pInstance = NULL; } } GIL::HL7::ControladorBBDDHl7* GIL::HL7::ControladorBBDDHl7::m_pInstance = NULL; GIL::HL7::ControladorBBDDHl7::ControladorBBDDHl7() { m_pConexion = new wxSQLite3Database(); try { //pillamos la bbdd std::string pathFicheroDB; std::ostringstream ostr; ostr << GNC::Entorno::Instance()->GetGinkgoUserDir() << (char)wxFileName::GetPathSeparator(wxPATH_NATIVE) << "ginkgodatabasehl7.db"; pathFicheroDB = ostr.str(); wxString wxDirectorio = FROMPATH(GNC::Entorno::Instance()->GetGinkgoUserDir()); if(!wxDirExists(wxDirectorio)) { bool correcto = true; #ifdef _WIN32 wxMkdir(wxDirectorio,511); #else correcto = wxMkDir(wxDirectorio.ToUTF8(), 0770) == -1? false : true; #endif if(!correcto) { //std::cout << "Error al crear el directorio " << wxDirectorio.ToUTF8() << std::endl; //se escribe en tmp... LOG_WARN("Core/BBDD", "No tiene permisos para escribir en el directorio del usuario, se corre el riesgo de no enviar todos los mensajes Hl7") std::ostringstream ostr2; ostr2 << GNC::Entorno::Instance()->GetGinkgoTempDir() << (char)wxFileName::GetPathSeparator(wxPATH_NATIVE) << "ginkgodatabasehl7.db"; pathFicheroDB = ostr2.str(); } } //existe?? if(!wxFileExists(FROMPATH(pathFicheroDB))) { //se crea el fichero de base de datos CreateMensajesHl7DB(*m_pConexion,pathFicheroDB.c_str()); } if(!m_pConexion->IsOpen()) { if( !AbrirConexionBBDDMensajes(*m_pConexion,pathFicheroDB) ) { ////////////////////////////////////////////error fatal no se puede abrir la bbdd LOG_ERROR("Core/BBDD", "Error fatal, no se puede escribir la base de datos de envío de mensajes") } } } catch (wxSQLite3Exception& ex) { LOG_WARN("Core/BBDD", "Error al crear la base de datos de mensajería: "<Close(); delete m_pConexion; m_pConexion =NULL; } LOG_DEBUG("Core/BBDD", "ControladorBBDDHl7 destruído") } bool GIL::HL7::ControladorBBDDHl7::AbrirConexionBBDD() { //lo dejamos en seccion critica para que no se inicialice mas de una vez wxCriticalSectionLocker locker(m_criticalSection); if(m_pConexion != NULL && m_pConexion->IsOpen()) { return true; } try { //pillamos la bbdd //existe?? std::string pathFicheroDB = m_pathBBDD; if(!wxFileExists(FROMPATH(pathFicheroDB))) { pathFicheroDB = m_pathBBDDTemporal; if(!wxFileExists(FROMPATH(pathFicheroDB))) { return false; } else { LOG_WARN("Core/BBDD", "Buscando en la BBDD temporal " << pathFicheroDB) } } m_pConexion = new wxSQLite3Database(); if(!m_pConexion->IsOpen()) { if( !AbrirConexionBBDDMensajes(*m_pConexion,pathFicheroDB) ) { LOG_ERROR("Core/BBDD", "Error al abrir la BBDD de mensajes HL7 "<& listaMensajes, bool soloNoEnviados) { if(m_pConexion == NULL) { if(!AbrirConexionBBDD()) { return; } } try { wxSQLite3StatementBuffer bufSQL; if(soloNoEnviados) { bufSQL.Format("SELECT IDMensaje, Mensaje, URLEnvio, FechaEnvio,Enviado, MensajeError, Protocolo, ProcesarACK, MsgControlId " "FROM MensajesHL7 WHERE " "Enviado <> 'S' order by FechaEnvio DESC"); } else { bufSQL.Format("SELECT IDMensaje, Mensaje, URLEnvio, FechaEnvio,Enviado, MensajeError, Protocolo, ProcesarACK, MsgControlId " "FROM MensajesHL7 order by FechaEnvio DESC"); } wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(bufSQL); while (resultados.NextRow()) { const int idMensaje = resultados.GetInt(0); const std::string mensaje(resultados.GetAsString(1).ToUTF8()); const std::string urlEnvio(resultados.GetAsString(2).ToUTF8()); const wxDateTime fechaEnvio = resultados.GetDateTime(3); std::string strFechaEnvio; if(fechaEnvio.IsValid()) { strFechaEnvio = fechaEnvio.Format(wxT("%d/%m/%Y %H:%M:%S")).ToUTF8(); } std::string strEstado(resultados.GetAsString(4).ToUTF8()); char estado = 'E'; if(strEstado.size() == 1) estado = strEstado.c_str()[0]; const std::string mensajeError(resultados.GetAsString(5).ToUTF8()); int protocolo = resultados.GetInt(6); char charProcesarACK = (char)resultados.GetAsString(7)[0]; bool procesarACK = charProcesarACK=='S'; const std::string msgControlID(resultados.GetAsString(8).ToUTF8()); MensajeHL7 mensajeHl7(idMensaje,mensaje,strFechaEnvio,urlEnvio,estado,mensajeError,protocolo,procesarACK,msgControlID); listaMensajes.push_back(mensajeHl7); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("Core/BBDD", "Error al consultar la BBDD:" << ex.GetMessage().ToUTF8()) throw GIL::HL7::HL7Exception(std::string(ex.GetMessage().ToUTF8()),"BBDD HL7"); } } void GIL::HL7::ControladorBBDDHl7::PurgarMensajesEnviados() { if(m_pConexion == NULL) { if(!AbrirConexionBBDD()) { return; } } try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("Delete FROM MensajesHL7 WHERE Enviado = 'S'"); m_pConexion->ExecuteUpdate(bufSQL); } catch (wxSQLite3Exception& ex) { LOG_ERROR("Core/BBDD", "Error al consultar la BBDD:" << ex.GetMessage().ToUTF8()) throw GIL::HL7::HL7Exception(std::string(ex.GetMessage().ToUTF8()),"BBDD HL7"); } } void GIL::HL7::ControladorBBDDHl7::ActualizarEstadoMensaje(const int idMensaje, const GIL::HL7::MensajeHL7::TEstado estado, const std::string& mensajeError) { if(m_pConexion == NULL) { if(!AbrirConexionBBDD()) { return; } } try { char enviado; switch(estado) { case GIL::HL7::MensajeHL7::TE_Enviado: enviado = 'S'; break; case GIL::HL7::MensajeHL7::TE_Error: enviado = 'E'; break; case GIL::HL7::MensajeHL7::TE_Warning: enviado = 'W'; break; case GIL::HL7::MensajeHL7::TE_Pendiente: enviado = 'P'; break; default: enviado = 'P'; break; } wxSQLite3StatementBuffer bufSQL; bufSQL.Format("UPDATE MensajesHL7 set MensajeError='%q',Enviado = '%c' " "WHERE IDMensaje = '%d'",mensajeError.c_str(),enviado, idMensaje); m_pConexion->ExecuteUpdate(bufSQL); } catch (wxSQLite3Exception& ex) { LOG_ERROR("Core/BBDD", "Error al consultar la BBDD:" << ex.GetMessage().ToUTF8()) throw GIL::HL7::HL7Exception(std::string(ex.GetMessage().ToUTF8()),"BBDD HL7"); } } void GIL::HL7::ControladorBBDDHl7::InsertarMensaje(MensajeHL7 mensaje) { try { char charProcesar = 'S'; if(!mensaje.m_procesarACK) { charProcesar = 'N'; } wxSQLite3StatementBuffer bufSQL; bufSQL.Format("INSERT INTO MensajesHL7 (IDMensaje,FechaEnvio,Mensaje,URLEnvio,Protocolo,ProcesarACK,MsgControlId) VALUES (NULL,datetime('now','localtime'),'%q','%q','%d','%c','%q')" ,mensaje.m_mensaje.c_str(), mensaje.m_destino.c_str(), mensaje.m_protocolo, charProcesar, mensaje.m_msgControlId.c_str()); if(m_pConexion->ExecuteUpdate(bufSQL)>0) { } else { throw HL7Exception("Error al insertar el mensaje en la cola, consulte a su proveedor", "NET"); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("Core/BBDD", "Error al insertar en la BBDD:" << ex.GetMessage().ToUTF8()) throw GIL::HL7::HL7Exception(std::string(ex.GetMessage().ToUTF8()),"BBDD HL7"); } } void GIL::HL7::ControladorBBDDHl7::ActualizarMensaje(const int idMensaje, const std::string& destino, const std::string& mensaje, const MensajeHL7::TEstado estado) { try { char enviado; switch(estado) { case GIL::HL7::MensajeHL7::TE_Enviado: enviado = 'S'; break; case GIL::HL7::MensajeHL7::TE_Error: enviado = 'E'; break; case GIL::HL7::MensajeHL7::TE_Warning: enviado = 'W'; break; case GIL::HL7::MensajeHL7::TE_Pendiente: enviado = 'P'; break; default: enviado = 'P'; break; } wxSQLite3StatementBuffer bufSQL; bufSQL.Format("UPDATE MensajesHL7 SET URLEnvio='%q', Mensaje ='%q', Enviado = '%c' where IDMensaje='%d'",destino.c_str(), mensaje.c_str(), enviado, idMensaje); if(m_pConexion->ExecuteUpdate(bufSQL)>0) { } else { throw HL7Exception("Error al insertar el mensaje en la cola, consulte a su proveedor", "NET"); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("Core/BBDD", "Error al insertar en la BBDD:" << ex.GetMessage().ToUTF8()) throw GIL::HL7::HL7Exception(std::string(ex.GetMessage().ToUTF8()),"BBDD HL7"); } } void GIL::HL7::ControladorBBDDHl7::EliminarMensaje(const int idMensaje) { if(m_pConexion == NULL) { if(!AbrirConexionBBDD()) { return; } } try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("Delete FROM MensajesHL7 WHERE IDMensaje = '%d'", idMensaje); m_pConexion->ExecuteUpdate(bufSQL); } catch (wxSQLite3Exception& ex) { LOG_ERROR("Core/BBDD", "Error al Eliminar en la BBDD:" << ex.GetMessage().ToUTF8()) throw GIL::HL7::HL7Exception(std::string(ex.GetMessage().ToUTF8()),"BBDD HL7"); } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorbbddhl7.h000066400000000000000000000065201314736454600246770ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include class wxSQLite3Database; class wxCriticalSection; namespace GIL { namespace HL7 { struct MensajeHL7 { typedef enum { TE_Error, TE_Warning, TE_Enviado, TE_Pendiente, TE_Unknown } TEstado; int m_id; std::string m_mensaje; std::string m_fecha; std::string m_mensajeError; std::string m_destino; std::string m_msgControlId; int m_protocolo; bool m_procesarACK; TEstado m_estado; MensajeHL7(int id, const std::string& mensaje, const std::string& fecha, const std::string& destino,const char estado, const std::string& mensajeError, int protocolo, bool procesarACK, const std::string& msgControlId ) : m_id(id), m_mensaje(mensaje), m_fecha(fecha), m_mensajeError(mensajeError), m_destino(destino), m_msgControlId(msgControlId), m_protocolo(protocolo), m_procesarACK(procesarACK) { switch(estado) { case 'S': m_estado = TE_Enviado; break; case 'N': m_estado = TE_Pendiente; break; case 'W': m_estado = TE_Warning; break; case 'E': m_estado = TE_Error; break; default: m_estado = TE_Unknown; } } ~MensajeHL7() { } }; typedef std::list TListaMensajes; class EXTAPI ControladorBBDDHl7 { public: static ControladorBBDDHl7* Instance(); static void FreeInstance(); void GetMensajesHL7(std::list& listaMensajes, bool soloNoEnviados = false); void PurgarMensajesEnviados(); void ActualizarEstadoMensaje(const int idMensaje, const MensajeHL7::TEstado estado, const std::string& mensajeError); void InsertarMensaje(MensajeHL7 mensaje); void ActualizarMensaje(const int idMensaje, const std::string& destino, const std::string& mensaje, const MensajeHL7::TEstado estado); void EliminarMensaje(const int idMensaje); protected: static ControladorBBDDHl7* m_pInstance; ControladorBBDDHl7(); ~ControladorBBDDHl7(); bool AbrirConexionBBDD(); wxSQLite3Database* m_pConexion; std::string m_pathBBDD; std::string m_pathBBDDTemporal; wxCriticalSection m_criticalSection; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorcarga.cpp000066400000000000000000001276371314736454600250160ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include
    #include #include #include
    #include #include #include "controladorcarga.h" #include "controladoreventos.h" #include "controladorvistas.h" #include "pacscontroller.h" #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include #include #include #include #include #include #include #include #include #include #include "streaming/streamingloader.h" class CargaItkProgressCallback : public itk::Command { public: typedef CargaItkProgressCallback Self; typedef itk::Command Superclass; typedef itk::SmartPointer Pointer; typedef itk::SmartPointer ConstPointer; itkTypeMacro (CargaItkProgressCallback, itk::Command); itkNewMacro (Self); /** Standard Command virtual methods */ void Execute(itk::Object *caller, const itk::EventObject &event) { itk::ProcessObject* po = dynamic_cast(caller); if( !po ) return; if( typeid(event) == typeid ( itk::ProgressEvent) ) { try { if(!m_stop) { if (m_pComando) { if (!m_pComando->NotificarProgreso(po->GetProgress(),m_texto)) { po->SetAbortGenerateData(true); } } } } catch(std::exception& /*ex*/) { po->SetAbortGenerateData(true); return; } } } void Execute(const itk::Object *caller, const itk::EventObject &event) { itk::ProcessObject* po = dynamic_cast( const_cast(caller)); if( !po ) return; if( typeid(event) == typeid ( itk::ProgressEvent) ) { try { if(!m_stop) { if (m_pComando) { if (!m_pComando->NotificarProgreso(po->GetProgress(),m_texto)) { po->SetAbortGenerateData(true); } } } } catch(std::exception& /*ex*/) { po->SetAbortGenerateData(true); return; } } } void SetCommand (GNC::GCS::IComando* cmd) { m_pComando = cmd; } void SetTexto (std::string str) { m_texto = str; } protected: CargaItkProgressCallback() { m_pComando=NULL; m_stop=false; } ~CargaItkProgressCallback() { m_pComando=NULL; } private: GNC::GCS::IComando* m_pComando; std::string m_texto; bool m_stop; }; GNC::GCS::ControladorCarga * GNC::GCS::ControladorCarga::m_psInstancia = NULL; wxCriticalSection* GNC::GCS::ControladorCarga::m_pCriticalSection = NULL; vtkSmartPointer GNC::GCS::ControladorCarga::CargarITKMultidimensional(IComando* cmd, ListaRutas& listaFicheros, int* posicion, double* spacing) { //primero leemos el pixeltype... GIL::DICOM::DicomDataset base; GIL::DICOM::IDICOMManager* pDicomManager = GIL::DICOM::PACSController::Instance()->CrearInstanciaDeDICOMManager(); pDicomManager->CargarFichero(listaFicheros.front(),base); GIL::DICOM::PACSController::Instance()->LiberarInstanciaDeDICOMManager(pDicomManager); std::string tag; if(base.getTag(std::string("0028|0002"),tag)) { if(tag == "3") { return CargarITKMultidimensionalRGB(cmd, listaFicheros,spacing); } else if (tag == "1") { //return CargarVTK(listaFicheros); return CargarITKMultidimensionalUnsignedShort(cmd, listaFicheros, posicion,spacing); } else { std::ostringstream os; os << _Std("Studies with") << tag << _Std(" unsupported components"); throw GNC::GCS::ControladorCargaException( os.str(), "ControladorCarga/CargarITKMultidimensional"); } } else { return CargarITKMultidimensionalUnsignedShort(cmd, listaFicheros, posicion,spacing); //return CargarVTK(listaFicheros); } } vtkSmartPointer GNC::GCS::ControladorCarga::CargarITK(IComando* cmd, std::string& path, int* orientacion, double* spacing) { ListaRutas lista; lista.push_back(path); return CargarITKMultidimensional(cmd, lista, orientacion,spacing); } vtkSmartPointer GNC::GCS::ControladorCarga::CargarITKMultidimensionalUnsignedShort(IComando* cmd, ListaRutas& listaFicheros, int* orientacion, double* spacing) { vtkSmartPointer img = vtkSmartPointer::New(); //int bitsStored, highBit, bitsAllocated,pixelRepresentation = 0; wxCriticalSectionLocker locker(*m_pCriticalSection); typedef double PixelType; typedef itk::Image ImageType; typedef itk::GDCMImageIO ImageIOType; typedef itk::ImageSeriesReader GenericReaderType; ImageIOType::Pointer dicomIO = ImageIOType::New(); GenericReaderType::Pointer reader = GenericReaderType::New(); CargaItkProgressCallback::Pointer cbProgreso = CargaItkProgressCallback::New(); try { reader->SetImageIO(dicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } reader->SetFileNames(filesCopy); } else { throw GNC::GCS::ControladorCargaException( "No input files", "ControladorCarga/CargarITKMultidimensionalUnsignedShort"); } //reader->GetOutput()->ReleaseDataFlagOn(); cbProgreso->SetCommand(cmd); cbProgreso->SetTexto(_Std("Reading properties")); reader->AddObserver (itk::ProgressEvent(), cbProgreso); reader->UpdateOutputInformation(); } catch (itk::ExceptionObject& ex) { reader->ResetPipeline(); throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: ") + ex.GetDescription(), "ControladorCarga/CargaMultidimensional"); } catch (std::exception& ex) { reader->ResetPipeline(); throw GNC::GCS::ControladorCargaException( _Std("Internal error reading the study: "), std::string("ControladorCarga/CargaMultidimensional") + ex.what()); } catch (...) { reader->ResetPipeline(); throw GNC::GCS::ControladorCargaException( _Std("Internal error reading the study: "), "ControladorCarga/CargaMultidimensional"); } if (orientacion != NULL) { ImageType::Pointer im = reader->GetOutput(); ImageType::DirectionType dir = im->GetDirection(); /* std::cout << dir[0][0] << ", " << dir[0][1] << ", " << dir[0][2] << std::endl; std::cout << dir[1][0] << ", " << dir[1][1] << ", " << dir[1][2] << std::endl; std::cout << dir[2][0] << ", " << dir[2][1] << ", " << dir[2][2] << std::endl; */ if( std::abs( dir[0][2] ) > std::abs(dir[1][2]) && std::abs( dir[0][2]) > std::abs(dir[2][2])) { //std::cout << "SAGITAL" << std::endl; *orientacion = 0; } else if( std::abs( dir[1][2] ) > std::abs(dir[0][2]) && std::abs( dir[1][2]) > std::abs(dir[2][2])) { //std::cout << "CORONAL" << std::endl; *orientacion = 1; } else if( std::abs( dir[2][2] ) > std::abs(dir[0][2]) && std::abs( dir[2][2]) > std::abs(dir[1][2])) { //std::cout << "AXIAL" << std::endl; *orientacion = 2; } } GenericReaderType::OutputImageType::SizeType dims = reader->GetOutput()->GetLargestPossibleRegion().GetSize(); img->SetDimensions(dims[0], dims[1], dims[2]); img->SetOrigin(dicomIO->GetOrigin(0), dicomIO->GetOrigin(1), dicomIO->GetOrigin(2)); if(spacing == NULL) { double chk_spacing[3] = {dicomIO->GetSpacing(0), dicomIO->GetSpacing(1), dicomIO->GetSpacing(2)}; if (chk_spacing[0] < std::numeric_limits::epsilon() || chk_spacing[1] < std::numeric_limits::epsilon()) { std::stringstream ss; ss << _Std("Spacing is not valid: (") << chk_spacing[0] << ", " << chk_spacing[1] << ", " << chk_spacing[2] << ")"; GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL,ss.str(),GNC::GCS::Events::EventoMensajes::PopUpMessage,GNC::GCS::Events::EventoMensajes::Aviso)); chk_spacing[0] = 1.0f; chk_spacing[1] = 1.0f; chk_spacing[2] = 1.0f; } img->SetSpacing(chk_spacing); } else { double chk_spacing[3] = {spacing[0], spacing[1], spacing[2]}; if (chk_spacing[0] < std::numeric_limits::epsilon() || chk_spacing[1] < std::numeric_limits::epsilon()) { std::stringstream ss; ss << _Std("Spacing is not valid: (") << chk_spacing[0] << ", " << chk_spacing[1] << ", " << chk_spacing[2] << ")"; GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL,ss.str(),GNC::GCS::Events::EventoMensajes::PopUpMessage,GNC::GCS::Events::EventoMensajes::Aviso)); chk_spacing[0] = 1.0f; chk_spacing[1] = 1.0f; chk_spacing[2] = 1.0f; } img->SetSpacing(chk_spacing); } itk::ProcessObject::Pointer processObject; switch(dicomIO->GetComponentType()) { case ImageIOType::UCHAR: { typedef unsigned char TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; try { img->AllocateScalars(VTK_UNSIGNED_CHAR, dicomIO->GetNumberOfComponents()); } catch (...) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Out of memory"), "ControladorCarga/CargaMultidimensional"); } TypedReaderType::Pointer treader = TypedReaderType::New(); ImageIOType::Pointer tdicomIO = ImageIOType::New(); treader->SetImageIO(tdicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } treader->SetFileNames(filesCopy); } treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); treader->GetOutput()->GetPixelContainer()->SetImportPointer((TypedReaderType::OutputImageType::PixelType*)(img->GetScalarPointer()), dims[0] * dims[1] * dims[2], false ); processObject = treader; } break; case ImageIOType::CHAR: { typedef char TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; try { img->AllocateScalars(VTK_CHAR, dicomIO->GetNumberOfComponents()); } catch (...) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Out of memory"), "ControladorCarga/CargaMultidimensional"); } TypedReaderType::Pointer treader = TypedReaderType::New(); ImageIOType::Pointer tdicomIO = ImageIOType::New(); treader->SetImageIO(tdicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } treader->SetFileNames(filesCopy); } treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); treader->GetOutput()->GetPixelContainer()->SetImportPointer((TypedReaderType::OutputImageType::PixelType*)(img->GetScalarPointer()), dims[0] * dims[1] * dims[2], false ); processObject = treader; } break; case ImageIOType::USHORT: { typedef unsigned short TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; try { img->AllocateScalars(VTK_UNSIGNED_SHORT, dicomIO->GetNumberOfComponents()); } catch(const std::bad_alloc&) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Out of memory"), "ControladorCarga/CargaMultidimensional"); } catch (...) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Internal Error"), "ControladorCarga/CargaMultidimensional"); } TypedReaderType::Pointer treader = TypedReaderType::New(); ImageIOType::Pointer tdicomIO = ImageIOType::New(); treader->SetImageIO(tdicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } treader->SetFileNames(filesCopy); } treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); treader->GetOutput()->GetPixelContainer()->SetImportPointer((TypedReaderType::OutputImageType::PixelType*)(img->GetScalarPointer()), dims[0] * dims[1] * dims[2], false ); processObject = treader; } break; case ImageIOType::SHORT: { typedef short TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; try { img->AllocateScalars(VTK_SHORT, dicomIO->GetNumberOfComponents()); } catch (...) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Out of memory"), "ControladorCarga/CargaMultidimensional"); } TypedReaderType::Pointer treader = TypedReaderType::New(); ImageIOType::Pointer tdicomIO = ImageIOType::New(); treader->SetImageIO(tdicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } treader->SetFileNames(filesCopy); } treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); treader->GetOutput()->GetPixelContainer()->SetImportPointer((TypedReaderType::OutputImageType::PixelType*)(img->GetScalarPointer()), dims[0] * dims[1] * dims[2], false ); processObject = treader; } break; case ImageIOType::UINT: { typedef unsigned int TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; try { img->AllocateScalars(VTK_UNSIGNED_INT, dicomIO->GetNumberOfComponents()); } catch (...) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Out of memory"), "ControladorCarga/CargaMultidimensional"); } TypedReaderType::Pointer treader = TypedReaderType::New(); ImageIOType::Pointer tdicomIO = ImageIOType::New(); treader->SetImageIO(tdicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } treader->SetFileNames(filesCopy); } treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); treader->GetOutput()->GetPixelContainer()->SetImportPointer((TypedReaderType::OutputImageType::PixelType*)(img->GetScalarPointer()), dims[0] * dims[1] * dims[2], false ); processObject = treader; } break; case ImageIOType::INT: { typedef int TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; try { img->AllocateScalars(VTK_INT, dicomIO->GetNumberOfComponents()); } catch (...) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Out of memory"), "ControladorCarga/CargaMultidimensional"); } TypedReaderType::Pointer treader = TypedReaderType::New(); ImageIOType::Pointer tdicomIO = ImageIOType::New(); treader->SetImageIO(tdicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } treader->SetFileNames(filesCopy); } treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); treader->GetOutput()->GetPixelContainer()->SetImportPointer((TypedReaderType::OutputImageType::PixelType*)(img->GetScalarPointer()), dims[0] * dims[1] * dims[2], false ); processObject = treader; } break; case ImageIOType::ULONG: { typedef unsigned long TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; try { img->AllocateScalars(VTK_UNSIGNED_LONG, dicomIO->GetNumberOfComponents()); } catch (...) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Out of memory"), "ControladorCarga/CargaMultidimensional"); } TypedReaderType::Pointer treader = TypedReaderType::New(); ImageIOType::Pointer tdicomIO = ImageIOType::New(); treader->SetImageIO(tdicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } treader->SetFileNames(filesCopy); } treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); treader->GetOutput()->GetPixelContainer()->SetImportPointer((TypedReaderType::OutputImageType::PixelType*)(img->GetScalarPointer()), dims[0] * dims[1] * dims[2], false ); processObject = treader; } break; case ImageIOType::LONG: { typedef long TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; try { img->AllocateScalars(VTK_LONG, dicomIO->GetNumberOfComponents()); } catch (...) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Out of memory"), "ControladorCarga/CargaMultidimensional"); } TypedReaderType::Pointer treader = TypedReaderType::New(); ImageIOType::Pointer tdicomIO = ImageIOType::New(); treader->SetImageIO(tdicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } treader->SetFileNames(filesCopy); } treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); treader->GetOutput()->GetPixelContainer()->SetImportPointer((TypedReaderType::OutputImageType::PixelType*)(img->GetScalarPointer()), dims[0] * dims[1] * dims[2], false ); processObject = treader; } break; case ImageIOType::FLOAT: { typedef float TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; try { img->AllocateScalars(VTK_FLOAT, dicomIO->GetNumberOfComponents()); } catch (...) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Out of memory"), "ControladorCarga/CargaMultidimensional"); } TypedReaderType::Pointer treader = TypedReaderType::New(); ImageIOType::Pointer tdicomIO = ImageIOType::New(); treader->SetImageIO(tdicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } treader->SetFileNames(filesCopy); } treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); treader->GetOutput()->GetPixelContainer()->SetImportPointer((TypedReaderType::OutputImageType::PixelType*)(img->GetScalarPointer()), dims[0] * dims[1] * dims[2], false ); processObject = treader; } break; case ImageIOType::DOUBLE: { typedef double TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; try { img->AllocateScalars(VTK_DOUBLE, dicomIO->GetNumberOfComponents()); } catch (...) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Out of memory"), "ControladorCarga/CargaMultidimensional"); } TypedReaderType::Pointer treader = TypedReaderType::New(); ImageIOType::Pointer tdicomIO = ImageIOType::New(); treader->SetImageIO(tdicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } treader->SetFileNames(filesCopy); } treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); treader->GetOutput()->GetPixelContainer()->SetImportPointer((TypedReaderType::OutputImageType::PixelType*)(img->GetScalarPointer()), dims[0] * dims[1] * dims[2], false ); processObject = treader; } break; case ImageIOType::UNKNOWNCOMPONENTTYPE: default: throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: unsupported pixel format"), "ControladorCarga/CargaMultidimensional"); } cbProgreso->SetTexto("Leyendo dataset"); processObject->AddObserver (itk::ProgressEvent(), cbProgreso); try { processObject->UpdateLargestPossibleRegion(); } catch (itk::ExceptionObject& ex) { reader->ResetPipeline(); throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: ") + ex.GetDescription(), "ControladorCarga/CargaMultidimensional"); } catch (...) { reader->ResetPipeline(); throw GNC::GCS::ControladorCargaException( _Std("Internal error reading the study: "), "ControladorCarga/CargaMultidimensional"); } if (processObject->GetAbortGenerateData()) { reader->ResetPipeline(); throw GNC::GCS::ControladorCargaException( _Std("Process canceled by user."), "ControladorCarga/CargaMultidimensional"); } //se modifica si es necesario /* { typedef itk::MetaDataObject< std::string > MetaDataStringType; for (itk::MetaDataDictionary::ConstIterator it = dicomIO->GetMetaDataDictionary().Begin(); it != dicomIO->GetMetaDataDictionary().End(); ++it) { itk::MetaDataObjectBase::Pointer entry = it->second; MetaDataStringType::Pointer entryvalue = dynamic_cast (entry.GetPointer()); if(it->first == "0028|0100") { //bits allocated std::istringstream is(entryvalue->GetMetaDataObjectValue()); is >>bitsAllocated; } else if(it->first == "0028|0101") { //bits stored std::istringstream is(entryvalue->GetMetaDataObjectValue()); is >>bitsStored; } else if(it->first == "0028|0102") {//high bit std::istringstream is(entryvalue->GetMetaDataObjectValue()); is >>highBit; } else if(it->first == "0028|0103") {//pixel representation=> 0 es unsigned 1 es signed std::istringstream is(entryvalue->GetMetaDataObjectValue()); is >>pixelRepresentation; } } if(bitsAllocated != bitsStored) { switch(dicomIO->GetComponentType()) { case ImageIOType::UCHAR: pixelRepresentation = 0; //a partir de aqui se trata el pixelrepresentation case ImageIOType::CHAR: { unsigned char* data = (unsigned char*) img->GetScalarPointer(); unsigned char desplazamientoSigno; desplazamientoSigno = highBit; unsigned char maskComprobarSigno = 1; maskComprobarSigno <<= desplazamientoSigno; unsigned char maskClearParteAltaPositivo = 0; //se meten unos en la parte baja if(pixelRepresentation == 0) { for(int i = 0; i<= desplazamientoSigno; ++i) { maskClearParteAltaPositivo <<=1; maskClearParteAltaPositivo |=1; } } else { for(int i = 0; i< desplazamientoSigno; ++i) { maskClearParteAltaPositivo <<=1; maskClearParteAltaPositivo |=1; } } //se meten unos en la parte alta unsigned char maskSetParteAltaNegativo = 0x80; if(pixelRepresentation != 0) { for(int i=0; i< 8-desplazamientoSigno; ++i) { maskSetParteAltaNegativo >>=1; maskSetParteAltaNegativo |=0x80; } } int size = dims[0] * dims[1] * dims[2]; if(pixelRepresentation == 0) { if(maskClearParteAltaPositivo != 0xFF) { // si es ff no tiene sentido hacer nada int size = dims[0] * dims[1] * dims[2] * 2; for(int i= 0; i< size; i+=2) { //es positivo data[i] &= maskClearParteAltaPositivo; } } } else { for(int i= 0; i< size; ++i) { if((data[i] & maskComprobarSigno) == 0) { //es positivo data[i] &= maskClearParteAltaPositivo; } else { //es negativo => aplicar el complemento a dos... data[i] |= maskSetParteAltaNegativo; } } } } break; case ImageIOType::USHORT: pixelRepresentation = 0; //a partir de aqui se trata el pixelrepresentation case ImageIOType::SHORT: { unsigned char* data = (unsigned char*) img->GetScalarPointer(); unsigned char posicionInicial; unsigned char desplazamientoSigno; if(highBit>=8) { //little endian desplazamientoSigno = highBit - 8 ; posicionInicial = 1; } else { //bigEndian desplazamientoSigno = highBit; posicionInicial = 0; } unsigned char maskComprobarSigno = 1; maskComprobarSigno <<= desplazamientoSigno; unsigned char maskClearParteAltaPositivo = 0; //se meten unos en la parte baja if(pixelRepresentation == 0) { for(int i = 0; i<= desplazamientoSigno; ++i) { maskClearParteAltaPositivo <<=1; maskClearParteAltaPositivo |=1; } } else { for(int i = 0; i< desplazamientoSigno; ++i) { maskClearParteAltaPositivo <<=1; maskClearParteAltaPositivo |=1; } } //se meten unos en la parte alta unsigned char maskSetParteAltaNegativo = 0x80; if(pixelRepresentation != 0) { for(int i=0; i< 8-desplazamientoSigno; ++i) { maskSetParteAltaNegativo >>=1; maskSetParteAltaNegativo |=0x80; } } int size = dims[0] * dims[1] * dims[2] * 2; if(pixelRepresentation == 0) { if(maskClearParteAltaPositivo != 0xFF) { // si es ff no tiene sentido hacer nada int size = dims[0] * dims[1] * dims[2] * 2; for(int i= posicionInicial; i< size; i+=2) { //es positivo data[i] &= maskClearParteAltaPositivo; } } } else { for(int i= posicionInicial; i< size; i+=2) { if((data[i] & maskComprobarSigno) == 0) { //es positivo data[i] &= maskClearParteAltaPositivo; } else { //es negativo => aplicar el complemento a dos... data[i] |= maskSetParteAltaNegativo; } } } } break; case ImageIOType::UINT: { //d momento no hago na } break; case ImageIOType::INT: { //d momento no hago na } break; case ImageIOType::ULONG: { //d momento no hago na } break; case ImageIOType::LONG: { //d momento no hago na } break; case ImageIOType::FLOAT: case ImageIOType::DOUBLE: break; case ImageIOType::UNKNOWNCOMPONENTTYPE: default: throw GNC::GCS::ControladorCargaException( std::string("Error reading the study: Formato de pixel no soportado"), "ControladorCarga/CargaMultidimensional"); } } }*/ return img; } vtkSmartPointer GNC::GCS::ControladorCarga::CargarITKMultidimensionalRGB(IComando* cmd, ListaRutas& listaFicheros, double* spacing) { vtkSmartPointer img = vtkSmartPointer::New(); wxCriticalSectionLocker locker(*m_pCriticalSection); typedef itk::RGBPixel PixelType; typedef itk::Image ImageType; typedef itk::GDCMImageIO ImageIOType; typedef itk::ImageSeriesReader GenericReaderType; ImageIOType::Pointer dicomIO = ImageIOType::New(); GenericReaderType::Pointer reader = GenericReaderType::New(); CargaItkProgressCallback::Pointer cbProgreso = CargaItkProgressCallback::New(); reader->SetImageIO(dicomIO); if (listaFicheros.size() > 0) { std::vector filesCopy(listaFicheros.size()); GNC::GCS::IControladorCarga::ListaRutas::iterator it = listaFicheros.begin(); std::vector::size_type off = 0; while (it != listaFicheros.end()) { filesCopy[off++] = *(it++); } reader->SetFileNames(filesCopy); } else { throw GNC::GCS::ControladorCargaException( "No input files", "ControladorCarga/CargaMultidimensionalRGB"); } reader->SetUseStreaming(true); //reader->GetOutput()->ReleaseDataFlagOn(); cbProgreso->SetCommand(cmd); cbProgreso->SetTexto(_Std("Interpreting properties")); reader->AddObserver (itk::ProgressEvent(), cbProgreso); try { reader->UpdateOutputInformation(); } catch (itk::ExceptionObject& ex) { reader->ResetPipeline(); throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: ") + ex.GetDescription(), "ControladorCarga/CargaMultidimensionalRGB"); } catch (...) { reader->ResetPipeline(); throw GNC::GCS::ControladorCargaException( _Std("Internal error reading the study: "), "ControladorCarga/CargaMultidimensionalRGB"); } GenericReaderType::OutputImageType::SizeType dims = reader->GetOutput()->GetLargestPossibleRegion().GetSize(); img->SetDimensions(dims[0], dims[1], dims[2]); img->SetOrigin(dicomIO->GetOrigin(0), dicomIO->GetOrigin(1), dicomIO->GetOrigin(2)); if(spacing == NULL) { double chk_spacing[3] = {dicomIO->GetSpacing(0), dicomIO->GetSpacing(1), dicomIO->GetSpacing(2)}; if (chk_spacing[0] < std::numeric_limits::epsilon() || chk_spacing[1] < std::numeric_limits::epsilon()) { std::stringstream ss; ss << _Std("Spacing is not valid: (") << chk_spacing[0] << ", " << chk_spacing[1] << ", " << chk_spacing[2] << ")"; GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL,ss.str(),GNC::GCS::Events::EventoMensajes::PopUpMessage,GNC::GCS::Events::EventoMensajes::Aviso)); chk_spacing[0] = 1.0f; chk_spacing[1] = 1.0f; chk_spacing[2] = 1.0f; } img->SetSpacing(chk_spacing); } else { double chk_spacing[3] = {spacing[0], spacing[1], spacing[2]}; if (chk_spacing[0] < std::numeric_limits::epsilon() || chk_spacing[1] < std::numeric_limits::epsilon()) { std::stringstream ss; ss << _Std("Spacing of the image is invalid: (") << chk_spacing[0] << ", " << chk_spacing[1] << ", " << chk_spacing[2] << ")"; GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoMensajes(NULL,ss.str(),GNC::GCS::Events::EventoMensajes::PopUpMessage,GNC::GCS::Events::EventoMensajes::Aviso)); chk_spacing[0] = 1.0f; chk_spacing[1] = 1.0f; chk_spacing[2] = 1.0f; } img->SetSpacing(chk_spacing); } //std::cout << "number of scalar components" << dicomIO->GetNumberOfComponents(); try { img->AllocateScalars(VTK_UNSIGNED_CHAR, dicomIO->GetNumberOfComponents()); } catch (...) { throw GNC::GCS::ControladorCargaException( _Std("Error loading the study: Out of memory"), "ControladorCarga/CargaMultidimensionalRGB"); } reader->SetUseStreaming(true); //reader->GetOutput()->ReleaseDataFlagOn(); reader->GetOutput()->GetPixelContainer()->SetImportPointer((GenericReaderType::OutputImageType::PixelType*)(img->GetScalarPointer()), dims[0] * dims[1] * dims[2], false ); cbProgreso->SetTexto(_Std("Reading dataset")); reader->AddObserver (itk::ProgressEvent(), cbProgreso); try { reader->UpdateLargestPossibleRegion(); } catch (itk::ExceptionObject& ex) { reader->ResetPipeline(); throw GNC::GCS::ControladorCargaException( _Std("Error reading the study:") + ex.GetDescription(), "ControladorCarga/CargaMultidimensionalRGB"); } catch (...) { reader->ResetPipeline(); throw GNC::GCS::ControladorCargaException( _Std("Internal error while reading the study:"), "ControladorCarga/CargaMultidimensionalRGB"); } if (reader->GetAbortGenerateData()) { reader->ResetPipeline(); throw GNC::GCS::ControladorCargaException( _Std("Process canceled by user."), "ControladorCarga/CargaMultidimensional"); } return img; } void GNC::GCS::ControladorCarga::CargaAsincrona(GNC::GCS::IVista* pVista, bool loadFirst) { wxCriticalSectionLocker locker(*m_pCriticalSection); GNC::GCS::ControladorVistas::Instance()->SolicitarActivarVista(pVista); GADAPI::ComandoCarga* pCmd = new GADAPI::ComandoCarga(new GADAPI::ComandoCargaParams(pVista, loadFirst)); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync(_Std("load"), pCmd, pVista); } GNC::GCS::ControladorCarga * GNC::GCS::ControladorCarga::Instance() { if (m_pCriticalSection == NULL) { m_pCriticalSection = new wxCriticalSection(); } wxCriticalSectionLocker locker(*m_pCriticalSection); if (m_psInstancia == NULL) { m_psInstancia = new ControladorCarga(); } return m_psInstancia; } void GNC::GCS::ControladorCarga::FreeInstance() { wxCriticalSectionLocker* pLocker = NULL; if (m_pCriticalSection != NULL) { pLocker = new wxCriticalSectionLocker(*m_pCriticalSection); } if (m_psInstancia != NULL) { delete m_psInstancia; m_psInstancia = NULL; } if (m_pCriticalSection != NULL) { if (pLocker != NULL) { delete pLocker; pLocker = NULL; } delete m_pCriticalSection; m_pCriticalSection = NULL; } if (pLocker != NULL) { delete pLocker; } } GNC::GCS::ControladorCarga::ControladorCarga() { } GNC::GCS::ControladorCarga::~ControladorCarga() { } //region Creacion y destruccion de componente de carga en streaming GNC::GCS::IStreamingLoader* GNC::GCS::ControladorCarga::NewLoader() { return new GNC::StreamingLoader(); } void GNC::GCS::ControladorCarga::FreeLoader(GNC::GCS::IStreamingLoader** loader) { if (loader != NULL && *loader != NULL) { delete *loader; *loader = NULL; } } //endregion ginkgocadx-3.8.7/cadxcore/main/controllers/controladorcarga.h000066400000000000000000000041171314736454600244460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include class wxCriticalSection; namespace GNC { namespace GCS { class EXTAPI ControladorCarga : public IControladorCarga { public: virtual vtkSmartPointer CargarITKMultidimensional(IComando* cmd, ListaRutas& listaFicheros, int* orientacion, double* spacing = NULL); virtual vtkSmartPointer CargarITK(IComando* cmd, std::string& path, int* orientacion, double* spacing = NULL); virtual void CargaAsincrona(GNC::GCS::IVista* pVista, const bool loadFirst = true); static ControladorCarga *Instance(); static void FreeInstance(); //region Creacion y destruccion de componente de carga en streaming virtual GNC::GCS::IStreamingLoader* NewLoader(); virtual void FreeLoader(GNC::GCS::IStreamingLoader** loader); //endregion protected: vtkSmartPointer CargarITKMultidimensionalRGB(IComando* cmd, ListaRutas& listaFicheros, double* spacing = NULL); vtkSmartPointer CargarITKMultidimensionalUnsignedShort(IComando* cmd, ListaRutas& listaFicheros, int* orientacion,double* spacing = NULL); ControladorCarga(); virtual ~ControladorCarga(); static ControladorCarga* m_psInstancia; static wxCriticalSection* m_pCriticalSection; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorenviohl7.cpp000066400000000000000000000147121314736454600254610ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #define LOGGER "ControladorEnvioHl7" #include #include #include "controladorenviohl7.h" #include "controladorbbddhl7.h" #include
    #include #include "controladoreventos.h" #include "configurationcontroller.h" #include #include #include #include #include #include "../entorno.h" #include void GIL::HL7::ControladorEnvioHl7::FreeInstance() { wxCriticalSectionLocker locker(m_criticalSection); if(m_pInstance != NULL) { LOG_DEBUG("Core/HL7", _Std("Stopping HL7 sender")) //if(!m_pInstance->EstaAbortado()) { m_pInstance->Abortar(); m_pInstance->Wait(); delete m_pInstance; m_pInstance = NULL; //} } } void GIL::HL7::ControladorEnvioHl7::Arrancar() { bool boolValue; GNC::GCS::ConfigurationController::Instance()->readBoolGeneral("/GinkgoCore/HCE", "HL7MonitorEnabled", boolValue, true); if (boolValue) { wxCriticalSectionLocker locker(m_criticalSection); if (m_pInstance == NULL) { m_pInstance = new GIL::HL7::ControladorEnvioHl7(); m_pInstance->Create(); GNC::GCS::Threading::SetThreadName( m_pInstance->GetId(), "EnvioHL7"); wxThreadError error = m_pInstance->Run(); if(error != wxTHREAD_NO_ERROR) { LOG_ERROR("Core/HL7", _Std("Error starting HL7 sender") << ": " << error ) } else { LOG_INFO("Core/HL7", _Std("HL7 sender started")) } } else { if(!m_pInstance->IsRunning()) { m_pInstance->Abortar(); m_pInstance->Wait(); delete m_pInstance; m_pInstance = new GIL::HL7::ControladorEnvioHl7(); m_pInstance->Create(); wxThreadError error = m_pInstance->Run(); if(error != wxTHREAD_NO_ERROR) { LOG_ERROR("Core/HL7", _Std("Error starting HL7 sender") << ": " << error ) } else { LOG_INFO("Core/HL7", _Std("HL7 sender started")) } } } } } bool GIL::HL7::ControladorEnvioHl7::EstaArrancado() { wxCriticalSectionLocker locker(m_criticalSection); if(m_pInstance == NULL) { return false; } else { return m_pInstance->IsRunning(); } } GIL::HL7::ControladorEnvioHl7* GIL::HL7::ControladorEnvioHl7::m_pInstance = NULL; wxCriticalSection GIL::HL7::ControladorEnvioHl7::m_criticalSection; //proceso que envia mensajes GIL::HL7::ControladorEnvioHl7::ControladorEnvioHl7() : wxThread(wxTHREAD_JOINABLE) { GNC::GCS::Events::EventoProgresoComando evt; GNC::GCS::ControladorEventos::Instance()->Registrar(this,evt); m_Abortado = false; } GIL::HL7::ControladorEnvioHl7::~ControladorEnvioHl7() { LOG_DEBUG("Core/HL7", _Std("HL7 controller destroyed")) } void GIL::HL7::ControladorEnvioHl7::Abortar() { m_Abortado = true; GNC::GCS::ICommandController::Instance()->AbortarComandosDeOwner(this); m_semaphore.Post(); m_semaphore.Post(); } bool GIL::HL7::ControladorEnvioHl7::EstaAbortado() { return m_Abortado; } void* GIL::HL7::ControladorEnvioHl7::Entry() { m_Abortado = false; GNC::GCS::Threading::SetThreadName( GetId(), "HL7 Sender"); while(!TestDestroy() && !m_Abortado) { if(TestDestroy() || m_Abortado) { break; } try { //esperamos a que arranque todo correctamente m_semaphore.WaitTimeout(5000); TListaMensajes listaMensajes; GIL::HL7::ControladorBBDDHl7::Instance()->GetMensajesHL7(listaMensajes,true); if (!TestDestroy() && !m_Abortado && listaMensajes.size() > 0) { //launch command... GADAPI::SendHL7CommandParams* pParams = new GADAPI::SendHL7CommandParams(listaMensajes); GADAPI::SendHL7Command* pCmd = new GADAPI::SendHL7Command(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync("Send HL7", pCmd, this); m_semaphore.Wait(); } } catch (HL7Exception& ex) { LOG_ERROR("Core/HL7", _Std("Error processing message") << ": " << ex.str()) } } return NULL; } void GIL::HL7::ControladorEnvioHl7::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { GNC::GCS::Events::EventoProgresoComando* pEvt = dynamic_cast (evt); if (pEvt == NULL || pEvt->GetComando() == NULL) { return; } if (pEvt->GetTipo() == GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado) { GADAPI::SendHL7Command* pCmdSend = dynamic_cast< GADAPI::SendHL7Command * > (pEvt->GetComando()); if (pCmdSend != NULL) { m_semaphore.Post(); } } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorenviohl7.h000066400000000000000000000030351314736454600251220ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include class wxSQLite3Database; class wxCriticalSection; namespace GIL { namespace HL7 { class EXTAPI ControladorEnvioHl7: protected wxThread, public GNC::GCS::IEventsObserver { public: static void FreeInstance(); static void Arrancar(); static bool EstaArrancado(); void Abortar(); bool EstaAbortado(); protected: static ControladorEnvioHl7* m_pInstance; static wxCriticalSection m_criticalSection; ControladorEnvioHl7(); ~ControladorEnvioHl7(); virtual void* Entry(); virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt) ; wxSemaphore m_semaphore; std::atomic m_Abortado; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladoreventos.cpp000066400000000000000000000317061314736454600254130ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "controladoreventos.h" #include #include #include #include #include #include #include "inactivitycontroller.h" namespace GNC { namespace GCS { ControladorEventos * ControladorEventos::m_psInstancia = NULL; ControladorEventos::ControladorEventos() { GTRACE("ControladorEventos::ControladorEventos()"); } ControladorEventos::~ControladorEventos() { //se vacia el mapa de vistas for(TipoMapaVistas::iterator itVistas = m_mapaVistas.begin(); itVistas != m_mapaVistas.end(); ++itVistas) { for(TipoMapaAmbito::iterator itAmbito = (*itVistas).second.begin(); itAmbito != (*itVistas).second.end(); ++ itAmbito) { for(TipoMapaCodigos::iterator itCodigos = (*itAmbito).second.begin(); itCodigos != (*itAmbito).second.end(); ++itCodigos) { for(TipoListaObservadores::iterator itObservadores = (*itCodigos).second.begin(); itObservadores != (*itCodigos).second.end(); ++itObservadores) { (*itObservadores) = NULL; } (*itCodigos).second.clear(); } (*itAmbito).second.clear(); } (*itVistas).second.clear(); } m_mapaVistas.clear(); //se vacia el mapa de eventos for(TipoMapaEventos::iterator it = m_mapaEventos.begin(); it!= m_mapaEventos.end(); ++it) { (*it).second.clear(); } m_mapaEventos.clear(); } //se apunta a escuchar un evento void ControladorEventos::Registrar ( GNC::GCS::IEventsObserver* pObservador, const GNC::GCS::Events::IEvent& evento) { wxCriticalSectionLocker pLocker(m_eventosCriticalSection); //se mete en el mapa observadores->eventos { TipoMapaEventos::iterator itEventos = m_mapaEventos.find(pObservador); if(itEventos == m_mapaEventos.end()) { TipoListaEventos lista; m_mapaEventos[pObservador] = lista; itEventos = m_mapaEventos.find(pObservador); } //se busca si ya esta el evento for (TipoListaEventos::iterator it = (*itEventos).second.begin(); it != (*itEventos).second.end(); ++it) { if((*it).IsEqual(evento)) { LOG_WARN("ControladorEventos", "Se está intentando registrar dos veces al mismo evento"); return; } } (*itEventos).second.push_back(evento); } //se mete en el mapa vistas->eventos { TipoMapaVistas::iterator itVistas; TipoMapaAmbito::iterator itAmbito; TipoMapaCodigos::iterator itCodigos; //se busca la entrada en el mapa de vistas itVistas= m_mapaVistas.find(evento.GetVista()); if(itVistas == m_mapaVistas.end()) { TipoMapaAmbito mapa; m_mapaVistas[evento.GetVista()] = mapa; itVistas = m_mapaVistas.find(evento.GetVista()); } //se busca la entrada en el mapa de ambitos itAmbito = (*itVistas).second.find(evento.GetCodigoAmbito()); if(itAmbito == (*itVistas).second.end()) { TipoMapaCodigos mapa; (*itVistas).second[evento.GetCodigoAmbito()] = mapa; itAmbito = (*itVistas).second.find(evento.GetCodigoAmbito()); } itCodigos = (*itAmbito).second.find(evento.GetCodigoEvento()); if(itCodigos == (*itAmbito).second.end()) { TipoListaObservadores lista; (*itAmbito).second[evento.GetCodigoEvento()] = lista; itCodigos = (*itAmbito).second.find(evento.GetCodigoEvento()); } (*itCodigos).second.push_back(pObservador); } //pObservador->OnRegistrar(this); } //se desapunta de escuchar un evento void ControladorEventos::DesRegistrar (GNC::GCS::IEventsObserver* pObservador, const GNC::GCS::Events::IEvent& evento) { wxCriticalSectionLocker* pLocker = new wxCriticalSectionLocker(m_eventosCriticalSection); TipoMapaVistas::iterator itVistas; TipoMapaAmbito::iterator itAmbito; TipoMapaCodigos::iterator itCodigos; //se busca la entrada en el mapa de vistas itVistas= m_mapaVistas.find(evento.GetVista()); if(itVistas != m_mapaVistas.end()) { //se busca la entrada en el mapa de ambitos itAmbito = (*itVistas).second.find(evento.GetCodigoAmbito()); if(itAmbito != (*itVistas).second.end()) { //se busca en el mapa de codigos itCodigos = (*itAmbito).second.find(evento.GetCodigoEvento()); if(itCodigos != (*itAmbito).second.end()) { (*itCodigos).second.remove(pObservador); //se purgan los mapas if((*itCodigos).second.size() == 0) { // FIXME: Race condition (*itAmbito).second.erase(itCodigos); if((*itAmbito).second.size() == 0) { (*itVistas).second.erase(itAmbito); if((*itVistas).second.size() == 0) { m_mapaVistas.erase(itVistas); } } } } } } //se elimina del mapa de eventos TipoMapaEventos::iterator itEventos = m_mapaEventos.find(pObservador); if(itEventos != m_mapaEventos.end()) { for(TipoListaEventos::iterator it = (*itEventos).second.begin(); it!= (*itEventos).second.end(); ++it) { if((*it).IsEqual(evento)) { (*itEventos).second.erase(it); break; } } itEventos = m_mapaEventos.find(pObservador); if((*itEventos).second.size() == 0) { m_mapaEventos.erase(itEventos); } } delete pLocker; } //se desapunta de todos los eventos a los que escucha void ControladorEventos::DesRegistrar (GNC::GCS::IEventsObserver* pObservador) { for(TipoMapaEventos::iterator itEventos = m_mapaEventos.find(pObservador); itEventos != m_mapaEventos.end(); itEventos = m_mapaEventos.find(pObservador)) { //desregistramos el primer evento de la lista if((*itEventos).second.size() > 0) { DesRegistrar(pObservador,(*itEventos).second.front()); } else { m_mapaEventos.erase(itEventos); break; } } } //procesado sincrono con la interfaz void ControladorEventos::ProcesarEvento(GNC::GCS::Events::IEvent *pEvt) { GNC::GCS::InactivityController::Instance()->ResetsInactivity(); wxCriticalSectionLocker* pLocker = new wxCriticalSectionLocker(m_eventosCriticalSection); //Se buscan los notificadores TipoListaObservadores listaObservadores; TipoMapaVistas::iterator itVistas; TipoMapaAmbito::iterator itAmbito; TipoMapaCodigos::iterator itCodigos; itVistas= m_mapaVistas.find(pEvt->GetVista()); if(itVistas != m_mapaVistas.end()) { //se busca la entrada en el mapa de ambitos itAmbito = (*itVistas).second.find(pEvt->GetCodigoAmbito()); if(itAmbito != (*itVistas).second.end()) { //se busca en el mapa de codigos itCodigos = (*itAmbito).second.find(pEvt->GetCodigoEvento()); if(itCodigos != (*itAmbito).second.end()) { listaObservadores = (*itCodigos).second; } } } delete pLocker; NotificarEvento(pEvt,listaObservadores); } void FreeEvents(const std::list& lista) { for(std::list::const_iterator itEventos = lista.begin(); itEventos != lista.end(); ++itEventos) { delete *itEventos; } } //inyecta en la cola correspondiente el evento en cuestion void ControladorEventos::NotificarEvento(GNC::GCS::Events::IEvent *pEvt, TipoListaObservadores & listaObservadores) { #ifdef _GINKGO_TRACE std::cout << "<< Evento: " << pEvt << std::endl; #endif std::list lista; try { lista.push_back(pEvt); for(TipoListaObservadores::iterator it = listaObservadores.begin(); it != listaObservadores.end(); ++it) { if((*it) != NULL) { if(!(*it)->FiltrarEvento(pEvt)) { (*it)->PreProcesarEvento(pEvt,lista); } } } #ifdef _GINKGO_TRACE int i1 = 0; for (TipoListaPunterosEventos::iterator it = lista.begin(); it != lista.end(); ++it) { std::cout << "Lista de eventos generada:" << std::endl; std::cout << " " << i1++ << " Evento: " << *it << std::endl; } #endif // Etapa de compactacion de eventos repetidos unsigned int i = lista.size(); for(std::list::reverse_iterator itCur = lista.rbegin(); itCur != lista.rend(); ++itCur, --i) { GNC::GCS::Events::IEvent *pCur = *itCur; unsigned int j = 1; for (TipoListaPunterosEventos::iterator itPrev = lista.begin(); i != j; ++itPrev, ++j) { GNC::GCS::Events::IEvent *pPrev = *itPrev; if (pPrev->IsEqual(*pCur)) { pPrev->Skip(true); } } } for(std::list::iterator itEventos = lista.begin(); itEventos!= lista.end(); ++itEventos) { GNC::GCS::Events::IEvent* pE = (*itEventos); for(TipoListaObservadores::iterator itObservadores = listaObservadores.begin(); pE->IsSkipped() && itObservadores != listaObservadores.end(); ++itObservadores) { GNC::GCS::IEventsObserver* pO = (*itObservadores); if( pO != NULL) { if(!pO->FiltrarEvento(pE)) { pO->ProcesarEvento(pE); } } } } } catch (GNC::GCS::IException& ex) { LOG_ERROR("ControladorEventos", "Exception while processing event " << ex.str()); FreeEvents(lista); throw; } catch (std::exception&) { FreeEvents(lista); throw; } catch (...) { FreeEvents(lista); throw GNC::GCS::IException(_Std("Internal error"), _Std("Unknown"), false); } FreeEvents(lista); #ifdef _GINKGO_TRACE std::cout << " --- " << std::endl; #endif } ControladorEventos * ControladorEventos::Instance() { if (m_psInstancia == NULL) { m_psInstancia = new ControladorEventos(); } return m_psInstancia; } void ControladorEventos::FreeInstance() { if (m_psInstancia != NULL) { delete m_psInstancia; m_psInstancia = NULL; } } } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladoreventos.h000066400000000000000000000063161314736454600250570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include //---------------------------------------------------------------------------------------------------- //region Forward Declarations //endregion namespace GNC { namespace GCS { class IVista; } } namespace GNC { namespace GCS { //==================================================================================================== //= Controlador de eventos //==================================================================================================== class ControladorEventos: public IEventsController { public: //lista de punteros a eventos typedef std::list TipoListaPunterosEventos; protected: typedef std::list TipoListaObservadores; //codigo de evento,observador typedef std::map TipoMapaCodigos; //codigo de ambito, lista de observadores typedef std::map TipoMapaAmbito; //vista, ambitos typedef std::map TipoMapaVistas; //lista de eventos typedef std::list TipoListaEventos; //observadores,Evtentos para desregistrarse typedef std::map TipoMapaEventos; public: //se apunta a escuchar un evento void Registrar ( IEventsObserver* pObservador, const GNC::GCS::Events::IEvent& evento); //se desapunta de escuchar un evento void DesRegistrar (IEventsObserver* pObservador, const GNC::GCS::Events::IEvent& evento); //se desapunta de todos los eventos a los que escucha void DesRegistrar (IEventsObserver* pObservador); //avisa a los observadores registrados a este evento void ProcesarEvento(GNC::GCS::Events::IEvent *evt); static ControladorEventos *Instance(); static void FreeInstance(); static ControladorEventos* m_psInstancia; protected: ControladorEventos(); ~ControladorEventos(); void NotificarEvento(GNC::GCS::Events::IEvent *evt, TipoListaObservadores & listaObservadores); //semaforo para controlar las secciones criticas wxCriticalSection m_eventosCriticalSection; //atributos donde se lleva la cuenta de observadores/eventos TipoMapaVistas m_mapaVistas; TipoMapaEventos m_mapaEventos; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorextensiones.cpp000066400000000000000000000462571314736454600263030ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
    #include
    #include
    #if defined(__WXOSX__) #include #elif defined(__WXGTK__) #include #elif defined(_WINDOWS) #else #error Plataforma no soportada #endif #define EXT wxT("*.inf") #if defined(MONOLITIC) PrivateExtension* init_GNKProExtension(); PrivateExtension* init_VisualizatorExtension(); PrivateExtension* init_OfthalmologicExtension(); PrivateExtension* init_RadiologicalExtension(); PrivateExtension* init_DermatologyExtension(); #endif namespace GADVAPI { class PrivateExtensionWrapper : public IPrivateExtensionWrapper { public: PrivateExtensionWrapper() { this->privateExtension = NULL; this->loaded = false; this->dll = NULL; } virtual ~PrivateExtensionWrapper() { UnLoad(); } bool operator==(const PrivateExtension* other) const { return other != NULL && (*this) == (*other); } bool operator==(const PrivateExtension& other) const { return this->sid == other.GetSID(); } #if defined(MONOLITIC) virtual bool Load(PrivateExtension* pExt) { if (pExt != NULL) { this->privateExtension = pExt; this->sid = pExt->GetSID(); this->provider = pExt->GetProvider(); this->description = pExt->GetDescription(); this->updateurl = pExt->GetUpdateURL(); this->loaded = true; } return this->loaded; } #else virtual bool Load() { if (this->loaded || this->dll != NULL) { return this->loaded; } this->loaded = false; // Load library file this->dll = new wxDynamicLibrary(); LOG_DEBUG("Extensions", _Std("Loading").c_str() << " " << this->sid << " [" << filePath << "]") if(!dll->Load(FROMPATH(filePath))) { LOG_ERROR("Extensions", _Std("Could not load extension library file") << "[" << filePath << "]"); this->error = _Std("Could not load library file. Check log"); //std::cout << "Lib not loaded!" << std::endl; delete this->dll; this->dll = NULL; } else { #if defined(_DEBUG) //Create a valid function pointer using the function pointer type in plugin.h wxDYNLIB_FUNCTION(CreatePrivateExtension_function,CreatePrivateExtensionDebug,*dll); //check if the function is found if(pfnCreatePrivateExtensionDebug) { privateExtension = pfnCreatePrivateExtensionDebug(); #else //Create a valid function pointer using the function pointer type in header wxDYNLIB_FUNCTION(CreatePrivateExtension_function,CreatePrivateExtension,*dll); //check if the function is found if(pfnCreatePrivateExtension) { privateExtension = pfnCreatePrivateExtension(); #endif // We calls if (*this == privateExtension) { this->loaded = true; } else { if (this->privateExtension != NULL) { delete this->privateExtension; this->privateExtension = NULL; } if (this->dll != NULL) { delete this->dll; this->dll = NULL; } this->error = _Std("Extension descriptor does not match"); } } else { this->error = _Std("Could not find entry point"); delete this->dll; this->dll = NULL; } } return this->loaded; } #endif virtual bool UnLoad() { if (this->loaded) { this->loaded = false; if (this->privateExtension != NULL) { delete this->privateExtension; } if (this->dll != NULL) { delete this->dll; this->dll = NULL; } } return !this->loaded; } virtual bool IsLoaded() const { return this->loaded; } void setSid(const std::string& sidStr) { this->sid = sidStr; } const std::string& getSid() const { return this->sid; } void setFilePath(const std::string& path) { this->filePath = path; } virtual const std::string& GetProvider() const { return this->provider; } void setProvider(const std::string& providerStr) { this->provider = providerStr; } virtual const std::string& GetDescription() const { return this->description; } void setDescription(const std::string& descriptionStr) { this->description = descriptionStr; } virtual const std::string& GetUpdateURL() const { return this->updateurl; } void setUpdateURL(const std::string& updateURLStr) { this->updateurl = updateURLStr; } virtual const std::string& GetError() const { return this->error; } virtual PrivateExtension* GetExtension() { return this->privateExtension; } int parseInt(const std::string& str) { int val = -1; std::istringstream is(str); is >> val; return val; } private: bool loaded; std::string sid; std::string filePath; std::string provider; std::string description; std::string updateurl; std::string error; PrivateExtension* privateExtension; wxDynamicLibrary* dll; }; } GNC::GCS::IExtensionException::IExtensionException(const std::string& msg, const std::string& component, bool fatal) throw() : GNC::GCS::IException(msg, component, fatal) {} GNC::GCS::IExtensionException::~IExtensionException() throw() {} GNC::GCS::IControladorExtensiones::IControladorExtensiones() {} GNC::GCS::IControladorExtensiones::~IControladorExtensiones() {} GNC::ControladorExtensiones* GNC::ControladorExtensiones::m_pInstance = 0; GNC::ControladorExtensiones::ControladorExtensiones() { m_Manager.Scan(); for (GADVAPI::PrivateExtensionManager::iterator it= m_Manager.begin(); it != m_Manager.end(); ++it) { GADVAPI::IPrivateExtensionWrapper* iew = (*it).second; if (iew->IsLoaded()) { PrivateExtension::TListControllers list = iew->GetExtension()->InitializeLibrary(GNC::GCS::IEntorno::Instance()); for (PrivateExtension::TListControllers::iterator it = list.begin(); it != list.end(); ++it) { if ((*it) != NULL) { RegistrarModulo((*it)); } } } } } GNC::ControladorExtensiones::~ControladorExtensiones() { DesRegistrarModulos(); m_Manager.UnLoadAll(); } GNC::ControladorExtensiones* GNC::ControladorExtensiones::Instance() { if (m_pInstance == NULL) { m_pInstance = new GNC::ControladorExtensiones(); } return m_pInstance; } void GNC::ControladorExtensiones::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = 0; } } void GNC::ControladorExtensiones::RegistrarModulo(GNC::GCS::IModuleController* pCtrlModulo) { if (pCtrlModulo == NULL) { return; } pCtrlModulo->RegistrarConfiguracion(); const std::string uid = pCtrlModulo->GetUID(); m_Modulos[uid] = pCtrlModulo; NotificarRegistro(pCtrlModulo); } void GNC::ControladorExtensiones::DesRegistrarModulo(GNC::GCS::IModuleController* pCtrlModulo) { if (pCtrlModulo == NULL) { return; } NotificarDesRegistro(pCtrlModulo); m_Modulos.erase(pCtrlModulo->GetUID()); delete pCtrlModulo; } void GNC::ControladorExtensiones::DesRegistrarModulos() { GNC::ControladorExtensiones::IteradorListaModulos it; for (it = m_Modulos.begin(); it != m_Modulos.end(); ++it) { GNC::GCS::IModuleController* item = (*it).second; NotificarDesRegistro(item); delete item; } m_Modulos.clear(); } GNC::GCS::IModuleController* GNC::ControladorExtensiones::ObtenerModulo(const std::string& idModulo) { GNC::GCS::IModuleController* cm = NULL; IteradorListaModulos it = m_Modulos.find(idModulo); if (it != m_Modulos.end()) { cm = (*it).second; } return cm; } bool compareListaModulos(GNC::GCS::IModuleController* s1, GNC::GCS::IModuleController* s2) { return s1->GetPriority()< s2->GetPriority(); } std::list GNC::ControladorExtensiones::ModulosOrdenados() { std::list listaModulosPriorizados; for(ListaModulos::iterator it = m_Modulos.begin(); it!= m_Modulos.end(); ++it) { listaModulosPriorizados.push_back((*it).second); } listaModulosPriorizados.sort(compareListaModulos); return listaModulosPriorizados; } const GNC::ControladorExtensiones::ListaModulos& GNC::ControladorExtensiones::Modulos() const { return m_Modulos; } // Realización de la interfaz IControladorExtensiones GADVAPI::PrivateExtensionManager& GNC::ControladorExtensiones::GetPrivateExtensionsManager() { return m_Manager; } void GNC::ControladorExtensiones::NotificarRegistro(GNC::GCS::IModuleController* /*pModulo*/) { /* GNC::Entorno* pEntorno = GNC::Entorno::Instance(); GNC::Entorno::ListaObservadoresExtensiones::const_iterator it; for (it = pEntorno->ObservadoresExtensiones.begin(); it != pEntorno->ObservadoresExtensiones.end(); ++it) { GNC::GCS::IObservadorExtensiones* ne = *it; ne->OnModuloCargado(pModulo); } */ } void GNC::ControladorExtensiones::NotificarDesRegistro(GNC::GCS::IModuleController* /*pModulo*/) { /* GNC::GCS::IEntorno* pEntorno = GNC::GCS::IEntorno::Instance(); Entorno::ListaObservadoresExtensiones::const_iterator it; for (it = pEntorno->ObservadoresExtensiones.begin(); it != pEntorno->ObservadoresExtensiones.end(); ++it) { GNC::GCS::IObservadorExtensiones* ne = *it; ne->OnModuloDescargado(pModulo); } */ } //------------------------------------------------------------------------------------------- // Helpers inline std::wstring StringToWString(const std::string& str) { std::wstring temp(str.length(),L' '); std::copy(str.begin(), str.end(), temp.begin()); return temp; } //------------------------------------------------------------------------------------------- // PrivateExtensionManager GADVAPI::PrivateExtensionManager::PrivateExtensionManager() : GADVAPI::PrivateExtensionManager::Base() { } GADVAPI::PrivateExtensionManager::~PrivateExtensionManager() { UnLoadAll(); } GADVAPI::IPrivateExtensionWrapper* GADVAPI::PrivateExtensionManager::GetExtension(const std::string& nombre) { Base& base = *this; if (base.find(nombre) != base.end()) { return base[nombre]; } else { return NULL; } } void GADVAPI::PrivateExtensionManager::Scan() { #if defined (MONOLITIC) if(empty()) { Base& base = *this; PrivateExtensionWrapper* pExt = NULL; pExt = new PrivateExtensionWrapper(); pExt->Load(init_VisualizatorExtension()); base[pExt->getSid()] = pExt; #if defined(GINKGO_PRO) pExt = new PrivateExtensionWrapper(); pExt->Load(init_OfthalmologicExtension()); base[pExt->getSid()] = pExt; pExt = new PrivateExtensionWrapper(); pExt->Load(init_GNKProExtension()); base[pExt->getSid()] = pExt; pExt = new PrivateExtensionWrapper(); pExt->Load(init_RadiologicalExtension()); base[pExt->getSid()] = pExt; pExt = new PrivateExtensionWrapper(); pExt->Load(init_DermatologyExtension()); base[pExt->getSid()] = pExt; #endif } #else UnLoadAll(); wxDir dir; wxString rutas[1] = { FROMPATH(GNC::GCS::IEntorno::Instance()->GetPluginsPath()) }; wxString descFileName; wxString descFilePath; std::string stdExtensionDir; for (int i = 0; i < 1; i++) { if (dir.Exists(rutas[i]) && dir.Open(rutas[i])) { bool cont = dir.GetFirst(&descFileName, EXT, wxDIR_FILES); while (cont) { stdExtensionDir = std::string( (rutas[i] + wxFileName::GetPathSeparator()).ToUTF8() ); descFilePath = rutas[i] + wxFileName::GetPathSeparator() + descFileName; std::string descStdFilePath(descFilePath.ToUTF8()); std::ifstream file (descStdFilePath.c_str()); std::string line; std::vector tokens(2); /* DLL=file.dll SID=TheSid PROVIDER=TheProvider DESCRIPTION=TheDescription COMPILATION=TheBuildDate VERSION=TheVersion SUBVERSION=TheSubVersion RELEASE=TheRelease BUILD=TheBuild CODENAME=TheCodeNameString UPDATEURL=TheUpdateURL CORE_VERSION=TheCoreExactCompatibleVersion CORE_SUBVERSION=TheCoreExactCompatibleSubVersion */ if (file.is_open()) { PrivateExtensionWrapper* pExt = new PrivateExtensionWrapper(); while(std::getline(file, line)) { std::string::size_type sepPos = line.find("="); if (sepPos != std::string::npos) { std::string key = line.substr(0, sepPos); std::string value = line.substr(sepPos+1); if (key == "DLL") { pExt->setFilePath(stdExtensionDir + value); } else if (key == "SID") { pExt->setSid(value); } else if (key == "PROVIDER") { pExt->setProvider(value); } else if (key == "DESCRIPTION") { pExt->setDescription(value); } else if (key == "UPDATEURL") { pExt->setUpdateURL(value); } } } if (this->find(pExt->getSid()) != end()) { LOG_ERROR("Extensions", _Std("Skipping extension with duplicated SID:") << " " << pExt->getSid()); delete pExt; } else { Base& base = *this; base[pExt->getSid()] = pExt; pExt->Load(); } } cont = dir.GetNext(&descFileName); } } } #endif } void GADVAPI::PrivateExtensionManager::UnLoadAll() { for(iterator it = begin(); it != end(); ++it) { (*it).second->UnLoad(); delete (*it).second; } clear(); } GADVAPI::PrivateExtensionManager::iterator GADVAPI::PrivateExtensionManager::begin() { return Base::begin(); } GADVAPI::PrivateExtensionManager::iterator GADVAPI::PrivateExtensionManager::end() { return Base::end(); } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorextensiones.h000066400000000000000000000043231314736454600257340ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include namespace GNC { class EXTAPI ControladorExtensiones : public GNC::GCS::IControladorExtensiones { public: static ControladorExtensiones* Instance(); static void FreeInstance(); void RegistrarModulo(GNC::GCS::IModuleController* pCtrlModulo); void DesRegistrarModulo(GNC::GCS::IModuleController* pCtrlModulo); void DesRegistrarModulos(); GNC::GCS::IModuleController* ObtenerModulo(const std::string& idModulo); typedef std::map ListaModulos; typedef ListaModulos::iterator IteradorListaModulos; typedef ListaModulos::const_iterator IteradorConstanteListaModulos; std::list ModulosOrdenados(); const ControladorExtensiones::ListaModulos& Modulos() const; // Realizacin de la interfaz IControladorExtensiones virtual GADVAPI::PrivateExtensionManager& GetPrivateExtensionsManager(); protected: ControladorExtensiones(); ~ControladorExtensiones(); void NotificarRegistro(GNC::GCS::IModuleController* pModulo); void NotificarDesRegistro(GNC::GCS::IModuleController* pModulo); protected: static ControladorExtensiones* m_pInstance; ListaModulos m_Modulos; GADVAPI::PrivateExtensionManager m_Manager; }; } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorhl7.cpp000066400000000000000000000073131314736454600244170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #ifndef _WIN32 #include #endif #include #include #include "integrationcontroller.h" #include "controladorhl7.h" #include "parserxmlspanish.h" #include "parserxmlenglish.h" #include "controladorbbddhl7.h" #include #include #include #include #include
    #include
    #include
    #include
    #include "dcmtk/dicomservers.h" //creacion de la base de datos de mensajes GIL::HL7::ControladorHL7::ControladorHL7(TipoProtocolo protocolo) { m_Protocolo = protocolo; } GIL::HL7::ControladorHL7::~ControladorHL7() { } //region "Interfaz generica" /* Envia el mensaje por MLLP */ void GIL::HL7::ControladorHL7::EnviarMensaje(const GIL::HL7::Message& msg, bool procesarACK) const { std::string hostname, port; GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","HostnameMI",hostname); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","PuertoMI",port); std::ostringstream ostr; ostr << hostname << ":" << port; std::string url = ostr.str(); if (hostname.size() == 0) { throw HL7Exception(_Std("Integration engine hostname not set"), "NET"); } if (port.size() == 0) { throw HL7Exception(_Std("Integration engine port not set"), "NET"); } std::string msgControlId(""); switch(m_Protocolo) { case GIL::HL7::ControladorHL7::TP_MLLP: //se inserta en la BBDD de mensajes if(procesarACK) { msgControlId = msg.GetSegment("MSH").GetField(10).GetComponent(1); } InsertarMensajeBBDD(msg,url,procesarACK,(int)TP_MLLP,msgControlId); //EnviarMensajeMLLP(msg, url, procesarACK); break; default: throw HL7Exception(_Std("Unsupported protocol"), "NET"); } } //endregion void GIL::HL7::ControladorHL7::InsertarMensajeBBDD(const GIL::HL7::Message& msg, const std::string& url,const bool procesarACK,const int protocolo,const std::string& msgControlId) const { std::stringstream outputStream; outputStream << msg; std::string str = outputStream.str(); try { GIL::HL7::MensajeHL7 mensaje(0,str,"",url,GIL::HL7::MensajeHL7::TE_Pendiente,"",protocolo,procesarACK,msgControlId); GIL::HL7::ControladorBBDDHl7::Instance()->InsertarMensaje(mensaje); } catch (GIL::HL7::HL7Exception& ) { throw HL7Exception(_Std("Error queueing message. Check your supplier"), "NET"); } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorhl7.h000066400000000000000000000030721314736454600240620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GIL { namespace HL7 { class HiloEnviaMensajesHl7; class ControladorHL7 { public: public: typedef enum TipoProtocolo { TP_MLLP } TipoProtocolo; ControladorHL7(TipoProtocolo protocolo = TP_MLLP); virtual ~ControladorHL7(); //region "Interfaz generica" /* Envia el mensaje por el protocolo especificado */ virtual void EnviarMensaje(const GIL::HL7::Message& msg, bool procesarACK=true) const; //endregion //region "Helpers" //endregion void InsertarMensajeBBDD(const GIL::HL7::Message& msg, const std::string& url,const bool procesarACK,const int protocolo,const std::string& msgControlId) const; protected: TipoProtocolo m_Protocolo; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorinternacionalizacion.cpp000066400000000000000000000054161314736454600301320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "controladorinternacionalizacion.h" #include #include
    #include
    namespace GNC { namespace GCS { ControladorInternacionalizacion* ControladorInternacionalizacion::Instance() { if (m_pInstance == NULL) { m_pInstance = new ControladorInternacionalizacion(); } return m_pInstance; } void ControladorInternacionalizacion::FreeInstance() { if(m_pInstance!=NULL) { delete m_pInstance; m_pInstance = NULL; } } ControladorInternacionalizacion* ControladorInternacionalizacion::m_pInstance = NULL; ControladorInternacionalizacion::ControladorInternacionalizacion() { m_idiomaInterfazSesion = GetIdiomaInterfaz(); //se inicializa el soporte de idioma, leyendolo de la configuracion... wxLocale *pLoc = wxGetLocale(); wxString pathLang = FROMPATH(GNC::Entorno::Instance()->GetGinkgoLanguageDir()); if (pLoc == NULL) { pLoc = new wxLocale(); } pLoc->AddCatalogLookupPathPrefix(pathLang); pLoc->Init(m_idiomaInterfazSesion); setlocale(LC_NUMERIC, "C"); } ControladorInternacionalizacion::~ControladorInternacionalizacion() { wxLocale *pLoc = wxGetLocale(); if(pLoc != NULL) { pLoc->DestroyLanguagesDB(); delete pLoc; } } void ControladorInternacionalizacion::AddCatalog(const std::string& catalogName) { wxString strTmp = FROMPATH(catalogName); wxLocale *pLoc = wxGetLocale(); if (pLoc != NULL) { pLoc->AddCatalog(strTmp); } } //se lee de la configuracion int ControladorInternacionalizacion::GetIdiomaInterfaz() { int language; GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/Station", "Language", language,-1); if (language == -1) { //se pilla el de la maquina language = wxLocale::GetSystemLanguage(); } return language; } } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorinternacionalizacion.h000066400000000000000000000026311314736454600275730ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { namespace GCS { class EXTAPI ControladorInternacionalizacion: public IControladorInternacionalizacion { public: static ControladorInternacionalizacion* Instance(); static void FreeInstance(); //interfaz del icontrolador (la que ven los modulos) virtual void AddCatalog(const std::string& catalogName); int GetIdiomaInterfaz(); protected: static ControladorInternacionalizacion* m_pInstance; ControladorInternacionalizacion(); ~ControladorInternacionalizacion(); int m_idiomaInterfazSesion; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorlog.cpp000066400000000000000000000226761314736454600245170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include "log4cplus/guiappender.h" #include "configurationcontroller.h" #include "controladorlog.h" #define L4C_LITERAL(lit) (lit) #define LOGGER_DEFECTO "default" #if PACKAGE_VERSION_NUMBER >= 362 #define OFauto_ptr OFunique_ptr #ifndef HAVE_CXX11 #error DCMTK must be compiled with CXX11 support #endif #endif namespace GNC { using namespace dcmtk; //region "Patron singleton" GNC::ControladorLog* GNC::ControladorLog::m_pInstance = 0; GNC::ControladorLog::ControladorLog() { //en debug siempre se usa el appender fichero + el consola, ignoramos los properties //esto es porque si no esta el flush immediatly en windows cuando se cierra inesperadamente queda colgada //una consola #ifndef _GINKGO_DEBUG bool existeProperties=false; std::fstream fin; fin.open("ginkgo.properties",std::ios::in); if( fin.is_open() ) { existeProperties = true; } fin.close(); if(existeProperties) { log4cplus::PropertyConfigurator::doConfigure(L4C_LITERAL("ginkgo.properties")); log4cplus::SharedAppenderPtr append_0(gnkLog4cplus::GUIAppender::Instance()); append_0->setName(L4C_LITERAL("AppenderGUI")); append_0->setLayout( OFauto_ptr(new log4cplus::TTCCLayout()) ); log4cplus::Logger::getRoot().addAppender(append_0); } else { #endif //instanciamos el log std::ostringstream ostr; ostr << GNC::GCS::IEntorno::Instance()->GetGinkgoUserDir().c_str(); #ifdef _WIN32 ostr << "\\"; #else ostr << "/"; #endif ostr << "GinkgoLog.log"; log4cplus::SharedAppenderPtr append_0(gnkLog4cplus::GUIAppender::Instance()); append_0->setName(DCMTK_LOG4CPLUS_TEXT("AppenderGUI")); append_0->setLayout( OFauto_ptr(new log4cplus::PatternLayout("%D{%Y/%m/%d %H:%M:%S.%q} [%t] %-5p %c %x - %m%n")) ); log4cplus::Logger::getRoot().addAppender(append_0); OFString tmpStr(ostr.str().c_str()); log4cplus::SharedAppenderPtr append_1(new log4cplus::RollingFileAppender(tmpStr, 5*1024*1024, 5,true)); append_1->setName(DCMTK_LOG4CPLUS_TEXT("AppenderFichero")); append_1->setLayout( OFauto_ptr(new log4cplus::PatternLayout("%D{%Y/%m/%d %H:%M:%S.%q} [%t] %-5p %c %x - %m%n")) ); log4cplus::Logger::getRoot().addAppender(append_1); int logLevel; #ifdef _GINKGO_DEBUG log4cplus::Logger::getRoot().setLogLevel(log4cplus::DEBUG_LOG_LEVEL); //to avoid verbosivity of dcmdata log4cplus::Logger::getInstance(L4C_LITERAL("dcmtk.dcmdata")).setLogLevel(log4cplus::INFO_LOG_LEVEL); GNC::GCS::ConfigurationController::Instance()->readIntGeneral("/GinkgoCore/Log", "LogLevel", logLevel, log4cplus::DEBUG_LOG_LEVEL); #else log4cplus::Logger::getRoot().setLogLevel(log4cplus::INFO_LOG_LEVEL); GNC::GCS::ConfigurationController::Instance()->readIntGeneral("/GinkgoCore/Log", "LogLevel", logLevel, log4cplus::INFO_LOG_LEVEL); #endif log4cplus::Logger::getRoot().setLogLevel(logLevel); #ifndef _GINKGO_DEBUG } #endif } GNC::ControladorLog::~ControladorLog() { log4cplus::Logger::getRoot().closeNestedAppenders(); log4cplus::Logger::getRoot().removeAllAppenders(); log4cplus::Logger::getRoot().shutdown(); gnkLog4cplus::GUIAppender::FreeInstance(); } void GNC::ControladorLog::GetLogLevelsMap(GNC::GCS::IControladorLog::MapaLogLevels& levels) { levels[log4cplus::FATAL_LOG_LEVEL] = "FATAL"; levels[log4cplus::ERROR_LOG_LEVEL] = "ERROR"; levels[log4cplus::WARN_LOG_LEVEL] = "WARN"; levels[log4cplus::INFO_LOG_LEVEL] = "INFO"; levels[log4cplus::DEBUG_LOG_LEVEL] = "DEBUG"; levels[log4cplus::TRACE_LOG_LEVEL] = "TRACE"; } int GNC::ControladorLog::GetLogLevelCode(const std::string& level) { if (level == "FATAL") { return log4cplus::FATAL_LOG_LEVEL; } else if (level == "ERROR") { return log4cplus::ERROR_LOG_LEVEL; } else if (level == "WARN") { return log4cplus::WARN_LOG_LEVEL; } else if (level == "INFO") { return log4cplus::INFO_LOG_LEVEL; } else if (level == "DEBUG") { return log4cplus::DEBUG_LOG_LEVEL; } else { return log4cplus::TRACE_LOG_LEVEL; } } int GNC::ControladorLog::GetActiveLogLevel() { return log4cplus::Logger::getRoot().getLogLevel(); } void GNC::ControladorLog::SetActiveLogLevel(int ll) { log4cplus::Logger::getRoot().setLogLevel(ll); } GNC::ControladorLog* GNC::ControladorLog::Instance() { if (m_pInstance == NULL) { m_pInstance = new GNC::ControladorLog(); } return m_pInstance; } void GNC::ControladorLog::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } inline void LogearInline(log4cplus::Logger& log,const std::string& mensaje, GNC::ControladorLog::LogLevel logLevel) { switch(logLevel) { case GNC::ControladorLog::FatalLog: DCMTK_LOG4CPLUS_FATAL(log, mensaje.c_str()); break; case GNC::ControladorLog::ErrorLog: DCMTK_LOG4CPLUS_ERROR(log, mensaje.c_str()); break; case GNC::ControladorLog::WarnLog: DCMTK_LOG4CPLUS_WARN(log, mensaje.c_str()); break; case GNC::ControladorLog::InfoLog: DCMTK_LOG4CPLUS_INFO(log, mensaje.c_str()); break; case GNC::ControladorLog::DebugLog: DCMTK_LOG4CPLUS_DEBUG(log, mensaje.c_str()); break; case GNC::ControladorLog::TraceLog: DCMTK_LOG4CPLUS_TRACE(log, mensaje.c_str()); break; case GNC::ControladorLog::NoLog: break; } } void GNC::ControladorLog::Log(const std::string& mensaje, GNC::ControladorLog::LogLevel logLevel) { log4cplus::Logger log = log4cplus::Logger::getInstance(L4C_LITERAL(LOGGER_DEFECTO)); LogearInline(log,mensaje,logLevel); } void GNC::ControladorLog::Log(const std::string& logger, const std::string& mensaje, GNC::ControladorLog::LogLevel logLevel) { log4cplus::Logger log = log4cplus::Logger::getInstance(logger.c_str()); LogearInline(log, mensaje, logLevel); } void GNC::ControladorLog::LogConContexto(const std::string& contexto, const std::string& mensaje, GNC::ControladorLog::LogLevel logLevel) { log4cplus::Logger log = log4cplus::Logger::getInstance(L4C_LITERAL(LOGGER_DEFECTO)); log4cplus::NDCContextCreator _context(contexto.c_str()); LogearInline(log, mensaje, logLevel); } void GNC::ControladorLog::LogConContexto(const std::string& logger, const std::string& contexto, const std::string& mensaje, GNC::ControladorLog::LogLevel logLevel) { log4cplus::Logger log = log4cplus::Logger::getInstance(logger.c_str()); log4cplus::NDCContextCreator _context(contexto.c_str()); LogearInline(log,mensaje,logLevel); } bool GNC::ControladorLog::IsEnabledFor(GNC::GCS::IControladorLog::LogLevel logLevel) { switch(logLevel) { case GNC::ControladorLog::FatalLog: return log4cplus::Logger::getRoot().isEnabledFor(log4cplus::FATAL_LOG_LEVEL); case GNC::ControladorLog::ErrorLog: return log4cplus::Logger::getRoot().isEnabledFor(log4cplus::ERROR_LOG_LEVEL); case GNC::ControladorLog::WarnLog: return log4cplus::Logger::getRoot().isEnabledFor(log4cplus::WARN_LOG_LEVEL); case GNC::ControladorLog::InfoLog: return log4cplus::Logger::getRoot().isEnabledFor(log4cplus::INFO_LOG_LEVEL); case GNC::ControladorLog::DebugLog: return log4cplus::Logger::getRoot().isEnabledFor(log4cplus::DEBUG_LOG_LEVEL); case GNC::ControladorLog::TraceLog: return log4cplus::Logger::getRoot().isEnabledFor(log4cplus::TRACE_LOG_LEVEL); case GNC::ControladorLog::NoLog: return false; } return false; } } //------------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------------- ginkgocadx-3.8.7/cadxcore/main/controllers/controladorlog.h000066400000000000000000000047171314736454600241600ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef LOGCONTROLLER_H #define LOGCONTROLLER_H #include #include #include #include //------------------------------------------------------------------------------------------------- namespace GNC { class ControladorLog : public GNC::GCS::IControladorLog { //region "Patron singleton" public: static ControladorLog* Instance(); static void FreeInstance(); static ControladorLog* m_pInstance; //endregion protected: //--- Constructores ControladorLog(); ~ControladorLog(); public: //log en el logger por defecto virtual void Log(const std::string& mensaje,LogLevel logLevel = DebugLog); //log en otro logger virtual void Log(const std::string& logger, const std::string& mensaje,LogLevel logLevel = DebugLog); //logs con contexto virtual void LogConContexto(const std::string& contexto, const std::string& mensaje,LogLevel logLevel = DebugLog); //logs en logger especifico con contexto virtual void LogConContexto(const std::string& logger, const std::string& contexto, const std::string& mensaje,LogLevel logLevel = DebugLog); virtual bool IsEnabledFor(GNC::GCS::IControladorLog::LogLevel logLevel); void GetLogLevelsMap(GNC::GCS::IControladorLog::MapaLogLevels& levels); virtual int GetLogLevelCode(const std::string& level); virtual int GetActiveLogLevel(); void SetActiveLogLevel(int ll); }; } //------------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------------- #endif ginkgocadx-3.8.7/cadxcore/main/controllers/controladorpermisos.cpp000066400000000000000000000332421314736454600255660ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "controladorpermisos.h" #include "controladorlog.h" #include #include namespace GNC { ControladorPermisos* ControladorPermisos::m_pInstance = 0; ControladorPermisos::ControladorPermisos() { } ControladorPermisos::~ControladorPermisos() { LimpiarPermisos(); } ControladorPermisos* ControladorPermisos::Instance() { if (m_pInstance == NULL) { m_pInstance = new ControladorPermisos(); } return m_pInstance; } void ControladorPermisos::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = 0; } } void ControladorPermisos::LimpiarPermisos() { for(TipoIteradorMapaPermisosNamespace it = m_mapaPermisos.begin(); it!= m_mapaPermisos.end(); ++it) { (*it).second->clear(); delete (*it).second; } m_mapaPermisos.clear(); } //region "Realizacion de la interfaz IControladorPermisos /** Carga el fichero XML de permisos **/ void ControladorPermisos::CargarXMLPermisos(const std::string& xmlPermisos, bool privados) { wxStringInputStream input(wxString::FromUTF8(xmlPermisos.c_str())); wxXmlDocument doc(input); if(!doc.IsOk() || doc.GetRoot()->GetName() != wxT("permisos")) { throw GNC::GCS::ControladorPermisosException("xml mal formado"); } wxString wxNamespace; wxString wxId; wxString wxAccion; wxString wxActivoPorDefecto; wxString wxValorPorDefecto; wxString wxValor; std::string stdNamespace; std::string stdId; std::string stdAccion; std::string stdValorPorDefecto; std::string stdValor; bool activoPorDefecto; bool activo; for(wxXmlNode* permiso = doc.GetRoot()->GetChildren(); permiso != NULL; permiso = permiso->GetNext()) { if(permiso->GetName() == wxT("permiso")) { if( permiso->GetAttribute(wxT("namespace"), &wxNamespace) && permiso->GetAttribute(wxT("id"), &wxId) && permiso->GetAttribute(wxT("accion"), &wxAccion) && permiso->GetAttribute(wxT("activopordefecto"), &wxActivoPorDefecto) ) { if (!permiso->GetAttribute(wxT("valorpordefecto"), &wxValorPorDefecto) || !permiso->GetAttribute(wxT("valor"), &wxValor) ) { for (wxXmlNode* child = permiso->GetChildren(); child != NULL; child = child->GetNext()) { if (child->GetChildren() == NULL) { continue; } if (child->GetName() == wxT("default_value")) { wxValorPorDefecto = child->GetChildren()->GetContent(); wxValorPorDefecto.Trim(); } else if (child->GetName() == wxT("value")) { wxValor = child->GetChildren()->GetContent(); wxValor.Trim(); } } } stdNamespace = wxNamespace.ToUTF8(); stdId = wxId.ToUTF8(); stdAccion = wxAccion.ToUTF8(); stdValorPorDefecto = wxValorPorDefecto.ToUTF8(); stdValor = wxValor.ToUTF8(); if (wxActivoPorDefecto == wxT("true")) { activoPorDefecto = true; } else { activoPorDefecto = false; } //se busca la definicion del permiso TipoMapaDefiniciones::iterator itDefinicion = m_mapaDefiniciones.find(stdNamespace + "." + stdId); //Si el permiso no esta definido asumimos que es privado bool esPrivado = true; if (itDefinicion != m_mapaDefiniciones.end()) { esPrivado = itDefinicion->second.privado; } if((esPrivado && privados) || !esPrivado) { //se establece si es privado y la carga incluye privados, o no es privado TipoMapaPermisos* pMapaPermisos = GetMapaPermisos(stdNamespace); if(pMapaPermisos == NULL) { pMapaPermisos = new TipoMapaPermisos(); m_mapaPermisos[stdNamespace] = pMapaPermisos; } if(stdAccion == "activar") { activo = true; } else { activo = false; } (*pMapaPermisos)[stdId] = GNC::GCS::Permisos::EstadoPermiso(stdValorPorDefecto, stdValor, activoPorDefecto, activo); } } } } } /** Resetea el estado y valor de todos los permisos a sus valores por defecto **/ void ControladorPermisos::ResetearValoresPorDefecto() { for (TipoMapaPermisosNamespace::iterator it = m_mapaPermisos.begin(); it != m_mapaPermisos.end(); ++it) { TipoMapaPermisos* pNamespace = (*it).second; for (TipoMapaPermisos::iterator it2 = pNamespace->begin(); it2 != pNamespace->end(); ++it2) { GNC::GCS::Permisos::EstadoPermiso& perm = (*it2).second; perm.Reset(); } } } /** Metodo recomendado para obtener permisos **/ GNC::GCS::Permisos::EstadoPermiso* ControladorPermisos::ObtenerPermiso(const std::string& stdNamespace, const std::string& idSujeto) { TipoMapaPermisos* pNamespace = GetMapaPermisos(stdNamespace); if(pNamespace != NULL) { TipoMapaPermisos::iterator it = pNamespace->find(idSujeto); if (it == pNamespace->end()) { return NULL; } else { return &( (*it).second ); } } else { return NULL; } } /** Metodo recomendado para comprobar permisos **/ GNC::GCS::Permisos::EstadoPermiso ControladorPermisos::Get(const std::string& stdNamespace, const std::string& idSujeto) { std::string clave = stdNamespace + "." + idSujeto; TipoMapaPermisos* pNamespace = GetMapaPermisos(stdNamespace); if(pNamespace != NULL) { TipoMapaPermisos::iterator it = pNamespace->find(idSujeto); if (it != pNamespace->end()) { return (*it).second; } } // Si no esta establecido el permiso, devolvemos un permiso por defecto. TipoMapaDefiniciones::iterator itd = m_mapaDefiniciones.find(clave); if ( itd != m_mapaDefiniciones.end() ) { // Devolvemos un permiso por defecto return (*itd).second.GenerarPermisoPorDefecto(); } else { return GNC::GCS::Permisos::EstadoPermiso(); } } /** Anyade una nueva definicion de permiso al conjunto **/ void ControladorPermisos::AddDefinicionPermiso(const std::string& espacioNombres, const std::string& descripcionNamespace, const std::string& id, const std::string& descripcion, bool privado, const std::string& valorPorDefecto, bool activoPorDefecto) { std::string clave = espacioNombres + "." + id; m_mapaDefiniciones[clave] = TipoDefinicionPermiso(espacioNombres, descripcionNamespace, id, descripcion, privado, valorPorDefecto, activoPorDefecto); } // endregion GNC::ControladorPermisos::TipoMapaPermisos* ControladorPermisos::GetMapaPermisos(const std::string& stdNamespace) { TipoIteradorMapaPermisosNamespace it = m_mapaPermisos.find(stdNamespace); if(it != m_mapaPermisos.end()) { return (*it).second; } return NULL; } const ControladorPermisos::TipoMapaDefiniciones& ControladorPermisos::GetMapaDefiniciones() { return m_mapaDefiniciones; } ControladorPermisos::TipoMapaPermisosNamespace ControladorPermisos::GetPermisosFromXML(const std::string& xmlPermisos) { TipoMapaPermisosNamespace mapaPermisos; wxStringInputStream input(wxString::FromUTF8(xmlPermisos.c_str())); wxXmlDocument doc(input); if(!doc.IsOk() || doc.GetRoot()->GetName() != wxT("permisos")) { throw GNC::GCS::ControladorPermisosException("xml mal formado"); } wxString wxNamespace; wxString wxId; wxString wxAccion; wxString wxActivoPorDefecto; wxString wxValorPorDefecto; wxString wxValor; std::string stdNamespace; std::string stdId; std::string stdAccion; std::string stdValorPorDefecto; std::string stdValor; bool activoPorDefecto; bool activo; for(wxXmlNode* permiso = doc.GetRoot()->GetChildren(); permiso != NULL; permiso = permiso->GetNext()) { if(permiso->GetName() == wxT("permiso")) { if( permiso->GetAttribute(wxT("namespace"), &wxNamespace) && permiso->GetAttribute(wxT("id"), &wxId) && permiso->GetAttribute(wxT("accion"), &wxAccion) && permiso->GetAttribute(wxT("activopordefecto"), &wxActivoPorDefecto) ) { if (!permiso->GetAttribute(wxT("valorpordefecto"), &wxValorPorDefecto) || !permiso->GetAttribute(wxT("valor"), &wxValor) ) { for (wxXmlNode* child = permiso->GetChildren(); child != NULL; child = child->GetNext()) { if (child->GetChildren() == NULL) { continue; } if (child->GetName() == wxT("default_value")) { wxValorPorDefecto = child->GetChildren()->GetContent(); wxValorPorDefecto.Trim(); } else if (child->GetName() == wxT("value")) { wxValor = child->GetChildren()->GetContent(); wxValor.Trim(); } } } stdNamespace = wxNamespace.ToUTF8(); stdId = wxId.ToUTF8(); stdAccion = wxAccion.ToUTF8(); stdValorPorDefecto = wxValorPorDefecto.ToUTF8(); stdValor = wxValor.ToUTF8(); if (wxActivoPorDefecto == wxT("true")) { activoPorDefecto = true; } else { activoPorDefecto = false; } //se busca la definicion del permiso TipoMapaPermisos* pMapaPermisos = NULL; TipoIteradorMapaPermisosNamespace itBuscar = mapaPermisos.find(stdNamespace); if(itBuscar != mapaPermisos.end()) { pMapaPermisos = (*itBuscar).second; } if(pMapaPermisos == NULL) { pMapaPermisos = new TipoMapaPermisos(); mapaPermisos[stdNamespace] = pMapaPermisos; } if(stdAccion == "activar") { activo = true; } else { activo = false; } (*pMapaPermisos)[stdId] = GNC::GCS::Permisos::EstadoPermiso(stdValorPorDefecto, stdValor, activoPorDefecto, activo); } } } return mapaPermisos; } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorpermisos.h000066400000000000000000000110041314736454600252230ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include namespace GNC { class ControladorPermisos: public GNC::GCS::IControladorPermisos { public: typedef std::map TipoMapaPermisos; //se indexan por id typedef TipoMapaPermisos::iterator TipoIteradorMapaPermisos; typedef std::map TipoMapaPermisosNamespace; //se indexan por namespace typedef TipoMapaPermisosNamespace::iterator TipoIteradorMapaPermisosNamespace; typedef struct TipoDefinicionPermiso { std::string espacioNombres; std::string id; std::string descripcion; std::string descripcionNamespace; bool activoPorDefecto; std::string valorPorDefecto; bool privado; TipoDefinicionPermiso () { this->activoPorDefecto = true; this->privado = false; } TipoDefinicionPermiso (const std::string& espacioNombres, const std::string& descripcionNamespace, const std::string& id, const std::string& descripcion, bool privado, const std::string& valorPorDefecto, bool activoPorDefecto) { this->espacioNombres = espacioNombres; this->id = id; this->descripcion = descripcion; this->descripcionNamespace = descripcionNamespace; this->privado = privado; this->activoPorDefecto = activoPorDefecto; this->valorPorDefecto = valorPorDefecto; } GNC::GCS::Permisos::EstadoPermiso GenerarPermisoPorDefecto() { return GNC::GCS::Permisos::EstadoPermiso(valorPorDefecto, activoPorDefecto); } } TipoDefinicionPermiso; typedef std::map TipoMapaDefiniciones; static ControladorPermisos* Instance(); static void FreeInstance(); const TipoMapaDefiniciones& GetMapaDefiniciones(); TipoMapaPermisosNamespace GetPermisosFromXML(const std::string& xmlPermisos); //region "Realizacion de la interfaz IControladorPermisos /** Carga el fichero XML de permisos **/ virtual void CargarXMLPermisos(const std::string& xmlPermisos, bool privados = false); /** Resetea el estado y valor de todos los permisos a sus valores por defecto **/ virtual void ResetearValoresPorDefecto(); /** Metodo recomendado para obtener permisos **/ virtual GNC::GCS::Permisos::EstadoPermiso* ObtenerPermiso(const std::string& stdNamespace, const std::string& idSujeto); /** Metodo recomendado para comprobar permisos **/ virtual GNC::GCS::Permisos::EstadoPermiso Get(const std::string& stdNamespace, const std::string& idSujeto); /** Anyade una nueva definicion de permiso al conjunto **/ virtual void AddDefinicionPermiso(const std::string& espacioNombres, const std::string& descripcionNamespace, const std::string& id, const std::string& descripcion, bool privado, const std::string& valorPorDefecto, bool activoPorDefecto); // endregion protected: ControladorPermisos(); ~ControladorPermisos(); void LimpiarPermisos(); TipoMapaPermisos* GetMapaPermisos(const std::string& stdNamespace); //bool GetPermitido(TipoMapaPermisos* pMapaPermisos, const std::string& idSujeto); protected: static ControladorPermisos* m_pInstance; TipoMapaPermisosNamespace m_mapaPermisos; TipoMapaDefiniciones m_mapaDefiniciones; }; } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorvistas.cpp000066400000000000000000000474231314736454600252440ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include "controladorvistas.h" #include #include #include
    #include
    #include
    #include
    #include
    #include
    #include #include #include #include
    //region "Patron singleton" GNC::GCS::ControladorVistas* GNC::GCS::ControladorVistas::m_pInstance = 0; GNC::GCS::ControladorVistas::ControladorVistas() { m_pVistaActiva = NULL; //se conecta el evento Ginkgo GNC::GCS::Events::EventoModificacionFichero evtModificado; GNC::Entorno::Instance()->GetControladorEventos()->Registrar(this, evtModificado); } GNC::GCS::ControladorVistas::~ControladorVistas() { } GNC::GCS::ControladorVistas* GNC::GCS::ControladorVistas::Instance() { if (m_pInstance == NULL) { m_pInstance = new GNC::GCS::ControladorVistas(); } return m_pInstance; } void GNC::GCS::ControladorVistas::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } //endregion wxWindow* GNC::GCS::ControladorVistas::GetRootWindow() { return GNC::Entorno::Instance()->GetVentanaPrincipal()->GetRootWindow(); } GNC::GCS::IVista* GNC::GCS::ControladorVistas::ObtenerVistaRegistrada(wxWindow* pVentana) { GNC::GCS::IVista* pVista = NULL; MapaVentanas::iterator it = m_MapaVentanas.find(pVentana); if (it != m_MapaVentanas.end()) { pVista = (*it).second; } return pVista; } void GNC::GCS::ControladorVistas::Freeze() { VentanaPrincipal* v = GNC::Entorno::Instance()->GetVentanaPrincipal(); v->SuperFreeze(); } void GNC::GCS::ControladorVistas::Thaw() { VentanaPrincipal* v = GNC::Entorno::Instance()->GetVentanaPrincipal(); v->SuperThaw(); } void GNC::GCS::ControladorVistas::SetTitulo(GNC::GCS::IVista* pVista, const std::string& tituloNuevo) { //resets inactivity GNC::GCS::InactivityController::Instance()->ResetsInactivity(); // wxWindow* pVentana = NULL; int numConteo = 0; bool cambia = true; pVentana = pVista->GetWindow(); if (pVentana == NULL) { LOG_WARN("Core/ControladorVistas", "No se pudo obtener la ventana asociada a la vista. Inconsistencia interna"); return; } else { // Buscamos el titulo actual que tiene asociado la vista compuesta, de haberlo. MapaTitulosRegistrados::iterator it = m_MapaTitulosRegistrados.find(pVista); if (it != m_MapaTitulosRegistrados.end()) { // Ya esta registrado. const std::string& tituloActual = (*it).second; if (tituloNuevo != tituloActual) { // El titulo ha cambiado // Buscamos el titulo antiguo del registro y lo borramos. MapaConteoTitulos::iterator it2 = m_MapaConteoTitulos.find(tituloActual); if (it2 != m_MapaConteoTitulos.end()) { MapaConteoRegistros& registrosConteo = (*it2).second; MapaConteoRegistros::iterator it3 = registrosConteo.find(pVista); if (it3 != registrosConteo.end()) { registrosConteo.erase(it3); // Eliminamos la entrada de la vista para ese titulo if (registrosConteo.empty()) { // Si no hay mas entradas de vista para ese titulo, eliminamos el registro de vistas asociadas a los titulos. m_MapaConteoTitulos.erase(it2); } } else { LOG_WARN("Core/ControladorVistas", "Se ha detectado una inconsistencia interna en el registro de conteos de titulos."); } } else { LOG_WARN("Core/ControladorVistas", "Se ha detectado una inconsistencia interna en el registro de titulos de ventanas."); } m_MapaTitulosRegistrados.erase(it); // Borramos el registro de titulo de la vista } else { // El titulo no cambia cambia = false; } } } if (cambia) { // Buscamos el titulo nuevo que tiene asociado la vista compuesta, de haberlo. MapaTitulosRegistrados::iterator it = m_MapaTitulosRegistrados.find(pVista); if (it == m_MapaTitulosRegistrados.end()) { // No esta registrado. m_MapaTitulosRegistrados[pVista] = tituloNuevo; } MapaConteoTitulos::iterator it2 = m_MapaConteoTitulos.find(tituloNuevo); if (it2 != m_MapaConteoTitulos.end()) { // Ya hay ventanas registradas con este titulo MapaConteoRegistros& registrosConteo = (*it2).second; MapaConteoRegistros::iterator it3 = registrosConteo.find(pVista); if (it3 != registrosConteo.end()) { LOG_WARN("Core/ControladorVistas", "Entrada duplicada en el registro de conteos de titulos. Inconsistencia interna"); registrosConteo.erase(it3); } for (MapaConteoRegistros::iterator it3 = registrosConteo.begin(); it3 != registrosConteo.end(); ++it3) { const int num = (*it3).second + 1; numConteo = numConteo > num ? numConteo : num; } registrosConteo[pVista] = numConteo; } else { MapaConteoRegistros registroConteo; registroConteo[pVista] = 0; m_MapaConteoTitulos[tituloNuevo] = registroConteo; } } std::ostringstream os; if (pVista->SoportaGuardar() && pVista->EstaModificada()) { os << "* "; } os << tituloNuevo; if (numConteo > 0) { os << " (" << numConteo + 1 << ")"; } wxAuiNotebook* nb = dynamic_cast (pVentana->GetParent()); if (nb != NULL) { int idx = nb->GetPageIndex(pVentana); if (idx != wxNOT_FOUND) { nb->SetPageText(idx, wxString::FromUTF8(os.str().c_str())); } else { LOG_WARN("Core/ControladorVistas", "No se encontro el tab asociado. Inconsistencia interna"); } } else { GNC::GUI::DetachedDialog* dd = dynamic_cast (pVentana->GetParent()); if(dd != NULL) { dd->SetTitulo(wxString::FromUTF8(os.str().c_str())); } else { //it's startup view //LOG_WARN("Core/ControladorVistas", "No se encontro el panel o dialogo desencajado asociado a la vista. Inconsistencia interna"); } } } std::string GNC::GCS::ControladorVistas::GetTitulo(GNC::GCS::IVista* pVista) { //resets inactivity GNC::GCS::InactivityController::Instance()->ResetsInactivity(); // wxWindow* pVentana = NULL; pVentana = pVista->GetWindow(); if (pVentana == NULL) { LOG_WARN("Core/ControladorVistas", "No se pudo obtener la ventana asociada a la vista. Inconsistencia interna"); return std::string(""); } wxAuiNotebook* nb = dynamic_cast (pVentana->GetParent()); if (nb != NULL) { int idx = nb->GetPageIndex(pVentana); if (idx != wxNOT_FOUND) { return std::string(nb->GetPageText(idx).ToUTF8()); } else { LOG_WARN("Core/ControladorVistas", "No se pudo obtener el tab asociado a la vista. Inconsistencia interna"); return std::string(""); } } else { GNC::GUI::DetachedDialog* dd = dynamic_cast (pVentana->GetParent()); if(dd!=NULL) { return std::string(dd->GetTitulo().ToUTF8()); } else { LOG_WARN("Core/ControladorVistas", "No se encontro el panel o dialogo desencajado asociado a la vista. Inconsistencia interna"); return std::string(""); } } } void GNC::GCS::ControladorVistas::PropagarConfiguracionCambiada() { GNC::GCS::ILocker lock(this); for (MapaVentanas::iterator it = m_MapaVentanas.begin(); it != m_MapaVentanas.end(); ++it) { GNC::GCS::IVista* pVista = (*it).second; pVista->OnConfiguracionCambiada(); } } void GNC::GCS::ControladorVistas::Registrar(GNC::GCS::IVista* pVista) { //resets inactivity GNC::GCS::InactivityController::Instance()->ResetsInactivity(); // GNC::GCS::ILocker lock(this); if (pVista == NULL) { LOG_WARN("Core/ControladorVistas", "No se puede registrar una vista nula"); return; } wxWindow* pVentana = pVista->GetWindow(); if (pVentana == NULL) { LOG_WARN("Core/ControladorVistas", "No se puede registrar una vista con ventana nula"); return; } MapaVentanas::iterator it = m_MapaVentanas.find(pVentana); if (it != m_MapaVentanas.end()) { LOG_WARN("Core/ControladorVistas", "La vista ya estaba registrada. Posible inconsistencia interna"); } else { m_MapaVentanas[pVentana] = pVista; } GNC::Entorno::Instance()->GetVentanaPrincipal()->InsertarVentana(pVentana); } void GNC::GCS::ControladorVistas::Destruir(GNC::GCS::IVista* pVista) { //resets inactivity GNC::GCS::InactivityController::Instance()->ResetsInactivity(); // Lock(); GTRACE("ControladorVistas::DestruirVista(GNC::GCS::IVista* pVista = " << pVista << ")"); if (pVista != NULL) { wxWindow* pVentana = pVista->GetWindow(); MapaVentanas::iterator it = m_MapaVentanas.find(pVentana); if (it != m_MapaVentanas.end()) { m_MapaVentanas.erase(it); PropagarVistaDestruida(pVista); } else { LOG_WARN("Core/ControladorVistas", "Error al destruir vista: La ventana asociada a la vista no estaba registrada. Posible inconsistencia interna"); } } UnLock(); } void GNC::GCS::ControladorVistas::Destruir(wxWindow* pVentana) { if (pVentana) pVentana->Hide(); //resets inactivity GNC::GCS::InactivityController::Instance()->ResetsInactivity(); // Lock(); GTRACE("ControladorVistas::DestruirVista(wxWindow* pVentana = " << pVentana << ")"); if (pVentana != NULL) { MapaVentanas::iterator it = m_MapaVentanas.find(pVentana); if (it != m_MapaVentanas.end()) { GNC::GCS::IVista* pVista = (*it).second; m_MapaVentanas.erase(it); PropagarVistaDestruida(pVista); } else { //LOG_WARN("Core/ControladorVistas", "Error al destruir ventana: La ventana no estaba registrada. Posible inconsistencia interna"); } } UnLock(); } //region "Gestion de carga y descarga de vistas" void GNC::GCS::ControladorVistas::SolicitarActivarVista(GNC::GCS::IVista* pVista) { //resets inactivity GNC::GCS::InactivityController::Instance()->ResetsInactivity(); // if (pVista == m_pVistaActiva) { return; } Freeze(); if (m_pVistaActiva != NULL) { m_pVistaActiva->Desactivar(); m_pVistaActiva->GetWindow()->Refresh(); } m_pVistaActiva = pVista; GTRACE("GNC::GCS::ControladorVistas::SolicitarActivarVista(" << pVista << ")"); if (pVista != NULL) { pVista->Activar(); m_pVistaActiva->GetWindow()->Refresh(); } GNC::Entorno* pEntorno = GNC::Entorno::Instance(); Entorno::ViewsObserversList::const_iterator it; for (it = pEntorno->ViewsObservers.begin(); it != pEntorno->ViewsObservers.end(); ++it) { IObservadorVistas* oe = *it; oe->OnVistaActivada(pVista); } Thaw(); } //endregion //region "Propagación de eventos" void GNC::GCS::ControladorVistas::PropagarVistaCreada(GNC::GCS::IVista* pVista) { //resets inactivity GNC::GCS::InactivityController::Instance()->ResetsInactivity(); // GNC::Entorno* pEntorno = GNC::Entorno::Instance(); Entorno::ViewsObserversList::const_iterator it; for (it = pEntorno->ViewsObservers.begin(); it != pEntorno->ViewsObservers.end(); ++it) { IObservadorVistas* ov = *it; ov->OnVistaCreada(pVista); } } inline bool my_isnan(double x) { return x != x; } void GNC::GCS::ControladorVistas::PropagarVistaDestruida(GNC::GCS::IVista* pVista) { //resets inactivity GNC::GCS::InactivityController::Instance()->ResetsInactivity(); // if (pVista == NULL) { LOG_WARN("Core/ControladorVistas", "Error al propagar destruccion de vista. Vista nula. Inconsistencia interna"); return; } GNC::Entorno* pEntorno = GNC::Entorno::Instance(); MapaTitulosRegistrados::iterator it = m_MapaTitulosRegistrados.find(pVista); if (it != m_MapaTitulosRegistrados.end()) { // Esta registrado. const std::string& titulo = (*it).second; MapaConteoTitulos::iterator it2 = m_MapaConteoTitulos.find(titulo); if (it2 != m_MapaConteoTitulos.end()) { MapaConteoRegistros& registrosConteo = (*it2).second; MapaConteoRegistros::iterator it3 = registrosConteo.find(pVista); if (it3 != registrosConteo.end()) { registrosConteo.erase(it3); // Eliminamos la entrada de la vista para ese titulo if (registrosConteo.empty()) { // Si no hay mas entradas de vista para ese titulo, eliminamos el registro de vistas asociadas a los titulos. m_MapaConteoTitulos.erase(it2); } } else { LOG_WARN("Core/ControladorVistas", "Se ha detectado una inconsistencia interna en el registro de conteos de titulos."); } } else { LOG_WARN("Core/ControladorVistas", "Se ha detectado una inconsistencia interna en el registro de titulos de ventanas."); } m_MapaTitulosRegistrados.erase(it); // Borramos el registro de titulo de la vista } else { LOG_WARN("Core/ControladorVistas", "Destruccion de vista sin titulo registrado."); } Entorno::ViewsObserversList::const_iterator ito; for (ito = pEntorno->ViewsObservers.begin(); ito != pEntorno->ViewsObservers.end(); ++ito) { IObservadorVistas* ov = *ito; ov->OnVistaDestruida(pVista); } //se desactiva la vista y se desreferencia si es la activa pVista->Desactivar(); if (pVista == m_pVistaActiva) { SolicitarActivarVista(NULL); } } //endregion //region "Getters de vistas activas" GNC::GCS::IVista* GNC::GCS::ControladorVistas::GetVistaActiva() { return m_pVistaActiva; } //endregion //region "Gestión de paneles extra" void GNC::GCS::ControladorVistas::MostrarPanelFlotante(wxWindow* win, int x, int y) { GTRACE("ControladorVistas::MostrarPanel(" << win << ")") VentanaPrincipal* vp = GNC::Entorno::Instance()->GetVentanaPrincipal(); if (vp == NULL) { throw std::exception(); } vp->Freeze(); //std::cout << "Mostrando panel " << win << std::endl; vp->m_mgr.GetPane(win).Show(true); //se muestra abajo wxAuiPaneInfo& pi = vp->m_mgr.GetPane(win); if (!pi.IsFloating()) { pi.Float(); } pi.FloatingSize(pi.best_size); pi.FloatingPosition(x,y); vp->m_mgr.Update(); vp->Layout(); vp->Thaw(); } bool GNC::GCS::ControladorVistas::EsVisible(wxWindow* win) { VentanaPrincipal* vp = GNC::Entorno::Instance()->GetVentanaPrincipal(); if (vp == NULL) { throw std::exception(); } wxAuiPaneInfo pi = vp->m_mgr.GetPane(win); return pi.IsShown(); } void GNC::GCS::ControladorVistas::OcultarPanel(wxWindow* win) { GTRACE("ControladorVistas::OcultarPanel(" << win << ")") VentanaPrincipal* vp = GNC::Entorno::Instance()->GetVentanaPrincipal(); if (vp == NULL) { throw std::exception(); } vp->SuperFreeze(); //std::cout << "Ocultando panel " << win << std::endl; vp->m_mgr.GetPane(win).Hide(); vp->m_mgr.Update(); vp->Layout(); vp->SuperThaw(); } GNC::GCS::ControladorVistas::TipoListaVistas GNC::GCS::ControladorVistas::GetVistas() { //resets inactivity GNC::GCS::InactivityController::Instance()->ResetsInactivity(); // GNC::GCS::ControladorVistas::TipoListaVistas result; for(MapaVentanas::iterator it = m_MapaVentanas.begin(); it!= m_MapaVentanas.end(); ++it) { result.push_back((*it).second); } return result; } void GNC::GCS::ControladorVistas::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { GNC::GCS::Events::EventoModificacionFichero* pEvt = dynamic_cast(evt); GNC::GCS::IVista* pVista = NULL; if(pEvt != NULL && pEvt->GetVistaModificada()!=NULL) { if(pEvt->GetTipoEvento() == GNC::GCS::Events::EventoModificacionFichero::FicheroGuardado) { pVista = pEvt->GetVistaModificada(); } else if(pEvt->GetTipoEvento() == GNC::GCS::Events::EventoModificacionFichero::FicheroModificado) { pVista = pEvt->GetVistaModificada(); } } if (pVista != NULL) { SetTitulo(pVista, pVista->GetTitulo()); } } ginkgocadx-3.8.7/cadxcore/main/controllers/controladorvistas.h000066400000000000000000000071111314736454600246770ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include class wxAuiNotebook; namespace GNC { namespace GCS { class ControladorVistas : public IControladorVistas, public GNC::GCS::IEventsObserver, public GNC::GCS::ILockable { //region "Patron singleton" public: static ControladorVistas* Instance(); static void FreeInstance(); static ControladorVistas* m_pInstance; //endregion //region "Interfaz de controlador de vistas" public: virtual void Freeze(); virtual void Thaw(); /* Obtiene la ventana raiz (NoteBook) que es padre de las ventanas al inicio. */ virtual wxWindow* GetRootWindow(); /* Obtiene la vista registrada asociada a una ventana */ GNC::GCS::IVista* ObtenerVistaRegistrada(wxWindow* pVentana); virtual void SetTitulo(GNC::GCS::IVista* pVista, const std::string& titulo); virtual std::string GetTitulo(GNC::GCS::IVista* pVista); virtual void Registrar(GNC::GCS::IVista* pVista); virtual void Destruir(GNC::GCS::IVista* pVista); virtual void Destruir(wxWindow* pVentana); virtual void PropagarConfiguracionCambiada(); //endregion //region "Getters de vistas activas" virtual GNC::GCS::IVista* GetVistaActiva(); //endregion //region "Gestion de carga y descarga de vistas" virtual void SolicitarActivarVista(GNC::GCS::IVista* pVista); //endregion //region "Propagación de eventos" virtual void PropagarVistaCreada(GNC::GCS::IVista* pVista); virtual void PropagarVistaDestruida(GNC::GCS::IVista* pVista); //endregion //region "Gestión de paneles extra" virtual void MostrarPanelFlotante(wxWindow* win, int x = -1, int y = -1); virtual bool EsVisible(wxWindow* win); virtual void OcultarPanel(wxWindow* win); //endregion //region "interfaz de eventos" void ProcesarEvento(GNC::GCS::Events::IEvent *evt); //endregion virtual TipoListaVistas GetVistas(); typedef std::map MapaVentanas; typedef std::map MapaConteoRegistros; // Tupla de registro de repeticion por vista typedef std::map MapaConteoTitulos; typedef std::map MapaTitulosRegistrados; MapaVentanas m_MapaVentanas; MapaConteoTitulos m_MapaConteoTitulos; MapaTitulosRegistrados m_MapaTitulosRegistrados; protected: /* Constructor. Se mantiene una referencia a la ventana principal por ser ella la responsable de crear "tabs" */ ControladorVistas(); ~ControladorVistas(); protected: GNC::GCS::IVista* m_pVistaActiva; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/000077500000000000000000000000001314736454600220505ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomassociation.cpp000066400000000000000000000421601314736454600261070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include
    #include "dicomassociation.h" #include "dicomnetwork.h" #include #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif #include #include /* for dcmtk version name */ #include /* for dcmjpeg decoders */ #include /* for dcmjpeg encoders */ #include /* for DJ_RPLossless */ #include /* for DJ_RPLossy */ #include /* for dcmimage JPEG plugin */ #include /* include to support color images */ #include #include #include #include #include #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif const char* Association::AllTransferSyntaxes[] = { UID_LittleEndianImplicitTransferSyntax, /// Implicit VR Little Endian: Default Transfer Syntax for DICOM UID_LittleEndianExplicitTransferSyntax, /// Explicit VR Little Endian UID_BigEndianExplicitTransferSyntax, /// Explicit VR Big Endian UID_DeflatedExplicitVRLittleEndianTransferSyntax, /// Deflated Explicit VR Little Endian UID_JPEGProcess1TransferSyntax, /// JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression UID_JPEGProcess2_4TransferSyntax, /// JPEG Extended (Process 2 & 4): Default Transfer Syntax for Lossy JPEG 12 Bit Image Compression (Process 4 only) // UID_JPEGProcess3_5TransferSyntax, /// JPEG Extended (Process 3 & 5) - RETIRED // UID_JPEGProcess6_8TransferSyntax, /// JPEG Spectral Selection, Non-Hierarchical (Process 6 & 8) - RETIRED // UID_JPEGProcess7_9TransferSyntax, /// JPEG Spectral Selection, Non-Hierarchical (Process 7 & 9) - RETIRED // UID_JPEGProcess10_12TransferSyntax, /// JPEG Full Progression, Non-Hierarchical (Process 10 & 12) - RETIRED // UID_JPEGProcess11_13TransferSyntax, /// JPEG Full Progression, Non-Hierarchical (Process 11 & 13) - RETIRED UID_JPEGProcess14TransferSyntax, /// JPEG Lossless, Non-Hierarchical (Process 14) // UID_JPEGProcess15TransferSyntax, /// JPEG Lossless, Non-Hierarchical (Process 15) - RETIRED // UID_JPEGProcess16_18TransferSyntax, /// JPEG Extended, Hierarchical (Process 16 & 18) - RETIRED // UID_JPEGProcess17_19TransferSyntax, /// JPEG Extended, Hierarchical (Process 17 & 19) - RETIRED // UID_JPEGProcess20_22TransferSyntax, /// JPEG Spectral Selection, Hierarchical (Process 20 & 22) - RETIRED // UID_JPEGProcess21_23TransferSyntax, /// JPEG Spectral Selection, Hierarchical (Process 21 & 23) - RETIRED // UID_JPEGProcess24_26TransferSyntax, /// JPEG Full Progression, Hierarchical (Process 24 & 26) - RETIRED // UID_JPEGProcess25_27TransferSyntax, /// JPEG Full Progression, Hierarchical (Process 25 & 27) - RETIRED // UID_JPEGProcess28TransferSyntax, /// JPEG Lossless, Hierarchical (Process 28) - RETIRED // UID_JPEGProcess29TransferSyntax, /// JPEG Lossless, Hierarchical (Process 29) - RETIRED UID_JPEGProcess14SV1TransferSyntax, /// JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1]): Default Transfer Syntax for Lossless JPEG Image Compression UID_JPEGLSLosslessTransferSyntax, /// JPEG-LS Lossless Image Compression UID_JPEGLSLossyTransferSyntax, /// JPEG-LS Lossy (Near-Lossless) Image Compression UID_JPEG2000LosslessOnlyTransferSyntax, /// JPEG 2000 Image Compression (Lossless Only) UID_JPEG2000TransferSyntax, /// JPEG 2000 Image Compression (Lossless or Lossy) UID_JPEG2000Part2MulticomponentImageCompressionLosslessOnlyTransferSyntax, /// JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only) UID_JPEG2000Part2MulticomponentImageCompressionTransferSyntax, /// JPEG 2000 Part 2 Multi-component Image Compression (Lossless or Lossy) UID_RLELosslessTransferSyntax, /// RLE Lossless UID_MPEG2MainProfileAtMainLevelTransferSyntax, /// MPEG2 Main Profile @ Main Level UID_MPEG2MainProfileAtHighLevelTransferSyntax, /// MPEG2 Main Profile @ High Level "1.2.840.10008.1.2.4.102", /// MPEG-4 AVC/H.264 High Profile / Level 4.1 "1.2.840.10008.1.2.4.103" /// MPEG-4 AVC/H.264 BD-compatible High Profile / Level 4.1 }; const unsigned int Association::AllTransferSyntaxesCount = 19; Association::Association(const std::string& _ambitolog) : ambitolog(_ambitolog), m_pNotificadorProgreso(NULL), m_Stop(false), m_calledPort(0), m_timeout(120), assoc(NULL), presId(0), msgId(0), Net(NULL), Role(RT_Requestor), AcceptorPort(0), m_TLS(false), m_UseUserPass(false), m_Validate(false) { sopClass[0] = 0; sopInstance[0] = 0; } Association::~Association() { // drop an existing association on shutdown if (assoc != NULL) Drop(); assoc = NULL; m_pNotificadorProgreso = NULL; } OFCondition Association::Drop(OFCondition cond) { // tear down association if (cond == EC_Normal) { /* release association */ cond = ASC_releaseAssociation(assoc); } else if (cond == DUL_PEERREQUESTEDRELEASE) { cond = ASC_acknowledgeRelease(assoc); if (cond.good()) { cond = ASC_abortAssociation(assoc); if (cond.good()) { return cond; } } } else if (cond == DUL_PEERABORTEDASSOCIATION) { return cond; } else { cond = ASC_abortAssociation(assoc); if (cond.good()) { return cond; } } Destroy(); return cond; } void Association::Destroy() { OFCondition cond = ASC_destroyAssociation(&assoc); Net = NULL; assoc = NULL; msgId = 0; presId = 0; sopClass[0] = 0; sopInstance[0] = 0; } OFCondition Association::SendObject(DcmDataset *dataset) { OFCondition cond = EC_Normal; DcmDataset *statusDetail = NULL; if (Stopped()) { return DUL_NETWORKCLOSED; } T_DIMSE_C_StoreRQ req; T_DIMSE_C_StoreRSP rsp; // check if we SOPClass and SOPInstance in dataset if (!DU_findSOPClassAndInstanceInDataSet(dataset, sopClass, sopInstance)) { return makeOFCondition(OFM_dcmnet, DIMSEC_BADDATA, OF_error, "No SOPClass or SOPInstanceUID found on dataset"); } /* which presentation context should be used */ presId = ASC_findAcceptedPresentationContextID(assoc, sopClass); if (presId == 0) { const char *modalityName = dcmSOPClassUIDToModality(sopClass); if (!modalityName) modalityName = dcmFindNameOfUID(sopClass); if (!modalityName) modalityName = "unknown SOP class"; std::ostringstream os; os << "No valid presentation context found. SOPClass = " << sopClass << " Modality = " << modalityName; return makeOFCondition(OFM_dcmnet, DIMSEC_BADDATA, OF_error, os.str().c_str()); } bzero((char*) & req, sizeof (req)); req.MessageID = msgId; strncpy(req.AffectedSOPClassUID, sopClass, sizeof (req.AffectedSOPClassUID)-1); req.AffectedSOPClassUID[sizeof (req.AffectedSOPClassUID)-1] = 0; strncpy(req.AffectedSOPInstanceUID, sopInstance, sizeof (req.AffectedSOPInstanceUID)-1); req.AffectedSOPInstanceUID[sizeof(req.AffectedSOPInstanceUID)-1] = 0; req.DataSetType = DIMSE_DATASET_PRESENT; req.Priority = DIMSE_PRIORITY_LOW; // convert to accepted transfer syntax T_ASC_PresentationContext pc; cond = ASC_findAcceptedPresentationContext(assoc->params, presId, &pc); ASC_dumpPresentationContext(&pc, COUT); DcmXfer opt_oxferSyn(pc.acceptedTransferSyntax); E_TransferSyntax ori_oxferSyn = dataset->getOriginalXfer(); DcmXfer original_xfer(dataset->getOriginalXfer()); if (opt_oxferSyn.getXfer() != ori_oxferSyn) { LOG_DEBUG(ambitolog, "Converting object into accepted Transfer-Syntax: " << opt_oxferSyn.getXferName()); OFCondition cond; // create RepresentationParameter DJ_RPLossless rp_lossless(6, 0); DJ_RPLossy rp_lossy(70); // NEW const DcmRepresentationParameter *rp = NULL; if (opt_oxferSyn.getXfer() == EXS_JPEGProcess14SV1 || opt_oxferSyn.getXfer() == EXS_JPEGProcess14) { rp = &rp_lossless; } else if (opt_oxferSyn.getXfer() == EXS_JPEGProcess1 || opt_oxferSyn.getXfer() == EXS_JPEGProcess2_4) { rp = &rp_lossy; } // recompress ? if (rp != NULL) { if (original_xfer.isEncapsulated()) { LOG_DEBUG(ambitolog, "The DICOM file is already compressed. It will previously converted to uncompressed Transfer Syntax"); if (EC_Normal != dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL)) { return makeOFCondition(OFM_dcmnet, DIMSEC_BADDATA, OF_error, "Unable to convert the original format to uncompressed Transfer Syntax"); } } } cond = dataset->chooseRepresentation(opt_oxferSyn.getXfer(), rp); if (cond.bad()) { LOG_ERROR(ambitolog, "Error choosing representation: " << cond.text()); } if (dataset->canWriteXfer(opt_oxferSyn.getXfer())) { LOG_DEBUG(ambitolog, "The output transfer syntax (" << opt_oxferSyn.getXferName() << " can be writen"); } else { std::ostringstream os; os << "Unable to find any possible converson to output Transfer Syntax " << opt_oxferSyn.getXferName(); return makeOFCondition(OFM_dcmnet, DIMSEC_BADDATA, OF_error, os.str().c_str()); } } // store it cond = DIMSE_storeUser( assoc, presId, &req, NULL, dataset, NULL, NULL, (m_timeout == 0) ? DIMSE_BLOCKING : DIMSE_NONBLOCKING, m_timeout, &rsp, &statusDetail); // increase message id msgId++; // what happened if (rsp.DataSetType == DIMSE_DATASET_PRESENT) { LOG_DEBUG(ambitolog, "Response with dataset"); } if (statusDetail != NULL) { LOG_TRACE(ambitolog, "Status: " << DumpDataset(statusDetail)); delete statusDetail; } if (cond != EC_Normal) { return cond; } if (rsp.DimseStatus == STATUS_Success) { return EC_Normal; } else { LOG_ERROR(ambitolog, "DIMSE Status failed: " << rsp.DimseStatus); return DIMSE_BADDATA; } } OFCondition Association::SendObject(DcmFileFormat *dcmff) { if (Stopped()) { return DUL_NETWORKCLOSED; } DcmDataset* dataset = dcmff->getDataset(); return SendObject(dataset); } void Association::Create(const std::string& title, const std::string& peer, int port, const std::string& ouraet, const char *abstractSyntax) { // no connected association till now assoc = NULL; // fill in parameters if (abstractSyntax != NULL) { m_abstractSyntax = (char*) abstractSyntax; } m_calledAET = title; m_calledPeer = peer; m_calledPort = port; m_ourAET = ouraet; msgId = 0; presId = 0; } OFCondition Association::SendEchoRequest() { DIC_US status; DcmDataset *statusDetail = NULL; if (Stopped()) { return DUL_NETWORKCLOSED; } OFCondition cond = DIMSE_echoUser(assoc, ++msgId, DIMSE_BLOCKING, 0, &status, &statusDetail); if (cond.good()) { LOG_DEBUG(ambitolog, "DIMSE ECHO completed. Status: " << DU_cstoreStatusString(status)); } else { LOG_DEBUG(ambitolog, "DIMSE ECHO Failed: " << cond.text()); } if (statusDetail != NULL) { delete statusDetail; } return cond; } bool Association::AddKey(DcmDataset *query, const DcmTagKey& tag, int value) { static char temp[16]; #if defined(_WINDOWS) sprintf_s(temp, 16, "%i", value); #else snprintf(temp, 16, "%i", value); #endif return AddKey(query, tag, temp); } bool Association::AddKey(DcmDataset *query, const DcmTagKey& tag, double value, const char* format) { static char temp[16]; #if defined(_WINDOWS) sprintf_s(temp, 16, format, value); #else snprintf(temp, 16, format, value); #endif return AddKey(query, tag, temp); } bool Association::AddKey(DcmItem *query, const DcmTagKey& tag, int value) { static char temp[16]; #if defined(_WINDOWS) sprintf_s(temp, 16, "%i", value); #else snprintf(temp, 16, "%i", value); #endif return AddKey(query, tag, temp); } bool Association::AddKey(DcmItem *query, const DcmTagKey& tag, double value, const char* format) { static char temp[16]; #if defined(_WINDOWS) sprintf_s(temp, 16, format, value); #else snprintf(temp, 16, format, value); #endif return AddKey(query, tag, temp); } bool Association::AddKey(DcmDataset *query, const DcmTagKey& t, const char* value) { return AddCustomKey/*< DcmDataset >*/(query, t, value); } bool Association::AddKey(DcmItem *query, const DcmTagKey& t, const char* value) { return AddCustomKey/*< DcmItem >*/(query, t, value); } bool Association::AddQueryLevel(DcmDataset *query, const std::string& level) { return AddKey(query, DCM_QueryRetrieveLevel, level.c_str()); } GIL::DICOM::DCMTK::Network* Association::GetNetwork() { return Net; } OFCondition Association::Connect(GIL::DICOM::DCMTK::Network *network, int pdu) { Net = network; return network->ConnectAssociation(this, pdu); } const std::string& Association::GetOurAET() { return m_ourAET; } #warning This code returns a pointer to a static variable, that is not thread save // This function should be deprecates and replaced by a version that returns // the OFString. const char* Association::GetKey(DcmDataset* query, const DcmTagKey& tag) { OFString val; static char buffer[129]; query->findAndGetOFString(tag, val, 0, OFTrue); #if defined(_WINDOWS) strncpy_s(buffer, val.c_str(), sizeof (buffer) - 1); #else strncpy(buffer, val.c_str(), sizeof (buffer) - 1); #endif buffer[sizeof (buffer) - 1] = 0; return buffer; } void Association::SetTimeout(int t) { m_timeout = t; } int Association::GetTimeout() { return m_timeout; } OFCondition Association::addAllStoragePresentationContexts(T_ASC_Parameters *params, bool /*bProposeCompression*/, int /*lossy*/) { unsigned int pid = 1; OFCondition cond = ASC_addPresentationContext(params, pid, m_abstractSyntax.c_str(), AllTransferSyntaxes, 3); if (cond.bad()) { LOG_ERROR(ambitolog, "Unable to add presentation context for " << m_abstractSyntax); return cond; } pid += 2; if (pid >= 255) { LOG_WARN(ambitolog, "Too many PresentationContexts setted"); } return cond; } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomassociation.h000066400000000000000000000204461314736454600255570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include #include #include #include #include "helpers.h" #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif #ifdef DCMTK_POST_20170228 #include #endif #include namespace GIL { namespace DICOM { namespace DCMTK { class Network; } } } class Association { public: typedef enum RoleType { RT_Acceptor, RT_Requestor, RT_AcceptorRequestor } RoleType; std::string ambitolog; GNC::IProxyNotificadorProgreso* m_pNotificadorProgreso; /** Constructors */ Association(const std::string& ambitolog); virtual ~Association(); /** Create the association object (connect through DicomNetwork::Connect(..) ) */ void Create(const std::string& title, const std::string& peer, int port, const std::string& ouraet, const char *abstractSyntax = NULL); /*Set notificador de progreso*/ void SetNotificadorProgreso(GNC::IProxyNotificadorProgreso* pNotificadorProgreso) { m_pNotificadorProgreso = pNotificadorProgreso; } bool NotificarProgreso(float progresoNormalizado, std::string& texto) { if(m_pNotificadorProgreso!=NULL) { return m_pNotificadorProgreso->NotificarProgreso(progresoNormalizado,texto); } return true; } /** Connect the association to a dicom network */ OFCondition Connect(GIL::DICOM::DCMTK::Network* network, int pdu = ASC_DEFAULTMAXPDU); void Destroy(); /** Drop the association */ OFCondition Drop(OFCondition cond = EC_Normal); /** Send a dataset through the association (C-Store) */ virtual OFCondition SendObject(DcmDataset* dataset); /** Send a fileformat object through the association (C-Store) */ virtual OFCondition SendObject(DcmFileFormat* dcmff); /** Send a C-Echo request through the association */ OFCondition SendEchoRequest(); /** Return the DicomNetwork this association is connected to */ GIL::DICOM::DCMTK::Network* GetNetwork(); RoleType GetRole() { return Role; } void SetRole(RoleType role) { Role = role; } unsigned short GetAcceptorPort() { return AcceptorPort; } void SetAcceptorPort(unsigned short port) { AcceptorPort = port; } /** add a query key to a dataset */ static bool AddKey(DcmItem *query, const DcmTagKey& tag, const char* value = NULL); static bool AddKey(DcmItem *query, const DcmTagKey& tag, int value); static bool AddKey(DcmItem *query, const DcmTagKey& tag, double value, const char* format = "%lf"); static bool AddKey(DcmDataset *query, const DcmTagKey& tag, const char* value = NULL); //template< class T > static bool AddCustomKey(DcmItem* query, const DcmTagKey& t, const char* value) { DcmTag tag(t); Uint16 g = tag.getGTag(); Uint16 e = tag.getETag(); if (tag.error() != EC_Normal) { printf("unknown tag: (%04x,%04x)", g, e); return false; } DcmElement *elem = newDicomElement(tag); if (elem == NULL) { printf("cannot create element for tag: (%04x,%04x)", g, e); return false; } if (value != NULL) { if (strlen(value) > 0) { OFCondition cond = elem->putString(value); if (!cond.good()) { printf("cannot put tag value: (%04x,%04x)=\"%s\"", g, e, value); return false; } } } delete query->remove(t); query->insert(elem, OFTrue); return true; } static bool AddKey(DcmDataset *query, const DcmTagKey& tag, int value); static bool AddKey(DcmDataset *query, const DcmTagKey& tag, double value, const char* format = "%lf"); /** get a key from the dataset */ static const char* GetKey(DcmDataset* query, const DcmTagKey& tag); /** add a query level to a dataset */ static bool AddQueryLevel(DcmDataset* query, const std::string& level); const std::string& GetOurAET(); void SetTimeout(int t); int GetTimeout(); void SetTLS(const std::string& CliCert, const std::string& CliKey, bool validate) { m_TLS = true; m_CliCert = CliCert; m_CliKey = CliKey; m_Validate = validate; } bool IsSecure() const { return m_TLS; } //http://support.dcmtk.org/wiki/dcmtk/howto/useridentitynegotiation void SetUserPass(const std::string& PacsUser, const std::string& PacsPass) { m_UseUserPass = true; m_pacsUser = PacsUser, m_pacsPass = PacsPass; } bool UseUserPass() { return m_UseUserPass; } const std::string& GetUser() { return m_pacsUser; } const std::string& GetPass() { return m_pacsPass; } const std::string& GetCliCert() const { return m_CliCert; } const std::string& GetCliKey() const { return m_CliKey; } bool GetValidate() const { return m_Validate; } static const char* AllTransferSyntaxes[]; static const unsigned int AllTransferSyntaxesCount; void Stop() { m_Stop = true; } bool Stopped() { return m_Stop; } protected: /** Callback function to add user defined presentation context to association parameters */ virtual void OnAddPresentationContext(T_ASC_Parameters *params) = 0; OFCondition addAllStoragePresentationContexts(T_ASC_Parameters *params, bool bProposeCompression, int lossy); /** Protected data */ std::string m_abstractSyntax; std::string m_calledAET; std::string m_calledPeer; std::string m_ourAET; bool m_Stop; int m_calledPort; int m_timeout; T_ASC_Association* assoc; T_ASC_PresentationContextID presId; DIC_UI sopClass; DIC_UI sopInstance; DIC_US msgId; GIL::DICOM::DCMTK::Network* Net; RoleType Role; unsigned short AcceptorPort; bool m_TLS; bool m_UseUserPass; std::string m_pacsUser; std::string m_pacsPass; std::string m_CliCert; std::string m_CliKey; bool m_Validate; friend class GIL::DICOM::DCMTK::Network; }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomcustomassociation.cpp000066400000000000000000000713301314736454600273430ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "dicomcustomassociation.h" #include "helpercompresion.h" #include
    #include #include #include
    #include
    #include
    #include #include //#include
    #include #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include #include #include #include #include #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif #include #include #include void DIMSE_printNStatusString(std::ostream& dumpStream, int status) { switch(status) { case STATUS_Success: dumpStream << "0x0000: Success"; break; case STATUS_N_Cancel: dumpStream << "0xFE00: Cancel"; break; case STATUS_N_AttributeListError: dumpStream << "0x0107: Attribute list error"; break; case STATUS_N_SOPClassNotSupported: dumpStream << "0x0122: SOP class not supported"; break; case STATUS_N_ClassInstanceConflict: dumpStream << "0x0119: Class/instance conflict"; break; case STATUS_N_DuplicateSOPInstance: dumpStream << "0x0111: Duplicate SOP instance"; break; case STATUS_N_DuplicateInvocation: dumpStream << "0x0210: Duplicate invocation"; break; case STATUS_N_InvalidArgumentValue: dumpStream << "0x0115: Invalid argument value"; break; case STATUS_N_InvalidAttributeValue: dumpStream << "0x0106: Invalid attribute value"; break; case STATUS_N_InvalidObjectInstance: dumpStream << "0x0117: Invalid object instance"; break; case STATUS_N_MissingAttribute: dumpStream << "0x0120: Missing attribute"; break; case STATUS_N_MissingAttributeValue: dumpStream << "0x0121: Missing attribute value"; break; case STATUS_N_MistypedArgument: dumpStream << "0x0212: Mistyped argument"; break; case STATUS_N_NoSuchArgument: dumpStream << "0x0114: No such argument"; break; case STATUS_N_NoSuchAttribute: dumpStream << "0x0105: No such attribute"; break; case STATUS_N_NoSuchEventType: dumpStream << "0x0113: No such event type"; break; case STATUS_N_NoSuchObjectInstance: dumpStream << "0x0112: No such object instance"; break; case STATUS_N_NoSuchSOPClass: dumpStream << "0x0118: No such SOP class"; break; case STATUS_N_ProcessingFailure: dumpStream << "0x0110: Processing failure"; break; case STATUS_N_ResourceLimitation: dumpStream << "0x0213: Resource limitation"; break; case STATUS_N_UnrecognizedOperation: dumpStream << "0x0211: Unrecognized operation"; break; default: { char prev = dumpStream.fill('0'); auto flags = dumpStream.flags(); dumpStream << "0x" << std::hex << std::setw(4) << status << ": Unknown Status Code"; dumpStream.flags(flags); dumpStream.fill(prev); break; } } } CustomAssociation::CustomAssociation(void* connectionKey, const std::string& ambitolog, GNC::IProxyNotificadorProgreso* pNotificadorProgreso) : Association(ambitolog), GIL::DICOM::ICustomAssociation() { if (connectionKey == NULL) { LOG_ERROR(ambitolog, "NULL Connection key"); } this->Net = GIL::DICOM::DCMTK::Network::Instance(connectionKey); this->m_pNotificadorProgreso = pNotificadorProgreso; this->ambitolog = ambitolog; this->blockMode = DIMSE_BLOCKING; this->eventHandler = NULL; this->presId = 0; } CustomAssociation::~CustomAssociation() { } bool CustomAssociation::Connect(const std::string& serverId, const std::string& local_aet) { DicomServerList* listaServidores = DicomServerList::Instance(); m_server = listaServidores->GetServer(serverId); if (!m_server.IsValid()) { LOG_ERROR("C-MOVE/C-GET", "Invalid server"); return false; } if (!Net->Initiallized()) { Net->InitializeNetwork(GetTimeout(), GetRole(), GetAcceptorPort()); } Create( m_server->AET, m_server->HostName, m_server->Port, local_aet ); OFCondition r = Association::Connect(Net, m_server->PDU); if (r.bad()) { LOG_ERROR(ambitolog, "Error al conectar:" << r.text()); Drop(); Destroy(); throw GIL::DICOM::PACSException(r.text()); } return r.good(); } void CustomAssociation::OnAddPresentationContext(T_ASC_Parameters* params) { OFCondition cond; if (SOPClasses.size() > 0) { GIL::DICOM::TransferSyntaxList tsList; tsList.push_back(UID_LittleEndianImplicitTransferSyntax); unsigned int pid = 1; for (GIL::DICOM::SOPClassList::const_iterator itSopClass = SOPClasses.begin(); pid <= 255 && itSopClass != SOPClasses.end() && cond.good(); ++itSopClass) { for (GIL::DICOM::TransferSyntaxList::const_iterator itTS = tsList.begin(); pid <= 255 && itTS != tsList.end() && cond.good(); ++itTS) { const char* ts[] = {(*itTS).c_str()}; cond = ASC_addPresentationContext(params, pid, (*itSopClass).c_str(), ts, 1); pid += 2; } } if (pid >= 255) { LOG_WARN("C-GET", "Too many PresentationContexts setted"); } } else { LOG_WARN("C-GET", "NO PresentationContexts setted"); } } void CustomAssociation::dumpNMessage(T_DIMSE_Message &msg, DcmItem *dataset, OFBool outgoing) { OFString str; if (outgoing) { DIMSE_dumpMessage(str, msg, DIMSE_OUTGOING, dataset); } else { DIMSE_dumpMessage(str, msg, DIMSE_INCOMING, dataset); } LOG_DEBUG(ambitolog, str); } OFCondition CustomAssociation::sendNRequest( T_ASC_PresentationContextID presId, T_DIMSE_Message &request, DcmDataset *rqDataSet, T_DIMSE_Message &response, DcmDataset* &statusDetail, DcmDataset* &rspDataset) { OFCondition cond = EC_Normal; T_DIMSE_Command expectedResponse; DIC_US expectedMessageID=0; if (assoc == NULL) { return DIMSE_ILLEGALASSOCIATION; } T_DIMSE_DataSetType datasetType = DIMSE_DATASET_NULL; if (rqDataSet && (rqDataSet->card() > 0)) datasetType = DIMSE_DATASET_PRESENT; switch(request.CommandField) { case DIMSE_N_GET_RQ: request.msg.NGetRQ.DataSetType = datasetType; expectedResponse = DIMSE_N_GET_RSP; expectedMessageID = request.msg.NGetRQ.MessageID; break; case DIMSE_N_SET_RQ: request.msg.NSetRQ.DataSetType = datasetType; expectedResponse = DIMSE_N_SET_RSP; expectedMessageID = request.msg.NSetRQ.MessageID; break; case DIMSE_N_ACTION_RQ: request.msg.NActionRQ.DataSetType = datasetType; expectedResponse = DIMSE_N_ACTION_RSP; expectedMessageID = request.msg.NActionRQ.MessageID; break; case DIMSE_N_CREATE_RQ: request.msg.NCreateRQ.DataSetType = datasetType; expectedResponse = DIMSE_N_CREATE_RSP; expectedMessageID = request.msg.NCreateRQ.MessageID; break; case DIMSE_N_DELETE_RQ: request.msg.NDeleteRQ.DataSetType = datasetType; expectedResponse = DIMSE_N_DELETE_RSP; expectedMessageID = request.msg.NDeleteRQ.MessageID; break; default: return DIMSE_BADCOMMANDTYPE; /* break; */ } dumpNMessage(request, rqDataSet, OFTrue); cond = DIMSE_sendMessageUsingMemoryData(assoc, presId, &request, NULL, rqDataSet, NULL, NULL); if (cond.bad()) return cond; T_ASC_PresentationContextID thisPresId; T_DIMSE_Message eventReportRsp; DIC_US eventReportStatus; do { thisPresId = presId; statusDetail = NULL; cond = DIMSE_receiveCommand(assoc, blockMode, this->m_timeout, &thisPresId, &response, &statusDetail); if (cond.bad()) return cond; if (response.CommandField == DIMSE_N_EVENT_REPORT_RQ) { /* handle N-EVENT-REPORT-RQ */ rspDataset = NULL; if (response.msg.NEventReportRQ.DataSetType == DIMSE_DATASET_PRESENT) { cond = DIMSE_receiveDataSetInMemory(assoc, blockMode, m_timeout, &thisPresId, &rspDataset, NULL, NULL); if (cond.bad()) return cond; } dumpNMessage(response, rspDataset, OFFalse); // call event handler if registered eventReportStatus = STATUS_Success; if (eventHandler) eventReportStatus = eventHandler->handleEvent(response.msg.NEventReportRQ, rspDataset, statusDetail); if (rspDataset) delete rspDataset; rspDataset = NULL; if (statusDetail) delete statusDetail; statusDetail = NULL; // send back N-EVENT-REPORT-RSP */ eventReportRsp.CommandField = DIMSE_N_EVENT_REPORT_RSP; eventReportRsp.msg.NEventReportRSP.MessageIDBeingRespondedTo = response.msg.NEventReportRQ.MessageID; eventReportRsp.msg.NEventReportRSP.EventTypeID = response.msg.NEventReportRQ.EventTypeID; eventReportRsp.msg.NEventReportRSP.DimseStatus = eventReportStatus; eventReportRsp.msg.NEventReportRSP.DataSetType = DIMSE_DATASET_NULL; eventReportRsp.msg.NEventReportRSP.opts = O_NEVENTREPORT_EVENTTYPEID; eventReportRsp.msg.NEventReportRSP.AffectedSOPClassUID[0] = 0; eventReportRsp.msg.NEventReportRSP.AffectedSOPInstanceUID[0] = 0; dumpNMessage(eventReportRsp, NULL, OFTrue); cond = DIMSE_sendMessageUsingMemoryData(assoc, thisPresId, &eventReportRsp, NULL, NULL, NULL, NULL); if (cond.bad()) return cond; } else { /* No N-EVENT-REPORT-RQ. Check if this message is what we expected */ if (response.CommandField != expectedResponse) { char buf1[256]; sprintf(buf1, "DIMSE: Unexpected Response Command Field: 0x%x", (unsigned)response.CommandField); return makeDcmnetCondition(DIMSEC_UNEXPECTEDRESPONSE, OF_error, buf1); } T_DIMSE_DataSetType responseDataset = DIMSE_DATASET_NULL; DIC_US responseMessageID = 0; /** change request to response */ switch(expectedResponse) { case DIMSE_N_GET_RSP: responseDataset = response.msg.NGetRSP.DataSetType; responseMessageID = response.msg.NGetRSP.MessageIDBeingRespondedTo; break; case DIMSE_N_SET_RSP: responseDataset = response.msg.NSetRSP.DataSetType; responseMessageID = response.msg.NSetRSP.MessageIDBeingRespondedTo; break; case DIMSE_N_ACTION_RSP: responseDataset = response.msg.NActionRSP.DataSetType; responseMessageID = response.msg.NActionRSP.MessageIDBeingRespondedTo; break; case DIMSE_N_CREATE_RSP: responseDataset = response.msg.NCreateRSP.DataSetType; responseMessageID = response.msg.NCreateRSP.MessageIDBeingRespondedTo; break; case DIMSE_N_DELETE_RSP: responseDataset = response.msg.NDeleteRSP.DataSetType; responseMessageID = response.msg.NDeleteRSP.MessageIDBeingRespondedTo; break; default: { char buf1[256]; sprintf(buf1, "DIMSE: Unexpected Response Command Field: 0x%x", (unsigned)response.CommandField); return makeDcmnetCondition(DIMSEC_UNEXPECTEDRESPONSE, OF_error, buf1); } /* break; */ } if (responseMessageID != expectedMessageID) { char buf1[256]; sprintf(buf1, "DIMSE: Unexpected Response Command Field: 0x%x", (unsigned)response.CommandField); return makeDcmnetCondition(DIMSEC_UNEXPECTEDRESPONSE, OF_error, buf1); } rspDataset = NULL; if (responseDataset == DIMSE_DATASET_PRESENT) { cond = DIMSE_receiveDataSetInMemory(assoc, blockMode, m_timeout, &thisPresId, &rspDataset, NULL, NULL); if (cond.bad()) return cond; } dumpNMessage(response, rspDataset, OFFalse); } } while (response.CommandField == DIMSE_N_EVENT_REPORT_RQ); return EC_Normal; } bool CustomAssociation::createRQ( const std::string& sopclassUID, const GIL::DICOM::DicomDataset& attributeListIn, int& status, std::string& affectedSopinstanceUID) { if (assoc == NULL) { LOG_ERROR(ambitolog, DIMSE_ILLEGALASSOCIATION.theText); return false; } T_ASC_PresentationContextID presCtx = findAcceptedPC(sopclassUID.c_str()); if (presCtx == 0) { LOG_ERROR(ambitolog, DIMSE_NOVALIDPRESENTATIONCONTEXTID.theText); return false; } T_DIMSE_Message request; T_DIMSE_Message response; DcmDataset *statusDetail = NULL; // construct N-CREATE-RQ request.CommandField = DIMSE_N_CREATE_RQ; request.msg.NCreateRQ.MessageID = assoc->nextMsgID++; strncpy(request.msg.NCreateRQ.AffectedSOPClassUID, sopclassUID.c_str(), DIC_UI_LEN); request.msg.NCreateRQ.AffectedSOPClassUID[DIC_UI_LEN] = 0; request.msg.NCreateRQ.AffectedSOPInstanceUID[0] = 0; request.msg.NCreateRQ.opts = 0; DcmDataset inAttr; DcmDataset* outAttr; GIL::DICOM::PACSController::Instance()->FillInQuery(attributeListIn, &inAttr, m_server); OFCondition cond = sendNRequest(presCtx, request, &inAttr, response, statusDetail, outAttr); if (statusDetail) { delete statusDetail; statusDetail = NULL; } if (cond.good()) { status = response.msg.NCreateRSP.DimseStatus; if (status != 0) { LOG_ERROR(ambitolog, "Error sending create rq status: "<< status); std::ostringstream ostr; ostr << "Error sending create rq status: "<< status << " details: "; DIMSE_printNStatusString(ostr, status); throw GIL::DICOM::PACSException(ostr.str(), "GIL::DICOMAssociation"); } // if response contains SOP Instance UID, copy it. if (response.msg.NCreateRSP.opts & O_NCREATE_AFFECTEDSOPINSTANCEUID) { affectedSopinstanceUID = response.msg.NCreateRSP.AffectedSOPInstanceUID; } } return cond.good(); } bool CustomAssociation::setRQ( const std::string& sopclassUID, const std::string& sopinstanceUID, const GIL::DICOM::DicomDataset& modificationList, int& status) { if (assoc == NULL) { LOG_ERROR(ambitolog, DIMSE_ILLEGALASSOCIATION.theText); return false; } T_ASC_PresentationContextID presCtx = findAcceptedPC(sopclassUID.c_str()); if (presCtx == 0) { LOG_ERROR(ambitolog, DIMSE_NOVALIDPRESENTATIONCONTEXTID.theText); return false; } T_DIMSE_Message request; T_DIMSE_Message response; DcmDataset *statusDetail = NULL; // construct N-CREATE-RQ request.CommandField = DIMSE_N_SET_RQ; request.msg.NSetRQ.MessageID = assoc->nextMsgID++; strncpy(request.msg.NSetRQ.RequestedSOPClassUID, sopclassUID.c_str(), DIC_UI_LEN); request.msg.NSetRQ.RequestedSOPClassUID[DIC_UI_LEN] = 0; strncpy(request.msg.NSetRQ.RequestedSOPInstanceUID, sopinstanceUID.c_str(), DIC_UI_LEN); request.msg.NSetRQ.RequestedSOPInstanceUID[DIC_UI_LEN] = 0; DcmDataset inAttr; DcmDataset* outAttr; GIL::DICOM::PACSController::Instance()->FillInQuery(modificationList, &inAttr, m_server); OFCondition cond = sendNRequest(presCtx, request, &inAttr, response, statusDetail, outAttr); if (cond.good()) status = response.msg.NSetRSP.DimseStatus; if (status != 0) { LOG_ERROR(ambitolog, "Error sending nset rq status: "<< status); std::ostringstream ostr; ostr << "Error sending nset rq status: "<< status << " details: "; DIMSE_printNStatusString(ostr, status); throw GIL::DICOM::PACSException(ostr.str(), "GIL::CustomAssociation"); } if (statusDetail) delete statusDetail; return cond.good(); } bool CustomAssociation::getRQ( const std::string& /*sopclassUID*/, const std::string& /*sopinstanceUID*/, const int* /*attributeIdentifierList*/, unsigned long /*numShorts*/, int& /*status*/, GNC::GCS::Ptr& /*attributeListOut*/) /* OFCondition CustomAssociation::getRQ( const char *sopclassUID, const char *sopinstanceUID, const Uint16 *attributeIdentifierList, ssize_t numShorts, Uint16& status, DcmDataset* &attributeListOut) */ { /* if (assoc == NULL) { return DIMSE_ILLEGALASSOCIATION; } if ((sopclassUID==NULL)||(sopinstanceUID==NULL)) { return DIMSE_NULLKEY; } T_ASC_PresentationContextID presCtx = findAcceptedPC(sopclassUID); if (presCtx == 0) { return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } T_DIMSE_Message request; T_DIMSE_Message response; DcmDataset *statusDetail = NULL; // construct N-GET-RQ request.CommandField = DIMSE_N_GET_RQ; request.msg.NGetRQ.MessageID = assoc->nextMsgID++; strcpy(request.msg.NGetRQ.RequestedSOPClassUID, sopclassUID); strcpy(request.msg.NGetRQ.RequestedSOPInstanceUID, sopinstanceUID); request.msg.NGetRQ.ListCount = 0; if (attributeIdentifierList) request.msg.NGetRQ.ListCount = (int)numShorts; request.msg.NGetRQ.AttributeIdentifierList = (DIC_US *)attributeIdentifierList; OFCondition cond = sendNRequest(presCtx, request, NULL, response, statusDetail, attributeListOut); if (cond.good()) status = response.msg.NGetRSP.DimseStatus; if (status != 0) { LOG_ERROR(ambitolog, "Error sending create rq status: "<< status); std::ostringstream ostr; ostr << "Error sending create rq status: "<< status << " details: "; DIMSE_printNStatusString(ostr, status); throw GIL::DICOM::PACSException(ostr.str(), "GIL::CustomAssociation"); } if (statusDetail) delete statusDetail; return cond; */ return false; } bool CustomAssociation::actionRQ( const std::string& /*sopclassUID*/, const std::string& /*sopinstanceUID*/, int /*actionTypeID*/, const GIL::DICOM::DicomDataset& /*actionInformation*/, int& /*status*/, GNC::GCS::Ptr& /*attributeListOut*/) /* OFCondition CustomAssociation::actionRQ( const char *sopclassUID, const char *sopinstanceUID, Uint16 actionTypeID, DcmDataset *actionInformation, Uint16& status, DcmDataset* &actionReply) */ { /* if (assoc == NULL) { return DIMSE_ILLEGALASSOCIATION; } if ((sopclassUID==NULL)||(sopinstanceUID==NULL)) { return DIMSE_NULLKEY; } T_ASC_PresentationContextID presCtx = findAcceptedPC(sopclassUID); if (presCtx == 0) { return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } T_DIMSE_Message request; T_DIMSE_Message response; DcmDataset *statusDetail = NULL; // construct N-ACTION-RQ request.CommandField = DIMSE_N_ACTION_RQ; request.msg.NActionRQ.MessageID = assoc->nextMsgID++; strcpy(request.msg.NActionRQ.RequestedSOPClassUID, sopclassUID); strcpy(request.msg.NActionRQ.RequestedSOPInstanceUID, sopinstanceUID); request.msg.NActionRQ.ActionTypeID = (DIC_US)actionTypeID; ////////TODO: EST FALLANDO OFCondition cond = sendNRequest(presCtx, request, actionInformation, response, statusDetail, actionReply); if (cond.good()) status = response.msg.NActionRSP.DimseStatus; if (status != 0) { LOG_ERROR(ambitolog, "Error sending create rq status: "<< status); std::ostringstream ostr; ostr << "Error sending create rq status: "<< status << " details: "; DIMSE_printNStatusString(ostr, status); throw GIL::DICOM::PACSException(ostr.str(), "GIL::CustomAssociation"); } if (statusDetail) delete statusDetail; return cond; */ return false; } bool CustomAssociation::deleteRQ( const std::string& /*sopclassUID*/, const std::string& /*sopinstanceUID*/, int& /*status*/) /* OFCondition CustomAssociation::deleteRQ( const char *sopclassUID, const char *sopinstanceUID, Uint16& status) */ { /* if (assoc == NULL) { return DIMSE_ILLEGALASSOCIATION; } if ((sopclassUID==NULL)||(sopinstanceUID==NULL)) { return DIMSE_NULLKEY; } T_ASC_PresentationContextID presCtx = findAcceptedPC(sopclassUID); if (presCtx == 0) { return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } T_DIMSE_Message request; T_DIMSE_Message response; DcmDataset *statusDetail = NULL; DcmDataset *attributeListOut = NULL; // construct N-DELETE-RQ request.CommandField = DIMSE_N_DELETE_RQ; request.msg.NDeleteRQ.MessageID = assoc->nextMsgID++; strcpy(request.msg.NDeleteRQ.RequestedSOPClassUID, sopclassUID); strcpy(request.msg.NDeleteRQ.RequestedSOPInstanceUID, sopinstanceUID); OFCondition cond = sendNRequest(presCtx, request, NULL, response, statusDetail, attributeListOut); if (cond.good()) status = response.msg.NDeleteRSP.DimseStatus; if (status != 0) { LOG_ERROR(ambitolog, "Error sending create rq status: "<< status); std::ostringstream ostr; ostr << "Error sending create rq status: "<< status << " details: "; DIMSE_printNStatusString(ostr, status); throw GIL::DICOM::PACSException(ostr.str(), "GIL::CustomAssociation"); } if (statusDetail) delete statusDetail; if (attributeListOut) delete attributeListOut; // should never happen return cond; */ return false; } bool CustomAssociation::releaseAssociation() /* OFCondition CustomAssociation::releaseAssociation() */ { /* OFCondition result = EC_Normal; if (assoc) { result = ASC_releaseAssociation(assoc); Drop(); Destroy(); assoc = NULL; } return result; */ return false; } bool CustomAssociation::abortAssociation() /* OFCondition CustomAssociation::abortAssociation() */ { /* OFCondition result = EC_Normal; if (assoc) { result = ASC_abortAssociation(assoc); Drop(); Destroy(); assoc = NULL; } return result; */ return false; } T_ASC_PresentationContextID CustomAssociation::findAcceptedPC(const char *sopclassuid) { /* if ((assoc==NULL)||(sopclassuid==NULL)) return 0; // if the SOP class is one of the Basic Grayscale Print Management Meta SOP Classes, // look for a presentation context for Basic Grayscale Print. OFString sopclass(sopclassuid); if ((sopclass == UID_BasicFilmSessionSOPClass) || (sopclass == UID_BasicFilmBoxSOPClass) || (sopclass == UID_BasicGrayscaleImageBoxSOPClass) || (sopclass == UID_PrinterSOPClass)) sopclassuid = UID_BasicGrayscalePrintManagementMetaSOPClass; */ OFString sopclass(sopclassuid); return ASC_findAcceptedPresentationContextID(assoc, sopclassuid); } void CustomAssociation::Gnk2Dcmtk(const GIL::DICOM::DicomDataset& /*base*/, DcmDataset* /*query*/) { /* OFCondition cond; typedef GIL::DICOM::DicomDataset TJerarquia; typedef GIL::DICOM::ListaTags TListaTags; for (TListaTags::const_iterator it = base.tags.begin(); it != base.tags.end(); ++it) { //DcmElement* e = GIL::DICOM::DICOMManager::CrearElementoConValor((*it).first.c_str()); if (e != NULL) { const std::string& val = (*it).second; if (val.size() > 0) { e->putString( (*it).second.c_str() ); } cond = query->insert(e, true, false); if (cond.bad()) { LOG_ERROR("PACSCONTROLLER", "No se pudo insertar el elemento: (" << e->getTag().toString().c_str() << "): " << cond.text()); } } for (TJerarquia::DatasetList::const_iterator it2 = base.secuencias.begin(); it2 != base.secuencias.end(); it2++) { const TJerarquia& seq = (*it2); //DcmElement* es = GIL::DICOM::DICOMManager::CrearElementoConValor(seq.tagName.c_str()); for (TJerarquia::DatasetList::const_iterator it3 = seq.items.begin(); it3 != seq.items.end(); it3++) { const TJerarquia& item = (*it3); DcmItem* di = new DcmItem(); for (TListaTags::const_iterator it4 = item.tags.begin(); it4 != item.tags.end(); it4++) { //DcmElement* ei = GIL::DICOM::DICOMManager::CrearElementoConValor((*it4).first.c_str()); if (ei != NULL) { const std::string& val = (*it4).second; if (val.size() > 0) { ei->putString( (*it4).second.c_str() ); } cond = di->insert(ei, true, false); if (cond.bad()) { LOG_ERROR("PACSCONTROLLER", "No se pudo insertar el elemento: (" << ei->getTag().toString().c_str() << "): " << cond.text()); } } } query->insertSequenceItem(es->getTag(), di); } } } */ } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomcustomassociation.h000066400000000000000000000110751314736454600270100ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include "dicomassociation.h" #include #include #include
    #include
    #include #include #include /* for class OFString */ class DicomImage; class CustomEventHandler { public: /// destructor virtual ~CustomEventHandler() {} /** handles an N-EVENT-REPORT-RQ message. This method is called * from CustomAssociation whenever an event report is received. * The event message, information and status detail elements must be copied * if they should remain valid after the end of this method call. * The event handler can react on the event message in any implementation * dependent way, e.g. display the event on-screen. * @param eventMessage the N-EVENT-REPORT-RQ message * @param eventInformation event information dataset. May be NULL if no event information available. * @param statusDetail status detail dataset. ay be NULL if no status detail available. * @return the status code to be sent back as part of the N-EVENT-REPORT-RSP message, usually STATUS_Success. */ virtual DIC_US handleEvent( T_DIMSE_N_EventReportRQ& eventMessage, DcmDataset *eventInformation, DcmDataset *statusDetail)=0; }; class CustomAssociation : public Association, public GIL::DICOM::ICustomAssociation { public: /** Constructors */ CustomAssociation(void* connectionKey, const std::string& ambitolog, GNC::IProxyNotificadorProgreso* pNotificadorProgreso = NULL); virtual ~CustomAssociation(); virtual bool Connect(const std::string& serverId, const std::string& local_aet); virtual bool createRQ( const std::string& sopclassUID, const GIL::DICOM::DicomDataset& attributeListIn, int& status, std::string& affectedSopinstanceUID); virtual bool setRQ( const std::string& sopclassUID, const std::string& sopinstanceUID, const GIL::DICOM::DicomDataset& modificationList, int& status); virtual bool getRQ( const std::string& sopclassUID, const std::string& sopinstanceUID, const int *attributeIdentifierList, unsigned long numShorts, int& status, GNC::GCS::Ptr& attributeListOut); virtual bool actionRQ( const std::string& sopclassUID, const std::string& sopinstanceUID, int actionTypeID, const GIL::DICOM::DicomDataset& actionInformation, int& status, GNC::GCS::Ptr& attributeListOut); virtual bool deleteRQ( const std::string& sopclassUID, const std::string& sopinstanceUID, int& status); virtual bool releaseAssociation(); virtual bool abortAssociation(); void dumpNMessage(T_DIMSE_Message &msg, DcmItem *dataset, OFBool outgoing); OFCondition sendNRequest( T_ASC_PresentationContextID presId, T_DIMSE_Message &request, DcmDataset *rqDataSet, T_DIMSE_Message &response, DcmDataset* &statusDetail, DcmDataset* &rspDataset); T_ASC_PresentationContextID findAcceptedPC(const char *sopclassuid); private: void Gnk2Dcmtk(const GIL::DICOM::DicomDataset& base, DcmDataset* query); private: GIL::DICOM::DCMTK::Network* Net; std::string ambitolog; protected: GNC::IProxyNotificadorProgreso* m_pNotificadorProgreso; virtual void OnAddPresentationContext(T_ASC_Parameters* params); T_ASC_PresentationContextID presId; private: T_DIMSE_BlockingMode blockMode; /// the current event handler. Can be NULL. CustomEventHandler *eventHandler; GNC::GCS::Ptr m_server; }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomechoassociation.cpp000066400000000000000000000034341314736454600267470ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include
    #include "dicomechoassociation.h" #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif EchoAssociation::EchoAssociation(const std::string& ambitolog) : Association(ambitolog) { m_abstractSyntax = GIL::DICOM::Conformance::GetScpSOPClasses().GetSOPClassUID("VerificationSOPClass"); } EchoAssociation::~EchoAssociation() { } void EchoAssociation::OnAddPresentationContext(T_ASC_Parameters* params) { GIL::DICOM::ArrayHelper transfersyntaxes; transfersyntaxes.copyFrom(GIL::DICOM::Conformance::GetScuSOPClasses().GetSupportedTransferSyntaxUIDs("VerificationSOPClass")); OFCondition cond = ASC_addPresentationContext(params, 1, m_abstractSyntax.c_str(), transfersyntaxes.array, transfersyntaxes.size); if (cond.bad()) { LOG_ERROR(ambitolog, "Unable to add default presentation context"); } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomechoassociation.h000066400000000000000000000021141314736454600264060ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "dicomassociation.h" #include class EchoAssociation : public Association { public: /** Constructors */ EchoAssociation(const std::string& ambitolog); virtual ~EchoAssociation(); virtual void OnAddPresentationContext(T_ASC_Parameters* params); }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomfindassociation.cpp000066400000000000000000000204641314736454600267530ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "dicomfindassociation.h" #include #include #include #include
    #include
    #include #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include #include #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif FindAssociation::FindAssociation(const std::string& ambitolog) : Association(ambitolog), pResultsWrapper(NULL) { SetFindRootQueryRetrieveInformationModel(FRQRIM_Study); GNC::GCS::Permisos::EstadoPermiso estado = GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits", "find_rsp_max_results"); if (estado) { maxResults = estado.ObtenerValor(); } else { maxResults = -1; } bPushResults = true; } FindAssociation::~FindAssociation() { DeleteResultStack(); } OFCondition FindAssociation::findSCU(T_ASC_Association *assoc, DcmDataset *query) { OFCondition cond; DIC_US msgId = assoc->nextMsgID++; T_ASC_PresentationContextID presId; T_DIMSE_C_FindRQ req; T_DIMSE_C_FindRSP rsp; DcmDataset *statusDetail = NULL; std::string errorMessage; if (query == NULL) { return makeOFCondition(OFM_dcmnet, DIMSEC_BADDATA, OF_error, "NULL DIMSE Query"); } DeleteResultStack(); /* which presentation context should be used */ presId = ASC_findAcceptedPresentationContextID(assoc, m_abstractSyntax.c_str()); if (presId == 0) { LOG_ERROR(ambitolog, "Invalid PresentationContextId"); return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } req.MessageID = msgId; req.DataSetType = DIMSE_DATASET_PRESENT; req.Priority = DIMSE_PRIORITY_LOW; strncpy(req.AffectedSOPClassUID, m_abstractSyntax.c_str(), DIC_UI_LEN); req.AffectedSOPClassUID[DIC_UI_LEN] = 0; FindCallbackInfo callbackData; callbackData.pCaller = this; callbackData.assoc = assoc; cond = DIMSE_findUser(assoc, presId, &req, query, findCallback, (void*) &callbackData, (m_timeout == 0) ? DIMSE_BLOCKING : DIMSE_NONBLOCKING, m_timeout, &rsp, &statusDetail); if(rsp.DimseStatus != STATUS_Success && rsp.DimseStatus != STATUS_Pending) { std::ostringstream os; os << DU_cfindStatusString(rsp.DimseStatus); if (statusDetail != NULL) { OFString errorComment; if (statusDetail->findAndGetOFString(DCM_ErrorComment, errorComment).good()) { os << ". " << errorComment.c_str(); } } errorMessage = os.str(); } if (cond == EC_Normal) { if (rsp.DimseStatus == STATUS_Success) { } } if (statusDetail != NULL) { LOG_DEBUG(ambitolog, "DIMSE_findUser(): Status: " << std::endl << DumpDataset(statusDetail)); delete statusDetail; } if (rsp.DimseStatus != STATUS_Success && rsp.DimseStatus != STATUS_Pending) { return makeOFCondition(OFM_dcmnet, 18, OF_error, errorMessage.c_str()); } return cond; } void FindAssociation::findCallback(void* callbackData, T_DIMSE_C_FindRQ* /*rq*/, int responseCount, T_DIMSE_C_FindRSP* rsp, DcmDataset *responseIdentifiers) { FindCallbackInfo* pCallback = (FindCallbackInfo*) callbackData; if (pCallback->pCaller->GetMaxResults() > 0 && responseCount > pCallback->pCaller->GetMaxResults()) { LOG_DEBUG(pCallback->pCaller->ambitolog, "findCallback(): Ignoring response num " << responseCount << ". The maximum number of responses was " << pCallback->pCaller->GetMaxResults()); rsp->DimseStatus = STATUS_FIND_Cancel_MatchingTerminatedDueToCancelRequest; pCallback->pCaller->Stop(); ASC_releaseAssociation(pCallback->assoc); return; } wxString mess = wxString::Format(_("%d results has been found"), (int)(responseCount) ); std::string mensaje(mess.ToUTF8()); LOG_DEBUG(pCallback->pCaller->ambitolog, "Processing response num " << responseCount); if(!pCallback->pCaller->NotificarProgreso(0.0f, mensaje)) { rsp->DimseStatus = STATUS_FIND_Cancel_MatchingTerminatedDueToCancelRequest; pCallback->pCaller->Stop(); ASC_releaseAssociation(pCallback->assoc); LOG_INFO(pCallback->pCaller->ambitolog, "Operation canceled by user"); return; } else { DcmDataset* response = new DcmDataset(*responseIdentifiers); if (pCallback->pCaller->bPushResults) { pCallback->pCaller->result.push(response); //push into Ginkgo data... if (pCallback->pCaller->pResultsWrapper != NULL && pCallback->pCaller->pDicomServer.IsValid()) { GIL::DICOM::DICOMManager mgr( response, pCallback->pCaller->pDicomServer->GetDefaultCharset() ); GNC::GCS::Ptr base = new GIL::DICOM::DicomDataset(); mgr.CargarJerarquia((*base), DCM_MaxReadLength); pCallback->pCaller->pResultsWrapper->push_back(base); } } else { LOG_DEBUG("C-FIND", "No results found"); } pCallback->pCaller->OnResponseReceived(response); } } OFCondition FindAssociation::SendObject(DcmDataset *dataset) { return findSCU(assoc, dataset); } void FindAssociation::OnResponseReceived(DcmDataset* response) { LOG_DEBUG(ambitolog, "Response received: " << std::endl << DumpDataset(response)); } DcmStack* FindAssociation::GetResultStack() { return &result; } DcmStack FindAssociation::CopyResultStack() { DcmStack copy; for (unsigned int i = 0; i < result.card(); i++) { DcmDataset* dset = new DcmDataset( *(static_cast(result.elem(i))) ); copy.push(dset); } return copy; } void FindAssociation::DeleteResultStack() { DcmDataset* obj = NULL; unsigned int size = result.card(); for (Uint32 i = 0; i < size; i++) { obj = static_cast(result.elem(i)); delete obj; } result.clear(); } void FindAssociation::SetMaxResults(int max) { maxResults = max; } void FindAssociation::SetCallbackInfo(std::list< GNC::GCS::Ptr >* pRwrapper, const GNC::GCS::Ptr& dicomServer) { pResultsWrapper = pRwrapper; pDicomServer = dicomServer; } int FindAssociation::GetMaxResults() { return maxResults; } void FindAssociation::OnAddPresentationContext(T_ASC_Parameters* params) { OFCondition cond = ASC_addPresentationContext(params, 1, m_abstractSyntax.c_str(), AllTransferSyntaxes, 3); if (cond.bad()) { LOG_ERROR(ambitolog, "Unable to add default presentation context"); } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomfindassociation.h000066400000000000000000000117571314736454600264250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "dicomassociation.h" #include #include #include // This was defined in dcmtk3.5.4 but has been removed since // Redefing it here may blow right in your face // #define UID_FINDGeneralPurposeWorklistInformationModel "1.2.840.10008.5.1.4.32.1" class DicomServer; namespace GIL { namespace DICOM { class DicomDataset; } } class FindAssociation : public Association { public: typedef enum FindRootQueryRetrieveInformationModel { FRQRIM_Patient = 0, FRQRIM_Study, FRQRIM_PatientStudyOnly, FRQRIM_WorkListInformation, FRQRIM_GeneralPurposeWorklist, FRQRIM_ProtocolInformation, FRQRIM_ModalityWorklist } FindRootQueryRetrieveInformationModel; /** Constructors */ FindAssociation(const std::string& ambitolog); virtual ~FindAssociation(); /* Find Root Query Retrieve InformationModel */ void SetFindRootQueryRetrieveInformationModel(FindRootQueryRetrieveInformationModel frqi) { switch (frqi) { case FRQRIM_Patient: Association::m_abstractSyntax = (char *) UID_FINDStudyRootQueryRetrieveInformationModel; break; case FRQRIM_Study: Association::m_abstractSyntax = (char *) UID_FINDStudyRootQueryRetrieveInformationModel; break; case FRQRIM_WorkListInformation: Association::m_abstractSyntax = (char *) UID_FINDModalityWorklistInformationModel; break; case FRQRIM_GeneralPurposeWorklist: Association::m_abstractSyntax = (char *) UID_FINDGeneralPurposeWorklistInformationModel; break; case FRQRIM_ProtocolInformation: Association::m_abstractSyntax = (char *) UID_FINDHangingProtocolInformationModel; break; case FRQRIM_ModalityWorklist: Association::m_abstractSyntax = (char *) UID_FINDModalityWorklistInformationModel; break; default: throw std::exception(); } } void SetAbstractSyntax(const std::string& abstractSyntax) { Association::m_abstractSyntax = abstractSyntax.c_str(); } /** Send a query object (C-Find) through association */ OFCondition SendObject(DcmDataset *dataset); /** Get the result stack of the last query */ virtual DcmStack* GetResultStack(); DcmStack CopyResultStack(); /** Delete all objects from the result stack */ virtual void DeleteResultStack(); /** Set the maximum number of results */ void SetMaxResults(int max); /** Set results wrapper to do incremental finds */ void SetCallbackInfo(std::list< GNC::GCS::Ptr >* pRwrapper, const GNC::GCS::Ptr& dicomServer); /** Get the maximum number of results */ int GetMaxResults(); protected: /** Response handler */ virtual void OnResponseReceived(DcmDataset* response); /** Protected data */ DcmStack result; bool bPushResults; private: typedef struct _FindCallbackInfo { FindAssociation* pCaller; T_ASC_Association* assoc; } FindCallbackInfo; /** C-Find service class user */ OFCondition findSCU(T_ASC_Association * assoc, DcmDataset * query); /** Callback function for C-Find service class user */ static void findCallback(void*, T_DIMSE_C_FindRQ*, int responseCount, T_DIMSE_C_FindRSP*, DcmDataset *responseIdentifiers); int maxResults; std::list< GNC::GCS::Ptr >* pResultsWrapper; GNC::GCS::Ptr pDicomServer; virtual void OnAddPresentationContext(T_ASC_Parameters* params); }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomgetassociation.cpp000066400000000000000000001034241314736454600266100ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #define LOGGER "C-GET" #include "dicomnetwork.h" #include "dicomgetassociation.h" #include #include #include #include #include #include #include #include
    #include #include
    #include #include
    #include "istorecallback.h" #include GetAssociation::GetAssociation(const std::string& _ambitolog, IModeloDicom* pModelo) : FindAssociation(_ambitolog), m_maxReceivePDULength(ASC_DEFAULTMAXPDU), m_wellKnownNumResults(0), m_pModelo(pModelo), m_numeroImagenes(0), m_mensaje(""), m_errorMessage(""), m_bytesDescargados(0) { m_abstractSyntax.assign(UID_GETStudyRootQueryRetrieveInformationModel); } GetAssociation::~GetAssociation() { } void GetAssociation::Create(const std::string& title, const std::string& peer, int port, const std::string& ouraet, /*int ourPort,*/ const char *abstractSyntax) { Association::Create(title, peer, port, ouraet, abstractSyntax); } void GetAssociation::SetWellKnownNumResults(unsigned int numResults) { m_wellKnownNumResults = numResults; } void GetAssociation::SetModelo(IModeloDicom* pModelo) { m_pModelo = pModelo; } OFCondition GetAssociation::SendObject(DcmDataset *dataset) { return getSCU(dataset); } void GetAssociation::SetStorageSOPClasses(const GIL::DICOM::SOPClassList& SOPClasses) { this->SOPClasses = SOPClasses; } void GetAssociation::OnAddPresentationContext(T_ASC_Parameters * params) { unsigned int pid = 1; OFCondition cond = ASC_addPresentationContext(params, pid, m_abstractSyntax.c_str(), AllTransferSyntaxes, 3); if (cond.bad()) { LOG_ERROR(ambitolog, "Unable to add GETStudyRootQueryRetrieveInformationModel presentation context"); return; } pid += 2; if (SOPClasses.size() > 0) { /*for (unsigned int i = 0; pid <= 255 && i < (unsigned int) numberOfDcmLongSCUStorageSOPClassUIDs && cond.good(); ++i) { if ( SOPClasses.find(dcmLongSCUStorageSOPClassUIDs[i]) != SOPClasses.end() ) { for (unsigned int j = 0; pid <= 255 && j < AllTransferSyntaxesCount && cond.good(); j++) { cond = ASC_addPresentationContext(params, pid, dcmLongSCUStorageSOPClassUIDs[i], &AllTransferSyntaxes[j], 1); pid += 2; } } }*/ const GIL::DICOM::TransferSyntaxMap& tsMap = GIL::DICOM::Conformance::GetTransferSyntaxes(); for (GIL::DICOM::SOPClassList::const_iterator itSopClass = SOPClasses.begin(); pid <= 255 && itSopClass != SOPClasses.end() && cond.good(); ++itSopClass) { for (GIL::DICOM::TransferSyntaxMap::const_iterator itTS = tsMap.begin(); pid <= 255 && itTS != tsMap.end() && cond.good(); ++itTS) { const char* ts[] = {(*itTS).second.c_str()}; cond = ASC_addPresentationContext(params, pid, (*itSopClass).c_str(), ts, 1); pid += 2; } } if (pid >= 255) { LOG_WARN("C-GET", "Too many PresentationContexts setted"); } } else { for (unsigned int i = 0; pid <= 255 && i < (unsigned int) numberOfDcmShortSCUStorageSOPClassUIDs && cond.good(); ++i) { cond = ASC_addPresentationContext(params, pid, dcmShortSCUStorageSOPClassUIDs[i], AllTransferSyntaxes, AllTransferSyntaxesCount); pid += 2; } if (pid >= 255) { LOG_WARN("C-GET", "Too many PresentationContexts setted"); } } } static int selectReadable(T_ASC_Association *assoc, T_ASC_Network *net, T_ASC_Association *subAssoc, T_DIMSE_BlockingMode blockMode, int timeout) { T_ASC_Association *assocList[2]; int assocCount = 0; if (net != NULL && subAssoc == NULL) { if (ASC_associationWaiting(net, 0)) { /* association request waiting on network */ return 2; } } assocList[0] = assoc; assocCount = 1; assocList[1] = subAssoc; if (subAssoc != NULL) assocCount++; if (subAssoc == NULL) { timeout = 1; /* poll wait until an assoc req or move rsp */ } else { if (blockMode == DIMSE_BLOCKING) { timeout = 10000; /* a long time */ } } if (!ASC_selectReadableAssociation(assocList, assocCount, timeout)) { /* none readable */ return 0; } if (assocList[0] != NULL) { /* main association readable */ return 1; } if (assocList[1] != NULL) { /* sub association readable */ return 2; } /* should not be reached */ return 0; } OFCondition MDIMSE_getUser( T_ASC_Association* assoc, GetAssociation* getassoc, T_ASC_PresentationContextID presID, T_DIMSE_C_GetRQ *request, DcmDataset *requestIdentifiers, T_DIMSE_BlockingMode blockMode, int timeout, /* out */ T_DIMSE_C_GetRSP * /*response*/, DcmDataset **statusDetail, DcmDataset **rspIds) { T_DIMSE_Message req, rsp; DIC_US msgId; int responseCount = 0; T_ASC_Association *subAssoc = NULL; DIC_US status = STATUS_Pending; if (requestIdentifiers == NULL) return DIMSE_NULLKEY; bzero((char*)&req, sizeof(req)); bzero((char*)&rsp, sizeof(rsp)); req.CommandField = DIMSE_C_GET_RQ; request->DataSetType = DIMSE_DATASET_PRESENT; req.msg.CGetRQ = *request; msgId = request->MessageID; LOG_DEBUG("C-GET", "Accepted presID " << (int)presID); OFCondition cond = DIMSE_sendMessageUsingMemoryData(assoc, presID, &req, NULL, requestIdentifiers, NULL, NULL); if (cond != EC_Normal) { return cond; } /* receive responses */ while (cond == EC_Normal && status == STATUS_Pending) { /* if user wants, multiplex between net/subAssoc * and responses over main assoc. */ switch (selectReadable(assoc, getassoc->GetNetwork()->GetDcmtkNet(), subAssoc, blockMode, timeout)) { case 0: /* none are readble, timeout */ if (blockMode == DIMSE_BLOCKING) { continue; /* continue with while loop */ } else { return DIMSE_NODATAAVAILABLE; } /* break; */ // never reached after continue or return. case 1: /* main association readable */ break; case 2: /* net/subAssoc readable */ getassoc->subOpCallback(NULL, getassoc->GetNetwork()->GetDcmtkNet(), &subAssoc); continue; /* continue with main loop */ /* break; */ // never reached after continue statement } bzero((char*)&rsp, sizeof(rsp)); cond = DIMSE_receiveCommand(assoc, blockMode, timeout, &presID, &rsp, statusDetail); if (cond != EC_Normal) { return cond; } { OFString str; DIMSE_dumpMessage(str, rsp, DIMSE_INCOMING); LOG_DEBUG("C-GET", "Command received" << std::endl << str.c_str()); } switch (rsp.CommandField) { case DIMSE_C_STORE_RQ: { if (rsp.msg.CStoreRQ.DataSetType != DIMSE_DATASET_NULL) { cond = getassoc->storeSCP(assoc, &rsp, presID); if (cond != EC_Normal) { return cond; } else { ; } } } break; case DIMSE_C_GET_RSP: { if (rsp.msg.CGetRSP.MessageIDBeingRespondedTo != msgId) { std::stringstream ss; ss << "DIMSE: Unexpected Response MsgId: " << rsp.msg.CGetRSP.MessageIDBeingRespondedTo << " (expected: " << msgId << ")"; return makeDcmnetCondition(DIMSEC_UNEXPECTEDRESPONSE, OF_error, ss.str().c_str()); } status = rsp.msg.CGetRSP.DimseStatus; responseCount++; switch (status) { case STATUS_Pending: if (*statusDetail != NULL) { DCMNET_WARN(DIMSE_warn_str(assoc) << "getUser: Pending with statusDetail, ignoring detail"); delete *statusDetail; *statusDetail = NULL; } if (rsp.msg.CGetRSP.DataSetType != DIMSE_DATASET_NULL) { DCMNET_WARN(DIMSE_warn_str(assoc) << "getUser: Status Pending, but DataSetType!=NULL"); DCMNET_WARN(DIMSE_warn_str(assoc) << "Assuming NO response identifiers are present"); } break; default: if (rsp.msg.CGetRSP.DataSetType != DIMSE_DATASET_NULL) { cond = DIMSE_receiveDataSetInMemory(assoc, blockMode, timeout, &presID, rspIds, NULL, NULL); if (cond != EC_Normal) { return cond; } } break; } } break; default: { std::stringstream ss; ss << "DIMSE: Unexpected Response Command Field: " << (unsigned)rsp.CommandField; return makeDcmnetCondition(DIMSEC_UNEXPECTEDRESPONSE, OF_error, ss.str().c_str()); } break; } } /* do remaining sub-association work, we may receive a non-pending * status before the sub-association has cleaned up. */ while (subAssoc != NULL) { getassoc->subOpCallback(getassoc, getassoc->GetNetwork()->GetDcmtkNet(), &subAssoc); } return cond; } OFCondition GetAssociation::getSCU(DcmDataset *pdset) { OFCondition cond; T_ASC_PresentationContextID presId; T_DIMSE_C_GetRQ req; T_DIMSE_C_GetRSP rsp; DIC_US msgId = assoc->nextMsgID++; DcmDataset* rspIds = NULL; const char* sopClass; DcmDataset* statusDetail = NULL; if (pdset == NULL) { LOG_ERROR(ambitolog, "Dataset nulo en getSCU"); return DIMSE_NULLKEY; } { OFString str; ASC_dumpParameters(str, assoc->params, ASC_ASSOC_AC); LOG_DEBUG("C-GET", str.c_str()); } //sopClass = m_abstractSyntaxMove; sopClass = m_abstractSyntax.c_str(); // which presentation context should be used presId = ASC_findAcceptedPresentationContextID(assoc, sopClass); if (presId == 0) { return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } req.MessageID = msgId; strncpy(req.AffectedSOPClassUID, sopClass, DIC_UI_LEN); req.AffectedSOPClassUID[DIC_UI_LEN] = 0; req.Priority = DIMSE_PRIORITY_HIGH; req.DataSetType = DIMSE_DATASET_PRESENT; ResetearMedida(true); m_numeroImagenes=0; { OFString str; DIMSE_dumpMessage(str, req, DIMSE_OUTGOING, pdset, presId); LOG_DEBUG("C-GET", str.c_str()); } cond = MDIMSE_getUser( assoc, this, presId, &req, pdset, DIMSE_BLOCKING, 0, &rsp, &statusDetail, &rspIds); if (cond.bad()) { std::ostringstream os; os << DU_cgetStatusString(cond.status()); if (statusDetail != NULL) { OFString errorComment; if (statusDetail->findAndGetOFString(DCM_ErrorComment, errorComment).good()) { os << ". " << errorComment.c_str(); } } m_errorMessage = os.str(); } if (statusDetail != NULL) { LOG_DEBUG(ambitolog, "DIMSE_getUser(): Estado: " << std::endl << DumpDataset(statusDetail)); delete statusDetail; } if (rspIds != NULL) { delete rspIds; } return cond; /*if( rsp.DimseStatus != STATUS_Success && rsp.DimseStatus != STATUS_Pending) { std::ostringstream os; os << DU_cgetStatusString(rsp.DimseStatus); if (statusDetail != NULL) { OFString errorComment; if (statusDetail->findAndGetOFString(DCM_ErrorComment, errorComment).good()) { os << ". " << errorComment.c_str(); } } m_errorMessage = os.str(); } if (statusDetail != NULL) { LOG_DEBUG(ambitolog, "DIMSE_getUser(): Estado: " << std::endl << DumpDataset(statusDetail)); delete statusDetail; } if (rspIds != NULL) { delete rspIds; } if(m_errorMessage != "" || rsp.NumberOfFailedSubOperations > 0 ) { if (m_errorMessage.size() == 0) { m_errorMessage = "Some operations failed"; } return makeOFCondition(OFM_dcmnet, 18, OF_error, m_errorMessage.c_str()); } return cond;*/ } void GetAssociation::getCallback(void * /*callbackData*/, T_DIMSE_C_GetRQ * /*request*/, int /*responseCount*/, T_DIMSE_C_GetRSP * /*response*/) { } void GetAssociation::subOpCallback(void *pCaller, T_ASC_Network *aNet, T_ASC_Association **subAssoc) { GetAssociation* caller = static_cast(pCaller); if (caller->GetNetwork() == NULL) { return; } wxString msg = wxString::Format(_("Downloading file %d"), (int)(++caller->m_numeroImagenes)); caller->m_mensaje = std::string(msg.ToUTF8()); LOG_DEBUG(caller->ambitolog, caller->m_mensaje); caller->NotificarProgreso((float)caller->m_numeroImagenes/100,caller->m_mensaje); if (*subAssoc == NULL) { // negotiate association LOG_DEBUG(caller->ambitolog, "Aceptando subasociacion"); caller->acceptSubAssoc(aNet, subAssoc); } else { // be a service class provider LOG_DEBUG(caller->ambitolog, "Invocando subOp SCP"); caller->subOpSCP(subAssoc); } } OFCondition GetAssociation::acceptSubAssoc(T_ASC_Network* /*aNet*/, T_ASC_Association** /*assoc*/) { OFCondition cond = EC_Normal; return cond; } OFCondition GetAssociation::subOpSCP(T_ASC_Association **subAssoc) { T_DIMSE_Message msg; T_ASC_PresentationContextID presID; /* just in case */ if (!ASC_dataWaiting(*subAssoc, 0)) { LOG_TRACE(ambitolog, "No hay datos pendientes"); return DIMSE_NODATAAVAILABLE; } OFCondition cond = DIMSE_receiveCommand(*subAssoc, DIMSE_BLOCKING, 0, &presID, &msg, NULL); if (cond == EC_Normal) { switch (msg.CommandField) { case DIMSE_C_STORE_RQ: LOG_TRACE(ambitolog, "Invocando C-STORE_RQ"); cond = storeSCP(*subAssoc, &msg, presID); break; case DIMSE_C_ECHO_RQ: LOG_TRACE(ambitolog, "Invocando C-ECHO_RQ"); cond = echoSCP(*subAssoc, &msg, presID); break; default: LOG_ERROR(ambitolog, "Tipo de comando incorrecto. Sólo se aceptan C-STORE_RQ o C-ECHO_RQ en esta etapa" << cond.text()); cond = DIMSE_BADCOMMANDTYPE; break; } } // clean up on association termination if (cond == DUL_PEERREQUESTEDRELEASE) { cond = ASC_acknowledgeRelease(*subAssoc); ASC_dropSCPAssociation(*subAssoc); ASC_destroyAssociation(subAssoc); return cond; } else if (cond == DUL_PEERABORTEDASSOCIATION) { LOG_ERROR(ambitolog, "El PACS remoto aborto la asociacion" << cond.text()); } else if (cond != EC_Normal) { LOG_ERROR(ambitolog, "Ha ocurrido un error y se abortara la asociacion" << cond.text()); // some kind of error so abort the association cond = ASC_abortAssociation(*subAssoc); } if (cond != EC_Normal) { ASC_dropAssociation(*subAssoc); ASC_destroyAssociation(subAssoc); } return cond; } OFCondition GetAssociation::storeSCP(T_ASC_Association *assoc, T_DIMSE_Message *msg, T_ASC_PresentationContextID presID) { OFCondition cond; T_DIMSE_C_StoreRQ* req; req = &msg->msg.CStoreRQ; StoreCallbackInfo callbackData; callbackData.pCaller = this; callbackData.assoc = assoc; callbackData.lastTick = std::clock(); std::string fileName = GNC::Entorno::Instance()->CreateGinkgoTempFile(); cond = DIMSE_storeProvider(assoc, presID, req, fileName.c_str(), 1, NULL, storeSCPCallback, (void*) & callbackData, DIMSE_BLOCKING, 0); if (cond.good()) { //we are going to read received file dataset DcmFileFormat ff; ff.loadFile(fileName.c_str(), EXS_Unknown, EGL_noChange, DCM_TagInfoLength); DcmDataset* imageDataSet = ff.getDataset(); if ((imageDataSet)) { // do not duplicate the dataset, let the user do this // if he wants to OnFileReceived(fileName, imageDataSet); } } return cond; } void GetAssociation::storeSCPCallback(void *callbackData, T_DIMSE_StoreProgress *progress, T_DIMSE_C_StoreRQ *req, char* imageFileName, DcmDataset ** /*imageDataSet*/, T_DIMSE_C_StoreRSP *rsp, DcmDataset **statusDetail) { DIC_UI sopClass; DIC_UI sopInstance; StoreCallbackInfo *cbdata = (StoreCallbackInfo*) callbackData; GetAssociation* caller = cbdata->pCaller; float partial = 0.0f; float step = 0.0f; if (caller->m_wellKnownNumResults > 0 ) { step = 1.0f / (float) caller->m_wellKnownNumResults; partial = (float)caller->m_numeroImagenes * step; } else { ; } if (progress->state == DIMSE_StoreBegin) { wxString msg; if (caller->m_wellKnownNumResults > 0) { msg = wxString::Format(_("Downloading file %d/%d"), (int)(caller->m_numeroImagenes + 1), (int)(caller->m_wellKnownNumResults) ); } else { msg = wxString::Format(_("Downloading file %d"), (int)(caller->m_numeroImagenes + 1) ); } caller->m_mensaje = std::string(msg.ToUTF8()); LOG_DEBUG(caller->ambitolog, caller->m_mensaje); if (!caller->NotificarProgreso((float) partial, caller->m_mensaje) ) { rsp->DimseStatus = STATUS_STORE_Refused_OutOfResources; caller->Stop(); ASC_releaseAssociation(caller->assoc); LOG_INFO(caller->ambitolog, "Operation canceled by user"); return; } caller->m_bytesDescargados += progress->totalBytes; GNC::GCS::Permisos::EstadoPermiso estado = GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits", "study_size"); if (estado) { if (estado.ObtenerValor() < (caller->m_bytesDescargados / 1024) ) { caller->m_errorMessage = _Std("Study download size limit exceeded"); rsp->DimseStatus = STATUS_STORE_Refused_OutOfResources; caller->Stop(); ASC_releaseAssociation(caller->assoc); return; } } cbdata->lastTick = std::clock(); } else if (progress->state == DIMSE_StoreProgressing) { std::clock_t curTick = std::clock(); if ( (curTick - cbdata->lastTick) > (CLOCKS_PER_SEC >> 1) ) { cbdata->lastTick = curTick; std::stringstream ostr; ostr << caller->m_mensaje; ostr.setf(std::ios::floatfield, std::ios::fixed ); ostr.precision(2); ostr << " (" << caller->TasaTransferencia(progress->progressBytes) << " kb/s)"; std::string msg(ostr.str()); if(!caller->NotificarProgreso( partial + step * ((float)progress->progressBytes/(float)progress->totalBytes), msg) ) { rsp->DimseStatus = STATUS_STORE_Refused_OutOfResources; OFCondition cond = ASC_releaseAssociation(cbdata->assoc); return; } } } else if (progress->state == DIMSE_StoreEnd) { LOG_TRACE(caller->ambitolog, "storeSCPCallback(). DIMSE_StoreEnd"); caller->m_numeroImagenes++; *statusDetail = NULL; /* no status detail */ caller->ResetearMedida(); /* could save the image somewhere else, put it in database, etc */ rsp->DimseStatus = STATUS_Success; //we are going to read received file dataset DcmFileFormat ff; ff.loadFile(imageFileName, EXS_Unknown, EGL_noChange, DCM_TagInfoLength); DcmDataset* imageDataSet = ff.getDataset(); /* should really check the image to make sure it is consistent, * that its sopClass and sopInstance correspond with those in * the request. */ if (rsp->DimseStatus == STATUS_Success) { /* which SOP class and SOP instance ? */ if (!DU_findSOPClassAndInstanceInDataSet(imageDataSet, sopClass, sopInstance)) { rsp->DimseStatus = STATUS_STORE_Error_DataSetDoesNotMatchSOPClass; LOG_ERROR(caller->ambitolog, "No se pudo encontrar SOPClass o SOPInstanceUID en el dataset"); } else if (strcmp(sopClass, req->AffectedSOPClassUID) != 0) { rsp->DimseStatus = STATUS_STORE_Error_DataSetDoesNotMatchSOPClass; LOG_ERROR(caller->ambitolog, "El SOPClass del dataset(" << sopClass << ") no coincide con el SOPClass requerido (" << req->AffectedSOPClassUID << ")"); } else if (strcmp(sopInstance, req->AffectedSOPInstanceUID) != 0) { rsp->DimseStatus = STATUS_STORE_Error_DataSetDoesNotMatchSOPClass; LOG_ERROR(caller->ambitolog, "El SOPInstance del dataset(" << sopInstance << ") no coincide con el SOPInstanceUID requerido (" << req->AffectedSOPInstanceUID << ")"); } } } } OFCondition GetAssociation::echoSCP(T_ASC_Association *assoc, T_DIMSE_Message *msg, T_ASC_PresentationContextID presID) { OFCondition cond; // the echo succeeded !! cond = DIMSE_sendEchoResponse(assoc, presID, &msg->msg.CEchoRQ, STATUS_Success, NULL); return cond; } void GetAssociation::OnFileReceived(const std::string& fileName, DcmDataset* dset) { if (m_pModelo != NULL) { OFString OFEstudioUId; if (dset->findAndGetOFString(DCM_StudyInstanceUID, OFEstudioUId).good()) { OFString OFPacienteUID; std::string PacienteUID; if (dset->findAndGetOFString(DCM_PatientID, OFPacienteUID).good()) { PacienteUID.assign(OFPacienteUID.c_str()); } OFString OFPacienteNombre; std::string PacienteNombre; if (dset->findAndGetOFString(DCM_PatientName, OFPacienteNombre).good()) { PacienteNombre.assign(OFPacienteNombre.c_str()); } OFString OFPacienteFechaNacimiento; std::string PacienteFechaNacimiento; if (dset->findAndGetOFString(DCM_PatientBirthDate, OFPacienteFechaNacimiento).good()) { PacienteFechaNacimiento.assign(OFPacienteFechaNacimiento.c_str()); } OFString OFPacienteSexo; std::string PacienteSexo; if (dset->findAndGetOFString(DCM_PatientSex, OFPacienteSexo).good()) { PacienteSexo.assign(OFPacienteSexo.c_str()); } const IModeloPaciente& paciente = m_pModelo->InsertarPaciente(PacienteUID, PacienteNombre, PacienteFechaNacimiento, PacienteSexo); OFString OFEstudioUID; std::string EstudioUID; if (dset->findAndGetOFString(DCM_StudyInstanceUID, OFEstudioUID).good()) { EstudioUID.assign(OFEstudioUID.c_str()); } OFString OFEAccNumber; std::string AccNumber; if (dset->findAndGetOFString(DCM_AccessionNumber, OFEAccNumber).good()) { AccNumber.assign(OFEAccNumber.c_str()); } OFString OFEstudioDescripcion; std::string EstudioDescripcion; if (dset->findAndGetOFString(DCM_StudyDescription, OFEstudioDescripcion).good()) { EstudioDescripcion.assign(OFEstudioDescripcion.c_str()); } OFString OFEstudioModalidad; std::string EstudioModalidad; if (dset->findAndGetOFString(DCM_ModalitiesInStudy, OFEstudioModalidad).good()) { EstudioModalidad.assign(OFEstudioModalidad.c_str()); } OFString OFEstudioFecha; std::string EstudioFecha; if (dset->findAndGetOFString(DCM_StudyDate, OFEstudioFecha).good()) { EstudioFecha.assign(OFEstudioFecha.c_str()); } OFString OFEstudioHora; std::string EstudioHora; if (dset->findAndGetOFString(DCM_StudyTime, OFEstudioHora).good()) { EstudioHora.assign(OFEstudioHora.c_str()); } OFString OFEstudioDoctor; std::string EstudioDoctor; if (dset->findAndGetOFString(DCM_ReferringPhysicianName, OFEstudioDoctor).good()) { EstudioDoctor.assign(OFEstudioDoctor.c_str()); } m_pModelo->InsertarEstudio(paciente.GetUID(), EstudioUID, AccNumber, EstudioDescripcion, EstudioModalidad, EstudioFecha, EstudioHora, EstudioDoctor); OFString OFSerieUID; std::string SerieUID; if (dset->findAndGetOFString(DCM_SeriesInstanceUID, OFSerieUID).good()) { SerieUID.assign(OFSerieUID.c_str()); } OFString OFSerieTipo; std::string SerieTipo; if (dset->findAndGetOFString(DCM_SeriesType, OFSerieTipo).good()) { SerieTipo.assign(OFSerieTipo.c_str()); } OFString OFSerieFecha; std::string SerieFecha; if (dset->findAndGetOFString(DCM_SeriesDate, OFSerieFecha).good()) { SerieFecha.assign(OFSerieFecha.c_str()); } OFString OFSerieHora; std::string SerieHora; if (dset->findAndGetOFString(DCM_SeriesTime, OFSerieHora).good()) { SerieHora.assign(OFSerieHora.c_str()); } OFString OFSerieDescripcion; std::string SerieDescripcion; if (dset->findAndGetOFString(DCM_SeriesDescription, OFSerieDescripcion).good()) { SerieDescripcion.assign(OFSerieDescripcion.c_str()); } OFString OFSerieNumero; std::string SerieNumero; if (dset->findAndGetOFString(DCM_NumberOfSeriesRelatedInstances, OFSerieNumero).good()) { SerieNumero.assign(OFSerieNumero.c_str()); } OFString OFSerieDoctor; std::string SerieDoctor; if (dset->findAndGetOFString(DCM_ReferringPhysicianName, OFSerieDoctor).good()) { SerieDoctor.assign(OFSerieDoctor.c_str()); } m_pModelo->InsertarSerie(EstudioUID, SerieUID, SerieTipo, SerieFecha, SerieHora, SerieDescripcion,SerieNumero,SerieDoctor); OFString OFUIDImagen; std::string UIDImagen; OFString OFInstanceNumber; std::string InstanceNumber; if (dset->findAndGetOFString(DCM_SOPInstanceUID, OFUIDImagen).good()) { UIDImagen.assign(OFUIDImagen.c_str()); if (dset->findAndGetOFString(DCM_InstanceNumber, OFInstanceNumber).good()) { InstanceNumber.assign(OFInstanceNumber.c_str()); } else { LOG_WARN(ambitolog, "InstanceNumber not found. Setting to default"); InstanceNumber.assign("1"); } m_pModelo->InsertarImagen(SerieUID,UIDImagen, InstanceNumber, fileName); } else { LOG_ERROR("DCMGET", "InstanceUID not found"); } } } } float GetAssociation::TasaTransferencia(int bytesDescargados) { time_t nuevoInstante = time(NULL); const double tiempo = difftime(nuevoInstante,m_medida.m_instante); if(tiempo>0.5) { if(bytesDescargados > m_medida.bytesDescargados) { const double bytesRecibidosPeriodo = bytesDescargados - m_medida.bytesDescargados; m_medida.oldTasa = ( ((float)bytesRecibidosPeriodo/1024.0f)/tiempo ); m_medida.bytesDescargados = bytesDescargados; m_medida.m_instante = nuevoInstante; } } return m_medida.oldTasa; } void GetAssociation::ResetearMedida(bool clearTasa) { m_medida.bytesDescargados = 0; m_medida.m_instante = time(NULL); if(clearTasa) { m_medida.oldTasa=0.0f; } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomgetassociation.h000066400000000000000000000072411314736454600262550ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include "dicomfindassociation.h" #include "istorecallback.h" class GetAssociation : public FindAssociation { public: GetAssociation(const std::string& ambitolog, IModeloDicom* pModelo=NULL); virtual ~GetAssociation(); void SetWellKnownNumResults(unsigned int numResults); void SetModelo(IModeloDicom* pModelo); void SetStorageSOPClasses(const GIL::DICOM::SOPClassList& SOPClasses); void Create(const std::string& title, const std::string& peer, int port, const std::string& ouraet, /*int ourPort,*/ const char *abstractSyntax = UID_GETStudyRootQueryRetrieveInformationModel); OFCondition SendObject(DcmDataset *dataset); //protected: virtual void OnAddPresentationContext(T_ASC_Parameters *params); virtual void OnFileReceived(const std::string& fileName, DcmDataset* dataSet); int m_maxReceivePDULength; unsigned int m_wellKnownNumResults; //private: typedef struct _GetCallbackInfo { T_ASC_Association *assoc; T_ASC_PresentationContextID presId; GetAssociation* pCaller; } GetCallbackInfo; typedef struct _StoreCallbackInfo { GetAssociation* pCaller; T_ASC_Association* assoc; std::clock_t lastTick; } StoreCallbackInfo; OFCondition getSCU(DcmDataset *pdset); static void getCallback(void *callbackData, T_DIMSE_C_GetRQ *request, int responseCount, T_DIMSE_C_GetRSP *response); OFCondition acceptSubAssoc(T_ASC_Network *aNet, T_ASC_Association **assoc); OFCondition subOpSCP(T_ASC_Association **subAssoc); static void subOpCallback(void * pCaller, T_ASC_Network *aNet, T_ASC_Association **subAssoc); OFCondition storeSCP(T_ASC_Association *assoc, T_DIMSE_Message *msg, T_ASC_PresentationContextID presID); static void storeSCPCallback(void *callbackData, T_DIMSE_StoreProgress *progress, T_DIMSE_C_StoreRQ *req, char *imageFileName, DcmDataset **imageDataSet, T_DIMSE_C_StoreRSP *rsp, DcmDataset **statusDetail); OFCondition echoSCP(T_ASC_Association *assoc, T_DIMSE_Message *msg, T_ASC_PresentationContextID presID); IModeloDicom* m_pModelo; public: int m_numeroImagenes; std::string m_mensaje; std::string m_errorMessage; long m_bytesDescargados; protected: typedef struct TMedida { time_t m_instante; int bytesDescargados; float oldTasa; TMedida() { m_instante = time(NULL); bytesDescargados = 0; oldTasa = 0.0f; } } TMedida; TMedida m_medida; GIL::DICOM::SOPClassList SOPClasses; public: float TasaTransferencia(int bytesRestantes); void ResetearMedida(bool clearTasa = false); }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomimg2dcm.cpp000066400000000000000000001017401314736454600251150ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include
    #include
    #include
    #include
    #include
    #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif // For sime reason dcmtk-3.6.1-20150924 has an hiccup in // dcmth/oflog/ logger.h and logmacro.h // since they are not used we define the include guards here #define DCMTK_LOG4CPLUS_TRACELOGGER_H #define DCMTK_LOG4CPLUS_LOGGING_MACROS_HEADER_ #include "libi2d/document2dcm.h" #include "libi2d/i2djpgs.h" #include "libi2d/pdf2dsource.h" #include "libi2d/i2dles.h" #include "libi2d/i2dplsc.h" #include "libi2d/i2dplvlp.h" #include "libi2d/foooutpl.h" #include "libi2d/i2dplnsc.h" #include "dicomimg2dcm.h" #include "dcmtk/dcmdata/dcdict.h" #include "dcmtk/dcmdata/dchashdi.h" #include #include #include //en este grupo se almacenaran los atributos privados de ginkgo #ifdef DCMTK_POST_20170228 #include #endif #define GINKGO_GROUP 0x0011 class DcmElement; namespace GIL { namespace DICOM { //region "Helpers" DcmElement* DICOMImg2DCM::CrearElementoConValor(const char* s) { unsigned int g = 0xffff; unsigned int e = 0xffff; OFString dicName, valStr; OFString msg; OFString str = s; size_t pos = str.find('='); if (pos != OFString_npos) { valStr = str.substr(pos + 1, str.length()); dicName = str.substr(0, pos); } else { dicName = str; } pos = dicName.find("|"); if (pos != OFString_npos) { #if defined(_WIN32) if (2 != _snscanf(dicName.c_str(), 11, "%x|%x", &g, &e)) #else if (2 != std::sscanf(dicName.c_str(), "%x|%x", &g, &e)) #endif { LOG_ERROR("Dicomizador", "Error al interpretar el tag " << s); return NULL; } } else { DcmTagKey key(0xffff, 0xffff); const DcmDataDictionary& globalDataDict = dcmDataDict.rdlock(); const DcmDictEntry *dicent = globalDataDict.findEntry(dicName.c_str()); dcmDataDict.unlock(); if (dicent != NULL) { // found dictionary name, copy group and element number key = dicent->getKey(); g = key.getGroup(); e = key.getElement(); } else { // not found in dictionary std::cerr << "bad key format or dictionary name not found in dictionary: " << dicName << std::endl; LOG_ERROR("Dicomizador", "Error al obtener la entrada del diccionario para el tag " << dicName.c_str() << ". Cadena: " << s); return NULL; } } DcmTag tag(g, e); if (tag.error() != EC_Normal) { std::cerr << "Tag desconocido: (" << std::hex << std::setw(4) << std::setfill('0') << g << "|" << std::hex << std::setw(4) << std::setfill('0') << e << ")" << std::endl; return NULL; } DcmElement *elem = newDicomElement(tag); if (elem == NULL) { std::cerr << "No se pudo crear el elemento para el tag: (" << std::hex << std::setw(4) << std::setfill('0') << g << "|" << std::hex << std::setw(4) << std::setfill('0') << e << ")" << std::endl; return NULL; } if (valStr.length() > 0) { if (elem->putString( wxString( valStr.c_str(), wxConvUTF8).mb_str(*m_pConv) ).bad()) { std::cerr << "No se pudo asignar el valor al elemento: (" << std::hex << std::setw(4) << std::setfill('0') << g << "|" << std::hex << std::setw(4) << std::setfill('0') << e << ")=" << valStr.c_str() << std::endl; delete elem; return NULL; } } return elem; } DICOMImg2DCM::DICOMImg2DCM() { i2d = NULL; outputPlug = NULL; inputPlug = NULL; resultObject = NULL; writeXfer = EXS_Unknown; std::string Charset; GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/Estacion","DefaultCharset",Charset,"ISO_IR 100"); if (Charset == "ISO_IR 192" || Charset == "ISO_IR 6") { m_pConv = new wxCSConv(wxFONTENCODING_UTF8); } else if (Charset == "ISO_IR 100") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_1); } else if (Charset == "ISO_IR 101") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_2); } else if (Charset == "ISO_IR 109") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_3); } else if (Charset == "ISO_IR 110") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_4); } else if (Charset == "ISO_IR 148") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_9); } else if (Charset == "ISO_IR 144") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_5); } else if (Charset == "ISO_IR 127") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_6); } else if (Charset == "ISO_IR 126") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_7); } else if (Charset == "ISO_IR 138") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_8); } else { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_1); } }; DICOMImg2DCM::~DICOMImg2DCM() { LiberarMemoria(); delete m_pConv; } void DICOMImg2DCM::LiberarMemoria() { if (resultObject != NULL) { delete resultObject; resultObject = NULL; } if (inputPlug != NULL) { delete inputPlug; inputPlug = NULL; } if (outputPlug != NULL) { delete outputPlug; outputPlug = NULL; } if (i2d != NULL) { delete i2d; i2d = NULL; } }; //endregion void DICOMImg2DCM::Inicializar(std::string& inputFile, IInspectCallBack* pICallback, bool debug, TDICOMOutputFormat outputFormat) { LiberarMemoria(); if (inputFile.length() == 0) { throw I2DException("No se ha especificado el fichero de entrada"); } if (GIL::DICOM::PACSController::Instance()->EsPDF(inputFile)) { // Special PDF Dicomization //pdf => foo not need output plug if (outputFormat == TDOF_AUTO) { outputFormat = TDOF_FOO; } PDF2DSource* pdfSource = new PDF2DSource(); if (pdfSource == NULL) { throw I2DException(_Std("Unable to reserve memory for PDF dicomization")); } pdfSource->setPDFFile(inputFile.c_str()); Inicializar(pdfSource, pICallback, debug, outputFormat); } else { // Traditional Image dicomization //image => vlp if (outputFormat == TDOF_AUTO) { outputFormat = TDOF_VLP; } GNC::GCS::Permisos::EstadoPermiso mantenerCodificacion = GNC::GCS::IControladorPermisos::Instance()->Get("core.importacion", "mantener"); if (mantenerCodificacion.Activo()) { //probamos a ver si nos vale cn un JPEG source I2DJpegSource *jpgSource = new I2DJpegSource(); if (jpgSource == NULL) { throw I2DException(_Std("Unable to reserve memory for image Dicomization")); } // Set JPEG Options // Enable/Disable support for progressive JPEG jpgSource->setProgrSupport(OFTrue); // Enable/Disable support for extended sequential JPEG jpgSource->setExtSeqSupport(OFTrue); jpgSource->setImageFile(inputFile.c_str()); Inicializar(jpgSource, pICallback, debug, outputFormat); } else { wxString nombreImagen = FROMPATH(inputFile); wxImage img(nombreImagen); if(!img.Ok()) { throw I2DException(_Std("Image format not supported")); } unsigned char* imgData = img.GetData(); TImageFile rgbLittleEndian(imgData, img.GetWidth(), img.GetHeight()); Inicializar(rgbLittleEndian, pICallback, debug, outputFormat); } } } void DICOMImg2DCM::Inicializar(TImageFile& fileDefinition, IInspectCallBack* pICallback, bool debug, TDICOMOutputFormat outputFormat) { I2DLittleEndianSource* littleEndianSource = new I2DLittleEndianSource(fileDefinition); Inicializar(littleEndianSource, pICallback, debug, outputFormat); } void DICOMImg2DCM::Inicializar(D2DSource* plugEntrada, IInspectCallBack* pICallback, bool debug, TDICOMOutputFormat outputFormat) { LiberarMemoria(); inputPlug = plugEntrada; i2d = new Document2Dcm(); if (i2d == NULL) { throw I2DException("No se pudo reservar memoria para realizar la conversion"); } OFBool dMode = OFFalse; OFBool vMode = OFFalse; if (debug) { dMode = OFTrue; vMode = OFTrue; i2d->setDebugMode(OFTrue); i2d->setLogStream(&ofConsole); } if (vMode) std::cout << inputPlug->inputFormat() << std::endl; if (outputFormat == TDOF_VLP || outputFormat == TDOF_AUTO) { outputPlug = new I2DOutputPlugVLP(); } else if (outputFormat == TDOF_SC) { outputPlug = new I2DOutputPlugSC(); } else if (outputFormat == TDOF_NSC) { outputPlug = new I2DOutputPlugNewSC(); } else if (outputFormat == TDOF_FOO) { outputPlug = new FooOutputPlug(); } else { throw I2DException("No existe ningun plugin para el formato de salida especificado"); } if (vMode) std::cout << outputPlug->ident() << std::endl; outputPlug->setDebugMode(dMode); outputPlug->setLogStream(&ofConsole); ActualizarCampos(pICallback); // ISO Latin 1 option // setISOLatin1(OFTrue) => set latin-1 as standard character set // setISOLatin1(OFFalse) => keep 7-bit ASCII as standard character set // i2d->setISOLatin1(OFTrue); i2d->setUTF8(OFTrue); // attribute validity checking // enabled/disabled OFBool doChecks = OFTrue; // insert missing type 2 attributes (Sólo si doChecks es True) // enabled/disabled OFBool insertType2 = OFTrue; // invent missing type 1 attributes (Sólo si doChecks es True) // enabled/disabled OFBool inventType1 = OFTrue; i2d->setValidityChecking(doChecks, insertType2, inventType1); outputPlug->setValidityChecking(doChecks, insertType2, inventType1); inputPlug->setDebugMode(dMode); inputPlug->setLogStream(&ofConsole); // make sure data dictionary is loaded if (!dcmDataDict.isDictionaryLoaded()) { LiberarMemoria(); throw I2DException("No se ha cargado el diccionario de datos"); } OFCondition cond; cond = i2d->convert(inputPlug, outputPlug, resultObject, writeXfer); if (cond.bad()) { //si es un jpegsource se trata de leer la imagen y convertirla desde little endian... (por aqui pasan los png, bmp,... cuando esta activo el mantener) I2DJpegSource* pJPeg = dynamic_cast(inputPlug); if (pJPeg != NULL) { OFString path = pJPeg->getImageFile(); LiberarMemoria(); wxString nombreImagen = FROMPATH(path); wxImage img(nombreImagen); if(!img.Ok()) { throw I2DException(_Std("Image format not supported")); } unsigned char* imgData = img.GetData(); TImageFile rgbLittleEndian(imgData, img.GetWidth(), img.GetHeight()); Inicializar(rgbLittleEndian, pICallback, debug, outputFormat); } else { LiberarMemoria(); throw I2DException(cond.text()); } } if (pICallback != NULL) { // Dumping DICOM Tags... DcmDataDictionary& globalDataDict = dcmDataDict.wrlock(); DcmHashDictIterator iter(globalDataDict.normalBegin()); DcmHashDictIterator end(globalDataDict.normalEnd()); std::string keyStr; std::string descStr; std::string valStr; char keyFormat[12]; for (; iter != end; ++iter) { DcmTagKey tagkey = (*iter)->getKey(); //std::cout << "Checking " << keyStr << std::endl; if (sprintf(keyFormat, "%04X|%04X", tagkey.getGroup(), tagkey.getElement()) > 8) { //std::cout << "Asigning " << keyFormat << std::endl; keyStr.assign(keyFormat); descStr = (*iter)->getTagName(); OFString val; OFCondition c = resultObject->findAndGetOFStringArray(tagkey, val); if (c.good()) { valStr = val.c_str(); pICallback->Inspect(keyStr, descStr, valStr); } } } dcmDataDict.unlock(); } if (pICallback != NULL) { pICallback->Done(); } } int DICOMImg2DCM::InsertarTagsPrivados(TipoPrivateTags& tags) { return InsertarTagsPrivados(tags,i2d->getOverrideKeys()); } int DICOMImg2DCM::InsertarTagsPrivados(TipoPrivateTags& tags, DcmDataset* dcmDataSet) { //se busca el uid en el rango (GINKGO_GROUP,0010-00FF) unsigned int g=GINKGO_GROUP; unsigned int e=0; OFCondition cond; DcmElement* element; e=GetElementIdentifier(tags,dcmDataSet); if(e>0x00FF || e==0) { //no deberia llegar aqui std::cerr<<"error al almacenar los tags privados, todos los slots ocupados" <ToElement(g,eTemp); if (element != NULL) { cond = dcmDataSet->insert(element, true, false); if (cond.bad()) { std::cerr << "error al almacenar los tags privados, error al escribir en el dataset: (" << g << ","<getOverrideKeys(), NULL, NULL); return val; }; int DICOMImg2DCM::InsertarJerarquia(DicomDataset& base,DcmDataset* dcmDataSet, DcmItem* itemPadre, DcmSequenceOfItems* seqPadre) { int numTotalInsertados = 0; int numTagsInsertados = 0; int numItemsInsertados = 0; int numSeqsInsertadas = 0; // Insertamos todos los tags correspondientes a este nivel en la raiz (de haberla, si no: en el dataset). for (ListaTags::iterator it = base.tags.begin(); it != base.tags.end(); ++it) { DcmElement* e = this->CrearElementoConValor((*it).first.c_str()); if (e != NULL) { e->putString( wxString( (*it).second.c_str(), wxConvUTF8).mb_str(*m_pConv) ); OFCondition cond; if (itemPadre == NULL) { cond = dcmDataSet->insert(e, OFTrue); char* str = NULL; e->getString(str); /*if(str!=NULL){ std::cout << "raiz << " << e->getTag().toString() << "=" << str << std::endl; } else{ std::cout << "raiz << " << e->getTag().toString() << "=" << std::endl; }*/ } else { cond = itemPadre->insert(e, OFTrue); char* str = NULL; e->getString(str); /*if(str!=NULL){ std::cout << itemPadre->getTag().toString().c_str() << " << " << e->getTag().toString() << " = " << str << std::endl; } else{ std::cout << itemPadre->getTag().toString().c_str() << " << " << e->getTag().toString() << " = " << std::endl; }*/ } if (cond.bad()) { std::cerr << "No se pudo insertar el elemento: (" << e->getTag().toString().c_str() << "): " << cond.text() << std::endl; } else { numTotalInsertados++; numTagsInsertados++; } } } // Insertamos todos los items correspondientes a este nivel en la raiz (de haberla, si no: en el dataset). for (auto it = base.items.begin(); it != base.items.end(); ++it) { DcmItem *item = new DcmItem(); int nItems = InsertarJerarquia((*it),dcmDataSet, item, NULL); if (nItems > 0) { if (seqPadre == NULL) { //cond = dcmDataSet->insert(item, OFTrue); std::cerr << "No se pudo insertar el item directamente a la raiz. " << "Deben insertarse en secuencias o en otros items. " << nItems << " elementos perdidos: " << std::endl; delete item; } else { OFCondition cond = seqPadre->insert(item, OFTrue); if (cond.bad()) { std::cerr << "No se pudo insertar el item a la raiz. " << nItems << " elementos perdidos: " << cond.text() << std::endl; delete item; } else { numTotalInsertados += nItems + 1; numItemsInsertados++; } } } else { delete item; } } // Insertamos todas las secuencias correspondientes a este nivel en la raiz (de haberla, si no: en el dataset). for (DicomDataset::DatasetList::iterator it = base.secuencias.begin(); it != base.secuencias.end(); ++it) { std::string claveSecuencia = (*it).tagName; DicomDataset& nbase = (*it); unsigned int sg = 0xffff; unsigned int se = 0xffff; int sn = 0; sn = sscanf(claveSecuencia.c_str(), "%x|%x", &sg, &se); if (sn < 2) { std::cerr << "Formato invalido (" << claveSecuencia.c_str() << "). Solo se soporta (FFFF|FFFF) como formato de tag para secuencias" << std::endl; continue; } DcmTag stag(sg, se); if (stag.error() != EC_Normal) { std::cerr << "Tag desconocido: " << claveSecuencia << std::endl; continue; } DcmSequenceOfItems* seq = new DcmSequenceOfItems(stag); if (seq == NULL) { std::cerr << "No se pudo crear la secuencia para el tag: " << claveSecuencia << std::endl; continue; } int nItems = InsertarJerarquia(nbase,dcmDataSet, NULL, seq); if (nItems > 0) { OFCondition cond; if (seqPadre != NULL) { DcmItem* item = new DcmItem(); cond = item->insert(seq); seqPadre->insert(item); // std::cout << seqPadre->getTag().toString().c_str() << " << " << seq->getTag().toString() << std::endl; } else if (itemPadre != NULL) { cond = itemPadre->insert(seq, OFTrue); // std::cout << itemPadre->getTag().toString().c_str() << " << " << seq->getTag().toString() << std::endl; } else { cond = dcmDataSet->insert(seq, OFTrue); // std::cout << "raiz << " << seq->getTag().toString() << std::endl; } if (cond.bad()) { std::cerr << "No se pudo insertar el item a la raiz. " << nItems << " elementos perdidos: " << cond.text() << std::endl; delete seq; } else { numTotalInsertados += nItems + 1; numSeqsInsertadas++; } } else { delete seq; } } return numTotalInsertados; } void DICOMImg2DCM::ActualizarCampos(IInspectCallBack* pICallback) { if (i2d == NULL) { throw I2DException("El conversor no se ha inicializado previamente"); } if (pICallback != NULL) { //DcmDataset *overrideKeys = i2d->getOverrideKeys(); DicomDataset jerarquiaAInsertar; pICallback->ObtenerJerarquiaInserccion(jerarquiaAInsertar); InsertarJerarquia(jerarquiaAInsertar,i2d->getOverrideKeys(), NULL, NULL); } } bool DICOMImg2DCM::Convertir(std::string& outputFile) { if (i2d == NULL || inputPlug == NULL || outputPlug == NULL || resultObject == NULL) { throw I2DException("El conversor no se ha inicializado previamente"); } if (outputFile.length() == 0) { throw I2DException("No se ha especificado el fichero de salida"); } // Group length encoding mode for output DICOM file E_GrpLenEncoding grpLengthEnc = EGL_recalcGL; // Item and Sequence encoding mode for output DICOM file E_EncodingType lengthEnc = EET_ExplicitLength; // Padding mode for output DICOM file E_PaddingEncoding padEnc = EPD_noChange; // File pad length for output DICOM file unsigned int filepad = 0; // Item pad length for output DICOM file unsigned int itempad = 0; // Group Length Encoding: // EGL_recalcGL => recalculate group lengths if present // EGL_withGL => always write with group length elements // EGL_withoutGL => always write without group length elements grpLengthEnc = EGL_recalcGL; // Length Encoding in Sequences and Items: // EET_ExplicitLength => write with explicit lengths // EET_UndefinedLength => write with undefined lengths lengthEnc = EET_ExplicitLength; filepad = 0; itempad = 0; OFCondition cond; i2d->updateOverrideKeys(resultObject); //overrride charset { std::string strTmp; GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/Estacion","DefaultCharset",strTmp,"ISO_IR 100"); cond = resultObject->putAndInsertString(DCM_SpecificCharacterSet, strTmp.c_str()); if (cond.bad()) { throw I2DException(cond.text()); } } DcmFileFormat dcmff(resultObject); cond = dcmff.saveFile(outputFile.c_str(), writeXfer, lengthEnc, grpLengthEnc, padEnc, filepad, itempad); if (cond.bad()) { throw I2DException(cond.text()); } #ifdef _GINKGO_TRACE { std::cout << "----DUMPING DCM----------------------------------------" << std::endl; // Dumping DICOM Tags... const DcmDataDictionary& globalDataDict = dcmDataDict.rdlock(); DcmHashDictIterator iter(globalDataDict.normalBegin()); DcmHashDictIterator end(globalDataDict.normalEnd()); std::string keyStr; std::string descStr; std::string valStr; char keyFormat[12]; for (; iter != end; ++iter) { DcmTagKey tagkey = (*iter)->getKey(); //std::cout << "Checking " << keyStr << std::endl; if (sprintf(keyFormat, "%04X|%04X", tagkey.getGroup(), tagkey.getElement()) > 8) { //std::cout << "Asigning " << keyFormat << std::endl; keyStr.assign(keyFormat); descStr = (*iter)->getTagName(); OFString val; OFCondition c = resultObject->findAndGetOFStringArray(tagkey, val); if (c.good()) { valStr = val.c_str(); std::cout << "[" << keyStr.c_str() << "] " << valStr.c_str() << " // " << descStr.c_str() << std::endl; } } } dcmDataDict.unlock(); std::cout << "-------------------------------------------------------" << std::endl; } #endif return true; } //devuelve el element identifier donde el modulo puede escribir sus tags privados unsigned int DICOMImg2DCM::GetElementIdentifier(GIL::DICOM::TipoPrivateTags& tags, DcmDataset* dataset) { OFCondition cond; DcmElement* element; unsigned int g=GINKGO_GROUP; unsigned int e=0x0010; for(; e<=0x00FF; e++) { DcmTagKey key(g,e); cond = dataset->findAndGetElement(key,element,false); if(element==NULL) { //esta libre el slot //se introduce el uid DcmTagKey key(g,e); DcmTag tag(key); //tipo short string!!!! DcmVR vr(EVR_SH); tag.setVR(vr); if (tag.error() != EC_Normal) { std::cerr << "error al almacenar los tags privados, tag desconocido: (" << g << ","<putString(tags.UIDModulo.c_str()); if (cond.bad()) { std::cerr << "error al almacenar los tags privados, error al escribir el uid: (" << g << ","<insert(element, true, false); break; } if(element!=NULL) { char* cadena; std::string ov; cond = element->getString(cadena); if (cond.good()) { ov = std::string(cadena); } else { continue; } if(ov==tags.UIDModulo) { //estamos en el g y e del modulo deseado break; } } } return e; } bool DICOMImg2DCM::CrearSRDoc(std::string& outputFile, DicomDataset& base, std::list >& tagsPrivados) { DSRDocument *doc = new DSRDocument(); if (doc != NULL) { { std::string strTmp; GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/Estacion","DefaultCharset",strTmp,"ISO_IR 100"); doc->setSpecificCharacterSet(strTmp.c_str()); } doc->createNewDocument(DSRTypes::DT_BasicTextSR); doc->setSpecificCharacterSetType(DSRTypes::CS_UTF8); doc->setManufacturer("Ginkgo"); doc->setPatientName("Last Name^First Name"); doc->setPatientSex("O"); doc->setReferringPhysicianName("Last Name^First Name"); doc->getTree().addContentItem(DSRTypes::RT_isRoot, DSRTypes::VT_Container); DcmFileFormat *fileformat = new DcmFileFormat(); DcmDataset *dataset = NULL; OFCondition cond; if (fileformat != NULL) dataset = fileformat->getDataset(); if (dataset != NULL) { cond = doc->write(*dataset); if (cond.good()) { //utf-8 /*if( dataset->putAndInsertOFStringArray(DCM_SpecificCharacterSet, "ISO_IR 100").bad()) { LOG_ERROR("Dicomizacion", "Error al establecer la codificacion en el fichero DICOM"); }*/ InsertarJerarquia(base,dataset,NULL,NULL); for(std::list >::iterator it = tagsPrivados.begin(); it!= tagsPrivados.end(); ++it) { InsertarTagsPrivados(*(*it),dataset); } //SE ESCRIBE LOS TAGS DEL SR... cond = fileformat->saveFile(outputFile.c_str(), EXS_LittleEndianExplicit); } } delete fileformat; delete doc; if (cond.good()) { return true; } else { return false; } } return false; } } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomimg2dcm.h000066400000000000000000000075241314736454600245670ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include "libi2d/document2dcm.h" #include "libi2d/d2dsource.h" #include "libi2d/i2doutpl.h" #include "dcmtk/dcmdata/dcdict.h" #include "dcmtk/dcmdata/dchashdi.h" #include #include class DcmElement; class wxCSConv; namespace GIL { namespace DICOM { class DICOMImg2DCM : public IDICOMImg2DCM { public: /* Constructor */ DICOMImg2DCM(); /* Destructor */ ~DICOMImg2DCM(); void LiberarMemoria(); /* Inicializa una conversión. IInspectCallback sirve para especificar un callback mediante el cual se pueden inspeccionar los atributos buscados. * * Formatos de entrada soportados: * JPEG * Formatos de salida soportados (DICOM SOP a generar): * VLP (Visible Light Photography) * SC (Secondary Capture) * NSC (New Secondary Capture) */ virtual void Inicializar(std::string& inputFile, IInspectCallBack* pICallback = NULL, bool debug = false, TDICOMOutputFormat outputFormat = TDOF_AUTO); virtual void Inicializar(TImageFile& fileDefinition, IInspectCallBack* pICallback = NULL, bool debug = false, TDICOMOutputFormat outputFormat = TDOF_VLP); void Inicializar(D2DSource* plugEntrada, IInspectCallBack* pICallback, bool debug, TDICOMOutputFormat outputFormat); virtual int InsertarJerarquia(DicomDataset& base); virtual int InsertarTagsPrivados(TipoPrivateTags& base); virtual int InsertarTagsPrivados(TipoPrivateTags& base, DcmDataset* dcmDataSet); int InsertarJerarquia(DicomDataset& base,DcmDataset* dcmDataSet, DcmItem* itemPadre, DcmSequenceOfItems* seqPadre); /* Actualiza los campos DICOM a sobreescribir */ virtual void ActualizarCampos(IInspectCallBack* pICallback); /* Realiza una conversión ya inicializada */ virtual bool Convertir(std::string& outputFile); unsigned int GetElementIdentifier(GIL::DICOM::TipoPrivateTags& tags, DcmDataset* dataset); bool CrearSRDoc(std::string& outputFile, DicomDataset& base, std::list >& tagsPrivados); virtual void Reset() { LiberarMemoria(); } protected: /* Crea un elemento de DCMTK parseando la cadena pasada como parámetro que debe tener el formato: | o bien: |= Nota: puede ser vacía */ DcmElement* CrearElementoConValor(const char* s); // Main class for controlling conversion Document2Dcm* i2d; // Output plugin to use (ie. SOP class to write) I2DOutputPlug* outputPlug; // Input plugin to use (ie. file format to read) D2DSource* inputPlug; // Result object DcmDataset* resultObject; // The transfersytanx proposed to be written by output plugin E_TransferSyntax writeXfer; wxCSConv* m_pConv; }; }; }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicommoveassociation.cpp000066400000000000000000000121011314736454600267660ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #define LOGGER "C-MOVE" #include "dicomnetwork.h" #include #include
    #include #include
    #include #include
    #include #include "istorecallback.h" #include "dicommoveassociation.h" #include #include #include #include #include #include #include #include #include #include "tls/tls.h" #include "tls/gtlslayer.h" #include MoveAssociation::MoveAssociation(const std::string& _ambitolog, IModeloDicom* pModelo) : FindAssociation(_ambitolog), m_maxReceivePDULength(ASC_DEFAULTMAXPDU), m_pModelo(pModelo), m_errorMessage("") { m_abstractSyntax = UID_MOVEStudyRootQueryRetrieveInformationModel; } MoveAssociation::~MoveAssociation() { } void MoveAssociation::Create(const std::string& title, const std::string& peer, int port, const std::string& ouraet, /*int ourPort,*/ const char *abstractSyntax) { Association::Create(title, peer, port, ouraet, abstractSyntax); } void MoveAssociation::SetModelo(IModeloDicom* pModelo) { m_pModelo = pModelo; } OFCondition MoveAssociation::SendObject(DcmDataset *dataset) { return moveSCU(dataset); } void MoveAssociation::OnAddPresentationContext(T_ASC_Parameters *params) { addAllStoragePresentationContexts(params, true, true); } OFCondition MoveAssociation::moveSCU(DcmDataset *pdset) { OFCondition cond; T_ASC_PresentationContextID presId; T_DIMSE_C_MoveRQ req; T_DIMSE_C_MoveRSP rsp; DIC_US msgId = assoc->nextMsgID++; DcmDataset* rspIds = NULL; const char* sopClass; DcmDataset* statusDetail = NULL; if (pdset == NULL) { return makeOFCondition(OFM_dcmnet, DIMSEC_BADDATA, OF_error, "NULL DIMSE Query"); } //sopClass = m_abstractSyntaxMove; sopClass = m_abstractSyntax.c_str(); // which presentation context should be used presId = ASC_findAcceptedPresentationContextID(assoc, sopClass); if (presId == 0) { return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } req.MessageID = msgId; strncpy(req.AffectedSOPClassUID, sopClass, DIC_UI_LEN); req.AffectedSOPClassUID[DIC_UI_LEN] = 0; req.Priority = DIMSE_PRIORITY_HIGH; req.DataSetType = DIMSE_DATASET_PRESENT; strncpy(req.MoveDestination, m_ourAET.c_str(), DIC_AE_LEN); req.MoveDestination[DIC_AE_LEN] = 0; cond = DIMSE_moveUser( assoc, presId, &req, pdset, NULL, NULL, DIMSE_BLOCKING, 0, GetNetwork()->GetDcmtkNet(), NULL, this, &rsp, &statusDetail, &rspIds); if( rsp.DimseStatus != STATUS_Success && rsp.DimseStatus != STATUS_Pending) { std::ostringstream os; os << DU_cmoveStatusString(rsp.DimseStatus); if (statusDetail != NULL) { OFString errorComment; if (statusDetail->findAndGetOFString(DCM_ErrorComment, errorComment).good()) { os << ". " << errorComment.c_str(); } } m_errorMessage = os.str(); } if (statusDetail != NULL) { LOG_DEBUG(ambitolog, "DIMSE_moveUser(): Estado: " << std::endl << DumpDataset(statusDetail)); delete statusDetail; } if (rspIds != NULL) { delete rspIds; } if(m_errorMessage != "" || rsp.NumberOfFailedSubOperations > 0 ) { if (m_errorMessage.size() == 0) { m_errorMessage = "Some operations failed"; } return makeOFCondition(OFM_dcmnet, 18, OF_error, m_errorMessage.c_str()); } return cond; } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicommoveassociation.h000066400000000000000000000030441314736454600264410ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "dicomfindassociation.h" #include "istorecallback.h" class MoveAssociation : public FindAssociation { public: MoveAssociation(const std::string& ambitolog, IModeloDicom* pModelo=NULL); virtual ~MoveAssociation(); void SetModelo(IModeloDicom* pModelo); void Create(const std::string& title, const std::string& peer, int port, const std::string& ouraet, /*int ourPort,*/ const char *abstractSyntax = UID_MOVEStudyRootQueryRetrieveInformationModel); OFCondition SendObject(DcmDataset *dataset); protected: void OnAddPresentationContext(T_ASC_Parameters *params); private: OFCondition moveSCU(DcmDataset *pdset); int m_maxReceivePDULength; IModeloDicom* m_pModelo; std::string m_errorMessage; }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomnetclient.h000066400000000000000000000615661314736454600252400ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include
    #include
    #include "dicomnetwork.h" #include "helpers.h" #include #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include #include #include #include namespace GNC { class IProxyNotificadorProgreso; } #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif typedef enum CallbackType { CT_MoveEstudio, CT_MoveSerie, CT_MoveImagen, CT_None } CallbackType; #ifndef WXUNUSED #define WXUNUSED(name) #endif template class NetClient : public T { private: GIL::DICOM::DCMTK::Network* Net; std::string ambitolog; protected: GNC::IProxyNotificadorProgreso* m_pNotificadorProgreso; public: NetClient(void* connectionKey, const std::string& ambitolog, GNC::IProxyNotificadorProgreso* pNotificadorProgreso = NULL) : T(ambitolog) { if (connectionKey == NULL) { LOG_ERROR(ambitolog, "NULL Connection key"); } this->Net = GIL::DICOM::DCMTK::Network::Instance(connectionKey); this->m_pNotificadorProgreso = pNotificadorProgreso; this->ambitolog = ambitolog; }; bool QueryServer(const GNC::GCS::Ptr& server, const std::string& local_aet) { if (server == NULL) { return false; } if (!Net->Initiallized()) { Net->InitializeNetwork(T::GetTimeout(), T::GetRole(), T::GetAcceptorPort()); } T::Create( server->AET, server->HostName, server->Port, local_aet ); T::SetNotificadorProgreso(m_pNotificadorProgreso); LOG_DEBUG(ambitolog, "Connected: AET = " << server->AET << ", Host = " << server->HostName << ", Port = " << server->Port << ", Local AET = " << local_aet << ", PDU = " << server->PDU); OFCondition r = T::Connect(Net, server->PDU); OFCondition c = EC_Normal; if (r.good() == true) { c = T::SendObject(); } else { LOG_ERROR(ambitolog, "Error connecting:" << r.text()); T::Drop(); T::Destroy(); throw GIL::DICOM::PACSException(r.text()); } if (!c.good()) { LOG_ERROR(ambitolog, "Error sending object: " << c.text()); T::Drop(); T::Destroy(); throw GIL::DICOM::PACSException(c.text()); } LOG_DEBUG(ambitolog, "Closing association"); T::Drop(); return true; } bool QueryServer(DcmDataset* query, const GNC::GCS::Ptr& server, std::list< GNC::GCS::Ptr >& resultsWrapper, const std::string& local_aet) { if (!server.IsValid()) { return false; } if (!Net->Initiallized()) { Net->InitializeNetwork(T::GetTimeout(), T::GetRole(), T::GetAcceptorPort()); } T::Create( server->AET, server->HostName, server->Port, local_aet ); T::SetNotificadorProgreso(m_pNotificadorProgreso); T::SetCallbackInfo(&resultsWrapper, server); LOG_INFO(ambitolog, "Connecting: AET = " << server->AET << ", Host = " << server->HostName << ", Puerto = " << server->Port << ", Local AET = " << local_aet << ", PDU = " << server->PDU); OFCondition r = T::Connect(Net, server->PDU); OFCondition c = EC_Normal; if (r.good() == true) { LOG_DEBUG(ambitolog, "Requesting object:" << std::endl << DumpDataset(query)); c = T::SendObject(query); } else { LOG_DEBUG(ambitolog, "Error connecting:" << r.text()); T::Drop(); T::Destroy(); LOG_INFO(ambitolog, "Disconnected"); throw GIL::DICOM::PACSException(r.text()); } if (!c.good()) { LOG_DEBUG(ambitolog, "Error requesting object: " << c.text()); T::Drop(); T::Destroy(); LOG_INFO(ambitolog, "Disconnected"); throw GIL::DICOM::PACSException(c.text()); } LOG_INFO(ambitolog, "Disconnected"); T::Drop(); return r.good(); } ///DEPRECATED! IModeloDICOM has to be replaced by results wrapper bool QueryServer(DcmDataset* query, const GNC::GCS::Ptr& server, IModeloDicom* pModelo, const std::string& local_aet, CallbackType callbackType) { if (pModelo == NULL && callbackType != CT_None) { return false; } if (!server.IsValid()) { return false; } if (!Net->Initiallized()) { Net->InitializeNetwork(T::GetTimeout(), T::GetRole(), T::GetAcceptorPort()); } T::Create( server->AET, server->HostName, server->Port, local_aet ); T::SetNotificadorProgreso(m_pNotificadorProgreso); LOG_INFO(ambitolog, "Connecting: AET = " << server->AET << ", Host = " << server->HostName << ", Puerto = " << server->Port << ", Local AET = " << local_aet << ", PDU = " << server->PDU); OFCondition r = T::Connect(Net, server->PDU); OFCondition c = EC_Normal; if (r.good() == true) { LOG_DEBUG(ambitolog, "Requesting object:" << std::endl << DumpDataset(query)); c = T::SendObject(query); } else { LOG_DEBUG(ambitolog, "Error connecting:" << r.text()); T::Drop(); T::Destroy(); LOG_INFO(ambitolog, "Disconnected"); throw GIL::DICOM::PACSException(r.text()); } if (!c.good()) { LOG_DEBUG(ambitolog, "Error requesting object: " << c.text()); T::Drop(); T::Destroy(); LOG_INFO(ambitolog, "Disconnected"); throw GIL::DICOM::PACSException(c.text()); } DcmStack* result = T::GetResultStack(); if (r.good() && c.good() && result != NULL && result->card() > 0) { LOG_DEBUG(ambitolog, "Num results: " << result->card()); for (unsigned long i = 0; i < result->card(); ++i) { DcmDataset* dset = new DcmDataset( *(static_cast(result->elem(i))) ); switch (callbackType) { case CT_MoveEstudio: OnMoverEstudio(dset, pModelo); break; case CT_MoveSerie: OnMoverSerie(dset, pModelo); break; case CT_MoveImagen: OnMoverImagen(dset, pModelo); break; case CT_None: break; } delete dset; } } else { if (r.bad()) { LOG_ERROR(ambitolog, "Connection error: " << r.text()); } if (c.bad()) { LOG_ERROR(ambitolog, "Error requesting object: " << c.text()); } } LOG_INFO(ambitolog, "Disconnected"); T::Drop(); return r.good(); } wxCSConv GetConv(DcmDataset* dset, const std::string& defaultCharset) { OFString Charset; wxCSConv wxConv(wxFONTENCODING_ISO8859_1); if (dset->findAndGetOFString(DCM_SpecificCharacterSet, Charset).bad()) { Charset = defaultCharset.c_str(); } if (Charset == "ISO_IR 192" || Charset == "ISO_IR 6" || Charset == "ISO_IR 138") { wxConv = wxCSConv(wxFONTENCODING_UTF8); } else if (Charset == "ISO_IR 100") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_1); } else if (Charset == "ISO_IR 101") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_2); } else if (Charset == "ISO_IR 109") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_3); } else if (Charset == "ISO_IR 110") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_4); } else if (Charset == "ISO_IR 148") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_9); } else if (Charset == "ISO_IR 144") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_5); } else if (Charset == "ISO_IR 127") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_6); } else if (Charset == "ISO_IR 126") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_7); } else if (Charset == "ISO_IR 138") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_8); } return wxConv; } void OnBuscarPacientes(DcmDataset* query, DcmDataset* dset, const GNC::GCS::Ptr& server, IModeloDicom* pModelo) { wxCSConv wxConv = GetConv(dset, server->GetDefaultCharset()); OFString OFPacienteUID; if (dset->findAndGetOFString(DCM_PatientID, OFPacienteUID).bad()) { if (!dset->isEmpty()) { LOG_ERROR(ambitolog, "El PACS no devolvió el PatientID del paciente. Entrada ignorada."); } return; } std::string PacienteUID; if (dset->findAndGetOFString(DCM_PatientID, OFPacienteUID).good()) { PacienteUID = wxString(OFPacienteUID.c_str(), wxConv).ToUTF8(); } OFString OFPacienteNombre; std::string PacienteNombre; if (dset->findAndGetOFString(DCM_PatientName, OFPacienteNombre).good()) { PacienteNombre = wxString(OFPacienteNombre.c_str(), wxConv).ToUTF8(); } OFString OFPacienteFechaNacimiento; std::string PacienteFechaNacimiento; if (dset->findAndGetOFString(DCM_PatientBirthDate, OFPacienteFechaNacimiento).good()) { PacienteFechaNacimiento = wxString(OFPacienteFechaNacimiento.c_str(), wxConv).ToUTF8(); } OFString OFPacienteSexo; std::string PacienteSexo; if (dset->findAndGetOFString(DCM_PatientSex, OFPacienteSexo).good()) { PacienteSexo = wxString(OFPacienteSexo.c_str(), wxConv).ToUTF8(); } if (PacienteUID.empty()) { OFString OFStr; if (query->findAndGetOFString(DCM_PatientID, OFStr).good()) { PacienteUID = wxString(OFStr.c_str(), wxConv).ToUTF8(); } } pModelo->InsertarPaciente(PacienteUID, PacienteNombre, PacienteFechaNacimiento, PacienteSexo); } void OnBuscarSeries(DcmDataset* query, DcmDataset* dset, const GNC::GCS::Ptr& server, IModeloDicom *pModelo) { wxCSConv wxConv = GetConv(dset, server->GetDefaultCharset()); OFString OFEstudioUID; OFString OFSerieUID; if (dset->findAndGetOFString(DCM_StudyInstanceUID, OFEstudioUID).bad() || dset->findAndGetOFString(DCM_SeriesInstanceUID, OFSerieUID).bad()) { if (!dset->isEmpty()) { LOG_ERROR(ambitolog, "El PACS no devolvió el StudyInstanceUID o el SeriesInstanceUID de la serie. Entrada ignorada."); } return; } std::string EstudioUID; EstudioUID = wxString(OFEstudioUID.c_str(), wxConv).ToUTF8(); std::string SerieUID; SerieUID = wxString(OFSerieUID.c_str(), wxConv).ToUTF8(); OFString OFSerieTipo; std::string SerieTipo; if (dset->findAndGetOFString(DCM_Modality, OFSerieTipo).good()) { SerieTipo = wxString(OFSerieTipo.c_str(), wxConv).ToUTF8(); } OFString OFSerieFecha; std::string SerieFecha; if (dset->findAndGetOFString(DCM_SeriesDate, OFSerieFecha).good()) { SerieFecha = wxString(OFSerieFecha.c_str(), wxConv).ToUTF8(); } OFString OFSerieHora; std::string SerieHora; if (dset->findAndGetOFString(DCM_SeriesTime, OFSerieHora).good()) { SerieHora = wxString(OFSerieHora.c_str(), wxConv).ToUTF8(); } OFString OFSerieDescripcion; std::string SerieDescripcion; if (dset->findAndGetOFString(DCM_SeriesDescription, OFSerieDescripcion).good()) { SerieDescripcion = wxString(OFSerieDescripcion.c_str(), wxConv).ToUTF8(); } OFString OFDoctor; std::string SerieDoctor; if (dset->findAndGetOFString(DCM_ReferringPhysicianName, OFDoctor).good()) { SerieDoctor = wxString(OFDoctor.c_str(), wxConv).ToUTF8(); } OFString OFNumber; std::string SerieNumero; if (dset->findAndGetOFString(DCM_NumberOfSeriesRelatedInstances, OFNumber).good()) { SerieNumero = wxString(OFNumber.c_str(), wxConv).ToUTF8(); } if (EstudioUID.empty()) { OFString OFStr; if (query->findAndGetOFString(DCM_StudyInstanceUID, OFStr).good()) { EstudioUID = wxString(OFStr.c_str(), wxConv).ToUTF8(); } } if (SerieUID.empty()) { OFString OFStr; if (query->findAndGetOFString(DCM_SeriesInstanceUID, OFStr).good()) { SerieUID = wxString(OFStr.c_str(), wxConv).ToUTF8(); } } pModelo->InsertarSerie(EstudioUID, SerieUID, SerieTipo, SerieFecha, SerieHora, SerieDescripcion, SerieNumero,SerieDoctor); } void OnBuscarImagenes(DcmDataset* query, DcmDataset *dset, const GNC::GCS::Ptr& server, IModeloDicom* pModelo) { wxCSConv wxConv = GetConv(dset, server->GetDefaultCharset()); OFString OFSerieUID; OFString OFImagenUID; OFString OFInstanceNumber; if (dset->findAndGetOFString(DCM_SeriesInstanceUID, OFSerieUID).bad() || dset->findAndGetOFString(DCM_SOPInstanceUID, OFImagenUID).bad()) { if (!dset->isEmpty()) { LOG_ERROR(ambitolog, "El PACS no devolvió el SeriesInstanceUID o el SOPInstanceUID de la imagen. Entrada ignorada."); } return; } if (OFInstanceNumber.empty()) { LOG_WARN(ambitolog, "InstanceNumber not found. Setting to default"); OFInstanceNumber = "1"; } std::string SerieUID; std::string ImagenUID; std::string InstanceNumber; SerieUID.assign(OFSerieUID.c_str()); ImagenUID.assign(OFImagenUID.c_str()); InstanceNumber.assign(OFInstanceNumber.c_str()); if (SerieUID.empty()) { OFString OFStr; if (query->findAndGetOFString(DCM_SeriesInstanceUID, OFStr).good()) { SerieUID = wxString(OFStr.c_str(), wxConv).ToUTF8(); } } if (ImagenUID.empty()) { OFString OFStr; if (query->findAndGetOFString(DCM_SOPInstanceUID, OFStr).good()) { ImagenUID = wxString(OFStr.c_str(), wxConv).ToUTF8(); } } if (InstanceNumber.empty()) { OFString OFStr; if (query->findAndGetOFString(DCM_InstanceNumber, OFStr).good()) { InstanceNumber = wxString(OFStr.c_str(), wxConv).ToUTF8(); } } pModelo->InsertarImagen(SerieUID, ImagenUID, InstanceNumber); } void OnBuscarEstudios(DcmDataset* query, DcmDataset *dset, const GNC::GCS::Ptr& server, IModeloDicom *pModelo) { OFString OFEstudioUID; if (dset->findAndGetOFString(DCM_StudyInstanceUID, OFEstudioUID).bad()) { if (!dset->isEmpty()) { LOG_ERROR(ambitolog, "El PACS no devolvió el StudyInstanceUID del estudio. Entrada ignorada."); } return; } wxCSConv wxConv = GetConv(dset, server->GetDefaultCharset()); OFString OFPacienteUID; std::string PacienteUID; if (dset->findAndGetOFString(DCM_PatientID, OFPacienteUID).good()) { PacienteUID = wxString(OFPacienteUID.c_str(), wxConv).ToUTF8(); } else { if (query->findAndGetOFString(DCM_PatientID, OFPacienteUID).good()) { PacienteUID = wxString(OFPacienteUID.c_str(), wxConv).ToUTF8(); } } OFString OFPacienteNombre; std::string PacienteNombre; if (dset->findAndGetOFString(DCM_PatientName, OFPacienteNombre).good()) { PacienteNombre = wxString(OFPacienteNombre.c_str(), wxConv).ToUTF8(); } OFString OFPacienteFechaNacimiento; std::string PacienteFechaNacimiento; if (dset->findAndGetOFString(DCM_PatientBirthDate, OFPacienteFechaNacimiento).good()) { PacienteFechaNacimiento = wxString(OFPacienteFechaNacimiento.c_str(), wxConv).ToUTF8(); } OFString OFPacienteSexo; std::string PacienteSexo; if (dset->findAndGetOFString(DCM_PatientSex, OFPacienteSexo).good()) { PacienteSexo = wxString(OFPacienteSexo.c_str(), wxConv).ToUTF8(); } pModelo->InsertarPaciente(PacienteUID, PacienteNombre, PacienteFechaNacimiento, PacienteSexo); std::string EstudioUID; if (dset->findAndGetOFString(DCM_StudyInstanceUID, OFEstudioUID).good()) { EstudioUID = wxString(OFEstudioUID.c_str(), wxConv).ToUTF8(); } OFString OFEAccNumber; std::string AccNumber; if (dset->findAndGetOFString(DCM_AccessionNumber, OFEAccNumber).good()) { AccNumber = wxString(OFEAccNumber.c_str(), wxConv).ToUTF8(); } OFString OFEstudioDescripcion; std::string EstudioDescripcion; if (dset->findAndGetOFString(DCM_StudyDescription, OFEstudioDescripcion).good()) { EstudioDescripcion = wxString(OFEstudioDescripcion.c_str(), wxConv).ToUTF8(); } OFString OFEstudioModalidad; std::string EstudioModalidad; if (dset->findAndGetOFStringArray(DCM_ModalitiesInStudy, OFEstudioModalidad).good()) { EstudioModalidad = wxString(OFEstudioModalidad.c_str(), wxConv).ToUTF8(); } OFString OFEstudioFecha; std::string EstudioFecha; if (dset->findAndGetOFString(DCM_StudyDate, OFEstudioFecha).good()) { EstudioFecha = wxString(OFEstudioFecha.c_str(), wxConv).ToUTF8(); } OFString OFEstudioHora; std::string EstudioHora; if (dset->findAndGetOFString(DCM_StudyTime, OFEstudioHora).good()) { EstudioHora = wxString(OFEstudioHora.c_str(), wxConv).ToUTF8(); } OFString OFDoctor; std::string EstudioDoctor; if (dset->findAndGetOFString(DCM_ReferringPhysicianName, OFDoctor).good()) { EstudioDoctor = wxString(OFDoctor.c_str(), wxConv).ToUTF8(); } if (EstudioUID.empty()) { OFString OFStr; if (query->findAndGetOFString(DCM_StudyInstanceUID, OFStr).good()) { EstudioUID = wxString(OFStr.c_str(), wxConv).ToUTF8(); } } if (AccNumber.empty()) { OFString OFStr; if (query->findAndGetOFString(DCM_AccessionNumber, OFStr).good()) { AccNumber = wxString(OFStr.c_str(), wxConv).ToUTF8(); } } pModelo->InsertarEstudio(PacienteUID, EstudioUID, AccNumber, EstudioDescripcion, EstudioModalidad, EstudioFecha, EstudioHora, EstudioDoctor); } void OnMoverEstudio(DcmDataset *WXUNUSED(dset), IModeloDicom *WXUNUSED(pModelo)) { #ifdef _GINKGO_DEBUG std::cout << "move study" << std::endl; #endif } void OnMoverSerie(DcmDataset *WXUNUSED(dset), IModeloDicom *WXUNUSED(pModelo)) { #ifdef _GINKGO_DEBUG std::cout << "move serie" << std::endl; #endif } void OnMoverImagen(DcmDataset *WXUNUSED(dset), IModeloDicom *WXUNUSED(pModelo)) { #ifdef _GINKGO_DEBUG std::cout << "move image" << std::endl; #endif } OFBool writeToFile(const char* ofname, DcmDataset *dataset) { /* write out as a file format */ DcmFileFormat fileformat(dataset); // copies dataset OFCondition ec = fileformat.error(); if (ec.bad()) { LOG_ERROR(T::ambitolog, "Unable to read DICOM dataset: " << ec.text()); return OFFalse; } ec = fileformat.saveFile(ofname, dataset->getOriginalXfer()); if (ec.bad()) { LOG_ERROR(T::ambitolog, "Unable to write file (" << ofname << ": " << ec.text()); return OFFalse; } return OFTrue; } }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomnetwork.cpp000066400000000000000000000225431314736454600252670ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "dicomnetwork.h" #include "dicomechoassociation.h" #include #include #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include #include #include #include #include #include #include #include #include "tls/tls.h" #include "tls/gtlslayer.h" #include #include
    #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif #include GIL::DICOM::DCMTK::Network::IntanceMapType GIL::DICOM::DCMTK::Network::m_pInstancesMap; GNC::GCS::ILockable GIL::DICOM::DCMTK::Network::m_sLock; GIL::DICOM::DCMTK::Network* GIL::DICOM::DCMTK::Network::Instance(void* key) { GNC::GCS::ILocker lock(m_sLock); GIL::DICOM::DCMTK::Network* pInstance; GIL::DICOM::DCMTK::Network::IntanceMapType::iterator it = m_pInstancesMap.find(key); if (it == m_pInstancesMap.end()) { pInstance = new GIL::DICOM::DCMTK::Network(); m_pInstancesMap[key] = pInstance; LOG_TRACE("DICOMNetwork", "Network instance created. key = " << key); } else { LOG_TRACE("DICOMNetwork", "Network instance reused. key = " << key); pInstance = (*it).second; } return pInstance; } void GIL::DICOM::DCMTK::Network::FreeInstance(void* key) { GNC::GCS::ILocker lock(m_sLock); GIL::DICOM::DCMTK::Network::IntanceMapType::iterator it = m_pInstancesMap.find(key); if (it == m_pInstancesMap.end()) { LOG_WARN("DICOMNetwork", "Unable to free Network instance. Instance was not registered."); } else { GIL::DICOM::DCMTK::Network* pInstance = (*it).second; delete pInstance; m_pInstancesMap.erase(it); LOG_TRACE("DICOMNetwork", "Network instance released. key = " << key); } } GIL::DICOM::DCMTK::Network::Network() { m_pDCMTKNetwork = NULL; m_Initiallized = false; } GIL::DICOM::DCMTK::Network::~Network() { DropNetwork(); } OFCondition GIL::DICOM::DCMTK::Network::ConnectAssociation(Association* assoc, int pdu) { GNC::GCS::ILocker lock(m_sLock); OFCondition cond; cond = ASC_ConnectAssociation( assoc, assoc->m_calledAET, assoc->m_calledPeer, assoc->m_calledPort, assoc->m_ourAET, pdu); if (!cond.good()) { assoc->Drop(cond); return cond; } assoc->Net = this; assoc->msgId = assoc->assoc->nextMsgID; return cond; } bool GIL::DICOM::DCMTK::Network::Initiallized() { return m_Initiallized; } OFCondition GIL::DICOM::DCMTK::Network::InitializeNetwork(int timeout, Association::RoleType role, int port) { if (m_pDCMTKNetwork != NULL) { LOG_WARN("DICOMNetwork", "Shutting down previous initiallized network"); DropNetwork(); } OFCondition cond; switch (role) { case Association::RT_Acceptor: cond = ASC_initializeNetwork(NET_ACCEPTOR, 0, timeout, &m_pDCMTKNetwork); break; case Association::RT_Requestor: cond = ASC_initializeNetwork(NET_REQUESTOR, port, timeout, &m_pDCMTKNetwork); break; case Association::RT_AcceptorRequestor: cond = ASC_initializeNetwork(NET_ACCEPTORREQUESTOR, port, timeout, &m_pDCMTKNetwork); break; default: cond = EC_IllegalParameter; break; } m_Initiallized = cond.good(); return cond; } OFCondition GIL::DICOM::DCMTK::Network::DropNetwork() { OFCondition cond = ASC_dropNetwork(&m_pDCMTKNetwork); m_pDCMTKNetwork = NULL; return cond; } OFCondition GIL::DICOM::DCMTK::Network::ASC_ConnectAssociation(Association* assoc, const std::string& peerTitle, const std::string& peer, int port, const std::string& ouraet, int pdu) { OFCondition cond; GTLSTransportLayer *tLayer = NULL; if (assoc->IsSecure()) { tLayer = new GTLSTransportLayer(DICOM_APPLICATION_REQUESTOR, NULL); if (tLayer == NULL) { return makeOFCondition(OFM_dcmtls, DULC_TLSERROR, OF_error, "TLS Error: Unable to create TLS transport layer"); } tLayer->setCertificateFromString(assoc->GetCliCert()); tLayer->setPrivateKeyFromString(assoc->GetCliKey()); if (! tLayer->checkPrivateKeyMatchesCertificate()) { delete tLayer; return makeOFCondition(OFM_dcmtls, DULC_TLSERROR, OF_error, "TLS Error: Private key and certificate do not match"); } tLayer->addSystemTrustedCertificates(); if (assoc->GetValidate()) { tLayer->setCertificateVerification(DCV_requireCertificate); } else { tLayer->setCertificateVerification(DCV_ignoreCertificate); } /* if (opt_dhparam && ! (tLayer->setTempDHParameters(opt_dhparam))) { LOG_WARN(assoc->ambitolog, "unable to load temporary DH parameters. Ignoring"); } */ cond = ASC_setTransportLayer(m_pDCMTKNetwork, tLayer, 0); if (cond.bad()) { return cond; } } T_ASC_Parameters *params; std::string peerHost; char localHost[129]; cond = ASC_createAssociationParameters(¶ms, pdu); if (!cond.good()) { return cond; } //user identity if (assoc->UseUserPass()) { cond = ASC_setIdentRQUserPassword(params, assoc->GetUser().c_str(), assoc->GetPass().c_str()); if (!cond.good()) { return cond; } } ASC_setAPTitles(params, ouraet.c_str(), peerTitle.c_str(), NULL); cond = ASC_setTransportLayerType(params, assoc->IsSecure()); if (cond.bad()) { return cond; } gethostname(localHost, sizeof (localHost) - 1); { std::ostringstream os; os << peer.c_str() << ":" << port; peerHost = os.str(); } ASC_setPresentationAddresses(params, localHost, peerHost.c_str()); assoc->OnAddPresentationContext(params); { OFString str; ASC_dumpParameters(str, params, ASC_ASSOC_RQ); LOG_DEBUG(assoc->ambitolog, "Requesting association" << std::endl << str.c_str()); } /* create association */ cond = ASC_requestAssociation(m_pDCMTKNetwork, params, &(assoc->assoc)); if (cond != EC_Normal) { if (cond == DUL_ASSOCIATIONREJECTED) { T_ASC_RejectParameters rej; ASC_getRejectParameters(params, &rej); OFString str; ASC_printRejectParameters(str, &rej); return makeOFCondition(OFM_dcmnet, DULC_ASSOCIATIONREJECTED, OF_error, str.c_str()); } else { return cond; } } { OFString str; ASC_dumpParameters(str, params, ASC_ASSOC_AC); LOG_DEBUG(assoc->ambitolog, "Association accepted" << std::endl << str.c_str()); } /* what has been accepted/refused ? */ if (ASC_countAcceptedPresentationContexts(params) == 0) { return cond; } return EC_Normal; } OFCondition GIL::DICOM::DCMTK::Network::SendEchoRequest(const std::string& title, const std::string& peer, int port, const std::string& ouraet, int pdu) { EchoAssociation dcmEcho("C-ECHO"); dcmEcho.Create(title, peer, port, ouraet, UID_VerificationSOPClass); ConnectAssociation(&dcmEcho, pdu); return dcmEcho.SendEchoRequest(); } T_ASC_Network* GIL::DICOM::DCMTK::Network::GetDcmtkNet() { return m_pDCMTKNetwork; } void GIL::DICOM::DCMTK::Network::SetDcmtkNet(T_ASC_Network* n) { m_pDCMTKNetwork = n; } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomnetwork.h000066400000000000000000000051451314736454600247330ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ /* this code was inspired by aeskulap */ #pragma once #include #include #include "dicomassociation.h" namespace GIL { namespace DICOM { namespace DCMTK { class Network { protected: typedef std::map IntanceMapType; public: /** Keyed Singleton **/ static Network* Instance(void* key); static void FreeInstance(void* key); bool Initiallized(); /** Initialize the dicom network */ OFCondition InitializeNetwork(int timeout, Association::RoleType role = Association::RT_Requestor, int port = 0); /** Drop the dicom network */ OFCondition DropNetwork(); /** Connect an association to the specified host */ OFCondition ConnectAssociation(Association* assoc, int pdu = ASC_DEFAULTMAXPDU); /** Send C-Echo request to dicom node */ OFCondition SendEchoRequest(const std::string& title, const std::string& peer, int port, const std::string& ouraet, int pdu); /** Get the pointer to the internal dcmtk network variable (sorry) */ T_ASC_Network* GetDcmtkNet(); void SetDcmtkNet(T_ASC_Network* n); protected: /** Connect to a host and try to establish an association */ OFCondition ASC_ConnectAssociation(Association* assoc, const std::string& peerTitle, const std::string& peer, int port, const std::string& ouraet, int pdu = ASC_DEFAULTMAXPDU); /** THE dicom network */ T_ASC_Network* m_pDCMTKNetwork; /** constructor */ Network(); virtual ~Network(); protected: bool m_Initiallized; /** Attributes **/ static IntanceMapType m_pInstancesMap; static GNC::GCS::ILockable m_sLock; friend class Association; }; } } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomprintassociation.cpp000066400000000000000000001546301314736454600271720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "dicomprintassociation.h" #include #include #include #include #include #include
    #include
    #include
    #include #include #include "helpercompresion.h" //Server: dcmprscp -c /usr/local/etc/dcmtk/dcmpstat.cfg -p KODAK -ll debug >log.txt 2>&1 //Client: // Step 1: dcmpsprt -c /usr/local/etc/dcmtk/dcmpstat.cfg -p KODAK /home/carlos/DICOM/INCISIX/INCISIX/IM-0001-0100.dcm // Step 2: dcmprscu -c /usr/local/etc/dcmtk/dcmpstat.cfg -p KODAK database/SP_4f7959ef7ffdbf85.dcm /* FILM SESSION SOP CLASS N-CREATE REQUEST ATTRIBUTES Number of Copies (2000|0010) IS [1 .. 10] Medium type (2000|0030) CS [BLUE FILM, CLEAR FILM or PAPER] Film Destination (2000|0040) CS [MAGAZINE or PROCESSOR] FILM BOX SOP CLASS N-CREATE REQUEST ATTRIBUTES Image Display Format (2010|0010) CS [STANDARD\1,1] Film Orientation (2010|0040) CS [PORTRAIT OR LANDSCAPE] Film Size ID (2010|0050) CS [14INX17IN, 14INX14IN, 11INX14IN, 11INX11IN, 85INX11IN, 8INX10IN] Maginfication Type (2010|0060) CS [REPLICATE, BILINEAR, CUBIC or NONE] Border Density (2010,0100) CS [BLACK or WHITE] */ #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include #include #include #include #include #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif static void DIMSE_printNStatusString(std::ostream& dumpStream, int status) { switch(status) { case STATUS_Success: dumpStream << "0x0000: Success"; break; case STATUS_N_Cancel: dumpStream << "0xFE00: Cancel"; break; case STATUS_N_AttributeListError: dumpStream << "0x0107: Attribute list error"; break; case STATUS_N_SOPClassNotSupported: dumpStream << "0x0122: SOP class not supported"; break; case STATUS_N_ClassInstanceConflict: dumpStream << "0x0119: Class/instance conflict"; break; case STATUS_N_DuplicateSOPInstance: dumpStream << "0x0111: Duplicate SOP instance"; break; case STATUS_N_DuplicateInvocation: dumpStream << "0x0210: Duplicate invocation"; break; case STATUS_N_InvalidArgumentValue: dumpStream << "0x0115: Invalid argument value"; break; case STATUS_N_InvalidAttributeValue: dumpStream << "0x0106: Invalid attribute value"; break; case STATUS_N_InvalidObjectInstance: dumpStream << "0x0117: Invalid object instance"; break; case STATUS_N_MissingAttribute: dumpStream << "0x0120: Missing attribute"; break; case STATUS_N_MissingAttributeValue: dumpStream << "0x0121: Missing attribute value"; break; case STATUS_N_MistypedArgument: dumpStream << "0x0212: Mistyped argument"; break; case STATUS_N_NoSuchArgument: dumpStream << "0x0114: No such argument"; break; case STATUS_N_NoSuchAttribute: dumpStream << "0x0105: No such attribute"; break; case STATUS_N_NoSuchEventType: dumpStream << "0x0113: No such event type"; break; case STATUS_N_NoSuchObjectInstance: dumpStream << "0x0112: No such object instance"; break; case STATUS_N_NoSuchSOPClass: dumpStream << "0x0118: No such SOP class"; break; case STATUS_N_ProcessingFailure: dumpStream << "0x0110: Processing failure"; break; case STATUS_N_ResourceLimitation: dumpStream << "0x0213: Resource limitation"; break; case STATUS_N_UnrecognizedOperation: dumpStream << "0x0211: Unrecognized operation"; break; case STATUS_N_PRINT_BFS_Warn_MemoryAllocation: dumpStream << "0xB600: Basic film session warning - Memory allocation"; break; case STATUS_N_PRINT_BFS_Warn_NoSessionPrinting: dumpStream << "0xB601: Basic film session warning - No session printing"; break; case STATUS_N_PRINT_BFS_Warn_EmptyPage: dumpStream << "0xB602: Basic film session warning - Empty page"; break; case STATUS_N_PRINT_BFB_Warn_EmptyPage: dumpStream << "0xB603: Basic film box warning - Empty page"; break; case STATUS_N_PRINT_BFS_Fail_NoFilmBox: dumpStream << "0xC600: Basic film session failure - No film box"; break; case STATUS_N_PRINT_BFS_Fail_PrintQueueFull: dumpStream << "0xC601: Basic film session failure - Print queue full"; break; case STATUS_N_PRINT_BSB_Fail_PrintQueueFull: dumpStream << "0xC602: Basic film box failure - Print queue full"; break; case STATUS_N_PRINT_BFS_BFB_Fail_ImageSize: dumpStream << "0xC603: Basic film session/box failure - Image size"; break; case STATUS_N_PRINT_BFS_BFB_Fail_PositionCollision: dumpStream << "0xC604: Basic film session/box failure - Position collision"; break; case STATUS_N_PRINT_IB_Fail_InsufficientMemory: dumpStream << "0xC605: Image box failure - Insufficient memory"; break; case STATUS_N_PRINT_IB_Fail_MoreThanOneVOILUT: dumpStream << "0xC606: Image box failure - More than one VOI LUT"; break; default: { char prev = dumpStream.fill('0'); auto flags = dumpStream.flags(); dumpStream << "0x" << std::hex << std::setw(4) << status << ": Unknown Status Code"; dumpStream.flags(flags); dumpStream.fill(prev); break; } } } PrintAssociation::PrintAssociation(void* connectionKey, const std::string& ambitolog, GNC::IProxyNotificadorProgreso* pNotificadorProgreso) : Association(ambitolog) { if (connectionKey == NULL) { LOG_ERROR(ambitolog, "NULL Connection key"); } this->Net = GIL::DICOM::DCMTK::Network::Instance(connectionKey); this->m_pNotificadorProgreso = pNotificadorProgreso; this->ambitolog = ambitolog; this->blockMode = DIMSE_BLOCKING; this->eventHandler = NULL; this->presId = 0; } PrintAssociation::~PrintAssociation() { } OFCondition PrintAssociation::Print(const GNC::GCS::Ptr& server, const std::string& local_aet, const GIL::DICOM::DicomDataset& film, const GIL::DICOM::DicomDataset& layout, const GIL::DICOM::DicomDataset& job, const std::list& images) { OFCondition status = EC_Normal; //1. Open Association if (!Net->Initiallized()) { Net->InitializeNetwork(GetTimeout(), GetRole(), GetAcceptorPort()); } Create( server->AET, server->HostName, server->Port, local_aet ); SetNotificadorProgreso(m_pNotificadorProgreso); LOG_DEBUG(ambitolog, "Conectando: AET = " << server->AET << ", Host = " << server->HostName << ", Puerto = " << server->Port << ", Local AET = " << local_aet << ", PDU = " << server->PDU); OFCondition r = Connect(Net, server->PDU); OFCondition c = EC_Normal; Uint16 rstatus; if (r.good() == true) { // 2. N-GET (Printer) DcmDataset* response; DcmDataset attrs; DcmElement* e = NULL; DcmSequenceOfItems* seq = NULL; DcmItem* item = NULL; Uint16 *infoAttrList = NULL; c = getRQ( UID_PrinterSOPClass, UID_PrinterSOPInstance, infoAttrList, 0, rstatus, response); if (c.good()) { // 3. N-CREATE (Film Session) delete response; response = NULL; attrs.clear(); std::string tmpStd; e = newDicomElement(DCM_NumberOfCopies); if (job.getTag(GKDCM_NumberOfCopies, tmpStd)) { e->putString(tmpStd.c_str()); } else { e->putString("1"); } attrs.insert(e); if (job.getTag(GKDCM_PrintPriority, tmpStd)) { e = newDicomElement(DCM_PrintPriority); if (!tmpStd.empty()) { e->putString(tmpStd.c_str()); } attrs.insert(e); } if (job.getTag(GKDCM_MediumType, tmpStd)) { e = newDicomElement(DCM_MediumType); if (!tmpStd.empty()) { e->putString(tmpStd.c_str()); } } attrs.insert(e); if (film.getTag(GKDCM_FilmDestination, tmpStd)) { e = newDicomElement(DCM_FilmDestination); if (!tmpStd.empty()) { e->putString(tmpStd.c_str()); } attrs.insert(e); } e = newDicomElement(DCM_FilmSessionLabel); e->putString("GNK Print Session"); attrs.insert(e); /* e = newDicomElement(DCM_MemoryAllocation); attrs.insert(e); */ e = newDicomElement(DCM_OwnerID); attrs.insert(e); //T_ASC_PresentationContextID pcidColorPrint = findAcceptedPC(UID_BasicColorPrintManagementMetaSOPClass); //T_ASC_PresentationContextID pcidGrayscalePrint = findAcceptedPC(UID_BasicGrayscalePrintManagementMetaSOPClass); //T_ASC_PresentationContextID pcidPrint = color ? pcidColorPrint : pcidGrayscalePrint; std::string filmSessionInstanceUID = GIL::DICOM::MakeUID(GIL::DICOM::GUID_InstanceRoot); OFString ofFilmSessionInstanceUID(filmSessionInstanceUID.c_str()); c = createRQ(UID_BasicFilmSessionSOPClass, ofFilmSessionInstanceUID, &attrs, rstatus, response); if (c.good()) { // 4. N-CREATE (Presentation LUT) // 5. N-CREATE (Film Box) delete response; response = NULL; attrs.clear(); if (layout.getTag(GKDCM_ImageDisplayFormat, tmpStd)) { e = newDicomElement(DCM_ImageDisplayFormat); e->putString(tmpStd.c_str()); if (!tmpStd.empty()) { e->putString(tmpStd.c_str()); } attrs.insert(e); } { seq = new DcmSequenceOfItems(DCM_ReferencedFilmSessionSequence); item = new DcmItem(); e = newDicomElement(DCM_ReferencedSOPClassUID); e->putString(UID_BasicFilmSessionSOPClass); item->insert(e); e = newDicomElement(DCM_ReferencedSOPInstanceUID); e->putString(filmSessionInstanceUID.c_str()); item->insert(e); seq->insert(item); attrs.insert(seq); } if (film.getTag(GKDCM_FilmOrientation, tmpStd)) { e = newDicomElement(DCM_FilmOrientation); e->putString(tmpStd.c_str()); if (!tmpStd.empty()) { e->putString(tmpStd.c_str()); } attrs.insert(e); } if (film.getTag(GKDCM_FilmSizeID, tmpStd)) { e = newDicomElement(DCM_FilmSizeID); e->putString(tmpStd.c_str()); if (!tmpStd.empty()) { e->putString(tmpStd.c_str()); } attrs.insert(e); } if (film.getTag(GKDCM_MagnificationType, tmpStd)) { e = newDicomElement(DCM_MagnificationType); e->putString(tmpStd.c_str()); if (!tmpStd.empty()) { e->putString(tmpStd.c_str()); } attrs.insert(e); } if (film.getTag(GKDCM_Trim, tmpStd)) { e = newDicomElement(DCM_Trim); e->putString(tmpStd.c_str()); if (!tmpStd.empty()) { e->putString(tmpStd.c_str()); } attrs.insert(e); } if (layout.getTag(GKDCM_BorderDensity, tmpStd)) { e = newDicomElement(DCM_BorderDensity); e->putString(tmpStd.c_str()); if (!tmpStd.empty()) { e->putString(tmpStd.c_str()); } attrs.insert(e); } if (layout.getTag(GKDCM_EmptyImageDensity, tmpStd)) { e = newDicomElement(DCM_EmptyImageDensity); e->putString(tmpStd.c_str()); if (!tmpStd.empty()) { e->putString(tmpStd.c_str()); } attrs.insert(e); } OFString filmBoxSOPInstanceUID; c = createRQ(UID_BasicFilmBoxSOPClass, filmBoxSOPInstanceUID, &attrs, rstatus, response); if (c.good()) { DcmSequenceOfItems* referencedImageBoxSequence = NULL; if (response == NULL || response->findAndGetSequence(DCM_ReferencedImageBoxSequence, referencedImageBoxSequence, false, false).bad()) { return makeOFCondition(OFM_dcmnet, 16, OF_error, "Unable to read referenced image box"); } if (referencedImageBoxSequence == NULL || referencedImageBoxSequence->getItem(0)->findAndGetElement(DCM_ReferencedSOPClassUID, e, false, false).bad()) { return makeOFCondition(OFM_dcmnet, 16, OF_error, "No Image Box SOP Class received"); } std::string referencedImageBoxSOPClass; { char* sopClassUID = NULL; if (e->getString(sopClassUID).bad()) { return makeOFCondition(OFM_dcmnet, 16, OF_error, "No Image Box SOP Class received"); } referencedImageBoxSOPClass = sopClassUID; } #if 0 // TODO Color if (referencedImageBoxSOPClass != UID_BasicColorImageBoxSOPClass) { return makeOFCondition(OFM_dcmnet, 16, OF_error, "Invalid Image Box SOP Class for color print"); } #else if (referencedImageBoxSOPClass != UID_BasicGrayscaleImageBoxSOPClass) { return makeOFCondition(OFM_dcmnet, 16, OF_error, "Invalid Image Box SOP Class for grayscale print"); } #endif if (referencedImageBoxSequence->getItem(0)->findAndGetElement(DCM_ReferencedSOPInstanceUID, e, false, false).bad()) { return makeOFCondition(OFM_dcmnet, 16, OF_error, "No Image Box SOP Instance UID received"); } std::string referencedImageBoxSOPInstanceUID; { char * sopInstanceUID = NULL; if (e->getString(sopInstanceUID).bad()) { return makeOFCondition(OFM_dcmnet, 16, OF_error, "Invalid Image Box SOP Instance UID received"); } referencedImageBoxSOPInstanceUID = sopInstanceUID; //const char* test1 = referencedImageBoxSOPInstanceUID.c_str(); //const char* test2 = sopInstanceUID; } std::cout << "Ref SOP = " << referencedImageBoxSOPInstanceUID << std::endl; // 6. N-SET (Image Box) unsigned int pos = 1; for (std::list::const_iterator it = images.begin(); it != images.end(); ++it, pos++) { delete response; response = NULL; attrs.clear(); const std::string& filePath = (*it); DcmFileFormat ff; DcmDataset* ds = NULL; LOG_DEBUG(ambitolog, "loading slice: [" << filePath.c_str() << "]" ); c = ff.loadFile(filePath.c_str(), EXS_Unknown, EGL_noChange, DCM_MaxReadLength, ERM_autoDetect); std::string outfname; { std::ostringstream os; os << GNC::Entorno::Instance()->GetGinkgoTempDir().c_str() << (char) wxFileName::GetPathSeparator(wxPATH_NATIVE) << "print_slice_" << pos << ".dcm"; outfname = os.str(); } LOG_DEBUG(ambitolog, "tempfile: [" << outfname.c_str() << "]" ); DcmXfer filexfer(ff.getDataset()->getOriginalXfer()); if (filexfer.getXfer() == EXS_JPEG2000LosslessOnly || filexfer.getXfer() == EXS_JPEG2000) { if (!DecompressJPEG2000(filePath, outfname)) { return makeOFCondition(OFM_dcmdata, 16, OF_error, "Unable to decompress JPEG2000"); } //LOG_WARN(ambitolog, "The file is being uncompressed from JPG2000. Some tags could be lost"); ff.loadFile(outfname.c_str(), EXS_Unknown, EGL_noChange, DCM_MaxReadLength, ERM_autoDetect); } ff.getDataset()->chooseRepresentation(EXS_LittleEndianExplicit, NULL); // check if everything went well if (ff.getDataset()->canWriteXfer(EXS_LittleEndianExplicit)) { ff.loadAllDataIntoMemory(); unlink(outfname.c_str()); c = ff.saveFile( outfname.c_str(), EXS_LittleEndianExplicit); } else { return makeOFCondition(OFM_dcmdata, 16, OF_error, "Unable to convert to LittleEndianExplicit"); } if (c.good()) { ds = ff.getDataset(); c = attrs.chooseRepresentation(ff.getDataset()->getOriginalXfer(), NULL); if (c.bad()) { return makeOFCondition(OFM_dcmdata, 16, OF_error, "Unable to choose LittleEndianExplicit representation"); } e = newDicomElement(DCM_ImageBoxPosition); e->putUint16(pos); attrs.insert(e); #if 0 // TODO seq = new DcmSequenceOfItems(DCM_BasicColorImageSequence); #else seq = new DcmSequenceOfItems(DCM_BasicGrayscaleImageSequence); #endif item = new DcmItem(); if (ds->findAndGetElement(DCM_SamplesPerPixel, e, false, true).good()) { item->insert(e); } if (ds->findAndGetElement(DCM_PhotometricInterpretation, e, false, true).good()) { item->insert(e); } if (ds->findAndGetElement(DCM_Rows, e, false, true).good()) { item->insert(e); } if (ds->findAndGetElement(DCM_Columns, e, false, true).good()) { item->insert(e); } if (ds->findAndGetElement(DCM_PixelAspectRatio, e, false, true).good()) { item->insert(e); } if (ds->findAndGetElement(DCM_BitsAllocated, e, false, true).good()) { item->insert(e); } if (ds->findAndGetElement(DCM_BitsStored, e, false, true).good()) { item->insert(e); } if (ds->findAndGetElement(DCM_HighBit, e, false, true).good()) { item->insert(e); } if (ds->findAndGetElement(DCM_PixelRepresentation, e, false, true).good()) { item->insert(e); } if (ds->findAndGetElement(DCM_PixelData, e, false, true).good()) { item->insert(e); } seq->insert(item); attrs.insert(seq); //c = attrs.chooseRepresentation(EXS_LittleEndianExplicit, NULL); //attrs.insertEmptyElement(DCM_TransferSyntaxUID, EXS_LittleEndianExplicit); c = setRQ(referencedImageBoxSOPClass.c_str(), referencedImageBoxSOPInstanceUID.c_str(), &attrs, rstatus, response); if (c.bad()) { return c; } } else { return c; } } // 7. N-ACTION (Film Box) delete response; response = NULL; attrs.clear(); OFCondition resultStatus = actionRQ(UID_BasicFilmBoxSOPClass, filmBoxSOPInstanceUID.c_str(), 1, NULL, rstatus, response); if (resultStatus.good()) { // 8. N-DELETE (Film Box) c = deleteRQ(UID_BasicFilmBoxSOPClass, filmBoxSOPInstanceUID.c_str(), rstatus); } else { c = EC_Normal; } if (c.good()) { // 9. N-DELETE (Film Session) c = deleteRQ(UID_BasicFilmSessionSOPClass, filmSessionInstanceUID.c_str(), rstatus); } return resultStatus; } else { return c; } } else { return c; } } } else { LOG_ERROR(ambitolog, "Error al conectar:" << r.text()); Drop(); Destroy(); throw GIL::DICOM::PACSException(r.text()); } if (!c.good()) { LOG_ERROR(ambitolog, "Error al enviar objeto: " << c.text()); Drop(); Destroy(); throw GIL::DICOM::PACSException(c.text()); } return c; } void PrintAssociation::OnAddPresentationContext(T_ASC_Parameters* params) { OFCondition cond = EC_Normal; const char* transferSyntaxes[3]; int transferSyntaxCount = 0; bool implicitOnly = false; bool negotiatePresentationLUT = false; bool negotiateAnnotationBox = false; if (implicitOnly) { // coverity[DEADCODE] GW: don't know why this code is here, maybe future possibilities? transferSyntaxes[0] = UID_LittleEndianImplicitTransferSyntax; transferSyntaxCount = 1; } else { /* gLocalByteOrder is defined in dcxfer.h */ if (gLocalByteOrder == EBO_LittleEndian) { /* we are on a little endian machine */ transferSyntaxes[0] = UID_LittleEndianExplicitTransferSyntax; transferSyntaxes[1] = UID_BigEndianExplicitTransferSyntax; } else { /* we are on a big endian machine */ transferSyntaxes[0] = UID_BigEndianExplicitTransferSyntax; transferSyntaxes[1] = UID_LittleEndianExplicitTransferSyntax; } transferSyntaxes[2] = UID_LittleEndianImplicitTransferSyntax; transferSyntaxCount = 3; } /* we always propose basic grayscale, presentation LUT and annotation box*/ if (cond.good()) cond = ASC_addPresentationContext(params, 1, UID_BasicGrayscalePrintManagementMetaSOPClass, transferSyntaxes, transferSyntaxCount); if (negotiatePresentationLUT) { // coverity[DEADCODE] GW: don't know why this code is here, maybe future possibilities? if (cond.good()) cond = ASC_addPresentationContext(params, 3, UID_PresentationLUTSOPClass, transferSyntaxes, transferSyntaxCount); } if (negotiateAnnotationBox) { // coverity[DEADCODE] GW: don't know why this code is here, maybe future possibilities? if (cond.good()) cond = ASC_addPresentationContext(params, 5, UID_BasicAnnotationBoxSOPClass, transferSyntaxes, transferSyntaxCount); } } void PrintAssociation::dumpNMessage(T_DIMSE_Message &msg, DcmItem *dataset, OFBool outgoing) { OFString str; if (outgoing) { DIMSE_dumpMessage(str, msg, DIMSE_OUTGOING, dataset); } else { DIMSE_dumpMessage(str, msg, DIMSE_INCOMING, dataset); } LOG_DEBUG(ambitolog, str); } OFCondition PrintAssociation::sendNRequest( T_ASC_PresentationContextID presId, T_DIMSE_Message &request, DcmDataset *rqDataSet, T_DIMSE_Message &response, DcmDataset* &statusDetail, DcmDataset* &rspDataset) { OFCondition cond = EC_Normal; T_DIMSE_Command expectedResponse; DIC_US expectedMessageID=0; if (assoc == NULL) { return DIMSE_ILLEGALASSOCIATION; } T_DIMSE_DataSetType datasetType = DIMSE_DATASET_NULL; if (rqDataSet && (rqDataSet->card() > 0)) datasetType = DIMSE_DATASET_PRESENT; switch(request.CommandField) { case DIMSE_N_GET_RQ: request.msg.NGetRQ.DataSetType = datasetType; expectedResponse = DIMSE_N_GET_RSP; expectedMessageID = request.msg.NGetRQ.MessageID; break; case DIMSE_N_SET_RQ: request.msg.NSetRQ.DataSetType = datasetType; expectedResponse = DIMSE_N_SET_RSP; expectedMessageID = request.msg.NSetRQ.MessageID; break; case DIMSE_N_ACTION_RQ: request.msg.NActionRQ.DataSetType = datasetType; expectedResponse = DIMSE_N_ACTION_RSP; expectedMessageID = request.msg.NActionRQ.MessageID; break; case DIMSE_N_CREATE_RQ: request.msg.NCreateRQ.DataSetType = datasetType; expectedResponse = DIMSE_N_CREATE_RSP; expectedMessageID = request.msg.NCreateRQ.MessageID; break; case DIMSE_N_DELETE_RQ: request.msg.NDeleteRQ.DataSetType = datasetType; expectedResponse = DIMSE_N_DELETE_RSP; expectedMessageID = request.msg.NDeleteRQ.MessageID; break; default: return DIMSE_BADCOMMANDTYPE; /* break; */ } dumpNMessage(request, rqDataSet, OFTrue); cond = DIMSE_sendMessageUsingMemoryData(assoc, presId, &request, NULL, rqDataSet, NULL, NULL); if (cond.bad()) return cond; T_ASC_PresentationContextID thisPresId; T_DIMSE_Message eventReportRsp; DIC_US eventReportStatus; do { thisPresId = presId; statusDetail = NULL; cond = DIMSE_receiveCommand(assoc, blockMode, this->m_timeout, &thisPresId, &response, &statusDetail); if (cond.bad()) return cond; if (response.CommandField == DIMSE_N_EVENT_REPORT_RQ) { /* handle N-EVENT-REPORT-RQ */ rspDataset = NULL; if (response.msg.NEventReportRQ.DataSetType == DIMSE_DATASET_PRESENT) { cond = DIMSE_receiveDataSetInMemory(assoc, blockMode, m_timeout, &thisPresId, &rspDataset, NULL, NULL); if (cond.bad()) return cond; } dumpNMessage(response, rspDataset, OFFalse); // call event handler if registered eventReportStatus = STATUS_Success; if (eventHandler) eventReportStatus = eventHandler->handleEvent(response.msg.NEventReportRQ, rspDataset, statusDetail); if (rspDataset) delete rspDataset; rspDataset = NULL; if (statusDetail) delete statusDetail; statusDetail = NULL; // send back N-EVENT-REPORT-RSP */ eventReportRsp.CommandField = DIMSE_N_EVENT_REPORT_RSP; eventReportRsp.msg.NEventReportRSP.MessageIDBeingRespondedTo = response.msg.NEventReportRQ.MessageID; eventReportRsp.msg.NEventReportRSP.EventTypeID = response.msg.NEventReportRQ.EventTypeID; eventReportRsp.msg.NEventReportRSP.DimseStatus = eventReportStatus; eventReportRsp.msg.NEventReportRSP.DataSetType = DIMSE_DATASET_NULL; eventReportRsp.msg.NEventReportRSP.opts = O_NEVENTREPORT_EVENTTYPEID; eventReportRsp.msg.NEventReportRSP.AffectedSOPClassUID[0] = 0; eventReportRsp.msg.NEventReportRSP.AffectedSOPInstanceUID[0] = 0; dumpNMessage(eventReportRsp, NULL, OFTrue); cond = DIMSE_sendMessageUsingMemoryData(assoc, thisPresId, &eventReportRsp, NULL, NULL, NULL, NULL); if (cond.bad()) return cond; } else { /* No N-EVENT-REPORT-RQ. Check if this message is what we expected */ if (response.CommandField != expectedResponse) { char buf1[256]; sprintf(buf1, "DIMSE: Unexpected Response Command Field: 0x%x", (unsigned)response.CommandField); return makeDcmnetCondition(DIMSEC_UNEXPECTEDRESPONSE, OF_error, buf1); } T_DIMSE_DataSetType responseDataset = DIMSE_DATASET_NULL; DIC_US responseMessageID = 0; /** change request to response */ switch(expectedResponse) { case DIMSE_N_GET_RSP: responseDataset = response.msg.NGetRSP.DataSetType; responseMessageID = response.msg.NGetRSP.MessageIDBeingRespondedTo; break; case DIMSE_N_SET_RSP: responseDataset = response.msg.NSetRSP.DataSetType; responseMessageID = response.msg.NSetRSP.MessageIDBeingRespondedTo; break; case DIMSE_N_ACTION_RSP: responseDataset = response.msg.NActionRSP.DataSetType; responseMessageID = response.msg.NActionRSP.MessageIDBeingRespondedTo; break; case DIMSE_N_CREATE_RSP: responseDataset = response.msg.NCreateRSP.DataSetType; responseMessageID = response.msg.NCreateRSP.MessageIDBeingRespondedTo; break; case DIMSE_N_DELETE_RSP: responseDataset = response.msg.NDeleteRSP.DataSetType; responseMessageID = response.msg.NDeleteRSP.MessageIDBeingRespondedTo; break; default: { char buf1[256]; sprintf(buf1, "DIMSE: Unexpected Response Command Field: 0x%x", (unsigned)response.CommandField); return makeDcmnetCondition(DIMSEC_UNEXPECTEDRESPONSE, OF_error, buf1); } /* break; */ } if (responseMessageID != expectedMessageID) { char buf1[256]; sprintf(buf1, "DIMSE: Unexpected Response Command Field: 0x%x", (unsigned)response.CommandField); return makeDcmnetCondition(DIMSEC_UNEXPECTEDRESPONSE, OF_error, buf1); } rspDataset = NULL; if (responseDataset == DIMSE_DATASET_PRESENT) { cond = DIMSE_receiveDataSetInMemory(assoc, blockMode, m_timeout, &thisPresId, &rspDataset, NULL, NULL); if (cond.bad()) return cond; } dumpNMessage(response, rspDataset, OFFalse); } } while (response.CommandField == DIMSE_N_EVENT_REPORT_RQ); return EC_Normal; } OFCondition PrintAssociation::createRQ( const char *sopclassUID, OFString& sopinstanceUID, DcmDataset *attributeListIn, Uint16& status, DcmDataset* &attributeListOut) { if (assoc == NULL) { return DIMSE_ILLEGALASSOCIATION; } if (sopclassUID==NULL) { return DIMSE_NULLKEY; } T_ASC_PresentationContextID presCtx = findAcceptedPC(sopclassUID); if (presCtx == 0) { return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } T_DIMSE_Message request; T_DIMSE_Message response; DcmDataset *statusDetail = NULL; // construct N-CREATE-RQ request.CommandField = DIMSE_N_CREATE_RQ; request.msg.NCreateRQ.MessageID = assoc->nextMsgID++; strncpy(request.msg.NCreateRQ.AffectedSOPClassUID, sopclassUID, DIC_UI_LEN); request.msg.NCreateRQ.AffectedSOPClassUID[DIC_UI_LEN] = 0; if (sopinstanceUID.size() > 0) { strncpy(request.msg.NCreateRQ.AffectedSOPInstanceUID, sopinstanceUID.c_str(), DIC_UI_LEN); request.msg.NCreateRQ.AffectedSOPInstanceUID[DIC_UI_LEN] = 0; request.msg.NCreateRQ.opts = O_NCREATE_AFFECTEDSOPINSTANCEUID; } else { request.msg.NCreateRQ.AffectedSOPInstanceUID[0] = 0; request.msg.NCreateRQ.opts = 0; } OFCondition cond = sendNRequest(presCtx, request, attributeListIn, response, statusDetail, attributeListOut); if (statusDetail) delete statusDetail; if (cond.good()) { status = response.msg.NCreateRSP.DimseStatus; if (status != 0) { LOG_ERROR(ambitolog, "Error sending create rq status: "<< status); std::ostringstream ostr; ostr << "Error sending create rq status: "<< status << " details: "; DIMSE_printNStatusString(ostr, status); throw GIL::DICOM::PACSException(ostr.str(), "GIL::PrintAssociation"); } // if response contains SOP Instance UID, copy it. if (response.msg.NCreateRSP.opts & O_NCREATE_AFFECTEDSOPINSTANCEUID) { sopinstanceUID = response.msg.NCreateRSP.AffectedSOPInstanceUID; } } return cond; } OFCondition PrintAssociation::setRQ( const char *sopclassUID, const char *sopinstanceUID, DcmDataset *modificationList, Uint16& status, DcmDataset* &attributeListOut) { if (assoc == NULL) { return DIMSE_ILLEGALASSOCIATION; } if ((sopclassUID==NULL)||(sopinstanceUID==NULL)||(modificationList==NULL)) { return DIMSE_NULLKEY; } T_ASC_PresentationContextID presCtx = findAcceptedPC(sopclassUID); if (presCtx == 0) { return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } T_DIMSE_Message request; T_DIMSE_Message response; DcmDataset *statusDetail = NULL; // construct N-SET-RQ request.CommandField = DIMSE_N_SET_RQ; request.msg.NSetRQ.MessageID = assoc->nextMsgID++; strncpy(request.msg.NSetRQ.RequestedSOPClassUID, sopclassUID, DIC_UI_LEN); request.msg.NSetRQ.RequestedSOPClassUID[DIC_UI_LEN] = 0; strncpy(request.msg.NSetRQ.RequestedSOPInstanceUID, sopinstanceUID, DIC_UI_LEN); request.msg.NSetRQ.RequestedSOPInstanceUID[DIC_UI_LEN] = 0; OFCondition cond = sendNRequest(presCtx, request, modificationList, response, statusDetail, attributeListOut); if (cond.good()) status = response.msg.NSetRSP.DimseStatus; if (status != 0) { LOG_ERROR(ambitolog, "Error sending create rq status: "<< status); std::ostringstream ostr; ostr << "Error sending create rq status: "<< status << " details: "; DIMSE_printNStatusString(ostr, status); throw GIL::DICOM::PACSException(ostr.str(), "GIL::PrintAssociation"); } if (statusDetail) delete statusDetail; return cond; } OFCondition PrintAssociation::getRQ( const char *sopclassUID, const char *sopinstanceUID, const Uint16 *attributeIdentifierList, ssize_t numShorts, Uint16& status, DcmDataset* &attributeListOut) { if (assoc == NULL) { return DIMSE_ILLEGALASSOCIATION; } if ((sopclassUID==NULL)||(sopinstanceUID==NULL)) { return DIMSE_NULLKEY; } T_ASC_PresentationContextID presCtx = findAcceptedPC(sopclassUID); if (presCtx == 0) { return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } T_DIMSE_Message request; T_DIMSE_Message response; DcmDataset *statusDetail = NULL; // construct N-GET-RQ request.CommandField = DIMSE_N_GET_RQ; request.msg.NGetRQ.MessageID = assoc->nextMsgID++; strncpy(request.msg.NGetRQ.RequestedSOPClassUID, sopclassUID, DIC_UI_LEN); request.msg.NGetRQ.RequestedSOPClassUID[DIC_UI_LEN] = 0; strncpy(request.msg.NGetRQ.RequestedSOPInstanceUID, sopinstanceUID, DIC_UI_LEN); request.msg.NGetRQ.RequestedSOPInstanceUID[DIC_UI_LEN] = 0; request.msg.NGetRQ.ListCount = 0; if (attributeIdentifierList) request.msg.NGetRQ.ListCount = (int)numShorts; request.msg.NGetRQ.AttributeIdentifierList = (DIC_US *)attributeIdentifierList; OFCondition cond = sendNRequest(presCtx, request, NULL, response, statusDetail, attributeListOut); if (cond.good()) status = response.msg.NGetRSP.DimseStatus; if (status != 0) { LOG_ERROR(ambitolog, "Error sending create rq status: "<< status); std::ostringstream ostr; ostr << "Error sending create rq status: "<< status << " details: "; DIMSE_printNStatusString(ostr, status); throw GIL::DICOM::PACSException(ostr.str(), "GIL::PrintAssociation"); } if (statusDetail) delete statusDetail; return cond; } OFCondition PrintAssociation::actionRQ( const char *sopclassUID, const char *sopinstanceUID, Uint16 actionTypeID, DcmDataset *actionInformation, Uint16& status, DcmDataset* &actionReply) { if (assoc == NULL) { return DIMSE_ILLEGALASSOCIATION; } if ((sopclassUID==NULL)||(sopinstanceUID==NULL)) { return DIMSE_NULLKEY; } T_ASC_PresentationContextID presCtx = findAcceptedPC(sopclassUID); if (presCtx == 0) { return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } T_DIMSE_Message request; T_DIMSE_Message response; DcmDataset *statusDetail = NULL; // construct N-ACTION-RQ request.CommandField = DIMSE_N_ACTION_RQ; request.msg.NActionRQ.MessageID = assoc->nextMsgID++; strncpy(request.msg.NActionRQ.RequestedSOPClassUID, sopclassUID, DIC_UI_LEN); request.msg.NActionRQ.RequestedSOPClassUID[DIC_UI_LEN] = 0; strncpy(request.msg.NActionRQ.RequestedSOPInstanceUID, sopinstanceUID, DIC_UI_LEN); request.msg.NActionRQ.RequestedSOPInstanceUID[DIC_UI_LEN] = 0; request.msg.NActionRQ.ActionTypeID = (DIC_US)actionTypeID; OFCondition cond = sendNRequest(presCtx, request, actionInformation, response, statusDetail, actionReply); if (cond.good()) status = response.msg.NActionRSP.DimseStatus; if (status != 0) { LOG_ERROR(ambitolog, "Error sending create rq status: "<< status); std::ostringstream ostr; ostr << "Error sending create rq status: "<< status << " details: "; DIMSE_printNStatusString(ostr, status); throw GIL::DICOM::PACSException(ostr.str(), "GIL::PrintAssociation"); } if (statusDetail) delete statusDetail; return cond; } OFCondition PrintAssociation::deleteRQ( const char *sopclassUID, const char *sopinstanceUID, Uint16& status) { if (assoc == NULL) { return DIMSE_ILLEGALASSOCIATION; } if ((sopclassUID==NULL)||(sopinstanceUID==NULL)) { return DIMSE_NULLKEY; } T_ASC_PresentationContextID presCtx = findAcceptedPC(sopclassUID); if (presCtx == 0) { return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } T_DIMSE_Message request; T_DIMSE_Message response; DcmDataset *statusDetail = NULL; DcmDataset *attributeListOut = NULL; // construct N-DELETE-RQ request.CommandField = DIMSE_N_DELETE_RQ; request.msg.NDeleteRQ.MessageID = assoc->nextMsgID++; strncpy(request.msg.NDeleteRQ.RequestedSOPClassUID, sopclassUID, DIC_UI_LEN); request.msg.NDeleteRQ.RequestedSOPClassUID[DIC_UI_LEN] = 0; strncpy(request.msg.NDeleteRQ.RequestedSOPInstanceUID, sopinstanceUID, DIC_UI_LEN); request.msg.NDeleteRQ.RequestedSOPInstanceUID[DIC_UI_LEN] = 0; OFCondition cond = sendNRequest(presCtx, request, NULL, response, statusDetail, attributeListOut); if (cond.good()) status = response.msg.NDeleteRSP.DimseStatus; if (status != 0) { LOG_ERROR(ambitolog, "Error sending create rq status: "<< status); std::ostringstream ostr; ostr << "Error sending create rq status: "<< status << " details: "; DIMSE_printNStatusString(ostr, status); throw GIL::DICOM::PACSException(ostr.str(), "GIL::PrintAssociation"); } if (statusDetail) delete statusDetail; if (attributeListOut) delete attributeListOut; // should never happen return cond; } OFCondition PrintAssociation::releaseAssociation() { OFCondition result = EC_Normal; if (assoc) { result = ASC_releaseAssociation(assoc); Drop(); Destroy(); assoc = NULL; } return result; } OFCondition PrintAssociation::abortAssociation() { OFCondition result = EC_Normal; if (assoc) { result = ASC_abortAssociation(assoc); Drop(); Destroy(); assoc = NULL; } return result; } T_ASC_PresentationContextID PrintAssociation::findAcceptedPC(const char *sopclassuid) { if ((assoc==NULL)||(sopclassuid==NULL)) return 0; // if the SOP class is one of the Basic Grayscale Print Management Meta SOP Classes, // look for a presentation context for Basic Grayscale Print. OFString sopclass(sopclassuid); if ((sopclass == UID_BasicFilmSessionSOPClass) || (sopclass == UID_BasicFilmBoxSOPClass) || (sopclass == UID_BasicGrayscaleImageBoxSOPClass) || (sopclass == UID_PrinterSOPClass)) sopclassuid = UID_BasicGrayscalePrintManagementMetaSOPClass; return ASC_findAcceptedPresentationContextID(assoc, sopclassuid); } OFCondition PrintAssociation::negotiateAssociation( OFBool, OFBool, OFBool) { OFCondition cond = EC_Normal; /* if (assoc) { return makeDcmnetCondition(DIMSEC_ILLEGALASSOCIATION, OF_error, "association already in place"); } const char* transferSyntaxes[3]; int transferSyntaxCount = 0; if (implicitOnly) { transferSyntaxes[0] = UID_LittleEndianImplicitTransferSyntax; transferSyntaxCount = 1; } else { // gLocalByteOrder is defined in dcxfer.h if (gLocalByteOrder == EBO_LittleEndian) { // we are on a little endian machine transferSyntaxes[0] = UID_LittleEndianExplicitTransferSyntax; transferSyntaxes[1] = UID_BigEndianExplicitTransferSyntax; } else { // we are on a big endian machine transferSyntaxes[0] = UID_BigEndianExplicitTransferSyntax; transferSyntaxes[1] = UID_LittleEndianExplicitTransferSyntax; } transferSyntaxes[2] = UID_LittleEndianImplicitTransferSyntax; transferSyntaxCount = 3; } // create association LOG_INFO( ambitolog, "Requesting Association"); if (cond.good()) { cond = ASC_requestAssociation(Net->GetDcmtkNet(), NULL, &assoc); if (cond == DUL_ASSOCIATIONREJECTED) { OFString temp_str; T_ASC_RejectParameters rej; ASC_getRejectParameters(params, &rej); LOG_INFO( ambitolog, "Association Rejected" << OFendl << ASC_printRejectParameters(temp_str, &rej)); } else { if (cond.bad()) { // if assoc is non-NULL, then params has already been moved into the // assoc structure. Make sure we only delete once! if (assoc) ASC_destroyAssociation(&assoc); else if (params) ASC_destroyAssociationParameters(¶ms); if (net) ASC_dropNetwork(&net); assoc = NULL; net = NULL; return cond; } } } if ((cond.good()) && (0 == ASC_findAcceptedPresentationContextID(assoc, UID_BasicGrayscalePrintManagementMetaSOPClass))) { LOG_INFO( ambitolog, "Peer does not support Basic Grayscale Print Management, aborting association."); abortAssociation(); cond = DIMSE_NOVALIDPRESENTATIONCONTEXTID; } if (cond.good()) { LOG_INFO( ambitolog, "Association accepted (Max Send PDV: " << assoc->sendPDVLength << ")"); } else { // params is now an alias to assoc->params. Don't call ASC_destroyAssociationParameters. if (assoc) ASC_destroyAssociation(&assoc); if (net) ASC_dropNetwork(&net); assoc = NULL; net = NULL; } */ return cond; } OFBool PrintAssociation::printerSupportsPresentationLUT() { if ((assoc)&&(0 != ASC_findAcceptedPresentationContextID(assoc, UID_PresentationLUTSOPClass))) return OFTrue; return OFFalse; } OFBool PrintAssociation::printerSupportsAnnotationBox() { if ((assoc)&&(0 != ASC_findAcceptedPresentationContextID(assoc, UID_BasicAnnotationBoxSOPClass))) return OFTrue; return OFFalse; } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomprintassociation.h000066400000000000000000000113161314736454600266300ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include "dicomassociation.h" #include #include
    #include
    #include #include /* for class OFString */ namespace GIL { namespace DICOM { class DicomDataset; } } class DicomImage; class PrintEventHandler { public: /// destructor virtual ~PrintEventHandler() {} /** handles an N-EVENT-REPORT-RQ message. This method is called * from PrintAssociation whenever an event report is received. * The event message, information and status detail elements must be copied * if they should remain valid after the end of this method call. * The event handler can react on the event message in any implementation * dependent way, e.g. display the event on-screen. * @param eventMessage the N-EVENT-REPORT-RQ message * @param eventInformation event information dataset. May be NULL if no event information available. * @param statusDetail status detail dataset. ay be NULL if no status detail available. * @return the status code to be sent back as part of the N-EVENT-REPORT-RSP message, usually STATUS_Success. */ virtual DIC_US handleEvent( T_DIMSE_N_EventReportRQ& eventMessage, DcmDataset *eventInformation, DcmDataset *statusDetail)=0; }; class PrintAssociation : public Association { public: /** Constructors */ PrintAssociation(void* connectionKey, const std::string& ambitolog, GNC::IProxyNotificadorProgreso* pNotificadorProgreso = NULL); virtual ~PrintAssociation(); /** Send a query object (C-Find) through association */ OFCondition Print(const GNC::GCS::Ptr& server, const std::string& local_aet, const GIL::DICOM::DicomDataset& film, const GIL::DICOM::DicomDataset& layout, const GIL::DICOM::DicomDataset& job, const std::list& files); private: private: GIL::DICOM::DCMTK::Network* Net; std::string ambitolog; protected: GNC::IProxyNotificadorProgreso* m_pNotificadorProgreso; virtual void OnAddPresentationContext(T_ASC_Parameters* params); T_ASC_PresentationContextID presId; private: void dumpNMessage(T_DIMSE_Message &msg, DcmItem *dataset, OFBool outgoing); OFCondition sendNRequest( T_ASC_PresentationContextID presId, T_DIMSE_Message &request, DcmDataset *rqDataSet, T_DIMSE_Message &response, DcmDataset* &statusDetail, DcmDataset* &rspDataset); OFCondition createRQ(const char *sopclassUID, OFString& sopinstanceUID, DcmDataset *attributeListIn, Uint16& status, DcmDataset* &attributeListOut); OFCondition setRQ( const char *sopclassUID, const char *sopinstanceUID, DcmDataset *modificationList, Uint16& status, DcmDataset* &attributeListOut); OFCondition getRQ( const char *sopclassUID, const char *sopinstanceUID, const Uint16 *attributeIdentifierList, ssize_t numShorts, Uint16& status, DcmDataset* &attributeListOut); OFCondition actionRQ( const char *sopclassUID, const char *sopinstanceUID, Uint16 actionTypeID, DcmDataset *actionInformation, Uint16& status, DcmDataset* &actionReply); OFCondition deleteRQ( const char *sopclassUID, const char *sopinstanceUID, Uint16& status); OFCondition releaseAssociation(); OFCondition abortAssociation(); T_ASC_PresentationContextID findAcceptedPC(const char *sopclassuid); OFCondition negotiateAssociation(OFBool negotiatePresentationLUT, OFBool negotiateAnnotationBox, OFBool implicitOnly); OFBool printerSupportsPresentationLUT(); OFBool printerSupportsAnnotationBox(); T_DIMSE_BlockingMode blockMode; /// the current event handler. Can be NULL. PrintEventHandler *eventHandler; }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomservers.cpp000066400000000000000000000352101314736454600252620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "dicomservers.h" #include #include #include #include #include #include
    #include
    #include
    #include WLConfig::WLConfig() { this->useAbortMessage = this->useCompletedMessage = this->useInProgressMessage = false; this->useDICOMMPPS = true; GNC::GCS::Permisos::EstadoPermiso perm = GNC::GCS::IControladorPermisos::Instance()->Get("gnkwl.messages", "inprogress"); if (perm) { this->inProgressTemplate = perm.GetRawValue(); } perm = GNC::GCS::IControladorPermisos::Instance()->Get("gnkwl.messages", "completed"); if (perm) { this->completedTemplate = perm.GetRawValue(); } perm = GNC::GCS::IControladorPermisos::Instance()->Get("gnkwl.messages", "abort"); if (perm) { this->abortTemplate = perm.GetRawValue(); } } WLConfig::WLConfig( const WLConfig& o) { *this = o; } WLConfig& WLConfig::operator=(const WLConfig& o) { this->abortTemplate = o.abortTemplate; this->completedTemplate = o.completedTemplate; this->inProgressTemplate = o.inProgressTemplate; this->useAbortMessage = o.useAbortMessage; this->useCompletedMessage = o.useCompletedMessage; this->useInProgressMessage = o.useInProgressMessage; this->useDICOMMPPS = o.useDICOMMPPS; return *this; } WLConfig::~WLConfig() { } DicomServer::DicomServer(const std::string& pID, const std::string& pAET, const std::string& pHostName, int pPort, int pLossy, bool pIsDefault, int pPDU, bool pUseTLS, const std::string& pPacsUser, const std::string& pPacsPass, TRetrieveMethod pRetrieveMethod, const std::string& pWadoURI, bool pRetrSeries, bool pReuseConnection, bool pVerify, const std::string& pCert, const std::string& pKey, const std::string& pDefaultCharset) : ID(pID), AET(pAET), HostName(pHostName), Port(pPort), PDU(pPDU), Lossy(pLossy), isDefault(pIsDefault), retrieveMethod(pRetrieveMethod), wadoURI(pWadoURI), reuseConnection(pReuseConnection), retrieveSeries(pRetrSeries), useTLS(pUseTLS), pacsUser(pPacsUser), pacsPass(pPacsPass), verifyCredentials(pVerify), certificate(pCert), privateKey(pKey), defaultCharset(pDefaultCharset) { } /**local server constructor*/ DicomServer::DicomServer(const std::string& pID, const std::string& pAET, const std::string& pHostName, int pPort, int pPDU) : ID(pID), AET(pAET), HostName(pHostName), Port(pPort), PDU(pPDU), Lossy(0), isDefault(false), retrieveMethod(DicomServer::GET), wadoURI("/wado"), reuseConnection(true), retrieveSeries(true), useTLS(false), pacsUser(""), pacsPass(""), verifyCredentials(false), certificate(""), privateKey(""), defaultCharset("ISO_IR 100") { } /** default constructor */ DicomServer::DicomServer() : ID(""), AET(""), HostName(""), Port(11112), PDU(16384), Lossy(0), isDefault(false), retrieveMethod(DicomServer::GET), wadoURI("/wado"), reuseConnection(true), retrieveSeries(true), useTLS(false), pacsUser(""), pacsPass(""), verifyCredentials(false), certificate(""), privateKey(""), defaultCharset("ISO_IR 100") { } DicomServer::DicomServer( const DicomServer& o) { *this = o; } DicomServer::~DicomServer() { } DicomServer& DicomServer::operator=(const DicomServer& o) { this->ID = o.ID; this->AET = o.AET; this->HostName = o.HostName; this->Port = o.Port; this->Lossy = o.Lossy; this->isDefault = o.isDefault; this->PDU = o.PDU; this->useTLS = o.useTLS; this->pacsUser = o.pacsUser; this->pacsPass = o.pacsPass; this->retrieveMethod = o.retrieveMethod; this->wadoURI = o.wadoURI; this->reuseConnection = o.reuseConnection; this->retrieveSeries = o.retrieveSeries; this->verifyCredentials = o.verifyCredentials; this->certificate = o.certificate; this->privateKey = o.privateKey; this->defaultCharset = o.defaultCharset; this->wlConfig = o.wlConfig; return *this; } const std::string& DicomServer::GetID() { return ID; } const std::string& DicomServer::GetAET() { return AET; } const std::string& DicomServer::GetHostName() { return HostName; } int DicomServer::GetPort() { return Port; } int DicomServer::GetLossy() { return Lossy; } bool DicomServer::GetIsDefault() { return isDefault; } int DicomServer::GetPDU() { return PDU; } bool DicomServer::GetUseTLS() { return useTLS; } const std::string& DicomServer::GetPACSUser() { return pacsUser; } const std::string& DicomServer::GetPACSPass() { return pacsPass; } DicomServer::TRetrieveMethod DicomServer::GetRetrieveMethod() { return retrieveMethod; } bool DicomServer::GetRetrieveSeries() { return retrieveSeries; } bool DicomServer::GetReuseConnection() { return reuseConnection; } bool DicomServer::GetverifyCredentials() { return verifyCredentials; } const std::string& DicomServer::GetCertificate() { return certificate; } const std::string& DicomServer::GetPrivateKey() { return privateKey; } const std::string& DicomServer::GetDefaultCharset() { return defaultCharset; } const std::string& DicomServer::GetWADOURI() { return wadoURI; } WLConfig& DicomServer::GetWlConfig() { return wlConfig; } ///////////////////////////////////////////////////////////////////// DicomServerList* DicomServerList::m_pInstance = 0; DicomServerList::DicomServerList() { Reload(); } DicomServerList::~DicomServerList() { GNC::GCS::ILocker lock(this); ServerMap.clear(); } DicomServerList* DicomServerList::Instance() { if (m_pInstance == NULL) { m_pInstance = new DicomServerList(); } return m_pInstance; } void DicomServerList::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = 0; } } void DicomServerList::AddServer(const DicomServer& newServer, bool isDefault) { GNC::GCS::ILocker lock(this); if (isDefault) { for (TServerMap::iterator it = ServerMap.begin(); it != ServerMap.end(); ++it) { (*it).second->isDefault = false; } } if (ServerMap.find(newServer.ID) != ServerMap.end()) { *ServerMap[newServer.ID] = newServer; ServerMap[newServer.ID]->isDefault = isDefault; } else { GNC::GCS::Ptr pNewServer(new DicomServer(newServer)); pNewServer->isDefault = isDefault; ServerMap[newServer.ID] = pNewServer; } } bool DicomServerList::TieneServer(const std::string& ID) { GNC::GCS::Ptr server = GetServer(ID); return server.IsValid(); } const GNC::GCS::Ptr& DicomServerList::GetServer(const std::string& ID) { GNC::GCS::ILocker lock(this); if (ServerMap.find(ID) != ServerMap.end()) { return ServerMap[ID]; } else { GNC::GCS::Ptr server; throw GinkgoNoServerFoundException(); } } const GNC::GCS::Ptr& DicomServerList::GetLocalServer() { if (!LocalServer.IsValid()) { throw GinkgoNoServerFoundException(); } return LocalServer; } bool DicomServerList::Empty() { return ServerMap.empty(); } DicomServerList::TServerList DicomServerList::GetServerList() { GNC::GCS::ILocker lock(this); TServerList listOfServers; for (TServerMap::iterator it = ServerMap.begin(); it != ServerMap.end(); ++it) { listOfServers.push_back((*it).second); } return listOfServers; } const GNC::GCS::Ptr& DicomServerList::GetDefaultServer() { GNC::GCS::ILocker lock(this); for (TServerMap::iterator it = ServerMap.begin(); it != ServerMap.end(); ++it) { if ((*it).second->isDefault) { return (*it).second; } } if (!ServerMap.empty()) { return (*ServerMap.begin()).second; } else { throw GinkgoNoServerFoundException(); } } void DicomServerList::SetDefaultServer(const std::string& ID) { GNC::GCS::ILocker lock(this); for (TServerMap::iterator it = ServerMap.begin(); it != ServerMap.end(); ++it) { if ((*it).second->ID != ID) { (*it).second->isDefault = false; } else { (*it).second->isDefault = true; } } } void DicomServerList::Reload() { GNC::GCS::ILocker lock(this); ServerMap.clear(); GNC::GCS::ConfigurationController::TListGroups servers; GNC::GCS::ConfigurationController::Instance()->readGroupGeneral("/GinkgoCore/PACS/Servidores", servers); bool existDefault = false; for (GNC::GCS::ConfigurationController::TListGroups::iterator it = servers.begin(); it != servers.end(); ++it) { GNC::GCS::ConfigurationController::TMapValues& values = (*it); std::string id, aet, host; int port, pdu; values.readStringValue("Identificador", id); values.readStringValue("AET", aet); values.readStringValue("Host", host); values.readIntValue("Puerto", port); values.readIntValue("PDU", pdu, DEFAULT_PDU_LENGTH); GNC::GCS::Ptr server(new DicomServer(id, aet, host, port, pdu)); values.readBoolValue("isDefault",server->isDefault,false); values.readBoolValue("useTLS",server->useTLS,false); values.readStringValue("pacsUser", server->pacsUser); values.readStringValue("pacsPass", server->pacsPass); values.readBoolValue("verifyCredentials",server->verifyCredentials,false); values.readStringValue("certificate", server->certificate); values.readStringValue("privateKey", server->privateKey); int tmpInt; if (values.readIntValue("retrieveMethod", tmpInt)) { server->retrieveMethod = (DicomServer::TRetrieveMethod)tmpInt; } else { //retro compatibility bool tmpBool; values.readBoolValue("retrieveWithMove",tmpBool,true); if (tmpBool) { server->retrieveMethod = DicomServer::MOVE; } else { server->retrieveMethod = DicomServer::GET; } } // values.readStringValue("wadoURI", server->wadoURI, ""); values.readBoolValue("reuseConnection", server->reuseConnection, false); values.readBoolValue("retrieveSeries",server->retrieveSeries,true); values.readStringValue("defaultCharset", server->defaultCharset, "ISO_IR 100"); //wl... values.readBoolValue("useDICOMMPPS",server->GetWlConfig().useDICOMMPPS, server->GetWlConfig().useDICOMMPPS); values.readBoolValue("useAbortMessage",server->GetWlConfig().useAbortMessage, server->GetWlConfig().useAbortMessage); values.readBoolValue("useCompletedMessage",server->GetWlConfig().useCompletedMessage, server->GetWlConfig().useCompletedMessage); values.readBoolValue("useInProgressMessage",server->GetWlConfig().useInProgressMessage, server->GetWlConfig().useInProgressMessage); values.readStringValue("abortTemplate",server->GetWlConfig().abortTemplate, server->GetWlConfig().abortTemplate); values.readStringValue("completedTemplate",server->GetWlConfig().completedTemplate, server->GetWlConfig().completedTemplate); values.readStringValue("inProgressTemplate",server->GetWlConfig().inProgressTemplate, server->GetWlConfig().inProgressTemplate); // ServerMap[server->ID] = server; existDefault = existDefault || server->isDefault; } if (!existDefault && !ServerMap.empty()) { ServerMap.begin()->second->isDefault = true; } //local server //se actualiza el fichero de configuracion int port; GNC::GCS::ConfigurationController::Instance()->readIntGeneral("/GinkgoCore/PACS/Local", "Puerto", port, 11112); std::string localAet = GNC::Entorno::Instance()->GetDicomLocalAET(); LocalServer = new DicomServer("ginkgo",localAet, "localhost", port, 16384); GNC::GCS::ConfigurationController::Instance()->readBoolGeneral("/GinkgoCore/PACS/Local", "useTLS", LocalServer->useTLS, false); GNC::GCS::ConfigurationController::Instance()->readBoolGeneral("/GinkgoCore/PACS/Local", "verifyCredentials", LocalServer->verifyCredentials, false); #ifdef GINKGO_PRIVATE_KEY LocalServer->privateKey = GINKGO_PRIVATE_KEY; #endif GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/PACS/Local", "privateKey", LocalServer->privateKey); #ifdef GINKGO_PUBLIC_KEY LocalServer->certificate = GINKGO_PUBLIC_KEY; #endif GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/PACS/Local", "certificate", LocalServer->certificate); } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomservers.h000066400000000000000000000114671314736454600247370ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include #include //estas constantes vienen dadas por dcmtk #define DEFAULT_PDU_LENGTH 16384 #define MAX_PDU_LENGTH 131072 #define MIN_PDU_LENGTH 4096 namespace GNC { namespace GCS { class IEntorno; } } class GinkgoNoServerFoundException : public GNC::GCS::IException { public: GinkgoNoServerFoundException() throw() : GNC::GCS::IException(_Std("Server not found"), "DICOM", false) {} }; class WLConfig { public: WLConfig(); WLConfig( const WLConfig& o); WLConfig& operator=(const WLConfig& o); ~WLConfig(); bool useDICOMMPPS; bool useAbortMessage; std::string abortTemplate; bool useCompletedMessage; std::string completedTemplate; bool useInProgressMessage; std::string inProgressTemplate; }; class DicomServer { public: typedef enum TRetrieveMethod { MOVE = 0, GET, WADO } TRetrieveMethod; /* Constructor with all parameters*/ DicomServer(const std::string& ID, const std::string& AET, const std::string& HostName, int port, int Lossy, bool isDefault, int PDU, bool useTLS, const std::string& pacsUser, const std::string& pacsPass, TRetrieveMethod retrieveMethod, const std::string& wadoURI, bool retrSeries, bool reuseConnection, bool verify, const std::string& cert, const std::string& key, const std::string& defaultCharset) ; /**local server constructor*/ DicomServer(const std::string& ID, const std::string& AET, const std::string& HostName, int port, int PDU) ; /** default constructor */ DicomServer(); DicomServer( const DicomServer& o); ~DicomServer(); DicomServer& operator=(const DicomServer& o); const std::string& GetID(); const std::string& GetAET(); const std::string& GetHostName(); int GetPort(); int GetLossy(); bool GetIsDefault() ; int GetPDU(); bool GetUseTLS(); const std::string& GetPACSUser(); const std::string& GetPACSPass(); TRetrieveMethod GetRetrieveMethod(); bool GetRetrieveSeries(); bool GetReuseConnection(); bool GetverifyCredentials(); const std::string& GetCertificate(); const std::string& GetPrivateKey(); const std::string& GetDefaultCharset(); const std::string& GetWADOURI() ; WLConfig& GetWlConfig() ; std::string ID; std::string AET; std::string HostName; int Port; int PDU; int Lossy; bool isDefault; WLConfig wlConfig; TRetrieveMethod retrieveMethod; std::string wadoURI; bool reuseConnection; bool retrieveSeries; bool useTLS; std::string pacsUser; std::string pacsPass; bool verifyCredentials; std::string certificate; std::string privateKey; std::string defaultCharset; }; class EXTAPI DicomServerList: public GNC::GCS::ILockable { public: typedef std::list > TServerList; typedef std::map > TServerMap; static DicomServerList* Instance(); static void FreeInstance(); void AddServer(const DicomServer& server, bool isDefault); bool TieneServer(const std::string& ID); const GNC::GCS::Ptr& GetLocalServer(); const GNC::GCS::Ptr& GetServer(const std::string& ID); const GNC::GCS::Ptr& GetDefaultServer(); void SetDefaultServer(const std::string& ID); bool Empty(); TServerList GetServerList(); void Reload(); protected: DicomServerList(); ~DicomServerList(); TServerMap ServerMap; GNC::GCS::Ptr LocalServer; protected: static DicomServerList *m_pInstance; }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomservice.cpp000066400000000000000000000304641314736454600252370ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "dicomservice.h" #include "dicomnetwork.h" #include #include #include
    #include
    #include
    #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif #include #include /* for dcmtk version name */ #include /* for dcmjpeg decoders */ #include /* for dcmjpeg encoders */ #include /* for DJ_RPLossless */ #include /* for DJ_RPLossy */ #include /* for dcmimage JPEG plugin */ #include /* include to support color images */ #include #include #include #include #include #include #include "tls/tls.h" #include "tls/gtlslayer.h" #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif GIL::DICOM::Service::Service(const std::string& _ambitolog) : GNC::GCS::Thread(_ambitolog), ambitolog(_ambitolog), m_pNotificadorProgreso(NULL), m_acceptorPort(11111), m_timeout(15), m_Role(RT_Acceptor), m_TLS(false), m_UseUserPass(false), m_Validate(false), m_WantToStop(false) { GNC::GCS::ConfigurationController::Instance()->readIntGeneral("/GinkgoCore/PACS/Local", "Puerto", m_acceptorPort, 11112); this->m_pNet = NULL; this->m_pTLSLayer = NULL; this->m_rcvPDUSize = 16384; this->m_sendPDUSize = 16384; this->m_rcvTimeout = 60; this->m_pollTimeout = 100; this->m_ServiceThreadId = 0; } GIL::DICOM::Service::~Service() { // drop an existing association on shutdown GNC::GCS::ILocker lock(lockerRunning); m_pNotificadorProgreso = NULL; } OFCondition GIL::DICOM::Service::Start() { m_WantToStop = false; OFCondition cond; switch (m_Role) { case RT_Acceptor: cond = ASC_initializeNetwork(NET_ACCEPTOR, m_acceptorPort, m_timeout, &m_pNet); break; case RT_Requestor: cond = ASC_initializeNetwork(NET_REQUESTOR, 0, m_timeout, &m_pNet); break; case RT_AcceptorRequestor: cond = ASC_initializeNetwork(NET_ACCEPTORREQUESTOR, m_acceptorPort, m_timeout, &m_pNet); break; default: return EC_IllegalParameter; } if (cond.bad()) { LOG_ERROR(ambitolog, "Unable to initialize network, check port " << m_acceptorPort << " is not in use" ); return cond; } if (m_pTLSLayer != NULL) { delete m_pTLSLayer; } if (m_TLS) { m_pTLSLayer = new GTLSTransportLayer(DICOM_APPLICATION_REQUESTOR, NULL); if (m_pTLSLayer == NULL) { LOG_ERROR(ambitolog, _Std("Unable to create TLS transport layer")); //return 1; return EC_IllegalParameter; } m_pTLSLayer->setCertificateFromString(GetCliCert()); m_pTLSLayer->setPrivateKeyFromString(GetCliKey()); if (! m_pTLSLayer->checkPrivateKeyMatchesCertificate()) { LOG_ERROR(ambitolog, _Std("Private key and Certificate do not match")); return EC_IllegalParameter; } m_pTLSLayer->addSystemTrustedCertificates(); if (GetValidate()) { m_pTLSLayer->setCertificateVerification(DCV_requireCertificate); } else { m_pTLSLayer->setCertificateVerification(DCV_ignoreCertificate); } /* if (opt_dhparam && ! (tLayer->setTempDHParameters(opt_dhparam))) { LOG_WARN(assoc->ambitolog, "unable to load temporary DH parameters. Ignoring"); } */ cond = ASC_setTransportLayer(m_pNet, m_pTLSLayer, 0); if (cond.bad()) { LOG_ERROR(ambitolog, _Std("Error setting TLS layer: ") << cond.text()); return EC_IllegalParameter; } } //TODO LEAK DICOM SERVICE m_ServiceThreadId = GNC::GCS::ThreadController::Launch(this, false); return EC_Normal; } void* GIL::DICOM::Service::Task() { OFCondition cond = EC_Normal; OFString temp_str; GNC::GCS::ILocker lock(lockerRunning); try { while (!m_WantToStop && cond.good()) { cond = acceptAssociation(); } cond = ASC_dropNetwork(&m_pNet); if (cond.bad()) { LOG_ERROR(ambitolog, DimseCondition::dump(temp_str, cond)); return NULL; } } catch (...) { LOG_ERROR("DicomService", "Dicom service terminated with exceptions"); } return 0; } OFCondition GIL::DICOM::Service::acceptAssociation() { T_ASC_Association *assoc = NULL; OFCondition cond; OFString sprofile; OFString temp_str; { GNC::GCS::ILocker lock(lockerRunning); cond = ASC_receiveAssociation(m_pNet, &assoc, m_rcvPDUSize, NULL, NULL, m_TLS, DUL_NOBLOCK, 1); } // if some kind of error occured, take care of it if (cond.bad()) { // If something distinct noassociationrequest was wrong we might have to dump an error message. if( cond != DUL_NOASSOCIATIONREQUEST ) { LOG_ERROR(ambitolog, _Std("Receiving Association failed: ") << DimseCondition::dump(temp_str, cond).c_str()); } // no matter what kind of error occurred, we need to do a cleanup goto cleanup; } { char buf[BUFSIZ]; LOG_INFO(ambitolog, _Std("Association received")); LOG_DEBUG(ambitolog, _Std("Parameters:") << std::endl << ASC_dumpParameters(temp_str, assoc->params, ASC_ASSOC_RQ).c_str()); const GIL::DICOM::SOPClassMap& scps = GIL::DICOM::Conformance::GetScpSOPClasses(); for (GIL::DICOM::SOPClassMap::const_iterator it = scps.begin(); cond.good() && it != scps.end(); ++it) { GIL::DICOM::ArrayHelper transfersyntaxes(scps.GetSupportedTransferSyntaxUIDs((*it).first)); const char* scuid = (*it).second.scUID.c_str(); cond = ASC_acceptContextsWithPreferredTransferSyntaxes(assoc->params, &scuid, 1, transfersyntaxes.array, transfersyntaxes.size); transfersyntaxes.free(); } if (cond.bad()) { LOG_ERROR(ambitolog, DimseCondition::dump(temp_str, cond).c_str()); goto cleanup; } // set our app title ASC_setAPTitles(assoc->params, NULL, NULL, m_localAET.c_str()); // acknowledge or reject this association cond = ASC_getApplicationContextName(assoc->params, buf); if ((cond.bad()) || strcmp(buf, UID_StandardApplicationContext) != 0) { // reject: the application context name is not supported T_ASC_RejectParameters rej = { ASC_RESULT_REJECTEDPERMANENT, ASC_SOURCE_SERVICEUSER, ASC_REASON_SU_APPCONTEXTNAMENOTSUPPORTED }; LOG_ERROR(ambitolog, _Std("Association Rejected: Bad Application Context Name: ") << buf); cond = ASC_rejectAssociation(assoc, &rej); if (cond.bad()) { LOG_DEBUG(ambitolog, DimseCondition::dump(temp_str, cond).c_str()); } goto cleanup; } else if (strlen(assoc->params->theirImplementationClassUID) == 0) { // reject: the no implementation Class UID provided T_ASC_RejectParameters rej = { ASC_RESULT_REJECTEDPERMANENT, ASC_SOURCE_SERVICEUSER, ASC_REASON_SU_NOREASON }; LOG_ERROR(ambitolog, _Std("Association Rejected: No Implementation Class UID provided") ); cond = ASC_rejectAssociation(assoc, &rej); if (cond.bad()) { LOG_DEBUG(ambitolog, DimseCondition::dump(temp_str, cond).c_str()); } goto cleanup; } else { cond = ASC_acknowledgeAssociation(assoc); if (cond.bad()) { LOG_ERROR(ambitolog, DimseCondition::dump(temp_str, cond).c_str()); goto cleanup; } LOG_DEBUG(ambitolog, _Std("Association Acknowledged (Max Send PDV: ") << assoc->sendPDVLength << _Std(")")); if (ASC_countAcceptedPresentationContexts(assoc->params) == 0) { LOG_WARN(ambitolog, _Std("No valid presentation contexts")); } // dump the presentation contexts which have been accepted/refused LOG_DEBUG(ambitolog, ASC_dumpParameters(temp_str, assoc->params, ASC_ASSOC_AC).c_str()); std::string cmdName; { std::ostringstream os; os << _Std("Association(dicom://") << assoc->params->DULparams.callingPresentationAddress << _Std("@") << assoc->params->DULparams.callingAPTitle << _Std(")"); cmdName = os.str(); } GADAPI::PACS::IncomingDicomAssociationCommandParams* pCmdParams = new GADAPI::PACS::IncomingDicomAssociationCommandParams(assoc); GNC::GCS::ICommandController::Instance()->ProcessAsync( cmdName, new GADAPI::PACS::IncomingDicomAssociationCommand(pCmdParams, cmdName), this); return cond; } } cleanup: cond = ASC_dropSCPAssociation(assoc); if (cond.bad()) { LOG_FATAL(ambitolog, DimseCondition::dump(temp_str, cond).c_str()); } cond = ASC_destroyAssociation(&assoc); if (cond.bad()) { LOG_FATAL(ambitolog, DimseCondition::dump(temp_str, cond).c_str()); } return cond; } void GIL::DICOM::Service::Stop() { GNC::GCS::ICommandController::Instance()->AbortarComandosDeOwner(this); m_WantToStop = true; GNC::GCS::ILocker lock(lockerRunning); if (m_pNet != NULL && m_pNet->network != NULL) { int sock = DUL_networkSocket(m_pNet->network); if (sock != -1) { #if defined(_WINDOWS) shutdown(sock, SD_BOTH); #else shutdown(sock, 2); #endif } } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomservice.h000066400000000000000000000120261314736454600246760ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include "helpers.h" #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif #include struct T_ASC_Network; class GTLSTransportLayer; class wxSemaphore; namespace GIL { namespace DICOM { class Service : public GNC::GCS::Thread { public: typedef enum RoleType { RT_Acceptor, RT_Requestor, RT_AcceptorRequestor } RoleType; std::string ambitolog; GNC::IProxyNotificadorProgreso* m_pNotificadorProgreso; /** Constructors */ Service(const std::string& ambitolog); virtual ~Service(); void Destroy(); OFCondition Start(); void Stop(); virtual void* Task(); OFCondition acceptAssociation(); /*Set notificador de progreso*/ void SetNotificadorProgreso(GNC::IProxyNotificadorProgreso* pNotificadorProgreso) { m_pNotificadorProgreso = pNotificadorProgreso; } bool NotificarProgreso(float progresoNormalizado, std::string& texto) { if(m_pNotificadorProgreso!=NULL) { return m_pNotificadorProgreso->NotificarProgreso(progresoNormalizado,texto); } return true; } /** Drop the association */ OFCondition Drop(OFCondition cond = EC_Normal); RoleType GetRole() const { return m_Role; } void SetRole(RoleType role) { m_Role = role; } void SetLocalAET(const std::string& localAET) { this->m_localAET = localAET; } const std::string& GetLocalAET() const { return m_localAET; } void SetAcceptorPort(unsigned short port) { m_acceptorPort = port; } unsigned short GetAcceptorPort() const { return m_acceptorPort; } void SetTimeout(int timeout) { m_timeout = timeout; } int GetTimeout() const { return m_timeout; } unsigned long GetTid() const { return m_ServiceThreadId; } void SetTLS(const std::string& CliCert, const std::string& CliKey, bool validate) { m_TLS = true; m_CliCert = CliCert; m_CliKey = CliKey; m_Validate = validate; } bool IsSecure() const { return m_TLS; } //http://support.dcmtk.org/wiki/dcmtk/howto/useridentitynegotiation void SetUserPass(const std::string& PacsUser, const std::string& PacsPass) { m_UseUserPass = true; m_pacsUser = PacsUser, m_pacsPass = PacsPass; } bool UseUserPass() { return m_UseUserPass; } const std::string& GetUser() { return m_pacsUser; } const std::string& GetPass() { return m_pacsPass; } const std::string& GetCliCert() const { return m_CliCert; } const std::string& GetCliKey() const { return m_CliKey; } bool GetValidate() const { return m_Validate; } protected: /** Protected data */ std::string m_localAET; int m_acceptorPort; int m_timeout; T_ASC_Network* m_pNet; GTLSTransportLayer* m_pTLSLayer; RoleType m_Role; GNC::GCS::ILockable lockerRunning; int m_rcvTimeout; int m_pollTimeout; int m_rcvPDUSize; int m_sendPDUSize; bool m_TLS; bool m_UseUserPass; std::string m_pacsUser; std::string m_pacsPass; std::string m_CliCert; std::string m_CliKey; bool m_Validate; unsigned long m_ServiceThreadId; std::atomic m_WantToStop; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomstoreassociation.cpp000066400000000000000000001700271314736454600271700ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #define LOGGER "C-STORE" #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif // For sime reason dcmtk-3.6.1-20150924 has an hiccup in // dcmth/oflog/ logger.h and logmacro.h // since they are not used we define the include guards here #define DCMTK_LOG4CPLUS_TRACELOGGER_H #define DCMTK_LOG4CPLUS_LOGGING_MACROS_HEADER_ #include "dicomstoreassociation.h" #include #include #include
    #include
    #include #include
    #include #include #include #include #include #include //#include #include #include #include //#include "cmdlnarg.h" #include #include /* for dcmtk version name */ #include /* for DICOM_APPLICATION_REQUESTOR */ #include /* for dcmZlibCompressionLevel */ #include /* for class DcmAssociationConfiguration */ #include /* for class DcmAssociationConfigurationFile */ #include /* for dcmjpeg encoders */ #include /* for dcmjpeg encoders */ #include /* for DcmRLEDecoderRegistration */ #include /* for DcmRLEEncoderRegistration */ #include #include #include #include #include "tls/tls.h" #include "tls/gtlslayer.h" #include #include "helpercompresion.h" #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif #include #include
    #include
    #include "helpers.h" #include #include /////////////////////-------------------------DEFINES--------------------///////////////// namespace GIL { namespace DICOM { /* default application titles */ #define APPLICATIONTITLE "GINKGO" #define PEERAPPLICATIONTITLE "DCM4CHEE" static OFBool opt_verbose = OFTrue; static OFBool opt_showPresentationContexts = OFTrue; static OFBool opt_debug = OFTrue; static OFBool opt_abortAssociation = OFFalse; static OFCmdUnsignedInt opt_maxReceivePDULength = ASC_DEFAULTMAXPDU; //static OFCmdUnsignedInt opt_maxSendPDULength = 0; static E_TransferSyntax opt_networkTransferSyntax = EXS_LittleEndianExplicit; //static OFBool opt_haltOnUnsuccessfulStore = OFTrue; static OFBool opt_haltOnUnsuccessfulStore = OFFalse; static OFBool unsuccessfulStoreEncountered = OFFalse; static std::string errorEncontrado; int lastStatusCode = STATUS_Success; static OFBool opt_proposeOnlyRequiredPresentationContexts = OFFalse; static OFBool opt_combineProposedTransferSyntaxes = OFFalse; static OFCmdUnsignedInt opt_repeatCount = 1; static OFCmdUnsignedInt opt_inventPatientCount = 25; static OFCmdUnsignedInt opt_inventStudyCount = 50; static OFCmdUnsignedInt opt_inventSeriesCount = 100; static OFBool opt_inventSOPInstanceInformation = OFFalse; static OFBool opt_correctUIDPadding = OFFalse; static OFString patientNamePrefix("OFFIS^TEST_PN_"); // PatientName is PN (maximum 16 chars) static OFString patientIDPrefix("PID_"); // PatientID is LO (maximum 64 chars) static OFString studyIDPrefix("SID_"); // StudyID is SH (maximum 16 chars) static OFString accessionNumberPrefix; // AccessionNumber is SH (maximum 16 chars) //static OFBool opt_secureConnection = OFFalse; /* default: no secure connection */ //static const char *opt_configFile = NULL; //static const char *opt_profileName = NULL; T_DIMSE_BlockingMode opt_blockMode = DIMSE_NONBLOCKING; int opt_dimse_timeout = 0; int opt_acse_timeout = 30; int opt_Quality = 100; //cancelacion typedef struct _StoreCallbackInfo { T_ASC_Association* assoc; } GetCallbackInfo; //progreso static GNC::IProxyNotificadorProgreso* m_pNotificadorProgreso = NULL; static std::string m_mensaje(""); typedef struct TMedida { time_t m_instante; int bytesDescargados; float oldTasa; TMedida() { m_instante = time(NULL); bytesDescargados = 0; oldTasa = 0.0f; } } TMedida; static TMedida m_medida; float TasaTransferencia(int bytesDescargados) { time_t nuevoInstante = time(NULL); const double tiempo = difftime(nuevoInstante,m_medida.m_instante); if(tiempo>0.15f) { if(bytesDescargados > m_medida.bytesDescargados) { const double bytesRecibidosPeriodo = bytesDescargados - m_medida.bytesDescargados; m_medida.oldTasa = ( ((float)bytesRecibidosPeriodo/1024.0f)/tiempo ); m_medida.bytesDescargados = bytesDescargados; m_medida.m_instante = nuevoInstante; } } return m_medida.oldTasa; } void ResetearMedida(bool clearTasa = false) { m_medida.bytesDescargados =-1; m_medida.m_instante = time(NULL); if(clearTasa) { m_medida.oldTasa=0.0f; } } static void errmsg(const std::string& mensaje, bool parar) { LOG_ERROR(LOGGER,mensaje); if(parar) { throw GIL::DICOM::PACSException(mensaje); } } /* static void errmsg(const OFString& message, bool parar) { std::string mensaje(message.c_str()); errmsg(mensaje,parar); } */ static OFBool isaListMember(OFList& lst, OFString& s) { OFListIterator(OFString) cur = lst.begin(); OFListIterator(OFString) end = lst.end(); OFBool found = OFFalse; while (cur != end && !found) { found = (s == *cur); ++cur; } return found; } static OFCondition addPresentationContext(T_ASC_Parameters *params, int presentationContextId, const OFString& abstractSyntax, const OFString& transferSyntax, T_ASC_SC_ROLE proposedRole = ASC_SC_ROLE_DEFAULT) { const char* c_p = transferSyntax.c_str(); OFCondition cond = ASC_addPresentationContext(params, presentationContextId, abstractSyntax.c_str(), &c_p, 1, proposedRole); return cond; } static OFCondition addPresentationContext(T_ASC_Parameters *params, int presentationContextId, const OFString& abstractSyntax, const OFList& transferSyntaxList, T_ASC_SC_ROLE proposedRole = ASC_SC_ROLE_DEFAULT) { // create an array of supported/possible transfer syntaxes const char** transferSyntaxes = new const char*[transferSyntaxList.size()]; int transferSyntaxCount = 0; OFListConstIterator(OFString) s_cur = transferSyntaxList.begin(); OFListConstIterator(OFString) s_end = transferSyntaxList.end(); while (s_cur != s_end) { transferSyntaxes[transferSyntaxCount++] = (*s_cur).c_str(); ++s_cur; } OFCondition cond = ASC_addPresentationContext(params, presentationContextId, abstractSyntax.c_str(), transferSyntaxes, transferSyntaxCount, proposedRole); delete[] transferSyntaxes; return cond; } static OFCondition addStoragePresentationContexts(T_ASC_Parameters *params, OFList& sopClasses) { /* * Each SOP Class will be proposed in two presentation contexts (unless * the opt_combineProposedTransferSyntaxes global variable is true). * The command line specified a preferred transfer syntax to use. * This prefered transfer syntax will be proposed in one * presentation context and a set of alternative (fallback) transfer * syntaxes will be proposed in a different presentation context. * * Generally, we prefer to use Explicitly encoded transfer syntaxes * and if running on a Little Endian machine we prefer * LittleEndianExplicitTransferSyntax to BigEndianTransferSyntax. * Some SCP implementations will just select the first transfer * syntax they support (this is not part of the standard) so * organise the proposed transfer syntaxes to take advantage * of such behaviour. */ // Which transfer syntax was preferred on the command line OFString preferredTransferSyntax; if (opt_networkTransferSyntax == EXS_Unknown) { /* gLocalByteOrder is defined in dcxfer.h */ if (gLocalByteOrder == EBO_LittleEndian) { /* we are on a little endian machine */ preferredTransferSyntax = UID_LittleEndianExplicitTransferSyntax; } else { /* we are on a big endian machine */ preferredTransferSyntax = UID_BigEndianExplicitTransferSyntax; } } else { DcmXfer xfer(opt_networkTransferSyntax); preferredTransferSyntax = xfer.getXferID(); } OFListIterator(OFString) s_cur; OFListIterator(OFString) s_end; OFList fallbackSyntaxes; fallbackSyntaxes.push_back(UID_LittleEndianExplicitTransferSyntax); fallbackSyntaxes.push_back(UID_BigEndianExplicitTransferSyntax); fallbackSyntaxes.push_back(UID_LittleEndianImplicitTransferSyntax); // Remove the preferred syntax from the fallback list fallbackSyntaxes.remove(preferredTransferSyntax); // If little endian implicit is preferred then we don't need any fallback syntaxes // because it is the default transfer syntax and all applications must support it. if (opt_networkTransferSyntax == EXS_LittleEndianImplicit) { fallbackSyntaxes.clear(); } // created a list of transfer syntaxes combined from the preferred and fallback syntaxes OFList combinedSyntaxes; s_cur = fallbackSyntaxes.begin(); s_end = fallbackSyntaxes.end(); combinedSyntaxes.push_back(preferredTransferSyntax); while (s_cur != s_end) { if (!isaListMember(combinedSyntaxes, *s_cur)) combinedSyntaxes.push_back(*s_cur); ++s_cur; } if (!opt_proposeOnlyRequiredPresentationContexts) { // add the (short list of) known storage sop classes to the list // the array of Storage SOP Class UIDs comes from dcuid.h //FIXME: ÑAPA HECHA PARA QUE PUEDA SUBIR VIDEOS(EL -1 Y EL PUSH DE DESPUES) for (int i=0; i sops; s_cur = sopClasses.begin(); s_end = sopClasses.end(); while (s_cur != s_end) { if (!isaListMember(sops, *s_cur)) { sops.push_back(*s_cur); } ++s_cur; } // add a presentations context for each sop class / transfer syntax pair OFCondition cond = EC_Normal; int pid = 1; // presentation context id s_cur = sops.begin(); s_end = sops.end(); while (s_cur != s_end && cond.good()) { if (pid > 255) { LOG_WARN("C-GET", "Too many PresentationContexts setted"); return cond; } if (opt_combineProposedTransferSyntaxes) { cond = addPresentationContext(params, pid, *s_cur, combinedSyntaxes); pid += 2; /* only odd presentation context id's */ } else { // sop class with preferred transfer syntax cond = addPresentationContext(params, pid, *s_cur, preferredTransferSyntax); pid += 2; /* only odd presentation context id's */ if (fallbackSyntaxes.size() > 0) { if (pid > 255) { //errmsg("Demasiados contextos de presentacion"); return ASC_BADPRESENTATIONCONTEXTID; } // sop class with fallback transfer syntax cond = addPresentationContext(params, pid, *s_cur, fallbackSyntaxes); pid += 2; /* only odd presentation context id's */ } } ++s_cur; } return cond; } static OFString intToString(int i) { char numbuf[32]; sprintf(numbuf, "%d", i); return numbuf; } static int secondsSince1970() { time_t t = time(NULL); return (int)t; } static OFBool updateStringAttributeValue(DcmItem* dataset, const DcmTagKey& key, OFString& value) { DcmStack stack; DcmTag tag(key); OFCondition cond = EC_Normal; cond = dataset->search(key, stack, ESM_fromHere, OFFalse); if (cond != EC_Normal) { LOG_DEBUG(LOGGER,"error: updateStringAttributeValue: cannot find: " << tag.getTagName() << " " << key << ": "<< cond.text()); return OFFalse; } DcmElement* elem = (DcmElement*) stack.top(); DcmVR vr(elem->ident()); if (elem->getLength() > vr.getMaxValueLength()) { LOG_DEBUG(LOGGER,"error: updateStringAttributeValue: INTERNAL ERROR: " << tag.getTagName()<< " " << key << ": value too large (max "<< vr.getMaxValueLength() << ") for " << vr.getVRName() << " value: " << value ); return OFFalse; } cond = elem->putOFStringArray(value); if (cond != EC_Normal) { LOG_DEBUG(LOGGER, "error: updateStringAttributeValue: cannot put string in attribute: " << tag.getTagName()<< " " << key << ": "<< cond.text()); return OFFalse; } return OFTrue; } static void replaceSOPInstanceInformation(DcmDataset* dataset) { static OFCmdUnsignedInt patientCounter = 0; static OFCmdUnsignedInt studyCounter = 0; static OFCmdUnsignedInt seriesCounter = 0; static OFCmdUnsignedInt imageCounter = 0; static OFString seriesInstanceUID; static OFString seriesNumber; static OFString studyInstanceUID; static OFString studyID; static OFString accessionNumber; static OFString patientID; static OFString patientName; if (seriesInstanceUID.length() == 0) seriesInstanceUID = GIL::DICOM::MakeUID(GIL::DICOM::GUID_SeriesRoot, (int)seriesCounter).c_str(); if (seriesNumber.length() == 0) seriesNumber = intToString((int)seriesCounter); if (studyInstanceUID.length() == 0) studyInstanceUID = GIL::DICOM::MakeUID(GIL::DICOM::GUID_StudyRoot, (int)studyCounter).c_str(); if (studyID.length() == 0) studyID = studyIDPrefix + intToString((int)secondsSince1970()) + intToString((int)studyCounter); if (accessionNumber.length() == 0) accessionNumber = accessionNumberPrefix + intToString(secondsSince1970()) + intToString((int)studyCounter); if (patientID.length() == 0) patientID = patientIDPrefix + intToString(secondsSince1970()) + intToString((int)patientCounter); if (patientName.length() == 0) patientName = patientNamePrefix + intToString(secondsSince1970()) + intToString((int)patientCounter); if (imageCounter >= opt_inventSeriesCount) { imageCounter = 0; seriesCounter++; seriesInstanceUID = GIL::DICOM::MakeUID(GIL::DICOM::GUID_SeriesRoot, (int)seriesCounter).c_str(); seriesNumber = intToString((int)seriesCounter); } if (seriesCounter >= opt_inventStudyCount) { seriesCounter = 0; studyCounter++; studyInstanceUID = GIL::DICOM::MakeUID(GIL::DICOM::GUID_StudyRoot, (int)studyCounter).c_str(); studyID = studyIDPrefix + intToString(secondsSince1970()) + intToString((int)studyCounter); accessionNumber = accessionNumberPrefix + intToString(secondsSince1970()) + intToString((int)studyCounter); } if (studyCounter >= opt_inventPatientCount) { // we create as many patients as necessary */ studyCounter = 0; patientCounter++; patientID = patientIDPrefix + intToString(secondsSince1970()) + intToString((int)patientCounter); patientName = patientNamePrefix + intToString(secondsSince1970()) + intToString((int)patientCounter); } OFString sopInstanceUID = GIL::DICOM::MakeUID(GIL::DICOM::GUID_InstanceRoot, (int)imageCounter).c_str(); OFString imageNumber = intToString((int)imageCounter); if (opt_debug) { LOG_DEBUG(LOGGER, "Inventing Identifying Information (" << "pa" << patientCounter << ", st" << studyCounter << ", se" << seriesCounter << ", im" << imageCounter << "): " << std::endl << " PatientName=" << patientName << std::endl << " PatientID=" << patientID << std::endl << " StudyInstanceUID=" << studyInstanceUID << std::endl << " StudyID=" << studyID << std::endl << " SeriesInstanceUID=" << seriesInstanceUID << std::endl << " SeriesNumber=" << seriesNumber << std::endl << " SOPInstanceUID=" << sopInstanceUID << std::endl << " ImageNumber=" << imageNumber << std::endl); } updateStringAttributeValue(dataset, DCM_PatientName, patientName); updateStringAttributeValue(dataset, DCM_PatientID, patientID); updateStringAttributeValue(dataset, DCM_StudyInstanceUID, studyInstanceUID); updateStringAttributeValue(dataset, DCM_StudyID, studyID); updateStringAttributeValue(dataset, DCM_SeriesInstanceUID, seriesInstanceUID); updateStringAttributeValue(dataset, DCM_SeriesNumber, seriesNumber); updateStringAttributeValue(dataset, DCM_SOPInstanceUID, sopInstanceUID); updateStringAttributeValue(dataset, DCM_InstanceNumber, imageNumber); imageCounter++; } // Conversión de transferencias // coverity[PASS_BY_VALUE] (GW: assuming this was done intentional) static OFBool decompressFile(DcmFileFormat fileformat, const char * fname, const char *outfname) { OFBool status = true; OFCondition cond; DcmXfer filexfer(fileformat.getDataset()->getOriginalXfer()); if (filexfer.getXfer() == EXS_JPEG2000LosslessOnly || filexfer.getXfer() == EXS_JPEG2000) { status = DecompressJPEG2000(fname, outfname); LOG_WARN(LOGGER,"The file is being uncompressed from JPG2000. Some tags could be lost"); } else { DcmDataset *dataset = fileformat.getDataset(); // decompress data set if compressed dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL); // check if everything went well if (dataset->canWriteXfer(EXS_LittleEndianExplicit)) { fileformat.loadAllDataIntoMemory(); unlink( outfname); cond = fileformat.saveFile( outfname, EXS_LittleEndianExplicit); status = (cond.good()) ? true : false; } else status = false; } return status; } // coverity[PASS_BY_VALUE] (GW: assuming this was done intentional) static OFBool compressFile(DcmFileFormat fileformat, const char * fname, const char *outfname) { OFCondition cond; OFBool status = true; DcmXfer filexfer(fileformat.getDataset()->getOriginalXfer()); if (opt_networkTransferSyntax == EXS_JPEG2000) { status = CompressJPEG2000(fname, outfname); LOG_WARN(LOGGER,"Se ha comprimido a JPEG2000, podrían perderse algunos tags"); } else if (opt_networkTransferSyntax == EXS_JPEG2000LosslessOnly) { status = CompressJPEG2000(fname, outfname); LOG_WARN(LOGGER,"Se ha comprimido a JPEG2000, podrían perderse algunos tags"); } else { DcmDataset *dataset = fileformat.getDataset(); DcmItem *metaInfo = fileformat.getMetaInfo(); DcmRepresentationParameter *params; DJ_RPLossy lossyParams(opt_Quality); DcmRLERepresentationParameter rleParams; DJ_RPLossless losslessParams; // codec parameters, we use the defaults if (opt_networkTransferSyntax == EXS_JPEGProcess14SV1) params = &losslessParams; else if (opt_networkTransferSyntax == EXS_JPEGProcess2_4) params = &lossyParams; else if (opt_networkTransferSyntax == EXS_RLELossless) params = &rleParams; else params = &losslessParams; // this causes the lossless JPEG version of the dataset to be created dataset->chooseRepresentation(opt_networkTransferSyntax, params); // check if everything went well if (dataset->canWriteXfer(opt_networkTransferSyntax)) { // force the meta-header UIDs to be re-generated when storing the file // since the UIDs in the data set may have changed delete metaInfo->remove(DCM_MediaStorageSOPClassUID); delete metaInfo->remove(DCM_MediaStorageSOPInstanceUID); // store in lossless JPEG format fileformat.loadAllDataIntoMemory(); unlink( outfname); cond = fileformat.saveFile( outfname, opt_networkTransferSyntax); status = (cond.good()) ? true : false; } else { status = false; } } return status; } static long seed = 0; static OFCondition storeSCU(T_ASC_Association * assoc, const char *fname) /* * This function will read all the information from the given file, * figure out a corresponding presentation context which will be used * to transmit the information over the network to the SCP, and it * will finally initiate the transmission of all data to the SCP. * * Parameters: * assoc - [in] The association (network connection to another DICOM application). * fname - [in] Name of the file which shall be processed. */ { DIC_US msgId = assoc->nextMsgID++; T_ASC_PresentationContextID presId; T_DIMSE_C_StoreRQ req; T_DIMSE_C_StoreRSP rsp; DIC_UI sopClass; DIC_UI sopInstance; std::ostringstream outfnameStringStream; _StoreCallbackInfo storeCallbackData; outfnameStringStream << GNC::Entorno::Instance()->GetGinkgoTempDir().c_str() << (char) wxFileName::GetPathSeparator(wxPATH_NATIVE) << seed++ << ".dcm"; std::string outfname = outfnameStringStream.str(); LOG_DEBUG(LOGGER, "tempfile: [" << outfname.c_str() << "]" ); //sprintf( outfname, "%s%ld.dcm", "D:\\temp\\", seed++); unsuccessfulStoreEncountered = OFTrue; // assumption if (opt_debug) { LOG_DEBUG(LOGGER, "--------------------------\nSending file: "<< fname); } /* read information from file. After the call to DcmFileFormat::loadFile(...) the information */ /* which is encapsulated in the file will be available through the DcmFileFormat object. */ /* In detail, it will be available through calls to DcmFileFormat::getMetaInfo() (for */ /* meta header information) and DcmFileFormat::getDataset() (for data set information). */ DcmFileFormat dcmff; OFCondition cond = dcmff.loadFile(fname); /* NO LO PONEMOS A FUEGO COMPRIMIMOS Y DESCOMPRIMIMOS opt_networkTransferSyntax = dcmff.getDataset()->getOriginalXfer(); */ /* figure out if an error occured while the file was read*/ if (cond.bad()) { LOG_DEBUG(LOGGER, "Bad DICOM file " << fname); return cond; } /* if required, invent new SOP instance information for the current data set (user option) */ if (opt_inventSOPInstanceInformation) { replaceSOPInstanceInformation(dcmff.getDataset()); } /* figure out which SOP class and SOP instance is encapsulated in the file */ if (!DU_findSOPClassAndInstanceInDataSet(dcmff.getDataset(), sopClass, sopInstance, opt_correctUIDPadding)) { LOG_DEBUG(LOGGER, "No SOP Class & Instance UIDs in file " << fname); return DIMSE_BADDATA; } /* figure out which of the accepted presentation contexts should be used */ DcmXfer filexfer(dcmff.getDataset()->getOriginalXfer()); /* special case: if the file uses an unencapsulated transfer syntax (uncompressed * or deflated explicit VR) and we prefer deflated explicit VR, then try * to find a presentation context for deflated explicit VR first. */ if (filexfer.isNotEncapsulated() && opt_networkTransferSyntax == EXS_DeflatedLittleEndianExplicit) { filexfer = EXS_DeflatedLittleEndianExplicit; } /************* do on the fly conversion here*********************/ //printf("on the fly conversion\n"); //we have a valid presentation ID,.Chaeck and see if file is consistent with it DcmXfer preferredXfer(opt_networkTransferSyntax); OFBool status = false; presId = ASC_findAcceptedPresentationContextID(assoc, sopClass, preferredXfer.getXferID()); T_ASC_PresentationContext pc; ASC_findAcceptedPresentationContext(assoc->params, presId, &pc); DcmXfer proposedTransfer(pc.acceptedTransferSyntax); status = true; if (presId != 0) { if (filexfer.isNotEncapsulated() && proposedTransfer.isNotEncapsulated()) { // do nothing status = true; } else if (filexfer.isEncapsulated() && proposedTransfer.isNotEncapsulated()) { status = decompressFile(dcmff, fname, outfname.c_str()); } else if (filexfer.isNotEncapsulated() && proposedTransfer.isEncapsulated()) { status = compressFile(dcmff, fname, outfname.c_str()); } else if (filexfer.getXfer() != opt_networkTransferSyntax) { // The file is already compressed, we will re-compress the file..... //E_TransferSyntax fileTS = filexfer.getXfer(); if( (filexfer.getXfer() == EXS_JPEG2000LosslessOnly && preferredXfer.getXfer() == EXS_JPEG2000) || (filexfer.getXfer() == EXS_JPEG2000 && preferredXfer.getXfer() == EXS_JPEG2000LosslessOnly)) { } else { LOG_WARN(LOGGER,"Recompressing files that are already compressed, you should optimize your ts parameters to avoid this: presentation for syntax:" << dcmFindNameOfUID(filexfer.getXferID()) << " -> " << dcmFindNameOfUID(preferredXfer.getXferID())); } status = compressFile(dcmff, fname, outfname.c_str()); } } else status = false; if (status) { cond = dcmff.loadFile( outfname.c_str()); filexfer = dcmff.getDataset()->getOriginalXfer(); /* figure out which SOP class and SOP instance is encapsulated in the file */ if (!DU_findSOPClassAndInstanceInDataSet(dcmff.getDataset(), sopClass, sopInstance, opt_correctUIDPadding)) { LOG_DEBUG(LOGGER, "No SOP Class & Instance UIDs in file " << outfname); return DIMSE_BADDATA; } fname = outfname.c_str(); } else { const char *modalityName = dcmSOPClassUIDToModality(sopClass); if (!modalityName) modalityName = dcmFindNameOfUID(sopClass); if (!modalityName) modalityName = "unknown SOP class"; LOG_DEBUG(LOGGER, "No presentation context for: " << modalityName << " "<< sopClass); std::ostringstream ostr; ostr << _Std("Ginkgo CADx is unable to compress from ") << filexfer.getXferName() << _Std(" to ") << proposedTransfer.getXferName(); errmsg(ostr.str(),true); return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } if (filexfer.getXfer() != EXS_Unknown) presId = ASC_findAcceptedPresentationContextID(assoc, sopClass, filexfer.getXferID()); else presId = ASC_findAcceptedPresentationContextID(assoc, sopClass); if (presId == 0) { const char *modalityName = dcmSOPClassUIDToModality(sopClass); if (!modalityName) modalityName = dcmFindNameOfUID(sopClass); if (!modalityName) modalityName = "unknown SOP class"; LOG_DEBUG(LOGGER, "No presentation context for: " << modalityName << " "<< sopClass); return DIMSE_NOVALIDPRESENTATIONCONTEXTID; } /* if required, dump general information concerning transfer syntaxes */ if (opt_verbose) { DcmXfer fileTransfer(dcmff.getDataset()->getOriginalXfer()); T_ASC_PresentationContext pc; ASC_findAcceptedPresentationContext(assoc->params, presId, &pc); DcmXfer netTransfer(pc.acceptedTransferSyntax); LOG_DEBUG(LOGGER,"Transfer " << dcmFindNameOfUID(fileTransfer.getXferID()) << " -> " << dcmFindNameOfUID(netTransfer.getXferID())); } /* prepare the transmission of data */ bzero((char*)&req, sizeof(req)); req.MessageID = msgId; strcpy(req.AffectedSOPClassUID, sopClass); strcpy(req.AffectedSOPInstanceUID, sopInstance); req.DataSetType = DIMSE_DATASET_PRESENT; req.Priority = DIMSE_PRIORITY_LOW; /* if required, dump some more general information */ if (opt_debug) { LOG_DEBUG(LOGGER,"Store SCU RQ: MsgID (" <print(os); os << ": " << cond.text(); errorEncontrado = os.str(); LOG_ERROR(LOGGER, errorEncontrado); } delete statusDetail; statusDetail = NULL; } /* remember the response's status for later transmissions of data */ lastStatusCode = rsp.DimseStatus; /* dump some more general information */ if (cond == EC_Normal) { if (opt_debug) { LOG_DEBUG(LOGGER,"Fichero Subido Correctamente " << fname); } } else { LOG_DEBUG(LOGGER,"Store failed: " << fname); DimseCondition::dump(cond); } if( status) { // We created a temporary file. Delete it now. unlink( outfname.c_str()); } /* return */ return cond; } static OFCondition cstore(T_ASC_Association * assoc, const OFString& fname) /* * This function will process the given file as often as is specified by opt_repeatCount. * "Process" in this case means "read file, send C-STORE-RQ, receive C-STORE-RSP". * * Parameters: * assoc - [in] The association (network connection to another DICOM application). * fname - [in] Name of the file which shall be processed. */ { OFCondition cond = EC_Normal; /* opt_repeatCount specifies how many times a certain file shall be processed */ int n = (int)opt_repeatCount; /* as long as no error occured and the counter does not equal 0 */ while ((cond.good()) && n-- && !(opt_haltOnUnsuccessfulStore && unsuccessfulStoreEncountered)) { /* process file (read file, send C-STORE-RQ, receive C-STORE-RSP) */ cond = storeSCU(assoc, fname.c_str()); } // we don't want to return an error code if --no-halt was specified. if (! opt_haltOnUnsuccessfulStore) { cond = EC_Normal; } /* return result value */ return cond; } DicomStoreAssociation::DicomStoreAssociation() : m_TLS(false), m_UseUserPass(false), m_Validate(false), assoc(NULL), net(NULL) { } DicomStoreAssociation::~DicomStoreAssociation() { //no limpiamos no sea que los haya registrado otro que no seamos nosotros!!! FreeMemory(); } void DicomStoreAssociation::Store(ListaRutas listaFicheros, const GNC::GCS::Ptr& server, std::string nombreAETLocal,GNC::IProxyNotificadorProgreso* pNotificador, GIL::DICOM::TipoTransferSyntaxEnvio transferSyntax) { if (listaFicheros.size() == 0) return; m_pNotificadorProgreso = pNotificador; std::string nombreAETPar = server->AET; opt_maxReceivePDULength = server->PDU; std::string host = server->HostName; unsigned int puerto = server->Port; //TIMEOUT 60 SEGUNDOS unsigned int dicomtimeout = 60; bool _shouldAbort=false; DcmFileFormat fileformat; errorEncontrado =""; E_TransferSyntax transferSyntaxFichero; { DcmFileFormat dcmff; OFCondition cond; cond = dcmff.loadFile(listaFicheros.front().c_str(),EXS_Unknown,EGL_noChange,DCM_TagInfoLength); //dcmff.loadAllDataIntoMemory(); if (cond.bad()) { errmsg(std::string("no se ha podido leer el dicom"),true); } else { DcmElement* elemento; cond = dcmff.getDataset()->findAndGetElement(DcmTagKey(0x0010,0x0020),elemento); if(cond.bad()) { std::stringstream strStream; strStream << "Es necesario que este establecido el nombre y el ID del paciente"; errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } cond = dcmff.getDataset()->findAndGetElement(DcmTagKey(0x0010,0x0010),elemento); if(cond.bad()) { std::stringstream strStream; strStream << "Es necesario que este establecido el nombre y el ID del paciente"; errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } } transferSyntaxFichero = dcmff.getDataset()->getOriginalXfer(); } //se pilla el nombre del estudio y dlpaciente... ahora se comienza OFCondition cond; const char *opt_peer = NULL; OFCmdUnsignedInt opt_port = 104; const char *opt_peerTitle = PEERAPPLICATIONTITLE; const char *opt_ourTitle = APPLICATIONTITLE; if(nombreAETPar.size()>0) { opt_peerTitle = nombreAETPar.c_str(); } if(nombreAETLocal.size()>0) { opt_ourTitle = nombreAETLocal.c_str(); } OFList fileNameList; // list of files to transfer to SCP OFList sopClassUIDList; // the list of sop classes T_ASC_Parameters *params; DIC_NODENAME localHost; DIC_NODENAME peerHost; DcmAssociationConfiguration asccfg; // handler for association configuration profiles opt_peer = host.c_str(); opt_port = puerto; //verbose option set to true for now opt_showPresentationContexts = OFFalse; //debug code off for now opt_debug = GNC::GCS::IControladorLog::Instance()->GetActiveLogLevel() == GNC::GCS::IControladorLog::DebugLog; switch (transferSyntax) { case SendExplicitLittleEndian: opt_networkTransferSyntax = EXS_LittleEndianExplicit; break; case SendJPEG2000Lossless: opt_networkTransferSyntax = EXS_JPEG2000LosslessOnly; opt_Quality = 0; break; case SendJPEG2000Lossy10: opt_networkTransferSyntax = EXS_JPEG2000; opt_Quality = 1; break; case SendJPEG2000Lossy20: opt_networkTransferSyntax = EXS_JPEG2000; opt_Quality = 2; break; case SendJPEG2000Lossy50: opt_networkTransferSyntax = EXS_JPEG2000; opt_Quality = 3; break; case SendJPEGLossless: opt_networkTransferSyntax = EXS_JPEGProcess14SV1; break; case SendJPEGLossy9: opt_networkTransferSyntax = EXS_JPEGProcess2_4; opt_Quality = 90; break; case SendJPEGLossy8: opt_networkTransferSyntax = EXS_JPEGProcess2_4; opt_Quality = 80; break; case SendJPEGLossy7: opt_networkTransferSyntax = EXS_JPEGProcess2_4; opt_Quality = 70; break; case SendImplicitLittleEndian: opt_networkTransferSyntax = EXS_LittleEndianImplicit; break; /* case SendRLE: opt_networkTransferSyntax = EXS_RLELossless; break; case SendExplicitBigEndian: opt_networkTransferSyntax = EXS_BigEndianExplicit; break; case SendBZip: opt_networkTransferSyntax = EXS_DeflatedLittleEndianExplicit; break;*/ case SendDefault: opt_networkTransferSyntax = transferSyntaxFichero; //FIXME esta ñapa es necesaria porque el pacs de IRE no acepta baseline if (GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","force_lossless")) { if (opt_networkTransferSyntax == EXS_JPEGProcess1) { opt_networkTransferSyntax = EXS_JPEGProcess14SV1; } } // break; } opt_proposeOnlyRequiredPresentationContexts = OFFalse; dcmEnableUnknownVRGeneration.set(OFTrue); dcmEnableUnlimitedTextVRGeneration.set(OFTrue); // enable-new-vr dcmEnableUnknownVRGeneration.set(OFTrue); dcmEnableUnlimitedTextVRGeneration.set(OFTrue); //Timeout OFCmdSignedInt opt_timeout = dicomtimeout; dcmConnectionTimeout.set((Sint32) opt_timeout); //acse-timeout opt_acse_timeout = OFstatic_cast(int, opt_timeout); //dimse-timeout opt_dimse_timeout = OFstatic_cast(int, opt_timeout); opt_blockMode = DIMSE_NONBLOCKING; int paramCount = listaFicheros.size(); const char *currentFilename = NULL; char sopClassUID[128]; char sopInstanceUID[128]; OFBool ignoreName; ListaRutas::iterator it = listaFicheros.begin(); for (int i=0; i < paramCount; i++, ++it) { ignoreName = OFFalse; currentFilename = (*it).c_str(); if (access(currentFilename, R_OK) < 0) { std::stringstream strStream; strStream << "No se puede acceder al fichero: " << currentFilename; errmsg(strStream.str(), opt_haltOnUnsuccessfulStore); LOG_ERROR("C-STORE", strStream.str().c_str()); } else { if (!DU_findSOPClassAndInstanceInFile(currentFilename, sopClassUID, sopInstanceUID)) { ignoreName = OFTrue; std::stringstream strStream; strStream << "SOP class (o instance) no establecido en fichero: " << currentFilename; errmsg(strStream.str(), opt_haltOnUnsuccessfulStore); LOG_ERROR("C-STORE", strStream.str().c_str()); } else if (!dcmIsaStorageSOPClassUID(sopClassUID)) { ignoreName = OFTrue; std::stringstream strStream; strStream << "Storage sop class desconocido en fichero: " << currentFilename << ": " << sopClassUID; errmsg(strStream.str(), opt_haltOnUnsuccessfulStore); LOG_ERROR("C-STORE", strStream.str().c_str()); } else { bool found = false; for (OFIterator itsc =sopClassUIDList.begin(); itsc != sopClassUIDList.end(); ++itsc) { if ((*itsc).compare(sopClassUID) == 0) { found = true; break; } } if (!found) { sopClassUIDList.push_back(sopClassUID); } } if (!ignoreName) fileNameList.push_back(currentFilename); } } /* make sure data dictionary is loaded */ if (!dcmDataDict.isDictionaryLoaded()) { LOG_WARN(LOGGER, "Warning: no data dictionary loaded, check environment variable"); } /* initialize network, i.e. create an instance of T_ASC_Network*. */ cond = ASC_initializeNetwork(NET_REQUESTOR, puerto, opt_acse_timeout, &net); if (cond.bad()) { DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) ASC_initializeNetwork; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); LOG_ERROR("C-STORE", strStream.str().c_str()); errmsg(strStream.str(),true); } GTLSTransportLayer *tLayer = NULL; if (IsSecure()) { tLayer = new GTLSTransportLayer(DICOM_APPLICATION_REQUESTOR, NULL); if (tLayer == NULL) { DimseCondition::dump(cond); std::stringstream strStream; strStream << "Unable to create TLS transport layer"; errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } tLayer->setCertificateFromString(GetCliCert()); tLayer->setPrivateKeyFromString(GetCliKey()); if (! tLayer->checkPrivateKeyMatchesCertificate()) { std::stringstream strStream; strStream << "private key and certificate do not match"; errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } tLayer->addSystemTrustedCertificates(); if (GetValidate()) { tLayer->setCertificateVerification(DCV_requireCertificate); } else { tLayer->setCertificateVerification(DCV_ignoreCertificate); } /* if (opt_dhparam && ! (tLayer->setTempDHParameters(opt_dhparam))) { LOG_WARN(assoc->ambitolog, "unable to load temporary DH parameters. Ignoring"); } */ cond = ASC_setTransportLayer(net, tLayer, 0); if (cond.bad()) { LOG_ERROR("C-STORE", "Error al insertar capa de transporte segura: " << cond.text()); } } /* initialize asscociation parameters, i.e. create an instance of T_ASC_Parameters*. */ cond = ASC_createAssociationParameters(¶ms, opt_maxReceivePDULength); DimseCondition::dump(cond); if (cond.bad()) { DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) ASC_createAssociationParameters; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } if (UseUserPass()) { cond = ASC_setIdentRQUserPassword(params, GetUser().c_str(), GetPass().c_str()); DimseCondition::dump(cond); } if (cond.bad()) { std::stringstream strStream; strStream << "DICOM Network Failure (storescu) ASC_createAssociationParameters; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } /* sets this application's title and the called application's title in the params */ /* structure. The default values to be set here are "STORESCU" and "ANY-SCP". */ ASC_setAPTitles(params, opt_ourTitle, opt_peerTitle, NULL); /* Set the transport layer type (type of network connection) in the params */ /* strucutre. The default is an insecure connection; where OpenSSL is */ /* available the user is able to request an encrypted,secure connection. */ cond = ASC_setTransportLayerType(params, IsSecure()); if (cond.bad()) { DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) ASC_setTransportLayerType; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } /* Figure out the presentation addresses and copy the */ /* corresponding values into the association parameters.*/ gethostname(localHost, sizeof(localHost) - 1); sprintf(peerHost, "%s:%d", opt_peer, (int)opt_port); //NSLog(@"peer host: %s", peerHost); cond = ASC_setPresentationAddresses(params, localHost, peerHost); if (cond.bad()) { DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) ASC_setPresentationAddresses; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } /* Set the presentation contexts which will be negotiated */ /* when the network connection will be established */ cond = addStoragePresentationContexts(params, sopClassUIDList); if (cond.bad()) { DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) addStoragePresentationContexts; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } /* dump presentation contexts if required */ if(opt_debug) { std::stringstream strStream; strStream << "Request Parameters:\n"; ASC_dumpParameters(params, strStream); LOG_DEBUG(LOGGER,strStream.str()); } /* create association, i.e. try to establish a network connection to another */ /* DICOM application. This call creates an instance of T_ASC_Association*. */ LOG_DEBUG(LOGGER,"Requesting Association"); cond = ASC_requestAssociation(net, params, &assoc); if (cond.bad()) { if (cond == DUL_ASSOCIATIONREJECTED) { T_ASC_RejectParameters rej; ASC_getRejectParameters(params, &rej); ASC_printRejectParameters(stderr, &rej); DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) ASC_requestAssociation[DUL_ASSOCIATIONREJECTED]; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } else { DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) ASC_requestAssociation[Unknown]; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } } /* dump the connection parameters if in debug mode*/ if(opt_debug) { std::stringstream strStream; strStream << "Connection Parameters:\n"; ASC_dumpConnectionParameters(assoc, strStream); LOG_DEBUG(LOGGER,strStream.str()); } /* dump the presentation contexts which have been accepted/refused */ if(opt_debug) { std::stringstream strStream; strStream << "Association Parameters Negotiated:\n"; ASC_dumpParameters(params, strStream); LOG_DEBUG(LOGGER,strStream.str()); } /* count the presentation contexts which have been accepted by the SCP */ /* If there are none, finish the execution */ if (ASC_countAcceptedPresentationContexts(params) == 0) { std::stringstream strStream; strStream << "DICOM Network Failure (storescu) Contextos de presentacion no aceptados"; errmsg(strStream.str(),true); LOG_WARN("C-STORE", strStream.str().c_str()); } /* dump general information concerning the establishment of the network connection if required */ if (opt_debug) { std::stringstream strStream; strStream << "Association Accepted (Max Send PDV: "<< assoc->sendPDVLength; LOG_DEBUG(LOGGER,strStream.str()); } /* do the real work, i.e. for all files which were specified in the */ /* command line, transmit the encapsulated DICOM objects to the SCP. */ cond = EC_Normal; OFListIterator(OFString) iter = fileNameList.begin(); OFListIterator(OFString) enditer = fileNameList.end(); int _numberSent=0; //int _numberOfFiles =0; //int _numberErrors =0; OFString mensaje; ResetearMedida(true); while ((iter != enditer) && (cond == EC_Normal) && !_shouldAbort) { // compare with EC_Normal since DUL_PEERREQUESTEDRELEASE is also good() wxString msg = wxString::Format(_("Uploading file %d of %d"), (int)(_numberSent+1), (int)(listaFicheros.size()) ); m_mensaje = std::string(msg.ToUTF8()); // coverity[CHECKED_RETURN] GW: assume that test for abort not of interest. pNotificador->NotificarProgreso(0.0f, m_mensaje); cond = cstore(assoc, *iter); ++iter; if (!unsuccessfulStoreEncountered) _numberSent++; else { //error cerramos las conexiones... break; } //TODO CONFIGURACION MAXIMO NUMERO DFICHEROS Q SEPUEDE SUBIR, MAXIMO NUMERO DE ERRORES... } /* tear down association, i.e. terminate network connection to SCP */ if (cond == EC_Normal) { if (opt_abortAssociation) { cond = ASC_abortAssociation(assoc); if (cond.bad()) { LOG_DEBUG(LOGGER,"Abortando Asociacion: \n"); DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) Association Abort Failed; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } } else { /* release association */ LOG_DEBUG(LOGGER,"Abortando Asociacion: \n"); cond = ASC_releaseAssociation(assoc); if (cond.bad()) { ASC_dropAssociation(assoc); DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) Association Abort Failed; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } } } else if (cond == DUL_PEERREQUESTEDRELEASE) { LOG_DEBUG(LOGGER,"Abortando Asociacion [PEERREQUESTEDRELEASE]"); cond = ASC_abortAssociation(assoc); if (cond.bad()) { std::stringstream strStream; strStream << "DICOM Network Failure (storescu) Association Abort Failed; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } } else if (cond == DUL_PEERABORTEDASSOCIATION) { std::stringstream strStream; strStream << "Fallo en la red DICOM (storescu) El servidor ha cerrado la conexion "; errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } else { DimseCondition::dump(cond); LOG_DEBUG(LOGGER,"Abortando Asociacion"); cond = ASC_abortAssociation(assoc); if (cond.bad()) { DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) Protocol Error: SCU Failed; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } } if ( unsuccessfulStoreEncountered) { throw GIL::DICOM::PACSException(errorEncontrado); } } void DicomStoreAssociation::FreeMemory() { /* destroy the association, i.e. free memory of T_ASC_Association* structure. This */ /* call is the counterpart of ASC_requestAssociation(...) which was called above. */ if (assoc != NULL) { OFCondition cond = ASC_destroyAssociation(&assoc); if (cond.bad()) { DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) Protocol Error: ASC_destroyAssociation; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } } /* drop the network, i.e. free memory of T_ASC_Network* structure. This call */ /* is the counterpart of ASC_initializeNetwork(...) which was called above. */ if (net!= NULL) { OFCondition cond = ASC_dropNetwork(&net); if (cond.bad()) { DimseCondition::dump(cond); std::stringstream strStream; strStream << "DICOM Network Failure (storescu) Protocol Error: ASC_dropNetwork; Modulo: "<< cond.module() << "; Code:"<< cond.code() << "; " << cond.text(); errmsg(strStream.str(),true); LOG_ERROR("C-STORE", strStream.str().c_str()); } } } } } void GIL::DICOM::DicomStoreAssociation::progressCallback(void * callbackData, T_DIMSE_StoreProgress *progress, T_DIMSE_C_StoreRQ * /*req*/) { _StoreCallbackInfo *cbdata = static_cast<_StoreCallbackInfo*>(callbackData); if (progress->state == DIMSE_StoreProgressing) { //si ha pasado medio segundo... std::stringstream ostr; ostr << m_mensaje; ostr.setf(std::ios::floatfield, std::ios::fixed ); ostr.precision(2); ostr << " a " << TasaTransferencia(progress->progressBytes) << " kb/s"; std::string msg(ostr.str()); if(!m_pNotificadorProgreso->NotificarProgreso((float)progress->progressBytes/progress->totalBytes,msg)) { ASC_abortAssociation(cbdata->assoc); } } if (progress->state == DIMSE_StoreEnd) { ResetearMedida(); } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/dicomstoreassociation.h000066400000000000000000000054751314736454600266410ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include class DicomServer; namespace GNC { class IProxyNotificadorProgreso; } namespace GIL { namespace DICOM { class DicomStoreAssociation { public: DicomStoreAssociation(); ~DicomStoreAssociation(); typedef std::list ListaRutas; void Store(ListaRutas listaFicheros, const GNC::GCS::Ptr& server, std::string nombreAETLocal,GNC::IProxyNotificadorProgreso* pNotificador, GIL::DICOM::TipoTransferSyntaxEnvio transferSyntax); void FreeMemory(); static void progressCallback(void * /*callbackData*/,T_DIMSE_StoreProgress *progress,T_DIMSE_C_StoreRQ * /*req*/); void SetTLS(const std::string& CliCert, const std::string& CliKey, bool validate) { m_TLS = true; m_CliCert = CliCert; m_CliKey = CliKey; m_Validate = validate; } void SetUserPass(const std::string& PacsUser, const std::string& PacsPass) { m_UseUserPass = true; m_pacsUser = PacsUser, m_pacsPass = PacsPass; } bool UseUserPass() { return m_UseUserPass; } const std::string& GetUser() { return m_pacsUser; } const std::string& GetPass() { return m_pacsPass; } bool IsSecure() const { return m_TLS; } const std::string& GetCliCert() const { return m_CliCert; } const std::string& GetCliKey() const { return m_CliKey; } bool GetValidate() const { return m_Validate; } protected: bool m_TLS; std::string m_CliCert; std::string m_CliKey; bool m_UseUserPass; std::string m_pacsUser; std::string m_pacsPass; bool m_Validate; T_ASC_Association *assoc; T_ASC_Network *net; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/ginkgouid.cpp000066400000000000000000000042501314736454600245350ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ginkgouid.h" #include #include #include // MetaEmotion.Healthcate.GinkgoCADx.MayorVersion.MinorVersion #define GINKGO_UID_ROOT "1.3.6.1.4.1.39470.1.1" #define GINKGO_STUDY_UID_ROOT ".1.2" #define GINKGO_SERIES_UID_ROOT ".1.3" #define GINKGO_INSTANCE_UID_ROOT ".1.4" #define GINKGO_UID_PRIVATE_GENERIC_FILE_SOP_CLASS ".1.0.1" std::string GIL::DICOM::MakeUID(GinkgoUIDType uidType, int counter) { char newUID[128]; std::ostringstream buf; buf << GINKGO_UID_ROOT << "." << GNC::GCS::IEntorno::Instance()->GetGinkgoMayorVersionNumber() << "." << GNC::GCS::IEntorno::Instance()->GetGinkgoMinorVersionNumber(); switch(uidType) { case GUID_StudyRoot: buf << GINKGO_STUDY_UID_ROOT; break; case GUID_SeriesRoot: buf << GINKGO_SERIES_UID_ROOT; break; case GUID_InstanceRoot: buf << GINKGO_INSTANCE_UID_ROOT; break; case GUID_PrivateGenericFileSOPClass: buf << GINKGO_UID_PRIVATE_GENERIC_FILE_SOP_CLASS; break; default: break; } if (counter >= 0 ) { buf << counter; } dcmGenerateUniqueIdentifier(newUID, buf.str().c_str()); return std::string(newUID); } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/ginkgouid.h000066400000000000000000000022321314736454600242000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GIL { namespace DICOM { typedef enum GinkgoUIDType { GUID_StudyRoot, GUID_SeriesRoot, GUID_InstanceRoot, GUID_PrivateGenericFileSOPClass } GinkgoUIDType; /*** * Generates a unique UID on given root. If counter != -1 adds a level with those counter value **/ std::string EXTAPI MakeUID(GinkgoUIDType uidType, int counter = -1); } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/helpercompresion.cpp000066400000000000000000000744051314736454600261440ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifdef __DEPRECATED #undef __DEPRECATED #endif #ifndef _CRT_SECURE_NO_DEPRECATE #define _CRT_SECURE_NO_DEPRECATE #endif #include "helpercompresion.h" #include #include #include #include #include #include #include #include #include //descomprime una imagen utilizando itk... bool DecompressJPEG2000(const std::string& fileIn, const std::string& fOut) { typedef double PixelType; typedef itk::Image ImageType; typedef itk::GDCMImageIO ImageIOType; typedef itk::ImageSeriesReader GenericReaderType; ImageIOType::Pointer dicomIO = ImageIOType::New(); GenericReaderType::Pointer reader = GenericReaderType::New(); try { reader->SetImageIO(dicomIO); //reader->ReleaseDataFlagOn(); reader->SetFileName(fileIn); reader->UpdateOutputInformation(); } catch (itk::ExceptionObject& /*ex*/) { reader->ResetPipeline(); return false; } itk::ProcessObject::Pointer processObjectReader; itk::ProcessObject::Pointer processObjectWriter; ImageIOType::Pointer tdicomIO = ImageIOType::New(); tdicomIO->SetLoadPrivateTags(true); tdicomIO->SetLoadSequences(true); if (dicomIO->GetNumberOfComponents() == 1) { switch(dicomIO->GetComponentType()) { case ImageIOType::UCHAR: { typedef unsigned char TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::CHAR: { typedef char TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::USHORT: { typedef unsigned short TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::SHORT: { typedef short TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::UINT: { typedef unsigned int TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::INT: { typedef int TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::ULONG: { typedef unsigned long TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::LONG: { typedef long TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::FLOAT: { typedef float TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::DOUBLE: { typedef double TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::UNKNOWNCOMPONENTTYPE: default: //throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: unsupported pixel format"), "ControladorCarga/CargaMultidimensional"); return false; } } else if (dicomIO->GetNumberOfComponents() == 3) { switch(dicomIO->GetComponentType()) { case ImageIOType::UCHAR: { typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); processObjectReader = treader; processObjectWriter = twriter; } break; default: return false; } } else { return false; } try { processObjectReader->Update(); //descomprimir tdicomIO->SetUseCompression(false); tdicomIO->SetByteOrder(itk::ImageIOBase::LittleEndian); // processObjectWriter->Update(); } catch (itk::ExceptionObject& /*ex*/) { processObjectReader->ResetPipeline(); return false; } catch (...) { processObjectReader->ResetPipeline(); return false; } /*if (processObjectReader->GetAbortGenerateData()) { processObject->ResetPipeline(); return false; }*/ return true; } //descomprime una imagen utilizando itk... bool CompressJPEG2000(const std::string& fileIn, const std::string& fOut) { typedef double PixelType; typedef itk::Image ImageType; typedef itk::GDCMImageIO ImageIOType; typedef itk::ImageSeriesReader GenericReaderType; ImageIOType::Pointer dicomIO = ImageIOType::New(); GenericReaderType::Pointer reader = GenericReaderType::New(); try { reader->SetImageIO(dicomIO); reader->SetUseStreaming(true); //reader->ReleaseDataFlagOn(); reader->SetFileName(fileIn); reader->UpdateOutputInformation(); } catch (itk::ExceptionObject& /*ex*/) { reader->ResetPipeline(); return false; } itk::ProcessObject::Pointer processObjectReader; itk::ProcessObject::Pointer processObjectWriter; ImageIOType::Pointer tdicomIO = ImageIOType::New(); tdicomIO->SetLoadPrivateTags(true); tdicomIO->SetLoadSequences(true); if (dicomIO->GetNumberOfComponents() == 1) { switch(dicomIO->GetComponentType()) { case ImageIOType::UCHAR: { typedef unsigned char TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); twriter->UseCompressionOn(); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::CHAR: { typedef char TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); twriter->UseCompressionOn(); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::USHORT: { typedef unsigned short TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); twriter->UseCompressionOn(); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::SHORT: { typedef short TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); twriter->UseCompressionOn(); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::UINT: { typedef unsigned int TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); twriter->UseCompressionOn(); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::INT: { typedef int TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); twriter->UseCompressionOn(); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::ULONG: { typedef unsigned long TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); twriter->UseCompressionOn(); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::LONG: { typedef long TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); twriter->UseCompressionOn(); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::FLOAT: { typedef float TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); twriter->UseCompressionOn(); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::DOUBLE: { typedef double TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); twriter->UseCompressionOn(); processObjectReader = treader; processObjectWriter = twriter; } break; case ImageIOType::UNKNOWNCOMPONENTTYPE: default: //throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: unsupported pixel format"), "ControladorCarga/CargaMultidimensional"); return false; } } else if (dicomIO->GetNumberOfComponents() == 3) { switch(dicomIO->GetComponentType()) { case ImageIOType::UCHAR: { typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageSeriesReader TypedReaderType; typedef itk::ImageSeriesWriter TypedWriterType; TypedReaderType::Pointer treader = TypedReaderType::New(); TypedWriterType::Pointer twriter = TypedWriterType::New(); treader->SetImageIO(tdicomIO); treader->SetFileName(fileIn); treader->SetUseStreaming(true); //treader->GetOutput()->ReleaseDataFlagOn(); twriter->SetInput(treader->GetOutput()); twriter->SetImageIO(tdicomIO); twriter->SetFileName(fOut); twriter->UseCompressionOn(); processObjectReader = treader; processObjectWriter = twriter; } break; default: return false; } } else { return false; } try { processObjectReader->Update(); //comprimir tdicomIO->SetByteOrderToLittleEndian(); tdicomIO->SetUseCompression(true); tdicomIO->SetLoadPrivateTags(true); tdicomIO->SetLoadSequences(true); tdicomIO->SetCompressionType(itk::GDCMImageIO::JPEG2000); // processObjectWriter->Update(); } catch (itk::ExceptionObject& /*ex*/) { processObjectReader->ResetPipeline(); return false; } catch (...) { processObjectReader->ResetPipeline(); return false; } /*if (processObjectReader->GetAbortGenerateData()) { processObject->ResetPipeline(); return false; }*/ return true; } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/helpercompresion.h000066400000000000000000000016461314736454600256060ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include bool DecompressJPEG2000(const std::string& fileIn, const std::string& fOut); bool CompressJPEG2000(const std::string& fileIn, const std::string& fOut); ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/helpers.cpp000066400000000000000000000021351314736454600242170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "helpers.h" #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif const std::string DumpDataset(DcmDataset* dataset) { std::ostringstream ds; dataset->print(ds); return ds.str(); } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/helpers.h000066400000000000000000000015101314736454600236600ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include class DcmDataset; const std::string DumpDataset(DcmDataset* dataset); ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/istorecallback.h000066400000000000000000000017261314736454600252110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include class DcmDataset; class IStoreCallBack { public: IStoreCallBack() {} virtual ~IStoreCallBack() {} virtual void Store(const std::string& fileName, DcmDataset* dset) = 0; }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/000077500000000000000000000000001314736454600232155ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/d2dcommon.cpp000066400000000000000000000112651314736454600256100ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "d2dcommon.h" #ifdef DCMTK_POST_20170228 #include #endif /** Check whether given type 1 attribute is present and has a length > 0. * @param key - [in] The attribute tag check * @param targetDset - [out] targetDset * @param defaultValue - [in] value to be inserted if attribute is missing * (needs invent option for type 1 attributes enabled) * @return A string with an error message if attribute is not present * or has length of 0 */ OFString D2DCommon::checkAndInventType1Attrib(const DcmTagKey& key, DcmDataset* targetDset, const OFString& defaultValue) const { OFString err; OFBool exists = targetDset->tagExists(key); if (!exists) { OFString err = "Document2Dcm: Missing type 1 attribute: "; err += DcmTag(key).getTagName(); err += "\n"; return err; } DcmElement *elem; OFCondition cond = targetDset->findAndGetElement(key, elem); if (cond.bad() || !elem || (elem->getLength() == 0)) { if (!m_inventMissingType1Attribs) { err += "Document2Dcm: Empty value for type 1 attribute: "; err += DcmTag(key).getTagName(); err += "\n"; return err; } //holds element to insert in item DcmElement *elem = NULL; DcmTag tag(key); OFBool wasError = OFFalse; //if dicom element could be created, insert in to item and modify to value if (newDicomElement(elem, tag).good()) { if (targetDset->insert(elem, OFTrue).good()) { if (elem->putString(defaultValue.c_str()).good()) { if (m_debug) { OFString msg = "Document2Dcm: Inserting missing type 1 attribute "; msg += tag.getTagName(); msg += " with value "; msg += defaultValue; printMessage(m_logStream, msg); return err; } } else wasError = OFTrue; } else wasError = OFTrue; } else wasError = OFTrue; if (wasError) { err += "Unable to insert type 1 attribute "; err += tag.getTagName(); err += " with value "; err += defaultValue; err += "\n"; } } return err; } /** Inserts an empty element with the given tag into a dataset * @param key - [in] The attribute tag to check * @param targetDset - [out] targetDset * @return A string with an error message if attribute is not present * nor gets inserted automatically (see m_inventMissingType2Attribs) */ OFString D2DCommon::checkAndInventType2Attrib(const DcmTagKey& key, DcmDataset* targetDset) const { OFString err; OFBool exists = targetDset->tagExists(key); if (!exists) { if (m_inventMissingType2Attribs) { DcmTag tag(key); if (m_debug) printMessage(m_logStream, "Document2Dcm: Inserting missing type 2 attribute: ", tag.getTagName()); targetDset->insertEmptyElement(tag); } else { err = "Document2Dcm: Missing type 2 attribute: "; err += DcmTag(key).getTagName(); err += "\n"; return err; } } return err; } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/d2dcommon.h000066400000000000000000000076731314736454600252650ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include class D2DCommon { public: D2DCommon() : m_logStream(NULL), m_debug(OFFalse), m_inventMissingType2Attribs(OFTrue), m_inventMissingType1Attribs(OFFalse) { } /** Prints a message to the given stream. ** @param stream - [out] output stream to which the message is printed * @param message1 - [in] first part of message to be printed * @param message2 - [in] second part of message to be printed * @return none */ void printMessage(OFConsole *stream, const OFString& message1, const OFString& message2 = "") const { if (stream != NULL) { stream->lockCerr() << message1 << message2 << std::endl; stream->unlockCerr(); } } /** Sets the log stream * The log stream is used to report any warnings and error messages. * @param stream - [out] pointer to the log stream (might be NULL = no messages) * @return none */ void setLogStream(OFConsole *stream) { m_logStream= stream; } /** Sets the debug mode * @param debugMode - [in] New status for debug mode * @return none */ void setDebugMode(const OFBool& debugMode) { m_debug = debugMode; }; /** Check whether given type 1 attribute is present and has a length > 0. * @param key - [in] The attribute tag check * @param targetDset - [out] targetDset * @param defaultValue - [in] value to be inserted if attribute is missing * (needs invent option for type 1 attributes enabled) * @return A string with an error message if attribute is not present * or has length of 0 */ OFString checkAndInventType1Attrib(const DcmTagKey& key, DcmDataset* targetDset, const OFString& defaultValue = "") const; /** Inserts an empty element with the given tag into a dataset * @param key - [in] The attribute tag to check * @param targetDset - [out] targetDset * @return A string with an error message if attribute is not present * nor gets inserted automatically (see m_inventMissingType2Attribs) */ OFString checkAndInventType2Attrib(const DcmTagKey& key, DcmDataset* targetDset) const; protected: /// stream where warning/error message are sent to. /// can be NULL (default, no output). OFConsole *m_logStream; /// debug mode status OFBool m_debug; /// If true, missing type 2 elements are inserted automatically (empty value). /// Enabled per default. OFBool m_inventMissingType2Attribs; /// If true, missing type 1 elements are inserted automatically with a /// predefined value, if possible. Disabled per default. OFBool m_inventMissingType1Attribs; }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/d2dsource.h000066400000000000000000000045451314736454600252700ustar00rootroot00000000000000/* * * $Id: d2dsource.h $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Base Class for plugins extracting pixel data from standard * image files * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #pragma once #include "d2dcommon.h" class D2DSource: public D2DCommon { public: /** Constructor */ D2DSource() {} /** Returns identifier for the image input format the plugin imports. * @return A short identifier (e. g. "JPEG") */ virtual OFString inputFormat() const = 0; /** Reads pixel data and corresponding attributes like rows etc. from image * file and inserts them into dataset. * @param imageSource - [in] The input plugin that actually reads the pixel data * @param dset - [out] The dataset to export the pixel data attributes to * @param outputTS - [out] The proposed transfex syntax of the dataset * @return EC_Normal, if successful, error otherwise */ virtual OFCondition readAndInsertSpecificTags( DcmDataset* dset, E_TransferSyntax& outputTS) = 0; /** Do some completeness / validity checks. Should be called when * dataset is completed and is about to be saved. * @param dataset - [in] The dataset to check * @return Error string if error occurs, empty string otherwise */ virtual OFString isValid(DcmDataset& dset) const = 0; /** Virtual Destructor */ virtual ~D2DSource() {} protected: }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/document2dcm.cpp000066400000000000000000000613261314736454600263150ustar00rootroot00000000000000/* * * $Id: document2dcm.cpp $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Implements utility for converting standard image formats to DICOM * * Last Update: $Author: onken $ * Update Date: $Date: 2008-01-16 16:32:31 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #include #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include
    #include #include "document2dcm.h" #include #include "dcmtk/dcmdata/dctk.h" //#include "dcmtk/dcmdata/dcdebug.h" #include "dcmtk/dcmdata/cmdlnarg.h" #include "dcmtk/ofstd/ofconapp.h" #include "dcmtk/dcmdata/dcuid.h" /* for dcmtk version name */ #include "dcmtk/dcmjpeg/djencode.h" /* for dcmjpeg encoders */ #include "dcmtk/dcmjpeg/djrplol.h" /* for DJ_RPLossless */ #include "dcmtk/dcmjpeg/djrploss.h" /* for DJ_RPLossy */ #include "dcmtk/dcmjpeg/dipijpeg.h" /* for dcmimage JPEG plugin */ #include "dcmtk/dcmimage/diregist.h" /* include to support color images */ #include
    #include #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif Document2Dcm::Document2Dcm() : D2DCommon(), m_overrideKeys(NULL), m_templateFile(""), m_readStudyLevel(OFFalse), m_readSeriesLevel(OFFalse), m_studySeriesFile(), m_incInstNoFromFile(OFFalse), m_disableAttribChecks(OFFalse), m_insertLatin1(OFFalse), m_insertUTF8(OFTrue) { ; } OFCondition Document2Dcm::convert(D2DSource *inputPlug, I2DOutputPlug *outPlug, DcmDataset*& resultDset, E_TransferSyntax& proposedTS) { if (!inputPlug || !outPlug) return EC_IllegalParameter; OFCondition cond; if (m_debug) printMessage(m_logStream, "Document2Dcm: Starting conversion"); // If specified, copy DICOM template file to export file if (m_templateFile.length() != 0) { DcmFileFormat dcmff; cond = dcmff.loadFile(m_templateFile.c_str()); if (cond.bad()) return cond; // remove problematic attributes from dataset cleanupTemplate(dcmff.getDataset()); // copy from input file resultDset = new DcmDataset(*(dcmff.getDataset())); } else // otherwise, start with an empty DICOM file resultDset = new DcmDataset(); if (!resultDset) return EC_MemoryExhausted; // Read patient and study or series information if desired and write to export file if (m_readStudyLevel || m_readSeriesLevel) { cond = applyStudyOrSeriesFromFile(resultDset); if (cond.bad()) { delete resultDset; resultDset = NULL; return cond; } } OFString value; // Increment instance number if (m_incInstNoFromFile) { cond = incrementInstanceNumber(resultDset); if (cond.bad()) { delete resultDset; resultDset = NULL; return cond; } OFString s; if (cond.good()) { cond = DcmDate::getCurrentDate(value); } if (cond.good()) { cond = resultDset->putAndInsertOFStringArray(DCM_InstanceCreationDate, value); } if (cond.good()) { cond = DcmTime::getCurrentTime(value); } if (cond.good()) { cond = resultDset->putAndInsertOFStringArray(DCM_InstanceCreationTime, value); } if (cond.bad()) { delete resultDset; resultDset = NULL; return cond; } } else { cond = resultDset->findAndGetOFString(DCM_InstanceCreationDate, value); if (cond.bad()) { cond = DcmDate::getCurrentDate(value); if (cond.good()) { cond = resultDset->putAndInsertOFStringArray(DCM_InstanceCreationDate, value); } } if (cond.bad()) { delete resultDset; resultDset = NULL; return cond; } cond = resultDset->findAndGetOFString(DCM_InstanceCreationTime, value); if (cond.bad()) { cond = DcmTime::getCurrentTime(value); if (cond.good()) { cond = resultDset->putAndInsertOFStringArray(DCM_InstanceCreationTime, value); } } if (cond.bad()) { delete resultDset; resultDset = NULL; return cond; } } // Insert Latin 1 as standard character set if desired if (m_insertLatin1) cond = insertLatin1(resultDset); if (cond.bad()) return cond; if (m_insertUTF8) cond = insertUTF8(resultDset); if (cond.bad()) return cond; // Generate and insert UIDs as necessary generateUIDs(resultDset); // Read and insert pixel data cond = inputPlug->readAndInsertSpecificTags(resultDset, proposedTS); if (cond.bad()) { delete resultDset; resultDset = NULL; return cond; } // Insert SOP Class specific attributes (and values) cond = outPlug->convert(*resultDset); if (cond.bad()) { delete resultDset; resultDset = NULL; return cond; } // At last, apply override keys on dataset applyOverrideKeys(resultDset); // Do some very basic attribute checking (e. g. existence (type 2) and values (type 1)) if (!m_disableAttribChecks) { OFString err; err = isValid(*resultDset); err += inputPlug->isValid(*resultDset); err += outPlug->isValid(*resultDset); if (!err.empty()) { delete resultDset; resultDset = NULL; return makeOFCondition(OFM_dcmdata, 18, OF_error, err.c_str()); } } return EC_Normal; } OFCondition Document2Dcm::updateOverrideKeys(DcmDataset* dset) { if (dset == NULL) { return EC_IllegalParameter; } applyOverrideKeys(dset); return EC_Normal; } OFCondition Document2Dcm::insertLatin1(DcmDataset *outputDset) { if (outputDset == NULL) return EC_IllegalParameter; return outputDset->putAndInsertOFStringArray(DCM_SpecificCharacterSet, "ISO_IR 100"); } OFCondition Document2Dcm::insertUTF8(DcmDataset *outputDset) { if (outputDset == NULL) return EC_IllegalParameter; return outputDset->putAndInsertOFStringArray(DCM_SpecificCharacterSet, "ISO_IR 192"); } void Document2Dcm::cleanupTemplate(DcmDataset *targetDset) { if (!targetDset) return; // Remove any existing image pixel module attribute targetDset->findAndDeleteElement(DcmTagKey(0x0028, 0x7FE0)); // Pixel Data Provider URL (JPIP) targetDset->findAndDeleteElement(DCM_PhotometricInterpretation); targetDset->findAndDeleteElement(DCM_SamplesPerPixel); targetDset->findAndDeleteElement(DCM_Rows); targetDset->findAndDeleteElement(DCM_Columns); targetDset->findAndDeleteElement(DCM_BitsAllocated); targetDset->findAndDeleteElement(DCM_BitsStored); targetDset->findAndDeleteElement(DCM_HighBit); targetDset->findAndDeleteElement(DCM_PixelRepresentation); targetDset->findAndDeleteElement(DCM_PixelData); targetDset->findAndDeleteElement(DCM_PlanarConfiguration); targetDset->findAndDeleteElement(DCM_PixelAspectRatio); targetDset->findAndDeleteElement(DCM_SmallestImagePixelValue); targetDset->findAndDeleteElement(DCM_LargestImagePixelValue); targetDset->findAndDeleteElement(DCM_RedPaletteColorLookupTableDescriptor); targetDset->findAndDeleteElement(DCM_GreenPaletteColorLookupTableDescriptor); targetDset->findAndDeleteElement(DCM_BluePaletteColorLookupTableDescriptor); targetDset->findAndDeleteElement(DCM_RedPaletteColorLookupTableData); targetDset->findAndDeleteElement(DCM_GreenPaletteColorLookupTableData); targetDset->findAndDeleteElement(DCM_BluePaletteColorLookupTableData); targetDset->findAndDeleteElement(DCM_ICCProfile); // Remove SOP Class / Instance information targetDset->findAndDeleteElement(DCM_SOPClassUID); targetDset->findAndDeleteElement(DCM_SOPInstanceUID); } OFCondition Document2Dcm::applyStudyOrSeriesFromFile(DcmDataset *targetDset) { if (m_debug) printMessage(m_logStream, "Document2Dcm: Applying study and/or series information from file"); if ((!m_readSeriesLevel && !m_readStudyLevel) || (m_studySeriesFile.length() == 0)) return EC_IllegalCall; DcmFileFormat dcmff; OFString errMsg; OFCondition cond; // Open DICOM file to read patient/study/series information from cond = dcmff.loadFile(m_studySeriesFile.c_str()); if (cond.bad()) { errMsg = "Error: Unable to open study / series file "; errMsg += m_studySeriesFile; return makeOFCondition(OFM_dcmdata, 18, OF_error, errMsg.c_str()); } DcmDataset *srcDset = NULL; srcDset = dcmff.getDataset(); if (srcDset == NULL) return EC_IllegalCall; // Patient level attributes (type 2 - if value cannot be read, insert empty value OFString value; srcDset->findAndGetOFString(DCM_PatientName, value); cond = targetDset->putAndInsertOFStringArray(DCM_PatientName, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Patients Name to file"); value.clear(); srcDset->findAndGetOFString(DCM_PatientID, value); cond = targetDset->putAndInsertOFStringArray(DCM_PatientID, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Patient ID to file"); value.clear(); srcDset->findAndGetOFString(DCM_PatientSex, value); cond = targetDset->putAndInsertOFStringArray(DCM_PatientSex, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Patient's Sex to file"); value.clear(); srcDset->findAndGetOFString(DCM_PatientBirthDate, value); cond = targetDset->putAndInsertOFStringArray(DCM_PatientBirthDate, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Patient's Birth Date to file"); value.clear(); srcDset->findAndGetOFString(DCM_SpecificCharacterSet, value); cond = targetDset->putAndInsertOFStringArray(DCM_SpecificCharacterSet, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Specific Character Set to file"); value.clear(); srcDset->findAndGetOFString(DCM_InstanceCreationDate, value); cond = targetDset->putAndInsertOFStringArray(DCM_InstanceCreationDate, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Instance Creation Date to file"); value.clear(); srcDset->findAndGetOFString(DCM_InstanceCreationTime, value); cond = targetDset->putAndInsertOFStringArray(DCM_InstanceCreationTime, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Instance Creation Time to file"); value.clear(); // Study level attributes (type 2 except Study Instance UID) cond = srcDset->findAndGetOFString(DCM_StudyInstanceUID, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to read Study Instance UID (type 1) from file"); cond = targetDset->putAndInsertOFStringArray(DCM_StudyInstanceUID, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Study Instance UID to file"); value.clear(); srcDset->findAndGetOFString(DCM_StudyDate, value); cond = targetDset->putAndInsertOFStringArray(DCM_StudyDate, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Study Date to file"); value.clear(); srcDset->findAndGetOFString(DCM_StudyTime, value); cond = targetDset->putAndInsertOFStringArray(DCM_StudyTime, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Study Time to file"); value.clear(); srcDset->findAndGetOFString(DCM_ReferringPhysicianName, value); cond = targetDset->putAndInsertOFStringArray(DCM_ReferringPhysicianName, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Referring Physician's Name to file"); value.clear(); srcDset->findAndGetOFString(DCM_StudyID, value); cond = targetDset->putAndInsertOFStringArray(DCM_StudyID, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Study ID to file"); value.clear(); srcDset->findAndGetOFString(DCM_AccessionNumber, value); cond = targetDset->putAndInsertOFStringArray(DCM_AccessionNumber, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Accession Number to file"); value.clear(); // Series Level attributes (type 2 except Series Instance UID which is type 1) if (m_readSeriesLevel) { // General Series Module attributes cond = srcDset->findAndGetOFString(DCM_SeriesInstanceUID, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to read Series Instance UID (type 1) from file"); cond = targetDset->putAndInsertOFStringArray(DCM_SeriesInstanceUID, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Series Instance UID to file"); value.clear(); srcDset->findAndGetOFString(DCM_SeriesNumber, value); cond = targetDset->putAndInsertOFStringArray(DCM_SeriesNumber, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Series Number to file"); value.clear(); // General Equipment Module attributes srcDset->findAndGetOFString(DCM_Manufacturer, value); cond = targetDset->putAndInsertOFStringArray(DCM_Manufacturer, value); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Manufacturer to file"); value.clear(); } return EC_Normal; } OFCondition Document2Dcm::incrementInstanceNumber(DcmDataset *targetDset) { // Read and increment Instance Number if desired if (m_incInstNoFromFile) { if (m_debug) printMessage(m_logStream, "Document2Dcm: Trying to read and increment instance number"); Sint32 instanceNumber; if (targetDset->findAndGetSint32(DCM_InstanceNumber, instanceNumber).good()) { instanceNumber++; std::ostringstream os; os << OFstatic_cast(long, instanceNumber); OFCondition cond = targetDset->putAndInsertOFStringArray(DCM_InstanceNumber, os.str().c_str()); if (cond.bad()) { return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Instance Number to dataset"); } } else { OFCondition cond = targetDset->putAndInsertOFStringArray(DCM_InstanceNumber, "1"); if (cond.bad()) { return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Instance Number to dataset"); } } } return EC_Normal; } OFCondition Document2Dcm::generateUIDs(DcmDataset *dset) { OFString value; OFCondition cond; if (m_debug) printMessage(m_logStream, "Document2Dcm: Generate and insert new UIDs if necessary"); // Generate and write Series Instance UID if not already present if (!m_readSeriesLevel) { cond = dset->findAndGetOFString(DCM_SeriesInstanceUID, value); if (cond.bad() || (value.length() == 0)) { cond = dset->putAndInsertOFStringArray(DCM_SeriesInstanceUID, GIL::DICOM::MakeUID(GIL::DICOM::GUID_SeriesRoot).c_str()); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Series Instance UID to file"); } value.clear(); } // Generate and write Study Instance UID if not already present if (!m_readStudyLevel) { cond = dset->findAndGetOFString(DCM_StudyInstanceUID, value); if (cond.bad() || (value.length() == 0)) { cond = dset->putAndInsertOFStringArray(DCM_StudyInstanceUID, GIL::DICOM::MakeUID(GIL::DICOM::GUID_StudyRoot).c_str()); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Study Instance UID to file"); } value.clear(); cond = dset->findAndGetOFString(DCM_AccessionNumber, value); if (cond.bad() || (value.length() == 0)) { std::stringstream is; int random_integer; const int lowest = 0; const int highest = 9999; const int range = (highest-lowest)+1; const time_t timestamp = std::time(NULL); std::srand((unsigned int)timestamp); random_integer = lowest + int(range * rand()/(RAND_MAX + 1.0)); is << (unsigned long) timestamp; is.width(4); is.fill('0'); is << (unsigned int) random_integer; cond = dset->putAndInsertString(DCM_AccessionNumber, is.str().c_str()); if (cond.bad()) { return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write Accession Number"); } } value.clear(); } // Generate SOP Instance UID if not already present cond = dset->findAndGetOFString(DCM_SOPInstanceUID, value); if (cond.bad() || (value.length() == 0)) { cond = dset->putAndInsertOFStringArray(DCM_SOPInstanceUID, GIL::DICOM::MakeUID(GIL::DICOM::GUID_InstanceRoot).c_str()); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable write SOP Instance UID to file"); } return EC_Normal; } void Document2Dcm::setISOLatin1(OFBool insertLatin1) { m_insertLatin1 = insertLatin1; } void Document2Dcm::setUTF8(OFBool insertUTF8) { m_insertUTF8 = insertUTF8; } OFString Document2Dcm::isValid(DcmDataset& dset) const { if (m_debug) printMessage(m_logStream, "Document2Dcm: Checking validity of DICOM output dataset"); OFString dummy, err; OFCondition cond; // General Patient module attributes err += checkAndInventType2Attrib(DCM_PatientName, &dset); err += checkAndInventType2Attrib(DCM_PatientSex, &dset); err += checkAndInventType2Attrib(DCM_PatientBirthDate, &dset); err += checkAndInventType2Attrib(DCM_PatientID, &dset); // General Study module attributes err += checkAndInventType1Attrib(DCM_StudyInstanceUID, &dset); err += checkAndInventType2Attrib(DCM_StudyDate, &dset); err += checkAndInventType2Attrib(DCM_StudyTime, &dset); err += checkAndInventType2Attrib(DCM_ReferringPhysicianName, &dset); err += checkAndInventType2Attrib(DCM_StudyID, &dset); err += checkAndInventType2Attrib(DCM_AccessionNumber, &dset); // General Series module attributes err += checkAndInventType1Attrib(DCM_SeriesInstanceUID, &dset); err += checkAndInventType2Attrib(DCM_SeriesNumber, &dset); err += checkAndInventType2Attrib(DCM_InstanceNumber, &dset); return err; } void Document2Dcm::setSeriesFrom(const OFString& file) { m_readSeriesLevel = OFTrue; m_studySeriesFile = file; } void Document2Dcm::setStudyFrom(const OFString& file) { m_readStudyLevel = OFTrue; m_studySeriesFile = file; } void Document2Dcm::setValidityChecking(OFBool doChecks, OFBool insertMissingType2, OFBool inventMissingType1) { m_disableAttribChecks = !doChecks; m_inventMissingType2Attribs = insertMissingType2; m_inventMissingType1Attribs = inventMissingType1; } void Document2Dcm::setTemplateFile(const OFString& file) { m_templateFile = file; } void Document2Dcm::setIncrementInstanceNumber(OFBool incInstNo) { m_incInstNoFromFile = incInstNo; } void Document2Dcm::setOverrideKeys(DcmDataset* dset) { if (m_overrideKeys != NULL) { delete m_overrideKeys; } m_overrideKeys = dset; } void Document2Dcm::applyOverrideKeys(DcmDataset *outputDset) { if ((m_overrideKeys == NULL) || (outputDset == NULL)) { return; /* nothing to do */ } if (m_debug) printMessage(m_logStream, "Document2Dcm: Applying override keys"); /* copy the override keys */ DcmDataset keys(*m_overrideKeys); /* put the override keys into dset replacing existing tags */ unsigned long elemCount = keys.card(); OFCondition cond; for (unsigned long i = 0; i < elemCount; i++) { DcmElement *elem = keys.remove((unsigned long) 0); const DcmTag& tag = elem->getTag(); cond = outputDset->insert(elem, true, false); if (cond.bad()) { std::ostringstream os; os << "Error al insertar Tag: " << tag.toString().c_str() << " : " << cond.text(); LOG_ERROR("Dicomizacion", os.str()); } else { //std::cout << "Insertado " << tag.toString().c_str() << std::endl; } } } Document2Dcm::~Document2Dcm() { if (m_debug) printMessage(m_logStream, "Document2Dcm: Freeing memory"); if (m_overrideKeys != NULL) { delete m_overrideKeys; } m_overrideKeys = NULL; } /* * CVS/RCS Log: * $Log: i2d.cc,v $ * Revision 1.2 2008-01-16 16:32:31 onken * Fixed some empty or doubled log messages in libi2d files. * * Revision 1.1 2008-01-16 14:36:02 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * * Revision 1.1 2007/11/08 15:55:17 onken * Initial checkin of img2dcm application and corresponding library i2dlib. * * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/document2dcm.h000066400000000000000000000211261314736454600257540ustar00rootroot00000000000000/* * * $Id: document2dcm.h $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * */ #pragma once #include "d2dcommon.h" #include "d2dsource.h" #include "i2doutpl.h" class Document2Dcm: public D2DCommon { public: /** Constructor, initializes command line options * @return none */ Document2Dcm(); /** Start the conversion. Needs a fully configured input plugin * and a fully configured output plugin to operate. Returns * a dataset with the resulting DICOM object. * @param inputPlug - [in] The input plugin to read pixel data * @param outPlug - [in] The output plugin for specific SOP class output * @param resultDset - [out] The DICOM object resulting from the conversion * @param proposedTS - [out] The proposed transfer syntax (needed e. g. * by JPEG input plugin) * @return EC_Normal, if successfull, error otherwise */ OFCondition convert(D2DSource *inputPlug, I2DOutputPlug *outPlug, DcmDataset*& resultDset, E_TransferSyntax& proposedTS); OFCondition updateOverrideKeys(DcmDataset* dset); /** Sets a DICOM file that should serve as a template for the resulting * DICOM object. Only the dataset of the given file is imported. * @param file - [in] The filename of the template DICOM file * @return none */ void setTemplateFile(const OFString& file); /** Set file from which patient/study/series data should be imported from. * @param file - [in] The DICOM file to read from * @return none */ void setSeriesFrom(const OFString& file); /** Set file from which patient/study/series data should be imported from. * @param file - [in] The DICOM file to read from * @return none */ void setStudyFrom(const OFString& file); /** Enables/Disables incrementing instance number taken over from DICOM file. * This can either be a the study/series file or the template file * provided. * @param incInstNo - [in] If true, the instance number will be incremented * @return none */ void setIncrementInstanceNumber(OFBool incInstNo); /** Enables/disables autotmatic insertion of the value "ISO_IR100" as * a value for the Specific Character Set attribute. If disabled, * no value is inserted for Specifific Character Set but instead * must be provided by other means (see setTemplateFile(), setSeriesFrom(), * setStudyFrom(), setOverrideKeys()). The insertion is applied after * loading the (optional) template file; the value might be overwritten * by the value copied by setStudy/Series/OverrideKeys. * @param insertLatin1 - [in] Enable/disable insertion of Iso Latin 1 * @return none; */ void setISOLatin1(OFBool insertLatin1); void setUTF8(OFBool insertUTF8); /** Specifies some attributes that should be inserted after conversion. * They will override any identical attributes already existing in the * converted result DICOM object. The override keys are applied at the very * end of the conversion and do not undergoe any validity checking. * @param dset - [in] The dataset with override attributes * @return none */ void setOverrideKeys(DcmDataset* dset); DcmDataset* getOverrideKeys() { if (m_overrideKeys == NULL) { m_overrideKeys = new DcmDataset(); } return m_overrideKeys; }; /** Enable/Disable basic validity checks for output dataset * @param doChecks - [in] OFTrue enables checking, OFFalse turns it off. * @param insertMissingType2 - [in] If true (default), missing type 2 * attributes are inserted automatically * @param inventMissingType1 - [in] If true , missing type 1 * attributes are inserted automatically with a predefined * value (if possible). An existing empty type 1 attribute is * assigned a value, too. * @return none */ void setValidityChecking(OFBool doChecks, OFBool insertMissingType2 = OFTrue, OFBool inventMissingType1 = OFTrue); /** Destructor, frees plugin memory * @return none */ ~Document2Dcm(); protected: /** Cleans up template for future insertion of pixel data information, ie * generally removes attributes from image pixel module * @param targetDset - [out] The dataset that should be cleand up * @return none */ void cleanupTemplate(DcmDataset *targetDset); /** Parses patient/study/series level attributes from file as defined * on command line and fills internal attributes accordingly. * @param targetDset - [out] The dataset to write the attributes to * @return EC_Normal, if successful, error otherwise */ OFCondition applyStudyOrSeriesFromFile(DcmDataset *targetDset); /** Increments instance number in given dataset * @param targetDset - [in/out] Dataset to increment instance number in * @return EC_Normal, if successful, error otherwise */ OFCondition incrementInstanceNumber(DcmDataset *targetDset); /** Generates and inserts missing UIDs, ie UIDs not taken over * from --dataset-from --study from and --series-from options * @param dset - [in] The dataset to write the UIDs to * @return EC_Normal, if successful, error otherwise */ OFCondition generateUIDs(DcmDataset *dset); /** Do some completeness / validity checks. Should be called when * dataset is completed and is about to be saved. * @param dataset - [in] The dataset to check * @return Error string if error occurs, empty string otherwise */ OFString isValid(DcmDataset& dataset) const; /** Copy override keys over existing keys in given dataset. * @param outputDset - [out] dataset to which the override keys are copied */ void applyOverrideKeys(DcmDataset *outputDset); /** Inserts "ISO_IR100" in the attribute "Specific Character Set". * Overwrites any existing value. * @param outputDset - [out] The dataset to write to * @return EC_Normal if insertion is successfull, error code otherwise */ OFCondition insertLatin1(DcmDataset *outputDset); OFCondition insertUTF8(DcmDataset *outputDset); private: /* Attributes for writing DICOM dataset */ /// These attributes are applied to the dataset after conversion /// (and are not checked by the isValid() function) DcmDataset *m_overrideKeys; /// If not empty, the DICOM file specified in this variable is used /// as a base for the DICOM image file to be created, ie. all attributes /// are taken over from this template file OFString m_templateFile; /// If true, patient and study data is read from file OFBool m_readStudyLevel; /// If true, patient, study and series data is read from file OFBool m_readSeriesLevel; /// File to read study and series from OFString m_studySeriesFile; /// If true, Instance Number ist read from file and incremented by 1 OFBool m_incInstNoFromFile; /// If true, some simple attribute checks (missing type 2 attributes or /// missing type 1 values) are omitted OFBool m_disableAttribChecks; /// If enabled, ISO_IR100 (ISO Latin 1) is inserted as a standard value /// for attribute "Specific Character Set". Insertion takes place after /// loading (optional) template file. OFBool m_insertLatin1; OFBool m_insertUTF8; }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/foooutpl.h000066400000000000000000000050231314736454600252350ustar00rootroot00000000000000/* * * $Id: foooutpl.h $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Base class for converter from image file to DICOM * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.4 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #pragma once #include "i2doutpl.h" class FooOutputPlug: public I2DOutputPlug { public: /** Constructor, initializes member variables * @return none */ FooOutputPlug() : I2DOutputPlug() {}; /** Virtual function that returns a short name of the plugin. * @return The name of the plugin */ virtual OFString ident() { return "Foo"; } /** Virtual function that returns the Storage SOP class UID, the plugin writes. * @param suppSOPs - [out] List containing supported output SOP classes * @return String containing the Storage SOP class UID */ virtual void supportedSOPClassUIDs(OFList /*suppSOPs*/) { } /** Outputs SOP class specific information into dataset * @param dataset - [in/out] Dataset to write to * @return EC_Normal if successful, error otherwise */ virtual OFCondition convert(DcmDataset &/*dataset*/) const { OFCondition cond; return cond; } /** Do some completeness / validity checks. Should be called when * dataset is completed and is about to be saved. * @param dataset - [in] The dataset to check * @return Error string if error occurs, empty string otherwise */ virtual OFString isValid(DcmDataset& /*dataset*/) const { return ""; } /** Destructor * @return none */ virtual ~FooOutputPlug() {}; protected: }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2dimgs.cpp000066400000000000000000000303331314736454600252610ustar00rootroot00000000000000/* * * $Id: i2dimgs.cpp $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Base Class for plugins extracting pixel data from standard * image files * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include "document2dcm.h" #include #include "dcmtk/dcmdata/dctk.h" //#include "dcmtk/dcmdata/dcdebug.h" #include "dcmtk/dcmdata/cmdlnarg.h" #include "dcmtk/ofstd/ofconapp.h" #include "dcmtk/dcmdata/dcuid.h" /* for dcmtk version name */ #include "dcmtk/dcmjpeg/djencode.h" /* for dcmjpeg encoders */ #include "dcmtk/dcmjpeg/djrplol.h" /* for DJ_RPLossless */ #include "dcmtk/dcmjpeg/djrploss.h" /* for DJ_RPLossy */ #include "dcmtk/dcmjpeg/dipijpeg.h" /* for dcmimage JPEG plugin */ #include "dcmtk/dcmimage/diregist.h" /* include to support color images */ #include "i2dimgs.h" #include
    #ifdef DCMTK_POST_20170228 #include #endif /** Reads pixel data and corresponding attributes like rows etc. from image * file and inserts them into dataset. * @param dset - [out] The dataset to export the pixel data attributes to * @param outputTS - [out] The proposed transfex syntax of the dataset * @return EC_Normal, if successful, error otherwise */ OFCondition I2DImgSource::readAndInsertSpecificTags( DcmDataset* dset, E_TransferSyntax& outputTS) { Uint16 samplesPerPixel, rows, cols, bitsAlloc, bitsStored, highBit, pixelRepr, planConf; Uint16 pixAspectH = 1; Uint16 pixAspectV = 1; OFString photoMetrInt; outputTS = EXS_Unknown; char* pixData = NULL; Uint32 length; OFCondition cond = readPixelData(rows, cols, samplesPerPixel, photoMetrInt, bitsAlloc, bitsStored, highBit, pixelRepr, planConf, pixAspectH, pixAspectV, pixData, length, outputTS); if (cond.bad()) return cond; if (m_debug) printMessage(m_logStream, "Document2Dcm: Store imported pixel data to DICOM file"); cond = dset->putAndInsertUint16(DCM_SamplesPerPixel, samplesPerPixel); if (cond.bad()) return cond; cond = dset->putAndInsertOFStringArray(DCM_PhotometricInterpretation, photoMetrInt); if (cond.bad()) return cond; cond = dset->putAndInsertOFStringArray(DCM_ConversionType, "WSD"); if (cond.bad()) return cond; /* cond = dset->putAndInsertOFStringArray(DCM_ImagerPixelSpacing, "1.000000\\1.000000"); if (cond.bad()) return cond; cond = dset->putAndInsertOFStringArray(DCM_PixelSpacing, "1.000000\\1.000000"); if (cond.bad()) return cond; */ cond = dset->putAndInsertOFStringArray(DCM_ImagePositionPatient, "0.000000\\0.000000\\0.000000"); if (cond.bad()) return cond; cond = dset->putAndInsertOFStringArray(DCM_ImageOrientationPatient, "1.000000\\0.000000\\0.000000\\0.000000\\1.000000\\0.000000"); if (cond.bad()) return cond; // Should only be written if Samples per Pixel > 1 if (samplesPerPixel > 1) { cond = dset->putAndInsertUint16(DCM_PlanarConfiguration, planConf); if (cond.bad()) return cond; } cond = dset->putAndInsertUint16(DCM_Rows, rows); if (cond.bad()) return cond; cond = dset->putAndInsertUint16(DCM_Columns, cols); if (cond.bad()) return cond; cond = dset->putAndInsertUint16(DCM_BitsAllocated, bitsAlloc); if (cond.bad()) return cond; cond = dset->putAndInsertUint16(DCM_BitsStored, bitsStored); if (cond.bad()) return cond; cond = dset->putAndInsertUint16(DCM_HighBit, highBit); if (cond.bad()) return cond; cond = dset->putAndInsertUint16(DCM_PixelRepresentation, pixelRepr); if (cond.bad()) return cond; if (Recompress()) { // create initial pixel sequence DcmElement* element = newDicomElement(DcmTag(DCM_PixelData, EVR_OW)); element->putUint8Array((const Uint8*)pixData, length); cond = dset->insert(element); if (cond.bad()) { delete element; return cond; } //lo pasamos a jpeg lossless // create representation parameters for lossy and lossless OFCmdUnsignedInt opt_selection_value = 6; //este numero implica cierta perdida... si fuera 0 seria lossless real OFCmdUnsignedInt opt_point_transform = 3; E_TransferSyntax opt_oxfer; GNC::GCS::Permisos::EstadoPermiso codificacion = GNC::GCS::IControladorPermisos::Instance()->Get("core.importacion", "codec"); switch (codificacion.ObtenerValor()) { case 0: { //baseline opt_oxfer = EXS_JPEGProcess1; DJ_RPLossy rp_lossy((int)90); const DcmRepresentationParameter *rp = &rp_lossy; dset->chooseRepresentation(opt_oxfer, rp); } break; case 1: { //progresivo opt_oxfer = EXS_JPEGProcess10_12; DJ_RPLossy rp_lossy((int)90); const DcmRepresentationParameter *rp = &rp_lossy; dset->chooseRepresentation(opt_oxfer, rp); } break; case 2: default: { //lossless GNC::GCS::Permisos::EstadoPermiso estado = GNC::GCS::IControladorPermisos::Instance()->Get("core.importacion", "quality"); if (estado) { opt_point_transform = std::min(estado.ObtenerValor(), 14); opt_point_transform = std::max(estado.ObtenerValor(), 0); } opt_oxfer = EXS_JPEGProcess14SV1; DJ_RPLossless rp_lossless((int)opt_selection_value, (int)opt_point_transform); const DcmRepresentationParameter *rp = &rp_lossless; dset->chooseRepresentation(opt_oxfer, rp); } break; } if(!dset->canWriteXfer(opt_oxfer)) return OFCondition(EC_UnsupportedEncoding); // force meta-header to refresh SOP Class/Instance UIDs. delete dset->remove(DCM_MediaStorageSOPClassUID); delete dset->remove(DCM_MediaStorageSOPInstanceUID); outputTS = opt_oxfer; return cond; } else { if (IsCompressed()) { DcmPixelSequence *pixelSequence = NULL; if (m_debug) printMessage(m_logStream, "Document2Dcm: Store imported pixel data to DICOM file"); // create initial pixel sequence pixelSequence = new DcmPixelSequence(DcmTag(DCM_PixelData, EVR_OB)); if (pixelSequence == NULL) return EC_MemoryExhausted; // insert empty offset table into sequence DcmPixelItem *offsetTable = new DcmPixelItem(DcmTag(DCM_Item, EVR_OB)); if (offsetTable == NULL) { delete pixelSequence; pixelSequence = NULL; return EC_MemoryExhausted; } cond = pixelSequence->insert(offsetTable); if (cond.bad()) { delete offsetTable; offsetTable = NULL; delete pixelSequence; pixelSequence = NULL; return cond; } // insert frame into pixel sequence DcmOffsetList dummyList; cond = pixelSequence->storeCompressedFrame(dummyList, (Uint8*) pixData, length, 0); // storeCompressedFrame(..) does a deep copy, so the pixdata memory can be freed now delete[] pixData; if (cond.bad()) { delete pixelSequence; return cond; } cond = dset->insert(pixelSequence); if (cond.bad()) delete pixelSequence; if (m_debug) printMessage(m_logStream, "Document2Dcm: Inserting Image Pixel module information"); return dset->putAndInsertUint16(DCM_PixelRepresentation, pixelRepr); } else { //little endian to little endian... // create initial pixel sequence DcmElement* element = newDicomElement(DcmTag(DCM_PixelData, EVR_OW)); element->putUint8Array((const Uint8*)pixData, length); cond = dset->insert(element); if (cond.bad()) { delete element; return cond; } outputTS = EXS_LittleEndianExplicit; return cond; } } } /** Do some completeness / validity checks. Should be called when * dataset is completed and is about to be saved. * @param dataset - [in] The dataset to check * @return Error string if error occurs, empty string otherwise */ OFString I2DImgSource::isValid(DcmDataset& dset) const { if (m_debug) printMessage(m_logStream, "I2DImgSource: Checking validity of DICOM output dataset"); OFString dummy, err; OFCondition cond; // General Image module attributes /* Patient Orientation is of type 2C and must be written if not Image Orientation (Patient) (0020,0037) and Image Position (Patient) are required for the IOD. The current output IODs (SC, new SC, VLP) therefore need Patient Orientation. Make sure any new output plugin takes care about this attribute */ err += checkAndInventType2Attrib(DCM_PatientOrientation, &dset); // Image Pixel Module err += checkAndInventType1Attrib(DCM_Rows, &dset); err += checkAndInventType1Attrib(DCM_Columns, &dset); err += checkAndInventType1Attrib(DCM_SamplesPerPixel, &dset); err += checkAndInventType1Attrib(DCM_PhotometricInterpretation, &dset); err += checkAndInventType1Attrib(DCM_BitsAllocated, &dset); err += checkAndInventType1Attrib(DCM_BitsStored, &dset); err += checkAndInventType1Attrib(DCM_HighBit, &dset); err += checkAndInventType1Attrib(DCM_PixelRepresentation, &dset); err += checkAndInventType1Attrib(DCM_SOPInstanceUID, &dset); return err; } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2dimgs.h000066400000000000000000000135131314736454600247270ustar00rootroot00000000000000/* * * $Id: i2dimgs.h $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Base Class for plugins extracting pixel data from standard * image files * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #pragma once #include "d2dsource.h" class I2DImgSource: public D2DSource { public: /** Constructor */ I2DImgSource() : D2DSource() {} /** Returns identifier for the image input format the plugin imports. * @return A short identifier (e. g. "JPEG") */ virtual OFString inputFormat() const =0; /** true if pixeldata is compressed */ virtual bool IsCompressed() const = 0; /*true if pixeldata has to be compressed*/ virtual bool Recompress() const = 0; /** Reads pixel data and corresponding attributes like rows etc. from image * file and inserts them into dataset. * @param dset - [out] The dataset to export the pixel data attributes to * @param outputTS - [out] The proposed transfex syntax of the dataset * @return EC_Normal, if successful, error otherwise */ virtual OFCondition readAndInsertSpecificTags( DcmDataset* dset, E_TransferSyntax& outputTS); /** Do some completeness / validity checks. Should be called when * dataset is completed and is about to be saved. * @param dataset - [in] The dataset to check * @return Error string if error occurs, empty string otherwise */ OFString isValid(DcmDataset& dset) const; /** Extracts the raw JPEG pixel data stream from a JPEG file and returns some * image information about this pixel data. * Raw means here that all APP markers (e.g. JFIF information) are removed from the JPEG stream. * The pixel data returned is a JPEG stream in JPEG interchange format. * This function allocates memory for the pixel data returned to the user. The caller of this * function is responsible for deleting the memory buffer * @param rows - [out] Rows of image * @param cols - [out] Columns of image * @param samplesPerPixel - [out] Number of components per pixel * @param photoMetrInt - [out] The DICOM color model used for the compressed data * @param bitsAlloc - [out] Bits Allocated for one sample * @param bitsStored - [out] Bits Stored, number of bits stored within Bits Allocated * @param highBit - [out] High Bit, hightest bit position set within Bits Allocated * @param pixelRepr - [out] Pixel Representation (0=unsigned, 1=signed) * @param planConf - [out] Planar Configuration * @param pixAspectH - [out] Horizontal value of pixel aspect ratio * @param pixAspectV - [out] Vertical value of pixel aspect ratio * @param pixData - [out] Pointer to the pixel data in JPEG Interchange Format (but without APPx markers). * @param length - [out] Length of pixel data * @param ts - [out] The transfer syntax imposed by the imported pixel pixel data. This is necessary for the JPEG importer that needs to report which TS must be used for the imported JPEG data (ie. baseline, progressive, ...). If pixel data is uncompressed, EXS_Unknown is returned * @return EC_Normal, if successful, error otherwise */ virtual OFCondition readPixelData( Uint16& rows, Uint16& cols, Uint16& samplesPerPixel, OFString& photoMetrInt, Uint16& bitsAlloc, Uint16& bitsStored, Uint16& highBit, Uint16& pixelRepr, Uint16& planConf, Uint16& pixAspectH, Uint16& pixAspectV, char*& pixData, Uint32& length, E_TransferSyntax& ts) =0; /** Virtual Destructor */ virtual ~I2DImgSource() {} protected: }; /* * CVS/RCS Log: * $Log: i2dimgs.h,v $ * Revision 1.2 2009-01-16 09:51:55 onken * Completed doxygen documentation for libi2d. * * Revision 1.1 2008-01-16 15:08:38 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * * Revision 1.2 2008-01-11 14:17:53 onken * Added various options to i2dlib. Changed logging to use a configurable * logstream. Added output plugin for the new Multiframe Secondary Capture SOP * Classes. Added mode for JPEG plugin to copy exsiting APPn markers (except * JFIF). Changed img2dcm default behaviour to invent type1/type2 attributes (no * need for templates any more). Added some bug fixes. * * Revision 1.1 2007/11/08 15:58:55 onken * Initial checkin of img2dcm application and corresponding library i2dlib. * * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2djpgs.cpp000066400000000000000000001052651314736454600252740ustar00rootroot00000000000000/* * * $Id: i2djpgs.cpp $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Class to extract pixel data and meta information from JPEG file * * Last Update: $Author: meichel $ * Update Date: $Date: 2009-02-18 12:22:11 $ * CVS/RCS Revision: $Revision: 1.4 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include "i2djpgs.h" #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif I2DJpegSource::I2DJpegSource() : m_jpegFileMap(), jpegFile(), m_disableProgrTs(OFFalse), m_disableExtSeqTs(OFFalse), m_insistOnJFIF(OFFalse), m_keepAPPn(OFFalse) { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Plugin instantiated"); } OFString I2DJpegSource::inputFormat() const { return "JPEG"; } OFCondition I2DJpegSource::openFile(const OFString &filename) { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Opening JPEG file: ", filename); OFCondition cond; if (filename.length() == 0) return makeOFCondition(OFM_dcmdata, 18, OF_error, "No JPEG filename specified"); // Try to open JPEG file if ((jpegFile.of_fopen(filename.c_str(), "rb")) == OFFalse) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to open JPEG file"); return cond; } void I2DJpegSource::setExtSeqSupport(const OFBool enabled) { m_disableExtSeqTs = !enabled; } void I2DJpegSource::setProgrSupport(const OFBool enabled) { m_disableProgrTs = !enabled; } void I2DJpegSource::setInsistOnJFIF(const OFBool enabled) { m_insistOnJFIF = enabled; } void I2DJpegSource::setKeepAPPn(const OFBool enabled) { m_keepAPPn = enabled; } OFCondition I2DJpegSource::readPixelData(Uint16& rows, Uint16& cols, Uint16& samplesPerPixel, OFString& photoMetrInt, Uint16& bitsAlloc, Uint16& bitsStored, Uint16& highBit, Uint16& pixelRepr, Uint16& planConf, Uint16& pixAspectH, Uint16& pixAspectV, char*& pixData, Uint32& length, E_TransferSyntax &ts) { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Importing JPEG pixel data"); OFCondition cond = openFile(m_imageFile); // return error if file is not open if (cond.bad()) { closeFile(); return cond; } // Create "map" with byte positions of all JPEG markers in JPEG file cond = createJPEGFileMap(); if (cond.bad()) { clearMap(); closeFile(); return cond; } // Check for image data in file (look for SOF marker) E_JPGMARKER jpegEncoding = E_JPGMARKER_UNKNOWN; OFIterator entry = m_jpegFileMap.begin(); while (entry != m_jpegFileMap.end()) { if ( isSOFMarker((*entry)->marker) ) { jpegEncoding = (E_JPGMARKER) ((*entry)->marker); break; } entry++; } if (entry == m_jpegFileMap.end()) { closeFile(); return makeOFCondition(OFM_dcmdata, 18, OF_error, "No image data found in JPEG file"); } // Reject arithmetic and hierarchical (differential) encodings (not supported) cond = isJPEGEncodingSupported(jpegEncoding); if (cond.bad()) { closeFile(); return cond; } // Get transfer syntax associated with the given JPEG encoding ts = associatedTS(jpegEncoding); // Extract width, height, samples per pixel, bits per sample Uint16 width, height, spp, bps; cond = getSOFImageParameters(**entry, width, height, spp, bps); if (cond.bad()) { closeFile(); return cond; } // Return error if invalid image attributes were found if (height == 0 || width == 0) { closeFile(); return makeOFCondition(OFM_dcmdata, 18, OF_error, "Invalid image size (width or height = 0)"); } // Examine JFIF information (version, horizontal and vertical aspect ratio, aspect ratio units. Uint16 jfifVersion, unit; Uint16 aspectH = 1; Uint16 aspectV = 1; entry = m_jpegFileMap.begin(); while (entry != m_jpegFileMap.end()) { if ( (*entry)->marker == E_JPGMARKER_APP0 ) break; entry++; } if ( entry == m_jpegFileMap.end()) { if (!m_insistOnJFIF) { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Ignoring missing JFIF header"); } else { closeFile(); return makeOFCondition(OFM_dcmdata, 18, OF_error, "No JFIF information found in JPEG file"); } } else cond = getJFIFImageParameters(**entry, jfifVersion, aspectH, aspectV, unit); if (cond.bad()) { if (!m_insistOnJFIF) { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Ignoring errors while evaluating JFIF data"); } else { closeFile(); return cond; } } pixAspectH = aspectH; pixAspectV = aspectV; // Collect information needed for image pixel module rows = height; cols = width; samplesPerPixel = spp; bitsAlloc = bps; bitsStored = bitsAlloc; highBit = bitsStored - 1; if (samplesPerPixel == 1) photoMetrInt = "MONOCHROME2"; else if (samplesPerPixel == 3) photoMetrInt = "YBR_FULL_422"; else return makeOFCondition(OFM_dcmdata, 18, OF_error, "For JPEG data, Samples per Pixel must be 1 or 3"); // Planar Configuration and Pixel Representation is always 0 for JPEG data planConf = 0; pixelRepr = 0; Uint32 tLength = 0; char* tPixelData = NULL; // Keep all APPx info (however, JFIF is always removed) if (m_keepAPPn) cond = copyJPEGStream(tPixelData, tLength); // Cut off all APPx information from JPEG and get raw JPEG bit stream into memory else cond = extractRawJPEGStream(tPixelData, tLength); if (cond.bad()) { closeFile(); return cond; } length = tLength; pixData = tPixelData; return cond; } /* * Process a SOFn marker. */ OFCondition I2DJpegSource::getSOFImageParameters( const JPEGFileMapEntry& entry, Uint16& imageWidth, Uint16& imageHeight, Uint16& samplesPerPixel, Uint16& bitsPerSample) { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Checking for JPEG SOF image parameters"); if ( (entry.marker < E_JPGMARKER_SOF0) || (entry.marker > E_JPGMARKER_SOF15) ) return EC_IllegalCall; Uint16 length; Uint16 image_height, image_width; Uint8 data_precision, num_components; int result; // seek to the given SOFn marker jpegFile.of_fseek(entry.bytePos, SEEK_SET); result = read2Bytes(length); /* usual parameter length count */ if (result == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); // read values result = read1Byte(data_precision); if (result == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); result = read2Bytes(image_height); if (result == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); result = read2Bytes(image_width); if (result == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); result = read1Byte(num_components); if (result == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); imageWidth = image_width; imageHeight = image_height; samplesPerPixel = num_components; bitsPerSample = data_precision; if (m_debug) { char buf[100]; printMessage(m_logStream, "I2DJpegSource: JPEG SOF image parameters:"); sprintf(buf, "%u", image_width); printMessage(m_logStream, "I2DJpegSource: Image Width: ", buf); sprintf(buf, "%u", image_height); printMessage(m_logStream, "I2DJpegSource: Image Height: ", buf); sprintf(buf, "%u", num_components); printMessage(m_logStream, "I2DJpegSource: Number of Components: ", buf); sprintf(buf, "%u", data_precision); printMessage(m_logStream, "I2DJpegSource: Data Precision: ", buf); } if (length != (unsigned int) (8 + num_components * 3)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Bogus SOF marker length"); return EC_Normal; } // ignores thumbnail data OFCondition I2DJpegSource::getJFIFImageParameters( const JPEGFileMapEntry& entry, Uint16& jfifVersion, Uint16& pixelAspectH, Uint16& pixelAspectV, Uint16& unit) { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Examing JFIF information"); if (entry.marker != E_JPGMARKER_APP0) return EC_IllegalCall; Uint16 jv, pah, pav, unt; // go to specified byte position and read on to value field Uint16 length; jpegFile.of_fseek(entry.bytePos, SEEK_SET); int result = read2Bytes(length); /* usual parameter length count */ if (result == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); // read and check the 5 byte "JFIF" marker value (X'4A', X'46', X'49', X'46', X'00') Uint16 twoBytes; result = read2Bytes(twoBytes); if ( (result == EOF) || (twoBytes != 0x4a46) ) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Invalid JFIF marker or JFIF marker not found"); result = read2Bytes(twoBytes); if ( (result == EOF) || (twoBytes != 0x4946) ) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Invalid JFIF marker or JFIF marker not found"); Uint8 oneByte; result = read1Byte(oneByte); if ( (result == EOF)|| (oneByte != 0x00) ) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Invalid JFIF marker or JFIF marker not found"); // read JFIF version result = read2Bytes(twoBytes); if (result == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); jv = twoBytes; // read pixel aspect ratio unit result = read1Byte(oneByte); if ( (result == EOF) || (oneByte > 2) ) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); unt = oneByte; // read horizontal aspect ratio (XDensity) result = read2Bytes(twoBytes); if (result == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); pah = twoBytes; // read vertical aspect ratio (YDensity) result = read2Bytes(twoBytes); if (result == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); pav = twoBytes; // prepare return values and return jfifVersion = jv; pixelAspectH = pah; pixelAspectV = pav; unit = unt; if (m_debug) { char buf[100]; printMessage(m_logStream, "I2DJpegSource: JPEG JFIF image parameters:", buf); sprintf(buf, "%u", jfifVersion); printMessage(m_logStream, "I2DJpegSource: JFIF version: ", buf); sprintf(buf, "%u", pixelAspectH); printMessage(m_logStream, "I2DJpegSource: Horizontal Pixel Aspect Ratio ", buf); sprintf(buf, "%u", pixelAspectV); printMessage(m_logStream, "I2DJpegSource: Vertical Pixel Aspect Ratio: ", buf); sprintf(buf, "%u", unit); printMessage(m_logStream, "I2DJpegSource: Units: ", buf); } return EC_Normal; } OFCondition I2DJpegSource::copyJPEGStream(char*& pixelData, Uint32& pixLength) { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Copying JPEG data from JPEG file"); /* Calculate length of total stream as found in the file * Therefore, look at byte positions from SOI and EOI marker */ offile_off_t bytePosJFIF = 0; offile_off_t bytePosAfterJFIF = 0; int marker = 0; // determine file size offile_off_t result = jpegFile.of_fseek(0, SEEK_END); if (result != 0) return EC_IllegalParameter; offile_off_t filesize = jpegFile.of_ftell(); // Only pixel data up to 2^32 bytes is supported (DICOM) and maximum size for "new" operator = size_t if ( (unsigned long long)filesize > 0xffffffff ) { printMessage(m_logStream, "I2DJpegSource: JPEG file length longer than 2^32 bytes (or larger than size_t capacity), aborting"); return EC_MemoryExhausted; } // get position of JFIF section and SOI marker OFIterator entry = m_jpegFileMap.begin(); while (entry != m_jpegFileMap.end()) { marker = (*entry)->marker; if ( marker == E_JPGMARKER_APP0 ) { bytePosJFIF = (*entry)->bytePos - 1; // include first byte of marker (FF) entry++; bytePosAfterJFIF = (*entry)->bytePos - 1; // include first byte (FF) of marker after APPn break; } entry++; } // Go to starting position (SOI marker) of JPEG stream data jpegFile.of_fseek(0, SEEK_SET); // Allocate buffer for raw JPEG data pixLength = OFstatic_cast(Uint32, filesize - (bytePosAfterJFIF - bytePosJFIF)); pixelData = new char[pixLength]; char *currBufferPos = pixelData; // exclude JFIF if present if (bytePosJFIF != 0) { // read from SOI to JFIF result = jpegFile.of_fread (currBufferPos, 1, 2); if (result != 2) return EC_IllegalCall; currBufferPos += 2; // read from end of JFIF to end of file jpegFile.of_fseek(bytePosAfterJFIF - 1, SEEK_SET); // -1 because offsets start with 0 result = jpegFile.of_fread (currBufferPos, 1, OFstatic_cast(size_t, (filesize - bytePosAfterJFIF + 1))); if (result != filesize - bytePosAfterJFIF + 1) return EC_IllegalCall; } else { // otherwise copy everything starting with SOI marker result = jpegFile.of_fread (currBufferPos, 1, OFstatic_cast(size_t, filesize)); if (result != filesize) return EC_IllegalCall; } return EC_Normal; } // expects valid JPEG stream (especially exactly one SOI and one EOI marker) OFCondition I2DJpegSource::extractRawJPEGStream(char*& pixelData, Uint32& pixLength) { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Extracting JPEG data from JPEG file"); OFCondition cond; int marker = 0; Uint16 length; /* Calculate length of total stream as found in the file * Therefore, look at byte positions from SOI and EOI marker and * and exclude all APPn markers in calculation */ offile_off_t bytePosSOI = 0; offile_off_t bytePosEOI = 0; offile_off_t totalAPPSize = 0; OFList appPosAndLengths; OFIterator entry = m_jpegFileMap.begin(); while (entry != m_jpegFileMap.end()) { marker = (*entry)->marker; if (marker == E_JPGMARKER_SOI) { bytePosSOI = (*entry)->bytePos; // Subtract one byte for the preceding 0xFF of the SOI-Marker bytePosSOI -= 1; } else if (marker == E_JPGMARKER_EOI) { bytePosEOI = (*entry)->bytePos; // No need to subtract / add bytes break; } else if (marker >= E_JPGMARKER_APP0 && marker <= E_JPGMARKER_APP15) { jpegFile.of_fseek((*entry)->bytePos - jpegFile.of_ftell(), SEEK_CUR); int result = read2Bytes( length); if (result == EOF) { jpegFile.of_fclose(); return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); } // remember pos and length of APP data so we don't need a second "scan" for that appPosAndLengths.push_back( (*entry)->bytePos - 1 ); // -1 for FF of marker appPosAndLengths.push_back( length ); // add length of marker value to total APP size totalAPPSize += length; // add the marker length itself to total APP size totalAPPSize += 2; } // Advance to next segment entry++; } if ( (entry == m_jpegFileMap.end()) || (bytePosSOI == 0) || (bytePosEOI == 0)) // at least endmarker was not found return EC_IllegalCall; offile_off_t rawStreamSize = bytePosEOI - bytePosSOI - totalAPPSize; // Start position n and endpos. m results in a total amount of m-n+1 bytes rawStreamSize++; // Allocate buffer for raw JPEG data // Only pixel data up to 2^32 bytes is supported (DICOM) if ( (unsigned long long)rawStreamSize > 0xffffffff ) { printMessage(m_logStream, "I2DJpegSource: Raw JPEG stream length (%lu) longer than 2^32 bytes (or larger than size_t capacity), aborting"); std::cerr << "size: " << rawStreamSize << std::endl; return EC_MemoryExhausted; } pixelData = new char[OFstatic_cast(size_t, rawStreamSize)]; // keep track of current write position in memory buffer char *currBufferPos = pixelData; // Go to starting position (SOI marker) of JPEG stream data jpegFile.of_fseek(bytePosSOI-1, SEEK_SET); /* Copy everything but leave out APP segments */ OFBool finished = OFFalse; offile_off_t endOfBlock = 0; offile_off_t startOfNextBlock = 0; while (!finished) { // determine position of the next block to be read if ( appPosAndLengths.size() != 0) { // we have some APP blocks left endOfBlock = appPosAndLengths.front() - 1; appPosAndLengths.pop_front(); startOfNextBlock = endOfBlock + appPosAndLengths.front() + 2; // +2 for marker appPosAndLengths.pop_front(); } else { // we can read to the end endOfBlock = bytePosEOI; finished = OFTrue; } // read block offile_off_t blockSize = endOfBlock - jpegFile.of_ftell(); int result = jpegFile.of_fread (currBufferPos, 1, OFstatic_cast(size_t, blockSize)); if (result != blockSize) return EC_IllegalCall; // prepare for reading next block if (!finished) { jpegFile.of_fseek(startOfNextBlock, SEEK_SET); currBufferPos += blockSize; } } // update result variable pixLength = OFstatic_cast(size_t, rawStreamSize); return cond; } OFCondition I2DJpegSource::createJPEGFileMap() { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Examing JPEG file and creating map of JPEG markers"); E_JPGMARKER marker; JPEGFileMapEntry *entry = NULL; OFBool lastWasSOSMarker = OFFalse; OFCondition cond; /* Expect SOI at start of file */ E_JPGMARKER first; cond = firstMarker(first); if (cond.bad()) return cond; entry = new JPEGFileMapEntry(); entry->bytePos = jpegFile.of_ftell(); entry->marker = first; m_jpegFileMap.push_back(entry); if (first != E_JPGMARKER_SOI) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DJpegSource: SOI marker not found at beginning of JPEG stream"); /* Scan miscellaneous markers until we reach EOI */ while (cond.good()) { cond = nextMarker(lastWasSOSMarker, marker); if (cond.good()) { entry = new JPEGFileMapEntry(); entry->bytePos = jpegFile.of_ftell(); entry->marker = marker; m_jpegFileMap.push_back(entry); if (marker == E_JPGMARKER_SOS) { lastWasSOSMarker = OFTrue; } else if (marker == E_JPGMARKER_EOI) { // End of file reached cond = EC_Normal; break; } else if ( isSOFMarker(marker) && m_keepAPPn ) { cond = EC_Normal; break; } if ( !isRSTMarker(marker) ) // RST marker does not have a length that could be used for skipping skipVariable(); } } /* end loop */ if (m_debug) debugDumpJPEGFileMap(); return cond; } OFBool I2DJpegSource::isRSTMarker(const E_JPGMARKER& marker) const { return ((marker >= E_JPGMARKER_RST0) && (marker <= E_JPGMARKER_RST7)); } OFBool I2DJpegSource::isSOFMarker(const E_JPGMARKER& marker) const { return ( (marker >= E_JPGMARKER_SOF0) && (marker <= E_JPGMARKER_SOF15) && (marker != E_JPGMARKER_DHT) && (marker != E_JPGMARKER_DAC)); } OFString I2DJpegSource::jpegMarkerToString(const E_JPGMARKER& marker) { switch (marker) { case(E_JPGMARKER_SOF0) : return "SOF0: Baseline DCT"; case(E_JPGMARKER_SOF1) : return "SOF1: Extended sequential DCT"; case(E_JPGMARKER_SOF2) : return "SOF2: Progressive DCT"; case(E_JPGMARKER_SOF3) : return "SOF3: Lossless (sequential)"; case(E_JPGMARKER_SOF5) : return "SOF5: Differential sequential DCT"; case(E_JPGMARKER_SOF6) : return "SOF6: Differential progressive DCT"; case(E_JPGMARKER_SOF7) : return "SOF7: Differential lossless (sequential)"; case(E_JPGMARKER_JPG) : return "JPG: JPEG extension"; case(E_JPGMARKER_SOF9) : return "SOF9: Extended sequential DCT"; case(E_JPGMARKER_SOF10) : return "SOF10: Progressive DCT"; case(E_JPGMARKER_SOF11) : return "SOF11: Lossless (sequential)"; case(E_JPGMARKER_SOF13) : return "SOF13: Differential sequential DCT"; case(E_JPGMARKER_SOF14) : return "SOF14: Differential progressive DCT"; case(E_JPGMARKER_SOF15) : return "SOF15: Differential lossless (sequential)"; case(E_JPGMARKER_DHT) : return "DHT: Huffman table(s)"; case(E_JPGMARKER_DAC) : return "DAC: Arithmetic coding conditioning(s)"; case(E_JPGMARKER_SOI) : return "SOI: Start of image"; case(E_JPGMARKER_EOI) : return "EOI: End of image"; case(E_JPGMARKER_SOS) : return "SOS: Start of scan"; case(E_JPGMARKER_DQT) : return "DQT: Quantization table(s)"; case(E_JPGMARKER_DNL) : return "DNL: Number of lines"; case(E_JPGMARKER_DRI) : return "DRI: Define restart interval"; case(E_JPGMARKER_DHP) : return "DHP: Hierarchical progression"; case(E_JPGMARKER_EXP) : return "EXP: Expand reference component(s)"; case(E_JPGMARKER_COM) : return "COM: Comment"; case(E_JPGMARKER_TEM) : return "TEM: For temporary private use in arithmetic coding"; default: if ((marker >= E_JPGMARKER_RST0) && (marker <= E_JPGMARKER_RST7)) { return "RSTn: Restart interval termination"; } if ((marker >= E_JPGMARKER_APP0) && (marker <= E_JPGMARKER_APP15)) { return "APPn: Application segment"; } if ((marker >= E_JPGMARKER_JPGN0) && (marker <= E_JPGMARKER_JPGN13)) { return "JPGn: JPEG extension"; } if ((marker >= E_JPGMARKER_RES0) && (marker <= E_JPGMARKER_RESN)) { return "RESn"; } } OFString msg = "UNKNOWN MARKER :"; char hexNo[10]; sprintf(hexNo,"%x2", marker); msg += hexNo; return msg; } /* Read one byte, testing for EOF */ int I2DJpegSource::read1Byte(Uint8& result) { register int c; c = jpegFile.of_fgetc(); if (c == EOF) return EOF; result = (Uint8) c; return 0; } /* Read 2 bytes, convert to unsigned int */ /* All 2-byte quantities in JPEG markers are MSB first */ int I2DJpegSource::read2Bytes(Uint16& result) { int c1, c2; c1 = jpegFile.of_fgetc(); if (c1 == EOF) return EOF; c2 = jpegFile.of_fgetc(); if (c2 == EOF) return EOF; result = (((Uint16) c1) << 8) + ((Uint16) c2); return 0; } /* * Find the next JPEG marker and return its marker code. * We expect at least one FF byte, possibly more if the compressor used FFs * to pad the file. * There could also be non-FF garbage between markers. The treatment of such * garbage is unspecified; we choose to skip over it but emit a warning msg. */ OFCondition I2DJpegSource::nextMarker(const OFBool& lastWasSOSMarker, E_JPGMARKER& result) { Uint8 c; int discarded_bytes = 0; int oneByte; do { /* Find 0xFF byte; count and skip any non-FFs. */ oneByte = read1Byte(c); if (oneByte == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); while (c != 0xFF) { if (!lastWasSOSMarker) discarded_bytes++; oneByte = read1Byte(c); if (oneByte == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); } /* Get marker code byte, swallowing any duplicate FF bytes. Extra FFs * are legal as pad bytes, so don't count them in discarded_bytes. */ do { oneByte = read1Byte(c); if (oneByte == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); } while (c == 0xFF); } while (lastWasSOSMarker && c == 0x00); if (discarded_bytes != 0) { printMessage(m_logStream, "Warning: garbage data found in JPEG file"); } result = (E_JPGMARKER)c; return EC_Normal; } /* * Read the initial marker, which should be SOI. * For a JFIF file, the first two bytes of the file should be literally * 0xFF M_SOI. */ OFCondition I2DJpegSource::firstMarker(E_JPGMARKER& result) { Uint8 c1, c2; c1 = (Uint8)jpegFile.of_fgetc(); c2 = (Uint8)jpegFile.of_fgetc(); if (c1 != 0xFF || c2 != E_JPGMARKER_SOI) { return makeOFCondition(OFM_dcmdata, 18, OF_error, "Not a JPEG file"); } result = (E_JPGMARKER)c2; return EC_Normal; } /* * Most types of marker are followed by a variable-length parameter segment. * This routine skips over the parameters for any marker we don't otherwise * want to process. * Note that we MUST skip the parameter segment explicitly in order not to * be fooled by 0xFF bytes that might appear within the parameter segment; * such bytes do NOT introduce new markers. */ OFCondition I2DJpegSource::skipVariable() /* Skip over an unknown or uninteresting variable-length marker */ { Uint16 length; /* Get the marker parameter length count */ int result = read2Bytes(length); if (result == EOF) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Premature EOF in JPEG file"); /* Length includes itself, so must be at least 2 */ if (length < 2) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Erroneous JPEG marker length"); length -= 2; /* Skip over the remaining bytes */ jpegFile.of_fseek(length, SEEK_CUR); return EC_Normal; } OFCondition I2DJpegSource::isJPEGEncodingSupported(const E_JPGMARKER& jpegEncoding) const { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Checking whether JPEG encoding is supported: ", jpegMarkerToString(jpegEncoding)); switch (jpegEncoding) { case E_JPGMARKER_SOF0: return EC_Normal; case E_JPGMARKER_SOF1: if (!m_disableExtSeqTs) return EC_Normal; else return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to convert: Extended sequential JPEG coding found but support disabled"); case E_JPGMARKER_SOF2: // Progressive if (!m_disableProgrTs) return EC_Normal; else return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to convert: Progressive JPEG coding found but disabled"); // SOF3: Lossless, SOF5-7: Hierarchical (differential), SOF9-15: Arithmetic coding, all other default: OFString errMsg("JPEG data with encoding: '"); errMsg += I2DJpegSource::jpegMarkerToString(jpegEncoding); errMsg += "' not supported"; return makeOFCondition(OFM_dcmdata, 18, OF_error, errMsg.c_str()); } } E_TransferSyntax I2DJpegSource::associatedTS(const E_JPGMARKER& jpegEncoding) const { switch (jpegEncoding) { case E_JPGMARKER_SOF0: // Baseline return EXS_JPEGProcess1; case E_JPGMARKER_SOF1: // Extended Sequential return EXS_JPEGProcess2_4; case E_JPGMARKER_SOF2: // Progressive return EXS_JPEGProcess10_12; default: return EXS_Unknown; } } void I2DJpegSource::debugDumpJPEGFileMap() const { printMessage(m_logStream,"I2DJpegSource: Dumping JPEG marker file map: "); if (m_keepAPPn) printMessage(m_logStream, "I2DJpegSource: Keep APPn option enabled, any markers after SOFn marker will not be dumped"); OFIterator it= m_jpegFileMap.begin(); while (it != m_jpegFileMap.end()) { if (m_logStream) { m_logStream->lockCerr() << "I2DJpegSource: Byte Position: 0x" << std::hex << std::setw(8) << std::setfill('0') /* need to cast bytePos to unsigned long to keep VC6 happy */ << OFstatic_cast(unsigned long, (*it)->bytePos) <<" | Marker: " << jpegMarkerToString( (*it)->marker) << std::endl << std::dec; m_logStream->unlockCerr(); } ++it; } } void I2DJpegSource::clearMap() { // free memory of each map entry and remove them all from list JPEGFileMapEntry *entry = NULL; while (m_jpegFileMap.size() != 0) { entry = m_jpegFileMap.front(); m_jpegFileMap.pop_front(); delete entry; entry = NULL; } } // closes underlying JPEG file void I2DJpegSource::closeFile() { jpegFile.of_fclose(); } // close file and free dynamically allocated memory I2DJpegSource::~I2DJpegSource() { if (m_debug) printMessage(m_logStream, "I2DJpegSource: Closing JPEG file and cleaning up memory"); closeFile(); clearMap(); } /* * CVS/RCS Log: * $Log: i2djpgs.cc,v $ * Revision 1.4 2009-02-18 12:22:11 meichel * Minor changes needed for VC6 * * Revision 1.3 2008-03-10 13:10:01 onken * Changed OFListIterator to OFListConstIterator in order to complile when * HAVE_STL is defined. * * Revision 1.2 2008-01-16 16:32:31 onken * Fixed some empty or doubled log messages in libi2d files. * * Revision 1.1 2008-01-16 14:38:17 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * * Revision 1.1 2007/11/08 15:55:17 onken * Initial checkin of img2dcm application and corresponding library i2dlib. * * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2djpgs.h000066400000000000000000000423441314736454600247370ustar00rootroot00000000000000/* * * $Id: i2djpgs.h $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Class to extract pixel data and meta information from JPEG file * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifndef I2DJPGS_H #define I2DJPGS_H #include #include "../ofstd/offile.h" #include "i2dimgs.h" /** * JPEG markers consist of one or more 0xFF bytes, followed by a marker * code byte (which is not an FF). This enum lists the second byte * of all these markers. Note: RESn markers are not fully listed, but only * the first (RES0) and the last (RESN) */ enum E_JPGMARKER { E_JPGMARKER_SOF0 = 0xC0, E_JPGMARKER_SOF1 = 0xC1, E_JPGMARKER_SOF2 = 0xC2, E_JPGMARKER_SOF3 = 0xC3, /*C4 and CC are not SOF markers,*/ E_JPGMARKER_SOF5 = 0xC5, E_JPGMARKER_SOF6 = 0xC6, E_JPGMARKER_SOF7 = 0xC7, E_JPGMARKER_JPG = 0xC8, E_JPGMARKER_SOF9 = 0xC9, E_JPGMARKER_SOF10 = 0xCA, E_JPGMARKER_SOF11 = 0xCB, E_JPGMARKER_SOF13 = 0xCD, E_JPGMARKER_SOF14 = 0xCE, E_JPGMARKER_SOF15 = 0xCF, E_JPGMARKER_DHT = 0xC4, E_JPGMARKER_DAC = 0xCC, E_JPGMARKER_RST0 = 0xD0, E_JPGMARKER_RST1 = 0xD1, E_JPGMARKER_RST2 = 0xD2, E_JPGMARKER_RST3 = 0xD3, E_JPGMARKER_RST4 = 0xD4, E_JPGMARKER_RST5 = 0xD5, E_JPGMARKER_RST6 = 0xD6, E_JPGMARKER_RST7 = 0xD7, E_JPGMARKER_SOI = 0xD8, E_JPGMARKER_EOI = 0xD9, E_JPGMARKER_SOS = 0xDA, E_JPGMARKER_DQT = 0xDB, E_JPGMARKER_DNL = 0xDC, E_JPGMARKER_DRI = 0xDD, E_JPGMARKER_DHP = 0xDE, E_JPGMARKER_EXP = 0xDF, E_JPGMARKER_APP0 = 0xE0, E_JPGMARKER_APP1 = 0xE1, E_JPGMARKER_APP2 = 0xE2, E_JPGMARKER_APP3 = 0xE3, E_JPGMARKER_APP4 = 0xE4, E_JPGMARKER_APP5 = 0xE5, E_JPGMARKER_APP6 = 0xE6, E_JPGMARKER_APP7 = 0xE7, E_JPGMARKER_APP8 = 0xE8, E_JPGMARKER_APP9 = 0xE9, E_JPGMARKER_APP10 = 0xEA, E_JPGMARKER_APP11 = 0xEB, E_JPGMARKER_APP12 = 0xEC, E_JPGMARKER_APP13 = 0xED, E_JPGMARKER_APP14 = 0xEE, E_JPGMARKER_APP15 = 0xEF, E_JPGMARKER_JPGN0 = 0xF0, E_JPGMARKER_JPGN1 = 0xF1, E_JPGMARKER_JPGN2 = 0xF2, E_JPGMARKER_JPGN3 = 0xF3, E_JPGMARKER_JPGN4 = 0xF4, E_JPGMARKER_JPGN5 = 0xF5, E_JPGMARKER_JPGN6 = 0xF6, E_JPGMARKER_JPGN7 = 0xF7, E_JPGMARKER_JPGN8 = 0xF8, E_JPGMARKER_JPGN9 = 0xF9, E_JPGMARKER_JPGN10 = 0xFA, E_JPGMARKER_JPGN11 = 0xFB, E_JPGMARKER_JPGN12 = 0xFC, E_JPGMARKER_JPGN13 = 0xFD, E_JPGMARKER_COM = 0xFE, E_JPGMARKER_TEM = 0x01, E_JPGMARKER_RES0 = 0x02, E_JPGMARKER_RESN = 0xBF, E_JPGMARKER_UNKNOWN = 0x00 }; /** * Struct that represents a marker in a JPEG file, i.e. it consists * of the byte position of the marker and the marker code itself */ struct JPEGFileMapEntry { /// The byte position of the marker offile_off_t bytePos; /// The marker byte itself E_JPGMARKER marker; }; class I2DJpegSource : public I2DImgSource { public: /** Constructor, initializes member variables * @return none */ I2DJpegSource(); /** Returns format of input image. For this class "JPEG" is returned. * @return Returns format of input image, i. e. "JPEG". */ OFString inputFormat() const; /** true if pixeldata is compressed */ virtual bool IsCompressed() const { return true; } /*true if pixeldata has to be compressed*/ virtual bool Recompress() const { return false; } /** Sets the input image file to read. * @param filename - [in] The filename of the image input file * @return none */ void setImageFile(const OFString& filename) { m_imageFile = filename; }; /** Returns the input image file that is going to be read * @return The filename of the image input file */ OFString getImageFile() { return m_imageFile; }; /** Extracts the raw JPEG pixel data stream from a JPEG file and returns some * image information about this pixel data. * Raw means here that all APP markers (e.g. JFIF information) are removed from the JPEG stream. * The pixel data returned is a JPEG stream in JPEG interchange format. * This function allocates memory for the pixel data returned to the user. The caller of this * function is responsible for deleting the memory buffer * @param rows - [out] Rows of image * @param cols - [out] Columns of image * @param samplesPerPixel - [out] Number of components per pixel * @param photoMetrInt - [out] The DICOM color model used for the compressed data * @param bitsAlloc - [out] Bits Allocated for one sample * @param bitsStored - [out] Bits Stored, Number of bits actually stored within Bits Allocated * @param highBit - [out] High Bit, Highest stored in bit within Bits Allocated * @param pixelRepr - [out] Pixel Representation (0=unsigned, 1=signed) * @param planConf - [out] Planar Configuration * @param pixAspectH - [out] Horizontal value of pixel aspect ratio * @param pixAspectV - [out] Vertical value of pixel aspect ratio * @param pixData - [out] Pointer to the pixel data in JPEG Interchange Format (but without APPx markers). * @param length - [out] Length of pixel data * @param ts - [out] The transfer syntax imposed by the imported pixel pixel data. This is necessary for the JPEG importer that needs to report which TS must be used for the imported JPEG data (ie. baseline, progressive, ...). If pixel data is uncompressed, EXS_Unknown is returned * @return EC_Normal, if successful, error otherwise */ OFCondition readPixelData( Uint16& rows, Uint16& cols, Uint16& samplesPerPixel, OFString& photoMetrInt, Uint16& bitsAlloc, Uint16& bitsStored, Uint16& highBit, Uint16& pixelRepr, Uint16& planConf, Uint16& pixAspectH, Uint16& pixAspectV, char*& pixData, Uint32& length, E_TransferSyntax& ts); /** Enable/Disable support for Extended Sequential JPEG Coding * @param enabled - [in] OFTrue: support Extended Sequential, OFTrue: Do not support * @return none */ void setExtSeqSupport(const OFBool enabled); /** Enable/Disable support for Progressive JPEG Coding * @param enabled - [in] OFTrue: support Extended Sequential, OFTrue: Do not support * @return none */ void setProgrSupport(const OFBool enabled); /** If enabled, conversion will only take place if JFIF data could be found * and evaluated. Many digital cameras do not provide a JFIF header, so this * is disabled by default. */ void setInsistOnJFIF(const OFBool enabled); /** If enabled, APPn markers (except JFIF!) are also copied to the output file. * This can cause a huge speedup because instead of parsing the whole * JPEG file (for finding any APPn markers) the parsing stops after finding * the SOFn marker (which is relevant for extracting width/height and so on. * Default: false * @param enabled - [in] OFtrue: copy APPn, OFFalse: cut off APPn info * @return none */ void setKeepAPPn(const OFBool enabled); /** Returns a string representation of a JPEG marker code. * @param marker - [in] The marker to be converted * @return A string representation of the marker */ static OFString jpegMarkerToString(const E_JPGMARKER& marker); /** Destructor, frees some memory. * @return none */ ~I2DJpegSource(); protected: /** Opens the JPEG file specified by the given filename. * @param filename - [in] The file to be opened * @return EC_Normal, if successful, error otherwise */ OFCondition openFile(const OFString& filename); /** Closes JPEG file. * @return A string representation of the marker */ void closeFile(); /** Function that scans a JPEG file and creates a "file map" which * includes all JPEG markes and their byte positions in the file. * @return EC_Normal, if successful, error otherwise */ OFCondition createJPEGFileMap(); /** Dump the internal JPEG file map to a given stream. The file map * lists JPEG markers and their position in the bitstream found in the JPEG * file * @return none */ void debugDumpJPEGFileMap() const; /** Get image parameters as found at given SOF marker of the JPEG image. * @param entry - [in] This specifies the marker and the byte position of the SOF marker * @param imageWidth - [out] The width of the image * @param imageHeight - [out] The height of the image * @param samplesPerPixel - [out] Number of components per pixel * @param bitsPerSample - [out] Nunber of bits per pixel component * @return EC_Normal, if successful, error otherwise */ OFCondition getSOFImageParameters( const JPEGFileMapEntry& entry, Uint16& imageWidth, Uint16& imageHeight, Uint16& samplesPerPixel, Uint16& bitsPerSample); /** Get JPEG parameters as found at given JFIF marker of the JPEG image. * @param entry - [in] This specifies the marker and the byte position of the JFIF marker * @param jfifVersion - [out] The JFIF version of the JFIF data * @param pixelAspectH - [out] The horizontal pixel aspect ratio * @param pixelAspectV - [out] The vertical pixel aspect ratio * @param unit - [out] The contents of the pixel aspect ratio unit field * @return EC_Normal, if successful, error otherwise */ OFCondition getJFIFImageParameters( const JPEGFileMapEntry& entry, Uint16& jfifVersion, Uint16& pixelAspectH, Uint16& pixelAspectV, Uint16& unit); /** Check, whether a given JPEG image marker (SOFn) is supported by * this plugin * @param jpegEncoding - [in] Image marker that should be tested * @return EC_Normal, marker is supported, error otherwise */ OFCondition isJPEGEncodingSupported(const E_JPGMARKER& jpegEncoding) const; /** Returns if possible the DICOM transfer syntax matching the coding of the * JPEG data. * @param jpegEncoding - [in] Image marker that should be tested * @return EC_Normal, marker is supported, error otherwise */ E_TransferSyntax associatedTS(const E_JPGMARKER& jpegEncoding) const; /** Returns true if marker is one of the RST0 to RST7 markers * @param jpegEncoding - [in] Image marker that should be tested * @return OFTrue, if marker is RST0 to RST7, OFFalse otherwise */ OFBool isRSTMarker(const E_JPGMARKER& jpegEncoding) const; /** Returns true if marker is one of the SOF0 to SOF15 markers * @param jpegEncoding - [in] Image marker that should be tested * @return OFTrue, if marker is SOF0 to SOF15, OFFalse otherwise */ OFBool isSOFMarker(const E_JPGMARKER& jpegEncoding) const; /** Extract raw JPEG stream (i.e. without APPn markers) from JPEG file. * @param pixelData - [out] The resulting JPEG stream * @param pixLength - [out] The length of the resulting stream * @return EC_Normal, if successful, error otherwise */ OFCondition extractRawJPEGStream(char*& pixelData, Uint32& pixLength); /** Copies JPEG stream (with APPn markers, excluding JFIF) from JPEG file. * @param pixelData - [out] The resulting JPEG stream * @param pixLength - [out] The length of the resulting stream * @return EC_Normal, if successful, error otherwise */ OFCondition copyJPEGStream(char*& pixelData, Uint32& pixLength); /** Skips one marker while scanning through the JPEG file stream. * @return EC_Normal, if successful, error otherwise */ OFCondition skipVariable(); /** Tries to read the SOI marker. * @param result - [out] The code of the SOI marker if successful (0xD8) * @return EC_Normal, if successful, error otherwise */ OFCondition firstMarker(E_JPGMARKER& result); /** Tries to find the next JPEG marker in underlying file stream. * @param lastWasSOSMarker - [in] Denotes, whether the last marker read * before was the SOS (start of scan) marker. This is needed to * ignore non-marker 0xFF ocurrences in the compressed data. * @param result - [out] The result marker * @return EC_Normal, if successful, error otherwise */ OFCondition nextMarker(const OFBool& lastWasSOSMarker, E_JPGMARKER& result); /** Read 2 bytes from the byte stream. * @param result - [out] The result * @return 0, if successful, EOF if rest of stream does not contain enough bytes */ inline int read2Bytes(Uint16& result); /** Read 1 byte from the byte stream. * @param result - [out] The result * @return 0, if successful, EOF if rest of stream does not contain enough bytes */ inline int read1Byte(Uint8& result); /** Deletes internal JPEG file map and frees memory. * @return none */ void clearMap(); /// JPEG file map. This map includes all JPEG markers and their byte positions in the JPEG file. OFList m_jpegFileMap; /// The JPEG file, if opened GinkgoOFFile jpegFile; /// If true, JPEGs with progressive coding are not supported OFBool m_disableProgrTs; /// If true, JPEGs with extended sequential coding are not supported OFBool m_disableExtSeqTs; /// If true, conversion will only work if JFIF header can be found. /// Default: false OFBool m_insistOnJFIF; /// If true, APPn markers (except JFIF!) are also copied to the output file. /// This can cause a huge speedup because instead of parsing the whole /// JPEG file (for finding any APPn markers) the parsing stops after finding /// the SOFn marker (which is relevant for extracting width/height and so on. /// Default: false OFBool m_keepAPPn; /// The input file OFString m_imageFile; }; #endif // #ifndef I2DJPGS_H /* * CVS/RCS Log: * $Log: i2djpgs.h,v $ * Revision 1.2 2009-01-16 09:51:55 onken * Completed doxygen documentation for libi2d. * * Revision 1.1 2008-01-16 15:09:17 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * * Revision 1.2 2008-01-11 14:17:53 onken * Added various options to i2dlib. Changed logging to use a configurable * logstream. Added output plugin for the new Multiframe Secondary Capture SOP * Classes. Added mode for JPEG plugin to copy exsiting APPn markers (except * JFIF). Changed img2dcm default behaviour to invent type1/type2 attributes (no * need for templates any more). Added some bug fixes. * * Revision 1.1 2007/11/08 15:58:55 onken * Initial checkin of img2dcm application and corresponding library i2dlib. * * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2dles.cpp000066400000000000000000000070461314736454600251120ustar00rootroot00000000000000/* * * $Id$ * Ginkgo CADx Project * * Code addapted from DCMTK * */ #include "i2dles.h" OFString I2DLittleEndianSource::inputFormat() const { return "LittleEndian"; } /** Extracts the raw JPEG pixel data stream from a JPEG file and returns some * image information about this pixel data. * Raw means here that all APP markers (e.g. JFIF information) are removed from the JPEG stream. * The pixel data returned is a JPEG stream in JPEG interchange format. * This function allocates memory for the pixel data returned to the user. The caller of this * function is responsible for deleting the memory buffer * @param rows - [out] Rows of image * @param cols - [out] Columns of image * @param samplesPerPixel - [out] Number of components per pixel * @param photoMetrInt - [out] The DICOM color model used for the compressed data * @param bitsAlloc - [out] Bits Allocated for one sample * @param bitsStored - [out] Bits Stored, number of bits stored within Bits Allocated * @param highBit - [out] High Bit, hightest bit position set within Bits Allocated * @param pixelRepr - [out] Pixel Representation (0=unsigned, 1=signed) * @param planConf - [out] Planar Configuration * @param pixAspectH - [out] Horizontal value of pixel aspect ratio * @param pixAspectV - [out] Vertical value of pixel aspect ratio * @param pixData - [out] Pointer to the pixel data in JPEG Interchange Format (but without APPx markers). * @param length - [out] Length of pixel data * @param ts - [out] The transfer syntax imposed by the imported pixel pixel data. This is necessary for the JPEG importer that needs to report which TS must be used for the imported JPEG data (ie. baseline, progressive, ...). If pixel data is uncompressed, EXS_Unknown is returned * @return EC_Normal, if successful, error otherwise */ OFCondition I2DLittleEndianSource::readPixelData( Uint16& rows, Uint16& cols, Uint16& samplesPerPixel, OFString& photoMetrInt, Uint16& bitsAlloc, Uint16& bitsStored, Uint16& highBit, Uint16& pixelRepr, Uint16& planConf, Uint16& pixAspectH, Uint16& pixAspectV, char*& pixData, Uint32& length, E_TransferSyntax& ts) { photoMetrInt = m_ImgFile.photometricInterpretation.c_str(); cols = m_ImgFile.width; rows = m_ImgFile.heigth; samplesPerPixel = m_ImgFile.samplesPerPixel; bitsAlloc = m_ImgFile.bitsAllocated; bitsStored = m_ImgFile.bitsStored; highBit = m_ImgFile.highBit; pixelRepr = m_ImgFile.pixelRepr; planConf = m_ImgFile.planarConf; pixAspectH = m_ImgFile.pixAspectH; pixAspectV = m_ImgFile.pixAspectV; pixData = (char*)m_ImgFile.pixelData; if (bitsAlloc <= 8) { length = cols * rows * samplesPerPixel; } else if (bitsAlloc <= 16) { length = cols * rows * samplesPerPixel * 2; } else if (bitsAlloc <= 24) { length = cols * rows * samplesPerPixel * 3; } else if (bitsAlloc <= 32) { length = cols * rows * samplesPerPixel * 4; } else if (bitsAlloc <= 48) { length = cols * rows * samplesPerPixel * 6; } else if (bitsAlloc <= 64) { length = cols * rows * samplesPerPixel * 8; } ts = EXS_LittleEndianExplicit; return EC_Normal; } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2dles.h000066400000000000000000000113751314736454600245570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * * * Code addapted from DCMTK * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Class for conversion of image file into new DICOM SC Image IODs * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * */ #pragma once #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include #include "i2dimgs.h" #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif class I2DLittleEndianSource : public I2DImgSource { public: /** Constructor */ I2DLittleEndianSource(GIL::DICOM::IDICOMImg2DCM::TImageFile& imgFile): m_ImgFile(imgFile) {} /** Virtual Destructor */ virtual ~I2DLittleEndianSource() {} /** true if pixeldata is compressed */ virtual bool IsCompressed() const { return false; } /*true if pixeldata has to be compressed*/ virtual bool Recompress() const { return m_ImgFile.recompress; } /** Returns identifier for the image input format the plugin imports. * @return A short identifier (e. g. "JPEG") */ virtual OFString inputFormat() const; /** Extracts the raw JPEG pixel data stream from a JPEG file and returns some * image information about this pixel data. * Raw means here that all APP markers (e.g. JFIF information) are removed from the JPEG stream. * The pixel data returned is a JPEG stream in JPEG interchange format. * This function allocates memory for the pixel data returned to the user. The caller of this * function is responsible for deleting the memory buffer * @param rows - [out] Rows of image * @param cols - [out] Columns of image * @param samplesPerPixel - [out] Number of components per pixel * @param photoMetrInt - [out] The DICOM color model used for the compressed data * @param bitsAlloc - [out] Bits Allocated for one sample * @param bitsStored - [out] Bits Stored, number of bits stored within Bits Allocated * @param highBit - [out] High Bit, hightest bit position set within Bits Allocated * @param pixelRepr - [out] Pixel Representation (0=unsigned, 1=signed) * @param planConf - [out] Planar Configuration * @param pixAspectH - [out] Horizontal value of pixel aspect ratio * @param pixAspectV - [out] Vertical value of pixel aspect ratio * @param pixData - [out] Pointer to the pixel data in JPEG Interchange Format (but without APPx markers). * @param length - [out] Length of pixel data * @param ts - [out] The transfer syntax imposed by the imported pixel pixel data. This is necessary for the JPEG importer that needs to report which TS must be used for the imported JPEG data (ie. baseline, progressive, ...). If pixel data is uncompressed, EXS_Unknown is returned * @return EC_Normal, if successful, error otherwise */ virtual OFCondition readPixelData( Uint16& rows, Uint16& cols, Uint16& samplesPerPixel, OFString& photoMetrInt, Uint16& bitsAlloc, Uint16& bitsStored, Uint16& highBit, Uint16& pixelRepr, Uint16& planConf, Uint16& pixAspectH, Uint16& pixAspectV, char*& pixData, Uint32& length, E_TransferSyntax& ts); GIL::DICOM::IDICOMImg2DCM::TImageFile m_ImgFile; }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2doutpl.h000066400000000000000000000106251314736454600251340ustar00rootroot00000000000000/* * * $Id: i2doutpl.h $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Base class for converter from image file to DICOM * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.4 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifndef I2DOUTPL_H #define I2DOUTPL_H #include "d2dcommon.h" class I2DOutputPlug: public D2DCommon { public: /** Constructor, initializes member variables * @return none */ I2DOutputPlug() : D2DCommon(), m_doAttribChecking(OFTrue) {}; /** Virtual function that returns a short name of the plugin. * @return The name of the plugin */ virtual OFString ident() =0; /** Virtual function that returns the Storage SOP class UID, the plugin writes. * @param suppSOPs - [out] List containing supported output SOP classes * @return String containing the Storage SOP class UID */ virtual void supportedSOPClassUIDs(OFList suppSOPs) =0; /** Outputs SOP class specific information into dataset * @param dataset - [in/out] Dataset to write to * @return EC_Normal if successful, error otherwise */ virtual OFCondition convert(DcmDataset &dataset) const = 0; /** Do some completeness / validity checks. Should be called when * dataset is completed and is about to be saved. * @param dataset - [in] The dataset to check * @return Error string if error occurs, empty string otherwise */ virtual OFString isValid(DcmDataset& dataset) const = 0; /** Destructor * @return none */ virtual ~I2DOutputPlug() {}; /** Enable/Disable basic validity checks for output dataset * @param doChecks - [in] OFTrue enables checking, OFFalse turns it off. * @param insertMissingType2 - [in] If true (default), missing type 2 * attributes are inserted automatically * @param inventMissingType1 - [in] If true (default), missing type 1 * attributes are inserted automatically with a predefined * value (if possible). An existing empty type 1 attribute is * assigned a value, too. * @return none */ virtual void setValidityChecking(OFBool doChecks, OFBool insertMissingType2 = OFTrue, OFBool inventMissingType1 = OFTrue) { m_doAttribChecking = doChecks; m_inventMissingType2Attribs = insertMissingType2; m_inventMissingType1Attribs = inventMissingType1; }; protected: /// if enabled, some simple attribute checking is performed /// default: enabled (OFTrue) OFBool m_doAttribChecking; }; #endif // #ifndef I2DOUTPL_H /* * CVS/RCS Log: * $Log: i2doutpl.h,v $ * Revision 1.4 2009-01-16 09:51:55 onken * Completed doxygen documentation for libi2d. * * Revision 1.3 2008-01-16 16:32:23 onken * Fixed some empty or doubled log messages in libi2d files. * * Revision 1.2 2008-01-16 15:10:20 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * * Revision 1.2 2008-01-11 14:17:53 onken * Added various options to i2dlib. Changed logging to use a configurable * logstream. Added output plugin for the new Multiframe Secondary Capture SOP * Classes. Added mode for JPEG plugin to copy exsiting APPn markers (except * JFIF). Changed img2dcm default behaviour to invent type1/type2 attributes (no * need for templates any more). Added some bug fixes. * * Revision 1.1 2007/11/08 15:58:55 onken * Initial checkin of img2dcm application and corresponding library i2dlib. * * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2dplnsc.cpp000066400000000000000000000310571314736454600254450ustar00rootroot00000000000000/* * * $Id: i2dplnsc.cpp $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Implements conversion from image into new DICOM SC IODs * * Last Update: $Author: onken $ * Update Date: $Date: 2008-01-16 16:32:31 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include "i2dplnsc.h" #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif I2DOutputPlugNewSC::I2DOutputPlugNewSC() { if (m_debug) printMessage(m_logStream, "I2DOutputPlugNewSC: Output plugin for new Multiframe Secondary Capture SOPs initialized"); } OFString I2DOutputPlugNewSC::ident() { return "New Secondary Capture Image SOP Classes"; } void I2DOutputPlugNewSC::supportedSOPClassUIDs(OFList suppSOPs) { suppSOPs.push_back(UID_MultiframeSingleBitSecondaryCaptureImageStorage); suppSOPs.push_back(UID_MultiframeGrayscaleByteSecondaryCaptureImageStorage); suppSOPs.push_back(UID_MultiframeGrayscaleWordSecondaryCaptureImageStorage); suppSOPs.push_back(UID_MultiframeTrueColorSecondaryCaptureImageStorage); } OFCondition I2DOutputPlugNewSC::convert(DcmDataset &dataset) const { if (m_debug) printMessage(m_logStream, "I2DOutputPlugNewSC: Inserting new Multiframe SC specific attributes"); // Find out which of the new SC SOP Class UIDs to use OFString sopUID, photInt; Uint16 bitsAllocated; OFCondition cond = dataset.findAndGetUint16(DCM_BitsAllocated, bitsAllocated); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Unable to determine correct SOP class due to missing Image Pixel module information"); cond = dataset.findAndGetOFStringArray(DCM_PhotometricInterpretation, photInt); if (bitsAllocated == 1) cond = handle1BitSC(&dataset); else if (bitsAllocated == 8) cond = handle8BitSC(&dataset); else if (bitsAllocated == 16) cond = handle16BitSC(&dataset); else cond = makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Bits Allocated needs a value of 1, 8 or 16 for conversion"); cond = insertMultiFrameAttribs(&dataset); return cond; } OFString I2DOutputPlugNewSC::isValid(DcmDataset& dataset) const { OFString err; // Just return if checking was disabled if (!m_doAttribChecking) return err; if (m_debug) printMessage(m_logStream, "I2DOutputPlugNewSC: Checking new Multiframe SC specific attributes"); // WSD="Workstation", found in most Secondary Capture files err += checkAndInventType1Attrib(DCM_ConversionType, &dataset, "WSD"); // As a default we do not expect the image to have burnt in annotations err += checkAndInventType1Attrib(DCM_BurnedInAnnotation, &dataset, "NO"); return err; } OFCondition I2DOutputPlugNewSC::insertMultiFrameAttribs(DcmDataset* targetDataset) const { if (!targetDataset) return EC_IllegalParameter; // We only support 1 image Multi-frames so far return targetDataset->putAndInsertOFStringArray(DCM_NumberOfFrames, "1"); // Frame Increment pointer is set later in the more specific SC Multi-frame Image context } OFCondition I2DOutputPlugNewSC::handle1BitSC(DcmDataset *dataset) const { if (!dataset) return EC_IllegalParameter; OFCondition cond; Uint16 u16 = 0; OFString str; cond = dataset->findAndGetOFStringArray(DCM_PhotometricInterpretation, str); if (cond.bad() || (str != "MONOCHROME2")) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Photometric interpretation does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_SamplesPerPixel, u16); if (cond.bad() || (u16 != 1)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Samples Per Pixel does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_BitsStored, u16); if (cond.bad() || (u16 != 1)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Bits Stored does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_HighBit, u16); if (cond.bad() || (u16 != 0)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: High Bit does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_PixelRepresentation, u16); if (cond.bad() || (u16 != 0)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Pixel Representation does not fit SOP class"); cond = dataset->putAndInsertOFStringArray(DCM_SOPClassUID, UID_MultiframeSingleBitSecondaryCaptureImageStorage); return cond; } OFCondition I2DOutputPlugNewSC::handle8BitSC(DcmDataset *dataset) const { if (!dataset) return EC_IllegalParameter; OFCondition cond; Uint16 u16 = 0; OFString str; cond = dataset->findAndGetOFStringArray(DCM_PhotometricInterpretation, str); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Photometric interpretation not set for Pixel Data"); if (str == "MONOCHROME2") { // Mult-Frame Grayscale Byte SC Image cond = dataset->findAndGetUint16(DCM_SamplesPerPixel, u16); if (cond.bad() || (u16 != 1)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Samples Per Pixel does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_BitsStored, u16); if (cond.bad() || (u16 != 8)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Bits Stored does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_HighBit, u16); if (cond.bad() || (u16 != 7)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: High Bit does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_PixelRepresentation, u16); if (cond.bad() || (u16 != 0)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Pixel Representation does not fit SOP class"); // For MONOCHROME2 and Bits Stored > 1, rescale slope/intercept/type have to be inserted cond = insertSCMultiFrameAttribs(dataset); // Insert SOP Class UID if (cond.good()) cond = dataset->putAndInsertOFStringArray(DCM_SOPClassUID, UID_MultiframeGrayscaleByteSecondaryCaptureImageStorage); } else if ((str == "YBR_FULL_422") || (str == "RGB")) { // Mult-Frame True Color Byte SC Image cond = dataset->findAndGetUint16(DCM_SamplesPerPixel, u16); if (cond.bad() || (u16 != 3)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Samples Per Pixel does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_BitsStored, u16); if (cond.bad() || (u16 != 8)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Bits Stored does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_HighBit, u16); if (cond.bad() || (u16 != 7)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: High Bit does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_PixelRepresentation, u16); if (cond.bad() || (u16 != 0)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Pixel Representation does not fit SOP class"); if (str == "RGB") { // For RGB, Planar Configuration must be present and set to 0 cond = dataset->findAndGetUint16(DCM_PlanarConfiguration, u16); if (cond.bad() || (u16 != 0)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Planar Configuration does not fit SOP class"); } // Insert SOP Class UID if (cond.good()) cond = dataset->putAndInsertOFStringArray(DCM_SOPClassUID, UID_MultiframeTrueColorSecondaryCaptureImageStorage); } else return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Photometric interpretation does not fit SOP class"); return cond; } OFCondition I2DOutputPlugNewSC::handle16BitSC(DcmDataset *dataset) const { if (!dataset) return EC_IllegalParameter; OFCondition cond; Uint16 u16 = 0; OFString str; cond = dataset->findAndGetOFStringArray(DCM_PhotometricInterpretation, str); if (cond.bad() || (str != "MONOCHROME2")) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Photometric interpretation does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_SamplesPerPixel, u16); if (cond.bad() || (u16 != 1)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Samples Per Pixel does not fit SOP class"); Uint16 bitsStored; cond = dataset->findAndGetUint16(DCM_BitsStored, bitsStored); if (cond.bad() || (bitsStored >= 16) || (bitsStored <9) ) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Bits Stored does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_HighBit, u16); if (cond.bad() || (u16 != bitsStored -1)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: High Bit does not fit SOP class"); cond = dataset->findAndGetUint16(DCM_PixelRepresentation, u16); if (cond.bad() || (u16 != 0)) return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Pixel Representation does not fit SOP class"); // Insert SOP Class UID cond = dataset->putAndInsertOFStringArray(DCM_SOPClassUID, UID_MultiframeGrayscaleWordSecondaryCaptureImageStorage); // For MONOCHROME2 and Bits Stored > 1, rescale slope/intercept/type have to be inserted if (cond.good()) cond = insertSCMultiFrameAttribs(dataset); return cond; } OFCondition I2DOutputPlugNewSC::insertSCMultiFrameAttribs(DcmDataset *targetDataset) const { OFCondition cond; // Rescale Intercept, set to 0 (constant enumerated value) cond = targetDataset->putAndInsertOFStringArray(DCM_RescaleIntercept, "0"); // Rescale Slope, set to 1 (constant enumerated value) if (cond.good()) cond = targetDataset->putAndInsertOFStringArray(DCM_RescaleSlope, "1"); // Rescale type, set to unspecified "US" (constant enumerated value) if (cond.good()) cond = targetDataset->putAndInsertOFStringArray(DCM_RescaleType, "US"); // Rescale type, set to unspecified "IDENTITY" (constant enumerated value) if (cond.good()) cond = targetDataset->putAndInsertOFStringArray(DCM_PresentationLUTShape, "IDENTITY"); else return makeOFCondition(OFM_dcmdata, 18, OF_error, "I2DOutputPlugNewSC: Unable to insert attributes for Rescale Slope/Intercept/Type"); return EC_Normal; } I2DOutputPlugNewSC::~I2DOutputPlugNewSC() { } /* * CVS/RCS Log: * $Log: i2dplnsc.cc,v $ * Revision 1.2 2008-01-16 16:32:31 onken * Fixed some empty or doubled log messages in libi2d files. * * Revision 1.1 2008-01-16 14:40:02 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2dplnsc.h000066400000000000000000000117141314736454600251100ustar00rootroot00000000000000/* * * $Id: i2dplnsc.h $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Class for conversion of image file into new DICOM SC Image IODs * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifndef I2DPLNSC_H #define I2DPLNSC_H #include #include #include "i2doutpl.h" class I2DOutputPlugNewSC : public I2DOutputPlug { public: /** Constructor, initializes member variables with standard values * @return none */ I2DOutputPlugNewSC(); /** Virtual function that returns a short name of the plugin. * @return The name of the plugin */ virtual OFString ident(); /** Overwrites function from base class. Returns the Storage SOP class * written by this plugin * @param suppSOPs - [out] List of UIDs representing the supported SOP * classes supported by this plugin. * @return none */ virtual void supportedSOPClassUIDs(OFList suppSOPs); /** Outputs SOP class specific information into dataset * @param dataset - [in/out] Dataset to write to * @return EC_Normal if successful, error otherwise */ virtual OFCondition convert(DcmDataset &dataset) const; /** Do some completeness / validity checks. Should be called when * dataset is completed and is about to be saved. * @param dataset - [in] The dataset to check * @return Error string if error occurs, empty string otherwise */ virtual OFString isValid(DcmDataset& dataset) const; /** Virtual Destructor, clean up memory * @return none */ virtual ~I2DOutputPlugNewSC(); protected: /** Inserts attributes for Multi-frame Module * @param targetDataset - [in/out] The dataset to write to * @return EC_Normal if insertion was successfull, error code otherwise */ virtual OFCondition insertMultiFrameAttribs(DcmDataset* targetDataset) const; /** Inserts attributes Rescale Slope/Intercept/Type, which have to be * written (1C) if color model is MONOCHROME2 and BitsStored > 1. * @param targetDataset - [out] The dataset to write to * @return EC_Normal if insertion was successfull, error code otherwise */ virtual OFCondition insertSCMultiFrameAttribs(DcmDataset *targetDataset) const; /** Checks whether Image Pixel module attributes conform to the * specification of a a 1 bit Secondary Capture object. * @param dataset - [in] The dataset to check * @return EC_Normal, if everything is fine, error code otherwise */ virtual OFCondition handle1BitSC(DcmDataset *dataset) const; /** Checks whether Image Pixel module attributes conform to the * specification of a a 8 bit Secondary Capture object. * @param dataset - [in] The dataset to check * @return EC_Normal, if everything is fine, error code otherwise */ virtual OFCondition handle8BitSC(DcmDataset *dataset) const; /** Checks whether Image Pixel module attributes conform to the * specification of a a 16 bit Secondary Capture object. * @param dataset - [in] The dataset to check * @return EC_Normal, if everything is fine, error code otherwise */ virtual OFCondition handle16BitSC(DcmDataset *dataset) const; }; #endif // I2DPLNSC_H /* * CVS/RCS Log: * $Log: i2dplnsc.h,v $ * Revision 1.2 2009-01-16 09:51:55 onken * Completed doxygen documentation for libi2d. * * Revision 1.1 2008-01-16 15:11:44 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * * Revision 1.1 2008-01-11 14:17:53 onken * Added various options to i2dlib. Changed logging to use a configurable * logstream. Added output plugin for the new Multiframe Secondary Capture SOP * Classes. Added mode for JPEG plugin to copy exsiting APPn markers (except * JFIF). Changed img2dcm default behaviour to invent type1/type2 attributes (no * need for templates any more). Added some bug fixes. * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2dplsc.cpp000066400000000000000000000054151314736454600252660ustar00rootroot00000000000000/* * * $Id: i2dplsc.cpp $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Implements conversion from image into DICOM SC IOD * * Last Update: $Author: onken $ * Update Date: $Date: 2008-01-16 16:32:31 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include "i2dplsc.h" #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif I2DOutputPlugSC::I2DOutputPlugSC() { if (m_debug) printMessage(m_logStream, "I2DOutputPlugSC: Output plugin for Secondary Capture initialized"); } OFString I2DOutputPlugSC::ident() { return "Secondary Capture Image SOP Class"; } void I2DOutputPlugSC::supportedSOPClassUIDs(OFList suppSOPs) { suppSOPs.push_back(UID_SecondaryCaptureImageStorage); } OFCondition I2DOutputPlugSC::convert(DcmDataset &dataset) const { if (m_debug) printMessage(m_logStream, "I2DOutputPlugSC: Inserting SC specific attributes"); OFCondition cond; cond = dataset.putAndInsertOFStringArray(DCM_SOPClassUID, UID_SecondaryCaptureImageStorage); return EC_Normal; } OFString I2DOutputPlugSC::isValid(DcmDataset& dataset) const { OFString err; // Just return if checking was disabled if (!m_doAttribChecking) return err; if (m_debug) printMessage(m_logStream, "I2DOutputPlugSC: Checking SC specific attributes"); err += checkAndInventType1Attrib(DCM_ConversionType, &dataset, "WSD"); // WSD="Workstation" return err; } I2DOutputPlugSC::~I2DOutputPlugSC() { } /* * CVS/RCS Log: * $Log: i2dplsc.cc,v $ * Revision 1.2 2008-01-16 16:32:31 onken * Fixed some empty or doubled log messages in libi2d files. * * Revision 1.1 2008-01-16 14:40:43 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * * Revision 1.1 2007/11/08 15:55:17 onken * Initial checkin of img2dcm application and corresponding library i2dlib. * * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2dplsc.h000066400000000000000000000065101314736454600247300ustar00rootroot00000000000000/* * * $Id: i2dplsc.h $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Class for conversion of image file into DICOM SC Image Storage * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifndef I2DPLSC_H #define I2DPLSC_H #include #include #include "i2doutpl.h" class I2DOutputPlugSC : public I2DOutputPlug { public: /** Constructor, initializes member variables with standard values * @return none */ I2DOutputPlugSC(); /** Virtual function that returns a short name of the plugin. * @return The name of the plugin */ virtual OFString ident(); /** Overwrites function from base class. Returns the Storage SOP class * written by this plugin * @param suppSOPs - [out] List of UIDS representing SOP classes supported * by this plugin * @return none */ virtual void supportedSOPClassUIDs(OFList suppSOPs); /** Outputs SOP class specific information into dataset * @param dataset - [in/out] Dataset to write to * @return EC_Normal if successful, error otherwise */ virtual OFCondition convert(DcmDataset &dataset) const; /** Do some completeness / validity checks. Should be called when * dataset is completed and is about to be saved. * @param dataset - [in] The dataset to check * @return Error string if error occurs, empty string otherwise */ virtual OFString isValid(DcmDataset& dataset) const; /** Virtual Destructor, clean up memory * @return none */ virtual ~I2DOutputPlugSC(); }; #endif // I2DPLSC_H /* * CVS/RCS Log: * $Log: i2dplsc.h,v $ * Revision 1.2 2009-01-16 09:51:55 onken * Completed doxygen documentation for libi2d. * * Revision 1.1 2008-01-16 15:12:20 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * * Revision 1.2 2008-01-11 14:17:53 onken * Added various options to i2dlib. Changed logging to use a configurable * logstream. Added output plugin for the new Multiframe Secondary Capture SOP * Classes. Added mode for JPEG plugin to copy exsiting APPn markers (except * JFIF). Changed img2dcm default behaviour to invent type1/type2 attributes (no * need for templates any more). Added some bug fixes. * * Revision 1.1 2007/11/08 15:58:56 onken * Initial checkin of img2dcm application and corresponding library i2dlib. * * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2dplvlp.cpp000066400000000000000000000074741314736454600254710ustar00rootroot00000000000000/* * * $Id: i2dplvlp.cpp $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Implements conversion from image into DICOM Visible Light Photography IOD * * Last Update: $Author: onken $ * Update Date: $Date: 2008-01-16 16:32:31 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include "i2dplvlp.h" #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif I2DOutputPlugVLP::I2DOutputPlugVLP() { if (m_debug) printMessage(m_logStream, "I2DOutputPlugVLP: Output plugin for VLP initialized"); } OFString I2DOutputPlugVLP::ident() { return "Visible Light Photographic Image SOP Class"; } void I2DOutputPlugVLP::supportedSOPClassUIDs(OFList suppSOPs) { OFString str = GNC::GCS::IControladorPermisos::Instance()->Get("core.importacion", "storage_sop_class").ObtenerValor().c_str(); suppSOPs.push_back(str); } OFCondition I2DOutputPlugVLP::convert(DcmDataset &dataset) const { if (m_debug) { printMessage(m_logStream, "I2DOutputPlugVLP: Inserting VLP specific attributes"); } OFCondition cond; OFString str = GNC::GCS::IControladorPermisos::Instance()->Get("core.importacion", "storage_sop_class").ObtenerValor().c_str(); cond = dataset.putAndInsertOFStringArray(DCM_SOPClassUID, str); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to insert SOP class into dataset"); if (!dataset.tagExists(DCM_Modality)) { cond = dataset.putAndInsertOFStringArray(DCM_Modality, "XC"); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to insert Modality (XC) into dataset"); } return EC_Normal; } OFString I2DOutputPlugVLP::isValid(DcmDataset& dataset) const { OFString err; // Just return if checking was disabled if (!m_doAttribChecking) return err; if (m_debug) printMessage(m_logStream, "I2DOutputPlugVLP: Checking VLP specific attributes for validity"); // Acquisition Context Module checkAndInventType2Attrib(DCM_AcquisitionContextSequence, &dataset); // General Equipment Module checkAndInventType2Attrib(DCM_Manufacturer, &dataset); // VL Image Module checkAndInventType1Attrib(DCM_ImageType, &dataset, "DERIVED\\SECONDARY"); checkAndInventType2Attrib(DCM_LossyImageCompression, &dataset); return err; } I2DOutputPlugVLP::~I2DOutputPlugVLP() { } /* * CVS/RCS Log: * $Log: i2dplvlp.cc,v $ * Revision 1.2 2008-01-16 16:32:31 onken * Fixed some empty or doubled log messages in libi2d files. * * Revision 1.1 2008-01-16 14:42:00 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * * Revision 1.1 2007/11/08 15:55:17 onken * Initial checkin of img2dcm application and corresponding library i2dlib. * * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/i2dplvlp.h000066400000000000000000000066041314736454600251300ustar00rootroot00000000000000/* * * $Id: i2dplvlp.h $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Class for conversion of image file into DICOM SC Image Storage * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifndef I2DPLVLP_H #define I2DPLVLP_H #include #include #include "i2doutpl.h" class I2DOutputPlugVLP : public I2DOutputPlug { public: /** Constructor, initializes member variables with standard values * @return none */ I2DOutputPlugVLP(); /** Virtual function that returns a short name of the plugin. * @return The name of the plugin */ virtual OFString ident(); /** Overwrites function from base class. Returns the Storage SOP class * written by this plugin * @param suppSOPs - [out] List of UIDs representing SOP classes supported by * this plugin * @return A string holding the Storage SOP class written by this plugin */ virtual void supportedSOPClassUIDs(OFList suppSOPs); /** Outputs SOP class specific information into dataset * @param dataset - [in/out] Dataset to write to * @return EC_Normal if successful, error otherwise */ virtual OFCondition convert(DcmDataset &dataset) const; /** Do some completeness / validity checks. Should be called when * dataset is completed and is about to be saved. * @param dataset - [in] The dataset to check * @return Error string if error occurs, empty string else */ virtual OFString isValid(DcmDataset& dataset) const; /** Virtual Destructor, clean up memory * @return none */ virtual ~I2DOutputPlugVLP(); }; #endif // I2DPLVLP_H /* * CVS/RCS Log: * $Log: i2dplvlp.h,v $ * Revision 1.2 2009-01-16 09:51:55 onken * Completed doxygen documentation for libi2d. * * Revision 1.1 2008-01-16 15:13:17 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * * Revision 1.2 2008-01-11 14:17:53 onken * Added various options to i2dlib. Changed logging to use a configurable * logstream. Added output plugin for the new Multiframe Secondary Capture SOP * Classes. Added mode for JPEG plugin to copy exsiting APPn markers (except * JFIF). Changed img2dcm default behaviour to invent type1/type2 attributes (no * need for templates any more). Added some bug fixes. * * Revision 1.1 2007/11/08 15:58:56 onken * Initial checkin of img2dcm application and corresponding library i2dlib. * * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/pdf2dsource.cpp000066400000000000000000000140401314736454600261400ustar00rootroot00000000000000/* * * $Id: pdf2dsource.cpp $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Base Class for plugins extracting pixel data from standard * image files * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include "document2dcm.h" #include #include "dcmtk/dcmdata/dctk.h" //#include "dcmtk/dcmdata/dcdebug.h" #include "dcmtk/dcmdata/cmdlnarg.h" #include "dcmtk/ofstd/ofconapp.h" #include "dcmtk/dcmdata/dcuid.h" /* for dcmtk version name */ #include "dcmtk/dcmdata/dcistrmf.h" #include "pdf2dsource.h" #include
    #include
    #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #undef MACRO_QUE_ESTORBA #endif #include #include OFString PDF2DSource::inputFormat() const { return "PDF"; } /** Reads pixel data and corresponding attributes like rows etc. from image * file and inserts them into dataset. * @param dset - [out] The dataset to export the pixel data attributes to * @param outputTS - [out] The proposed transfex syntax of the dataset * @return EC_Normal, if successful, error otherwise */ OFCondition PDF2DSource::readAndInsertSpecificTags( DcmDataset* dset, E_TransferSyntax& outputTS) { OFCondition cond; //it's a secondary capture.. if conversion type is not set put SD -> scanned document dset->putAndInsertString(DCM_ConversionType, "SD", false); dset->putAndInsertString(DCM_MIMETypeOfEncapsulatedDocument, "application/pdf", true); cond = dset->putAndInsertOFStringArray(DCM_SOPClassUID, UID_EncapsulatedPDFStorage); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to insert SOP class into dataset"); if (!dset->tagExists(DCM_Modality)) { cond = dset->putAndInsertOFStringArray(DCM_Modality, "DOC"); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to insert Modality (DOC) into dataset"); } if (!dset->tagExists(DCM_BurnedInAnnotation)) { cond = dset->putAndInsertOFStringArray(DCM_BurnedInAnnotation, "YES"); if (cond.bad()) return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to insert DCM_BurnedInAnnotation into dataset"); } //document //read file into unsigned char { size_t fileSize = 0; { std::ifstream file; file.open(m_file.c_str(),std::ios_base::binary); if(!file.is_open()) { LOG_ERROR("PDF2DSource","Error opening file"); return makeOFCondition(OFM_dcmdata, 18, OF_error, "Error opening file"); } //get the length of the file file.seekg(0,std::ios::end); fileSize = file.tellg(); if (fileSize %2 != 0) { LOG_INFO("VideoDicomizer", "Video size is odd, padding with 0"); //file is odd m_isTemp = true; std::string m_TempFile = GNC::Entorno::Instance()->CreateGinkgoTempFile(); if (!wxCopyFile(FROMPATH(m_file), FROMPATH(m_TempFile))) { LOG_ERROR("PDF2DSource", "Error creating temp file"); } std::ofstream ofile; ofile.open(m_TempFile.c_str(), std::ios_base::app); ofile << '\0'; ofile.close(); m_file = m_TempFile.c_str(); fileSize++; } } DcmInputFileStreamFactory* pFactory = new DcmInputFileStreamFactory(m_file.c_str(), 0); DcmOtherByteOtherWord* fileTag = new DcmOtherByteOtherWord(DCM_EncapsulatedDocument); fileTag->setVR(EVR_OB); fileTag->createValueFromTempFile(pFactory, fileSize, EBO_unknown); dset->insert(fileTag, true); } outputTS = EXS_LittleEndianExplicit; return cond; } /** Do some completeness / validity checks. Should be called when * dataset is completed and is about to be saved. * @param dataset - [in] The dataset to check * @return Error string if error occurs, empty string otherwise */ OFString PDF2DSource::isValid(DcmDataset& dset) const { if (m_debug) printMessage(m_logStream, "I2DImgSource: Checking validity of DICOM output dataset"); OFString dummy, err; OFCondition cond; err += checkAndInventType2Attrib(DCM_MIMETypeOfEncapsulatedDocument, &dset); err += checkAndInventType2Attrib(DCM_SOPInstanceUID, &dset); err += checkAndInventType2Attrib(DCM_ConversionType, &dset); return err; } PDF2DSource::~PDF2DSource() { if (m_isTemp) { wxRemoveFile(FROMPATH(m_file)); } } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/libi2d/pdf2dsource.h000066400000000000000000000064711314736454600256160ustar00rootroot00000000000000/* * * $Id: pdf2dsource.h $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2001-2007, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: dcmdata * * Author: Michael Onken * * Purpose: Base Class for plugins extracting pixel data from standard * image files * * Last Update: $Author: onken $ * Update Date: $Date: 2009-01-16 09:51:55 $ * CVS/RCS Revision: $Revision: 1.2 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #pragma once #include #include #include "d2dsource.h" class PDF2DSource: public D2DSource { public: /** Constructor */ PDF2DSource() : D2DSource() { m_isTemp=false; } virtual void setPDFFile(const OFString& file) { m_file = file; } /** Returns identifier for the image input format the plugin imports. * @return A short identifier (e. g. "JPEG") */ virtual OFString inputFormat() const; /** Reads pixel data and corresponding attributes like rows etc. from image * file and inserts them into dataset. * @param dset - [out] The dataset to export the pixel data attributes to * @param outputTS - [out] The proposed transfex syntax of the dataset * @return EC_Normal, if successful, error otherwise */ virtual OFCondition readAndInsertSpecificTags( DcmDataset* dset, E_TransferSyntax& outputTS); /** Do some completeness / validity checks. Should be called when * dataset is completed and is about to be saved. * @param dataset - [in] The dataset to check * @return Error string if error occurs, empty string otherwise */ OFString isValid(DcmDataset& dset) const; /** Virtual Destructor */ virtual ~PDF2DSource(); protected: OFString m_file; bool m_isTemp; }; /* * CVS/RCS Log: * $Log: i2dimgs.h,v $ * Revision 1.2 2009-01-16 09:51:55 onken * Completed doxygen documentation for libi2d. * * Revision 1.1 2008-01-16 15:08:38 onken * Moved library "i2dlib" from /dcmdata/libsrc/i2dlib to /dcmdata/libi2d * * Revision 1.2 2008-01-11 14:17:53 onken * Added various options to i2dlib. Changed logging to use a configurable * logstream. Added output plugin for the new Multiframe Secondary Capture SOP * Classes. Added mode for JPEG plugin to copy exsiting APPn markers (except * JFIF). Changed img2dcm default behaviour to invent type1/type2 attributes (no * need for templates any more). Added some bug fixes. * * Revision 1.1 2007/11/08 15:58:55 onken * Initial checkin of img2dcm application and corresponding library i2dlib. * * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/ofstd/000077500000000000000000000000001314736454600231675ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/ofstd/offile.h000066400000000000000000001077621314736454600246210ustar00rootroot00000000000000/* * * $Id: offile.h $ * Ginkgo CADx Project * * Code addapted from DCMTK * * * Copyright (C) 2006-2009, OFFIS * * This software and supporting documentation were developed by * * Kuratorium OFFIS e.V. * Healthcare Information and Communication Systems * Escherweg 2 * D-26121 Oldenburg, Germany * * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * * Module: ofstd * * Author: Marco Eichelberg * * Purpose: C++ wrapper class for stdio FILE functions * * Last Update: $Author: joergr $ * Update Date: $Date: 2009-03-12 11:37:54 $ * CVS/RCS Revision: $Revision: 1.8 $ * Status: $State: Exp $ * * CVS/RCS Log at end of file * */ #ifndef GINKGOCADX_OFFILE_H #define GINKGOCADX_OFFILE_H #include #include /* for class OFBool */ #include /* for class OFString */ #define INCLUDE_UNISTD #define INCLUDE_CSTDIO #define INCLUDE_CSTRING #define INCLUDE_CSTDARG #define INCLUDE_CERRNO #define INCLUDE_CWCHAR #include BEGIN_EXTERN_C #ifdef HAVE_SYS_STAT_H #include /* needed for struct _stati64 on Win32 */ #endif END_EXTERN_C /* When using the ISO C++ include files such as , etc., * all ANSI C functions like fopen() are declared in namespace std, * (e.g. we have to use std::fopen()), but non-ANSI Posix functions remain * in global namespace, e.g. we have to use ::fopen64(). * To make things even more difficult, not all compilers really declare * ANSI C functions in namespace std in accordance with the C++ standard. * Yes, this is ugly. */ /* Find out whether current operating system needs explicit function calls * to handle large file support */ #ifdef _LARGEFILE64_SOURCE // Mac OSX defines _LARGEFILE64_SOURCE but anyhow expects implicit 64 bit calls #if !(defined(__MACH__) && defined(__APPLE__)) #define EXPLICIT_LFS_64 #endif #endif #ifdef _WIN32 // On Win32 systems, we use Win32 specific definitions typedef __int64 offile_off_t; typedef fpos_t offile_fpos_t; #else #ifdef EXPLICIT_LFS_64 // Explicit LFS (LFS64) typedef fpos64_t offile_fpos_t; typedef off64_t offile_off_t; #else // Implicit LFS or no LFS #ifdef HAVE_FSEEKO typedef off_t offile_off_t; #else typedef long offile_off_t; #endif typedef fpos_t offile_fpos_t; #endif #endif // the type we use to store the last error. typedef int offile_errno_t; /** this class provides a simple C++ encapsulation layer for stdio FILE pointers. * All stdio functions on files are directly mapped into member functions. * The handling of large files (64 bit file systems) is transparent. Instead * of type off_t, fseek() and ftell() use offile_off_t which is a 64 bit type * if available on the underlying platform. Similarly, getpos() and setpos() use * type offile_fpos_t, which is defined appropriately. * This class provides both of_fclose() and of_pclose(), but these are equivalent - * the code always closes pipes with pclose() and files with of_fclose(). * Finally, an abstraction for errno is provided. Error codes should always * be retrieves using methods getLastError() and getLastErrorString() which * on Unix platforms are based on errno and strerror/strerror_r, but may be based * on other mechanisms on platforms where errno does not exist. */ class GinkgoOFFile { public: /// default constructor, creates an object that is not associated with any file. GinkgoOFFile(): file_(NULL), popened_(OFFalse), lasterror_(0) {} /** create object for given stdio FILE * @param f stdio FILE */ GinkgoOFFile(FILE *f): file_(f), popened_(OFFalse), lasterror_(0) {} /// destructor. Closes file if still open. ~GinkgoOFFile() { if (file_) of_fclose(); } /** opens the file whose name is the string pointed to by path and associates * a stream with it. * @param filename path to file * @param modes "r", "w" or "a" with possible modifiers "+", "b" * @return true if stream was successfully created, false otherwise, in which case * the error code is set. */ OFBool of_fopen(const char *filename, const char *modes) { if (file_) of_fclose(); #ifdef EXPLICIT_LFS_64 file_ = ::fopen64(filename, modes); #else file_ = ::fopen(filename, modes); #endif if (file_) popened_ = OFFalse; else of_storeLastError(); return (file_ != NULL); } #ifdef _WIN32 /** opens the file whose name is the wide character string pointed to by path and associates * a stream with it. This function is Win32 specific and only exists on WinNT and newer. * @param filename Unicode filename path to file * @param modes "r", "w" or "a" with possible modifiers "+", "b", as a wide character string * @return true if stream was successfully created, false otherwise, in which case the error code is set. */ OFBool of_wfopen(const wchar_t *filename, const wchar_t *modes) { if (file_) of_fclose(); file_ = _wfopen(filename, modes); if (file_) popened_ = OFFalse; else of_storeLastError(); return (file_ != NULL); } #endif /** associates a stream with the existing file descriptor, fildes. The mode * of the stream (one of the values "r", "r+", "w", "w+", "a", "a+") must be * compatible with the mode of the file descriptor. The file position * indicator of the new stream is set to that belong� ing to fildes, and the * error and end-of-file indicators are cleared. Modes "w" or "w+" do not * cause truncation of the file. The file descriptor is not dup'ed, and * will be closed when the stream created by fdopen is closed. The result of * applying fdopen to a shared memory object is undefined. * @param fd file descriptor * @param modes "r", "w" or "a" with possible modifiers "+", "b" * @return true if stream was successfully created, false otherwise, in which case the error code is set. */ OFBool of_fdopen(int fd, const char *modes) { if (file_) of_fclose(); file_ = ::fdopen(fd, modes); if (file_) popened_ = OFFalse; else of_storeLastError(); return (file_ != NULL); } /** opens a process by creating a pipe, forking, and invoking the shell. * Since a pipe is by definition unidirectional, the type argument may * specify only reading or writing, not both; the resulting stream is * correspondingly read-only or write-only. If the object was already * associated with another file or pipe, that one is closed. * @param command shell command line * @param modes "r" or "w" * @return true if pipe was successfully created, false otherwise */ OFBool of_popen(const char *command, const char *modes) { if (file_) of_fclose(); #ifdef _WIN32 file_ = _popen(command, modes); #else file_ = ::popen(command, modes); #endif if (file_) popened_ = OFTrue; else of_storeLastError(); return (file_ != NULL); } /** opens the file whose name is the string pointed to by path and associates * the stream pointed maintained by this object with it. The original stream * (if it exists) is closed. The mode argument is used just as in the fopen * function. The primary use of the freopen function is to change the file * associated with a standard text stream (stderr, stdin, or stdout). * @param filename path to file * @param modes "r", "w" or "a" with possible modifiers "+", "b" * @return true if stream was successfully created, false otherwise, in which case the error code is set. */ OFBool of_freopen(const char *filename, const char *modes) { #ifdef EXPLICIT_LFS_64 file_ = ::freopen64(filename, modes, file_); #else file_ = ::freopen(filename, modes, file_); #endif if (file_) popened_ = OFFalse; else of_storeLastError(); return (file_ != NULL); } /** generates a unique temporary filename. The temporary file is then opened * in binary read/write (w+b) mode. The file will be automatically deleted * when it is closed or the program terminates normally. * @return true if stream was successfully created, false otherwise, in which case the error code is set. */ OFBool of_tmpfile() { if (file_) of_fclose(); #ifdef EXPLICIT_LFS_64 file_ = ::tmpfile64(); #else file_ = ::tmpfile(); #endif if (file_) popened_ = OFFalse; else of_storeLastError(); return (file_ != NULL); } /** dissociates the named stream from its underlying file or set of functions. * If the stream was being used for output, any buffered data is written * first, using fflush. Independent of the return value of this method, * any further access (including another call to of_fclose()) to the stream * maintained by this object results in undefined behaviour. * @return 0 upon success, EOF otherwise, in which case the error code is set. */ int of_fclose() { int result = 0; if (file_) { if (popened_) { #ifdef _WIN32 result = _pclose(file_); #else result = ::pclose(file_); #endif } else { result = ::fclose(file_); } if (result == 0) file_ = NULL; } if (result) of_storeLastError(); return result; } /** waits for the associated process (created with popen) to terminate and * returns the exit status of the command as returned by wait4. * In this implementation, fclose and pclose can be used synonymously. * @return process ID of the child which exited, or -1 on error, in which case the error code is set */ int of_pclose() { return of_fclose(); } /** writes n elements of data, each size bytes long, to the stream, obtaining * them from the location given by ptr. Returns the number of items successfully written * (i.e., not the number of characters). If an error occurs the return value is a short * item count (or zero). * @param ptr pointer to buffer * @param size size of item * @param n number of items * @return number of items written */ size_t of_fwrite(const void *ptr, size_t size, size_t n) { return ::fwrite(ptr, size, n, file_); } /** reads n elements of data, each size bytes long, from the stream, storing * them at the location given by ptr. Returns the number of items successfully * read (i.e., not the number of characters). If an error occurs, or the * end-of-file is reached, the return value is a short item count (or zero). * fread does not distinguish between end-of-file and error, and callers must * use feof and ferror to determine which occurred. * @param ptr pointer to buffer * @param size size of item * @param n number of items * @return number of items read */ size_t of_fread(void *ptr, size_t size, size_t n) { return ::fread(ptr, size, n, file_); } /** forces a write of all user-space buffered data for the given output or * update stream via the stream's underlying write function. The open status * of the stream is unaffected. * @return 0 upon success, EOF otherwise, in which case the error code is set. */ int of_fflush() { int result = ::fflush(file_); if (result) of_storeLastError(); return result; } /** reads the next character from stream and returns it as an unsigned char * cast to an int, or EOF on end of file or error. * @return next character from stream or EOF */ int of_fgetc() { return ::fgetc(file_); } /** The three types of buffering available are unbuffered, block buffered, and * line buffered. When an output stream is unbuffered, information appears on * the destination file or terminal as soon as written; when it is block * buffered many characters are saved up and written as a block; when it is * line buffered characters are saved up until a newline is output or input * is read from any stream attached to a terminal device (typically stdin). * Normally all files are block buffered. if a stream refers to a terminal * (as stdout normally does) it is line buffered. The standard error stream * stderr is always unbuffered by default. this function allows to set the * mode of the stream to line buffered. * @return 0 upon success, nonzero otherwise, in which case the error code may be set * */ void of_setlinebuf() { #ifdef _WIN32 of_setvbuf(NULL, _IOLBF, 0); #else ::setlinebuf(file_); #endif } /** sets the file position indicator for the stream pointed to by stream to * the beginning of the file. This is equivalent to fseek(0, SEEK_SET) * except that the error indicator for the stream is also cleared. */ void of_rewind() { ::rewind(file_); } /** clears the end-of-file and error indicators for the stream */ void of_clearerr() { ::clearerr(file_); } /** tests the end-of-file indicator for the stream, returning non-zero if it * is set. The end-of-file indicator can only be cleared by the function * clearerr. This method is called eof, not feof, because feof() is a macro * on Win32 and, therefore, cannot be used as a method name. * @return non-zero if EOF, zero otherwise */ int of_eof() const { #ifdef _WIN32 // feof is a macro on Win32. Macros never have namespaces. return feof(file_); #else return ::feof(file_); #endif } /** tests the error indicator for the stream, returning non-zero if it is set. * This method is named error, not ferror, because ferror() is a macro * on Win32 and, therefore, cannot be used as a method name. * The error indicator can only be reset by the clearerr function. * @return non-zero if error flag is set, zero otherwise */ int of_error() { #ifdef _WIN32 // ferror is a macro on Win32. Macros never have namespaces. return ferror(file_); #else return ::ferror(file_); #endif } /** returns the low-level file descriptor associated with the stream * @return low-level file descriptor associated with stream */ int of_fileno() { return ::fileno(file_); } /** The three types of buffering available are unbuffered, block buffered, and * line buffered. When an output stream is unbuffered, information appears on * the destination file or terminal as soon as written; when it is block * buffered many characters are saved up and written as a block; when it is * line buffered characters are saved up until a newline is output or input * is read from any stream attached to a terminal device (typically stdin). * Normally all files are block buffered. if a stream refers to a terminal * (as stdout normally does) it is line buffered. The standard error stream * stderr is always unbuffered by default. This function allows to set the * mode of the stream to unbuffered (if buf is NULL) or block buffered. * @param buf pointer to buffer of size BUFSIZ as declared in cstdio, or NULL * @return 0 upon success, nonzero otherwise, in which case the error code may be set */ void of_setbuf(char *buf) { ::setbuf(file_, buf); } /** The three types of buffering available are unbuffered, block buffered, and * line buffered. When an output stream is unbuffered, information appears on * the destination file or terminal as soon as written; when it is block * buffered many characters are saved up and written as a block; when it is * line buffered characters are saved up until a newline is output or input * is read from any stream attached to a terminal device (typically stdin). * Normally all files are block buffered. if a stream refers to a terminal * (as stdout normally does) it is line buffered. The standard error stream * stderr is always unbuffered by default. This function allows to set the * stream mode. * @param buf pointer to buffer, may be NULL * @param modes _IONBF (unbuffered) _IOLBF (line buffered) or _IOFBF (fully buffered) * @param n size of buffer, in bytes * @return 0 upon success, nonzero otherwise, in which case the error code may be set */ int of_setvbuf(char * buf, int modes, size_t n) { int result = ::setvbuf(file_, buf, modes, n); if (result) of_storeLastError(); return result; } /** The three types of buffering available are unbuffered, block buffered, and * line buffered. When an output stream is unbuffered, information appears on * the destination file or terminal as soon as written; when it is block * buffered many characters are saved up and written as a block; when it is * line buffered characters are saved up until a newline is output or input * is read from any stream attached to a terminal device (typically stdin). * Normally all files are block buffered. if a stream refers to a terminal * (as stdout normally does) it is line buffered. The standard error stream * stderr is always unbuffered by default. This function allows to set the * mode of the stream to unbuffered (if buf is NULL) or block buffered. * @param buf pointer to buffer * @param size size of buffer, in bytes * @return 0 upon success, nonzero otherwise, in which case the error code may be set */ void of_setbuffer(char *buf, size_t size) { #ifdef _WIN32 of_setvbuf(NULL, buf ? _IOFBF : _IONBF, size); #else :: setbuffer(file_, buf, size); #endif } /** writes the character c, cast to an unsigned char, to stream. * @param c character * @return the character written as an unsigned char cast to an int or EOF on error */ int of_fputc(int c) { return ::fputc(c, file_); } /** reads in at most one less than n characters from stream and stores them * into the buffer pointed to by s. Reading stops after an EOF or a newline. * If a newline is read, it is stored into the buffer. A '\0' is stored after * the last character in the buffer. * @param s pointer to buffer of size n * @param n buffer size * @return pointer to string */ char* of_fgets(char *s, int n) { return ::fgets(s, n, file_); } /** writes the string s to stream, without its trailing '\0'. * @param s string to be written * @return a non-negative number on success, or EOF on error. */ int of_fputs(const char *s) { return ::fputs(s, file_); } /** pushes c back to stream, cast to unsigned char, where it is available for * subsequent read operations. Pushed - back characters will be returned in * reverse order; only one pushback is guaranteed. * @param c character to push back * @return c on success, or EOF on error. */ int of_ungetc(int c) { return ::ungetc(c, file_); } /** sets the file position indicator for the stream pointed to by stream. The * new position, measured in bytes, is obtained by adding offset bytes to the * position specified by whence. If whence is set to SEEK_SET, SEEK_CUR, or * SEEK_END, the offset is relative to the start of the file, the current * position indicator, or end-of-file, respectively. A successful call to the * fseek function clears the end-of- file indicator for the stream and undoes * any effects of the ungetc function on the same stream. * @param off offset to seek to * @param whence SEEK_SET, SEEK_CUR, or SEEK_END * @return 0 upon success, -1 otherwise in which case the error code is set. */ int of_fseek(offile_off_t off, int whence) { int result; #ifdef _WIN32 // Windows does not have a 64-bit fseek. // We emulate fseek through fsetpos, which does exist on Windows. // fpos_t is (hopefully always) defined as __int64 on this platform offile_fpos_t off2 = off; fpos_t pos; struct _stati64 buf; switch (whence) { case SEEK_END: // flush write buffer, if any, so that the file size is correct ::fflush(file_); #if 0 // Python implementation based on _lseeki64(). May be unsafe because // there is no guarantee that fflush also empties read buffers. ::fflush(file_); if (_lseeki64(:: fileno(file_), 0, 2) == -1) { of_storeLastError(); return -1; } // fall through #else // determine file size (using underlying file descriptor). This should be safe. if (_fstati64(:: fileno(file_), &buf) == -1) { of_storeLastError(); return -1; } // fsetpos position is offset + file size. off2 += buf.st_size; break; #endif case SEEK_CUR: if (::fgetpos(file_, &pos) != 0) { of_storeLastError(); return -1; } off2 += pos; break; case SEEK_SET: /* do nothing */ break; } result = of_fsetpos(&off2); #elif defined(__BEOS__) result = :: _fseek(fp, offset, whence); #else #ifdef HAVE_FSEEKO #ifdef EXPLICIT_LFS_64 result = ::fseeko64(file_, off, whence); #else result = ::fseeko(file_, off, whence); #endif #else result = ::fseek(file_, off, whence); #endif #endif if (result) of_storeLastError(); return result; } /** obtains the current value of the file position indicator for the stream pointed to by the stream. * @return current file position */ offile_off_t of_ftell() { #ifdef _WIN32 // Windows does not have a 64-bit ftell, and _telli64 cannot be used // because it operates on file descriptors and ignores FILE buffers. // We emulate ftell through fgetpos, which does exist on Windows. // fpos_t is (hopefully always) defined as __int64 on this platform. offile_fpos_t pos; if (of_fgetpos(&pos) != 0) { of_storeLastError(); return -1; } return pos; #else offile_off_t result; #ifdef HAVE_FSEEKO #ifdef EXPLICIT_LFS_64 result = ::ftello64(file_); #else result = ::ftello(file_); #endif #else result = ::ftell(file_); #endif if (result < 0) of_storeLastError(); return result; #endif } /** alternate interface equivalent to ftell, storing the current value of the * file offset into the object referenced by pos. On some non-UNIX systems an * fpos_t object may be a complex object and these routines may be the only * way to portably reposition a text stream. * @param pos pointer to offile_fpos_t structure * @return 0 upon success, -1 otherwise in which case the error code is set. */ int of_fgetpos(offile_fpos_t *pos) { int result; #ifdef EXPLICIT_LFS_64 result = ::fgetpos64(file_, pos); #else result = ::fgetpos(file_, pos); #endif if (result) of_storeLastError(); return result; } /** alternate interface equivalent to fseek (with whence set to SEEK_SET), * setting the current value of the file offset from the object referenced by * pos. On some non-UNIX systems an fpos_t object may be a complex object and * these routines may be the only way to portably reposition a text stream. * @param pos pointer to offile_fpos_t structure * @return 0 upon success, -1 otherwise in which case the error code is set. */ int of_fsetpos(offile_fpos_t *pos) { int result; #ifdef EXPLICIT_LFS_64 result = ::fsetpos64(file_, pos); #else result = ::fsetpos(file_, pos); #endif if (result) of_storeLastError(); return result; } /** print formatted string into stream, see printf(3) * @param format format string * @param ... further parameters according to format string * @return number of characters printed */ int of_fprintf(const char *format, ...) { int result = 0; va_list ap; va_start(ap, format); result = ::vfprintf(file_, format, ap); va_end(ap); return result; } /** print formatted string into stream, see printf(3) * @param format format string * @param arg list of further parameters according to format string * @return number of characters printed */ int of_vfprintf(const char *format, va_list arg) { return ::vfprintf(file_, format, arg); } // we cannot emulate fscanf because we would need vfscanf for this // purpose, which does not exist, e.g. on Win32. /** return FILE pointer managed by this object. This allows the user * to call some stdio functions that are not encapsulated in this class * (but possibly should be). * @return pointer to FILE structure managed by this object */ FILE *of_file() { return file_; } /** return true if this object is currently associated with a stream, false otherwise * @return true if this object is currently associated with a stream, false otherwise */ OFBool of_open() const { return file_ != NULL; } /** return last error code for this stream * @return last error code for this stream */ offile_errno_t of_getLastError() const { return lasterror_; } /** return string describing last error code for this stream * @param s string describing last error code for this stream returned in this parameter */ void of_getLastErrorString(OFString& s) const { #ifdef HAVE_PROTOTYPE_STRERROR_R char buf[1000]; buf[0] = 0; // be paranoid and initialize the buffer to empty string. // two incompatible interfaces for strerror_r with different return types exist. #ifdef HAVE_CHARP_STRERROR_R // we're using the GNU specific version that returns the result, which may // or may not be a pointer to buf s = strerror_r(lasterror_, buf, 1000); #else // we're using the X/OPEN version that always stores the result in buf. (void) strerror_r(lasterror_, buf, 1000); s = buf; #endif #else // we only have strerror() which is thread unsafe on Posix platforms, but thread safe on Windows. s = ::strerror(lasterror_); #endif } // Cygwin does not support the wide character functions #ifndef __CYGWIN__ /** When mode is zero, the fwide function determines the current orientation * of stream. It returns a value > 0 if stream is wide-character oriented, * i.e. if wide character I/O is permitted but char I/O is disallowed. It * returns a value < 0 if stream is byte oriented, i.e. if char I/O is * permitted but wide character I/O is disallowed. It returns zero if stream * has no orientation yet; in this case the next I/O operation might change * the orientation (to byte oriented if it is a char I/O operation, or to * wide-character oriented if it is a wide character I/O operation). * Once a stream has an orientation, it cannot be changed and persists until * the stream is closed. * When mode is non-zero, the fwide function first attempts to set stream's * orientation (to wide-character oriented if mode > 0, or to byte oriented * if mode < 0). It then returns a value denoting the current orientation, as * above. * @param mode mode of operation for fwide * @return orientation of stream */ int of_fwide(int mode) { return ::fwide(file_, mode); } /** reads a wide character from stream and returns it. If the end of stream is * reached, or if ferror(stream) becomes true, it returns WEOF. If a wide * character conversion error occurs, it sets the error code to EILSEQ and returns * WEOF. * @return next character from stream or WEOF */ wint_t of_fgetwc() { wint_t result = ::fgetwc(file_); if (result == WEOF) of_storeLastError(); return result; } /** writes the wide character wc to stream. If ferror(stream) becomes true, it returns WEOF. * If a wide character conversion error occurs, it sets the error code to EILSEQ and returns WEOF. * Otherwise it returns wc. * @param wc wide character to write to stream * @return character written or WEOF */ wint_t of_fputwc(wchar_t wc) { wint_t result = ::fputwc(wc, file_); if (result == WEOF) of_storeLastError(); return result; } /** pushes back a wide character onto stream and returns it. If wc is WEOF, it * returns WEOF. If wc is an invalid wide character, it sets errno to EILSEQ * and returns WEOF. If wc is a valid wide character, it is pushed back onto * the stream and thus becomes available for future wide character read * operations. The file-position indicator is decremented by one or more. * The end-of-file indicator is cleared. The backing storage of the file is * not affected. Note: wc need not be the last wide character read from the * stream; it can be any other valid wide character. If the implementation * supports multiple push-back operations in a row, the pushed-back wide * characters will be read in reverse order; however, only one level of * push-back is guaranteed. * @param wc wide character to put back to stream * @return character put back or WEOF */ wint_t of_ungetwc(wint_t wc) { wint_t result = ::ungetwc(wc, file_); if (result == WEOF) of_storeLastError(); return result; } /** print formatted wide string into stream, see wprintf(3) * @param format format string * @param ... further parameters according to format string * @return number of characters printed */ int of_fwprintf(const wchar_t *format, ...) { int result = 0; va_list ap; va_start(ap, format); result = ::vfwprintf(file_, format, ap); va_end(ap); return result; } /** print formatted wide string into stream, see printf(3) * @param format format string * @param arg list of further parameters according to format string * @return number of characters printed */ int of_vfwprintf(const wchar_t *format, va_list arg) { return ::vfwprintf(file_, format, arg); } // we cannot emulate fwscanf because we would need vfwscanf for this // purpose, which does not exist, e.g. on Win32. #endif /* __CYGWIN__ */ private: // private undefined copy constructor GinkgoOFFile(const GinkgoOFFile &arg); // private undefined assignment operator GinkgoOFFile &operator=(const GinkgoOFFile &arg); /// the file maintained by this object FILE *file_; /// a flag indicating whether or not this object was created with popen(). OFBool popened_; /// the last error code for operations of this stream offile_errno_t lasterror_; /// store last error code. For now we simply store the content of errno. inline void of_storeLastError() { lasterror_ = errno; } }; #endif /* * CVS/RCS Log: * $Log: offile.h,v $ * Revision 1.8 2009-03-12 11:37:54 joergr * Fixed various Doxygen API documentation issues. * * Revision 1.7 2009-02-13 12:56:18 joergr * Added private undefined copy constructor and assignment operator in order to * avoid compiler warnings (reported by gcc with additional flags). * * Revision 1.6 2009-01-30 13:49:01 joergr * Replaced checking of macro WIN32 by _WIN32. * * Revision 1.5 2008-05-29 10:37:11 meichel * Fixed compile error on Cygwin where no wide-char FILE functions are available * * Revision 1.4 2008-02-07 16:57:46 meichel * Class OFFile now makes use of HAVE_CHARP_STRERROR_R to use the * correct version of strerror_r. * * Revision 1.3 2007/06/06 13:55:58 onken * Fixed compilation for Mac OS X with making large file support function calls * implicit for this OS (Mac OS X misleadingly defines _LARGEFILE64_SOURCE). * * Revision 1.2 2007/02/19 16:03:47 meichel * Added constructor to class OFFile that takes FILE * as argument. * * Revision 1.1 2006/08/21 12:40:44 meichel * Added new class OFFile that provides a simple encapsulation layer for * FILE based stream I/O and, in particular, provides long file support * (LFS) if available on the underlying operating system platform through * a single API. * * */ ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/tls/000077500000000000000000000000001314736454600226525ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/tls/gtlslayer.cc000066400000000000000000000077211314736454600251760ustar00rootroot00000000000000/* * * $Id$ * Ginkgo CADx Project * * Copyright 2008-14 MetaEmotion S.L. All rights reserved. * http://ginkgo-cadx.com * * This file is licensed under LGPL v3 license. * See License.txt for details * */ #include "tls.h" #include "gtlslayer.h" #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ BEGIN_EXTERN_C #ifdef HAVE_WINDOWS_H #define _WINSOCKAPI_ // stops windows.h including winsock.h #include #include #endif #include #include END_EXTERN_C #include "dcmtk/dcmtls/tlstrans.h" #include "dcmtk/dcmnet/dicom.h" OFBool GTLSTransportLayer::setTempDHParametersFromString(const std::string& /*params*/) { #if defined(USE_PATCHED_LIBS) if (!transportLayerContext) { return OFFalse; //TCS_illegalCall; } if (params.size()) { std::cerr << "No implementado" << std::endl; } #endif return OFFalse; } GTLSTransportLayer::~GTLSTransportLayer() { } DcmTransportLayerStatus GTLSTransportLayer::setPrivateKeyFromString(const std::string& /*keyStr*/) { #if defined(USE_PATCHED_LIBS) if (!transportLayerContext) { return TCS_illegalCall; } int ret = 0; EVP_PKEY* pkey = NULL; BIO* bio = BIO_new_mem_buf((void*)keyStr.c_str(), -1); PEM_read_bio_PrivateKey(bio, &pkey, NULL, NULL); BIO_set_close(bio, BIO_NOCLOSE); BIO_free(bio); if (pkey == NULL) { std::cerr << "Error al leer el clave privada" << std::endl; return TCS_tlsError; } ret = SSL_CTX_use_PrivateKey(transportLayerContext, pkey); EVP_PKEY_free(pkey); if (ret <= 0) { return TCS_tlsError; } #endif return TCS_ok; } DcmTransportLayerStatus GTLSTransportLayer::setCertificateFromString(const std::string& /*certStr*/) { #if defined(USE_PATCHED_LIBS) if (!transportLayerContext) { return TCS_illegalCall; } int ret = 0; X509* cert = NULL; BIO* bio = BIO_new_mem_buf((void*)certStr.c_str(), -1); PEM_read_bio_X509(bio, &cert, 0, NULL); BIO_set_close(bio, BIO_NOCLOSE); BIO_free(bio); if (cert == NULL) { std::cerr << "Error al leer el certificado" << std::endl; return TCS_tlsError; } ret = SSL_CTX_use_certificate(transportLayerContext, cert); if (ret <= 0 ) { return TCS_tlsError; } #endif return TCS_ok; } #ifdef _WIN32 //agrega los certificados de windows void X509_STORE_load_windows_systemstore(X509_STORE *store) { HCERTSTORE hStore; PCCERT_CONTEXT pContext = NULL; X509 *x509; hStore = CertOpenSystemStoreA(0, "ROOT"); if(!hStore) return; while ( (pContext = CertEnumCertificatesInStore(hStore, pContext)) != NULL ) { x509 = NULL; x509 = d2i_X509(NULL, (const unsigned char**)(&pContext->pbCertEncoded), pContext->cbCertEncoded); if (x509) { X509_STORE_add_cert(store, x509); X509_free(x509); } } CertFreeCertificateContext(pContext); CertCloseStore(hStore, 0); } #endif void LoadSystemTrustedCertificates(X509_STORE *store) { X509_STORE_set_default_paths(store); #ifdef _WIN32 X509_STORE_load_windows_systemstore(store); #endif } DcmTransportLayerStatus GTLSTransportLayer::addSystemTrustedCertificates() { #if defined(USE_PATCHED_LIBS) if (!transportLayerContext) { return TCS_illegalCall; } //int ret = 0; X509_STORE* almacen = transportLayerContext->cert_store; if(almacen != NULL) { LoadSystemTrustedCertificates(almacen); } else { return TCS_tlsError; } #endif return TCS_ok; } ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/tls/gtlslayer.h000066400000000000000000000050541314736454600250350ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "tls.h" #include /** * Class derived from DcmTLSTransportLayer to accept inline certs/keys **/ class GTLSTransportLayer : public DcmTLSTransportLayer { public: /** constructor. * @param networkRole network role to be used by the application, influences * the choice of the secure transport layer code. * @param randFile path to file used to feed the random generator */ GTLSTransportLayer(int networkRole, const char *randFile) : DcmTLSTransportLayer(networkRole, randFile) {} /// destructor virtual ~GTLSTransportLayer(); /** loads the private key used for authentication of this application from a string. * @param key The private key * @return TCS_ok if successful, an error code otherwise */ DcmTransportLayerStatus setPrivateKeyFromString(const std::string& key); /** loads the certificate (public key) used for authentication of this application from a string. * @param cert The certificate * @return TCS_ok if successful, an error code otherwise */ DcmTransportLayerStatus setCertificateFromString(const std::string& cert); /** loads a certificate from a string and adds it to the pool of trusted certificates. * @param cert The certificate * @return TCS_ok if successful, an error code otherwise */ DcmTransportLayerStatus addSystemTrustedCertificates(); /** loads a set of Diffie-Hellman parameters from a string. * These parameters are required for DH, DHE or DSS ciphersuites. * @param params DH parameter * @return OFTrue if successful, OFFalse otherwise. */ OFBool setTempDHParametersFromString(const std::string& params); private: }; ginkgocadx-3.8.7/cadxcore/main/controllers/dcmtk/tls/tls.h000066400000000000000000000014631314736454600236310ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #if !defined(WITH_OPENSSL) #define WITH_OPENSSL #endif ginkgocadx-3.8.7/cadxcore/main/controllers/dicommanager.cpp000066400000000000000000001415151314736454600241070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include #include "dcmtk/dcmimgle/dcmimage.h" #include #include /* for dcmjpeg decoders */ #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif #include #include #include #include #include #include #include #include #include #include #include "dicommanager.h" #include #include #include #include
    #ifdef DCMTK_POST_20170228 #include #endif //en este grupo se almacenaran los atributos privados de ginkgo #define GINKGO_GROUP 0x0011 namespace GIL { namespace DICOM { // Constructor DICOMManager::DICOMManager() { m_pDCMSourceFile = NULL; m_pDCMSourceDataset = NULL; m_pConv = NULL; } DICOMManager::DICOMManager(DcmDataset* dataset, const std::string& defaultCharset) { m_pDCMSourceFile = NULL; m_pDCMSourceDataset = dataset; m_pConv = NULL; FindCharset(defaultCharset); } // Destructor DICOMManager::~DICOMManager() { if (m_pDCMSourceFile != NULL) { delete m_pDCMSourceFile; m_pDCMSourceFile = NULL; } if (m_pConv != NULL) { delete m_pConv; m_pConv = NULL; } } DcmDataset* DICOMManager::getSourceDataSet() { if (m_pDCMSourceFile != NULL) { return m_pDCMSourceFile->getDataset(); } else { return m_pDCMSourceDataset; } } //region "Interfaz" /*Almacena la jerarquia cargada en un fichero*/ bool DICOMManager::AlmacenarFichero(const std::string& inputFile, IInspectCallBack* , bool ) { if (m_pDCMSourceFile == NULL) { return false; } FindCharset(); OFCondition cond; std::string tempDir = GNC::GCS::IEntorno::Instance()->CreateGinkgoTempDir(); std::string tempFile; { std::ostringstream ostr; ostr << tempDir; char c; if (wxFileName::GetPathSeparator().GetAsChar(&c)) { ostr << c; } ostr << "1.dcm"; tempFile = ostr.str(); } cond = m_pDCMSourceFile->saveFile(tempFile.c_str()); if (cond.bad()) { std::cerr << "Error: " << cond.text() << std::endl; wxRemoveFile(FROMPATH(tempFile)); return false; } else { wxRenameFile(FROMPATH(tempFile), FROMPATH(inputFile), true); m_pDCMSourceFile->loadFile(inputFile.c_str(), EXS_Unknown, EGL_noChange, DCM_TagInfoLength); } return true; } /*Actualiza la jerarquia cargada*/ int DICOMManager::ActualizarJerarquia(DicomDataset& base) { if (getSourceDataSet() == NULL) { return 0; } return InsertarJerarquia(base, NULL, NULL); } /*anonimiza los tags privados*/ void DICOMManager::AnonimizarTagsPrivados() { OFCondition cond; DcmElement* element; unsigned int g=GINKGO_GROUP; unsigned int e=0x0010; DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return; } for(; e<=0xFFFF; e++) { DcmTagKey key(g,e); cond = ds->findAndGetElement(key,element,false); if(element!=NULL) { ds->remove(key); } } } /*actualiza los tags privados*/ int DICOMManager::ActualizarTagsPrivados(TipoPrivateTags& tags) { if (getSourceDataSet() == NULL) { return 0; } return InsertarTagsPrivados(tags); } int DICOMManager::CargarTagsPrivados(GIL::DICOM::TipoPrivateTags& tags) { if (getSourceDataSet() == NULL) { return 0; } return PrivateCargarTagsPrivados(tags); } /*carga la MetaInfo*/ int DICOMManager::CargarMetaInfo(const std::string& inputFile, GIL::DICOM::TipoMetaInfo& tags) { //comprobamos que es dicom(numero magico, si no el load file a veces casca estrepitosamente) if(!EsDicom(inputFile)) { return 0; } OFCondition cond; DcmMetaInfo metaInfo; cond = metaInfo.loadFile(inputFile.c_str(), EXS_Unknown, EGL_noChange); //metaInfo.loadAllDataIntoMemory(); //metaInfo.print(std::cout); int numInsertados = 0; unsigned long elemCount = metaInfo.card(); for (unsigned long i = 0; i < elemCount; i++) { DcmElement *e = metaInfo.getElement(i); GTRACE("Procesando objeto MetaInfo: " << e->getTag().toString()) std::ostringstream os; os << std::hex << std::setw(4) << std::setfill('0') << e->getGTag() << "|" << std::hex << std::setw(4) << std::setfill('0') << e->getETag(); std::string tag = os.str(); OFString v; std::string ov; cond = e->getOFStringArray(v, OFTrue); if (cond.good()) { ov = v.c_str(); } tags.tags[tag] = ov; numInsertados++; } if (cond.bad()) { // TODO: Lanzar excepción return 0; } return numInsertados; } /* Obtiene la jerarquia de campos DICOM del fichero */ bool DICOMManager::CargarFichero(const std::string& inputFile, GIL::DICOM::DicomDataset& jerarquia, bool cargarSoloTagsInfo, IInspectCallBack* /*pICallback*/) { //comprobamos que es dicom(numero magico, si no el load file a veces casca estrepitosamente) if(!EsDicom(inputFile)) { return false; } // if (m_pDCMSourceFile != NULL) { delete m_pDCMSourceFile; m_pDCMSourceFile = NULL; } if (m_pConv != NULL) { delete m_pConv; m_pConv = NULL; } m_pDCMSourceFile = new DcmFileFormat(); OFCondition cond; if (true ||cargarSoloTagsInfo) { // FIXME Review cond = m_pDCMSourceFile->loadFile(inputFile.c_str(), EXS_Unknown, EGL_noChange, DCM_TagInfoLength); } else { //cond = dcmff.loadFile(inputFile.c_str(), EXS_Unknown, EGL_noChange, DCM_MaxReadLength); } //dcmff.loadAllDataIntoMemory(); if (cond.bad()) { // TODO: Lanzar excepción return false; } FindCharset(); if(cargarSoloTagsInfo) { CargarJerarquia(jerarquia, DCM_OptPrintLineLength); } else { CargarJerarquia(jerarquia, 0); } return true; } /******************/ //esto es para cargar el fichero sin llevar todo a memoria, solo lo que nos interese con el gettag bool DICOMManager::CargarFichero(const std::string& inputFile, bool /*cargarSoloTagsInfo*/) { //comprobamos que es dicom(numero magico, si no el load file a veces casca estrepitosamente) if(!EsDicom(inputFile)) { return false; } // if (m_pDCMSourceFile != NULL) { delete m_pDCMSourceFile; m_pDCMSourceFile = NULL; } if (m_pConv != NULL) { delete m_pConv; m_pConv = NULL; } m_pDCMSourceFile = new DcmFileFormat(); OFCondition cond; //if (true || cargarSoloTagsInfo) { cond = m_pDCMSourceFile->loadFile(inputFile.c_str(), EXS_Unknown, EGL_noChange, DCM_TagInfoLength); //} //else { // cond = dcmff.loadFile(inputFile.c_str()); //} if (cond.bad()) { // TODO: Lanzar excepción return false; } //cond = dcmff.loadAllDataIntoMemory(); if (cond.bad()) { // TODO: Lanzar excepción return false; } FindCharset(); return true; } bool DICOMManager::GetTag(unsigned int grupo,unsigned int elemento, std::string & valor) { DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return false; } FindCharset(); DcmTagKey key(grupo,elemento); DcmElement* pElement; ds->findAndGetElement(key,pElement); if(pElement != NULL) { if(pElement->containsUnknownVR()) { return false; } else { OFString v; OFCondition cond = pElement->getOFStringArray(v, OFTrue); if (cond.good()) { valor = wxString(v.c_str(), *m_pConv).ToUTF8(); return true; } else { return false; } } } else { return false; } } bool DICOMManager::GetTag(unsigned int grupo,unsigned int elemento, TagPrivadoUndefined& tagBinario) { DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return false; } if(grupo == 0x7fe0 && elemento == 0x0010) { //es necesario para pillar el pixeldata en explicit little endian OFCondition cond = ds->chooseRepresentation(EXS_DeflatedLittleEndianExplicit,NULL); if(cond.bad()) { return false; } } FindCharset(); DcmTagKey key(grupo,elemento); DcmElement* pElement; ds->findAndGetElement(key,pElement); if(pElement != NULL) { OFCondition cond = pElement->loadAllDataIntoMemory(); if(cond.good()) { Uint8 * ptr; cond = pElement->getUint8Array(ptr); if(cond.good()) { tagBinario.Copiar(ptr,pElement->getLength()); return true; } else { return false; } } else { return false; } } else { return false; } } bool DICOMManager::GetTag(unsigned int grupo,unsigned int elemento, float& valor) { std::string valorstr; if(GetTag(grupo,elemento,valorstr)) { valor = 0.0f; std::sscanf(valorstr.c_str(),"%f",&valor); return true; } else { //se intenta interpretar como US DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return false; } DcmTagKey key(grupo,elemento); DcmElement* pElement; ds->findAndGetElement(key,pElement); if(pElement != NULL) { Uint8 * ptr; OFCondition cond = pElement->getUint8Array(ptr); if(cond.good()) { switch (pElement->getLength()) { case 4: valor = *((Float32*)ptr); return true; break; case 8: valor = *((Float64*)ptr); return true; break; default: return false; } } else { return false; } } return false; } } bool DICOMManager::GetTag(unsigned int grupo,unsigned int elemento, int& valor) { std::string valorstr; if(GetTag(grupo,elemento,valorstr)) { valor = atoi(valorstr.c_str()); return true; } else { //se intenta interpretar como US DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return false; } DcmTagKey key(grupo,elemento); DcmElement* pElement; ds->findAndGetElement(key,pElement); if(pElement != NULL) { Uint8 * ptr; OFCondition cond = pElement->getUint8Array(ptr); if(cond.good()) { switch (pElement->getLength()) { case 2: valor = *((Uint16*)ptr); return true; break; case 4: valor = *((Uint32*)ptr); return true; break; default: return false; } } else { return false; } } return false; } } bool DICOMManager::ExtractTagToFile(unsigned int grupo, unsigned int element, const std::string& outputFile, GNC::IProxyNotificadorProgreso* pNotificador) { DcmTagKey key(grupo,element); DcmElement* pElement; DcmDataset* pDset = getSourceDataSet(); if (pDset == NULL) { return false; } pDset->findAndGetElement(key,pElement); if(pElement != NULL) { DcmPixelData* pPixelData = dynamic_cast(pElement); if (pPixelData != NULL) { // OFCondition cond = pElement->loadAllDataIntoMemory(); DcmPixelSequence* pPixelSeq = NULL; OFCondition cond = pPixelData->getEncapsulatedRepresentation(pDset->getOriginalXfer(), NULL, pPixelSeq); if(cond.good()) { for (unsigned long i = 0; i < pPixelSeq->card(); ++i) { DcmPixelItem *pixelItem = NULL;; cond = pPixelSeq->getItem(pixelItem, i); if (cond.good()) { if (pixelItem->getLength(pDset->getOriginalXfer())> 0) { char readingBuffer[8*1024]; int length = pixelItem->getLengthField(); int numBytes, offset = 0; DcmFileCache cache; std::ofstream outfile (outputFile.c_str(), std::ofstream::binary); int numIterations = 0; do { if (pNotificador != NULL && numIterations%100 == 0) { if (!pNotificador->NotificarProgreso((float)offset/length, _Std("Extracting file..."))) { outfile.close(); wxRemoveFile(FROMPATH(outputFile)); return false; } } numBytes = ((offset + (int)sizeof(readingBuffer)) > length)? length - offset: (int)sizeof(readingBuffer); pixelItem->getPartialValue(readingBuffer, offset, numBytes, &cache); outfile.write(readingBuffer, numBytes); offset += numBytes; numIterations ++; } while (offset < length); outfile.close(); return true; } } } } } else { char readingBuffer[8*1024]; int length = pElement->getLengthField(); int numBytes, offset = 0; DcmFileCache cache; std::ofstream outfile (outputFile.c_str(), std::ios_base::binary); int numIterations = 0; do { if (pNotificador != NULL && numIterations%100 == 0) { if (!pNotificador->NotificarProgreso((float)offset/length, _Std("Extracting file..."))) { outfile.close(); wxRemoveFile(FROMPATH(outputFile)); return false; } } numBytes = ((offset + (int)sizeof(readingBuffer)) > length)? length - offset: (int)sizeof(readingBuffer); pElement->getPartialValue(readingBuffer, offset, numBytes, &cache); outfile.write(readingBuffer, numBytes); offset += numBytes; numIterations ++; } while (offset < length); outfile.close(); return true; } } LOG_ERROR("Dicommanager", "error extracting tag"); return false; } bool DICOMManager::GetTag(unsigned int grupo,unsigned int elemento, GIL::DICOM::DicomDataset& secuencia) { DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return false; } DcmTagKey key(grupo,elemento); DcmElement* pSequence; ds->findAndGetElement(key,pSequence); if(pSequence != NULL) { CargarJerarquia(secuencia,DCM_OptPrintLineLength,pSequence); return true; } else { return false; } } bool DICOMManager::FindTag(unsigned int grupo,unsigned int elemento, TagPrivadoUndefined& tagBinario) { DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return false; } if( (grupo == 0x7fe0 && elemento == 0x0010) || (grupo == 0x5400 && elemento == 0x1010) ) { //es necesario para pillar el pixeldata en explicit little endian OFCondition cond = ds->chooseRepresentation(EXS_DeflatedLittleEndianExplicit,NULL); if(cond.bad()) { return false; } } DcmTagKey key(grupo,elemento); DcmElement* pElement; ds->findAndGetElement(key, pElement, OFTrue); if(pElement != NULL) { OFCondition cond = pElement->loadAllDataIntoMemory(); if(cond.good()) { Uint8 * ptr; cond = pElement->getUint8Array(ptr); if(cond.good()) { tagBinario.Copiar(ptr,pElement->getLength()); return true; } else { Uint16 * ptr2; cond = pElement->getUint16Array(ptr2); if(cond.good()) { tagBinario.Copiar(ptr2, pElement->getLength()); return true; } else { return false; } } } else { return false; } } else { return false; } } bool DICOMManager::FindTag(unsigned int grupo, unsigned int elemento, std::vector& binaryTags) { DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return false; } if( (grupo == 0x7fe0 && elemento == 0x0010) || (grupo == 0x5400 && elemento == 0x1010) ) { //es necesario para pillar el pixeldata en explicit little endian OFCondition cond = ds->chooseRepresentation(EXS_DeflatedLittleEndianExplicit,NULL); if(cond.bad()) { return false; } } DcmTagKey key(grupo,elemento); DcmStack elementStack; ds->findAndGetElements(key, elementStack); while (!elementStack.empty()) { DcmElement *pElement = dynamic_cast(elementStack.top()); if (!pElement) return false; elementStack.pop(); auto cond = pElement->loadAllDataIntoMemory(); if(cond.good()) { Uint8 * ptr; cond = pElement->getUint8Array(ptr); TagPrivadoUndefined tagBinario; if(cond.good()) { tagBinario.Copiar(ptr,pElement->getLength()); LOG_INFO("Dicommanager", "Read " << pElement->getLength() << " waveform sample bytes"); } else { Uint16 * ptr2; cond = pElement->getUint16Array(ptr2); if(cond.good()) { tagBinario.Copiar(ptr2, pElement->getLength()); LOG_INFO("Dicommanager", "Read " << pElement->getLength() << " waveform sample bytes"); } else { return false; } } binaryTags.insert(binaryTags.begin(), tagBinario); } else { return false; } } return !binaryTags.empty(); } /* returns the oid name or empty string if not found */ std::string DICOMManager::GetOIDName(const std::string &oid) { const char* name = dcmFindNameOfUID(oid.c_str()); if (name != NULL) { return std::string(name); } else { return std::string(""); } } /* devuelve la descripcion de este tag*/ std::string DICOMManager::GetDescription(const std::string &clave) const { unsigned int g = 0xffff; unsigned int e = 0xffff; int n; n = sscanf(clave.c_str(), "%x|%x", &g, &e); if (n == 2) { // if at least no tag could be parsed DcmTagKey key(g,e); const DcmDataDictionary& globalDataDict = dcmDataDict.rdlock(); const DcmDictEntry *dicent = globalDataDict.findEntry(key,NULL); dcmDataDict.unlock(); if (dicent != NULL) { return std::string(dicent->getTagName()); } } return std::string(""); }; std::string DICOMManager::GetNewUID() { return GIL::DICOM::MakeUID(GIL::DICOM::GUID_StudyRoot); } bool DICOMManager::EsDicom(const std::string& inputFile) { //comprobamos que es dicom(numero magico, si no el load file a veces casca estrepitosamente) wxFile fichero(FROMPATH(inputFile),wxFile::read); bool esDicom = false; if(fichero.IsOpened()) { char buffer[128]; if(fichero.Read(buffer,128) == 128) { char numeroMagico[4]; if(fichero.Read(numeroMagico,4) == 4) { std::string str(numeroMagico,4); if(str == "DICM") { esDicom = true; } } } } return esDicom; } //endregion DcmElement* DICOMManager::CrearElementoConValor(const char* s) { unsigned int g = 0xffff; unsigned int e = 0xffff; int n = 0; char* val = new char[strlen(s)+1]; OFString dicName, valStr; OFString msg; val[0] = '\0'; // try to parse group and element number n = sscanf(s, "%x|%x=%s", &g, &e, val); OFString toParse = s; size_t eqPos = toParse.find('='); if (n < 2) { // if at least no tag could be parsed // if value is given, extract it (and extrect dictname) if (eqPos != OFString_npos) { dicName = toParse.substr(0, eqPos).c_str(); valStr = toParse.substr(eqPos + 1, toParse.length()); } else // no value given, just dictionary name dicName = s; // only dictionary name given (without value) // try to lookup in dictionary DcmTagKey key(0xffff, 0xffff); const DcmDataDictionary& globalDataDict = dcmDataDict.rdlock(); const DcmDictEntry *dicent = globalDataDict.findEntry(dicName.c_str()); dcmDataDict.unlock(); if (dicent != NULL) { // found dictionary name, copy group and element number key = dicent->getKey(); g = key.getGroup(); e = key.getElement(); } else { // not found in dictionary std::cerr << "bad key format or dictionary name not found in dictionary: " << dicName << std::endl; delete[] val; return NULL; } }// tag could be parsed, copy value if it exists else { if (eqPos != OFString_npos) { valStr = toParse.substr(eqPos + 1, toParse.length()); } } DcmTag tag(g, e); if (tag.error() != EC_Normal) { std::cerr << "Tag desconocido: (" << std::hex << std::setw(4) << std::setfill('0') << g << "|" << std::hex << std::setw(4) << std::setfill('0') << e << ")" << std::endl; delete[] val; return NULL; } DcmElement *elem = newDicomElement(tag); if (elem == NULL) { std::cerr << "No se pudo crear el elemento para el tag: (" << std::hex << std::setw(4) << std::setfill('0') << g << "|" << std::hex << std::setw(4) << std::setfill('0') << e << ")" << std::endl; delete[] val; return NULL; } if (valStr.length() > 0) { if (elem->putString(valStr.c_str()).bad()) { std::cerr << "No se pudo asignar el valor al elemento: (" << std::hex << std::setw(4) << std::setfill('0') << g << "|" << std::hex << std::setw(4) << std::setfill('0') << e << ")=" << valStr.c_str() << std::endl; delete elem; delete[] val; return NULL; } } delete[] val; return elem; } int DICOMManager::InsertarJerarquia(const DicomDataset& base, DcmItem* itemPadre, DcmSequenceOfItems* seqPadre) { int numTotalInsertados = 0; int numTagsInsertados = 0; int numItemsInsertados = 0; int numSeqsInsertadas = 0; DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return 0; } // Insertamos todos los tags correspondientes a este nivel en la raiz (de haberla, si no: en el dataset). for (ListaTags::const_iterator it = base.tags.begin(); it != base.tags.end(); ++it) { DcmElement* e = this->CrearElementoConValor((*it).first.c_str()); if (e != NULL) { e->putString( wxString( (*it).second.c_str(), wxConvUTF8).mb_str(*m_pConv) ); OFCondition cond; if (itemPadre == NULL) { cond = ds->insert(e, true, false); } else { cond = itemPadre->insert(e, true, false); } if (cond.bad()) { LOG_ERROR("DICOMMANAGER", "No se pudo insertar el elemento: (" << e->getTag().toString().c_str() << "): " << cond.text()); } else { numTotalInsertados++; numTagsInsertados++; } } } // Insertamos todos los items correspondientes a este nivel en la raiz (de haberla, si no: en el dataset). for (DicomDataset::DatasetList::const_iterator it = base.items.begin(); it != base.items.end(); ++it) { DcmItem *item = new DcmItem(); int nItems = InsertarJerarquia((*it), item, NULL); if (nItems > 0) { OFCondition cond; if (seqPadre == NULL) { std::cerr << "No se pudo insertar el item directamente a la raiz. " << "Deben insertarse en secuencias o en otros items. " << nItems << " elementos perdidos: " << cond.text() << std::endl; std::cerr << "tag << " << (*it) <insert(item, true, false); GTRACE(seqPadre->getTag().toString().c_str() << " << " << item->getTag().toString()); if (cond.bad()) { std::cerr << "No se pudo insertar el item a la raiz. " << nItems << " elementos perdidos: " << cond.text() << std::endl; delete item; } else { numTotalInsertados += nItems + 1; numItemsInsertados++; } } } else { delete item; } } // Insertamos todas las secuencias correspondientes a este nivel en la raiz (de haberla, si no: en el dataset). for (DicomDataset::DatasetList::const_iterator it = base.secuencias.begin(); it != base.secuencias.end(); ++it) { std::string claveSecuencia = (*it).tagName; const DicomDataset& nbase = (*it); unsigned int sg = 0xffff; unsigned int se = 0xffff; int sn = 0; sn = sscanf(claveSecuencia.c_str(), "%x|%x", &sg, &se); if (sn < 2) { std::cerr << "Formato invalido (" << claveSecuencia.c_str() << "). Solo se soporta (FFFF|FFFF) como formato de tag para secuencias" << std::endl; continue; } DcmTag stag(sg, se); if (stag.error() != EC_Normal) { std::cerr << "Tag desconocido: " << claveSecuencia << std::endl; continue; } DcmSequenceOfItems* seq = new DcmSequenceOfItems(stag); if (seq == NULL) { std::cerr << "No se pudo crear la secuencia para el tag: " << claveSecuencia << std::endl; continue; } int nItems = InsertarJerarquia(nbase, NULL, seq); if (nItems > 0) { OFCondition cond; if (seqPadre != NULL) { DcmItem* item = new DcmItem(); cond = item->insert(seq); seqPadre->insert(item); GTRACE(seqPadre->getTag().toString().c_str() << " << " << seq->getTag().toString()); } else if (itemPadre != NULL) { cond = itemPadre->insert(seq, OFTrue); GTRACE(itemPadre->getTag().toString().c_str() << " << " << seq->getTag().toString()); } else { cond = ds->insert(seq, OFTrue); GTRACE("raiz << " << seq->getTag().toString()); } if (cond.bad()) { std::cerr << "No se pudo insertar el item a la raiz. " << nItems << " elementos perdidos: " << cond.text() << std::endl; delete seq; } else { numTotalInsertados += nItems + 1; numSeqsInsertadas++; } } else { delete seq; } } return numTotalInsertados; } //----------------------CARGAR JERARQUIA------------------------------------------------------- int DICOMManager::CargarJerarquia(DicomDataset& base, unsigned int maximaLongitud, DcmElement * pElementoInicial) { int numInsertados = 0; std::queue pilaElementos; std::queue pilaPadres; OFCondition cond; DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return 0; } FindCharset(); unsigned long elemCount = ds->card(); //si es nulo, queremos cargar toda la jerarquia if(pElementoInicial == NULL) { for (unsigned long i = 0; i < elemCount; i++) { DcmElement *e = ds->getElement(i); if (e->getGTag() == 0x7fe0 && e->getETag() == 0x0010) { // Excluir pixel data } else { pilaElementos.push(e); pilaPadres.push(&base); } } } else { pilaElementos.push(pElementoInicial); pilaPadres.push(&base); } while(!pilaElementos.empty()) { DcmElement* e = pilaElementos.front(); pilaElementos.pop(); GIL::DICOM::DicomDataset* cbase = pilaPadres.front(); pilaPadres.pop(); if (e->ident() == EVR_item) { LOG_TRACE("DICOMManager::CargarJerarquia", "Processing item: " << e->getTag().toString()); GIL::DICOM::DicomDataset newbase; cbase->items.push_front(newbase); numInsertados++; DcmObject* e2 = NULL; while ( (e2 = e->nextInContainer(e2)) != NULL) { pilaElementos.push( static_cast(e2) ); pilaPadres.push( &(cbase->items.front()) ); } } else if (e->ident() == EVR_SQ) { LOG_TRACE("DICOMManager::CargarJerarquia", "Processing sequence: " << e->getTag().toString()); std::ostringstream os; os << std::hex << std::setw(4) << std::setfill('0') << e->getGTag() << "|" << std::hex << std::setw(4) << std::setfill('0') << e->getETag(); std::string tag = os.str(); GIL::DICOM::DicomDataset newbase; newbase.tagName = tag; cbase->secuencias.push_front(newbase); numInsertados++; DcmObject* e2 = NULL; while ( (e2 = e->nextInContainer(e2)) != NULL) { pilaElementos.push( static_cast(e2) ); pilaPadres.push( &(cbase->secuencias.front()) ); } } else { LOG_TRACE("DICOMManager::CargarJerarquia","Procesando objeto: " << e->getTag().toString()); std::ostringstream os; os << std::hex << std::setw(4) << std::setfill('0') << e->getGTag() << "|" << std::hex << std::setw(4) << std::setfill('0') << e->getETag(); std::string tag = os.str(); //solo carga los tags no privados if(e->getGTag() != GINKGO_GROUP && ( maximaLongitud == 0 || e->getLength() < maximaLongitud ) ) { if (e->getGTag() == GINKGO_GROUP) { std::cout << "long=" << e->getLength() << std::endl; } OFString v; std::string ov; cond = e->getOFStringArray(v, OFTrue); if (cond.good()) { ov = wxString(v.c_str(), *m_pConv).ToUTF8(); } if (ov.size() == 0 && v.size() != ov.size()) { //workarround try iso... wxCSConv tryIso(wxFONTENCODING_ISO8859_1); ov = wxString(v.c_str(), tryIso).ToUTF8(); //last chance... try ascii if (ov.size() == 0 && v.size() != ov.size()) { ov = wxString::FromAscii(v.c_str()).ToUTF8(); } } cbase->tags[tag] = ov; numInsertados++; } else { } } } return numInsertados; } //----------------------INSERTAR TAGS PRIVADOS------------------------------------------------------- int DICOMManager::InsertarTagsPrivados(TipoPrivateTags& tags) { //se busca el uid en el rango (GINKGO_GROUP,0010-00FF) unsigned int g=GINKGO_GROUP; unsigned int e=0; OFCondition cond; DcmElement* element; DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return 0; } e=GetElementIdentifier(tags); if(e>0x00FF || e==0) { //no deberia llegar aqui std::cerr<<"error al almacenar los tags privados, todos los slots ocupados" <ToElement(g,eTemp); if (element != NULL) { cond = ds->insert(element, true, false); if (cond.bad()) { std::cerr << "error al almacenar los tags privados, error al escribir en el dataset: (" << g << ","<0x00FF || e==0) { //no deberia llegar aqui std::cerr<<"error al almacenar los tags privados, todos los slots ocupados" <findAndGetElement(key,element,false); if (element!=NULL && cond.good()) { if (element->getVR() == EVR_LT) { char* copiaString = NULL; if (!element->isEmpty() && element->getString(copiaString).good()) { tags.SetTag(eTag, copiaString); } numElementos++; } else if (element->getVR() == EVR_UN) { //se lee el elemento int size = element->getLength(); if (size>0) { TagPrivadoUndefined* pTag = tags.NewTagUndefined(eTag, size); Uint8 * ptr; cond = element->getUint8Array(ptr); memcpy(pTag->GetValor(),ptr,size*sizeof(Uint8)); if (cond.bad()) { std::cerr << "error al cargar los tags privados, error al cargar el tag: (" << g << ","<findAndGetElement(key,element,false); if(element==NULL) { //esta libre el slot //se introduce el uid DcmTagKey key(g,e); DcmTag tag(key); //tipo short string!!!! DcmVR vr(EVR_SH); tag.setVR(vr); if (tag.error() != EC_Normal) { std::cerr << "error al almacenar los tags privados, tag desconocido: (" << g << ","<putString(tags.UIDModulo.c_str()); if (cond.bad()) { std::cerr << "error al almacenar los tags privados, error al escribir el uid: (" << g << ","<insert(element, true, false); break; } if(element!=NULL) { char* cadena; std::string ov; cond = element->getString(cadena); if (cond.good() && cadena!=NULL) { ov = std::string(cadena); } else { continue; } if(ov==tags.UIDModulo) { //estamos en el g y e del modulo deseado break; } } } return e; } //endregion void DICOMManager::FindCharset(const std::string& defaultCharset) { DcmDataset* ds = getSourceDataSet(); if (ds == NULL) { return; } if (m_pConv != NULL) { delete m_pConv; m_pConv = NULL; } OFString OFCharSet; std::string Charset; if (ds->findAndGetOFString(DCM_SpecificCharacterSet, OFCharSet).good()) { Charset.assign(OFCharSet.c_str()); } else { Charset = defaultCharset.c_str(); ds->putAndInsertOFStringArray(DCM_SpecificCharacterSet, Charset.c_str()); } if (Charset == "ISO_IR 192" || Charset == "ISO_IR 6") { m_pConv = new wxCSConv(wxFONTENCODING_UTF8); } else if (Charset == "ISO 2022 IR 6") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_1); } else if (Charset == "ISO_IR 100") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_1); } else if (Charset == "ISO_IR 101") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_2); } else if (Charset == "ISO_IR 109") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_3); } else if (Charset == "ISO_IR 110") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_4); } else if (Charset == "ISO_IR 148") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_9); } else if (Charset == "ISO_IR 144") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_5); } else if (Charset == "ISO_IR 127") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_6); } else if (Charset == "ISO_IR 126") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_7); } else if (Charset == "ISO_IR 138") { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_8); } else { m_pConv = new wxCSConv(wxFONTENCODING_ISO8859_1); } } void DICOMManager::CreateTempFile() { } void DICOMManager::CleanupTempFile() { } } } ginkgocadx-3.8.7/cadxcore/main/controllers/dicommanager.h000066400000000000000000000116401314736454600235470ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include class DcmMetaInfo; class DcmDataset; class DcmFileFormat; class DcmElement; class OFCondition; class DcmItem; class DcmSequenceOfItems; class wxCSConv; namespace GIL { namespace DICOM { class EXTAPI DICOMManager : public IDICOMManager { public: DICOMManager(); DICOMManager(DcmDataset* dataset, const std::string& defaultCharset); ~DICOMManager(); //region "Interfaz" /*Almacena la jerarquia cargada en un fichero*/ virtual bool AlmacenarFichero(const std::string& inputFile, IInspectCallBack* pICallback = NULL, bool debug = false); /*Actualiza la jerarquia cargada*/ virtual int ActualizarJerarquia(DicomDataset& base); /*actualiza los tags privados*/ virtual int ActualizarTagsPrivados(TipoPrivateTags& tags); /*anonimiza los tags privados*/ virtual void AnonimizarTagsPrivados(); /*carga la MetaInfo*/ virtual int CargarMetaInfo(const std::string& inputFile, GIL::DICOM::TipoMetaInfo& tags); /*carga los tags privados*/ virtual int CargarTagsPrivados(GIL::DICOM::TipoPrivateTags& tags); /* Obtiene la jerarquia de campos DICOM del fichero */ virtual bool CargarFichero(const std::string& inputFile, GIL::DICOM::DicomDataset& jerarquia, bool cargarSoloTagsInfo = true, IInspectCallBack* pICallback = NULL); /*Carga el fichero y responde a primitivas get tag, util para pillar tags especificos sin cargar toda la jerarquia*/ virtual bool CargarFichero(const std::string& inputFile, bool cargarSoloTagsInfo = true); virtual bool GetTag(unsigned int grupo,unsigned int elemento, std::string & valor); virtual bool GetTag(unsigned int grupo,unsigned int elemento, TagPrivadoUndefined& tagBinario); virtual bool GetTag(unsigned int grupo,unsigned int elemento, float& valor); virtual bool GetTag(unsigned int grupo,unsigned int elemento, int& valor); virtual bool GetTag(unsigned int grupo,unsigned int elemento, GIL::DICOM::DicomDataset& secuencia); virtual bool ExtractTagToFile(unsigned int group, unsigned int element, const std::string& outputFile, GNC::IProxyNotificadorProgreso* pNotificador = NULL); virtual bool FindTag(unsigned int group,unsigned int element, TagPrivadoUndefined& tagBinario); virtual bool FindTag(unsigned int group, unsigned int element, std::vector& binaryTags); /* returns the oid name or empty string if not found */ virtual std::string GetOIDName(const std::string &oid); /* devuelve la descripcion de este tag*/ virtual std::string GetDescription(const std::string &clave) const; virtual std::string GetNewUID(); //endregion //region "External helpers" /*Comprueba el numero magico si es dicom*/ static bool EsDicom(const std::string& inputFile); /* Crea un DCMElement parseando la cadena (g,e)=valor */ static DcmElement* CrearElementoConValor(const char* s); /* Inserta la jerarquia en el dataset */ int InsertarJerarquia(const DicomDataset& base, DcmItem* itemPadre, DcmSequenceOfItems* seqPadre); /* Carga la jerarquia desde el dataset */ int CargarJerarquia(DicomDataset& base, unsigned int maximaLongitud, DcmElement * pElementoInicial = NULL); /*inserta los tags privados en el dataset*/ int InsertarTagsPrivados(TipoPrivateTags& tags); /*carga los tags privados*/ int PrivateCargarTagsPrivados(GIL::DICOM::TipoPrivateTags& tags); /*devuelve el identificador de elemento donde se deben almacenar los tags privados*/ unsigned int GetElementIdentifier(GIL::DICOM::TipoPrivateTags& tags); //endregion //region "Internal helpers" private: void FindCharset(const std::string& defaultCharset = "ISO_IR 100"); void CreateTempFile(); void CleanupTempFile(); DcmDataset* getSourceDataSet(); //endregion private: DcmFileFormat* m_pDCMSourceFile; DcmDataset* m_pDCMSourceDataset; wxCSConv* m_pConv; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/hangingprotocolcontroller.cpp000066400000000000000000001064261314736454600267640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "hangingprotocolcontroller.h" #include #include #include #include
    #include
    #include
    #include
    #include #include #include #include #include
    #include
    #include #include #include #include #include #include #define HP_DOCUMENT_ROOT wxT("hanging-protocols") #define PROPERTY_NODE wxT("property") #define PROPERTY_KEY wxT("key") #define PROPERTY_VALUE wxT("value") #define HP_ROOT wxT("hanging-protocol") #define HP_ATT_NAME wxT("name") #define HP_ATT_DESCRIPTION wxT("description") #define HP_ATT_MODULE_SID wxT("module-sid") #define HP_ATT_MODE_ID wxT("mode") #define HP_ATT_ACTIVE wxT("active") #define LOS_ROOT wxT("layouts") #define LO_ROOT wxT("layout") #define LO_ATT_ROWS wxT("rows") #define LO_ATT_COLUMNS wxT("columns") #define LO_ATT_DETACHED wxT("detached") #define LO_ATT_MAXIMIZED wxT("maximized") #define LO_ATT_X_POS wxT("x-pos") #define LO_ATT_Y_POS wxT("y-pos") #define LO_ATT_WIDTH wxT("width") #define LO_ATT_HEIGHT wxT("height") #define MC_ROOT wxT("matcher") #define MC_ATT_CRITERIA wxT("criteria") /** Class that evaluates study and series matching, depending on matching criteria over tags */ GNC::GCS::Matcher::Matcher() { } GNC::GCS::Matcher::Matcher(wxXmlNode* matcherNode) { for (wxXmlNode* child = matcherNode->GetChildren(); child != NULL; child = child->GetNext()) { if (child->GetName().CmpNoCase(MC_ATT_CRITERIA) == 0) { for (wxXmlNode* prop = child->GetChildren(); prop != NULL; prop = prop->GetNext()) { if (prop->GetName().CmpNoCase(PROPERTY_NODE) == 0) { const wxString key = prop->GetAttribute(PROPERTY_KEY, wxEmptyString); const wxString value = prop->GetAttribute(PROPERTY_VALUE, wxEmptyString); if (!key.IsEmpty()) { this->matchingCriteria[std::string(key.ToUTF8())] = value.ToUTF8(); } } else { LOG_ERROR("Matcher", "error deserializing matching criteria of Matcher"); } } } else { LOG_ERROR("Matcher", "error deserializing Matcher, unknown node " << child->GetName().ToUTF8()); } } } GNC::GCS::Matcher::Matcher(const GNC::GCS::Matcher& other) { this->matchingCriteria = other.matchingCriteria; } GNC::GCS::Matcher::~Matcher() { } bool GNC::GCS::Matcher::MatchesStudy(long idStudy) { //tries with study tags from database... GIL::DICOM::DicomDataset databaseDataset; GNC::GCS::HistoryController::Instance()->GetDatabaseDatasetFromStudy(idStudy, databaseDataset); std::string tmpValue; for (std::map::const_iterator it = this->matchingCriteria.begin(); it != this->matchingCriteria.end(); ++it) { if (databaseDataset.getTag((*it).first, tmpValue)) { wxRegEx regularExpresion(wxString::FromUTF8((*it).second.c_str()), wxRE_ICASE); if (!regularExpresion.Matches(wxString::FromUTF8(tmpValue.c_str()))) { return false; } } else { //this attribute isn't in database, so we have to parse a file from the study.... GNC::GCS::IHistoryController::SeriesModelList seriesList; GNC::GCS::HistoryController::Instance()->GetSeriesFromStudy(idStudy, seriesList); if (!seriesList.empty()) { GNC::GCS::IHistoryController::FileModel file = GNC::GCS::HistoryController::Instance()->GetFrameOfReference(seriesList.front().pk); return matches(file.real_path); } } } return true; } bool GNC::GCS::Matcher::MatchesSeries(long idSeries) { //tries with study tags from database... GIL::DICOM::DicomDataset databaseDataset; GNC::GCS::HistoryController::Instance()->GetDatabaseDatasetFromSeries(idSeries, databaseDataset); std::string tmpValue; for (std::map::const_iterator it = this->matchingCriteria.begin(); it != this->matchingCriteria.end(); ++it) { if (databaseDataset.getTag((*it).first, tmpValue)) { wxRegEx regularExpresion(wxString::FromUTF8((*it).second.c_str()), wxRE_ICASE); if (!regularExpresion.Matches(wxString::FromUTF8(tmpValue.c_str()))) { return false; } } else { //this attribute isn't in database, so we have to parse a file from the study.... GNC::GCS::IHistoryController::FileModel file = GNC::GCS::HistoryController::Instance()->GetFrameOfReference(idSeries); return matches(file.real_path); } } return true; } bool GNC::GCS::Matcher::matches(const std::string& pathOfFile) { GIL::DICOM::DICOMManager manager; GIL::DICOM::DicomDataset base; manager.CargarFichero(pathOfFile, base); std::string tmpValue; for (std::map::const_iterator it = this->matchingCriteria.begin(); it != this->matchingCriteria.end(); ++it) { if (base.getTag((*it).first, tmpValue)) { wxRegEx regularExpresion(wxString::FromUTF8((*it).second.c_str())); if (!regularExpresion.Matches(wxString::FromUTF8(tmpValue.c_str()))) { return false; } } else { LOG_DEBUG("Matcher", "study doesn't contains " << (*it).first << " attribute"); return false; } } return true; } wxXmlNode* GNC::GCS::Matcher::serialize() { wxXmlNode* matcherNode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, MC_ROOT); wxXmlNode* matchingCriteria = new wxXmlNode(matcherNode, wxXML_ELEMENT_NODE, MC_ATT_CRITERIA); for (std::map::const_iterator it = this->matchingCriteria.begin(); it != this->matchingCriteria.end(); ++it) { wxXmlNode* propertyNode = new wxXmlNode(matchingCriteria, wxXML_ELEMENT_NODE, PROPERTY_NODE); propertyNode->AddAttribute(PROPERTY_KEY, wxString::FromUTF8((*it).first.c_str())); propertyNode->AddAttribute(PROPERTY_VALUE, wxString::FromUTF8((*it).second.c_str())); } return matcherNode; } std::map& GNC::GCS::Matcher::getMatchingCriteria() { return this->matchingCriteria; } void GNC::GCS::Matcher::setMatchingCriteria(const std::map& criteria) { this->matchingCriteria = criteria; } /** Defines a specific layout, is recursive to allow splitted cells */ GNC::GCS::Layout::Layout():rows(1), columns(1), pParent(nullptr), isDetached(false), isMaximized(false), xPos(0), yPos(0), width(1), height(1) { } GNC::GCS::Layout::Layout(wxXmlNode* layoutRoot):Layout() { long tmp; if (layoutRoot->GetAttribute(LO_ATT_ROWS, wxT("1")).ToLong(&tmp)) { rows = tmp; } if (layoutRoot->GetAttribute(LO_ATT_COLUMNS, wxT("1")).ToLong(&tmp)) { columns = tmp; } wxString foo; if (layoutRoot->GetAttribute(LO_ATT_DETACHED, &foo)) { this->isDetached = true; isMaximized = layoutRoot->GetAttribute(LO_ATT_MAXIMIZED, &foo); if (layoutRoot->GetAttribute(LO_ATT_X_POS, wxT("-1")).ToLong(&tmp)) { xPos = tmp; } if (layoutRoot->GetAttribute(LO_ATT_Y_POS, wxT("-1")).ToLong(&tmp)) { yPos = tmp; } if (layoutRoot->GetAttribute(LO_ATT_WIDTH, wxT("-1")).ToLong(&tmp)) { width = tmp; } if (layoutRoot->GetAttribute(LO_ATT_HEIGHT, wxT("-1")).ToLong(&tmp)) { height = tmp; } } else { this->isDetached = false; } for (wxXmlNode* child = layoutRoot->GetChildren(); child != NULL; child = child->GetNext()) { if (child->GetName().CmpNoCase(LO_ROOT) == 0) { GNC::GCS::Ptr childrenLayout(new Layout(child)); cellList.push_back(childrenLayout); } else if (child->GetName().CmpNoCase(MC_ROOT) == 0) { seriesMatcher = new Matcher(child); } else if (child->GetName().CmpNoCase(PROPERTY_NODE) == 0) { const wxString key = child->GetAttribute(PROPERTY_KEY, wxEmptyString); const wxString value = child->GetAttribute(PROPERTY_VALUE, wxEmptyString); if (!key.IsEmpty()) { this->properties[std::string(key.ToUTF8())] = value.ToUTF8(); } } else { LOG_ERROR("Layout", "error deserializing layout, unknown node " << child->GetName().ToUTF8()); } } } GNC::GCS::Layout::Layout(const Layout& other) { for (std::list >::const_iterator it = other.cellList.begin(); it != other.cellList.end(); it++) { GNC::GCS::Ptr layout(new Layout(*(*it))); this->cellList.push_back(layout); } if (other.seriesMatcher.IsValid()) { GNC::GCS::Ptr matcher(new Matcher(*other.seriesMatcher)); this->seriesMatcher = matcher; } this->properties = other.properties; this->columns = other.columns; this->rows = other.rows; this->isDetached = other.isDetached; this->isMaximized = other.isMaximized; this->xPos = other.xPos; this->yPos = other.yPos; this->width = other.width; this->height = other.height; pParent = other.pParent; } GNC::GCS::Layout::~Layout() { } /** Layout with a row and a column is a cell and cellList is empty */ bool GNC::GCS::Layout::isACell() { return rows == 1 && columns == 1; } wxXmlNode* GNC::GCS::Layout::serialize() { wxXmlNode* layoutNode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, LO_ROOT); layoutNode->AddAttribute(LO_ATT_ROWS, wxString::Format(wxT("%d"), (int)(this->rows))); layoutNode->AddAttribute(LO_ATT_COLUMNS, wxString::Format(wxT("%d"), (int)(this->columns))); for (std::list >::const_iterator it = this->cellList.begin(); it != this->cellList.end(); ++it) { if ((*it).IsValid()) { layoutNode->AddChild((*it)->serialize()); } } if (seriesMatcher.IsValid()) { layoutNode->AddChild(seriesMatcher->serialize()); } for (std::map::const_iterator it = this->properties.begin(); it != this->properties.end(); ++it) { wxXmlNode* propertyNode = new wxXmlNode(layoutNode, wxXML_ELEMENT_NODE, PROPERTY_NODE); propertyNode->AddAttribute(PROPERTY_KEY, wxString::FromUTF8((*it).first.c_str())); propertyNode->AddAttribute(PROPERTY_VALUE, wxString::FromUTF8((*it).second.c_str())); } if (isDetached) { layoutNode->AddAttribute(LO_ATT_DETACHED, wxEmptyString); if (isMaximized) { layoutNode->AddAttribute(LO_ATT_MAXIMIZED, wxEmptyString); } layoutNode->AddAttribute(LO_ATT_X_POS, wxString::Format(wxT("%d"), (int)(this->xPos))); layoutNode->AddAttribute(LO_ATT_Y_POS, wxString::Format(wxT("%d"), (int)(this->yPos))); layoutNode->AddAttribute(LO_ATT_WIDTH, wxString::Format(wxT("%d"), (int)(this->width))); layoutNode->AddAttribute(LO_ATT_HEIGHT, wxString::Format(wxT("%d"), (int)(this->height))); } return layoutNode; } void GNC::GCS::Layout::doLayout(IHangingProtocolContract* pContract, wxSizer* parentSizer) { if (isACell()) { //create cell... long pk = -1; if (seriesMatcher.IsValid()) { const std::list& seriesId = pContract->getOpeningSeries(); for (std::list::const_iterator it = seriesId.begin(); it != seriesId.end(); ++it) { if (seriesMatcher->MatchesSeries((*it))) { pk = (*it); break; } } } // parentSizer->Add(pContract->createSeriesSlot(this->properties, pk, seriesMatcher), 1, wxEXPAND|wxALL); } else { //parent sizer has to have vertical layout... wxBoxSizer* pParentBox = dynamic_cast(parentSizer); if (pParentBox == NULL || pParentBox->GetOrientation() != wxVERTICAL) { wxBoxSizer* verticalSizer = new wxBoxSizer(wxVERTICAL); parentSizer->Add(verticalSizer, 1, wxEXPAND|wxALL); parentSizer = verticalSizer; } // std::list >::const_iterator itLayouts = this->cellList.begin(); for (int i = 0; i < this->rows; i++) { wxBoxSizer* pRow = new wxBoxSizer(wxHORIZONTAL); for (int j = 0; j < this->columns; j++) { if (itLayouts != this->cellList.end()) { (*itLayouts)->doLayout(pContract, pRow); ++itLayouts; } else { pRow->Add(pContract->createSeriesSlot(this->properties, -1, seriesMatcher), 1, wxEXPAND|wxALL); } } parentSizer->Add(pRow, 1, wxEXPAND); } } } GNC::GCS::Ptr GNC::GCS::Layout::getLayoutFromSizerItem(wxSizerItem* pSizerItem) { GNC::GCS::Ptr pLayout(new GNC::GCS::Layout()); //it's a cell if (pSizerItem->GetWindow() != NULL) { GNC::GCS::IHangingSeriesViewer* seriesViewerMatcher = dynamic_cast(pSizerItem->GetWindow()); if (seriesViewerMatcher != NULL) { //build series matcher... GIL::DICOM::DicomDataset base; seriesViewerMatcher->getSeriesBase(base); GNC::GCS::Ptr pMatcher(new GNC::GCS::Matcher); for (GIL::DICOM::ListaTags::iterator it = base.tags.begin(); it != base.tags.end(); it++) { pMatcher->getMatchingCriteria()[(*it).first] = (*it).second; } pLayout->setMatcher(pMatcher); } } else if (pSizerItem->GetSizer() != NULL) { //count rows and columns... wxBoxSizer* pBoxPpal = dynamic_cast(pSizerItem->GetSizer()); if (pBoxPpal != NULL) { int elements = 0; for (wxSizerItemList::const_iterator itItems = pBoxPpal->GetChildren().begin(); itItems != pBoxPpal->GetChildren().end(); itItems++, elements++) { pLayout->cellList.push_back(getLayoutFromSizerItem((*itItems))); } if (pBoxPpal->GetOrientation() == wxVERTICAL) { pLayout->setRows(elements); } else { pLayout->setColumns(elements); } //if layout is 1x1 with one child point to this child if (pLayout->isACell() && pLayout->cellList.size() == 1) { GNC::GCS::Ptr tmp = pLayout->cellList.front(); pLayout = tmp; } } else { LOG_ERROR("Layout::getLayoutFromSizer", "there is a sizer that isn't a box sizer"); } } else { LOG_ERROR("Layout::getLayoutFromSizer", "there is a item that isn't a winwow or a sizer"); } return pLayout; } GNC::GCS::Ptr GNC::GCS::Layout::getLayoutFromSizer(wxSizer* pSizer) { GNC::GCS::Ptr pLayout(new GNC::GCS::Layout()); wxBoxSizer* pBoxPpal = dynamic_cast(pSizer); if (pBoxPpal != NULL) { //count rows and columns... wxBoxSizer* pBoxPpal = dynamic_cast(pSizer); if (pBoxPpal != NULL) { int elements = 0; for (wxSizerItemList::const_iterator itItems = pBoxPpal->GetChildren().begin(); itItems != pBoxPpal->GetChildren().end(); itItems++, elements++) { pLayout->cellList.push_back(getLayoutFromSizerItem((*itItems))); } if (pBoxPpal->GetOrientation() == wxVERTICAL) { pLayout->setRows(elements); } else { pLayout->setColumns(elements); } //if layout is 1x1 with one child point to this child if (pLayout->isACell() && pLayout->cellList.size() == 1) { GNC::GCS::Ptr tmp = pLayout->cellList.front(); pLayout = tmp; } } else { LOG_ERROR("Layout::getLayoutFromSizer", "there is a sizer that isn't a box sizer"); } } else { LOG_ERROR("Layout::getLayoutFromSizer", "there is a sizer that isn't a box sizer"); } return pLayout; } int GNC::GCS::Layout::getRows() { return this->rows; } void GNC::GCS::Layout::setRows(int rows) { this->rows = rows; } int GNC::GCS::Layout::getColumns() { return this->columns; } void GNC::GCS::Layout::setColumns(int columns) { this->columns = columns; } std::list >& GNC::GCS::Layout::getCellList() { return cellList; } void GNC::GCS::Layout::setCellList(const std::list >& cellList) { this->cellList = cellList; } const GNC::GCS::Ptr& GNC::GCS::Layout::getMatcher() { return seriesMatcher; } void GNC::GCS::Layout::setMatcher(const GNC::GCS::Ptr& matcher) { this->seriesMatcher = matcher; } std::map& GNC::GCS::Layout::getProperties() { return this->properties; } void GNC::GCS::Layout::setProperties(const std::map& properties) { this->properties = properties; } GNC::GCS::HangingProtocol* GNC::GCS::Layout::getParent() { return pParent; } void GNC::GCS::Layout::setParent(GNC::GCS::HangingProtocol* pH) { pParent = pH; } void GNC::GCS::Layout::setDefaultPosition() { isDetached = false; } void GNC::GCS::Layout::setWindowProperties(bool isMaximized, int xPos, int yPos, int width, int height) { this->isDetached = true; this->isMaximized = isMaximized; this->xPos = xPos; this->yPos = yPos; this->width = width; this->height = height; } void GNC::GCS::Layout::copyWindowProperties(const GNC::GCS::Layout& other) { this->isDetached = other.isDetached; this->isMaximized = other.isMaximized; this->xPos = other.xPos; this->yPos = other.yPos; this->width = other.width; this->height = other.height; } void GNC::GCS::Layout::applyWindowProperties(wxWindow* pWindow) { if (isDetached) { int maxX = 0, maxY = 0, minX=std::numeric_limits::max(), minY=std::numeric_limits::max(); int deviceCount = wxDisplay::GetCount(); for (int i = 0; i < deviceCount; ++i) { wxDisplay dsply(i); maxX = std::max(maxX, dsply.GetClientArea().x + dsply.GetCurrentMode().GetWidth()); maxY = std::max(maxY, dsply.GetClientArea().y + dsply.GetCurrentMode().GetHeight()); minX = std::min(minX, dsply.GetClientArea().x); minY = std::min(minY, dsply.GetClientArea().y); } wxPoint position(xPos, yPos); if (position.x >= (minX - pWindow->GetMinSize().x) && position.x < maxX && position.y >= (minY - pWindow->GetMinSize().y) && position.y < maxY) { pWindow->SetPosition(position); } wxSize size(width, height); wxTopLevelWindow* pTopLevel = dynamic_cast(pWindow); if (pTopLevel != NULL) { pTopLevel->Maximize(isMaximized); if (!isMaximized) { pWindow->SetSize(size); } } else { pWindow->SetSize(size); } } } void GNC::GCS::Layout::applyWindowProperties(GNC::GCS::IVista* pView) { //detach view... wxWindow* pWindow = pView->GetWindow(); if(pWindow != NULL) { wxWindow* pParentWindow = pWindow->GetParent(); if(pParentWindow != NULL) { wxFrame* pdlg = dynamic_cast(pParentWindow); if(pdlg != NULL) { //it is detached if (!isDetached) { //undetach GNC::Entorno::Instance()->GetVentanaPrincipal()->EncajarDesencajar(pView); } } else { //it isn't detached if (isDetached) { //detach GNC::Entorno::Instance()->GetVentanaPrincipal()->EncajarDesencajar(pView); //apply properties applyWindowProperties(pWindow->GetParent()); } } } } } ///////////////////////////////////////////////////// GNC::GCS::HangingProtocol::HangingProtocol(): openingMode(0), active(true) { } GNC::GCS::HangingProtocol::HangingProtocol(wxXmlNode* hangingNode) { this->name = hangingNode->GetAttribute(HP_ATT_NAME, wxEmptyString).ToUTF8(); this->description = hangingNode->GetAttribute(HP_ATT_DESCRIPTION, wxEmptyString).ToUTF8(); this->moduleSid = hangingNode->GetAttribute(HP_ATT_MODULE_SID, wxEmptyString).ToUTF8(); this->active = hangingNode->GetAttribute(HP_ATT_ACTIVE, wxT("true")).CmpNoCase(wxT("true")) == 0; long tmpLong; if(hangingNode->GetAttribute(HP_ATT_MODE_ID, wxEmptyString).ToLong(&tmpLong)) { this->openingMode = tmpLong; } else { this->openingMode = 0; } for (wxXmlNode* child = hangingNode->GetChildren(); child != NULL; child = child->GetNext()) { if (child->GetName().CmpNoCase(LOS_ROOT) == 0) { //layouts... for (wxXmlNode* layoutChild = child->GetChildren(); layoutChild != NULL; layoutChild = layoutChild->GetNext()) { if (layoutChild->GetName().CmpNoCase(LO_ROOT) == 0) { GNC::GCS::Ptr pLayout(new Layout(layoutChild)); this->addLayout(pLayout); } } } else if (child->GetName().CmpNoCase(LO_ROOT) == 0) { //retrocompatib... GNC::GCS::Ptr pLayout(new Layout(child)); this->addLayout(pLayout); } else if (child->GetName().CmpNoCase(MC_ROOT) == 0) { this->studyMatcher = new Matcher(child); } else if (child->GetName().CmpNoCase(PROPERTY_NODE) == 0) { const wxString key = child->GetAttribute(PROPERTY_KEY, wxEmptyString); const wxString value = child->GetAttribute(PROPERTY_VALUE, wxEmptyString); if (!key.IsEmpty()) { this->properties[std::string(key.ToUTF8())] = value.ToUTF8(); } } else { LOG_ERROR("HangingProtocol", "error deserializing hanging protocol, unknown node " << child->GetName().ToUTF8()); } } } GNC::GCS::HangingProtocol::HangingProtocol(const GNC::GCS::HangingProtocol& other) { this->name = other.name; this->description = other.description; this->moduleSid = other.moduleSid; this->openingMode = other.openingMode; if (other.studyMatcher.IsValid()) { this->studyMatcher = new Matcher(*other.studyMatcher); } for (GNC::GCS::HangingProtocol::TListOfLayouts::const_iterator it = other.layouts.begin(); it != other.layouts.end(); ++it) { if ((*it).IsValid()) { GNC::GCS::Ptr layout(new Layout(*(*it))); this->layouts.push_back(layout); } } this->properties = other.properties; this->active = other.active; } GNC::GCS::HangingProtocol::~HangingProtocol() { active = true; } wxXmlNode* GNC::GCS::HangingProtocol::serialize() { wxXmlNode* hangingNode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, HP_ROOT); hangingNode->AddAttribute(HP_ATT_NAME, wxString::FromUTF8(this->name.c_str())); hangingNode->AddAttribute(HP_ATT_DESCRIPTION, wxString::FromUTF8(this->description.c_str())); hangingNode->AddAttribute(HP_ATT_MODULE_SID, wxString::FromUTF8(this->moduleSid.c_str())); hangingNode->AddAttribute(HP_ATT_MODE_ID, wxString::Format(wxT("%d"), (int) this->openingMode)); hangingNode->AddAttribute(HP_ATT_ACTIVE, active?wxT("true"):wxT("false")); wxXmlNode* layoutsNode = new wxXmlNode(hangingNode, wxXML_ELEMENT_NODE, LOS_ROOT); for (GNC::GCS::HangingProtocol::TListOfLayouts::const_iterator it = layouts.begin(); it != layouts.end(); ++it) { if ((*it).IsValid()) { layoutsNode->AddChild((*it)->serialize()); } } if (this->studyMatcher.IsValid()) { hangingNode->AddChild(this->studyMatcher->serialize()); } for (std::map::const_iterator it = this->properties.begin(); it != this->properties.end(); ++it) { wxXmlNode* propertyNode = new wxXmlNode(hangingNode, wxXML_ELEMENT_NODE, PROPERTY_NODE); propertyNode->AddAttribute(PROPERTY_KEY, wxString::FromUTF8((*it).first.c_str())); propertyNode->AddAttribute(PROPERTY_VALUE, wxString::FromUTF8((*it).second.c_str())); } return hangingNode; } bool GNC::GCS::HangingProtocol::matches(long idStudy) { if (this->studyMatcher.IsValid()) { return this->studyMatcher->MatchesStudy(idStudy); } LOG_WARN("HangingProtocol", "there is a hanging protocol without matcher specified"); return false; } const std::string& GNC::GCS::HangingProtocol::getName() { return this->name; } void GNC::GCS::HangingProtocol::setName(const std::string& name) { this->name = name; } const std::string& GNC::GCS::HangingProtocol::getDescription() { return this->description; } void GNC::GCS::HangingProtocol::setDescription(const std::string& description) { this->description = description; } const std::string& GNC::GCS::HangingProtocol::getModuleSid() { return this->moduleSid; } void GNC::GCS::HangingProtocol::setModuleSid(const std::string& sid) { this->moduleSid = sid; } int GNC::GCS::HangingProtocol::getOpeningMode() { return this->openingMode; } void GNC::GCS::HangingProtocol::setOpeningMode(int mode) { this->openingMode = mode; } const GNC::GCS::Ptr& GNC::GCS::HangingProtocol::getStudyMatcher() { return this->studyMatcher; } void GNC::GCS::HangingProtocol::setStudyMatcher(const GNC::GCS::Ptr& matcher) { this->studyMatcher = matcher; } const GNC::GCS::HangingProtocol::TListOfLayouts& GNC::GCS::HangingProtocol::getLayouts() { return this->layouts; } void GNC::GCS::HangingProtocol::addLayout(const GNC::GCS::Ptr& layout) { if (layout.IsValid()) { layout->setParent(this); this->layouts.push_back(layout); } } void GNC::GCS::HangingProtocol::clearLayouts() { this->layouts.clear(); } std::map& GNC::GCS::HangingProtocol::getProperties() { return this->properties; } void GNC::GCS::HangingProtocol::setProperties(const std::map& properties) { this->properties = properties; } bool GNC::GCS::HangingProtocol::isActive() { return this->active; } void GNC::GCS::HangingProtocol::setActive(bool active) { this->active = active; } /** Controller for hanging protocols */ GNC::GCS::HangingProtocolController* GNC::GCS::HangingProtocolController::Instance() { if (m_pInstance == NULL) { m_pInstance = new HangingProtocolController(); } return m_pInstance; } void GNC::GCS::HangingProtocolController::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } GNC::GCS::HangingProtocolController::HangingProtocolController() { LoadFromConfiguration(); } GNC::GCS::HangingProtocolController::~HangingProtocolController() { } GNC::GCS::HangingProtocolController* GNC::GCS::HangingProtocolController::m_pInstance = NULL; GNC::GCS::Ptr GNC::GCS::HangingProtocolController::GetProtocolForStudy(long idStudy) { for (std::list >::const_iterator it = this->listOfProtocols.begin(); it != this->listOfProtocols.end(); ++it) { if ((*it)->isActive() && (*it)->matches(idStudy)) { return (*it); } } //study doesn't match we create a hanging protocol as traditional ginkgo opening mode... return NULL; } void GNC::GCS::HangingProtocolController::StoreHangingProtocolConfiguration() { //serialization... wxXmlDocument doc; wxXmlNode* root = new wxXmlNode(NULL, wxXML_ELEMENT_NODE,HP_DOCUMENT_ROOT); doc.SetRoot(root); for (std::list >::const_iterator it = this->listOfProtocols.begin(); it != this->listOfProtocols.end(); ++it) { root->AddChild((*it)->serialize()); } wxMemoryOutputStream out; doc.SetFileEncoding(wxT("UTF-8")); doc.Save(out,0); char* vectorWidgets = new char[out.GetLength()]; out.CopyTo(vectorWidgets,out.GetLength()); GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/HangingProtocols","HangingList", std::string(vectorWidgets, out.GetLength())); delete[] vectorWidgets; } std::list > GNC::GCS::HangingProtocolController::getHangingProtocols() { LoadFromConfiguration(); std::list > returningList; for (std::list >::const_iterator it = this->listOfProtocols.begin(); it != this->listOfProtocols.end(); ++it) { GNC::GCS::Ptr pProtocol(new HangingProtocol(*(*it))); returningList.push_back(pProtocol); } return returningList; } void GNC::GCS::HangingProtocolController::setHangingProtocols(std::list > listOfProtocols) { this->listOfProtocols = listOfProtocols; StoreHangingProtocolConfiguration(); } void GNC::GCS::HangingProtocolController::LoadFromConfiguration() { //Deserialize... this->listOfProtocols.clear(); std::string serializedValue; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/HangingProtocols","HangingList", serializedValue); if (!serializedValue.empty()) { wxString wxSerializedValue = wxString::FromUTF8(serializedValue.c_str()); wxStringInputStream istream(wxSerializedValue); wxXmlDocument doc; if (doc.Load(istream)) { wxXmlNode* root = doc.GetRoot(); if (root != NULL && root->GetName().CmpNoCase(HP_DOCUMENT_ROOT) == 0) { for (wxXmlNode* hangingProtocolNode = root->GetChildren(); hangingProtocolNode != NULL; hangingProtocolNode = hangingProtocolNode->GetNext()) { if (hangingProtocolNode->GetName().CmpNoCase(HP_ROOT) == 0) { GNC::GCS::Ptr hangingProtocol(new HangingProtocol(hangingProtocolNode)); this->listOfProtocols.push_back(hangingProtocol); } } } } else { LOG_ERROR("HangingProtocolController", "Error deserializing hanging protocol"); } } } ginkgocadx-3.8.7/cadxcore/main/controllers/hangingprotocolcontroller.h000066400000000000000000000200031314736454600264130ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include class wxXmlNode; class wxSizer; class wxWindow; class wxSizerItem; namespace GNC { namespace GCS { class IVista; class Matcher; /** if series viewers implements this interface, getLayoutForSizer */ class IHangingSeriesViewer { public: virtual void getSeriesBase(GIL::DICOM::DicomDataset& seriesBase) = 0; }; /** contract to realize layout... */ class IHangingProtocolContract { public: virtual wxWindow* createSeriesSlot(const std::map& properties, long pk = -1, const GNC::GCS::Ptr& pMatcher = NULL) = 0; virtual const std::list& getOpeningSeries() = 0; }; /** Class that evaluates study and series matching, depending on matching criteria over tags */ class Matcher { public: Matcher(); /** Deserialize from xml */ Matcher(wxXmlNode* node); Matcher(const Matcher& other); ~Matcher(); bool MatchesStudy(long idStudy); bool MatchesSeries(long idSeries); /** serialize to XML */ wxXmlNode* serialize(); /** getter and setter */ std::map& getMatchingCriteria(); void setMatchingCriteria(const std::map& properties); protected: bool matches(const std::string& pathOfFile); std::map matchingCriteria; }; class HangingProtocol; /** Defines a specific layout, is recursive to allow splitted cells */ class Layout { public: Layout(); /** deserialize from xml */ Layout(wxXmlNode* layoutRoot); Layout(const Layout& other); ~Layout(); /** Layout with a row and a column is a cell and cellList is empty */ bool isACell(); /** serialize to XML */ wxXmlNode* serialize(); void doLayout(IHangingProtocolContract* pContract, wxSizer* parentSizer); static GNC::GCS::Ptr getLayoutFromSizer(wxSizer* pSizer); protected: static GNC::GCS::Ptr getLayoutFromSizerItem(wxSizerItem* pSizerItem); public: /** getters and setters */ int getRows(); void setRows(int rows); int getColumns(); void setColumns(int columns); std::list >& getCellList(); void setCellList(const std::list >& cellList); const GNC::GCS::Ptr& getMatcher(); void setMatcher(const GNC::GCS::Ptr& matcher); std::map& getProperties(); void setProperties(const std::map& properties); GNC::GCS::HangingProtocol* getParent(); void setParent(GNC::GCS::HangingProtocol* pH); void setDefaultPosition(); void setWindowProperties(bool isMaximized, int xPos, int yPos, int width, int height); void copyWindowProperties(const GNC::GCS::Layout& other); void applyWindowProperties(wxWindow* pWindow); void applyWindowProperties(GNC::GCS::IVista* pView); protected: int rows; int columns; /** pointer to parent */ GNC::GCS::HangingProtocol* pParent; /** left to right and top down list of cells */ std::list > cellList; /** if it's a cell series matching criteria */ GNC::GCS::Ptr seriesMatcher; /* here modules can insert key/value properies as zoom level, window/level... */ std::map properties; /** if it's detached or not */ bool isDetached; /** Window details */ bool isMaximized; int xPos, yPos, width, height; }; /** HangingProtocol class, defines a hanging protocol */ class HangingProtocol { public: typedef std::list > TListOfLayouts; HangingProtocol(); /** deserialize from xml */ HangingProtocol(wxXmlNode* node); HangingProtocol(const HangingProtocol& other); ~HangingProtocol(); /** serialize to XML */ wxXmlNode* serialize(); /** true if study matches with this hanging protocol */ bool matches(long idStudy); /** Getters and setters */ const std::string& getName(); void setName(const std::string& name); const std::string& getDescription(); void setDescription(const std::string& description); const std::string& getModuleSid(); void setModuleSid(const std::string& name); int getOpeningMode(); void setOpeningMode(int mode); const GNC::GCS::Ptr& getStudyMatcher(); void setStudyMatcher(const GNC::GCS::Ptr& matcher); const TListOfLayouts& getLayouts(); void addLayout(const GNC::GCS::Ptr& layout); void clearLayouts(); std::map& getProperties(); void setProperties(const std::map& properties); bool isActive(); void setActive(bool active); protected: /** Unique name */ std::string name; /** description */ std::string description; /** Module that opens this hanging protocol */ std::string moduleSid; /**opening mode */ int openingMode; /** study matching */ GNC::GCS::Ptr studyMatcher; /** layout of the protocol */ TListOfLayouts layouts; /* here modules can insert key/value properies */ std::map properties; /* if it's active */ bool active; }; /** Hanging protocol controller class */ class HangingProtocolController { public: /** Singleton method */ static HangingProtocolController* Instance(); /** Free singleton */ static void FreeInstance(); /** Get hanging protocol for specified study */ GNC::GCS::Ptr GetProtocolForStudy(long idStudy); /** stores hanging protocol list */ void StoreHangingProtocolConfiguration(); /** gets a copy of hanging protocols */ std::list > getHangingProtocols(); /** sets hanging protocol list... */ void setHangingProtocols(std::list > listOfProtocols); protected: /** Creation method */ HangingProtocolController(); /** Destruction method */ ~HangingProtocolController(); /** Load from configuration */ void LoadFromConfiguration(); /** singleton attribute */ static HangingProtocolController* m_pInstance; /** protocol list */ std::list > listOfProtocols; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/historycontroller.cpp000066400000000000000000003736311314736454600252740ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include "historycontroller.h" #include #include #include #include #include "pacscontroller.h" #include "controladoreventos.h" #include "controladorpermisos.h" #include
    #include
    #include #define LOGGER "HistoryController" #include "controladorlog.h" #include #include #include #include
    #include #include
    #include #include //helpers////////////////////////////////////////////////////////////////////////////// ////helpers orientacion char getMajorAxisFromPatientRelativeDirectionCosine(double x, double y, double z) { // 0.5477 would be the square root of 1 (unit vector sum of squares) divided by 3 (oblique axes - a "double" oblique) // 0.7071 would be the square root of 1 (unit vector sum of squares) divided by 2 (oblique axes) /***/ const double obliquityThresholdCosineValue = 0.8; char axis = '?'; char orientationX = x < 0 ? 'R' : 'L'; char orientationY = y < 0 ? 'A' : 'P'; char orientationZ = z < 0 ? 'F' : 'H'; double absX = std::abs(x); double absY = std::abs(y); double absZ = std::abs(z); // The tests here really don't need to check the other dimensions, // just the threshold, since the sum of the squares should be == 1.0 // but just in case ... if (absX>obliquityThresholdCosineValue && absX>absY && absX>absZ) { axis=orientationX; } else if (absY>obliquityThresholdCosineValue && absY>absX && absY>absZ) { axis=orientationY; } else if (absZ>obliquityThresholdCosineValue && absZ>absX && absZ>absY) { axis=orientationZ; } return axis; } char makeImageOrientationLabelFromImageOrientationPatient( const double rowX,const double rowY,const double rowZ, const double colX,const double colY,const double colZ) { char label = 'O'; char rowAxis = getMajorAxisFromPatientRelativeDirectionCosine(rowX,rowY,rowZ); char colAxis = getMajorAxisFromPatientRelativeDirectionCosine(colX,colY,colZ); if (rowAxis != '?' && colAxis != '?') { if ((rowAxis == 'R' || rowAxis == 'L') && (colAxis == 'A' || colAxis == 'P')) label='A'; else if ((colAxis == 'R' || colAxis == 'L') && (rowAxis == 'A' || rowAxis == 'P')) label='A'; else if ((rowAxis == 'R' || rowAxis == 'L') && (colAxis == 'H' || colAxis == 'F')) label='C'; else if ((colAxis == 'R' || colAxis == 'L') && (rowAxis == 'H' || rowAxis == 'F')) label='C'; else if ((rowAxis == 'A' || rowAxis == 'P') && (colAxis == 'H' || colAxis == 'F')) label='S'; else if ((colAxis == 'A' || colAxis == 'P') && (rowAxis == 'H' || rowAxis == 'F')) label='S'; } return label; } std::string parseDateTime(const std::string& tagDate, const std::string& tagTime) { std::ostringstream ostr; wxDateTime fecha; fecha.ParseFormat(wxString::FromUTF8(tagDate.c_str()),wxT("%Y%m%d")); if (fecha.IsValid()) { ostr << fecha.Format(wxT("%Y-%m-%d")).ToUTF8(); } else { return ""; } wxDateTime hora; hora.ParseFormat(wxString::FromUTF8(tagTime.c_str()),wxT("%H%M%S")); if(hora.IsValid()) { ostr << "T"; ostr << hora.Format(wxT("%H:%M:%S")).ToUTF8(); const int posPunto = tagTime.find("."); if (posPunto >= 0) { ostr << tagTime.substr(posPunto, tagTime.size()-1); } } return ostr.str(); } inline std::string GetDateTimeFromWx(const wxString& dateStr) { std::string result; wxDateTime date,time; const wxChar* pchDate = date.ParseFormat(dateStr, wxT("%Y-%m-%d")); if ( pchDate ) { // Skip spaces, as the ParseTime() function fails on spaces while ( wxIsspace(*pchDate) || (*pchDate)=='T' ) pchDate++; time.ParseFormat(pchDate, wxT("%H:%M:%S")); if (time.IsValid()) { size_t posPoint = dateStr.Find('.', true); if (posPoint != wxString::npos) { long milli=0; wxString tmp = dateStr.substr(posPoint+1); if (tmp.ToLong(&milli)) { time.SetMillisecond(milli); } } date.Set(date.GetDay(), date.GetMonth(), date.GetYear(), time.GetHour(), time.GetMinute(), time.GetSecond(), time.GetMillisecond()); } } if (date.IsValid()) { result = date.Format(wxT("%Y-%m-%dT%H:%M:%S.%l")).ToUTF8(); } return result; } inline std::list StringToList(const wxString& field) { wxStringTokenizer tknz(field, wxT("/")); std::list result; while(tknz.HasMoreTokens()) { std::string element(tknz.GetNextToken().ToUTF8()); result.push_back(element); } return result; } inline std::string ListToString(const std::list& listOfString) { std::ostringstream ostr; bool primero = true; for (std::list::const_iterator it = listOfString.begin(); it != listOfString.end(); ++it) { if (!primero) { ostr << "/"; } ostr << (*it); primero = false; } return ostr.str(); } ////region "helpers" ///////////////////////////////////////////////////////// //region "filters" //region "filters" ///////////////////////////////////////////////////////// std::string GNC::GCS::History::StudyModalityFilter::GetSQLFilter() { if (listOfModalities.empty()) { return ""; } std::ostringstream ostr; ostr <<"("; for (std::list::iterator it = listOfModalities.begin(); it != listOfModalities.end(); ++it) { if (it != listOfModalities.begin()) { ostr << " OR "; } ostr << "mods_in_study LIKE '%" << (*it) << "%'"; } ostr <<")"; return ostr.str(); } std::string GNC::GCS::History::AcquisitionDateFilter::GetSQLFilter() { wxSQLite3StatementBuffer bufSQL; std::ostringstream ostr; if (from.IsValid() && to.IsValid()) { std::string tmpFrom(from.Format(wxT("%Y-%m-%d %H:%M:%S")).ToUTF8()); std::string tmpTo(to.Format(wxT("%Y-%m-%dT%H:%M:%S")).ToUTF8()); ostr << bufSQL.Format(" Study.study_datetime BETWEEN '%q' AND '%q'", tmpFrom.c_str(), tmpTo.c_str()); } else if (from.IsValid()) { std::string tmpStr(from.Format(wxT("%Y-%m-%d %H:%M:%S")).ToUTF8()); ostr << bufSQL.Format(" Study.study_datetime >= '%q'", tmpStr.c_str()); } else if (to.IsValid()) { std::string tmpStr(to.Format(wxT("%Y-%m-%d %H:%M:%S")).ToUTF8()); ostr << bufSQL.Format(" Study.study_datetime <= '%q'", tmpStr.c_str()); } return ostr.str(); } std::string GNC::GCS::History::StudyPatientFilter::GetSQLFilter() { wxSQLite3StatementBuffer bufSQL; std::ostringstream ostr; ostr << bufSQL.Format("Study.pat_id = '%q'", pat_id.c_str()); return ostr.str(); } std::string GNC::GCS::History::StudyLocationFilter::GetSQLFilter() { wxSQLite3StatementBuffer bufSQL; std::ostringstream ostr; ostr << bufSQL.Format("Study.location = '%c'", GNC::GCS::HistoryController::LocationToChar(Location)); return ostr.str(); } //region "Patron singleton" GNC::GCS::HistoryController* GNC::GCS::HistoryController::m_pInstance = 0; GNC::GCS::HistoryController::HistoryController() { m_readOnly = false; m_pConexion = NULL; m_pConexionThumbnails = NULL; m_pCriticalSection = new wxCriticalSection(); m_pCriticalSectionThumbnails = new wxCriticalSection(); ReloadHistory(); } GNC::GCS::HistoryController::HistoryController(const std::string& pathOfDataBase) { m_readOnly = false; m_GinkgoDicomDir = pathOfDataBase; m_pConexion = NULL; m_pConexionThumbnails = NULL; m_pCriticalSection = new wxCriticalSection(); m_pCriticalSectionThumbnails = new wxCriticalSection(); ReloadHistory(pathOfDataBase, false); } void GNC::GCS::HistoryController::ReloadHistory(const std::string& pathDicomDir, bool tryTemp) { if (pathDicomDir.empty()) { m_GinkgoDicomDir = GetDefaultDicomDirPath(); } else { m_GinkgoDicomDir = pathDicomDir; } { wxFileName pathOfDir(FROMPATH(m_GinkgoDicomDir)); if (pathOfDir.IsRelative()) { wxFileName pathOfExec(wxStandardPaths::Get().GetExecutablePath()); pathOfDir.MakeAbsolute(pathOfExec.GetPath()); m_GinkgoDicomDir = TOPATH(pathOfDir.GetFullPath()); } } bool error = false; if(m_pConexion!=NULL) { m_pConexion->Close(); delete m_pConexion; m_pConexion = NULL; } if(m_pConexionThumbnails!=NULL) { m_pConexionThumbnails->Close(); delete m_pConexionThumbnails; m_pConexionThumbnails = NULL; } try { m_pConexion = new wxSQLite3Database(); m_pConexionThumbnails = new wxSQLite3Database(); //pillamos la bbdd std::string pathFicheroDB; std::string pathFicheroDBThumbnails; { std::ostringstream ostr; ostr << GetGinkgoDicomDir() << (char)wxFileName::GetPathSeparator(wxPATH_NATIVE) << "ginkgodatabase_2.1.db"; pathFicheroDB = ostr.str(); } { std::ostringstream ostr; ostr << GetGinkgoDicomDir() << (char)wxFileName::GetPathSeparator(wxPATH_NATIVE) << "ginkgothumbnails.db"; pathFicheroDBThumbnails = ostr.str(); } wxString wxDirectorio = FROMPATH(GetGinkgoDicomDir()); if(!wxDirExists(wxDirectorio)) { bool success; #ifdef _WIN32 success = wxMkdir(wxDirectorio,511); #else success = (wxMkDir(wxDirectorio.ToUTF8(), 0770) == 0); #endif if (!success) { LOG_ERROR(LOGGER, "unable to create directory '" << wxDirectorio.c_str() << "'"); } } //existe el historial?? if(!wxFileExists(FROMPATH(pathFicheroDB))) { //se crea el fichero de base de datos if(CreateGinkgoDB(*m_pConexion,pathFicheroDB.c_str()) == 0) { LOG_ERROR(LOGGER,_Std("Error creating history database ") << pathFicheroDB << _Std(" trying temp")); error = true; if (tryTemp) { error = false; LOG_ERROR(LOGGER, _Std("You do not have permissions to write to the dicom Dir, preferences will be stored in the temporary directory")); { std::ostringstream ostr2; ostr2 << GNC::Entorno::Instance()->GetGinkgoTempDir() << (char)wxFileName::GetPathSeparator(wxPATH_NATIVE) << "ginkgodatabase_2.1.db"<IsOpen()) { if( !AbrirConexion(*m_pConexion,pathFicheroDB.c_str()) ) { LOG_ERROR(LOGGER, _Std("Error creating dicomDir database ") << pathFicheroDB); error = true; } else { wxFileName fileName(FROMPATH(pathFicheroDB)); m_readOnly = !fileName.IsFileWritable(); //check version int version = 0; try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("SELECT Value FROM MetadataBBDD WHERE Property ='Version'"); wxSQLite3ResultSet result = m_pConexion->ExecuteQuery(bufSQL); if (result.NextRow()) { version = result.GetInt(0, -1); } } catch (wxSQLite3Exception& ) { } if (version != GINKGO_BBDD_VERSION) { if (!wxThread::IsMain()) { error = true; LOG_ERROR("HistoryController", "Ginkgo BBDD version isn't valid and isn't GUI thread"); } else { //close connection... if(m_pConexion!=NULL) { m_pConexion->Close(); delete m_pConexion; m_pConexion = NULL; } GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventHideSplashWindow()); std::string oldDicomDirPath = GetGinkgoDicomDir(); GNC::GUI::DicomDirMigrationDialog dlg(GNC::Entorno::Instance()->GetVentanaRaiz(), oldDicomDirPath, version, version < GINKGO_BBDD_VERSION); dlg.ShowModal(); if (dlg.GetStatus() == GNC::GUI::DicomDirMigrationDialog::TS_CloseAll) { error = true; } else { GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Estacion", "DicomDir",dlg.GetDicomDirPath()); ReloadHistory(dlg.GetDicomDirPath(), tryTemp); if (dlg.GetStatus() == GNC::GUI::DicomDirMigrationDialog::TS_Migrate) { ::GADAPI::DBMigrationCommandParams* pParams = new ::GADAPI::DBMigrationCommandParams(dlg.GetOriginalDicomDirPath(), dlg.GetDicomDirPath(), dlg.GetRemoveAfterMigration()); ::GADAPI::DBMigrationCommand* pCmd = new ::GADAPI::DBMigrationCommand(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync("Migrating...", pCmd, NULL); } return; } } } } } /* if (reloadHistory) { wxMessageBox(_("Version of Ginkgo CADx dicom dir is old, database will be migrated to new version, do not close Ginkgo CADx until migration is finished"), _("Warning"), wxOK|wxICON_WARNING); m_pConexion->Close(); if (wxCopyFile(FROMPATH(pathFicheroDB), FROMPATH(pathFicheroDB)+wxT(".bkp"),true)) { if (!wxRemoveFile(FROMPATH(pathFicheroDBThumbnails))) { LOG_ERROR("BBDD", "Error deleting thumbnails") } if (wxRemoveFile(FROMPATH(pathFicheroDB))) { if(CreateGinkgoDB(*m_pConexion,pathFicheroDB.c_str()) != 0) { std::string historyPath = GetGinkgoDicomDir(); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(historyPath, true); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync("Migrating History", pCmd, NULL); } else { LOG_ERROR("BBDD", "Error creating ginkgo BBDD") } } else { LOG_FATAL("BBDD", "Error copying database file "<GetGinkgoTempDir() << (char)wxFileName::GetPathSeparator(wxPATH_NATIVE) << "ginkgothumbnails.db"<IsOpen()) { if( !AbrirConexion(*m_pConexionThumbnails,pathFicheroDBThumbnails.c_str()) ) { LOG_ERROR(LOGGER, _Std("Error creating thumbnails database ") << pathFicheroDB); error = true; } } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "Error al crear el la bbdd " << ex.GetMessage().ToUTF8()) wxMessageBox(_("Error creating database:\n")+ex.GetMessage(), _("Info"), wxOK | wxICON_WARNING); } if (error) { if(m_pConexion!=NULL) { m_pConexion->Close(); delete m_pConexion; m_pConexion = NULL; } if(m_pConexionThumbnails!=NULL) { m_pConexionThumbnails->Close(); delete m_pConexionThumbnails; m_pConexionThumbnails = NULL; } } } GNC::GCS::HistoryController::~HistoryController() { if(m_pConexion!=NULL) { m_pConexion->Close(); delete m_pConexion; m_pConexion = NULL; } if(m_pConexionThumbnails!=NULL) { m_pConexionThumbnails->Close(); delete m_pConexionThumbnails; m_pConexionThumbnails = NULL; } if(m_pCriticalSection != NULL) { delete m_pCriticalSection; m_pCriticalSection = NULL; } if (m_pCriticalSectionThumbnails != NULL) { delete m_pCriticalSectionThumbnails; m_pCriticalSectionThumbnails = NULL; } } bool GNC::GCS::HistoryController::IsOk() { return m_pConexionThumbnails != NULL && m_pConexion != NULL; } bool GNC::GCS::HistoryController::IsReadOnly() { return m_readOnly; } std::string GNC::GCS::HistoryController::GetGinkgoDicomDir(bool barraAlFinal) { if(barraAlFinal) { std::ostringstream out; out << m_GinkgoDicomDir << (char) wxFileName::GetPathSeparator(wxPATH_NATIVE); return out.str(); } else { return m_GinkgoDicomDir; } } std::string GNC::GCS::HistoryController::GetDefaultDicomDirPath(bool ignoreConfig) { std::string value; std::string path; if(ignoreConfig || !GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Estacion", "DicomDir", value)) { std::ostringstream out; if (GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "anonymous_history")) { out << GNC::Entorno::Instance()->CreateGinkgoTempDir() << (char) wxFileName::GetPathSeparator(wxPATH_NATIVE) << "DICOMDIR"; } else { out << GNC::Entorno::Instance()->GetGinkgoUserDir() << (char) wxFileName::GetPathSeparator(wxPATH_NATIVE) << "DICOMDIR"; } path = out.str(); } else { path = value; } return path; } GNC::GCS::HistoryController* GNC::GCS::HistoryController::Instance() { if (m_pInstance == NULL) { m_pInstance = new GNC::GCS::HistoryController(); } return m_pInstance; } void GNC::GCS::HistoryController::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } //region "metodos propios del historial" bool GNC::GCS::HistoryController::AddFiles(const StringList& listaPaths, TAddErrorList& errorList, std::list* insertedSeries, GNC::IProxyNotificadorProgreso* pNotificador, TAddAction action) { if (m_readOnly) { return false; } wxCriticalSectionLocker locker(*m_pCriticalSection); DICOMFileModelList listOfInsertedFiles; try { m_pConexion->Begin(); std::set seriesPks; std::set studiesPks; int i = 0; for(StringList::const_iterator it=listaPaths.begin(); it!= listaPaths.end(); ++it,++i) { if(pNotificador != NULL) { std::ostringstream ostr; ostr << _Std("Including image ") << (i+1) << _Std(" of ") << listaPaths.size(); if(!pNotificador->NotificarProgreso((float)i/listaPaths.size(),ostr.str())) { m_pConexion->Commit(); return false; } } if(!wxFileExists((FROMPATH((*it))))) { errorList.push_back(TAddError(TAddError::TE_FileNotExist, (*it))); } else { try { DICOMFileModel fileModel; if (!ReadFile(fileModel,(*it), errorList, action)) { continue; } FindOrInsertStudy(fileModel); studiesPks.insert(fileModel.study.pk); FindOrInsertSeries(fileModel); seriesPks.insert(fileModel.series.pk); if (insertedSeries != NULL) { insertedSeries->push_back(fileModel.series.pk); } if (action == TAA_LINK) { fileModel.file.file_path = GetRelativePath((*it)); } if (!FindOrInsertFile(fileModel)) { if (action == TAA_COPY || action == TAA_MOVE) { fileModel.file.real_path = GetPathOfFile(fileModel.file.location, fileModel.file.pk, fileModel.file.file_path); wxString pathDicom = FROMPATH(fileModel.file.real_path); if(wxCopyFile(FROMPATH((*it)),pathDicom)) { int success; #ifdef _WIN32 success = _chmod(TOPATH(pathDicom).c_str(), _S_IWRITE); #else success = chmod(TOPATH(pathDicom).c_str(), 0644); #endif if (success < 0) { LOG_ERROR("Historial", "Error changing permissions on :" << TOPATH(pathDicom).c_str() << "':" << strerror(errno)); } if(action == TAA_MOVE) { wxRemoveFile(FROMPATH((*it))); } } else { //no se ha podido copiar LOG_ERROR("Historial", "Error copying file: " << (*it) << " TO " << pathDicom.ToUTF8()); return false; } } } listOfInsertedFiles.push_back(fileModel); } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "Exception adding file "<Rollback(); errorList.push_back(TAddError(TAddError::TE_WrongFormat, std::string(ex.GetMessage().ToUTF8()))); return false; } } }//for paths... //update series and study summary info (modalities in study, number of instances...) for (std::set::iterator it = seriesPks.begin(); it != seriesPks.end(); ++it) { UpdateSeriesSummaryInfo((*it)); } for (std::set::iterator it = studiesPks.begin(); it != studiesPks.end(); ++it) { UpdateStudySummaryInfo((*it)); } m_pConexion->Commit(); return true; } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "Error al anadir el fichero a la base de datos "<Rollback(); return false; } } bool GNC::GCS::HistoryController::UpdateFiles(const GNC::GCS::HistoryController::FileModelList& files) { if (m_readOnly) { return false; } wxCriticalSectionLocker locker(*m_pCriticalSection); try { m_pConexion->Begin(); std::set seriesPks; std::set studiesPks; for (GNC::GCS::HistoryController::FileModelList::const_iterator itFile = files.begin(); itFile != files.end(); ++itFile) { TAddErrorList errorList; DICOMFileModel fileModel; if (!ReadFile(fileModel,(*itFile).real_path,errorList)) { continue; } fileModel.file.pk = (*itFile).pk; fileModel.series.pk = fileModel.file.series_fk = (*itFile).series_fk; SeriesModel s = GetSeriesModel((*itFile).series_fk); fileModel.study.pk = fileModel.series.study_fk = s.study_fk; UpdateStudy(fileModel); UpdateSeries(fileModel); UpdateFile(fileModel); seriesPks.insert(fileModel.series.pk); studiesPks.insert(fileModel.study.pk); } //update series and study summary info (modalities in study, number of instances...) for (std::set::iterator it = seriesPks.begin(); it != seriesPks.end(); ++it) { UpdateSeriesSummaryInfo((*it)); } for (std::set::iterator it = studiesPks.begin(); it != studiesPks.end(); ++it) { UpdateStudySummaryInfo((*it)); } m_pConexion->Commit(); return true; } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "Error al actualizar el fichero de la base de datos "<Rollback(); return false; } } bool GNC::GCS::HistoryController::LinkFilesToSeries(long seriesPk, GNC::GCS::HistoryController::DICOMFileModelList& files, GNC::IProxyNotificadorProgreso* pNotificador ) { if (m_readOnly) { return false; } wxCriticalSectionLocker locker(*m_pCriticalSection); DICOMFileModelList listOfInsertedFiles; try { m_pConexion->Begin(); SeriesModel sm = GetSeriesModel(seriesPk); int i = 0; for(GNC::GCS::HistoryController::DICOMFileModelList::iterator it=files.begin(); it!= files.end(); ++it, ++i) { if(pNotificador != NULL) { std::ostringstream ostr; ostr << _Std("Linking image ") << (i+1) << _Std(" of ") << files.size(); if(!pNotificador->NotificarProgreso((float)i/files.size(),ostr.str())) { m_pConexion->Commit(); return false; } } DICOMFileModel& fileModel = (*it); fileModel.file.series_fk = seriesPk; FindOrLink(fileModel); }//for paths... //update series and study summary info (modalities in study, number of instances...) UpdateSeriesSummaryInfo(sm.pk); UpdateStudySummaryInfo(sm.study_fk); m_pConexion->Commit(); return true; } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "Error linking file in database controller "<Rollback(); return false; } } void GNC::GCS::HistoryController::FindOrInsertStudy(DICOMFileModel& model) { std::ostringstream ostrSelect; wxSQLite3StatementBuffer bufSQL; ostrSelect << bufSQL.Format("SELECT pk from Study where pat_id='%q'",model.study.pat_id.c_str()); ostrSelect << bufSQL.Format(" AND pat_id_issuer='%q'",model.study.pat_id_issuer.c_str()); ostrSelect << bufSQL.Format(" AND pat_name='%q'",model.study.pat_name.c_str()); ostrSelect << bufSQL.Format(" AND study_iuid='%q'",model.study.study_iuid.c_str()); ostrSelect << bufSQL.Format(" AND study_id='%q'",model.study.study_id.c_str()); ostrSelect << bufSQL.Format(" AND accession_no='%q'",model.study.study_acc_no.c_str()); if (model.study.pat_sex == '?') { ostrSelect << bufSQL.Format(" AND ( pat_sex = '?' OR pat_sex IS NULL )", model.study.pat_sex); } else { ostrSelect << bufSQL.Format(" AND pat_sex = '%c'", model.study.pat_sex); } if (model.study.pat_bithdate.empty()) { ostrSelect << " AND pat_birthdate IS NULL"; } else { ostrSelect << bufSQL.Format(" AND pat_birthdate = '%q'",model.study.pat_bithdate.c_str()); } wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostrSelect.str().c_str()); if (resultados.NextRow()) { model.study.pk = resultados.GetInt(wxT("pk")); model.series.study_fk = model.study.pk; } else { std::ostringstream ostrInsert; ostrInsert << bufSQL.Format("INSERT INTO Study " "(pat_id,pat_id_issuer,pat_name,mods_in_study," "study_iuid, study_id, accession_no, ref_physician, study_desc," "cuids_in_study,pat_sex,num_series," "num_instances, created_time, updated_time,pat_birthdate,study_datetime) VALUES (" "'%q','%q','%q','%q'," "'%q','%q','%q','%q','%q'," "'%q','%c',1,1,datetime(),datetime(),", model.study.pat_id.c_str(), model.study.pat_id_issuer.c_str(), model.study.pat_name.c_str(),model.series.series_modality.c_str(), model.study.study_iuid.c_str(), model.study.study_id.c_str(),model.study.study_acc_no.c_str(), model.study.ref_physician.c_str(), model.study.study_desc.c_str(), model.file.sopcuid.c_str(),model.study.pat_sex); if (model.study.pat_bithdate.empty()) { ostrInsert << "NULL,"; } else { ostrInsert << "'" << model.study.pat_bithdate << "' ,"; } if (model.study.study_datetime.empty()) { ostrInsert << "NULL)"; } else { ostrInsert << "'" << model.study.study_datetime << "' )"; } if(m_pConexion->ExecuteUpdate(ostrInsert.str().c_str())>0) { model.study.pk = (long)m_pConexion->GetLastRowId().GetValue(); model.series.study_fk = model.study.pk; } } } void GNC::GCS::HistoryController::FindOrInsertSeries(DICOMFileModel& model) { wxSQLite3StatementBuffer bufSQL; std::stringstream ostrSelect; ostrSelect << bufSQL.Format("Select pk from Series where study_fk='%ld' AND series_iuid='%q' " "AND series_no='%q' AND modality='%q' ", model.series.study_fk, model.series.series_iuid.c_str(), model.series.series_no.c_str(), model.series.series_modality.c_str(), model.series.uid_importer.c_str(), model.series.body_part.c_str(), model.series.laterality.c_str()); wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostrSelect.str().c_str()); if (resultados.NextRow()) { model.series.pk = resultados.GetInt(wxT("pk")); model.file.series_fk = model.series.pk; } else { std::stringstream ostrInsert; ostrInsert << bufSQL.Format("INSERT INTO Series (" "study_fk,series_iuid,series_no,modality," "uid_importer, body_part, laterality, series_desc," "institution,station_name,department,perf_physician," "frame_of_reference_uid, tuids_in_series, num_instances, created_time, updated_time,series_datetime) VALUES (" "'%ld','%q','%q','%q'," "'%q','%q','%q','%q'," "'%q','%q','%q','%q'," "'%q','%q',1,datetime(),datetime(),", model.series.study_fk, model.series.series_iuid.c_str(), model.series.series_no.c_str(), model.series.series_modality.c_str(), model.series.uid_importer.c_str(), model.series.body_part.c_str(), model.series.laterality.c_str(), model.series.series_desc.c_str(), model.series.institution.c_str(), model.series.station_name.c_str(), model.series.department.c_str(), model.series.perf_physician.c_str(), model.series.frame_of_reference.c_str(), model.file.tsuid.c_str()); if (model.series.series_datetime.empty()) { ostrInsert << "NULL)"; } else { ostrInsert << "'" << model.series.series_datetime << "')"; } if(m_pConexion->ExecuteUpdate(ostrInsert.str().c_str())>0) { model.series.pk = (long)m_pConexion->GetLastRowId().GetValue(); model.file.series_fk = model.series.pk; } } } //true if file exists, false if it has been overwritten or if it's new bool GNC::GCS::HistoryController::FindOrInsertFile(DICOMFileModel& model) { wxSQLite3StatementBuffer bufSQL; std::stringstream ostr; ostr << bufSQL.Format("Select pk, location from File where series_fk='%ld' " "AND file_sopiuid='%q'", model.file.series_fk, model.file.sopiuid.c_str()); wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostr.str().c_str()); TLocation location; long pk = -1; if (resultados.NextRow()) { //file exists... pk = resultados.GetInt(wxT("pk")); location = CharToLocation(*resultados.GetAsString(wxT("location")).ToUTF8()); } if (pk == -1) { //file doesn't exists so insert it std::stringstream ostrInsert; ostrInsert << bufSQL.Format("INSERT INTO File (" "series_fk, file_path, file_sopiuid, file_tsuid," "sopcuid, orientation, image_positionx, image_positiony," "image_positionz, slice_location, slice_thickness, height, width, number_of_frames," "instance_number, file_desc, direction_cosines, spacing, location, created_time, updated_time, content_datetime) VALUES (" "'%ld','%q','%q','%q'," "'%q','%c','%f','%f'," "'%f','%f', '%f', '%d','%d','%d'," "'%d', '%q', '%q', '%q', '%c',datetime(),datetime(),", model.file.series_fk, model.file.file_path.c_str(), model.file.sopiuid.c_str(), model.file.tsuid.c_str(), model.file.sopcuid.c_str(), model.file.orientation, model.file.image_position[0], model.file.image_position[1], model.file.image_position[2], model.file.slice_location, model.file.slice_thickness, model.file.height, model.file.width, model.file.number_of_frames, model.file.instance_number, model.file.file_desc.c_str(), model.file.direction_cosines.c_str(), model.file.spacing.c_str(), LocationToChar(model.file.location)); if (model.file.content_datetime.empty()) { ostrInsert << "NULL)"; } else { ostrInsert << "'" << model.file.content_datetime << "')"; } if(m_pConexion->ExecuteUpdate(ostrInsert.str().c_str())>0) { model.file.pk = (long)m_pConexion->GetLastRowId().GetValue(); } return false; } else if (location != TL_LocalDatabase) { //update file... model.file.pk = pk; UpdateFile(model); return false; } else { //nothing to do file is in local database model.file.pk = pk; return true; } } bool GNC::GCS::HistoryController::FindOrLink(DICOMFileModel& model) { wxSQLite3StatementBuffer bufSQL; model.file.location = TL_WadoLinked; std::stringstream ostr; ostr << bufSQL.Format("Select pk, location from File where series_fk='%ld' " "AND file_sopiuid='%q'", model.file.series_fk, model.file.sopiuid.c_str()); wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostr.str().c_str()); if (resultados.NextRow()) { //file exists and is fully local then return true... TLocation location = CharToLocation(*resultados.GetAsString(wxT("location")).ToUTF8()); if (location != TL_WadoLinked) { return true; } else { model.file.pk = resultados.GetInt(wxT("pk")); //file is now linked so overwrite it! std::stringstream ostrUpdate; wxSQLite3StatementBuffer bufSQL; ostrUpdate << bufSQL.Format("Update File SET " "series_fk = '%ld',file_sopiuid='%q',file_tsuid = '%q'," "sopcuid = '%q', orientation = '%c', image_positionx = '%f', image_positiony = '%f'," "image_positionz = '%f',slice_location = '%f',height = '%d',width = '%d',number_of_frames='%d'," "instance_number = '%d', file_desc='%q', direction_cosines = '%q', spacing='%q', location='%c', updated_time = datetime(), content_datetime = ", model.file.series_fk, model.file.sopiuid.c_str(), model.file.tsuid.c_str(), model.file.sopcuid.c_str(), model.file.orientation, model.file.image_position[0], model.file.image_position[1], model.file.image_position[2], model.file.slice_location, model.file.height, model.file.width,model.file.number_of_frames, model.file.instance_number, model.file.file_desc.c_str(), model.file.direction_cosines.c_str(), model.file.spacing.c_str(), LocationToChar(model.file.location)); if (model.file.content_datetime.empty()) { ostrUpdate << "NULL"; } else { ostrUpdate << "'" << model.file.content_datetime << "'"; } ostrUpdate << bufSQL.Format(" WHERE File.pk = '%ld'", model.file.pk); m_pConexion->ExecuteUpdate(ostrUpdate.str().c_str()); return true; } } std::stringstream ostrInsert; ostrInsert << bufSQL.Format("INSERT INTO File (" "series_fk, file_path, file_sopiuid, file_tsuid," "sopcuid, orientation, image_positionx, image_positiony," "image_positionz, slice_location, slice_thickness, height, width, number_of_frames," "instance_number, file_desc, direction_cosines, spacing, location, created_time, updated_time, content_datetime) VALUES (" "'%ld','%q','%q','%q'," "'%q','%c','%f','%f'," "'%f','%f', '%f', '%d','%d','%d'," "'%d', '%q', '%q', '%q', '%c', datetime(),datetime(),", model.file.series_fk, model.file.file_path.c_str(), model.file.sopiuid.c_str(), model.file.tsuid.c_str(), model.file.sopcuid.c_str(), model.file.orientation, model.file.image_position[0], model.file.image_position[1], model.file.image_position[2], model.file.slice_location, model.file.slice_thickness, model.file.height, model.file.width, model.file.number_of_frames, model.file.instance_number, model.file.file_desc.c_str(), model.file.direction_cosines.c_str(), model.file.spacing.c_str(), LocationToChar(model.file.location)); if (model.file.content_datetime.empty()) { ostrInsert << "NULL)"; } else { ostrInsert << "'" << model.file.content_datetime << "')"; } if(m_pConexion->ExecuteUpdate(ostrInsert.str().c_str())>0) { model.file.pk = (long)m_pConexion->GetLastRowId().GetValue(); } return false; } void GNC::GCS::HistoryController::UpdateStudy(DICOMFileModel& model) { std::stringstream ostrUpdate; wxSQLite3StatementBuffer bufSQL; ostrUpdate << bufSQL.Format("Update Study SET " "pat_id='%q',pat_id_issuer='%q',pat_name='%q'," "study_iuid='%q', study_id='%q', accession_no='%q', ref_physician='%q', study_desc='%q'," "pat_sex='%c', location='%c', updated_time=datetime(),pat_birthdate=", model.study.pat_id.c_str(), model.study.pat_id_issuer.c_str(), model.study.pat_name.c_str(), model.study.study_iuid.c_str(), model.study.study_id.c_str(),model.study.study_acc_no.c_str(), model.study.ref_physician.c_str(), model.study.study_desc.c_str(), model.study.pat_sex, LocationToChar(model.study.location)); if (model.study.pat_bithdate.empty()) { ostrUpdate << "NULL"; } else { ostrUpdate << "'" << model.study.pat_bithdate << "'"; } if (model.study.study_datetime.empty()) { ostrUpdate << ",study_datetime=NULL"; } else { ostrUpdate << ",study_datetime= '" << model.study.study_datetime << "'"; } ostrUpdate << bufSQL.Format(" WHERE Study.pk = '%ld'", model.study.pk); m_pConexion->ExecuteUpdate(ostrUpdate.str().c_str()); } void GNC::GCS::HistoryController::UpdateSeries(GNC::GCS::HistoryController::DICOMFileModel& model) { std::stringstream ostrUpdate; wxSQLite3StatementBuffer bufSQL; ostrUpdate << bufSQL.Format("Update Series SET " "study_fk = '%ld', series_iuid='%q',series_no='%q',modality='%q'," "uid_importer='%q', body_part='%q', laterality='%q', series_desc='%q'," "institution='%q',station_name='%q',department='%q',perf_physician='%q'," "frame_of_reference_uid='%q', location='%c', updated_time = datetime(),series_datetime=", model.series.study_fk, model.series.series_iuid.c_str(), model.series.series_no.c_str(), model.series.series_modality.c_str(), model.series.uid_importer.c_str(), model.series.body_part.c_str(), model.series.laterality.c_str(), model.series.series_desc.c_str(), model.series.institution.c_str(), model.series.station_name.c_str(), model.series.department.c_str(), model.series.perf_physician.c_str(), model.series.frame_of_reference.c_str(), LocationToChar(model.series.location)); if (model.series.series_datetime.empty()) { ostrUpdate << "NULL"; } else { ostrUpdate << "'" << model.series.series_datetime << "'"; } ostrUpdate << bufSQL.Format(" WHERE Series.pk = '%ld'", model.series.pk); m_pConexion->ExecuteUpdate(ostrUpdate.str().c_str()); } void GNC::GCS::HistoryController::UpdateFile(GNC::GCS::HistoryController::DICOMFileModel& model) { std::stringstream ostrUpdate; wxSQLite3StatementBuffer bufSQL; ostrUpdate << bufSQL.Format("Update File SET " "series_fk = '%ld', file_path = '%q',file_sopiuid='%q',file_tsuid = '%q'," "sopcuid = '%q', orientation = '%c', image_positionx = '%f', image_positiony = '%f'," "image_positionz = '%f',slice_location = '%f',height = '%d',width = '%d',number_of_frames='%d'," "instance_number = '%d', file_desc='%q', direction_cosines = '%q', spacing='%q', slice_thickness='%f', location='%c', updated_time = datetime(), content_datetime = ", model.file.series_fk, model.file.file_path.c_str(), model.file.sopiuid.c_str(), model.file.tsuid.c_str(), model.file.sopcuid.c_str(), model.file.orientation, model.file.image_position[0], model.file.image_position[1], model.file.image_position[2], model.file.slice_location, model.file.height, model.file.width,model.file.number_of_frames, model.file.instance_number, model.file.file_desc.c_str(), model.file.direction_cosines.c_str(), model.file.spacing.c_str(), model.file.slice_thickness, LocationToChar(model.file.location)); if (model.file.content_datetime.empty()) { ostrUpdate << "NULL"; } else { ostrUpdate << "'" << model.file.content_datetime << "'"; } ostrUpdate << bufSQL.Format(" WHERE File.pk = '%ld'", model.file.pk); m_pConexion->ExecuteUpdate(ostrUpdate.str().c_str()); } std::string GNC::GCS::HistoryController::GetPathOfFile(GNC::GCS::IHistoryController::TLocation location, long pk, const std::string& file_path) { switch (location) { case TL_LocalDatabase: { wxString pathDicom = FROMPATH(m_GinkgoDicomDir); pathDicom += wxFileName::GetPathSeparator(); pathDicom += wxT("DicomDir"); wxString rootDir(pathDicom); if (!wxDir::Exists(rootDir)) { wxFileName::Mkdir(rootDir, 0700); } pathDicom += wxFileName::GetPathSeparator(); pathDicom += wxString::Format(wxT("%d"), (int) pk); return std::string(TOPATH(pathDicom)); } break; case TL_LocalLinked: return GetAbsolutePath(file_path); case TL_WadoLinked: default: return file_path; } } std::string GNC::GCS::HistoryController::GetPathOfFile(long file_pk) { wxString pathDicom = FROMPATH(m_GinkgoDicomDir); pathDicom += wxFileName::GetPathSeparator(); pathDicom += wxT("DicomDir"); wxString rootDir(pathDicom); if (!wxDir::Exists(rootDir)) { wxFileName::Mkdir(rootDir, 0700); } pathDicom += wxFileName::GetPathSeparator(); pathDicom += wxString::Format(wxT("%d"), (int) file_pk); return std::string(TOPATH(pathDicom)); } std::string GNC::GCS::HistoryController::GetRelativePath(const std::string& absolutePath) { wxFileName fileName(FROMPATH(absolutePath)); if (fileName.MakeRelativeTo(FROMPATH(GetGinkgoDicomDir()))) { return std::string(TOPATH(fileName.GetFullPath())); } else { return absolutePath; } } std::string GNC::GCS::HistoryController::GetAbsolutePath(const std::string& relativePath) { wxFileName fileName(FROMPATH(relativePath)); if (fileName.IsRelative() && fileName.MakeAbsolute(FROMPATH(GetGinkgoDicomDir(true)))) { return std::string(TOPATH(fileName.GetFullPath())); } else { return relativePath; } } void GNC::GCS::HistoryController::UpdateSeriesSummaryInfo(long series_pk) { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("SELECT File.file_tsuid, count(*) as numberOfFiles " "FROM File " "WHERE series_fk = '%d' " "GROUP BY FILE.file_tsuid", series_pk); wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(bufSQL); std::list tSyntaxUIDs; long number_instances = 0; while (resultados.NextRow()) { std::string path(resultados.GetAsString(wxT("file_tsuid")).ToUTF8()); if (!path.empty()) { tSyntaxUIDs.push_back(path); } number_instances += resultados.GetInt64(wxT("numberOfFiles")).GetValue(); } //order is W,L,B => if there is a wado is wado and if there is a linked is linked bufSQL.Format("SELECT distinct(location) " "FROM File " "WHERE series_fk = '%d' " "Order by location DESC", series_pk); resultados = m_pConexion->ExecuteQuery(bufSQL); TLocation seriesLocation = TL_LocalDatabase; if (resultados.NextRow()) { seriesLocation = CharToLocation(*resultados.GetAsString(0).ToUTF8()); } // bufSQL.Format("Update Series SET num_instances = '%d', tuids_in_series='%q', location='%c' WHERE pk = '%d'", number_instances, ListToString(tSyntaxUIDs).c_str(), LocationToChar(seriesLocation), series_pk); m_pConexion->ExecuteUpdate(bufSQL); } void GNC::GCS::HistoryController::UpdateStudySummaryInfo(long study_pk) { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("SELECT sopcuid, count(*) as numberOfFiles " "FROM File, Series " "WHERE File.series_fk = Series.pk AND Series.study_fk = '%d'" "GROUP BY FILE.sopcuid", study_pk); wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(bufSQL); std::list sopclasses; long number_instances = 0; while (resultados.NextRow()) { std::string sop(resultados.GetAsString(wxT("sopcuid")).ToUTF8()); if (!sop.empty()) { sopclasses.push_back(sop); } number_instances += resultados.GetInt64(wxT("numberOfFiles")).GetValue(); } bufSQL.Format("SELECT Series.modality, count(*) as numberOfSeries " "FROM Series " "WHERE Series.study_fk = '%d' " "GROUP BY Series.modality", study_pk); resultados = m_pConexion->ExecuteQuery(bufSQL); std::list modalities; long number_series = 0; while (resultados.NextRow()) { std::string mod(resultados.GetAsString(wxT("modality")).ToUTF8()); modalities.push_back(mod); number_series += resultados.GetInt64(wxT("numberOfSeries")).GetValue(); } //order is W,L,B => if there is a wado is wado and if there is a linked is linked bufSQL.Format("SELECT distinct(location) " "FROM Series " "WHERE study_fk = '%d' " "Order by location DESC", study_pk); resultados = m_pConexion->ExecuteQuery(bufSQL); TLocation studyLocation = TL_LocalDatabase; if (resultados.NextRow()) { studyLocation = CharToLocation(*resultados.GetAsString(0).ToUTF8()); } // bufSQL.Format("Update Study SET num_instances = '%d', num_series='%d', cuids_in_study='%q', mods_in_study = '%q', location='%c' WHERE pk = '%d'", number_instances, number_series, ListToString(sopclasses).c_str(), ListToString(modalities).c_str(), LocationToChar(studyLocation), study_pk); m_pConexion->ExecuteUpdate(bufSQL); } inline void FillInSeriesModel(wxSQLite3ResultSet& resultados, GNC::GCS::HistoryController::SeriesModel& seriesModel) { if (seriesModel.pk <= 0) { seriesModel.pk = resultados.GetInt64(wxT("pk")).GetValue(); seriesModel.study_fk = resultados.GetInt64(wxT("study_fk")).GetValue(); seriesModel.series_iuid = resultados.GetAsString(wxT("series_iuid")).ToUTF8(); seriesModel.series_datetime = GetDateTimeFromWx(resultados.GetAsString(wxT("series_datetime"))); seriesModel.series_no = resultados.GetAsString(wxT("series_no")).ToUTF8(); seriesModel.series_modality = resultados.GetAsString(wxT("modality")).ToUTF8(); seriesModel.uid_importer = resultados.GetAsString(wxT("uid_importer")).ToUTF8(); seriesModel.body_part = resultados.GetAsString(wxT("body_part")).ToUTF8(); seriesModel.laterality = resultados.GetAsString(wxT("laterality")).ToUTF8(); seriesModel.series_desc = resultados.GetAsString(wxT("series_desc")).ToUTF8(); seriesModel.institution = resultados.GetAsString(wxT("institution")).ToUTF8(); seriesModel.station_name = resultados.GetAsString(wxT("station_name")).ToUTF8(); seriesModel.department = resultados.GetAsString(wxT("department")).ToUTF8(); seriesModel.perf_physician = resultados.GetAsString(wxT("perf_physician")).ToUTF8(); seriesModel.num_instances = resultados.GetInt(wxT("num_instances")); seriesModel.frame_of_reference = resultados.GetAsString(wxT("frame_of_reference_uid")).ToUTF8(); seriesModel.tsuids = StringToList(resultados.GetAsString(wxT("tuids_in_series"))); seriesModel.created_time = GetDateTimeFromWx(resultados.GetAsString(wxT("created_time"))); seriesModel.updated_time = GetDateTimeFromWx(resultados.GetAsString(wxT("updated_time"))); seriesModel.location = GNC::GCS::IHistoryController::CharToLocation(*resultados.GetString(wxT("location")).ToUTF8()); } } GNC::GCS::HistoryController::SeriesModel GNC::GCS::HistoryController::GetSeriesModel(long series_pk) { SeriesModel seriesModel; try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("SELECT Series.pk, Series.study_fk, Series.series_iuid, Series.series_datetime, Series.series_no,Series.modality," "Series.uid_importer, Series.body_part, Series.laterality, Series.series_desc," "Series.institution,Series.station_name,Series.department,Series.perf_physician," "Series.num_instances, Series.frame_of_reference_uid, Series.tuids_in_series, Series.created_time, Series.updated_time, Series.location " "FROM Series " "WHERE pk = '%ld'", series_pk); wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(bufSQL); while (resultados.NextRow()) { FillInSeriesModel(resultados, seriesModel); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "SeriesModel "<ExecuteQuery(ostr.str().c_str()); std::map mapOfSeries; while (resultados.NextRow()) { long pk = resultados.GetInt64(wxT("pk")).GetValue(); FillInSeriesModel(resultados, mapOfSeries[pk]); } for (std::map::const_iterator it = mapOfSeries.begin(); it != mapOfSeries.end(); ++it) { series.push_back((*it).second); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "SeriesModel "<ExecuteQuery(bufSQL); std::map mapOfSeries; while (resultados.NextRow()) { long pk = resultados.GetInt64(wxT("pk")).GetValue(); FillInSeriesModel(resultados, mapOfSeries[pk]); } for (std::map::const_iterator it = mapOfSeries.begin(); it != mapOfSeries.end(); ++it) { listOfSeries.push_back((*it).second); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "SeriesModel "<ExecuteQuery(bufSQL); if (resultados.NextRow()) { FillInStudyModel(resultados, studyModel); } studyModel.pk = study_pk; } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "StudyModel "<ExecuteQuery(bufSQL); std::map mapOfStudies; while (resultados.NextRow()) { long pk = resultados.GetInt64(wxT("pk")).GetValue(); FillInStudyModel(resultados, mapOfStudies[pk]); } for (std::map::const_iterator it = mapOfStudies.begin(); it != mapOfStudies.end(); ++it) { studies.push_back((*it).second); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "SeriesModel "<::const_iterator it = studyModel.mods_in_study.begin(); it != studyModel.mods_in_study.end(); ++it) { if (it != studyModel.mods_in_study.begin()) { ostr << "/"; } ostr << (*it); } dataset.tags[GKDCM_ModalitiesInStudy] = ostr.str(); } void GNC::GCS::HistoryController::GetStudies(GNC::GCS::History::IHistoryFilter* historyFilter, StudyModelList& listOfStudies) { std::list filterList; if (historyFilter != NULL) { filterList.push_back(historyFilter); } GetStudies(filterList,listOfStudies); } void GNC::GCS::HistoryController::GetStudies(std::list& historyFilter, StudyModelList& listOfStudies) { try { wxSQLite3StatementBuffer bufSQL; std::ostringstream ostr; ostr << bufSQL.Format("SELECT Study.pk, Study.pat_id, Study.pat_id_issuer, Study.pat_name, Study.pat_birthdate,Study.pat_sex," "Study.study_iuid, Study.study_id, Study.study_datetime, Study.accession_no," "Study.ref_physician,Study.study_desc,Study.mods_in_study,Study.cuids_in_study," "Study.num_series, Study.num_instances, Study.location, Study.created_time, Study.updated_time " "FROM Study "); bool first = true; for (std::list::iterator it = historyFilter.begin(); it != historyFilter.end(); ++it) { if ((*it)->IsEnabled()) { std::string str = (*it)->GetSQLFilter(); if (!str.empty()) { if (!first) { ostr << " AND "; } else { ostr << "WHERE "; first = false; } ostr << str; } } } wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostr.str().c_str()); while (resultados.NextRow()) { StudyModel studyModel; FillInStudyModel(resultados, studyModel); listOfStudies.push_back(studyModel); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "StudyModel "<> pk; return GetFrameOfReference(pk); } GNC::GCS::HistoryController::FileModel GNC::GCS::HistoryController::GetFrameOfReference(long series_pk) { FileModel fileModel; wxSQLite3StatementBuffer bufSQL; bufSQL.Format("SELECT File.pk, File.series_fk, File.file_path, File.file_sopiuid, File.file_tsuid, File.content_datetime," "File.sopcuid, File.orientation, File.image_positionx, File.image_positiony," "File.image_positionz,File.slice_location, File.slice_thickness, File.height,File.width, File.number_of_frames," "File.instance_number, File.file_desc, File.direction_cosines, File.spacing, File.location, File.created_time, File.updated_time " "FROM File, Series " "WHERE File.series_fk = Series.pk AND File.file_sopiuid=Series.frame_of_reference_uid AND Series.pk='%ld'", series_pk); wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(bufSQL); if (resultados.NextRow()) { FillInFileModel(resultados, fileModel); fileModel.real_path = GetPathOfFile(fileModel.location, fileModel.pk, fileModel.file_path); } else { FileModelList listOfFiles; GetSeriesSortedFileModels(series_pk, listOfFiles, true); if (!listOfFiles.empty()) { return listOfFiles.front(); } } return fileModel; } GNC::GCS::HistoryController::FileModel GNC::GCS::HistoryController::GetFileModel(long file_pk) { FileModel fileModel; try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("SELECT File.pk, File.series_fk, File.file_path, File.file_sopiuid, File.file_tsuid, File.content_datetime," "File.sopcuid, File.orientation, File.image_positionx, File.image_positiony," "File.image_positionz,File.slice_location, File.slice_thickness, File.height,File.width, File.number_of_frames," "File.instance_number, File.file_desc, File.direction_cosines, File.spacing, File.location, File.created_time, File.updated_time " "FROM File " "WHERE pk = '%ld'", file_pk); wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(bufSQL); if (resultados.NextRow()) { FillInFileModel(resultados, fileModel); fileModel.real_path = GetPathOfFile(fileModel.location, fileModel.pk, fileModel.file_path); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "FileModel "<ExecuteQuery(bufSQL); if (resultados.NextRow()) { FillInFileModel(resultados, fileModel); fileModel.real_path = GetPathOfFile(fileModel.location, fileModel.pk, fileModel.file_path); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "FileModel "<ExecuteQuery(bufSQL); while (resultados.NextRow()) { PatientModel patient; patient.id = resultados.GetAsString(wxT("pat_id")).ToUTF8(); patient.id_issuer = resultados.GetAsString(wxT("pat_id_issuer")).ToUTF8(); patient.name = resultados.GetAsString(wxT("pat_name")).ToUTF8(); patient.bithdate = GetDateTimeFromWx(resultados.GetAsString(wxT("pat_birthdate"))); patient.sex = resultados.GetAsString(wxT("pat_sex")).GetChar(0); patientList.push_back(patient); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "StudyModel "<ExecuteScalar(bufSQL)>0) { return true; } else { return false; } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "ExistsSeriesByUID "<ExecuteScalar(bufSQL)>0) { return true; } else { return false; } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "ExistsStudyWithUID "<ExecuteScalar(bufSQL); } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "GetNumberOfFiles "<ExecuteQuery(sentencia.str().c_str()); while (resultados.NextRow()) { FileModel fileModel; FillInFileModel(resultados, fileModel); fileModel.real_path = GetPathOfFile(fileModel.location, fileModel.pk, fileModel.file_path); fileList.push_back(fileModel); if (onlyFirst) { return; } } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "GetPathsSerieOrdenados "<ExecuteQuery(sentencia.str().c_str()); while (resultados.NextRow()) { LightFileModel fileModel; FillInLightFileModel(resultados, fileModel); fileModel.real_path = GetPathOfFile(fileModel.location, fileModel.pk, fileModel.file_path); fileList.push_back(fileModel); if (onlyFirst) { return; } } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "GetPathsSerieOrdenados "<ExecuteQuery(bufSQL); if (resultados.NextRow()) { std::string pk(resultados.GetAsString(wxT("series_iuid")).ToUTF8()); list = GetSeriesSortedPaths(pk); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "ExistsSeriesByUID "<> id; return GetSeriesSortedPaths(id); } GNC::GCS::HistoryController::StringList GNC::GCS::HistoryController::GetSeriesSortedPaths(long series_pk) { GNC::GCS::HistoryController::StringList result; try { std::ostringstream sentencia; wxSQLite3StatementBuffer bufSQL; sentencia << bufSQL.Format("SELECT pk, file_path " "FROM File WHERE " "File.series_fk='%ld' " ,series_pk); sentencia << GetFileOrderBySentence(GetSeriesOrientation(series_pk)); wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(sentencia.str().c_str()); while (resultados.NextRow()) { std::string filePath(resultados.GetAsString(wxT("file_path")).ToUTF8()); if (filePath.empty()) { filePath = GetPathOfFile(resultados.GetInt64(wxT("pk")).GetValue()); } else { filePath = GetAbsolutePath(filePath); } result.push_back( filePath ); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "GetPathsSerieOrdenados "<ExecuteQuery(bufSQL); while (resultados.NextRow()) { std::string sopCuid(resultados.GetAsString(wxT("sopcuid")).ToUTF8()); result.push_back( sopCuid ); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "GetSeriesSopClasses "<ExecuteQuery(bufSQL); if (resultados.NextRow()) { std::string tmp (resultados.GetAsString(wxT("orientation")).ToUTF8()); if(tmp.size() == 1) { orientacion = tmp[0]; } } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "GetPathsSerieOrdenados "< listOfPaths; std::list listOfThumbnails; wxSQLite3StatementBuffer bufSQL; { std::ostringstream ostrSelect; ostrSelect << "SELECT DISTINCT File.pk, File.file_path FROM File " "WHERE "; for (IdList::const_iterator it = pks.begin(); it != pks.end(); ++it) { if (it != pks.begin()) { ostrSelect << " OR"; } ostrSelect << bufSQL.Format(" File.series_fk = '%ld'", (*it)); } wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostrSelect.str().c_str()); while (resultados.NextRow()) { wxString filePath = resultados.GetAsString(wxT("file_path")); long pk = resultados.GetInt64(wxT("pk")).GetValue(); listOfThumbnails.push_back(pk); if (filePath.empty()) { std::string filePath = GetPathOfFile(pk); listOfPaths.push_back(filePath); } } } RemoveFilesFromDisk(listOfPaths); DeleteThumbnails( listOfThumbnails ); { std::ostringstream ostrDelete; ostrDelete << "Delete from Series where "; for (IdList::const_iterator it = pks.begin(); it != pks.end(); ++it) { if (it != pks.begin()) { ostrDelete << " OR"; } ostrDelete << bufSQL.Format(" Series.pk = '%ld'", (*it)); } wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostrDelete.str().c_str()); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "EliminarSerie "< listOfPaths; std::list listOfThumbnails; wxSQLite3StatementBuffer bufSQL; { std::ostringstream ostrSelect; ostrSelect << "SELECT DISTINCT File.pk, File.file_path FROM File " "WHERE "; for (StringList::const_iterator it = sopInstanceUIds.begin(); it != sopInstanceUIds.end(); ++it) { if (it != sopInstanceUIds.begin()) { ostrSelect << " OR"; } ostrSelect << bufSQL.Format(" File.file_sopiuid = '%q'", (*it).c_str()); } wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostrSelect.str().c_str()); while (resultados.NextRow()) { wxString filePath = resultados.GetAsString(wxT("file_path")); long pk = resultados.GetInt64(wxT("pk")).GetValue(); listOfThumbnails.push_back(pk); if (filePath.empty()) { std::string filePath = GetPathOfFile(pk); listOfPaths.push_back(filePath); } } } RemoveFilesFromDisk(listOfPaths); DeleteThumbnails(listOfThumbnails); { std::ostringstream ostrDelete; ostrDelete << "Delete from File where "; for (StringList::const_iterator it = sopInstanceUIds.begin(); it != sopInstanceUIds.end(); ++it) { if (it != sopInstanceUIds.begin()) { ostrDelete << " OR"; } ostrDelete << bufSQL.Format(" File.file_sopiuid = '%q'", (*it).c_str()); } wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostrDelete.str().c_str()); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "DeleteSopInstanceUIDs "<ExecuteQuery(bufSQL); std::list listaPaths; while (resultados.NextRow()) { std::string file_path(TOPATH(resultados.GetAsString(0))); if (file_path.empty()) { long pk = resultados.GetInt64(1).GetValue(); listaPaths.push_back(GetPathOfFile(pk)); } } RemoveFilesFromDisk(listaPaths); } bufSQL.Format("DELETE FROM File"); m_pConexion->ExecuteUpdate(bufSQL); bufSQL.Format("DELETE FROM Series"); m_pConexion->ExecuteUpdate(bufSQL); bufSQL.Format("DELETE FROM Study"); m_pConexion->ExecuteUpdate(bufSQL); bufSQL.Format("DELETE FROM Thumbnails"); m_pConexionThumbnails->ExecuteUpdate(bufSQL); return true; } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "VaciarHistorial "<GetPACSController()->CrearInstanciaDeDICOMManager(); GIL::DICOM::DicomDataset base; if(!pDICOMManager->CargarFichero(pathAbsoluto, base)) { //error en la carga dcmtk no es un dicom GNC::Entorno::Instance()->GetPACSController()->LiberarInstanciaDeDICOMManager(pDICOMManager); errorList.push_back(TAddError(TAddError::TE_WrongFormat, pathAbsoluto)); return false; } std::string tag, tag1; //si es dicomdir => return false // Leemos el tag 0004 0x1130 => Si existe es DICOMDIR if (base.getTag(GKDCM_FileSetID, tag)) { errorList.push_back(TAddError(TAddError::TE_DICOMDir, pathAbsoluto)); return false; } //study if (base.getTag(GKDCM_PatientName, tag)) { modeloDCM.study.pat_name = tag; } if (base.getTag(GKDCM_PatientID, tag)) { modeloDCM.study.pat_id = tag; } if (base.getTag(GKDCM_IssuerOfPatientID, tag)) { modeloDCM.study.pat_id_issuer = tag; } if (base.getTag(GKDCM_PatientBirthDate, tag)) { modeloDCM.study.pat_bithdate = parseDateTime(tag, ""); } if(base.getTag(GKDCM_PatientSex, tag)) { if(tag.compare("M")==0) { modeloDCM.study.pat_sex ='M'; } else if(tag.compare("F")==0) { modeloDCM.study.pat_sex ='F'; } else if (!tag.empty()) { modeloDCM.study.pat_sex='O'; } else { modeloDCM.study.pat_sex = '?'; } } if (base.getTag(GKDCM_StudyInstanceUID, tag)) { modeloDCM.study.study_iuid = tag; } if (base.getTag(GKDCM_StudyID, tag)) { modeloDCM.study.study_id = tag; } if (base.getTag(GKDCM_StudyDate, tag) && base.getTag(GKDCM_StudyTime, tag1)) { modeloDCM.study.study_datetime = parseDateTime(tag, tag1); } if (base.getTag(GKDCM_AccessionNumber, tag)) { modeloDCM.study.study_acc_no = tag; } if (base.getTag(GKDCM_ReferringPhysicianName, tag)) { modeloDCM.study.ref_physician = tag; } if (base.getTag(GKDCM_StudyDescription, tag)) { modeloDCM.study.study_desc = tag; } if (base.getTag(GKDCM_StudyDescription, tag)) { modeloDCM.study.study_desc = tag; } //series if (base.getTag(GKDCM_SeriesInstanceUID, tag)) { modeloDCM.series.series_iuid = tag; } tag1 = ""; tag = ""; if (base.getTag(GKDCM_SeriesDate, tag) && base.getTag(GKDCM_SeriesTime, tag1)) { modeloDCM.series.series_datetime = parseDateTime(tag, tag1); } if (base.getTag(GKDCM_SeriesNumber, tag)) { modeloDCM.series.series_no = tag; } if (base.getTag(GKDCM_Modality, tag)) { modeloDCM.series.series_modality = tag; } if (base.getTag(GKDCM_ProtocolName, tag)) { modeloDCM.series.uid_importer = tag; } if (base.getTag(GKDCM_BodyPartExamined, tag)) { modeloDCM.series.body_part = tag; } if (base.getTag(GKDCM_Laterality, tag)) { modeloDCM.series.laterality = tag; } if (base.getTag(GKDCM_SeriesDescription, tag)) { modeloDCM.series.series_desc = tag; } if (base.getTag(GKDCM_InstitutionName, tag)) { modeloDCM.series.institution = tag; } if (base.getTag(GKDCM_StationName, tag)) { modeloDCM.series.station_name = tag; } if (base.getTag(GKDCM_InstitutionalDepartmentName, tag)) { modeloDCM.series.department = tag; } if (base.getTag(GKDCM_PerformingPhysicianName, tag)) { modeloDCM.series.perf_physician = tag; } if (base.getTag(GKDCM_FrameOfReferenceUID, tag)) { modeloDCM.series.frame_of_reference = tag; } //file if (base.getTag(GKDCM_SOPInstanceUID, tag)) { modeloDCM.file.sopiuid = tag; } //transfer syntax { GIL::DICOM::TipoMetaInfo metaTags; pDICOMManager->CargarMetaInfo(pathAbsoluto, metaTags); if(metaTags.getTag(GKDCM_TransferSyntaxUID,tag)) { modeloDCM.file.tsuid = tag; } } if(base.getTag(GKDCM_SOPClassUID,tag)) { modeloDCM.file.sopcuid = tag; } tag1 = ""; tag = ""; if (base.getTag(GKDCM_AcquisitionDate, tag) && base.getTag(GKDCM_AcquisitionTime, tag1)) { modeloDCM.file.content_datetime = parseDateTime(tag, tag1); } if (base.getTag(GKDCM_PixelSpacing, tag)) { modeloDCM.file.spacing = tag; } else if (base.getTag(GKDCM_ImagerPixelSpacing, tag)) { modeloDCM.file.spacing = tag; } std::string tagOrientation; //GKDCM_ImageOrientationPatient its longer than info tags... if (!pDICOMManager->GetTag(0x0020,0x0037, tagOrientation)) { //For ACR-NEMA GKDCM_ACR_NEMA_ImageOrientation pDICOMManager->GetTag(0x0020,0x0037, tagOrientation); } if (!tagOrientation.empty()) { modeloDCM.file.direction_cosines = tagOrientation; double row[3] = {0.0,0.0,0.0}; double col[3] = {0.0,0.0,0.0}; char c; bool ok = true; std::istringstream istr(tagOrientation); for (int i = 0; i < 3; ++i) { if (ok && !istr.eof()) { istr >> row[i]; if (!istr.eof()) { istr >> c; //la barra } } else { ok = false; } } for (int i = 0; i < 3; ++i) { if (ok && !istr.eof()) { istr >> col[i]; if (!istr.eof()) { istr >> c; //la barra } } else { ok = false; } } if (ok) { modeloDCM.file.orientation = makeImageOrientationLabelFromImageOrientationPatient(row[0], row[1], row[2], col[0], col[1], col[2]); } else { modeloDCM.file.orientation = 'A'; } } else { modeloDCM.file.orientation = 'A'; } //patient position modeloDCM.file.image_position[0] = 0.0; modeloDCM.file.image_position[1] = 0.0; modeloDCM.file.image_position[2] = 0.0; if (base.getTag(GKDCM_ImagePositionPatient, tag) ) { std::istringstream iiPos(tag); char c; bool ok = true; std::istringstream istr(tag); for (int i = 0; i < 3; ++i) { if (ok && !istr.eof()) { istr >> modeloDCM.file.image_position[i]; if (!istr.eof()) { istr >> c; //la barra } } else { ok = false; } } if(!ok) { modeloDCM.file.image_position[0] = 0.0; modeloDCM.file.image_position[1] = 0.0; modeloDCM.file.image_position[2] = 0.0; } } if (base.getTag(GKDCM_SliceLocation, tag)) { //slice location std::istringstream istr(tag); istr >> modeloDCM.file.slice_location; } if (base.getTag(GKDCM_SliceThickness, tag)) { //slice thickness std::istringstream istr(tag); istr >> modeloDCM.file.slice_thickness; } if (base.getTag(GKDCM_Rows, tag) ) { std::istringstream istr(tag); istr >> modeloDCM.file.height; } if (base.getTag(GKDCM_Columns, tag) ) { std::istringstream istr(tag); istr >> modeloDCM.file.width; } if (base.getTag(GKDCM_NumberOfFrames, tag)) { std::istringstream istr(tag); istr >> modeloDCM.file.number_of_frames; } else { modeloDCM.file.number_of_frames = 1; } if (base.getTag(GKDCM_InstanceNumber, tag) ) { std::istringstream istr(tag); istr >> modeloDCM.file.instance_number; } if (base.getTag(GKDCM_ImageComments, tag)) { modeloDCM.file.file_desc = tag; } GNC::Entorno::Instance()->GetPACSController()->LiberarInstanciaDeDICOMManager(pDICOMManager); return true; } void GNC::GCS::HistoryController::RemoveFilesFromDisk(GNC::GCS::HistoryController::StringList& listOfFiles) { for (std::list::iterator it = listOfFiles.begin(); it!= listOfFiles.end(); ++it) { wxString wxPath = FROMPATH((*it)); if(wxFileExists(wxPath)) { wxRemoveFile(wxPath); } } } void GNC::GCS::HistoryController::SetThumbnail(long file_pk, int ancho, int alto, const unsigned char* imagen) { wxCriticalSectionLocker locker(*m_pCriticalSectionThumbnails); int size = ancho * alto * 3; if(size > 0) { wxSQLite3StatementBuffer bufSQL; try { bufSQL.Format("INSERT OR REPLACE INTO Thumbnails (file_pk,width,height,thumb) VALUES ('%ld','%d','%d',?);",file_pk,ancho,alto); wxSQLite3Statement stmt = m_pConexionThumbnails->PrepareStatement(bufSQL); if(stmt.IsOk()) { stmt.Bind(1, imagen, size); stmt.ExecuteUpdate(); } else { LOG_WARN("Historial", "Error al insertar en la base de datos"); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("Historial", "SetThumbnail " << ex.GetMessage().ToUTF8() << " file_pk = "<< file_pk); } } } void GNC::GCS::HistoryController::GetThumbnail(long file_pk, int& ancho, int& alto, unsigned char*& imagen) { wxSQLite3StatementBuffer bufSQL; try { bufSQL.Format("Select width, height, thumb FROM Thumbnails WHERE file_pk = '%ld';",file_pk); wxSQLite3ResultSet resultados = m_pConexionThumbnails->ExecuteQuery(bufSQL); if (resultados.NextRow()) { ancho = resultados.GetInt(wxT("width")); alto = resultados.GetInt(wxT("height")); int size = ancho*alto*3; int blobLen; const unsigned char* pbin = resultados.GetBlob(wxT("thumb"), blobLen); if(blobLen != size) { ancho = alto = 0; imagen = NULL; } else { imagen = (unsigned char*)malloc(size*sizeof(unsigned char)); memcpy(imagen, pbin, size); } } } catch (wxSQLite3Exception& ex) { LOG_ERROR("Historial", "GetThumbnail "<ExecuteQuery(ostrDelete.str().c_str()); } // ////endergion void GNC::GCS::HistoryController::SaveTask(GNC::GCS::IPersistentCommand* pTask) { if (pTask->getIdBBDD() > 0) { //update try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("UPDATE Tasks SET status='%d', error_description='%q' " "WHERE pk='%d';", (int)pTask->getStatus(), pTask->getErrorDescription().c_str(), pTask->getIdBBDD()); m_pConexion->ExecuteUpdate(bufSQL); } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "Exception updating task "<getClassUID().c_str(), pTask->serialize().c_str(), pTask->getDescription().c_str()); //begin transaction m_pConexion->Begin(); if (m_pConexion->ExecuteUpdate(bufSQL) > 0) { long idTask = (long)m_pConexion->GetLastRowId().GetValue(); pTask->setIdBBDD(idTask); const std::list& seriesId = pTask->getSeriesId(); for (std::list::const_iterator it = seriesId.begin(); it != seriesId.end(); ++it) { bufSQL.Format("Insert INTO TasksSeries(task_fk, series_fk) VALUES ('%d','%d');", idTask, (*it)); m_pConexion->ExecuteUpdate(bufSQL); } } m_pConexion->Commit(); } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "Exception adding task "<Rollback(); } } } void GNC::GCS::HistoryController::DeleteTasks(const std::list& tasks) { try { wxSQLite3StatementBuffer bufSQL; std::ostringstream ostr; ostr << "DELETE FROM Tasks WHERE pk IN ("; for (std::list::const_iterator it = tasks.begin(); it != tasks.end(); ++it) { if (it != tasks.begin()) { ostr << ","; } ostr << bufSQL.Format(" '%ld'", (*it).pk); } ostr << ");"; m_pConexion->ExecuteUpdate(ostr.str().c_str()); } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "Exception deleting task "<ExecuteScalar(bufSQL)>0) { return true; } else { return false; } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "ExistsSeriesByUID "<& tasks) { try { wxSQLite3StatementBuffer bufSQL; bufSQL.Format("SELECT Tasks.pk, Tasks.uid, Tasks.status, Tasks.error_description, Tasks.data, TasksSeries.series_fk, " "Tasks.created_time, Tasks.description " "FROM Tasks LEFT OUTER JOIN TasksSeries ON pk=task_fk " "where status in ('%d', '%d')",GNC::GCS::IPersistentCommand::Pending,GNC::GCS::IPersistentCommand::Error); wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(bufSQL); std::map mapOfTasks; while (resultados.NextRow()) { long pk = resultados.GetInt64(wxT("pk")).GetValue(); FillInTaskModel(resultados, mapOfTasks[pk]); } for (std::map::const_iterator it = mapOfTasks.begin(); it != mapOfTasks.end(); ++it) { tasks.push_back((*it).second); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "TaskModel "<& seriesPk, std::list& tasks) { try { wxSQLite3StatementBuffer bufSQL; std::ostringstream ostr; ostr << bufSQL.Format("SELECT distinct Tasks.pk, Tasks.uid, Tasks.status, Tasks.error_description, Tasks.data, TasksSeries.series_fk, " "Tasks.created_time, Tasks.description " "FROM Tasks LEFT OUTER JOIN TasksSeries ON pk=task_fk " "where status in ('%d', '%d') AND series_fk IN (", GNC::GCS::IPersistentCommand::Pending,GNC::GCS::IPersistentCommand::Error); for (std::list::const_iterator it = seriesPk.begin(); it != seriesPk.end(); ++it) { if (it != seriesPk.begin()) { ostr << ","; } ostr << bufSQL.Format(" '%ld'", (*it)); } ostr << ");"; wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostr.str().c_str()); std::map mapOfTasks; while (resultados.NextRow()) { long pk = resultados.GetInt64(wxT("pk")).GetValue(); FillInTaskModel(resultados, mapOfTasks[pk]); } for (std::map::const_iterator it = mapOfTasks.begin(); it != mapOfTasks.end(); ++it) { tasks.push_back((*it).second); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "TaskModel "<& seriesPk, std::list& tasks) { try { wxSQLite3StatementBuffer bufSQL; std::ostringstream ostr; ostr << "SELECT distinct Tasks.pk, Tasks.uid, Tasks.status, Tasks.error_description, Tasks.data, TasksSeries.series_fk, " "Tasks.created_time, Tasks.description " "FROM Tasks LEFT OUTER JOIN TasksSeries ON pk=task_fk " "where series_fk IN ("; for (std::list::const_iterator it = seriesPk.begin(); it != seriesPk.end(); ++it) { if (it != seriesPk.begin()) { ostr << ","; } ostr << bufSQL.Format(" '%ld'", (*it)); } ostr << ")"; ostr << " ORDER BY created_time ASC"; wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostr.str().c_str()); std::map mapOfTasks; while (resultados.NextRow()) { long pk = resultados.GetInt64(wxT("pk")).GetValue(); FillInTaskModel(resultados, mapOfTasks[pk]); } for (std::map::const_iterator it = mapOfTasks.begin(); it != mapOfTasks.end(); ++it) { tasks.push_back((*it).second); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "TaskModel "<& tasks) { try { wxSQLite3StatementBuffer bufSQL; std::ostringstream ostr; ostr << "SELECT distinct Tasks.pk, Tasks.uid, Tasks.status, Tasks.error_description, Tasks.data, TasksSeries.series_fk, " "Tasks.created_time, Tasks.description " "FROM Tasks LEFT OUTER JOIN TasksSeries ON pk=task_fk " "ORDER BY created_time ASC"; wxSQLite3ResultSet resultados = m_pConexion->ExecuteQuery(ostr.str().c_str()); std::map mapOfTasks; while (resultados.NextRow()) { long pk = resultados.GetInt64(wxT("pk")).GetValue(); FillInTaskModel(resultados, mapOfTasks[pk]); } for (std::map::const_iterator it = mapOfTasks.begin(); it != mapOfTasks.end(); ++it) { tasks.push_back((*it).second); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "TaskModel "<ExecuteQuery(bufSQL); while (resultados.NextRow()) { FillInTaskModel(resultados, taskModel); } } catch (wxSQLite3Exception& ex) { LOG_ERROR("BBDD", "TaskModel "<. * */ #pragma once #include #include #include #include #include #include #include class wxSQLite3Database; class wxCriticalSection; namespace GNC { class IProxyNotificadorProgreso; namespace GCS { namespace History { class EXTAPI IHistoryFilter { public: IHistoryFilter() { Enabled = false; } virtual ~IHistoryFilter() {} virtual std::string GetSQLFilter() = 0; void Enable(bool enabled) { this->Enabled = enabled; } bool IsEnabled() { return this->Enabled; } protected: bool Enabled; }; class EXTAPI StudyModalityFilter: public IHistoryFilter { public: StudyModalityFilter() {} StudyModalityFilter(const std::list& listOfModalities) { this->listOfModalities = listOfModalities; } StudyModalityFilter(const std::string& modality) { this->listOfModalities.push_back(modality); } void SetModalities(const std::list& listOfModalities) { this->listOfModalities = listOfModalities; } const std::list& GetModalities() { return listOfModalities; } virtual std::string GetSQLFilter(); protected: std::list listOfModalities; }; class EXTAPI IHistoryDateFilter: public IHistoryFilter { public: IHistoryDateFilter() {} IHistoryDateFilter(const wxDateTime& from, const wxDateTime& to) { this->from = from; this->to = to; } virtual void SetDates(const wxDateTime& from, const wxDateTime& to) { this->from = from; this->to = to; } const wxDateTime& GetFromDate() { return from; } const wxDateTime& GetToDate() { return to; } protected: wxDateTime from; wxDateTime to; }; class EXTAPI AcquisitionDateFilter: public IHistoryDateFilter { public: AcquisitionDateFilter() {} AcquisitionDateFilter(const wxDateTime& from, const wxDateTime& to): IHistoryDateFilter(from,to) {} virtual std::string GetSQLFilter(); }; class EXTAPI StudyPatientFilter: public IHistoryFilter { public: StudyPatientFilter() {} StudyPatientFilter(const std::string& pat_id) { this->pat_id = pat_id; } void SetPatientId(const std::string& pat_id) { this->pat_id = pat_id; } const std::string& GetPatientId() { return pat_id; } virtual std::string GetSQLFilter(); protected: std::string pat_id; }; class EXTAPI StudyLocationFilter: public IHistoryFilter { public: StudyLocationFilter(GNC::GCS::IHistoryController::TLocation location): Location(location) {} StudyLocationFilter() { ; } virtual std::string GetSQLFilter(); protected: GNC::GCS::IHistoryController::TLocation Location; }; } class EXTAPI HistoryController: public IHistoryController { public: typedef std::list IdList; typedef struct TaskModel { long pk; std::string uid; int status; std::string statusDescription; std::string data; std::string description; std::string created_time; IdList seriesId; TaskModel() { pk = 0; status = 0; } } TaskModel; //region "Patron singleton" public: static HistoryController* Instance(); static void FreeInstance(); /* Constructor*/ HistoryController(); HistoryController(const std::string& pathOfDataBase); protected: void InitController(const std::string& pathOfDataBase); public: virtual ~HistoryController(); bool IsOk(); bool IsReadOnly(); virtual std::string GetGinkgoDicomDir(bool barraAlFinal = false); void ReloadHistory(const std::string& pathDicomDir = "", bool tryTemp = true); static std::string GetDefaultDicomDirPath(bool ignoreConfig = false); protected: // //sincrono con la interfaz static HistoryController* m_pInstance; //endregion public: //region "metodos propios del historial" bool AddFiles(const StringList& listaPaths, TAddErrorList& errorList, std::list* insertedSeries, GNC::IProxyNotificadorProgreso* pNotificador = NULL, TAddAction action = TAA_COPY); bool UpdateFiles(const GNC::GCS::HistoryController::FileModelList& files); bool LinkFilesToSeries(long seriesPk, GNC::GCS::HistoryController::DICOMFileModelList& files, GNC::IProxyNotificadorProgreso* pNotificador = NULL); protected: bool UpdateFileModel(FileModel& fileModel); void FindOrInsertStudy(DICOMFileModel& model); void FindOrInsertSeries(DICOMFileModel& model); bool FindOrInsertFile(DICOMFileModel& model); bool FindOrLink(DICOMFileModel& model); void UpdateStudy(DICOMFileModel& model); void UpdateSeries(DICOMFileModel& model); void UpdateFile(DICOMFileModel& model); std::string GetPathOfFile(GNC::GCS::IHistoryController::TLocation location, long pk, const std::string& file_path); std::string GetPathOfFile(long file_pk); std::string GetRelativePath(const std::string& absolutePath); std::string GetAbsolutePath(const std::string& relativePath); void UpdateSeriesSummaryInfo(long series_pk); void UpdateStudySummaryInfo(long study_pk); public: SeriesModel GetSeriesModel(long series_pk); void GetDatabaseDatasetFromSeries(long series_pk, GIL::DICOM::DicomDataset& dataset); void GetSeriesModelFromUIDs(const StringList& uids, SeriesModelList& series); void GetSeriesModelFromUID(const std::string& uids, SeriesModelList& series); void GetSeriesFromStudy(long study_pk, SeriesModelList& listOfSeries); StudyModel GetStudyModel(long study_pk); void GetStudyModelFromUID(const std::string& uids, StudyModelList& studies); /** gets dicom tags from study stored in database */ void GetDatabaseDatasetFromStudy(long study_pk, GIL::DICOM::DicomDataset& dataset); void GetStudies(GNC::GCS::History::IHistoryFilter* historyFilter, StudyModelList& listOfStudies); void GetStudies(std::list& historyFilter, StudyModelList& listOfStudies); FileModel GetFrameOfReference(long series_pk); FileModel GetFrameOfReference(const std::string& series_pk); FileModel GetFileModel(long file_pk); FileModel GetFileModelFromSopInstance(const std::string& sopInstanceUID, long study_pk = -1); void GetAllPatients(GNC::GCS::HistoryController::PatientModelList& patientList); bool ExistsSeriesWithUID(const std::string& seriesUID); bool ExistsStudyWithUID(const std::string& studyUID); int GetNumberOfFiles(); /**this method take a lot of time, if you don't need verbose information, use LightFileModelList...**/ virtual void GetSeriesSortedFileModels(long series_pk, FileModelList& fileList, bool onlyFirst = false); virtual void GetSeriesSortedFileModels(long series_pk, LightFileModelList& fileList, bool onlyFirst = false); StringList GetSeriesSortedPathsByUID(const std::string& seriesUID); StringList GetSeriesSortedPaths(const std::string& series_pk); StringList GetSeriesSortedPaths(long series_pk); virtual StringList GetSeriesSopClasses(long series_pk); char GetSeriesOrientation(long series_pk); bool DeleteSeriesList(const IdList& pks); bool DeleteSopInstanceUIDs(const StringList& sopInstanceUIds); bool EmptyHistory(bool eliminarDelDisco); // //thumbnails... void SetThumbnail(long file_pk, int ancho, int alto, const unsigned char* imagen); void GetThumbnail(long file_pk, int& ancho, int& alto, unsigned char*& imagen); void DeleteThumbnails(IdList& listPks); //deprecated persistent commands are deprecated virtual void SaveTask(GNC::GCS::IPersistentCommand* pTask); virtual void DeleteTasks(const std::list& tasks); virtual bool IsPendingTasks(); virtual void GetPendingTasks(std::list& tasks); virtual void GetSeriesPendingTasks(const std::list& seriesPk, std::list& tasks); virtual void GetSeriesTasks(const std::list& seriesPk, std::list& tasks); virtual TaskModel GetTask(long idTask); virtual void GetAllTasks(std::list& tasks); // // //protected: // //region "helpers" // //devuelve false si !copia y no esta donde deberia public: bool ReadFile(DICOMFileModel& modelo,const std::string& pathAbsoluto, TAddErrorList& errorList, TAddAction action); bool ReadFile(DICOMFileModel& modelo,const std::string& pathAbsoluto, TAddErrorList& errorList); protected: void RemoveFilesFromDisk(StringList&listOfFiles); //endergion wxSQLite3Database* m_pConexion; wxSQLite3Database* m_pConexionThumbnails; wxCriticalSection* m_pCriticalSection; wxCriticalSection* m_pCriticalSectionThumbnails; bool m_readOnly; std::string m_GinkgoDicomDir; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/historytoolscontroller.cpp000066400000000000000000000132461314736454600263460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "historytoolscontroller.h" #include
    #include
    #include #include #include #include #include #include GNC::HistoryToolsController::HistoryToolsController() { } GNC::HistoryToolsController::~HistoryToolsController() { } GNC::HistoryToolsController* GNC::HistoryToolsController::Instance() { if (m_pInstance == NULL) { m_pInstance = new GNC::HistoryToolsController(); } return m_pInstance; } void GNC::HistoryToolsController::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } GNC::HistoryToolsController* GNC::HistoryToolsController::m_pInstance = 0; void GNC::HistoryToolsController::RegisterAll() { for (ToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { ; } } void GNC::HistoryToolsController::UnRegisterAll() { std::cout << "GNC::HistoryToolsController::UnRegisterAll()\n"; for (ToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { //delete (*it).second; } m_tools.clear(); } /* Registra una herramienta */ void GNC::HistoryToolsController::RegisterTool(GNC::GCS::IHistoryTool* pTool) { if (pTool == NULL) { LOG_ERROR("HistoryToolController", "null toool"); return; } ToolMap::const_iterator it = m_tools.find(pTool->ID); if (it != m_tools.end()) { LOG_ERROR("HistoryToolController", "Duplicate tool " << pTool->ID); return; } m_tools[pTool->ID] = pTool; } /* Des-Registra una herramienta */ void GNC::HistoryToolsController::UnRegisterTool(GNC::GCS::IHistoryTool* pTool) { //GTRACE("GNC::ControladorHerramientas::DesRegistrarHerramienta( Herramienta = " << pHerramienta << ")"); for (ToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { if ((*it).second == pTool) { delete (*it).second; m_tools.erase(it); break; } } } void GNC::HistoryToolsController::UnRegisterTool(GNC::GCS::IHistoryTool::UID id) { //GTRACE("GNC::ControladorHerramientas::DesRegistrarHerramienta( Herramienta = " << pHerramienta << ")"); for (ToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { if ((*it).second->ID == id) { delete (*it).second; m_tools.erase(it); break; } } } GNC::GCS::IHistoryTool* GNC::HistoryToolsController::GetTool(GNC::GCS::IHistoryTool::UID id) { GNC::GCS::IHistoryTool* pTool = NULL; ToolMap::iterator it = m_tools.find(id); if (it != m_tools.end()) { pTool = (*it).second; } return pTool; } GNC::GCS::IHistoryPanel* GNC::HistoryToolsController::GetHistoryPanel() { return GNC::GUI::HistoryPanel3::Instance(); } GNC::HistoryToolsController::ToolList GNC::HistoryToolsController::GetTools() { ToolList lista; for(ToolMap::iterator it = m_tools.begin(); it!= m_tools.end(); ++it) { lista.push_back((*it).second); } return lista; } GNC::HistoryToolsController::ToolList GNC::HistoryToolsController::GetTools(GNC::GCS::IHistoryTool::TToolFamily family) { ToolList lista; for(ToolMap::iterator it = m_tools.begin(); it!= m_tools.end(); ++it) { if ((*it).second->Family == family) { lista.push_back((*it).second); } } return lista; } void GNC::HistoryToolsController::AppendsToolInMenu(wxEvtHandler* pParent, wxMenu* pMenu, GNC::GCS::IHistoryTool::TToolFamily family) { GNC::HistoryToolsController::ToolList list = GetTools(family); for (GNC::HistoryToolsController::ToolList::const_iterator it = list.begin(); it != list.end(); ++it) { if ((*it)->Enabled()) { (*it)->AppendToolIn(pParent, pMenu); } } } void GNC::HistoryToolsController::AppendsToolInToolBar(wxGinkgoToolBar* pParent, GNC::GCS::IHistoryTool::TToolFamily family) { GNC::HistoryToolsController::ToolList list = GetTools(family); for (GNC::HistoryToolsController::ToolList::const_iterator it = list.begin(); it != list.end(); ++it) { if ((*it)->Enabled()) { (*it)->AppendToolIn(pParent); } } } void GNC::HistoryToolsController::AppendsBigToolsInToolBar(wxGinkgoToolBar* pParent) { for(ToolMap::iterator it = m_tools.begin(); it!= m_tools.end(); ++it) { if ((*it).second->Enabled()) { (*it).second->AppendToolIn(pParent, true); } } } ginkgocadx-3.8.7/cadxcore/main/controllers/historytoolscontroller.h000066400000000000000000000054561314736454600260170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include class wxGinkgoToolBar; class wxWindow; class wxBitmap; class wxEvtHandler; class wxMenu; namespace GNC { namespace GCS { class EXTAPI IHistoryPanel { public: virtual ~IHistoryPanel() {} virtual void ReloadToolBar() = 0; virtual void ReloadCombos(bool checkPurgue) = 0; virtual void RefreshSearch(bool force = false) = 0; virtual void GetSelectedSeriesPk(std::list& listOfPks) = 0; virtual wxWindow* GetWxWindow() = 0; }; } class EXTAPI HistoryToolsController { //------------------------------------------------------------------------------ //region "Patron singleton" public: static HistoryToolsController* Instance(); static void FreeInstance(); protected: HistoryToolsController(); virtual ~HistoryToolsController(); static HistoryToolsController* m_pInstance; public: typedef std::list ToolList; typedef std::map ToolMap; virtual void RegisterAll(); virtual void UnRegisterAll(); /* Registra una herramienta */ virtual void RegisterTool(GNC::GCS::IHistoryTool* tool); /* Des-Registra una herramienta */ virtual void UnRegisterTool(GNC::GCS::IHistoryTool* tool); virtual void UnRegisterTool(GNC::GCS::IHistoryTool::UID id); /*FIXME: Devuelve una copia de las herramientas registradas*/ ToolList GetTools(); ToolList GetTools(GNC::GCS::IHistoryTool::TToolFamily family); void AppendsToolInMenu(wxEvtHandler* pParent, wxMenu* pMenu, GNC::GCS::IHistoryTool::TToolFamily family); void AppendsToolInToolBar(wxGinkgoToolBar* pParent, GNC::GCS::IHistoryTool::TToolFamily family); void AppendsBigToolsInToolBar(wxGinkgoToolBar* pParent); GNC::GCS::IHistoryTool* GetTool(GNC::GCS::IHistoryTool::UID id); GNC::GCS::IHistoryPanel* GetHistoryPanel(); ToolMap m_tools; }; } ginkgocadx-3.8.7/cadxcore/main/controllers/inactivitycontroller.cpp000066400000000000000000000142401314736454600257420ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "inactivitycontroller.h" #include #include #include
    #include #include
    #include
    #include
    #include
    //this timer is to controlate user inactivity namespace GNC { namespace GCS { class TimerInactivity: public wxTimer { public: TimerInactivity() { m_active = false; m_frozen = false; GNC::GCS::Permisos::EstadoPermiso estado = GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "inactivity_time"); if (estado) { m_maxInactivity = estado.ObtenerValor() * 1000; this->Start(m_maxInactivity, true); pCountDown = new GNC::GUI::InactivityCountdownMessage(GNC::GCS::IEntorno::Instance()->GetVentanaRaiz(), _("Ginkgo CADx has detected inactivity and it will be closed in %d seconds.\nDo you want to continue?")); m_active = true; } else { pCountDown = NULL; m_maxInactivity = -1; } estado = GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "auto_close"); if (estado) { m_active = true; } } ~TimerInactivity() { } virtual void Notify() { if (GNC::GCS::ICommandController::Instance()->GetNumActiveCommands() == 0) { if (m_maxInactivity > 0) { if (!pCountDown->IsShown()) { pCountDown->Show(); } } } else { Reset(); } } virtual void Reset() { if (!m_active || !wxThread::IsMain()) { return; } if (pCountDown != NULL && pCountDown->IsShown()) { pCountDown->Show(false); } if (IsRunning()) { Stop(); if (m_maxInactivity > 0) { this->Start(m_maxInactivity, true); } } } virtual void KillNow() { if (!m_active || !wxThread::IsMain()) { return; } if (!m_frozen && GNC::GCS::ICommandController::Instance()->GetNumActiveCommands() == 0) { //kills now GNC::GCS::IEntorno::Instance()->GetVentanaPrincipal()->Close(); // } } virtual void StopMonitoring() { if (!m_active || !wxThread::IsMain()) { return; } m_frozen = true; if (pCountDown != NULL && pCountDown->IsShown()) { pCountDown->Show(false); } if (IsRunning()) { Stop(); } } virtual void StartMonitoring() { if (!m_active || !wxThread::IsMain()) { return; } m_frozen = false; if (m_maxInactivity > 0) { this->Start(m_maxInactivity, true); } } virtual void DetachForm() { pCountDown = NULL; } protected: long m_maxInactivity; bool m_active; bool m_frozen; GNC::GUI::InactivityCountdownMessage* pCountDown; }; } } // //region "Patron singleton" GNC::GCS::InactivityController* GNC::GCS::InactivityController::m_pInstance = 0; GNC::GCS::InactivityController::InactivityController() { m_pTimerInactivity = new TimerInactivity; } GNC::GCS::InactivityController::~InactivityController() { if (m_pTimerInactivity != NULL) { delete m_pTimerInactivity; m_pTimerInactivity = NULL; } } GNC::GCS::InactivityController* GNC::GCS::InactivityController::Instance() { if (m_pInstance == NULL) { m_pInstance = new GNC::GCS::InactivityController(); } return m_pInstance; } void GNC::GCS::InactivityController::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } //endregion void GNC::GCS::InactivityController::ResetsInactivity() { //resets inactivity m_pTimerInactivity->Reset(); // } void GNC::GCS::InactivityController::RestartMonitoring() { //resets inactivity m_pTimerInactivity->StartMonitoring(); // } void GNC::GCS::InactivityController::StopsMonitoring() { //resets inactivity m_pTimerInactivity->StopMonitoring(); // } void GNC::GCS::InactivityController::DetachForm() { m_pTimerInactivity->DetachForm(); } void GNC::GCS::InactivityController::KillNow() { //kills inmediatly m_pTimerInactivity->KillNow(); // } ginkgocadx-3.8.7/cadxcore/main/controllers/inactivitycontroller.h000066400000000000000000000030451314736454600254100ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include class wxAuiNotebook; namespace GNC { namespace GCS { class TimerInactivity; class EXTAPI InactivityController { //region "Patron singleton" public: static InactivityController* Instance(); static void FreeInstance(); static InactivityController* m_pInstance; //endregion //region "Interfaz de controlador de vistas" public: virtual void StopsMonitoring(); virtual void RestartMonitoring(); virtual void ResetsInactivity(); virtual void DetachForm(); virtual void KillNow(); protected: TimerInactivity* m_pTimerInactivity; InactivityController(); virtual ~InactivityController(); }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/integrationcontroller.cpp000066400000000000000000001445371314736454600261170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include "integrationcontroller.h" #include "controladorlog.h" #include "controladorextensiones.h" #include "controladoreventos.h" #include "commandcontroller.h" #include "controladorhl7.h" #include "configurationcontroller.h" #include #include #include #include #include #include
    #include
    #include
    #include
    #include
    #include
    #include #include
    #include
    #include
    #include #include #include #include
    GIL::IntegrationController* GIL::IntegrationController::m_pInstance = 0; GIL::IXMLIntegrationParser::~IXMLIntegrationParser() { } GIL::IntegrationController::IntegrationController() { GNC::GCS::ControladorEventos::Instance()->Registrar(this, GNC::GCS::Events::HL7SendRequestEvent()); GNC::GCS::Ptr spanish(new GIL::ParserXMLSpanish()); std::list keys = spanish->GetKeys(); for (std::list::iterator it = keys.begin(); it != keys.end(); ++it) { RegisterParser((*it), spanish); } GNC::GCS::Ptr english(new GIL::ParserXMLEnglish()); keys = english->GetKeys(); for (std::list::iterator it = keys.begin(); it != keys.end(); ++it) { RegisterParser((*it), english); } } GIL::IntegrationController::~IntegrationController() { GNC::GCS::ControladorEventos::Instance()->DesRegistrar(this); m_mapParsers.clear(); } GIL::IntegrationController* GIL::IntegrationController::Instance() { if (m_pInstance == NULL) { m_pInstance = new IntegrationController(); } return m_pInstance; } void GIL::IntegrationController::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } void GIL::IntegrationController::RegisterParser(const std::string& xmlKey, const GNC::GCS::Ptr& pParser) { #ifndef NDEBUG // we only allow one controller per key, everything else is a bug in the code assert(m_mapParsers.find(xmlKey) == m_mapParsers.end()); #else if (m_mapParsers.find(xmlKey) != m_mapParsers.end()) { wxString msg = wxT("Ignoring duplicate parser key: ") + xmlKey; wxMessageBox(msg, "Error"); return; } #endif m_mapParsers[xmlKey] = pParser; } void GIL::IntegrationController::UnRegisterParser(const std::string& xmlKey) { if (m_mapParsers.find(xmlKey) != m_mapParsers.end()) { m_mapParsers.erase(m_mapParsers.find(xmlKey)); } } bool GIL::IntegrationController::Process(GIL::IntegrationModelList& models) { unsigned int numProcessed = 0; typedef GIL::IntegrationModelList::iterator TIteradorModelos; for (TIteradorModelos itModelo = models.begin(); itModelo != models.end(); ++itModelo) { GNC::GCS::Ptr modelo = (*itModelo); if (modelo->atendido) { numProcessed++; continue; } else { modelo->atendido = true; } if(modelo->accion == GIL::IModeloIntegracion::TA_Dicomizar) { LOG_STAT(ANON_STAT_INT_DICOMIZE) //se busca el dicomizador del modulo indicado, habra un mapa que transformara sid en uids de modulo std::string uidModulo(""); if (modelo->idPlantilla != "") { uidModulo = GetUID(modelo->idPlantilla); if (GNC::ControladorExtensiones::Instance()->ObtenerModulo(uidModulo) == NULL) { throw GIL::IntegrationException("No existe el modulo asociado", "Modelo", true); } } try { GNC::GUI::wxWizardImportacionGinkgo ib(NULL, modelo, uidModulo); ib.ShowModal(); } catch(GIL::DICOM::I2DException& i) { LOG_ERROR("GIL/WF/Importar", (const std::string)i); } catch(std::exception& ex1) { LOG_ERROR("GIL/WF/Importar", std::string("Error al importar: ") + ex1.what()); } catch (...) { LOG_ERROR("GIL/WF/Importar", std::string("Error al importar: Error interno")); } GNC::Entorno::Instance()->GetVentanaPrincipal()->MostrarVentana(); numProcessed++; } else if(modelo->accion == GIL::IModeloIntegracion::TA_Obtener) { LOG_STAT(ANON_STAT_INT_RETRIEVE) //if wado retrieve... if (!modelo->Files.empty()) { //retrieve files downloading as wado files using acquirefromurl command GADAPI::AcquireFromURLCommandParameters* pCmdParams = new GADAPI::AcquireFromURLCommandParameters(modelo->Files); GADAPI::AcquireFromURLCommand* pCmd = new GADAPI::AcquireFromURLCommand(pCmdParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync("Downloading files...",pCmd, NULL); GNC::Entorno::Instance()->GetVentanaPrincipal()->MostrarVentana(); numProcessed++; } else { GADAPI::PACSDownloadCommandParams * pParams = NULL; std::string tag; if (!modelo->TagsDICOMOverwrite.getTag("0008|0052", tag)) { //show only acquisition form GNC::Entorno::Instance()->GetVentanaPrincipal()->MostrarVentana(); GNC::GUI::DialogoAdquisicion::Instance()->Show(modelo->GlobalVariables.GetValue(GKDI_PATIENT_ID), modelo->GlobalVariables.GetValue(GKDI_GLOBAL_PACS_RETRIEVE_SID)); numProcessed++; } else { GIL::DICOM::DicomDataset base = modelo->TagsDICOMOverwrite; std::string qrlevel, uid; if (base.getTag(GKDCM_QueryRetrieveLevel,qrlevel)) { if (qrlevel == "STUDY" && base.getTag(GKDCM_StudyInstanceUID, uid) && GNC::GCS::HistoryController::Instance()->ExistsStudyWithUID(uid)) { GNC::GUI::DownloadAgainDialog dlg(GNC::Entorno::Instance()->GetVentanaRaiz(), uid, false); int answer = dlg.ShowModal(); if (answer != wxID_OK) { continue; } } else if (qrlevel == "SERIES" && base.getTag(GKDCM_SeriesInstanceUID, uid) && GNC::GCS::HistoryController::Instance()->ExistsSeriesWithUID(uid)) { GNC::GUI::DownloadAgainDialog dlg(GNC::Entorno::Instance()->GetVentanaRaiz(), uid, false); int answer = dlg.ShowModal(); if (answer != wxID_OK) { continue; } } else { LOG_INFO("GIL/WF/Importar", "Unknown GKDCM_QueryRetrieveLevel '"<< qrlevel << "'"); } } else { LOG_INFO("GIL/WF/Importar", "unable to aquire GKDCM_QueryRetrieveLevel"); } pParams = new GADAPI::PACSDownloadCommandParams(modelo->GlobalVariables.GetValue(GKDI_GLOBAL_PACS_RETRIEVE_SID), base); GADAPI::PACSDownloadCommand* pComandoPACS = new GADAPI::PACSDownloadCommand(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync("Descargando PACS...",pComandoPACS, NULL); GNC::Entorno::Instance()->GetVentanaPrincipal()->MostrarVentana(); numProcessed++; } } } else if(modelo->accion == GIL::IModeloIntegracion::TA_Open) { LOG_STAT(ANON_STAT_INT_OPEN) for (GIL::IModeloIntegracion::ListOfPaths::iterator itFile = modelo->Files.begin(); itFile != modelo->Files.end(); ++itFile) { wxFileName fileName(wxString::FromUTF8((*itFile).c_str())); if (fileName.IsRelative()) { fileName.MakeAbsolute(); } GNC::Entorno::Instance()->GetVentanaPrincipal()->MostrarVentana(); GNC::Entorno::Instance()->GetVentanaPrincipal()->EjecutarParametro(fileName.GetFullPath()); } numProcessed++; } } return numProcessed == models.size(); } typedef std::list TMapStack; typedef std::map TSeqMap; void Parse(std::ostringstream& os, GIL::IModeloIntegracion* integrationModel, wxXmlNode* root, GIL::IStudyModel* study, int studyIdx, GIL::ISeriesModel* serie, int serieIdx, int imageIdx, TMapStack& mapStack, TSeqMap& seqMap) { if (integrationModel == NULL || root == NULL) { return; } for (wxXmlNode* child = root->GetChildren(); child != NULL; child = child->GetNext()) { if (child->GetName() == wxT("seg")) { for (wxXmlNode* subChild = child->GetChildren(); subChild != NULL; subChild = subChild->GetNext()) { if ( (subChild->GetType() == wxXML_CDATA_SECTION_NODE) || (subChild->GetType() == wxXML_TEXT_NODE) ) { os << std::string(subChild->GetContent().ToUTF8()); } else { if (subChild->GetName() == wxT("idx")) { std::string content(subChild->GetAttribute(wxT("expr"), wxEmptyString).ToUTF8()); long acc = 0; std::string::size_type lastOpIdx = 0; std::string::size_type currOpIdx; int currOp = ' '; std::string term; bool pending = true; do { std::string::size_type currOpIdx1 = content.find('+', lastOpIdx); std::string::size_type currOpIdx2 = content.find('*', lastOpIdx); if (currOpIdx1 < currOpIdx2) { currOp = '+'; currOpIdx = currOpIdx1; } else { currOpIdx = currOpIdx2; if (currOpIdx2 == std::string::npos) { currOp = ' '; pending = false; } else { currOp = '*'; } } term = content.substr(lastOpIdx, currOpIdx); long termVal = 0; if (term == "study:idx") { termVal = studyIdx; } else if (term == "serie:idx") { termVal = serieIdx; } else if (term == "image:idx") { termVal = imageIdx; } else { std::string::size_type dotPos = term.find('.'); if (dotPos != std::string::npos) { std::string seqName = term.substr(0, dotPos); std::string seqMethod = term.substr(dotPos + 1); for (TSeqMap::iterator it = seqMap.begin(); it != seqMap.end(); ++it) { const std::string& siName = (*it).first; if (seqName == siName) { long& val = (*it).second; if (seqMethod == "curval") { termVal = val; break; } else if (seqMethod == "nextval") { termVal = ++val; break; } else { break; } } } } else { // Should be a integer std::istringstream is (term); is >> termVal; } } switch (currOp) { case '*': acc *= termVal; break; default: acc += termVal; break; } lastOpIdx = currOpIdx + 1; } while (pending); os << acc; } else if (subChild->GetName() == wxT("repl")) { std::string key = std::string(subChild->GetAttribute(wxT("key"), wxEmptyString).ToUTF8()); bool notFound = true; TMapStack::iterator it = mapStack.begin(); while (it != mapStack.end() && notFound) { if ( (*it)->Contains(key) ) { os << (*it)->GetValue(key); notFound = false; } ++it; } } } } os << "\x0D"; } else if (child->GetName() == wxT("for.study")) { int idx = 0; for (GIL::IModeloIntegracion::TListOfStudies::iterator it = integrationModel->Studies.begin(); it != integrationModel->Studies.end(); ++it) { const GIL::IMapOfVarsModel& vars = (*it).MapOfVars; mapStack.push_back(&vars); Parse(os, integrationModel, child, &(*it), idx++, NULL, 0, 0, mapStack, seqMap); mapStack.pop_back(); } } else if (child->GetName() == wxT("for.serie")) { if (study != NULL) { int idx = 0; for (GIL::IStudyModel::TListOfSeries::iterator it = study->Series.begin(); it != study->Series.end(); ++it) { const GIL::IMapOfVarsModel& vars = (*it).MapOfVars; mapStack.push_back(&vars); Parse(os, integrationModel, child, study, studyIdx, &(*it), idx++, 0, mapStack, seqMap); mapStack.pop_back(); } } } else if (child->GetName() == wxT("for.image")) { if (serie != NULL) { int idx = 0; for (GIL::ISeriesModel::TListOfImages::iterator it = serie->Images.begin(); it != serie->Images.end(); ++it) { const GIL::IMapOfVarsModel& vars = (*it).MapOfVars; mapStack.push_back(&vars); Parse(os, integrationModel, child, study, studyIdx, serie, serieIdx, idx++, mapStack, seqMap); mapStack.pop_back(); } } } else if (child->GetName() == wxT("sequence")) { std::string key(child->GetAttribute(wxT("key"), wxT("")).ToUTF8()); if (key.size() > 0) { std::string val(child->GetAttribute(wxT("val"), wxT("0")).ToUTF8()); long keyVal = 0; std::istringstream is (val); is >> keyVal; seqMap[key] = keyVal; } } } } std::string GIL::IntegrationController::GetMessageFromIntegrationModel(GNC::GCS::Ptr& integrationModel) { if (integrationModel) { if ( integrationModel->messageTemplate.size() == 0) { // GNC::GCS::Permisos::EstadoPermiso perm = GNC::GCS::IControladorPermisos::Instance()->Get("core.integracion", "integration_template"); integrationModel->messageTemplate = perm.GetRawValue(); if (integrationModel->messageTemplate.empty()) { LOG_ERROR("IntegrationController", "core.integracion.integration_template permission is not active"); } } wxStringInputStream is(wxString::FromUTF8(integrationModel->messageTemplate.c_str())); wxXmlDocument doc; if (doc.Load(is, wxT("UTF-8"))) { wxXmlNode* root = doc.GetRoot(); if (root != NULL && root->GetName() == wxT("msg")) { std::ostringstream os; std::string val; // Add variables const GNC::ControladorExtensiones::ListaModulos& listaModulos = GNC::ControladorExtensiones::Instance()->Modulos(); std::string hl7_timestamp(wxDateTime::Now().Format(wxT("%Y%m%d%H%M%S")).ToUTF8()); std::string epoch_timestamp; { time_t tstamp = std::time(NULL); std::ostringstream os; os << tstamp; epoch_timestamp = os.str(); } integrationModel->GlobalVariables.InsertVariable(GKDI_MESSAGE_EPOCH_TIMESTAMP, epoch_timestamp, "Message Epoch Timestamp"); integrationModel->GlobalVariables.InsertVariable(GKDI_MESSAGE_HL7_TIMESTAMP, hl7_timestamp, "Message HL7 Timestamp"); integrationModel->GlobalVariables.InsertVariable(GKDI_GINKGOCADX_MODULE_TID, integrationModel->idPlantilla, "Ginkgo CADx module TID"); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE", "IDOrganizacionReceptora", val); integrationModel->GlobalVariables.InsertVariable(GKDI_GINKGOCADX_CONF_RECEIVING_ORG_ID, val); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","IDSistemaPeticionario", val); integrationModel->GlobalVariables.InsertVariable(GKDI_GINKGOCADX_CONF_PETITIONER_SYS_ID, val); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","IDAplicacionRellenadora", val); integrationModel->GlobalVariables.InsertVariable(GKDI_GINKGOCADX_CONF_FILLER_APP_ID, val); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/Estacion","CentroNombre", val); integrationModel->GlobalVariables.InsertVariable(GKDI_GINKGOCADX_CONF_ORGANIZATION_NAME, val); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/Estacion","CentroId", val); integrationModel->GlobalVariables.InsertVariable(GKDI_GINKGOCADX_CONF_ORGANIZATION_ID, val); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","IDGinkgoApplication", val); integrationModel->GlobalVariables.InsertVariable(GKDI_GINKGOCADX_CONF_GINKGO_APP_ID, val); integrationModel->GlobalVariables.InsertVariable(GKDI_GLOBAL_PACS_LOCAL_AET, GNC::Entorno::Instance()->GetDicomLocalAET()); try { std::string uidModulo = GetUID(integrationModel->idPlantilla); integrationModel->GlobalVariables.InsertVariable(GKDI_GINKGOCADX_MODULE_UID, uidModulo, "Ginkgo CADx module UID"); GNC::ControladorExtensiones::IteradorConstanteListaModulos it = listaModulos.find(uidModulo); if (it != listaModulos.end()) { integrationModel->GlobalVariables.InsertVariable(GKDI_GINKGOCADX_MODULE_NAME, (*it).second->GetImporterDescription(), "Ginkgo CADx module name"); } } catch(...) {} TSeqMap seqMap; TMapStack mapStack; mapStack.push_back(& (integrationModel->GlobalVariables) ); Parse(os, integrationModel.GetRawPointer(), root, NULL, 0, NULL, 0, 0, mapStack, seqMap); mapStack.clear(); seqMap.clear(); return os.str(); } } } return ""; } // Event listener realization void GIL::IntegrationController::ProcesarEvento(GNC::GCS::Events::IEvent *rawEvent) { if (rawEvent->GetCodigoEvento() == ginkgoEVT_Core_HL7SendRequest) { GNC::GCS::Events::HL7SendRequestEvent* pEvt = dynamic_cast(rawEvent); if (pEvt != NULL) { GIL::HL7::ControladorHL7 ch(GIL::HL7::ControladorHL7::TP_MLLP); ch.EnviarMensaje(GIL::HL7::Message::FromER7(pEvt->GetMessage()), true); } } } std::string GIL::IntegrationController::GetUID(const std::string& idPlantilla) const { std::string uid; wxString plantillawx(idPlantilla.c_str(), wxConvUTF8); wxStringTokenizer tkid(plantillawx,wxString::FromUTF8("^")); size_t numTokens = tkid.CountTokens(); if (numTokens != 3) { std::ostringstream os; os << _Std("Malformed template Id (") << idPlantilla.c_str() << _Std("):\nIs not a valid HL7 identifier (ie: code^description^namespaceId)"); throw IntegrationException(os.str(),"PID"); } std::string codigo(tkid.GetNextToken().ToUTF8()); std::string descripcion(tkid.GetNextToken().ToUTF8()); std::string namespaceid(tkid.GetNextToken().ToUTF8()); GNC::ControladorExtensiones* pCE = GNC::ControladorExtensiones::Instance(); for (GNC::ControladorExtensiones::IteradorConstanteListaModulos it = pCE->Modulos().begin(); it != pCE->Modulos().end(); ++it) { const GNC::GCS::IModuleController* m = (*it).second; LOG_TRACE("HL7", "Parsing module: " << ", " << m->GetUID().c_str() ); std::string entradaConf = "TUID" + m->GetUID(); LOG_TRACE("HL7", "EntradaConf = TUID" << m->GetUID().c_str() ); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE/Plantillas", entradaConf, uid); LOG_TRACE("HL7", "tuid = " << uid); wxStringTokenizer tkz(wxString::FromUTF8(uid.c_str()), wxT(";")); while (tkz.HasMoreTokens()) { wxString token = tkz.GetNextToken(); wxStringTokenizer tkidmodulo(token,wxString::FromUTF8("^")); numTokens = tkidmodulo.CountTokens(); if (numTokens != 3) { std::ostringstream os; os << _Std("Id malformed template in the module configuration") << "(" << uid.c_str() << _Std("):\nIs not a valid HL7 identifier (ie: code^description^namespaceId)"); throw IntegrationException(os.str(),"PID"); } std::string codigo_m(tkidmodulo.GetNextToken().ToUTF8()); std::string descripcion_m(tkidmodulo.GetNextToken().ToUTF8()); std::string namespaceid_m(tkidmodulo.GetNextToken().ToUTF8()); if ( (codigo_m == codigo) && (namespaceid_m == namespaceid) ) { std::ostringstream os; LOG_TRACE("HL7", "Found entry:" << m->GetUID().c_str()); os << m->GetUID(); return os.str(); } } } throw IntegrationException(_Std("Template Id unsupported (") + (idPlantilla) + _Std("):\nCheck the configuration and attach it if necessary"),"PID"); } std::string GIL::IntegrationController::GetUIDModulo(const std::string& idPlantilla) const { std::string uidModulo = GetUID(idPlantilla); std::string sidModulo(""); const GNC::ControladorExtensiones::ListaModulos& listaModulos = GNC::ControladorExtensiones::Instance()->Modulos(); for(GNC::ControladorExtensiones::IteradorConstanteListaModulos itModulos = listaModulos.begin(); itModulos != listaModulos.end(); ++itModulos) { std::ostringstream os; os << itModulos->first; if(os.str() == uidModulo) { return itModulos->second->GetUID(); } } return sidModulo; } std::string GIL::IntegrationController::GetIdPlantilla(const std::string& uidModulo) const { GNC::GCS::IModuleController* pModuleController = GNC::ControladorExtensiones::Instance()->ObtenerModulo(uidModulo); if (pModuleController == NULL) { std::ostringstream os; os << _Std("Unknown module Id (") << uidModulo.c_str(); throw IntegrationException(os.str(),"PID"); } std::string entradaConf = "TUID" + pModuleController->GetUID(); std::string templateId; GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE/Plantillas", entradaConf, templateId); return templateId; } /* Parsea la cadena XML y construye el modelo de integracion. Los parametros no encontrados se asignan por defecto segun lo especificado en la configuracion global */ void GIL::IntegrationController::ParsearModeloIntegracion(GIL::IntegrationModelList& modelos, const std::string& xmlString, const wxString& configurationFilePath) const { GTRACE("GIL::HL7::ControladorHL7::ParsearModeloIntegracion( modelo, [\n" << xmlString.c_str() << "\n] )"); wxXmlDocument xml; std::string xpp; // XML Pretty Printed for extended information info. wxStringInputStream flujoEntrada(wxString::FromUTF8(xmlString.c_str())); if (!xml.Load(flujoEntrada,wxT("UTF 8"))) { throw IntegrationException(_Std("Empty configuration"), "CONF"); } wxXmlNode* raiz = xml.GetRoot(); if (raiz == NULL) { throw IntegrationException(_Std("Empty configuration"), "CONF"); } else { wxString xmlPrettyPrint; wxStringOutputStream wsos; if (xml.Save(wsos, 1)) { xpp = wsos.GetString().ToUTF8(); LOG_TRACE("Integration", "Parsing XML Integration: " << std::endl << xpp.c_str()); } } std::string parserKey (raiz->GetName().ToUTF8()); if (m_mapParsers.find(parserKey) != m_mapParsers.end()) { m_mapParsers.find(parserKey)->second->ParseIntegrationXML(modelos, raiz); wxFileName absoluteFile(configurationFilePath.c_str()); if (absoluteFile.FileExists()) { absoluteFile = absoluteFile.GetPath(); } for (GIL::IntegrationModelList::iterator it = modelos.begin(); it != modelos.end(); ++it) { GNC::GCS::Ptr& modelo = (*it); //if action is open... absolutize files if (modelo->accion == GIL::IModeloIntegracion::TA_Open) { GIL::IModeloIntegracion::ListOfPaths absoluteFiles; for (GIL::IModeloIntegracion::ListOfPaths::iterator itFile = modelo->Files.begin(); itFile != modelo->Files.end(); ++itFile) { wxFileName fileName(wxString::FromUTF8((*itFile).c_str())); if (fileName.IsRelative() && absoluteFile.IsOk()) { fileName.MakeAbsolute(absoluteFile.GetFullPath()); } std::string pathStd(fileName.GetFullPath().ToUTF8()); absoluteFiles.push_back(pathStd); } modelo->Files = absoluteFiles; } } } else { std::ostringstream ostr; ostr << _Std("XML Parser Not Found. Key=") << parserKey << " " << xpp; throw IntegrationException(ostr.str(), "CONF"); } } std::string GIL::IntegrationController::ParsesModelFromURL(const wxString& url) const { LOG_STAT(ANON_STAT_INT_URL) //parse ginkgo cloud uris if (url.StartsWith(wxT("ginkgocadx://cloud:"))) { GNC::GCS::CloudGetCommandParams* pParams = new GNC::GCS::CloudGetCommandParams(std::string(url.SubString(19, url.size() - 1).ToUTF8()), true); GNC::GCS::CloudCommand* pCmd = new GNC::GCS::CloudCommand(pParams); GNC::CommandController::Instance()->ProcessAsync("Downloading",pCmd, NULL); return ""; } // ginkgocadx://?pacs=dicom%3A%2F%2FDCM4CHEE%40ironman%3A11112%3Fmethod%3Dget%26mode%3Dseries&action=retrieve&level=STUDY&query=0020%7C000D%3A1.3.6.1.4.1.39470.1.1.3.0.1.2.2259150805.5724.1353416100.533&aid=JIMENA // ginkgocadx://?pacs=dicom%3A%2F%2FDCM4CHEE%40ironman%3A11112%3Fmethod%3Dget%26mode%3Dseries&action=dicomize&petition-id=asdf&scope=AA&patient-id=234234&episode-number=asewr&query // ginkgocadx://?pacs=dicom%3A%2F%2FDCM4CHEE%40ironman%3A11112%3Fmethod%3Dget%26mode%3Dseries&action=dicomize&patient-id=234234&query=0010%7C0040%3AM&query=0010%7C0010%3ADoe%5Ejoe%20Charl // ginkgocadx://?action=retrieve&pacs=test&level=STUDY&query=0020|000D:1.2.3.4.5.6 de un pacs id // ginkgocadx://?action=retrieve&level=STUDY&query=0020|000D:1.2.3.4.5.6 | del pacs por defecto /* */ // ginkgocadx://?action=retrieve&level=STUDY&query=0020|000D:1.2.3.4.5.6&aid=JIMENA wxURI uri(url); wxString query = uri.GetQuery(); std::string xmlIntegration; if (!query.IsEmpty()) { std::map parameters; std::list listOfQueries; //query is an special multivalued parameter... wxStringTokenizer tknzr(query, wxT("&")); while (tknzr.HasMoreTokens()) { wxString token = tknzr.GetNextToken(); if (token.StartsWith(wxT("query="))) { //special multivalued parameter... int pos = token.Find(wxT("=")); listOfQueries.push_back(std::string(wxURI::Unescape(token.SubString(pos+1, token.size() - 1)).ToUTF8())); } else { if (token.Contains(wxT("="))) { int pos = token.Find(wxT("=")); parameters[std::string(token.SubString(0, pos-1).Lower().ToUTF8())] = std::string(wxURI::Unescape(token.SubString(pos+1, token.size() - 1)).ToUTF8()); } else { parameters[std::string(token.Lower().ToUTF8())] = ""; } } } wxXmlDocument doc; doc.SetFileEncoding(wxT("UTF-8")); doc.SetRoot(new wxXmlNode(NULL,wxXML_ELEMENT_NODE,wxT("gnkworkflows"))); //pacs parsing... //pacs configuration from url is simple, you can configure: //pacs=pacsid //pacs=dicom://AET@host:port&method=&mode= //pacs=dicom://DCM4CHEE@172.26.0.33:11112?method=WADO&wadourl=http://172.26.0.33:18080/wado => pacs=dicom://DCM4CHEE@172.26.0.33:11112?method=WADO&urlWado=http%3A%2F%2F172.26.0.33%3A18080%2Fwado wxString pacsSid; if (parameters.find("pacs") != parameters.end()) { wxString pacsParameter = wxString::FromUTF8(parameters["pacs"].c_str()); if (pacsParameter.StartsWith(wxT("dicom://"))) { wxXmlNode* pacsNode = new wxXmlNode(doc.GetRoot(), wxXML_ELEMENT_NODE, wxT("pacs")); //randomSid pacsSid = wxString::Format(wxT("temppacs%d"), (int) rand()); pacsNode->AddAttribute(wxT("sid"),pacsSid); //parse url... wxURI pacsUri(pacsParameter); if (pacsUri.GetUserInfo().IsEmpty() || pacsUri.GetServer().IsEmpty()) { throw IntegrationException("Error in pacs url format: dicom://AET@host:port", "URLPARSER"); } pacsNode->AddAttribute(wxT("aet"), pacsUri.GetUserInfo()); pacsNode->AddAttribute(wxT("hostname"), pacsUri.GetServer()); if (!pacsUri.GetPort().IsEmpty()) { pacsNode->AddAttribute(wxT("port"), pacsUri.GetPort()); } //tokenize query & wxStringTokenizer dicomTknzr(pacsUri.GetQuery(), wxT("&")); while (dicomTknzr.HasMoreTokens()) { wxString token = dicomTknzr.GetNextToken(); if (token.StartsWith(wxT("method="))) { int pos = token.Find(wxT("=")); pacsNode->AddAttribute(wxT("retrieve-method"),wxURI::Unescape(token.SubString(pos+1, token.size() - 1))); } if (token.StartsWith(wxT("mode="))) { int pos = token.Find(wxT("=")); pacsNode->AddAttribute(wxT("retrieve-mode"),wxURI::Unescape(token.SubString(pos+1, token.size() - 1))); } if (token.StartsWith(wxT("wadourl="))) { int pos = token.Find(wxT("=")); pacsNode->AddAttribute(wxT("wado-url"),wxURI::Unescape(token.SubString(pos+1, token.size() - 1))); } } } else { pacsSid = pacsParameter; } } //action parsing... if (parameters.find("action") != parameters.end()) { wxXmlNode* workFlowNode = new wxXmlNode(doc.GetRoot(), wxXML_ELEMENT_NODE, wxT("gnkworkflow")); if (parameters["action"]=="retrieve") { //retrieve //action=retrieve&aid=JIMENA&query=group|element:value workFlowNode->AddAttribute(wxT("action"), wxT("retrieve")); if (!pacsSid.IsEmpty()) { workFlowNode->AddAttribute(wxT("pacs-retrieve-sid"), pacsSid); } //retrieve.. //parse level and query... if (parameters.find("level") != parameters.end()) { wxXmlNode* qrLevel = new wxXmlNode(workFlowNode, wxXML_ELEMENT_NODE, wxT("query-retrieve-level")); qrLevel->AddAttribute(wxT("value"), wxString::FromUTF8(parameters["level"].c_str())); } //aid if (parameters.find("aid") != parameters.end()) { wxXmlNode* qrLevel = new wxXmlNode(workFlowNode, wxXML_ELEMENT_NODE, wxT("hce")); qrLevel->AddAttribute(wxT("aid"), wxString::FromUTF8(parameters["aid"].c_str())); } //parse query... //query=0020|000D:1.2.3.4.5.6 // for (std::list::iterator it = listOfQueries.begin(); it != listOfQueries.end(); ++it) { wxString queryString = wxString::FromUTF8((*it).c_str()); int colonPosition = queryString.Find(wxT(":")); if (colonPosition == -1) { throw IntegrationException("Malformated query string: group|element:value", "URLPARSER"); } wxXmlNode* queryNode = new wxXmlNode(workFlowNode, wxXML_ELEMENT_NODE, wxT("metadata")); queryNode->AddAttribute(wxT("code"), wxT("DICOM")); queryNode->AddAttribute(wxT("key"), queryString.SubString(0, colonPosition-1)); queryNode->AddAttribute(wxT("value"), queryString.SubString(colonPosition+1, queryString.size() - 1)); } } else if(parameters["action"] == "dicomize") { //dicomize... //action=dicomize&petition-id=asdf&scope=AA&patient-id=234234&episode-number=asewr&query... //action workFlowNode->AddAttribute(wxT("action"), wxT("dicomize")); //pacs if (!pacsSid.IsEmpty()) { workFlowNode->AddAttribute(wxT("pacs-store-sid"), pacsSid); } //petition-id if (parameters.find("petition-id") != parameters.end()) { workFlowNode->AddAttribute(wxT("petition-id"), wxString::FromUTF8(parameters["petition-id"].c_str())); } //scope if (parameters.find("scope") != parameters.end()) { workFlowNode->AddAttribute(wxT("scope"), wxString::FromUTF8(parameters["scope"].c_str())); } //patient... if (parameters.find("patient-id") != parameters.end()) { wxXmlNode* patientNode = new wxXmlNode(workFlowNode, wxXML_ELEMENT_NODE, wxT("patient")); wxXmlNode* idNode = new wxXmlNode(patientNode, wxXML_ELEMENT_NODE, wxT("id")); idNode->AddAttribute(wxT("code"),wxT("PI")); idNode->AddAttribute(wxT("value"), wxString::FromUTF8(parameters["patient-id"].c_str())); //episode-number if (parameters.find("episode-number") != parameters.end()) { wxXmlNode* episodeNumberNode = new wxXmlNode(patientNode, wxXML_ELEMENT_NODE, wxT("episode-number")); new wxXmlNode(episodeNumberNode, wxXML_TEXT_NODE,wxT("content"),wxString::FromUTF8(parameters["episode-number"].c_str())); } } else { throw IntegrationException("patient-id parameter is required in dicomization process", "URLPARSER"); } //parse query... //query=0020|000D:1.2.3.4.5.6 // for (std::list::iterator it = listOfQueries.begin(); it != listOfQueries.end(); ++it) { wxString queryString = wxString::FromUTF8((*it).c_str()); int colonPosition = queryString.Find(wxT(":")); if (colonPosition == -1) { throw IntegrationException("Malformated query string: group|element:value", "URLPARSER"); } wxXmlNode* queryNode = new wxXmlNode(workFlowNode, wxXML_ELEMENT_NODE, wxT("metadata")); queryNode->AddAttribute(wxT("code"), wxT("DICOM")); queryNode->AddAttribute(wxT("key"), queryString.SubString(0, colonPosition-1)); queryNode->AddAttribute(wxT("value"), queryString.SubString(colonPosition+1, queryString.size() - 1)); } } else { throw IntegrationException("Unsupported action parameter", "URLPARSER"); } } wxStringOutputStream out; doc.Save(out); xmlIntegration = std::string(out.GetString().ToUTF8()); LOG_DEBUG("ItegrationController", "Generated XML\n"<. * */ #pragma once #include #include #include #include #include #include #include namespace GNC { namespace GCS { class IModuleController; } } namespace GIL { class EXTAPI IntegrationException : public GNC::GCS::IException { public: IntegrationException(const std::string& msg, const std::string& component="Modelo", bool fatal = true) throw() : GNC::GCS::IException(msg, component, fatal) {} }; class EXTAPI IXMLIntegrationParser { public: virtual ~IXMLIntegrationParser(); virtual std::list GetKeys() = 0; virtual void ParseIntegrationXML(GIL::IntegrationModelList& modelos, wxXmlNode* pRoot) = 0; }; class EXTAPI IntegrationController : public GNC::GCS::IEventsObserver { public: static IntegrationController* Instance(); static void FreeInstance(); bool Process(GIL::IntegrationModelList& models); // Event listener realization virtual std::string GetMessageFromIntegrationModel(GNC::GCS::Ptr& integrationModel); virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt); /* devuelve el uid de modulo a partir del pid indicado*/ virtual std::string GetUID(const std::string& idPlantilla) const; virtual std::string GetUIDModulo(const std::string& idPlantilla) const; virtual std::string GetIdPlantilla(const std::string& uidModulo) const; //parsers... void RegisterParser(const std::string& xmlKey, const GNC::GCS::Ptr& pParser); void UnRegisterParser(const std::string& xmlKey); /* Parsea la cadena XML y construye el modelo de integracion. Los parametros no encontrados se asignan por defecto segun lo especificado en la configuracion global */ virtual void ParsearModeloIntegracion(GIL::IntegrationModelList& modelos, const std::string& xmlString, const wxString& relativePath = wxEmptyString) const; /* Parses ginkgocadx:// url */ virtual std::string ParsesModelFromURL(const wxString& url) const; protected: IntegrationController(); ~IntegrationController(); protected: static IntegrationController* m_pInstance; typedef std::map > TMapIntegrationXMLParsers; TMapIntegrationXMLParsers m_mapParsers; }; } ginkgocadx-3.8.7/cadxcore/main/controllers/log4cplus/000077500000000000000000000000001314736454600226625ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/controllers/log4cplus/guiappender.cpp000066400000000000000000000112761314736454600257000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include //#include #include #include "guiappender.h" #include #define MAX_LOG_BUFFER_SIZE 30 using namespace dcmtk::log4cplus::helpers; using namespace dcmtk; class MutexScopedLock { public: MutexScopedLock(dcmtk::log4cplus::thread::Mutex& mutex): m_mutex(mutex) { m_mutex.lock(); } ~MutexScopedLock() { m_mutex.unlock(); } private: dcmtk::log4cplus::thread::Mutex& m_mutex; }; gnkLog4cplus::GUIAppender* gnkLog4cplus::GUIAppender::m_pInstancia = NULL; gnkLog4cplus::GUIAppender* gnkLog4cplus::GUIAppender::Instance() { if (m_pInstancia == NULL) { m_pInstancia = new GUIAppender(); } return m_pInstancia; } void gnkLog4cplus::GUIAppender::FreeInstance() { if (m_pInstancia != NULL) { delete m_pInstancia; m_pInstancia = NULL; } } gnkLog4cplus::GUIAppender::GUIAppender(bool logToStdErr_, bool immediateFlush_) : logToStdErr(logToStdErr_), immediateFlush(immediateFlush_), m_pLogger(NULL), llmCache(log4cplus::getLogLevelManager()) { Init(); } gnkLog4cplus::GUIAppender::GUIAppender(const log4cplus::helpers::Properties properties) : Appender(properties), logToStdErr(false), immediateFlush(false), m_pLogger(NULL), m_Logs(), llmCache(log4cplus::getLogLevelManager()) { Init(); } gnkLog4cplus::GUIAppender::GUIAppender(const GUIAppender& o) : dcmtk::log4cplus::helpers::SharedObject(o), dcmtk::log4cplus::Appender(), logToStdErr(o.logToStdErr), immediateFlush(o.immediateFlush), m_pLogger(o.m_pLogger), m_Logs(o.m_Logs), llmCache(o.llmCache) { Init(); } void gnkLog4cplus::GUIAppender::Init() { log4cplus::tostringstream dateTimeFormatStream; dateTimeFormatStream << _Std("%Y/%m/%d %H:%M:%S.%q").c_str(); datetimeFormat = dateTimeFormatStream.str().c_str(); } gnkLog4cplus::GUIAppender::~GUIAppender() { destructorImpl(); m_pInstancia = NULL; } void gnkLog4cplus::GUIAppender::close() { MutexScopedLock lock( m_mutex ); closed = true; m_pLogger = NULL; m_Logs.clear(); } void gnkLog4cplus::GUIAppender::clear() { MutexScopedLock lock( m_mutex ); m_Logs.clear(); } void gnkLog4cplus::GUIAppender::Attach(GNC::GCS::Logging::ILogger* pLogger) { if (this->closed) { return; } MutexScopedLock lock( m_mutex ); m_pLogger = pLogger; if (pLogger != NULL) { for (ListaLogs::const_iterator it = m_Logs.begin(); it != m_Logs.end(); ++it) { pLogger->Append(*it); } } } void gnkLog4cplus::GUIAppender::append(const log4cplus::spi::InternalLoggingEvent& e) { if (this->closed) { return; } MutexScopedLock lock( m_mutex ); log4cplus::tostringstream formattedLog; layout->formatAndAppend(formattedLog, e); m_Logs.push_back( GNC::GCS::Logging::LogEvent( e.getLoggerName().c_str(), llmCache.toString(e.getLogLevel()).c_str(), e.getTimestamp().getFormattedTime(datetimeFormat.c_str(), false).c_str(), e.getMessage().c_str(), formattedLog.str().c_str(), e.getThread().c_str() ) ); if (m_pLogger != NULL) { m_pLogger->Append(m_Logs.back()); } if (m_Logs.size() > MAX_LOG_BUFFER_SIZE) { m_Logs.pop_front(); } } ginkgocadx-3.8.7/cadxcore/main/controllers/log4cplus/guiappender.h000066400000000000000000000041751314736454600253450ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include "logdefines.h" namespace gnkLog4cplus { class GUIAppender : public dcmtk::log4cplus::Appender { public: static GUIAppender* Instance(); static void FreeInstance(); // Methods virtual void close(); virtual void clear(); void Attach(GNC::GCS::Logging::ILogger* pLogger); private: void Init(); protected: typedef std::list ListaLogs; // Ctors GUIAppender(bool logToStdErr = false, bool immediateFlush = false); GUIAppender(const dcmtk::log4cplus::helpers::Properties properties); GUIAppender(const GUIAppender& o); // Dtor ~GUIAppender(); virtual void append(const dcmtk::log4cplus::spi::InternalLoggingEvent& event); // Data bool logToStdErr; /** * Immediate flush means that the underlying output stream * will be flushed at the end of each append operation. */ bool immediateFlush; GNC::GCS::Logging::ILogger* m_pLogger; ListaLogs m_Logs; dcmtk::log4cplus::LogLevelManager& llmCache; dcmtk::log4cplus::tstring datetimeFormat; static GUIAppender* m_pInstancia; dcmtk::log4cplus::thread::Mutex m_mutex; }; } ginkgocadx-3.8.7/cadxcore/main/controllers/log4cplus/logdefines.h000066400000000000000000000037741314736454600251650ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include namespace GNC { namespace GCS { namespace Logging { class LogEvent { public: LogEvent() {} LogEvent(const std::string& lg, const std::string& ll, const std::string& ts, const std::string& m, const std::string& fm, const std::string& th) : logger(lg), level(ll), timestamp(ts), msg(m), thread(th), formattedmsg(fm) { } LogEvent(const LogEvent& o) { (*this) = o; } LogEvent& operator = (const LogEvent& o) { logger = o.logger; level = o.level; timestamp = o.timestamp; msg = o.msg; formattedmsg = o.formattedmsg; thread = o.thread; return *this; } ~LogEvent() {} std::string logger; std::string level; std::string timestamp; std::string msg; std::string thread; std::string formattedmsg; }; class ILogger : public GNC::GCS::ILockable { public: ILogger() {} virtual ~ILogger() {} virtual void Append(const LogEvent& le) = 0; }; } } } ginkgocadx-3.8.7/cadxcore/main/controllers/modalitysettingscontroller.cpp000066400000000000000000000633161314736454600271720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include "modalitysettingscontroller.h" #include #include #include #include
    #include
    #include
    #include
    #include #include #include #include #include
    #include
    #define MS_DOCUMENT_ROOT wxT("modality-settings") #define PROPERTY_NODE wxT("property") #define PROPERTY_KEY wxT("key") #define PROPERTY_VALUE wxT("value") #define DMS_ROOT wxT("def-mod-settings") #define DMS_ATT_MODALITY wxT("modality") #define DMS_ATT_INITIAL_WL wxT("initial-wl") #define DMS_ATT_INTERPOLATION wxT("interpolation-mode") #define DMS_ATT_INT_NEAREST wxT("nearest-neighbour") #define DMS_ATT_LINEAR wxT("linear") #define DMS_ATT_CUBIC wxT("cubic") #define WLS_ROOT wxT("window-levels") #define WL_ROOT wxT("window-level") #define WL_ATT_WINDOW wxT("window") #define WL_ATT_LEVEL wxT("level") #define WL_ATT_LABEL wxT("label") #define AS_ROOT wxT("annotation-settings") #define AN_NODE wxT("annotation") #define AN_ATT_POS wxT("position") #define AN_ATT_VALUE wxT("value") ///////////////////////////////////////////////////////////// GNC::GCS::AnnotationSettings::AnnotationSettings() { //default annotation settings... { /* Paciente: ${0010|0020:?} // {PatientId} Id Paciente: ${0010|0010:?} // {PatientName} */ std::ostringstream ostr; ostr << _Std("Patient") << ": ${0010|0010:?}${NEWLINE}" << _Std("Patient ID") << ": ${0010|0020:?}"; annotation[TP_TopLeft] = ostr.str(); } { /* ${0010|0040:?} ${0010|0030} ${0010,1010} // {Sex} {BirthDate} {PatientAge} ${0010|1030:?} Kg ${0010|1020:?} m. // {PatientWeight} {PatientSize} ${0008|1030} // {Study Description} ${0008|0020} ${0008|0030} // {StudyDate} {StudyTime} ${0008|103E} // {SeriesDescription} Modalidad: ${0008|0060} // {Modality} */ std::ostringstream ostr; ostr << "${0010|0040:?} ${0010|0030::date} ${0010,1010}${NEWLINE}${0010|1030:?} Kg ${0010|1020:?} m.${NEWLINE}${0008|1030}${NEWLINE}${0008|0020::date} ${0008|0030::time}${NEWLINE}${0008|103e}${NEWLINE}" << _Std("Modality") << ": ${0008|0060}"; annotation[TP_TopRight] = ostr.str(); } { /* Imagen: ${SLICE.HEIGHT} x ${SLICE.WIDTH} ${SLICE.WL.FULLTEXT} Corte: ${SLICE.IDX} de ${SLICE.COUNT} Volumen: ${VOLUME.IDX} ${ANATOMICAL.REGION}${SLICE.VOXEL.SIZE} */ std::ostringstream ostr; ostr << _Std("Dimensions") << ": ${SLICE.WIDTH} x ${SLICE.HEIGHT}${NEWLINE}${SLICE.WL.FULLTEXT}${NEWLINE}${SLICE.IDX.FULLTEXT}${NEWLINE}${SLICE.THICKNESS.FULLTEXT}${NEWLINE}${SLICE.LOCATION.FULLTEXT}${NEWLINE}${SLICE.LATERALITY}${NEWLINE}${SLICE.VOXEL.SIZE}"; annotation[TP_BottomLeft] = ostr.str(); } { /* ${0008|0021} {0008|0031} // {SeriesDate} {Seriestime} ${0070|0081} // {ImageDescription} ${VIEW.COORDLABELS} Hecho con Ginkgo CADx Pro */ wxString appName ( wxString::FromUTF8(GNC::GCS::IEntorno::Instance()->GetApplicationName().c_str())); wxString madewith( wxString::Format(_("Made with %s"), appName.c_str())); std::ostringstream ostr; ostr << "${0008|0021::date} ${0008|0031::time}${NEWLINE}${0070|0081}${NEWLINE}${VIEW.COORDLABELS}${NEWLINE}" << madewith.ToUTF8(); annotation[TP_BottomRight] = ostr.str(); } } GNC::GCS::AnnotationSettings::AnnotationSettings(wxXmlNode* wlNode) { for (wxXmlNode* child = wlNode->GetChildren(); child != NULL; child = child->GetNext()) { if (child->GetName().CmpNoCase(AN_NODE) == 0) { long position = 0; child->GetAttribute(AN_ATT_POS, wxT("0")).ToLong(&position); if (position < TP_NumPos) { annotation[position] = child->GetAttribute(AN_ATT_VALUE, wxEmptyString).ToUTF8(); } } else { LOG_ERROR("HangingProtocol", "error deserializing WindowLevelSetting, unknown node " << child->GetName().ToUTF8()); } } } GNC::GCS::AnnotationSettings::AnnotationSettings(const AnnotationSettings& other) { for (int i = 0; i < TP_NumPos; ++i) { annotation[i] = other.annotation[i]; } } GNC::GCS::AnnotationSettings::~AnnotationSettings() { } wxXmlNode* GNC::GCS::AnnotationSettings::serialize() { wxXmlNode* wlNode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, AS_ROOT); for (int i = 0; i < TP_NumPos; ++i) { wxXmlNode* annotationNode = new wxXmlNode(wlNode, wxXML_ELEMENT_NODE, AN_NODE); annotationNode->AddAttribute(AN_ATT_POS, wxString::Format(wxT("%d"), (int) i)); annotationNode->AddAttribute(AN_ATT_VALUE, wxString::FromUTF8(annotation[i].c_str())); } return wlNode; } std::string GNC::GCS::AnnotationSettings::getAnnotation(TAnnotationPosition pos) const { return annotation[pos]; } void GNC::GCS::AnnotationSettings::setAnnotation(TAnnotationPosition pos, const std::string& annotation) { this->annotation[pos] = annotation; } ///////////////////////////////////////////////////////////// GNC::GCS::WindowLevelSetting::WindowLevelSetting(): window(0), level(127), label(_Std("Default")) { } GNC::GCS::WindowLevelSetting::WindowLevelSetting(double window, double level, const std::string& label) { this->window = window; this->level = level; this->label = label; } GNC::GCS::WindowLevelSetting::WindowLevelSetting(wxXmlNode* wlNode) { wlNode->GetAttribute(WL_ATT_WINDOW, wxEmptyString).ToDouble(&this->window); wlNode->GetAttribute(WL_ATT_LEVEL, wxEmptyString).ToDouble(&this->level); this->label = wlNode->GetAttribute(WL_ATT_LABEL, wxEmptyString).ToUTF8(); } GNC::GCS::WindowLevelSetting::WindowLevelSetting(const WindowLevelSetting& other) { window = other.window; level = other.level; label = other.label; } GNC::GCS::WindowLevelSetting::~WindowLevelSetting() { } wxXmlNode* GNC::GCS::WindowLevelSetting::serialize() { wxXmlNode* wlNode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, WL_ROOT); wlNode->AddAttribute(WL_ATT_WINDOW, wxString::Format(wxT("%lf"), this->window)); wlNode->AddAttribute(WL_ATT_LEVEL, wxString::Format(wxT("%lf"), this->level)); wlNode->AddAttribute(WL_ATT_LABEL, wxString::FromUTF8(this->label.c_str())); return wlNode; } double GNC::GCS::WindowLevelSetting::getWindow() const { return window; } double GNC::GCS::WindowLevelSetting::getLevel() const { return level; } const std::string& GNC::GCS::WindowLevelSetting::getLabel() const { return label; } std::string GNC::GCS::WindowLevelSetting::toString() const { std::ostringstream ostr; ostr << std::setiosflags(std::ios::fixed) << std::setprecision(2); ostr << "("; ostr << window; ostr << "/"; ostr << level; ostr << ")"; ostr << label; return ostr.str(); } void GNC::GCS::WindowLevelSetting::setWindow(double window) { this->window = window; } void GNC::GCS::WindowLevelSetting::setLevel(double level) { this->level = level; } void GNC::GCS::WindowLevelSetting::setLabel(const std::string& label) { this->label = label; } ///////////////////////////////////////////////////// GNC::GCS::DefaultModalitySettings::DefaultModalitySettings(): annotationSettings(new AnnotationSettings()) { this->interpolationMode = TIM_LINEAR; } GNC::GCS::DefaultModalitySettings::DefaultModalitySettings(wxXmlNode* defaultSettingsNode): interpolationMode(TIM_LINEAR), annotationSettings(new AnnotationSettings()) { this->modality = defaultSettingsNode->GetAttribute(DMS_ATT_MODALITY, wxEmptyString).ToUTF8(); this->initialWindowLevelLabel = defaultSettingsNode->GetAttribute(DMS_ATT_INITIAL_WL, wxEmptyString).ToUTF8(); wxString strInterpolation = defaultSettingsNode->GetAttribute(DMS_ATT_INTERPOLATION, wxEmptyString); if (strInterpolation.CompareTo(DMS_ATT_INT_NEAREST) == 0) { interpolationMode = TIM_NEAREST_NEIGHBOUR; } else if (strInterpolation.CompareTo(DMS_ATT_LINEAR) == 0) { interpolationMode = TIM_LINEAR; } else if (strInterpolation.CompareTo(DMS_ATT_CUBIC) == 0) { interpolationMode = TIM_CUBIC; } for (wxXmlNode* child = defaultSettingsNode->GetChildren(); child != NULL; child = child->GetNext()) { if (child->GetName().CmpNoCase(WLS_ROOT) == 0) { //layouts... for (wxXmlNode* wlChild = child->GetChildren(); wlChild != NULL; wlChild = wlChild->GetNext()) { if (wlChild->GetName().CmpNoCase(WL_ROOT) == 0) { GNC::GCS::Ptr pWL(new WindowLevelSetting(wlChild)); this->addWindowLevel(pWL); } } } else if (child->GetName().CmpNoCase(AS_ROOT) == 0) { //annotation settings GNC::GCS::Ptr pAnot(new AnnotationSettings(child)); this->setAnnotationSettings(pAnot); } else { LOG_ERROR("HangingProtocol", "error deserializing DefaultModalitySettings, unknown node " << child->GetName().ToUTF8()); } } } GNC::GCS::DefaultModalitySettings::DefaultModalitySettings(const DefaultModalitySettings& other) { this->modality = other.modality; this->initialWindowLevelLabel = other.initialWindowLevelLabel; this->interpolationMode = other.interpolationMode; this->annotationSettings = GNC::GCS::Ptr(new GNC::GCS::AnnotationSettings(*other.annotationSettings)); for (GNC::GCS::DefaultModalitySettings::TListOfWLSettings::const_iterator it = other.listOfWLSettings.begin(); it != other.listOfWLSettings.end(); ++it) { if ((*it).IsValid()) { GNC::GCS::Ptr settings(new GNC::GCS::WindowLevelSetting(*(*it))); this->listOfWLSettings.push_back(settings); } } } GNC::GCS::DefaultModalitySettings::~DefaultModalitySettings() { } wxXmlNode* GNC::GCS::DefaultModalitySettings::serialize() { wxXmlNode* defaultSettingsNode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, DMS_ROOT); defaultSettingsNode->AddAttribute(DMS_ATT_MODALITY, wxString::FromUTF8(this->modality.c_str())); defaultSettingsNode->AddAttribute(DMS_ATT_INITIAL_WL, wxString::FromUTF8(this->initialWindowLevelLabel.c_str())); wxString strInterpolation; switch (interpolationMode) { case TIM_NEAREST_NEIGHBOUR: strInterpolation = DMS_ATT_INT_NEAREST; break; case TIM_LINEAR: strInterpolation = DMS_ATT_LINEAR; break; case TIM_CUBIC: strInterpolation = DMS_ATT_CUBIC; break; } defaultSettingsNode->AddAttribute(DMS_ATT_INTERPOLATION, strInterpolation ); wxXmlNode* wlSettingsNode = new wxXmlNode(defaultSettingsNode, wxXML_ELEMENT_NODE, WLS_ROOT); for (GNC::GCS::DefaultModalitySettings::TListOfWLSettings::const_iterator it = listOfWLSettings.begin(); it != listOfWLSettings.end(); ++it) { if ((*it).IsValid()) { wlSettingsNode->AddChild((*it)->serialize()); } } defaultSettingsNode->AddChild(annotationSettings->serialize()); return defaultSettingsNode; } std::string GNC::GCS::DefaultModalitySettings::getDefaultWindowLevelLabel() { return _Std("Default"); } std::string GNC::GCS::DefaultModalitySettings::getAutocalculateWindowLevelLabel() { return _Std("Autocalculate"); } const GNC::GCS::DefaultModalitySettings::TListOfWLSettings& GNC::GCS::DefaultModalitySettings::getWLSettings() const { return listOfWLSettings; } const std::string& GNC::GCS::DefaultModalitySettings::getModality() const { return modality; } const std::string& GNC::GCS::DefaultModalitySettings::getInitialWindowLevelLabel() const { return initialWindowLevelLabel; } GNC::GCS::DefaultModalitySettings::TInterpolationMode GNC::GCS::DefaultModalitySettings::getInterpolationMode() const { return interpolationMode; } const GNC::GCS::Ptr& GNC::GCS::DefaultModalitySettings::getAnnotationSettings() const { return annotationSettings; } void GNC::GCS::DefaultModalitySettings::setAnnotationSettings(const GNC::GCS::Ptr& pSettings) { if (pSettings.IsValid()) { annotationSettings = pSettings; } } void GNC::GCS::DefaultModalitySettings::addWindowLevel(const GNC::GCS::Ptr& wlSetting) { if (wlSetting.IsValid()) { listOfWLSettings.push_back(wlSetting); } } void GNC::GCS::DefaultModalitySettings::clearWindowLevels() { listOfWLSettings.clear(); } void GNC::GCS::DefaultModalitySettings::setModality(const std::string& modality) { this->modality = modality; } void GNC::GCS::DefaultModalitySettings::setInitialWindowLevelLabel(const std::string& label) { this->initialWindowLevelLabel = label; } void GNC::GCS::DefaultModalitySettings::setInterpolationMode(TInterpolationMode mode) { this->interpolationMode = mode; } ///////////////////////////////////////////////////// /** Controller for hanging protocols */ GNC::GCS::ModalitySettingsController* GNC::GCS::ModalitySettingsController::Instance() { if (m_pInstance == NULL) { m_pInstance = new ModalitySettingsController(); } return m_pInstance; } void GNC::GCS::ModalitySettingsController::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } GNC::GCS::ModalitySettingsController::ModalitySettingsController() { LoadFromConfiguration(); } GNC::GCS::ModalitySettingsController::~ModalitySettingsController() { } GNC::GCS::ModalitySettingsController* GNC::GCS::ModalitySettingsController::m_pInstance = NULL; void GNC::GCS::ModalitySettingsController::LoadDefaultModalitySettings() { //basic modality settings.... if (modalitySettings.find("CT") == modalitySettings.end()) { GNC::GCS::Ptr modSettings(new GNC::GCS::DefaultModalitySettings()); modSettings->setModality("CT"); { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(300,35,_Std("SPINAL"))); modSettings->addWindowLevel(wlSettings); } { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(100,50,_Std("CRANIUM"))); modSettings->addWindowLevel(wlSettings); } { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(1800,400,_Std("BONE"))); modSettings->addWindowLevel(wlSettings); } { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(3600,1000,_Std("CRANIUM BONE"))); modSettings->addWindowLevel(wlSettings); } { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(400,40,_Std("MEDIASTINUM"))); modSettings->addWindowLevel(wlSettings); } { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(1500,-500,_Std("LUNG"))); modSettings->addWindowLevel(wlSettings); } { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(2200,200,_Std("BREAST"))); modSettings->addWindowLevel(wlSettings); } { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(2000,350,_Std("VERTEBRA"))); modSettings->addWindowLevel(wlSettings); } addModalitySettings(modSettings); } if (modalitySettings.find("MR") == modalitySettings.end()) { GNC::GCS::Ptr modSettings(new GNC::GCS::DefaultModalitySettings()); modSettings->setModality("MR"); { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(1600,678,_Std("ANGIO"))); modSettings->addWindowLevel(wlSettings); } { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(150,500,_Std("CT CRANIUM"))); modSettings->addWindowLevel(wlSettings); } { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(750,400,_Std("T1 CRANIUM"))); modSettings->addWindowLevel(wlSettings); } { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(563,33,_Std("T2 CRANIUM"))); modSettings->addWindowLevel(wlSettings); } { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(2030,1245,_Std("KNEE"))); modSettings->addWindowLevel(wlSettings); } addModalitySettings(modSettings); } if (modalitySettings.find("CR") == modalitySettings.end()) { GNC::GCS::Ptr modSettings(new GNC::GCS::DefaultModalitySettings()); modSettings->setModality("CR"); addModalitySettings(modSettings); } if (modalitySettings.find("US") == modalitySettings.end()) { GNC::GCS::Ptr modSettings(new GNC::GCS::DefaultModalitySettings()); modSettings->setModality("US"); addModalitySettings(modSettings); } if (modalitySettings.find("MG") == modalitySettings.end()) { GNC::GCS::Ptr modSettings(new GNC::GCS::DefaultModalitySettings()); modSettings->setModality("MG"); addModalitySettings(modSettings); } if (modalitySettings.find("NM") == modalitySettings.end()) { GNC::GCS::Ptr modSettings(new GNC::GCS::DefaultModalitySettings()); modSettings->setModality("NM"); addModalitySettings(modSettings); } if (modalitySettings.find("RF") == modalitySettings.end()) { GNC::GCS::Ptr modSettings(new GNC::GCS::DefaultModalitySettings()); modSettings->setModality("RF"); addModalitySettings(modSettings); } if (modalitySettings.find("SC") == modalitySettings.end()) { GNC::GCS::Ptr modSettings(new GNC::GCS::DefaultModalitySettings()); modSettings->setModality("SC"); addModalitySettings(modSettings); } if (modalitySettings.find("XA") == modalitySettings.end()) { GNC::GCS::Ptr modSettings(new GNC::GCS::DefaultModalitySettings()); modSettings->setModality("XA"); addModalitySettings(modSettings); } if (modalitySettings.find("OT") == modalitySettings.end()) { GNC::GCS::Ptr modSettings(new GNC::GCS::DefaultModalitySettings()); modSettings->setModality("OT"); addModalitySettings(modSettings); } if (modalitySettings.find("PT") == modalitySettings.end()) { GNC::GCS::Ptr modSettings(new GNC::GCS::DefaultModalitySettings()); modSettings->setModality("PT"); addModalitySettings(modSettings); } } const GNC::GCS::ModalitySettingsController::TMapOfModalitySettings& GNC::GCS::ModalitySettingsController::getModalitySettingsMap() { return this->modalitySettings; } void GNC::GCS::ModalitySettingsController::addModalitySettings(const GNC::GCS::Ptr& settings) { if (settings.IsValid()) { this->modalitySettings[settings->getModality()] = settings; } } void GNC::GCS::ModalitySettingsController::clearModalitySettings() { this->modalitySettings.clear(); } GNC::GCS::Ptr GNC::GCS::ModalitySettingsController::getModalitySettings(const std::string& modality) { GNC::GCS::Ptr ptr; if (modalitySettings.find(modality) != modalitySettings.end()) { ptr = modalitySettings[modality]; } return ptr; } void GNC::GCS::ModalitySettingsController::StoreModalitySettingsConfiguration() { //serialization... wxXmlDocument doc; wxXmlNode* root = new wxXmlNode(NULL, wxXML_ELEMENT_NODE,MS_DOCUMENT_ROOT); doc.SetRoot(root); for (TMapOfModalitySettings::const_iterator it = this->modalitySettings.begin(); it != this->modalitySettings.end(); ++it) { root->AddChild((*it).second->serialize()); } wxMemoryOutputStream out; doc.SetFileEncoding(wxT("UTF-8")); doc.Save(out,0); char* vectorWidgets = new char[out.GetLength()]; out.CopyTo(vectorWidgets,out.GetLength()); GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/ModalitySettings","DefaultModalitySettings", std::string(vectorWidgets, out.GetLength())); delete[] vectorWidgets; } void GNC::GCS::ModalitySettingsController::LoadFromConfiguration() { this->modalitySettings.clear(); LoadDefaultModalitySettings(); //Deserialize... std::string serializedValue; // silence the log about missing environment variables in modality settings auto oldLogLevel = wxLog::GetLogLevel(); wxLog::SetLogLevel(wxLOG_Error); GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/ModalitySettings","DefaultModalitySettings", serializedValue); wxLog::SetLogLevel(oldLogLevel); if (!serializedValue.empty()) { wxString wxSerializedValue = wxString::FromUTF8(serializedValue.c_str()); wxStringInputStream istream(wxSerializedValue); wxXmlDocument doc; if (doc.Load(istream)) { wxXmlNode* root = doc.GetRoot(); if (root != NULL && root->GetName().CmpNoCase(MS_DOCUMENT_ROOT) == 0) { for (wxXmlNode* modalitySettingsNode = root->GetChildren(); modalitySettingsNode != NULL; modalitySettingsNode = modalitySettingsNode->GetNext()) { if (modalitySettingsNode->GetName().CmpNoCase(DMS_ROOT) == 0) { GNC::GCS::Ptr modalitySettings(new DefaultModalitySettings(modalitySettingsNode)); addModalitySettings(modalitySettings); } } } } else { LOG_ERROR("ModalitySettingsController", "Error deserializing modality settings"); } } } ginkgocadx-3.8.7/cadxcore/main/controllers/modalitysettingscontroller.h000066400000000000000000000126261314736454600266350ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include class wxXmlNode; class wxSizer; class wxWindow; class wxSizerItem; namespace GNC { namespace GCS { class IVista; class Matcher; /** * Annotations settings */ class AnnotationSettings { public: typedef enum TAnnotationPosition { TP_TopLeft = 0, TP_TopRight, TP_BottomLeft, TP_BottomRight, TP_NumPos } TAnnotationPosition; AnnotationSettings(); AnnotationSettings(wxXmlNode* node); AnnotationSettings(const AnnotationSettings& other); ~AnnotationSettings(); /** serialize to XML */ wxXmlNode* serialize(); std::string getAnnotation(TAnnotationPosition pos) const; void setAnnotation(TAnnotationPosition pos, const std::string& annotation); protected: std::string annotation[TP_NumPos]; }; /** * window level setting */ class WindowLevelSetting { public: WindowLevelSetting(); WindowLevelSetting(double window, double level, const std::string& label); WindowLevelSetting(wxXmlNode* node); WindowLevelSetting(const WindowLevelSetting& other); ~WindowLevelSetting(); /** serialize to XML */ wxXmlNode* serialize(); double getWindow() const; double getLevel() const; const std::string& getLabel() const; std::string toString() const; void setWindow(double window); void setLevel(double level); void setLabel(const std::string& label); protected: double window; double level; std::string label; }; /** * default modality settings */ class DefaultModalitySettings { public: typedef enum TInterpolationMode { TIM_NEAREST_NEIGHBOUR, TIM_LINEAR, TIM_CUBIC } TInterpolationMode; typedef std::list > TListOfWLSettings; DefaultModalitySettings(); DefaultModalitySettings(wxXmlNode* node); DefaultModalitySettings(const DefaultModalitySettings& other); ~DefaultModalitySettings(); /** serialize to XML */ wxXmlNode* serialize(); static std::string getDefaultWindowLevelLabel(); static std::string getAutocalculateWindowLevelLabel(); const TListOfWLSettings& getWLSettings() const; const std::string& getModality() const; const std::string& getInitialWindowLevelLabel() const; TInterpolationMode getInterpolationMode() const; const GNC::GCS::Ptr& getAnnotationSettings() const; void setAnnotationSettings(const GNC::GCS::Ptr& pSettings); void addWindowLevel(const GNC::GCS::Ptr& wlSetting); void clearWindowLevels(); void setModality(const std::string& modality); void setInitialWindowLevelLabel(const std::string& label); void setInterpolationMode(TInterpolationMode mode); protected: std::string modality; std::string initialWindowLevelLabel; TInterpolationMode interpolationMode; TListOfWLSettings listOfWLSettings; GNC::GCS::Ptr annotationSettings; }; /** modality settings controller class */ class ModalitySettingsController { public: /** modality settings map */ typedef std::map > TMapOfModalitySettings; /** Singleton method */ static ModalitySettingsController* Instance(); /** Free singleton */ static void FreeInstance(); const TMapOfModalitySettings& getModalitySettingsMap(); void addModalitySettings(const GNC::GCS::Ptr& settings); void clearModalitySettings(); GNC::GCS::Ptr getModalitySettings(const std::string& modality); /** stores modalitySettings list */ void StoreModalitySettingsConfiguration(); protected: /** Creation method */ ModalitySettingsController(); void LoadDefaultModalitySettings(); /** Destruction method */ ~ModalitySettingsController(); /** Load from configuration */ void LoadFromConfiguration(); /** singleton attribute */ static ModalitySettingsController* m_pInstance; /** visualization modality settings */ TMapOfModalitySettings modalitySettings; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/pacscontroller.cpp000066400000000000000000002323431314736454600245130ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "dcmtk/dicomimg2dcm.h" #include "dcmtk/dicomservers.h" #include "dcmtk/dicomservice.h" #include "dcmtk/dicomnetclient.h" #include "dcmtk/dicomfindassociation.h" #include "dcmtk/dicommoveassociation.h" #include "dcmtk/dicomgetassociation.h" #include "dcmtk/dicomstoreassociation.h" #include "dcmtk/dicomprintassociation.h" #include "dcmtk/dicomcustomassociation.h" #include #include #include #include #include #include #include "pacscontroller.h" #include #include #include #include
    #include #include #include #include #include
    #include
    #include
    /* curl stuff */ #include #ifdef verify #define MACRO_QUE_ESTORBA verify #undef verify #endif #include #include #include #ifdef MACRO_QUE_ESTORBA #define verify MACRO_QUE_ESTORBA #endif namespace GIL { namespace DICOM { wxCSConv GetConv(const std::string& Charset) { wxCSConv wxConv(wxFONTENCODING_ISO8859_1); if (Charset == "ISO_IR 192" || Charset == "ISO_IR 6" || Charset == "ISO_IR 138") { wxConv = wxCSConv(wxFONTENCODING_UTF8); } else if (Charset == "ISO_IR 100") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_1); } else if (Charset == "ISO_IR 101") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_2); } else if (Charset == "ISO_IR 109") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_3); } else if (Charset == "ISO_IR 110") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_4); } else if (Charset == "ISO_IR 148") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_9); } else if (Charset == "ISO_IR 144") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_5); } else if (Charset == "ISO_IR 127") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_6); } else if (Charset == "ISO_IR 126") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_7); } else if (Charset == "ISO_IR 138") { wxConv = wxCSConv(wxFONTENCODING_ISO8859_8); } return wxConv; } //helper compare instances bool compare_instances (std::pair first, std::pair second) { return first.first < second.first; } PACSController* PACSController::m_pInstance = NULL; PACSController::PACSController() { m_pServiceInstance = NULL; } PACSController::~PACSController() { //std::cout << "PACSController destruyendose" << std::endl; //std::cout << "PACSController destruido" << std::endl; } PACSController* PACSController::Instance() { if (m_pInstance == NULL) { m_pInstance = new PACSController(); } return m_pInstance; } void PACSController::FreeInstance() { if (m_pInstance != NULL) { m_pInstance->StopServer(); delete m_pInstance; m_pInstance = NULL; } //se desregistran los codecs dcmtk! DJDecoderRegistration::cleanup(); DcmRLEDecoderRegistration::cleanup(); //purgar temp PurgarDirectorioTemporal(); } void PACSController::buildDicomDir() { } bool PACSController::LeerDicomDir(const std::string& pathDicomDir, IModeloDicom* pModelo) { if(pModelo == NULL || !DICOMManager::EsDicom(pathDicomDir)) { return false; } DcmDicomDir dicomdir(pathDicomDir.c_str()); DcmDirectoryRecord * root = &(dicomdir.getRootRecord()); DcmDirectoryRecord * PatientRecord = NULL; DcmDirectoryRecord * StudyRecord = NULL; DcmDirectoryRecord * SeriesRecord = NULL; DcmDirectoryRecord * FileRecord = NULL; OFString tmpString; wxFileName fileNameDicomDir(FROMPATH(pathDicomDir)); std::string basePath; basePath = TOPATH(fileNameDicomDir.GetPath()); if(root != NULL) { while (((PatientRecord = root->nextSub(PatientRecord)) != NULL)) { OFString uidPaciente, nombrePaciente, fechaNacimiento, sexo; PatientRecord->findAndGetOFString(DCM_PatientID,uidPaciente); PatientRecord->findAndGetOFString(DCM_PatientName,nombrePaciente); PatientRecord->findAndGetOFString(DCM_PatientBirthDate, fechaNacimiento); PatientRecord->findAndGetOFString(DCM_PatientSex, sexo); pModelo->InsertarPaciente(uidPaciente.c_str(),nombrePaciente.c_str(),fechaNacimiento.c_str(),sexo.c_str()); while (((StudyRecord = PatientRecord->nextSub(StudyRecord)) != NULL)) { OFString uidEstudio, descripcionEstudio, fechaEstudio, horaEstudio, doctor, accesionNumber; StudyRecord->findAndGetOFString(DCM_StudyInstanceUID, uidEstudio); StudyRecord->findAndGetOFString(DCM_StudyDescription, descripcionEstudio); StudyRecord->findAndGetOFString(DCM_StudyDate, fechaEstudio); StudyRecord->findAndGetOFString(DCM_StudyTime, horaEstudio); StudyRecord->findAndGetOFString(DCM_ReferringPhysicianName, doctor); StudyRecord->findAndGetOFString(DCM_AccessionNumber, accesionNumber); pModelo->InsertarEstudio(uidPaciente.c_str(),uidEstudio.c_str(),accesionNumber.c_str(), descripcionEstudio.c_str(),"",fechaEstudio.c_str(),horaEstudio.c_str(),doctor.c_str()); while (((SeriesRecord = StudyRecord->nextSub(SeriesRecord)) != NULL)) { OFString uidSerie,modalidadSerie,fechaSerie,horaSerie,descripcionSerie,numeroSerie,doctorSerie; SeriesRecord->findAndGetOFString(DCM_SeriesInstanceUID, uidSerie); SeriesRecord->findAndGetOFString(DCM_Modality, modalidadSerie); SeriesRecord->findAndGetOFString(DCM_SeriesDate, fechaSerie); SeriesRecord->findAndGetOFString(DCM_SeriesTime, horaSerie); SeriesRecord->findAndGetOFString(DCM_SeriesDescription, descripcionSerie); SeriesRecord->findAndGetOFString(DCM_SeriesNumber, numeroSerie); SeriesRecord->findAndGetOFString(DCM_ReferringPhysicianName, doctorSerie); pModelo->InsertarSerie(uidEstudio.c_str(),uidSerie.c_str(),modalidadSerie.c_str(),fechaSerie.c_str(),horaSerie.c_str(),descripcionSerie.c_str(),numeroSerie.c_str(),doctorSerie.c_str()); while(((FileRecord = SeriesRecord->nextSub(FileRecord)) != NULL)) { if(FileRecord->findAndGetOFStringArray(DCM_DirectoryRecordType,tmpString).good() && (tmpString == "IMAGE" || tmpString == "ENCAP DOC")) { if(FileRecord->findAndGetOFStringArray(DCM_ReferencedFileID,tmpString).good()) { OFString uidImagen,instanceNumber; FileRecord->findAndGetOFString(DCM_ReferencedSOPInstanceUIDInFile, uidImagen); FileRecord->findAndGetOFString(DCM_InstanceNumber, instanceNumber); wxString currentPath = FROMPATH(basePath); wxString wxStr = FROMPATH(tmpString); wxString separador = wxFileName::GetPathSeparator(); wxString barra = wxT('\\'); wxStr.Replace(barra,separador); if (wxFileExists(currentPath + separador + wxStr)) { currentPath+= separador + wxStr; } else { // recase: Get case insensitive path (if needed) wxStringTokenizer tokenizer(wxStr, separador); bool validPath = true; // When false, "recase" will do nothing more while (validPath && tokenizer.HasMoreTokens() ) { wxString relPathPart = tokenizer.GetNextToken(); if (tokenizer.HasMoreTokens()) { // Scanning subdirectories wxString entry; if (validPath && !wxDir::Exists(currentPath + separador + relPathPart)) { wxDir dir; bool cont = dir.Open(currentPath) && dir.GetFirst(&entry, wxEmptyString, wxDIR_DIRS | wxDIR_HIDDEN ); bool found = false; while ( cont ) { if (entry.CmpNoCase(relPathPart) == 0) { found = true; cont = false; } if (cont) { cont = dir.GetNext(&entry); } } if (!found) { currentPath += separador + relPathPart; // Assign case sentitive subdir to current path. (Will be non-existing) validPath = false; } else { currentPath += separador + entry; // Assign case sentitive subdir to current path } } else { currentPath += separador + relPathPart; // Assign case sentitive subdir to current path (Could be non-existing if validPath == false) } } else { // Scanning end file wxString entry; if (validPath && !wxFile::Access(currentPath + separador + relPathPart, wxFile::read)) { wxDir dir; bool cont = dir.Open(currentPath) && dir.GetFirst(&entry, wxEmptyString, wxDIR_FILES | wxDIR_HIDDEN ); bool found = false; while ( cont ) { if (entry.CmpNoCase(relPathPart) == 0) { cont = false; found = true; } if (cont) { cont = dir.GetNext(&entry); } } if (!found) { currentPath += separador + relPathPart; // Assign case sentitive filename to current path. (Will be non-existing) validPath = false; } else { currentPath += separador + entry; // Assign case sentitive filename to current path } } else { currentPath += separador + relPathPart; // Assign case sentitive filename to current path (Could be non-existing if validPath == false) } } } }//end recase pModelo->InsertarImagen(uidSerie.c_str(), uidImagen.c_str(), instanceNumber.c_str(), std::string(TOPATH(currentPath))); } } } } } } return true; } else { return false; } } bool PACSController::findAndGetTagFromFile(const std::string& ruta, unsigned short group, unsigned short element, std::string& value) { DcmFileFormat dcm; OFCondition cond; OFString ofval; bool found = false; cond = dcm.loadFile(ruta.c_str()); if (cond.good()) { cond = dcm.getDataset()->findAndGetOFString(DcmTagKey(group, element), ofval); } if (cond.good()) { value = ofval.c_str(); found = true; } return found; } bool PACSController::EsDICOM(const std::string& path, bool accept_dicomdir, bool accept_dicomfile) const { bool valido = false; char magic[5] = { 'X', 'X', 'X', 'X', 0 }; std::string emptystr; std::fstream dcmfile; dcmfile.open (path.c_str(), std::ios::in | std::ios::binary); if (!dcmfile.eof() && dcmfile.good()) { dcmfile.seekp (128, std::ios::beg); } if (!dcmfile.eof() && dcmfile.good() ) { dcmfile.read (magic, 4); } if (!dcmfile.eof() && dcmfile.good()) { if ( magic[0] == 'D' && magic[1] == 'I' && magic[2] == 'C' && magic[3] == 'M' ) { if (!accept_dicomdir || !accept_dicomfile) { // Leemos el tag 0004 0x1130 => Si existe es DICOMDIR bool has_dcmdirtag = false; GIL::DICOM::DicomDataset base; if (GIL::DICOM::PACSController::Instance()->findAndGetTagFromFile(path, 0x0004, 0x1200, emptystr)) { has_dcmdirtag = true; } if (has_dcmdirtag) { if (accept_dicomdir) { valido = true; } } else { if (accept_dicomfile) { valido = true; } } } else { valido = true; } } } dcmfile.close(); return valido; } bool PACSController::EsPDF(const std::string& path) const { bool valido = false; char magic[4] = { 'X', 'X', 'X', 'X' }; // %PDF std::fstream pdffile; pdffile.open (path.c_str(), std::ios::in | std::ios::binary); if (!pdffile.eof() && pdffile.good() ) { pdffile.read (magic, 4); } if (!pdffile.eof() && pdffile.good()) { if ( magic[0] == '%' && magic[1] == 'P' && magic[2] == 'D' && magic[3] == 'F' ) { valido = true; } } pdffile.close(); return valido; } void PACSController::FillInQuery(const GIL::DICOM::DicomDataset& base, DcmDataset* query, const GNC::GCS::Ptr& server) { wxCSConv conv = GetConv(server->GetDefaultCharset()); OFCondition cond; typedef GIL::DICOM::DicomDataset TJerarquia; //tags for (ListaTags::const_iterator it = base.tags.begin(); it != base.tags.end(); ++it) { DcmElement* e = GIL::DICOM::DICOMManager::CrearElementoConValor((*it).first.c_str()); if (e != NULL) { const std::string& val = (*it).second; if (val.size() > 0) { e->putString( wxString( (*it).second.c_str(), wxConvUTF8).mb_str(conv) ); } cond = query->insert(e, true, false); if (cond.bad()) { LOG_ERROR("PACSCONTROLLER", "No se pudo insertar el elemento: (" << e->getTag().toString().c_str() << "): " << cond.text()); } } } //sequences for (TJerarquia::DatasetList::const_iterator it2 = base.secuencias.begin(); it2 != base.secuencias.end(); ++it2) { const TJerarquia& seq = (*it2); DcmElement* es = GIL::DICOM::DICOMManager::CrearElementoConValor(seq.tagName.c_str()); if (es != NULL) { for (TJerarquia::DatasetList::const_iterator it3 = seq.items.begin(); it3 != seq.items.end(); ++it3) { const TJerarquia& item = (*it3); DcmItem* di = new DcmItem(); for (ListaTags::const_iterator it4 = item.tags.begin(); it4 != item.tags.end(); ++it4) { DcmElement* ei = GIL::DICOM::DICOMManager::CrearElementoConValor((*it4).first.c_str()); if (ei != NULL) { const std::string& val = (*it4).second; if (val.size() > 0) { ei->putString( wxString( (*it4).second.c_str(), wxConvUTF8).mb_str(conv) ); } cond = di->insert(ei, true, false); if (cond.bad()) { LOG_ERROR("PACSCONTROLLER", "No se pudo insertar el elemento: (" << ei->getTag().toString().c_str() << "): " << cond.text()); } } } query->insertSequenceItem(es->getTag(), di); } } } } bool PACSController::Print(void* connectionKey, const std::string& serverId, const GIL::DICOM::DicomDataset& film, const GIL::DICOM::DicomDataset& layout, const GIL::DICOM::DicomDataset& job, const std::list files, GNC::IProxyNotificadorProgreso* pNotificador) { DicomServerList* listaServidores = DicomServerList::Instance(); GNC::GCS::Ptr server = listaServidores->GetServer(serverId); if (!server.IsValid()) { LOG_ERROR("C-MOVE/C-GET", "Invalid server"); return false; } if (!server->GetReuseConnection()) { ReleaseConnection(connectionKey); GetConnection(connectionKey); } try { PrintAssociation f(connectionKey, "C-PRINT", pNotificador); OFCondition cond = f.Print(server, GNC::Entorno::Instance()->GetDicomLocalAET(), film, layout, job, files); if (cond.bad()) { throw GIL::DICOM::PACSException(cond.text(), "GIL/DICOM/Print"); } } catch(std::exception& ex) { std::ostringstream os; os << "Internal error: " << ex.what(); throw GIL::DICOM::PACSException(os.str(), "GIL/DICOM/Print"); } return true; } bool PACSController::ObtenerEstudio(void* connectionKey, const std::string& serverId, const GIL::DICOM::DicomDataset& base, IModeloDicom* pModelo, GNC::IProxyNotificadorProgreso* pNotificador, bool link) { DicomServerList* listaServidores = DicomServerList::Instance(); GNC::GCS::Ptr server = listaServidores->GetServer(serverId); if (!server.IsValid()) { LOG_ERROR("C-MOVE/C-GET", "Invalid server"); return false; } wxCSConv conv = GetConv(server->GetDefaultCharset()); if (!server->GetReuseConnection()) { ReleaseConnection(connectionKey); GetConnection(connectionKey); } if (pModelo == NULL) { return false; } DcmDataset query; DcmElement* e = NULL; e = newDicomElement(DCM_SpecificCharacterSet); e->putString(server->GetDefaultCharset().c_str()); query.insert(e); e = newDicomElement(DCM_PatientID); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_PatientName); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_StudyDate); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_StudyTime); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_StudyID); if (query.insert(e).bad()) { delete e; } FillInQuery(base, &query, server); std::string localAET = GNC::Entorno::Instance()->GetDicomLocalAET(); if (server->GetRetrieveSeries() || server->GetRetrieveMethod() == DicomServer::WADO) { //buscar + descargar series... //we have to know the series uids and obtain series by series e = newDicomElement(DCM_QueryRetrieveLevel); e->putString(wxString( "SERIES", wxConvUTF8).mb_str(conv)); query.insert(e, true); e = newDicomElement(DCM_SeriesInstanceUID); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_Modality); if (query.insert(e).bad()) { delete e; } std::list listOfUIDS; std::list listOfModalities; { NetClient f(connectionKey, "C-GET/FIND", pNotificador); std::string localAET = GNC::Entorno::Instance()->GetDicomLocalAET(); if (server->useTLS) { f.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (server->GetPACSUser() != "") { f.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } f.QueryServer(&query, server, pModelo, localAET, CT_None); if (f.Stopped()) { return false; } DcmStack* stack = f.GetResultStack(); unsigned int numResults = 0; numResults = stack->card(); for (unsigned int i = 0; i < numResults; i++) { if (stack->elem(i)->ident() == EVR_dataset) { DcmDataset* dset = dynamic_cast(stack->elem(i)); if (dset) { OFString OFSSeriesInstanceUID; OFString OFSeriesModality; if ( dset->findAndGetOFString(DCM_SeriesInstanceUID, OFSSeriesInstanceUID).good() && dset->findAndGetOFString(DCM_Modality, OFSeriesModality).good() ) { std::string seriesInstanceUID(OFSSeriesInstanceUID.c_str()); std::string seriesModality(OFSeriesModality.c_str()); listOfUIDS.push_back(seriesInstanceUID); listOfModalities.push_back(seriesModality); } } } } } for (std::list::iterator itUIDS = listOfUIDS.begin(), itModalities = listOfModalities.begin(); itUIDS != listOfUIDS.end(); ++itUIDS, ++itModalities) { //it's mandatory to release connection here to start one connection for each series ReleaseConnection(connectionKey); GetConnection(connectionKey); GIL::DICOM::DicomDataset baseAux = base; baseAux.tags["0020|000e"] = (*itUIDS); baseAux.tags["0008|0060"] = (*itModalities); ObtenerSerie(connectionKey, serverId, baseAux, pModelo, pNotificador, link); } query.clear(); } else if (server->GetRetrieveMethod() == DicomServer::MOVE) { e = newDicomElement(DCM_QueryRetrieveLevel); e->putString(wxString( "STUDY", wxConvUTF8).mb_str(conv)); query.insert(e, true); if (server) { LOG_INFO("C-MOVE", "Obteniendo estudio del PACS " << serverId << ": " << server->AET << "@" << server->HostName << ":" << server->Port << " PDU=" << server->PDU << ", TLS=" << server->useTLS << ", User = " << server->pacsUser << "Method=C-MOVE"); } NetClient a(connectionKey, "C-MOVE", pNotificador); a.SetRole(Association::RT_Requestor); a.SetModelo(pModelo); if (server->useTLS) { a.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (server->GetPACSUser() != "") { a.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } a.QueryServer(&query, server, pModelo, localAET, CT_MoveSerie); } else { if (server) { LOG_INFO("C-GET", "Obteniendo estudio del PACS " << serverId << ": " << server->AET << "@" << server->HostName << ":" << server->Port << " PDU=" << server->PDU << ", TLS=" << server->useTLS << ", User = " << server->pacsUser << ", Method=C-GET"); } //we have to know the series uids and obtain series by series e = newDicomElement(DCM_QueryRetrieveLevel); e->putString(wxString( "SERIES", wxConvUTF8).mb_str(conv)); query.insert(e, true); e = newDicomElement(DCM_SeriesInstanceUID); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_Modality); if (query.insert(e).bad()) { delete e; } NetClient f(connectionKey, "C-GET/FIND", pNotificador); std::string localAET = GNC::Entorno::Instance()->GetDicomLocalAET(); if (server->useTLS) { f.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (!server->GetPACSUser().empty()) { f.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } f.QueryServer(&query, server, pModelo, localAET, CT_None); if (f.Stopped()) { return false; } DcmStack* stack = f.GetResultStack(); unsigned int numResults = 0; numResults = stack->card(); for (unsigned int i = 0; i < numResults; i++) { if (stack->elem(i)->ident() == EVR_dataset) { DcmDataset* dset = dynamic_cast(stack->elem(i)); if (dset) { OFString OFSStudyInstanceUID; OFString OFSSeriesInstanceUID; OFString OFSeriesModality; if ( dset->findAndGetOFString(DCM_SeriesInstanceUID, OFSSeriesInstanceUID).good() && dset->findAndGetOFString(DCM_Modality, OFSeriesModality).good() ) { GIL::DICOM::DicomDataset baseAux = base; if (dset->findAndGetOFString(DCM_StudyInstanceUID, OFSStudyInstanceUID).good()) { baseAux.tags["0020|000d"] = OFSStudyInstanceUID.c_str(); } baseAux.tags["0020|000e"] = OFSSeriesInstanceUID.c_str(); baseAux.tags["0008|0060"] = OFSeriesModality.c_str(); ObtenerSerie(connectionKey, serverId, baseAux, pModelo, pNotificador, link); } } } } query.clear(); } return true; } bool PACSController::ObtenerSerie(void* connectionKey, const std::string& serverId, const GIL::DICOM::DicomDataset& base, IModeloDicom* pModelo, GNC::IProxyNotificadorProgreso* pNotificador, bool link) { if (pModelo == NULL) { return false; } DicomServerList* listaServidores = DicomServerList::Instance(); GNC::GCS::Ptr server = listaServidores->GetServer(serverId); if (!server.IsValid()) { LOG_ERROR("C-MOVE/C-GET", "Invalid server"); return false; } wxCSConv conv = GetConv(server->GetDefaultCharset()); std::string modality; if (base.tags.find("0008|0060") != base.tags.end()) { modality = base.tags.find("0008|0060")->second; } DcmElement* e = NULL; DcmDataset query; unsigned int numResults = 0; if (server->GetRetrieveMethod() == DicomServer::GET && modality.empty()) { // We have to find series modality FillInQuery(base, &query, server); e = newDicomElement(DCM_SpecificCharacterSet); e->putString(server->GetDefaultCharset().c_str()); query.insert(e); e = newDicomElement(DCM_QueryRetrieveLevel); e->putString(wxString( "SERIES", wxConvUTF8).mb_str(conv)); query.insert(e, true); e = newDicomElement(DCM_StudyInstanceUID); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_SeriesInstanceUID); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_Modality); if (query.insert(e).bad()) { delete e; } NetClient f(connectionKey, "C-GET/FIND", pNotificador); std::string localAET = GNC::Entorno::Instance()->GetDicomLocalAET(); if (server->useTLS) { f.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (server->GetPACSUser() != "") { f.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } if (!f.QueryServer(&query, server, pModelo, localAET, CT_None)) { return false; } if (f.Stopped()) { return false; } DcmStack* stack = f.GetResultStack(); OFString OFSeriesModality; numResults = stack->card(); if (numResults >1) { LOG_WARN("C-GET", "Obteniendo serie del PACS " << serverId << ": " << server->AET << "@" << server->HostName << ":" << server->Port << " PDU=" << server->PDU << ", TLS=" << server->useTLS << ", User = " << server->pacsUser << ", there have a Series with more than one modality, we are going to process only first modality"); } for (unsigned int i = 0; i < numResults; i++) { if (stack->elem(i)->ident() == EVR_dataset) { DcmDataset* dset = dynamic_cast(stack->elem(i)); if (dset) { if ( dset->findAndGetOFString(DCM_Modality, OFSeriesModality).good() && OFSeriesModality.size() > 0 ) { modality = OFSeriesModality.c_str(); break; } } } } query.clear(); }// end query modality //association to make finds... NetClient f(connectionKey, "C-GET/FIND", pNotificador); std::string localAET = GNC::Entorno::Instance()->GetDicomLocalAET(); if (server->useTLS) { f.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (server->GetPACSUser() != "") { f.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } if (server->GetRetrieveMethod() == DicomServer::WADO) { //we need to know StudyInstanceUID, SeriesInstanceUID and SopInstanceUID of all elements std::string seriesInstanceUID, studyInstanceUID; if (!base.getTag(GKDCM_SeriesInstanceUID, seriesInstanceUID)) { LOG_ERROR("PACSController", "to obtain a series you must specify seriesInstanceUID"); return false; } if (!base.getTag(GKDCM_StudyInstanceUID, studyInstanceUID)) { FillInQuery(base, &query, server); e = newDicomElement(DCM_SpecificCharacterSet); e->putString(server->GetDefaultCharset().c_str()); query.insert(e); e = newDicomElement(DCM_QueryRetrieveLevel); e->putString(wxString( "SERIES", wxConvUTF8).mb_str(conv)); query.insert(e, true); e = newDicomElement(DCM_StudyInstanceUID); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_SeriesInstanceUID); if (query.insert(e).bad()) { delete e; } if (!f.QueryServer(&query, server, pModelo, localAET, CT_None)) { return false; } if (f.Stopped()) { return false; } DcmStack* stack = f.GetResultStack(); OFString tempOf; for (unsigned int i = 0; i < stack->card(); i++) { if (stack->elem(i)->ident() == EVR_dataset) { DcmDataset* dset = dynamic_cast(stack->elem(i)); if (dset) { if ( dset->findAndGetOFString(DCM_StudyInstanceUID, tempOf).good() && tempOf.size() > 0 ) { studyInstanceUID = tempOf.c_str(); break; } } } } query.clear(); } if (studyInstanceUID.empty()) { LOG_ERROR("PACSController", "StudyInstanceUID not found"); return false; } //now we have to get all sop instance uids... f.DeleteResultStack(); e = newDicomElement(DCM_SpecificCharacterSet); e->putString(server->GetDefaultCharset().c_str()); query.insert(e); e = newDicomElement(DCM_QueryRetrieveLevel); e->putString(wxString( "IMAGE", wxConvUTF8).mb_str(conv)); query.insert(e, true); e = newDicomElement(DCM_SeriesInstanceUID); e->putString(wxString( seriesInstanceUID.c_str(), wxConvUTF8).mb_str(conv)); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_SOPInstanceUID); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_InstanceNumber); if (query.insert(e).bad()) { delete e; } if (!f.QueryServer(&query, server, pModelo, localAET, CT_None)) { return false; } if (f.Stopped()) { return false; } DcmStack* stack = f.GetResultStack(); OFString tempOf; std::list > instances; for (unsigned int i = 0; i < stack->card(); i++) { if (stack->elem(i)->ident() == EVR_dataset) { DcmDataset* dset = dynamic_cast(stack->elem(i)); if (dset) { if ( dset->findAndGetOFString(DCM_SOPInstanceUID, tempOf).good() && tempOf.size() > 0 ) { const std::string sopInstanceUID = tempOf.c_str(); long instanceNumber; std::pair item; item.second = sopInstanceUID; if ( dset->findAndGetLongInt(DCM_InstanceNumber, instanceNumber).good() ) { item.first = instanceNumber; } else { item.first = LONG_MAX; } instances.push_back(item); } } } } query.clear(); //sort by instance number... instances.sort(compare_instances); std::list sopInstanceUIDs; std::list instanceNumbers; for (std::list >::const_iterator it = instances.begin(); it != instances.end(); ++it) { sopInstanceUIDs.push_back((*it).second); instanceNumbers.push_back((*it).first); } //now we have studyInstanceUID, seriesInstanceUID and sopInstancesUIDS.... download it! return DownloadWADOImages(serverId, studyInstanceUID, seriesInstanceUID, sopInstanceUIDs, instanceNumbers, pModelo, pNotificador, link); }//end wado else { //get and move FillInQuery(base, &query, server); e = newDicomElement(DCM_SpecificCharacterSet); e->putString(server->GetDefaultCharset().c_str()); query.insert(e); e = newDicomElement(DCM_QueryRetrieveLevel); e->putString(wxString( "SERIES", wxConvUTF8).mb_str(conv)); query.insert(e, true); e = newDicomElement(DCM_SeriesInstanceUID); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_Modality); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_SeriesNumber); if (query.insert(e).bad()) { delete e; } std::string localAET = GNC::Entorno::Instance()->GetDicomLocalAET(); if (server->GetRetrieveMethod() == DicomServer::MOVE) { if (server) { LOG_INFO("C-MOVE", "Downloading series from PACS " << serverId << ": " << server->AET << "@" << server->HostName << ":" << server->Port << " PDU=" << server->PDU << ", TLS=" << server->useTLS << ", User = " << server->pacsUser << ", Method=C-MOVE"); } if (server) { LOG_INFO("C-MOVE", "Downloading study from PACS " << serverId << ": " << server->AET << "@" << server->HostName << ":" << server->Port << " PDU=" << server->PDU << ", TLS=" << server->useTLS << ", User = " << server->pacsUser << ", Method=C-MOVE"); } NetClient a(connectionKey, "C-MOVE", pNotificador); a.SetRole(Association::RT_Requestor); a.SetModelo(pModelo); if (server->useTLS) { a.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (server->GetPACSUser() != "") { a.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } if (!a.QueryServer(&query, server, pModelo, localAET, CT_MoveSerie)) { return false; } } else { if (server) { LOG_INFO("C-GET", "Downloading series from PACS " << serverId << ": " << server->AET << "@" << server->HostName << ":" << server->Port << " PDU=" << server->PDU << ", TLS=" << server->useTLS << ", User = " << server->pacsUser << ", Method=C-GET"); } NetClient a(connectionKey, "C-GET", pNotificador); a.SetWellKnownNumResults(numResults); a.SetStorageSOPClasses(GIL::DICOM::Conformance::GetModalities().GetSupportedSOPClassUIDs(modality)); a.SetModelo(pModelo); if (server->useTLS) { a.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (server->GetPACSUser() != "") { a.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } if (!a.QueryServer(&query, server, pModelo, localAET, CT_MoveSerie)) { return false; } } query.clear(); } return true; } bool PACSController::ObtenerImagen(void* connectionKey, const std::string& serverId, const GIL::DICOM::DicomDataset& base, IModeloDicom* pModelo,GNC::IProxyNotificadorProgreso* pNotificador) { if (pModelo == NULL) { return false; } DicomServerList* listaServidores = DicomServerList::Instance(); GNC::GCS::Ptr server = listaServidores->GetServer(serverId); if (!server.IsValid()) { LOG_ERROR("C-MOVE/C-GET", "Invalid server"); return false; } wxCSConv conv = GetConv(server->GetDefaultCharset()); DcmDataset query; DcmElement* e = NULL; FillInQuery(base, &query, server); e = newDicomElement(DCM_SpecificCharacterSet); e->putString(server->GetDefaultCharset().c_str()); query.insert(e); e = newDicomElement(DCM_QueryRetrieveLevel); e->putString(wxString( "IMAGE", wxConvUTF8).mb_str(conv)); query.insert(e, true); e = newDicomElement(DCM_InstanceNumber); if (query.insert(e).bad()) { delete e; } std::string localAET = GNC::Entorno::Instance()->GetDicomLocalAET(); if (server->GetRetrieveMethod() == DicomServer::MOVE) { if (server) { LOG_INFO("C-MOVE", "Downloading imagen from PACS " << serverId << ": " << server->AET << "@" << server->HostName << ":" << server->Port << " PDU=" << server->PDU << ", TLS=" << server->useTLS << ", User = " << server->pacsUser << ", Method=C-MOVE"); } NetClient a(connectionKey, "C-MOVE", pNotificador); a.SetModelo(pModelo); if (server->useTLS) { a.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (server->GetPACSUser() != "") { a.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } if (!a.QueryServer(&query, server, pModelo, localAET, CT_MoveImagen)) { return false; } } else if (server->GetRetrieveMethod() == DicomServer::GET) { if (server) { LOG_INFO("C-GET", "Downloading image from PACS " << serverId << ": " << server->AET << "@" << server->HostName << ":" << server->Port << " PDU=" << server->PDU << ", TLS=" << server->useTLS << ", User = " << server->pacsUser << ", Method=C-GET"); } NetClient a(connectionKey, "C-GET", pNotificador); a.SetModelo(pModelo); if (server->useTLS) { a.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (server->GetPACSUser() != "") { a.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } if (!a.QueryServer(&query, server, pModelo, localAET, CT_MoveImagen)) { return false; } } else if (server->GetRetrieveMethod() == DicomServer::WADO) { //we have to get seriesInstance and studyInstanceUID... std::string seriesInstanceUID, studyInstanceUID; if (!base.getTag(GKDCM_SeriesInstanceUID, seriesInstanceUID) || !base.getTag(GKDCM_StudyInstanceUID, studyInstanceUID)) { FillInQuery(base, &query, server); e = newDicomElement(DCM_SpecificCharacterSet); e->putString(server->GetDefaultCharset().c_str()); query.insert(e); e = newDicomElement(DCM_QueryRetrieveLevel); e->putString(wxString( "IMAGE", wxConvUTF8).mb_str(conv)); query.insert(e, true); e = newDicomElement(DCM_StudyInstanceUID); if (query.insert(e).bad()) { delete e; } e = newDicomElement(DCM_SeriesInstanceUID); if (query.insert(e).bad()) { delete e; } //association to make finds... NetClient f(connectionKey, "WADO/FIND", pNotificador); std::string localAET = GNC::Entorno::Instance()->GetDicomLocalAET(); if (server->useTLS) { f.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (server->GetPACSUser() != "") { f.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } if (!f.QueryServer(&query, server, pModelo, localAET, CT_None)) { return false; } if (f.Stopped()) { return false; } DcmStack* stack = f.GetResultStack(); OFString tempOf; for (unsigned int i = 0; i < stack->card(); i++) { if (stack->elem(i)->ident() == EVR_dataset) { DcmDataset* dset = dynamic_cast(stack->elem(i)); if (dset) { if ( dset->findAndGetOFString(DCM_StudyInstanceUID, tempOf).good() && tempOf.size() > 0 ) { studyInstanceUID = tempOf.c_str(); } if ( dset->findAndGetOFString(DCM_SeriesInstanceUID, tempOf).good() && tempOf.size() > 0 ) { seriesInstanceUID = tempOf.c_str(); } } } } query.clear(); } if (studyInstanceUID.empty() || seriesInstanceUID.empty()) { LOG_ERROR("PACSController", "StudyInstanceUID or SeriesInstanceUID not found"); return false; } std::list sopInstanceUIDs; sopInstanceUIDs.push_back(base.getTag(GKDCM_SOPInstanceUID)); std::list instanceNumbers; instanceNumbers.push_back(0); //now we have studyInstanceUID, seriesInstanceUID and sopInstancesUIDS.... download it! return DownloadWADOImages(serverId, studyInstanceUID, seriesInstanceUID, sopInstanceUIDs, instanceNumbers, pModelo, pNotificador, false); } return true; } size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) { size_t written = fwrite(ptr, size, nmemb, stream); return written; } //sopinstanceuids are sorted by instance number! bool PACSController::DownloadWADOImages(const std::string& serverId, const std::string& studyInstanceUID, const std::string& seriesInstanceUID, const std::list& sopInstanceUID, const std::list& instanceNumbers, IModeloDicom* pModelo, GNC::IProxyNotificadorProgreso* pNotificador, bool link) { DicomServerList* listaServidores = DicomServerList::Instance(); GNC::GCS::Ptr server = listaServidores->GetServer(serverId); std::string pathOfSeries = GNC::Entorno::Instance()->CrearDirectorioTemporal(); int curr = 1; std::list::const_iterator itInstanceNumber = instanceNumbers.begin(); for (std::list::const_iterator itSopInstances = sopInstanceUID.begin(); itSopInstances != sopInstanceUID.end(); ++itSopInstances, curr++, itInstanceNumber++) { std::ostringstream progress; progress << _Std("Downloading file") << " " << curr << "/" << sopInstanceUID.size(); if (!pNotificador->NotificarProgreso((float)(curr)/sopInstanceUID.size(), progress.str())) { return false; } std::ostringstream ostr; ostr << server->GetWADOURI(); if (server->GetWADOURI().find("?") == std::string::npos) { ostr << "?"; } else { ostr << "&"; } ostr << "requestType=WADO&contentType=application/dicom&studyUID=" << studyInstanceUID; ostr << "&seriesUID=" << seriesInstanceUID; ostr << "&objectUID=" << (*itSopInstances); std::string url = ostr.str(); LOG_DEBUG("DownloadWADOImages", "Downloading url: " << url) if (link && curr > 1) { //link it const IModeloSerie* pSeries; pModelo->BuscarSerie(seriesInstanceUID, &pSeries); std::ostringstream ostr; ostr << (*itInstanceNumber); pModelo->InsertarImagen(seriesInstanceUID,(*itSopInstances), ostr.str(),url); } else { //download first file of the series... std::ostringstream ofilePath; ofilePath << pathOfSeries << (char)wxFileName::GetPathSeparator(); ofilePath << (*itSopInstances); std::string filePath = ofilePath.str(); if (DownloadFileFromURL(url, filePath, pNotificador)) { DICOMManager dm; GIL::DICOM::DicomDataset base; dm.CargarFichero(filePath, base); const IModeloPaciente& paciente = pModelo->InsertarPaciente(base.getTag(GKDCM_PatientID), base.getTag(GKDCM_PatientName), base.getTag(GKDCM_PatientBirthDate), base.getTag(GKDCM_PatientSex)); pModelo->InsertarEstudio(paciente.GetUID(), base.getTag(GKDCM_StudyInstanceUID), base.getTag(GKDCM_AccessionNumber), base.getTag(GKDCM_StudyDescription), base.getTag(GKDCM_ModalitiesInStudy), base.getTag(GKDCM_StudyDate), base.getTag(GKDCM_StudyTime), base.getTag(GKDCM_ReferringPhysicianName)); pModelo->InsertarSerie(base.getTag(GKDCM_StudyInstanceUID), base.getTag(GKDCM_SeriesInstanceUID), base.getTag(GKDCM_SeriesType), base.getTag(GKDCM_SeriesDate), base.getTag(GKDCM_SeriesTime), base.getTag(GKDCM_SeriesDescription), base.getTag(GKDCM_SeriesNumber),base.getTag(GKDCM_ReferringPhysicianName)); pModelo->InsertarImagen(base.getTag(GKDCM_SeriesInstanceUID),base.getTag(GKDCM_SOPInstanceUID), base.getTag(GKDCM_InstanceNumber), filePath); } }//end download first file of the series } return true; } int progress_func_download_wado(void* ptr, double TotalToDownload, double NowDownloaded, double , double ) { GNC::IProxyNotificadorProgreso* pCmd = (GNC::IProxyNotificadorProgreso*)(ptr); if (pCmd != NULL && TotalToDownload != 0) { if (pCmd->NotificarProgreso((float)NowDownloaded/TotalToDownload, "")) { return 0; } else { return -1; } } else if (pCmd != NULL && NowDownloaded != 0) { wxString message = wxString::Format(wxT("Unknow file size downloaded %.2f Mb"), (float)NowDownloaded/(1024*1024)); if (pCmd->NotificarProgreso((float)NowDownloaded/(10*1024*1024), std::string(message.ToUTF8()))) { return 0; } else { return -1; } } else { return 0; } } bool PACSController::DownloadFileFromURL(const std::string& url, const std::string& filePath, GNC::IProxyNotificadorProgreso* pNotifier) { LOG_DEBUG("PACSController", "Trying to download: " << url); CURL *http_handle; FILE *fp; http_handle = curl_easy_init(); if (http_handle) { fp = fopen(filePath.c_str(), "wb"); curl_easy_setopt(http_handle, CURLOPT_URL, url.c_str()); //proxy settings GNC::GCS::ProxySettings settings = GNC::GCS::ConfigurationController::Instance()->GetProxySettings(); if (settings.useProxy) { curl_easy_setopt(http_handle, CURLOPT_PROXY, settings.hostName.c_str()); curl_easy_setopt(http_handle, CURLOPT_PROXYPORT, settings.port); if (settings.requiresAuth) { curl_easy_setopt(http_handle, CURLOPT_PROXYUSERNAME, settings.userName.c_str()); curl_easy_setopt(http_handle, CURLOPT_PROXYPASSWORD, settings.password.c_str()); } curl_easy_setopt(http_handle, CURLOPT_NOPROXY, settings.exceptions.c_str()); } //progress curl_easy_setopt(http_handle, CURLOPT_PROGRESSDATA , pNotifier); curl_easy_setopt(http_handle, CURLOPT_PROGRESSFUNCTION, progress_func_download_wado); curl_easy_setopt(http_handle, CURLOPT_NOPROGRESS, 0); // curl_easy_setopt(http_handle, CURLOPT_WRITEFUNCTION, write_data); curl_easy_setopt(http_handle, CURLOPT_WRITEDATA, fp); CURLcode res = curl_easy_perform(http_handle); fclose(fp); long http_code = 0; curl_easy_getinfo (http_handle, CURLINFO_RESPONSE_CODE, &http_code); if (http_code == 200 && res != CURLE_ABORTED_BY_CALLBACK) { //succeeed curl_easy_cleanup(http_handle); return true; } else { curl_easy_cleanup(http_handle); LOG_ERROR("PACSController", "Error downloading file " << url << " Curl code (" << res << ") " << curl_easy_strerror(res) << " http status: " << http_code ); std::ostringstream ostrMsg; ostrMsg << _Std("Error downloading WADO file") << " (HTTP Status: " << http_code << ") " << "URL :" << std::endl << url << std::endl << _Std("Check PACS configuration"); throw GIL::DICOM::PACSException( ostrMsg.str()); } } else { LOG_ERROR("PACSController", "Error initializing curl"); throw GIL::DICOM::PACSException( "Error initialiting curl" ); } } /** Perform query */ bool PACSController::Query( void* connectionKey, const std::string& abstractSyntax, const GIL::DICOM::DicomDataset& queryWrapper, std::list< GNC::GCS::Ptr >& resultsWrapper, const std::string& serverId, GNC::IProxyNotificadorProgreso* pNotificador ) { resultsWrapper.clear(); DicomServerList* listaServidores = DicomServerList::Instance(); GNC::GCS::Ptr server = listaServidores->GetServer(serverId); DcmDataset query; DcmElement* e = NULL; e = newDicomElement(DCM_SpecificCharacterSet); e->putString(server->GetDefaultCharset().c_str()); query.insert(e); FillInQuery(queryWrapper, &query, server); std::string localAET = GNC::Entorno::Instance()->GetDicomLocalAET(); NetClient a(connectionKey, "C-FIND", pNotificador); a.SetAbstractSyntax(abstractSyntax); if (server->useTLS) { a.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (server->GetPACSUser() != "") { a.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } return a.QueryServer(&query, server, resultsWrapper, localAET); } bool PACSController::QueryRetrieve( void* connectionKey, const std::string& serverId, IModeloDicom* pModelo, const GIL::DICOM::DicomDataset& base, GNC::IProxyNotificadorProgreso* pNotificador, bool link) { std::string strTmp; if(base.getTag("0008|0052", strTmp)) { if (strTmp == "STUDY") { ObtenerEstudio(connectionKey, serverId, base, pModelo, pNotificador, link); } else if (strTmp == "SERIES") { std::string uidSeries; ObtenerSerie(connectionKey, serverId, base, pModelo, pNotificador, link); } else if (strTmp == "IMAGE") { ObtenerImagen(connectionKey, serverId, base, pModelo, pNotificador); } else { throw GIL::DICOM::PACSException(_Std("Unknown query/retrieve level")); } } else { throw GIL::DICOM::PACSException(_Std("Query retrieve level not specified")); } return true; } void PACSController::TestWADOURL(const std::string& url) { CURL *http_handle = NULL; std::ostringstream errorMsg; bool success = true; char curl_err[CURL_ERROR_SIZE]; http_handle = curl_easy_init(); if (http_handle) { curl_easy_setopt(http_handle, CURLOPT_URL, url.c_str()); //proxy settings GNC::GCS::ProxySettings settings = GNC::GCS::ConfigurationController::Instance()->GetProxySettings(); if (settings.useProxy) { curl_easy_setopt(http_handle, CURLOPT_PROXY, settings.hostName.c_str()); curl_easy_setopt(http_handle, CURLOPT_PROXYPORT, settings.port); if (settings.requiresAuth) { curl_easy_setopt(http_handle, CURLOPT_PROXYUSERNAME, settings.userName.c_str()); curl_easy_setopt(http_handle, CURLOPT_PROXYPASSWORD, settings.password.c_str()); } curl_easy_setopt(http_handle, CURLOPT_NOPROXY, settings.exceptions.c_str()); } curl_easy_setopt(http_handle, CURLOPT_ERRORBUFFER, curl_err); long http_code = -1; CURLcode res = curl_easy_perform(http_handle); if (res != CURLE_OK) { errorMsg << _Std("Unable to perform HTTP request") << ": " << curl_err; success = false; } if (success && (CURLE_OK != curl_easy_getinfo (http_handle, CURLINFO_RESPONSE_CODE, &http_code)) ) { errorMsg << _Std("Invalid HTTP response") << ": " << curl_err; success = false; } if (success) { if ( (http_code < 200 || http_code > 500) ) { errorMsg << _Std("Invalid HTTP code") << ":" << http_code; success = false; } } curl_easy_cleanup(http_handle); } else { errorMsg << _Std("Unable to init HTTP subsystem"); success = false; } if (!success) { throw GIL::DICOM::PACSException(errorMsg.str()); } } GIL::DICOM::ICustomAssociation* PACSController::CreateCustomAssociation(void* connectionKey, const std::string& ambitolog, GNC::IProxyNotificadorProgreso* pNotificador) { return new CustomAssociation(connectionKey, ambitolog, pNotificador); } void PACSController::DestroyCustomAssociation(GIL::DICOM::ICustomAssociation* assoc) { if (assoc != NULL) { delete assoc; } } void PACSController::StartServer() { StopServer(); int localPort = 0; std::string localAET; { GNC::GCS::ConfigurationController::Instance()->readIntGeneral("/GinkgoCore/PACS/Local", "Puerto", localPort, 11112); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/PACS/Local", "AET", localAET, "GINKGO_%IP4"); } this->m_pServiceInstance = new GIL::DICOM::Service(_Std("PACS-Service")); this->m_pServiceInstance->SetRole(GIL::DICOM::Service::RT_Acceptor); this->m_pServiceInstance->SetAcceptorPort(localPort); this->m_pServiceInstance->SetLocalAET(localAET); this->m_pServiceInstance->Start(); } void PACSController::StopServer() { if (this->m_pServiceInstance != NULL) { unsigned long tid; do { tid = this->m_pServiceInstance->GetTid(); GNC::GCS::ThreadController::Stop(tid); } while (this->m_pServiceInstance->GetTid() != tid); delete this->m_pServiceInstance; this->m_pServiceInstance = NULL; } } void PACSController::GetConnection(void* connectionKey) { GIL::DICOM::DCMTK::Network::Instance(connectionKey); } void PACSController::ReleaseConnection(void* connectionKey) { GIL::DICOM::DCMTK::Network::FreeInstance(connectionKey); } void PACSController::SubirArchivos(void* /*connectionKey*/, const std::string& serverId, const std::list &pathsSubida, GNC::IProxyNotificadorProgreso* pNotificador, TipoTransferSyntaxEnvio transferSyntax) { GTRACE("PACSController::SubirArchivos( " << serverId.c_str() << ", [...]"); DicomServerList* listaServidores = DicomServerList::Instance(); std::string localAET = GNC::Entorno::Instance()->GetDicomLocalAET(); GIL::DICOM::DicomStoreAssociation asociacion; GNC::GCS::Ptr server = listaServidores->GetServer(serverId); if (server) { LOG_INFO("PACS-STORE", "Enviando al PACS " << serverId << ": " << server->AET << "@" << server->HostName << ":" << server->Port << " PDU=" << server->PDU << ", TLS=" << server->useTLS << ", User = " << server->pacsUser); } if (server->useTLS) { asociacion.SetTLS(server->GetCertificate(), server->GetPrivateKey(), server->GetverifyCredentials()); } if (server->GetPACSUser() != "") { asociacion.SetUserPass(server->GetPACSUser(), server->GetPACSPass()); } asociacion.Store(pathsSubida,server, localAET, pNotificador, transferSyntax); } std::string GetMD5(const std::string& cadena) { unsigned char salida[MD5_DIGEST_LENGTH]; MD5((const unsigned char*)cadena.c_str(), cadena.size(),salida); std::ostringstream cadenaMD5; cadenaMD5.setf ( std::ios::hex, std::ios::basefield ); for(int i = 0; iGetGinkgoDicomDir(); //md5 de uidpaciente, estudio y serie std::stringstream concat; if(uidPaciente != "") concat << uidPaciente; else concat << _("Unknown"); if(uidEstudio != "") concat << uidEstudio; else concat << _("Unknown"); if(uidSerie != "") concat << uidSerie; else concat << _("Unknown"); std::string cadena = concat.str(); std::string resumen = GetMD5(cadena); wxString dirRaiz, dirSerie; dirRaiz = FROMPATH(dicomDirPath); if (!wxDir::Exists(dirRaiz) && crearDirectorios) { correcto = correcto && wxFileName::Mkdir(dirRaiz, 0700); } if(temporal) { dirRaiz = dirRaiz + wxFileName::GetPathSeparator(wxPATH_NATIVE) + wxT("TEMP"); if (!wxDir::Exists(dirRaiz)) { correcto = correcto && wxFileName::Mkdir(dirRaiz, 0700); } } dirSerie= dirRaiz + wxFileName::GetPathSeparator(wxPATH_NATIVE) + FROMPATH(resumen); if (!wxDir::Exists(dirSerie) && crearDirectorios) { correcto = correcto && wxFileName::Mkdir(dirSerie, 0700); } ruta = TOPATH(dirSerie); return correcto; } bool PACSController::GetRutaImagen(const std::string& uidPaciente, const std::string& uidEstudio, const std::string& uidSerie, const std::string& uidImagen, std::string& ruta, bool crearDirectorios) { bool correcto = GetRutaSerie(uidPaciente,uidEstudio,uidSerie, ruta, crearDirectorios, false); std::ostringstream ostr; ostr << ruta << (char)wxFileName::GetPathSeparator(wxPATH_NATIVE)<getKey(); keyStr = tagkey.toString().c_str(); descStr = (*iter)->getTagName(); OFString val; OFCondition c = ds->findAndGetOFString(tagkey, val); if (c.good()) { valStr = val.c_str(); callback->Inspect(keyStr, descStr, valStr); } } dcmDataDict.unlock(); } } //region "Métodos de Dicomización" /* void PACSController::CrearInstanciaDeImportacion(void* ref) { m_ListaInstanciasDicomImg2DCM[ref] = new IDICOMImg2DCM(); } void PACSController::LiberarInstanciaDeImportacion(void* ref) { ListaInstanciasImg2DCMType::iterator it = m_ListaInstanciasDicomImg2DCM.find(ref); if (it != m_ListaInstanciasDicomImg2DCM.end()) { delete (*it).second; m_ListaInstanciasDicomImg2DCM.erase(it); } } */ IDICOMImg2DCM* PACSController::CrearInstanciaDeImportacion() { return new DICOMImg2DCM(); } void PACSController::LiberarInstanciaDeImportacion(IDICOMImg2DCM* instancia) { DICOMImg2DCM* i = dynamic_cast(instancia); if (i != NULL) { delete i; } } //endregion //region "Métodos de carga/almacenamiento de DICOMS" IDICOMManager* PACSController::CrearInstanciaDeDICOMManager() { return new DICOMManager(); } void PACSController::LiberarInstanciaDeDICOMManager(IDICOMManager* instancia) { DICOMManager* i = dynamic_cast(instancia); if (i != NULL) { delete i; } } void BorrarDirTemp(wxString dirPath) { //borra en cascada if(!wxRmdir(dirPath)) { //vaciar wxDir dir; if (dir.Open(dirPath)) { wxString fileName; bool cont = dir.GetFirst(&fileName); while (cont) { fileName=dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) +fileName; if(wxDir::Exists(fileName)) { BorrarDirTemp(fileName); } else { wxRemoveFile(fileName); } cont = dir.GetNext(&fileName); } } } if(wxDir::Exists(dirPath)) { wxRmdir(dirPath); } } void PACSController::PurgarDirectorioTemporal() { wxString dirTemp; dirTemp = FROMPATH(GNC::GCS::HistoryController::Instance()->GetGinkgoDicomDir()); if (!wxDir::Exists(dirTemp)) { return; } dirTemp = dirTemp + wxFileName::GetPathSeparator(wxPATH_NATIVE) + wxT("TEMP"); if (!wxDir::Exists(dirTemp)) { return; } //borrar en profundidad BorrarDirTemp(dirTemp); } //endregion }; }; ginkgocadx-3.8.7/cadxcore/main/controllers/pacscontroller.h000066400000000000000000000154611314736454600241600ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include class DcmDataset; class Network; class DicomServer; namespace GNC { class IProxyNotificadorProgreso; } namespace GIL { namespace DICOM { class Service; } } namespace GIL { namespace DICOM { class EXTAPI PACSController : public IPACSController { public: // TODO: corregir typedef std::map ListaInstanciasImg2DCMType; typedef std::map NetworkConnectionList; static PACSController* Instance(); static void FreeInstance(); virtual void SubirArchivos(void* connectionKey, const std::string& serverId, const std::list& pathsSubida, GNC::IProxyNotificadorProgreso* pNotificador, TipoTransferSyntaxEnvio transferSyntax); virtual void FillInQuery(const GIL::DICOM::DicomDataset& base, DcmDataset* query, const GNC::GCS::Ptr& server); virtual bool Print( void* connectionKey, const std::string& serverId, const GIL::DICOM::DicomDataset& film, const GIL::DICOM::DicomDataset& layout, const GIL::DICOM::DicomDataset& job, const std::list files, GNC::IProxyNotificadorProgreso* pNotificador ); protected: virtual bool ObtenerEstudio( void* connectionKey, const std::string& serverId, const GIL::DICOM::DicomDataset& base, IModeloDicom* pModelo, GNC::IProxyNotificadorProgreso* pNotificador, bool link ); virtual bool ObtenerSerie( void* connectionKey, const std::string& serverId, const GIL::DICOM::DicomDataset& base, IModeloDicom* pModelo, GNC::IProxyNotificadorProgreso* pNotificador, bool link ); virtual bool ObtenerImagen( void* connectionKey, const std::string& serverId, const GIL::DICOM::DicomDataset& base, IModeloDicom* pModelo, GNC::IProxyNotificadorProgreso* pNotificador ); virtual bool DownloadWADOImages(const std::string& serverId, const std::string& studyInstanceUID, const std::string& seriesInstanceUID, const std::list& sopInstanceUID, const std::list& instanceNumbers, IModeloDicom* pModelo, GNC::IProxyNotificadorProgreso* pNotificador, bool link); public: /**If there is an error throws exception GIL::DICOM::PACSException*/ virtual bool DownloadFileFromURL(const std::string& url, const std::string& filePath, GNC::IProxyNotificadorProgreso* pNotifier); /** Perform query */ virtual bool Query( void* connectionKey, const std::string& abstractSyntax, const GIL::DICOM::DicomDataset& query, std::list< GNC::GCS::Ptr >& resultsWraper, const std::string& serverId, GNC::IProxyNotificadorProgreso* pNotificador ); virtual bool QueryRetrieve( void* connectionKey, const std::string& serverId, IModeloDicom* pModelo, const GIL::DICOM::DicomDataset& base, GNC::IProxyNotificadorProgreso* pNotificador, bool link ); virtual void TestWADOURL(const std::string& url); virtual GIL::DICOM::ICustomAssociation* CreateCustomAssociation(void* connectionKey, const std::string& ambitolog, GNC::IProxyNotificadorProgreso* pNotificador = NULL); virtual void DestroyCustomAssociation(GIL::DICOM::ICustomAssociation* assoc); virtual void StartServer(); virtual void StopServer(); virtual void GetConnection(void* connectionKey); virtual void ReleaseConnection(void* connectionKey); bool LeerDicomDir(const std::string& pathDicomDir, IModeloDicom* pModelo); virtual bool findAndGetTagFromFile(const std::string& ruta, unsigned short group, unsigned short element, std::string& value); virtual bool EsDICOM(const std::string& path, bool accept_dicomdir, bool accept_dicomfile) const; virtual bool EsPDF(const std::string& path) const; private: virtual bool GetRutaSerie(const std::string& uidPaciente, const std::string& uidEstudio, const std::string& uidSerie, std::string& ruta, bool crearDirectorios = true, bool temporal = false); virtual bool GetRutaImagen(const std::string& uidPaciente, const std::string& uidEstudio, const std::string& uidSerie, const std::string& uidImagen, std::string& ruta, bool crearDirectorios = true); public: virtual bool GetRutaImagenTemp(const std::string& uidPaciente, const std::string& uidEstudio, const std::string& uidSerie, const std::string& uidImagen, std::string& ruta, bool crearDirectorios = true); void DumpFileElements(const std::string& rutaFichero, IInspectCallBack* callback); //region "Métodos de Dicomización" IDICOMImg2DCM* CrearInstanciaDeImportacion(); void LiberarInstanciaDeImportacion(IDICOMImg2DCM* instancia); //endregion //region "Métodos de carga/almacenamiento de DICOMS" IDICOMManager* CrearInstanciaDeDICOMManager(); void LiberarInstanciaDeDICOMManager(IDICOMManager* instancia); //endregion protected: PACSController(); ~PACSController(); static void PurgarDirectorioTemporal(); protected: static PACSController* m_pInstance; ListaInstanciasImg2DCMType m_ListaInstanciasDicomImg2DCM; GIL::DICOM::Service* m_pServiceInstance; private: void buildDicomDir(); }; }; }; ginkgocadx-3.8.7/cadxcore/main/controllers/parserxmlenglish.cpp000066400000000000000000001010451314736454600250420ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #ifndef _WIN32 #include #endif #include #include
    #include #include "parserxmlenglish.h" #include #include #include #include #include #include
    #include
    #include
    #include "dcmtk/dicomservers.h" //creacion de la base de datos de mensajes GIL::ParserXMLEnglish::ParserXMLEnglish() { } GIL::ParserXMLEnglish::~ParserXMLEnglish() { } //region "Interfaz generica" std::list GIL::ParserXMLEnglish::GetKeys() { std::list list; list.push_back("gnkworkflows"); list.push_back("gnkworkflow"); return list; } /* Parsea la cadena XML y construye el modelo de integracion. Los parametros no encontrados se asignan por defecto segun lo especificado en la configuracion global */ void GIL::ParserXMLEnglish::ParseIntegrationXML(GIL::IntegrationModelList& models, wxXmlNode* pRoot) { MapaServers servers; // PreCargamos la lista de PACS de la configuracion DicomServerList::TServerList ListOfServers = DicomServerList::Instance()->GetServerList(); for (DicomServerList::TServerList::iterator it = ListOfServers.begin(); it != ListOfServers.end(); ++it) { IModeloPACSServer pacs; pacs.sid = (*it)->ID; pacs.AET = (*it)->AET; pacs.hostname = (*it)->HostName; pacs.puerto = (*it)->Port; servers[pacs.sid] = pacs; } // if (pRoot->GetName().CmpNoCase(wxT("gnkworkflows")) == 0) { wxString propVal; // Parseamos los PACS especificados por fichero for (wxXmlNode* nodo = pRoot->GetChildren(); nodo != NULL; nodo = nodo->GetNext()) { if (nodo->GetName().CmpNoCase(wxT("pacs")) == 0) { // Configuracion de PACS GIL::IModeloPACSServer pacsServer; propVal = nodo->GetAttribute(wxT("sid"), wxEmptyString); if( !propVal.empty() ) { pacsServer.sid = propVal.ToUTF8(); } else { throw IntegrationException(_Std("Omitted Identificator"), "CONF/pacs"); } propVal = nodo->GetAttribute(wxT("aet"), wxEmptyString); if( !propVal.empty() ) { pacsServer.AET = propVal.ToUTF8(); } else { throw IntegrationException(_Std("Omitted AET"), "CONF/pacs"); } propVal = nodo->GetAttribute(wxT("hostname"), wxEmptyString); if( !propVal.empty() ) { pacsServer.hostname = propVal.ToUTF8(); } else { throw IntegrationException(_Std("Hostname missing"), "CONF/pacs"); } propVal = nodo->GetAttribute(wxT("port"), wxEmptyString); if( !propVal.empty() ) { pacsServer.puerto = propVal.ToUTF8(); } else { throw IntegrationException(_Std("Omitted port"), "CONF/pacs"); } propVal = nodo->GetAttribute(wxT("tls"), wxEmptyString); if( propVal.CmpNoCase(wxT("yes")) == 0 || propVal.CmpNoCase(wxT("true")) == 0 || propVal.CmpNoCase(wxT("si")) == 0 || propVal.CmpNoCase(wxT("1")) == 0 ) { pacsServer.tls = true; } else { pacsServer.tls = false; } propVal = nodo->GetAttribute(wxT("pacs-user"), wxEmptyString); if( !propVal.empty()) { pacsServer.user = propVal.ToUTF8(); } propVal = nodo->GetAttribute(wxT("pacs-password"), wxEmptyString); if( !propVal.empty()) { pacsServer.password = propVal.ToUTF8(); } propVal = nodo->GetAttribute(wxT("wado-url"), wxEmptyString); if( !propVal.empty()) { pacsServer.wadoURI = propVal.ToUTF8(); } propVal = nodo->GetAttribute(wxT("verify-credentials"), wxEmptyString); if( propVal.CmpNoCase(wxT("yes")) == 0 || propVal.CmpNoCase(wxT("true")) == 0 || propVal.CmpNoCase(wxT("si")) == 0 || propVal.CmpNoCase(wxT("1")) == 0 ) { pacsServer.verify = true; } else { pacsServer.verify = false; } propVal = nodo->GetAttribute(wxT("retrieve-method"), wxEmptyString); if( propVal.CmpNoCase(wxT("get")) == 0 ) { pacsServer.metodo = GIL::IModeloPACSServer::IMPS_GET; } else if (propVal.CmpNoCase(wxT("wado")) == 0) { pacsServer.metodo = GIL::IModeloPACSServer::IMPS_WADO; } else { pacsServer.metodo = GIL::IModeloPACSServer::IMPS_MOVE; } propVal = nodo->GetAttribute(wxT("pdu"), wxEmptyString); if( propVal.empty()) { pacsServer.pdu = "16384"; } else { pacsServer.pdu = propVal.ToUTF8(); } propVal = nodo->GetAttribute(wxT("retrieve-level"), wxEmptyString); if( propVal.empty()) { pacsServer.retrieveLevel = "SERIES"; } else { pacsServer.retrieveLevel = propVal.ToUTF8(); } propVal = nodo->GetAttribute(wxT("charset"), wxEmptyString); if( !propVal.empty() ) { pacsServer.defaultCharset = propVal.ToUTF8(); } else { pacsServer.defaultCharset = "ISO_IR 100"; } for (wxXmlNode* subnodo = nodo->GetChildren(); subnodo != NULL; subnodo = subnodo->GetNext()) { if (subnodo->GetName().CmpNoCase(wxT("client-cert")) == 0) { pacsServer.cert = subnodo->GetNodeContent().ToUTF8(); } else if (subnodo->GetName().CmpNoCase(wxT("client-key")) == 0) { pacsServer.key = subnodo->GetNodeContent().ToUTF8(); } } servers[pacsServer.sid] = pacsServer; try { GNC::GCS::Ptr server = DicomServerList::Instance()->GetServer(pacsServer.sid); server->AET = pacsServer.AET; server->HostName = pacsServer.hostname; long puerto; long pdu; if(!wxString::FromUTF8(pacsServer.pdu.c_str()).ToLong(&pdu)) { throw IntegrationException(_Std("The pdu size is not a valid number"), "CONF/pacs"); } server->PDU = pdu; if(wxString::FromUTF8(pacsServer.puerto.c_str()).ToLong(&puerto)) { server->Port = puerto; } else { throw IntegrationException(_Std("Port is not a valid number"), "CONF/pacs"); } if (pacsServer.metodo == GIL::IModeloPACSServer::IMPS_GET) { server->retrieveMethod = DicomServer::GET; } else if (pacsServer.metodo == GIL::IModeloPACSServer::IMPS_WADO) { server->retrieveMethod = DicomServer::WADO; } else { server->retrieveMethod = DicomServer::MOVE; } server->retrieveSeries = wxString::FromUTF8(pacsServer.retrieveLevel.c_str()).CmpNoCase(wxT("SERIES")) == 0; server->useTLS = pacsServer.tls; server->verifyCredentials = pacsServer.verify; server->certificate = pacsServer.cert; server->privateKey = pacsServer.key; server->pacsUser = pacsServer.user; server->pacsPass = pacsServer.password; server->wadoURI = pacsServer.wadoURI; DicomServerList::Instance()->SetDefaultServer(server->ID); } catch (GinkgoNoServerFoundException& ) { long puerto; long pdu; if(!wxString::FromUTF8(pacsServer.pdu.c_str()).ToLong(&pdu)) { throw IntegrationException(_Std("The pdu size is not a valid number"), "CONF/pacs"); } if(wxString::FromUTF8(pacsServer.puerto.c_str()).ToLong(&puerto)) { DicomServer::TRetrieveMethod retrieveMethod = DicomServer::MOVE; if ( pacsServer.metodo == GIL::IModeloPACSServer::IMPS_GET) { retrieveMethod = DicomServer::GET; } else if (pacsServer.metodo == GIL::IModeloPACSServer::IMPS_WADO) { retrieveMethod = DicomServer::WADO; } DicomServerList::Instance()->AddServer( DicomServer(pacsServer.sid, pacsServer.AET, pacsServer.hostname, (int)puerto, 0, true, pdu, pacsServer.tls, pacsServer.user, pacsServer.password, retrieveMethod, pacsServer.wadoURI, wxString::FromUTF8(pacsServer.retrieveLevel.c_str()).Upper() == wxT("SERIES"), false, pacsServer.verify, pacsServer.cert, pacsServer.key, pacsServer.defaultCharset), true ); } else { throw IntegrationException(_Std("The port is not a valid number"), "CONF/pacs"); } } } } // Parseamos las gnkworkflows for (wxXmlNode* nodo = pRoot->GetChildren(); nodo != NULL; nodo = nodo->GetNext()) { if (nodo->GetName().CmpNoCase(wxT("gnkworkflow") ) == 0) { // gnkworkflow GIL::IModeloIntegracion* modelo = ParseGnkWorkflow(nodo, servers); models.push_back(modelo); } //fin gnkworkflow } //fin de parseo de gnkworkflows } else if (pRoot->GetName().CmpNoCase(wxT("gnkworkflow")) == 0) { GIL::IModeloIntegracion* modelo = ParseGnkWorkflow(pRoot, servers); models.push_back(modelo); } else { throw IntegrationException(_Std("Setting not found"), "CONF"); } } GIL::IModeloIntegracion* GIL::ParserXMLEnglish::ParseGnkWorkflow(wxXmlNode* nodo, GIL::ParserXMLEnglish::MapaServers& servers) { std::string xpp; // XML Pretty Printed for extended information info. wxString propVal; GIL::IModeloIntegracion* modelo = new IModeloIntegracion(); //se copia el raw data { wxXmlNode* pNodo = new wxXmlNode(*nodo); wxXmlDocument docTmp; docTmp.SetRoot(pNodo); wxStringOutputStream out; docTmp.Save(out,wxXML_NO_INDENTATION); modelo->rawXmlData = out.GetString().ToUTF8(); } // propVal = nodo->GetAttribute(wxT("tid"), wxEmptyString); if( !propVal.empty() ) { modelo->idPlantilla = propVal.ToUTF8(); } else { modelo->idPlantilla = ""; } propVal = nodo->GetAttribute(wxT("action"), wxEmptyString).Lower(); if ( !propVal.empty() ) { if (propVal.CmpNoCase(wxT("retrieve")) == 0) { modelo->accion = GIL::IModeloIntegracion::TA_Obtener; } else if (propVal.CmpNoCase(wxT("dicomize")) == 0 ) { modelo->accion = GIL::IModeloIntegracion::TA_Dicomizar; } else if (propVal.CmpNoCase(wxT("print")) == 0) { modelo->accion = GIL::IModeloIntegracion::TA_Imprimir; } else if (propVal.CmpNoCase(wxT("open")) == 0) { modelo->accion = GIL::IModeloIntegracion::TA_Open; } else { throw IntegrationException(_Std("\"action\" attribute invalid at \"gnkworkflow\" scope" ), "CONF/template"); } } else { throw IntegrationException(_Std("\"action\" attribute expected at \"gnkworkflow\" scope"), "CONF/template"); } propVal = nodo->GetAttribute(wxT("petition-id"), wxEmptyString); if( !propVal.empty() ) { modelo->GlobalVariables.InsertVariable(GKDI_HCE_PETITION_ID, std::string(propVal.ToUTF8())); } propVal = nodo->GetAttribute(wxT("scope"), wxEmptyString); if( !propVal.empty() ) { modelo->GlobalVariables.InsertVariable(GKDI_JIMENA_AMBITO_PETICION,std::string(propVal.ToUTF8())); } if( nodo->HasAttribute(wxT("pacs-retrieve-sid")) ) { propVal = nodo->GetAttribute(wxT("pacs-retrieve-sid"), wxEmptyString); if (!propVal.IsEmpty()) { modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_PACS_RETRIEVE_SID, std::string(propVal.ToUTF8())); } else { throw IntegrationException(_Std("\"pacs-retrieve-sid\" attribute empty at \"gnkworkflow\" scope"), "CONF/template"); } } if( nodo->HasAttribute(wxT("pacs-store-sid")) ) { propVal = nodo->GetAttribute(wxT("pacs-store-sid"), wxEmptyString); if (!propVal.IsEmpty()) { modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_PACS_STORE_SID, std::string(propVal.ToUTF8())); } else { throw IntegrationException(_Std("\"pacs-store-sid\" attribute empty at \"gnkworkflow\" scope"), "CONF/template"); } } modelo->GlobalVariables.InsertVariable(GKDI_HCE_ID, "defaultHCE"); //recorremos los hijos de las gnkworkflows for (wxXmlNode* hijo = nodo->GetChildren(); hijo != NULL; hijo = hijo->GetNext()) { //files... if (hijo->GetName().CmpNoCase(wxT("file")) == 0 && hijo->GetChildren() != NULL) { modelo->Files.push_back(std::string(hijo->GetChildren()->GetContent().ToUTF8())); } //parseamos los campos dimse if(hijo->GetName().CmpNoCase(wxT("query-retrieve-level")) == 0) { propVal = hijo->GetAttribute(wxT("value"), wxEmptyString); if ( !propVal.empty() ) { modelo->TagsDICOMOverwrite.tags["0008|0052"] = std::string(propVal.Upper().ToUTF8()); } else { throw IntegrationException(_Std("\"value\" attribute expected at \"query-retrieve-level\" scope"), "CONF/template"); } } //parseamos los campos d paciente if(hijo->GetName().CmpNoCase(wxT("patient")) == 0) { for (wxXmlNode* hijosPaciente = hijo->GetChildren(); hijosPaciente != NULL; hijosPaciente = hijosPaciente->GetNext()) { if(hijosPaciente->GetName().CmpNoCase(wxT("name")) == 0) { if(hijosPaciente->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_PATIENT_NAME, std::string(hijosPaciente->GetChildren()->GetContent().ToUTF8())); } } else if(hijosPaciente->GetName().CmpNoCase(wxT("first-surname")) == 0) { if(hijosPaciente->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_PATIENT_FAMILY_NAME, std::string(hijosPaciente->GetChildren()->GetContent().ToUTF8())); } } else if(hijosPaciente->GetName().CmpNoCase(wxT("second-surname")) == 0) { if(hijosPaciente->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_PATIENT_SECOND_FAMILY_NAME, std::string(hijosPaciente->GetChildren()->GetContent().ToUTF8())); } } else if(hijosPaciente->GetName().CmpNoCase(wxT("episode-number")) == 0) { if(hijosPaciente->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_HCE_EPISODE_NUMBER, std::string(hijosPaciente->GetChildren()->GetContent().ToUTF8())); } } else if(hijosPaciente->GetName().CmpNoCase(wxT("id")) == 0) { std::string codigo(propVal.ToUTF8()); std::string valor(propVal.ToUTF8()); propVal = hijosPaciente->GetAttribute(wxT("code"), wxEmptyString); if ( !propVal.empty() ) { codigo = propVal.ToUTF8(); } else { throw IntegrationException(_Std("\"code\" attribute expected at \"patient\" scope"), "CONF/template"); } propVal = hijosPaciente->GetAttribute(wxT("value"), wxEmptyString); if ( !propVal.empty() ) { valor = propVal.ToUTF8(); if (!modelo->GlobalVariables.Contains(GKDI_PATIENT_ID)) { modelo->GlobalVariables.InsertVariable(GKDI_PATIENT_ID, valor); } } } } }//fin paciente //parseamos los campos d medico if(hijo->GetName().CmpNoCase(wxT("physician")) == 0) { for (wxXmlNode* hijosMedico = hijo->GetChildren(); hijosMedico != NULL; hijosMedico = hijosMedico->GetNext()) { if(hijosMedico->GetName().CmpNoCase(wxT("name")) == 0) { if(hijosMedico->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_NAME, std::string(hijosMedico->GetChildren()->GetContent().ToUTF8())); } } else if(hijosMedico->GetName().CmpNoCase(wxT("first-surname")) == 0) { if(hijosMedico->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_FAMILY_NAME, std::string(hijosMedico->GetChildren()->GetContent().ToUTF8())); } } else if(hijosMedico->GetName().CmpNoCase(wxT("second-surname")) == 0) { if(hijosMedico->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_SECOND_FAMILY_NAME, std::string(hijosMedico->GetChildren()->GetContent().ToUTF8())); } } else if(hijosMedico->GetName().CmpNoCase(wxT("id")) == 0) { std::string codigo(propVal.ToUTF8()); std::string valor(propVal.ToUTF8()); propVal = hijosMedico->GetAttribute(wxT("code"), wxEmptyString); if ( !propVal.empty() ) { codigo = propVal.ToUTF8(); } else { throw IntegrationException(_Std("\"code\" attribute expected at \"physician\" scope"), "CONF/template"); } propVal = hijosMedico->GetAttribute(wxT("value"), wxEmptyString); if ( !propVal.empty() ) { valor = propVal.ToUTF8(); } else { throw IntegrationException(_Std("\"value\" attribute expected at \"physician\" scope"), "CONF/template"); } if (!modelo->GlobalVariables.Contains(GKDI_REFERRING_PHISICIAN_ID)) { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_ID, valor); } } else if(hijosMedico->GetName() == wxT("institution")) { propVal = hijosMedico->GetAttribute(wxT("iid"), wxEmptyString); if ( !propVal.empty() ) { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_INSTITUTION_ID, std::string(propVal.ToUTF8())); } else { throw IntegrationException(_Std("\"iid\" atribute expected at \"institution\" scope"), "CONF/template"); } if(hijosMedico->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_INSTITUTION_NAME, std::string(hijosMedico->GetChildren()->GetContent().ToUTF8())); } } } }//fin medico if(hijo->GetName().CmpNoCase(wxT("hce")) == 0) { propVal = hijo->GetAttribute(wxT("aid"), wxEmptyString); if ( !propVal.empty() ) { modelo->GlobalVariables.InsertVariable(GKDI_HCE_ID, std::string(propVal.ToUTF8())); } else { LOG_DEBUG("ParserXMLEnglish","application id unespecified, using \"defaultHCE\""); modelo->GlobalVariables.InsertVariable(GKDI_HCE_ID, "defaultHCE"); } } if (hijo->GetName().CmpNoCase(wxT("metadata")) == 0) { std::string codigo; std::string clave; std::string valor; std::string descripcion; propVal = hijo->GetAttribute(wxT("code"), wxEmptyString); if ( !propVal.empty() ) { codigo = propVal.Upper().ToUTF8(); } else { throw IntegrationException(_Std("\"code\" attribute expected at \"metadata\" scope"), "CONF/template"); } propVal = hijo->GetAttribute(wxT("key"), wxEmptyString); if ( !propVal.empty() ) { clave = propVal.Lower().ToUTF8(); } else { throw IntegrationException(_Std("\"key\" attribute expected at \"metadata\" scope"), "CONF/template"); } propVal = hijo->GetAttribute(wxT("value"), wxEmptyString); if ( !propVal.empty() ) { valor = propVal.ToUTF8(); } propVal = hijo->GetAttribute(wxT("description"), wxEmptyString); if ( !propVal.empty() ) { descripcion = propVal.ToUTF8(); } if (codigo == "DICOM") { modelo->TagsDICOMOverwrite.tags[clave] = valor; } else { modelo->GlobalVariables.InsertVariable(clave, valor, descripcion); } } if (hijo->GetName().CmpNoCase(wxT("observations")) == 0) { if(hijo->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_OBSERVATIONS, std::string(hijo->GetChildren()->GetContent().ToUTF8())); } } if (hijo->GetName().CmpNoCase(wxT("message_template")) == 0) { if(hijo->GetChildren() != NULL) { modelo->messageTemplate = std::string(hijo->GetChildren()->GetContent().ToUTF8()); } } }//fin hijos gnkworkflow //insert tags dicom... if (modelo->accion == GIL::IModeloIntegracion::TA_Dicomizar) { //only overwrite en dicomize no en obtain.... if (modelo->GlobalVariables.Contains(GKDI_PATIENT_ID)) { modelo->TagsDICOMOverwrite.tags["0010|0020"] = modelo->GlobalVariables.GetValue(GKDI_PATIENT_ID); } if (modelo->GlobalVariables.Contains(GKDI_PATIENT_NAME)) { std::ostringstream ostr; ostr << modelo->GlobalVariables.GetValue(GKDI_PATIENT_FAMILY_NAME); if (modelo->GlobalVariables.Contains(GKDI_PATIENT_SECOND_FAMILY_NAME)) { ostr << " " << modelo->GlobalVariables.GetValue(GKDI_PATIENT_SECOND_FAMILY_NAME); } ostr << "^" << modelo->GlobalVariables.GetValue(GKDI_PATIENT_NAME); modelo->TagsDICOMOverwrite.tags["0010|0010"] = ostr.str(); } if (modelo->GlobalVariables.Contains(GKDI_REFERRING_PHISICIAN_NAME)) { std::ostringstream ostr; ostr << modelo->GlobalVariables.GetValue(GKDI_REFERRING_PHISICIAN_FAMILY_NAME); if (modelo->GlobalVariables.Contains(GKDI_REFERRING_PHISICIAN_SECOND_FAMILY_NAME)) { ostr << " " << modelo->GlobalVariables.GetValue(GKDI_REFERRING_PHISICIAN_SECOND_FAMILY_NAME); } ostr << "^" << modelo->GlobalVariables.GetValue(GKDI_REFERRING_PHISICIAN_NAME); modelo->TagsDICOMOverwrite.tags["0008|0090"] = ostr.str(); } if (modelo->GlobalVariables.Contains(GKDI_REFERRING_PHISICIAN_INSTITUTION_NAME)) { modelo->TagsDICOMOverwrite.tags["0008|0080"] = modelo->GlobalVariables.GetValue(GKDI_REFERRING_PHISICIAN_INSTITUTION_NAME); } if (!modelo->GlobalVariables.Contains(GKDI_HCE_PETITION_ID)) { LOG_DEBUG("ParserXMLEnglish", "\"petition-id\" attribute not specified"); } } else if (modelo->accion == GIL::IModeloIntegracion::TA_Obtener) { if (modelo->TagsDICOMOverwrite.tags.empty() && modelo->Files.empty()) { throw IntegrationException(_Std("You must specify attributes you want to use in the query"), "CONF/template"); } } if (!modelo->GlobalVariables.Contains(GKDI_PATIENT_ID) && modelo->accion == GIL::IModeloIntegracion::TA_Dicomizar) { throw IntegrationException(_Std("It has been read a \"patient\" tag without identifiers"), "CONF/template"); } //se pone el codigo de aplicacion y el primer PACS de la configuracion si no nos ha venido ninguno std::string codigoAplicacion; GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","CodigoAplicacion", codigoAplicacion); modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_APPLICATION_CODE, codigoAplicacion); if(!servers.empty()) { GNC::GCS::Ptr pServer = DicomServerList::Instance()->GetDefaultServer(); if (!modelo->GlobalVariables.Contains(GKDI_GLOBAL_PACS_STORE_SID) && pServer.IsValid()) { modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_PACS_STORE_SID, pServer->ID); } if (!modelo->GlobalVariables.Contains(GKDI_GLOBAL_PACS_RETRIEVE_SID) && pServer.IsValid()) { modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_PACS_RETRIEVE_SID, pServer->ID); } } if ( (modelo->accion == GIL::IModeloIntegracion::TA_Dicomizar && !modelo->GlobalVariables.Contains(GKDI_GLOBAL_PACS_STORE_SID)) || (modelo->accion == GIL::IModeloIntegracion::TA_Obtener && !modelo->GlobalVariables.Contains(GKDI_GLOBAL_PACS_RETRIEVE_SID)) ) { throw IntegrationException(_Std("You must define a default PACS in the integration XML or in the settings menu"), "CONF/template"); } return modelo; } ginkgocadx-3.8.7/cadxcore/main/controllers/parserxmlenglish.h000066400000000000000000000024661314736454600245160ustar00rootroot00000000000000/* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include
    #include namespace GIL { class ParserXMLEnglish : public GIL::IXMLIntegrationParser { public: typedef std::map MapaServers; ParserXMLEnglish(); ~ParserXMLEnglish(); virtual std::list GetKeys(); virtual void ParseIntegrationXML(GIL::IntegrationModelList& models, wxXmlNode* pRoot); virtual GIL::IModeloIntegracion* ParseGnkWorkflow(wxXmlNode* pNode, MapaServers& servers); protected: }; } ginkgocadx-3.8.7/cadxcore/main/controllers/parserxmlspanish.cpp000066400000000000000000001021511314736454600250550ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #ifndef _WIN32 #include #endif #include #include
    #include #include "parserxmlspanish.h" #include #include #include #include #include #include
    #include
    #include
    #include "dcmtk/dicomservers.h" //creacion de la base de datos de mensajes GIL::ParserXMLSpanish::ParserXMLSpanish() { } GIL::ParserXMLSpanish::~ParserXMLSpanish() { } //region "Interfaz generica" std::list GIL::ParserXMLSpanish::GetKeys() { std::list list; list.push_back("getcontextresult"); list.push_back("plantilla"); return list; } /* Parsea la cadena XML y construye el modelo de integracion. Los parametros no encontrados se asignan por defecto segun lo especificado en la configuracion global */ void GIL::ParserXMLSpanish::ParseIntegrationXML(GIL::IntegrationModelList& models, wxXmlNode* pRoot) { MapaServers servers; // PreCargamos la lista de PACS de la configuracion DicomServerList::TServerList ListOfServers = DicomServerList::Instance()->GetServerList(); for (DicomServerList::TServerList::iterator it = ListOfServers.begin(); it != ListOfServers.end(); ++it) { IModeloPACSServer pacs; pacs.sid = (*it)->ID; pacs.AET = (*it)->AET; pacs.hostname = (*it)->HostName; pacs.puerto = (*it)->Port; servers[pacs.sid] = pacs; } // if (pRoot->GetName().CmpNoCase(wxT("getcontextresult")) == 0) { wxString propVal; // Parseamos los PACS especificados por fichero for (wxXmlNode* nodo = pRoot->GetChildren(); nodo != NULL; nodo = nodo->GetNext()) { if (nodo->GetName().CmpNoCase(wxT("pacs")) == 0) { // Configuracion de PACS GIL::IModeloPACSServer pacsServer; propVal = nodo->GetAttribute(wxT("sid"), wxEmptyString); if( !propVal.empty() ) { pacsServer.sid = propVal.ToUTF8(); } else { throw IntegrationException(_Std("Omitted Identificator"), "CONF/pacs"); } propVal = nodo->GetAttribute(wxT("aet"), wxEmptyString); if( !propVal.empty() ) { pacsServer.AET = propVal.ToUTF8(); } else { throw IntegrationException(_Std("Omitted AET"), "CONF/pacs"); } propVal = nodo->GetAttribute(wxT("hostname"), wxEmptyString); if( !propVal.empty() ) { pacsServer.hostname = propVal.ToUTF8(); } else { throw IntegrationException(_Std("Hostname missing"), "CONF/pacs"); } propVal = nodo->GetAttribute(wxT("puerto"), wxEmptyString); if( !propVal.empty() ) { pacsServer.puerto = propVal.ToUTF8(); } else { throw IntegrationException(_Std("Omitted port"), "CONF/pacs"); } propVal = nodo->GetAttribute(wxT("tls"), wxEmptyString); if( propVal.CmpNoCase(wxT("yes")) == 0 || propVal.CmpNoCase(wxT("true")) == 0 || propVal.CmpNoCase(wxT("si")) == 0 || propVal.CmpNoCase(wxT("1")) == 0 ) { pacsServer.tls = true; } else { pacsServer.tls = false; } propVal = nodo->GetAttribute(wxT("usuario-pacs"), wxEmptyString); if( !propVal.empty()) { pacsServer.user = propVal.ToUTF8(); } propVal = nodo->GetAttribute(wxT("password-pacs"), wxEmptyString); if( !propVal.empty()) { pacsServer.password = propVal.ToUTF8(); } propVal = nodo->GetAttribute(wxT("verify-credentials"), wxEmptyString); if( propVal.CmpNoCase(wxT("yes")) == 0 || propVal.CmpNoCase(wxT("true")) == 0 || propVal.CmpNoCase(wxT("si")) == 0 || propVal.CmpNoCase(wxT("1")) == 0 ) { pacsServer.verify = true; } else { pacsServer.verify = false; } propVal = nodo->GetAttribute(wxT("metodo"), wxEmptyString); if( propVal.CmpNoCase(wxT("get")) == 0 ) { pacsServer.metodo = GIL::IModeloPACSServer::IMPS_GET; } else { pacsServer.metodo = GIL::IModeloPACSServer::IMPS_MOVE; } propVal = nodo->GetAttribute(wxT("pdu"), wxEmptyString); if( propVal.empty()) { pacsServer.pdu = "16384"; } else { pacsServer.pdu = propVal.ToUTF8(); } propVal = nodo->GetAttribute(wxT("nivel-recuperacion"), wxEmptyString); if( propVal.empty()) { pacsServer.retrieveLevel = "SERIES"; } else { pacsServer.retrieveLevel = propVal.ToUTF8(); } for (wxXmlNode* subnodo = nodo->GetChildren(); subnodo != NULL; subnodo = subnodo->GetNext()) { if (subnodo->GetName().CmpNoCase(wxT("client-cert")) == 0) { pacsServer.cert = subnodo->GetNodeContent().ToUTF8(); } else if (subnodo->GetName().CmpNoCase(wxT("client-key")) == 0) { pacsServer.key = subnodo->GetNodeContent().ToUTF8(); } } servers[pacsServer.sid] = pacsServer; try { GNC::GCS::Ptr server = DicomServerList::Instance()->GetServer(pacsServer.sid); server->AET = pacsServer.AET; server->HostName = pacsServer.hostname; long puerto; long pdu; if(!wxString::FromUTF8(pacsServer.pdu.c_str()).ToLong(&pdu)) { throw IntegrationException(_Std("The pdu size is not a valid number"), "CONF/pacs"); } server->PDU = pdu; if(wxString::FromUTF8(pacsServer.puerto.c_str()).ToLong(&puerto)) { server->Port = puerto; } else { throw IntegrationException(_Std("Port is not a valid number"), "CONF/pacs"); } if (pacsServer.metodo == GIL::IModeloPACSServer::IMPS_GET) { server->retrieveMethod = DicomServer::GET; } else { server->retrieveMethod = DicomServer::MOVE; } { wxString strTmp = wxString::FromUTF8(pacsServer.retrieveLevel.c_str()); server->retrieveSeries = strTmp.CmpNoCase(wxT("SERIES")) == 0; } server->useTLS = pacsServer.tls; server->verifyCredentials = pacsServer.verify; server->certificate = pacsServer.cert; server->privateKey = pacsServer.key; server->pacsUser = pacsServer.user; server->pacsPass = pacsServer.password; DicomServerList::Instance()->SetDefaultServer(server->ID); } catch (GinkgoNoServerFoundException& ) { long puerto; long pdu; if(!wxString::FromUTF8(pacsServer.pdu.c_str()).ToLong(&pdu)) { throw IntegrationException(_Std("The pdu size is not a valid number"), "CONF/pacs"); } if(wxString::FromUTF8(pacsServer.puerto.c_str()).ToLong(&puerto)) { DicomServer::TRetrieveMethod retrieveMethod = DicomServer::MOVE; if ( pacsServer.metodo == GIL::IModeloPACSServer::IMPS_GET) { retrieveMethod = DicomServer::GET; } DicomServerList::Instance()->AddServer( DicomServer(pacsServer.sid, pacsServer.AET, pacsServer.hostname, (int)puerto, 0, true, pdu, pacsServer.tls, pacsServer.user, pacsServer.password, retrieveMethod, "", wxString::FromUTF8(pacsServer.retrieveLevel.c_str()).Upper() == wxT("SERIES"), false, pacsServer.verify, pacsServer.cert, pacsServer.key, pacsServer.defaultCharset), true ); } else { throw IntegrationException(_Std("The port is not a valid number"), "CONF/pacs"); } } } } // Parseamos las plantillas for (wxXmlNode* nodo = pRoot->GetChildren(); nodo != NULL; nodo = nodo->GetNext()) { if (nodo->GetName().CmpNoCase(wxT("plantilla")) == 0) { // Plantilla GIL::IModeloIntegracion* modelo = ParsePlantilla(nodo, servers); models.push_back(modelo); } //fin plantilla } //fin de parseo de plantillas } else if (pRoot->GetName().CmpNoCase(wxT("plantilla")) == 0) { GIL::IModeloIntegracion* modelo = ParsePlantilla(pRoot, servers); models.push_back(modelo); } else { throw IntegrationException(_Std("Setting not found"), "CONF"); } } GIL::IModeloIntegracion* GIL::ParserXMLSpanish::ParsePlantilla(wxXmlNode* nodo, MapaServers& servers) { std::string codigoAplicacion; //se extrae de la configuracion el codigo de aplicacion GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","CodigoAplicacion", codigoAplicacion); wxString propVal; GIL::IModeloIntegracion* modelo = new IModeloIntegracion(); //se copia el raw data { wxXmlNode* pNodo = new wxXmlNode(*nodo); wxXmlDocument docTmp; docTmp.SetRoot(pNodo); wxStringOutputStream out; docTmp.Save(out,wxXML_NO_INDENTATION); modelo->rawXmlData = out.GetString().ToUTF8(); } // propVal = nodo->GetAttribute(wxT("pid"), wxEmptyString); if( !propVal.empty() ) { modelo->idPlantilla = propVal.ToUTF8(); } else { modelo->idPlantilla = ""; } propVal = nodo->GetAttribute(wxT("accion"), wxEmptyString).Lower(); if ( !propVal.empty() ) { if (propVal.CmpNoCase(wxT("obtener")) == 0) { modelo->accion = GIL::IModeloIntegracion::TA_Obtener; } else if (propVal.CmpNoCase(wxT("dicomizar")) == 0 ) { modelo->accion = GIL::IModeloIntegracion::TA_Dicomizar; } else if (propVal.CmpNoCase(wxT("imprimir")) == 0) { modelo->accion = GIL::IModeloIntegracion::TA_Imprimir; } else { throw IntegrationException(_Std("\"accion\" attribute invalid at \"plantilla\" scope" ), "CONF/template"); } } else { throw IntegrationException(_Std("\"accion\" attribute expected at \"plantilla\" scope"), "CONF/template"); } propVal = nodo->GetAttribute(wxT("id_peticion"), wxEmptyString); if( !propVal.empty() ) { modelo->GlobalVariables.InsertVariable(GKDI_HCE_PETITION_ID, std::string(propVal.ToUTF8()), "Id de peticion"); } propVal = nodo->GetAttribute(wxT("ambito"), wxEmptyString); if( !propVal.empty() ) { modelo->GlobalVariables.InsertVariable(GKDI_JIMENA_AMBITO_PETICION, std::string(propVal.ToUTF8()), "Ambito de la peticion"); } if( nodo->HasAttribute(wxT("pacs_retrieve_sid")) ) { propVal = nodo->GetAttribute(wxT("pacs_retrieve_sid"), wxEmptyString); if (!propVal.IsEmpty()) { modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_PACS_RETRIEVE_SID, std::string(propVal.ToUTF8()), "String Id del pacs de obtencion"); } else { throw IntegrationException(_Std("\"pacs_retrieve_sid\" attribute empty at \"plantilla\" scope"), "CONF/template"); } } if( nodo->HasAttribute(wxT("pacs_store_sid")) ) { propVal = nodo->GetAttribute(wxT("pacs_store_sid"), wxEmptyString); if (!propVal.IsEmpty()) { modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_PACS_STORE_SID, std::string(propVal.ToUTF8()), "String Id del pacs de almacenamiento"); } else { throw IntegrationException(_Std("\"pacs_store_sid\" attribute empty at \"plantilla\" scope"), "CONF/template"); } } //recorremos los hijos de las plantillas for (wxXmlNode* hijo = nodo->GetChildren(); hijo != NULL; hijo = hijo->GetNext()) { if(hijo->GetName().CmpNoCase(wxT("dimse")) == 0) { //parseamos los campos dimse std::string uid; propVal = hijo->GetAttribute(wxT("uid"), wxEmptyString); if ( !propVal.empty() ) { uid = propVal.ToUTF8(); } else { uid = ""; if(modelo->accion != GIL::IModeloIntegracion::TA_Dicomizar) { throw IntegrationException(_Std("\"uid\" attribute expected at \"dimse\" scope"), "CONF/template"); } } propVal = hijo->GetAttribute(wxT("ambito"), wxEmptyString).Lower(); if ( !propVal.empty() ) { if (propVal.CmpNoCase(wxT("study")) == 0) { modelo->TagsDICOMOverwrite.tags["0008|0052"] = "STUDY"; //study instance uid modelo->TagsDICOMOverwrite.tags["0020|000d"] = uid; } else if (propVal.CmpNoCase(wxT("series")) == 0) { modelo->TagsDICOMOverwrite.tags["0008|0052"] = "SERIES"; //series instance uid modelo->TagsDICOMOverwrite.tags["0020|000e"] = uid; } else if (propVal.CmpNoCase(wxT("image")) == 0) { modelo->TagsDICOMOverwrite.tags["0008|0052"] = "IMAGE"; //sop instance modelo->TagsDICOMOverwrite.tags["0008|0018"] = uid; //sop instance uid } else { throw IntegrationException(_Std("\"ambito\" attribute invalid at \"dimse\" scope"), "CONF/template"); } } else { modelo->TagsDICOMOverwrite.tags["0020|000d"] = "STUDY"; if(modelo->accion != GIL::IModeloIntegracion::TA_Dicomizar) { throw IntegrationException(_Std("\"ambito\" attribute expected at \"dimse\" scope"), "CONF/template"); } } } //parseamos los campos d paciente if(hijo->GetName().CmpNoCase(wxT("paciente")) == 0) { for (wxXmlNode* hijosPaciente = hijo->GetChildren(); hijosPaciente != NULL; hijosPaciente = hijosPaciente->GetNext()) { if(hijosPaciente->GetName().CmpNoCase(wxT("nombre")) == 0) { if(hijosPaciente->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_PATIENT_NAME, std::string(hijosPaciente->GetChildren()->GetContent().ToUTF8()), "Patient Name"); } } else if(hijosPaciente->GetName().CmpNoCase(wxT("apellido1")) == 0) { if(hijosPaciente->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_PATIENT_FAMILY_NAME, std::string(hijosPaciente->GetChildren()->GetContent().ToUTF8()), "Patient Surname"); } } else if(hijosPaciente->GetName().CmpNoCase(wxT("apellido2")) == 0) { if(hijosPaciente->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_PATIENT_SECOND_FAMILY_NAME, std::string(hijosPaciente->GetChildren()->GetContent().ToUTF8()), "Patient Second Surname"); } } else if(hijosPaciente->GetName().CmpNoCase(wxT("numero_episodio")) == 0) { if(hijosPaciente->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_HCE_EPISODE_NUMBER, std::string(hijosPaciente->GetChildren()->GetContent().ToUTF8()), "Episode Number"); } } else if(hijosPaciente->GetName().CmpNoCase(wxT("id")) == 0) { std::string codigo(propVal.ToUTF8()); std::string valor(propVal.ToUTF8()); propVal = hijosPaciente->GetAttribute(wxT("codigo"), wxEmptyString); if ( !propVal.empty() ) { codigo = propVal.ToUTF8(); } else { throw IntegrationException(_Std("\"codigo\" attribute expected at \"paciente\" scope"), "CONF/template"); } propVal = hijosPaciente->GetAttribute(wxT("valor"), wxEmptyString); if ( !propVal.empty() ) { valor = propVal.ToUTF8(); if (!modelo->GlobalVariables.Contains(GKDI_PATIENT_ID) || codigo=="PI") { modelo->GlobalVariables.InsertVariable(GKDI_PATIENT_ID, valor, "Patient Id"); } } } } }//fin paciente //parseamos los campos d medico if(hijo->GetName().CmpNoCase(wxT("medico")) == 0) { for (wxXmlNode* hijosMedico = hijo->GetChildren(); hijosMedico != NULL; hijosMedico = hijosMedico->GetNext()) { if(hijosMedico->GetName().CmpNoCase(wxT("nombre")) == 0) { if(hijosMedico->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_NAME, std::string(hijosMedico->GetChildren()->GetContent().ToUTF8()), "Referring Physician Name"); } } else if(hijosMedico->GetName().CmpNoCase(wxT("apellido1")) == 0) { if(hijosMedico->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_FAMILY_NAME, std::string(hijosMedico->GetChildren()->GetContent().ToUTF8()), "Referring Physician Family Name"); } } else if(hijosMedico->GetName().CmpNoCase(wxT("apellido2")) == 0) { if(hijosMedico->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_SECOND_FAMILY_NAME, std::string(hijosMedico->GetChildren()->GetContent().ToUTF8()), "Referring Physician Second Family Name"); } } else if(hijosMedico->GetName().CmpNoCase(wxT("id")) == 0) { std::string codigo(propVal.ToUTF8()); std::string valor(propVal.ToUTF8()); propVal = hijosMedico->GetAttribute(wxT("codigo"), wxEmptyString); if ( !propVal.empty() ) { codigo = propVal.ToUTF8(); } else { throw IntegrationException(_Std("\"codigo\" attribute expected at \"medico\" scope"), "CONF/template"); } propVal = hijosMedico->GetAttribute(wxT("valor"), wxEmptyString); if ( !propVal.empty() ) { valor = propVal.ToUTF8(); } else { throw IntegrationException(_Std("\"valor\" attribute expected at \"medico\" scope"), "CONF/template"); } if (!modelo->GlobalVariables.Contains(GKDI_REFERRING_PHISICIAN_ID) || codigo=="NNESP") { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_ID, valor, "Referring Physician Id"); } } else if(hijosMedico->GetName().CmpNoCase(wxT("centro")) == 0) { propVal = hijosMedico->GetAttribute(wxT("cid"), wxEmptyString); if ( !propVal.empty() ) { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_INSTITUTION_ID, std::string(propVal.ToUTF8())); } else { throw IntegrationException(_Std("\"cid\" atribute expected at \"centro\" scope"), "CONF/template"); } if(hijosMedico->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_REFERRING_PHISICIAN_INSTITUTION_NAME, std::string(hijosMedico->GetChildren()->GetContent().ToUTF8())); } } } }//fin medico if(hijo->GetName().CmpNoCase(wxT("hce")) == 0) { propVal = hijo->GetAttribute(wxT("aid"), wxEmptyString); if ( !propVal.empty() ) { modelo->GlobalVariables.InsertVariable(GKDI_HCE_ID, std::string(propVal.ToUTF8())); } else { throw IntegrationException(_Std("\"aid\" attribute expected at \"hce\" scope"), "CONF/template"); } } if (hijo->GetName().CmpNoCase(wxT("metadato")) == 0) { std::string codigo; std::string clave; std::string valor; std::string descripcion; propVal = hijo->GetAttribute(wxT("codigo"), wxEmptyString); if ( !propVal.empty() ) { codigo = propVal.Upper().ToUTF8(); } else { throw IntegrationException(_Std("\"codigo\" attribute expected at \"metadato\" scope"), "CONF/template"); } propVal = hijo->GetAttribute(wxT("clave"), wxEmptyString); if ( !propVal.empty() ) { clave = propVal.Lower().ToUTF8(); } else { throw IntegrationException(_Std("\"clave\" attribute expected at \"metadato\" scope"), "CONF/template"); } propVal = hijo->GetAttribute(wxT("valor"), wxEmptyString); if ( !propVal.empty() ) { valor = propVal.ToUTF8(); } propVal = hijo->GetAttribute(wxT("descripcion"), wxEmptyString); if ( !propVal.empty() ) { descripcion = propVal.ToUTF8(); } if (codigo == "DICOM") { modelo->TagsDICOMOverwrite.tags[clave] = valor; } else { modelo->GlobalVariables.InsertVariable(clave, valor, descripcion); } } if (hijo->GetName().CmpNoCase(wxT("observaciones")) == 0) { if(hijo->GetChildren() != NULL) { modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_OBSERVATIONS, std::string(hijo->GetChildren()->GetContent().ToUTF8())); } } }//fin hijos plantilla //insert tags dicom... if (modelo->accion == GIL::IModeloIntegracion::TA_Dicomizar) { //solo se sobreescribe en dicomizacion if (!modelo->GlobalVariables.Contains(GKDI_HCE_PETITION_ID)) { throw IntegrationException(_Std("\"id_peticion\" attribute expected at \"gnkworkflow\" scope"), "CONF/template"); } if (!modelo->GlobalVariables.Contains(GKDI_JIMENA_AMBITO_PETICION)) { throw IntegrationException(_Std("\"ambito\" attribute expected at \"plantilla\" scope"), "CONF/template"); } if (modelo->GlobalVariables.Contains(GKDI_PATIENT_ID)) { modelo->TagsDICOMOverwrite.tags["0010|0020"] = modelo->GlobalVariables.GetValue(GKDI_PATIENT_ID); } if (modelo->GlobalVariables.Contains(GKDI_PATIENT_NAME)) { std::ostringstream ostr; ostr << modelo->GlobalVariables.GetValue(GKDI_PATIENT_FAMILY_NAME); if (modelo->GlobalVariables.Contains(GKDI_PATIENT_SECOND_FAMILY_NAME)) { ostr << " " << modelo->GlobalVariables.GetValue(GKDI_PATIENT_SECOND_FAMILY_NAME); } ostr << "^" << modelo->GlobalVariables.GetValue(GKDI_PATIENT_NAME); modelo->TagsDICOMOverwrite.tags["0010|0010"] = ostr.str(); } if (modelo->GlobalVariables.Contains(GKDI_REFERRING_PHISICIAN_NAME)) { std::ostringstream ostr; ostr << modelo->GlobalVariables.GetValue(GKDI_REFERRING_PHISICIAN_FAMILY_NAME); if (modelo->GlobalVariables.Contains(GKDI_REFERRING_PHISICIAN_SECOND_FAMILY_NAME)) { ostr << " " << modelo->GlobalVariables.GetValue(GKDI_REFERRING_PHISICIAN_SECOND_FAMILY_NAME); } ostr << "^" << modelo->GlobalVariables.GetValue(GKDI_REFERRING_PHISICIAN_NAME); modelo->TagsDICOMOverwrite.tags["0008|0090"] = ostr.str(); } if (modelo->GlobalVariables.Contains(GKDI_REFERRING_PHISICIAN_INSTITUTION_NAME)) { modelo->TagsDICOMOverwrite.tags["0008|0080"] = modelo->GlobalVariables.GetValue(GKDI_REFERRING_PHISICIAN_INSTITUTION_NAME); } } else if (modelo->accion == GIL::IModeloIntegracion::TA_Obtener) { if (modelo->TagsDICOMOverwrite.tags.empty()) { throw IntegrationException(_Std("You must specify attributes you want to use in the query"), "CONF/template"); } } if(!modelo->GlobalVariables.Contains(GKDI_HCE_ID)) { throw IntegrationException(_Std("id_application expected"), "CONF/template"); } if (!modelo->GlobalVariables.Contains(GKDI_PATIENT_ID) && modelo->accion == GIL::IModeloIntegracion::TA_Dicomizar) { throw IntegrationException(_Std("It has been read a \"patient\" tag without identifiers"), "CONF/template"); } //se pone el codigo de aplicacion y el primer PACS de la configuracion si no nos ha venido ninguno modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_APPLICATION_CODE, codigoAplicacion); if(servers.size() > 0) { GNC::GCS::Ptr pServer = DicomServerList::Instance()->GetDefaultServer(); if (!modelo->GlobalVariables.Contains(GKDI_GLOBAL_PACS_STORE_SID) && pServer.IsValid()) { modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_PACS_STORE_SID, pServer->ID); } if (!modelo->GlobalVariables.Contains(GKDI_GLOBAL_PACS_RETRIEVE_SID) && pServer.IsValid()) { modelo->GlobalVariables.InsertVariable(GKDI_GLOBAL_PACS_RETRIEVE_SID, pServer->ID); } } if ( (modelo->accion == GIL::IModeloIntegracion::TA_Dicomizar && !modelo->GlobalVariables.Contains(GKDI_GLOBAL_PACS_STORE_SID)) || (modelo->accion == GIL::IModeloIntegracion::TA_Obtener && !modelo->GlobalVariables.Contains(GKDI_GLOBAL_PACS_RETRIEVE_SID)) ) { throw IntegrationException(_Std("You must define a default PACS in the integration XML or in the settings menu"), "CONF/template"); } return modelo; } ginkgocadx-3.8.7/cadxcore/main/controllers/parserxmlspanish.h000066400000000000000000000025231314736454600245240ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include
    class wxXmlNode; namespace GIL { class ParserXMLSpanish : public GIL::IXMLIntegrationParser { public: typedef std::map MapaServers; ParserXMLSpanish(); ~ParserXMLSpanish(); virtual std::list GetKeys(); virtual void ParseIntegrationXML(GIL::IntegrationModelList& models, wxXmlNode* pRoot); virtual GIL::IModeloIntegracion* ParsePlantilla(wxXmlNode* pNode, MapaServers& servers); protected: }; } ginkgocadx-3.8.7/cadxcore/main/controllers/permisoscore.h000066400000000000000000000004211314736454600236260ustar00rootroot00000000000000#error delete file /* * * $Id: permisoscore.h $ * Ginkgo CADx Project * * Copyright 2008-14 MetaEmotion S.L. All rights reserved. * http://ginkgo-cadx.com * * This file is licensed under LGPL v3 license. * See License.txt for details * * */ #pragma once ginkgocadx-3.8.7/cadxcore/main/controllers/smartretrievecontroller.cpp000066400000000000000000000321211314736454600264510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "smartretrievecontroller.h" #include #include #include
    #include
    #include
    #include
    #include
    #include
    #include #include
    #include #include #include #include
    #include #include #include #define LOGGER "SmartRetrieve" namespace GNC { namespace GCS { ////Anon usage thread to upload messages... Read anon usage database and send messages to the web service class SmartRetrieveService: public GNC::GCS::Thread, GNC::GCS::IEventsObserver, GNC::GCS::ILockable { public: SmartRetrieveService(int sPeriod, int maxDownloads): GNC::GCS::Thread(LOGGER), hasToStop(false), condition(sleepLocker), sleepingPeriod(sPeriod), maxDownloadsPerIteration(maxDownloads) { GNC::GCS::ControladorEventos::Instance()->Registrar(this, GNC::GCS::Events::EventoProgresoComando()); } virtual ~SmartRetrieveService() { //can't be synchronous => deathlock GNC::GCS::ControladorEventos::Instance()->DesRegistrar(this); GNC::Entorno::Instance()->GetCommandController()->AbortarComandosDeOwnerAsincrono(this); } void Destroy() { } void Stop() { hasToStop = true; condition.Broadcast(); } virtual void* Task() { try { LOG_DEBUG(LOGGER, "Waiting to to start SmartRetrieveService Task..."); //we have to lock the mutex before wait, else it will fail //sleepLocker.TryLock(); //condition.WaitTimeout(ANON_USAGE_THREAD_START_TO); while (!hasToStop) { LOG_DEBUG(LOGGER, "Starting SmartRetrieveService Task..."); //first of all get active queries... GNC::GCS::StoredQueryController::TStoredQueriesList listOfQueries = GNC::GCS::StoredQueryController::Instance()->getActiveQueries(); int numberOfDownloads = 0; for (GNC::GCS::StoredQueryController::TStoredQueriesList::iterator it = listOfQueries.begin(); it != listOfQueries.end() && numberOfDownloads < maxDownloadsPerIteration; ++it) { GNC::GCS::Ptr& pStoredQuery = (*it); //perform query... GIL::DICOM::IPACSController* pCI = NULL; typedef std::list< GNC::GCS::Ptr > TSearchResultList; TSearchResultList results; try { pCI = GNC::GCS::IEntorno::Instance()->GetPACSController(); if (pCI == NULL) { LOG_ERROR(LOGGER, "pCI is null"); continue; } pCI->GetConnection(this); GIL::DICOM::DicomDataset query; pStoredQuery->addCondition(GKDCM_QueryRetrieveLevel,"STUDY"); pStoredQuery->addConditionIfNotExists(GKDCM_StudyInstanceUID); pStoredQuery->buildQuery(query); pCI->Query(this, GKUID_FINDStudyRootQueryRetrieveInformationModel, query, results, pStoredQuery->getPacsId(), NULL); } catch (GNC::GCS::IException& ex) { LOG_WARN(LOGGER, "There has been an exception searching in PACS " << ex.GetFullCause()); } catch (...) { LOG_WARN(LOGGER, "There has been an exception searching in PACS"); } if (pCI) { pCI->ReleaseConnection(this); } //we have results stored in "results" iterate throught studyInstanceUIDs to check if we have to download them... for (TSearchResultList::iterator it = results.begin(); it != results.end(); ++it) { std::string studyInstanceUID = (*it)->getTag(GKDCM_StudyInstanceUID); if (!studyInstanceUID.empty() && !GNC::GCS::HistoryController::Instance()->ExistsStudyWithUID(studyInstanceUID)) { LOG_DEBUG(LOGGER, "Trying to download " << studyInstanceUID); //download study!! GIL::DICOM::DicomDataset base; base.tags[GKDCM_QueryRetrieveLevel] = "STUDY"; base.tags[GKDCM_StudyInstanceUID] = studyInstanceUID; { GNC::GCS::ILocker(this); inProgressStudies.insert(studyInstanceUID); } GADAPI::PACSDownloadCommandParams* pParams = new GADAPI::PACSDownloadCommandParams(pStoredQuery->getPacsId(), base, false, true); GNC::GCS::IComando* pCommand = new GADAPI::PACSDownloadCommand(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync(_Std("Downloading from PACS..."), pCommand, this); numberOfDownloads ++; if (numberOfDownloads > maxDownloadsPerIteration) { LOG_DEBUG(LOGGER, "max downloads per iteration limit raised " << numberOfDownloads); break; } } } } condition.WaitTimeout(sleepingPeriod * 1000); } } catch (...) { LOG_WARN(LOGGER, "Error in AnonUsageTask") } LOG_DEBUG(LOGGER, "Task finished..."); sleepLocker.Unlock(); return 0; } virtual void ProcesarEvento(GNC::GCS::Events::IEvent* evt) { //delete studies from inProgres... if (evt != NULL && evt->GetCodigoEvento() == ginkgoEVT_Core_ProgresoComando) { GNC::GCS::Events::EventoProgresoComando* pEvt = dynamic_cast(evt); if (pEvt != NULL && pEvt->GetTipo() == GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado && pEvt->GetComando() != NULL && pEvt->GetComando()->GetOwner() == this) { GADAPI::PACSDownloadCommandParams* pParams = dynamic_cast(pEvt->GetComando()->GetParams()); if (pParams != NULL) { GNC::GCS::ILocker locker(this); std::string studyUID = pParams->m_base.getTag(GKDCM_StudyInstanceUID); if (inProgressStudies.find(studyUID) != inProgressStudies.end()) { inProgressStudies.erase(inProgressStudies.find(studyUID)); LOG_TRACE(LOGGER, "Study downloaded " << studyUID); if (inProgressStudies.empty() && pParams->m_error.empty()) { LOG_TRACE(LOGGER, "waking up thread..."); condition.Broadcast(); } } } } } } bool hasToStop; wxMutex sleepLocker; wxCondition condition; int sleepingPeriod; int maxDownloadsPerIteration; std::set inProgressStudies; }; } } //singleton GNC::GCS::SmartRetrieveController* GNC::GCS::SmartRetrieveController::m_pInstance = NULL; GNC::GCS::SmartRetrieveController * GNC::GCS::SmartRetrieveController::Instance() { if (m_pInstance == NULL) { m_pInstance = new SmartRetrieveController(); } return m_pInstance; } void GNC::GCS::SmartRetrieveController::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } GNC::GCS::SmartRetrieveController::SmartRetrieveController(): tidService(-1), pThread(NULL) { } GNC::GCS::SmartRetrieveController::~SmartRetrieveController() { stopThread(); } void GNC::GCS::SmartRetrieveController::resetStatus() { //read settings... if (isEnabled()) { stopThread(); startThread(); LOG_TRACE(LOGGER, "SmartRetrieveController is enabled"); } else { //stop thread stopThread(); //delete all messages... LOG_TRACE(LOGGER, "SmartRetrieveController has been disabled"); } } bool GNC::GCS::SmartRetrieveController::isEnabled() { bool isEnabled; GNC::GCS::ConfigurationController::Instance()->readBoolUser("/GinkgoCore/SmartRetrieve", "Enabled", isEnabled, false); return isEnabled; } void GNC::GCS::SmartRetrieveController::enable(bool enable) { GNC::GCS::ConfigurationController::Instance()->writeBoolUser("/GinkgoCore/SmartRetrieve", "Enabled", enable); } int GNC::GCS::SmartRetrieveController::getPeriod() { int period; GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/SmartRetrieve", "Period", period, 120); return period; } void GNC::GCS::SmartRetrieveController::setPeriod(int period) { GNC::GCS::ConfigurationController::Instance()->writeIntUser("/GinkgoCore/SmartRetrieve", "Period", period); } int GNC::GCS::SmartRetrieveController::getMaxDownloadPerIteration() { int maxDownloads; GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/SmartRetrieve", "MaxDownloadsPerIteration", maxDownloads, 7); return maxDownloads; } void GNC::GCS::SmartRetrieveController::setMaxDownloadPerIteration(int maxDownloads) { GNC::GCS::ConfigurationController::Instance()->writeIntUser("/GinkgoCore/MaxDownloadsPerIteration", "Period", maxDownloads); } void GNC::GCS::SmartRetrieveController::stopThread() { GNC::GCS::ThreadController::Stop(tidService); if (pThread != NULL) { delete pThread; pThread = NULL; } } void GNC::GCS::SmartRetrieveController::startThread() { if (pThread != NULL) { stopThread(); } pThread = new SmartRetrieveService(getPeriod(), getMaxDownloadPerIteration()); tidService = GNC::GCS::ThreadController::Launch(pThread, false); } ginkgocadx-3.8.7/cadxcore/main/controllers/smartretrievecontroller.h000066400000000000000000000030421314736454600261160ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { namespace GCS { class SmartRetrieveService; class SmartRetrieveController { public: static SmartRetrieveController *Instance(); static void FreeInstance(); //stop and reload settings... void resetStatus(); bool isEnabled(); void enable(bool enable); int getPeriod(); void setPeriod(int period); int getMaxDownloadPerIteration(); void setMaxDownloadPerIteration(int maxDownloads); protected: SmartRetrieveController(); ~SmartRetrieveController(); void stopThread(); void startThread(); int tidService; SmartRetrieveService* pThread; //singleton static SmartRetrieveController* m_pInstance; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/storedqueriescontroller.cpp000066400000000000000000000462611314736454600264650ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "storedqueriescontroller.h" #include #include #include #include
    #include
    #include
    #include #include #include #include
    #include #include #include #include #include #include #define SQ_DOCUMENT_ROOT wxT("stored-queries") #define SQ_ROOT wxT("stored-query") #define SQ_ATT_NAME wxT("name") #define SQ_ATT_PACSID wxT("pacs-id") #define SQ_ATT_ACTIVE wxT("active") #define COS_ROOT wxT("conditions") #define CO_ROOT wxT("condition") #define CO_ATT_TAG wxT("tag") #define CO_ATT_VALUE wxT("value") #define CO_ATT_EVAL wxT("eval") #define LOGGER "StoredQueriesController" /** Defines a specific layout, is recursive to allow splitted cells */ GNC::GCS::Condition::Condition(const std::string& tag, const std::string& value, bool eval) { this->tag = tag; this->value = value; this->eval = eval; } GNC::GCS::Condition::Condition():eval(false) { } GNC::GCS::Condition::Condition(wxXmlNode* conditionRoot) { wxString tmp; if (conditionRoot->GetAttribute(CO_ATT_TAG, &tmp)) { tag = tmp.ToUTF8(); } if (conditionRoot->GetAttribute(CO_ATT_VALUE, &tmp)) { value = tmp.ToUTF8(); } eval = conditionRoot->GetAttribute(CO_ATT_EVAL, wxT("true")).CmpNoCase(wxT("true")) == 0; } GNC::GCS::Condition::Condition(const Condition& other) { this->tag = other.tag; this->value = other.value; this->eval = other.eval; } GNC::GCS::Condition::~Condition() { } wxXmlNode* GNC::GCS::Condition::serialize() { wxXmlNode* conditionNode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, CO_ROOT); conditionNode->AddAttribute(CO_ATT_TAG, wxString::FromUTF8(tag.c_str())); conditionNode->AddAttribute(CO_ATT_VALUE, wxString::FromUTF8(value.c_str())); conditionNode->AddAttribute(CO_ATT_EVAL, eval?wxT("true"):wxT("false")); return conditionNode; } /** getters and setters */ std::string GNC::GCS::Condition::getTag() { return tag; } void GNC::GCS::Condition::setTag(std::string tag) { this->tag = tag; } std::string GNC::GCS::Condition::getValue() { return value; } void GNC::GCS::Condition::setValue(std::string value) { this->value = value; } bool GNC::GCS::Condition::hasToEval() { return eval; } void GNC::GCS::Condition::setEval(bool eval) { this->eval = eval; } //evaluate condition and insert in query void GNC::GCS::Condition::addConditionToQuery(GIL::DICOM::DicomDataset& query) { if (eval) { //we are going to process syntax relDate{y,m,w,d} --> y = years, m = months, w = weeks, d = days => integer (could be positive or negative) wxString wxValue = wxString::FromUTF8(value.c_str()); wxRegEx regExDate(wxT("relDate\\{([-]?[0123456789]+),([-]?[0123456789]+),([-]?[0123456789]+),([-]?[0123456789]+)\\}")); if (regExDate.Matches(wxValue)) { bool isOk = true; long y,m,w,d; isOk &= regExDate.GetMatch(wxValue, 1).ToLong(&y); isOk &= regExDate.GetMatch(wxValue, 2).ToLong(&m); isOk &= regExDate.GetMatch(wxValue, 3).ToLong(&w); isOk &= regExDate.GetMatch(wxValue, 4).ToLong(&d); if (isOk) { query.tags[tag] = wxDateTime::Now().Add(wxDateSpan(y, m, w, d)).Format(wxT("%Y%m%d-")).ToUTF8(); } else { LOG_ERROR(LOGGER, "Unknown syntax to eval condition " << value); } } else { LOG_ERROR(LOGGER, "Unknown syntax to eval condition " << value); } } else { query.tags[tag] = value; } } ///////////////////////////////////////////////////// GNC::GCS::StoredQuery::StoredQuery():active(false) { } GNC::GCS::StoredQuery::StoredQuery(wxXmlNode* queryNode) { this->name = queryNode->GetAttribute(SQ_ATT_NAME, wxEmptyString).ToUTF8(); this->pacsId = queryNode->GetAttribute(SQ_ATT_PACSID, wxEmptyString).ToUTF8(); this->active = queryNode->GetAttribute(SQ_ATT_ACTIVE, wxT("true")).CmpNoCase(wxT("true")) == 0; for (wxXmlNode* child = queryNode->GetChildren(); child != NULL; child = child->GetNext()) { if (child->GetName().CmpNoCase(COS_ROOT) == 0) { //storedConditions... for (wxXmlNode* conditionChild = child->GetChildren(); conditionChild != NULL; conditionChild = conditionChild->GetNext()) { if (conditionChild->GetName().CmpNoCase(CO_ROOT) == 0) { GNC::GCS::Ptr pCondition(new Condition(conditionChild)); this->addCondition(pCondition); } } } else { LOG_ERROR(LOGGER, "error deserializing stored condition, unknown node " << child->GetName().ToUTF8()); } } } GNC::GCS::StoredQuery::StoredQuery(const GNC::GCS::StoredQuery& other) { this->name = other.name; this->pacsId = other.pacsId; this->active = other.active; for (GNC::GCS::StoredQuery::TMapOfConditions::const_iterator it = other.conditions.begin(); it != other.conditions.end(); ++it) { if ((*it).second.IsValid()) { GNC::GCS::Ptr condition(new Condition(*(*it).second)); this->conditions[(*it).first] = condition; } } } GNC::GCS::StoredQuery::~StoredQuery() { } wxXmlNode* GNC::GCS::StoredQuery::serialize() { wxXmlNode* storedQueryNode = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, SQ_ROOT); storedQueryNode->AddAttribute(SQ_ATT_NAME, wxString::FromUTF8(this->name.c_str())); storedQueryNode->AddAttribute(SQ_ATT_PACSID, wxString::FromUTF8(this->pacsId.c_str())); storedQueryNode->AddAttribute(SQ_ATT_ACTIVE, active?wxT("true"):wxT("false")); wxXmlNode* conditionsNode = new wxXmlNode(storedQueryNode, wxXML_ELEMENT_NODE, COS_ROOT); for (GNC::GCS::StoredQuery::TMapOfConditions::const_iterator it = conditions.begin(); it != conditions.end(); ++it) { if ((*it).second.IsValid()) { conditionsNode->AddChild((*it).second->serialize()); } } return storedQueryNode; } /** inserts conditions into query */ void GNC::GCS::StoredQuery::buildQuery(GIL::DICOM::DicomDataset& query) { for (GNC::GCS::StoredQuery::TMapOfConditions::const_iterator it = conditions.begin(); it != conditions.end(); ++it) { (*it).second->addConditionToQuery(query); } } /** Getters and setters */ const std::string& GNC::GCS::StoredQuery::getName() { return this->name; } void GNC::GCS::StoredQuery::setName(const std::string& name) { this->name = name; } const std::string& GNC::GCS::StoredQuery::getPacsId() { return this->pacsId; } void GNC::GCS::StoredQuery::setPacsId(const std::string& pacsId) { this->pacsId = pacsId; } bool GNC::GCS::StoredQuery::isActive() { return this->active; } void GNC::GCS::StoredQuery::setActive(bool active) { this->active = active; } void GNC::GCS::StoredQuery::addCondition(const GNC::GCS::Ptr& condition) { if (condition.IsValid()) { this->conditions[condition->getTag()] = condition; } } GNC::GCS::Ptr GNC::GCS::StoredQuery::getCondition(const std::string& tagValue) { GNC::GCS::Ptr condition; if (conditions.find(tagValue) != conditions.end()) { condition = conditions[tagValue]; } return condition; } bool GNC::GCS::StoredQuery::hasCondition(const std::string& tagValue) { if (conditions.find(tagValue) != conditions.end()) { return true; } else { return false; } } void GNC::GCS::StoredQuery::clearConditions() { conditions.clear(); } void GNC::GCS::StoredQuery::addCondition(const std::string& tag, const std::string& value) { GNC::GCS::Ptr condition(new Condition(tag, value, false)); this->conditions[tag] = condition; } void GNC::GCS::StoredQuery::addConditionIfNotExists(const std::string& tag, const std::string& value) { if (conditions.find(tag) == conditions.end()) { GNC::GCS::Ptr condition(new Condition(tag, value, false)); this->conditions[tag] = condition; } } void GNC::GCS::StoredQuery::addSpecialCondition(TSpecialConditions condition) { //delete study date and time... if (conditions.find(GKDCM_StudyDate) != conditions.end()) { conditions.erase(conditions.find(GKDCM_StudyDate)); } if (conditions.find(GKDCM_StudyTime) != conditions.end()) { conditions.erase(conditions.find(GKDCM_StudyTime)); } GNC::GCS::Ptr dateCondition(new Condition(GKDCM_StudyDate, "", true)); GNC::GCS::Ptr timeCondition(new Condition(GKDCM_StudyTime, "", false)); switch (condition) { case TSC_TODAY_MORNING: { dateCondition->setValue("relDate{0,0,0,0}"); timeCondition->setValue("000000-115959"); } break; case TSC_TODAY_AFTERNOON: { dateCondition->setValue("relDate{0,0,0,0}"); timeCondition->setValue("120000-235959"); } break; case TSC_TODAY: { dateCondition->setValue("relDate{0,0,0,0}"); } break; case TSC_YESTERDAY: { dateCondition->setValue("relDate{0,0,0,-1}"); } break; case TSC_LAST_7_DAYS: { dateCondition->setValue("relDate{0,0,0,-7}"); } break; case TSC_LAST_30_DAYS: { dateCondition->setValue("relDate{0,0,0,-30}"); } break; case TSC_LAST_3_MONTHS: { dateCondition->setValue("relDate{0,-3,0,0}"); } break; } conditions[GKDCM_StudyDate] = dateCondition; if (!timeCondition->getValue().empty()) { conditions[GKDCM_StudyTime] = timeCondition; } } bool GNC::GCS::StoredQuery::containsSpecialCondition(TSpecialConditions condition) { GNC::GCS::Ptr dateCondition; GNC::GCS::Ptr timeCondition; if (conditions.find(GKDCM_StudyDate) != conditions.end()) { dateCondition = conditions[GKDCM_StudyDate]; } if (conditions.find(GKDCM_StudyTime) != conditions.end()) { timeCondition = conditions[GKDCM_StudyTime]; } bool contains = false; switch (condition) { case TSC_TODAY_MORNING: { contains = dateCondition.IsValid() && timeCondition.IsValid() && dateCondition->getValue() == "relDate{0,0,0,0}" && timeCondition->getValue() == "000000-115959"; } break; case TSC_TODAY_AFTERNOON: { contains = dateCondition.IsValid() && timeCondition.IsValid() && dateCondition->getValue() == "relDate{0,0,0,0}" && timeCondition->getValue() == "120000-235959"; } break; case TSC_TODAY: { contains = dateCondition.IsValid() && !timeCondition.IsValid() && dateCondition->getValue() == "relDate{0,0,0,0}"; } break; case TSC_YESTERDAY: { contains = dateCondition.IsValid() && !timeCondition.IsValid() && dateCondition->getValue() == "relDate{0,0,0,-1}"; } break; case TSC_LAST_7_DAYS: { contains = dateCondition.IsValid() && !timeCondition.IsValid() && dateCondition->getValue() == "relDate{0,0,0,-7}"; } break; case TSC_LAST_30_DAYS: { contains = dateCondition.IsValid() && !timeCondition.IsValid() && dateCondition->getValue() == "relDate{0,0,0,-30}"; } break; case TSC_LAST_3_MONTHS: { contains = dateCondition.IsValid() && !timeCondition.IsValid() && dateCondition->getValue() == "relDate{0,-3,0,0}"; } break; } return contains; } bool GNC::GCS::StoredQuery::isEmpty() { return conditions.empty(); } /** Controller for hanging protocols */ GNC::GCS::StoredQueryController* GNC::GCS::StoredQueryController::Instance() { if (m_pInstance == NULL) { m_pInstance = new StoredQueryController(); } return m_pInstance; } void GNC::GCS::StoredQueryController::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } GNC::GCS::StoredQueryController::StoredQueryController() { LoadFromConfiguration(); } GNC::GCS::StoredQueryController::~StoredQueryController() { } GNC::GCS::StoredQueryController* GNC::GCS::StoredQueryController::m_pInstance = NULL; void GNC::GCS::StoredQueryController::StoreStoredQueriesConfiguration() { //serialization... wxXmlDocument doc; wxXmlNode* root = new wxXmlNode(NULL, wxXML_ELEMENT_NODE,SQ_DOCUMENT_ROOT); doc.SetRoot(root); { GNC::GCS::ILocker lockQueries(this); for (TStoredQueriesMap::const_iterator it = this->mapOfQueries.begin(); it != this->mapOfQueries.end(); ++it) { root->AddChild((*it).second->serialize()); } } wxMemoryOutputStream out; doc.SetFileEncoding(wxT("UTF-8")); doc.Save(out,0); char* vectorWidgets = new char[out.GetLength()]; out.CopyTo(vectorWidgets,out.GetLength()); GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/StoredQueries","QueriesList", std::string(vectorWidgets, out.GetLength())); delete[] vectorWidgets; } GNC::GCS::StoredQueryController::TStoredQueriesList GNC::GCS::StoredQueryController::getStoredQueries() { TStoredQueriesList returningList; getActiveQueries(returningList, false); return returningList; } GNC::GCS::StoredQueryController::TStoredQueriesList GNC::GCS::StoredQueryController::getActiveQueries() { TStoredQueriesList returningList; getActiveQueries(returningList, true); return returningList; } GNC::GCS::Ptr GNC::GCS::StoredQueryController::getQuery(const std::string& queryId) { GNC::GCS::PtrpReturn; { GNC::GCS::ILocker lockQueries(this); if (mapOfQueries.find(queryId) != mapOfQueries.end()) { pReturn = new StoredQuery(*mapOfQueries[queryId]); } } return pReturn; } void GNC::GCS::StoredQueryController::removeQuery(const std::string& queryId) { { GNC::GCS::ILocker lockQueries(this); if (mapOfQueries.find(queryId) != mapOfQueries.end()) { mapOfQueries.erase(mapOfQueries.find(queryId)); } } StoreStoredQueriesConfiguration(); } void GNC::GCS::StoredQueryController::storeQuery(const GNC::GCS::Ptr& pQuery) { { GNC::GCS::ILocker lockQueries(this); if (pQuery.IsValid()) { mapOfQueries[pQuery->getName()] = pQuery; } } StoreStoredQueriesConfiguration(); } void GNC::GCS::StoredQueryController::storeQueries(const TStoredQueriesList& queries) { { GNC::GCS::ILocker lockQueries(this); for (TStoredQueriesList::const_iterator it = queries.begin(); it != queries.end(); ++it) { mapOfQueries[(*it)->getName()] = (*it); } } StoreStoredQueriesConfiguration(); } void GNC::GCS::StoredQueryController::clearQueries() { GNC::GCS::ILocker lockQueries(this); mapOfQueries.clear(); } void GNC::GCS::StoredQueryController::getActiveQueries(TStoredQueriesList& list, bool onlyActive) { GNC::GCS::ILocker lockQueries(this); for (TStoredQueriesMap::const_iterator it = this->mapOfQueries.begin(); it != this->mapOfQueries.end(); ++it) { if (!onlyActive || (*it).second->isActive()) { GNC::GCS::Ptr pProtocol(new StoredQuery(*(*it).second)); list.push_back(pProtocol); } } } void GNC::GCS::StoredQueryController::LoadFromConfiguration() { GNC::GCS::ILocker lockQueries(this); //Deserialize... this->mapOfQueries.clear(); std::string serializedValue; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/StoredQueries","QueriesList", serializedValue); if (!serializedValue.empty()) { wxString wxSerializedValue = wxString::FromUTF8(serializedValue.c_str()); wxStringInputStream istream(wxSerializedValue); wxXmlDocument doc; if (doc.Load(istream)) { wxXmlNode* root = doc.GetRoot(); if (root != NULL && root->GetName().CmpNoCase(SQ_DOCUMENT_ROOT) == 0) { for (wxXmlNode* sqNode = root->GetChildren(); sqNode != NULL; sqNode = sqNode->GetNext()) { if (sqNode->GetName().CmpNoCase(SQ_ROOT) == 0) { GNC::GCS::Ptr storedQuery(new StoredQuery(sqNode)); this->mapOfQueries[storedQuery->getName()] = storedQuery; } } } } else { LOG_ERROR(LOGGER, "Error deserializing storedQuery"); } } } ginkgocadx-3.8.7/cadxcore/main/controllers/storedqueriescontroller.h000066400000000000000000000133151314736454600261240ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include class wxXmlNode; namespace GNC { namespace GCS { class StoredQuery; /** Defines a specific layout, is recursive to allow splitted cells */ class Condition { public: Condition(); Condition(const std::string& tag, const std::string& value, bool eval); /** deserialize from xml */ Condition(wxXmlNode* layoutRoot); Condition(const Condition& other); ~Condition(); wxXmlNode* serialize(); public: /** getters and setters */ std::string getTag(); void setTag(std::string tag); std::string getValue(); void setValue(std::string value); bool hasToEval(); void setEval(bool eval); //evaluate condition and insert in query void addConditionToQuery(GIL::DICOM::DicomDataset& query); protected: //tag of condition std::string tag; //value of condition std::string value; //has to eval condition, i.e. "TODAY" bool eval; }; /** HangingProtocol class, defines a hanging protocol */ class StoredQuery { public: typedef enum { TSC_TODAY_MORNING, TSC_TODAY_AFTERNOON, TSC_TODAY, TSC_YESTERDAY, TSC_LAST_7_DAYS, TSC_LAST_30_DAYS, TSC_LAST_3_MONTHS } TSpecialConditions; typedef std::map > TMapOfConditions; StoredQuery(); /** deserialize from xml */ StoredQuery(wxXmlNode* node); StoredQuery(const StoredQuery& other); ~StoredQuery(); /** serialize to XML */ wxXmlNode* serialize(); /** inserts conditions into query */ void buildQuery(GIL::DICOM::DicomDataset& query); /** Getters and setters */ const std::string& getName(); void setName(const std::string& name); const std::string& getPacsId(); void setPacsId(const std::string& pacsId); bool isActive(); void setActive(bool active); void addCondition(const GNC::GCS::Ptr& condition); GNC::GCS::Ptr getCondition(const std::string& tagValue); bool hasCondition(const std::string& tagValue); void clearConditions(); void addCondition(const std::string& tag, const std::string& value = ""); void addConditionIfNotExists(const std::string& tag, const std::string& value = ""); void addSpecialCondition(TSpecialConditions condition); bool containsSpecialCondition(TSpecialConditions condition); //if there isn't any condition bool isEmpty(); protected: /** Query name */ std::string name; /** PACS id */ std::string pacsId; /** conditions of the stored query */ TMapOfConditions conditions; /* if it's active */ bool active; }; /** Hanging protocol controller class */ class StoredQueryController: GNC::GCS::ILockable { public: typedef std::list > TStoredQueriesList; /** Singleton method */ static StoredQueryController* Instance(); /** Free singleton */ static void FreeInstance(); /** stores hanging protocol list */ void StoreStoredQueriesConfiguration(); /** gets a copy of storedQueries */ TStoredQueriesList getStoredQueries(); /** get a copy of active queries */ TStoredQueriesList getActiveQueries(); /** get a copy of the query by id */ GNC::GCS::Ptr getQuery(const std::string& queryId); /** removes a query from configuration */ void removeQuery(const std::string& queryId); /** store query (overwrite existing).. */ void storeQuery(const GNC::GCS::Ptr& pQuery); /** store query (overwrite existing).. */ void storeQueries(const TStoredQueriesList& queries); /** clear stored queries */ void clearQueries(); protected: void getActiveQueries(TStoredQueriesList& list, bool onlyActive); /** Creation method */ StoredQueryController(); /** Destruction method */ ~StoredQueryController(); /** Load from configuration */ void LoadFromConfiguration(); /** singleton attribute */ static StoredQueryController* m_pInstance; /** protocol list */ typedef std::map > TStoredQueriesMap; TStoredQueriesMap mapOfQueries; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/streaming/000077500000000000000000000000001314736454600227375ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/controllers/streaming/streamingloader.cpp000066400000000000000000001641411314736454600266320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
    #include #include #include #include #include
    #include
    #include
    #include
    #include
    #include "streamingloader.h" #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include #include #include #include #include #include #include #include #include //#define DEBUG_PRINT_DIR_COSINES #define USE_STREAMING true GNC::StreamingLoader::StreamingLoader(): DirectionCosines(GNC::GCS::IGinkgoMatrix4x4::New()) { //gdcm::ImageHelper::SetForceRescaleInterceptSlope(true); //gdcm::ImageHelper::SetForcePixelSpacing(true); m_SignalFile = false; m_IO = ImageIO::New(); m_IO->SetLoadPrivateTags(false); //Esto da leaks no activar //m_IO->SetLoadSequences(false); // m_IO->SetUseStreamedReading(USE_STREAMING); m_IO->SetMaxSizeLoadEntry(1024); // No permitir cargar campos de mas de 1K m_pOutput = vtkSmartPointer::New(); m_CurrentNumberOfComponents = 0; m_CurrentComponentType = ImageIO::UNKNOWNCOMPONENTTYPE; m_CurrentPixelType = ImageIO::UNKNOWNPIXELTYPE; m_CurrentDimensions[0] = 0; m_CurrentDimensions[1] = 0; m_CurrentDimensions[2] = 0; DirectionCosines->Identity(); for (int i = 0; i < 3; i++) { m_Spacing[i] = 0.0; m_Origin[i] = 0.0; } } GNC::StreamingLoader::~StreamingLoader() { } void GNC::StreamingLoader::SetInput(const std::string& fichero) { GNC::GCS::ILocker(this); m_SignalFile = false; if (m_CurrentFile == fichero) { return; } try { m_CurrentFile = fichero; m_IO->SetFileName(fichero); m_IO->SetUseStreamedReading(true); //correct a bug because this dictionary doesn't clear between consecutive loads itk::MetaDataDictionary newDict; m_IO->SetMetaDataDictionary(newDict); // m_IO->ReadImageInformation(); //std::string tagkey; //std::string GantryTilt; //itk::MetaDataDictionary & dict = m_IO->GetMetaDataDictionary(); //tagkey = "0018|1120"; //if( itk::ExposeMetaData(dict, tagkey, GantryTilt ) ) //{ // //std::cout << "Gantry Tilt = " << m_GantryTilt << std::endl; //} //// Check if the gantry tilt is within an acceptable range //double gantryTiltThreshold = 0.01; //std::stringstream sstr; //sstr.str( GantryTilt ); //sstr >> m_GantryTilt; //if( fabs(m_GantryTilt) > gantryTiltThreshold ) //{ // //std::cout << "Unacceptable gantry tilt" << std::endl; //} { #if defined(DEBUG_PRINT_DIR_COSINES) std::cout << "Dir. Cosines: " << std::endl; #endif for (int di = 0; di < 3; di++) { const std::vector dir = m_IO->GetDirection(di); int l = 0; for (std::vector::const_iterator it = dir.begin(); it != dir.end() && l < 3; ++it, l++) { #if defined(DEBUG_PRINT_DIR_COSINES) if (!l == 0) { std::cout << "," << *it; } else { std::cout << *it; } #endif DirectionCosines->SetElement(l, di, (*it)); } #if defined(DEBUG_PRINT_DIR_COSINES) std::cout << std::endl; #endif } // char age[20]; for (int i=0; i < 3; i++) { m_Spacing[i] = m_IO->GetSpacing(i); m_Origin[i] = m_IO->GetOrigin(i); } //check if image data is coherent... itk::MetaDataDictionary& dict = m_IO->GetMetaDataDictionary(); if (dict.HasKey("0028|0107") && dict.HasKey( "0028|0103") && dict.HasKey("0028|0102")) { //get highBit #ifdef __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-but-set-variable" #pragma GCC diagnostic ignored "-Wunused-variable" #endif // GW: not clear what this is supposed to check if(itk::MetaDataObject* highBit = dynamic_cast *>(dict["0028|0102"].GetPointer())) { if(itk::MetaDataObject* bitsStored = dynamic_cast *>(dict["0028|0101"].GetPointer())) { //get largest value if(itk::MetaDataObject* largestValue = dynamic_cast *>(dict["0028|0107"].GetPointer())) { //get pixel representation if(itk::MetaDataObject* pixelRepresentation = dynamic_cast *>(dict["0028|0103"].GetPointer())) { // GW: not clear what this is supposed to check long long minimum = 0; double rescaleIntercept = 0.0; double rescaleSlope = 1.0; long long paddingValue = 0; if(itk::MetaDataObject* minimiumValue = dynamic_cast*>(dict["0028|0106"].GetPointer())) { minimum = (long long) atol(minimiumValue->GetMetaDataObjectValue().c_str()); } if(itk::MetaDataObject* rescaleInterceptValue = dynamic_cast*>(dict["0028|1052"].GetPointer())) { rescaleIntercept = (double) atof( rescaleInterceptValue->GetMetaDataObjectValue().c_str() ); } if(itk::MetaDataObject * rescaleSlopeValue = dynamic_cast*>(dict["0028|1053"].GetPointer())) { rescaleSlope = (double) atof(rescaleSlopeValue->GetMetaDataObjectValue().c_str()); } if(itk::MetaDataObject * pixelPaddingValue = dynamic_cast*>(dict["0028|0120"].GetPointer())) { paddingValue = (double) atol(pixelPaddingValue->GetMetaDataObjectValue().c_str()); } if(itk::MetaDataObject * pixelPaddingRangeLimitValue = dynamic_cast*>(dict["0028|0121"].GetPointer())) { std::string val = pixelPaddingRangeLimitValue->GetMetaDataObjectValue(); LOG_TRACE("ControladorCarga/CargaMultidimensional", "Pixel Padding Range Limit: " << val); } if (pixelRepresentation->GetMetaDataObjectValue() == "1") {//if its signed and largest value > (2^highbit)-1 long long exp = (long long) atol(bitsStored->GetMetaDataObjectValue().c_str()); if (exp < 1) { throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: Number of stored bits not positive") , "ControladorCarga/CargaMultidimensional"); } long long limit = (1L << (exp-1)); long long val = (long long) atol(largestValue->GetMetaDataObjectValue().c_str()); long long maxVal = val;//(long long) ( (val * rescaleSlope) + rescaleIntercept ); if (maxVal > limit ) { throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: Largest image pixel value data is not coherent with combination of Pixel Representation and High bit") , "ControladorCarga/CargaMultidimensional"); } } else { long long exp = (long long) atol(bitsStored->GetMetaDataObjectValue().c_str()); long long limit = (1L << (exp)); long long val = (long long) atol(largestValue->GetMetaDataObjectValue().c_str()); long long maxVal = val; //(long long) ( (val * rescaleSlope) + rescaleIntercept ); if (maxVal > limit ) { throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: Largest image pixel value data is not coherent with combination of Pixel Representation and High bit") , "ControladorCarga/CargaMultidimensional"); } } } } } } #ifdef __GNUC__ #pragma GCC diagnostic pop #endif }//check if image data is coherent } if (m_CurrentNumberOfComponents != m_IO->GetNumberOfComponents() || m_CurrentComponentType != m_IO->GetComponentType() || m_CurrentPixelType != m_IO->GetPixelType() || m_CurrentDimensions[0] != m_IO->GetDimensions(0) || m_CurrentDimensions[1] != m_IO->GetDimensions(1) || m_CurrentDimensions[2] != m_IO->GetDimensions(2) ) { RecomponerPipeline(); } else { switch(m_IO->GetNumberOfComponents()) { case 1: { switch(m_IO->GetComponentType()) { case ImageIO::UCHAR: { typedef unsigned char TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::CHAR: { typedef char TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::USHORT: { typedef unsigned short TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::SHORT: { typedef unsigned short TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::UINT: { typedef unsigned int TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::INT: { typedef int TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::ULONG: { typedef unsigned long TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::LONG: { typedef long TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::FLOAT: { typedef float TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::DOUBLE: { typedef double TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::UNKNOWNCOMPONENTTYPE: default: m_SignalFile = true; LOG_ERROR("StreamingLoader", "Tipo de componente (pixeltype) no soportado en imagenes de 1 componente") break; } } break; case 3: { switch(m_IO->GetComponentType()) { case ImageIO::UCHAR: { typedef unsigned char TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::CHAR: { typedef char TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::USHORT: { typedef unsigned short TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::SHORT: { typedef short TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::UINT: { typedef unsigned int TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::INT: { typedef int TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::LONG: { typedef long TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::ULONG: { typedef unsigned long TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::FLOAT: { typedef float TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::DOUBLE: { typedef double TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; TypedReaderType* pTypedReader = static_cast(m_pReader.GetPointer()); pTypedReader->SetFileName(fichero); } break; case ImageIO::UNKNOWNCOMPONENTTYPE: default: m_SignalFile = true; LOG_ERROR("StreamingLoader", "Tipo de componente (pixeltype) no soportado en imagenes de 3 componentes") break; } } break; default: m_SignalFile = true; LOG_ERROR("StreamingLoader", "Numero de componentes no soportado") break; } m_pReader->Modified(); m_pPipelineJoiner->Modified(); m_pOutput->Modified(); } } catch (GNC::GCS::ControladorCargaException&) { m_SignalFile = true; if (m_pReader) { m_pReader->ResetPipeline(); } throw; } catch (itk::ExceptionObject& ex) { if (m_pReader) { m_pReader->ResetPipeline(); } m_SignalFile = true; // Try to read as signal GIL::DICOM::IDICOMManager* m = GIL::DICOM::PACSController::Instance()->CrearInstanciaDeDICOMManager(); m->CargarFichero(m_CurrentFile); std::string modality; m->GetTag(0x0008, 0x0060, modality); //TODO: Mantener esta lectura del dataset. GIL::DICOM::PACSController::Instance()->LiberarInstanciaDeDICOMManager(m); if (modality == "ECG" || modality == "EC" || modality == "HD") { DirectionCosines->Identity(); RecomponerPipeline(); return; } else { throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: ") + ex.GetDescription(), "ControladorCarga/CargaMultidimensional"); } } catch (...) { if (m_pReader) { m_pReader->ResetPipeline(); } throw GNC::GCS::ControladorCargaException( _Std("Internal error reading the study, unknown format "), "ControladorCarga/CargaMultidimensional"); } } vtkSmartPointer GNC::StreamingLoader::GetOutputPort() { vtkSmartPointer out (m_pOutput->GetOutputPort()); return out; } void GNC::StreamingLoader::GetOutputCopy(vtkSmartPointer& output) { GNC::GCS::ILocker((GNC::GCS::IStreamingLoader*)this); output = vtkSmartPointer::New(); m_pOutput->Update(); output->DeepCopy(m_pOutput->GetOutput()); } //------------------------------------------------------------------------------------------------ //region IPipelineProperties realization void GNC::StreamingLoader::Update() { m_pOutput->Update(); } void GNC::StreamingLoader::UpdateInformation() { m_pOutput->UpdateInformation(); } const GNC::GCS::Ptr GNC::StreamingLoader::GetDirection() { return DirectionCosines; } void GNC::StreamingLoader::GetOrigin(double origin[3]) { for (int i = 0; i < 3; i++) { origin[i] = m_Origin[i]; } } void GNC::StreamingLoader::GetSpacing(double spacing[3]) { for (int i = 0; i < 3; i++) { spacing[i] = m_Spacing[i]; } } void GNC::StreamingLoader::GetDimensions(int dimensions[3]) { for (int i = 0; i < 3; i++) { dimensions[i] = m_CurrentDimensions[i]; } } const GNC::GCS::Ptr GNC::StreamingLoader::GetOutputDirection() { return GetDirection(); } void GNC::StreamingLoader::GetOutputOrigin(double origin[3]) { m_pOutput->GetOutputOrigin(origin); } void GNC::StreamingLoader::GetOutputSpacing(double spacing[3]) { m_pOutput->GetOutputSpacing(spacing); } void GNC::StreamingLoader::GetOutputDimensions(int dims[3]) { for (int i = 0; i<3; ++i) { dims[i] = m_CurrentDimensions[i]; } } //endregion void GNC::StreamingLoader::SetOutputSpacing(double spacing[3]) { if (spacing[0] <= 0 || spacing[1] <= 0) { spacing[0] = spacing[1] = 1.0; } m_pOutput->SetOutputSpacing(spacing); } void GNC::StreamingLoader::SetOutputOrigin(double origin[3]) { m_pOutput->SetOutputOrigin(origin); } bool GNC::StreamingLoader::GetDefaultWindowLevel(double &window, double &level) { std::string windowTag, levelTag; bool ok = m_IO->GetValueFromTag("0028|1050", levelTag) && m_IO->GetValueFromTag("0028|1051", windowTag); if (ok) { { std::istringstream istr(levelTag); istr >> level; } { std::istringstream istr(windowTag); istr >> window; } } return ok; } std::string GNC::StreamingLoader::GetPatientPosition() { std::string patientPositionTag; bool ok = m_IO->GetValueFromTag("0018|5100", patientPositionTag); if (ok) { return patientPositionTag; } return ""; } void GNC::StreamingLoader::RecomponerPipeline() { if (m_SignalFile) { m_CurrentNumberOfComponents = 0; m_CurrentComponentType = ImageIO::UNKNOWNCOMPONENTTYPE; m_CurrentPixelType = ImageIO::SCALAR; m_CurrentDimensions[0] = 800; m_CurrentDimensions[1] = 800; m_CurrentDimensions[2] = 1; m_pReader = NULL; m_pPipelineJoiner = NULL; m_pOutput->RemoveAllInputs(); typedef unsigned short TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedImageType::Pointer img = TypedImageType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pPipelineJoiner = joiner; joiner->SetInput(img); TypedImageType::SizeType size; TypedImageType::IndexType index; size[0] = 800; size[1] = 800; size[2] = 1; index[0] = index[1] = index[2] = 0; TypedImageType::RegionType region; region.SetSize(size); region.SetIndex(index); img->SetRegions(region); img->Allocate(); img->FillBuffer(0); m_Origin[0] = m_Origin[1] = m_Origin[2] = 0.0; m_Spacing[0] = m_Spacing[1] = m_Spacing[2] = 1.0; m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); m_pOutput->SetOutputOrigin(m_Origin); m_pOutput->SetOutputSpacing(m_Spacing); } else { m_CurrentNumberOfComponents = m_IO->GetNumberOfComponents(); m_CurrentComponentType = m_IO->GetComponentType(); m_CurrentPixelType = m_IO->GetPixelType(); m_CurrentDimensions[0] = m_IO->GetDimensions(0); m_CurrentDimensions[1] = m_IO->GetDimensions(1); m_CurrentDimensions[2] = m_IO->GetDimensions(2); m_pReader = NULL; m_pPipelineJoiner = NULL; //m_pOutput->AbortExecuteOn(); m_pOutput->RemoveAllInputs(); ImageIO::Pointer pIO = ImageIO::New(); pIO->SetLoadPrivateTags(false); //Esto da leaks no activar //pIO->SetLoadSequences(false); pIO->SetUseStreamedReading(USE_STREAMING); pIO->SetMaxSizeLoadEntry(1024); // No permitir cargar campos de mas de 1K switch(m_IO->GetNumberOfComponents()) { case 1: { switch(m_IO->GetComponentType()) { case ImageIO::UCHAR: { typedef unsigned char TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::CHAR: { typedef char TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::USHORT: { typedef unsigned short TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::SHORT: { typedef short TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::UINT: { typedef unsigned int TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::INT: { typedef int TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::ULONG: { typedef unsigned long TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::LONG: { typedef long TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::FLOAT: { typedef float TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::DOUBLE: { typedef double TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::UNKNOWNCOMPONENTTYPE: default: throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: unsupported pixel format"), "ControladorCarga/CargaMultidimensiona(1 componente)"); } } break; case 3: { switch(m_IO->GetComponentType()) { case ImageIO::UCHAR: { typedef unsigned char TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::CHAR: { //std::cout << "RGB c" << std::endl; typedef unsigned char TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::USHORT: { //std::cout << "RGB c" << std::endl; typedef unsigned short TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::SHORT: { //std::cout << "RGB c" << std::endl; typedef short TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::UINT: { //std::cout << "RGB c" << std::endl; typedef unsigned int TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::INT: { //std::cout << "RGB c" << std::endl; typedef int TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::FLOAT: { //std::cout << "RGB c" << std::endl; typedef float TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::DOUBLE: { //std::cout << "RGB c" << std::endl; typedef double TypedComponentType; typedef itk::RGBPixel TypedPixelType; typedef itk::Image TypedImageType; typedef itk::ImageFileReader TypedReaderType; typedef itk::ImageToVTKImageFilter TypedJoinerType; TypedReaderType::Pointer reader = TypedReaderType::New(); TypedJoinerType::Pointer joiner = TypedJoinerType::New(); m_pReader = reader; m_pPipelineJoiner = joiner; joiner->SetInput(reader->GetOutput()); reader->SetImageIO(pIO); reader->SetFileName(m_CurrentFile); reader->SetUseStreaming(USE_STREAMING); m_pOutput->SetInputConnection(joiner->GetImporter()->GetOutputPort()); //reader->GetOutput()->ReleaseDataFlagOn(); } break; case ImageIO::UNKNOWNCOMPONENTTYPE: default: throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: unsupported pixel format"), "ControladorCarga/CargaMultidimensional(3 componentes)"); } } break; default: { throw GNC::GCS::ControladorCargaException( _Std("Error reading the study: unsupported pixel format"), "ControladorCarga/CargaMultidimensional"); } } } if (m_pReader.IsNotNull() && m_pPipelineJoiner.IsNotNull()) { m_pReader->Modified(); m_pPipelineJoiner->Modified(); } m_pOutput->Modified(); } ginkgocadx-3.8.7/cadxcore/main/controllers/streaming/streamingloader.h000066400000000000000000000103441314736454600262720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #if defined _WINDOWS #pragma warning(disable : 4702) #endif #include #include #include #include #include #include //region "Forward Declarations" class vtkImageData; class vtkImageChangeInformation; namespace GNC { namespace GCS { class IComando; } } //endregion namespace GNC { class EXTAPI StreamingLoader : public GNC::GCS::IStreamingLoader { public: typedef itk::GDCMImageIO ImageIO; typedef ImageIO::IOComponentType ImageComponentType; typedef ImageIO::IOPixelType ImagePixelType; //region Constructor StreamingLoader(); virtual ~StreamingLoader(); virtual bool IsSignalFile() { return m_SignalFile; } virtual void SetInput(const std::string& fichero); //------------------------------------------------------------------------------------------------ //region IPipelineProperties realization /** Updates **/ virtual void Update(); /** Updates output information **/ virtual void UpdateInformation(); /* Gets original (3D Volume) direction cosines */ virtual const GNC::GCS::Ptr GetDirection(); /** Gets the original (3D Volume) origin **/ virtual void GetOrigin(double origin[3]); /** Gets the original (3D Volume) spacing **/ virtual void GetSpacing(double spacing[3]); /** Gets the original (3D Volume) dimensions **/ virtual void GetDimensions(int dims[3]); /** Gets the slice direction cosines **/ virtual const GNC::GCS::Ptr GetOutputDirection(); /** Gets the slice output origin **/ virtual void GetOutputOrigin(double origin[3]); /** Gets the slice output spacing **/ virtual void GetOutputSpacing(double spacing[3]); /** Gets the slice output dimensions **/ virtual void GetOutputDimensions(int currentDimensions[3]); //endregion /** Sets the output spacing **/ virtual void SetOutputSpacing(double spacing[3]); /** Sets the output origin **/ virtual void SetOutputOrigin(double origin[3]); virtual std::string GetPatientPosition(); virtual vtkSmartPointer GetOutputPort(); // Devuelve el puerto de salida virtual void GetOutputCopy(vtkSmartPointer& output); // Devuelve por parametro una copia de la imagen virtual bool GetDefaultWindowLevel(double &window, double &level); protected: void CargarITK(GNC::GCS::IComando* cmd, int* orientacion, double* spacing = NULL); itk::ProcessObject::Pointer m_pReader; itk::ProcessObject::Pointer m_pPipelineJoiner; vtkSmartPointer m_pOutput; GNC::GCS::Ptr DirectionCosines; double m_Origin[3]; double m_Spacing[3]; private: ImageIO::Pointer m_IO; unsigned int m_CurrentNumberOfComponents; ImageComponentType m_CurrentComponentType; ImagePixelType m_CurrentPixelType; unsigned int m_CurrentDimensions[3]; std::string m_CurrentFile; bool m_SignalFile; void RecomponerPipeline(); }; } ginkgocadx-3.8.7/cadxcore/main/controllers/thumbnailcontroller.cpp000066400000000000000000000122551314736454600255460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "thumbnailcontroller.h" #include
    #include #include #include
    #include
    #define TAMANIO_MAX_PILA 10 namespace GNC { namespace GCS { ThumbnailController* ThumbnailController::Instance() { if (m_pInstance == NULL) { m_pInstance = new ThumbnailController(); } return m_pInstance; } void ThumbnailController::FreeInstance() { if(m_pInstance!=NULL) { delete m_pInstance; m_pInstance = NULL; } } ThumbnailController* ThumbnailController::m_pInstance = NULL; ThumbnailController::ThumbnailController() { GNC::GCS::ControladorEventos::Instance()->Registrar(this, GNC::GCS::Events::EventoProgresoComando()); m_pCriticalSection = new wxCriticalSection(); //m_pContinueTimer = m_pCmd = NULL; } ThumbnailController::~ThumbnailController() { if(m_pCriticalSection != NULL) { delete m_pCriticalSection; m_pCriticalSection = NULL; } if (m_pCmd != NULL) { GNC::GCS::ICommandController::Instance()->AbortarComando(m_pCmd); } } void ThumbnailController::requestThumbnail(long file_pk, GADAPI::ThumbnailsNotifier* pNotifier) { m_pCriticalSection->Enter(); m_petitions.push_back(TPetition(pNotifier, file_pk)); if (m_pCmd == NULL) { m_pCmd = new GADAPI::ThumbnailsCommand(file_pk, pNotifier); GNC::GCS::ICommandController::Instance()->ProcessAsync("Generating thumbnails...", m_pCmd, this); } m_pCriticalSection->Leave(); } void ThumbnailController::removeRequest(GADAPI::ThumbnailsNotifier* pNotifier) { m_pCriticalSection->Enter(); if (!m_petitions.empty()) { if (m_petitions.front().m_pNotifier == pNotifier && m_pCmd != NULL) { GNC::GCS::ICommandController::Instance()->AbortarComandosDeOwner(this); m_pCmd = NULL; //to start with next it has to be synchronized with gui so call timer... if(IsRunning()) { Stop(); Start(300, true); } } } for (TListPetitions::iterator it = m_petitions.begin(); it != m_petitions.end(); ++it) { if ((*it).m_pNotifier == pNotifier) { m_petitions.erase(it); break; } } m_pCriticalSection->Leave(); } void ThumbnailController::Notify() { m_pCriticalSection->Enter(); if (m_pCmd == NULL) { //run front if exists... TListPetitions::iterator it = m_petitions.begin(); if (it != m_petitions.end()) { m_pCmd = new GADAPI::ThumbnailsCommand((*it).m_file_pk, (*it).m_pNotifier); GNC::GCS::ICommandController::Instance()->ProcessAsync("Generating thumbnails...", m_pCmd, this); } } m_pCriticalSection->Leave(); } void ThumbnailController::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { GNC::GCS::Events::EventoProgresoComando* pEvt = dynamic_cast (evt); if (pEvt == NULL || pEvt->GetComando() == NULL || pEvt->GetComando() != m_pCmd) { return; } switch (pEvt->GetTipo()) { case GNC::GCS::Events::EventoProgresoComando::TEP_Iniciado: break; case GNC::GCS::Events::EventoProgresoComando::TEP_Progreso: break; case GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado: { m_pCriticalSection->Enter(); m_petitions.pop_front(); TListPetitions::iterator it = m_petitions.begin(); if (it != m_petitions.end() && !m_pCmd->EstaAbortado()) { m_pCmd = new GADAPI::ThumbnailsCommand((*it).m_file_pk, (*it).m_pNotifier); GNC::GCS::ICommandController::Instance()->ProcessAsync("Generating thumbnails...", m_pCmd, this); } else { m_pCmd = NULL; } m_pCriticalSection->Leave(); } break; case GNC::GCS::Events::EventoProgresoComando::TEP_Unknown: break; } } } } ginkgocadx-3.8.7/cadxcore/main/controllers/thumbnailcontroller.h000066400000000000000000000040471314736454600252130ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include class wxCriticalSection; namespace GNC { namespace GCS { class EXTAPI ThumbnailController: public GNC::GCS::IEventsObserver, public wxTimer { public: static ThumbnailController* Instance(); static void FreeInstance(); protected: static ThumbnailController* m_pInstance; ThumbnailController(); ~ThumbnailController(); public: void requestThumbnail(long file_pk, ::GADAPI::ThumbnailsNotifier* pNotifier); void removeRequest(::GADAPI::ThumbnailsNotifier* pNotifier); protected: virtual void Notify(); virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt); typedef struct TPetition { GADAPI::ThumbnailsNotifier* m_pNotifier; long m_file_pk; TPetition(::GADAPI::ThumbnailsNotifier* pNotifier, long file_pk) { m_pNotifier = pNotifier; m_file_pk = file_pk; } } TPetition; typedef std::list TListPetitions; ::GADAPI::ThumbnailsCommand* m_pCmd; TListPetitions m_petitions; wxCriticalSection* m_pCriticalSection; }; } } ginkgocadx-3.8.7/cadxcore/main/controllers/windowattributescontroller.cpp000066400000000000000000000130671314736454600272030ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include "configurationcontroller.h" #include "windowattributescontroller.h" #include "controladorlog.h" #define ATTRIBUTES_SCOPE "/GinkgoCore/WindowAttributes" #define WINDOW_ID_KEY "windowId" #define X_KEY_POSITION "xPos" #define Y_KEY_POSITION "yPos" #define WIDTH_KEY_POSITION "width" #define HEIGH_KEY_POSITION "heigh" #define IS_MAXIMIZED_KEY "isMaximized" namespace GNC { namespace GCS { WindowAttributesController::WindowAttributesController() { } WindowAttributesController::~WindowAttributesController() { } void WindowAttributesController::LoadWindowAttributes(const std::string& windowId, wxWindow* pWindow, bool defaultMaximized) { GNC::GCS::IConfigurationController::TListGroups groups; GNC::GCS::ConfigurationController::Instance()->readGroupUser(ATTRIBUTES_SCOPE, groups); int maxX = 0, maxY = 0, minX=std::numeric_limits::max(), minY=std::numeric_limits::max(); int deviceCount = wxDisplay::GetCount(); for (int i = 0; i < deviceCount; ++i) { wxDisplay dsply(i); maxX = std::max(maxX, dsply.GetClientArea().x + dsply.GetCurrentMode().GetWidth()); maxY = std::max(maxY, dsply.GetClientArea().y + dsply.GetCurrentMode().GetHeight()); minX = std::min(minX, dsply.GetClientArea().x); minY = std::min(minY, dsply.GetClientArea().y); } LOG_DEBUG ("WindowAttributes", "Client area X: " << minX << ", " << maxX << " Y: " << minY << ", " << maxY << std::endl); std::string windowIdTmp; for (GNC::GCS::IConfigurationController::TListGroups::iterator it = groups.begin(); it != groups.end(); ++it) { (*it).readStringValue(WINDOW_ID_KEY, windowIdTmp); if (windowId.compare(windowIdTmp) == 0) { wxPoint position; wxSize size; (*it).readIntValue(X_KEY_POSITION, position.x, -1); (*it).readIntValue(Y_KEY_POSITION, position.y, -1); if (position.x >= (minX - pWindow->GetMinSize().x) && position.x < maxX && position.y >= (minY - pWindow->GetMinSize().y) && position.y < maxY) { pWindow->SetPosition(position); } wxTopLevelWindow* pTopLevel = dynamic_cast(pWindow); if (pTopLevel != NULL) { bool isMaximized = defaultMaximized; (*it).readBoolValue(IS_MAXIMIZED_KEY, isMaximized); wxLogDebug("pTopLevel:isMaximized=%d", isMaximized); pTopLevel->Maximize(isMaximized); if (!isMaximized) { (*it).readIntValue(WIDTH_KEY_POSITION, size.x, 0); (*it).readIntValue(HEIGH_KEY_POSITION, size.y, 0); } } else { (*it).readIntValue(WIDTH_KEY_POSITION, size.x, 0); (*it).readIntValue(HEIGH_KEY_POSITION, size.y, 0); } pWindow->SetSize(size); wxLogDebug("Set windows size:(%d, %d)", size.x, size.y); } } } void WindowAttributesController::SaveWindowAttributes(const std::string& windowId, wxWindow* pWindow) { GNC::GCS::IConfigurationController::TListGroups groups; GNC::GCS::ConfigurationController::Instance()->readGroupUser(ATTRIBUTES_SCOPE, groups); std::string windowIdTmp; for (GNC::GCS::IConfigurationController::TListGroups::iterator it = groups.begin(); it != groups.end(); ++it) { (*it).readStringValue(WINDOW_ID_KEY, windowIdTmp); if (windowId.compare(windowIdTmp) == 0) { groups.erase(it); break; } } GNC::GCS::ConfigurationController::TMapValues newGroup; newGroup[WINDOW_ID_KEY] = windowId; wxPoint position = pWindow->GetPosition(); newGroup.insertInt(X_KEY_POSITION,position.x); newGroup.insertInt(Y_KEY_POSITION,position.y); wxSize size = pWindow->GetSize(); newGroup.insertInt(WIDTH_KEY_POSITION,size.x); newGroup.insertInt(HEIGH_KEY_POSITION,size.y); wxTopLevelWindow* pTopLevel = dynamic_cast(pWindow); if (pTopLevel != NULL) { newGroup.insertBool(IS_MAXIMIZED_KEY, pTopLevel->IsMaximized()); } groups.push_back(newGroup); GNC::GCS::ConfigurationController::Instance()->writeGroupUser(ATTRIBUTES_SCOPE, groups); } } } ginkgocadx-3.8.7/cadxcore/main/controllers/windowattributescontroller.h000066400000000000000000000022121314736454600266360ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once namespace GNC { namespace GCS { class EXTAPI WindowAttributesController { protected: WindowAttributesController(); ~WindowAttributesController(); public: static void LoadWindowAttributes(const std::string& windowId, wxWindow* pWindow, bool defaultMaximized = true); static void SaveWindowAttributes(const std::string& windowId, wxWindow* pWindow); protected: }; } } ginkgocadx-3.8.7/cadxcore/main/entorno.cpp000066400000000000000000000430441314736454600205750ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include
    #include #include #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #ifdef UNICODE #define UNICODE_WAS_SET #undef UNICODE #endif #include #include #include #include #ifdef UNICODE_WAS_SET #define UNICODE #endif #include "entorno.h" // Definicion de variables static #define GINKGO_LOCALAET "GINKGO_%IP4" #if defined GINKGO_PRO #include #else #define EULA "Ginkgo CADx is licensed under the LGPL v3 license. You can find the legal terms of the license at http://www.gnu.org/copyleft/lgpl.html" #endif //helper bool RemoveTempDir(const wxString& dirPath) { //borra en cascada if(!wxRmdir(dirPath)) { //vaciar wxDir dir; if (dir.Open(dirPath)) { wxString fileName; bool cont = dir.GetFirst(&fileName); while (cont) { fileName=dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) +fileName; if(wxDir::Exists(fileName)) { if (RemoveTempDir(fileName)) { cont = dir.GetFirst(&fileName); } else { cont = dir.GetNext(&fileName); } } else { int result; #ifdef _WIN32 result = _chmod(TOPATH(fileName).c_str(), _S_IWRITE); #else result = chmod(TOPATH(fileName).c_str(), 0644); #endif if (result != 0) { LOG_ERROR("Core", "Unable to change permission of '" << TOPATH(fileName) << "':" << strerror(errno)); } if (wxRemoveFile(fileName)) { cont = dir.GetFirst(&fileName); } else { cont = dir.GetNext(&fileName); } } } } } if(wxDir::Exists(dirPath)) { return wxRmdir(dirPath); } return true; } GNC::Entorno* GNC::Entorno::m_pInstancia = NULL; GNC::Entorno::Entorno() { DJEncoderRegistration::registerCodecs( ECC_lossyYCbCr, EUC_default, // UID generation (never create new UID's) OFFalse, // verbose 0, 0, 0, true, ESS_444, true); // optimize huffman table DJDecoderRegistration::registerCodecs(); DcmRLEEncoderRegistration::registerCodecs(); DcmRLEDecoderRegistration::registerCodecs(); m_pApp = NULL; m_pVentanaPrincipal = NULL; m_pVentanaRaiz = NULL; m_GinkgoLicenseMessage = ""; m_isChildInstance = false; std::ostringstream os; os << GINKGO_VERSION; if (sizeof(void*) == 4) { os << " 32 bits"; } else if (sizeof(void*) == 8) { os << " 64 bits"; } std::sscanf(GINKGO_VERSION, "%u.%u.%*c", &m_mayorVersionNumber, &m_minorVersionNumber); m_GinkgoVersion = os.str(); m_GinkgoCopyRight = GINKGO_COPYRIGHT; wxFileName executable_path = wxStandardPaths::Get().GetExecutablePath(); //executable_path.SetFullName(wxEmptyString); wxString pluginsDir; wxString resourcesDir; wxString langDir; #if defined(_WINDOWS) pluginsDir = executable_path.GetPath() + wxFileName::GetPathSeparator() + wxT("Plugins"); langDir = executable_path.GetPath() + wxFileName::GetPathSeparator() + wxT("lang"); resourcesDir = executable_path.GetPath(); #elif defined(LINUX) #if defined(CUSTOM_PACKAGE) pluginsDir = executable_path.GetPath() + wxFileName::GetPathSeparator() + wxT("Plugins"); resourcesDir = executable_path.GetPath(); langDir = executable_path.GetPath() + wxFileName::GetPathSeparator() + wxT("lang"); #else pluginsDir = wxStandardPaths::Get().GetPluginsDir() + wxFileName::GetPathSeparator() + wxT("Plugins"); resourcesDir = wxStandardPaths::Get().GetResourcesDir(); langDir = wxStandardPaths::Get().GetResourcesDir() + wxFileName::GetPathSeparator() + wxT("lang"); #endif #else pluginsDir = wxStandardPaths::Get().GetPluginsDir(); langDir = wxStandardPaths::Get().GetResourcesDir() + wxFileName::GetPathSeparator() + wxT("lang"); resourcesDir = wxStandardPaths::Get().GetResourcesDir(); #endif m_GinkgoPluginsDir = TOPATH(pluginsDir); m_GinkgoLanguageDir = TOPATH(langDir); m_GinkgoResourcesDir = TOPATH(resourcesDir); //std::cout << "PLUGINS_DIR = " << m_GinkgoPluginsDir.c_str() << std::endl; //std::cout << "LANGUAGE_DIR = " << m_GinkgoLanguageDir.c_str() << std::endl; wxString wxTempDir = wxStandardPaths::Get().GetTempDir() + wxFileName::GetPathSeparator() + wxT("GinkgoCADx"); m_GinkgoTempDir = TOPATH(wxTempDir); if (!wxDirExists(wxTempDir)) { bool success; #ifdef _WIN32 success = wxMkdir(wxTempDir,511); #else success = (wxMkDir(wxTempDir.ToUTF8(), 0770) == 0); #endif if (!success) { LOG_ERROR("Core", "Unable to create temporary directory '" << m_GinkgoTempDir << "'"); } } m_GinkgoUserDir = TOPATH(wxStandardPaths::Get().GetUserDataDir()); { wxString directorioUser = FROMPATH(m_GinkgoUserDir); //se crea el user dir if(!wxDirExists(directorioUser)) { bool success; #ifdef _WIN32 success = wxMkdir(directorioUser,511); #else success = (wxMkDir(directorioUser.ToUTF8(), 0770) == 0); #endif if (!success) { LOG_ERROR("Core", "Unable to create user directory '" << m_GinkgoUserDir << "'"); } } } // Carga de ubicaciones GNC::GCS::ConfigurationController::TListGroups locations; GNC::GCS::ConfigurationController::Instance()->readGroupGeneral("/GinkgoCore/Locations", locations); for (GNC::GCS::ConfigurationController::TListGroups::iterator it = locations.begin(); it != locations.end(); ++it) { std::string title, path, descr; bool monitorize, cleanbefore, cleanafter; (*it).readStringValue("Title", title); (*it).readStringValue("Path", path); (*it).readStringValue("Description", descr); (*it).readBoolValue("Monitorize", monitorize, false); (*it).readBoolValue("CleanBefore", cleanbefore, false); (*it).readBoolValue("CleanAfter", cleanafter, false); m_Ubicaciones[title] = new GIL::Ubicacion(title, path, descr, monitorize, cleanbefore, cleanafter); } GIL::IntegrationController::Instance(); } GNC::Entorno::~Entorno() { GIL::IntegrationController::FreeInstance(); DJEncoderRegistration::cleanup(); DJDecoderRegistration::cleanup(); DcmRLEEncoderRegistration::cleanup(); DcmRLEDecoderRegistration::cleanup(); if (!ExtensionsObservers.empty()) { LOG_WARN("Core", "Extensions observers list not empty"); } if (!ViewsObservers.empty()) { LOG_WARN("Core", "Views observers list not empty"); } //remove temp dir if (!m_isChildInstance) { RemoveTempDir(FROMPATH(m_GinkgoTempDir)); } m_pApp = NULL; m_pVentanaPrincipal = NULL; m_pVentanaRaiz = NULL; for (MapaUbicaciones::iterator it = m_Ubicaciones.begin(); it != m_Ubicaciones.end(); ++it) { delete (*it).second; } m_Ubicaciones.clear(); } GNC::Entorno* GNC::Entorno::Instance() { if (m_pInstancia == NULL) { m_pInstancia = new GNC::Entorno(); } return m_pInstancia; } void GNC::Entorno::FreeInstance() { if (m_pInstancia != NULL) { delete m_pInstancia; } m_pInstancia = NULL; } /** Gets the GinkgoCADx version full string **/ const std::string& GNC::Entorno::GetGinkgoVersionString() { return m_GinkgoVersion; } /** Gets the GinkgoCADx version string **/ std::string GNC::Entorno::GetGinkgoVersion() { return std::string(GINKGO_VERSION); } /** Gets the mayor version number **/ int GNC::Entorno::GetGinkgoMayorVersionNumber() { return m_mayorVersionNumber; } /** Gets the mayor version minor **/ int GNC::Entorno::GetGinkgoMinorVersionNumber() { return m_minorVersionNumber; } /** Gets the application name */ std::string GNC::Entorno::GetApplicationName() { return std::string(PRODUCT_NAME); } /** Gets the application subtitle */ std::string GNC::Entorno::GetApplicationSubTitle() { return PRODUCT_SUBTITLE; } /** Gets the application credits */ std::string GNC::Entorno::GetApplicationCredits() { return std::string(CREDITS); } /** Gets the application eula */ std::string GNC::Entorno::GetApplicationEula() { return std::string(EULA); } const std::string& GNC::Entorno::GetGinkgoCopyRight() { return m_GinkgoCopyRight; } const std::string& GNC::Entorno::GetLicenseMessage() { return m_GinkgoLicenseMessage; } void GNC::Entorno::SetLicenseMessage(const std::string& license) { m_GinkgoLicenseMessage = license; } int GNC::Entorno::ParseSVNBuild(const char* str) { int num = -1; std::string beg; std::string end; std::stringstream ss(str); ss >> beg >> num >> end; return num; } const std::string& GNC::Entorno::GetGinkgoTempDir() { return m_GinkgoTempDir; } std::string GNC::Entorno::CreateGinkgoTempDir() { wxString wxNuevoDirTemp; do { wxNuevoDirTemp = FROMPATH(GetGinkgoTempDir()) + wxFileName::GetPathSeparator(wxPATH_NATIVE) + wxT("_gnktmp_") + wxString::Format(wxT("%d"), (int) rand()); } while(wxDir::Exists(wxNuevoDirTemp)); #ifdef _WIN32 wxFileName::Mkdir(wxNuevoDirTemp); #else wxFileName::Mkdir(wxNuevoDirTemp.c_str(), 0777); #endif return std::string(TOPATH(wxNuevoDirTemp)); } void GNC::Entorno::RemoveDirRecursive(const std::string& path) { wxString pathWx = FROMPATH(path); if (wxDirExists(pathWx)) { RemoveTempDir(pathWx); } } std::string GNC::Entorno::CreateGinkgoTempFile() { std::string directory = CreateGinkgoTempDir(); std::ostringstream ostr; ostr << directory << (char)wxFileName::GetPathSeparator() << "tmp"; return ostr.str(); } const std::string& GNC::Entorno::GetGinkgoLanguageDir() { return m_GinkgoLanguageDir; } const std::string& GNC::Entorno::GetGinkgoResourcesDir() { return m_GinkgoResourcesDir; } std::string GNC::Entorno::CrearDirectorioTemporal() { wxString dirTmp; do { std::ostringstream ostr; ostr << GetGinkgoTempDir().c_str() << (char)wxFileName::GetPathSeparator() << "_gnktmp_" << rand(); dirTmp = FROMPATH(ostr.str()); } while (wxDirExists(dirTmp)); #if defined(_WINDOWS) bool success = wxMkDir(dirTmp); #else bool success = wxMkDir(dirTmp.ToUTF8(), 0770); #endif std::string resultado(TOPATH(dirTmp)); if (!success) { LOG_ERROR("Core", "Error creating temporary directory '"<readStringGeneral("/GinkgoCore/PACS/Local", "AET", value, GINKGO_LOCALAET); return ParseAET(value); } std::string GNC::Entorno::ParseAET(const std::string& AET) { return GNC::GCS::AETWildcards::Parse(AET); } wxApp* GNC::Entorno::GetApp() { return m_pApp; } void GNC::Entorno::YieldApp() { //DEPRECATED //m_pApp->Yield(); } void GNC::Entorno::SetApp(wxApp* app) { m_pApp = app; } VentanaPrincipal* GNC::Entorno::GetVentanaPrincipal() { return m_pVentanaPrincipal; } void GNC::Entorno::SetVentanaPrincipal(VentanaPrincipal* ventana) { m_pVentanaPrincipal = ventana; } wxWindow* GNC::Entorno::GetVentanaRaiz() { return m_pVentanaRaiz; } void GNC::Entorno::SetVentanaRaiz(wxWindow* ventana) { m_pVentanaRaiz = ventana; } GNC::GCS::ICommandController* GNC::Entorno::GetCommandController() { return GNC::GCS::ICommandController::Instance(); } GIL::DICOM::IPACSController* GNC::Entorno::GetPACSController() { return GIL::DICOM::PACSController::Instance(); } GNC::GCS::IControladorVistas* GNC::Entorno::GetControladorVistas() { return GNC::GCS::ControladorVistas::Instance(); } GNC::GCS::IEventsController* GNC::Entorno::GetControladorEventos() { return GNC::GCS::ControladorEventos::Instance(); } GNC::GCS::IControladorCarga* GNC::Entorno::GetControladorCarga() { return GNC::GCS::ControladorCarga::Instance(); } GNC::GCS::IControladorPermisos* GNC::Entorno::GetControladorPermisos() { return GNC::GCS::IControladorPermisos::Instance(); } GNC::GCS::IControladorExtensiones* GNC::Entorno::GetControladorExtensiones() { return GNC::ControladorExtensiones::Instance(); } GNC::GCS::IControladorAcciones* GNC::Entorno::GetControladorAcciones() { return GNC::GCS::ControladorAcciones::Instance(); } GNC::GCS::IControladorInternacionalizacion* GNC::Entorno::GetControladorInternacionalizacion() { return GNC::GCS::ControladorInternacionalizacion::Instance(); } GNC::GCS::IConfigurationController* GNC::Entorno::GetConfigurationController() { return GNC::GCS::ConfigurationController::Instance(); } GNC::GCS::IWidgetsManager* GNC::Entorno::NewWidgetsManager(GNC::GCS::IVista* pVista) { return new GNC::WidgetsManager(pVista); } void GNC::Entorno::FreeWidgetsManager(GNC::GCS::IWidgetsManager* pManager) { if (pManager != NULL) { delete pManager; } } //------------------------------------------------------------------------------ //region "Extensions observers registry interface" void GNC::Entorno::RegisterExtensionsObserver(GNC::GCS::IExtensionsObserver* observer) { GNC::GCS::ILocker lock(ExtensionsObserversLock); for (ExtensionsObserversList::const_iterator it = ExtensionsObservers.begin(); it != ExtensionsObservers.end(); ++it) { if (*it == observer) { LOG_WARN("Core", "Extensions observer already registered"); return; } } ExtensionsObservers.push_back(observer); } void GNC::Entorno::UnRegisterExtensionsObserver(GNC::GCS::IExtensionsObserver* observer) { GNC::GCS::ILocker lock(ExtensionsObserversLock); ExtensionsObservers.remove(observer); } //endregion //------------------------------------------------------------------------------ //region "Views observers registry interface" void GNC::Entorno::RegisterViewsObserver(GNC::GCS::IObservadorVistas* /*observer*/) { GNC::GCS::ILocker lock(ViewsObserversLock); //TODO } void GNC::Entorno::UnRegisterViewsObserver(GNC::GCS::IObservadorVistas* /*observer*/) { GNC::GCS::ILocker lock(ViewsObserversLock); //TODO } //endregion ginkgocadx-3.8.7/cadxcore/main/entorno.h000066400000000000000000000144051314736454600202410ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include class VentanaPrincipal; class wxWindow; class wxApp; class wxSizer; namespace GNC { namespace GCS { class IExtensionsObserver; class IObservadorVistas; class IEventsController; } } namespace GNC { class Entorno : public GNC::GCS::IEntorno { public: typedef std::list ExtensionsObserversList; typedef std::list ViewsObserversList; bool m_isChildInstance; protected: /* Constructor */ Entorno(); /* Destructor */ ~Entorno(); static Entorno* m_pInstancia; public: static Entorno* Instance(); static void FreeInstance(); bool IsChildInstance() { return m_isChildInstance; } void SetChildInstance(bool child) { m_isChildInstance = child; } // Miembros estaticos //region version /** Gets the GinkgoCADx version full string **/ virtual const std::string& GetGinkgoVersionString(); /** Gets the GinkgoCADx version string **/ virtual std::string GetGinkgoVersion(); /** Gets the mayor version number **/ virtual int GetGinkgoMayorVersionNumber(); /** Gets the mayor version minor **/ virtual int GetGinkgoMinorVersionNumber(); /** Gets the application name */ virtual std::string GetApplicationName(); /** Gets the application subtitle */ virtual std::string GetApplicationSubTitle(); /** Gets the application credits */ virtual std::string GetApplicationCredits(); /** Gets the application eula */ virtual std::string GetApplicationEula(); //endregion //region license virtual const std::string& GetLicenseMessage(); virtual void SetLicenseMessage(const std::string& license); virtual const std::string& GetGinkgoCopyRight(); //enregion //region helpers virtual int ParseSVNBuild(const char* str); //endregion virtual const std::string& GetPluginsPath(); virtual const std::string& GetGinkgoUserDir(); virtual const std::string& GetGinkgoTempDir(); virtual std::string CreateGinkgoTempDir(); virtual void RemoveDirRecursive(const std::string& path); virtual std::string CreateGinkgoTempFile(); virtual const std::string& GetGinkgoLanguageDir(); virtual const std::string& GetGinkgoResourcesDir(); virtual std::string CrearDirectorioTemporal(); virtual std::string GetDicomLocalAET(); std::string ParseAET(const std::string& AET); virtual wxApp* GetApp(); virtual void SetApp(wxApp* app); virtual void YieldApp(); virtual VentanaPrincipal* GetVentanaPrincipal(); virtual void SetVentanaPrincipal(VentanaPrincipal* ventana); virtual wxWindow* GetVentanaRaiz(); virtual void SetVentanaRaiz(wxWindow* window); virtual GNC::GCS::ICommandController* GetCommandController(); virtual GIL::DICOM::IPACSController* GetPACSController(); virtual GNC::GCS::IControladorVistas* GetControladorVistas(); virtual GNC::GCS::IEventsController* GetControladorEventos(); virtual GNC::GCS::IControladorCarga* GetControladorCarga(); virtual GNC::GCS::IControladorPermisos* GetControladorPermisos(); virtual GNC::GCS::IControladorExtensiones* GetControladorExtensiones(); virtual GNC::GCS::IControladorAcciones* GetControladorAcciones(); virtual GNC::GCS::IControladorInternacionalizacion* GetControladorInternacionalizacion(); virtual GNC::GCS::IConfigurationController* GetConfigurationController(); virtual GNC::GCS::IWidgetsManager* NewWidgetsManager(GNC::GCS::IVista* pVista); virtual void FreeWidgetsManager(GNC::GCS::IWidgetsManager* pManager); virtual GNC::GCS::IEntorno::MapaUbicaciones& GetUbicaciones() { return m_Ubicaciones; } //------------------------------------------------------------------------------ //region "Extensions observers registry interface" public: virtual void RegisterExtensionsObserver(GNC::GCS::IExtensionsObserver* observer); virtual void UnRegisterExtensionsObserver(GNC::GCS::IExtensionsObserver* observer); public: // TODO ExtensionsObserversList ExtensionsObservers; GNC::GCS::ILockable ExtensionsObserversLock; //endregion //------------------------------------------------------------------------------ //region "Views observers registry interface" public: virtual void RegisterViewsObserver(GNC::GCS::IObservadorVistas* observer); virtual void UnRegisterViewsObserver(GNC::GCS::IObservadorVistas* observer); public: // TODO ViewsObserversList ViewsObservers; GNC::GCS::ILockable ViewsObserversLock; //endregion private: std::string m_GinkgoVersion; std::string m_GinkgoCopyRight; std::string m_GinkgoPluginsDir; std::string m_GinkgoUserDir; std::string m_GinkgoTempDir; std::string m_GinkgoLanguageDir; std::string m_GinkgoResourcesDir; std::string m_GinkgoLicenseMessage; int m_mayorVersionNumber; int m_minorVersionNumber; wxApp* m_pApp; VentanaPrincipal* m_pVentanaPrincipal; wxWindow* m_pVentanaRaiz; friend class ::VentanaPrincipal; }; } ginkgocadx-3.8.7/cadxcore/main/gui/000077500000000000000000000000001314736454600171645ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/acquisition/000077500000000000000000000000001314736454600215145ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/acquisition/DialogoAdquisicion.fbp000066400000000000000000015335301314736454600257660ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect dialogoadquisicionbase 1000 none 1 DialogoAdquisicion . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 520,300 DialogoAdquisicionBase 950,575 wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU DICOM Query/Retrieve OnClose OnKeyDownFormulario m_pMainSizer wxVERTICAL protected 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 -1,-1 0 1 m_pHeader 1 protected 1 Resizable 1 -1,-1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 PACS wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBodyPanel 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer18 wxVERTICAL none 5 wxEXPAND|wxTOP|wxRIGHT|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pPanelPACS 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Search wxTAB_TRAVERSAL m_pSizerCamposBusqueda wxVERTICAL none 5 wxEXPAND 0 bSizer32 wxHORIZONTAL none 5 wxEXPAND 1 bSizer33 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,92,-1,70,0 0 0 wxID_ANY Patient 0 0 1 m_pPatientLabelStr 1 protected 1 Resizable 1 0 -1 5 wxEXPAND 1 bSizer23 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 "Id" "Name" "Acc#" "Study UID" 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 80,-1 1 m_pFieldCombo 1 protected 1 Resizable -1 1 80,-1 wxCB_DROPDOWN|wxCB_READONLY 0 wxFILTER_NONE wxDefaultValidator OnComboField 5 wxEXPAND|wxALIGN_CENTER_VERTICAL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSearchPanel 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL bSizer28 wxHORIZONTAL none 5 wxALL|wxEXPAND 1 1 1 1 1 0 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTextControlField 1 protected 1 Resizable 1 1 wxTE_PROCESS_ENTER 0 wxFILTER_NONE wxDefaultValidator OnCancelClick OnBusquedaClick OnBusquedaClick 5 wxALL|wxALIGN_CENTER_VERTICAL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 1 wxID_ANY PACS acquisition is restricted 0 0 1 m_pLabelRestricted 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND 0 m_pSizerAnimation wxHORIZONTAL protected 5 wxEXPAND 1 bSizer31 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,92,-1,70,0 0 0 wxID_ANY Server 0 0 1 m_pServerLabel 1 protected 1 Resizable 1 0 -1 5 wxEXPAND|wxTOP|wxBOTTOM|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pPACSListaServidores 1 protected 1 Resizable -1 1 wxCB_READONLY 0 wxFILTER_NONE wxDefaultValidator OnPACSChanged 5 wxEXPAND|wxBOTTOM 0 bSizer27 wxHORIZONTAL none 5 wxEXPAND|wxRIGHT 1 wxID_ANY Date sbSizer2 wxVERTICAL none 5 wxEXPAND|wxALL 1 bSizer17 wxHORIZONTAL none 5 wxEXPAND 1 bSizer181 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Any date 0 0 1 m_pAnyDate 1 protected 1 Resizable 1 wxRB_GROUP 0 wxFILTER_NONE wxDefaultValidator 1 OnKeyDownFormulario 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Today AM 0 0 1 m_pTodayAM 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Today PM 0 0 1 m_pTodayPM 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Today 0 0 1 m_pToday 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 5 wxEXPAND 1 bSizer29 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Yesterday 0 0 1 m_pYesterday 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Last 7 days 0 0 1 m_pLastWeek 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Last 30 days 0 0 1 m_pLastMonth 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Last 3 months 0 0 1 m_pLastThreeMonths 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 5 wxEXPAND 0 bSizer201 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Between: 0 0 1 m_pBetween 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 5 wxEXPAND|wxLEFT 0 bSizer21 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTextControlFechaDesde 1 protected 1 Resizable 1 wxDP_DEFAULT|wxDP_DROPDOWN 0 wxFILTER_NONE wxDefaultValidator OnFechaDesdeDateChanged OnKeyDownFormulario 5 wxEXPAND|wxLEFT 0 bSizer22 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTextControlFechaHasta 1 protected 1 Resizable 1 wxDP_DEFAULT|wxDP_DROPDOWN 0 wxFILTER_NONE wxDefaultValidator OnFechaHastaDateChanged OnKeyDownFormulario 5 wxEXPAND|wxLEFT 1 wxID_ANY Modalities sbSizer3 wxVERTICAL none 5 wxEXPAND|wxALL 1 5 0 m_pModalitySizer protected 0 0 5 wxEXPAND 1 m_pDataViewSizer wxVERTICAL protected 5 wxEXPAND 0 bSizer20 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Stored queries 0 0 1 m_staticText6 1 protected 1 Resizable 1 0 -1 5 wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 200,-1 1 m_pComboQueries 1 protected 1 Resizable -1 1 wxCB_DROPDOWN|wxCB_READONLY 0 wxFILTER_NONE wxDefaultValidator Select stored queries... OnComboStoredQueriesClick 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 wxGinkgoToolBar 1 m_pStoredQueriesButtonBar = new wxGinkgoToolBar(m_pPanelPACS, wxID_ANY); 1 wxGinkgoToolBar* m_pStoredQueriesButtonBar; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include<wx/wxginkgotoolbar.h> 0 0 1 m_pStoredQueriesButtonBar 1 protected 1 Resizable 1 0 5 wxEXPAND 1 0 protected 0 5 wxALIGN_CENTER_VERTICAL|wxTOP 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Link 0 0 1 m_pBLink 1 protected 1 Resizable 1 0 Available only in WADO servers wxFILTER_NONE wxDefaultValidator OnLinkClick 5 wxALIGN_BOTTOM|wxALIGN_RIGHT|wxTOP|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Download 0 0 1 m_pBDescargar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnDescargarClick 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 1 wxID_CANCEL Close 0 0 1 m_pBotonClose 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCloseClick 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 285,164 DialogoNotFoundBase wxDEFAULT_DIALOG_STYLE Not found bSizer12 wxVERTICAL none 5 wxEXPAND | wxALL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel5 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Series does not exist wxTAB_TRAVERSAL bSizer13 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY These series have been deleted from the local history 0 0 1 m_staticText10 1 protected 1 Resizable 1 0 440 0 wxEXPAND|wxTOP 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pListaSeries 1 public 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelOkCancel 1 public 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer14 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Continue 0 0 1 m_pButtonOk 1 public 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_pButtonCancel 1 public 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelOk 1 public 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer16 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Ok 0 0 1 m_button10 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 415,300 DownloadAgainDialogBase wxCAPTION|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Download again m_pMainSizer wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Download again wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer141 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFormPanel 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Download again wxTAB_TRAVERSAL bSizer19 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pLabelMessage 1 protected 1 Resizable 1 0 350 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel6 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer14 wxHORIZONTAL none 0 1 0 protected 0 5 wxALL 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Open 0 0 1 m_button9 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnOpenClick 5 wxRIGHT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_OK Download 0 0 1 m_pButtonOk 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_pBotonCancelar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 415,250 QueryNameDialogBase 415,250 wxCAPTION|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Set query name m_pMainSizer wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Set query name wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer141 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFormPanel 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Set query name wxTAB_TRAVERSAL bSizer19 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Set query name 0 0 1 m_pLabelMessage 1 protected 1 Resizable 1 0 350 5 wxALL|wxALIGN_CENTER_VERTICAL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pQueryName 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel6 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer14 wxHORIZONTAL none 0 1 0 protected 0 5 wxRIGHT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Ok 0 0 1 m_pButtonOk 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnOkClick 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_pBotonCancelar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/acquisition/acquisitiontablemodel.cpp000066400000000000000000000560771314736454600266200ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "acquisitiontablemodel.h" #include
    #include #include #include #include #include #include
    #include
    #include
    #include #include #include #define ICONO_ESTUDIO 0 #define ICONO_SERIE 1 #define ICONO_HOMBRE 2 #define ICONO_MUJER 3 #define ICONO_OTRO 4 #define SIZE_ICONOS 16 #define LOGGER "ACQUISITIONTABLEMODEL" GNC::GUI::AcquisitionNode::AcquisitionNode(AcquisitionNode* parent, const GNC::GCS::Ptr info): pData(info), pParent(parent) { if (IsSeriesNode()) { uid = pData->getTag(GKDCM_SeriesInstanceUID); SetDateTime(pData->getTag(GKDCM_SeriesDate),pData->getTag(GKDCM_SeriesTime)); } else { uid = pData->getTag(GKDCM_StudyInstanceUID); SetDateTime(pData->getTag(GKDCM_StudyDate),pData->getTag(GKDCM_StudyTime)); } if (uid.empty()) { LOG_ERROR(LOGGER, "trying to insert a node without uid"); } } GNC::GUI::AcquisitionNode::~AcquisitionNode() { DestroyChildren(); } bool GNC::GUI::AcquisitionNode::IsSeriesNode() { return pParent != NULL; } bool GNC::GUI::AcquisitionNode::IsStudyNode() { return pParent == NULL; } void GNC::GUI::AcquisitionNode::AddChild(AcquisitionNode* pChild) { seriesMap[pChild->uid] = pChild; } const GNC::GCS::Ptr& GNC::GUI::AcquisitionNode::GetData() { return pData; } void GNC::GUI::AcquisitionNode::DestroyChildren() { for (TMapIndex::iterator it = seriesMap.begin(); it != seriesMap.end(); ++it) { delete (*it).second; } seriesMap.clear(); } GNC::GUI::AcquisitionNode* GNC::GUI::AcquisitionNode::GetParent() { return pParent; } unsigned int GNC::GUI::AcquisitionNode::GetChildren(wxDataViewItemArray &array ) { if (IsSeriesNode()) { return 0; } else { for (TMapIndex::const_iterator it = seriesMap.begin(); it != seriesMap.end(); ++it) { array.Add( wxDataViewItem( (void*) (*it).second) ); } return seriesMap.size(); } } void GNC::GUI::AcquisitionNode::SetDateTime(const std::string& strDate, const std::string& strTime) { wxDateTime fecha; wxDateTime hora; hora.ParseFormat( wxString::FromUTF8( strTime.c_str() ).GetData(), wxT("%H%M%S"), wxDefaultDateTime); fecha.ParseFormat( wxString::FromUTF8( strDate.c_str() ).GetData(), wxT("%Y%m%d"), wxDefaultDateTime); if(fecha.IsValid()) { if (hora.IsValid()) { fecha.SetHour(hora.GetHour()); fecha.SetMinute(hora.GetMinute()); fecha.SetSecond(hora.GetSecond()); datetime = fecha.Format(_("%m/%d/%Y %H:%M:%S"), wxDateTime::TimeZone(wxDateTime::GMT1)).ToUTF8(); } else { datetime = fecha.Format(_("%m/%d/%Y 00:00:00"), wxDateTime::TimeZone(wxDateTime::GMT1)).ToUTF8(); } } else { datetime = wxString(wxT("00/00/0000 00:00:00")).ToUTF8();; } } ///////////////////////////// GNC::GUI::AcquisitionTableModel::AcquisitionTableModel(): m_pComandoPACS(NULL), m_Mode(MM_SERIES) { m_pImageList = new wxImageList(SIZE_ICONOS,SIZE_ICONOS,true); m_pImageList->Add(GinkgoResourcesManager::History::GetIcoEstudio()); m_pImageList->Add(GinkgoResourcesManager::History::GetIcoSerie()); m_pImageList->Add(GinkgoResourcesManager::History::GetIcoHombre()); m_pImageList->Add(GinkgoResourcesManager::History::GetIcoMujer()); m_pImageList->Add(GinkgoResourcesManager::History::GetIcoOtro()); GNC::GCS::ControladorEventos::Instance()->Registrar(this, GNC::GCS::Events::EventoProgresoComando()); } GNC::GUI::AcquisitionTableModel::~AcquisitionTableModel() { ClearStudyMap(); delete m_pImageList; } unsigned int GNC::GUI::AcquisitionTableModel::GetColumnCount() const { return COL_ACQUISITION_MAX; } wxString GNC::GUI::AcquisitionTableModel::GetColumnType( unsigned int col ) const { switch (col) { case COL_ICON: return wxT("wxIcon"); default: return wxT("string"); } } void GNC::GUI::AcquisitionTableModel::GetValue( wxVariant &variant, const wxDataViewItem &item, unsigned int col ) const { if (!item.IsOk()) { return; } AcquisitionNode* pNode = (AcquisitionNode*)(item.GetID()); if (pNode->IsSeriesNode()) { switch (col) { case COL_ICON: { variant << m_pImageList->GetIcon(ICONO_SERIE); } break; case COL_PATIENT_NAME: { //nothing to do } break; case COL_PATIENT_ID: { //nothing to do } break; case COL_DESCRIPTION: variant = wxString::FromUTF8(pNode->GetData()->getTag(GKDCM_SeriesDescription).c_str()); break; case COL_MODALITY: variant = wxString::FromUTF8(pNode->GetData()->getTag(GKDCM_Modality).c_str()); break; case COL_DATETIME: { variant = wxString::FromUTF8(pNode->datetime.c_str()); } break; case COL_ACCNUMBER: //nothing to do break; default: LOG_ERROR("AcquisitionTableModel", "wrong column id " << col); break; } } else { switch (col) { case COL_ICON: { int icono = 0; if(pNode->GetData()->getTag(GKDCM_PatientSex) == "M") { icono = ICONO_HOMBRE; } else if(pNode->GetData()->getTag(GKDCM_PatientSex) == "F") { icono = ICONO_MUJER; } else { icono = ICONO_OTRO; } variant << m_pImageList->GetIcon(icono); } break; case COL_PATIENT_NAME: variant = wxString::FromUTF8(pNode->GetData()->getTag(GKDCM_PatientName).c_str()); break; case COL_PATIENT_ID: variant = wxString::FromUTF8(pNode->GetData()->getTag(GKDCM_PatientID).c_str()); break; case COL_DESCRIPTION: variant = wxString::FromUTF8(pNode->GetData()->getTag(GKDCM_StudyDescription).c_str()); break; case COL_MODALITY: variant = wxString::FromUTF8(pNode->GetData()->getTag(GKDCM_ModalitiesInStudy).c_str()); break; case COL_DATETIME: { variant = wxString::FromUTF8(pNode->datetime.c_str()); } break; case COL_ACCNUMBER: variant = wxString::FromUTF8(pNode->GetData()->getTag(GKDCM_AccessionNumber).c_str()); break; default: LOG_ERROR("AcquisitionTableModel", "wrong column id " << col); break; } } } bool GNC::GUI::AcquisitionTableModel::SetValue( const wxVariant &/*variant*/,const wxDataViewItem &/*item*/, unsigned int /*col*/ ) { //model cant be modified... return false; } bool GNC::GUI::AcquisitionTableModel::IsEnabled( const wxDataViewItem &/*item*/, unsigned int/* col*/ ) const { return true; } wxDataViewItem GNC::GUI::AcquisitionTableModel::GetParent( const wxDataViewItem &item ) const { if (!item.IsOk()) { return wxDataViewItem(0); } //if it's a study... AcquisitionNode* pNode = (AcquisitionNode*)(item.GetID()); return wxDataViewItem( (void*) pNode->GetParent() ); } bool GNC::GUI::AcquisitionTableModel::IsContainer( const wxDataViewItem &item ) const { if (!item.IsOk()) { return true; } AcquisitionNode* pNode = (AcquisitionNode*)(item.GetID()); return m_Mode == MM_SERIES && pNode->IsStudyNode(); } bool GNC::GUI::AcquisitionTableModel::HasContainerColumns (const wxDataViewItem &/*item*/) const { return true; } bool GNC::GUI::AcquisitionTableModel::HasValue (const wxDataViewItem &item, unsigned col) const { if (!item.IsOk()) { return false; } AcquisitionNode* pNode = (AcquisitionNode*)(item.GetID()); if (pNode->IsStudyNode()) { return true; } else { return col != COL_PATIENT_NAME && col != COL_PATIENT_ID && col != COL_ACCNUMBER; } } unsigned int GNC::GUI::AcquisitionTableModel::GetChildren( const wxDataViewItem &parent, wxDataViewItemArray &array ) const { AcquisitionNode *node = (AcquisitionNode*) parent.GetID(); if (!node) { unsigned int count = studyMap.size(); for (TMapIndex::const_iterator it = studyMap.begin(); it != studyMap.end(); ++it) { array.Add( wxDataViewItem( (void*) (*it).second) ); } return count; } else if (node->IsStudyNode()) { //return series from study... node->GetChildren(array); return array.Count(); } return 0; } int GNC::GUI::AcquisitionTableModel::Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, unsigned int column, bool ascending ) const { if (column == COL_DATETIME) { wxVariant value1, value2; GetValue( value1, item1, column ); GetValue( value2, item2, column ); wxString str1 = value1.GetString(); wxString str2 = value2.GetString(); wxDateTime date1,date2; date1.ParseFormat(str1, _("%m/%d/%Y %H:%M:%S")); date2.ParseFormat(str2, _("%m/%d/%Y %H:%M:%S")); int res = 0; if (date1.IsValid() && date2.IsValid()) { wxTimeSpan diff = date1.Subtract(date2); if (diff.IsPositive()) { res = 1; } else { res = -1; } } else if (date1.IsValid()) { res = 1; } else if (date2.IsValid()) { res =-1; } else { res = 0; } if (!ascending) { if (res == 1) { res = -1; } else if (res == -1) { res = 1; } } return res; } return wxDataViewModel::Compare( item1, item2, column, ascending ); } void GNC::GUI::AcquisitionTableModel::CancelCommand() { if(m_pComandoPACS != NULL) { GNC::CommandController::Instance()->AbortarComando(m_pComandoPACS, false); } } void GNC::GUI::AcquisitionTableModel::ClearResults() { CancelCommand(); wxDataViewItemArray toDeleteList; for (TMapIndex::iterator it = studyMap.begin(); it != studyMap.end(); ++it) { toDeleteList.push_back(wxDataViewItem((*it).second)); } //then delete studies Nodes... ItemsDeleted(wxDataViewItem(0), toDeleteList); //delete all and reload again... ClearStudyMap(); } GNC::GUI::AcquisitionTableModel::T_ModelMode GNC::GUI::AcquisitionTableModel::GetModelMode() { return m_Mode; } void GNC::GUI::AcquisitionTableModel::SetModelMode(T_ModelMode mode) { m_Mode = mode; } void GNC::GUI::AcquisitionTableModel::DoSearch(const GNC::GCS::Ptr& pQuery) { ClearResults(); //insert fields that has to be returned... pQuery->addCondition(GKDCM_QueryRetrieveLevel,"STUDY"); pQuery->addConditionIfNotExists(GKDCM_PatientName); pQuery->addConditionIfNotExists(GKDCM_PatientID); pQuery->addConditionIfNotExists(GKDCM_ModalitiesInStudy); pQuery->addConditionIfNotExists(GKDCM_PatientBirthDate); pQuery->addConditionIfNotExists(GKDCM_PatientSex); pQuery->addConditionIfNotExists(GKDCM_StudyDate); pQuery->addConditionIfNotExists(GKDCM_StudyTime); pQuery->addConditionIfNotExists(GKDCM_StudyID); pQuery->addConditionIfNotExists(GKDCM_StudyInstanceUID); pQuery->addConditionIfNotExists(GKDCM_StudyDescription); pQuery->addConditionIfNotExists(GKDCM_AccessionNumber); pQuery->addConditionIfNotExists(GKDCM_StationName); pQuery->addConditionIfNotExists(GKDCM_ReferringPhysicianName); GADAPI::ComandoPACSParams * pParams = new GADAPI::ComandoPACSParams(pQuery); m_pComandoPACS = new GADAPI::ComandoPACS(pParams); GNC::CommandController::Instance()->ProcessAsync(_Std("Exploring PACS..."),m_pComandoPACS, this); } void GNC::GUI::AcquisitionTableModel::DoExpand(AcquisitionNode* pNode, const std::string& modalities, const std::string& server) { if (pNode->IsSeriesNode()) { return; } wxDataViewItemArray arr; pNode->GetChildren(arr); if (arr.empty() && !pNode->uid.empty()) { GNC::GCS::Ptr pQuery(new GNC::GCS::StoredQuery()); pQuery->setPacsId(server); //insert fields that has to be returned... pQuery->addCondition(GKDCM_QueryRetrieveLevel,"SERIES"); pQuery->addConditionIfNotExists(GKDCM_StudyInstanceUID, pNode->uid); pQuery->addCondition(GKDCM_Modality, modalities); pQuery->addConditionIfNotExists(GKDCM_SeriesInstanceUID); pQuery->addConditionIfNotExists(GKDCM_SeriesDescription); pQuery->addConditionIfNotExists(GKDCM_SeriesDate); pQuery->addConditionIfNotExists(GKDCM_SeriesTime); pQuery->addConditionIfNotExists(GKDCM_NumberOfSeriesRelatedInstances); pQuery->addConditionIfNotExists(GKDCM_ReferringPhysicianName); GADAPI::ComandoPACSParams * pParams = new GADAPI::ComandoPACSParams(pQuery); m_pComandoPACS = new GADAPI::ComandoPACS(pParams); GNC::CommandController::Instance()->ProcessAsync(_Std("Exploring PACS..."),m_pComandoPACS, this); } } std::string GNC::GUI::AcquisitionTableModel::GetModality(AcquisitionNode* pNode) { std::string mod; if (pNode->IsSeriesNode()) { mod =pNode->GetData()->getTag(GKDCM_Modality); } else { mod =pNode->GetData()->getTag(GKDCM_ModalitiesInStudy); } return mod; } void GNC::GUI::AcquisitionTableModel::GetProperties(AcquisitionNode* pNode, GNC::GUI::wxPropiedades::TListaMapasPropiedades& properties) { AcquisitionNode* pStudyNode; if (pNode->IsSeriesNode()) { pStudyNode = pNode->GetParent(); } else { pStudyNode = pNode; } const GNC::GCS::Ptr& dataSet = pStudyNode->GetData(); { //patient GNC::GUI::wxPropiedades::TMapaPropiedades mapaPropiedades; mapaPropiedades[_Std("Patient id")] = dataSet->getTag(GKDCM_PatientID); mapaPropiedades[_Std("Patient name")] = dataSet->getTag(GKDCM_PatientName); properties.push_back(mapaPropiedades); } { //study GNC::GUI::wxPropiedades::TMapaPropiedades mapaPropiedades; mapaPropiedades[_Std("Study Instance UID")] = dataSet->getTag(GKDCM_StudyInstanceUID); mapaPropiedades[_Std("Accession number")] = dataSet->getTag(GKDCM_AccessionNumber); mapaPropiedades[_Std("Study date")] = dataSet->getTag(GKDCM_StudyDate); mapaPropiedades[_Std("Study time")] = dataSet->getTag(GKDCM_StudyTime); properties.push_back(mapaPropiedades); } if (pNode->IsSeriesNode()) { //series const GNC::GCS::Ptr& seriesDs = pNode->GetData(); GNC::GUI::wxPropiedades::TMapaPropiedades mapaPropiedades; mapaPropiedades[_Std("Series Instance UID")] = seriesDs->getTag(GKDCM_SeriesInstanceUID); mapaPropiedades[_Std("Modality")] = seriesDs->getTag(GKDCM_Modality); mapaPropiedades[_Std("Series date")] = seriesDs->getTag(GKDCM_SeriesDate); mapaPropiedades[_Std("Series time")] = seriesDs->getTag(GKDCM_SeriesTime); properties.push_back(mapaPropiedades); } } //region realizacion de la interfaz IComandoPACSNotificador void GNC::GUI::AcquisitionTableModel::ReloadModel(std::list< GNC::GCS::Ptr >& results) { //RELOAD MODEL FROM IMODELODICOM... if (!studyMap.empty()) { wxDataViewItemArray toDeleteList; for (TMapIndex::iterator it = studyMap.begin(); it != studyMap.end(); ++it) { toDeleteList.push_back(wxDataViewItem((*it).second)); } //then delete studies Nodes... ItemsDeleted(wxDataViewItem(0), toDeleteList); //delete all and reload again... ClearStudyMap(); } Cleared(); wxDataViewItemArray addList; if(results.size() == 0) { //add a virtual item... GNC::GCS::Ptr pDataset(new GIL::DICOM::DicomDataset()); pDataset->tags[GKDCM_PatientName] = _Std("No results found"); pDataset->tags[GKDCM_StudyInstanceUID] = ""; pDataset->secuencias.push_back(GIL::DICOM::DicomDataset());//dummy AcquisitionNode* pNode = new AcquisitionNode(NULL, pDataset); studyMap[pNode->uid] = pNode; addList.push_back(wxDataViewItem((void*)pNode)); } else { for (std::list< GNC::GCS::Ptr >::iterator it = results.begin(); it != results.end(); ++it) { std::string studyUID = (*it)->getTag(GKDCM_StudyInstanceUID); if (studyMap.find(studyUID) == studyMap.end()) { AcquisitionNode* pNode = new AcquisitionNode(NULL, (*it)); studyMap[pNode->uid] = pNode; addList.push_back(wxDataViewItem((void*)pNode)); } } } ItemsAdded(wxDataViewItem(0), addList); } void GNC::GUI::AcquisitionTableModel::ReloadModel(const std::string& studyUID, std::list< GNC::GCS::Ptr >& results) { if (studyMap.find(studyUID) != studyMap.end()) { AcquisitionNode* pStudyNode = studyMap[studyUID]; wxDataViewItemArray arr; pStudyNode->GetChildren(arr); if (!arr.empty()) { ItemsDeleted(wxDataViewItem(pStudyNode), arr); pStudyNode->DestroyChildren(); } if(!results.empty()) { for (std::list< GNC::GCS::Ptr >::iterator it = results.begin(); it != results.end(); ++it) { AcquisitionNode* pSeriesNode = new AcquisitionNode(pStudyNode, (*it)); pStudyNode->AddChild(pSeriesNode); } arr.clear(); pStudyNode->GetChildren(arr); if (!arr.empty()) { ItemsAdded(wxDataViewItem(pStudyNode), arr); } } } } //endregion void GNC::GUI::AcquisitionTableModel::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { GNC::GCS::Events::EventoProgresoComando* pEvt = dynamic_cast (evt); if (pEvt == NULL || pEvt->GetComando() == NULL) { return; } switch (pEvt->GetTipo()) { case GNC::GCS::Events::EventoProgresoComando::TEP_Iniciado: break; case GNC::GCS::Events::EventoProgresoComando::TEP_Progreso: break; case GNC::GCS::Events::EventoProgresoComando::TEP_Unknown: break; case GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado: GNC::GCS::IComando* pCmd = pEvt->GetComando(); if (pCmd->GetOwner() == this) { if ( pCmd == m_pComandoPACS ) { m_pComandoPACS = NULL; GADAPI::ComandoPACSParams* pParams = dynamic_cast(pCmd->GetParams()); if (pParams != NULL) { GNC::GCS::Ptr cond = pParams->pQuery->getCondition(GKDCM_StudyInstanceUID); if (studyMap.empty() || !cond.IsValid() || cond->getValue().empty()) { ReloadModel(*pParams->m_apResults); } else { ReloadModel(cond->getValue(), *pParams->m_apResults); } } } } break; } } void GNC::GUI::AcquisitionTableModel::ClearStudyMap() { for (TMapIndex::iterator it = studyMap.begin(); it != studyMap.end(); ++it) { delete (*it).second; } studyMap.clear(); } ginkgocadx-3.8.7/cadxcore/main/gui/acquisition/acquisitiontablemodel.h000066400000000000000000000112271314736454600262510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include
    #include #include #include #include #include #include #include #include #define COL_ICON 0 #define COL_PATIENT_NAME 1 #define COL_PATIENT_ID 2 #define COL_DESCRIPTION 3 #define COL_MODALITY 4 #define COL_DATETIME 5 #define COL_ACCNUMBER 6 #define COL_ACQUISITION_MAX 7 namespace GADAPI { class ComandoPACS; } class wxImageList; namespace GNC { namespace GCS { class StoredQuery; } namespace GUI { class AcquisitionNode: GNC::GCS::ILockable { public: AcquisitionNode(AcquisitionNode* parent, const GNC::GCS::Ptr pInfo); virtual ~AcquisitionNode(); bool IsSeriesNode(); bool IsStudyNode(); void AddChild(AcquisitionNode* pChild); void DestroyChildren(); const GNC::GCS::Ptr& GetData(); AcquisitionNode* GetParent(); virtual unsigned int GetChildren(wxDataViewItemArray &array) ; void SetDateTime(const std::string& strDate, const std::string& strTime); typedef std::map TMapIndex; TMapIndex seriesMap; std::string datetime; std::string uid; GNC::GCS::Ptr pData; AcquisitionNode* pParent; }; class AcquisitionTableModel: public wxDataViewModel, public GNC::GCS::IEventsObserver { public: typedef enum T_ModelMode { MM_SERIES, MM_STUDIES } T_ModelMode; AcquisitionTableModel(); ~AcquisitionTableModel(); //wxDataViewModel methods virtual unsigned int GetColumnCount() const; virtual wxString GetColumnType( unsigned int col ) const; virtual void GetValue( wxVariant &variant, const wxDataViewItem &item, unsigned int col ) const; virtual bool SetValue( const wxVariant &variant, const wxDataViewItem &item, unsigned int col ); virtual bool IsEnabled( const wxDataViewItem &item, unsigned int col ) const; virtual wxDataViewItem GetParent( const wxDataViewItem &item ) const; virtual bool IsContainer( const wxDataViewItem &item ) const; bool HasValue (const wxDataViewItem &item, unsigned col) const; virtual bool HasContainerColumns (const wxDataViewItem &item) const ; virtual unsigned int GetChildren( const wxDataViewItem &parent, wxDataViewItemArray &array ) const; int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, unsigned int column, bool ascending ) const; // void CancelCommand(); void ClearResults(); T_ModelMode GetModelMode(); void SetModelMode(T_ModelMode mode); void DoSearch(const GNC::GCS::Ptr& pQuery); void DoExpand(AcquisitionNode* pNode, const std::string& modalities, const std::string& server); std::string GetModality(AcquisitionNode* pNode); void GetProperties(AcquisitionNode* pNode, GNC::GUI::wxPropiedades::TListaMapasPropiedades& properties); //region realizacion de la interfaz IComandoPACSNotificador virtual void ReloadModel(std::list< GNC::GCS::Ptr >& results); virtual void ReloadModel(const std::string& studyUID, std::list< GNC::GCS::Ptr >& results); //endregion virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt); protected: void ClearStudyMap(); GADAPI::ComandoPACS* m_pComandoPACS; T_ModelMode m_Mode; typedef std::map TMapIndex; TMapIndex studyMap; wxImageList* m_pImageList; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/acquisition/dialogoadquisicion.cpp000066400000000000000000001173261314736454600261010ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #if defined(_WINDOWS) #if !defined (_SCL_SECURE_NO_WARNINGS) #define _SCL_SECURE_NO_WARNINGS #endif #if !defined (_CRT_SECURE_NO_WARNINGS) #define _CRT_SECURE_NO_WARNINGS #endif #else #if defined(__DEPRECATED) #undef __DEPRECATED #endif #endif #include #include #include #include #include #include #include #include #include #include
    #include #include #include #include "downloadagaindialog.h" #include "dialogoadquisicion.h" #include "acquisitiontablemodel.h" #include #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include #include #include
    #define SIZE_ICONOS 16 #define STORE_QUERY_TOOL_ID 0 #define DELETE_QUERY_TOOL_ID 1 #define ICONO_ESTUDIO 0 #define ICONO_SERIE 1 #define ICONO_HOMBRE 2 #define ICONO_MUJER 3 #define ICONO_OTRO 4 #define SIZE_ICONOS 16 ///////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { class QueryNameDialog: public QueryNameDialogBase { public: QueryNameDialog(wxWindow* pWindow, const wxString& queryName): QueryNameDialogBase(pWindow) { m_pQueryName->SetFocus(); m_pQueryName->SetValue(queryName); } ~QueryNameDialog() { } std::string getQueryName() { return std::string(m_pQueryName->GetValue().ToUTF8()); } virtual void OnOkClick(wxCommandEvent& /*evt*/) { std::string queryName = getQueryName(); if (queryName.empty()) { wxMessageBox(_("Write query name"), _("Info"), wxOK | wxICON_INFORMATION, this); } else { GNC::GCS::Ptr pStoredQuery = GNC::GCS::StoredQueryController::Instance()->getQuery(queryName); if (pStoredQuery.IsValid()) { if (wxMessageBox(_("This query name is in use, do you want to overwrite it?"), _("Info"), wxYES_NO, this) == wxYES) { EndModal(wxID_OK); } } else { EndModal(wxID_OK); } } } }; } } //--------------------------------------------------------------------------- GNC::GUI::DialogoAdquisicion* GNC::GUI::DialogoAdquisicion::Instance() { if (m_pInstance == NULL) { m_pInstance = new DialogoAdquisicion(GNC::HistoryToolsController::Instance()->GetHistoryPanel()->GetWxWindow()); } return m_pInstance; } void GNC::GUI::DialogoAdquisicion::FreeInstance() { if(m_pInstance!=NULL) { m_pInstance->Close(); m_pInstance = NULL; } } GNC::GUI::DialogoAdquisicion* GNC::GUI::DialogoAdquisicion::m_pInstance = NULL; GNC::GUI::DialogoAdquisicion::DialogoAdquisicion(wxWindow* pParent) : DialogoAdquisicionBase(pParent) { m_SizeRestriction = false; m_SizeOK = false; //animation m_pAnimation = new wxAnimationCtrl(m_pSearchPanel,wxID_ANY,GinkgoResourcesManager::ProgressBar::GetAniLoading()); m_pAnimation->Hide(); m_pSizerAnimation->Add(m_pAnimation, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); if(GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits", "patient_scope")) { int tmpIndex = m_pFieldCombo->FindString(_("Id")); if (tmpIndex > 0) { m_pFieldCombo->Remove(tmpIndex,tmpIndex); } tmpIndex = m_pFieldCombo->FindString(_("Name")); if (tmpIndex > 0) { m_pFieldCombo->Remove(tmpIndex,tmpIndex); } m_pTextControlField->SetEditable(false); m_pTextControlField->Enable(false); m_pFieldCombo->Enable(false); m_pPACSListaServidores->Enable(false); m_pTextControlField->Show(false); m_pFieldCombo->Show(false); m_pPatientLabelStr->Show(false); m_pLabelRestricted->Show(true); m_pPanelPACS->Layout(); } else { int tmpIndex = m_pFieldCombo->FindString(_("Name")); if (tmpIndex < 0) { m_pFieldCombo->Insert(_("Name"),0); } tmpIndex = m_pFieldCombo->FindString(_("Id")); if (tmpIndex < 0) { m_pFieldCombo->Insert(_("Id"),0); } } m_pFieldCombo->Select(0); //modalities { const int MaxModalityNumber=20; // Modificar la constante si se añaden o quitan códigos de modalidad std::string modalidades[MaxModalityNumber] = {"CR","CT","DR","DX","IO","MG","MR","NM","OT","PT","RF","RG","SC","OCT","US","XA","XC","ES","ECG","HD"}; for(int i = 0; iAdd( pCheckBox, 0, wxALL, 2 ); m_modalitiesList.push_back(pCheckBox); pCheckBox->Connect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicion::OnKeyDownFormulario ), NULL, this ); } m_pPanelPACS->Layout(); } m_pAcquisitionTableView = new wxDataViewCtrl( m_pPanelPACS, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_ROW_LINES); m_pDataViewSizer->Add(m_pAcquisitionTableView, 1, wxEXPAND); m_pAcquisitionTableModel = new AcquisitionTableModel(); m_pAcquisitionTableView->AssociateModel(m_pAcquisitionTableModel.get()); //columns... m_pAcquisitionTableView->AppendColumn(new wxDataViewColumn(wxEmptyString, new wxDataViewBitmapRenderer( "wxIcon", wxDATAVIEW_CELL_INERT ),COL_ICON, 50, wxALIGN_CENTER)); m_pAcquisitionTableView->AppendColumn(new wxDataViewColumn(_("Patient name"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ),COL_PATIENT_NAME, 200, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pAcquisitionTableView->AppendColumn(new wxDataViewColumn(_("Patient id"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ),COL_PATIENT_ID, 100, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pAcquisitionTableView->AppendColumn(new wxDataViewColumn(_("Modality"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ),COL_MODALITY, 70, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pAcquisitionTableView->AppendColumn(new wxDataViewColumn(_("Date Time"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ),COL_DATETIME, 120, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pAcquisitionTableView->AppendColumn(new wxDataViewColumn(_("Description"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ),COL_DESCRIPTION, 200, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pAcquisitionTableView->AppendColumn(new wxDataViewColumn(_("Accession Number"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ),COL_ACCNUMBER, 128, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); // m_pAcquisitionTableView->Connect(wxEVT_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( DialogoAdquisicion::OnTreeSelChanged ), NULL, this); m_pAcquisitionTableView->Connect(wxEVT_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( DialogoAdquisicion::OnTreeItemActivated ), NULL, this); m_pAcquisitionTableView->Connect(wxEVT_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler( DialogoAdquisicion::OnTreeItemMenu ), NULL, this); m_pAcquisitionTableView->Connect(wxEVT_DATAVIEW_ITEM_EXPANDED, wxDataViewEventHandler( DialogoAdquisicion::OnTreeItemExpanded ), NULL, this); //stored queries m_pStoredQueriesButtonBar->AddTool(STORE_QUERY_TOOL_ID, _("Store query"), GinkgoResourcesManager::MenuIcons::GetIcoGuardar()); m_pStoredQueriesButtonBar->AddTool(DELETE_QUERY_TOOL_ID, _("Remove query"), GinkgoResourcesManager::MenuIcons::GetIcoCross()); m_pStoredQueriesButtonBar->Realize(); m_pPanelPACS->Layout(); m_pStoredQueriesButtonBar->Connect(STORE_QUERY_TOOL_ID,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( DialogoAdquisicion::OnStoreQuery),NULL,this); m_pStoredQueriesButtonBar->Connect(DELETE_QUERY_TOOL_ID,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( DialogoAdquisicion::OnDeleteQuery),NULL,this); Layout(); GNC::GCS::ControladorEventos::Instance()->Registrar(this, GNC::GCS::Events::EventoProgresoComando()); } GNC::GUI::DialogoAdquisicion::~DialogoAdquisicion() { GNC::Entorno::Instance()->GetCommandController()->AbortarComandosDeOwner(this); m_pAnimation->Destroy(); } bool GNC::GUI::DialogoAdquisicion::Show(const std::string& idPatient, const std::string& idPACS) { LOG_STAT(ANON_STAT_DLG_PACS_SEARCH) CenterOnParent(); m_pTextControlField->Show(true); m_pFieldCombo->Show(true); m_pPatientLabelStr->Show(true); m_pLabelRestricted->Show(false); m_pTextControlField->Enable(true); m_pTextControlField->SetValue(wxString::FromUTF8(idPatient.c_str())); m_pPanelPACS->Layout(); GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Adquisicion", "PACSDefecto", idPACS); //load pacs list and select pacs.. bool retVal = Show(true); Search(); return retVal; } bool GNC::GUI::DialogoAdquisicion::Show(bool show) { //se recarga la lista de servidores pacs wxArrayString serverListString; std::string pacsDef; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Adquisicion", "PACSDefecto", pacsDef); int defaultIndex = 0; int ind = 0; ListOfServers = DicomServerList::Instance()->GetServerList(); for (DicomServerList::TServerList::iterator it = ListOfServers.begin(); it != ListOfServers.end(); ++it, ++ind) { std::ostringstream ostr; ostr << (*it)->ID << " (" << (*it)->AET << "@" << (*it)->HostName << ":" << (*it)->Port << ")"; serverListString.push_back(wxString::FromUTF8(ostr.str().c_str())); if ((*it)->ID == pacsDef) { defaultIndex = ind; } } m_pPACSListaServidores->Clear(); m_pPACSListaServidores->Append(serverListString); if(m_pPACSListaServidores->GetCount()>0) { //se selecciona el pacs por defecto m_pPACSListaServidores->SetSelection(defaultIndex); } else { m_pPACSListaServidores->AppendString(_("There is no any PACS configured")); m_pPACSListaServidores->SetSelection(0); m_pPACSListaServidores->Disable(); } if (IsIconized()) { Iconize(false); } RefreshComboQueries(); if (IsShown()) { Raise(); } return DialogoAdquisicionBase::Show(show); } void GNC::GUI::DialogoAdquisicion::RefreshComboQueries() { m_pComboQueries->Clear(); GNC::GCS::StoredQueryController::TStoredQueriesList listOfQueries = GNC::GCS::StoredQueryController::Instance()->getStoredQueries(); for (GNC::GCS::StoredQueryController::TStoredQueriesList::iterator it = listOfQueries.begin(); it != listOfQueries.end(); ++it) { m_pComboQueries->AppendString(wxString::FromUTF8((*it)->getName().c_str())); } m_pComboQueries->Enable(!m_pComboQueries->IsListEmpty()); //m_pStoredQueriesButtonBar->Enable(!m_pComboQueries->IsListEmpty()); Refresh(); } //--------------------------------------------------------------------------- //region Eventos de interfaz void GNC::GUI::DialogoAdquisicion::OnPACSChanged(wxCommandEvent & ) { int selected = m_pPACSListaServidores->GetCurrentSelection(); DicomServerList::TServerList::iterator pServer = ListOfServers.begin(); for (int ind = 0; pServer != ListOfServers.end() && ind < selected; ++pServer,++ind); if (pServer == ListOfServers.end()) { return; } GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Adquisicion","PACSDefecto", (*pServer)->ID); { m_pAcquisitionTableModel->ClearResults(); GNC::GUI::AcquisitionTableModel::T_ModelMode mode = (*pServer)->retrieveSeries?GNC::GUI::AcquisitionTableModel::MM_SERIES:GNC::GUI::AcquisitionTableModel::MM_STUDIES; m_pAcquisitionTableModel->SetModelMode(mode); } } void GNC::GUI::DialogoAdquisicion::OnKeyDownFormulario( wxKeyEvent& event ) { if(event.GetKeyCode() == WXK_RETURN || event.GetKeyCode() == WXK_NUMPAD_ENTER) { wxCommandEvent evt; if (m_pTextControlField->IsEnabled()) { OnBusquedaClick(evt); } event.Skip(false); } else { if(event.GetKeyCode() == WXK_ESCAPE) { this->Hide(); event.Skip(false); } } event.Skip(true); } void GNC::GUI::DialogoAdquisicion::OnFechaDesdeDateChanged( wxDateEvent& /*event*/ ) { m_pBetween->SetValue(true); } void GNC::GUI::DialogoAdquisicion::OnFechaHastaDateChanged( wxDateEvent& /*event*/ ) { m_pBetween->SetValue(true); } void GNC::GUI::DialogoAdquisicion::OnCancelClick( wxCommandEvent& ) { m_pAcquisitionTableModel->CancelCommand(); ShowAnimation(false); } void GNC::GUI::DialogoAdquisicion::OnBusquedaClick( wxCommandEvent& ) { Search(); } GNC::GCS::Ptr GNC::GUI::DialogoAdquisicion::buildQuery() { GNC::GCS::Ptr pStoredQuery(new GNC::GCS::StoredQuery()); std::string pacsId = GetServerSeleccionado(); if(pacsId=="") return pStoredQuery; pStoredQuery->setName("AcquisitionFormQuery"); pStoredQuery->setPacsId(pacsId); //conditions... if (m_pBetween->GetValue()) { std::ostringstream ostr; if(m_pTextControlFechaDesde->GetValue().IsValid()) { ostr << std::string(m_pTextControlFechaDesde->GetValue().Format(wxT("%Y%m%d")).ToUTF8()); } ostr << "-"; if(m_pTextControlFechaHasta->GetValue().IsValid()) { ostr << std::string(m_pTextControlFechaHasta->GetValue().Format(wxT("%Y%m%d")).ToUTF8()); } pStoredQuery->addCondition(GKDCM_StudyDate, ostr.str()); } else if (m_pToday->GetValue()) { pStoredQuery->addSpecialCondition(GNC::GCS::StoredQuery::TSC_TODAY); } else if(m_pTodayAM->GetValue()) { pStoredQuery->addSpecialCondition(GNC::GCS::StoredQuery::TSC_TODAY_MORNING); } else if(m_pTodayPM->GetValue()) { pStoredQuery->addSpecialCondition(GNC::GCS::StoredQuery::TSC_TODAY_AFTERNOON); } else if (m_pYesterday->GetValue()) { pStoredQuery->addSpecialCondition(GNC::GCS::StoredQuery::TSC_YESTERDAY); } else if (m_pLastWeek->GetValue()) { pStoredQuery->addSpecialCondition(GNC::GCS::StoredQuery::TSC_LAST_7_DAYS); } else if (m_pLastMonth->GetValue()) { pStoredQuery->addSpecialCondition(GNC::GCS::StoredQuery::TSC_LAST_30_DAYS); } else if (m_pLastThreeMonths->GetValue()) { pStoredQuery->addSpecialCondition(GNC::GCS::StoredQuery::TSC_LAST_3_MONTHS); } if (!m_pTextControlField->GetValue().empty()) { if (m_pFieldCombo->GetValue() == _("Id")) { pStoredQuery->addCondition(GKDCM_PatientID, std::string(m_pTextControlField->GetValue().ToUTF8())); } else if (m_pFieldCombo->GetValue() == _("Name")) { pStoredQuery->addCondition(GKDCM_PatientName, std::string(m_pTextControlField->GetValue().ToUTF8())); } else if (m_pFieldCombo->GetValue() == _("Acc#")) { pStoredQuery->addCondition(GKDCM_AccessionNumber, std::string(m_pTextControlField->GetValue().ToUTF8())); } else if (m_pFieldCombo->GetValue() == _("Study UID")) { pStoredQuery->addCondition(GKDCM_StudyInstanceUID, std::string(m_pTextControlField->GetValue().ToUTF8())); } } std::string modalitiesFilter = GetModalities(); if (!modalitiesFilter.empty()) { pStoredQuery->addCondition(GKDCM_ModalitiesInStudy, modalitiesFilter); } return pStoredQuery; } void GNC::GUI::DialogoAdquisicion::Search() { GNC::GCS::Ptr pStoredQuery = buildQuery(); if (pStoredQuery->getPacsId().empty()) { return; } if(pStoredQuery->isEmpty()) { int answer = wxMessageBox(_("Search without parameters could take al long time\nWould you like to continue?"),_("Search"), wxYES_NO , this); if (answer == wxNO) { return; } m_pTextControlField->SetFocus(); } m_pAcquisitionTableModel->DoSearch(pStoredQuery); } std::string GNC::GUI::DialogoAdquisicion::GetModalities() { std::string modalities; for (TModalitiesVector::iterator it =m_modalitiesList.begin(); it !=m_modalitiesList.end(); ++it) { wxCheckBox* pCheck = dynamic_cast(*it); if(pCheck != NULL) if(pCheck->IsChecked()) { if (modalities == "") { modalities = pCheck->GetLabel().ToUTF8(); } else { modalities.append("\\"); modalities.append(pCheck->GetLabel().ToUTF8()); } } } return modalities; } void GNC::GUI::DialogoAdquisicion::OnLimpiarClick( wxCommandEvent& /*event*/ ) { m_pAcquisitionTableModel->ClearResults(); } void GNC::GUI::DialogoAdquisicion::OnCloseClick( wxCommandEvent& /*event*/ ) { Hide(); } void GNC::GUI::DialogoAdquisicion::OnDescargarClick( wxCommandEvent& /*event*/ ) { AddDescarga(); } void GNC::GUI::DialogoAdquisicion::OnLinkClick( wxCommandEvent& /*event*/) { AddDescarga(true); } // Eventos del Treelist void GNC::GUI::DialogoAdquisicion::OnTreeSelChanged(wxDataViewEvent& event) { wxDataViewItem item = event.GetItem(); m_pBDescargar->Enable(item.IsOk()); // El item es un estudio o una serie m_pBLink->Enable(item.IsOk() && IsLinkSupported()); event.Skip(true); } void GNC::GUI::DialogoAdquisicion::OnTreeItemActivated(wxDataViewEvent& event) { AddDescarga(); event.Skip(true); } void GNC::GUI::DialogoAdquisicion::OnTreeItemMenu(wxDataViewEvent& event) { //clase menu contextual class PopUpMenuDescargar: public wxMenu { public: PopUpMenuDescargar(DialogoAdquisicion* pDlg, bool allowDownload, bool series = false) : wxMenu() { m_pDlg = pDlg; if (allowDownload) { { wxString label; if(series) { label = _("Download series"); } else { label = _("Download study"); } wxMenuItem* descargar = new wxMenuItem( this,wxID_ANY,label); #ifdef __WXMSW__ descargar->SetBitmaps(GinkgoResourcesManager::Acquisition::GetIcoDownload()); #else descargar->SetBitmap(GinkgoResourcesManager::Acquisition::GetIcoDownload()); #endif Append(descargar); Connect(descargar->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PopUpMenuDescargar::OnDescargar ), NULL, this); } if (m_pDlg->IsLinkSupported()) { wxString label; if(series) { label = _("Link series"); } else { label = _("Link study"); } wxMenuItem* link = new wxMenuItem( this,wxID_ANY,label); #ifdef __WXMSW__ link->SetBitmaps(GinkgoResourcesManager::History::GetIcoLocalLinked()); #else link->SetBitmap(GinkgoResourcesManager::History::GetIcoLocalLinked()); #endif Append(link); Connect(link->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PopUpMenuDescargar::OnLink ), NULL, this); } this->AppendSeparator(); } wxMenuItem* props = new wxMenuItem( this, wxID_ANY, _("Properties...")); Append(props); Connect(props->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PopUpMenuDescargar::OnProperties ),NULL, this); } ~PopUpMenuDescargar() { m_pDlg = NULL; Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PopUpMenuDescargar::OnDescargar ), NULL, this); Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PopUpMenuDescargar::OnProperties ), NULL, this); } void OnDescargar(wxCommandEvent& ) { if (m_pDlg) { m_pDlg->AddDescarga(); } } void OnLink(wxCommandEvent& ) { if (m_pDlg) { m_pDlg->AddDescarga(true); } } void OnProperties(wxCommandEvent& ) { if (m_pDlg) { m_pDlg->ShowProperties(); } } DialogoAdquisicion* m_pDlg; }; // wxDataViewItem item = event.GetItem(); if(item.IsOk()) { AcquisitionNode* pNode = (AcquisitionNode*) item.GetID(); PopUpMenuDescargar* pMenu = new PopUpMenuDescargar(this, true, pNode->IsSeriesNode()); m_pAcquisitionTableView->PopupMenu(pMenu); delete pMenu; } } void GNC::GUI::DialogoAdquisicion::OnTreeItemExpanded(wxDataViewEvent& event) { wxDataViewItem item = event.GetItem(); if (item.IsOk()) { std::string server=GetServerSeleccionado(); if(server=="") return; AcquisitionNode* pNode = (AcquisitionNode*) item.GetID(); m_pAcquisitionTableModel->DoExpand(pNode, GetModalities(), server); } event.Skip(true); } void GNC::GUI::DialogoAdquisicion::OnComboStoredQueriesClick(wxCommandEvent& /*evt*/) { // std::string queryName(m_pComboQueries->GetValue().ToUTF8()); GNC::GCS::Ptr pStoredQuery = GNC::GCS::StoredQueryController::Instance()->getQuery(queryName); if (pStoredQuery.IsValid()) { //setup server { int pacsSelection = 0; for (DicomServerList::TServerList::iterator it = ListOfServers.begin(); it != ListOfServers.end(); ++it,++pacsSelection) { if (pStoredQuery->getPacsId() == (*it)->ID) { m_pPACSListaServidores->SetSelection(pacsSelection); break; } } } //setup combo and search value... if (pStoredQuery->hasCondition(GKDCM_PatientID)) { m_pFieldCombo->SetSelection(0); m_pTextControlField->SetValue(wxString::FromUTF8(pStoredQuery->getCondition(GKDCM_PatientID)->getValue().c_str())); } else if (pStoredQuery->hasCondition(GKDCM_PatientName)) { m_pFieldCombo->SetSelection(1); m_pTextControlField->SetValue(wxString::FromUTF8(pStoredQuery->getCondition(GKDCM_PatientName)->getValue().c_str())); } else if (pStoredQuery->hasCondition(GKDCM_AccessionNumber)) { m_pFieldCombo->SetSelection(2); m_pTextControlField->SetValue(wxString::FromUTF8(pStoredQuery->getCondition(GKDCM_AccessionNumber)->getValue().c_str())); } else if (pStoredQuery->hasCondition(GKDCM_StudyInstanceUID)) { m_pFieldCombo->SetSelection(3); m_pTextControlField->SetValue(wxString::FromUTF8(pStoredQuery->getCondition(GKDCM_StudyInstanceUID)->getValue().c_str())); } else { m_pTextControlField->SetValue(wxEmptyString); } //setup date radio buttons... m_pTodayAM->SetValue(pStoredQuery->containsSpecialCondition(GNC::GCS::StoredQuery::TSC_TODAY_MORNING)); m_pTodayPM->SetValue(pStoredQuery->containsSpecialCondition(GNC::GCS::StoredQuery::TSC_TODAY_AFTERNOON)); m_pToday->SetValue(pStoredQuery->containsSpecialCondition(GNC::GCS::StoredQuery::TSC_TODAY)); m_pYesterday->SetValue(pStoredQuery->containsSpecialCondition(GNC::GCS::StoredQuery::TSC_YESTERDAY)); m_pLastWeek->SetValue(pStoredQuery->containsSpecialCondition(GNC::GCS::StoredQuery::TSC_LAST_7_DAYS)); m_pLastMonth->SetValue(pStoredQuery->containsSpecialCondition(GNC::GCS::StoredQuery::TSC_LAST_30_DAYS)); m_pLastThreeMonths->SetValue(pStoredQuery->containsSpecialCondition(GNC::GCS::StoredQuery::TSC_LAST_3_MONTHS)); //setup modalities check... std::set modalitiesChecked; if (pStoredQuery->hasCondition(GKDCM_ModalitiesInStudy)) { std::string modalitiesInStudy = pStoredQuery->getCondition(GKDCM_ModalitiesInStudy)->getValue().c_str(); //split field through \ (what?) //split with \ bar wxStringTokenizer tknz(wxString::FromUTF8(modalitiesInStudy.c_str()), wxT("\\")); //insert in the set the values while (tknz.HasMoreTokens()) { wxString modality = tknz.GetNextToken(); modalitiesChecked.insert(std::string(modality.ToUTF8())); } } //check fields contained in the check and uncheck other for (TModalitiesVector::iterator it =m_modalitiesList.begin(); it !=m_modalitiesList.end(); ++it) { wxCheckBox* pCheck = dynamic_cast(*it); if(pCheck != NULL) { pCheck->SetValue(modalitiesChecked.find(std::string(pCheck->GetLabel().ToUTF8())) != modalitiesChecked.end()); } } //do search... m_pAcquisitionTableModel->DoSearch(pStoredQuery); } } void GNC::GUI::DialogoAdquisicion::OnStoreQuery(wxCommandEvent& /*evt*/) { GNC::GCS::Ptr pStoredQuery = buildQuery(); if (pStoredQuery->getPacsId().empty()) { return; } else if (!pStoredQuery->getCondition(GKDCM_ModalitiesInStudy).IsValid() && !pStoredQuery->getCondition(GKDCM_StudyDate).IsValid()) { wxMessageBox(_("You must specify at least a modality or a period of time"), _("Info"), wxOK | wxICON_INFORMATION, this); return; } else { QueryNameDialog qDlg(this, m_pComboQueries->GetValue()); if (qDlg.ShowModal() == wxID_OK) { pStoredQuery->setName(qDlg.getQueryName()); GNC::GCS::StoredQueryController::Instance()->storeQuery(pStoredQuery); RefreshComboQueries(); } } } void GNC::GUI::DialogoAdquisicion::OnDeleteQuery(wxCommandEvent& /*evt*/) { std::string queryName(m_pComboQueries->GetValue().ToUTF8()); GNC::GCS::Ptr pStoredQuery = GNC::GCS::StoredQueryController::Instance()->getQuery(queryName); if (pStoredQuery.IsValid()) { if (wxMessageBox(_("This query will be removed permanently, do you confirm removal?"), _("Info"), wxYES_NO, this) == wxYES) { GNC::GCS::StoredQueryController::Instance()->removeQuery(queryName); RefreshComboQueries(); } } else { wxMessageBox(_("Select a valid query"), _("Info"), wxOK | wxICON_INFORMATION, this); } } std::string GNC::GUI::DialogoAdquisicion::GetServerSeleccionado() { int selected = m_pPACSListaServidores->GetCurrentSelection(); DicomServerList::TServerList::iterator pServer = ListOfServers.begin(); for (int ind = 0; pServer != ListOfServers.end() && ind < selected; ++pServer,++ind); if (pServer == ListOfServers.end()) { wxMessageBox(_("Select a valid PACS Server"), _("Info"), wxOK | wxICON_INFORMATION, this); return ""; } else { return (*pServer)->ID; } } bool GNC::GUI::DialogoAdquisicion::IsLinkSupported() { int selected = m_pPACSListaServidores->GetCurrentSelection(); DicomServerList::TServerList::iterator pServer = ListOfServers.begin(); for (int ind = 0; pServer != ListOfServers.end() && ind < selected; ++pServer,++ind); if (pServer == ListOfServers.end()) { return false; } else { return (*pServer)->retrieveMethod == DicomServer::WADO; } } // Obtiene el item seleccionado del TreeList de resultados, genera una descarga, la apila y la inicia. void GNC::GUI::DialogoAdquisicion::AddDescarga(bool link) { wxDataViewItem selection = m_pAcquisitionTableView->GetSelection(); if(selection.IsOk()) { AcquisitionNode* pNode = (AcquisitionNode*) selection.GetID(); std::string modality = m_pAcquisitionTableModel->GetModality(pNode); if (pNode->IsStudyNode()) { if (!IsAllowedToDownload(modality)) { LOG_ERROR("GUI/Adquisition", _Std("Download of modality ") << modality << _Std(" not allowed")); wxMessageBox(_("You are not allowed to download this kind of modalities."),_("Modality download error"),wxICON_ERROR); } else { AddDownload(GetServerSeleccionado(), modality, false, pNode->uid, "", link); } } else { if (!modality.empty()) { if(! IsAllowedToDownload(modality)) { LOG_ERROR("GUI/Adquisition", _Std("Download of modality ") << modality << _Std(" not allowed")); wxMessageBox(_("You are not allowed to download this kind of modalities."),_("Modality download error"),wxICON_ERROR); } else { AddDownload(GetServerSeleccionado(), modality, true, pNode->GetParent()->uid, pNode->uid, link); } } } } else { return; } } // Shows a dialog with the properties of selected treelist item void GNC::GUI::DialogoAdquisicion::ShowProperties() { wxDataViewItem selection = m_pAcquisitionTableView->GetSelection(); if(selection.IsOk()) { AcquisitionNode* pNode = (AcquisitionNode*) selection.GetID(); GNC::GUI::wxPropiedades::TListaMapasPropiedades listaMapas; m_pAcquisitionTableModel->GetProperties(pNode, listaMapas); GNC::GUI::wxPropiedades* pProp = new GNC::GUI::wxPropiedades(this, _Std("search results"), listaMapas); //increments width wxSize size = pProp->GetSize(); size.x = 500; pProp->SetSize(size); pProp->Show(); } } bool GNC::GUI::DialogoAdquisicion::IsAllowedToDownload(const std::string& modality) { if ((GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.download", "all"))) { return true; } else { //split with \ bar wxStringTokenizer tknz(wxString::FromUTF8(modality.c_str()), wxT("\\")); std::list modalities; while (tknz.HasMoreTokens()) { modalities.push_back(std::string(tknz.GetNextToken().ToUTF8())); } bool value = true; for (std::list::iterator it =modalities.begin(); it != modalities.end(); ++it) { value = value && GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.download", (*it)); } return value; } } void GNC::GUI::DialogoAdquisicion::ShowAnimation(bool show) { if (show != m_pAnimation->IsShown()) { m_pAnimation->Show(show); if (show) { m_pAnimation->Play(); } else { m_pAnimation->Stop(); } m_pTextControlField->ShowCancelButton(show); m_pSearchPanel->Layout(); } } void GNC::GUI::DialogoAdquisicion::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { GNC::GCS::Events::EventoProgresoComando* pEvt = dynamic_cast (evt); if (pEvt == NULL || pEvt->GetComando() == NULL) { return; } switch (pEvt->GetTipo()) { case GNC::GCS::Events::EventoProgresoComando::TEP_Iniciado: { GNC::GCS::IComando* pCmd = pEvt->GetComando(); if (pCmd->GetOwner() == m_pAcquisitionTableModel.get()) { ShowAnimation(true); } } break; case GNC::GCS::Events::EventoProgresoComando::TEP_Progreso: { GNC::GCS::IComando* pCmd = pEvt->GetComando(); if (pCmd->GetOwner() == m_pAcquisitionTableModel.get()) { ShowAnimation(true); } } break; case GNC::GCS::Events::EventoProgresoComando::TEP_Unknown: break; case GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado: { GNC::GCS::IComando* pCmd = pEvt->GetComando(); if (pCmd->GetOwner() == m_pAcquisitionTableModel.get()) { ShowAnimation(false); } } break; } } bool GNC::GUI::DialogoAdquisicion::AddDownload(const std::string& server, const std::string& modality, bool seriesMode, const std::string& studyUID, const std::string& seriesUID, bool link) { if (server.empty() || (studyUID.empty() && seriesUID.empty())) { LOG_ERROR("GUI/Adquisition", "Empty mandatory values , while adding serie to download queue"); return false; } GADAPI::PACSDownloadCommandParams * pParams; { GIL::DICOM::DicomDataset base; if (seriesMode) { if (!seriesUID.empty() && GNC::GCS::HistoryController::Instance()->ExistsSeriesWithUID(seriesUID)) { DownloadAgainDialog dlg(this, seriesUID, true); int answer = dlg.ShowModal(); if (answer != wxID_OK) { return false; } } base.tags["0008|0052"] = "SERIES"; base.tags["0020|000e"] = seriesUID; //series instance uid if (!modality.empty()) { base.tags["0008|0060"] = modality; //modalitiy } } else { if (!studyUID.empty()) { if (GNC::GCS::HistoryController::Instance()->ExistsStudyWithUID(studyUID)) { DownloadAgainDialog dlg(this, studyUID, false); int answer = dlg.ShowModal(); if (answer != wxID_OK) { return false; } } base.tags["0020|000d"] = studyUID; //study instance uid } base.tags["0008|0052"] = "STUDY"; } pParams = new GADAPI::PACSDownloadCommandParams(server, base, link); } if (seriesMode) { LOG_INFO("GUI/Adquisition", _Std("Downloading serie...")); } else { LOG_INFO("GUI/Adquisition", _Std("Downloading study...")); } GNC::GCS::IComando* pCommand = new GADAPI::PACSDownloadCommand(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync(_Std("Downloading from PACS..."), pCommand, this); return true; //endregion } ginkgocadx-3.8.7/cadxcore/main/gui/acquisition/dialogoadquisicion.h000066400000000000000000000103141314736454600255330ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include #include #include
    #include #include "dialogoadquisicionbase.h" class IModeloDicom; class wxAnimationCtrl; namespace GNC { namespace GUI { class AcquisitionTableModel; class DialogoAdquisicion: public DialogoAdquisicionBase, public GNC::GCS::IEventsObserver { public: static DialogoAdquisicion* Instance(); static void FreeInstance(); DialogoAdquisicion(wxWindow* pParent); ~DialogoAdquisicion(); virtual bool Show(bool show = true); virtual bool Show(const std::string& idPatient, const std::string& idPACS); virtual void RefreshComboQueries(); //--------------------------------------------------------------------------- //region Eventos de interfaz virtual void OnPACSChanged(wxCommandEvent & event); virtual void OnKeyDownFormulario( wxKeyEvent& event ); virtual void OnFechaDesdeDateChanged( wxDateEvent& event ); virtual void OnFechaHastaDateChanged( wxDateEvent& event ); virtual void OnBusquedaClick( wxCommandEvent& event ); GNC::GCS::Ptr buildQuery(); virtual void Search(); virtual void OnCancelClick( wxCommandEvent& event); std::string GetModalities(); virtual void OnLimpiarClick( wxCommandEvent& event ); virtual void OnCloseClick( wxCommandEvent& event ); virtual void OnDescargarClick( wxCommandEvent& event); virtual void OnLinkClick( wxCommandEvent& event); virtual void OnTreeSelChanged(wxDataViewEvent& event); virtual void OnTreeItemActivated(wxDataViewEvent& event); virtual void OnTreeItemMenu(wxDataViewEvent& event); virtual void OnTreeItemExpanded(wxDataViewEvent& event); //stored queries virtual void OnComboStoredQueriesClick(wxCommandEvent& evt); virtual void OnStoreQuery(wxCommandEvent& evt); virtual void OnDeleteQuery(wxCommandEvent& evt); //--------------------------------------------------------------------------- //region Helpers std::string GetServerSeleccionado(); bool IsLinkSupported(); void AddDescarga(bool link = false); void ShowProperties(); bool IsAllowedToDownload(const std::string& modality); void ShowAnimation(bool show); //endregion //--------------------------------------------------------------------------- //para enterarse si ha parado un comando... virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt); // /** Init download **/ bool AddDownload(const std::string& server, const std::string& modality, bool seriesMode, const std::string& studyUID, const std::string& seriesUID, bool link); private: static DialogoAdquisicion* m_pInstance; wxString m_SelectedPACS; wxAnimationCtrl* m_pAnimation; wxObjectDataPtr m_pAcquisitionTableModel; wxDataViewCtrl* m_pAcquisitionTableView; bool m_SizeRestriction; bool m_SizeOK; typedef std::list TModalitiesVector; TModalitiesVector m_modalitiesList; DicomServerList::TServerList ListOfServers; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/acquisition/dialogoadquisicionbase.cpp000066400000000000000000000634461314736454600267370ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "dialogoadquisicionbase.h" /////////////////////////////////////////////////////////////////////////// DialogoAdquisicionBase::DialogoAdquisicionBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 520,300 ), wxDefaultSize ); m_pMainSizer = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("PACS") ); m_pMainSizer->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBodyPanel = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer18; bSizer18 = new wxBoxSizer( wxVERTICAL ); m_pPanelPACS = new TitledPanel( m_pBodyPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelPACS->SetToolTip( _("Search") ); wxBoxSizer* m_pSizerCamposBusqueda; m_pSizerCamposBusqueda = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer32; bSizer32 = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer33; bSizer33 = new wxBoxSizer( wxHORIZONTAL ); m_pPatientLabelStr = new wxStaticText( m_pPanelPACS, wxID_ANY, _("Patient"), wxDefaultPosition, wxDefaultSize, 0 ); m_pPatientLabelStr->Wrap( -1 ); m_pPatientLabelStr->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); bSizer33->Add( m_pPatientLabelStr, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxBoxSizer* bSizer23; bSizer23 = new wxBoxSizer( wxHORIZONTAL ); m_pFieldCombo = new wxComboBox( m_pPanelPACS, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 80,-1 ), 0, NULL, wxCB_DROPDOWN|wxCB_READONLY ); m_pFieldCombo->Append( _("Id") ); m_pFieldCombo->Append( _("Name") ); m_pFieldCombo->Append( _("Acc#") ); m_pFieldCombo->Append( _("Study UID") ); m_pFieldCombo->SetMinSize( wxSize( 80,-1 ) ); bSizer23->Add( m_pFieldCombo, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pSearchPanel = new wxPanel( m_pPanelPACS, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer28; bSizer28 = new wxBoxSizer( wxHORIZONTAL ); m_pTextControlField = new wxSearchCtrl( m_pSearchPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER ); #ifndef __WXMAC__ m_pTextControlField->ShowSearchButton( true ); #endif m_pTextControlField->ShowCancelButton( false ); bSizer28->Add( m_pTextControlField, 1, wxALL|wxEXPAND, 5 ); m_pLabelRestricted = new wxStaticText( m_pSearchPanel, wxID_ANY, _("PACS acquisition is restricted"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelRestricted->Wrap( -1 ); m_pLabelRestricted->Hide(); bSizer28->Add( m_pLabelRestricted, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pSizerAnimation = new wxBoxSizer( wxHORIZONTAL ); bSizer28->Add( m_pSizerAnimation, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); m_pSearchPanel->SetSizer( bSizer28 ); m_pSearchPanel->Layout(); bSizer28->Fit( m_pSearchPanel ); bSizer23->Add( m_pSearchPanel, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); bSizer33->Add( bSizer23, 1, wxEXPAND, 5 ); bSizer32->Add( bSizer33, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer31; bSizer31 = new wxBoxSizer( wxHORIZONTAL ); m_pServerLabel = new wxStaticText( m_pPanelPACS, wxID_ANY, _("Server"), wxDefaultPosition, wxDefaultSize, 0 ); m_pServerLabel->Wrap( -1 ); m_pServerLabel->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); bSizer31->Add( m_pServerLabel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pPACSListaServidores = new wxComboBox( m_pPanelPACS, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY ); bSizer31->Add( m_pPACSListaServidores, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); bSizer32->Add( bSizer31, 1, wxEXPAND, 5 ); m_pSizerCamposBusqueda->Add( bSizer32, 0, wxEXPAND, 5 ); wxBoxSizer* bSizer27; bSizer27 = new wxBoxSizer( wxHORIZONTAL ); wxStaticBoxSizer* sbSizer2; sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( m_pPanelPACS, wxID_ANY, _("Date") ), wxVERTICAL ); wxBoxSizer* bSizer17; bSizer17 = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer181; bSizer181 = new wxBoxSizer( wxVERTICAL ); m_pAnyDate = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Any date"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); m_pAnyDate->SetValue( true ); bSizer181->Add( m_pAnyDate, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 2 ); m_pTodayAM = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Today AM"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer181->Add( m_pTodayAM, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); m_pTodayPM = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Today PM"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer181->Add( m_pTodayPM, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); m_pToday = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Today"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer181->Add( m_pToday, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); bSizer17->Add( bSizer181, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer29; bSizer29 = new wxBoxSizer( wxVERTICAL ); m_pYesterday = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Yesterday"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer29->Add( m_pYesterday, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 2 ); m_pLastWeek = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Last 7 days"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer29->Add( m_pLastWeek, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); m_pLastMonth = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Last 30 days"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer29->Add( m_pLastMonth, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); m_pLastThreeMonths = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Last 3 months"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer29->Add( m_pLastThreeMonths, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); bSizer17->Add( bSizer29, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer201; bSizer201 = new wxBoxSizer( wxVERTICAL ); m_pBetween = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Between:"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer201->Add( m_pBetween, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); wxBoxSizer* bSizer21; bSizer21 = new wxBoxSizer( wxVERTICAL ); m_pTextControlFechaDesde = new wxDatePickerCtrl( m_pPanelPACS, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT|wxDP_DROPDOWN ); bSizer21->Add( m_pTextControlFechaDesde, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 2 ); bSizer201->Add( bSizer21, 0, wxEXPAND|wxLEFT, 5 ); wxBoxSizer* bSizer22; bSizer22 = new wxBoxSizer( wxVERTICAL ); m_pTextControlFechaHasta = new wxDatePickerCtrl( m_pPanelPACS, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT|wxDP_DROPDOWN ); bSizer22->Add( m_pTextControlFechaHasta, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 2 ); bSizer201->Add( bSizer22, 0, wxEXPAND|wxLEFT, 5 ); bSizer17->Add( bSizer201, 0, wxEXPAND, 5 ); sbSizer2->Add( bSizer17, 1, wxEXPAND|wxALL, 5 ); bSizer27->Add( sbSizer2, 1, wxEXPAND|wxRIGHT, 5 ); wxStaticBoxSizer* sbSizer3; sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( m_pPanelPACS, wxID_ANY, _("Modalities") ), wxVERTICAL ); m_pModalitySizer = new wxGridSizer( 0, 5, 0, 0 ); sbSizer3->Add( m_pModalitySizer, 1, wxEXPAND|wxALL, 5 ); bSizer27->Add( sbSizer3, 1, wxEXPAND|wxLEFT, 5 ); m_pSizerCamposBusqueda->Add( bSizer27, 0, wxEXPAND|wxBOTTOM, 5 ); m_pDataViewSizer = new wxBoxSizer( wxVERTICAL ); m_pSizerCamposBusqueda->Add( m_pDataViewSizer, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer20; bSizer20 = new wxBoxSizer( wxHORIZONTAL ); m_staticText6 = new wxStaticText( m_pPanelPACS, wxID_ANY, _("Stored queries"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); bSizer20->Add( m_staticText6, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pComboQueries = new wxComboBox( m_pPanelPACS, wxID_ANY, _("Select stored queries..."), wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_DROPDOWN|wxCB_READONLY ); m_pComboQueries->SetMinSize( wxSize( 200,-1 ) ); bSizer20->Add( m_pComboQueries, 0, wxTOP|wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); m_pStoredQueriesButtonBar = new wxGinkgoToolBar(m_pPanelPACS, wxID_ANY); bSizer20->Add( m_pStoredQueriesButtonBar, 0, wxALIGN_CENTER_VERTICAL, 5 ); bSizer20->Add( 0, 0, 1, wxEXPAND, 5 ); m_pBLink = new wxButton( m_pPanelPACS, wxID_ANY, _("Link"), wxDefaultPosition, wxDefaultSize, 0 ); m_pBLink->Enable( false ); m_pBLink->SetToolTip( _("Available only in WADO servers") ); bSizer20->Add( m_pBLink, 0, wxALIGN_CENTER_VERTICAL|wxTOP, 5 ); m_pBDescargar = new wxButton( m_pPanelPACS, wxID_ANY, _("Download"), wxDefaultPosition, wxDefaultSize, 0 ); m_pBDescargar->Enable( false ); bSizer20->Add( m_pBDescargar, 0, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxTOP|wxLEFT, 5 ); m_pBotonClose = new wxButton( m_pPanelPACS, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); m_pBotonClose->Hide(); bSizer20->Add( m_pBotonClose, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_pSizerCamposBusqueda->Add( bSizer20, 0, wxEXPAND, 5 ); m_pPanelPACS->SetSizer( m_pSizerCamposBusqueda ); m_pPanelPACS->Layout(); m_pSizerCamposBusqueda->Fit( m_pPanelPACS ); bSizer18->Add( m_pPanelPACS, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); m_pBodyPanel->SetSizer( bSizer18 ); m_pBodyPanel->Layout(); bSizer18->Fit( m_pBodyPanel ); m_pMainSizer->Add( m_pBodyPanel, 1, wxEXPAND, 5 ); this->SetSizer( m_pMainSizer ); this->Layout(); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DialogoAdquisicionBase::OnClose ) ); this->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ) ); m_pFieldCombo->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DialogoAdquisicionBase::OnComboField ), NULL, this ); m_pTextControlField->Connect( wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, wxCommandEventHandler( DialogoAdquisicionBase::OnCancelClick ), NULL, this ); m_pTextControlField->Connect( wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, wxCommandEventHandler( DialogoAdquisicionBase::OnBusquedaClick ), NULL, this ); m_pTextControlField->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogoAdquisicionBase::OnBusquedaClick ), NULL, this ); m_pPACSListaServidores->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DialogoAdquisicionBase::OnPACSChanged ), NULL, this ); m_pAnyDate->Connect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pTodayAM->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pTodayPM->Connect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pToday->Connect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pYesterday->Connect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pLastWeek->Connect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pLastMonth->Connect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pLastThreeMonths->Connect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pBetween->Connect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pTextControlFechaDesde->Connect( wxEVT_DATE_CHANGED, wxDateEventHandler( DialogoAdquisicionBase::OnFechaDesdeDateChanged ), NULL, this ); m_pTextControlFechaDesde->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pTextControlFechaHasta->Connect( wxEVT_DATE_CHANGED, wxDateEventHandler( DialogoAdquisicionBase::OnFechaHastaDateChanged ), NULL, this ); m_pTextControlFechaHasta->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pComboQueries->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DialogoAdquisicionBase::OnComboStoredQueriesClick ), NULL, this ); m_pBLink->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoAdquisicionBase::OnLinkClick ), NULL, this ); m_pBDescargar->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoAdquisicionBase::OnDescargarClick ), NULL, this ); m_pBotonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoAdquisicionBase::OnCloseClick ), NULL, this ); } DialogoAdquisicionBase::~DialogoAdquisicionBase() { // Disconnect Events this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DialogoAdquisicionBase::OnClose ) ); this->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ) ); m_pFieldCombo->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DialogoAdquisicionBase::OnComboField ), NULL, this ); m_pTextControlField->Disconnect( wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, wxCommandEventHandler( DialogoAdquisicionBase::OnCancelClick ), NULL, this ); m_pTextControlField->Disconnect( wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, wxCommandEventHandler( DialogoAdquisicionBase::OnBusquedaClick ), NULL, this ); m_pTextControlField->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( DialogoAdquisicionBase::OnBusquedaClick ), NULL, this ); m_pPACSListaServidores->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DialogoAdquisicionBase::OnPACSChanged ), NULL, this ); m_pAnyDate->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pTodayAM->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pTodayPM->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pToday->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pYesterday->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pLastWeek->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pLastMonth->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pLastThreeMonths->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pBetween->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pTextControlFechaDesde->Disconnect( wxEVT_DATE_CHANGED, wxDateEventHandler( DialogoAdquisicionBase::OnFechaDesdeDateChanged ), NULL, this ); m_pTextControlFechaDesde->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pTextControlFechaHasta->Disconnect( wxEVT_DATE_CHANGED, wxDateEventHandler( DialogoAdquisicionBase::OnFechaHastaDateChanged ), NULL, this ); m_pTextControlFechaHasta->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( DialogoAdquisicionBase::OnKeyDownFormulario ), NULL, this ); m_pComboQueries->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DialogoAdquisicionBase::OnComboStoredQueriesClick ), NULL, this ); m_pBLink->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoAdquisicionBase::OnLinkClick ), NULL, this ); m_pBDescargar->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoAdquisicionBase::OnDescargarClick ), NULL, this ); m_pBotonClose->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoAdquisicionBase::OnCloseClick ), NULL, this ); } DialogoNotFoundBase::DialogoNotFoundBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 285,164 ), wxDefaultSize ); wxBoxSizer* bSizer12; bSizer12 = new wxBoxSizer( wxVERTICAL ); m_panel5 = new TitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel5->SetToolTip( _("Series does not exist") ); wxBoxSizer* bSizer13; bSizer13 = new wxBoxSizer( wxVERTICAL ); m_staticText10 = new wxStaticText( m_panel5, wxID_ANY, _("These series have been deleted from the local history"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText10->Wrap( 440 ); bSizer13->Add( m_staticText10, 0, wxALL, 5 ); m_pListaSeries = new wxListBox( m_panel5, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); bSizer13->Add( m_pListaSeries, 1, wxEXPAND|wxTOP, 0 ); m_panel5->SetSizer( bSizer13 ); m_panel5->Layout(); bSizer13->Fit( m_panel5 ); bSizer12->Add( m_panel5, 1, wxEXPAND | wxALL, 5 ); m_pPanelOkCancel = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer14; bSizer14 = new wxBoxSizer( wxHORIZONTAL ); bSizer14->Add( 0, 0, 1, wxEXPAND, 5 ); m_pButtonOk = new wxButton( m_pPanelOkCancel, wxID_OK, _("Continue"), wxDefaultPosition, wxDefaultSize, 0 ); m_pButtonOk->SetDefault(); bSizer14->Add( m_pButtonOk, 0, wxRIGHT, 5 ); m_pButtonCancel = new wxButton( m_pPanelOkCancel, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer14->Add( m_pButtonCancel, 0, wxLEFT, 5 ); m_pPanelOkCancel->SetSizer( bSizer14 ); m_pPanelOkCancel->Layout(); bSizer14->Fit( m_pPanelOkCancel ); bSizer12->Add( m_pPanelOkCancel, 0, wxEXPAND, 5 ); m_pPanelOk = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxHORIZONTAL ); bSizer16->Add( 0, 0, 1, wxEXPAND, 5 ); m_button10 = new wxButton( m_pPanelOk, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_button10->SetDefault(); bSizer16->Add( m_button10, 0, 0, 5 ); m_pPanelOk->SetSizer( bSizer16 ); m_pPanelOk->Layout(); bSizer16->Fit( m_pPanelOk ); bSizer12->Add( m_pPanelOk, 0, wxEXPAND, 5 ); this->SetSizer( bSizer12 ); this->Layout(); bSizer12->Fit( this ); this->Centre( wxBOTH ); } DialogoNotFoundBase::~DialogoNotFoundBase() { } DownloadAgainDialogBase::DownloadAgainDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 415,300 ), wxDefaultSize ); wxBoxSizer* m_pMainSizer; m_pMainSizer = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Download again") ); m_pMainSizer->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer141; bSizer141 = new wxBoxSizer( wxVERTICAL ); m_pFormPanel = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pFormPanel->SetToolTip( _("Download again") ); wxBoxSizer* bSizer19; bSizer19 = new wxBoxSizer( wxHORIZONTAL ); m_pLabelMessage = new wxStaticText( m_pFormPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelMessage->Wrap( 350 ); bSizer19->Add( m_pLabelMessage, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 ); m_pFormPanel->SetSizer( bSizer19 ); m_pFormPanel->Layout(); bSizer19->Fit( m_pFormPanel ); bSizer141->Add( m_pFormPanel, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer141 ); m_pBody->Layout(); bSizer141->Fit( m_pBody ); m_pMainSizer->Add( m_pBody, 1, wxEXPAND, 5 ); m_panel6 = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer14; bSizer14 = new wxBoxSizer( wxHORIZONTAL ); bSizer14->Add( 0, 0, 1, 0, 0 ); m_button9 = new wxButton( m_panel6, wxID_ANY, _("Open"), wxDefaultPosition, wxDefaultSize, 0 ); m_button9->SetDefault(); bSizer14->Add( m_button9, 0, wxALL, 5 ); m_pButtonOk = new wxButton( m_panel6, wxID_OK, _("Download"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer14->Add( m_pButtonOk, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); m_pBotonCancelar = new wxButton( m_panel6, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer14->Add( m_pBotonCancelar, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_panel6->SetSizer( bSizer14 ); m_panel6->Layout(); bSizer14->Fit( m_panel6 ); m_pMainSizer->Add( m_panel6, 0, wxEXPAND, 5 ); this->SetSizer( m_pMainSizer ); this->Layout(); m_pMainSizer->Fit( this ); this->Centre( wxBOTH ); // Connect Events m_button9->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DownloadAgainDialogBase::OnOpenClick ), NULL, this ); } DownloadAgainDialogBase::~DownloadAgainDialogBase() { // Disconnect Events m_button9->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DownloadAgainDialogBase::OnOpenClick ), NULL, this ); } QueryNameDialogBase::QueryNameDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 415,250 ), wxDefaultSize ); wxBoxSizer* m_pMainSizer; m_pMainSizer = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Set query name") ); m_pMainSizer->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer141; bSizer141 = new wxBoxSizer( wxVERTICAL ); m_pFormPanel = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pFormPanel->SetToolTip( _("Set query name") ); wxBoxSizer* bSizer19; bSizer19 = new wxBoxSizer( wxHORIZONTAL ); m_pLabelMessage = new wxStaticText( m_pFormPanel, wxID_ANY, _("Set query name"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelMessage->Wrap( 350 ); bSizer19->Add( m_pLabelMessage, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 ); m_pQueryName = new wxTextCtrl( m_pFormPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); bSizer19->Add( m_pQueryName, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pFormPanel->SetSizer( bSizer19 ); m_pFormPanel->Layout(); bSizer19->Fit( m_pFormPanel ); bSizer141->Add( m_pFormPanel, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer141 ); m_pBody->Layout(); bSizer141->Fit( m_pBody ); m_pMainSizer->Add( m_pBody, 1, wxEXPAND, 5 ); m_panel6 = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer14; bSizer14 = new wxBoxSizer( wxHORIZONTAL ); bSizer14->Add( 0, 0, 1, 0, 0 ); m_pButtonOk = new wxButton( m_panel6, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_pButtonOk->SetDefault(); bSizer14->Add( m_pButtonOk, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); m_pBotonCancelar = new wxButton( m_panel6, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer14->Add( m_pBotonCancelar, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_panel6->SetSizer( bSizer14 ); m_panel6->Layout(); bSizer14->Fit( m_panel6 ); m_pMainSizer->Add( m_panel6, 0, wxEXPAND, 5 ); this->SetSizer( m_pMainSizer ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_pButtonOk->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( QueryNameDialogBase::OnOkClick ), NULL, this ); } QueryNameDialogBase::~QueryNameDialogBase() { // Disconnect Events m_pButtonOk->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( QueryNameDialogBase::OnOkClick ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/acquisition/dialogoadquisicionbase.h000066400000000000000000000157371314736454600264040ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __DIALOGOADQUISICIONBASE_H__ #define __DIALOGOADQUISICIONBASE_H__ #include #include #include class BodyPanel; class FooterPanel; class HeaderPanel; class TitledPanel; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /// Class DialogoAdquisicionBase /////////////////////////////////////////////////////////////////////////////// class DialogoAdquisicionBase : public wxDialog { private: protected: wxBoxSizer* m_pMainSizer; HeaderPanel* m_pHeader; BodyPanel* m_pBodyPanel; TitledPanel* m_pPanelPACS; wxStaticText* m_pPatientLabelStr; wxComboBox* m_pFieldCombo; wxPanel* m_pSearchPanel; wxSearchCtrl* m_pTextControlField; wxStaticText* m_pLabelRestricted; wxBoxSizer* m_pSizerAnimation; wxStaticText* m_pServerLabel; wxComboBox* m_pPACSListaServidores; wxRadioButton* m_pAnyDate; wxRadioButton* m_pTodayAM; wxRadioButton* m_pTodayPM; wxRadioButton* m_pToday; wxRadioButton* m_pYesterday; wxRadioButton* m_pLastWeek; wxRadioButton* m_pLastMonth; wxRadioButton* m_pLastThreeMonths; wxRadioButton* m_pBetween; wxDatePickerCtrl* m_pTextControlFechaDesde; wxDatePickerCtrl* m_pTextControlFechaHasta; wxGridSizer* m_pModalitySizer; wxBoxSizer* m_pDataViewSizer; wxStaticText* m_staticText6; wxComboBox* m_pComboQueries; wxGinkgoToolBar* m_pStoredQueriesButtonBar; wxButton* m_pBLink; wxButton* m_pBDescargar; wxButton* m_pBotonClose; // Virtual event handlers, overide them in your derived class virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } virtual void OnKeyDownFormulario( wxKeyEvent& event ) { event.Skip(); } virtual void OnComboField( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnBusquedaClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnPACSChanged( wxCommandEvent& event ) { event.Skip(); } virtual void OnFechaDesdeDateChanged( wxDateEvent& event ) { event.Skip(); } virtual void OnFechaHastaDateChanged( wxDateEvent& event ) { event.Skip(); } virtual void OnComboStoredQueriesClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnLinkClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnDescargarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCloseClick( wxCommandEvent& event ) { event.Skip(); } public: DialogoAdquisicionBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("DICOM Query/Retrieve"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 950,575 ), long style = wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~DialogoAdquisicionBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DialogoNotFoundBase /////////////////////////////////////////////////////////////////////////////// class DialogoNotFoundBase : public wxDialog { private: protected: TitledPanel* m_panel5; wxStaticText* m_staticText10; wxButton* m_button10; public: wxListBox* m_pListaSeries; FooterPanel* m_pPanelOkCancel; wxButton* m_pButtonOk; wxButton* m_pButtonCancel; FooterPanel* m_pPanelOk; DialogoNotFoundBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Not found"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); ~DialogoNotFoundBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DownloadAgainDialogBase /////////////////////////////////////////////////////////////////////////////// class DownloadAgainDialogBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; TitledPanel* m_pFormPanel; wxStaticText* m_pLabelMessage; FooterPanel* m_panel6; wxButton* m_button9; wxButton* m_pButtonOk; wxButton* m_pBotonCancelar; // Virtual event handlers, overide them in your derived class virtual void OnOpenClick( wxCommandEvent& event ) { event.Skip(); } public: DownloadAgainDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Download again"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DownloadAgainDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class QueryNameDialogBase /////////////////////////////////////////////////////////////////////////////// class QueryNameDialogBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; TitledPanel* m_pFormPanel; wxStaticText* m_pLabelMessage; wxTextCtrl* m_pQueryName; FooterPanel* m_panel6; wxButton* m_pButtonOk; wxButton* m_pBotonCancelar; // Virtual event handlers, overide them in your derived class virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } public: QueryNameDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Set query name"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 415,250 ), long style = wxCAPTION|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~QueryNameDialogBase(); }; #endif //__DIALOGOADQUISICIONBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/acquisition/downloadagaindialog.cpp000066400000000000000000000050151314736454600262100ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "downloadagaindialog.h" #include #include
    #include
    #include
    #include
    #include
    namespace GNC { namespace GUI { DownloadAgainDialog::DownloadAgainDialog(wxWindow* pParent, std::string uid, bool isSeries): DownloadAgainDialogBase(pParent), UID(uid), IsSeries(isSeries) { if (IsSeries) { m_pLabelMessage->SetLabel(_("This series has been already downloaded in the local history, Do you want to download it again?")); } else { m_pLabelMessage->SetLabel(_("This study has been already downloaded in the local history, Do you want to download it again?")); } m_pLabelMessage->Wrap(350); m_pFormPanel->Layout(); m_pBody->Layout(); Layout(); } DownloadAgainDialog::~DownloadAgainDialog() { } void DownloadAgainDialog::OnOpenClick(wxCommandEvent &) { if (IsSeries) { GNC::GCS::HistoryController::SeriesModelList sml; GNC::GCS::HistoryController::Instance()->GetSeriesModelFromUID(UID, sml); if (!sml.empty()) { GNC::GUI::HistoryPanel3::Instance()->OpenSeriesOrStudy(sml.front().pk, true); } } else { GNC::GCS::HistoryController::StudyModelList sml; GNC::GCS::HistoryController::Instance()->GetStudyModelFromUID(UID, sml); if (!sml.empty()) { GNC::GUI::HistoryPanel3::Instance()->OpenSeriesOrStudy(sml.front().pk, false); } } EndModal(wxID_CANCEL); } } } ginkgocadx-3.8.7/cadxcore/main/gui/acquisition/downloadagaindialog.h000066400000000000000000000022031314736454600256510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "dialogoadquisicionbase.h" namespace GNC { namespace GUI { class DownloadAgainDialog: public DownloadAgainDialogBase { public: DownloadAgainDialog(wxWindow* pParent, std::string uid, bool isSeries); ~DownloadAgainDialog(); virtual void OnOpenClick(wxCommandEvent &evt); protected: std::string UID; bool IsSeries; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/anonymize/000077500000000000000000000000001314736454600211755ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/anonymize/AnonymizePanels.fbp000066400000000000000000006406331314736454600250160ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect anonymizepanelbase 1000 none 1 AnonymizePanels "GNC" "GUI" . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY AnonymizePanelBase 500,300 wxTAB_TRAVERSAL bSizer61 wxVERTICAL none 5 wxEXPAND|wxTOP|wxBOTTOM 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelCampos 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Common tags wxTAB_TRAVERSAL bSizer10 wxVERTICAL none 5 wxEXPAND 1 2 0 gSizer1 none 0 0 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Patient's name and surname 0 0 1 m_pCheckNombrePaciente 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckNombreApellidos 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Patient Id 0 0 1 m_pCheckIdPaciente 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckIdPaciente 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Institutions 0 0 1 m_pCheckInstituciones 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckInstituciones 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Referring physician 0 0 1 m_pReferringPhysician 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckPhysician 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Comments 0 0 1 m_pCheckComentarios 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckComentarios 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Ginkgo CADx tags (Evaluation Maps...) 0 0 1 m_pCheckAtributosPrivadosGinkgo 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 protected 0 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel5 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTagsPanel 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Tags (double click to change value) wxTAB_TRAVERSAL bSizer4 wxHORIZONTAL none 5 wxEXPAND 1 1 1 1 1 1 0 wxPropertyGrid 1 m_pTagsList = new wxPropertyGrid(m_pTagsPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxPG_DEFAULT_STYLE|wxPG_HIDE_CATEGORIES|wxPG_HIDE_MARGIN|wxTAB_TRAVERSAL); 1 wxPropertyGrid* m_pTagsList; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/propgrid/propgrid.h> 0 0 1 m_pTagsList 1 protected 1 Resizable 1 0 5 wxALIGN_RIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Add new... 0 0 1 m_button4 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAddNewTag 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 800,600 AnonymizeDialogBase wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Anonymize bSizer8 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Anonymize wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL m_pBodySizer wxVERTICAL public 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer10 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Overwrite 0 0 1 m_pOverwrite 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnOverwriteClick 5 wxRIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_OK Create new 0 0 1 m_pCreateNew 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCreateNewClick 5 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_pCancel 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 550,280 AnonymizeAddTagDialogBase 550,280 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Add DICOM tag bSizer6 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND | wxALL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTitled 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Add DICOM tag wxTAB_TRAVERSAL bSizer8 wxVERTICAL none 5 wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 470,-1 0 1 m_pTag 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator OnTagSelection 5 wxEXPAND 1 3 wxBOTH 2 0 fgSizer1 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Group 0 0 1 m_staticText1 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Element 0 0 1 m_staticText2 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Value 0 0 1 m_staticText3 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 4 0 1 m_pTextGroup 1 protected 1 Resizable 1 0 int wxFILTER_ALPHANUMERIC|wxFILTER_INCLUDE_CHAR_LIST wxGenericValidator 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 4 0 1 m_pTextElement 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTextValue 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer10 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_OK Ok 0 0 1 m_button5 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnOkClick 5 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button6 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/anonymize/anonymizedialog.cpp000066400000000000000000000051331314736454600250740ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "anonymizedialog.h" #include "anonymizepanel.h" #include #include
    #include #include #include #include
    #include
    #include #include GNC::GUI::AnonymizeDialog::AnonymizeDialog(wxWindow* pParent, const std::list& seriesPk): GNC::GUI::AnonymizeDialogBase(pParent) { m_pDatosPersistentes = new TipoWizardExportacion(); m_pDatosPersistentes->ListOfSeriesPks = seriesPk; m_pAnonymizePanel = new AnonymizePanel(m_pBody, seriesPk); m_pBodySizer->Add(m_pAnonymizePanel, 1, wxEXPAND); m_pBody->Layout(); Layout(); } GNC::GUI::AnonymizeDialog::~AnonymizeDialog() { } void GNC::GUI::AnonymizeDialog::OnOverwriteClick(wxCommandEvent &) { LaunchCommand(true); } void GNC::GUI::AnonymizeDialog::OnCreateNewClick(wxCommandEvent &) { LaunchCommand(false); } void GNC::GUI::AnonymizeDialog::LaunchCommand(bool overwrite) { if (overwrite) { m_pDatosPersistentes->m_target = GNC::GUI::TipoWizardExportacion::OVERWRITE; } else { m_pDatosPersistentes->m_target = GNC::GUI::TipoWizardExportacion::NEW_STUDY; } m_pAnonymizePanel->GetTagsAnonymized(m_pDatosPersistentes->m_base); m_pDatosPersistentes->m_incluirTagsGinkgo = !m_pAnonymizePanel->AnonymizePrivateTags(); GADAPI::ComandoExportacionParams* pParams = new GADAPI::ComandoExportacionParams(m_pDatosPersistentes); GADAPI::ComandoExportacion* pCmd = new GADAPI::ComandoExportacion(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Exporting images ..."), pCmd, NULL); this->Close(); } ginkgocadx-3.8.7/cadxcore/main/gui/anonymize/anonymizedialog.h000066400000000000000000000027371314736454600245500ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "anonymizepanelbase.h" #include #include #include #include
    namespace GNC { namespace GUI { class AnonymizePanel; class AnonymizeDialog: public AnonymizeDialogBase { public: AnonymizeDialog(wxWindow* pParent, const std::list& seriesPk); ~AnonymizeDialog(); protected: virtual void OnOverwriteClick( wxCommandEvent& event ); virtual void OnCreateNewClick( wxCommandEvent& event ); void LaunchCommand(bool overwrite); GNC::GCS::Ptr m_pDatosPersistentes; GNC::GUI::AnonymizePanel* m_pAnonymizePanel; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/anonymize/anonymizepanel.cpp000066400000000000000000000407421314736454600247410ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "anonymizepanel.h" #include #include #include
    #include #include #include #include #include
    #include
    #include #include /**dcmtk dictionary...*/ #include #include #include #include /**/ namespace GNC { namespace GUI { class AnonymizeAddTagDialog: public AnonymizeAddTagDialogBase { public: AnonymizeAddTagDialog(wxWindow* pParent): AnonymizeAddTagDialogBase(pParent) { DcmDataDictionary& globalDataDict = dcmDataDict.wrlock(); wxArrayString listOfStrings; for (DcmHashDictIterator it = globalDataDict.normalBegin(); it != globalDataDict.normalEnd(); ++it) { DcmDictEntry entry(*(*it)); listOfStrings.push_back(wxString::FromUTF8(entry.getTagName())); } dcmDataDict.unlock(); listOfStrings.Sort(); m_pTag->Append(listOfStrings); m_pBody->Layout(); Layout(); } virtual void OnTagSelection(wxCommandEvent& /*evt*/) { if (m_pTag->GetSelection() != 0) { wxString tagName = m_pTag->GetStringSelection(); const DcmDataDictionary& globalDataDict = dcmDataDict.rdlock(); const DcmDictEntry* entry = globalDataDict.findEntry(tagName.ToUTF8()); dcmDataDict.unlock(); if (entry != NULL) { m_pTextGroup->SetValue(wxString::Format(wxT("%04x"),entry->getGroup())); m_pTextElement->SetValue(wxString::Format(wxT("%04x"),entry->getElement())); } } } std::string getKey() { wxString key; long group,element; if (m_pTextGroup->GetValue().ToLong(&group, 16) && m_pTextElement->GetValue().ToLong(&element, 16) && group >= 0 && group < 0xffff && element >= 0 && element < 0xffff) { key = wxString::Format(wxT("%04x|%04x"), group, element); } return std::string(key.ToUTF8()); } std::string getValue() { return std::string(m_pTextValue->GetValue().ToUTF8()); } virtual void OnOkClick(wxCommandEvent &evt) { long group,element; if (m_pTextGroup->GetValue().ToLong(&group, 16) && m_pTextElement->GetValue().ToLong(&element, 16) && group >= 0 && group < 0xffff && element >= 0 && element < 0xffff) { evt.Skip(true); } else { wxMessageBox(_("Element field or group field have invalid values"),_("Info"),wxOK | wxICON_INFORMATION, this); evt.Skip(false); } } }; } } /**********************************************************/ GNC::GUI::AnonymizePanel::AnonymizePanel(wxWindow* pParent): GNC::GUI::AnonymizePanelBase(pParent) { } GNC::GUI::AnonymizePanel::AnonymizePanel(wxWindow* pParent, const std::list& seriesPk): GNC::GUI::AnonymizePanelBase(pParent) { if (seriesPk.empty()) { LOG_ERROR("AnonymizePanel", "you have to select at least one series to anonymize"); } else { InitSeries(seriesPk.front()); } } GNC::GUI::AnonymizePanel::~AnonymizePanel() { m_pTagsList->Disconnect(wxEVT_PG_CHANGED,wxPropertyGridEventHandler(AnonymizePanel::OnPropertyChanged),NULL,this); m_pTagsList->Disconnect(wxEVT_PG_DOUBLE_CLICK,wxPropertyGridEventHandler(AnonymizePanel::OnPropertyDobleClick),NULL,this); } void GNC::GUI::AnonymizePanel::InitSeries(long pkSeries) { GNC::GCS::HistoryController::LightFileModelList fileModels; GNC::GCS::HistoryController::Instance()->GetSeriesSortedFileModels(pkSeries, fileModels); GIL::DICOM::IDICOMManager* pDICOMManager = GNC::GCS::IEntorno::Instance()->GetPACSController()->CrearInstanciaDeDICOMManager(); pDICOMManager->CargarFichero(fileModels.front().real_path, m_base); SetTags(m_base, m_pTagsList->GetRoot(), pDICOMManager); GNC::Entorno::Instance()->GetPACSController()->LiberarInstanciaDeDICOMManager(pDICOMManager); MapOfCheck[GKDCM_PatientName] = m_pCheckNombrePaciente; MapOfCheck[GKDCM_PatientID] = m_pCheckIdPaciente; MapOfCheck[GKDCM_InstitutionName] = m_pCheckInstituciones; MapOfCheck[GKDCM_ReferringPhysicianName] = m_pReferringPhysician; MapOfCheck[GKDCM_StudyDescription] = m_pCheckComentarios; MapOfCheck[GKDCM_SeriesDescription] = m_pCheckComentarios; MapOfCheck[GKDCM_ImageComments] = m_pCheckComentarios; GNC::GCS::IConfigurationController::TListGroups groups; GNC::GCS::IConfigurationController::Instance()->readGroupUser("/Core/AnonymizationSelection", groups); for (GNC::GCS::IConfigurationController::TListGroups::iterator it = groups.begin(); it != groups.end(); ++it) { if ((*it).find("tag") != (*it).end() && (*it).find("value") != (*it).end()) { Anonymize((*it)["tag"], true, (*it)["value"], false); } } m_pTagsList->Connect(wxEVT_PG_CHANGED,wxPropertyGridEventHandler(AnonymizePanel::OnPropertyChanged),NULL,this); m_pTagsList->Connect(wxEVT_PG_DOUBLE_CLICK,wxPropertyGridEventHandler(AnonymizePanel::OnPropertyDobleClick),NULL,this); } void GNC::GUI::AnonymizePanel::SetTags(GIL::DICOM::DicomDataset & base,wxPGProperty* idPadre,GIL::DICOM::IDICOMManager* pDICOMManager) { for(GIL::DICOM::ListaTags::iterator it = base.tags.begin(); it!= base.tags.end(); ++it) { wxString helpString = wxString::FromUTF8(pDICOMManager->GetDescription((*it).first).c_str()); wxStringProperty* prop = NULL; wxString valor; if((*it).second.size()>100) { valor=wxT("Datos"); } else { valor = wxString::FromUTF8((*it).second.c_str()); } if(helpString.size()>0) { helpString = wxT("(") + wxString::FromUTF8((*it).first.c_str()) + wxT(") ") + helpString; prop = new wxStringProperty(helpString, wxPG_LABEL,valor); } else { prop = new wxStringProperty(wxString::FromUTF8((*it).first.c_str()), wxPG_LABEL,valor); } prop->SetHelpString(wxString::FromUTF8((*it).first.c_str())); m_pTagsList->AppendIn(idPadre, prop); } for(GIL::DICOM::DicomDataset::DatasetList::iterator it = base.secuencias.begin(); it!=base.secuencias.end(); ++it) { wxStringProperty* prop = NULL; wxString helpString = wxString::FromUTF8(pDICOMManager->GetDescription((*it).tagName).c_str()); if(helpString.size()>0) { helpString = wxT("(") + wxString::FromUTF8((*it).tagName.c_str()) + wxT(") ") + helpString; prop = new wxStringProperty(helpString, wxPG_LABEL,wxEmptyString); } else { prop = new wxStringProperty(wxString::FromUTF8((*it).tagName.c_str()), wxPG_LABEL,wxEmptyString); } prop->SetHelpString(wxString::FromUTF8((*it).tagName.c_str())); if(m_pTagsList->GetProperty(prop->GetName()) != NULL) { ////////////////////////////////////std::cout<<"hasdfasdf"; } wxPGProperty* pIdSequencia = m_pTagsList->AppendIn(idPadre,prop); //recursion int i=0; for(GIL::DICOM::DicomDataset::DatasetList::iterator it2 = (*it).items.begin(); it2!= (*it).items.end(); ++it2, ++i) { wxPGProperty* pIdItem = m_pTagsList->AppendIn(pIdSequencia,new wxStringProperty(wxString::Format(wxT("Item %d"),i),wxPG_LABEL,wxEmptyString)); SetTags((*it2),pIdItem,pDICOMManager); } } } void GNC::GUI::AnonymizePanel::OnCheckNombreApellidos( wxCommandEvent& /*event*/ ) { //se anonimiza 0010|0010 (nombre del paciente) std::string clave("0010|0010"); Anonymize(clave,m_pCheckNombrePaciente->IsChecked()); } void GNC::GUI::AnonymizePanel::OnCheckIdPaciente( wxCommandEvent& /*event*/ ) { //se anonimiza 0010|0020" (id del paciente) std::string clave("0010|0020"); Anonymize(clave,m_pCheckIdPaciente->IsChecked()); } void GNC::GUI::AnonymizePanel::OnCheckInstituciones( wxCommandEvent& /*event*/ ) { //se anonimiza (0008,0080) Institution Name std::string clave("0008|0080"); Anonymize(clave,m_pCheckInstituciones->IsChecked()); } void GNC::GUI::AnonymizePanel::OnCheckPhysician( wxCommandEvent& /*event*/ ) { //referring physician name std::string clave("0008|0090"); Anonymize(clave,m_pReferringPhysician->IsChecked()); } void GNC::GUI::AnonymizePanel::OnCheckComentarios( wxCommandEvent& /*event*/ ) { //descripcion del estudio, serie e imagenes //estudio { std::string clave("0008|1030"); Anonymize(clave,m_pCheckComentarios->IsChecked()); } //serie { std::string clave("0008|103e"); Anonymize(clave,m_pCheckComentarios->IsChecked()); } //imagen { std::string clave("0020|4000"); Anonymize(clave,m_pCheckComentarios->IsChecked()); } } void GNC::GUI::AnonymizePanel::OnAddNewTag( wxCommandEvent &) { AnonymizeAddTagDialog dlg(this); if (dlg.ShowModal() == wxID_OK) { Anonymize(dlg.getKey(), true, dlg.getValue()); } } void GNC::GUI::AnonymizePanel::Anonymize(const std::string& clave, bool anonimizar) { wxString value = wxEmptyString; if(!anonimizar) { std::string tmp; if(m_base.getTag(clave,tmp)) { value = wxString::FromUTF8(tmp.c_str()); } } Anonymize(clave, anonimizar, std::string(value.ToUTF8())); } void GNC::GUI::AnonymizePanel::Anonymize(const std::string& clave, bool anonimizar, const std::string& value, bool anonymizeIfNotExists ) { if (MapOfCheck.find(clave) != MapOfCheck.end()) { MapOfCheck[clave]->SetValue(anonimizar); } wxString valueWx = wxString::FromUTF8(value.c_str()); for (wxPropertyGridIterator it = m_pTagsList->GetIterator(); ! it.AtEnd(); ++it) { wxPGProperty* prop = it.GetProperty(); if(prop->GetHelpString() == wxString::FromUTF8(clave.c_str())) { prop->SetValueFromString(valueWx); if(anonimizar) { m_pTagsList->SetPropertyCell(prop,0,prop->GetLabel(),wxNullBitmap,*wxWHITE,*wxRED); m_pTagsList->SetPropertyCell(prop,1,prop->GetValue(),wxNullBitmap,*wxWHITE,*wxRED); } else { m_pTagsList->SetPropertyCell(prop,0,prop->GetLabel(), wxNullBitmap, *wxBLACK, *wxWHITE); m_pTagsList->SetPropertyCell(prop,1,prop->GetValue(), wxNullBitmap, *wxBLACK, *wxWHITE); } prop->ChangeFlag(wxPG_PROP_MODIFIED,anonimizar); m_pTagsList->RefreshProperty(prop); m_pTagsList->SelectProperty(prop, true); return; } } if (anonymizeIfNotExists) { //key not found... add it to property grid wxStringProperty* prop = NULL; GIL::DICOM::IDICOMManager* pDICOMManager = GNC::GCS::IEntorno::Instance()->GetPACSController()->CrearInstanciaDeDICOMManager(); wxString helpString = wxString::FromUTF8(pDICOMManager->GetDescription(clave).c_str()); if(helpString.size()>0) { helpString = wxT("(") + wxString::FromUTF8(clave.c_str()) + wxT(") ") + helpString; prop = new wxStringProperty(helpString, wxPG_LABEL,wxEmptyString); } else { prop = new wxStringProperty(wxString::FromUTF8(clave.c_str()), wxPG_LABEL,wxEmptyString); } prop->SetHelpString(wxString::FromUTF8(clave.c_str())); GNC::Entorno::Instance()->GetPACSController()->LiberarInstanciaDeDICOMManager(pDICOMManager); prop->SetValue(wxString::FromUTF8(value.c_str())); prop->ChangeFlag(wxPG_PROP_MODIFIED,anonimizar); if(anonimizar) { m_pTagsList->SetPropertyCell(prop,0,prop->GetLabel(),wxNullBitmap,*wxWHITE,*wxRED); m_pTagsList->SetPropertyCell(prop,1,prop->GetValue(),wxNullBitmap,*wxWHITE,*wxRED); } m_pTagsList->AppendIn(m_pTagsList->GetRoot(), prop); m_pTagsList->SelectProperty(prop, true); } } void GNC::GUI::AnonymizePanel::RemoveFromTable(const std::string& clave) { for (wxPropertyGridIterator it = m_pTagsList->GetIterator(); ! it.AtEnd(); ++it) { wxPGProperty* prop = it.GetProperty(); if(prop->GetHelpString() == wxString::FromUTF8(clave.c_str())) { m_pTagsList->DeleteProperty(prop); break; } } } void GNC::GUI::AnonymizePanel::GetTagsAnonymized(GIL::DICOM::DicomDataset & base) { base.tags.clear(); GNC::GCS::IConfigurationController::TListGroups configGroups; for (wxPropertyGridIterator it = m_pTagsList->GetIterator(); ! it.AtEnd(); ++it) { wxPGProperty* prop = it.GetProperty(); if(prop->GetFlags() & wxPG_PROP_MODIFIED) { std::string clave(prop->GetHelpString().ToUTF8()); std::string valor(prop->GetValueAsString().ToUTF8()); base.tags[clave] = valor; GNC::GCS::IConfigurationController::TMapValues group; group["tag"] = clave; group["value"] = valor; configGroups.push_back(group); } } GNC::GCS::IConfigurationController::Instance()->writeGroupUser("/Core/AnonymizationSelection", configGroups); } bool GNC::GUI::AnonymizePanel::AnonymizePrivateTags() { return m_pCheckAtributosPrivadosGinkgo->IsChecked(); } void GNC::GUI::AnonymizePanel::OnPropertyChanged(wxPropertyGridEvent& event) { wxPGProperty* selected= event.GetProperty(); m_pTagsList->SetPropertyCell(selected,0,selected->GetLabel(),wxNullBitmap,*wxWHITE,*wxRED); m_pTagsList->SetPropertyCell(selected,1,selected->GetValue(),wxNullBitmap,*wxWHITE,*wxRED); } void GNC::GUI::AnonymizePanel::OnPropertyDobleClick(wxPropertyGridEvent& event) { std::string clave(event.GetProperty()->GetHelpString().ToUTF8()); bool isModified = (event.GetProperty()->GetFlags() & wxPG_PROP_MODIFIED); Anonymize(clave,!isModified); } ginkgocadx-3.8.7/cadxcore/main/gui/anonymize/anonymizepanel.h000066400000000000000000000043601314736454600244020ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "anonymizepanelbase.h" #include #include #include namespace GNC { namespace GUI { class AnonymizePanel: public AnonymizePanelBase { public: AnonymizePanel(wxWindow* pParent); AnonymizePanel(wxWindow* pParent, const std::list& seriesPk); ~AnonymizePanel(); void GetTagsAnonymized(GIL::DICOM::DicomDataset & base); bool AnonymizePrivateTags(); protected: void InitSeries(long pkSeries); void SetTags(GIL::DICOM::DicomDataset & base,wxPGProperty* idPadre,GIL::DICOM::IDICOMManager* pDICOMManager); virtual void OnCheckNombreApellidos( wxCommandEvent& event ); virtual void OnCheckIdPaciente( wxCommandEvent& event ); virtual void OnCheckInstituciones( wxCommandEvent& event ); virtual void OnCheckPhysician( wxCommandEvent& event ); virtual void OnCheckComentarios( wxCommandEvent& event ); virtual void OnAddNewTag( wxCommandEvent &evt); void Anonymize(const std::string& clave, bool anonimizar); void Anonymize(const std::string& clave, bool anonimizar, const std::string& value, bool anonymizeIfNotExists = true); void RemoveFromTable(const std::string& clave); void OnPropertyChanged(wxPropertyGridEvent& event); void OnPropertyDobleClick(wxPropertyGridEvent& event); GIL::DICOM::DicomDataset m_base; std::map MapOfCheck; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/anonymize/anonymizepanelbase.cpp000066400000000000000000000303621314736454600255710ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "anonymizepanelbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; AnonymizePanelBase::AnonymizePanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer61; bSizer61 = new wxBoxSizer( wxVERTICAL ); m_pPanelCampos = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelCampos->SetToolTip( _("Common tags") ); wxBoxSizer* bSizer10; bSizer10 = new wxBoxSizer( wxVERTICAL ); wxGridSizer* gSizer1; gSizer1 = new wxGridSizer( 0, 2, 0, 0 ); m_pCheckNombrePaciente = new wxCheckBox( m_pPanelCampos, wxID_ANY, _("Patient's name and surname"), wxDefaultPosition, wxDefaultSize, 0 ); gSizer1->Add( m_pCheckNombrePaciente, 0, wxALL, 5 ); m_pCheckIdPaciente = new wxCheckBox( m_pPanelCampos, wxID_ANY, _("Patient Id"), wxDefaultPosition, wxDefaultSize, 0 ); gSizer1->Add( m_pCheckIdPaciente, 0, wxALL, 5 ); m_pCheckInstituciones = new wxCheckBox( m_pPanelCampos, wxID_ANY, _("Institutions"), wxDefaultPosition, wxDefaultSize, 0 ); gSizer1->Add( m_pCheckInstituciones, 0, wxALL, 5 ); m_pReferringPhysician = new wxCheckBox( m_pPanelCampos, wxID_ANY, _("Referring physician"), wxDefaultPosition, wxDefaultSize, 0 ); gSizer1->Add( m_pReferringPhysician, 0, wxALL, 5 ); m_pCheckComentarios = new wxCheckBox( m_pPanelCampos, wxID_ANY, _("Comments"), wxDefaultPosition, wxDefaultSize, 0 ); gSizer1->Add( m_pCheckComentarios, 0, wxALL, 5 ); m_pCheckAtributosPrivadosGinkgo = new wxCheckBox( m_pPanelCampos, wxID_ANY, _("Ginkgo CADx tags (Evaluation Maps...)"), wxDefaultPosition, wxDefaultSize, 0 ); gSizer1->Add( m_pCheckAtributosPrivadosGinkgo, 0, wxALL, 5 ); gSizer1->Add( 0, 0, 1, wxEXPAND, 5 ); bSizer10->Add( gSizer1, 1, wxEXPAND, 5 ); m_pPanelCampos->SetSizer( bSizer10 ); m_pPanelCampos->Layout(); bSizer10->Fit( m_pPanelCampos ); bSizer61->Add( m_pPanelCampos, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); m_panel5 = new SubTitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer61->Add( m_panel5, 0, wxEXPAND, 5 ); m_pTagsPanel = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pTagsPanel->SetToolTip( _("Tags (double click to change value)") ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxHORIZONTAL ); m_pTagsList = new wxPropertyGrid(m_pTagsPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxPG_DEFAULT_STYLE|wxPG_HIDE_CATEGORIES|wxPG_HIDE_MARGIN|wxTAB_TRAVERSAL); bSizer4->Add( m_pTagsList, 1, wxEXPAND, 5 ); m_button4 = new wxButton( m_pTagsPanel, wxID_ANY, _("Add new..."), wxDefaultPosition, wxDefaultSize, 0 ); bSizer4->Add( m_button4, 0, wxALIGN_RIGHT|wxLEFT, 5 ); m_pTagsPanel->SetSizer( bSizer4 ); m_pTagsPanel->Layout(); bSizer4->Fit( m_pTagsPanel ); bSizer61->Add( m_pTagsPanel, 1, wxEXPAND, 5 ); this->SetSizer( bSizer61 ); this->Layout(); // Connect Events m_pCheckNombrePaciente->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnCheckNombreApellidos ), NULL, this ); m_pCheckIdPaciente->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnCheckIdPaciente ), NULL, this ); m_pCheckInstituciones->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnCheckInstituciones ), NULL, this ); m_pReferringPhysician->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnCheckPhysician ), NULL, this ); m_pCheckComentarios->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnCheckComentarios ), NULL, this ); m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnAddNewTag ), NULL, this ); } AnonymizePanelBase::~AnonymizePanelBase() { // Disconnect Events m_pCheckNombrePaciente->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnCheckNombreApellidos ), NULL, this ); m_pCheckIdPaciente->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnCheckIdPaciente ), NULL, this ); m_pCheckInstituciones->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnCheckInstituciones ), NULL, this ); m_pReferringPhysician->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnCheckPhysician ), NULL, this ); m_pCheckComentarios->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnCheckComentarios ), NULL, this ); m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AnonymizePanelBase::OnAddNewTag ), NULL, this ); } AnonymizeDialogBase::AnonymizeDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 800,600 ), wxDefaultSize ); wxBoxSizer* bSizer8; bSizer8 = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Anonymize") ); bSizer8->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pBodySizer = new wxBoxSizer( wxVERTICAL ); m_pBody->SetSizer( m_pBodySizer ); m_pBody->Layout(); m_pBodySizer->Fit( m_pBody ); bSizer8->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer10; bSizer10 = new wxBoxSizer( wxHORIZONTAL ); bSizer10->Add( 0, 0, 1, wxEXPAND, 5 ); m_pOverwrite = new wxButton( m_pFooter, wxID_ANY, _("Overwrite"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer10->Add( m_pOverwrite, 0, wxRIGHT, 5 ); m_pCreateNew = new wxButton( m_pFooter, wxID_OK, _("Create new"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer10->Add( m_pCreateNew, 0, wxRIGHT, 5 ); m_pCancel = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); m_pCancel->SetDefault(); bSizer10->Add( m_pCancel, 0, 0, 5 ); m_pFooter->SetSizer( bSizer10 ); m_pFooter->Layout(); bSizer10->Fit( m_pFooter ); bSizer8->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer8 ); this->Layout(); bSizer8->Fit( this ); this->Centre( wxBOTH ); // Connect Events m_pOverwrite->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AnonymizeDialogBase::OnOverwriteClick ), NULL, this ); m_pCreateNew->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AnonymizeDialogBase::OnCreateNewClick ), NULL, this ); } AnonymizeDialogBase::~AnonymizeDialogBase() { // Disconnect Events m_pOverwrite->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AnonymizeDialogBase::OnOverwriteClick ), NULL, this ); m_pCreateNew->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AnonymizeDialogBase::OnCreateNewClick ), NULL, this ); } AnonymizeAddTagDialogBase::AnonymizeAddTagDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 550,280 ), wxDefaultSize ); wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pTitled = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pTitled->SetToolTip( _("Add DICOM tag") ); wxBoxSizer* bSizer8; bSizer8 = new wxBoxSizer( wxVERTICAL ); wxArrayString m_pTagChoices; m_pTag = new wxChoice( m_pTitled, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pTagChoices, 0 ); m_pTag->SetSelection( 0 ); m_pTag->SetMaxSize( wxSize( 470,-1 ) ); bSizer8->Add( m_pTag, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 ); wxFlexGridSizer* fgSizer1; fgSizer1 = new wxFlexGridSizer( 0, 3, 0, 0 ); fgSizer1->AddGrowableCol( 2 ); fgSizer1->SetFlexibleDirection( wxBOTH ); fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText1 = new wxStaticText( m_pTitled, wxID_ANY, _("Group"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText1->Wrap( -1 ); fgSizer1->Add( m_staticText1, 0, wxALL, 5 ); m_staticText2 = new wxStaticText( m_pTitled, wxID_ANY, _("Element"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText2->Wrap( -1 ); fgSizer1->Add( m_staticText2, 0, wxALL, 5 ); m_staticText3 = new wxStaticText( m_pTitled, wxID_ANY, _("Value"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText3->Wrap( -1 ); fgSizer1->Add( m_staticText3, 0, wxALL, 5 ); m_pTextGroup = new wxTextCtrl( m_pTitled, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pTextGroup->SetMaxLength( 4 ); fgSizer1->Add( m_pTextGroup, 0, wxALL, 5 ); m_pTextElement = new wxTextCtrl( m_pTitled, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pTextElement->SetMaxLength( 4 ); fgSizer1->Add( m_pTextElement, 0, wxALL, 5 ); m_pTextValue = new wxTextCtrl( m_pTitled, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pTextValue->SetMaxLength( 0 ); fgSizer1->Add( m_pTextValue, 0, wxALL|wxEXPAND, 5 ); bSizer8->Add( fgSizer1, 1, wxEXPAND, 5 ); m_pTitled->SetSizer( bSizer8 ); m_pTitled->Layout(); bSizer8->Fit( m_pTitled ); bSizer7->Add( m_pTitled, 1, wxEXPAND | wxALL, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer6->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer10; bSizer10 = new wxBoxSizer( wxHORIZONTAL ); bSizer10->Add( 0, 0, 1, wxEXPAND, 5 ); m_button5 = new wxButton( m_pFooter, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer10->Add( m_button5, 0, wxRIGHT, 5 ); m_button6 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer10->Add( m_button6, 0, 0, 5 ); m_pFooter->SetSizer( bSizer10 ); m_pFooter->Layout(); bSizer10->Fit( m_pFooter ); bSizer6->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer6 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_pTag->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( AnonymizeAddTagDialogBase::OnTagSelection ), NULL, this ); m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AnonymizeAddTagDialogBase::OnOkClick ), NULL, this ); } AnonymizeAddTagDialogBase::~AnonymizeAddTagDialogBase() { // Disconnect Events m_pTag->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( AnonymizeAddTagDialogBase::OnTagSelection ), NULL, this ); m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AnonymizeAddTagDialogBase::OnOkClick ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/anonymize/anonymizepanelbase.h000066400000000000000000000120321314736454600252300ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __ANONYMIZEPANELBASE_H__ #define __ANONYMIZEPANELBASE_H__ #include #include #include class BodyPanel; class FooterPanel; class HeaderPanel; class SubTitledPanel; class SubTitledPanelSeparatorV; class TitledPanel; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class AnonymizePanelBase /////////////////////////////////////////////////////////////////////////////// class AnonymizePanelBase : public wxPanel { private: protected: SubTitledPanel* m_pPanelCampos; wxCheckBox* m_pCheckNombrePaciente; wxCheckBox* m_pCheckIdPaciente; wxCheckBox* m_pCheckInstituciones; wxCheckBox* m_pReferringPhysician; wxCheckBox* m_pCheckComentarios; wxCheckBox* m_pCheckAtributosPrivadosGinkgo; SubTitledPanelSeparatorV* m_panel5; SubTitledPanel* m_pTagsPanel; wxPropertyGrid* m_pTagsList; wxButton* m_button4; // Virtual event handlers, overide them in your derived class virtual void OnCheckNombreApellidos( wxCommandEvent& event ) { event.Skip(); } virtual void OnCheckIdPaciente( wxCommandEvent& event ) { event.Skip(); } virtual void OnCheckInstituciones( wxCommandEvent& event ) { event.Skip(); } virtual void OnCheckPhysician( wxCommandEvent& event ) { event.Skip(); } virtual void OnCheckComentarios( wxCommandEvent& event ) { event.Skip(); } virtual void OnAddNewTag( wxCommandEvent& event ) { event.Skip(); } public: AnonymizePanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL ); ~AnonymizePanelBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class AnonymizeDialogBase /////////////////////////////////////////////////////////////////////////////// class AnonymizeDialogBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; FooterPanel* m_pFooter; wxButton* m_pOverwrite; wxButton* m_pCreateNew; wxButton* m_pCancel; // Virtual event handlers, overide them in your derived class virtual void OnOverwriteClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCreateNewClick( wxCommandEvent& event ) { event.Skip(); } public: wxBoxSizer* m_pBodySizer; AnonymizeDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Anonymize"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~AnonymizeDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class AnonymizeAddTagDialogBase /////////////////////////////////////////////////////////////////////////////// class AnonymizeAddTagDialogBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pTitled; wxChoice* m_pTag; wxStaticText* m_staticText1; wxStaticText* m_staticText2; wxStaticText* m_staticText3; wxTextCtrl* m_pTextGroup; wxTextCtrl* m_pTextElement; wxTextCtrl* m_pTextValue; FooterPanel* m_pFooter; wxButton* m_button5; wxButton* m_button6; // Virtual event handlers, overide them in your derived class virtual void OnTagSelection( wxCommandEvent& event ) { event.Skip(); } virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } public: AnonymizeAddTagDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Add DICOM tag"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 550,280 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~AnonymizeAddTagDialogBase(); }; } // namespace GUI } // namespace GNC #endif //__ANONYMIZEPANELBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/configuration/000077500000000000000000000000001314736454600220335ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/configuration/PanelesConfiguracion.fbp000066400000000000000000123457231314736454600266430ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect panelesconfiguracionginkgobase 1000 none 1 PanelesConfiguracion . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 860,300 DialogoConfiguracionBase 860,565 wxDEFAULT_DIALOG_STYLE bSizer3 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Settings wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pImagePanel 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 Settings wxTAB_TRAVERSAL bSizer43 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 243,243,243 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 100 0 1 m_splitter2 1 protected 1 Resizable 0.0 245 -1 1 wxSPLIT_VERTICAL wxSP_3D 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 180,-1 1 m_panel1 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL bSizer5 wxVERTICAL none 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTreeNavegacion 1 protected 1 Resizable 1 wxTR_DEFAULT_STYLE|wxTR_HIDE_ROOT 0 OnCambioNodoNavegacion 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pTitledPanelConfig 1 protected 1 Resizable 1 TitledPanelSinBorder; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer44 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelConfig 1 protected 1 Resizable 1 PanelScrollable; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL m_pSizerPaneles wxVERTICAL protected 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel3 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxHORIZONTAL none 5 0 bSizer22 wxHORIZONTAL none 5 wxRIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Export config... 0 0 1 m_button12 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnExportarClick 5 wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Import config... 0 0 1 m_button13 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnImportarClick 5 wxEXPAND 1 0 protected 0 5 0 bSizer21 wxHORIZONTAL none 5 wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Accept 0 0 1 m_button8 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAceptarClick 5 wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button9 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCancelarClick 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Apply 0 0 1 m_pBAplicar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAplicarClick 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY 450,-1 PanelConfiguracionEstacionBase -1,-1 ; wxTAB_TRAVERSAL bSizer4 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panelPhysician 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Physician wxTAB_TRAVERSAL 2 wxBOTH 1 0 fgSizer2 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Physician's name 0 0 1 m_staticText1 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pMedicoNombre 1 protected 1 Resizable 1 -1,-1 0 wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Physician's Id 0 0 1 m_staticText11 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pMedicoId 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSep11 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panelServicio 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Service wxTAB_TRAVERSAL 2 wxBOTH 1 0 fgSizer22 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxTOP|wxRIGHT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Service's name 0 0 1 m_staticText39 1 protected 1 Resizable 1 0 -1 5 wxTOP|wxLEFT|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pServicioNombre 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Service's Id 0 0 1 m_staticText12 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pServicioId 1 protected 1 Resizable 1 -1,-1 0 wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSep1 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelInstitucion 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Local institution wxTAB_TRAVERSAL 2 wxBOTH 1 0 fgSizer21 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Institution's name 0 0 1 m_staticText13 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pCentroNombre 1 protected 1 Resizable 1 -1,-1 0 wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Institution's Id 0 0 1 m_staticText111 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pCentroId 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSep12 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelInstitucion1 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Dicomized files wxTAB_TRAVERSAL 2 wxBOTH 1 0 fgSizer211 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Charset 0 0 1 m_staticText131 1 protected 1 Resizable 1 0 -1 5 wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND 1 1 1 1 1 1 0 "ISO_IR 192" "ISO_IR 6" "ISO_IR 100" "ISO_IR 101" "ISO_IR 109" "ISO_IR 110" "ISO_IR 126" "ISO_IR 127" "ISO_IR 138" "ISO_IR 144" "ISO_IR 148" 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pComboCharset 1 protected 1 Resizable -1 1 wxCB_READONLY|wxCB_SORT 0 wxFILTER_NONE wxDefaultValidator OnTextoCambiado 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY 450,-1 PanelConfiguracionGeneralBase -1,-1 ; wxTAB_TRAVERSAL bSizer4 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pLanguage 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Language wxTAB_TRAVERSAL bSizer32 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Language 0 0 1 m_staticText34 1 protected 1 Resizable 1 0 -1 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pComboLanguage 1 protected 1 Resizable -1 1 wxCB_DROPDOWN|wxCB_READONLY 0 wxFILTER_NONE wxDefaultValidator OnIdiomaCambiado 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSep3 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pUpdate 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Misc wxTAB_TRAVERSAL bSizer321 wxVERTICAL none 5 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Automatically check for updates 0 0 1 m_pCheckForUpdates 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckForUpdates 5 wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Help us sending anonymous usage data (no patient data will be sent) 0 0 1 m_pCheckAnonUsageStats 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckForUpdates 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSep31 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pProxy 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Proxy settings wxTAB_TRAVERSAL bSizer3211 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Enable http proxy 0 0 1 m_pEnableProxy 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckEnableProxySettings 5 wxLEFT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Proxy settings 0 0 1 m_pProxySettingsButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnProxySettings 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 400,500 ProxySettingsDialogBase 400,570 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Proxy Settings bSizer11 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Proxy Settings wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer85 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel64 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Server settings wxTAB_TRAVERSAL 2 wxBOTH 1 0 fgSizer4 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Host 0 0 1 m_pstaticText1 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pHost 1 protected 1 Resizable 1 150,-1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Port 0 0 1 m_pStaticText22 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pPort 1 protected 1 Resizable 1 150,-1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel641 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 Server settings wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel642 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Authentication wxTAB_TRAVERSAL bSizer141 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Proxy server requires authentication 0 0 1 m_pCheckAuthentication 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckAuthentication 5 wxEXPAND 1 2 wxBOTH 1 0 fgSizer42 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Username 0 0 1 m_pstaticText12 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pUsername 1 protected 1 Resizable 1 150,-1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Password 0 0 1 Port2 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pPassword 1 protected 1 Resizable 1 150,-1 wxTE_PASSWORD 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel6411 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 Server settings wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel6421 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Exceptions wxTAB_TRAVERSAL bSizer1411 wxVERTICAL none 5 wxTOP|wxBOTTOM 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY No proxy for addresses containing 0 0 1 m_staticText115 1 protected 1 Resizable 1 0 -1 5 wxEXPAND|wxTOP|wxBOTTOM 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pExceptions 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxTOP|wxBOTTOM 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Separate addresses with commas. 0 0 1 m_staticText116 1 protected 1 Resizable 1 0 -1 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer31 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Accept 0 0 1 m_button37 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnOkClick 5 wxALL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button38 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCancelClick 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY LocalDatabaseConfigurationPanelBase 500,300 wxTAB_TRAVERSAL OnSize bSizer4 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pPanelDicomDir 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 DICOM Dir wxTAB_TRAVERSAL bSizer30 wxVERTICAL none 5 wxEXPAND|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY DICOM Dir is the local directory where history is stored 0 0 1 m_staticTextExplicacion 1 protected 1 Resizable 1 0 440 5 wxEXPAND 1 3 wxBOTH 1 0 fgSizer9 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY DICOM Dir 0 0 1 m_staticText32 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pDICOMDir 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY ... 0 0 1 m_buttonSeleccionarDICOMDir 1 protected 1 Resizable 1 wxBU_EXACTFIT 0 wxFILTER_NONE wxDefaultValidator OnSeleccionarDirectorio 5 wxEXPAND|wxTOP 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 210,0,0 1 ,90,92,-1,70,0 0 0 wxID_ANY Warning, to update the directory, you have to close every opened series 0 0 1 m_pstaticTextAdvertencia 1 protected 1 Resizable 1 0 440 5 wxEXPAND|wxTOP 0 wxID_ANY Auto-cleaning sbSizer7 wxVERTICAL none 5 wxEXPAND 1 2 wxBOTH 0 0 fgSizer20 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Delete studies with acquisition date older than: 0 0 1 m_pCheckDeleteOlder 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckOlderStudies 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 0 1 0 0 wxID_ANY 0 0 1 m_pChoiceDeleteOlder 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator OnOptionModified 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Delete older studies when hd free space is less than: 0 0 1 m_pCheckHDFreeSpace 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckHDSpace 5 wxEXPAND 1 bSizer106 wxHORIZONTAL none 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 0 1 0 0 wxID_ANY 10240 2147483647 0 10 0 1 m_pSpinHDSpace 1 protected 1 Resizable 1 wxSP_ARROW_KEYS 0 OnSpinCtrl OnOptionModified 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY MB 0 0 1 m_staticText65 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Delete studies when DICOM Dir size bigger than: 0 0 1 m_pCheckDicomDirSize 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckDicomDirSize 5 wxEXPAND 1 bSizer1061 wxHORIZONTAL none 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 0 1 0 0 wxID_ANY 10240 2147483647 0 10 0 1 m_pSpinDicomDirSize 1 protected 1 Resizable 1 wxSP_ARROW_KEYS 0 OnSpinCtrl OnOptionModified 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY MB 0 0 1 m_staticText651 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,90,7,70,0 0 0 wxID_ANY This feature only affects to studies COPIED to DICOM Dir and not in use 0 0 1 m_staticText68 1 protected 1 Resizable 1 0 -1 5 wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Reset to default 0 0 1 m_button66 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnResetToDefault 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY PanelConfiguracionPACSBase -1,-1 ; wxTAB_TRAVERSAL OnSize bSizer6 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPACSLocal 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Local PACS wxTAB_TRAVERSAL bSizer36 wxVERTICAL none 8 wxEXPAND|wxBOTTOM 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY You must configure the local AET, which is used to communicate with the PACS server. The specified port must be opened in the firewall, as it is essential for transfers. 0 0 450,-1 1 m_staticTextExplicacion 1 protected 1 Resizable 1 0 440 5 wxEXPAND 0 2 wxBOTH 1 0 fgSizer2 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Local AET 0 0 1 m_staticText1 1 protected 1 Resizable 1 0 -1 5 wxEXPAND 1 bSizer31 wxHORIZONTAL none 5 wxEXPAND|wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pAETLocal 1 protected 1 Resizable 1 300,-1 0 wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxALL|wxALIGN_CENTER_VERTICAL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pAETReal 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHelpBitmap 1 protected 1 Resizable 1 0 For large-scale implementation in a homogenous environment, you can specify the following wildcards in the local AET: %IP IP Address %IP<n> n-th Octet (1~4) %HOSTNAME Host Name" OnHelpClick 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Port 0 0 1 m_staticText11 1 protected 1 Resizable 1 0 -1 5 wxEXPAND|wxTOP|wxBOTTOM|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pPuertoLocal 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxEXPAND 1 0 protected 0 5 wxALIGN_RIGHT|wxTOP 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Advanced settings... 0 0 1 m_pBAdvanced 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAdvancedLocal 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSep 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPACSServers 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 DICOM Nodes wxTAB_TRAVERSAL bSizer25 wxHORIZONTAL none 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 wxDataViewListCtrl 1 m_pListPacs = new wxDataViewListCtrl(m_pPACSServers, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); 1 wxDataViewListCtrl* m_pListPacs; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/dataview.h> 0 0 1 m_pListPacs 1 protected 1 Resizable 1 0 5 wxEXPAND 0 bSizer26 wxVERTICAL none 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY New ... 0 0 1 m_button3 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnNuevoClick 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Edit ... 0 0 1 m_pEditButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEditarClick 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Delete 0 0 1 m_pDelButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEliminarClick 5 wxEXPAND 1 0 protected 0 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Set Default 0 0 1 m_pDefaultButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnSetDefaultClick 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY 450,550 DialogoServidorPACSBase 450,550 wxDEFAULT_DIALOG_STYLE DICOM Node bSizer11 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 DICOM Node wxTAB_TRAVERSAL 5 wxEXPAND|wxTOP 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_notebook1 1 protected 1 Resizable 1 0 DICOM Node 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel6 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer85 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel64 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Settings wxTAB_TRAVERSAL 2 wxBOTH 1 0 fgSizer4 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Id 0 0 1 m_pstaticText1 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pId 1 protected 1 Resizable 1 150,-1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY AET 0 0 1 m_pstaticText2 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pAET 1 protected 1 Resizable 1 150,-1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Host 0 0 1 m_pstaticText3 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pHost 1 protected 1 Resizable 1 150,-1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Port 0 0 1 m_pstaticText4 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pPuerto 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY PDU (KB) 0 0 1 m_staticText33 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 16384 16384 0 4096 0 1 m_pPDU 1 protected 1 Resizable 1 wxSP_ARROW_KEYS 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Retrieve method 0 0 1 m_staticText48 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 "Move" "Get" "WADO" 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pRetrieveMethod 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator OnRetrieveMethodChoice 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY WADO URL 0 0 1 m_staticText59 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 0 1 0 0 wxID_ANY 0 0 0 1 m_pWadoURL 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Retrieve mode 0 0 1 m_staticText60 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 "Series" "Studies" 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pRetrieveMode 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Reuse connection 0 0 1 m_staticText57 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pReuseConnection 1 protected 1 Resizable 1 0 Reuse connections when is needed to make more than one queries wxFILTER_NONE wxDefaultValidator Worklist 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pWorkListPanel 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer104 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel83 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Worklists wxTAB_TRAVERSAL bSizer106 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Select how do you want to handle MPPS items 0 0 1 m_staticText611 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY DICOM MPPS 0 0 1 m_pCheckDICOMMPPS 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY HL7 messages 0 0 1 m_pCheckHL7 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnChecWL 5 wxEXPAND | wxALL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelHL7 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL wxID_ANY HL7 m_pSizerHL7 wxVERTICAL protected 5 wxEXPAND 1 2 wxBOTH 1 0 fgSizer18 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Abort message 0 0 1 m_pCheckAbort 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnChecWL 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTextAbort 1 protected 1 Resizable 1 wxTE_MULTILINE 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Completed message 0 0 1 m_pCheckCompleted 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnChecWL 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTextCompleted 1 protected 1 Resizable 1 wxTE_MULTILINE 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY In progress message 0 0 1 m_pCheckInProgress 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnChecWL 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTextProgress 1 protected 1 Resizable 1 wxTE_MULTILINE 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 protected 0 5 wxALL|wxALIGN_RIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Default values 0 0 1 m_button62 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnMessageDefaultValues Advanced 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelSeguridad 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer81 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSSLTLS 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 SSL/TLS wxTAB_TRAVERSAL bSizer87 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Verify server credentials 0 0 1 m_pVerifyServer 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Use SSL/TLS 0 0 1 m_pUseSSL 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND|wxTOP 0 wxID_ANY Certificate sbSizer6 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Certificate to use in this connection 0 0 1 m_staticText55 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Advanced Configuration ... 0 0 1 m_pBCert 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAdvancedConfiguration 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panelSep 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panelUserPass 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 User/Password wxTAB_TRAVERSAL 2 wxBOTH 1 0 fgSizer21 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY User 0 0 1 m_staticText61 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pUser 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Password 0 0 1 m_staticText62 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pPassword 1 protected 1 Resizable 1 wxTE_PASSWORD 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panelSep1 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelDefaultCharset 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Default charset wxTAB_TRAVERSAL 2 wxBOTH 1 0 fgSizer211 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Default charset 0 0 1 m_staticText131 1 protected 1 Resizable 1 0 -1 5 wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND 1 1 1 1 1 1 0 "ISO_IR 192" "ISO_IR 6" "ISO_IR 100" "ISO_IR 101" "ISO_IR 109" "ISO_IR 110" "ISO_IR 126" "ISO_IR 127" "ISO_IR 138" "ISO_IR 144" "ISO_IR 148" 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pComboCharset 1 protected 1 Resizable -1 1 wxCB_READONLY|wxCB_SORT 0 wxFILTER_NONE wxDefaultValidator ISO_IR 100 OnTextoCambiado 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer31 wxHORIZONTAL none 5 wxALIGN_RIGHT|wxALL|wxBOTTOM|wxLEFT|wxTOP 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Test connection 0 0 1 m_button20 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnProbarClick 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_OK Accept 0 0 1 m_button37 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnOkClick 5 wxALL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button38 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCancelClick 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 346,300 DialogoLocalPACSBase 346,300 wxDEFAULT_DIALOG_STYLE Advanced Settings bSizer71 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel51 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer80 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel67 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Security wxTAB_TRAVERSAL bSizer81 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Verify client credentials 0 0 1 m_pVerifyServer 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Use SSL/TLS 0 0 1 m_pUseTLS 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND|wxTOP 0 wxID_ANY Local AET certificate sbSizer5 wxVERTICAL none 5 wxEXPAND 1 2 wxBOTH 0 0 fgSizer36 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Certificate used by Ginkgo CADx 0 0 1 m_staticText55 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Import ... 0 0 1 m_pBCert 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEditCertificate 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer19 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_OK Accept 0 0 1 m_button8 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAceptarClick 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button9 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY 450,-1 PanelConfiguracionHCEBase 556,438 ; wxTAB_TRAVERSAL OnSize bSizer6 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHCE 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Gingo CADx Application ID used to fill MSH.3 field wxTAB_TRAVERSAL bSizer38 wxVERTICAL none 5 wxEXPAND 1 2 wxBOTH 1 0 fgSizer21 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Receiver organization Id 0 0 1 m_pstIdOrganizacionReceptora 1 protected 1 Resizable 1 0 Unique identifier of the organization receiving the message. -1 5 wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pIdOrganizacionReceptora 1 protected 1 Resizable 1 -1,-1 0 Unique identifier of the organization receiving the message. wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Petitioner System Id 0 0 1 m_pstIdSistemaPeticionario 1 protected 1 Resizable 1 0 Unique identifier of the requesting system. -1 5 wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pIdSistemaPeticionario 1 protected 1 Resizable 1 0 Unique identifier of the requesting system. wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Filler Application Id 0 0 1 m_pstIdAplicacionRellenadora 1 protected 1 Resizable 1 0 Unique identifier of the filler application (SIID/Ginkgo CADx). -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pIdAplicacionRellenadora 1 protected 1 Resizable 1 0 Unique identifier of the filler application (SIID/Ginkgo). wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Ginkgo CADx Application Id 0 0 1 m_pstIdAplicacionPACS 1 protected 1 Resizable 1 0 Unique identifier of the Picture Archiving and Communication System Application (SIID/PACS). -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pIdGinkgoAplication 1 protected 1 Resizable 1 0 Unique identifier of the Picture Archiving and Communication System Application (SIID/PACS). wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSep 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pIntegrationEngine 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Integration engine wxTAB_TRAVERSAL bSizer24 wxVERTICAL none 5 wxEXPAND 1 2 wxBOTH 1 0 fgSizer20 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Hostname / Port 0 0 1 m_staticText121 1 protected 1 Resizable 1 0 Hostname (IP or DNS) integration engine -1 5 wxEXPAND 1 bSizer74 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL 3 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pHostnameMI 1 protected 1 Resizable 1 -1,-1 0 wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY / 0 0 1 m_staticText60 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pPuertoMI 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnTextoCambiado 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Protocol 0 0 1 m_staticText38 1 protected 1 Resizable 1 0 Integration Engine's Transport Layer Protocol -1 5 wxEXPAND|wxTOP|wxBOTTOM|wxLEFT 1 bSizer75 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM 0 1 1 1 1 1 0 "MLLP" 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pProtocolo 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 0 protected 30 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Format 0 0 1 m_staticText39 1 protected 1 Resizable 1 0 Message's format -1 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 "ER7" 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFormato 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND|wxALIGN_CENTER_VERTICAL 1 0 protected 0 5 wxTOP|wxLEFT|wxALIGN_RIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Test engine 0 0 1 m_button15 1 protected 1 Resizable 1 0 Test Integration Engine connectivity wxFILTER_NONE wxDefaultValidator OnTestClick 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY 450,-1 PanelConfiguracionExtensionesBase -1,-1 ; wxTAB_TRAVERSAL OnEraseBackground bSizer6 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pExtensions 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Extensions wxTAB_TRAVERSAL OnEraseBackground bSizer44 wxVERTICAL none 5 wxEXPAND 1 bSizer85 wxVERTICAL none 5 wxEXPAND|wxTOP|wxBOTTOM 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pScrollPanelExtensions 1 protected 1 Resizable 5 5 1 0 wxHSCROLL|wxVSCROLL bSizer84 wxVERTICAL none 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY -1,-1 ExtensionPanelBase -1,-1 GinkgoBoxPanel; wx/ginkgostyle/ginkgostyle.h wxTAB_TRAVERSAL bSizer80 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 50,50 1 m_pThumbnail 1 protected 1 Resizable 1 0 5 wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT 1 bSizer81 wxVERTICAL none 5 wxTOP|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 63,63,63 1 ,90,92,12,70,0 0 0 wxID_ANY Ginkgo Extension Title 0 0 1 m_pLabelTitle 1 protected 1 Resizable 1 0 -1 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 450,550 DialogoEditarCertificadoBase 450,550 wxDEFAULT_DIALOG_STYLE Certificate bSizer83 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer86 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelDefault 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Edit public key wxTAB_TRAVERSAL bSizer872 wxVERTICAL none 5 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Use default certificate (certificate configured in local AET settings) 0 0 1 m_pCheckDefault 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckDefault 5 wxEXPAND | wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSepDefault 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelPublic 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Public key wxTAB_TRAVERSAL bSizer87 wxVERTICAL none 5 wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Public key in PEM format 0 0 1 m_pLabel 1 protected 1 Resizable 1 0 -1 5 wxEXPAND|wxTOP|wxBOTTOM 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTextoCertificado 1 protected 1 Resizable 1 wxTE_MULTILINE 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_RIGHT|wxTOP 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Load ... 0 0 1 m_button62 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnLoadPublicClick 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel60 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelPrivate 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Private key wxTAB_TRAVERSAL bSizer871 wxVERTICAL none 5 wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Private key in PEM format 0 0 1 m_pLabel11 1 protected 1 Resizable 1 0 -1 5 wxEXPAND|wxTOP 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTextoPrivateKey 1 protected 1 Resizable 1 wxTE_MULTILINE 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_RIGHT|wxTOP 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Load ... 0 0 1 m_button621 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnLoadPrivateClick 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer19 wxHORIZONTAL none 5 wxRIGHT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Reset to default 0 0 1 m_button48 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnResetToDefault 5 wxEXPAND 1 0 protected 0 5 wxRIGHT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_OK Accept 0 0 1 m_button8 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAceptarClick 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button9 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 770,540 ProfileDialogBase 770,540 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Edit profile bSizer53 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBasePanel 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer44 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTitledPanel 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Profile wxTAB_TRAVERSAL bSizer43 wxVERTICAL none 5 wxEXPAND|wxBOTTOM 0 2 wxBOTH 1 0 fgSizer14 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Profile name 0 0 1 m_staticText47 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pName 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 wxPropertyGrid 1 m_pGridPermisos = new wxPropertyGrid( m_pTitledPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxPG_AUTO_SORT | wxPG_SPLITTER_AUTO_CENTER| wxPG_DEFAULT_STYLE ); 1 wxPropertyGrid* m_pGridPermisos; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/propgrid/propgrid.h> 0 0 1 m_pGridPermisos 1 protected 1 Resizable 1 0 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooterPanel 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer54 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Accept 0 0 1 m_button28 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnOkClick 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button29 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCancelClick 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY 450,-1 PanelConfiguracionPermisosBase 501,160 ; wxTAB_TRAVERSAL OnSize bSizer6 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBasePanel 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Profiles wxTAB_TRAVERSAL bSizer25 wxHORIZONTAL none 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 wxDataViewListCtrl 1 m_pListProfiles = new wxDataViewListCtrl(m_pBasePanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); 1 wxDataViewListCtrl* m_pListProfiles; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/dataview.h> 0 0 1 m_pListProfiles 1 protected 1 Resizable 1 0 5 wxEXPAND 0 bSizer26 wxVERTICAL none 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY New ... 0 0 1 m_button3 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnNuevoClick 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Edit ... 0 0 1 m_pBEdit 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEditarClick 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Delete 0 0 1 m_pBDelete 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEliminarClick 5 wxEXPAND|wxRIGHT 1 0 protected 0 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Set active 0 0 1 m_pBActive 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnSetActive 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY 450,-1 PanelConfiguracionUbicacionesBase -1,-1 ; wxTAB_TRAVERSAL OnSize bSizer6 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pUbicaciones 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Locations wxTAB_TRAVERSAL bSizer63 wxVERTICAL none 5 wxEXPAND 0 bSizer76 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Locations are predefined paths to set locations from well known paths (ex: remote shared disk) 0 0 1 m_staticTextExplicacion 1 protected 1 Resizable 1 wxST_NO_AUTORESIZE 0 430 5 wxEXPAND 1 m_pMainSizer wxHORIZONTAL none 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 wxDataViewListCtrl 1 m_pListUbicaciones = new wxDataViewListCtrl(m_pUbicaciones, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); 1 wxDataViewListCtrl* m_pListUbicaciones; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/dataview.h> 0 0 1 m_pListUbicaciones 1 protected 1 Resizable 1 0 5 wxEXPAND 0 m_pSizerBotonera wxVERTICAL none 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY New ... 0 0 1 m_pBotonNuevo 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnNuevoClick 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Edit ... 0 0 1 m_pBotonEdit 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEditarClick 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Delete 0 0 1 m_pBotonDelete 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEliminarClick 5 wxEXPAND|wxRIGHT 1 0 protected 0 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY 450,450 DialogoAddLocationBase 450,450 wxDEFAULT_DIALOG_STYLE Add/Edit Location m_pMainSizer wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL m_pBodySizer wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanel 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Configure location wxTAB_TRAVERSAL m_pPanelSizer wxVERTICAL none 5 wxEXPAND|wxBOTTOM 0 2 wxBOTH 1 0 m_pTableSizer wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Title 0 0 1 m_pSTTitle 1 protected 1 Resizable 1 0 -1 5 wxEXPAND|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 8 0 1 m_pTETitle 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Location 0 0 1 m_pSTLocation 1 protected 1 Resizable 1 0 -1 5 wxTOP|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL 0 m_pDirSizer wxHORIZONTAL none 5 wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTELocation 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY ... 0 0 1 m_pOpenDir 1 protected 1 Resizable 1 wxBU_EXACTFIT 0 wxFILTER_NONE wxDefaultValidator OnOpenDirClick 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Description 0 0 1 m_pSTDesc 1 protected 1 Resizable 1 0 -1 5 wxEXPAND|wxTOP|wxLEFT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 100 0 1 m_pTEDesc 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Monitorize 0 0 1 m_pMonitorize 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Clean directory after dicomization 0 0 1 m_pCleanAfter 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Clean directory before dicomization 0 0 1 m_pCleanBefore 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL m_pFooterSizer wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Accept 0 0 1 m_pAccept 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAceptarClick 5 wxRIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_pCancel 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY PanelConfiguracionSeguridadBase 500,300 wxTAB_TRAVERSAL bSizer48 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSecurity 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Security wxTAB_TRAVERSAL OnEraseBackground bSizer44 wxVERTICAL none 5 wxEXPAND 1 bSizer57 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Security type 0 0 1 m_staticText47 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSecType 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator OnSecTypeChoice 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSep 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelUsuarios 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Users wxTAB_TRAVERSAL OnEraseBackground bSizer25 wxHORIZONTAL none 5 wxEXPAND|wxRIGHT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pListaUsuarios 1 protected 1 Resizable 1 wxLC_SINGLE_SEL|wxLC_SMALL_ICON 0 wxFILTER_NONE wxDefaultValidator OnListaUsuariosItemDeSelected OnListaUsuariosItemSelected 5 wxEXPAND 0 bSizer26 wxVERTICAL none 5 wxTOP|wxBOTTOM|wxLEFT|wxEXPAND 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY New ... 0 0 1 m_button3 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnNuevoClick 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Change Password ... 0 0 1 m_pBCambiarPassword 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCambiarPasswordClick 5 wxTOP|wxBOTTOM|wxLEFT|wxEXPAND 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Delete 0 0 1 m_pBDelete 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEliminarClick 5 wxEXPAND|wxRIGHT 1 0 protected 0 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelPassword 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Set main password wxTAB_TRAVERSAL OnEraseBackground bSizer251 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Password is not setted 0 0 1 m_pLabelPassword 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Set Password 0 0 1 m_pButtonSetPassword 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnSetMainPassword 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 423,292 UserDialogBase 423,292 wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSTAY_ON_TOP Edit User bSizer67 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Edit User wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer68 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFormPanel 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Edit User wxTAB_TRAVERSAL bSizer75 wxVERTICAL none 5 wxEXPAND 1 0 protected 0 5 wxEXPAND 0 2 wxBOTH 1 0 fgSizer18 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY User Name 0 0 1 m_pLabelUser 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTCUsuario 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Password 0 0 1 m_pstat2 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTCPassword0 1 protected 1 Resizable 1 wxTE_PASSWORD 0 wxFILTER_NONE wxDefaultValidator 5 wxTOP|wxRIGHT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Confirm Password 0 0 1 m_pstat21 1 protected 1 Resizable 1 0 -1 5 wxTOP|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTCPassword1 1 protected 1 Resizable 1 wxTE_PASSWORD 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 protected 0 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel54 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer69 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Accept 0 0 1 m_button42 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnOkClick 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button41 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY PanelConfigurationAnonymizationBase 500,300 wxTAB_TRAVERSAL bSizer77 wxVERTICAL none 5 wxEXPAND | wxALL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pAnonimization 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Properties wxTAB_TRAVERSAL bSizer78 wxVERTICAL none 5 wxEXPAND 0 bSizer79 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Default value 0 0 1 m_staticText52 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTextDefaultValue 1 protected 1 Resizable 1 200,-1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 350,250 AddWLDialogBase wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Add window/level bSizer15 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelMessage 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Add DICOM tag wxTAB_TRAVERSAL 2 wxBOTH 1 0 fgSizer17 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Label 0 0 1 m_staticText79 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pLabel 1 public 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Window 0 0 1 m_staticText59 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pWindow 1 public 1 Resizable 1 0 wxString wxFILTER_NUMERIC wxTextValidator windowValidator 5 wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Level 0 0 1 m_staticText60 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pLevel 1 public 1 Resizable 1 0 wxString wxFILTER_NUMERIC wxTextValidator levelValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer16 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Ok 0 0 1 m_pOkButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button5 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 800,500 EditCornerAnnotationsDialogBase 850,650 wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Edit corner annotations bSizer15 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pMainPanel 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Edit corner annotations wxTAB_TRAVERSAL bSizer130 wxVERTICAL none 5 wxEXPAND 0 bSizer131 wxHORIZONTAL none 5 wxEXPAND 1 bSizer136 wxVERTICAL none 5 wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:DefaultValue:Format} where GGGG is the tag's group in hexadecimal and EEEE is the tag's element. DefaultValue and Format are optional values, Format admit two special formats (date and time). 0 0 1 m_staticText84 1 protected 1 Resizable 1 0 600 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY You can also use special tags listed in the tooltip over the question button. 0 0 1 m_staticText85 1 protected 1 Resizable 1 0 600 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHelpBitmap 1 protected 1 Resizable 1 0 ${NEWLINE} ${GINKGO.VERSION.FULLTEXT} ${GINKGO.ARCH} ${VOLUME.IDX} ${SLICE.WIDTH} ${SLICE.HEIGHT} ${SLICE.WL.FULLTEXT} ${SLICE.IDX} ${SLICE.COUNT} ${SLICE.IDX.FULLTEXT} ${SLICE.LATERALITY} ${SLICE.VOXEL.SIZE} ${SLICE.THICKNESS} ${SLICE.THICKNESS.FULLTEXT} ${SLICE.LOCATION} ${SLICE.LOCATION.FULLTEXT} ${VIEW.SCALE} 5 wxEXPAND 1 wxID_ANY sbSizer10 wxVERTICAL none 5 wxEXPAND 1 2 0 m_pCornerAnnotationsSizer protected 0 0 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer16 wxHORIZONTAL none 5 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Reset 0 0 1 m_button70 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnSetDefaultValues 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Ok 0 0 1 m_pOkButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button5 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY ModalityPanelBase -1,-1 wxTAB_TRAVERSAL bSizer125 wxVERTICAL none 5 wxEXPAND|wxBOTTOM 0 wxID_ANY Window/level sbSizer12 wxVERTICAL none 5 wxEXPAND 1 bSizer129 wxHORIZONTAL none 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 wxDataViewListCtrl 1 m_pListWL = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); 1 wxDataViewListCtrl* m_pListWL; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/dataview.h> 0 0 -1,150 1 m_pListWL 1 protected 1 Resizable 1 -1,150 0 5 wxEXPAND 0 bSizer126 wxHORIZONTAL none 5 wxEXPAND 1 bSizer127 wxVERTICAL none 5 wxTOP|wxBOTTOM|wxEXPAND 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Add 0 0 1 m_button63 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAddWL 5 wxTOP|wxBOTTOM|wxEXPAND 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Edit 0 0 1 m_button64 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEditWL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Delete 0 0 1 m_button65 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnDeleteWL 5 wxEXPAND 0 2 wxBOTH 0 fgSizer20 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Default Window/Level 0 0 1 m_staticText68 1 protected 1 Resizable 1 0 -1 5 wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pDefaultWindowLevel 1 public 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator OnChoiceChanged 5 wxEXPAND 0 wxID_ANY Corner annotations sbSizer9 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Setup corner annotations 0 0 1 m_staticText71 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Setup... 0 0 1 m_button67 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnSetupCornerAnnotations 5 wxEXPAND 0 wxID_ANY Other settings sbSizer13 wxVERTICAL none 5 wxEXPAND 1 2 wxBOTH 0 fgSizer21 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Interpolate pixel data 0 0 1 m_staticText69 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pChoiceInterpolate 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator OnChoiceChanged 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 500,600 EditHangingProtocolDialogBase 744,641 wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER Hanging protocol bSizer11 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Hanging protocol wxTAB_TRAVERSAL 5 wxEXPAND|wxTOP 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pMainNoteBook 1 protected 1 Resizable 1 wxNB_FLAT 0 General 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pGeneralPanel 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL bSizer109 wxVERTICAL none 5 wxEXPAND|wxTOP 0 2 wxBOTH 1 0 fgSizer25 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Name 0 0 1 m_staticText87 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_textName 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Opening mode 0 0 1 m_staticText91 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 0 1 0 0 wxID_ANY 0 0 0 1 m_textOpeningMode 1 protected 1 Resizable 1 wxTE_READONLY 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND|wxTOP|wxRIGHT|wxLEFT 0 wxID_ANY Study opening criteria -1,250 m_pSizerStudyCriteria wxVERTICAL protected Workspace 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pWorkspacePanel 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL bSizer1102 wxVERTICAL none 5 wxEXPAND|wxALL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pNoteBookWindows 1 protected 1 Resizable 1 wxAUI_NB_CLOSE_ON_ACTIVE_TAB|wxAUI_NB_DEFAULT_STYLE -1 0 OnPageChanging OnPageClose + 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pAdddPanel 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer31 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxALL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_OK Accept 0 0 1 m_button37 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnOkClick 5 wxALL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button38 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCancelClick 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY HangingProtocolConfigurationPanelBase 500,300 wxTAB_TRAVERSAL bSizer6 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pProtocols 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Hanging protocols wxTAB_TRAVERSAL bSizer25 wxHORIZONTAL none 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 wxDataViewListCtrl 1 m_pListHanging = new wxDataViewListCtrl(m_pProtocols, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); 1 wxDataViewListCtrl* m_pListHanging; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/dataview.h> 0 0 1 m_pListHanging 1 protected 1 Resizable 1 0 5 wxEXPAND 0 bSizer26 wxVERTICAL none 5 wxTOP|wxBOTTOM|wxLEFT|wxEXPAND 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY New ... 0 0 1 m_button3 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnNuevoClick 5 wxTOP|wxBOTTOM|wxLEFT|wxEXPAND 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Edit ... 0 0 1 m_pBEdit 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEditarClick 5 wxTOP|wxBOTTOM|wxLEFT|wxEXPAND 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Delete 0 0 1 m_pBDelete 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEliminarClick 5 wxEXPAND|wxRIGHT 1 0 protected 0 5 wxTOP|wxBOTTOM|wxLEFT|wxEXPAND 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Enable/Disable 0 0 1 m_pBActive 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnSetActive 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY DefaultModalitySettingsConfigurationPanelBase 500,300 wxTAB_TRAVERSAL bSizer120 wxVERTICAL none 5 wxEXPAND|wxTOP 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 100 0 1 m_splitter4 1 protected 1 Resizable 0.0 150 -1 1 wxSPLIT_VERTICAL wxSP_3D 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel90 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL bSizer121 wxVERTICAL none 0 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pWLList 1 protected 1 Resizable 1 wxTR_DEFAULT_STYLE|wxTR_HIDE_ROOT 0 OnTreeSelChanged 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTitledPanelModalities 1 protected 1 Resizable 1 SubTitledPanelSinBorder; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer122 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pModalityPanel 1 protected 1 Resizable 1 PanelScrollable; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL m_pSizerModalities wxVERTICAL protected 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY CornerAnnotationPanel -1,-1 wxTAB_TRAVERSAL bSizer126 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Top left corner annotations 0 0 1 m_pLabel 1 public 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pLine1 1 public 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pLine2 1 public 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pLine3 1 public 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pLine4 1 public 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY StudyWindowBase 500,300 wxTAB_TRAVERSAL bSizer81 wxVERTICAL none 5 wxEXPAND|wxTOP|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pConfigWindow 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Setup window wxTAB_TRAVERSAL bSizer901 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Push configuration button and place window where you want 0 0 1 m_staticText72 1 protected 1 Resizable 1 0 -1 5 wxEXPAND 1 0 protected 0 5 wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Set default 0 0 1 m_button62 1 protected 1 Resizable 1 0 Open in main window wxFILTER_NONE wxDefaultValidator OnSetDefaultWindowPosition 5 wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Setup position... 0 0 1 m_pSetupPositionButton 1 protected 1 Resizable 1 0 Setup undocked window position wxFILTER_NONE wxDefaultValidator OnSetupWindowPositionClick 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel64111 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 Settings wxTAB_TRAVERSAL 5 wxEXPAND|wxRIGHT|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,220 1 m_pLayoutPreview 1 protected 1 Resizable 1 -1,220 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Layout wxTAB_TRAVERSAL bSizer113 wxHORIZONTAL none 5 wxEXPAND 1 wxID_ANY Current layout sbSizer9 wxHORIZONTAL none 5 wxEXPAND 1 bSizer119 wxVERTICAL none 5 wxEXPAND 0 bsizer91 wxVERTICAL none 5 wxEXPAND|wxBOTTOM 1 m_pSizerLayoutTools wxHORIZONTAL protected 5 wxEXPAND 1 0 protected 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Rows 0 0 1 m_staticText56 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 1 4 0 1 0 1 m_pSpinRows 1 protected 1 Resizable 1 50,-1 wxSP_ARROW_KEYS 0 OnSpinRows 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Columns 0 0 1 m_staticText57 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 1 4 0 1 0 1 m_pSpinCols 1 protected 1 Resizable 1 50,-1 wxSP_ARROW_KEYS 0 OnSpinCols 5 wxEXPAND 1 m_pPreviewSizer wxVERTICAL protected 5 wxEXPAND|wxLEFT 1 m_pSizerSeriesCriteria wxVERTICAL protected 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Series criteria 0 0 1 m_staticText65 1 protected 1 Resizable 1 0 -1 5 wxEXPAND|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel6411 1 protected 1 Resizable 1 SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 Settings wxTAB_TRAVERSAL 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY EditCriteriaPanelBase 500,200 wxTAB_TRAVERSAL m_pGeneralSizer wxHORIZONTAL public 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 wxDataViewListCtrl 1 m_pListCriteria= new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); 1 wxDataViewListCtrl* m_pListCriteria; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/dataview.h> 0 0 1 m_pListCriteria 1 protected 1 Resizable 1 0 5 wxEXPAND|wxRIGHT 0 m_pButtonSizer wxVERTICAL public 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Add 0 0 1 m_button3 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAddClick 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Delete 0 0 1 m_pBDelete 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnDeleteClick 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 525,180 SelectOpeningModeBase -1,-1 wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Select opening mode bSizer15 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelMessage 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Select opening mode wxTAB_TRAVERSAL bSizer4 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Select opening mode 0 0 1 m_pLabel 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pOpeningMode 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer16 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Ok 0 0 1 m_pOkButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button5 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 400,220 AddTagDialogBase wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Add tag bSizer15 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelMessage 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Add DICOM tag wxTAB_TRAVERSAL 2 wxBOTH 0 fgSizer17 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxTOP|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Tag 0 0 1 m_staticText59 1 protected 1 Resizable 1 0 -1 5 wxTOP|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Value 0 0 1 m_staticText60 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pChoiceTag 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTextValue 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer16 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Ok 0 0 1 m_pOkButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button5 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 600,400 SetupWindowPositionBase 600,400 wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER Setup window position bSizer113 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 255,255,255 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel97 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL bSizer114 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Setup position and size of the window where you want to open the study 0 0 1 m_staticText73 1 protected 1 Resizable 1 0 -1 5 wxEXPAND 0 bSizer115 wxHORIZONTAL none 5 wxALL 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Save 0 0 1 m_button64 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CLOSE Cancel 0 0 1 m_button65 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY SmartRetrieveConfigurationPanelBase 500,300 wxTAB_TRAVERSAL bSizer131 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Enable background queries 0 0 1 m_pCheckEnable 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCheckEnableBackgroundQueries 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelQueries 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Stored queries wxTAB_TRAVERSAL bSizer134 wxVERTICAL none 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 wxDataViewListCtrl 1 m_pListQueries = new wxDataViewListCtrl(m_pPanelQueries, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); 1 wxDataViewListCtrl* m_pListQueries; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/dataview.h> 0 0 1 m_pListQueries 1 protected 1 Resizable 1 0 ginkgocadx-3.8.7/cadxcore/main/gui/configuration/defaultmodalitysettingsconfigurationpanel.cpp000066400000000000000000000632141314736454600333250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include
    #include
    #include #include
    #include #include #include #include #include #include #include #include #include #include #include #include #include "defaultmodalitysettingsconfigurationpanel.h" #include #define COL_LABEL_IDX 0 #define COL_LABEL_WIDTH 100 #define COL_WINDOW_IDX 1 #define COL_WINDOW_WIDTH 80 #define COL_LEVEL_IDX 2 #define COL_LEVEL_WIDTH 80 namespace GNC { namespace GUI { class ModalityPanel : public ModalityPanelBase { private: wxObjectDataPtr m_pModel; typedef std::map TModalityMap; public: class EditCornerAnnotationsDialog: public EditCornerAnnotationsDialogBase { public: EditCornerAnnotationsDialog(ModalityPanel* pParent, const GNC::GCS::Ptr& pAnnotationSettings): EditCornerAnnotationsDialogBase(pParent), Parent(pParent) { m_pHelpBitmap->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoHelp()); SetDefaultValue(pAnnotationSettings, true); m_pMainPanel->Layout(); m_pBody->Layout(); Layout(); } virtual void OnSetDefaultValues(wxCommandEvent& /*evt*/) { GNC::GCS::Ptr pAnnotationSettings(new GNC::GCS::AnnotationSettings()); SetDefaultValue(pAnnotationSettings, false); } virtual void SetDefaultValue( const GNC::GCS::Ptr& pAnnotationSettings, bool createPanels) { if (pAnnotationSettings.IsValid()) { for (int i = 0; i < GNC::GCS::AnnotationSettings::TP_NumPos; ++i) { //create panel if (createPanels) { m_panelVector.push_back(new CornerAnnotationPanel(m_pMainPanel)); m_pCornerAnnotationsSizer->Add(m_panelVector[i], 1,wxALL|wxEXPAND,5); } //set label switch (i) { case GNC::GCS::AnnotationSettings::TP_TopRight: m_panelVector[i]->m_pLabel->SetLabel(_("Top right corner annotation")); break; case GNC::GCS::AnnotationSettings::TP_TopLeft: m_panelVector[i]->m_pLabel->SetLabel(_("Top left corner annotation")); break; case GNC::GCS::AnnotationSettings::TP_BottomLeft: m_panelVector[i]->m_pLabel->SetLabel(_("Bottom left corner annotation")); break; case GNC::GCS::AnnotationSettings::TP_BottomRight: m_panelVector[i]->m_pLabel->SetLabel(_("Bottom right corner annotation")); break; } //set line content //reset values... m_panelVector[i]->m_pLine1->SetValue(wxEmptyString); m_panelVector[i]->m_pLine2->SetValue(wxEmptyString); m_panelVector[i]->m_pLine3->SetValue(wxEmptyString); m_panelVector[i]->m_pLine4->SetValue(wxEmptyString); wxString strAnnotations = wxString::FromUTF8(pAnnotationSettings->getAnnotation((GNC::GCS::AnnotationSettings::TAnnotationPosition)i).c_str()); strAnnotations.Replace(wxT("${NEWLINE}"), wxT("\n")); wxStringTokenizer tknz(strAnnotations, wxT("\n")); int lineCount = 0; std::ostringstream lastLine; while(tknz.HasMoreTokens()) { switch (lineCount++) { case 0: m_panelVector[i]->m_pLine1->SetValue(tknz.GetNextToken()); break; case 1: m_panelVector[i]->m_pLine2->SetValue(tknz.GetNextToken()); break; case 2: m_panelVector[i]->m_pLine3->SetValue(tknz.GetNextToken()); break; default: if (lastLine.tellp() > 0) { lastLine << "${NEWLINE}"; } lastLine << std::string(tknz.GetNextToken().ToUTF8()); } } m_panelVector[i]->m_pLine4->SetValue(wxString::FromUTF8(lastLine.str().c_str())); } } } virtual bool Validate() { return true; } virtual void updateAnnotationSettings(const GNC::GCS::Ptr& pAnnotationSettings) { for (int i = 0; i < GNC::GCS::AnnotationSettings::TP_NumPos; ++i) { std::ostringstream ostr; if (!m_panelVector[i]->m_pLine1->GetValue().IsEmpty()) { ostr << m_panelVector[i]->m_pLine1->GetValue().ToUTF8(); } if (!m_panelVector[i]->m_pLine1->GetValue().IsEmpty()) { if (ostr.tellp() > 0) { ostr << "${NEWLINE}"; } ostr << m_panelVector[i]->m_pLine2->GetValue().ToUTF8(); } if (!m_panelVector[i]->m_pLine1->GetValue().IsEmpty()) { if (ostr.tellp() > 0) { ostr << "${NEWLINE}"; } ostr << m_panelVector[i]->m_pLine3->GetValue().ToUTF8(); } if (!m_panelVector[i]->m_pLine1->GetValue().IsEmpty()) { if (ostr.tellp() > 0) { ostr << "${NEWLINE}"; } ostr << m_panelVector[i]->m_pLine4->GetValue().ToUTF8(); } pAnnotationSettings->setAnnotation((GNC::GCS::AnnotationSettings::TAnnotationPosition)i, ostr.str()); } } ModalityPanel* Parent; std::vector m_panelVector; }; class AddWindowLevelDialog: public AddWLDialogBase { public: AddWindowLevelDialog(ModalityPanel* pParent): AddWLDialogBase(pParent), Parent(pParent), EditMode(false) { } AddWindowLevelDialog(ModalityPanel* pParent, const wxString& label, const wxString& window, const wxString& level): AddWLDialogBase(pParent), Parent(pParent), EditMode(true) { m_pLabel->SetValue(label); m_pWindow->SetValue(window); m_pLevel->SetValue(level); } virtual bool Validate() { if (m_pLabel->GetValue().empty() || m_pWindow->GetValue().empty() || m_pLevel->GetValue().empty()) { wxMessageBox(_("You must fill in all fields"),_("Info"),wxOK | wxICON_INFORMATION, this); return false; } else { double window, level; if (m_pWindow->GetValue().ToDouble(&window) && m_pLevel->GetValue().ToDouble(&level)) { if (!EditMode && Parent->m_pDefaultWindowLevel->FindString(m_pLabel->GetValue()) > 0) { wxMessageBox(_("Window/level label in use"),_("Info"),wxOK | wxICON_INFORMATION, this); return false; } return true; } else { wxMessageBox(_("Fill in valid numbers in window and level fields."),_("Info"),wxOK | wxICON_INFORMATION, this); return false; } } } ModalityPanel* Parent; bool EditMode; }; ModalityPanel(wxWindow* pParent, DefaultModalitySettingsConfigurationPanel* pconfiguration, const GNC::GCS::Ptr& lo): ModalityPanelBase(pParent), modSettings(lo), pConfiguration(pconfiguration) { m_pModel = new wxDataViewListStore(); m_pListWL->AssociateModel(m_pModel.get()); m_pListWL->AppendColumn( new wxDataViewColumn( _("Label"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), COL_LABEL_IDX, COL_LABEL_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListWL->AppendColumn( new wxDataViewColumn( _("Window"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), COL_WINDOW_IDX, COL_WINDOW_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListWL->AppendColumn( new wxDataViewColumn( _("Level"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), COL_LEVEL_IDX, COL_LEVEL_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); } void InitPanels() { wxVector data; for (GNC::GCS::DefaultModalitySettings::TListOfWLSettings::const_iterator it = modSettings->getWLSettings().begin(); it != modSettings->getWLSettings().end(); ++it) { const GNC::GCS::DefaultModalitySettings::TListOfWLSettings::value_type& tuple = (*it); data.clear(); data.push_back(wxString::FromUTF8(tuple->getLabel().c_str())); data.push_back(wxString::Format(wxT("%lf"), tuple->getWindow())); data.push_back(wxString::Format(wxT("%lf"), tuple->getLevel())); m_pListWL->AppendItem(data); } RebuildComboWL(); m_pChoiceInterpolate->Append(_("Nearest neighbour")); m_pChoiceInterpolate->Append(_("Linear")); m_pChoiceInterpolate->Append(_("Cubic")); if (modSettings->getInterpolationMode() == GNC::GCS::DefaultModalitySettings::TIM_NEAREST_NEIGHBOUR) { m_pChoiceInterpolate->Select(0); } else if (modSettings->getInterpolationMode() == GNC::GCS::DefaultModalitySettings::TIM_LINEAR) { m_pChoiceInterpolate->Select(1); } else if (modSettings->getInterpolationMode() == GNC::GCS::DefaultModalitySettings::TIM_CUBIC) { m_pChoiceInterpolate->Select(2); } } void RebuildComboWL() { m_pDefaultWindowLevel->Clear(); m_pDefaultWindowLevel->Append(wxString::FromUTF8(GNC::GCS::DefaultModalitySettings::getDefaultWindowLevelLabel().c_str())); m_pDefaultWindowLevel->Append(wxString::FromUTF8(GNC::GCS::DefaultModalitySettings::getAutocalculateWindowLevelLabel().c_str())); m_pDefaultWindowLevel->Select(0); if (modSettings->getInitialWindowLevelLabel() == GNC::GCS::DefaultModalitySettings::getAutocalculateWindowLevelLabel()) { m_pDefaultWindowLevel->Select(1); } for (GNC::GCS::DefaultModalitySettings::TListOfWLSettings::const_iterator it = modSettings->getWLSettings().begin(); it != modSettings->getWLSettings().end(); ++it) { int item = m_pDefaultWindowLevel->Append(wxString::FromUTF8((*it)->getLabel().c_str())); if ((*it)->getLabel() == modSettings->getInitialWindowLevelLabel()) { m_pDefaultWindowLevel->Select (item); } } } const std::string& getModalityName() { return modSettings->getModality(); } virtual void OnAddWL(wxCommandEvent& /*evt*/) { AddWindowLevelDialog dlg(this); if (dlg.ShowModal() == wxID_OK) { m_pDefaultWindowLevel->Append(dlg.m_pLabel->GetValue()); wxVector data; data.push_back(dlg.m_pLabel->GetValue()); data.push_back(dlg.m_pWindow->GetValue()); data.push_back(dlg.m_pLevel->GetValue()); m_pModel->AppendItem(data); pConfiguration->OnPropiedadCambiada(); } } virtual void OnChoiceChanged(wxCommandEvent& ) { pConfiguration->OnPropiedadCambiada(); } virtual void OnEditWL(wxCommandEvent& /*evt*/) { wxDataViewItem selection = m_pListWL->GetSelection(); if(selection.IsOk()) { wxVariant oldLabel; wxVariant oldWindow; wxVariant oldLevel; m_pModel->GetValue(oldLabel, selection, COL_LABEL_IDX); m_pModel->GetValue(oldWindow, selection, COL_WINDOW_IDX); m_pModel->GetValue(oldLevel, selection, COL_LEVEL_IDX); AddWindowLevelDialog dlg(this, oldLabel, oldWindow, oldLevel); if (dlg.ShowModal() == wxID_OK) { int comboItem = m_pDefaultWindowLevel->FindString(oldLabel); if (comboItem > 0) { m_pDefaultWindowLevel->SetString(comboItem, dlg.m_pLabel->GetValue()); } m_pModel->SetValue(dlg.m_pLabel->GetValue(), selection, COL_LABEL_IDX); m_pModel->SetValue(dlg.m_pWindow->GetValue(), selection, COL_WINDOW_IDX); m_pModel->SetValue(dlg.m_pLevel->GetValue(), selection, COL_LEVEL_IDX); m_pModel->ItemChanged(selection); pConfiguration->OnPropiedadCambiada(); } } } virtual void OnDeleteWL(wxCommandEvent& /*evt*/) { wxDataViewItem selection = m_pListWL->GetSelection(); if(selection.IsOk()) { int answer = wxMessageBox(_("Do you confirm the removal of the preset?"), _("Data modified"), wxYES_NO | wxCANCEL, this); if(answer == wxYES) { wxVariant oldLabel; m_pModel->GetValue(oldLabel, selection, COL_LABEL_IDX); int comboItem = m_pDefaultWindowLevel->FindString(oldLabel.GetString()); if (comboItem > 0) { m_pDefaultWindowLevel->Delete(comboItem); if (m_pDefaultWindowLevel->GetSelection() < 0) { m_pDefaultWindowLevel->Select(0); } } bool notFound = true; for (unsigned int i = 0; notFound && i < m_pModel->GetCount(); ++i) { wxDataViewItem item = m_pModel->GetItem(i); wxVariant val2; m_pModel->GetValue(val2, item, COL_LABEL_IDX); if (oldLabel == val2) { notFound = false; m_pModel->DeleteItem(i); } } pConfiguration->OnPropiedadCambiada(); } } } virtual void OnSetupCornerAnnotations(wxCommandEvent& /*evt*/) { EditCornerAnnotationsDialog dlg(this, modSettings->getAnnotationSettings()); if (dlg.ShowModal() == wxID_OK) { dlg.updateAnnotationSettings(modSettings->getAnnotationSettings()); pConfiguration->OnPropiedadCambiada(); } } GNC::GCS::Ptr GetSettings() { modSettings->clearWindowLevels(); modSettings->setInitialWindowLevelLabel(std::string(m_pDefaultWindowLevel->GetString(m_pDefaultWindowLevel->GetSelection()).ToUTF8())); for (unsigned int i = 0; i < m_pModel->GetCount(); ++i) { wxDataViewItem item = m_pModel->GetItem(i); double window; double level; wxVariant labelVal; wxVariant windowVal; wxVariant levelVal; m_pModel->GetValue(labelVal, item, COL_LABEL_IDX); m_pModel->GetValue(windowVal, item, COL_WINDOW_IDX); m_pModel->GetValue(levelVal, item, COL_LEVEL_IDX); if (windowVal.GetString().ToDouble(&window) && levelVal.GetString().ToDouble(&level)) { GNC::GCS::Ptr wlSettings(new GNC::GCS::WindowLevelSetting(window, level, std::string(labelVal.GetString().ToUTF8()))); modSettings->addWindowLevel(wlSettings); } } modSettings->setInterpolationMode((GNC::GCS::DefaultModalitySettings::TInterpolationMode)m_pChoiceInterpolate->GetSelection()); return modSettings; } GNC::GCS::Ptr modSettings; DefaultModalitySettingsConfigurationPanel* pConfiguration; }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// DefaultModalitySettingsConfigurationPanel::DefaultModalitySettingsConfigurationPanel(wxWindow* pParent,IDialogoConfiguracion* pDialogo): DefaultModalitySettingsConfigurationPanelBase(pParent), IPasoConfiguracion(pDialogo) { Recargar(); wxColour barColor = wxColour(200,200,200); wxFont fontBar = wxFont( 10, 70, 90, wxFONTWEIGHT_BOLD, false, wxEmptyString ); } DefaultModalitySettingsConfigurationPanel::~DefaultModalitySettingsConfigurationPanel() { } void DefaultModalitySettingsConfigurationPanel::Recargar() { GNC::GCS::ModalitySettingsController::TMapOfModalitySettings modalitySettings = GNC::GCS::ModalitySettingsController::Instance()->getModalitySettingsMap(); m_pWLList->DeleteAllItems(); m_currentModality = NULL; for (TModalityMap::iterator it = modalityBrowser.begin(); it != modalityBrowser.end(); ++it) { (*it).second->Destroy(); } modalityBrowser.clear(); //default modality settings... wxTreeItemId root = m_pWLList->AddRoot(_("Modalities")); for (GNC::GCS::ModalitySettingsController::TMapOfModalitySettings::const_iterator it = modalitySettings.begin(); it != modalitySettings.end(); ++it) { if ((*it).second.IsValid()) { ModalityPanel * mp = new ModalityPanel(m_pModalityPanel, this, (*it).second); wxTreeItemId id = m_pWLList->AppendItem(root, wxString::FromUTF8(mp->getModalityName().c_str())); modalityBrowser[id.m_pItem] = mp; mp->InitPanels(); mp->Hide(); m_pSizerModalities->Add(mp, 1, wxEXPAND|wxALL, 5); m_pModalityPanel->Layout(); } } wxTreeItemIdValue cookie; m_pWLList->SelectItem(m_pWLList->GetFirstChild(root, cookie)); LoadCurrent(); //*/ Layout(); } //region "Metodos de IPasoConfiguracion" wxWindow* DefaultModalitySettingsConfigurationPanel::GetPanel() { return this; } std::string DefaultModalitySettingsConfigurationPanel::GetTitle() { return _Std("Modality settings"); } std::string DefaultModalitySettingsConfigurationPanel::GetCabecera() { return _Std("Default modality settings"); } bool DefaultModalitySettingsConfigurationPanel::Validar() { bool ok = true; return ok; } bool DefaultModalitySettingsConfigurationPanel::Guardar() { //get hanging protocols... GNC::GCS::ModalitySettingsController::Instance()->clearModalitySettings(); for (TModalityMap::iterator it = modalityBrowser.begin(); it != modalityBrowser.end(); ++it) { GNC::GCS::ModalitySettingsController::Instance()->addModalitySettings((*it).second->GetSettings()); } GNC::GCS::ModalitySettingsController::Instance()->StoreModalitySettingsConfiguration(); return true; } //endregion void DefaultModalitySettingsConfigurationPanel::OnTreeSelChanged(wxTreeEvent &) { LoadCurrent(); } void DefaultModalitySettingsConfigurationPanel::LoadCurrent() { wxTreeItemId id = m_pWLList->GetSelection(); if (id.IsOk()) { if(modalityBrowser.find(id.m_pItem) != modalityBrowser.end()) { ModalityPanel* pCurrent = modalityBrowser[id.m_pItem]; if( pCurrent!=NULL && pCurrent!=m_currentModality) { m_pTitledPanelModalities->Freeze(); if(m_currentModality!=NULL) { m_currentModality->Hide(); } m_currentModality = pCurrent; wxString modName = wxString::Format(_("%s settings"),wxString::FromUTF8(pCurrent->getModalityName().c_str()).c_str()); m_pTitledPanelModalities->SetToolTip(modName); m_currentModality->Show(); m_pModalityPanel->SetScrollbars(20, 20, 50, 50, 0, 0, false); m_pModalityPanel->AdjustScrollbars(); m_pTitledPanelModalities->Layout(); m_pTitledPanelModalities->Thaw(); } } } } void DefaultModalitySettingsConfigurationPanel::OnPropiedadCambiada() { IPasoConfiguracion::OnPropiedadCambiada(); } void DefaultModalitySettingsConfigurationPanel::OnSize(wxSizeEvent & event) { event.Skip(true); } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/defaultmodalitysettingsconfigurationpanel.h000066400000000000000000000034121314736454600327640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "panelesconfiguracionginkgobase.h" #include #include namespace GNC { namespace GUI { class ModalityPanel; class DefaultModalitySettingsConfigurationPanel: public DefaultModalitySettingsConfigurationPanelBase, public IPasoConfiguracion { public: DefaultModalitySettingsConfigurationPanel(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~DefaultModalitySettingsConfigurationPanel(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion virtual void OnPropiedadCambiada(); protected: virtual void OnTreeSelChanged(wxTreeEvent &); void LoadCurrent(); void OnSize(wxSizeEvent &); typedef std::map TModalityMap; TModalityMap modalityBrowser; ModalityPanel* m_currentModality; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/dialogoconfiguracion.cpp000066400000000000000000000316231314736454600267310ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include
    #include #include #include #include "dialogoconfiguracion.h" #include "panelconfiguracionestacion.h" #include "panelconfiguracionhce.h" #include "panelconfiguracionpacs.h" #include "panelconfiguracionextensiones.h" #include "panelconfiguracionpermisos.h" #include "panelconfiguracionseguridad.h" #include "panelconfiguracionubicaciones.h" #include "panelconfiguraciongeneral.h" #include "panelconfigurationanonymization.h" #include "hangingprotocolconfigurationpanel.h" #include "smartretrieveconfigurationpanel.h" #include "localdatabaseconfigurationpanel.h" #include "defaultmodalitysettingsconfigurationpanel.h" #include
    #include
    #include
    #include
    #include #include #include #include namespace GNC { namespace GUI { DialogoConfiguracion::DialogoConfiguracion(wxWindow* pParent):DialogoConfiguracionBase(pParent) { wxTreeItemId raiz = m_pTreeNavegacion->AddRoot(wxT("root")); wxTreeItemId ginkgo = m_pTreeNavegacion->AppendItem(raiz,wxString::FromUTF8(GNC::Entorno::Instance()->GetApplicationName().c_str())); SetTitle(wxString::FromUTF8(GNC::Entorno::Instance()->GetApplicationName().c_str()) + wxT(" ") + _("settings")); //se añade el primer paso de ginkgo wxTreeItemId primerId; IPasoConfiguracion* pPaso = new PanelConfiguracionGeneral(m_pPanelConfig,this);; pPaso->GetPanel()->Hide(); wxTreeItemId id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; primerId = id; pPaso = new PanelConfiguracionEstacion(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; pPaso = new LocalDatabaseConfigurationPanel(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; pPaso = new PanelConfiguracionHCE(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; pPaso = new PanelConfiguracionPACS(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; pPaso = new SmartRetrieveConfigurationPanel(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; /* pPaso = new PanelConfiguracionExtensiones(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; */ pPaso = new PanelConfiguracionPermisos(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; pPaso = new DefaultModalitySettingsConfigurationPanel(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; pPaso = new HangingProtocolConfigurationPanel(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; if (GNC::GCS::IControladorPermisos::Instance()->Get("core.seguridad","setup_security")) { pPaso = new PanelConfiguracionSeguridad(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; } pPaso = new PanelConfiguracionUbicaciones(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; /* pPaso = new PanelConfigurationAnonymization(m_pPanelConfig, this); pPaso->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8(pPaso->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = pPaso; */ m_currentPaso = NULL; m_pTreeNavegacion->SelectItem(primerId); std::list extraConfig; for (GNC::ControladorExtensiones::ListaModulos::const_iterator it = GNC::ControladorExtensiones::Instance()->Modulos().begin(); it != GNC::ControladorExtensiones::Instance()->Modulos().end(); ++it) { (*it).second->GetPasosConfiguracion(extraConfig, m_pPanelConfig, this); } for (std::list::iterator it = extraConfig.begin(); it != extraConfig.end(); ++it) { (*it)->GetPanel()->Hide(); id = m_pTreeNavegacion->AppendItem(ginkgo,wxString::FromUTF8((*it)->GetTitle().c_str())); m_MapaPasos[id.m_pItem] = (*it); } CargarCurrent(); m_pBAplicar->Enable(false); Layout(); } DialogoConfiguracion::~DialogoConfiguracion() { } void DialogoConfiguracion::CargarCurrent() { wxTreeItemId id = m_pTreeNavegacion->GetSelection(); if(id.IsOk()) { if(m_MapaPasos.find(id.m_pItem) != m_MapaPasos.end()) { IPasoConfiguracion* pCurrent = m_MapaPasos[id.m_pItem]; if( pCurrent!=NULL && pCurrent!=m_currentPaso) { Freeze(); if(m_currentPaso!=NULL) { if(!m_currentPaso->Validar()) { if(m_pTreeNavegacion->GetSelection() != id) { m_pTreeNavegacion->SelectItem(id); } Thaw(); return; } m_currentPaso->GetPanel()->Hide(); m_pSizerPaneles->Detach(m_currentPaso->GetPanel()); } m_currentPaso = pCurrent; m_currentPaso->GetPanel()->Show(); m_pSizerPaneles->Add(m_currentPaso->GetPanel(),10, wxEXPAND|wxALL, 10); m_pTitledPanelConfig->SetTitle(wxString::FromUTF8(m_currentPaso->GetCabecera().c_str())); m_pPanelConfig->Layout(); m_pPanelConfig->SetScrollbars(20, 20, 50, 50, 0, 0, false); m_pPanelConfig->AdjustScrollbars(); m_pTitledPanelConfig->Layout(); Thaw(); } } } } void DialogoConfiguracion::OnPropiedadCambiada() { if(!m_pBAplicar->IsEnabled()) { m_pBAplicar->Enable(); } } void DialogoConfiguracion::OnCancelarClick(wxCommandEvent &) { EndModal(wxID_CANCEL); } void DialogoConfiguracion::OnAceptarClick(wxCommandEvent &) { if(m_pBAplicar->IsEnabled()) { bool validar=true; for(MapaPasos::iterator it = m_MapaPasos.begin(); it != m_MapaPasos.end(); ++it) { validar = validar && (*it).second->Validar(); } if(validar) { for(MapaPasos::iterator it = m_MapaPasos.begin(); it != m_MapaPasos.end(); ++it) { (*it).second->Guardar(); } GNC::GCS::ConfigurationController::Instance()->Flush(); GNC::GCS::ControladorVistas* pC = GNC::GCS::ControladorVistas::Instance(); if (pC != NULL) { pC->PropagarConfiguracionCambiada(); } m_pBAplicar->Disable(); EndModal(wxID_OK); } } else { EndModal(wxID_OK); } } void DialogoConfiguracion::OnAplicarClick(wxCommandEvent &) { bool validar=true; for(MapaPasos::iterator it = m_MapaPasos.begin(); it != m_MapaPasos.end(); ++it) { validar = validar && (*it).second->Validar(); } if(validar) { for(MapaPasos::iterator it = m_MapaPasos.begin(); it != m_MapaPasos.end(); ++it) { (*it).second->Guardar(); } GNC::GCS::ConfigurationController::Instance()->Flush(); GNC::GCS::ControladorVistas* pC = GNC::GCS::ControladorVistas::Instance(); if (pC != NULL) { pC->PropagarConfiguracionCambiada(); } m_pBAplicar->Disable(); } } void DialogoConfiguracion::OnCambioNodoNavegacion(wxTreeEvent &) { CargarCurrent(); } void DialogoConfiguracion::OnExportarClick(wxCommandEvent &) { wxFileDialog seleccionarFichero (this, _("Export Configuration"), wxT(""), wxT(""), _("Ini Files(*.ini)|*.ini"),wxFD_SAVE); int response = seleccionarFichero.ShowModal(); if (response == wxID_OK) { if(wxFileExists(seleccionarFichero.GetPath())) { response = wxMessageBox(_("File exists\nWould you like to overwrite it?"), _("Existing file"), wxYES_NO | wxCANCEL,this); if(response != wxYES) { return; } } std::string stdPath(TOPATH(seleccionarFichero.GetPath())); if (GNC::GCS::ConfigurationController::Instance()->saveGlobalConfigurationFile(stdPath)) { wxMessageBox(_("Export successfully completed"),_("Info"),wxOK,this); } else { wxMessageBox(_("There was an error during exportation"),_("Info"),wxOK,this); } } } void DialogoConfiguracion::OnImportarClick(wxCommandEvent &) { wxFileDialog seleccionarFichero (this, _("Import Configuration"), wxT(""), wxT(""), _("Ini files(*.ini)|*.ini"),wxFD_FILE_MUST_EXIST|wxFD_OPEN); int response = seleccionarFichero.ShowModal(); if (response == wxID_OK) { std::string stdPath(TOPATH(seleccionarFichero.GetPath())); if (GNC::GCS::ConfigurationController::Instance()->loadGlobalConfigurationFile(stdPath)) { GNC::GCS::ConfigurationController::Instance()->Flush(); for(MapaPasos::iterator it = m_MapaPasos.begin(); it != m_MapaPasos.end(); ++it) { (*it).second->Recargar(); } GNC::GCS::ControladorVistas* pC = GNC::GCS::ControladorVistas::Instance(); if (pC != NULL) { pC->PropagarConfiguracionCambiada(); } m_pBAplicar->Disable(); wxMessageBox(_("Import successfully completed, restart Ginkgo CADx to apply changes"),_("Info"),wxOK,this); } else { wxMessageBox(_("There was an error during importation, check permissions"),_("Info"),wxOK,this); } } } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/dialogoconfiguracion.h000066400000000000000000000033001314736454600263650ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "panelesconfiguracionginkgobase.h" #include #include #include #include #include namespace GNC { namespace GUI { class DialogoConfiguracion: public IDialogoConfiguracion, public DialogoConfiguracionBase { public: DialogoConfiguracion(wxWindow* pParent); ~DialogoConfiguracion(); virtual void OnCambioNodoNavegacion(wxTreeEvent &event); void CargarCurrent(); void OnPropiedadCambiada(); void OnCancelarClick(wxCommandEvent &event); void OnAceptarClick(wxCommandEvent &event); void OnAplicarClick(wxCommandEvent &event); void OnExportarClick(wxCommandEvent &event); void OnImportarClick(wxCommandEvent &event); typedef std::map MapaPasos; MapaPasos m_MapaPasos; IPasoConfiguracion* m_currentPaso; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/hangingprotocolconfigurationpanel.cpp000066400000000000000000001314341314736454600315520ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include
    #include
    #include #include
    #include #include #include #include #include #include #include #include #include #include #include #include "hangingprotocolconfigurationpanel.h" #include #define COL_LABEL_ID 0 #define COL_WINDOW_ID 1 #define COL_LEVEL_ID 2 #define COL_HP_NAME 0 #define COL_HP_ACTIVE 1 #define COL_HP_CLIENT_DATA 2 namespace GNC { namespace GUI { ////////////////////////////////////////// class HangingButtonsBar : public wxAuiToolBar { public: HangingButtonsBar(wxWindow* pParent, const wxColour& color, const wxFont& fuente, int style): wxAuiToolBar (pParent,wxID_ANY, wxDefaultPosition, wxDefaultSize, style) { SetToolBitmapSize(wxSize(16,16)); wxGinkgoToolBarArt* pToolArt= new wxGinkgoToolBarArt(); pToolArt->SetCustomBaseColor(color); pToolArt->SetFont(fuente); SetArtProvider(pToolArt); Realize(); } ~HangingButtonsBar() { } }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class SelectOpeningMode: public SelectOpeningModeBase { public: SelectOpeningMode(wxWindow* pParent): SelectOpeningModeBase(pParent) { GNC::ControladorExtensiones::ListaModulos listaModulos = ControladorExtensiones::Instance()->Modulos(); for(GNC::ControladorExtensiones::IteradorListaModulos itModulos=listaModulos.begin(); itModulos!=listaModulos.end(); ++itModulos) { for(GNC::GCS::IModuleController::IteradorListaModos itModos=(*itModulos).second->GetListaModos().begin(); itModos!=(*itModulos).second->GetListaModos().end(); ++itModos) { wxString wxStr = wxString::FromUTF8((*itModos)->GetDescripcion().c_str()); m_pOpeningMode->AppendString(wxStr); m_modulos.push_back((*itModulos).second); m_modos.push_back((*itModos)); } } if(m_pOpeningMode->GetCount() > 0) { m_pOpeningMode->Select(0); } m_pPanelMessage->Layout(); m_pBody->Layout(); } ~SelectOpeningMode() { } GNC::GCS::IModuleController* GetModuloSeleccionado() { return m_modulos[m_pOpeningMode->GetSelection()]; } GNC::GCS::ModoControlador* GetModoSeleccionado() { return m_modos[m_pOpeningMode->GetSelection()]; } typedef std::vector TipoVectorModulos; typedef std::vector TipoVectorModos; TipoVectorModulos m_modulos; TipoVectorModos m_modos; }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class AddTagDialog: public AddTagDialogBase { public: AddTagDialog(wxWindow* pParent): AddTagDialogBase(pParent) { listId.push_back(GKDCM_PatientID); listId.push_back(GKDCM_IssuerOfPatientID); listId.push_back(GKDCM_PatientBirthDate); listId.push_back(GKDCM_PatientSex); listId.push_back(GKDCM_PatientName); listId.push_back(GKDCM_StudyInstanceUID); listId.push_back(GKDCM_StudyID); listId.push_back(GKDCM_AccessionNumber); listId.push_back(GKDCM_ReferringPhysicianName); listId.push_back(GKDCM_StudyDescription); listId.push_back(GKDCM_ModalitiesInStudy); listId.push_back(GKDCM_SeriesInstanceUID); listId.push_back(GKDCM_SeriesNumber); listId.push_back(GKDCM_Modality); listId.push_back(GKDCM_BodyPartExamined); listId.push_back(GKDCM_Laterality); listId.push_back(GKDCM_ImageLaterality); listId.push_back(GKDCM_PatientOrientation); listId.push_back(GKDCM_InstitutionName); listId.push_back(GKDCM_StationName); listId.push_back(GKDCM_InstitutionalDepartmentName); listId.push_back(GKDCM_PerformingPhysicianName); listId.push_back(GKDCM_ProtocolName); listId.push_back(GKDCM_SeriesDescription); GIL::DICOM::IDICOMManager* pDICOMManager = GNC::GCS::IEntorno::Instance()->GetPACSController()->CrearInstanciaDeDICOMManager(); for (std::vector::const_iterator it = listId.begin(); it != listId.end(); ++it) { std::string description = pDICOMManager->GetDescription((*it)); m_pChoiceTag->AppendString(wxString::FromUTF8(description.c_str())); } m_pChoiceTag->Select(0); GNC::Entorno::Instance()->GetPACSController()->LiberarInstanciaDeDICOMManager(pDICOMManager); } ~AddTagDialog() { listId.clear(); } std::pair getTag() { std::pair value; value.first = listId[m_pChoiceTag->GetSelection()]; value.second = m_pTextValue->GetValue().ToUTF8(); return value; } protected: std::vector listId; }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class EditCriteriaPanel: public EditCriteriaPanelBase { enum { COL_DEESCRIPTION = 0, COL_VALUE, COL_UID }; public: EditCriteriaPanel(wxWindow* pParent, bool buttonsRight = true): EditCriteriaPanelBase(pParent) { if (!buttonsRight) { m_pGeneralSizer->SetOrientation(wxVERTICAL); m_pButtonSizer->SetOrientation(wxHORIZONTAL); m_pButtonSizer->Insert(0, 0, 0, 1, wxEXPAND, 5 ); } m_pModel = new wxDataViewListStore(); m_pListCriteria->AssociateModel(m_pModel.get()); m_pListCriteria->AppendColumn( new wxDataViewColumn( _("Dicom tag"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), COL_HP_NAME, 200, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListCriteria->AppendColumn( new wxDataViewColumn( _("Value"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_EDITABLE ), COL_HP_ACTIVE, 230, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListCriteria->Connect(wxEVT_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( EditCriteriaPanel::OnCriteriaChangeSelection ), NULL, this ); Layout(); } ~EditCriteriaPanel() { m_pListCriteria->Disconnect(wxEVT_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( EditCriteriaPanel::OnCriteriaChangeSelection ), NULL, this ); } virtual void loadMatcher(const GNC::GCS::Ptr& matcher) { m_pListCriteria->DeleteAllItems(); if (matcher.IsValid()) { for (std::map::const_iterator it = matcher->getMatchingCriteria().begin(); it != matcher->getMatchingCriteria().end(); ++it) { addTag((*it).first, (*it).second); } } } virtual void updateMatcher(GNC::GCS::Ptr& matcher) { if (matcher.IsValid()) { matcher->getMatchingCriteria().clear(); wxVariant tag,value; for (unsigned i = 0; i < m_pModel->GetCount(); ++i) { m_pModel->GetValueByRow(tag, i, COL_UID); m_pModel->GetValueByRow(value, i, COL_VALUE); matcher->getMatchingCriteria()[std::string(tag.GetString().ToUTF8())] = value.GetString().ToUTF8(); } } } virtual void addTag(const std::string& tagKey, const std::string& value) { GIL::DICOM::IDICOMManager* pDICOMManager = GNC::GCS::IEntorno::Instance()->GetPACSController()->CrearInstanciaDeDICOMManager(); std::string description = pDICOMManager->GetDescription(tagKey); wxVector data; data.push_back(wxString::FromUTF8(description.c_str())); data.push_back(wxString::FromUTF8(value.c_str())); data.push_back(wxString::FromUTF8(tagKey.c_str())); m_pModel->AppendItem(data); GNC::Entorno::Instance()->GetPACSController()->LiberarInstanciaDeDICOMManager(pDICOMManager); } protected: virtual void OnAddClick(wxCommandEvent& ) { AddTagDialog dlg(this); if (dlg.ShowModal() == wxID_OK) { std::pair value = dlg.getTag(); wxVariant val; for (unsigned i = 0; i < m_pModel->GetItemCount(); ++i) { m_pModel->GetValueByRow(val, i, COL_UID); if (val.GetString() == wxString::FromUTF8(value.first.c_str())) { m_pModel->SetValueByRow(wxString::FromUTF8(value.second.c_str()), i, COL_VALUE); return; } } addTag(value.first, value.second); } } virtual void OnDeleteClick(wxCommandEvent& ) { wxDataViewItem item = m_pListCriteria->GetSelection(); if(item.IsOk()) { m_pListCriteria->DeleteItem(m_pListCriteria->GetSelectedRow()); } } virtual void OnCriteriaChangeSelection(wxDataViewEvent& event) { m_pBDelete->Enable(event.GetItem().IsOk()); } wxObjectDataPtr m_pModel; }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class EditHangingProtocolDialog: public EditHangingProtocolDialogBase { class StudyWindow: public StudyWindowBase, public GNC::GCS::IHangingProtocolContract { class PreviewLayoutPanel: public wxPanel, public GNC::GCS::IHangingSeriesViewer { public: PreviewLayoutPanel(StudyWindow* pSelectionManager, wxWindow* pParent, const GNC::GCS::Ptr& seriesMatcher = NULL): wxPanel(pParent, wxID_ANY, wxDefaultPosition, wxSize(-1,-1)), isSelected(false), pStudyWindow(pSelectionManager) { wxPanel::SetBackgroundColour(wxBG_STYLE_CUSTOM); if (seriesMatcher.IsValid()) { this->seriesMatcher = seriesMatcher; } else { this->seriesMatcher = GNC::GCS::Ptr(new GNC::GCS::Matcher()); this->seriesMatcher->getMatchingCriteria()[GKDCM_SeriesDescription] = ""; this->seriesMatcher->getMatchingCriteria()[GKDCM_Modality] = ""; } this->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( PreviewLayoutPanel::OnLeftClick ) ); this->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( PreviewLayoutPanel::OnRightClick ) ); this->Connect( wxEVT_PAINT, wxPaintEventHandler( PreviewLayoutPanel::OnPaint ) ); } ~PreviewLayoutPanel() { this->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( PreviewLayoutPanel::OnLeftClick ) ); this->Disconnect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( PreviewLayoutPanel::OnRightClick ) ); this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( PreviewLayoutPanel::OnPaint ) ); } void select(bool selected) { if (selected != isSelected) { isSelected = selected; Refresh(true); } } GNC::GCS::Ptr& getMatcher() { return this->seriesMatcher; } void getSeriesBase(GIL::DICOM::DicomDataset& seriesBase) { for (std::map::iterator it = seriesMatcher->getMatchingCriteria().begin(); it != seriesMatcher->getMatchingCriteria().end(); ++it) { seriesBase.tags[(*it).first] = (*it).second; } } protected: virtual void OnLeftClick(wxMouseEvent &) { if (pStudyWindow->hangingSupportLevel == GNC::GCS::ModoControlador::THSL_FULL) { pStudyWindow->doSelect(this); } } virtual void OnRightClick(wxMouseEvent &) { if (pStudyWindow->hangingSupportLevel == GNC::GCS::ModoControlador::THSL_FULL) { pStudyWindow->doSelect(this); wxMenu popupMenu; int id = 0; wxMenuItem* pItem = popupMenu.Append(id, _("Split horizontally...")); #ifdef __WXMSW__ pItem->SetBitmaps(GinkgoResourcesManager::LayoutBar::GetIcoLayout2x1Blue()); #else pItem->SetBitmap(GinkgoResourcesManager::LayoutBar::GetIcoLayout2x1Blue()); #endif popupMenu.Connect(id++,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PreviewLayoutPanel::OnSplitH ), NULL, this); pItem = popupMenu.Append(id, _("Split vertically...")); #ifdef __WXMSW__ pItem->SetBitmaps(GinkgoResourcesManager::LayoutBar::GetIcoLayout1x2Blue()); #else pItem->SetBitmap(GinkgoResourcesManager::LayoutBar::GetIcoLayout1x2Blue()); #endif popupMenu.Connect(id++,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PreviewLayoutPanel::OnSplitV ), NULL, this); pItem = popupMenu.Append(id, _("Reset")); #ifdef __WXMSW__ pItem->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoReset()); #else pItem->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoReset()); #endif popupMenu.Connect(id++,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PreviewLayoutPanel::OnResetLayout ), NULL, this); this->PopupMenu(&popupMenu); } } virtual void OnSplitH(wxCommandEvent& ) { pStudyWindow->SplitActive(true); } virtual void OnSplitV(wxCommandEvent& ) { pStudyWindow->SplitActive(false); } virtual void OnResetLayout(wxCommandEvent &) { pStudyWindow->RebuildLayout(); } virtual void OnPaint(wxPaintEvent &/*event*/) { wxPaintDC dc(this); //no muestra la rallita de abajo //wxBufferedPaintDC dc(this); const int width = dc.GetSize().x; const int height = dc.GetSize().y; // Title background wxRect rTitle(0, 0, width, height); if (this->isSelected) { dc.GradientFillLinear(rTitle, wxColour(50, 180, 50), wxColour(100, 230, 100), wxWEST); } else { dc.GradientFillLinear(rTitle, wxColour(180, 180, 180), wxColour(230, 230, 230), wxWEST); } // Title border dc.SetBrush(*wxTRANSPARENT_BRUSH); if (this->isSelected) { dc.SetPen(wxPen(wxColour(30, 115, 30), 1, wxSOLID)); } else { dc.SetPen(wxPen(wxColour(115, 115, 115), 1, wxSOLID)); } dc.DrawRectangle(rTitle); } GNC::GCS::Ptr seriesMatcher; bool isSelected; StudyWindow* pStudyWindow; };//end PreviewPanel public: StudyWindow(wxWindow* pParent): StudyWindowBase(pParent), layout(new GNC::GCS::Layout()), editSeriesCriteriaPanel(nullptr), selectedPreview(nullptr), hangingSupportLevel(GNC::GCS::ModoControlador::THSL_FULL) { } StudyWindow(wxWindow* pParent, const GNC::GCS::Ptr& lo): StudyWindowBase(pParent), layout(lo), editSeriesCriteriaPanel(nullptr), selectedPreview(nullptr), hangingSupportLevel(GNC::GCS::ModoControlador::THSL_FULL) { } ~StudyWindow() { listPreviewLayouts.clear(); } void InitPanels(GNC::GCS::ModoControlador::T_HangingProtocolSupportLevel hsl) { this->hangingSupportLevel = hsl; editSeriesCriteriaPanel = new EditCriteriaPanel(m_pLayoutPreview, false); m_pSizerSeriesCriteria->Add(editSeriesCriteriaPanel, 1, wxEXPAND|wxALL, 5); m_pLayoutPreview->Layout(); m_pSpinCols->Enable(hangingSupportLevel != GNC::GCS::ModoControlador::THSL_ONLY_1x1); m_pSpinRows->Enable(hangingSupportLevel != GNC::GCS::ModoControlador::THSL_ONLY_1x1); m_pSetupPositionButton->Enable(hangingSupportLevel != GNC::GCS::ModoControlador::THSL_ONLY_1x1); //button bar { wxColour barColor = wxColour(200,200,200); wxFont fontBar = wxFont( 10, 70, 90, wxFONTWEIGHT_BOLD, false, wxEmptyString ); HangingButtonsBar* m_pButtonsBar = new HangingButtonsBar(m_pLayoutPreview, barColor, fontBar, wxAUI_TB_DEFAULT_STYLE); int i = 1; m_pButtonsBar->AddTool(i, _("Split active horizontally"), GinkgoResourcesManager::LayoutBar::GetIcoLayout2x1Blue(), _("Split active horizontally")); m_pButtonsBar->EnableTool(i, hangingSupportLevel == GNC::GCS::ModoControlador::THSL_FULL); m_pButtonsBar->Connect(i++, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(StudyWindow::OnSplitH), NULL, this); m_pButtonsBar->AddTool(i, _("Split active vertically"), GinkgoResourcesManager::LayoutBar::GetIcoLayout1x2Blue(), _("Split active vertically")); m_pButtonsBar->EnableTool(i, hangingSupportLevel == GNC::GCS::ModoControlador::THSL_FULL); m_pButtonsBar->Connect(i++, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(StudyWindow::OnSplitV), NULL, this); m_pButtonsBar->AddTool(i, _("Reset"), GinkgoResourcesManager::MenuIcons::GetIcoReset(), _("Reset")); m_pButtonsBar->EnableTool(i, hangingSupportLevel == GNC::GCS::ModoControlador::THSL_FULL); m_pButtonsBar->Connect(i++, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(StudyWindow::OnResetLayout), NULL, this); m_pButtonsBar->Realize(); m_pSizerLayoutTools->Insert(0,m_pButtonsBar, 0, wxEXPAND| wxALL, 0); } if (layout.IsValid()) { this->m_pSpinRows->SetValue(layout->getRows()); this->m_pSpinCols->SetValue(layout->getColumns()); } //dolayout... doLayout(); } /** IHangingProtocolContract */ virtual wxWindow* createSeriesSlot(const std::map& /*properties*/, long /*pk = -1*/, const GNC::GCS::Ptr& matcher) { listPreviewLayouts.push_back(new PreviewLayoutPanel(this, m_pLayoutPreview, matcher)); return listPreviewLayouts.back(); } virtual const std::list& getOpeningSeries() { return fooList; } // void doLayout() { m_pLayoutPreview->Freeze(); selectedPreview = NULL; m_pPreviewSizer->Clear(true); listPreviewLayouts.clear(); layout->doLayout(this, m_pPreviewSizer); if (!listPreviewLayouts.empty()) { for (std::list::const_iterator it = listPreviewLayouts.begin(); it != listPreviewLayouts.end(); ++it) { (*it)->select((*it) == selectedPreview); } doSelect(listPreviewLayouts.front()); } m_pLayoutPreview->Layout(); m_pLayoutPreview->Thaw(); Layout(); } void doSelect(PreviewLayoutPanel* pPanel) { if (selectedPreview == pPanel) return; m_pLayoutPreview->Freeze(); if (selectedPreview != NULL) { selectedPreview->select(false); //store matcher... editSeriesCriteriaPanel->updateMatcher(selectedPreview->getMatcher()); } selectedPreview = pPanel; selectedPreview->select(true); editSeriesCriteriaPanel->loadMatcher(selectedPreview->getMatcher()); m_pLayoutPreview->Thaw(); } void SplitActive(bool horizontally) { m_pLayoutPreview->Freeze(); wxBoxSizer* pNewSizer; if (horizontally) { pNewSizer = new wxBoxSizer(wxVERTICAL); } else { pNewSizer = new wxBoxSizer(wxHORIZONTAL); } wxSizer* pSizerActive = (wxSizer*)selectedPreview->GetContainingSizer(); wxSizerItem* pItem = pSizerActive->GetItem(selectedPreview); pItem->AssignSizer(pNewSizer); pNewSizer->Add(selectedPreview, 1, wxEXPAND|wxALL); std::map prop; pNewSizer->Add(createSeriesSlot(prop, -1, NULL), 1, wxEXPAND|wxALL); m_pLayoutPreview->Layout(); m_pLayoutPreview->Thaw(); } GNC::GCS::Ptr GetLayout() { if (selectedPreview != NULL) { editSeriesCriteriaPanel->updateMatcher(selectedPreview->getMatcher()); } if (hangingSupportLevel == GNC::GCS::ModoControlador::THSL_FULL) { GNC::GCS::Ptr pLayout = GNC::GCS::Layout::getLayoutFromSizer(m_pPreviewSizer); pLayout->copyWindowProperties(*layout); return pLayout; } else { GNC::GCS::Ptr pLayout(new GNC::GCS::Layout()); pLayout->setRows(m_pSpinRows->GetValue()); pLayout->setColumns(m_pSpinCols->GetValue()); GNC::GCS::Ptr pSeriesMatcher(new GNC::GCS::Matcher()); editSeriesCriteriaPanel->updateMatcher(pSeriesMatcher); pLayout->setMatcher(pSeriesMatcher); pLayout->copyWindowProperties(*layout); return pLayout; } } protected: virtual void OnSpinRows( wxSpinEvent& ) { RebuildLayout(); } virtual void OnSpinCols( wxSpinEvent& ) { RebuildLayout(); } virtual void OnSplitH(wxCommandEvent &) { SplitActive(true); } virtual void OnSplitV(wxCommandEvent &) { SplitActive(false); } virtual void OnResetLayout(wxCommandEvent &) { RebuildLayout(); } virtual void RebuildLayout() { //rebuild layout... layout->setColumns(m_pSpinCols->GetValue()); layout->setRows(m_pSpinRows->GetValue()); layout->getCellList().clear(); doLayout(); } //setup window position virtual void OnSetupWindowPositionClick(wxCommandEvent &) { SetupWindowPositionBase dlg(this); layout->applyWindowProperties(&dlg); if (dlg.ShowModal() == wxID_OK) { layout->setWindowProperties(dlg.IsMaximized(), dlg.GetPosition().x, dlg.GetPosition().y, dlg.GetSize().x, dlg.GetSize().y); } } virtual void OnSetDefaultWindowPosition(wxCommandEvent &) { layout->setDefaultPosition(); } GNC::GCS::Ptr layout; EditCriteriaPanel* editSeriesCriteriaPanel; std::list fooList; PreviewLayoutPanel* selectedPreview; std::list listPreviewLayouts; GNC::GCS::ModoControlador::T_HangingProtocolSupportLevel hangingSupportLevel; };//end StudyWindow public: EditHangingProtocolDialog(wxWindow* pParent): EditHangingProtocolDialogBase(pParent), hangingSupportLevel(GNC::GCS::ModoControlador::THSL_FULL), editStudyCriteriaPanel(nullptr) { } EditHangingProtocolDialog(wxWindow* pParent, const GNC::GCS::Ptr& hP): EditHangingProtocolDialogBase(pParent), hangingSupportLevel(GNC::GCS::ModoControlador::THSL_FULL), editStudyCriteriaPanel(nullptr), hangingProtocol(new GNC::GCS::HangingProtocol(*hP)) { } ~EditHangingProtocolDialog() { } virtual int ShowModal() { if (!hangingProtocol.IsValid()) { SelectOpeningMode dlg(this->GetParent()); if (dlg.ShowModal() == wxID_OK) { hangingProtocol = GNC::GCS::Ptr(new GNC::GCS::HangingProtocol()); hangingProtocol->setName(_Std("New hanging protocol")); hangingProtocol->setModuleSid(dlg.GetModuloSeleccionado()->GetUID()); hangingProtocol->setOpeningMode(dlg.GetModoSeleccionado()->GetId()); //basic criteria... GNC::GCS::Ptr studyMatcher(new GNC::GCS::Matcher()); studyMatcher->getMatchingCriteria()[GKDCM_ModalitiesInStudy] = ""; studyMatcher->getMatchingCriteria()[GKDCM_StudyDescription] = ""; hangingProtocol->setStudyMatcher(studyMatcher); //add new layout... GNC::GCS::Ptr layout(new GNC::GCS::Layout()); hangingProtocol->addLayout(layout); } else { return wxID_CANCEL; } } InitPanels(); return EditHangingProtocolDialogBase::ShowModal(); } void InitPanels() { editStudyCriteriaPanel = new EditCriteriaPanel(m_pGeneralPanel); m_pSizerStudyCriteria->Add(editStudyCriteriaPanel, 1, wxEXPAND|wxALL, 5); //fillin hanging... m_textOpeningMode->SetValue(wxT("Unknown")); hangingSupportLevel = GNC::GCS::ModoControlador::THSL_ONLY_1x1; GNC::GCS::IModuleController* pModule = GNC::ControladorExtensiones::Instance()->ObtenerModulo(hangingProtocol->getModuleSid()); if (pModule != NULL) { GNC::GCS::ModoControlador* pController = pModule->GetModo(hangingProtocol->getOpeningMode()); if (pController != NULL) { m_textOpeningMode->SetValue(wxString::FromUTF8(pController->GetDescripcion().c_str())); hangingSupportLevel = pController->GetHangingSupportLevel(); } } for (GNC::GCS::HangingProtocol::TListOfLayouts::const_iterator it = hangingProtocol->getLayouts().begin(); it != hangingProtocol->getLayouts().end(); ++it) { if ((*it).IsValid()) { StudyWindow* sw = new StudyWindow(m_pNoteBookWindows, (*it)); m_pNoteBookWindows->InsertPage(m_pNoteBookWindows->GetPageCount() - 1, sw, wxString::Format(_("Window %d"), (int) m_pNoteBookWindows->GetPageCount())); sw->InitPanels(hangingSupportLevel); } } m_pNoteBookWindows->SetSelection(0); m_textName->SetValue(wxString::FromUTF8(hangingProtocol->getName().c_str())); this->editStudyCriteriaPanel->loadMatcher(hangingProtocol->getStudyMatcher()); m_pNoteBookWindows->Layout(); m_pGeneralPanel->Layout(); m_pMainNoteBook->Layout(); Layout(); } GNC::GCS::Ptr& getHangingProtocol() { this->hangingProtocol->clearLayouts(); this->hangingProtocol->setName(std::string(m_textName->GetValue().ToUTF8())); GNC::GCS::Ptr pStudyMatcher(new GNC::GCS::Matcher()); editStudyCriteriaPanel->updateMatcher(pStudyMatcher); this->hangingProtocol->setStudyMatcher(pStudyMatcher); for (unsigned i = 0; i < m_pNoteBookWindows->GetPageCount(); ++i) { wxWindow* pWin = m_pNoteBookWindows->GetPage(i); StudyWindow* sw = dynamic_cast (pWin); if (sw != NULL) { GNC::GCS::Ptr pLayout = sw->GetLayout(); if (pLayout.IsValid()) { this->hangingProtocol->addLayout(pLayout); } } } return this->hangingProtocol; } protected: virtual void OnPageChanging( wxAuiNotebookEvent& event ) { if (event.GetSelection() == ((int)m_pNoteBookWindows->GetPageCount() -1)) { if (event.GetOldSelection() < 0) { //if comes from page closing m_pNoteBookWindows->SetSelection(m_pNoteBookWindows->GetPageCount() - 2); } else { if (hangingSupportLevel == GNC::GCS::ModoControlador::THSL_FULL) { StudyWindow* sw = new StudyWindow(m_pNoteBookWindows); m_pNoteBookWindows->InsertPage(m_pNoteBookWindows->GetPageCount() - 1,sw, wxString::Format(_("Window %d"), (int) m_pNoteBookWindows->GetPageCount()), true); sw->InitPanels(hangingSupportLevel); m_pNoteBookWindows->Layout(); } else { wxMessageBox(_("This view doesn't support multiple windows"),_("Info"),wxOK | wxICON_INFORMATION, this); } } event.Veto(); } else { event.Skip(); } } virtual void OnPageClose( wxAuiNotebookEvent& event ) { if (m_pNoteBookWindows->GetPageCount() <= 2) { event.Veto(); } else { event.Skip(); } } GNC::GCS::ModoControlador::T_HangingProtocolSupportLevel hangingSupportLevel; EditCriteriaPanel* editStudyCriteriaPanel; GNC::GCS::Ptr hangingProtocol; }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class wxHangingClientData: public wxClientData { public: wxHangingClientData(const GNC::GCS::Ptr& hp): hangingProtocol(hp) { } virtual ~wxHangingClientData() { } GNC::GCS::Ptr hangingProtocol; }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// HangingProtocolConfigurationPanel::HangingProtocolConfigurationPanel(wxWindow* pParent,IDialogoConfiguracion* pDialogo): HangingProtocolConfigurationPanelBase(pParent), IPasoConfiguracion(pDialogo) { wxColour barColor = wxColour(200,200,200); wxFont fontBar = wxFont( 10, 70, 90, wxFONTWEIGHT_BOLD, false, wxEmptyString ); m_pModel = new wxDataViewListStore(); m_pListHanging->AssociateModel(m_pModel.get()); m_pListHanging->AppendColumn( new wxDataViewColumn( _("Name"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), COL_HP_NAME, 200, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListHanging->AppendColumn( new wxDataViewColumn( _("Active"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), COL_HP_ACTIVE, 150, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListHanging->Connect(wxEVT_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( HangingProtocolConfigurationPanel::OnHangingListDClick ), NULL, this ); m_pListHanging->Connect(wxEVT_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( HangingProtocolConfigurationPanel::OnHangingListChangeSelection ), NULL, this ); Recargar(); } HangingProtocolConfigurationPanel::~HangingProtocolConfigurationPanel() { wxDataViewItemArray children; m_pModel->GetChildren(wxDataViewItem(NULL), children); wxVariant val; for (wxDataViewItemArray::iterator it = children.begin(); it != children.end(); ++it) { m_pModel->GetValue(val, (*it), COL_HP_CLIENT_DATA); delete (wxHangingClientData*)(val.GetVoidPtr()); } } void HangingProtocolConfigurationPanel::Recargar() { std::list > listOfProtocols = GNC::GCS::HangingProtocolController::Instance()->getHangingProtocols(); bool primero =true; wxVector data; for (std::list >::iterator it = listOfProtocols.begin(); it != listOfProtocols.end(); ++it) { data.clear(); data.push_back(wxString::FromUTF8((*it)->getName().c_str())); if ((*it)->isActive()) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } data.push_back(new wxHangingClientData((*it))); m_pModel->AppendItem(data); if(primero) { m_pListHanging->SelectRow(0); m_pBEdit->Enable(true); m_pBDelete->Enable(true); m_pBActive->Enable(true); primero = false; } } } //region "Metodos de IPasoConfiguracion" wxWindow* HangingProtocolConfigurationPanel::GetPanel() { return this; } std::string HangingProtocolConfigurationPanel::GetTitle() { return _Std("Hanging protocols"); } std::string HangingProtocolConfigurationPanel::GetCabecera() { return _Std("Hanging protocols"); } bool HangingProtocolConfigurationPanel::Validar() { bool ok = true; return ok; } bool HangingProtocolConfigurationPanel::Guardar() { //get hanging protocols... std::list > listOfProtocols; wxVariant value; for (unsigned int i = 0; i< m_pModel->GetItemCount(); i++) { m_pModel->GetValueByRow(value, i, COL_HP_CLIENT_DATA); listOfProtocols.push_back(((wxHangingClientData*)value.GetVoidPtr())->hangingProtocol); } GNC::GCS::HangingProtocolController::Instance()->setHangingProtocols(listOfProtocols); return true; } //endregion void HangingProtocolConfigurationPanel::OnHangingListDClick(wxDataViewEvent& ) { Edit(); } void HangingProtocolConfigurationPanel::OnHangingListChangeSelection(wxDataViewEvent& event) { if(event.GetItem().IsOk()) { m_pBEdit->Enable(true); m_pBDelete->Enable(true); m_pBActive->Enable(true); } else { m_pBEdit->Enable(false); m_pBDelete->Enable(false); m_pBActive->Enable(false); } } void HangingProtocolConfigurationPanel::OnSetActive(wxCommandEvent &) { wxDataViewItem selection = m_pListHanging->GetSelection(); if (selection.IsOk()) { wxVariant value; m_pModel->GetValue(value, selection, COL_HP_CLIENT_DATA); GNC::GCS::Ptr& hp = ((wxHangingClientData*)value.GetVoidPtr())->hangingProtocol; hp->setActive(!hp->isActive()); if (hp->isActive()) { m_pListHanging->SetValue( _("Yes"), m_pModel->GetRow(selection), COL_HP_ACTIVE); } else { m_pListHanging->SetValue( _("No"), m_pModel->GetRow(selection), COL_HP_ACTIVE); } OnPropiedadCambiada(); } } void HangingProtocolConfigurationPanel::OnNuevoClick(wxCommandEvent &) { EditHangingProtocolDialog dlg(this); if (dlg.ShowModal() == wxID_OK) { GNC::GCS::Ptr hp = dlg.getHangingProtocol(); wxVector data; data.push_back(wxString::FromUTF8(hp->getName().c_str())); if (hp->isActive()) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } data.push_back(new wxHangingClientData(hp)); m_pModel->AppendItem(data); OnPropiedadCambiada(); } } void HangingProtocolConfigurationPanel::OnEditarClick(wxCommandEvent &) { Edit(); } void HangingProtocolConfigurationPanel::Edit() { wxDataViewItem selection = m_pListHanging->GetSelection(); if (selection.IsOk()) { wxVariant value; m_pModel->GetValue(value, selection, COL_HP_CLIENT_DATA); EditHangingProtocolDialog dlg(this, ((wxHangingClientData*)value.GetVoidPtr())->hangingProtocol); if (dlg.ShowModal() == wxID_OK) { GNC::GCS::Ptr hp = dlg.getHangingProtocol(); if (hp->isActive()) { m_pListHanging->SetValue( _("Yes"), m_pModel->GetRow(selection), COL_HP_ACTIVE); } else { m_pListHanging->SetValue( _("No"), m_pModel->GetRow(selection), COL_HP_ACTIVE); } m_pListHanging->SetValue( wxString::FromUTF8(hp->getName().c_str()), m_pModel->GetRow(selection), COL_HP_NAME); ((wxHangingClientData*)value.GetVoidPtr())->hangingProtocol = dlg.getHangingProtocol(); OnPropiedadCambiada(); } } } void HangingProtocolConfigurationPanel::OnEliminarClick(wxCommandEvent &) { wxDataViewItem selection = m_pListHanging->GetSelection(); if (selection.IsOk()) { wxVariant value; m_pModel->GetValue(value, selection, COL_HP_CLIENT_DATA); delete (wxHangingClientData*)value.GetVoidPtr(); m_pModel->DeleteItem(m_pListHanging->GetSelectedRow()); OnPropiedadCambiada(); } } void HangingProtocolConfigurationPanel::OnPropiedadCambiada() { IPasoConfiguracion::OnPropiedadCambiada(); } void HangingProtocolConfigurationPanel::OnTextoCambiado(wxCommandEvent & ) { } void HangingProtocolConfigurationPanel::OnSize(wxSizeEvent & event) { event.Skip(true); } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/hangingprotocolconfigurationpanel.h000066400000000000000000000040361314736454600312140ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "panelesconfiguracionginkgobase.h" #include #include namespace GNC { namespace GCS { class HangingProtocol; } namespace GUI { class HangingProtocolConfigurationPanel: public HangingProtocolConfigurationPanelBase, public IPasoConfiguracion { public: HangingProtocolConfigurationPanel(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~HangingProtocolConfigurationPanel(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion protected: virtual void OnHangingListDClick(wxDataViewEvent& event); virtual void OnHangingListChangeSelection(wxDataViewEvent& event); virtual void OnSetActive(wxCommandEvent &event); virtual void OnNuevoClick(wxCommandEvent &event); virtual void OnEditarClick(wxCommandEvent &event); void Edit(); virtual void OnEliminarClick(wxCommandEvent &event); virtual void OnTextoCambiado(wxCommandEvent &event ); virtual void OnPropiedadCambiada(); void OnSize(wxSizeEvent &); wxObjectDataPtr m_pModel; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/localdatabaseconfigurationpanel.cpp000066400000000000000000000311251314736454600311300ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
    #include #include #include #include #include #include #include "localdatabaseconfigurationpanel.h" #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include #include namespace GNC { namespace GUI { LocalDatabaseConfigurationPanel::LocalDatabaseConfigurationPanel(wxWindow* pParent,IDialogoConfiguracion* pDialogo): LocalDatabaseConfigurationPanelBase(pParent), IPasoConfiguracion(pDialogo) { if (GNC::GCS::ControladorVistas::Instance()->GetVistas().size() > 0) { m_pDICOMDir->Enable(false); m_buttonSeleccionarDICOMDir->Enable(false); m_pstaticTextAdvertencia->Show(true); } else { m_pstaticTextAdvertencia->Show(false); } m_mapTimePeriods[1] = _Std("One day"); m_mapTimePeriods[2] = _Std("Two days"); m_mapTimePeriods[3] = _Std("Three days"); m_mapTimePeriods[7] = _Std("One week"); m_mapTimePeriods[14] = _Std("Two weeks"); m_mapTimePeriods[30] = _Std("One month"); m_mapTimePeriods[90] = _Std("Three months"); m_mapTimePeriods[365] = _Std("One year"); for (std::map::const_iterator it = m_mapTimePeriods.begin(); it != m_mapTimePeriods.end(); ++it) { m_pChoiceDeleteOlder->AppendString(wxString::FromUTF8((*it).second.c_str())); } m_pChoiceDeleteOlder->SetSelection(6); Recargar(); Layout(); } LocalDatabaseConfigurationPanel::~LocalDatabaseConfigurationPanel() { } void LocalDatabaseConfigurationPanel::Recargar() { std::string dicomDir; if(!GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Estacion","DicomDir", dicomDir)) { m_pathDicomDir = FROMPATH(GNC::GCS::HistoryController::Instance()->GetGinkgoDicomDir()); } else { m_pathDicomDir = wxString::FromUTF8(dicomDir.c_str()); } m_pDICOMDir->SetValue(m_pathDicomDir); //autocleaning dicomdir int tmp; //older than... GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/Station/CleanDicomDir", "AcquisitionOlderThan", tmp, -1); if (tmp > 0) { int i = 0; for (std::map::const_iterator it = m_mapTimePeriods.begin(); it != m_mapTimePeriods.end(); ++it,i++) { if ((*it).first == tmp) { m_pChoiceDeleteOlder->SetSelection(i); break; } } m_pChoiceDeleteOlder->Enable(true); m_pCheckDeleteOlder->SetValue(true); } else { m_pChoiceDeleteOlder->Enable(false); m_pCheckDeleteOlder->SetValue(false); } //hdFreeSpace... GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/Station/CleanDicomDir", "HDFreeSpace", tmp, -1); if (tmp > 0) { m_pSpinHDSpace->SetValue(tmp); m_pSpinHDSpace->Enable(true); m_pCheckHDFreeSpace->SetValue(true); } else { m_pSpinHDSpace->Enable(false); m_pCheckHDFreeSpace->SetValue(false); } //DicomDirSize... GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/Station/CleanDicomDir", "DicomDirSize", tmp, -1); if (tmp > 0) { m_pSpinDicomDirSize->SetValue(tmp); m_pSpinDicomDirSize->Enable(true); m_pCheckDicomDirSize->SetValue(true); } else { m_pSpinDicomDirSize->Enable(false); m_pCheckDicomDirSize->SetValue(false); } } //region "Metodos de IPasoConfiguracion" wxWindow* LocalDatabaseConfigurationPanel::GetPanel() { return this; } std::string LocalDatabaseConfigurationPanel::GetTitle() { return _Std("Local database"); } std::string LocalDatabaseConfigurationPanel::GetCabecera() { return _Std("Local DICOM Dir setup"); } bool LocalDatabaseConfigurationPanel::Validar() { wxString path = m_pDICOMDir->GetValue(); wxFileName fileName(path); if(!fileName.IsAbsolute()) { wxFileName pathOfExec(wxStandardPaths::Get().GetExecutablePath()); fileName.MakeAbsolute(pathOfExec.GetPath()); path = fileName.GetFullPath(); } if(!wxDir::Exists(path)) { //se pregunta si desea crearlo int answer = wxMessageBox(_("The selected directory does not exist\nWould you like to create it?"),_("Info"),wxYES_NO,this); if(answer == wxNO) { return false; } else { bool success; #ifdef _WIN32 success = wxMkdir(path,511); #else success = (wxMkDir(path.ToUTF8(), 0770) == 0); #endif if(!success || !wxDirExists(path)) { wxMessageBox(_("Failed to create directory, make sure the path is correct and you have permissions on parent directory"), _("Info")); return false; } } } else { //se comprueba que puede escribir(escribimos y borramos un fichero chorra) wxString pathFicheroPrueba = path + wxFileName::GetPathSeparator() + wxString::Format(wxT("%d"), (int) rand()); while(wxFileExists(pathFicheroPrueba)) { pathFicheroPrueba = path + wxFileName::GetPathSeparator() + wxString::Format(wxT("%d"), (int) rand()); } { wxFile ficheroTmp; if(!ficheroTmp.Create(pathFicheroPrueba,false)) { if(!wxFileExists(pathFicheroPrueba) ) { wxMessageBox(_("There was an error reading the directory, make sure you have write permissions on it"), _("Info")); return false; } } ficheroTmp.Write(wxT("prueba")); ficheroTmp.Close(); } wxRemoveFile(pathFicheroPrueba); } return true; } bool LocalDatabaseConfigurationPanel::Guardar() { //se actualiza el fichero de configuracion wxFileName dirAnterior(m_pathDicomDir); wxFileName dirNuevo(m_pDICOMDir->GetValue()); if(dirAnterior != dirNuevo) { GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Estacion", "DicomDir",std::string(m_pDICOMDir->GetValue().ToUTF8())); //se vacia el dicomdir actual y se carga el nuevo... GNC::GCS::HistoryController::FreeInstance(); if (!GNC::GCS::HistoryController::Instance()->IsOk()) { //revert changes.... GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Estacion", "DicomDir", std::string(m_pathDicomDir.ToUTF8())); //se vacia el dicomdir actual y se carga el nuevo... GNC::GCS::HistoryController::FreeInstance(); } GNC::GUI::HistoryPanel3::Instance()->ReloadHistory(); } //dicomdir auto cleaning //older than... int tmp = -1; if (m_pChoiceDeleteOlder->IsEnabled()) { for (std::map::const_iterator it = m_mapTimePeriods.begin(); it != m_mapTimePeriods.end(); ++it) { if (wxString::FromUTF8((*it).second.c_str()).CompareTo(m_pChoiceDeleteOlder->GetString(m_pChoiceDeleteOlder->GetSelection())) == 0) { tmp = (*it).first; break; } } } GNC::GCS::ConfigurationController::Instance()->writeIntUser("/GinkgoCore/Station/CleanDicomDir", "AcquisitionOlderThan", tmp); //hdFreeSpace... tmp = -1; if (m_pSpinHDSpace->IsEnabled()) { tmp = m_pSpinHDSpace->GetValue(); } GNC::GCS::ConfigurationController::Instance()->writeIntUser("/GinkgoCore/Station/CleanDicomDir", "HDFreeSpace", tmp); //DicomDirSize... tmp = -1; if (m_pSpinDicomDirSize->IsEnabled()) { tmp = m_pSpinDicomDirSize->GetValue(); } GNC::GCS::ConfigurationController::Instance()->writeIntUser("/GinkgoCore/Station/CleanDicomDir", "DicomDirSize", tmp); GNC::GCS::AutoCleaningController::Instance()->Reset(); return true; } //endregion void LocalDatabaseConfigurationPanel::OnTextoCambiado(wxCommandEvent &) { if(IsShown()) { OnPropiedadCambiada(); } } void LocalDatabaseConfigurationPanel::OnSeleccionarDirectorio(wxCommandEvent &) { wxDirDialog seleccionarDirectorio(this,_("Select DICOMDIR"),m_pDICOMDir->GetValue(),wxDD_DEFAULT_STYLE|wxDD_NEW_DIR_BUTTON); int response = seleccionarDirectorio.ShowModal(); if (response == wxID_OK) { m_pDICOMDir->SetValue(seleccionarDirectorio.GetPath()); } } void LocalDatabaseConfigurationPanel::OnSize(wxSizeEvent & event) { wxSize oldSize = m_pstaticTextAdvertencia->GetSize(); Freeze(); m_pstaticTextAdvertencia->Freeze(); m_pstaticTextAdvertencia->SetLabel(_("Warning, to update the directory, you must close current opened series.")); m_pstaticTextAdvertencia->Wrap( event.GetSize().x - 25 ); m_pstaticTextAdvertencia->Thaw(); Thaw(); wxSize newSize = m_pstaticTextAdvertencia->GetSize(); if (newSize != oldSize) { Layout(); event.Skip(false); } else { event.Skip(true); } } void LocalDatabaseConfigurationPanel::OnCheckOlderStudies( wxCommandEvent& event ) { m_pChoiceDeleteOlder->Enable(m_pCheckDeleteOlder->GetValue()); OnPropiedadCambiada(); event.Skip(true); } void LocalDatabaseConfigurationPanel::OnCheckDicomDirSize(wxCommandEvent& event) { m_pSpinDicomDirSize->Enable(m_pCheckDicomDirSize->GetValue()); OnPropiedadCambiada(); event.Skip(true); } void LocalDatabaseConfigurationPanel::OnCheckHDSpace(wxCommandEvent& event) { m_pSpinHDSpace->Enable(m_pCheckHDFreeSpace->GetValue()); OnPropiedadCambiada(); event.Skip(true); } void LocalDatabaseConfigurationPanel::OnSpinCtrl(wxSpinEvent& /*evt*/) { OnPropiedadCambiada(); } void LocalDatabaseConfigurationPanel::OnOptionModified(wxCommandEvent& /*evt*/) { OnPropiedadCambiada(); } void LocalDatabaseConfigurationPanel::OnResetToDefault(wxCommandEvent& /*evt*/) { m_pDICOMDir->SetValue(FROMPATH(GNC::GCS::HistoryController::Instance()->GetDefaultDicomDirPath(true))); m_pCheckDeleteOlder->SetValue(false); m_pCheckHDFreeSpace->SetValue(false); m_pCheckDicomDirSize->SetValue(false); m_pChoiceDeleteOlder->Enable(m_pCheckDeleteOlder->GetValue()); m_pSpinDicomDirSize->Enable(m_pCheckDicomDirSize->GetValue()); m_pSpinHDSpace->Enable(m_pCheckHDFreeSpace->GetValue()); OnPropiedadCambiada(); } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/localdatabaseconfigurationpanel.h000066400000000000000000000040011314736454600305660ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include "panelesconfiguracionginkgobase.h" namespace GNC { namespace GUI { class LocalDatabaseConfigurationPanel : public LocalDatabaseConfigurationPanelBase, public IPasoConfiguracion { public: LocalDatabaseConfigurationPanel(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~LocalDatabaseConfigurationPanel(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion protected: wxString m_pathDicomDir; void OnTextoCambiado(wxCommandEvent &event); void OnSeleccionarDirectorio(wxCommandEvent &event); void OnSize(wxSizeEvent& event); virtual void OnCheckOlderStudies( wxCommandEvent& event ); virtual void OnCheckDicomDirSize(wxCommandEvent& event); virtual void OnCheckHDSpace(wxCommandEvent& event); virtual void OnSpinCtrl(wxSpinEvent &evt); virtual void OnOptionModified(wxCommandEvent& evt); virtual void OnResetToDefault(wxCommandEvent& evt); std::map m_mapTimePeriods; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionestacion.cpp000066400000000000000000000116521314736454600301400ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
    #include #include #include #include #include #include "panelconfiguracionestacion.h" #include
    #include
    #include
    #include
    #include
    #include #include namespace GNC { namespace GUI { PanelConfiguracionEstacion::PanelConfiguracionEstacion(wxWindow* pParent,IDialogoConfiguracion* pDialogo): PanelConfiguracionEstacionBase(pParent), IPasoConfiguracion(pDialogo) { Recargar(); Layout(); } PanelConfiguracionEstacion::~PanelConfiguracionEstacion() { } void PanelConfiguracionEstacion::Recargar() { std::string strTmp; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Estacion","NombreMedico",strTmp); m_pMedicoNombre->SetValue(wxString::FromUTF8(strTmp.c_str())); GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Estacion","IdMedico",strTmp); m_pMedicoId->SetValue(wxString::FromUTF8(strTmp.c_str())); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/Estacion","NombreServicio",strTmp); m_pServicioNombre->SetValue(wxString::FromUTF8(strTmp.c_str())); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/Estacion","IdServicio",strTmp); m_pServicioId->SetValue(wxString::FromUTF8(strTmp.c_str())); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/Estacion","CentroNombre",strTmp); m_pCentroNombre->SetValue(wxString::FromUTF8(strTmp.c_str())); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/Estacion","CentroId",strTmp); m_pCentroId->SetValue(wxString::FromUTF8(strTmp.c_str())); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/Estacion","DefaultCharset",strTmp,"ISO_IR 100"); int selection = m_pComboCharset->FindString(wxString::FromUTF8(strTmp.c_str())); m_pComboCharset->SetSelection((selection>0)?selection:0); } //region "Metodos de IPasoConfiguracion" wxWindow* PanelConfiguracionEstacion::GetPanel() { return this; } std::string PanelConfiguracionEstacion::GetTitle() { return _Std("Workstation"); } std::string PanelConfiguracionEstacion::GetCabecera() { return _Std("Configuration parameters of the local station"); } bool PanelConfiguracionEstacion::Validar() { return true; } bool PanelConfiguracionEstacion::Guardar() { GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Estacion","NombreMedico",std::string(m_pMedicoNombre->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Estacion","IdMedico",std::string(m_pMedicoId->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/Estacion","IdServicio",std::string(m_pServicioId->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/Estacion","NombreServicio",std::string(m_pServicioNombre->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/Estacion","CentroNombre",std::string(m_pCentroNombre->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/Estacion","CentroId",std::string(m_pCentroId->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/Estacion","DefaultCharset",std::string(m_pComboCharset->GetValue().ToUTF8())); return true; } //endregion void PanelConfiguracionEstacion::OnTextoCambiado(wxCommandEvent &) { if(IsShown()) { OnPropiedadCambiada(); } } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionestacion.h000066400000000000000000000027401314736454600276030ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include "panelesconfiguracionginkgobase.h" namespace GNC { namespace GUI { class PanelConfiguracionEstacion : public PanelConfiguracionEstacionBase, public IPasoConfiguracion { public: PanelConfiguracionEstacion(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~PanelConfiguracionEstacion(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion protected: void OnTextoCambiado(wxCommandEvent &event); void OnSize(wxSizeEvent& event); }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionextensiones.cpp000066400000000000000000000111101314736454600306640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
    #include #include #include #include #include #include #include #include #include #include "panelconfiguracionextensiones.h" #include #include
    #include
    #include
    #include #define COLUMNA_EXTENSION 0 #define COLUMNA_ACTIVATED 1 #define COLUMNA_VERSION 2 #define COLUMNA_FECHA_COMPILACION 3 #define COLUMNA_PROVEEDOR 4 #define COLUMNA_DESCRIPCION 5 inline wxBitmap _wxConvertMemoryToBitmap(const unsigned char* data, int length, wxBitmapType type = wxBITMAP_TYPE_ANY ) { wxMemoryInputStream stream( data, length ); return wxBitmap( wxImage( stream, type, -1), -1 );; } namespace GNC { namespace GUI { class ExtensionPanel: public ExtensionPanelBase { public: ExtensionPanel(wxWindow* pParent, GADVAPI::IPrivateExtensionWrapper* pExtension, PanelConfiguracionExtensiones* pConfigPanel): ExtensionPanelBase(pParent) { m_pExtension = pExtension; m_pConfigPanel = pConfigPanel; m_pThumbnail->SetBackgroundColour(this->GetBackgroundColour()); m_pLabelTitle->SetLabel(wxString::FromUTF8(pExtension->GetDescription().c_str())); if (!pExtension->GetExtension()->GetIcon().IsOk()) { //default icon m_pThumbnail->SetBitmap(GinkgoResourcesManager::Logos::GetExtensionsLogo()); } else { //load icon m_pThumbnail->SetBitmap(pExtension->GetExtension()->GetIcon()); } Layout(); } ~ExtensionPanel() { } GADVAPI::IPrivateExtensionWrapper* m_pExtension; PanelConfiguracionExtensiones* m_pConfigPanel; }; PanelConfiguracionExtensiones::PanelConfiguracionExtensiones(wxWindow* pParent,IDialogoConfiguracion* pDialogo): PanelConfiguracionExtensionesBase(pParent), IPasoConfiguracion(pDialogo) { m_hasBeenChanged = false; Recargar(); } PanelConfiguracionExtensiones::~PanelConfiguracionExtensiones() { } void PanelConfiguracionExtensiones::Recargar() { GADVAPI::PrivateExtensionManager& mgr = GNC::ControladorExtensiones::Instance()->GetPrivateExtensionsManager(); //mgr.Reload(); m_pScrollPanelExtensions->DestroyChildren(); for (GADVAPI::PrivateExtensionManager::iterator it = mgr.begin(); it != mgr.end(); ++it) { ExtensionPanel* pPanel = new ExtensionPanel(m_pScrollPanelExtensions, (*it).second, this); m_pScrollPanelExtensions->GetSizer()->Add(pPanel, 0, wxEXPAND| wxALL, 0); } m_pScrollPanelExtensions->Layout(); } //region "Metodos de IPasoConfiguracion" wxWindow* PanelConfiguracionExtensiones::GetPanel() { return this; } std::string PanelConfiguracionExtensiones::GetTitle() { return _Std("Extensions"); } std::string PanelConfiguracionExtensiones::GetCabecera() { return _Std("Extensions settings"); } bool PanelConfiguracionExtensiones::Validar() { if(m_hasBeenChanged) { wxMessageBox(_("Ginkgo CADx must restart for the extensions changes to take effect"),_("Info")); } return true; } bool PanelConfiguracionExtensiones::Guardar() { return true; } //endregion void PanelConfiguracionExtensiones::OnPropiedadCambiada() { m_hasBeenChanged = true; IPasoConfiguracion::OnPropiedadCambiada(); } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionextensiones.h000066400000000000000000000027751314736454600303520ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "panelesconfiguracionginkgobase.h" #include #include namespace GNC { namespace GUI { class PanelConfiguracionExtensiones: public PanelConfiguracionExtensionesBase, public IPasoConfiguracion { public: PanelConfiguracionExtensiones(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~PanelConfiguracionExtensiones(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion virtual void OnPropiedadCambiada(); protected: void OnSize(wxSizeEvent &); bool m_hasBeenChanged; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguraciongeneral.cpp000066400000000000000000000235051314736454600277500ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
    #include #include #include #include #include #include #include "panelconfiguraciongeneral.h" #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include #include #include
    namespace GNC { namespace GUI { class ProxySettingsDialog: public ProxySettingsDialogBase { public: ProxySettingsDialog(wxWindow* pParent): ProxySettingsDialogBase(pParent) { } ~ProxySettingsDialog() { } void SetProxySettings(const GNC::GCS::ProxySettings& settings) { m_pHost->SetValue(wxString::FromUTF8(settings.hostName.c_str())); m_pPort->SetValue(wxString::Format(wxT("%d"), settings.port)); m_pCheckAuthentication->SetValue(settings.requiresAuth); m_pUsername->SetValue(wxString::FromUTF8(settings.userName.c_str())); m_pPassword->SetValue(wxString::FromUTF8(settings.password.c_str())); m_pUsername->Enable(settings.requiresAuth); m_pPassword->Enable(settings.requiresAuth); m_pExceptions->SetValue(wxString::FromUTF8(settings.exceptions.c_str())); } GNC::GCS::ProxySettings GetProxySettings() { GNC::GCS::ProxySettings settings; settings.exceptions = m_pExceptions->GetValue().ToUTF8(); settings.hostName = m_pHost->GetValue().ToUTF8(); long portTmp; m_pPort->GetValue().ToLong(&portTmp); settings.port = (int)portTmp; settings.requiresAuth = m_pCheckAuthentication->IsChecked(); if (settings.requiresAuth) { settings.password = m_pPassword->GetValue().ToUTF8(); settings.userName = m_pUsername->GetValue().ToUTF8(); } settings.useProxy = true; return settings; } virtual void OnCheckAuthentication(wxCommandEvent &/*evt*/) { m_pUsername->Enable(m_pCheckAuthentication->IsChecked()); m_pPassword->Enable(m_pCheckAuthentication->IsChecked()); } virtual void OnOkClick(wxCommandEvent& evt) { long port; if (!m_pPort->GetValue().ToLong(&port)) { wxMessageBox(_("Port has to be a valid number"),_("Info")); evt.Skip(false); } EndModal(wxID_OK); } }; PanelConfiguracionGeneral::PanelConfiguracionGeneral(wxWindow* pParent,IDialogoConfiguracion* pDialogo): PanelConfiguracionGeneralBase(pParent), IPasoConfiguracion(pDialogo) { m_idiomaCambiado = false; pProxySettings = new GNC::GCS::ProxySettings(); Recargar(); #ifdef GINKGO_PRO m_pCheckAnonUsageStats->Show(); #else m_pCheckAnonUsageStats->Show(false); #endif m_pUpdate->Layout(); Layout(); } PanelConfiguracionGeneral::~PanelConfiguracionGeneral() { delete pProxySettings; } void PanelConfiguracionGeneral::Recargar() { //check for updates bool check; GNC::GCS::ConfigurationController::Instance()->readBoolGeneral("/GinkgoCore/Estacion", "CheckForUpdates", check, true); m_pCheckForUpdates->SetValue(check); //internacionalizacion int language; GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/Station", "Language", language); //explore lang directory to find installed languages { m_pComboLanguage->Clear(); m_mapLanguages.clear(); m_mapLanguages[_Std("Default")] = -1; m_mapLanguages["English"] = (int)wxLANGUAGE_ENGLISH; wxString wxDirPath = FROMPATH(GNC::Entorno::Instance()->GetGinkgoLanguageDir()); wxDir dir; if (dir.Open(wxDirPath)) { wxString wxPathLang; bool cont = dir.GetFirst(&wxPathLang,wxEmptyString, wxDIR_DIRS); while (cont) { const wxLanguageInfo* pInfo = wxLocale::FindLanguageInfo(wxPathLang); if (pInfo != NULL) { m_mapLanguages[std::string(pInfo->Description.ToUTF8())] = pInfo->Language; } cont = dir.GetNext(&wxPathLang); } } for (TMapLanguages::iterator it = m_mapLanguages.begin(); it != m_mapLanguages.end(); ++it) { int position = m_pComboLanguage->Append(wxString::FromUTF8((*it).first.c_str())); if ((*it).second == language) { m_pComboLanguage->Select(position); } } if (m_pComboLanguage->GetSelection() == -1) { m_pComboLanguage->Select(m_pComboLanguage->FindString(_("Default"))); } } //anon usage #ifdef GINKGO_PRO bool anonUsage; GNC::GCS::ConfigurationController::Instance()->readBoolGeneral("/GinkgoCore/General", "AnonUsageStats", anonUsage, false); m_pCheckAnonUsageStats->SetValue(anonUsage); #endif //proxy Settings { *pProxySettings = GNC::GCS::ConfigurationController::Instance()->GetProxySettings(); m_pEnableProxy->SetValue(pProxySettings->useProxy); m_pProxySettingsButton->Enable(pProxySettings->useProxy); } } //region "Metodos de IPasoConfiguracion" wxWindow* PanelConfiguracionGeneral::GetPanel() { return this; } std::string PanelConfiguracionGeneral::GetTitle() { return _Std("General"); } std::string PanelConfiguracionGeneral::GetCabecera() { return _Std("General configuration parameters"); } bool PanelConfiguracionGeneral::Validar() { if(m_idiomaCambiado) { wxMessageBox(_("Ginkgo CADx must restart for the changes to take effect"),_("Info")); } return true; } bool PanelConfiguracionGeneral::Guardar() { GNC::GCS::ConfigurationController::Instance()->writeBoolGeneral("/GinkgoCore/Estacion", "CheckForUpdates", m_pCheckForUpdates->GetValue()); //internacionalizacion if (m_pComboLanguage->GetStringSelection() != _("Default")) { std::string selectedLanguage(m_pComboLanguage->GetStringSelection().ToUTF8()); for (TMapLanguages::iterator it = m_mapLanguages.begin(); it != m_mapLanguages.end(); ++it) { if ((*it).first == selectedLanguage) { GNC::GCS::ConfigurationController::Instance()->writeIntUser("/GinkgoCore/Station", "Language", (*it).second); break; } } } else { GNC::GCS::ConfigurationController::Instance()->deleteEntryUser("/GinkgoCore/Station", "Language"); } //anon usage #ifdef GINKGO_PRO GNC::GCS::ConfigurationController::Instance()->writeBoolGeneral("/GinkgoCore/General", "AnonUsageStats", m_pCheckAnonUsageStats->GetValue()); GNC::GCS::ConfigurationController::Instance()->Flush(); GNC::GCS::AnonUsageStats::Instance()->resetSettings(); #endif //proxy GNC::GCS::ConfigurationController::Instance()->SetProxySettings(*pProxySettings); return true; } //endregion void PanelConfiguracionGeneral::OnCheckForUpdates(wxCommandEvent &) { if(IsShown()) { OnPropiedadCambiada(); } } void PanelConfiguracionGeneral::OnTextoCambiado(wxCommandEvent &) { if(IsShown()) { OnPropiedadCambiada(); } } void PanelConfiguracionGeneral::OnIdiomaCambiado(wxCommandEvent &) { if(IsShown()) { OnPropiedadCambiada(); m_idiomaCambiado = true; } } void PanelConfiguracionGeneral::OnProxySettings(wxCommandEvent &) { ProxySettingsDialog dlg(this); dlg.SetProxySettings(*pProxySettings); if (dlg.ShowModal() == wxID_OK) { *pProxySettings = dlg.GetProxySettings(); OnPropiedadCambiada(); } } void PanelConfiguracionGeneral::OnCheckEnableProxySettings(wxCommandEvent &) { m_pProxySettingsButton->Enable(m_pEnableProxy->IsChecked()); pProxySettings->useProxy = m_pEnableProxy->IsChecked(); OnPropiedadCambiada(); } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguraciongeneral.h000066400000000000000000000036531314736454600274170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include "panelesconfiguracionginkgobase.h" namespace GNC { namespace GCS { class ProxySettings; } namespace GUI { class PanelConfiguracionGeneral : public PanelConfiguracionGeneralBase, public IPasoConfiguracion { public: PanelConfiguracionGeneral(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~PanelConfiguracionGeneral(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion protected: wxString m_pathDicomDir; void OnCheckForUpdates(wxCommandEvent &event); void OnTextoCambiado(wxCommandEvent &event); void OnIdiomaCambiado(wxCommandEvent &event); virtual void OnProxySettings(wxCommandEvent &event); virtual void OnCheckEnableProxySettings(wxCommandEvent &event); bool m_idiomaCambiado; typedef std::map TMapLanguages; TMapLanguages m_mapLanguages; GNC::GCS::ProxySettings* pProxySettings; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionhce.cpp000066400000000000000000000145701314736454600270740ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include
    #include #include #include #include #include #include #include #include #ifndef _WIN32 #include #endif #include "panelconfiguracionhce.h" GNC::GUI::PanelConfiguracionHCE::PanelConfiguracionHCE(wxWindow* pParent,IDialogoConfiguracion* pDialogo): PanelConfiguracionHCEBase(pParent), IPasoConfiguracion(pDialogo) { Recargar(); } GNC::GUI::PanelConfiguracionHCE::~PanelConfiguracionHCE() { } void GNC::GUI::PanelConfiguracionHCE::Recargar() { std::string value; GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","IDOrganizacionReceptora", value); m_pIdOrganizacionReceptora->SetValue(wxString::FromUTF8(value.c_str())); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","IDSistemaPeticionario", value); m_pIdSistemaPeticionario->SetValue(wxString::FromUTF8(value.c_str())); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","IDAplicacionRellenadora", value); m_pIdAplicacionRellenadora->SetValue(wxString::FromUTF8(value.c_str())); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","IDGinkgoApplication", value, "GINKGO"); m_pIdGinkgoAplication->SetValue(wxString::FromUTF8(value.c_str())); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","HostnameMI", value); m_pHostnameMI->SetValue(wxString::FromUTF8(value.c_str())); GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/HCE","PuertoMI", value); m_pPuertoMI->SetValue(wxString::FromUTF8(value.c_str())); } //region "Metodos de IPasoConfiguracion" wxWindow* GNC::GUI::PanelConfiguracionHCE::GetPanel() { return this; } std::string GNC::GUI::PanelConfiguracionHCE::GetTitle() { return _Std("Electronic health record"); } std::string GNC::GUI::PanelConfiguracionHCE::GetCabecera() { return _Std("Setting the electronic health record system"); } bool GNC::GUI::PanelConfiguracionHCE::Validar() { bool ok = true; // GW: Whatever this was meant to validate, no idea, eliminating dead code. //reset xml-rpc server return ok; } bool GNC::GUI::PanelConfiguracionHCE::Guardar() { GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/HCE","IDOrganizacionReceptora", std::string(m_pIdOrganizacionReceptora->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/HCE","IDSistemaPeticionario", std::string(m_pIdSistemaPeticionario->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/HCE","IDAplicacionRellenadora", std::string(m_pIdAplicacionRellenadora->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/HCE","IDGinkgoApplication", std::string(m_pIdGinkgoAplication->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/HCE","IDGinkgoApplication", std::string(m_pIdGinkgoAplication->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/HCE","HostnameMI", std::string(m_pHostnameMI->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/HCE","PuertoMI", std::string(m_pPuertoMI->GetValue().ToUTF8())); return true; } void GNC::GUI::PanelConfiguracionHCE::OnTextoCambiado(wxCommandEvent &) { OnPropiedadCambiada(); } void GNC::GUI::PanelConfiguracionHCE::OnCambioSistema(wxCommandEvent &) { OnPropiedadCambiada(); } void GNC::GUI::PanelConfiguracionHCE::OnTestClick(wxCommandEvent &) { try { //se abre una conexión tcp al host(puerto...) std::string url; { std::ostringstream ostr; ostr << m_pHostnameMI->GetValue().ToUTF8()<< ":" << m_pPuertoMI->GetValue().ToUTF8(); url = ostr.str(); } #ifndef _WIN32 signal(SIGPIPE, SIG_IGN); #endif Endpoint::Initialize(); wxBusyInfo* info = new wxBusyInfo(_("Testing conectivity with the server...")); Endpoint ep(TCP | CLIENT, url); delete info; if (!ep) { std::stringstream ostr; if (url.empty() || url.at(url.size() - 1) == ':' ) { ostr << _Std("Error connecting to url") << std::string(": ") << _Std("hostname/port not set"); } else { ostr << _Std("Error connecting to url") << std::string(" ") << url; } wxMessageBox(wxString::FromUTF8(ostr.str().c_str()), _("Connection test fail"), wxICON_ERROR, this); } else { wxMessageBox(_("Connection test successful"),_("Info"),wxOK | wxICON_INFORMATION, this); } ep.Close(); } catch (std::exception& ex) { LOG_ERROR("HL7Test", "Internal error testing integration server: " << ex.what() ); } } void GNC::GUI::PanelConfiguracionHCE::OnCheckXMLRPC(wxCommandEvent&) { OnPropiedadCambiada(); } //endregion ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionhce.h000066400000000000000000000032661314736454600265410ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "panelesconfiguracionginkgobase.h" #include #include namespace GNC { namespace GUI { class PanelConfiguracionHCE : public PanelConfiguracionHCEBase, public IPasoConfiguracion { public: PanelConfiguracionHCE(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~PanelConfiguracionHCE(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion protected: virtual void OnSize(wxSizeEvent &) { Layout(); } virtual void OnTextoCambiado(wxCommandEvent &event); virtual void OnCambioSistema(wxCommandEvent &event); virtual void OnTestClick(wxCommandEvent &event); virtual void OnCheckXMLRPC(wxCommandEvent&event); }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionpacs.cpp000066400000000000000000001420121314736454600272540ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include #include #include #include #include
    #include #include #include #include #include #include #include #include #include #include "panelconfiguracionpacs.h" #include #include
    #include #define NAME_COLUMN_IDX 0 #define NAME_COLUMN_WIDTH 300 #define USE_BY_DEFAULT_COLUMN_IDX 1 #define USE_BY_DEFAULT_COLUMN_WIDTH 80 namespace GNC { namespace GUI { ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////DialogoEditarCertificado////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class DialogoEditarCertificado: public DialogoEditarCertificadoBase { public: DialogoEditarCertificado(wxWindow* pParent, const std::string& cert, const std::string& privateKey, bool permitirDefecto): DialogoEditarCertificadoBase(pParent) { m_Ok = false; m_pTextoCertificado->SetValue(wxString::FromUTF8(cert.c_str())); m_pTextoPrivateKey->SetValue(wxString::FromUTF8(privateKey.c_str())); if (permitirDefecto) { m_pCheckDefault->SetValue(cert.size() == 0 && privateKey.size() == 0); } else { m_pCheckDefault->SetValue(false); m_pPanelDefault->Show(false); m_pSepDefault->Show(false); m_pBody->Layout(); Layout(); Refresh(true); } RefrescarEstado(); } ~DialogoEditarCertificado() { } virtual void OnAceptarClick(wxCommandEvent&) { if (Validar()) { m_Ok = true; EndModal(wxID_OK); } } void CargarFichero(bool publicKey) { wxFileDialog seleccionarFichero (this, _("Select certificate"), wxT(""), wxT(""), _("PEM files(*.pem;*.key)|*.pem;*.key|All files (*.*)|*.*"),wxFD_FILE_MUST_EXIST|wxFD_OPEN); int response = seleccionarFichero.ShowModal(); if (response == wxID_OK) { wxTextFile textFile(seleccionarFichero.GetPath()); if (textFile.Open()) { wxString cadena; if (!textFile.Eof()) { cadena += textFile.GetNextLine(); while(!textFile.Eof()) { cadena += wxT("\n") + textFile.GetNextLine(); } } if (publicKey) { m_pTextoCertificado->SetValue(cadena); } else { m_pTextoPrivateKey->SetValue(cadena); } textFile.Close(); } } } virtual void OnLoadPrivateClick(wxCommandEvent& ) { CargarFichero(false); } virtual void OnLoadPublicClick(wxCommandEvent& ) { CargarFichero(true); } virtual void OnResetToDefault(wxCommandEvent& ) { if (m_pPanelDefault->IsShown()) { m_pCheckDefault->SetValue(true); } else { //cargamos el certificado por defecto... #ifdef GINKGO_PUBLIC_KEY m_pTextoCertificado->SetValue(wxString::FromUTF8(GINKGO_PUBLIC_KEY)); #else m_pTextoCertificado->SetValue(wxT("")); #endif #ifdef GINKGO_PRIVATE_KEY m_pTextoPrivateKey->SetValue(wxString::FromUTF8(GINKGO_PRIVATE_KEY)); #else m_pTextoPrivateKey->SetValue(wxT("")); #endif } RefrescarEstado(); } virtual void OnCheckDefault(wxCommandEvent&) { RefrescarEstado(); } virtual void RefrescarEstado() { m_pPanelPublic->Enable(!m_pCheckDefault->IsChecked()); m_pPanelPublic->Refresh(); m_pPanelPrivate->Enable(!m_pCheckDefault->IsChecked()); m_pPanelPrivate->Refresh(); if (m_pCheckDefault->IsChecked()) { m_pTextoCertificado->SetValue(wxT("")); m_pTextoPrivateKey->SetValue(wxT("")); } } std::string GetPublicValue() { std::string cert(m_pTextoCertificado->GetValue().ToUTF8()); return cert; } std::string GetPrivateValue() { std::string cert(m_pTextoPrivateKey->GetValue().ToUTF8()); return cert; } bool GetUseDefaultCert() { return m_pCheckDefault->GetValue(); } bool Validar() { bool ok = true; std::stringstream sstream; if (!m_pCheckDefault->IsChecked() && m_pCheckDefault->IsShown()) { if (m_pTextoCertificado->GetValue().size() == 0 || m_pTextoPrivateKey->GetValue().size() == 0) { ok = false; sstream << _Std("You have to set private and public key") ; } if (!ok) { wxMessageBox(wxString::FromUTF8(sstream.str().c_str()),_("Info"),wxOK | wxICON_INFORMATION, this); } } return ok; } bool m_Ok; }; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////DialogoLocalPACS////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class DialogoLocalPACS: public DialogoLocalPACSBase { public: DialogoLocalPACS(wxWindow* pParent): DialogoLocalPACSBase(pParent) { m_Ok = false; } ~DialogoLocalPACS() {} void SetParametros(PanelConfiguracionPACS::TipoConfigLocal& pacsLocal) { m_pUseTLS->SetValue(pacsLocal.useTLS); m_pVerifyServer->SetValue(pacsLocal.verifyCredentials); m_certificado = pacsLocal.certificate; m_privateKey = pacsLocal.privateKey; if (m_certificado.size()>0 || m_privateKey.size()>0) { m_pBCert->SetLabel(_("Change ...")); } else { m_pBCert->SetLabel(_("Import ...")); } } void GetParametros(PanelConfiguracionPACS::TipoConfigLocal& pacsLocal) { pacsLocal.useTLS = m_pUseTLS->GetValue(); pacsLocal.verifyCredentials = m_pVerifyServer->GetValue(); pacsLocal.certificate = m_certificado; pacsLocal.privateKey = m_privateKey; } virtual void OnEditCertificate(wxCommandEvent&) { DialogoEditarCertificado dlg(this, m_certificado, m_privateKey, false); dlg.ShowModal(); if (dlg.m_Ok) { m_certificado = dlg.GetPublicValue(); m_privateKey = dlg.GetPrivateValue(); if (m_certificado.size()>0 || m_privateKey.size()>0) { m_pBCert->SetLabel(_("Change ...")); } else { m_pBCert->SetLabel(_("Import ...")); } } } virtual void OnAceptarClick(wxCommandEvent&) { if (Validar()) { m_Ok = true; EndModal(wxID_OK); } } bool Validar() { bool ok = true; std::stringstream sstream; if (m_pUseTLS->GetValue() && (m_certificado.size() == 0 || m_privateKey.size() == 0)) { ok = false; sstream << _Std("If you want to use SSL/TLS you have to set a valid certificate and a valid private key") ; } if (!ok) { wxMessageBox(wxString::FromUTF8(sstream.str().c_str()),_("Info"),wxOK | wxICON_INFORMATION, this); } return ok; } bool m_Ok; std::string m_certificado; std::string m_privateKey; }; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////DialogoServidorPACS/////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// class DialogoServidorPACS: public DialogoServidorPACSBase { public: DialogoServidorPACS(wxWindow* pParent, PanelConfiguracionPACS::TipoConfigLocal& configLocal, const wxString& strPuertoLocal, const wxString& aetLocal, std::list usedPACSIds) : DialogoServidorPACSBase(pParent), m_configLocal(configLocal), m_Ok(false), m_aetLocal(aetLocal.ToUTF8()), m_puertoLocal(11112), m_idsPacs(usedPACSIds) { wxTextValidator OnlyNum = wxTextValidator(wxFILTER_NUMERIC); m_pPuerto->SetValidator(OnlyNum); m_pPDU->SetValue(16384); long puertoLocal; if(strPuertoLocal.ToLong(&puertoLocal)) { m_puertoLocal = puertoLocal; } if(!GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","pacs_tls")) { m_pPanelSeguridad->Show(false); m_notebook1->RemovePage(1); } //worklist settings... #ifndef GINKGO_PRO m_pWorkListPanel->Show(false); #endif // LoadMessageDefaultValues(); RefreshHL7Panel(); } ~DialogoServidorPACS() { } void GetParametros(DicomServer& tipoPacs) { tipoPacs.ID = std::string(m_pId->GetValue().ToUTF8()); tipoPacs.AET= std::string(m_pAET->GetValue().ToUTF8()); tipoPacs.HostName = std::string(m_pHost->GetValue().ToUTF8()); tipoPacs.Port = atoi(m_pPuerto->GetValue().ToUTF8()); tipoPacs.PDU = m_pPDU->GetValue(); switch (m_pRetrieveMethod->GetSelection()) { case 2: tipoPacs.retrieveMethod = DicomServer::WADO; break; case 1: tipoPacs.retrieveMethod = DicomServer::GET; break; case 0: default: tipoPacs.retrieveMethod = DicomServer::MOVE; break; } tipoPacs.wadoURI = std::string(m_pWadoURL->GetValue().ToUTF8()); tipoPacs.retrieveSeries = m_pRetrieveMode->GetSelection() == 0; tipoPacs.reuseConnection = m_pReuseConnection->GetValue(); if(GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","pacs_tls")) { tipoPacs.useTLS = m_pUseSSL->GetValue(); tipoPacs.pacsUser = m_pUser->GetValue().ToUTF8(); tipoPacs.pacsPass = m_pPassword->GetValue().ToUTF8(); tipoPacs.verifyCredentials = m_pVerifyServer->GetValue(); tipoPacs.certificate = m_certificado; tipoPacs.privateKey = m_privateKey; } tipoPacs.defaultCharset = m_pComboCharset->GetValue().ToUTF8(); //wl tipoPacs.GetWlConfig().useDICOMMPPS = m_pCheckDICOMMPPS->IsChecked(); if (m_pCheckHL7->IsChecked()) { tipoPacs.GetWlConfig().useAbortMessage = m_pCheckAbort->IsChecked(); tipoPacs.GetWlConfig().useCompletedMessage = m_pCheckCompleted->IsChecked(); tipoPacs.GetWlConfig().useInProgressMessage = m_pCheckInProgress->IsChecked(); } else { tipoPacs.GetWlConfig().useAbortMessage = tipoPacs.GetWlConfig().useCompletedMessage = tipoPacs.GetWlConfig().useInProgressMessage = false; } tipoPacs.GetWlConfig().abortTemplate = m_pTextAbort->GetValue().ToUTF8(); tipoPacs.GetWlConfig().completedTemplate = m_pTextCompleted->GetValue().ToUTF8(); tipoPacs.GetWlConfig().inProgressTemplate = m_pTextProgress->GetValue().ToUTF8(); // } void SetParametros(DicomServer& tipoPacs) { m_pId->SetValue(wxString::FromUTF8(tipoPacs.ID.c_str())); m_pAET->SetValue(wxString::FromUTF8(tipoPacs.AET.c_str())); m_pHost->SetValue(wxString::FromUTF8(tipoPacs.HostName.c_str())); m_pPuerto->SetValue(wxString::Format(wxT("%d"), (int) tipoPacs.Port)); m_pPDU->SetValue(wxString::Format(wxT("%d"), (int) tipoPacs.PDU)); m_pRetrieveMethod->SetSelection((int)tipoPacs.retrieveMethod); m_pRetrieveMode->SetSelection(tipoPacs.retrieveSeries?0:1); m_pWadoURL->SetValue(wxString::FromUTF8(tipoPacs.wadoURI.c_str())); m_pReuseConnection->SetValue(tipoPacs.reuseConnection); if(GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","pacs_tls")) { m_pUseSSL->SetValue(tipoPacs.useTLS); m_pUser->SetValue(wxString::FromUTF8(tipoPacs.pacsUser.c_str())); m_pPassword->SetValue(wxString::FromUTF8(tipoPacs.pacsPass.c_str())); m_pVerifyServer->SetValue(tipoPacs.verifyCredentials); m_certificado = tipoPacs.certificate; m_privateKey = tipoPacs.privateKey; } m_pComboCharset->SetValue(wxString::FromUTF8(tipoPacs.defaultCharset.c_str())); //wl m_pCheckDICOMMPPS->SetValue(tipoPacs.GetWlConfig().useDICOMMPPS); m_pCheckHL7->SetValue(tipoPacs.GetWlConfig().useAbortMessage || tipoPacs.GetWlConfig().useCompletedMessage || tipoPacs.GetWlConfig().useInProgressMessage); m_pCheckAbort->SetValue(tipoPacs.GetWlConfig().useAbortMessage); m_pCheckCompleted->SetValue(tipoPacs.GetWlConfig().useCompletedMessage); m_pCheckInProgress->SetValue(tipoPacs.GetWlConfig().useInProgressMessage); m_pTextAbort->SetValue(wxString::FromUTF8(tipoPacs.GetWlConfig().abortTemplate.c_str())); m_pTextCompleted->SetValue(wxString::FromUTF8(tipoPacs.GetWlConfig().completedTemplate.c_str())); m_pTextProgress->SetValue(wxString::FromUTF8(tipoPacs.GetWlConfig().inProgressTemplate.c_str())); // RefreshHL7Panel(); wxCommandEvent evt; OnRetrieveMethodChoice(evt); } virtual void OnAdvancedConfiguration(wxCommandEvent&) { DialogoEditarCertificado dlg(this, m_certificado, m_privateKey, true); dlg.ShowModal(); if (dlg.m_Ok) { if (dlg.GetUseDefaultCert()) { m_certificado = m_configLocal.certificate; m_privateKey = m_configLocal.privateKey; } else { m_certificado = dlg.GetPublicValue(); m_privateKey = dlg.GetPrivateValue(); } } } virtual void OnRetrieveMethodChoice(wxCommandEvent&) { bool enableWADO = m_pRetrieveMethod->GetSelection() == DicomServer::WADO; m_pWadoURL->Enable(enableWADO); m_pRetrieveMode->Enable(!enableWADO); } virtual void OnCancelClick(wxCommandEvent &) { m_Ok=false; EndModal(wxID_CANCEL); } virtual void OnOkClick(wxCommandEvent &) { if(Validar()) { m_Ok=true; EndModal(wxID_OK); } } bool Validar () { bool ok = true; if(m_pId->GetValue() != wxEmptyString && m_pAET->GetValue() != wxEmptyString && m_pHost->GetValue() != wxEmptyString && m_pPuerto->GetValue() != wxEmptyString) { std::stringstream sstream; sstream << _Std("There are this errors: "); std::string idPACS = std::string(m_pId->GetValue().ToUTF8()); for (std::list::iterator it = m_idsPacs.begin(); it != m_idsPacs.end(); ++it) { if (idPACS == (*it)) { sstream << _Std("\n- This PACS id is in use"); ok = false; break; } } long numero; if(!m_pPuerto->GetValue().ToLong(&numero)) { ok = false; sstream << _Std("\n- The port must be a positive short integer (16 bits)"); } else { if(numero > 32767) { //maxshort ok = false; sstream <<_Std("\n- The port is too large"); } } if(m_pAET->GetLabel().size() >16) { ok = false; sstream <<_Std("\n- The maximum length of the AET is 16 characters"); } if (m_pPDU->GetValue() != 0) { if(!m_pPDU->GetValue()) { ok = false; sstream << _Std("\n- The PDU size should be greater than or equal to zero (default = 16384)"); } else { if(m_pPDU->GetValue() > MAX_PDU_LENGTH) { // max, viene de esta constante ASC_MAXIMUMPDUSIZE de DCMTK ok = false; sstream << _Std("\n- The maximum value of the PDU is ") << MAX_PDU_LENGTH << "(" << MAX_PDU_LENGTH/1024 << "K)"; } if(m_pPDU->GetValue() < MIN_PDU_LENGTH) { // min, viene de esta constante ASC_MINIMUMPDUSIZE de DCMTK ok = false; sstream << _Std("\n- The minimum value of the PDU is ") << MIN_PDU_LENGTH << "(" << MIN_PDU_LENGTH/1024 << "K)" ; } } } if (m_pUseSSL->GetValue() && ( (m_certificado.size() == 0 || m_privateKey.size() == 0) && (m_configLocal.certificate.size() == 0 || m_configLocal.privateKey.size() == 0 ) ) ) { ok = false; sstream << _Std("\n- If you want to use SSL/TLS you have to set a valid certificate and private key") ; } if (m_pRetrieveMethod->GetSelection() == DicomServer::WADO) { if (m_pWadoURL->GetValue().IsEmpty()) { ok = false; sstream << _Std("\n- If you want to use WADO you have to fill in wado url") ; } else { wxURI uri(m_pWadoURL->GetValue()); if (uri.GetScheme().IsEmpty()) { sstream << _Std("\n- WADO URL doesn't contains scheme (i.e. http://)") ; ok = false; } else if (uri.GetServer().IsEmpty()) { sstream << _Std("\n- WADO URL doesn't contains host") ; ok = false; } } } if(!ok) wxMessageBox(wxString::FromUTF8(sstream.str().c_str()),_("Info"),wxOK | wxICON_INFORMATION, this); } else { ok = false; wxMessageBox(_("You must fill in all fields to continue"),_("Info"),wxOK | wxICON_INFORMATION, this); } return ok; } virtual void OnProbarClick(wxCommandEvent &) { if(Validar()) { bool success = true; std::ostringstream errorMsg; std::string errorTitle; { long puerto; long pdu = m_pPDU->GetValue(); wxBusyInfo info( _("Testing the connection to the node ...") ); // 1: Check DICOM interface errorTitle = _Std("DICOM Error"); if(m_pPuerto->GetValue().ToLong(&puerto)) { EchoAssociation as("C-ECHO"); if (m_pUseSSL->GetValue()) { if (m_certificado.empty() || m_privateKey.empty()) { as.SetTLS(m_configLocal.certificate, m_configLocal.privateKey, m_pVerifyServer->GetValue()); } else { as.SetTLS(m_certificado, m_privateKey, m_pVerifyServer->GetValue()); } } if (m_pUser->GetValue() != wxEmptyString) { as.SetUserPass(std::string(m_pUser->GetValue().ToUTF8()), std::string(m_pPassword->GetValue().ToUTF8())); } OFCondition cond; std::string aet(m_pAET->GetValue().ToUTF8()); std::string host(m_pHost->GetValue().ToUTF8()); as.Create(aet, host, puerto, m_aetLocal, UID_VerificationSOPClass); GIL::DICOM::DCMTK::Network* pNetwork = NULL; try { pNetwork = GIL::DICOM::DCMTK::Network::Instance(this); } catch(const std::exception& ex) { success = false; errorMsg << _Std("Unable to connect: Could not start network support.") << ":\n" << ex.what(); } if(success) { as.SetTimeout(10); pNetwork->InitializeNetwork(as.GetTimeout()); cond = pNetwork->ConnectAssociation(&as, pdu); if (cond.good()) { cond = as.SendEchoRequest(); if (cond.bad()) { success = false; errorMsg << _Std("The service did not respond correctly to the C-ECHO") << ":\n" << cond.text(); } } else { success = false; errorMsg << _Std("The service did not respond correctly to the DICOM standard") << ":\n" << cond.text(); } as.Drop(cond); GIL::DICOM::DCMTK::Network::FreeInstance(this); pNetwork = NULL; } } else { success = false; errorMsg << _Std("Invalid port number"); } // 2: check if wado support is enabled. if (success && ( m_pRetrieveMethod->GetSelection() == (int)DicomServer::WADO ) ) { errorTitle = _Std("WADO Error"); std::string url(m_pWadoURL->GetValue().ToUTF8()); try { GNC::GCS::IEntorno::Instance()->GetPACSController()->TestWADOURL(url); } catch (const GIL::DICOM::PACSException& ex) { success = false; errorMsg << ex.GetCause(); } } } if (success) { std::string resp = _Std("Connection test successful"); LOG_INFO("C-TEST", resp); wxMessageBox(wxString::FromUTF8(resp.c_str()), _("Info"), wxOK | wxICON_INFORMATION, this); } else { LOG_ERROR("C-TEST", errorTitle << ":" << errorMsg.str()); wxMessageBox(wxString::FromUTF8(errorMsg.str().c_str()), wxString::FromUTF8(errorTitle.c_str()), wxICON_ERROR, this); } } } virtual void OnChecWL(wxCommandEvent &) { RefreshHL7Panel(); } virtual void RefreshHL7Panel() { m_pPanelHL7->Enable(m_pCheckHL7->GetValue()); m_pTextAbort->Enable(m_pCheckAbort->GetValue()); m_pTextCompleted->Enable(m_pCheckCompleted->GetValue()); m_pTextProgress->Enable(m_pCheckInProgress->GetValue()); m_pPanelHL7->Refresh(true); } virtual void OnMessageDefaultValues(wxCommandEvent&) { LoadMessageDefaultValues(); } virtual void LoadMessageDefaultValues() { GNC::GCS::Permisos::EstadoPermiso perm = GNC::GCS::IControladorPermisos::Instance()->Get("gnkwl.messages", "inprogress"); if (perm) { m_pTextProgress->SetValue(wxString::FromUTF8(perm.GetRawValue().c_str())); } perm = GNC::GCS::IControladorPermisos::Instance()->Get("gnkwl.messages", "completed"); if (perm) { m_pTextCompleted->SetValue(wxString::FromUTF8(perm.GetRawValue().c_str())); } perm = GNC::GCS::IControladorPermisos::Instance()->Get("gnkwl.messages", "abort"); if (perm) { m_pTextAbort->SetValue(wxString::FromUTF8(perm.GetRawValue().c_str())); } } PanelConfiguracionPACS::TipoConfigLocal& m_configLocal; bool m_Ok; std::string m_aetLocal; long m_puertoLocal; std::string m_certificado; std::string m_privateKey; std::list m_idsPacs; std::string m_defCharset; }; ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////PanelConfiguracionPACS//////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// PanelConfiguracionPACS::PanelConfiguracionPACS(wxWindow* pParent,IDialogoConfiguracion* pDialogo): PanelConfiguracionPACSBase(pParent), IPasoConfiguracion(pDialogo) { m_pModel = new wxDataViewListStore(); m_pListPacs->AssociateModel(m_pModel.get()); m_pListPacs->AppendColumn( new wxDataViewColumn( _("Name"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), NAME_COLUMN_IDX, NAME_COLUMN_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListPacs->AppendColumn( new wxDataViewColumn( _("Use by default"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), USE_BY_DEFAULT_COLUMN_IDX, USE_BY_DEFAULT_COLUMN_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); Recargar(); m_pHelpBitmap->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoHelp()); if(!GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","pacs_tls")) { m_pBAdvanced->Show(false); m_pPACSLocal->Layout(); this->Layout(); this->Refresh(true); } m_pListPacs->Connect(wxEVT_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(PanelConfiguracionPACS::OnListaPACSChoice), NULL, this); m_pListPacs->Connect(wxEVT_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(PanelConfiguracionPACS::OnListaPACSDClick), NULL, this); } PanelConfiguracionPACS::~PanelConfiguracionPACS() { m_servidores.clear(); } void PanelConfiguracionPACS::Recargar() { std::string strTmp; if (!GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/PACS/Local", "AET", strTmp, "GINKGO_%IP4")) { GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/PACS/Local", "AET", strTmp); } m_pAETLocal->SetValue(wxString::FromUTF8(strTmp.c_str())); m_pAETReal->SetLabel(wxString::FromUTF8( GNC::Entorno::Instance()->ParseAET(strTmp).substr(0, 16).c_str() )); GNC::GCS::Ptr serverLocal = DicomServerList::Instance()->GetLocalServer(); m_pPuertoLocal->SetValue(wxString::Format(wxT("%d"),serverLocal->GetPort())); wxTextValidator OnlyNum = wxTextValidator(wxFILTER_NUMERIC); m_pPuertoLocal->SetValidator(OnlyNum); m_configLocal.useTLS = serverLocal->GetUseTLS(); m_configLocal.verifyCredentials = serverLocal->GetverifyCredentials(); m_configLocal.privateKey = serverLocal->GetPrivateKey(); m_configLocal.certificate = serverLocal->GetCertificate(); wxVector data; if(GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","remote_pacs")) { m_pPACSServers->Enable(true); m_pListPacs->DeleteAllItems(); m_servidores.clear(); DicomServerList::Instance()->Reload(); DicomServerList::TServerList ListOfServers = DicomServerList::Instance()->GetServerList(); wxVector data; for (DicomServerList::TServerList::iterator it = ListOfServers.begin(); it != ListOfServers.end(); ++it) { DicomServerList::TServerList::value_type& tuple = (*it); data.clear(); m_servidores.push_back(tuple); data.push_back(wxString::FromUTF8(tuple->ID.c_str())); if (tuple->isDefault) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } m_pModel->AppendItem(data); } if(m_pModel->GetCount() > 0) { wxDataViewItem item = m_pModel->GetItem(0); if (item.IsOk()) { m_pListPacs->SelectRow(0); } } wxDataViewEvent evt; OnListaPACSChoice(evt); } else { m_pPACSServers->Enable(false); } } //region "Metodos de IPasoConfiguracion" wxWindow* PanelConfiguracionPACS::GetPanel() { return this; } std::string PanelConfiguracionPACS::GetTitle() { return _Std("DICOM nodes"); } std::string PanelConfiguracionPACS::GetCabecera() { return _Std("DICOM nodes settings"); } bool PanelConfiguracionPACS::Validar() { bool ok = true; std::stringstream sstream; sstream << _Std("They have produced the following errors:"); long numero; if(!m_pPuertoLocal->GetValue().ToLong(&numero) && m_pPuertoLocal->GetValue().size() > 0) { ok = false; sstream << _Std("\n- The local port must be a positive short integer (16 bits)"); } else { if(numero > 32767) { //maxshort ok = false; sstream << _Std("\n- The local port is too large"); } } if(m_pAETReal->GetLabel().size() >16) { ok = false; sstream << _Std("\n- Maximum length of local AET is 16 characters"); } if(!ok) wxMessageBox(wxString::FromUTF8(sstream.str().c_str()),_("Info"),wxOK | wxICON_INFORMATION, this); return ok; } bool PanelConfiguracionPACS::Guardar() { //se actualiza el fichero de configuracion GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/PACS/Local","AET",std::string(m_pAETLocal->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/PACS/Local","Puerto",std::string(m_pPuertoLocal->GetValue().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeBoolGeneral("/GinkgoCore/PACS/Local","useTLS",m_configLocal.useTLS); GNC::GCS::ConfigurationController::Instance()->writeBoolGeneral("/GinkgoCore/PACS/Local","verifyCredentials",m_configLocal.verifyCredentials); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/PACS/Local","privateKey",m_configLocal.privateKey); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/PACS/Local","certificate",m_configLocal.certificate); GIL::DICOM::PACSController::Instance()->StartServer(); if(GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","remote_pacs")) { wxString clave; wxString valor; GNC::GCS::ConfigurationController::Instance()->deleteEntryGeneral("/GinkgoCore/PACS/Servidores"); GNC::GCS::ConfigurationController::TListGroups pacsList; for(TipoListaPACS::iterator it = m_servidores.begin(); it!= m_servidores.end(); ++it) { GNC::GCS::ConfigurationController::TMapValues pacs; pacs["Identificador"] = (*it)->ID; pacs["AET"] = (*it)->AET; pacs["Host"] = (*it)->HostName; pacs.insertInt("Puerto",(*it)->Port); pacs.insertInt("PDU",(*it)->PDU); pacs.insertBool("useTLS", (*it)->useTLS); pacs.insertBool("verifyCredentials", (*it)->verifyCredentials); pacs.insertInt("retrieveMethod", (*it)->retrieveMethod); pacs["wadoURI"] = (*it)->wadoURI; pacs.insertBool("reuseConnection", (*it)->reuseConnection); pacs.insertBool("retrieveSeries", (*it)->retrieveSeries); pacs["pacsUser"] = (*it)->pacsUser; pacs["pacsPass"] = (*it)->pacsPass; pacs["certificate"] = (*it)->certificate; pacs["privateKey"] = (*it)->privateKey; pacs.insertBool("isDefault", (*it)->isDefault); pacs["defaultCharset"] = (*it)->defaultCharset; //wl pacs.insertBool("useDICOMMPPS", (*it)->GetWlConfig().useDICOMMPPS); pacs.insertBool("useAbortMessage", (*it)->GetWlConfig().useAbortMessage); pacs.insertBool("useCompletedMessage", (*it)->GetWlConfig().useCompletedMessage); pacs.insertBool("useInProgressMessage", (*it)->GetWlConfig().useInProgressMessage); pacs["abortTemplate"] = (*it)->GetWlConfig().abortTemplate; pacs["completedTemplate"] = (*it)->GetWlConfig().completedTemplate; pacs["inProgressTemplate"] = (*it)->GetWlConfig().inProgressTemplate; // pacsList.push_back(pacs); } GNC::GCS::ConfigurationController::Instance()->writeGroupGeneral("/GinkgoCore/PACS/Servidores", pacsList, "Server"); DicomServerList::Instance()->Reload(); } else { DicomServerList::Instance()->Reload(); } return true; } //endregion void PanelConfiguracionPACS::OnAdvancedLocal(wxCommandEvent &) { DialogoLocalPACS dlg(this); dlg.SetParametros(m_configLocal); dlg.ShowModal(); if(dlg.m_Ok) { dlg.GetParametros(m_configLocal); OnPropiedadCambiada(); } } void PanelConfiguracionPACS::OnListaPACSChoice(wxDataViewEvent &) { //se carga la descripcion bool enable = m_pListPacs->GetSelection().IsOk(); m_pEditButton->Enable(enable); m_pDelButton->Enable(enable); m_pDefaultButton->Enable(enable); } void PanelConfiguracionPACS::OnListaPACSDClick(wxDataViewEvent &) { wxCommandEvent evt; OnEditarClick(evt); } void PanelConfiguracionPACS::OnNuevoClick(wxCommandEvent &) { std::list listIdsPacs; for (TipoListaPACS::iterator it = m_servidores.begin(); it != m_servidores.end(); ++it) { listIdsPacs.push_back((*it)->ID); } DialogoServidorPACS dialogo(this, m_configLocal, m_pPuertoLocal->GetValue(), wxString::FromUTF8( GNC::Entorno::Instance()->ParseAET( std::string(m_pAETLocal->GetValue().ToUTF8()) ).c_str() ), listIdsPacs ); dialogo.ShowModal(); if(dialogo.m_Ok) { GNC::GCS::Ptr tuple(new DicomServer()); dialogo.GetParametros(*tuple); tuple->isDefault = true; if(m_pModel->GetCount() > 0) { wxDataViewItem item = m_pModel->GetItem(0); if (item.IsOk()) { tuple->isDefault = false; } } m_servidores.push_back(tuple); wxVector data; data.push_back(wxString::FromUTF8(tuple->ID.c_str())); if (tuple->isDefault) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } m_pModel->AppendItem(data); wxVariant val; bool notFound = true; for (unsigned int i = 0; notFound && i < m_pModel->GetCount(); ++i) { m_pModel->GetItem(i); m_pModel->GetValueByRow(val, i, NAME_COLUMN_IDX); std::string stdVal(val.GetString().ToUTF8()); if (stdVal == tuple->ID) { notFound = false; m_pListPacs->SelectRow(i); } } wxDataViewEvent evt; OnListaPACSChoice(evt); OnPropiedadCambiada(); } } void PanelConfiguracionPACS::OnEditarClick(wxCommandEvent &) { wxDataViewItem selection = m_pListPacs->GetSelection(); if(selection.IsOk()) { wxVariant val; m_pModel->GetValue(val, selection, NAME_COLUMN_IDX); std::string idSeleccionado(val.GetString().ToUTF8()); std::list listIdsPacs; for (TipoListaPACS::iterator it = m_servidores.begin(); it != m_servidores.end(); ++it) { if((*it)->ID != idSeleccionado) { listIdsPacs.push_back((*it)->ID); } } for(TipoListaPACS::iterator it = m_servidores.begin(); it != m_servidores.end(); ++it) { if((*it)->ID == idSeleccionado) { DialogoServidorPACS dialogo(this, m_configLocal, m_pPuertoLocal->GetValue(), wxString::FromUTF8( GNC::Entorno::Instance()->ParseAET( std::string( m_pAETLocal->GetValue().ToUTF8() ) ).c_str() ), listIdsPacs); dialogo.SetParametros(*(*it)); dialogo.ShowModal(); if(dialogo.m_Ok) { dialogo.GetParametros(*(*it)); // Se refresca el valor val = wxString::FromUTF8((*it)->ID.c_str()); m_pModel->SetValue(val, selection, NAME_COLUMN_IDX); m_pModel->ItemChanged(selection); wxVariant val2; bool notFound = true; for (unsigned int i = 0; notFound && i < m_pModel->GetCount(); ++i) { m_pModel->GetValueByRow(val2, i, NAME_COLUMN_IDX); if (val == val2) { m_pListPacs->SelectRow(i); break; } } wxDataViewEvent evt; OnListaPACSChoice(evt); OnPropiedadCambiada(); } } } } } void PanelConfiguracionPACS::OnEliminarClick(wxCommandEvent &) { wxDataViewItem selection =m_pListPacs->GetSelection(); if(selection.IsOk()) { wxVariant val; m_pModel->GetValue(val, selection, NAME_COLUMN_IDX); std::string idSeleccionado(val.GetString().ToUTF8()); int answer = wxMessageBox(_("Confirm the removal of the node") + wxT(" ") + wxString::FromUTF8(idSeleccionado.c_str()), _("Data modified"), wxYES_NO | wxCANCEL, this); if(answer == wxYES) { for(TipoListaPACS::iterator it = m_servidores.begin(); it != m_servidores.end(); ++it) { if((*it)->ID == idSeleccionado) { bool notFound = true; for (unsigned int i = 0; notFound && i < m_pModel->GetCount(); ++i) { wxDataViewItem item = m_pModel->GetItem(i); wxVariant val2; m_pModel->GetValue(val2, item, NAME_COLUMN_IDX); if (val == val2) { notFound = false; m_pModel->DeleteItem(i); } } m_servidores.erase(it); break; } } m_pListPacs->Refresh(); wxDataViewEvent evt; OnListaPACSChoice(evt); OnPropiedadCambiada(); } } } void PanelConfiguracionPACS::OnSetDefaultClick(wxCommandEvent &) { wxDataViewItem selection = m_pListPacs->GetSelection(); if(selection.IsOk()) { wxVariant val; m_pModel->GetValue(val, selection, NAME_COLUMN_IDX); std::string idSeleccionado(val.GetString().ToUTF8()); for(TipoListaPACS::iterator it = m_servidores.begin(); it != m_servidores.end(); ++it) { TipoListaPACS::value_type& item = (*it); if(item->ID == idSeleccionado) { item->isDefault = true; } else { item->isDefault = false; } } wxDataViewItemArray items; for (unsigned int i = 0; i < m_pModel->GetCount(); ++i) { wxVariant val2; wxDataViewItem item = m_pModel->GetItem(i); m_pModel->GetValue(val2, item, NAME_COLUMN_IDX); if (val == val2) { m_pModel->SetValue(_("Yes"), item, USE_BY_DEFAULT_COLUMN_IDX); } else { m_pModel->SetValue(_("No"), item, USE_BY_DEFAULT_COLUMN_IDX); } items.Add(item); } m_pModel->ItemsChanged(items); wxDataViewEvent evt; OnListaPACSChoice(evt); OnPropiedadCambiada(); } } void PanelConfiguracionPACS::OnTextoCambiado(wxCommandEvent & ) { m_pAETReal->SetLabel(wxString::FromUTF8( GNC::Entorno::Instance()->ParseAET(std::string(m_pAETLocal->GetValue().ToUTF8())).c_str() )); OnPropiedadCambiada(); } void PanelConfiguracionPACS::OnSize(wxSizeEvent & event) { wxSize oldSize = m_staticTextExplicacion->GetSize(); Freeze(); m_staticTextExplicacion->Freeze(); m_staticTextExplicacion->SetLabel(_("You must configure the local AET, which is used to communicate with the DICOM nodes. The specified port must be opened in the firewall, as it is essential for transfers.")); m_staticTextExplicacion->Wrap( event.GetSize().x-25 ); m_staticTextExplicacion->Thaw(); //Layout(); Thaw(); wxSize newSize = m_staticTextExplicacion->GetSize(); if (newSize != oldSize) { Layout(); event.Skip(false); } else { event.Skip(true); } } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionpacs.h000066400000000000000000000050321314736454600267210ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include "panelesconfiguracionginkgobase.h" #include
    namespace GNC { namespace GUI { class PanelConfiguracionPACS: public PanelConfiguracionPACSBase, public IPasoConfiguracion { public: PanelConfiguracionPACS(wxWindow* pParent, IDialogoConfiguracion* pDialogo); ~PanelConfiguracionPACS(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion typedef struct TipoConfigLocal { bool useTLS; bool verifyCredentials; std::string privateKey; std::string certificate; TipoConfigLocal() : useTLS(false), verifyCredentials(false) { } } TipoConfigLocal; protected: virtual void OnAdvancedLocal(wxCommandEvent &event); virtual void OnListaPACSChoice(wxDataViewEvent &event); virtual void OnListaPACSDClick(wxDataViewEvent &event); virtual void OnNuevoClick(wxCommandEvent &event); virtual void OnEditarClick(wxCommandEvent &event); virtual void OnEliminarClick(wxCommandEvent &event); virtual void OnSetDefaultClick(wxCommandEvent &event); virtual void OnTextoCambiado(wxCommandEvent &event ); void OnSize(wxSizeEvent &); wxObjectDataPtr m_pModel; typedef std::vector > TipoListaPACS; TipoListaPACS m_servidores; TipoConfigLocal m_configLocal; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionpermisos.cpp000066400000000000000000000716001314736454600301730ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
    #include #include #include #include #include #include #include #include #include #include #include #include #include "panelconfiguracionpermisos.h" #include #include
    #include
    #include
    #include
    #include #include #define SEPARADOR "|" #define COL_NAME 0 #define COL_VALUE 1 #define COL_DEFAULT_VALUE 2 #define PERM_COL_NAME_IDX 0 #define PERM_COL_NAME_WIDTH 340 #define PERM_COL_ACTIVE_IDX 1 #define PERM_COL_ACTIVE_WIDTH 80 #define PERM_COL_XML 2 #define COLOUR_ACTIVE wxColour(10,174,10) #define COLOUR_INACTIVE wxColour(174,10,10) #define COLOUR_SET_BY_USER wxColour(229,137,39) namespace GNC { namespace GUI { class ProfileDialog: public ProfileDialogBase { typedef struct TipoPermiso { std::string clave; bool valor; TipoPermiso() : clave(), valor(false) { } TipoPermiso(const std::string& _clave, bool _valor) : clave(_clave), valor(_valor) { } } TipoPermiso; typedef std::map TipoMapaPermisos; public: ProfileDialog(wxWindow* pParent, std::list& listaNombres, bool isnew = false) : ProfileDialogBase(pParent), m_Ok(false), m_listaNombres(listaNombres) { if (isnew) { long idNombreAutomatico = 0; std::string profile_template = _Std("Profile"); for (std::list::iterator it = listaNombres.begin(); it != listaNombres.end(); ++it) { std::istringstream is (*it); std::string t_name; long id = -1; is >> t_name >> id; if (!is.fail() && t_name == profile_template && id > 0) { idNombreAutomatico = std::max(id, idNombreAutomatico); } } { std::ostringstream os; os << profile_template << " " << (idNombreAutomatico + 1); m_pName->SetValue( wxString::FromUTF8( os.str().c_str() ) ); } } const GNC::ControladorPermisos::TipoMapaDefiniciones& definiciones = GNC::ControladorPermisos::Instance()->GetMapaDefiniciones(); //cargamos los permisos "publicos" definidos std::string ultimaCategoria = ""; wxPGProperty* cat = NULL; m_pGridPermisos->SetColumnCount(3); m_pGridPermisos->SetColumnProportion(COL_NAME, 3); m_pGridPermisos->SetColumnProportion(COL_VALUE, 4); m_pGridPermisos->SetColumnProportion(COL_DEFAULT_VALUE, 2); for(GNC::ControladorPermisos::TipoMapaDefiniciones::const_iterator it = definiciones.begin(); it != definiciones.end(); ++it) { if(!(*it).second.privado) { if ((*it).second.espacioNombres != ultimaCategoria) { ultimaCategoria = (*it).second.espacioNombres; cat = m_pGridPermisos->Append(new wxPropertyCategory(wxString::FromUTF8((*it).second.descripcionNamespace.c_str()),wxString::FromUTF8(ultimaCategoria.c_str()))); } std::string clave = (*it).second.espacioNombres + SEPARADOR + (*it).second.id; wxLongStringProperty* propValue = new wxLongStringProperty(wxString::FromUTF8((*it).second.descripcion.c_str()), wxString::FromUTF8(clave.c_str()), wxString::FromUTF8((*it).second.valorPorDefecto.c_str())); wxPGProperty* prop = cat->AppendChild(propValue); m_pGridPermisos->SetPropertyCell(prop, COL_DEFAULT_VALUE, _("Default value")); SetPropertyActive(prop, (*it).second.activoPorDefecto); } } m_pGridPermisos->GetRoot()->SetFlagRecursively(wxPG_PROP_NO_ESCAPE, true); m_pGridPermisos->Connect(wxEVT_PG_DOUBLE_CLICK, wxPropertyGridEventHandler( ProfileDialog::OnPgDoubleClick ), NULL, this ); m_pGridPermisos->Connect(wxEVT_PG_RIGHT_CLICK, wxPropertyGridEventHandler( ProfileDialog::OnPgMenu ), NULL, this ); } ~ProfileDialog() { } void GetParametros(std::string &nombre, std::string &xml) { nombre = std::string(m_pName->GetValue().ToUTF8()); wxXmlDocument doc; wxXmlNode* root = new wxXmlNode(NULL, wxXML_ELEMENT_NODE, wxT("permisos")); doc.SetRoot(root); //transformamos lo que esta viendo el usuario a un xml... for(wxPropertyGridIterator it = m_pGridPermisos->GetIterator(); !it.AtEnd(); it.Next()) { wxPGProperty* pProperty = it.GetProperty(); wxString clave = pProperty->GetName(); wxStringTokenizer tkz(clave, wxString::FromUTF8(SEPARADOR)); std::string espacioNombres ="", id=""; if ( tkz.HasMoreTokens() ) { espacioNombres = tkz.GetNextToken().ToUTF8(); if (tkz.HasMoreTokens()) { id = tkz.GetNextToken().ToUTF8(); } } if (id != "" && espacioNombres != "") { std::string stdclave( espacioNombres + "." + id ); std::string accion; if (IsPropertyActive(pProperty)) { accion = "activar"; } else { accion = "desactivar"; } std::string val(pProperty->GetValueAsString().ToUTF8()); std::string activopordefecto = "true"; GNC::ControladorPermisos::TipoMapaDefiniciones mapa = GNC::ControladorPermisos::Instance()->GetMapaDefiniciones(); GNC::ControladorPermisos::TipoMapaDefiniciones::iterator it = mapa.find(stdclave); GNC::ControladorPermisos::TipoDefinicionPermiso def; if (it != mapa.end()) { def = (*it).second; } if (!def.activoPorDefecto) { activopordefecto = "false"; } wxXmlNode* permiso = new wxXmlNode(root, wxXML_ELEMENT_NODE, wxT("permiso")); permiso->AddAttribute(wxT("id"), wxString::FromUTF8(id.c_str())); permiso->AddAttribute(wxT("namespace"), wxString::FromUTF8(espacioNombres.c_str())); permiso->AddAttribute(wxT("accion"), wxString::FromUTF8(accion.c_str())); permiso->AddAttribute(wxT("activopordefecto"), wxString::FromUTF8(activopordefecto.c_str())); wxXmlNode* data = new wxXmlNode(permiso, wxXML_ELEMENT_NODE, wxT("default_value")); data = new wxXmlNode(data, wxXML_CDATA_SECTION_NODE, wxT("default_value")); data->SetContent(wxString::FromUTF8(def.valorPorDefecto.c_str())); data = new wxXmlNode(permiso, wxXML_ELEMENT_NODE, wxT("value")); data = new wxXmlNode(data, wxXML_CDATA_SECTION_NODE, wxT("value")); data->SetContent(wxString::FromUTF8(val.c_str())); } } wxMemoryOutputStream out; doc.SetFileEncoding(wxT("UTF-8")); doc.Save(out,0); char* vectorWidgets = new char[out.GetLength()]; out.CopyTo(vectorWidgets,out.GetLength()); xml = std::string(vectorWidgets, out.GetLength()); delete[] vectorWidgets; } virtual void OnPgDoubleClick(wxPropertyGridEvent &event) { if (event.GetProperty() == NULL || event.GetProperty()->IsCategory()) return; wxPGProperty* prop = event.GetProperty(); SetPropertyActive(prop, !IsPropertyActive(prop)); } bool IsPropertyActive(wxPGProperty* pProp) { wxColour col = pProp->GetCell(COL_NAME).GetFgCol(); return col == COLOUR_ACTIVE; } void SetPropertyActive(wxPGProperty* pProp, bool value) { if (value) { m_pGridPermisos->SetPropertyCell(pProp, COL_NAME, pProp->GetLabel(), GinkgoResourcesManager::MenuIcons::GetIcoTick(), COLOUR_ACTIVE); } else { m_pGridPermisos->SetPropertyCell(pProp, COL_NAME, pProp->GetLabel(), GinkgoResourcesManager::MenuIcons::GetIcoCross(), COLOUR_INACTIVE); } m_pGridPermisos->RefreshProperty(pProp); } virtual void OnPgMenu(wxPropertyGridEvent &event) { if (event.GetProperty() == NULL || event.GetProperty()->IsCategory()) return; wxPGProperty* prop = event.GetProperty(); bool isActive = IsPropertyActive(prop); wxMenu menu; wxMenuItem* pActive = menu.Append(0, _("Active"), _("Set property active"), wxITEM_CHECK); wxMenuItem* pInactive = menu.Append(1, _("Inactive"), _("Set property inactive"), wxITEM_CHECK); wxMenuItem* pDefault = menu.Append(2, _("Default value"), _("Set default value"), wxITEM_NORMAL); if (isActive) { pActive->Check(true); pInactive->Check(false); } else { pActive->Check(false); pInactive->Check(true); } menu.Connect(pActive->GetId(),wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( ProfileDialog::OnActiveSelectedProperty ), NULL, this ); menu.Connect(pInactive->GetId(),wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( ProfileDialog::OnDesactiveSelectedProperty ), NULL, this ); menu.Connect(pDefault->GetId(),wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( ProfileDialog::OnSetDefaultSelected ), NULL, this ); m_pGridPermisos->PopupMenu(&menu); } void OnActiveSelectedProperty(wxCommandEvent&) { wxPGProperty* prop = m_pGridPermisos->GetSelectedProperty(); if (prop != NULL) { SetPropertyActive(prop, true); } } void OnDesactiveSelectedProperty(wxCommandEvent&) { wxPGProperty* prop = m_pGridPermisos->GetSelectedProperty(); if (prop != NULL) { SetPropertyActive(prop, false); } } void OnSetDefaultSelected(wxCommandEvent&) { wxPGProperty* prop = m_pGridPermisos->GetSelectedProperty(); if (prop != NULL) { wxString clave = prop->GetName(); wxStringTokenizer tkz(clave, wxString::FromUTF8(SEPARADOR)); std::string espacioNombres ="", id=""; if ( tkz.HasMoreTokens() ) { espacioNombres = tkz.GetNextToken().ToUTF8(); if (tkz.HasMoreTokens()) { id = tkz.GetNextToken().ToUTF8(); } } if (id != "" && espacioNombres != "") { std::string stdclave( espacioNombres + "." + id ); std::string val(prop->GetValueAsString().ToUTF8()); GNC::ControladorPermisos::TipoMapaDefiniciones mapa = GNC::ControladorPermisos::Instance()->GetMapaDefiniciones(); GNC::ControladorPermisos::TipoMapaDefiniciones::iterator it = mapa.find(stdclave); GNC::ControladorPermisos::TipoDefinicionPermiso def; if (it != mapa.end()) { def = (*it).second; } prop->SetValue(wxString::FromUTF8(def.valorPorDefecto.c_str())); m_pGridPermisos->SetPropertyCell(prop, COL_DEFAULT_VALUE, _("Default value"), wxNullBitmap, wxColour(0,0,0)); SetPropertyActive(prop, def.activoPorDefecto); } } } void SetParametros(const std::string &nombre, const std::string &xml) { m_nombreEditar = nombre; m_pName->SetValue(wxString::FromUTF8(nombre.c_str())); TipoMapaPermisos mapa = GetPermisosFromXml(xml); for(wxPropertyGridIterator it = m_pGridPermisos->GetIterator(); !it.AtEnd(); it.Next()) { wxPGProperty* pProperty = it.GetProperty(); if(pProperty != NULL) { TipoMapaPermisos::iterator itp = mapa.find(std::string(pProperty->GetName().ToUTF8())); if (itp != mapa.end()) { GNC::GCS::Permisos::EstadoPermiso& perm = (*itp).second; SetPropertyActive(pProperty, perm); pProperty->SetValue( wxString::FromUTF8(perm.GetRawValue().c_str()) ); if (perm.TieneValorPorDefecto()) { m_pGridPermisos->SetPropertyCell(pProperty, COL_DEFAULT_VALUE, _("Default value"), wxNullBitmap, wxColour(0,0,0)); } else { m_pGridPermisos->SetPropertyCell(pProperty, COL_DEFAULT_VALUE, _("Set by user"), wxNullBitmap, COLOUR_SET_BY_USER); } } } } //free memory } TipoMapaPermisos GetPermisosFromXml(const std::string& stdCadena) { TipoMapaPermisos permisos; try { GNC::ControladorPermisos::TipoMapaPermisosNamespace mapaPermisosNamespace = GNC::ControladorPermisos::Instance()->GetPermisosFromXML(stdCadena); for( GNC::ControladorPermisos::TipoIteradorMapaPermisosNamespace itNames = mapaPermisosNamespace.begin(); itNames != mapaPermisosNamespace.end(); ++itNames ) { for( GNC::ControladorPermisos::TipoIteradorMapaPermisos itPermisos = (*itNames).second->begin(); itPermisos != (*itNames).second->end(); ++itPermisos) { permisos[itNames->first + SEPARADOR + itPermisos->first] = itPermisos->second; } delete (*itNames).second; } } catch (GNC::GCS::ControladorPermisosException& ce) { LOG_WARN("GestionPermisos", "Existe en la configuración un xml de permisos mal formado " << ce.GetCause()); } return permisos; } virtual void OnCancelClick(wxCommandEvent &) { EndModal(wxID_CANCEL); } virtual void OnOkClick(wxCommandEvent &) { if (Validar()) { m_Ok=true; EndModal(wxID_OK); } } bool Validar() { if(m_pName->GetValue() != wxEmptyString) { //no puede duplicar un nombre que esté en la lista y que no sea el mismo std::string nombre (m_pName->GetValue().ToUTF8()); if (nombre != m_nombreEditar) { for (std::list::iterator it = m_listaNombres.begin(); it != m_listaNombres.end(); ++it) { if ((*it) == nombre) { wxMessageBox(_("Profile name can't be repeated"),_("Info"),wxOK | wxICON_INFORMATION, this); return false; } } } return true; } else { wxMessageBox(_("You must fill in name field to continue"),_("Info"),wxOK | wxICON_INFORMATION, this); } return false; } bool m_Ok; std::list m_listaNombres; std::string m_nombreEditar; }; ////////////////-------------------------------------------------------------------------------------///////////////////////////// PanelConfiguracionPermisos::PanelConfiguracionPermisos(wxWindow* pParent,IDialogoConfiguracion* pDialogo): PanelConfiguracionPermisosBase(pParent), IPasoConfiguracion(pDialogo) { m_pModel = new wxDataViewListStore(); m_pListProfiles->AssociateModel(m_pModel.get()); m_pListProfiles->AppendColumn( new wxDataViewColumn( _("Name"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), PERM_COL_NAME_IDX, PERM_COL_NAME_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListProfiles->AppendColumn( new wxDataViewColumn( _("Active"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), PERM_COL_ACTIVE_IDX, PERM_COL_ACTIVE_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); Recargar(); m_permisosCambiados = false; m_pListProfiles->Connect(wxEVT_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( PanelConfiguracionPermisos::OnListaPermisosChangeSelection ), NULL, this ); m_pListProfiles->Connect(wxEVT_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( PanelConfiguracionPermisos::OnListaPermisosDClick ), NULL, this ); } PanelConfiguracionPermisos::~PanelConfiguracionPermisos() { } void PanelConfiguracionPermisos::Recargar() { GNC::GCS::ConfigurationController::TListGroups profiles; GNC::GCS::ConfigurationController::Instance()->readGroupGeneral("/GinkgoCore/Profiles", profiles); std::string strTmp, xml; bool apply; bool primero =true; m_pListProfiles->DeleteAllItems(); wxVector data; for (GNC::GCS::ConfigurationController::TListGroups::iterator it = profiles.begin(); it != profiles.end(); ++it) { GNC::GCS::ConfigurationController::TListGroups::value_type tuple = (*it); data.clear(); tuple.readStringValue("Name", strTmp); data.push_back(wxString::FromUTF8(strTmp.c_str())); tuple.readBoolValue("Apply", apply, false); if(apply) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } tuple.readStringValue("XML", xml); data.push_back(wxString::FromUTF8(xml.c_str())); m_pModel->AppendItem(data); if(primero) { if(m_pModel->GetCount() > 0) { wxDataViewItem item = m_pModel->GetItem(0); if (item.IsOk()) { m_pListProfiles->SelectRow(0); } } m_pBEdit->Enable(true); m_pBDelete->Enable(true); m_pBActive->Enable(true); primero = false; } } } //region "Metodos de IPasoConfiguracion" wxWindow* PanelConfiguracionPermisos::GetPanel() { return this; } std::string PanelConfiguracionPermisos::GetTitle() { return _Std("Profiles"); } std::string PanelConfiguracionPermisos::GetCabecera() { return _Std("Profiles Settings"); } bool PanelConfiguracionPermisos::Validar() { bool ok = true; //si modificado... los cambios se recargaran ahora pero puede haber incongruencias if(m_permisosCambiados) { GNC::ControladorPermisos::FreeInstance(); wxMessageBox(_("Ginkgo CADx must restart for the permission changes to take effect"),_("Info")); } return ok; } bool PanelConfiguracionPermisos::Guardar() { GNC::GCS::ConfigurationController::Instance()->deleteEntryGeneral("/GinkgoCore/Profiles"); GNC::GCS::ConfigurationController::TListGroups profiles; for (unsigned int i = 0; i< m_pModel->GetItemCount(); i++) { GNC::GCS::ConfigurationController::TMapValues profile; wxVariant value; m_pModel->GetValueByRow(value, i, PERM_COL_NAME_IDX); profile["Name"] = value.GetString().ToUTF8(); m_pModel->GetValueByRow(value, i, PERM_COL_ACTIVE_IDX); profile.insertBool("Apply", value.GetString().CompareTo(_("Yes")) == 0); m_pModel->GetValueByRow(value, i, PERM_COL_XML); profile["XML"] = value.GetString().ToUTF8(); profiles.push_back(profile); } GNC::GCS::ConfigurationController::Instance()->writeGroupGeneral("/GinkgoCore/Profiles", profiles, "Profile"); return true; } //endregion void PanelConfiguracionPermisos::OnListaPermisosDClick(wxDataViewEvent& ) { wxCommandEvent evt; OnEditarClick(evt); } void PanelConfiguracionPermisos::OnListaPermisosChangeSelection(wxDataViewEvent& event) { if(event.GetItem().IsOk()) { m_pBEdit->Enable(true); m_pBDelete->Enable(true); m_pBActive->Enable(true); } else { m_pBEdit->Enable(false); m_pBDelete->Enable(false); m_pBActive->Enable(false); } } void PanelConfiguracionPermisos::OnSetActive(wxCommandEvent &) { wxDataViewItem selection = m_pListProfiles->GetSelection(); if (selection.IsOk()) { wxDataViewItemArray items; for (unsigned int i = 0; i < m_pModel->GetCount(); ++i) { wxDataViewItem item = m_pModel->GetItem(i); m_pModel->SetValue(_("No"), item, PERM_COL_ACTIVE_IDX); items.Add(item); } m_pModel->SetValue(_("Yes"), selection, PERM_COL_ACTIVE_IDX); m_pModel->ItemsChanged(items); OnPropiedadCambiada(); } } void PanelConfiguracionPermisos::OnNuevoClick(wxCommandEvent &) { //se le pasa la lista de identificadores para que no duplique std::list listaNombres; wxVariant val; for (unsigned int i = 0; i < m_pModel->GetCount(); ++i) { m_pModel->GetValueByRow(val, i, PERM_COL_NAME_IDX); listaNombres.push_back(std::string(val.GetString().ToUTF8())); } ProfileDialog dialogo(this, listaNombres, true); dialogo.ShowModal(); if(dialogo.m_Ok) { std::string name, xml; dialogo.GetParametros(name, xml); bool apply = true; if(m_pModel->GetCount() > 0) { wxDataViewItem item = m_pModel->GetItem(0); if (item.IsOk()) { apply = false; } } wxVector data; data.push_back(wxString::FromUTF8(name.c_str())); if (apply) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } data.push_back(wxString::FromUTF8(xml.c_str())); m_pModel->AppendItem(data); wxVariant val; bool notFound = true; for (unsigned int i = 0; notFound && i < m_pModel->GetCount(); ++i) { m_pModel->GetItem(i); m_pModel->GetValueByRow(val, i, PERM_COL_NAME_IDX); std::string stdVal(val.GetString().ToUTF8()); if (stdVal == name) { notFound = false; m_pListProfiles->SelectRow(i); } } OnPropiedadCambiada(); } } void PanelConfiguracionPermisos::OnEditarClick(wxCommandEvent &) { wxDataViewItem selection = m_pListProfiles->GetSelection(); if (selection.IsOk()) { wxVariant val; //se le pasa la lista de identificadores para que no duplique std::list listaNombres; for (unsigned int i = 0; i < m_pModel->GetCount(); ++i) { m_pModel->GetValueByRow(val, i, PERM_COL_NAME_IDX); listaNombres.push_back(std::string(val.GetString().ToUTF8())); } ProfileDialog dialogo(this, listaNombres); m_pModel->GetValue(val, selection, PERM_COL_NAME_IDX); std::string name(val.GetString().ToUTF8()); m_pModel->GetValue(val, selection, PERM_COL_XML); std::string xml(val.GetString().ToUTF8()); dialogo.SetParametros(name, xml); dialogo.ShowModal(); if(dialogo.m_Ok) { dialogo.GetParametros( name, xml); m_pModel->SetValue(wxVariant(wxString::FromUTF8(name.c_str())), selection, PERM_COL_NAME_IDX); m_pModel->SetValue(wxVariant(wxString::FromUTF8(xml.c_str())), selection, PERM_COL_XML); m_pModel->ItemChanged(selection); OnPropiedadCambiada(); } } } void PanelConfiguracionPermisos::OnEliminarClick(wxCommandEvent &) { wxDataViewItem selection = m_pListProfiles->GetSelection(); if(selection.IsOk()) { wxVariant val; m_pModel->GetValue(val, selection, PERM_COL_NAME_IDX); std::string idSeleccionado(val.GetString().ToUTF8()); int answer = wxMessageBox(_("Confirm the removal of the profile ") + wxString::FromUTF8(idSeleccionado.c_str()), _("Data modified"), wxYES_NO | wxCANCEL, this); if(answer == wxYES) { m_pModel->DeleteItem(m_pListProfiles->GetSelectedRow()); OnPropiedadCambiada(); } } } void PanelConfiguracionPermisos::OnPropiedadCambiada() { m_permisosCambiados = true; IPasoConfiguracion::OnPropiedadCambiada(); } void PanelConfiguracionPermisos::OnTextoCambiado(wxCommandEvent & ) { } void PanelConfiguracionPermisos::OnSize(wxSizeEvent & event) { event.Skip(true); } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionpermisos.h000066400000000000000000000037551314736454600276460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "panelesconfiguracionginkgobase.h" #include #include namespace GNC { namespace GUI { class PanelConfiguracionPermisos: public PanelConfiguracionPermisosBase, public IPasoConfiguracion { public: PanelConfiguracionPermisos(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~PanelConfiguracionPermisos(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion protected: virtual void OnListaPermisosDClick(wxDataViewEvent& event); virtual void OnListaPermisosChangeSelection(wxDataViewEvent& event); virtual void OnSetActive(wxCommandEvent &event); virtual void OnNuevoClick(wxCommandEvent &event); virtual void OnEditarClick(wxCommandEvent &event); virtual void OnEliminarClick(wxCommandEvent &event); virtual void OnTextoCambiado(wxCommandEvent &event ); virtual void OnPropiedadCambiada(); void OnSize(wxSizeEvent &); wxObjectDataPtr m_pModel; bool m_permisosCambiados; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionseguridad.cpp000066400000000000000000000332141314736454600303000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
    #include #include #include #include #include #include #include #include #include #include "panelconfiguracionseguridad.h" #include #include #include
    #include
    #include
    #include namespace GNC { namespace GUI { class UserDialog: public UserDialogBase { public: //nuevo usuario UserDialog(wxWindow* pParent, GNC::GCS::Ptr pConexion): UserDialogBase(pParent) { SetTitle(_("New User")); m_pHeader->SetToolTip(_("New User")); m_pFormPanel->SetToolTip(_("New User")); m_pSesionControlador = pConexion; m_pTCUsuario->SetFocus(); } //cambiar password UserDialog(wxWindow* pParent, const wxString& nombreUsuario, GNC::GCS::Ptr pConexion): UserDialogBase(pParent) { m_pTCUsuario->Enable(false); m_pTCUsuario->SetValue(nombreUsuario); m_pSesionControlador = pConexion; m_pTCPassword0->SetFocus(); } void HideUserName() { m_pTCUsuario->Show(false); m_pLabelUser->Show(false); m_pFormPanel->Layout(); } std::string GetPassword() { return std::string(m_pTCPassword0->GetValue().ToUTF8()); } std::string GetUser() { return std::string(m_pTCUsuario->GetValue().ToUTF8()); } virtual void OnOkClick(wxCommandEvent& ) { //TODO hacer comprobaciones mejores sobre el password... if (m_pTCUsuario->IsEnabled() && m_pTCUsuario->IsShown()) { if (m_pTCUsuario->GetValue().size() < 4) { wxMessageBox(_("User name has to contain at least 4 characters"),_("Info"), wxOK | wxICON_INFORMATION, this); m_pTCUsuario->SelectAll(); return; } std::string user(m_pTCUsuario->GetValue().ToUTF8()); if (GSEC::Auth::ControladorAutenticacion::Instance()->ExisteUsuario(user, m_pSesionControlador)) { wxMessageBox(_("User name repeated"),_("Info"), wxOK | wxICON_INFORMATION, this); m_pTCUsuario->SelectAll(); return; } } if (m_pTCPassword0->GetValue() != m_pTCPassword1->GetValue()) { wxMessageBox(_("Password and confirm password can't be different."),_("Info"), wxOK | wxICON_INFORMATION, this); m_pTCPassword1->SetValue(wxEmptyString); m_pTCPassword0->SetFocus(); m_pTCPassword0->SelectAll(); return; } if (m_pTCPassword0->GetValue().size() < 6) { wxMessageBox(_("Password has to contain at least 6 characters"),_("Info"), wxOK | wxICON_INFORMATION, this); m_pTCPassword0->SetFocus(); m_pTCPassword0->SelectAll(); return; } EndModal(wxID_OK); } GNC::GCS::Ptr m_pSesionControlador; }; PanelConfiguracionSeguridad::PanelConfiguracionSeguridad(wxWindow* pParent,IDialogoConfiguracion* pDialogo): PanelConfiguracionSeguridadBase(pParent), IPasoConfiguracion(pDialogo) { m_pSesionControlador = GSEC::Auth::ControladorAutenticacion::Instance()->IniciarSesionModificacionBBDDSeguridad(); m_pImageList = new wxImageList(16,16,true); m_pImageList->Add(GinkgoResourcesManager::MenuIcons::GetIcoUser()); m_pListaUsuarios->SetImageList(m_pImageList,wxIMAGE_LIST_SMALL); //se corresponden con TipoAutenticacion de controlador autenticacion m_pSecType->Append(_("No login")); m_pSecType->Append(_("User/Password")); m_pSecType->Append(_("Password")); m_pSecType->Select(GSEC::Auth::ControladorAutenticacion::Instance()->GetTipoAutenticacion()); Recargar(); } PanelConfiguracionSeguridad::~PanelConfiguracionSeguridad() { delete m_pImageList; m_pImageList = NULL; GSEC::Auth::ControladorAutenticacion::Instance()->CancelarCambiosYCerrarBBDDSeguridad(m_pSesionControlador); } void PanelConfiguracionSeguridad::Recargar() { wxWindowDisabler dis; Freeze(); m_pPanelUsuarios->Hide(); m_pPanelPassword->Hide(); int seleccion = m_pSecType->GetSelection(); switch(seleccion) { case GSEC::Auth::TA_USER_PASSWORD: { //se muestra el panel user/password m_pPanelUsuarios->Show(true); //se rellenan los usuarios m_pListaUsuarios->ClearAll(); std::list listaUsuarios; GSEC::Auth::ControladorAutenticacion::Instance()->GetAllUsers(listaUsuarios,m_pSesionControlador); long index = 0; for (std::list::iterator it = listaUsuarios.begin(); it != listaUsuarios.end(); ++it) { m_pListaUsuarios->InsertItem(index++, wxString::FromUTF8((*it).c_str()),0); } } break; case GSEC::Auth::TA_PASSWORD: { //se muestra el panel m_pPanelPassword->Show(true); //se mira a ver si el password esta establecido if(GSEC::Auth::ControladorAutenticacion::Instance()->IsPasswordGeneralSetted(m_pSesionControlador)) { m_pLabelPassword->SetLabel(_("Password is setted")); m_pButtonSetPassword->SetLabel(_("Change password")); } else { m_pLabelPassword->SetLabel(_("Password is not setted")); m_pButtonSetPassword->SetLabel(_("Set password")); } m_pPanelPassword->Layout(); } break; case GSEC::Auth::TA_NO_LOGIN: default: { //no se hace nada } } Layout(); Thaw(); } //region "Metodos de IPasoConfiguracion" wxWindow* PanelConfiguracionSeguridad::GetPanel() { return this; } std::string PanelConfiguracionSeguridad::GetTitle() { return _Std("Security"); } std::string PanelConfiguracionSeguridad::GetCabecera() { return _Std("Security Setting"); } bool PanelConfiguracionSeguridad::Validar() { bool ok = true; int seleccion = m_pSecType->GetSelection(); switch(seleccion) { case GSEC::Auth::TA_USER_PASSWORD: { std::list listaUsuarios; GSEC::Auth::ControladorAutenticacion::Instance()->GetAllUsers(listaUsuarios,m_pSesionControlador); if(listaUsuarios.empty()) { wxMessageBox(_("You must create at least one user"), _("Info")); ok = false; } } break; case GSEC::Auth::TA_PASSWORD: { std::list listaUsuarios; if(!GSEC::Auth::ControladorAutenticacion::Instance()->IsPasswordGeneralSetted(m_pSesionControlador)) { wxMessageBox(_("You must set the main password"), _("Info")); ok = false; } } break; case GSEC::Auth::TA_NO_LOGIN: default: { //no se hace nada } } return ok; } bool PanelConfiguracionSeguridad::Guardar() { //guardar el tipo de seguridad utilizado GSEC::Auth::ControladorAutenticacion::Instance()->SetTipoAutenticacion((GSEC::Auth::TipoAutenticacion) m_pSecType->GetSelection()); GSEC::Auth::ControladorAutenticacion::Instance()->GuardarCambiosBBDDSeguridad(m_pSesionControlador); return true; } //endregion void PanelConfiguracionSeguridad::OnSecTypeChoice(wxCommandEvent &/*event*/) { OnPropiedadCambiada(); Recargar(); } void PanelConfiguracionSeguridad::OnListaUsuariosItemSelected(wxListEvent &) { m_pBDelete->Enable(true); m_pBCambiarPassword->Enable(true); } void PanelConfiguracionSeguridad::OnListaUsuariosItemDeSelected(wxListEvent &) { m_pBDelete->Enable(false); m_pBCambiarPassword->Enable(false); } void PanelConfiguracionSeguridad::OnNuevoClick(wxCommandEvent &) { OnPropiedadCambiada(); UserDialog dlg(this,m_pSesionControlador); int returnCode = dlg.ShowModal(); if (returnCode == wxID_OK) { //se inserta en la bbdd if (GSEC::Auth::ControladorAutenticacion::Instance()->InsertarUsuario(dlg.GetUser(), dlg.GetPassword(), m_pSesionControlador)) { //se inserta el la lista wxMessageBox(_("User inserted successfully"),_("Info"), wxOK | wxICON_INFORMATION, this); m_pListaUsuarios->InsertItem(m_pListaUsuarios->GetItemCount(), wxString::FromUTF8(dlg.GetUser().c_str()),0); } else { wxMessageBox(_("There was an error inserting user. To get more info open the LOG."),_("Info"), wxOK | wxICON_INFORMATION, this); } } } void PanelConfiguracionSeguridad::OnCambiarPasswordClick(wxCommandEvent &) { OnPropiedadCambiada(); if (m_pListaUsuarios->GetSelectedItemCount() == 0) return; //se busca el item seleccionado long item = m_pListaUsuarios->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); if( item != -1) { wxString nombreUsuario = m_pListaUsuarios->GetItemText(item); UserDialog dlg(this, nombreUsuario, m_pSesionControlador); int returnCode = dlg.ShowModal(); if (returnCode == wxID_OK) { //se inserta en la bbdd if (GSEC::Auth::ControladorAutenticacion::Instance()->CambiarPassword(dlg.GetUser(), dlg.GetPassword(),m_pSesionControlador)) { //se inserta el la lista wxMessageBox(_("Password changed successfully"),_("Info"), wxOK | wxICON_INFORMATION, this); } else { wxMessageBox(_("There was an error changing the password. To get more info open the LOG."),_("Info"), wxOK | wxICON_INFORMATION, this); } } } } void PanelConfiguracionSeguridad::OnEliminarClick(wxCommandEvent &) { if (m_pListaUsuarios->GetItemCount() > 1 ) { OnPropiedadCambiada(); long item = m_pListaUsuarios->GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); if( item != -1) { std::string nombreUsuario(m_pListaUsuarios->GetItemText(item).ToUTF8()); if (GSEC::Auth::ControladorAutenticacion::Instance()->EliminarUsuario(nombreUsuario, m_pSesionControlador)) { //se inserta el la lista wxMessageBox(_("User deleted successfully"),_("Info"), wxOK | wxICON_INFORMATION, this); m_pListaUsuarios->DeleteItem(item); } else { wxMessageBox(_("There was an error deleting user. To get more info open the LOG."),_("Info"), wxOK | wxICON_INFORMATION, this); } } } else { wxMessageBox(_("Ginkgo CADx must have at least one user."),_("Info"), wxOK | wxICON_INFORMATION, this); } } void PanelConfiguracionSeguridad::OnSetMainPassword(wxCommandEvent &) { OnPropiedadCambiada(); UserDialog dlg(this, _("User"), m_pSesionControlador); dlg.HideUserName(); int returnCode = dlg.ShowModal(); if (returnCode == wxID_OK) { //se inserta en la bbdd if (GSEC::Auth::ControladorAutenticacion::Instance()->SetPasswordGeneral(dlg.GetPassword(), m_pSesionControlador)) { //se inserta el la lista wxMessageBox(_("Password changed successfully"),_("Info"), wxOK | wxICON_INFORMATION, this); Recargar(); } else { wxMessageBox(_("There was an error changing the password. To get more info open the LOG."),_("Info"), wxOK | wxICON_INFORMATION, this); } } } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionseguridad.h000066400000000000000000000037611314736454600277510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "panelesconfiguracionginkgobase.h" #include #include #include #include namespace GNC { namespace GUI { class PanelConfiguracionSeguridad: public PanelConfiguracionSeguridadBase, public IPasoConfiguracion { public: PanelConfiguracionSeguridad(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~PanelConfiguracionSeguridad(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion protected: virtual void OnSecTypeChoice(wxCommandEvent &event); virtual void OnListaUsuariosItemSelected(wxListEvent &event); virtual void OnListaUsuariosItemDeSelected(wxListEvent &event); virtual void OnNuevoClick(wxCommandEvent &event); virtual void OnCambiarPasswordClick(wxCommandEvent &event); virtual void OnEliminarClick(wxCommandEvent & event); virtual void OnSetMainPassword(wxCommandEvent &event); wxImageList* m_pImageList; GNC::GCS::Ptr m_pSesionControlador; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionubicaciones.cpp000066400000000000000000000451161314736454600306210ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
    #include #include #include #include #include #include #include #include #include #include #include "panelconfiguracionubicaciones.h" #include #include #include #include
    #include
    #include
    #include #include #define UB_COL_TITLE_IDX 0 #define UB_COL_TITLE_WIDTH 100 #define UB_COL_PATH_IDX 1 #define UB_COL_PATH_WIDTH 100 #define UB_COL_DESCRIPTION_IDX 2 #define UB_COL_DESCRIPTION_WIDTH 100 #define UB_COL_MONITORIZE_IDX 3 #define UB_COL_MONITORIZE_WIDTH 100 #define UB_COL_CLEAN_BEFORE_IDX 4 #define UB_COL_CLEAN_BEFORE_WIDTH 100 #define UB_COL_CLEAN_AFTER_IDX 5 #define UB_COL_CLEAN_AFTER_WIDTH 100 namespace GNC { namespace GUI { class DialogoAddLocationDialog: public DialogoAddLocationBase { public: typedef GNC::GCS::IEntorno::MapaUbicaciones UbicationsMapType; DialogoAddLocationDialog(wxWindow* pParent, const UbicationsMapType* const pUbicationsMap, const GIL::Ubicacion& u, bool isnew = false) : DialogoAddLocationBase(pParent), m_pUbicationsMap(pUbicationsMap) { m_Ubicacion = u; m_IsNew = isnew; m_Ok = false; m_pTETitle->SetValue( wxString::FromUTF8( m_Ubicacion.Titulo.c_str() ) ); m_pTELocation->SetValue( wxString::FromUTF8( m_Ubicacion.Ruta.c_str() ) ); m_pTEDesc->SetValue( wxString::FromUTF8( m_Ubicacion.Descripcion.c_str() ) ); m_pMonitorize->SetValue(m_Ubicacion.Monitorize); m_pCleanBefore->SetValue(m_Ubicacion.CleanBefore); m_pCleanAfter->SetValue(m_Ubicacion.CleanAfter); } ~DialogoAddLocationDialog() { } virtual void OnOpenDirClick( wxCommandEvent& /*event*/ ) { wxDirDialog dlg(this, _("Choose a directory"), wxEmptyString, wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST); if ( dlg.ShowModal() ) { wxString path = dlg.GetPath(); if (path.size() > 0) { m_pTELocation->SetValue(path); } } } virtual void OnAceptarClick( wxCommandEvent& /*event*/ ) { if (Validar()) { m_Ok = true; EndModal(wxID_OK); } } bool Validar() { if(m_pTETitle->GetValue() != wxEmptyString && m_pTELocation->GetValue() != wxEmptyString) { std::string title (m_pTETitle->GetValue().ToUTF8()); for (UbicationsMapType::const_iterator it = m_pUbicationsMap->begin(); it != m_pUbicationsMap->end(); ++it) { const std::string& ti = (*it).first; if ((ti == title && m_IsNew) || (!m_IsNew && ti == title && title != m_Ubicacion.Titulo) ) { wxMessageBox(_("Location titles can't be repeated"),_("Error"),wxOK | wxICON_ERROR, this); return false; } } if (title.size() > 8) { wxMessageBox(_("Maximum length of title is 8 characters"),_("Error"),wxOK | wxICON_ERROR, this); return false; } if (!wxDir::Exists(m_pTELocation->GetValue())) { wxMessageBox(_("The selected directory can't be opened"),_("Error"),wxOK | wxICON_ERROR, this); return false; } if (m_IsNew) { m_Ubicacion = GIL::Ubicacion( title, std::string(m_pTELocation->GetValue().ToUTF8()), std::string(m_pTEDesc->GetValue().ToUTF8()), m_pMonitorize->GetValue(), m_pCleanBefore->GetValue(), m_pCleanAfter->GetValue()); } else { m_Ubicacion.Update( std::string(m_pTELocation->GetValue().ToUTF8()), std::string(m_pTEDesc->GetValue().ToUTF8()), m_pMonitorize->GetValue(), m_pCleanBefore->GetValue(), m_pCleanAfter->GetValue()); m_Ubicacion.Titulo = title; } return true; } else { wxMessageBox(_("You must fill both title and location fields to continue") ,_("Error"),wxOK | wxICON_ERROR, this); return false; } } bool m_Ok; bool m_IsNew; GIL::Ubicacion m_Ubicacion; const UbicationsMapType* const m_pUbicationsMap; }; ////////////////-------------------------------------------------------------------------------------///////////////////////////// PanelConfiguracionUbicaciones::PanelConfiguracionUbicaciones(wxWindow* pParent, IDialogoConfiguracion* pDialogo): PanelConfiguracionUbicacionesBase(pParent), IPasoConfiguracion(pDialogo) { m_pModel = new wxDataViewListStore(); m_pListUbicaciones->AssociateModel(m_pModel.get()); m_pListUbicaciones->AppendColumn( new wxDataViewColumn( _("Title"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), UB_COL_TITLE_IDX, UB_COL_TITLE_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListUbicaciones->AppendColumn( new wxDataViewColumn( _("Path"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), UB_COL_PATH_IDX, UB_COL_PATH_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListUbicaciones->AppendColumn( new wxDataViewColumn( _("Description"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), UB_COL_DESCRIPTION_IDX, UB_COL_DESCRIPTION_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListUbicaciones->AppendColumn( new wxDataViewColumn( _("Monitorize"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), UB_COL_MONITORIZE_IDX, UB_COL_MONITORIZE_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListUbicaciones->AppendColumn( new wxDataViewColumn( _("Clean before"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), UB_COL_CLEAN_BEFORE_IDX, UB_COL_CLEAN_BEFORE_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListUbicaciones->AppendColumn( new wxDataViewColumn( _("Clean after"), new wxDataViewTextRenderer( "string", wxDATAVIEW_CELL_INERT ), UB_COL_CLEAN_AFTER_IDX, UB_COL_CLEAN_AFTER_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListUbicaciones->Connect(wxEVT_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(PanelConfiguracionUbicaciones::OnUbicationsSelectionChanged), NULL, this); m_pListUbicaciones->Connect(wxEVT_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(PanelConfiguracionUbicaciones::OnUbicationsDClick), NULL, this); Recargar(); m_pUbicaciones->Layout(); Layout(); } PanelConfiguracionUbicaciones::~PanelConfiguracionUbicaciones() { } void PanelConfiguracionUbicaciones::Recargar() { GNC::GCS::ConfigurationController::TListGroups locations; GNC::GCS::ConfigurationController::Instance()->readGroupGeneral("/GinkgoCore/Locations", locations); wxVector data; m_pListUbicaciones->DeleteAllItems(); for (UbicationsMapType::iterator it = m_Ubicaciones.begin(); it != m_Ubicaciones.end(); ++it) { delete (*it).second; } m_Ubicaciones.clear(); for (GNC::GCS::ConfigurationController::TListGroups::iterator it = locations.begin(); it != locations.end(); ++it) { GNC::GCS::ConfigurationController::TListGroups::value_type& item = (*it); data.clear(); std::string title, path, descr; bool monitorize, cleanbefore, cleanafter; item.readStringValue("Title", title); item.readStringValue("Path", path); item.readStringValue("Description", descr); item.readBoolValue("Monitorize", monitorize, false); item.readBoolValue("CleanBefore", cleanbefore, false); item.readBoolValue("CleanAfter", cleanafter, false); m_Ubicaciones[title] = new GIL::Ubicacion(title, path, descr, monitorize, cleanbefore, cleanafter); data.push_back(wxString::FromUTF8(title.c_str())); data.push_back(wxString::FromUTF8(path.c_str())); data.push_back(wxString::FromUTF8(descr.c_str())); if (monitorize) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } if (cleanbefore) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } if (cleanafter) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } m_pModel->AppendItem(data); } } //region "Metodos de IPasoConfiguracion" wxWindow* PanelConfiguracionUbicaciones::GetPanel() { return this; } std::string PanelConfiguracionUbicaciones::GetTitle() { return _Std("Locations"); } std::string PanelConfiguracionUbicaciones::GetCabecera() { return _Std("Location Settings"); } bool PanelConfiguracionUbicaciones::Validar() { bool ok = true; return ok; } bool PanelConfiguracionUbicaciones::Guardar() { GNC::GCS::IEntorno::MapaUbicaciones& mapa = GNC::Entorno::Instance()->GetUbicaciones(); for (GNC::GCS::IEntorno::MapaUbicaciones::iterator it = mapa.begin(); it != mapa.end(); ++it) { delete (*it).second; } mapa.clear(); GNC::GCS::ConfigurationController::Instance()->deleteEntryGeneral("/GinkgoCore/Locations"); GNC::GCS::ConfigurationController::TListGroups locations; for (GNC::GCS::IEntorno::MapaUbicaciones::iterator it = m_Ubicaciones.begin(); it != m_Ubicaciones.end(); ++it) { GIL::Ubicacion* u = (*it).second; mapa[u->Titulo] = u; GNC::GCS::ConfigurationController::TMapValues location; location["Title"] = u->Titulo; location["Path"] = u->Ruta; location["Description"] = u->Descripcion; location.insertBool("Monitorize", u->Monitorize); location.insertBool("CleanBefore", u->CleanBefore); location.insertBool("CleanAfter", u->CleanAfter); locations.push_back(location); } GNC::GCS::ConfigurationController::Instance()->writeGroupGeneral("/GinkgoCore/Locations", locations, "Location"); return true; } //endregion void PanelConfiguracionUbicaciones::OnUbicationsDClick( wxDataViewEvent&) { wxCommandEvent evt; OnEditarClick(evt); } void PanelConfiguracionUbicaciones::OnUbicationsSelectionChanged( wxDataViewEvent& event) { if (event.GetSelection() >= 0) { m_pBotonEdit->Enable(true); m_pBotonDelete->Enable(true); } else { m_pBotonEdit->Enable(false); m_pBotonDelete->Enable(false); } } void PanelConfiguracionUbicaciones::OnNuevoClick(wxCommandEvent &) { DialogoAddLocationDialog dlg(this, &m_Ubicaciones, GIL::Ubicacion(), true); dlg.ShowModal(); if (dlg.m_Ok) { GIL::Ubicacion& tuple = dlg.m_Ubicacion; m_Ubicaciones[tuple.Titulo] = new GIL::Ubicacion(tuple); wxVector data; data.push_back(wxString::FromUTF8(tuple.Titulo.c_str())); data.push_back(wxString::FromUTF8(tuple.Ruta.c_str())); data.push_back(wxString::FromUTF8(tuple.Descripcion.c_str())); if (tuple.Monitorize) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } if (tuple.CleanBefore) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } if (tuple.CleanBefore) { data.push_back(_("Yes")); } else { data.push_back(_("No")); } m_pModel->AppendItem(data); OnPropiedadCambiada(); } } void PanelConfiguracionUbicaciones::OnEditarClick(wxCommandEvent &) { wxDataViewItem selection = m_pListUbicaciones->GetSelection(); if (selection.IsOk()) { wxVariant val; m_pModel->GetValue(val, selection, UB_COL_TITLE_IDX); std::string idSeleccionado(val.GetString().ToUTF8()); GNC::GCS::IEntorno::MapaUbicaciones::iterator it = m_Ubicaciones.find(idSeleccionado); if (it != m_Ubicaciones.end()) { GIL::Ubicacion *pSel = (*it).second; if (pSel != NULL) { DialogoAddLocationDialog dlg(this, &m_Ubicaciones, (*pSel), false); dlg.ShowModal(); if (dlg.m_Ok) { GIL::Ubicacion& tuple = dlg.m_Ubicacion; val = wxString::FromUTF8(tuple.Titulo.c_str()); m_pModel->SetValue(val, selection, UB_COL_TITLE_IDX); val = wxString::FromUTF8(tuple.Ruta.c_str()); m_pModel->SetValue(val, selection, UB_COL_PATH_IDX); val = wxString::FromUTF8(tuple.Descripcion.c_str()); m_pModel->SetValue(val, selection, UB_COL_DESCRIPTION_IDX); m_pModel->SetValue((tuple.Monitorize ? _("Yes") : _("No")), selection, UB_COL_MONITORIZE_IDX); m_pModel->SetValue((tuple.CleanBefore ? _("Yes") : _("No")), selection, UB_COL_CLEAN_BEFORE_IDX); m_pModel->SetValue((tuple.CleanAfter ? _("Yes") : _("No")), selection, UB_COL_CLEAN_AFTER_IDX); (*m_Ubicaciones[tuple.Titulo]) = tuple; m_pModel->ItemChanged(selection); OnPropiedadCambiada(); } } } } } void PanelConfiguracionUbicaciones::OnEliminarClick(wxCommandEvent &) { wxDataViewItem selection = m_pListUbicaciones->GetSelection(); if(selection.IsOk()) { wxVariant val; m_pModel->GetValue(val, selection, UB_COL_TITLE_IDX); std::string idSeleccionado(val.GetString().ToUTF8()); int answer = wxMessageBox(_("Confirm the removal of the node") + wxT(" ") + wxString::FromUTF8(idSeleccionado.c_str()), _("Data modified"), wxYES_NO | wxCANCEL, this); if(answer == wxYES) { GNC::GCS::IEntorno::MapaUbicaciones::iterator it = m_Ubicaciones.find(idSeleccionado); if (it != m_Ubicaciones.end()) { GIL::Ubicacion *pSel = (*it).second; if (pSel != NULL) { bool notFound = true; for (unsigned int i = 0; notFound && i < m_pModel->GetCount(); ++i) { m_pModel->GetItem(i); wxVariant val2; m_pModel->GetValueByRow(val2, i, UB_COL_TITLE_IDX); if (val == val2) { notFound = false; m_pModel->DeleteItem(i); } } delete pSel; m_Ubicaciones.erase(it); } m_pListUbicaciones->Refresh(); wxDataViewEvent evt; OnUbicationsSelectionChanged(evt); OnPropiedadCambiada(); } } } } void PanelConfiguracionUbicaciones::OnHelpClick(wxMouseEvent &) { } void PanelConfiguracionUbicaciones::OnSize(wxSizeEvent & event) { event.Skip(true); } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfiguracionubicaciones.h000066400000000000000000000041001314736454600302520ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include "panelesconfiguracionginkgobase.h" #include #include namespace Ubicaciones { class UbicacionesGridTable; } namespace GNC { namespace GUI { class PanelConfiguracionUbicaciones: public PanelConfiguracionUbicacionesBase, public IPasoConfiguracion { public: PanelConfiguracionUbicaciones(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~PanelConfiguracionUbicaciones(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion public: wxObjectDataPtr m_pModel; typedef GNC::GCS::IEntorno::MapaUbicaciones UbicationsMapType; UbicationsMapType m_Ubicaciones; protected: virtual void OnUbicationsDClick( wxDataViewEvent& event ); virtual void OnUbicationsSelectionChanged( wxDataViewEvent& event); virtual void OnNuevoClick( wxCommandEvent& event ); virtual void OnEditarClick( wxCommandEvent& event ); virtual void OnEliminarClick( wxCommandEvent& event ); virtual void OnHelpClick(wxMouseEvent &event); virtual void OnSize( wxSizeEvent& event ); }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfigurationanonymization.cpp000066400000000000000000000072101314736454600312460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
    #include #include #include #include #include #include #include #include #include #include #include "panelconfigurationanonymization.h" #include #include #include
    #include
    #include
    #include
    #include #include namespace GNC { namespace GUI { PanelConfigurationAnonymization::PanelConfigurationAnonymization(wxWindow* pParent, IDialogoConfiguracion* pDialogo): PanelConfigurationAnonymizationBase(pParent), IPasoConfiguracion(pDialogo) { GNC::GCS::AnonymizationController::TAnonymizationMap map = GNC::GCS::AnonymizationController::GetAnonymizationMap(); /* m_pTagsDicom->SetColumnCount(2); m_pTagsDicom->MakeColumnEditable(1, true); m_pTagsDicom->SetColumnProportion(0, 3); m_gridPermisos->SetColumnProportion(1, 1); for(GNC::GCS::AnonymizationController::TAnonymizationMap::const_iterator it = map.begin(); it != map.end(); ++it) { if(!(*it).second.privado) { if ((*it).second.espacioNombres != ultimaCategoria) { ultimaCategoria = (*it).second.espacioNombres; cat = m_gridPermisos->Append(new wxPropertyCategory(wxString::FromUTF8((*it).second.descripcionNamespace.c_str()),wxString::FromUTF8(ultimaCategoria.c_str()))); } std::string clave = (*it).second.espacioNombres + SEPARADOR + (*it).second.id; wxPGProperty* prop = cat->AppendChild(new wxBoolProperty(wxString::FromUTF8((*it).second.descripcion.c_str()), wxString::FromUTF8(clave.c_str()), (*it).second.activoPorDefecto ) ); prop->SetCell(2, new wxPGCell( wxString::FromUTF8( ((*it).second.valorPorDefecto).c_str())) ); prop->SetCell(3, new wxPGCell( _("Default value") )); } } */ } PanelConfigurationAnonymization::~PanelConfigurationAnonymization() { } void PanelConfigurationAnonymization::Recargar() { } //region "Metodos de IPasoConfiguracion" wxWindow* PanelConfigurationAnonymization::GetPanel() { return this; } std::string PanelConfigurationAnonymization::GetTitle() { return _Std("Anonymization"); } std::string PanelConfigurationAnonymization::GetCabecera() { return _Std("Anonymization settings"); } bool PanelConfigurationAnonymization::Validar() { bool ok = true; return ok; } bool PanelConfigurationAnonymization::Guardar() { return true; } //endregion } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelconfigurationanonymization.h000066400000000000000000000030241314736454600307120ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "panelesconfiguracionginkgobase.h" #include #include namespace Ubicaciones { class UbicacionesGridTable; } namespace GNC { namespace GUI { class PanelConfigurationAnonymization: public PanelConfigurationAnonymizationBase, public IPasoConfiguracion { public: PanelConfigurationAnonymization(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~PanelConfigurationAnonymization(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion //region "Helpers" void AutoSizeGrid(); //endregion public: }; } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelesconfiguracionginkgobase.cpp000066400000000000000000005033701314736454600307770ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "panelesconfiguracionginkgobase.h" /////////////////////////////////////////////////////////////////////////// DialogoConfiguracionBase::DialogoConfiguracionBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 860,300 ), wxDefaultSize ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Settings") ); bSizer3->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pImagePanel = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pImagePanel->SetToolTip( _("Settings") ); wxBoxSizer* bSizer43; bSizer43 = new wxBoxSizer( wxVERTICAL ); m_splitter2 = new wxSplitterWindow( m_pImagePanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3D ); m_splitter2->Connect( wxEVT_IDLE, wxIdleEventHandler( DialogoConfiguracionBase::m_splitter2OnIdle ), NULL, this ); m_splitter2->SetMinimumPaneSize( 100 ); m_splitter2->SetBackgroundColour( wxColour( 243, 243, 243 ) ); m_panel1 = new wxPanel( m_splitter2, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel1->SetMinSize( wxSize( 180,-1 ) ); wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxVERTICAL ); m_pTreeNavegacion = new wxTreeCtrl( m_panel1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_DEFAULT_STYLE|wxTR_HIDE_ROOT ); bSizer5->Add( m_pTreeNavegacion, 1, wxALL|wxEXPAND, 5 ); m_panel1->SetSizer( bSizer5 ); m_panel1->Layout(); bSizer5->Fit( m_panel1 ); m_pTitledPanelConfig = new TitledPanelSinBorder( m_splitter2, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer44; bSizer44 = new wxBoxSizer( wxVERTICAL ); m_pPanelConfig = new PanelScrollable( m_pTitledPanelConfig, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pSizerPaneles = new wxBoxSizer( wxVERTICAL ); m_pPanelConfig->SetSizer( m_pSizerPaneles ); m_pPanelConfig->Layout(); m_pSizerPaneles->Fit( m_pPanelConfig ); bSizer44->Add( m_pPanelConfig, 1, wxEXPAND, 5 ); m_pTitledPanelConfig->SetSizer( bSizer44 ); m_pTitledPanelConfig->Layout(); bSizer44->Fit( m_pTitledPanelConfig ); m_splitter2->SplitVertically( m_panel1, m_pTitledPanelConfig, 245 ); bSizer43->Add( m_splitter2, 1, wxEXPAND, 5 ); m_pImagePanel->SetSizer( bSizer43 ); m_pImagePanel->Layout(); bSizer43->Fit( m_pImagePanel ); bSizer3->Add( m_pImagePanel, 1, wxEXPAND, 5 ); m_panel3 = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer22; bSizer22 = new wxBoxSizer( wxHORIZONTAL ); m_button12 = new wxButton( m_panel3, wxID_ANY, _("Export config..."), wxDefaultPosition, wxDefaultSize, 0 ); bSizer22->Add( m_button12, 0, wxRIGHT, 5 ); m_button13 = new wxButton( m_panel3, wxID_ANY, _("Import config..."), wxDefaultPosition, wxDefaultSize, 0 ); bSizer22->Add( m_button13, 0, wxRIGHT|wxLEFT, 5 ); bSizer7->Add( bSizer22, 0, 0, 5 ); bSizer7->Add( 0, 0, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer21; bSizer21 = new wxBoxSizer( wxHORIZONTAL ); m_button8 = new wxButton( m_panel3, wxID_OK, _("Accept"), wxDefaultPosition, wxDefaultSize, 0 ); m_button8->SetDefault(); bSizer21->Add( m_button8, 0, wxRIGHT|wxLEFT, 5 ); m_button9 = new wxButton( m_panel3, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer21->Add( m_button9, 0, wxRIGHT|wxLEFT, 5 ); m_pBAplicar = new wxButton( m_panel3, wxID_ANY, _("Apply"), wxDefaultPosition, wxDefaultSize, 0 ); m_pBAplicar->Enable( false ); bSizer21->Add( m_pBAplicar, 0, wxLEFT, 5 ); bSizer7->Add( bSizer21, 0, 0, 5 ); m_panel3->SetSizer( bSizer7 ); m_panel3->Layout(); bSizer7->Fit( m_panel3 ); bSizer3->Add( m_panel3, 0, wxEXPAND, 5 ); this->SetSizer( bSizer3 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_pTreeNavegacion->Connect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( DialogoConfiguracionBase::OnCambioNodoNavegacion ), NULL, this ); m_button12->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoConfiguracionBase::OnExportarClick ), NULL, this ); m_button13->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoConfiguracionBase::OnImportarClick ), NULL, this ); m_button8->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoConfiguracionBase::OnAceptarClick ), NULL, this ); m_button9->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoConfiguracionBase::OnCancelarClick ), NULL, this ); m_pBAplicar->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoConfiguracionBase::OnAplicarClick ), NULL, this ); } DialogoConfiguracionBase::~DialogoConfiguracionBase() { // Disconnect Events m_pTreeNavegacion->Disconnect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( DialogoConfiguracionBase::OnCambioNodoNavegacion ), NULL, this ); m_button12->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoConfiguracionBase::OnExportarClick ), NULL, this ); m_button13->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoConfiguracionBase::OnImportarClick ), NULL, this ); m_button8->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoConfiguracionBase::OnAceptarClick ), NULL, this ); m_button9->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoConfiguracionBase::OnCancelarClick ), NULL, this ); m_pBAplicar->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoConfiguracionBase::OnAplicarClick ), NULL, this ); } PanelConfiguracionEstacionBase::PanelConfiguracionEstacionBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { this->SetMinSize( wxSize( 450,-1 ) ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxVERTICAL ); m_panelPhysician = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panelPhysician->SetToolTip( _("Physician") ); wxFlexGridSizer* fgSizer2; fgSizer2 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer2->AddGrowableCol( 1 ); fgSizer2->SetFlexibleDirection( wxBOTH ); fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText1 = new wxStaticText( m_panelPhysician, wxID_ANY, _("Physician's name"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText1->Wrap( -1 ); fgSizer2->Add( m_staticText1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_pMedicoNombre = new wxTextCtrl( m_panelPhysician, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 ); m_pMedicoNombre->SetMaxLength( 0 ); fgSizer2->Add( m_pMedicoNombre, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxLEFT, 5 ); m_staticText11 = new wxStaticText( m_panelPhysician, wxID_ANY, _("Physician's Id"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText11->Wrap( -1 ); fgSizer2->Add( m_staticText11, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_pMedicoId = new wxTextCtrl( m_panelPhysician, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pMedicoId->SetMaxLength( 0 ); fgSizer2->Add( m_pMedicoId, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxLEFT, 5 ); m_panelPhysician->SetSizer( fgSizer2 ); m_panelPhysician->Layout(); fgSizer2->Fit( m_panelPhysician ); bSizer4->Add( m_panelPhysician, 0, wxEXPAND, 5 ); m_pSep11 = new SubTitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer4->Add( m_pSep11, 0, wxEXPAND, 5 ); m_panelServicio = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panelServicio->SetToolTip( _("Service") ); wxFlexGridSizer* fgSizer22; fgSizer22 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer22->AddGrowableCol( 1 ); fgSizer22->SetFlexibleDirection( wxBOTH ); fgSizer22->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText39 = new wxStaticText( m_panelServicio, wxID_ANY, _("Service's name"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText39->Wrap( -1 ); fgSizer22->Add( m_staticText39, 0, wxTOP|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); m_pServicioNombre = new wxTextCtrl( m_panelServicio, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pServicioNombre->SetMaxLength( 0 ); fgSizer22->Add( m_pServicioNombre, 0, wxTOP|wxLEFT|wxEXPAND, 5 ); m_staticText12 = new wxStaticText( m_panelServicio, wxID_ANY, _("Service's Id"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText12->Wrap( -1 ); fgSizer22->Add( m_staticText12, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_pServicioId = new wxTextCtrl( m_panelServicio, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 ); m_pServicioId->SetMaxLength( 0 ); fgSizer22->Add( m_pServicioId, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); m_panelServicio->SetSizer( fgSizer22 ); m_panelServicio->Layout(); fgSizer22->Fit( m_panelServicio ); bSizer4->Add( m_panelServicio, 0, wxEXPAND, 5 ); m_pSep1 = new SubTitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer4->Add( m_pSep1, 0, wxEXPAND, 5 ); m_pPanelInstitucion = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelInstitucion->SetToolTip( _("Local institution") ); wxFlexGridSizer* fgSizer21; fgSizer21 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer21->AddGrowableCol( 1 ); fgSizer21->SetFlexibleDirection( wxBOTH ); fgSizer21->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText13 = new wxStaticText( m_pPanelInstitucion, wxID_ANY, _("Institution's name"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText13->Wrap( -1 ); fgSizer21->Add( m_staticText13, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_pCentroNombre = new wxTextCtrl( m_pPanelInstitucion, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 ); m_pCentroNombre->SetMaxLength( 0 ); fgSizer21->Add( m_pCentroNombre, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxLEFT, 5 ); m_staticText111 = new wxStaticText( m_pPanelInstitucion, wxID_ANY, _("Institution's Id"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText111->Wrap( -1 ); fgSizer21->Add( m_staticText111, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_pCentroId = new wxTextCtrl( m_pPanelInstitucion, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pCentroId->SetMaxLength( 0 ); fgSizer21->Add( m_pCentroId, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxLEFT, 5 ); m_pPanelInstitucion->SetSizer( fgSizer21 ); m_pPanelInstitucion->Layout(); fgSizer21->Fit( m_pPanelInstitucion ); bSizer4->Add( m_pPanelInstitucion, 0, wxEXPAND, 5 ); m_pSep12 = new SubTitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer4->Add( m_pSep12, 0, wxEXPAND, 5 ); m_pPanelInstitucion1 = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelInstitucion1->SetToolTip( _("Dicomized files") ); wxFlexGridSizer* fgSizer211; fgSizer211 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer211->AddGrowableCol( 1 ); fgSizer211->SetFlexibleDirection( wxBOTH ); fgSizer211->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText131 = new wxStaticText( m_pPanelInstitucion1, wxID_ANY, _("Charset"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText131->Wrap( -1 ); fgSizer211->Add( m_staticText131, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 ); m_pComboCharset = new wxComboBox( m_pPanelInstitucion1, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY|wxCB_SORT ); m_pComboCharset->Append( _("ISO_IR 192") ); m_pComboCharset->Append( _("ISO_IR 6") ); m_pComboCharset->Append( _("ISO_IR 100") ); m_pComboCharset->Append( _("ISO_IR 101") ); m_pComboCharset->Append( _("ISO_IR 109") ); m_pComboCharset->Append( _("ISO_IR 110") ); m_pComboCharset->Append( _("ISO_IR 126") ); m_pComboCharset->Append( _("ISO_IR 127") ); m_pComboCharset->Append( _("ISO_IR 138") ); m_pComboCharset->Append( _("ISO_IR 144") ); m_pComboCharset->Append( _("ISO_IR 148") ); fgSizer211->Add( m_pComboCharset, 1, wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); m_pPanelInstitucion1->SetSizer( fgSizer211 ); m_pPanelInstitucion1->Layout(); fgSizer211->Fit( m_pPanelInstitucion1 ); bSizer4->Add( m_pPanelInstitucion1, 0, wxEXPAND, 5 ); this->SetSizer( bSizer4 ); this->Layout(); bSizer4->Fit( this ); // Connect Events m_pMedicoNombre->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); m_pMedicoId->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); m_pServicioId->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); m_pCentroNombre->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); m_pCentroId->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); m_pComboCharset->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); } PanelConfiguracionEstacionBase::~PanelConfiguracionEstacionBase() { // Disconnect Events m_pMedicoNombre->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); m_pMedicoId->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); m_pServicioId->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); m_pCentroNombre->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); m_pCentroId->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); m_pComboCharset->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( PanelConfiguracionEstacionBase::OnTextoCambiado ), NULL, this ); } PanelConfiguracionGeneralBase::PanelConfiguracionGeneralBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { this->SetMinSize( wxSize( 450,-1 ) ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxVERTICAL ); m_pLanguage = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pLanguage->SetToolTip( _("Language") ); wxBoxSizer* bSizer32; bSizer32 = new wxBoxSizer( wxHORIZONTAL ); m_staticText34 = new wxStaticText( m_pLanguage, wxID_ANY, _("Language"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText34->Wrap( -1 ); bSizer32->Add( m_staticText34, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_pComboLanguage = new wxComboBox( m_pLanguage, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_DROPDOWN|wxCB_READONLY ); bSizer32->Add( m_pComboLanguage, 0, wxLEFT, 5 ); m_pLanguage->SetSizer( bSizer32 ); m_pLanguage->Layout(); bSizer32->Fit( m_pLanguage ); bSizer4->Add( m_pLanguage, 0, wxEXPAND, 5 ); m_pSep3 = new SubTitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer4->Add( m_pSep3, 0, wxEXPAND, 5 ); m_pUpdate = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pUpdate->SetToolTip( _("Misc") ); wxBoxSizer* bSizer321; bSizer321 = new wxBoxSizer( wxVERTICAL ); m_pCheckForUpdates = new wxCheckBox( m_pUpdate, wxID_ANY, _("Automatically check for updates"), wxDefaultPosition, wxDefaultSize, 0 ); m_pCheckForUpdates->SetValue(true); bSizer321->Add( m_pCheckForUpdates, 0, 0, 5 ); m_pCheckAnonUsageStats = new wxCheckBox( m_pUpdate, wxID_ANY, _("Help us sending anonymous usage data (no patient data will be sent)"), wxDefaultPosition, wxDefaultSize, 0 ); m_pCheckAnonUsageStats->SetValue(true); bSizer321->Add( m_pCheckAnonUsageStats, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pUpdate->SetSizer( bSizer321 ); m_pUpdate->Layout(); bSizer321->Fit( m_pUpdate ); bSizer4->Add( m_pUpdate, 0, wxEXPAND, 5 ); m_pSep31 = new SubTitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer4->Add( m_pSep31, 0, wxEXPAND, 5 ); m_pProxy = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pProxy->SetToolTip( _("Proxy settings") ); wxBoxSizer* bSizer3211; bSizer3211 = new wxBoxSizer( wxHORIZONTAL ); m_pEnableProxy = new wxCheckBox( m_pProxy, wxID_ANY, _("Enable http proxy"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer3211->Add( m_pEnableProxy, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_pProxySettingsButton = new wxButton( m_pProxy, wxID_ANY, _("Proxy settings"), wxDefaultPosition, wxDefaultSize, 0 ); m_pProxySettingsButton->Enable( false ); bSizer3211->Add( m_pProxySettingsButton, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); m_pProxy->SetSizer( bSizer3211 ); m_pProxy->Layout(); bSizer3211->Fit( m_pProxy ); bSizer4->Add( m_pProxy, 0, wxEXPAND, 5 ); this->SetSizer( bSizer4 ); this->Layout(); bSizer4->Fit( this ); // Connect Events m_pComboLanguage->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( PanelConfiguracionGeneralBase::OnIdiomaCambiado ), NULL, this ); m_pCheckForUpdates->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PanelConfiguracionGeneralBase::OnCheckForUpdates ), NULL, this ); m_pCheckAnonUsageStats->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PanelConfiguracionGeneralBase::OnCheckForUpdates ), NULL, this ); m_pEnableProxy->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PanelConfiguracionGeneralBase::OnCheckEnableProxySettings ), NULL, this ); m_pProxySettingsButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionGeneralBase::OnProxySettings ), NULL, this ); } PanelConfiguracionGeneralBase::~PanelConfiguracionGeneralBase() { // Disconnect Events m_pComboLanguage->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( PanelConfiguracionGeneralBase::OnIdiomaCambiado ), NULL, this ); m_pCheckForUpdates->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PanelConfiguracionGeneralBase::OnCheckForUpdates ), NULL, this ); m_pCheckAnonUsageStats->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PanelConfiguracionGeneralBase::OnCheckForUpdates ), NULL, this ); m_pEnableProxy->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PanelConfiguracionGeneralBase::OnCheckEnableProxySettings ), NULL, this ); m_pProxySettingsButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionGeneralBase::OnProxySettings ), NULL, this ); } ProxySettingsDialogBase::ProxySettingsDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 400,500 ), wxDefaultSize ); wxBoxSizer* bSizer11; bSizer11 = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Proxy Settings") ); bSizer11->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer85; bSizer85 = new wxBoxSizer( wxVERTICAL ); m_panel64 = new SubTitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel64->SetToolTip( _("Server settings") ); wxFlexGridSizer* fgSizer4; fgSizer4 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer4->AddGrowableCol( 1 ); fgSizer4->SetFlexibleDirection( wxBOTH ); fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_pstaticText1 = new wxStaticText( m_panel64, wxID_ANY, _("Host"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstaticText1->Wrap( -1 ); fgSizer4->Add( m_pstaticText1, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pHost = new wxTextCtrl( m_panel64, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 150,-1 ), 0 ); m_pHost->SetMaxLength( 0 ); fgSizer4->Add( m_pHost, 0, wxALL|wxEXPAND, 5 ); m_pStaticText22 = new wxStaticText( m_panel64, wxID_ANY, _("Port"), wxDefaultPosition, wxDefaultSize, 0 ); m_pStaticText22->Wrap( -1 ); fgSizer4->Add( m_pStaticText22, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pPort = new wxTextCtrl( m_panel64, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 150,-1 ), 0 ); m_pPort->SetMaxLength( 0 ); fgSizer4->Add( m_pPort, 0, wxALL|wxEXPAND, 5 ); m_panel64->SetSizer( fgSizer4 ); m_panel64->Layout(); fgSizer4->Fit( m_panel64 ); bSizer85->Add( m_panel64, 0, wxEXPAND, 5 ); m_panel641 = new SubTitledPanelSeparatorV( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel641->SetToolTip( _("Server settings") ); bSizer85->Add( m_panel641, 0, wxEXPAND, 5 ); m_panel642 = new SubTitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel642->SetToolTip( _("Authentication") ); wxBoxSizer* bSizer141; bSizer141 = new wxBoxSizer( wxVERTICAL ); m_pCheckAuthentication = new wxCheckBox( m_panel642, wxID_ANY, _("Proxy server requires authentication"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer141->Add( m_pCheckAuthentication, 0, wxALL, 5 ); wxFlexGridSizer* fgSizer42; fgSizer42 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer42->AddGrowableCol( 1 ); fgSizer42->SetFlexibleDirection( wxBOTH ); fgSizer42->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_pstaticText12 = new wxStaticText( m_panel642, wxID_ANY, _("Username"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstaticText12->Wrap( -1 ); fgSizer42->Add( m_pstaticText12, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pUsername = new wxTextCtrl( m_panel642, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 150,-1 ), 0 ); m_pUsername->SetMaxLength( 0 ); fgSizer42->Add( m_pUsername, 0, wxALL|wxEXPAND, 5 ); Port2 = new wxStaticText( m_panel642, wxID_ANY, _("Password"), wxDefaultPosition, wxDefaultSize, 0 ); Port2->Wrap( -1 ); fgSizer42->Add( Port2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pPassword = new wxTextCtrl( m_panel642, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 150,-1 ), wxTE_PASSWORD ); m_pPassword->SetMaxLength( 0 ); fgSizer42->Add( m_pPassword, 0, wxALL|wxEXPAND, 5 ); bSizer141->Add( fgSizer42, 1, wxEXPAND, 5 ); m_panel642->SetSizer( bSizer141 ); m_panel642->Layout(); bSizer141->Fit( m_panel642 ); bSizer85->Add( m_panel642, 0, wxEXPAND, 5 ); m_panel6411 = new SubTitledPanelSeparatorV( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel6411->SetToolTip( _("Server settings") ); bSizer85->Add( m_panel6411, 0, wxEXPAND, 5 ); m_panel6421 = new SubTitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel6421->SetToolTip( _("Exceptions") ); wxBoxSizer* bSizer1411; bSizer1411 = new wxBoxSizer( wxVERTICAL ); m_staticText115 = new wxStaticText( m_panel6421, wxID_ANY, _("No proxy for addresses containing"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText115->Wrap( -1 ); bSizer1411->Add( m_staticText115, 0, wxTOP|wxBOTTOM, 5 ); m_pExceptions = new wxTextCtrl( m_panel6421, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); bSizer1411->Add( m_pExceptions, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); m_staticText116 = new wxStaticText( m_panel6421, wxID_ANY, _("Separate addresses with commas."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText116->Wrap( -1 ); bSizer1411->Add( m_staticText116, 0, wxTOP|wxBOTTOM, 5 ); m_panel6421->SetSizer( bSizer1411 ); m_panel6421->Layout(); bSizer1411->Fit( m_panel6421 ); bSizer85->Add( m_panel6421, 0, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer85 ); m_pBody->Layout(); bSizer85->Fit( m_pBody ); bSizer11->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer31; bSizer31 = new wxBoxSizer( wxHORIZONTAL ); bSizer31->Add( 0, 0, 1, wxEXPAND, 5 ); m_button37 = new wxButton( m_pFooter, wxID_OK, _("Accept"), wxDefaultPosition, wxDefaultSize, 0 ); m_button37->SetDefault(); bSizer31->Add( m_button37, 0, wxALL, 5 ); m_button38 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer31->Add( m_button38, 0, wxALL, 5 ); m_pFooter->SetSizer( bSizer31 ); m_pFooter->Layout(); bSizer31->Fit( m_pFooter ); bSizer11->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer11 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_pCheckAuthentication->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ProxySettingsDialogBase::OnCheckAuthentication ), NULL, this ); m_button37->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProxySettingsDialogBase::OnOkClick ), NULL, this ); m_button38->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProxySettingsDialogBase::OnCancelClick ), NULL, this ); } ProxySettingsDialogBase::~ProxySettingsDialogBase() { // Disconnect Events m_pCheckAuthentication->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( ProxySettingsDialogBase::OnCheckAuthentication ), NULL, this ); m_button37->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProxySettingsDialogBase::OnOkClick ), NULL, this ); m_button38->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProxySettingsDialogBase::OnCancelClick ), NULL, this ); } LocalDatabaseConfigurationPanelBase::LocalDatabaseConfigurationPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxVERTICAL ); m_pPanelDicomDir = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelDicomDir->SetToolTip( _("DICOM Dir") ); wxBoxSizer* bSizer30; bSizer30 = new wxBoxSizer( wxVERTICAL ); m_staticTextExplicacion = new wxStaticText( m_pPanelDicomDir, wxID_ANY, _("DICOM Dir is the local directory where history is stored"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextExplicacion->Wrap( 440 ); bSizer30->Add( m_staticTextExplicacion, 0, wxEXPAND|wxBOTTOM|wxRIGHT, 5 ); wxFlexGridSizer* fgSizer9; fgSizer9 = new wxFlexGridSizer( 0, 3, 0, 0 ); fgSizer9->AddGrowableCol( 1 ); fgSizer9->SetFlexibleDirection( wxBOTH ); fgSizer9->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText32 = new wxStaticText( m_pPanelDicomDir, wxID_ANY, _("DICOM Dir"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText32->Wrap( -1 ); fgSizer9->Add( m_staticText32, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_pDICOMDir = new wxTextCtrl( m_pPanelDicomDir, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pDICOMDir->SetMaxLength( 0 ); fgSizer9->Add( m_pDICOMDir, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); m_buttonSeleccionarDICOMDir = new wxButton( m_pPanelDicomDir, wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); fgSizer9->Add( m_buttonSeleccionarDICOMDir, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); bSizer30->Add( fgSizer9, 1, wxEXPAND, 5 ); m_pstaticTextAdvertencia = new wxStaticText( m_pPanelDicomDir, wxID_ANY, _("Warning, to update the directory, you have to close every opened series"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstaticTextAdvertencia->Wrap( 440 ); m_pstaticTextAdvertencia->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); m_pstaticTextAdvertencia->SetForegroundColour( wxColour( 210, 0, 0 ) ); bSizer30->Add( m_pstaticTextAdvertencia, 0, wxEXPAND|wxTOP, 5 ); wxStaticBoxSizer* sbSizer7; sbSizer7 = new wxStaticBoxSizer( new wxStaticBox( m_pPanelDicomDir, wxID_ANY, _("Auto-cleaning") ), wxVERTICAL ); wxFlexGridSizer* fgSizer20; fgSizer20 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer20->AddGrowableCol( 0 ); fgSizer20->SetFlexibleDirection( wxBOTH ); fgSizer20->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_pCheckDeleteOlder = new wxCheckBox( m_pPanelDicomDir, wxID_ANY, _("Delete studies with acquisition date older than:"), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer20->Add( m_pCheckDeleteOlder, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxArrayString m_pChoiceDeleteOlderChoices; m_pChoiceDeleteOlder = new wxChoice( m_pPanelDicomDir, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pChoiceDeleteOlderChoices, 0 ); m_pChoiceDeleteOlder->SetSelection( 0 ); m_pChoiceDeleteOlder->Enable( false ); fgSizer20->Add( m_pChoiceDeleteOlder, 0, wxALL|wxEXPAND, 5 ); m_pCheckHDFreeSpace = new wxCheckBox( m_pPanelDicomDir, wxID_ANY, _("Delete older studies when hd free space is less than:"), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer20->Add( m_pCheckHDFreeSpace, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxBoxSizer* bSizer106; bSizer106 = new wxBoxSizer( wxHORIZONTAL ); m_pSpinHDSpace = new wxSpinCtrl( m_pPanelDicomDir, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 10, 2147483647, 10240 ); m_pSpinHDSpace->Enable( false ); bSizer106->Add( m_pSpinHDSpace, 0, wxALL, 5 ); m_staticText65 = new wxStaticText( m_pPanelDicomDir, wxID_ANY, _("MB"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText65->Wrap( -1 ); bSizer106->Add( m_staticText65, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); fgSizer20->Add( bSizer106, 1, wxEXPAND, 5 ); m_pCheckDicomDirSize = new wxCheckBox( m_pPanelDicomDir, wxID_ANY, _("Delete studies when DICOM Dir size bigger than:"), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer20->Add( m_pCheckDicomDirSize, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxBoxSizer* bSizer1061; bSizer1061 = new wxBoxSizer( wxHORIZONTAL ); m_pSpinDicomDirSize = new wxSpinCtrl( m_pPanelDicomDir, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 10, 2147483647, 10240 ); m_pSpinDicomDirSize->Enable( false ); bSizer1061->Add( m_pSpinDicomDirSize, 0, wxALL, 5 ); m_staticText651 = new wxStaticText( m_pPanelDicomDir, wxID_ANY, _("MB"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText651->Wrap( -1 ); bSizer1061->Add( m_staticText651, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); fgSizer20->Add( bSizer1061, 1, wxEXPAND, 5 ); sbSizer7->Add( fgSizer20, 1, wxEXPAND, 5 ); m_staticText68 = new wxStaticText( m_pPanelDicomDir, wxID_ANY, _("This feature only affects to studies COPIED to DICOM Dir and not in use"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText68->Wrap( -1 ); m_staticText68->SetFont( wxFont( 7, 70, 90, 90, false, wxEmptyString ) ); sbSizer7->Add( m_staticText68, 0, wxALL, 5 ); bSizer30->Add( sbSizer7, 0, wxEXPAND|wxTOP, 5 ); m_button66 = new wxButton( m_pPanelDicomDir, wxID_ANY, _("Reset to default"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer30->Add( m_button66, 0, wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pPanelDicomDir->SetSizer( bSizer30 ); m_pPanelDicomDir->Layout(); bSizer30->Fit( m_pPanelDicomDir ); bSizer4->Add( m_pPanelDicomDir, 0, wxEXPAND, 5 ); this->SetSizer( bSizer4 ); this->Layout(); // Connect Events this->Connect( wxEVT_SIZE, wxSizeEventHandler( LocalDatabaseConfigurationPanelBase::OnSize ) ); m_pDICOMDir->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnTextoCambiado ), NULL, this ); m_buttonSeleccionarDICOMDir->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnSeleccionarDirectorio ), NULL, this ); m_pCheckDeleteOlder->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnCheckOlderStudies ), NULL, this ); m_pChoiceDeleteOlder->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnOptionModified ), NULL, this ); m_pCheckHDFreeSpace->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnCheckHDSpace ), NULL, this ); m_pSpinHDSpace->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( LocalDatabaseConfigurationPanelBase::OnSpinCtrl ), NULL, this ); m_pSpinHDSpace->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnOptionModified ), NULL, this ); m_pCheckDicomDirSize->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnCheckDicomDirSize ), NULL, this ); m_pSpinDicomDirSize->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( LocalDatabaseConfigurationPanelBase::OnSpinCtrl ), NULL, this ); m_pSpinDicomDirSize->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnOptionModified ), NULL, this ); m_button66->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnResetToDefault ), NULL, this ); } LocalDatabaseConfigurationPanelBase::~LocalDatabaseConfigurationPanelBase() { // Disconnect Events this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( LocalDatabaseConfigurationPanelBase::OnSize ) ); m_pDICOMDir->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnTextoCambiado ), NULL, this ); m_buttonSeleccionarDICOMDir->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnSeleccionarDirectorio ), NULL, this ); m_pCheckDeleteOlder->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnCheckOlderStudies ), NULL, this ); m_pChoiceDeleteOlder->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnOptionModified ), NULL, this ); m_pCheckHDFreeSpace->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnCheckHDSpace ), NULL, this ); m_pSpinHDSpace->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( LocalDatabaseConfigurationPanelBase::OnSpinCtrl ), NULL, this ); m_pSpinHDSpace->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnOptionModified ), NULL, this ); m_pCheckDicomDirSize->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnCheckDicomDirSize ), NULL, this ); m_pSpinDicomDirSize->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( LocalDatabaseConfigurationPanelBase::OnSpinCtrl ), NULL, this ); m_pSpinDicomDirSize->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnOptionModified ), NULL, this ); m_button66->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( LocalDatabaseConfigurationPanelBase::OnResetToDefault ), NULL, this ); } PanelConfiguracionPACSBase::PanelConfiguracionPACSBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxVERTICAL ); m_pPACSLocal = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPACSLocal->SetToolTip( _("Local PACS") ); wxBoxSizer* bSizer36; bSizer36 = new wxBoxSizer( wxVERTICAL ); m_staticTextExplicacion = new wxStaticText( m_pPACSLocal, wxID_ANY, _("You must configure the local AET, which is used to communicate with the PACS server. The specified port must be opened in the firewall, as it is essential for transfers."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextExplicacion->Wrap( 440 ); m_staticTextExplicacion->SetMinSize( wxSize( 450,-1 ) ); bSizer36->Add( m_staticTextExplicacion, 0, wxEXPAND|wxBOTTOM, 8 ); wxFlexGridSizer* fgSizer2; fgSizer2 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer2->AddGrowableCol( 1 ); fgSizer2->SetFlexibleDirection( wxBOTH ); fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText1 = new wxStaticText( m_pPACSLocal, wxID_ANY, _("Local AET"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText1->Wrap( -1 ); fgSizer2->Add( m_staticText1, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); wxBoxSizer* bSizer31; bSizer31 = new wxBoxSizer( wxHORIZONTAL ); m_pAETLocal = new wxTextCtrl( m_pPACSLocal, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 300,-1 ), 0 ); m_pAETLocal->SetMaxLength( 0 ); bSizer31->Add( m_pAETLocal, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pAETReal = new wxStaticText( m_pPACSLocal, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pAETReal->Wrap( -1 ); bSizer31->Add( m_pAETReal, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pHelpBitmap = new wxStaticBitmap( m_pPACSLocal, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); m_pHelpBitmap->SetToolTip( _("For large-scale implementation in a homogenous environment, you can specify the following wildcards in the local AET:\n\t%IP IP Address\n\t%IP n-th Octet (1~4)\n\t%HOSTNAME Host Name\"") ); bSizer31->Add( m_pHelpBitmap, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); fgSizer2->Add( bSizer31, 1, wxEXPAND, 5 ); m_staticText11 = new wxStaticText( m_pPACSLocal, wxID_ANY, _("Port"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText11->Wrap( -1 ); fgSizer2->Add( m_staticText11, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pPuertoLocal = new wxTextCtrl( m_pPACSLocal, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pPuertoLocal->SetMaxLength( 0 ); fgSizer2->Add( m_pPuertoLocal, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 ); m_pBAdvanced = new wxButton( m_pPACSLocal, wxID_ANY, _("Advanced settings..."), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer2->Add( m_pBAdvanced, 0, wxALIGN_RIGHT|wxTOP, 5 ); bSizer36->Add( fgSizer2, 0, wxEXPAND, 5 ); m_pPACSLocal->SetSizer( bSizer36 ); m_pPACSLocal->Layout(); bSizer36->Fit( m_pPACSLocal ); bSizer6->Add( m_pPACSLocal, 0, wxEXPAND, 5 ); m_pSep = new SubTitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer6->Add( m_pSep, 0, wxEXPAND, 5 ); m_pPACSServers = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPACSServers->SetToolTip( _("DICOM Nodes") ); wxBoxSizer* bSizer25; bSizer25 = new wxBoxSizer( wxHORIZONTAL ); m_pListPacs = new wxDataViewListCtrl(m_pPACSServers, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); bSizer25->Add( m_pListPacs, 1, wxALL|wxEXPAND, 5 ); wxBoxSizer* bSizer26; bSizer26 = new wxBoxSizer( wxVERTICAL ); m_button3 = new wxButton( m_pPACSServers, wxID_ANY, _("New ..."), wxDefaultPosition, wxDefaultSize, 0 ); bSizer26->Add( m_button3, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pEditButton = new wxButton( m_pPACSServers, wxID_ANY, _("Edit ..."), wxDefaultPosition, wxDefaultSize, 0 ); m_pEditButton->Enable( false ); bSizer26->Add( m_pEditButton, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pDelButton = new wxButton( m_pPACSServers, wxID_ANY, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 ); m_pDelButton->Enable( false ); bSizer26->Add( m_pDelButton, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); bSizer26->Add( 0, 0, 1, wxEXPAND, 5 ); m_pDefaultButton = new wxButton( m_pPACSServers, wxID_ANY, _("Set Default"), wxDefaultPosition, wxDefaultSize, 0 ); m_pDefaultButton->Enable( false ); bSizer26->Add( m_pDefaultButton, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); bSizer25->Add( bSizer26, 0, wxEXPAND, 5 ); m_pPACSServers->SetSizer( bSizer25 ); m_pPACSServers->Layout(); bSizer25->Fit( m_pPACSServers ); bSizer6->Add( m_pPACSServers, 1, wxEXPAND, 5 ); this->SetSizer( bSizer6 ); this->Layout(); bSizer6->Fit( this ); // Connect Events this->Connect( wxEVT_SIZE, wxSizeEventHandler( PanelConfiguracionPACSBase::OnSize ) ); m_pAETLocal->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnTextoCambiado ), NULL, this ); m_pHelpBitmap->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( PanelConfiguracionPACSBase::OnHelpClick ), NULL, this ); m_pPuertoLocal->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnTextoCambiado ), NULL, this ); m_pBAdvanced->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnAdvancedLocal ), NULL, this ); m_button3->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnNuevoClick ), NULL, this ); m_pEditButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnEditarClick ), NULL, this ); m_pDelButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnEliminarClick ), NULL, this ); m_pDefaultButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnSetDefaultClick ), NULL, this ); } PanelConfiguracionPACSBase::~PanelConfiguracionPACSBase() { // Disconnect Events this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( PanelConfiguracionPACSBase::OnSize ) ); m_pAETLocal->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnTextoCambiado ), NULL, this ); m_pHelpBitmap->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( PanelConfiguracionPACSBase::OnHelpClick ), NULL, this ); m_pPuertoLocal->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnTextoCambiado ), NULL, this ); m_pBAdvanced->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnAdvancedLocal ), NULL, this ); m_button3->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnNuevoClick ), NULL, this ); m_pEditButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnEditarClick ), NULL, this ); m_pDelButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnEliminarClick ), NULL, this ); m_pDefaultButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPACSBase::OnSetDefaultClick ), NULL, this ); } DialogoServidorPACSBase::DialogoServidorPACSBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 450,550 ), wxDefaultSize ); wxBoxSizer* bSizer11; bSizer11 = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("DICOM Node") ); bSizer11->Add( m_pHeader, 0, wxEXPAND, 5 ); m_notebook1 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); m_panel6 = new BodyPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer85; bSizer85 = new wxBoxSizer( wxVERTICAL ); m_panel64 = new SubTitledPanel( m_panel6, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel64->SetToolTip( _("Settings") ); wxFlexGridSizer* fgSizer4; fgSizer4 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer4->AddGrowableCol( 1 ); fgSizer4->SetFlexibleDirection( wxBOTH ); fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_pstaticText1 = new wxStaticText( m_panel64, wxID_ANY, _("Id"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstaticText1->Wrap( -1 ); fgSizer4->Add( m_pstaticText1, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pId = new wxTextCtrl( m_panel64, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 150,-1 ), 0 ); m_pId->SetMaxLength( 0 ); fgSizer4->Add( m_pId, 0, wxALL|wxEXPAND, 5 ); m_pstaticText2 = new wxStaticText( m_panel64, wxID_ANY, _("AET"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstaticText2->Wrap( -1 ); fgSizer4->Add( m_pstaticText2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pAET = new wxTextCtrl( m_panel64, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 150,-1 ), 0 ); m_pAET->SetMaxLength( 0 ); fgSizer4->Add( m_pAET, 0, wxALL|wxEXPAND, 5 ); m_pstaticText3 = new wxStaticText( m_panel64, wxID_ANY, _("Host"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstaticText3->Wrap( -1 ); fgSizer4->Add( m_pstaticText3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pHost = new wxTextCtrl( m_panel64, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 150,-1 ), 0 ); m_pHost->SetMaxLength( 0 ); fgSizer4->Add( m_pHost, 0, wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5 ); m_pstaticText4 = new wxStaticText( m_panel64, wxID_ANY, _("Port"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstaticText4->Wrap( -1 ); fgSizer4->Add( m_pstaticText4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pPuerto = new wxTextCtrl( m_panel64, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pPuerto->SetMaxLength( 0 ); fgSizer4->Add( m_pPuerto, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_staticText33 = new wxStaticText( m_panel64, wxID_ANY, _("PDU (KB)"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText33->Wrap( -1 ); fgSizer4->Add( m_staticText33, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pPDU = new wxSpinCtrl( m_panel64, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 4096, 16384, 16384 ); fgSizer4->Add( m_pPDU, 0, wxALL, 5 ); m_staticText48 = new wxStaticText( m_panel64, wxID_ANY, _("Retrieve method"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText48->Wrap( -1 ); fgSizer4->Add( m_staticText48, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxString m_pRetrieveMethodChoices[] = { _("Move"), _("Get"), _("WADO") }; int m_pRetrieveMethodNChoices = sizeof( m_pRetrieveMethodChoices ) / sizeof( wxString ); m_pRetrieveMethod = new wxChoice( m_panel64, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pRetrieveMethodNChoices, m_pRetrieveMethodChoices, 0 ); m_pRetrieveMethod->SetSelection( 0 ); fgSizer4->Add( m_pRetrieveMethod, 0, wxALL, 5 ); m_staticText59 = new wxStaticText( m_panel64, wxID_ANY, _("WADO URL"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText59->Wrap( -1 ); fgSizer4->Add( m_staticText59, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pWadoURL = new wxTextCtrl( m_panel64, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pWadoURL->SetMaxLength( 0 ); m_pWadoURL->Enable( false ); fgSizer4->Add( m_pWadoURL, 0, wxALL|wxEXPAND, 5 ); m_staticText60 = new wxStaticText( m_panel64, wxID_ANY, _("Retrieve mode"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText60->Wrap( -1 ); fgSizer4->Add( m_staticText60, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxString m_pRetrieveModeChoices[] = { _("Series"), _("Studies") }; int m_pRetrieveModeNChoices = sizeof( m_pRetrieveModeChoices ) / sizeof( wxString ); m_pRetrieveMode = new wxChoice( m_panel64, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pRetrieveModeNChoices, m_pRetrieveModeChoices, 0 ); m_pRetrieveMode->SetSelection( 0 ); fgSizer4->Add( m_pRetrieveMode, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_staticText57 = new wxStaticText( m_panel64, wxID_ANY, _("Reuse connection"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText57->Wrap( -1 ); fgSizer4->Add( m_staticText57, 0, wxALL, 5 ); m_pReuseConnection = new wxCheckBox( m_panel64, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pReuseConnection->SetToolTip( _("Reuse connections when is needed to make more than one queries") ); fgSizer4->Add( m_pReuseConnection, 0, wxALL, 5 ); m_panel64->SetSizer( fgSizer4 ); m_panel64->Layout(); fgSizer4->Fit( m_panel64 ); bSizer85->Add( m_panel64, 0, wxEXPAND, 5 ); m_panel6->SetSizer( bSizer85 ); m_panel6->Layout(); bSizer85->Fit( m_panel6 ); m_notebook1->AddPage( m_panel6, _("DICOM Node"), true ); m_pWorkListPanel = new BodyPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer104; bSizer104 = new wxBoxSizer( wxVERTICAL ); m_panel83 = new SubTitledPanel( m_pWorkListPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel83->SetToolTip( _("Worklists") ); wxBoxSizer* bSizer106; bSizer106 = new wxBoxSizer( wxVERTICAL ); m_staticText611 = new wxStaticText( m_panel83, wxID_ANY, _("Select how do you want to handle MPPS items"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText611->Wrap( -1 ); bSizer106->Add( m_staticText611, 0, wxALL, 5 ); m_pCheckDICOMMPPS = new wxCheckBox( m_panel83, wxID_ANY, _("DICOM MPPS"), wxDefaultPosition, wxDefaultSize, 0 ); m_pCheckDICOMMPPS->SetValue(true); bSizer106->Add( m_pCheckDICOMMPPS, 0, wxALL, 5 ); m_pCheckHL7 = new wxCheckBox( m_panel83, wxID_ANY, _("HL7 messages"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer106->Add( m_pCheckHL7, 0, wxALL, 5 ); m_pPanelHL7 = new wxPanel( m_panel83, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pSizerHL7 = new wxStaticBoxSizer( new wxStaticBox( m_pPanelHL7, wxID_ANY, _("HL7") ), wxVERTICAL ); wxFlexGridSizer* fgSizer18; fgSizer18 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer18->AddGrowableCol( 1 ); fgSizer18->SetFlexibleDirection( wxBOTH ); fgSizer18->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_pCheckAbort = new wxCheckBox( m_pPanelHL7, wxID_ANY, _("Abort message"), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer18->Add( m_pCheckAbort, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pTextAbort = new wxTextCtrl( m_pPanelHL7, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); fgSizer18->Add( m_pTextAbort, 1, wxALL|wxEXPAND, 5 ); m_pCheckCompleted = new wxCheckBox( m_pPanelHL7, wxID_ANY, _("Completed message"), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer18->Add( m_pCheckCompleted, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pTextCompleted = new wxTextCtrl( m_pPanelHL7, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); fgSizer18->Add( m_pTextCompleted, 0, wxALL|wxEXPAND, 5 ); m_pCheckInProgress = new wxCheckBox( m_pPanelHL7, wxID_ANY, _("In progress message"), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer18->Add( m_pCheckInProgress, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pTextProgress = new wxTextCtrl( m_pPanelHL7, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); fgSizer18->Add( m_pTextProgress, 0, wxALL|wxEXPAND, 5 ); fgSizer18->Add( 0, 0, 1, wxEXPAND, 5 ); m_button62 = new wxButton( m_pPanelHL7, wxID_ANY, _("Default values"), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer18->Add( m_button62, 0, wxALL|wxALIGN_RIGHT, 5 ); m_pSizerHL7->Add( fgSizer18, 1, wxEXPAND, 5 ); m_pPanelHL7->SetSizer( m_pSizerHL7 ); m_pPanelHL7->Layout(); m_pSizerHL7->Fit( m_pPanelHL7 ); bSizer106->Add( m_pPanelHL7, 1, wxEXPAND | wxALL, 5 ); m_panel83->SetSizer( bSizer106 ); m_panel83->Layout(); bSizer106->Fit( m_panel83 ); bSizer104->Add( m_panel83, 0, wxEXPAND, 5 ); m_pWorkListPanel->SetSizer( bSizer104 ); m_pWorkListPanel->Layout(); bSizer104->Fit( m_pWorkListPanel ); m_notebook1->AddPage( m_pWorkListPanel, _("Worklist"), false ); m_pPanelSeguridad = new BodyPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer81; bSizer81 = new wxBoxSizer( wxVERTICAL ); m_pSSLTLS = new SubTitledPanel( m_pPanelSeguridad, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pSSLTLS->SetToolTip( _("SSL/TLS") ); wxBoxSizer* bSizer87; bSizer87 = new wxBoxSizer( wxVERTICAL ); m_pVerifyServer = new wxCheckBox( m_pSSLTLS, wxID_ANY, _("Verify server credentials"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer87->Add( m_pVerifyServer, 0, wxALL, 5 ); m_pUseSSL = new wxCheckBox( m_pSSLTLS, wxID_ANY, _("Use SSL/TLS"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer87->Add( m_pUseSSL, 0, wxALL, 5 ); wxStaticBoxSizer* sbSizer6; sbSizer6 = new wxStaticBoxSizer( new wxStaticBox( m_pSSLTLS, wxID_ANY, _("Certificate") ), wxHORIZONTAL ); m_staticText55 = new wxStaticText( m_pSSLTLS, wxID_ANY, _("Certificate to use in this connection"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText55->Wrap( -1 ); sbSizer6->Add( m_staticText55, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_pBCert = new wxButton( m_pSSLTLS, wxID_ANY, _("Advanced Configuration ..."), wxDefaultPosition, wxDefaultSize, 0 ); sbSizer6->Add( m_pBCert, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); bSizer87->Add( sbSizer6, 0, wxEXPAND|wxTOP, 5 ); m_pSSLTLS->SetSizer( bSizer87 ); m_pSSLTLS->Layout(); bSizer87->Fit( m_pSSLTLS ); bSizer81->Add( m_pSSLTLS, 0, wxEXPAND, 5 ); m_panelSep = new SubTitledPanelSeparatorV( m_pPanelSeguridad, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer81->Add( m_panelSep, 0, wxEXPAND, 5 ); m_panelUserPass = new SubTitledPanel( m_pPanelSeguridad, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panelUserPass->SetToolTip( _("User/Password") ); wxFlexGridSizer* fgSizer21; fgSizer21 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer21->AddGrowableCol( 1 ); fgSizer21->SetFlexibleDirection( wxBOTH ); fgSizer21->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText61 = new wxStaticText( m_panelUserPass, wxID_ANY, _("User"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText61->Wrap( -1 ); fgSizer21->Add( m_staticText61, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pUser = new wxTextCtrl( m_panelUserPass, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pUser->SetMaxLength( 0 ); fgSizer21->Add( m_pUser, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); m_staticText62 = new wxStaticText( m_panelUserPass, wxID_ANY, _("Password"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText62->Wrap( -1 ); fgSizer21->Add( m_staticText62, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pPassword = new wxTextCtrl( m_panelUserPass, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD ); m_pPassword->SetMaxLength( 0 ); fgSizer21->Add( m_pPassword, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); m_panelUserPass->SetSizer( fgSizer21 ); m_panelUserPass->Layout(); fgSizer21->Fit( m_panelUserPass ); bSizer81->Add( m_panelUserPass, 0, wxEXPAND, 5 ); m_panelSep1 = new SubTitledPanelSeparatorV( m_pPanelSeguridad, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer81->Add( m_panelSep1, 0, wxEXPAND, 5 ); m_pPanelDefaultCharset = new SubTitledPanel( m_pPanelSeguridad, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelDefaultCharset->SetToolTip( _("Default charset") ); wxFlexGridSizer* fgSizer211; fgSizer211 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer211->AddGrowableCol( 1 ); fgSizer211->SetFlexibleDirection( wxBOTH ); fgSizer211->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText131 = new wxStaticText( m_pPanelDefaultCharset, wxID_ANY, _("Default charset"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText131->Wrap( -1 ); fgSizer211->Add( m_staticText131, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 ); m_pComboCharset = new wxComboBox( m_pPanelDefaultCharset, wxID_ANY, _("ISO_IR 100"), wxDefaultPosition, wxDefaultSize, 0, NULL, wxCB_READONLY|wxCB_SORT ); m_pComboCharset->Append( _("ISO_IR 192") ); m_pComboCharset->Append( _("ISO_IR 6") ); m_pComboCharset->Append( _("ISO_IR 100") ); m_pComboCharset->Append( _("ISO_IR 101") ); m_pComboCharset->Append( _("ISO_IR 109") ); m_pComboCharset->Append( _("ISO_IR 110") ); m_pComboCharset->Append( _("ISO_IR 126") ); m_pComboCharset->Append( _("ISO_IR 127") ); m_pComboCharset->Append( _("ISO_IR 138") ); m_pComboCharset->Append( _("ISO_IR 144") ); m_pComboCharset->Append( _("ISO_IR 148") ); fgSizer211->Add( m_pComboCharset, 1, wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); m_pPanelDefaultCharset->SetSizer( fgSizer211 ); m_pPanelDefaultCharset->Layout(); fgSizer211->Fit( m_pPanelDefaultCharset ); bSizer81->Add( m_pPanelDefaultCharset, 0, wxEXPAND, 5 ); m_pPanelSeguridad->SetSizer( bSizer81 ); m_pPanelSeguridad->Layout(); bSizer81->Fit( m_pPanelSeguridad ); m_notebook1->AddPage( m_pPanelSeguridad, _("Advanced"), false ); bSizer11->Add( m_notebook1, 1, wxEXPAND|wxTOP, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer31; bSizer31 = new wxBoxSizer( wxHORIZONTAL ); m_button20 = new wxButton( m_pFooter, wxID_ANY, _("Test connection"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer31->Add( m_button20, 0, wxALIGN_RIGHT|wxALL|wxBOTTOM|wxLEFT|wxTOP, 5 ); bSizer31->Add( 0, 0, 1, wxEXPAND, 5 ); m_button37 = new wxButton( m_pFooter, wxID_OK, _("Accept"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer31->Add( m_button37, 0, wxALL, 5 ); m_button38 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer31->Add( m_button38, 0, wxALL, 5 ); m_pFooter->SetSizer( bSizer31 ); m_pFooter->Layout(); bSizer31->Fit( m_pFooter ); bSizer11->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer11 ); this->Layout(); // Connect Events m_pRetrieveMethod->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DialogoServidorPACSBase::OnRetrieveMethodChoice ), NULL, this ); m_pCheckHL7->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnChecWL ), NULL, this ); m_pCheckAbort->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnChecWL ), NULL, this ); m_pCheckCompleted->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnChecWL ), NULL, this ); m_pCheckInProgress->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnChecWL ), NULL, this ); m_button62->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnMessageDefaultValues ), NULL, this ); m_pBCert->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnAdvancedConfiguration ), NULL, this ); m_pComboCharset->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DialogoServidorPACSBase::OnTextoCambiado ), NULL, this ); m_button20->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnProbarClick ), NULL, this ); m_button37->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnOkClick ), NULL, this ); m_button38->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnCancelClick ), NULL, this ); } DialogoServidorPACSBase::~DialogoServidorPACSBase() { // Disconnect Events m_pRetrieveMethod->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DialogoServidorPACSBase::OnRetrieveMethodChoice ), NULL, this ); m_pCheckHL7->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnChecWL ), NULL, this ); m_pCheckAbort->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnChecWL ), NULL, this ); m_pCheckCompleted->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnChecWL ), NULL, this ); m_pCheckInProgress->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnChecWL ), NULL, this ); m_button62->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnMessageDefaultValues ), NULL, this ); m_pBCert->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnAdvancedConfiguration ), NULL, this ); m_pComboCharset->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DialogoServidorPACSBase::OnTextoCambiado ), NULL, this ); m_button20->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnProbarClick ), NULL, this ); m_button37->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnOkClick ), NULL, this ); m_button38->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoServidorPACSBase::OnCancelClick ), NULL, this ); } DialogoLocalPACSBase::DialogoLocalPACSBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 346,300 ), wxDefaultSize ); wxBoxSizer* bSizer71; bSizer71 = new wxBoxSizer( wxVERTICAL ); m_panel51 = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer80; bSizer80 = new wxBoxSizer( wxVERTICAL ); m_panel67 = new TitledPanel( m_panel51, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel67->SetToolTip( _("Security") ); wxBoxSizer* bSizer81; bSizer81 = new wxBoxSizer( wxVERTICAL ); m_pVerifyServer = new wxCheckBox( m_panel67, wxID_ANY, _("Verify client credentials"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer81->Add( m_pVerifyServer, 0, wxALL, 5 ); m_pUseTLS = new wxCheckBox( m_panel67, wxID_ANY, _("Use SSL/TLS"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer81->Add( m_pUseTLS, 0, wxALL, 5 ); wxStaticBoxSizer* sbSizer5; sbSizer5 = new wxStaticBoxSizer( new wxStaticBox( m_panel67, wxID_ANY, _("Local AET certificate") ), wxVERTICAL ); wxFlexGridSizer* fgSizer36; fgSizer36 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer36->AddGrowableCol( 0 ); fgSizer36->SetFlexibleDirection( wxBOTH ); fgSizer36->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText55 = new wxStaticText( m_panel67, wxID_ANY, _("Certificate used by Ginkgo CADx"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText55->Wrap( -1 ); fgSizer36->Add( m_staticText55, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_pBCert = new wxButton( m_panel67, wxID_ANY, _("Import ..."), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer36->Add( m_pBCert, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); sbSizer5->Add( fgSizer36, 1, wxEXPAND, 5 ); bSizer81->Add( sbSizer5, 0, wxEXPAND|wxTOP, 5 ); m_panel67->SetSizer( bSizer81 ); m_panel67->Layout(); bSizer81->Fit( m_panel67 ); bSizer80->Add( m_panel67, 1, wxEXPAND, 5 ); m_panel51->SetSizer( bSizer80 ); m_panel51->Layout(); bSizer80->Fit( m_panel51 ); bSizer71->Add( m_panel51, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer19; bSizer19 = new wxBoxSizer( wxHORIZONTAL ); bSizer19->Add( 0, 0, 1, wxEXPAND, 5 ); m_button8 = new wxButton( m_pFooter, wxID_OK, _("Accept"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer19->Add( m_button8, 0, wxRIGHT, 5 ); m_button9 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer19->Add( m_button9, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer19 ); m_pFooter->Layout(); bSizer19->Fit( m_pFooter ); bSizer71->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer71 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_pBCert->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoLocalPACSBase::OnEditCertificate ), NULL, this ); m_button8->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoLocalPACSBase::OnAceptarClick ), NULL, this ); } DialogoLocalPACSBase::~DialogoLocalPACSBase() { // Disconnect Events m_pBCert->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoLocalPACSBase::OnEditCertificate ), NULL, this ); m_button8->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoLocalPACSBase::OnAceptarClick ), NULL, this ); } PanelConfiguracionHCEBase::PanelConfiguracionHCEBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { this->SetMinSize( wxSize( 450,-1 ) ); wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxVERTICAL ); m_pHCE = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHCE->SetToolTip( _("Gingo CADx Application ID used to fill MSH.3 field") ); wxBoxSizer* bSizer38; bSizer38 = new wxBoxSizer( wxVERTICAL ); wxFlexGridSizer* fgSizer21; fgSizer21 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer21->AddGrowableCol( 1 ); fgSizer21->SetFlexibleDirection( wxBOTH ); fgSizer21->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_pstIdOrganizacionReceptora = new wxStaticText( m_pHCE, wxID_ANY, _("Receiver organization Id"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstIdOrganizacionReceptora->Wrap( -1 ); m_pstIdOrganizacionReceptora->SetToolTip( _("Unique identifier of the organization receiving the message.") ); fgSizer21->Add( m_pstIdOrganizacionReceptora, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pIdOrganizacionReceptora = new wxTextCtrl( m_pHCE, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 ); m_pIdOrganizacionReceptora->SetMaxLength( 0 ); m_pIdOrganizacionReceptora->SetToolTip( _("Unique identifier of the organization receiving the message.") ); fgSizer21->Add( m_pIdOrganizacionReceptora, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pstIdSistemaPeticionario = new wxStaticText( m_pHCE, wxID_ANY, _("Petitioner System Id"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstIdSistemaPeticionario->Wrap( -1 ); m_pstIdSistemaPeticionario->SetToolTip( _("Unique identifier of the requesting system.") ); fgSizer21->Add( m_pstIdSistemaPeticionario, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pIdSistemaPeticionario = new wxTextCtrl( m_pHCE, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pIdSistemaPeticionario->SetMaxLength( 0 ); m_pIdSistemaPeticionario->SetToolTip( _("Unique identifier of the requesting system.") ); fgSizer21->Add( m_pIdSistemaPeticionario, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pstIdAplicacionRellenadora = new wxStaticText( m_pHCE, wxID_ANY, _("Filler Application Id"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstIdAplicacionRellenadora->Wrap( -1 ); m_pstIdAplicacionRellenadora->SetToolTip( _("Unique identifier of the filler application (SIID/Ginkgo CADx).") ); fgSizer21->Add( m_pstIdAplicacionRellenadora, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pIdAplicacionRellenadora = new wxTextCtrl( m_pHCE, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pIdAplicacionRellenadora->SetMaxLength( 0 ); m_pIdAplicacionRellenadora->SetToolTip( _("Unique identifier of the filler application (SIID/Ginkgo).") ); fgSizer21->Add( m_pIdAplicacionRellenadora, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pstIdAplicacionPACS = new wxStaticText( m_pHCE, wxID_ANY, _("Ginkgo CADx Application Id"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstIdAplicacionPACS->Wrap( -1 ); m_pstIdAplicacionPACS->SetToolTip( _("Unique identifier of the Picture Archiving and Communication System Application (SIID/PACS).") ); fgSizer21->Add( m_pstIdAplicacionPACS, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_pIdGinkgoAplication = new wxTextCtrl( m_pHCE, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pIdGinkgoAplication->SetMaxLength( 0 ); m_pIdGinkgoAplication->SetToolTip( _("Unique identifier of the Picture Archiving and Communication System Application (SIID/PACS).") ); fgSizer21->Add( m_pIdGinkgoAplication, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxLEFT, 5 ); bSizer38->Add( fgSizer21, 1, wxEXPAND, 5 ); m_pHCE->SetSizer( bSizer38 ); m_pHCE->Layout(); bSizer38->Fit( m_pHCE ); bSizer6->Add( m_pHCE, 0, wxEXPAND, 5 ); m_pSep = new SubTitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer6->Add( m_pSep, 0, wxEXPAND, 5 ); m_pIntegrationEngine = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pIntegrationEngine->SetToolTip( _("Integration engine") ); wxBoxSizer* bSizer24; bSizer24 = new wxBoxSizer( wxVERTICAL ); wxFlexGridSizer* fgSizer20; fgSizer20 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer20->AddGrowableCol( 1 ); fgSizer20->SetFlexibleDirection( wxBOTH ); fgSizer20->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText121 = new wxStaticText( m_pIntegrationEngine, wxID_ANY, _("Hostname / Port"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText121->Wrap( -1 ); m_staticText121->SetToolTip( _("Hostname (IP or DNS) integration engine") ); fgSizer20->Add( m_staticText121, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); wxBoxSizer* bSizer74; bSizer74 = new wxBoxSizer( wxHORIZONTAL ); m_pHostnameMI = new wxTextCtrl( m_pIntegrationEngine, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0 ); m_pHostnameMI->SetMaxLength( 0 ); bSizer74->Add( m_pHostnameMI, 3, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, 5 ); m_staticText60 = new wxStaticText( m_pIntegrationEngine, wxID_ANY, _("/"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText60->Wrap( -1 ); bSizer74->Add( m_staticText60, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pPuertoMI = new wxTextCtrl( m_pIntegrationEngine, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pPuertoMI->SetMaxLength( 0 ); bSizer74->Add( m_pPuertoMI, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); fgSizer20->Add( bSizer74, 1, wxEXPAND, 5 ); m_staticText38 = new wxStaticText( m_pIntegrationEngine, wxID_ANY, _("Protocol"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText38->Wrap( -1 ); m_staticText38->SetToolTip( _("Integration Engine's Transport Layer Protocol") ); fgSizer20->Add( m_staticText38, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); wxBoxSizer* bSizer75; bSizer75 = new wxBoxSizer( wxHORIZONTAL ); wxString m_pProtocoloChoices[] = { _("MLLP") }; int m_pProtocoloNChoices = sizeof( m_pProtocoloChoices ) / sizeof( wxString ); m_pProtocolo = new wxChoice( m_pIntegrationEngine, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pProtocoloNChoices, m_pProtocoloChoices, 0 ); m_pProtocolo->SetSelection( 0 ); bSizer75->Add( m_pProtocolo, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 ); bSizer75->Add( 30, 0, 0, wxEXPAND, 5 ); m_staticText39 = new wxStaticText( m_pIntegrationEngine, wxID_ANY, _("Format"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText39->Wrap( -1 ); m_staticText39->SetToolTip( _("Message's format") ); bSizer75->Add( m_staticText39, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); wxString m_pFormatoChoices[] = { _("ER7") }; int m_pFormatoNChoices = sizeof( m_pFormatoChoices ) / sizeof( wxString ); m_pFormato = new wxChoice( m_pIntegrationEngine, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pFormatoNChoices, m_pFormatoChoices, 0 ); m_pFormato->SetSelection( 0 ); bSizer75->Add( m_pFormato, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 5 ); bSizer75->Add( 0, 0, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_button15 = new wxButton( m_pIntegrationEngine, wxID_ANY, _("Test engine"), wxDefaultPosition, wxDefaultSize, 0 ); m_button15->SetToolTip( _("Test Integration Engine connectivity") ); bSizer75->Add( m_button15, 0, wxTOP|wxLEFT|wxALIGN_RIGHT, 5 ); fgSizer20->Add( bSizer75, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); bSizer24->Add( fgSizer20, 1, wxEXPAND, 5 ); m_pIntegrationEngine->SetSizer( bSizer24 ); m_pIntegrationEngine->Layout(); bSizer24->Fit( m_pIntegrationEngine ); bSizer6->Add( m_pIntegrationEngine, 0, wxEXPAND, 5 ); this->SetSizer( bSizer6 ); this->Layout(); // Connect Events this->Connect( wxEVT_SIZE, wxSizeEventHandler( PanelConfiguracionHCEBase::OnSize ) ); m_pIdOrganizacionReceptora->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_pIdSistemaPeticionario->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_pIdAplicacionRellenadora->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_pIdGinkgoAplication->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_pHostnameMI->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_pPuertoMI->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_button15->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTestClick ), NULL, this ); } PanelConfiguracionHCEBase::~PanelConfiguracionHCEBase() { // Disconnect Events this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( PanelConfiguracionHCEBase::OnSize ) ); m_pIdOrganizacionReceptora->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_pIdSistemaPeticionario->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_pIdAplicacionRellenadora->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_pIdGinkgoAplication->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_pHostnameMI->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_pPuertoMI->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTextoCambiado ), NULL, this ); m_button15->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionHCEBase::OnTestClick ), NULL, this ); } PanelConfiguracionExtensionesBase::PanelConfiguracionExtensionesBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { this->SetMinSize( wxSize( 450,-1 ) ); wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxVERTICAL ); m_pExtensions = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pExtensions->SetToolTip( _("Extensions") ); wxBoxSizer* bSizer44; bSizer44 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer85; bSizer85 = new wxBoxSizer( wxVERTICAL ); m_pScrollPanelExtensions = new wxScrolledWindow( m_pExtensions, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL ); m_pScrollPanelExtensions->SetScrollRate( 5, 5 ); wxBoxSizer* bSizer84; bSizer84 = new wxBoxSizer( wxVERTICAL ); m_pScrollPanelExtensions->SetSizer( bSizer84 ); m_pScrollPanelExtensions->Layout(); bSizer84->Fit( m_pScrollPanelExtensions ); bSizer85->Add( m_pScrollPanelExtensions, 1, wxEXPAND|wxTOP|wxBOTTOM, 5 ); bSizer44->Add( bSizer85, 1, wxEXPAND, 5 ); m_pExtensions->SetSizer( bSizer44 ); m_pExtensions->Layout(); bSizer44->Fit( m_pExtensions ); bSizer6->Add( m_pExtensions, 1, wxEXPAND, 5 ); this->SetSizer( bSizer6 ); this->Layout(); bSizer6->Fit( this ); // Connect Events this->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PanelConfiguracionExtensionesBase::OnEraseBackground ) ); m_pExtensions->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PanelConfiguracionExtensionesBase::OnEraseBackground ), NULL, this ); } PanelConfiguracionExtensionesBase::~PanelConfiguracionExtensionesBase() { // Disconnect Events this->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PanelConfiguracionExtensionesBase::OnEraseBackground ) ); m_pExtensions->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PanelConfiguracionExtensionesBase::OnEraseBackground ), NULL, this ); } ExtensionPanelBase::ExtensionPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : GinkgoBoxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer80; bSizer80 = new wxBoxSizer( wxHORIZONTAL ); m_pThumbnail = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); m_pThumbnail->SetMinSize( wxSize( 50,50 ) ); bSizer80->Add( m_pThumbnail, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxBoxSizer* bSizer81; bSizer81 = new wxBoxSizer( wxVERTICAL ); m_pLabelTitle = new wxStaticText( this, wxID_ANY, _("Ginkgo Extension Title"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelTitle->Wrap( -1 ); m_pLabelTitle->SetFont( wxFont( 12, 70, 90, 92, false, wxEmptyString ) ); m_pLabelTitle->SetForegroundColour( wxColour( 63, 63, 63 ) ); bSizer81->Add( m_pLabelTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); bSizer80->Add( bSizer81, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); this->SetSizer( bSizer80 ); this->Layout(); bSizer80->Fit( this ); } ExtensionPanelBase::~ExtensionPanelBase() { } DialogoEditarCertificadoBase::DialogoEditarCertificadoBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 450,550 ), wxDefaultSize ); wxBoxSizer* bSizer83; bSizer83 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer86; bSizer86 = new wxBoxSizer( wxVERTICAL ); m_pPanelDefault = new SubTitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelDefault->SetToolTip( _("Edit public key") ); wxBoxSizer* bSizer872; bSizer872 = new wxBoxSizer( wxVERTICAL ); m_pCheckDefault = new wxCheckBox( m_pPanelDefault, wxID_ANY, _("Use default certificate (certificate configured in local AET settings)"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer872->Add( m_pCheckDefault, 0, 0, 5 ); m_pPanelDefault->SetSizer( bSizer872 ); m_pPanelDefault->Layout(); bSizer872->Fit( m_pPanelDefault ); bSizer86->Add( m_pPanelDefault, 0, wxEXPAND, 5 ); m_pSepDefault = new SubTitledPanelSeparatorV( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer86->Add( m_pSepDefault, 0, wxEXPAND | wxALL, 5 ); m_pPanelPublic = new SubTitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelPublic->SetToolTip( _("Public key") ); wxBoxSizer* bSizer87; bSizer87 = new wxBoxSizer( wxVERTICAL ); m_pLabel = new wxStaticText( m_pPanelPublic, wxID_ANY, _("Public key in PEM format"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel->Wrap( -1 ); bSizer87->Add( m_pLabel, 0, wxBOTTOM|wxRIGHT, 5 ); m_pTextoCertificado = new wxTextCtrl( m_pPanelPublic, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); bSizer87->Add( m_pTextoCertificado, 1, wxEXPAND|wxTOP|wxBOTTOM, 5 ); m_button62 = new wxButton( m_pPanelPublic, wxID_ANY, _("Load ..."), wxDefaultPosition, wxDefaultSize, 0 ); bSizer87->Add( m_button62, 0, wxALIGN_RIGHT|wxTOP, 5 ); m_pPanelPublic->SetSizer( bSizer87 ); m_pPanelPublic->Layout(); bSizer87->Fit( m_pPanelPublic ); bSizer86->Add( m_pPanelPublic, 1, wxEXPAND, 5 ); m_panel60 = new SubTitledPanelSeparatorV( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer86->Add( m_panel60, 0, wxEXPAND, 5 ); m_pPanelPrivate = new SubTitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelPrivate->SetToolTip( _("Private key") ); wxBoxSizer* bSizer871; bSizer871 = new wxBoxSizer( wxVERTICAL ); m_pLabel11 = new wxStaticText( m_pPanelPrivate, wxID_ANY, _("Private key in PEM format"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel11->Wrap( -1 ); bSizer871->Add( m_pLabel11, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pTextoPrivateKey = new wxTextCtrl( m_pPanelPrivate, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); bSizer871->Add( m_pTextoPrivateKey, 1, wxEXPAND|wxTOP, 5 ); m_button621 = new wxButton( m_pPanelPrivate, wxID_ANY, _("Load ..."), wxDefaultPosition, wxDefaultSize, 0 ); bSizer871->Add( m_button621, 0, wxALIGN_RIGHT|wxTOP, 5 ); m_pPanelPrivate->SetSizer( bSizer871 ); m_pPanelPrivate->Layout(); bSizer871->Fit( m_pPanelPrivate ); bSizer86->Add( m_pPanelPrivate, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer86 ); m_pBody->Layout(); bSizer86->Fit( m_pBody ); bSizer83->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer19; bSizer19 = new wxBoxSizer( wxHORIZONTAL ); m_button48 = new wxButton( m_pFooter, wxID_ANY, _("Reset to default"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer19->Add( m_button48, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); bSizer19->Add( 0, 0, 1, wxEXPAND, 5 ); m_button8 = new wxButton( m_pFooter, wxID_OK, _("Accept"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer19->Add( m_button8, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); m_button9 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer19->Add( m_button9, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_pFooter->SetSizer( bSizer19 ); m_pFooter->Layout(); bSizer19->Fit( m_pFooter ); bSizer83->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer83 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_pCheckDefault->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DialogoEditarCertificadoBase::OnCheckDefault ), NULL, this ); m_button62->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoEditarCertificadoBase::OnLoadPublicClick ), NULL, this ); m_button621->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoEditarCertificadoBase::OnLoadPrivateClick ), NULL, this ); m_button48->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoEditarCertificadoBase::OnResetToDefault ), NULL, this ); m_button8->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoEditarCertificadoBase::OnAceptarClick ), NULL, this ); } DialogoEditarCertificadoBase::~DialogoEditarCertificadoBase() { // Disconnect Events m_pCheckDefault->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DialogoEditarCertificadoBase::OnCheckDefault ), NULL, this ); m_button62->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoEditarCertificadoBase::OnLoadPublicClick ), NULL, this ); m_button621->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoEditarCertificadoBase::OnLoadPrivateClick ), NULL, this ); m_button48->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoEditarCertificadoBase::OnResetToDefault ), NULL, this ); m_button8->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoEditarCertificadoBase::OnAceptarClick ), NULL, this ); } ProfileDialogBase::ProfileDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 770,540 ), wxDefaultSize ); wxBoxSizer* bSizer53; bSizer53 = new wxBoxSizer( wxVERTICAL ); m_pBasePanel = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer44; bSizer44 = new wxBoxSizer( wxVERTICAL ); m_pTitledPanel = new TitledPanel( m_pBasePanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pTitledPanel->SetToolTip( _("Profile") ); wxBoxSizer* bSizer43; bSizer43 = new wxBoxSizer( wxVERTICAL ); wxFlexGridSizer* fgSizer14; fgSizer14 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer14->AddGrowableCol( 1 ); fgSizer14->SetFlexibleDirection( wxBOTH ); fgSizer14->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText47 = new wxStaticText( m_pTitledPanel, wxID_ANY, _("Profile name"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText47->Wrap( -1 ); fgSizer14->Add( m_staticText47, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pName = new wxTextCtrl( m_pTitledPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pName->SetMaxLength( 0 ); fgSizer14->Add( m_pName, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); bSizer43->Add( fgSizer14, 0, wxEXPAND|wxBOTTOM, 5 ); m_pGridPermisos = new wxPropertyGrid( m_pTitledPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxPG_AUTO_SORT | wxPG_SPLITTER_AUTO_CENTER| wxPG_DEFAULT_STYLE ); bSizer43->Add( m_pGridPermisos, 1, wxALL|wxEXPAND, 5 ); m_pTitledPanel->SetSizer( bSizer43 ); m_pTitledPanel->Layout(); bSizer43->Fit( m_pTitledPanel ); bSizer44->Add( m_pTitledPanel, 1, wxEXPAND, 5 ); m_pBasePanel->SetSizer( bSizer44 ); m_pBasePanel->Layout(); bSizer44->Fit( m_pBasePanel ); bSizer53->Add( m_pBasePanel, 1, wxEXPAND, 5 ); m_pFooterPanel = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer54; bSizer54 = new wxBoxSizer( wxHORIZONTAL ); bSizer54->Add( 0, 0, 1, wxEXPAND, 5 ); m_button28 = new wxButton( m_pFooterPanel, wxID_ANY, _("Accept"), wxDefaultPosition, wxDefaultSize, 0 ); m_button28->SetDefault(); bSizer54->Add( m_button28, 0, wxRIGHT, 5 ); m_button29 = new wxButton( m_pFooterPanel, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer54->Add( m_button29, 0, wxLEFT, 5 ); m_pFooterPanel->SetSizer( bSizer54 ); m_pFooterPanel->Layout(); bSizer54->Fit( m_pFooterPanel ); bSizer53->Add( m_pFooterPanel, 0, wxEXPAND, 5 ); this->SetSizer( bSizer53 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_button28->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProfileDialogBase::OnOkClick ), NULL, this ); m_button29->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProfileDialogBase::OnCancelClick ), NULL, this ); } ProfileDialogBase::~ProfileDialogBase() { // Disconnect Events m_button28->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProfileDialogBase::OnOkClick ), NULL, this ); m_button29->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ProfileDialogBase::OnCancelClick ), NULL, this ); } PanelConfiguracionPermisosBase::PanelConfiguracionPermisosBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { this->SetMinSize( wxSize( 450,-1 ) ); wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxVERTICAL ); m_pBasePanel = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pBasePanel->SetToolTip( _("Profiles") ); wxBoxSizer* bSizer25; bSizer25 = new wxBoxSizer( wxHORIZONTAL ); m_pListProfiles = new wxDataViewListCtrl(m_pBasePanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); bSizer25->Add( m_pListProfiles, 1, wxALL|wxEXPAND, 5 ); wxBoxSizer* bSizer26; bSizer26 = new wxBoxSizer( wxVERTICAL ); m_button3 = new wxButton( m_pBasePanel, wxID_ANY, _("New ..."), wxDefaultPosition, wxDefaultSize, 0 ); bSizer26->Add( m_button3, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pBEdit = new wxButton( m_pBasePanel, wxID_ANY, _("Edit ..."), wxDefaultPosition, wxDefaultSize, 0 ); m_pBEdit->Enable( false ); bSizer26->Add( m_pBEdit, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pBDelete = new wxButton( m_pBasePanel, wxID_ANY, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 ); m_pBDelete->Enable( false ); bSizer26->Add( m_pBDelete, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); bSizer26->Add( 0, 0, 1, wxEXPAND|wxRIGHT, 5 ); m_pBActive = new wxButton( m_pBasePanel, wxID_ANY, _("Set active"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer26->Add( m_pBActive, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); bSizer25->Add( bSizer26, 0, wxEXPAND, 5 ); m_pBasePanel->SetSizer( bSizer25 ); m_pBasePanel->Layout(); bSizer25->Fit( m_pBasePanel ); bSizer6->Add( m_pBasePanel, 1, wxEXPAND, 5 ); this->SetSizer( bSizer6 ); this->Layout(); // Connect Events this->Connect( wxEVT_SIZE, wxSizeEventHandler( PanelConfiguracionPermisosBase::OnSize ) ); m_button3->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPermisosBase::OnNuevoClick ), NULL, this ); m_pBEdit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPermisosBase::OnEditarClick ), NULL, this ); m_pBDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPermisosBase::OnEliminarClick ), NULL, this ); m_pBActive->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPermisosBase::OnSetActive ), NULL, this ); } PanelConfiguracionPermisosBase::~PanelConfiguracionPermisosBase() { // Disconnect Events this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( PanelConfiguracionPermisosBase::OnSize ) ); m_button3->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPermisosBase::OnNuevoClick ), NULL, this ); m_pBEdit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPermisosBase::OnEditarClick ), NULL, this ); m_pBDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPermisosBase::OnEliminarClick ), NULL, this ); m_pBActive->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionPermisosBase::OnSetActive ), NULL, this ); } PanelConfiguracionUbicacionesBase::PanelConfiguracionUbicacionesBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { this->SetMinSize( wxSize( 450,-1 ) ); wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxVERTICAL ); m_pUbicaciones = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pUbicaciones->SetToolTip( _("Locations") ); wxBoxSizer* bSizer63; bSizer63 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer76; bSizer76 = new wxBoxSizer( wxHORIZONTAL ); m_staticTextExplicacion = new wxStaticText( m_pUbicaciones, wxID_ANY, _("Locations are predefined paths to set locations from well known paths (ex: remote shared disk)"), wxDefaultPosition, wxDefaultSize, wxST_NO_AUTORESIZE ); m_staticTextExplicacion->Wrap( 430 ); bSizer76->Add( m_staticTextExplicacion, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); bSizer63->Add( bSizer76, 0, wxEXPAND, 5 ); wxBoxSizer* m_pMainSizer; m_pMainSizer = new wxBoxSizer( wxHORIZONTAL ); m_pListUbicaciones = new wxDataViewListCtrl(m_pUbicaciones, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); m_pMainSizer->Add( m_pListUbicaciones, 1, wxALL|wxEXPAND, 5 ); wxBoxSizer* m_pSizerBotonera; m_pSizerBotonera = new wxBoxSizer( wxVERTICAL ); m_pBotonNuevo = new wxButton( m_pUbicaciones, wxID_ANY, _("New ..."), wxDefaultPosition, wxDefaultSize, 0 ); m_pSizerBotonera->Add( m_pBotonNuevo, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pBotonEdit = new wxButton( m_pUbicaciones, wxID_ANY, _("Edit ..."), wxDefaultPosition, wxDefaultSize, 0 ); m_pBotonEdit->Enable( false ); m_pSizerBotonera->Add( m_pBotonEdit, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pBotonDelete = new wxButton( m_pUbicaciones, wxID_ANY, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 ); m_pBotonDelete->Enable( false ); m_pSizerBotonera->Add( m_pBotonDelete, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pSizerBotonera->Add( 0, 0, 1, wxEXPAND|wxRIGHT, 5 ); m_pMainSizer->Add( m_pSizerBotonera, 0, wxEXPAND, 5 ); bSizer63->Add( m_pMainSizer, 1, wxEXPAND, 5 ); m_pUbicaciones->SetSizer( bSizer63 ); m_pUbicaciones->Layout(); bSizer63->Fit( m_pUbicaciones ); bSizer6->Add( m_pUbicaciones, 1, wxEXPAND, 5 ); this->SetSizer( bSizer6 ); this->Layout(); bSizer6->Fit( this ); // Connect Events this->Connect( wxEVT_SIZE, wxSizeEventHandler( PanelConfiguracionUbicacionesBase::OnSize ) ); m_pBotonNuevo->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionUbicacionesBase::OnNuevoClick ), NULL, this ); m_pBotonEdit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionUbicacionesBase::OnEditarClick ), NULL, this ); m_pBotonDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionUbicacionesBase::OnEliminarClick ), NULL, this ); } PanelConfiguracionUbicacionesBase::~PanelConfiguracionUbicacionesBase() { // Disconnect Events this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( PanelConfiguracionUbicacionesBase::OnSize ) ); m_pBotonNuevo->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionUbicacionesBase::OnNuevoClick ), NULL, this ); m_pBotonEdit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionUbicacionesBase::OnEditarClick ), NULL, this ); m_pBotonDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionUbicacionesBase::OnEliminarClick ), NULL, this ); } DialogoAddLocationBase::DialogoAddLocationBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 450,450 ), wxDefaultSize ); wxBoxSizer* m_pMainSizer; m_pMainSizer = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* m_pBodySizer; m_pBodySizer = new wxBoxSizer( wxVERTICAL ); m_pPanel = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanel->SetToolTip( _("Configure location") ); wxBoxSizer* m_pPanelSizer; m_pPanelSizer = new wxBoxSizer( wxVERTICAL ); wxFlexGridSizer* m_pTableSizer; m_pTableSizer = new wxFlexGridSizer( 0, 2, 0, 0 ); m_pTableSizer->AddGrowableCol( 1 ); m_pTableSizer->SetFlexibleDirection( wxBOTH ); m_pTableSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_pSTTitle = new wxStaticText( m_pPanel, wxID_ANY, _("Title"), wxDefaultPosition, wxDefaultSize, 0 ); m_pSTTitle->Wrap( -1 ); m_pTableSizer->Add( m_pSTTitle, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 ); m_pTETitle = new wxTextCtrl( m_pPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pTETitle->SetMaxLength( 8 ); m_pTableSizer->Add( m_pTETitle, 0, wxEXPAND|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); m_pSTLocation = new wxStaticText( m_pPanel, wxID_ANY, _("Location"), wxDefaultPosition, wxDefaultSize, 0 ); m_pSTLocation->Wrap( -1 ); m_pTableSizer->Add( m_pSTLocation, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); wxBoxSizer* m_pDirSizer; m_pDirSizer = new wxBoxSizer( wxHORIZONTAL ); m_pTELocation = new wxTextCtrl( m_pPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pTELocation->SetMaxLength( 0 ); m_pDirSizer->Add( m_pTELocation, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 ); m_pOpenDir = new wxButton( m_pPanel, wxID_ANY, _("..."), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); m_pDirSizer->Add( m_pOpenDir, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 ); m_pTableSizer->Add( m_pDirSizer, 0, wxTOP|wxLEFT|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_pSTDesc = new wxStaticText( m_pPanel, wxID_ANY, _("Description"), wxDefaultPosition, wxDefaultSize, 0 ); m_pSTDesc->Wrap( -1 ); m_pTableSizer->Add( m_pSTDesc, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_pTEDesc = new wxTextCtrl( m_pPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pTEDesc->SetMaxLength( 100 ); m_pTableSizer->Add( m_pTEDesc, 0, wxEXPAND|wxTOP|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); m_pPanelSizer->Add( m_pTableSizer, 0, wxEXPAND|wxBOTTOM, 5 ); m_pMonitorize = new wxCheckBox( m_pPanel, wxID_ANY, _("Monitorize"), wxDefaultPosition, wxDefaultSize, 0 ); m_pPanelSizer->Add( m_pMonitorize, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pCleanAfter = new wxCheckBox( m_pPanel, wxID_ANY, _("Clean directory after dicomization"), wxDefaultPosition, wxDefaultSize, 0 ); m_pPanelSizer->Add( m_pCleanAfter, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pCleanBefore = new wxCheckBox( m_pPanel, wxID_ANY, _("Clean directory before dicomization"), wxDefaultPosition, wxDefaultSize, 0 ); m_pPanelSizer->Add( m_pCleanBefore, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pPanel->SetSizer( m_pPanelSizer ); m_pPanel->Layout(); m_pPanelSizer->Fit( m_pPanel ); m_pBodySizer->Add( m_pPanel, 1, wxEXPAND, 5 ); m_pBody->SetSizer( m_pBodySizer ); m_pBody->Layout(); m_pBodySizer->Fit( m_pBody ); m_pMainSizer->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* m_pFooterSizer; m_pFooterSizer = new wxBoxSizer( wxHORIZONTAL ); m_pFooterSizer->Add( 0, 0, 1, wxEXPAND, 5 ); m_pAccept = new wxButton( m_pFooter, wxID_ANY, _("Accept"), wxDefaultPosition, wxDefaultSize, 0 ); m_pAccept->SetDefault(); m_pFooterSizer->Add( m_pAccept, 0, wxRIGHT, 5 ); m_pCancel = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); m_pFooterSizer->Add( m_pCancel, 0, wxRIGHT, 5 ); m_pFooter->SetSizer( m_pFooterSizer ); m_pFooter->Layout(); m_pFooterSizer->Fit( m_pFooter ); m_pMainSizer->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( m_pMainSizer ); this->Layout(); // Connect Events m_pOpenDir->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoAddLocationBase::OnOpenDirClick ), NULL, this ); m_pAccept->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoAddLocationBase::OnAceptarClick ), NULL, this ); } DialogoAddLocationBase::~DialogoAddLocationBase() { // Disconnect Events m_pOpenDir->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoAddLocationBase::OnOpenDirClick ), NULL, this ); m_pAccept->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoAddLocationBase::OnAceptarClick ), NULL, this ); } PanelConfiguracionSeguridadBase::PanelConfiguracionSeguridadBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer48; bSizer48 = new wxBoxSizer( wxVERTICAL ); m_pSecurity = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pSecurity->SetToolTip( _("Security") ); wxBoxSizer* bSizer44; bSizer44 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer57; bSizer57 = new wxBoxSizer( wxHORIZONTAL ); m_staticText47 = new wxStaticText( m_pSecurity, wxID_ANY, _("Security type"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText47->Wrap( -1 ); bSizer57->Add( m_staticText47, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxArrayString m_pSecTypeChoices; m_pSecType = new wxChoice( m_pSecurity, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pSecTypeChoices, 0 ); m_pSecType->SetSelection( 0 ); bSizer57->Add( m_pSecType, 0, wxALL, 5 ); bSizer44->Add( bSizer57, 1, wxEXPAND, 5 ); m_pSecurity->SetSizer( bSizer44 ); m_pSecurity->Layout(); bSizer44->Fit( m_pSecurity ); bSizer48->Add( m_pSecurity, 0, wxEXPAND, 5 ); m_pSep = new SubTitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer48->Add( m_pSep, 0, wxEXPAND, 5 ); m_pPanelUsuarios = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelUsuarios->SetToolTip( _("Users") ); wxBoxSizer* bSizer25; bSizer25 = new wxBoxSizer( wxHORIZONTAL ); m_pListaUsuarios = new wxListCtrl( m_pPanelUsuarios, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_SINGLE_SEL|wxLC_SMALL_ICON ); bSizer25->Add( m_pListaUsuarios, 1, wxEXPAND|wxRIGHT, 5 ); wxBoxSizer* bSizer26; bSizer26 = new wxBoxSizer( wxVERTICAL ); m_button3 = new wxButton( m_pPanelUsuarios, wxID_ANY, _("New ..."), wxDefaultPosition, wxDefaultSize, 0 ); bSizer26->Add( m_button3, 0, wxTOP|wxBOTTOM|wxLEFT|wxEXPAND, 5 ); m_pBCambiarPassword = new wxButton( m_pPanelUsuarios, wxID_ANY, _("Change Password ..."), wxDefaultPosition, wxDefaultSize, 0 ); m_pBCambiarPassword->Enable( false ); bSizer26->Add( m_pBCambiarPassword, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pBDelete = new wxButton( m_pPanelUsuarios, wxID_ANY, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 ); m_pBDelete->Enable( false ); bSizer26->Add( m_pBDelete, 0, wxTOP|wxBOTTOM|wxLEFT|wxEXPAND, 5 ); bSizer26->Add( 0, 0, 1, wxEXPAND|wxRIGHT, 5 ); bSizer25->Add( bSizer26, 0, wxEXPAND, 5 ); m_pPanelUsuarios->SetSizer( bSizer25 ); m_pPanelUsuarios->Layout(); bSizer25->Fit( m_pPanelUsuarios ); bSizer48->Add( m_pPanelUsuarios, 1, wxEXPAND, 5 ); m_pPanelPassword = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelPassword->SetToolTip( _("Set main password") ); wxBoxSizer* bSizer251; bSizer251 = new wxBoxSizer( wxHORIZONTAL ); m_pLabelPassword = new wxStaticText( m_pPanelPassword, wxID_ANY, _("Password is not setted"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelPassword->Wrap( -1 ); bSizer251->Add( m_pLabelPassword, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pButtonSetPassword = new wxButton( m_pPanelPassword, wxID_ANY, _("Set Password"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer251->Add( m_pButtonSetPassword, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pPanelPassword->SetSizer( bSizer251 ); m_pPanelPassword->Layout(); bSizer251->Fit( m_pPanelPassword ); bSizer48->Add( m_pPanelPassword, 0, wxEXPAND, 5 ); this->SetSizer( bSizer48 ); this->Layout(); // Connect Events m_pSecurity->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PanelConfiguracionSeguridadBase::OnEraseBackground ), NULL, this ); m_pSecType->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PanelConfiguracionSeguridadBase::OnSecTypeChoice ), NULL, this ); m_pPanelUsuarios->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PanelConfiguracionSeguridadBase::OnEraseBackground ), NULL, this ); m_pListaUsuarios->Connect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( PanelConfiguracionSeguridadBase::OnListaUsuariosItemDeSelected ), NULL, this ); m_pListaUsuarios->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( PanelConfiguracionSeguridadBase::OnListaUsuariosItemSelected ), NULL, this ); m_button3->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionSeguridadBase::OnNuevoClick ), NULL, this ); m_pBCambiarPassword->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionSeguridadBase::OnCambiarPasswordClick ), NULL, this ); m_pBDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionSeguridadBase::OnEliminarClick ), NULL, this ); m_pPanelPassword->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PanelConfiguracionSeguridadBase::OnEraseBackground ), NULL, this ); m_pButtonSetPassword->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionSeguridadBase::OnSetMainPassword ), NULL, this ); } PanelConfiguracionSeguridadBase::~PanelConfiguracionSeguridadBase() { // Disconnect Events m_pSecurity->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PanelConfiguracionSeguridadBase::OnEraseBackground ), NULL, this ); m_pSecType->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( PanelConfiguracionSeguridadBase::OnSecTypeChoice ), NULL, this ); m_pPanelUsuarios->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PanelConfiguracionSeguridadBase::OnEraseBackground ), NULL, this ); m_pListaUsuarios->Disconnect( wxEVT_COMMAND_LIST_ITEM_DESELECTED, wxListEventHandler( PanelConfiguracionSeguridadBase::OnListaUsuariosItemDeSelected ), NULL, this ); m_pListaUsuarios->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( PanelConfiguracionSeguridadBase::OnListaUsuariosItemSelected ), NULL, this ); m_button3->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionSeguridadBase::OnNuevoClick ), NULL, this ); m_pBCambiarPassword->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionSeguridadBase::OnCambiarPasswordClick ), NULL, this ); m_pBDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionSeguridadBase::OnEliminarClick ), NULL, this ); m_pPanelPassword->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PanelConfiguracionSeguridadBase::OnEraseBackground ), NULL, this ); m_pButtonSetPassword->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PanelConfiguracionSeguridadBase::OnSetMainPassword ), NULL, this ); } UserDialogBase::UserDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 423,292 ), wxDefaultSize ); wxBoxSizer* bSizer67; bSizer67 = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Edit User") ); bSizer67->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer68; bSizer68 = new wxBoxSizer( wxVERTICAL ); m_pFormPanel = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pFormPanel->SetToolTip( _("Edit User") ); wxBoxSizer* bSizer75; bSizer75 = new wxBoxSizer( wxVERTICAL ); bSizer75->Add( 0, 0, 1, wxEXPAND, 5 ); wxFlexGridSizer* fgSizer18; fgSizer18 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer18->AddGrowableCol( 1 ); fgSizer18->SetFlexibleDirection( wxBOTH ); fgSizer18->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_pLabelUser = new wxStaticText( m_pFormPanel, wxID_ANY, _("User Name"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelUser->Wrap( -1 ); fgSizer18->Add( m_pLabelUser, 0, wxBOTTOM|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); m_pTCUsuario = new wxTextCtrl( m_pFormPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pTCUsuario->SetMaxLength( 0 ); fgSizer18->Add( m_pTCUsuario, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxEXPAND, 5 ); m_pstat2 = new wxStaticText( m_pFormPanel, wxID_ANY, _("Password"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstat2->Wrap( -1 ); fgSizer18->Add( m_pstat2, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pTCPassword0 = new wxTextCtrl( m_pFormPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD ); m_pTCPassword0->SetMaxLength( 0 ); fgSizer18->Add( m_pTCPassword0, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pstat21 = new wxStaticText( m_pFormPanel, wxID_ANY, _("Confirm Password"), wxDefaultPosition, wxDefaultSize, 0 ); m_pstat21->Wrap( -1 ); fgSizer18->Add( m_pstat21, 0, wxTOP|wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); m_pTCPassword1 = new wxTextCtrl( m_pFormPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD ); m_pTCPassword1->SetMaxLength( 0 ); fgSizer18->Add( m_pTCPassword1, 0, wxTOP|wxLEFT|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); bSizer75->Add( fgSizer18, 0, wxEXPAND, 5 ); bSizer75->Add( 0, 0, 1, wxEXPAND, 5 ); m_pFormPanel->SetSizer( bSizer75 ); m_pFormPanel->Layout(); bSizer75->Fit( m_pFormPanel ); bSizer68->Add( m_pFormPanel, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer68 ); m_pBody->Layout(); bSizer68->Fit( m_pBody ); bSizer67->Add( m_pBody, 1, wxEXPAND, 5 ); m_panel54 = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer69; bSizer69 = new wxBoxSizer( wxHORIZONTAL ); bSizer69->Add( 0, 0, 1, wxEXPAND, 5 ); m_button42 = new wxButton( m_panel54, wxID_ANY, _("Accept"), wxDefaultPosition, wxDefaultSize, 0 ); m_button42->SetDefault(); bSizer69->Add( m_button42, 0, wxRIGHT, 5 ); m_button41 = new wxButton( m_panel54, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer69->Add( m_button41, 0, wxLEFT, 5 ); m_panel54->SetSizer( bSizer69 ); m_panel54->Layout(); bSizer69->Fit( m_panel54 ); bSizer67->Add( m_panel54, 0, wxEXPAND, 5 ); this->SetSizer( bSizer67 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_button42->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UserDialogBase::OnOkClick ), NULL, this ); } UserDialogBase::~UserDialogBase() { // Disconnect Events m_button42->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( UserDialogBase::OnOkClick ), NULL, this ); } PanelConfigurationAnonymizationBase::PanelConfigurationAnonymizationBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer77; bSizer77 = new wxBoxSizer( wxVERTICAL ); m_pAnonimization = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pAnonimization->SetToolTip( _("Properties") ); wxBoxSizer* bSizer78; bSizer78 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer79; bSizer79 = new wxBoxSizer( wxHORIZONTAL ); m_staticText52 = new wxStaticText( m_pAnonimization, wxID_ANY, _("Default value"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText52->Wrap( -1 ); bSizer79->Add( m_staticText52, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pTextDefaultValue = new wxTextCtrl( m_pAnonimization, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 200,-1 ), 0 ); m_pTextDefaultValue->SetMaxLength( 0 ); bSizer79->Add( m_pTextDefaultValue, 0, wxALL, 5 ); bSizer78->Add( bSizer79, 0, wxEXPAND, 5 ); m_pAnonimization->SetSizer( bSizer78 ); m_pAnonimization->Layout(); bSizer78->Fit( m_pAnonimization ); bSizer77->Add( m_pAnonimization, 1, wxEXPAND | wxALL, 5 ); this->SetSizer( bSizer77 ); this->Layout(); } PanelConfigurationAnonymizationBase::~PanelConfigurationAnonymizationBase() { } AddWLDialogBase::AddWLDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 350,250 ), wxDefaultSize ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pPanelMessage = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelMessage->SetToolTip( _("Add DICOM tag") ); wxFlexGridSizer* fgSizer17; fgSizer17 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer17->AddGrowableCol( 1 ); fgSizer17->SetFlexibleDirection( wxBOTH ); fgSizer17->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText79 = new wxStaticText( m_pPanelMessage, wxID_ANY, _("Label"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText79->Wrap( -1 ); fgSizer17->Add( m_staticText79, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pLabel = new wxTextCtrl( m_pPanelMessage, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel->SetMaxLength( 0 ); fgSizer17->Add( m_pLabel, 1, wxALL|wxEXPAND, 5 ); m_staticText59 = new wxStaticText( m_pPanelMessage, wxID_ANY, _("Window"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText59->Wrap( -1 ); fgSizer17->Add( m_staticText59, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); m_pWindow = new wxTextCtrl( m_pPanelMessage, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pWindow->SetMaxLength( 0 ); m_pWindow->SetValidator( wxTextValidator( wxFILTER_NUMERIC, &windowValidator ) ); fgSizer17->Add( m_pWindow, 1, wxALL|wxEXPAND, 5 ); m_staticText60 = new wxStaticText( m_pPanelMessage, wxID_ANY, _("Level"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText60->Wrap( -1 ); fgSizer17->Add( m_staticText60, 0, wxTOP|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); m_pLevel = new wxTextCtrl( m_pPanelMessage, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLevel->SetMaxLength( 0 ); m_pLevel->SetValidator( wxTextValidator( wxFILTER_NUMERIC, &levelValidator ) ); fgSizer17->Add( m_pLevel, 1, wxALL|wxEXPAND, 5 ); m_pPanelMessage->SetSizer( fgSizer17 ); m_pPanelMessage->Layout(); fgSizer17->Fit( m_pPanelMessage ); bSizer7->Add( m_pPanelMessage, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer15->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxHORIZONTAL ); bSizer16->Add( 0, 0, 1, wxEXPAND, 5 ); m_pOkButton = new wxButton( m_pFooter, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_pOkButton->SetDefault(); bSizer16->Add( m_pOkButton, 0, wxRIGHT, 5 ); m_button5 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button5, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer16 ); m_pFooter->Layout(); bSizer16->Fit( m_pFooter ); bSizer15->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer15 ); this->Layout(); bSizer15->Fit( this ); this->Centre( wxBOTH ); } AddWLDialogBase::~AddWLDialogBase() { } EditCornerAnnotationsDialogBase::EditCornerAnnotationsDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 800,500 ), wxDefaultSize ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pMainPanel = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pMainPanel->SetToolTip( _("Edit corner annotations") ); wxBoxSizer* bSizer130; bSizer130 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer131; bSizer131 = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer136; bSizer136 = new wxBoxSizer( wxVERTICAL ); m_staticText84 = new wxStaticText( m_pMainPanel, wxID_ANY, _("To setup corner annotations you can use dicom tags with syntax ${GGGG|EEEE:DefaultValue:Format} where GGGG is the tag's group in hexadecimal and EEEE is the tag's element. DefaultValue and Format are optional values, Format admit two special formats (date and time)."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText84->Wrap( 600 ); bSizer136->Add( m_staticText84, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); m_staticText85 = new wxStaticText( m_pMainPanel, wxID_ANY, _("You can also use special tags listed in the tooltip over the question button."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText85->Wrap( 600 ); bSizer136->Add( m_staticText85, 0, wxALL, 5 ); bSizer131->Add( bSizer136, 1, wxEXPAND, 5 ); m_pHelpBitmap = new wxStaticBitmap( m_pMainPanel, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); m_pHelpBitmap->SetToolTip( _("${NEWLINE}\n${GINKGO.VERSION.FULLTEXT}\n${GINKGO.ARCH} \n\n${VOLUME.IDX}\n${SLICE.WIDTH}\n${SLICE.HEIGHT}\n${SLICE.WL.FULLTEXT}\n${SLICE.IDX}\n${SLICE.COUNT}\n${SLICE.IDX.FULLTEXT}\n${SLICE.LATERALITY}\n${SLICE.VOXEL.SIZE}\n${SLICE.THICKNESS}\n${SLICE.THICKNESS.FULLTEXT}\n${SLICE.LOCATION}\n${SLICE.LOCATION.FULLTEXT}\n${VIEW.SCALE}") ); bSizer131->Add( m_pHelpBitmap, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); bSizer130->Add( bSizer131, 0, wxEXPAND, 5 ); wxStaticBoxSizer* sbSizer10; sbSizer10 = new wxStaticBoxSizer( new wxStaticBox( m_pMainPanel, wxID_ANY, wxEmptyString ), wxVERTICAL ); m_pCornerAnnotationsSizer = new wxGridSizer( 0, 2, 0, 0 ); sbSizer10->Add( m_pCornerAnnotationsSizer, 1, wxEXPAND, 5 ); bSizer130->Add( sbSizer10, 1, wxEXPAND, 5 ); m_pMainPanel->SetSizer( bSizer130 ); m_pMainPanel->Layout(); bSizer130->Fit( m_pMainPanel ); bSizer7->Add( m_pMainPanel, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer15->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxHORIZONTAL ); m_button70 = new wxButton( m_pFooter, wxID_ANY, _("Reset"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button70, 0, 0, 5 ); bSizer16->Add( 0, 0, 1, wxEXPAND, 5 ); m_pOkButton = new wxButton( m_pFooter, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_pOkButton->SetDefault(); bSizer16->Add( m_pOkButton, 0, wxRIGHT, 5 ); m_button5 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button5, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer16 ); m_pFooter->Layout(); bSizer16->Fit( m_pFooter ); bSizer15->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer15 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_button70->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EditCornerAnnotationsDialogBase::OnSetDefaultValues ), NULL, this ); } EditCornerAnnotationsDialogBase::~EditCornerAnnotationsDialogBase() { // Disconnect Events m_button70->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EditCornerAnnotationsDialogBase::OnSetDefaultValues ), NULL, this ); } ModalityPanelBase::ModalityPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer125; bSizer125 = new wxBoxSizer( wxVERTICAL ); wxStaticBoxSizer* sbSizer12; sbSizer12 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Window/level") ), wxVERTICAL ); wxBoxSizer* bSizer129; bSizer129 = new wxBoxSizer( wxHORIZONTAL ); m_pListWL = new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); m_pListWL->SetMinSize( wxSize( -1,150 ) ); bSizer129->Add( m_pListWL, 1, wxALL|wxEXPAND, 5 ); wxBoxSizer* bSizer126; bSizer126 = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer127; bSizer127 = new wxBoxSizer( wxVERTICAL ); m_button63 = new wxButton( this, wxID_ANY, _("Add"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer127->Add( m_button63, 0, wxTOP|wxBOTTOM|wxEXPAND, 5 ); m_button64 = new wxButton( this, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer127->Add( m_button64, 0, wxTOP|wxBOTTOM|wxEXPAND, 5 ); m_button65 = new wxButton( this, wxID_ANY, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer127->Add( m_button65, 0, wxEXPAND, 5 ); bSizer126->Add( bSizer127, 1, wxEXPAND, 5 ); bSizer129->Add( bSizer126, 0, wxEXPAND, 5 ); sbSizer12->Add( bSizer129, 1, wxEXPAND, 5 ); wxFlexGridSizer* fgSizer20; fgSizer20 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer20->SetFlexibleDirection( wxBOTH ); fgSizer20->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText68 = new wxStaticText( this, wxID_ANY, _("Default Window/Level"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText68->Wrap( -1 ); fgSizer20->Add( m_staticText68, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxArrayString m_pDefaultWindowLevelChoices; m_pDefaultWindowLevel = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pDefaultWindowLevelChoices, 0 ); m_pDefaultWindowLevel->SetSelection( 0 ); fgSizer20->Add( m_pDefaultWindowLevel, 0, wxTOP|wxBOTTOM|wxRIGHT, 5 ); sbSizer12->Add( fgSizer20, 0, wxEXPAND, 5 ); bSizer125->Add( sbSizer12, 0, wxEXPAND|wxBOTTOM, 5 ); wxStaticBoxSizer* sbSizer9; sbSizer9 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Corner annotations") ), wxHORIZONTAL ); m_staticText71 = new wxStaticText( this, wxID_ANY, _("Setup corner annotations"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText71->Wrap( -1 ); sbSizer9->Add( m_staticText71, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_button67 = new wxButton( this, wxID_ANY, _("Setup..."), wxDefaultPosition, wxDefaultSize, 0 ); sbSizer9->Add( m_button67, 0, wxALL, 5 ); bSizer125->Add( sbSizer9, 0, wxEXPAND, 5 ); wxStaticBoxSizer* sbSizer13; sbSizer13 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Other settings") ), wxVERTICAL ); wxFlexGridSizer* fgSizer21; fgSizer21 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer21->SetFlexibleDirection( wxBOTH ); fgSizer21->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText69 = new wxStaticText( this, wxID_ANY, _("Interpolate pixel data"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText69->Wrap( -1 ); fgSizer21->Add( m_staticText69, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxArrayString m_pChoiceInterpolateChoices; m_pChoiceInterpolate = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pChoiceInterpolateChoices, 0 ); m_pChoiceInterpolate->SetSelection( 0 ); fgSizer21->Add( m_pChoiceInterpolate, 0, wxALL, 5 ); sbSizer13->Add( fgSizer21, 1, wxEXPAND, 5 ); bSizer125->Add( sbSizer13, 0, wxEXPAND, 5 ); this->SetSizer( bSizer125 ); this->Layout(); bSizer125->Fit( this ); // Connect Events m_button63->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ModalityPanelBase::OnAddWL ), NULL, this ); m_button64->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ModalityPanelBase::OnEditWL ), NULL, this ); m_button65->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ModalityPanelBase::OnDeleteWL ), NULL, this ); m_pDefaultWindowLevel->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ModalityPanelBase::OnChoiceChanged ), NULL, this ); m_button67->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ModalityPanelBase::OnSetupCornerAnnotations ), NULL, this ); m_pChoiceInterpolate->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ModalityPanelBase::OnChoiceChanged ), NULL, this ); } ModalityPanelBase::~ModalityPanelBase() { // Disconnect Events m_button63->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ModalityPanelBase::OnAddWL ), NULL, this ); m_button64->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ModalityPanelBase::OnEditWL ), NULL, this ); m_button65->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ModalityPanelBase::OnDeleteWL ), NULL, this ); m_pDefaultWindowLevel->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ModalityPanelBase::OnChoiceChanged ), NULL, this ); m_button67->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ModalityPanelBase::OnSetupCornerAnnotations ), NULL, this ); m_pChoiceInterpolate->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ModalityPanelBase::OnChoiceChanged ), NULL, this ); } EditHangingProtocolDialogBase::EditHangingProtocolDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 500,600 ), wxDefaultSize ); wxBoxSizer* bSizer11; bSizer11 = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Hanging protocol") ); bSizer11->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pMainNoteBook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNB_FLAT ); m_pGeneralPanel = new wxPanel( m_pMainNoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer109; bSizer109 = new wxBoxSizer( wxVERTICAL ); wxFlexGridSizer* fgSizer25; fgSizer25 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer25->AddGrowableCol( 1 ); fgSizer25->SetFlexibleDirection( wxBOTH ); fgSizer25->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText87 = new wxStaticText( m_pGeneralPanel, wxID_ANY, _("Name"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText87->Wrap( -1 ); fgSizer25->Add( m_staticText87, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_textName = new wxTextCtrl( m_pGeneralPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_textName->SetMaxLength( 0 ); fgSizer25->Add( m_textName, 0, wxALL|wxEXPAND, 5 ); m_staticText91 = new wxStaticText( m_pGeneralPanel, wxID_ANY, _("Opening mode"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText91->Wrap( -1 ); fgSizer25->Add( m_staticText91, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_textOpeningMode = new wxTextCtrl( m_pGeneralPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); m_textOpeningMode->SetMaxLength( 0 ); m_textOpeningMode->Enable( false ); fgSizer25->Add( m_textOpeningMode, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); bSizer109->Add( fgSizer25, 0, wxEXPAND|wxTOP, 5 ); m_pSizerStudyCriteria = new wxStaticBoxSizer( new wxStaticBox( m_pGeneralPanel, wxID_ANY, _("Study opening criteria") ), wxVERTICAL ); m_pSizerStudyCriteria->SetMinSize( wxSize( -1,250 ) ); bSizer109->Add( m_pSizerStudyCriteria, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); m_pGeneralPanel->SetSizer( bSizer109 ); m_pGeneralPanel->Layout(); bSizer109->Fit( m_pGeneralPanel ); m_pMainNoteBook->AddPage( m_pGeneralPanel, _("General"), false ); m_pWorkspacePanel = new wxPanel( m_pMainNoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer1102; bSizer1102 = new wxBoxSizer( wxVERTICAL ); m_pNoteBookWindows = new wxAuiNotebook( m_pWorkspacePanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_CLOSE_ON_ACTIVE_TAB|wxAUI_NB_DEFAULT_STYLE ); m_pAdddPanel = new wxPanel( m_pNoteBookWindows, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pNoteBookWindows->AddPage( m_pAdddPanel, _("+"), false, wxNullBitmap ); bSizer1102->Add( m_pNoteBookWindows, 1, wxEXPAND|wxALL, 5 ); m_pWorkspacePanel->SetSizer( bSizer1102 ); m_pWorkspacePanel->Layout(); bSizer1102->Fit( m_pWorkspacePanel ); m_pMainNoteBook->AddPage( m_pWorkspacePanel, _("Workspace"), true ); bSizer11->Add( m_pMainNoteBook, 1, wxEXPAND|wxTOP, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer31; bSizer31 = new wxBoxSizer( wxHORIZONTAL ); bSizer31->Add( 0, 0, 1, wxEXPAND, 5 ); m_button37 = new wxButton( m_pFooter, wxID_OK, _("Accept"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer31->Add( m_button37, 0, wxALL, 5 ); m_button38 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer31->Add( m_button38, 0, wxALL, 5 ); m_pFooter->SetSizer( bSizer31 ); m_pFooter->Layout(); bSizer31->Fit( m_pFooter ); bSizer11->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer11 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_pNoteBookWindows->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, wxAuiNotebookEventHandler( EditHangingProtocolDialogBase::OnPageChanging ), NULL, this ); m_pNoteBookWindows->Connect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler( EditHangingProtocolDialogBase::OnPageClose ), NULL, this ); m_button37->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EditHangingProtocolDialogBase::OnOkClick ), NULL, this ); m_button38->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EditHangingProtocolDialogBase::OnCancelClick ), NULL, this ); } EditHangingProtocolDialogBase::~EditHangingProtocolDialogBase() { // Disconnect Events m_pNoteBookWindows->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, wxAuiNotebookEventHandler( EditHangingProtocolDialogBase::OnPageChanging ), NULL, this ); m_pNoteBookWindows->Disconnect( wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler( EditHangingProtocolDialogBase::OnPageClose ), NULL, this ); m_button37->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EditHangingProtocolDialogBase::OnOkClick ), NULL, this ); m_button38->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EditHangingProtocolDialogBase::OnCancelClick ), NULL, this ); } HangingProtocolConfigurationPanelBase::HangingProtocolConfigurationPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxVERTICAL ); m_pProtocols = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pProtocols->SetToolTip( _("Hanging protocols") ); wxBoxSizer* bSizer25; bSizer25 = new wxBoxSizer( wxHORIZONTAL ); m_pListHanging = new wxDataViewListCtrl(m_pProtocols, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); bSizer25->Add( m_pListHanging, 1, wxALL|wxEXPAND, 5 ); wxBoxSizer* bSizer26; bSizer26 = new wxBoxSizer( wxVERTICAL ); m_button3 = new wxButton( m_pProtocols, wxID_ANY, _("New ..."), wxDefaultPosition, wxDefaultSize, 0 ); bSizer26->Add( m_button3, 0, wxTOP|wxBOTTOM|wxLEFT|wxEXPAND, 5 ); m_pBEdit = new wxButton( m_pProtocols, wxID_ANY, _("Edit ..."), wxDefaultPosition, wxDefaultSize, 0 ); m_pBEdit->Enable( false ); bSizer26->Add( m_pBEdit, 0, wxTOP|wxBOTTOM|wxLEFT|wxEXPAND, 5 ); m_pBDelete = new wxButton( m_pProtocols, wxID_ANY, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 ); m_pBDelete->Enable( false ); bSizer26->Add( m_pBDelete, 0, wxTOP|wxBOTTOM|wxLEFT|wxEXPAND, 5 ); bSizer26->Add( 0, 0, 1, wxEXPAND|wxRIGHT, 5 ); m_pBActive = new wxButton( m_pProtocols, wxID_ANY, _("Enable/Disable"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer26->Add( m_pBActive, 0, wxTOP|wxBOTTOM|wxLEFT|wxEXPAND, 5 ); bSizer25->Add( bSizer26, 0, wxEXPAND, 5 ); m_pProtocols->SetSizer( bSizer25 ); m_pProtocols->Layout(); bSizer25->Fit( m_pProtocols ); bSizer6->Add( m_pProtocols, 1, wxEXPAND, 5 ); this->SetSizer( bSizer6 ); this->Layout(); // Connect Events m_button3->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( HangingProtocolConfigurationPanelBase::OnNuevoClick ), NULL, this ); m_pBEdit->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( HangingProtocolConfigurationPanelBase::OnEditarClick ), NULL, this ); m_pBDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( HangingProtocolConfigurationPanelBase::OnEliminarClick ), NULL, this ); m_pBActive->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( HangingProtocolConfigurationPanelBase::OnSetActive ), NULL, this ); } HangingProtocolConfigurationPanelBase::~HangingProtocolConfigurationPanelBase() { // Disconnect Events m_button3->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( HangingProtocolConfigurationPanelBase::OnNuevoClick ), NULL, this ); m_pBEdit->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( HangingProtocolConfigurationPanelBase::OnEditarClick ), NULL, this ); m_pBDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( HangingProtocolConfigurationPanelBase::OnEliminarClick ), NULL, this ); m_pBActive->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( HangingProtocolConfigurationPanelBase::OnSetActive ), NULL, this ); } DefaultModalitySettingsConfigurationPanelBase::DefaultModalitySettingsConfigurationPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer120; bSizer120 = new wxBoxSizer( wxVERTICAL ); m_splitter4 = new wxSplitterWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3D ); m_splitter4->Connect( wxEVT_IDLE, wxIdleEventHandler( DefaultModalitySettingsConfigurationPanelBase::m_splitter4OnIdle ), NULL, this ); m_splitter4->SetMinimumPaneSize( 100 ); m_panel90 = new wxPanel( m_splitter4, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer121; bSizer121 = new wxBoxSizer( wxVERTICAL ); m_pWLList = new wxTreeCtrl( m_panel90, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_DEFAULT_STYLE|wxTR_HIDE_ROOT ); bSizer121->Add( m_pWLList, 1, wxALL|wxEXPAND, 0 ); m_panel90->SetSizer( bSizer121 ); m_panel90->Layout(); bSizer121->Fit( m_panel90 ); m_pTitledPanelModalities = new SubTitledPanelSinBorder( m_splitter4, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer122; bSizer122 = new wxBoxSizer( wxVERTICAL ); m_pModalityPanel = new PanelScrollable( m_pTitledPanelModalities, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pSizerModalities = new wxBoxSizer( wxVERTICAL ); m_pModalityPanel->SetSizer( m_pSizerModalities ); m_pModalityPanel->Layout(); m_pSizerModalities->Fit( m_pModalityPanel ); bSizer122->Add( m_pModalityPanel, 1, wxEXPAND, 5 ); m_pTitledPanelModalities->SetSizer( bSizer122 ); m_pTitledPanelModalities->Layout(); bSizer122->Fit( m_pTitledPanelModalities ); m_splitter4->SplitVertically( m_panel90, m_pTitledPanelModalities, 150 ); bSizer120->Add( m_splitter4, 1, wxEXPAND|wxTOP, 5 ); this->SetSizer( bSizer120 ); this->Layout(); // Connect Events m_pWLList->Connect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( DefaultModalitySettingsConfigurationPanelBase::OnTreeSelChanged ), NULL, this ); } DefaultModalitySettingsConfigurationPanelBase::~DefaultModalitySettingsConfigurationPanelBase() { // Disconnect Events m_pWLList->Disconnect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( DefaultModalitySettingsConfigurationPanelBase::OnTreeSelChanged ), NULL, this ); } CornerAnnotationPanel::CornerAnnotationPanel( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer126; bSizer126 = new wxBoxSizer( wxVERTICAL ); m_pLabel = new wxStaticText( this, wxID_ANY, _("Top left corner annotations"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel->Wrap( -1 ); bSizer126->Add( m_pLabel, 0, wxALL, 5 ); m_pLine1 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLine1->SetMaxLength( 0 ); bSizer126->Add( m_pLine1, 0, wxALL|wxEXPAND, 5 ); m_pLine2 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLine2->SetMaxLength( 0 ); bSizer126->Add( m_pLine2, 0, wxALL|wxEXPAND, 5 ); m_pLine3 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLine3->SetMaxLength( 0 ); bSizer126->Add( m_pLine3, 0, wxALL|wxEXPAND, 5 ); m_pLine4 = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLine4->SetMaxLength( 0 ); bSizer126->Add( m_pLine4, 0, wxALL|wxEXPAND, 5 ); this->SetSizer( bSizer126 ); this->Layout(); bSizer126->Fit( this ); } CornerAnnotationPanel::~CornerAnnotationPanel() { } StudyWindowBase::StudyWindowBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer81; bSizer81 = new wxBoxSizer( wxVERTICAL ); m_pConfigWindow = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pConfigWindow->SetToolTip( _("Setup window") ); wxBoxSizer* bSizer901; bSizer901 = new wxBoxSizer( wxHORIZONTAL ); m_staticText72 = new wxStaticText( m_pConfigWindow, wxID_ANY, _("Push configuration button and place window where you want"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText72->Wrap( -1 ); bSizer901->Add( m_staticText72, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); bSizer901->Add( 0, 0, 1, wxEXPAND, 5 ); m_button62 = new wxButton( m_pConfigWindow, wxID_ANY, _("Set default"), wxDefaultPosition, wxDefaultSize, 0 ); m_button62->SetToolTip( _("Open in main window") ); bSizer901->Add( m_button62, 0, wxRIGHT|wxLEFT, 5 ); m_pSetupPositionButton = new wxButton( m_pConfigWindow, wxID_ANY, _("Setup position..."), wxDefaultPosition, wxDefaultSize, 0 ); m_pSetupPositionButton->SetToolTip( _("Setup undocked window position") ); bSizer901->Add( m_pSetupPositionButton, 0, wxRIGHT|wxLEFT, 5 ); m_pConfigWindow->SetSizer( bSizer901 ); m_pConfigWindow->Layout(); bSizer901->Fit( m_pConfigWindow ); bSizer81->Add( m_pConfigWindow, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); m_panel64111 = new SubTitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel64111->SetToolTip( _("Settings") ); bSizer81->Add( m_panel64111, 0, wxEXPAND, 5 ); m_pLayoutPreview = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxSize( -1,220 ), wxTAB_TRAVERSAL ); m_pLayoutPreview->SetToolTip( _("Layout") ); m_pLayoutPreview->SetMinSize( wxSize( -1,220 ) ); wxBoxSizer* bSizer113; bSizer113 = new wxBoxSizer( wxHORIZONTAL ); wxStaticBoxSizer* sbSizer9; sbSizer9 = new wxStaticBoxSizer( new wxStaticBox( m_pLayoutPreview, wxID_ANY, _("Current layout") ), wxHORIZONTAL ); wxBoxSizer* bSizer119; bSizer119 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bsizer91; bsizer91 = new wxBoxSizer( wxVERTICAL ); m_pSizerLayoutTools = new wxBoxSizer( wxHORIZONTAL ); m_pSizerLayoutTools->Add( 0, 0, 1, wxEXPAND, 5 ); m_staticText56 = new wxStaticText( m_pLayoutPreview, wxID_ANY, _("Rows"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText56->Wrap( -1 ); m_pSizerLayoutTools->Add( m_staticText56, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pSpinRows = new wxSpinCtrl( m_pLayoutPreview, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 50,-1 ), wxSP_ARROW_KEYS, 1, 4, 1 ); m_pSizerLayoutTools->Add( m_pSpinRows, 0, wxALL, 5 ); m_staticText57 = new wxStaticText( m_pLayoutPreview, wxID_ANY, _("Columns"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText57->Wrap( -1 ); m_pSizerLayoutTools->Add( m_staticText57, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pSpinCols = new wxSpinCtrl( m_pLayoutPreview, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 50,-1 ), wxSP_ARROW_KEYS, 1, 4, 1 ); m_pSizerLayoutTools->Add( m_pSpinCols, 0, wxALL, 5 ); bsizer91->Add( m_pSizerLayoutTools, 1, wxEXPAND|wxBOTTOM, 5 ); bSizer119->Add( bsizer91, 0, wxEXPAND, 5 ); m_pPreviewSizer = new wxBoxSizer( wxVERTICAL ); bSizer119->Add( m_pPreviewSizer, 1, wxEXPAND, 5 ); sbSizer9->Add( bSizer119, 1, wxEXPAND, 5 ); m_pSizerSeriesCriteria = new wxBoxSizer( wxVERTICAL ); m_staticText65 = new wxStaticText( m_pLayoutPreview, wxID_ANY, _("Series criteria"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText65->Wrap( -1 ); m_pSizerSeriesCriteria->Add( m_staticText65, 0, wxALL, 5 ); sbSizer9->Add( m_pSizerSeriesCriteria, 1, wxEXPAND|wxLEFT, 5 ); bSizer113->Add( sbSizer9, 1, wxEXPAND, 5 ); m_pLayoutPreview->SetSizer( bSizer113 ); m_pLayoutPreview->Layout(); bSizer81->Add( m_pLayoutPreview, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 ); m_panel6411 = new SubTitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel6411->SetToolTip( _("Settings") ); bSizer81->Add( m_panel6411, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 ); this->SetSizer( bSizer81 ); this->Layout(); // Connect Events m_button62->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( StudyWindowBase::OnSetDefaultWindowPosition ), NULL, this ); m_pSetupPositionButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( StudyWindowBase::OnSetupWindowPositionClick ), NULL, this ); m_pSpinRows->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( StudyWindowBase::OnSpinRows ), NULL, this ); m_pSpinCols->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( StudyWindowBase::OnSpinCols ), NULL, this ); } StudyWindowBase::~StudyWindowBase() { // Disconnect Events m_button62->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( StudyWindowBase::OnSetDefaultWindowPosition ), NULL, this ); m_pSetupPositionButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( StudyWindowBase::OnSetupWindowPositionClick ), NULL, this ); m_pSpinRows->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( StudyWindowBase::OnSpinRows ), NULL, this ); m_pSpinCols->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( StudyWindowBase::OnSpinCols ), NULL, this ); } EditCriteriaPanelBase::EditCriteriaPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { m_pGeneralSizer = new wxBoxSizer( wxHORIZONTAL ); m_pListCriteria= new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); m_pGeneralSizer->Add( m_pListCriteria, 1, wxALL|wxEXPAND, 5 ); m_pButtonSizer = new wxBoxSizer( wxVERTICAL ); m_button3 = new wxButton( this, wxID_ANY, _("Add"), wxDefaultPosition, wxDefaultSize, 0 ); m_pButtonSizer->Add( m_button3, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pBDelete = new wxButton( this, wxID_ANY, _("Delete"), wxDefaultPosition, wxDefaultSize, 0 ); m_pBDelete->Enable( false ); m_pButtonSizer->Add( m_pBDelete, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); m_pGeneralSizer->Add( m_pButtonSizer, 0, wxEXPAND|wxRIGHT, 5 ); this->SetSizer( m_pGeneralSizer ); this->Layout(); // Connect Events m_button3->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EditCriteriaPanelBase::OnAddClick ), NULL, this ); m_pBDelete->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EditCriteriaPanelBase::OnDeleteClick ), NULL, this ); } EditCriteriaPanelBase::~EditCriteriaPanelBase() { // Disconnect Events m_button3->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EditCriteriaPanelBase::OnAddClick ), NULL, this ); m_pBDelete->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( EditCriteriaPanelBase::OnDeleteClick ), NULL, this ); } SelectOpeningModeBase::SelectOpeningModeBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 525,180 ), wxDefaultSize ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pPanelMessage = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelMessage->SetToolTip( _("Select opening mode") ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxHORIZONTAL ); m_pLabel = new wxStaticText( m_pPanelMessage, wxID_ANY, _("Select opening mode"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel->Wrap( -1 ); bSizer4->Add( m_pLabel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxArrayString m_pOpeningModeChoices; m_pOpeningMode = new wxChoice( m_pPanelMessage, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pOpeningModeChoices, 0 ); m_pOpeningMode->SetSelection( 0 ); bSizer4->Add( m_pOpeningMode, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pPanelMessage->SetSizer( bSizer4 ); m_pPanelMessage->Layout(); bSizer4->Fit( m_pPanelMessage ); bSizer7->Add( m_pPanelMessage, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer15->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxHORIZONTAL ); bSizer16->Add( 0, 0, 1, wxEXPAND, 5 ); m_pOkButton = new wxButton( m_pFooter, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_pOkButton->SetDefault(); bSizer16->Add( m_pOkButton, 0, wxRIGHT, 5 ); m_button5 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button5, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer16 ); m_pFooter->Layout(); bSizer16->Fit( m_pFooter ); bSizer15->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer15 ); this->Layout(); bSizer15->Fit( this ); this->Centre( wxBOTH ); } SelectOpeningModeBase::~SelectOpeningModeBase() { } AddTagDialogBase::AddTagDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 400,220 ), wxDefaultSize ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pPanelMessage = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelMessage->SetToolTip( _("Add DICOM tag") ); wxFlexGridSizer* fgSizer17; fgSizer17 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer17->SetFlexibleDirection( wxBOTH ); fgSizer17->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText59 = new wxStaticText( m_pPanelMessage, wxID_ANY, _("Tag"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText59->Wrap( -1 ); fgSizer17->Add( m_staticText59, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_staticText60 = new wxStaticText( m_pPanelMessage, wxID_ANY, _("Value"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText60->Wrap( -1 ); fgSizer17->Add( m_staticText60, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); wxArrayString m_pChoiceTagChoices; m_pChoiceTag = new wxChoice( m_pPanelMessage, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pChoiceTagChoices, 0 ); m_pChoiceTag->SetSelection( 0 ); fgSizer17->Add( m_pChoiceTag, 0, wxALL, 5 ); m_pTextValue = new wxTextCtrl( m_pPanelMessage, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pTextValue->SetMaxLength( 0 ); fgSizer17->Add( m_pTextValue, 0, wxALL, 5 ); m_pPanelMessage->SetSizer( fgSizer17 ); m_pPanelMessage->Layout(); fgSizer17->Fit( m_pPanelMessage ); bSizer7->Add( m_pPanelMessage, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer15->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxHORIZONTAL ); bSizer16->Add( 0, 0, 1, wxEXPAND, 5 ); m_pOkButton = new wxButton( m_pFooter, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_pOkButton->SetDefault(); bSizer16->Add( m_pOkButton, 0, wxRIGHT, 5 ); m_button5 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button5, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer16 ); m_pFooter->Layout(); bSizer16->Fit( m_pFooter ); bSizer15->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer15 ); this->Layout(); bSizer15->Fit( this ); this->Centre( wxBOTH ); } AddTagDialogBase::~AddTagDialogBase() { } SetupWindowPositionBase::SetupWindowPositionBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 600,400 ), wxDefaultSize ); wxBoxSizer* bSizer113; bSizer113 = new wxBoxSizer( wxVERTICAL ); m_panel97 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel97->SetBackgroundColour( wxColour( 255, 255, 255 ) ); wxBoxSizer* bSizer114; bSizer114 = new wxBoxSizer( wxVERTICAL ); m_staticText73 = new wxStaticText( m_panel97, wxID_ANY, _("Setup position and size of the window where you want to open the study"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText73->Wrap( -1 ); bSizer114->Add( m_staticText73, 0, wxALL, 5 ); wxBoxSizer* bSizer115; bSizer115 = new wxBoxSizer( wxHORIZONTAL ); m_button64 = new wxButton( m_panel97, wxID_OK, _("Save"), wxDefaultPosition, wxDefaultSize, 0 ); m_button64->SetDefault(); bSizer115->Add( m_button64, 0, wxALL, 5 ); m_button65 = new wxButton( m_panel97, wxID_CLOSE, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer115->Add( m_button65, 0, wxALL, 5 ); bSizer114->Add( bSizer115, 0, wxEXPAND, 5 ); m_panel97->SetSizer( bSizer114 ); m_panel97->Layout(); bSizer114->Fit( m_panel97 ); bSizer113->Add( m_panel97, 1, wxEXPAND, 5 ); this->SetSizer( bSizer113 ); this->Layout(); this->Centre( wxBOTH ); } SetupWindowPositionBase::~SetupWindowPositionBase() { } SmartRetrieveConfigurationPanelBase::SmartRetrieveConfigurationPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer131; bSizer131 = new wxBoxSizer( wxVERTICAL ); m_pCheckEnable = new wxCheckBox( this, wxID_ANY, _("Enable background queries"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer131->Add( m_pCheckEnable, 0, wxALL, 5 ); m_pPanelQueries = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelQueries->SetToolTip( _("Stored queries") ); wxBoxSizer* bSizer134; bSizer134 = new wxBoxSizer( wxVERTICAL ); m_pListQueries = new wxDataViewListCtrl(m_pPanelQueries, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); bSizer134->Add( m_pListQueries, 1, wxALL|wxEXPAND, 5 ); m_pPanelQueries->SetSizer( bSizer134 ); m_pPanelQueries->Layout(); bSizer134->Fit( m_pPanelQueries ); bSizer131->Add( m_pPanelQueries, 1, wxEXPAND, 5 ); this->SetSizer( bSizer131 ); this->Layout(); // Connect Events m_pCheckEnable->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( SmartRetrieveConfigurationPanelBase::OnCheckEnableBackgroundQueries ), NULL, this ); } SmartRetrieveConfigurationPanelBase::~SmartRetrieveConfigurationPanelBase() { // Disconnect Events m_pCheckEnable->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( SmartRetrieveConfigurationPanelBase::OnCheckEnableBackgroundQueries ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/panelesconfiguracionginkgobase.h000066400000000000000000001304321314736454600304370ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __PANELESCONFIGURACIONGINKGOBASE_H__ #define __PANELESCONFIGURACIONGINKGOBASE_H__ #include #include #include class BodyPanel; class FooterPanel; class GinkgoBoxPanel; class HeaderPanel; class PanelScrollable; class SubTitledPanel; class SubTitledPanelSeparatorV; class SubTitledPanelSinBorder; class TitledPanel; class TitledPanelSinBorder; #include "wx/ginkgostyle/ginkgostyle.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /// Class DialogoConfiguracionBase /////////////////////////////////////////////////////////////////////////////// class DialogoConfiguracionBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pImagePanel; wxSplitterWindow* m_splitter2; wxPanel* m_panel1; wxTreeCtrl* m_pTreeNavegacion; TitledPanelSinBorder* m_pTitledPanelConfig; PanelScrollable* m_pPanelConfig; wxBoxSizer* m_pSizerPaneles; FooterPanel* m_panel3; wxButton* m_button12; wxButton* m_button13; wxButton* m_button8; wxButton* m_button9; wxButton* m_pBAplicar; // Virtual event handlers, overide them in your derived class virtual void OnCambioNodoNavegacion( wxTreeEvent& event ) { event.Skip(); } virtual void OnExportarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnImportarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnAceptarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnAplicarClick( wxCommandEvent& event ) { event.Skip(); } public: DialogoConfiguracionBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 860,565 ), long style = wxDEFAULT_DIALOG_STYLE ); ~DialogoConfiguracionBase(); void m_splitter2OnIdle( wxIdleEvent& ) { m_splitter2->SetSashPosition( 245 ); m_splitter2->Disconnect( wxEVT_IDLE, wxIdleEventHandler( DialogoConfiguracionBase::m_splitter2OnIdle ), NULL, this ); } }; /////////////////////////////////////////////////////////////////////////////// /// Class PanelConfiguracionEstacionBase /////////////////////////////////////////////////////////////////////////////// class PanelConfiguracionEstacionBase : public wxPanel { private: protected: SubTitledPanel* m_panelPhysician; wxStaticText* m_staticText1; wxTextCtrl* m_pMedicoNombre; wxStaticText* m_staticText11; wxTextCtrl* m_pMedicoId; SubTitledPanelSeparatorV* m_pSep11; SubTitledPanel* m_panelServicio; wxStaticText* m_staticText39; wxTextCtrl* m_pServicioNombre; wxStaticText* m_staticText12; wxTextCtrl* m_pServicioId; SubTitledPanelSeparatorV* m_pSep1; SubTitledPanel* m_pPanelInstitucion; wxStaticText* m_staticText13; wxTextCtrl* m_pCentroNombre; wxStaticText* m_staticText111; wxTextCtrl* m_pCentroId; SubTitledPanelSeparatorV* m_pSep12; SubTitledPanel* m_pPanelInstitucion1; wxStaticText* m_staticText131; wxComboBox* m_pComboCharset; // Virtual event handlers, overide them in your derived class virtual void OnTextoCambiado( wxCommandEvent& event ) { event.Skip(); } public: PanelConfiguracionEstacionBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); ~PanelConfiguracionEstacionBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PanelConfiguracionGeneralBase /////////////////////////////////////////////////////////////////////////////// class PanelConfiguracionGeneralBase : public wxPanel { private: protected: SubTitledPanel* m_pLanguage; wxStaticText* m_staticText34; wxComboBox* m_pComboLanguage; SubTitledPanelSeparatorV* m_pSep3; SubTitledPanel* m_pUpdate; wxCheckBox* m_pCheckForUpdates; wxCheckBox* m_pCheckAnonUsageStats; SubTitledPanelSeparatorV* m_pSep31; SubTitledPanel* m_pProxy; wxCheckBox* m_pEnableProxy; wxButton* m_pProxySettingsButton; // Virtual event handlers, overide them in your derived class virtual void OnIdiomaCambiado( wxCommandEvent& event ) { event.Skip(); } virtual void OnCheckForUpdates( wxCommandEvent& event ) { event.Skip(); } virtual void OnCheckEnableProxySettings( wxCommandEvent& event ) { event.Skip(); } virtual void OnProxySettings( wxCommandEvent& event ) { event.Skip(); } public: PanelConfiguracionGeneralBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); ~PanelConfiguracionGeneralBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class ProxySettingsDialogBase /////////////////////////////////////////////////////////////////////////////// class ProxySettingsDialogBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; SubTitledPanel* m_panel64; wxStaticText* m_pstaticText1; wxTextCtrl* m_pHost; wxStaticText* m_pStaticText22; wxTextCtrl* m_pPort; SubTitledPanelSeparatorV* m_panel641; SubTitledPanel* m_panel642; wxCheckBox* m_pCheckAuthentication; wxStaticText* m_pstaticText12; wxTextCtrl* m_pUsername; wxStaticText* Port2; wxTextCtrl* m_pPassword; SubTitledPanelSeparatorV* m_panel6411; SubTitledPanel* m_panel6421; wxStaticText* m_staticText115; wxTextCtrl* m_pExceptions; wxStaticText* m_staticText116; FooterPanel* m_pFooter; wxButton* m_button37; wxButton* m_button38; // Virtual event handlers, overide them in your derived class virtual void OnCheckAuthentication( wxCommandEvent& event ) { event.Skip(); } virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } public: ProxySettingsDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Proxy Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 400,570 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~ProxySettingsDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class LocalDatabaseConfigurationPanelBase /////////////////////////////////////////////////////////////////////////////// class LocalDatabaseConfigurationPanelBase : public wxPanel { private: protected: SubTitledPanel* m_pPanelDicomDir; wxStaticText* m_staticTextExplicacion; wxStaticText* m_staticText32; wxTextCtrl* m_pDICOMDir; wxButton* m_buttonSeleccionarDICOMDir; wxStaticText* m_pstaticTextAdvertencia; wxCheckBox* m_pCheckDeleteOlder; wxChoice* m_pChoiceDeleteOlder; wxCheckBox* m_pCheckHDFreeSpace; wxSpinCtrl* m_pSpinHDSpace; wxStaticText* m_staticText65; wxCheckBox* m_pCheckDicomDirSize; wxSpinCtrl* m_pSpinDicomDirSize; wxStaticText* m_staticText651; wxStaticText* m_staticText68; wxButton* m_button66; // Virtual event handlers, overide them in your derived class virtual void OnSize( wxSizeEvent& event ) { event.Skip(); } virtual void OnTextoCambiado( wxCommandEvent& event ) { event.Skip(); } virtual void OnSeleccionarDirectorio( wxCommandEvent& event ) { event.Skip(); } virtual void OnCheckOlderStudies( wxCommandEvent& event ) { event.Skip(); } virtual void OnOptionModified( wxCommandEvent& event ) { event.Skip(); } virtual void OnCheckHDSpace( wxCommandEvent& event ) { event.Skip(); } virtual void OnSpinCtrl( wxSpinEvent& event ) { event.Skip(); } virtual void OnCheckDicomDirSize( wxCommandEvent& event ) { event.Skip(); } virtual void OnResetToDefault( wxCommandEvent& event ) { event.Skip(); } public: LocalDatabaseConfigurationPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL ); ~LocalDatabaseConfigurationPanelBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PanelConfiguracionPACSBase /////////////////////////////////////////////////////////////////////////////// class PanelConfiguracionPACSBase : public wxPanel { private: protected: SubTitledPanel* m_pPACSLocal; wxStaticText* m_staticTextExplicacion; wxStaticText* m_staticText1; wxTextCtrl* m_pAETLocal; wxStaticText* m_pAETReal; wxStaticBitmap* m_pHelpBitmap; wxStaticText* m_staticText11; wxTextCtrl* m_pPuertoLocal; wxButton* m_pBAdvanced; SubTitledPanelSeparatorV* m_pSep; SubTitledPanel* m_pPACSServers; wxDataViewListCtrl* m_pListPacs; wxButton* m_button3; wxButton* m_pEditButton; wxButton* m_pDelButton; wxButton* m_pDefaultButton; // Virtual event handlers, overide them in your derived class virtual void OnSize( wxSizeEvent& event ) { event.Skip(); } virtual void OnTextoCambiado( wxCommandEvent& event ) { event.Skip(); } virtual void OnHelpClick( wxMouseEvent& event ) { event.Skip(); } virtual void OnAdvancedLocal( wxCommandEvent& event ) { event.Skip(); } virtual void OnNuevoClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnEditarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnEliminarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnSetDefaultClick( wxCommandEvent& event ) { event.Skip(); } public: PanelConfiguracionPACSBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); ~PanelConfiguracionPACSBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DialogoServidorPACSBase /////////////////////////////////////////////////////////////////////////////// class DialogoServidorPACSBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; wxNotebook* m_notebook1; BodyPanel* m_panel6; SubTitledPanel* m_panel64; wxStaticText* m_pstaticText1; wxTextCtrl* m_pId; wxStaticText* m_pstaticText2; wxTextCtrl* m_pAET; wxStaticText* m_pstaticText3; wxTextCtrl* m_pHost; wxStaticText* m_pstaticText4; wxTextCtrl* m_pPuerto; wxStaticText* m_staticText33; wxSpinCtrl* m_pPDU; wxStaticText* m_staticText48; wxChoice* m_pRetrieveMethod; wxStaticText* m_staticText59; wxTextCtrl* m_pWadoURL; wxStaticText* m_staticText60; wxChoice* m_pRetrieveMode; wxStaticText* m_staticText57; wxCheckBox* m_pReuseConnection; BodyPanel* m_pWorkListPanel; SubTitledPanel* m_panel83; wxStaticText* m_staticText611; wxCheckBox* m_pCheckDICOMMPPS; wxCheckBox* m_pCheckHL7; wxPanel* m_pPanelHL7; wxStaticBoxSizer* m_pSizerHL7; wxCheckBox* m_pCheckAbort; wxTextCtrl* m_pTextAbort; wxCheckBox* m_pCheckCompleted; wxTextCtrl* m_pTextCompleted; wxCheckBox* m_pCheckInProgress; wxTextCtrl* m_pTextProgress; wxButton* m_button62; BodyPanel* m_pPanelSeguridad; SubTitledPanel* m_pSSLTLS; wxCheckBox* m_pVerifyServer; wxCheckBox* m_pUseSSL; wxStaticText* m_staticText55; wxButton* m_pBCert; SubTitledPanelSeparatorV* m_panelSep; SubTitledPanel* m_panelUserPass; wxStaticText* m_staticText61; wxTextCtrl* m_pUser; wxStaticText* m_staticText62; wxTextCtrl* m_pPassword; SubTitledPanelSeparatorV* m_panelSep1; SubTitledPanel* m_pPanelDefaultCharset; wxStaticText* m_staticText131; wxComboBox* m_pComboCharset; FooterPanel* m_pFooter; wxButton* m_button20; wxButton* m_button37; wxButton* m_button38; // Virtual event handlers, overide them in your derived class virtual void OnRetrieveMethodChoice( wxCommandEvent& event ) { event.Skip(); } virtual void OnChecWL( wxCommandEvent& event ) { event.Skip(); } virtual void OnMessageDefaultValues( wxCommandEvent& event ) { event.Skip(); } virtual void OnAdvancedConfiguration( wxCommandEvent& event ) { event.Skip(); } virtual void OnTextoCambiado( wxCommandEvent& event ) { event.Skip(); } virtual void OnProbarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } public: DialogoServidorPACSBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("DICOM Node"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 450,550 ), long style = wxDEFAULT_DIALOG_STYLE ); ~DialogoServidorPACSBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DialogoLocalPACSBase /////////////////////////////////////////////////////////////////////////////// class DialogoLocalPACSBase : public wxDialog { private: protected: BodyPanel* m_panel51; TitledPanel* m_panel67; wxCheckBox* m_pVerifyServer; wxCheckBox* m_pUseTLS; wxStaticText* m_staticText55; wxButton* m_pBCert; FooterPanel* m_pFooter; wxButton* m_button8; wxButton* m_button9; // Virtual event handlers, overide them in your derived class virtual void OnEditCertificate( wxCommandEvent& event ) { event.Skip(); } virtual void OnAceptarClick( wxCommandEvent& event ) { event.Skip(); } public: DialogoLocalPACSBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Advanced Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 346,300 ), long style = wxDEFAULT_DIALOG_STYLE ); ~DialogoLocalPACSBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PanelConfiguracionHCEBase /////////////////////////////////////////////////////////////////////////////// class PanelConfiguracionHCEBase : public wxPanel { private: protected: SubTitledPanel* m_pHCE; wxStaticText* m_pstIdOrganizacionReceptora; wxTextCtrl* m_pIdOrganizacionReceptora; wxStaticText* m_pstIdSistemaPeticionario; wxTextCtrl* m_pIdSistemaPeticionario; wxStaticText* m_pstIdAplicacionRellenadora; wxTextCtrl* m_pIdAplicacionRellenadora; wxStaticText* m_pstIdAplicacionPACS; wxTextCtrl* m_pIdGinkgoAplication; SubTitledPanelSeparatorV* m_pSep; SubTitledPanel* m_pIntegrationEngine; wxStaticText* m_staticText121; wxTextCtrl* m_pHostnameMI; wxStaticText* m_staticText60; wxTextCtrl* m_pPuertoMI; wxStaticText* m_staticText38; wxChoice* m_pProtocolo; wxStaticText* m_staticText39; wxChoice* m_pFormato; wxButton* m_button15; // Virtual event handlers, overide them in your derived class virtual void OnSize( wxSizeEvent& event ) { event.Skip(); } virtual void OnTextoCambiado( wxCommandEvent& event ) { event.Skip(); } virtual void OnTestClick( wxCommandEvent& event ) { event.Skip(); } public: PanelConfiguracionHCEBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 556,438 ), long style = wxTAB_TRAVERSAL ); ~PanelConfiguracionHCEBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PanelConfiguracionExtensionesBase /////////////////////////////////////////////////////////////////////////////// class PanelConfiguracionExtensionesBase : public wxPanel { private: protected: SubTitledPanel* m_pExtensions; wxScrolledWindow* m_pScrollPanelExtensions; // Virtual event handlers, overide them in your derived class virtual void OnEraseBackground( wxEraseEvent& event ) { event.Skip(); } public: PanelConfiguracionExtensionesBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); ~PanelConfiguracionExtensionesBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class ExtensionPanelBase /////////////////////////////////////////////////////////////////////////////// class ExtensionPanelBase : public GinkgoBoxPanel { private: protected: wxStaticBitmap* m_pThumbnail; wxStaticText* m_pLabelTitle; public: ExtensionPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); ~ExtensionPanelBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DialogoEditarCertificadoBase /////////////////////////////////////////////////////////////////////////////// class DialogoEditarCertificadoBase : public wxDialog { private: protected: BodyPanel* m_pBody; SubTitledPanel* m_pPanelDefault; wxCheckBox* m_pCheckDefault; SubTitledPanelSeparatorV* m_pSepDefault; SubTitledPanel* m_pPanelPublic; wxStaticText* m_pLabel; wxTextCtrl* m_pTextoCertificado; wxButton* m_button62; SubTitledPanelSeparatorV* m_panel60; SubTitledPanel* m_pPanelPrivate; wxStaticText* m_pLabel11; wxTextCtrl* m_pTextoPrivateKey; wxButton* m_button621; FooterPanel* m_pFooter; wxButton* m_button48; wxButton* m_button8; wxButton* m_button9; // Virtual event handlers, overide them in your derived class virtual void OnCheckDefault( wxCommandEvent& event ) { event.Skip(); } virtual void OnLoadPublicClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnLoadPrivateClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnResetToDefault( wxCommandEvent& event ) { event.Skip(); } virtual void OnAceptarClick( wxCommandEvent& event ) { event.Skip(); } public: DialogoEditarCertificadoBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Certificate"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 450,550 ), long style = wxDEFAULT_DIALOG_STYLE ); ~DialogoEditarCertificadoBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class ProfileDialogBase /////////////////////////////////////////////////////////////////////////////// class ProfileDialogBase : public wxDialog { private: protected: BodyPanel* m_pBasePanel; TitledPanel* m_pTitledPanel; wxStaticText* m_staticText47; wxTextCtrl* m_pName; wxPropertyGrid* m_pGridPermisos; FooterPanel* m_pFooterPanel; wxButton* m_button28; wxButton* m_button29; // Virtual event handlers, overide them in your derived class virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } public: ProfileDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Edit profile"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 770,540 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~ProfileDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PanelConfiguracionPermisosBase /////////////////////////////////////////////////////////////////////////////// class PanelConfiguracionPermisosBase : public wxPanel { private: protected: SubTitledPanel* m_pBasePanel; wxDataViewListCtrl* m_pListProfiles; wxButton* m_button3; wxButton* m_pBEdit; wxButton* m_pBDelete; wxButton* m_pBActive; // Virtual event handlers, overide them in your derived class virtual void OnSize( wxSizeEvent& event ) { event.Skip(); } virtual void OnNuevoClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnEditarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnEliminarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnSetActive( wxCommandEvent& event ) { event.Skip(); } public: PanelConfiguracionPermisosBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 501,160 ), long style = wxTAB_TRAVERSAL ); ~PanelConfiguracionPermisosBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PanelConfiguracionUbicacionesBase /////////////////////////////////////////////////////////////////////////////// class PanelConfiguracionUbicacionesBase : public wxPanel { private: protected: SubTitledPanel* m_pUbicaciones; wxStaticText* m_staticTextExplicacion; wxDataViewListCtrl* m_pListUbicaciones; wxButton* m_pBotonNuevo; wxButton* m_pBotonEdit; wxButton* m_pBotonDelete; // Virtual event handlers, overide them in your derived class virtual void OnSize( wxSizeEvent& event ) { event.Skip(); } virtual void OnNuevoClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnEditarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnEliminarClick( wxCommandEvent& event ) { event.Skip(); } public: PanelConfiguracionUbicacionesBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); ~PanelConfiguracionUbicacionesBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DialogoAddLocationBase /////////////////////////////////////////////////////////////////////////////// class DialogoAddLocationBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pPanel; wxStaticText* m_pSTTitle; wxTextCtrl* m_pTETitle; wxStaticText* m_pSTLocation; wxTextCtrl* m_pTELocation; wxButton* m_pOpenDir; wxStaticText* m_pSTDesc; wxTextCtrl* m_pTEDesc; wxCheckBox* m_pMonitorize; wxCheckBox* m_pCleanAfter; wxCheckBox* m_pCleanBefore; FooterPanel* m_pFooter; wxButton* m_pAccept; wxButton* m_pCancel; // Virtual event handlers, overide them in your derived class virtual void OnOpenDirClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnAceptarClick( wxCommandEvent& event ) { event.Skip(); } public: DialogoAddLocationBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Add/Edit Location"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 450,450 ), long style = wxDEFAULT_DIALOG_STYLE ); ~DialogoAddLocationBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PanelConfiguracionSeguridadBase /////////////////////////////////////////////////////////////////////////////// class PanelConfiguracionSeguridadBase : public wxPanel { private: protected: SubTitledPanel* m_pSecurity; wxStaticText* m_staticText47; wxChoice* m_pSecType; SubTitledPanelSeparatorV* m_pSep; SubTitledPanel* m_pPanelUsuarios; wxListCtrl* m_pListaUsuarios; wxButton* m_button3; wxButton* m_pBCambiarPassword; wxButton* m_pBDelete; SubTitledPanel* m_pPanelPassword; wxStaticText* m_pLabelPassword; wxButton* m_pButtonSetPassword; // Virtual event handlers, overide them in your derived class virtual void OnEraseBackground( wxEraseEvent& event ) { event.Skip(); } virtual void OnSecTypeChoice( wxCommandEvent& event ) { event.Skip(); } virtual void OnListaUsuariosItemDeSelected( wxListEvent& event ) { event.Skip(); } virtual void OnListaUsuariosItemSelected( wxListEvent& event ) { event.Skip(); } virtual void OnNuevoClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCambiarPasswordClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnEliminarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnSetMainPassword( wxCommandEvent& event ) { event.Skip(); } public: PanelConfiguracionSeguridadBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL ); ~PanelConfiguracionSeguridadBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class UserDialogBase /////////////////////////////////////////////////////////////////////////////// class UserDialogBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; TitledPanel* m_pFormPanel; wxStaticText* m_pLabelUser; wxTextCtrl* m_pTCUsuario; wxStaticText* m_pstat2; wxTextCtrl* m_pTCPassword0; wxStaticText* m_pstat21; wxTextCtrl* m_pTCPassword1; FooterPanel* m_panel54; wxButton* m_button42; wxButton* m_button41; // Virtual event handlers, overide them in your derived class virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } public: UserDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Edit User"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 423,292 ), long style = wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSTAY_ON_TOP ); ~UserDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PanelConfigurationAnonymizationBase /////////////////////////////////////////////////////////////////////////////// class PanelConfigurationAnonymizationBase : public wxPanel { private: protected: SubTitledPanel* m_pAnonimization; wxStaticText* m_staticText52; wxTextCtrl* m_pTextDefaultValue; public: PanelConfigurationAnonymizationBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL ); ~PanelConfigurationAnonymizationBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class AddWLDialogBase /////////////////////////////////////////////////////////////////////////////// class AddWLDialogBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pPanelMessage; wxStaticText* m_staticText79; wxStaticText* m_staticText59; wxStaticText* m_staticText60; FooterPanel* m_pFooter; wxButton* m_pOkButton; wxButton* m_button5; public: wxTextCtrl* m_pLabel; wxTextCtrl* m_pWindow; wxTextCtrl* m_pLevel; wxString windowValidator; wxString levelValidator; AddWLDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Add window/level"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~AddWLDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class EditCornerAnnotationsDialogBase /////////////////////////////////////////////////////////////////////////////// class EditCornerAnnotationsDialogBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pMainPanel; wxStaticText* m_staticText84; wxStaticText* m_staticText85; wxStaticBitmap* m_pHelpBitmap; wxGridSizer* m_pCornerAnnotationsSizer; FooterPanel* m_pFooter; wxButton* m_button70; wxButton* m_pOkButton; wxButton* m_button5; // Virtual event handlers, overide them in your derived class virtual void OnSetDefaultValues( wxCommandEvent& event ) { event.Skip(); } public: EditCornerAnnotationsDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Edit corner annotations"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 850,650 ), long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~EditCornerAnnotationsDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class ModalityPanelBase /////////////////////////////////////////////////////////////////////////////// class ModalityPanelBase : public wxPanel { private: protected: wxDataViewListCtrl* m_pListWL; wxButton* m_button63; wxButton* m_button64; wxButton* m_button65; wxStaticText* m_staticText68; wxStaticText* m_staticText71; wxButton* m_button67; wxStaticText* m_staticText69; wxChoice* m_pChoiceInterpolate; // Virtual event handlers, overide them in your derived class virtual void OnAddWL( wxCommandEvent& event ) { event.Skip(); } virtual void OnEditWL( wxCommandEvent& event ) { event.Skip(); } virtual void OnDeleteWL( wxCommandEvent& event ) { event.Skip(); } virtual void OnChoiceChanged( wxCommandEvent& event ) { event.Skip(); } virtual void OnSetupCornerAnnotations( wxCommandEvent& event ) { event.Skip(); } public: wxChoice* m_pDefaultWindowLevel; ModalityPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); ~ModalityPanelBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class EditHangingProtocolDialogBase /////////////////////////////////////////////////////////////////////////////// class EditHangingProtocolDialogBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; wxNotebook* m_pMainNoteBook; wxPanel* m_pGeneralPanel; wxStaticText* m_staticText87; wxTextCtrl* m_textName; wxStaticText* m_staticText91; wxTextCtrl* m_textOpeningMode; wxStaticBoxSizer* m_pSizerStudyCriteria; wxPanel* m_pWorkspacePanel; wxAuiNotebook* m_pNoteBookWindows; wxPanel* m_pAdddPanel; FooterPanel* m_pFooter; wxButton* m_button37; wxButton* m_button38; // Virtual event handlers, overide them in your derived class virtual void OnPageChanging( wxAuiNotebookEvent& event ) { event.Skip(); } virtual void OnPageClose( wxAuiNotebookEvent& event ) { event.Skip(); } virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } public: EditHangingProtocolDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Hanging protocol"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 744,641 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER ); ~EditHangingProtocolDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class HangingProtocolConfigurationPanelBase /////////////////////////////////////////////////////////////////////////////// class HangingProtocolConfigurationPanelBase : public wxPanel { private: protected: SubTitledPanel* m_pProtocols; wxDataViewListCtrl* m_pListHanging; wxButton* m_button3; wxButton* m_pBEdit; wxButton* m_pBDelete; wxButton* m_pBActive; // Virtual event handlers, overide them in your derived class virtual void OnNuevoClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnEditarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnEliminarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnSetActive( wxCommandEvent& event ) { event.Skip(); } public: HangingProtocolConfigurationPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL ); ~HangingProtocolConfigurationPanelBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DefaultModalitySettingsConfigurationPanelBase /////////////////////////////////////////////////////////////////////////////// class DefaultModalitySettingsConfigurationPanelBase : public wxPanel { private: protected: wxSplitterWindow* m_splitter4; wxPanel* m_panel90; wxTreeCtrl* m_pWLList; SubTitledPanelSinBorder* m_pTitledPanelModalities; PanelScrollable* m_pModalityPanel; wxBoxSizer* m_pSizerModalities; // Virtual event handlers, overide them in your derived class virtual void OnTreeSelChanged( wxTreeEvent& event ) { event.Skip(); } public: DefaultModalitySettingsConfigurationPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL ); ~DefaultModalitySettingsConfigurationPanelBase(); void m_splitter4OnIdle( wxIdleEvent& ) { m_splitter4->SetSashPosition( 150 ); m_splitter4->Disconnect( wxEVT_IDLE, wxIdleEventHandler( DefaultModalitySettingsConfigurationPanelBase::m_splitter4OnIdle ), NULL, this ); } }; /////////////////////////////////////////////////////////////////////////////// /// Class CornerAnnotationPanel /////////////////////////////////////////////////////////////////////////////// class CornerAnnotationPanel : public wxPanel { private: protected: public: wxStaticText* m_pLabel; wxTextCtrl* m_pLine1; wxTextCtrl* m_pLine2; wxTextCtrl* m_pLine3; wxTextCtrl* m_pLine4; CornerAnnotationPanel( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); ~CornerAnnotationPanel(); }; /////////////////////////////////////////////////////////////////////////////// /// Class StudyWindowBase /////////////////////////////////////////////////////////////////////////////// class StudyWindowBase : public wxPanel { private: protected: SubTitledPanel* m_pConfigWindow; wxStaticText* m_staticText72; wxButton* m_button62; wxButton* m_pSetupPositionButton; SubTitledPanelSeparatorV* m_panel64111; SubTitledPanel* m_pLayoutPreview; wxBoxSizer* m_pSizerLayoutTools; wxStaticText* m_staticText56; wxSpinCtrl* m_pSpinRows; wxStaticText* m_staticText57; wxSpinCtrl* m_pSpinCols; wxBoxSizer* m_pPreviewSizer; wxBoxSizer* m_pSizerSeriesCriteria; wxStaticText* m_staticText65; SubTitledPanelSeparatorV* m_panel6411; // Virtual event handlers, overide them in your derived class virtual void OnSetDefaultWindowPosition( wxCommandEvent& event ) { event.Skip(); } virtual void OnSetupWindowPositionClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnSpinRows( wxSpinEvent& event ) { event.Skip(); } virtual void OnSpinCols( wxSpinEvent& event ) { event.Skip(); } public: StudyWindowBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL ); ~StudyWindowBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class EditCriteriaPanelBase /////////////////////////////////////////////////////////////////////////////// class EditCriteriaPanelBase : public wxPanel { private: protected: wxDataViewListCtrl* m_pListCriteria; wxButton* m_button3; wxButton* m_pBDelete; // Virtual event handlers, overide them in your derived class virtual void OnAddClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnDeleteClick( wxCommandEvent& event ) { event.Skip(); } public: wxBoxSizer* m_pGeneralSizer; wxBoxSizer* m_pButtonSizer; EditCriteriaPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,200 ), long style = wxTAB_TRAVERSAL ); ~EditCriteriaPanelBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class SelectOpeningModeBase /////////////////////////////////////////////////////////////////////////////// class SelectOpeningModeBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pPanelMessage; wxStaticText* m_pLabel; wxChoice* m_pOpeningMode; FooterPanel* m_pFooter; wxButton* m_pOkButton; wxButton* m_button5; public: SelectOpeningModeBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select opening mode"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~SelectOpeningModeBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class AddTagDialogBase /////////////////////////////////////////////////////////////////////////////// class AddTagDialogBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pPanelMessage; wxStaticText* m_staticText59; wxStaticText* m_staticText60; wxChoice* m_pChoiceTag; wxTextCtrl* m_pTextValue; FooterPanel* m_pFooter; wxButton* m_pOkButton; wxButton* m_button5; public: AddTagDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Add tag"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~AddTagDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class SetupWindowPositionBase /////////////////////////////////////////////////////////////////////////////// class SetupWindowPositionBase : public wxDialog { private: protected: wxPanel* m_panel97; wxStaticText* m_staticText73; wxButton* m_button64; wxButton* m_button65; public: SetupWindowPositionBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Setup window position"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 600,400 ), long style = wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER ); ~SetupWindowPositionBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class SmartRetrieveConfigurationPanelBase /////////////////////////////////////////////////////////////////////////////// class SmartRetrieveConfigurationPanelBase : public wxPanel { private: protected: wxCheckBox* m_pCheckEnable; SubTitledPanel* m_pPanelQueries; wxDataViewListCtrl* m_pListQueries; // Virtual event handlers, overide them in your derived class virtual void OnCheckEnableBackgroundQueries( wxCommandEvent& event ) { event.Skip(); } public: SmartRetrieveConfigurationPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL ); ~SmartRetrieveConfigurationPanelBase(); }; #endif //__PANELESCONFIGURACIONGINKGOBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/configuration/smartretrieveconfigurationpanel.cpp000066400000000000000000000132231314736454600312440ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
    #include #include
    #include
    #include #include #include #include #include #include #include #include #include #include #include #include #include "smartretrieveconfigurationpanel.h" #include #define POD_COL_NAME_IDX 0 #define POD_COL_NAME_WIDTH 340 #define POD_COL_ACTIVE_IDX 1 #define POD_COL_ACTIVE_WIDTH 80 namespace GNC { namespace GUI { ////////////////-------------------------------------------------------------------------------------///////////////////////////// SmartRetrieveConfigurationPanel::SmartRetrieveConfigurationPanel(wxWindow* pParent,IDialogoConfiguracion* pDialogo): SmartRetrieveConfigurationPanelBase(pParent), IPasoConfiguracion(pDialogo) { m_pModel = new wxDataViewListStore(); m_pListQueries->AssociateModel(m_pModel.get()); m_pListQueries->AppendTextColumn(_("Name"), wxDATAVIEW_CELL_INERT, POD_COL_NAME_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE ); m_pListQueries->AppendToggleColumn(_("Active"),wxDATAVIEW_CELL_ACTIVATABLE, POD_COL_ACTIVE_WIDTH, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE ); Recargar(); m_pListQueries->Connect(wxEVT_DATAVIEW_ITEM_EDITING_DONE, wxDataViewEventHandler( SmartRetrieveConfigurationPanel::OnItemEdited), NULL, this ); m_pListQueries->Connect(wxEVT_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( SmartRetrieveConfigurationPanel::OnListItemActivated ), NULL, this); } SmartRetrieveConfigurationPanel::~SmartRetrieveConfigurationPanel() { } void SmartRetrieveConfigurationPanel::Recargar() { m_pCheckEnable->SetValue(GNC::GCS::SmartRetrieveController::Instance()->isEnabled()); GNC::GCS::StoredQueryController::TStoredQueriesList listOfQueries = GNC::GCS::StoredQueryController::Instance()->getStoredQueries(); for (GNC::GCS::StoredQueryController::TStoredQueriesList::iterator it = listOfQueries.begin(); it != listOfQueries.end(); ++it) { wxVector data; data.push_back(wxString::FromUTF8((*it)->getName().c_str())); data.push_back((*it)->isActive()); m_pListQueries->AppendItem(data); } //refresh status Refresh(); } //region "Metodos de IPasoConfiguracion" wxWindow* SmartRetrieveConfigurationPanel::GetPanel() { return this; } std::string SmartRetrieveConfigurationPanel::GetTitle() { return _Std("Smart retrieve"); } std::string SmartRetrieveConfigurationPanel::GetCabecera() { return _Std("Smart retrieve settings"); } bool SmartRetrieveConfigurationPanel::Validar() { bool ok = true; return ok; } bool SmartRetrieveConfigurationPanel::Guardar() { GNC::GCS::SmartRetrieveController::Instance()->enable(m_pCheckEnable->GetValue()); //todo set status of queries... GNC::GCS::StoredQueryController::TStoredQueriesList queries = GNC::GCS::StoredQueryController::Instance()->getStoredQueries(); for (unsigned i = 0; i < m_pModel->GetCount(); ++i) { wxVariant value; m_pModel->GetValueByRow(value, i, POD_COL_ACTIVE_IDX); bool active = value.GetBool(); m_pModel->GetValueByRow(value, i, POD_COL_NAME_IDX); std::string name(value.GetString().ToUTF8()); for (GNC::GCS::StoredQueryController::TStoredQueriesList::iterator it = queries.begin(); it != queries.end(); ++it) { if ((*it)->getName() == name) { (*it)->setActive(active); break; } } } GNC::GCS::StoredQueryController::Instance()->clearQueries(); GNC::GCS::StoredQueryController::Instance()->storeQueries(queries); GNC::GCS::SmartRetrieveController::Instance()->resetStatus(); return true; } //endregion void SmartRetrieveConfigurationPanel::OnItemEdited(wxDataViewEvent& /*event*/) { OnPropiedadCambiada(); } void SmartRetrieveConfigurationPanel::OnCheckEnableBackgroundQueries(wxCommandEvent &/*evt*/) { OnPropiedadCambiada(); } void SmartRetrieveConfigurationPanel::OnListItemActivated(wxDataViewEvent& event) { if (event.GetItem().IsOk()) { int row = m_pModel->GetRow(event.GetItem()); m_pListQueries->SetToggleValue(!m_pListQueries->GetToggleValue(row, POD_COL_ACTIVE_IDX), row, POD_COL_ACTIVE_IDX); } OnPropiedadCambiada(); } } } ginkgocadx-3.8.7/cadxcore/main/gui/configuration/smartretrieveconfigurationpanel.h000066400000000000000000000032221314736454600307070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "panelesconfiguracionginkgobase.h" #include #include namespace GNC { namespace GUI { class SmartRetrieveConfigurationPanel: public SmartRetrieveConfigurationPanelBase, public IPasoConfiguracion { public: SmartRetrieveConfigurationPanel(wxWindow* pParent,IDialogoConfiguracion* pDialogo); ~SmartRetrieveConfigurationPanel(); void Recargar(); //region "Metodos de IPasoConfiguracion" wxWindow* GetPanel(); std::string GetTitle(); std::string GetCabecera(); bool Validar(); bool Guardar(); //endregion protected: virtual void OnItemEdited(wxDataViewEvent& event); virtual void OnCheckEnableBackgroundQueries(wxCommandEvent &evt); virtual void OnListItemActivated(wxDataViewEvent& event); wxObjectDataPtr m_pModel; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/countdownmessage/000077500000000000000000000000001314736454600225515ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/countdownmessage/CountDownMessage.fbp000066400000000000000000002732461314736454600265050ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect countdownmessagebase 1052 none 1 CountdownMessage "GNC" "GUI" . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 500,270 InactivityCountdownMessageBase -1,-1 wxCAPTION|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Closing OnClose m_pMainSizer wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Inactivity detected wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer141 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFormPanel 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Inactivity detected wxTAB_TRAVERSAL bSizer19 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pLabelInactivity 1 protected 1 Resizable 1 0 380 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel6 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer14 wxHORIZONTAL none 0 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Close 0 0 1 m_pButtonClose 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCloseButton 5 wxALIGN_CENTER_VERTICAL|wxLEFT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Cancel 0 0 1 m_pBotonCancelar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCancel 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 415,300 CountdownMessageBase wxCAPTION|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER m_pMainSizer wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Info wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer141 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFormPanel 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Inactivity detected wxTAB_TRAVERSAL bSizer19 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pLabelInactivity 1 protected 1 Resizable 1 0 -1 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel6 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer14 wxHORIZONTAL none 0 1 0 protected 0 5 wxRIGHT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Ok 0 0 1 m_pButtonOk 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_pBotonCancelar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/countdownmessage/countdownmessage.cpp000066400000000000000000000047461314736454600266550ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "countdownmessage.h" #include #include
    #include
    #include
    namespace GNC { namespace GUI { CountdownMessage::CountdownMessage(wxWindow* pParent, const wxString title, const wxString& message, int seconds): CountdownMessageBase(pParent), m_last(seconds) { m_pBody->SetToolTip(title); m_pFormPanel->SetToolTip(title); m_message = message; m_pFormPanel->Layout(); m_pBody->Layout(); Layout(); } CountdownMessage::~CountdownMessage() { } int CountdownMessage::ShowModalCountdown() { Notify(); return ShowModal(); } bool CountdownMessage::Show(bool show) { if (show && !IsShown()) { Notify(); } else { if (IsRunning()) { Stop(); } } return CountdownMessageBase::Show(show); } void CountdownMessage::Notify() { if (m_last > 0) { Freeze(); m_last--; m_pLabelInactivity->SetLabel(wxString::Format(m_message, m_last)); m_pLabelInactivity->Wrap(m_pFormPanel->GetSize().x - 20); m_pFormPanel->Layout(); m_pBody->Layout(); Layout(); this->Start(1000, true); Thaw(); } else { if (IsRunning()) { Stop(); } if (IsModal()) { EndModal(wxID_OK); } else { SetReturnCode(wxID_OK); Close(); } } } } } ginkgocadx-3.8.7/cadxcore/main/gui/countdownmessage/countdownmessage.h000066400000000000000000000023441314736454600263120ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "countdownmessagebase.h" namespace GNC { namespace GUI { class CountdownMessage: public CountdownMessageBase, public wxTimer { public: CountdownMessage(wxWindow* pParent, const wxString title, const wxString& message, int seconds = 30); ~CountdownMessage(); virtual int ShowModalCountdown(); virtual bool Show(bool show=true); protected: virtual void Notify(); int m_last; wxString m_message; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/countdownmessage/countdownmessagebase.cpp000066400000000000000000000146661314736454600275120ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "countdownmessagebase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; InactivityCountdownMessageBase::InactivityCountdownMessageBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 500,270 ), wxDefaultSize ); wxBoxSizer* m_pMainSizer; m_pMainSizer = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Inactivity detected") ); m_pMainSizer->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer141; bSizer141 = new wxBoxSizer( wxVERTICAL ); m_pFormPanel = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pFormPanel->SetToolTip( _("Inactivity detected") ); wxBoxSizer* bSizer19; bSizer19 = new wxBoxSizer( wxHORIZONTAL ); m_pLabelInactivity = new wxStaticText( m_pFormPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelInactivity->Wrap( 380 ); bSizer19->Add( m_pLabelInactivity, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 ); m_pFormPanel->SetSizer( bSizer19 ); m_pFormPanel->Layout(); bSizer19->Fit( m_pFormPanel ); bSizer141->Add( m_pFormPanel, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer141 ); m_pBody->Layout(); bSizer141->Fit( m_pBody ); m_pMainSizer->Add( m_pBody, 1, wxEXPAND, 5 ); m_panel6 = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer14; bSizer14 = new wxBoxSizer( wxHORIZONTAL ); bSizer14->Add( 0, 0, 1, 0, 0 ); m_pButtonClose = new wxButton( m_panel6, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer14->Add( m_pButtonClose, 0, wxRIGHT, 5 ); m_pBotonCancelar = new wxButton( m_panel6, wxID_OK, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); m_pBotonCancelar->SetDefault(); bSizer14->Add( m_pBotonCancelar, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); m_panel6->SetSizer( bSizer14 ); m_panel6->Layout(); bSizer14->Fit( m_panel6 ); m_pMainSizer->Add( m_panel6, 0, wxEXPAND, 5 ); this->SetSizer( m_pMainSizer ); this->Layout(); m_pMainSizer->Fit( this ); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( InactivityCountdownMessageBase::OnClose ) ); m_pButtonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( InactivityCountdownMessageBase::OnCloseButton ), NULL, this ); m_pBotonCancelar->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( InactivityCountdownMessageBase::OnCancel ), NULL, this ); } InactivityCountdownMessageBase::~InactivityCountdownMessageBase() { // Disconnect Events this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( InactivityCountdownMessageBase::OnClose ) ); m_pButtonClose->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( InactivityCountdownMessageBase::OnCloseButton ), NULL, this ); m_pBotonCancelar->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( InactivityCountdownMessageBase::OnCancel ), NULL, this ); } CountdownMessageBase::CountdownMessageBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 415,300 ), wxDefaultSize ); wxBoxSizer* m_pMainSizer; m_pMainSizer = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Info") ); m_pMainSizer->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer141; bSizer141 = new wxBoxSizer( wxVERTICAL ); m_pFormPanel = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pFormPanel->SetToolTip( _("Inactivity detected") ); wxBoxSizer* bSizer19; bSizer19 = new wxBoxSizer( wxHORIZONTAL ); m_pLabelInactivity = new wxStaticText( m_pFormPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelInactivity->Wrap( -1 ); bSizer19->Add( m_pLabelInactivity, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 ); m_pFormPanel->SetSizer( bSizer19 ); m_pFormPanel->Layout(); bSizer19->Fit( m_pFormPanel ); bSizer141->Add( m_pFormPanel, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer141 ); m_pBody->Layout(); bSizer141->Fit( m_pBody ); m_pMainSizer->Add( m_pBody, 1, wxEXPAND, 5 ); m_panel6 = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer14; bSizer14 = new wxBoxSizer( wxHORIZONTAL ); bSizer14->Add( 0, 0, 1, 0, 0 ); m_pButtonOk = new wxButton( m_panel6, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_pButtonOk->SetDefault(); bSizer14->Add( m_pButtonOk, 0, wxRIGHT|wxALIGN_CENTER_VERTICAL, 5 ); m_pBotonCancelar = new wxButton( m_panel6, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer14->Add( m_pBotonCancelar, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_panel6->SetSizer( bSizer14 ); m_panel6->Layout(); bSizer14->Fit( m_panel6 ); m_pMainSizer->Add( m_panel6, 0, wxEXPAND, 5 ); this->SetSizer( m_pMainSizer ); this->Layout(); m_pMainSizer->Fit( this ); this->Centre( wxBOTH ); } CountdownMessageBase::~CountdownMessageBase() { } ginkgocadx-3.8.7/cadxcore/main/gui/countdownmessage/countdownmessagebase.h000066400000000000000000000056021314736454600271450ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __COUNTDOWNMESSAGEBASE_H__ #define __COUNTDOWNMESSAGEBASE_H__ #include #include #include class BodyPanel; class FooterPanel; class HeaderPanel; class TitledPanel; #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class InactivityCountdownMessageBase /////////////////////////////////////////////////////////////////////////////// class InactivityCountdownMessageBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; TitledPanel* m_pFormPanel; wxStaticText* m_pLabelInactivity; FooterPanel* m_panel6; wxButton* m_pButtonClose; wxButton* m_pBotonCancelar; // Virtual event handlers, overide them in your derived class virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } virtual void OnCloseButton( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); } public: InactivityCountdownMessageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Closing"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~InactivityCountdownMessageBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class CountdownMessageBase /////////////////////////////////////////////////////////////////////////////// class CountdownMessageBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; TitledPanel* m_pFormPanel; wxStaticText* m_pLabelInactivity; FooterPanel* m_panel6; wxButton* m_pButtonOk; wxButton* m_pBotonCancelar; public: CountdownMessageBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~CountdownMessageBase(); }; } // namespace GUI } // namespace GNC #endif //__COUNTDOWNMESSAGEBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/countdownmessage/inactivitycountdownmessage.cpp000066400000000000000000000055451314736454600307570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "inactivitycountdownmessage.h" #include #include
    #include
    #include
    namespace GNC { namespace GUI { InactivityCountdownMessage::InactivityCountdownMessage(wxWindow* pParent, const wxString& message): InactivityCountdownMessageBase(pParent), m_last(6) { m_message = message; m_pFormPanel->Layout(); m_pBody->Layout(); Layout(); } InactivityCountdownMessage::~InactivityCountdownMessage() { GNC::GCS::InactivityController::Instance()->DetachForm(); } bool InactivityCountdownMessage::Show(bool show) { if (show && !IsShown()) { m_last = 6; Notify(); } else { if (IsRunning()) { Stop(); } GNC::GCS::InactivityController::Instance()->RestartMonitoring(); } return InactivityCountdownMessageBase::Show(show); } void InactivityCountdownMessage::Notify() { if (m_last > 0) { Freeze(); m_last--; m_pLabelInactivity->SetLabel(wxString::Format(m_message, m_last)); m_pFormPanel->Layout(); m_pBody->Layout(); Layout(); this->Start(1000, true); Thaw(); } else { GNC::Entorno::Instance()->GetVentanaPrincipal()->Close(); } } void InactivityCountdownMessage::OnCancel(wxCommandEvent &) { GNC::GCS::InactivityController::Instance()->RestartMonitoring(); if (IsRunning()) { Stop(); } //////// Hide(); } void InactivityCountdownMessage::OnCloseButton(wxCommandEvent &/*event*/) { GNC::Entorno::Instance()->GetVentanaPrincipal()->Close(); } void InactivityCountdownMessage::OnClose(wxCloseEvent &event) { GNC::GCS::InactivityController::Instance()->RestartMonitoring(); if (IsRunning()) { Stop(); } event.Veto(); Hide(); } } } ginkgocadx-3.8.7/cadxcore/main/gui/countdownmessage/inactivitycountdownmessage.h000066400000000000000000000025351314736454600304200ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "countdownmessagebase.h" namespace GNC { namespace GUI { class InactivityCountdownMessage: public InactivityCountdownMessageBase, public wxTimer { public: InactivityCountdownMessage(wxWindow* pParent, const wxString& message); ~InactivityCountdownMessage(); virtual bool Show(bool show=true); protected: virtual void OnCancel(wxCommandEvent &event); virtual void OnCloseButton(wxCommandEvent &event); virtual void OnClose(wxCloseEvent &event); virtual void Notify(); int m_last; wxString m_message; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirexport/000077500000000000000000000000001314736454600222205ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirexport/dicomdirexport.fbp000066400000000000000000001726521314736454600257620ustar00rootroot00000000000000 ; C++ 1 source_name 0 UTF-8 connect dicomdirexportbase 1000 none 1 DICOMDIRExport "GNC" "GUI" . 1 1 0 0 wxBOTH 1 1 impl_virtual 0 wxID_ANY 580,270 ExportDicomBase wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Export DICOM wxFILTER_NONE wxDefaultValidator bSizer13 wxVERTICAL none 5 wxEXPAND 0 1 1 0 wxID_ANY m_pHeader protected HeaderPanel; wx/ginkgostyle/ginkgostyle.h Export DICOM wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 0 wxID_ANY m_pBody protected BodyPanel; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer8 wxVERTICAL none 5 wxEXPAND 0 1 1 0 wxID_ANY m_pAnonymize protected SubTitledPanel; wx/ginkgostyle/ginkgostyle.h Anonymize wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer3 wxHORIZONTAL none 5 wxEXPAND 1 bSizer4 wxVERTICAL none 5 wxALL 0 0 1 1 0 wxID_ANY Patient Id m_pCheckPatientId protected wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Refering physician m_pCheckReferringPhysician protected wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Institutions m_pCheckInstitutions protected wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 bSizer5 wxVERTICAL none 5 wxALL 0 0 1 1 0 wxID_ANY Patient's name and surname m_pCheckPatientName protected wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Comments m_pCheckComments protected wxFILTER_NONE wxDefaultValidator 5 wxALL 0 0 1 1 0 wxID_ANY Ginkgo CADx private tags m_pCheckPrivateTags protected wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 0 wxID_ANY m_pFooter protected FooterPanel; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer10 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 0 1 0 wxID_ANY Export m_button1 protected wxFILTER_NONE wxDefaultValidator OnExportClick 5 wxRIGHT 0 1 1 1 0 wxID_CANCEL Cancel m_button2 protected wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirexport/dicomdirexportbase.cpp000066400000000000000000000105161314736454600266160ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "dicomdirexportbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; ExportDicomBase::ExportDicomBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 580,270 ), wxDefaultSize ); wxBoxSizer* bSizer13; bSizer13 = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Export DICOM") ); bSizer13->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer8; bSizer8 = new wxBoxSizer( wxVERTICAL ); m_pAnonymize = new SubTitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pAnonymize->SetToolTip( _("Anonymize") ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxVERTICAL ); m_pCheckPatientId = new wxCheckBox( m_pAnonymize, wxID_ANY, _("Patient Id"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer4->Add( m_pCheckPatientId, 0, wxALL, 5 ); m_pCheckReferringPhysician = new wxCheckBox( m_pAnonymize, wxID_ANY, _("Refering physician"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer4->Add( m_pCheckReferringPhysician, 0, wxALL, 5 ); m_pCheckInstitutions = new wxCheckBox( m_pAnonymize, wxID_ANY, _("Institutions"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer4->Add( m_pCheckInstitutions, 0, wxALL, 5 ); bSizer3->Add( bSizer4, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxVERTICAL ); m_pCheckPatientName = new wxCheckBox( m_pAnonymize, wxID_ANY, _("Patient's name and surname"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer5->Add( m_pCheckPatientName, 0, wxALL, 5 ); m_pCheckComments = new wxCheckBox( m_pAnonymize, wxID_ANY, _("Comments"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer5->Add( m_pCheckComments, 0, wxALL, 5 ); m_pCheckPrivateTags = new wxCheckBox( m_pAnonymize, wxID_ANY, _("Ginkgo CADx private tags"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer5->Add( m_pCheckPrivateTags, 0, wxALL, 5 ); bSizer3->Add( bSizer5, 1, wxEXPAND, 5 ); m_pAnonymize->SetSizer( bSizer3 ); m_pAnonymize->Layout(); bSizer3->Fit( m_pAnonymize ); bSizer8->Add( m_pAnonymize, 0, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer8 ); m_pBody->Layout(); bSizer8->Fit( m_pBody ); bSizer13->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer10; bSizer10 = new wxBoxSizer( wxHORIZONTAL ); bSizer10->Add( 0, 0, 1, wxEXPAND, 5 ); m_button1 = new wxButton( m_pFooter, wxID_ANY, _("Export"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer10->Add( m_button1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_button2 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); m_button2->SetDefault(); bSizer10->Add( m_button2, 0, wxRIGHT, 5 ); m_pFooter->SetSizer( bSizer10 ); m_pFooter->Layout(); bSizer10->Fit( m_pFooter ); bSizer13->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer13 ); this->Layout(); bSizer13->Fit( this ); this->Centre( wxBOTH ); // Connect Events m_button1->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ExportDicomBase::OnExportClick ), NULL, this ); } ExportDicomBase::~ExportDicomBase() { // Disconnect Events m_button1->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ExportDicomBase::OnExportClick ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirexport/dicomdirexportbase.h000066400000000000000000000037561314736454600262730ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __dicomdirexportbase__ #define __dicomdirexportbase__ #include class BodyPanel; class FooterPanel; class HeaderPanel; class SubTitledPanel; #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class ExportDicomBase /////////////////////////////////////////////////////////////////////////////// class ExportDicomBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; SubTitledPanel* m_pAnonymize; wxCheckBox* m_pCheckPatientId; wxCheckBox* m_pCheckReferringPhysician; wxCheckBox* m_pCheckInstitutions; wxCheckBox* m_pCheckPatientName; wxCheckBox* m_pCheckComments; wxCheckBox* m_pCheckPrivateTags; FooterPanel* m_pFooter; wxButton* m_button1; wxButton* m_button2; // Virtual event handlers, overide them in your derived class virtual void OnExportClick( wxCommandEvent& event ) { event.Skip(); } public: ExportDicomBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Export DICOM"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~ExportDicomBase(); }; } // namespace GUI } // namespace GNC #endif //__dicomdirexportbase__ ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirexport/exportdicomdir.cpp000066400000000000000000000110111314736454600257520ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include "exportdicomdir.h" #include
    #include
    #include #include #include
    namespace GNC { namespace GUI { ExportDicomDir::ExportDicomDir(wxWindow* pParent, const TIDList& pks): ExportDicomBase(pParent) { LOG_STAT(ANON_STAT_DLG_DICOM_DIR_EXPORT) m_pks = pks; Layout(); } ExportDicomDir::~ExportDicomDir() { } void ExportDicomDir::OnExportClick(wxCommandEvent&) { std::string pathDef; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Exportacion", "PathDefecto", pathDef); wxString wxPathDefecto = wxString::FromUTF8(pathDef.c_str()); wxDirDialog seleccionarDirectorio(this,_("Select the directory where the files will be stored"),wxPathDefecto,wxDD_DEFAULT_STYLE|wxDD_NEW_DIR_BUTTON); int response = seleccionarDirectorio.ShowModal(); if (response == wxID_OK) { wxString wxPath = seleccionarDirectorio.GetPath(); if( !wxDirExists(wxPath) ) { wxMessageDialog dialog(NULL,_("The selected directory does not exist\nWould you like to create?"),_("Info"),wxYES_NO|wxICON_INFORMATION); if ( dialog.ShowModal() == wxID_NO) { return; } if(!wxFileName::Mkdir(wxPath)) { wxMessageBox(_("There was an error creating directory"), _("Info"), wxOK | wxICON_INFORMATION, this); return; } } else { if (wxDirExists(wxPath + wxFileName::GetPathSeparator() + wxT("DICOM"))) { wxMessageBox(_("There are other DICOM directory in selected path"), _("Info"), wxOK | wxICON_INFORMATION, this); return; } } //anonimization GIL::DICOM::DicomDataset base; if (m_pCheckPatientName->IsChecked()) { base.tags["0010|0010"] = _Std("Unknown"); } if (m_pCheckPatientId->IsChecked()) { base.tags["0010|0020"] = _Std("Unknown"); } if (m_pCheckInstitutions->IsChecked()) { base.tags["0008|0080"] = _Std("Unknown"); } if (m_pCheckReferringPhysician->IsChecked()) { base.tags["0008|0090"] = _Std("Unknown"); } if (m_pCheckComments->IsChecked()) { base.tags["0008|1030"] = _Std("Unknown"); //study base.tags["0008|103e"] = _Std("Unknown"); //series base.tags["0020|4000"] = _Std("Unknown"); //image } std::string pathDicomDir(TOPATH(wxPath)); GADAPI::ExportToDicomDirCommandParams* pParams = new GADAPI::ExportToDicomDirCommandParams(m_pks, pathDicomDir, base, !m_pCheckPrivateTags->IsChecked()); GADAPI::ExportToDicomDirCommand* pCmd = new GADAPI::ExportToDicomDirCommand(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Exporting images ..."), pCmd, NULL); GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Exportacion", "PathDefecto",std::string(wxPath.ToUTF8())); EndModal(wxID_OK); } } //endregion } } ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirexport/exportdicomdir.h000066400000000000000000000023721314736454600254310ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include "dicomdirexportbase.h" #include #include class IModeloDicom; namespace GNC { namespace GUI { class ExportDicomDir: public ExportDicomBase { public: typedef std::list TIDList; ExportDicomDir(wxWindow* pParent, const TIDList& pks); ~ExportDicomDir(); protected: virtual void OnExportClick(wxCommandEvent&); protected: TIDList m_pks; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirmigration/000077500000000000000000000000001314736454600226705ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirmigration/DicomDirMigration.fbp000066400000000000000000002104331314736454600267300ustar00rootroot00000000000000 ; C++ 1 source_name 0 UTF-8 connect dicomdirmigrationbase 1000 none 1 DicomDirMigration "GNC" "GUI" . 1 1 0 0 wxBOTH 1 1 impl_virtual 0 wxID_ANY 800,360 DicomDirMigrationDialogBase wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSTAY_ON_TOP|wxSYSTEM_MENU DICOM Dir configuration wxFILTER_NONE wxDefaultValidator bSizer8 wxVERTICAL none 5 wxEXPAND 1 1 1 0 wxID_ANY m_pBody protected BodyPanel; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer61 wxVERTICAL none 5 wxEXPAND 1 1 1 0 wxID_ANY m_pMainPanel protected TitledPanel; wx/ginkgostyle/ginkgostyle.h DICOM Dir migration wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer11 wxVERTICAL none 5 wxEXPAND 0 m_pSizerOld wxHORIZONTAL protected 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 0 wxID_ANY m_pLabelVersion protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 0 1 1 0 wxID_ANY m_pSep1 protected SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 0 wxID_ANY m_panelMigration protected SubTitledPanel; wx/ginkgostyle/ginkgostyle.h Migrate existing (recommended) wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL 2 wxBOTH 1 0 fgSizer2 wxFLEX_GROWMODE_SPECIFIED none 2 0 5 wxEXPAND 1 bSizer6 wxVERTICAL none 5 wxALL 0 1 1 0 wxID_ANY Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. Do not close Ginkgo CADx until migration is finished. m_staticText31 protected wxFILTER_NONE wxDefaultValidator 610 5 wxALL 0 1 1 1 0 wxID_ANY Remove old DICOM Dir after migration (will be renamed as *_old) m_pRemoveFiles protected wxFILTER_NONE wxDefaultValidator 5 wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT 0 1 0 1 0 wxID_ANY Continue... m_button5 protected wxFILTER_NONE wxDefaultValidator OnMigrate 5 wxEXPAND 0 1 1 0 wxID_ANY m_panelMigrationSep protected SubTitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 0 wxID_ANY m_panel7 protected SubTitledPanel; wx/ginkgostyle/ginkgostyle.h Select other wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL 2 wxBOTH 1 0 fgSizer1 wxFLEX_GROWMODE_SPECIFIED none 2 0 5 wxALL 0 1 1 0 wxID_ANY Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new one will be created, else existing DICOM Dir will be used m_staticText3 protected wxFILTER_NONE wxDefaultValidator 610 5 wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT 0 1 1 1 0 wxID_ANY Browse... m_button4 protected wxFILTER_NONE wxDefaultValidator OnSelectOther ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirmigration/dicomdirmigration.cpp000066400000000000000000000150431314736454600271030ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "dicomdirmigration.h" #include #include #include #include #include #include #include #include #include #include GNC::GUI::DicomDirMigrationDialog::DicomDirMigrationDialog(wxWindow* pParent, const std::string& dicomDirPath, int version, bool oldVersion): GNC::GUI::DicomDirMigrationDialogBase(pParent), m_DicomDirPath(dicomDirPath), m_OriginalDicomDirPath(dicomDirPath), FromVersion(version), Status(GNC::GUI::DicomDirMigrationDialog::TS_CloseAll) { if (oldVersion) { m_pLabelVersion->SetLabel(wxString::Format(_("Ginkgo CADx has detected a default DICOM Dir created with an old version of\nGinkgo CADx (BBDD v.%d). What do you want to do?"), (int) FromVersion)); } else { m_pLabelVersion->SetLabel(wxString::Format(_("DICOM Dir has been created with a new version of Ginkgo CADx (BBDD v.%d).\nThis version is unabled to open it."), (int) FromVersion)); } m_panelMigration->Show(oldVersion); m_panelMigrationSep->Show(oldVersion); wxIcon icono; icono.CopyFromBitmap(GinkgoResourcesManager::Logos::GetLogoGinkgo32x32()); this->SetIcon(icono); m_pMainPanel->Layout(); } GNC::GUI::DicomDirMigrationDialog::~DicomDirMigrationDialog() { } GNC::GUI::DicomDirMigrationDialog::TStatus GNC::GUI::DicomDirMigrationDialog::GetStatus() { return Status; } void GNC::GUI::DicomDirMigrationDialog::OnSelectOther(wxCommandEvent& ) { wxString path = SelectFolder(); if (!path.empty()) { m_DicomDirPath = TOPATH(path); Status=TS_Change; Close(); } } std::string GNC::GUI::DicomDirMigrationDialog::GetDicomDirPath() { return m_DicomDirPath; } std::string GNC::GUI::DicomDirMigrationDialog::GetOriginalDicomDirPath() { return m_OriginalDicomDirPath; } bool GNC::GUI::DicomDirMigrationDialog::GetRemoveAfterMigration() { return m_pRemoveFiles->IsChecked(); } void GNC::GUI::DicomDirMigrationDialog::OnMigrate(wxCommandEvent& ) { wxString originalWx = wxString(FROMPATH(m_OriginalDicomDirPath)); wxString newDicomDirPath = originalWx + wxString(wxT("_old")); int index = 0; while (wxDirExists(newDicomDirPath)) { newDicomDirPath = originalWx + wxString::Format(wxT("_old%d"), (int) index); index++; } if (!wxRenameFile(originalWx, newDicomDirPath)) { wxMessageBox(_("Error renaming old dicomdir to _old, ensure you have permissions to do it"),_("Info"),wxOK,this); return; } m_DicomDirPath = m_OriginalDicomDirPath; m_OriginalDicomDirPath = TOPATH(newDicomDirPath); Status=TS_Migrate; Close(); } wxString GNC::GUI::DicomDirMigrationDialog::SelectFolder() { wxDirDialog seleccionarDirectorio(this,_("Select the DICOM Dir folder"),FROMPATH(m_DicomDirPath),wxDD_DEFAULT_STYLE|wxDD_NEW_DIR_BUTTON); int response = seleccionarDirectorio.ShowModal(); if (response == wxID_OK) { wxString path = seleccionarDirectorio.GetPath(); wxFileName fileName(path); if(!fileName.IsAbsolute()) { wxFileName pathOfExec(wxStandardPaths::Get().GetExecutablePath()); fileName.MakeAbsolute(pathOfExec.GetPath()); path = fileName.GetFullPath(); } if(!wxDir::Exists(path)) { //se pregunta si desea crearlo int answer = wxMessageBox(_("The selected directory does not exist\nWould you like to create it?"),_("Info"),wxYES_NO,this); if(answer == wxNO) { return wxEmptyString; } else { bool success; #ifdef _WIN32 success = wxMkdir(path,511); #else success = (wxMkDir(path.ToUTF8(), 0770) == 0); #endif if(!success || !wxDirExists(path)) { wxMessageBox(_("Failed to create directory, make sure the path is correct and you have permissions on parent directory"), _("Info")); return wxEmptyString; } } } else { //se comprueba que puede escribir(escribimos y borramos un fichero chorra) wxString pathFicheroPrueba = path + wxFileName::GetPathSeparator() + wxString::Format(wxT("%d"), (int) rand()); while(wxFileExists(pathFicheroPrueba)) { pathFicheroPrueba = path + wxFileName::GetPathSeparator() + wxString::Format(wxT("%d"), (int) rand()); } { wxFile ficheroTmp; if(!ficheroTmp.Create(pathFicheroPrueba,false)) { if(!wxFileExists(pathFicheroPrueba) ) { wxMessageBox(_("There was an error reading the directory, make sure you have write permissions on it"), _("Info")); return wxEmptyString; } } ficheroTmp.Write(wxT("test")); ficheroTmp.Close(); } wxRemoveFile(pathFicheroPrueba); } return path; } return wxEmptyString; } ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirmigration/dicomdirmigration.h000066400000000000000000000031641314736454600265510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "dicomdirmigrationbase.h" namespace GNC { namespace GUI { class DicomDirMigrationDialog: public GNC::GUI::DicomDirMigrationDialogBase { public: typedef enum TStatus { TS_CloseAll, TS_Migrate, TS_Change } TStatus; DicomDirMigrationDialog(wxWindow* pParent, const std::string& dicomDirPath, int version, bool oldVersion); ~DicomDirMigrationDialog(); TStatus GetStatus(); std::string GetDicomDirPath(); std::string GetOriginalDicomDirPath(); bool GetRemoveAfterMigration(); protected: virtual void OnSelectOther(wxCommandEvent& event); virtual void OnMigrate(wxCommandEvent& event); wxString SelectFolder(); std::string m_DicomDirPath; std::string m_OriginalDicomDirPath; int FromVersion; TStatus Status; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirmigration/dicomdirmigrationbase.cpp000066400000000000000000000133171314736454600277400ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Sep 8 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "dicomdirmigrationbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; DicomDirMigrationDialogBase::DicomDirMigrationDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 800,360 ), wxDefaultSize ); wxBoxSizer* bSizer8; bSizer8 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer61; bSizer61 = new wxBoxSizer( wxVERTICAL ); m_pMainPanel = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pMainPanel->SetToolTip( _("DICOM Dir migration") ); wxBoxSizer* bSizer11; bSizer11 = new wxBoxSizer( wxVERTICAL ); m_pSizerOld = new wxBoxSizer( wxHORIZONTAL ); m_pLabelVersion = new wxStaticText( m_pMainPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelVersion->Wrap( -1 ); m_pSizerOld->Add( m_pLabelVersion, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); bSizer11->Add( m_pSizerOld, 0, wxEXPAND, 5 ); m_pSep1 = new SubTitledPanelSeparatorV( m_pMainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer11->Add( m_pSep1, 0, wxEXPAND, 5 ); m_panelMigration = new SubTitledPanel( m_pMainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panelMigration->SetToolTip( _("Migrate existing (recommended)") ); wxFlexGridSizer* fgSizer2; fgSizer2 = new wxFlexGridSizer( 2, 2, 0, 0 ); fgSizer2->AddGrowableCol( 1 ); fgSizer2->SetFlexibleDirection( wxBOTH ); fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxVERTICAL ); m_staticText31 = new wxStaticText( m_panelMigration, wxID_ANY, _("Migrate existing DICOM Dir, existing files will be added to new DICOM Dir. Do not close Ginkgo CADx until migration is finished."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText31->Wrap( 610 ); bSizer6->Add( m_staticText31, 0, wxALL, 5 ); m_pRemoveFiles = new wxCheckBox( m_panelMigration, wxID_ANY, _("Remove old DICOM Dir after migration (will be renamed as *_old)"), wxDefaultPosition, wxDefaultSize, 0 ); m_pRemoveFiles->SetValue(true); bSizer6->Add( m_pRemoveFiles, 0, wxALL, 5 ); fgSizer2->Add( bSizer6, 1, wxEXPAND, 5 ); m_button5 = new wxButton( m_panelMigration, wxID_ANY, _("Continue..."), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer2->Add( m_button5, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); m_panelMigration->SetSizer( fgSizer2 ); m_panelMigration->Layout(); fgSizer2->Fit( m_panelMigration ); bSizer11->Add( m_panelMigration, 0, wxEXPAND, 5 ); m_panelMigrationSep = new SubTitledPanelSeparatorV( m_pMainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer11->Add( m_panelMigrationSep, 0, wxEXPAND, 5 ); m_panel7 = new SubTitledPanel( m_pMainPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel7->SetToolTip( _("Select other") ); wxFlexGridSizer* fgSizer1; fgSizer1 = new wxFlexGridSizer( 2, 2, 0, 0 ); fgSizer1->AddGrowableCol( 1 ); fgSizer1->SetFlexibleDirection( wxBOTH ); fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText3 = new wxStaticText( m_panel7, wxID_ANY, _("Select other path, if path doesn't contains a Ginkgo CADx DICOM Dir, a new one will be created, else existing DICOM Dir will be used"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText3->Wrap( 610 ); fgSizer1->Add( m_staticText3, 0, wxALL, 5 ); m_button4 = new wxButton( m_panel7, wxID_ANY, _("Browse..."), wxDefaultPosition, wxDefaultSize, 0 ); m_button4->SetDefault(); fgSizer1->Add( m_button4, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 ); m_panel7->SetSizer( fgSizer1 ); m_panel7->Layout(); fgSizer1->Fit( m_panel7 ); bSizer11->Add( m_panel7, 0, wxEXPAND, 5 ); m_pMainPanel->SetSizer( bSizer11 ); m_pMainPanel->Layout(); bSizer11->Fit( m_pMainPanel ); bSizer61->Add( m_pMainPanel, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer61 ); m_pBody->Layout(); bSizer61->Fit( m_pBody ); bSizer8->Add( m_pBody, 1, wxEXPAND, 5 ); this->SetSizer( bSizer8 ); this->Layout(); bSizer8->Fit( this ); this->Centre( wxBOTH ); // Connect Events m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DicomDirMigrationDialogBase::OnMigrate ), NULL, this ); m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DicomDirMigrationDialogBase::OnSelectOther ), NULL, this ); } DicomDirMigrationDialogBase::~DicomDirMigrationDialogBase() { // Disconnect Events m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DicomDirMigrationDialogBase::OnMigrate ), NULL, this ); m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DicomDirMigrationDialogBase::OnSelectOther ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/dicomdirmigration/dicomdirmigrationbase.h000066400000000000000000000043701314736454600274040ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Sep 8 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __dicomdirmigrationbase__ #define __dicomdirmigrationbase__ #include class BodyPanel; class SubTitledPanel; class SubTitledPanelSeparatorV; class TitledPanel; #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class DicomDirMigrationDialogBase /////////////////////////////////////////////////////////////////////////////// class DicomDirMigrationDialogBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pMainPanel; wxBoxSizer* m_pSizerOld; wxStaticText* m_pLabelVersion; SubTitledPanelSeparatorV* m_pSep1; SubTitledPanel* m_panelMigration; wxStaticText* m_staticText31; wxCheckBox* m_pRemoveFiles; wxButton* m_button5; SubTitledPanelSeparatorV* m_panelMigrationSep; SubTitledPanel* m_panel7; wxStaticText* m_staticText3; wxButton* m_button4; // Virtual event handlers, overide them in your derived class virtual void OnMigrate( wxCommandEvent& event ) { event.Skip(); } virtual void OnSelectOther( wxCommandEvent& event ) { event.Skip(); } public: DicomDirMigrationDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("DICOM Dir configuration"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSTAY_ON_TOP|wxSYSTEM_MENU ); ~DicomDirMigrationDialogBase(); }; } // namespace GUI } // namespace GNC #endif //__dicomdirmigrationbase__ ginkgocadx-3.8.7/cadxcore/main/gui/droptargetmainwindow.cpp000066400000000000000000000032401314736454600241370ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include "droptargetmainwindow.h" #include #include
    #include
    #include
    GNC::GUI::DropTargetMainWindow::DropTargetMainWindow():wxFileDropTarget() { } GNC::GUI::DropTargetMainWindow::~DropTargetMainWindow() { } /** When a file is dropped on the window, it will be processes as it was passed as first parameter to Ginkgo CADx */ bool GNC::GUI::DropTargetMainWindow::OnDropFiles(wxCoord /*x*/, wxCoord /*y*/, const wxArrayString& filenames) { std::list listaPaths; for(wxArrayString::const_iterator it = filenames.begin(); it!= filenames.end(); ++it) { GNC::Entorno::Instance()->GetVentanaPrincipal()->EjecutarParametro(*it, false); } return true; } ginkgocadx-3.8.7/cadxcore/main/gui/droptargetmainwindow.h000066400000000000000000000021121314736454600236010ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include /** Drop target that executes dropped file for history and main window */ namespace GNC { namespace GUI { class DropTargetMainWindow: public wxFileDropTarget { public: DropTargetMainWindow(); ~DropTargetMainWindow(); bool OnDropFiles(wxCoord /*x*/, wxCoord /*y*/, const wxArrayString& filenames); }; } } ginkgocadx-3.8.7/cadxcore/main/gui/export/000077500000000000000000000000001314736454600205055ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/export/PasosExportacion.fbp000066400000000000000000000773241314736454600245140ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect pasosexportacionbase 1000 none 1 PasosExportacion . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY ParametrosPrincipalesBase 765,350 wxTAB_TRAVERSAL bSizer14 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelProfile 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Profile wxTAB_TRAVERSAL bSizer6 wxVERTICAL none 5 wxEXPAND 1 bSizer61 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Format 0 0 1 m_staticText15 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 "DICOM (native format)" "Image (jpg, bmp, png)" 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFormat 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator OnChoiceFormatoDestino 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Export all files of opened tab 0 0 1 m_pAllFiles 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/export/datospersistentesexportacion.h000066400000000000000000000031431314736454600267160ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include namespace GNC { namespace GCS { class IVista; } } namespace GNC { namespace GUI { typedef struct TipoWizardExportacion { typedef enum {EXTERNAL_FOLDER, OVERWRITE, NEW_STUDY} Target; Target m_target; std::string m_pathDestino; std::list ListOfSeriesPks; //parametros principales std::list ListOfDICOMPaths; //exportacion ginkgo GIL::DICOM::DicomDataset m_base; bool m_incluirTagsGinkgo; TipoWizardExportacion() : m_target(EXTERNAL_FOLDER), m_pathDestino(), ListOfSeriesPks(), m_base(), m_incluirTagsGinkgo(true) { } ~TipoWizardExportacion() { } } TipoWizardExportacion; } } ginkgocadx-3.8.7/cadxcore/main/gui/export/parametrosprincipales.cpp000066400000000000000000000217011314736454600256210ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include
    #include #include #include #include #include "parametrosprincipales.h" #include #include #include #include #include #include #include #include #include #include
    #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include #include #include #include #include #include #include #include #include #include #include namespace GNC { namespace GUI { ParametrosPrincipales::ParametrosPrincipales(wxWindow* pParent,IWizard* pWizard, GNC::GCS::IWidgetsContract* widgetsContract):ParametrosPrincipalesBase(pParent),IPasoWizard(pWizard), WidgetsContract(widgetsContract) { //pillamos los mapas bool valBoolTmp; GNC::GCS::ConfigurationController::Instance()->readBoolUser("/GinkgoCore/ImageExport", "Scope", valBoolTmp, false); m_pAllFiles->SetValue(valBoolTmp); int valTmp; GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/ImageExport", "Format", valTmp, 0); m_pFormat->SetSelection(valTmp); wxCommandEvent evt; OnChoiceFormatoDestino(evt); Layout(); } ParametrosPrincipales::~ParametrosPrincipales() { } void ParametrosPrincipales::OnChoiceFormatoDestino(wxCommandEvent &) { switch(m_pFormat->GetSelection()) { case 0: m_pAllFiles->Enable(true); break; case 1: m_pAllFiles->Enable(false); break; } Layout(); } //region "Metodos heredados de Ipasowizard" std::string ParametrosPrincipales::GetTitle() { return _Std("DICOM Export"); } std::string ParametrosPrincipales::GetSubTitle() { return _Std("Select the format and the images you want to export"); } bool ParametrosPrincipales::Siguiente() { return true; } bool ParametrosPrincipales::Anterior() { return false; } bool ParametrosPrincipales::Cancelar() { return true; } bool ParametrosPrincipales::Validar() { GNC::GCS::ConfigurationController::Instance()->writeBoolUser("/GinkgoCore/ImageExport", "Scope", m_pAllFiles->GetValue()); GNC::GCS::ConfigurationController::Instance()->writeIntUser("/GinkgoCore/ImageExport", "Format", m_pFormat->GetSelection()); //select path... std::string pathDef; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Exportacion", "PathDefecto", pathDef); wxString wxPathDefecto = wxString::FromUTF8(pathDef.c_str()); int response; wxString wxPath; if (!m_pAllFiles->IsEnabled() || !m_pAllFiles->IsChecked()) { //select only a file to store wxString fileWildCard; if (m_pFormat->GetSelection() == 0) { //dicom fileWildCard = _("DICOM (*.dcm;)|*.dcm|All files(*.*)|*.*"); } else { fileWildCard = _("JPEG (*.jpg;)|*.jpg|BMP (*.bmp)|*.bmp|PNG (*.png)|*.png|All files(*.*)|*.*"); } wxFileDialog selectFile(this, _("Select file"), wxPathDefecto, wxEmptyString, fileWildCard, wxFD_SAVE); response = selectFile.ShowModal(); wxPath = selectFile.GetPath(); } else { //select a folder wxDirDialog seleccionarDirectorio(this,_("Select the directory where the files will be stored"),wxPathDefecto,wxDD_DEFAULT_STYLE|wxDD_NEW_DIR_BUTTON); response = seleccionarDirectorio.ShowModal(); wxPath = seleccionarDirectorio.GetPath(); if( !wxDirExists(wxPath) ) { wxMessageDialog dialog(NULL,_("The selected directory does not exist\nWould you like to create?"),_("Info"),wxYES_NO|wxICON_INFORMATION); if ( dialog.ShowModal() == wxID_NO) { return false;; } if(!wxFileName::Mkdir(wxPath)) { wxMessageBox(_("There was an error creating directory"), _("Info"), wxOK | wxICON_INFORMATION, this); return false; } } } if (response == wxID_OK) { //if it is an image file it has to be exported inmediatly... because it depends on the view if (m_pFormat->GetSelection() == 0) { //DICOM GNC::GCS::Ptr m_pDatosPersistentes(new TipoWizardExportacion()); m_pDatosPersistentes->m_pathDestino = TOPATH(wxPath); //get paths to be exported from view... if (m_pAllFiles->IsChecked()) { std::vector& openedSeries = WidgetsContract->GetManager()->GetVista()->GetEstudio()->OpenedSeries; m_pDatosPersistentes->ListOfSeriesPks.insert(m_pDatosPersistentes->ListOfSeriesPks.begin(), openedSeries.begin(), openedSeries.end()); } else { m_pDatosPersistentes->ListOfDICOMPaths.push_back(WidgetsContract->GetManager()->GetVista()->GetCurrentDICOM()); } GADAPI::ComandoExportacionParams* pParams = new GADAPI::ComandoExportacionParams(m_pDatosPersistentes); GADAPI::ComandoExportacion* pCmd = new GADAPI::ComandoExportacion(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Exporting images ..."), pCmd, NULL); } else { //export image! ExportImage(wxPath); } GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Exportacion", "PathDefecto",std::string(wxPath.ToUTF8())); return true; } else { return false; } } void ParametrosPrincipales::ExportImage(const wxString& path) { vtkSmartPointer windowToImageFilter = vtkSmartPointer::New(); windowToImageFilter->SetInput(WidgetsContract->GetViewerActivo()->GetRenderWindow()); windowToImageFilter->SetInputBufferTypeToRGB(); //also record the alpha (transparency) channel windowToImageFilter->Update(); wxFileName fn(path); if (fn.GetExt() == wxT("bmp")) { vtkSmartPointer writer = vtkSmartPointer::New(); writer->SetFileName(TOPATH(path).c_str()); writer->SetInputConnection(windowToImageFilter->GetOutputPort()); writer->Write(); } else if (fn.GetExt() == wxT("png")) { vtkSmartPointer writer = vtkSmartPointer::New(); writer->SetFileName(TOPATH(path).c_str()); writer->SetInputConnection(windowToImageFilter->GetOutputPort()); writer->Write(); } else { vtkSmartPointer writer = vtkSmartPointer::New(); writer->SetFileName(TOPATH(path).c_str()); writer->SetQuality(97); writer->ProgressiveOn(); writer->SetInputConnection(windowToImageFilter->GetOutputPort()); writer->Write(); } } }; }; ginkgocadx-3.8.7/cadxcore/main/gui/export/parametrosprincipales.h000066400000000000000000000032761314736454600252750ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include "pasosexportacionbase.h" #include "datospersistentesexportacion.h" namespace GNC { namespace GCS { class IWidgetsContract; class IVista; class IEntorno; } namespace GUI { class ParametrosPrincipales: public ParametrosPrincipalesBase,public IPasoWizard { public: ParametrosPrincipales(wxWindow* pParent,IWizard* pWizard, GNC::GCS::IWidgetsContract* WidgetsContract); ~ParametrosPrincipales(); protected: GNC::GCS::IWidgetsContract* WidgetsContract; void OnChoiceFormatoDestino(wxCommandEvent &event); void ExportImage(const wxString& path); public: virtual std::string GetTitle(); virtual std::string GetSubTitle(); virtual bool Siguiente(); virtual bool Anterior(); virtual bool Cancelar(); virtual bool Validar(); //endregion }; } } ginkgocadx-3.8.7/cadxcore/main/gui/export/pasosexportacionbase.cpp000066400000000000000000000072631314736454600254550ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "pasosexportacionbase.h" /////////////////////////////////////////////////////////////////////////// ParametrosPrincipalesBase::ParametrosPrincipalesBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer14; bSizer14 = new wxBoxSizer( wxVERTICAL ); m_pPanelProfile = new TitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelProfile->SetToolTip( _("Profile") ); wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer61; bSizer61 = new wxBoxSizer( wxHORIZONTAL ); m_staticText15 = new wxStaticText( m_pPanelProfile, wxID_ANY, _("Format"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText15->Wrap( -1 ); bSizer61->Add( m_staticText15, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); wxString m_pFormatChoices[] = { _("DICOM (native format)"), _("Image (jpg, bmp, png)") }; int m_pFormatNChoices = sizeof( m_pFormatChoices ) / sizeof( wxString ); m_pFormat = new wxChoice( m_pPanelProfile, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pFormatNChoices, m_pFormatChoices, 0 ); m_pFormat->SetSelection( 0 ); bSizer61->Add( m_pFormat, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pAllFiles = new wxCheckBox( m_pPanelProfile, wxID_ANY, _("Export all files of opened tab"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer61->Add( m_pAllFiles, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); bSizer6->Add( bSizer61, 1, wxEXPAND, 5 ); m_pPanelProfile->SetSizer( bSizer6 ); m_pPanelProfile->Layout(); bSizer6->Fit( m_pPanelProfile ); bSizer14->Add( m_pPanelProfile, 0, wxEXPAND, 5 ); m_pSep = new TitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer14->Add( m_pSep, 0, wxEXPAND, 5 ); m_pPanelJpeg = new TitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelJpeg->Hide(); m_pPanelJpeg->SetToolTip( _("JPEG") ); wxBoxSizer* bSizer6111; bSizer6111 = new wxBoxSizer( wxHORIZONTAL ); m_staticText6 = new wxStaticText( m_pPanelJpeg, wxID_ANY, _("Quality"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); bSizer6111->Add( m_staticText6, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); m_pSliderCalidad = new wxSlider( m_pPanelJpeg, wxID_ANY, 95, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL|wxSL_LABELS|wxSL_TOP ); bSizer6111->Add( m_pSliderCalidad, 1, wxRIGHT|wxLEFT, 5 ); bSizer6111->Add( 0, 0, 1, wxEXPAND, 5 ); m_pPanelJpeg->SetSizer( bSizer6111 ); m_pPanelJpeg->Layout(); bSizer6111->Fit( m_pPanelJpeg ); bSizer14->Add( m_pPanelJpeg, 0, wxEXPAND, 5 ); this->SetSizer( bSizer14 ); this->Layout(); // Connect Events m_pFormat->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ParametrosPrincipalesBase::OnChoiceFormatoDestino ), NULL, this ); } ParametrosPrincipalesBase::~ParametrosPrincipalesBase() { // Disconnect Events m_pFormat->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( ParametrosPrincipalesBase::OnChoiceFormatoDestino ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/export/pasosexportacionbase.h000066400000000000000000000034551314736454600251210ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __PASOSEXPORTACIONBASE_H__ #define __PASOSEXPORTACIONBASE_H__ #include #include #include class TitledPanel; class TitledPanelSeparatorV; #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /// Class ParametrosPrincipalesBase /////////////////////////////////////////////////////////////////////////////// class ParametrosPrincipalesBase : public wxPanel { private: protected: TitledPanel* m_pPanelProfile; wxStaticText* m_staticText15; wxChoice* m_pFormat; wxCheckBox* m_pAllFiles; TitledPanelSeparatorV* m_pSep; TitledPanel* m_pPanelJpeg; wxStaticText* m_staticText6; wxSlider* m_pSliderCalidad; // Virtual event handlers, overide them in your derived class virtual void OnChoiceFormatoDestino( wxCommandEvent& event ) { event.Skip(); } public: ParametrosPrincipalesBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 765,350 ), long style = wxTAB_TRAVERSAL ); ~ParametrosPrincipalesBase(); }; #endif //__PASOSEXPORTACIONBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/export/wxwizardexportacionginkgo.cpp000066400000000000000000000115721314736454600265510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include "parametrosprincipales.h" #include "wxwizardexportacionginkgo.h" #include
    #include #include
    namespace GNC { namespace GUI { wxWidzardExportacionGinkgo::wxWidzardExportacionGinkgo(wxWindow* pParent, GNC::GCS::IWidgetsContract* WidgetsContract) : wxWizardGinkgoBase(pParent) { LOG_STAT(ANON_STAT_DLG_EXPORT) SetTitle(_("Image Export Wizard")); m_OK = false; //se pillan los pasos IPasoWizard* pPaso=NULL; pPaso = new ParametrosPrincipales(m_pPanelPrincipal, this, WidgetsContract); m_ListaPasos.push_back(pPaso); // m_pBAnterior->Show(false); m_currentPasoIndex=0; CargarCurrent(); } wxWidzardExportacionGinkgo::~wxWidzardExportacionGinkgo() { m_ListaPasos.clear(); } void wxWidzardExportacionGinkgo::OnCancelarClick(wxCommandEvent& ) { EndModal(wxCANCEL); } void wxWidzardExportacionGinkgo::OnSiguienteClick(wxCommandEvent& ) { ListaPasos::iterator it = m_ListaPasos.begin(); for (ListaPasos::size_type i = 0; i < m_currentPasoIndex; i++, ++it); IPasoWizard* currentPaso = *it; if(currentPaso->Validar()) { wxWindow* pCurrent = dynamic_cast (currentPaso); if (pCurrent != NULL && (currentPaso)->Detach()) { pCurrent->Hide(); m_pSizerPrincipal->Detach(pCurrent); ++m_currentPasoIndex; if(m_currentPasoIndex >= m_ListaPasos.size()) { EndModal(wxOK); return; } else { CargarCurrent(); } } } } void wxWidzardExportacionGinkgo::OnAnteriorClick(wxCommandEvent &) { if(m_currentPasoIndex!=0) { ListaPasos::iterator it = m_ListaPasos.begin(); for (ListaPasos::size_type i = 0; i < m_currentPasoIndex; i++, ++it); //IPasoWizard* currentPaso = *it; wxWindow* pCurrent = dynamic_cast (*it); if (pCurrent != NULL && (*it)->Detach()) { pCurrent->Hide(); m_pSizerPrincipal->Detach(pCurrent); switch(m_currentPasoIndex) { case 1: --m_currentPasoIndex; break; case 2: m_currentPasoIndex=0; break; } CargarCurrent(); } } } bool wxWidzardExportacionGinkgo::IsOK() { return m_OK; } void wxWidzardExportacionGinkgo::CargarCurrent() { ListaPasos::iterator it = m_ListaPasos.begin(); for (ListaPasos::size_type i = 0; i < m_currentPasoIndex; i++, ++it); IPasoWizard* currentPaso = *it; wxWindow* pCurrent = dynamic_cast (currentPaso); if (pCurrent != NULL && (currentPaso)->Attach()) { pCurrent->Show(true); m_pSizerPrincipal->Add(pCurrent, 10, wxEXPAND); m_pHeader->SetTitle(wxString::FromUTF8(currentPaso->GetTitle().c_str())); m_pHeader->SetSubtitle(wxString::FromUTF8(currentPaso->GetSubTitle().c_str())); m_pBSiguiente->Enable(currentPaso->Siguiente()); m_pBAnterior->Enable(currentPaso->Anterior()); m_pBCerrar->Enable(currentPaso->Cancelar()); if(m_currentPasoIndex==m_ListaPasos.size()-1) { m_pBSiguiente->SetLabel(_("&Accept")); } else { m_pBSiguiente->SetLabel(_("&Next >")); } } m_pPanelPrincipal->Layout(); Layout(); } }; } ginkgocadx-3.8.7/cadxcore/main/gui/export/wxwizardexportacionginkgo.h000066400000000000000000000031621314736454600262120ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include "datospersistentesexportacion.h" #include #include #include namespace GNC { namespace GCS { class WidgetsContract; } namespace GUI { class wxWidzardExportacionGinkgo: public wxWizardGinkgoBase { public: wxWidzardExportacionGinkgo(wxWindow* pParent, GNC::GCS::IWidgetsContract* WidgetsContract); ~wxWidzardExportacionGinkgo(); virtual void OnCancelarClick(wxCommandEvent& event); virtual void OnSiguienteClick(wxCommandEvent& event); virtual void OnAnteriorClick(wxCommandEvent &event); void CargarCurrent(); bool IsOK(); protected: typedef std::list ListaPasos; ListaPasos m_ListaPasos; ListaPasos::size_type m_currentPasoIndex; bool m_OK; }; }; }; ginkgocadx-3.8.7/cadxcore/main/gui/ginkgocloud/000077500000000000000000000000001314736454600214715ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/ginkgocloud/downloadcloud.fbp000066400000000000000000012114311314736454600250230ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect downloadcloudbase 1000 none 1 UploadCloud "GNC" "GUI" . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 700,350 OpenGinkgoCloudDialogBase 700,350 wxCAPTION|wxCLOSE_BOX|wxFRAME_FLOAT_ON_PARENT|wxRESIZE_BORDER|wxSYSTEM_MENU Open Ginkgo Cloud wxTAB_TRAVERSAL 1 OnKeyUp bSizerPrincipal wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Ginkgo Cloud wxTAB_TRAVERSAL OnKeyUp 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL OnKeyUp bSizer11 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pPanelSuperior 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Open link wxTAB_TRAVERSAL OnKeyUp bSizer81 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY File link: 0 0 1 m_staticText6 1 protected 1 Resizable 1 0 -1 OnKeyUp 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFileLink 1 protected 1 Resizable 1 wxTE_MULTILINE 0 wxFILTER_NONE wxDefaultValidator OnKeyUp 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL OnKeyUp bSizer8 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxLEFT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK &Accept 0 0 1 m_buttonAceptar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAccept OnKeyUp 5 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_pButtonCancel 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCancel OnKeyUp 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 520,300 GinkgoCloudSearchDialogBase 1024,575 wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Ginkgo Cloud search OnClose OnKeyDownFormulario m_pMainSizer wxVERTICAL protected 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 -1,-1 0 1 m_pHeader 1 protected 1 Resizable 1 -1,-1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Ginkgo Cloud wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBodyPanel 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer18 wxVERTICAL none 5 wxEXPAND|wxTOP|wxRIGHT|wxLEFT 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pPanelPACS 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Search wxTAB_TRAVERSAL m_pSizerCamposBusqueda wxVERTICAL none 5 wxEXPAND 0 bSizer32 wxHORIZONTAL none 5 wxEXPAND 1 bSizer33 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,92,-1,70,0 0 0 wxID_ANY Study 0 0 1 m_pPatientLabelStr 1 protected 1 Resizable 1 0 -1 5 wxEXPAND 1 bSizer23 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 "Description" "User name" 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pFieldCombo 1 protected 1 Resizable -1 1 -1,-1 wxCB_DROPDOWN|wxCB_READONLY 0 wxFILTER_NONE wxDefaultValidator OnComboField 5 wxEXPAND|wxALIGN_CENTER_VERTICAL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSearchPanel 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL bSizer271 wxHORIZONTAL none 5 wxALL|wxEXPAND 1 1 1 1 1 0 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTextControlField 1 protected 1 Resizable 1 1 wxTE_PROCESS_ENTER 0 wxFILTER_NONE wxDefaultValidator OnCancelClick OnBusquedaClick OnBusquedaClick 5 wxALL|wxALIGN_CENTER_VERTICAL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 1 wxID_ANY PACS acquisition is restricted 0 0 1 m_pLabelRestricted 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL 0 m_pSizerAnimation wxHORIZONTAL protected 5 wxEXPAND|wxBOTTOM 0 bSizer27 wxHORIZONTAL none 5 wxEXPAND|wxRIGHT 1 wxID_ANY Date sbSizer2 wxVERTICAL none 5 wxEXPAND|wxALL 1 bSizer17 wxHORIZONTAL none 5 wxEXPAND 1 bSizer181 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Any date 0 0 1 m_pAnyDate 1 protected 1 Resizable 1 wxRB_GROUP 0 wxFILTER_NONE wxDefaultValidator 1 OnKeyDownFormulario 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Today 0 0 1 m_pToday 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 2 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Yesterday 0 0 1 m_pYesterday 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 5 wxEXPAND 1 bSizer29 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Last 7 days 0 0 1 m_pLastWeek 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Last 30 days 0 0 1 m_pLastMonth 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Last 3 months 0 0 1 m_pLastThreeMonths 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 5 wxEXPAND 0 bSizer201 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Between: 0 0 1 m_pBetween 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario 5 wxEXPAND|wxLEFT 0 bSizer21 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTextControlFechaDesde 1 protected 1 Resizable 1 wxDP_DEFAULT|wxDP_DROPDOWN 0 wxFILTER_NONE wxDefaultValidator OnFechaDesdeDateChanged OnKeyDownFormulario 5 wxEXPAND|wxLEFT 0 bSizer22 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTextControlFechaHasta 1 protected 1 Resizable 1 wxDP_DEFAULT|wxDP_DROPDOWN 0 wxFILTER_NONE wxDefaultValidator OnFechaHastaDateChanged OnKeyDownFormulario 5 wxEXPAND|wxLEFT 1 wxID_ANY Modalities sbSizer3 wxVERTICAL none 5 wxEXPAND|wxALL 1 5 0 m_pModalitySizer protected 0 0 5 wxEXPAND 1 m_pSizerDataGrid wxVERTICAL protected 5 wxEXPAND 0 bSizer20 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxALIGN_BOTTOM|wxALIGN_RIGHT|wxTOP|wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 0 1 0 0 wxID_ANY Download 0 0 1 m_pBDescargar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnDescargarClick 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 1 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL m_pSizerBotoneraVentana wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Close 0 0 1 m_pBotonClose 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCloseClick 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 650,350 FileLinkDialogBase 650,350 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER bSizerPrincipal wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Ginkgo Cloud wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL OnKeyUp bSizer11 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pPanelSuperior 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Ginkgo Cloud link wxTAB_TRAVERSAL OnKeyUp bSizer81 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY File link: 0 0 1 m_staticText6 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFileLink 1 protected 1 Resizable 1 wxTE_MULTILINE|wxTE_READONLY 0 wxFILTER_NONE wxDefaultValidator OnKeyUp 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,93,90,-1,70,0 0 0 wxID_ANY You can copy and paste link to use it in e-mails and web pages, you have to install Ginkgo CADx to download and visualize it. 0 0 1 m_staticText7 1 protected 1 Resizable 1 0 490 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL OnKeyUp bSizer8 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxRIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Send link by e-mail 0 0 1 m_button7 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnSendMail 5 wxEXPAND 1 0 protected 0 5 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Copy to clipboard 0 0 1 m_pCopyClipboard 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCopyClipboard OnKeyUp 5 wxLEFT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_CLOSE &Accept 0 0 1 m_buttonAceptar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAccept OnKeyUp ginkgocadx-3.8.7/cadxcore/main/gui/ginkgocloud/downloadcloudbase.cpp000066400000000000000000000616771314736454600257070ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "downloadcloudbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; OpenGinkgoCloudDialogBase::OpenGinkgoCloudDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 700,350 ), wxDefaultSize ); wxBoxSizer* bSizerPrincipal; bSizerPrincipal = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Ginkgo Cloud") ); bSizerPrincipal->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer11; bSizer11 = new wxBoxSizer( wxVERTICAL ); m_pPanelSuperior = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelSuperior->SetToolTip( _("Open link") ); wxBoxSizer* bSizer81; bSizer81 = new wxBoxSizer( wxVERTICAL ); m_staticText6 = new wxStaticText( m_pPanelSuperior, wxID_ANY, _("File link:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); bSizer81->Add( m_staticText6, 0, wxALL, 5 ); m_pFileLink = new wxTextCtrl( m_pPanelSuperior, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); bSizer81->Add( m_pFileLink, 1, wxALL|wxEXPAND, 5 ); m_pPanelSuperior->SetSizer( bSizer81 ); m_pPanelSuperior->Layout(); bSizer81->Fit( m_pPanelSuperior ); bSizer11->Add( m_pPanelSuperior, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer11 ); m_pBody->Layout(); bSizer11->Fit( m_pBody ); bSizerPrincipal->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer8; bSizer8 = new wxBoxSizer( wxHORIZONTAL ); bSizer8->Add( 0, 0, 1, wxEXPAND, 5 ); m_buttonAceptar = new wxButton( m_pFooter, wxID_OK, _("&Accept"), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonAceptar->SetDefault(); bSizer8->Add( m_buttonAceptar, 0, wxLEFT, 5 ); m_pButtonCancel = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer8->Add( m_pButtonCancel, 0, 0, 5 ); m_pFooter->SetSizer( bSizer8 ); m_pFooter->Layout(); bSizer8->Fit( m_pFooter ); bSizerPrincipal->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizerPrincipal ); this->Layout(); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ) ); m_pHeader->Connect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_pBody->Connect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_pPanelSuperior->Connect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_staticText6->Connect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_pFileLink->Connect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_pFooter->Connect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_buttonAceptar->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OpenGinkgoCloudDialogBase::OnAccept ), NULL, this ); m_buttonAceptar->Connect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_pButtonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OpenGinkgoCloudDialogBase::OnCancel ), NULL, this ); m_pButtonCancel->Connect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); } OpenGinkgoCloudDialogBase::~OpenGinkgoCloudDialogBase() { // Disconnect Events this->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ) ); m_pHeader->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_pBody->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_pPanelSuperior->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_staticText6->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_pFileLink->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_pFooter->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_buttonAceptar->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OpenGinkgoCloudDialogBase::OnAccept ), NULL, this ); m_buttonAceptar->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); m_pButtonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OpenGinkgoCloudDialogBase::OnCancel ), NULL, this ); m_pButtonCancel->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( OpenGinkgoCloudDialogBase::OnKeyUp ), NULL, this ); } GinkgoCloudSearchDialogBase::GinkgoCloudSearchDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 520,300 ), wxDefaultSize ); m_pMainSizer = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Ginkgo Cloud") ); m_pMainSizer->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBodyPanel = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer18; bSizer18 = new wxBoxSizer( wxVERTICAL ); m_pPanelPACS = new TitledPanel( m_pBodyPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelPACS->SetToolTip( _("Search") ); wxBoxSizer* m_pSizerCamposBusqueda; m_pSizerCamposBusqueda = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer32; bSizer32 = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer33; bSizer33 = new wxBoxSizer( wxHORIZONTAL ); m_pPatientLabelStr = new wxStaticText( m_pPanelPACS, wxID_ANY, _("Study"), wxDefaultPosition, wxDefaultSize, 0 ); m_pPatientLabelStr->Wrap( -1 ); m_pPatientLabelStr->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); bSizer33->Add( m_pPatientLabelStr, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxBoxSizer* bSizer23; bSizer23 = new wxBoxSizer( wxHORIZONTAL ); m_pFieldCombo = new wxComboBox( m_pPanelPACS, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0, NULL, wxCB_DROPDOWN|wxCB_READONLY ); m_pFieldCombo->Append( _("Description") ); m_pFieldCombo->Append( _("User name") ); bSizer23->Add( m_pFieldCombo, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pSearchPanel = new wxPanel( m_pPanelPACS, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer271; bSizer271 = new wxBoxSizer( wxHORIZONTAL ); m_pTextControlField = new wxSearchCtrl( m_pSearchPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER ); #ifndef __WXMAC__ m_pTextControlField->ShowSearchButton( true ); #endif m_pTextControlField->ShowCancelButton( false ); bSizer271->Add( m_pTextControlField, 1, wxALL|wxEXPAND, 5 ); m_pLabelRestricted = new wxStaticText( m_pSearchPanel, wxID_ANY, _("PACS acquisition is restricted"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelRestricted->Wrap( -1 ); m_pLabelRestricted->Hide(); bSizer271->Add( m_pLabelRestricted, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pSizerAnimation = new wxBoxSizer( wxHORIZONTAL ); bSizer271->Add( m_pSizerAnimation, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_pSearchPanel->SetSizer( bSizer271 ); m_pSearchPanel->Layout(); bSizer271->Fit( m_pSearchPanel ); bSizer23->Add( m_pSearchPanel, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); bSizer33->Add( bSizer23, 1, wxEXPAND, 5 ); bSizer32->Add( bSizer33, 1, wxEXPAND, 5 ); m_pSizerCamposBusqueda->Add( bSizer32, 0, wxEXPAND, 5 ); wxBoxSizer* bSizer27; bSizer27 = new wxBoxSizer( wxHORIZONTAL ); wxStaticBoxSizer* sbSizer2; sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( m_pPanelPACS, wxID_ANY, _("Date") ), wxVERTICAL ); wxBoxSizer* bSizer17; bSizer17 = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer181; bSizer181 = new wxBoxSizer( wxVERTICAL ); m_pAnyDate = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Any date"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); m_pAnyDate->SetValue( true ); bSizer181->Add( m_pAnyDate, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 2 ); m_pToday = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Today"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer181->Add( m_pToday, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); m_pYesterday = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Yesterday"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer181->Add( m_pYesterday, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 2 ); bSizer17->Add( bSizer181, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer29; bSizer29 = new wxBoxSizer( wxVERTICAL ); m_pLastWeek = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Last 7 days"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer29->Add( m_pLastWeek, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); m_pLastMonth = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Last 30 days"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer29->Add( m_pLastMonth, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); m_pLastThreeMonths = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Last 3 months"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer29->Add( m_pLastThreeMonths, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); bSizer17->Add( bSizer29, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer201; bSizer201 = new wxBoxSizer( wxVERTICAL ); m_pBetween = new wxRadioButton( m_pPanelPACS, wxID_ANY, _("Between:"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer201->Add( m_pBetween, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); wxBoxSizer* bSizer21; bSizer21 = new wxBoxSizer( wxVERTICAL ); m_pTextControlFechaDesde = new wxDatePickerCtrl( m_pPanelPACS, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT|wxDP_DROPDOWN ); bSizer21->Add( m_pTextControlFechaDesde, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 2 ); bSizer201->Add( bSizer21, 0, wxEXPAND|wxLEFT, 5 ); wxBoxSizer* bSizer22; bSizer22 = new wxBoxSizer( wxVERTICAL ); m_pTextControlFechaHasta = new wxDatePickerCtrl( m_pPanelPACS, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT|wxDP_DROPDOWN ); bSizer22->Add( m_pTextControlFechaHasta, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 2 ); bSizer201->Add( bSizer22, 0, wxEXPAND|wxLEFT, 5 ); bSizer17->Add( bSizer201, 0, wxEXPAND, 5 ); sbSizer2->Add( bSizer17, 1, wxEXPAND|wxALL, 5 ); bSizer27->Add( sbSizer2, 1, wxEXPAND|wxRIGHT, 5 ); wxStaticBoxSizer* sbSizer3; sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( m_pPanelPACS, wxID_ANY, _("Modalities") ), wxVERTICAL ); m_pModalitySizer = new wxGridSizer( 0, 5, 0, 0 ); sbSizer3->Add( m_pModalitySizer, 1, wxEXPAND|wxALL, 5 ); bSizer27->Add( sbSizer3, 1, wxEXPAND|wxLEFT, 5 ); m_pSizerCamposBusqueda->Add( bSizer27, 0, wxEXPAND|wxBOTTOM, 5 ); m_pSizerDataGrid = new wxBoxSizer( wxVERTICAL ); m_pSizerCamposBusqueda->Add( m_pSizerDataGrid, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer20; bSizer20 = new wxBoxSizer( wxHORIZONTAL ); bSizer20->Add( 0, 0, 1, wxEXPAND, 5 ); m_pBDescargar = new wxButton( m_pPanelPACS, wxID_ANY, _("Download"), wxDefaultPosition, wxDefaultSize, 0 ); m_pBDescargar->Enable( false ); bSizer20->Add( m_pBDescargar, 0, wxALIGN_BOTTOM|wxALIGN_RIGHT|wxTOP|wxLEFT, 5 ); m_pSizerCamposBusqueda->Add( bSizer20, 0, wxEXPAND, 5 ); m_pPanelPACS->SetSizer( m_pSizerCamposBusqueda ); m_pPanelPACS->Layout(); m_pSizerCamposBusqueda->Fit( m_pPanelPACS ); bSizer18->Add( m_pPanelPACS, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); m_pBodyPanel->SetSizer( bSizer18 ); m_pBodyPanel->Layout(); bSizer18->Fit( m_pBodyPanel ); m_pMainSizer->Add( m_pBodyPanel, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pFooter->Hide(); wxBoxSizer* m_pSizerBotoneraVentana; m_pSizerBotoneraVentana = new wxBoxSizer( wxHORIZONTAL ); m_pSizerBotoneraVentana->Add( 0, 0, 1, wxEXPAND, 5 ); m_pBotonClose = new wxButton( m_pFooter, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); m_pSizerBotoneraVentana->Add( m_pBotonClose, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_pFooter->SetSizer( m_pSizerBotoneraVentana ); m_pFooter->Layout(); m_pSizerBotoneraVentana->Fit( m_pFooter ); m_pMainSizer->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( m_pMainSizer ); this->Layout(); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GinkgoCloudSearchDialogBase::OnClose ) ); this->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ) ); m_pFieldCombo->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnComboField ), NULL, this ); m_pTextControlField->Connect( wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnCancelClick ), NULL, this ); m_pTextControlField->Connect( wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnBusquedaClick ), NULL, this ); m_pTextControlField->Connect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnBusquedaClick ), NULL, this ); m_pAnyDate->Connect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pToday->Connect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pYesterday->Connect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pLastWeek->Connect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pLastMonth->Connect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pLastThreeMonths->Connect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pBetween->Connect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pTextControlFechaDesde->Connect( wxEVT_DATE_CHANGED, wxDateEventHandler( GinkgoCloudSearchDialogBase::OnFechaDesdeDateChanged ), NULL, this ); m_pTextControlFechaDesde->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pTextControlFechaHasta->Connect( wxEVT_DATE_CHANGED, wxDateEventHandler( GinkgoCloudSearchDialogBase::OnFechaHastaDateChanged ), NULL, this ); m_pTextControlFechaHasta->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pBDescargar->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnDescargarClick ), NULL, this ); m_pBotonClose->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnCloseClick ), NULL, this ); } GinkgoCloudSearchDialogBase::~GinkgoCloudSearchDialogBase() { // Disconnect Events this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GinkgoCloudSearchDialogBase::OnClose ) ); this->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ) ); m_pFieldCombo->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnComboField ), NULL, this ); m_pTextControlField->Disconnect( wxEVT_COMMAND_SEARCHCTRL_CANCEL_BTN, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnCancelClick ), NULL, this ); m_pTextControlField->Disconnect( wxEVT_COMMAND_SEARCHCTRL_SEARCH_BTN, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnBusquedaClick ), NULL, this ); m_pTextControlField->Disconnect( wxEVT_COMMAND_TEXT_ENTER, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnBusquedaClick ), NULL, this ); m_pAnyDate->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pToday->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pYesterday->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pLastWeek->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pLastMonth->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pLastThreeMonths->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pBetween->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pTextControlFechaDesde->Disconnect( wxEVT_DATE_CHANGED, wxDateEventHandler( GinkgoCloudSearchDialogBase::OnFechaDesdeDateChanged ), NULL, this ); m_pTextControlFechaDesde->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pTextControlFechaHasta->Disconnect( wxEVT_DATE_CHANGED, wxDateEventHandler( GinkgoCloudSearchDialogBase::OnFechaHastaDateChanged ), NULL, this ); m_pTextControlFechaHasta->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( GinkgoCloudSearchDialogBase::OnKeyDownFormulario ), NULL, this ); m_pBDescargar->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnDescargarClick ), NULL, this ); m_pBotonClose->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( GinkgoCloudSearchDialogBase::OnCloseClick ), NULL, this ); } FileLinkDialogBase::FileLinkDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 650,350 ), wxDefaultSize ); wxBoxSizer* bSizerPrincipal; bSizerPrincipal = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Ginkgo Cloud") ); bSizerPrincipal->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer11; bSizer11 = new wxBoxSizer( wxVERTICAL ); m_pPanelSuperior = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelSuperior->SetToolTip( _("Ginkgo Cloud link") ); wxBoxSizer* bSizer81; bSizer81 = new wxBoxSizer( wxVERTICAL ); m_staticText6 = new wxStaticText( m_pPanelSuperior, wxID_ANY, _("File link:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); bSizer81->Add( m_staticText6, 0, wxALL, 5 ); m_pFileLink = new wxTextCtrl( m_pPanelSuperior, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY ); bSizer81->Add( m_pFileLink, 1, wxALL|wxEXPAND, 5 ); m_staticText7 = new wxStaticText( m_pPanelSuperior, wxID_ANY, _("You can copy and paste link to use it in e-mails and web pages, you have to install Ginkgo CADx to download and visualize it."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText7->Wrap( 490 ); m_staticText7->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 93, 90, false, wxEmptyString ) ); bSizer81->Add( m_staticText7, 0, wxALL, 5 ); m_pPanelSuperior->SetSizer( bSizer81 ); m_pPanelSuperior->Layout(); bSizer81->Fit( m_pPanelSuperior ); bSizer11->Add( m_pPanelSuperior, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer11 ); m_pBody->Layout(); bSizer11->Fit( m_pBody ); bSizerPrincipal->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer8; bSizer8 = new wxBoxSizer( wxHORIZONTAL ); m_button7 = new wxButton( m_pFooter, wxID_ANY, _("Send link by e-mail"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer8->Add( m_button7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); bSizer8->Add( 0, 0, 1, wxEXPAND, 5 ); m_pCopyClipboard = new wxButton( m_pFooter, wxID_ANY, _("Copy to clipboard"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer8->Add( m_pCopyClipboard, 0, 0, 5 ); m_buttonAceptar = new wxButton( m_pFooter, wxID_CLOSE, _("&Accept"), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonAceptar->SetDefault(); bSizer8->Add( m_buttonAceptar, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer8 ); m_pFooter->Layout(); bSizer8->Fit( m_pFooter ); bSizerPrincipal->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizerPrincipal ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_pBody->Connect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); m_pPanelSuperior->Connect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); m_pFileLink->Connect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); m_pFooter->Connect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); m_button7->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FileLinkDialogBase::OnSendMail ), NULL, this ); m_pCopyClipboard->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FileLinkDialogBase::OnCopyClipboard ), NULL, this ); m_pCopyClipboard->Connect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); m_buttonAceptar->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FileLinkDialogBase::OnAccept ), NULL, this ); m_buttonAceptar->Connect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); } FileLinkDialogBase::~FileLinkDialogBase() { // Disconnect Events m_pBody->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); m_pPanelSuperior->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); m_pFileLink->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); m_pFooter->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); m_button7->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FileLinkDialogBase::OnSendMail ), NULL, this ); m_pCopyClipboard->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FileLinkDialogBase::OnCopyClipboard ), NULL, this ); m_pCopyClipboard->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); m_buttonAceptar->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( FileLinkDialogBase::OnAccept ), NULL, this ); m_buttonAceptar->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( FileLinkDialogBase::OnKeyUp ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/ginkgocloud/downloadcloudbase.h000066400000000000000000000144001314736454600253320ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __DOWNLOADCLOUDBASE_H__ #define __DOWNLOADCLOUDBASE_H__ #include #include #include class BodyPanel; class FooterPanel; class HeaderPanel; class TitledPanel; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class OpenGinkgoCloudDialogBase /////////////////////////////////////////////////////////////////////////////// class OpenGinkgoCloudDialogBase : public wxFrame { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; TitledPanel* m_pPanelSuperior; wxStaticText* m_staticText6; wxTextCtrl* m_pFileLink; FooterPanel* m_pFooter; wxButton* m_buttonAceptar; wxButton* m_pButtonCancel; // Virtual event handlers, overide them in your derived class virtual void OnKeyUp( wxKeyEvent& event ) { event.Skip(); } virtual void OnAccept( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); } public: OpenGinkgoCloudDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Open Ginkgo Cloud"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 700,350 ), long style = wxCAPTION|wxCLOSE_BOX|wxFRAME_FLOAT_ON_PARENT|wxRESIZE_BORDER|wxSYSTEM_MENU|wxTAB_TRAVERSAL ); ~OpenGinkgoCloudDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class GinkgoCloudSearchDialogBase /////////////////////////////////////////////////////////////////////////////// class GinkgoCloudSearchDialogBase : public wxDialog { private: protected: wxBoxSizer* m_pMainSizer; HeaderPanel* m_pHeader; BodyPanel* m_pBodyPanel; TitledPanel* m_pPanelPACS; wxStaticText* m_pPatientLabelStr; wxComboBox* m_pFieldCombo; wxPanel* m_pSearchPanel; wxSearchCtrl* m_pTextControlField; wxStaticText* m_pLabelRestricted; wxBoxSizer* m_pSizerAnimation; wxRadioButton* m_pAnyDate; wxRadioButton* m_pToday; wxRadioButton* m_pYesterday; wxRadioButton* m_pLastWeek; wxRadioButton* m_pLastMonth; wxRadioButton* m_pLastThreeMonths; wxRadioButton* m_pBetween; wxDatePickerCtrl* m_pTextControlFechaDesde; wxDatePickerCtrl* m_pTextControlFechaHasta; wxGridSizer* m_pModalitySizer; wxBoxSizer* m_pSizerDataGrid; wxButton* m_pBDescargar; FooterPanel* m_pFooter; wxButton* m_pBotonClose; // Virtual event handlers, overide them in your derived class virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } virtual void OnKeyDownFormulario( wxKeyEvent& event ) { event.Skip(); } virtual void OnComboField( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnBusquedaClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnFechaDesdeDateChanged( wxDateEvent& event ) { event.Skip(); } virtual void OnFechaHastaDateChanged( wxDateEvent& event ) { event.Skip(); } virtual void OnDescargarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCloseClick( wxCommandEvent& event ) { event.Skip(); } public: GinkgoCloudSearchDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Ginkgo Cloud search"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 1024,575 ), long style = wxCAPTION|wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~GinkgoCloudSearchDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class FileLinkDialogBase /////////////////////////////////////////////////////////////////////////////// class FileLinkDialogBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; TitledPanel* m_pPanelSuperior; wxStaticText* m_staticText6; wxTextCtrl* m_pFileLink; wxStaticText* m_staticText7; FooterPanel* m_pFooter; wxButton* m_button7; wxButton* m_pCopyClipboard; wxButton* m_buttonAceptar; // Virtual event handlers, overide them in your derived class virtual void OnKeyUp( wxKeyEvent& event ) { event.Skip(); } virtual void OnSendMail( wxCommandEvent& event ) { event.Skip(); } virtual void OnCopyClipboard( wxCommandEvent& event ) { event.Skip(); } virtual void OnAccept( wxCommandEvent& event ) { event.Skip(); } public: FileLinkDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 650,350 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~FileLinkDialogBase(); }; } // namespace GUI } // namespace GNC #endif //__DOWNLOADCLOUDBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/ginkgocloud/filelinkdialog.cpp000066400000000000000000000050061314736454600251530ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "filelinkdialog.h" #include #include #include
    #include #include GNC::GUI::FileLinkDialog::FileLinkDialog(wxWindow* pParent, std::string fileLink): GNC::GUI::FileLinkDialogBase(pParent) { m_pFileLink->SetValue(wxString::FromUTF8(fileLink.c_str())); wxIcon icono; icono.CopyFromBitmap(GinkgoResourcesManager::Logos::GetLogoGinkgo32x32()); this->SetIcon(icono); } GNC::GUI::FileLinkDialog::~FileLinkDialog() { } void GNC::GUI::FileLinkDialog::OnCopyClipboard(wxCommandEvent& ) { if (wxTheClipboard->Open()) { wxTheClipboard->SetData(new wxTextDataObject(m_pFileLink->GetValue())); wxTheClipboard->Close(); } } void GNC::GUI::FileLinkDialog::OnAccept(wxCommandEvent &) { Close(); } void GNC::GUI::FileLinkDialog::OnKeyUp(wxKeyEvent &evt) { if (evt.GetKeyCode() == WXK_ESCAPE) { Close(); } evt.Skip(); } void GNC::GUI::FileLinkDialog::OnSendMail(wxCommandEvent& ) { std::ostringstream ostr; ostr << "mailto:?Subject=" << _Std("New Ginkgo Cloud study") << "&body="<<_Std("To download the study, paste this url "); ostr <<":\n\n" << m_pFileLink->GetValue().ToUTF8(); ostr <<"\n\n " << _Std("into \"Open Ginkgo Cloud link\" tool of Ginkgo CADx history, or paste it into the address bar of your browser."); std::string url = ostr.str(); wxString wxUrl = wxString::FromUTF8(url.c_str()); wxUrl.Replace(wxT(" "), wxT("%20")); wxUrl.Replace(wxT("\n"), wxT("%0A")); LOG_DEBUG("SendMail", "url: " << wxUrl.ToUTF8()); wxLaunchDefaultBrowser(wxUrl); } ginkgocadx-3.8.7/cadxcore/main/gui/ginkgocloud/filelinkdialog.h000066400000000000000000000023021314736454600246140ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "downloadcloudbase.h" namespace GNC { namespace GUI { class FileLinkDialog: public GNC::GUI::FileLinkDialogBase { public: FileLinkDialog(wxWindow* pParent, std::string fileLink); ~FileLinkDialog(); protected: virtual void OnCopyClipboard(wxCommandEvent& evt); virtual void OnAccept(wxCommandEvent &evt); virtual void OnKeyUp(wxKeyEvent &evt); virtual void OnSendMail(wxCommandEvent& evt); }; } } ginkgocadx-3.8.7/cadxcore/main/gui/ginkgocloud/ginkgocloudsearchdialog.cpp000066400000000000000000000502721314736454600270560ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include "ginkgocloudsearchdialog.h" #include
    #include
    #include
    #include
    #include #include #include "filelinkdialog.h" #include #include #include #include #include #include
    #define SIZE_ICONOS 16 #define STUDY_ICON 0 #define SIZE_ICONOS 16 #define CLOUD_STUDY_UID "studyInstanceUID" #define CLOUD_MD5 "md5File" #define CLOUD_CREATOR_USER_NAME "creatorUsername" #define CLOUD_LAST_MOD_USER_NAME "lastModificationUsername" #define CLOUD_DESCRIPTION "description" #define CLOUD_DATE "creationDate" #define CLOUD_MODALITIES "modalities" #define CLOUD_URL "urlDownload" #define DESCRIPTION_COLUMN 0 #define MODALITY_COLUMN 1 #define CREATOR_USER_NAME_COLUMN 2 #define LAST_MODIFICATOR_USER_NAME_COLUMN 3 #define DATE_COLUMN 4 #define URL_COLUMN 5 #define BUCKET_ID_COLUMN 6 //////////////////////////////////////////////// //--------------------------------------------------------------------------- GNC::GUI::GinkgoCloudSearchDialog* GNC::GUI::GinkgoCloudSearchDialog::Instance() { if (m_pInstance == NULL) { m_pInstance = new GinkgoCloudSearchDialog(GNC::HistoryToolsController::Instance()->GetHistoryPanel()->GetWxWindow()); } return m_pInstance; } void GNC::GUI::GinkgoCloudSearchDialog::FreeInstance() { if(m_pInstance!=NULL) { m_pInstance->Close(); m_pInstance = NULL; } } GNC::GUI::GinkgoCloudSearchDialog* GNC::GUI::GinkgoCloudSearchDialog::m_pInstance = NULL; GNC::GUI::GinkgoCloudSearchDialog::GinkgoCloudSearchDialog(wxWindow* pParent) : GinkgoCloudSearchDialogBase(pParent) { m_pCommand = NULL; //animation m_pAnimation = new wxAnimationCtrl(m_pSearchPanel,wxID_ANY,GinkgoResourcesManager::ProgressBar::GetAniLoading()); m_pAnimation->Hide(); m_pSizerAnimation->Add(m_pAnimation, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); m_pFieldCombo->Select(0); //modalities { const int MaxModalityNumber=20; // Modificar la constante si se añaden o quitan códigos de modalidad std::string modalidades[MaxModalityNumber] = {"CR","CT","DR","DX","IO","MG","MR","NM","OT","PT","RF","RG","SC","OCT","US","XA","XC","ES","ECG","HD"}; for(int i = 0; iAdd( pCheckBox, 0, wxALL, 2 ); m_modalitiesList.push_back(pCheckBox); pCheckBox->Connect( wxEVT_KEY_UP, wxKeyEventHandler( GinkgoCloudSearchDialog::OnKeyDownFormulario ), NULL, this ); } m_pPanelPACS->Layout(); } //datagridview... m_pResultsModel = new wxDataViewListStore(); m_pResultsView = new wxDataViewListCtrl(m_pPanelPACS, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_SINGLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); m_pSizerDataGrid->Add(m_pResultsView, 1, wxEXPAND); m_pResultsView->AssociateModel(m_pResultsModel.get()); // column 0 of the view control: m_pResultsView->AppendColumn( new wxDataViewColumn( _("Description"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ), DESCRIPTION_COLUMN, 370, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pResultsView->AppendColumn( new wxDataViewColumn( _("Modalities"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ), MODALITY_COLUMN, 70, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pResultsView->AppendColumn( new wxDataViewColumn( _("Creator"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ), CREATOR_USER_NAME_COLUMN, 128, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pResultsView->AppendColumn( new wxDataViewColumn( _("Last Modificator"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ), LAST_MODIFICATOR_USER_NAME_COLUMN, 128, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pResultsView->AppendColumn( new wxDataViewColumn( _("Date Time"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ), DATE_COLUMN, 128, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pResultsView->Connect(wxEVT_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler(GinkgoCloudSearchDialog::OnDataSelChanged), NULL, this); m_pResultsView->Connect(wxEVT_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler(GinkgoCloudSearchDialog::OnDataItemActivated), NULL, this); m_pResultsView->Connect(wxEVT_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler(GinkgoCloudSearchDialog::OnDataItemMenu), NULL, this); m_pPanelPACS->Layout(); Layout(); GNC::GCS::ControladorEventos::Instance()->Registrar(this, GNC::GCS::Events::EventoProgresoComando()); } GNC::GUI::GinkgoCloudSearchDialog::~GinkgoCloudSearchDialog() { GNC::CommandController::Instance()->AbortarComandosDeOwner(this); m_pAnimation->Destroy(); } bool GNC::GUI::GinkgoCloudSearchDialog::Show(bool show) { if (show) { LOG_STAT(ANON_STAT_DLG_CLOUD_SEARCH) } if (IsIconized()) { Iconize(false); } //se recarga la lista de servidores pacs if (IsShown()) { Raise(); } return GinkgoCloudSearchDialogBase::Show(show); } //--------------------------------------------------------------------------- //region Eventos de interfaz void GNC::GUI::GinkgoCloudSearchDialog::OnKeyDownFormulario( wxKeyEvent& event ) { if(event.GetKeyCode() == WXK_RETURN || event.GetKeyCode() == WXK_NUMPAD_ENTER) { wxCommandEvent evt; if (m_pTextControlField->IsEnabled()) { OnBusquedaClick(evt); } event.Skip(false); } else { if(event.GetKeyCode() == WXK_ESCAPE) { this->Hide(); event.Skip(false); } } event.Skip(true); } void GNC::GUI::GinkgoCloudSearchDialog::OnFechaDesdeDateChanged( wxDateEvent& /*event*/ ) { m_pBetween->SetValue(true); } void GNC::GUI::GinkgoCloudSearchDialog::OnFechaHastaDateChanged( wxDateEvent& /*event*/ ) { m_pBetween->SetValue(true); } void GNC::GUI::GinkgoCloudSearchDialog::OnCancelClick( wxCommandEvent& ) { GNC::CommandController::Instance()->AbortarComandosDeOwnerAsincrono(this); m_pTextControlField->ShowCancelButton(false); ShowAnimation(false); LimpiarBusquedas(); } void GNC::GUI::GinkgoCloudSearchDialog::OnBusquedaClick( wxCommandEvent& ) { Search(); } void GNC::GUI::GinkgoCloudSearchDialog::Search() { //cancel previous command (if any) m_pTextControlField->ShowCancelButton(false); ShowAnimation(false); GNC::CommandController::Instance()->AbortarComandosDeOwnerAsincrono(this); LimpiarBusquedas(); // std::string fechaDesde(""); std::string fechaHasta(""); if (m_pBetween->GetValue()) { if(m_pTextControlFechaDesde->GetValue().IsValid()) { fechaDesde = std::string(m_pTextControlFechaDesde->GetValue().Format(wxT("%Y-%m-%d")).ToUTF8()); } if(m_pTextControlFechaHasta->GetValue().IsValid()) { fechaHasta = std::string(m_pTextControlFechaHasta->GetValue().Format(wxT("%Y-%m-%d")).ToUTF8()); } } else if (m_pToday->GetValue()) { fechaDesde = fechaHasta = wxDateTime::Now().Format(wxT("%Y-%m-%d")).ToUTF8(); } else if (m_pYesterday->GetValue()) { fechaDesde = wxDateTime::Now().Add(wxDateSpan(0,0,0,-1)).Format(wxT("%Y-%m-%d")).ToUTF8(); } else if (m_pLastWeek->GetValue()) { fechaDesde = wxDateTime::Now().Add(wxDateSpan(0,0,-1,0)).Format(wxT("%Y-%m-%d")).ToUTF8(); } else if (m_pLastMonth->GetValue()) { fechaDesde = wxDateTime::Now().Add(wxDateSpan(0,-1,0,0)).Format(wxT("%Y-%m-%d")).ToUTF8(); } else if (m_pLastThreeMonths->GetValue()) { fechaDesde = wxDateTime::Now().Add(wxDateSpan(0,-3,0,0)).Format(wxT("%Y-%m-%d")).ToUTF8(); } std::string description, userName, modalities; modalities = GetModalities(); if(fechaDesde == "" && fechaHasta == "" && modalities.empty() &&m_pTextControlField->GetValue().size() == 0) { int answer = wxMessageBox(_("Search without parameters could take al long time\nWould you like to continue?"),_("Search"), wxYES_NO , this); if (answer == wxNO) { return; } } std::ostringstream ostrField; if (m_pTextControlField->GetValue().Contains(wxT("*"))) { wxString replaced = m_pTextControlField->GetValue(); replaced.Replace(wxT("*"),wxT("%")); ostrField << replaced.ToUTF8(); } else { ostrField << "%"; ostrField << m_pTextControlField->GetValue().ToUTF8(); ostrField << "%"; } if (m_pFieldCombo->GetValue() == _("Description")) { description = ostrField.str(); } else if (m_pFieldCombo->GetValue() == _("User name")) { userName = ostrField.str();; } std::string bucketId; if(!GNC::GCS::ConfigurationController::Instance()->readStringUser("/GNKPro/GinkgoCloud","bucketId", bucketId) || bucketId.empty()) { bucketId = GINKGO_CLOUD_DEFAULT_BUCKET; } GNC::GCS::CloudFindCommandParams* pParams = new GNC::GCS::CloudFindCommandParams(bucketId, userName, description, GetModalities(), fechaDesde, fechaHasta); GNC::GCS::CloudCommand* pCmd = new GNC::GCS::CloudCommand(pParams); GNC::CommandController::Instance()->ProcessAsync(_Std("Exploring PACS..."),pCmd, this); m_pTextControlField->ShowCancelButton(true); ShowAnimation(true); } std::string GNC::GUI::GinkgoCloudSearchDialog::GetModalities() { std::string modalities; for (TModalitiesVector::iterator it =m_modalitiesList.begin(); it !=m_modalitiesList.end(); ++it) { wxCheckBox* pCheck = dynamic_cast(*it); if(pCheck != NULL) if(pCheck->IsChecked()) { if (modalities == "") { modalities = pCheck->GetLabel().ToUTF8(); } else { modalities.append("//"); modalities.append(pCheck->GetLabel().ToUTF8()); } } } return modalities; } void GNC::GUI::GinkgoCloudSearchDialog::OnCloseClick( wxCommandEvent& /*event*/ ) { Hide(); } void GNC::GUI::GinkgoCloudSearchDialog::OnDescargarClick( wxCommandEvent& /*event*/ ) { AddDescarga(); } void GNC::GUI::GinkgoCloudSearchDialog::OnDataSelChanged(wxDataViewEvent& evt) { wxDataViewItem item = evt.GetItem(); if (item.IsOk()) { m_pBDescargar->Enable(true); } else { m_pBDescargar->Enable(false); } evt.Skip(true); } void GNC::GUI::GinkgoCloudSearchDialog::OnDataItemActivated(wxDataViewEvent& event) { AddDescarga(); event.Skip(true); } void GNC::GUI::GinkgoCloudSearchDialog::OnDataItemMenu(wxDataViewEvent& event) { //clase menu contextual class PopUpMenuDescargar: public wxMenu { public: PopUpMenuDescargar(GinkgoCloudSearchDialog* pDlg) : wxMenu() { m_pDlg = pDlg; wxMenuItem* descargar = new wxMenuItem( this,wxID_ANY,_("Download study")); #ifdef __WXMSW__ descargar->SetBitmaps(GinkgoResourcesManager::Acquisition::GetIcoDownload()); #else descargar->SetBitmap(GinkgoResourcesManager::Acquisition::GetIcoDownload()); #endif Append(descargar); Connect(descargar->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PopUpMenuDescargar::OnDownload ), NULL, this); wxMenuItem* link = new wxMenuItem( this, wxID_ANY, _("Show link...")); Append(link); Connect(link->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PopUpMenuDescargar::OnShowLink ),NULL, this); } ~PopUpMenuDescargar() { m_pDlg = NULL; Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PopUpMenuDescargar::OnDownload ), NULL, this); Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( PopUpMenuDescargar::OnShowLink ), NULL, this); } void OnDownload(wxCommandEvent& ) { if (m_pDlg) { m_pDlg->AddDescarga(); } } void OnShowLink(wxCommandEvent& ) { if (m_pDlg) { m_pDlg->ShowStudyLink(); } } GinkgoCloudSearchDialog* m_pDlg; }; // wxDataViewItem item = event.GetItem(); if(item.IsOk()) { PopUpMenuDescargar pMenu(this); m_pResultsView->PopupMenu(&pMenu); } } // Obtiene el item seleccionado del TreeList de resultados, genera una descarga, la apila y la inicia. void GNC::GUI::GinkgoCloudSearchDialog::AddDescarga() { wxDataViewItem selection = m_pResultsView->GetSelection(); if(selection.IsOk()) { wxVariant url; m_pResultsModel->GetValue(url, selection, URL_COLUMN); GNC::GCS::CloudGetCommandParams* pParams = new GNC::GCS::CloudGetCommandParams(std::string(url.GetString().ToUTF8()), true); GNC::GCS::CloudCommand* pCmd = new GNC::GCS::CloudCommand(pParams); GNC::CommandController::Instance()->ProcessAsync("Download", pCmd, NULL); } } void GNC::GUI::GinkgoCloudSearchDialog::ShowStudyLink() { wxDataViewItem selection = m_pResultsView->GetSelection(); if(selection.IsOk()) { wxVariant url; m_pResultsModel->GetValue(url, selection, URL_COLUMN); GNC::GUI::FileLinkDialog* dlg = new GNC::GUI::FileLinkDialog(this, std::string(url.GetString().ToUTF8())); dlg->Show(); } } void GNC::GUI::GinkgoCloudSearchDialog::ShowAnimation(bool show) { if (show != m_pAnimation->IsShown()) { m_pAnimation->Show(show); if (show) { m_pAnimation->Play(); } else { m_pAnimation->Stop(); } m_pTextControlField->ShowCancelButton(show); m_pSearchPanel->Layout(); } } void GNC::GUI::GinkgoCloudSearchDialog::LimpiarBusquedas() { m_pResultsModel->DeleteAllItems(); } //endregion //--------------------------------------------------------------------------- //region realizacion de la interfaz IComandoPACSNotificador void GNC::GUI::GinkgoCloudSearchDialog::LoadResults(const std::string& bucketId, const GNC::GCS::CloudFindCommandParams::Results& results) { m_pTextControlField->ShowCancelButton(false); ShowAnimation(false); wxVector data; for (GNC::GCS::CloudFindCommandParams::Results::const_iterator itTuples = results.begin(); itTuples != results.end(); ++itTuples) { const GNC::GCS::CloudFindCommandParams::ResultTuple& tuple = (*itTuples); data.clear(); if (tuple.find(CLOUD_DESCRIPTION) != tuple.end()) { data.push_back(wxString::FromUTF8(tuple.find(CLOUD_DESCRIPTION)->second.c_str())); } else { data.push_back(_("?")); } if (tuple.find(CLOUD_MODALITIES) != tuple.end()) { data.push_back(wxString::FromUTF8(tuple.find(CLOUD_MODALITIES)->second.c_str())); } else { data.push_back( _("?")); } if (tuple.find(CLOUD_CREATOR_USER_NAME) != tuple.end()) { data.push_back(wxString::FromUTF8(tuple.find(CLOUD_CREATOR_USER_NAME)->second.c_str())); } else { data.push_back(_("?")); } if (tuple.find(CLOUD_CREATOR_USER_NAME) != tuple.end()) { data.push_back(wxString::FromUTF8(tuple.find(CLOUD_LAST_MOD_USER_NAME)->second.c_str())); } else { data.push_back(_("?")); } if (tuple.find(CLOUD_DATE) != tuple.end()) { wxDateTime wxDate; wxString dateStr = wxString::FromUTF8(tuple.find(CLOUD_DATE)->second.c_str()); wxDate.ParseFormat( dateStr, wxT("%Y-%m-%d %H:%M:%S"), wxDefaultDateTime); if(wxDate.IsValid()) { dateStr = wxString(wxDate.Format(_("%m/%d/%Y %H:%M:%S"), wxDateTime::TimeZone(wxDateTime::GMT1))); } data.push_back( dateStr); } if (tuple.find(CLOUD_URL) != tuple.end()) { data.push_back( wxString::FromUTF8(tuple.find(CLOUD_URL)->second.c_str())); } data.push_back(wxString::FromUTF8(bucketId.c_str())); m_pResultsModel->AppendItem(data); } } void GNC::GUI::GinkgoCloudSearchDialog::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { GNC::GCS::Events::EventoProgresoComando* pEvt = dynamic_cast (evt); if (pEvt == NULL || pEvt->GetComando() == NULL) { return; } switch (pEvt->GetTipo()) { case GNC::GCS::Events::EventoProgresoComando::TEP_Iniciado: break; case GNC::GCS::Events::EventoProgresoComando::TEP_Progreso: break; case GNC::GCS::Events::EventoProgresoComando::TEP_Unknown: break; case GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado: GNC::GCS::IComando* pCmd = pEvt->GetComando(); if (pCmd->GetOwner() == this && !pCmd->EstaAbortado()) { GNC::GCS::CloudFindCommandParams* pParams = dynamic_cast(pCmd->GetParams()); if (pParams != NULL) { //load results... LoadResults(pParams->m_bucketId, pParams->m_pResults); } } break; } } ginkgocadx-3.8.7/cadxcore/main/gui/ginkgocloud/ginkgocloudsearchdialog.h000066400000000000000000000066351314736454600265270ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include #include "downloadcloudbase.h" #include #include class wxAnimationCtrl; class wxDataViewListCtrl; class wxDataViewListStore; namespace GNC { namespace GCS { class CloudCommand; } namespace GUI { class GinkgoCloudSearchDialog: public GinkgoCloudSearchDialogBase, public GNC::GCS::IEventsObserver { public: static GinkgoCloudSearchDialog* Instance(); static void FreeInstance(); GinkgoCloudSearchDialog(wxWindow* pParent); ~GinkgoCloudSearchDialog(); virtual bool Show(bool show = true); //--------------------------------------------------------------------------- //region Eventos de interfaz virtual void OnKeyDownFormulario( wxKeyEvent& event ); virtual void OnFechaDesdeDateChanged( wxDateEvent& event ); virtual void OnFechaHastaDateChanged( wxDateEvent& event ); virtual void OnBusquedaClick( wxCommandEvent& event ); virtual void Search(); virtual void OnCancelClick( wxCommandEvent& event); std::string GetModalities(); virtual void OnCloseClick( wxCommandEvent& event ); virtual void OnDescargarClick( wxCommandEvent& event); virtual void OnDataSelChanged(wxDataViewEvent& evt); virtual void OnDataItemActivated(wxDataViewEvent& evt); virtual void OnDataItemMenu(wxDataViewEvent& evt); //--------------------------------------------------------------------------- //region Helpers void AddDescarga(); void ShowStudyLink(); void ShowAnimation(bool show); void LimpiarBusquedas(); void LoadResults(const std::string& bucketId, const GNC::GCS::CloudFindCommandParams::Results& results); //endregion //--------------------------------------------------------------------------- //para enterarse si ha parado un comando... virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt); // private: static GinkgoCloudSearchDialog* m_pInstance; wxDataViewListCtrl* m_pResultsView; wxObjectDataPtr m_pResultsModel; wxAnimationCtrl* m_pAnimation; GNC::GCS::CloudCommand* m_pCommand; bool m_reverseOrder; GNC::GCS::ILockable m_TreeListResultadosLocker; // Necesario para evitar problemas con el treelistcontrol. typedef std::list TModalitiesVector; TModalitiesVector m_modalitiesList; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/ginkgocloud/openginkgoclouddialog.cpp000066400000000000000000000047111314736454600265470ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "openginkgoclouddialog.h" #include #include
    #include #include GNC::GUI::OpenGinkgoCloudDialog::OpenGinkgoCloudDialog(wxWindow* pParent): GNC::GUI::OpenGinkgoCloudDialogBase(pParent) { wxIcon icono; icono.CopyFromBitmap(GinkgoResourcesManager::Logos::GetLogoGinkgo32x32()); this->SetIcon(icono); m_pFileLink->SetFocus(); } GNC::GUI::OpenGinkgoCloudDialog::~OpenGinkgoCloudDialog() { } void GNC::GUI::OpenGinkgoCloudDialog::OnAccept(wxCommandEvent &) { wxString link = m_pFileLink->GetValue().Trim(true).Trim(false); if (!link.StartsWith(wxT("ginkgocadx://cloud:"))) { wxMessageBox(_("Invalid link"), wxT("Ginkgo Cloud"), wxICON_WARNING|wxOK); return; } else { std::string stdLink(link.SubString(19, link.size()-1).ToUTF8()); //call to command GNC::GCS::CloudGetCommandParams* pParams = new GNC::GCS::CloudGetCommandParams(stdLink, true); GNC::GCS::CloudCommand* pCmd = new GNC::GCS::CloudCommand(pParams); GNC::CommandController::Instance()->ProcessAsync("Downloading...", pCmd, NULL); // Close(); } } void GNC::GUI::OpenGinkgoCloudDialog::OnCancel(wxCommandEvent& ) { Close(); } void GNC::GUI::OpenGinkgoCloudDialog::OnKeyUp(wxKeyEvent &evt) { if (evt.GetKeyCode() == WXK_ESCAPE) { Close(); } else if (evt.GetKeyCode() == WXK_NUMPAD_ENTER || evt.GetKeyCode() == WXK_RETURN) { wxCommandEvent evt; OnAccept(evt); } evt.Skip(); } ginkgocadx-3.8.7/cadxcore/main/gui/ginkgocloud/openginkgoclouddialog.h000066400000000000000000000022131314736454600262070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "downloadcloudbase.h" namespace GNC { namespace GUI { class OpenGinkgoCloudDialog: public GNC::GUI::OpenGinkgoCloudDialogBase { public: OpenGinkgoCloudDialog(wxWindow* pParent); ~OpenGinkgoCloudDialog(); protected: virtual void OnCancel(wxCommandEvent& evt); virtual void OnAccept(wxCommandEvent &evt); virtual void OnKeyUp(wxKeyEvent &evt); }; } } ginkgocadx-3.8.7/cadxcore/main/gui/ginkgocloud/wxtreelistctrlcloud.h000066400000000000000000000123521314736454600257730ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define DESCRIPTION_COLUMN 0 #define MODALITY_COLUMN 1 #define CREATOR_USER_NAME_COLUMN 2 #define LAST_MODIFICATOR_USER_NAME_COLUMN 3 #define DATE_COLUMN 4 #define URL_COLUMN 5 #define BUCKET_ID_COLUMN 6 class wxTreeListCtrlCloud : public wxTreeListCtrl { public: wxTreeListCtrlCloud(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTR_DEFAULT_STYLE, const wxValidator &validator = wxDefaultValidator, const wxString& name = wxTreeListCtrlNameStr ) : wxTreeListCtrl(parent, id, pos, size, style, validator, name) { } ~wxTreeListCtrlCloud() {} virtual int OnCompareItems (const wxTreeItemId& item1, const wxTreeItemId& item2) { wxTreeItemId root = GetRootItem(); if (item1.IsOk() && item2.IsOk()) { //alphabetically no case sensitive int descCompare = GetItemText(item1).CompareTo(GetItemText(item2), wxString::ignoreCase); if (descCompare !=0) { return descCompare; } else { //date compare... wxDateTime date1,date2; date1.ParseFormat(GetItemText(item1, DATE_COLUMN), _("%m/%d/%Y %H:%M:%S")); date2.ParseFormat(GetItemText(item2, DATE_COLUMN), _("%m/%d/%Y %H:%M:%S")); if (date1.IsValid() && date2.IsValid()) { wxTimeSpan diff = date1.Subtract(date2); if (diff.IsPositive()) { return 1; } else { return -1; } } else { return 0; } } } return wxTreeListCtrl::OnCompareItems(item1, item2); } virtual int OnCompareItems (const wxTreeItemId& item1, const wxTreeItemId& item2, int column) { wxTreeItemId root = GetRootItem(); if (item1.IsOk() && item2.IsOk() && column == DATE_COLUMN) { if (GetItemParent(item1) == root && GetItemParent(item2) == root) { //first case patient level: //alphabetically no case sensitive return wxTreeListCtrl::OnCompareItems(item1, item2, column); } else { //study and series level //date compare... wxDateTime date1,date2; date1.ParseFormat(GetItemText(item1, DATE_COLUMN), _("%m/%d/%Y %H:%M:%S")); date2.ParseFormat(GetItemText(item2, DATE_COLUMN), _("%m/%d/%Y %H:%M:%S")); if (date1.IsValid() && date2.IsValid()) { wxTimeSpan diff = date1.Subtract(date2); if (diff.IsPositive()) { return 1; } else { return -1; } } else { return 0; } } } return wxTreeListCtrl::OnCompareItems(item1, item2, column); } }; ginkgocadx-3.8.7/cadxcore/main/gui/history3/000077500000000000000000000000001314736454600207505ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/history3/HistoryPanel3.fbp000066400000000000000000012631171314736454600241600ustar00rootroot00000000000000 C++ 1 source_name 0 0 res UTF-8 connect historypanel3base 1000 none 1 HistoryPanel3 "GNC" "GUI" . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 800,600 HistoryPanel3Base 800,600 wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Medical history wxTAB_TRAVERSAL 1 OnClose OnHistoryPanelIdle 1 1 0 wxID_ANY m_pMenuBar public m_pMainSizer wxVERTICAL none 5 wxEXPAND 0 m_pSizerToolBar wxVERTICAL protected 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pSearchPanel 1 protected 1 Resizable 1 ; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer20 wxVERTICAL none 5 wxEXPAND 1 1 wxBOTH 0 0,1 0 m_pSizerCamposBusqueda wxFLEX_GROWMODE_SPECIFIED none 2 0 2 wxEXPAND 1 m_pPatientSearchSizer wxHORIZONTAL none 5 wxEXPAND 1 bSizer33 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,92,-1,70,0 0 0 wxID_ANY Patient 0 0 1 m_pPatientLabelStr 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPatientCombo 1 protected 1 Resizable -1 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Advanced search 0 0 1 m_pAdvancedSearchButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnAdvancedSearchToggled 5 wxEXPAND | wxALL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 1 wxID_ANY 0 0 1 m_pAdvancedSearchPanel 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL m_pAdvancedSearchSizer wxHORIZONTAL none 5 wxEXPAND|wxRIGHT 1 wxID_ANY Acquisition date sbSizer2 wxVERTICAL none 5 wxEXPAND|wxALL 1 bSizer17 wxHORIZONTAL none 5 wxEXPAND 1 bSizer181 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Any date 0 0 1 m_pAnyDate 1 protected 1 Resizable 1 wxRB_GROUP 0 wxFILTER_NONE wxDefaultValidator 1 OnKeyDownFormulario OnSearchChange 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Today AM 0 0 1 m_pTodayAM 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario OnSearchChange 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Today PM 0 0 1 m_pTodayPM 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario OnSearchChange 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Today 0 0 1 m_pToday 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario OnSearchChange 5 wxEXPAND 1 bSizer29 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Yesterday 0 0 1 m_pYesterday 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario OnSearchChange 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Last 7 days 0 0 1 m_pLastWeek 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario OnSearchChange 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Last 30 days 0 0 1 m_pLastMonth 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario OnSearchChange 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Last 3 months 0 0 1 m_pLastThreeMonths 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario OnSearchChange 5 wxEXPAND 0 bSizer201 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Between: 0 0 1 m_pBetween 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 OnKeyDownFormulario OnSearchChange 5 wxEXPAND|wxLEFT 0 bSizer21 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTextControlFechaDesde 1 protected 1 Resizable 1 wxDP_DEFAULT|wxDP_DROPDOWN 0 wxFILTER_NONE wxDefaultValidator OnDateChanged OnKeyDownFormulario 5 wxEXPAND|wxLEFT 0 bSizer22 wxVERTICAL none 2 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTextControlFechaHasta 1 protected 1 Resizable 1 wxDP_DEFAULT|wxDP_DROPDOWN 0 wxFILTER_NONE wxDefaultValidator OnDateChanged OnKeyDownFormulario 5 wxEXPAND|wxLEFT 1 wxID_ANY Modalities sbSizer3 wxVERTICAL none 5 wxEXPAND|wxALL 1 5 0 m_pModalitySizer protected 5 0 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 20 0 1 m_splitter1 1 protected 1 Resizable 0.0 0 -1 1 wxSPLIT_HORIZONTAL wxSP_3D 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,100 1 m_pPanelResults 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL m_pTreeListSizer wxVERTICAL protected 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,100 1 m_pPanelPreviews 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL bSizer71 wxHORIZONTAL none 5 wxEXPAND 20 1 1 1 1 1 0 wxThumbnailCtrl 1 m_pThumbnails = new wxThumbnailCtrl(m_pPanelPreviews, -1, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL|wxTH_MULTIPLE_SELECT); 1 wxThumbnailCtrl* m_pThumbnails; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/thumbnailctrl/thumbnailctrl.h> 0 0 1 m_pThumbnails 1 protected 1 Resizable 1 0 5 wxEXPAND 18 1 1 1 1 1 0 vtkSmartPointer<wxVTKRenderWindowInteractor> 1 ViewInteractor2D = new wxVTKRenderWindowInteractor(m_pPanelPreviews, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxFULL_REPAINT_ON_RESIZE, wxT("")); ViewImage2D = vtkSmartPointer<vtkGinkgoImageViewer> ::New(); vtkSmartPointer<vtkRenderer> rend1 = vtkSmartPointer<vtkRenderer>::New(); ViewImage2D->SetRenderWindow ( this->ViewInteractor2D->GetRenderWindow() ); ViewImage2D->SetRenderer (rend1); 1 vtkSmartPointer<wxVTKRenderWindowInteractor> ViewInteractor2D; vtkSmartPointer<vtkGinkgoImageViewer> ViewImage2D; 0 Dock 0 Left 1 1 0 0 wxID_ANY #undef __DEPRECATED #include <vtkRenderer.h> #include <vtkSmartPointer.h> #include <wxVTKRenderWindowInteractor.h> #include <vtk/vtkginkgoimageviewer.h> 0 0 1 ViewInteractor2D 1 protected 1 Resizable 1 0 5 wxEXPAND 18 1 1 1 1 0,0,0 1 0 1 1 0 Dock 0 Left 1 1 0 1 wxID_ANY 0 0 1 m_pHideInteractorPanel 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 550,220 ConfirmDeleteDialogBase -1,-1 wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Confirm removal bSizer5 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_body 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer22 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pTitled 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Confirm removal wxTAB_TRAVERSAL bSizer23 wxVERTICAL none 5 wxEXPAND 1 0 protected 0 5 wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Are you sure you want to delete 0 0 1 m_pLabelEliminar 1 protected 1 Resizable 1 0 450 5 wxEXPAND 1 0 protected 0 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Remove 0 0 1 m_pEliminar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEliminarClick 5 wxLEFT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_pCancelar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCancelarClick 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY 500,350 OpenWithDialogBase -1,-1 wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Open With ... bSizer2 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer15 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelTitulo 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Choose the view you want to use to open file/s wxTAB_TRAVERSAL bSizer16 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pListaVistas 1 protected 1 Resizable 1 wxLB_SINGLE 0 wxFILTER_NONE wxDefaultValidator OnAceptarClick 5 wxTOP 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Always use this view to open these files 0 0 1 m_pCheckUtilizarSiempre 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer3 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Accept 0 0 1 m_button3 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnAceptarClick 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button4 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 520,250 SynchronizeDialogBase wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Synchronize files bSizer15 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelMessage 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Synchronize files wxTAB_TRAVERSAL bSizer4 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY There are files that has to be downloaded to local database before executing this action, do you want to synchornize files now? 0 0 1 m_pLabel 1 protected 1 Resizable 1 0 -1 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer16 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Synchronize 0 0 1 m_button4 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnSynchronize 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button5 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/history3/confirmdeletedialog.h000066400000000000000000000030651314736454600251250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "historypanel3base.h" #include //----------DIALOGO CONFIRMAR ELIMINAR...------------- namespace GNC { namespace GUI { class ConfirmDeleteDialog:public ConfirmDeleteDialogBase { public: ConfirmDeleteDialog(wxWindow* parent, const wxString& label):ConfirmDeleteDialogBase(parent) { m_pLabelEliminar->SetLabel(m_pLabelEliminar->GetLabel() + label + _(" from History?")); m_pTitled->Layout(); m_body->Layout(); Layout(); }; ~ConfirmDeleteDialog() { }; void OnEliminarClick(wxCommandEvent &) { EndModal(wxOK); } void OnCancelarClick(wxCommandEvent &) { EndModal(wxCANCEL); } protected: }; }; }; ginkgocadx-3.8.7/cadxcore/main/gui/history3/historypanel3.cpp000066400000000000000000001644701314736454600242740ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include #include #include #include "historypanel3.h" #include "wxhistoryimagethumbnail.h" #include "historytablemodel.h" #include "historytoolmenu.h" #include "confirmdeletedialog.h" #include "openwithdialog.h" #include #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include #include #include
    #include
    #include
    #include #include #include #include #include #include #include #include #include #include #include #include
    #include
    #define SIZE_THUMBNAILS 76 #define HISTORY_WINDOW_ID "GinkgoCADxHistory" ////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { class ReloadHistoryTimer:public wxTimer { public: ReloadHistoryTimer(HistoryPanel3* pHistory) { m_pHistory = pHistory; } ~ReloadHistoryTimer() { m_pHistory=NULL; } virtual void Notify() { m_pHistory->RefreshSearch(true); } HistoryPanel3* m_pHistory; }; /////////////////////////////////////////////////////////////////////////////////////////////////////// class wxPatientData: public wxClientData { public: wxPatientData(const GNC::GCS::HistoryController::PatientModel& patientModel):wxClientData() { m_PatientModel = patientModel; } ~wxPatientData() { } GNC::GCS::HistoryController::PatientModel m_PatientModel; }; /////////////////////////////////////////////// class wxPopUpMenuThumbnails: public wxMenu { public: wxPopUpMenuThumbnails(GNC::GUI::HistoryPanel3* historyPanel, long seriesPk) :wxMenu(), SeriesPk(seriesPk), HistoryPanel(historyPanel) { if (seriesPk != -1) { wxMenuItem* pItem = Append(wxID_ANY, _("Open Series")); Connect(pItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxPopUpMenuThumbnails::OnOpenMenu), NULL, this); pItem = Append(wxID_ANY, _("Open Series with ..")); Connect(pItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxPopUpMenuThumbnails::OnOpenWithMenu), NULL, this); AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(this, this, GNC::GCS::IHistoryTool::TFamily_Open); if (GetMenuItemCount() > 0 && !GetMenuItems().back()->IsSeparator()) { AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(this, this, GNC::GCS::IHistoryTool::TFamily_Q_R); if (GetMenuItemCount() > 0 && !GetMenuItems().back()->IsSeparator()) { AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(this, this, GNC::GCS::IHistoryTool::TFamily_Dicomize); } ~wxPopUpMenuThumbnails() { Disconnect(wxID_ANY,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler( wxPopUpMenuThumbnails::OnOpenMenu),NULL,this); Disconnect(wxID_ANY,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler( wxPopUpMenuThumbnails::OnOpenWithMenu),NULL,this); } void OnOpenMenu(wxCommandEvent& ) { HistoryPanel->OpenSeriesOrStudy(SeriesPk, true,!GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "reutilize_study")); } void OnOpenWithMenu(wxCommandEvent& ) { HistoryPanel->OpenSeriesOrStudyWith(SeriesPk, true); } long SeriesPk; GNC::GUI::HistoryPanel3* HistoryPanel; }; } } //--------------------------------------------------------------------------- GNC::GUI::HistoryPanel3* GNC::GUI::HistoryPanel3::Instance() { if (m_pInstance == NULL) { m_pInstance = new HistoryPanel3(GNC::Entorno::Instance()->GetVentanaRaiz()); } return m_pInstance; } void GNC::GUI::HistoryPanel3::FreeInstance() { if(m_pInstance!=NULL) { m_pInstance->Close(); m_pInstance = NULL; } } GNC::GUI::HistoryPanel3* GNC::GUI::HistoryPanel3::m_pInstance = NULL; GNC::GUI::HistoryPanel3::HistoryPanel3(wxWindow* pParent) : HistoryPanel3Base(pParent), Loader(new GNC::StreamingLoader()), m_RefreshOnIdle(false) { //load attributes GNC::GCS::WindowAttributesController::LoadWindowAttributes(HISTORY_WINDOW_ID, this, false); // m_pTimerReload = new ReloadHistoryTimer(this); ViewImage2D->IImagePropertiesProxy = Loader; ViewImage2D->SetInputConnection(Loader->GetOutputPort()); ViewImage2D->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_WITH_SELECT_INTERACTION); GinkgoInteractorStyleImage2D* pInteractor = GinkgoInteractorStyleImage2D::SafeDownCast(ViewImage2D->GetInteractorStyle().GetPointer()); if (pInteractor != NULL) { pInteractor->SetPreviewMode(true); } wxIcon icono; icono.CopyFromBitmap(GinkgoResourcesManager::History::GetIcoHistorialOpen()); this->SetIcon(icono); m_pStatusBar = new GNC::GUI::StatusBarProgreso(this, m_pPanelPreviews, false); SetStatusBar(m_pStatusBar); wxBitmap bmp; //modalities { const int MaxModalityNumber=20; // Modificar la constante si se añaden o quitan códigos de modalidad std::string modalidades[MaxModalityNumber] = {"CR","CT","DR","DX","IO","MG","MR","NM","OT","PT","RF","RG","SC","OCT","US","XA","XC","ES","ECG","HD"}; for(int i = 0; iAdd( pCheckBox, 0, wxALL, 2 ); m_modalitiesList.push_back(pCheckBox); pCheckBox->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( HistoryPanel3::OnSearchChange ), NULL, this ); } } m_pHistoryTableView = new wxDataViewCtrl( m_pPanelResults, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_MULTIPLE|wxDV_ROW_LINES); m_pTreeListSizer->Add(m_pHistoryTableView, 1, wxEXPAND); m_pHistoryTableModel = new HistoryTableModel(); m_pHistoryTableView->AssociateModel(m_pHistoryTableModel.get()); //columns... m_pHistoryTableView->AppendColumn(new wxDataViewColumn(wxEmptyString, new wxDataViewBitmapRenderer( wxT("wxIcon"), wxDATAVIEW_CELL_INERT ),COL_ICON, 50, wxALIGN_CENTER)); m_pHistoryTableView->AppendColumn(new wxDataViewColumn(_("Patient name"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ),COL_PATIENT_NAME, 330, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pHistoryTableView->AppendColumn(new wxDataViewColumn(_("Patient id"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ),COL_PATIENT_ID, 100, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pHistoryTableView->AppendColumn(new wxDataViewColumn(_("Age"), new wxDataViewTextRenderer( wxT("long"), wxDATAVIEW_CELL_INERT ),COL_AGE, 30, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pHistoryTableView->AppendColumn(new wxDataViewColumn(_("Modality"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ),COL_MODALITY, 60, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pHistoryTableView->AppendColumn(new wxDataViewColumn(_("Date acquired"), new wxDataViewTextRenderer(wxT("string"), wxDATAVIEW_CELL_INERT),COL_DATE_TIME_ACQUIRED, 120, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pHistoryTableView->AppendColumn(new wxDataViewColumn(_("Description"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ),COL_DESCRIPTION, 110, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pHistoryTableView->AppendColumn(new wxDataViewColumn(_("Date added"), new wxDataViewTextRenderer(wxT("string"), wxDATAVIEW_CELL_INERT),COL_DATE_TIME_ADDED, 120, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pHistoryTableView->AppendColumn(new wxDataViewColumn(_("Accession number"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ),COL_ACCNUMBER, 128, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); // m_pToolBar = new HistoryToolMenu(this); m_pSizerToolBar->Insert(0, m_pToolBar, 0, wxEXPAND, 0); m_pToolBar->Show(); m_pThumbnails->SetThumbnailImageSize(wxSize(SIZE_THUMBNAILS, SIZE_THUMBNAILS)); m_pThumbnails->SetBackgroundColour(wxColour(100,100,100)); m_pThumbnails->SetThumbnailMargin(0); m_pThumbnails->SetThumbnailTextHeight(0); m_pHistoryTableView->Connect(wxEVT_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler( HistoryPanel3::OnTreeItemMenu ), NULL, this); m_pHistoryTableView->Connect(wxEVT_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( HistoryPanel3::OnTreeItemActivated ), NULL, this); m_pHistoryTableView->Connect(wxEVT_DATAVIEW_SELECTION_CHANGED, wxDataViewEventHandler( HistoryPanel3::OnTreeSelChanged ), NULL, this); m_pHistoryTableView->Connect(wxEVT_CHAR, wxKeyEventHandler( HistoryPanel3::OnTreeKeyDown), NULL, this); m_pThumbnails->Connect(wxEVT_COMMAND_THUMBNAIL_ITEM_SELECTED,wxThumbnailHandler(HistoryPanel3::OnThumbnailSelected),NULL,this); m_pThumbnails->Connect(wxEVT_COMMAND_THUMBNAIL_LEFT_DCLICK,wxThumbnailHandler(HistoryPanel3::OnThumbnailDClick),NULL,this); m_pThumbnails->Connect(wxEVT_COMMAND_THUMBNAIL_RIGHT_CLICK, wxThumbnailHandler(HistoryPanel3::OnThumbnailRClick), NULL, this); m_pPatientCombo->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( HistoryPanel3::OnSearchChange ), NULL, this ); m_pPatientCombo->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( HistoryPanel3::OnSearchChange ), NULL, this ); GNC::GCS::ControladorEventos::Instance()->Registrar(this, GNC::GCS::Events::EventoProgresoComando()); m_pSearchPanel->Layout(); Layout(); SetDropTarget(new GNC::GUI::DropTargetMainWindow()); } GNC::GUI::HistoryPanel3::~HistoryPanel3() { delete m_pTimerReload; GNC::GCS::Permisos::EstadoPermiso estado = GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "anonymous_history"); if (estado) { GNC::GCS::HistoryController::Instance()->EmptyHistory(true); } ViewImage2D->Detach(); //necesario para que no haga un doble delete // ViewInteractor2D->Reparent(NULL); ViewInteractor2D->Delete(); //save window attributes GNC::GCS::WindowAttributesController::SaveWindowAttributes(HISTORY_WINDOW_ID, this); } bool GNC::GUI::HistoryPanel3::Show(bool show) { if (show) { LOG_STAT(ANON_STAT_DLG_HISTORY); } return GNC::GUI::HistoryPanel3Base::Show(show); } void GNC::GUI::HistoryPanel3::ReloadHistory() { ReloadCombos(false); RefreshSearch(true); } void GNC::GUI::HistoryPanel3::ReloadToolBar() { m_pToolBar->Reload(); //reload menus.. while (m_pMenuBar->GetMenuCount() > 0) delete m_pMenuBar->Remove(0); wxMenu* pMenuAcquire = new wxMenu(); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(this, pMenuAcquire, GNC::GCS::IHistoryTool::TFamily_Open); if (pMenuAcquire->GetMenuItemCount() > 0 && !pMenuAcquire->GetMenuItems().back()->IsSeparator()) { pMenuAcquire->AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(this, pMenuAcquire, GNC::GCS::IHistoryTool::TFamily_Q_R); if (pMenuAcquire->GetMenuItemCount() >0) { m_pMenuBar->Append( pMenuAcquire, _("Acquire") ); } else { delete pMenuAcquire; } wxMenu* pMenuDicomize = new wxMenu(); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(this, pMenuDicomize, GNC::GCS::IHistoryTool::TFamily_Dicomize); if (pMenuDicomize->GetMenuItemCount() >0) { m_pMenuBar->Append( pMenuDicomize, _("Dicomize") ); } else { delete pMenuDicomize; } wxMenu* pMenuTools = new wxMenu(); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(this, pMenuTools, GNC::GCS::IHistoryTool::TFamily_Delete); if (pMenuTools->GetMenuItemCount() > 0 && !pMenuTools->GetMenuItems().back()->IsSeparator()) { pMenuTools->AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(this, pMenuTools, GNC::GCS::IHistoryTool::TFamily_ShowMetadata); if (pMenuTools->GetMenuItemCount() >0) { m_pMenuBar->Append( pMenuTools, _("Tools") ); } else { delete pMenuTools; } wxMenu* pMenuExport = new wxMenu(); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(this, pMenuExport, GNC::GCS::IHistoryTool::TFamily_Send); if (pMenuExport->GetMenuItemCount() > 0 && !pMenuExport->GetMenuItems().back()->IsSeparator()) { pMenuExport->AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(this, pMenuExport, GNC::GCS::IHistoryTool::TFamily_Export); if (pMenuExport->GetMenuItemCount() >0) { m_pMenuBar->Append( pMenuExport, _("Export") ); } else { delete pMenuExport; } } void GNC::GUI::HistoryPanel3::ReloadCombos(bool checkPurgue) { if (checkPurgue) { //si es preciso limpiar historial... GNC::GCS::Permisos::EstadoPermiso estado = GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "anonymous_history"); if (estado) { GNC::GCS::HistoryController::Instance()->EmptyHistory(true); } } //combo box pacientes GNC::GCS::HistoryController::PatientModelList listaPacientes; GNC::GCS::HistoryController::Instance()->GetAllPatients(listaPacientes); m_pPatientCombo->Clear(); //m_pPatientCombo->Append(_("All patients"), GinkgoResourcesManager::History::GetIcoAllPatients()); m_pPatientCombo->Append(_("All patients")); RefreshPatientFilter(); if (!m_patientFilter.IsEnabled()) { m_pPatientCombo->Select(0); } /* for (GNC::GCS::HistoryController::PatientModelList::iterator it = listaPacientes.begin(); it != listaPacientes.end(); ++it) { std::ostringstream ostr; ostr << (*it).name << " (" << (*it).id << ")"; wxPatientData* pData = new wxPatientData((*it)); int indice = -1; if ((*it).sex == 'M'){ indice = m_pPatientCombo->Append(wxString::FromUTF8(ostr.str().c_str()), GinkgoResourcesManager::History::GetIcoHombre(), pData); }else if((*it).sex =='F'){ indice = m_pPatientCombo->Append(wxString::FromUTF8(ostr.str().c_str()), GinkgoResourcesManager::History::GetIcoMujer(), pData); }else{ indice = m_pPatientCombo->Append(wxString::FromUTF8(ostr.str().c_str()), GinkgoResourcesManager::History::GetIcoOtro(), pData); } if (m_patientFilter.IsEnabled() && (*it).id == m_patientFilter.GetPatientId()) { m_pPatientCombo->Select(indice); } }*/ for (GNC::GCS::HistoryController::PatientModelList::iterator it = listaPacientes.begin(); it != listaPacientes.end(); ++it) { std::ostringstream ostr; ostr << (*it).name << " (" << (*it).id << ")"; wxPatientData* pData = new wxPatientData((*it)); int indice = -1; indice = m_pPatientCombo->Append(wxString::FromUTF8(ostr.str().c_str()), pData); if (m_patientFilter.IsEnabled() && (*it).id == m_patientFilter.GetPatientId()) { m_pPatientCombo->Select(indice); } } if (m_pPatientCombo->GetSelection() <0) { m_pPatientCombo->Select(0); } if (checkPurgue) { //load filter state std::string strTmp; if (GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/History", "PatientComboValue", strTmp)) { int pos = m_pPatientCombo->FindString(wxString::FromUTF8(strTmp.c_str())); if (pos >= 0) { m_pPatientCombo->Select(pos); } } } } void GNC::GUI::HistoryPanel3::RefreshSearch(bool force) { if (force) { doRefresh(force); } else { m_RefreshOnIdle = true; } } void GNC::GUI::HistoryPanel3::GetSelectedSeriesPk(std::list& listOfPks) { wxDataViewItemArray selections; int count = m_pHistoryTableView->GetSelections(selections); std::set setOfPks; for (int i = 0; i < count; ++i) { if (selections[i].IsOk()) { HistoryNode* pNode = (HistoryNode*) selections[i].GetID(); GNC::GUI::HistoryNode::SeriesModelList seriesModels; pNode->GetSeriesModel(seriesModels); for (GNC::GUI::HistoryNode::SeriesModelList::iterator it = seriesModels.begin(); it != seriesModels.end(); ++it) { setOfPks.insert((*it)->pk); } } } for (std::set::iterator it = setOfPks.begin(); it != setOfPks.end(); ++it) { listOfPks.push_back((*it)); } } void GNC::GUI::HistoryPanel3::OnHistoryPanelIdle( wxIdleEvent& /*event*/ ) { if (m_RefreshOnIdle) { doRefresh(); } } void GNC::GUI::HistoryPanel3::doRefresh(bool force) { RefreshPatientFilter(); RefreshModalityFilter(); RefreshDateFilter(); ////se eliminan todos los estudios que no están abiertos Freeze(); // std::list filterList; filterList.push_back(&m_modalityFilter); filterList.push_back(&m_patientFilter); filterList.push_back(&m_dateFilter); GNC::GCS::HistoryController::StudyModelList studyList; GNC::GCS::HistoryController::Instance()->GetStudies(filterList, studyList); { wxWindowDisabler disableAll; Freeze(); ShowPreviewPanel(false); m_pThumbnails->Clear(); m_pHistoryTableModel->ReloadTree(studyList, force); int numberImages = 0; for (GNC::GCS::HistoryController::StudyModelList::iterator it = studyList.begin(); it != studyList.end(); ++it) { numberImages += (*it).num_instances; } m_pStatusBar->SetStatusText(_("Results") + wxString::Format(_(" (%d images)"), numberImages)); Thaw(); } Thaw(); m_RefreshOnIdle = false; } void GNC::GUI::HistoryPanel3::RefreshPatientFilter() { if (m_pPatientCombo->GetSelection() > 0) { wxPatientData* pPatient = static_cast( m_pPatientCombo->GetClientObject(m_pPatientCombo->GetSelection()) ); if (pPatient != NULL) { m_patientFilter.Enable(true); m_patientFilter.SetPatientId(pPatient->m_PatientModel.id); GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/History", "PatientComboValue", pPatient->m_PatientModel.id); } else { m_patientFilter.Enable(false); } } else { m_patientFilter.Enable(false); } } void GNC::GUI::HistoryPanel3::RefreshModalityFilter() { std::list modalities; for (TModalitiesVector::iterator it = m_modalitiesList.begin(); it != m_modalitiesList.end(); ++it) { if ((*it)->IsChecked()) { std::string modality((*it)->GetLabel().ToUTF8()); modalities.push_back(modality); } } m_modalityFilter.Enable(!modalities.empty()); m_modalityFilter.SetModalities(modalities); } /** Advanced Search button toggled **/ void GNC::GUI::HistoryPanel3::OnAdvancedSearchToggled( wxCommandEvent& event ) { Freeze(); if (event.IsChecked()) { m_pAdvancedSearchPanel->Show(); } else { m_pAdvancedSearchPanel->Hide(); } Layout(); Thaw(); } void GNC::GUI::HistoryPanel3::RefreshDateFilter() { wxDateTime fromDate, toDate; if (m_pBetween->GetValue()) { if(m_pTextControlFechaDesde->GetValue().IsValid()) { fromDate = m_pTextControlFechaDesde->GetValue(); } if(m_pTextControlFechaHasta->GetValue().IsValid()) { toDate = m_pTextControlFechaHasta->GetValue(); } } else if (m_pToday->GetValue() || m_pTodayAM->GetValue() || m_pTodayPM->GetValue()) { fromDate = toDate = wxDateTime::Now(); if (m_pTodayAM->GetValue()) { fromDate.SetHour(0); fromDate.SetMinute(0); fromDate.SetSecond(0); toDate.SetHour(11); toDate.SetMinute(59); toDate.SetSecond(59); } else if (m_pTodayPM->GetValue()) { fromDate.SetHour(12); fromDate.SetMinute(0); fromDate.SetSecond(0); toDate.SetHour(23); toDate.SetMinute(59); toDate.SetSecond(59); } else { fromDate.SetHour(0); fromDate.SetMinute(0); fromDate.SetSecond(0); toDate.SetHour(23); toDate.SetMinute(59); toDate.SetSecond(59); } } else if (m_pYesterday->GetValue()) { fromDate = wxDateTime::Now().Add(wxDateSpan(0,0,0,-1)); } else if (m_pLastWeek->GetValue()) { fromDate = wxDateTime::Now().Add(wxDateSpan(0,0,-1,0)); } else if (m_pLastMonth->GetValue()) { fromDate = wxDateTime::Now().Add(wxDateSpan(0,-1,0,0)); } else if (m_pLastThreeMonths->GetValue()) { fromDate = wxDateTime::Now().Add(wxDateSpan(0,-3,0,0)); } m_dateFilter.SetDates(fromDate, toDate); m_dateFilter.Enable(fromDate.IsValid() || toDate.IsValid()); } void GNC::GUI::HistoryPanel3::OnClose(wxCloseEvent &event) { event.Skip(false); Hide(); } void GNC::GUI::HistoryPanel3::OnSearchChange( wxCommandEvent& ) { m_pTimerReload->Stop(); m_pTimerReload->Start(500,true); } void GNC::GUI::HistoryPanel3::OnDateChanged( wxDateEvent& /*event*/ ) { m_pBetween->SetValue(true); m_pTimerReload->Stop(); m_pTimerReload->Start(500,true); } void GNC::GUI::HistoryPanel3::ShowPreviewPanel(bool visible) { if (ViewInteractor2D->IsShown() != visible) { ViewInteractor2D->Show(visible); m_pHideInteractorPanel->Show(!visible); m_pPanelPreviews->Layout(); } } void GNC::GUI::HistoryPanel3::OnTreeItemActivated(wxDataViewEvent& event) { wxDataViewItem item = event.GetItem(); if (item.IsOk()) { HistoryNode* pNode = (HistoryNode*) item.GetID(); if (pNode->IsStudyModel()) { OpenSeriesOrStudy(pNode->GetStudyModel()->pk, false,!GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "reutilize_study")); } else { OpenSeriesOrStudy(pNode->GetSeriesModel()->pk, true,!GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "reutilize_study")); } } } void GNC::GUI::HistoryPanel3::OnTreeItemMenu(wxDataViewEvent& event) { wxDataViewItem item = event.GetItem(); if(item.IsOk()) { HistoryNode* pNode = (HistoryNode*) item.GetID(); wxMenu menu; int idMenuItem = 1; wxDataViewItemArray dummyArr; if (m_pHistoryTableView->GetSelections(dummyArr) == 1) { if (pNode->IsStudyModel()) { menu.Append(idMenuItem, _("Open study")); menu.Connect(idMenuItem++,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler( HistoryPanel3::OnOpenMenu),NULL,this); menu.Append(idMenuItem, _("Open study with ..")); menu.Connect(idMenuItem++,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler( HistoryPanel3::OnOpenWithMenu),NULL,this); } else { menu.Append(idMenuItem, _("Open Series")); menu.Connect(idMenuItem++,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler( HistoryPanel3::OnOpenMenu),NULL,this); menu.Append(idMenuItem, _("Open Series with ..")); menu.Connect(idMenuItem++,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler( HistoryPanel3::OnOpenWithMenu),NULL,this); } // SERIES MENU } else { //more than one item selected... } if (dummyArr.size() > 0) { if (menu.GetMenuItemCount() > 0 && !menu.GetMenuItems().back()->IsSeparator()) { menu.AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(&menu, &menu, GNC::GCS::IHistoryTool::TFamily_Open); if (menu.GetMenuItemCount() > 0 && !menu.GetMenuItems().back()->IsSeparator()) { menu.AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(&menu, &menu, GNC::GCS::IHistoryTool::TFamily_Dicomize); if (menu.GetMenuItemCount() > 0 && !menu.GetMenuItems().back()->IsSeparator()) { menu.AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(&menu, &menu, GNC::GCS::IHistoryTool::TFamily_Q_R); { //synchronize option bool enableSynchronize = (pNode->IsStudyModel()?pNode->GetStudyModel()->location:pNode->GetSeriesModel()->location) == GNC::GCS::IHistoryController::TL_WadoLinked; wxMenuItem* pMenuSynchronize = new wxMenuItem(&menu, idMenuItem, wxString( _("Synchronize") ), _("Synchronize"), wxITEM_NORMAL ); #ifdef __WXMSW__ pMenuSynchronize->SetBitmaps(GinkgoResourcesManager::Acquisition::GetIcoDownload()); #else pMenuSynchronize->SetBitmap(GinkgoResourcesManager::Acquisition::GetIcoDownload()); #endif menu.Append(pMenuSynchronize); menu.Enable(idMenuItem, enableSynchronize); menu.Connect(idMenuItem++,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler( HistoryPanel3::OnSynchronizeSelected),NULL,this); } if (menu.GetMenuItemCount() > 0 && !menu.GetMenuItems().back()->IsSeparator()) { menu.AppendSeparator(); } if (!GNC::GCS::HistoryController::Instance()->IsReadOnly()) { wxMenuItem* pMenuEliminar = new wxMenuItem(&menu, idMenuItem, wxString( _("&Delete from history") ), _("Delete"), wxITEM_NORMAL ); menu.Connect(idMenuItem++,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler( HistoryPanel3::OnDelete),NULL,this); #ifdef __WXMSW__ pMenuEliminar->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoEliminar()); #else pMenuEliminar->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoEliminar()); #endif menu.Append(pMenuEliminar); wxMenuItem* pMenuLimpiar = new wxMenuItem(&menu, idMenuItem, wxString( _("&Clear history") ), _("Delete"), wxITEM_NORMAL ); menu.Connect(idMenuItem++,wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler( HistoryPanel3::OnClearHistory),NULL,this); #ifdef __WXMSW__ pMenuLimpiar->SetBitmaps(GinkgoResourcesManager::History::GetIcoCleanAll()); #else pMenuLimpiar->SetBitmap(GinkgoResourcesManager::History::GetIcoCleanAll()); #endif menu.Append(pMenuLimpiar); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(&menu, &menu, GNC::GCS::IHistoryTool::TFamily_Delete); if (menu.GetMenuItemCount() > 0 && !menu.GetMenuItems().back()->IsSeparator()) { menu.AppendSeparator(); } } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(&menu, &menu, GNC::GCS::IHistoryTool::TFamily_ShowMetadata); if (menu.GetMenuItemCount() > 0 && !menu.GetMenuItems().back()->IsSeparator()) { menu.AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(&menu, &menu, GNC::GCS::IHistoryTool::TFamily_Send); if (menu.GetMenuItemCount() > 0 && !menu.GetMenuItems().back()->IsSeparator()) { menu.AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(&menu, &menu, GNC::GCS::IHistoryTool::TFamily_Anonymize); if (menu.GetMenuItemCount() > 0 && !menu.GetMenuItems().back()->IsSeparator()) { menu.AppendSeparator(); } GNC::HistoryToolsController::Instance()->AppendsToolInMenu(&menu, &menu, GNC::GCS::IHistoryTool::TFamily_Export); } if (menu.GetMenuItemCount() > 0) { this->PopupMenu(&menu); } event.Skip(false); } else { event.Skip(true); } } void GNC::GUI::HistoryPanel3::OnTreeSelChanged(wxDataViewEvent& event) { wxDataViewItem item = event.GetItem(); if(item.IsOk()) { ShowPreviewPanel(false); HistoryNode* pNode = (HistoryNode*) item.GetID(); if (pNode->IsStudyModel()) { LoadPreviewsFromStudy(pNode->GetStudyModel()); } else { LoadPreviewsFromSeries(pNode->GetSeriesModel()); } } event.Skip(true); } void GNC::GUI::HistoryPanel3::OnTreeKeyDown(wxKeyEvent& event) { if (event.GetKeyCode() == WXK_DELETE || event.GetKeyCode() == WXK_BACK|| event.GetKeyCode() == WXK_NUMPAD_DELETE) { RemoveSelected(); event.Skip(false); } else { event.Skip(true); } } void GNC::GUI::HistoryPanel3::OnThumbnailSelected(wxThumbnailEvent& /*evt*/) { int selected = m_pThumbnails->GetSelection(); if (selected >= 0) { try { ShowPreviewPanel(true); wxHistoryImageThumbnailItem* pItem = static_cast( m_pThumbnails->GetItem(selected) ); long file_pk; pItem->GetFilename().ToLong(&file_pk); GNC::GCS::HistoryController::FileModel selectedFile = GNC::GCS::HistoryController::Instance()->GetFileModel(file_pk); if (m_currentPreviewedFile != selectedFile.real_path) { m_currentPreviewedFile = selectedFile.real_path; Loader->SetInput(selectedFile.real_path); Loader->UpdateInformation(); Loader->SetOutputOrigin(selectedFile.image_position); double spacing[3] = {1.0,1.0,1.0}; sscanf( selectedFile.spacing.c_str(), "%lf\\%lf", &spacing[0], &spacing[1]); Loader->SetOutputSpacing(spacing); if (ViewImage2D->GetNumberOfComponents() == 1) { double window, level; if (Loader->GetDefaultWindowLevel(window,level) && window != 0.0) { ViewImage2D->SetWindow(window); ViewImage2D->SetLevel(level); } else { ViewImage2D->SetAutoDefaultWindowLevel(); } } ViewImage2D->SetupPipeline(true); ViewImage2D->ResetZoom(false, 0); ViewImage2D->UpdateOrientation(); } ViewInteractor2D->Render(); } catch( GNC::GCS::VistaException& ex ) { ShowPreviewPanel(false); std::string error = "Exception loading:" + ex.GetCause(); LOG_ERROR("History3", error); } catch (GNC::GCS::ControladorCargaException& ex) { ShowPreviewPanel(false); std::string error = "Exception loading:" + ex.GetCause(); LOG_ERROR("History3", error); } catch (...) { ShowPreviewPanel(false); std::string error = "Unknown exception loading"; LOG_ERROR("History3", error); } } } void GNC::GUI::HistoryPanel3::OnThumbnailDClick(wxThumbnailEvent& /*evt*/) { int selected = m_pThumbnails->GetSelection(); if (selected >= 0) { wxHistoryImageThumbnailItem* pItem = static_cast(m_pThumbnails->GetItem(selected)); if (!pItem) { LOG_ERROR("History3", "selected item doesn't exists??"); return; } if (pItem->GetType() == wxHistoryImageThumbnailItem::TI_Series) { //open series OpenSeriesOrStudy(pItem->GetSeriesPk(), true,!GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "reutilize_study")); } else { //open image GNC::GCS::IVista* pView = GetViewFromSeries(pItem->GetSeriesPk()); if (pView != NULL) { GNC::Entorno::Instance()->GetVentanaPrincipal()->ForzarCambioVista(pView); std::string pathOfFile(TOPATH(pItem->GetFilename())); pView->ActivarRuta(pItem->GetFilePk()); } else { OpenSeriesOrStudy(pItem->GetSeriesPk(), true,!GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "reutilize_study")); } } } } void GNC::GUI::HistoryPanel3::OnThumbnailRClick(wxThumbnailEvent& evt) { wxHistoryImageThumbnailItem* pItem = static_cast(m_pThumbnails->GetItem(evt.GetIndex())); if (pItem != NULL) { wxPopUpMenuThumbnails menu(this, pItem->GetSeriesPk()); m_pThumbnails->PopupMenu(&menu); } else { wxPopUpMenuThumbnails menu(this, -1); m_pThumbnails->PopupMenu(&menu); } } void GNC::GUI::HistoryPanel3::OnOpenMenu(wxCommandEvent& /*event*/) { wxDataViewItem item = m_pHistoryTableView->GetSelection(); if (item.IsOk()) { HistoryNode* pNode = (HistoryNode*) item.GetID(); if (pNode->IsStudyModel()) { OpenSeriesOrStudy(pNode->GetStudyModel()->pk, false,!GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "reutilize_study")); } else { OpenSeriesOrStudy(pNode->GetSeriesModel()->pk, true,!GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "reutilize_study")); } } } void GNC::GUI::HistoryPanel3::OnOpenWithMenu(wxCommandEvent& /*event*/) { wxDataViewItem item = m_pHistoryTableView->GetSelection(); if (item.IsOk()) { HistoryNode* pNode = (HistoryNode*) item.GetID(); if (pNode->IsStudyModel()) { OpenSeriesOrStudyWith(pNode->GetStudyModel()->pk, false); } else { OpenSeriesOrStudyWith(pNode->GetSeriesModel()->pk, true); } } } void GNC::GUI::HistoryPanel3::OnDelete(wxCommandEvent& /*event*/) { RemoveSelected(); } void GNC::GUI::HistoryPanel3::OnClearHistory(wxCommandEvent& /*event*/) { ClearHistory(); } void GNC::GUI::HistoryPanel3::OnSynchronizeSelected(wxCommandEvent& /*event*/) { SynchronizeSelected(); } GNC::GCS::IVista* GNC::GUI::HistoryPanel3::GetViewFromSeries(long pk_series) { GNC::GCS::ControladorVistas::TipoListaVistas viewList = GNC::Entorno::Instance()->GetControladorVistas()->GetVistas(); for (GNC::GCS::ControladorVistas::TipoListaVistas::iterator itViews = viewList.begin(); itViews != viewList.end(); ++itViews) { if ((*itViews)->GetEstudio().IsValid()) { for(std::vector::const_iterator itUID = (*itViews)->GetEstudio()->OpenedSeries.begin(); itUID != (*itViews)->GetEstudio()->OpenedSeries.end(); ++itUID) { if (pk_series == (*itUID)) { return (*itViews); } } } } return NULL; } void GNC::GUI::HistoryPanel3::OpenSeriesOrStudyWith(long pk, bool isSeries) { GNC::GCS::Permisos::EstadoPermiso estado = GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "max_tabs"); if (estado) { long maxNumberOfTabs = estado.ObtenerValor(); if ((int)GNC::Entorno::Instance()->GetControladorVistas()->GetVistas().size() >= maxNumberOfTabs) { wxMessageBox(_("You have reached maximum number of opened tabs, close some tabs and try it again"), _("Info"), wxOK | wxICON_INFORMATION, GNC::Entorno::Instance()->GetVentanaRaiz()); return; } } //max GNC::GCS::IHistoryController::SeriesModelList seriesModelList; if (isSeries) { GNC::GCS::IHistoryController::SeriesModel seriesModel = GNC::GCS::HistoryController::Instance()->GetSeriesModel(pk); seriesModelList.push_back(seriesModel); } else { GNC::GCS::HistoryController::Instance()->GetSeriesFromStudy(pk, seriesModelList); } OpenWithDialog::ListaModalidades listaModalidades; for (GNC::GCS::IHistoryController::SeriesModelList::iterator itSeries = seriesModelList.begin(); itSeries != seriesModelList.end(); ++itSeries) { GNC::GCS::IHistoryController::SeriesModel& seriesModel = (*itSeries); for (GNC::GCS::HistoryController::StringList::iterator it = seriesModel.tsuids.begin(); it != seriesModel.tsuids.end(); ++it) { listaModalidades.push_back(std::pair(seriesModel.series_modality, (*it))); } } OpenWithDialog dialogoAbrir(this, listaModalidades); int answer = dialogoAbrir.ShowModal(); if (answer == wxID_OK) { OpenSeries(seriesModelList, dialogoAbrir.GetModuloSeleccionado(), dialogoAbrir.GetModoSeleccionado()->GetId()); } } void GNC::GUI::HistoryPanel3::OpenSeriesOrStudy(long pk, bool isSeries, bool force) { //show current... GNC::GCS::IHistoryController::SeriesModelList seriesModelList; { GNC::GCS::IVista* pView = NULL; if (isSeries) { pView = GetViewFromSeries(pk); GNC::GCS::IHistoryController::SeriesModel seriesModel = GNC::GCS::HistoryController::Instance()->GetSeriesModel(pk); seriesModelList.push_back(seriesModel); } else { GNC::GCS::HistoryController::Instance()->GetSeriesFromStudy(pk, seriesModelList); for (GNC::GCS::IHistoryController::SeriesModelList::const_iterator it = seriesModelList.begin(); it != seriesModelList.end(); ++it) { pView = GetViewFromSeries((*it).pk); if (pView != NULL) { break; } } } if (seriesModelList.empty()) { LOG_WARN("HistoryPanel", "trying to open a series or a study that has been deleted"); return; } if (pView != NULL) { GNC::Entorno::Instance()->GetVentanaPrincipal()->ForzarCambioVista(pView); GNC::GCS::HistoryController::FileModel fileModel = GNC::GCS::HistoryController::Instance()->GetFrameOfReference(seriesModelList.front().pk); pView->ActivarRuta(fileModel.pk); if (!force) { return; } } } //max number of opened tabs GNC::GCS::Permisos::EstadoPermiso estado = GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions", "max_tabs"); if (estado) { long maxNumberOfTabs = estado.ObtenerValor(); if ((int)GNC::Entorno::Instance()->GetControladorVistas()->GetVistas().size() >= maxNumberOfTabs) { wxMessageBox(_("You have reached maximum number of opened tabs, close some tabs and try it again"), _("Info"), wxOK | wxICON_INFORMATION, GNC::Entorno::Instance()->GetVentanaRaiz()); return; } } //max //select modulo and modo that opens all series of a kind... GNC::GCS::IModuleController* pModulo = NULL; GNC::GCS::ModoControlador* pModo = NULL; GNC::GCS::Ptr hp; //ma if (!isSeries) { //it's an study maybe hanging protocols..... hp = GNC::GCS::HangingProtocolController::Instance()->GetProtocolForStudy(pk); if (hp.IsValid()) { pModulo = ControladorExtensiones::Instance()->ObtenerModulo(hp->getModuleSid()); if (pModulo != NULL) { pModo = pModulo->GetModo(hp->getOpeningMode()); } } } //first try view that supports this importation uid GNC::ControladorExtensiones::ListaModulos listaModulos = ControladorExtensiones::Instance()->Modulos(); for (GNC::GCS::IHistoryController::SeriesModelList::iterator itSeries = seriesModelList.begin(); itSeries != seriesModelList.end() && pModo == NULL && pModulo == NULL; ++itSeries) { for(GNC::ControladorExtensiones::IteradorListaModulos itModulos = listaModulos.begin(); itModulos!= listaModulos.end() && pModo == NULL && pModulo == NULL; ++itModulos) { for(GNC::GCS::IModuleController::IteradorListaModos itModos = (*itModulos).second->GetListaModos().begin(); itModos != (*itModulos).second->GetListaModos().end(); ++itModos) { bool supports = true; for (GNC::GCS::HistoryController::StringList::iterator itTsyntax = (*itSeries).tsuids.begin(); itTsyntax != (*itSeries).tsuids.end(); ++itTsyntax) { supports = supports && (*itModos)->SupportsImportationUID((*itSeries).uid_importer) && (*itModos)->SupportsModalityFile((*itSeries).series_modality,(*itTsyntax)); } if (supports) { pModo = (*itModos); pModulo = (*itModulos).second; break; } } } if(pModo== NULL || pModulo == NULL) { //second try by modality std::list listaModulos = ControladorExtensiones::Instance()->ModulosOrdenados(); for(std::list::iterator itModulos=listaModulos.begin(); itModulos != listaModulos.end() && pModo == NULL && pModulo == NULL; ++itModulos) { for(GNC::GCS::IModuleController::IteradorListaModos itModos = (*itModulos)->GetListaModos().begin(); itModos != (*itModulos)->GetListaModos().end(); ++itModos) { bool supports = true; for (GNC::GCS::HistoryController::StringList::iterator itTsyntax = (*itSeries).tsuids.begin(); itTsyntax != (*itSeries).tsuids.end(); ++itTsyntax) { supports = supports && (*itModos)->SupportsModalityFile((*itSeries).series_modality,(*itTsyntax)); } if (supports) { pModo = (*itModos); pModulo = (*itModulos); break; } } } } } if(pModo != NULL && pModulo != NULL) { //openinG!!! OpenSeries(seriesModelList, pModulo, pModo->GetId(), hp); } else { wxString strModalidades=wxT(""); wxMessageBox(_("Unable to open modality ") + wxString::FromUTF8(seriesModelList.front().series_modality.c_str()) + _( " with transfer syntax ") << wxString::FromUTF8(seriesModelList.front().tsuids.front().c_str()), _("Info"), wxOK | wxICON_INFORMATION, GNC::Entorno::Instance()->GetVentanaRaiz()); } } void GNC::GUI::HistoryPanel3::OpenSeries(GNC::GCS::HistoryController::SeriesModelList& seriesModelList, GNC::GCS::IModuleController* pModulo, int idModo, GNC::GCS::Ptr hangingProtocol) { try { if (pModulo->OpenView(idModo,seriesModelList, hangingProtocol) == NULL) { LOG_ERROR("GNC/AbrirEstudio", "OpenView has returned null"); if (hangingProtocol.IsValid()) { wxMessageBox(_("Error loading study, check hanging protocol settings"), _("Error loading study"),wxICON_ERROR); } } } catch (GNC::GCS::VistaException& ex) { LOG_ERROR("GNC/AbrirEstudio", (std::string)ex ); wxMessageBox(wxString::FromUTF8( ((std::string)ex).c_str() ), _("Error loading study"),wxICON_ERROR); } catch (...) { LOG_ERROR("GNC/AbrirEstudio", "Error al abrir el estudio: Error interno"); wxMessageBox(_( "Internal error" ), _("Error loading study"),wxICON_ERROR); } } void GNC::GUI::HistoryPanel3::ClearHistory() { //if there is any view opened... GNC::GCS::ControladorVistas::TipoListaVistas viewList = GNC::Entorno::Instance()->GetControladorVistas()->GetVistas(); for (GNC::GCS::ControladorVistas::TipoListaVistas::iterator itViews = viewList.begin(); itViews != viewList.end(); ++itViews) { if ((*itViews)->GetEstudio().IsValid() && (*itViews)->GetEstudio()->OpenedSeries.size() > 0) { wxMessageBox(_("Failed to empty the history, you have to close opened studies"), _("Info"), wxOK | wxICON_WARNING); return; } } bool eliminar = false; ConfirmDeleteDialog dlg(this, _("all files")); switch (dlg.ShowModal()) { case wxOK : eliminar = GNC::GCS::HistoryController::Instance()->EmptyHistory(true); break; default : break; } if(eliminar) { RefreshSearch(true); ReloadCombos(false); } } void GNC::GUI::HistoryPanel3::RemoveSelected() { GNC::GCS::HistoryController::IdList pkList; GetSelectedSeriesPk(pkList); if (pkList.empty()) { wxMessageBox(_("Select at least one series"), _("Info"), wxOK | wxICON_WARNING); return; } std::set setOfPks; setOfPks.insert(pkList.begin(), pkList.end()); //if there is any view opened... GNC::GCS::ControladorVistas::TipoListaVistas viewList = GNC::Entorno::Instance()->GetControladorVistas()->GetVistas(); for (GNC::GCS::ControladorVistas::TipoListaVistas::iterator itViews = viewList.begin(); itViews != viewList.end(); ++itViews) { if ((*itViews)->GetEstudio().IsValid()) { for (std::vector::const_iterator itUIDs = (*itViews)->GetEstudio()->OpenedSeries.begin(); itUIDs != (*itViews)->GetEstudio()->OpenedSeries.end(); ++itUIDs) { if (setOfPks.find((*itUIDs)) != setOfPks.end()) { wxMessageBox(_("You can't remove opened series"), _("Info"), wxOK | wxICON_WARNING); return; } } } } bool eliminar = false; wxString msg = (setOfPks.size()>1)?_("those series"):_("this series"); ConfirmDeleteDialog dlg(this, msg); switch (dlg.ShowModal()) { case wxOK : eliminar = true; break; default: break; } if(eliminar) { GNC::GCS::HistoryController::Instance()->DeleteSeriesList(pkList); wxDataViewItemArray selections; m_pHistoryTableView->Freeze(); m_pHistoryTableView->GetSelections(selections); m_pHistoryTableModel->DeleteItems(selections); m_pHistoryTableView->Thaw(); RefreshSearch(); m_pThumbnails->Clear(); ShowPreviewPanel(false); ReloadCombos(false); } } void GNC::GUI::HistoryPanel3::SelectAll() { m_pHistoryTableView->SelectAll(); } void GNC::GUI::HistoryPanel3::DeselectAll() { m_pHistoryTableView->UnselectAll(); m_pThumbnails->Clear(); ShowPreviewPanel(false); } void GNC::GUI::HistoryPanel3::SynchronizeSelected() { GNC::GCS::HistoryController::IdList pkList; GetSelectedSeriesPk(pkList); if (pkList.empty()) { wxMessageBox(_("Select at least one series"), _("Info"), wxOK | wxICON_WARNING); return; } GADAPI::SynchronizationCommandParameters* pParams = new GADAPI::SynchronizationCommandParameters(pkList, NULL); GADAPI::SynchronizationCommand* pCmd = new GADAPI::SynchronizationCommand(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync("syncronizing...", pCmd, NULL); } void GNC::GUI::HistoryPanel3::LoadPreviewsFromStudy(const GNC::GCS::Ptr& pModel) { wxWindowDisabler disableAll; m_pThumbnails->Freeze(); while (m_pThumbnails->GetCount()>0) { m_pThumbnails->Delete(0); } GNC::GCS::HistoryController::SeriesModelList seriesList; GNC::GCS::HistoryController::Instance()->GetSeriesFromStudy(pModel->pk, seriesList); for (GNC::GCS::HistoryController::SeriesModelList::const_iterator it = seriesList.begin(); it != seriesList.end(); ++it) { GNC::GCS::HistoryController::FileModel frame = GNC::GCS::HistoryController::Instance()->GetFrameOfReference((*it).pk); wxString pathOfItem = wxString::Format(wxT("%d"), (int) frame.pk); wxHistoryImageThumbnailItem* pItem = new wxHistoryImageThumbnailItem(pathOfItem, wxHistoryImageThumbnailItem::TI_Series, (*it).pk, frame.pk, pModel->location); m_pThumbnails->Insert(pItem); } m_pThumbnails->Thaw(); } void GNC::GUI::HistoryPanel3::LoadPreviewsFromSeries(const GNC::GCS::Ptr& pModel) { wxWindowDisabler disableAll; m_pThumbnails->Freeze(); while (m_pThumbnails->GetCount()>0) { m_pThumbnails->Delete(0); } GNC::GCS::HistoryController::LightFileModelList listOfFiles; GNC::GCS::HistoryController::Instance()->GetSeriesSortedFileModels(pModel->pk, listOfFiles); for (GNC::GCS::HistoryController::LightFileModelList::const_iterator it = listOfFiles.begin(); it != listOfFiles.end(); ++it) { wxString pathOfItem = wxString::Format(wxT("%ld"), (int) (*it).pk); wxHistoryImageThumbnailItem* pItem = new wxHistoryImageThumbnailItem(pathOfItem, wxHistoryImageThumbnailItem::TI_Image, pModel->pk, (*it).pk, pModel->location); m_pThumbnails->Append(pItem); } m_pThumbnails->Thaw(); } void GNC::GUI::HistoryPanel3::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { switch(evt->GetCodigoEvento()) { case ginkgoEVT_Core_ProgresoComando: { GNC::GCS::Events::EventoProgresoComando* pEvt = dynamic_cast (evt); if (pEvt == NULL || pEvt->GetComando() == NULL) { return; } switch (pEvt->GetTipo()) { case GNC::GCS::Events::EventoProgresoComando::TEP_Iniciado: { GNC::GCS::IPersistentCommand* pPersistent = dynamic_cast (pEvt->GetComando()); if (pPersistent != NULL) { RefreshSearch(); } m_pStatusBar->InsertarTarea(pEvt->GetComando()->GetId(), pEvt->GetTexto()); } break; case GNC::GCS::Events::EventoProgresoComando::TEP_Progreso: // m_pStatusBar->SetProgresoTarea(pEvt->GetComando()->GetId(), pEvt->GetProgresoNormalizado(), pEvt->GetTexto()); break; case GNC::GCS::Events::EventoProgresoComando::TEP_Finalizado: { m_pStatusBar->EliminarTarea(pEvt->GetComando()->GetId()); GNC::GCS::IPersistentCommand* pPersistent = dynamic_cast (pEvt->GetComando()); if (pPersistent != NULL) { RefreshSearch(); } } break; case GNC::GCS::Events::EventoProgresoComando::TEP_Unknown: break; } } break; } } //endregion ginkgocadx-3.8.7/cadxcore/main/gui/history3/historypanel3.h000066400000000000000000000115771314736454600237400ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include "historypanel3base.h" #include #include #include
    #include
    class wxImage; class wxDataViewCtrl; namespace GNC { class StreamingLoader; namespace GCS { class HangingProtocol; } namespace GUI { class HistoryToolMenu; class HistoryTableModel; class ReloadHistoryTimer; class StatusBarProgreso; class wxPopUpMenuThumbnails; class HistoryPanel3: public HistoryPanel3Base, public GNC::GCS::IHistoryPanel, public GNC::GCS::IEventsObserver { friend class wxPopUpMenuThumbnails; public: static HistoryPanel3* Instance(); static void FreeInstance(); protected: HistoryPanel3(wxWindow* pParent); ~HistoryPanel3(); static HistoryPanel3* m_pInstance; public: virtual bool Show(bool show = true); virtual void ReloadHistory(); virtual void ReloadToolBar(); virtual void ReloadCombos(bool checkPurgue); virtual void RefreshSearch(bool force = false); virtual void GetSelectedSeriesPk(std::list& listOfPks); virtual wxWindow* GetWxWindow() { return this; } protected: virtual void OnHistoryPanelIdle( wxIdleEvent& event ); virtual void doRefresh(bool force = false); void RefreshPatientFilter(); void RefreshModalityFilter(); void RefreshDateFilter(); /** Advanced Search button toggled **/ virtual void OnAdvancedSearchToggled( wxCommandEvent& event ); virtual void OnClose(wxCloseEvent &event); virtual void OnSearchChange( wxCommandEvent& event ); void OnDateChanged( wxDateEvent& /*event*/ ); virtual void OnTreeItemActivated(wxDataViewEvent& event); virtual void OnTreeItemMenu(wxDataViewEvent& event); void ShowPreviewPanel(bool visible); virtual void OnTreeSelChanged(wxDataViewEvent& event); virtual void OnTreeKeyDown(wxKeyEvent& event); virtual void OnThumbnailSelected(wxThumbnailEvent& evt); virtual void OnThumbnailDClick(wxThumbnailEvent& evt); virtual void OnThumbnailRClick(wxThumbnailEvent& evt); virtual void OnOpenMenu(wxCommandEvent& event); virtual void OnOpenWithMenu(wxCommandEvent& event); virtual void OnDelete(wxCommandEvent& event); virtual void OnClearHistory(wxCommandEvent& event); virtual void OnSynchronizeSelected(wxCommandEvent& event); GNC::GCS::IVista* GetViewFromSeries(long pk_series); public: void OpenSeriesOrStudyWith( long pk_series, bool isSeries); void OpenSeriesOrStudy(long pk_series, bool isSeries, bool force = false); void OpenSeries(GNC::GCS::HistoryController::SeriesModelList& seriesModel, GNC::GCS::IModuleController* pModulo, int idModo, GNC::GCS::Ptr hangingProtocol = NULL); public: void ClearHistory(); void RemoveSelected(); void SelectAll(); void DeselectAll(); void SynchronizeSelected(); protected: void LoadPreviewsFromStudy(const GNC::GCS::Ptr& pModel); void LoadPreviewsFromSeries(const GNC::GCS::Ptr& pModel); public: virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt); protected: typedef std::list TModalitiesVector; TModalitiesVector m_modalitiesList; HistoryToolMenu* m_pToolBar; wxObjectDataPtr m_pHistoryTableModel; wxDataViewCtrl* m_pHistoryTableView; ReloadHistoryTimer* m_pTimerReload; GNC::GUI::StatusBarProgreso* m_pStatusBar; std::string m_currentPreviewedFile; //previews... GNC::GCS::Ptr Loader; bool m_RefreshOnIdle; GNC::GCS::History::StudyPatientFilter m_patientFilter; GNC::GCS::History::StudyModalityFilter m_modalityFilter; GNC::GCS::History::AcquisitionDateFilter m_dateFilter; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/history3/historypanel3base.cpp000066400000000000000000000612621314736454600251220ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "historypanel3base.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; HistoryPanel3Base::HistoryPanel3Base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 800,600 ), wxDefaultSize ); m_pMenuBar = new wxMenuBar( 0 ); this->SetMenuBar( m_pMenuBar ); wxBoxSizer* m_pMainSizer; m_pMainSizer = new wxBoxSizer( wxVERTICAL ); m_pSizerToolBar = new wxBoxSizer( wxVERTICAL ); m_pMainSizer->Add( m_pSizerToolBar, 0, wxEXPAND, 5 ); m_pSearchPanel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer20; bSizer20 = new wxBoxSizer( wxVERTICAL ); wxFlexGridSizer* m_pSizerCamposBusqueda; m_pSizerCamposBusqueda = new wxFlexGridSizer( 2, 1, 0, 0 ); m_pSizerCamposBusqueda->AddGrowableCol( 0 ); m_pSizerCamposBusqueda->AddGrowableRow( 0 ); m_pSizerCamposBusqueda->AddGrowableRow( 1 ); m_pSizerCamposBusqueda->SetFlexibleDirection( wxBOTH ); m_pSizerCamposBusqueda->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); wxBoxSizer* m_pPatientSearchSizer; m_pPatientSearchSizer = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer33; bSizer33 = new wxBoxSizer( wxHORIZONTAL ); m_pPatientLabelStr = new wxStaticText( m_pSearchPanel, wxID_ANY, _("Patient"), wxDefaultPosition, wxDefaultSize, 0 ); m_pPatientLabelStr->Wrap( -1 ); m_pPatientLabelStr->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); bSizer33->Add( m_pPatientLabelStr, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pPatientCombo = new wxComboBox( m_pSearchPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); bSizer33->Add( m_pPatientCombo, 1, wxALL|wxEXPAND, 5 ); m_pAdvancedSearchButton = new wxToggleButton( m_pSearchPanel, wxID_ANY, _("Advanced search"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer33->Add( m_pAdvancedSearchButton, 0, wxALL, 5 ); m_pPatientSearchSizer->Add( bSizer33, 1, wxEXPAND, 5 ); m_pSizerCamposBusqueda->Add( m_pPatientSearchSizer, 1, wxEXPAND, 2 ); m_pAdvancedSearchPanel = new wxPanel( m_pSearchPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pAdvancedSearchPanel->Hide(); wxBoxSizer* m_pAdvancedSearchSizer; m_pAdvancedSearchSizer = new wxBoxSizer( wxHORIZONTAL ); wxStaticBoxSizer* sbSizer2; sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( m_pAdvancedSearchPanel, wxID_ANY, _("Acquisition date") ), wxVERTICAL ); wxBoxSizer* bSizer17; bSizer17 = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer181; bSizer181 = new wxBoxSizer( wxVERTICAL ); m_pAnyDate = new wxRadioButton( m_pAdvancedSearchPanel, wxID_ANY, _("Any date"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); m_pAnyDate->SetValue( true ); bSizer181->Add( m_pAnyDate, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 2 ); m_pTodayAM = new wxRadioButton( m_pAdvancedSearchPanel, wxID_ANY, _("Today AM"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer181->Add( m_pTodayAM, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); m_pTodayPM = new wxRadioButton( m_pAdvancedSearchPanel, wxID_ANY, _("Today PM"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer181->Add( m_pTodayPM, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); m_pToday = new wxRadioButton( m_pAdvancedSearchPanel, wxID_ANY, _("Today"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer181->Add( m_pToday, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); bSizer17->Add( bSizer181, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer29; bSizer29 = new wxBoxSizer( wxVERTICAL ); m_pYesterday = new wxRadioButton( m_pAdvancedSearchPanel, wxID_ANY, _("Yesterday"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer29->Add( m_pYesterday, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 2 ); m_pLastWeek = new wxRadioButton( m_pAdvancedSearchPanel, wxID_ANY, _("Last 7 days"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer29->Add( m_pLastWeek, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); m_pLastMonth = new wxRadioButton( m_pAdvancedSearchPanel, wxID_ANY, _("Last 30 days"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer29->Add( m_pLastMonth, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); m_pLastThreeMonths = new wxRadioButton( m_pAdvancedSearchPanel, wxID_ANY, _("Last 3 months"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer29->Add( m_pLastThreeMonths, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); bSizer17->Add( bSizer29, 1, wxEXPAND, 5 ); wxBoxSizer* bSizer201; bSizer201 = new wxBoxSizer( wxVERTICAL ); m_pBetween = new wxRadioButton( m_pAdvancedSearchPanel, wxID_ANY, _("Between:"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer201->Add( m_pBetween, 0, wxALIGN_CENTER_VERTICAL|wxALL, 2 ); wxBoxSizer* bSizer21; bSizer21 = new wxBoxSizer( wxVERTICAL ); m_pTextControlFechaDesde = new wxDatePickerCtrl( m_pAdvancedSearchPanel, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT|wxDP_DROPDOWN ); bSizer21->Add( m_pTextControlFechaDesde, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 2 ); bSizer201->Add( bSizer21, 0, wxEXPAND|wxLEFT, 5 ); wxBoxSizer* bSizer22; bSizer22 = new wxBoxSizer( wxVERTICAL ); m_pTextControlFechaHasta = new wxDatePickerCtrl( m_pAdvancedSearchPanel, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT|wxDP_DROPDOWN ); bSizer22->Add( m_pTextControlFechaHasta, 0, wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxLEFT, 2 ); bSizer201->Add( bSizer22, 0, wxEXPAND|wxLEFT, 5 ); bSizer17->Add( bSizer201, 0, wxEXPAND, 5 ); sbSizer2->Add( bSizer17, 1, wxEXPAND|wxALL, 5 ); m_pAdvancedSearchSizer->Add( sbSizer2, 1, wxEXPAND|wxRIGHT, 5 ); wxStaticBoxSizer* sbSizer3; sbSizer3 = new wxStaticBoxSizer( new wxStaticBox( m_pAdvancedSearchPanel, wxID_ANY, _("Modalities") ), wxVERTICAL ); m_pModalitySizer = new wxGridSizer( 5, 5, 0, 0 ); sbSizer3->Add( m_pModalitySizer, 1, wxEXPAND|wxALL, 5 ); m_pAdvancedSearchSizer->Add( sbSizer3, 1, wxEXPAND|wxLEFT, 5 ); m_pAdvancedSearchPanel->SetSizer( m_pAdvancedSearchSizer ); m_pAdvancedSearchPanel->Layout(); m_pAdvancedSearchSizer->Fit( m_pAdvancedSearchPanel ); m_pSizerCamposBusqueda->Add( m_pAdvancedSearchPanel, 1, wxEXPAND | wxALL, 5 ); bSizer20->Add( m_pSizerCamposBusqueda, 1, wxEXPAND, 5 ); m_pSearchPanel->SetSizer( bSizer20 ); m_pSearchPanel->Layout(); bSizer20->Fit( m_pSearchPanel ); m_pMainSizer->Add( m_pSearchPanel, 0, wxEXPAND, 5 ); m_splitter1 = new wxSplitterWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3D ); m_splitter1->Connect( wxEVT_IDLE, wxIdleEventHandler( HistoryPanel3Base::m_splitter1OnIdle ), NULL, this ); m_splitter1->SetMinimumPaneSize( 20 ); m_pPanelResults = new wxPanel( m_splitter1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelResults->SetMinSize( wxSize( -1,100 ) ); m_pTreeListSizer = new wxBoxSizer( wxVERTICAL ); m_pPanelResults->SetSizer( m_pTreeListSizer ); m_pPanelResults->Layout(); m_pTreeListSizer->Fit( m_pPanelResults ); m_pPanelPreviews = new wxPanel( m_splitter1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelPreviews->SetMinSize( wxSize( -1,100 ) ); wxBoxSizer* bSizer71; bSizer71 = new wxBoxSizer( wxHORIZONTAL ); m_pThumbnails = new wxThumbnailCtrl(m_pPanelPreviews, -1, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL|wxTH_MULTIPLE_SELECT); bSizer71->Add( m_pThumbnails, 20, wxEXPAND, 5 ); ViewInteractor2D = new wxVTKRenderWindowInteractor(m_pPanelPreviews, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxFULL_REPAINT_ON_RESIZE, wxT("")); ViewImage2D = vtkSmartPointer ::New(); vtkSmartPointer rend1 = vtkSmartPointer::New(); ViewImage2D->SetRenderWindow ( this->ViewInteractor2D->GetRenderWindow() ); ViewImage2D->SetRenderer (rend1); bSizer71->Add( ViewInteractor2D, 18, wxEXPAND, 5 ); m_pHideInteractorPanel = new wxPanel( m_pPanelPreviews, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHideInteractorPanel->SetBackgroundColour( wxColour( 0, 0, 0 ) ); m_pHideInteractorPanel->Hide(); bSizer71->Add( m_pHideInteractorPanel, 18, wxEXPAND, 5 ); m_pPanelPreviews->SetSizer( bSizer71 ); m_pPanelPreviews->Layout(); bSizer71->Fit( m_pPanelPreviews ); m_splitter1->SplitHorizontally( m_pPanelResults, m_pPanelPreviews, 0 ); m_pMainSizer->Add( m_splitter1, 1, wxEXPAND, 5 ); this->SetSizer( m_pMainSizer ); this->Layout(); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( HistoryPanel3Base::OnClose ) ); this->Connect( wxEVT_IDLE, wxIdleEventHandler( HistoryPanel3Base::OnHistoryPanelIdle ) ); m_pAdvancedSearchButton->Connect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( HistoryPanel3Base::OnAdvancedSearchToggled ), NULL, this ); m_pAnyDate->Connect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pAnyDate->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pTodayAM->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pTodayAM->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pTodayPM->Connect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pTodayPM->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pToday->Connect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pToday->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pYesterday->Connect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pYesterday->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pLastWeek->Connect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pLastWeek->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pLastMonth->Connect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pLastMonth->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pLastThreeMonths->Connect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pLastThreeMonths->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pBetween->Connect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pBetween->Connect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pTextControlFechaDesde->Connect( wxEVT_DATE_CHANGED, wxDateEventHandler( HistoryPanel3Base::OnDateChanged ), NULL, this ); m_pTextControlFechaDesde->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pTextControlFechaHasta->Connect( wxEVT_DATE_CHANGED, wxDateEventHandler( HistoryPanel3Base::OnDateChanged ), NULL, this ); m_pTextControlFechaHasta->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); } HistoryPanel3Base::~HistoryPanel3Base() { // Disconnect Events this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( HistoryPanel3Base::OnClose ) ); this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( HistoryPanel3Base::OnHistoryPanelIdle ) ); m_pAdvancedSearchButton->Disconnect( wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler( HistoryPanel3Base::OnAdvancedSearchToggled ), NULL, this ); m_pAnyDate->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pAnyDate->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pTodayAM->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pTodayAM->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pTodayPM->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pTodayPM->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pToday->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pToday->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pYesterday->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pYesterday->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pLastWeek->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pLastWeek->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pLastMonth->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pLastMonth->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pLastThreeMonths->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pLastThreeMonths->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pBetween->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pBetween->Disconnect( wxEVT_COMMAND_RADIOBUTTON_SELECTED, wxCommandEventHandler( HistoryPanel3Base::OnSearchChange ), NULL, this ); m_pTextControlFechaDesde->Disconnect( wxEVT_DATE_CHANGED, wxDateEventHandler( HistoryPanel3Base::OnDateChanged ), NULL, this ); m_pTextControlFechaDesde->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); m_pTextControlFechaHasta->Disconnect( wxEVT_DATE_CHANGED, wxDateEventHandler( HistoryPanel3Base::OnDateChanged ), NULL, this ); m_pTextControlFechaHasta->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( HistoryPanel3Base::OnKeyDownFormulario ), NULL, this ); } ConfirmDeleteDialogBase::ConfirmDeleteDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 550,220 ), wxDefaultSize ); wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxVERTICAL ); m_body = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer22; bSizer22 = new wxBoxSizer( wxVERTICAL ); m_pTitled = new TitledPanel( m_body, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pTitled->SetToolTip( _("Confirm removal") ); wxBoxSizer* bSizer23; bSizer23 = new wxBoxSizer( wxVERTICAL ); bSizer23->Add( 0, 0, 1, wxEXPAND, 5 ); m_pLabelEliminar = new wxStaticText( m_pTitled, wxID_ANY, _("Are you sure you want to delete "), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelEliminar->Wrap( 450 ); bSizer23->Add( m_pLabelEliminar, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 5 ); bSizer23->Add( 0, 0, 1, wxEXPAND, 5 ); m_pTitled->SetSizer( bSizer23 ); m_pTitled->Layout(); bSizer23->Fit( m_pTitled ); bSizer22->Add( m_pTitled, 1, wxEXPAND, 5 ); m_body->SetSizer( bSizer22 ); m_body->Layout(); bSizer22->Fit( m_body ); bSizer5->Add( m_body, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxHORIZONTAL ); bSizer7->Add( 0, 0, 1, wxEXPAND, 5 ); m_pEliminar = new wxButton( m_pFooter, wxID_ANY, _("Remove"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer7->Add( m_pEliminar, 0, wxRIGHT, 5 ); m_pCancelar = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); m_pCancelar->SetDefault(); bSizer7->Add( m_pCancelar, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer7 ); m_pFooter->Layout(); bSizer7->Fit( m_pFooter ); bSizer5->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer5 ); this->Layout(); bSizer5->Fit( this ); this->Centre( wxBOTH ); // Connect Events m_pEliminar->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfirmDeleteDialogBase::OnEliminarClick ), NULL, this ); m_pCancelar->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfirmDeleteDialogBase::OnCancelarClick ), NULL, this ); } ConfirmDeleteDialogBase::~ConfirmDeleteDialogBase() { // Disconnect Events m_pEliminar->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfirmDeleteDialogBase::OnEliminarClick ), NULL, this ); m_pCancelar->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( ConfirmDeleteDialogBase::OnCancelarClick ), NULL, this ); } OpenWithDialogBase::OpenWithDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 500,350 ), wxDefaultSize ); wxBoxSizer* bSizer2; bSizer2 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_pPanelTitulo = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelTitulo->SetToolTip( _("Choose the view you want to use to open file/s") ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxVERTICAL ); m_pListaVistas = new wxListBox( m_pPanelTitulo, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE ); bSizer16->Add( m_pListaVistas, 1, wxEXPAND, 5 ); m_pCheckUtilizarSiempre = new wxCheckBox( m_pPanelTitulo, wxID_ANY, _("Always use this view to open these files"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_pCheckUtilizarSiempre, 0, wxTOP, 5 ); m_pPanelTitulo->SetSizer( bSizer16 ); m_pPanelTitulo->Layout(); bSizer16->Fit( m_pPanelTitulo ); bSizer15->Add( m_pPanelTitulo, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer15 ); m_pBody->Layout(); bSizer15->Fit( m_pBody ); bSizer2->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxHORIZONTAL ); bSizer3->Add( 0, 0, 1, wxEXPAND, 5 ); m_button3 = new wxButton( m_pFooter, wxID_OK, _("Accept"), wxDefaultPosition, wxDefaultSize, 0 ); m_button3->SetDefault(); bSizer3->Add( m_button3, 0, wxRIGHT, 5 ); m_button4 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer3->Add( m_button4, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer3 ); m_pFooter->Layout(); bSizer3->Fit( m_pFooter ); bSizer2->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer2 ); this->Layout(); bSizer2->Fit( this ); // Connect Events m_pListaVistas->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( OpenWithDialogBase::OnAceptarClick ), NULL, this ); m_button3->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OpenWithDialogBase::OnAceptarClick ), NULL, this ); } OpenWithDialogBase::~OpenWithDialogBase() { // Disconnect Events m_pListaVistas->Disconnect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( OpenWithDialogBase::OnAceptarClick ), NULL, this ); m_button3->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( OpenWithDialogBase::OnAceptarClick ), NULL, this ); } SynchronizeDialogBase::SynchronizeDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 520,250 ), wxDefaultSize ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pPanelMessage = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelMessage->SetToolTip( _("Synchronize files") ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxVERTICAL ); m_pLabel = new wxStaticText( m_pPanelMessage, wxID_ANY, _("There are files that has to be downloaded to local database before executing this action, \ndo you want to synchornize files now?"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel->Wrap( -1 ); bSizer4->Add( m_pLabel, 0, wxALL, 5 ); m_pPanelMessage->SetSizer( bSizer4 ); m_pPanelMessage->Layout(); bSizer4->Fit( m_pPanelMessage ); bSizer7->Add( m_pPanelMessage, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer15->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxHORIZONTAL ); bSizer16->Add( 0, 0, 1, wxEXPAND, 5 ); m_button4 = new wxButton( m_pFooter, wxID_OK, _("Synchronize"), wxDefaultPosition, wxDefaultSize, 0 ); m_button4->SetDefault(); bSizer16->Add( m_button4, 0, wxRIGHT, 5 ); m_button5 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button5, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer16 ); m_pFooter->Layout(); bSizer16->Fit( m_pFooter ); bSizer15->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer15 ); this->Layout(); bSizer15->Fit( this ); this->Centre( wxBOTH ); // Connect Events m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SynchronizeDialogBase::OnSynchronize ), NULL, this ); } SynchronizeDialogBase::~SynchronizeDialogBase() { // Disconnect Events m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SynchronizeDialogBase::OnSynchronize ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/history3/historypanel3base.h000066400000000000000000000156211314736454600245650ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __HISTORYPANEL3BASE_H__ #define __HISTORYPANEL3BASE_H__ #include #include #include class BodyPanel; class FooterPanel; class TitledPanel; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #undef __DEPRECATED #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class HistoryPanel3Base /////////////////////////////////////////////////////////////////////////////// class HistoryPanel3Base : public wxFrame { private: protected: wxBoxSizer* m_pSizerToolBar; wxPanel* m_pSearchPanel; wxStaticText* m_pPatientLabelStr; wxComboBox* m_pPatientCombo; wxToggleButton* m_pAdvancedSearchButton; wxPanel* m_pAdvancedSearchPanel; wxRadioButton* m_pAnyDate; wxRadioButton* m_pTodayAM; wxRadioButton* m_pTodayPM; wxRadioButton* m_pToday; wxRadioButton* m_pYesterday; wxRadioButton* m_pLastWeek; wxRadioButton* m_pLastMonth; wxRadioButton* m_pLastThreeMonths; wxRadioButton* m_pBetween; wxDatePickerCtrl* m_pTextControlFechaDesde; wxDatePickerCtrl* m_pTextControlFechaHasta; wxGridSizer* m_pModalitySizer; wxSplitterWindow* m_splitter1; wxPanel* m_pPanelResults; wxBoxSizer* m_pTreeListSizer; wxPanel* m_pPanelPreviews; wxThumbnailCtrl* m_pThumbnails; vtkSmartPointer ViewInteractor2D; vtkSmartPointer ViewImage2D; wxPanel* m_pHideInteractorPanel; // Virtual event handlers, overide them in your derived class virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } virtual void OnHistoryPanelIdle( wxIdleEvent& event ) { event.Skip(); } virtual void OnAdvancedSearchToggled( wxCommandEvent& event ) { event.Skip(); } virtual void OnKeyDownFormulario( wxKeyEvent& event ) { event.Skip(); } virtual void OnSearchChange( wxCommandEvent& event ) { event.Skip(); } virtual void OnDateChanged( wxDateEvent& event ) { event.Skip(); } public: wxMenuBar* m_pMenuBar; HistoryPanel3Base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Medical history"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 800,600 ), long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU|wxTAB_TRAVERSAL ); ~HistoryPanel3Base(); void m_splitter1OnIdle( wxIdleEvent& ) { m_splitter1->SetSashPosition( 0 ); m_splitter1->Disconnect( wxEVT_IDLE, wxIdleEventHandler( HistoryPanel3Base::m_splitter1OnIdle ), NULL, this ); } }; /////////////////////////////////////////////////////////////////////////////// /// Class ConfirmDeleteDialogBase /////////////////////////////////////////////////////////////////////////////// class ConfirmDeleteDialogBase : public wxDialog { private: protected: BodyPanel* m_body; TitledPanel* m_pTitled; wxStaticText* m_pLabelEliminar; FooterPanel* m_pFooter; wxButton* m_pEliminar; wxButton* m_pCancelar; // Virtual event handlers, overide them in your derived class virtual void OnEliminarClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnCancelarClick( wxCommandEvent& event ) { event.Skip(); } public: ConfirmDeleteDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Confirm removal"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~ConfirmDeleteDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class OpenWithDialogBase /////////////////////////////////////////////////////////////////////////////// class OpenWithDialogBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pPanelTitulo; wxListBox* m_pListaVistas; wxCheckBox* m_pCheckUtilizarSiempre; FooterPanel* m_pFooter; wxButton* m_button3; wxButton* m_button4; // Virtual event handlers, overide them in your derived class virtual void OnAceptarClick( wxCommandEvent& event ) { event.Skip(); } public: OpenWithDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Open With ..."), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~OpenWithDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class SynchronizeDialogBase /////////////////////////////////////////////////////////////////////////////// class SynchronizeDialogBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pPanelMessage; wxStaticText* m_pLabel; FooterPanel* m_pFooter; wxButton* m_button4; wxButton* m_button5; // Virtual event handlers, overide them in your derived class virtual void OnSynchronize( wxCommandEvent& event ) { event.Skip(); } public: SynchronizeDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Synchronize files"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~SynchronizeDialogBase(); }; } // namespace GUI } // namespace GNC #endif //__HISTORYPANEL3BASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/history3/historytablemodel.cpp000066400000000000000000000666751314736454600252320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "historytablemodel.h" #include
    #include #include #include #define SIZE_ICONOS 16 #define ICONO_LOCAL_DATABASE 0 #define ICONO_LOCAL_LINKED 1 #define ICONO_WADO_LINKED 2 #define ICONO_LOCAL_DATABASE_RECENT 3 #define ICONO_LOCAL_LINKED_RECENT 4 #define ICONO_WADO_LINKED_RECENT 5 GNC::GUI::HistoryNode::HistoryNode(const GNC::GCS::IHistoryController::StudyModel& study): pParent(NULL) { pStudy = GNC::GCS::Ptr(new GNC::GCS::IHistoryController::StudyModel(study)); } GNC::GUI::HistoryNode::HistoryNode(const GNC::GCS::IHistoryController::SeriesModel& series, HistoryNode* parent):pParent(parent) { pSeries = GNC::GCS::Ptr(new GNC::GCS::IHistoryController::SeriesModel(series)); } GNC::GUI::HistoryNode::HistoryNode(): pParent(NULL) { } GNC::GUI::HistoryNode::~HistoryNode() { for (TMapIndex::iterator it = seriesMap.begin(); it != seriesMap.end(); ++it) { delete (*it).second; } } bool GNC::GUI::HistoryNode::IsStudyModel() const { return pStudy.IsValid(); } bool GNC::GUI::HistoryNode::IsSeriesModel() const { return pSeries.IsValid(); } GNC::GUI::HistoryNode* GNC::GUI::HistoryNode::GetParent() { return pParent; } //if creation datetime is < now - 2 h => si se ha recibido antes de dos horas bool GNC::GUI::HistoryNode::IsRecent() { wxDateTime creationDate; if (IsSeriesModel()) { creationDate.ParseFormat(wxString::FromUTF8( GetSeriesModel()->created_time.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); } else { creationDate.ParseFormat(wxString::FromUTF8( GetStudyModel()->created_time.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); } wxTimeSpan diff = wxDateTime::Now().Subtract(creationDate); return diff.GetHours() < 2; } void GNC::GUI::HistoryNode::UpdateStudyModel(const GNC::GCS::IHistoryController::StudyModel& studyModel, wxDataViewItemArray& itemsAdded, wxDataViewItemArray& itemsChanged) { if (pStudy.IsValid()) { *pStudy = studyModel; //if it's expanded... retry... if (!seriesMap.empty()) { //insert or update series.... GNC::GCS::ILocker lock(this); GNC::GCS::IHistoryController::SeriesModelList seriesList; GNC::GCS::IHistoryController::Instance()->GetSeriesFromStudy(GetStudyModel()->pk, seriesList); for(GNC::GCS::IHistoryController::SeriesModelList::const_iterator it = seriesList.begin(); it != seriesList.end(); ++it) { if (seriesMap.find((*it).pk) != seriesMap.end()) { seriesMap[(*it).pk]->UpdateSeriesModel((*it)); itemsChanged.push_back(wxDataViewItem(seriesMap[(*it).pk])); } else { HistoryNode* seriesNode = new HistoryNode((*it), this); seriesMap[(*it).pk] = seriesNode; itemsAdded.push_back(wxDataViewItem(seriesMap[(*it).pk])); } } } } } void GNC::GUI::HistoryNode::UpdateSeriesModel(const GNC::GCS::IHistoryController::SeriesModel& seriesModel) { if (pSeries.IsValid()) { *pSeries = seriesModel; } } const GNC::GCS::Ptr& GNC::GUI::HistoryNode::GetStudyModel() { return pStudy; } const GNC::GCS::Ptr& GNC::GUI::HistoryNode::GetSeriesModel() { return pSeries; } unsigned int GNC::GUI::HistoryNode::GetChildren(wxDataViewItemArray &array ) { if (IsSeriesModel()) { return 0; } else if (IsStudyModel()) { ReloadSeries(); GNC::GCS::ILocker lock(this); for (TMapIndex::const_iterator it = seriesMap.begin(); it != seriesMap.end(); ++it) { array.Add( wxDataViewItem( (void*) (*it).second) ); } return seriesMap.size(); } else { return 0; } } void GNC::GUI::HistoryNode::GetSeriesModel(SeriesModelList& seriesList) { if (IsSeriesModel()) { seriesList.push_back(GetSeriesModel()); } else if (IsStudyModel()) { ReloadSeries(); GNC::GCS::ILocker lock(this); for (TMapIndex::const_iterator it = seriesMap.begin(); it != seriesMap.end(); ++it) { seriesList.push_back((*it).second->GetSeriesModel()); } } } void GNC::GUI::HistoryNode::ReloadSeries() { if (IsSeriesModel()) { return; } else { if (seriesMap.empty()) { GNC::GCS::ILocker lock(this); GNC::GCS::IHistoryController::SeriesModelList seriesList; GNC::GCS::IHistoryController::Instance()->GetSeriesFromStudy(GetStudyModel()->pk, seriesList); for(GNC::GCS::IHistoryController::SeriesModelList::const_iterator it = seriesList.begin(); it != seriesList.end(); ++it) { HistoryNode* seriesNode = new HistoryNode((*it), this); seriesMap[(*it).pk] = seriesNode; } } } } void GNC::GUI::HistoryNode::DeleteSeries(long seriesPk) { GNC::GCS::ILocker lock(this); if (seriesMap.find(seriesPk) != seriesMap.end()) { delete seriesMap.find(seriesPk)->second; seriesMap.erase(seriesMap.find(seriesPk)); } } ///////////////////////////// GNC::GUI::HistoryTableModel::HistoryTableModel() { m_pImageList = new wxImageList(SIZE_ICONOS,SIZE_ICONOS,true); wxBitmap bmp; bmp = GinkgoResourcesManager::History::GetIcoLocalFile(); if (bmp.IsOk()) { m_pImageList->Add(bmp); } bmp = GinkgoResourcesManager::History::GetIcoLocalLinked(); if (bmp.IsOk()) { m_pImageList->Add(bmp); } bmp = GinkgoResourcesManager::History::GetIcoWadoLinked(); if (bmp.IsOk()) { m_pImageList->Add(bmp); } bmp = GinkgoResourcesManager::History::GetIcoLocalFileRecent(); if (bmp.IsOk()) { m_pImageList->Add(bmp); } bmp = GinkgoResourcesManager::History::GetIcoLocalLinkedRecent(); if (bmp.IsOk()) { m_pImageList->Add(bmp); } bmp = GinkgoResourcesManager::History::GetIcoWadoLinkedRecent(); if (bmp.IsOk()) { m_pImageList->Add(bmp); } } GNC::GUI::HistoryTableModel::~HistoryTableModel() { ClearStudyMap(); delete m_pImageList; } void GNC::GUI::HistoryTableModel::ClearStudyMap() { for (TMapIndex::iterator it = studyMap.begin(); it != studyMap.end(); ++it) { delete (*it).second; } studyMap.clear(); } unsigned int GNC::GUI::HistoryTableModel::GetColumnCount() const { return COL_HISTORY_MAX; } void GNC::GUI::HistoryTableModel::ReloadTree(const GNC::GCS::IHistoryController::StudyModelList& studyList, bool force) { if (force) { wxDataViewItemArray toDeleteList; for (TMapIndex::iterator it = studyMap.begin(); it != studyMap.end(); ++it) { toDeleteList.push_back(wxDataViewItem((*it).second)); } DeleteItems(toDeleteList); Cleared(); //delete all and reload again... wxDataViewItemArray addList; ClearStudyMap(); for (GNC::GCS::IHistoryController::StudyModelList::const_iterator it = studyList.begin(); it != studyList.end(); ++it) { HistoryNode* pNode = new HistoryNode((*it)); studyMap[(*it).pk] = pNode; addList.push_back(wxDataViewItem((void*)pNode)); } ItemsAdded(wxDataViewItem(0), addList); } else { //check for changes... //remove nodes that doesn't come in this new list std::set setOfpk; for(GNC::GCS::IHistoryController::StudyModelList::const_iterator it = studyList.begin(); it!= studyList.end(); ++it) { setOfpk.insert((*it).pk); } wxDataViewItemArray toDeleteList; for (TMapIndex::iterator itIndex = studyMap.begin(); itIndex != studyMap.end(); ++itIndex) { if (setOfpk.find((*itIndex).first) == setOfpk.end()) { toDeleteList.push_back(wxDataViewItem((void*)(*itIndex).second)); } } ItemsDeleted(wxDataViewItem(0), toDeleteList); //delete nodes... for (wxDataViewItemArray::iterator it = toDeleteList.begin(); it != toDeleteList.end(); ++it) { HistoryNode* pNode = (HistoryNode*)(*it).GetID(); studyMap.erase(studyMap.find(pNode->GetStudyModel()->pk)); delete pNode; } //insert or update studies.... wxDataViewItemArray itemsAdded; wxDataViewItemArray itemsChanged; for(GNC::GCS::IHistoryController::StudyModelList::const_iterator it = studyList.begin(); it!= studyList.end(); ++it) { if (studyMap.find((*it).pk) != studyMap.end()) { //update wxDataViewItemArray itemsAddedToStudy; studyMap[(*it).pk]->UpdateStudyModel((*it), itemsAddedToStudy, itemsChanged); if (!itemsAddedToStudy.empty()) { ItemsAdded(wxDataViewItem(studyMap[(*it).pk]), itemsAddedToStudy); } } else { //create HistoryNode* pNode = new HistoryNode((*it)); studyMap[(*it).pk] = pNode; itemsAdded.push_back(wxDataViewItem(studyMap[(*it).pk])); } } ItemsChanged(itemsChanged); ItemsAdded(wxDataViewItem(NULL), itemsAdded); } } void GNC::GUI::HistoryTableModel::DeleteItems(wxDataViewItemArray& selected) { //first of all delete series Nodes... wxDataViewItemArray toDeleteList; for (wxDataViewItemArray::iterator it = selected.begin(); it != selected.end(); ++it) { if ((*it).IsOk()) { HistoryNode* pNode = (HistoryNode*) (*it).GetID(); if (pNode->IsSeriesModel()) { ItemDeleted(wxDataViewItem(pNode->GetParent()), (*it)); pNode->GetParent()->DeleteSeries(pNode->GetSeriesModel()->pk); } else { toDeleteList.push_back((*it)); } } } //then delete studies Nodes... ItemsDeleted(wxDataViewItem(0), toDeleteList); //delete nodes... for (wxDataViewItemArray::iterator it = toDeleteList.begin(); it != toDeleteList.end(); ++it) { HistoryNode* pNode = (HistoryNode*)(*it).GetID(); studyMap.erase(studyMap.find(pNode->GetStudyModel()->pk)); delete pNode; } } wxString GNC::GUI::HistoryTableModel::GetColumnType( unsigned int col ) const { switch (col) { case COL_ICON: return wxT("wxIcon"); case COL_AGE: return wxT("long"); default: return wxT("string"); } } void GNC::GUI::HistoryTableModel::GetValue( wxVariant &variant, const wxDataViewItem &item, unsigned int col ) const { if (!item.IsOk()) { return; } //if it's a study... HistoryNode* pNode = (HistoryNode*)(item.GetID()); if (pNode->IsStudyModel()) { const GNC::GCS::Ptr pModel = pNode->GetStudyModel(); switch (col) { case COL_ICON: { int icono = 0; if (pNode->IsRecent()) { switch(pModel->location) { case GNC::GCS::IHistoryController::TL_LocalDatabase: icono = ICONO_LOCAL_DATABASE_RECENT; break; case GNC::GCS::IHistoryController::TL_LocalLinked: icono = ICONO_LOCAL_LINKED_RECENT; break; case GNC::GCS::IHistoryController::TL_WadoLinked: icono = ICONO_WADO_LINKED_RECENT; break; } } else { switch(pModel->location) { case GNC::GCS::IHistoryController::TL_LocalDatabase: icono = ICONO_LOCAL_DATABASE; break; case GNC::GCS::IHistoryController::TL_LocalLinked: icono = ICONO_LOCAL_LINKED; break; case GNC::GCS::IHistoryController::TL_WadoLinked: icono = ICONO_WADO_LINKED; break; } } variant << m_pImageList->GetIcon(icono); } break; case COL_PATIENT_NAME: variant = wxString::FromUTF8(pModel->pat_name.c_str()); break; case COL_PATIENT_ID: variant = wxString::FromUTF8(pModel->pat_id.c_str()); break; case COL_AGE: variant = GetAge(pModel->pat_bithdate, pModel->study_datetime); break; case COL_MODALITY: { std::ostringstream ostr; for (std::list::const_iterator it = pModel->mods_in_study.begin(); it != pModel->mods_in_study.end(); ++it) { if (it != pModel->mods_in_study.begin()) { ostr << "/"; } ostr << (*it); } variant = wxString::FromUTF8(ostr.str().c_str()); } break; case COL_DESCRIPTION: variant = wxString::FromUTF8(pModel->study_desc.c_str()); break; case COL_DATE_TIME_ACQUIRED: { wxDateTime studyDateTime; studyDateTime.ParseFormat(wxString::FromUTF8( pModel->study_datetime.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); if(studyDateTime.IsValid()) { variant = wxString(studyDateTime.Format(_("%m/%d/%Y %H:%M:%S"), wxDateTime::TimeZone(wxDateTime::GMT1))); } else { variant = _("00/00/0000 00:00:00"); } } break; case COL_DATE_TIME_ADDED: { wxDateTime studyDateTime; studyDateTime.ParseFormat(wxString::FromUTF8( pModel->created_time.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); if(studyDateTime.IsValid()) { variant = wxString(studyDateTime.Format(_("%m/%d/%Y %H:%M:%S"), wxDateTime::TimeZone(wxDateTime::GMT1))); } else { variant = _("00/00/0000 00:00:00"); } } break; case COL_ACCNUMBER: variant = wxString::FromUTF8(pModel->study_acc_no.c_str()); break; default: LOG_ERROR("HistoryTableModel", "wrong column id " << col); break; } } else if (pNode->IsSeriesModel()) { const GNC::GCS::Ptr pModel = pNode->GetSeriesModel(); switch (col) { case COL_ICON: { int icono = 0; switch(pModel->location) { case GNC::GCS::IHistoryController::TL_LocalDatabase: icono = ICONO_LOCAL_DATABASE; break; case GNC::GCS::IHistoryController::TL_LocalLinked: icono = ICONO_LOCAL_LINKED; break; case GNC::GCS::IHistoryController::TL_WadoLinked: icono = ICONO_WADO_LINKED; break; } variant << m_pImageList->GetIcon(icono); } break; case COL_PATIENT_NAME: variant = wxString::FromUTF8(pModel->series_desc.c_str()); break; case COL_PATIENT_ID: variant = wxEmptyString; break; case COL_AGE: //nothing to do... variant = wxString(pStudyModel->pat_name); break; case COL_MODALITY: variant = wxString::FromUTF8(pModel->series_modality.c_str()); break; case COL_DESCRIPTION: variant = wxString::FromUTF8(pModel->series_desc.c_str()); break; case COL_DATE_TIME_ACQUIRED: { wxDateTime seriesDateTime; seriesDateTime.ParseFormat(wxString::FromUTF8( pModel->series_datetime.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); if(seriesDateTime.IsValid()) { variant = wxString(seriesDateTime.Format(_("%m/%d/%Y %H:%M:%S"), wxDateTime::TimeZone(wxDateTime::GMT1))); } else { variant = _("00/00/0000 00:00:00"); } } break; case COL_DATE_TIME_ADDED: { wxDateTime seriesDateTime; seriesDateTime.ParseFormat(wxString::FromUTF8( pModel->created_time.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); if(seriesDateTime.IsValid()) { variant = wxString(seriesDateTime.Format(_("%m/%d/%Y %H:%M:%S"), wxDateTime::TimeZone(wxDateTime::GMT1))); } else { variant = _("00/00/0000 00:00:00"); } } break; case COL_ACCNUMBER: //nothing to do variant = wxString(pStudyModel->pat_name); break; default: LOG_ERROR("HistoryTableModel", "wrong column id " << col); break; } } else { LOG_ERROR("HistoryTableModel", "invalid node"); } } bool GNC::GUI::HistoryTableModel::SetValue( const wxVariant &/*variant*/,const wxDataViewItem &/*item*/, unsigned int /*col*/ ) { //model cant be modified... return false; } bool GNC::GUI::HistoryTableModel::IsEnabled( const wxDataViewItem &/*item*/, unsigned int/* col*/ ) const { return true; } wxDataViewItem GNC::GUI::HistoryTableModel::GetParent( const wxDataViewItem &item ) const { if (!item.IsOk()) { return wxDataViewItem(0); } //if it's a study... HistoryNode* pNode = (HistoryNode*)(item.GetID()); return wxDataViewItem( (void*) pNode->GetParent() ); } bool GNC::GUI::HistoryTableModel::IsContainer( const wxDataViewItem &item ) const { if (!item.IsOk()) { return true; } HistoryNode* pNode = (HistoryNode*)(item.GetID()); return pNode->IsStudyModel(); } bool GNC::GUI::HistoryTableModel::HasContainerColumns (const wxDataViewItem &/*item*/) const { return true; } bool GNC::GUI::HistoryTableModel::HasValue (const wxDataViewItem &item, unsigned col) const { if (!item.IsOk()) { return false; } //if it's a study... HistoryNode* pNode = (HistoryNode*)(item.GetID()); return (pNode->IsStudyModel()) || (pNode->IsSeriesModel() && (col!=COL_PATIENT_ID && col != COL_AGE && col!=COL_ACCNUMBER)); } unsigned int GNC::GUI::HistoryTableModel::GetChildren( const wxDataViewItem &parent, wxDataViewItemArray &array ) const { HistoryNode *node = (HistoryNode*) parent.GetID(); if (!node) { unsigned int count = studyMap.size(); for (TMapIndex::const_iterator it = studyMap.begin(); it != studyMap.end(); ++it) { array.Add( wxDataViewItem( (void*) (*it).second) ); } return count; } else if (node->IsStudyModel()) { //return series from study... node->GetChildren(array); return array.Count(); } else { //series doesn't have children return 0; } } int GNC::GUI::HistoryTableModel::Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, unsigned int column, bool ascending ) const { if ((column == COL_DATE_TIME_ACQUIRED || column == COL_DATE_TIME_ADDED) && item1.IsOk() && item2.IsOk()) { HistoryNode *node1 = (HistoryNode*) item1.GetID(); HistoryNode *node2 = (HistoryNode*) item2.GetID(); wxDateTime date1, date2; if (column == COL_DATE_TIME_ACQUIRED) { if (node1->IsSeriesModel()) { date1.ParseFormat(wxString::FromUTF8( node1->GetSeriesModel()->series_datetime.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); } else { date1.ParseFormat(wxString::FromUTF8( node1->GetStudyModel()->study_datetime.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); } if (node2->IsSeriesModel()) { date2.ParseFormat(wxString::FromUTF8( node2->GetSeriesModel()->series_datetime.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); } else { date2.ParseFormat(wxString::FromUTF8( node2->GetStudyModel()->study_datetime.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); } } else { if (node1->IsSeriesModel()) { date1.ParseFormat(wxString::FromUTF8( node1->GetSeriesModel()->created_time.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); } else { date1.ParseFormat(wxString::FromUTF8( node1->GetStudyModel()->created_time.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); } if (node2->IsSeriesModel()) { date2.ParseFormat(wxString::FromUTF8( node2->GetSeriesModel()->created_time.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); } else { date2.ParseFormat(wxString::FromUTF8( node2->GetStudyModel()->created_time.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); } } int res = 0; if (date1.IsValid() && date2.IsValid()) { wxTimeSpan diff = date1.Subtract(date2); if (diff.IsPositive()) { res = 1; } else { res = -1; } } else if (date1.IsValid()) { res = 1; } else if (date2.IsValid()) { res =-1; } else { res = 0; } if (!ascending) { if (res == 1) { res = -1; } else if (res == -1) { res = 1; } } return res; } return wxDataViewModel::Compare( item1, item2, column, ascending ); } long GNC::GUI::HistoryTableModel::GetAge(const std::string& patBirthDate, const std::string& studyDateTime) const { wxDateTime birthDate, studyDate; birthDate.ParseFormat(wxString::FromUTF8( patBirthDate.c_str() ).GetData(), wxT("%Y-%m-%d"), wxDefaultDateTime); studyDate.ParseFormat(wxString::FromUTF8( studyDateTime.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); if (!birthDate.IsValid() || !studyDate.IsValid()) { return -1; } if (studyDate.GetYear() == birthDate.GetYear()) { return 0; } else { if (studyDate.GetMonth() > birthDate.GetMonth()) { return studyDate.GetYear() - birthDate.GetYear(); } else if (studyDate.GetMonth() < birthDate.GetMonth()) { return studyDate.GetYear() - birthDate.GetYear() -1; } else { if (studyDate.GetDay() >= birthDate.GetDay()) { return studyDate.GetYear() - birthDate.GetYear(); } else { return studyDate.GetYear() - birthDate.GetYear() -1; } } } } ginkgocadx-3.8.7/cadxcore/main/gui/history3/historytablemodel.h000066400000000000000000000105621314736454600246570ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include
    #define COL_ICON 0 #define COL_PATIENT_NAME 1 #define COL_PATIENT_ID 2 #define COL_AGE 3 #define COL_MODALITY 4 #define COL_DESCRIPTION 5 #define COL_DATE_TIME_ACQUIRED 6 #define COL_ACCNUMBER 7 #define COL_DATE_TIME_ADDED 8 #define COL_HISTORY_MAX 9 class wxImageList; namespace GNC { namespace GUI { class HistoryNode: GNC::GCS::ILockable { public: typedef std::list > SeriesModelList; HistoryNode(const GNC::GCS::IHistoryController::StudyModel& study); HistoryNode(const GNC::GCS::IHistoryController::SeriesModel& series, HistoryNode* parent); HistoryNode(); virtual ~HistoryNode(); bool IsStudyModel() const; bool IsSeriesModel() const; HistoryNode* GetParent(); //if creation datetime is < now - 2 h => si se ha recibido antes de dos horas bool IsRecent(); void UpdateStudyModel(const GNC::GCS::IHistoryController::StudyModel& studyModel, wxDataViewItemArray& itemsAdded, wxDataViewItemArray& itemsChanged); void UpdateSeriesModel(const GNC::GCS::IHistoryController::SeriesModel& seriesModel); const GNC::GCS::Ptr& GetStudyModel(); const GNC::GCS::Ptr& GetSeriesModel(); virtual unsigned int GetChildren(wxDataViewItemArray &array) ; virtual void GetSeriesModel(SeriesModelList& seriesList); virtual void ReloadSeries(); virtual void DeleteSeries(long seriesPk); protected: GNC::GCS::Ptr pStudy; GNC::GCS::Ptr pSeries; typedef std::map TMapIndex; std::map seriesMap; HistoryNode* pParent; }; class HistoryTableModel: public wxDataViewModel { public: HistoryTableModel(); ~HistoryTableModel(); void ClearStudyMap(); //wxDataViewModel methods virtual unsigned int GetColumnCount() const; virtual wxString GetColumnType( unsigned int col ) const; virtual void GetValue( wxVariant &variant, const wxDataViewItem &item, unsigned int col ) const; virtual bool SetValue( const wxVariant &variant, const wxDataViewItem &item, unsigned int col ); virtual bool IsEnabled( const wxDataViewItem &item, unsigned int col ) const; virtual wxDataViewItem GetParent( const wxDataViewItem &item ) const; virtual bool IsContainer( const wxDataViewItem &item ) const; bool HasValue (const wxDataViewItem &item, unsigned col) const; virtual bool HasContainerColumns (const wxDataViewItem &item) const ; virtual unsigned int GetChildren( const wxDataViewItem &parent, wxDataViewItemArray &array ) const; int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, unsigned int column, bool ascending ) const; // void ReloadTree(const GNC::GCS::HistoryController::StudyModelList& studyList, bool force); void DeleteItems(wxDataViewItemArray& selected); protected: long GetAge(const std::string& patBirthDate, const std::string& studyDateTime) const; typedef std::map TMapIndex; std::map studyMap; wxImageList* m_pImageList; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/history3/historytoolmenu.cpp000066400000000000000000000327251314736454600247510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include #include #include #include "historytoolmenu.h" #include "historypanel3.h" #include #include
    #include
    #define SIZE_ICONOS 16 #define ID_REMOVE 1766 #define ID_REMOVE_ALL 1780 #define ID_FILE_DROP_DOWN 1781 #define ID_SELECT_ALL 1782 #define ID_DESELECT 1783 #define ID_CLOSE_HISTORY 1784 GNC::GUI::HistoryToolMenu::HistoryToolMenu(HistoryPanel3* pParent) : wxGinkgoToolBar(pParent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_DEFAULT_STYLE ) { HistoryPanel = pParent; SetToolBitmapSize(wxSize(16,16)); //drop down this->Connect(ID_FILE_DROP_DOWN,wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(HistoryToolMenu::OnDropDownOpenFile),NULL, this ); this->Connect(ID_REMOVE,wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(HistoryToolMenu::OnDropDownRemove),NULL, this ); this->Connect( ID_REMOVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(HistoryToolMenu::OnRemove),NULL, this ); this->Connect( ID_REMOVE_ALL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(HistoryToolMenu::OnRemoveAll),NULL, this ); Reload(); } GNC::GUI::HistoryToolMenu::~HistoryToolMenu() { this->Disconnect(ID_FILE_DROP_DOWN,wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(HistoryToolMenu::OnDropDownOpenFile),NULL, this ); this->Disconnect(ID_REMOVE,wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(HistoryToolMenu::OnDropDownRemove),NULL, this ); this->Disconnect( ID_REMOVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(HistoryToolMenu::OnRemove),NULL, this ); this->Disconnect( ID_REMOVE_ALL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(HistoryToolMenu::OnRemoveAll),NULL, this ); } void GNC::GUI::HistoryToolMenu::Reload() { wxMenuBar* pMenuBar = HistoryPanel->m_pMenuBar; while (pMenuBar->GetMenuCount() > 0) delete pMenuBar->Remove(0); wxMenu* pHistoryMenu = new wxMenu(); wxMenu* pEditMenu = new wxMenu(); wxMenu* pExportMenu = new wxMenu(); //se vacía la barra y se borran los menus que se crearon en la anterior pasada wxWindowDisabler dis; while (GetToolCount() > 0) { DeleteByIndex(0); } { //acquisition if(GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire")) { AddTool(ID_FILE_DROP_DOWN,_("Acquire"),GinkgoResourcesManager::MenuIcons::GetIcoOpenDir(),_("Acquire")); ForceSetToolDropDown(ID_FILE_DROP_DOWN, true); AddSeparator(); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(HistoryPanel, pHistoryMenu, GNC::GCS::IHistoryTool::TFamily_Open); pHistoryMenu->AppendSeparator(); } //dicomization if(GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","import")) { GNC::HistoryToolsController::Instance()->AppendsToolInToolBar(this, GNC::GCS::IHistoryTool::TFamily_Dicomize); AddSeparator(); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(HistoryPanel, pHistoryMenu, GNC::GCS::IHistoryTool::TFamily_Dicomize); pHistoryMenu->AppendSeparator(); } //Q/R if(GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire") && GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","pacs_acquisition")) { GNC::HistoryToolsController::Instance()->AppendsToolInToolBar(this, GNC::GCS::IHistoryTool::TFamily_Q_R); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(HistoryPanel, pHistoryMenu, GNC::GCS::IHistoryTool::TFamily_Q_R); } AddSeparator(); AddTool(ID_REMOVE,_("Remove"),GinkgoResourcesManager::MenuIcons::GetIcoEliminar(),_("Remove")); ForceSetToolDropDown(ID_REMOVE, true); GNC::HistoryToolsController::Instance()->AppendsToolInToolBar(this, GNC::GCS::IHistoryTool::TFamily_Delete); AddSeparator(); AppendEditTools(pEditMenu, HistoryPanel); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(HistoryPanel, pEditMenu, GNC::GCS::IHistoryTool::TFamily_Delete); pEditMenu->AppendSeparator(); GNC::HistoryToolsController::Instance()->AppendsToolInToolBar(this, GNC::GCS::IHistoryTool::TFamily_ShowMetadata); AddSeparator(); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(HistoryPanel, pEditMenu, GNC::GCS::IHistoryTool::TFamily_ShowMetadata); pEditMenu->AppendSeparator(); if(GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","pacs_upload")) { GNC::HistoryToolsController::Instance()->AppendsToolInToolBar(this, GNC::GCS::IHistoryTool::TFamily_Send); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(HistoryPanel, pExportMenu, GNC::GCS::IHistoryTool::TFamily_Send); pExportMenu->AppendSeparator(); } AddSeparator(); GNC::HistoryToolsController::Instance()->AppendsToolInToolBar(this, GNC::GCS::IHistoryTool::TFamily_Anonymize); AddSeparator(); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(HistoryPanel, pEditMenu, GNC::GCS::IHistoryTool::TFamily_Anonymize); pEditMenu->AppendSeparator(); if(GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","export")) { GNC::HistoryToolsController::Instance()->AppendsToolInToolBar(this, GNC::GCS::IHistoryTool::TFamily_Export); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(HistoryPanel, pExportMenu, GNC::GCS::IHistoryTool::TFamily_Export); pExportMenu->AppendSeparator(); } //todo grabar cds GNC::HistoryToolsController::Instance()->AppendsToolInToolBar(this, GNC::GCS::IHistoryTool::TFamily_Other); GNC::HistoryToolsController::Instance()->AppendsToolInMenu(HistoryPanel, pExportMenu, GNC::GCS::IHistoryTool::TFamily_Other); pExportMenu->AppendSeparator(); if (pHistoryMenu->GetMenuItemCount() > 0) { while (pHistoryMenu->GetMenuItems().back()->IsSeparator()) { pHistoryMenu->Delete(pHistoryMenu->GetMenuItems().back()); } pHistoryMenu->AppendSeparator(); pHistoryMenu->Append(ID_CLOSE_HISTORY, _("Close history")+wxString(wxT(" \tAlt+q")), _("Close history")); pMenuBar->Append(pHistoryMenu, _("History")); HistoryPanel->Connect( ID_CLOSE_HISTORY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(HistoryToolMenu::OnCloseWindow),NULL, this ); } else { delete pHistoryMenu; } if (pEditMenu->GetMenuItemCount() > 0) { while (pEditMenu->GetMenuItems().back()->IsSeparator()) { pEditMenu->Delete(pEditMenu->GetMenuItems().back()); } pMenuBar->Append(pEditMenu, _("Edit")); } else { delete pEditMenu; } if (pExportMenu->GetMenuItemCount() > 0) { while (pExportMenu->GetMenuItems().back()->IsSeparator()) { pExportMenu->Delete(pExportMenu->GetMenuItems().back()); } pMenuBar->Append(pExportMenu, _("Export")); } else { delete pExportMenu; } Realize(); } } void GNC::GUI::HistoryToolMenu::OnDropDownOpenFile(wxAuiToolBarEvent& event) { wxAuiToolBar* tb = static_cast(event.GetEventObject()); tb->SetToolSticky(event.GetId(), true); // create the popup menu wxMenu menuPopup; GNC::HistoryToolsController::Instance()->AppendsToolInMenu(&menuPopup, &menuPopup, GNC::GCS::IHistoryTool::TFamily_Open); // line up our menu with the button wxRect rect = tb->GetToolRect(event.GetId()); wxPoint pt = tb->ClientToScreen(rect.GetBottomLeft()); pt = ScreenToClient(pt); PopupMenu(&menuPopup, pt); // make sure the button is "un-stuck" tb->SetToolSticky(event.GetId(), false); } void GNC::GUI::HistoryToolMenu::OnDropDownRemove(wxAuiToolBarEvent& event) { if (event.IsDropDownClicked()) { wxAuiToolBar* tb = static_cast(event.GetEventObject()); tb->SetToolSticky(event.GetId(), true); // create the popup menu wxMenu menuPopup; wxMenuItem* pMenuRemove = new wxMenuItem( &menuPopup, ID_REMOVE, wxString( _("Remove")), _("Remove"), wxITEM_NORMAL ); wxMenuItem* pMenuRemoveAll = new wxMenuItem( &menuPopup, ID_REMOVE_ALL, wxString( _("Clear history")), _("Clear history"), wxITEM_NORMAL ); #ifdef __WXMSW__ pMenuRemove->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoEliminar()); pMenuRemoveAll->SetBitmaps(GinkgoResourcesManager::History::GetIcoCleanAll()); #else pMenuRemove->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoEliminar()); pMenuRemoveAll->SetBitmap(GinkgoResourcesManager::History::GetIcoCleanAll()); #endif menuPopup.Append( pMenuRemove ); menuPopup.Append( pMenuRemoveAll ); // line up our menu with the button wxRect rect = tb->GetToolRect(event.GetId()); wxPoint pt = tb->ClientToScreen(rect.GetBottomLeft()); pt = ScreenToClient(pt); PopupMenu(&menuPopup, pt); // make sure the button is "un-stuck" tb->SetToolSticky(event.GetId(), false); } else { event.Skip(true); } } void GNC::GUI::HistoryToolMenu::AppendEditTools(wxMenu* pEditMenu, wxEvtHandler* pHandler) { wxMenuItem* pMenuRemove = new wxMenuItem( pEditMenu, ID_REMOVE, wxString( _("Remove")), _("Remove"), wxITEM_NORMAL ); wxMenuItem* pMenuRemoveAll = new wxMenuItem( pEditMenu, ID_REMOVE_ALL, wxString( _("Clear history")), _("Clear history"), wxITEM_NORMAL ); wxMenuItem* pMenuSelect = new wxMenuItem( pEditMenu, ID_SELECT_ALL, wxString( _("Select all")), _("Select all"), wxITEM_NORMAL ); wxMenuItem* pMenuDeselect = new wxMenuItem( pEditMenu, ID_DESELECT, wxString( _("Deselect all")), _("Deselect all"), wxITEM_NORMAL ); #ifdef __WXMSW__ pMenuRemove->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoEliminar()); pMenuRemoveAll->SetBitmaps(GinkgoResourcesManager::History::GetIcoCleanAll()); #else pMenuRemove->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoEliminar()); pMenuRemoveAll->SetBitmap(GinkgoResourcesManager::History::GetIcoCleanAll()); #endif pEditMenu->Append( pMenuRemove ); pEditMenu->Append( pMenuRemoveAll ); pEditMenu->AppendSeparator(); pEditMenu->Append( pMenuSelect ); pEditMenu->Append( pMenuDeselect ); pHandler->Connect( ID_REMOVE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(HistoryToolMenu::OnRemove),NULL, this ); pHandler->Connect( ID_REMOVE_ALL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(HistoryToolMenu::OnRemoveAll),NULL, this ); pHandler->Connect( ID_SELECT_ALL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(HistoryToolMenu::OnSelectAll),NULL, this ); pHandler->Connect( ID_DESELECT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(HistoryToolMenu::OnDeselectAll),NULL, this ); } void GNC::GUI::HistoryToolMenu::OnRemove(wxCommandEvent& /*event*/) { HistoryPanel->RemoveSelected(); } void GNC::GUI::HistoryToolMenu::OnRemoveAll(wxCommandEvent& /*event*/) { HistoryPanel->ClearHistory(); } void GNC::GUI::HistoryToolMenu::OnSelectAll(wxCommandEvent& /*event*/) { HistoryPanel->SelectAll(); } void GNC::GUI::HistoryToolMenu::OnDeselectAll(wxCommandEvent& /*event*/) { HistoryPanel->DeselectAll(); } void GNC::GUI::HistoryToolMenu::OnCloseWindow(wxCommandEvent& /*event*/) { HistoryPanel->Show(false); } ginkgocadx-3.8.7/cadxcore/main/gui/history3/historytoolmenu.h000066400000000000000000000035441314736454600244130ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include
    #include #include namespace GNC { namespace GUI { class HistoryPanel3; class HistoryToolMenu: public wxGinkgoToolBar { public: HistoryToolMenu(HistoryPanel3* pParent); ~HistoryToolMenu(); public: void Reload(); protected: //MENUS... //drop downs void OnDropDownOpenFile(wxAuiToolBarEvent& event); void OnDropDownRemove(wxAuiToolBarEvent& event); //file actions... //remove void AppendEditTools(wxMenu* pEditMenu, wxEvtHandler* pHandler); void OnRemove(wxCommandEvent& event); void OnRemoveAll(wxCommandEvent& event); void OnSelectAll(wxCommandEvent& event); void OnDeselectAll(wxCommandEvent& event); void OnInvertSelection(wxCommandEvent& event); void OnCloseWindow(wxCommandEvent& event); //query/retrieve void OnQueryRetrieve(wxCommandEvent& event); public: HistoryPanel3* HistoryPanel; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/history3/openwithdialog.h000066400000000000000000000107671314736454600241510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "historypanel3base.h" #include #include
    #include #include //----------DIALOGO CONFIRMAR ELIMINAR...------------- namespace GNC { namespace GUI { class OpenWithDialog: public OpenWithDialogBase { public: typedef std::list > ListaModalidades; OpenWithDialog(wxWindow* parent, ListaModalidades& listaModalidades) : OpenWithDialogBase(parent), m_seleccionado(false) { //se buscan los modulos modos que abren la modalidad GNC::ControladorExtensiones::ListaModulos listaModulos = ControladorExtensiones::Instance()->Modulos(); for(GNC::ControladorExtensiones::IteradorListaModulos itModulos=listaModulos.begin(); itModulos!=listaModulos.end(); ++itModulos) { for(GNC::GCS::IModuleController::IteradorListaModos itModos=(*itModulos).second->GetListaModos().begin(); itModos!=(*itModulos).second->GetListaModos().end(); ++itModos) { bool soporta = true; for(ListaModalidades::iterator itModalidad = listaModalidades.begin(); itModalidad != listaModalidades.end() && soporta; ++itModalidad) { soporta = soporta && (*itModos)->SupportsModalityFile((*itModalidad).first, (*itModalidad).second); } if(soporta) { wxString wxStr = wxString::FromUTF8((*itModos)->GetDescripcion().c_str()); m_pListaVistas->AppendString(wxStr); m_modulos.push_back((*itModulos).second); m_modos.push_back((*itModos)); } } } if(m_pListaVistas->GetCount() > 0) { m_pListaVistas->Select(0); } m_pCheckUtilizarSiempre->Show(false); m_pPanelTitulo->Layout(); Layout(); } ~OpenWithDialog() { m_modulos.clear(); m_modos.clear(); } void OnAceptarClick(wxCommandEvent &event) { m_seleccionado = m_pListaVistas->GetSelection(); if(m_seleccionado >=0 && m_seleccionado < (int)m_modos.size()) { /*if(m_pCheckUtilizarSiempre->IsChecked()){ wxConfigBase* config = wxConfigBase::Get(); wxString clave = wxT("/GinkgoCore/Historial/AbrirCon/") + wxString::FromUTF8(m_modalidad.c_str()) + wxT("/"); config->Write(clave + wxT("Modulo"),m_modulos[m_seleccionado]->GetUID()); config->Write(clave + wxT("Modo"),m_modos[m_seleccionado]->GetId()); }*/ EndModal(wxID_OK); } else { wxMessageBox(_("Select a View"), _("Info"), wxOK | wxICON_INFORMATION, this); event.Skip(false); } } GNC::GCS::IModuleController* GetModuloSeleccionado() { return m_modulos[m_seleccionado]; } GNC::GCS::ModoControlador* GetModoSeleccionado() { return m_modos[m_seleccionado]; } protected: typedef std::vector TipoVectorModulos; typedef std::vector TipoVectorModos; TipoVectorModulos m_modulos; TipoVectorModos m_modos; int m_seleccionado; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/history3/synchronizedialog.cpp000066400000000000000000000051031314736454600252060ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "synchronizedialog.h" #include
    #include #include
    GNC::GUI::SynchronizeDialog::SynchronizeDialog(wxWindow* parent, const std::list& seriesPk, GNC::GCS::IHistoryTool* pTool): GNC::GUI::SynchronizeDialogBase(parent), m_seriesPk(seriesPk), m_pTool(pTool), m_pCtrlMod(NULL), m_mode(-1), m_pHangingProtocol(NULL), m_isToolMode(true) { } GNC::GUI::SynchronizeDialog::SynchronizeDialog(wxWindow* parent, const std::list& seriesPk, GNC::GCS::IModuleController* pCtrlMod, int mode, const GNC::GCS::Ptr& pHangingProtocol): GNC::GUI::SynchronizeDialogBase(parent), m_seriesPk(seriesPk), m_pTool(NULL), m_pCtrlMod(pCtrlMod), m_mode(mode), m_pHangingProtocol(pHangingProtocol), m_isToolMode(false) { } GNC::GUI::SynchronizeDialog::~SynchronizeDialog() { } void GNC::GUI::SynchronizeDialog::OnSynchronize(wxCommandEvent &/*evt*/) { if (m_isToolMode) { GADAPI::SynchronizationCommandParameters* pParams = new GADAPI::SynchronizationCommandParameters(m_seriesPk, m_pTool); GADAPI::SynchronizationCommand* pCmd = new GADAPI::SynchronizationCommand(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync("syncronizing...", pCmd, NULL); } else { GADAPI::SynchronizationCommandParameters* pParams = new GADAPI::SynchronizationCommandParameters(m_seriesPk, m_pCtrlMod, m_mode, m_pHangingProtocol); GADAPI::SynchronizationCommand* pCmd = new GADAPI::SynchronizationCommand(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync("syncronizing...", pCmd, NULL); } EndModal(wxOK); } ginkgocadx-3.8.7/cadxcore/main/gui/history3/synchronizedialog.h000066400000000000000000000032451314736454600246600ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "historypanel3base.h" #include //----------DIALOGO CONFIRMAR ELIMINAR...------------- namespace GNC { namespace GCS { class IHistoryTool; class IModuleController; class HangingProtocol; } namespace GUI { class SynchronizeDialog: public SynchronizeDialogBase { public: SynchronizeDialog(wxWindow* parent, const std::list& seriesPk, GNC::GCS::IHistoryTool* pTool); SynchronizeDialog(wxWindow* parent, const std::list& seriesPk, GNC::GCS::IModuleController* pCtrlMod, int mode, const GNC::GCS::Ptr& pHangingProtocol); ~SynchronizeDialog(); virtual void OnSynchronize(wxCommandEvent &evt); protected: std::list m_seriesPk; GNC::GCS::IHistoryTool* m_pTool; GNC::GCS::IModuleController* m_pCtrlMod; int m_mode; GNC::GCS::Ptr m_pHangingProtocol; bool m_isToolMode; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/history3/wxhistoryimagethumbnail.cpp000066400000000000000000000042251314736454600264460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "wxhistoryimagethumbnail.h" #include namespace GNC { namespace GUI { wxHistoryImageThumbnailItem::wxHistoryImageThumbnailItem(const wxString& filename, TItemType type, long series_pk, long file_pk, GNC::GCS::IHistoryController::TLocation source):wxImageThumbnailItem(filename) { m_type = type; m_filepk = file_pk; m_seriespk = series_pk; m_source = source; } bool wxHistoryImageThumbnailItem::Draw(wxDC& dc, wxThumbnailCtrl* ctrl, const wxRect& rect, int style) { wxImageThumbnailItem::Draw(dc, ctrl, rect, style); wxBitmap bmp; switch (m_source) { case GNC::GCS::IHistoryController::TL_LocalDatabase: bmp = GinkgoResourcesManager::History::GetIcoLocalFile(); break; case GNC::GCS::IHistoryController::TL_LocalLinked: bmp = GinkgoResourcesManager::History::GetIcoLocalLinked(); break; case GNC::GCS::IHistoryController::TL_WadoLinked: bmp = GinkgoResourcesManager::History::GetIcoWadoLinked(); break; default: ; } if (bmp.IsOk()) { int x = rect.x + ctrl->GetThumbnailMargin(); int y = rect.y + ctrl->GetThumbnailMargin(); dc.DrawBitmap(bmp, x, y, true); } return true; } } } ginkgocadx-3.8.7/cadxcore/main/gui/history3/wxhistoryimagethumbnail.h000066400000000000000000000032561314736454600261160ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { namespace GUI { class wxHistoryImageThumbnailItem: public wxImageThumbnailItem { public: typedef enum TItemType { TI_Series, TI_Image } TItemType; wxHistoryImageThumbnailItem(const wxString& filename, TItemType type, long series_pk, long file_pk, GNC::GCS::IHistoryController::TLocation source); TItemType GetType() { return m_type; } long GetFilePk() { return m_filepk; } long GetSeriesPk() { return m_seriespk; } virtual bool Draw(wxDC& dc, wxThumbnailCtrl* ctrl, const wxRect& rect, int style); protected: TItemType m_type; GNC::GCS::IHistoryController::TLocation m_source; long m_filepk; long m_seriespk; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/hl7controlwindow/000077500000000000000000000000001314736454600225075ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/hl7controlwindow/ventanaControlHL7.fbp000066400000000000000000004122451314736454600265200ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect ventanacontrolhl7base 1000 none 1 VentanaControlHL7Base "GNC" "GUI" . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 500,250 VentanaControlHL7Base 600,250 wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU HL7 monitor wxTAB_TRAVERSAL 1 OnKeyDown OnKeyDown 1 1 0 wxID_ANY MyMenuBar m_menubar1 protected OnKeyDown Messages m_menuMensajes protected 0 1 wxID_ANY wxITEM_NORMAL Remove sent messages m_menuItemPurgarMensajes protected ALT+p m_separator1 none 0 1 wxID_ANY wxITEM_NORMAL Exit m_menuItemSalir protected ESC View m_menu3 protected 0 1 wxID_ANY wxITEM_NORMAL Refresh m_menuItemActualizar protected F5 bSizer5 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 wxDataViewListCtrl 1 m_pListModel = new wxDataViewListStore(); m_pListViewCtrl= new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_MULTIPLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); m_pListViewCtrl->AssociateModel(m_pListModel.get()); 1 wxDataViewListCtrl* m_pListViewCtrl; wxObjectDataPtr<wxDataViewListStore> m_pListModel; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/dataview.h> 0 0 1 m_pListViewCtrl 1 protected 1 Resizable 1 0 0 wxEXPAND | wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panelEstado 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL OnKeyDown bSizer3 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Send task status: 0 0 1 m_pLabelEnvio 1 protected 1 Resizable 1 0 -1 OnKeyDown 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 0,174,0 1 ,90,92,-1,70,0 0 0 wxID_ANY Enabled 0 0 1 m_pEstado 1 protected 1 Resizable 1 0 -1 OnKeyDown 5 wxALL 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Start 0 0 1 m_pBArrancarParar 1 protected 1 Resizable 1 wxBU_EXACTFIT 0 wxFILTER_NONE wxDefaultValidator OnArrancarPararClick OnKeyDown 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 500,291 DialogoMostrarMensajeBase 640,400 wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Message detail bSizer2 wxVERTICAL none 5 wxEXPAND 1 bSizer5 wxVERTICAL none 5 wxEXPAND 1 wxID_ANY Message sbSizer1 wxVERTICAL none 5 wxEXPAND 0 2 wxBOTH 1 0 fgSizer1 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Date: 0 0 1 m_staticText1 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 10000 0 1 m_pFecha 1 protected 1 Resizable 1 wxTE_READONLY 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Destination: 0 0 1 m_staticText5 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pDestino 1 protected 1 Resizable 1 wxTE_READONLY 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Status: 0 0 1 m_staticText6 1 protected 1 Resizable 1 0 -1 5 wxEXPAND 1 bSizer6 wxHORIZONTAL none 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pEstado 1 protected 1 Resizable 1 wxTE_READONLY 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 "Sent" "Pending" "Error" "Warning" 1 1 0 Dock 0 Left 1 1 0 1 wxID_ANY 0 0 1 m_pChoiceEstado 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Message content: 0 0 1 m_staticText7 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pContenido 1 protected 1 Resizable 1 wxHSCROLL|wxTE_MULTILINE|wxTE_READONLY 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND | wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_staticline1 1 protected 1 Resizable 1 wxLI_HORIZONTAL 0 5 wxALIGN_RIGHT 0 bSizer3 wxHORIZONTAL none 5 wxALL 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK OK 0 0 1 m_button1 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_CancelButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/hl7controlwindow/ventanacontrolhl7.cpp000066400000000000000000000460521314736454600266720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ventanacontrolhl7.h" #include #include
    #include
    #include
    #include #define LOGGER "VentanaControlHL7" #include
    #include
    #include #include #include #define COL_FECHA 0 #define COL_DESTINO 1 #define COL_ESTADO 2 #define COL_MENSAJE_ERROR 3 #define COL_MENSAJE 4 #define COL_ID 5 namespace GNC { namespace GUI { ///////////////// class DialogoMostrarMensaje: public GNC::GUI::DialogoMostrarMensajeBase { public: DialogoMostrarMensaje(wxWindow* pParent, const wxString& fecha, const wxString& url, const wxString& estado, const wxString& mensaje, const bool editar):DialogoMostrarMensajeBase(pParent) { m_pFecha->SetValue(fecha); m_pDestino->SetValue(url); m_pEstado->SetValue(estado); m_pContenido->SetValue(mensaje); if(editar) { m_pDestino->SetEditable(true); m_pContenido->SetEditable(true); m_pFecha->Disable(); m_pEstado->Show(false); m_pChoiceEstado->Show(true); m_pChoiceEstado->Select(m_pChoiceEstado->FindString(estado)); } else { m_CancelButton->Hide(); } } ~DialogoMostrarMensaje() { } std::string GetMensaje() { std::string mensaje(m_pContenido->GetValue().ToUTF8()); return mensaje; } std::string GetDestino() { std::string destino(m_pDestino->GetValue().ToUTF8()); return destino; } GIL::HL7::MensajeHL7::TEstado GetEstado() { switch(m_pChoiceEstado->GetSelection()) { case 0: return GIL::HL7::MensajeHL7::TE_Enviado; case 1: return GIL::HL7::MensajeHL7::TE_Pendiente; case 2: return GIL::HL7::MensajeHL7::TE_Error; case 3: return GIL::HL7::MensajeHL7::TE_Warning; } return GIL::HL7::MensajeHL7::TE_Error; } virtual void OnKeyDown( wxKeyEvent& event ) { if (event.GetKeyCode() == WXK_ESCAPE) { Close(); } event.Skip(); } }; /////////////////// class TimerControlHL7: public wxTimer { public: TimerControlHL7(VentanaControlHL7* pVentana) { m_pVentana = pVentana; } ~TimerControlHL7() { m_pVentana = NULL; } virtual void Notify() { m_pVentana->Refrescar(); } VentanaControlHL7* m_pVentana; }; /////////////////// VentanaControlHL7* VentanaControlHL7::m_pInstance = NULL; VentanaControlHL7* VentanaControlHL7::Instance() { if(m_pInstance == NULL) { m_pInstance = new VentanaControlHL7(); } return m_pInstance; } void VentanaControlHL7::CerrarSiAbierta() { if(m_pInstance != NULL) { m_pInstance->Close(true); } } void VentanaControlHL7::Refrescar() { ActualizarEstadoControlador(); RefrescarMensajes(); } VentanaControlHL7::VentanaControlHL7():VentanaControlHL7Base(NULL) { Freeze(); wxIcon icono; icono.CopyFromBitmap(GinkgoResourcesManager::Logos::GetLogoGinkgo32x32()); this->SetIcon(icono); // column 0 of the view control: m_pListViewCtrl->AppendColumn( new wxDataViewColumn( _("Date"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ), COL_FECHA, 138, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListViewCtrl->AppendColumn( new wxDataViewColumn( _("Destination"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ), COL_DESTINO, 70, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListViewCtrl->AppendColumn( new wxDataViewColumn( _("Status"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ), COL_ESTADO, 128, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListViewCtrl->AppendColumn( new wxDataViewColumn( _("Error message"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ), COL_MENSAJE_ERROR, 128, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pListViewCtrl->AppendColumn( new wxDataViewColumn( _("Date Time"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ), COL_FECHA, 128, wxALIGN_LEFT,wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE )); m_pLabelEnvio->SetLabel(wxString::FromUTF8("Proceso de envío:")); m_pTimerRefresh = new TimerControlHL7(this); ActualizarEstadoControlador(); RefrescarMensajes(); m_pListViewCtrl->Connect(wxEVT_DATAVIEW_ITEM_CONTEXT_MENU, wxDataViewEventHandler( VentanaControlHL7::OnMensajeMenu ), NULL, this ); m_pListViewCtrl->Connect(wxEVT_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( VentanaControlHL7::OnMensajeDClick ), NULL, this ); m_pListViewCtrl->Connect(wxEVT_CHAR, wxKeyEventHandler( VentanaControlHL7::OnKeyDown ), NULL, this ); this->Connect( m_menuItemPurgarMensajes->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaControlHL7::OnPurgarMensajes ) ); this->Connect( m_menuItemSalir->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaControlHL7::OnMenuSalir ) ); this->Connect( m_menuItemActualizar->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaControlHL7::OnActualizar ) ); Show(); Layout(); SetFocus(); Thaw(); } VentanaControlHL7::~VentanaControlHL7() { m_pInstance = NULL; if(m_pTimerRefresh != NULL) { delete m_pTimerRefresh; m_pTimerRefresh = NULL; } } void VentanaControlHL7::OnActivate(wxActivateEvent &event) { if(event.GetActive()) { m_pTimerRefresh->Start(5000); } else { m_pTimerRefresh->Stop(); } } void VentanaControlHL7::OnMensajeMenu(wxDataViewEvent& ) { //si hay un mensaje seleccionado.. wxDataViewItemArray seleccionados; m_pListViewCtrl->GetSelections(seleccionados); if(seleccionados.size() > 0) { wxMenu* popup = new wxMenu(); wxMenuItem* pMenuMostrarVentana = new wxMenuItem(popup,wxID_ANY,_("Show Message")); wxMenuItem* pMenuEditarVentana = new wxMenuItem(popup,wxID_ANY,_("Edit Message")); wxMenuItem* pMenuEliminarMensaje = new wxMenuItem(popup,wxID_ANY,_("Delete message")); #ifdef __WXMSW__ pMenuMostrarVentana->SetBitmaps( GinkgoResourcesManager::MenuIcons::GetIcoEditor()); pMenuEliminarMensaje->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoEliminarWidget()); #else pMenuMostrarVentana->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoEditor()); pMenuEliminarMensaje->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoEliminarWidget()); #endif popup->Append(pMenuMostrarVentana); popup->Append(pMenuEditarVentana); popup->Append(pMenuEliminarMensaje); popup->Connect(pMenuMostrarVentana->GetId(),wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaControlHL7::OnMostrarMensaje ), NULL, this ); popup->Connect(pMenuEditarVentana->GetId(),wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaControlHL7::OnEditarMensaje ), NULL, this ); popup->Connect(pMenuEliminarMensaje->GetId(),wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaControlHL7::OnEliminarMensaje ), NULL, this ); this->PopupMenu(popup); delete popup; } } void VentanaControlHL7::OnMensajeDClick(wxDataViewEvent& ) { MostrarVentanaMensaje(); } void VentanaControlHL7::OnMostrarMensaje(wxCommandEvent &) { MostrarVentanaMensaje(); } void VentanaControlHL7::OnEditarMensaje(wxCommandEvent &) { wxDataViewItem id = m_pListViewCtrl->GetSelection(); if(id.IsOk()) { wxVariant value; m_pListModel->GetValue(value, id, COL_FECHA); wxString fecha = value; m_pListModel->GetValue(value, id, COL_DESTINO); wxString destino = value; m_pListModel->GetValue(value, id, COL_ESTADO); wxString estado = value; m_pListModel->GetValue(value, id, COL_MENSAJE); wxString mensaje = value; m_pListModel->GetValue(value, id, COL_ID); wxString str = value; long idMensaje; if(str.ToLong(&idMensaje)) { DialogoMostrarMensaje mostrar(this,fecha,destino,estado,mensaje, true); if(mostrar.ShowModal() == wxID_OK) { try { GIL::HL7::ControladorBBDDHl7::Instance()->ActualizarMensaje(idMensaje, mostrar.GetDestino(), mostrar.GetMensaje(), mostrar.GetEstado()); RefrescarMensajes(); } catch (GIL::HL7::HL7Exception& ex) { wxMessageBox(wxString::FromUTF8(ex.GetCause().c_str()), _("Error editing message"), wxICON_ERROR, this); } } } } } void VentanaControlHL7::OnListaKey(wxKeyEvent &event) { int keycode = event.GetKeyCode(); switch (keycode) { case WXK_DELETE: case WXK_CLEAR: case WXK_BACK: EliminarMensaje(); event.Skip(false); break; case WXK_RETURN: MostrarVentanaMensaje(); event.Skip(false); break; case WXK_ESCAPE: Close(); event.Skip(false); break; case WXK_TAB: SetFocus(); event.Skip(false); break; default: event.Skip(true); } } void VentanaControlHL7::OnEliminarMensaje(wxCommandEvent &) { EliminarMensaje(); } void VentanaControlHL7::OnPurgarMensajes(wxCommandEvent& ) { try { GIL::HL7::ControladorBBDDHl7::Instance()->PurgarMensajesEnviados(); } catch (GIL::HL7::HL7Exception& ex) { wxMessageBox(wxString::FromUTF8(ex.GetCause().c_str()), _("Error purguing messages"), wxICON_ERROR, this); } RefrescarMensajes(); } void VentanaControlHL7::OnActualizar(wxCommandEvent &) { ActualizarEstadoControlador(); RefrescarMensajes(); } void VentanaControlHL7::OnArrancarPararClick(wxCommandEvent &) { m_pBArrancarParar->Disable(); if (m_pBArrancarParar->GetLabel() == _("Stop") ) { GNC::GCS::ConfigurationController::Instance()->writeBoolGeneral("/GinkgoCore/HCE", "HL7MonitorEnabled", false); GIL::HL7::ControladorEnvioHl7::FreeInstance(); } else { GNC::GCS::ConfigurationController::Instance()->writeBoolGeneral("/GinkgoCore/HCE", "HL7MonitorEnabled", true); GIL::HL7::ControladorEnvioHl7::Arrancar(); } ActualizarEstadoControlador(); m_pBArrancarParar->Enable(); } void VentanaControlHL7::RefrescarMensajes() { m_pTimerRefresh->Start(5000); wxWindowDisabler disabler; Freeze(); try { //conservamos los ids seleccionados wxDataViewItemArray seleccionados; m_pListViewCtrl->GetSelections(seleccionados); std::set listaIds; for(wxDataViewItemArray::iterator it =seleccionados.begin(); it!= seleccionados.end(); ++it) { wxVariant value; m_pListModel->GetValue(value, (*it), COL_ID); long id = value.GetLong(); listaIds.insert((int)id); } // typedef std::list TListaMensajes; TListaMensajes listaMensajes; GIL::HL7::ControladorBBDDHl7::Instance()->GetMensajesHL7(listaMensajes); //primero vaciamos el arbol m_pListViewCtrl->DeleteAllItems(); wxVector data; for(TListaMensajes::iterator it = listaMensajes.begin(); it != listaMensajes.end(); ++it) { data.clear(); data.push_back(wxString::FromUTF8((*it).m_fecha.c_str())); data.push_back(wxString::FromUTF8((*it).m_destino.c_str())); switch((*it).m_estado) { case GIL::HL7::MensajeHL7::TE_Enviado: data.push_back(_("Sent")); data.push_back(wxEmptyString); break; case GIL::HL7::MensajeHL7::TE_Pendiente: data.push_back(_("Pending")); data.push_back(wxEmptyString); break; case GIL::HL7::MensajeHL7::TE_Warning: data.push_back(_("Warning")); data.push_back(wxString::FromUTF8((*it).m_mensajeError.c_str())); break; case GIL::HL7::MensajeHL7::TE_Error: data.push_back(_("Error")); data.push_back(wxString::FromUTF8((*it).m_mensajeError.c_str())); break; default: LOG_DEBUG("HL7", "VentanaControlHL7::RefrescarMensajes: unknown message state"); } data.push_back(wxString::FromUTF8((*it).m_mensaje.c_str())); data.push_back(wxString::Format(wxT("%d"), (*it).m_id)); m_pListModel->AppendItem(data); if(listaIds.find((*it).m_id) != listaIds.end()) { m_pListViewCtrl->SelectRow(m_pListModel->GetItemCount()-1); } } } catch (GIL::HL7::HL7Exception& ex) { Thaw(); wxMessageBox(wxString::FromUTF8(ex.GetCause().c_str()), _("Error getting message"), wxICON_ERROR, this); return; } Thaw(); } void VentanaControlHL7::ActualizarEstadoControlador() { m_pTimerRefresh->Start(5000); if(GIL::HL7::ControladorEnvioHl7::EstaArrancado()) { m_pEstado->SetLabel(_("Running")); m_pEstado->SetToolTip(_("The submission process is started and ready to send")); m_pEstado->SetForegroundColour(wxColour(0,174,0)); m_pBArrancarParar->SetLabel(_("Stop")); } else { m_pEstado->SetLabel(_("Stopped")); m_pEstado->SetToolTip(_("Usually due to an error in sending a message")); m_pEstado->SetForegroundColour(wxColour(174,0,0)); m_pBArrancarParar->SetLabel(_("Start")); } m_panelEstado->Layout(); } void VentanaControlHL7::MostrarVentanaMensaje() { wxDataViewItem id = m_pListViewCtrl->GetSelection(); if(id.IsOk()) { wxVariant value; m_pListModel->GetValue(value, id, COL_FECHA); wxString fecha = value; m_pListModel->GetValue(value, id, COL_DESTINO); wxString destino = value; m_pListModel->GetValue(value, id, COL_ESTADO); wxString estado = value; m_pListModel->GetValue(value, id, COL_MENSAJE); wxString mensaje = value; DialogoMostrarMensaje* mostrar = new DialogoMostrarMensaje(this,fecha,destino,estado,mensaje, false); mostrar->Show(); } } void VentanaControlHL7::EliminarMensaje() { //pillamos los elementos seleccionados wxDataViewItemArray seleccionados; m_pListViewCtrl->GetSelections(seleccionados); std::list listaIds; for(wxDataViewItemArray::iterator it =seleccionados.begin(); it!= seleccionados.end(); ++it) { wxVariant value; m_pListModel->GetValue(value, (*it), COL_ID); listaIds.push_back(value.GetLong()); } if(listaIds.empty()) { return; } int answer = wxMessageBox(_("Would you like to remove these messages?"), _("Delete"), wxYES_NO, this); if (answer == wxYES) { for(std::list::iterator it = listaIds.begin(); it != listaIds.end(); ++it) { try { GIL::HL7::ControladorBBDDHl7::Instance()->EliminarMensaje((*it)); } catch (GIL::HL7::HL7Exception& ex) { wxMessageBox(wxString::FromUTF8(ex.GetCause().c_str()), _("Error deleting messages"), wxICON_ERROR, this); } } RefrescarMensajes(); } } void VentanaControlHL7::OnMenuSalir( wxCommandEvent& /*event*/ ) { Close(); } void VentanaControlHL7::OnKeyDown( wxKeyEvent& event ) { switch (event.GetKeyCode()) { case WXK_DELETE: case WXK_CLEAR: case WXK_BACK: EliminarMensaje(); event.Skip(false); break; case WXK_RETURN: { wxCommandEvent evt; OnArrancarPararClick(evt); event.Skip(false); } break; case WXK_ESCAPE: Close(); event.Skip(false); break; case WXK_TAB: m_pListViewCtrl->SetFocus(); event.Skip(false); break; default: event.Skip(true); } } } } ginkgocadx-3.8.7/cadxcore/main/gui/hl7controlwindow/ventanacontrolhl7.h000066400000000000000000000040261314736454600263320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "ventanacontrolhl7base.h" class wxSQLite3Database; namespace GNC { namespace GUI { class TimerControlHL7; class VentanaControlHL7 : public VentanaControlHL7Base { public: //singleton static VentanaControlHL7* Instance(); static void CerrarSiAbierta(); void Refrescar(); protected: static VentanaControlHL7* m_pInstance; TimerControlHL7* m_pTimerRefresh; VentanaControlHL7(); ~VentanaControlHL7(); void OnActivate(wxActivateEvent &event); void OnMensajeMenu(wxDataViewEvent& event); void OnMensajeDClick(wxDataViewEvent& event); void OnMostrarMensaje(wxCommandEvent &event); void OnEditarMensaje(wxCommandEvent &event); void OnListaKey(wxKeyEvent &event); void OnEliminarMensaje(wxCommandEvent &event); void OnPurgarMensajes(wxCommandEvent& event); void OnActualizar(wxCommandEvent &event); void OnArrancarPararClick(wxCommandEvent &event); void RefrescarMensajes(); void ActualizarEstadoControlador(); void MostrarVentanaMensaje(); void EliminarMensaje(); virtual void OnMenuSalir( wxCommandEvent& event ); virtual void OnKeyDown( wxKeyEvent& event ); //endregion }; }; }; ginkgocadx-3.8.7/cadxcore/main/gui/hl7controlwindow/ventanacontrolhl7base.cpp000066400000000000000000000225351314736454600275250ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "ventanacontrolhl7base.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; VentanaControlHL7Base::VentanaControlHL7Base( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 500,250 ), wxDefaultSize ); m_menubar1 = new wxMenuBar( 0 ); m_menuMensajes = new wxMenu(); m_menuItemPurgarMensajes = new wxMenuItem( m_menuMensajes, wxID_ANY, wxString( _("Remove sent messages") ) + wxT('\t') + wxT("ALT+p"), wxEmptyString, wxITEM_NORMAL ); m_menuMensajes->Append( m_menuItemPurgarMensajes ); m_menuMensajes->AppendSeparator(); m_menuItemSalir = new wxMenuItem( m_menuMensajes, wxID_ANY, wxString( _("Exit") ) + wxT('\t') + wxT("ESC"), wxEmptyString, wxITEM_NORMAL ); m_menuMensajes->Append( m_menuItemSalir ); m_menubar1->Append( m_menuMensajes, _("Messages") ); m_menu3 = new wxMenu(); m_menuItemActualizar = new wxMenuItem( m_menu3, wxID_ANY, wxString( _("Refresh") ) + wxT('\t') + wxT("F5"), wxEmptyString, wxITEM_NORMAL ); m_menu3->Append( m_menuItemActualizar ); m_menubar1->Append( m_menu3, _("View") ); this->SetMenuBar( m_menubar1 ); wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxVERTICAL ); m_pListModel = new wxDataViewListStore(); m_pListViewCtrl= new wxDataViewListCtrl(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_MULTIPLE|wxDV_HORIZ_RULES|wxDV_ROW_LINES); m_pListViewCtrl->AssociateModel(m_pListModel.get()); bSizer5->Add( m_pListViewCtrl, 1, wxEXPAND, 5 ); m_panelEstado = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxHORIZONTAL ); bSizer3->Add( 0, 0, 1, wxEXPAND, 5 ); m_pLabelEnvio = new wxStaticText( m_panelEstado, wxID_ANY, _("Send task status:"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelEnvio->Wrap( -1 ); bSizer3->Add( m_pLabelEnvio, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pEstado = new wxStaticText( m_panelEstado, wxID_ANY, _("Enabled"), wxDefaultPosition, wxDefaultSize, 0 ); m_pEstado->Wrap( -1 ); m_pEstado->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); m_pEstado->SetForegroundColour( wxColour( 0, 174, 0 ) ); bSizer3->Add( m_pEstado, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pBArrancarParar = new wxButton( m_panelEstado, wxID_ANY, _("Start"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); m_pBArrancarParar->SetDefault(); bSizer3->Add( m_pBArrancarParar, 0, wxALL, 5 ); m_panelEstado->SetSizer( bSizer3 ); m_panelEstado->Layout(); bSizer3->Fit( m_panelEstado ); bSizer5->Add( m_panelEstado, 0, wxEXPAND | wxALL, 0 ); this->SetSizer( bSizer5 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_CHAR, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ) ); this->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ) ); m_menubar1->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ), NULL, this ); m_panelEstado->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeydown ), NULL, this ); m_pLabelEnvio->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ), NULL, this ); m_pEstado->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ), NULL, this ); m_pBArrancarParar->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( VentanaControlHL7Base::OnArrancarPararClick ), NULL, this ); m_pBArrancarParar->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ), NULL, this ); } VentanaControlHL7Base::~VentanaControlHL7Base() { // Disconnect Events this->Disconnect( wxEVT_CHAR, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ) ); this->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ) ); m_menubar1->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ), NULL, this ); m_panelEstado->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeydown ), NULL, this ); m_pLabelEnvio->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ), NULL, this ); m_pEstado->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ), NULL, this ); m_pBArrancarParar->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( VentanaControlHL7Base::OnArrancarPararClick ), NULL, this ); m_pBArrancarParar->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlHL7Base::OnKeyDown ), NULL, this ); } DialogoMostrarMensajeBase::DialogoMostrarMensajeBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 500,291 ), wxDefaultSize ); wxBoxSizer* bSizer2; bSizer2 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxVERTICAL ); wxStaticBoxSizer* sbSizer1; sbSizer1 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Message") ), wxVERTICAL ); wxFlexGridSizer* fgSizer1; fgSizer1 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer1->AddGrowableCol( 1 ); fgSizer1->SetFlexibleDirection( wxBOTH ); fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText1 = new wxStaticText( this, wxID_ANY, _("Date:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText1->Wrap( -1 ); fgSizer1->Add( m_staticText1, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pFecha = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); m_pFecha->SetMaxLength( 10000 ); fgSizer1->Add( m_pFecha, 1, wxALL|wxEXPAND, 5 ); m_staticText5 = new wxStaticText( this, wxID_ANY, _("Destination:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText5->Wrap( -1 ); fgSizer1->Add( m_staticText5, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pDestino = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); m_pDestino->SetMaxLength( 0 ); fgSizer1->Add( m_pDestino, 1, wxALL|wxEXPAND, 5 ); m_staticText6 = new wxStaticText( this, wxID_ANY, _("Status:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); fgSizer1->Add( m_staticText6, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxHORIZONTAL ); m_pEstado = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); m_pEstado->SetMaxLength( 0 ); bSizer6->Add( m_pEstado, 1, wxALL|wxEXPAND, 5 ); wxString m_pChoiceEstadoChoices[] = { _("Sent"), _("Pending"), _("Error"), _("Warning") }; int m_pChoiceEstadoNChoices = sizeof( m_pChoiceEstadoChoices ) / sizeof( wxString ); m_pChoiceEstado = new wxChoice( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pChoiceEstadoNChoices, m_pChoiceEstadoChoices, 0 ); m_pChoiceEstado->SetSelection( 0 ); m_pChoiceEstado->Hide(); bSizer6->Add( m_pChoiceEstado, 1, wxALL|wxEXPAND, 5 ); fgSizer1->Add( bSizer6, 1, wxEXPAND, 5 ); sbSizer1->Add( fgSizer1, 0, wxEXPAND, 5 ); m_staticText7 = new wxStaticText( this, wxID_ANY, _("Message content:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText7->Wrap( -1 ); sbSizer1->Add( m_staticText7, 0, wxALL, 5 ); m_pContenido = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxTE_MULTILINE|wxTE_READONLY ); m_pContenido->SetMaxLength( 0 ); sbSizer1->Add( m_pContenido, 1, wxALL|wxEXPAND, 5 ); bSizer5->Add( sbSizer1, 1, wxEXPAND, 5 ); bSizer2->Add( bSizer5, 1, wxEXPAND, 5 ); m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); bSizer2->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxHORIZONTAL ); m_button1 = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 ); m_button1->SetDefault(); bSizer3->Add( m_button1, 0, wxALL, 5 ); m_CancelButton = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer3->Add( m_CancelButton, 0, wxALL, 5 ); bSizer2->Add( bSizer3, 0, wxALIGN_RIGHT, 5 ); this->SetSizer( bSizer2 ); this->Layout(); this->Centre( wxBOTH ); } DialogoMostrarMensajeBase::~DialogoMostrarMensajeBase() { } ginkgocadx-3.8.7/cadxcore/main/gui/hl7controlwindow/ventanacontrolhl7base.h000066400000000000000000000067611314736454600271750ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __VENTANACONTROLHL7BASE_H__ #define __VENTANACONTROLHL7BASE_H__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class VentanaControlHL7Base /////////////////////////////////////////////////////////////////////////////// class VentanaControlHL7Base : public wxFrame { private: protected: wxMenuBar* m_menubar1; wxMenu* m_menuMensajes; wxMenuItem* m_menuItemPurgarMensajes; wxMenuItem* m_menuItemSalir; wxMenu* m_menu3; wxMenuItem* m_menuItemActualizar; wxDataViewListCtrl* m_pListViewCtrl; wxObjectDataPtr m_pListModel; wxPanel* m_panelEstado; wxStaticText* m_pLabelEnvio; wxStaticText* m_pEstado; wxButton* m_pBArrancarParar; // Virtual event handlers, overide them in your derived class virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); } virtual void OnKeydown( wxKeyEvent& event ) { event.Skip(); } virtual void OnArrancarPararClick( wxCommandEvent& event ) { event.Skip(); } public: VentanaControlHL7Base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("HL7 monitor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 600,250 ), long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU|wxTAB_TRAVERSAL ); ~VentanaControlHL7Base(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DialogoMostrarMensajeBase /////////////////////////////////////////////////////////////////////////////// class DialogoMostrarMensajeBase : public wxDialog { private: protected: wxStaticText* m_staticText1; wxTextCtrl* m_pFecha; wxStaticText* m_staticText5; wxTextCtrl* m_pDestino; wxStaticText* m_staticText6; wxTextCtrl* m_pEstado; wxChoice* m_pChoiceEstado; wxStaticText* m_staticText7; wxTextCtrl* m_pContenido; wxStaticLine* m_staticline1; wxButton* m_button1; wxButton* m_CancelButton; public: DialogoMostrarMensajeBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Message detail"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 640,400 ), long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~DialogoMostrarMensajeBase(); }; } // namespace GUI } // namespace GNC #endif //__VENTANACONTROLHL7BASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/import/000077500000000000000000000000001314736454600204765ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/import/PasosImportacion.fbp000066400000000000000000013153371314736454600244760ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect pasosimportacionbase 1000 none 1 ImportacionBrowser "GNC" "GUI" . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY SelectImagesImportationBase 645,464 wxScrolledWindow; wx/scrolwin.h wxTAB_TRAVERSAL bSizer7 wxHORIZONTAL none 10 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panelStep0 1 protected 1 Resizable 1 TitledPanelSinBorder; wx/ginkgostyle/ginkgostyle.h 0 Selected images wxTAB_TRAVERSAL bSizer11 wxVERTICAL none 5 wxEXPAND 0 m_pSizerButtons wxHORIZONTAL protected 1 wxEXPAND|wxALL 1 1 1 1 1 255,255,255 1 0 wxThumbnailCtrl 1 m_pImagenes = new wxThumbnailCtrl(m_panelStep0, -1, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL|wxTH_MULTIPLE_SELECT|wxTH_TEXT_LABEL); 1 wxThumbnailCtrl* m_pImagenes; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include "../../../wx/thumbnailctrl/thumbnailctrl.h" 0 0 1 m_pImagenes 1 protected 1 Resizable 1 0 1 wxEXPAND | wxALL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 1 wxID_ANY 0 0 1 m_pPreviewPanel 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL bSizer71 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 wxPrevisualizacionDicom 1 m_pPreview = new wxPrevisualizacionDicom(m_pPreviewPanel, -1); 1 wxPrevisualizacionDicom* m_pPreview; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <main/gui/wxprevisualizaciondicom.h> 0 0 1 m_pPreview 1 protected 1 Resizable 1 0 5 wxEXPAND 0 bSizer8 wxHORIZONTAL none 2 wxALL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Preview 0 0 1 m_pButtonPreview 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnPreviewClick 5 wxEXPAND 1 0 protected 0 2 wxALL|wxALIGN_RIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Remove all 0 0 1 m_pButtonRemoveAll 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnRemoveAll 0 wxAUI_MGR_DEFAULT 230,230,230 1 1 impl_virtual 0 wxID_ANY PasoPerfilImportacionBase 500,300 wxTAB_TRAVERSAL bSizer3 wxVERTICAL none 0 wxAUI_MGR_DEFAULT 1 1 impl_virtual 0 wxID_ANY PanelDatosGeneralesBase -1,-1 wxScrolledWindow; wx/scrolwin.h wxTAB_TRAVERSAL bSizer15 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panelDemographicData 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Demographic data wxTAB_TRAVERSAL bSizer8 wxVERTICAL none 5 wxEXPAND 0 bSizer152 wxHORIZONTAL none 5 wxEXPAND 1 2 0 gSizer1 none 0 0 5 wxEXPAND 1 2 wxBOTH 1 0 fgSizer2 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Identificator * 0 0 1 m_staticText311 1 protected 1 Resizable 1 0 -1 5 wxEXPAND 1 bSizer3 wxHORIZONTAL none 5 wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 64 0 1 m_pPacienteId 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY (ID or medical history number) 0 0 1 m_staticText17 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Name 0 0 1 m_staticText23 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 64 0 1 m_pPacienteNombre 1 protected 1 Resizable 1 125,-1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Birth date 0 0 1 m_staticText41 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPacienteFechaNacimiento 1 protected 1 Resizable 1 wxDP_DEFAULT|wxDP_SHOWCENTURY 0 wxFILTER_NONE wxDefaultValidator OnDateChanged 5 wxEXPAND 1 2 wxBOTH 1 0 fgSizer3 wxFLEX_GROWMODE_SPECIFIED none 0 0 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 dummy1 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 dummy2 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Surname 0 0 1 m_staticText261 1 protected 1 Resizable 1 0 -1 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 64 0 1 m_pPatientSurname 1 protected 1 Resizable 1 125,-1 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Sex 0 0 1 m_staticText13 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 "Unknown" "Male" "Female" "Others" 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPacienteSexo 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSep 1 protected 1 Resizable 1 TitledPanelSeparatorV; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panelStudyDetails 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Study Details wxTAB_TRAVERSAL bSizer13 wxVERTICAL none 5 wxEXPAND|wxALL 0 wxBOTH 4 0 gbSizer2 wxFLEX_GROWMODE_SPECIFIED none 0 5 1 0 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,92,-1,70,0 0 0 wxID_ANY Patient 0 0 75,-1 1 m_staticText22 1 protected 1 Resizable 1 0 -1 5 1 1 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Weight 0 0 1 m_staticText11 1 protected 1 Resizable 1 0 -1 5 1 2 wxEXPAND 0 1 bSizer4 wxHORIZONTAL none 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pPacientePeso 1 protected 1 Resizable 1 35,-1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Kg 0 0 1 m_staticText18 1 protected 1 Resizable 1 0 -1 5 1 3 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Height 0 0 1 m_staticText15 1 protected 1 Resizable 1 0 -1 5 1 4 wxEXPAND 0 1 bSizer5 wxHORIZONTAL none 5 wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pPacienteAltura 1 protected 1 Resizable 1 35,-1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY cm 0 0 1 m_staticText19 1 protected 1 Resizable 1 0 -1 5 1 0 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 2 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,92,-1,70,0 0 0 wxID_ANY Study 0 0 1 m_staticText221 1 protected 1 Resizable 1 0 -1 5 1 1 wxALL|wxALIGN_CENTER_VERTICAL 1 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Accession Number 0 0 1 m_pLabelAccNumber 1 protected 1 Resizable 1 0 -1 5 1 2 wxALL|wxEXPAND 1 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 64 0 1 m_pAccessionNumber 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 1 1 wxALIGN_CENTER_VERTICAL|wxALL 2 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Date 0 0 1 m_staticText2 1 protected 1 Resizable 1 0 -1 5 1 2 wxALL 2 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pEstudioFecha 1 protected 1 Resizable 1 wxDP_DEFAULT|wxDP_SHOWCENTURY 0 wxFILTER_NONE wxDefaultValidator OnDateChanged 5 1 3 wxALIGN_CENTER_VERTICAL|wxALL 2 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Time 0 0 1 m_staticText16 1 protected 1 Resizable 1 0 -1 5 1 4 wxALL 2 1 1 1 1 1 1 0 wxMaskedTextCtrl 1 m_pEstudioTime = new wxMaskedTextCtrl(m_panelStudyDetails, -1, wxT("hh:nn:ss"), wxT(""), wxDefaultPosition, wxSize(80,-1), 0); 1 wxMaskedTextCtrl *m_pEstudioTime; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/maskedtextctrl/maskedtextctrl.h> 0 0 1 m_pEstudioTime 1 protected 1 Resizable 1 0 OnKillFocusEstudioTimeControl 5 1 1 wxALIGN_CENTER_VERTICAL|wxALL 3 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Description 0 0 1 m_staticText3 1 protected 1 Resizable 1 0 -1 5 4 2 wxALL|wxEXPAND 3 2 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pEstudioDescripcion 1 protected 1 Resizable 1 wxTE_MULTILINE|wxTE_WORDWRAP 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSeriesPanel 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL bSizer151 wxVERTICAL none 5 wxEXPAND|wxALL 1 wxBOTH 4 0 m_pSeriesSizer wxFLEX_GROWMODE_SPECIFIED none 0 5 1 0 wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,92,-1,70,0 0 0 wxID_ANY Series 0 0 75,-1 1 m_staticText231 1 protected 1 Resizable 1 0 -1 5 1 1 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Date 0 0 1 m_staticText212 1 protected 1 Resizable 1 0 -1 5 1 2 wxALL 0 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSerieFecha 1 protected 1 Resizable 1 wxDP_DEFAULT|wxDP_SHOWCENTURY 0 wxFILTER_NONE wxDefaultValidator 5 1 3 wxALIGN_CENTER_VERTICAL|wxALL 0 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Time 0 0 1 m_staticText1611 1 protected 1 Resizable 1 0 -1 5 1 4 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 1 0 wxMaskedTextCtrl 1 m_pSerieTime = new wxMaskedTextCtrl(m_pSeriesPanel, -1, wxT("hh:nn:ss"), wxT(""), wxDefaultPosition, wxSize(80,-1), 0); 1 wxMaskedTextCtrl *m_pSerieTime; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/maskedtextctrl/maskedtextctrl.h> 0 0 1 m_pSerieTime 1 protected 1 Resizable 1 0 OnKillFocusSerieTimeControl 5 1 1 wxALL|wxALIGN_CENTER_VERTICAL 1 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Description 0 0 1 m_staticText312 1 protected 1 Resizable 1 0 -1 5 4 2 wxEXPAND|wxALL 1 2 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSerieDescripcion 1 protected 1 Resizable 1 wxTE_MULTILINE|wxTE_WORDWRAP 0 wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/import/generaldata.cpp000066400000000000000000000365501314736454600234620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include
    #include
    #include #include #include
    #include #include #include "generaldata.h" namespace GNC { namespace GUI { void SetStringField(GIL::DICOM::DicomDataset& tagsDicom, const std::string& tagDICOM, wxTextCtrl* field, bool autodisable = true) { std::string value; if (tagsDicom.getTag(tagDICOM, value)) { field->SetValue(wxString::FromUTF8(value.c_str())); if (autodisable) { field->Enable(false); } } } void SetDateField(GIL::DICOM::DicomDataset& tagsDicom, const std::string& tagDICOM, wxDatePickerCtrl* field, bool autodisable = true) { std::string value; if (tagsDicom.getTag(tagDICOM, value)) { wxDateTime fecha; fecha.ParseFormat(wxString::FromUTF8(value.c_str()),wxT("%Y%m%d")); if(fecha.IsValid()) { field->SetValue(fecha); } if (autodisable) { field->Enable(false); } } } void SetTimeField(GIL::DICOM::DicomDataset& tagsDicom, const std::string& tagDICOM, wxMaskedTextCtrl* field, bool autodisable = true) { std::string value; if (tagsDicom.getTag(tagDICOM, value)) { wxDateTime fecha; fecha.ParseFormat(wxString::FromUTF8(value.c_str()),wxT("%H%M%S")); if(fecha.IsValid()) { field->SetDateTimeValue(fecha); } if (autodisable) { field->Enable(false); } } } GeneralData::GeneralData(wxWindow* pParent,IWizard* pWizard,const GNC::GCS::Ptr& importationData, bool seriesDescription):PanelDatosGeneralesBase(pParent),IPasoWizard(pWizard) { Hide(); m_pImportData=importationData; wxTextValidator OnlyNum = wxTextValidator(wxFILTER_NUMERIC); m_pPacienteAltura->SetValidator(OnlyNum); m_pPacientePeso->SetValidator(OnlyNum); wxDateTime date = wxDateTime::Now(); m_pEstudioTime->SetDateTimeValue(date); m_pSerieTime->SetDateTimeValue(date); if(m_pImportData->m_pIntegrationModel.IsValid()) { GIL::DICOM::DicomDataset& tagsDicom = m_pImportData->m_pIntegrationModel->TagsDICOMOverwrite; SetStringField(tagsDicom, "0008|1030", m_pEstudioDescripcion, false); SetDateField(tagsDicom, "0008|0020", m_pEstudioFecha); SetTimeField(tagsDicom, "0008|0030", m_pEstudioTime); SetStringField(tagsDicom, "0008|103e", m_pSerieDescripcion); SetDateField(tagsDicom, "0008|0021", m_pSerieFecha); SetTimeField(tagsDicom, "0008|0031", m_pSerieTime); SetDateField(tagsDicom, "0010|0030", m_pPacienteFechaNacimiento); std::string tmp; if (tagsDicom.getTag("0010|1020", tmp)) { //height wxString value = wxString::FromUTF8(tmp.c_str()); double height; if (value.ToDouble(&height)) { height *= 100.0; wxString wstraltura; wstraltura << ((int)height); m_pPacienteAltura->SetValue(wstraltura); m_pPacienteAltura->Enable(false); } } if (tagsDicom.getTag("0010|0040", tmp)) { //sex wxString value = wxString::FromUTF8(tmp.c_str()); if(value.CompareTo(wxT("M"), wxString::ignoreCase) == 0) { m_pPacienteSexo->SetSelection(1); } else if(value.CompareTo(wxT("F"), wxString::ignoreCase) == 0) { m_pPacienteSexo->SetSelection(2); } else if(value.CompareTo(wxT("O"), wxString::ignoreCase) == 0) { m_pPacienteSexo->SetSelection(3); } else { m_pPacienteSexo->SetSelection(0); } m_pPacienteSexo->Enable(false); } if (tagsDicom.getTag("0010|0020", tmp)) { // patient id SetStringField(tagsDicom, "0010|0020", m_pPacienteId); } else { m_pPacienteId->SetBackgroundColour(wxColor(255, 213, 213)); m_pPacienteId->SetFocus(); } //name and surname if (tagsDicom.getTag("0010|0010", tmp)) { //name of patient wxString value = wxString::FromUTF8(tmp.c_str()); wxStringTokenizer tokenizer(value, wxT("^")); if(tokenizer.HasMoreTokens()) { m_pPatientSurname->SetValue(tokenizer.GetNextToken()); } if(tokenizer.HasMoreTokens()) { m_pPacienteNombre->SetValue(tokenizer.GetNextToken()); } m_pPatientSurname->Enable(false); m_pPacienteNombre->Enable(false); } // Populate Accno if (GNC::GCS::IControladorPermisos::Instance()->Get("core.importacion", "input_accno").Activo()) { SetStringField(tagsDicom, "0008|0050", m_pAccessionNumber); m_pAccessionNumber->Show(); m_pLabelAccNumber->Show(); } else { m_pAccessionNumber->Hide(); m_pLabelAccNumber->Hide(); } } m_pSeriesPanel->Show(seriesDescription); m_panelStudyDetails->Layout(); Layout(); } GeneralData::~GeneralData() { } //region "Metodos heredados de Ipasowizard" bool GeneralData::Attach() { return true; } std::string GeneralData::GetTitle() { return _Std("Overview data of DICOM files"); } std::string GeneralData::GetSubTitle() { return _Std("DICOM data from the files to be generated can be populated"); } bool GeneralData::Siguiente() { return true; } bool GeneralData::Anterior() { return false; } bool GeneralData::Cancelar() { return true; } bool GeneralData::Validar() { return Validar(false); } bool GeneralData::Validar(bool silent) { wxString mensaje = wxEmptyString; if (m_pPacienteId->GetValue().IsEmpty()) { mensaje += _("\n* The patient ID is required."); } if(m_pPacienteNombre->GetValue().size() + m_pPatientSurname->GetValue().size() > 61) { mensaje += _("\n* Concatenation of patient name and surnames can't be higher than 61."); } if(!ValidarDouble(std::string(m_pPacienteAltura->GetValue().ToUTF8()),0.0f,400.0f, false, false)) { mensaje += _("\n* The format of the height in centimeters is not correct. "); } if ( m_pPacienteFechaNacimiento->GetValue().IsLaterThan(m_pEstudioFecha->GetValue()) ) { mensaje += _("\n* The patient's birth date is after the date of study"); } if(!ValidarDouble(std::string(m_pPacientePeso->GetValue().ToUTF8()),0.0f,400.0f, false, false)) { mensaje += _("\n* The format of the weight is not correct. Valid range is between 0 and 400 Kg."); } if(mensaje != wxEmptyString) { if (!silent) { wxMessageBox(_("The following errors have occurred when validating fields") + mensaje, _("Error validating fields"), wxICON_ERROR); } return false; } else { GetPacienteAltura(); GetPacienteNombre(); GetPacienteIdentificador(); GetPacienteEdad(); GetPacienteFechaNacimiento(); GetPacientePeso(); GetPacienteSexo(); GetEstudioDescripcion(); GetEstudioFecha(); GetEstudioTime(); GetSerieDescripcion(); GetSerieFecha(); GetSerieTime(); if (GNC::GCS::IControladorPermisos::Instance()->Get("core.importacion", "input_accno").Activo()) { GetAccno(); } return true; } } bool GeneralData::IsSkipped() { return GNC::GCS::IControladorPermisos::Instance()->ObtenerPermiso("core.importacion", "skip_demographic") && Validar(true); } void GeneralData::GetPacienteNombre() { std::ostringstream ostr; ostr << m_pPatientSurname->GetValue().ToUTF8(); ostr << "^" << m_pPacienteNombre->GetValue().ToUTF8(); m_pImportData->baseImages.tags["0010|0010"] = ostr.str(); } void GeneralData::GetPacienteIdentificador() { m_pImportData->baseImages.tags["0010|0020"] = std::string(m_pPacienteId->GetValue().ToUTF8()); } void GeneralData::GetPacienteFechaNacimiento() { m_pImportData->baseImages.tags["0010|0030"] = std::string(m_pPacienteFechaNacimiento->GetValue().Format(wxT("%Y%m%d")).ToUTF8()); } void GeneralData::GetPacienteEdad() { int edad = CalcularEdad(); std::ostringstream os; os.fill('0'); os.width(3); os << edad << "Y"; m_pImportData->baseImages.tags["0010|1010"] = os.str(); } void GeneralData::GetPacientePeso() { std::string peso = std::string(m_pPacientePeso->GetValue().ToUTF8()); if (peso.size() != 0) { m_pImportData->baseImages.tags["0010|1030"] =peso; } } void GeneralData::GetPacienteAltura() { if (!m_pPacienteAltura->GetValue().IsEmpty()) { std::istringstream is (std::string(m_pPacienteAltura->GetValue().ToUTF8())); float altura = 0.0f; is >> altura; altura = std::floor(altura); altura /= 100.0f; std::ostringstream os; os << altura; m_pImportData->baseImages.tags["0010|1020"] = os.str(); } } void GeneralData::GetPacienteSexo() { switch(m_pPacienteSexo->GetSelection()) { case 1: m_pImportData->baseImages.tags["0010|0040"] = "M"; break; case 2: m_pImportData->baseImages.tags["0010|0040"] = "F"; break; case 3: m_pImportData->baseImages.tags["0010|0040"] = "O"; break; default: break; } } void GeneralData::OnKillFocusEstudioTimeControl(wxFocusEvent &) { if(!m_pEstudioTime->GetDateTimeValue().IsValid()) { wxDateTime ahora = wxDateTime::Now(); m_pEstudioTime->SetDateTimeValue(ahora); } } void GeneralData::EnableComponents(bool enable) { m_pEstudioDescripcion->Enable(enable); m_pEstudioFecha->Enable(enable); m_pEstudioTime->Enable(enable); m_pSerieDescripcion->Enable(enable); m_pSerieFecha->Enable(enable); m_pSerieTime->Enable(enable); } void GeneralData::GetEstudioFecha() { if(m_pEstudioFecha->GetValue().IsValid()) { m_pImportData->baseImages.tags["0008|0020"] = std::string(m_pEstudioFecha->GetValue().Format(wxT("%Y%m%d")).ToUTF8()); } } void GeneralData::GetEstudioTime() { if(m_pEstudioTime->GetDateTimeValue().IsValid()) { m_pImportData->baseImages.tags["0008|0030"] = std::string(m_pEstudioTime->GetDateTimeValue().Format(wxT("%H%M%S")).ToUTF8()); } } void GeneralData::GetEstudioDescripcion() { m_pImportData->baseImages.tags["0008|1030"] = std::string(m_pEstudioDescripcion->GetValue().ToUTF8()); } void GeneralData::OnKillFocusSerieTimeControl(wxFocusEvent &) { if(!m_pSerieTime->GetDateTimeValue().IsValid()) { wxDateTime ahora = wxDateTime::Now(); m_pSerieTime->SetDateTimeValue(ahora); } } void GeneralData::GetSerieFecha() { if (m_pSeriesPanel->IsShown()) { if(m_pSerieFecha->GetValue().IsValid()) { m_pImportData->baseImages.tags["0008|0021"] = std::string(m_pSerieFecha->GetValue().Format(wxT("%Y%m%d")).ToUTF8()); } } else { if(m_pEstudioFecha->GetValue().IsValid()) { m_pImportData->baseImages.tags["0008|0021"] = std::string(m_pEstudioFecha->GetValue().Format(wxT("%Y%m%d")).ToUTF8()); } } } void GeneralData::GetSerieTime() { if (m_pSeriesPanel->IsShown()) { if(m_pSerieTime->GetDateTimeValue().IsValid()) { m_pImportData->baseImages.tags["0008|0031"] = std::string(m_pSerieTime->GetDateTimeValue().Format(wxT("%H%M%S")).ToUTF8()); } } else { if(m_pEstudioTime->GetDateTimeValue().IsValid()) { m_pImportData->baseImages.tags["0008|0031"] = std::string(m_pEstudioTime->GetDateTimeValue().Format(wxT("%H%M%S")).ToUTF8()); } } } void GeneralData::GetAccno() { if (m_pAccessionNumber->IsShown()) { m_pImportData->baseImages.tags["0008|0050"] = std::string(m_pAccessionNumber->GetValue().ToUTF8()); } } void GeneralData::GetSerieDescripcion() { if (m_pSeriesPanel->IsShown()) { m_pImportData->baseImages.tags["0008|103e"] = std::string(m_pSerieDescripcion->GetValue().ToUTF8()); } else { m_pImportData->baseImages.tags["0008|103e"] = std::string(m_pEstudioDescripcion->GetValue().ToUTF8()); } } int GeneralData::CalcularEdad() { wxDateTime fechaEstudio = m_pEstudioFecha->GetValue(); wxDateTime fechaNacimiento = m_pPacienteFechaNacimiento->GetValue(); int edad = 0; if( (fechaEstudio.GetMonth() > fechaNacimiento.GetMonth()) || (fechaEstudio.GetMonth() == fechaNacimiento.GetMonth() && fechaEstudio.GetDay() >= fechaNacimiento.GetDay()) ) { edad = fechaEstudio.GetYear() - fechaNacimiento.GetYear(); } else { edad = fechaEstudio.GetYear() - fechaNacimiento.GetYear() - 1; } return edad; } } } ginkgocadx-3.8.7/cadxcore/main/gui/import/generaldata.h000066400000000000000000000051171314736454600231220ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include
    #include #include #include
    #include #include namespace GNC { namespace GCS { class IEntorno; } } namespace GNC { namespace GUI { class EXTAPI GeneralData: public PanelDatosGeneralesBase,public IPasoWizard { public: GeneralData(wxWindow* pParent,IWizard* pWizard,const GNC::GCS::Ptr& importationData, bool seriesDescription); ~GeneralData(); //region "Metodos heredados de IPasoWizard" virtual bool Attach(); virtual std::string GetTitle(); virtual std::string GetSubTitle(); virtual bool Siguiente(); virtual bool Anterior(); virtual bool Cancelar(); virtual bool Validar(); virtual bool Validar(bool silent); virtual bool IsSkipped(); //endregion protected: virtual void GetPacienteNombre(); virtual void GetPacienteIdentificador(); virtual void GetPacienteFechaNacimiento(); virtual void GetPacienteEdad(); virtual void GetPacientePeso(); virtual void GetPacienteAltura(); virtual void GetPacienteSexo(); void OnKillFocusEstudioTimeControl(wxFocusEvent &event); void EnableComponents(bool enable); virtual void GetEstudioFecha(); virtual void GetEstudioTime(); virtual void GetEstudioDescripcion(); void OnKillFocusSerieTimeControl(wxFocusEvent &event); virtual void GetSerieFecha(); virtual void GetSerieTime(); virtual void GetAccno(); virtual void GetSerieDescripcion(); GNC::GCS::Ptr m_pImportData; // Helpers: AutoEdad int CalcularEdad(); }; } } ginkgocadx-3.8.7/cadxcore/main/gui/import/importationdata.h000066400000000000000000000033131314736454600240460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include namespace GNC { namespace GUI { class EXTAPI ImportationData { public: typedef std::list TListOfFiles; GNC::GCS::Ptr m_pIntegrationModel; GIL::DICOM::DicomDataset baseImages; TListOfFiles m_SourceFiles; ImportationData() { m_pIntegrationModel = GNC::GCS::Ptr(new GIL::IModeloIntegracion()); } ImportationData(GNC::GCS::Ptr& pModeloIntegracion) { if (pModeloIntegracion.IsValid()) { m_pIntegrationModel = pModeloIntegracion; } else { m_pIntegrationModel = GNC::GCS::Ptr(new GIL::IModeloIntegracion()); } } virtual ~ImportationData() { } }; }; }; ginkgocadx-3.8.7/cadxcore/main/gui/import/pasoperfilimportacion.cpp000066400000000000000000000155031314736454600256170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "pasoperfilimportacion.h" #include #include #include #include
    #include #include #include #include #include
    #include #include #include #include namespace GNC { namespace GUI { class ImportProfileToolBar : public wxGinkgoToolBar { public: ImportProfileToolBar(PasoPefilImportacion* pParent, const wxColor& color = wxColor(255, 255, 255)) : wxGinkgoToolBar(pParent,wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_TEXT), m_pParent(pParent), idTool(1) { SetToolBitmapSize(wxSize(64,64)); wxGinkgoToolBarArt* pToolArt= new wxGinkgoToolBarArt(color); SetBackgroundColour(wxColour(255,255,255)); SetArtProvider(pToolArt); this->Connect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ImportProfileToolBar::OnToolClick),NULL, this ); this->Connect( wxID_ANY, wxEVT_LEFT_DCLICK, wxCommandEventHandler(ImportProfileToolBar::OnToolDClick),NULL, this ); } ~ImportProfileToolBar() { this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(ImportProfileToolBar::OnToolClick),NULL, this ); this->Disconnect( wxID_ANY, wxEVT_LEFT_DCLICK, wxCommandEventHandler(ImportProfileToolBar::OnToolDClick),NULL, this ); } void AddTool(const std::string& toolTip, const wxBitmap& icon) { wxGinkgoToolBar::AddTool(idTool++, wxString::FromUTF8(toolTip.c_str()), icon, wxString::FromUTF8(toolTip.c_str()), wxITEM_CHECK); } void SelectTool(int defaultDicomizator) { for (int i = 1; i < idTool; ++i) { ForceToggleTool(i, i == defaultDicomizator); } if ((defaultDicomizator <1 || defaultDicomizator > idTool) && idTool > 1) { ForceToggleTool(1,true); } } void OnToolClick(wxCommandEvent& event) { for (int i = 1; i < idTool; ++i) { ForceToggleTool(i, i == event.GetId()); } Refresh(true); event.Skip(false); } void OnToolDClick(wxCommandEvent& /*event*/) { m_pParent->SiguientePaso(); } int GetIdSelected() { for (int i = 1; i < idTool; ++i) { if (wxAuiToolBar::GetToolToggled(i)) { return i; } } return -1; } std::string GetNameSelected() { for (int i = 1; i < idTool; ++i) { if (wxAuiToolBar::GetToolToggled(i)) { return std::string(GetToolLabel(i).ToUTF8()); } } return ""; } PasoPefilImportacion* m_pParent; int idTool; }; PasoPefilImportacion::PasoPefilImportacion(wxWindow* pParent,IWizard* pWizard):PasoPerfilImportacionBase(pParent), IPasoWizard(pWizard), m_pToolBar(new ImportProfileToolBar(this)) { m_pControladorModulo = NULL; GetSizer()->Add( 0, 0, 1, wxEXPAND, 5 ); GetSizer()->Add(m_pToolBar, 0, wxALIGN_CENTER_HORIZONTAL); GetSizer()->Add( 0, 0, 1, wxEXPAND, 5 ); GNC::ControladorExtensiones::ListaModulos listaModulos = ControladorExtensiones::Instance()->Modulos(); for(GNC::ControladorExtensiones::IteradorListaModulos it=listaModulos.begin(); it!=listaModulos.end(); ++it) { GNC::GCS::IModuleController* modulo = (*it).second; if(modulo->SoportaImportacion()) { m_pToolBar->AddTool(modulo->GetImporterDescription(), modulo->GetImporterIcon()); } } { int defaultDicomizator; GNC::GCS::ConfigurationController::Instance()->readIntUser("/GinkgoCore/Importacion", "DefaultDicomizator", defaultDicomizator); m_pToolBar->SelectTool(defaultDicomizator); } m_pToolBar->Realize(); Layout(); } PasoPefilImportacion::~PasoPefilImportacion() { m_pControladorModulo = NULL; } //region "Metodos heredados de Ipasowizard" std::string PasoPefilImportacion::GetTitle() { return _Std("Selecting Import Profile"); } std::string PasoPefilImportacion::GetSubTitle() { return _Std("You must select the profile you want to use import"); } bool PasoPefilImportacion::Siguiente() { return true; } bool PasoPefilImportacion::Anterior() { return false; } bool PasoPefilImportacion::Cancelar() { return true; } bool PasoPefilImportacion::Validar() { if(m_pToolBar->GetIdSelected()<=0) { wxMessageBox(_("You must select the import profile"), _("Info"), wxOK | wxICON_INFORMATION, this); return false; } std::string nombreModulo(m_pToolBar->GetNameSelected()); GNC::ControladorExtensiones::ListaModulos listaModulos = ControladorExtensiones::Instance()->Modulos(); for(GNC::ControladorExtensiones::IteradorListaModulos it=listaModulos.begin(); it!=listaModulos.end(); ++it) { GNC::GCS::IModuleController* modulo=(*it).second; if(modulo->GetImporterDescription() == nombreModulo) { m_pControladorModulo = modulo; GNC::GCS::ConfigurationController::Instance()->writeIntUser("/GinkgoCore/Importacion", "DefaultDicomizator", m_pToolBar->GetIdSelected()); return true; } } // wxMessageBox(_("Unexpected error, select the module again"), _("Info"), wxOK | wxICON_INFORMATION, this); return false; } //endregion } } ginkgocadx-3.8.7/cadxcore/main/gui/import/pasoperfilimportacion.h000066400000000000000000000033761314736454600252710ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "pasosimportacionbase.h" #include #include #include #include #include namespace GNC { namespace GCS { class IEntorno; class IModuleController; } namespace GUI { class ImportProfileToolBar; class PasoPefilImportacion: public PasoPerfilImportacionBase, public IPasoWizard { public: PasoPefilImportacion(wxWindow* pParent,IWizard* pWizard); ~PasoPefilImportacion(); GNC::GCS::IModuleController* GetControladorSeleccionado() { return m_pControladorModulo; }; protected: GNC::GCS::IModuleController* m_pControladorModulo; ImportProfileToolBar* m_pToolBar; //region "Metodos heredados de IPasoWizard" virtual std::string GetTitle(); virtual std::string GetSubTitle(); virtual bool Siguiente(); virtual bool Anterior(); virtual bool Cancelar(); virtual bool Validar(); //endregion }; } } ginkgocadx-3.8.7/cadxcore/main/gui/import/pasosimportacionbase.cpp000066400000000000000000000452661314736454600254440ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "pasosimportacionbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; SelectImagesImportationBase::SelectImagesImportationBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxScrolledWindow( parent, id, pos, size, style ) { wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxHORIZONTAL ); m_panelStep0 = new TitledPanelSinBorder( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panelStep0->SetToolTip( _("Selected images") ); wxBoxSizer* bSizer11; bSizer11 = new wxBoxSizer( wxVERTICAL ); m_pSizerButtons = new wxBoxSizer( wxHORIZONTAL ); bSizer11->Add( m_pSizerButtons, 0, wxEXPAND, 5 ); m_pImagenes = new wxThumbnailCtrl(m_panelStep0, -1, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL|wxTH_MULTIPLE_SELECT|wxTH_TEXT_LABEL); m_pImagenes->SetBackgroundColour( wxColour( 255, 255, 255 ) ); bSizer11->Add( m_pImagenes, 1, wxEXPAND|wxALL, 1 ); m_pPreviewPanel = new wxPanel( m_panelStep0, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPreviewPanel->Hide(); wxBoxSizer* bSizer71; bSizer71 = new wxBoxSizer( wxVERTICAL ); m_pPreview = new wxPrevisualizacionDicom(m_pPreviewPanel, -1); bSizer71->Add( m_pPreview, 1, wxEXPAND, 5 ); m_pPreviewPanel->SetSizer( bSizer71 ); m_pPreviewPanel->Layout(); bSizer71->Fit( m_pPreviewPanel ); bSizer11->Add( m_pPreviewPanel, 1, wxEXPAND | wxALL, 1 ); wxBoxSizer* bSizer8; bSizer8 = new wxBoxSizer( wxHORIZONTAL ); m_pButtonPreview = new wxButton( m_panelStep0, wxID_ANY, _("Preview"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer8->Add( m_pButtonPreview, 0, wxALL, 2 ); bSizer8->Add( 0, 0, 1, wxEXPAND, 5 ); m_pButtonRemoveAll = new wxButton( m_panelStep0, wxID_ANY, _("Remove all"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer8->Add( m_pButtonRemoveAll, 0, wxALL|wxALIGN_RIGHT, 2 ); bSizer11->Add( bSizer8, 0, wxEXPAND, 5 ); m_panelStep0->SetSizer( bSizer11 ); m_panelStep0->Layout(); bSizer11->Fit( m_panelStep0 ); bSizer7->Add( m_panelStep0, 1, wxEXPAND, 10 ); this->SetSizer( bSizer7 ); this->Layout(); // Connect Events m_pButtonPreview->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectImagesImportationBase::OnPreviewClick ), NULL, this ); m_pButtonRemoveAll->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectImagesImportationBase::OnRemoveAll ), NULL, this ); } SelectImagesImportationBase::~SelectImagesImportationBase() { // Disconnect Events m_pButtonPreview->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectImagesImportationBase::OnPreviewClick ), NULL, this ); m_pButtonRemoveAll->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectImagesImportationBase::OnRemoveAll ), NULL, this ); } PasoPerfilImportacionBase::PasoPerfilImportacionBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { this->SetBackgroundColour( wxColour( 230, 230, 230 ) ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxVERTICAL ); this->SetSizer( bSizer3 ); this->Layout(); } PasoPerfilImportacionBase::~PasoPerfilImportacionBase() { } PanelDatosGeneralesBase::PanelDatosGeneralesBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxScrolledWindow( parent, id, pos, size, style ) { wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_panelDemographicData = new TitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panelDemographicData->SetToolTip( _("Demographic data") ); wxBoxSizer* bSizer8; bSizer8 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer152; bSizer152 = new wxBoxSizer( wxHORIZONTAL ); bSizer8->Add( bSizer152, 0, wxEXPAND, 5 ); wxGridSizer* gSizer1; gSizer1 = new wxGridSizer( 0, 2, 0, 0 ); wxFlexGridSizer* fgSizer2; fgSizer2 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer2->AddGrowableCol( 1 ); fgSizer2->SetFlexibleDirection( wxBOTH ); fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText311 = new wxStaticText( m_panelDemographicData, wxID_ANY, _("Identificator *"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText311->Wrap( -1 ); fgSizer2->Add( m_staticText311, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxHORIZONTAL ); m_pPacienteId = new wxTextCtrl( m_panelDemographicData, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pPacienteId->SetMaxLength( 64 ); bSizer3->Add( m_pPacienteId, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); m_staticText17 = new wxStaticText( m_panelDemographicData, wxID_ANY, _("(ID or medical history number)"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText17->Wrap( -1 ); bSizer3->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); fgSizer2->Add( bSizer3, 1, wxEXPAND, 5 ); m_staticText23 = new wxStaticText( m_panelDemographicData, wxID_ANY, _("Name"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText23->Wrap( -1 ); fgSizer2->Add( m_staticText23, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pPacienteNombre = new wxTextCtrl( m_panelDemographicData, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 125,-1 ), 0 ); m_pPacienteNombre->SetMaxLength( 64 ); fgSizer2->Add( m_pPacienteNombre, 1, wxALL|wxEXPAND, 5 ); m_staticText41 = new wxStaticText( m_panelDemographicData, wxID_ANY, _("Birth date"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText41->Wrap( -1 ); fgSizer2->Add( m_staticText41, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pPacienteFechaNacimiento = new wxDatePickerCtrl( m_panelDemographicData, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT|wxDP_SHOWCENTURY ); fgSizer2->Add( m_pPacienteFechaNacimiento, 0, wxALL, 5 ); gSizer1->Add( fgSizer2, 1, wxEXPAND, 5 ); wxFlexGridSizer* fgSizer3; fgSizer3 = new wxFlexGridSizer( 0, 2, 0, 0 ); fgSizer3->AddGrowableCol( 1 ); fgSizer3->SetFlexibleDirection( wxBOTH ); fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); dummy1 = new wxStaticText( m_panelDemographicData, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); dummy1->Wrap( -1 ); fgSizer3->Add( dummy1, 0, wxALL, 5 ); dummy2 = new wxStaticText( m_panelDemographicData, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); dummy2->Wrap( -1 ); fgSizer3->Add( dummy2, 0, wxALL, 5 ); m_staticText261 = new wxStaticText( m_panelDemographicData, wxID_ANY, _("Surname"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText261->Wrap( -1 ); fgSizer3->Add( m_staticText261, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pPatientSurname = new wxTextCtrl( m_panelDemographicData, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 125,-1 ), 0 ); m_pPatientSurname->SetMaxLength( 64 ); fgSizer3->Add( m_pPatientSurname, 1, wxALL|wxEXPAND, 5 ); m_staticText13 = new wxStaticText( m_panelDemographicData, wxID_ANY, _("Sex"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText13->Wrap( -1 ); fgSizer3->Add( m_staticText13, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxString m_pPacienteSexoChoices[] = { _("Unknown"), _("Male"), _("Female"), _("Others") }; int m_pPacienteSexoNChoices = sizeof( m_pPacienteSexoChoices ) / sizeof( wxString ); m_pPacienteSexo = new wxChoice( m_panelDemographicData, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pPacienteSexoNChoices, m_pPacienteSexoChoices, 0 ); m_pPacienteSexo->SetSelection( 0 ); fgSizer3->Add( m_pPacienteSexo, 0, wxALL, 5 ); gSizer1->Add( fgSizer3, 1, wxEXPAND, 5 ); bSizer8->Add( gSizer1, 1, wxEXPAND, 5 ); m_panelDemographicData->SetSizer( bSizer8 ); m_panelDemographicData->Layout(); bSizer8->Fit( m_panelDemographicData ); bSizer15->Add( m_panelDemographicData, 0, wxEXPAND, 5 ); m_pSep = new TitledPanelSeparatorV( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer15->Add( m_pSep, 0, wxEXPAND, 5 ); m_panelStudyDetails = new TitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panelStudyDetails->SetToolTip( _("Study Details") ); wxBoxSizer* bSizer13; bSizer13 = new wxBoxSizer( wxVERTICAL ); wxGridBagSizer* gbSizer2; gbSizer2 = new wxGridBagSizer( 0, 0 ); gbSizer2->SetFlexibleDirection( wxBOTH ); gbSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText22 = new wxStaticText( m_panelStudyDetails, wxID_ANY, _("Patient"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText22->Wrap( -1 ); m_staticText22->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); m_staticText22->SetMinSize( wxSize( 75,-1 ) ); gbSizer2->Add( m_staticText22, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT, 5 ); m_staticText11 = new wxStaticText( m_panelStudyDetails, wxID_ANY, _("Weight"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText11->Wrap( -1 ); gbSizer2->Add( m_staticText11, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxHORIZONTAL ); m_pPacientePeso = new wxTextCtrl( m_panelStudyDetails, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 35,-1 ), 0 ); m_pPacientePeso->SetMaxLength( 0 ); bSizer4->Add( m_pPacientePeso, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_staticText18 = new wxStaticText( m_panelStudyDetails, wxID_ANY, _("Kg"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText18->Wrap( -1 ); bSizer4->Add( m_staticText18, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); gbSizer2->Add( bSizer4, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 ); m_staticText15 = new wxStaticText( m_panelStudyDetails, wxID_ANY, _("Height"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText15->Wrap( -1 ); gbSizer2->Add( m_staticText15, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxHORIZONTAL ); m_pPacienteAltura = new wxTextCtrl( m_panelStudyDetails, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 35,-1 ), 0 ); m_pPacienteAltura->SetMaxLength( 0 ); bSizer5->Add( m_pPacienteAltura, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); m_staticText19 = new wxStaticText( m_panelStudyDetails, wxID_ANY, _("cm"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText19->Wrap( -1 ); bSizer5->Add( m_staticText19, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); gbSizer2->Add( bSizer5, wxGBPosition( 0, 4 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 ); m_staticText221 = new wxStaticText( m_panelStudyDetails, wxID_ANY, _("Study"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText221->Wrap( -1 ); m_staticText221->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); gbSizer2->Add( m_staticText221, wxGBPosition( 2, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_pLabelAccNumber = new wxStaticText( m_panelStudyDetails, wxID_ANY, _("Accession Number"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelAccNumber->Wrap( -1 ); gbSizer2->Add( m_pLabelAccNumber, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pAccessionNumber = new wxTextCtrl( m_panelStudyDetails, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pAccessionNumber->SetMaxLength( 64 ); gbSizer2->Add( m_pAccessionNumber, wxGBPosition( 1, 2 ), wxGBSpan( 1, 1 ), wxALL|wxEXPAND, 5 ); m_staticText2 = new wxStaticText( m_panelStudyDetails, wxID_ANY, _("Date"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText2->Wrap( -1 ); gbSizer2->Add( m_staticText2, wxGBPosition( 2, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pEstudioFecha = new wxDatePickerCtrl( m_panelStudyDetails, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT|wxDP_SHOWCENTURY ); gbSizer2->Add( m_pEstudioFecha, wxGBPosition( 2, 2 ), wxGBSpan( 1, 1 ), wxALL, 5 ); m_staticText16 = new wxStaticText( m_panelStudyDetails, wxID_ANY, _("Time"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText16->Wrap( -1 ); gbSizer2->Add( m_staticText16, wxGBPosition( 2, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pEstudioTime = new wxMaskedTextCtrl(m_panelStudyDetails, -1, wxT("hh:nn:ss"), wxT(""), wxDefaultPosition, wxSize(80,-1), 0); gbSizer2->Add( m_pEstudioTime, wxGBPosition( 2, 4 ), wxGBSpan( 1, 1 ), wxALL, 5 ); m_staticText3 = new wxStaticText( m_panelStudyDetails, wxID_ANY, _("Description"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText3->Wrap( -1 ); gbSizer2->Add( m_staticText3, wxGBPosition( 3, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pEstudioDescripcion = new wxTextCtrl( m_panelStudyDetails, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_WORDWRAP ); gbSizer2->Add( m_pEstudioDescripcion, wxGBPosition( 3, 2 ), wxGBSpan( 2, 4 ), wxALL|wxEXPAND, 5 ); gbSizer2->AddGrowableCol( 4 ); bSizer13->Add( gbSizer2, 0, wxEXPAND|wxALL, 5 ); m_pSeriesPanel = new wxPanel( m_panelStudyDetails, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer151; bSizer151 = new wxBoxSizer( wxVERTICAL ); wxGridBagSizer* m_pSeriesSizer; m_pSeriesSizer = new wxGridBagSizer( 0, 0 ); m_pSeriesSizer->SetFlexibleDirection( wxBOTH ); m_pSeriesSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_staticText231 = new wxStaticText( m_pSeriesPanel, wxID_ANY, _("Series"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText231->Wrap( -1 ); m_staticText231->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); m_staticText231->SetMinSize( wxSize( 75,-1 ) ); m_pSeriesSizer->Add( m_staticText231, wxGBPosition( 0, 0 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 ); m_staticText212 = new wxStaticText( m_pSeriesPanel, wxID_ANY, _("Date"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText212->Wrap( -1 ); m_pSeriesSizer->Add( m_staticText212, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pSerieFecha = new wxDatePickerCtrl( m_pSeriesPanel, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT|wxDP_SHOWCENTURY ); m_pSeriesSizer->Add( m_pSerieFecha, wxGBPosition( 0, 2 ), wxGBSpan( 1, 1 ), wxALL, 5 ); m_staticText1611 = new wxStaticText( m_pSeriesPanel, wxID_ANY, _("Time"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText1611->Wrap( -1 ); m_pSeriesSizer->Add( m_staticText1611, wxGBPosition( 0, 3 ), wxGBSpan( 1, 1 ), wxALIGN_CENTER_VERTICAL|wxALL, 5 ); m_pSerieTime = new wxMaskedTextCtrl(m_pSeriesPanel, -1, wxT("hh:nn:ss"), wxT(""), wxDefaultPosition, wxSize(80,-1), 0); m_pSeriesSizer->Add( m_pSerieTime, wxGBPosition( 0, 4 ), wxGBSpan( 1, 1 ), wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_staticText312 = new wxStaticText( m_pSeriesPanel, wxID_ANY, _("Description"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText312->Wrap( -1 ); m_pSeriesSizer->Add( m_staticText312, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pSerieDescripcion = new wxTextCtrl( m_pSeriesPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_WORDWRAP ); m_pSeriesSizer->Add( m_pSerieDescripcion, wxGBPosition( 1, 2 ), wxGBSpan( 2, 4 ), wxEXPAND|wxALL, 5 ); m_pSeriesSizer->AddGrowableCol( 4 ); bSizer151->Add( m_pSeriesSizer, 1, wxEXPAND|wxALL, 5 ); m_pSeriesPanel->SetSizer( bSizer151 ); m_pSeriesPanel->Layout(); bSizer151->Fit( m_pSeriesPanel ); bSizer13->Add( m_pSeriesPanel, 1, wxEXPAND, 5 ); m_panelStudyDetails->SetSizer( bSizer13 ); m_panelStudyDetails->Layout(); bSizer13->Fit( m_panelStudyDetails ); bSizer15->Add( m_panelStudyDetails, 0, wxEXPAND, 5 ); this->SetSizer( bSizer15 ); this->Layout(); bSizer15->Fit( this ); // Connect Events m_pPacienteFechaNacimiento->Connect( wxEVT_DATE_CHANGED, wxDateEventHandler( PanelDatosGeneralesBase::OnDateChanged ), NULL, this ); m_pEstudioFecha->Connect( wxEVT_DATE_CHANGED, wxDateEventHandler( PanelDatosGeneralesBase::OnDateChanged ), NULL, this ); m_pEstudioTime->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( PanelDatosGeneralesBase::OnKillFocusEstudioTimeControl ), NULL, this ); m_pSerieTime->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( PanelDatosGeneralesBase::OnKillFocusSerieTimeControl ), NULL, this ); } PanelDatosGeneralesBase::~PanelDatosGeneralesBase() { // Disconnect Events m_pPacienteFechaNacimiento->Disconnect( wxEVT_DATE_CHANGED, wxDateEventHandler( PanelDatosGeneralesBase::OnDateChanged ), NULL, this ); m_pEstudioFecha->Disconnect( wxEVT_DATE_CHANGED, wxDateEventHandler( PanelDatosGeneralesBase::OnDateChanged ), NULL, this ); m_pEstudioTime->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( PanelDatosGeneralesBase::OnKillFocusEstudioTimeControl ), NULL, this ); m_pSerieTime->Disconnect( wxEVT_KILL_FOCUS, wxFocusEventHandler( PanelDatosGeneralesBase::OnKillFocusSerieTimeControl ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/import/pasosimportacionbase.h000066400000000000000000000122771314736454600251050ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __PASOSIMPORTACIONBASE_H__ #define __PASOSIMPORTACIONBASE_H__ #include #include #include class TitledPanel; class TitledPanelSeparatorV; class TitledPanelSinBorder; class wxScrolledWindow; #include "wx/scrolwin.h" #include #include #include "../../../wx/thumbnailctrl/thumbnailctrl.h" #include #include #include #include #include
    #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class SelectImagesImportationBase /////////////////////////////////////////////////////////////////////////////// class SelectImagesImportationBase : public wxScrolledWindow { private: protected: TitledPanelSinBorder* m_panelStep0; wxBoxSizer* m_pSizerButtons; wxThumbnailCtrl* m_pImagenes; wxPanel* m_pPreviewPanel; wxPrevisualizacionDicom* m_pPreview; wxButton* m_pButtonPreview; wxButton* m_pButtonRemoveAll; // Virtual event handlers, overide them in your derived class virtual void OnPreviewClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnRemoveAll( wxCommandEvent& event ) { event.Skip(); } public: SelectImagesImportationBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 645,464 ), long style = wxTAB_TRAVERSAL ); ~SelectImagesImportationBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PasoPerfilImportacionBase /////////////////////////////////////////////////////////////////////////////// class PasoPerfilImportacionBase : public wxPanel { private: protected: public: PasoPerfilImportacionBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxTAB_TRAVERSAL ); ~PasoPerfilImportacionBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PanelDatosGeneralesBase /////////////////////////////////////////////////////////////////////////////// class PanelDatosGeneralesBase : public wxScrolledWindow { private: protected: TitledPanel* m_panelDemographicData; wxStaticText* m_staticText311; wxTextCtrl* m_pPacienteId; wxStaticText* m_staticText17; wxStaticText* m_staticText23; wxTextCtrl* m_pPacienteNombre; wxStaticText* m_staticText41; wxDatePickerCtrl* m_pPacienteFechaNacimiento; wxStaticText* dummy1; wxStaticText* dummy2; wxStaticText* m_staticText261; wxTextCtrl* m_pPatientSurname; wxStaticText* m_staticText13; wxChoice* m_pPacienteSexo; TitledPanelSeparatorV* m_pSep; TitledPanel* m_panelStudyDetails; wxStaticText* m_staticText22; wxStaticText* m_staticText11; wxTextCtrl* m_pPacientePeso; wxStaticText* m_staticText18; wxStaticText* m_staticText15; wxTextCtrl* m_pPacienteAltura; wxStaticText* m_staticText19; wxStaticText* m_staticText221; wxStaticText* m_pLabelAccNumber; wxTextCtrl* m_pAccessionNumber; wxStaticText* m_staticText2; wxDatePickerCtrl* m_pEstudioFecha; wxStaticText* m_staticText16; wxMaskedTextCtrl *m_pEstudioTime; wxStaticText* m_staticText3; wxTextCtrl* m_pEstudioDescripcion; wxPanel* m_pSeriesPanel; wxStaticText* m_staticText231; wxStaticText* m_staticText212; wxDatePickerCtrl* m_pSerieFecha; wxStaticText* m_staticText1611; wxMaskedTextCtrl *m_pSerieTime; wxStaticText* m_staticText312; wxTextCtrl* m_pSerieDescripcion; // Virtual event handlers, overide them in your derived class virtual void OnDateChanged( wxDateEvent& event ) { event.Skip(); } virtual void OnKillFocusEstudioTimeControl( wxFocusEvent& event ) { event.Skip(); } virtual void OnKillFocusSerieTimeControl( wxFocusEvent& event ) { event.Skip(); } public: PanelDatosGeneralesBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); ~PanelDatosGeneralesBase(); }; } // namespace GUI } // namespace GNC #endif //__PASOSIMPORTACIONBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/import/selectimagesimportation.cpp000066400000000000000000001011011314736454600261270ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include
    #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
    #include "selectimagesimportation.h" #include #include
    #include #include #include #include #include #include #include #include #define ID_BUTTON_HIDE 0 #define ID_BUTTON_ROTATE_LEFT 1 #define ID_BUTTON_ROTATE_RIGHT 2 #define ID_BUTTON_DELETE 3 namespace GNC { namespace GUI { //drag&drop//////////////////////////////////////////////////////// class DropTargetSelectImages: public wxFileDropTarget { public: DropTargetSelectImages(SelectImagesImportation* pParent, const std::list& fileSpecs) : wxFileDropTarget(), m_pParent(pParent), m_fileSpecs(fileSpecs), m_enabled(true) { } ~DropTargetSelectImages() { } void SetEnable(bool enabled) { m_enabled = enabled; } bool OnDropFiles(wxCoord /*x*/, wxCoord /*y*/, const wxArrayString& filenames) { if (!m_enabled) return false; wxArrayString images; for(wxArrayString::const_iterator it = filenames.begin(); it!= filenames.end(); ++it) { if(wxDirExists((*it))) { m_pParent->ScanPath((*it)); } else if(wxFileExists((*it))) { wxFileName filename((*it)); wxString extensionFile = filename.GetExt().Lower(); for (std::list::iterator itSpecs = m_fileSpecs.begin(); itSpecs != m_fileSpecs.end(); ++itSpecs) { wxFileName ext(wxString::FromUTF8((*itSpecs).c_str()).Lower()); if (extensionFile == ext.GetExt().Lower()) { images.push_back((*it)); break; } } } } m_pParent->AddImages(images); return true; } SelectImagesImportation* m_pParent; std::list m_fileSpecs; bool m_enabled; }; /////////////////////////////////////////////////////TIMER DIRECTORY class TimerDirectory : public wxTimer { public: TimerDirectory(SelectImagesImportation* pSelectImages) : m_path(), m_monitorize(false), m_pSelectImages(pSelectImages) { } ~TimerDirectory() { } void SetPath(const std::string& path, bool monitorize) { m_path = wxString::FromUTF8(path.c_str()); m_monitorize = monitorize; } virtual void Notify() { if (m_monitorize) { if (m_pSelectImages->ScanPath(m_path)) { this->Start(1000, true); } else { wxMessageBox(_("Path of the location doesn't exists"), _("Info"), wxOK | wxICON_INFORMATION, m_pSelectImages); } } else { m_pSelectImages->AddImage(m_path); } } protected: wxString m_path; bool m_monitorize; SelectImagesImportation* m_pSelectImages; }; //////////////////////////////////////////////////////// SelectImagesImportation::SelectImagesImportation(wxWindow* pParent, const std::string& dirTemp, IWizard* pWizard, GNC::GCS::Ptr& pModeloIntegracion, const std::list& fileSpecs, const wxString& defaultFilter) : SelectImagesImportationBase(pParent), IPasoWizard(pWizard) { SetScrollbars(10, 10, 50, 50, 0, 0, false); AdjustScrollbars(); m_firstAttach = true; m_pwxImagePreview = new wxImage(); m_fileSpecs = fileSpecs; if (defaultFilter.IsEmpty()) { #if defined(_WIN32) || defined(__WXMAC__) m_pDefaultFilter =_("Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg|BMP Images (*.bmp)|*.bmp|PNG Images (*.png)|*.png|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff|PDF documents (*.pdf)|*.pdf|All files(*.*)|*.*"); #else m_pDefaultFilter =_("Images (*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf)|*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff;*.pdf;*.JPG;*.JPEG;*.BMP;*.PNG;*.TIF;*.TIFF;*.PDF|JPEG Images (*.jpg;*.jpeg)|*.jpg;*.jpeg;*.JPG;*.JPEG|BMP Images (*.bmp)|*.bmp;*BMP|PNG Images (*.png)|*.png;*PNG|TIFF Images (*.tif;*.tiff)|*.tif;*.tiff;*TIF;*TIFF|PDF documents (*.pdf;*.PDF)|*.PDF;*.pdf|All files (*.*)|*.*"); #endif m_fileSpecs.push_back("*.jpg"); m_fileSpecs.push_back("*.jpeg"); m_fileSpecs.push_back("*.bmp"); m_fileSpecs.push_back("*.png"); m_fileSpecs.push_back("*.tif"); m_fileSpecs.push_back("*.tiff"); m_fileSpecs.push_back("*.pdf"); } else { m_pDefaultFilter = defaultFilter; } m_pModeloIntegracion = pModeloIntegracion; Hide(); m_dirTemp = dirTemp; wxColour barColor = wxColour(200,200,200); wxFont fontBar = wxFont( 10, 70, 90, wxFONTWEIGHT_BOLD, false, wxEmptyString ); m_pButtonsBar = new wxGinkgoToolBar(m_panelStep0, barColor, fontBar); int idButton = 0; m_pButtonsBar->AddTool(idButton, _("Select files..."), GinkgoResourcesManager::MenuIcons::GetIcoImportar(), _("Select files from filesystem")); m_pButtonsBar->Connect(idButton++, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(SelectImagesImportation::OnSelectFiles), NULL, this); GNC::GCS::IEntorno::MapaUbicaciones& mapa = GNC::Entorno::Instance()->GetUbicaciones(); for (GNC::GCS::IEntorno::MapaUbicaciones::iterator it = mapa.begin(); it != mapa.end(); ++it) { GIL::Ubicacion* u = (*it).second; m_pButtonsBar->AddTool(idButton, wxString::FromUTF8(u->Titulo.c_str()), GinkgoResourcesManager::MenuIcons::GetIcoImportar(), wxString::FromUTF8(u->Descripcion.c_str()), wxITEM_CHECK); m_pButtonsBar->Connect(idButton++, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(SelectImagesImportation::OnUbicacionClick), NULL, this); } m_pButtonsBar->AddSeparator(); m_pButtonsBar->AddTool(idButton, _("Paste"), GinkgoResourcesManager::MenuIcons::GetIcoPaste(), _("Paste from clipboard")); m_pButtonsBar->Connect(idButton++, wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler(SelectImagesImportation::OnPasteFromClipboard), NULL, this); m_pButtonsBar->Realize(); m_pSizerButtons->Add(m_pButtonsBar, 1, wxEXPAND| wxALL, 0); wxGinkgoToolBar* pToolPreview = new wxGinkgoToolBar(m_pPreviewPanel, barColor, fontBar); pToolPreview->AddTool(ID_BUTTON_HIDE,_("Back"), GinkgoResourcesManager::Acquisition::GetIcoAdquireFile(), _("Back")); pToolPreview->Connect(ID_BUTTON_HIDE,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( SelectImagesImportation::OnHidePreview),NULL,this); pToolPreview->Realize(); m_pPreviewPanel->GetSizer()->Insert(0,pToolPreview,0,wxEXPAND); m_pPreviewPanel->Layout(); m_pImagenes->Connect(wxEVT_COMMAND_THUMBNAIL_LEFT_DCLICK,wxCommandEventHandler(SelectImagesImportation::OnThumbLeftDClickSelected),NULL,this); m_pImagenes->Connect(wxEVT_COMMAND_THUMBNAIL_RIGHT_CLICK,wxCommandEventHandler(SelectImagesImportation::OnThumbRightClickSelected),NULL,this); m_pImagenes->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(SelectImagesImportation::OnImagenesKeyDown),NULL,this); m_pTimerDirectory = new TimerDirectory(this); m_pDropTarget = new DropTargetSelectImages(this, m_fileSpecs); m_pImagenes->SetDropTarget(m_pDropTarget); m_panelStep0->Layout(); Layout(); } void SelectImagesImportation::SetDefaultImage(const wxImage& defaultImage) { m_pDefaultImage = defaultImage; } SelectImagesImportation::~SelectImagesImportation() { if (m_pTimerDirectory != NULL) { delete m_pTimerDirectory; m_pTimerDirectory = NULL; } GIL::Ubicacion* pUbicacion = GetUbicacionSelected(); if (pUbicacion != NULL && pUbicacion->CleanAfter) { /*//remove content from ubicacion directory... */ wxArrayString paths=this->GetSelectedPaths(); for (wxArrayString::iterator it = paths.begin(); it != paths.end(); ++it) { wxRemoveFile((*it)); } } if (m_pwxImagePreview != NULL) { delete m_pwxImagePreview; m_pwxImagePreview = NULL; } m_pImagenes->Disconnect(wxEVT_COMMAND_THUMBNAIL_LEFT_DCLICK,wxCommandEventHandler(SelectImagesImportation::OnThumbLeftDClickSelected),NULL,this); m_pImagenes->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler(SelectImagesImportation::OnImagenesKeyDown),NULL,this); } void SelectImagesImportation::OnImagenesKeyDown(wxKeyEvent &event) { if (event.GetKeyCode() == WXK_DELETE || event.GetKeyCode() == WXK_BACK) { DeleteSelectedThumbnails(); event.Skip(false); } else if ( event.ControlDown()) { if (event.GetKeyCode() == 86 ) { wxCommandEvent ev; OnPasteFromClipboard(ev); event.Skip(false); } else { event.Skip(true); } } else { event.Skip(true); } } void SelectImagesImportation::OnDeleteSelectedThumbnails(wxCommandEvent &) { DeleteSelectedThumbnails(); } void SelectImagesImportation::DeleteSelectedThumbnails() { bool deleteFromDisk = false; ///if monitoring... ask GIL::Ubicacion* pUbicacion = GetUbicacionSelected(); if (pUbicacion != NULL) { if (pUbicacion->Monitorize) { int answer = wxMessageBox(_("Are you sure to delete this file from disk?"),_("Delete"), wxYES_NO , this); if (answer == wxYES) { deleteFromDisk = true; } else { return; } } } int selection = m_pImagenes->GetSelection(); while(selection != -1) { if (deleteFromDisk) { wxThumbnailItem* item = m_pImagenes->GetItem(selection); if (item != NULL) { wxRemoveFile(item->GetFilename()); } } m_pImagenes->Delete(selection); selection = m_pImagenes->GetSelection(); } } void SelectImagesImportation::OnPreviewClick(wxCommandEvent &) { ShowPreview(); } void SelectImagesImportation::OnThumbLeftDClickSelected(wxCommandEvent& event) { ShowPreview(); event.Skip(); } void SelectImagesImportation::OnThumbRightClickSelected(wxCommandEvent& event) { //menu... wxArrayInt selection = m_pImagenes->GetSelections(); if (selection.size() == 0) { return; } wxMenu contextual; wxMenuItem* pRotateLeft = new wxMenuItem(&contextual, ID_BUTTON_DELETE, _("Delete selected items")); contextual.Connect(ID_BUTTON_DELETE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( SelectImagesImportation::OnDeleteSelectedThumbnails),NULL,this); contextual.Append(pRotateLeft); m_pImagenes->PopupMenu(&contextual); event.Skip(); } void SelectImagesImportation::ShowPreview() { // Si hacemos doble click ampliamos la imagen para una mejor visualizacion if (m_pImagenes->GetSelections().size() != 1) { wxMessageBox(_("You must select an image"), _("Info"), wxOK | wxICON_INFORMATION, this); return; } wxBusyInfo info(_("Generating preview...")); // coverity[NEGATIVE_RETURNS] since we force above that the size is one, this is not negative. wxThumbnailItem* item = m_pImagenes->GetItem(m_pImagenes->GetSelection()); if (item == NULL) return; Freeze(); //load preview... wxString pathTmp = item->GetFilename(); if (m_pwxImagePreview->LoadFile(pathTmp)) { m_pImagenes->Hide(); m_pPreviewPanel->Show(); m_pButtonsBar->Hide(); m_pPreview->SetFocus(); m_pButtonRemoveAll->Hide(); m_pButtonPreview->Hide(); vtkSmartPointer data = vtkSmartPointer::New(); double spacing[3] = {1.0f,1.0f,1.0f}; double origin[3] = {0.0f,0.0f,0.0f}; data->SetDimensions(m_pwxImagePreview->GetWidth(), m_pwxImagePreview->GetHeight(), 1); //data->SetNumberOfScalarComponents(3); //data->SetScalarTypeToUnsignedChar(); data->SetSpacing(spacing[0],spacing[1],spacing[2]); data->SetOrigin(origin[0],origin[1],origin[2]); vtkSmartPointer dataImagen = vtkSmartPointer::New(); dataImagen->SetNumberOfComponents(3); unsigned int size = data->GetDimensions()[0] * data->GetDimensions()[1]; dataImagen->SetArray(m_pwxImagePreview->GetData(),size,1); data->GetPointData()->SetScalars(dataImagen); m_pPreview->SetInput(data); m_pPreview->GetView()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_WITH_SELECT_INTERACTION); m_panelStep0->Layout(); m_panelStep0->Refresh(); } else { wxFileName fileName(pathTmp); wxFileType* fileType = wxTheMimeTypesManager->GetFileTypeFromExtension(fileName.GetExt()); if (fileType != NULL) { wxExecute(fileType->GetOpenCommand(pathTmp)); delete fileType; } } Thaw(); } void SelectImagesImportation::OnHidePreview(wxCommandEvent& ) { HidePreview(); } void SelectImagesImportation::HidePreview() { if (!m_pImagenes->IsShown()) { Freeze(); m_pImagenes->Show(); m_pPreviewPanel->Hide(); m_pButtonRemoveAll->Show(); m_pButtonPreview->Show(); m_pButtonsBar->Show(); m_panelStep0->Layout(); m_panelStep0->Refresh(); Thaw(); } } void SelectImagesImportation::OnRemoveAll(wxCommandEvent &event) { m_pImagenes->SelectAll(); DeleteSelectedThumbnails(); event.Skip(); } void SelectImagesImportation::OnPasteFromClipboard(wxCommandEvent& ) { if (wxTheClipboard->Open()) { if (wxTheClipboard->IsSupported( wxDF_BITMAP )) { wxBitmapDataObject bmpData; wxTheClipboard->GetData( bmpData ); wxBitmap bmp = bmpData.GetBitmap(); wxFileName tempDir = FROMPATH(m_dirTemp); wxFileName tempFileName(wxT("clipboard_") + wxString::Format(wxT("%d"), (int) rand())); //if files will be cleaned at the end, we have to copy it in temporally folder wxString tempFile = tempDir.GetFullPath() + wxFileName::GetPathSeparator() + tempFileName.GetName() + wxT(".bmp"); if (bmp.SaveFile(tempFile, wxBITMAP_TYPE_BMP)) { wxThumbnailItem* pItem = NULL; pItem = new wxMemoryImageThumbnailItem(tempFile, bmp.ConvertToImage()); m_pImagenes->Insert( pItem, m_pImagenes->GetCount()); { GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Importacion", "LastMethod", "clipboard"); GNC::GCS::ConfigurationController::Instance()->Flush(); } } else { LOG_ERROR("Importation", "Unable to save bitmap"); } } else if(wxTheClipboard->IsSupported( wxDF_FILENAME )) { wxFileDataObject fileData; wxTheClipboard->GetData(fileData); wxArrayString images; for(wxArrayString::const_iterator it = fileData.GetFilenames().begin(); it!= fileData.GetFilenames().end(); ++it) { if(wxDirExists((*it))) { ScanPath((*it)); } else if(wxFileExists((*it))) { wxFileName filename((*it)); wxString extensionFile = filename.GetExt().Lower(); for (std::list::iterator itSpecs = m_fileSpecs.begin(); itSpecs != m_fileSpecs.end(); ++itSpecs) { wxFileName ext(wxString::FromUTF8((*itSpecs).c_str()).Lower()); if (extensionFile == ext.GetExt().Lower()) { images.push_back((*it)); break; } } } } AddImages(images); } wxTheClipboard->Close(); } } void SelectImagesImportation::OnSelectFiles(wxCommandEvent & ) { UnCheckAll(); m_pDropTarget->SetEnable(true); m_pTimerDirectory->Stop(); std::string pathDefecto; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Importacion", "PathDefecto", pathDefecto); wxString wxPathDefecto = wxString::FromUTF8(pathDefecto.c_str()); if(wxFileExists(wxPathDefecto) || wxDirExists(wxPathDefecto)) { AddImage(wxPathDefecto); } else { AddImage(wxEmptyString); } } void SelectImagesImportation::AddImage(const wxString& path) { wxFileDialog seleccionarFichero (this, _("Select images"), path, wxT(""), m_pDefaultFilter, wxFD_OPEN|wxFD_FILE_MUST_EXIST|wxFD_MULTIPLE); int response = seleccionarFichero.ShowModal(); if (response == wxID_OK) { Update(); wxBusyInfo info(_("Creating Thumbnail...")); wxArrayString paths; seleccionarFichero.GetPaths(paths); { GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Importacion", "PathDefecto", std::string(wxPathOnly(seleccionarFichero.GetPath()).ToUTF8())); GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Importacion", "LastMethod", "file"); GNC::GCS::ConfigurationController::Instance()->Flush(); } for (wxArrayString::iterator it = paths.begin(); it != paths.end(); ++it) { wxString& fileName = (*it); if(m_pImagenes->FindItemForFilename(fileName)==-1) { wxThumbnailItem* pItem = NULL; if (m_pDefaultImage.IsOk()) { pItem = new wxMemoryImageThumbnailItem(fileName, m_pDefaultImage); } else { pItem = new wxImageThumbnailItem(fileName); } m_pImagenes->Insert( pItem, m_pImagenes->GetCount()); } } } } void SelectImagesImportation::AddImages(const wxArrayString& files) { for (wxArrayString::const_iterator it = files.begin(); it != files.end(); ++it) { const wxString& fileName = (*it); if(m_pImagenes->FindItemForFilename(fileName)==-1) { wxBusyInfo info(_("Creating Thumbnails...")); wxThumbnailItem* pItem = NULL; if (m_pDefaultImage.IsOk()) { pItem = new wxMemoryImageThumbnailItem(fileName, m_pDefaultImage); } else { pItem = new wxImageThumbnailItem(fileName); } m_pImagenes->Insert( pItem, m_pImagenes->GetCount()); Update(); } } } bool SelectImagesImportation::ScanPath(const wxString& path) { //se leen los ficheros dicom del directorio if (!wxDirExists(path)) { return false; } wxDir dir; if (dir.Open(path)) { wxArrayString images; for (std::list::iterator itSpecs = m_fileSpecs.begin(); itSpecs != m_fileSpecs.end(); ++itSpecs) { wxString wxPathFich; bool cont = dir.GetFirst(&wxPathFich, wxString::FromUTF8((*itSpecs).c_str())); while (cont) { wxPathFich=dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) +wxPathFich; images.push_back(wxPathFich); cont = dir.GetNext(&wxPathFich); } } #if !defined(_WINDOWS) for (std::list::iterator itSpecs = m_fileSpecs.begin(); itSpecs != m_fileSpecs.end(); ++itSpecs) { wxString wxPathFich; bool cont = dir.GetFirst(&wxPathFich, wxString::FromUTF8((*itSpecs).c_str()).Upper()); while (cont) { wxPathFich=dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) +wxPathFich; images.push_back(wxPathFich); cont = dir.GetNext(&wxPathFich); } } #endif AddImages(images); } return true; } wxArrayString SelectImagesImportation::GetSelectedPaths() { wxArrayString resultado; for(int i=0; iGetCount(); ++i) { wxThumbnailItem* item=dynamic_cast(m_pImagenes->GetItem(i)); if(item!=NULL) { resultado.push_back(item->GetFilename()); } } return resultado; } void SelectImagesImportation::UnCheckAll() { for (unsigned int i = 1; i < m_pButtonsBar->GetToolCount(); i++) { //uncheck ubicaciones m_pButtonsBar->ForceToggleTool(i, false); } m_pButtonsBar->Refresh(true); } void SelectImagesImportation::OnUbicacionClick(wxCommandEvent& event) { int id = event.GetId(); if (id == 0) { UnCheckAll(); m_pTimerDirectory->Stop(); m_pDropTarget->SetEnable(true); } else { GNC::GCS::IEntorno::MapaUbicaciones& mapa = GNC::Entorno::Instance()->GetUbicaciones(); GNC::GCS::IEntorno::MapaUbicaciones::iterator it = mapa.begin(); for (int i = 1; i != id && it != mapa.end(); i++, ++it); if (it != mapa.end()) { if (it->second->Monitorize && !m_pButtonsBar->GetToolToggled(id)) { //if uncheck a monitorize change to normal mode UnCheckAll(); m_pTimerDirectory->Stop(); m_pDropTarget->SetEnable(true); } else { SetUbicacion((*it).second, id); } } else { // GW: this probably shouldn't happen LOG_ERROR("SelectImagesImportation", "id(" << id << ") not in Ubicationmap"); } } } void SelectImagesImportation::SetUbicacion(GIL::Ubicacion* ubicacion, int id) { UnCheckAll(); m_pTimerDirectory->Stop(); m_pButtonsBar->ForceToggleTool(id, true); if (!ubicacion->Monitorize) { m_pDropTarget->SetEnable(true); m_pTimerDirectory->SetPath(ubicacion->Ruta, false); } else { m_pDropTarget->SetEnable(false); m_pImagenes->Clear(); m_pTimerDirectory->SetPath(ubicacion->Ruta,true); } if (ubicacion->CleanBefore) { wxDir dir; if (dir.Open(FROMPATH(ubicacion->Ruta))) { wxString fileName; bool cont = dir.GetFirst(&fileName); while (cont) { fileName=dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) +fileName; if(wxFile::Exists(fileName)) { if (wxRemoveFile(fileName)) { cont = dir.GetNext(&fileName); } else { break; } } } } } m_pTimerDirectory->Start(100, true); } GIL::Ubicacion* SelectImagesImportation::GetUbicacionSelected() { GNC::GCS::IEntorno::MapaUbicaciones& mapa = GNC::Entorno::Instance()->GetUbicaciones(); GNC::GCS::IEntorno::MapaUbicaciones::iterator it = mapa.begin(); for (unsigned int i = 1; i < m_pButtonsBar->GetToolCount() && it != mapa.end(); i++, ++it) { if (m_pButtonsBar->GetToolToggled(i)) { return (*it).second; } } return NULL; } //region "Metodos heredados de Ipasowizard" bool SelectImagesImportation::Attach() { if (m_firstAttach) { //maybe an ubication, maybe a normal path... std::string lastLocation; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Importacion", "LastLocation", lastLocation); GNC::GCS::IEntorno::MapaUbicaciones& mapa = GNC::Entorno::Instance()->GetUbicaciones(); GNC::GCS::IEntorno::MapaUbicaciones::iterator it = mapa.begin(); unsigned int id = 1; for (; id < m_pButtonsBar->GetToolCount() && it != mapa.end(); id++, ++it) { if ((*it).first == lastLocation) { break; } } if (it == mapa.end()) { //opens select file dialog... std::string method; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Importacion", "LastMethod", method); if (method.empty() || method == "file") { wxCommandEvent openDialogEvent(wxEVT_COMMAND_TOOL_CLICKED, 0); m_pButtonsBar->GetEventHandler()->AddPendingEvent(openDialogEvent); } } else { SetUbicacion((*it).second, id); } m_firstAttach = false; } GIL::Ubicacion* pUbicacion = GetUbicacionSelected(); if (pUbicacion != NULL && pUbicacion->Monitorize) { m_pTimerDirectory->Start(100,true); } return true; } bool SelectImagesImportation::Detach() { m_pTimerDirectory->Stop(); return true; } std::string SelectImagesImportation::GetTitle() { return _Std("Image selection"); } std::string SelectImagesImportation::GetSubTitle() { return _Std("You must select the images you want to import"); } bool SelectImagesImportation::Siguiente() { return true; } bool SelectImagesImportation::Anterior() { return true; } bool SelectImagesImportation::Cancelar() { return true; } void SelectImagesImportation::OnCancelled() { m_pTimerDirectory->Stop(); m_pImagenes->Clear(); } bool SelectImagesImportation::Validar() { wxArrayString paths=this->GetSelectedPaths(); if(paths.GetCount()==0) { wxMessageBox(_("You must select at least one image"), _("Info"), wxOK | wxICON_INFORMATION, this); return false; } m_pListaFicheros->clear(); GIL::Ubicacion* pUbicacion = GetUbicacionSelected(); if (pUbicacion != NULL) { GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Importacion", "LastLocation", pUbicacion->Titulo); } else { GNC::GCS::ConfigurationController::Instance()->deleteEntryUser("/GinkgoCore/Importacion", "LastLocation"); } //file must exist for(wxArrayString::iterator it=paths.begin(); it!=paths.end(); ++it) { if(!wxFileName::FileExists((*it))) { wxString str(_("The file")); wxMessageBox(str <<(*it) <<_(" doesn't exist"), _("Info"), wxOK | wxICON_INFORMATION, this); m_pListaFicheros->clear(); //el fichero no existe return false; } wxString wxDirTmp = FROMPATH(m_dirTemp); wxFileName fileName((*it)); //if files will be cleaned at the end, we have to copy it in temporally folder if (pUbicacion != NULL && pUbicacion->CleanAfter) { wxString nombreImagenTemporal = wxDirTmp + wxFileName::GetPathSeparator() + fileName.GetName() + wxString::Format(wxT("%d"), (int) rand()) + wxT(".jpg"); while(wxFile::Exists(nombreImagenTemporal)) { //si existe se busca uno que no exista nombreImagenTemporal= wxDirTmp + wxFileName::GetPathSeparator() + fileName.GetName() + wxString::Format(wxT("%d"), (int) rand()) + wxT(".jpg"); } if (!wxCopyFile((*it), nombreImagenTemporal)) { LOG_ERROR("SelectImagesImportation", "Error copying images from " << (*it).ToUTF8() << " TO " << nombreImagenTemporal.ToUTF8()); } std::string path(TOPATH(nombreImagenTemporal)); m_pListaFicheros->push_back(path); } else { std::string path(TOPATH((*it))); m_pListaFicheros->push_back(path); } } // return true; } //endregion } } ginkgocadx-3.8.7/cadxcore/main/gui/import/selectimagesimportation.h000066400000000000000000000074411314736454600256100ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include
    #include #include #include #include #include #include class wxGinkgoToolBar; namespace GIL { class IModeloIntegracion; } namespace GNC { namespace GUI { class TimerDirectory; class DropTargetSelectImages; class EXTAPI SelectImagesImportation: public SelectImagesImportationBase, public IPasoWizard { public: SelectImagesImportation(wxWindow* pParent, const std::string& dirTemp, IWizard* pWizard, GNC::GCS::Ptr& pModeloIntegracion, const std::list& fileSpec = std::list(), const wxString& defaultFilter = wxEmptyString); void SetDefaultImage(const wxImage& defaultImage); ~SelectImagesImportation(); virtual void AddImages(const wxArrayString& files); virtual bool ScanPath(const wxString& path); protected: bool m_firstAttach; std::string m_dirTemp; GNC::GCS::Ptr m_pModeloIntegracion; wxGinkgoToolBar* m_pButtonsBar; wxString m_pDefaultFilter; wxImage m_pDefaultImage; TimerDirectory* m_pTimerDirectory; DropTargetSelectImages* m_pDropTarget; std::list m_fileSpecs; wxImage* m_pwxImagePreview; virtual wxArrayString GetSelectedPaths(); virtual void OnPasteFromClipboard(wxCommandEvent& event ); virtual void OnSelectFiles(wxCommandEvent &event); public: virtual void AddImage(const wxString& path); protected: virtual void OnPreviewClick(wxCommandEvent &event); virtual void OnThumbLeftDClickSelected(wxCommandEvent& event); virtual void OnThumbRightClickSelected(wxCommandEvent& event); virtual void ShowPreview(); virtual void OnHidePreview(wxCommandEvent& event); virtual void HidePreview(); virtual void OnRemoveAll(wxCommandEvent &event); virtual void OnImagenesKeyDown(wxKeyEvent &event); virtual void OnDeleteSelectedThumbnails(wxCommandEvent &event); virtual void DeleteSelectedThumbnails(); virtual void UnCheckAll(); virtual void OnUbicacionClick(wxCommandEvent& event); virtual void SetUbicacion(GIL::Ubicacion* ubicacion, int id); GIL::Ubicacion* GetUbicacionSelected(); //region "Metodos heredados de IPasoWizard" virtual bool Attach(); virtual bool Detach(); virtual std::string GetTitle(); virtual std::string GetSubTitle(); virtual bool Siguiente(); virtual bool Anterior(); virtual bool Cancelar(); virtual void OnCancelled(); virtual bool Validar(); //endregion }; }; }; ginkgocadx-3.8.7/cadxcore/main/gui/import/wxwizardimportacionginkgo.cpp000066400000000000000000000401461314736454600265320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include "wxwizardimportacionginkgo.h" #include "pasoperfilimportacion.h" #include #include
    #include
    #include
    #include #include
    #include
    #include #include
    #include
    #include
    #include #include #define DICOMIZE_WIZARD_ID "DicomizeWizard" namespace GNC { namespace GUI { wxWizardImportacionGinkgo::wxWizardImportacionGinkgo(wxWindow* pParent, GNC::GCS::Ptr pModeloIntegracion, std::string uidModulo) : wxWizardGinkgoBase(pParent) { //load attributes GNC::GCS::WindowAttributesController::LoadWindowAttributes(DICOMIZE_WIZARD_ID, this, false); // wxWindowDisabler disabler; SetTitle(_("Image Import Wizard")); m_pModeloIntegracion = pModeloIntegracion; m_pControladorModulo = NULL; //si hay mas de un modulo con importador disponible habra que seleccionar el modulo... int soportanImportacion=0; GNC::ControladorExtensiones::ListaModulos listaModulos = ControladorExtensiones::Instance()->Modulos(); for(GNC::ControladorExtensiones::IteradorListaModulos it=listaModulos.begin(); it!=listaModulos.end(); ++it) { GNC::GCS::IModuleController* modulo=(*it).second; if(uidModulo == "") { //se miran los modulos registrados y todo eso if(modulo->SoportaImportacion()) { m_pControladorModulo=modulo; ++soportanImportacion; } } else { std::stringstream os; os<GetUID(); if(os.str() == uidModulo) { if(!modulo->SoportaImportacion()) { wxMessageBox(_("Requested module does not support importation"), _("Info"), wxOK | wxICON_INFORMATION, this); std::string msg(_Std("Requested module does not support importation")); throw (GIL::DICOM::I2DException(msg)); } else { //importamos con el modulo que nos dicen m_pControladorModulo=modulo; ++soportanImportacion; break; } } } } if(soportanImportacion == 0) { if(uidModulo == "") { wxMessageBox(_("There is not registered any module with importation support"), _("Info"), wxOK | wxICON_INFORMATION, this); std::string msg(_Std("There aren't any module with importation support")); throw (GIL::DICOM::I2DException(msg)); } else { wxMessageBox(_("Requested module is not registered"), _("Info"), wxOK | wxICON_INFORMATION, this); std::string msg(_Std("The requested module isn't registered")); throw (GIL::DICOM::I2DException(msg)); } } do { int random = rand(); std::ostringstream osDir; osDir << GNC::Entorno::Instance()->GetGinkgoTempDir() << (char) wxFileName::GetPathSeparator(wxPATH_NATIVE) << "_gnktmp_" << random; m_pathDirTemporal = wxString::FromUTF8(osDir.str().c_str()); } while(wxDir::Exists(m_pathDirTemporal)); #ifdef _WIN32 wxFileName::Mkdir(m_pathDirTemporal); #else wxFileName::Mkdir(m_pathDirTemporal.c_str(), 0777); #endif std::string dir_temp (TOPATH(m_pathDirTemporal)); if (soportanImportacion == 1) { //guay porque el m_pControladorModulo ya tiene valor correcto //se pillan los pasos std::list pasosModulo; m_pControladorModulo->GetPasosImportacion(this,pasosModulo, m_pPanelPrincipal,dir_temp, m_pModeloIntegracion); { //anon statistics std::ostringstream ostrStat; ostrStat << ANON_STAT_DICOMIZE; ostrStat << m_pControladorModulo->GetUID(); LOG_STAT(ostrStat.str()) } if (m_pModeloIntegracion.IsValid()) { //////////TODOm_pModeloIntegracion->UIDModulo = m_pControladorModulo->GetUID(); } for(std::list::iterator it=pasosModulo.begin(); it!=pasosModulo.end(); ++it) { if (!(*it)->IsSkipped()) { m_ListaPasos.push_back(*it); (*it)->AsignarListaFicheros(m_ListaFicheros); } } // } else { //se enchufa el paso perfilimportacion que se encargara de pillar el perfil IPasoWizard* pPaso = new PasoPefilImportacion (m_pPanelPrincipal, this); pPaso->AsignarListaFicheros(m_ListaFicheros); m_ListaPasos.push_back(pPaso); } //free space wxLongLong total = 0; wxLongLong free = 0; wxLongLong KB = 1024; wxLongLong MB = KB*1024; wxLongLong GB = MB*1024; if (wxGetDiskSpace(FROMPATH(GNC::GCS::IEntorno::Instance()->GetGinkgoTempDir()), &total, &free) ) { std::ostringstream os; if (free > GB) { os << std::string((free / GB ).ToString().ToUTF8()) << " GB "; } else if (free > MB) { os << std::string((free / MB ).ToString().ToUTF8()) << " MB "; } else if (free > KB) { os << std::string((free / KB).ToString().ToUTF8()) << " KB "; } else { os << std::string((free).ToString().ToUTF8()) << " B "; } os << _Std("free of") << " "; if (total > GB) { os << std::string((total / GB ).ToString().ToUTF8()) << " GB "; } else if (total > MB) { os << std::string((total / MB ).ToString().ToUTF8()) << " MB "; } else if (total > KB) { os << std::string((total / KB).ToString().ToUTF8()) << " KB "; } else { os << std::string((total).ToString().ToUTF8()) << " B "; } os << _Std("in dicomization dir."); m_pBottomLeftLabel->SetLabel(wxString::FromUTF8(os.str().c_str())); if (free < GB) { m_pBottomLeftLabel->SetForegroundColour(*wxRED); } } else { m_pBottomLeftLabel->SetLabel(wxT("")); } // m_currentPaso=m_ListaPasos.begin(); m_currentPasoIndex=1; CargarCurrent(); } wxWizardImportacionGinkgo::~wxWizardImportacionGinkgo() { m_ListaPasos.clear(); //save window attributes GNC::GCS::WindowAttributesController::SaveWindowAttributes(DICOMIZE_WIZARD_ID, this); } void wxWizardImportacionGinkgo::BorrarArchivosTemporales() { BorrarArchivosTemporales(m_pathDirTemporal); } bool wxWizardImportacionGinkgo::BorrarArchivosTemporales(wxString dirPath) { //borra en cascada if(!wxRmdir(dirPath)) { //vaciar wxDir dir; if (dir.Open(dirPath)) { wxString fileName; bool cont = dir.GetFirst(&fileName); while (cont) { fileName=dir.GetName()+ wxFileName::GetPathSeparator(wxPATH_NATIVE) +fileName; if(wxDir::Exists(fileName)) { if (BorrarArchivosTemporales(fileName)) { cont = dir.GetFirst(&fileName); } else { cont = dir.GetNext(&fileName); } } else { if (wxRemoveFile(fileName)) { cont = dir.GetFirst(&fileName); } else { cont = dir.GetNext(&fileName); } } } } } if(wxDir::Exists(dirPath)) { return wxRmdir(dirPath); } return true; } void wxWizardImportacionGinkgo::OnCancelarClick(wxCommandEvent&) { if ((*m_currentPaso)->AllowCancel()) { for(ListaPasos::iterator it=m_ListaPasos.begin(); it!=m_ListaPasos.end(); ++it) { (*it)->OnCancelled(); } EndModal(wxCANCEL); } } void wxWizardImportacionGinkgo::OnSiguienteClick(wxCommandEvent&) { if ((*m_currentPaso)->Validar()) { Freeze(); wxWindow* pCurrent = dynamic_cast (*m_currentPaso); if (pCurrent != NULL && (*m_currentPaso)->Detach()) { pCurrent->Hide(); m_pSizerPrincipal->Detach(pCurrent); PasoPefilImportacion* pasoPerfil = dynamic_cast (*m_currentPaso); if(pasoPerfil != NULL) { //cargamos los pasos del perfil seleccionado... m_pControladorModulo = pasoPerfil->GetControladorSeleccionado(); std::string dir_temp(TOPATH(m_pathDirTemporal)); m_ListaPasos.clear(); std::list pasosModulo; m_pControladorModulo->GetPasosImportacion(this,pasosModulo,m_pPanelPrincipal,dir_temp,m_pModeloIntegracion); { //anon statistics std::ostringstream ostrStat; ostrStat << ANON_STAT_DICOMIZE; ostrStat << m_pControladorModulo->GetUID(); LOG_STAT(ostrStat.str()) } if (m_pModeloIntegracion.IsValid()) { ////////TODO m_pModeloIntegracion->UIDModulo = m_pControladorModulo->GetUID(); } for(std::list::iterator it=pasosModulo.begin(); it!=pasosModulo.end(); ++it) { if (!(*it)->IsSkipped()) { m_ListaPasos.push_back(*it); (*it)->AsignarListaFicheros(m_ListaFicheros); } } m_currentPaso = m_ListaPasos.begin(); m_currentPasoIndex=1; } else { do { ++m_currentPasoIndex; ++m_currentPaso; } while ((m_currentPaso != m_ListaPasos.end() && (*m_currentPaso)->IsSkipped())); } if(m_currentPaso==m_ListaPasos.end()) { if (GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","auto_close")) { GNC::GUI::StatusBarProgreso* statusBar = (GNC::GUI::StatusBarProgreso*)GNC::Entorno::Instance()->GetVentanaPrincipal()->GetStatusBar(); statusBar->ShowProgressDialog(true); } EndModal(wxOK); } else { CargarCurrent(); } } Thaw(); } } void wxWizardImportacionGinkgo::OnAnteriorClick(wxCommandEvent &) { if(m_currentPaso!=m_ListaPasos.begin()) { wxWindow* pCurrent = dynamic_cast (*m_currentPaso); if (pCurrent != NULL && (*m_currentPaso)->Detach()) { pCurrent->Hide(); m_pSizerPrincipal->Detach(pCurrent); --m_currentPaso; --m_currentPasoIndex; CargarCurrent(); } } } void wxWizardImportacionGinkgo::OnClose(wxCloseEvent &event) { if(m_pModeloIntegracion.IsValid()) { int answer = wxMessageBox(_("Are you sure you want to cancel the import process?"),_("Cancel"), wxYES_NO ,this); if(answer == wxYES) { BorrarArchivosTemporales(); EndModal(wxCANCEL); } else { event.Skip(false); } } else { BorrarArchivosTemporales(); EndModal(wxCANCEL); } } //devuelve la ruta del directorio temporal std::list wxWizardImportacionGinkgo::GetRuta() { std::list salida; for(IPasoWizard::ListaFicheros::iterator it = m_ListaFicheros.begin(); it!= m_ListaFicheros.end(); ++it) { salida.push_back((*it)); } return salida; } void wxWizardImportacionGinkgo::CargarCurrent() { wxWindow* pCurrent = dynamic_cast (*m_currentPaso); if (pCurrent != NULL && (*m_currentPaso)->Attach()) { pCurrent->Show(true); m_pSizerPrincipal->Add(pCurrent, 10, wxEXPAND); wxString label= wxString::Format(_("Step %d of %d: "), (int) m_currentPasoIndex, (int) m_ListaPasos.size()); m_pHeader->SetTitle(label+wxString::FromUTF8((*m_currentPaso)->GetTitle().c_str())); m_pBSiguiente->Enable((*m_currentPaso)->Siguiente()); m_pBAnterior->Enable((*m_currentPaso)->Anterior()); m_pBCerrar->Enable((*m_currentPaso)->Cancelar()); PasoPefilImportacion* pasoPerfil = dynamic_cast (*m_currentPaso); if(*(m_currentPaso)==m_ListaPasos.back() && pasoPerfil == NULL) { m_pBSiguiente->SetLabel(_("&End")); } else { m_pBSiguiente->SetLabel(_("&Next >")); } } m_pPanelPrincipal->Layout(); Layout(); } } } ginkgocadx-3.8.7/cadxcore/main/gui/import/wxwizardimportacionginkgo.h000066400000000000000000000044121314736454600261730ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include namespace GIL { class IModeloIntegracion; } namespace GNC { namespace GUI { class wxWizardImportacionGinkgo: public wxWizardGinkgoBase { public: wxWizardImportacionGinkgo(wxWindow* pParent, GNC::GCS::Ptr pModeloIntegracion, std::string uidModulo = ""); ~wxWizardImportacionGinkgo(); virtual bool BorrarArchivosTemporales(wxString dir); virtual void BorrarArchivosTemporales(); virtual void OnCancelarClick(wxCommandEvent& event); virtual void OnSiguienteClick(wxCommandEvent& event); virtual void OnAnteriorClick(wxCommandEvent &event); virtual void OnClose(wxCloseEvent &event); //region "Metodos de obtencion de resultados del dialogo" //devuelve la ruta del directorio temporal virtual std::list GetRuta(); virtual void CargarCurrent(); //endregion protected: GNC::GCS::IModuleController* m_pControladorModulo; typedef std::list ListaPasos; ListaPasos m_ListaPasos; ListaPasos::iterator m_currentPaso; int m_currentPasoIndex; IPasoWizard::ListaFicheros m_ListaFicheros; wxString m_pathDirTemporal; GNC::GCS::Ptr m_pModeloIntegracion; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/license/000077500000000000000000000000001314736454600206065ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/license/AboutDialog.fbp000066400000000000000000002741031314736454600235000ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect aboutdialogbase 1000 none 1 AboutDialog . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY -1,-1 550,400 AboutDialogBase 660,500 wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER OnAnyKeyDown OnSize bSizerPrincipal wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Ginkgo CADx wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer11 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pPanelSuperior 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Credits wxTAB_TRAVERSAL bSizer81 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pCredits 1 protected 1 Resizable 1 wxHW_SCROLLBAR_AUTO 0 OnTextURL 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer8 wxHORIZONTAL none 5 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Licenses 0 0 1 m_buttonLicenciasOS 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnLicenciasOpenSource 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 1 wxID_ANY UPDATE_INFO 0 0 1 m_pActualizacionInfo 1 public 1 Resizable 1 wxALIGN_CENTRE 0 -1 5 wxEXPAND 1 0 protected 0 5 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_CANCEL &Accept 0 0 1 m_buttonAceptar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 520,300 DialogoLicenciasOpenSourceBase 700,476 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER Open Source Licenses bSizer5 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Open Source Licenses wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxHORIZONTAL none 5 wxALL|wxEXPAND 0 1 1 1 1 1 0 "Cairo" "DCMTK" "FamFamFam Icons" "Fugue Icons" "ITK" "LibJpeg" "LibPng" "OpenSSL" "VTK" "WxWidgets" "Zlib" "SQL Lite" "CharLS" "Dark Glass Icons" "Libcurl" "JsonCpp" "AIRS" 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pListaLicencias 1 protected 1 Resizable 1 wxLB_SINGLE 0 wxFILTER_NONE wxDefaultValidator OnListaLicencias 5 wxEXPAND | wxALL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pRichTextTextoLicencia 1 protected 1 Resizable 1 wxTE_AUTO_URL|wxTE_READONLY 0 wxFILTER_NONE wxDefaultValidator wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer8 wxHORIZONTAL none 5 1 0 protected 0 5 wxLEFT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_CANCEL &Accept 0 0 1 m_buttonAceptar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/license/AcceptLicenseDialog.fbp000066400000000000000000001324331314736454600251270ustar00rootroot00000000000000 ; C++ 1 source_name 0 UTF-8 connect acceptlicensedialogbase 1000 none 1 AcceptLicenseDialog "GNC" "GUI" . 1 1 0 0 wxBOTH 1 1 impl_virtual 0 wxID_ANY AcceptLicenseDialogBase 800,600 wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER License agreement wxFILTER_NONE wxDefaultValidator OnAnyKeyDown OnSize bSizerPrincipal wxVERTICAL none 5 wxEXPAND 0 1 1 0 wxID_ANY m_pHeader protected HeaderPanel; wx/ginkgostyle/ginkgostyle.h License agreement wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 0 wxID_ANY m_pBody protected BodyPanel; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer4 wxVERTICAL none 5 wxEXPAND 1 1 1 0 wxID_ANY 0 m_pTextoLicencia protected wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP wxFILTER_NONE wxDefaultValidator 0 wxALL|wxEXPAND 0 1 1 0 wxID_ANY m_pFooter protected -1,-1 FooterPanel; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer5 wxVERTICAL none 5 wxALL 0 1 1 0 wxID_ANY If you accept the terms of the agreement, click "I Accept the license" to continue. You must accept the license to start using Ginkgo CADx. m_staticText1 protected wxFILTER_NONE wxDefaultValidator -1 5 wxEXPAND 1 bSizer7 wxHORIZONTAL none 5 wxEXPAND 1 bSizer51 wxVERTICAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 0 wxID_ANY Check for updates automatically m_pCheckForUpdates protected wxFILTER_NONE wxDefaultValidator 5 wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL 0 1 1 1 0 wxID_ANY Help us sending anonymous usage data (no patient data will be sent) m_pCheckAnonUsageStats protected wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 protected 0 5 wxRIGHT|wxLEFT|wxALIGN_BOTTOM 0 1 1 1 0 wxID_OK I Accept the license m_buttonAceptar protected wxFILTER_NONE wxDefaultValidator OnAceptarClick 5 wxLEFT|wxALIGN_BOTTOM 0 1 0 1 0 wxID_CANCEL I do NOT accept the license m_buttonCancelar protected wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/license/aboutdialog.cpp000066400000000000000000000044021314736454600236040ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "aboutdialog.h" #include #include #include
    #include #include "dialogolicenciasopensource.h" #include AboutDialog::AboutDialog(wxWindow* pPadre):AboutDialogBase(pPadre) { wxString title = _("About"); title += wxT(" "); title += wxString::FromUTF8(GNC::GCS::IEntorno::Instance()->GetApplicationName().c_str()) + wxT("..."); SetTitle( title); m_pHeader->SetTitle(wxString::FromUTF8(GNC::GCS::IEntorno::Instance()->GetApplicationName().c_str())); m_pHeader->SetSubtitle(wxString::FromUTF8(GNC::GCS::IEntorno::Instance()->GetApplicationSubTitle().c_str())); std::ostringstream ostr; ostr << "

    "; ostr << GNC::GCS::IEntorno::Instance()->GetApplicationName() << " " << GNC::GCS::IEntorno::Instance()->GetGinkgoVersionString() << "

    "; ostr << GNC::GCS::IEntorno::Instance()->GetApplicationCredits(); ostr << ""; m_pCredits->SetPage(wxString::FromUTF8(ostr.str().c_str())); Layout(); } AboutDialog::~AboutDialog() { } void AboutDialog::OnLicenciasOpenSource(wxCommandEvent &) { DialogoLicenciasOpenSource dlg (this); dlg.ShowModal(); } void AboutDialog::OnSize(wxSizeEvent &event) { Layout(); event.Skip(true); } void AboutDialog::OnTextURL(wxHtmlLinkEvent &event) { wxLaunchDefaultBrowser(event.GetLinkInfo().GetHref()); } ginkgocadx-3.8.7/cadxcore/main/gui/license/aboutdialog.h000066400000000000000000000021511314736454600232500ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "aboutdialogbase.h" #include class AboutDialog : public AboutDialogBase { public: AboutDialog(wxWindow* pPadre); ~AboutDialog(); virtual void OnLicenciasOpenSource(wxCommandEvent &event); virtual void OnSize(wxSizeEvent &event); virtual void OnTextURL(wxHtmlLinkEvent &event); private: //endregion }; ginkgocadx-3.8.7/cadxcore/main/gui/license/aboutdialogbase.cpp000066400000000000000000000166021314736454600244440ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "aboutdialogbase.h" /////////////////////////////////////////////////////////////////////////// AboutDialogBase::AboutDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 550,400 ), wxSize( -1,-1 ) ); wxBoxSizer* bSizerPrincipal; bSizerPrincipal = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Ginkgo CADx") ); bSizerPrincipal->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer11; bSizer11 = new wxBoxSizer( wxVERTICAL ); m_pPanelSuperior = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelSuperior->SetToolTip( _("Credits") ); wxBoxSizer* bSizer81; bSizer81 = new wxBoxSizer( wxVERTICAL ); m_pCredits = new wxHtmlWindow( m_pPanelSuperior, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO ); bSizer81->Add( m_pCredits, 1, wxEXPAND, 5 ); m_pPanelSuperior->SetSizer( bSizer81 ); m_pPanelSuperior->Layout(); bSizer81->Fit( m_pPanelSuperior ); bSizer11->Add( m_pPanelSuperior, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer11 ); m_pBody->Layout(); bSizer11->Fit( m_pBody ); bSizerPrincipal->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer8; bSizer8 = new wxBoxSizer( wxHORIZONTAL ); m_buttonLicenciasOS = new wxButton( m_pFooter, wxID_ANY, _("Licenses"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer8->Add( m_buttonLicenciasOS, 0, 0, 5 ); m_pActualizacionInfo = new wxStaticText( m_pFooter, wxID_ANY, _("UPDATE_INFO"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE ); m_pActualizacionInfo->Wrap( -1 ); m_pActualizacionInfo->Hide(); bSizer8->Add( m_pActualizacionInfo, 0, wxALIGN_CENTER_VERTICAL, 5 ); bSizer8->Add( 0, 0, 1, wxEXPAND, 5 ); m_buttonAceptar = new wxButton( m_pFooter, wxID_CANCEL, _("&Accept"), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonAceptar->SetDefault(); bSizer8->Add( m_buttonAceptar, 0, 0, 5 ); m_pFooter->SetSizer( bSizer8 ); m_pFooter->Layout(); bSizer8->Fit( m_pFooter ); bSizerPrincipal->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizerPrincipal ); this->Layout(); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( AboutDialogBase::OnAnyKeyDown ) ); this->Connect( wxEVT_SIZE, wxSizeEventHandler( AboutDialogBase::OnSize ) ); m_pCredits->Connect( wxEVT_COMMAND_HTML_LINK_CLICKED, wxHtmlLinkEventHandler( AboutDialogBase::OnTextURL ), NULL, this ); m_buttonLicenciasOS->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDialogBase::OnLicenciasOpenSource ), NULL, this ); } AboutDialogBase::~AboutDialogBase() { // Disconnect Events this->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( AboutDialogBase::OnAnyKeyDown ) ); this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( AboutDialogBase::OnSize ) ); m_pCredits->Disconnect( wxEVT_COMMAND_HTML_LINK_CLICKED, wxHtmlLinkEventHandler( AboutDialogBase::OnTextURL ), NULL, this ); m_buttonLicenciasOS->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AboutDialogBase::OnLicenciasOpenSource ), NULL, this ); } DialogoLicenciasOpenSourceBase::DialogoLicenciasOpenSourceBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 520,300 ), wxDefaultSize ); wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Open Source Licenses") ); bSizer5->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxHORIZONTAL ); m_pListaLicencias = new wxListBox( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE ); m_pListaLicencias->Append( _("Cairo") ); m_pListaLicencias->Append( _("DCMTK") ); m_pListaLicencias->Append( _("FamFamFam Icons") ); m_pListaLicencias->Append( _("Fugue Icons") ); m_pListaLicencias->Append( _("ITK") ); m_pListaLicencias->Append( _("LibJpeg") ); m_pListaLicencias->Append( _("LibPng") ); m_pListaLicencias->Append( _("OpenSSL") ); m_pListaLicencias->Append( _("VTK") ); m_pListaLicencias->Append( _("WxWidgets") ); m_pListaLicencias->Append( _("Zlib") ); m_pListaLicencias->Append( _("SQL Lite") ); m_pListaLicencias->Append( _("CharLS") ); m_pListaLicencias->Append( _("Dark Glass Icons") ); m_pListaLicencias->Append( _("Libcurl") ); m_pListaLicencias->Append( _("JsonCpp") ); m_pListaLicencias->Append( _("AIRS") ); bSizer7->Add( m_pListaLicencias, 0, wxALL|wxEXPAND, 5 ); m_pRichTextTextoLicencia = new wxRichTextCtrl( m_pBody, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_AUTO_URL|wxTE_READONLY|wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS ); bSizer7->Add( m_pRichTextTextoLicencia, 1, wxEXPAND | wxALL, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer5->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer8; bSizer8 = new wxBoxSizer( wxHORIZONTAL ); bSizer8->Add( 0, 0, 1, 0, 5 ); m_buttonAceptar = new wxButton( m_pFooter, wxID_CANCEL, _("&Accept"), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonAceptar->SetDefault(); bSizer8->Add( m_buttonAceptar, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer8 ); m_pFooter->Layout(); bSizer8->Fit( m_pFooter ); bSizer5->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer5 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events m_pListaLicencias->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DialogoLicenciasOpenSourceBase::OnListaLicencias ), NULL, this ); } DialogoLicenciasOpenSourceBase::~DialogoLicenciasOpenSourceBase() { // Disconnect Events m_pListaLicencias->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DialogoLicenciasOpenSourceBase::OnListaLicencias ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/license/aboutdialogbase.h000066400000000000000000000063011314736454600241040ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __ABOUTDIALOGBASE_H__ #define __ABOUTDIALOGBASE_H__ #include #include #include class BodyPanel; class FooterPanel; class HeaderPanel; class TitledPanel; #include #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /// Class AboutDialogBase /////////////////////////////////////////////////////////////////////////////// class AboutDialogBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; TitledPanel* m_pPanelSuperior; wxHtmlWindow* m_pCredits; FooterPanel* m_pFooter; wxButton* m_buttonLicenciasOS; wxButton* m_buttonAceptar; // Virtual event handlers, overide them in your derived class virtual void OnAnyKeyDown( wxKeyEvent& event ) { event.Skip(); } virtual void OnSize( wxSizeEvent& event ) { event.Skip(); } virtual void OnTextURL( wxHtmlLinkEvent& event ) { event.Skip(); } virtual void OnLicenciasOpenSource( wxCommandEvent& event ) { event.Skip(); } public: wxStaticText* m_pActualizacionInfo; AboutDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 660,500 ), long style = wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~AboutDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DialogoLicenciasOpenSourceBase /////////////////////////////////////////////////////////////////////////////// class DialogoLicenciasOpenSourceBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; wxListBox* m_pListaLicencias; wxRichTextCtrl* m_pRichTextTextoLicencia; FooterPanel* m_pFooter; wxButton* m_buttonAceptar; // Virtual event handlers, overide them in your derived class virtual void OnListaLicencias( wxCommandEvent& event ) { event.Skip(); } public: DialogoLicenciasOpenSourceBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Open Source Licenses"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 700,476 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~DialogoLicenciasOpenSourceBase(); }; #endif //__ABOUTDIALOGBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/license/acceptlicensedialog.cpp000066400000000000000000000047551314736454600253070ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "acceptlicensedialog.h" #include #include
    #include
    #include #include
    #include #include
    #include GNC::GUI::AcceptLicenseDialog::AcceptLicenseDialog(wxWindow* pPadre):GNC::GUI::AcceptLicenseDialogBase(pPadre) { m_pTextoLicencia->SetValue(wxString::FromUTF8(GNC::GCS::IEntorno::Instance()->GetApplicationEula().c_str())); Layout(); m_buttonAceptar->SetFocus(); GNC::GCS::Permisos::EstadoPermiso updates = GNC::GCS::IControladorPermisos::Instance()->Get("core.update","check_updates"); m_pCheckForUpdates->Show(updates); m_pCheckForUpdates->SetValue(updates); #ifdef GINKGO_PRO m_pCheckAnonUsageStats->Show(); #else m_pCheckAnonUsageStats->Show(false); #endif m_pFooter->Layout(); Layout(); } GNC::GUI::AcceptLicenseDialog::~AcceptLicenseDialog() { } void GNC::GUI::AcceptLicenseDialog::OnAceptarClick(wxCommandEvent &event) { GNC::GCS::ConfigurationController::Instance()->writeBoolGeneral("/GinkgoCore/Estacion", "CheckForUpdates", m_pCheckForUpdates->GetValue()); GNC::GCS::ConfigurationController::Instance()->Flush(); event.Skip(true); #ifdef GINKGO_PRO GNC::GCS::ConfigurationController::Instance()->writeBoolGeneral("/GinkgoCore/General", "AnonUsageStats", m_pCheckAnonUsageStats->GetValue()); GNC::GCS::ConfigurationController::Instance()->Flush(); GNC::GCS::AnonUsageStats::Instance()->resetSettings(); #endif LOG_STAT(ANON_STAT_ACCEPT_LICENSE) } ginkgocadx-3.8.7/cadxcore/main/gui/license/acceptlicensedialog.h000066400000000000000000000020601314736454600247370ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "acceptlicensedialogbase.h" namespace GNC { namespace GUI { class AcceptLicenseDialog : public AcceptLicenseDialogBase { public: AcceptLicenseDialog(wxWindow* pPadre); ~AcceptLicenseDialog(); virtual void OnAceptarClick(wxCommandEvent &event); //endregion }; }; }; ginkgocadx-3.8.7/cadxcore/main/gui/license/acceptlicensedialogbase.cpp000066400000000000000000000107331314736454600261330ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "acceptlicensedialogbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; AcceptLicenseDialogBase::AcceptLicenseDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxDefaultSize, wxDefaultSize ); wxBoxSizer* bSizerPrincipal; bSizerPrincipal = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("License agreement") ); bSizerPrincipal->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxVERTICAL ); m_pTextoLicencia = new wxTextCtrl( m_pBody, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY|wxTE_WORDWRAP ); bSizer4->Add( m_pTextoLicencia, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer4 ); m_pBody->Layout(); bSizer4->Fit( m_pBody ); bSizerPrincipal->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxSize( -1,-1 ), wxTAB_TRAVERSAL ); wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxVERTICAL ); m_staticText1 = new wxStaticText( m_pFooter, wxID_ANY, _("If you accept the terms of the agreement, click \"I Accept the license\" to continue. You must accept the license to start using Ginkgo CADx."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText1->Wrap( -1 ); bSizer5->Add( m_staticText1, 0, wxALL, 5 ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer51; bSizer51 = new wxBoxSizer( wxVERTICAL ); m_pCheckForUpdates = new wxCheckBox( m_pFooter, wxID_ANY, _("Check for updates automatically"), wxDefaultPosition, wxDefaultSize, 0 ); m_pCheckForUpdates->SetValue(true); bSizer51->Add( m_pCheckForUpdates, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pCheckAnonUsageStats = new wxCheckBox( m_pFooter, wxID_ANY, _("Help us sending anonymous usage data (no patient data will be sent)"), wxDefaultPosition, wxDefaultSize, 0 ); m_pCheckAnonUsageStats->SetValue(true); bSizer51->Add( m_pCheckAnonUsageStats, 0, wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); bSizer7->Add( bSizer51, 1, wxEXPAND, 5 ); bSizer7->Add( 0, 0, 1, wxEXPAND, 5 ); m_buttonAceptar = new wxButton( m_pFooter, wxID_OK, _("I Accept the license"), wxDefaultPosition, wxDefaultSize, 0 ); m_buttonAceptar->SetDefault(); bSizer7->Add( m_buttonAceptar, 0, wxRIGHT|wxLEFT|wxALIGN_BOTTOM, 5 ); m_buttonCancelar = new wxButton( m_pFooter, wxID_CANCEL, _("I do NOT accept the license"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer7->Add( m_buttonCancelar, 0, wxLEFT|wxALIGN_BOTTOM, 5 ); bSizer5->Add( bSizer7, 1, wxEXPAND, 5 ); m_pFooter->SetSizer( bSizer5 ); m_pFooter->Layout(); bSizer5->Fit( m_pFooter ); bSizerPrincipal->Add( m_pFooter, 0, wxALL|wxEXPAND, 0 ); this->SetSizer( bSizerPrincipal ); this->Layout(); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( AcceptLicenseDialogBase::OnAnyKeyDown ) ); this->Connect( wxEVT_SIZE, wxSizeEventHandler( AcceptLicenseDialogBase::OnSize ) ); m_buttonAceptar->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AcceptLicenseDialogBase::OnAceptarClick ), NULL, this ); } AcceptLicenseDialogBase::~AcceptLicenseDialogBase() { // Disconnect Events this->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( AcceptLicenseDialogBase::OnAnyKeyDown ) ); this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( AcceptLicenseDialogBase::OnSize ) ); m_buttonAceptar->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( AcceptLicenseDialogBase::OnAceptarClick ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/license/acceptlicensedialogbase.h000066400000000000000000000042341314736454600255770ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __acceptlicensedialogbase__ #define __acceptlicensedialogbase__ #include class BodyPanel; class FooterPanel; class HeaderPanel; #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class AcceptLicenseDialogBase /////////////////////////////////////////////////////////////////////////////// class AcceptLicenseDialogBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; wxTextCtrl* m_pTextoLicencia; FooterPanel* m_pFooter; wxStaticText* m_staticText1; wxCheckBox* m_pCheckForUpdates; wxCheckBox* m_pCheckAnonUsageStats; wxButton* m_buttonAceptar; wxButton* m_buttonCancelar; // Virtual event handlers, overide them in your derived class virtual void OnAnyKeyDown( wxKeyEvent& event ) { event.Skip(); } virtual void OnSize( wxSizeEvent& event ) { event.Skip(); } virtual void OnAceptarClick( wxCommandEvent& event ) { event.Skip(); } public: AcceptLicenseDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("License agreement"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 800,600 ), long style = wxCLOSE_BOX|wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); ~AcceptLicenseDialogBase(); }; } // namespace GUI } // namespace GNC #endif //__acceptlicensedialogbase__ ginkgocadx-3.8.7/cadxcore/main/gui/license/dialogolicenciasopensource.cpp000066400000000000000000004303211314736454600267110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "dialogolicenciasopensource.h" #include #include
    #include #include
    #include
    DialogoLicenciasOpenSource::DialogoLicenciasOpenSource(wxWindow* pPadre):DialogoLicenciasOpenSourceBase(pPadre) { m_pListaLicencias->Insert(wxString::FromUTF8(GNC::GCS::IEntorno::Instance()->GetApplicationName().c_str()), 0); wxRichTextBuffer::AddHandler(new wxRichTextXMLHandler()); m_pListaLicencias->Select(0); GNC::ControladorExtensiones::ListaModulos listaModulos = GNC::ControladorExtensiones::Instance()->Modulos(); for (GNC::ControladorExtensiones::ListaModulos::iterator it = listaModulos.begin(); it != listaModulos.end(); ++it) { GNC::GCS::IModuleController::TExtraLicensesMap extraLicenses = (*it).second->GetExtraLicenses(); ExtraMap.insert(extraLicenses.begin(), extraLicenses.end()); } for (GNC::GCS::IModuleController::TExtraLicensesMap::iterator it = ExtraMap.begin(); it != ExtraMap.end(); ++it) { m_pListaLicencias->Append(wxString::FromUTF8((*it).first.c_str())); } EscribeLicenciaGinkgo(); } DialogoLicenciasOpenSource::~DialogoLicenciasOpenSource() { } void DialogoLicenciasOpenSource::OnListaLicencias(wxCommandEvent &) { wxString licencia = m_pListaLicencias->GetStringSelection(); std::string nombre (licencia.ToUTF8()); if(nombre == GNC::GCS::IEntorno::Instance()->GetApplicationName()) { EscribeLicenciaGinkgo(); } else if(nombre == "Cairo") { EscribeLicenciaCairo(); } else if (nombre == "DCMTK") { EscribeLicenciaDCMTK(); } else if (nombre == "FamFamFam Icons") { EscribeLicenciaFamFam(); } else if (nombre == "Fugue Icons") { EscribeLicenciaFugue(); } else if (nombre == "ITK") { EscribeLicenciaITK(); } else if (nombre == "LibJpeg") { EscribeLicencialibjpeg(); } else if (nombre == "LibPng") { EscribeLicencialibpng(); } else if (nombre == "OpenSSL") { EscribeLicenciaOpenssl(); } else if (nombre == "VTK") { EscribeLicenciaVTK(); } else if (nombre == "WxWidgets") { EscribeLicenciawxWidgets(); } else if (nombre == "Zlib") { EscribeLicenciazlib(); } else if(nombre == "SQL Lite") { EscribeLicenciaSQLLite(); } else if (nombre == "CharLS") { EscribeLicenciaCharLS(); } else if (nombre == "Dark Glass Icons") { WriteDarkGlassLicense(); } else if (nombre == "Libcurl") { WriteLibcurl(); } else if (nombre == "JsonCpp") { WriteLibJsonCpp(); } else if (nombre == "AIRS") { WriteLibAIRS(); } else if (ExtraMap.find(nombre) != ExtraMap.end()) { EscribeTitulo(licencia + wxT("\n\n\n")); wxString licenseText = wxString::FromUTF8(ExtraMap[nombre].c_str()); EscribeLicencia(licenseText); } else { m_pRichTextTextoLicencia->Clear(); } } void DialogoLicenciasOpenSource::EscribeTitulo(wxString titulo) { m_pRichTextTextoLicencia->Clear(); m_pRichTextTextoLicencia->SetDefaultStyle(wxRichTextAttr()); m_pRichTextTextoLicencia->BeginBold(); m_pRichTextTextoLicencia->BeginFontSize(14); m_pRichTextTextoLicencia->WriteText(titulo); m_pRichTextTextoLicencia->EndFontSize(); m_pRichTextTextoLicencia->EndBold(); } void DialogoLicenciasOpenSource::EscribeLicencia(wxString& licencia) { m_pRichTextTextoLicencia->BeginFontSize(9); m_pRichTextTextoLicencia->WriteText(licencia); m_pRichTextTextoLicencia->EndFontSize(); m_pRichTextTextoLicencia->Enable(true); } void DialogoLicenciasOpenSource::EscribeLicenciaGinkgo() { EscribeTitulo(wxString::FromUTF8(GNC::GCS::IEntorno::Instance()->GetApplicationName().c_str()) +wxT("\n\n\n")); std::string eula = GNC::Entorno::Instance()->GetApplicationEula(); wxString resultado = wxString::FromUTF8(eula.c_str()); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicenciaCairo() { EscribeTitulo(wxT("Cairo\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("Mozilla Public License Version 1.1\n"); resultado += wxT("\n"); resultado += wxT("1. Definitions.\n"); resultado += wxT("\n"); resultado += wxT("1.0.1. \"Commercial Use\"\n"); resultado += wxT("means distribution or otherwise making the Covered Code available to a third party.\n"); resultado += wxT("1.1. \"Contributor\"\n"); resultado += wxT("means each entity that creates or contributes to the creation of Modifications.\n"); resultado += wxT("1.2. \"Contributor Version\"\n"); resultado += wxT("means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.\n"); resultado += wxT("1.3. \"Covered Code\"\n"); resultado += wxT("means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof.\n"); resultado += wxT("1.4. \"Electronic Distribution Mechanism\"\n"); resultado += wxT("means a mechanism generally accepted in the software development community for the electronic transfer of data.\n"); resultado += wxT("1.5. \"Executable\"\n"); resultado += wxT("means Covered Code in any form other than Source Code.\n"); resultado += wxT("1.6. \"Initial Developer\"\n"); resultado += wxT("means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A.\n"); resultado += wxT("1.7. \"Larger Work\"\n"); resultado += wxT("means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.\n"); resultado += wxT("1.8. \"License\"\n"); resultado += wxT("means this document.\n"); resultado += wxT("1.8.1. \"Licensable\"\n"); resultado += wxT("means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.\n"); resultado += wxT("1.9. \"Modifications\"\n"); resultado += wxT("means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a Modification is:\n"); resultado += wxT("Any addition to or deletion from the contents of a file containing Original Code or previous Modifications.\n"); resultado += wxT("Any new file that contains any part of the Original Code or previous Modifications.\n"); resultado += wxT("1.10. \"Original Code\"\n"); resultado += wxT("means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License.\n"); resultado += wxT("1.10.1. \"Patent Claims\"\n"); resultado += wxT("means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.\n"); resultado += wxT("1.11. \"Source Code\"\n"); resultado += wxT("means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge.\n"); resultado += wxT("1.12. \"You\" (or \"Your\")\n"); resultado += wxT("means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, \"You\" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, \"control\" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.\n"); resultado += wxT("2. Source Code License.\n"); resultado += wxT("\n"); resultado += wxT("2.1. The Initial Developer Grant.\n"); resultado += wxT("\n"); resultado += wxT("The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:\n"); resultado += wxT("\n"); resultado += wxT("under intellectual property rights (other than patent or trademark) Licensable by Initial Developer to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, and/or as part of a Larger Work; and\n"); resultado += wxT("under Patents Claims infringed by the making, using or selling of Original Code, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Code (or portions thereof).\n"); resultado += wxT("the licenses granted in this Section 2.1 (a) and (b) are effective on the date Initial Developer first distributes Original Code under the terms of this License.\n"); resultado += wxT("Notwithstanding Section 2.1 (b) above, no patent license is granted: 1) for code that You delete from the Original Code; 2) separate from the Original Code; or 3) for infringements caused by: i) the modification of the Original Code or ii) the combination of the Original Code with other software or devices.\n"); resultado += wxT("2.2. Contributor Grant.\n"); resultado += wxT("\n"); resultado += wxT("Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license\n"); resultado += wxT("\n"); resultado += wxT("under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work; and\n"); resultado += wxT("under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).\n"); resultado += wxT("the licenses granted in Sections 2.2 (a) and 2.2 (b) are effective on the date Contributor first makes Commercial Use of the Covered Code.\n"); resultado += wxT("Notwithstanding Section 2.2 (b) above, no patent license is granted: 1) for any code that Contributor has deleted from the Contributor Version; 2) separate from the Contributor Version; 3) for infringements caused by: i) third party modifications of Contributor Version or ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or 4) under Patent Claims infringed by Covered Code in the absence of Modifications made by that Contributor.\n"); resultado += wxT("3. Distribution Obligations.\n"); resultado += wxT("\n"); resultado += wxT("3.1. Application of License.\n"); resultado += wxT("\n"); resultado += wxT("The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5.\n"); resultado += wxT("\n"); resultado += wxT("3.2. Availability of Source Code.\n"); resultado += wxT("\n"); resultado += wxT("Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party.\n"); resultado += wxT("\n"); resultado += wxT("3.3. Description of Modifications.\n"); resultado += wxT("\n"); resultado += wxT("You must cause all Covered Code to which You contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code.\n"); resultado += wxT("\n"); resultado += wxT("3.4. Intellectual Property Matters\n"); resultado += wxT("\n"); resultado += wxT("(a) Third Party Claims\n"); resultado += wxT("\n"); resultado += wxT("If Contributor has knowledge that a license under a third party's intellectual property rights is required to exercise the rights granted by such Contributor under Sections 2.1 or 2.2, Contributor must include a text file with the Source Code distribution titled \"LEGAL\" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If Contributor obtains such knowledge after the Modification is made available as described in Section 3.2, Contributor shall promptly modify the LEGAL file in all copies Contributor makes available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained.\n"); resultado += wxT("\n"); resultado += wxT("(b) Contributor APIs\n"); resultado += wxT("\n"); resultado += wxT("If Contributor's Modifications include an application programming interface and Contributor has knowledge of patent licenses which are reasonably necessary to implement that API, Contributor must also include this information in the LEGAL file.\n"); resultado += wxT("\n"); resultado += wxT("(c) Representations.\n"); resultado += wxT("\n"); resultado += wxT("Contributor represents that, except as disclosed pursuant to Section 3.4 (a) above, Contributor believes that Contributor's Modifications are Contributor's original creation(s) and/or Contributor has sufficient rights to grant the rights conveyed by this License.\n"); resultado += wxT("\n"); resultado += wxT("3.5. Required Notices.\n"); resultado += wxT("\n"); resultado += wxT("You must duplicate the notice in Exhibit A in each file of the Source Code. If it is not possible to put such notice in a particular Source Code file due to its structure, then You must include such notice in a location (such as a relevant directory) where a user would be likely to look for such a notice. If You created one or more Modification(s) You may add your name as a Contributor to the notice described in Exhibit A. You must also duplicate this License in any documentation for the Source Code where You describe recipients' rights or ownership rights relating to Covered Code. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.\n"); resultado += wxT("\n"); resultado += wxT("3.6. Distribution of Executable Versions.\n"); resultado += wxT("\n"); resultado += wxT("You may distribute Covered Code in Executable form only if the requirements of Sections 3.1, 3.2, 3.3, 3.4 and 3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code or ownership rights under a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.\n"); resultado += wxT("\n"); resultado += wxT("3.7. Larger Works.\n"); resultado += wxT("\n"); resultado += wxT("You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code.\n"); resultado += wxT("\n"); resultado += wxT("4. Inability to Comply Due to Statute or Regulation.\n"); resultado += wxT("\n"); resultado += wxT("If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute, judicial order, or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.\n"); resultado += wxT("\n"); resultado += wxT("5. Application of this License.\n"); resultado += wxT("\n"); resultado += wxT("This License applies to code to which the Initial Developer has attached the notice in Exhibit A and to related Covered Code.\n"); resultado += wxT("\n"); resultado += wxT("6. Versions of the License.\n"); resultado += wxT("\n"); resultado += wxT("6.1. New Versions\n"); resultado += wxT("\n"); resultado += wxT("Netscape Communications Corporation (\"Netscape\") may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number.\n"); resultado += wxT("\n"); resultado += wxT("6.2. Effect of New Versions\n"); resultado += wxT("\n"); resultado += wxT("Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Netscape. No one other than Netscape has the right to modify the terms applicable to Covered Code created under this License.\n"); resultado += wxT("\n"); resultado += wxT("6.3. Derivative Works\n"); resultado += wxT("\n"); resultado += wxT("If You create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), You must (a) rename Your license so that the phrases \"Mozilla\", \"MOZILLAPL\", \"MOZPL\", \"Netscape\", \"MPL\", \"NPL\" or any confusingly similar phrase do not appear in your license (except to note that your license differs from this License) and (b) otherwise make it clear that Your version of the license contains terms which differ from the Mozilla Public License and Netscape Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.)\n"); resultado += wxT("\n"); resultado += wxT("7. DISCLAIMER OF WARRANTY\n"); resultado += wxT("\n"); resultado += wxT("COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.\n"); resultado += wxT("\n"); resultado += wxT("8. Termination\n"); resultado += wxT("\n"); resultado += wxT("8.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.\n"); resultado += wxT("\n"); resultado += wxT("8.2. If You initiate litigation by asserting a patent infringement claim (excluding declatory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You file such action is referred to as \"Participant\") alleging that:\n"); resultado += wxT("\n"); resultado += wxT("such Participant's Contributor Version directly or indirectly infringes any patent, then any and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively, unless if within 60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually agreeable reasonable royalty for Your past and future use of Modifications made by such Participant, or (ii) withdraw Your litigation claim with respect to the Contributor Version against such Participant. If within 60 days of notice, a reasonable royalty and payment arrangement are not mutually agreed upon in writing by the parties or the litigation claim is not withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 automatically terminate at the expiration of the 60 day notice period specified above.\n"); resultado += wxT("any software, hardware, or device, other than such Participant's Contributor Version, directly or indirectly infringes any patent, then any rights granted to You by such Participant under Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, sold, distributed, or had made, Modifications made by that Participant.\n"); resultado += wxT("8.3. If You assert a patent infringement claim against Participant alleging that such Participant's Contributor Version directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license.\n"); resultado += wxT("\n"); resultado += wxT("8.4. In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements (excluding distributors and resellers) which have been validly granted by You or any distributor hereunder prior to termination shall survive termination.\n"); resultado += wxT("\n"); resultado += wxT("9. LIMITATION OF LIABILITY\n"); resultado += wxT("\n"); resultado += wxT("UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.\n"); resultado += wxT("\n"); resultado += wxT("10. U.S. government end users\n"); resultado += wxT("\n"); resultado += wxT("The Covered Code is a \"commercial item,\" as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of \"commercial computer software\" and \"commercial computer software documentation,\" as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein.\n"); resultado += wxT("\n"); resultado += wxT("11. Miscellaneous\n"); resultado += wxT("\n"); resultado += wxT("This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by California law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in the United States of America, any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California, with venue lying in Santa Clara County, California, with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License.\n"); resultado += wxT("\n"); resultado += wxT("12. Responsibility for claims\n"); resultado += wxT("\n"); resultado += wxT("As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.\n"); resultado += wxT("\n"); resultado += wxT("13. Multiple-licensed code\n"); resultado += wxT("\n"); resultado += wxT("Initial Developer may designate portions of the Covered Code as \"Multiple-Licensed\". \"Multiple-Licensed\" means that the Initial Developer permits you to utilize portions of the Covered Code under Your choice of the MPL or the alternative licenses, if any, specified by the Initial Developer in the file described in Exhibit A.\n"); resultado += wxT("\n"); resultado += wxT("Exhibit A - Mozilla Public License.\n"); resultado += wxT("\n"); resultado += wxT("\"The contents of this file are subject to the Mozilla Public License\n"); resultado += wxT("Version 1.1 (the \"License\"); you may not use this file except in\n"); resultado += wxT("compliance with the License. You may obtain a copy of the License at\n"); resultado += wxT("http://www.mozilla.org/MPL/\n"); resultado += wxT("\n"); resultado += wxT("Software distributed under the License is distributed on an \"AS IS\"\n"); resultado += wxT("basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the\n"); resultado += wxT("License for the specific language governing rights and limitations\n"); resultado += wxT("under the License.\n"); resultado += wxT("\n"); resultado += wxT("The Original Code is ______________________________________.\n"); resultado += wxT("\n"); resultado += wxT("The Initial Developer of the Original Code is ________________________.\n"); resultado += wxT("Portions created by ______________________ are Copyright (C) ______\n"); resultado += wxT("_______________________. All Rights Reserved.\n"); resultado += wxT("\n"); resultado += wxT("Contributor(s): ______________________________________.\n"); resultado += wxT("\n"); resultado += wxT("Alternatively, the contents of this file may be used under the terms\n"); resultado += wxT("of the _____ license (the \"[___] License\"), in which case the\n"); resultado += wxT("provisions of [______] License are applicable instead of those\n"); resultado += wxT("above. If you wish to allow use of your version of this file only\n"); resultado += wxT("under the terms of the [____] License and not to allow others to use\n"); resultado += wxT("your version of this file under the MPL, indicate your decision by\n"); resultado += wxT("deleting the provisions above and replace them with the notice and\n"); resultado += wxT("other provisions required by the [___] License. If you do not delete\n"); resultado += wxT("the provisions above, a recipient may use your version of this file\n"); resultado += wxT("under either the MPL or the [___] License.\"\n"); resultado += wxT("NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source Code files of the Original Code. You should use the text of this Exhibit A rather than the text found in the Original Code Source Code for Your Modifications.\n\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicenciaDCMTK() { EscribeTitulo(wxT("DCMTK\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("COPYRIGHT\n"); resultado += wxT("\n"); resultado += wxT("Unless otherwise specified, the DCMTK software package has the\n"); resultado += wxT("following copyright:\n"); resultado += wxT("\n"); resultado += wxT("/*\n"); resultado += wxT(" * Copyright (C) 1994-2004, OFFIS\n"); resultado += wxT(" *\n"); resultado += wxT(" * This software and supporting documentation were developed by\n"); resultado += wxT(" *\n"); resultado += wxT(" * Kuratorium OFFIS e.V.\n"); resultado += wxT(" * Healthcare Information and Communication Systems\n"); resultado += wxT(" * Escherweg 2\n"); resultado += wxT(" * D-26121 Oldenburg, Germany\n"); resultado += wxT(" *\n"); resultado += wxT(" * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY\n"); resultado += wxT(" * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR\n"); resultado += wxT(" * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR\n"); resultado += wxT(" * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND\n"); resultado += wxT(" * PERFORMANCE OF THE SOFTWARE IS WITH THE USER.\n"); resultado += wxT(" *\n"); resultado += wxT(" * Copyright of the software and supporting documentation is, unless\n"); resultado += wxT(" * otherwise stated, owned by OFFIS, and free access is hereby granted as\n"); resultado += wxT(" * a license to use this software, copy this software and prepare\n"); resultado += wxT(" * derivative works based upon this software. However, any distribution\n"); resultado += wxT(" * of this software source code or supporting documentation or derivative\n"); resultado += wxT(" * works (source code and supporting documentation) must include the\n"); resultado += wxT(" * three paragraphs of this copyright notice.\n"); resultado += wxT(" *\n"); resultado += wxT(" */\n"); resultado += wxT("\n"); resultado += wxT("Some portions of the DCMTK software package are derived from earlier\n"); resultado += wxT("versions of this software with the following copyright, and can be\n"); resultado += wxT("identifed by the following copyright notice located in each source file:\n"); resultado += wxT("\n"); resultado += wxT("/* \n"); resultado += wxT(" * Copyright (C) 1993/1994, OFFIS, Oldenburg University and CERIUM\n"); resultado += wxT(" * \n"); resultado += wxT(" * This software and supporting documentation were\n"); resultado += wxT(" * developed by\n"); resultado += wxT(" * \n"); resultado += wxT(" * Institut OFFIS\n"); resultado += wxT(" * Bereich Kommunikationssysteme\n"); resultado += wxT(" * Westerstr. 10-12\n"); resultado += wxT(" * 26121 Oldenburg, Germany\n"); resultado += wxT(" * \n"); resultado += wxT(" * Fachbereich Informatik\n"); resultado += wxT(" * Abteilung Prozessinformatik\n"); resultado += wxT(" * Carl von Ossietzky Universitaet Oldenburg\n"); resultado += wxT(" * Ammerlaender Heerstr. 114-118\n"); resultado += wxT(" * 26111 Oldenburg, Germany\n"); resultado += wxT(" * \n"); resultado += wxT(" * CERIUM\n"); resultado += wxT(" * Laboratoire SIM\n"); resultado += wxT(" * Faculte de Medecine\n"); resultado += wxT(" * 2 Avenue du Pr. Leon Bernard\n"); resultado += wxT(" * 35043 Rennes Cedex, France\n"); resultado += wxT(" * \n"); resultado += wxT(" * for CEN/TC251/WG4 as a contribution to the Radiological\n"); resultado += wxT(" * Society of North America (RSNA) 1993 Digital Imaging and\n"); resultado += wxT(" * Communications in Medicine (DICOM) Demonstration.\n"); resultado += wxT(" * \n"); resultado += wxT(" * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER OFFIS,\n"); resultado += wxT(" * OLDENBURG UNIVERSITY NOR CERIUM MAKE ANY WARRANTY REGARDING\n"); resultado += wxT(" * THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR\n"); resultado += wxT(" * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER\n"); resultado += wxT(" * DISEASES OR ITS CONFORMITY TO ANY SPECIFICATION. THE\n"); resultado += wxT(" * ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF THE SOFTWARE\n"); resultado += wxT(" * IS WITH THE USER.\n"); resultado += wxT(" * \n"); resultado += wxT(" * Copyright of the software and supporting documentation\n"); resultado += wxT(" * is, unless otherwise stated, jointly owned by OFFIS,\n"); resultado += wxT(" * Oldenburg University and CERIUM and free access is hereby\n"); resultado += wxT(" * granted as a license to use this software, copy this\n"); resultado += wxT(" * software and prepare derivative works based upon this\n"); resultado += wxT(" * software. However, any distribution of this software\n"); resultado += wxT(" * source code or supporting documentation or derivative\n"); resultado += wxT(" * works (source code and supporting documentation) must\n"); resultado += wxT(" * include the three paragraphs of this copyright notice.\n"); resultado += wxT(" * \n"); resultado += wxT(" */ \n"); resultado += wxT("\n"); resultado += wxT("Some other parts of this software within the dcmtk/dcmnet\n"); resultado += wxT("sub-package related to the DICOM Upper Layer Protocol are\n"); resultado += wxT("derived from software developed for the RSNA'93 DICOM\n"); resultado += wxT("demonstration and kindly made available to us by the Mallinckrodt\n"); resultado += wxT("Institute of Radiology. Such software can be identifed by the\n"); resultado += wxT("following copyright notice located in each affected source file:\n"); resultado += wxT("\n"); resultado += wxT("/*\n"); resultado += wxT(" * Copyright (C) 1993, RSNA and Washington University\n"); resultado += wxT(" *\n"); resultado += wxT(" * The software and supporting documentation for the Radiological\n"); resultado += wxT(" * Society of North America (RSNA) 1993 Digital Imaging and\n"); resultado += wxT(" * Communications in Medicine (DICOM) Demonstration were developed\n"); resultado += wxT(" * at the\n"); resultado += wxT(" * Electronic Radiology Laboratory\n"); resultado += wxT(" * Mallinckrodt Institute of Radiology\n"); resultado += wxT(" * Washington University School of Medicine\n"); resultado += wxT(" * 510 S. Kingshighway Blvd.\n"); resultado += wxT(" * St. Louis, MO 63110\n"); resultado += wxT(" * as part of the 1993 DICOM Central Test Node project for, and\n"); resultado += wxT(" * under contract with, the Radiological Society of North America.\n"); resultado += wxT(" *\n"); resultado += wxT(" * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR\n"); resultado += wxT(" * WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS\n"); resultado += wxT(" * PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR\n"); resultado += wxT(" * USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY\n"); resultado += wxT(" * SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF\n"); resultado += wxT(" * THE SOFTWARE IS WITH THE USER.\n"); resultado += wxT(" *\n"); resultado += wxT(" * Copyright of the software and supporting documentation is\n"); resultado += wxT(" * jointly owned by RSNA and Washington University, and free access\n"); resultado += wxT(" * is hereby granted as a license to use this software, copy this\n"); resultado += wxT(" * software and prepare derivative works based upon this software.\n"); resultado += wxT(" * However, any distribution of this software source code or\n"); resultado += wxT(" * supporting documentation or derivative works (source code and\n"); resultado += wxT(" * supporting documentation) must include the three paragraphs of\n"); resultado += wxT(" * the copyright notice.\n"); resultado += wxT(" */\n"); resultado += wxT("\n"); resultado += wxT("The dcmjpeg sub-package includes an adapted version of the Independent JPEG\n"); resultado += wxT("Group Toolkit Version 6b, which is contained in dcmjpeg/libijg8,\n"); resultado += wxT("dcmjpeg/libijg12 and dcmjpeg/libijg16. This toolkit is covered by the\n"); resultado += wxT("following copyright. The original README file for the Independent JPEG\n"); resultado += wxT("Group Toolkit is located in dcmjpeg/docs/ijg_readme.txt.\n"); resultado += wxT("\n"); resultado += wxT("/*\n"); resultado += wxT(" * The authors make NO WARRANTY or representation, either express or implied,\n"); resultado += wxT(" * with respect to this software, its quality, accuracy, merchantability, or\n"); resultado += wxT(" * fitness for a particular purpose. This software is provided \"AS IS\", and you,\n"); resultado += wxT(" * its user, assume the entire risk as to its quality and accuracy.\n"); resultado += wxT(" *\n"); resultado += wxT(" * This software is copyright (C) 1991-1998, Thomas G. Lane.\n"); resultado += wxT(" * All Rights Reserved except as specified below.\n"); resultado += wxT(" *\n"); resultado += wxT(" * Permission is hereby granted to use, copy, modify, and distribute this\n"); resultado += wxT(" * software (or portions thereof) for any purpose, without fee, subject to these\n"); resultado += wxT(" * conditions:\n"); resultado += wxT(" * (1) If any part of the source code for this software is distributed, then this\n"); resultado += wxT(" * README file must be included, with this copyright and no-warranty notice\n"); resultado += wxT(" * unaltered; and any additions, deletions, or changes to the original files\n"); resultado += wxT(" * must be clearly indicated in accompanying documentation.\n"); resultado += wxT(" * (2) If only executable code is distributed, then the accompanying\n"); resultado += wxT(" * documentation must state that \"this software is based in part on the work of\n"); resultado += wxT(" * the Independent JPEG Group\".\n"); resultado += wxT(" * (3) Permission for use of this software is granted only if the user accepts\n"); resultado += wxT(" * full responsibility for any undesirable consequences; the authors accept\n"); resultado += wxT(" * NO LIABILITY for damages of any kind.\n"); resultado += wxT(" *\n"); resultado += wxT(" * These conditions apply to any software derived from or based on the IJG code,\n"); resultado += wxT(" * not just to the unmodified library. If you use our work, you ought to\n"); resultado += wxT(" * acknowledge us.\n"); resultado += wxT(" *\n"); resultado += wxT(" * Permission is NOT granted for the use of any IJG author's name or company name\n"); resultado += wxT(" * in advertising or publicity relating to this software or products derived from\n"); resultado += wxT(" * it. This software may be referred to only as \"the Independent JPEG Group's\n"); resultado += wxT(" * software\".\n"); resultado += wxT(" *\n"); resultado += wxT(" * We specifically permit and encourage the use of this software as the basis of\n"); resultado += wxT(" * commercial products, provided that all warranty or liability claims are\n"); resultado += wxT(" * assumed by the product vendor.\n"); resultado += wxT(" */\n"); resultado += wxT("\n"); resultado += wxT("\n"); resultado += wxT("The color quantization code in module dcmimage (dcmquant and the related\n"); resultado += wxT("classes) is derived from code written by Jef Poskanzer for the NetPBM\n"); resultado += wxT("toolkit which has the following copyright:\n"); resultado += wxT("\n"); resultado += wxT("/*\n"); resultado += wxT(" * Copyright (C) 1989, 1991 by Jef Poskanzer.\n"); resultado += wxT(" *\n"); resultado += wxT(" * Permission to use, copy, modify, and distribute this software and its\n"); resultado += wxT(" * documentation for any purpose and without fee is hereby granted, provided\n"); resultado += wxT(" * that the above copyright notice appear in all copies and that both that\n"); resultado += wxT(" * copyright notice and this permission notice appear in supporting\n"); resultado += wxT(" * documentation. This software is provided \"as is\" without express or\n"); resultado += wxT(" * implied warranty.\n"); resultado += wxT(" */\n"); resultado += wxT("\n"); resultado += wxT("\n"); resultado += wxT("The code for the OFStandard::strlcpy and OFStandard::strlcat helper\n"); resultado += wxT("functions in ofstd/libsrc/ofstd.cc has been derived from the BSD\n"); resultado += wxT("implementation of strlcpy() and strlcat() and which carries the\n"); resultado += wxT("following copyright notice:\n"); resultado += wxT("\n"); resultado += wxT("/*\n"); resultado += wxT(" * Copyright (c) 1998 Todd C. Miller \n"); resultado += wxT(" * All rights reserved.\n"); resultado += wxT(" *\n"); resultado += wxT(" * Redistribution and use in source and binary forms, with or without\n"); resultado += wxT(" * modification, are permitted provided that the following conditions\n"); resultado += wxT(" * are met:\n"); resultado += wxT(" * 1. Redistributions of source code must retain the above copyright\n"); resultado += wxT(" * notice, this list of conditions and the following disclaimer.\n"); resultado += wxT(" * 2. Redistributions in binary form must reproduce the above copyright\n"); resultado += wxT(" * notice, this list of conditions and the following disclaimer in the\n"); resultado += wxT(" * documentation and/or other materials provided with the distribution.\n"); resultado += wxT(" * 3. The name of the author may not be used to endorse or promote products\n"); resultado += wxT(" * derived from this software without specific prior written permission.\n"); resultado += wxT(" *\n"); resultado += wxT(" * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,\n"); resultado += wxT(" * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\n"); resultado += wxT(" * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n"); resultado += wxT(" * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n"); resultado += wxT(" * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n"); resultado += wxT(" * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\n"); resultado += wxT(" * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n"); resultado += wxT(" * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\n"); resultado += wxT(" * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\n"); resultado += wxT(" * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"); resultado += wxT(" */\n"); resultado += wxT("\n"); resultado += wxT("\n"); resultado += wxT("The code for the OFStandard::atof helper function in\n"); resultado += wxT("ofstd/libsrc/ofstd.cc has been derived from an implementation which\n"); resultado += wxT("carries the following copyright notice:\n"); resultado += wxT("\n"); resultado += wxT("/*\n"); resultado += wxT(" * Copyright 1988 Regents of the University of California\n"); resultado += wxT(" * Permission to use, copy, modify, and distribute this software and\n"); resultado += wxT(" * its documentation for any purpose and without fee is hereby granted,\n"); resultado += wxT(" * provided that the above copyright notice appear in all copies. The\n"); resultado += wxT(" * University of California makes no representations about the\n"); resultado += wxT(" * suitability of this software for any purpose. It is provided \"as\n"); resultado += wxT(" * is\" without express or implied warranty.\n"); resultado += wxT(" *\n"); resultado += wxT(" *\n"); resultado += wxT(" * The code for OFStandard::ftoa has been derived\n"); resultado += wxT(" * from an implementation which carries the following copyright notice:\n"); resultado += wxT(" *\n"); resultado += wxT(" * Copyright (c) 1988 Regents of the University of California.\n"); resultado += wxT(" * All rights reserved.\n"); resultado += wxT(" *\n"); resultado += wxT(" * Redistribution and use in source and binary forms are permitted\n"); resultado += wxT(" * provided that the above copyright notice and this paragraph are\n"); resultado += wxT(" * duplicated in all such forms and that any documentation,\n"); resultado += wxT(" * advertising materials, and other materials related to such\n"); resultado += wxT(" * distribution and use acknowledge that the software was developed\n"); resultado += wxT(" * by the University of California, Berkeley. The name of the\n"); resultado += wxT(" * University may not be used to endorse or promote products derived\n"); resultado += wxT(" * from this software without specific prior written permission.\n"); resultado += wxT(" * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR\n"); resultado += wxT(" * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED\n"); resultado += wxT(" * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.\n"); resultado += wxT(" */\n"); resultado += wxT("\n"); resultado += wxT("The \"Base64\" encoder/decoder in ofstd/libsrc/ofstd.cc has been derived\n"); resultado += wxT("from an implementation which carries the following copyright notice:\n"); resultado += wxT("\n"); resultado += wxT("/*\n"); resultado += wxT(" * Copyright (c) 1999, Bob Withers - bwit(at)pobox.com\n"); resultado += wxT(" *\n"); resultado += wxT(" * This code may be freely used for any purpose, either personal or commercial,\n"); resultado += wxT(" * provided the authors copyright notice remains intact.\n"); resultado += wxT(" */\n"); resultado += wxT("\n"); resultado += wxT("The dcmjp2k sub-package (which is currently not part of the free \n"); resultado += wxT("toolkit) includes an adapted version of the JasPer JPEG 2000 toolkit, \n"); resultado += wxT("which is contained in dcmjp2k/libjaspr. This toolkit is covered by \n"); resultado += wxT("the following copyright.\n"); resultado += wxT("\n"); resultado += wxT("/* JasPer License Version 2.0\n"); resultado += wxT(" * \n"); resultado += wxT(" * Copyright (c) 1999-2000 Image Power, Inc.\n"); resultado += wxT(" * Copyright (c) 1999-2000 The University of British Columbia\n"); resultado += wxT(" * Copyright (c) 2001-2003 Michael David Adams\n"); resultado += wxT(" * \n"); resultado += wxT(" * All rights reserved.\n"); resultado += wxT(" * \n"); resultado += wxT(" * Permission is hereby granted, free of charge, to any person (the\n"); resultado += wxT(" * \"User\") obtaining a copy of this software and associated documentation\n"); resultado += wxT(" * files (the \"Software\"), to deal in the Software without restriction,\n"); resultado += wxT(" * including without limitation the rights to use, copy, modify, merge,\n"); resultado += wxT(" * publish, distribute, and/or sell copies of the Software, and to permit\n"); resultado += wxT(" * persons to whom the Software is furnished to do so, subject to the\n"); resultado += wxT(" * following conditions:\n"); resultado += wxT(" * \n"); resultado += wxT(" * 1. The above copyright notices and this permission notice (which\n"); resultado += wxT(" * includes the disclaimer below) shall be included in all copies or\n"); resultado += wxT(" * substantial portions of the Software.\n"); resultado += wxT(" * \n"); resultado += wxT(" * 2. The name of a copyright holder shall not be used to endorse or\n"); resultado += wxT(" * promote products derived from the Software without specific prior\n"); resultado += wxT(" * written permission.\n"); resultado += wxT(" * \n"); resultado += wxT(" * THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS\n"); resultado += wxT(" * LICENSE. NO USE OF THE SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER\n"); resultado += wxT(" * THIS DISCLAIMER. THE SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS\n"); resultado += wxT(" * \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n"); resultado += wxT(" * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n"); resultado += wxT(" * PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO\n"); resultado += wxT(" * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL\n"); resultado += wxT(" * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING\n"); resultado += wxT(" * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,\n"); resultado += wxT(" * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION\n"); resultado += wxT(" * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. NO ASSURANCES ARE\n"); resultado += wxT(" * PROVIDED BY THE COPYRIGHT HOLDERS THAT THE SOFTWARE DOES NOT INFRINGE\n"); resultado += wxT(" * THE PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OF ANY OTHER ENTITY.\n"); resultado += wxT(" * EACH COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY TO THE USER FOR CLAIMS\n"); resultado += wxT(" * BROUGHT BY ANY OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL\n"); resultado += wxT(" * PROPERTY RIGHTS OR OTHERWISE. AS A CONDITION TO EXERCISING THE RIGHTS\n"); resultado += wxT(" * GRANTED HEREUNDER, EACH USER HEREBY ASSUMES SOLE RESPONSIBILITY TO SECURE\n"); resultado += wxT(" * ANY OTHER INTELLECTUAL PROPERTY RIGHTS NEEDED, IF ANY. THE SOFTWARE\n"); resultado += wxT(" * IS NOT FAULT-TOLERANT AND IS NOT INTENDED FOR USE IN MISSION-CRITICAL\n"); resultado += wxT(" * SYSTEMS, SUCH AS THOSE USED IN THE OPERATION OF NUCLEAR FACILITIES,\n"); resultado += wxT(" * AIRCRAFT NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL\n"); resultado += wxT(" * SYSTEMS, DIRECT LIFE SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH\n"); resultado += wxT(" * THE FAILURE OF THE SOFTWARE OR SYSTEM COULD LEAD DIRECTLY TO DEATH,\n"); resultado += wxT(" * PERSONAL INJURY, OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE (\"HIGH\n"); resultado += wxT(" * RISK ACTIVITIES\"). THE COPYRIGHT HOLDERS SPECIFICALLY DISCLAIM ANY\n"); resultado += wxT(" * EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR HIGH RISK ACTIVITIES.\n"); resultado += wxT(" */ \n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicenciaFamFam() { EscribeTitulo(wxT("FamFamFam icons\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("Silk icon set 1.3\n"); resultado += wxT("\n"); resultado += wxT("_________________________________________\n"); resultado += wxT("Mark James\n"); resultado += wxT("http://www.famfamfam.com/lab/icons/silk/\n"); resultado += wxT("_________________________________________\n"); resultado += wxT("Creative Commons\n"); resultado += wxT("\n"); resultado += wxT("Attribution 2.5\n"); resultado += wxT("\n"); resultado += wxT("CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE.\n"); resultado += wxT("License\n"); resultado += wxT("\n"); resultado += wxT("THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE (\"CCPL\" OR \"LICENSE\"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.\n"); resultado += wxT("\n"); resultado += wxT("BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.\n"); resultado += wxT("\n"); resultado += wxT("1. Definitions\n"); resultado += wxT("\n"); resultado += wxT("\"Collective Work\" means a work, such as a periodical issue, anthology or encyclopedia, in which the Work in its entirety in unmodified form, along with a number of other contributions, constituting separate and independent works in themselves, are assembled into a collective whole. A work that constitutes a Collective Work will not be considered a Derivative Work (as defined below) for the purposes of this License.\n"); resultado += wxT("\"Derivative Work\" means a work based upon the Work or upon the Work and other pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which the Work may be recast, transformed, or adapted, except that a work that constitutes a Collective Work will not be considered a Derivative Work for the purpose of this License. For the avoidance of doubt, where the Work is a musical composition or sound recording, the synchronization of the Work in timed-relation with a moving image (\"synching\") will be considered a Derivative Work for the purpose of this License.\n"); resultado += wxT("\"Licensor\" means the individual or entity that offers the Work under the terms of this License.\n"); resultado += wxT("\"Original Author\" means the individual or entity who created the Work.\n"); resultado += wxT("\"Work\" means the copyrightable work of authorship offered under the terms of this License.\n"); resultado += wxT("\"You\" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.\n"); resultado += wxT("2. Fair Use Rights. Nothing in this license is intended to reduce, limit, or restrict any rights arising from fair use, first sale or other limitations on the exclusive rights of the copyright owner under copyright law or other applicable laws.\n"); resultado += wxT("\n"); resultado += wxT("3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:\n"); resultado += wxT("\n"); resultado += wxT("to reproduce the Work, to incorporate the Work into one or more Collective Works, and to reproduce the Work as incorporated in the Collective Works;\n"); resultado += wxT("to create and reproduce Derivative Works;\n"); resultado += wxT("to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission the Work including as incorporated in Collective Works;\n"); resultado += wxT("to distribute copies or phonorecords of, display publicly, perform publicly, and perform publicly by means of a digital audio transmission Derivative Works.\n"); resultado += wxT("For the avoidance of doubt, where the work is a musical composition:\n"); resultado += wxT("\n"); resultado += wxT("Performance Royalties Under Blanket Licenses. Licensor waives the exclusive right to collect, whether individually or via a performance rights society (e.g. ASCAP, BMI, SESAC), royalties for the public performance or public digital performance (e.g. webcast) of the Work.\n"); resultado += wxT("Mechanical Rights and Statutory Royalties. Licensor waives the exclusive right to collect, whether individually or via a music rights agency or designated agent (e.g. Harry Fox Agency), royalties for any phonorecord You create from the Work (\"cover version\") and distribute, subject to the compulsory license created by 17 USC Section 115 of the US Copyright Act (or the equivalent in other jurisdictions).\n"); resultado += wxT("Webcasting Rights and Statutory Royalties. For the avoidance of doubt, where the Work is a sound recording, Licensor waives the exclusive right to collect, whether individually or via a performance-rights society (e.g. SoundExchange), royalties for the public digital performance (e.g. webcast) of the Work, subject to the compulsory license created by 17 USC Section 114 of the US Copyright Act (or the equivalent in other jurisdictions).\n"); resultado += wxT("The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. All rights not expressly granted by Licensor are hereby reserved.\n"); resultado += wxT("\n"); resultado += wxT("4. Restrictions.The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:\n"); resultado += wxT("\n"); resultado += wxT("You may distribute, publicly display, publicly perform, or publicly digitally perform the Work only under the terms of this License, and You must include a copy of, or the Uniform Resource Identifier for, this License with every copy or phonorecord of the Work You distribute, publicly display, publicly perform, or publicly digitally perform. You may not offer or impose any terms on the Work that alter or restrict the terms of this License or the recipients' exercise of the rights granted hereunder. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties. You may not distribute, publicly display, publicly perform, or publicly digitally perform the Work with any technological measures that control access or use of the Work in a manner inconsistent with the terms of this License Agreement. The above applies to the Work as incorporated in a Collective Work, but this does not require the Collective Work apart from the Work itself to be made subject to the terms of this License. If You create a Collective Work, upon notice from any Licensor You must, to the extent practicable, remove from the Collective Work any credit as required by clause 4(b), as requested. If You create a Derivative Work, upon notice from any Licensor You must, to the extent practicable, remove from the Derivative Work any credit as required by clause 4(b), as requested.\n"); resultado += wxT("If you distribute, publicly display, publicly perform, or publicly digitally perform the Work or any Derivative Works or Collective Works, You must keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or (ii) if the Original Author and/or Licensor designate another party or parties (e.g. a sponsor institute, publishing entity, journal) for attribution in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; the title of the Work if supplied; to the extent reasonably practicable, the Uniform Resource Identifier, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and in the case of a Derivative Work, a credit identifying the use of the Work in the Derivative Work (e.g., \"French translation of the Work by Original Author,\" or \"Screenplay based on original Work by Original Author\"). Such credit may be implemented in any reasonable manner; provided, however, that in the case of a Derivative Work or Collective Work, at a minimum such credit will appear where any other comparable authorship credit appears and in a manner at least as prominent as such other comparable authorship credit.\n"); resultado += wxT("5. Representations, Warranties and Disclaimer\n"); resultado += wxT("\n"); resultado += wxT("UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.\n"); resultado += wxT("\n"); resultado += wxT("6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n"); resultado += wxT("\n"); resultado += wxT("7. Termination\n"); resultado += wxT("\n"); resultado += wxT("This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Derivative Works or Collective Works from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.\n"); resultado += wxT("Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.\n"); resultado += wxT("8. Miscellaneous\n"); resultado += wxT("\n"); resultado += wxT("Each time You distribute or publicly digitally perform the Work or a Collective Work, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.\n"); resultado += wxT("Each time You distribute or publicly digitally perform a Derivative Work, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.\n"); resultado += wxT("If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.\n"); resultado += wxT("No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.\n"); resultado += wxT("This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.\n"); resultado += wxT("Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor.\n"); resultado += wxT("\n"); resultado += wxT("Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, neither party will use the trademark \"Creative Commons\" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time.\n"); resultado += wxT("\n"); resultado += wxT("Creative Commons may be contacted at http://creativecommons.org/.\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicenciaFugue() { EscribeTitulo(wxT("Fugue icons\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("_________________________________________\n"); resultado += wxT("Yusuke Kamiyamane\n"); resultado += wxT("http://p.yusukekamiyamane.com/\n"); resultado += wxT("_________________________________________\n"); resultado += wxT("\n"); resultado += wxT("CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN \"AS-IS\" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. "); resultado += wxT("\n"); resultado += wxT("License\n"); resultado += wxT("\n"); resultado += wxT("THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE (\"CCPL\" OR \"LICENSE\"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.\n"); resultado += wxT("\n"); resultado += wxT("BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.\n"); resultado += wxT("\n"); resultado += wxT("1. Definitions\n"); resultado += wxT("\n"); resultado += wxT(" 1. \"Adaptation\" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image (\"synching\") will be considered an Adaptation for the purpose of this License.\n"); resultado += wxT(" 2. \"Collection\" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License.\n"); resultado += wxT(" 3. \"Distribute\" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership.\n"); resultado += wxT(" 4. \"Licensor\" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License.\n"); resultado += wxT(" 5. \"Original Author\" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast.\n"); resultado += wxT(" 6. \"Work\" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work.\n"); resultado += wxT(" 7. \"You\" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation.\n"); resultado += wxT(" 8. \"Publicly Perform\" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images.\n"); resultado += wxT(" 9. \"Reproduce\" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium.\n"); resultado += wxT("\n"); resultado += wxT("2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws.\n"); resultado += wxT("\n"); resultado += wxT("3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below:\n"); resultado += wxT("\n"); resultado += wxT(" 1. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections;\n"); resultado += wxT(" 2. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked \"The original work was translated from English to Spanish,\" or a modification could indicate \"The original work has been modified.\";\n"); resultado += wxT(" 3. to Distribute and Publicly Perform the Work including as incorporated in Collections; and,\n"); resultado += wxT(" 4. to Distribute and Publicly Perform Adaptations.\n"); resultado += wxT(" 5.\n"); resultado += wxT("\n"); resultado += wxT(" For the avoidance of doubt:\n"); resultado += wxT(" 1. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License;\n"); resultado += wxT(" 2. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and,\n"); resultado += wxT(" 3. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License.\n"); resultado += wxT("\n"); resultado += wxT("The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved.\n"); resultado += wxT("\n"); resultado += wxT("4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions:\n"); resultado += wxT("\n"); resultado += wxT(" 1. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(b), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(b), as requested.\n"); resultado += wxT(" 2. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution (\"Attribution Parties\") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Section 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., \"French translation of the Work by Original Author,\" or \"Screenplay based on original Work by Original Author\"). The credit required by this Section 4 (b) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties.\n"); resultado += wxT(" 3. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise.\n"); resultado += wxT("\n"); resultado += wxT("5. Representations, Warranties and Disclaimer\n"); resultado += wxT("\n"); resultado += wxT("UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.\n"); resultado += wxT("\n"); resultado += wxT("6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\n"); resultado += wxT("\n"); resultado += wxT("7. Termination\n"); resultado += wxT("\n"); resultado += wxT(" 1. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License.\n"); resultado += wxT(" 2. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above.\n"); resultado += wxT("\n"); resultado += wxT("8. Miscellaneous\n"); resultado += wxT("\n"); resultado += wxT(" 1. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License.\n"); resultado += wxT(" 2. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License.\n"); resultado += wxT(" 3. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.\n"); resultado += wxT(" 4. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent.\n"); resultado += wxT(" 5. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You.\n"); resultado += wxT(" 6. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law.\n"); resultado += wxT("\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicenciaITK() { EscribeTitulo(wxT("ITK\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("The license of the Insight Toolkit is an open-source BSD license. It allows unrestricted use, including use in commercial products. (The only exceptions are software modules found in the patented software directory.)\n"); resultado += wxT("\n"); resultado += wxT("Starting with ITK 3.6, The Insight Toolkit is distributed under the new and simplified BSD license approved by the Open Source Initiative(OSI). The complete license is shown below.\n"); resultado += wxT("/*=========================================================================\n"); resultado += wxT("Copyright (c) 1999-2008 Insight Software Consortium All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n"); resultado += wxT("* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n"); resultado += wxT("* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n"); resultado += wxT("* Neither the name of the Insight Software Consortium nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n"); resultado += wxT("THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. "); resultado += wxT("IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, "); resultado += wxT("OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"); resultado += wxT("=========================================================================*\n"); resultado += wxT("\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicencialibjpeg() { EscribeTitulo(wxT("LibJpeg\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("In plain English:\n"); resultado += wxT("\n"); resultado += wxT("1. We don't promise that this software works. (But if you find any bugs,\n"); resultado += wxT(" please let us know!)\n"); resultado += wxT("2. You can use this software for whatever you want. You don't have to pay us.\n"); resultado += wxT("3. You may not pretend that you wrote this software. If you use it in a\n"); resultado += wxT(" program, you must acknowledge somewhere in your documentation that\n"); resultado += wxT(" you've used the IJG code.\n"); resultado += wxT("\n"); resultado += wxT("In legalese:\n"); resultado += wxT("\n"); resultado += wxT("The authors make NO WARRANTY or representation, either express or implied,\n"); resultado += wxT("with respect to this software, its quality, accuracy, merchantability, or\n"); resultado += wxT("fitness for a particular purpose. This software is provided \"AS IS\", and you,\n"); resultado += wxT("its user, assume the entire risk as to its quality and accuracy.\n"); resultado += wxT("\n"); resultado += wxT("This software is copyright (C) 1991-2009, Thomas G. Lane, Guido Vollbeding.\n"); resultado += wxT("All Rights Reserved except as specified below.\n"); resultado += wxT("\n"); resultado += wxT("Permission is hereby granted to use, copy, modify, and distribute this\n"); resultado += wxT("software (or portions thereof) for any purpose, without fee, subject to these\n"); resultado += wxT("conditions:\n"); resultado += wxT("(1) If any part of the source code for this software is distributed, then this\n"); resultado += wxT("README file must be included, with this copyright and no-warranty notice\n"); resultado += wxT("unaltered; and any additions, deletions, or changes to the original files\n"); resultado += wxT("must be clearly indicated in accompanying documentation.\n"); resultado += wxT("(2) If only executable code is distributed, then the accompanying\n"); resultado += wxT("documentation must state that \"this software is based in part on the work of\n"); resultado += wxT("the Independent JPEG Group\".\n"); resultado += wxT("(3) Permission for use of this software is granted only if the user accepts\n"); resultado += wxT("full responsibility for any undesirable consequences; the authors accept\n"); resultado += wxT("NO LIABILITY for damages of any kind.\n"); resultado += wxT("\n"); resultado += wxT("These conditions apply to any software derived from or based on the IJG code,\n"); resultado += wxT("not just to the unmodified library. If you use our work, you ought to\n"); resultado += wxT("acknowledge us.\n"); resultado += wxT("\n"); resultado += wxT("Permission is NOT granted for the use of any IJG author's name or company name\n"); resultado += wxT("in advertising or publicity relating to this software or products derived from\n"); resultado += wxT("it. This software may be referred to only as \"the Independent JPEG Group's\n"); resultado += wxT("software\".\n"); resultado += wxT("\n"); resultado += wxT("We specifically permit and encourage the use of this software as the basis of\n"); resultado += wxT("commercial products, provided that all warranty or liability claims are\n"); resultado += wxT("assumed by the product vendor.\n"); resultado += wxT("\n"); resultado += wxT("\n"); resultado += wxT("ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,\n"); resultado += wxT("sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.\n"); resultado += wxT("ansi2knr.c is NOT covered by the above copyright and conditions, but instead\n"); resultado += wxT("by the usual distribution terms of the Free Software Foundation; principally,\n"); resultado += wxT("that you must include source code if you redistribute it. (See the file\n"); resultado += wxT("ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part\n"); resultado += wxT("of any program generated from the IJG code, this does not limit you more than\n"); resultado += wxT("the foregoing paragraphs do.\n"); resultado += wxT("\n"); resultado += wxT("The Unix configuration script \"configure\" was produced with GNU Autoconf.\n"); resultado += wxT("It is copyright by the Free Software Foundation but is freely distributable.\n"); resultado += wxT("The same holds for its supporting scripts (config.guess, config.sub,\n"); resultado += wxT("ltmain.sh). Another support script, install-sh, is copyright by X Consortium\n"); resultado += wxT("but is also freely distributable.\n"); resultado += wxT("\n"); resultado += wxT("The IJG distribution formerly included code to read and write GIF files.\n"); resultado += wxT("To avoid entanglement with the Unisys LZW patent, GIF reading support has\n"); resultado += wxT("been removed altogether, and the GIF writer has been simplified to produce\n"); resultado += wxT("\"uncompressed GIFs\". This technique does not use the LZW algorithm; the\n"); resultado += wxT("resulting GIF files are larger than usual, but are readable by all standard\n"); resultado += wxT("GIF decoders.\n"); resultado += wxT("\n"); resultado += wxT("We are required to state that\n"); resultado += wxT(" \"The Graphics Interchange Format(c) is the Copyright property of\n"); resultado += wxT(" CompuServe Incorporated. GIF(sm) is a Service Mark property of\n"); resultado += wxT(" CompuServe Incorporated.\"\n"); resultado += wxT("\n"); resultado += wxT("\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicencialibpng() { EscribeTitulo(wxT("Libpng\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("This copy of the libpng notices is provided for your convenience. In case of\n"); resultado += wxT("any discrepancy between this copy and the notices in the file png.h that is\n"); resultado += wxT("included in the libpng distribution, the latter shall prevail.\n"); resultado += wxT("\n"); resultado += wxT("COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:\n"); resultado += wxT("\n"); resultado += wxT("If you modify libpng you may insert additional notices immediately following\n"); resultado += wxT("this sentence.\n"); resultado += wxT("\n"); resultado += wxT("This code is released under the libpng license.\n"); resultado += wxT("\n"); resultado += wxT("libpng versions 1.2.6, August 15, 2004, through 1.2.40, September 10, 2009, are\n"); resultado += wxT("Copyright (c) 2004, 2006-2009 Glenn Randers-Pehrson, and are\n"); resultado += wxT("distributed according to the same disclaimer and license as libpng-1.2.5\n"); resultado += wxT("with the following individual added to the list of Contributing Authors\n"); resultado += wxT("\n"); resultado += wxT(" Cosmin Truta\n"); resultado += wxT("\n"); resultado += wxT("libpng versions 1.0.7, July 1, 2000, through 1.2.5 - October 3, 2002, are\n"); resultado += wxT("Copyright (c) 2000-2002 Glenn Randers-Pehrson, and are\n"); resultado += wxT("distributed according to the same disclaimer and license as libpng-1.0.6\n"); resultado += wxT("with the following individuals added to the list of Contributing Authors\n"); resultado += wxT("\n"); resultado += wxT(" Simon-Pierre Cadieux\n"); resultado += wxT(" Eric S. Raymond\n"); resultado += wxT(" Gilles Vollant\n"); resultado += wxT("\n"); resultado += wxT("and with the following additions to the disclaimer:\n"); resultado += wxT("\n"); resultado += wxT(" There is no warranty against interference with your enjoyment of the\n"); resultado += wxT(" library or against infringement. There is no warranty that our\n"); resultado += wxT(" efforts or the library will fulfill any of your particular purposes\n"); resultado += wxT(" or needs. This library is provided with all faults, and the entire\n"); resultado += wxT(" risk of satisfactory quality, performance, accuracy, and effort is with\n"); resultado += wxT(" the user.\n"); resultado += wxT("\n"); resultado += wxT("libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are\n"); resultado += wxT("Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are\n"); resultado += wxT("distributed according to the same disclaimer and license as libpng-0.96,\n"); resultado += wxT("with the following individuals added to the list of Contributing Authors:\n"); resultado += wxT("\n"); resultado += wxT(" Tom Lane\n"); resultado += wxT(" Glenn Randers-Pehrson\n"); resultado += wxT(" Willem van Schaik\n"); resultado += wxT("\n"); resultado += wxT("libpng versions 0.89, June 1996, through 0.96, May 1997, are\n"); resultado += wxT("Copyright (c) 1996, 1997 Andreas Dilger\n"); resultado += wxT("Distributed according to the same disclaimer and license as libpng-0.88,\n"); resultado += wxT("with the following individuals added to the list of Contributing Authors:\n"); resultado += wxT("\n"); resultado += wxT(" John Bowler\n"); resultado += wxT(" Kevin Bracey\n"); resultado += wxT(" Sam Bushell\n"); resultado += wxT(" Magnus Holmgren\n"); resultado += wxT(" Greg Roelofs\n"); resultado += wxT(" Tom Tanner\n"); resultado += wxT("\n"); resultado += wxT("libpng versions 0.5, May 1995, through 0.88, January 1996, are\n"); resultado += wxT("Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n"); resultado += wxT("\n"); resultado += wxT("For the purposes of this copyright and license, \"Contributing Authors\"\n"); resultado += wxT("is defined as the following set of individuals:\n"); resultado += wxT("\n"); resultado += wxT(" Andreas Dilger\n"); resultado += wxT(" Dave Martindale\n"); resultado += wxT(" Guy Eric Schalnat\n"); resultado += wxT(" Paul Schmidt\n"); resultado += wxT(" Tim Wegner\n"); resultado += wxT("\n"); resultado += wxT("The PNG Reference Library is supplied \"AS IS\". The Contributing Authors\n"); resultado += wxT("and Group 42, Inc. disclaim all warranties, expressed or implied,\n"); resultado += wxT("including, without limitation, the warranties of merchantability and of\n"); resultado += wxT("fitness for any purpose. The Contributing Authors and Group 42, Inc.\n"); resultado += wxT("assume no liability for direct, indirect, incidental, special, exemplary,\n"); resultado += wxT("or consequential damages, which may result from the use of the PNG\n"); resultado += wxT("Reference Library, even if advised of the possibility of such damage.\n"); resultado += wxT("\n"); resultado += wxT("Permission is hereby granted to use, copy, modify, and distribute this\n"); resultado += wxT("source code, or portions hereof, for any purpose, without fee, subject\n"); resultado += wxT("to the following restrictions:\n"); resultado += wxT("\n"); resultado += wxT("1. The origin of this source code must not be misrepresented.\n"); resultado += wxT("\n"); resultado += wxT("2. Altered versions must be plainly marked as such and must not\n"); resultado += wxT(" be misrepresented as being the original source.\n"); resultado += wxT("\n"); resultado += wxT("3. This Copyright notice may not be removed or altered from any\n"); resultado += wxT(" source or altered source distribution.\n"); resultado += wxT("\n"); resultado += wxT("The Contributing Authors and Group 42, Inc. specifically permit, without\n"); resultado += wxT("fee, and encourage the use of this source code as a component to\n"); resultado += wxT("supporting the PNG file format in commercial products. If you use this\n"); resultado += wxT("source code in a product, acknowledgment is not required but would be\n"); resultado += wxT("appreciated.\n"); resultado += wxT("\n"); resultado += wxT("\n"); resultado += wxT("A \"png_get_copyright\" function is available, for convenient use in \"about\"\n"); resultado += wxT("boxes and the like:\n"); resultado += wxT("\n"); resultado += wxT(" printf(\"%s\",png_get_copyright(NULL));\n"); resultado += wxT("\n"); resultado += wxT("Also, the PNG logo (in PNG format, of course) is supplied in the\n"); resultado += wxT("files \"pngbar.png\" and \"pngbar.jpg (88x31) and \"pngnow.png\" (98x31).\n"); resultado += wxT("\n"); resultado += wxT("Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a\n"); resultado += wxT("certification mark of the Open Source Initiative.\n"); resultado += wxT("\n"); resultado += wxT("Glenn Randers-Pehrson\n"); resultado += wxT("glennrp at users.sourceforge.net\n"); resultado += wxT("September 10, 2009\n"); resultado += wxT("\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicenciaOpenssl() { EscribeTitulo(wxT("OpenSSL\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("/* ====================================================================\n"); resultado += wxT(" * Copyright (c) 1998-2008 The OpenSSL Project. All rights reserved.\n"); resultado += wxT(" *\n"); resultado += wxT(" * Redistribution and use in source and binary forms, with or without\n"); resultado += wxT(" * modification, are permitted provided that the following conditions\n"); resultado += wxT(" * are met:\n"); resultado += wxT(" *\n"); resultado += wxT(" * 1. Redistributions of source code must retain the above copyright\n"); resultado += wxT(" * notice, this list of conditions and the following disclaimer. \n"); resultado += wxT(" *\n"); resultado += wxT(" * 2. Redistributions in binary form must reproduce the above copyright\n"); resultado += wxT(" * notice, this list of conditions and the following disclaimer in\n"); resultado += wxT(" * the documentation and/or other materials provided with the\n"); resultado += wxT(" * distribution.\n"); resultado += wxT(" *\n"); resultado += wxT(" * 3. All advertising materials mentioning features or use of this\n"); resultado += wxT(" * software must display the following acknowledgment:\n"); resultado += wxT(" * \"This product includes software developed by the OpenSSL Project\n"); resultado += wxT(" * for use in the OpenSSL Toolkit. (http://www.openssl.org/)\"\n"); resultado += wxT(" *\n"); resultado += wxT(" * 4. The names \"OpenSSL Toolkit\" and \"OpenSSL Project\" must not be used to\n"); resultado += wxT(" * endorse or promote products derived from this software without\n"); resultado += wxT(" * prior written permission. For written permission, please contact\n"); resultado += wxT(" * openssl-core@openssl.org.\n"); resultado += wxT(" *\n"); resultado += wxT(" * 5. Products derived from this software may not be called \"OpenSSL\"\n"); resultado += wxT(" * nor may \"OpenSSL\" appear in their names without prior written\n"); resultado += wxT(" * permission of the OpenSSL Project.\n"); resultado += wxT(" *\n"); resultado += wxT(" * 6. Redistributions of any form whatsoever must retain the following\n"); resultado += wxT(" * acknowledgment:\n"); resultado += wxT(" * \"This product includes software developed by the OpenSSL Project\n"); resultado += wxT(" * for use in the OpenSSL Toolkit (http://www.openssl.org/)\"\n"); resultado += wxT(" *\n"); resultado += wxT(" * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY\n"); resultado += wxT(" * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n"); resultado += wxT(" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n"); resultado += wxT(" * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR\n"); resultado += wxT(" * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n"); resultado += wxT(" * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n"); resultado += wxT(" * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n"); resultado += wxT(" * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n"); resultado += wxT(" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n"); resultado += wxT(" * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n"); resultado += wxT(" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n"); resultado += wxT(" * OF THE POSSIBILITY OF SUCH DAMAGE.\n"); resultado += wxT(" * ====================================================================\n"); resultado += wxT(" *\n"); resultado += wxT(" * This product includes cryptographic software written by Eric Young\n"); resultado += wxT(" * (eay@cryptsoft.com). This product includes software written by Tim\n"); resultado += wxT(" * Hudson (tjh@cryptsoft.com).\n"); resultado += wxT(" *\n"); resultado += wxT(" */\n"); resultado += wxT("\n"); resultado += wxT(" Original SSLeay License\n"); resultado += wxT(" -----------------------\n"); resultado += wxT("\n"); resultado += wxT("/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)\n"); resultado += wxT(" * All rights reserved.\n"); resultado += wxT(" *\n"); resultado += wxT(" * This package is an SSL implementation written\n"); resultado += wxT(" * by Eric Young (eay@cryptsoft.com).\n"); resultado += wxT(" * The implementation was written so as to conform with Netscapes SSL.\n"); resultado += wxT(" * \n"); resultado += wxT(" * This library is free for commercial and non-commercial use as long as\n"); resultado += wxT(" * the following conditions are aheared to. The following conditions\n"); resultado += wxT(" * apply to all code found in this distribution, be it the RC4, RSA,\n"); resultado += wxT(" * lhash, DES, etc., code; not just the SSL code. The SSL documentation\n"); resultado += wxT(" * included with this distribution is covered by the same copyright terms\n"); resultado += wxT(" * except that the holder is Tim Hudson (tjh@cryptsoft.com).\n"); resultado += wxT(" * \n"); resultado += wxT(" * Copyright remains Eric Young's, and as such any Copyright notices in\n"); resultado += wxT(" * the code are not to be removed.\n"); resultado += wxT(" * If this package is used in a product, Eric Young should be given attribution\n"); resultado += wxT(" * as the author of the parts of the library used.\n"); resultado += wxT(" * This can be in the form of a textual message at program startup or\n"); resultado += wxT(" * in documentation (online or textual) provided with the package.\n"); resultado += wxT(" * \n"); resultado += wxT(" * Redistribution and use in source and binary forms, with or without\n"); resultado += wxT(" * modification, are permitted provided that the following conditions\n"); resultado += wxT(" * are met:\n"); resultado += wxT(" * 1. Redistributions of source code must retain the copyright\n"); resultado += wxT(" * notice, this list of conditions and the following disclaimer.\n"); resultado += wxT(" * 2. Redistributions in binary form must reproduce the above copyright\n"); resultado += wxT(" * notice, this list of conditions and the following disclaimer in the\n"); resultado += wxT(" * documentation and/or other materials provided with the distribution.\n"); resultado += wxT(" * 3. All advertising materials mentioning features or use of this software\n"); resultado += wxT(" * must display the following acknowledgement:\n"); resultado += wxT(" * \"This product includes cryptographic software written by\n"); resultado += wxT(" * Eric Young (eay@cryptsoft.com)\"\n"); resultado += wxT(" * The word 'cryptographic' can be left out if the rouines from the library\n"); resultado += wxT(" * being used are not cryptographic related :-).\n"); resultado += wxT(" * 4. If you include any Windows specific code (or a derivative thereof) from \n"); resultado += wxT(" * the apps directory (application code) you must include an acknowledgement:\n"); resultado += wxT(" * \"This product includes software written by Tim Hudson (tjh@cryptsoft.com)\"\n"); resultado += wxT(" * \n"); resultado += wxT(" * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND\n"); resultado += wxT(" * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n"); resultado += wxT(" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n"); resultado += wxT(" * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n"); resultado += wxT(" * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n"); resultado += wxT(" * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n"); resultado += wxT(" * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n"); resultado += wxT(" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n"); resultado += wxT(" * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n"); resultado += wxT(" * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n"); resultado += wxT(" * SUCH DAMAGE.\n"); resultado += wxT(" * \n"); resultado += wxT(" * The licence and distribution terms for any publically available version or\n"); resultado += wxT(" * derivative of this code cannot be changed. i.e. this code cannot simply be\n"); resultado += wxT(" * copied and put under another distribution licence\n"); resultado += wxT(" * [including the GNU Public Licence.]\n"); resultado += wxT(" */\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicenciaVTK() { EscribeTitulo(wxT("VTK\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("VTK is an open-source toolkit licensed under the BSD license.\n"); resultado += wxT("Copyright (c) 1993-2008 Ken Martin, Will Schroeder, Bill Lorensen\n"); resultado += wxT("All rights reserved.\n"); resultado += wxT("Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n"); resultado += wxT("Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n"); resultado += wxT("Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n"); resultado += wxT("Neither name of Ken Martin, Will Schroeder, or Bill Lorensen nor the names of any contributors may be used to endorse or promote products derived from this software without specific prior written permission.\n"); resultado += wxT("THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"); resultado += wxT("\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicenciawxWidgets() { EscribeTitulo(wxT("wxWidgets\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT(" wxWindows Library Licence, Version 3.1\n"); resultado += wxT(" ======================================\n"); resultado += wxT("\n"); resultado += wxT(" Copyright (C) 1998-2005 Julian Smart, Robert Roebling et al\n"); resultado += wxT("\n"); resultado += wxT(" Everyone is permitted to copy and distribute verbatim copies\n"); resultado += wxT(" of this licence document, but changing it is not allowed.\n"); resultado += wxT("\n"); resultado += wxT(" WXWINDOWS LIBRARY LICENCE\n"); resultado += wxT(" TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n"); resultado += wxT(" \n"); resultado += wxT(" This library is free software; you can redistribute it and/or modify it\n"); resultado += wxT(" under the terms of the GNU Library General Public Licence as published by\n"); resultado += wxT(" the Free Software Foundation; either version 2 of the Licence, or (at\n"); resultado += wxT(" your option) any later version.\n"); resultado += wxT(" \n"); resultado += wxT(" This library is distributed in the hope that it will be useful, but\n"); resultado += wxT(" WITHOUT ANY WARRANTY; without even the implied warranty of\n"); resultado += wxT(" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library\n"); resultado += wxT(" General Public Licence for more details.\n"); resultado += wxT("\n"); resultado += wxT(" You should have received a copy of the GNU Library General Public Licence\n"); resultado += wxT(" along with this software, usually in a file named COPYING.LIB. If not,\n"); resultado += wxT(" write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,\n"); resultado += wxT(" Boston, MA 02111-1307 USA.\n"); resultado += wxT("\n"); resultado += wxT(" EXCEPTION NOTICE\n"); resultado += wxT("\n"); resultado += wxT(" 1. As a special exception, the copyright holders of this library give\n"); resultado += wxT(" permission for additional uses of the text contained in this release of\n"); resultado += wxT(" the library as licenced under the wxWindows Library Licence, applying\n"); resultado += wxT(" either version 3.1 of the Licence, or (at your option) any later version of\n"); resultado += wxT(" the Licence as published by the copyright holders of version\n"); resultado += wxT(" 3.1 of the Licence document.\n"); resultado += wxT("\n"); resultado += wxT(" 2. The exception is that you may use, copy, link, modify and distribute\n"); resultado += wxT(" under your own terms, binary object code versions of works based\n"); resultado += wxT(" on the Library.\n"); resultado += wxT("\n"); resultado += wxT(" 3. If you copy code from files distributed under the terms of the GNU\n"); resultado += wxT(" General Public Licence or the GNU Library General Public Licence into a\n"); resultado += wxT(" copy of this library, as this licence permits, the exception does not\n"); resultado += wxT(" apply to the code that you add in this way. To avoid misleading anyone as\n"); resultado += wxT(" to the status of such modified files, you must delete this exception\n"); resultado += wxT(" notice from such code and/or adjust the licensing conditions notice\n"); resultado += wxT(" accordingly.\n"); resultado += wxT("\n"); resultado += wxT(" 4. If you write modifications of your own for this library, it is your\n"); resultado += wxT(" choice whether to permit this exception to apply to your modifications. \n"); resultado += wxT(" If you do not wish that, you must delete the exception notice from such\n"); resultado += wxT(" code and/or adjust the licensing conditions notice accordingly.\n"); resultado += wxT("\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicenciazlib() { EscribeTitulo(wxT("ZLib\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("/* zlib.h -- interface of the 'zlib' general purpose compression library\n"); resultado += wxT(" version 1.2.2, October 3rd, 2004\n"); resultado += wxT("\n"); resultado += wxT(" Copyright (C) 1995-2004 Jean-loup Gailly and Mark Adler\n"); resultado += wxT("\n"); resultado += wxT(" This software is provided 'as-is', without any express or implied\n"); resultado += wxT(" warranty. In no event will the authors be held liable for any damages\n"); resultado += wxT(" arising from the use of this software.\n"); resultado += wxT("\n"); resultado += wxT(" Permission is granted to anyone to use this software for any purpose,\n"); resultado += wxT(" including commercial applications, and to alter it and redistribute it\n"); resultado += wxT(" freely, subject to the following restrictions:\n"); resultado += wxT("\n"); resultado += wxT(" 1. The origin of this software must not be misrepresented; you must not\n"); resultado += wxT(" claim that you wrote the original software. If you use this software\n"); resultado += wxT(" in a product, an acknowledgment in the product documentation would be\n"); resultado += wxT(" appreciated but is not required.\n"); resultado += wxT(" 2. Altered source versions must be plainly marked as such, and must not be\n"); resultado += wxT(" misrepresented as being the original software.\n"); resultado += wxT(" 3. This notice may not be removed or altered from any source distribution.\n"); resultado += wxT("\n"); resultado += wxT(" Jean-loup Gailly jloup@gzip.org\n"); resultado += wxT(" Mark Adler madler@alumni.caltech.edu\n"); resultado += wxT("\n"); resultado += wxT("*\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicenciaSQLLite() { EscribeTitulo(wxT("SQL Lite Copyright\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("All of the deliverable code in SQLite has been dedicated to the public domain by the authors. All code authors, and representatives of the companies they work for, have signed affidavits dedicating their contributions to the public domain and originals of those signed affidavits are stored in a firesafe at the main offices of Hwaci. Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.\n"); resultado += wxT("\n"); resultado += wxT("The previous paragraph applies to the deliverable code in SQLite - those parts of the SQLite library that you actually bundle and ship with a larger application. Portions of the documentation and some code used as part of the build process might fall under other licenses. The details here are unclear. We do not worry about the licensing of the documentation and build code so much because none of these things are part of the core deliverable SQLite library.\n"); resultado += wxT("\n"); resultado += wxT("All of the deliverable code in SQLite has been written from scratch. No code has been taken from other projects or from the open internet. Every line of code can be traced back to its original author, and all of those authors have public domain dedications on file. So the SQLite code base is clean and is uncontaminated with licensed code from other projects. \n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::EscribeLicenciaCharLS() { EscribeTitulo(wxT("CharLS\n\n\n")); wxString resultado = wxEmptyString; resultado +=wxT("Copyright (c) 2007-2009, Jan de Vaan\n"); resultado +=wxT("All rights reserved.\n"); resultado +=wxT("\n"); resultado +=wxT("Redistribution and use in source and binary forms, with or without\n"); resultado +=wxT("modification, are permitted provided that the following conditions are met:\n"); resultado +=wxT("\n"); resultado +=wxT("* Redistributions of source code must retain the above copyright notice, this\n"); resultado +=wxT(" list of conditions and the following disclaimer.\n"); resultado +=wxT("\n"); resultado +=wxT("* Redistributions in binary form must reproduce the above copyright notice,\n"); resultado +=wxT(" this list of conditions and the following disclaimer in the documentation\n"); resultado +=wxT(" and/or other materials provided with the distribution.\n"); resultado +=wxT("\n"); resultado +=wxT("* Neither the name of my employer, nor the names of its contributors may be\n"); resultado +=wxT(" used to endorse or promote products derived from this software without\n"); resultado +=wxT(" specific prior written permission.\n"); resultado +=wxT("\n"); resultado +=wxT("THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n"); resultado +=wxT("AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n"); resultado +=wxT("IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n"); resultado +=wxT("DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR\n"); resultado +=wxT("ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n"); resultado +=wxT("(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n"); resultado +=wxT("LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\n"); resultado +=wxT("ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n"); resultado +=wxT("(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n"); resultado +=wxT("SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::WriteDarkGlassLicense() { EscribeTitulo(wxT("Dark Glass Icons\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("*Credits must go to:\n"); resultado += wxT("*Mentalrey for many glass icons.\n"); resultado += wxT("\n"); resultado += wxT("*AleXander Kirichev for Slackware kmenu icon.\n"); resultado += wxT("*Amira Julia for the original art work that provided some printer and desktop icons.\n"); resultado += wxT("*Dirceu for the user avatars.\n"); resultado += wxT("*EKrava for the kmenu_Kubuntu icon.\n"); resultado += wxT("*Everaldo Coelho (realistiK & Crystal) - Ultra high quality open source icons.\n"); resultado += wxT("*Everaldo for the emotions.\n"); resultado += wxT("*Futurosoft for a couple of their GPL icons.\n"); resultado += wxT("*Guppetto (OS-L) - for (among other things) the best folder icons ever.\n"); resultado += wxT("*hammergom for kde_fedora icon, K3B, XGame and many icons from his Crystal Glossy set.\n"); resultado += wxT("*Keyser Soze for the Debian kmenu.\n"); resultado += wxT("*Marco Martin (Glaze) - for many actions.\n"); resultado += wxT("*Marco Martin for the kwifi icons.\n"); resultado += wxT("*Marc Mironescu for some email icon.\n"); resultado += wxT("*Matias Costa for creating some folder open and folder locked icons.\n"); resultado += wxT("*Rowancompsciguy for the laptop battery icons\n"); resultado += wxT("*Yaco for the Skype icon.\n"); resultado += wxT("\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::WriteLibcurl() { EscribeTitulo(wxT("Libcurl\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("COPYRIGHT AND PERMISSION NOTICE\n"); resultado += wxT(" \n"); resultado += wxT("Copyright (c) 1996 - 2012, Daniel Stenberg, .\n"); resultado += wxT(" \n"); resultado += wxT("All rights reserved.\n"); resultado += wxT(" \n"); resultado += wxT("Permission to use, copy, modify, and distribute this software for any purpose"); resultado += wxT("with or without fee is hereby granted, provided that the above copyright"); resultado += wxT("notice and this permission notice appear in all copies.\n"); resultado += wxT(" \n"); resultado += wxT("THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR"); resultado += wxT("IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,"); resultado += wxT("FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN"); resultado += wxT("NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,"); resultado += wxT("DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR"); resultado += wxT("OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE"); resultado += wxT("OR OTHER DEALINGS IN THE SOFTWARE.\n"); resultado += wxT(" \n"); resultado += wxT("Except as contained in this notice, the name of a copyright holder shall not"); resultado += wxT("be used in advertising or otherwise to promote the sale, use or other dealings"); resultado += wxT("in this Software without prior written authorization of the copyright holder.\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::WriteLibJsonCpp() { EscribeTitulo(wxT("JsonCpp\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("The JsonCpp library's source code, including accompanying documentation, "); resultado += wxT("tests and demonstration applications, are licensed under the following"); resultado += wxT("conditions...\n"); resultado += wxT("\n"); resultado += wxT("The author (Baptiste Lepilleur) explicitly disclaims copyright in all "); resultado += wxT("jurisdictions which recognize such a disclaimer. In such jurisdictions, "); resultado += wxT("this software is released into the Public Domain.\n"); resultado += wxT("\n"); resultado += wxT("In jurisdictions which do not recognize Public Domain property (e.g. Germany as of "); resultado += wxT("2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is "); resultado += wxT("released under the terms of the MIT License (see below).\n"); resultado += wxT("\n"); resultado += wxT("In jurisdictions which recognize Public Domain property, the user of this "); resultado += wxT("software may choose to accept it either as 1) Public Domain, 2) under the "); resultado += wxT("conditions of the MIT License (see below), or 3) under the terms of dual "); resultado += wxT("Public Domain/MIT License conditions described here, as they choose.\n"); resultado += wxT("\n"); resultado += wxT("The MIT License is about as close to Public Domain as a license can get, and is "); resultado += wxT("described in clear, concise terms at:\n"); resultado += wxT("\n"); resultado += wxT("http://en.wikipedia.org/wiki/MIT_License\n"); resultado += wxT("\n"); resultado += wxT("The full text of the MIT License follows:\n"); resultado += wxT("\n"); resultado += wxT("========================================================================\n"); resultado += wxT("Copyright (c) 2007-2010 Baptiste Lepilleur\n"); resultado += wxT("\n"); resultado += wxT("Permission is hereby granted, free of charge, to any person "); resultado += wxT("obtaining a copy of this software and associated documentation "); resultado += wxT("files (the \"Software\"), to deal in the Software without "); resultado += wxT("restriction, including without limitation the rights to use, copy, "); resultado += wxT("modify, merge, publish, distribute, sublicense, and/or sell copies "); resultado += wxT("of the Software, and to permit persons to whom the Software is "); resultado += wxT("furnished to do so, subject to the following conditions:\n"); resultado += wxT("\n"); resultado += wxT("The above copyright notice and this permission notice shall be "); resultado += wxT("included in all copies or substantial portions of the Software.\n"); resultado += wxT("\n"); resultado += wxT("THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, \n"); resultado += wxT("EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF "); resultado += wxT("MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND "); resultado += wxT("NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS "); resultado += wxT("BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN "); resultado += wxT("ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN "); resultado += wxT("CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE "); resultado += wxT("SOFTWARE.\n"); resultado += wxT("========================================================================\n"); resultado += wxT("(END LICENSE TEXT)\n"); resultado += wxT("\n"); resultado += wxT("The MIT license is compatible with both the GPL and commercial "); resultado += wxT("software, affording one all of the rights of Public Domain with the "); resultado += wxT("minor nuisance of being required to keep the above copyright notice "); resultado += wxT("and license text in the source code. Note also that by accepting the "); resultado += wxT("Public Domain \"license\" you can re-license your copy using whatever "); resultado += wxT("license you like.\n"); EscribeLicencia(resultado); } void DialogoLicenciasOpenSource::WriteLibAIRS() { EscribeTitulo(wxT("AIRS\n\n\n")); wxString resultado = wxEmptyString; resultado += wxT("==========================================================================\n"); resultado += wxT("\n"); resultado += wxT("Copyright (c) 2000-2010 Atamai, Inc.\n"); resultado += wxT("\n"); resultado += wxT("Use, modification and redistribution of the software, in source or\n"); resultado += wxT("binary forms, are permitted provided that the following terms and\n"); resultado += wxT("conditions are met:\n"); resultado += wxT("\n"); resultado += wxT("\t1) Redistribution of the source code, in verbatim or modified\n"); resultado += wxT("\tform, must retain the above copyright notice, this license,\n"); resultado += wxT("\tthe following disclaimer, and any notices that refer to this\n"); resultado += wxT("\tlicense and/or the following disclaimer.\n"); resultado += wxT("\n"); resultado += wxT("\t2) Redistribution in binary form must include the above copyright\n"); resultado += wxT("\tnotice, a copy of this license and the following disclaimer\n"); resultado += wxT("\tin the documentation or with other materials provided with the\n"); resultado += wxT("\tdistribution.\n"); resultado += wxT("\n"); resultado += wxT("\t3) Modified copies of the source code must be clearly marked as such,\n"); resultado += wxT("\tand must not be misrepresented as verbatim copies of the source code.\n"); resultado += wxT("\n"); resultado += wxT("THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE \"AS IS\"\n"); resultado += wxT("WITHOUT EXPRESSED OR IMPLIED WARRANTY INCLUDING, BUT NOT LIMITED TO,\n"); resultado += wxT("THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n"); resultado += wxT("PURPOSE. IN NO EVENT SHALL ANY COPYRIGHT HOLDER OR OTHER PARTY WHO MAY\n"); resultado += wxT("MODIFY AND/OR REDISTRIBUTE THE SOFTWARE UNDER THE TERMS OF THIS LICENSE\n"); resultado += wxT("BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL OR CONSEQUENTIAL DAMAGES\n"); resultado += wxT("(INCLUDING, BUT NOT LIMITED TO, LOSS OF DATA OR DATA BECOMING INACCURATE\n"); resultado += wxT("OR LOSS OF PROFIT OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF\n"); resultado += wxT("THE USE OR INABILITY TO USE THE SOFTWARE, EVEN IF ADVISED OF THE\n"); resultado += wxT("POSSIBILITY OF SUCH DAMAGES.\n"); resultado += wxT("\n"); resultado += wxT("=========================================================================\n"); EscribeLicencia(resultado); } ginkgocadx-3.8.7/cadxcore/main/gui/license/dialogolicenciasopensource.h000066400000000000000000000035721314736454600263620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "aboutdialogbase.h" #include class DialogoLicenciasOpenSource : public DialogoLicenciasOpenSourceBase { public: DialogoLicenciasOpenSource(wxWindow* pPadre); ~DialogoLicenciasOpenSource(); virtual void OnListaLicencias(wxCommandEvent &event); void EscribeTitulo(wxString titulo); void EscribeLicencia(wxString& licencia); void EscribeLicenciaGinkgo(); void EscribeLicenciaCairo(); void EscribeLicenciaDCMTK(); void EscribeLicenciaFamFam(); void EscribeLicenciaFugue(); void EscribeLicenciaITK(); void EscribeLicencialibjpeg(); void EscribeLicencialibpng(); void EscribeLicenciaOpenssl(); void EscribeLicenciaVTK(); void EscribeLicenciawxWidgets(); void EscribeLicenciazlib(); void EscribeLicenciaSQLLite(); void EscribeLicenciaCharLS(); void WriteDarkGlassLicense(); void WriteLibcurl(); void WriteLibJsonCpp(); void WriteLibAIRS(); GNC::GCS::IModuleController::TExtraLicensesMap ExtraMap; //endregion }; ginkgocadx-3.8.7/cadxcore/main/gui/logcontrolwindow/000077500000000000000000000000001314736454600225765ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/logcontrolwindow/ventanaControlLogs.fbp000066400000000000000000002132301314736454600271120ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect ventanacontrollogsbase 1000 none 1 VentanaControlLogsBase "GNC" "GUI" . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 500,200 VentanaControlLogsBase 650,300 wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Log monitor wxTAB_TRAVERSAL 1 OnActivate OnClose OnKeyDown 1 1 0 wxID_ANY MyMenuBar m_menubar1 protected Log m_menuRegistros protected 0 1 wxID_ANY wxITEM_NORMAL Save log... m_menuItemGuardar protected ALT+g m_separator1 none 0 1 wxID_ANY wxITEM_NORMAL Clear log m_menuItemLimpiar protected ALT+l OnLimpiarRegistros m_separator2 none 0 1 wxID_ANY wxITEM_NORMAL Exit m_menuItemSalir protected ESC bSizer5 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel3 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL OnKeyDown bSizer7 wxVERTICAL none 5 wxEXPAND | wxALL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pRegistros 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS 0 wxEXPAND | wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panelNivel 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL OnKeyDown bSizer3 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,92,-1,70,0 0 0 wxID_ANY Level 0 0 1 m_pNivel 1 protected 1 Resizable 1 0 -1 OnKeyDown 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pComboNivel 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator OnNivelChoice OnKeyDown 5 wxEXPAND 1 0 protected 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Clear 0 0 1 m_pBLimpiar 1 protected 1 Resizable 1 wxBU_EXACTFIT 0 wxFILTER_NONE wxDefaultValidator OnLimpiarClick OnKeyDown 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 500,242 ShowPlainTextDialog 650,300 wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Log node bSizer5 wxVERTICAL none 5 wxEXPAND | wxALL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelLog 1 protected 1 Resizable 1 SubTitledPanel; wx/ginkgostyle/ginkgostyle.h 0 LogText wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pLogText 1 public 1 Resizable 1 wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxALIGN_RIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Accept 0 0 1 m_button2 1 protected 1 Resizable 1 wxBU_EXACTFIT 0 wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/logcontrolwindow/ventanacontrollogs.cpp000066400000000000000000000205301314736454600272240ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include
    #include
    #include #include #include #include #include #include #include #include #include "ventanacontrollogs.h" #include #define LOGGER "VentanaControlLogs" #include
    #include
    #define COL_FECHA 0 #define COL_NIVEL 1 #define COL_MENSAJE 2 namespace GNC { namespace GUI { VentanaControlLogs* VentanaControlLogs::m_pInstance = NULL; VentanaControlLogs* VentanaControlLogs::Instance() { if(m_pInstance == NULL) { m_pInstance = new VentanaControlLogs(); } return m_pInstance; } void VentanaControlLogs::CerrarSiAbierta() { if(m_pInstance != NULL) { m_pInstance->Close(true); m_pInstance = NULL; } } void VentanaControlLogs::Refrescar() { } //region Interfaz ILogger void VentanaControlLogs::Append(const GNC::GCS::Logging::LogEvent& le) { GNC::GCS::ILocker lock(this); //write event into pending events array and set flag to refresh in idle time wxCSConv conv(wxFONTENCODING_UTF8); wxString str(le.formattedmsg.c_str(), conv); if (str.IsEmpty() && !le.formattedmsg.empty()) { // Fallback: CONV TO ISO wxCSConv convLatin1(wxFONTENCODING_ISO8859_1); str = wxString(le.formattedmsg.c_str(), convLatin1); } pendingLines.push_back(str); m_needRefresh = true; } //endregion VentanaControlLogs::VentanaControlLogs() : VentanaControlLogsBase(NULL) { m_needRefresh = false; wxIcon icono; icono.CopyFromBitmap(GinkgoResourcesManager::Logos::GetLogoGinkgo32x32()); this->SetIcon(icono); // Setup del combobox de niveles GNC::GCS::IControladorLog::Instance()->GetLogLevelsMap(m_MapaLogLevels); int i = 0; for (GNC::GCS::IControladorLog::MapaLogLevels::iterator it = m_MapaLogLevels.begin(); it != m_MapaLogLevels.end(); ++it, i++) { m_pComboNivel->Insert(wxString::FromUTF8((*it).second.c_str()), 0); } // Setup del nivel actual wxString nivelActual = wxString::FromUTF8(m_MapaLogLevels[GNC::GCS::IControladorLog::Instance()->GetActiveLogLevel()].c_str()); bool notfound = true; for (int i = 0; notfound && i < (int)m_pComboNivel->GetCount(); i++) { if (nivelActual == m_pComboNivel->GetString(i) ) { m_pComboNivel->Select(i); notfound = false; } } this->Connect( m_menuItemGuardar->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaControlLogs::OnGuardarRegistros ) ); this->Connect( m_menuItemLimpiar->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaControlLogs::OnLimpiarClick ) ); this->Connect( m_menuItemSalir->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaControlLogs::OnSalirClick ) ); Layout(); gnkLog4cplus::GUIAppender::Instance()->Attach(this); Show(); } VentanaControlLogs::~VentanaControlLogs() { m_pInstance = NULL; gnkLog4cplus::GUIAppender::Instance()->Attach(NULL); } void VentanaControlLogs::OnClose( wxCloseEvent& event ) { gnkLog4cplus::GUIAppender::Instance()->Attach(NULL); event.Skip(); } void VentanaControlLogs::OnInternalIdle() { if (m_needRefresh) { GNC::GCS::ILocker locker(this); //if text in the control is too big remove a half const int maxBufferSize = 100*1024; if (m_pRegistros->GetValue().size() > maxBufferSize) { //if it's bigger than 100K remove first 50K wxString value = m_pRegistros->GetValue(); m_pRegistros->SetValue(value.substr(value.size() - maxBufferSize/2)); } //write pending events Freeze(); for (wxArrayString::iterator it = pendingLines.begin(); it != pendingLines.end(); ++it) { m_pRegistros->AppendText((*it)); } //set stroll to the bottom m_pRegistros->ShowPosition(m_pRegistros->GetLastPosition()); Thaw(); pendingLines.clear(); m_pRegistros->Refresh(true); m_needRefresh = false; } } void VentanaControlLogs::OnGuardarRegistros( wxCommandEvent& /*event*/ ) { wxFileDialog seleccionarFichero (this, _("Save logs"), wxT(""), wxT(""), _("Log file (*.log) | *.log | Text file (*.txt) | *.txt"),wxFD_SAVE); int response = seleccionarFichero.ShowModal(); if (response == wxID_OK) { if(wxFileExists(seleccionarFichero.GetPath())) { response = wxMessageBox(_("File exists\nWould you like to overwrite it?"),_("Overwrite"),wxYES_NO | wxCANCEL,this); if(response != wxYES) { return; } } std::ofstream fout; std::ostringstream sout; try { fout.open(TOPATH(seleccionarFichero.GetPath()).c_str()); } catch (std::exception& ex) { sout << _Std("File couldn't be stored ") << seleccionarFichero.GetPath().ToUTF8() << " : " << ex.what(); wxMessageBox(wxString::FromUTF8(sout.str().c_str()),_("Error"),wxICON_ERROR); return; } if (!fout) { sout << _Std("File couldn't be stored ") << seleccionarFichero.GetPath().ToUTF8(); wxMessageBox(wxString::FromUTF8(sout.str().c_str()),_("Error"),wxICON_ERROR); return; } try { fout << m_pRegistros->GetValue().ToUTF8(); } catch (std::exception& ex) { sout << _Std("File couldn't be stored ") << seleccionarFichero.GetPath().ToUTF8() << " : " << ex.what(); wxMessageBox(wxString::FromUTF8(sout.str().c_str()),_("Error"),wxICON_ERROR); return; } try { fout.close(); } catch (std::exception& ex) { sout << _Std("Could not write to file") << seleccionarFichero.GetPath().ToUTF8() << " : " << ex.what(); wxMessageBox(wxString::FromUTF8(sout.str().c_str()),_("Error"),wxICON_ERROR); } } } void VentanaControlLogs::OnNivelChoice( wxCommandEvent& /*event*/ ) { int nivel = GNC::GCS::IControladorLog::Instance()->GetLogLevelCode(std::string(m_pComboNivel->GetStringSelection().ToUTF8())); GNC::GCS::IControladorLog::Instance()->SetActiveLogLevel(nivel); GNC::GCS::ConfigurationController::Instance()->writeIntGeneral("/GinkgoCore/Log", "LogLevel", nivel); } void VentanaControlLogs::LimpiarRegistros() { m_pRegistros->Clear(); gnkLog4cplus::GUIAppender::Instance()->clear(); } void VentanaControlLogs::OnSalirClick( wxCommandEvent& /*event*/ ) { Close(); } void VentanaControlLogs::OnKeyDown( wxKeyEvent& event ) { if (event.GetKeyCode() == WXK_ESCAPE) { Close(); event.Skip(false); } else { event.Skip(); } } } } ginkgocadx-3.8.7/cadxcore/main/gui/logcontrolwindow/ventanacontrollogs.h000066400000000000000000000042311314736454600266710ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include
    #include #include "ventanacontrollogsbase.h" namespace GNC { namespace GUI { class VentanaControlLogs : public VentanaControlLogsBase, public GNC::GCS::Logging::ILogger { public: //singleton static VentanaControlLogs* Instance(); static void CerrarSiAbierta(); void Refrescar(); //region Interfaz ILogger virtual void Append(const GNC::GCS::Logging::LogEvent& le); //endregion protected: static VentanaControlLogs* m_pInstance; GNC::GCS::IControladorLog::MapaLogLevels m_MapaLogLevels; bool m_needRefresh; VentanaControlLogs(); ~VentanaControlLogs(); virtual void OnClose(wxCloseEvent& event); virtual void OnInternalIdle(); virtual void OnLimpiarClick( wxCommandEvent& /*event*/ ) { LimpiarRegistros(); } virtual void OnLimpiarRegistros( wxCommandEvent& /*event*/ ) { LimpiarRegistros(); } virtual void OnGuardarRegistros( wxCommandEvent& event ); virtual void OnNivelChoice( wxCommandEvent& event ); virtual void OnSalirClick( wxCommandEvent& event ); virtual void OnKeyDown( wxKeyEvent& event ); void LimpiarRegistros(); wxArrayString pendingLines; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/logcontrolwindow/ventanacontrollogsbase.cpp000066400000000000000000000170151314736454600300630ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "ventanacontrollogsbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; VentanaControlLogsBase::VentanaControlLogsBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 500,200 ), wxDefaultSize ); m_menubar1 = new wxMenuBar( 0 ); m_menuRegistros = new wxMenu(); m_menuItemGuardar = new wxMenuItem( m_menuRegistros, wxID_ANY, wxString( _("Save log...") ) + wxT('\t') + wxT("ALT+g"), wxEmptyString, wxITEM_NORMAL ); m_menuRegistros->Append( m_menuItemGuardar ); m_menuRegistros->AppendSeparator(); m_menuItemLimpiar = new wxMenuItem( m_menuRegistros, wxID_ANY, wxString( _("Clear log") ) + wxT('\t') + wxT("ALT+l"), wxEmptyString, wxITEM_NORMAL ); m_menuRegistros->Append( m_menuItemLimpiar ); m_menuRegistros->AppendSeparator(); m_menuItemSalir = new wxMenuItem( m_menuRegistros, wxID_ANY, wxString( _("Exit") ) + wxT('\t') + wxT("ESC"), wxEmptyString, wxITEM_NORMAL ); m_menuRegistros->Append( m_menuItemSalir ); m_menubar1->Append( m_menuRegistros, _("Log") ); this->SetMenuBar( m_menubar1 ); wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxVERTICAL ); m_panel3 = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pRegistros = new wxRichTextCtrl( m_panel3, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0|wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS ); bSizer7->Add( m_pRegistros, 1, wxEXPAND | wxALL, 5 ); m_panel3->SetSizer( bSizer7 ); m_panel3->Layout(); bSizer7->Fit( m_panel3 ); bSizer5->Add( m_panel3, 1, wxEXPAND, 5 ); m_panelNivel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxHORIZONTAL ); m_pNivel = new wxStaticText( m_panelNivel, wxID_ANY, _("Level"), wxDefaultPosition, wxDefaultSize, 0 ); m_pNivel->Wrap( -1 ); m_pNivel->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); bSizer3->Add( m_pNivel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxArrayString m_pComboNivelChoices; m_pComboNivel = new wxChoice( m_panelNivel, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pComboNivelChoices, 0 ); m_pComboNivel->SetSelection( 0 ); bSizer3->Add( m_pComboNivel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); bSizer3->Add( 0, 0, 1, wxEXPAND, 5 ); m_pBLimpiar = new wxButton( m_panelNivel, wxID_ANY, _("Clear"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); bSizer3->Add( m_pBLimpiar, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_panelNivel->SetSizer( bSizer3 ); m_panelNivel->Layout(); bSizer3->Fit( m_panelNivel ); bSizer5->Add( m_panelNivel, 0, wxEXPAND | wxALL, 0 ); this->SetSizer( bSizer5 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_ACTIVATE, wxActivateEventHandler( VentanaControlLogsBase::OnActivate ) ); this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( VentanaControlLogsBase::OnClose ) ); this->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ) ); this->Connect( m_menuItemLimpiar->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaControlLogsBase::OnLimpiarRegistros ) ); m_panel3->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ), NULL, this ); m_panelNivel->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ), NULL, this ); m_pNivel->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ), NULL, this ); m_pComboNivel->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( VentanaControlLogsBase::OnNivelChoice ), NULL, this ); m_pComboNivel->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ), NULL, this ); m_pBLimpiar->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( VentanaControlLogsBase::OnLimpiarClick ), NULL, this ); m_pBLimpiar->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ), NULL, this ); } VentanaControlLogsBase::~VentanaControlLogsBase() { // Disconnect Events this->Disconnect( wxEVT_ACTIVATE, wxActivateEventHandler( VentanaControlLogsBase::OnActivate ) ); this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( VentanaControlLogsBase::OnClose ) ); this->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaControlLogsBase::OnLimpiarRegistros ) ); m_panel3->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ), NULL, this ); m_panelNivel->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ), NULL, this ); m_pNivel->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ), NULL, this ); m_pComboNivel->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( VentanaControlLogsBase::OnNivelChoice ), NULL, this ); m_pComboNivel->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ), NULL, this ); m_pBLimpiar->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( VentanaControlLogsBase::OnLimpiarClick ), NULL, this ); m_pBLimpiar->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaControlLogsBase::OnKeyDown ), NULL, this ); } ShowPlainTextDialog::ShowPlainTextDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 500,242 ), wxDefaultSize ); wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxVERTICAL ); m_pPanelLog = new SubTitledPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelLog->SetToolTip( _("LogText") ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pLogText = new wxTextCtrl( m_pPanelLog, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_DONTWRAP|wxTE_MULTILINE|wxTE_READONLY ); m_pLogText->SetMaxLength( 0 ); bSizer7->Add( m_pLogText, 1, wxEXPAND, 5 ); m_pPanelLog->SetSizer( bSizer7 ); m_pPanelLog->Layout(); bSizer7->Fit( m_pPanelLog ); bSizer5->Add( m_pPanelLog, 1, wxEXPAND | wxALL, 5 ); m_button2 = new wxButton( this, wxID_CANCEL, _("Accept"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); m_button2->SetDefault(); bSizer5->Add( m_button2, 0, wxALL|wxALIGN_RIGHT, 5 ); this->SetSizer( bSizer5 ); this->Layout(); this->Centre( wxBOTH ); } ShowPlainTextDialog::~ShowPlainTextDialog() { } ginkgocadx-3.8.7/cadxcore/main/gui/logcontrolwindow/ventanacontrollogsbase.h000066400000000000000000000066261314736454600275360ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __VENTANACONTROLLOGSBASE_H__ #define __VENTANACONTROLLOGSBASE_H__ #include #include #include class SubTitledPanel; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class VentanaControlLogsBase /////////////////////////////////////////////////////////////////////////////// class VentanaControlLogsBase : public wxFrame { private: protected: wxMenuBar* m_menubar1; wxMenu* m_menuRegistros; wxMenuItem* m_menuItemGuardar; wxMenuItem* m_menuItemLimpiar; wxMenuItem* m_menuItemSalir; wxPanel* m_panel3; wxRichTextCtrl* m_pRegistros; wxPanel* m_panelNivel; wxStaticText* m_pNivel; wxChoice* m_pComboNivel; wxButton* m_pBLimpiar; // Virtual event handlers, overide them in your derived class virtual void OnActivate( wxActivateEvent& event ) { event.Skip(); } virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); } virtual void OnLimpiarRegistros( wxCommandEvent& event ) { event.Skip(); } virtual void OnNivelChoice( wxCommandEvent& event ) { event.Skip(); } virtual void OnLimpiarClick( wxCommandEvent& event ) { event.Skip(); } public: VentanaControlLogsBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Log monitor"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 650,300 ), long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU|wxTAB_TRAVERSAL ); ~VentanaControlLogsBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class ShowPlainTextDialog /////////////////////////////////////////////////////////////////////////////// class ShowPlainTextDialog : public wxDialog { private: protected: SubTitledPanel* m_pPanelLog; wxButton* m_button2; public: wxTextCtrl* m_pLogText; ShowPlainTextDialog( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Log node"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 650,300 ), long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~ShowPlainTextDialog(); }; } // namespace GUI } // namespace GNC #endif //__VENTANACONTROLLOGSBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/login/000077500000000000000000000000001314736454600202745ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/login/dialogologin.cpp000066400000000000000000000040701314736454600234500ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include "dialogologin.h" #include
    #include
    GNC::GUI::DialogoLogin::DialogoLogin(wxWindow* pParent) : DialogoLoginBase(pParent) { if (GSEC::Auth::ControladorAutenticacion::Instance()->GetTipoAutenticacion() == GSEC::Auth::TA_PASSWORD) { m_pTCUsuario->SetValue(_("User")); m_pTCUsuario->Show(false); m_pLabelUser->Show(false); m_pFormPanel->Layout(); m_pTCPassword->SetFocus(); } else { m_pTCUsuario->SetFocus(); } } GNC::GUI::DialogoLogin::~DialogoLogin() { } void GNC::GUI::DialogoLogin::OnLogin( wxCommandEvent& /*event*/ ) { if (GSEC::Auth::ControladorAutenticacion::Instance()->Auth( std::string(m_pTCUsuario->GetValue().ToUTF8()), std::string(m_pTCPassword->GetValue().ToUTF8()) ) ) { this->SetReturnCode(wxID_OK); this->Hide(); } else { this->SetReturnCode(wxID_CANCEL); m_pTCPassword->SelectAll(); wxMessageBox(_("The username or password is incorrect"),_("Info"), wxOK | wxICON_INFORMATION, this); } } ginkgocadx-3.8.7/cadxcore/main/gui/login/dialogologin.h000066400000000000000000000020141314736454600231110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include
    namespace GNC { namespace GUI { class DialogoLogin : public DialogoLoginBase { public: DialogoLogin(wxWindow* pParent); ~DialogoLogin(); virtual void OnLogin( wxCommandEvent& event ); }; } } ginkgocadx-3.8.7/cadxcore/main/gui/mainwindow/000077500000000000000000000000001314736454600213405ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/mainwindow/InterfazGinkgo.fbp000066400000000000000000005137551314736454600247720ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect ventanaprincipalbase 1052 none 1 Interfaz principal . 1 1 1 1 UI 0 0 0 wxBOTH 1 1 impl_virtual 0 wxID_ANY 800,600 VentanaPrincipalBase 800,600 wxDEFAULT_FRAME_STYLE|wxMAXIMIZE|wxRESIZE_BORDER wxCLIP_CHILDREN|wxTAB_TRAVERSAL 1 OnKeydown m_pMainSizer wxVERTICAL protected 0 wxEXPAND 0 1 1 1 1 210,210,0 1 0 1 1 0 Dock 0 Left 1 1 0 1 wxID_ANY 0 0 1 m_pPanelActualizacion 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL bSizer18 wxVERTICAL none 2 wxEXPAND 0 1 1 1 1 255,255,225 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pPanelActualizacionInterno 1 protected 1 Resizable 1 ; 0 New Update wxTAB_TRAVERSAL bSizer17 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY New version available 0 0 1 m_pHipervinculoActualizacion 1 protected 1 Resizable 1 wxHL_DEFAULT_STYLE 0 https://github.com/gerddie/ginkgocadx 5 wxEXPAND|wxALIGN_CENTER_VERTICAL 1 0 protected 0 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Do not warn me again about this update 0 0 1 m_pDoNotWarnAgain 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnDoNotWarnAgainClicked 2 wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxFIXED_MINSIZE 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 ,90,92,-1,70,0 0 0 wxID_ANY X 0 0 1 m_pBotonCerrarPanelActualizacion 1 protected 1 Resizable 1 wxBU_EXACTFIT 0 Close this notification wxFILTER_NONE wxDefaultValidator OnVersionNotifierClose 5 wxEXPAND 1 m_pSizerCentral wxHORIZONTAL protected 1 wxEXPAND 1 1 1 1 1 wxSYS_COLOUR_WINDOW 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 -1,-1 1 m_pPanelCentral 1 protected 1 Resizable 1 0 wxTAB_TRAVERSAL 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 510,230 DialogoComandosEnEjecucionBase -1,-1 wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Closing Ginkgo CADx bSizer3 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel10 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer15 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel11 1 protected 1 Resizable 1 TitledPanelSinBorder; wx/ginkgostyle/ginkgostyle.h 0 The following commands will be aborted if you close the application wxTAB_TRAVERSAL bSizer16 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pListacomandos 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel9 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer4 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_OK Close Ginkgo CADx 0 0 1 m_button1 1 protected 1 Resizable 1 0 Closes the application and aborts pending commands wxFILTER_NONE wxDefaultValidator 5 wxLEFT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button2 1 protected 1 Resizable 1 0 Do not close the application and keep commands running wxFILTER_NONE wxDefaultValidator 0 0,0,0 wxBOTH 1 1 impl_virtual 0 wxID_ANY 600,400 DetachedDialogBase 600,400 wxCAPTION|wxCLOSE_BOX|wxFRAME_FLOAT_ON_PARENT|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU wxCLIP_CHILDREN|wxTAB_TRAVERSAL 1 OnCloseDialogo bSizer8 wxVERTICAL none 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 500,270 DialogoLoginBase -1,-1 wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSTAY_ON_TOP User login m_pMainSizer wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 User login wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer141 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFormPanel 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 System authentication wxTAB_TRAVERSAL bSizer19 wxVERTICAL none 5 wxEXPAND 1 0 protected 0 5 wxEXPAND|wxALIGN_CENTER_VERTICAL 0 2 wxBOTH 1 0 m_pFormSizer wxFLEX_GROWMODE_SPECIFIED none 2 0 5 wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY User name 0 0 1 m_pLabelUser 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTCUsuario 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Password 0 0 1 m_staticText3 1 protected 1 Resizable 1 0 -1 5 wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 0 1 m_pTCPassword 1 protected 1 Resizable 1 wxTE_PASSWORD 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 1 0 protected 0 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_panel6 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer14 wxHORIZONTAL none 0 wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_pBotonCancelar 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 1 0 protected 0 0 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Login 0 0 1 m_pButtonLogin 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnLogin ginkgocadx-3.8.7/cadxcore/main/gui/mainwindow/detacheddialog.cpp000066400000000000000000000065561314736454600250010ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include
    #include
    #include
    #include "detacheddialog.h" namespace GNC { namespace GUI { DetachedDialog::DetachedDialog(wxWindow* pParent, VentanaPrincipal* pVentanaPrincipal): DetachedDialogBase(pParent) { wxIcon icono; icono.CopyFromBitmap(GinkgoResourcesManager::Logos::GetLogoGinkgo32x32()); this->SetIcon(icono); GNC::Entorno::Instance()->ViewsObservers.push_back(this); m_pWindow = NULL; m_pVentanaPrincipal = pVentanaPrincipal; } DetachedDialog::~DetachedDialog() { GNC::Entorno::Instance()->ViewsObservers.remove(this); m_pWindow = NULL; m_pVentanaPrincipal = NULL; } void DetachedDialog::AddPanel(wxWindow* pWin, const wxString& titulo) { m_pWindow = pWin; SetTitle(titulo); if(m_pWindow->GetParent() != this) { m_pWindow->GetParent()->GetSizer()->Detach(m_pWindow); m_pWindow->Reparent(this); } m_pWindow->Show(true); GetSizer()->Add(m_pWindow,1,wxEXPAND); } void DetachedDialog::SetTitulo(const wxString& titulo) { SetTitle(titulo); } wxWindow* DetachedDialog::GetWindow() { return m_pWindow; } wxString DetachedDialog::GetTitulo() { return GetTitle(); } void DetachedDialog::OnCloseDialogo(wxCloseEvent &event) { if(!m_pVentanaPrincipal->CerrarVista(m_pWindow)) { event.Veto(); } else { event.Skip(); GetSizer()->Detach(m_pWindow); GNC::GCS::ControladorVistas::Instance()->Destruir(m_pWindow); // It's necessary to force this to activate startup view (and fill in archive menu) if (m_pVentanaPrincipal->m_pNoteBook->GetPageCount() == 0) { //se muestra el mosaico m_pVentanaPrincipal->ShowStartUp(true); } } } //esto es para que se pinte correctamente el recuadro amarillo cuando cambias de ventana void DetachedDialog::OnVistaActivada(GNC::GCS::IVista* pVista) { RefrescarVista(pVista); } void DetachedDialog::RefrescarVista(GNC::GCS::IVista* pVista) { if(pVista != NULL) { if(pVista->GetWindow()->GetParent() == m_pWindow) { m_pWindow->Refresh(); } } } void DetachedDialog::OnBotonTitulo(wxCommandEvent &) { } } } ginkgocadx-3.8.7/cadxcore/main/gui/mainwindow/detacheddialog.h000066400000000000000000000031261314736454600244340ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include
    #include class VentanaPrincipal; namespace GNC { namespace GUI { class DetachedDialog: public DetachedDialogBase, public GNC::GCS::IObservadorVistas { public: DetachedDialog(wxWindow* pParent, VentanaPrincipal* pVentanaPrincipal); ~DetachedDialog(); void AddPanel(wxWindow* pWin, const wxString& titulo); void SetTitulo(const wxString& titulo); wxWindow* GetWindow(); wxString GetTitulo(); protected: void OnBotonTitulo(wxCommandEvent &); virtual void OnCloseDialogo(wxCloseEvent &event); virtual void OnVistaActivada(GNC::GCS::IVista* pVista); virtual void RefrescarVista(GNC::GCS::IVista* pVista); wxWindow* m_pWindow; VentanaPrincipal* m_pVentanaPrincipal; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/mainwindow/ventanaprincipal.cpp000066400000000000000000002425041314736454600254110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include #include #include #include #include #include #include #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include #include #include #include #include #include #define ID_CERRAR 1054 #define ID_CERRAR_TODAS 1055 #define ID_SALIR 1059 #define ID_ONLINE_SUPPORT 1060 #define ID_ACERCA_DE 1062 #define ID_CONFIGURACION 1063 #define ID_PANTALLA_COMPLETA 1070 #define ID_MOSAICO_RESTAURAR 1075 #define ID_CONTROLHL7 1076 #define ID_CONTROLLOGS 1077 #define ID_CHECK_UPDATES 1078 #define ID_ONLINE_MANUAL 1079 #define ID_EXTENSIONS_SUPPORT 1081 #define ID_OPEN_TEST_CARD 1082 #define MAIN_WINDOW_ID "GinkgoCADxMain" ////////////////////////// #if defined(GINKGO_PRO) int InitTest(const std::string& pathTests); /** launches cppunit tests */ class TestLauncher: public wxThread { public: TestLauncher(const std::string& pathTests) :m_path(pathTests) { } virtual void *Entry() { LOG_INFO("INITWX", "Launching from external thread"); InitTest(m_path); LOG_INFO("INITWX", "tests complete, launching closing command"); class CloseCommand: public GADAPI::ISynchronizedWithGUI { virtual void ExecuteSynchronized(GADAPI::ISynchronizedData* ) { LOG_INFO("INITWX", "Closing Ginkgo CADx..."); GNC::Entorno::Instance()->GetVentanaPrincipal()->Close(true); wxExit(); exit(0); } }; GADAPI::CommandSynchronizeWithGUI* pCmd = new GADAPI::CommandSynchronizeWithGUI(new CloseCommand()); GNC::CommandController::Instance()->ProcessAsync("", pCmd, NULL); LOG_INFO("INITWX", "closing command launched"); return NULL; } std::string m_path; }; #endif /////////// class wxGinkgoAuiNoteBook: public wxAuiNotebook { public: wxGinkgoAuiNoteBook(): wxAuiNotebook() { } wxGinkgoAuiNoteBook(wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxAUI_NB_DEFAULT_STYLE): wxAuiNotebook(parent, id, pos, size, style) { } virtual ~wxGinkgoAuiNoteBook() { } //hack to expose this method virtual wxAuiTabCtrl* GetActiveTabCtrl() { return wxAuiNotebook::GetActiveTabCtrl(); } }; //// EventoProgreso::EventoProgreso(TipoProgreso tipo, long threadId) { SetEventType(wxEVT_PROGRESO); m_Tipo = tipo; m_ThreadId = threadId; } EventoProgreso::EventoProgreso(const EventoProgreso& event) : wxEvent(event), m_Tipo(event.m_Tipo), m_ThreadId(event.m_ThreadId) { } EventoProgreso::~EventoProgreso() { } wxEvent* EventoProgreso::Clone() const { return new EventoProgreso(*this); } IMPLEMENT_DYNAMIC_CLASS(EventoProgreso, wxEvent) // Mapeo de eventos BEGIN_EVENT_TABLE(VentanaPrincipal, VentanaPrincipalBase) EVT_CLOSE(VentanaPrincipal::OnWindowClose) EVT_MENU(ID_Inicio_Aplicacion, VentanaPrincipal::OnInicioAplicacion) END_EVENT_TABLE() VentanaPrincipal::VentanaPrincipal(wxWindow* pParent, const wxString& title) : VentanaPrincipalBase(pParent, wxID_ANY, title, wxDefaultPosition, wxSize( 800,600 ), wxDEFAULT_FRAME_STYLE), m_mgr(m_pPanelCentral, wxAUI_MGR_ALLOW_FLOATING | wxAUI_MGR_TRANSPARENT_DRAG | wxAUI_MGR_VENETIAN_BLINDS_HINT ), StartupView(NULL) { //load attributes GNC::GCS::WindowAttributesController::LoadWindowAttributes(MAIN_WINDOW_ID, this, false); // //SetDoubleBuffered(true); m_Iniciada = false; m_VersionChecked = false; wxIcon icono; icono.CopyFromBitmap(GinkgoResourcesManager::Logos::GetLogoGinkgo32x32()); this->SetIcon(icono); m_TratandoDeCerrar = false; m_SuperFreezeCount = 0; disabler = NULL; GNC::Entorno* pEntorno = GNC::Entorno::Instance(); pEntorno->SetVentanaPrincipal(this); pEntorno->SetVentanaRaiz(m_pPanelCentral); SetAutoLayout(true); // Subscripción a la notificación de carga y descarga de extensiones pEntorno->ExtensionsObservers.push_back(this); // Subscripción a la notificación de activación y desactivación de vistas/estudios pEntorno->ViewsObservers.push_back(this); m_mgr.SetDockSizeConstraint(0.5f, 0.5f); //menu and tool bar m_pMenuBar = new wxMenuBar( wxMB_DOCKABLE ); // GNC::GUI::StatusBarProgreso* pStatusBar = new GNC::GUI::StatusBarProgreso(this, m_pPanelCentral, true); SetStatusBar(pStatusBar); { wxString wxCaption = _("Tasks"); wxAuiPaneInfo pi(wxAuiPaneInfo().Caption(wxCaption).Float().BestSize(400,170).MinSize(200,100).Resizable(true).CloseButton(true).Show(false)); pi.DestroyOnClose(false); m_mgr.AddPane(pStatusBar->m_pPanelTareas, pi); } GNC::CommandController::Instance()->RegistrarProgreso(pStatusBar); Connect(wxEVT_PROGRESO, EventoProgresoFunctionHandler(VentanaPrincipal::OnComando), NULL, this); m_pNoteBook = new wxGinkgoAuiNoteBook(m_pPanelCentral, wxID_ANY,wxDefaultPosition, wxDefaultSize, wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_MOVE | wxAUI_NB_SCROLL_BUTTONS | wxAUI_NB_WINDOWLIST_BUTTON | wxAUI_NB_CLOSE_ON_ALL_TABS | wxEXPAND ); m_pNoteBook->SetBackgroundColour(wxColour(0, 0, 0)); m_pNoteBook->Connect( wxEVT_CHILD_FOCUS, wxChildFocusEventHandler( VentanaPrincipal::OnNotebookFocus ) ); m_mgr.AddPane(m_pNoteBook, wxAuiPaneInfo().Name(wxT("vistas")).CenterPane().Layer(0).PaneBorder(true).Movable(false).Floatable(false).Dockable(false).LeftDockable(false).RightDockable(false).TopDockable(false).BottomDockable(false).CloseButton(false).Hide()); // wxString wxCaption; m_mgr.Update(); //hay que conectarlo al auimanager, porque el notebook delega el procesado de eventos al auimanager { m_mgr.Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler(VentanaPrincipal::OnNotebookPageClose),NULL,this); m_mgr.Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, wxAuiNotebookEventHandler(VentanaPrincipal::OnNotebookPageChanging), NULL, this); m_mgr.Connect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler(VentanaPrincipal::OnNotebookPageChanged),NULL,this); m_mgr.Connect(wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP, wxAuiNotebookEventHandler(VentanaPrincipal::OnNotebookMenuTab),NULL,this); m_mgr.Connect(wxEVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN, wxAuiNotebookEventHandler(VentanaPrincipal::OnNotebookCambiarTab),NULL,this); m_mgr.Connect(wxEVT_AUI_PANE_CLOSE, wxAuiManagerEventHandler(VentanaPrincipal::OnPanelClose),NULL,this); } SetDropTarget(new GNC::GUI::DropTargetMainWindow()); Layout(); } VentanaPrincipal::~VentanaPrincipal() { m_pNoteBook->Disconnect( wxEVT_CHILD_FOCUS, wxChildFocusEventHandler( VentanaPrincipal::OnNotebookFocus ) ); Disconnect(wxEVT_PROGRESO, EventoProgresoFunctionHandler(VentanaPrincipal::OnComando), NULL, this); GNC::CommandController::Instance()->RegistrarProgreso(NULL); GNC::GUI::DialogoAdquisicion::FreeInstance(); GNC::GUI::GinkgoCloudSearchDialog::FreeInstance(); GNC::GCS::ICommandController::Instance()->AbortarComandosDeOwner(NULL); //cierra la ventana si esta abierta GNC::GUI::VentanaControlHL7::CerrarSiAbierta(); GNC::GUI::VentanaControlLogs::CerrarSiAbierta(); { m_mgr.Disconnect(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE, wxAuiNotebookEventHandler(VentanaPrincipal::OnNotebookPageClose),NULL,this); m_mgr.Disconnect(m_pNoteBook->GetId(), wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED, wxAuiNotebookEventHandler(VentanaPrincipal::OnNotebookPageChanged),NULL,this); } this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnMenuCerrarTabClick ) ); this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( VentanaPrincipal::OnMenuCerrarTabUpdateUI ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnMenuCerrarTodosTabsClick ) ); this->Disconnect( wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( VentanaPrincipal::OnMenuCerrarTodosTabsUpdateUI ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnSalir ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnConfiguracion ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnMensajesHL7 ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnControlLogs ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnAcercaDe ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnPantallaCompleta ) ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnMosaicoRestaurar ) ); //delete history tools GNC::HistoryToolsController::Instance()->UnRegisterAll(); // GNC::Entorno* pEntorno = GNC::Entorno::Instance(); GNC::ControladorExtensiones::Instance()->DesRegistrarModulos(); GNC::GCS::ControladorVistas::FreeInstance(); m_mgr.UnInit(); pEntorno->ExtensionsObservers.remove(this); pEntorno->ViewsObservers.remove(this); pEntorno->SetVentanaPrincipal(NULL); pEntorno->SetVentanaRaiz(NULL); //save attributes GNC::GCS::WindowAttributesController::SaveWindowAttributes(MAIN_WINDOW_ID, this); } //region "Eventos de comprobacion de actualizaciones" void VentanaPrincipal::ComprobarActualizaciones() { bool check; GNC::GCS::ConfigurationController::Instance()->readBoolGeneral("/GinkgoCore/Estacion", "CheckForUpdates", check, true); if (check) { m_VersionChecked = false; //this is the profile GNC::GCS::Permisos::EstadoPermiso updates = GNC::GCS::IControladorPermisos::Instance()->Get("core.update","check_updates"); if (updates) { bool tryCheck = false; std::string lastDateStr; if (GNC::GCS::ConfigurationController::Instance()->readStringGeneral("/GinkgoCore/LastUpdateDateTime", "LastDate", lastDateStr)) { GNC::GCS::Permisos::EstadoPermiso period = GNC::GCS::IControladorPermisos::Instance()->Get("core.update","update_period"); std::string periodStr = period.ObtenerValor(); long iPeriod; if (!wxString::FromUTF8(periodStr.c_str()).ToLong(&iPeriod)) { iPeriod = 2; } wxDateTime lastDate; lastDate.ParseFormat(wxString::FromUTF8(lastDateStr.c_str()), wxT("%d/%m/%Y %H:%M:%S")); if (!lastDate.IsValid()) { lastDate = wxDateTime::Now(); lastDate.Subtract( wxDateSpan(0, 0, 0, iPeriod + 1 ) ); } if (wxDateTime::Now().Subtract(lastDate).GetDays() > iPeriod) { tryCheck = true; GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Check Updates"), new GNC::ComandoComprobarActualizaciones(new GNC::ComandoComprobarActualizacionesParams(updates.ObtenerValor(), false) ), this); } } else { //if there is no date in the ini file update will be checked GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Check Updates"), new GNC::ComandoComprobarActualizaciones(new GNC::ComandoComprobarActualizacionesParams(updates.ObtenerValor(), false) ), this); tryCheck = true; } if (tryCheck) { //writes date GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/LastUpdateDateTime", "LastDate", std::string(wxDateTime::Now().Format(wxT("%d/%m/%Y %H:%M:%S")).ToUTF8())); } } } } void VentanaPrincipal::OnDoNotWarnAgainClicked( wxCommandEvent& /*event*/ ) { if (m_VersionChecked) { wxString valor; GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/SkipUpdate", m_VersionCheck, "1"); GNC::GCS::ConfigurationController::Instance()->Flush(); } } void VentanaPrincipal::OnVersionNotifierClose( wxCommandEvent& /*event*/ ) { wxWindowDisabler dis; SuperFreeze(); m_pPanelActualizacion->Hide(); //m_pPanelCentral->Layout(); Layout(); Refresh(true); SuperThaw(); } //endregion void VentanaPrincipal::ForzarCambioVista(GNC::GCS::IVista* pVistaCambiar) { //se cambia la pestaña //bool cerrar = true; this->SetFocus(); GNC::GCS::ControladorVistas* pcv = GNC::GCS::ControladorVistas::Instance(); if (pcv == NULL) { std::cerr << "Error: No se pudo obtener el controlador de vistas" << std::endl; return ; } if (pcv->GetVistaActiva() != pVistaCambiar) { pcv->SolicitarActivarVista(pVistaCambiar); } for (GNC::GCS::ControladorVistas::MapaVentanas::iterator it = pcv->m_MapaVentanas.begin(); it != pcv->m_MapaVentanas.end(); ++it) { wxWindow* pVentana = (*it).first; GNC::GCS::IVista* pVista = (*it).second; if (pVentana != NULL && pVista != NULL) { if (pVistaCambiar == pVista) { //Tenemos la ventana, la vista y el estudio //primero cambiamos de pestaña int selection = m_pNoteBook->GetPageIndex(pVentana); if (m_pNoteBook->IsShown() && selection >= 0) { if(selection >= 0 && selection != m_pNoteBook->GetSelection()) { wxWindowDisabler dis; SuperFreeze(); m_pNoteBook->SetSelection(selection); SuperThaw(); return; } } else { //desencajado GNC::GUI::DetachedDialog* pDialogo = dynamic_cast (pVentana->GetParent()); if(pDialogo != NULL) { if (pDialogo->IsIconized()) { pDialogo->Iconize(false); } pDialogo->Raise(); } } } } } } void VentanaPrincipal::OnSalir(wxCommandEvent& WXUNUSED(event)) { SuperFreeze(); Close(); SuperThaw(); } void VentanaPrincipal::OnAcercaDe(wxCommandEvent& WXUNUSED(event)) { AboutDialog(this).ShowModal(); } void VentanaPrincipal::OnOnlineHelp(wxCommandEvent& /*event*/) { GNC::GCS::Permisos::EstadoPermiso manual = GNC::GCS::IControladorPermisos::Instance()->Get("core.help","url_manual"); wxString urlManual = wxString::FromUTF8(manual.ObtenerValor().c_str()); if (urlManual != wxEmptyString) { if (urlManual.StartsWith(wxT("http://"))) { wxLaunchDefaultBrowser(urlManual); } else { urlManual.Replace(wxT("\\"), wxString(wxFileName::GetPathSeparator())); wxFileName executable_path = wxStandardPaths::Get().GetExecutablePath(); wxString pathDocument = executable_path.GetPath() + wxFileName::GetPathSeparator() + urlManual; wxFileType* fileType = wxTheMimeTypesManager->GetFileTypeFromMimeType(wxT("application/pdf")); if (fileType == NULL) { wxMessageBox(_("There isn't any pdf reader registered in the system"), _("Info"), wxICON_WARNING|wxOK); return; } wxString openCmd = fileType->GetOpenCommand(pathDocument); if (!openCmd.IsEmpty()) { wxExecute(openCmd); } else { wxMessageBox(_("There isn't any pdf reader registered in the system"), _("Info"), wxICON_WARNING|wxOK); } delete fileType; } } } void VentanaPrincipal::OnOnlineSupport(wxCommandEvent& /*event*/) { GNC::GCS::Permisos::EstadoPermiso updates = GNC::GCS::IControladorPermisos::Instance()->Get("core.help","url_support"); wxString urlSupport = wxString::FromUTF8(updates.ObtenerValor().c_str()); if (urlSupport != wxEmptyString) { wxLaunchDefaultBrowser(urlSupport); } } void VentanaPrincipal::OnOpenTestCard(wxCommandEvent& /*event*/) { wxFileName cpath = FROMPATH(GNC::GCS::IEntorno::Instance()->GetGinkgoResourcesDir()) + wxFileName::GetPathSeparator() + wxT("test_card.dcm"); std::string stdpath(cpath.GetFullPath().ToUTF8()); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(stdpath, false, GNC::GCS::IHistoryController::TAA_LINK); pParams->m_abrirDespuesDeCargar = true; GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync(_Std("Included in the history ..."),pCmd, NULL); } /* Evento de lanzamiento de la comprobacion de actualizaciones */ void VentanaPrincipal::OnCheckForUpdates(wxCommandEvent& /*event*/) { m_VersionChecked = false; GNC::GCS::Permisos::EstadoPermiso updates = GNC::GCS::IControladorPermisos::Instance()->Get("core.update","check_updates"); if (updates.ObtenerValor().empty()) { wxMessageBox(_("There is no URL to check updates on the current configuration."), _("Check update error"),wxICON_ERROR); } else { GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Check Updates"), new GNC::ComandoComprobarActualizaciones(new GNC::ComandoComprobarActualizacionesParams(updates.ObtenerValor(), true) ), this); GNC::GCS::ConfigurationController::Instance()->writeStringGeneral("/GinkgoCore/LastUpdateDateTime", "LastDate", std::string(wxDateTime::Now().Format().ToUTF8())); } } /*startup page*/ class DialogoComandosEnEjecucion: public DialogoComandosEnEjecucionBase { public: DialogoComandosEnEjecucion(wxWindow* pParent, std::list& listaNombres) : DialogoComandosEnEjecucionBase(pParent) { for (std::list::iterator it = listaNombres.begin(); it!= listaNombres.end(); ++it) { m_pListacomandos->Append(wxString::FromUTF8((*it).c_str())); } Layout(); } ~DialogoComandosEnEjecucion() { } }; void VentanaPrincipal::OnWindowClose(wxCloseEvent& event) { #if defined (_WINDOWS) wxWindowDisabler* dis = new wxWindowDisabler(); #endif SuperFreeze(); GNC::CommandController::ListaNombreComandos comandos = GNC::CommandController::Instance()->GetComandosActivos(); if(comandos.size()>0 && event.CanVeto()) { DialogoComandosEnEjecucion dlg(this,comandos); #if defined (_WINDOWS) delete dis; dis = NULL; #endif this->SuperThaw(); int answer = dlg.ShowModal(); #if defined (_WINDOWS) dis = new wxWindowDisabler(); #endif this->SuperFreeze(); if(answer != wxID_OK) { event.Veto(true); #if defined (_WINDOWS) delete dis; #endif this->SuperThaw(); return; } } GNC::GCS::ICommandController::Instance()->AbortarComandosDeOwner(this); if(CerrarTodosLosTabsYPanelGrids()) { //cerramos todos las ventanas flotantes que podamos haber abierto... int numeroVistas = GNC::GCS::ControladorVistas::Instance()->GetVistas().size(); while (numeroVistas == (int)GNC::GCS::ControladorVistas::Instance()->GetVistas().size() && GNC::GCS::ControladorVistas::Instance()->GetVistas().size()>0) { wxWindow* ventana = GNC::GCS::ControladorVistas::Instance()->GetVistas().front()->GetWindow(); GNC::GUI::DetachedDialog* pDialogo = dynamic_cast (ventana->GetParent()); if(pDialogo != NULL) { if(!pDialogo->Close() && event.CanVeto()) { event.Veto(true); break; } } numeroVistas --; } if(GNC::GCS::ControladorVistas::Instance()->GetVistas().size() != 0 && event.CanVeto()) { event.Veto(true); } else { this->Destroy(); } } else { //si quedan tabs o panelgrids if (event.CanVeto()) { event.Veto(true); } } SuperThaw(); if (!event.GetVeto()) { GNC::Entorno::Instance()->SetVentanaPrincipal(NULL); GNC::Entorno::Instance()->SetVentanaRaiz(NULL); } #if defined(_WINDOWS) delete dis; #endif } #ifdef __WXMAC__ void VentanaPrincipal::MacOpenFile(const wxString &fileName) { try { std::list ruta; ruta.push_back(std::string(fileName.ToUTF8())); //m_pHistorial->CargarDICOM(ruta,true); } catch(GIL::DICOM::I2DException& i) { LOG_ERROR("Principal", "Error al cargar fichero: " << i.str()); } } #endif /* Evento de configuracion */ void VentanaPrincipal::OnConfiguracion(wxCommandEvent& /*event*/) { GNC::GUI::DialogoConfiguracion config(this); config.ShowModal(); } /*Evento de ventana de control de envio HL7*/ void VentanaPrincipal::OnMensajesHL7(wxCommandEvent& /*event*/) { GNC::GUI::VentanaControlHL7* ventana = GNC::GUI::VentanaControlHL7::Instance(); if(!ventana->IsActive()) { ventana->RequestUserAttention(); } } /*Evento de ventana de control de registros (Logs)*/ void VentanaPrincipal::OnControlLogs(wxCommandEvent& /*event*/) { GNC::GUI::VentanaControlLogs* ventana = GNC::GUI::VentanaControlLogs::Instance(); if(!ventana->IsActive()) { ventana->RequestUserAttention(); } } /* Evento de aplicacion de herramienta*/ void VentanaPrincipal::OnAplicarHerramienta(wxCommandEvent& /*event*/) { /* GNC::GCS::IControladorHerramientas* cH = GNC::Entorno::Instance()->GetControladorHerramientas(); GNC::GCS::ITool* herr = NULL; try { // Subscribimos la vista al contrato de herr herr= cH->ObtenerHerramienta(event.GetId()); if(herr!=NULL){ herr->SolicitarActivacion(GNC::GCS::TriggerButton().EnableLeft()); } } catch (GNC::GCS::ControladorHerramientasException& ex) { std::cerr << "Error al obtener la herramienta puntero: No se pudo subscribir la herramienta: " << ex.GetCause() << std::endl; } event.Skip(false); */ } void VentanaPrincipal::OnUpdateUIHerramienta(wxUpdateUIEvent& /*event*/) { /* GNC::GCS::IControladorHerramientas* cH = GNC::Entorno::Instance()->GetControladorHerramientas(); GNC::GCS::ITool* herr = NULL; try { // Subscribimos la vista al contrato de herr herr = cH->ObtenerHerramienta(event.GetId()); if(herr!=NULL){ event.Enable(herr->Habilitada()); event.Show(herr->Habilitada()); } else{ event.Enable(false); event.Show(false); } } catch (GNC::GCS::ControladorHerramientasException& ex) { std::cerr << "Error al obtener la herramienta puntero: No se pudo subscribir la herramienta: " << ex.str() << std::endl; } event.Skip(true); */ } /* Eventos de teclado */ void VentanaPrincipal::OnKeyDown(wxKeyEvent& event) { GNC::GCS::IVista* pVista = GNC::GCS::ControladorVistas::Instance()->GetVistaActiva(); if(pVista != NULL) { wxKeyEvent evt = event; wxWindow* win = pVista->GetWindow(); if (win) { win->GetEventHandler()->AddPendingEvent(evt); } event.Skip(false); } else { event.Skip(true); } } void VentanaPrincipal::OnMenuCerrarTabClick(wxCommandEvent& ) { GNC::GCS::IVista* pVista = GNC::GCS::ControladorVistas::Instance()->GetVistaActiva(); if(pVista != NULL) { wxWindow* pVentana = pVista->GetWindow(); if(pVentana != NULL) { if(m_pNoteBook->GetPageIndex(pVentana) >= 0 && m_pNoteBook->GetSelection()!=-1) { wxAuiNotebookEvent evt(wxEVT_COMMAND_AUINOTEBOOK_BUTTON, m_pNoteBook->GetSelection()); evt.SetInt(wxAUI_BUTTON_CLOSE); evt.SetId(5380+500); evt.SetEventObject(((wxGinkgoAuiNoteBook*)m_pNoteBook)->GetActiveTabCtrl()); m_pNoteBook->GetEventHandler()->ProcessEvent(evt); } } } } void VentanaPrincipal::OnMenuCerrarTodoExceptoActiva(wxCommandEvent& ) { /*NO ESTA CORRECTO unsigned int pestanias = m_pNoteBook->GetPageCount(); //la segunda condicion es para que si das a cancelar pues pare unsigned int tabActual = pestanias - 1; while(m_pNoteBook->GetPageCount() > 1 && pestanias == m_pNoteBook->GetPageCount()){ if(m_pNoteBook->GetPage(tabActual) == m_pNoteBook->GetActiveTabCtrl()){ } else { wxAuiNotebookEvent evt(wxEVT_COMMAND_AUINOTEBOOK_BUTTON, m_pNoteBook->GetPage(tabActual)->GetId()); evt.SetInt(wxAUI_BUTTON_CLOSE); evt.SetEventObject(m_pNoteBook->GetPage(tabActual)); m_pNoteBook->GetEventHandler()->ProcessEvent(evt); pestanias --; } } */ } void VentanaPrincipal::OnMenuCerrarTodosTabsClick(wxCommandEvent& ) { CerrarTodosLosTabsYPanelGrids(); } //devuelve bool si ha cerrado todos bool VentanaPrincipal::CerrarTodosLosTabsYPanelGrids() { bool todosCerrados = false; unsigned int pestanias = m_pNoteBook->GetPageCount(); //la segunda condicion es para que si das a cancelar pues pare while(m_pNoteBook->GetPageCount() > 0 && pestanias == m_pNoteBook->GetPageCount()) { wxAuiNotebookEvent evt(wxEVT_COMMAND_AUINOTEBOOK_BUTTON, m_pNoteBook->GetSelection()); evt.SetInt(wxAUI_BUTTON_CLOSE); evt.SetId(5380+500); evt.SetEventObject(((wxGinkgoAuiNoteBook*)m_pNoteBook)->GetActiveTabCtrl()); m_pNoteBook->GetEventHandler()->ProcessEvent(evt); pestanias --; } if(m_pNoteBook->GetPageCount() == 0) { //se cierran los paneles tabs... todosCerrados = true; } // Se han eliminado todas las paginas //se muestra el mosaico ShowStartUp(todosCerrados); return todosCerrados; } bool VentanaPrincipal::ClosesAllUndocked() { std::list listaDesencajados; GNC::GCS::ControladorVistas::TipoListaVistas viewsList = GNC::GCS::ControladorVistas::Instance()->GetVistas(); for (GNC::GCS::ControladorVistas::TipoListaVistas::iterator it = viewsList.begin(); it != viewsList.end(); ++it) { GNC::GUI::DetachedDialog* pPanel = dynamic_cast ((*it)->GetWindow()->GetParent()); if(pPanel!=NULL) { listaDesencajados.push_back(pPanel); } } for (std::list::iterator it = listaDesencajados.begin(); it != listaDesencajados.end(); ++it) { if (!(*it)->Close()) { return false; } } return true; } void VentanaPrincipal::OnMenuPrimerPlanoPestaniaActiva(wxCommandEvent& ) { if(m_pNoteBook->GetPageCount() > 0) { PasarAPrimerPlano(m_pNoteBook->GetPage(m_pNoteBook->GetSelection())); } } void VentanaPrincipal::OnMenuCerrarTabUpdateUI(wxUpdateUIEvent& event) { event.Enable(m_pNoteBook->GetPageCount() > 0); } void VentanaPrincipal::OnMenuCerrarTodosTabsUpdateUI(wxUpdateUIEvent& event) { event.Enable(m_pNoteBook->GetPageCount() > 0); } /*Eventos de impresion*/ void VentanaPrincipal::OnPantallaCompleta(wxCommandEvent& ) { this->ShowFullScreen(!this->IsFullScreen(),wxFULLSCREEN_NOBORDER|wxFULLSCREEN_NOCAPTION); } wxWindow* VentanaPrincipal::GetRootWindow() { return m_pPanelCentral; } void VentanaPrincipal::EncajarDesencajar(GNC::GCS::IVista* pVista) { if(pVista != NULL) { wxWindow* pVentana = pVista->GetWindow(); if(pVentana != NULL) { GNC::GCS::ControladorVistas::Instance()->SolicitarActivarVista(NULL); //la buscamos en el notebook if(m_pNoteBook->GetPageIndex(pVentana) >= 0) { GNC::GUI::DetachedDialog* pDlg; { #if defined (_WINDOWS) wxWindowDisabler dis; #endif SuperFreeze(); wxString caption = m_pNoteBook->GetPageText(m_pNoteBook->GetPageIndex(pVentana)); wxString titulo = m_pNoteBook->GetPageText(m_pNoteBook->GetPageIndex(pVentana)); m_pNoteBook->RemovePage(m_pNoteBook->GetPageIndex(pVentana)); if (m_pNoteBook->GetPageCount() == 0) { ShowStartUp(true); } pDlg = new GNC::GUI::DetachedDialog(this, this); pDlg->AddPanel(pVentana, titulo); m_mgr.Update(); pDlg->Show(true); SuperThaw(); } } else { //esta desencajada => la encajamos GNC::GUI::DetachedDialog* pDlg = dynamic_cast(pVentana->GetParent()); if(pDlg != NULL) { #if defined (_WINDOWS) wxWindowDisabler dis; #endif pDlg->Show(false); pDlg->GetSizer()->Detach(pVentana); SuperFreeze(); //encajar! //encajar en el notebook ShowStartUp(false); pVentana->Reparent(m_pNoteBook); m_pNoteBook->AddPage(pVentana, pDlg->GetTitulo()); pDlg->Destroy(); m_pNoteBook->Refresh(); m_mgr.GetPane(m_pNoteBook).Show(true); m_mgr.Update(); SuperThaw(); } } GNC::GCS::ControladorVistas::Instance()->SolicitarActivarVista(pVista); } } } void VentanaPrincipal::ShowStartUp(bool show) { bool update = false; if (StartupView == NULL) { return; } if (StartupView->GetWindow()->IsShown() != show) { m_mgr.GetPane(StartupView->GetWindow()).Show(show); update = true; } if (show) { GNC::GCS::ControladorVistas::Instance()->SolicitarActivarVista(StartupView); } if (m_pNoteBook->IsShown() == show) { m_mgr.GetPane(m_pNoteBook).Show(!show); update = true; m_pNoteBook->Refresh(false); } if (update) { m_mgr.Update(); } } void VentanaPrincipal::OnMosaicoRestaurar(wxCommandEvent& ) { wxWindowDisabler disabler; SuperFreeze(); ReplegarPestanias(); m_mgr.Update(); SuperThaw(); } void VentanaPrincipal::ReplegarPestanias() { //remember the tab now selected int nowSelected = m_pNoteBook->GetSelection(); //select first tab as destination m_pNoteBook->SetSelection(0); //iterate all other tabs for( unsigned int idx = 0; idx < m_pNoteBook->GetPageCount(); idx++) { //get win reference wxWindow* win = m_pNoteBook->GetPage(idx); //get tab title wxString title = m_pNoteBook->GetPageText(idx); //remove from notebook m_pNoteBook->RemovePage(idx); //re-add in the same position so it will tab m_pNoteBook->InsertPage(idx, win, title); } //restore orignial selected tab m_pNoteBook->SetSelection(nowSelected); } /* Añade una nueva pestaña al panel de estudios */ void VentanaPrincipal::InsertarVentana(wxWindow* pVentana) { wxWindowDisabler disabler; SuperFreeze(); ShowStartUp(false); m_pNoteBook->AddPage(pVentana, wxEmptyString, false); m_mgr.Update(); SuperThaw(); } /* Elimina un tab del panel de estudios */ void VentanaPrincipal::EliminarVentana(wxWindow *WXUNUSED(pVentana)) { std::cerr << "Error: Metodo no implementado VentanaPrincipal::EstudioRemoveTab(Tab* t)" << std::endl; throw new std::exception(); } void VentanaPrincipal::OnInicioAplicacion(wxCommandEvent &) { //parameters parsing... bool aceptedLicense = false; bool versionParameter = false; wxString pathOfFile = wxEmptyString; int argc = GNC::Entorno::Instance()->GetApp()->argc; wxChar** argv = GNC::Entorno::Instance()->GetApp()->argv; if (argc > 1) { for (int i = 1; i < argc; i++) { wxString param(argv[i]); if ( param.CmpNoCase(wxT("-version")) == 0 || param.CmpNoCase(wxT("--version")) == 0 || param.CmpNoCase(wxT("-v")) == 0 ) { versionParameter = true; continue; } if (param.CmpNoCase(wxT("--accepted")) == 0 || param.CmpNoCase(wxT("-a")) == 0) { aceptedLicense = true; continue; } #if defined(GINKGO_PRO) else if (param.CmpNoCase(wxT("-unittest")) == 0) { LOG_INFO("INITWX", "Running unitttests"); if (argc <= i+1) { LOG_ERROR("INITWX", "no tests cases found for -unittest option. Usage -unittest "); } else { i++; std::string pathTests = wxString(argv[i]).ToUTF8(); TestLauncher* test = new TestLauncher(pathTests); test->Create(); test->Run(); } continue; } #endif if (!param.StartsWith("--")) { pathOfFile = param; } } } if (versionParameter) { std::cout << GNC::GCS::IEntorno::Instance()->GetGinkgoVersionString() << std::endl; GNC::GCS::IEntorno::FreeInstance(); Close(); } if (!aceptedLicense) { //aceptacion de la licencia bool aceptada; GNC::GCS::ConfigurationController::Instance()->readBoolGeneral("/GinkgoCore/Licencia", "Aceptada", aceptada, false); if(!aceptada) { GNC::GUI::AcceptLicenseDialog dlgLicencia(NULL); wxYield(); int answer = dlgLicencia.ShowModal(); if(answer == wxID_OK) { GNC::GCS::ConfigurationController::Instance()->writeBoolGeneral("/GinkgoCore/Licencia", "Aceptada", true); GNC::GCS::ConfigurationController::Instance()->Flush(); } else { GNC::GCS::ConfigurationController::Instance()->writeBoolGeneral("/GinkgoCore/Licencia", "Aceptada", false); GNC::GCS::ConfigurationController::Instance()->Flush(); Close(); return; } } } //si viene un parametro y es un directorio... abrir directamente if(!pathOfFile.empty()) { Login(); EjecutarParametro(pathOfFile, true); } else { Login(); } } void VentanaPrincipal::EjecutarParametro(const wxString cadena, bool doLogin) { std::string xmlString(""); std::string errorMsg; bool error = false; if (cadena.Lower().StartsWith(wxT("ginkgocadx://"))) { try { xmlString = GIL::IntegrationController::Instance()->ParsesModelFromURL(cadena); } catch (GIL::IntegrationException& ex) { LOG_ERROR("GIL/WF", "Semantic/Sintactic error parsing integration url: " << ex.GetFullCause()); wxMessageBox(_("Semantic/Sintactic error parsing integration URL (see log for details):\n") + wxString::FromUTF8(ex.GetCause().c_str()),_("Error"),wxICON_INFORMATION); } } else { wxFileName path = cadena; if (path.IsOk()) { LOG_DEBUG("Core", "Interpretando " << std::string(TOPATH(path.GetFullPath())).c_str()); if (path.IsRelative()) { LOG_DEBUG("Core", "Convirtiendo ruta en absoluta"); #if defined(__WXGTK__) char* invocation_dir = getenv("INVOCATION_DIR"); if (invocation_dir != NULL) { wxString invocationDir = wxString::FromUTF8(invocation_dir); if (!invocationDir.IsEmpty()) { path = invocationDir + wxFileName::GetPathSeparator() + path.GetFullPath(); } } #else path.MakeAbsolute(); #endif LOG_DEBUG("Core", "Ruta absoluta: " << std::string(TOPATH(path.GetFullPath())).c_str()); } if(wxDirExists(path.GetFullPath()) && path.IsDirReadable()) { if(doLogin) { Login(); } std::list rutas; rutas.push_back(std::string(TOPATH( path.GetFullPath() ))); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(rutas,true,GNC::GCS::IHistoryController::TAA_LINK); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync(_Std("Included in the history ..."), pCmd, NULL); return ; } else if(path.FileExists() && path.IsFileReadable()) { //estamos ante un fichero //se mira a ver si a partir del byte 128 pone DICM wxFile fichero(path.GetFullPath(), wxFile::read); bool esGzip = false; bool esDicom = false; if(fichero.IsOpened()) { char buffer[128]; if(fichero.Read(buffer,128) == 128) { esGzip = ((unsigned char)buffer[0]==0x1f) && ((unsigned char)buffer[1]==0x8b); char numeroMagico[4]; if(fichero.Read(numeroMagico,4) == 4) { std::string str(numeroMagico,4); if(str == "DICM") { esDicom = true; } } } } if(esDicom) { if (doLogin) { Login(); } //si no es un xml pues sera un dicom... std::list rutas; rutas.push_back(std::string(TOPATH(path.GetFullPath()) )); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(rutas,true,GNC::GCS::IHistoryController::TAA_LINK); GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync(_Std("Included in the history ..."),pCmd, NULL); } else { //se lee el modelo bool loaded = false; wxXmlDocument documento; if (esGzip) { wxFileInputStream* fileIn = new wxFileInputStream(path.GetFullPath()); wxZlibInputStream zInput(fileIn); loaded = documento.Load(zInput); } else { loaded = documento.Load(path.GetFullPath()); } if(loaded) { wxStringOutputStream out; documento.Save(out); xmlString=out.GetString().ToUTF8(); } else { //dcmurl this is a file with a relative path... LOG_DEBUG("GIL/WF", "Try reading dcmurl file..."); wxTextFile dcmURLFile; if (!dcmURLFile.Open(path.GetFullPath(), wxMBConvUTF8())) { for (wxString line = dcmURLFile.GetFirstLine(); !dcmURLFile.Eof(); line = dcmURLFile.GetNextLine()) { wxFileName fileName(line); if (fileName.IsRelative()) { fileName.MakeAbsolute(path.GetPath()); } if (wxFileExists(fileName.GetFullPath())) { EjecutarParametro(fileName.GetFullPath()); } else { LOG_ERROR("GIL/WF", "File doesn't exists"); break; } } } LOG_ERROR("GIL/WF", "Error al interpretar el fichero de entrada: XML mal formado"); wxMessageBox(_("Malformed XML"),_("Error"),wxICON_INFORMATION); if (doLogin) { Login(); } } } } else { error = true; } } else { error = true; } } if (error) { LOG_ERROR("GIL/WF", "Error al interpretar los parámetros de la línea de comandos. (" << cadena.ToUTF8() << ") : " << errorMsg ); wxMessageBox( _("Error in interpreting the parameters of the command line. (") + cadena + wxT(") : ") + wxString::FromUTF8(errorMsg.c_str()) ,_("Error"), wxICON_INFORMATION); if (doLogin) { Login(); } return; } if(xmlString != "") { try { GIL::IntegrationModelList listaModelos; GIL::IntegrationController::Instance()->ParsearModeloIntegracion(listaModelos, xmlString, cadena); GIL::IntegrationController::Instance()->Process(listaModelos); } catch (GIL::IntegrationException& ex) { LOG_ERROR("GIL/WF", "Semantic/Sintactic error parsing integration XML: " << ex.GetFullCause()); wxMessageBox(_("Semantic/Sintactic error parsing integration XML (see log for details):\n") + wxString::FromUTF8(ex.GetCause().c_str()),_("Error"),wxICON_INFORMATION); } catch (GIL::HL7::HL7XMLException& ex) { LOG_ERROR("GIL/WF", "Semantic/Sintactic error parsing integration XML: " << ex.GetFullCause()); wxMessageBox(_("Semantic/Sintactic error parsing integration XML (see log for details):\n") + wxString::FromUTF8(ex.GetCause().c_str()),_("Error"),wxICON_INFORMATION); } catch (GIL::HL7::HL7Exception& ex1) { LOG_ERROR("GIL/WF", "Error parsing integration XML: " << ex1.GetCause()); wxMessageBox(_("Error parsing integration XML:\n") + wxString::FromUTF8(ex1.GetCause().c_str()),_("Error"),wxICON_INFORMATION); } catch (GIL::DICOM::PACSException& ex3) { LOG_ERROR("GIL/WF", "PACS error: " << ex3.GetCause()); wxMessageBox(_("PACS error:\n") + wxString::FromUTF8(ex3.GetCause().c_str()),_("Error"),wxICON_INFORMATION); } catch (std::exception& ex4) { LOG_ERROR("GIL/WF", "Error executing WorkFlow: " << ex4.what()); wxMessageBox(_("Error executing WorkFlow\n") + wxString::FromUTF8(ex4.what()),_("Error"),wxICON_INFORMATION); } catch (...) { LOG_ERROR("GIL/WF", "Error executing WorkFlow: Internal error."); wxMessageBox(_("Error executing WorkFlow\nInternal Error"), _("Error"),wxICON_INFORMATION); } if (!m_Iniciada) { if (doLogin) { Login(); } } } else { if (doLogin) { Login(); } } } void VentanaPrincipal::OnSize(wxSizeEvent& WXUNUSED(event)) { Layout(); } void VentanaPrincipal::RefrescarMenus() { //se vacía la barra y se borran los menus que se crearon en la anterior pasada wxWindowDisabler dis; SuperFreeze(); wxMenu* pMenuArchivo = new wxMenu(); wxMenu* pMenuEdicion = new wxMenu(); wxMenu* pMenuVer = new wxMenu(); wxMenu* pMenuSeries = new wxMenu(); wxMenu* pMenuHerramientas = new wxMenu(); wxMenu* pMenuAyuda = new wxMenu(); { //menu archivo wxMenuItem* m_pCerrar = new wxMenuItem( pMenuArchivo, ID_CERRAR, wxString( _("Close") ) + wxT("\tAlt+w"), _("Close current view"), wxITEM_NORMAL ); wxMenuItem* m_pCerrarTodas = new wxMenuItem( pMenuArchivo, ID_CERRAR_TODAS, wxString( _("Close all") ) , _("Close all views"), wxITEM_NORMAL ); wxMenuItem* m_pMenuSalir = new wxMenuItem( pMenuArchivo, ID_SALIR, wxString( _("&Exit") ) + wxT("\tAlt+s"), _("Exit application"), wxITEM_NORMAL ); #ifdef __WXMSW__ m_pCerrar->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoCerrarTab()); m_pMenuSalir->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoSalir()); #else m_pCerrar->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoCerrarTab()); m_pMenuSalir->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoSalir()); #endif InsertToolsFromFamily(pMenuArchivo, GNC::GCS::ITool::TMenuArchivo); if (pMenuArchivo->GetMenuItemCount() > 0) { pMenuArchivo->AppendSeparator(); } pMenuArchivo->Append( m_pCerrar ); pMenuArchivo->Append( m_pCerrarTodas ); pMenuArchivo->AppendSeparator(); pMenuArchivo->Append( m_pMenuSalir ); this->Connect( m_pCerrar->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnMenuCerrarTabClick ) ); this->Connect( m_pCerrar->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( VentanaPrincipal::OnMenuCerrarTabUpdateUI ) ); this->Connect( m_pCerrarTodas->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnMenuCerrarTodosTabsClick ) ); this->Connect( m_pCerrarTodas->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler( VentanaPrincipal::OnMenuCerrarTodosTabsUpdateUI ) ); this->Connect( m_pMenuSalir->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnSalir ) ); //edit InsertToolsFromFamily(pMenuEdicion, GNC::GCS::ITool::TMenuEdicion); //view { wxMenuItem* pPantallaCompleta = new wxMenuItem( pMenuVer, ID_PANTALLA_COMPLETA, wxString(_("Full screen"))+ wxT("\tF11"), _("Show full screen"), wxITEM_NORMAL ); wxMenuItem* pMosaicoRestaurar = new wxMenuItem(pMenuVer, ID_MOSAICO_RESTAURAR, wxString( _("Tab grouping") ), _("Tab grouping"), wxITEM_NORMAL ); #ifdef __WXMSW__ pMosaicoRestaurar->SetBitmaps(GinkgoResourcesManager::MenuTabs::GetIcoReagrupar()); pPantallaCompleta->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoPantallaCompleta()); #else pMosaicoRestaurar->SetBitmap(GinkgoResourcesManager::MenuTabs::GetIcoReagrupar()); pPantallaCompleta->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoPantallaCompleta()); #endif pMenuVer->Append( pPantallaCompleta ); pMenuVer->AppendSeparator(); pMenuVer->Append(pMosaicoRestaurar); //image InsertToolsFromFamily(pMenuVer, GNC::GCS::ITool::TMenuVer); this->Connect( pPantallaCompleta->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnPantallaCompleta ) ); this->Connect( pMosaicoRestaurar->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnMosaicoRestaurar ) ); } //image InsertToolsFromFamily(pMenuSeries, GNC::GCS::ITool::TSeriesMenu); //tools InsertToolsFromFamily(pMenuHerramientas, GNC::GCS::ITool::TMenuHerramientas); //ayuda wxMenuItem* pMenuGNKHelp = new wxMenuItem( pMenuAyuda, ID_ONLINE_MANUAL, wxString( _("Ginkgo CADx manual ...") ), _("Ginkgo CADx manual ..."), wxITEM_NORMAL ); wxMenuItem* m_pMenuOpenTestCard = new wxMenuItem( pMenuAyuda, ID_OPEN_TEST_CARD, wxString( _("Open test card") ), _("Open test card"), wxITEM_NORMAL ); wxMenuItem* m_pMenuCheckUpdates = new wxMenuItem( pMenuAyuda, ID_CHECK_UPDATES, wxString( _("Check for updates") ), _("Check for newest versions"), wxITEM_NORMAL ); wxMenuItem* pMenuOnlineSupport = new wxMenuItem( pMenuAyuda, ID_ONLINE_SUPPORT, wxString( _("Need support ...") ), _("Need support ..."), wxITEM_NORMAL ); wxMenuItem* m_pMenuAcercaDe = new wxMenuItem( pMenuAyuda, ID_ACERCA_DE, _("About") + wxString(wxT(" ")) + wxString::FromUTF8(GNC::Entorno::Instance()->GetApplicationName().c_str()) + wxT(" ...") , _("About ") + wxString::FromUTF8(GNC::Entorno::Instance()->GetApplicationName().c_str()) + wxT(" ...") , wxITEM_NORMAL ); #ifdef __WXMSW__ pMenuGNKHelp->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoHelp()); pMenuOnlineSupport->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoSupport()); #else pMenuGNKHelp->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoHelp()); pMenuOnlineSupport->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoSupport()); #endif pMenuAyuda->Append( pMenuGNKHelp ); pMenuAyuda->AppendSeparator(); pMenuAyuda->Append( pMenuOnlineSupport ); pMenuAyuda->AppendSeparator(); pMenuAyuda->Append( m_pMenuCheckUpdates ); InsertToolsFromFamily(pMenuAyuda, GNC::GCS::ITool::TMenuHelp); pMenuAyuda->AppendSeparator(); pMenuAyuda->Append( m_pMenuOpenTestCard ); pMenuAyuda->AppendSeparator(); pMenuAyuda->Append( m_pMenuAcercaDe ); this->Connect( pMenuGNKHelp->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnOnlineHelp ) ); this->Connect( m_pMenuOpenTestCard->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnOpenTestCard ) ); this->Connect( m_pMenuCheckUpdates->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnCheckForUpdates ) ); this->Connect( m_pMenuAcercaDe->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnAcercaDe ) ); this->Connect( pMenuOnlineSupport->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnOnlineSupport ) ); } //herramientas -> configuracion, envio hl7 y logs if(GNC::GCS::IControladorPermisos::Instance()->Get("core.menu","configuracion")) { if(pMenuHerramientas->GetMenuItemCount() >0) pMenuHerramientas->AppendSeparator(); wxMenuItem* pMenuConfiguracion = NULL; wxMenuItem* pMenuHL7 = NULL; wxMenuItem* pMenuLogs = NULL; //herramientas pMenuConfiguracion = new wxMenuItem( pMenuHerramientas, ID_CONFIGURACION, wxString(_("Settings")) + wxT("\tAlt+c"), _("Settings"), wxITEM_NORMAL ); pMenuHL7 = new wxMenuItem( pMenuHerramientas, ID_CONTROLHL7, wxString(_("HL7 monitor")) + wxT(""), _("HL7 message control"), wxITEM_NORMAL ); pMenuLogs = new wxMenuItem( pMenuHerramientas, ID_CONTROLLOGS, wxString(_("Log monitor")) + wxT("\tAlt+r"), _("Log monitored"), wxITEM_NORMAL ); #ifdef __WXMSW__ pMenuConfiguracion->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoConfiguracion()); #else pMenuConfiguracion->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoConfiguracion()); #endif pMenuHerramientas->Append( pMenuLogs ); pMenuHerramientas->Append( pMenuHL7 ); pMenuHerramientas->AppendSeparator(); pMenuHerramientas->Append( pMenuConfiguracion ); this->Connect( pMenuConfiguracion->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnConfiguracion ) ); this->Connect( pMenuHL7->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnMensajesHL7 ) ); this->Connect( pMenuLogs->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( VentanaPrincipal::OnControlLogs ) ); } //avoid hide bar => flickering!! m_pMenuBar->Freeze(); m_pMenuBar->Append( pMenuArchivo, _("&File") ); while (m_pMenuBar->GetMenuCount() > 1) delete m_pMenuBar->Remove(0); m_pMenuBar->Append( pMenuEdicion, _("&Edit") ); m_pMenuBar->Append( pMenuVer, _("View") ); m_pMenuBar->Append( pMenuSeries, _("Series") ); m_pMenuBar->Append( pMenuHerramientas, _("Tools") ); m_pMenuBar->Append( pMenuAyuda, _("&Help") ); m_pMenuBar->Thaw(); this->SetMenuBar(m_pMenuBar); #ifdef __WXMAC__ wxMenuBar::MacSetCommonMenuBar(m_pMenuBar); #endif SuperThaw(); } void VentanaPrincipal::InsertToolsFromFamily(wxMenu* pParent, GNC::GCS::ITool::TToolFamily family) { //general tools GNC::GCS::IToolsRegistry::Instance()->AppendsToolInMenu(this, pParent, family); GNC::GCS::IVista* pVistaActiva = GNC::GCS::ControladorVistas::Instance()->GetVistaActiva(); if (pVistaActiva == NULL) { return; } GNC::GCS::IToolController* pToolController = pVistaActiva->GetToolController(); pToolController->AppendsToolInMenu(this, pParent, family); } void VentanaPrincipal::CargarHistorial() { GNC::GUI::HistoryPanel3::Instance(); //if unittest... delete current history #if defined(GINKGO_PRO) int argc = GNC::Entorno::Instance()->GetApp()->argc; wxChar** argv = GNC::Entorno::Instance()->GetApp()->argv; for (int i = 1; i < argc; i++) { wxString param(argv[i]); if (param.CmpNoCase(wxT("-unittest")) == 0) { //drop file std::string dirPath = GNC::GCS::HistoryController::GetDefaultDicomDirPath(); LOG_INFO("INITWX", "Removing default dicomdir:" << dirPath); GNC::GCS::IEntorno::Instance()->RemoveDirRecursive(dirPath); LOG_INFO("INITWX", "Default dicomdir removed successfully"); break; } } #endif // if (!GNC::GCS::HistoryController::Instance()->IsOk()) { wxMessageBox(_("Error loading history, Ginkgo CADx will be closed"), _("Error"), wxICON_ERROR|wxOK, this); Close(true); return; } SuperFreeze(); GNC::GUI::HistoryPanel3::Instance()->ReloadCombos(true); GNC::GUI::HistoryPanel3::Instance()->RefreshSearch(true); GNC::GCS::Ptr study(new GNC::GUI::StartUpStudy()); study->Module = NULL; study->ParentWindow = m_pPanelCentral; StartupView = new GNC::GUI::StartUpView(study); m_mgr.AddPane(StartupView->GetWindow(), wxAuiPaneInfo().Name(_("Mosaic")).CenterPane().Layer(0).PaneBorder(true).Movable(false).Floatable(false).Dockable(false).LeftDockable(false).RightDockable(false).TopDockable(false).BottomDockable(false).CloseButton(false)); GNC::GCS::Ptr ptr; GNC::Entorno::Instance()->GetControladorCarga()->CargaAsincrona(StartupView, false); m_mgr.Update(); SuperThaw(); } void VentanaPrincipal::OnComando(EventoProgreso& evento) { switch (evento.GetTipo()) { case EventoProgreso::ComandoIniciado: GNC::CommandController::Instance()->OnComandoLanzado(evento.GetThreadId()); break; case EventoProgreso::ComandoEjecutando: GNC::CommandController::Instance()->OnComandoProgreso(evento.GetThreadId()); break; case EventoProgreso::ComandoFinalizado: GNC::CommandController::Instance()->OnComandoFinalizado(evento.GetThreadId()); break; default: std::cerr << "Error, Tipo de notificacion de comando desconocida." << std::endl; break; } } void VentanaPrincipal::OnNotebookPageChanging(wxAuiNotebookEvent& /*event*/) { /* int old_idx = event.GetOldSelection(); int new_idx = event.GetSelection(); if (old_idx != new_idx && old_idx != -1 && new_idx != -1) { wxWindowDisabler dis; SuperFreeze(); m_pNoteBook->SetSelection(new_idx); SuperThaw(); } event.Skip(false); */ } void VentanaPrincipal::OnNotebookPageChanged(wxAuiNotebookEvent& event) { SuperFreeze(); if (m_pNoteBook->GetPageCount() == 0) { // Se han eliminado todas las paginas ShowStartUp(true); } else { // Se ha cambiado de pagina ShowStartUp(false); GNC::GCS::IVista* v = GNC::GCS::ControladorVistas::Instance()->ObtenerVistaRegistrada(m_pNoteBook->GetPage(event.GetSelection())); if (v != NULL) { GNC::GCS::ControladorVistas::Instance()->SolicitarActivarVista(v); } } SuperThaw(); } void VentanaPrincipal::OnPanelClose(wxAuiManagerEvent& event) { wxWindowDisabler disabler; SuperFreeze(); if(CerrarVista(event.GetPane()->window)) { GNC::GCS::ControladorVistas::Instance()->Destruir(event.GetPane()->window); } SuperThaw(); } void VentanaPrincipal::OnNotebookPageClose(wxAuiNotebookEvent& event) { wxWindowDisabler disabler; SuperFreeze(); if(CerrarVista(m_pNoteBook->GetPage(event.GetSelection()))) { GNC::GCS::ControladorVistas::Instance()->Destruir(m_pNoteBook->GetPage(event.GetSelection())); if (m_pNoteBook->GetPageCount() == 1) { // Se han eliminado todas las paginas //se muestra el mosaico ShowStartUp(true); } } else { event.Veto(); } SuperThaw(); } void VentanaPrincipal::PasarAPrimerPlano(wxWindow* window) { wxWindowDisabler disabler; SuperFreeze(); ReplegarPestanias(); int index = m_pNoteBook->GetPageIndex(window); if(index>0) { m_pNoteBook->SetSelection(index); } //este update es necesario porque pasar a primer plano viene cuando estan en pestanias y cuando estan en grid m_mgr.Update(); SuperThaw(); } void VentanaPrincipal::DestruirPanelVista(wxWindow* panel) { wxAuiNotebook* padreNotebook = dynamic_cast (panel->GetParent()); if(padreNotebook != NULL) { CerrarNotebookPage(panel); } else { GNC::GUI::DetachedDialog* pDialogo = dynamic_cast (panel->GetParent()); if(pDialogo != NULL) { pDialogo->Close(); } } } void VentanaPrincipal::CerrarNotebookPage(wxWindow* panel) { int index = m_pNoteBook->GetPageIndex(panel); if (index < 0 ) { return; } SuperFreeze(); if(CerrarVista(panel)) { m_pNoteBook->DeletePage(index); if (m_pNoteBook->GetPageCount() == 0) { // Se han eliminado todas las paginas //se muestra el mosaico ShowStartUp(true); } m_mgr.Update(); } SuperThaw(); } bool VentanaPrincipal::CerrarVista(GNC::GCS::IVista* pVista) { if (pVista == NULL) return true; //it's important to avoid focus errors if (this->IsIconized()) { this->Restore(); } this->Raise(); wxWindow* pWindow = pVista->GetWindow(); //if it's a tab... int idx = m_pNoteBook->GetPageIndex(pWindow); if(idx >= 0) { unsigned int tabCount = m_pNoteBook->GetPageCount(); //selects the page if (idx >= 0) { if(idx != m_pNoteBook->GetSelection()) { wxWindowDisabler dis; SuperFreeze(); m_pNoteBook->SetSelection(idx); SuperThaw(); } } wxAuiNotebookEvent evt(wxEVT_COMMAND_AUINOTEBOOK_BUTTON, m_pNoteBook->GetSelection()); evt.SetInt(wxAUI_BUTTON_CLOSE); evt.SetId(5380+500); evt.SetEventObject(((wxGinkgoAuiNoteBook*)m_pNoteBook)->GetActiveTabCtrl()); m_pNoteBook->GetEventHandler()->ProcessEvent(evt); return ( tabCount > m_pNoteBook->GetPageCount() ); } else { GNC::GUI::DetachedDialog* pDlg = dynamic_cast(pWindow->GetParent()); if(pDlg != NULL) { bool closed = pDlg->Close(); return closed;; } else { return false; } } } bool VentanaPrincipal::CerrarVista(wxWindow* window) { bool permitido = true; SuperFreeze(); GNC::GCS::ControladorVistas* pcv = GNC::GCS::ControladorVistas::Instance(); if (pcv == NULL) { std::cerr << "Error: No se pudo obtener el controlador de vistas" << std::endl; SuperThaw(); return false; } GNC::GCS::IVista* v = pcv->ObtenerVistaRegistrada(window); if (v != NULL) { if (v->SoportaGuardar() && v->EstaModificada()) { std::string titulo = GNC::GCS::ControladorVistas::Instance()->GetTitulo(v); wxString descr; std::ostringstream os; os << _Std("Would you like to save the changes in the study:") << titulo.c_str() << "?"; PauseSuperFreeze(); int answer = wxMessageBox(wxString::FromUTF8(os.str().c_str()), _("Unsaved data"), wxYES_NO | wxCANCEL, this); ContSuperFreeze(); if (answer == wxCANCEL) { permitido = false; } else if (answer == wxYES) { if (!v->Guardar()) { wxMessageDialog dialog(NULL,_("Errors have occurred when saving the series.\nWould you like to continue closing? "),_("Error saving"),wxYES_NO|wxICON_WARNING); PauseSuperFreeze(); permitido = dialog.ShowModal() == wxID_YES; ContSuperFreeze(); } } } } SuperThaw(); return permitido; } void VentanaPrincipal::OnNotebookCambiarTab(wxAuiNotebookEvent& event) { wxWindowDisabler disabler; SuperFreeze(); if(m_pNoteBook->GetSelection()!=-1) { GNC::GCS::IVista* v = GNC::GCS::ControladorVistas::Instance()->ObtenerVistaRegistrada(m_pNoteBook->GetPage(event.GetSelection())); GNC::GCS::ControladorVistas* pcv = GNC::GCS::ControladorVistas::Instance(); if(v!=NULL && pcv != NULL) { pcv->SolicitarActivarVista(v); } } SuperThaw(); event.Skip(true); } void VentanaPrincipal::OnNotebookMenuTab(wxAuiNotebookEvent& ) { wxMenu* menu = new wxMenu(); //cerrar pestania activa wxMenuItem* pPantallaCompleta = new wxMenuItem( menu, ID_PANTALLA_COMPLETA, wxString(_("Full Screen")) + wxT("\tF11"), _("View Full Screen"), wxITEM_NORMAL ); wxMenu* subMenuPestanias = new wxMenu(); wxMenuItem* pMenuMostrarPrimerPlano = new wxMenuItem(subMenuPestanias, wxID_ANY, _("Tab Regroup"), _("Tab Regroup"), wxITEM_NORMAL ); wxMenuItem* pMenuCerrarActiva = new wxMenuItem(menu, ID_CERRAR, _("&Close"), _("Close"), wxITEM_NORMAL ); wxMenuItem* pMenuCerrarTodas = new wxMenuItem(menu, ID_CERRAR_TODAS, _("&Close all") , _("Close all windows"), wxITEM_NORMAL ); menu->Connect(pMenuMostrarPrimerPlano->GetId(),wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler( VentanaPrincipal::OnMenuPrimerPlanoPestaniaActiva),NULL,this); #ifdef __WXMSW__ pMenuCerrarActiva->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoCerrarTab()); pMenuMostrarPrimerPlano->SetBitmaps(GinkgoResourcesManager::MenuTabs::GetIcoReagrupar()); pPantallaCompleta->SetBitmaps(GinkgoResourcesManager::MenuIcons::GetIcoPantallaCompleta()); #else pMenuCerrarActiva->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoCerrarTab()); pMenuMostrarPrimerPlano->SetBitmap(GinkgoResourcesManager::MenuTabs::GetIcoReagrupar()); pPantallaCompleta->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoPantallaCompleta()); #endif menu->Append( pPantallaCompleta ); menu->AppendSeparator(); subMenuPestanias->Append(pMenuMostrarPrimerPlano); subMenuPestanias->AppendSeparator(); menu->AppendSubMenu(subMenuPestanias,_("Tabbed organization")); menu->AppendSeparator(); menu->Append(pMenuCerrarActiva); menu->Append(pMenuCerrarTodas); m_pNoteBook->PopupMenu(menu); delete menu; } void VentanaPrincipal::OnNotebookFocus(wxChildFocusEvent&) { } //region "eventos ginkgo" void VentanaPrincipal::ProcesarEvento(GNC::GCS::Events::IEvent *pEvt) { LOG_ERROR("Core", "Currently the check for update event is disabled"); } //endregion //------------------------------------------------------------------------------ //region "IExtensionsObserver realization" void VentanaPrincipal::OnModuleLoaded(GNC::GCS::IModuleController* ) { //GTRACE("VentanaPrincipal::OnModuloCargado(" << pCM->GetNombre().c_str() << ")"); RefrescarMenus(); GNC::GUI::HistoryPanel3::Instance()->ReloadToolBar(); } void VentanaPrincipal::OnModuleUnloaded(GNC::GCS::IModuleController* ) { //GTRACE("VentanaPrincipal::OnModuloDescargado(" << pCM->GetNombre().c_str() << ")"); } void VentanaPrincipal::OnModuleActivated(GNC::GCS::IModuleController* /*pCM*/) { /* if (pCM != NULL) { GTRACE("VentanaPrincipal::OnModuloActivado(" << pCM->GetNombre().c_str() << ")"); } else { GTRACE("VentanaPrincipal::OnModuloActivado(" << pCM->GetNombre().c_str() << ")"); } */ } void VentanaPrincipal::OnModuleDeactivated(GNC::GCS::IModuleController* ) { //GTRACE("VentanaPrincipal::OnModuloDeactivado(" << pCM->GetNombre().c_str() << ")"); } //endregion //------------------------------------------------------------------------------ //region "IExtensionsObserver realization" void VentanaPrincipal::OnVistaActivada(GNC::GCS::IVista* pVista) { #if defined (_WINDOWS) wxWindowDisabler dis; #endif if (pVista != NULL) { ForzarCambioVista(pVista); } RefrescarMenus(); } //endregion //region "helpers" void VentanaPrincipal::SuperFreeze() { if (m_SuperFreezeCount <= 0) { GTRACE("SuperFreeze Locked"); if (m_SuperFreezeCount < 0) { m_SuperFreezeCount = 0; std::cerr << "Error: Estado de bloqueo inconsistente." << std::endl; } /*Freeze(); m_pPanelActualizacion->Freeze(); m_pPanelCentral->Freeze(); m_pNoteBook->Freeze(); m_pMenuBar->Freeze(); */ } m_SuperFreezeCount++; } void VentanaPrincipal::SuperThaw() { m_SuperFreezeCount--; if (m_SuperFreezeCount <= 0) { GTRACE("SuperFreeze Released"); if (m_SuperFreezeCount < 0) { m_SuperFreezeCount = 0; std::cerr << "Error: Estado de bloqueo inconsistente." << std::endl; } /*m_pMenuBar->Thaw(); m_pNoteBook->Thaw(); m_pPanelCentral->Thaw(); m_pPanelActualizacion->Thaw(); Thaw();*/ } } void VentanaPrincipal::PauseSuperFreeze() { if (m_SuperFreezeCount > 0) { GTRACE("SuperFreeze Paused"); /*m_pMenuBar->Thaw(); m_pNoteBook->Thaw(); m_pPanelCentral->Thaw(); m_pPanelActualizacion->Thaw(); Thaw();*/ } } void VentanaPrincipal::ContSuperFreeze() { if (m_SuperFreezeCount > 0) { GTRACE("SuperFreeze Resumed"); /* Freeze(); m_pPanelCentral->Freeze(); m_pPanelActualizacion->Freeze(); m_pNoteBook->Freeze(); m_pMenuBar->Freeze();*/ } } //endregion //region "login e inicializacion" void VentanaPrincipal::Login() { if (GSEC::Auth::ControladorAutenticacion::Instance()->GetTipoAutenticacion() != GSEC::Auth::TA_NO_LOGIN) { try { GNC::GUI::DialogoLogin dlg(NULL); if (dlg.ShowModal() == wxID_OK) { MostrarVentana(); } else { Close(); } } catch (...) { LOG_ERROR("Core/Auth", "Error interno al autenticar"); wxMessageBox(_("Internal error during auth process"), _("Internal error"), wxICON_ERROR); Close(); } } else { MostrarVentana(); } } void VentanaPrincipal::MostrarVentana() { if (m_Iniciada) { Show(true); return; } m_Iniciada = true; try { //HL7 Service init if (GNC::GCS::IControladorPermisos::Instance()->Get("core.hl7", "autostart")) { GIL::HL7::ControladorEnvioHl7::Arrancar(); } } catch(...) { LOG_ERROR("Core/Init", "Error starting HL7 service"); } wxWindowDisabler dis; GNC::GCS::ControladorEventos::Instance()->Registrar(this, GNC::GCS::Events::EventoUpdateAvailable() ); std::ostringstream os; os << GNC::Entorno::Instance()->GetApplicationName() << " " << GNC::Entorno::Instance()->GetGinkgoCopyRight(); SetStatusText(wxString::FromUTF8(os.str().c_str())); //Center(); #if !defined(_GINKGO_DEBUG) /////////////////ATENCION!!!! esto es porque sino en windows no va bien, se desvincula la status bar #ifdef _WIN32 Show(true); Maximize(true); #else Show(true); #endif #else Show(true); #endif SetFocus(); // ComprobarActualizaciones(); } //endregion //region "Getters y Setters de elementos de la interfaz" wxAuiNotebook* VentanaPrincipal::GetAUINoteBook() { return m_pNoteBook; } //endregion ginkgocadx-3.8.7/cadxcore/main/gui/mainwindow/ventanaprincipal.h000066400000000000000000000234651314736454600250610ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "ventanaprincipalbase.h" #include #include #include #include #include #include #include #include #include namespace GNC { namespace GUI { class PanelGrid; } namespace GCS { class IEntorno; } } class wxWindowDisabler; class wxScrolledWindow; class wxStaticBitmap; class wxBitmapButton; const wxEventType wxEVT_PROGRESO = wxNewEventType(); extern const wxEventType wxEVT_PROGRESO; //DEFINE_EVENT_TYPE(wxEVT_PROGRESO) /*BEGIN_DECLARE_EVENT_TYPES() DECLARE_EVENT_TYPE( wxEVT_PROGRESO, wxNewEventType() ) END_DECLARE_EVENT_TYPES() */ class EventoProgreso : public wxEvent { public: typedef enum { ComandoIniciado = 0, ComandoEjecutando, ComandoFinalizado, Invalido } TipoProgreso; EventoProgreso(TipoProgreso tipo = Invalido, long threadId = 0); EventoProgreso(const EventoProgreso& event); ~EventoProgreso(); long GetTipo() const { return m_Tipo; } long GetThreadId() const { return m_ThreadId; } virtual wxEvent *Clone() const; protected: TipoProgreso m_Tipo; long m_ThreadId; private: DECLARE_DYNAMIC_CLASS_NO_ASSIGN(EventoProgreso) }; typedef void (wxEvtHandler::*EventoProgresoFunction)(EventoProgreso&); #define EventoProgresoFunctionHandler(func) \ (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(EventoProgresoFunction, &func) #define EVT_PROGRESO(func) \ wx__DECLARE_EVT0(wxEVT_PROGRESO, EventoProgresoFunctionHandler(func)) class EXTAPI VentanaPrincipal : public VentanaPrincipalBase, public GNC::GCS::IExtensionsObserver, public GNC::GCS::IObservadorVistas, public GNC::GCS::IEventsObserver { public: /* Constructor */ VentanaPrincipal(wxWindow* pParent, const wxString& title); /* Destructor */ ~VentanaPrincipal(); /*cambia de pestaña*/ void ForzarCambioVista(GNC::GCS::IVista* pVista); protected: //region "Helpers" public: void RefrescarMenus(); void CargarHistorial(); //endregion //region "Eventos de actualizaciones" protected: std::string m_VersionNueva; // Cadena con la version nueva para mostrar en mensajes y notificaciones (Ej: "1.5.0 beta") std::string m_VersionCheck; // Cadena con la version nueva con secuencia build para fichar version y poder ignorarla. (Ej: "1.5.0.0", que podria ser 1.5.0 beta | "1.5.0.1" que podria ser 1.5.0 final) bool m_VersionChecked; public: void ComprobarActualizaciones(); virtual void OnDoNotWarnAgainClicked( wxCommandEvent& event ); virtual void OnVersionNotifierClose( wxCommandEvent& event ); //endregion //region "Eventos de menu" public: /* Evento de cerrar aplicacion (evitable) */ void OnWindowClose(wxCloseEvent& event); /* Evento de salir de la aplicacion */ virtual void OnSalir(wxCommandEvent& event); /* Evento de lanzamiento de ventana "Acerca De" */ virtual void OnAcercaDe(wxCommandEvent& event); /* Evento de lanzamiento de ventana "Online Help" */ virtual void OnOnlineHelp(wxCommandEvent& event); /* Evento de lanzamiento de ventana "Online support" */ virtual void OnOnlineSupport(wxCommandEvent& event); /* Open test card */ virtual void OnOpenTestCard(wxCommandEvent& event); /* Evento de lanzamiento de la comprobacion de actualizaciones */ virtual void OnCheckForUpdates(wxCommandEvent& event); #ifdef __WXMAC__ void MacOpenFile(const wxString &fileName); #endif /* Evento de configuracion */ virtual void OnConfiguracion(wxCommandEvent& event); /*Evento de ventana de control de envio HL7*/ virtual void OnMensajesHL7(wxCommandEvent& event); /*Evento de ventana de control de registros (Logs)*/ virtual void OnControlLogs(wxCommandEvent& event); /* Evento de aplicacion de herramientas*/ virtual void OnAplicarHerramienta(wxCommandEvent& event); virtual void OnUpdateUIHerramienta(wxUpdateUIEvent& event); virtual void InsertToolsFromFamily(wxMenu* pParent, GNC::GCS::ITool::TToolFamily family); /* Eventos de teclado */ virtual void OnKeyDown(wxKeyEvent& event); /*menu sobre pestanias*/ void OnMenuCerrarTabClick(wxCommandEvent& event); void OnMenuCerrarTodoExceptoActiva(wxCommandEvent& event); void OnMenuCerrarTodosTabsClick(wxCommandEvent& event); //devuelve bool si ha cerrado todos bool CerrarTodosLosTabsYPanelGrids(); //closes all undocked windows bool ClosesAllUndocked(); void OnMenuCerrarTabUpdateUI(wxUpdateUIEvent& event); void OnMenuCerrarTodosTabsUpdateUI(wxUpdateUIEvent& event); void OnMenuPrimerPlanoPestaniaActiva(wxCommandEvent& event); /*Eventos de vista*/ void OnPantallaCompleta(wxCommandEvent& event); wxWindow* GetRootWindow(); /*reorganizacion de pestañas*/ //toggle entre enc void ShowStartUp(bool show); void EncajarDesencajar(GNC::GCS::IVista* pVista); void OnMosaicoRestaurar(wxCommandEvent& event); void ReplegarPestanias(); //endregion public: //region "Eventos de ventana" /*evento que se ejecuta cuando se activa la app sirve para parsear los parametros*/ void OnInicioAplicacion(wxCommandEvent& event); void EjecutarParametro(const wxString cadena, bool doLogin = false); /* Cambio de tamaño de la ventana */ void OnSize(wxSizeEvent& event); //endregion //region "Eventos del control de pestañas" void OnPanelClose(wxAuiManagerEvent& event); public: bool CerrarVista(GNC::GCS::IVista* pVista); bool CerrarVista(wxWindow* window); void PasarAPrimerPlano(wxWindow* window); protected: void OnNotebookPageChanging(wxAuiNotebookEvent& event); void OnNotebookPageChanged(wxAuiNotebookEvent& event); void OnNotebookPageClose(wxAuiNotebookEvent& event); void OnNotebookCambiarTab(wxAuiNotebookEvent& event); void OnNotebookMenuTab(wxAuiNotebookEvent& event); void OnNotebookFocus(wxChildFocusEvent& event); public: void DestruirPanelVista(wxWindow* panel); protected: void CerrarNotebookPage(wxWindow* panel); //endregion //region "eventos ginkgo" protected: void ProcesarEvento(GNC::GCS::Events::IEvent *evt); //endregion //endregion //region "Puntos de entrada al hilo principal de la interfaz para controlar comandos" void OnComando(EventoProgreso& event); //endregion //region "Punto de entrada al controlador de eventos" void OnEvento(wxCommandEvent& event); //endregion public: /* Inserta una ventana en el notebook o grid */ void InsertarVentana(wxWindow* pVista); /* Elimina una vista del notebook o grid */ void EliminarVentana(wxWindow* pVentana); //region "Getters y Setters de elementos de la interfaz" public: wxAuiNotebook* GetAUINoteBook(); public: //------------------------------------------------------------------------------ //region "IExtensionsObserver realization" /** The module is loaded **/ virtual void OnModuleLoaded(GNC::GCS::IModuleController* pMC); /** The module is unloaded **/ virtual void OnModuleUnloaded(GNC::GCS::IModuleController* pMC); /** The module is activated **/ virtual void OnModuleActivated(GNC::GCS::IModuleController* pMC); /** The module is deactivated **/ virtual void OnModuleDeactivated(GNC::GCS::IModuleController* pMC); //endregion //region "Realización de la interfaz IObservadorVistas" virtual void OnVistaActivada(GNC::GCS::IVista* pVista); //endregion wxAuiManager m_mgr; wxAuiNotebook* m_pNoteBook; GNC::GCS::IVista* StartupView; //region "helpers" void SuperFreeze(); void SuperThaw(); void PauseSuperFreeze(); void ContSuperFreeze(); protected: int m_SuperFreezeCount; wxWindowDisabler* disabler; // Implementación similar a freeze/thaw pero a nivel de eventos y no respecto a responsabilidad de widgets. //endregion //region "login e inicializacion" public: void Login(); void MostrarVentana(); //endregion protected: wxMenu* m_pMenuModulo; // Variable que controla la coherencia de confirmación entre cerrado de la aplicacion y cerrado de tabs para // no informar varias veces de lo mismo. bool m_TratandoDeCerrar; wxMenuBar* m_pMenuBar; DECLARE_EVENT_TABLE() //friend class GNC::GCS::ControladorVistas; bool m_Iniciada; }; /* Acciones de Menus */ enum { ID_Inicio_Aplicacion = 99 }; ginkgocadx-3.8.7/cadxcore/main/gui/mainwindow/ventanaprincipalbase.cpp000066400000000000000000000236721314736454600262470ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "ventanaprincipalbase.h" /////////////////////////////////////////////////////////////////////////// VentanaPrincipalBase::VentanaPrincipalBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 800,600 ), wxDefaultSize ); m_pMainSizer = new wxBoxSizer( wxVERTICAL ); m_pPanelActualizacion = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelActualizacion->SetBackgroundColour( wxColour( 210, 210, 0 ) ); m_pPanelActualizacion->Hide(); wxBoxSizer* bSizer18; bSizer18 = new wxBoxSizer( wxVERTICAL ); m_pPanelActualizacionInterno = new wxPanel( m_pPanelActualizacion, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelActualizacionInterno->SetBackgroundColour( wxColour( 255, 255, 225 ) ); m_pPanelActualizacionInterno->SetToolTip( _("New Update") ); wxBoxSizer* bSizer17; bSizer17 = new wxBoxSizer( wxHORIZONTAL ); bSizer17->Add( 0, 0, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); m_pPanelActualizacionInterno->SetSizer( bSizer17 ); m_pPanelActualizacionInterno->Layout(); bSizer17->Fit( m_pPanelActualizacionInterno ); bSizer18->Add( m_pPanelActualizacionInterno, 0, wxEXPAND, 2 ); m_pPanelActualizacion->SetSizer( bSizer18 ); m_pPanelActualizacion->Layout(); bSizer18->Fit( m_pPanelActualizacion ); m_pMainSizer->Add( m_pPanelActualizacion, 0, wxEXPAND, 0 ); m_pSizerCentral = new wxBoxSizer( wxHORIZONTAL ); m_pPanelCentral = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelCentral->SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_WINDOW ) ); m_pSizerCentral->Add( m_pPanelCentral, 1, wxEXPAND, 1 ); m_pMainSizer->Add( m_pSizerCentral, 1, wxEXPAND, 5 ); this->SetSizer( m_pMainSizer ); this->Layout(); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaPrincipalBase::OnKeydown ) ); } VentanaPrincipalBase::~VentanaPrincipalBase() { // Disconnect Events this->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( VentanaPrincipalBase::OnKeydown ) ); } DialogoComandosEnEjecucionBase::DialogoComandosEnEjecucionBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 510,230 ), wxDefaultSize ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxVERTICAL ); m_panel10 = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_panel11 = new TitledPanelSinBorder( m_panel10, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_panel11->SetToolTip( _("The following commands will be aborted if you close the application") ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxVERTICAL ); m_pListacomandos = new wxListBox( m_panel11, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); bSizer16->Add( m_pListacomandos, 1, wxEXPAND, 5 ); m_panel11->SetSizer( bSizer16 ); m_panel11->Layout(); bSizer16->Fit( m_panel11 ); bSizer15->Add( m_panel11, 1, wxEXPAND, 5 ); m_panel10->SetSizer( bSizer15 ); m_panel10->Layout(); bSizer15->Fit( m_panel10 ); bSizer3->Add( m_panel10, 1, wxEXPAND, 5 ); m_panel9 = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxHORIZONTAL ); bSizer4->Add( 0, 0, 1, wxEXPAND, 5 ); m_button1 = new wxButton( m_panel9, wxID_OK, _("Close Ginkgo CADx"), wxDefaultPosition, wxDefaultSize, 0 ); m_button1->SetToolTip( _("Closes the application and aborts pending commands") ); bSizer4->Add( m_button1, 0, wxRIGHT, 5 ); m_button2 = new wxButton( m_panel9, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); m_button2->SetDefault(); m_button2->SetToolTip( _("Do not close the application and keep commands running") ); bSizer4->Add( m_button2, 0, wxLEFT, 5 ); m_panel9->SetSizer( bSizer4 ); m_panel9->Layout(); bSizer4->Fit( m_panel9 ); bSizer3->Add( m_panel9, 0, wxEXPAND, 5 ); this->SetSizer( bSizer3 ); this->Layout(); bSizer3->Fit( this ); this->Centre( wxBOTH ); } DialogoComandosEnEjecucionBase::~DialogoComandosEnEjecucionBase() { } DetachedDialogBase::DetachedDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 600,400 ), wxDefaultSize ); this->SetBackgroundColour( wxColour( 0, 0, 0 ) ); wxBoxSizer* bSizer8; bSizer8 = new wxBoxSizer( wxVERTICAL ); this->SetSizer( bSizer8 ); this->Layout(); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DetachedDialogBase::OnCloseDialogo ) ); } DetachedDialogBase::~DetachedDialogBase() { // Disconnect Events this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DetachedDialogBase::OnCloseDialogo ) ); } DialogoLoginBase::DialogoLoginBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 500,270 ), wxDefaultSize ); wxBoxSizer* m_pMainSizer; m_pMainSizer = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("User login") ); m_pMainSizer->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer141; bSizer141 = new wxBoxSizer( wxVERTICAL ); m_pFormPanel = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pFormPanel->SetToolTip( _("System authentication") ); wxBoxSizer* bSizer19; bSizer19 = new wxBoxSizer( wxVERTICAL ); bSizer19->Add( 0, 0, 1, wxEXPAND, 5 ); wxFlexGridSizer* m_pFormSizer; m_pFormSizer = new wxFlexGridSizer( 2, 2, 0, 0 ); m_pFormSizer->AddGrowableCol( 1 ); m_pFormSizer->SetFlexibleDirection( wxBOTH ); m_pFormSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_pLabelUser = new wxStaticText( m_pFormPanel, wxID_ANY, _("User name"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabelUser->Wrap( -1 ); m_pFormSizer->Add( m_pLabelUser, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT|wxBOTTOM|wxRIGHT, 5 ); m_pTCUsuario = new wxTextCtrl( m_pFormPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pTCUsuario->SetMaxLength( 0 ); m_pFormSizer->Add( m_pTCUsuario, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxBOTTOM|wxLEFT, 5 ); m_staticText3 = new wxStaticText( m_pFormPanel, wxID_ANY, _("Password"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText3->Wrap( -1 ); m_pFormSizer->Add( m_staticText3, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT, 5 ); m_pTCPassword = new wxTextCtrl( m_pFormPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD ); m_pTCPassword->SetMaxLength( 0 ); m_pFormSizer->Add( m_pTCPassword, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxTOP|wxLEFT, 5 ); bSizer19->Add( m_pFormSizer, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); bSizer19->Add( 0, 0, 1, wxEXPAND, 5 ); m_pFormPanel->SetSizer( bSizer19 ); m_pFormPanel->Layout(); bSizer19->Fit( m_pFormPanel ); bSizer141->Add( m_pFormPanel, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer141 ); m_pBody->Layout(); bSizer141->Fit( m_pBody ); m_pMainSizer->Add( m_pBody, 1, wxEXPAND, 5 ); m_panel6 = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer14; bSizer14 = new wxBoxSizer( wxHORIZONTAL ); m_pBotonCancelar = new wxButton( m_panel6, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer14->Add( m_pBotonCancelar, 0, wxALIGN_CENTER_VERTICAL, 0 ); bSizer14->Add( 0, 0, 1, 0, 0 ); m_pButtonLogin = new wxButton( m_panel6, wxID_OK, _("Login"), wxDefaultPosition, wxDefaultSize, 0 ); m_pButtonLogin->SetDefault(); bSizer14->Add( m_pButtonLogin, 0, 0, 0 ); m_panel6->SetSizer( bSizer14 ); m_panel6->Layout(); bSizer14->Fit( m_panel6 ); m_pMainSizer->Add( m_panel6, 0, wxEXPAND, 5 ); this->SetSizer( m_pMainSizer ); this->Layout(); m_pMainSizer->Fit( this ); this->Centre( wxBOTH ); // Connect Events m_pButtonLogin->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoLoginBase::OnLogin ), NULL, this ); } DialogoLoginBase::~DialogoLoginBase() { // Disconnect Events m_pButtonLogin->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoLoginBase::OnLogin ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/mainwindow/ventanaprincipalbase.h000066400000000000000000000112441314736454600257040ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __VENTANAPRINCIPALBASE_H__ #define __VENTANAPRINCIPALBASE_H__ #include #include #include class BodyPanel; class FooterPanel; class HeaderPanel; class TitledPanel; class TitledPanelSinBorder; #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /// Class VentanaPrincipalBase /////////////////////////////////////////////////////////////////////////////// class VentanaPrincipalBase : public wxFrame { private: protected: wxBoxSizer* m_pMainSizer; wxPanel* m_pPanelActualizacion; wxPanel* m_pPanelActualizacionInterno; //wxHyperlinkCtrl* m_pHipervinculoActualizacion; wxBoxSizer* m_pSizerCentral; wxPanel* m_pPanelCentral; // Virtual event handlers, overide them in your derived class virtual void OnKeydown( wxKeyEvent& event ) { event.Skip(); } virtual void OnVersionNotifierClose( wxCommandEvent& event ) { event.Skip(); } public: VentanaPrincipalBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 800,600 ), long style = wxDEFAULT_FRAME_STYLE ); ~VentanaPrincipalBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DialogoComandosEnEjecucionBase /////////////////////////////////////////////////////////////////////////////// class DialogoComandosEnEjecucionBase : public wxDialog { private: protected: BodyPanel* m_panel10; TitledPanelSinBorder* m_panel11; wxListBox* m_pListacomandos; FooterPanel* m_panel9; wxButton* m_button1; wxButton* m_button2; public: DialogoComandosEnEjecucionBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Closing Ginkgo CADx"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~DialogoComandosEnEjecucionBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DetachedDialogBase /////////////////////////////////////////////////////////////////////////////// class DetachedDialogBase : public wxFrame { private: protected: // Virtual event handlers, overide them in your derived class virtual void OnCloseDialogo( wxCloseEvent& event ) { event.Skip(); } public: DetachedDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 600,400 ), long style = wxCAPTION|wxCLOSE_BOX|wxFRAME_FLOAT_ON_PARENT|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLIP_CHILDREN|wxTAB_TRAVERSAL ); ~DetachedDialogBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class DialogoLoginBase /////////////////////////////////////////////////////////////////////////////// class DialogoLoginBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; TitledPanel* m_pFormPanel; wxStaticText* m_pLabelUser; wxTextCtrl* m_pTCUsuario; wxStaticText* m_staticText3; wxTextCtrl* m_pTCPassword; FooterPanel* m_panel6; wxButton* m_pBotonCancelar; wxButton* m_pButtonLogin; // Virtual event handlers, overide them in your derived class virtual void OnLogin( wxCommandEvent& event ) { event.Skip(); } public: DialogoLoginBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("User login"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxSTAY_ON_TOP ); ~DialogoLoginBase(); }; #endif //__VENTANAPRINCIPALBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/open/000077500000000000000000000000001314736454600201255ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/open/OpenDialogs.fbp000066400000000000000000004211451314736454600230310ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect opendialogsbase 1000 none 1 OpenDialogs . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 880,521 DialogoDicomDirBase -1,-1 wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Acquire from DICOM Dir bSizer15 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pHeader 1 protected 1 Resizable 1 HeaderPanel; wx/ginkgostyle/ginkgostyle.h 0 Acquire from DICOM Dir wxTAB_TRAVERSAL 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 wxDataViewCtrl 1 m_pResultsView = new wxDataViewCtrl(m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_MULTIPLE|wxDV_ROW_LINES); 1 wxDataViewCtrl* m_pResultsView; 0 Dock 0 Left 1 1 0 0 wxID_ANY #include <wx/dataview.h> 0 0 1 m_pResultsView 1 protected 1 Resizable 1 0 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer16 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Copy 0 0 1 m_button4 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCopyClick 5 wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Link 0 0 1 m_button13 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnLinkClick 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button5 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 380,220 SelectDriveBase -1,-1 wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Select drive bSizer15 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelMessage 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Select drive wxTAB_TRAVERSAL bSizer4 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pLabel 1 protected 1 Resizable 1 0 -1 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pUnits 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer16 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Ok 0 0 1 m_button4 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnEndClick 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button5 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 380,220 CopyOrLinkBase wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Copy or link bSizer15 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelMessage 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Copy or link wxTAB_TRAVERSAL bSizer4 wxVERTICAL none 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Do you want to copy or link files? 0 0 1 m_pLabel 1 protected 1 Resizable 1 0 -1 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer16 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Copy 0 0 1 m_button4 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnCopy 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_ANY Link 0 0 1 m_button5 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator OnLink ginkgocadx-3.8.7/cadxcore/main/gui/open/abrir.cpp000066400000000000000000000165761314736454600217470ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include "abrir.h" #include "opendialogs.h" #include
    #include
    #include
    #include
    #include
    #include #include #include #include
    namespace GNC { namespace GUI { Abrir::Abrir() { } Abrir::~Abrir() { } void Abrir::AbrirFichero(wxWindow* pParent, const std::list* directLoads) { LOG_STAT(ANON_STAT_OPEN_FILE) bool success = false; std::list listaPaths; wxString guiDir; if (directLoads != NULL) { listaPaths = (*directLoads); success = !listaPaths.empty(); } else { std::string pathDefectoStd; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Adquisicion", "PathDefecto", pathDefectoStd); wxString defPathWx = wxString::FromUTF8(pathDefectoStd.c_str()); if(!wxDirExists(defPathWx)) { defPathWx = wxEmptyString; } //se muestra un dialogo de abrir fichero, si abre un fichero mira a ver si es dicomdir, si abre un directorio lo explora en profundidad #if defined(_WINDOWS) wxFileDialog fileDialog(pParent,_("Open..."),defPathWx,wxEmptyString,wxT("*.*"), wxFD_OPEN | wxFD_MULTIPLE); #else wxFileDialog fileDialog(pParent,_("Open..."),defPathWx,wxEmptyString,wxT("*"), wxFD_OPEN | wxFD_MULTIPLE); #endif fileDialog.SetDirectory(defPathWx); success = (fileDialog.ShowModal() == wxID_OK); if (success) { guiDir = fileDialog.GetDirectory(); wxArrayString ficherosWx; fileDialog.GetFilenames(ficherosWx); for(wxArrayString::iterator it = ficherosWx.begin(); it != ficherosWx.end(); ++it) { wxString wxPath = fileDialog.GetDirectory() + wxFileName::GetPathSeparator() + (*it); listaPaths.push_back(std::string(TOPATH(wxPath))); } } } if (success) { //si alguno de los ficheros es un dicomdir se pasa a tratarlos de una forma especial, si son ficheros normales, se lanza el comando bool esDicomDir = false; if (listaPaths.size() == 1 && GIL::DICOM::PACSController::Instance()->EsDICOM(listaPaths.front(),true,false)) { esDicomDir = true; } if (!esDicomDir) { CopyOrLink colDialog(pParent); if (colDialog.ShowModal() == wxID_OK) { GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = NULL; if (colDialog.HasSelectedCopy()) { pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(listaPaths, false, GNC::GCS::IHistoryController::TAA_COPY); } else { pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(listaPaths, false, GNC::GCS::IHistoryController::TAA_LINK); } GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync(_Std("Storing in the history..."),pCmd, NULL); } } else { //dialogo de adquisicion a traves de dicomdir... DialogoDicomDir dicomDirDialog(pParent,listaPaths.front()); dicomDirDialog.ShowModal(); } if (!guiDir.IsEmpty()) { //se actualiza el fichero de configuracion GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Adquisicion", "PathDefecto", std::string(guiDir.ToUTF8())); GNC::GCS::ConfigurationController::Instance()->Flush(); } } } //abrir directorio void Abrir::AbrirDirectorio(wxWindow* pParent) { LOG_STAT(ANON_STAT_OPEN_FOLDER) std::string defPath; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/Adquisicion", "PathDefecto", defPath); wxString pathDefecto = wxString::FromUTF8(defPath.c_str()); if(!wxDirExists(pathDefecto)) { pathDefecto = wxEmptyString; } wxDirDialog dd( pParent, _("Choose a directory"), pathDefecto, 0, wxDefaultPosition ); int response = dd.ShowModal(); if (response == wxID_OK) { std::string stdPath(TOPATH(dd.GetPath())); //se lanza el comando de incluir en el historial CopyOrLink colDialog(pParent); if (colDialog.ShowModal() == wxID_OK) { GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = NULL; if (colDialog.HasSelectedCopy()) { pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(stdPath,true, GNC::GCS::IHistoryController::TAA_COPY); } else { pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(stdPath,true, GNC::GCS::IHistoryController::TAA_LINK); } GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync(_Std("Storing in the history..."),pCmd, NULL); } //se actualiza el fichero de configuracion GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/Adquisicion", "PathDefecto", std::string(dd.GetPath().ToUTF8())); GNC::GCS::ConfigurationController::Instance()->Flush(); } } } } ginkgocadx-3.8.7/cadxcore/main/gui/open/abrir.h000066400000000000000000000021301314736454600213710ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include
    namespace GNC { namespace GUI { class Abrir { public: Abrir(); ~Abrir(); static void AbrirFichero(wxWindow* pParent, const std::list* directLoads = NULL); static void AbrirDirectorio(wxWindow* pParent); protected: }; } } ginkgocadx-3.8.7/cadxcore/main/gui/open/dicomdirtablemodel.cpp000066400000000000000000000242511314736454600244600ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "dicomdirtablemodel.h" #include
    #include #include #include #include
    #define SIZE_ICONOS 16 ///////////////////////////// GNC::GUI::DicomDirTableModel::DicomDirTableModel() { } GNC::GUI::DicomDirTableModel::~DicomDirTableModel() { } unsigned int GNC::GUI::DicomDirTableModel::GetColumnCount() const { return COL_DICOM_DIR_MAX; } wxString GNC::GUI::DicomDirTableModel::GetColumnType( unsigned int/* col*/ ) const { return wxT("string"); } void GNC::GUI::DicomDirTableModel::GetValue( wxVariant &variant, const wxDataViewItem &item, unsigned int col ) const { if (!item.IsOk()) { return; } //if it's a study... const IModeloEstudio* pNode = (const IModeloEstudio*)(item.GetID()); switch (col) { case COL_CHECK: { if (checkedStudies.find(pNode) == checkedStudies.end()) { variant = true; } else { variant = (*checkedStudies.find(pNode)).second; } } return; case COL_PATIENT_NAME: variant = wxString::FromUTF8(pNode->GetPatient()->GetNombre().c_str()); break; case COL_PATIENT_ID: variant = wxString::FromUTF8(pNode->GetPatient()->GetUID().c_str()); break; case COL_MODALITY: { if (pNode->GetModalidad().empty()) { //get modalities from series.. std::ostringstream ostr; std::set distinctModalities; for (IModeloEstudio::ListaSeriesType::const_iterator itSeries = pNode->ListaSeries().begin(); itSeries != pNode->ListaSeries().end(); ++itSeries) { distinctModalities.insert((*itSeries).GetTipo()); } for (std::set::iterator it = distinctModalities.begin(); it != distinctModalities.end(); ++it) { if(it != distinctModalities.begin()) { ostr << "/"; } ostr << *it; } variant = wxString::FromUTF8(ostr.str().c_str()); } else { variant = wxString::FromUTF8(pNode->GetModalidad().c_str()); } } break; case COL_DESCRIPTION: variant = wxString::FromUTF8(pNode->GetDescripcion().c_str()); break; case COL_DATE_TIME: { std::ostringstream ostr; ostr << pNode->GetFecha() << pNode->GetHora(); wxDateTime studyDateTime; studyDateTime.ParseFormat(wxString::FromUTF8( ostr.str().c_str() ).GetData(), wxT("%Y%m%d%H%M%S"), wxDefaultDateTime); if(studyDateTime.IsValid()) { variant = wxString(studyDateTime.Format(_("%m/%d/%Y %H:%M:%S"), wxDateTime::TimeZone(wxDateTime::GMT1))); } else { variant = _("00/00/0000 00:00:00"); } } break; case COL_ACCNUMBER: variant = wxString::FromUTF8(pNode->GetAccNumber().c_str()); break; default: LOG_ERROR("DicomDirTableModel", "wrong column id " << col); break; } } bool GNC::GUI::DicomDirTableModel::SetValue( const wxVariant &variant,const wxDataViewItem &item, unsigned int col ) { //model cant be modified... if (!item.IsOk() || col != COL_CHECK) { return false; } const IModeloEstudio* pNode = (const IModeloEstudio*)(item.GetID()); checkedStudies[pNode] = variant.GetBool(); return true; } bool GNC::GUI::DicomDirTableModel::IsEnabled( const wxDataViewItem &/*item*/, unsigned int/* col*/ ) const { return true; } wxDataViewItem GNC::GUI::DicomDirTableModel::GetParent( const wxDataViewItem &/*item*/ ) const { return wxDataViewItem(0); } bool GNC::GUI::DicomDirTableModel::IsContainer( const wxDataViewItem &item ) const { return !item.IsOk(); } bool GNC::GUI::DicomDirTableModel::HasContainerColumns (const wxDataViewItem &/*item*/) const { return true; } bool GNC::GUI::DicomDirTableModel::HasValue (const wxDataViewItem &item, unsigned /*col*/) const { if (!item.IsOk()) { return false; } return true; } unsigned int GNC::GUI::DicomDirTableModel::GetChildren( const wxDataViewItem &parent, wxDataViewItemArray &array ) const { if (!parent.IsOk()) { //root items //we will use pointers to IStudy as wxDataViewItems for (IModeloDicom::ListaPacientesType::const_iterator itPatient = dicomModel.ListaPacientes().begin(); itPatient != dicomModel.ListaPacientes().end(); ++itPatient) { for (IModeloPaciente::ListaEstudiosType::const_iterator itStudy = (*itPatient).ListaEstudios().begin(); itStudy != (*itPatient).ListaEstudios().end(); ++itStudy) { const IModeloEstudio& study = *itStudy; array.Add( wxDataViewItem( (void*)&study ) ); } } return array.Count(); } else { return 0; } } int GNC::GUI::DicomDirTableModel::Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, unsigned int column, bool ascending ) const { if (column == COL_DATE_TIME && item1.IsOk() && item2.IsOk()) { const IModeloEstudio* node1 = (const IModeloEstudio*) item1.GetID(); const IModeloEstudio* node2 = (const IModeloEstudio*) item1.GetID(); int res = node1->GetFecha().compare(node2->GetFecha()); if (res == 0) { res = node1->GetHora().compare(node2->GetHora()); } if (!ascending) { if (res == 1) { res = -1; } else if (res == -1) { res = 1; } } return res; } return wxDataViewModel::Compare( item1, item2, column, ascending ); } void GNC::GUI::DicomDirTableModel::GetSelectedPaths(TListPaths& paths) { for (IModeloDicom::ListaPacientesType::const_iterator itPatient = dicomModel.ListaPacientes().begin(); itPatient != dicomModel.ListaPacientes().end(); ++itPatient) { for (IModeloPaciente::ListaEstudiosType::const_iterator itStudy = (*itPatient).ListaEstudios().begin(); itStudy != (*itPatient).ListaEstudios().end(); ++itStudy) { const IModeloEstudio& study = (*itStudy); bool selected = true; //default value is true if (checkedStudies.find(&study) != checkedStudies.end()) { selected = (*checkedStudies.find(&study)).second; } if (selected) { for (IModeloEstudio::ListaSeriesType::const_iterator itSeries = study.ListaSeries().begin(); itSeries != study.ListaSeries().end(); ++itSeries) { const IModeloSerie& series = (*itSeries); for (IModeloSerie::ListaImagenesType::const_iterator itImages = series.ListaImagenes().begin(); itImages != series.ListaImagenes().end(); ++itImages) { paths.push_back((*itImages).GetPathImagen()); } } } } } } IModeloDicom& GNC::GUI::DicomDirTableModel::GetModel() { return dicomModel; } void GNC::GUI::DicomDirTableModel::ToggleAllSelections() { //we will set false or not first value bool newValue = false; if (!checkedStudies.empty()) { newValue = !checkedStudies.begin()->second; } wxDataViewItemArray itemsChanged; for (IModeloDicom::ListaPacientesType::const_iterator itPatient = dicomModel.ListaPacientes().begin(); itPatient != dicomModel.ListaPacientes().end(); ++itPatient) { for (IModeloPaciente::ListaEstudiosType::const_iterator itStudy = (*itPatient).ListaEstudios().begin(); itStudy != (*itPatient).ListaEstudios().end(); ++itStudy) { const IModeloEstudio& study = (*itStudy); checkedStudies[&study] = newValue; itemsChanged.Add( wxDataViewItem( (void*) &(*itStudy)) ); } } //all items has been modfied... ItemsChanged(itemsChanged); } bool GNC::GUI::DicomDirTableModel::LoadModel(const std::string& pathDicomDir) { Cleared(); if(!GIL::DICOM::PACSController::Instance()->LeerDicomDir(pathDicomDir,&dicomModel)) { return false; } else { //in gtk implementation we have to to this... wxDataViewItemArray childrenAdded; if (GetChildren(wxDataViewItem(NULL), childrenAdded) > 0) { ItemsAdded(wxDataViewItem(NULL), childrenAdded); } return true; } } ginkgocadx-3.8.7/cadxcore/main/gui/open/dicomdirtablemodel.h000066400000000000000000000057121314736454600241260ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include class wxImageList; namespace GNC { namespace GUI { class DicomDirTableModel: public wxDataViewModel { public: enum { COL_CHECK=0, COL_ICON, COL_PATIENT_NAME, COL_PATIENT_ID, COL_MODALITY, COL_DESCRIPTION, COL_DATE_TIME, COL_ACCNUMBER, COL_DICOM_DIR_MAX }; DicomDirTableModel(); ~DicomDirTableModel(); //wxDataViewModel methods virtual unsigned int GetColumnCount() const; virtual wxString GetColumnType( unsigned int col ) const; virtual void GetValue( wxVariant &variant, const wxDataViewItem &item, unsigned int col ) const; virtual bool SetValue( const wxVariant &variant, const wxDataViewItem &item, unsigned int col ); virtual bool IsEnabled( const wxDataViewItem &item, unsigned int col ) const; virtual wxDataViewItem GetParent( const wxDataViewItem &item ) const; virtual bool IsContainer( const wxDataViewItem &item ) const; bool HasValue (const wxDataViewItem &item, unsigned col) const; virtual bool HasContainerColumns (const wxDataViewItem &item) const ; virtual unsigned int GetChildren( const wxDataViewItem &parent, wxDataViewItemArray &array ) const; int Compare( const wxDataViewItem &item1, const wxDataViewItem &item2, unsigned int column, bool ascending ) const; // typedef std::listTListPaths; void GetSelectedPaths(TListPaths& paths); IModeloDicom& GetModel(); void ToggleAllSelections(); bool LoadModel(const std::string& pathDicomDir); protected: long GetAge(const std::string& patBirthDate, const std::string& studyDateTime) const; typedef std::map TStudiesChecked; TStudiesChecked checkedStudies; IModeloDicom dicomModel; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/open/opendialogs.cpp000066400000000000000000000217531314736454600231450ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include
    #include #include "opendialogsbase.h" #include "opendialogs.h" #include "dicomdirtablemodel.h" #include
    #include
    #include #include #include #include #include #define ICONO_ESTUDIO 0 #define ICONO_SERIE 1 #define ICONO_HOMBRE 2 #define ICONO_MUJER 3 #define ICONO_OTRO 4 #define SIZE_ICONOS 16 #define COLUMNA_DCMDIR_FECHA 2 #define COLUMNA_DCMDIR_MODALIDAD 1 #define COLUMNA_DCMDIR_MEDICO 3 #define COLUMNA_DCMDIR_ACCNUMBER 4 #define COLUMNA_DCMDIR_UID 5 namespace GNC { namespace GUI { //////////////////////////////////////////////////// ////////////DIALOGO DICOMDIR//////////////////////// //////////////////////////////////////////////////// DialogoDicomDir::DialogoDicomDir(wxWindow* pParent, const std::string& pathDicomDir): DialogoDicomDirBase(pParent), m_pDicomDirTableModel(new DicomDirTableModel()) { m_pResultsView ->AssociateModel(m_pDicomDirTableModel.get()); m_pResultsView->AppendToggleColumn(GinkgoResourcesManager::MenuIcons::GetIcoAbrir(), DicomDirTableModel::COL_CHECK, wxDATAVIEW_CELL_ACTIVATABLE, 50, wxALIGN_CENTER); m_pResultsView->AppendColumn(new wxDataViewColumn(_("Patient name"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ),DicomDirTableModel::COL_PATIENT_NAME, 200, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pResultsView->AppendColumn(new wxDataViewColumn(_("Patient id"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ),DicomDirTableModel::COL_PATIENT_ID, 100, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pResultsView->AppendColumn(new wxDataViewColumn(_("Modality"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ),DicomDirTableModel::COL_MODALITY, 60, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pResultsView->AppendColumn(new wxDataViewColumn(_("Date"), new wxDataViewTextRenderer(wxT("string"), wxDATAVIEW_CELL_INERT),DicomDirTableModel::COL_DATE_TIME, 120, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pResultsView->AppendColumn(new wxDataViewColumn(_("Description"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ),DicomDirTableModel::COL_DESCRIPTION, 110, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); m_pResultsView->AppendColumn(new wxDataViewColumn(_("Accession number"), new wxDataViewTextRenderer( wxT("string"), wxDATAVIEW_CELL_INERT ),DicomDirTableModel::COL_ACCNUMBER, 128, wxALIGN_LEFT, wxDATAVIEW_COL_SORTABLE | wxDATAVIEW_COL_RESIZABLE)); wxString pathWx = FROMPATH(pathDicomDir); if (wxFile::Exists(pathWx)) { if (!m_pDicomDirTableModel->LoadModel(pathDicomDir)) { wxMessageBox(_("There was an error reading DICOMDIR file"), _("Info"), wxOK | wxICON_INFORMATION, this); } } else { wxMessageBox(_("Select a valid DICOMDIR file"), _("Info"), wxOK | wxICON_INFORMATION, this); } m_pBody->Layout(); Layout(); m_pResultsView->Connect(wxEVT_DATAVIEW_ITEM_ACTIVATED, wxDataViewEventHandler( DialogoDicomDir::OnItemActivation ), NULL, this); m_pResultsView->Connect(wxEVT_DATAVIEW_COLUMN_HEADER_CLICK, wxDataViewEventHandler( DialogoDicomDir::OnColumnHeaderClick ), NULL, this); m_pResultsView->Connect(wxEVT_CHAR, wxKeyEventHandler(DialogoDicomDir::OnListChar), NULL, this); } DialogoDicomDir::~DialogoDicomDir() { } void DialogoDicomDir::OnCopyClick(wxCommandEvent&) { Acquire(true); } void DialogoDicomDir::OnLinkClick(wxCommandEvent&) { Acquire(false); } void DialogoDicomDir::OnItemActivation(wxDataViewEvent& event) { if (!event.GetItem().IsOk()) { return; } wxDataViewItem item = event.GetItem(); wxVariant curValue; m_pDicomDirTableModel->GetValue(curValue, item, DicomDirTableModel::COL_CHECK); m_pDicomDirTableModel->SetValue(!curValue.GetBool(), item, DicomDirTableModel::COL_CHECK); m_pDicomDirTableModel->ItemChanged(item); } void DialogoDicomDir::OnColumnHeaderClick(wxDataViewEvent& event) { //minus or equal is because in GTK we receive -1 as column... if (event.GetColumn() <= 0) { m_pDicomDirTableModel->ToggleAllSelections(); event.Skip(false); } else { event.Skip(true); } } void DialogoDicomDir::OnListChar(wxKeyEvent&event) { if (event.GetKeyCode() == WXK_SPACE) { wxDataViewItemArray selected; m_pResultsView->GetSelections(selected); wxVariant curValue; for (wxDataViewItemArray::iterator it = selected.begin(); it != selected.end(); ++it) { m_pDicomDirTableModel->GetValue(curValue, *it, DicomDirTableModel::COL_CHECK); m_pDicomDirTableModel->SetValue(!curValue.GetBool(), *it, DicomDirTableModel::COL_CHECK); } m_pDicomDirTableModel->ItemsChanged(selected); event.Skip(false); } else { event.Skip(true); } } void DialogoDicomDir::Acquire(bool copy) { //adquirimos desde dicomdir std::list listaPaths; m_pDicomDirTableModel->GetSelectedPaths(listaPaths); if(listaPaths.empty()) { wxMessageBox(_("Select dicom dir files you want to acquire"), _("Info"), wxOK | wxICON_INFORMATION, this); return; } else { //se lanza el comando de incluir en el historial GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams* pParams = NULL; if (copy) { pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(listaPaths, false, GNC::GCS::IHistoryController::TAA_COPY); } else { pParams = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorialParams(listaPaths, false, GNC::GCS::IHistoryController::TAA_LINK); } GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial* pCmd = new GADAPI::ComandoIncluirHistorial::ComandoIncluirHistorial(pParams); GNC::Entorno::Instance()->GetCommandController()->ProcessAsync(_Std("Storing in the history..."),pCmd, NULL); Close(); } } ///////////////////////////////////////END OF DIALOGODICOMDIR SelectDrive::SelectDrive(wxWindow* pParent, const TListOfDrives& drives) : SelectDriveBase(pParent) { m_drives = drives; for (TListOfDrives::iterator it = m_drives.begin(); it != m_drives.end(); ++it) { m_pUnits->Append(wxString::FromUTF8((*it).label.c_str())); } if (m_pUnits->GetCount() > 0) { m_pUnits->Select(0); } } SelectDrive::~SelectDrive() { } void SelectDrive::SetMessage(const wxString& label) { m_pLabel->SetLabel(label); m_pPanelMessage->Layout(); m_pBody->Layout(); } std::string SelectDrive::GetSelectedDrive() { TListOfDrives::iterator it = m_drives.begin(); for (int i = 0; i < m_pUnits->GetSelection(); ++i, ++it); return (*it).id; } CopyOrLink::CopyOrLink(wxWindow* pParent) : CopyOrLinkBase(pParent, wxID_ANY, _("Copy or link"), wxDefaultPosition, wxDefaultSize, wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU) { m_copy = true; m_pPanelMessage->Layout(); m_pBody->Layout(); CentreOnParent(); } CopyOrLink::~CopyOrLink() { } bool CopyOrLink::HasSelectedCopy() { return m_copy; } void CopyOrLink::OnCopy(wxCommandEvent &/*event*/) { m_copy = true; EndModal(wxID_OK); } void CopyOrLink::OnLink(wxCommandEvent &/*event*/) { m_copy = false; EndModal(wxID_OK); } } } ginkgocadx-3.8.7/cadxcore/main/gui/open/opendialogs.h000066400000000000000000000046351314736454600226120ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include
    namespace GNC { namespace GUI { //////////////////////////////////////////////////// ////////////DIALOGO DICOMDIR//////////////////////// //////////////////////////////////////////////////// class DicomDirTableModel; class DialogoDicomDir: public DialogoDicomDirBase { public: DialogoDicomDir(wxWindow* pParent, const std::string& pathDicomDir); ~DialogoDicomDir(); void OnCopyClick(wxCommandEvent&); void OnLinkClick(wxCommandEvent&); void OnItemActivation(wxDataViewEvent& event); void OnColumnHeaderClick(wxDataViewEvent& event); void OnListChar(wxKeyEvent&event); protected: void Acquire(bool copy); wxObjectDataPtr m_pDicomDirTableModel; }; class SelectDrive: public SelectDriveBase { public: typedef struct TDrive { std::string id; std::string label; TDrive(const std::string& id, const std::string& label) { this->id = id; this->label = label; } } TDrive; typedef std::list TListOfDrives; TListOfDrives m_drives; SelectDrive(wxWindow* pParent, const TListOfDrives& drives); ~SelectDrive(); void SetMessage(const wxString& label); std::string GetSelectedDrive(); }; class CopyOrLink: public CopyOrLinkBase { public: CopyOrLink(wxWindow* pParent); ~CopyOrLink(); bool HasSelectedCopy(); protected: void OnCopy(wxCommandEvent &event); void OnLink(wxCommandEvent &event); bool m_copy; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/open/opendialogsbase.cpp000066400000000000000000000210701314736454600237700ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "opendialogsbase.h" /////////////////////////////////////////////////////////////////////////// DialogoDicomDirBase::DialogoDicomDirBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 880,521 ), wxDefaultSize ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_pHeader = new HeaderPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pHeader->SetToolTip( _("Acquire from DICOM Dir") ); bSizer15->Add( m_pHeader, 0, wxEXPAND, 5 ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pResultsView = new wxDataViewCtrl(m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxDV_MULTIPLE|wxDV_ROW_LINES); bSizer7->Add( m_pResultsView , 1, wxALL|wxEXPAND, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer15->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxHORIZONTAL ); bSizer16->Add( 0, 0, 1, wxEXPAND, 5 ); m_button4 = new wxButton( m_pFooter, wxID_OK, _("Copy"), wxDefaultPosition, wxDefaultSize, 0 ); m_button4->SetDefault(); bSizer16->Add( m_button4, 0, wxRIGHT, 5 ); m_button13 = new wxButton( m_pFooter, wxID_ANY, _("Link"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button13, 0, wxALIGN_CENTER_VERTICAL, 5 ); m_button5 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button5, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer16 ); m_pFooter->Layout(); bSizer16->Fit( m_pFooter ); bSizer15->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer15 ); this->Layout(); bSizer15->Fit( this ); this->Centre( wxBOTH ); // Connect Events m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoDicomDirBase::OnCopyClick ), NULL, this ); m_button13->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoDicomDirBase::OnLinkClick ), NULL, this ); } DialogoDicomDirBase::~DialogoDicomDirBase() { // Disconnect Events m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoDicomDirBase::OnCopyClick ), NULL, this ); m_button13->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogoDicomDirBase::OnLinkClick ), NULL, this ); } SelectDriveBase::SelectDriveBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 380,220 ), wxDefaultSize ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pPanelMessage = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelMessage->SetToolTip( _("Select drive") ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxVERTICAL ); m_pLabel = new wxStaticText( m_pPanelMessage, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel->Wrap( -1 ); bSizer4->Add( m_pLabel, 0, wxALL, 5 ); wxArrayString m_pUnitsChoices; m_pUnits = new wxChoice( m_pPanelMessage, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pUnitsChoices, 0 ); m_pUnits->SetSelection( 0 ); bSizer4->Add( m_pUnits, 0, wxALL, 5 ); m_pPanelMessage->SetSizer( bSizer4 ); m_pPanelMessage->Layout(); bSizer4->Fit( m_pPanelMessage ); bSizer7->Add( m_pPanelMessage, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer15->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxHORIZONTAL ); bSizer16->Add( 0, 0, 1, wxEXPAND, 5 ); m_button4 = new wxButton( m_pFooter, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_button4->SetDefault(); bSizer16->Add( m_button4, 0, wxRIGHT, 5 ); m_button5 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button5, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer16 ); m_pFooter->Layout(); bSizer16->Fit( m_pFooter ); bSizer15->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer15 ); this->Layout(); bSizer15->Fit( this ); this->Centre( wxBOTH ); // Connect Events m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectDriveBase::OnEndClick ), NULL, this ); } SelectDriveBase::~SelectDriveBase() { // Disconnect Events m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( SelectDriveBase::OnEndClick ), NULL, this ); } CopyOrLinkBase::CopyOrLinkBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 380,220 ), wxDefaultSize ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pPanelMessage = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelMessage->SetToolTip( _("Copy or link") ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxVERTICAL ); m_pLabel = new wxStaticText( m_pPanelMessage, wxID_ANY, _("Do you want to copy or link files?"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel->Wrap( -1 ); bSizer4->Add( m_pLabel, 0, wxALL, 5 ); m_pPanelMessage->SetSizer( bSizer4 ); m_pPanelMessage->Layout(); bSizer4->Fit( m_pPanelMessage ); bSizer7->Add( m_pPanelMessage, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer15->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxHORIZONTAL ); bSizer16->Add( 0, 0, 1, wxEXPAND, 5 ); m_button4 = new wxButton( m_pFooter, wxID_ANY, _("Copy"), wxDefaultPosition, wxDefaultSize, 0 ); m_button4->SetDefault(); bSizer16->Add( m_button4, 0, wxRIGHT, 5 ); m_button5 = new wxButton( m_pFooter, wxID_ANY, _("Link"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button5, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer16 ); m_pFooter->Layout(); bSizer16->Fit( m_pFooter ); bSizer15->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer15 ); this->Layout(); bSizer15->Fit( this ); this->Centre( wxBOTH ); // Connect Events m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyOrLinkBase::OnCopy ), NULL, this ); m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyOrLinkBase::OnLink ), NULL, this ); } CopyOrLinkBase::~CopyOrLinkBase() { // Disconnect Events m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyOrLinkBase::OnCopy ), NULL, this ); m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( CopyOrLinkBase::OnLink ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/open/opendialogsbase.h000066400000000000000000000075771314736454600234550ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __OPENDIALOGSBASE_H__ #define __OPENDIALOGSBASE_H__ #include #include #include class BodyPanel; class FooterPanel; class HeaderPanel; class TitledPanel; #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /// Class DialogoDicomDirBase /////////////////////////////////////////////////////////////////////////////// class DialogoDicomDirBase : public wxDialog { private: protected: HeaderPanel* m_pHeader; BodyPanel* m_pBody; wxDataViewCtrl* m_pResultsView; FooterPanel* m_pFooter; wxButton* m_button4; wxButton* m_button13; wxButton* m_button5; // Virtual event handlers, overide them in your derived class virtual void OnCopyClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnLinkClick( wxCommandEvent& event ) { event.Skip(); } public: DialogoDicomDirBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Acquire from DICOM Dir"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~DialogoDicomDirBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class SelectDriveBase /////////////////////////////////////////////////////////////////////////////// class SelectDriveBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pPanelMessage; wxStaticText* m_pLabel; wxChoice* m_pUnits; FooterPanel* m_pFooter; wxButton* m_button4; wxButton* m_button5; // Virtual event handlers, overide them in your derived class virtual void OnEndClick( wxCommandEvent& event ) { event.Skip(); } public: SelectDriveBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select drive"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~SelectDriveBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class CopyOrLinkBase /////////////////////////////////////////////////////////////////////////////// class CopyOrLinkBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pPanelMessage; wxStaticText* m_pLabel; FooterPanel* m_pFooter; wxButton* m_button4; wxButton* m_button5; // Virtual event handlers, overide them in your derived class virtual void OnCopy( wxCommandEvent& event ) { event.Skip(); } virtual void OnLink( wxCommandEvent& event ) { event.Skip(); } public: CopyOrLinkBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Copy or link"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~CopyOrLinkBase(); }; #endif //__OPENDIALOGSBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/pacsupload/000077500000000000000000000000001314736454600213175ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/pacsupload/PACSUpload.fbp000066400000000000000000001677271314736454600237270ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect pacsuploaddialogbase 1000 none 1 PACSUploadDialogBase "GNC" "GUI" . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 460,300 PACSUploadDialogBase 712,495 wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Upload study bSizer15 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelMessage 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Upload study wxTAB_TRAVERSAL bSizer6 wxVERTICAL none 5 wxEXPAND 0 bSizer4 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Select PACS server 0 0 1 m_pLabel 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 170,-1 0 1 m_pServer 1 protected 1 Resizable 0 1 ; 0 wxFILTER_NONE wxDefaultValidator 5 wxALL|wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pSeriesList 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer16 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Ok 0 0 1 m_pOkButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button5 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/pacsupload/pacsuploaddialog.cpp000066400000000000000000000114251314736454600253410ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "pacsuploaddialog.h" #include
    #include
    #include
    #include #include
    #define SIZE_ICONOS 16 #define COLUMNA_DCMDIR_FECHA 2 #define COLUMNA_DCMDIR_MODALIDAD 1 #define COLUMNA_DCMDIR_MEDICO 3 #define COLUMNA_DCMDIR_ACCNUMBER 4 #define COLUMNA_DCMDIR_UID 5 namespace GNC { namespace GUI { PACSUploadDialog::PACSUploadDialog(wxWindow* pParent, const std::list& seriesId, const std::list& selectedSeriesId) : PACSUploadDialogBase(pParent) { LOG_STAT(ANON_STAT_DLG_PACS_UPLOAD) wxArrayString pacsList; DicomServerList::TServerList ListOfServers = DicomServerList::Instance()->GetServerList(); for (DicomServerList::TServerList::iterator it = ListOfServers.begin(); it != ListOfServers.end(); ++it) { pacsList.push_back(wxString::FromAscii((*it)->ID.c_str())); } m_pServer->Append(pacsList); if(m_pServer->GetCount()>0) { m_pServer->SetSelection(0); std::string pacsDef; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/SubirPACS", "PACSDefecto", pacsDef); for (unsigned int i =0; i< m_pServer->GetCount(); ++i) { if (m_pServer->GetString(i) == wxString::FromUTF8(pacsDef.c_str())) { m_pServer->Select(i); break; } } } else { m_pServer->AppendString(_("There aren't any PACS configured")); m_pServer->SetSelection(0); m_pServer->Disable(); m_pOkButton->Disable(); } m_pPanelMessage->Layout(); m_pBody->Layout(); std::set setOfSelected; setOfSelected.insert(selectedSeriesId.begin(), selectedSeriesId.end()); for (std::list::const_iterator itSeries = seriesId.begin(); itSeries != seriesId.end(); ++itSeries) { GNC::GCS::HistoryController::SeriesModel sm = GNC::GCS::HistoryController::Instance()->GetSeriesModel((*itSeries)); std::ostringstream ostr; ostr << sm.series_desc << " - " << sm.series_modality << " (" << sm.num_instances << ") "; wxDateTime seriesDate; seriesDate.ParseFormat(wxString::FromUTF8( sm.series_datetime.c_str() ).GetData(), wxT("%Y-%m-%dT%H:%M:%S"), wxDefaultDateTime); { if(seriesDate.IsValid()) { ostr << wxString(seriesDate.Format(_("%m/%d/%Y %H:%M:%S"), wxDateTime::TimeZone(wxDateTime::GMT1))).ToUTF8(); } else { ostr << _Std("0000/00/00 00:00:00"); } } int position = m_pSeriesList->Append(wxString::FromUTF8(ostr.str().c_str())); m_positionsId[position] = (*itSeries); if (setOfSelected.empty() || setOfSelected.find((*itSeries)) != setOfSelected.end()) { m_pSeriesList->Check(position); } } } PACSUploadDialog::~PACSUploadDialog() { } std::string PACSUploadDialog::GetSelectedServer() { int selection = m_pServer->GetSelection(); if (selection >=0) { std::string idServer(m_pServer->GetString(selection).ToUTF8()); GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/SubirPACS", "PACSDefecto", idServer); return idServer; } else { return ""; } } std::list PACSUploadDialog::GetSelectedSeries() { std::list series; for (unsigned i = 0; i < m_pSeriesList->GetCount(); ++i) { if (m_positionsId.find(i) != m_positionsId.end()) { series.push_back(m_positionsId[i]); } } return series; } } } ginkgocadx-3.8.7/cadxcore/main/gui/pacsupload/pacsuploaddialog.h000066400000000000000000000023511314736454600250040ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include "pacsuploaddialogbase.h" namespace GNC { namespace GUI { class PACSUploadDialog: public PACSUploadDialogBase { public: PACSUploadDialog(wxWindow* pParent, const std::list& seriesId, const std::list& selectedSeriesId = std::list()); ~PACSUploadDialog(); std::string GetSelectedServer(); std::list GetSelectedSeries(); protected: std::map m_positionsId; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/pacsupload/pacsuploaddialogbase.cpp000066400000000000000000000065161314736454600262010ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "pacsuploaddialogbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; PACSUploadDialogBase::PACSUploadDialogBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 460,300 ), wxDefaultSize ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pPanelMessage = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelMessage->SetToolTip( _("Upload study") ); wxBoxSizer* bSizer6; bSizer6 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxHORIZONTAL ); m_pLabel = new wxStaticText( m_pPanelMessage, wxID_ANY, _("Select PACS server"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel->Wrap( -1 ); bSizer4->Add( m_pLabel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxArrayString m_pServerChoices; m_pServer = new wxChoice( m_pPanelMessage, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pServerChoices, 0 ); m_pServer->SetSelection( 0 ); m_pServer->SetMaxSize( wxSize( 170,-1 ) ); bSizer4->Add( m_pServer, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); bSizer6->Add( bSizer4, 0, wxEXPAND, 5 ); wxArrayString m_pSeriesListChoices; m_pSeriesList = new wxCheckListBox( m_pPanelMessage, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pSeriesListChoices, 0 ); bSizer6->Add( m_pSeriesList, 1, wxALL|wxEXPAND, 5 ); m_pPanelMessage->SetSizer( bSizer6 ); m_pPanelMessage->Layout(); bSizer6->Fit( m_pPanelMessage ); bSizer7->Add( m_pPanelMessage, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer15->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxHORIZONTAL ); bSizer16->Add( 0, 0, 1, wxEXPAND, 5 ); m_pOkButton = new wxButton( m_pFooter, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_pOkButton->SetDefault(); bSizer16->Add( m_pOkButton, 0, wxRIGHT, 5 ); m_button5 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button5, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer16 ); m_pFooter->Layout(); bSizer16->Fit( m_pFooter ); bSizer15->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer15 ); this->Layout(); this->Centre( wxBOTH ); } PACSUploadDialogBase::~PACSUploadDialogBase() { } ginkgocadx-3.8.7/cadxcore/main/gui/pacsupload/pacsuploaddialogbase.h000066400000000000000000000034031314736454600256360ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __PACSUPLOADDIALOGBASE_H__ #define __PACSUPLOADDIALOGBASE_H__ #include #include #include class BodyPanel; class FooterPanel; class TitledPanel; #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class PACSUploadDialogBase /////////////////////////////////////////////////////////////////////////////// class PACSUploadDialogBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pPanelMessage; wxStaticText* m_pLabel; wxChoice* m_pServer; wxCheckListBox* m_pSeriesList; FooterPanel* m_pFooter; wxButton* m_pOkButton; wxButton* m_button5; public: PACSUploadDialogBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Upload study"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 712,495 ), long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~PACSUploadDialogBase(); }; } // namespace GUI } // namespace GNC #endif //__PACSUPLOADDIALOGBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/paneltags/000077500000000000000000000000001314736454600211425ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/paneltags/PanelTags.fbp000066400000000000000000000374221314736454600235210ustar00rootroot00000000000000 ; C++ 1 source_name 0 UTF-8 connect paneltagsbase 1000 none 1 PanelTags "GNC" "GUI" . 1 1 0 0 wxBOTH 1 1 impl_virtual 0 wxID_ANY 700,500 PanelTagsBase wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU DICOM Inspector wxFILTER_NONE wxDefaultValidator OnClose OnKeyDown m_pMainSizer wxVERTICAL protected 5 wxEXPAND | wxALL 1 1 1 0 wxID_ANY 1 m_pTags protected wxPG_BOLD_MODIFIED|wxPG_SPLITTER_AUTO_CENTER wxFILTER_NONE wxDefaultValidator OnKeyDown 5 wxEXPAND 0 1 1 0 wxID_ANY m_panel1 protected FooterPanel; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL OnKeyDown bSizer2 wxVERTICAL none 5 wxALIGN_RIGHT 0 1 1 1 0 wxID_CANCEL Close m_button1 protected wxFILTER_NONE wxDefaultValidator OnKeyDown ginkgocadx-3.8.7/cadxcore/main/gui/paneltags/paneltags.cpp000066400000000000000000000256101314736454600236300ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "paneltags.h" #include #include #include #include
    #include
    #include
    #include
    GNC::GUI::PanelTags::PanelTags(wxWindow* pPadre, bool hideOnClose ) : PanelTagsBase(pPadre) { m_hideOnClose = hideOnClose; acquisitionGroup = NULL; imagePresentationGroup = NULL; metadataGroup = NULL; textGroup = NULL; otherGroup = NULL; patientGroup = NULL; identificationGroup = NULL; relationshipGroup = NULL; m_currentPath =""; } GNC::GUI::PanelTags::~PanelTags() { } bool GNC::GUI::PanelTags::IsVisiblePanelTags() { return IsShown(); } void GNC::GUI::PanelTags::MostrarOcultarPanelTags() { if (IsShown()) { Hide(); } else { //aui bug... Show(); } } void GNC::GUI::PanelTags::SetView(GNC::GCS::IVista* pView) { if(pView == NULL || pView->GetCurrentDICOM() == "" || pView->GetCurrentDICOM() == m_currentPath) { return; } CreateCategories(); m_currentPath = pView->GetCurrentDICOM(); GIL::DICOM::TipoMetaInfo info; GIL::DICOM::DicomDataset base; GIL::DICOM::IDICOMManager* pDICOMManager = GIL::DICOM::PACSController::Instance()->CrearInstanciaDeDICOMManager(); try { pDICOMManager->CargarFichero(m_currentPath, base, false); pDICOMManager->CargarMetaInfo(m_currentPath, info); } catch (...) { LOG_ERROR("PanelTags", "Error loading path " + m_currentPath); } SetInfoTags(info, pDICOMManager); SetTags(base, m_pTags->GetRoot(), pDICOMManager); GIL::DICOM::PACSController::Instance()->LiberarInstanciaDeDICOMManager(pDICOMManager); } bool GNC::GUI::PanelTags::SetSeriesPk(long pk) { CreateCategories(); GNC::GCS::HistoryController::StringList paths = GNC::GCS::HistoryController::Instance()->GetSeriesSortedPaths(pk); if (paths.empty()) { return false; } m_currentPath = paths.front(); GIL::DICOM::TipoMetaInfo info; GIL::DICOM::DicomDataset base; GIL::DICOM::IDICOMManager* pDICOMManager = GIL::DICOM::PACSController::Instance()->CrearInstanciaDeDICOMManager(); try { pDICOMManager->CargarFichero(paths.front(), base, false); pDICOMManager->CargarMetaInfo(paths.front(), info); } catch (...) { LOG_ERROR("PanelTags", "Error loading path " + paths.front()); return false; } SetInfoTags(info, pDICOMManager); SetTags(base, m_pTags->GetRoot(), pDICOMManager); GIL::DICOM::PACSController::Instance()->LiberarInstanciaDeDICOMManager(pDICOMManager); return true; } void GNC::GUI::PanelTags::CreateCategories() { m_pTags->Clear(); metadataGroup =CreatePropertyGroup(_("Metadata")); identificationGroup = CreatePropertyGroup(_("Identification information")); patientGroup = CreatePropertyGroup(_("Patient information")); acquisitionGroup = CreatePropertyGroup(_("Acquisition information")); relationshipGroup = CreatePropertyGroup(_("Relationship information")); imagePresentationGroup = CreatePropertyGroup(_("Image presentation information")); textGroup = CreatePropertyGroup(_("Text")); otherGroup = CreatePropertyGroup(_("Other")); } void GNC::GUI::PanelTags::SetInfoTags(GIL::DICOM::TipoMetaInfo& info, GIL::DICOM::IDICOMManager* pDICOMManager) { for(GIL::DICOM::TipoMetaInfo::ListaTags::iterator it = info.tags.begin(); it!= info.tags.end(); ++it) { wxString helpString = wxString::FromUTF8(pDICOMManager->GetDescription((*it).first).c_str()); wxStringProperty* prop = NULL; wxString valor; if((*it).second.size()>100) { valor = _("Data"); } else { std::string oidname = pDICOMManager->GetOIDName((*it).second); if (oidname.size() > 0) { valor = wxString::FromUTF8(oidname.c_str()) + wxT("[") + wxString::FromUTF8((*it).second.c_str()) + wxT("]"); } else { valor = wxString::FromUTF8((*it).second.c_str()); } } wxString label; if(helpString.size()>0) { label = wxT("(") + wxString::FromUTF8((*it).first.c_str()) + wxT(") ") + helpString; } else { label = wxT("(") + wxString::FromUTF8((*it).first.c_str()) + wxT(") "); } while(m_pTags->GetProperty(label) != NULL) label = label + wxT(" "); prop = new wxStringProperty(label, wxPG_LABEL,valor); prop->SetHelpString(wxString::FromUTF8((*it).first.c_str())); m_pTags->AppendIn(metadataGroup, prop); prop->SetFlagRecursively(wxPG_PROP_READONLY, true); } } void GNC::GUI::PanelTags::SetTags(GIL::DICOM::DicomDataset& base, wxPGPropArg idPadre, GIL::DICOM::IDICOMManager* pDICOMManager) { for(GIL::DICOM::ListaTags::iterator it = base.tags.begin(); it!= base.tags.end(); ++it) { wxString helpString = wxString::FromUTF8(pDICOMManager->GetDescription((*it).first).c_str()); wxStringProperty* prop = NULL; wxString valor; if((*it).second.size()>100) { valor = _("Data"); } else { valor = wxString::FromUTF8((*it).second.c_str()); } wxString label; if(helpString.size()>0) { label = wxT("(") + wxString::FromUTF8((*it).first.c_str()) + wxT(") ") + helpString; } else { label = wxT("(") + wxString::FromUTF8((*it).first.c_str()) + wxT(") "); } while(m_pTags->GetProperty(label) != NULL) label = label + wxT(" "); prop = new wxStringProperty(label, wxPG_LABEL,valor); prop->SetHelpString(wxString::FromUTF8((*it).first.c_str())); InsertTagInGroup(prop, (*it).first, idPadre); prop->SetFlagRecursively(wxPG_PROP_READONLY, true); //m_pTags->SetDisableProperty(prop); } for(GIL::DICOM::DicomDataset::DatasetList::iterator it = base.secuencias.begin(); it!=base.secuencias.end(); ++it) { wxStringProperty* prop = NULL; wxString helpString = wxString::FromUTF8(pDICOMManager->GetDescription((*it).tagName).c_str()); wxString label; if(helpString.size()>0) { label = wxT("(") + wxString::FromUTF8((*it).tagName.c_str()) + wxT(") ") + helpString; } else { label = wxT("(") + wxString::FromUTF8((*it).tagName.c_str()) + wxT(") "); } while(m_pTags->GetProperty(label) != NULL) label = label + wxT(" "); prop = new wxStringProperty(label, wxPG_LABEL,wxEmptyString); prop->SetHelpString(wxString::FromUTF8((*it).tagName.c_str())); InsertTagInGroup(prop, (*it).tagName, idPadre); prop->SetFlagRecursively(wxPG_PROP_READONLY, true); //m_pTags->DisableProperty(pIdSequencia); //recursion int i=0; for(GIL::DICOM::DicomDataset::DatasetList::iterator it2 = (*it).items.begin(); it2!= (*it).items.end(); ++it2, ++i) { m_pTags->AppendIn(prop,new wxStringProperty(wxString::Format(wxT("Item %d"), (int) i),wxPG_LABEL,wxEmptyString)); SetTags((*it2), prop, pDICOMManager); } } } //endregion void GNC::GUI::PanelTags::OnClose(wxCloseEvent &event) { if (m_hideOnClose) { Hide(); event.Skip(false); } else { event.Skip(true); } } void GNC::GUI::PanelTags::OnKeyDown(wxKeyEvent &event) { if (event.GetKeyCode() == WXK_ESCAPE) { Close(true); } } wxPGProperty* GNC::GUI::PanelTags::CreatePropertyGroup(const wxString& label) { wxPGProperty* group = new wxPropertyCategory(label, wxPG_LABEL); m_pTags->AppendIn(m_pTags->GetRoot(), group); return group; } void GNC::GUI::PanelTags::InsertTagInGroup(wxPGProperty* prop, const std::string& key, wxPGPropArg idPadre) { if (idPadre.GetPtr() == m_pTags->GetRoot()) { //parse group unsigned int g = 0xffff; { unsigned int e = 0xffff; sscanf(key.c_str(), "%x|%x", &g, &e); } switch (g) { case 0x0008: m_pTags->AppendIn(identificationGroup, prop); break; case 0x0010: m_pTags->AppendIn(patientGroup, prop); break; case 0x0018: m_pTags->AppendIn(acquisitionGroup, prop); break; case 0x0020: m_pTags->AppendIn(relationshipGroup, prop); break; case 0x0028: m_pTags->AppendIn(imagePresentationGroup, prop); break; case 0x4000: m_pTags->AppendIn(textGroup, prop); break; default: m_pTags->AppendIn(otherGroup, prop); break; } } else { m_pTags->AppendIn(idPadre, prop); } } ginkgocadx-3.8.7/cadxcore/main/gui/paneltags/paneltags.h000066400000000000000000000042251314736454600232740ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "paneltagsbase.h" #include #include #include class PanelCustomPASI; namespace GNC { namespace GUI { class PanelTags : public PanelTagsBase { public: PanelTags(wxWindow* pPadre, bool hideOnClose = true); virtual ~PanelTags(); virtual bool IsVisiblePanelTags(); virtual void MostrarOcultarPanelTags(); virtual void SetView(GNC::GCS::IVista* pView); virtual bool SetSeriesPk(long pk); private: virtual void OnClose(wxCloseEvent &event); virtual void OnKeyDown(wxKeyEvent &event); void CreateCategories(); wxPGProperty* CreatePropertyGroup(const wxString& label); void InsertTagInGroup(wxPGProperty* prop, const std::string& key, wxPGPropArg idPadre); void SetInfoTags(GIL::DICOM::TipoMetaInfo& info, GIL::DICOM::IDICOMManager* pDICOMManager); void SetTags(GIL::DICOM::DicomDataset& base, wxPGPropArg idPadre, GIL::DICOM::IDICOMManager* pDICOMManager); wxPGProperty* metadataGroup; wxPGProperty* identificationGroup; wxPGProperty* patientGroup; wxPGProperty* acquisitionGroup; wxPGProperty* relationshipGroup; wxPGProperty* imagePresentationGroup; wxPGProperty* textGroup; wxPGProperty* otherGroup; std::string m_currentPath; bool m_hideOnClose; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/paneltags/paneltagsbase.cpp000066400000000000000000000052531314736454600244640ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "paneltagsbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; PanelTagsBase::PanelTagsBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 700,500 ), wxDefaultSize ); m_pMainSizer = new wxBoxSizer( wxVERTICAL ); m_pTags = new wxPropertyGrid(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxPG_BOLD_MODIFIED|wxPG_SPLITTER_AUTO_CENTER); m_pMainSizer->Add( m_pTags, 1, wxEXPAND | wxALL, 5 ); m_panel1 = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer2; bSizer2 = new wxBoxSizer( wxVERTICAL ); m_button1 = new wxButton( m_panel1, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); m_button1->SetDefault(); bSizer2->Add( m_button1, 0, wxALIGN_RIGHT, 5 ); m_panel1->SetSizer( bSizer2 ); m_panel1->Layout(); bSizer2->Fit( m_panel1 ); m_pMainSizer->Add( m_panel1, 0, wxEXPAND, 5 ); this->SetSizer( m_pMainSizer ); this->Layout(); m_pMainSizer->Fit( this ); this->Centre( wxBOTH ); // Connect Events this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PanelTagsBase::OnClose ) ); this->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( PanelTagsBase::OnKeyDown ) ); m_pTags->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( PanelTagsBase::OnKeyDown ), NULL, this ); m_panel1->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( PanelTagsBase::OnKeyDown ), NULL, this ); m_button1->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( PanelTagsBase::OnKeyDown ), NULL, this ); } PanelTagsBase::~PanelTagsBase() { // Disconnect Events this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( PanelTagsBase::OnClose ) ); this->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( PanelTagsBase::OnKeyDown ) ); m_pTags->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( PanelTagsBase::OnKeyDown ), NULL, this ); m_panel1->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( PanelTagsBase::OnKeyDown ), NULL, this ); m_button1->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( PanelTagsBase::OnKeyDown ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/paneltags/paneltagsbase.h000066400000000000000000000035101314736454600241230ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __paneltagsbase__ #define __paneltagsbase__ #include class FooterPanel; #include #include #ifdef __VISUALC__ #include #endif //__VISUALC__ #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class PanelTagsBase /////////////////////////////////////////////////////////////////////////////// class PanelTagsBase : public wxDialog { private: protected: wxBoxSizer* m_pMainSizer; wxPropertyGrid* m_pTags; FooterPanel* m_panel1; wxButton* m_button1; // Virtual event handlers, overide them in your derived class virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } virtual void OnKeyDown( wxKeyEvent& event ) { event.Skip(); } public: PanelTagsBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("DICOM Inspector"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~PanelTagsBase(); }; } // namespace GUI } // namespace GNC #endif //__paneltagsbase__ ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/000077500000000000000000000000001314736454600216655ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/PreviewPanel.fbp000066400000000000000000001511011314736454600247560ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect previewpanelbase 1000 none 1 PanelHistorial . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT 234,234,234 1 1 impl_virtual 0 wxID_ANY -1,-1 100,-1 FirstLevelPanelBase 100,-1 firstlevelpanel wxNO_BORDER|wxTAB_TRAVERSAL OnChar OnEraseBackground OnPanelDClick OnPanelClick OnMouseWheel OnPaint OnMenuMouse OnSize bSizer10 wxVERTICAL none 5 wxEXPAND 0 -1,20 bSizer18 wxHORIZONTAL none 5 wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 0,0,0 1 ,90,92,8,70,0 0 0 wxID_ANY javi 0 0 1 m_pLabel 1 protected 1 Resizable 1 0 -1 OnChar OnEraseBackground OnCabeceraClick OnMouseWheel OnMenuMouse 0 wxAUI_MGR_DEFAULT 204,204,204 1 1 impl_virtual 0 wxID_ANY -1,-1 100,120 LeafPanelBase 100,120 leafpanel wxTAB_TRAVERSAL OnChar OnEraseBackground OnLeafDClick OnLeafClick OnMouseWheel OnPaint OnMenuMouse bSizer11 wxHORIZONTAL none 1 wxEXPAND|wxALL 1 bSizer12 wxVERTICAL none 5 wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 76,76 0 76,76 1 m_pThumbnail 1 protected 1 Resizable 1 0 OnChar OnEraseBackground OnLeafDClick OnLeafClick OnMouseWheel OnMenuMouse 6 wxEXPAND 1 bSizer9 wxVERTICAL none 3 wxBOTTOM|wxALIGN_CENTER_HORIZONTAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 32,32,32 1 ,90,90,8,70,0 0 0 wxID_ANY 0 0 1 m_pLabel 1 protected 1 Resizable 1 0 -1 OnChar OnEraseBackground OnLeafDClick OnLeafClick OnMouseWheel OnMenuMouse 5 wxALIGN_CENTER_HORIZONTAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 32,32,32 1 ,90,90,8,70,0 0 0 wxID_ANY 0 0 1 m_pLabel1 1 protected 1 Resizable 1 0 -1 OnChar OnEraseBackground OnLeafDClick OnLeafClick OnMouseWheel OnMenuMouse 0 wxAUI_MGR_DEFAULT 128,128,128 1 1 impl_virtual 1 wxID_ANY PreviewPanelBase 110,-1 previewpanel wxTAB_TRAVERSAL OnChar OnMouseWheel OnMenuMouse bSizer16 wxVERTICAL none 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPreviewTitle 1 protected 1 Resizable 1 HeaderPanelWithButton; wx/ginkgostyle/ginkgostyle.h 0 Previews wxTAB_TRAVERSAL OnChar OnEraseBackground 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 -1,-1 0 1 m_pPanelPreviews 1 protected 1 Resizable 0 10 1 0 wxCLIP_CHILDREN|wxFULL_REPAINT_ON_RESIZE|wxHSCROLL|wxVSCROLL|wxWANTS_CHARS OnChar OnChar OnChar OnMedicalHistoryClick OnMouseWheel OnMenuMouse bSizer17 wxVERTICAL none 5 wxEXPAND|wxALIGN_CENTER_HORIZONTAL 0 1 1 1 1 54,54,54 1 0 1 1 0 Dock 0 Left 1 255,255,255 1 ,90,92,10,70,0 0 1 wxID_ANY 0 26,-1 0 26,-1 1 m_pPanelVertical 1 protected 1 Resizable 1 26,-1 VerticalHeader; wx/ginkgostyle/ginkgostyle.h 0 Previews wxTAB_TRAVERSAL OnChar OnEraseBackground OnShowPreviewsClick ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/firstlevelpanel.cpp000066400000000000000000000066731314736454600256040ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "firstlevelpanel.h" #include #include #include
    #include
    #include
    #include
    #include #include "leafpanel.h" #define TEXT_LENGTH 75 #define LEAF_HEIGHT 120 #define FIRST_LEVEL_HEADER_HEIGHT 30 #define FONDO_FIRST wxColour(194,194,194) namespace GNC { namespace GUI { FirstLevelPanel::FirstLevelPanel(GNC::GCS::IVista* pView, INodoHistorial* pParent, GNC::GUI::IPreviewNode* pNode): FirstLevelPanelBase(pParent->GetWxWindow()), INodoHistorial(pParent), m_pView(pView) { wxPanel::SetBackgroundColour(*wxWHITE); m_pNode = pNode; //truncate string... wxString tmp = wxString::FromUTF8(pNode->GetLabel().c_str()); wxClientDC dc(this); dc.SetFont(m_pLabel->GetFont()); int x,y; dc.GetTextExtent(tmp, &x, &y, NULL, NULL, NULL); while(x > TEXT_LENGTH) { dc.GetTextExtent(tmp, &x, &y, NULL, NULL, NULL); tmp = tmp.substr(0,tmp.size()-2); } m_pLabel->SetLabel(tmp); this->SetToolTip(wxString::FromUTF8(pNode->GetLabel().c_str())); m_pLabel->SetToolTip(wxString::FromUTF8(pNode->GetLabel().c_str())); //end truncate Layout(); } FirstLevelPanel::~FirstLevelPanel() { } void FirstLevelPanel::GetNodeSize(int &x, int &y) { GetSize(&x,&y); } void FirstLevelPanel::OnChar(wxKeyEvent &event) { event.ResumePropagation(10); event.Skip(true); } wxWindow* FirstLevelPanel::GetWxWindow() { return this; } void FirstLevelPanel::OnPaint(wxPaintEvent& event) { wxPaintDC dc(this); const int width = dc.GetSize().x; const int height = dc.GetSize().y; dc.SetBrush(wxBrush(FONDO_FIRST)); dc.SetPen(wxPen(FONDO_FIRST, 1, wxSOLID)); m_pLabel->SetBackgroundColour(FONDO_FIRST); dc.DrawRectangle(0,0,width,height); // FirstLevelPanelBase::OnPaint(event); wxColour borderColor(0,0,0); dc.SetBrush(wxBrush(borderColor,wxTRANSPARENT)); dc.SetPen(wxPen(borderColor, 1, wxSOLID)); dc.DrawRectangle(0,0,width,height - 1); } void FirstLevelPanel::OnSize(wxSizeEvent & event) { Layout(); for (wxWindowList::iterator it = m_children.begin(); it != m_children.end(); ++it) { (*it)->Layout(); } event.Skip(); } void FirstLevelPanel::OnMouseWheel(wxMouseEvent& event) { event.ResumePropagation(2); event.Skip(true); } void FirstLevelPanel::OnEraseBackground( wxEraseEvent& event ) { event.Skip(false); } }; }; ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/firstlevelpanel.h000066400000000000000000000030461314736454600252400ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "previewpanelbase.h" #include "ipreviewpanel.h" #include "previewpanelmodel.h" namespace GNC { namespace GUI { class FirstLevelPanel: public FirstLevelPanelBase, public INodoHistorial { public: FirstLevelPanel(GNC::GCS::IVista* pView, INodoHistorial* pPadre, GNC::GUI::IPreviewNode* pNode); ~FirstLevelPanel(); wxWindow* GetWxWindow(); virtual void GetNodeSize(int &x, int &y); protected: virtual void OnChar(wxKeyEvent &event); virtual void OnPaint(wxPaintEvent& event); virtual void OnSize(wxSizeEvent &event); virtual void OnMouseWheel(wxMouseEvent &event); virtual void OnEraseBackground( wxEraseEvent& event ); GNC::GUI::IPreviewNode* m_pNode; GNC::GCS::IVista* m_pView; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/ipreviewpanel.h000066400000000000000000000061071314736454600247140ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include class wxWindow; namespace GNC { namespace GCS { class IVista; } namespace GUI { //nodo seleccionable class ISeleccionablePreview { protected: bool m_seleccionado; public: ISeleccionablePreview() { m_seleccionado = false; } ~ISeleccionablePreview() { } bool EstaSeleccionado() { return m_seleccionado; } virtual void Seleccionar(bool seleccionar, bool force=false) = 0; }; class INodoHistorial { public: typedef std::list TChildrenList; INodoHistorial(INodoHistorial* pPadre) { m_pPadre = pPadre; } ~INodoHistorial() { m_pPadre = NULL; } INodoHistorial* GetParentNode() { return m_pPadre; } virtual void GetNodeSize(int & /*x*/, int &/*y*/) {}; virtual wxWindow* GetWxWindow() = 0; protected: INodoHistorial* m_pPadre; }; //eventos variados... //evento de seleccion namespace Events { class EventoSeleccionarHistorial: public GNC::GCS::Events::IEvent { public: EventoSeleccionarHistorial(GNC::GCS::IVista* pView):GNC::GCS::Events::IEvent(ginkgoEVT_Core_HistorialSeleccionar, 0, 100, pView) { m_Nombre = "SeleccionarHistorial"; m_pSeleccionable=NULL; } EventoSeleccionarHistorial(GNC::GCS::IVista* pView, ISeleccionablePreview* pSeleccionable ):GNC::GCS::Events::IEvent(ginkgoEVT_Core_HistorialSeleccionar, 0 , 100, pView) { m_pSeleccionable = pSeleccionable; } ~EventoSeleccionarHistorial() { } ISeleccionablePreview* GetSeleccionable() { return m_pSeleccionable; } protected: ISeleccionablePreview* m_pSeleccionable; }; class EventoSetFocusHistorial: public GNC::GCS::Events::IEvent { public: EventoSetFocusHistorial(GNC::GCS::IVista* pView):GNC::GCS::Events::IEvent(ginkgoEVT_Core_SetFocus, 0, 100, pView) { m_Nombre = "SetFocusHistorial"; } ~EventoSetFocusHistorial() { } protected: }; }//eventos } } ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/leafpanel.cpp000066400000000000000000000135351314736454600243270ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include "leafpanel.h" #include #include
    #define FONDO_INACTIVO_E wxColour(194,194,194) #define FONDO_INACTIVO_O wxColour(234,234,234) #define FONDO_ACTIVO wxColour(255,225,85) #define TEXT_LENGTH 80 namespace GNC { namespace GUI { LeafPanel::LeafPanel(GNC::GCS::IVista* pView, INodoHistorial* pPadre, GNC::GUI::IPreviewLeaf* pLeaf, bool rowEven) : LeafPanelBase(pPadre->GetWxWindow()), INodoHistorial(pPadre), m_modificado(false), m_pLeaf(pLeaf), m_dibujada(false), m_pView(pView), m_rowEven(rowEven) { wxPanel::SetBackgroundColour(wxBG_STYLE_CUSTOM); //truncate string... wxString tmp = wxString::FromUTF8(pLeaf->GetLabel().c_str()); wxClientDC dc(this); dc.SetFont(m_pLabel->GetFont()); int x,y; dc.GetTextExtent(tmp, &x, &y, NULL, NULL, NULL); while(x > TEXT_LENGTH) { dc.GetTextExtent(tmp, &x, &y, NULL, NULL, NULL); tmp = tmp.substr(0,tmp.size()-1); } m_pLabel->SetLabel(tmp); m_pLabel1->SetLabel(wxString::FromUTF8(pLeaf->GetLabel2().c_str())); this->SetToolTip(wxString::FromUTF8(pLeaf->GetLabel().c_str())); m_pLabel->SetToolTip(wxString::FromUTF8(pLeaf->GetLabel().c_str())); //end truncate m_pThumbnail->Hide(); Layout(); } LeafPanel::~LeafPanel() { if (!m_pThumbnail->IsShown() && m_dibujada) { GNC::GCS::ThumbnailController::Instance()->removeRequest(this); } } void LeafPanel::Seleccionar(bool seleccionar,bool force) { if(m_seleccionado!=seleccionar || force) { m_seleccionado = seleccionar; Refresh(); } } wxWindow* LeafPanel::GetWxWindow() { return this; } void LeafPanel::SetImage(long , wxImage* pImage) { if(pImage != NULL && pImage->IsOk()) { wxBitmap overBitmap = m_pLeaf->GetOverlayBitmap(); if (overBitmap.Ok()) { wxImage& img = (*pImage); img.Paste(overBitmap.ConvertToImage(), 2,2); } wxBitmap bitmap(*pImage); m_pThumbnail->SetBitmap(bitmap); m_pThumbnail->Show(); } Layout(); } void LeafPanel::GetNodeSize(int &x, int &y) { GetSize(&x,&y); } void LeafPanel::OnLeafDClick(wxMouseEvent& event) { m_pLeaf->OnPreviewDClick(this); event.Skip(false); } void LeafPanel::OnChar(wxKeyEvent &event) { event.ResumePropagation(10); event.Skip(true); } void LeafPanel::OnLeafClick(wxMouseEvent &event) { GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GUI::Events::EventoSeleccionarHistorial(m_pView, this)); m_pLeaf->OnPreviewLDown(this); event.Skip(false); } void LeafPanel::OnMouseWheel(wxMouseEvent& event) { event.ResumePropagation(2); event.Skip(true); } void LeafPanel::OnMenuMouse(wxMouseEvent& event) { m_pLeaf->OnShowMenu(this); event.Skip(false); } void LeafPanel::OnPaint(wxPaintEvent &event) { //background... wxPaintDC dc(this); const int width = dc.GetSize().x; const int height = dc.GetSize().y; if (m_seleccionado) { dc.SetBrush(wxBrush(FONDO_ACTIVO)); dc.SetPen(wxPen(FONDO_ACTIVO, 1, wxSOLID)); m_pLabel->SetBackgroundColour(FONDO_ACTIVO); m_pLabel1->SetBackgroundColour(FONDO_ACTIVO); } else { if (m_rowEven) { dc.SetBrush(wxBrush(FONDO_INACTIVO_E)); dc.SetPen(wxPen(FONDO_INACTIVO_E, 1, wxSOLID)); m_pLabel->SetBackgroundColour(FONDO_INACTIVO_E); m_pLabel1->SetBackgroundColour(FONDO_INACTIVO_E); } else { dc.SetBrush(wxBrush(FONDO_INACTIVO_O)); dc.SetPen(wxPen(FONDO_INACTIVO_O, 1, wxSOLID)); m_pLabel->SetBackgroundColour(FONDO_INACTIVO_O); m_pLabel1->SetBackgroundColour(FONDO_INACTIVO_O); } } dc.DrawRectangle(0,0,width,height); // if (!m_dibujada) { //la primera vez que se pinta se lanza el timer que generara el thumbnail (bajo demanda) GNC::GCS::ThumbnailController::Instance()->requestThumbnail(m_pLeaf->GetFilePk(), this); m_dibujada = true; } LeafPanelBase::OnPaint(event); wxColour borderColor(0,0,0); dc.SetBrush(wxBrush(borderColor,wxTRANSPARENT)); dc.SetPen(wxPen(borderColor, 1, wxSOLID)); dc.DrawLine(wxPoint(0,0), wxPoint(0, dc.GetSize().y-1)); dc.DrawLine(wxPoint(0, dc.GetSize().y-1), wxPoint(dc.GetSize().x - 1, dc.GetSize().y-1)); dc.DrawLine(wxPoint(dc.GetSize().x - 1, 0), wxPoint(dc.GetSize().x - 1, dc.GetSize().y-1)); } void LeafPanel::OnEraseBackground( wxEraseEvent& event ) { event.Skip(false); } } } ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/leafpanel.h000066400000000000000000000107051314736454600237700ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "previewpanelbase.h" #include "previewpanelmodel.h" #include "ipreviewpanel.h" #include
    class wxColour; namespace GNC { namespace GCS { class IVista; class IModuleController; } namespace GUI { class NotificadorPreview; } } namespace GNC { namespace GUI { class LeafTimer; class LeafPanel: public LeafPanelBase, public ISeleccionablePreview, public INodoHistorial, GADAPI::ThumbnailsNotifier { public: LeafPanel(GNC::GCS::IVista* pView, INodoHistorial* pPadre, GNC::GUI::IPreviewLeaf* pLeaf, bool rowEven); ~LeafPanel(); void Seleccionar(bool seleccionar,bool force); wxWindow* GetWxWindow(); void SetImage(long file_pk, wxImage* pImage); virtual void GetNodeSize(int &x, int &y); protected: virtual void OnChar(wxKeyEvent &event); virtual void OnLeafClick(wxMouseEvent& event); virtual void OnLeafDClick(wxMouseEvent& event); virtual void OnMouseWheel(wxMouseEvent& event); virtual void OnMenuMouse(wxMouseEvent& event); void OnPaint(wxPaintEvent &event); virtual void OnEraseBackground( wxEraseEvent& event ); bool m_modificado; GNC::GUI::IPreviewLeaf* m_pLeaf; bool m_dibujada; GNC::GCS::IVista* m_pView; bool m_rowEven; }; //void SetModeloIntegracion (GNC::GCS::Ptr pModeloIntegracion); // std::list m_pVistas; // void InitFields(const std::string& descripcion, const std::string& fecha, // const std::string& hora, const std::string& id_importador, const std::string& id_modalidad, // const std::string& uidEstudio, const std::string uidTransferSyntax); // void Seleccionar(bool seleccionar,bool force=false); // void SetAbierto(bool abierto); // void SetModificado(bool modificado); // void UpdateStatus(); // void SetImage(wxImage* pImage); // void GenerarThumbnail(); // void OnTimerParpadeo(); // //eventos // virtual void OnMouseAbrir(wxMouseEvent& event); // virtual void OnMouseSeleccionar(wxMouseEvent &event); // virtual void OnMenuMouse(wxMouseEvent &event); // virtual void OnKeyDown(wxKeyEvent &event); // virtual void OnMouseWheel( wxMouseEvent& event ); // // // int RefrescarNumeroSlices(); // void IncrementarNumeroSlices(); //// bool InsertarDCM(const GNC::GCS::ControladorHistorial::ModeloDCM& modeloDCM); // //movidas de estudio para ver si esta abierto y tal // virtual void AddVista(GNC::GCS::IVista* pVista); // virtual void VistaModificada(GNC::GCS::IVista* pVista); // virtual void VistaGuardada(GNC::GCS::IVista* pVista); // virtual void RemoveVista(GNC::GCS::IVista* pVista); // // // void OnAbrir(wxCommandEvent& event); // void Abrir(bool forzarEstudio = false); // void OnAbrirCon(wxCommandEvent& event); // void AbrirDICOM(GNC::GCS::IModuleController* pModulo, int idModo, bool forzarEstudio); // void OnEliminar(wxCommandEvent &event); // bool DoDelete(bool ask); // void OnLimpiarHistorial(wxCommandEvent &event); // void OnUploadPACS(wxCommandEvent &event); // void OnReprocessIntegration(wxCommandEvent &event); // void Detach(wxWindow* pHijo); // void Eliminar(); // void OnPaint(wxPaintEvent &event); // // std::string GetModalidad(); //protected: // bool m_modificado; // //en una serie todo deberia importarse con el mismo importador, y todo deberia ser de la misma modalidad... // GNC::GCS::Ptr m_pModeloIntegracion; // int m_numeroSlices; // std::string m_uidEstudio; // std::string m_idImportador; // std::string m_idModalidad; // std::string m_uidTransferSyntax; // NotificadorPreview* m_pNotificadorPreview; // TimerPanelSerie* m_pTimer; // wxWindow* m_pBWin; // bool m_dibujada; } } ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/previewpanel.cpp000066400000000000000000000152421314736454600250760ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include "previewpanel.h" #include "leafpanel.h" #include "firstlevelpanel.h" #define ID_MENUS 1401 #define ID_EJECUTAR 1 #define ID_TITULO 0 #define MIN_WIDTH 100 namespace GNC { namespace GUI { PreviewPanel::PreviewPanel(GNC::GCS::IVista* pView, wxWindow* parent) : PreviewPanelBase(parent), INodoHistorial(NULL), m_pView(pView), m_dirty(true) { //titulo m_pPreviewTitle->GetButtonBar()->AddTool(ID_EJECUTAR,_("Hide"),GinkgoResourcesManager::History::GetIcoPlegar(),_("Hide"), wxITEM_NORMAL); m_pPreviewTitle->GetButtonBar()->Connect(ID_EJECUTAR,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( PreviewPanel::OnHidePreviewsClick),NULL,this); m_pPreviewTitle->Realize(); //se conecta el evento Ginkgo GNC::GCS::IEventsController::Instance()->Registrar(this, GNC::GUI::Events::EventoSetFocusHistorial(m_pView)); GNC::GCS::IEventsController::Instance()->Registrar(this, GNC::GUI::Events::EventoSeleccionarHistorial(m_pView)); m_pSelected = NULL; Layout(); } PreviewPanel::~PreviewPanel() { } //interfaz modelo dicom void PreviewPanel::LoadModel(IPreviewNode* pNode ) { m_pPreviewTitle->SetToolTip(wxString::FromUTF8(pNode->GetLabel().c_str())); m_pPanelVertical->SetToolTip(wxString::FromUTF8(pNode->GetLabel().c_str())); m_pPanelPreviews->GetSizer()->Clear(true); m_pSelected = NULL; int leafIndex = 0; for (IPreviewNode::TListNodes::iterator it = pNode->children.begin(); it != pNode->children.end(); ++it, ++leafIndex) { IPreviewNode* curNode = (*it); IPreviewLeaf* pLeaf = dynamic_cast(curNode); if (pLeaf != NULL) { LeafPanel* p = new LeafPanel(m_pView, this, pLeaf, leafIndex%2); m_pPanelPreviews->GetSizer()->Add(p,0,wxBOTTOM|wxEXPAND,0); } else { FirstLevelPanel* pNewLevel = new FirstLevelPanel(m_pView, this, curNode); m_pPanelPreviews->GetSizer()->Add(pNewLevel,0,wxBOTTOM|wxEXPAND,0); for (IPreviewNode::TListNodes::iterator itFirstLevel = curNode->children.begin(); itFirstLevel != curNode->children.end(); ++itFirstLevel, ++leafIndex) { IPreviewNode* curNode2 = (*itFirstLevel); IPreviewLeaf* pLeaf = dynamic_cast(curNode2); if (pLeaf != NULL) { LeafPanel* p = new LeafPanel(m_pView, this, pLeaf, leafIndex%2); m_pPanelPreviews->GetSizer()->Add(p,0,wxBOTTOM|wxEXPAND,0); } else { LOG_ERROR("FirstLevelPanel", "leaf panel isn't an IPreviewLeaf"); } } } } Show(); GetParent()->Layout(); } wxWindow* PreviewPanel::GetWxWindow() { return m_pPanelPreviews; } void PreviewPanel::OnChar(wxKeyEvent &event) { event.ResumePropagation(10); event.Skip(true); } void PreviewPanel::OnHidePreviewsClick(wxCommandEvent& ) { FoldUp(true); } void PreviewPanel::OnShowPreviewsClick(wxMouseEvent& ) { FoldUp(false); } void PreviewPanel::FoldUp(bool plegar) { m_pPanelPreviews->Show(!plegar); m_pPreviewTitle->Show(!plegar); m_pPanelVertical->Show(plegar); if (plegar) { SetSize(m_pPanelVertical->GetSize()); SetMaxSize(m_pPanelVertical->GetMaxSize()); SetMinSize(m_pPanelVertical->GetMinSize()); } else { SetSize(m_pPanelPreviews->GetSize()); SetMaxSize(m_pPanelPreviews->GetMaxSize()); SetMinSize(m_pPanelPreviews->GetMinSize()); } Layout(); GetParent()->Layout(); } void PreviewPanel::PreProcesarEvento(GNC::GCS::Events::IEvent * evt, std::list& lista) { if (evt == NULL) { std::cerr << "Error: null event" << std::endl; return; } switch (evt->GetCodigoEvento()) { case ginkgoEVT_Core_HistorialSeleccionar: { lista.push_back(new GNC::GUI::Events::EventoSetFocusHistorial(m_pView)); } break; default: break; } } void PreviewPanel::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { switch(evt->GetCodigoEvento()) { case ginkgoEVT_Core_HistorialSeleccionar: { GNC::GUI::Events::EventoSeleccionarHistorial* pEvtSelecc = dynamic_cast(evt); if(pEvtSelecc != NULL) { GNC::GUI::ISeleccionablePreview* pSeleccionable = pEvtSelecc->GetSeleccionable(); if(pSeleccionable != m_pSelected) { if(m_pSelected!= NULL) { m_pSelected->Seleccionar(false); } if(pSeleccionable != NULL) { pSeleccionable->Seleccionar(true); } m_pSelected = pSeleccionable; } } } break; case ginkgoEVT_Core_SetFocus: { #if defined(_WIN32) || defined(__WXOSX__) m_pPanelPreviews->SetFocus(); #endif } break; } } void PreviewPanel::OnEraseBackground( wxEraseEvent& event ) { event.Skip(false); } }; }; ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/previewpanel.h000066400000000000000000000037371314736454600245510ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include "ipreviewpanel.h" #include "previewpanelmodel.h" #include "previewpanelbase.h" #include #include #include class IModuleController; class PanelPreview; class SubTitledPanel; namespace GNC { namespace GUI { class EXTAPI PreviewPanel : public PreviewPanelBase , public GNC::GCS::IEventsObserver, public INodoHistorial { public: PreviewPanel(GNC::GCS::IVista* pView, wxWindow* parent); ~PreviewPanel(); void LoadModel(IPreviewNode* pNode); wxWindow* GetWxWindow(); protected: virtual void OnChar(wxKeyEvent &event); virtual void OnHidePreviewsClick(wxCommandEvent& event); virtual void OnShowPreviewsClick(wxMouseEvent& event); virtual void FoldUp(bool foldup); virtual void PreProcesarEvento(GNC::GCS::Events::IEvent* evt, std::list& lista); virtual void ProcesarEvento(GNC::GCS::Events::IEvent* evt) ; virtual void OnEraseBackground( wxEraseEvent& event ); GNC::GUI::ISeleccionablePreview* m_pSelected; GNC::GCS::IVista* m_pView; bool m_dirty; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/previewpanelbase.cpp000066400000000000000000000403371314736454600257340ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "previewpanelbase.h" /////////////////////////////////////////////////////////////////////////// FirstLevelPanelBase::FirstLevelPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name ) { this->SetBackgroundColour( wxColour( 234, 234, 234 ) ); this->SetMinSize( wxSize( 100,-1 ) ); wxBoxSizer* bSizer10; bSizer10 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer18; bSizer18 = new wxBoxSizer( wxHORIZONTAL ); bSizer18->SetMinSize( wxSize( -1,20 ) ); m_pLabel = new wxStaticText( this, wxID_ANY, _("javi"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel->Wrap( -1 ); m_pLabel->SetFont( wxFont( 8, 70, 90, 92, false, wxEmptyString ) ); m_pLabel->SetForegroundColour( wxColour( 0, 0, 0 ) ); bSizer18->Add( m_pLabel, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); bSizer10->Add( bSizer18, 0, wxEXPAND, 5 ); this->SetSizer( bSizer10 ); this->Layout(); // Connect Events this->Connect( wxEVT_CHAR, wxKeyEventHandler( FirstLevelPanelBase::OnChar ) ); this->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( FirstLevelPanelBase::OnEraseBackground ) ); this->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( FirstLevelPanelBase::OnPanelDClick ) ); this->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( FirstLevelPanelBase::OnPanelClick ) ); this->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( FirstLevelPanelBase::OnMouseWheel ) ); this->Connect( wxEVT_PAINT, wxPaintEventHandler( FirstLevelPanelBase::OnPaint ) ); this->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( FirstLevelPanelBase::OnMenuMouse ) ); this->Connect( wxEVT_SIZE, wxSizeEventHandler( FirstLevelPanelBase::OnSize ) ); m_pLabel->Connect( wxEVT_CHAR, wxKeyEventHandler( FirstLevelPanelBase::OnChar ), NULL, this ); m_pLabel->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( FirstLevelPanelBase::OnEraseBackground ), NULL, this ); m_pLabel->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( FirstLevelPanelBase::OnCabeceraClick ), NULL, this ); m_pLabel->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( FirstLevelPanelBase::OnMouseWheel ), NULL, this ); m_pLabel->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( FirstLevelPanelBase::OnMenuMouse ), NULL, this ); } FirstLevelPanelBase::~FirstLevelPanelBase() { // Disconnect Events this->Disconnect( wxEVT_CHAR, wxKeyEventHandler( FirstLevelPanelBase::OnChar ) ); this->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( FirstLevelPanelBase::OnEraseBackground ) ); this->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( FirstLevelPanelBase::OnPanelDClick ) ); this->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( FirstLevelPanelBase::OnPanelClick ) ); this->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( FirstLevelPanelBase::OnMouseWheel ) ); this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( FirstLevelPanelBase::OnPaint ) ); this->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( FirstLevelPanelBase::OnMenuMouse ) ); this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( FirstLevelPanelBase::OnSize ) ); m_pLabel->Disconnect( wxEVT_CHAR, wxKeyEventHandler( FirstLevelPanelBase::OnChar ), NULL, this ); m_pLabel->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( FirstLevelPanelBase::OnEraseBackground ), NULL, this ); m_pLabel->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( FirstLevelPanelBase::OnCabeceraClick ), NULL, this ); m_pLabel->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( FirstLevelPanelBase::OnMouseWheel ), NULL, this ); m_pLabel->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( FirstLevelPanelBase::OnMenuMouse ), NULL, this ); } LeafPanelBase::LeafPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name ) { this->SetBackgroundColour( wxColour( 204, 204, 204 ) ); this->SetMinSize( wxSize( 100,120 ) ); wxBoxSizer* bSizer11; bSizer11 = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer12; bSizer12 = new wxBoxSizer( wxVERTICAL ); m_pThumbnail = new wxStaticBitmap( this, wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 ); m_pThumbnail->SetMinSize( wxSize( 76,76 ) ); m_pThumbnail->SetMaxSize( wxSize( 76,76 ) ); bSizer12->Add( m_pThumbnail, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM, 5 ); wxBoxSizer* bSizer9; bSizer9 = new wxBoxSizer( wxVERTICAL ); m_pLabel = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel->Wrap( -1 ); m_pLabel->SetFont( wxFont( 8, 70, 90, 90, false, wxEmptyString ) ); m_pLabel->SetForegroundColour( wxColour( 32, 32, 32 ) ); bSizer9->Add( m_pLabel, 0, wxBOTTOM|wxALIGN_CENTER_HORIZONTAL, 3 ); m_pLabel1 = new wxStaticText( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel1->Wrap( -1 ); m_pLabel1->SetFont( wxFont( 8, 70, 90, 90, false, wxEmptyString ) ); m_pLabel1->SetForegroundColour( wxColour( 32, 32, 32 ) ); bSizer9->Add( m_pLabel1, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); bSizer12->Add( bSizer9, 1, wxEXPAND, 6 ); bSizer11->Add( bSizer12, 1, wxEXPAND|wxALL, 1 ); this->SetSizer( bSizer11 ); this->Layout(); // Connect Events this->Connect( wxEVT_CHAR, wxKeyEventHandler( LeafPanelBase::OnChar ) ); this->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( LeafPanelBase::OnEraseBackground ) ); this->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( LeafPanelBase::OnLeafDClick ) ); this->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( LeafPanelBase::OnLeafClick ) ); this->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( LeafPanelBase::OnMouseWheel ) ); this->Connect( wxEVT_PAINT, wxPaintEventHandler( LeafPanelBase::OnPaint ) ); this->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( LeafPanelBase::OnMenuMouse ) ); m_pThumbnail->Connect( wxEVT_CHAR, wxKeyEventHandler( LeafPanelBase::OnChar ), NULL, this ); m_pThumbnail->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( LeafPanelBase::OnEraseBackground ), NULL, this ); m_pThumbnail->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( LeafPanelBase::OnLeafDClick ), NULL, this ); m_pThumbnail->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( LeafPanelBase::OnLeafClick ), NULL, this ); m_pThumbnail->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( LeafPanelBase::OnMouseWheel ), NULL, this ); m_pThumbnail->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( LeafPanelBase::OnMenuMouse ), NULL, this ); m_pLabel->Connect( wxEVT_CHAR, wxKeyEventHandler( LeafPanelBase::OnChar ), NULL, this ); m_pLabel->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( LeafPanelBase::OnEraseBackground ), NULL, this ); m_pLabel->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( LeafPanelBase::OnLeafDClick ), NULL, this ); m_pLabel->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( LeafPanelBase::OnLeafClick ), NULL, this ); m_pLabel->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( LeafPanelBase::OnMouseWheel ), NULL, this ); m_pLabel->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( LeafPanelBase::OnMenuMouse ), NULL, this ); m_pLabel1->Connect( wxEVT_CHAR, wxKeyEventHandler( LeafPanelBase::OnChar ), NULL, this ); m_pLabel1->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( LeafPanelBase::OnEraseBackground ), NULL, this ); m_pLabel1->Connect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( LeafPanelBase::OnLeafDClick ), NULL, this ); m_pLabel1->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( LeafPanelBase::OnLeafClick ), NULL, this ); m_pLabel1->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( LeafPanelBase::OnMouseWheel ), NULL, this ); m_pLabel1->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( LeafPanelBase::OnMenuMouse ), NULL, this ); } LeafPanelBase::~LeafPanelBase() { // Disconnect Events this->Disconnect( wxEVT_CHAR, wxKeyEventHandler( LeafPanelBase::OnChar ) ); this->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( LeafPanelBase::OnEraseBackground ) ); this->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( LeafPanelBase::OnLeafDClick ) ); this->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( LeafPanelBase::OnLeafClick ) ); this->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( LeafPanelBase::OnMouseWheel ) ); this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( LeafPanelBase::OnPaint ) ); this->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( LeafPanelBase::OnMenuMouse ) ); m_pThumbnail->Disconnect( wxEVT_CHAR, wxKeyEventHandler( LeafPanelBase::OnChar ), NULL, this ); m_pThumbnail->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( LeafPanelBase::OnEraseBackground ), NULL, this ); m_pThumbnail->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( LeafPanelBase::OnLeafDClick ), NULL, this ); m_pThumbnail->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( LeafPanelBase::OnLeafClick ), NULL, this ); m_pThumbnail->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( LeafPanelBase::OnMouseWheel ), NULL, this ); m_pThumbnail->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( LeafPanelBase::OnMenuMouse ), NULL, this ); m_pLabel->Disconnect( wxEVT_CHAR, wxKeyEventHandler( LeafPanelBase::OnChar ), NULL, this ); m_pLabel->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( LeafPanelBase::OnEraseBackground ), NULL, this ); m_pLabel->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( LeafPanelBase::OnLeafDClick ), NULL, this ); m_pLabel->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( LeafPanelBase::OnLeafClick ), NULL, this ); m_pLabel->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( LeafPanelBase::OnMouseWheel ), NULL, this ); m_pLabel->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( LeafPanelBase::OnMenuMouse ), NULL, this ); m_pLabel1->Disconnect( wxEVT_CHAR, wxKeyEventHandler( LeafPanelBase::OnChar ), NULL, this ); m_pLabel1->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( LeafPanelBase::OnEraseBackground ), NULL, this ); m_pLabel1->Disconnect( wxEVT_LEFT_DCLICK, wxMouseEventHandler( LeafPanelBase::OnLeafDClick ), NULL, this ); m_pLabel1->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( LeafPanelBase::OnLeafClick ), NULL, this ); m_pLabel1->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( LeafPanelBase::OnMouseWheel ), NULL, this ); m_pLabel1->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( LeafPanelBase::OnMenuMouse ), NULL, this ); } PreviewPanelBase::PreviewPanelBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name ) { this->SetBackgroundColour( wxColour( 128, 128, 128 ) ); this->Hide(); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxVERTICAL ); m_pPreviewTitle = new HeaderPanelWithButton( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPreviewTitle->SetToolTip( _("Previews") ); bSizer16->Add( m_pPreviewTitle, 0, wxEXPAND, 5 ); m_pPanelPreviews = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxCLIP_CHILDREN|wxFULL_REPAINT_ON_RESIZE|wxHSCROLL|wxVSCROLL|wxWANTS_CHARS ); m_pPanelPreviews->SetScrollRate( 0, 10 ); wxBoxSizer* bSizer17; bSizer17 = new wxBoxSizer( wxVERTICAL ); m_pPanelPreviews->SetSizer( bSizer17 ); m_pPanelPreviews->Layout(); bSizer17->Fit( m_pPanelPreviews ); bSizer16->Add( m_pPanelPreviews, 1, wxEXPAND, 5 ); m_pPanelVertical = new VerticalHeader( this, wxID_ANY, wxDefaultPosition, wxSize( 26,-1 ), wxTAB_TRAVERSAL ); m_pPanelVertical->SetFont( wxFont( 10, 70, 90, 92, false, wxEmptyString ) ); m_pPanelVertical->SetForegroundColour( wxColour( 255, 255, 255 ) ); m_pPanelVertical->SetBackgroundColour( wxColour( 54, 54, 54 ) ); m_pPanelVertical->Hide(); m_pPanelVertical->SetToolTip( _("Previews") ); m_pPanelVertical->SetMinSize( wxSize( 26,-1 ) ); m_pPanelVertical->SetMaxSize( wxSize( 26,-1 ) ); bSizer16->Add( m_pPanelVertical, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 ); this->SetSizer( bSizer16 ); this->Layout(); // Connect Events this->Connect( wxEVT_CHAR, wxKeyEventHandler( PreviewPanelBase::OnChar ) ); this->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( PreviewPanelBase::OnMouseWheel ) ); this->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( PreviewPanelBase::OnMenuMouse ) ); m_pPreviewTitle->Connect( wxEVT_CHAR, wxKeyEventHandler( PreviewPanelBase::OnChar ), NULL, this ); m_pPreviewTitle->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PreviewPanelBase::OnEraseBackground ), NULL, this ); m_pPanelPreviews->Connect( wxEVT_CHAR, wxKeyEventHandler( PreviewPanelBase::OnChar ), NULL, this ); m_pPanelPreviews->Connect( wxEVT_KEY_DOWN, wxKeyEventHandler( PreviewPanelBase::OnChar ), NULL, this ); m_pPanelPreviews->Connect( wxEVT_KEY_UP, wxKeyEventHandler( PreviewPanelBase::OnChar ), NULL, this ); m_pPanelPreviews->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( PreviewPanelBase::OnMedicalHistoryClick ), NULL, this ); m_pPanelPreviews->Connect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( PreviewPanelBase::OnMouseWheel ), NULL, this ); m_pPanelPreviews->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( PreviewPanelBase::OnMenuMouse ), NULL, this ); m_pPanelVertical->Connect( wxEVT_CHAR, wxKeyEventHandler( PreviewPanelBase::OnChar ), NULL, this ); m_pPanelVertical->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PreviewPanelBase::OnEraseBackground ), NULL, this ); m_pPanelVertical->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( PreviewPanelBase::OnShowPreviewsClick ), NULL, this ); } PreviewPanelBase::~PreviewPanelBase() { // Disconnect Events this->Disconnect( wxEVT_CHAR, wxKeyEventHandler( PreviewPanelBase::OnChar ) ); this->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( PreviewPanelBase::OnMouseWheel ) ); this->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( PreviewPanelBase::OnMenuMouse ) ); m_pPreviewTitle->Disconnect( wxEVT_CHAR, wxKeyEventHandler( PreviewPanelBase::OnChar ), NULL, this ); m_pPreviewTitle->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PreviewPanelBase::OnEraseBackground ), NULL, this ); m_pPanelPreviews->Disconnect( wxEVT_CHAR, wxKeyEventHandler( PreviewPanelBase::OnChar ), NULL, this ); m_pPanelPreviews->Disconnect( wxEVT_KEY_DOWN, wxKeyEventHandler( PreviewPanelBase::OnChar ), NULL, this ); m_pPanelPreviews->Disconnect( wxEVT_KEY_UP, wxKeyEventHandler( PreviewPanelBase::OnChar ), NULL, this ); m_pPanelPreviews->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( PreviewPanelBase::OnMedicalHistoryClick ), NULL, this ); m_pPanelPreviews->Disconnect( wxEVT_MOUSEWHEEL, wxMouseEventHandler( PreviewPanelBase::OnMouseWheel ), NULL, this ); m_pPanelPreviews->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( PreviewPanelBase::OnMenuMouse ), NULL, this ); m_pPanelVertical->Disconnect( wxEVT_CHAR, wxKeyEventHandler( PreviewPanelBase::OnChar ), NULL, this ); m_pPanelVertical->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( PreviewPanelBase::OnEraseBackground ), NULL, this ); m_pPanelVertical->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( PreviewPanelBase::OnShowPreviewsClick ), NULL, this ); } ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/previewpanelbase.h000066400000000000000000000122431314736454600253740ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __PREVIEWPANELBASE_H__ #define __PREVIEWPANELBASE_H__ #include #include #include class HeaderPanelWithButton; class VerticalHeader; #include #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /// Class FirstLevelPanelBase /////////////////////////////////////////////////////////////////////////////// class FirstLevelPanelBase : public wxPanel { private: protected: wxStaticText* m_pLabel; // Virtual event handlers, overide them in your derived class virtual void OnChar( wxKeyEvent& event ) { event.Skip(); } virtual void OnEraseBackground( wxEraseEvent& event ) { event.Skip(); } virtual void OnPanelDClick( wxMouseEvent& event ) { event.Skip(); } virtual void OnPanelClick( wxMouseEvent& event ) { event.Skip(); } virtual void OnMouseWheel( wxMouseEvent& event ) { event.Skip(); } virtual void OnPaint( wxPaintEvent& event ) { event.Skip(); } virtual void OnMenuMouse( wxMouseEvent& event ) { event.Skip(); } virtual void OnSize( wxSizeEvent& event ) { event.Skip(); } virtual void OnCabeceraClick( wxMouseEvent& event ) { event.Skip(); } public: FirstLevelPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 100,-1 ), long style = wxNO_BORDER|wxTAB_TRAVERSAL, const wxString& name = wxT("firstlevelpanel") ); ~FirstLevelPanelBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class LeafPanelBase /////////////////////////////////////////////////////////////////////////////// class LeafPanelBase : public wxPanel { private: protected: wxStaticBitmap* m_pThumbnail; wxStaticText* m_pLabel; wxStaticText* m_pLabel1; // Virtual event handlers, overide them in your derived class virtual void OnChar( wxKeyEvent& event ) { event.Skip(); } virtual void OnEraseBackground( wxEraseEvent& event ) { event.Skip(); } virtual void OnLeafDClick( wxMouseEvent& event ) { event.Skip(); } virtual void OnLeafClick( wxMouseEvent& event ) { event.Skip(); } virtual void OnMouseWheel( wxMouseEvent& event ) { event.Skip(); } virtual void OnPaint( wxPaintEvent& event ) { event.Skip(); } virtual void OnMenuMouse( wxMouseEvent& event ) { event.Skip(); } public: LeafPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 100,120 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("leafpanel") ); ~LeafPanelBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PreviewPanelBase /////////////////////////////////////////////////////////////////////////////// class PreviewPanelBase : public wxPanel { private: protected: HeaderPanelWithButton* m_pPreviewTitle; wxScrolledWindow* m_pPanelPreviews; VerticalHeader* m_pPanelVertical; // Virtual event handlers, overide them in your derived class virtual void OnChar( wxKeyEvent& event ) { event.Skip(); } virtual void OnMouseWheel( wxMouseEvent& event ) { event.Skip(); } virtual void OnMenuMouse( wxMouseEvent& event ) { event.Skip(); } virtual void OnEraseBackground( wxEraseEvent& event ) { event.Skip(); } virtual void OnMedicalHistoryClick( wxMouseEvent& event ) { event.Skip(); } virtual void OnShowPreviewsClick( wxMouseEvent& event ) { event.Skip(); } public: PreviewPanelBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 110,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxT("previewpanel") ); ~PreviewPanelBase(); }; #endif //__PREVIEWPANELBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/previewpanel/previewpanelmodel.h000066400000000000000000000054741314736454600255720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include class wxWindow; namespace GNC { namespace GUI { class IPreviewLeaf; class EXTAPI IPreviewNode { public: typedef std::list TListNodes; IPreviewNode() {} IPreviewNode(const std::string& label) { this->label = label; } virtual ~IPreviewNode() { for (TListNodes::iterator it = children.begin(); it != children.end(); ++it) { delete (*it); } children.clear(); } std::string GetLabel() { return this->label; } void SetLabel(const std::string& label) { this->label = label; } void AddChild(IPreviewNode* child) { children.push_back(child); } TListNodes children; virtual void OnShowMenu(wxWindow* pParent) = 0; virtual void OnPreviewDClick(wxWindow* pParent) = 0; virtual void OnPreviewLDown(wxWindow* pParent) = 0; std::string label; }; class EXTAPI IPreviewLeaf: public IPreviewNode { public: IPreviewLeaf() { } IPreviewLeaf(const std::string& label, const std::string& l2) :IPreviewNode(label), label2(l2), file_pk(-1) { } virtual wxBitmap GetOverlayBitmap() { return wxBitmap(); } std::string GetLabel2() { return this->label2; } void SetLabel2(const std::string& label) { this->label2 = label; } std::string GetLabel3() { return this->label3; } void SetLabel3(const std::string& label) { this->label3 = label; } long GetFilePk() { return this->file_pk; } void SetFilePk(long file_pk) { this->file_pk = file_pk; } protected: std::string label2; std::string label3; long file_pk; }; }; }; ginkgocadx-3.8.7/cadxcore/main/gui/progress/000077500000000000000000000000001314736454600210305ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/progress/Progreso.fbp000066400000000000000000000434471314736454600233350ustar00rootroot00000000000000 ; C++ 1 source_name 0 UTF-8 connect progresobase 1000 none 1 Progreso . 1 1 0 0 1 1 impl_virtual 0 wxID_ANY PanelTareasBase -1,-1 ; wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL m_pSizer1 wxVERTICAL none 5 wxEXPAND 1 1 1 0 wxID_ANY m_pTasks public 5 5 wxFILTER_NONE wxDefaultValidator wxHSCROLL|wxVSCROLL m_pSizerTareas wxVERTICAL public 5 wxALL 0 1 1 0 wxID_ANY There is no running tasks m_pSinTareas public wxFILTER_NONE wxDefaultValidator -1 1 1 impl_virtual 0 wxID_ANY -1,-1 PanelTareaBase -1,-1 wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL bSizer5 wxHORIZONTAL none 5 wxEXPAND|wxALIGN_CENTER_VERTICAL 1 1 1 0 wxID_ANY m_pProgress public GinkgoGauge; wx/ginkgostyle/ginkgostyle.h wxFILTER_NONE wxDefaultValidator wxTAB_TRAVERSAL ginkgocadx-3.8.7/cadxcore/main/gui/progress/paneltarea.cpp000066400000000000000000000043701314736454600236540ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "paneltarea.h" #include
    #include #include #include #include #include #define ID_BUTTON_INIT_STOP 0 GNC::GUI::PanelTarea::PanelTarea( wxWindow* pPadre,long pidTarea) : PanelTareaBase(pPadre) { m_PIDTarea = pidTarea; m_pProgress->SetColorSchema(GinkgoGauge::TCS_BLUE); wxGinkgoToolBar* m_pToolBar = new wxGinkgoToolBar(this, GetBackgroundColour()); m_pToolBar->AddTool(ID_BUTTON_INIT_STOP,_("Start"),GinkgoResourcesManager::CineBar::GetIcoStop(),_("Stop")); m_pToolBar->Connect(ID_BUTTON_INIT_STOP,wxEVT_COMMAND_TOOL_CLICKED, wxCommandEventHandler( GNC::GUI::PanelTarea::OnTareaCancelarClick),NULL,this); m_pToolBar->Realize(); GetSizer()->Add(m_pToolBar,0, wxALIGN_CENTER_VERTICAL|wxEXPAND,0); m_pProgress->SetMinSize(wxSize(-1, m_pToolBar->GetSize().y)); Layout(); } GNC::GUI::PanelTarea::~PanelTarea() { } void GNC::GUI::PanelTarea::SetProgress(const wxString& text, float progress) { m_pProgress->SetStatus(text); m_pProgress->SetProgress(progress); } wxString GNC::GUI::PanelTarea::GetStatus() { return m_pProgress->GetStatus(); } float GNC::GUI::PanelTarea::GetProgress() { return m_pProgress->GetProgress(); } void GNC::GUI::PanelTarea::OnTareaCancelarClick(wxCommandEvent &) { GNC::GCS::ICommandController::Instance()->AbortarComando(m_PIDTarea, false); } ginkgocadx-3.8.7/cadxcore/main/gui/progress/paneltarea.h000066400000000000000000000022251314736454600233160ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "progresobase.h" namespace GNC { namespace GUI { class PanelTarea : public PanelTareaBase { public: PanelTarea( wxWindow* pPadre,long pidTarea); ~PanelTarea(); void SetProgress(const wxString& text, float progress); wxString GetStatus(); float GetProgress(); protected: void OnTareaCancelarClick(wxCommandEvent &event); long m_PIDTarea; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/progress/progresobase.cpp000066400000000000000000000036711314736454600242360ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "progresobase.h" /////////////////////////////////////////////////////////////////////////// PanelTareasBase::PanelTareasBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* m_pSizer1; m_pSizer1 = new wxBoxSizer( wxVERTICAL ); m_pTasks = new wxScrolledWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxHSCROLL|wxVSCROLL ); m_pTasks->SetScrollRate( 5, 5 ); m_pSizerTareas = new wxBoxSizer( wxVERTICAL ); m_pSinTareas = new wxStaticText( m_pTasks, wxID_ANY, _("There is no running tasks"), wxDefaultPosition, wxDefaultSize, 0 ); m_pSinTareas->Wrap( -1 ); m_pSizerTareas->Add( m_pSinTareas, 0, wxALL, 5 ); m_pTasks->SetSizer( m_pSizerTareas ); m_pTasks->Layout(); m_pSizerTareas->Fit( m_pTasks ); m_pSizer1->Add( m_pTasks, 1, wxEXPAND, 5 ); this->SetSizer( m_pSizer1 ); this->Layout(); m_pSizer1->Fit( this ); } PanelTareasBase::~PanelTareasBase() { } PanelTareaBase::PanelTareaBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxHORIZONTAL ); m_pProgress = new GinkgoGauge( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); bSizer5->Add( m_pProgress, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); this->SetSizer( bSizer5 ); this->Layout(); bSizer5->Fit( this ); } PanelTareaBase::~PanelTareaBase() { } ginkgocadx-3.8.7/cadxcore/main/gui/progress/progresobase.h000066400000000000000000000033541314736454600237010ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version May 4 2010) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __progresobase__ #define __progresobase__ #include class GinkgoGauge; #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /// Class PanelTareasBase /////////////////////////////////////////////////////////////////////////////// class PanelTareasBase : public wxPanel { private: protected: public: wxScrolledWindow* m_pTasks; wxBoxSizer* m_pSizerTareas; wxStaticText* m_pSinTareas; PanelTareasBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); ~PanelTareasBase(); }; /////////////////////////////////////////////////////////////////////////////// /// Class PanelTareaBase /////////////////////////////////////////////////////////////////////////////// class PanelTareaBase : public wxPanel { private: protected: public: GinkgoGauge* m_pProgress; PanelTareaBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL ); ~PanelTareaBase(); }; #endif //__progresobase__ ginkgocadx-3.8.7/cadxcore/main/gui/progress/statusbarprogreso.cpp000066400000000000000000000403131314736454600253260ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include "statusbarprogreso.h" #include #include
    #include
    #include #include IMPLEMENT_DYNAMIC_CLASS(EventoMensajesUsuarioAsync, wxEvent) //dialogo tareas // GNC::GUI::StatusBarProgreso::StatusBarProgreso( wxWindow* pPadre, wxWindow* pPadrePanel, bool listenMessages, wxWindowID id, long style) : wxStatusBar(pPadre, id, style), m_dirty (true) { m_pPanelTareas = new PanelTareasBase(pPadrePanel); m_pPanelTareas->Show(false); SetFieldsCount(Field_Max); //uno para el texto y el otro para lo q yo quiera static const int widths[Field_Max] = { -1, 32, 250, 150}; SetStatusWidths(Field_Max, widths); //mensaje tarea m_pMensajeTarea = new wxStaticText(this,wxID_ANY,wxT(""), wxDefaultPosition, wxSize(250, -1), wxST_NO_AUTORESIZE); m_pMensajeTarea->Connect(wxEVT_LEFT_DOWN, wxMouseEventHandler( StatusBarProgreso::OnMostrarOcultarDialogoProgreso),NULL,this); //botoncico de progreso m_pIconoProgreso = new wxAnimationCtrl(this,wxID_ANY,GinkgoResourcesManager::ProgressBar::GetAniLoading()); m_pIconoProgreso->Hide(); m_pProgresoTarea = new wxGauge(this, wxID_ANY, 100); m_pProgresoTarea->Hide(); m_pIconoParado = new wxStaticBitmap(this,wxID_ANY,GinkgoResourcesManager::ProgressBar::GetIcoStopped()); m_pIconoParado->Show(true); //escuchamos el evento de mensajes if (listenMessages) { GNC::GCS::Events::EventoMensajes evt(NULL); GNC::GCS::ControladorEventos::Instance()->Registrar(this,evt); } wxSizeEvent event(pPadre->GetSize()); OnSize(event); //onsize this->Connect(wxEVT_IDLE, wxIdleEventHandler(StatusBarProgreso::OnIdle), NULL, this); this->Connect(wxEVT_SIZE,wxSizeEventHandler(StatusBarProgreso::OnSize),NULL,this); this->GetParent()->Connect(wxEVT_MOVE,wxMoveEventHandler(StatusBarProgreso::OnMove),NULL,this); this->Connect(wxEVT_MENSAJES_USUARIO_ASYNC, EventoMensajesUsuarioAsyncHandler(StatusBarProgreso::OnMensajeUsuario), NULL, this); } GNC::GUI::StatusBarProgreso::~StatusBarProgreso() { m_pMensajeTarea->Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler( StatusBarProgreso::OnMostrarOcultarDialogoProgreso),NULL,this); this->Disconnect(wxEVT_IDLE, wxIdleEventHandler(StatusBarProgreso::OnIdle), NULL, this); this->Disconnect(wxEVT_MENSAJES_USUARIO_ASYNC, EventoMensajesUsuarioAsyncHandler(StatusBarProgreso::OnMensajeUsuario), NULL, this); this->GetParent()->Disconnect(wxEVT_MOVE,wxMoveEventHandler(StatusBarProgreso::OnMove),NULL,this); this->Disconnect(wxEVT_SIZE,wxSizeEventHandler(StatusBarProgreso::OnSize),NULL,this); m_pIconoProgreso->Destroy(); m_pIconoProgreso = NULL; m_pIconoParado->Destroy(); m_pIconoParado = NULL; m_pProgresoTarea->Destroy(); m_pProgresoTarea = NULL; } void GNC::GUI::StatusBarProgreso::InsertarTarea(long taskId, const std::string& text) { MapaTareasType::iterator it = m_MapaTareas.find(taskId); if (it == m_MapaTareas.end()) { PanelTarea* pt = new PanelTarea(m_pPanelTareas->m_pTasks, taskId); wxString str = wxString::FromUTF8(text.c_str()); pt->SetProgress(str, 0); m_MapaTareas[taskId] = pt; pt->Show(); m_pPanelTareas->m_pSizerTareas->Add(pt, 0, wxEXPAND | wxDOWN, 5); int ySize = pt->GetSize().y; m_pPanelTareas->m_pTasks->Layout(); m_pPanelTareas->m_pTasks->SetVirtualSize(-1, ySize * m_MapaTareas.size()); m_pPanelTareas->m_pTasks->AdjustScrollbars(); m_pPanelTareas->Layout(); m_dirty = true; } } void GNC::GUI::StatusBarProgreso::EliminarTarea(long taskId) { PanelTarea* pt = NULL; MapaTareasType::iterator it = m_MapaTareas.find(taskId); if (it != m_MapaTareas.end()) { pt = (*it).second; m_MapaTareas.erase(it); if (pt != NULL) { m_pPanelTareas->m_pSizerTareas->Detach(pt); int ySize = pt->GetSize().y; pt->Destroy(); m_pPanelTareas->m_pTasks->SetVirtualSize(-1, ySize * m_MapaTareas.size()); m_pPanelTareas->m_pTasks->AdjustScrollbars(); m_pPanelTareas->m_pTasks->Layout(); } m_dirty = true; } } void GNC::GUI::StatusBarProgreso::SetProgresoTarea(long taskId, float normalizedProgress, const std::string& text) { MapaTareasType::iterator it = m_MapaTareas.find(taskId); if (it != m_MapaTareas.end()) { PanelTarea* pt = (*it).second; if (pt != NULL) { wxString str = wxString::FromUTF8(text.c_str()); pt->SetProgress(str, normalizedProgress); } m_dirty = true; } } void GNC::GUI::StatusBarProgreso::OnIdle(wxIdleEvent &WXUNUSED(event)) { if (m_dirty) { if(m_MapaTareas.size() == 0) { if(m_pIconoProgreso->IsPlaying()) { m_pIconoProgreso->Stop(); } m_pIconoProgreso->Hide(); m_pProgresoTarea->Hide(); m_pIconoParado->Show(true); m_pMensajeTarea->SetLabel(_("0 running tasks.")); if (!m_pPanelTareas->m_pSinTareas->IsShown()) { m_pPanelTareas->m_pSinTareas->Show(true); m_pPanelTareas->Layout(); } } else { if (m_pPanelTareas->m_pSinTareas->IsShown()) { m_pPanelTareas->m_pSinTareas->Show(false); m_pPanelTareas->m_pTasks->Layout(); m_pPanelTareas->Layout(); } m_pIconoParado->Hide(); if(!m_pIconoProgreso->IsPlaying()) { m_pIconoProgreso->Show(); m_pIconoProgreso->Play(); } if(m_MapaTareas.size() == 1) { if (!(*m_MapaTareas.begin()).second->GetStatus().empty()) { m_pMensajeTarea->SetLabel((*m_MapaTareas.begin()).second->GetStatus()); } m_pProgresoTarea->SetValue(((*m_MapaTareas.begin()).second->GetProgress() * 100)); if (!m_pProgresoTarea->IsShown()) { m_pProgresoTarea->Show(); } } else { m_pMensajeTarea->SetLabel(wxString::Format(_("There are %d pending tasks"), (int) m_MapaTareas.size())); if (m_pProgresoTarea->IsShown()) { m_pProgresoTarea->Hide(); } } } m_dirty = false; } //Layout(); } void GNC::GUI::StatusBarProgreso::ShowProgressDialog(bool show) { bool isShown = GNC::GCS::ControladorVistas::Instance()->EsVisible(m_pPanelTareas); if (!show && isShown) { GNC::GCS::ControladorVistas::Instance()->OcultarPanel(m_pPanelTareas); } else if (show && !isShown) { wxPoint esquinaInferiorDerecha = GetParent()->GetPosition(); esquinaInferiorDerecha.x += GetParent()->GetSize().x; esquinaInferiorDerecha.y += GetParent()->GetSize().y; wxPoint posicionDialogo(0,0); wxSize mejorSizeDialogo(400,170); #if defined (_WINDOWS) posicionDialogo.x = esquinaInferiorDerecha.x - mejorSizeDialogo.x - 5; posicionDialogo.y = esquinaInferiorDerecha.y - mejorSizeDialogo.y - 5 - GetSize().y; # else posicionDialogo.x = esquinaInferiorDerecha.x - mejorSizeDialogo.x; posicionDialogo.y = esquinaInferiorDerecha.y - mejorSizeDialogo.y; #endif GNC::GCS::ControladorVistas::Instance()->MostrarPanelFlotante(m_pPanelTareas, posicionDialogo.x, posicionDialogo.y); } } void GNC::GUI::StatusBarProgreso::OnMostrarOcultarDialogoProgreso(wxMouseEvent& ) { ShowProgressDialog(!GNC::GCS::ControladorVistas::Instance()->EsVisible(m_pPanelTareas)); } void GNC::GUI::StatusBarProgreso::OnSize(wxSizeEvent& event) { wxRect rect; GetFieldRect(Field_GifProgreso, rect); wxSize size = m_pIconoProgreso->GetSize(); m_pIconoProgreso->Move(rect.x + (rect.width - size.x) / 2, rect.y + (rect.height - size.y) / 2); m_pIconoParado->Move(rect.x + (rect.width - size.x) / 2, rect.y + (rect.height - size.y) / 2); GetFieldRect(Field_ProgresoTarea, rect); wxPoint esquinaInferiorDerecha = GetParent()->GetPosition(); esquinaInferiorDerecha.x += GetParent()->GetSize().x; esquinaInferiorDerecha.y += GetParent()->GetSize().y; m_pProgresoTarea->SetSize(rect.x + 2, rect.y + 2, rect.width - 4, rect.height - 4); GetFieldRect(Field_TextoTarea, rect); #if !defined(__WXOSX__) m_pMensajeTarea->SetSize(rect.x + 2, rect.y + 2, rect.width - 4, rect.height - 4); #else m_pMensajeTarea->SetSize(rect.x , rect.y, rect.width, rect.height); #endif event.Skip(); } void GNC::GUI::StatusBarProgreso::OnMove(wxMoveEvent& event) { wxPoint esquinaInferiorDerecha = GetParent()->GetPosition(); esquinaInferiorDerecha.x += GetParent()->GetSize().x; esquinaInferiorDerecha.y += GetParent()->GetSize().y; event.Skip(); } void GNC::GUI::StatusBarProgreso::OnMensajeUsuario(EventoMensajesUsuarioAsync& event ) { switch (event.GetTipo()) { case EventoMensajesUsuarioAsync::StatusBar: SetStatusText(event.GetTexto()); break; case EventoMensajesUsuarioAsync::PopUp: switch(event.GetGravedad()) { case EventoMensajesUsuarioAsync::Error: wxMessageBox(event.GetTexto(), _("Error"),wxICON_ERROR); break; case EventoMensajesUsuarioAsync::Aviso: wxMessageBox(event.GetTexto(), _("Warning"),wxICON_WARNING); break; case EventoMensajesUsuarioAsync::Informacion: wxMessageBox(event.GetTexto(), _("Info"),wxICON_INFORMATION); break; default: wxMessageBox(event.GetTexto(), _("Info"),wxICON_INFORMATION); break; } break; default: wxMessageBox(event.GetTexto(), _("Info"),wxICON_INFORMATION); break; } } void GNC::GUI::StatusBarProgreso::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { switch (evt->GetCodigoEvento()) { case ginkgoEVT_Core_MensajesUsuario: { GNC::GCS::Events::EventoMensajes* pEvt = dynamic_cast(evt); if(pEvt!=NULL) { switch(pEvt->GetTipo()) { case GNC::GCS::Events::EventoMensajes::StatusMessage : { switch (pEvt->GetGravedad()) { case GNC::GCS::Events::EventoMensajes::Error: { EventoMensajesUsuarioAsync event(pEvt->GetMensaje(), EventoMensajesUsuarioAsync::StatusBar, EventoMensajesUsuarioAsync::Error); this->GetEventHandler()->AddPendingEvent(event); } break; case GNC::GCS::Events::EventoMensajes::Aviso: { EventoMensajesUsuarioAsync event(pEvt->GetMensaje(), EventoMensajesUsuarioAsync::StatusBar,EventoMensajesUsuarioAsync::Aviso); this->GetEventHandler()->AddPendingEvent(event); } break; case GNC::GCS::Events::EventoMensajes::Informacion: { EventoMensajesUsuarioAsync event(pEvt->GetMensaje(), EventoMensajesUsuarioAsync::StatusBar, EventoMensajesUsuarioAsync::Informacion); this->GetEventHandler()->AddPendingEvent(event); } break; default: { EventoMensajesUsuarioAsync event(pEvt->GetMensaje(), EventoMensajesUsuarioAsync::StatusBar, EventoMensajesUsuarioAsync::Informacion); this->GetEventHandler()->AddPendingEvent(event); } break; } } break; case GNC::GCS::Events::EventoMensajes::PopUpMessage : { switch (pEvt->GetGravedad()) { case GNC::GCS::Events::EventoMensajes::Error: { EventoMensajesUsuarioAsync event(pEvt->GetMensaje(),EventoMensajesUsuarioAsync::PopUp, EventoMensajesUsuarioAsync::Error); this->GetEventHandler()->AddPendingEvent(event); } break; case GNC::GCS::Events::EventoMensajes::Aviso: { EventoMensajesUsuarioAsync event(pEvt->GetMensaje(),EventoMensajesUsuarioAsync::PopUp, EventoMensajesUsuarioAsync::Aviso); this->GetEventHandler()->AddPendingEvent(event); } break; case GNC::GCS::Events::EventoMensajes::Informacion: { EventoMensajesUsuarioAsync event(pEvt->GetMensaje(),EventoMensajesUsuarioAsync::PopUp, EventoMensajesUsuarioAsync::Informacion); this->GetEventHandler()->AddPendingEvent(event); } break; default: { EventoMensajesUsuarioAsync event(pEvt->GetMensaje(),EventoMensajesUsuarioAsync::PopUp, EventoMensajesUsuarioAsync::Informacion); this->GetEventHandler()->AddPendingEvent(event); } break; } } break; } } } break; default: break; } } ginkgocadx-3.8.7/cadxcore/main/gui/progress/statusbarprogreso.h000066400000000000000000000111621314736454600247730ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include "progresobase.h" #include "paneltarea.h" #include #include #include #include class wxAnimationCtrl; class wxGauge; class wxStaticBitmap; const wxEventType wxEVT_MENSAJES_USUARIO_ASYNC = wxNewEventType(); extern const wxEventType wxEVT_MENSAJES_USUARIO_ASYNC; /* BEGIN_DECLARE_EVENT_TYPES() DECLARE_EVENT_TYPE( wxEVT_MENSAJES_USUARIO_ASYNC, wxNewEventType() ) END_DECLARE_EVENT_TYPES() */ class EventoMensajesUsuarioAsync : public wxEvent { public: typedef enum { StatusBar, PopUp } TTipoMensaje; typedef enum { Informacion, Aviso, Error } TipoGravedad; EventoMensajesUsuarioAsync(const std::string& texto = "", TTipoMensaje tipo = StatusBar, TipoGravedad gravedad = Informacion) : m_Texto(texto) { SetEventType(wxEVT_MENSAJES_USUARIO_ASYNC); m_tipoMensaje = tipo; m_gravedad = gravedad; } EventoMensajesUsuarioAsync(const EventoMensajesUsuarioAsync& event) : wxEvent(event), m_Texto(event.m_Texto), m_gravedad(event.m_gravedad) { m_tipoMensaje = event.m_tipoMensaje; } wxString GetTexto() { return wxString::FromUTF8(m_Texto.c_str()); } TTipoMensaje GetTipo() { return m_tipoMensaje; } void SetGravedad(TipoGravedad gravedad) { m_gravedad = gravedad; } TipoGravedad GetGravedad() { return m_gravedad; } virtual wxEvent *Clone() const { return new EventoMensajesUsuarioAsync(*this); } protected: std::string m_Texto; TTipoMensaje m_tipoMensaje; TipoGravedad m_gravedad; private: DECLARE_DYNAMIC_CLASS_NO_ASSIGN(EventoMensajesUsuarioAsync) }; typedef void (wxEvtHandler::*EventoMensajesUsuarioAsyncFunction)(EventoMensajesUsuarioAsync&); #define EventoMensajesUsuarioAsyncHandler(func) \ (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(EventoMensajesUsuarioAsyncFunction, &func) #define EVT_MENSAJES_USUARIO(func) \ wx__DECLARE_EVT0(wxEVT_MENSAJES_USUARIO_ASYNC, EventoMensajesUsuarioAsyncHandler(func)) namespace GNC { namespace GUI { class EXTAPI StatusBarProgreso : public wxStatusBar, public GNC::IControladorProgreso, public GNC::GCS::IEventsObserver { enum { Field_Text, Field_GifProgreso, Field_TextoTarea, Field_ProgresoTarea, Field_Max }; public: typedef std::map MapaTareasType; StatusBarProgreso( wxWindow* pPadre, wxWindow* pPadrePanel, bool listenMessages, wxWindowID id = wxID_ANY, long style = wxST_SIZEGRIP ); ~StatusBarProgreso(); virtual void InsertarTarea(long taskId, const std::string& text); virtual void EliminarTarea(long taskId); virtual void SetProgresoTarea(long taskId, float normalizedProgress, const std::string& text); virtual void ShowProgressDialog(bool show); protected: void OnMostrarOcultarDialogoProgreso(wxMouseEvent& event); void OnSize(wxSizeEvent& event); void OnMove(wxMoveEvent& event); void OnMensajeUsuario(EventoMensajesUsuarioAsync& event ); void OnIdle(wxIdleEvent &WXUNUSED(event)); public: void ProcesarEvento(GNC::GCS::Events::IEvent *evt) ; MapaTareasType m_MapaTareas; PanelTareasBase* m_pPanelTareas; wxAnimationCtrl* m_pIconoProgreso; wxGauge* m_pProgresoTarea; wxStaticText* m_pMensajeTarea; wxStaticBitmap* m_pIconoParado; bool m_dirty; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/selectpacsserver/000077500000000000000000000000001314736454600225415ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/selectpacsserver/SelectPacsServer.fbp000066400000000000000000001441761314736454600264640ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect selectpacsserverbase 1000 none 1 SelectPacsServer "GNC" "GUI" . 1 1 1 1 UI 0 0 0 wxAUI_MGR_DEFAULT wxBOTH 1 1 impl_virtual 0 wxID_ANY 380,200 SelectPacsServerBase -1,-1 wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU Select PACS bSizer15 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pBody 1 protected 1 Resizable 1 BodyPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer7 wxVERTICAL none 5 wxEXPAND 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pPanelMessage 1 protected 1 Resizable 1 TitledPanel; wx/ginkgostyle/ginkgostyle.h 0 Select PACS wxTAB_TRAVERSAL bSizer4 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Select PACS server 0 0 1 m_pLabel 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL 1 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 160,-1 0 1 m_pServer 1 protected 1 Resizable 0 1 0 wxFILTER_NONE wxDefaultValidator 5 wxEXPAND 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY 0 0 1 m_pFooter 1 protected 1 Resizable 1 FooterPanel; wx/ginkgostyle/ginkgostyle.h 0 wxTAB_TRAVERSAL bSizer16 wxHORIZONTAL none 5 wxEXPAND 1 0 protected 0 5 wxRIGHT 0 1 1 1 1 1 0 1 1 1 0 Dock 0 Left 1 1 0 0 wxID_OK Ok 0 0 1 m_pOkButton 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator 5 wxLEFT 0 1 1 1 1 1 0 1 1 0 0 Dock 0 Left 1 1 0 0 wxID_CANCEL Cancel 0 0 1 m_button5 1 protected 1 Resizable 1 0 wxFILTER_NONE wxDefaultValidator ginkgocadx-3.8.7/cadxcore/main/gui/selectpacsserver/selectpacsserver.cpp000066400000000000000000000052631314736454600266300ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "selectpacsserver.h" #include
    #include
    #include namespace GNC { namespace GUI { SelectPacsServer::SelectPacsServer(wxWindow* pParent) : SelectPacsServerBase(pParent) { wxArrayString pacsList; DicomServerList::TServerList ListOfServers = DicomServerList::Instance()->GetServerList(); for (DicomServerList::TServerList::iterator it = ListOfServers.begin(); it != ListOfServers.end(); ++it) { pacsList.push_back(wxString::FromAscii((*it)->ID.c_str())); } m_pServer->Append(pacsList); if(m_pServer->GetCount()>0) { m_pServer->SetSelection(0); std::string pacsDef; GNC::GCS::ConfigurationController::Instance()->readStringUser("/GinkgoCore/SubirPACS", "PACSDefecto", pacsDef); for (unsigned int i =0; i< m_pServer->GetCount(); ++i) { if (m_pServer->GetString(i) == wxString::FromUTF8(pacsDef.c_str())) { m_pServer->Select(i); break; } } } else { m_pServer->AppendString(_("There aren't any PACS configured")); m_pServer->SetSelection(0); m_pServer->Disable(); m_pOkButton->Disable(); } m_pPanelMessage->Layout(); m_pBody->Layout(); } SelectPacsServer::~SelectPacsServer() { } std::string SelectPacsServer::GetSelectedServer() { int selection = m_pServer->GetSelection(); if (selection >=0) { std::string idServer(m_pServer->GetString(selection).ToUTF8()); GNC::GCS::ConfigurationController::Instance()->writeStringUser("/GinkgoCore/SubirPACS", "PACSDefecto", idServer); return idServer; } else { return ""; } } } } ginkgocadx-3.8.7/cadxcore/main/gui/selectpacsserver/selectpacsserver.h000066400000000000000000000020121314736454600262620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include "selectpacsserverbase.h" namespace GNC { namespace GUI { class SelectPacsServer: public SelectPacsServerBase { public: SelectPacsServer(wxWindow* pParent); ~SelectPacsServer(); std::string GetSelectedServer(); }; } } ginkgocadx-3.8.7/cadxcore/main/gui/selectpacsserver/selectpacsserverbase.cpp000066400000000000000000000057641314736454600274710ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "wx/ginkgostyle/ginkgostyle.h" #include "selectpacsserverbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; SelectPacsServerBase::SelectPacsServerBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) { this->SetSizeHints( wxSize( 380,200 ), wxDefaultSize ); wxBoxSizer* bSizer15; bSizer15 = new wxBoxSizer( wxVERTICAL ); m_pBody = new BodyPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer7; bSizer7 = new wxBoxSizer( wxVERTICAL ); m_pPanelMessage = new TitledPanel( m_pBody, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); m_pPanelMessage->SetToolTip( _("Select PACS") ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxHORIZONTAL ); m_pLabel = new wxStaticText( m_pPanelMessage, wxID_ANY, _("Select PACS server"), wxDefaultPosition, wxDefaultSize, 0 ); m_pLabel->Wrap( -1 ); bSizer4->Add( m_pLabel, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); wxArrayString m_pServerChoices; m_pServer = new wxChoice( m_pPanelMessage, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_pServerChoices, 0 ); m_pServer->SetSelection( 0 ); m_pServer->SetMaxSize( wxSize( 160,-1 ) ); bSizer4->Add( m_pServer, 1, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); m_pPanelMessage->SetSizer( bSizer4 ); m_pPanelMessage->Layout(); bSizer4->Fit( m_pPanelMessage ); bSizer7->Add( m_pPanelMessage, 1, wxEXPAND, 5 ); m_pBody->SetSizer( bSizer7 ); m_pBody->Layout(); bSizer7->Fit( m_pBody ); bSizer15->Add( m_pBody, 1, wxEXPAND, 5 ); m_pFooter = new FooterPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer16; bSizer16 = new wxBoxSizer( wxHORIZONTAL ); bSizer16->Add( 0, 0, 1, wxEXPAND, 5 ); m_pOkButton = new wxButton( m_pFooter, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_pOkButton->SetDefault(); bSizer16->Add( m_pOkButton, 0, wxRIGHT, 5 ); m_button5 = new wxButton( m_pFooter, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); bSizer16->Add( m_button5, 0, wxLEFT, 5 ); m_pFooter->SetSizer( bSizer16 ); m_pFooter->Layout(); bSizer16->Fit( m_pFooter ); bSizer15->Add( m_pFooter, 0, wxEXPAND, 5 ); this->SetSizer( bSizer15 ); this->Layout(); bSizer15->Fit( this ); this->Centre( wxBOTH ); } SelectPacsServerBase::~SelectPacsServerBase() { } ginkgocadx-3.8.7/cadxcore/main/gui/selectpacsserver/selectpacsserverbase.h000066400000000000000000000033001314736454600271160ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __SELECTPACSSERVERBASE_H__ #define __SELECTPACSSERVERBASE_H__ #include #include #include class BodyPanel; class FooterPanel; class TitledPanel; #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class SelectPacsServerBase /////////////////////////////////////////////////////////////////////////////// class SelectPacsServerBase : public wxDialog { private: protected: BodyPanel* m_pBody; TitledPanel* m_pPanelMessage; wxStaticText* m_pLabel; wxChoice* m_pServer; FooterPanel* m_pFooter; wxButton* m_pOkButton; wxButton* m_button5; public: SelectPacsServerBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Select PACS"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxCAPTION|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~SelectPacsServerBase(); }; } // namespace GUI } // namespace GNC #endif //__SELECTPACSSERVERBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/startup/000077500000000000000000000000001314736454600206665ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/startup/StartupForm.fbp000066400000000000000000001434171314736454600236570ustar00rootroot00000000000000 ; C++ 1 source_name 0 0 res UTF-8 connect startupformbase 1000 none 1 startup form "GNC" "GUI" . 1 1 1 1 UI 0 0 0 255,255,255 1 1 impl_virtual 0 wxID_ANY 548,288 StartUpFormBase 817,417 ; wxCLIP_CHILDREN|wxTAB_TRAVERSAL OnEraseBackground bSizer5 wxVERTICAL none 5 wxEXPAND|wxALIGN_CENTER_HORIZONTAL 1 m_pSizerToolBar wxHORIZONTAL protected 20 wxEXPAND|wxTOP|wxRIGHT|wxLEFT 0 bSizer13 wxHORIZONTAL none 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY http://ginkgo-cadx.com 0 0 1 m_hyperlink2 1 protected 1 Resizable 1 wxHL_DEFAULT_STYLE 0 http://ginkgo-cadx.com 5 wxEXPAND|wxALIGN_CENTER_VERTICAL 1 m_pSizerCenter wxHORIZONTAL public 5 wxEXPAND 1 bSizer51 wxVERTICAL none 5 wxALIGN_CENTER_HORIZONTAL 0 bSizer6 wxHORIZONTAL none 5 wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 255,0,0 1 ,90,92,-1,70,0 0 0 wxID_ANY No suitable for diagnostic usage. Please consider upgrade to 0 0 1 m_staticText2 1 protected 1 Resizable 1 0 360 5 wxALL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,92,-1,70,0 0 0 wxID_ANY Ginkgo CADx Pro 0 0 1 m_hyperlink31 1 protected 1 Resizable 1 wxHL_DEFAULT_STYLE 0 http://ginkgo-cadx.com/en/downloads 5 wxALL|wxALIGN_CENTER_HORIZONTAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,90,-1,70,0 0 0 wxID_ANY Remember that when you buy Ginkgo CADx Pro, you are contributing to development efforts 0 0 1 m_staticText3 1 protected 1 Resizable 1 wxALIGN_CENTRE 0 350 5 wxALIGN_RIGHT|wxTOP|wxBOTTOM|wxLEFT|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 0 0 wxID_ANY Powered by 0 0 1 m_staticText9 1 protected 1 Resizable 1 0 -1 5 wxALL|wxALIGN_CENTER_VERTICAL 0 1 1 1 1 1 0 1 1 0 Dock 0 Left 1 1 ,90,90,-1,70,0 0 0 wxID_ANY MetaEmotion Healthcare 0 0 1 m_hyperlink3 1 protected 1 Resizable 1 wxHL_DEFAULT_STYLE 0 http://healthcare.metaemotion.com erasdf 5 wxEXPAND 0 15 protected 0 ginkgocadx-3.8.7/cadxcore/main/gui/startup/startupform.cpp000066400000000000000000000233641314736454600237700ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "startupform.h" #include
    #include
    #include
    #include #include
    #include
    #include #include #include #include #include #include #define ID_FILE_DROP_DOWN 1781 #define ID_SHOW_HISTORY 1782 namespace GNC { namespace GUI { ////////////////////////////////////////////////////////////////// struct RSSEntry { std::string content; std::string updated; std::string link; }; typedef std::list TListOfEntries; ////////////////////////////////////////////////////////////////// ///////////////////TOOL BAR/////////////////////////////////////// class StartupFormToolbar : public wxGinkgoToolBar { public: StartupFormToolbar(wxWindow* pParent, const wxColor& color = wxColor(255, 255, 255)): wxGinkgoToolBar(pParent,wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_TEXT) { SetToolBitmapSize(wxSize(64,64)); wxGinkgoToolBarArt* pToolArt= new wxGinkgoToolBarArt(color); SetBackgroundColour(wxColour(255,255,255)); SetArtProvider(pToolArt); AddTool(ID_SHOW_HISTORY, _("History"), GinkgoResourcesManager::BigIcons::GetIcoBigBook()); if(GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire") && GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","pacs_acquisition")) { AddTool(ID_FILE_DROP_DOWN, _("Acquire"), GinkgoResourcesManager::BigIcons::GetIcoBigAcquire()); ForceSetToolDropDown(ID_FILE_DROP_DOWN, true); this->Connect(ID_FILE_DROP_DOWN,wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(StartupFormToolbar::OnDropDownAcquire),NULL, this ); } GNC::HistoryToolsController::Instance()->AppendsBigToolsInToolBar(this); this->Connect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(StartupFormToolbar::OnToolClick),NULL, this ); } ~StartupFormToolbar() { this->Disconnect(ID_FILE_DROP_DOWN,wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(StartupFormToolbar::OnDropDownAcquire),NULL, this ); this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(StartupFormToolbar::OnToolClick),NULL, this ); } void OnDropDownAcquire(wxAuiToolBarEvent& event) { wxAuiToolBar* tb = static_cast(event.GetEventObject()); tb->SetToolSticky(event.GetId(), true); // create the popup menu wxMenu menuPopup; GNC::HistoryToolsController::Instance()->AppendsToolInMenu(&menuPopup, &menuPopup, GNC::GCS::IHistoryTool::TFamily_Open); // line up our menu with the button wxRect rect = tb->GetToolRect(event.GetId()); wxPoint pt = tb->ClientToScreen(rect.GetBottomLeft()); pt = ScreenToClient(pt); PopupMenu(&menuPopup, pt); // make sure the button is "un-stuck" tb->SetToolSticky(event.GetId(), false); } void OnToolClick(wxCommandEvent& event) { switch (event.GetId()) { case ID_SHOW_HISTORY: { if (GNC::GUI::HistoryPanel3::Instance()->IsIconized()) { GNC::GUI::HistoryPanel3::Instance()->Restore(); } if (!GNC::GUI::HistoryPanel3::Instance()->IsShown()) { GNC::GUI::HistoryPanel3::Instance()->Show(true); } else { GNC::GUI::HistoryPanel3::Instance()->Raise(); } } break; case ID_FILE_DROP_DOWN: { } break; default: { GNC::GCS::IHistoryTool* pTool = GNC::HistoryToolsController::Instance()->GetTool(event.GetId()); if (pTool != NULL) { pTool->Execute(); } } break; } } }; ////////////////////////////////////////////////////////////////// class StartUpTitle: public wxPanel { public: StartUpTitle(wxWindow* pParent) : wxPanel(pParent) { m_bigFont = wxFont( 18, 70, 90, 90, false, wxEmptyString ); wxWindow::SetBackgroundStyle(wxBG_STYLE_CUSTOM); wxClientDC dc(this); dc.SetFont(m_bigFont); int height,width; dc.GetTextExtent(wxString::FromUTF8(GNC::Entorno::Instance()->GetApplicationName().c_str()) , &width, &height, NULL, NULL, NULL); SetSize(width + 20 + 20, height + 20); SetMinSize(wxSize(width + 20 + 20, height + 20)); std::ostringstream ostrVersion; ostrVersion << GNC::Entorno::Instance()->GetApplicationName() << " v"; ostrVersion << GNC::Entorno::Instance()->GetGinkgoVersion(); if (sizeof(void*) == 4) { ostrVersion << " 32 bits"; } else if (sizeof(void*) == 8) { ostrVersion << " 64 bits"; } if(GNC::GCS::IControladorPermisos::Instance()->Get("core.license","licenseinfo")) { ostrVersion << " ("<< GNC::GCS::IControladorPermisos::Instance()->Get("core.license","licenseinfo").GetRawValue() << ")"; } m_Version = wxString::FromUTF8(ostrVersion.str().c_str()); this->Connect( wxEVT_PAINT, wxPaintEventHandler( StartUpTitle::OnPaint ), NULL, this ); this->Connect( wxEVT_SIZE, wxSizeEventHandler( StartUpTitle::OnSize ), NULL, this ); } ~StartUpTitle() { this->Disconnect( wxEVT_PAINT, wxPaintEventHandler( StartUpTitle::OnPaint ), NULL, this ); this->Disconnect( wxEVT_SIZE, wxSizeEventHandler( StartUpTitle::OnSize ), NULL, this ); } protected: virtual void OnPaint(wxPaintEvent &event) { wxPaintDC dc(this); PrepareDC(dc); int width = dc.GetSize().x; int height = dc.GetSize().y; wxRect cr(0,0, width, height); dc.GradientFillLinear(cr, wxColour(255,255,255), wxColour(200,200,200), wxNORTH); dc.SetFont(m_bigFont); wxCoord tx = 0, ty = 0; wxString str = wxString::FromUTF8(GNC::Entorno::Instance()->GetApplicationName().c_str()); dc.GetTextExtent(str, &tx, &ty, NULL, NULL, NULL); dc.DrawText(str, 20,20); //draw version text... dc.SetFont(GetFont()); dc.GetTextExtent(m_Version, &tx, &ty, NULL, NULL, NULL); dc.DrawText(m_Version, width - tx - 20, height - ty); event.Skip(false); } void OnSize(wxSizeEvent & event) { this->Refresh(false); event.Skip(false); } wxFont m_bigFont; wxString m_Version; }; ////////////////////////////////////////////////////////////////// StartUpForm::StartUpForm(GNC::GCS::IVista* pView): StartUpFormBase(pView->GetEstudio()->ParentWindow) { StartUpTitle* pFooter = new StartUpTitle( this); GetSizer()->Insert(0, pFooter, 0, wxEXPAND); IView = pView; wxAuiToolBar * pToolbar = new StartupFormToolbar(this); m_pSizerToolBar->Add( 0, 0, 1, wxEXPAND, 5 ); m_pSizerToolBar->Add(pToolbar, 0, wxALIGN_CENTER_VERTICAL); m_pSizerToolBar->Add( 0, 0, 1, wxEXPAND, 5 ); pToolbar->Realize(); Layout(); } StartUpForm::~StartUpForm() { //this is the common way to destroy view without leaks IView->Lock(); delete IView; } void StartUpForm::OnUpgradeLink(wxHyperlinkEvent& /*event*/) { } void StartUpForm::OnEraseBackground(wxEraseEvent &event) { event.Skip(true); } /*void StartUpForm::OnPaint(wxPaintEvent &event) { wxPaintDC dc(this); PrepareDC(dc); int width = dc.GetSize().x; int height = dc.GetSize().y/2; wxRect cr(0,height, width, height); dc.GradientFillLinear(cr, wxColour(255,255,255), wxColour(200,200,200), wxSOUTH); dc.SetFont(m_bigFont); wxCoord tx = 0, tyBig = 0, ty = 0; wxString str = wxT("Ginkgo CADx"); dc.GetTextExtent(str, &tx, &tyBig, NULL, NULL, NULL); dc.DrawText(str, 20,20); //draw version text... dc.SetFont(GetFont()); dc.GetTextExtent(m_Version, &tx, &ty, NULL, NULL, NULL); dc.DrawText(m_Version, width - tx - 20, 20 + tyBig - ty); StartUpFormBase::OnPaint(event); }*/ } } ginkgocadx-3.8.7/cadxcore/main/gui/startup/startupform.h000066400000000000000000000022601314736454600234250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "startupformbase.h" #include "startupview.h" namespace GNC { namespace GUI { class StartUpForm: public StartUpFormBase { public: StartUpForm(GNC::GCS::IVista* pView); ~StartUpForm(); virtual void OnUpgradeLink( wxHyperlinkEvent& event ); protected: virtual void OnEraseBackground(wxEraseEvent& event); //virtual void OnPaint(wxPaintEvent &event); GNC::GCS::IVista* IView; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/startup/startupformbase.cpp000066400000000000000000000044071314736454600246200ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #include "startupformbase.h" /////////////////////////////////////////////////////////////////////////// using namespace GNC::GUI; StartUpFormBase::StartUpFormBase( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) { this->SetBackgroundColour( wxColour( 255, 255, 255 ) ); this->SetMinSize( wxSize( 548,288 ) ); wxBoxSizer*bSizer5 = new wxBoxSizer( wxVERTICAL ); m_pSizerToolBar = new wxBoxSizer( wxHORIZONTAL ); bSizer5->Add( m_pSizerToolBar, 1, wxEXPAND|wxALIGN_CENTER_HORIZONTAL, 5 ); wxBoxSizer* bSizer13 = new wxBoxSizer( wxHORIZONTAL ); m_pSizerCenter = new wxBoxSizer( wxHORIZONTAL ); wxBoxSizer* bSizer51 = new wxBoxSizer( wxVERTICAL ); wxBoxSizer* bSizer6 = new wxBoxSizer( wxHORIZONTAL ); m_staticText2 = new wxStaticText( this, wxID_ANY, _("No suitable for diagnostic usage."), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText2->Wrap( 360 ); m_staticText2->SetFont( wxFont( wxNORMAL_FONT->GetPointSize(), 70, 90, 92, false, wxEmptyString ) ); m_staticText2->SetForegroundColour( wxColour( 255, 0, 0 ) ); bSizer6->Add( m_staticText2, 0, wxALIGN_CENTER_HORIZONTAL|wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); bSizer51->Add( bSizer6, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); m_pSizerCenter->Add( bSizer51, 1, wxEXPAND, 5 ); bSizer13->Add( m_pSizerCenter, 1, wxEXPAND|wxALIGN_CENTER_VERTICAL, 5 ); bSizer5->Add( bSizer13, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 20 ); bSizer5->Add( 0, 15, 0, wxEXPAND, 5 ); this->SetSizer( bSizer5 ); this->Layout(); // Connect Events this->Connect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( StartUpFormBase::OnEraseBackground ) ); } StartUpFormBase::~StartUpFormBase() { // Disconnect Events this->Disconnect( wxEVT_ERASE_BACKGROUND, wxEraseEventHandler( StartUpFormBase::OnEraseBackground ) ); } ginkgocadx-3.8.7/cadxcore/main/gui/startup/startupformbase.h000066400000000000000000000032421314736454600242610ustar00rootroot00000000000000/////////////////////////////////////////////////////////////////////////// // C++ code generated with wxFormBuilder (version Nov 6 2013) // http://www.wxformbuilder.org/ // // PLEASE DO "NOT" EDIT THIS FILE! /////////////////////////////////////////////////////////////////////////// #ifndef __STARTUPFORMBASE_H__ #define __STARTUPFORMBASE_H__ #include #include #include #include #include #include #include #include #include #include #include #include /////////////////////////////////////////////////////////////////////////// namespace GNC { namespace GUI { /////////////////////////////////////////////////////////////////////////////// /// Class StartUpFormBase /////////////////////////////////////////////////////////////////////////////// class StartUpFormBase : public wxPanel { private: protected: wxBoxSizer* m_pSizerToolBar; wxStaticText* m_staticText2; // Virtual event handlers, overide them in your derived class virtual void OnEraseBackground( wxEraseEvent& event ) { event.Skip(); } virtual void erasdf( wxHyperlinkEvent& event ) { event.Skip(); } public: wxBoxSizer* m_pSizerCenter; StartUpFormBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 817,417 ), long style = wxCLIP_CHILDREN|wxTAB_TRAVERSAL ); ~StartUpFormBase(); }; } // namespace GUI } // namespace GNC #endif //__STARTUPFORMBASE_H__ ginkgocadx-3.8.7/cadxcore/main/gui/startup/startupview.cpp000066400000000000000000000075231314736454600237760ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include
    #include
    #include
    #include
    #include #include
    #include #include #include "startupview.h" #include "startupform.h" #include #undef __DEPRECATED #include #include #include #define LOGGER "STARTUP" #define DEFAULT_RSS "http://twitter.com/statuses/user_timeline/247267254.rss" #define DEFAULT_WELCOME_URL "http://ginkgo-cadx.com/[lan]/ginkgocadxwelcomescreen/" namespace GNC { namespace GUI { StartUpView ::StartUpView (const GNC::GCS::Ptr& study) : GNC::GCS::IVista((GNC::GCS::Ptr)study) { FooStudy = study; m_Cargada = false; FooStudy->Window = m_pWindow = new StartUpForm (this); GNC::GCS::IToolController* pToolBar = this->GetToolController(); pToolBar->AddTool(HCore_ShowHistory, (GNC::GCS::IViewContract*) this); pToolBar->AddTool(HCore_DicomizeFromView, (GNC::GCS::IViewContract*) this); pToolBar->AddTool(HCore_AddFileToHistory, (GNC::GCS::IViewContract*) this); pToolBar->AddTool(HCore_QueryRetrieve, (GNC::GCS::IViewContract*) this); GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventView(this, GNC::GCS::Events::EventView::Initialized)); } StartUpView ::~StartUpView () { } //---------------------------------------------------------------------------------------------------- //region Loading interface // Starts loading. Synchronous with interface. void StartUpView::OnCargaIniciada() { } // Step1: LoadStudy not synchronized with interface thread void StartUpView::CargarEstudio(GNC::GCS::IComando* /*pCmdInvocador*/) { } //Ends loading. Synchronous with interface void StartUpView::OnCargaFinalizada() { } // Step2: init pipeline synchronous with interface void StartUpView::IniciarPipeline() { //build view title BuildTitle(); } // stops pipeline, it's called if there has been an error loading study void StartUpView::DetenerPipeline() { } //endregion bool StartUpView::SoportaGuardar() { return false; } bool StartUpView::SoportaExportar() { return false; } GNC::GCS::IVista* StartUpView::GetView() { return this; } void StartUpView::Activar() { GNC::GCS::IVista::Activar(); m_pWindow->SetFocus(); } wxWindow * StartUpView::GetWindow() { return m_pWindow; } wxSizer* StartUpView::GetBottomSizer() { return m_pWindow->m_pSizerCenter; } void StartUpView::BuildTitle() { m_Titulo = _Std("Start page"); } } } ginkgocadx-3.8.7/cadxcore/main/gui/startup/startupview.h000066400000000000000000000054651314736454600234460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include #include namespace GNC { namespace GCS { class IEntorno; } } class wxWindow; namespace GNC { namespace GUI { class StartUpForm; class StartUpStudy : public GNC::GCS::IStudyContext { public: StartUpStudy() {} ~StartUpStudy() {} virtual void CallbackCargarTagsImagen(const int /*indice*/, GIL::DICOM::IDICOMManager* /*pDicomManager*/) {} protected: }; class StartUpView : public GNC::GCS::IVista, public GNC::GCS::IViewContract { public: /* Constructor */ StartUpView (const GNC::GCS::Ptr& study); /* Destructor */ ~StartUpView (); //suports save? virtual bool SoportaGuardar(); //supports exportation? virtual bool SoportaExportar(); //---------------------------------------------------------------------------------------------------- //region Loading interface // Starts loading. Synchronous with interface. virtual void OnCargaIniciada(); // Step1: LoadStudy not synchronized with interface thread virtual void CargarEstudio(GNC::GCS::IComando* pCmdInvocador); //Ends loading. Synchronous with interface virtual void OnCargaFinalizada(); // Step2: init pipeline synchronous with interface virtual void IniciarPipeline(); // stops pipeline, it's called if there has been an error loading study virtual void DetenerPipeline(); //endregion //call when this view is activated virtual void Activar(); virtual void ActivarRuta(long /*file_pk*/) {} //view contract virtual GNC::GCS::IVista* GetView(); //return graphic form virtual wxWindow* GetWindow(); virtual wxSizer* GetBottomSizer(); protected: void BuildTitle(); GNC::GUI::StartUpForm* m_pWindow; GNC::GCS::Ptr FooStudy; }; } } ginkgocadx-3.8.7/cadxcore/main/gui/toolsystem/000077500000000000000000000000001314736454600214065ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/gui/toolsystem/ginkgotoolsystembar.cpp000066400000000000000000000357071314736454600262340ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ginkgotoolsystembar.h" #include #include #include #include #include #include #include #include #define MOUSE_MARK_BORDER_COLOR 128, 128, 128 #define MOUSE_MARK_OFFSETS 2, 8, 14 #define MOUSE_MARK_BRUSHES wxRED_BRUSH, wxGREEN_BRUSH, wxBLUE_BRUSH class GinkgoToolSystemBarArt : public wxGinkgoToolBarArt { public: GinkgoToolSystemBarArt(GNC::GCS::IToolController* pControlador) { m_pToolBar = pControlador; } virtual ~GinkgoToolSystemBarArt() {} ////////////////////////////////////////////////////begin draw drowpdown//////////////////////////////////////// //WXWIDGETS DOESN'T SUPPORT DRAW CHECKED + DROPDOWN // wxAuiBlendColour is used by wxAuiStepColour unsigned char wxAuiBlendColour(unsigned char fg, unsigned char bg, double alpha) { double result = bg + (alpha * (fg - bg)); if (result < 0.0) result = 0.0; if (result > 255) result = 255; return (unsigned char)result; } // wxAuiStepColour() it a utility function that simply darkens // or lightens a color, based on the specified percentage // ialpha of 0 would be completely black, 100 completely white // an ialpha of 100 returns the same colour wxColor wxAuiStepColour(const wxColor& c, int ialpha) { if (ialpha == 100) return c; unsigned char r = c.Red(), g = c.Green(), b = c.Blue(); unsigned char bg; // ialpha is 0..200 where 0 is completely black // and 200 is completely white and 100 is the same // convert that to normal alpha 0.0 - 1.0 ialpha = wxMin(ialpha, 200); ialpha = wxMax(ialpha, 0); double alpha = ((double)(ialpha - 100.0))/100.0; if (ialpha > 100) { // blend with white bg = 255; alpha = 1.0 - alpha; // 0 = transparent fg; 1 = opaque fg } else { // blend with black bg = 0; alpha += 1.0; // 0 = transparent fg; 1 = opaque fg } r = wxAuiBlendColour(r, bg, alpha); g = wxAuiBlendColour(g, bg, alpha); b = wxAuiBlendColour(b, bg, alpha); return wxColour(r, g, b); } ////////////////////////////////////////////////////end draw drowpdown//////////////////////////////////////// void DrawExtraDecoration( wxDC& dc, wxWindow* /*wnd*/, const wxAuiToolBarItem& item, const wxRect& rect) { if (item.IsActive() && (item.GetState() & wxAUI_BUTTON_STATE_CHECKED) ) { GNC::GCS::IWidgetTool* pLeftTool = m_pToolBar->GetLeftTool(); GNC::GCS::IWidgetTool* pRightTool = m_pToolBar->GetRightTool(); GNC::GCS::IWidgetTool* pMiddleTool = m_pToolBar->GetMiddleTool(); static const int offx[3] = { MOUSE_MARK_OFFSETS }; bool drawItem[3] = {false, false, false}; if ( (pLeftTool != NULL) && (pLeftTool->ID == (unsigned int)item.GetId()) && (pLeftTool->GetTriggerButton().IsLeftEnabled()) ) { drawItem[0] = true; } if ( (pMiddleTool != NULL) && (pMiddleTool->ID == (unsigned int)item.GetId()) && (pMiddleTool->GetTriggerButton().IsMiddleEnabled()) ) { drawItem[1] = true; } if ( (pRightTool != NULL) && (pRightTool->ID == (unsigned int)item.GetId()) && (pRightTool->GetTriggerButton().IsRightEnabled()) ) { drawItem[2] = true; } if (drawItem[0] || drawItem[1] || drawItem[2]) { dc.SetPen( wxPen( wxColor(MOUSE_MARK_BORDER_COLOR), 1 ) ); dc.SetBrush(*wxTRANSPARENT_BRUSH); dc.DrawRoundedRectangle(rect.x + 1, rect.height - 6, 20, 7, -0.25); static const wxBrush* brush[3] = {MOUSE_MARK_BRUSHES}; for (int i = 0; i < 3; ++i) { if (drawItem[i]) { dc.SetBrush(*brush[i]); } else { dc.SetBrush(*wxTRANSPARENT_BRUSH); } dc.DrawRoundedRectangle(rect.x + offx[i], rect.height - 6, 6, 7, -0.25); } } } } virtual void DrawDropDownButton( wxDC& dc, wxWindow* wnd, const wxAuiToolBarItem& item, const wxRect& rect) { wxGinkgoToolBarArt::DrawDropDownButton(dc, wnd, item, rect); DrawExtraDecoration(dc, wnd, item, rect); } virtual void DrawButton( wxDC& dc, wxWindow* wnd, const wxAuiToolBarItem& item, const wxRect& rect) { wxGinkgoToolBarArt::DrawButton(dc, wnd, item, rect); DrawExtraDecoration(dc, wnd, item, rect); } private: GNC::GCS::IToolController* m_pToolBar; }; GNC::GUI::GinkgoToolSystemBar::GinkgoToolSystemBar(wxWindow* pParent, GNC::GCS::IToolController* pToolBar, const GNC::GCS::ITool::TToolFamily& family) : wxGinkgoToolBar(pParent,wxID_ANY, wxDefaultPosition, wxDefaultSize,wxAUI_TB_DEFAULT_STYLE ) { this->Connect(wxID_ANY,wxEVT_LEFT_UP, wxMouseEventHandler( GinkgoToolSystemBar::OnLeftUp) , NULL, this); this->Connect(wxID_ANY,wxEVT_RIGHT_UP, wxMouseEventHandler( GinkgoToolSystemBar::OnRightUp) , NULL, this); this->Connect(wxID_ANY,wxEVT_MIDDLE_UP, wxMouseEventHandler( GinkgoToolSystemBar::OnMiddleUp) , NULL, this); this->Connect(wxID_ANY, wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(GinkgoToolSystemBar::OnDropDownTool) , NULL, this); pParent->Connect(wxEVT_KEY_DOWN, wxKeyEventHandler(GinkgoToolSystemBar::OnKeyEvent ), NULL, this); SetToolBitmapSize(wxSize(16,16)); SetAutoLayout(true); m_pToolBar = pToolBar; GinkgoToolSystemBarArt* pToolArt = new GinkgoToolSystemBarArt(pToolBar); wxColor color = pToolArt->GetCustomBaseColor(); switch(family) { case GNC::GCS::ITool::TFamiliaGlobal: color = wxColor(67,67,67); break; case GNC::GCS::ITool::TFamiliaVisualizacion: color = wxColor(255,255,186); break; case GNC::GCS::ITool::TFamiliaAnotacion: color = wxColor(255,186,186); break; case GNC::GCS::ITool::TFamiliaMedicion: color = wxColor(217,255,186); break; case GNC::GCS::ITool::TFamiliaVision: color = wxColor(186,230,255); break; case GNC::GCS::ITool::TFamiliaChroma: color = wxColor(230,181,242); break; case GNC::GCS::ITool::TMenuVer: break; case GNC::GCS::ITool::TSeriesMenu: break; case GNC::GCS::ITool::TMenuHerramientas: break; case GNC::GCS::ITool::TMenuExport: break; case GNC::GCS::ITool::TMenuEdicion: break; default: break; } pToolArt->SetCustomBaseColor(color); SetArtProvider(pToolArt); GNC::GCS::IEventsController::Instance()->Registrar(this, GNC::GCS::Events::ToolConnectedEvent()); GNC::GCS::IEventsController::Instance()->Registrar(this, GNC::GCS::Events::ToolEnabledEvent()); GNC::GCS::IEventsController::Instance()->Registrar(this, GNC::GCS::Events::ChangeToolIconEvent()); } GNC::GUI::GinkgoToolSystemBar::~GinkgoToolSystemBar() { this->Disconnect(wxID_ANY, wxEVT_COMMAND_TOOL_CLICKED, wxMouseEventHandler( GinkgoToolSystemBar::OnLeftUp), NULL, this); this->Disconnect(wxID_ANY, wxEVT_COMMAND_TOOL_CLICKED, wxMouseEventHandler( GinkgoToolSystemBar::OnRightUp), NULL, this); this->Disconnect(wxID_ANY, wxEVT_COMMAND_TOOL_CLICKED, wxMouseEventHandler( GinkgoToolSystemBar::OnMiddleUp), NULL, this); this->Disconnect(wxID_ANY, wxEVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN, wxAuiToolBarEventHandler(GinkgoToolSystemBar::OnDropDownTool) , NULL, this); GetParent()->Disconnect(wxEVT_KEY_DOWN, wxKeyEventHandler( GinkgoToolSystemBar::OnKeyEvent ), NULL, this); m_pToolBar=NULL; } wxRect GNC::GUI::GinkgoToolSystemBar::GetToolRect(int tool_id) const { wxRect rect = wxAuiToolBar::GetToolRect(tool_id); rect.x -= 5; rect.y -= 5; rect.width += 5; rect.height += 5; return rect; } void GNC::GUI::GinkgoToolSystemBar::OnRightUp(wxMouseEvent& evt) { wxAuiToolBarItem* hit_item; hit_item = FindToolByPosition(evt.GetX(), evt.GetY()); if (hit_item != NULL && hit_item->IsActive()) { m_pToolBar->ActivateTool(hit_item->GetId(), GNC::GCS::TriggerButton().EnableRight(), this); } //don't remove this line, parent has to process the event!! wxGinkgoToolBar::OnRightUp(evt); } void GNC::GUI::GinkgoToolSystemBar::OnLeftUp(wxMouseEvent& evt) { wxAuiToolBarItem* hit_item; hit_item = FindToolByPosition(evt.GetX(), evt.GetY()); if (hit_item != NULL && hit_item->IsActive()) { GNC::GCS::ITool* pTool = m_pToolBar->GetTool(hit_item->GetId()); if (pTool !=NULL && !pTool->AppendsInMenu()) { //if appends in menu avoid double calling m_pToolBar->ActivateTool(hit_item->GetId(), GNC::GCS::TriggerButton().EnableLeft(), this); } } //don't remove this line, parent has to process the event!! wxGinkgoToolBar::OnLeftUp(evt); } void GNC::GUI::GinkgoToolSystemBar::OnMiddleUp(wxMouseEvent& evt) { wxAuiToolBarItem* hit_item; hit_item = FindToolByPosition(evt.GetX(), evt.GetY()); if (hit_item != NULL && hit_item->IsActive()) { m_pToolBar->ActivateTool(hit_item->GetId(), GNC::GCS::TriggerButton().EnableMiddle(), this); } //don't remove this line, parent has to process the event!! wxGinkgoToolBar::OnMiddleUp(evt); } void GNC::GUI::GinkgoToolSystemBar::OnDropDownTool(wxAuiToolBarEvent& evt) { if (evt.IsDropDownClicked()) { wxAuiToolBarItem* hit_item; hit_item = FindToolByPosition(evt.GetClickPoint().x, evt.GetClickPoint().y); if (hit_item != NULL && hit_item->IsActive()) { //Activate... wxAuiToolBar* tb = static_cast(evt.GetEventObject()); tb->SetToolSticky(evt.GetId(), true); // create the popup menu wxMenu menuPopup; m_pToolBar->AppendDropDownMenu(hit_item->GetId(), &menuPopup, &menuPopup); // line up our menu with the button wxRect rect = tb->GetToolRect(evt.GetId()); wxPoint pt = tb->ClientToScreen(rect.GetBottomLeft()); pt = ScreenToClient(pt); PopupMenu(&menuPopup, pt); // make sure the button is "un-stuck" tb->SetToolSticky(evt.GetId(), false); // m_pToolBar->ActivateTool(hit_item->GetId(), GNC::GCS::TriggerButton().EnableLeft(), this); } } evt.Skip(true); } void GNC::GUI::GinkgoToolSystemBar::OnKeyEvent(wxKeyEvent& event) { GNC::GCS::Events::EventoTeclado evt(&event, NULL); evt.Skip(true); m_pToolBar->OnKeyAccelerator(evt, this); /* #if defined(__WXGTK__) if (m_pParent != NULL) { m_pParent->SetFocus(); } #endif */ event.Skip(evt.GetSkipped()); event.ResumePropagation(3); } void GNC::GUI::GinkgoToolSystemBar::ProcesarEvento(GNC::GCS::Events::IEvent* evt) { switch (evt->GetCodigoEvento()) { case ginkgoEVT_Core_ToolConnected: { GNC::GCS::Events::ToolConnectedEvent* pToolEvt = static_cast(evt); if (pToolEvt->GetToolBar() == m_pToolBar) { this->ForceToggleTool(pToolEvt->GetTool()->ID, pToolEvt->IsConnected()); wxRect rect = GetToolRect(pToolEvt->GetTool()->ID); Refresh(true, &rect); } } break; case ginkgoEVT_Core_ToolEnabled: { GNC::GCS::Events::ToolEnabledEvent* pToolEvt = static_cast(evt); if (pToolEvt->GetToolBar() == m_pToolBar) { this->EnableTool(pToolEvt->GetTool()->ID, pToolEvt->IsEnabled()); wxRect rect = GetToolRect(pToolEvt->GetTool()->ID); Refresh(true, &rect); } } break; case ginkgoEVT_Core_ToolIconChanged: { GNC::GCS::Events::ChangeToolIconEvent* pToolEvt = static_cast(evt); if (pToolEvt->GetToolBar() == m_pToolBar) { this->SetToolBitmap(pToolEvt->GetTool()->ID, *pToolEvt->GetBitmap()); wxRect rect = GetToolRect(pToolEvt->GetTool()->ID); Refresh(true, &rect); } } break; } } ginkgocadx-3.8.7/cadxcore/main/gui/toolsystem/ginkgotoolsystembar.h000066400000000000000000000033131314736454600256650ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef WXGINKGOTOOLBAR_H #define WXGINKGOTOOLBAR_H #include #include #include #include namespace GNC { namespace GCS { class IToolController; } namespace GUI { class GinkgoToolSystemBar : public wxGinkgoToolBar, public GNC::GCS::IEventsObserver { public: GinkgoToolSystemBar(wxWindow* pParent, GNC::GCS::IToolController* pToolBar, const GNC::GCS::ITool::TToolFamily& family); ~GinkgoToolSystemBar(); virtual void ProcesarEvento(GNC::GCS::Events::IEvent* evt); protected: virtual wxRect GetToolRect(int tool_id) const; virtual void OnRightUp(wxMouseEvent& evt); virtual void OnLeftUp(wxMouseEvent& evt); virtual void OnMiddleUp(wxMouseEvent& evt); virtual void OnDropDownTool(wxAuiToolBarEvent& evt); virtual void OnKeyEvent(wxKeyEvent& event); GNC::GCS::IToolController* m_pToolBar; }; } } #endif ginkgocadx-3.8.7/cadxcore/main/gui/toolsystem/wxmenuitemtool.cpp000066400000000000000000000056531314736454600252230ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "wxmenuitemtool.h" #include #include #include GNC::GUI::wxMenuItemTool::wxMenuItemTool(wxMenu* pMenuPadre, long id, const wxString& name, const wxBitmap& /*bitmap*/, wxEvtHandler* pHandler, int type): wxMenuItem(pMenuPadre, id, name, name, type == wxITEM_CHECK ? wxITEM_CHECK : wxITEM_NORMAL) { m_pHandler = pHandler; //this->SetBitmap(bitmap); } GNC::GUI::wxMenuItemTool::~wxMenuItemTool() { if(m_pHandler != NULL) { delete m_pHandler; m_pHandler = NULL; } } GNC::GUI::wxDefaultEvtHandlerTool::wxDefaultEvtHandlerTool(wxEvtHandler* pParent, GNC::GCS::ITool* pTool):wxEvtHandler() { m_pParent = pParent; m_pTool=pTool; // Connect Events m_pParent->Connect(m_pTool->ID, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxDefaultEvtHandlerTool::OnToolClick),NULL,this); m_pParent->Connect(m_pTool->ID, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxDefaultEvtHandlerTool::OnUpdateUI),NULL,this); } GNC::GUI::wxDefaultEvtHandlerTool::~wxDefaultEvtHandlerTool() { m_pParent->Disconnect(m_pTool->ID, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxDefaultEvtHandlerTool::OnToolClick),NULL,this); m_pParent->Disconnect(m_pTool->ID, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxDefaultEvtHandlerTool::OnUpdateUI),NULL,this); } void GNC::GUI::wxDefaultEvtHandlerTool::OnToolClick(wxCommandEvent& event) { GNC::GCS::TriggerButton button; button.EnableLeft(); event.Skip(false); if (m_pTool->GetToolBar() != NULL) { m_pTool->GetToolBar()->ActivateTool(m_pTool->ID, button, NULL); } if (m_pTool->AppendsInGlobalMenu()) { m_pTool->ExecuteAction(); } } void GNC::GUI::wxDefaultEvtHandlerTool::OnUpdateUI(wxUpdateUIEvent& event) { event.Enable(m_pTool->IsEnabled()); } GNC::GUI::wxMenuTool::wxMenuTool(wxEvtHandler* pHandler) { m_pHandler = pHandler; } GNC::GUI::wxMenuTool::~wxMenuTool() { if(m_pHandler != NULL) { delete m_pHandler; m_pHandler = NULL; } } ginkgocadx-3.8.7/cadxcore/main/gui/toolsystem/wxmenuitemtool.h000066400000000000000000000033761314736454600246700ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef WXMENUITEMTOOL_H #define WXMENUITEMTOOL_H #include #include #include namespace GNC { namespace GCS { class ITool; } namespace GUI { class EXTAPI wxMenuItemTool : public wxMenuItem { public: wxMenuItemTool(wxMenu* pMenuPadre, long id, const wxString& name, const wxBitmap& bitmap, wxEvtHandler* pHandler, int type = wxITEM_NORMAL); virtual ~wxMenuItemTool(); wxEvtHandler* m_pHandler; }; class EXTAPI wxDefaultEvtHandlerTool: public wxEvtHandler { public: wxDefaultEvtHandlerTool(wxEvtHandler* pParent, GNC::GCS::ITool* pTool); virtual ~wxDefaultEvtHandlerTool(); virtual void OnToolClick(wxCommandEvent& event); virtual void OnUpdateUI(wxUpdateUIEvent& event); protected: GNC::GCS::ITool* m_pTool; wxEvtHandler* m_pParent; }; class EXTAPI wxMenuTool : public wxMenu { public: wxMenuTool(wxEvtHandler* pHandler); virtual ~wxMenuTool(); wxEvtHandler* m_pHandler; }; } } #endif ginkgocadx-3.8.7/cadxcore/main/gui/wxprevisualizaciondicom.cpp000066400000000000000000000111711314736454600246530ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifdef __DEPRECATED #undef __DEPRECATED #endif #include "wxprevisualizaciondicom.h" #include #include #include #include #include #include #include class wxPreviewVTKRenderWindowInteractor: public wxVTKRenderWindowInteractor { public: wxPreviewVTKRenderWindowInteractor(wxPrevisualizacionDicom *parent, wxWindowID id, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = wxWANTS_CHARS | wxNO_FULL_REPAINT_ON_RESIZE, const wxString &name = wxPanelNameStr) : wxVTKRenderWindowInteractor(parent, id, pos, size, style, name) { m_pParent = parent; } virtual void OnMouseDoubleClick(wxMouseEvent& event) { if (!Enabled || (ActiveButton != wxEVT_NULL)) { return; } Activar(); ActiveButton = event.GetEventType(); // On Mac (Carbon) and Windows we don't automatically get the focus when // you click inside the window // we therefore set the focus explicitly // Apparently we need that on linux (GTK) too: this->SetFocus(); SetEventInformationFlipY(event.GetX(), event.GetY(), event.ControlDown(), event.ShiftDown(), '\0', 1, NULL); if (event.LeftDClick()) { m_pParent->OnMouseLeftDClick(); } ActiveButton = wxEVT_NULL; TransformarEvento(event); } wxPrevisualizacionDicom* m_pParent; }; wxPrevisualizacionDicom::wxPrevisualizacionDicom(wxWindow* parent, wxWindowID ) : wxPanel(parent, wxID_ANY) { Sizer = new wxBoxSizer( wxHORIZONTAL ); ViewInteractor = NULL; ViewInteractor = new wxPreviewVTKRenderWindowInteractor (this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS | wxNO_FULL_REPAINT_ON_RESIZE, wxT("")); ViewImage2D = vtkGinkgoImageViewer::New(); vtkRenderer* rend = vtkRenderer::New(); ViewImage2D->SetRenderWindow ( this->ViewInteractor->GetRenderWindow() ); ViewImage2D->SetRenderer (rend); ViewImage2D->SetBackgroundColor(0.0f,0.0f,0.0f); ViewImage2D->SetShowAnnotations(false); ViewImage2D->SetInteractionOn(); GinkgoInteractorStyleImage2D* pInteractor = GinkgoInteractorStyleImage2D::SafeDownCast(ViewImage2D->GetInteractorStyle().GetPointer()); if (pInteractor != NULL) { pInteractor->SetPreviewMode(true); } ViewImage2D->SetOrientation(vtkGinkgoImageViewer::AXIAL_ID); rend->Delete(); this->SetSizer( Sizer ); Sizer->Add( ViewInteractor, 1, wxEXPAND ); this->Layout(); } wxPrevisualizacionDicom::~wxPrevisualizacionDicom() { reset(); } void wxPrevisualizacionDicom::SetInput(vtkSmartPointer& data) { if (data == NULL) { reset(); } else { ViewImage2D->SetInput(data, true); ViewImage2D->ResetZoom(false, 0); ViewInteractor->Render(); } } void wxPrevisualizacionDicom::reset() { if (ViewImage2D != NULL) { ViewImage2D->Detach(); ViewImage2D->Delete(); } if (ViewInteractor != NULL) { ViewInteractor->Delete(); } } void wxPrevisualizacionDicom::OnMouseLeftDClick() {} ginkgocadx-3.8.7/cadxcore/main/gui/wxprevisualizaciondicom.h000066400000000000000000000035361314736454600243260ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #if defined(__DEPRECATED) #undef __DEPRECATED #endif #include #include #include #include #include class GinkgoRenderWindowInteractor; class GinkgoImageViewer; class vtkImageData; class wxVTKRenderWindowInteractor; class vtkGinkgoImageViewer; class EXTAPI wxPrevisualizacionDicom : public wxPanel { public: wxPrevisualizacionDicom(wxWindow* parent, wxWindowID id = wxID_ANY); ~wxPrevisualizacionDicom(); void SetInput(vtkSmartPointer& data); vtkGinkgoImageViewer* GetView() { return ViewImage2D; }; wxVTKRenderWindowInteractor* GetInteractor() { return ViewInteractor; } virtual void OnMouseLeftDClick(); protected: /* GinkgoRenderWindowInteractor* ViewInteractor; GinkgoImageViewer* ViewImage2D; */ wxVTKRenderWindowInteractor* ViewInteractor; vtkGinkgoImageViewer* ViewImage2D; wxBoxSizer* Sizer; void reset(); }; ginkgocadx-3.8.7/cadxcore/main/license.h000066400000000000000000000106441314736454600202000ustar00rootroot00000000000000/* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #define GINKGO_COPYRIGHT "© 2007-2016" #define PRODUCT_NAME "Ginkgo CADx" #define PRODUCT_SUBTITLE _Std("Open Source DICOM CADx environment") #define CREDITS "https://github.com/gerddie/ginkgocadx"\ "

    © 2015-2016 Gert Wollny

    "\ "

    © 2007-2014 MetaEmotion Healthcare

    "\ "

    ¡Queremos agradecer a Sacyl por todo el apoyo en la creación de Ginkgo CADx!

    "\ "

    Traductores

    "\ "
      "\ "
    • Japonés: Noriya Yokohama
    • "\ "
    • Alemán: Sebastian Hilbert
    • "\ "
    • Turco: zeugma (sunder67)
    • "\ "
    • Español: JFLP (jluna80)
    • "\ "
    • Portugués (Brasil): Marcel Ribeiro Dantas
    • "\ "
    • Portugués (Portugal): Vitor Neves
    • "\ "
    "\ "

    Agradecimientos

    "\ "
      "\ "
    • Debian-Med team especialmente a Andreas Tille and Karlsten Hilbert: empaquetado, pruebas y reporte de errores
    • "\ "
    • Ross Boswell: pruebas de compatibilidad con PACS
    • "\ "
    " // // // Permisos completos // "\n" // "\n" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "" // "\n" ginkgocadx-3.8.7/cadxcore/main/managers/000077500000000000000000000000001314736454600201755ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/managers/widgetsmanager.cpp000066400000000000000000001433211314736454600237060ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #if defined(__DEPRECATED) #undef __DEPRECATED #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include
    #include
    #include #include #include #include "widgetsmanager.h" #include #include #include class TimerAnimation : public wxTimer { public: TimerAnimation(GNC::GCS::IWidgetsManager* pManager) { m_pManager = pManager; m_Frecuencia = 20.0f; } ~TimerAnimation() {} virtual void Notify() { m_pManager->TickAnimation(m_Frecuencia); //std::cout << "Tick()" << std::endl; m_pManager->Render(); } void Enable() { if (IsRunning()) { Stop(); } Start((int)( 1000.0f * (1.0f/m_Frecuencia) ) ); } void Disable() { if (IsRunning()) { Stop(); } } protected: GNC::GCS::IWidgetsManager* m_pManager; double m_Frecuencia; }; GNC::WidgetsManager::WidgetsManager(GNC::GCS::IVista* pVista):GNC::GCS::IWidgetsManager(pVista), m_pAnnotator(new GNC::GCS::IAnnotator(pVista)) { m_pRendererActivo = NULL; m_cursor = GNC::GCS::Widgets::CUR_FLECHA; m_mouseDerechoDown = false; m_mouseIzquierdoDown = false; m_middleDown = false; m_pTimerAnimation = new TimerAnimation(this); GNC::GCS::Widgets::WAnotador* pW = new GNC::GCS::Widgets::WAnotador(this,-1,"",-1); InsertarWidget(pW); GNC::GCS::Widgets::WAnotacionPosicion* pPosicion = new GNC::GCS::Widgets::WAnotacionPosicion(this,-1,"",-1); InsertarWidget(pPosicion); GNC::GCS::Widgets::WStaticRule* pStaticRule = new GNC::GCS::Widgets::WStaticRule(this,-1,"",-1); InsertarWidget(pStaticRule); } GNC::WidgetsManager::~WidgetsManager() { if (m_pTimerAnimation != NULL) { delete m_pTimerAnimation; m_pTimerAnimation = NULL; } for (GNC::GCS::ListaRenderers::iterator itr = m_Renderers.begin(); itr != m_Renderers.end(); ++itr) { GNC::GCS::IWidgetsRenderer* pRenderer = *itr; pRenderer->WSetCurrent(); for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(w->ReservaRecursos()) { w->LiberarRecursos(pRenderer); } } } GNC::GCS::ListaRenderers copia(m_Renderers); // Porque los renderers invocaran a EliminarRenderer de esta misma instancia; for (GNC::GCS::ListaRenderers::iterator it = copia.begin(); it != copia.end(); ++it) { GNC::GCS::IWidgetsRenderer* renderer = *it; renderer->SetManager(NULL); } m_Widgets.clear(); } void GNC::WidgetsManager::TickAnimation(double freq) { for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = *it; if (!w->EstaOculto()) { w->TickAnimation(freq); } } } void GNC::WidgetsManager::EnableAnimation() { m_pTimerAnimation->Enable(); } void GNC::WidgetsManager::DisableAnimation() { m_pTimerAnimation->Disable(); } inline void GNC::WidgetsManager::ModificarRenderersDeWidget(GNC::GCS::Widgets::IWidget* w) { if (w != NULL && !w->EsTopLevel()) { for (GNC::GCS::ListaRenderers::iterator itr = m_Renderers.begin(); itr != m_Renderers.end(); ++itr) { GNC::GCS::IWidgetsRenderer* ren = *itr; if (w->GetVID() != -1 && w->GetVID() == ren->GetVID()) { ren->Modificar(true); } } } } //---------------------------------------------------------------------------------------------------- //region "Interfaz especifica" void GNC::WidgetsManager::RenderPrivate(GNC::GCS::Contexto3D* c) { if (!m_Enabled) { return; } glPushAttrib(GL_ENABLE_BIT); bool widgetIluminado = false; // Primera pasada: widgets normales. for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = *it; if (!w->EsTopLevel() && (w->GetVID() == c->GetRenderer()->GetVID() || w->GetVID() == -1) ) { w->Render(c); w->Modificar(false); } widgetIluminado = widgetIluminado || (!w->EstaOculto()&& w->EstaIluminado()); } // Segunda pasada: widgets toplevel. for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = *it; if (w->EsTopLevel()) { w->Render(c); } } if (c->GetRenderer() == m_pRendererActivo) { for (GNC::GCS::ListaBuilders::iterator it = m_pBuilders.begin(); it != m_pBuilders.end(); ++it) { (*it)->Render(c); } } //cursor if(widgetIluminado) { //encima de un widget selecc e iluminado => si esta pulsando el boton derecho moviendose, si no pues no if(m_mouseIzquierdoDown) { SetCursor(GNC::GCS::Widgets::CUR_MANO_CERRADA); //std::cout << "WIluminado: IZDown: Mano Cerrada " << std::endl; } else { SetCursor(GNC::GCS::Widgets::CUR_MANO_ABIERTA); //std::cout << "WIluminado !IZDown: Mano Abierta " << std::endl; } } else { bool cursorNotFound = true; if (m_mouseIzquierdoDown) { //si no se lo pedimos al primer builder que encontremos for (GNC::GCS::ListaBuilders::iterator it = m_pBuilders.begin(); cursorNotFound && it != m_pBuilders.end(); ++it) { if ((*it)->GetButtonMask().IsLeftEnabled()) { if((*it)->GetCursor() != GNC::GCS::Widgets::CUR_INVALIDO) { //std::cout << "!WIluminado: !DERDown: Builder cursor " << std::endl; SetCursor((*it)->GetCursor()); cursorNotFound = false; } } } } if (m_middleDown) { for (GNC::GCS::ListaBuilders::iterator it = m_pBuilders.begin(); cursorNotFound && it != m_pBuilders.end(); ++it) { if ((*it)->GetButtonMask().IsMiddleEnabled()) { if((*it)->GetCursor() != GNC::GCS::Widgets::CUR_INVALIDO) { //std::cout << "!WIluminado: !DERDown: Builder cursor " << std::endl; SetCursor((*it)->GetCursor()); cursorNotFound = false; } } } } if (m_mouseDerechoDown) { //builder que atienda al boton derecho for (GNC::GCS::ListaBuilders::iterator it = m_pBuilders.begin(); cursorNotFound && it != m_pBuilders.end(); ++it) { if ((*it)->GetButtonMask().IsRightEnabled()) { if((*it)->GetCursor() != GNC::GCS::Widgets::CUR_INVALIDO) { //std::cout << "!WIluminado: !DERDown: Builder cursor " << std::endl; SetCursor((*it)->GetCursor()); cursorNotFound = false; } } } } if (cursorNotFound) { //try left... //si no se lo pedimos al primer builder que encontremos for (GNC::GCS::ListaBuilders::iterator it = m_pBuilders.begin(); cursorNotFound && it != m_pBuilders.end(); ++it) { if ((*it)->GetButtonMask().IsLeftEnabled()) { if((*it)->GetCursor() != GNC::GCS::Widgets::CUR_INVALIDO) { //std::cout << "!WIluminado: !DERDown: Builder cursor " << std::endl; SetCursor((*it)->GetCursor()); cursorNotFound = false; } } } if (cursorNotFound) { SetCursor(GNC::GCS::Widgets::CUR_FLECHA); } } } c->GetRenderer()->Modificar(false); glPopAttrib(); } void GNC::WidgetsManager::Render() { if (!m_Enabled) { return; } bool seleccionEnActual = false; bool seleccionEnOtro = false; // Primera pasada: Widgets for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = *it; if (!w->EsTopLevel() && !w->EstaOculto()) { if (m_pRendererActivo) { // Si hay renderer activo, comprobamos las selecciones. if (w->EstaSeleccionado()) { if (w->GetVID() == m_pRendererActivo->GetVID()) { seleccionEnActual = true; } else { seleccionEnOtro = true; } } } if (w->EstaModificado()) { w->Modificar(false); ModificarRenderersDeWidget(w); } } } if (seleccionEnActual && seleccionEnOtro) { // Segunda pasada opcional: Deseleccion de selecciones en renderers no activos for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = *it; if (!w->EsTopLevel() && !w->EstaOculto()) { if (m_pRendererActivo) { // Si hay renderer activo, comprobamos las selecciones. if (w->EstaSeleccionado()) { if (w->GetVID() != m_pRendererActivo->GetVID()) { w->Seleccionar(false); w->Modificar(false); ModificarRenderersDeWidget(w); } } } } } } for (GNC::GCS::ListaRenderers::iterator it = m_Renderers.begin(); it != m_Renderers.end(); ++it) { GNC::GCS::IWidgetsRenderer* ren = *it; if (ren->EstaModificado()) { GTRACE("Renderer[" << ren->GetVID() << "] modificado. Rendering..."); //si el renderer es el activo, provoca un update inmediato, sino solo un refresh que hará un update cuando pueda ren->PostRender(ren == m_pRendererActivo); ren->Modificar(false); } } } void GNC::WidgetsManager::OffScreenRender(GNC::GCS::Contexto3D* c) { if (!m_Enabled) { return; } // Primera pasada: Widgets normales for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = *it; if (!w->EstaOculto() && !w->EsTopLevel() && w->GetVID() == c->OVID) { w->OffscreenRender(c); } } // Primera pasada: Widgets top level for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = *it; if (!w->EstaOculto() && w->EsTopLevel()) { w->OffscreenRender(c); } } } void GNC::WidgetsManager::Modificado() { if (m_pRendererActivo != NULL) { m_pRendererActivo->Modificar(true); } } void GNC::WidgetsManager::ModificadoPorWidget(GNC::GCS::Widgets::IWidget* w) { this->ModificarRenderersDeWidget(w); } void GNC::WidgetsManager::OnMouseEvents(GNC::GCS::Events::EventoRaton& evento) { if (!m_Enabled) { return; } evento.Skip(true); if (!evento.c->IsOk()) { std::cerr << "Adverencia: Render omitido: singularidad en contexto" << std::endl; } //pillamos boton derecho e izquierdo down-up m_mouseIzquierdoDown = evento.LeftIsDown(); m_middleDown = evento.MiddleIsDown(); m_mouseDerechoDown = evento.RightIsDown(); // Primera pasada: widgets toplevel. for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(!w->EstaOculto() && w->EsTopLevel() && !w->IgnoraEventos()) { w->OnMouseEvents(evento); if (w->EstaModificado()) { Modificado(); if (w->RequiereNotificarCambios()) { w->NotificarCambios(false); NotificarModificacion(w); } w->Modificar(false); } } } // Segunda pasada: widgets normales. for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(!w->EstaOculto() && !w->EsTopLevel() && !w->IgnoraEventos() && ( w->GetVID() == evento.c->GetRenderer()->GetVID())) { w->OnMouseEvents(evento); if (w->EstaModificado()) { Modificado(); if (w->RequiereNotificarCambios()) { w->NotificarCambios(false); NotificarModificacion(w); } w->Modificar(false); } if (w->EstaIluminado() && ( evento.LeftUp() ||evento.LeftDown() )) { // Si el widget esta iluminado y este evento es up/down del boton izquierdo, forzamos render para cambiar el cursor. Modificado(); } } } for (GNC::GCS::ListaBuilders::iterator it = m_pBuilders.begin(); evento.GetSkipped() && it != m_pBuilders.end(); ++it) { (*it)->OnMouseEvents(evento); if (!evento.GetSkipped()) { break; } } if (evento.GetSkipped()) { DefaultMouseEventProcess(evento); if (evento.GetSkipped()) { if (this->m_pDefaultEventListenerDelegate != NULL) { this->m_pDefaultEventListenerDelegate->OnMouseEvents(evento); } else { if (m_pView != NULL && evento.ButtonUp(GNC::GCS::Events::EventoRaton::EB_DERECHO)) { wxMenu menu; m_pView->GetToolController()->AppendsToolInMenu(this, &menu, GNC::GCS::ITool::TSeriesMenu); evento.c->pWindow->PopupMenu(&menu, wxPoint(evento.sX, evento.sY)); } } } } if (m_pRendererActivo != NULL && m_pRendererActivo->EstaModificado()) { Render(); } } void GNC::WidgetsManager::OnKeyEvents(GNC::GCS::Events::EventoTeclado& evento) { if (!m_Enabled) { return; } evento.Skip(true); /* Paso de auto-borrado (si lo soporta el widget) */ if (evento.GetKeyCode() == WXK_DELETE || evento.GetKeyCode() == WXK_BACK) { GNC::GCS::ListaWidgets lw; for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(!w->EstaOculto() && w->EstaSeleccionado() && w->SoportaAutoBorrado() && (w->GetVID() == -1 || w->GetVID() == evento.c->GetRenderer()->GetVID())) { lw.push_back(w); } } for (IteradorListaWidgets it = lw.begin(); it != lw.end(); ++it) { EliminarWidget(*it, true); Modificado(); } } else if (evento.GetKeyCode() == 'r' || evento.GetKeyCode() == 'R') { for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); w->Modificar(true); } } for (GNC::GCS::ListaBuilders::iterator it = m_pBuilders.begin(); it != m_pBuilders.end(); ++it) { (*it)->OnKeyEvents(evento); if (!evento.GetSkipped()) { break; } } // Primera pasada: widgets toplevel. for (IteradorListaWidgets it = m_Widgets.begin(); evento.GetSkipped() && it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(!w->EstaOculto() && w->EsTopLevel() && !w->IgnoraEventos() && (w->GetVID() == evento.c->GetRenderer()->GetVID())) { w->OnKeyEvents(evento); if (w->EstaModificado()) { Modificado(); if (w->RequiereNotificarCambios()) { w->NotificarCambios(false); NotificarModificacion(w); } } } } // Segunda pasada: widgets normales. for (IteradorListaWidgets it = m_Widgets.begin(); evento.GetSkipped() && it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(!w->EstaOculto() && !w->EsTopLevel() && !w->IgnoraEventos() && (w->GetVID() == evento.c->GetRenderer()->GetVID())) { w->OnKeyEvents(evento); if (w->EstaModificado()) { Modificado(); if (w->RequiereNotificarCambios()) { w->NotificarCambios(false); NotificarModificacion(w); } } } } if (evento.GetSkipped()) { DefaultKeyEventProcess(evento); } Render(); } void GNC::WidgetsManager::DefaultMouseEventProcess(GNC::GCS::Events::EventoRaton& evento) { if (!m_Enabled) { return; } /* Paso de mostrar menu si procede */ if (evento.ButtonUp(GNC::GCS::Events::EventoRaton::EB_DERECHO)) { //std::cout << "DerUp! ¿Render?" << std::endl; SetCursor(GNC::GCS::Widgets::CUR_MANO_ABIERTA); GNC::GCS::ListaWidgets lw; for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(!w->EstaOculto() && w->EstaSeleccionado() && !w->IgnoraEventos() && (w->GetVID() == -1 || w->GetVID() == evento.c->GetRenderer()->GetVID())) { lw.push_back(w); } } if(lw.size()>0) { //comprobamos si alguno de los seleccionados valida el hittest for (IteradorListaWidgets it = lw.begin(); it != lw.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(w->HitTest(evento.iP.x, evento.iP.y, evento.c->RelacionImagenPantalla())) { wxMenu menu; if(lw.size() == 1) { //se meten las opciones que pueda aportar el widget w->GetMenuContextual(&menu, evento.c->pWindow ); if(menu.GetMenuItemCount()>0) { menu.AppendSeparator(); } } GetMenuContextual(&menu); //en este caso hay varios seleccionados pues se muestra el menu comun... evento.c->pWindow->PopupMenu(&menu,wxPoint(evento.sX, evento.sY)); bool cursorNotFound = true; for (GNC::GCS::ListaBuilders::iterator it = m_pBuilders.begin(); cursorNotFound && it != m_pBuilders.end(); ++it) { if ((*it)->GetCursor() != GNC::GCS::Widgets::CUR_INVALIDO) { SetCursor((*it)->GetCursor()); cursorNotFound = false; } } if (cursorNotFound) { //y si no pues si esta pulsando el derecho es que esta haciendo pan SetCursor(GNC::GCS::Widgets::CUR_FLECHA); } ConsumirEvento(); break; } } } if(!(EventoConsumido())) { if(lw.size()>0) { //se deseleccionan los widgets seleccionados for (IteradorListaWidgets it = lw.begin(); it != lw.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); w->Seleccionar(false); } } //hay que buscar si algun widget valida el hittest, en ese caso se selecciona y se muestra el menu GNC::GCS::Widgets::IWidget* widgetMenu = NULL; for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(!w->EstaOculto() && !w->IgnoraEventos() && (w->GetVID() == -1 || w->GetVID() == evento.c->GetRenderer()->GetVID()) && w->HitTest(evento.iP.x, evento.iP.y, evento.c->RelacionImagenPantalla())) { widgetMenu = w; break; } } if(widgetMenu != NULL) { widgetMenu->Seleccionar(true); wxMenu menu; //se meten las opciones que pueda aportar el widget widgetMenu->GetMenuContextual(&menu, evento.c->pWindow ); if(menu.GetMenuItemCount()>0) { menu.AppendSeparator(); } GetMenuContextual(&menu); //en este caso hay varios seleccionados pues se muestra el menu comun... evento.c->pWindow->PopupMenu(&menu, wxPoint(evento.sX, evento.sY)); ConsumirEvento(); } } } else { evento.Skip(true); } } void GNC::WidgetsManager::DefaultKeyEventProcess(GNC::GCS::Events::EventoTeclado& evento) { if (!m_Enabled) { return; } evento.Skip(true); } void GNC::WidgetsManager::PropagarHitTestSeleccion(GNC::GCS::Vector* vertices, int numVertices) { if (!m_Enabled) { return; } for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(!w->EstaOculto() && !w->IgnoraEventos() && w->HitTest(vertices, numVertices)) { w->Seleccionar(true); } } } //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de registro de Renderers" void GNC::WidgetsManager::SetRendererActivo(GNC::GCS::IWidgetsRenderer* pRenderer) { if (m_pRendererActivo != pRenderer) { if (m_pRendererActivo != NULL) { m_pRendererActivo->Modificar(true); } m_pRendererActivo = pRenderer; } } void GNC::WidgetsManager::InsertarRenderer(GNC::GCS::IWidgetsRenderer* pRenderer) { bool notfound = true; for (GNC::GCS::ListaRenderers::iterator it = m_Renderers.begin(); notfound && (it != m_Renderers.end()); ++it) { GNC::GCS::IWidgetsRenderer* renderer = *it; if (pRenderer == renderer) { notfound = false; } } if (notfound == true) { m_Renderers.push_back(pRenderer); } } void GNC::WidgetsManager::EliminarRenderer(GNC::GCS::IWidgetsRenderer* pRenderer) { bool notfound = true; GNC::GCS::ListaRenderers::iterator itpos = m_Renderers.end(); for (GNC::GCS::ListaRenderers::iterator it = m_Renderers.begin(); notfound && (it != m_Renderers.end()); ++it) { GNC::GCS::IWidgetsRenderer* renderer = *it; if (pRenderer == renderer) { if (renderer == m_pRendererActivo) { m_pRendererActivo = NULL; } notfound = false; itpos = it; } } if (itpos != m_Renderers.end()) { m_Renderers.erase(itpos); } if (m_pRendererActivo == NULL && m_Renderers.size() > 0) { m_pRendererActivo = m_Renderers.front(); } } void GNC::WidgetsManager::LiberarRecursos(GNC::GCS::IWidgetsRenderer* pRenderer) { pRenderer->WSetCurrent(); for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { (*it)->LiberarRecursos(pRenderer); } } //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de registro de IWidget's" void GNC::WidgetsManager::InsertarWidget(GNC::GCS::Widgets::IWidget* pWidget, bool propagarEvento) { m_Widgets.push_back(pWidget); if (propagarEvento) { NotificarCreacion(pWidget); } } void GNC::WidgetsManager::EliminarWidget(const GNC::GCS::Widgets::IWidget* pWidget, bool propagarEvento) { IteradorListaWidgets it; for (it = m_Widgets.begin(); it != m_Widgets.end() && (*it) != pWidget; ++it); if (it != m_Widgets.end()) { GNC::GCS::Widgets::IWidget* pRemovingWidget = (*it); if (pRemovingWidget != NULL) { if (propagarEvento) { NotificarDestruccion(pRemovingWidget); } if(pRemovingWidget->ReservaRecursos()) { for (GNC::GCS::ListaRenderers::iterator itr = m_Renderers.begin(); itr != m_Renderers.end(); ++itr) { GNC::GCS::IWidgetsRenderer* pRenderer = *itr; pRenderer->WSetCurrent(); pRemovingWidget->LiberarRecursos(pRenderer); } } delete pRemovingWidget; } m_Widgets.erase(it); } } void GNC::WidgetsManager::EliminarWidget(GNC::GCS::IWidgetsManager::IteradorListaWidgets& it, bool propagarEvento) { if (it != m_Widgets.end()) { GNC::GCS::Widgets::IWidget* w = (*it); if (propagarEvento) { NotificarDestruccion(w); } if(w->ReservaRecursos()) { for (GNC::GCS::ListaRenderers::iterator itr = m_Renderers.begin(); itr != m_Renderers.end(); ++itr) { GNC::GCS::IWidgetsRenderer* pRenderer = *itr; pRenderer->WSetCurrent(); w->LiberarRecursos(pRenderer); } } delete w; m_Widgets.erase(it); } } void GNC::WidgetsManager::RemoveAllWidgetsExceptTID(long tid, bool propagateEvents) { GNC::GCS::ListaWidgets lw; for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if (w != NULL && w->GetTID() != tid) { lw.push_back(w); } } for (IteradorListaWidgets it = lw.begin(); it != lw.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if (propagateEvents) { NotificarDestruccion(w); } if(w->ReservaRecursos()) { for (GNC::GCS::ListaRenderers::iterator itr = m_Renderers.begin(); itr != m_Renderers.end(); ++itr) { GNC::GCS::IWidgetsRenderer* pRenderer = *itr; pRenderer->WSetCurrent(); w->LiberarRecursos(pRenderer); } } m_Widgets.remove(w); delete w; } } void GNC::WidgetsManager::RemoveUserAnnotationWidgets(bool propagateEvents) { GNC::GCS::ListaWidgets lw; for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if (w != NULL && w->GetTID() == TID_USER_ANNOTATION_WIDGET) { lw.push_back(w); } } for (IteradorListaWidgets it = lw.begin(); it != lw.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if (propagateEvents) { NotificarDestruccion(w); } if(w->ReservaRecursos()) { for (GNC::GCS::ListaRenderers::iterator itr = m_Renderers.begin(); itr != m_Renderers.end(); ++itr) { GNC::GCS::IWidgetsRenderer* pRenderer = *itr; pRenderer->WSetCurrent(); w->LiberarRecursos(pRenderer); } } m_Widgets.remove(w); delete w; } } void GNC::WidgetsManager::EliminarTodosLosWidgets(bool propagarEventos) { while (!m_Widgets.empty()) { GNC::GCS::Widgets::IWidget* w = m_Widgets.front(); if (propagarEventos) { NotificarDestruccion(w); } if(w->ReservaRecursos()) { for (GNC::GCS::ListaRenderers::iterator itr = m_Renderers.begin(); itr != m_Renderers.end(); ++itr) { GNC::GCS::IWidgetsRenderer* pRenderer = *itr; pRenderer->WSetCurrent(); w->LiberarRecursos(pRenderer); } } delete w; m_Widgets.erase(m_Widgets.begin()); } } /** Set visible on all widgets matching TID **/ void GNC::WidgetsManager::SetVisibleByTID(bool visible, long tid) { for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(w->GetTID() == tid) { if(!visible && w->ReservaRecursos()) { for (GNC::GCS::ListaRenderers::iterator itr = m_Renderers.begin(); itr != m_Renderers.end(); ++itr) { GNC::GCS::IWidgetsRenderer* pRenderer = *itr; pRenderer->WSetCurrent(); w->LiberarRecursos(pRenderer); } } w->Ocultar(!visible); } } } void GNC::WidgetsManager::OcultarTodosLosWidgets(bool ocultar, long GID) { for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(w->GetGID() == GID) { if(ocultar && w->ReservaRecursos()) { for (GNC::GCS::ListaRenderers::iterator itr = m_Renderers.begin(); itr != m_Renderers.end(); ++itr) { GNC::GCS::IWidgetsRenderer* pRenderer = *itr; pRenderer->WSetCurrent(); w->LiberarRecursos(pRenderer); } } w->Ocultar(ocultar); } } } void GNC::WidgetsManager::EliminarTodosLosWidgets(long GID) { GNC::GCS::ListaWidgets listaEliminados; for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(w->GetGID() == GID) { listaEliminados.push_back(w); } } for(IteradorListaWidgets it = listaEliminados.begin(); it!= listaEliminados.end(); ++it) { EliminarWidget((*it)); } } void GNC::WidgetsManager::OcultarWidgetsDeSubVista(bool /*ocultar*/, long /*vid*/) { /* for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = *it; if(w->GetVID() == vid){ if( w->EstaOculto() != ocultar ) { if (ocultar && w->ReservaRecursos()) { for (ListaRenderers::iterator itr = m_Renderers.begin(); itr != m_Renderers.end(); ++itr) { GNC::GCS::IWidgetsRenderer* pRenderer = *itr; pRenderer->WSetCurrent(); w->LiberarRecursos(pRenderer); } } w->Ocultar(ocultar); Modificado(); } } } */ } GNC::GCS::ListaWidgets& GNC::WidgetsManager::GetListaWidgets() { return m_Widgets; } void GNC::WidgetsManager::GetListaWidgetsSubVista(long vid, GNC::GCS::ListaWidgets& lista) { for(GNC::GCS::IWidgetsManager::IteradorListaWidgets it = m_Widgets.begin(); it!= m_Widgets.end(); ++it) { if((*it)->GetVID() == vid) { lista.push_back((*it)); } } } //endregion //---------------------------------------------------------------------------------------------------- //endregion "Interfaz de Observadores" void GNC::WidgetsManager::NotificarCreacion(GNC::GCS::Widgets::IWidget* pWidget) { for (IteradorListaObservadores it = m_Observadores.begin(); it != m_Observadores.end(); ++it) { GNC::GCS::Widgets::IObservadorWidget* pObservador = *it; //TODO hasta que no se adapten los observadores de las herramientas no se pondra esta linea que es la buena //if ((pObservador->VID == -1 || pObservador->VID == m_pRendererActivo->GetVID())&& pObservador->GID == pWidget->GetGID()) { if (pObservador->GID == pWidget->GetGID()) { // pObservador->OnWidgetCreado(pWidget); } } } void GNC::WidgetsManager::NotificarDestruccion(GNC::GCS::Widgets::IWidget* pWidget) { for (IteradorListaObservadores it = m_Observadores.begin(); it != m_Observadores.end(); ++it) { GNC::GCS::Widgets::IObservadorWidget* pObservador = *it; //TODO hasta que no se adapten los observadores de las herramientas no se pondra esta linea que es la buena //if ((pObservador->VID == -1 || pObservador->VID == m_pRendererActivo->GetVID())&& pObservador->GID == pWidget->GetGID()) { if (pObservador->GID == pWidget->GetGID()) { // pObservador->OnWidgetDestruido(pWidget); } } } void GNC::WidgetsManager::NotificarModificacion(GNC::GCS::Widgets::IWidget* pWidget) { for (IteradorListaObservadores it = m_Observadores.begin(); it != m_Observadores.end(); ++it) { GNC::GCS::Widgets::IObservadorWidget* pObservador = *it; //TODO hasta que no se adapten los observadores de las herramientas no se pondra esta linea que es la buena //if ((pObservador->VID == -1 || pObservador->VID == m_pRendererActivo->GetVID())&& pObservador->GID == pWidget->GetGID()) { if (pObservador->GID == pWidget->GetGID()) { // pObservador->OnWidgetModificado(pWidget); } } } //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz general" void GNC::WidgetsManager::SetAnnotator(const GNC::GCS::Ptr& pAnnotador) { m_pAnnotator = pAnnotador; Modificado(); Render(); } const GNC::GCS::Ptr& GNC::WidgetsManager::GetAnnotator() { return m_pAnnotator; } void GNC::WidgetsManager::ShowAnnotations(bool show) { //buscamos los widgets anotadores y los establecemos el modo for( GNC::GCS::ListaWidgets::iterator it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = *it; if (w->GetVID() == -1 && w->GetGID() == -1) { GNC::GCS::Widgets::WAnotador* pAnotador = dynamic_cast (w); if (pAnotador != NULL) { pAnotador->Ocultar(!show); } else { GNC::GCS::Widgets::WStaticRule* pStaticRule = dynamic_cast (w); if (pStaticRule != NULL) { pStaticRule->Ocultar(!show); } } } } } bool GNC::WidgetsManager::IsShownAnnotations() { for( GNC::GCS::ListaWidgets::iterator it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = *it; if (w->GetVID() == -1 && w->GetGID() == -1) { GNC::GCS::Widgets::WAnotador* pAnotador = dynamic_cast (w); if (pAnotador != NULL) { return !pAnotador->EstaOculto(); } } } return false; } //enderegion //---------------------------------------------------------------------------------------------------- //region "Interfaz de acceso al sistema de eventos ginkgo" void GNC::WidgetsManager::LanzarEventoCreacion(GNC::GCS::Widgets::IWidget* w) { GNC::Entorno::Instance()->GetControladorEventos()->ProcesarEvento(new GNC::GCS::Events::EventoModificacionWidget(m_pView,GNC::GCS::Events::EventoModificacionWidget::WidgetCreado, w)); } void GNC::WidgetsManager::LanzarEventoModificacion(GNC::GCS::Widgets::IWidget* w) { GNC::Entorno::Instance()->GetControladorEventos()->ProcesarEvento(new GNC::GCS::Events::EventoModificacionWidget(m_pView,GNC::GCS::Events::EventoModificacionWidget::WidgetModificado, w)); } void GNC::WidgetsManager::LanzarEventoDestruccion(GNC::GCS::Widgets::IWidget* w) { GNC::Entorno::Instance()->GetControladorEventos()->ProcesarEvento(new GNC::GCS::Events::EventoModificacionWidget(m_pView,GNC::GCS::Events::EventoModificacionWidget::WidgetDestruido, w)); } void GNC::WidgetsManager::ProcesarEvento(GNC::GCS::Events::IEvent* /*evt*/) { } //endregion void GNC::WidgetsManager::OnClickEnPropiedades(wxCommandEvent& ) { //eliminamos los widgets seleccionados que soporten autoborrar GNC::GCS::ListaWidgets lw; for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(!w->EstaOculto() && w->EstaSeleccionado()) { lw.push_back(w); } } for (IteradorListaWidgets it = lw.begin(); it != lw.end(); ++it) { //mostrar propiedades de los widgets (*it)->MostrarPropiedades(GNC::Entorno::Instance()->GetVentanaRaiz()); } } void GNC::WidgetsManager::OnClickEnEliminar(wxCommandEvent& ) { //eliminamos los widgets seleccionados que soporten autoborrar GNC::GCS::ListaWidgets lw; for (IteradorListaWidgets it = m_Widgets.begin(); it != m_Widgets.end(); ++it) { GNC::GCS::Widgets::IWidget* w = (*it); if(!w->EstaOculto() && w->EstaSeleccionado() && w->SoportaAutoBorrado() ) { lw.push_back(w); } } for (IteradorListaWidgets it = lw.begin(); it != lw.end(); ++it) { EliminarWidget(*it, true); Modificado(); } } bool GNC::WidgetsManager::GetMenuContextual(wxMenu* menuContextual) const { if (!m_Enabled) { return false; } wxMenuItem* pMenuEliminar = new wxMenuItem(menuContextual, -1, _("Delete"), _("Delete Widget"), wxITEM_NORMAL ); menuContextual->Connect(pMenuEliminar->GetId(),(int)wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(WidgetsManager::OnClickEnEliminar),NULL,(wxEvtHandler*)this); #ifdef __WXMSW__ pMenuEliminar->SetBitmaps( GinkgoResourcesManager::MenuIcons::GetIcoEliminarWidget()); #else pMenuEliminar->SetBitmap(GinkgoResourcesManager::MenuIcons::GetIcoEliminarWidget()); #endif menuContextual->Append(pMenuEliminar); menuContextual->AppendSeparator(); wxMenuItem* pMenuPropiedades = new wxMenuItem(menuContextual, -1, _("Properties ..."), _("Widget Properties"), wxITEM_NORMAL ); menuContextual->Connect(pMenuPropiedades->GetId(),(int)wxEVT_COMMAND_MENU_SELECTED,wxCommandEventHandler(WidgetsManager::OnClickEnPropiedades),NULL,(wxEvtHandler*)this); menuContextual->Append(pMenuPropiedades); return true; } void GNC::WidgetsManager::SetCursor(GNC::GCS::Widgets::TipoCursor cursor) { if(m_cursor != cursor) { for (GNC::GCS::ListaRenderers::iterator itr = m_Renderers.begin(); itr != m_Renderers.end(); ++itr) { switch (cursor) { case GNC::GCS::Widgets::CUR_TRANSPARENTE: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorTransparente())); break; case GNC::GCS::Widgets::CUR_LUPA: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorLupa())); break; case GNC::GCS::Widgets::CUR_SELECCION: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorSeleccionar())); break; case GNC::GCS::Widgets::CUR_FLECHA: (*itr)->m_c->pWindow->SetCursor(wxCursor(wxCURSOR_ARROW)); break; case GNC::GCS::Widgets::CUR_MANO_ABIERTA: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorManoAbierta())); break; case GNC::GCS::Widgets::CUR_MANO_CERRADA: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorManoCerrada())); break; case GNC::GCS::Widgets::CUR_CREAR_LINEA: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorCrearLinea())); break; case GNC::GCS::Widgets::CUR_CREAR_ANGULO_COBB: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorCrearAnguloCobb())); break; case GNC::GCS::Widgets::CUR_CREAR_ANGULO_NORMAL: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorCrearAnguloNormal())); break; case GNC::GCS::Widgets::CUR_CREAR_ANOTACION: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorCrearAnotacion())); break; case GNC::GCS::Widgets::CUR_CREAR_ELIPSE: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorCrearElipse())); break; case GNC::GCS::Widgets::CUR_CREAR_PUNTO: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorCrearPunto())); break; case GNC::GCS::Widgets::CUR_CREAR_POLIGONO: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorCrearPoligono())); break; case GNC::GCS::Widgets::CUR_CREAR_RECTANGULO: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorCrearRectangulo())); break; case GNC::GCS::Widgets::CUR_WINDOW_LEVEL: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorWindowLevel())); break; case GNC::GCS::Widgets::CUR_ANCLA_SIMPLE: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorAnclaSimple())); break; case GNC::GCS::Widgets::CUR_ANCLA_COMPUESTA: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetCursorAnclaCompuesta())); break; case GNC::GCS::Widgets::CUR_ROTATION: (*itr)->m_c->pWindow->SetCursor(wxCursor(GinkgoResourcesManager::Cursors::GetRotationCursor())); break; case GNC::GCS::Widgets::CUR_INVALIDO: break; } } m_cursor = cursor; } } ginkgocadx-3.8.7/cadxcore/main/managers/widgetsmanager.h000066400000000000000000000152071314736454600233540ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #include #include #include //---------------------------------------------------------------------------------------------------- //Forward Declarations namespace GNC { namespace GCS { class IWidgetsRenderer; } } class TimerAnimation; class wxMenu; //End Forward Declarations namespace GNC { class WidgetsManager : public wxEvtHandler, public GNC::GCS::IWidgetsManager, public GNC::GCS::IEventsObserver { public: WidgetsManager(GNC::GCS::IVista* pVista); virtual ~WidgetsManager(); //---------------------------------------------------------------------------------------------------- //region "Interfaz especifica" virtual void RenderPrivate(GNC::GCS::Contexto3D* c); virtual void TickAnimation(double freq); virtual void EnableAnimation(); virtual void DisableAnimation(); virtual void Render(); virtual void OffScreenRender(GNC::GCS::Contexto3D* c); virtual void Modificado(); virtual void ModificadoPorWidget(GNC::GCS::Widgets::IWidget* w); virtual void OnMouseEvents(GNC::GCS::Events::EventoRaton& evento); virtual void OnKeyEvents(GNC::GCS::Events::EventoTeclado& evento); virtual void DefaultMouseEventProcess(GNC::GCS::Events::EventoRaton& evento); virtual void DefaultKeyEventProcess(GNC::GCS::Events::EventoTeclado& event); // Propaga a todos los widgets no ocultos un hit test de seleccion. Los widgets se seleccionan si validan un hittest con el bounding box especificado. virtual void PropagarHitTestSeleccion(GNC::GCS::Vector* vertices, int numVertices); //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de registro de Renderers" public: virtual void SetRendererActivo(GNC::GCS::IWidgetsRenderer* pRenderer); virtual void InsertarRenderer(GNC::GCS::IWidgetsRenderer* pRenderer); virtual void EliminarRenderer(GNC::GCS::IWidgetsRenderer* pRenderer); virtual void LiberarRecursos(GNC::GCS::IWidgetsRenderer* pRenderer); //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz de registro de IWidget's" virtual void InsertarWidget(GNC::GCS::Widgets::IWidget* pWidget, bool propagarEvento=true); virtual void EliminarWidget(const GNC::GCS::Widgets::IWidget* pWidget, bool propagarEvento=true); /** Remove all widgets except anyone with this tid **/ virtual void RemoveAllWidgetsExceptTID(long tid, bool propagateEvents=true); virtual void RemoveUserAnnotationWidgets(bool propagateEvents = true); virtual void EliminarWidget(GNC::GCS::IWidgetsManager::IteradorListaWidgets& it, bool propagarEvento=true); virtual void EliminarTodosLosWidgets(bool propagarEventos=true); /** Set visible on all widgets matching TID **/ virtual void SetVisibleByTID(bool visible, long tid); virtual void OcultarTodosLosWidgets(bool ocultar, long GID); virtual void EliminarTodosLosWidgets(long GID); virtual void OcultarWidgetsDeSubVista(bool ocultar, long vid); virtual GNC::GCS::ListaWidgets& GetListaWidgets(); virtual void GetListaWidgetsSubVista(long vid, GNC::GCS::ListaWidgets& lista); //endregion //---------------------------------------------------------------------------------------------------- //endregion "Interfaz de Observadores" virtual void NotificarCreacion(GNC::GCS::Widgets::IWidget* pWidget); virtual void NotificarDestruccion(GNC::GCS::Widgets::IWidget* pWidget); virtual void NotificarModificacion(GNC::GCS::Widgets::IWidget* pWidget); //endregion //---------------------------------------------------------------------------------------------------- //region "Interfaz annotation" virtual void SetAnnotator(const GNC::GCS::Ptr& pAnnotador); virtual const GNC::GCS::Ptr& GetAnnotator(); virtual void ShowAnnotations(bool show); virtual bool IsShownAnnotations(); //enderegion //---------------------------------------------------------------------------------------------------- //region "Interfaz de acceso al sistema de eventos ginkgo" virtual void LanzarEventoCreacion(GNC::GCS::Widgets::IWidget* w); virtual void LanzarEventoModificacion(GNC::GCS::Widgets::IWidget* w); virtual void LanzarEventoDestruccion(GNC::GCS::Widgets::IWidget* w); virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt); //endregion //---------------------------------------------------------------------------------------------------- //region "Gestion propia de WX" virtual void OnClickEnEliminar(wxCommandEvent& ); virtual void OnClickEnPropiedades(wxCommandEvent& ); virtual bool GetMenuContextual(wxMenu* menuContextual) const; //endregion //---------------------------------------------------------------------------------------------------- //region "Cursores virtual void SetCursor(GNC::GCS::Widgets::TipoCursor cursor); //endregion bool m_mouseDerechoDown; bool m_mouseIzquierdoDown; bool m_middleDown; //---------------------------------------------------------------------------------------------------- //region "Helpers" private: inline void ModificarRenderersDeWidget(GNC::GCS::Widgets::IWidget* w); TimerAnimation* m_pTimerAnimation; GNC::GCS::Ptr m_pAnnotator; //endregion }; } ginkgocadx-3.8.7/cadxcore/main/tools/000077500000000000000000000000001314736454600175405ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/tools/addfiletohistorytool.cpp000066400000000000000000000141611314736454600245220ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "addfiletohistorytool.h" #include #include
    #include #include
    #include #include
    #include
    #include
    #define OPEN_FILE 1866 #define OPEN_FOLDER 1867 #define OPEN_REMOVABLE 1868 #define OPEN_GINKGO_CLOUD 1869 namespace GNC { namespace GUI { class wxEventHandlerOpenStudy : public wxEvtHandler { public: wxEventHandlerOpenStudy(wxEvtHandler* pParent, GNC::AddFileToHistory* pHerramienta):wxEvtHandler() { m_pEvtParent = pParent; m_pHerramienta=pHerramienta; m_pEvtParent->Connect(OPEN_FILE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerOpenStudy::OnOpenFile),NULL,this); m_pEvtParent->Connect(OPEN_FOLDER, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerOpenStudy::OnOpenFolder),NULL,this); m_pEvtParent->Connect(OPEN_REMOVABLE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerOpenStudy::OnOpenRemovable),NULL,this); m_pEvtParent->Connect(OPEN_GINKGO_CLOUD, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerOpenStudy::OnOpenGinkgoCloud),NULL,this); } ~wxEventHandlerOpenStudy() { m_pEvtParent->Disconnect(OPEN_FILE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerOpenStudy::OnOpenFile),NULL,this); m_pEvtParent->Disconnect(OPEN_FOLDER, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerOpenStudy::OnOpenFolder),NULL,this); m_pEvtParent->Disconnect(OPEN_REMOVABLE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerOpenStudy::OnOpenRemovable),NULL,this); m_pEvtParent->Disconnect(OPEN_GINKGO_CLOUD, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerOpenStudy::OnOpenGinkgoCloud),NULL,this); m_pEvtParent = NULL; m_pHerramienta = NULL; } void OnOpenFile( wxCommandEvent& event ) { m_pHerramienta->OpenFile(); event.Skip(false); } void OnOpenFolder( wxCommandEvent& event ) { m_pHerramienta->OpenFolder(); event.Skip(false); } void OnOpenRemovable( wxCommandEvent& event ) { m_pHerramienta->OpenRemovable(); event.Skip(false); } void OnOpenGinkgoCloud( wxCommandEvent& event ) { m_pHerramienta->OpenGinkgoCloud(); event.Skip(false); } GNC::AddFileToHistory* m_pHerramienta; wxEvtHandler* m_pEvtParent; }; } } GNC::GCS::ITool* GNC::AddFileToHistory::NewTool() { return new GNC::AddFileToHistory(); } GNC::AddFileToHistory::AddFileToHistory() { Enable(GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire")); } GNC::AddFileToHistory::~AddFileToHistory() { } bool GNC::AddFileToHistory::ExecuteAction() { return false; } bool GNC::AddFileToHistory::HasDropDownMenu() { return true; } void GNC::AddFileToHistory::AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu) { if (pMenu->GetMenuItemCount() > 0 && !pMenu->GetMenuItems().back()->IsSeparator()) { pMenu->AppendSeparator(); } pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, OPEN_FILE, wxString(_("Open file")) + wxT(" \tAlt+f"), GinkgoResourcesManager::MenuIcons::GetIcoOpenFile(), new GNC::GUI::wxEventHandlerOpenStudy( pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, OPEN_FOLDER, wxString(_("Open folder")) + wxT(" \tAlt+d"), GinkgoResourcesManager::MenuIcons::GetIcoOpenDir(), new GNC::GUI::wxEventHandlerOpenStudy( pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, OPEN_REMOVABLE, _("Open removable unit"), GinkgoResourcesManager::MenuIcons::GetIcoRemovableUnit(), new GNC::GUI::wxEventHandlerOpenStudy( pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, OPEN_GINKGO_CLOUD, _("Open Ginkgo Cloud link"), GinkgoResourcesManager::ToolIcons::GetIcoDownloadCloud(), new GNC::GUI::wxEventHandlerOpenStudy( pParent, this))); } void GNC::AddFileToHistory::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { AppendDropDownMenu(pParent, pMenu); } } void GNC::AddFileToHistory::OpenFile() { GNC::GUI::Abrir::AbrirFichero(ViewContract->GetView()->GetWindow()); } void GNC::AddFileToHistory::OpenFolder() { GNC::GUI::Abrir::AbrirDirectorio(ViewContract->GetView()->GetWindow()); } void GNC::AddFileToHistory::OpenRemovable() { GADAPI::OpenRemovableUnitCommandParams* pParams = new GADAPI::OpenRemovableUnitCommandParams(ViewContract->GetView()->GetWindow()); GADAPI::OpenRemovableUnitCommand* pCmd = new GADAPI::OpenRemovableUnitCommand(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync("Listing units...", pCmd, NULL); } void GNC::AddFileToHistory::OpenGinkgoCloud() { GNC::GUI::OpenGinkgoCloudDialog* dlg = new GNC::GUI::OpenGinkgoCloudDialog(ViewContract->GetView()->GetWindow()); dlg->Show(); dlg->Raise(); } ginkgocadx-3.8.7/cadxcore/main/tools/addfiletohistorytool.h000066400000000000000000000026111314736454600241640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { class EXTAPI AddFileToHistory : public GNC::GCS::IAddFileToHistory { public: virtual GNC::GCS::ITool* NewTool(); AddFileToHistory(); ~AddFileToHistory(); virtual bool HasDropDownMenu(); void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); virtual void OpenFile(); virtual void OpenFolder(); virtual void OpenRemovable(); virtual void OpenGinkgoCloud(); protected: }; } ginkgocadx-3.8.7/cadxcore/main/tools/angletool.cpp000066400000000000000000000133051314736454600222320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "angletool.h" #if defined(ENABLE_ANGLETOOL) #include #include #include #include #include #include
    #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #define TIPO_NORMAL 1211 #define TIPO_COBB 1212 namespace GNC { namespace GUI { class EventHandlerAngleTools: public wxEvtHandler { public: EventHandlerAngleTools(wxEvtHandler* pParent, GNC::AngleTool* pHerramienta):wxEvtHandler() { m_pParent = pParent; m_pHerramienta=pHerramienta; // Connect Events m_pParent->Connect(TIPO_NORMAL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerAngleTools::OnTipoAnguloNormalClick),NULL,this); m_pParent->Connect(TIPO_COBB, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerAngleTools::OnTipoAnguloCobbClick),NULL,this); } ~EventHandlerAngleTools() { m_pParent->Disconnect(TIPO_NORMAL, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerAngleTools::OnTipoAnguloNormalClick),NULL,this); m_pParent->Disconnect(TIPO_COBB, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerAngleTools::OnTipoAnguloCobbClick),NULL,this); } virtual void OnTipoAnguloNormalClick(wxCommandEvent& event) { m_pHerramienta->SetTipo(GNC::AngleTool::TA_Normal); event.Skip(false); } virtual void OnTipoAnguloCobbClick(wxCommandEvent& event) { m_pHerramienta->SetTipo(GNC::AngleTool::TA_Cobb); event.Skip(false); } GNC::AngleTool* m_pHerramienta; wxEvtHandler* m_pParent; }; } } GNC::AngleTool::AngleTool() { m_TipoAngulo = TA_Normal; m_pAnguloBuilder = NULL; } GNC::AngleTool::~AngleTool() { if (m_pAnguloBuilder != NULL) { delete m_pAnguloBuilder; m_pAnguloBuilder = NULL; } } //------------------------------------------------------------------------------ //region "ITool/IContract realization" GNC::GCS::ITool* GNC::AngleTool::NewTool() { return new GNC::AngleTool(); } void GNC::AngleTool::Connect() { if (m_pAnguloBuilder != NULL) { delete m_pAnguloBuilder; m_pAnguloBuilder = NULL; } m_pAnguloBuilder = new GNC::GCS::Widgets::WAnguloBuilder(WidgetsContract->GetManager(), GetTriggerButton()); if (m_TipoAngulo == TA_Normal) { m_pAnguloBuilder->SetModo(GNC::GCS::Widgets::MA_Normal); } else { m_pAnguloBuilder->SetModo(GNC::GCS::Widgets::MA_Cobb); } WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(m_pAnguloBuilder->GetCursor()); } void GNC::AngleTool::Disconnect() { WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); if (m_pAnguloBuilder != NULL) { delete m_pAnguloBuilder; m_pAnguloBuilder = NULL; } } bool GNC::AngleTool::HasDropDownMenu() { return true; } void GNC::AngleTool::AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu) { pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, TIPO_NORMAL,_("Normal Angle (3 points)"), GinkgoResourcesManager::AngleBar::GetIcoAnguloNormal(), new GNC::GUI::EventHandlerAngleTools(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, TIPO_COBB,_("Cobb Angle (2 straight lines)"), GinkgoResourcesManager::AngleBar::GetIcoAnguloCobb(), new GNC::GUI::EventHandlerAngleTools(pParent, this))); } void GNC::AngleTool::SetTipo(TipoAngulo tipo) { if (m_TipoAngulo != tipo) { m_TipoAngulo = tipo; wxBitmap icon; if (m_TipoAngulo == TA_Normal) { if (m_pAnguloBuilder != NULL) { m_pAnguloBuilder->SetModo(GNC::GCS::Widgets::MA_Normal); } icon = GinkgoResourcesManager::AngleBar::GetIcoAnguloNormal(); } else { if (m_pAnguloBuilder != NULL) { m_pAnguloBuilder->SetModo(GNC::GCS::Widgets::MA_Cobb); } icon = GinkgoResourcesManager::AngleBar::GetIcoAnguloCobb(); } GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ChangeToolIconEvent(&icon, this, m_pParent)); } } //endregion #endif ginkgocadx-3.8.7/cadxcore/main/tools/angletool.h000066400000000000000000000033361314736454600217020ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #if defined(ENABLE_ANGLETOOL) #ifndef ANGLETOOL_H #define ANGLETOOL_H #include #include namespace GNC { namespace GCS { namespace Widgets { class WAnguloBuilder; } } class EXTAPI AngleTool : public GNC::GCS::IAngleTool { public: typedef enum TipoAngulo { TA_Normal, TA_Cobb } TipoAngulo; AngleTool(); ~AngleTool(); //------------------------------------------------------------------------------ //region "ITool/IContract realization" virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); virtual bool HasDropDownMenu(); void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); void SetTipo(TipoAngulo tipo); //endregion protected: GNC::GCS::Widgets::WAnguloBuilder* m_pAnguloBuilder; TipoAngulo m_TipoAngulo; }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/anonymizetool.cpp000066400000000000000000000043661314736454600231640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "anonymizetool.h" #if defined(ENABLE_ANONYMIZETOOL) #include
    #include
    #include #include
    //---------------------------------------------------------------------- GNC::AnonymizeTool::AnonymizeTool(): GNC::GCS::IHistoryTool(ID,GNC::GCS::IHistoryTool::TFamily_Anonymize, _Std("Anonymize"), _Std("Anonymize"), GinkgoResourcesManager::ToolIcons::GetIcoAnonymize()) { } GNC::AnonymizeTool::~AnonymizeTool() { } void GNC::AnonymizeTool::Execute() { GNC::GCS::IHistoryPanel* pHistory = GNC::HistoryToolsController::Instance()->GetHistoryPanel(); std::list listOfPks; pHistory->GetSelectedSeriesPk(listOfPks); Execute (listOfPks); } void GNC::AnonymizeTool::Execute(const std::list& seriesPk) { GNC::GCS::IHistoryPanel* pHistory = GNC::HistoryToolsController::Instance()->GetHistoryPanel(); if (seriesPk.empty()) { wxMessageBox(_("Select at least one series"), _("Info"), wxICON_INFORMATION, pHistory->GetWxWindow()); return; } if (!AreSeriesFullyDownloaded(seriesPk)) { GNC::GUI::SynchronizeDialog dlg(pHistory->GetWxWindow(), seriesPk, this); dlg.ShowModal(); } else { GNC::GUI::AnonymizeDialog dlg(pHistory->GetWxWindow(), seriesPk); dlg.ShowModal(); } } #endif ginkgocadx-3.8.7/cadxcore/main/tools/anonymizetool.h000066400000000000000000000023521314736454600226220ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #if defined(ENABLE_ANONYMIZETOOL) #ifndef ANONYMIZETOOL_H #define ANONYMIZETOOL_H #include #include namespace GNC { class AnonymizeTool : public GNC::GCS::IHistoryTool { public: static const GNC::GCS::IHistoryTool::UID ID = HCore_Anonymize; AnonymizeTool(); virtual ~AnonymizeTool(); virtual void Execute(); virtual void Execute(const std::list& seriesPk); }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/brightnesscontrasttool.cpp000066400000000000000000000046021314736454600250720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "brightnesscontrasttool.h" #if defined(ENABLE_BRIGHTNESSCONTRASTTOOL) #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include GNC::BrightnessContrastTool::BrightnessContrastTool() : m_pBuilder(NULL) { m_pBuilder = NULL; } GNC::BrightnessContrastTool::~BrightnessContrastTool() { } //------------------------------------------------------------------------------ //region "ITool/IContract realization" GNC::GCS::ITool* GNC::BrightnessContrastTool::NewTool() { return new GNC::BrightnessContrastTool(); } void GNC::BrightnessContrastTool::Connect() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } m_pBuilder = new GNC::GCS::Widgets::WBrightnessContrastBuilder(WidgetsContract->GetManager(), GetTriggerButton(), (unsigned long) this); WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(m_pBuilder->GetCursor()); } void GNC::BrightnessContrastTool::Disconnect() { WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); if (m_pBuilder != NULL) { // DesSubscribimos los eventos de la ventana a un metodo especifico del panel de esta herramienta delete m_pBuilder; m_pBuilder = NULL; } } //endregion #endif ginkgocadx-3.8.7/cadxcore/main/tools/brightnesscontrasttool.h000066400000000000000000000026641314736454600245450ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_MARKERTOOL) #ifndef BRIGHTNESSCONTRASTOOL_H #define BRIGHTNESSCONTRASTOOL_H #include #include namespace GNC { namespace GCS { namespace Widgets { class IWidgetBuilder; } } class EXTAPI BrightnessContrastTool : public GNC::GCS::IBrightnessContrastTool { public: BrightnessContrastTool(); ~BrightnessContrastTool(); //region "ITool/IContract realization" virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); //endregion protected: GNC::GCS::Widgets::IWidgetBuilder* m_pBuilder; }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/camerarotationtool.cpp000066400000000000000000000045661314736454600241650ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "camerarotationtool.h" #include #include #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include GNC::CameraRotationTool::CameraRotationTool() { m_pBuilder = NULL; } GNC::CameraRotationTool::~CameraRotationTool() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } GNC::GCS::ITool* GNC::CameraRotationTool::NewTool() { return new GNC::CameraRotationTool(); } void GNC::CameraRotationTool::Connect() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } m_pBuilder = new TBuilder(WidgetsContract->GetManager(), GetTriggerButton(), (unsigned long)this); WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(m_pBuilder->GetCursor()); } void GNC::CameraRotationTool::Disconnect() { WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); // DesSubscribimos los eventos de la ventana a un metodo especifico del panel de esta herramienta if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } ginkgocadx-3.8.7/cadxcore/main/tools/camerarotationtool.h000066400000000000000000000031121314736454600236140ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { namespace GCS { namespace Widgets { class WCameraRotation; } namespace Events { class EventoRaton; class EventoTeclado; } } class EXTAPI CameraRotationTool : public GNC::GCS::ICameraRotationTool { public: typedef GNC::GCS::Events::EventoRaton TEventoRaton; typedef GNC::GCS::Events::EventoTeclado TEventoTeclado; typedef GNC::GCS::Widgets::WCameraRotation TBuilder; CameraRotationTool(); ~CameraRotationTool(); //region "Realización de la interfaz IHerramienta" virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); //endregion //region "Eventos refinados desde los paneles" //endregion protected: TBuilder* m_pBuilder; }; } ginkgocadx-3.8.7/cadxcore/main/tools/colormaptool.cpp000066400000000000000000000174731314736454600227720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "colormaptool.h" #include
    #include #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #define INVERTIR_COLORES 4100 #define MENU_MAPAS_COLOR 4101 namespace GNC { namespace GUI { class wxEventHandlerColorMap : public wxEvtHandler { public: wxEventHandlerColorMap(wxEvtHandler* pParent, GNC::ColorMapTool* pHerramienta):wxEvtHandler() { m_pEvtParent = pParent; m_pHerramienta=pHerramienta; m_pEvtParent->Connect(m_pHerramienta->ID, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerColorMap::OnUpdateColorMapUI),NULL,this); m_pEvtParent->Connect(INVERTIR_COLORES, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerColorMap::OnInvertColorMapClick),NULL,this); m_pEvtParent->Connect(INVERTIR_COLORES, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerColorMap::OnUpdateColorMapUI),NULL,this); } ~wxEventHandlerColorMap() { m_pEvtParent->Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerColorMap::OnSeleccionarMapa ),NULL,this); m_pEvtParent->Disconnect(wxID_ANY, wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxEventHandlerColorMap::OnUpdateMenuMapaColorUI ),NULL,this); m_pEvtParent->Disconnect(m_pHerramienta->ID, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerColorMap::OnUpdateColorMapUI),NULL,this); m_pEvtParent->Disconnect(INVERTIR_COLORES, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerColorMap::OnInvertColorMapClick),NULL,this); m_pEvtParent->Disconnect(INVERTIR_COLORES, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerColorMap::OnUpdateColorMapUI),NULL,this); m_pEvtParent = NULL; m_pHerramienta = NULL; } void OnSeleccionarMapa( wxCommandEvent& event ) { int idMapa = event.GetId() - MENU_MAPAS_COLOR; m_pHerramienta->SeleccionarMapa(idMapa); event.Skip(false); } void OnUpdateMenuMapaColorUI(wxUpdateUIEvent& event) { if ((event.GetId() - MENU_MAPAS_COLOR) >= 0) { int idMapaSeleccionado = m_pHerramienta->GetIdLookupTable(); event.Check(event.GetId()-MENU_MAPAS_COLOR == idMapaSeleccionado); } } void OnInvertColorMapClick( wxCommandEvent& event ) { m_pHerramienta->InvertColorMap(); event.Skip(false); } void OnUpdateColorMapUI(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->SoportaMapas()); } GNC::ColorMapTool* m_pHerramienta; wxEvtHandler* m_pEvtParent; }; } } GNC::GCS::ITool* GNC::ColorMapTool::NewTool() { return new GNC::ColorMapTool(); } GNC::ColorMapTool::ColorMapTool() { } GNC::ColorMapTool::~ColorMapTool() { } bool GNC::ColorMapTool::HasDropDownMenu() { return true; } void GNC::ColorMapTool::AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu) { std::list choices = vtkLookupTableManager::GetAvailableLookupTables(); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, INVERTIR_COLORES,_("Invert color map"), GinkgoResourcesManager::ToolIcons::GetIcoInvert(), new GNC::GUI::wxEventHandlerColorMap( pParent, this))); pMenu->AppendSeparator(); int idMapa = MENU_MAPAS_COLOR; wxBitmap icon; for(std::list::iterator it = choices.begin(); it!= choices.end(); ++it,idMapa++) { GNC::GUI::wxMenuItemTool* pItem = new GNC::GUI::wxMenuItemTool(pMenu, idMapa,wxString::FromUTF8((*it).c_str()), icon, new GNC::GUI::wxEventHandlerColorMap(pParent, this), wxITEM_CHECK); pParent->Connect(pItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GNC::GUI::wxEventHandlerColorMap::OnSeleccionarMapa ),NULL,pItem->m_pHandler); pParent->Connect(pItem->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(GNC::GUI::wxEventHandlerColorMap::OnUpdateMenuMapaColorUI),NULL,pItem->m_pHandler); pMenu->Append(pItem); } } bool GNC::ColorMapTool::ExecuteAction() { return false; } void GNC::ColorMapTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { wxMenu* pLayoutMenu = new wxMenu(); AppendDropDownMenu(pParent, pLayoutMenu); pMenu->Append(ID,wxString::FromUTF8(Name.c_str()),pLayoutMenu); pMenu->Enable(ID,Enabled); } } bool GNC::ColorMapTool::SoportaMapas() { if (WidgetsContract->Inicializado()) { GNC::GCS::IWidgetsContract::TViewerList listViewers; WidgetsContract->GetAllViewers(listViewers); bool soporta =true; for (GNC::GCS::IWidgetsContract::TViewerList::iterator it = listViewers.begin(); it != listViewers.end(); ++it) { soporta = ( soporta && ((*it)->GetNumberOfComponents()==1)); } return soporta; } else { return false; } } void GNC::ColorMapTool::SeleccionarMapa(int idMapa) { if (WidgetsContract->Inicializado()) { if(idMapa>=0 && idMapa<(int)vtkLookupTableManager::GetAvailableLookupTables().size()) { vtkLookupTable* vtkTabla = vtkLookupTableManager::GetLookupTable(idMapa); if(vtkTabla != NULL) { GNC::GCS::IWidgetsContract::TViewerList listViewers; WidgetsContract->GetAllViewers(listViewers); for (GNC::GCS::IWidgetsContract::TViewerList::iterator it = listViewers.begin(); it != listViewers.end(); ++it) { (*it)->SetLookupTable(vtkTabla, idMapa); } GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoRender(WidgetsContract->GetManager()->GetVista())); } } } } int GNC::ColorMapTool::GetIdLookupTable() { if (!SoportaMapas()) return -1; int idMapa = -1; if (WidgetsContract->Inicializado()) { idMapa = WidgetsContract->GetViewerActivo()->GetIdLookupTable(); } return idMapa; } void GNC::ColorMapTool::InvertColorMap() { int idMapa = GetIdLookupTable(); if (idMapa == vtkLookupTableManager::LUT_LINEAR) { idMapa = vtkLookupTableManager::LUT_LINEAR_INV; } else if (idMapa == vtkLookupTableManager::LUT_LINEAR_INV) { idMapa = vtkLookupTableManager::LUT_LINEAR; } SeleccionarMapa(idMapa); } ginkgocadx-3.8.7/cadxcore/main/tools/colormaptool.h000066400000000000000000000027201314736454600224240ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifndef COLORMAPTOOL_H #define COLORMAPTOOL_H #include #include namespace GNC { class ColorMapTool : public GNC::GCS::IColorMapTool { public: virtual GNC::GCS::ITool* NewTool(); ColorMapTool(); ~ColorMapTool(); virtual bool HasDropDownMenu(); void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); //cuando hacen click en ella... virtual bool SoportaMapas(); virtual void SeleccionarMapa(int id); int GetIdLookupTable(); virtual void InvertColorMap(); protected: }; } #endif ginkgocadx-3.8.7/cadxcore/main/tools/copyimagetoclipboardtool.cpp000066400000000000000000000071001314736454600253400ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "copyimagetoclipboardtool.h" #include #include #include #include #include #include
    #include
    #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include GNC::GCS::ITool* GNC::CopyImageToClipboardTool::NewTool() { return new GNC::CopyImageToClipboardTool(); } GNC::CopyImageToClipboardTool::CopyImageToClipboardTool() { } GNC::CopyImageToClipboardTool::~CopyImageToClipboardTool() { } bool GNC::CopyImageToClipboardTool::ExecuteAction() { std::string tempName = GNC::Entorno::Instance()->CreateGinkgoTempFile(); { vtkSmartPointer windowToImageFilter = vtkSmartPointer::New(); windowToImageFilter->SetInput(WidgetsContract->GetViewerActivo()->GetRenderWindow()); windowToImageFilter->SetInputBufferTypeToRGB(); //also record the alpha (transparency) channel windowToImageFilter->Update(); //copy image to wx... // put the pixels into a wxImage ... vtkSmartPointer timg = windowToImageFilter->GetOutput(); unsigned char *pVtkPix = (unsigned char *)timg->GetScalarPointer(); unsigned long imgsize = timg->GetDimensions()[0] * timg->GetDimensions()[1] * sizeof(unsigned char) * 3; unsigned char* data = new unsigned char[imgsize]; int linesize = timg->GetDimensions()[0] *3; for (int y = 0; y < timg->GetDimensions()[1]; ++y) { int offsetWx = imgsize - (linesize * (y +1)); int offsetVtk = y*linesize; for (int x = 0; x < linesize; ++x) { data[offsetWx+x] = pVtkPix[offsetVtk+x]; } } wxImage image(timg->GetDimensions()[0], timg->GetDimensions()[1],data,false); // ... and send the image to the clipboard if (wxTheClipboard->Open()) { wxTheClipboard->SetData( new wxBitmapDataObject(wxBitmap(image)) ); wxTheClipboard->Close(); } } return true; } ginkgocadx-3.8.7/cadxcore/main/tools/copyimagetoclipboardtool.h000066400000000000000000000021411314736454600250050ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { class EXTAPI CopyImageToClipboardTool : public GNC::GCS::ICopyImageToClipboardTool { public: virtual GNC::GCS::ITool* NewTool(); CopyImageToClipboardTool(); ~CopyImageToClipboardTool(); virtual bool ExecuteAction(); protected: }; } ginkgocadx-3.8.7/cadxcore/main/tools/coretools.cpp000066400000000000000000000137551314736454600222700ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "coretools.h" #include "angletool.h" #include "pointertool.h" #include "ruletool.h" #include "toolzoom.h" #include "toolpan.h" #include "anonymizetool.h" #include "cornerannotationstool.h" #include "dicomizetool.h" #include "detachwindowtool.h" #include "metricgridtool.h" #include "resettool.h" #include "pixelsbluringtool.h" #include "windowlayouttool.h" #include "markertool.h" #include "undotool.h" #include "toolslider.h" #include "notetool.h" #include "toolwindowlevel.h" #include "showtagstool.h" #include "rotateandfliptool.h" #include "colormaptool.h" #include "showhistorytool.h" #include "imageexporttool.h" #include "queryretrievetool.h" #include "trackballtool.h" #include "camerarotationtool.h" #include "videotool.h" #include "secondarycapturetool.h" #include "pacsuploadtool.h" #include "startdicomizationtool.h" #include "addfiletohistorytool.h" #include "openginkgocloudlinktool.h" #include "copyimagetoclipboardtool.h" #include "simpleprinttool.h" #include "brightnesscontrasttool.h" #include
    #include
    void GNC::RegisterCoreTools() { #ifdef ENABLE_ANGLETOOL (new GNC::AngleTool())->RegisterTool(); #endif /* #ifdef ENABLE_ANONYMIZETOOL (new GNC::AnonymizeTool())->RegisterTool(); #endif */ #ifdef ENABLE_CALIBRATIONTOOL (new GNC::CalibrationTool())->RegisterTool(); #endif #ifdef ENABLE_CORNERANNOTATIONTOOL (new GNC::CornerAnnotationsTool())->RegisterTool(); #endif /* #ifdef ENABLE_DICOMEXPORTTOOL (new GNC::DicomExportTool())->RegisterTool(); #endif */ /* #ifdef ENABLE_DICOMIZETOOL (new GNC::DicomizeTool())->RegisterTool(); #endif */ #ifdef ENABLE_DETACHWINDOWTOOL (new GNC::DetachWindowTool())->RegisterTool(); #endif #ifdef ENABLE_ELEVATIONTOOL (new GNC::ElevationTool())->RegisterTool(); #endif #ifdef ENABLE_INTERPOLATETOOL (new GNC::InterpolateTool())->RegisterTool(); #endif #ifdef ENABLE_MAGNIFIERTOOL (new GNC::MagnifierTool())->RegisterTool(); #endif #ifdef ENABLE_MARKERTOOL (new GNC::MarkerTool())->RegisterTool(); #endif #ifdef ENABLE_METRICGRIDTOOL (new GNC::MetricGridTool())->RegisterTool(); #endif #ifdef ENABLE_NOTETOOL (new GNC::NoteTool())->RegisterTool(); #endif #ifdef ENABLE_PANTOOL (new GNC::ToolPan())->RegisterTool(); #endif #ifdef ENABLE_POINTERTOOL (new GNC::PointerTool())->RegisterTool(); #endif #ifdef ENABLE_QUERYRETRIEVETOOL (new GNC::QueryRetrieveTool())->RegisterTool(); #endif #ifdef ENABLE_RESETTOOL (new GNC::ResetTool())->RegisterTool(); #endif #ifdef ENABLE_RULETOOL (new GNC::RuleTool())->RegisterTool(); #endif #ifdef ENABLE_PIXELSBLURING (new GNC::PixelsBluringTool())->RegisterTool(); #endif #ifdef ENABLE_SHOWTAGSTOOL (new GNC::ShowTagsTool())->RegisterTool(); #endif #ifdef ENABLE_SLIDERTOOL (new GNC::ToolSlider())->RegisterTool(); #endif #ifdef ENABLE_TAGSPANELTOOL (new GNC::TagsPanelTool())->RegisterTool(); #endif #ifdef ENABLE_UNDOTOOL (new GNC::UndoTool())->RegisterTool(); #endif #ifdef ENABLE_WINDOWLAYOUTTOOL (new GNC::WindowLayoutTool())->RegisterTool(); #endif #ifdef ENABLE_WINDOWLEVELTOOL (new GNC::ToolWindowLevel())->RegisterTool(); #endif #ifdef ENABLE_ZOOMTOOL (new GNC::ToolZoom())->RegisterTool(); #endif #ifdef ENABLE_BRIGHTNESSCONTRASTTOOL (new GNC::BrightnessContrastTool())->RegisterTool(); #endif (new GNC::RotateAndFlipTool())->RegisterTool(); (new GNC::ColorMapTool())->RegisterTool(); (new GNC::ShowHistoryTool())->RegisterTool(); (new GNC::ImageExportTool())->RegisterTool(); (new GNC::TrackballTool())->RegisterTool(); (new GNC::VideoTool())->RegisterTool(); (new GNC::SecondaryCaptureTool())->RegisterTool(); (new GNC::PACSUploadTool())->RegisterTool(); (new GNC::StartDicomizationTool())->RegisterTool(); (new GNC::AddFileToHistory())->RegisterTool(); (new GNC::CopyImageToClipboardTool())->RegisterTool(); (new GNC::CameraRotationTool())->RegisterTool(); (new GNC::SimplePrintTool())->RegisterTool(); //history GNC::HistoryToolsController::Instance()->RegisterTool(new GNC::AnonymizeTool()); GNC::HistoryToolsController::Instance()->RegisterTool(new GNC::ShowTagsHistoryTool()); GNC::HistoryToolsController::Instance()->RegisterTool(new GNC::OpenFileTool()); GNC::HistoryToolsController::Instance()->RegisterTool(new GNC::OpenFolderTool()); GNC::HistoryToolsController::Instance()->RegisterTool(new GNC::OpenRemovableTool()); GNC::HistoryToolsController::Instance()->RegisterTool(new GNC::DicomizeTool()); GNC::HistoryToolsController::Instance()->RegisterTool(new GNC::QueryRetrieveHistoryTool()); GNC::HistoryToolsController::Instance()->RegisterTool(new GNC::SendPACSTool()); GNC::HistoryToolsController::Instance()->RegisterTool(new GNC::ExportDicomDirTool()); GNC::HistoryToolsController::Instance()->RegisterTool(new GNC::OpenGinkgoCloudLinkTool()); GNC::HistoryToolsController::Instance()->RegisterTool(new GNC::SearchGinkgoCloudHistoryTool()); } ginkgocadx-3.8.7/cadxcore/main/tools/coretools.h000066400000000000000000000015711314736454600217260ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef TOOLSREGISTRY_H #define TOOLSREGISTRY_H #include namespace GNC { void EXTAPI RegisterCoreTools(); } #endif ginkgocadx-3.8.7/cadxcore/main/tools/cornerannotationstool.cpp000066400000000000000000000055511314736454600247160ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "cornerannotationstool.h" #include #include #include
    #include #include
    #if defined(ENABLE_CORNERANNOTATIONTOOL) namespace GNC { namespace GUI { class wxCornerAnnotationsEventHandler: public wxDefaultEvtHandlerTool { public: wxCornerAnnotationsEventHandler(wxEvtHandler* pParent, GNC::CornerAnnotationsTool* pTool): wxDefaultEvtHandlerTool(pParent, pTool) { m_pCornerTool = pTool; } ~wxCornerAnnotationsEventHandler() { } virtual void OnUpdateUI(wxUpdateUIEvent &event) { wxDefaultEvtHandlerTool::OnUpdateUI(event); if(m_pCornerTool->IsVisible()) { event.SetText(_("Hide corner annotations")); } else { event.SetText(_("Show corner annotations")); } } GNC::CornerAnnotationsTool* m_pCornerTool; }; } } GNC::GCS::ITool* GNC::CornerAnnotationsTool::NewTool() { return new GNC::CornerAnnotationsTool(); } GNC::CornerAnnotationsTool::CornerAnnotationsTool() { } GNC::CornerAnnotationsTool::~CornerAnnotationsTool() { } bool GNC::CornerAnnotationsTool::ExecuteAction() { WidgetsContract->GetManager()->ShowAnnotations(!WidgetsContract->GetManager()->IsShownAnnotations()); GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoRender(WidgetsContract->GetManager()->GetVista())); return true; } void GNC::CornerAnnotationsTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { GNC::GUI::wxCornerAnnotationsEventHandler* evtHandler = new GNC::GUI::wxCornerAnnotationsEventHandler(pParent, this); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ID, wxString::FromUTF8(Name.c_str()),Icon, evtHandler)); } } bool GNC::CornerAnnotationsTool::IsVisible() { return WidgetsContract->GetManager()->IsShownAnnotations(); } #endif ginkgocadx-3.8.7/cadxcore/main/tools/cornerannotationstool.h000066400000000000000000000025061314736454600243600ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #if defined(ENABLE_CORNERANNOTATIONTOOL) #ifndef CORNERANNOTATIONTOOL_H #define CORNERANNOTATIONTOOL_H #include #include namespace GNC { class EXTAPI CornerAnnotationsTool : public GNC::GCS::ICornerAnnotationsTool { public: virtual GNC::GCS::ITool* NewTool(); CornerAnnotationsTool(); ~CornerAnnotationsTool(); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); bool IsVisible(); protected: }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/detachwindowtool.cpp000066400000000000000000000075241314736454600236320ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "detachwindowtool.h" #include #include #include #include
    #include
    #include
    //---------------------------------------------------------------------- namespace GNC { namespace GUI { class wxDetachWindowEventHandler: public wxDefaultEvtHandlerTool { public: wxDetachWindowEventHandler(wxEvtHandler* pParent, GNC::DetachWindowTool* pTool): wxDefaultEvtHandlerTool(pParent, pTool) { m_pCornerTool = pTool; } ~wxDetachWindowEventHandler() { } virtual void OnUpdateUI(wxUpdateUIEvent &event) { wxDefaultEvtHandlerTool::OnUpdateUI(event); if(m_pCornerTool->IsDetached()) { event.SetText(_("Attach View")); } else { event.SetText(_("Detach view")); } } virtual void OnToolClick(wxCommandEvent &) { m_pCornerTool->doDetach(); } GNC::DetachWindowTool* m_pCornerTool; }; } } GNC::GCS::ITool* GNC::DetachWindowTool::NewTool() { return new GNC::DetachWindowTool(); } GNC::DetachWindowTool::DetachWindowTool() { } GNC::DetachWindowTool::~DetachWindowTool() { } bool GNC::DetachWindowTool::ExecuteAction() { //if i put it here it will be called twice because of toolsystembar //GNC::Entorno::Instance()->GetVentanaPrincipal()->EncajarDesencajar(ViewContract->GetView()); return false; } void GNC::DetachWindowTool::doDetach() { GNC::Entorno::Instance()->GetVentanaPrincipal()->EncajarDesencajar(ViewContract->GetView()); } void GNC::DetachWindowTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { GNC::GUI::wxDetachWindowEventHandler* evtHandler = new GNC::GUI::wxDetachWindowEventHandler(pParent, this); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ID, wxString::FromUTF8(Name.c_str()),Icon, evtHandler)); } } bool GNC::DetachWindowTool::IsDetached() { //si el padre de la vistapadre de la vista es un dialogo esta desencajada si no no if(ViewContract->GetView() != NULL) { wxWindow* pVentana = ViewContract->GetView()->GetWindow(); if(pVentana != NULL) { wxWindow* pVentanaPadre = pVentana->GetParent(); if(pVentanaPadre != NULL) { wxFrame* pdlg = dynamic_cast(pVentanaPadre); if(pdlg != NULL) { return true; } else { return false; } } } else { LOG_WARN("Core/HerramientaDesencajar", "Error al obtener la ventana asociada a la vista para comprobar encaje. Incosistencia interna"); } } return false; } ginkgocadx-3.8.7/cadxcore/main/tools/detachwindowtool.h000066400000000000000000000025261314736454600232740ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #if defined(ENABLE_DETACHWINDOWTOOL) #ifndef DETACHWINDOWTOOL_H #define DETACHWINDOWTOOL_H #include #include #include namespace GNC { class EXTAPI DetachWindowTool : public GNC::GCS::IDetachWindowTool { protected: public: virtual GNC::GCS::ITool* NewTool(); DetachWindowTool(); ~DetachWindowTool(); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); bool IsDetached(); void doDetach(); protected: }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/dicomizetool.cpp000066400000000000000000000037121314736454600227500ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include "dicomizetool.h" #include #include #include #include
    #include
    #include //---------------------------------------------------------------------- GNC::DicomizeTool::DicomizeTool(): GNC::GCS::IHistoryTool(ID,GNC::GCS::IHistoryTool::TFamily_Dicomize, _Std("Dicomize"), _Std("Dicomize files")+ " \tAlt+d", GinkgoResourcesManager::MenuIcons::GetIcoImportar(), GinkgoResourcesManager::BigIcons::GetIcoBigDicomize()) { } GNC::DicomizeTool::~DicomizeTool() { } bool GNC::DicomizeTool::Enabled() { return GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","import"); } void GNC::DicomizeTool::Execute() { try { GNC::GUI::wxWizardImportacionGinkgo ib(GNC::HistoryToolsController::Instance()->GetHistoryPanel()->GetWxWindow(),NULL); ib.ShowModal(); } catch(GIL::DICOM::I2DException& i) { LOG_ERROR("DicomizeTool", "Error in dicomization: " << i.GetCause()) } } ginkgocadx-3.8.7/cadxcore/main/tools/dicomizetool.h000066400000000000000000000023631314736454600224160ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_DICOMIZETOOL) #ifndef DICOMIZETOOL_H #define DICOMIZETOOL_H #include
    #include namespace GNC { class DicomizeTool : public GNC::GCS::IHistoryTool { public: static const GNC::GCS::IHistoryTool::UID ID = HCore_DicomizeFromHistory; DicomizeTool(); virtual ~DicomizeTool(); virtual bool Enabled(); virtual void Execute(); }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/enabled_tools.h000066400000000000000000000014551314736454600225300ustar00rootroot00000000000000 #define ENABLE_ANGLETOOL #define ENABLE_ANONYMIZETOOL #define ENABLE_CORNERANNOTATIONTOOL #define ENABLE_DICOMEXPORTTOOL #define ENABLE_DICOMIZETOOL #define ENABLE_DETACHWINDOWTOOL #define ENABLE_PIXELSBLURING #define ENABLE_MARKERTOOL #define ENABLE_METRICGRIDTOOL #define ENABLE_NOTETOOL #define ENABLE_OPENFILETOOL #define ENABLE_OPENFOLDERTOOL #define ENABLE_OPENREMOVABLETOOL #define ENABLE_PANTOOL #define ENABLE_POINTERTOOL #define ENABLE_QUERYRETRIEVETOOL #define ENABLE_RESETTOOL #define ENABLE_RULETOOL #define ENABLE_SENDPACSTOOL #define ENABLE_SHOWTAGSHISTORYTOOL #define ENABLE_SHOWTAGSTOOL #define ENABLE_SLIDERTOOL #define ENABLE_UNDOTOOL #define ENABLE_WINDOWLAYOUTTOOL #define ENABLE_WINDOWLEVELTOOL #define ENABLE_ZOOMTOOL #define ENABLE_RESETONEONETOOL #define ENABLE_BRIGHTNESSCONTRASTTOOL ginkgocadx-3.8.7/cadxcore/main/tools/exportdicomdirtool.cpp000066400000000000000000000051131314736454600241760ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include "exportdicomdirtool.h" #include #include #include
    #include
    #include #include
    #include //---------------------------------------------------------------------- GNC::ExportDicomDirTool::ExportDicomDirTool(): GNC::GCS::IHistoryTool(ID,GNC::GCS::IHistoryTool::TFamily_Export, _Std("Export to DICOM Dir"), _Std("Export to DICOM Dir")+ " \tAlt+e", GinkgoResourcesManager::MenuIcons::GetIcoDicomDir()) { } GNC::ExportDicomDirTool::~ExportDicomDirTool() { } bool GNC::ExportDicomDirTool::Enabled() { return GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","export"); } void GNC::ExportDicomDirTool::Execute() { GNC::GCS::IHistoryPanel* pHistory = GNC::HistoryToolsController::Instance()->GetHistoryPanel(); std::list listOfPks; pHistory->GetSelectedSeriesPk(listOfPks); Execute(listOfPks); } void GNC::ExportDicomDirTool::Execute(const std::list& listOfPks) { GNC::GCS::IHistoryPanel* pHistory = GNC::HistoryToolsController::Instance()->GetHistoryPanel(); if (listOfPks.empty()) { wxMessageBox(_("Select at least one series"), _("Info"), wxICON_INFORMATION, pHistory->GetWxWindow()); return; } if (!AreSeriesFullyDownloaded(listOfPks)) { GNC::GUI::SynchronizeDialog dlg(pHistory->GetWxWindow(), listOfPks, this); dlg.ShowModal(); } else { GNC::GUI::ExportDicomDir dlg(pHistory->GetWxWindow(), listOfPks); dlg.ShowModal(); } } ginkgocadx-3.8.7/cadxcore/main/tools/exportdicomdirtool.h000066400000000000000000000025101314736454600236410ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #if defined(ENABLE_DICOMEXPORTTOOL) #ifndef DICOMEXPORTTOOL_H #define DICOMEXPORTTOOL_H #include
    #include namespace GNC { class ExportDicomDirTool : public GNC::GCS::IHistoryTool { public: static const GNC::GCS::IHistoryTool::UID ID = HCore_ExportDicomDir; ExportDicomDirTool(); virtual ~ExportDicomDirTool(); virtual bool Enabled(); virtual void Execute(); virtual void Execute(const std::list& seriesPk); }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/historytools.h000066400000000000000000000020431314736454600224720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "anonymizetool.h" #include "showtagshistorytool.h" #include "openfiletool.h" #include "openfoldertool.h" #include "openremovabletool.h" #include "dicomizetool.h" #include "queryretrievehistorytool.h" #include "sendpacstool.h" #include "exportdicomdirtool.h" #include "searchginkgocloudhistorytool.h" ginkgocadx-3.8.7/cadxcore/main/tools/imageexporttool.cpp000066400000000000000000000047071314736454600234760ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "imageexporttool.h" #include #include #include #include
    #include
    //---------------------------------------------------------------------- namespace GNC { namespace GUI { class wxImageExportEventHandler: public wxDefaultEvtHandlerTool { public: wxImageExportEventHandler(wxEvtHandler* pParent, GNC::ImageExportTool* pTool): wxDefaultEvtHandlerTool(pParent, pTool) { m_pImageExport = pTool; } ~wxImageExportEventHandler() { } virtual void OnUpdateUI(wxUpdateUIEvent &event) { wxDefaultEvtHandlerTool::OnUpdateUI(event); if (event.GetEnabled()) { event.Enable(m_pImageExport->IsEnabled()); } } GNC::ImageExportTool* m_pImageExport; }; } } GNC::GCS::ITool* GNC::ImageExportTool::NewTool() { return new GNC::ImageExportTool(); } GNC::ImageExportTool::ImageExportTool() { } GNC::ImageExportTool::~ImageExportTool() { } bool GNC::ImageExportTool::ExecuteAction() { GNC::GUI::wxWidzardExportacionGinkgo dlg(WidgetsContract->GetManager()->GetVista()->GetWindow(), WidgetsContract); dlg.ShowModal(); return true; } void GNC::ImageExportTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { GNC::GUI::wxImageExportEventHandler* evtHandler = new GNC::GUI::wxImageExportEventHandler(pParent, this); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ID, wxString::FromUTF8(Name.c_str()),Icon, evtHandler)); } } ginkgocadx-3.8.7/cadxcore/main/tools/imageexporttool.h000066400000000000000000000023611314736454600231350ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #ifndef IMAGEEXPORTTTOOL_H #define IMAGEEXPORTTTOOL_H #include #include #include namespace GNC { class EXTAPI ImageExportTool : public GNC::GCS::IImageExportTool { protected: public: virtual GNC::GCS::ITool* NewTool(); ImageExportTool(); ~ImageExportTool(); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); protected: }; } #endif ginkgocadx-3.8.7/cadxcore/main/tools/markertool.cpp000066400000000000000000000251351314736454600224310ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "markertool.h" #if defined(ENABLE_MARKERTOOL) #include #include #include #include #include #include #include
    #include #include #include #include #include #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #define USAR_FLECHA 1451 #define USAR_ELIPSE 1452 #define USAR_TRAPEZOIDE 1453 #define USAR_FREEFORM 1454 #define USAR_PUNTO 1455 #define USAR_POLYGON 1456 namespace GNC { namespace GUI { class EventHandlerMarkerTools: public wxEvtHandler { public: EventHandlerMarkerTools(wxEvtHandler* pParent, GNC::MarkerTool* pHerramienta):wxEvtHandler() { m_pParent = pParent; m_pHerramienta=pHerramienta; // Connect Events m_pParent->Connect(USAR_PUNTO, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaPuntoClick),NULL,this); m_pParent->Connect(USAR_FLECHA, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaFlechaClick),NULL,this); m_pParent->Connect(USAR_ELIPSE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaElipseClick),NULL,this); m_pParent->Connect(USAR_TRAPEZOIDE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaTrapezoideClick),NULL,this); m_pParent->Connect(USAR_FREEFORM,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaFreeFormClick),NULL,this); m_pParent->Connect(USAR_POLYGON,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaPolygonClick),NULL,this); } ~EventHandlerMarkerTools() { m_pParent->Disconnect(USAR_PUNTO, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaPuntoClick),NULL,this); m_pParent->Disconnect(USAR_FLECHA, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaFlechaClick),NULL,this); m_pParent->Disconnect(USAR_ELIPSE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaElipseClick),NULL,this); m_pParent->Disconnect(USAR_TRAPEZOIDE, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaTrapezoideClick),NULL,this); m_pParent->Disconnect(USAR_FREEFORM,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaFreeFormClick),NULL,this); m_pParent->Disconnect(USAR_POLYGON,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerMarkerTools::OnHerramientaPolygonClick),NULL,this); m_pParent = NULL; m_pHerramienta = NULL; } virtual void OnHerramientaPuntoClick( wxCommandEvent& event ) { m_pHerramienta->SetTipoMarcado(GNC::MarkerTool::TW_Punto); event.Skip(false); } virtual void OnHerramientaFlechaClick( wxCommandEvent& event ) { m_pHerramienta->SetTipoMarcado(GNC::MarkerTool::TW_Flecha); event.Skip(false); } virtual void OnHerramientaElipseClick( wxCommandEvent& event ) { m_pHerramienta->SetTipoMarcado(GNC::MarkerTool::TW_Elipse); event.Skip(false); } virtual void OnHerramientaTrapezoideClick( wxCommandEvent& event ) { m_pHerramienta->SetTipoMarcado(GNC::MarkerTool::TW_Trapezoide); event.Skip(false); } virtual void OnHerramientaFreeFormClick( wxCommandEvent& event ) { m_pHerramienta->SetTipoMarcado(GNC::MarkerTool::TW_FreeForm); event.Skip(false); } virtual void OnHerramientaPolygonClick( wxCommandEvent& event ) { m_pHerramienta->SetTipoMarcado(GNC::MarkerTool::TW_Polygon); event.Skip(false); } GNC::MarkerTool* m_pHerramienta; wxEvtHandler* m_pParent; }; } } GNC::MarkerTool::MarkerTool() { m_MarcadoActivo = TW_Punto; m_pBuilder = NULL; } GNC::MarkerTool::~MarkerTool() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } //------------------------------------------------------------------------------ //region "ITool/IContract realization" GNC::GCS::ITool* GNC::MarkerTool::NewTool() { return new GNC::MarkerTool(); } void GNC::MarkerTool::Connect() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } SetTipoMarcado(m_MarcadoActivo); WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); if (m_pBuilder != NULL) { WidgetsContract->GetManager()->SetCursor(m_pBuilder->GetCursor()); } else { WidgetsContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); } } void GNC::MarkerTool::Disconnect() { WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } bool GNC::MarkerTool::HasDropDownMenu() { return true; } void GNC::MarkerTool::AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu) { pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu,USAR_PUNTO,_("Point"), GinkgoResourcesManager::MarkingBar::GetIcoPunto(), new GNC::GUI::EventHandlerMarkerTools(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu,USAR_FLECHA,_("Arrow"), GinkgoResourcesManager::MarkingBar::GetIcoFlecha(),new GNC::GUI::EventHandlerMarkerTools(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu,USAR_ELIPSE,_("Ellipse"), GinkgoResourcesManager::MarkingBar::GetIcoElipse(), new GNC::GUI::EventHandlerMarkerTools(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu,USAR_TRAPEZOIDE,_("Trapezoid"), GinkgoResourcesManager::MarkingBar::GetIcoTrapezoide(), new GNC::GUI::EventHandlerMarkerTools(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu,USAR_POLYGON,_("Polygon"), GinkgoResourcesManager::MarkingBar::GetIcoPoligono(), new GNC::GUI::EventHandlerMarkerTools(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu,USAR_FREEFORM,_("Free form"), GinkgoResourcesManager::MarkingBar::GetIcoFreeForm(), new GNC::GUI::EventHandlerMarkerTools(pParent, this))); } void GNC::MarkerTool::SetTipoMarcado(TipoMarcado tipo) { wxBitmap icon; if (m_MarcadoActivo == tipo && m_pBuilder != NULL) { return; } else { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } m_MarcadoActivo = tipo; switch (m_MarcadoActivo) { case TW_Flecha: m_pBuilder = new GNC::GCS::Widgets::WFlechaBuilder(WidgetsContract->GetManager(), GetTriggerButton()); icon = GinkgoResourcesManager::MarkingBar::GetIcoFlecha(); break; case TW_Elipse: m_pBuilder = new GNC::GCS::Widgets::WElipseBuilder(WidgetsContract->GetManager(), GetTriggerButton(), (unsigned long)this); icon = GinkgoResourcesManager::MarkingBar::GetIcoElipse(); break; case TW_Trapezoide: m_pBuilder = new GNC::GCS::Widgets::WTrapezoideBuilder(WidgetsContract->GetManager(), GetTriggerButton(), (unsigned long)this); icon = GinkgoResourcesManager::MarkingBar::GetIcoTrapezoide(); break; case TW_FreeForm: m_pBuilder = new GNC::GCS::Widgets::WFreeFormBuilder(WidgetsContract->GetManager(), GetTriggerButton()); icon = GinkgoResourcesManager::MarkingBar::GetIcoFreeForm(); break; case TW_Punto: { m_pBuilder = new GNC::GCS::Widgets::WPuntoBuilder(WidgetsContract->GetManager(), GetTriggerButton(), (unsigned long)this); icon = GinkgoResourcesManager::MarkingBar::GetIcoPunto(); } break; case TW_Polygon: { m_pBuilder = new GNC::GCS::Widgets::WPolygonBuilder(WidgetsContract->GetManager(), GetTriggerButton()); icon = GinkgoResourcesManager::MarkingBar::GetIcoPoligono(); } break; default: std::cerr << "Error, Elemento de marcado no soportado." << std::endl; break; } if (m_pBuilder != NULL) { WidgetsContract->GetManager()->SetCursor(m_pBuilder->GetCursor()); } else { WidgetsContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); } } if (icon.IsOk()) { GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ChangeToolIconEvent(&icon, this, m_pParent)); } } //endregion #endif ginkgocadx-3.8.7/cadxcore/main/tools/markertool.h000066400000000000000000000036401314736454600220730ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_MARKERTOOL) #ifndef MARKERTOOL_H #define MARKERTOOL_H #include #include namespace GNC { namespace GCS { namespace Widgets { class IWidgetBuilder; } } class EXTAPI MarkerTool : public GNC::GCS::IMarkerTool { public: typedef enum TipoMarcado { TW_Ninguno, TW_Flecha, TW_Elipse, TW_Punto, TW_Trapezoide, TW_FreeForm, TW_Polygon } TipoMarcado; MarkerTool(); ~MarkerTool(); //region "ITool/IContract realization" virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); virtual bool HasDropDownMenu(); void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); //endregion //region "Eventos refinados desde los paneles" virtual void SetTipoMarcado(TipoMarcado tipo); //endregion protected: GNC::GCS::Widgets::IWidgetBuilder* m_pBuilder; TipoMarcado m_MarcadoActivo; }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/metricgridtool.cpp000066400000000000000000000352621314736454600233030ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "metricgridtool.h" #if defined(ENABLE_METRICGRIDTOOL) #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include #define ACTIVAR_REJILLA 1241 #define ESCALA_REJILLA 1242 namespace GNC { namespace GUI { class DialogoRejilla: public wxDialog { public: typedef enum TMetrica { TM_UM = 0, TM_MM, TM_CM, TM_M } TMetrica; DialogoRejilla(wxWindow* pParent, GNC::MetricGridTool* pHerramienta): wxDialog(pParent,wxID_ANY,_("Grid"),wxDefaultPosition,wxDefaultSize,wxDEFAULT_DIALOG_STYLE) { m_pHerramienta=pHerramienta; this->SetSizeHints( wxDefaultSize, wxDefaultSize ); wxBoxSizer* bSizer5; bSizer5 = new wxBoxSizer( wxVERTICAL ); wxStaticBoxSizer* sbSizer2; sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Grid Scale") ), wxVERTICAL ); wxFlexGridSizer* fgSizer1; fgSizer1 = new wxFlexGridSizer( 2, 3, 0, 0 ); fgSizer1->SetFlexibleDirection( wxBOTH ); fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); wxStaticText* m_staticText4 = new wxStaticText( this, wxID_ANY, _("Scale X"), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer1->Add(m_staticText4,0,wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL,5); m_pSpinEscalaX = new wxSpinCtrl( this, wxID_ANY, wxT("50"), wxDefaultPosition, wxSize(60,-1), wxSP_ARROW_KEYS, 1, 10000, 50 ); m_pSpinEscalaX->SetToolTip(_("X axis scale")); fgSizer1->Add(m_pSpinEscalaX,0,wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL,5); std::string micrometros("µm."); wxString choices[] = {wxString::FromUTF8(micrometros.c_str()),wxT("mm."),wxT("cm."),wxT("m.")}; int choice2NChoices = sizeof( choices ) / sizeof( wxString ); m_pChoiceX = new wxChoice(this,wxID_ANY, wxDefaultPosition, wxDefaultSize, choice2NChoices, choices); fgSizer1->Add(m_pChoiceX,0,wxALL|wxALIGN_CENTER_VERTICAL,5); wxStaticText* m_staticText5 = new wxStaticText( this, wxID_ANY, _("Scale Y"), wxDefaultPosition, wxDefaultSize, 0 ); fgSizer1->Add(m_staticText5,0,wxALL|wxEXPAND,5); m_pSpinEscalaY = new wxSpinCtrl( this, wxID_ANY, wxT("50"), wxDefaultPosition, wxSize(60,-1), wxSP_ARROW_KEYS, 1, 10000, 50 ); m_pSpinEscalaY->SetToolTip(_("Y axis scale")); fgSizer1->Add(m_pSpinEscalaY,0,wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL,5); m_pChoiceY = new wxChoice(this,wxID_ANY, wxDefaultPosition, wxDefaultSize, choice2NChoices, choices); fgSizer1->Add(m_pChoiceY,0,wxALL|wxALIGN_CENTER_VERTICAL,5); sbSizer2->Add( fgSizer1, 1, wxEXPAND|wxALL, 5 ); bSizer5->Add( sbSizer2, 1,wxALL|wxEXPAND, 5 ); wxButton* m_button3 = new wxButton( this, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_button3->SetDefault(); bSizer5->Add( m_button3, 0, wxALL|wxALIGN_RIGHT, 5 ); this->SetSizer( bSizer5 ); this->Layout(); bSizer5->Fit( this ); this->Centre( wxBOTH ); double escalaX = m_pHerramienta->GetScaleX(); m_pChoiceX->Select((int)AjustaAMetricaApropiada(escalaX)); m_pSpinEscalaX->SetValue(escalaX); double escalaY = m_pHerramienta->GetScaleY(); m_pChoiceY->Select((int)AjustaAMetricaApropiada(escalaY)); m_pSpinEscalaY->SetValue(escalaY); m_pSpinEscalaX->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( DialogoRejilla::OnSpinCtrlX ), NULL, this ); m_pSpinEscalaY->Connect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( DialogoRejilla::OnSpinCtrlY ), NULL, this ); m_pChoiceX->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DialogoRejilla::OnEscalaX), NULL, this); m_pChoiceY->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DialogoRejilla::OnEscalaY), NULL, this); } ~DialogoRejilla() { m_pSpinEscalaX->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( DialogoRejilla::OnSpinCtrlX ), NULL, this ); m_pSpinEscalaX->Disconnect( wxEVT_COMMAND_SPINCTRL_UPDATED, wxSpinEventHandler( DialogoRejilla::OnSpinCtrlY ), NULL, this ); m_pChoiceX->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DialogoRejilla::OnEscalaX), NULL, this); m_pChoiceY->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DialogoRejilla::OnEscalaY), NULL, this); m_pHerramienta = NULL; } TMetrica AjustaAMetricaApropiada(double &escala) { if (escala > 10000.0f) { escala = (int)(escala / 1000.0f); return TM_M; } else if (escala > 100.0f) { escala = (int)(escala / 10.0f); return TM_CM; } else if (escala < 10.0f) { escala = (int)(escala * 1000.0f); return TM_UM; } else { escala = (int)(escala); return TM_MM; } } double TransformToMM(double valor, TMetrica escala) { switch (escala) { case TM_M: return valor * 1000.0; case TM_CM: return valor*10.0; case TM_UM: return valor / 1000.0; case TM_MM: return valor; } return valor; } void OnSpinCtrlX( wxSpinEvent& ) { const double valor = TransformToMM(m_pSpinEscalaX->GetValue(), (TMetrica)m_pChoiceX->GetSelection()); m_pHerramienta->SetScaleX(valor); } void OnEscalaX( wxCommandEvent &) { const double valor = TransformToMM(m_pSpinEscalaX->GetValue(), (TMetrica)m_pChoiceX->GetSelection()); m_pHerramienta->SetScaleX(valor); } void OnSpinCtrlY( wxSpinEvent& ) { const double valor = TransformToMM(m_pSpinEscalaY->GetValue(), (TMetrica)m_pChoiceY->GetSelection()); m_pHerramienta->SetScaleY(valor); } void OnEscalaY( wxCommandEvent &) { const double valor = TransformToMM(m_pSpinEscalaY->GetValue(), (TMetrica)m_pChoiceY->GetSelection()); m_pHerramienta->SetScaleY(valor); } wxSpinCtrl* m_pSpinEscalaX; wxSpinCtrl* m_pSpinEscalaY; wxChoice* m_pChoiceX; wxChoice* m_pChoiceY; GNC::MetricGridTool* m_pHerramienta; }; class MenuMetricGridTool : public wxMenu { public: MenuMetricGridTool(wxEvtHandler* pParent, GNC::MetricGridTool* pHerramienta):wxMenu() { m_pParent = pParent; m_pHerramienta=pHerramienta; wxMenuItem* pItemVer = new wxMenuItem(this,ACTIVAR_REJILLA,_("Show grid"),_("Show grid"),wxITEM_NORMAL); wxMenuItem* pItemEscala = new wxMenuItem(this,ESCALA_REJILLA,_("Configure Grid ..."),_("Configure Grid"),wxITEM_NORMAL); #ifdef __WXMSW__ pItemVer->SetBitmaps(GinkgoResourcesManager::GridBar::GetIcoVerRejilla()); #else pItemVer->SetBitmap(GinkgoResourcesManager::GridBar::GetIcoVerRejilla()); #endif m_pParent->Connect(pItemVer->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MenuMetricGridTool::OnActivarRejillaClick),NULL,this); m_pParent->Connect(pItemVer->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MenuMetricGridTool::OnUpdateUIMostrar),NULL,this); m_pParent->Connect(pItemEscala->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MenuMetricGridTool::OnEscalaClick),NULL,this); m_pParent->Connect(pItemEscala->GetId(), wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MenuMetricGridTool::OnUpdateUIHerramienta),NULL,this); Append(pItemVer); Append(pItemEscala); m_pParent->Connect(m_pHerramienta->ID, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MenuMetricGridTool::OnUpdateUIHerramienta),NULL,this); } ~MenuMetricGridTool() { m_pParent->Disconnect(ACTIVAR_REJILLA, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MenuMetricGridTool::OnActivarRejillaClick),NULL,this); m_pParent->Disconnect(ESCALA_REJILLA, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MenuMetricGridTool::OnEscalaClick),NULL,this); m_pParent->Disconnect(ACTIVAR_REJILLA, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MenuMetricGridTool::OnUpdateUIMostrar),NULL,this); m_pParent->Disconnect(ESCALA_REJILLA, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MenuMetricGridTool::OnUpdateUIHerramienta),NULL,this); m_pParent->Disconnect(m_pHerramienta->ID, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(MenuMetricGridTool::OnUpdateUIHerramienta),NULL,this); m_pParent = NULL; m_pHerramienta = NULL; } void OnActivarRejillaClick( wxCommandEvent& event ) { m_pHerramienta->ToggleGrid(); event.Skip(false); } void OnEscalaClick( wxCommandEvent& event ) { DialogoRejilla dlg(NULL,m_pHerramienta); dlg.ShowModal(); event.Skip(false); } void OnUpdateUIMostrar(wxUpdateUIEvent& event) { if(m_pHerramienta->IsVisible()) { event.SetText(_("Hide Grid")); } else { event.SetText(_("Show Grid")); } } void OnUpdateUIHerramienta(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->IsEnabled()); } GNC::MetricGridTool* m_pHerramienta; wxEvtHandler* m_pParent; }; } } GNC::GCS::ITool* GNC::MetricGridTool::NewTool() { return new GNC::MetricGridTool(); } GNC::MetricGridTool::MetricGridTool() { } GNC::MetricGridTool::~MetricGridTool() { } bool GNC::MetricGridTool::ExecuteAction() { ToggleGrid(); return true; } void GNC::MetricGridTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { wxMenu* pGridMenu = new GNC::GUI::MenuMetricGridTool(pParent,this); pMenu->Append(ID,wxString::FromUTF8(Name.c_str()),pGridMenu); pMenu->Enable(ID,Enabled); } } bool GNC::MetricGridTool::IsVisible() { GNC::GCS::Widgets::WRejillaBuilder* pRejillaBuilder = new GNC::GCS::Widgets::WRejillaBuilder(WidgetsContract->GetManager(), (unsigned long)this); bool visible = pRejillaBuilder->IsRejillaVisible(); delete pRejillaBuilder; return visible; } void GNC::MetricGridTool::ToggleGrid() { double spacing[3] = {1.0,1.0,1.0}; int dimensions[3] = {0,0,0}; WidgetsContract->GetViewerActivo()->GetSpacing(spacing); WidgetsContract->GetViewerActivo()->GetDimensions(dimensions); double escalaXDefecto = spacing[0] * dimensions [0] / 10; double escalaYDefecto = spacing[1] * dimensions [1] / 10; GNC::GCS::Widgets::WRejillaBuilder* pRejillaBuilder = new GNC::GCS::Widgets::WRejillaBuilder(WidgetsContract->GetManager(), (unsigned long)this, escalaXDefecto, escalaYDefecto); pRejillaBuilder->ActivarRejilla(!pRejillaBuilder->IsRejillaVisible()); delete pRejillaBuilder; GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoRender(WidgetsContract->GetManager()->GetVista())); } void GNC::MetricGridTool::SetScaleX(double escala) { GNC::GCS::Widgets::WRejillaBuilder* pRejillaBuilder = new GNC::GCS::Widgets::WRejillaBuilder(WidgetsContract->GetManager(), (unsigned long)this); pRejillaBuilder->ActivarRejilla(true); pRejillaBuilder->SetEscalaX(escala); delete pRejillaBuilder; GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoRender(WidgetsContract->GetManager()->GetVista())); } void GNC::MetricGridTool::SetScaleY(double escala) { GNC::GCS::Widgets::WRejillaBuilder* pRejillaBuilder = new GNC::GCS::Widgets::WRejillaBuilder(WidgetsContract->GetManager(), (unsigned long)this); pRejillaBuilder->ActivarRejilla(true); pRejillaBuilder->SetEscalaY(escala); delete pRejillaBuilder; GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoRender(WidgetsContract->GetManager()->GetVista())); } double GNC::MetricGridTool::GetScaleX() { double scale = 50.0; GNC::GCS::Widgets::WRejillaBuilder* pRejillaBuilder = new GNC::GCS::Widgets::WRejillaBuilder(WidgetsContract->GetManager(), (unsigned long)this); scale = pRejillaBuilder->GetEscalaX(); delete pRejillaBuilder; return scale; } double GNC::MetricGridTool::GetScaleY() { double scale = 50.0; GNC::GCS::Widgets::WRejillaBuilder* pRejillaBuilder = new GNC::GCS::Widgets::WRejillaBuilder(WidgetsContract->GetManager(), (unsigned long)this); scale = pRejillaBuilder->GetEscalaY(); delete pRejillaBuilder; return scale; } #endif ginkgocadx-3.8.7/cadxcore/main/tools/metricgridtool.h000066400000000000000000000027011314736454600227400ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_METRICGRIDTOOL) #ifndef METRICGRIDTOOL_H #define METRICGRIDTOOL_H #include #include #include namespace GNC { class EXTAPI MetricGridTool : public GNC::GCS::IMetricGridTool { public: virtual GNC::GCS::ITool* NewTool(); MetricGridTool(); ~MetricGridTool(); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); bool IsVisible(); void ToggleGrid(); void SetScaleX(double escala); void SetScaleY(double escala); double GetScaleX(); double GetScaleY(); protected: }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/notetool.cpp000066400000000000000000000043411314736454600221110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "notetool.h" #if defined(ENABLE_NOTETOOL) #include #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include GNC::NoteTool::NoteTool() { m_pBuilder = NULL; } GNC::NoteTool::~NoteTool() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } //------------------------------------------------------------------------------ //region "ITool/IContract realization" GNC::GCS::ITool* GNC::NoteTool::NewTool() { return new GNC::NoteTool(); } void GNC::NoteTool::Connect() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } m_pBuilder = new GNC::GCS::Widgets::WNotaBuilder(WidgetsContract->GetManager(), GetTriggerButton()); WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(m_pBuilder->GetCursor()); } void GNC::NoteTool::Disconnect() { WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } //endregion #endif ginkgocadx-3.8.7/cadxcore/main/tools/notetool.h000066400000000000000000000026171314736454600215620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_NOTETOOL) #ifndef NOTETOOL_H #define NOTETOOL_H #include #include namespace GNC { namespace GCS { namespace Widgets { class WNotaBuilder; } } class EXTAPI NoteTool : public GNC::GCS::INoteTool { public: NoteTool(); ~NoteTool(); //------------------------------------------------------------------------------ //region "ITool/IContract realization" virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); //endregion protected: GNC::GCS::Widgets::WNotaBuilder* m_pBuilder; }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/openfiletool.cpp000066400000000000000000000031671314736454600227520ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include "openfiletool.h" #include #include
    #include #include
    #include //---------------------------------------------------------------------- GNC::OpenFileTool::OpenFileTool(): GNC::GCS::IHistoryTool(ID,GNC::GCS::IHistoryTool::TFamily_Open, _Std("Open File"), _Std("Open File")+ " \tAlt+f", GinkgoResourcesManager::MenuIcons::GetIcoOpenFile()) { } GNC::OpenFileTool::~OpenFileTool() { } bool GNC::OpenFileTool::Enabled() { return GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire"); } void GNC::OpenFileTool::Execute() { GNC::GUI::Abrir::AbrirFichero(GNC::HistoryToolsController::Instance()->GetHistoryPanel()->GetWxWindow()); } ginkgocadx-3.8.7/cadxcore/main/tools/openfiletool.h000066400000000000000000000023501314736454600224100ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #if defined(ENABLE_OPENFILETOOL) #ifndef OPENFILETOOL_H #define OPENFILETOOL_H #include
    #include namespace GNC { class OpenFileTool : public GNC::GCS::IHistoryTool { public: static const GNC::GCS::IHistoryTool::UID ID = HCore_OpenFile; OpenFileTool(); virtual ~OpenFileTool(); virtual bool Enabled(); virtual void Execute(); }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/openfoldertool.cpp000066400000000000000000000032341314736454600233010ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "openfoldertool.h" #include #if defined(ENABLE_OPENFOLDERTOOL) #include
    #include #include
    #include
    //---------------------------------------------------------------------- GNC::OpenFolderTool::OpenFolderTool(): GNC::GCS::IHistoryTool(ID,GNC::GCS::IHistoryTool::TFamily_Open, _Std("Open folder"), _Std("Open folder")+ " \tAlt+o", GinkgoResourcesManager::MenuIcons::GetIcoOpenDir()) { } GNC::OpenFolderTool::~OpenFolderTool() { } bool GNC::OpenFolderTool::Enabled() { return GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire"); } void GNC::OpenFolderTool::Execute() { GNC::GUI::Abrir::AbrirDirectorio(GNC::HistoryToolsController::Instance()->GetHistoryPanel()->GetWxWindow()); } #endif ginkgocadx-3.8.7/cadxcore/main/tools/openfoldertool.h000066400000000000000000000023661314736454600227530ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_OPENFOLDERTOOL) #ifndef OPENFOLDERTOOL_H #define OPENFOLDERTOOL_H #include
    #include namespace GNC { class OpenFolderTool : public GNC::GCS::IHistoryTool { public: static const GNC::GCS::IHistoryTool::UID ID = HCore_OpenFolder; OpenFolderTool(); virtual ~OpenFolderTool(); virtual bool Enabled(); virtual void Execute(); }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/openginkgocloudlinktool.cpp000066400000000000000000000035731314736454600252170ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "openginkgocloudlinktool.h" #include #include
    #include #include
    #include //---------------------------------------------------------------------- GNC::OpenGinkgoCloudLinkTool::OpenGinkgoCloudLinkTool(): GNC::GCS::IHistoryTool(ID,GNC::GCS::IHistoryTool::TFamily_Open, _Std("Open Ginkgo Cloud link"), _Std("Open Ginkgo Cloud link"), GinkgoResourcesManager::ToolIcons::GetIcoDownloadCloud()) { } GNC::OpenGinkgoCloudLinkTool::~OpenGinkgoCloudLinkTool() { } bool GNC::OpenGinkgoCloudLinkTool::Enabled() { return GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire") && GNC::GCS::IControladorPermisos::Instance()->Get("ginkgocloud","download"); } void GNC::OpenGinkgoCloudLinkTool::Execute() { GNC::GUI::OpenGinkgoCloudDialog* dlg = new GNC::GUI::OpenGinkgoCloudDialog(GNC::HistoryToolsController::Instance()->GetHistoryPanel()->GetWxWindow()); dlg->Show(); dlg->Raise(); } ginkgocadx-3.8.7/cadxcore/main/tools/openginkgocloudlinktool.h000066400000000000000000000022261314736454600246560ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include
    #include namespace GNC { class OpenGinkgoCloudLinkTool : public GNC::GCS::IHistoryTool { public: static const GNC::GCS::IHistoryTool::UID ID = HCore_OpenGinkgoCloudLinkHistory; OpenGinkgoCloudLinkTool(); virtual ~OpenGinkgoCloudLinkTool(); virtual bool Enabled(); virtual void Execute(); }; } ginkgocadx-3.8.7/cadxcore/main/tools/openremovabletool.cpp000066400000000000000000000040371314736454600240040ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "openremovabletool.h" #if defined(ENABLE_OPENREMOVABLETOOL) #include #include #include
    #include
    #include
    #include //---------------------------------------------------------------------- GNC::OpenRemovableTool::OpenRemovableTool(): GNC::GCS::IHistoryTool(ID,GNC::GCS::IHistoryTool::TFamily_Open, _Std("Open removable unit"),_Std("Open removable unit"), GinkgoResourcesManager::MenuIcons::GetIcoRemovableUnit()) { } GNC::OpenRemovableTool::~OpenRemovableTool() { } bool GNC::OpenRemovableTool::Enabled() { #ifdef _WIN32 return GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire"); #else return false; #endif } void GNC::OpenRemovableTool::Execute() { GADAPI::OpenRemovableUnitCommandParams* pParams = new GADAPI::OpenRemovableUnitCommandParams(GNC::HistoryToolsController::Instance()->GetHistoryPanel()->GetWxWindow()); GADAPI::OpenRemovableUnitCommand* pCmd = new GADAPI::OpenRemovableUnitCommand(pParams); GNC::GCS::ICommandController::Instance()->ProcessAsync("Listing units...", pCmd, NULL); } #endif ginkgocadx-3.8.7/cadxcore/main/tools/openremovabletool.h000066400000000000000000000024131314736454600234450ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_OPENREMOVABLETOOL) #ifndef OPENREMOVABLETOOL_H #define OPENREMOVABLETOOL_H #include
    #include namespace GNC { class OpenRemovableTool : public GNC::GCS::IHistoryTool { public: static const GNC::GCS::IHistoryTool::UID ID = HCore_OpenRemovable; OpenRemovableTool(); virtual ~OpenRemovableTool(); virtual bool Enabled(); virtual void Execute(); }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/pacsuploadtool.cpp000066400000000000000000000051431314736454600233000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "pacsuploadtool.h" #include #include
    #include #include #include #include #include
    #include
    #include #include #include
    //---------------------------------------------------------------------- GNC::GCS::ITool* GNC::PACSUploadTool::NewTool() { return new GNC::PACSUploadTool(); } GNC::PACSUploadTool::PACSUploadTool() { } GNC::PACSUploadTool::~PACSUploadTool() { } bool GNC::PACSUploadTool::ExecuteAction() { std::list viewSeries; viewSeries.insert(viewSeries.begin(), ViewContract->GetView()->GetEstudio()->OpenedSeries.begin(), ViewContract->GetView()->GetEstudio()->OpenedSeries.end()); GNC::GUI::PACSUploadDialog dlg(ViewContract->GetView()->GetWindow(), viewSeries); if (dlg.ShowModal() == wxID_OK) { std::list listOfSeries; listOfSeries = dlg.GetSelectedSeries(); if (!listOfSeries.empty()) { GADAPI::SendPACSCommand* pCmd = new GADAPI::SendPACSCommand(dlg.GetSelectedServer(), "", listOfSeries); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Send to PACS..."),pCmd, NULL); } } return true; } void GNC::PACSUploadTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { GNC::GUI::wxDefaultEvtHandlerTool* evtHandler = new GNC::GUI::wxDefaultEvtHandlerTool(pParent, this); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ID, wxString::FromUTF8(Name.c_str()),Icon, evtHandler)); } } ginkgocadx-3.8.7/cadxcore/main/tools/pacsuploadtool.h000066400000000000000000000022071314736454600227430ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include namespace GNC { class EXTAPI PACSUploadTool : public GNC::GCS::IPACSUploadTool { protected: public: virtual GNC::GCS::ITool* NewTool(); PACSUploadTool(); ~PACSUploadTool(); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); protected: }; } ginkgocadx-3.8.7/cadxcore/main/tools/pixelsbluringtool.cpp000066400000000000000000000106251314736454600240350ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "pixelsbluringtool.h" #if defined(ENABLE_PIXELSBLURING) #include #include "pixelsbluringtool.h" #include #include #include
    #include #include
    #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include #include #include #include #include #include #include #include namespace GNC { namespace GUI { class wxPixelsBluringEventHandler: public wxDefaultEvtHandlerTool { public: wxPixelsBluringEventHandler(wxEvtHandler* pParent, GNC::PixelsBluringTool* pTool): wxDefaultEvtHandlerTool(pParent, pTool) { m_pPixelsBluringTool = pTool; } ~wxPixelsBluringEventHandler() { } virtual void OnUpdateUI(wxUpdateUIEvent &event) { if (m_pPixelsBluringTool->IsEnabled()) { wxDefaultEvtHandlerTool::OnUpdateUI(event); if(m_pPixelsBluringTool->IsSet()) { event.SetText(_("Unset pixels blurring")); } else { event.SetText(_("Set pixels blurring")); } event.Enable(true); } else { event.Enable(false); } } GNC::PixelsBluringTool* m_pPixelsBluringTool; }; } } GNC::GCS::ITool* GNC::PixelsBluringTool::NewTool() { return new GNC::PixelsBluringTool(); } GNC::PixelsBluringTool::PixelsBluringTool() { } GNC::PixelsBluringTool::~PixelsBluringTool() { } bool GNC::PixelsBluringTool::ExecuteAction() { if (PixelsBluringContract->Inicializado()) { GNC::GCS::IWidgetsContract::TViewerList list; PixelsBluringContract->GetAllViewers(list); bool enable = false; if (PixelsBluringContract->GetViewerActivo()->GetInterpolationMode() == VTK_LINEAR_INTERPOLATION) { enable = true; } for (GNC::GCS::IWidgetsContract::TViewerList::iterator it = list.begin(); it != list.end(); ++it) { vtkGinkgoImageViewer* pW = (*it); if (enable) { pW->SetInterpolationMode(VTK_NEAREST_INTERPOLATION); } else { pW->SetInterpolationMode(VTK_LINEAR_INTERPOLATION); } } GNC::GCS::ControladorEventos::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoRender(PixelsBluringContract->GetManager()->GetVista())); } return true; } void GNC::PixelsBluringTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { GNC::GUI::wxPixelsBluringEventHandler* evtHandler = new GNC::GUI::wxPixelsBluringEventHandler(pParent, this); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ID, wxString::FromUTF8(Name.c_str()),Icon, evtHandler)); } } bool GNC::PixelsBluringTool::IsSet() { if (PixelsBluringContract->GetViewerActivo() != NULL) { return PixelsBluringContract->GetViewerActivo()->GetInterpolationMode() == VTK_LINEAR_INTERPOLATION; } else { return NULL; } } bool GNC::PixelsBluringTool::IsEnabled() { return PixelsBluringContract->GetViewerActivo() != NULL; } #endif ginkgocadx-3.8.7/cadxcore/main/tools/pixelsbluringtool.h000066400000000000000000000025321314736454600235000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_PIXELSBLURING) #ifndef INTERPOLATETOOL_H #define INTERPOLATETOOL_H #include #include class HerramientaOpcionesGUIBase; namespace GNC { class EXTAPI PixelsBluringTool : public GNC::GCS::IPixelsBluringTool { public: virtual GNC::GCS::ITool* NewTool(); PixelsBluringTool(); ~PixelsBluringTool(); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); bool IsSet(); bool IsEnabled(); protected: }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/pointertool.cpp000066400000000000000000000051541314736454600226270ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include "pointertool.h" #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include GNC::PointerTool::PointerTool() { m_pSeleccionBuilder = NULL; } GNC::PointerTool::~PointerTool() { if (m_pSeleccionBuilder != NULL) { // DesSubscribimos los eventos de la ventana a un metodo especifico del panel de esta herramienta delete m_pSeleccionBuilder; m_pSeleccionBuilder = NULL; } } GNC::GCS::ITool* GNC::PointerTool::NewTool() { return new GNC::PointerTool(); } void GNC::PointerTool::Connect() { if (m_pSeleccionBuilder != NULL) { // DesSubscribimos los eventos de la ventana a un metodo especifico del panel de esta herramienta delete m_pSeleccionBuilder; m_pSeleccionBuilder = NULL; } m_pSeleccionBuilder = new TSeleccionBuilder(WidgetsContract->GetManager(), GetTriggerButton(), (unsigned long)this); WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(m_pSeleccionBuilder->GetCursor()); } void GNC::PointerTool::Disconnect() { WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); if (m_pSeleccionBuilder != NULL) { // DesSubscribimos los eventos de la ventana a un metodo especifico del panel de esta herramienta delete m_pSeleccionBuilder; m_pSeleccionBuilder = NULL; } } ginkgocadx-3.8.7/cadxcore/main/tools/pointertool.h000066400000000000000000000033471314736454600222760ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_POINTERTOOL) #ifndef POINTERTOOL_H #define POINTERTOOL_H #include #include /// Forward declarations namespace GNC { namespace GCS { namespace Events { class EventoRaton; class EventoTeclado; } namespace Widgets { class WSeleccionBuilder; } } } namespace GNC { class EXTAPI PointerTool : public GNC::GCS::IPointerTool { public: typedef GNC::GCS::Events::EventoRaton TEventoRaton; typedef GNC::GCS::Events::EventoTeclado TEventoTeclado; typedef GNC::GCS::Widgets::WSeleccionBuilder TSeleccionBuilder; PointerTool(); ~PointerTool(); //region "Realización de la interfaz IHerramienta" virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); //endregion //region "Eventos refinados desde los paneles" //endregion protected: TSeleccionBuilder* m_pSeleccionBuilder; }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/queryretrievehistorytool.cpp000066400000000000000000000034351314736454600255040ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include "queryretrievehistorytool.h" #include #include #include
    #include
    //---------------------------------------------------------------------- GNC::QueryRetrieveHistoryTool::QueryRetrieveHistoryTool(): GNC::GCS::IHistoryTool(ID,GNC::GCS::IHistoryTool::TFamily_Q_R, _Std("PACS Q/R"), _Std("Acquire a DICOM study from PACS")+ " \tAlt+a", GinkgoResourcesManager::Acquisition::GetIcoAdquirePACS(), GinkgoResourcesManager::BigIcons::GetIcoBigQR()) { } GNC::QueryRetrieveHistoryTool::~QueryRetrieveHistoryTool() { } bool GNC::QueryRetrieveHistoryTool::Enabled() { return GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire") && GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","pacs_acquisition"); } void GNC::QueryRetrieveHistoryTool::Execute() { GNC::GUI::DialogoAdquisicion::Instance()->Show(); } ginkgocadx-3.8.7/cadxcore/main/tools/queryretrievehistorytool.h000066400000000000000000000024321314736454600251450ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #if defined(ENABLE_QUERYRETRIEVETOOL) #ifndef QUERYRETRIEVETOOL_H #define QUERYRETRIEVETOOL_H #include
    #include namespace GNC { class QueryRetrieveHistoryTool : public GNC::GCS::IHistoryTool { public: static const GNC::GCS::IHistoryTool::UID ID = HCore_QueryRetrieveHistory; QueryRetrieveHistoryTool(); virtual ~QueryRetrieveHistoryTool(); virtual bool Enabled(); virtual void Execute(); }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/queryretrievetool.cpp000066400000000000000000000106201314736454600240540ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "queryretrievetool.h" #include #include
    #include #include
    #include
    #include
    #include
    #define QUERY_PACS 1871 #define QUERY_CLOUD 1872 namespace GNC { namespace GUI { class wxEventHandlerQRStudy : public wxEvtHandler { public: wxEventHandlerQRStudy(wxEvtHandler* pParent, GNC::QueryRetrieveTool* pHerramienta):wxEvtHandler() { m_pEvtParent = pParent; m_pHerramienta=pHerramienta; m_pEvtParent->Connect(QUERY_PACS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerQRStudy::OnQueryPacs),NULL,this); m_pEvtParent->Connect(QUERY_CLOUD, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerQRStudy::OnQueryCloud),NULL,this); } ~wxEventHandlerQRStudy() { m_pEvtParent->Disconnect(QUERY_PACS, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerQRStudy::OnQueryPacs),NULL,this); m_pEvtParent->Disconnect(QUERY_CLOUD, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerQRStudy::OnQueryCloud),NULL,this); m_pEvtParent = NULL; m_pHerramienta = NULL; } void OnQueryPacs( wxCommandEvent& event ) { m_pHerramienta->QueryRetrievePacs(); event.Skip(false); } void OnQueryCloud( wxCommandEvent& event ) { m_pHerramienta->QueryRetrieveCloud(); event.Skip(false); } GNC::QueryRetrieveTool* m_pHerramienta; wxEvtHandler* m_pEvtParent; }; } } GNC::GCS::ITool* GNC::QueryRetrieveTool::NewTool() { return new GNC::QueryRetrieveTool(); } GNC::QueryRetrieveTool::QueryRetrieveTool() { } GNC::QueryRetrieveTool::~QueryRetrieveTool() { } bool GNC::QueryRetrieveTool::ExecuteAction() { return false; } bool GNC::QueryRetrieveTool::HasDropDownMenu() { return true; } void GNC::QueryRetrieveTool::AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu) { if (pMenu->GetMenuItemCount() > 0 && !pMenu->GetMenuItems().back()->IsSeparator()) { pMenu->AppendSeparator(); } pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, QUERY_PACS, wxString(_("Acquire a DICOM study from PACS")), GinkgoResourcesManager::Acquisition::GetIcoAdquirePACS(), new GNC::GUI::wxEventHandlerQRStudy( pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, QUERY_CLOUD, wxString(_("Search Ginkgo Cloud")), GinkgoResourcesManager::ToolIcons::GetIcoSearchCloud(), new GNC::GUI::wxEventHandlerQRStudy( pParent, this))); pMenu->Enable(QUERY_PACS, GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire") && GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","pacs_acquisition")); pMenu->Enable(QUERY_CLOUD, GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire") && GNC::GCS::IControladorPermisos::Instance()->Get("ginkgocloud","download")); } void GNC::QueryRetrieveTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { AppendDropDownMenu(pParent, pMenu); } } void GNC::QueryRetrieveTool::QueryRetrievePacs() { GNC::GUI::DialogoAdquisicion::Instance()->Show(); } void GNC::QueryRetrieveTool::QueryRetrieveCloud() { GNC::GUI::GinkgoCloudSearchDialog::Instance()->Show(); } ginkgocadx-3.8.7/cadxcore/main/tools/queryretrievetool.h000066400000000000000000000025151314736454600235250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include namespace GNC { class EXTAPI QueryRetrieveTool : public GNC::GCS::IQueryRetrieveTool { public: virtual GNC::GCS::ITool* NewTool(); QueryRetrieveTool(); ~QueryRetrieveTool(); virtual bool HasDropDownMenu(); void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); virtual void QueryRetrievePacs(); virtual void QueryRetrieveCloud(); protected: }; } ginkgocadx-3.8.7/cadxcore/main/tools/resettool.cpp000066400000000000000000000042361314736454600222710ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "resettool.h" #if defined(ENABLE_RESETTOOL) #include #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include #include #include #include #include #include #include #include #include GNC::GCS::ITool* GNC::ResetTool::NewTool() { return new GNC::ResetTool(); } GNC::ResetTool::ResetTool() { } GNC::ResetTool::~ResetTool() { } bool GNC::ResetTool::ExecuteAction() { GNC::GCS::Events::EventoModificacionImagen* pEvt = new GNC::GCS::Events::EventoModificacionImagen(WidgetsContract->GetManager()->GetVista(),GNC::GCS::Events::EventoModificacionImagen::VisualizacionImagenModificada); pEvt->EnableResetWindowLevel(); pEvt->EnableResetBrightnessContrast(); pEvt->EnableResetCurrentPoint(); pEvt->EnableResetZoom(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(pEvt); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoRender(WidgetsContract->GetManager()->GetVista())); return true; } #endif ginkgocadx-3.8.7/cadxcore/main/tools/resettool.h000066400000000000000000000022051314736454600217300ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_RESETTOOL) #ifndef RESETTOOL_H #define RESETTOOL_H #include #include namespace GNC { class EXTAPI ResetTool : public GNC::GCS::IResetTool { public: virtual GNC::GCS::ITool* NewTool(); ResetTool(); ~ResetTool(); virtual bool ExecuteAction(); protected: }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/rotateandfliptool.cpp000066400000000000000000000241051314736454600240000ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "rotateandfliptool.h" #include #include #include #include #include #include
    #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include #include #include #include #include #include #include #include #include #define ROTATE_LEFT 1861 #define ROTATE_RIGHT 1862 #define FLIP_H 1863 #define FLIP_V 1864 #define CLEAR_ROTATION_AND_FLIP 1865 namespace GNC { namespace GUI { class wxEventHandlerRotateAndFlip : public wxEvtHandler { public: wxEventHandlerRotateAndFlip(wxEvtHandler* pParent, GNC::RotateAndFlipTool* pHerramienta):wxEvtHandler() { m_pEvtParent = pParent; m_pHerramienta=pHerramienta; m_pEvtParent->Connect(ROTATE_LEFT, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerRotateAndFlip::OnUpdateRotateAndFlipUI),NULL,this); m_pEvtParent->Connect(ROTATE_RIGHT, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerRotateAndFlip::OnUpdateRotateAndFlipUI),NULL,this); m_pEvtParent->Connect(FLIP_H, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerRotateAndFlip::OnUpdateRotateAndFlipUI),NULL,this); m_pEvtParent->Connect(FLIP_V, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerRotateAndFlip::OnUpdateRotateAndFlipUI),NULL,this); m_pEvtParent->Connect(CLEAR_ROTATION_AND_FLIP, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerRotateAndFlip::OnUpdateRotateAndFlipUI),NULL,this); m_pEvtParent->Connect(ROTATE_LEFT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerRotateAndFlip::OnRotateLeft),NULL,this); m_pEvtParent->Connect(ROTATE_RIGHT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerRotateAndFlip::OnRotateRight),NULL,this); m_pEvtParent->Connect(FLIP_H, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerRotateAndFlip::OnFlipH),NULL,this); m_pEvtParent->Connect(FLIP_V, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerRotateAndFlip::OnFlipV),NULL,this); m_pEvtParent->Connect(CLEAR_ROTATION_AND_FLIP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerRotateAndFlip::ClearRotationAndFlip),NULL,this); } ~wxEventHandlerRotateAndFlip() { m_pEvtParent->Disconnect(ROTATE_LEFT, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerRotateAndFlip::OnUpdateRotateAndFlipUI),NULL,this); m_pEvtParent->Disconnect(ROTATE_RIGHT, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerRotateAndFlip::OnUpdateRotateAndFlipUI),NULL,this); m_pEvtParent->Disconnect(FLIP_H, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerRotateAndFlip::OnUpdateRotateAndFlipUI),NULL,this); m_pEvtParent->Disconnect(FLIP_V, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerRotateAndFlip::OnUpdateRotateAndFlipUI),NULL,this); m_pEvtParent->Disconnect(CLEAR_ROTATION_AND_FLIP, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerRotateAndFlip::OnUpdateRotateAndFlipUI),NULL,this); m_pEvtParent->Disconnect(ROTATE_LEFT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerRotateAndFlip::OnRotateLeft),NULL,this); m_pEvtParent->Disconnect(ROTATE_RIGHT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerRotateAndFlip::OnRotateRight),NULL,this); m_pEvtParent->Disconnect(FLIP_H, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerRotateAndFlip::OnFlipH),NULL,this); m_pEvtParent->Disconnect(FLIP_V, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerRotateAndFlip::OnFlipV),NULL,this); m_pEvtParent->Disconnect(CLEAR_ROTATION_AND_FLIP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerRotateAndFlip::ClearRotationAndFlip),NULL,this); m_pEvtParent = NULL; m_pHerramienta = NULL; } void OnRotateLeft( wxCommandEvent& event ) { m_pHerramienta->Rotate(false); event.Skip(false); } void OnRotateRight( wxCommandEvent& event ) { m_pHerramienta->Rotate(true); event.Skip(false); } void OnFlipH( wxCommandEvent& event ) { m_pHerramienta->Flip(false); event.Skip(false); } void OnFlipV( wxCommandEvent& event ) { m_pHerramienta->Flip(true); event.Skip(false); } void OnUpdateRotateAndFlipUI(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->IsEnabled()); } void ClearRotationAndFlip( wxCommandEvent& event ) { m_pHerramienta->Clear(); event.Skip(false); } GNC::RotateAndFlipTool* m_pHerramienta; wxEvtHandler* m_pEvtParent; }; } } GNC::GCS::ITool* GNC::RotateAndFlipTool::NewTool() { return new GNC::RotateAndFlipTool(); } GNC::RotateAndFlipTool::RotateAndFlipTool() { } GNC::RotateAndFlipTool::~RotateAndFlipTool() { } bool GNC::RotateAndFlipTool::ExecuteAction() { return false; } bool GNC::RotateAndFlipTool::HasDropDownMenu() { return true; } void GNC::RotateAndFlipTool::AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu) { if (pMenu->GetMenuItemCount() > 0 && !pMenu->GetMenuItems().back()->IsSeparator()) { pMenu->AppendSeparator(); } pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, CLEAR_ROTATION_AND_FLIP, _("Undo rotate and flip"), GinkgoResourcesManager::MenuIcons::GetIcoReset(), new GNC::GUI::wxEventHandlerRotateAndFlip( pParent, this))); pMenu->AppendSeparator(); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ROTATE_LEFT, _("Rotate 90") + wxString::FromUTF8("º ")+ _("counter-clockwise"), GinkgoResourcesManager::ToolIcons::GetIcoRotateLeft(), new GNC::GUI::wxEventHandlerRotateAndFlip( pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ROTATE_RIGHT, _("Rotate 90") + wxString::FromUTF8("º ")+ _("clockwise"), GinkgoResourcesManager::ToolIcons::GetIcoRotateRight(), new GNC::GUI::wxEventHandlerRotateAndFlip( pParent, this))); pMenu->AppendSeparator(); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, FLIP_H, _("Flip horizontal"), GinkgoResourcesManager::ToolIcons::GetIcoFlipHorizontal(), new GNC::GUI::wxEventHandlerRotateAndFlip( pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, FLIP_V, _("Flip vertical"), GinkgoResourcesManager::ToolIcons::GetIcoFlipVertical(), new GNC::GUI::wxEventHandlerRotateAndFlip( pParent, this))); } void GNC::RotateAndFlipTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { AppendDropDownMenu(pParent, pMenu); } } void GNC::RotateAndFlipTool::Rotate(bool right) { GNC::GCS::IWidgetsContract::TViewerList listOfViewers; WidgetsContract->GetAllViewers(listOfViewers); for (GNC::GCS::IWidgetsContract::TViewerList::iterator it =listOfViewers.begin(); it != listOfViewers.end(); ++it) { (*it)->RotateCamera(right); } GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoModificacionImagen(WidgetsContract->GetManager()->GetVista(), GNC::GCS::Events::EventoModificacionImagen::AnotacionesEstaticasModificadas)); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoRender(WidgetsContract->GetManager()->GetVista())); } void GNC::RotateAndFlipTool::Flip(bool vertical) { GNC::GCS::IWidgetsContract::TViewerList listOfViewers; WidgetsContract->GetAllViewers(listOfViewers); for (GNC::GCS::IWidgetsContract::TViewerList::iterator it =listOfViewers.begin(); it != listOfViewers.end(); ++it) { (*it)->Flip(vertical); } GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoModificacionImagen(WidgetsContract->GetManager()->GetVista(), GNC::GCS::Events::EventoModificacionImagen::AnotacionesEstaticasModificadas)); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoRender(WidgetsContract->GetManager()->GetVista())); } void GNC::RotateAndFlipTool::Clear() { GNC::GCS::IWidgetsContract::TViewerList listOfViewers; WidgetsContract->GetAllViewers(listOfViewers); for (GNC::GCS::IWidgetsContract::TViewerList::iterator it =listOfViewers.begin(); it != listOfViewers.end(); ++it) { (*it)->ClearRotationAndFlip(true); } GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoModificacionImagen(WidgetsContract->GetManager()->GetVista(), GNC::GCS::Events::EventoModificacionImagen::AnotacionesEstaticasModificadas)); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoRender(WidgetsContract->GetManager()->GetVista())); } ginkgocadx-3.8.7/cadxcore/main/tools/rotateandfliptool.h000066400000000000000000000026511314736454600234470ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifndef ROTATEANDFLIPTOOL_H #define ROTATEANDFLIPTOOL_H #include #include namespace GNC { class EXTAPI RotateAndFlipTool : public GNC::GCS::IRotateAndFlipTool { public: virtual GNC::GCS::ITool* NewTool(); RotateAndFlipTool(); ~RotateAndFlipTool(); virtual bool HasDropDownMenu(); void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); virtual void Rotate(bool right); virtual void Flip(bool vertical); virtual void Clear(); protected: }; } #endif ginkgocadx-3.8.7/cadxcore/main/tools/ruletool.cpp000066400000000000000000000047351314736454600221220ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "ruletool.h" #if defined(ENABLE_RULETOOL) #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include GNC::RuleTool::RuleTool() : m_pRuleBuilder(NULL) { m_pRuleBuilder = NULL; } GNC::RuleTool::~RuleTool() { } //------------------------------------------------------------------------------ //region "ITool/IContract realization" GNC::GCS::ITool* GNC::RuleTool::NewTool() { return new GNC::RuleTool(); } void GNC::RuleTool::Connect() { if (RuleContract == NULL || RuleContract->GetManager()==NULL) { return; } if (m_pRuleBuilder != NULL) { delete m_pRuleBuilder; m_pRuleBuilder = NULL; } m_pRuleBuilder = new GNC::GCS::Widgets::WRuleBuilder(RuleContract->GetManager(), GetTriggerButton(), RuleContract->SupportsCallibration()); RuleContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); RuleContract->GetManager()->SetCursor(m_pRuleBuilder->GetCursor()); } void GNC::RuleTool::Disconnect() { if (RuleContract == NULL) { return; } if (RuleContract->GetViewerActivo() != NULL) { RuleContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); } if (RuleContract->GetManager() != NULL) { RuleContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); } if (m_pRuleBuilder != NULL) { delete m_pRuleBuilder; m_pRuleBuilder = NULL; } } //endregion #endif ginkgocadx-3.8.7/cadxcore/main/tools/ruletool.h000066400000000000000000000026101314736454600215550ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #if defined(ENABLE_RULETOOL) #ifndef RULETOOL_H #define RULETOOL_H #include #include namespace GNC { namespace GCS { namespace Widgets { class WRuleBuilder; } } class EXTAPI RuleTool : public GNC::GCS::IRuleTool { public: RuleTool(); ~RuleTool(); //------------------------------------------------------------------------------ //region "ITool/IContract realization" virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); //endregion protected: GNC::GCS::Widgets::WRuleBuilder* m_pRuleBuilder; }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/searchginkgocloudhistorytool.cpp000066400000000000000000000035431314736454600262640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include "searchginkgocloudhistorytool.h" #include #include
    #include #include
    #include //---------------------------------------------------------------------- GNC::SearchGinkgoCloudHistoryTool::SearchGinkgoCloudHistoryTool(): GNC::GCS::IHistoryTool(ID,GNC::GCS::IHistoryTool::TFamily_Q_R, _Std("Search Ginkgo Cloud"), _Std("Search Ginkgo Cloud"), GinkgoResourcesManager::ToolIcons::GetIcoSearchCloud(),GinkgoResourcesManager::BigIcons::GetIcoBigGinkgoCloudSearch()) { } GNC::SearchGinkgoCloudHistoryTool::~SearchGinkgoCloudHistoryTool() { } bool GNC::SearchGinkgoCloudHistoryTool::Enabled() { return GNC::GCS::IControladorPermisos::Instance()->Get("core.restrictions","acquire") && GNC::GCS::IControladorPermisos::Instance()->Get("ginkgocloud","download"); } void GNC::SearchGinkgoCloudHistoryTool::Execute() { GNC::GUI::GinkgoCloudSearchDialog::Instance()->Show(); } ginkgocadx-3.8.7/cadxcore/main/tools/searchginkgocloudhistorytool.h000066400000000000000000000022431314736454600257250ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include
    #include namespace GNC { class SearchGinkgoCloudHistoryTool : public GNC::GCS::IHistoryTool { public: static const GNC::GCS::IHistoryTool::UID ID = HCore_SearchGinkgoCloudHistory; SearchGinkgoCloudHistoryTool(); virtual ~SearchGinkgoCloudHistoryTool(); virtual bool Enabled(); virtual void Execute(); }; } ginkgocadx-3.8.7/cadxcore/main/tools/secondarycapturetool.cpp000066400000000000000000000060451314736454600245220ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "secondarycapturetool.h" #include #include #include #include #include #include
    #include #include
    #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include #include #include #include #include #include #include #include #include #include GNC::GCS::ITool* GNC::SecondaryCaptureTool::NewTool() { return new GNC::SecondaryCaptureTool(); } GNC::SecondaryCaptureTool::SecondaryCaptureTool() { } GNC::SecondaryCaptureTool::~SecondaryCaptureTool() { } bool GNC::SecondaryCaptureTool::ExecuteAction() { std::string tempName = GNC::Entorno::Instance()->CreateGinkgoTempFile(); { vtkSmartPointer windowToImageFilter = vtkSmartPointer::New(); windowToImageFilter->SetInput(WidgetsContract->GetViewerActivo()->GetRenderWindow()); windowToImageFilter->SetInputBufferTypeToRGB(); //also record the alpha (transparency) channel windowToImageFilter->Update(); vtkSmartPointer writer = vtkSmartPointer::New(); writer->SetFileName(tempName.c_str()); writer->SetQuality(97); writer->ProgressiveOn(); writer->SetInputConnection(windowToImageFilter->GetOutputPort()); writer->Write(); } GADAPI::SecondaryCaptureDicomizeCommandParameters* pParams = new GADAPI::SecondaryCaptureDicomizeCommandParameters(WidgetsContract->GetManager()->GetVista(), tempName); GADAPI::SecondaryCaptureDicomizeCommand* pCmd = new GADAPI::SecondaryCaptureDicomizeCommand(pParams); GNC::CommandController::Instance()->ProcessAsync("SC", pCmd, WidgetsContract->GetManager()->GetVista()); return true; } ginkgocadx-3.8.7/cadxcore/main/tools/secondarycapturetool.h000066400000000000000000000022221314736454600241600ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifndef SECONDARYCAPTURETOOL_H #define SECONDARYCAPTURETOOL_H #include #include namespace GNC { class EXTAPI SecondaryCaptureTool : public GNC::GCS::ISecondaryCaptureTool { public: virtual GNC::GCS::ITool* NewTool(); SecondaryCaptureTool(); ~SecondaryCaptureTool(); virtual bool ExecuteAction(); protected: }; } #endif ginkgocadx-3.8.7/cadxcore/main/tools/sendpacstool.cpp000066400000000000000000000055711314736454600227520ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ //#define _GINKGO_TRACE #include #include "sendpacstool.h" #include #include #include
    #include #include
    #include
    #include
    #include
    #include //---------------------------------------------------------------------- GNC::SendPACSTool::SendPACSTool(): GNC::GCS::IHistoryTool(ID,GNC::GCS::IHistoryTool::TFamily_Send, _Std("Send to PACS"), _Std("Send to PACS"), GinkgoResourcesManager::MenuIcons::GetIcoSendToPACS()) { } GNC::SendPACSTool::~SendPACSTool() { } bool GNC::SendPACSTool::Enabled() { return GNC::GCS::IControladorPermisos::Instance()->Get("core.pacs.limits","pacs_upload"); } void GNC::SendPACSTool::Execute() { GNC::GCS::IHistoryPanel* pHistory = GNC::HistoryToolsController::Instance()->GetHistoryPanel(); std::list listOfPks; pHistory->GetSelectedSeriesPk(listOfPks); Execute(listOfPks); } void GNC::SendPACSTool::Execute(const std::list& listOfPks) { GNC::GCS::IHistoryPanel* pHistory = GNC::HistoryToolsController::Instance()->GetHistoryPanel(); if (listOfPks.empty()) { wxMessageBox(_("Select at least one series"), _("Info"), wxICON_INFORMATION, pHistory->GetWxWindow()); return; } if (!AreSeriesFullyDownloaded(listOfPks)) { GNC::GUI::SynchronizeDialog dlg(pHistory->GetWxWindow(), listOfPks, this); dlg.ShowModal(); } else { GNC::GUI::SelectPacsServer dlg(pHistory->GetWxWindow()); if (dlg.ShowModal() == wxID_OK) { GADAPI::SendPACSCommand* pCmd = new GADAPI::SendPACSCommand(dlg.GetSelectedServer(), "", listOfPks); GNC::GCS::ICommandController::Instance()->ProcessAsync(_Std("Sending to PACS..."),pCmd, NULL); } } } ginkgocadx-3.8.7/cadxcore/main/tools/sendpacstool.h000066400000000000000000000024431314736454600224120ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #if defined(ENABLE_SENDPACSTOOL) #ifndef SENDPACSTOOL_H #define SENDPACSTOOL_H #include
    #include namespace GNC { class SendPACSTool : public GNC::GCS::IHistoryTool { public: static const GNC::GCS::IHistoryTool::UID ID = HCore_HistoryPACSUpload; SendPACSTool(); virtual ~SendPACSTool(); virtual bool Enabled(); virtual void Execute(); virtual void Execute(const std::list& seriesPk); }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/showhistorytool.cpp000066400000000000000000000042511314736454600235460ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "showhistorytool.h" #include #include #include #include
    #include
    #include
    #include
    //---------------------------------------------------------------------- GNC::GCS::ITool* GNC::ShowHistoryTool::NewTool() { return new GNC::ShowHistoryTool(); } GNC::ShowHistoryTool::ShowHistoryTool() { } GNC::ShowHistoryTool::~ShowHistoryTool() { } bool GNC::ShowHistoryTool::ExecuteAction() { if (GNC::GUI::HistoryPanel3::Instance()->IsIconized()) { GNC::GUI::HistoryPanel3::Instance()->Restore(); } if (!GNC::GUI::HistoryPanel3::Instance()->IsShown()) { GNC::GUI::HistoryPanel3::Instance()->Show(true); } else { GNC::GUI::HistoryPanel3::Instance()->Raise(); } return true; } void GNC::ShowHistoryTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { GNC::GUI::wxDefaultEvtHandlerTool* evtHandler = new GNC::GUI::wxDefaultEvtHandlerTool(pParent, this); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ID, wxString::FromUTF8(Name.c_str()),Icon, evtHandler)); } } bool GNC::ShowHistoryTool::IsShown() { return GNC::GUI::HistoryPanel3::Instance()->IsShown(); } ginkgocadx-3.8.7/cadxcore/main/tools/showhistorytool.h000066400000000000000000000024071314736454600232140ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #ifndef SHOWHISTORYTOOL_H #define SHOWHISTORYTOOL_H #include #include #include namespace GNC { class EXTAPI ShowHistoryTool : public GNC::GCS::IShowHistoryTool { protected: public: virtual GNC::GCS::ITool* NewTool(); ShowHistoryTool(); ~ShowHistoryTool(); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); bool IsShown(); protected: }; } #endif ginkgocadx-3.8.7/cadxcore/main/tools/showtagshistorytool.cpp000066400000000000000000000047021314736454600244260ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "showtagshistorytool.h" #if defined(ENABLE_SHOWTAGSHISTORYTOOL) #include #include
    #include #include
    #include //---------------------------------------------------------------------- GNC::ShowTagsHistoryTool::ShowTagsHistoryTool(): GNC::GCS::IHistoryTool(ID,GNC::GCS::IHistoryTool::TFamily_ShowMetadata, _Std("DICOM inspector"), _Std("DICOM inspector"), GinkgoResourcesManager::ToolIcons::GetIcoMostrarOcultarTags()) { } GNC::ShowTagsHistoryTool::~ShowTagsHistoryTool() { } void GNC::ShowTagsHistoryTool::Execute() { GNC::GCS::IHistoryPanel* pHistory = GNC::HistoryToolsController::Instance()->GetHistoryPanel(); std::list listOfPks; pHistory->GetSelectedSeriesPk(listOfPks); if (listOfPks.empty()) { wxMessageBox(_("Select at least one series"), _("Info"), wxICON_INFORMATION, pHistory->GetWxWindow()); return; } int i = 0; for (std::list::iterator it = listOfPks.begin(); it != listOfPks.end(); ++it) { GNC::GUI::PanelTags* m_pPanel = new GNC::GUI::PanelTags(pHistory->GetWxWindow(), false); if (m_pPanel->SetSeriesPk((*it))) { m_pPanel->Show(true); wxPoint position = m_pPanel->GetPosition(); position.x += i; position.y += i; m_pPanel->SetPosition(position); i += 10; } else { m_pPanel->Destroy(); } } } #endif ginkgocadx-3.8.7/cadxcore/main/tools/showtagshistorytool.h000066400000000000000000000023611314736454600240720ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #if defined(ENABLE_SHOWTAGSHISTORYTOOL) #ifndef SHOWTAGSHISTORYTOOL_H #define SHOWTAGSHISTORYTOOL_H #include
    #include namespace GNC { class ShowTagsHistoryTool : public GNC::GCS::IHistoryTool { public: static const GNC::GCS::IHistoryTool::UID ID = HCore_ShowDicomTagsHistory; ShowTagsHistoryTool(); virtual ~ShowTagsHistoryTool(); virtual void Execute(); }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/showtagstool.cpp000066400000000000000000000113621314736454600230040ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "showtagstool.h" #include #include #include #include #include
    #include
    #include
    #include
    #include namespace GNC { namespace GUI { class EventHandlerShowTagsTool: public GNC::GUI::wxDefaultEvtHandlerTool { public: EventHandlerShowTagsTool(wxEvtHandler* pParent, GNC::ShowTagsTool* pTool): GNC::GUI::wxDefaultEvtHandlerTool(pParent, pTool) { m_pHerramienta = pTool; m_pParent = pParent; } ~EventHandlerShowTagsTool() { } virtual void OnUpdateUI(wxUpdateUIEvent &event) { wxDefaultEvtHandlerTool::OnUpdateUI(event); if(m_pHerramienta->IsVisible()) { event.SetText(_("Hide DICOM inspector")); } else { event.SetText(_("Show DICOM inspector")); } } GNC::ShowTagsTool* m_pHerramienta; wxEvtHandler* m_pParent; }; } } GNC::GCS::ITool* GNC::ShowTagsTool::NewTool() { return new GNC::ShowTagsTool(); } GNC::ShowTagsTool::ShowTagsTool() { m_pPanelTags = NULL; } GNC::ShowTagsTool::~ShowTagsTool() { if (m_pPanelTags != NULL) { m_pPanelTags->Close(true); m_pPanelTags->Destroy(); } } bool GNC::ShowTagsTool::ExecuteAction() { if (m_pPanelTags == NULL) { m_pPanelTags = new GNC::GUI::PanelTags(GNC::Entorno::Instance()->GetVentanaRaiz()); GNC::GCS::IEventsController::Instance()->Registrar(this, GNC::GCS::Events::EventoModificacionImagen(ViewContract->GetView())); } if (m_pPanelTags != NULL) { if (!IsVisible()) { if (ViewContract->GetView() != NULL) { m_pPanelTags->SetView(ViewContract->GetView()); } else { m_pPanelTags->SetView(NULL); } } m_pPanelTags->MostrarOcultarPanelTags(); } return true; } void GNC::ShowTagsTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { GNC::GUI::EventHandlerShowTagsTool* evtHandler = new GNC::GUI::EventHandlerShowTagsTool(pParent, this); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ID, wxString::FromUTF8(Name.c_str()),Icon, evtHandler)); } } bool GNC::ShowTagsTool::IsVisible() { bool isVisible =false; if (m_pPanelTags != NULL) { isVisible = m_pPanelTags->IsVisiblePanelTags(); } return isVisible; } void GNC::ShowTagsTool::ProcesarEvento(GNC::GCS::Events::IEvent *evt) { if ( evt->GetCodigoEvento() == ginkgoEVT_Core_ModificacionImagen) { GNC::GCS::Events::EventoModificacionImagen* pEvt = dynamic_cast(evt); if (!pEvt) return; if (pEvt->GetTipo() == GNC::GCS::Events::EventoModificacionImagen::SliceCambiado || pEvt->GetTipo() == GNC::GCS::Events::EventoModificacionImagen::ImagenCargada || pEvt->GetTipo() == GNC::GCS::Events::EventoModificacionImagen::AnotacionesEstaticasModificadas) { if (m_pPanelTags != NULL) { if (IsVisible()) { if (ViewContract->GetView() != NULL) { m_pPanelTags->SetView(ViewContract->GetView()); } else { m_pPanelTags->SetView(NULL); } } } } } } ginkgocadx-3.8.7/cadxcore/main/tools/showtagstool.h000066400000000000000000000052441314736454600224530ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_SHOWTAGSTOOL) #ifndef SHOWTAGSTOOL_H #define SHOWTAGSTOOL_H #include #include #include namespace GNC { namespace GUI { class PanelTags; } class EXTAPI ShowTagsTool : public GNC::GCS::IShowTagsTool, public GNC::GCS::IEventsObserver { protected: public: virtual GNC::GCS::ITool* NewTool(); ShowTagsTool(); ~ShowTagsTool(); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt); bool IsVisible(); protected: GNC::GUI::PanelTags* m_pPanelTags; }; } #endif #endif /* #include "enabled_tools.h" #if defined(ENABLE_SHOWTAGSTOOL) #ifndef SHOWTAGSTOOL_H #define SHOWTAGSTOOL_H #include #include #include #include class HerramientaOpcionesGUIBase; namespace GNC { class EXTAPI HerramientaPanelTags : public GNC::GCS::IToolPanelTags, public GNC::GCS::IObservadorEventos { protected: public: HerramientaPanelTags(); ~HerramientaPanelTags(); virtual bool AppendInMenu(wxWindow* pParent, wxMenu* pMenuParent); //region "Realizacion de la interfaz IHerramienta" // Setup de paneles virtual void CrearPaneles( wxPanel* pParent ); //endregion //cuando hacen click en ella... bool IsVisible(); virtual void SolicitarActivacion(const GNC::GCS::TriggerButton& buttonmask); virtual void ConectarContratoFalso(bool activar); virtual void SetVistaActiva(GNC::GCS::IVista* pVista); virtual void ConectarContratos(bool activar); virtual void SetVentanaTags(GNC::GCS::IPanelHerramientaTags* pWindow) ; virtual void ProcesarEvento(GNC::GCS::Events::IEvent *evt); protected: GNC::GCS::IPanelHerramientaTags* m_pPanelTags; }; } #endif #endif*/ ginkgocadx-3.8.7/cadxcore/main/tools/simpleprinttool.cpp000066400000000000000000000271661314736454600235240ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "simpleprinttool.h" #include #include #include #include #include #include #include
    #include
    #include
    #include
    #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define SIMPLE_SETUP 1876 #define SIMPLE_PRINT 1877 #define SIMPLE_PRINT_PREVIEW 1878 namespace GNC { namespace GUI { class wxEventHandlerSimplePrint : public wxEvtHandler { public: wxEventHandlerSimplePrint(wxEvtHandler* pParent, GNC::SimplePrintTool* pHerramienta):wxEvtHandler() { m_pEvtParent = pParent; m_pHerramienta=pHerramienta; m_pEvtParent->Connect(SIMPLE_SETUP, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerSimplePrint::OnUpdateUI),NULL,this); m_pEvtParent->Connect(SIMPLE_PRINT, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerSimplePrint::OnUpdateUI),NULL,this); m_pEvtParent->Connect(SIMPLE_PRINT_PREVIEW, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerSimplePrint::OnUpdateUI),NULL,this); m_pEvtParent->Connect(SIMPLE_SETUP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerSimplePrint::OnSetup),NULL,this); m_pEvtParent->Connect(SIMPLE_PRINT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerSimplePrint::OnPrint),NULL,this); m_pEvtParent->Connect(SIMPLE_PRINT_PREVIEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerSimplePrint::OnPrintPreview),NULL,this); } ~wxEventHandlerSimplePrint() { m_pEvtParent->Disconnect(SIMPLE_SETUP, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerSimplePrint::OnUpdateUI),NULL,this); m_pEvtParent->Disconnect(SIMPLE_PRINT, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerSimplePrint::OnUpdateUI),NULL,this); m_pEvtParent->Disconnect(SIMPLE_PRINT_PREVIEW, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerSimplePrint::OnUpdateUI),NULL,this); m_pEvtParent->Disconnect(SIMPLE_SETUP, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerSimplePrint::OnSetup),NULL,this); m_pEvtParent->Disconnect(SIMPLE_PRINT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerSimplePrint::OnPrint),NULL,this); m_pEvtParent->Disconnect(SIMPLE_PRINT_PREVIEW, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(wxEventHandlerSimplePrint::OnPrintPreview),NULL,this); m_pEvtParent = NULL; m_pHerramienta = NULL; } void OnPrint( wxCommandEvent& event ) { m_pHerramienta->doPrint(); event.Skip(false); } void OnSetup( wxCommandEvent& event ) { m_pHerramienta->doSetup(); event.Skip(false); } void OnPrintPreview(wxCommandEvent& event) { m_pHerramienta->doPrintPreview(); event.Skip(false); } void OnUpdateUI(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->IsEnabled()); } GNC::SimplePrintTool* m_pHerramienta; wxEvtHandler* m_pEvtParent; }; } ///////printout helper class ginkgoPrintOutImage: public wxPrintout { public: ginkgoPrintOutImage(const wxImage& im):wxPrintout(_("Image printing")),img(im) { } ~ginkgoPrintOutImage() { } virtual bool HasPage(int page) { return page == 1; } virtual void GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo) { *minPage = *maxPage = *pageFrom = *pageTo= 1; } virtual bool OnPrintPage(int /*page*/) { wxDC *dc = GetDC(); if (dc) { //limpioi dc->SetBackground(*wxWHITE_BRUSH); dc->Clear(); if (img.IsOk()) { wxSize pageSize = this->GetLogicalPageRect().GetSize(); wxSize imgSize = img.GetSize(); bool resample = false; if (imgSize.x > pageSize.x || imgSize.y > pageSize.y) { //downscale if (imgSize.x > pageSize.x) { imgSize.y = ((double)pageSize.x/imgSize.x)*imgSize.y; imgSize.x = pageSize.x; resample = true; } if (imgSize.y > pageSize.y) { imgSize.x = ((double)pageSize.y/imgSize.y)*imgSize.x; imgSize.y = pageSize.y; resample = true; } } else { //upscale if (((float)imgSize.x/pageSize.x) > ((float)imgSize.y/pageSize.y)) { imgSize.y = ((double)pageSize.x/imgSize.x)*imgSize.y; imgSize.x = pageSize.x; resample = true; } else { imgSize.x = ((double)pageSize.y/imgSize.y)*imgSize.x; imgSize.y = pageSize.y; resample = true; } } if (resample) { img.Rescale(imgSize.x, imgSize.y, wxIMAGE_QUALITY_BILINEAR); } dc->DrawBitmap( img, 0, 0 ); } return true; } else { return false; } } wxImage img; }; } GNC::GCS::ITool* GNC::SimplePrintTool::NewTool() { return new GNC::SimplePrintTool(); } GNC::SimplePrintTool::SimplePrintTool() { pData = new wxPrintData(); } GNC::SimplePrintTool::~SimplePrintTool() { delete pData; } bool GNC::SimplePrintTool::ExecuteAction() { return false; } bool GNC::SimplePrintTool::HasDropDownMenu() { return true; } void GNC::SimplePrintTool::AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu) { if (pMenu->GetMenuItemCount() > 0 && !pMenu->GetMenuItems().back()->IsSeparator()) { pMenu->AppendSeparator(); } pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, SIMPLE_SETUP, _("Page setup") + wxString(wxT("...")), wxNullBitmap, new GNC::GUI::wxEventHandlerSimplePrint( pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, SIMPLE_PRINT_PREVIEW, _("Print preview") + wxString(wxT("...")), wxNullBitmap, new GNC::GUI::wxEventHandlerSimplePrint( pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, SIMPLE_PRINT, _("Print") + wxString(wxT("...")), GinkgoResourcesManager::MenuIcons::GetIcoImpresora(), new GNC::GUI::wxEventHandlerSimplePrint( pParent, this))); } void GNC::SimplePrintTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { AppendDropDownMenu(pParent, pMenu); } } wxImage getImage(const vtkSmartPointer& rendWin) { if (rendWin == NULL) { return wxNullImage; } vtkSmartPointer windowToImageFilter = vtkSmartPointer::New(); windowToImageFilter->SetInput(rendWin); windowToImageFilter->SetInputBufferTypeToRGB(); //also record the alpha (transparency) channel windowToImageFilter->Update(); //copy image to wx... // put the pixels into a wxImage ... vtkSmartPointer timg = windowToImageFilter->GetOutput(); unsigned char *pVtkPix = (unsigned char *)timg->GetScalarPointer(); unsigned long imgsize = timg->GetDimensions()[0] * timg->GetDimensions()[1] * sizeof(unsigned char) * 3; unsigned char* data = new unsigned char[imgsize]; int linesize = timg->GetDimensions()[0] *3; for (int y = 0; y < timg->GetDimensions()[1]; ++y) { int offsetWx = imgsize - (linesize * (y +1)); int offsetVtk = y*linesize; for (int x = 0; x < linesize; ++x) { data[offsetWx+x] = pVtkPix[offsetVtk+x]; } } return wxImage(timg->GetDimensions()[0], timg->GetDimensions()[1],data,false); } void GNC::SimplePrintTool::doPrintPreview() { wxImage image = getImage(WidgetsContract->GetViewerActivo()->GetRenderWindow()); if (image.IsOk()) { wxPrintPreview* myPrintPreview = new wxPrintPreview(new ginkgoPrintOutImage(image), new ginkgoPrintOutImage(image), pData); wxPreviewFrame *frame = new wxPreviewFrame(myPrintPreview, WidgetsContract->GetManager()->GetVista()->GetWindow(), _("Print image"), wxDefaultPosition, wxSize(800, 600)); frame->InitializeWithModality(wxPreviewFrame_WindowModal); frame->Show(true); frame->Show(true); } } void GNC::SimplePrintTool::doPrint() { wxImage image = getImage(WidgetsContract->GetViewerActivo()->GetRenderWindow()); if (image.IsOk()) { wxPrintDialogData dlgData(*pData); wxPrinter printer(&dlgData); ginkgoPrintOutImage prOut(image); printer.Print(WidgetsContract->GetManager()->GetVista()->GetWindow(), &prOut); } } void GNC::SimplePrintTool::doSetup() { wxPageSetupDialogData dlgData(*pData); wxPageSetupDialog dlg(WidgetsContract->GetManager()->GetVista()->GetWindow(), &dlgData); dlg.ShowModal(); } ginkgocadx-3.8.7/cadxcore/main/tools/simpleprinttool.h000066400000000000000000000025621314736454600231620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include class wxPrintData; namespace GNC { class EXTAPI SimplePrintTool : public GNC::GCS::ISimplePrintTool { public: virtual GNC::GCS::ITool* NewTool(); SimplePrintTool(); ~SimplePrintTool(); virtual bool ExecuteAction(); virtual bool HasDropDownMenu(); virtual void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); void doPrint(); void doPrintPreview(); void doSetup(); protected: wxPrintData* pData; }; } ginkgocadx-3.8.7/cadxcore/main/tools/startdicomizationtool.cpp000066400000000000000000000046341314736454600247200ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "startdicomizationtool.h" #include #include #include #include
    #include
    #include
    #include
    #include #include
    #include
    #include //---------------------------------------------------------------------- GNC::GCS::ITool* GNC::StartDicomizationTool::NewTool() { return new GNC::StartDicomizationTool(); } GNC::StartDicomizationTool::StartDicomizationTool() { } GNC::StartDicomizationTool::~StartDicomizationTool() { } bool GNC::StartDicomizationTool::ExecuteAction() { try { GNC::GUI::wxWizardImportacionGinkgo ib(GNC::HistoryToolsController::Instance()->GetHistoryPanel()->GetWxWindow(),NULL); ib.ShowModal(); } catch(GIL::DICOM::I2DException& i) { LOG_ERROR("DicomizeTool", "Error in dicomization: " << i.GetCause()) } return true; } void GNC::StartDicomizationTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { GNC::GUI::wxDefaultEvtHandlerTool* evtHandler = new GNC::GUI::wxDefaultEvtHandlerTool(pParent, this); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ID, wxString::FromUTF8(Name.c_str()),Icon, evtHandler)); } } bool GNC::StartDicomizationTool::IsShown() { return GNC::GUI::HistoryPanel3::Instance()->IsShown(); } ginkgocadx-3.8.7/cadxcore/main/tools/startdicomizationtool.h000066400000000000000000000023521314736454600243600ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #include #include #include namespace GNC { class EXTAPI StartDicomizationTool : public GNC::GCS::IStartDicomizationTool { protected: public: virtual GNC::GCS::ITool* NewTool(); StartDicomizationTool(); ~StartDicomizationTool(); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); bool IsShown(); protected: }; } ginkgocadx-3.8.7/cadxcore/main/tools/toolpan.cpp000066400000000000000000000044201314736454600217200ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "toolpan.h" #if defined(ENABLE_PANTOOL) #include #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include GNC::ToolPan::ToolPan() { m_pBuilder = NULL; } GNC::ToolPan::~ToolPan() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } GNC::GCS::ITool* GNC::ToolPan::NewTool() { return new GNC::ToolPan(); } void GNC::ToolPan::Connect() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } m_pBuilder = new TBuilder(WidgetsContract->GetManager(), GetTriggerButton(), (unsigned long)this); WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(m_pBuilder->GetCursor()); } void GNC::ToolPan::Disconnect() { WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); // DesSubscribimos los eventos de la ventana a un metodo especifico del panel de esta herramienta if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } #endif ginkgocadx-3.8.7/cadxcore/main/tools/toolpan.h000066400000000000000000000030241314736454600213640ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_PANTOOL) #ifndef PANTOOL_H #define PANTOOL_H #include #include #include namespace GNC { class EXTAPI ToolPan : public GNC::GCS::IToolPan { public: typedef GNC::GCS::Events::EventoRaton TEventoRaton; typedef GNC::GCS::Events::EventoTeclado TEventoTeclado; typedef GNC::GCS::Widgets::WPanBuilder TBuilder; ToolPan(); ~ToolPan(); //region "Realización de la interfaz IHerramienta" virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); //endregion //region "Eventos refinados desde los paneles" //endregion protected: TBuilder* m_pBuilder; }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/toolslider.cpp000066400000000000000000000134111314736454600224240ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "toolslider.h" #if defined (ENABLE_SLIDERTOOL) #include #include #include #include #include #include
    #include #include
    #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include namespace GNC { class EXTAPI wxToolSliderKeyHandler: public wxEvtHandler { public: wxToolSliderKeyHandler(wxEvtHandler* pParent, GNC::ToolSlider* pTool): wxEvtHandler() { m_pParent = pParent; m_pTool = pTool; // Connect Events m_pParent->Connect(wxEVT_CHAR, wxKeyEventHandler( wxToolSliderKeyHandler::OnChar),NULL,this); } virtual ~wxToolSliderKeyHandler() { m_pParent->Disconnect(wxEVT_CHAR, wxKeyEventHandler( wxToolSliderKeyHandler::OnChar),NULL,this); } virtual void OnChar(wxKeyEvent& event) { GNC::GCS::ISliderContract* SliderContract = m_pTool->SliderContract; switch(event.GetKeyCode()) { case WXK_RIGHT: { if (SliderContract) { const int maxSlices = SliderContract->GetNumberOfSlices(); const int newSlice = SliderContract->GetSlice() + 1; if (newSlice >= maxSlices) { SliderContract->SetSlice(0); } else { SliderContract->SetSlice( newSlice ); } } event.Skip(false); } break; case WXK_LEFT: { if (SliderContract) { const int newSlice = SliderContract->GetSlice() - 1; if (newSlice >= 0) { SliderContract->SetSlice(newSlice); } else { const int maxSlices = SliderContract->GetNumberOfSlices(); SliderContract->SetSlice( maxSlices - 1 ); } } event.Skip(false); } break; case WXK_UP: { if (SliderContract) { SliderContract->GoToPrevSeries(); } event.Skip(false); } break; case WXK_DOWN: { if (SliderContract) { SliderContract->GoToNextSeries(); } event.Skip(false); } break; default: event.ResumePropagation(10); event.Skip(true); } } protected: wxEvtHandler* m_pParent; GNC::ToolSlider* m_pTool; }; } GNC::ToolSlider::ToolSlider() { m_pBuilder = NULL; m_pHandler = NULL; } GNC::ToolSlider::~ToolSlider() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } if (m_pHandler != NULL) { delete m_pHandler; } } GNC::GCS::ITool* GNC::ToolSlider::NewTool() { return new GNC::ToolSlider(); } void GNC::ToolSlider::Connect() { if (SliderContract) { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } m_pBuilder = new TBuilder(SliderContract->GetManager(),SliderContract, GetTriggerButton(), (unsigned long)this); SliderContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); SliderContract->GetManager()->SetCursor(m_pBuilder->GetCursor()); } } void GNC::ToolSlider::Disconnect() { if (SliderContract) { SliderContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); SliderContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); // DesSubscribimos los eventos de la ventana a un metodo especifico del panel de esta herramienta if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } } void GNC::ToolSlider::ConnectKeyEvents(wxWindow* pWindow) { if (pWindow) { if (m_pHandler != NULL) { LOG_WARN("ToolSlider", "Registering key events twice"); delete m_pHandler; } m_pHandler = new wxToolSliderKeyHandler(pWindow, this); } } //endregion #endif ginkgocadx-3.8.7/cadxcore/main/tools/toolslider.h000066400000000000000000000027421314736454600220760ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_SLIDERTOOL) #ifndef SLIDERTOOL_H #define SLIDERTOOL_H #include #include #include namespace GNC { class wxToolSliderKeyHandler; class EXTAPI ToolSlider : public GNC::GCS::IToolSlider { public: typedef GNC::GCS::Widgets::WSliderBuilder TBuilder; ToolSlider(); ~ToolSlider(); virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); virtual void ConnectKeyEvents(wxWindow* pWindow); protected: friend class wxToolSliderKeyHandler; TBuilder* m_pBuilder; wxToolSliderKeyHandler* m_pHandler; }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/toolwindowlevel.cpp000066400000000000000000000313251314736454600235050ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "toolwindowlevel.h" #if defined(ENABLE_WINDOWLEVELTOOL) #include #include #include
    #include #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #define RESETEAR_WINDOWLEVEL 1221 #define AUTO_CALCULE 1222 #define FIRST_WINDOW_LEVEL 1223 namespace GNC { namespace GUI { class EventHandlerWindowLevel: public wxEvtHandler { public: EventHandlerWindowLevel(wxEvtHandler* pParent, GNC::ToolWindowLevel* pHerramienta, GNC::GCS::IWindowLevelContract::ListaWindowLevels* pListaWindowLevels):wxEvtHandler() { m_pParent = pParent; m_pHerramienta=pHerramienta; m_pWindowLevelList = pListaWindowLevels; // Connect Events m_pParent->Connect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerWindowLevel::OnMenuWindowLevelClick),NULL,this); } ~EventHandlerWindowLevel() { m_pParent->Disconnect(wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerWindowLevel::OnMenuWindowLevelClick),NULL,this); m_pParent = NULL; m_pHerramienta = NULL; } virtual void OnMenuWindowLevelClick( wxCommandEvent& event ) { if (event.GetId() == RESETEAR_WINDOWLEVEL) { m_pHerramienta->Resetear(); } else if (event.GetId() == AUTO_CALCULE) { m_pHerramienta->AutoCalcule(); } else { if (m_pWindowLevelList != NULL) { int index = event.GetId() - FIRST_WINDOW_LEVEL; GNC::GCS::IWindowLevelContract::ListaWindowLevels::iterator it = m_pWindowLevelList->begin(); for (int i = 0; index != i && it != m_pWindowLevelList->end(); ++it, ++i); if (it != m_pWindowLevelList->end()) { m_pHerramienta->SetWindowLevel((*it).m_label); } } } event.Skip(false); } GNC::ToolWindowLevel* m_pHerramienta; wxEvtHandler* m_pParent; GNC::GCS::IWindowLevelContract::ListaWindowLevels* m_pWindowLevelList; }; } } //---------------------------------------------------------------------- GNC::ToolWindowLevel::ToolWindowLevel() { m_pWindowLevelBuilder = NULL; } GNC::ToolWindowLevel::~ToolWindowLevel() { if (m_pWindowLevelBuilder != NULL) { delete m_pWindowLevelBuilder; m_pWindowLevelBuilder = NULL; } } GNC::GCS::ITool* GNC::ToolWindowLevel::NewTool() { return new GNC::ToolWindowLevel(); } void GNC::ToolWindowLevel::Connect() { if (m_pWindowLevelBuilder != NULL) { delete m_pWindowLevelBuilder; m_pWindowLevelBuilder = NULL; } if (WindowLevelContract->Inicializado()) { // Subscribimos los eventos de la ventana a un metodo especifico del panel de esta herramienta // Usamos de Id de grupo el valor del puntero de la herramienta, WindowLevelContract es unico y no cambia m_pWindowLevelBuilder = new GNC::GCS::Widgets::WWindowLevelBuilder(WindowLevelContract->GetManager(), GetTriggerButton(), (unsigned long)this); m_pWindowLevelBuilder->SetObservador(this); WindowLevelContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WindowLevelContract->GetManager()->SetCursor(m_pWindowLevelBuilder->GetCursor()); } } void GNC::ToolWindowLevel::Disconnect() { if (m_pWindowLevelBuilder != NULL) { delete m_pWindowLevelBuilder; m_pWindowLevelBuilder = NULL; } WindowLevelContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WindowLevelContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); } bool GNC::ToolWindowLevel::HasDropDownMenu() { return true; } void GNC::ToolWindowLevel::AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu) { if (!WindowLevelContract->GetWindowLevelList().empty()) { double window = -1, level = -1; if (WindowLevelContract->Inicializado()) { window = WindowLevelContract->GetCurrentWindow(); level = WindowLevelContract->GetCurrentLevel(); } else { return; } bool inserted = false; //first file int i = FIRST_WINDOW_LEVEL; wxBitmap icon; for (GNC::GCS::IWindowLevelContract::ListaWindowLevels::iterator it = WindowLevelContract->GetWindowLevelList().begin(); it != WindowLevelContract->GetWindowLevelList().end(); ++it) { if ((*it).m_type == TWindowLevelContract::WindowLevel::TWLT_FILE) { wxMenuItem* pItem = new GNC::GUI::wxMenuItemTool(pMenu, i++,wxString::FromUTF8((*it).m_label.c_str()), icon, new GNC::GUI::EventHandlerWindowLevel(pParent, this, &WindowLevelContract->GetWindowLevelList()), wxITEM_CHECK); pMenu->Append(pItem); pMenu->Check(pItem->GetId(), (window == (*it).m_window && level == (*it).m_level)); inserted = true; } } if (inserted) { pMenu->AppendSeparator(); } inserted = false; for (GNC::GCS::IWindowLevelContract::ListaWindowLevels::iterator it = WindowLevelContract->GetWindowLevelList().begin(); it != WindowLevelContract->GetWindowLevelList().end(); ++it) { if ((*it).m_type == TWindowLevelContract::WindowLevel::TWLT_PREDEFINED) { wxMenuItem* pItem = new GNC::GUI::wxMenuItemTool(pMenu, i++,wxString::FromUTF8((*it).m_label.c_str()), icon, new GNC::GUI::EventHandlerWindowLevel(pParent, this, &WindowLevelContract->GetWindowLevelList()), wxITEM_CHECK); pMenu->Append(pItem); pMenu->Check(pItem->GetId(), (window == (*it).m_window && level == (*it).m_level)); inserted = true; } } if (inserted) { pMenu->AppendSeparator(); } } wxBitmap icon; pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, RESETEAR_WINDOWLEVEL,_("Reset to default"), GinkgoResourcesManager::MenuIcons::GetIcoReset(), new GNC::GUI::EventHandlerWindowLevel(pParent, this, &WindowLevelContract->GetWindowLevelList()))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, AUTO_CALCULE,_("Auto calculate"), icon, new GNC::GUI::EventHandlerWindowLevel(pParent, this, &WindowLevelContract->GetWindowLevelList()))); } //region "Realización de la interfaz IHerramienta" void GNC::ToolWindowLevel::OnStart() { double window = WindowLevelContract->GetCurrentWindow(); double level = WindowLevelContract->GetCurrentLevel(); m_WindowLevelInicial = GNC::GCS::IWindowLevelContract::WindowLevel("",window, level, TWindowLevelContract::WindowLevel::TWLT_PREDEFINED); } void GNC::ToolWindowLevel::OnAjuste(TVector& start, TVector& stop) { vtkGinkgoImageViewer* pIV = WindowLevelContract->GetViewerActivo(); int* size = pIV->GetRenderWindow()->GetSize(); TVector delta = ((stop - start) * 2) / TVector(size[0], size[1]); if (std::abs(m_WindowLevelInicial.m_window) > 0.01) { delta.x *= m_WindowLevelInicial.m_window; } else { delta.x *= (m_WindowLevelInicial.m_window < 0 ? -0.01 : 0.01); } if (std::abs(m_WindowLevelInicial.m_level) > 0.01) { delta.y *= m_WindowLevelInicial.m_level; } else { delta.y *= (m_WindowLevelInicial.m_level < 0 ? -0.01 : 0.01); } // Abs so that direction does not flip if (m_WindowLevelInicial.m_window < 0.0) { delta.x *= -1.0f; } if (m_WindowLevelInicial.m_level < 0.0) { delta.y *= -1.0f; } // Compute new window level double newWindow = delta.x + m_WindowLevelInicial.m_window; double newLevel = m_WindowLevelInicial.m_level - delta.y; // Stay away from zero and really newWindow = std::max((double)0.01f, newWindow); if (std::abs(newLevel) < 0.01) { newLevel = 0.01*(newLevel < 0 ? -1 : 1); } double newClampedWindow = newWindow; double newClampedLevel = newLevel; ClampWindowLevel(newWindow, newLevel, newClampedWindow, newClampedLevel); WindowLevelContract->SetUserDefinedWindowLevel(newClampedWindow, newClampedLevel); SetWindowLevel(newClampedWindow, newClampedLevel); } void GNC::ToolWindowLevel::OnEnd() { } //endregion //region "metodos propios de la herramienta window/level" void GNC::ToolWindowLevel::ClampWindowLevel(double window, double level, double& clampedWindow, double& clampedLevel) { clampedWindow = window; clampedLevel = level; } void GNC::ToolWindowLevel::SetWindowLevel(const std::string& label) { for (TWindowLevelContract::ListaWindowLevels::iterator it = WindowLevelContract->GetWindowLevelList().begin(); it != WindowLevelContract->GetWindowLevelList().end(); ++it) { if ( (*it).m_label == label) { WindowLevelContract->SetLabelCurrent(label); SetWindowLevel((*it).m_window, (*it).m_level); return; } } } void GNC::ToolWindowLevel::SetWindowLevel(double window, double level) { GNC::GCS::Events::EventoModificacionImagen* pEvt = new GNC::GCS::Events::EventoModificacionImagen(WindowLevelContract->GetManager()->GetVista(),GNC::GCS::Events::EventoModificacionImagen::VisualizacionImagenModificada, -1); pEvt->SetWindow(window); pEvt->SetLevel(level); GNC::GCS::IEventsController::Instance()->ProcesarEvento(pEvt); } void GNC::ToolWindowLevel::Resetear() { wxString wLStr, wWStr; vtkGinkgoImageViewer* pIV = WindowLevelContract->GetViewerActivo(); if (pIV == NULL) { return; } GNC::GCS::Events::EventoModificacionImagen* pEvt = new GNC::GCS::Events::EventoModificacionImagen(WindowLevelContract->GetManager()->GetVista(),GNC::GCS::Events::EventoModificacionImagen::VisualizacionImagenModificada, -1); pEvt->EnableResetWindowLevel(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(pEvt); double window = WindowLevelContract->GetCurrentWindow(); double level = WindowLevelContract->GetCurrentLevel(); WindowLevelContract->SetLabelCurrent(""); SetWindowLevel(window, level); } void GNC::ToolWindowLevel::AutoCalcule() { GNC::GCS::Events::EventoModificacionImagen* pEvt = new GNC::GCS::Events::EventoModificacionImagen(WindowLevelContract->GetManager()->GetVista(),GNC::GCS::Events::EventoModificacionImagen::VisualizacionImagenModificada, -1); pEvt->EnableAutoCalculeWindowLevel(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(pEvt); } //endregion #endif ginkgocadx-3.8.7/cadxcore/main/tools/toolwindowlevel.h000066400000000000000000000047701314736454600231560ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_WINDOWLEVELTOOL) #ifndef WINDOWLEVELTOOL_H #define WINDOWLEVELTOOL_H #include #include #include #include #include #include namespace GNC { namespace GCS { namespace Widgets { class WWindowLevelBuilder; } } class EXTAPI ToolWindowLevel : public GNC::GCS::IToolWindowLevel, public GNC::GCS::Widgets::Observadores::IObservadorWindowLevel { public: typedef GNC::GCS::Widgets::WWindowLevelBuilder TBuilder; typedef GNC::GCS::IWindowLevelContract TWindowLevelContract; ToolWindowLevel(); virtual ~ToolWindowLevel(); //region "ITool/IContract realization" virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); virtual bool HasDropDownMenu(); void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); //endregion //region "Realización de la interfaz IHerramienta" virtual void OnStart(); virtual void OnAjuste(TVector& start, TVector& stop); virtual void OnEnd(); //endregion //region "metodos propios de la herramienta window/level" virtual void ClampWindowLevel(double window, double level, double& clampedWindow, double& clampedLevel); void SetWindowLevel(const std::string& label); virtual void SetWindowLevel(double window, double level); void Resetear(); void AutoCalcule(); //endregion protected: TBuilder* m_pWindowLevelBuilder; GNC::GCS::IWindowLevelContract::WindowLevel m_WindowLevelInicial; }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/toolzoom.cpp000066400000000000000000000161211314736454600221270ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "toolzoom.h" #if defined(ENABLE_ZOOMTOOL) #include #include #include #include #include #include #include #include #include
    #include
    #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #define ZOOM_1_1 1211 namespace GNC { namespace GUI { class EventHandlerZoomTool: public wxEvtHandler { public: EventHandlerZoomTool(wxEvtHandler* pParent, GNC::ToolZoom* pHerramienta):wxEvtHandler() { m_pParent = pParent; m_pHerramienta=pHerramienta; // Connect Events m_pParent->Connect(ZOOM_1_1, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerZoomTool::OnZoom1_1Click),NULL,this); } ~EventHandlerZoomTool() { m_pParent->Disconnect(ZOOM_1_1, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerZoomTool::OnZoom1_1Click),NULL,this); } virtual void OnZoom1_1Click(wxCommandEvent& event) { m_pHerramienta->ZoomOneOne(); event.Skip(false); } GNC::ToolZoom* m_pHerramienta; wxEvtHandler* m_pParent; }; } class EXTAPI wxToolZoomKeyHandler: public wxEvtHandler { public: wxToolZoomKeyHandler(wxEvtHandler* pParent, GNC::ToolZoom* pTool): wxEvtHandler() { m_pParent = pParent; m_pTool = pTool; // Connect Events m_pParent->Connect(wxEVT_CHAR, wxKeyEventHandler( wxToolZoomKeyHandler::OnChar),NULL,this); } virtual ~wxToolZoomKeyHandler() { m_pParent->Disconnect(wxEVT_CHAR, wxKeyEventHandler( wxToolZoomKeyHandler::OnChar),NULL,this); } void DoZoom(int steps) { if (m_pTool->WidgetsContract && m_pTool->WidgetsContract->GetViewerActivo()) { vtkSmartPointer rwi = m_pTool->WidgetsContract->GetViewerActivo()->GetRenderWindowInteractor(); vtkSmartPointer is = dynamic_cast (rwi->GetInteractorStyle()); if (is != NULL) { if (is->GetState() != VTKIS_ZOOM) { is->StartZoom(); } double factor = 0.1* steps * is->GetMouseWheelMotionFactor(); //this->Dolly(pow((double)1.1, factor)); is->DoZoom(factor, true); } } } virtual void OnChar(wxKeyEvent& event) { switch(event.GetKeyCode()) { case WXK_PAGEUP: { //zoom - DoZoom(3); event.Skip(false); } break; case WXK_PAGEDOWN: { //zoom + DoZoom(-3); event.Skip(false); } break; default: event.ResumePropagation(10); event.Skip(true); } } protected: wxEvtHandler* m_pParent; GNC::ToolZoom* m_pTool; }; } GNC::ToolZoom::ToolZoom() { m_pBuilder = NULL; m_pHandler = NULL; } GNC::ToolZoom::~ToolZoom() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } if (m_pHandler != NULL) { delete m_pHandler; } } GNC::GCS::ITool* GNC::ToolZoom::NewTool() { return new GNC::ToolZoom(); } void GNC::ToolZoom::Connect() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } m_pBuilder = new TBuilder(WidgetsContract->GetManager(), GetTriggerButton(), (unsigned long)this); WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(m_pBuilder->GetCursor()); } void GNC::ToolZoom::Disconnect() { WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); // DesSubscribimos los eventos de la ventana a un metodo especifico del panel de esta herramienta if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } bool GNC::ToolZoom::HasDropDownMenu() { return true; } void GNC::ToolZoom::AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu) { pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ZOOM_1_1,_("Reset size to display resolution"), GinkgoResourcesManager::MagnifierBar::GetIcoZoomIn(), new GNC::GUI::EventHandlerZoomTool(pParent, this))); } void GNC::ToolZoom::ZoomOneOne() { GNC::GCS::IWidgetsContract::TViewerList listOfViewers; WidgetsContract->GetAllViewers(listOfViewers); for (GNC::GCS::IWidgetsContract::TViewerList::iterator it = listOfViewers.begin(); it != listOfViewers.end(); ++it) { GNC::GCS::IWidgetsContract::TViewerList::reference element = (*it); if (element) { element->ResetZoom(false, (int)GNC::GCS::Events::EventoModificacionImagen::ZM_CenteredOriginalSize); } } GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::EventoRender(WidgetsContract->GetManager()->GetVista())); } void GNC::ToolZoom::ConnectKeyEvents(wxWindow* pWindow) { if (pWindow) { if (m_pHandler != NULL) { LOG_WARN("ToolZoom", "Registering key events twice"); delete m_pHandler; } m_pHandler = new wxToolZoomKeyHandler(pWindow, this); } } #endif ginkgocadx-3.8.7/cadxcore/main/tools/toolzoom.h000066400000000000000000000033461314736454600216010ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_ZOOMTOOL) #ifndef ZOOMTOOL_H #define ZOOMTOOL_H #include #include #include namespace GNC { class wxToolZoomKeyHandler; class EXTAPI ToolZoom : public GNC::GCS::IToolZoom { public: typedef GNC::GCS::Events::EventoRaton TEventoRaton; typedef GNC::GCS::Events::EventoTeclado TEventoTeclado; typedef GNC::GCS::Widgets::WZoomBuilder TBuilder; ToolZoom(); ~ToolZoom(); virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); virtual bool HasDropDownMenu(); virtual void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); virtual void ZoomOneOne(); virtual void ConnectKeyEvents(wxWindow* pWindow); protected: friend class wxToolZoomKeyHandler; TBuilder* m_pBuilder; wxToolZoomKeyHandler* m_pHandler; }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/trackballtool.cpp000066400000000000000000000045041314736454600231040ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "trackballtool.h" #include #include #include #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #include #include GNC::TrackballTool::TrackballTool() { m_pBuilder = NULL; } GNC::TrackballTool::~TrackballTool() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } GNC::GCS::ITool* GNC::TrackballTool::NewTool() { return new GNC::TrackballTool(); } void GNC::TrackballTool::Connect() { if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } m_pBuilder = new TBuilder(WidgetsContract->GetManager(), GetTriggerButton(), (unsigned long)this); WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(m_pBuilder->GetCursor()); } void GNC::TrackballTool::Disconnect() { WidgetsContract->GetViewerActivo()->SetInteractionStyle(vtkGinkgoImageViewer::ZOOM_INTERACTION); WidgetsContract->GetManager()->SetCursor(GNC::GCS::Widgets::CUR_FLECHA); // DesSubscribimos los eventos de la ventana a un metodo especifico del panel de esta herramienta if (m_pBuilder != NULL) { delete m_pBuilder; m_pBuilder = NULL; } } ginkgocadx-3.8.7/cadxcore/main/tools/trackballtool.h000066400000000000000000000031701314736454600225470ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifndef TRACKBALLTOOL_H #define TRACKBALLTOOL_H #include #include namespace GNC { namespace GCS { namespace Widgets { class WTrackballBuilder; } namespace Events { class EventoRaton; class EventoTeclado; } } class EXTAPI TrackballTool : public GNC::GCS::ITrackballTool { public: typedef GNC::GCS::Events::EventoRaton TEventoRaton; typedef GNC::GCS::Events::EventoTeclado TEventoTeclado; typedef GNC::GCS::Widgets::WTrackballBuilder TBuilder; TrackballTool(); ~TrackballTool(); //region "Realización de la interfaz IHerramienta" virtual GNC::GCS::ITool* NewTool(); virtual void Connect(); virtual void Disconnect(); //endregion //region "Eventos refinados desde los paneles" //endregion protected: TBuilder* m_pBuilder; }; } #endif ginkgocadx-3.8.7/cadxcore/main/tools/undotool.cpp000066400000000000000000000114501314736454600221100ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include "undotool.h" #if defined(ENABLE_UNDOTOOL) #include #include #include #include
    #include #include
    #include #include
    //---------------------------------------------------------------------- #define ID_DESHACER 1721 #define ID_REHACER 1722 namespace GNC { namespace GUI { class EventHandlerUndo: public wxEvtHandler { public: EventHandlerUndo(wxEvtHandler* pParent, GNC::UndoTool* pHerramienta):wxEvtHandler() { m_pParent = pParent; m_pHerramienta=pHerramienta; m_pParent->Connect(ID_DESHACER, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerUndo::OnDeshacer),NULL,this); m_pParent->Connect(ID_DESHACER, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EventHandlerUndo::OnUpdateDeshacerUI),NULL,this); m_pParent->Connect(ID_REHACER, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerUndo::OnRehacer),NULL,this); m_pParent->Connect(ID_REHACER, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EventHandlerUndo::OnUpdateRehacerUI),NULL,this); } ~EventHandlerUndo() { m_pParent->Disconnect(ID_DESHACER, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerUndo::OnDeshacer),NULL,this); m_pParent->Disconnect(ID_DESHACER, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EventHandlerUndo::OnUpdateDeshacerUI),NULL,this); m_pParent->Disconnect(ID_REHACER, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerUndo::OnRehacer),NULL,this); m_pParent->Disconnect(ID_REHACER, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(EventHandlerUndo::OnUpdateRehacerUI),NULL,this); m_pParent = NULL; m_pHerramienta = NULL; } void OnDeshacer(wxCommandEvent& event) { m_pHerramienta->Deshacer(); event.Skip(false); } void OnUpdateDeshacerUI(wxUpdateUIEvent& event) { std::string titulo; event.Enable(m_pHerramienta->PuedeDeshacer(titulo)); event.Skip(false); } void OnRehacer(wxCommandEvent& event) { m_pHerramienta->Rehacer(); event.Skip(false); } void OnUpdateRehacerUI(wxUpdateUIEvent& event) { std::string titulo; event.Enable(m_pHerramienta->PuedeRehacer(titulo)); event.Skip(false); } GNC::UndoTool* m_pHerramienta; wxEvtHandler* m_pParent; }; } } GNC::GCS::ITool* GNC::UndoTool::NewTool() { return new GNC::UndoTool(); } GNC::UndoTool::UndoTool() { } GNC::UndoTool::~UndoTool() { } bool GNC::UndoTool::ExecuteAction() { return false; } void GNC::UndoTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { wxBitmap icon; pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu,ID_DESHACER,_("Undo")+wxString(wxT(" \tCtrl+z")), icon, new GNC::GUI::EventHandlerUndo(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu,ID_REHACER,_("Redo")+wxString(wxT(" \tCtrl+y")), icon, new GNC::GUI::EventHandlerUndo(pParent, this))); } } void GNC::UndoTool::Deshacer() { return GNC::GCS::ControladorAcciones::Instance()->Deshacer(ViewContract->GetView()); } void GNC::UndoTool::Rehacer() { return GNC::GCS::ControladorAcciones::Instance()->Hacer(ViewContract->GetView()); } bool GNC::UndoTool::PuedeDeshacer(std::string& nombreAccion) { return GNC::GCS::ControladorAcciones::Instance()->PuedeDeshacer(ViewContract->GetView(),nombreAccion); } bool GNC::UndoTool::PuedeRehacer(std::string& nombreAccion) { return GNC::GCS::ControladorAcciones::Instance()->PuedeHacer(ViewContract->GetView(),nombreAccion); } #endif ginkgocadx-3.8.7/cadxcore/main/tools/undotool.h000066400000000000000000000027041314736454600215570ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "enabled_tools.h" #if defined(ENABLE_UNDOTOOL) #ifndef UNDOTOOL_H #define UNDOTOOL_H #include #include #include namespace GNC { class EXTAPI UndoTool : public GNC::GCS::IUndoTool { protected: public: virtual GNC::GCS::ITool* NewTool(); UndoTool(); ~UndoTool(); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); //deshacer virtual void Deshacer(); //rehacer virtual void Rehacer(); virtual bool PuedeDeshacer(std::string& nombreAccion); virtual bool PuedeRehacer(std::string& nombreAccion); protected: }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/tools/videotool.cpp000066400000000000000000000164361314736454600222620ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "videotool.h" #include #include #include #include #include #include
    #include #include #include #ifdef __DEPRECATED #undef __DEPRECATED #endif #include #define BUCLE_BUTTON 1211 #define SPEED_BUTTON 1212 namespace GNC { namespace GUI { class VideoToolTimer : public wxTimer { public: VideoToolTimer(GNC::VideoTool* pTool): VideoTool(pTool) { } ~VideoToolTimer() { VideoTool = NULL; } void StartTimer() { if (IsRunning()) { Stop(); } Start(VideoTool->GetPeriod(), true); } virtual void Notify() { if (VideoTool->GoToNextSlide()) { Start(VideoTool->GetPeriod(), true); } } protected: GNC::VideoTool* VideoTool; }; class EventHandlerVideoTool: public wxEvtHandler { public: EventHandlerVideoTool(wxEvtHandler* pParent, GNC::VideoTool* pHerramienta):wxEvtHandler() { m_pParent = pParent; m_pHerramienta=pHerramienta; // Connect Events m_pParent->Connect(BUCLE_BUTTON, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerVideoTool::OnEnableBucle),NULL,this); } ~EventHandlerVideoTool() { m_pParent->Disconnect(BUCLE_BUTTON, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerVideoTool::OnEnableBucle),NULL,this); } virtual void OnEnableBucle(wxCommandEvent& event) { m_pHerramienta->SetBucle(!m_pHerramienta->IsBucleEnabled()); event.Skip(false); } GNC::VideoTool* m_pHerramienta; wxEvtHandler* m_pParent; }; class EventHandlerSetFPS: public wxEvtHandler { public: EventHandlerSetFPS(wxEvtHandler* pParent, GNC::VideoTool* pHerramienta, int fps, int id):wxEvtHandler() { m_pParent = pParent; m_pHerramienta=pHerramienta; m_fps = fps; m_id = id; // Connect Events m_pParent->Connect(m_id, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerSetFPS::OnSetFPS),NULL,this); } ~EventHandlerSetFPS() { m_pParent->Disconnect(m_id, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( EventHandlerSetFPS::OnSetFPS),NULL,this); } virtual void OnSetFPS(wxCommandEvent& event) { m_pHerramienta->SetPeriod(m_fps); event.Skip(false); } GNC::VideoTool* m_pHerramienta; wxEvtHandler* m_pParent; int m_fps; int m_id; }; } } GNC::VideoTool::VideoTool() : BlucleEnabled(true), Period(50) { pTimer = new GNC::GUI::VideoToolTimer(this); } GNC::VideoTool::~VideoTool() { delete pTimer; pTimer = NULL; } GNC::GCS::ITool* GNC::VideoTool::NewTool() { return new GNC::VideoTool(); } bool GNC::VideoTool::HasDropDownMenu() { return true; } void GNC::VideoTool::AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu) { { wxBitmap iconBucle; wxString message; if (BlucleEnabled) { iconBucle = GinkgoResourcesManager::CineBar::GetIcoNoBucle(); message = _("Disable loop"); } else { iconBucle = GinkgoResourcesManager::CineBar::GetIcoBucle(); message = _("Enable loop"); } pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, BUCLE_BUTTON,message, iconBucle, new GNC::GUI::EventHandlerVideoTool(pParent, this))); } pMenu->AppendSeparator(); wxBitmap icon; int periodos[8] = {50,125,250,500,1000,2000,5000,10000}; for (int id = SPEED_BUTTON; id < SPEED_BUTTON + 8; id++) { int period = periodos[id-SPEED_BUTTON]; GNC::GUI::wxMenuItemTool* pItem =new GNC::GUI::wxMenuItemTool(pMenu, id,wxString::Format(_("%.1f fps"), (1000.0/period) ), icon, new GNC::GUI::EventHandlerSetFPS(pParent, this, period, id),wxITEM_CHECK); pMenu->Append(pItem); pItem->Check(Period ==period); } } bool GNC::VideoTool::ExecuteAction() { wxBitmap icon; if (pTimer->IsRunning()) { pTimer->Stop(); icon = GinkgoResourcesManager::CineBar::GetIcoPlay(); } else { if (SliderContract->GetSlice() == (SliderContract->GetNumberOfSlices()-1)) { GoToNextSlide(true); } pTimer->StartTimer(); icon = GinkgoResourcesManager::CineBar::GetIcoPause(); } GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ChangeToolIconEvent(&icon, this, m_pParent)); return true; } bool GNC::VideoTool::GoToNextSlide(bool force) { bool continuePlaying = false; int maxSlice = SliderContract->GetNumberOfSlices(); if (maxSlice > 1) { int current = SliderContract->GetSlice(); if ((current + 1) < maxSlice) { SliderContract->SetSlice(current+1); continuePlaying = true; } else { if (BlucleEnabled || force) { SliderContract->SetSlice(0); continuePlaying = true; } } } if (!continuePlaying) { wxBitmap icon = GinkgoResourcesManager::CineBar::GetIcoPlay(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ChangeToolIconEvent(&icon, this, m_pParent)); } return continuePlaying; } bool GNC::VideoTool::IsBucleEnabled() { return BlucleEnabled; } void GNC::VideoTool::SetBucle(bool bucle) { BlucleEnabled = bucle; } int GNC::VideoTool::GetPeriod() { return Period; } void GNC::VideoTool::SetPeriod(int period) { if (period != this->Period) { this->Period = period; if (pTimer->IsRunning()) { pTimer->Stop(); pTimer->StartTimer(); } } } //endregion ginkgocadx-3.8.7/cadxcore/main/tools/videotool.h000066400000000000000000000030141314736454600217130ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifndef VIDEOTOOL_H #define VIDEOTOOL_H #include #include namespace GNC { namespace GUI { class VideoToolTimer; } class EXTAPI VideoTool : public GNC::GCS::IVideoTool { public: VideoTool(); ~VideoTool(); virtual GNC::GCS::ITool* NewTool(); virtual bool HasDropDownMenu(); void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); virtual bool ExecuteAction(); virtual bool GoToNextSlide(bool force = false); virtual bool IsBucleEnabled(); virtual void SetBucle(bool bucle); virtual int GetPeriod(); virtual void SetPeriod(int period); protected: GNC::GUI::VideoToolTimer* pTimer; bool BlucleEnabled; int Period; }; } #endif ginkgocadx-3.8.7/cadxcore/main/tools/windowlayouttool.cpp000066400000000000000000000406201314736454600237110ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include "windowlayouttool.h" #if defined(ENABLE_WINDOWLAYOUTTOOL) #include #include #include #include
    #include #define ADD_FILA 1601 #define ADD_COL 1602 #define DEL_FILA 1603 #define DEL_COL 1604 #define LAY_1_1 1605 #define LAY_1_2 1606 #define LAY_2_1 1607 #define LAY_2_2 1608 #define LAY_3_3 1609 #define LAY_4_4 1610 #define SPLIT_H 1611 #define SPLIT_V 1612 //layouts por defecto... namespace GNC { namespace GUI { class wxEventHandlerWindowLayout: public wxEvtHandler { public: wxEventHandlerWindowLayout(wxEvtHandler* pParent, GNC::WindowLayoutTool* pHerramienta): wxEvtHandler() { m_pParent = pParent; m_pHerramienta=pHerramienta; m_pParent->Connect(ADD_COL,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnAddColumn),NULL,this); m_pParent->Connect(ADD_FILA,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnAddRow),NULL,this); m_pParent->Connect(DEL_COL,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnDelColumn),NULL,this); m_pParent->Connect(DEL_FILA,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnDelRow),NULL,this); m_pParent->Connect(LAY_1_1,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay1x1),NULL,this); m_pParent->Connect(LAY_1_2,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay1x2),NULL,this); m_pParent->Connect(LAY_2_1,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay2x1),NULL,this); m_pParent->Connect(LAY_2_2,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay2x2),NULL,this); m_pParent->Connect(LAY_3_3,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay3x3),NULL,this); m_pParent->Connect(LAY_4_4,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay4x4),NULL,this); m_pParent->Connect(SPLIT_V,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnSplitV),NULL,this); m_pParent->Connect(SPLIT_H,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnSplitH),NULL,this); m_pParent->Connect(ADD_COL, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnAddColumnUpdate),NULL,this); m_pParent->Connect(ADD_FILA, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnAddRowUpdate),NULL,this); m_pParent->Connect(DEL_COL, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnDelColumnUpdate),NULL,this); m_pParent->Connect(DEL_FILA, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnDelRowUpdate),NULL,this); m_pParent->Connect(LAY_1_1, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay1x1Update),NULL,this); m_pParent->Connect(LAY_1_2, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay1x2Update),NULL,this); m_pParent->Connect(LAY_2_1, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay2x1Update),NULL,this); m_pParent->Connect(LAY_2_2, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay2x2Update),NULL,this); m_pParent->Connect(LAY_3_3, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay3x3Update),NULL,this); m_pParent->Connect(LAY_4_4, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay4x4Update),NULL,this); m_pParent->Connect(SPLIT_V, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnSplitUpdate),NULL,this); m_pParent->Connect(SPLIT_H, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnSplitUpdate),NULL,this); m_pParent->Connect(m_pHerramienta->ID, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnUpdateMenuLayout),NULL,this); } ~wxEventHandlerWindowLayout() { m_pParent->Disconnect(ADD_COL,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnAddColumn),NULL,this); m_pParent->Disconnect(ADD_FILA,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnAddRow),NULL,this); m_pParent->Disconnect(DEL_COL,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnDelColumn),NULL,this); m_pParent->Disconnect(DEL_FILA,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnDelRow),NULL,this); m_pParent->Disconnect(LAY_1_1,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay1x1),NULL,this); m_pParent->Disconnect(LAY_1_2,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay1x2),NULL,this); m_pParent->Disconnect(LAY_2_1,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay2x1),NULL,this); m_pParent->Disconnect(LAY_2_2,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay2x2),NULL,this); m_pParent->Disconnect(LAY_3_3,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay3x3),NULL,this); m_pParent->Disconnect(LAY_4_4,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnLay4x4),NULL,this); m_pParent->Disconnect(SPLIT_V,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnSplitV),NULL,this); m_pParent->Disconnect(SPLIT_H,wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( wxEventHandlerWindowLayout::OnSplitH),NULL,this); m_pParent->Disconnect(ADD_COL, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnAddColumnUpdate),NULL,this); m_pParent->Disconnect(ADD_FILA, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnAddRowUpdate),NULL,this); m_pParent->Disconnect(DEL_COL, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnDelColumnUpdate),NULL,this); m_pParent->Disconnect(DEL_FILA, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnDelRowUpdate),NULL,this); m_pParent->Disconnect(LAY_1_1, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay1x1Update),NULL,this); m_pParent->Disconnect(LAY_1_2, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay1x2Update),NULL,this); m_pParent->Disconnect(LAY_2_1, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay2x1Update),NULL,this); m_pParent->Disconnect(LAY_2_2, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay2x2Update),NULL,this); m_pParent->Disconnect(LAY_3_3, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay3x3Update),NULL,this); m_pParent->Disconnect(LAY_4_4, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnLay4x4Update),NULL,this); m_pParent->Disconnect(SPLIT_V, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnSplitUpdate),NULL,this); m_pParent->Disconnect(SPLIT_H, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnSplitUpdate),NULL,this); m_pParent->Disconnect(m_pHerramienta->ID, wxEVT_UPDATE_UI, wxUpdateUIEventHandler(wxEventHandlerWindowLayout::OnUpdateMenuLayout),NULL,this); } void OnAddRow(wxCommandEvent& ) { m_pHerramienta->AddRow(); } void OnAddColumn(wxCommandEvent& ) { m_pHerramienta->AddColumn(); } void OnDelRow(wxCommandEvent& ) { m_pHerramienta->DelRow(); } void OnDelColumn(wxCommandEvent& ) { m_pHerramienta->DelColumn(); } void OnLay1x1(wxCommandEvent& ) { m_pHerramienta->SetWindowLayout(1,1); } void OnLay1x2(wxCommandEvent& ) { m_pHerramienta->SetWindowLayout(1,2); } void OnLay2x1(wxCommandEvent& ) { m_pHerramienta->SetWindowLayout(2,1); } void OnLay2x2(wxCommandEvent& ) { m_pHerramienta->SetWindowLayout(2,2); } void OnLay3x3(wxCommandEvent& ) { m_pHerramienta->SetWindowLayout(3,3); } void OnLay4x4(wxCommandEvent& ) { m_pHerramienta->SetWindowLayout(4,4); } void OnSplitV(wxCommandEvent &) { m_pHerramienta->SplitActive(true); } void OnSplitH(wxCommandEvent &) { m_pHerramienta->SplitActive(false); } void OnAddColumnUpdate(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->AddAllowed()); } void OnAddRowUpdate(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->AddAllowed()); } void OnDelColumnUpdate(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->DeleteColumnAllowed()); } void OnDelRowUpdate(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->DeleteRowAllowed()); } void OnLay1x1Update(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->Supports(1,1)); } void OnLay1x2Update(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->Supports(1,2)); } void OnLay2x1Update(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->Supports(2,1)); } void OnLay2x2Update(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->Supports(2,2)); } void OnLay3x3Update(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->Supports(3,3)); } void OnLay4x4Update(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->Supports(4,4)); } void OnUpdateMenuLayout(wxUpdateUIEvent& /*event*/) { } void OnSplitUpdate(wxUpdateUIEvent& event) { event.Enable(m_pHerramienta->SupportsSplit()); } GNC::WindowLayoutTool* m_pHerramienta; wxEvtHandler* m_pParent; }; } } GNC::GCS::ITool* GNC::WindowLayoutTool::NewTool() { return new GNC::WindowLayoutTool(); } GNC::WindowLayoutTool::WindowLayoutTool() { } GNC::WindowLayoutTool::~WindowLayoutTool() { } bool GNC::WindowLayoutTool::HasDropDownMenu() { return true; } void GNC::WindowLayoutTool::AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu) { pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ADD_COL,_("Add column"), GinkgoResourcesManager::LayoutBar::GetIcoAddColumn(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, ADD_FILA,_("Add row"), GinkgoResourcesManager::LayoutBar::GetIcoAddRow(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); pMenu->AppendSeparator(); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, DEL_COL,_("Remove column"), GinkgoResourcesManager::LayoutBar::GetIcoDelColumn(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, DEL_FILA,_("Remove row"), GinkgoResourcesManager::LayoutBar::GetIcoDelRow(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); pMenu->AppendSeparator(); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, SPLIT_H,_("Split active horizontally"), GinkgoResourcesManager::LayoutBar::GetIcoLayout2x1(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, SPLIT_V,_("Split active vertically"), GinkgoResourcesManager::LayoutBar::GetIcoLayout1x2(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); pMenu->AppendSeparator(); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, LAY_1_1,_("1x1 Layout"), GinkgoResourcesManager::LayoutBar::GetIcoLayout1x1(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, LAY_1_2,_("1x2 Layout"), GinkgoResourcesManager::LayoutBar::GetIcoLayout1x2(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, LAY_2_1,_("2x1 Layout"), GinkgoResourcesManager::LayoutBar::GetIcoLayout2x1(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, LAY_2_2,_("2x2 Layout"), GinkgoResourcesManager::LayoutBar::GetIcoLayout2x2(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, LAY_3_3,_("3x3 Layout"), GinkgoResourcesManager::LayoutBar::GetIcoLayout3x3(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); pMenu->Append(new GNC::GUI::wxMenuItemTool(pMenu, LAY_4_4,_("4x4 Layout"), GinkgoResourcesManager::LayoutBar::GetIcoLayout4x4(), new GNC::GUI::wxEventHandlerWindowLayout(pParent, this))); } bool GNC::WindowLayoutTool::ExecuteAction() { return false; } void GNC::WindowLayoutTool::AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu) { if (AppendsInMenu()) { wxMenu* pLayoutMenu = new wxMenu(); AppendDropDownMenu(pParent, pLayoutMenu); pMenu->Append(ID,wxString::FromUTF8(Name.c_str()),pLayoutMenu); } } void GNC::WindowLayoutTool::SetWindowLayout(int filas, int columnas) { WindowLayoutContract->SetWindowLayout(filas,columnas); } void GNC::WindowLayoutTool::AddRow() { WindowLayoutContract->AddRow(); } void GNC::WindowLayoutTool::AddColumn() { WindowLayoutContract->AddColumn(); } void GNC::WindowLayoutTool::DelRow() { WindowLayoutContract->DelRow(); } void GNC::WindowLayoutTool::DelColumn() { WindowLayoutContract->DelColumn(); } bool GNC::WindowLayoutTool::AddAllowed() { if( WindowLayoutContract->GetRows() * WindowLayoutContract->GetColumns() >= (WindowLayoutContract->m_MaxSlice-WindowLayoutContract->m_MinSlice +1)) { return false; } return true; } bool GNC::WindowLayoutTool::Supports(int filas, int columnas) { int zocalos = filas * columnas; int slices = WindowLayoutContract->m_MaxSlice - WindowLayoutContract->m_MinSlice +1; if(zocalos-slices >= std::min(filas,columnas)) { return false; } return true; } bool GNC::WindowLayoutTool::DeleteRowAllowed() { if( WindowLayoutContract->GetRows() <=1) { return false; } return true; } bool GNC::WindowLayoutTool::DeleteColumnAllowed() { if( WindowLayoutContract->GetColumns() <=1) { return false; } return true; } bool GNC::WindowLayoutTool::SupportsSplit() { return WindowLayoutContract->SupportsSplit(); } void GNC::WindowLayoutTool::SplitActive(bool vertically) { return WindowLayoutContract->SplitActive(vertically); } #endif ginkgocadx-3.8.7/cadxcore/main/tools/windowlayouttool.h000066400000000000000000000035031314736454600233550ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include "enabled_tools.h" #if defined(ENABLE_WINDOWLAYOUTTOOL) #ifndef WINDOWLAYOUTTOOL_H #define WINDOWLAYOUTTOOL_H #include #include namespace GNC { class EXTAPI WindowLayoutTool : public GNC::GCS::IWindowLayoutTool { public: virtual GNC::GCS::ITool* NewTool(); WindowLayoutTool(); ~WindowLayoutTool(); virtual bool HasDropDownMenu(); void AppendDropDownMenu(wxEvtHandler* pParent, wxMenu* pMenu); virtual bool ExecuteAction(); virtual void AppendToolIn(wxEvtHandler* pParent, wxMenu* pMenu); virtual void SetWindowLayout(int filas, int columnas); virtual void AddRow(); virtual void AddColumn(); virtual void DelRow(); virtual void DelColumn(); virtual bool AddAllowed(); virtual bool Supports(int filas, int columnas); virtual bool DeleteRowAllowed(); virtual bool DeleteColumnAllowed(); virtual bool SupportsSplit(); virtual void SplitActive(bool vertically); protected: }; } #endif #endif ginkgocadx-3.8.7/cadxcore/main/toolsystem/000077500000000000000000000000001314736454600206225ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/toolsystem/toolcontroller.cpp000066400000000000000000000566051314736454600244230ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include "toolcontroller.h" #include
    #include #include #include #include #include #include #include #include #include #include #include #include #define LEFT_BUTTON_CONF_KEY "lbt" #define MIDDLE_BUTTON_CONF_KEY "mbt" #define RIGHT_BUTTON_CONF_KEY "rbt" namespace GNC { namespace GUI { const wxEventType wxEVT_ACTIVATE_TOOL_ASYNC = wxNewEventType(); class wxActivateToolAsync : public wxEvent { public: wxActivateToolAsync(GNC::ToolController* pToolController = NULL, long idTool = -1, const GNC::GCS::TriggerButton& buttonMask = GNC::GCS::TriggerButton(), wxWindow* pWindow = NULL): ToolController(pToolController), IdTool(idTool), ButtonMask(buttonMask), Window(pWindow) { SetEventType(wxEVT_ACTIVATE_TOOL_ASYNC); } wxActivateToolAsync(const wxActivateToolAsync& event):wxEvent(event),ToolController(event.ToolController), IdTool(event.IdTool), ButtonMask(event.ButtonMask), Window(event.Window) { } GNC::ToolController* GetToolController() { return ToolController; } long GetIdTool() { return IdTool; } wxWindow* GetWindow() { return Window; } GNC::GCS::TriggerButton GetButtonMask() { return ButtonMask; } virtual wxEvent *Clone() const { return new wxActivateToolAsync(*this); } protected: GNC::ToolController* ToolController; long IdTool; GNC::GCS::TriggerButton ButtonMask; wxWindow* Window; private: DECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxActivateToolAsync) }; typedef void (wxEvtHandler::*wxActivateToolAsyncFunction)(wxActivateToolAsync&); #define wxActivateToolAsyncHandler(func) \ (wxObjectEventFunction)(wxEventFunction)wxStaticCastEvent(wxActivateToolAsyncFunction, &func) #define EVT_MENSAJES_USUARIO(func) \ wx__DECLARE_EVT0(wxEVT_CLOSE_SERIESVIEWER_ASYNC, wxActivateToolAsyncHandler(func)) IMPLEMENT_DYNAMIC_CLASS(GNC::GUI::wxActivateToolAsync, wxEvent) class wxEventHandlerToolController: public wxEvtHandler { public: wxEventHandlerToolController(GNC::ToolController* pToolController): ToolController(pToolController), IdEventHandler(wxNewId()) { GNC::GCS::IEntorno::Instance()->GetVentanaRaiz()->Connect(IdEventHandler, wxEVT_ACTIVATE_TOOL_ASYNC, wxActivateToolAsyncHandler(wxEventHandlerToolController::OnActivateTool), NULL, this); } ~wxEventHandlerToolController() { if (GNC::GCS::IEntorno::Instance()->GetVentanaRaiz() != NULL) { GNC::GCS::IEntorno::Instance()->GetVentanaRaiz()->Disconnect(IdEventHandler, wxEVT_ACTIVATE_TOOL_ASYNC, wxActivateToolAsyncHandler(wxEventHandlerToolController::OnActivateTool), NULL, this); } } void OnActivateTool(wxActivateToolAsync& event ) { if (ToolController == event.GetToolController()) { ToolController->DoActivateTool(event.GetIdTool(), event.GetButtonMask(), event.GetWindow()); } } long GetId() { return IdEventHandler; } protected: GNC::ToolController* ToolController; long IdEventHandler; }; } } GNC::ToolController::ToolController(): EventHandler(new GNC::GUI::wxEventHandlerToolController(this)), m_leftTool(NULL), m_rightTool(NULL), m_middleTool(NULL) { } GNC::ToolController::~ToolController() { for (TToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { GNC::GCS::ITool*& pTool = (*it).second; delete pTool; } m_tools.clear(); } void GNC::ToolController::InitializeToolController() { // By default, try to select: // * The first visualization tool available => to left button, // * The next visualiation tool available after left button assignation => to right button // * The next visualiation tool available after rifht button assignation => to middle button for (TToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { GNC::GCS::ITool* pWidgetTool = dynamic_cast ((*it).second); if (pWidgetTool != NULL && pWidgetTool->FamilyId == GNC::GCS::ITool::TFamiliaVisualizacion && pWidgetTool->IsReady()) { if (m_leftTool == NULL) { GNC::GCS::TriggerButton buttonMask; buttonMask.EnableLeft(); DoActivateTool(pWidgetTool->ID, buttonMask, NULL); } else if (m_rightTool == NULL) { GNC::GCS::TriggerButton buttonMask; buttonMask.EnableRight(); DoActivateTool(pWidgetTool->ID, buttonMask, NULL); } else if (m_middleTool == NULL) { GNC::GCS::TriggerButton buttonMask; buttonMask.EnableMiddle(); DoActivateTool(pWidgetTool->ID, buttonMask, NULL); } else { break; } } } } void GNC::ToolController::FinalizeToolController() { if (m_leftTool != NULL) { m_leftTool->GetTriggerButton().DisableLeft(); m_leftTool->Disconnect(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ToolConnectedEvent(false, m_leftTool, this)); } if (m_rightTool != NULL) { m_rightTool->GetTriggerButton().DisableRight(); m_rightTool->Disconnect(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ToolConnectedEvent(false, m_rightTool, this)); } if (m_middleTool != NULL) { m_middleTool->GetTriggerButton().DisableMiddle(); m_middleTool->Disconnect(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ToolConnectedEvent(false, m_middleTool, this)); } } void GNC::ToolController::ReconnectToolController() { if (m_leftTool != NULL) { m_leftTool->Disconnect(); } if (m_rightTool != NULL) { m_rightTool->Disconnect(); } if (m_middleTool != NULL) { m_middleTool->Disconnect(); } if(m_leftTool != NULL && m_leftTool->IsEnabled()) { m_leftTool->Connect(); } if (m_rightTool != NULL && m_rightTool->IsEnabled() && m_rightTool != m_leftTool) { m_rightTool->Connect(); } if (m_middleTool != NULL && m_middleTool->IsEnabled() && m_middleTool != m_leftTool && m_middleTool != m_rightTool) { m_middleTool->Connect(); } } void GNC::ToolController::LoadStatus(const std::string& view, const std::string& modality) { if ( view.empty() || modality.empty() ) { return; } int selectedLeftToolId = -1; int selectedMiddleToolId = -1; int selectedRightToolId = -1; std::string scope(GetToolStatusScope(view, modality)); GNC::GCS::IConfigurationController::Instance()->readIntUser(scope, LEFT_BUTTON_CONF_KEY, selectedLeftToolId, -1); GNC::GCS::IConfigurationController::Instance()->readIntUser(scope, MIDDLE_BUTTON_CONF_KEY, selectedMiddleToolId, -1); GNC::GCS::IConfigurationController::Instance()->readIntUser(scope, RIGHT_BUTTON_CONF_KEY, selectedRightToolId, -1); if (selectedLeftToolId != -1) { GNC::GCS::TriggerButton buttonMask; buttonMask.EnableLeft(); DoActivateTool(selectedLeftToolId, buttonMask, NULL); } if (selectedMiddleToolId != -1) { GNC::GCS::TriggerButton buttonMask; buttonMask.EnableMiddle(); DoActivateTool(selectedMiddleToolId, buttonMask, NULL); } if (selectedRightToolId != -1) { GNC::GCS::TriggerButton buttonMask; buttonMask.EnableRight(); DoActivateTool(selectedRightToolId, buttonMask, NULL); } } void GNC::ToolController::SaveStatus(const std::string& view, const std::string& modality) { if ( view.empty() || modality.empty() ) { return; } std::string scope(GetToolStatusScope(view, modality)); if (m_leftTool != NULL) { GNC::GCS::IConfigurationController::Instance()->writeIntUser(scope, LEFT_BUTTON_CONF_KEY, m_leftTool->ID); } if (m_middleTool != NULL) { GNC::GCS::IConfigurationController::Instance()->writeIntUser(scope, MIDDLE_BUTTON_CONF_KEY, m_middleTool->ID); } if (m_rightTool != NULL) { GNC::GCS::IConfigurationController::Instance()->writeIntUser(scope, RIGHT_BUTTON_CONF_KEY, m_rightTool->ID); } } void GNC::ToolController::AddTool(long idTool, GNC::GCS::IContract* pContract) { GNC::GCS::ITool* pTool = GNC::GCS::IToolsRegistry::Instance()->NewTool(idTool); if (pTool != NULL && pTool->IsReady()) { GNC::GCS::IContractable* pContractableTool = dynamic_cast(pTool); if (pContractableTool) { if (pContractableTool->IsValidContract(pContract)) { pContractableTool->Register(pContract); } else { LOG_WARN("ToolControler", "The tool \"" << pTool->Name.c_str() << "\" is not compatible with the specified contract"); return; } } pTool->SetToolBar(this); m_tools[idTool] = pTool; } else if (pTool != NULL) { delete pTool; } } void GNC::ToolController::RemoveTool(long /*idTool*/) { } GNC::GCS::ITool* GNC::ToolController::GetTool(long idTool) { GNC::GCS::ITool* pTool = NULL; if (m_tools.find(idTool) != m_tools.end()) { pTool = m_tools[idTool]; } return pTool; } void GNC::ToolController::Enable(long idTool, bool enabled) { GNC::GCS::ITool* pTool = GetTool(idTool); if (pTool != NULL && pTool->IsEnabled() != enabled) { pTool->Enable(enabled); ReconnectToolController(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ToolEnabledEvent(enabled, pTool, this)); } } wxWindow* GNC::ToolController::CreateNewToolBar(wxWindow* pParent, GNC::GCS::ITool::TToolFamily family, bool alignLeft) { GNC::GUI::GinkgoToolSystemBar* pToolController = new GNC::GUI::GinkgoToolSystemBar(pParent, this, family); if (!alignLeft) { pToolController->AddStretchSpacer(1); } AppendsToolsInToolBar(pToolController, family); pToolController->Realize(); return pToolController; } wxWindow* GNC::ToolController::CreateNewToolBar(wxWindow* pParent, const GNC::GCS::IToolController::TIdList& toolsToInclude, bool alignLeft) { GNC::GUI::GinkgoToolSystemBar* pToolController = new GNC::GUI::GinkgoToolSystemBar(pParent, this, GNC::GCS::ITool::TFamiliaGlobal); if (!alignLeft) { pToolController->AddStretchSpacer(1); } AppendsToolsInToolBar(pToolController, toolsToInclude); pToolController->Realize(); return pToolController; } wxWindow* GNC::ToolController::CreateNewToolBar(wxWindow* pParent, bool alignLeft) { wxPanel* toolBarPanel = new wxPanel(pParent); wxBoxSizer* mainSizer = new wxBoxSizer(wxHORIZONTAL); typedef std::map TFamiliesMap; TFamiliesMap mapOfFamilies; for (TToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { GNC::GCS::ITool*& pTool = (*it).second; if (mapOfFamilies.find(pTool->GetFamily()) == mapOfFamilies.end() && pTool->IsReady()) { mapOfFamilies[pTool->GetFamily()] = new GNC::GUI::GinkgoToolSystemBar(toolBarPanel, this, pTool->GetFamily()); if (!alignLeft) { mapOfFamilies[pTool->GetFamily()]->AddStretchSpacer(1); } } pTool->AppendToolIn(mapOfFamilies[pTool->GetFamily()]); } for (TFamiliesMap::iterator it = mapOfFamilies.begin(); it != mapOfFamilies.end(); ++it) { if ((*it).second->GetToolCount() == 0) { delete (*it).second; } else { (*it).second->Realize(); mainSizer->Add((*it).second,0, wxEXPAND, 0); } } toolBarPanel->SetSizer(mainSizer); toolBarPanel->Layout(); return toolBarPanel; } void GNC::ToolController::AppendsToolInMenu(wxEvtHandler* pParent, wxMenu* pMenu, GNC::GCS::ITool::TToolFamily family) { std::map > mapSubFamilies; for (TToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { GNC::GCS::ITool*& pTool = (*it).second; if (pTool->GetFamily() == family && pTool->IsReady()) { if (mapSubFamilies.find(pTool->GetSubFamily()) == mapSubFamilies.end()) { mapSubFamilies[pTool->GetSubFamily()] = std::list(); } mapSubFamilies[pTool->GetSubFamily()].push_back(pTool); } } for (std::map >::iterator itSubFamilies = mapSubFamilies.begin(); itSubFamilies != mapSubFamilies.end(); ++itSubFamilies) { if (!pMenu->GetMenuItems().empty() && !pMenu->GetMenuItems().back()->IsSeparator()) { pMenu->AppendSeparator(); } for (std::list::iterator itTools = (*itSubFamilies).second.begin(); itTools != (*itSubFamilies).second.end(); ++itTools) { GNC::GCS::ITool*& pTool = (*itTools); pTool->AppendToolIn(pParent, pMenu); } if (!pMenu->GetMenuItems().empty() && pMenu->GetMenuItems().back()->IsSeparator()) { pMenu->Delete(pMenu->GetMenuItems().back()->GetId()); } } if (!pMenu->GetMenuItems().empty() && pMenu->GetMenuItems().back()->IsSeparator()) { pMenu->Delete(pMenu->GetMenuItems().back()->GetId()); } } void GNC::ToolController::AppendsToolsInToolBar(wxGinkgoToolBar* pToolBar, GNC::GCS::ITool::TToolFamily family) { for (TToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { GNC::GCS::ITool*& pTool = (*it).second; if (pTool->GetFamily() == family && pTool->IsReady()) { pTool->AppendToolIn(pToolBar); } } } void GNC::ToolController::AppendsToolsInToolBar(wxGinkgoToolBar* pToolBar, const GNC::GCS::IToolController::TIdList& toolsToInclude) { std::set setOfIds; setOfIds.insert(toolsToInclude.begin(), toolsToInclude.end()); for (TToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { GNC::GCS::ITool*& pTool = (*it).second; if (pTool != NULL && setOfIds.find(pTool->ID) != setOfIds.end() && pTool->IsReady()) { pTool->AppendToolIn(pToolBar); } } } void GNC::ToolController::OnKeyAccelerator(GNC::GCS::Events::EventoTeclado& evento, wxWindow* pWindow) { if (evento.ControlDown() || evento.GetKeyCode() == WXK_ESCAPE) { for (TToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { GNC::GCS::ITool*& pTool = (*it).second; if (pTool->IsEnabled() && pTool->GetKeyCode() == evento.GetKeyCode()) { GNC::GCS::TriggerButton buttonMask; if (evento.ShiftDown() && evento.AltDown() ) { buttonMask.EnableMiddle(); } if (evento.ShiftDown()) { buttonMask.EnableRight(); } else { buttonMask.EnableLeft(); } ActivateTool(pTool->ID, buttonMask, pWindow); evento.Skip(false); return; } } } evento.Skip(true); } void GNC::ToolController::ActivateTool(long idTool, const GNC::GCS::TriggerButton& buttonMask, wxWindow* pWindow) { if (!wxIsMainThread()) { //activation will be processed in next iteration of loop event to avoid that component that request activation has been removed in action execution GNC::GUI::wxActivateToolAsync evt(this, idTool, buttonMask, pWindow); evt.SetId(EventHandler->GetId()); GNC::GCS::IEntorno::Instance()->GetVentanaRaiz()->GetEventHandler()->AddPendingEvent(evt); } else { DoActivateTool(idTool, buttonMask, pWindow); } } void GNC::ToolController::DoActivateTool(long idTool, const GNC::GCS::TriggerButton& buttonMask, wxWindow* pWindow) { if (m_tools.find(idTool) == m_tools.end()) { return; } GNC::GCS::ITool* pTool = m_tools[idTool]; if (!pTool->IsEnabled()) { return; } GNC::GCS::IWidgetTool* pWidgetTool = dynamic_cast (pTool); if (pWidgetTool == NULL) { //regular tools... if (!pTool->ExecuteAction()) { if (pTool->HasDropDownMenu() && pWindow != NULL) { wxMenu DropDownMenu; pTool->AppendDropDownMenu(&DropDownMenu, &DropDownMenu); pWindow->PopupMenu(&DropDownMenu); } } } else { if (m_leftTool != NULL) { m_leftTool->GetTriggerButton().DisableLeft(); m_leftTool->Disconnect(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ToolConnectedEvent(false, m_leftTool, this)); } if (m_rightTool != NULL) { m_rightTool->GetTriggerButton().DisableRight(); m_rightTool->Disconnect(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ToolConnectedEvent(false, m_rightTool, this)); } if (m_middleTool != NULL) { m_middleTool->GetTriggerButton().DisableMiddle(); m_middleTool->Disconnect(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ToolConnectedEvent(false, m_middleTool, this)); } if ( buttonMask.IsLeftEnabled() && !pWidgetTool->GetTriggerButton().IsLeftEnabled()) { m_leftTool = pWidgetTool; } if ( buttonMask.IsRightEnabled() && !pWidgetTool->GetTriggerButton().IsRightEnabled()) { m_rightTool = pWidgetTool; } if ( buttonMask.IsMiddleEnabled() && !pWidgetTool->GetTriggerButton().IsMiddleEnabled()) { m_middleTool = pWidgetTool; } if (m_leftTool != NULL) { m_leftTool->GetTriggerButton().EnableLeft(); } if (m_rightTool != NULL) { m_rightTool->GetTriggerButton().EnableRight(); } if (m_middleTool != NULL) { m_middleTool->GetTriggerButton().EnableMiddle(); } if (m_rightTool != NULL && m_rightTool->IsEnabled() && m_rightTool != m_leftTool) { m_rightTool->Connect(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ToolConnectedEvent(true, m_rightTool, this)); } if (m_middleTool != NULL && m_middleTool->IsEnabled() && m_middleTool != m_leftTool && m_middleTool != m_rightTool) { m_middleTool->Connect(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ToolConnectedEvent(true, m_middleTool, this)); } if(m_leftTool != NULL && m_leftTool->IsEnabled()) { m_leftTool->Connect(); GNC::GCS::IEventsController::Instance()->ProcesarEvento(new GNC::GCS::Events::ToolConnectedEvent(true, m_leftTool, this)); } } } void GNC::ToolController::AppendDropDownMenu(long idTool, wxEvtHandler* pParent, wxMenu* pMenu) { if (m_tools.find(idTool) == m_tools.end()) { return; } GNC::GCS::ITool* pTool = m_tools[idTool]; if (pTool->IsReady()) { pTool->AppendDropDownMenu(pParent,pMenu); } } void GNC::ToolController::ConnectKeyEvents(wxWindow* pParent) { for (TToolMap::iterator it = m_tools.begin(); it != m_tools.end(); ++it) { GNC::GCS::ITool*& pTool = (*it).second; pTool->ConnectKeyEvents(pParent); } } GNC::GCS::IWidgetTool* GNC::ToolController::GetLeftTool() { return m_leftTool; } GNC::GCS::IWidgetTool* GNC::ToolController::GetRightTool() { return m_rightTool; } GNC::GCS::IWidgetTool* GNC::ToolController::GetMiddleTool() { return m_middleTool; } std::string GNC::ToolController::GetToolStatusScope(const std::string& view, const std::string& modality) { std::ostringstream os; os << "/TooBarStatus/" << view << "/" << modality; return os.str(); } ginkgocadx-3.8.7/cadxcore/main/toolsystem/toolcontroller.h000066400000000000000000000067171314736454600240670ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef TOOLCONTROLLER_H #define TOOLCONTROLLER_H #include #include #include // Forward declarations namespace GNC { namespace GCS { class IWidgetTool; } } namespace GNC { namespace GUI { class wxEventHandlerToolController; } class EXTAPI ToolController : public GNC::GCS::IToolController { public: ToolController(); virtual ~ToolController(); virtual void InitializeToolController(); virtual void ReconnectToolController(); virtual void FinalizeToolController(); virtual void LoadStatus(const std::string& view, const std::string& modality = "ALL"); virtual void SaveStatus(const std::string& view, const std::string& modality = "ALL"); virtual void AddTool(long idTool, GNC::GCS::IContract* pContract); virtual void RemoveTool(long idTool); virtual GNC::GCS::ITool* GetTool(long idTool); virtual void Enable(long idTool, bool enabled); virtual wxWindow* CreateNewToolBar(wxWindow* pParent, bool alignLeft = true); virtual wxWindow* CreateNewToolBar(wxWindow* pParent, GNC::GCS::ITool::TToolFamily family, bool alignLeft = true); virtual wxWindow* CreateNewToolBar(wxWindow* pParent, const TIdList& toolsToInclude, bool alignLeft = true); virtual void AppendsToolInMenu(wxEvtHandler* pParent, wxMenu* pMenu, GNC::GCS::ITool::TToolFamily family); virtual void AppendsToolsInToolBar(wxGinkgoToolBar* pToolBar, GNC::GCS::ITool::TToolFamily family); virtual void AppendsToolsInToolBar(wxGinkgoToolBar* pToolBar, const GNC::GCS::IToolController::TIdList& toolsToInclude); virtual void OnKeyAccelerator(GNC::GCS::Events::EventoTeclado& evento, wxWindow* pWindow); virtual void ActivateTool(long idTool, const GNC::GCS::TriggerButton& buttonmask, wxWindow* pParent); virtual void DoActivateTool(long idTool, const GNC::GCS::TriggerButton& buttonmask, wxWindow* pParent); virtual void AppendDropDownMenu(long idTool, wxEvtHandler* pParent, wxMenu* pMenu); //connect key events to child tools virtual void ConnectKeyEvents(wxWindow* pParent); virtual GNC::GCS::IWidgetTool* GetLeftTool(); virtual GNC::GCS::IWidgetTool* GetRightTool(); virtual GNC::GCS::IWidgetTool* GetMiddleTool(); typedef std::map TToolMap; TToolMap m_tools; GNC::GCS::Ptr EventHandler; GNC::GCS::IWidgetTool* m_leftTool; GNC::GCS::IWidgetTool* m_rightTool; GNC::GCS::IWidgetTool* m_middleTool; private: std::string GetToolStatusScope(const std::string& view, const std::string& modality); }; } #endif ginkgocadx-3.8.7/cadxcore/main/toolsystem/toolsregistry.cpp000066400000000000000000000155211314736454600242630ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include #include "toolsregistry.h" #include //------------------------------------------------------------------------------ //region "Singleton pattern" GNC::ToolsRegistry* GNC::ToolsRegistry::m_pInstance = 0; /** Singleton getter **/ GNC::GCS::IToolsRegistry* GNC::ToolsRegistry::Instance() { if (m_pInstance == NULL) { m_pInstance = new GNC::ToolsRegistry(); } return m_pInstance; } /** Singleton free **/ void GNC::ToolsRegistry::FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } GNC::ToolsRegistry::ToolsRegistry() { GNC::GCS::IEntorno::Instance()->RegisterExtensionsObserver(this); } GNC::ToolsRegistry::~ToolsRegistry() { GNC::GCS::IEntorno::Instance()->UnRegisterExtensionsObserver(this); GNC::GCS::ILocker lock(RegistryLock); for(ToolRegistry::iterator it = Registry.begin(); it != Registry.end(); ++it) { GNC::GCS::ITool* pTool = (*it).second; if (pTool->GetOwnerModule() != NULL) { LOG_WARN("Core", _Std("Module tool still registered when disposing ToolsRegistry")); } delete pTool; } Registry.clear(); } //endregion //------------------------------------------------------------------------------ //region "IToolsRegistry realization" /** Registers a tool **/ void GNC::ToolsRegistry::RegisterTool(GNC::GCS::ITool* pTool) { GNC::GCS::ILocker lock(RegistryLock); ToolRegistry::iterator it = Registry.find(pTool->ID); if (it != Registry.end()) { LOG_WARN("Core", _Std("The tool is already registered")); delete pTool; } else { Registry[pTool->ID] = pTool; } } /** UnRegisters a tool given its uid and frees its factory instance **/ void GNC::ToolsRegistry::UnRegisterTool(GNC::GCS::ITool::UID uid) { GNC::GCS::ILocker lock(RegistryLock); ToolRegistry::iterator it = Registry.find(uid); if (it != Registry.end()) { GNC::GCS::ITool* pTool = (*it).second; delete pTool; Registry.erase(it); } } /** Constructs and returns a new abstract instance of a tool given its uid **/ GNC::GCS::ITool* GNC::ToolsRegistry::NewTool(GNC::GCS::ITool::UID uid) { GNC::GCS::ILocker lock(RegistryLock); GNC::GCS::ITool* pTool = NULL; ToolRegistry::iterator it = Registry.find(uid); if (it != Registry.end()) { GNC::GCS::ITool* pSrcTool = (*it).second; pTool = pSrcTool->NewTool(); pTool->SetOwnerModule(pSrcTool->GetOwnerModule()); } return pTool; } GNC::GCS::IToolsRegistry::TToolMap GNC::ToolsRegistry::GetToolsFromFamily(GNC::GCS::ITool::TToolFamily family) { GNC::GCS::ILocker lock(RegistryLock); TToolMap tools; for (ToolRegistry::iterator it = Registry.begin(); it != Registry.end(); ++it) { GNC::GCS::ITool* pSrcTool = (*it).second; if (pSrcTool->FamilyId == family) { if (tools.find(pSrcTool->SubFamilyId) == tools.end()) { tools[pSrcTool->SubFamilyId] = TToolList(); } tools[pSrcTool->SubFamilyId].push_back(pSrcTool); } } return tools; } void GNC::ToolsRegistry::AppendsToolInMenu(wxEvtHandler* pParent, wxMenu* pMenu, GNC::GCS::ITool::TToolFamily family) { std::map > mapSubFamilies; for (ToolRegistry::iterator it = Registry.begin(); it != Registry.end(); ++it) { GNC::GCS::ITool* pTool = (*it).second; if (pTool->AppendsInGlobalMenu() && pTool->GetFamily() == family) { if (mapSubFamilies.find(pTool->GetSubFamily()) == mapSubFamilies.end()) { mapSubFamilies[pTool->GetSubFamily()] = std::list(); } mapSubFamilies[pTool->GetSubFamily()].push_back(pTool); } } for (std::map >::iterator itSubFamilies = mapSubFamilies.begin(); itSubFamilies != mapSubFamilies.end(); ++itSubFamilies) { if (!pMenu->GetMenuItems().empty() && !pMenu->GetMenuItems().back()->IsSeparator()) { pMenu->AppendSeparator(); } for (std::list::iterator itTools = (*itSubFamilies).second.begin(); itTools != (*itSubFamilies).second.end(); ++itTools) { GNC::GCS::ITool*& pTool = (*itTools); pTool->AppendToolIn(pParent, pMenu); } if (!pMenu->GetMenuItems().empty() && pMenu->GetMenuItems().back()->IsSeparator()) { pMenu->Delete(pMenu->GetMenuItems().back()->GetId()); } } if (!pMenu->GetMenuItems().empty() && pMenu->GetMenuItems().back()->IsSeparator()) { pMenu->Delete(pMenu->GetMenuItems().back()->GetId()); } } //endregion //------------------------------------------------------------------------------ //region "IExtensionsObserver realization" /** The module is loaded **/ void GNC::ToolsRegistry::OnModuleLoaded(GNC::GCS::IModuleController* /*pMC*/) { } /** The module is unloaded **/ void GNC::ToolsRegistry::OnModuleUnloaded(GNC::GCS::IModuleController* pMC) { GNC::GCS::ILocker lock(RegistryLock); for (ToolRegistry::iterator it = Registry.begin(); it != Registry.end(); ++it) { GNC::GCS::ITool* pTool = (*it).second; if (pMC == pTool->GetOwnerModule()) { LOG_WARN("Core", _Std("The module ") << pMC->GetUID() << (" was unloaded before its tools were unregistered")); } } } //endregion ginkgocadx-3.8.7/cadxcore/main/toolsystem/toolsregistry.h000066400000000000000000000060601314736454600237260ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef TOOLSREGISTRY_H #define TOOLSREGISTRY_H #include #include #include #include #include namespace GNC { /** Tools Registry container internal implementation **/ class ToolsRegistry : public GNC::GCS::IToolsRegistry, public GNC::GCS::IExtensionsObserver { //------------------------------------------------------------------------------ //region "Singleton pattern" public: /** Singleton getter **/ static GNC::GCS::IToolsRegistry* Instance(); /** Singleton free **/ static void FreeInstance(); protected: /** Singleton protected constructor **/ ToolsRegistry(); /** Singleton protected destructor **/ ~ToolsRegistry(); static GNC::ToolsRegistry* m_pInstance; //endregion //------------------------------------------------------------------------------ //region "IToolsRegistry realization" public: /** Registers a tool **/ virtual void RegisterTool(GNC::GCS::ITool* pTool); /** UnRegisters a tool given its uid and frees its factory instance **/ virtual void UnRegisterTool(GNC::GCS::ITool::UID uid); /** Constructs and returns a new abstract instance of a tool given its uid **/ virtual GNC::GCS::ITool* NewTool(GNC::GCS::ITool::UID uid); void AppendsToolInMenu(wxEvtHandler* pParent, wxMenu* pMenu, GNC::GCS::ITool::TToolFamily family); /** Returns tools of a concrete family **/ virtual TToolMap GetToolsFromFamily(GNC::GCS::ITool::TToolFamily family); //endregion //------------------------------------------------------------------------------ //region "IExtensionsObserver realization" public: /** The module is loaded **/ virtual void OnModuleLoaded(GNC::GCS::IModuleController* pControladorModulo); /** The module is unloaded **/ virtual void OnModuleUnloaded(GNC::GCS::IModuleController* pControladorModulo); //endregion //------------------------------------------------------------------------------ //region "Attributes" protected: typedef std::map< GNC::GCS::ITool::UID, GNC::GCS::ITool* > ToolRegistry; ToolRegistry Registry; GNC::GCS::ILockable RegistryLock; //endregion }; } #endif ginkgocadx-3.8.7/cadxcore/main/utils/000077500000000000000000000000001314736454600175405ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/main/utils/ginkgomatrix4x4.cpp000066400000000000000000000113561314736454600233150ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef __DEPRECATED #define __DEPRECATED #endif #include "ginkgomatrix4x4.h" GNC::GinkgoMatrix4x4::GinkgoMatrix4x4(): rawMatrix(vtkSmartPointer::New()) { rawMatrix->Zero(); } GNC::GinkgoMatrix4x4::GinkgoMatrix4x4(const vtkSmartPointer& raw): rawMatrix(raw) { } GNC::GinkgoMatrix4x4::~GinkgoMatrix4x4() { } void GNC::GinkgoMatrix4x4::Print(std::ostream& os) { rawMatrix->Print(os); } void GNC::GinkgoMatrix4x4::DeepCopy(const GNC::GCS::IGinkgoMatrix4x4* other) { const GinkgoMatrix4x4* pMatrix = dynamic_cast(other); if (pMatrix != NULL) { rawMatrix->DeepCopy(pMatrix->rawMatrix); } } void GNC::GinkgoMatrix4x4::Zero() { rawMatrix->Zero(); } void GNC::GinkgoMatrix4x4::Identity() { rawMatrix->Identity(); } GNC::GCS::Ptr GNC::GinkgoMatrix4x4::Invert() { vtkSmartPointer other = vtkSmartPointer::New(); vtkMatrix4x4::Invert(rawMatrix, other); GNC::GCS::Ptr returnPtr((GNC::GCS::IGinkgoMatrix4x4*)new GinkgoMatrix4x4(other)); return returnPtr; } GNC::GCS::Ptr GNC::GinkgoMatrix4x4::Transpose() { vtkSmartPointer other = vtkSmartPointer::New(); vtkMatrix4x4::Transpose(rawMatrix, other); GNC::GCS::Ptr returnPtr((GNC::GCS::IGinkgoMatrix4x4*)new GinkgoMatrix4x4(other)); return returnPtr; } double* GNC::GinkgoMatrix4x4::MultiplyPoint(const double in[4], double out[4]) { rawMatrix->MultiplyPoint(in, out); return out; } GNC::GCS::Ptr GNC::GinkgoMatrix4x4::Multiply4x4(const GNC::GCS::Ptr& other) { const GinkgoMatrix4x4* pMatrix = dynamic_cast(other.GetRawPointer()); if (pMatrix != NULL) { vtkSmartPointer result = vtkSmartPointer::New(); vtkMatrix4x4::Multiply4x4(rawMatrix, pMatrix->rawMatrix, result); GNC::GCS::Ptr returnPtr((GNC::GCS::IGinkgoMatrix4x4*)new GinkgoMatrix4x4(result)); return returnPtr; } return NULL; } GNC::GCS::Ptr GNC::GinkgoMatrix4x4::Multiply4x4(const vtkMatrix4x4* other) { vtkSmartPointer result = vtkSmartPointer::New(); #if defined(_WINDOWS) vtkMatrix4x4::Multiply4x4(rawMatrix, other, result); #else // Hack: VTK version of linux version requires the second parameter to be const vtkSmartPointer copy = vtkSmartPointer::New(); for (int i = 0; i < 4; ++i) { for (int j = 0; j < 4; ++j) { copy->SetElement(i,j, other->GetElement(i,j)); } } vtkMatrix4x4::Multiply4x4(rawMatrix, copy, result); #endif GNC::GCS::Ptr returnPtr((GNC::GCS::IGinkgoMatrix4x4*)new GinkgoMatrix4x4(result)); return returnPtr; } GNC::GCS::Ptr GNC::GinkgoMatrix4x4::Adjoint() { vtkSmartPointer other = vtkSmartPointer::New(); rawMatrix->Adjoint(rawMatrix, other); GNC::GCS::Ptr returnPtr((GNC::GCS::IGinkgoMatrix4x4*)new GinkgoMatrix4x4(other)); return returnPtr; } double GNC::GinkgoMatrix4x4::Determinant() { return rawMatrix->Determinant(); } void GNC::GinkgoMatrix4x4::SetElement(int i, int j, double value) { rawMatrix->SetElement(i,j,value); } double GNC::GinkgoMatrix4x4::GetElement(int i, int j) const { return rawMatrix->GetElement(i,j); } void GNC::GinkgoMatrix4x4::ToDoubleArrayByColumns(double matrix[16]) { for (int i = 0,k=0; i < 4; ++i) { for (int j = 0; j<4; ++j,++k) { matrix[k] = rawMatrix->GetElement(j,i); } } } ginkgocadx-3.8.7/cadxcore/main/utils/ginkgomatrix4x4.h000066400000000000000000000047311314736454600227610ustar00rootroot00000000000000#pragma once /* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #ifndef GINKGOMATRIX4X4 #define GINKGOMATRIX4X4 #ifndef __DEPRECATED #define __DEPRECATED #endif #include #include #include namespace GNC { class GinkgoMatrix4x4: public GNC::GCS::IGinkgoMatrix4x4 { public: GinkgoMatrix4x4(); GinkgoMatrix4x4(const vtkSmartPointer& raw); virtual ~GinkgoMatrix4x4(); virtual void Print(std::ostream& os); virtual void DeepCopy(const GNC::GCS::IGinkgoMatrix4x4* other); virtual void Zero(); virtual void Identity(); virtual GNC::GCS::Ptr Invert(); virtual GNC::GCS::Ptr Transpose(); virtual double* MultiplyPoint(const double in[4], double out[4]); // Multiplies other to the right result = this * other virtual GNC::GCS::Ptr Multiply4x4(const GNC::GCS::Ptr& other); GNC::GCS::Ptr Multiply4x4(const vtkMatrix4x4* other); // Description: // Compute adjoint of the matrix and put it into out. virtual GNC::GCS::Ptr Adjoint(); // Description: // Compute the determinant of the matrix and return it. virtual double Determinant(); // Description: // Sets the element i,j in the matrix. virtual void SetElement(int i, int j, double value); // Description: // Returns the element i,j from the matrix. virtual double GetElement(int i, int j) const; virtual void ToDoubleArrayByColumns(double matrix[16]); protected: vtkSmartPointer rawMatrix; }; } #endif ginkgocadx-3.8.7/cadxcore/prvext/000077500000000000000000000000001314736454600170045ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/prvext/prvext.h000066400000000000000000000103761314736454600205140ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #ifndef PRVEXT_H #define PRVEXT_H #include #include #include #include #include #include #if defined(_WINDOWS) #define _WINSOCKAPI_ // stops windows.h including winsock.h #include #endif #include
    #include class wxWindow; namespace GNC { namespace GCS { class IEntorno; class IModuleController; } } class EXTAPI PrivateExtension { public: typedef std::list TListControllers; PrivateExtension(const std::string& sid, const std::string& provider, const std::string& description, const char* updateurl) { this->sid = sid; this->provider = provider; this->description = description; this->updateurl = updateurl; } PrivateExtension(const std::string& sid, const std::string& provider, const std::string& description, const char* updateurl, const wxBitmap& bitmapIcon) : icon(bitmapIcon) { this->sid = sid; this->provider = provider; this->description = description; this->updateurl = updateurl; } PrivateExtension(const PrivateExtension& o) = default; virtual ~PrivateExtension() { } virtual TListControllers InitializeLibrary(GNC::GCS::IEntorno* pEntorno) = 0; virtual bool IsActive() = 0; const std::string& GetSID() const { return this->sid; } const std::string& GetProvider() const { return this->provider; } const std::string& GetDescription() const { return this->description; } void AsignPath(const std::string& path) { this->path = path; } const std::string& GetPath() const { return this->path; } const std::string& GetUpdateURL() const { return updateurl; } wxBitmap& GetIcon() { return icon; } PrivateExtension& operator=(const PrivateExtension& o) = default; friend std::ostream& operator<<(std::ostream &os, const PrivateExtension& ext) { os << "SID=" << ext.sid.c_str() << std::endl; os << "DESCRIPTION=" << ext.description.c_str() << std::endl; os << "PROVIDER=" << ext.provider.c_str() << std::endl; os << "UPDATEURL=" << ext.updateurl.c_str(); return os; } friend std::ostream& operator<<(std::ostream& os, PrivateExtension* ext) { if (ext != NULL) { return os << (*ext); } else { return os << "NULL"; } } protected: std::string sid; std::string provider; std::string description; std::string path; std::string updateurl; wxBitmap icon; private: int ParseSVNBuild(const char* str) { int num = -1; std::string beg; std::string end; std::stringstream ss(str); ss >> beg >> num >> end; return num; } }; //define a function pointer type for convenience #ifndef __PLUGIN_FUNCTION #define __PLUGIN_FUNCTION typedef PrivateExtension* ( *CreatePrivateExtension_function)(); #endif //__PLUGIN_FUNCTION #endif ginkgocadx-3.8.7/cadxcore/resources/000077500000000000000000000000001314736454600174665ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/cadxcore.icns000066400000000000000000001121711314736454600221370ustar00rootroot00000000000000icnsyics#H??is321)1sրޥ{B!{ Ɣ!kހ RB޽Ɓ91ր )ր  ZZBB !)c焋!1)1sրޥ{B!{ Ɣ!kހ RB޽Ɓ91ր )ր  ZZBB !)c焋!1)1sրޥ{B!{ ƌkހ B޽Ɓ1ր ց ΀ZRBB !)c焋!s8mk)!1s眄B!kRJ991))!!{scR11s)ICN#????? ?????? ?il32sƽƵk 11Jsƥc!Bc9ހޥRZ 9J)1ւ  ƀ ֽցހނրރބ{ccB J)ހ1!kJB1!ks9J 1 {R1ksƽƵk 11Jsƥc!Bc9ހޥRZ 9J)1ւ  ƀ ֽցހނրރބ{ccB J)ހ1!kJB1!ks9J 1 {R1ksƽƵk 11Jsƥc!Bc9ހޥRZ9J!1ւ  ƀ#ֽހނրރބ{ccBJ)ހ1!kJB)!ks9J 1 {R1kl8mkc޽R!{!9k{ZBc1RR1J!1!kkZZBJ)1kkJB1!Rc)B!k1{it32DZZcZcZZcZZ9kށ ֽsƀk R΃΀ޭ΄{֑1ހƔ1 1ދƔ1 cﵽ֜޽k1ƌޥckksJcc{ュƥƭcc9{ցրހޥ ƭZZ΀ցރ޽ ހ޵cRƀ΁րޑ ֽJƁ΁րހނ{ ΀րރނցsk΀ƀ΂րށν1!ZƁ΀ցނօނր֥k1J΀Ƃ΁ւ֕ހրΥc!9kހƀրނΕΆ ƵրƜZZƀ ޽΂ւހ֕ނրށkR΁޽΁ցނޕ ֵހ焍9ր΂罔ƀց΂ց޽ށ֭k9֔ހƜށ9!ހΥ ε1ցֽր )ށZނވހ9ޑ9ք {!֊9 ֋ք B֭ނނހޥB֔ΐނރΜ){ ޔ΀Ώ Ɯހ {ޥրΜZ 祽Ɓփ ޽9 εրƂ޵!!ޕրkJ  ր)kހ΃ށ)9ހއ ))΁։{ށs sccށBB! ƀށހ  {kրށ{Rցށk1ցހJ1րހ9!րށ9ހրށ)ցށւށk΁րހZ΀րހ甘Jր΀ށ焘1΀ցށk ށ)ր΀ ΁րށZրށk9΀ւހB΁ցށ1s΀ցށ Rցހ)΀ցށcրށBcހށ!1ցނހրނsւހcRJ9)ހsրހRցށk 1ށB)cނ 9Zsހ9R΀ށ) 9ށsރZJށJ)ނ!ފZހރk9ց R!փ9{ցր) Z1ށބ Jk99)ZZcZcZZcZZ9kށ ֽsƀk R΃΀ޭ΄{֑1ހƔ1 1ދƔ1 cﵽ֜޽k1ƌޥckksJcc{ュƥƭcc9{ցրހޥ ƭZZ΀ցރ޽ ހ޵cRƀ΁րޑ ֽJƁ΁րހނ{ ΀րރނցsk΀ƀ΂րށν1!ZƁ΀ցނօނր֥k1J΀Ƃ΁ւ֕ހրΥc!9kހƀրނΕΆ ƵրƜZZƀ ޽΂ւހ֕ނրށkR΁޽΁ցނޕ ֵހ焍9ր΂罔ƀց΂ց޽ށ֭k9֔ހƜށ9!ހΥ ε1ցֽր )ށZނވހ9ޑ9ք {!֊9 ֋ք B֭ނނހޥB֔ΐނރΜ){ ޔ΀Ώ Ɯހ {ޥրΜZ 祽Ɓփ ޽9 εրƂ޵!!ޕրkJ  ր)kހ΃ށ)9ހއ ))΁։{ށs sccށBB! ƀށހ  {kրށ{Rցށk1ցހJ1րހ9!րށ9ހրށ)ցށւށk΁րހZ΀րހ甘Jր΀ށ焘1΀ցށk ށ)ր΀ ΁րށZրށk9΀ւހB΁ցށ1s΀ցށ Rցހ)΀ցށcրށBcހށ!1ցނހրނsւހcRJ9)ހsրހRցށk 1ށB)cނ 9Zsހ9R΀ށ) 9ށsރZJށJ)ނ!ފZހރk9ց R!փ9{ցր) Z1ށބ Jk99)ZZcZcZZcZZ9kށ ֽsƀk R΃΀ޭ΄{֑1ހƔ1 1ދƔ1 cﵽ֜޽k1ƌޥckksJcc{ュƥƭcc9{ցրހޥ ƭZZ΀ցރ޽ ހ޵cRƀ΁րޑ ֽJƁ΁րހނ{ ΀րރނցsk΀ƀ΂րށν1!ZƁ΀ցނօނր֥k1J΀Ƃ΁ւ֕ހրΥc!9kހƀրނΕΆ ƵրƜZZƀ ޽΂ւހ֕ނրށkR΁޽΁ցނޕ ֵހ焍9ր΂罔ƀց΂ց޽ށ֭k9֔ހƜށ9!ހΥ ε1ցֽր )ށZނވހ9ޑ9ք {!֊9 ֋ք B֭ނނހޥB֔ΐނރΜ){ ޔ΀Ώ Ɯހ {ޥրΜZ 祽Ɓփ ޽9 εրƂ޵!!ޕրkJ  ր)kހ΃ށ)9ހއ ))΁։{ށs sccށBB! ƀށހ  {kրށ{Rցށk1ցހJ1րހ9!րށ9ހրށ)ցށւށk΁րހZ΀րހ甘Jր΀ށ焘1΀ցށk ށ)ր΀ ΁րށZրށk9΀ւހB΁ցށ1s΀ցށ Rցހ)΀ցށcրށBcހށ!1ցނހրނsւހcRJ9)ހsրހRցށk 1ށB)cނ 9Zsހ9R΀ށ) 9ށsރZJށJ)ނ!ފZހރk9ց R!փ9{ցր) Z1ށބ Jk99)t8mk@1JRRRRRJ1Jޭs11kJJcZBJޜB1֌9!s{)!9RkνƵsJ)1s֜Z!){9!!ZBc91)sք1c{1J{19B)R!9)!{ZJ9k!ZJ9)!sZB9)kZJ{Bc1R)B!1!)!!)!!!!!!!!s!!!!{c!!!!!cR!!!!!RJ!!!))JB)!!!)B9)!!))11)!!!)))))!!!!))))!!!!))))!!!!))k{))!!!!))ck))!!!!))Rc))!!))BR))!!))9J))!!!)1B)!!!))9)!!))1!!!!!{!!!!Z!!JJ!)B!11!))!!!ck!!!!BZ!!!1B!!!){1!!!R)!!!9k!!!!)R!!!!c9!!!!J1!!!1)!!)k!!!!cR!!BB11!s!Rc9J!1Z)B{)ZsBR11!!scZB9!!sJk1J1c!9csBR)ginkgocadx-3.8.7/cadxcore/resources/conformance.xml000066400000000000000000001776571314736454600225310ustar00rootroot00000000000000 ginkgocadx-3.8.7/cadxcore/resources/files/000077500000000000000000000000001314736454600205705ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/acquisition/000077500000000000000000000000001314736454600231205ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/acquisition/ico_acquire_file.png000066400000000000000000000010521314736454600271060ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8ˍIK@C7/= ŋIm\ E*q[A\jU64S:_4U1 dg2..1TR!gi n{\b ):cr9d2qK( <7 0P('i,%E^%! (*JgRM j|NwmWIRNdY[PW #N;fP 5&1_/L}~`7 ]cVi3$QA4)°+E8! _j8C=L=pUU^X}Lwr }u=RY8yƂ8]cw!6iMwֶwA}LL6xG)>_o$qp-7Z7ZIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/acquisition/ico_acquire_pacs.png000066400000000000000000000012251314736454600271170ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  tIME  ™wIDAT8˥Kq_߶}77f&dt~.Q$QCAuov0ceذHaQ()xS)]A~^7'PUݚJs6Zc ڗBaWZv9<4 חcaapZZs=d2| "(^([p͏n`cSc Xk Ðf=WpUEDZ"{tR(c& T_ T/+fGyeb1-f}'ghF!7FOlvv#ʟZ*(W "V;ť iv1lD䴅0 b^h aqu$(/..jfz Xi{{Iz}T*-/-!O9v۞lOt*No:Eq9Ak,;s:quQh"Gn |Q뾮g=WOFs-_q>SIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/acquisition/ico_clear.png000066400000000000000000000014201314736454600255430ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤ]HQ9u͜\ә9t9Z9K(.Jȋ.o 4#P3Т4ɢTʏX%:tsv.B |>jCcwA;i!Ӓu;˨#9b\9$XnH.#`ܥozbk+g;::vM4SS(xP%M̠6@;SJSh!BSVYErXZo-t[Wmrx9=Ϗw5cXY`ecn65" ɿ5ҙ}YG 'Z^Ft;Q)zMhrtFP 3D PIW¾2B`=+GLm3,b4l6ٕ>)P&G}Ũ!^XC]}scNObnj"t(%hV >HQ:j5GּvZ7ϼngNu T6.XV%"GXy UġizsC';N/^:vbGW,ӔsVM4 "3Fǐ>@54UݬgIC|pv'wg|YyJ8`zösZQ"[F=wzI .~+=2jUk6wxus_佑)N\p.ȣHQ1%l g7*B`щ! " ' mlξP! ġiCtZ#C#H|AaR#"$ ܄P+,b Oysj vyw_3:*WrlNC/-좕B'{ u_a46ҽbߡE%D47;ٻƩ;8ˣ}>6[ӕS@*Z Qk>~͵hB\9uxZvYb J Cيٽ?BYvn&kft$,d9Zap\^ Y7 QJF 9=Q4 ؜Io SBpsI) Fv(@yՎވc\@ %% Z2h'@d(<|áaJuM@O⤁LGjd!X8Af 5J i K->w62ƾWH}:mP]XB0QX=ib_g=!Ftt…clrIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/angle_bar/000077500000000000000000000000001314736454600225025ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/angle_bar/ico_angulo_cobb.png000066400000000000000000000005331314736454600263150ustar00rootroot00000000000000PNG  IHDRagAMA a pHYs  #utIME *;+CtEXtSoftwarePaint.NET v3.5.1N8IDAT8Oc`@|?Az |Ayo` x?o @a [5xAЀA`C P @dPw(oPL:lG6^h~ .j<@6 kv? Ԝ/3dD>D9 $ eWIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/angle_bar/ico_angulo_normal.png000066400000000000000000000005141314736454600266770ustar00rootroot00000000000000PNG  IHDRagAMA a pHYs  d_tIME r&tEXtSoftwarePaint.NET v3.5.1N8IDAT8Oc`9A7@ڿ _< PAy00?C N?Yh@0y!Dxe@/㋈jB q!oz.40@;0C-0]*/k0ؽ(G &/.Vp|cIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/big_icons/000077500000000000000000000000001314736454600225245ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/big_icons/ico_acquire_big.png000066400000000000000000000245331314736454600263450ustar00rootroot00000000000000PNG  IHDR@@iqgAMA|Q cHRMR@}y<s,٩<9SbL!GĈ 3,F0+7T3IlpX"61"H _qW,d ėrIKst.ښAdp&+g]RәY2EE44432PuoJEzg`̉j- -b8o׿M]9La.+-%Mȧg3YះuAxEK i<:ŹPcu*@~(  ]o0 ~y*s7g%9%(3H*@C`-pn VH@ A1 jPA3hA'8΃Kn`Lg` a!2D!H҇ dAP B Byf*z: @]h ~L CUp΅ p%;56< ?" GxG iE>&2 oQEGlQP UFFuzQ7QcYG4G۠t]nB/o'Я1 xb"1I>Lf3bX} *QYvGĩp( &q x)&gsF|7:~@&h!$&B%pH$D.q#xx8F|K!\H$!i.%L";r3EHK-AFCbH$^RSIrdd 3Rx)-))zR#RsiSiT#Wd2Z2n2l2d)EBaQ6S))T UEMSPgeedɆfȞ!4--VJ;N g%K-sɵݖ{'OwO%)P_RRۥEK/+))U<د8䡔TtAiF쨜\|FyZbU)W9.Kw+YUEUOUjꂚZZZCu:C=^\G}VCEO#OE&^WOs^K[+\kV֔vv[]n>z^^u}XROm`m3h01$:fь|:kG23hbabhrT4ߴw3=3Y-s.q_vǂbgբ⃥%߲rJ*֪jAe0JOY6rvvtXLǎl&I']$NϝM.6.\ι"En2nnn[g=,=t٪E2}4\j5loDŽǞ~q=''Z^utv&vvEv >mяN9-{ LOgsΝK?7s>xOL n\x }N}g/]>uɫ,u[dS@u]7ot.<30tKn]p;;SwSyoEVIˊW[+߈}k__ھ]Kvݹ;ի_zҝZ;4 g˺+X&F(uӵkިZn_!eoi\oK_җ䥯v.yqϫK^/-~!/w'5+n;bhw2.~n zQG} ^Gy {4wi-u;_[&tiLYT:"vWV侻>=]s'VWqjߚ/:wMtMLil͕( OhU <^R]WM?>4;UnIhRE Lr|0%qq9^뼇8vSCmW1Wf1W%[f&ѓlK44G1(4EQƆHH4EG" VA뛯ꇛ.W*ʞgç6o{02;cs> q]soܬ,fvFʔ8zz9jEtc$miS}XnTn3TDX # #5QaVG9h+)^ɱ$BӨ7F丁*ߺ㴂yN]n:-25 Sp.l 7] 3^PȹP5+Pq.8.uB_s8!|#Dpܬz,>:{Us7?35=!dQuPn6<* Sxľ NywUd37ЦhXE&2x:r&Kޣ=e]!P!#!cQPϱcƾOo4 h,d@+ C]0P0j ߉G<;0a혝j64ưʹ:?A ΄YN|GI(ZΤ+Xg5:/Ш 4*RUAM:h4qt% \(ck"7wuB_aN(ҹHjτQB-oh9כ;`s[:S+ L:+(('@(e^AUlPݥ񾞳Ɓ 5S`20q}~z_Kml+#鱳~y5t*8|o|1_lk^h¼9d 7\ZҥueC{v@oE3pD5#wN7occU4<1Oé0?xru;_oBm `7HW_pTH bL&)얉 ҒvW8t}9+LV\7?J̟ / `|/wX7 |7iQy ̫Q}%Ϸ@x'aPLlP<޼'vIPm| .l}UɎM&,[˕Q7pO`-Kgq65?ȬGMPeYD- |/t?l9cC#T) 7 c0t=x2p|}<*S -6@H`% !U. @R%@хvG`!?3,of+"p4z_t]f`7dF͈zN m͓+Q}"ZPcK/yn '`1cn07+gvBu\)GaUϗmtoi]Lu!<1d!+< ! P4!M>T\֫ @]Z" ]৾*!@a4) : QuT›f51nJXDxͧ_s k{\֘+v I;Op]ܬTf ;^?x"7[BtW:7NYrQ@TƉyMu0k"R54 ڼb'nM5gc ,Y {*հ\͌G0C'a @=/j .7ka\0oVgUZhPu-`0UlQKCļ> rn%֖@_|;mʎb/gmbl{Py;-7Nr,0 [YffM&wMl?;G }^|K}j)[bKu`>kgr䥪V_ c61=!$t1ODfP:)mV-L&Ϭ`+HEGc!_ԧwK2elAI jiQ%ehشoVЬnvPt#] Atk?ݚG(`, ?*LD <M?@mG$M9h$*Vpi@3fg7'…g:9.ӏfҚ ? (U?&m2+3|y* 1iyHo> R}HWP}YaFQүgj'N*~:sv{|3{xP`>z龴*ݏRBd,|-t_3^Ɖ,_Tߖ @>lB HEJI.bO_حjU%t]v0Zq/+{pzz;;x:+ c72L[v 5i޴:ՇVPT_JK)" !f^Vto. @@I@cW!F^حSԥt`(S#؁QlMLWz=7i @}iuJ)>"ŇRRr"Ri>cVA66hVfr!'5F^ԣSKu7a^KS[ #X!.ß֠d/Z ))y%'x><@<td $-mQ$ [2| Jl@ |e?umd,H㫯N򤕐<ɋ%yS2Axd +o:  aۑ:xdTJ>$hJN mtЙ-loYU_0TğT?ѓV$zDOJEI,dO^^ y'<*@+G=}:`H%z.-NoFض F_+`AR@iA dOJy` XY}$k.vpI٥{/fK7kdǻŻS$K!Y=̀DfuZ@ApyK^2a&<pQi/Ea3}D 䆰@FC=H87^8wZCp Y/y;YfUYnB:@ХC/W Aa|k {@ޜixӦGk?vmdrmG*ؕŹQbnf%@Iq7pFB7clCt@.@A%.A6(A2.JE opzLv .{I`TdZKK 1 yPE  @֤KŚF 9k(3 0t(,Y'%C\Gֿ>{4 gTCcaZR-qJI\-,OtW2iY ).5 Jw3H mHAG4~{@˜9r.0\K_}[  bթ~/c] gpIZ," ZD| Wp3jZsqCih 2AqS3v0t.m3G2Y(/%?Bt.䰋bV$@.f%Nr1B F!P [v)AAh@怰K3~k xj( eCX (S|y0Q0nQ3E rH;[d< r6+& R@fAk'v eA(A($D Wn, e[ }TD!:H8S-da( )P&8Չ7p1)`@{ O\K?\569s/x57U  aH$;(H%8H6 $;9-]S6x?!mFr^'V P T| @Q@ Zlaנ=$eD=\z=*iAZ^Ѓ )|8ԭs@B){nH@ɵ8 u@$N(;Za @mM& s,Pn@& w>Fͩ'GōҦ^lx0ҫ`JVۦ>r19Rh !tڪN9pH8 P;5MmxXex|iƁ^cR혨.! h_&O? M_##tbdZ(3O| D < %y*,8^fBh&9C.uEfQi>O'xpMZ2Zb 98 >ÿ!ru A[O޶ `0 %$@5 :ޑ@¹RR;>[gޔSkRJ\>RqQܘ5$i( ~Vr" "_'@3~!BBYm6 pH:R2XGJAtȑBP@c<'W"L]\ѕFЪ wVr]upCMpcM갨6 Jnni0߱=<'_UCC$A?%>]fIb 6H`K hi#M hAisQ'X C(Se;uy>ƺd}CuQSMfˆ>cDԐǧ M`DXl @W&epe$Z9C3@,aX@`풏Df¯W!/hD?< NqS;94b^Rr{*Hl^6ׇ{Xs.i1@kNkMkK7e{y9g RGSš#514ssL<aL  =C$! VD'3NkYE+`ՙ6כi>{SuEX͹q@GRk)st\6$HoȖxDI>kIdˁ5&dHO'&p?`B),D49^lcKg.T@.# U0_6^_:dV@Dƪ/9 eKnebHh UZ,gBrc%mRe :Na" I  OS V64U_B+\E `W ̆ H ۔'n_3O,vf &iDI<p+A 0'-h``|+N<<Ʌ%xj+e<70^C`W5֤TM[!uy{=tnhD{~$Lȴ,sJz}Jv )&F>!$3KLU`8Fmy!(U&vlɲ}gpo0 q< lVV2JY[CcKSm2vucw5~/|J/Vj+ܗwvUfϪVr(őH( =XM6řդLBĪ\YMQ=?÷2 n}p۶._$e+4X~/:g~vw}b'?_edߑ,I:ũ.N´SCꐸ%=/:~!/Ey{^X\%^Yr4O&<2?\Y骦{O?=N.50C3~So-捁-xEzjg{>ZX{_`;.(ϋ_pO._mn ~o=|[޷>3}s ?@̓|>=h~|^h͛틖e.>\`y̲7;v{NT:K;j]IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/big_icons/ico_default_dicomizer.png000066400000000000000000000076221314736454600275640ustar00rootroot00000000000000PNG  IHDR@@iqsRGBgAMA a pHYsodtEXtSoftwarePaint.NET v3.5.100rIDATx^ XUetjNeeOMNYZXӅ)̎S [M֘- r( $w{۵ޔsy~w]k{ k/_bbM+!!ap\\ܳbbb|cڽ{?wڵ&)))q߾}Ѩ'(ڤ#G=:4,55_0A"$=z:33rssɓti*++J:{,҅ TWWGsqdee;vl0\7yyyN?sllEE;wNqEt,oq空Z:vByy q┭[Qpqל!\Wư,ʕ+2xR\\L%%%VAUUUİvahؼy\#@W^GGa,J-L=Rja,ʞ0ShQ"FcÆ gX@S TFMk@V__O GrF&9Zou@.}@y-/R'N syb0M\6ÑÎUaN`)K@v;&fk _|]K&^/gF̉Mڵkrȧ>*,,4/r" (??_vygM kU."}lz$R[\-T[ҿCQͻ&Lh!TA9 6CGF=Wy*ƎR.en+ O TP:{L#jbSTT$ÃLC\y*2ҵv-gC[b%QDPzE#)lb+i_lS*(ӅQV^jk SB%a 9)4Gu$gӑȷ2! !G^}emS%RiWBTQx͙uZ8DnwbG/8BI+^&3-,,,X /~dyUVnNաlJK9L#^ϟO|ܿ?\4Qj 4)œO[l7n ۑjFoMZReJ>>>4i$Zl_hI$ޡ~N9@I[> xȫdm۶ɫ;wcCz=6utMD8ȲBRһԼKShY1a@8VĝjYF:+*1t|l 7* 4Rt7QNNuFʝb)FʙlFʚdIF1Mntxc`;FJRnJkķ(m#ſFqetGI 7ѿ7^=ם|~M-< $U,:?dY=~hL#QAXS"̹H j" ScH@ҙEAl;d]); aT,HE~B'=Mp5$F0꨾ -꿚9>h<u2!vP d ]>]¥<3oRk${FAj=~»Ha<9Nö8xJ"l"O$<;F&đq,ZEo((|ǘG7`#"bOb3=Ib77ICY@⹎g`n?bke&62>)pV@Rx$boo$|$,K~ 8`S}E0 21/5 u#n0ϕŲ-G:XˁyI@~x vh Ry`w<L4 _4$3R{řŞo'\. m;hG؉?6 ]ۇ Rx;8O ~_Dl :#F[b s@c)b >ƒ<wNJsG& 7jc # @=C##E !6xt9CF ۹y[NIhrq'7hi}_i"`!N:`Ӑp!:VMmZB=X1Cv&/ч{eጵ=I Z4w]!_ZcCo-F5;'U =ע;J +htaH: Vzʖ>N˻R /C!kX7p捏jY{5-eCOme+zb˺[шn,F ߭HpȘen5!Cq]԰̵UwRS#KN@M=2Z}tuIO =SMwU|ݬGϐ/vD9 ?u }G?uiZq7ծzx!YuQ`qmKO>.ut.}z=uɌ5 =NO]~C i3ҡMAٟ;҅yTbnԸ/m5?!H{ *E O=|(9G琗D;.y.@Uޤl5ԛu&?UFÊ+0 ki7`|RoEgg{3 yTT@ރL [Nj}Q`#jy H)LJWS o.tZv lEv*T3ٕ°Cϸ |09 xa@:ҋʂyQi5(v wT`wb;V3e|| " SNxRRg#/tptk]xCxAN Y`Eנ7֣?k>1`o'!m~l@Z,Xk\p+pxj` <:l+̶£Xs]a$FmfYkaM5^I ]N̶K6mʾhq Ç΀b/X k>ޅgupW@9'2IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/big_icons/ico_dicomize_big.png000066400000000000000000000166501314736454600265200ustar00rootroot00000000000000PNG  IHDR@@iqsRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.5.100rIDATx^zwTi=38 $(]]s^5F1gU% dq sN yÜSgznݺUռjAjAjWCC8aebi펭l7`~^{IgO-z홏?㇏o߾>SݻtnݼI%t *--{֭R+YrKJ`^iׯ^WYaaiaAAi!c<͒[ogKKܹ#ݻeeleUV^^leee8vy-;[+(o޼?^oѧO@чݻw aO>ǏӣGt=!ܨ08WvWl N;2*ǹwjǕQ靻lp,_Vsde^q އ_~NY8{3N"¡*vS^XHwDFQc̈4v(=bM;͙K.)ڹuطBxh m\0fdPzZdeQ>Qr6o^c JJM迂4௿*A'q:r0ݼu@BЌ~r 8GkЪ+Dض):&F8D22z CċnBAnիtyW32_HLW%b;TgǙ^C7o5XdJΡ3eNHyt-^JJJ7ٴ~: wnIk{@rڹ8Hɉz̡PmN}zT񄞿xIo߽/_Ͽ׏|RPPHq} 56&um$uU/_ P\T]NI!0oܨH( 7$3>zZBNN`_i4wL3c&mڰQ|Kב&D7JnQ^u*,*8)Q}HS~}B޼}GO _I|S,taTbbȩg<{Ls؁!X$kmP5v*(N9 ~؝܏,7΂sGp Z.e<̏=)9|㲯Qb `t#AD`!!z)l++W?i7|Rnq_ 3Geګ TB8DŐ[;H giSzzxwJ͍Jfȣ`r9Ly) iN>G˛bcDyctA(^D~Ξ97?|XU/*9<[EcT%R,cRǠ W"{j Y92eJMM4ztd$=Nij6P{~kډKKig^fSb:rrr)7 K@@$&$?S6oUdee2T`pUWF / FI0D0Mhgi$;}R )RtEJls(% 0BC)邂{1  ̝=fA7:\0,/:!B'PE 9KIq}5V+._"3꽪2 iufvX崊LVFZE93 w92O)p>.\@(pD"ښ&Զuk"fi V `@"Q %'<;U`Ŋdz gW +oJKM G^Rt|禄=;s| ((o Oqqqt>!w;G΄Evċ<p%YY!dcю: YC}Z^  ( @P0clE3 lomR"߹*6=aIFpK~Ozu)ݺSkcjK: Q6uE=jd҈Z53 c}0œ=\d '>'TJMO~yo=S1ȑW/3*qhyy @(ޞKq< \T(P弒l II:(>:—q.L yfԼu4Fl& uH7k@-̘5}&kP6R{7oRXP0*?W;| ǎ8VŎ> 3*r>\(=6 KR9ǣeH4Owy^EF&-wkVX4 #lI&JH_ju%X̂~q,H4hXBИ.XԤ* FJ=VȋQ-* R@J\f .!!Lt\(ɥh/xzsSkC:ƍIͶiLkHy2]ׁjM&d }6)&^`R/X PA X?Rv'==YUNkҟ@v^G_gXA/D+`壎G{0XZIsCZZ>1YmuIu؉/]ePJNӢ|圀.a3b!C!hJw*8?)5Q8@&_Lf@f*yv>6.>n0z=},X^`̚1:@ܸ5Z꒮uS3%Kc jkֆtAg&{RpR$+>"w!U R+K E@ Ȍ;(ޏ1O? LC Qr~ȠiPM/͛iL01>~"1e޶ek)SUA?Q:9 xagkʭ 抡O׳? J_>Xϕ01^b;ZZw/[nہTJup՛Ki'{i'BY "44"T;/x[صZЯ EԱ kjMGKbqaF>30"pf g L5 `(`CX!>{,9Cx5;bg$U@f(a>og3@.MjN^`(W1E=?gB1)SAScۘq<'D3Wx=0 dQQTrŌWfJ.)ޛcRVg Ԑ 2jhѕ1_g|rH+RM 73|z?/4h{ق7yaˋmO!{ODk]Q 5<&%Y&5ӦuIL=a^/Tʩ v1-xmLR5Jq'kbbrժUhccXQQYa!EY^Ac/2+5Fapn2 G``L|7NjqԨ]Svy2.td׮]- 6(O([krʎӧO :tX>}wqcccj_ M16n7;'`{lK˖-U}v9+m@ہ};my8c5fU:[|a*l,QMˤRim-)ѳW(i͒.4;::!E,mmm; >۠Av}p.]Fva<@f_B7 75ph:=ТE ۍnlro|GDi~˖`2\Ϯ9-&x8 jk-՗V))[e~Hh}H* (oul5?:SkGisN}alggg:k, bftǎb̘1؎}z#כnkl…o:iMѣ SS52yJ4ֹKn7׽f摚dؘz紣otYmk>~HF4}}|5|KjD3c9 9@W9c)913ȱ0* r "G(G(G+G[+]l㹠JJr, ryr]۷Փ76k,m.a~ClNmyErޚrˠu[&܁z-[cjAjAjA2k*IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/big_icons/ico_history_big.png000066400000000000000000000127001314736454600264060ustar00rootroot00000000000000PNG  IHDR@@iqsRGBgAMA a cHRMz&u0`:pQ< pHYs =XtEXtSoftwarePaint.NET v3.5.100rIDATx^[TU׶j4Xb7n=؃=vQ @ *M`+5v}Ft{C|! ,!WtM;o0aE+[ϵSɃ5_AkY6K`_}嫶luN3f;y;:ް7 ~R^|o=㬓=z]v6m{]x'H @dA#1THxe*TVu/A?<9O㓀f͚qƊ3Ȝ>wِA;z!R>*Gjc[H]L ۏϢ9,zRrASx߷-μ֓o[}#r띙{-vɽ.b b&a(2 "fB ]XsСC˗Wҁ0kX xD~!=Y}vbVB!d%zNX"E'X ub˖-+W.PҢQ }[ !*> $] KӲ9[ʘ|;v_~R6TMsמ2 ^ɽBCN1YٙWTrl%:D<1] 쭷J)Tʝ b;*PjUԨQC!p#k^sST0e"!sT %J(A+0=h|Me14y [̃_haBFV"&?Y mg~ZBLhw)׋PMbŊevePJʢ1E\aXscnVswȡj懾Z]@O9)8l7M\ʹE&emKb0 | sC1$#Rgtϱ"X?C){dc~qWvDʝJ=-1+~-FXӀ 섨jl?Us%HϡϕVjJXݒqW;znMaGsEHCd#D)SFnSaD S |쪙'3k6B"84zё2f[] 'ĦLJh~JR̐;E ,<"b$}T*S)%Lvͺq9B'eI9Vtie7}?fd% !팙?,yOBNbHP1,kR)o{0T 4qs^FVxqe˖U*B+InQN|\T3[ȱ۞M%m0Bfy'֋Y}-(Zbz.(yzAV~8 3>L)@B;ec&/F`v${C~ R>PmhPQUpj6Rl!^3XZEɸb^<3 ݆3ETO!"+>ې2TX>GJ=ɮw [eK-T)@dL^a0#E #W!%?+j t'C%oID1K)'2OxN{2nL1F*(NP W7G}PP!g^`2L}aQNު&d2XKkF8|WTVVat|5wHwS\0qSrfא뗄˯jL|'>1QzrEӖ$Rr-@CJ%>qLpŎ|INE@⇊%' kG\[bg\pL{O2?؇ރͶDQHP=ؓ)o y[mr6C3\Q$l! @0^$DIZ'ӽ2ʏjLE5ƞi+zq}`ZN@0 `\+0-A'tC|j%]Ԕ5#Rdzmp@o6=wO?^!1$5cߘa Tc{%gߗTu`ʍ^,*TPuլ>V0%dBr2H1KnŐf4\s+iizrc0+L KU&  +1p ^f_UKT3A 2@79Yf:#Vȸ&|PuƈB i;j)~\ *> )r<,w+R ӥ ᕷjƺơdP7wPcziRV}?7hc0Rc1+䨊I!:(erEƭׁ)7FS;3Pv=3O0 b0BCX8! QIʏj6ajFk 8m},1^X ^2P|U 4HdT F+ , YÂmqIC5$Oȿj Cźtӷi;`|>rE*|CD)& b~`5"N!HBLnJƺ>~ Eg6KƮׁȌ Fק9 ASLey\؝0DC0%;c1#F?.1*ATc"ƛ~j?.\%c~)R9>g0 U30!kJQK8M0FU)YYUCRFmChjFJQ)6'c}_YkU GfN `TӠTh5r V&(&.JK ʀ(&jTR}c$chL(*򌇙_<,+؅bu &vzL]:cd,z==f$ AS$>+n2 ?p]ܯ_#FKբ 8h{ʾx [.du&9`]&xcگ 9{;(Glj'p\p~ ˘Y"W' A^9 zA?aʿ$n_,FY^Q=mHx8܁9ދiKBa(F p=:M7[ ",1p [d5@3@n3r"吳!AQP,5z@A} 1-AFIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/big_icons/ico_qr_big.png000066400000000000000000000114431314736454600253320ustar00rootroot00000000000000PNG  IHDR@@iqsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATx͛{tUՙw+ ! B0@ PԠ"蠭Ԯβ]Κufi}tj}U "JQB !@^7:{Ξ?"ȣ oro|o{>|BJɅ!DpXJP:(BQ>K^lrbB\]Χ!+ګqBagw5{:;-)y X:n\W]$p<ϲ,>tJ$ߗRSkJ%ׯ}~:R=+B\sK{e+nwwu[mmmSJ9Qs@R>EW_hqkh_v{$m)aRsHv̘fI a4|Q~?J){a  [pW̚]%Dx<.ׯ{lضm?,423#Bo֜.V|v=}WJv&}_\kޓ)%;Rʦ8[w<4dNJ&y׬;s3m<:QyJ*tY.Lw48?l[p8q:]$!̄E3d5W=P+nJk*@8cN%dMMt]ٷg7%eI$QGΎ)4ݼ;m"m@ L*tvv}_+WLy?mI/B<%Ni*6Mg'hkCӶh99L$E'=xXlR*!k , lc1vMЁ$PX,U2rQU_+ѣG#IJ,***gŊH:$Gǚ5kOr:وY2 Bf̘ɦMcK\eY8ʧMO]RYyDĒI>h,ΧX6e<?0>(---,8V2^rssbd>ׯ~.n\34B5tƘa~V'-~G?fŊ',pq61P(D 0g?Is'KR7k:q]C5S M''RU˙9k6<2WR^^>|32F<';xrBbqwtOWuN\IDOiR))xJPQ^οzo\=S!#iL&mɄ Y}(-%Xr~OiD zOHiNRIIM#y?;o颧wy)Sϭ$t,E87GӮf;:'T 0t:i:)]p>1s!#BƏy#0bڒa10LÇ3=01L01 41F:͘/Z 3N~?etQQ>={yxH[E|,'iũ߽<l))Ggs>_xpzRE]D^:qN:{8JX(D tE((8Snم!a Pi`ô8 (uw>NO`8Dnn.={a&R %z"8`QN1[3,dz >#cD"\.'l,a.O2Ւ]T@*@WS |K[P!uO4E40e帆a[Mkk+;wezp(ӴH;`-yqodر8D(+ bv9|0Di ?*?~zMH)j2AN(4 EE̯5'\G !B"mrqLI Jfe/0rH.AZZv5RDc墴d0q s#oh:YBiZwd{ݖ {WX (--EtFcт:ā}{aJYc q))ˉDJqBT!V:$'?~w j H*.OhkMnNΐÕ f0 DQ8di9dC,ds*g&|jmEHU?7;PHJr,'drRRR;xT5&,LM#o,Y8H!< t((HzX0ipjmȸ\^6;X:>F Qn P!@UWTVi娪:\3^'MfĈ~ɣJܱ^LCJdtHr!)I&}'t* 0 RTU4M/_o@[[GB0uT-[J}}==;fut%$YNf<׋WK0VY\]466zz,\{)%mch H$c.wEQAUU| FMm필adQHolܼ. lܸͬY{p (/;x+cWV ICC&SRr|~^PP@ww7K\G<੧heeeIjINv! !0M:xybG07(6M-R)v\o3nI&ao3jj\0EQ(,ʕ!n$ Ep:B c !Oӆ $?;iӘpeQiMh%(zho?ȓO>NII 55sinnr1D ̚5<*>=x!x] Bʆ~Ht!ć p8(+BY֯_ UUU^u]A^^W\!L|.o.b^/ Bg!(0pC5+q뭷{n^xE"q7nЙU]^:я੮S]MY ?4n[\#veDMi#v{›i͸:tG^'cHq M@BB0k6/L<O}_2hhhh<_|fgg#ۿ޽ma)TWWHy8uVmLr& @:ꐷчxW3+ncSTTa޽g0}t֬YO?EVVP+ nÝ]$eCPY_ }$_Yma:{GfWxk7^{%s,^ʙ<*\nI>U'$O ekd+ Tx'#pV䀖O!^ܵ9UsD2/¯Rm3zl~uWs}oW)Bʭ[>HA< RwsBjWsӳskjbgy lµ.!jSXX@VVdii|ťS0 C40:x޵,;!TnݪD%X 3 ZyBUskkx_4o\ϗEOOd`{{RJtS1 !4͡ !jt^Fʩn c*A7> c@QҲ9UUSUBK_=HU\fϞE4=eb-.2_V=v[d)-_G Ԝ&N$RZʤJS]oX *e!VjneUu7ەmԱC?}ﵗFE,ʏE׮]2`rT67~̫l3֮y&rҥoczl Nuq~۶r`G~𓟔=-Q X'[k3;/h@O]~noagU89Xɢ,>pJgn?Uϭov\DmIR:{l #Fǀ >Ϋ|Yj;IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/big_icons/ico_qr_big.svg000066400000000000000000001662261314736454600253570ustar00rootroot00000000000000 image/svg+xml ginkgocadx-3.8.7/cadxcore/resources/files/big_icons/ico_search_ginkgocloud.png000066400000000000000000000121151314736454600277160ustar00rootroot00000000000000PNG  IHDR@@iqsBIT|d pHYs B(xtEXtSoftwarewww.inkscape.org<IDATxyT՝?W{WUWW/@wӨ"@ۂDQpA5"h<-f4h1:.- ĨQ̈ .d ,- tWur珪jIIs{|߽RJ||'@GBl5Wg6`I)޾F@+A{ބ+;qit*L&D"ڼx_B)Չ5W@.I=W]+Gxΐcnjwr>2v׮}g<"XRJي@eWpڨҶ MW._!: C5YRQ!?;.+LF^fP@mv龕;vl;{6׷,a/ #u~>vXݑ]{?%OUT0G{=F{:#b5 !@ DYO+Rdn_[.zr= X_^ꑐp$f}#DOiiCW !Di)Nv"Z!Btz ߛ3ϸpVN_!uOs+yc{Sz !n_7-z6zEB\'L\][g:{;BΜ|gM^]*)qZU?fΌ ,bņר;UqRaԼΆ@D{3##脀VIꫫ:i55ST[,uWuh`OˉvE~UNʦ1InjFqHUF@y< yͤS.[RRu`wK)`ݫlt:!BSAؐ8@U)sɲuVubN;68:|J;UU# skv|۫> Eub[&qx2&8-эl/[81kؾLX铮o5 ~!(0KEzyϝϽ{ʊG/{p{, QLZEHt.M@*!DQl| ?dz_D"}7<@+"Zg|cWoZʲOGg@!(]Uy&P40w c;F46lp:UJҦ92&%#!d2"̖/}wO-,;}J)o⼟wѷW_~!> KKe 2ӇJc4`-iU3UT3Ep?N7Tf?˷?Aj &8MAnCBNI,zy/=ٛZ/4;"q O?*Wy !P Sq9~cƹ#&aX&K'cYaYige+&ӎ] ٟ\۝% SbK%KƎHR7Nel 2&L"|gy˶ؼN'"P,漑sf~8}h zt3Q=I9$u`dJG)/ȸ;Dsڐ1 McbevhS{g|G| /`WeŐ!J]x=^_3 0F޾o2r8M=A$ NI'$D)L/Yǟ=flL'FX3 0/I<8yhɶ!:pەoٵ*BtAJm>"P1'JMlj$)W"TT&i>jP UN4bivQ꼍K1ڳWCsqbϷP!_EII Z5b NU1Tt&cڨӈ "TH2A4'NIeIiNq=MLO0t Ǖ;g±cxδ;Ə> _N.QQ^yt0PڧY.x͵GI&>fEkMD&A4-t&!-a[膉eؘV6H@Bwqħ6tE"EiMnѣ'+orvjHW_goÏ9aGw jH=iI0э em1 ,)-$t36&ARo%c[3 dSE۶[ U En^RB7~y;z1AJI(P?ПoN$zt 1 iİlҦA4lI]AQl)AEC"*r߆~Xm>iAnΐ ƞ= bPXRFyp0v!m6aL $JPU4)8tNu.KJP4L), ˲p8^kTfMY[}N$RwDRJHD o #QضĐ8H *H(n.)'EESP4Md48ۖ1҇`>ز;GB@eP$p nR^>1Д`kBH"Ev(gƈcFv:M(hBd۶m˲z#NL)^q[8}>NiK7RMB'V8UdVs+UXޒwofj! '^&{ѫ|çEJ@AAQ"@Ʃ L>qy!ZS'@H(ңEl]֛$l~,1]/_e] k!. il aKTlSgM=^z!&**$jަ,TÁ(G4~KoOHu Ϯ{yCsYX_#z %"AUD Eq^4|R -{q˝;Jk׭Y;0=V @UU iD12HPΒ0!|Дl'ˢ&oȟ^{[wnj0U[RƟrÝ)hUUOyy9};M!+4EPUE ١.M@J6Swn ȶ@Gnٺj߳u-w%IB]j@(n***P,uo-fFC޸[SC-AOU"P :~?cvBM9g|*NtOSsrÇr0|phmbdRض I- 4(2)dL9n9ȒL&I$z0tV?`Guę[ N*餰ѣGw9ؿf9/2Ar dg9غNv3W}CUm%+(( LbF|7 2=]&8:Wǃ!C>x-[#T\ lO4i= uQRRBCCRlrtiDr:[^D{wtQG=!@F7vx f+hH$hnn&R=۠Ag϶-*k tpxP(mۤ4K6.`QUUq8\.4Möm2 d:<-J;^\<~$^4}TCGuA7f Ukh B|9N!P(DAAG0JR:uA1&\ıhKo Ht;I2 S[׭Ѯ8J[}9|>&r,2=̏riu1&\[|dŚȞ5잀w_5도ȐR16'K722OBQoM5wo1;\/vPB>zOak];FIֳc=PPP 3ʊr{AVSݫyńKGy!=НSWWw%Ȕ=P(\.0 `Ԙu16SSݵúC<$X2H%vWAJ)X*1n+Ϙ|Pn*O8X|X}G-sw%z%l`r97Տ_IqY?iʅSϼfos'X/k?_~5eGwIUA=mJ8pwAQ%3ʊؖXYZ{+Uټe͙wEc#: Z1s%}B_AAt{۶۟_Y>x{Ӭ_T^k?ZPWY9. &]Gm4ʼ*ˇ2 Vǫ^ W/qŧ5^oO~R0*t&4!s(-Bx]`ݸj) __ȮXgkR̙ǝcm<lq _Z8/`u۔H7xc0pfWA@piw:N϶o=@\7|%G ~ V[6ʏ>HΝ;w>P?p]zг++ mYrO\r4o"EHWȶOP4O.N&_M3B_5Z珪g~Mɮ ZG#G¡LWE/ ?__7Em׍(np'IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/big_icons/ico_search_ginkgocloud.svg000066400000000000000000023767231314736454600277550ustar00rootroot00000000000000 image/svg+xml ginkgocadx-3.8.7/cadxcore/resources/files/cine_bar/000077500000000000000000000000001314736454600223325ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/cine_bar/ico_bucle.png000066400000000000000000000013561314736454600247710ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥SKOQ ;`҅]A7Lܘt1j&$##DK@)PSIPE ږR:}P- i.t79sw~@M5.uNQC9w? j[&]n7$? -dOC ]{fFT2i!- q{/DĭT jIn*| t RJ SVu2D&̀T"> 8Q>^:D*̻;C"c :Ql:=sq\q"CCZCb_HKFO=ST9$j\a7ì'rôD#ӵ"HrMj!Ecߢ2+ѪwnvϞH1y|֥cFL4LT9O:4[&-R*Vqa(Pρ- S.-BS燿W32wҋNNjg`~iIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cine_bar/ico_cine.png000066400000000000000000000012151314736454600246070ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥OhAn RK%JzQAP4 KOyd^*DQT4"RKmNZIcgotד ?v7aZ`|j8q\yR И}>9[TbۢY3CG:1AN0]efB8pA'/h|GWMa:h(⋐R.{!2I{ =p?q4Ot\"M'gS m9?hubָnlÁ1ҫ Rb=`g\9niܦ5ZFͦ7~ynHt*s)^d+Gt?`_A`Sw37Sk#`ƿ#Sk؅逅%Q~9Nf X Y5ͳASdhhJ ܻPjbKq[myzkd@lhZpwIΚbX(d>_M2hYVhrЂIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cine_bar/ico_no_bucle.png000066400000000000000000000015051314736454600254610ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwarePaint.NET v3.36%IDAT8Om]HSa5R# )0 C0B̨Ä2RvTR4Q3VdbT9榛tsmy^us{}}-V$q(YTvie͉^ʰo%ĭw\9n`TˏOL J1\a5M&kpjkBbrZcZ# 39\>V CSCGK7+J C ig(b<άDi&۪cgp8~7j y&*'j?)s6Ey\xQNA lMLzpĒAFO5S,ؼX"g/Spln4}%Kcmֲ V#`UJ*T: 2}ܲ@-m`TdT{C9FS.~3x,hh|1>mN/dma.=w{qNWjv2y$u-Ntܬq $ncƓzf0w`?AJj"Tjɝ˺(B}].P&i;a@'^IsFzcca԰װfD+k筨kuI>PE<'ޡadg{B5 x*y)$8U7y%'UER*ex.0j:5;ּ!pE3IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cine_bar/ico_pause.png000066400000000000000000000013211314736454600250040ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<cIDAT8˥KoaXt;ݰ1qԕhBӦJ&UH[b (S@aPs>/;'yywqsIEUHњqM/%[1O3C!&ݽb'GO6#Y_lf9&@=5Z](Ucͬku0M}S}=45;}&+]؍dBsal쬛R*?Cn8 غr' \w%HR@#4z` 9bpf  ]B[l@‰k$,,@vkmI6\gI:盛]KqꑱPm{AJ/zX?|N2܁;,OU pcdE( fB"4_X2^?OIhڂ('Hm$t-8ќѺ;,sW1z |IM1М.34~Q2P%'8s2/F(s7|UL7mO7G%w afc? sq"IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cine_bar/ico_play.png000066400000000000000000000013151314736454600246370ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<_IDAT8˥MoQXtî.3qcESW%5Ec a,QL*kZi, Pa``q΅&f<بn,AIYP7ß5Uo )'$j/GMyy `!|([Y J]P.D 8bf'x$NU#DIpDtmH /,3kpUS und؎ L>ez jm"<98! Y40hKEPzsvu%pE]w4h0p8ZK`X*hQ1r%9dq4N | @˲Ұ., _&؁b}Μͤupz &?CJ5 ;>-HZa0V}302fC!R$ȨV;ErlD"ME 3<\qڱ{FWyz7P$V 3yQw,1Sc"o}M=Y\O܂\Gݦ~LxWž%IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cine_bar/ico_stop.png000066400000000000000000000012671314736454600246650ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IIDAT8˥MoQXtC&FMܘ1qѴ!n\4KӦJ&ԶI#i,SJ>,С03Ps0#jƛ;S6]]N]c9w?'+sodW)?1G'J "=]h͞8)@:}EcMp*M4 *t{Cr}O$VM²1 7> դTŞe؎ a;e >mvdg@4h}23j7mz,ˍ. %7d`:yt,చ1#РtBvkuYbpȦpEZPU", IAKլ^1+ AC^&W<]6a4,̊`ցl>۴h{lv N)_fm g>_r3DeݑQ@Y2a\E?R[ir j(œy(2 . eaZf^te6tq/-rč9YY8ĩD3T=5z780: JɆ\S@ vD ^&؋% χ&6dx uc t#XB$K9R{CmSy瑰sLjxelx u( |Q l[&IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cursors/ico_cursor_ancla_simple.png000066400000000000000000000006201314736454600276520ustar00rootroot00000000000000PNG  IHDR szzgAMA a pHYs  ~tIME  3 :tEXtSoftwarePaint.NET v3.36%IDATXGT10 $CRU:tdZld$04,N׵h 4v2=ύs;lϋɕA xH?֬K;)HT4V*2,pE8mdsP\ƕ8TozV!C chhr&]a'3Yԣ3zet'xBbߔ0j' ]8  vVs΀Sbɖo_ 2yUlwIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cursors/ico_cursor_crear_angulo_cobb.png000066400000000000000000000024471314736454600306620ustar00rootroot00000000000000PNG  IHDR DgAMA aPLTEgvctRNSS% pHYs  d_tIME  +N\tEXtSoftwarePaint.NET v3.36%zIDAT8O͒A0iLONa،4vw*A4G WtQR%o@mx'<9ɓMAt?7,CQWa"~< 8IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cursors/ico_cursor_crear_angulo_normal.png000066400000000000000000000024521314736454600312410ustar00rootroot00000000000000PNG  IHDR DgAMA aPLTEgvctRNSS% pHYs  d_tIME  +N\tEXtSoftwarePaint.NET v3.36%}IDAT8O͓ C? 92^dSt0tL=`zn\Pдt}9`^zQ \-.m"ؚ;s2| <{LF?dy ('-IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cursors/ico_cursor_crear_anotacion.png000066400000000000000000000024411314736454600303550ustar00rootroot00000000000000PNG  IHDR DgAMA aPLTEgvctRNSS% pHYs  d_tIME  +N\tEXtSoftwarePaint.NET v3.36%tIDAT8OՓK CN 5M Y:@" nJ&UN\4J$A <R f#0, Ou< A8(x[k!;PV{ͺA _jz ˗IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cursors/ico_cursor_crear_elipse.png000066400000000000000000000024511314736454600276640ustar00rootroot00000000000000PNG  IHDR DgAMA aPLTEgvctRNSS% pHYs  ~tIME  36tEXtSoftwarePaint.NET v3.36%|IDAT8OR hB )gfC\)`eS=_ѽbf{\{ @iX횳d/h q?倌IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cursors/ico_cursor_mano_cerrada.png000066400000000000000000000003701314736454600276400ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  tIME  3 :xIDATX;0 Ckg3I ߔJkcA/3z""Ln%K^TqXQϡwG!px8XTgPߝg.n:Q]'f Չc )09IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cursors/ico_cursor_seleccionar.png000066400000000000000000000003601314736454600275130ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  tIME  3qpIDATXK DgLe& 'a[~^aiK}JXv\ŦIrFT[RyvPR ! 6ꂤ>krIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cursors/ico_cursor_transparente.png000066400000000000000000000003441314736454600277340ustar00rootroot00000000000000PNG  IHDR szzsRGBbKGD pHYs  tIME  !'E–dIDATXK ! CW+]3 #~6-T4Ǘ'AH5w0Ri|==kr-Ȟ߿审8B\G;e_!{IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cursors/ico_cursor_window_level.png000066400000000000000000000025761314736454600277350ustar00rootroot00000000000000PNG  IHDR DgAMA aPLTE$$$+++222:::AAAHHHPPPWWW^^^eeemmmttt{{{2tntRNSS% pHYs  d_tIME  +N\tEXtSoftwarePaint.NET v3.36%IDAT8OW IqzsEB7~xjYKOza2[6xl<Ղr3#/ޟ <^oj (kU@0젬?#E|h30Nr! r!LRo! `Gj 69SZyOL[9(xn}GkH+  DeiCͮ=oIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/cursors/ico_rotate_cursor.png000066400000000000000000000005261314736454600265260ustar00rootroot00000000000000PNG  IHDR szzgAMA a pHYs  d_tIME  3 :tEXtSoftwarePaint.NET v3.5.11GB7IDATXGQ Pi8R0їC[&l5XDg 爵< g婩"oʆujr,1pgxZ!t wr,R ,Ro =mC KT\`h7X4z;4pgxޝGM;ԒpNM%-W.(|Z90j@O\.t8B!rd2rk"z2R)b  A  J3apA\Ѹ1 p>iF"}H3`-3L&N\.re~z4 IŞd2y6 3tVJE`-gEO-<==&z:L;ݎ"uݘJt:et` [g x۲qu:Fashl]?䷮Ҁ&LDmDX[tģ+ڈfl h*a`9ee;iՐ{DOx' 06m`yV&8nC >LɶU[nER*Ѡt 8 )Z,znq-r9EQY|PK V욃~p)ZmhE3&Q(6lc al0%l2$'ZM6}b h1\SUPa!Fp&۔)A>Zcbfrܟ;S D#фzT/_lsX0i#`>{nm%FȮ{O=ۏsu#R^j$Są69|Lw< tH.8iNK<#|fUoml`eAIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/000077500000000000000000000000001314736454600222715ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_all_patients.png000066400000000000000000000015521314736454600263130ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe< IDATxڄKSaswtf4uM||) K })>IE!eFvpnwOR?9s9" B jؑj) q'1I3$ ڕ`HR)< ,]yZҴzW}"Ckc$['ǩFAFzO\2%̓xAB]Y!xW4WT4 ,nj= 6d2ׁJAi O[NcSfk)Khsr@Vͧ6m78E&-Da-?ᾕt%8A .F$ +c iԐk*%}Ɛof١7x#8k 'jŹBZ 1<-UFЧ F.`~s朤C*G(ӔFUVe\K]{-gݜ?>ocpE؈2U $1J2tӅ4-<wb̀%Lق*i ,`&I.=Pe.kԉ 愮p 235y 3/׭,G(+ЪbfkQfIwLjn$)r4ŵX„0--_qvJqE,Hl=3 qg/}[aC0)IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_clean_all.png000066400000000000000000000014201314736454600255400ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤ]HQ9u͜\ә9t9Z9K(.Jȋ.o 4#P3Т4ɢTʏX%:tsv.B |>jCcwA;i!Ӓu;˨#9b\9$XnH.#`ܥozbk+g;::vM4SS(xP%M̠6@;SJSh!BSVYErXZ}O<57W54|49&fWFjjwbbbI~~~f0effCboUU~|Y|'O=`JvvvsIII~=ff~սp**/ =<)=碢oKHYYkgdd(]K楢bç5k12?adyehל?jj~ + @0BSFF6 b# CFF'hi~) AiD^HH4 p?,nQjK3 ! rgz)EZbُ8L/U>(puMIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_fichero_clave.png000066400000000000000000000011441314736454600264220ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8ˍKOQMYpKBр  W bRhH"4 %RR.Zi;s m'y73yrΔ(ɗéNEw$aՇT 9:$Ih^U8?A80?OZ~ԁlN2#71ɭ2Y$#@{ve+﯄,Mx 4ߡ;/ @buP=|FҲb3{!˭8\OǤ3}W9Mp*-LvԆ=h=8GFyGڞb¼P޴TxJT2A렇9sOnDZk)W9JZB"c@kw6m~RA\ve v[lWएп; bb#YX3Ԑ~~!yC,A uBvNq,fX}ۦxQ3/׼*ݨD̆kIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_historial_open.png000066400000000000000000000011561314736454600266530ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥SkQM\h~(ZMSђ=DoR A*=yOfCARzRK*1䒘B7۷$OxټfvV .b?/K!}r?<%C=];V}zAR(9~q:{>yGy%"~Kt.%԰-*zQai~\7''S43ZƱ~Or[f4MW˲jX,m1ֱmraȄ5 `:fU ˅ 0L=&(*ȭC=^^Db0PodǕS׹Reo\>=?Ď3ٓWpE?3F0`IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_hombre.png000066400000000000000000000011651314736454600251100ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥SMkQ}3qFSH$Pԅ"T$KEJ$;Ae.piQ7.,U%U4Z!Ԓɐf0(ƈ>=s Ð25{_ԽB AO"Z*)RxE]P0snֹ|ҫ&LRiVwL]pϮΟȧS . bf(N[,v[} %QH7C$ה;p!tt{Wwl8#%3- ~3͚m I+*$9u_ch(85Tzȧ& `)pc dy$H^^tj:7zo6>߃ԗG@ƒ!2#UF?&NHIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_imagen.png000066400000000000000000000011361314736454600250720ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥=kTA3޽& a#Q`TFURXH? B,LA@Al6ٹ;s"fnH`kU?)4[57/.dɣ,D$gŎw]>|xNih:c;Io]bFxl"= c"@a퐖~д-wiDa(``.&w(Å6iҶ9#!zDNKYNB^ϙ 1J=L :HvL4NrYBgM~mmS668b{N2ElrE@r>?V#ޓtF5@9Ub"^mhlnz*yR 9䤽GE棤/>rE^}^Ulm<%D{c@/*K+# =@)wWs33q-\woړĿIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_local_file.png000066400000000000000000000006061314736454600257240ustar00rootroot00000000000000PNG  IHDR7gAMA7tEXtSoftwareAdobe ImageReadyqe<IDATϊaG4&& O8 I͆sR( Qd,Y† jĔf<{\@vWν+zZwfyy #_|;xK*I$I!E, 78nC߭Y9%: J4Mhi!(3hPbl@aXuR̠A-͆. C3?١M+d-tР}mゕIl9؆)zT;3C'QӃtGIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_local_file_recent.png000066400000000000000000000012621314736454600272630ustar00rootroot00000000000000PNG  IHDRagAMA7 pHYsodtEXtSoftwarePaint.NET v3.5.11GB7.IDAT8OKQŅ.\uMWݺ]qj6UQA "ADY7.F4(8'j8F=A O袋;' LOdx{l,?:jNt %Zt}}/8Į xx(Oan.q n2,-ejl} `b"Yޖ D> _qsS &\_Hox&HQ:;?`I]Fl`~'S{ضaC? ]M'sC59QXnfi%A;BvN+I V{O_Hm{뚚`j^Sd){j IJ=UIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_local_linked_recent.png000066400000000000000000000007651314736454600276210ustar00rootroot00000000000000PNG  IHDRagAMA7 pHYsodtEXtSoftwarePaint.NET v3.5.11GB7qIDAT8Oc"UUU grgeڽ7MÜ#s @r 5 ((wMŋwf?x0cͽjC7o9n_qهWSEDhnV$AlHn =.jj>yk*{#;Сk@j@jAzf6ͭ$(Hm/77j` b@r 5 =p455}}U:_*uOw_Xh@j@jAz 2ht?%EKvw @'Hn% ) ) ) i-7kIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_movie_preview.png000066400000000000000000000126351314736454600265200ustar00rootroot00000000000000PNG  IHDRLLǗQ+gAMA a cHRMz&u0`:pQ< pHYstEXtSoftwarePaint.NET v3.5.100rIDATx^ MgccZQD/l-(d E#5T~ J(?"KR1E*);c۬:Lw=W)d>9gޙbW-,,,TR7n\gϞ% sbS  ER"U6Y>lر^}2t ZB֭zw+쪫_\:_A+ .@alxx믿~ܹsn޼yM'$$Խ ka|<@gyZFde͚55uo4)ʊ6m4뭷6mk|^^ٓ# JWl!ϢK,i>Cf-ؿy<_IoIRh7ٿ0` /J.ڠAHIGѦMFģBWa0JtŠ+vl۶mH-2;Zt+ҬZ*WB7n:BhdrՑx㏵s/Wʗ/&bݻl7x MO=vڍȗ/8u-$? !>СC>$|&MXo7;vܹǒ$XWYt>g̘A BLmOUN [ʔ)m'N8ޛ4{EUr՛=*[sTQ)@BZg}`{h23uTs%,/^܈l uΈ?Cu]]$ؿA^jjꁟ˗R߿nRP=zn֬YQ=.]!4: }1O5vGqސ^O[~^AN:SD|X3,#Bl2׷,3/Qj:/-ZlbMԯ_U0[l˖-oJK~αe\ lrf̘1FzX&Tx733!+==ݧ`+DThD&Č)kuyW\ڱc(IVWL]6ISd]}2j7޼& QFYs6$!MB${q%u%%!'"yvupݺuҖ_D3X)(Dk|Y]+ٶm(*?A@q07WlY#u쀛(x3QQQ&p8n/BSJWѕ4rF 011Ѵl)xl-0MQys%D$VWRr^h}=Ɛw`zcDԱ+(|駮BQvдFZfA%ZjFkW^ݫ0c?SJ͛7(}RAWUF}&C5vݻwϯ.i"MEjFq7o^{ ,F '|2H-9p3+=EAa54$sx(,p?fr풴N ޓV ܯqMek.W J:ĜlYD:#%|0J२C /͐ zuܸqC*|HQ"\VUIYEd{M b r-ic4!Dwyg!Sܓ L8!a6DZ|nR+5P]qP5qMJ'bw ki\U]Ec{WWdsTѲ\w֒t;Z95 U3/9Ҕh;h^cccO0RFFL4H>Ujdĉ Wؘ9sf{n⤹5 a2.6'o~R(yr<_)3SN]裏.6y)0^y.1cFӧ'j}_,a'G]x سtJ^3ISSS!5kd*tH4ZcPz1|~?>[aM =?] fLrsq?Ve`9:a$90 'a謇Vqqqf…fŹ.Z DϤ $'OAC ۧ~sC!}܋3'|x>g=N!rB$URD*PIT aÆA'DI qK*8PRҪSrF`pE*R⼽v+R@BH P~OwSw2;ly$gHGvz*'%b<"΀ msKb![l mIH.ڱR :ESp /vɎ9;';a/iλםǿ~!%DA>Z̓1gwR#{^9h%f$ !5s{[ $sx l+-]YR/KڄB0" #C!H[FqVYʤ(Qlŏ/2ZGGdy"""x!_OݬTK_%LWXbN[ % DQIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_mujer.png000066400000000000000000000011161314736454600247520ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8ˍn@'ɋPU !DnBEX T T(e@4Nl'NSO9u@nXissYԊ vt~?m=y_}g&%3M1"u.@d&ܛa~tPjp?XP7|.jS2n} Ac  |YмY:K8ow FE)ol1Ptnh0thfM+nU07E瞐0wTuW:>H1i ?h#DY"$ॆQga:|j ,9.oϘA w7~H#tVuo#gUACTŵoMZ;\ PsOtg{!3DIt@ @Z?ʬ.Dg9Rog:{W2%9&Zs?IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_otro.png000066400000000000000000000014221314736454600246130ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥Oa[Ohjj8'r t,)53 j꜊o"&ʗ b"_DxU5Z{ۮg c#Z@'U4Ş6$S=:!O;4A*g; G hhh!9U@8rk2ه.s~ƜYG# W'?ElqNdkr5XpP˄: 1XcHP`%:I]`t)*\C8h3G ?~sA jMG]Njf}s!t&6QcBU 4P۶A3-nSXxm$vJ,hHVb v(y; 6*P(GtFOw>B1#C6K#G#O4P$ꃄsfV36 h7eo %cGY')O4˹@tmA,Yi -kYؐ=ĵ<nRtw[4 @m۶Asu|$0 ReUTVfa#"ieau0q+U\-$IJdậ$رc.޾}e˖= LLSql'~&9Yy)즤b<ӶxheelԂ.J'JK111VX-R +W!SofqGQ@VYq`UV&.e7L\A2S%%Vq! 41Z<%s3 8ErtPK;5.frlH<ZyIKR N8£&- mՎ,L˴+M90/ cˁ)I!%+ y8N(1ij"H,ŅaժU0`d7de$&&RG^xERcYybw{؎YŹ&BcaƓW0IYUH@{Zo>ˡjⶎ[Ky>&E])[qąsYʚ7rG,ඈ۹y9aܣ4lŊ߿LWzw,׹ZDWR#$yYx7ć+=FK]uGFp?@;K_.Ghv}݅h J| _^PЧ%Bc)c+۳ ;bIγ50OOOǀ؝∭n}o;Y,ш1EY1{΁r7 fڴ7r1H潎@1>kV,]~`s9~] SUedUY琢af 09$̒ s4`G-0;Us'*wK _W/V[sRLZ~$,(J_ P`i{$սqU x&e-ޟ\pz\`ٙ08}_쬊; h9׸rd,hM;6AY6褄NKEf\ "!N]s8p@1}bMaN#!^{储@|q'p7cZ-o'̝?})Iw`zʟG2"^R }D&md8 _^=Eљ/-鋪qÑUYc"Alc]ԝ,wwjϻI|i޼yٳAknH~v<&>'+a͛b 6QVϗ#B ʷ뛟S,ʼnvqQ$;=QQ!Q8=4UmY^-\!(* o)>G9l߾} WANԦ^ F?F̚Ѕ.E3}?>4`3f̰Xn\|||։lP筸BgMf?]ٳ瞁Eȑ#:us1QСCB|V8t)>?1`?o_k[ i՜GAzhTzH{a=U׎MU ?^ކ^Ŋ:wƔce`ҩ3٪P(Z:ݻ#aCO _ZڵQ`W_h͚6LW[q">3yRSg(_?FG P"K03KΟ<3g¸s>DulK`lC7kv9U"N0֥KW tHS%RgPJH}Qd5Ed͛+`%25k*Tn<(^`m?Ν;=rXteLh kMTxȬQ JeE+X9bG"6Q` Xt XiL Œ۷HbVz.HiڴXy{YAil,VKdI7Ibۣpў_Q_ haₔ'T`R7XR(_,E{w+vG#g,=geY%8A|0$=zJ)Vp%?a}*IMpsXN\v}3?XX7ݫ~3}M'?4t_I*n$7j1<6M>ŋBEqXǎ]-} _ }7 @Eה$n&9O4DYһvEsW^AZ^HT1)rl51%WwӉk:xgHif͞[4wҿvRl\ ƹՠS5haj(S WCX_e2EtC.h %EUEH|2WD-d-(D, EgDED'EtLtXGI~ۿ-SXlrw8{ʶi[_pMNF5;_]766ZiE_EE*hEE*h,ZnE,hhzfkRzu?D}^z5j!#q6l8F|iEE-D/AEVHOʐ6-GƟ^G>UMW1p\IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_plegar.png000066400000000000000000000013601314736454600251030ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.5.6ЃZIIDAT8Ocd12Jb``ե20<ƦE)# )ɷg]WVqTXx 5WMe`pkP3+|ξ󗺺wswv>Ѐ` f'dcFƹ_|,,i#W3v5H0 12.% {f30X W**74zgD+cY??IJj S xTCw*,|a! 0cÎYY>}:0ϙhan)WZ aN{o_?5G [E^CP#H37fK@'$>ZPSWy;E&#ʞ˓ ߛ_3uE[qzrcS iGkD́0zv(Ja-.[.$ihurz<ʪ*~+*Gw ":l&HW Enf]v\>}ײrz Z #=n*6.eO9GFĕ5 "(Y<)"=mXRlVUVN.UqUX2ZIB&%HAUk(J^L+Cij(l X_b+MDþ;wvԫJ Ak! 8O'D䏅NDQl>sU12ٻcp k/Lcrh&Vbnz)OY!lj?}矪Kc{ZIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_unknown_file.png000066400000000000000000000044211314736454600263300ustar00rootroot00000000000000PNG  IHDRLLǗQ+gAMA a cHRMz&u0`:pQ< pHYsj։ tIME #8ެtEXtSoftwarePaint.NET v3.5.11GB7NIDATx^ lU阺C6l0]јmNAT4K-ETJiBKW %в#H$2VC\s[zK{}߹crI{~wQ&aְIkؤ5l6` tM:X&aְIkؤ5l6` 'Nt ^xbrgϞ#oUpkMb\t  \p!XSSS\RR@|||Ҹ&e1G~~X nnSd >^/U={6|ԩy{" yyyL#  ` 'O߿[,lRs*̘!6ևVR?&%%I'Yؤ,ضm;#~hG^FG***cǎʄE6)9n:cF/RURȢđ`iiA9qqqE6)9rrrFbHAA'Iɣ$ix؅qllldVYؤ,VtEn +tT^9Cޅs5E6)9HXWWGa|VAX,O_QCpDTUԒx{Y*B҂:e˖V\yͅ[,lRsdeeI A\Vy^OU(*Sϗ0,(-Xg0:-JsΉ;}4+==;] n-IY̑tvv^W? 7OC׎ٲOHtUFՅ}qlllH($pȑ͛cpjE6)9222w}Fk44U-NB(T}۷o6fhYؤ,شi1^?|Y]ouGorG7Ə^5OՆ!PCT+%lsC >zSUmc8:۷=- " iii ƄH΋1W%_2NOPfo©}͘Zda#55URe.Z2q[7~~\o_~cT#10)? {]a~<*ԹTcs*Ycӧ}c%GY/L^o*; w^ KNNVr>-z.b#YԺy!vD{n ۸q6-7;Ӡ74-¼C*#_m_aqqqJSSӤG :d233+lݺuJcchInףX=ƣ>Ȱ0G`7 1==ݾ֮]k+aujj?~R<],,'eԖh+,66Vq\Q uaǭTc}YFihhZXK>0"\c:w6jR(KڡO_Yے WG-,Rn{wF7+~WF- iNZuciiiwVM 7۷w^R8jaTanIV[i =Ԕت%m}p}j>=^Vnatҷuw.Z՘Kn .SMn-IYo}Iθ܃|  n-Ikؤ5l6` tM:X&aְIkؤ5l6` tM:X&0.IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_wado_linked.png000066400000000000000000000012211314736454600261050ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<#IDAT8c?%tcpW]u϶k52^Oy]v7d'wLpYπk[㭨EO 캷&t⃃x`ggǝUn޼ykjj&_HwA y:zFFFl>>>]'Nŋw@ ݼyHȑ#A@Az껈mRSSO4) ???ɯX!H=H]MMM'OTޞc޽Ν)8tڵk9j@' u }`tuu3O6$((h/77A >Ƀԁԃ __뽽WZvݺuOl@EEɃԁԃ PSSc:~JJʗ@3<<< !9: $ÙQoB @ @ _`1lccSD' 1F9z.\@nTcc3<=A!!aɝ;C}},Y8@ĚiZBtlsESS]~/<*>%#0:: C7n 2D>)T)$p\AYYVRRWXX_YpVzx͙bR;L,uuxq8~ >q UUW#^U hikkWx^mn=66 6-'Ov㬬fEO VGWræ^,ZbEmW׀DҔ{h6>zڵǎMIɭlJ;55rL++H:` РnlTvt@0T+C݃"QuL̍5kxL,6nn'%<} >zUUGE_Riwk~O|+n|lLĺmk{F]]X\LseLALL\^^eUU; wUWJJJK%ZyCCwSṢ oee-)iDY;01?ҥ19w.\H-b)څ86(.nvdH3\BYpJdd몹bo-8~\xrJ\\>F:2s<([$ɓڜTQbb>t$T!!QǛOɴqZ|ߞ}_ƎzaU''? 8t(C*m}R;mEhn3P(tmmpsY.{&6O;:.rpXḘq Mi4y;ѡR &id1mww7b]N }.612BnK4w$*@`rLbgDj_O UQ5SUmxB`qg͚3XGD=)/o)*"AdxZCB dmaG:c#"b33$1]55(kQ3"r@ )@Ic,x%7x򆅊D-{yn \qF> 4&Ϫ@ @ ?2oRa),/IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/history/ico_wado_linked_recent.png000066400000000000000000000012751314736454600274560ustar00rootroot00000000000000PNG  IHDRagAMA7 pHYsodtEXtSoftwarePaint.NET v3.5.11GB79IDAT8Oc"U`9߫#Cݳ-rM[CY>mՃ0 2JVjj@xy)OImkā$$_?A u }`@:N=萗F/<39vH|6u !T6qROݰM !F iOՂ0 *=i^Č: f ~h[F~8uȄ~`g#c鸂R:"IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/layout_bar/000077500000000000000000000000001314736454600227315ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/layout_bar/ico_add_columna.png000066400000000000000000000006751314736454600265470ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<_IDATxڔJ@gsk[+[+ EJ_w<,l= &? 81egg'Y){0c+EQtcz:!׫ D)hȜz\z,)u]Rcp;b 90xt"溪*ռm1 Z?1 ̠ٵ[ji`:k'⿞υv(?gS} =3A,KghEb;Uxβ |bQp,"t _%sQknGGȍr1$I43u\抇s^| ƟMb4jF\ 7IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/layout_bar/ico_add_fila.png000066400000000000000000000007111314736454600260130ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<kIDATxڜRMJ@~ IHuSn݈ .B  Ņt -\xnb1MdL\4>x潙vID 2I =ϻBiRn!:6X,"˲б u0 کnZwm]Fi)%C(p NFLus>tl6~4MrwG sG;'+ުݝgίO'4Ny >tWJ ;Gd66{=?,\ضs".6(5eY%Rsб|rqS?,Ŝ##< M a|.' w 8+QIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/layout_bar/ico_del_columna.png000066400000000000000000000006141314736454600265540ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<.IDATxڔ1N0EgYG p=JHTTHV+!@*-.qEV2ėFqeY%gO/0#kx={;'=; p84" 9u]0u]BNo*I?1 9' (cq;qZ#?IDs,hm|fyzy4oYO x9m+iL8ޤ'J)ϣ xn86}Ӹ@b!z0 ,PU:|a1ʲ|oqo@њh%kHb_5R'Ll:1*Pacup0l+үDaIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/layout_bar/ico_layout_1x1.png000066400000000000000000000004311314736454600262750ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڜ !Dwu‘ԔR@k"  ~ُw|8(Dt#diyX[m8T#Vj,8,(8VueV;l1 Ё&Xd'`p^Rh+9gA!!4MyX>SO^]2ȷ_f1 rxIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/layout_bar/ico_layout_1x2.png000066400000000000000000000005301314736454600262760ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڔS[@ l!3yag2{Ahg%Itf],Da41TBNQ=9fT l)hV?+(D$IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/layout_bar/ico_layout_2x1.png000066400000000000000000000007101314736454600262760ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.36%"IDAT8O1kp-6d'3,!tpԶ:%(W !"Wn-n=EQǽ<4Geq8(0*E4Q }F_Ix81MS̲ \.A4uLqu]}~nc,4N&[EKeSQbZ[ zfֲmnximTHz7z8(WIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/layout_bar/ico_layout_2x1_blue.png000066400000000000000000000007501314736454600273110ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwarePaint.NET v3.5.100ryIDAT8OKQƧQK[=(() *L(P2_inBK -|'njA(,_o;PwQ:сg;s0+#H>y;H͵{`OόQַL *UUXcee^a`&cw2oy[} B?ZN,f$Iq{ۍ_WdQ<9Er, CFux<B.RyuGӉGd~QQ_뛿9nz=Fu l۞{Zu]FueYnRYfTOt:p^bl2'ZVsdi2'FlxQ `TOj/]׿O.+iOyNT |IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/layout_bar/ico_layout_3x3.png000066400000000000000000000007371314736454600263120ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.36%9IDAT8Ok@?%dw "\<QU& 1B^=<|o^ 䃼kϜ?jT:4'˅g b`*\t:i$q3.A`uͫ T:8-z78q~6mӲ,x F#%q) `0`*\n<2 rg*\m3q x9 /˲$I>i->q FREʗ˅ۭ@JT\ :>@JT\r]wٳ}8Eqmx<26!%.tix6 D}ԫ[%Ul^WUEJT`( β HÁK)c:4,9su] %.i9.~Ak?3zIBIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/logos/000077500000000000000000000000001314736454600217135ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/logos/extensions_logo.png000066400000000000000000000047121314736454600256440ustar00rootroot00000000000000PNG  IHDR00WgAMA a pHYs oytIME* qgtEXtSoftwarePaint.NET v3.5.100r 3IDAThCŚW[g{s9 ">(`@EAI|PQaDAD1aw|gQ܁=}NkUңGֿfsvsn~'c=T;9yt>.K<=o߾_~iiiРAiȐ!iСiذaiiĈiȑ5*ѣG1cƤcǦq壟ƽ>#ϧF'[ [.Gt?>u&LP]R8hKI2_ey^emlĉ6iҤ|~ڴiiѢEii̙9zdDD#u`l"(G'ON6~?zhzEzUjiiIϟ?O=J7nH6mʒ#T)@ FVzʔ)iSNM;w̑G]{[Pߧ3gΤǏuX+ƑHCXD 8VǕ+W'O{7oޤsΥ#GIyKҵk3Q Bl:U8d6oޜ^~-{.>}C۷ZH eTG@,`->cƌtĉ*k*?eÜj`$3ʇ\fSN@{;})> Ӵo߾_#bmܸ1 fFwҹzi59\LfYoGh[ny楅  $ٳs`^@&fX<ϟL$AZjUlٲi2 0HeD#"C`'K,ɝÇgϞHt%wڕA[bEF}KLd3QMB7.&x XtiZ|yZzu\8^pNVUD<{ڵk s1+( TyU!C`yAr8ׯ_j >Q>$s@X F%@fJǸcMHH '?>ϵ3:FB2 Ċ˗y@pLぬj*ARRZDX@zA "{nNZN_u΅ $ l$E Yody1̆.'F[3mą=^pK1J %8g]۳gL Ю)z)J뻔^d_nkiR$YFHƀ5|`e|\J"Ѹ nrJJ@FB>vX:W7|꺽Ѫuc=R=Dwؑ3{k߲KNvj+7z(),@FBkXS#Q&w%`}ZB:5D"ݻwgGJ%jZ;*1 *eY:YT%;l={xD T+*SIX܎mSlY7+b>Ąs%h)ǀ^l= Z?UJ+BwYި*rY&pheW*ʥ;یvĊMF X'pX%*Pʉ+I9P'*$΅Fq9!. Ā# bIF t' ;_'r{vY% EPDC6WM=UEz7A\NhـjGB}Z{JdZ{TA| A0xxyX4x OIJCËAi^[671Ҽo-a;CË1%;KJ]Z@VPl[$i +ʬ#IU2h|0<Z%QP s0PA꩝t%d~};*\,UCN.W"ӈ+jSTLLfvZ'r~䊋I Ig\iհiZo{2 4)08p&g~EkUfg=?7Ol&*:=FPGhK:?մv)Uyu /Ü{M\icAi5UF PZ'{~ g>LoqWR(}ǎhmⶩx(:OG(ݏ PJ"~.kIiZ /<훙xn.add1]t`6֘U( "D1N6P:O4]&wyS_;rLAJ}}!|ΝBj^%|39\8s.8Th/<ʡn_q5P*-gҏt߰Y N>9 Y4R'$ VR1LLȷu /tWoTj{|}]𯾺{eˊcb>T(Eliyw|/ah.PlSe"iBuTjaco:b;um2Cyߒ.zRyBtMPꏨՅ0R9 Ak PZ(텰[Xy44tAkcV^߳eᔑ]Z*tG(ޞB>HTY:֠Um12O:!J; szJE^ iX\GZeāBo%Lg= R^g` GoOHhRi\|w>+4OwUxd0Q@z|k7SƶƂ@>I>zCr9YN kWsFa;r|nG,B_0Z,XkۧE( ȅ:|J(SS¡ }9513w)ZcҎR[L5@o%,j!h`pǎE៱m룔B$ѡ\ҖevVbzsIf, $kٹ j !]]owL[\C}SS_gLL . R:>EZ&1F<'%uiYc&fvD /jC(OSASF.8ȺKlm+::w΍\OB"$ƴXkֽQYmk%px?V)z3a}}%[PN2D`!Jt:N"yUВo{g2k17#ٲ 7gzno-}IXg}K'CO*D V<]qE֚x?eg&gȐ?y^ˊy, w!oҮU t j4MC^7[3(MBӥ=Lk:V  XTyzuOR;{w4YY5[\UT+"P@WWoL눮XccXLY:3(Q&8i{lkfc؀qmlfeXvjǏY(aC|ىwǭy9Fi^5mՓӲ&KYჰ,ءQL4V ~&< ZPj=(^^Z XQm(1Im4~{7\RCyu^yؔ(X%)Ct8W?Oo95%M ۷lks<_Ik*V.e?h|=c+NÏ=$` a_acQuB(/V/"vz/}M/d^K%mG9405}TRkTh#vqDM+Ls ɻX]77eZ,\_?p-p5e!ɟ=ne7+[  %Da_ CWEw!VcW7F qfV0t%5/iJ\peNIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/logos/ico_extension_error.png000066400000000000000000000047341314736454600265100ustar00rootroot00000000000000PNG  IHDR00WgAMA a pHYskHtEXtSoftwarePaint.NET v3.5.100r XIDAThCݚoU"A)yI{^)r8YBl8]re׾p={SvHۼy{eff>~ V+VsԩSrP}vINN;vHFFF(+̰GTI:aΚ5kdĉ2~x>}L:Uƌ#&Ls֭[|u9R ̙cQ( f̀(0(mMs<) C8b2d Aqbhw̙Hgggt3\4?/_r*x#܈yO Gd~>}LD߾}x9'Np` &`˖-& ѣG 4Gq_~ҳgO}{BDrM (hW6x ϻل:{6XݵkWիtMzaG# rkMVrAHFeѥK Cxᝧ[h!X&M #֬Y3"C4sQNII=4 f#޸qBxb&)΁7mT5j$ 6 رq&{#"`F3&͛;f3.@l O pvRN3ʜ(0^֯_oTT0UVXq>yRz@רQCj֬)jՒuZ9!Y~ua72"A!5Ea  |*UjժRzuƈ^&~Va7׭[6vL}#h+VhVreT-iӶ S n#\hgtvZKjժI \rf˗qzn ;c å۷%??Pc`t\ԳܧR&Za7TfMPN4V{bӴDf- JoUg7KĊgѢEqG.Xt%rV]RiΝ /P3}mDž=13x pmža'ɪv0<WqD`)~Nti|c9e >3uywܱ+%2śaؽׅqB׏/9~M#P׍[:rtJumܽ{W`7Dm=8&^ۀRT;VQvU7}g"\;0(lkV)iM~'u+7N~N7iII3 Е{ml8]O_[t4t~*lYڃvC+c/+YQn[I }X|X` D YDz/ghfaѣGViȑ#qMVl_-i i|Ւ/r?*7T)8a<~ ¶ ݍ n7v.-}$Ϟ2g?Tx`67nKEdJ>ۥ:ulK H^,v闸 .6B0)umV"իWn<^6!MX,O3cuۀqNb{DcaxuhF)l3̰G/w[3+̰7WS~Xk<]0Xa??w__UIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/logos/ico_ginkgo16x16.png000066400000000000000000000017441314736454600252450ustar00rootroot00000000000000PNG  IHDR(-SgAMA aPLTE@@@9\cG'o pHYsE ktEXtSoftwarePaint.NET v3.5.4>vUIDAT(S]A!-S({%rA#4]|$NJXEΕ`!@# !_p UnIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/logos/ico_ginkgo32x32.png000066400000000000000000000041761314736454600252430ustar00rootroot00000000000000PNG  IHDR szzsBIT|d pHYsvv}ՂtEXtSoftwarewww.inkscape.org<IDATX{]E?޻wn([16MфF(PcB5Ą T#JP*4 j0"Zb䑂 ޽{93sνw%ƓLqf}oWPQ )P)Ơ0Y9c9{?\*~|yx%/Po\|?Ʈ/7n:Q)TZJK>~ʧZ%Z\sWd%{k/n%B]ʯk ީ.ZePnmB1i7ʤKVgo_OO|r Da)G Ϊ%- UBZP2ɽB RtV:zϝwܵң_OZ&)}hiWP@H$*\ɔΎNW` ʶQ0"i-2$s֙gf˽wᡗxkLćPF2&rt,Q%0qS蝶p=N=k"f/bf".\r5?%F?umM Bm5}xBcd(*##G={矿gbmwЭQ*IAIU,I*wic 2-?uMFo@3<򈧿9W]#GN&Dma!ʂoNysz}=шz-[|R/sԖPƠғu:9yV4ǟ~ {ϞI6*KN@62HB͉ "ڪ*b! g/kں.[Go_S9/a?Q2IP DT#cQ(UxJ}[Ikyu(Ԥ\L#KQA֢sxjMܚ@!ҙSX[dpkaN|- }6vJ4+3CDRMZc;;82\oڸ9Ombc&N0 jQ( 2kBJ'z |ygʱ_ұi=(Zʈ|g֞- R$Z s>-!8y]1\w&Lbqotd{@BBkĆ8%dTyp*ɲ;!~\C̟_]/v'Fw4Fuƥ̘]>AK µ3 $n,g4%piF^Rаk<`WIGG}+Su`VEQh%(#C-pxH\ڏ~}FՓu/n-)m4'%5 J[80J ("atX`F?,[֦xI59v)KNI~UgN8@ Uinvy|؅]~Xe:?~uDW+ϴIgklܷ}=o;֡ngv~qO|V~Gw=fnmUT,Qd4ϊSALs=9$Ӳ=w0^pmcq?/4yvgvvM.,,aI(I ,WQA3bFEPɗpeQĀrAQ Y4;;|Λ{8~Fvz 99=?O3t7jP]{~}9qG/Lk8]8q=CBaܵSJ/ eKyĵsanS sd[n!/S[<5!~>PJ3e<eEN#oN_Cֿ1<_j?%b:!}>'[7,4曄 B69R{=Pk&Mx5u&y.{>g~M0 QM(y1}H/C Xrr=@UJQM@J yd0lUI#~X?Bv'e.߬( $-mYmͮ IŊ1H*Jdajx0E#u.((_%#L d% s:F2w0) +q.%9`S2Ϫ!ulp&%CǿMP09mdQR %È(9J?+>?qʆ,/A$׊=Zs\u kmk. 4oLADbKraX6KI'x F"ɢZrb]֗J@DN#iԡҐ55&ϙ ˖_^7z22ּA;$9ǸM&T4KDBg`VeؔW1ShR-Zr ދx2%Ҽ ,l0ǐAV.*ʄLqG@ `VcVMjLƙ4Jk&dLR!3A} v$k<:ydgJ46 s✑ NkX  rX}PB—4y* šլ&E9z-vif3VH@R1 & JJ(cR2Y`XMe=Z]܋INAdVz66߹1U6"n< mv2@ɼ"oDٸ$ >#엒Lelػ-9R5jRBi*uHI#%3&ZJKNbSp'Pak Ag2K3H+^f?a\h+C7"}͜a,*Tװt1E}7n˘]r?G;J>:j*B1ì0Sum&dJ=AKB=@l(B=9w3;2nJ"k.ꜪdrIxV"O`'nS&5hL5nvc^#M1h1nxDiS^ kRyP̂ Ady6V&JK@=H `3PXITHmS%IRAhKBist= Ú z&,wz-I+[=gUnEk{N)eKngcDz5 'qEuB8sVӒՇb sZ'lU،Y`Sh뜘pc.!iq=VUS#$?mdr46܌ger/t^-.]Ύ` z6.16Dxz^P ." aC!&SQ [<fw8+W!-)6B,D,Iǥ.k o\8{2V#튉3HMpWb8:,JS6MHjqUF!QOLn36WoճqƐꬫ-(eVɢ}Ys02Ž udeyb,IE󔴺H@ 4X|Zb9V \X0pl$h4Y>.ȱH2(XW'9>IS$huk7Mi<\ #a#W,)vJ#oٰ=9u[Qhʆ a$x+silG+"ה[BMh׃p%Fhx/:% ""|){8M  Bلց(+ "feM;[ 2C;6C6w~JA0{@|l& 8pOv& BC>jl5%Ȍ͙A`Zje2&)A'S,UMK641O-B2dT8'JAJ/Hzl `S'/C([N:wVl%deX#i=x+do/dp%9$]O]"U9/1w\_4µׄmJn!9a ճiīhePyX*lgFSJIm0o"@(':g*~Fz<vGH녲'-NɈ^V24ha:x<:6`LJfyiT%7dR5]/U!~`{meG|L"-18D>˖mƚM]hĥ oa7jˊrkdSĔ܈7k2 sc^5Y)w>ˠ.1H.)b.)R6)K>O n =d1௬zd(C' dl Ŧc(6RWk_a섲V|VAB!;mq:\`Fy\sLhAdH|o+EZ9Fz\O/0 ڍB7c|8,,RPl}SBޚ-,%&( UZI1kG5^g '2_BILXM xWO B%F/ Rx!4 ׆7ZAf_L_B@*\Bb@jO:Ln~FDpƬQy i}M|eG@itĂKy#PN >F 0 L脸>WBݗk)ʆHE?2u2^^D]j|AsE QceV^nkWP!dty%Ȭ>ߞ,¥R{2SO✒G˛&mk i䘳A۔k|٘µ4 [yv-~64%f9B2Ԓj aݗ6$BѸ 3bIo.L8L]v4}8l*o0%A0d Ѩ7LYhdLlLΟ#Okwoþ7\6Eʳ|W3c0^SR/Fm}))XWKrcHntQi{'-S6JpT-K~Dp'džhdDI+\#X`Vj2򁒔l3)1&SKȏG,3FވֈX_RQ6*OɩlM.FHi8,-Y8(Y}25z)%֡5ĥЭJ35I6* ‘O.ʼnCk͢?3YϮ:H5]ξ>V(rÂJ'qKvQ8؂3P/H œ̲L/W2 ՓZmq>GT"MBT1)iqFPkY$*[gdIW&O'FiK) o )7i,}R ⤠AdpzvIA0$ec{v飒|(Xks/1]궤E%$k<"(Z8a g.<G:U U֪ jt' ,4m tK ຂrct`$[*SvL*cg.!ӵ)T5pb:ixL ?WhJd\XsrN^+nծi>%tdF, Rڎ9\j "M( PktA:5/`jdi{c&ҚL&7SŅQ,^pCNwe~c$sC)ii>:!m3%5M %x=9,u7 n H;kWf "#$ o +2%%bl7+V0Snmc,zBUVK^ҲWEk i>;G bJDq-ӹcNؑ06׶F~ݐ޴¹ Mq B\E|PV(h .#Ee 足8U(]7Qx6SaF2>5UvKN#gd s+%G iA?/ T9YsVM?᫞#ɥpn0!{ayӽ<_6N Yea&3 ?xj61K -zϩ]WnK{Jt;OC\f:5VTBL9C0eI֞G".@7G}>0S:!8< ME^'p}I;gkf/RL7c3B$}LLYE'z@*(, dcZ@Ϭ?DTg)eQ8>dfLfC 5cU'|e0US>K?HN v/QYcp\io␊ sBoU5}GFc̀Áp9rJ%KX^iكQxʴwxDeVu`QB\uUё!&5 ]6ZrRKߣVX&9q^D4lګT9<OQ|D@K梏!lJH4iP5#CYU! /"=j1),F*Y sS1) Y$oc 2M  \,1":$9L"PAUy 1aPֱ$ ]5NJ(iyP8ƶWƭ=!mJl+Vc1[jĊ!m%̄|k c5aYXl0D#{/bݷIpziQ!Y_lPp焛qeyRiBFe5Ȍ3.` K8f!J;t^9dbEabC)*TUt҂`5S)UK";5QNuy1 b2&؋9Î2ܲ\<>`.Cf5LZ6d-7]7b] k'HL̯n䣃TmϠֹq2L6YRjA|MԒɂi&,YDjZOrztՒ. ͳ(db{߂c=E1 vXt ֓&L<1GՄTep};gum}ʸ`$%mlH-$eYud9̳k4}E`ac&o)MڝҜ%L'3eöh~ ;>l̙@v̜f-P]4V~sɳ$D+pu Q3SmT̑03aG }TVi, #%Cڑ44/fC0Vn"qR`+ "`V^=P` BB Mx `b)Ʀ,]1't~gmCW({Fe=ÚvCh<`ʗI "ñew 'ٔ$RI#tv=K |@ 'l4N ԧDr9G)('͐fs =K|g& h`m9c S1<)guׇ ,Vxl X.OnEbPga:b__'0oBV 'Ù6CP\wӬvv/qp\j⾵BX {:OիgJ@7P4!`:gݢaV6PF5 ЌK$%}MYz'22h|wV3 5 v4M 58ykG IDAT8RfZh. naWfCѸ֣1WQln I F}}O3 ֪T YOlPY]`f Ϧ`Ȱլ;Q.Z'7Y8Y"d$DKq1b&wJ>Kƃa2bbG|b*{An䩫1]mln(NE;l,UR,"5 Lh@f`}.k`K"#1t`On6J0O_uAu/K='G{yx5&)3$ Mp/4׿8ޣ/aQ䵎ʄegR05@GU.]ɧfe(\16z"tP i}a' C={Aֺv ę7'?H9Açqᄍ!3S\jMs!F3U_f6O;sȆSGXhI62+SR ikF4]Mړ̧%jL@f >SK}KV~Jyn>bV3Ơ>u<.(l5!^Msz g'2N ۽+ V69\8ce?+D4"ԣ9J$rHٶ9jG)[ӧf_,Oة^jdzux#m#<fii--;?[B-JB_y) RϋsM;rOT{1ۀʄjFb jI:[;{岺_QS#7a:s,񐴭*SI%AD`xζsggM-Yt3F@ddq>$J+HchXq?8$&V|^c%(< :T]b#vb2C2\@cR D "[J*:{HA*p 2ZZ9;}\66zS2#Eg!/S<5)_<y0@jNc;] &'8Ob-c~@ ٘_R9=3o1XhndVBWRŭ.h LwZLÐrJf, gv`32Ku<$Ei:fM$ ywιfj ;k\Eօ@zC$:~gBbL   G'`XJZɶ̆ra}TdEZM&\ śސZ|(m܌2g'<לݠADtm貿=6&x M籍rxH_S*,ys,!NJr{]z/I&Cx牿6*ր^Re>{@pBLfwa79c"L*Xdq弧ۄR6e;YqeaeQ 0 |&&`i (H{)]Fʿӯ3PcыOjln`cLaWӣg3Z:(W=bDVa y'Ͳ2o 5vw}Rh a skuzlfvYxPd(c7׉ܲQ=(k9d^xps ;U*i ; bCXrWB\T{)C97NҙS(alʐtHvo'KKa9qOO7ɤ!wY#uCjp] L*5c &$Oe}-Al!bc_tWbԈ@$yCPR'ȴfl.eb6b:BєJ ZykSUج'qñȲ !H+lvu.+@ГN* 2LKn#iScY1%>̃EB['JXo\*QH@OnUhJJyVa3~\ι[up)cy&ar4oTߖ+F8AdQs:?lae}1.%O)YPw=߶\b.V7sf|a#F4}m<Pjh3mX6db{򼅎dτG׎ĔQILAM ,+ד>4$4 QM(tLMBjb5 C ,5Z#Y5-8WB彳yL8hñNVۑ-"aApXMbڽG6 LY2cµŌJƤ^zW5- )J'Kag)HJ[h0,1*jʡwY|ݦ0u#8fxhu1l*֝h94ܖ8GCʑeG[%YNe&.ۙFd`y:CRQY>V6)2w1tDO>+YRΊD!BC'jLM@k dk5 \lH0!y!= 7\M@@)tor^ |nd:JHzܜؕZ@?on{ZS0t 04@C%kM;(Arf@(%ek(I;œRhNތwaP5SՉI]` 6x2L,[5";$}|\z#B [O׾b,]&۳o[93w=tYJ )g[|Oji\5A XBwP%M ] $:[(㌎v~NiHaRDmEIyĜΣƤv|H*AV핼I7{2+BM& Lv FbCSNԊ[{l?ۧc FFf ڰ O<<#` A҅k3ZJm`0ӏnAD Ϛ~״N [e,_ƺW1E?S(ʭc8GZ)N5dnMtoݷS)cX׿/x?{082*yj|߼K/xA!e [:qާsQFdž5xncxaWiŕGku M쒳LWF $ep*KM"/VJi ?v8(QM RI>K a9\`6c:sIH"єTJX\0kp] ?1R#<Qtvg_.Vڍ-ir)n2@PL 쉖R[|h,Et@eJ;}6#IWɺY}u-E8f&hkc䟮xa{ ?k!8lڼ7u~vi A"Eaw7yiix4YŖA^Mycp>g8?צxg\^])-ލ$!NfB'E9"f/QWܘҊC- Y!ؔ`/dq&{u2REVYl(7ϐ&An%m$0}3v`FF{Ϛ:gpN?|l^?a8 __R$V<;G0Zhս5 & W1*`ܑJw7 d6T;_޷ț)u⸓bɓ{0{F0cep` +ދR?ʭAHǪ$N^IbjPѩ&lr@34Os՘fm&<@}>YgHZYכ=¿$ nRz6bH ww>yzU)ƫpyga`Tkkǫk݆s{I83硳_FJBPwyϰ! X @AͅkDȥGt 1-[+8KR z%>gѿnJbڪq咋o?_?ۘ7 WG(S߆r>߱8`q"~t5h+BNo5w׃JJ{K&p8אָoj,u)>sIR@Bl`ʤH1ˌb־2ζ,AKMq *ȟEbAj;dX3DW29&Nf}Diڱ$?B &< 겾h!('[׾;߹F%@&U@5@m(ct0m)n;fl 1ѡ0E4Z(&3"}%Zt,8*+p6[n6v5380m3?U>(urmtP(E:nG߅wx<^xtL)bd Dd'cqT/nzd޴x/L<뗣}J UJt0iV%J(D+c#!~w? `=Qo0nRLNtꆎ# j[ )[ž#S0j bX((8]JM*$ NLIzLa"%<;5IdXOHdr0ejO(rT4a$^SlBm R|L-< s㛮ߺaU@2:r{AT)2cu`H0ǡ(b06 RKbޚbPBO4l܀MFd [VmIIS0VŦQl҅bxmvt`xl7X8&Z:O6xۮڋԧ?H"gѵE(Մ0p16bx~~ߵ AQϤ)u[jȸk1<03՘ 6R+T:/f}DP4[FV$|>0KUj.nX|DT4`T5\w9~Z'Q 6-+SA[OMamDv:YCPh錠wl8)"|EG}>jn{ADq'cٻjxʊuw7{)(`PN@xB1("DىxX{}?[NÌxu UeB\}K){do[ݶ7txOOn ?TvnD)7M7Q@2zjA{,FsCp`."7EU)8///}nw8(Ǿ \m W1(b$EK5@,j+pƻ><GsnyZTjّo:G,>+ֽz:륢!;P?$A[lϝ#sgcS(JA)R )vR8ܗMѺL IDAT[G*YRdkh4ou$JsZN:19Xarp̦k*7'`KzX[RG?Qkz N(wR(~Aࠠ/[0V05caݸ5Ņy`7㱧_[ NLߊOs6,{zj+߹GR ݂3(V?7vNù']+5V_YrxgS_n5^{ew׃XtG16evm sJa_|<ܓqk_9j: l^?a(`֙yKl;cww'6 - uL(((ó7ol;3ju ?&P@h*/߅ m1~ #82/kaڀGy0~{ uc sya{- qy-źaD>zϿ~|#V0MG16fץ*l$!Tox/d9FÚ^V& @_ӹ4 #{,"ָ:PӐ'q- <ByK+Ws4Kujo3j)Q4-KS50:fi $G2A@&=LփamKH⽐_Hx.)ouψ3̢zzgڋ4Zcώ 3F6B~ 9|˖Eu4DU/?O?*FD|/ֽ6+vH{_[SOƦ IEN*RjԹ'^P4-h߂? <(A tPj+  {s|8c `Q@8iW]!>yGk:qbk#8t695 ϿBPy)7HHYjF.?etQn+~9-cdbZ_I6㙐kqM_aqA(7n{lw.*}EpQjàLL .P"CRiή " B5tC+.BA\AHGRaK42LdN$WJkz.L2'1Ih LM>eYB -HUm÷ҩTp ąn89x̌|^RK":%! U၇[v?0gV_5)Ev=v 1q۽ཧ (ڢI+dBzPQ\'UF&ͪ}J 2:6^|E iw?^z8j-I%\|_`HauN-Qp ٥c'y2ݳAJNtMNaFJQ^kbwIN,sI822_KEBKgec/7isTEKw17Y= lO];Obt1xFa#3; Y>𥸮/cξ:c\2te4?@:K3A"˧%|?Z} $$W@+tP)M ^e42T^u gV҃I}T=+=CbB*W/H*BQ*ؼS!*y@w[/fnIS0/;%霊w{'6. c}܍ @ɳׂޭ*<9eDi1_r;s~-x߇ލ(Y-++A[C+W`l( RwN+{Vtm[o }%l]79([mmX8Ty!Z2=[U=+RLݳ_=bV6شz #ijuMG  r݄4qvz*Pο*C߁bSp# cT!V{?шBg|,]tx7; g`JRT!iBKL,2u!5(+QRl{/R2AVJ :R[o FG- Ix gɐu#|T4 %hlbxdp:I NzXXq֬[kVbUw` o㈪T*`2zT*ʭl^P2P`zE\xݭhW0E fFML-GZk_1{V`FM+ EB`ԭkzIcCZDvv"h\)ZJn;xA8a]fc0w,|ҋR_al\>၄7SJdm=(3* cw.ԾiEo|P,GYJ)^W<ѱfo?Tu0^1>nD80t_\eBۤbTjE?&)S12P*Q7ihc>Jۗsq׷FPYW .V}pI0*FިI J:&_vmx@BK?Oo"t.#nQB[O JNe;Q)07pR|#Xb$%јCgRϚ i RDu* $xlƆDi-IJ Ʉ]R ,نKk4U2Z~Yvb)(JYm io-Hm!FD:F:A!:ǧ҈լRoZ pCԂb[AdTTft5}.8xPX0{7sQ|{9Hak-0%k(q` bצ206T+c`æn7#6d3: Ig77v!8ͻ={l/v/^X6y[1m*6T1: 3g3f[O!{ttJ\lwJTouV E19(H<[db%V N}Czf !: ؒhzZӕ֬+3ByqԄ{MH_UUqBƜh,Q֓J 9ŌVF5A3_'1lnԲ?<O֮"hKBPe tN-ehaB`.)9YO{/~)*["\㜋?RBک(NDŊA)E0Q-GBAbDŞVձaB 3|H]@]M? FB) AAݳʘ4MphG:}-VR0~ ;4}{qA'cdS5ҪK>y7"plQ,jrw/vKJ<{wŖmh1Lg9bȢ.Plߙp~*+Wf M+l?[:bΈcyB}CPB#?'{6V1_Eu$LOvΘ3u7Add8tϓp^ѿicl̚5 eZw)2A:L_F. MCX\tX% T Bd'xۂBy*O~q5#zou!>1,_ R_lürْ q7/IǾ-¬ٳbXw݉ѡi(^K imʚgӕCLG |Nwpֆcq~q0`uW]?OVBu=}dE wܙa͆1:Tcf oP0xg{:}!k=s?LJN;q=V >8 VR6uK΋ uI>&!_''ou^ B?&#F.{ ݜ$1T!NJ&)L$ji@:"JI*0@g&$?x޵0H Fcڌ+*nJ|:* M(6ψ@vn@w g~}ѷ~rJ|y , B)}-wqpߍ)P%-]N:VfeZN8Dߢ:Z$g"qk׭SO?Jw4J=<_`d`b"~~ZNxLС_fO<jGy LC/g-c(J 8k &V)ԦYU&e]ZA#z*<2$@g;;O EC w PGuB=ۓ(@B!h*-B6(]o'v$o?ó/?Âq݅Dq5 E6җ jҺ'kώz˹'.E(;Lf;t)himAG_ =[gn gU5#ۂm[1eVt,U/.$`dl?7Uq;7yFè=P#2gOnXÈC,&p$%[f<{}}Sq%7+asqIs8N8^4<<_A4G[wn zEsSwׇdzKcOȦ0a7*mg#c5yg9EWj̰?1 n׾;W N<䴘 ^3we9d15C3b$%dߡK(bRk`!Ue23BBb$ tLJ`ţQ?@.ѻ$lgM>K(xisGG[dq߇+n<w?}3m(SĉNpP9V7v8|cp8~ \3<>{PQC8 }!lY6 `hxՕKҪgrӫ_`ezO(u0 }y^9byWn-Yna2|'p:7/7_~'~P,HN Q}q{vIiXa)=6QƤY ZX.=fcυoS+ՈaH!(`pL]ObrX>+GUAK ,k˜ALB.SbA EduYdCoNH)j ^ׄczRY<@uEkxFdʃvAYqY %OC ªͯc<D3pGWק+Uho=s0梘ei`S_JF6o_,Dyxܚ"OUm{S.|)`-܅??F43]LoRw7Z"o^Bg{&u`q|?֠et{9vMlܴ~ pT$;iE\xqݹ@֎/|'^@[143y5& 0Vlg oƣI)F%\R!0&D"R)ƻұ&2f!e7魨F(:J&8YSHRi,w|ȣw;bLXQpiMolaa߿0ښ2""D( c<^~,چBxi{cpF(Vq;r" "00ZZZRi)Xie7W-8ʑWCB'O[MwTsqU (mQ G^~\k0}x[aė.(8xcR׿5 eBM   W$(zK43+<wa{;;^^B1ξZƧq;mzzX0x"5}NltI@=B]/UXP2ZmL L5Շ txAi0kGlg<>{( 2 pj' BY/ņؼAPi/`Sa9Nґxi{C+/.={Ŋډ@3),ڇ k$ SҵDD@`R|3קMi~*KP(1::Oy'{;>[Nܝgb׽wć>~)RjD1. #4O|D|nZ<!bfǫ=K[9uw|_i̲⫿Eo]|6C`}k~[1?P#5-V 5F9~C~/axtCN6<< .;qqG?b9@2z{f-]Xdz+3IE*Qn׍So(6D>dGI9V# IDATTDG,>v )_ajAOB`*M7PaH {6.z_ lpn5i` Iޝ!d+&TVe:R*WD^M%[0wm0o*axd֯>G7R!("l)gN=[{2КN0apE8% mlwӣ4b,ݱuQ's3=2u-#0‘/9_F^9SdNf,f6=qQ^s,pX{?l]CT7k#936617iUdxsQ5 u9w2l 0䗽gk_m"2v#B}(V Z9K#[8OzBcA>(V=4j(@0f(A=g3``i Bh3K4]=-޾Ǚ{TS[j>=cj;S##m!+ m][&U /X9Ml5@wbDqg;h̸ndͅQqjJ>?̌'nO%h$8Zήi F :5O6YDﵶ6 W7VPH2]RZSapEQM5;y ٭7(]SٞڴbyF;PUsW3l&LoT\?v M΍:B%i|=5vNPIubԕ^a&%B9\ɓ'h.Jai?4!QKP9'kr.s9;K 7#'hS͚"sÅ[ґ:OJqPu31Q/IՍی$]̡:T.^QÀr%!Ć;#Roi`!%Du*9E@ܯEsbݐ>hJ8.([Pu"B_ANdwiwϺ~@W(q (G7TᇅqLqvfv 5l\6%3!DlN&X"1UR9=B֙45ӭJy]Ok7XJB;8+`H].#'נX*j5Ln &KRֆȒȧ;Z<4>GlD%NvBRLY9#fH?t]ap}n#-vzyL{3~zx[?}:k_Ngk~F}VQX25!o%YrrГeC1I`rZL쇙j̅ˬؐ#YR]f>D&H dƌ(H|F"@T~.=wt^Э8Gۗ7w0.|<ȧ/з$P&WMA)O< 2 g;+LqnW =cEa3 re)`*_*ԄBI7GD*@xi9veq(DtQ9*;]ddv$9sF)s<`[CNZe!SpD>[rT3KKq:kxDV! fba̘a%#u_szH..qnvL Jj5ޯPPiG"s#iJ,OL4}rZ%0~x#{PR NK]ݦEXmn]mK-M ;+s~nF+ZNH P u RMͮc!Ty.dɬo~7PPZUT?Aga_C }C1ֿ$u? * 4*D588KZu#P H} u"d$Քq\5*3vr3P( Cү`<2 ѬIȜ%t$EP;8#1î[L م'2e abݾbߎTDg-א5 E2EgBTWh.0(Fk*ɔT_!Mڀu7L)l+7BԞzT#?/1}Ξ-m94,Đ-s%3'F%FlAL}d"3ɖT1ޫ!Ҭmg?G s A7e7׽ny.jS(gĭ AR?sFZ~l y'aU/S9saSQ,I 0B6Fy*e@E5B!UF9/6'\#!*;y} oW(!RVCQPҹfb!PIRUν]›1zH5+ O }юB@6N*3*І)@GgNEYpd\LN_qh`ILDCRXԅeÁWRaRXw&,\%E "{> ֒[l΋`sZwjc<.~XpV-پzlX[2=˫@)HU8 d^pnTt&H C5B{`%;;BqvՖs{|zmwJ6W-G"5@*rz6 0vhi=xHhyj \留J+B9U#Wp2^}02(m~r~~w21Hv[$㿈w?_幸kR u ڿ\r =sY>p-?E_qӛ~9H,zo1: 䁘jM㔒gwO~]l} N9 &|ߧ`xQP ,[q3p/GSd~Ec#h;PQK"+x|ѯ9o jzYйKz(C"\R澻6܍Mc벌B]R:pBQK%х+I,[.@J+Դd*BT`VfwV]lϭwP&Bf"-D$%)A@Wuޯ8[u|'Ù'~vDb܉=78kbj_x?@}lbMk燦ET^I,PfN$v_|vCxAS?OX/Hq4N{ыށ矶];>/aǡ07k7=v{)hh$ A8=b40=XIKgہ{ӏ${ygc+0;f (ЭqݰoG̎Ɯ0~〓c_\o.@MAuZ{OT{VȅoG{:A;D-k d#Ԙ|OVN{n:s?)Ta%)13c/睌{{lL3ŏ~{!Fڱ8`p:bspcjc6i}Gxqo_wW|26U`3]/Ux^/@e }KADh}x^Gb88N>p]Ш's.W'anŒi߉{3>{Py]ŷ^{܎t4xʥ:3 `,[άN[]W= YE8zE'\|Xn7gۄ ~~.Y jz2ϟ| nʥ㿄9 f-;O_ecIs%fFڙQnM&c?_3 fj bw7_&(eti'an d~v;`{cvd/}kk/DbtZ;hM&贌M_}ۯx~{5" 6 +mݶ} ~}/_] M458_C}-G-;/ >-ע={˟'WtN;xКiœ?l,|絛aUOũG&xsO27ٻ]W텑#y=m3lVx'\}֯[~^2lYlt-ўxWujW} /87bv"@/8O/ >o17њxas8_ٿ5>|◰=07W*807?]͸?'k3tRנs#dUZ :c9CZxmt.t[6Y dZ Dfg2b=|ι 5~u5^sq׃W]k߈Kp=T?f'\hF#k+3[ Xd9YR2+Mw:a-ѷAXt`l|3*b4FhESs:f3ONM+.ƫ}#>cYJspW߆c}R|gh݀) }k/b3^?q &q嵿G9<ŭ_6M>sEpm⻿=8OatL||3>܄oaO=i[Ϟ֌Oqk.xͧߊdF'qS_oa$=5jQK;Gۘ[sNĆ5▛o/|W5W +.z[Fcp=ō7܄}w:[4߇tEJ0hkqzeBC\G_!jD=h^,q ws$523D2`9$jk&Kk.f1iŕցz <G3Cr)L.K$I$Z# ާPT,Zc"0&11<T5E)z&fZ ik߰34{ `v<35U62y5~w8ӧWy[ p5&ʟH@ ỰbjLt5Ојݜ֗EDִQ[#D1a{oXb>/2#z2隌 c $-RZqXQ]a5 _Nq_zBdRѧoޅ͛paп\K=cE>Z` kuƫL>̌uКJd;Lab=uͅ1-]&m C-2C87Ty7hmN~e6"j (A*8 j+ĥ=y98SQWQbCV9Env#%G] 2#lay]\ 5N/:e: p܁o3w>G\{b{"|F}&E (gp] G 9S[пK/yFIE D ݮj q#BTWb nQ"1DK?'ޜ%9by7b(کQٟffgi,yj _b뤳c7$haٽ+ICUXKMa3 f9tH_ճ=jqG_sD+N9Xn k7>C; bu`x8?q‹߈Iuvkpڻ؄2*"3Js$jbf ?sȫWB睊(&|Ɠw} fLNO/ 7rg.M?z~ :s@^U{?~yMƚ}_}-Z?{ã?'7@(:937.Ӱ~Z}8WoFgj 8M5gspwova|SQg>e B){+NKf$mFEˮ3|s Z36?h0x맰dW0~׫|e"ńnGr\K119x>G>"uϝHZO]w+xx;}>AACqރa ,GuT` L :3p3v+њHPdf6Ϝ*pUU_Ï>kLL!c|2u͜xq +щn>xw'n^MlF__>SpƠbLMK~u:8'wd 4 bc »>E.FREn\w͎ccᗟ``O/T B, 90Ic6!;sΉl:r6lѲ:1BKOj Z"9cO1o9d!:cw#9Iv?0(PўM05܂ ꈢgfj[afbccjMh1Z0GT'tf c0F+A/k`fZSa&fgZHZ5-4Z# j`rn3ꃑt4K1ݚ[ꄸPPkaL1|n}02הB>jazm c5x:F_Slsc ! wlM}j[,ZS hױy4fFڨEXZ#H [ѷ(Fan2hY$Q (FdNƐքx qB+̎w"]#$sҿ 05X[k ,a`Y Q#0f7wTo ny:Ffjh44d1 jyx m4Msj`vj9HڌM4L̎"ny-Kkoꈣ΢_LKk\Ħloq}pQuE LwEuB15`yq-910;161%1PHaf5lGv njemMRQζG((sǜMs(WehNb$LLvk+dIHn~&Ud{g#PUdKcL3kFl&D5bch c036$-xk $TCQWP2Fֺ$ڰC1M_A\`pJf6O@-Slu댨B7 v_ӳC3V<11N[:+Y]PSIJq泛C #PS# Q]aOt`F0,>Ƒ)\(bڀqL~jDd_XyVXZBߒSc*bq]8FT)D Tg:ڛA):݆a%-ÆԚ k̵16>lt2>N0 }W3TFߢd4M>Yd8Ʀf (LnN֌ bFJ)}Z#PQS% Sw [Sq쟸 kOb|j*1Τbg*~O ˶hs^Nwkhо1\)LFTF&'O<T`=3Ӗ_"F6rF-;~ƙ9mƙ8[­X^-GCP'~\D@\#sPk 4;#eyzq:Qz_Z[̪6E;/ͅqDHE4-w jg4U3)GPtp!a @hؙ5w a֛*54"W"qݬ ED sTL4^K q)vqn_IwsO!nFi+3>>! QjU E ] ;*+tfL\{FHkP < DFI E5>Q2dvM\lN0,j($k5sFkO|NT'4̺2i)PL{1ϼ;9`j} Q3uj S&khRlPA3}bBCqܷԠYZ x nϱAf*dZ[y>S("M 0oBARv FCM&$# Ǟ:)hgQ` anr&Tj@8tk}&fwF=;S*g3ܱ%Tqzډ"o4XXP1["i>ӒߎeK2ByymIΠ3^FSp g͚]jQz˜/^ Sƽ 7ӺR8*&syz4 PO!L1m"IwD2DJ'7{⢐1euE'{ 9ej ?"DyzT\CN(s~uF8JdXRJ7ԫ=]T_Lhjs1 lDۑ;dvl]oGyP@A#$Q/ʶeeI/E8;V:Y=dD$+q*gJD(w3_sljc 6K2W@9-_#>Юf{ΧLl.& [!U4Fh. tBQySn"r/;Q5LڧaI~cAXu>SGK/~LzIa3hq\d5y'F˞`l<}ݦAZBw=BV x)H:-C:Mƞ#6g\u.|-r~bft&Q }2,DZ 5tݥ/2ǍSrN (%؟/)EPʹ6PAsNt5.p> oҏCg1z&)b!rǸ}–ז:sfy\yꃦ}#%۩}+x&;Mj%U@,jwI2)#]OHA؉/tHάi"65&k &Y4Cf̪Ao(MvNr$@J\cDzQxtrArYN ekTr3<>Xj#<6X$*C.;Ր [̖>}g LT ' >Tw8`Fg>[bc3GdM.,b@\FNR;|iN ierfO͎8>?c_"?;(Ǧ˺4U{LWLBP̲q +XjYYskEwa`:в"wt`/!xOʖ$f hJS(7pqR-,BI=aoB}Hhz!*$تh< aIHBaIX>mt r.&XTXN6,oP>`*fEWlK&`%+WΗPZ !<jG$JRK_ߘXQA|nSlciC+ IDATCD$9gdnV!8[bl}j:nB3% >(;2#=WRz"'3^ڲ c0M gT>jgh{9пsXYd|$fK= QE1һe:\NJ`jb-> ɾHb4FHіWa}/=l!}ǥyWH@=_^!_.W19lѕ-.k3>qfWA&5 9סT`| ItfA=U? 8DMC o+j_a|{iVkk]-Je AdT3f~:>POh`îvP-?[^D7Ro^쑣gVBva;hBH#|xQIR䌒,\2]ITdվϡ $ xvFvYLgo ǀ !Uta݈ 3CY87쇘BQU#|VC`C56gK^vzȁ *u+ h#h(rl簳'(g")&}{c̭ܰ;x~zt@m]((svnHyYk(f6wIBA }N@m6Ft ;aͽ.A$Hϵ@adQA'={\0z!1ɶ}`'4` \\BS<ݣ 3,݌Gf0pLDzX>$<>ž(HH8!IiLi1vwDC@u"+ZT80+"`ȉH=BJOk9T4$Ng,s} `+f4,@WY4,\G.`L-eVPMdeeD" 7rb;z J[ 5w4H%ݡdh89-NG)$],$:ٵ iQnbMnb.CoJDd7ňH ѫS|*W4``8kU9:s%5,v/)[l뀡  ;AxFqgOr>[HD8A'Q@~*r2&<*yX6Ccg.̘ L4@Seh Yix+oܾcc`,ґ%sB@ Ҹ#O]\e-&yˍ;̆d)\U R!XM>&oa)7%>(+)uR 4@.lId@IT2DffW[ͣ\3RT0o`%2dK$B {=rqG${U~A4B z\Rod5 K\L) ؓ-|OM蜰+B!ⳖHP4'Htz;j@+H9pZi[qqY`ܔem|!8oȗF \ e! W[h=pr drJ2)#BЊFIPdv>j89JJ?(MWzԪ [ύ`YHܹsgFh[u` bqjR/٭5Lf>g` dܦޡevd"k<fPJ?p*͔fG*[ Ȧ~}NѩyԆB:pS(UQ eRC@Epmq ѵbFEG~){b)(;j nJZpe3k DD=%P+ b:*U9rjNvM­CÀ|@ڛ`㗛i $mY͘~!Cj9SXBjmƓ)QADvՐ#(Þbm[lb!C1)lNKeg @&RB~1,4ZϚ,Ɛ5FV#B PPq:oɨH,p i 3O3v T֙v+'! :Y 傞칗t DoEi8Z86dE0ݐ*Eq &BbEB6SQnFz{P8Py@~1>ع@Bs #8[mA-8ᚙ/) = a]&YQq0%J'Bf Zv>öZY[D,]5aklQ>{a+1l2\eT'Yt[G! 8)?z 5RGHиdf~Jd&DKaBUžIѷmS=C<2狽2kBVB×V2>AbV"Z .q)!#HR B X`S* ,4m3q.kpdjxv@a~ b]IǽrL> g/lfT.w$ Y y9g0ZT-d?c*J0yD9.`8ƾT8Dfأ[Q:< #+FQ%Wem~ e>"˫? 鳅@ѡ`!·"*B c\Fƙ3߾8}*ֱ_MkbK%!4S֝]{ qJr}3VNl l"/Q/}Q$R=1ro_Br+vd9 EF"pdcǹEv+_֏|f&vW&rQJ#e/t0lX#Z) x!H*:礓܄5 ?.ta+ųSBŶ;Z c<qR0JPrD%W8pꞭ HYLĂܽ⚢E,DrRqˏ]ȯ0 r3,g<Ͼʽ B׀͐FW}L\PHp$xFh /*IŠ+f) \>iԈ\VTANΟ݆z ^1I@mH⺺ eijZniGsџpqɒ) ًi;PuG>*jb+arS}t#ԨȾ,4Ugg5QpJ2H0zH/Y}JujEu@ʁ:6Džb$6.]B`q1`.la#G[sAIzfY*״ɖ}Ye0TY(g7QTt7 )$sg%.OőخPdfϜDT#Ho}x3E #S 'wÅ(W΍GӺ&G(qB8$왛S!_ߔjbiHeCL{h cPӤ|!ȣƭ u#-i?$ࢀg.8Q˜/[ڏIΰU$yCXkQ޻:E3_ bwبu9%!J>KH*RgD?,l$ : T@2Zqݼh."gn}\@ϡm!Y=Ut Hg#y64F3An؊FESq\t/{)V# dAsaƳ~;`QUdtIG Yt渓k R$OT4ĞL3i#̽!FL`d3BXLŧCLX6>Rt]RK5K"PUP?t*؅y{ EJpGDuƠ=fnٿ`xaFwnja0ˈ["#ZοbFVY8Bm՟EX<@[ F+eWF6(3w+b:?(9QUA.#|(LT+@/\ԢZ'uHY}5oDq~] 'nEs[g{Ys7'FQF~\4 -49$*y-*PhEym8SR P/ªRQxɐfl:*x4*󄊽^2KmPUa] V_[EӁh'̪7\'3tDO ^(2צ/8{nX4,@Ҝ)w6tz;$.^%蝸.5VSCDr `e)s@w$ݨ4wѦme)5"P~z?T+n]^ה' *t0U\s3i}aEyu=rșp߰&g,lU)kRxy$|ٙ#kS \V;F"{o@ ~"vz7NE:J΋fdP{)ucnfi ɳL;wd2GN"vQtط]p.8td IDAT B P; גP,iVPq"rbcQu`:#70 wt7ꢼ-mHYf#7x.B#=9Y#MȩnObM2sQSNg1@DXϰQNQ>ӉOE7lꭥ|ς_{7k7S^$ġiNea ɣHRm!(>&>ްwfUu(2傖Y\fRGE1[{z|*RF^hMRFRP7ޛצ>}1|.+#tX_l>Dc2=ڕM;h4 }OY^ I+៛1WYk 56:mFOZmJJ"-k MޔCeR;0,yLv:kc;e<Nb~}-/j"3?wb.zBKԨm}(yigZCCu04'-ilCu^HL\0gL f4 yߊ w[i}74Ǯ¡oE3!zHpf"WYʀ!I?fhzCa$leš56IE~!ɐJ?<5CPv :mgWѴ*Ϸ SS"ќ%U;%~s,[VU 肬wZ|#/]m矙Yt׎Yn1,"N=<ʵ|?ȳU@R [|Nw5O.څ2k *޵0Z|UYx݈$ @Ii|J4%^^:{$&Q_E&拫:Qh,@4+#Z)a73Dm#( f!1to敫~C c9M<ݷ썌$1Q H ܷc>'Mg-$b&`Nx\p6Q8s)S̢B7,7QgPGyQHJ^(4,|#_N3dt"h++T+˦xCv5'Ef'Z9Ab/"bXhu^ͺdG~0M 5g|,&#)Utv 5,FI2Ǥ<L$Yx^Μ 4JdP;Vg͔w\;q-E8wy*AW)e 9{\FH/5cMe-osYQӢy Jego Y92ҴT6/ܔY,ݍuQ eY*֔Ll ^ܬq&Fߎl@|8W+Pxu|.*ɥhXW.U-1P̆pKsޙ]rS+s;&sb1c? Q-<*J}9Ē5] ̦%[VqʝVY$*`bg)r^Y#8wx&)XROt=qI .0}4IXj^o2i Q̩6rQc)Nǔ.IVXMEL5KHG(4LQ47|ʘn+me7@)*<o,6U>FHM;|e7Oeo*kvY,jHy[!!ح0\utm{䖷xsUB^d]4*|RרƦ"d4/Jqz9)?^;9}kBt*  zE]-]/r 鳔i!Iyj1ĉփ5/"!{"c yZDzJ~k?姿VE>}$o޼JA||Y޾}+oAkF ! hd F ! hd F ! hd F ! hd F ! hd F ! hd F ! hd F 3]" A42A AAFFUy F2A AA#CA42A AA#CA42A AA#CA42A AAA42A AAA42A AAA42A AAA42A AAൈǏݻwAwǏ̇#AwŇ$]IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/magnifier_bar/000077500000000000000000000000001314736454600233555ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/magnifier_bar/ico_zoom_in.png000066400000000000000000000013251314736454600263700ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<gIDAT8˥Kq zäqV(uD).Vۚ:nWS$#aKkz+mmL36v„"=>>}1: /8y>o??#TX|M-Rv,n1O1Eirf&F@lN.`9QXһ pg\{?~+E4  @[ˤ:!9%)ʅx.D F8]ND3deH']\ӍNtqP|PSt jʙЈ2A>"eƍ헮?F>3eh=,RA$!d8 «Y97'@77DQf5Ž֧@x&_mjn-̶/=e,ZbT\y—Gu+{!V%E[&ת+C0o2A Q{`:Nپ:ZpۅHy ;{`dSTyWF CT>;/좓IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/magnifier_bar/ico_zoom_out.png000066400000000000000000000013041314736454600265660ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<VIDAT8˥kRQ`A nozѨK?!eMmm9%Mٲñ&5d^lxusnSA/ ** խ(6ZDsŵ>9Gׁ 5lcf l"|n^'iṞ![>DQDί'r::;Hjle pg,.\ ZqBx5K$b+M,*$GmiQWI2V&ahQQU8Qt)!?D~s Ht+TZ4 Y h,Y9t)>;#(D{k |sG,â\6o7`֧GKD6,8|w#ûUK3A.߮X  4w6p^8{x}u6xYWí\O"bKe1!ޱc[ 'zf>]"-Sl܃<^ = ɲ 0ۍan2^=D6ܴ`cw)䫠iJ|rRIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/marking_bar/000077500000000000000000000000001314736454600230445ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/marking_bar/ico_elipse_marcado.png000066400000000000000000000013711314736454600273550ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڜSKSq{6nj9]揕A%$$a zA'{"Lt`i&iv7wslWtK>~9%'M2(r} bNQ9$`,np?p-+kӷ^;csfEgw\GeJ*)sSm`kfXU{=5{ȗjioZGʲB1!b$:ʲ =|LdY> zt!SEao" B B^Pp[tV0{Y x ED_^ DžF.+[΋RI&"rCw_#_lB2#nLJό0D =ML=%Lʦvr|VE0qc;)4RE! #db:^o2&@g8qԺ+]mwv9/[zU_cZ5Ą/7Z:u.[s0g0j鍳֛?B68$$ n(a];Its~\Ɖr8D+wA~.FctIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/marking_bar/ico_flecha_marcado.png000066400000000000000000000011611314736454600273130ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  tIME  v*@IDAT8˝Kq_;6kX" .KI*vU$StS7"tDHDuXJH n~|tz7I\x{$M W mq`CL^e9ꑄg)qc^V|`=RF:0?̟p;emtst7x "ֱԪoa:+p܆~~ZJIuhwW{[>GdLqz4[mcKIXkNy@[$=fրSY vL~9PH9IzV-Ɂ} K:'0AӖ&ﬕ+鮤vĉn4oo34D񚣾pJk_xw<ߍP̌|)2_H8IK} itɴ܃ D @+gl޻T-JTO\>,_FOcFLC6+IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/marking_bar/ico_free_form.png000066400000000000000000000011061314736454600263460ustar00rootroot00000000000000PNG  IHDRagAMA a pHYs(JtEXtSoftwarePaint.NET v3.5.11GB7IDAT8O+qw KHʵ"Ilh6-TQNbN;:f絽dqy}  kKWq..~-(X"f\BAZW)i$5iåτlz) Uzx5:Q&eoe诟tsx3*v3&':u3 66, EEGgW@u\<ɴGS&۽h06+Y#GVkr;'3G]C+{%2cuu\IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/marking_bar/ico_poligono_marcado.png000066400000000000000000000012031314736454600277140ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<%IDATxb?%Ex;+++~ &FFF?@ Nx *6 0m B 25CXJ ]3;+c 5@|INhF~~@*P< WA.`Ė9_51322qs2i*</{n]ǟ.>;wϝ3Ț^*:SeM> o|{˯Osv߾ ~b' PkJI|~;R^U+o:e ]| @X@&\~}hb_]y_v⺒b>_{d4/?x3=pc]SP PV9>^EY_Pgm޹ɂ%, (5 g?>~41EL9] i#B`̰ 7IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/marking_bar/ico_punto_marcado.png000066400000000000000000000004411314736454600272360ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8= Aq:dR2_ %eH2- \ORHn:ހM6Y?u fTiJAQ(jInœBK(Us0ڿgifH@jsebb wLs uDBve =${ P޸/G _BIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/marking_bar/ico_rectangulo_marcado.png000066400000000000000000000010011314736454600302250ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤK@.uQQ*読E8:&]Avp .:8 :֚1Mr?|4!V@C.{{wJ':C+Gq  -8g d77ZO'\/ե@ ɵtrG@ƞܼ-iM$\θ`qd,rP&@qޠ0ˡ _?p_w9 fGWOӦu,%*.+@fԪN9BpU}} 2οi؞RR@._*eq"qV[͌ E`_ag5u϶Gw秘whEdz`ptE$Zrǡ6՛#/ qIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/000077500000000000000000000000001314736454600227275ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_abrir.png000066400000000000000000000012151314736454600253650ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥KQcY"ZH1;q-rQ@U}lJaD(ʌ-$aH#mr뽧ŌSA.9\ξ[ANN-'?.ð;Ì}FE@*/u]x <($r Cj i"RJ ZN@Ruv# A#be@ lY( z!staGeK3ҐRio*22>XssU- j2%NE@ch4w{Lߛ]GN#Y0qXN;%^u]ynֽY~K#3)$1^N2w[~ 8X60.n t2mo}ۜ-40(,#)XIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_calibrar_imagen.png000066400000000000000000000007561314736454600273760ustar00rootroot00000000000000PNG  IHDRagAMA atEXtSoftwareAdobe ImageReadyqe<IDAT8Ocd,?O7EO`}m{aH&dE#Xٶfb `grH1n.jd5sQ fJ\ O 'dpw"әnglb d_Ƽhi0҅+1dܓj0hÁD_Wzj'xt)՞/vƓ m`]g[91 6e=g l͕e`î/- hؕE_ip/, a¶R&2yÞq! /1{a!(Hbf2B12O\f"r0w: ~hjdlNE# mpGrdz!"4 ojϝ;!DdW! lzD5G~/(@> JXa`f`H*e`@|+ _F8^0Jơ YIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_configuracion.png000066400000000000000000000012731314736454600271200ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<]IDATxbd455̀L ջԳ`d""" `߿`1F!^^0MM-2%Xn0\߿Z9ׯ_o655}&$$$ 6a033c6IHL0aˉ'.((( ta_3)((0OߜMLL155`R>{O>3<hF`2 a3ôiӊ͛sc޽{ 9   r`hh(}]]]>|/kwt'$$6x * ] W,84srrggppp\l#7i@`Zutt|Pl#.iok-,}VV4$$$B\f>}念))yyyUUU111j@Ks La  ЀpGG%7n^{=Ef\PS8ǃNYUbS [e4H18Ƙ=91)F]R߯{t8oH"ۭGPeS#VɟjxxmP<j Be/lpyQ muމv(Ѓ\NmWPk2"w`#a8>IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_dicom_dir.png000066400000000000000000000011661314736454600262240ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATx|kQgn*CK4ЃP/BlW0N r #feYpv{2 p8t*mr5]P~{x/U`R<~0VX0Luv>dsi<!`~Kx}s~6i\|x kkO@W_it:x/76W@/l^j5ŚMh4 A*8O^$:JFAQr\ Kh4z 25C>'/sCjiFI=W9HGט0n­n 14-0]íW#2<NrG#F`bbQ bA b^ b fz?MG?{B101HjfNz0]IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_editor.png000066400000000000000000000014011314736454600255510ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڔSKHTQcƙ 5 HQF FqD먖.JKj6Em AGI b1xu{;1]s}? 99ISf-GÈD}=deٌw.:Dr1V4Ҵ-S|xyym-}>"#e{ 6UϢ ]ͮ-@px1zdX4 eg뫋xB?(p8\/Tc-qʘcxMkaa{v|5 G]CKK! NqwǶLѼ^üMo5gYӎ4'ֆ78T֎JNb2XЙU-FPDh>5G*#8(<%_T[$!##fV$ֻgfin{_зa(<%}AqMjdY6֩H$UP}8'P.q WčUYf!''8kAu:=*{ & &2q #P.qAqv"s6 Vq$OJ{BIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_eliminar_todo.png000066400000000000000000000013141314736454600271130ustar00rootroot00000000000000PNG  IHDRagAMA7 pHYsodtEXtSoftwarePaint.NET v3.5.100rHIDAT8O[OQ8V H[+{ H齶F}?QۙY)L >:I&Z>{׃l^Og-ķą8_+@J&%us';|T1!ӒRYt pu@3LSYI.>}~=i{ׂd@b-K^Y?<~oNP_2&J ta6C y}[XmSi29tB * dsϛI$Џnq4(֏%82 K@ H0[QD_BG˫ 4 @l:Q5ǤDtPphvԄyv4cV&ZK+ܽvD=>"Q 6uPy0  iArzxE/Х]o}|6vE(tB/HS4?]ѠO`pk:r.a4e=S5 dpYKS{WR\t M8Y\F8'Q4YKS?ЅͧIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_eliminar_widget.png000066400000000000000000000012171314736454600274330ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<!IDAT8˕NQɉϠVȑB[( &^M6M| Dްҙv:官J-%Nd LB>w_3:*WrlNC/-좕B'{ u_a46ҽbߡE%D47;ٻƩ;8ˣ}>6[ӕS@*Z Qk>~͵hB\9uxZvYb J Cيٽ?BYvn&kft$,d9Zap\^ Y7 QJF 9=Q4 ؜Io SBpsI) Fv(@yՎވc\@ %% Z2h'@d(<|áaJuM@O⤁LGjd!X8Af 5J i K->w62ƾWH}:mP]XB0QX=ib_g=!Ftt…clrIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_exportar.png000066400000000000000000000012201314736454600261260ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<"IDAT8ˍ=ZA߹*Ic4)$A, kf!Xw&&**qר\?W3G909`y()LQܑn' jZ6ncATUEP/OJ%b18N8DQ P5GnGXD B(_-W|@لjE\bt<(~|}ܝBXqVx!! R<eɡf÷.0f9.D.d,]]@r4v邛S=P4 zO48J ܢZJ!'rrg}鬪;2QTh4Ղs^WV# K@NSj3^f<H5sƎ *'麾1]PsVY9]<@IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_filtrado.png000066400000000000000000000011171314736454600260730ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤT=oP~v[!Cٲd͔.H@BBxBRtd@Q=B'ĄT0JB+a;iXOG[,?bnwP$J !|>OBajq1?[֧kN>N c# ,#YVȀhf, C8) # "2 S:KbNO_ % {J>jCiT*Q\&)J'"vZQ7Ld BCeY/A*&j~.$$ޢGq:qk*^/ 4Iy@=Fqh|wK-x\l܃^GɄ?Vp-"yS>K$Lbms`h^ªh~^I<'o#5%Rellb*:;hiYGH~j!^gӴ3QX<[V}o? ݋j*IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_guardar.png000066400000000000000000000011541314736454600257150ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT=]Uе;C`DD Ve h*B"6VV"c vba"NB ޙ{~jo|x&,K*o=]߻_v<}tu.R[Ҝ9Xsy|o~ |u_Bk6Yf7bQڴ^Й<T::֊Ǧ7Uݕuwٞ ,6}4'kٞF%*T⏿NHZ'}&NGۯ_鋾ﴌ*UD:tHُZkƦ/F%8A#хJpFQ$Q5:H0' QEDDK$e]t4IJDUS*!BxKOƈ5Hup9Q pҫj'ɬ4nx93W3j7˜oO$*yHI$H=m?!|nmIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_help.png000066400000000000000000000013761314736454600252260ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤSOA~.m+h`1h4Jb#Gśw'Gc%1$ EQQmwtggZ*'N}}߾} $@ 7%qJ1 K@=֠ ={;in|^+T5e/}6dZS@5r(<h,lcP  Ow&DnXU}z&`$ k9YvoaPwFQ$zO f&ƎLqL&3<%vT۵,- u3~Ϸizű' E]RR)DI`qhڳ_ C@u0v@/SFH- v趍UƩ`1F.XB QGw y۶L"jxOjう8̮6Om*jdρ`M=?욟!+f.ౕ4(x j}\| ckeuqL2Gg`xOR42wSlұؙ#D&wx.{-]=Mj0԰Gܶ6r3iۜ;9VX%M tP{U Wۖw}ȧ@~lRGbrqMBB W V? ,& IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_importar.png000066400000000000000000000014401314736454600261230ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˥S_HSQ{kst+Rp(?0ꡠ-(z^"꥚`=hO0B(jl,ԩsss۝\Qz+|}0]?KԽrVuZU*(f5McEFyHӛ, E1 _cP\ײc"\z#]]]v˅T*UlllӁ+DOi0ưrY,ː$3u=jD: (p:FBp8HrFN,;.ĵ5466Z9Y g[a/H~\%'& nߊ"Z[[1MEE f5_1dUUA䀹xrvLD@E6U7&dyPUK׵]2P*?W@¬aG! *P!\CnX.VpGZ1[)8~Gb6PyT Rj6$ޝwqdhk3r ~8ĉ?ZC{~ĠϏd|uM&I-..2^ {kĬyPvg)MlLF1o(W.wv?ěE ^) 4]{DJFg3:ٿ>[n Ʌ'㉦:IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_impresora.png000066400000000000000000000013131314736454600262660ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<mIDATxڌRKka=LB äIM em\.\;ѥ;E ]]VmA)_BKU4LxG*Zpnwϙss?q;I!n1'۶KsEq_F'wbkaɶ, A5njU3R$츉E!  B$ jבz^޾}X@qmPE_%(2&˹㨪bW.CP?a ++(gqq>?dP(6YM\ 1 וߏl6;<_*v*4M-zp8}D{hH[[4sY@O$ZR$08[ G&~add4\i0H ١zضBvUs$۳qRI*dU#`L3zK sY bnUW8||\G2y͙1M`PsE$yH+Ҹh4䃃Gw5'v i4MKB݆eSJtO9iԄ ʆn#2u` *_ R4+*BuϘMYU׷oAaLG۽kE|"2w9m[yGwSB3{er~㫹<{ @% @IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_open_dir.png000066400000000000000000000012341314736454600260660ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<.IDAT͋Masu;D&n# 1FI $SJ) NJbAԐw%/yy~)E6|>F0Myu}e c~ɐX .6c@d`ߗ~}t@Th\::y p9$gU'3_&Z0HTLi݉A&`jrH.5|K ?t+whR ,ŎC ENL ұŎD: „s!\leNnz rDm!r!T' #7lVVp#" \HoVpe"6mn;_޳RT@. ȖQ2ed+\{QeuG7.pt/܊3)6Q+vo'|\҆wn%2f;;ZD!'ߜ߱Cj} 1"o"jAn$/cmKfGOIq`PƀΌ s-MIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_open_disc.png000066400000000000000000000015621314736454600262360ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.5.100rIDAT8O]HSaO2ʏe%@*9LZ¢Y*^, INDKJ2IJn2ʩ0/L>=~m7wٜIL7+z@z?rCQ{W*{M}+K+jՌ~w''&\}2sB}?X֯fƊمy,nβuuuMd0N=;aW 4,6`^VV`K S_R7%A0D @0fGw;tN[[.-IMǣfS1bQT$b18=Qr$m H$=3mQo/d*V癙[Zn544<&}IGhoRTը׷ B0ױ74ij0yyl6O{>0ZLPB}PqKS,Tw{^"3igƿib7oyxDi[7Xc>f$)s ԋd.  G@ P& r㫨${+TK7{ 8͑z^hjC M1cIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_open_file.png000066400000000000000000000013511314736454600262270ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<{IDAT8ˍOHTQFFR1-T\Y-څPТrQ.MBEwᢍծEI-(V.$Q38{3B&+8?s>LV~vֶ|5Ki~XeBS OL_6_9GoWX&%*JNh0Q t8WTBZ 5*LOq1;SHQ]Y 0 WI'G6tqHa7-@^ೞɪC+eΟT$~ "D:!*4 b{7"D̽|YX$SPhbĢXضK wSnbn|H!%Wʾv"n g`jR)h܏fy֍(Tn?x^ޝ豴a`'ȤqSAK)bW-CTddYin-6" Ic )r4׷\\[$QhcY3? "pOgC?ܵBxdh%+uT":a">LW/'^򞊪ֆi8#M` \v)^tLHIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_pantalla_completa.png000066400000000000000000000011441314736454600277470ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<IDAT8˝kTA]Լ`>4],EHQh i" &*,`iG3A%彙ݱxC]fw~33̌zn!Bxޣm]"֓.3886A ̬}ƌlnmq+EWϓeo\p4]TC4 X04 KGO̵ο,.W1޶;d"]wWEuVei-Cp-^}1[|nm{hg?67[1 ila}>:2΍鏍uivC;?Ҥ[6OD:ƹM/&}8\vN^|b:bq.k-RX$bq\7My| CgsQAT}%E$;z+ &M&j#EdLE)E&ԱjcDKCGW:.0a@f UM&kHТb(\ޞNOڷ*kNT x/?ݍp,2JQ Pwwrnܢ AQJdYZ?5I83IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_reset.png000066400000000000000000000012551314736454600254140ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<?IDAT8ˍKa3bvВBB9d-Od6_t䡁eŚܡIͱaIF%he a#; ]8axo<+ ߺqeZ!;"4U/(/Dv]toUq|͸U!\vtPָ#i)8:S.άj[/Uv loL3 k&~j~MLGJf2Bʔ̘Zf=EfQd֟wLۅȌ#fd&ʝulՓ;xLH֌ ÉȠȠ~+:#hh#5=&N.ehiL(B:* ƑCw_3:*WrlNC/-좕B'{ u_a46ҽbߡE%D47;ٻƩ;8ˣ}>6[ӕS@*Z Qk>~͵hB\9uxZvYb J Cيٽ?BYvn&kft$,d9Zap\^ Y7 QJF 9=Q4 ؜Io SBpsI) Fv(@yՎވc\@ %% Z2h'@d(<|áaJuM@O⤁LGjd!X8Af 5J i K->w62ƾWH}:mP]XB0QX=ib_g=!Ftt…clrIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_send_to_pacs.png000066400000000000000000000013551314736454600267340ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwarePaint.NET v3.5.87;]IDAT8O]HSqW]uW]DaEW^HX7"QIJRRt9}aS*?q,?eA)IF,vvs#rOsp]ݜs}ejl GMswP\6%j\c{8/ aBH"ÜD`*P@-nw@M'vaQ3a6EY$XYˣ_{"'cx:}_}@(Y?G_Z" bFj=I@*I0q!ܠ0\\kly^PT>T>J\eB{Z5~LЍ+ir(e@ٖZ 0cаy6mKnA4 T`=IHa:҈2*6"qNnQ"Ipss0_@EY]~D.,c`(|]̠F`}ۈbr -CRDe5A#چ-py;8xgtayҞdU>a*r(Tg\9kU`V6EG4;d4ؿտ_3f\IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_support.png000066400000000000000000000016061314736454600260060ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<(IDATxLSKOQ>S;0ZZJ)ʣ1 USaƐb$4 qc4, ]@\6b-ZR-e{so|;^PN!PDI bo))PH"E6 _d_x ({Km;%Loq)O?hCUY9x-- #0`/6՛WnŰͯ"jyÇB1 y5k!=ԋ5p8{zz`0LTkkHcN1\krx( 0'AgZ mƚnnu ˆ^p)Y!K4911ljjj,0 Iu~}XS$ޝl6}a9Ԡ=%DPD4n7%IO}!I>%N* Ѓ^R=IFJe%%t8F9C5EzeKBB-` 6|&jPbI+Jx7/t6`=PZУ|L-\׏;+4Mh}G\^uuƱ1]&)[ZZ <+sG <:u>300p5m? J} @ 0h1v6zo~GX>0 &<8䘁l_ܿ_3~ ֌0BSsfi.~>_*?È_d@a @`dɠÐp'Wb @i4 99434W?P7`Nu-IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_icons/ico_user.png000066400000000000000000000013451314736454600252500ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<wIDAT8˥mHQ *ֶVj)_OХ9]m*Y떩e-h-QJiLF2LJE8\9r~s)k­PiP.I$"EwDtR][)t$ҐB 4BtTPMjq1s M*nFj 4#/8A>PSPΞ S}|뺆y=9{sܔ:`;3evq/# ;us fEf q<^ք(ss7(`%|< ǗiXD%/X`a6.05 V);nǁ dN>*^?aW+jza)Zq\M9=Y[ ZR (mDV2’Jb 26TD]HCpލ C<^28;+Cu f5 7n:eF`Q( >%C%s2٥hid3@ A+YaU,Z1<@UZ%ձc_9]f'ɳ;fMj_o$qp-7Z7ZIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_tabs/000077500000000000000000000000001314736454600225455ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/menu_tabs/ico_cerrar_tab_32.png000066400000000000000000000010401314736454600265100ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤS=OA}+`1z54HlcB,h P_0/Il,P TBC(ޞyofmۘÌ_B@qrYʦ'7uR Džo(”A'HrI f;,- %!)TddVC4MTe HnP(JJE ψ-`;U(dR6 ExkzR#(52}>^{=Ef\PS8ǃNYUbS [e4H18Ƙ=91)F]R߯{t8oH"ۭGPeS#VɟjxxmP<j Be/lpyQ muމv(Ѓ\NmWPk2"w`#a8>IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_tabs/ico_grid_2_col.png000066400000000000000000000013521314736454600261110ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.36%DIDAT8OMOQqu&]c.\[SLS @Q()RBTBa@:0)m]wirWɽs<眙śh<5`<7 |ÿl4=辌ybeyً@%tGRM6Dﱈ5.vda/r7Os&Bk;juǺ4,.U Xm[PWWH/όYxj}4v&ShM:X_6ʀVV򲧾/,k*ffYWй_+m9>IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_tabs/ico_grid_3_col.png000066400000000000000000000012121314736454600261050ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.36%IDAT8OMOQO.s.HLܸVƘhLaQB Li?`;( :t*TQL69N<7'EjY ,e9vgϳ[;3m^o>He a\P(U m/BdM֩K_O(i j:Y.F (.o) +YNԉcn 9u.u :u/dBK dy2[:Q;.X{[ cI]8S}QAsO G"J:A*P75ˁ$UldQLP'<{z 緋̬!Ú;^<7Q71^T`i雹|xZo<ץntt9C]ooB6;N|XqzzUh ##btU;}}+\A?w#TIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_tabs/ico_primer_plano_tab.png000066400000000000000000000007201314736454600274210ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<bIDAT!nQ{!M`IXBb HФIA۩$UtH9̝07( ~||& `rǤ 'yx8yur=;w:.fIP4F*|yCz43ݯE8;MP1^<B PB,ZRC*CwcaZL\L =Rf&Fv$Hh@$H D@ݝ.a{Ih@$<İq;ƺ,HH$VBc5:P MaZiԁ%A$=]"6Sla=bKzgr4n~]_~8[N]Te6NTpLllKh<_;IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/menu_tabs/ico_reagrupar.png000066400000000000000000000011311314736454600260710ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.36%IDAT8Ocd@L.'3Mcb- ÿ߬@¿WZ^bN&L>ת/1kd8Tvm/_wb23,]ƬY0E NzןK?gU^h_o}?GL ^@X{ϞhˋAOT?os1\b1{K@.?I. \n.|OW߾Mފ ,m?N`9}gt]8foֆ/1N/-ft i:E{HüIH7ve,U%0 $P\B.%E s@ȍX2۱f=̮'0;u&4sMFO _X$5D*IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/progress_bar/000077500000000000000000000000001314736454600232605ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/progress_bar/ico_loading.gif000066400000000000000000000012411314736454600262140ustar00rootroot00000000000000GIF89aBBBbbb! NETSCAPE2.0!Created with ajaxload.info! ,30Ikc:Nf E1º.`q-[9ݦ9 JkH! ,4N!  DqBQT`1 `LE[|ua C%$*! ,62#+AȐ̔V/cNIBap ̳ƨ+Y2d! ,3b%+2V_ ! 1DaFbR]=08,Ȥr9L! ,2r'+JdL &v`\bThYB)@<&,ȤR! ,3 9tڞ0!.BW1  sa50 m)J! ,2 ٜU]qp`a4AF0` @1Α! ,20IeBԜ) q10ʰPaVڥ ub[;ginkgocadx-3.8.7/cadxcore/resources/files/progress_bar/ico_stopped.png000066400000000000000000000012761314736454600263040ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwarePaint.NET v3.36%QIDAT8OKaǽ߈" va&X)RAB1m:2lYnRcGڛ8 d{y1olfi|s甔#P`fFvde[b,f38SO[o_#Vb:_+4)>z#˶w-bBx0"\x ȀQaò2 wQ{Hitf~PG6 Q W3|dƒh̘v50.p3+&v}6FXlVqv7YLN;ꪂN~&T I<'1޲c>E]Ti#zc('(|cuv@;a`d }n^X;I0S)t<ժkF-8@3iJxUL\.&pFuX2sگRvDТAr I lњ]}[Hu;ҏ]N'U@}|pyk!=DLSZ12ÿWa< 4uaM5r5a]vF3pY=r9k]L-8~ePu>AIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/000077500000000000000000000000001314736454600227405ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_angulo.png000066400000000000000000000006031314736454600255640ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.5.1N8IDAT8Oc`!ȱy9;q?jy& T5( iO gjj@(P3 גb /H ih Ȱ@,@B W|B???H1c @ @>ہze=PAt vh6b Y  @yY1H^9NzJz3IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_anonymize.png000066400000000000000000000011461314736454600263130ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڔMaόz' 7"yWV.wɍZD\ڴv>@KET0, !х2?{?2D|_ % G.m<TFFq\._Xhl!{|`pwg#8xޓfCv5@֙6wMtZLeJn[iGvŨjp8}z*Il6xLDg\bә&P2RDZVκBQĥ mfq,,/) rx+V/O<ˉL�@Rl6+XghǯW BD@ue(7ͦ1p&+^c6vpIFʼsCx*ci 59"YG]y>ǟi[?;TlClO$ȥ~tk_oجaf[hpAI|i5 9{ht0:Ocה!qCĭeIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_brightness_contrast.png000066400000000000000000000012251314736454600303650ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  tIME  1;GwIDAT8˭MSPi,(}_?ەV2Pd?$7vD3ssy</_cZ"MSH%D)5r~}?<;;+?(Q|l6c60d<1 _\__s~~c `e$IRd䫜(,,vw$IB\ư\.:E)I*tﷷ_(0Ɛ$ I,o"/b8gRl:A6FkDˈha`0hJd:Ų,̠&#,޷iR0ĶmV*Mɳ߸˄p2pyyI Wv\xDT²mnnnz[jBh>o d4.ww?<>r?9jlqP(^/yzzW*>1''ۛI}x L(ej~QI)[|۶quk}pyA?ʀIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_copy.png000066400000000000000000000010641314736454600252530ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڌKaǟ{TAkd X.R VC{.Ak4 $!Eyzz׻<z~ eItz=eA^@x$J`cT:L4,6,2<4X"`|:Di{XrgtFl1F#x*˒q.1.tRD2oc lcPO?f!ɸ.,~KsF\ZrLpWj58H*-Y>@  %*@7Fl.@#~+p~ \6Es6@(C)W@\ߒ""@U݄ ^K~5/GU{kq=;+r%?ٶ]zauH 9ʓm%w4[Do,,D|0 aʗ sX նP IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_corner_annotations.png000066400000000000000000000002771314736454600302130ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwarePaint.NET v3.5.87;]QIDAT8Ocd``# .u @x5AbԂ] SsȯGX Bh:"7)YƸjx&&FZ EF"/vH4@vߚ/,8(0vuu5E+^\_Y[vLmvd$ڥ1KK~cw Mlw[D~MbSS)E?i+|^[d:l;md lFrR C6E } MX,6_I]˵,!jD-|Њ#IFL&3$X_ǭPt3VK\vǙ(Cd7l"U^8oRdY I RHn/O)2Ocu?/L@;Na Gr<FǾ[vK/IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_debug.png000066400000000000000000000012551314736454600253710ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<?IDAT8ˍKa3bvВBB9d-Od6_t䡁eŚܡIͱaIF%he a#; ]8axo<+ ߺqeZ!;"4U/(/Dv]toUq|͸U!\vtPָ#i)8:S.άj[/Uv loL3 k&~j~MLGJf2Bʔ̘Zf=EfQd֟wLۅȌ#fd&ʝulՓ;xLH֌ ÉȠȠ~+:#hh#5=&N.ehiL(B:* ƑCaS&׏oö́9l|:~7~_  IIDATxڤSKA1&4(mj,% K=T(@ QcsB ͇Mb6&;YIݤ?ޛpBc !p:44t$ lszZMT0ML +433VD/>?oAXdzXs)6 X;ҋ`0⡿ EQ7 $XIggFE֒}>ࠏq]sv xu̮H!ڇ4?x@UZ^Cv>)#ĸ(~%M{=Lg\nSd^)o%[lݮLi%FkkZ"5hVҕb0xꬴ iB&̍[D$@sM F!kĠ%.mbsCI4)Rsbe2jU˴/py\7vSRo1nXhbHҮ zW+`9SjMΐbƴbk+1$roE?xIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_flecha.png000066400000000000000000000010401314736454600255150ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڜSKKBAZjh>Ih]BD (_к B ##E?ZD? p\~ >\0FxpfΙo C@|~^'RQIVױ9eM&yx<b4٩_\"A2*v\ P' T2d (R9*pu&L&s4m_nwn|A6=u8L\ɀ";Ll^=fbvWjURrћ)N9Z>lZg486 ba$IRSq(KObQ [a^/4U0/JNUh4M } V!ŎoX 'M‘Xh4V.i4@ p绦9Pj8iH\_ټn/h[ ^p;IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_flip_horizontal.png000066400000000000000000000006231314736454600275040ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<%IDAT8=JQ31>4-M .z nf@D .BA4)Li)I9‰`Y;1OJ3ݍma9 =1!cʓM2y^$&Ak&J)LccJNv#DF- PVʝUkrL X̔nEЦE"$XR aXaa 'a` BS4X\73/D9wbbPN_؞Z`羚 {[ vsx[_%l(!P ag$Do*v.@Xc;#98p!r #k\9jrK],1˾`6<<aN۵>QtŎ􅋙x+Y8uY u6Ӎp7`lETY'M&k[ NW1t;RIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_informe.png000066400000000000000000000013541314736454600257420ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<~IDAT1lTe߻^ w@J `4:Mٸ0:b4qb6QtpȊ\ۻB)\E|ҥE[v x]lkX]ʋg]`"ݣ|67ك'~{}׭Om'+5]~ f-OfG̎>促 >Х +?58]];> ,ƠFU+*AF SZ+΢)b,HAURk|q=\ίOfGE* S)<Ⱥ]v"@N3ӑy*B ADDB)tM#&C WUQYTPdHDtz Q I7?R BNrWG@avlnR~s6lȥ/1Yf{oKi)w~{a)\4m^{})֦S}템@wxa\hs:ayBnm:Ofu걱ɒՕ0{׍jvw}yI Ldelu?{;,EIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_invert.png000066400000000000000000000014611314736454600256110ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATx|SMKQ3!Zh? *) 4qQ΍ _ V.\EtQJ %TFMҌ$f=^8w{޽gfff$Id *`p|V Lu377G2a|>ߝajX3]Ud8D+ {$evC`j5s}|||bkkJ;r ňpdM)ōT*;FGGX<2L2yꢱ1jii ݰVEP,d2IQ1* Qoz$dbXK,HQ#D؈PQ6^$r:/YנP(Qn~BHLp-?+q ѡffg.L3XVdᾪ PJ N76rJP[d%{B[oDR=ȿAJJ OhwwtʵX]],W:*Id SZ\\^ྪ~;NNxy^(w4N & C>8 cmnT.kF.w\9<;x1Px_@'Ls$XofVF;g9XFLZ} @`B|UIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_layout.png000066400000000000000000000007721314736454600256230ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.36%TIDAT8O@Je-}4J`.la1jLRI y}" x̮ SE>w2oy[} B?ZN,f$Iq{ۍ_WdQ<9Er, CFux<B.RyuGӉGd~QQ_뛿9nz=Fu l۞{Zu]FueYnRYfTOt:p^bl2'ZVsdi2'FlxQ `TOj/]׿O.+iOyNT |IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_lazo_chroma.png000066400000000000000000000006431314736454600266010ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.36%IDAT8O͑jAGbE!؜'9w&N&E@|`+ B@8,SsMa>P ͇Q6Pja%p-''uveH5K_1<:lm>3oNÔG w49965U;o $M;.J9$1QR;(ݫ[H l\ki]\]hP^!=\ XŋB拵eK!;IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_longitud.png000066400000000000000000000007501314736454600261270ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.5.1N8AIDAT8Ocd$dwK-V,=o. 6IA0_|SMd9CW'qq'I6`[{j<:+ X|bInLv̤ȶ Q̳A?M :\Y6l0E ?&ـFKƥחL Bl`Jd*W_Ys֓lO=.x?M@F ۜ0=3倴 1sb3X(( b@,B@<@@ IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_lupa.png000066400000000000000000000013641314736454600252450ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڌR]HSaofj.4R9 E7PltSwB ""$!I4QF -DEvvq?Go?$|(Lp57י;Ć2㢜#-,I٬Xh5Ue~ b4(Qdz[D5 `-$y0p\lXfE(Kf:q<(D֛欐dqzpf6^trщD=`C*rTܼ! $WG 긍yg_X}‡;-WCrfb:cJ+%yz}<{.ON y:iX3A[Vk{pph9__=Eu_R&{.ylqYW7`FHXyAՉ\³]wgo-6`rOO&4Hso6} 7^= 7'0uY EJLgjۮ 6] 2H'Wz~7W? –9߻w%oߕܾ3DTkm9p [{4J A|x;P$=K̴IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_mostrar_ocultar_tags.png000066400000000000000000000011241314736454600305340ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڌMKQ;I& Z1RۺGOTP꺐P*ܸ dH:s2@^8sϙ;^R%M%<>ax(z\wЦw| lm!d >a/jq( %'1<σp_h~ 64I۝`c0c>4o;Sm"|Z=jUyMdJ;"X(ԚY A~_y$6Qi ?X[-" h$ˁj h+[\*B!jYs maݙX wBPCuӐ<&-0C;cmei^LP5=̧$;Fώ`60vזλvg H- t:kPY `Z8u9?|ZG"@r<|mp O<؁IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_mouse_l.png000066400000000000000000000005121314736454600257410ustar00rootroot00000000000000PNG  IHDR Vu\gAMA a pHYsj։ tEXtSoftwarePaint.NET v3.5.100rIDAT(SuR1 @yI<%yH/ jm)A:aY\) 3z; +c$I">x89'Z_3ò,iP}jp h*B6`b0 ֮ٙp骪P5ڶDuh&l0Ƹ,mv<}i4M?"oBA,6!:IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_mouse_r.png000066400000000000000000000005011314736454600257450ustar00rootroot00000000000000PNG  IHDR Vu\gAMA a pHYsktEXtSoftwarePaint.NET v3.5.100rIDAT(S}A 0E=w}zg&!ΦDs+LD*N?LIӔO)E=Ɯ3z3f0 7K CJ.^5 +. gEò,[dYו0M ƘP ~ۯRp 3e>/E* IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_mouse_rl.png000066400000000000000000000005301314736454600261230ustar00rootroot00000000000000PNG  IHDR Vu\gAMA a pHYs8S$tEXtSoftwarePaint.NET v3.5.100rIDAT(Su10%^]#^x=C.$3 hf{i Jm+>Iտi#3ۃμNWdZ^m[֣ ;G0z ]ס{c̗a-E,Q5@4M!ɲ9ARPw)L`'CӾe1vZmf4W|!`IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_pan.png000066400000000000000000000013441314736454600250600ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxlSkAiMTkz*mY/ƠAs \t($-bmMIbLwg?|oͶfy7ҡm08Ɂ$I*0t(1l!x8Gj$o4,FU0~ چHX6uفS1VV럋SIEVmƵ ٻzΥXG /GO*~P@I-ݏ-U>(6c>_adHl!_4&$:͂iPvt1p]w8- WCy3 u`}A `'tܭo&a?b8eߗ&2ZL>"0Z4ENd8tV_λ+&l) 4a=`h&ZBs @ZIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_rejilla.png000066400000000000000000000005001314736454600257150ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a cHRMz&u0`:pQ<tEXtSoftwarePaint.NET v3.36%IDAT8Oc` تȰUs ޭjn@246Ԁ@C`ft/lCril v"@jat/@ril @jqax^8PD246йr@A nb "S%#AIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_rotate_left.png000066400000000000000000000015121314736454600266070ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤSKLQ3ǧ DJ "FYCعrろ;&Ɲ[6&H4F]51""SN;N)U…f޹sGPpQ!Nΐ$D~ +qx؜ EQ@exw˿/*J'AZ6v1c\Q f!0KHc0'GB8qoq> F5(T `9I,I7Lҧ̗-5x5xG{޹#kZľQĜ؎hp${) Bi}R|5/b6"Ic$m؝4pܜ Z?b8tϢk,/@l5t~xa7qx,&KS.6Btot{@,aR@ %0( M&U xQ)UDQ4DR \zO/r{T080̀')H EI"`Pa'8J4u4b\9'pmً1{{;H%?nmk˰XȚ>:N`]f! Ŋr˄ dǕV=n֠pd.[ԣ[9y#ؕiy-É"=L u+x(rrU=RFdpr ` V<{ _6wIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_rotate_right.png000066400000000000000000000014751314736454600270020ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڤSKOQ>әBPI[  X4ZSGT &FI7;pфqa?0GĸAA Eh oF罞[ 5n\87s}pRK`VA0A0q =9<=Q.(Ʈy[0HdUVTufmGح햡1SxCIs=e9Ѹl f#)NnQSE$%Ƭ}b(ɳho4L>0^ |sOp}ʢ)ؒ~&'۳I-C[`p!ܜg<g NI YDWfi~'҈ r=VQ("``fDIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_search_cloud.png000066400000000000000000000012061314736454600267320ustar00rootroot00000000000000PNG  IHDRasRGBgAMA a pHYsodtEXtSoftwarePaint.NET v3.5.100rIDAT8Oc  d (A ___)5^}Sk@bPi%}ׅgv_zq_$aa BӒZ[,a_%{/78ɀQe6LIt殷cq!z |v j/Xi@ %1|hl !|! Y#uUNw]˼ H3u t]E>k%IfoRD:0`~ | (r on3oG0!$V *[W0_-+ dW&2ZfMFVJpiF&B > Rg- ~ CmڴER ឫ p5ްy+21Kawh` #aZ񽞆TZoLѓ`"(?'ˎJvKކ|:G9[aw82 Jw f'ymzsӘTsw__ιIrIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_slider.png000066400000000000000000000012301314736454600255560ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<:IDATx|Sn@cq@CRw1gpC@z@= " QR4v$f#R+Hkٳcz-\wpj|>{pNY:?W(oukGxX`F y^9ŊPyC N՗ÓﻍRjqx^8j+m`쬇zWN\cHA{Ȯ4cRPlusZ?|74:Gѯu]Kr)i++KV8lvwO{cZ[NQad^ )<^_o z'U'bؾ&Aؕf[Y9%PM%d| bNjgj` _qK{{E h 9|т1Q hG{\yyGT_ahwu8CPf 76h\cw:כ.=^ M fF"&M3y!d@0$a6cBxbYN0H0hfK&V:M|>I"ƞSM(ciuOHeBQ3c`YW^V6Q] ,ǒe6D~sOm_f]?þ3"ǖ}aySL{7 -wIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_varita.png000066400000000000000000000011421314736454600255640ustar00rootroot00000000000000PNG  IHDRatEXtSoftwareAdobe ImageReadyqe<IDATxڜKhQΌM1*,̢q!nqkv Y$"Y\ec1BوR(B4If;Mȁ>??pp,`:p vA!ЉKǮ7^=}N9ElmAS}s6G%]pm[s^t)oXm_7ŖeEBPq]$ΌK1roqߧ(5hd2K`UN&B PllmyRUG kmHމ=NKe}CxHR>Wm8KmIcA^)럅ͻ{\.j5j`(2o0!: &fgx!* IENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_wl.png000066400000000000000000000012251314736454600247220ustar00rootroot00000000000000PNG  IHDRasRGBbKGD pHYs  tIME  1;GwIDAT8˭MSPi,(}_?ەV2Pd?$7vD3ssy</_cZ"MSH%D)5r~}?<;;+?(Q|l6c60d<1 _\__s~~c `e$IRd䫜(,,vw$IB\ư\.:E)I*tﷷ_(0Ɛ$ I,o"/b8gRl:A6FkDˈha`0hJd:Ų,̠&#,޷iR0ĶmV*Mɳ߸˄p2pyyI Wv\xDT²mnnnz[jBh>o d4.ww?<>r?9jlqP(^/yzzW*>1''ۛI}x L(ej~QI)[|۶quk}pyA?ʀIENDB`ginkgocadx-3.8.7/cadxcore/resources/files/tool_icons/ico_zoom.png000066400000000000000000000012641314736454600252670ustar00rootroot00000000000000PNG  IHDRagAMA7tEXtSoftwareAdobe ImageReadyqe<FIDAT8ˍKHA̪-KC= CmfuP)DB"K$A etJZyum0}f~3#sL|!!|g-V9Q鎺c`TC8*5bF'R!DЋ kb^sP!Locgע≣.=^u֘[ 65޶FG ! P %wN5\q=(t@ȀѶ(t2)է"L?B2uXcYV$&a]ct< *Q1}E )hYҁ갎6` DXr<:=UR̞O98*}V&b==hցqف+;˜JT<A!C:̼}nAH~0bM36 +/痗sIĢ̾Ek J {v!=_MyKb]öa{6W03Pָ#i)8:S.άj[/Uv loL3 k&~j~MLGJf2Bʔ̘Zf=EfQd֟wLۅȌ#fd&ʝulՓ;xLH֌ ÉȠȠ~+:#hh#5=&N.ehiL(B:* ƑCxTYAG6]YY'܏?!‹ww&A'񧧿ek@("}%'4$"c86?w; dYF! "O]9\16T"K 51U"@CP 'd"yteD@Qa3@K<0Q2,ADף# *BJqJ 28JbX)`Gޝg.D/컲98Fx!TA@ !DFR`Fp5P>Q@NB 2ǡ8!1(Rj(D^q(EvL@NQ@ Sj0#p"A#FmP'Fc̑灻"xxNF0ǞAh`x%> / bt5tA*]Ӊ wֻ;eD9wƛYN+qYՅ%mwo8 =_8}Ky Gd4"C6ă`Ya!JP *ٮ7{~oD:1'|Xv%R' E; >ywg>~a|"1rJ]8;/<7;U7/t~N'J`*0|¯}X0T@&yQ0 CT!ix@Ja!,$ ڎK f* : a H~+{Ydž B,q w,8H@0<'E@ز{сC(ѡEX`r@ J(Ips [N4ko ylnvz6J, B $*^A/x >9JN3P$r+9fsԨρq'sFgsKQרv°\`L\S.ژO%Y3 :L8f$.ѱKOUbH;Q29!"] h uq 8A-42*y]=nJp< k > ~I𣗍>(|w緷b$v`M'~sC߼S~_;r6E8`lhZ .GCD &74$G"d8_ wD+Jaa&9YH莅PtWFUQ A %S05Fo }Gӥ!J׉藼_T"[2(Pc a138mǤa, x] q1P̦d2#nFAX1\΍~,ԣ XB/h-:ˑoo"-Y>6R=P5gjx[h|\LTJuN $Qi J9$A })J5&Py0f+jJH3(Z2ju Ad8&FKFԨcd-6aFN!yqAB ɴ= ">Y[#pWZX7SI-{ S>>o:E c|x|tr{P20KNl!0.^Nqq~cOg_9_{ƫ&^X( "'*U86AHJd࣡&L;CQU| &N*! rjJifaR gޅ8erЮsL\oEͿg4B<#eKDF2;"՝Y;;QN+9raPqTQј4RkI>WJ!΍1emA/q=0ޞP4v;Zc,F;!F lNJ ҂^{[ɍk`~#IMBFD㉊f~ɷ pe#y3{WuF4#/D VYDR3b8&L>39ĵB8#ƜAA(MT&%3'Hӂ@MY?ӟ?mC887q, [ <}8BhaYt䃭೓񓏂_|_8_ Σ>xV&pA%)|M,9kB2vU$.E0-35pLsIzy$:A$Ɓ6v "h—?̬#}v4_LvH@gLñY=M:&7Y CCYh3"l wtQ\xC-3,3VR#1: <:Rpz j倾ީd̐@eﰍj>F<ѷwݷǨ6H"]\AI0bؕÝ " y@'q$"+DC5R`IYTdF<#*cl\ y?|L ;$eA60c! V)6f&e"8@Yq̂ZS  (M zF;;Z.Y z8{u7㚏>`eYd.xhw #'KFm5 C>`έ63qEw$&Q;\Sէ< m9T LY6{J)Y 'G?Y9Jb]Et #WSX '>]KfT " JAQz_4T+,} fLӤdTZm;A) ){=;}FfI텎,0A@ ̲Ւ-:v"ZLE6 Y*ζg*(Bz(,y? mءP?y߿K֐ )ԡ;zGXvhuӷ{;+8Xhgx;n{vSim}_zv]^*1Qsߌ ='ϨO d! Ufl >j1A-@j9y CsvLu9&+,LHHJ8<%BS6yp Y`qGn'2'apX@_4/ne³Ca)cRSJY)lJ 1ղz|zs)pyp¾X>P2y{E=sGc 2Sܐ[tn$,'L ,Ng4o,Y!T)|d>,B EeS U1U3#1y𜔮p>}1ό?lpZgbN50:Mt3ZТX1wa*h~v.]Ahp{g7z7Ƨ+ͅ\^YLmעѩ**hJdʠTE@[p iɸp,bۅ'W;||) Y7ZtF8JˌHEg!LgM3Wn^,Iww':<34N'@ʢBw𨔪 _=)la6U։8lߜeQXX1z- `zKV7eQ :~X{0^Ep gJT֖eH}PL{tew[7ERN)%'5 eyx|JN>q9_w^bUyEh8!"e]MľuJ! #+AnP1b\ :|rBXedlNWD|0&ߪ'R# 1򽑕hM$3H0B=4 $(&xج'X |O?>88MHrvX-fV #T.ÒzhƲ8:fFXʄV^<;pVغp_QޞqfĊS d)tu*5#(,T#c|91Xy|u_^nƿׅ"P1C(h9\I9:Y\ =0m,pOn >Z:"$P1Zѝg\}L9o;Qyko+\ L r#pп|úVђa7;Ʇ,H1ctC/;U>6eC cSY'ZnG,LG@ZTw2{#ڛ)ZʬLQ ЩV 5SpDzFWZɋi)Rِ-ؓ_sNb̎-٣#p4%fÃV=Ǒ mџIz$pDEΟE9q6s9קoɷEO+aߤ&id$k`1IeDlj- :k%L(Y\ͮHD0%[NȘsJ|eGS2J&lT1~ 9?' -8q]'$}Vxm%Y';ڹ}v;PZ&Dv- R ŐE"%fbSXY#ְZܿk\.=#xo0 RV9 /gS%3QP*J>| >h;8Ezz,MЁ#EsL:k\T7 ?y߸6zNpTQB0R=vR (wZaO? x wtgG8U, !6 jSҖwdgR0Z K5ۏb]μ!|Lz,xWީ&)RIM*;r,7@^!'{sDy(Y"w+0|<2V (2B:>~_x^ OYFO\c'LdbVTCVj"%V&Qhɴ7)/S 瘚_CT"0Hm B\b+uzHlbL}..?o¿X6N)_R۫X)SGܴ5w~YY=%xPK@͠ >EuCi|r7'=,q- $O6wJ-ivU⬋儎XlyEP3LU'XglPn1Tsbd#P=3z{9|g,EZ;ri9.DsǒzvKw,[x+tc \OXʁѳpI6~k,6edYׯ^O,_K(X \WvK% $δ MdpR;᧍?nݳۣhFՒ]Jt²Â̶O՚i)YCM.6ۀEGoz8L4*Etu!nkN\ &2X%(xу..|oYbK79IEhU2"j F␫#Gh5;qop8zFЦax R@1#?g O;jC:YWAkt*lZS뽳%J: JQC52E9!k>+HB/% &VMAf}yo gseSvO\RNc}gXc9~5\^aTBiF R*kkGn^W{=gjDoϚa<>2}.4R,P-9[IW\A:SlfDjQP\ ̙#I=Ñp, fY-,fT-);*MCպ^6)Z@27 K!iYM;kHGrΏ KGˉgr<ɧZUdMܖe1-R)5(.CvQ!րm/ oN9.ۇN*o/8|Nm2qJjjA~7]i1v_R$!#9ltbiq<ڣdpxC԰[i|;ٜס1-0eR\ݐVGO>qRxq' IDATZA=d4vjȼ{J bK蝛ÉdF  ;u>.rI;#)},;ځT(tP3{|QeƩw7ZRZ%Y@GWI-Ղeӱ`%#S*B #%)= s̀<%|UivPNpfYVPnO,P&W?Pja)LE#. 1X{+F{7T;NZT٩7P}n6wzO) b.ם3 MWIc$`tNh́/6ДʣII?0{=6kަ?/$_iTa{EƬm!ULGO2~+Q;+ :gbH_5[pgKpDrj >t;>:ZʜfD5e^>_6J42,ps2^EyLyvt題QndW ak}PvltT:5'Ԓ?-iwu SؙWMXN(wa|)aG1ұJu"leQG4:#>^lH(LM0tx?񳛅@ $-ΈWu 7"QdYPZI7,:cL15w~(vV{'L uwψ"WH@ѷqg@>f.4g^yF}_ޗνNI{skplh0K)˘X׈QX* Qi~3)"~sZ뻴i]=|e*ܦ㚝S}OՀ\cTyݤ2tr (*̣j-W4S 4*qM%ti GJFLƠp<wl])Kgm38Y;QҘ:09}-|#(>%nJ3B#o]R2P)#˹qAVF4, "O/{HҙZÜ}^2 Љ:=PvuZߟsA14W0`*\WzLyvLsvƥ#}ӈ;0DL ;jrSfLQ0Nm<- ;Y#L&ic%L@^uTf8Bc]dqH)Z TҭLPAzDDb(~eXiKk5Hgavj,Ǽz] ~7q?X(~q̌EhB^GYuomD`egk=oJrq(oBKv VyeՍ]FCG j5 c)U(% ǺLW,|괽g{I^Ī+vA(T&,{ r?1p.uAF_ Asu o@ ;Hc/^Qx!GE+m\r-PE=;;]3J#N~s/LWT4(k"{d}r2ۉ2+1q3\I#dFSa=ƤFWfUH_ڱ7J IQn391d4#ݩ8*WL/!MsDReJΜ"ݧ8ǠKӡzFӦَpD qDF1*Q+N$ő_I4%{jezdz<ң{NZU80,EIlJ0 ?׼#%/4)7GVr?=dF6v#R<{lz ~Y8Ń/lZHZepwt9nB";V";TTegS}Mg)KnT!,&Ŷw4QC Twh_휗;oxQ`7xw{(wT<4eoޙf=  Gx 9uY%\qYIk,hx7j>f.\ gR}*!$coH{GJ.:[dR4SvKY_˗,_}}+7MO+<.IO0ZV"LsŽEW2FrsͿ=lMYm"{ǎ,Gs{'և><[}#-#|$\sٙH0wo*JC&g,3V $0pR,%G:Cti SLނN4xOCLQ;:ZRfXM9Ҵh0u{g42-b_L۾.;c# cIrS 4ʪ4/ʠȂjߊVXLH9P iBLhIZ8-pX6QRkeY7ܜ;?y{_wmܔʋgPk{*0|g1SL&ʲ0L)eG򮒫Pf zO \-W0Y]k(f{MTC-l<=L^w_s| }k!GKj.Y< y#'A3KgmRѺgh)!Z@_o+u O}V &kK =&fwp s>JTʾ)]b LU'vU {9ʒܥ.U7_f'A|բ:5N@2rvCt6h|qz(}(z Y1ZyϷ?~f,boU0j 2<:[}R>J|b1>zF|!-KjxC#|3 l헼ŗ|mc2jj[A{*zLR Dc=,L2&AY>v"jR's3Q!ӳ$ .e=Au$"AyM9\ʼvs$Ŗs,͠,::0#IXd][Hr~xgX10#km!)gxg/%x.ϝB T4:mBMB͋pA4b+6D!U .`2nJmP'(] DM+ (%Hw1`s35eN\7ב<[k4; j5'[[- ։",CVk@1HuA#)$m)h{>BW[&.BWܝRG6TVdΧ|vvIpS:uVIv>6敊Ю^\n^(^ XWǁwVooX'ĕ kWt??|ϯwoqT~.%sv}as/sc'F߰Z4˾)zGvz (ރD<)hjn;M,kY3׳t{PN9+^͝ڔDžN,)3^~*+Xoyw5 UTH5nxjb%Դ:ՌahmH,%nXkVgVXUH,({qc+(YBN׈x$ u+;tGrlA7~7 ~B|^kTWyl y`n]I(Cbcsw{ HH L8i( Z 8%JVnji Jɗ6 GB(Ҝ՜s`=ޝPa[TQwlC )ҡ,[JS k;FD L1F-DHm1?;&m-߮~mMtC {A -)M(rZE8sGئ3ݾ/RXy6,IcśABa"BI|[s@w4ޓo"h@2yʤ;R@=bMpX12uYQki]wD]CuDQ[c]!="X&XϬ݋5U%#DStV1IR"(ӼE2>!BZ2iIqY,JUjh O`J2 ( 7l{~"" d9Oj9cK`D5 B8|n&϶] |$Y$W<1yߤ1zAY{<#3;mA֞q۲&l\MLsڐrp!e '>=9.rW9nh u^:zA.`ȴ"ρHB-N-BYfg_-|x"&%߃ A^+=9fcO7Ⱦ'ʘXXvvv,qb< v"psg7f3~ܖsWǿuvkaOXkLCf C$5ri,H_ՕMRp|@3ǚv3 1ts38ҢnPrk0u4RJNci8BiaE9rc*fNfM&u%eAeG,vDU1:TQ7jb ;:ifE70nm/FIhҞaYw[Q@ 1! 1R[q&lgSx>仕AQr} awk}&"7Yfpԣ N*4 A %h$B%~(]s6:m.>W@c?1-׍6*U ytzG4U!D[WtأփUiHc?{].ŋ7 ;Pz!a5ܟ* n擆,Cze/RUtRTVZ6ùNȃ/Wo1`-Q ,$ ~3OFpLOW%aI͙H[gG7a3e,$śB !n$3e^9\s35 ۷"PU0q  n+Z,ªX!cki$ocC50TUG\Q4cf׶MjNj5]p[k5o:\:=`߱B̐JS=*S.j2Ktn;4$'x7}80¯.ο|y6b[lZF%wВ@K@xqtҋ|O%-bb+DCXr@D8!]qѯE'̞mrN'Kн1wv%.e<<|m3 dc5a@1iNDž*o?nC5jVbu m~xj|Wz&A4J=͡+y?sdJ>y,%Q$7"Z9VV&&M82~wMT>>BӈLuǁ= u>Cs#YBc X,prgoG s^(̺Őjt#!8^}H{_Ǡ3 ,ѬȤpmϑQMpbظsYxݶzye,ݖ]>>dZQ"m U )Cu}רbIER^n)v{u P[GC~c ! D׾nQi8l+yxA*FǑk<ւ?/N.T݊?n٠GRؠ&1ӊ4WB}mh鑱qR@jP,%n޵ńb}Jd,Q[Bu]B]*:Bijmu 鮹BPI2υy,ܝ53>y̻$7(HnFCce0ͶΪ IDATb *1l>zI3evk& Ya?r ͜0+<}rdO<|zz 벐Zf_Ց<4fToT 2"Yk1ZixH5帾"!ҍGC.6h ?JNZX6{ֽqնQ(9C5tֵw/Ѭ0+kȷ{ ԎdZG,ToЏ U]jPǯ,]_1-8t.nsKyO]ϳlsB4@|] )_Dq\ ^"Nk·7rΕEY ""mm} 7 XM%՝QƢqoѕcRe((Ni,+5݌7RzY3Zj! Zi|Kn3k ш?a¹&l:yS1]x[6a+nF GhZHvϤxǀ4j-ۥ=6G^M5)K,^ûX:+Fy~+PBtO5XXF:EtNyҢ3pk玚; EFq7JtQ-执uǏ߮\3O<7C2D);V\mRDRD)K )/w K=bZ3>D'k_lw5 OeZv~tJz ~dZ14PKT:0ʤ($ViM :o9wSVH ;s ɍA 3>,e}^GuQeZ*=k 5Мhu͔jPZOR XlmΜRzȨ42;N|| KŸ}ⷝv@n~4(eKone[ u+~SJ9 [ cMfQX`N\DyBVnIG1.Xa{9C?^8sq'{gGsJT" 77˗ovem򐙗= WP9a"ٷE5w%Җqj>81;pp{o>%>w~޹}pu|Fr5eM h8a^f>ƿ0#P\)dxHA3@%@-*R$`[*;!xyj6lHYګtE d+ν `iǒЇ}贙x8L/70Df곱D$X"C`)6dQSj*;tnV\W)s5xk%epqc !:kEr|YӞ! .Xʙ0L奇աYmReT& J;L'7AKGq=Po![eہAFjTI3vT$d@iFkGGӅid)?VѡܴX[* W4i&+ôMj6 [y=C nFm-x`/y;ޯEjB? ȉc8j Pznf[a} +bĝ ib?^Ԣ #%зY-nX8X\E lC hߐ11a!k0.Xk!$"̓bJ@'Ҝ?l;bsß{f|o-qa/Lka$FkbBo\mqܶ=ĸ,?BiYv1~ַXnbn»Lҋ^6YpHQxpovѬ$T=AG۴Ejdw@lۋǮω%quۇO?C7c7C4Gx3|hŰoB^9θSlI34inHJTZŐPBk6wZuy|/UK/T8hM\ jAA3Zeq;̣H!#l u OxPRJN##2>ۊ]0:HiLFVuKV #%.NS?%nsHr8srYk#/с'Vћ +nF!O#=X4NφzWmdZ3iDz6Z ؑiw=ו|j#Y2ŌZ8ZJYۊ!t] -9. oINVNrJ&b-y$ yj%>:b]C-.kAFߒ$m =: 8Swc c܈|f84,!l s)=:~rXu K~!8ae~1Ji.IKײC0{"-XA6r΁vxRx^τ4gi:tfx%o3 ?r9D..L`qՄ_;߅W/7WLCH`2& Ti=-DxLa72/0(0 CS|MaQU½N\Flʔ΄3U3JaB=Yݿ#O;|#Khw)iiM #0AXa)2kIj%l*N Mbxk0.Z`X5腒eTE5f$l6˜ֲ'ewVD#֖o{Mvm/M=:Ap W*ԍ TfݛW7cIHf[,whCA7t2tq[f -r3 )@{ED/G$`F$#@ =grIg(=RN "$ZqD|-$8μ??ό _}Nk5H2Ux.iBh2Q|faCƯxՎ14fa$]I/o`ļ_]hH SuA-E?9NG"Ӟ {nwu9sz}GYF :5U8Ό*Ȳ2A(ؐ(P$1 97zCmEI2Rm%)C9krn3lVVM<΍s13k\ntJ C}I`Da9w_)X:wqPh)L3,Ž*[V^\6螪_ ;˻np/{(pwKSĒyC QT(gpxёZ,*sp7c.9t)sAhf KN 6K!H;!. [Qԇ)ox!!|ًeH{,]gj^e_ޭy5Cx n 482,sUOO+_x_32ySYB犦RH׆P"\H7ʿ;r|#M9wŮfH=)v(u=#L#4`-|8p3Zȯ>>(Z37,_iݑ>b0b\if'NsUkcFq]z'j2ȔKzD|:N g@!Vv띵׳.Vn>YF3OlE:\R 7([Ec2ce`~9۞e]u+ōc?Fremѭ,sT;qwʜ\ k{̼[Ggn", N4CeAyFV#/Ⱥl4Arsħ1JY ;v=ڄB|`]f5~%,ej;g*VbWaⱅm^Ղ`D-cd&)&^84g*#i?ψi1^6 ^K=p>\UAlR逼ړT-+օ,ɝ{*q\q[7KѠؙmrtvErbpߍ*5aO,dbF3 BnnnX[QZ-şn㒙xҘ]x8㑇#OwOX#ktqR B9$k!W O,tž$ψU:XfJB)GYjwLXbus |lsV2#~s'>.hD'kM 7St~ ۛq%rV\mc +t#p2vl,XSĈ vmLIA ]::&7%^:;2`U,\'1GUITe3 00Se̠:0*RS =QׁQա*4鋗}%}4jVNa,<6; \GF7nxH$1Va5ZY LNB,²k-a2EeJQK6s%5eY^;w'(x 6 3Ba8#%i'ב%ik,.,˩1iqN#{: 姼}'a#FȻ=$nxi畚vy8==1~򊝾 _/ax$==Sw4V ςݰ2 btAaWR@[L ͗8<#*3IC~ʈ HڟCv&S \ݰaJ^O ?_NGL.35^7viu|AtuTkA=KkeŪ3SwG, !uP,-1>,߱O0qz&Ɉ 0PB(G$U=ؽ̗z*׾) 0 r~g,\n蝜xD `<8|6P,lQw<^ɣ^BlĜ$Þf1 I 1vմ`CZUBټ)-̓_jD. JŚ-e cKC1M3!Ak1& '\iW~O׊*SxKmMy10 wK!"e/q 1^ٍ;]̌YYJ+cQŮ8jH[aYyAN`k|a;3 d)ypòr}$L'n ʳB,+T[9/u9eu[$<뎷5?|/)ߧBvYgڛAY[GN[W26 'y:8u꘭Z-"*k~&º+/3H lwolnS:"s/xmM3yR(gCPq6hb{9[$:y.k_@H]N ƌx2n$L#Ԃ$ IDAT,J}oTh4H翘ӷv1OdY`thY/}iM+"'G{nAuF 0`~Q {=\9-/jYy`r2֙5&uƜLˉAe n Hb~~΅n/eQ(ӽe ikaYsۡp;Ó81=sSѕֲ_WKc{¾TP|OUw+OKfI#?yvmyG{ =#R{<ˀ?IbHy`=1ln3Z_3#1DZ\=c<~pֽR5⦿ɎoWu=wڊA> @7bZ!ڞ;)JžUglVxF8.]qpn+X.!ZJݫÅ9?E.NfkdNEd|hw>C6׵Q\U_!M _]458F_}z,|YRi^, ;<n{&jk2HGry^ ҆ k.mj!*z /V)w;Zq`hgEN7ל*iJ C[)=e7r2iGe;w;ͼϝGxkv?ZC-sViwO'q=ٟN6/VEGߌe.X]1/g;աۓŃ{GӿA>o}x| {}D^ :pchu(\ށt`!KAdF'ƫ#D4|ҲK!Y DĶE5mi/qŭ5YM(=-ioe /Q[/OQ Eos61aPlF#S0h[iH8 e\ t0u&X[2[REVZLgؘ p=!M7 :3$C4w8F-/χ:]Q6#4]ѺA@2j RNȋ=2%ޠηw!GZi˙d ŵ%JDyx 2OO+iĖ$ެ.Hn+0A-E$S͆/4qK=HxhpwR@ }E*K(E%~ssB\VP̷λAnl>6oSVpkh;|$,?>tu> ^7&sQT嬥 pqYEn^c¤ Q@/w"'`/8trH7*ȄY ]8Óo44ƚ^_~Ek+%'J~Y s+⯲s+ Ӑ̗+[ 咱Go^r~H2i'>G^?.4;dZ]\x\im>Bё&ʬwxyRy *ه:O:p k )\ݠ wLTAO #󲲻zEȋv/շ+ҊC4}Ѭ9"(OXx,pm$]` D `QXJ6 t6󙈄-mcTH.0gtt֕`#!1yl9U&w zT/8[NT{0]> 2E;$4 [8ols.-cֻYZJi*l )&BrdpHq$ Qz%K;J JBA6?z*Q$ y.֗\$wyUkF/tg|ڬk4c9}%ejӂVNa->?)9tn| ux3μ*{G#W iG`TOoF>a ȑr)8OYpםe}&D >O0s>vTt~|6fijI\KDKEEzCW4wN[ʯ /_C16-8እĎL#41܍!>9*"Tt #s'X;m +Qv'#e7Q;=°2hm a+€9ؔD}}{jX َ.g'a?O%id;Ap|ʔs/:nr<%'F i3.rΚF_[yE`ŭ#7mQK@(!xR&P<:3!|&V iÚTWP$fijIUn\V#xM & BCIkA6#&d{ @Q[GlW<o*v܌ưkԏ zOԺaцihu$;tL$@FT*3uZ XaJ;.4S'ѾD%6q{ZF8xg V ; ;X3 DS1-tX-;<NLcwC,(%yb >5`taTi4'dI t~a)kA]a!oR4'>AD]%qUٖkR׌ᔖ(N atOJIY{ȜWjW} DG-aQ4k8}k=:FQH _ޒE)XKH$FrGRnKz 2ZkK&Z` D= 5㸡n`HDԝ!uFE4#-xZpPJEYBJio3UW^'Tэ3C.5R3%ˮ> ZdEd[i(~tS)]iL6N G/4kwۤbBeQ҇;:} B)rT8z܏ +Ӈ`x)贄3L-6uFfl觉F-v2t1tĶwl6igZE!?G=QEq|W0g"iSg1ZJ3t}` Q!VGG1]kpv㎌ҞŐ*HhNJ]1 w |]%bXVӠȩ[qxAZ2_ 8<%a -1,bV@’RG-x, >S5a j}Edvx=M\&kc:"wA0 ֠'18+iIzNt^0hJ\ ;/ 'L,=5q>_7aM`I Pd.K~tN͋v}~ q-<1VXvS6=?u$, Mz{j{Rx3#;:0Kg m!p/K (mCXOfSW%e2Xcuwg:kJOUp~B vf-#gETs穰[}|}cOu``:`aTdg]zB9w^[7 TG/x {BI 0A*k'S{(TSZ+;B(wJFN\Xr8WDaG8JN-xG3޼JO@KlQ7圡͹[IZ!^ Wm&"W wDG Z^5v \ c\Ccq mr^ψX;:²ЏK(ӄ}||#p} S1TYii1ujohP7Vߒ>gnӎZbf[P9ߣl:BiFv%HsmB2, 5UG*q& ^v:PR,82!cgtލd4-є|% X{?l2nr ~vr*Dl 7i7wD]dȔ G4'ۋwxFb)p롳@񐝉 ܧ>x/k:VX@L5kvYdO 2~]"BZ_A"XOy MbK5ꛀS<{jOiyƾf]Uڻ\$H+ יz,.cTPe["Hj6-2D\K3.v4FʾQFLa+ r?"#טHx&{C}fz[⚞).,m(Bos{Ua XI;Q%2#L |pǴg&[W]Ц׾==a&:;j0":PDib)c1a–ޗa3mR|tsEҳ*9x,_+`!b_j\œxs'|1_t}0NQ6|6U_\7t^6!;l`ewim [X< Cla ,zF{bxQڋGo'8+c ^:ԀCXpE9D@dczX%l33X'B(2̦o8^C $$<|{{pe6YёݎxuSo4.t)0wda)`*}6dBzY:pbaxS:$ ^N(Γ7fzL 2E Ǧq:GO'qު=_mb1{seCǗo(zGR\cP֛@/,ؓ m@ei8'¨i]Ǽ&Vs\'$S{>Gi?Pvy;z'WXZJodj/"%ffaX*wtyJ:0??%=vǸ1=_-֌݇oX6-A2u=e@q4Nϟs N99ZD6[SThs <50cgZs}34R5e}N*Mb.Bp _KϲVK#,sTU ge-0 " "# o 0 2CA AchG)ؽ5e aGxza{ Gw WhDG"-BT_ ]}-b!C6LSAb!j6 1KSwT*; z [4W~ f hfS"Bb2m:s/C?o¶ mQu3eÚ*.-kLc0W74!mM?V`}B HIq\'0[C"Zʫ;0*\yؠŶ)l;Z RGC.In`^h0i u`9oc"T*<|F 0 !i :6SjuhlԔk/ :ҐE"? K{|z: ˮKBq\V'k/EQq?qlRk BGp.4)cJ*.Pn>{_sY^a2"&4{;gw,G#;(R٨hf3 +=1s(%0C(UְCtYol| C%oHT" mĽA/PqWԜp ]t! fe:F\ N,)n׽3__A_E1&`3nU(";#Ԋב24<⊟aB4yyO=]ڲ/XMEbQB6#}@;.iL|AN$}^p-0nx-n]a-"[?ZۺѻQ hW%l'?}7C ^n@_|_k~1 {/9 tDd8:g18h(?/ /YEv}+&x oo{%?H(G0MKv /]?kAV+;h4Z1  S2VUhTS?M{>S%Ҁ%}K>iC+TPo|R};|~ucD^e BP4YʎAn 3k\M@li`C]d(b9(*P_I$'NCb%Ysj;Όhmm*C ߨAẗ́he;X²ܱS0@Jq k-8fZ;w86|ߐ)KK0793E;4|#'̕ ~/ ?v;XK$OGt55)]&T)A4"_Q^v{zls6qBSDy=;lKFn(EjoIDATk!t2T/;P }Z(ܨSCN?=3&#(srf]Z"Ku> a MeHv[AGDgր, ! {)$ qCt]pϾ=ZP{ ?o[_Eyl)2PdK 4eoU)(Je`-W_m7(?; zNHE ${]̆,'DY1,^$q-6 StBWP(ilBw͉UdBc-+Y|PwCPn12k nDS?З,  GNh _ò #Wu7|DGz;/3ȩ#M[RW]5ԉ.wrs}#ak`5A^kCZD)TxzA}@:eAO41ͱijAZCl p%L'/-_ Ͼ!r1܍9^>~T'gJ+}ATX=3cl}=;]8'!!zgꪆsOzXME^t=KLU@Ǝ}PuC_ƷXn>ĹϢ6@::zPf'Qe0,b/wx7#Ϗ>i=Ń.ڱE =ey{TJ&,;QzY \f4< ,R\ {`f̆Yufm٣e˼*f 'edjӑR6yF Tq[ß{tѽ}=}{[t3BةÀgơҎH9agwout?4LA{%rxOC$rFBpU:_%:ϟP-qٴBwKǷRz#qVq¸'^\g}S,$/㽂_$*/0rW)_MaG J1F 4B/Q8"ABfnظ2ʇ<1rڼ1 ӂ?& ZZ J\J|I U"E[$K  S-k!8k9a4cn^iώ6رs;7;u;uVf(n`q De° B-}r-勅67F eQ{Df:6(^%+Pə) d[<[bx^㰩KPOAҬ!W7Ho^]!ǙA^v:R7C⌷;l?ѧ=> w0ua84[XtDz9ʹH=wY Bξxno\.t "7JR@+")-; 5Drڅ c/aV&)Rn7e5p \Qإay7wTh:fGW|vd HᤅKvLe|V$nfx˛8dRy݊*@ڹx|_ |5qvo f=0sE_|,ˉahѶ )d2xզ<[L(@fF 9N%WT"p  <5hyZ(̼ =HUGܜ D q8Ӻnc g;,GJ7Md0)!˄qP:4B3A xG8͔mŧ3OQvlX `6te~ЧF-nc9n_[6? +'Ng{H˲J$;p }]Gl3&`<'i)hZ=j^vU|cZ( y&vT +*a3K )HO\A\9  ڿ'4LK 顔`5H}4r f' htECC_mJ ;b8"BkF_QDhm#&|VU-:0Y?vd(Li{XXpUhI.CaSt' i!be> ݄c p2b_<)vX,$1_xZ}*hw9LgkB J2 nZ7DWb۵S2lbՌZm(-/(}jȶw;{: sCF |j< mE҄>PKaGudj0>y\'F aSoRiI^_2~T>`-jZ3$%.9|8wéW?VNE8?wk׿:i:8og;o`\>W Tl)` =E Jv2PRjuYv# ;zsUZzV>9B4x$@_3®1WT(ρAz%:H঒h.82mD("U!HwO=7j 㝹a0f1v!uK/Ag>c>w ,x3wB!Uy˸_ȩ[g5.Yz a5U]/(:bW;?\ `0[/ weW1\_ӞPov{ta9,-}e,?(944?>B;a9!Xfܢm-u75O;r="b5|?#s+g]R$+ C={*Yw/;+aBAtU}5o;d<MEn@-O:W? rC2 *[0̹bG6ط \[ٲFdGO$%a_88ҲϿAU2znZy1L[ǕY@C_ڝa(YCAx&\6-6{tLU,5pi)ұ%|H?Ȧw]AYkh-A*01<-[/`9"ykRPfr~kQvbyH#P筌do* W5 e:PgnlXg~ZbysCr<.n@PѦm?m J/#;R6h`j$z2ؿC'`ˣ̵ 웽ދ^Nd ?().U؛`σ|urޒpTsEgO^r14;<f!* ;ErYYv WlLt)l:57 4h i瑅3Cyl;ʲ:[-3 9w.N)BCIyY i CV(#iz*xd|؄xנU ܿb/ɹ0a3Td:zqt7"S ߺ ҃R A*%R0?<# m-/GxZwП:,XGhJ UJ%%^eٹzEl@|2{(03)ժ]0t ~=24,h? eW1;a֤N }ºVe:p_`Ї#72OrB%wHsgl[raP| Oʹ|Zqo~I$B \:/w8Qh/ 7ߧWZbq5ttt~u_[p0&"Fuv([QќK(FPcq@Z ;WOJȅgab4Y 0>C>֔ߌIc.ExJ5B^B@z Iq5 >& ^"IA:az:z`D:e;D]ꊝf@+Lq=Sv6͈܎MOVȻ {QV#9*a+t>aHrҨWG^T„]Ny/J7QZ؊JA2dؖRgrblYAwpæVTe(;6}B9Na#u>{&O|%7;zZ(S]&rx`"]ք _;l$+ˀ= Qb}ٱr.[V}) n~!^퉦l^v~ן+eH;SVZ. :#?W~|Dd@&}20Ö4)R΋Qb˖a}v^ '8  }Ґ9TH[3+z|._:J1 swYEIƌ8WF+Q5vB&Z3^1.VEKaa%EY-尠`3(pccXqlj,-bF;n J oYfADeCn%a7^(;P WrǀzgbaGJG(O>Q4RDXҩ]0L4,6WjS-!p׈3J49$l)+B՟@r ܐ2: cokԈYb@ܐ% t1zDy~:bFN,jѝz%/, 悜1B8ąD{KA _V![%6O IENDB`ginkgocadx-3.8.7/cadxcore/resources/ginkgoresourcesmanager.cpp000066400000000000000000001010611314736454600247350ustar00rootroot00000000000000/* * This file is part of Ginkgo CADx * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #include #include #include #include #include "ginkgoresourcesmanager.h" #include #include static wxString bundleDir(wxString(wxT("resources")) + wxFileName::GetPathSeparator() + wxT("cadxcore")); static wxString AcquisitionDir(wxT("acquisition")); static wxString AngleBarDir(wxT("angle_bar")); static wxString MagnifierBarDir(wxT("magnifier_bar")); static wxString GridBarDir(wxT("grid_bar")); static wxString WindowLevelBarDir(wxT("windowlevel_bar")); static wxString MarkingBarDir(wxT("marking_bar")); static wxString HistoryDir(wxT("history")); static wxString ToolIconsDir(wxT("tool_icons")); static wxString MenuIconsDir(wxT("menu_icons")); static wxString LogosDir(wxT("logos")); static wxString BigIconsDir(wxT("big_icons")); static wxString CursorsDir(wxT("cursors")); static wxString ProgressBarDir(wxT("progress_bar")); static wxString WizardsDir(wxT("wizards")); static wxString LayoutBarDir(wxT("layout_bar")); static wxString MenuTabsDir(wxT("menu_tabs")); static wxString CineBarDir(wxT("cine_bar")); static void LoadPNG(wxBitmap& bmp, const wxString& section, const wxString& filename) { wxString path = wxString::FromUTF8(GNC::GCS::IEntorno::Instance()->GetGinkgoResourcesDir().c_str()) + wxFileName::GetPathSeparator() + bundleDir + wxFileName::GetPathSeparator() + section + wxFileName::GetPathSeparator() + filename; if (!bmp.LoadFile(path, wxBITMAP_TYPE_PNG)) { LOG_ERROR("Core/Resources", _Std("Unable to load PNG bitmap resource") << ": " << std::string(path.ToUTF8())); } } static void LoadPNG(wxImage& img, const wxString& section, const wxString& filename) { wxString path = wxString::FromUTF8(GNC::GCS::IEntorno::Instance()->GetGinkgoResourcesDir().c_str()) + wxFileName::GetPathSeparator() + bundleDir + wxFileName::GetPathSeparator() + section + wxFileName::GetPathSeparator() + filename; if (!img.LoadFile(path, wxBITMAP_TYPE_PNG)) { LOG_ERROR("Core/Resources", _Std("Unable to load PNG image resource") << ": " << std::string(path.ToUTF8())); } } static void LoadGIF(wxAnimation& anim, const wxString& section, const wxString& filename) { wxString path = wxString::FromUTF8(GNC::GCS::IEntorno::Instance()->GetGinkgoResourcesDir().c_str()) + wxFileName::GetPathSeparator() + bundleDir + wxFileName::GetPathSeparator() + section + wxFileName::GetPathSeparator() + filename; if (!anim.LoadFile(path, wxANIMATION_TYPE_GIF)) { LOG_ERROR("Core/Resources", _Std("Unable to load GIF animation resource") << ": " << std::string(path.ToUTF8())); } } // Adquisicion wxBitmap GinkgoResourcesManager::Acquisition::GetIcoAdquireFile() { wxBitmap bmp; LoadPNG(bmp, AcquisitionDir, wxT("ico_acquire_file.png")); return bmp; } wxBitmap GinkgoResourcesManager::Acquisition::GetIcoAdquirePACS() { wxBitmap bmp; LoadPNG(bmp, AcquisitionDir, wxT("ico_acquire_pacs.png")); return bmp; } wxBitmap GinkgoResourcesManager::Acquisition::GetIcoDownload() { wxBitmap bmp; LoadPNG(bmp, AcquisitionDir, wxT("ico_download.png")); return bmp; } wxBitmap GinkgoResourcesManager::Acquisition::GetIcoClear() { wxBitmap bmp; LoadPNG(bmp, AcquisitionDir, wxT("ico_clear.png")); return bmp; } wxBitmap GinkgoResourcesManager::Acquisition::GetIcoRemoveDownload() { wxBitmap bmp; LoadPNG(bmp, AcquisitionDir, wxT("ico_remove_download.png")); return bmp; } // Angle Bar wxBitmap GinkgoResourcesManager::AngleBar::GetIcoAnguloCobb() { wxBitmap bmp; LoadPNG(bmp, AngleBarDir, wxT("ico_angulo_cobb.png")); return bmp; } wxBitmap GinkgoResourcesManager::AngleBar::GetIcoAnguloNormal() { wxBitmap bmp; LoadPNG(bmp, AngleBarDir, wxT("ico_angulo_normal.png")); return bmp; } // Magnifier Bar wxBitmap GinkgoResourcesManager::MagnifierBar::GetIcoZoomIn() { wxBitmap bmp; LoadPNG(bmp, MagnifierBarDir, wxT("ico_zoom_in.png")); return bmp; } wxBitmap GinkgoResourcesManager::MagnifierBar::GetIcoZoomOut() { wxBitmap bmp; LoadPNG(bmp, MagnifierBarDir, wxT("ico_zoom_out.png")); return bmp; } // Barra Grid Bar wxBitmap GinkgoResourcesManager::GridBar::GetIcoVerRejilla() { wxBitmap bmp; LoadPNG(bmp, GridBarDir, wxT("ico_ver_rejilla.png")); return bmp; } wxBitmap GinkgoResourcesManager::GridBar::GetIcoOcultarRejilla() { wxBitmap bmp; LoadPNG(bmp, GridBarDir, wxT("ico_ocultar_rejilla.png")); return bmp; } // WindowLevel Bar wxBitmap GinkgoResourcesManager::WindowLevelBar::GetIcoReset() { wxBitmap bmp; LoadPNG(bmp, WindowLevelBarDir, wxT("ico_reset_wl.png")); return bmp; } // Marking Bar wxBitmap GinkgoResourcesManager::MarkingBar::GetIcoElipse() { wxBitmap bmp; LoadPNG(bmp, MarkingBarDir, wxT("ico_elipse_marcado.png")); return bmp; } wxBitmap GinkgoResourcesManager::MarkingBar::GetIcoFlecha() { wxBitmap bmp; LoadPNG(bmp, MarkingBarDir, wxT("ico_flecha_marcado.png")); return bmp; } wxBitmap GinkgoResourcesManager::MarkingBar::GetIcoPoligono() { wxBitmap bmp; LoadPNG(bmp, MarkingBarDir, wxT("ico_poligono_marcado.png")); return bmp; } wxBitmap GinkgoResourcesManager::MarkingBar::GetIcoFreeForm() { wxBitmap bmp; LoadPNG(bmp, MarkingBarDir, wxT("ico_free_form.png")); return bmp; } wxBitmap GinkgoResourcesManager::MarkingBar::GetIcoPunto() { wxBitmap bmp; LoadPNG(bmp, MarkingBarDir, wxT("ico_punto_marcado.png")); return bmp; } wxBitmap GinkgoResourcesManager::MarkingBar::GetIcoRectangulo() { wxBitmap bmp; LoadPNG(bmp, MarkingBarDir, wxT("ico_rectangulo_marcado.png")); return bmp; } wxBitmap GinkgoResourcesManager::MarkingBar::GetIcoTrapezoide() { wxBitmap bmp; LoadPNG(bmp, MarkingBarDir, wxT("ico_rectangulo_marcado.png")); return bmp; } // History wxBitmap GinkgoResourcesManager::History::GetIcoEstudio() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_estudio.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoSerie() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_serie.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoImagen() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_imagen.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoHistorialOpen() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_historial_open.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoHombre() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_hombre.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoMujer() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_mujer.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoOtro() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_otro.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoFicheroClave() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_fichero_clave.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoPlegar() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_plegar.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoDesplegar() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_desplegar.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetMoviePreview() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_movie_preview.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetPDFPreview() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_pdf_preview.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoUnknownFile() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_unknown_file.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoCleanAll() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_clean_all.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoAllPatients() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_all_patients.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoLocalLinked() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_local_linked.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoLocalFile() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_local_file.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoWadoLinkedRecent() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_wado_linked_recent.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoLocalLinkedRecent() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_local_linked_recent.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoLocalFileRecent() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_local_file_recent.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoWadoLinked() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_wado_linked.png")); return bmp; } wxBitmap GinkgoResourcesManager::History::GetIcoWadoLinkedPreview() { wxBitmap bmp; LoadPNG(bmp, HistoryDir, wxT("ico_wado_linked_preview.png")); return bmp; } // Tool Icons wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoAngulo() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_angulo.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoAnotacion() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_anotacion.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoCruz() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_cruz.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoElevacion() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_elevacion.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoFlecha() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_flecha.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoLongitud() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_longitud.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoVarita() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_varita.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoLazoChroma() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_lazo_chroma.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoWindowLevel() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_wl.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoZoom() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_zoom.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoSinOpciones() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_sin_opciones.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoDebug() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_debug.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoMarcado() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_marcado.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoRejilla() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_rejilla.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoMostrarOcultarTags() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_mostrar_ocultar_tags.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoDesencajar() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_desencajar.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoCornerAnnotations() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_corner_annotations.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoInforme() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_informe.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoSlider() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_slider.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoLupa() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_lupa.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoPan() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_pan.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoMouseR() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_mouse_r.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoMouseL() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_mouse_l.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoMouseRL() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_mouse_rl.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoAnonymize() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_anonymize.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoLayout() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_layout.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoRotateLeft() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_rotate_left.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoRotateRight() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_rotate_right.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoFlipVertical() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_flip_vertical.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoFlipHorizontal() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_flip_horizontal.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoInvert() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_invert.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoTrackball() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_trackball.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoDownloadCloud() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_download_cloud.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoSearchCloud() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_search_cloud.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoCopyToClipboard() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_copy.png")); return bmp; } wxBitmap GinkgoResourcesManager::ToolIcons::GetIcoBrightnessContrast() { wxBitmap bmp; LoadPNG(bmp, ToolIconsDir, wxT("ico_brightness_contrast.png")); return bmp; } // Menu Icons wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoAbrir() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_abrir.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoOpenDir() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_open_dir.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoRemovableUnit() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_open_disc.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoOpenFile() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_open_file.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoCerrarTab() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_cerrar_tab.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoConfiguracion() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_configuracion.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoEditor() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_editor.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoExportar() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_exportar.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoFiltrado() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_filtrado.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoGuardar() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_guardar.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoImportar() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_importar.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoDicomDir() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_dicom_dir.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoReset() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_reset.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoSalir() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_salir.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoImpresora() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_impresora.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoVistaPreliminar() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_vista_preliminar.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoCalibrarImagen() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_calibrar_imagen.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoEliminar() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_eliminar_widget.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoEliminarTodo() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_eliminar_todo.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoEditar() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_editar.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoSendToPACS() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_send_to_pacs.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoEliminarWidget() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_eliminar_widget.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoPantallaCompleta() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_pantalla_completa.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoUser() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_user.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoHelp() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_help.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoSupport() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_support.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoObtainExtensions() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_obtain_extensions.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoTick() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_tick.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoCross() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_cross.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuIcons::GetIcoPaste() { wxBitmap bmp; LoadPNG(bmp, MenuIconsDir, wxT("ico_paste.png")); return bmp; } // Logos wxBitmap GinkgoResourcesManager::Logos::GetLogoGinkgo48x48() { wxBitmap bmp; LoadPNG(bmp, LogosDir, wxT("ginkgo48x48.png")); return bmp; } wxBitmap GinkgoResourcesManager::Logos::GetLogoGinkgo16x16() { wxBitmap bmp; LoadPNG(bmp, LogosDir, wxT("ico_ginkgo16x16.png")); return bmp; } wxBitmap GinkgoResourcesManager::Logos::GetLogoGinkgo32x32() { wxBitmap bmp; LoadPNG(bmp, LogosDir, wxT("ico_ginkgo32x32.png")); return bmp; } wxBitmap GinkgoResourcesManager::Logos::GetLogoSplash() { wxBitmap bmp; LoadPNG(bmp, LogosDir, wxT("ico_logo_splash.png")); return bmp; } wxBitmap GinkgoResourcesManager::Logos::GetExtensionsLogo() { wxBitmap bmp; LoadPNG(bmp, LogosDir, wxT("extensions_logo.png")); return bmp; } wxBitmap GinkgoResourcesManager::Logos::GetExtensionsErrorLogo() { wxBitmap bmp; LoadPNG(bmp, LogosDir, wxT("ico_extension_error.png")); return bmp; } // Big Icons wxBitmap GinkgoResourcesManager::BigIcons::GetIcoBigBook() { wxBitmap bmp; LoadPNG(bmp, BigIconsDir, wxT("ico_history_big.png")); return bmp; } wxBitmap GinkgoResourcesManager::BigIcons::GetIcoBigDicomize() { wxBitmap bmp; LoadPNG(bmp, BigIconsDir, wxT("ico_dicomize_big.png")); return bmp; } wxBitmap GinkgoResourcesManager::BigIcons::GetIcoBigQR() { wxBitmap bmp; LoadPNG(bmp, BigIconsDir, wxT("ico_qr_big.png")); return bmp; } wxBitmap GinkgoResourcesManager::BigIcons::GetIcoBigAcquire() { wxBitmap bmp; LoadPNG(bmp, BigIconsDir, wxT("ico_acquire_big.png")); return bmp; } wxBitmap GinkgoResourcesManager::BigIcons::GetIcoBigGinkgoCloudSearch() { wxBitmap bmp; LoadPNG(bmp, BigIconsDir, wxT("ico_search_ginkgocloud.png")); return bmp; } wxBitmap GinkgoResourcesManager::BigIcons::GetIcoDefaultDicomizer() { wxBitmap bmp; LoadPNG(bmp, BigIconsDir, wxT("ico_default_dicomizer.png")); return bmp; } // Cursors wxImage GinkgoResourcesManager::Cursors::GetCursorTransparente() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_transparente.png")); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorLupa() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_lupa.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorCrearLinea() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_crear_linea.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorManoAbierta() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_mano_abierta.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorManoCerrada() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_mano_cerrada.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorSeleccionar() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_seleccionar.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorCrearAnguloCobb() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_crear_angulo_cobb.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorCrearAnguloNormal() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_crear_angulo_normal.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorCrearAnotacion() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_crear_anotacion.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorCrearElipse() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_crear_elipse.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorCrearPoligono() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_crear_poligono.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorCrearPunto() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_crear_punto.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorCrearRectangulo() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_crear_rectangulo.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorWindowLevel() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_window_level.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 4); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 26); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorAnclaSimple() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_ancla_simple.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetCursorAnclaCompuesta() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_cursor_ancla_compuesta.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } wxImage GinkgoResourcesManager::Cursors::GetRotationCursor() { wxImage img; LoadPNG(img, CursorsDir, wxT("ico_rotate_cursor.png")); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, 16); img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, 16); return img; } // Progres Bar wxAnimation GinkgoResourcesManager::ProgressBar::GetAniLoading() { wxAnimation animation; LoadGIF(animation, ProgressBarDir, wxT("ico_loading.gif")); return animation; } wxBitmap GinkgoResourcesManager::ProgressBar::GetIcoStopped() { wxBitmap bmp; LoadPNG(bmp, ProgressBarDir, wxT("ico_stopped.png")); return bmp; } // Wizards wxBitmap GinkgoResourcesManager::Wizards::GetIcoBarraSuperior() { wxBitmap bmp; LoadPNG(bmp, WizardsDir, wxT("ico_barra_superior.png")); return bmp; } // Layout bar wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoAddColumn() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_add_columna.png")); return bmp; } wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoAddRow() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_add_fila.png")); return bmp; } wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoDelColumn() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_del_columna.png")); return bmp; } wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoDelRow() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_del_fila.png")); return bmp; } wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoLayout1x1() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_layout_1x1.png")); return bmp; } wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoLayout1x2() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_layout_1x2.png")); return bmp; } wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoLayout2x1() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_layout_2x1.png")); return bmp; } wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoLayout2x2() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_layout_2x2.png")); return bmp; } wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoLayout3x3() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_layout_3x3.png")); return bmp; } wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoLayout4x4() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_layout_4x4.png")); return bmp; } wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoLayout1x2Blue() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_layout_1x2_blue.png")); return bmp; } wxBitmap GinkgoResourcesManager::LayoutBar::GetIcoLayout2x1Blue() { wxBitmap bmp; LoadPNG(bmp, LayoutBarDir, wxT("ico_layout_2x1_blue.png")); return bmp; } // Menu Tabs wxBitmap GinkgoResourcesManager::MenuTabs::GetIcoCerrarTab() { wxBitmap bmp; LoadPNG(bmp, MenuTabsDir, wxT("ico_cerrar_tab_32.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuTabs::GetIcoPrimerPlano() { wxBitmap bmp; LoadPNG(bmp, MenuTabsDir, wxT("ico_primer_plano_tab.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuTabs::GetIcoGrid2Col() { wxBitmap bmp; LoadPNG(bmp, MenuTabsDir, wxT("ico_grid_2_col.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuTabs::GetIcoGrid3Col() { wxBitmap bmp; LoadPNG(bmp, MenuTabsDir, wxT("ico_grid_3_col.png")); return bmp; } wxBitmap GinkgoResourcesManager::MenuTabs::GetIcoReagrupar() { wxBitmap bmp; LoadPNG(bmp, MenuTabsDir, wxT("ico_reagrupar.png")); return bmp; } // Cine bar wxBitmap GinkgoResourcesManager::CineBar::GetIcoPlay() { wxBitmap bmp; LoadPNG(bmp, CineBarDir, wxT("ico_play.png")); return bmp; } wxBitmap GinkgoResourcesManager::CineBar::GetIcoBucle() { wxBitmap bmp; LoadPNG(bmp, CineBarDir, wxT("ico_bucle.png")); return bmp; } wxBitmap GinkgoResourcesManager::CineBar::GetIcoNoBucle() { wxBitmap bmp; LoadPNG(bmp, CineBarDir, wxT("ico_no_bucle.png")); return bmp; } wxBitmap GinkgoResourcesManager::CineBar::GetIcoStop() { wxBitmap bmp; LoadPNG(bmp, CineBarDir, wxT("ico_stop.png")); return bmp; } wxBitmap GinkgoResourcesManager::CineBar::GetIcoPause() { wxBitmap bmp; LoadPNG(bmp, CineBarDir, wxT("ico_pause.png")); return bmp; } wxBitmap GinkgoResourcesManager::CineBar::GetIcoCine() { wxBitmap bmp; LoadPNG(bmp, CineBarDir, wxT("ico_cine.png")); return bmp; } ginkgocadx-3.8.7/cadxcore/resources/ginkgoresourcesmanager.h000066400000000000000000000242531314736454600244110ustar00rootroot00000000000000/* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include class EXTAPI GinkgoResourcesManager { public: // Adquisicion class EXTAPI Acquisition { public: static wxBitmap GetIcoAdquireFile(); static wxBitmap GetIcoAdquirePACS(); static wxBitmap GetIcoDownload(); static wxBitmap GetIcoClear(); static wxBitmap GetIcoRemoveDownload(); }; class EXTAPI AngleBar { public: static wxBitmap GetIcoAnguloCobb(); static wxBitmap GetIcoAnguloNormal(); }; class EXTAPI MagnifierBar { public: static wxBitmap GetIcoZoomIn(); static wxBitmap GetIcoZoomOut(); }; class EXTAPI GridBar { public: static wxBitmap GetIcoVerRejilla(); static wxBitmap GetIcoOcultarRejilla(); }; class EXTAPI WindowLevelBar { public: static wxBitmap GetIcoReset(); }; class EXTAPI MarkingBar { public: static wxBitmap GetIcoElipse(); static wxBitmap GetIcoFlecha(); static wxBitmap GetIcoPoligono(); static wxBitmap GetIcoFreeForm(); static wxBitmap GetIcoPunto(); static wxBitmap GetIcoRectangulo(); static wxBitmap GetIcoTrapezoide(); }; class EXTAPI History { public: static wxBitmap GetIcoEstudio(); static wxBitmap GetIcoSerie(); static wxBitmap GetIcoImagen(); static wxBitmap GetIcoHistorialOpen(); static wxBitmap GetIcoHombre(); static wxBitmap GetIcoMujer(); static wxBitmap GetIcoOtro(); static wxBitmap GetIcoFicheroClave(); static wxBitmap GetIcoPlegar(); static wxBitmap GetIcoDesplegar(); static wxBitmap GetMoviePreview(); static wxBitmap GetPDFPreview(); static wxBitmap GetIcoUnknownFile(); static wxBitmap GetIcoCleanAll(); static wxBitmap GetIcoAllPatients(); static wxBitmap GetIcoLocalFile(); static wxBitmap GetIcoLocalLinked(); static wxBitmap GetIcoWadoLinked(); static wxBitmap GetIcoLocalFileRecent(); static wxBitmap GetIcoLocalLinkedRecent(); static wxBitmap GetIcoWadoLinkedRecent(); static wxBitmap GetIcoWadoLinkedPreview(); }; class EXTAPI ToolIcons { public: static wxBitmap GetIcoAngulo(); static wxBitmap GetIcoAnotacion(); static wxBitmap GetIcoCruz(); static wxBitmap GetIcoElevacion(); static wxBitmap GetIcoFlecha(); static wxBitmap GetIcoLongitud(); static wxBitmap GetIcoVarita(); static wxBitmap GetIcoLazoChroma(); static wxBitmap GetIcoWindowLevel(); static wxBitmap GetIcoZoom(); static wxBitmap GetIcoSinOpciones(); static wxBitmap GetIcoDebug(); static wxBitmap GetIcoMarcado(); static wxBitmap GetIcoRejilla(); static wxBitmap GetIcoMostrarOcultarTags(); static wxBitmap GetIcoDesencajar(); static wxBitmap GetIcoCornerAnnotations(); static wxBitmap GetIcoInforme(); static wxBitmap GetIcoSlider(); static wxBitmap GetIcoLupa(); static wxBitmap GetIcoPan(); static wxBitmap GetIcoMouseR(); static wxBitmap GetIcoMouseL(); static wxBitmap GetIcoMouseRL(); static wxBitmap GetIcoAnonymize(); static wxBitmap GetIcoLayout(); static wxBitmap GetIcoFlipVertical(); static wxBitmap GetIcoFlipHorizontal(); static wxBitmap GetIcoRotateLeft(); static wxBitmap GetIcoRotateRight(); static wxBitmap GetIcoInvert(); static wxBitmap GetIcoTrackball(); static wxBitmap GetIcoDownloadCloud(); static wxBitmap GetIcoSearchCloud(); static wxBitmap GetIcoCopyToClipboard(); static wxBitmap GetIcoBrightnessContrast(); }; class EXTAPI MenuIcons { public: static wxBitmap GetIcoAbrir(); static wxBitmap GetIcoOpenDir(); static wxBitmap GetIcoRemovableUnit(); static wxBitmap GetIcoOpenFile(); static wxBitmap GetIcoCerrarTab(); static wxBitmap GetIcoConfiguracion(); static wxBitmap GetIcoEditor(); static wxBitmap GetIcoExportar(); static wxBitmap GetIcoFiltrado(); static wxBitmap GetIcoGuardar(); static wxBitmap GetIcoImportar(); static wxBitmap GetIcoDicomDir(); static wxBitmap GetIcoReset(); static wxBitmap GetIcoSalir(); static wxBitmap GetIcoImpresora(); static wxBitmap GetIcoVistaPreliminar(); static wxBitmap GetIcoCalibrarImagen(); static wxBitmap GetIcoEliminar(); static wxBitmap GetIcoEliminarTodo(); static wxBitmap GetIcoEditar(); static wxBitmap GetIcoSendToPACS(); static wxBitmap GetIcoEliminarWidget(); static wxBitmap GetIcoPantallaCompleta(); static wxBitmap GetIcoUser(); static wxBitmap GetIcoHelp(); static wxBitmap GetIcoSupport(); static wxBitmap GetIcoObtainExtensions(); static wxBitmap GetIcoTick(); static wxBitmap GetIcoCross(); static wxBitmap GetIcoPaste(); }; class EXTAPI Logos { public: static wxBitmap GetLogoGinkgo48x48(); static wxBitmap GetLogoGinkgo16x16(); static wxBitmap GetLogoGinkgo32x32(); static wxBitmap GetLogoSplash(); static wxBitmap GetExtensionsLogo(); static wxBitmap GetExtensionsErrorLogo(); }; class EXTAPI BigIcons { public: static wxBitmap GetIcoBigBook(); static wxBitmap GetIcoBigDicomize(); static wxBitmap GetIcoBigQR(); static wxBitmap GetIcoBigAcquire(); static wxBitmap GetIcoBigGinkgoCloudSearch(); static wxBitmap GetIcoDefaultDicomizer(); }; class EXTAPI Cursors { public: static wxImage GetCursorTransparente(); static wxImage GetCursorLupa(); static wxImage GetCursorCrearLinea(); static wxImage GetCursorManoAbierta(); static wxImage GetCursorManoCerrada(); static wxImage GetCursorSeleccionar(); static wxImage GetCursorCrearAnguloCobb(); static wxImage GetCursorCrearAnguloNormal(); static wxImage GetCursorCrearAnotacion(); static wxImage GetCursorCrearElipse(); static wxImage GetCursorCrearPoligono(); static wxImage GetCursorCrearPunto(); static wxImage GetCursorCrearRectangulo(); static wxImage GetCursorWindowLevel(); static wxImage GetCursorAnclaSimple(); static wxImage GetCursorAnclaCompuesta(); static wxImage GetRotationCursor(); }; class EXTAPI ProgressBar { public: static wxAnimation GetAniLoading(); static wxBitmap GetIcoStopped(); }; class EXTAPI Wizards { public: static wxBitmap GetIcoBarraSuperior(); }; class EXTAPI LayoutBar { public: static wxBitmap GetIcoAddColumn(); static wxBitmap GetIcoAddRow(); static wxBitmap GetIcoDelColumn(); static wxBitmap GetIcoDelRow(); static wxBitmap GetIcoLayout1x1(); static wxBitmap GetIcoLayout1x2(); static wxBitmap GetIcoLayout2x1(); static wxBitmap GetIcoLayout2x2(); static wxBitmap GetIcoLayout3x3(); static wxBitmap GetIcoLayout4x4(); static wxBitmap GetIcoLayout1x2Blue(); static wxBitmap GetIcoLayout2x1Blue(); }; class EXTAPI MenuTabs { public: static wxBitmap GetIcoCerrarTab(); static wxBitmap GetIcoPrimerPlano(); static wxBitmap GetIcoGrid2Col(); static wxBitmap GetIcoGrid3Col(); static wxBitmap GetIcoReagrupar(); }; class EXTAPI CineBar { public: static wxBitmap GetIcoPlay(); static wxBitmap GetIcoBucle(); static wxBitmap GetIcoNoBucle(); static wxBitmap GetIcoStop(); static wxBitmap GetIcoPause(); static wxBitmap GetIcoCine(); }; }; ginkgocadx-3.8.7/cadxcore/resources/test_card.dcm000066400000000000000000040037321314736454600221340ustar00rootroot00000000000000DICMULOBUI1.2.840.10008.5.1.4.1.1.7UI01.3.46.670589.5.2.11.2157706413.988360051.147590UI1.2.840.10008.1.2UI1.2.804.114118.3SHeFilm/UCDavisLibAE  ISO_IR 100DERIVED\SECONDARY  ACR-NEMA 2.01.2.840.10008.5.1.4.1.1.701.3.46.670589.5.2.11.2157706413.988360051.147590 19940221!19940221"19920221#199302250000001.000000 1000000.000000 2000000.000000 3000000.000000 @AFINAL P`OTdDVp  SPI-P Release 1 NO_PMS_DATA_OBJECT  &P0310000400076320801011994022112410264 $P03100004000762924112001042710273145 $P03100004000762924112001042710273145DTestImage SMPTE_1K Test 300019940221@O  01.3.46.670589.5.2.11.2157706413.988360052.229523 01.3.46.670589.5.2.11.2157706413.988360051.296239   1  1  1 R01.3.46.670589.5.2.11.2157706413.988360051.296400((( MONOCHROME2 (((((((P 1.275000e+02(Q 2.550000e+02)Z)SPI-P Release 1 ) SPI-P-Private_ICS Release 1 )%SPI-P-Private_ICS Release 1;5 )4 1.000000e+00\1.000000e+00\1.024000e+03\1.024000e+03) ))%SPI-P-Private_ICS Release 1;1 )% )%vn)b)%SPI-P-Private_ICS Release 1;1 )%)%)%C) %)!%B)! XP)D)$SPI-P-Private_ICS Release 1 )h$)j$FILE)k$)L tl)`)%SPI-P-Private_ICS Release 1;1 )(SPI-P-Private_ICS Release 1;4 )%P)()g FILE)@%zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz                                          LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz̿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz忿忿忿忿忿忿忿                                                                                                                                  zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzginkgocadx-3.8.7/cadxcore/singleinstance.h000066400000000000000000000137611314736454600206430ustar00rootroot00000000000000/* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include
    #include
    #include
    // Connection class, for use by both communicating instances class GinkgoDispatcher: public GNC::GCS::ILockable { public: static GinkgoDispatcher* Instance() { if (m_pInstance == NULL) { m_pInstance = new GinkgoDispatcher(); } return m_pInstance; } static void FreeInstance() { if (m_pInstance != NULL) { delete m_pInstance; m_pInstance = NULL; } } void InsertarPeticion(const std::string& peticion) { { GNC::GCS::ILocker lock(this); m_listaPeticiones.push_back(peticion); } if (!m_timer.IsRunning()) { Procesar(); } } void Procesar() { if (m_listaPeticiones.size() == 0) return; // Check that there are no modal dialogs active wxWindowList::compatibility_iterator node = wxTopLevelWindows.GetFirst(); while (node) { wxDialog* dialog = wxDynamicCast(node->GetData(), wxDialog); if (dialog && dialog->IsModal()) { LOG_INFO("GinkgoDispatcher", "GinkgoDispatcher, hay dilogos abiertos no se procesa el mensaje"); m_timer.Start(1000, true); return ; } node = node->GetNext(); } std::string peticion; //extraigo la peticion a procesar { GNC::GCS::ILocker lock(this); peticion = m_listaPeticiones.front(); m_listaPeticiones.pop_front(); } //la proceso... wxString fileName = FROMPATH(peticion); GNC::Entorno::Instance()->GetVentanaPrincipal()->EjecutarParametro(fileName, false); { GNC::GCS::ILocker lock(this); if (m_listaPeticiones.size() > 0) { m_timer.Start(1000, true); } } } protected: class wxTimerServer: public wxTimer { public: wxTimerServer(GinkgoDispatcher* pServer) { m_pServer = pServer; } ~wxTimerServer() {} virtual void Notify() { m_pServer->Procesar(); } GinkgoDispatcher* m_pServer; }; GinkgoDispatcher(): m_timer(this) {} ~GinkgoDispatcher() {} static GinkgoDispatcher* m_pInstance; wxTimerServer m_timer; std::list m_listaPeticiones; }; GinkgoDispatcher* GinkgoDispatcher::m_pInstance = NULL; //conexion class stConnection : public wxConnection { public: stConnection() {} ~stConnection() {} virtual bool OnExec(const wxString& WXUNUSED(topic), const wxString& data) { wxString filename(data); LOG_INFO("Core", "Servidor, OnExecute "<< filename.ToUTF8()); if (filename.IsEmpty()) { // Just raise the main window wxTopLevelWindow* frame = GNC::Entorno::Instance()->GetVentanaPrincipal(); if (frame) { if (frame->IsIconized()) { frame->Restore(); } frame->Raise(); } } else { GinkgoDispatcher::Instance()->InsertarPeticion(std::string(TOPATH(filename))); } return true; } }; class stServer: public wxServer { public: stServer() { //std::cout << "== stServer::stServer ( " << this << " )" << std::endl; } ~stServer() { GinkgoDispatcher::FreeInstance(); //std::cout << "== stServer::~stServer ( " << this << " )" << std::endl; } wxConnectionBase *OnAcceptConnection(const wxString& topic) { const wxString name = wxString::Format(wxT("Ginkgo-%s"), wxGetUserId().c_str()); if (topic == name) { LOG_INFO("Core", "Servidor, conexin aceptada"); return new stConnection(); } else { LOG_INFO("Core", "Se han intentado comunicar con el servidor usando un topic desconocido"); return NULL; } } }; // Client class, to be used by subsequent instances in OnInit class stClient: public wxClient { public: stClient() {}; wxConnectionBase *OnMakeConnection() { return new stConnection; } }; ginkgocadx-3.8.7/cadxcore/sqlite/000077500000000000000000000000001314736454600167555ustar00rootroot00000000000000ginkgocadx-3.8.7/cadxcore/sqlite/ginkgosqlite.h000066400000000000000000000413271314736454600216350ustar00rootroot00000000000000/* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #ifndef _WIN32 #include #define Sleep sleep #define strcpy_s strcpy #define strcat_s strcat #endif //version of ginkgo bbdd #define GINKGO_BBDD_VERSION 7 //#define _GINKGO_TRACE /** Timeout values on busy or lock conditions **/ /** if you observe lock errors you might try to **/ /** increase the values. **/ int AbrirConexion(wxSQLite3Database& dataBase,const std::string& DBFileName) { if(dataBase.IsOpen()) { return (0); } dataBase.Open(FROMPATH(DBFileName),wxEmptyString, WXSQLITE_OPEN_READWRITE|WXSQLITE_OPEN_CREATE); dataBase.EnableForeignKeySupport(true); dataBase.ExecuteUpdate(wxT("PRAGMA recursive_triggers = true;")); dataBase.ExecuteUpdate(wxT("PRAGMA synchronous=NORMAL;")); #ifdef _GINKGO_TRACE dataBase.ExecuteUpdate(wxT("PRAGMA parser_trace = true;")); #endif return 1; } int CreateGinkgoDB(wxSQLite3Database& dataBase,const char *DBFileName) { if (!AbrirConexion(dataBase, DBFileName)) { return (0); } /** Create Tables del Historial: **/ /** 1. study table **/ wxString sentencia = wxEmptyString; sentencia << wxT("CREATE TABLE Study ("); sentencia << wxT("pk INTEGER PRIMARY KEY,"); //autoincrement by default (SQLITE) sentencia << wxT("pat_id VARCHAR(250) ,"); sentencia << wxT("pat_id_issuer VARCHAR(250),"); sentencia << wxT("pat_name VARCHAR(250) ,"); sentencia << wxT("pat_birthdate DATE,"); sentencia << wxT("pat_sex VARCHAR(250),"); sentencia << wxT("study_iuid VARCHAR(250),"); sentencia << wxT("study_id VARCHAR(250),"); sentencia << wxT("study_datetime DATETIME,"); sentencia << wxT("accession_no VARCHAR(250),"); sentencia << wxT("ref_physician VARCHAR(250),"); sentencia << wxT("study_desc VARCHAR(250),"); sentencia << wxT("mods_in_study VARCHAR(250),"); sentencia << wxT("cuids_in_study VARCHAR(250),"); sentencia << wxT("num_series INTEGER,"); sentencia << wxT("num_instances INTEGER,"); sentencia << wxT("location CHAR DEFAULT 'B',"); //B implies fully local L implies some files linked W implies some files wado linked sentencia << wxT("created_time DATETIME DEFAULT CURRENT_TIMESTAMP,"); sentencia << wxT("updated_time DATETIME);"); dataBase.ExecuteUpdate(sentencia); //study indexes sentencia = wxEmptyString; sentencia << wxT("CREATE Index pat_id "); sentencia << wxT("ON Study(pat_id, pat_id_issuer);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index pat_name "); sentencia << wxT("ON Study(pat_name);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index pat_birthdate "); sentencia << wxT("ON Study(pat_birthdate);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index pat_sex "); sentencia << wxT("ON Study(pat_sex);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index study_iuid "); sentencia << wxT("ON Study(study_iuid);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index study_datetime "); sentencia << wxT("ON Study(study_datetime);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index accession_no "); sentencia << wxT("ON Study(accession_no);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index ref_physician "); sentencia << wxT("ON Study(ref_physician);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index study_desc "); sentencia << wxT("ON Study(study_desc);"); dataBase.ExecuteUpdate(sentencia); /** 1. Tabla de series **/ sentencia = wxEmptyString; sentencia << wxT("CREATE TABLE Series ("); sentencia << wxT("pk INTEGER PRIMARY KEY,"); //autoincrement by default (SQLITE) sentencia << wxT("study_fk INTEGER REFERENCES Study(pk) ON UPDATE CASCADE ON DELETE CASCADE,"); sentencia << wxT("series_iuid VARCHAR(250),"); sentencia << wxT("series_datetime DATETIME,"); sentencia << wxT("series_no VARCHAR(250),"); sentencia << wxT("modality VARCHAR(250),"); sentencia << wxT("uid_importer VARCHAR(250),"); sentencia << wxT("body_part VARCHAR(250),"); sentencia << wxT("laterality VARCHAR(250),"); sentencia << wxT("series_desc VARCHAR(250),"); sentencia << wxT("institution VARCHAR(250),"); sentencia << wxT("station_name VARCHAR(250),"); sentencia << wxT("department VARCHAR(250),"); sentencia << wxT("perf_physician VARCHAR(250),"); sentencia << wxT("num_instances INTEGER,"); sentencia << wxT("frame_of_reference_uid VARCHAR(250),"); sentencia << wxT("tuids_in_series VARCHAR(250),"); sentencia << wxT("location CHAR DEFAULT 'B',"); //B implies fully local L implies some files linked W implies some files wado linked sentencia << wxT("created_time DATETIME DEFAULT CURRENT_TIMESTAMP,"); sentencia << wxT("updated_time DATETIME);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index series_iuid "); sentencia << wxT("ON Series(series_iuid);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index series_datetime "); sentencia << wxT("ON Series(series_datetime);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index modality "); sentencia << wxT("ON Series(modality);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index body_part "); sentencia << wxT("ON Series(body_part);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index laterality "); sentencia << wxT("ON Series(laterality);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index series_desc "); sentencia << wxT("ON Series(series_desc);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index institution "); sentencia << wxT("ON Series(institution);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index station_name "); sentencia << wxT("ON Series(station_name);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index department "); sentencia << wxT("ON Series(department);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index perf_physician "); sentencia << wxT("ON Series(perf_physician);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index series_study "); sentencia << wxT("ON Series(pk, study_fk);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index series_location "); sentencia << wxT("ON Series(study_fk, location);"); dataBase.ExecuteUpdate(sentencia); /** 1. Tabla de ficheros **/ sentencia = wxEmptyString; sentencia << wxT("CREATE TABLE File ("); sentencia << wxT("pk INTEGER PRIMARY KEY,"); //autoincrement by default (SQLITE) sentencia << wxT("series_fk INTEGER REFERENCES Series(pk) ON UPDATE CASCADE ON DELETE CASCADE,"); #ifdef _WIN32 sentencia << wxT("file_path VARCHAR(1024) COLLATE NOCASE,"); #else sentencia << wxT("file_path VARCHAR(1024),"); #endif sentencia << wxT("file_sopiuid VARCHAR(240),"); sentencia << wxT("file_tsuid VARCHAR(240),"); sentencia << wxT("content_datetime DATETIME,"); sentencia << wxT("sopcuid VARCHAR(240),"); sentencia << wxT("orientation CHAR,");//A,C,S, O sentencia << wxT("image_positionx DOUBLE,");//patients position en la coordenada que interesa sentencia << wxT("image_positiony DOUBLE,");//patients position en la coordenada que interesa sentencia << wxT("image_positionz DOUBLE,");//patients position en la coordenada que interesa sentencia << wxT("slice_location DOUBLE,");//slice location sentencia << wxT("slice_thickness DOUBLE,");//slice thickness sentencia << wxT("height INTEGER,"); //altura imagen sentencia << wxT("width INTEGER,"); //anchura imagen sentencia << wxT("number_of_frames INTEGER,"); //image number of frames sentencia << wxT("instance_number INTEGER,"); //instance number sentencia << wxT("file_desc VARCHAR(240),"); sentencia << wxT("spacing VARCHAR(240),"); sentencia << wxT("direction_cosines VARCHAR(240),"); sentencia << wxT("location CHAR DEFAULT 'B',"); //B implies fully local L implies some files linked W implies some files wado linked sentencia << wxT("created_time DATETIME DEFAULT CURRENT_TIMESTAMP,"); sentencia << wxT("updated_time DATETIME);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index file_tsuid "); sentencia << wxT("ON File(file_tsuid);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index orderBy1 "); sentencia << wxT("ON File(instance_number, content_datetime, image_positionz);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index orderBy2 "); sentencia << wxT("ON File(instance_number, content_datetime, image_positiony);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index orderBy3 "); sentencia << wxT("ON File(instance_number, content_datetime, image_positionx);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index orderBy4 "); sentencia << wxT("ON File(instance_number, content_datetime, slice_location);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index instance_number "); sentencia << wxT("ON File(instance_number);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index content_datetime "); sentencia << wxT("ON File(content_datetime);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index sopcuid "); sentencia << wxT("ON File(sopcuid);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia = wxEmptyString; sentencia << wxT("CREATE Index file_series "); sentencia << wxT("ON File(pk, series_fk);"); dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index file_location "); sentencia << wxT("ON File(series_fk, location);"); dataBase.ExecuteUpdate(sentencia); //version table sentencia = wxEmptyString; sentencia << wxT("CREATE TABLE MetadataBBDD ("); sentencia << wxT("Property VARCHAR(70) PRIMARY KEY, "); sentencia << wxT("Value VARCHAR(70));"); dataBase.ExecuteUpdate(sentencia); //insert version value sentencia = wxEmptyString; sentencia << wxT("INSERT INTO MetadataBBDD (Property, Value) VALUES ('Version',") << GINKGO_BBDD_VERSION << wxT(");"); dataBase.ExecuteUpdate(sentencia); /** tasks table **/ sentencia = wxEmptyString; sentencia << wxT("CREATE TABLE Tasks ("); sentencia << wxT("pk INTEGER PRIMARY KEY,"); //autoincrement by default (SQLITE) sentencia << wxT("created_time DATETIME DEFAULT CURRENT_TIMESTAMP,"); sentencia << wxT("uid VARCHAR(40),");//class uid sentencia << wxT("status INGEGER(1) DEFAULT '0',");//status sentencia << wxT("error_description VARCHAR(240) DEFAULT '',");//message sentencia << wxT("description VARCHAR(250),");//description sentencia << wxT("data TEXT);");//task data dataBase.ExecuteUpdate(sentencia); sentencia = wxEmptyString; sentencia << wxT("CREATE Index task_created_time "); sentencia << wxT("ON Tasks(created_time);"); dataBase.ExecuteUpdate(sentencia); /** tasks table **/ sentencia = wxEmptyString; sentencia << wxT("CREATE TABLE TasksSeries ("); sentencia << wxT("task_fk INTEGER REFERENCES Tasks(pk) ON UPDATE CASCADE ON DELETE CASCADE,"); //task sentencia << wxT("series_fk INTEGER REFERENCES Series(pk) ON UPDATE CASCADE ON DELETE CASCADE,"); sentencia << wxT("PRIMARY KEY (task_fk, series_fk));");//series dataBase.ExecuteUpdate(sentencia); /*Triggers de mantenimiento*/ //si se borran todos los ficheros de una serie se borra la serie sentencia = wxEmptyString; sentencia << wxT("CREATE TRIGGER delete_fichero1 AFTER DELETE ON File "); sentencia << wxT("FOR EACH ROW "); sentencia << wxT("WHEN ((SELECT series_fk FROM File WHERE series_fk = OLD.series_fk) IS NULL) "); sentencia << wxT("BEGIN "); sentencia << wxT("DELETE FROM Series WHERE pk = OLD.series_fk; "); sentencia << wxT("END;"); dataBase.ExecuteUpdate(sentencia); //si se borran todas las series de un estudio se borra el estudio sentencia = wxEmptyString; sentencia << wxT("CREATE TRIGGER delete_serie AFTER DELETE ON Series "); sentencia << wxT("FOR EACH ROW "); sentencia << wxT("WHEN ((SELECT study_fk FROM Series WHERE study_fk = OLD.study_fk) IS NULL) "); sentencia << wxT("BEGIN "); sentencia << wxT("DELETE FROM Study WHERE pk = OLD.study_fk; "); sentencia << wxT("END;"); dataBase.ExecuteUpdate(sentencia); //si se borran todas las tareas que no apunten a ninguna serie sentencia = wxEmptyString; sentencia << wxT("CREATE TRIGGER delete_task AFTER DELETE ON TasksSeries "); sentencia << wxT("FOR EACH ROW "); sentencia << wxT("WHEN ((SELECT task_fk FROM TasksSeries WHERE task_fk = OLD.task_fk) IS NULL) "); sentencia << wxT("BEGIN "); sentencia << wxT("DELETE FROM Tasks WHERE pk = OLD.task_fk; "); sentencia << wxT("END;"); dataBase.ExecuteUpdate(sentencia); return(1); } int AbrirConexionThumbnails(wxSQLite3Database& dataBase,const std::string& DBFileName) { if(dataBase.IsOpen()) { return (0); } dataBase.Open(FROMPATH(DBFileName),wxEmptyString, WXSQLITE_OPEN_READWRITE|WXSQLITE_OPEN_CREATE); return 1; } int CreateGinkgoDBThumbnails(wxSQLite3Database& dataBase,const std::string& DBFileName) { if (!AbrirConexionThumbnails(dataBase, DBFileName)) { return (0); } /** Create Tables del Historial: **/ wxString sentencia(wxT("")); /** 1. Tabla de thumbnails **/ sentencia = wxEmptyString; sentencia << wxT("CREATE TABLE Thumbnails ("); sentencia << wxT("file_pk INTEGER,"); sentencia << wxT("width INTEGER,"); sentencia << wxT("height INTEGER,"); sentencia << wxT("thumb BLOB "); sentencia << wxT(", PRIMARY KEY (file_pk, width, height))"); dataBase.ExecuteUpdate(sentencia); return(1); } ginkgocadx-3.8.7/cadxcore/sqlite/hl7sqlite.h000066400000000000000000000047121314736454600210460ustar00rootroot00000000000000/* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #include #ifndef _WIN32 #include #define Sleep sleep #define strcpy_s strcpy #define strcat_s strcat #endif //#define _GINKGO_TRACE /** Timeout values on busy or lock conditions **/ /** if you observe lock errors you might try to **/ /** increase the values. **/ #define SQLTM_COUNT 200 /** -> SQLTM_COUNT*SQLTM_TIME ms timeout **/ #define SQLTM_TIME 50 inline int AbrirConexionBBDDMensajes(wxSQLite3Database& dataBase,const std::string& DBFileName) { if(dataBase.IsOpen()) { return (0); } dataBase.Open(FROMPATH(DBFileName),wxEmptyString, WXSQLITE_OPEN_READWRITE|WXSQLITE_OPEN_CREATE); dataBase.EnableForeignKeySupport(false); return 1; } inline int CreateMensajesHl7DB(wxSQLite3Database& dataBase,const std::string& DBFileName) { if (!AbrirConexionBBDDMensajes(dataBase, DBFileName)) { return (0); } /** Create Tables del Historial: **/ /** 1. Tabla de mensajes **/ wxString sentencia(wxT("")); sentencia << wxT("CREATE TABLE MensajesHL7 ("); sentencia << wxT("IDMensaje INTEGER PRIMARY KEY,"); sentencia << wxT("FechaEnvio DATETIME,"); sentencia << wxT("Mensaje TEXT,"); sentencia << wxT("URLEnvio VARCHAR(1000),"); sentencia << wxT("Protocolo integer,"); sentencia << wxT("ProcesarACK CHAR,"); sentencia << wxT("MsgControlId VARCHAR(100) Default '',"); sentencia << wxT("MensajeError VARCHAR(500) Default NULL,"); sentencia << wxT("Enviado CHAR Default 'N');"); dataBase.ExecuteUpdate(sentencia); return(1); } ginkgocadx-3.8.7/cadxcore/sqlite/seguridad.h000066400000000000000000000040761314736454600211040ustar00rootroot00000000000000/* * Ginkgo CADx Project * * Copyright (c) 2015-2016 Gert Wollny * Copyright (c) 2008-2014 MetaEmotion S.L. All rights reserved. * * Ginkgo CADx is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser Public License * along with Ginkgo CADx; if not, see . * */ #pragma once #include #include #ifndef _WIN32 #include #define Sleep sleep #define strcpy_s strcpy #define strcat_s strcat #endif //#define _GINKGO_TRACE /** Timeout values on busy or lock conditions **/ /** if you observe lock errors you might try to **/ /** increase the values. **/ #define SQLTM_COUNT 200 /** -> SQLTM_COUNT*SQLTM_TIME ms timeout **/ #define SQLTM_TIME 50 inline int AbrirConexionBBDDSeguridad(wxSQLite3Database& dataBase,const std::string& DBFileName) { if(dataBase.IsOpen()) { return (0); } dataBase.Open(FROMPATH(DBFileName),wxEmptyString, WXSQLITE_OPEN_READWRITE|WXSQLITE_OPEN_CREATE); dataBase.EnableForeignKeySupport(false); return 1; } inline int CreateSeguridadDB(wxSQLite3Database& dataBase,const std::string& DBFileName) { if (!AbrirConexionBBDDSeguridad(dataBase, DBFileName)) { return (0); } /** Create Tables del Seguridad: **/ /** 1. Tabla de usuario/password **/ wxString sentencia(wxT("")); sentencia << wxT("CREATE TABLE UserPass ("); sentencia << wxT("User VARCHAR(20) PRIMARY KEY,"); sentencia << wxT("Password VARCHAR(64));"); dataBase.ExecuteUpdate(sentencia); return(1); } ginkgocadx-3.8.7/cadxcore/sqlite/sqlite3.c000066400000000000000000207357571314736454600205370ustar00rootroot00000000000000/****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite ** version 3.7.6.2. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements ** of 5% or more are commonly seen when SQLite is compiled as a single ** translation unit. ** ** This file is all you need to compile SQLite. To use SQLite in other ** programs, you need this file and the "sqlite3.h" header file that defines ** the programming interface to the SQLite library. (If you do not have ** the "sqlite3.h" header file at hand, you will find a copy embedded within ** the text of this file. Search for "Begin file sqlite3.h" to find the start ** of the embedded sqlite3.h header file.) Additional code files may be needed ** if you want a wrapper to interface SQLite with your choice of programming ** language. The code for the "sqlite3" command-line shell is also in a ** separate file. This file contains only code for the core SQLite library. */ #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 #ifndef SQLITE_PRIVATE # define SQLITE_PRIVATE static #endif #ifndef SQLITE_API # define SQLITE_API #endif /************** Begin file sqliteInt.h ***************************************/ /* ** 2001 September 15 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** Internal interface definitions for SQLite. ** */ #ifndef _SQLITEINT_H_ #define _SQLITEINT_H_ /* ** These #defines should enable >2GB file support on POSIX if the ** underlying operating system supports it. If the OS lacks ** large file support, or if the OS is windows, these should be no-ops. ** ** Ticket #2739: The _LARGEFILE_SOURCE macro must appear before any ** system #includes. Hence, this block of code must be the very first ** code in all source files. ** ** Large file support can be disabled using the -DSQLITE_DISABLE_LFS switch ** on the compiler command line. This is necessary if you are compiling ** on a recent machine (ex: Red Hat 7.2) but you want your code to work ** on an older machine (ex: Red Hat 6.0). If you compile on Red Hat 7.2 ** without this option, LFS is enable. But LFS does not exist in the kernel ** in Red Hat 6.0, so the code won't work. Hence, for maximum binary ** portability you should omit LFS. ** ** Similar is true for Mac OS X. LFS is only supported on Mac OS X 9 and later. */ #ifndef SQLITE_DISABLE_LFS # define _LARGE_FILE 1 # ifndef _FILE_OFFSET_BITS # define _FILE_OFFSET_BITS 64 # endif # define _LARGEFILE_SOURCE 1 #endif /* ** Include the configuration header output by 'configure' if we're using the ** autoconf-based build */ #ifdef _HAVE_SQLITE_CONFIG_H #include "config.h" #endif /************** Include sqliteLimit.h in the middle of sqliteInt.h ***********/ /************** Begin file sqliteLimit.h *************************************/ /* ** 2007 May 7 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** ** This file defines various limits of what SQLite can process. */ /* ** The maximum length of a TEXT or BLOB in bytes. This also ** limits the size of a row in a table or index. ** ** The hard limit is the ability of a 32-bit signed integer ** to count the size: 2^31-1 or 2147483647. */ #ifndef SQLITE_MAX_LENGTH # define SQLITE_MAX_LENGTH 1000000000 #endif /* ** This is the maximum number of ** ** * Columns in a table ** * Columns in an index ** * Columns in a view ** * Terms in the SET clause of an UPDATE statement ** * Terms in the result set of a SELECT statement ** * Terms in the GROUP BY or ORDER BY clauses of a SELECT statement. ** * Terms in the VALUES clause of an INSERT statement ** ** The hard upper limit here is 32676. Most database people will ** tell you that in a well-normalized database, you usually should ** not have more than a dozen or so columns in any table. And if ** that is the case, there is no point in having more than a few ** dozen values in any of the other situations described above. */ #ifndef SQLITE_MAX_COLUMN # define SQLITE_MAX_COLUMN 2000 #endif /* ** The maximum length of a single SQL statement in bytes. ** ** It used to be the case that setting this value to zero would ** turn the limit off. That is no longer true. It is not possible ** to turn this limit off. */ #ifndef SQLITE_MAX_SQL_LENGTH # define SQLITE_MAX_SQL_LENGTH 1000000000 #endif /* ** The maximum depth of an expression tree. This is limited to ** some extent by SQLITE_MAX_SQL_LENGTH. But sometime you might ** want to place more severe limits on the complexity of an ** expression. ** ** A value of 0 used to mean that the limit was not enforced. ** But that is no longer true. The limit is now strictly enforced ** at all times. */ #ifndef SQLITE_MAX_EXPR_DEPTH # define SQLITE_MAX_EXPR_DEPTH 1000 #endif /* ** The maximum number of terms in a compound SELECT statement. ** The code generator for compound SELECT statements does one ** level of recursion for each term. A stack overflow can result ** if the number of terms is too large. In practice, most SQL ** never has more than 3 or 4 terms. Use a value of 0 to disable ** any limit on the number of terms in a compount SELECT. */ #ifndef SQLITE_MAX_COMPOUND_SELECT # define SQLITE_MAX_COMPOUND_SELECT 500 #endif /* ** The maximum number of opcodes in a VDBE program. ** Not currently enforced. */ #ifndef SQLITE_MAX_VDBE_OP # define SQLITE_MAX_VDBE_OP 25000 #endif /* ** The maximum number of arguments to an SQL function. */ #ifndef SQLITE_MAX_FUNCTION_ARG # define SQLITE_MAX_FUNCTION_ARG 127 #endif /* ** The maximum number of in-memory pages to use for the main database ** table and for temporary tables. The SQLITE_DEFAULT_CACHE_SIZE */ #ifndef SQLITE_DEFAULT_CACHE_SIZE # define SQLITE_DEFAULT_CACHE_SIZE 2000 #endif #ifndef SQLITE_DEFAULT_TEMP_CACHE_SIZE # define SQLITE_DEFAULT_TEMP_CACHE_SIZE 500 #endif /* ** The default number of frames to accumulate in the log file before ** checkpointing the database in WAL mode. */ #ifndef SQLITE_DEFAULT_WAL_AUTOCHECKPOINT # define SQLITE_DEFAULT_WAL_AUTOCHECKPOINT 1000 #endif /* ** The maximum number of attached databases. This must be between 0 ** and 62. The upper bound on 62 is because a 64-bit integer bitmap ** is used internally to track attached databases. */ #ifndef SQLITE_MAX_ATTACHED # define SQLITE_MAX_ATTACHED 10 #endif /* ** The maximum value of a ?nnn wildcard that the parser will accept. */ #ifndef SQLITE_MAX_VARIABLE_NUMBER # define SQLITE_MAX_VARIABLE_NUMBER 999 #endif /* Maximum page size. The upper bound on this value is 65536. This a limit ** imposed by the use of 16-bit offsets within each page. ** ** Earlier versions of SQLite allowed the user to change this value at ** compile time. This is no longer permitted, on the grounds that it creates ** a library that is technically incompatible with an SQLite library ** compiled with a different limit. If a process operating on a database ** with a page-size of 65536 bytes crashes, then an instance of SQLite ** compiled with the default page-size limit will not be able to rollback ** the aborted transaction. This could lead to database corruption. */ #ifdef SQLITE_MAX_PAGE_SIZE # undef SQLITE_MAX_PAGE_SIZE #endif #define SQLITE_MAX_PAGE_SIZE 65536 /* ** The default size of a database page. */ #ifndef SQLITE_DEFAULT_PAGE_SIZE # define SQLITE_DEFAULT_PAGE_SIZE 1024 #endif #if SQLITE_DEFAULT_PAGE_SIZE>SQLITE_MAX_PAGE_SIZE # undef SQLITE_DEFAULT_PAGE_SIZE # define SQLITE_DEFAULT_PAGE_SIZE SQLITE_MAX_PAGE_SIZE #endif /* ** Ordinarily, if no value is explicitly provided, SQLite creates databases ** with page size SQLITE_DEFAULT_PAGE_SIZE. However, based on certain ** device characteristics (sector-size and atomic write() support), ** SQLite may choose a larger value. This constant is the maximum value ** SQLite will choose on its own. */ #ifndef SQLITE_MAX_DEFAULT_PAGE_SIZE # define SQLITE_MAX_DEFAULT_PAGE_SIZE 8192 #endif #if SQLITE_MAX_DEFAULT_PAGE_SIZE>SQLITE_MAX_PAGE_SIZE # undef SQLITE_MAX_DEFAULT_PAGE_SIZE # define SQLITE_MAX_DEFAULT_PAGE_SIZE SQLITE_MAX_PAGE_SIZE #endif /* ** Maximum number of pages in one database file. ** ** This is really just the default value for the max_page_count pragma. ** This value can be lowered (or raised) at run-time using that the ** max_page_count macro. */ #ifndef SQLITE_MAX_PAGE_COUNT # define SQLITE_MAX_PAGE_COUNT 1073741823 #endif /* ** Maximum length (in bytes) of the pattern in a LIKE or GLOB ** operator. */ #ifndef SQLITE_MAX_LIKE_PATTERN_LENGTH # define SQLITE_MAX_LIKE_PATTERN_LENGTH 50000 #endif /* ** Maximum depth of recursion for triggers. ** ** A value of 1 means that a trigger program will not be able to itself ** fire any triggers. A value of 0 means that no trigger programs at all ** may be executed. */ #ifndef SQLITE_MAX_TRIGGER_DEPTH # define SQLITE_MAX_TRIGGER_DEPTH 1000 #endif /************** End of sqliteLimit.h *****************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /* Disable nuisance warnings on Borland compilers */ #if defined(__BORLANDC__) #pragma warn -rch /* unreachable code */ #pragma warn -ccc /* Condition is always true or false */ #pragma warn -aus /* Assigned value is never used */ #pragma warn -csu /* Comparing signed and unsigned */ #pragma warn -spa /* Suspicious pointer arithmetic */ #endif /* Needed for various definitions... */ #ifndef _GNU_SOURCE # define _GNU_SOURCE #endif /* ** Include standard header files as necessary */ #ifdef HAVE_STDINT_H #include #endif #ifdef HAVE_INTTYPES_H #include #endif /* ** The number of samples of an index that SQLite takes in order to ** construct a histogram of the table content when running ANALYZE ** and with SQLITE_ENABLE_STAT2 */ #define SQLITE_INDEX_SAMPLES 10 /* ** The following macros are used to cast pointers to integers and ** integers to pointers. The way you do this varies from one compiler ** to the next, so we have developed the following set of #if statements ** to generate appropriate macros for a wide range of compilers. ** ** The correct "ANSI" way to do this is to use the intptr_t type. ** Unfortunately, that typedef is not available on all compilers, or ** if it is available, it requires an #include of specific headers ** that vary from one machine to the next. ** ** Ticket #3860: The llvm-gcc-4.2 compiler from Apple chokes on ** the ((void*)&((char*)0)[X]) construct. But MSVC chokes on ((void*)(X)). ** So we have to define the macros in different ways depending on the ** compiler. */ #if defined(__PTRDIFF_TYPE__) /* This case should work for GCC */ # define SQLITE_INT_TO_PTR(X) ((void*)(__PTRDIFF_TYPE__)(X)) # define SQLITE_PTR_TO_INT(X) ((int)(__PTRDIFF_TYPE__)(X)) #elif !defined(__GNUC__) /* Works for compilers other than LLVM */ # define SQLITE_INT_TO_PTR(X) ((void*)&((char*)0)[X]) # define SQLITE_PTR_TO_INT(X) ((int)(((char*)X)-(char*)0)) #elif defined(HAVE_STDINT_H) /* Use this case if we have ANSI headers */ # define SQLITE_INT_TO_PTR(X) ((void*)(intptr_t)(X)) # define SQLITE_PTR_TO_INT(X) ((int)(intptr_t)(X)) #else /* Generates a warning - but it always works */ # define SQLITE_INT_TO_PTR(X) ((void*)(X)) # define SQLITE_PTR_TO_INT(X) ((int)(X)) #endif /* ** The SQLITE_THREADSAFE macro must be defined as 0, 1, or 2. ** 0 means mutexes are permanently disable and the library is never ** threadsafe. 1 means the library is serialized which is the highest ** level of threadsafety. 2 means the libary is multithreaded - multiple ** threads can use SQLite as long as no two threads try to use the same ** database connection at the same time. ** ** Older versions of SQLite used an optional THREADSAFE macro. ** We support that for legacy. */ #if !defined(SQLITE_THREADSAFE) #if defined(THREADSAFE) # define SQLITE_THREADSAFE THREADSAFE #else # define SQLITE_THREADSAFE 1 /* IMP: R-07272-22309 */ #endif #endif /* ** The SQLITE_DEFAULT_MEMSTATUS macro must be defined as either 0 or 1. ** It determines whether or not the features related to ** SQLITE_CONFIG_MEMSTATUS are available by default or not. This value can ** be overridden at runtime using the sqlite3_config() API. */ #if !defined(SQLITE_DEFAULT_MEMSTATUS) # define SQLITE_DEFAULT_MEMSTATUS 1 #endif /* ** Exactly one of the following macros must be defined in order to ** specify which memory allocation subsystem to use. ** ** SQLITE_SYSTEM_MALLOC // Use normal system malloc() ** SQLITE_MEMDEBUG // Debugging version of system malloc() ** ** (Historical note: There used to be several other options, but we've ** pared it down to just these two.) ** ** If none of the above are defined, then set SQLITE_SYSTEM_MALLOC as ** the default. */ #if defined(SQLITE_SYSTEM_MALLOC)+defined(SQLITE_MEMDEBUG)>1 # error "At most one of the following compile-time configuration options\ is allows: SQLITE_SYSTEM_MALLOC, SQLITE_MEMDEBUG" #endif #if defined(SQLITE_SYSTEM_MALLOC)+defined(SQLITE_MEMDEBUG)==0 # define SQLITE_SYSTEM_MALLOC 1 #endif /* ** If SQLITE_MALLOC_SOFT_LIMIT is not zero, then try to keep the ** sizes of memory allocations below this value where possible. */ #if !defined(SQLITE_MALLOC_SOFT_LIMIT) # define SQLITE_MALLOC_SOFT_LIMIT 1024 #endif /* ** We need to define _XOPEN_SOURCE as follows in order to enable ** recursive mutexes on most Unix systems. But Mac OS X is different. ** The _XOPEN_SOURCE define causes problems for Mac OS X we are told, ** so it is omitted there. See ticket #2673. ** ** Later we learn that _XOPEN_SOURCE is poorly or incorrectly ** implemented on some systems. So we avoid defining it at all ** if it is already defined or if it is unneeded because we are ** not doing a threadsafe build. Ticket #2681. ** ** See also ticket #2741. */ #if !defined(_XOPEN_SOURCE) && !defined(__DARWIN__) && !defined(__APPLE__) && SQLITE_THREADSAFE # define _XOPEN_SOURCE 500 /* Needed to enable pthread recursive mutexes */ #endif /* ** The TCL headers are only needed when compiling the TCL bindings. */ #if defined(SQLITE_TCL) || defined(TCLSH) # include #endif /* ** Many people are failing to set -DNDEBUG=1 when compiling SQLite. ** Setting NDEBUG makes the code smaller and run faster. So the following ** lines are added to automatically set NDEBUG unless the -DSQLITE_DEBUG=1 ** option is set. Thus NDEBUG becomes an opt-in rather than an opt-out ** feature. */ #if !defined(NDEBUG) && !defined(SQLITE_DEBUG) # define NDEBUG 1 #endif /* ** The testcase() macro is used to aid in coverage testing. When ** doing coverage testing, the condition inside the argument to ** testcase() must be evaluated both true and false in order to ** get full branch coverage. The testcase() macro is inserted ** to help ensure adequate test coverage in places where simple ** condition/decision coverage is inadequate. For example, testcase() ** can be used to make sure boundary values are tested. For ** bitmask tests, testcase() can be used to make sure each bit ** is significant and used at least once. On switch statements ** where multiple cases go to the same block of code, testcase() ** can insure that all cases are evaluated. ** */ #ifdef SQLITE_COVERAGE_TEST SQLITE_PRIVATE void sqlite3Coverage(int); # define testcase(X) if( X ){ sqlite3Coverage(__LINE__); } #else # define testcase(X) #endif /* ** The TESTONLY macro is used to enclose variable declarations or ** other bits of code that are needed to support the arguments ** within testcase() and assert() macros. */ #if !defined(NDEBUG) || defined(SQLITE_COVERAGE_TEST) # define TESTONLY(X) X #else # define TESTONLY(X) #endif /* ** Sometimes we need a small amount of code such as a variable initialization ** to setup for a later assert() statement. We do not want this code to ** appear when assert() is disabled. The following macro is therefore ** used to contain that setup code. The "VVA" acronym stands for ** "Verification, Validation, and Accreditation". In other words, the ** code within VVA_ONLY() will only run during verification processes. */ #ifndef NDEBUG # define VVA_ONLY(X) X #else # define VVA_ONLY(X) #endif /* ** The ALWAYS and NEVER macros surround boolean expressions which ** are intended to always be true or false, respectively. Such ** expressions could be omitted from the code completely. But they ** are included in a few cases in order to enhance the resilience ** of SQLite to unexpected behavior - to make the code "self-healing" ** or "ductile" rather than being "brittle" and crashing at the first ** hint of unplanned behavior. ** ** In other words, ALWAYS and NEVER are added for defensive code. ** ** When doing coverage testing ALWAYS and NEVER are hard-coded to ** be true and false so that the unreachable code then specify will ** not be counted as untested code. */ #if defined(SQLITE_COVERAGE_TEST) # define ALWAYS(X) (1) # define NEVER(X) (0) #elif !defined(NDEBUG) # define ALWAYS(X) ((X)?1:(assert(0),0)) # define NEVER(X) ((X)?(assert(0),1):0) #else # define ALWAYS(X) (X) # define NEVER(X) (X) #endif /* ** Return true (non-zero) if the input is a integer that is too large ** to fit in 32-bits. This macro is used inside of various testcase() ** macros to verify that we have tested SQLite for large-file support. */ #define IS_BIG_INT(X) (((X)&~(i64)0xffffffff)!=0) /* ** The macro unlikely() is a hint that surrounds a boolean ** expression that is usually false. Macro likely() surrounds ** a boolean expression that is usually true. GCC is able to ** use these hints to generate better code, sometimes. */ #if defined(__GNUC__) && 0 # define likely(X) __builtin_expect((X),1) # define unlikely(X) __builtin_expect((X),0) #else # define likely(X) !!(X) # define unlikely(X) !!(X) #endif /************** Include sqlite3.h in the middle of sqliteInt.h ***************/ /************** Begin file sqlite3.h *****************************************/ /* ** 2001 September 15 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This header file defines the interface that the SQLite library ** presents to client programs. If a C-function, structure, datatype, ** or constant definition does not appear in this file, then it is ** not a published API of SQLite, is subject to change without ** notice, and should not be referenced by programs that use SQLite. ** ** Some of the definitions that are in this file are marked as ** "experimental". Experimental interfaces are normally new ** features recently added to SQLite. We do not anticipate changes ** to experimental interfaces but reserve the right to make minor changes ** if experience from use "in the wild" suggest such changes are prudent. ** ** The official C-language API documentation for SQLite is derived ** from comments in this file. This file is the authoritative source ** on how SQLite interfaces are suppose to operate. ** ** The name of this file under configuration management is "sqlite.h.in". ** The makefile makes some minor changes to this file (such as inserting ** the version number) and changes its name to "sqlite3.h" as ** part of the build process. */ #ifndef _SQLITE3_H_ #define _SQLITE3_H_ #include /* Needed for the definition of va_list */ /* ** Make sure we can call this stuff from C++. */ #if 0 extern "C" { #endif /* ** Add the ability to override 'extern' */ #ifndef SQLITE_EXTERN # define SQLITE_EXTERN extern #endif #ifndef SQLITE_API # define SQLITE_API #endif /* ** These no-op macros are used in front of interfaces to mark those ** interfaces as either deprecated or experimental. New applications ** should not use deprecated interfaces - they are support for backwards ** compatibility only. Application writers should be aware that ** experimental interfaces are subject to change in point releases. ** ** These macros used to resolve to various kinds of compiler magic that ** would generate warning messages when they were used. But that ** compiler magic ended up generating such a flurry of bug reports ** that we have taken it all out and gone back to using simple ** noop macros. */ #define SQLITE_DEPRECATED #define SQLITE_EXPERIMENTAL /* ** Ensure these symbols were not defined by some previous header file. */ #ifdef SQLITE_VERSION # undef SQLITE_VERSION #endif #ifdef SQLITE_VERSION_NUMBER # undef SQLITE_VERSION_NUMBER #endif /* ** CAPI3REF: Compile-Time Library Version Numbers ** ** ^(The [SQLITE_VERSION] C preprocessor macro in the sqlite3.h header ** evaluates to a string literal that is the SQLite version in the ** format "X.Y.Z" where X is the major version number (always 3 for ** SQLite3) and Y is the minor version number and Z is the release number.)^ ** ^(The [SQLITE_VERSION_NUMBER] C preprocessor macro resolves to an integer ** with the value (X*1000000 + Y*1000 + Z) where X, Y, and Z are the same ** numbers used in [SQLITE_VERSION].)^ ** The SQLITE_VERSION_NUMBER for any given release of SQLite will also ** be larger than the release from which it is derived. Either Y will ** be held constant and Z will be incremented or else Y will be incremented ** and Z will be reset to zero. ** ** Since version 3.6.18, SQLite source code has been stored in the ** Fossil configuration management ** system. ^The SQLITE_SOURCE_ID macro evaluates to ** a string which identifies a particular check-in of SQLite ** within its configuration management system. ^The SQLITE_SOURCE_ID ** string contains the date and time of the check-in (UTC) and an SHA1 ** hash of the entire source tree. ** ** See also: [sqlite3_libversion()], ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ #define SQLITE_VERSION "3.7.6.2" #define SQLITE_VERSION_NUMBER 3007006 #define SQLITE_SOURCE_ID "2011-04-17 17:25:17 154ddbc17120be2915eb03edc52af1225eb7cb5e" /* ** CAPI3REF: Run-Time Library Version Numbers ** KEYWORDS: sqlite3_version, sqlite3_sourceid ** ** These interfaces provide the same information as the [SQLITE_VERSION], ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros ** but are associated with the library instead of the header file. ^(Cautious ** programmers might include assert() statements in their application to ** verify that values returned by these interfaces match the macros in ** the header, and thus insure that the application is ** compiled with matching library and header files. ** **
    ** assert( sqlite3_libversion_number()==SQLITE_VERSION_NUMBER );
    ** assert( strcmp(sqlite3_sourceid(),SQLITE_SOURCE_ID)==0 );
    ** assert( strcmp(sqlite3_libversion(),SQLITE_VERSION)==0 );
    ** 
    )^ ** ** ^The sqlite3_version[] string constant contains the text of [SQLITE_VERSION] ** macro. ^The sqlite3_libversion() function returns a pointer to the ** to the sqlite3_version[] string constant. The sqlite3_libversion() ** function is provided for use in DLLs since DLL users usually do not have ** direct access to string constants within the DLL. ^The ** sqlite3_libversion_number() function returns an integer equal to ** [SQLITE_VERSION_NUMBER]. ^The sqlite3_sourceid() function returns ** a pointer to a string constant whose value is the same as the ** [SQLITE_SOURCE_ID] C preprocessor macro. ** ** See also: [sqlite_version()] and [sqlite_source_id()]. */ SQLITE_API const char sqlite3_version[] = SQLITE_VERSION; SQLITE_API const char *sqlite3_libversion(void); SQLITE_API const char *sqlite3_sourceid(void); SQLITE_API int sqlite3_libversion_number(void); /* ** CAPI3REF: Run-Time Library Compilation Options Diagnostics ** ** ^The sqlite3_compileoption_used() function returns 0 or 1 ** indicating whether the specified option was defined at ** compile time. ^The SQLITE_ prefix may be omitted from the ** option name passed to sqlite3_compileoption_used(). ** ** ^The sqlite3_compileoption_get() function allows iterating ** over the list of options that were defined at compile time by ** returning the N-th compile time option string. ^If N is out of range, ** sqlite3_compileoption_get() returns a NULL pointer. ^The SQLITE_ ** prefix is omitted from any strings returned by ** sqlite3_compileoption_get(). ** ** ^Support for the diagnostic functions sqlite3_compileoption_used() ** and sqlite3_compileoption_get() may be omitted by specifying the ** [SQLITE_OMIT_COMPILEOPTION_DIAGS] option at compile time. ** ** See also: SQL functions [sqlite_compileoption_used()] and ** [sqlite_compileoption_get()] and the [compile_options pragma]. */ #ifndef SQLITE_OMIT_COMPILEOPTION_DIAGS SQLITE_API int sqlite3_compileoption_used(const char *zOptName); SQLITE_API const char *sqlite3_compileoption_get(int N); #endif /* ** CAPI3REF: Test To See If The Library Is Threadsafe ** ** ^The sqlite3_threadsafe() function returns zero if and only if ** SQLite was compiled mutexing code omitted due to the ** [SQLITE_THREADSAFE] compile-time option being set to 0. ** ** SQLite can be compiled with or without mutexes. When ** the [SQLITE_THREADSAFE] C preprocessor macro is 1 or 2, mutexes ** are enabled and SQLite is threadsafe. When the ** [SQLITE_THREADSAFE] macro is 0, ** the mutexes are omitted. Without the mutexes, it is not safe ** to use SQLite concurrently from more than one thread. ** ** Enabling mutexes incurs a measurable performance penalty. ** So if speed is of utmost importance, it makes sense to disable ** the mutexes. But for maximum safety, mutexes should be enabled. ** ^The default behavior is for mutexes to be enabled. ** ** This interface can be used by an application to make sure that the ** version of SQLite that it is linking against was compiled with ** the desired setting of the [SQLITE_THREADSAFE] macro. ** ** This interface only reports on the compile-time mutex setting ** of the [SQLITE_THREADSAFE] flag. If SQLite is compiled with ** SQLITE_THREADSAFE=1 or =2 then mutexes are enabled by default but ** can be fully or partially disabled using a call to [sqlite3_config()] ** with the verbs [SQLITE_CONFIG_SINGLETHREAD], [SQLITE_CONFIG_MULTITHREAD], ** or [SQLITE_CONFIG_MUTEX]. ^(The return value of the ** sqlite3_threadsafe() function shows only the compile-time setting of ** thread safety, not any run-time changes to that setting made by ** sqlite3_config(). In other words, the return value from sqlite3_threadsafe() ** is unchanged by calls to sqlite3_config().)^ ** ** See the [threading mode] documentation for additional information. */ SQLITE_API int sqlite3_threadsafe(void); /* ** CAPI3REF: Database Connection Handle ** KEYWORDS: {database connection} {database connections} ** ** Each open SQLite database is represented by a pointer to an instance of ** the opaque structure named "sqlite3". It is useful to think of an sqlite3 ** pointer as an object. The [sqlite3_open()], [sqlite3_open16()], and ** [sqlite3_open_v2()] interfaces are its constructors, and [sqlite3_close()] ** is its destructor. There are many other interfaces (such as ** [sqlite3_prepare_v2()], [sqlite3_create_function()], and ** [sqlite3_busy_timeout()] to name but three) that are methods on an ** sqlite3 object. */ typedef struct sqlite3 sqlite3; /* ** CAPI3REF: 64-Bit Integer Types ** KEYWORDS: sqlite_int64 sqlite_uint64 ** ** Because there is no cross-platform way to specify 64-bit integer types ** SQLite includes typedefs for 64-bit signed and unsigned integers. ** ** The sqlite3_int64 and sqlite3_uint64 are the preferred type definitions. ** The sqlite_int64 and sqlite_uint64 types are supported for backwards ** compatibility only. ** ** ^The sqlite3_int64 and sqlite_int64 types can store integer values ** between -9223372036854775808 and +9223372036854775807 inclusive. ^The ** sqlite3_uint64 and sqlite_uint64 types can store integer values ** between 0 and +18446744073709551615 inclusive. */ #ifdef SQLITE_INT64_TYPE typedef SQLITE_INT64_TYPE sqlite_int64; typedef unsigned SQLITE_INT64_TYPE sqlite_uint64; #elif defined(_MSC_VER) || defined(__BORLANDC__) typedef __int64 sqlite_int64; typedef unsigned __int64 sqlite_uint64; #else typedef long long int sqlite_int64; typedef unsigned long long int sqlite_uint64; #endif typedef sqlite_int64 sqlite3_int64; typedef sqlite_uint64 sqlite3_uint64; /* ** If compiling for a processor that lacks floating point support, ** substitute integer for floating-point. */ #ifdef SQLITE_OMIT_FLOATING_POINT # define double sqlite3_int64 #endif /* ** CAPI3REF: Closing A Database Connection ** ** ^The sqlite3_close() routine is the destructor for the [sqlite3] object. ** ^Calls to sqlite3_close() return SQLITE_OK if the [sqlite3] object is ** successfully destroyed and all associated resources are deallocated. ** ** Applications must [sqlite3_finalize | finalize] all [prepared statements] ** and [sqlite3_blob_close | close] all [BLOB handles] associated with ** the [sqlite3] object prior to attempting to close the object. ^If ** sqlite3_close() is called on a [database connection] that still has ** outstanding [prepared statements] or [BLOB handles], then it returns ** SQLITE_BUSY. ** ** ^If [sqlite3_close()] is invoked while a transaction is open, ** the transaction is automatically rolled back. ** ** The C parameter to [sqlite3_close(C)] must be either a NULL ** pointer or an [sqlite3] object pointer obtained ** from [sqlite3_open()], [sqlite3_open16()], or ** [sqlite3_open_v2()], and not previously closed. ** ^Calling sqlite3_close() with a NULL pointer argument is a ** harmless no-op. */ SQLITE_API int sqlite3_close(sqlite3 *); /* ** The type for a callback function. ** This is legacy and deprecated. It is included for historical ** compatibility and is not documented. */ typedef int (*sqlite3_callback)(void*,int,char**, char**); /* ** CAPI3REF: One-Step Query Execution Interface ** ** The sqlite3_exec() interface is a convenience wrapper around ** [sqlite3_prepare_v2()], [sqlite3_step()], and [sqlite3_finalize()], ** that allows an application to run multiple statements of SQL ** without having to use a lot of C code. ** ** ^The sqlite3_exec() interface runs zero or more UTF-8 encoded, ** semicolon-separate SQL statements passed into its 2nd argument, ** in the context of the [database connection] passed in as its 1st ** argument. ^If the callback function of the 3rd argument to ** sqlite3_exec() is not NULL, then it is invoked for each result row ** coming out of the evaluated SQL statements. ^The 4th argument to ** to sqlite3_exec() is relayed through to the 1st argument of each ** callback invocation. ^If the callback pointer to sqlite3_exec() ** is NULL, then no callback is ever invoked and result rows are ** ignored. ** ** ^If an error occurs while evaluating the SQL statements passed into ** sqlite3_exec(), then execution of the current statement stops and ** subsequent statements are skipped. ^If the 5th parameter to sqlite3_exec() ** is not NULL then any error message is written into memory obtained ** from [sqlite3_malloc()] and passed back through the 5th parameter. ** To avoid memory leaks, the application should invoke [sqlite3_free()] ** on error message strings returned through the 5th parameter of ** of sqlite3_exec() after the error message string is no longer needed. ** ^If the 5th parameter to sqlite3_exec() is not NULL and no errors ** occur, then sqlite3_exec() sets the pointer in its 5th parameter to ** NULL before returning. ** ** ^If an sqlite3_exec() callback returns non-zero, the sqlite3_exec() ** routine returns SQLITE_ABORT without invoking the callback again and ** without running any subsequent SQL statements. ** ** ^The 2nd argument to the sqlite3_exec() callback function is the ** number of columns in the result. ^The 3rd argument to the sqlite3_exec() ** callback is an array of pointers to strings obtained as if from ** [sqlite3_column_text()], one for each column. ^If an element of a ** result row is NULL then the corresponding string pointer for the ** sqlite3_exec() callback is a NULL pointer. ^The 4th argument to the ** sqlite3_exec() callback is an array of pointers to strings where each ** entry represents the name of corresponding result column as obtained ** from [sqlite3_column_name()]. ** ** ^If the 2nd parameter to sqlite3_exec() is a NULL pointer, a pointer ** to an empty string, or a pointer that contains only whitespace and/or ** SQL comments, then no SQL statements are evaluated and the database ** is not changed. ** ** Restrictions: ** **
      **
    • The application must insure that the 1st parameter to sqlite3_exec() ** is a valid and open [database connection]. **
    • The application must not close [database connection] specified by ** the 1st parameter to sqlite3_exec() while sqlite3_exec() is running. **
    • The application must not modify the SQL statement text passed into ** the 2nd parameter of sqlite3_exec() while sqlite3_exec() is running. **
    */ SQLITE_API int sqlite3_exec( sqlite3*, /* An open database */ const char *sql, /* SQL to be evaluated */ int (*callback)(void*,int,char**,char**), /* Callback function */ void *, /* 1st argument to callback */ char **errmsg /* Error msg written here */ ); /* ** CAPI3REF: Result Codes ** KEYWORDS: SQLITE_OK {error code} {error codes} ** KEYWORDS: {result code} {result codes} ** ** Many SQLite functions return an integer result code from the set shown ** here in order to indicates success or failure. ** ** New error codes may be added in future versions of SQLite. ** ** See also: [SQLITE_IOERR_READ | extended result codes] */ #define SQLITE_OK 0 /* Successful result */ /* beginning-of-error-codes */ #define SQLITE_ERROR 1 /* SQL error or missing database */ #define SQLITE_INTERNAL 2 /* Internal logic error in SQLite */ #define SQLITE_PERM 3 /* Access permission denied */ #define SQLITE_ABORT 4 /* Callback routine requested an abort */ #define SQLITE_BUSY 5 /* The database file is locked */ #define SQLITE_LOCKED 6 /* A table in the database is locked */ #define SQLITE_NOMEM 7 /* A malloc() failed */ #define SQLITE_READONLY 8 /* Attempt to write a readonly database */ #define SQLITE_INTERRUPT 9 /* Operation terminated by sqlite3_interrupt()*/ #define SQLITE_IOERR 10 /* Some kind of disk I/O error occurred */ #define SQLITE_CORRUPT 11 /* The database disk image is malformed */ #define SQLITE_NOTFOUND 12 /* Unknown opcode in sqlite3_file_control() */ #define SQLITE_FULL 13 /* Insertion failed because database is full */ #define SQLITE_CANTOPEN 14 /* Unable to open the database file */ #define SQLITE_PROTOCOL 15 /* Database lock protocol error */ #define SQLITE_EMPTY 16 /* Database is empty */ #define SQLITE_SCHEMA 17 /* The database schema changed */ #define SQLITE_TOOBIG 18 /* String or BLOB exceeds size limit */ #define SQLITE_CONSTRAINT 19 /* Abort due to constraint violation */ #define SQLITE_MISMATCH 20 /* Data type mismatch */ #define SQLITE_MISUSE 21 /* Library used incorrectly */ #define SQLITE_NOLFS 22 /* Uses OS features not supported on host */ #define SQLITE_AUTH 23 /* Authorization denied */ #define SQLITE_FORMAT 24 /* Auxiliary database format error */ #define SQLITE_RANGE 25 /* 2nd parameter to sqlite3_bind out of range */ #define SQLITE_NOTADB 26 /* File opened that is not a database file */ #define SQLITE_ROW 100 /* sqlite3_step() has another row ready */ #define SQLITE_DONE 101 /* sqlite3_step() has finished executing */ /* end-of-error-codes */ /* ** CAPI3REF: Extended Result Codes ** KEYWORDS: {extended error code} {extended error codes} ** KEYWORDS: {extended result code} {extended result codes} ** ** In its default configuration, SQLite API routines return one of 26 integer ** [SQLITE_OK | result codes]. However, experience has shown that many of ** these result codes are too coarse-grained. They do not provide as ** much information about problems as programmers might like. In an effort to ** address this, newer versions of SQLite (version 3.3.8 and later) include ** support for additional result codes that provide more detailed information ** about errors. The extended result codes are enabled or disabled ** on a per database connection basis using the ** [sqlite3_extended_result_codes()] API. ** ** Some of the available extended result codes are listed here. ** One may expect the number of extended result codes will be expand ** over time. Software that uses extended result codes should expect ** to see new result codes in future releases of SQLite. ** ** The SQLITE_OK result code will never be extended. It will always ** be exactly zero. */ #define SQLITE_IOERR_READ (SQLITE_IOERR | (1<<8)) #define SQLITE_IOERR_SHORT_READ (SQLITE_IOERR | (2<<8)) #define SQLITE_IOERR_WRITE (SQLITE_IOERR | (3<<8)) #define SQLITE_IOERR_FSYNC (SQLITE_IOERR | (4<<8)) #define SQLITE_IOERR_DIR_FSYNC (SQLITE_IOERR | (5<<8)) #define SQLITE_IOERR_TRUNCATE (SQLITE_IOERR | (6<<8)) #define SQLITE_IOERR_FSTAT (SQLITE_IOERR | (7<<8)) #define SQLITE_IOERR_UNLOCK (SQLITE_IOERR | (8<<8)) #define SQLITE_IOERR_RDLOCK (SQLITE_IOERR | (9<<8)) #define SQLITE_IOERR_DELETE (SQLITE_IOERR | (10<<8)) #define SQLITE_IOERR_BLOCKED (SQLITE_IOERR | (11<<8)) #define SQLITE_IOERR_NOMEM (SQLITE_IOERR | (12<<8)) #define SQLITE_IOERR_ACCESS (SQLITE_IOERR | (13<<8)) #define SQLITE_IOERR_CHECKRESERVEDLOCK (SQLITE_IOERR | (14<<8)) #define SQLITE_IOERR_LOCK (SQLITE_IOERR | (15<<8)) #define SQLITE_IOERR_CLOSE (SQLITE_IOERR | (16<<8)) #define SQLITE_IOERR_DIR_CLOSE (SQLITE_IOERR | (17<<8)) #define SQLITE_IOERR_SHMOPEN (SQLITE_IOERR | (18<<8)) #define SQLITE_IOERR_SHMSIZE (SQLITE_IOERR | (19<<8)) #define SQLITE_IOERR_SHMLOCK (SQLITE_IOERR | (20<<8)) #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8)) #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8)) #define SQLITE_CANTOPEN_NOTEMPDIR (SQLITE_CANTOPEN | (1<<8)) /* ** CAPI3REF: Flags For File Open Operations ** ** These bit values are intended for use in the ** 3rd parameter to the [sqlite3_open_v2()] interface and ** in the 4th parameter to the xOpen method of the ** [sqlite3_vfs] object. */ #define SQLITE_OPEN_READONLY 0x00000001 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_READWRITE 0x00000002 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_CREATE 0x00000004 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_DELETEONCLOSE 0x00000008 /* VFS only */ #define SQLITE_OPEN_EXCLUSIVE 0x00000010 /* VFS only */ #define SQLITE_OPEN_AUTOPROXY 0x00000020 /* VFS only */ #define SQLITE_OPEN_MAIN_DB 0x00000100 /* VFS only */ #define SQLITE_OPEN_TEMP_DB 0x00000200 /* VFS only */ #define SQLITE_OPEN_TRANSIENT_DB 0x00000400 /* VFS only */ #define SQLITE_OPEN_MAIN_JOURNAL 0x00000800 /* VFS only */ #define SQLITE_OPEN_TEMP_JOURNAL 0x00001000 /* VFS only */ #define SQLITE_OPEN_SUBJOURNAL 0x00002000 /* VFS only */ #define SQLITE_OPEN_MASTER_JOURNAL 0x00004000 /* VFS only */ #define SQLITE_OPEN_NOMUTEX 0x00008000 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_FULLMUTEX 0x00010000 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_SHAREDCACHE 0x00020000 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_PRIVATECACHE 0x00040000 /* Ok for sqlite3_open_v2() */ #define SQLITE_OPEN_WAL 0x00080000 /* VFS only */ /* Reserved: 0x00F00000 */ /* ** CAPI3REF: Device Characteristics ** ** The xDeviceCharacteristics method of the [sqlite3_io_methods] ** object returns an integer which is a vector of the these ** bit values expressing I/O characteristics of the mass storage ** device that holds the file that the [sqlite3_io_methods] ** refers to. ** ** The SQLITE_IOCAP_ATOMIC property means that all writes of ** any size are atomic. The SQLITE_IOCAP_ATOMICnnn values ** mean that writes of blocks that are nnn bytes in size and ** are aligned to an address which is an integer multiple of ** nnn are atomic. The SQLITE_IOCAP_SAFE_APPEND value means ** that when data is appended to a file, the data is appended ** first then the size of the file is extended, never the other ** way around. The SQLITE_IOCAP_SEQUENTIAL property means that ** information is written to disk in the same order as calls ** to xWrite(). */ #define SQLITE_IOCAP_ATOMIC 0x00000001 #define SQLITE_IOCAP_ATOMIC512 0x00000002 #define SQLITE_IOCAP_ATOMIC1K 0x00000004 #define SQLITE_IOCAP_ATOMIC2K 0x00000008 #define SQLITE_IOCAP_ATOMIC4K 0x00000010 #define SQLITE_IOCAP_ATOMIC8K 0x00000020 #define SQLITE_IOCAP_ATOMIC16K 0x00000040 #define SQLITE_IOCAP_ATOMIC32K 0x00000080 #define SQLITE_IOCAP_ATOMIC64K 0x00000100 #define SQLITE_IOCAP_SAFE_APPEND 0x00000200 #define SQLITE_IOCAP_SEQUENTIAL 0x00000400 #define SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN 0x00000800 /* ** CAPI3REF: File Locking Levels ** ** SQLite uses one of these integer values as the second ** argument to calls it makes to the xLock() and xUnlock() methods ** of an [sqlite3_io_methods] object. */ #define SQLITE_LOCK_NONE 0 #define SQLITE_LOCK_SHARED 1 #define SQLITE_LOCK_RESERVED 2 #define SQLITE_LOCK_PENDING 3 #define SQLITE_LOCK_EXCLUSIVE 4 /* ** CAPI3REF: Synchronization Type Flags ** ** When SQLite invokes the xSync() method of an ** [sqlite3_io_methods] object it uses a combination of ** these integer values as the second argument. ** ** When the SQLITE_SYNC_DATAONLY flag is used, it means that the ** sync operation only needs to flush data to mass storage. Inode ** information need not be flushed. If the lower four bits of the flag ** equal SQLITE_SYNC_NORMAL, that means to use normal fsync() semantics. ** If the lower four bits equal SQLITE_SYNC_FULL, that means ** to use Mac OS X style fullsync instead of fsync(). ** ** Do not confuse the SQLITE_SYNC_NORMAL and SQLITE_SYNC_FULL flags ** with the [PRAGMA synchronous]=NORMAL and [PRAGMA synchronous]=FULL ** settings. The [synchronous pragma] determines when calls to the ** xSync VFS method occur and applies uniformly across all platforms. ** The SQLITE_SYNC_NORMAL and SQLITE_SYNC_FULL flags determine how ** energetic or rigorous or forceful the sync operations are and ** only make a difference on Mac OSX for the default SQLite code. ** (Third-party VFS implementations might also make the distinction ** between SQLITE_SYNC_NORMAL and SQLITE_SYNC_FULL, but among the ** operating systems natively supported by SQLite, only Mac OSX ** cares about the difference.) */ #define SQLITE_SYNC_NORMAL 0x00002 #define SQLITE_SYNC_FULL 0x00003 #define SQLITE_SYNC_DATAONLY 0x00010 /* ** CAPI3REF: OS Interface Open File Handle ** ** An [sqlite3_file] object represents an open file in the ** [sqlite3_vfs | OS interface layer]. Individual OS interface ** implementations will ** want to subclass this object by appending additional fields ** for their own use. The pMethods entry is a pointer to an ** [sqlite3_io_methods] object that defines methods for performing ** I/O operations on the open file. */ typedef struct sqlite3_file sqlite3_file; struct sqlite3_file { const struct sqlite3_io_methods *pMethods; /* Methods for an open file */ }; /* ** CAPI3REF: OS Interface File Virtual Methods Object ** ** Every file opened by the [sqlite3_vfs] xOpen method populates an ** [sqlite3_file] object (or, more commonly, a subclass of the ** [sqlite3_file] object) with a pointer to an instance of this object. ** This object defines the methods used to perform various operations ** against the open file represented by the [sqlite3_file] object. ** ** If the xOpen method sets the sqlite3_file.pMethods element ** to a non-NULL pointer, then the sqlite3_io_methods.xClose method ** may be invoked even if the xOpen reported that it failed. The ** only way to prevent a call to xClose following a failed xOpen ** is for the xOpen to set the sqlite3_file.pMethods element to NULL. ** ** The flags argument to xSync may be one of [SQLITE_SYNC_NORMAL] or ** [SQLITE_SYNC_FULL]. The first choice is the normal fsync(). ** The second choice is a Mac OS X style fullsync. The [SQLITE_SYNC_DATAONLY] ** flag may be ORed in to indicate that only the data of the file ** and not its inode needs to be synced. ** ** The integer values to xLock() and xUnlock() are one of **
      **
    • [SQLITE_LOCK_NONE], **
    • [SQLITE_LOCK_SHARED], **
    • [SQLITE_LOCK_RESERVED], **
    • [SQLITE_LOCK_PENDING], or **
    • [SQLITE_LOCK_EXCLUSIVE]. **
    ** xLock() increases the lock. xUnlock() decreases the lock. ** The xCheckReservedLock() method checks whether any database connection, ** either in this process or in some other process, is holding a RESERVED, ** PENDING, or EXCLUSIVE lock on the file. It returns true ** if such a lock exists and false otherwise. ** ** The xFileControl() method is a generic interface that allows custom ** VFS implementations to directly control an open file using the ** [sqlite3_file_control()] interface. The second "op" argument is an ** integer opcode. The third argument is a generic pointer intended to ** point to a structure that may contain arguments or space in which to ** write return values. Potential uses for xFileControl() might be ** functions to enable blocking locks with timeouts, to change the ** locking strategy (for example to use dot-file locks), to inquire ** about the status of a lock, or to break stale locks. The SQLite ** core reserves all opcodes less than 100 for its own use. ** A [SQLITE_FCNTL_LOCKSTATE | list of opcodes] less than 100 is available. ** Applications that define a custom xFileControl method should use opcodes ** greater than 100 to avoid conflicts. VFS implementations should ** return [SQLITE_NOTFOUND] for file control opcodes that they do not ** recognize. ** ** The xSectorSize() method returns the sector size of the ** device that underlies the file. The sector size is the ** minimum write that can be performed without disturbing ** other bytes in the file. The xDeviceCharacteristics() ** method returns a bit vector describing behaviors of the ** underlying device: ** **
      **
    • [SQLITE_IOCAP_ATOMIC] **
    • [SQLITE_IOCAP_ATOMIC512] **
    • [SQLITE_IOCAP_ATOMIC1K] **
    • [SQLITE_IOCAP_ATOMIC2K] **
    • [SQLITE_IOCAP_ATOMIC4K] **
    • [SQLITE_IOCAP_ATOMIC8K] **
    • [SQLITE_IOCAP_ATOMIC16K] **
    • [SQLITE_IOCAP_ATOMIC32K] **
    • [SQLITE_IOCAP_ATOMIC64K] **
    • [SQLITE_IOCAP_SAFE_APPEND] **
    • [SQLITE_IOCAP_SEQUENTIAL] **
    ** ** The SQLITE_IOCAP_ATOMIC property means that all writes of ** any size are atomic. The SQLITE_IOCAP_ATOMICnnn values ** mean that writes of blocks that are nnn bytes in size and ** are aligned to an address which is an integer multiple of ** nnn are atomic. The SQLITE_IOCAP_SAFE_APPEND value means ** that when data is appended to a file, the data is appended ** first then the size of the file is extended, never the other ** way around. The SQLITE_IOCAP_SEQUENTIAL property means that ** information is written to disk in the same order as calls ** to xWrite(). ** ** If xRead() returns SQLITE_IOERR_SHORT_READ it must also fill ** in the unread portions of the buffer with zeros. A VFS that ** fails to zero-fill short reads might seem to work. However, ** failure to zero-fill short reads will eventually lead to ** database corruption. */ typedef struct sqlite3_io_methods sqlite3_io_methods; struct sqlite3_io_methods { int iVersion; int (*xClose)(sqlite3_file*); int (*xRead)(sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst); int (*xWrite)(sqlite3_file*, const void*, int iAmt, sqlite3_int64 iOfst); int (*xTruncate)(sqlite3_file*, sqlite3_int64 size); int (*xSync)(sqlite3_file*, int flags); int (*xFileSize)(sqlite3_file*, sqlite3_int64 *pSize); int (*xLock)(sqlite3_file*, int); int (*xUnlock)(sqlite3_file*, int); int (*xCheckReservedLock)(sqlite3_file*, int *pResOut); int (*xFileControl)(sqlite3_file*, int op, void *pArg); int (*xSectorSize)(sqlite3_file*); int (*xDeviceCharacteristics)(sqlite3_file*); /* Methods above are valid for version 1 */ int (*xShmMap)(sqlite3_file*, int iPg, int pgsz, int, void volatile**); int (*xShmLock)(sqlite3_file*, int offset, int n, int flags); void (*xShmBarrier)(sqlite3_file*); int (*xShmUnmap)(sqlite3_file*, int deleteFlag); /* Methods above are valid for version 2 */ /* Additional methods may be added in future releases */ }; /* ** CAPI3REF: Standard File Control Opcodes ** ** These integer constants are opcodes for the xFileControl method ** of the [sqlite3_io_methods] object and for the [sqlite3_file_control()] ** interface. ** ** The [SQLITE_FCNTL_LOCKSTATE] opcode is used for debugging. This ** opcode causes the xFileControl method to write the current state of ** the lock (one of [SQLITE_LOCK_NONE], [SQLITE_LOCK_SHARED], ** [SQLITE_LOCK_RESERVED], [SQLITE_LOCK_PENDING], or [SQLITE_LOCK_EXCLUSIVE]) ** into an integer that the pArg argument points to. This capability ** is used during testing and only needs to be supported when SQLITE_TEST ** is defined. ** ** The [SQLITE_FCNTL_SIZE_HINT] opcode is used by SQLite to give the VFS ** layer a hint of how large the database file will grow to be during the ** current transaction. This hint is not guaranteed to be accurate but it ** is often close. The underlying VFS might choose to preallocate database ** file space based on this hint in order to help writes to the database ** file run faster. ** ** The [SQLITE_FCNTL_CHUNK_SIZE] opcode is used to request that the VFS ** extends and truncates the database file in chunks of a size specified ** by the user. The fourth argument to [sqlite3_file_control()] should ** point to an integer (type int) containing the new chunk-size to use ** for the nominated database. Allocating database file space in large ** chunks (say 1MB at a time), may reduce file-system fragmentation and ** improve performance on some systems. ** ** The [SQLITE_FCNTL_FILE_POINTER] opcode is used to obtain a pointer ** to the [sqlite3_file] object associated with a particular database ** connection. See the [sqlite3_file_control()] documentation for ** additional information. ** ** ^(The [SQLITE_FCNTL_SYNC_OMITTED] opcode is generated internally by ** SQLite and sent to all VFSes in place of a call to the xSync method ** when the database connection has [PRAGMA synchronous] set to OFF.)^ ** Some specialized VFSes need this signal in order to operate correctly ** when [PRAGMA synchronous | PRAGMA synchronous=OFF] is set, but most ** VFSes do not need this signal and should silently ignore this opcode. ** Applications should not call [sqlite3_file_control()] with this ** opcode as doing so may disrupt the operation of the specialized VFSes ** that do require it. */ #define SQLITE_FCNTL_LOCKSTATE 1 #define SQLITE_GET_LOCKPROXYFILE 2 #define SQLITE_SET_LOCKPROXYFILE 3 #define SQLITE_LAST_ERRNO 4 #define SQLITE_FCNTL_SIZE_HINT 5 #define SQLITE_FCNTL_CHUNK_SIZE 6 #define SQLITE_FCNTL_FILE_POINTER 7 #define SQLITE_FCNTL_SYNC_OMITTED 8 /* ** CAPI3REF: Mutex Handle ** ** The mutex module within SQLite defines [sqlite3_mutex] to be an ** abstract type for a mutex object. The SQLite core never looks ** at the internal representation of an [sqlite3_mutex]. It only ** deals with pointers to the [sqlite3_mutex] object. ** ** Mutexes are created using [sqlite3_mutex_alloc()]. */ typedef struct sqlite3_mutex sqlite3_mutex; /* ** CAPI3REF: OS Interface Object ** ** An instance of the sqlite3_vfs object defines the interface between ** the SQLite core and the underlying operating system. The "vfs" ** in the name of the object stands for "virtual file system". ** ** The value of the iVersion field is initially 1 but may be larger in ** future versions of SQLite. Additional fields may be appended to this ** object when the iVersion value is increased. Note that the structure ** of the sqlite3_vfs object changes in the transaction between ** SQLite version 3.5.9 and 3.6.0 and yet the iVersion field was not ** modified. ** ** The szOsFile field is the size of the subclassed [sqlite3_file] ** structure used by this VFS. mxPathname is the maximum length of ** a pathname in this VFS. ** ** Registered sqlite3_vfs objects are kept on a linked list formed by ** the pNext pointer. The [sqlite3_vfs_register()] ** and [sqlite3_vfs_unregister()] interfaces manage this list ** in a thread-safe way. The [sqlite3_vfs_find()] interface ** searches the list. Neither the application code nor the VFS ** implementation should use the pNext pointer. ** ** The pNext field is the only field in the sqlite3_vfs ** structure that SQLite will ever modify. SQLite will only access ** or modify this field while holding a particular static mutex. ** The application should never modify anything within the sqlite3_vfs ** object once the object has been registered. ** ** The zName field holds the name of the VFS module. The name must ** be unique across all VFS modules. ** ** ^SQLite guarantees that the zFilename parameter to xOpen ** is either a NULL pointer or string obtained ** from xFullPathname() with an optional suffix added. ** ^If a suffix is added to the zFilename parameter, it will ** consist of a single "-" character followed by no more than ** 10 alphanumeric and/or "-" characters. ** ^SQLite further guarantees that ** the string will be valid and unchanged until xClose() is ** called. Because of the previous sentence, ** the [sqlite3_file] can safely store a pointer to the ** filename if it needs to remember the filename for some reason. ** If the zFilename parameter to xOpen is a NULL pointer then xOpen ** must invent its own temporary name for the file. ^Whenever the ** xFilename parameter is NULL it will also be the case that the ** flags parameter will include [SQLITE_OPEN_DELETEONCLOSE]. ** ** The flags argument to xOpen() includes all bits set in ** the flags argument to [sqlite3_open_v2()]. Or if [sqlite3_open()] ** or [sqlite3_open16()] is used, then flags includes at least ** [SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE]. ** If xOpen() opens a file read-only then it sets *pOutFlags to ** include [SQLITE_OPEN_READONLY]. Other bits in *pOutFlags may be set. ** ** ^(SQLite will also add one of the following flags to the xOpen() ** call, depending on the object being opened: ** **
      **
    • [SQLITE_OPEN_MAIN_DB] **
    • [SQLITE_OPEN_MAIN_JOURNAL] **
    • [SQLITE_OPEN_TEMP_DB] **
    • [SQLITE_OPEN_TEMP_JOURNAL] **
    • [SQLITE_OPEN_TRANSIENT_DB] **
    • [SQLITE_OPEN_SUBJOURNAL] **
    • [SQLITE_OPEN_MASTER_JOURNAL] **
    • [SQLITE_OPEN_WAL] **
    )^ ** ** The file I/O implementation can use the object type flags to ** change the way it deals with files. For example, an application ** that does not care about crash recovery or rollback might make ** the open of a journal file a no-op. Writes to this journal would ** also be no-ops, and any attempt to read the journal would return ** SQLITE_IOERR. Or the implementation might recognize that a database ** file will be doing page-aligned sector reads and writes in a random ** order and set up its I/O subsystem accordingly. ** ** SQLite might also add one of the following flags to the xOpen method: ** **
      **
    • [SQLITE_OPEN_DELETEONCLOSE] **
    • [SQLITE_OPEN_EXCLUSIVE] **
    ** ** The [SQLITE_OPEN_DELETEONCLOSE] flag means the file should be ** deleted when it is closed. ^The [SQLITE_OPEN_DELETEONCLOSE] ** will be set for TEMP databases and their journals, transient ** databases, and subjournals. ** ** ^The [SQLITE_OPEN_EXCLUSIVE] flag is always used in conjunction ** with the [SQLITE_OPEN_CREATE] flag, which are both directly ** analogous to the O_EXCL and O_CREAT flags of the POSIX open() ** API. The SQLITE_OPEN_EXCLUSIVE flag, when paired with the ** SQLITE_OPEN_CREATE, is used to indicate that file should always ** be created, and that it is an error if it already exists. ** It is not used to indicate the file should be opened ** for exclusive access. ** ** ^At least szOsFile bytes of memory are allocated by SQLite ** to hold the [sqlite3_file] structure passed as the third ** argument to xOpen. The xOpen method does not have to ** allocate the structure; it should just fill it in. Note that ** the xOpen method must set the sqlite3_file.pMethods to either ** a valid [sqlite3_io_methods] object or to NULL. xOpen must do ** this even if the open fails. SQLite expects that the sqlite3_file.pMethods ** element will be valid after xOpen returns regardless of the success ** or failure of the xOpen call. ** ** ^The flags argument to xAccess() may be [SQLITE_ACCESS_EXISTS] ** to test for the existence of a file, or [SQLITE_ACCESS_READWRITE] to ** test whether a file is readable and writable, or [SQLITE_ACCESS_READ] ** to test whether a file is at least readable. The file can be a ** directory. ** ** ^SQLite will always allocate at least mxPathname+1 bytes for the ** output buffer xFullPathname. The exact size of the output buffer ** is also passed as a parameter to both methods. If the output buffer ** is not large enough, [SQLITE_CANTOPEN] should be returned. Since this is ** handled as a fatal error by SQLite, vfs implementations should endeavor ** to prevent this by setting mxPathname to a sufficiently large value. ** ** The xRandomness(), xSleep(), xCurrentTime(), and xCurrentTimeInt64() ** interfaces are not strictly a part of the filesystem, but they are ** included in the VFS structure for completeness. ** The xRandomness() function attempts to return nBytes bytes ** of good-quality randomness into zOut. The return value is ** the actual number of bytes of randomness obtained. ** The xSleep() method causes the calling thread to sleep for at ** least the number of microseconds given. ^The xCurrentTime() ** method returns a Julian Day Number for the current date and time as ** a floating point value. ** ^The xCurrentTimeInt64() method returns, as an integer, the Julian ** Day Number multipled by 86400000 (the number of milliseconds in ** a 24-hour day). ** ^SQLite will use the xCurrentTimeInt64() method to get the current ** date and time if that method is available (if iVersion is 2 or ** greater and the function pointer is not NULL) and will fall back ** to xCurrentTime() if xCurrentTimeInt64() is unavailable. ** ** ^The xSetSystemCall(), xGetSystemCall(), and xNestSystemCall() interfaces ** are not used by the SQLite core. These optional interfaces are provided ** by some VFSes to facilitate testing of the VFS code. By overriding ** system calls with functions under its control, a test program can ** simulate faults and error conditions that would otherwise be difficult ** or impossible to induce. The set of system calls that can be overridden ** varies from one VFS to another, and from one version of the same VFS to the ** next. Applications that use these interfaces must be prepared for any ** or all of these interfaces to be NULL or for their behavior to change ** from one release to the next. Applications must not attempt to access ** any of these methods if the iVersion of the VFS is less than 3. */ typedef struct sqlite3_vfs sqlite3_vfs; typedef void (*sqlite3_syscall_ptr)(void); struct sqlite3_vfs { int iVersion; /* Structure version number (currently 3) */ int szOsFile; /* Size of subclassed sqlite3_file */ int mxPathname; /* Maximum file pathname length */ sqlite3_vfs *pNext; /* Next registered VFS */ const char *zName; /* Name of this virtual file system */ void *pAppData; /* Pointer to application-specific data */ int (*xOpen)(sqlite3_vfs*, const char *zName, sqlite3_file*, int flags, int *pOutFlags); int (*xDelete)(sqlite3_vfs*, const char *zName, int syncDir); int (*xAccess)(sqlite3_vfs*, const char *zName, int flags, int *pResOut); int (*xFullPathname)(sqlite3_vfs*, const char *zName, int nOut, char *zOut); void *(*xDlOpen)(sqlite3_vfs*, const char *zFilename); void (*xDlError)(sqlite3_vfs*, int nByte, char *zErrMsg); void (*(*xDlSym)(sqlite3_vfs*,void*, const char *zSymbol))(void); void (*xDlClose)(sqlite3_vfs*, void*); int (*xRandomness)(sqlite3_vfs*, int nByte, char *zOut); int (*xSleep)(sqlite3_vfs*, int microseconds); int (*xCurrentTime)(sqlite3_vfs*, double*); int (*xGetLastError)(sqlite3_vfs*, int, char *); /* ** The methods above are in version 1 of the sqlite_vfs object ** definition. Those that follow are added in version 2 or later */ int (*xCurrentTimeInt64)(sqlite3_vfs*, sqlite3_int64*); /* ** The methods above are in versions 1 and 2 of the sqlite_vfs object. ** Those below are for version 3 and greater. */ int (*xSetSystemCall)(sqlite3_vfs*, const char *zName, sqlite3_syscall_ptr); sqlite3_syscall_ptr (*xGetSystemCall)(sqlite3_vfs*, const char *zName); const char *(*xNextSystemCall)(sqlite3_vfs*, const char *zName); /* ** The methods above are in versions 1 through 3 of the sqlite_vfs object. ** New fields may be appended in figure versions. The iVersion ** value will increment whenever this happens. */ }; /* ** CAPI3REF: Flags for the xAccess VFS method ** ** These integer constants can be used as the third parameter to ** the xAccess method of an [sqlite3_vfs] object. They determine ** what kind of permissions the xAccess method is looking for. ** With SQLITE_ACCESS_EXISTS, the xAccess method ** simply checks whether the file exists. ** With SQLITE_ACCESS_READWRITE, the xAccess method ** checks whether the named directory is both readable and writable ** (in other words, if files can be added, removed, and renamed within ** the directory). ** The SQLITE_ACCESS_READWRITE constant is currently used only by the ** [temp_store_directory pragma], though this could change in a future ** release of SQLite. ** With SQLITE_ACCESS_READ, the xAccess method ** checks whether the file is readable. The SQLITE_ACCESS_READ constant is ** currently unused, though it might be used in a future release of ** SQLite. */ #define SQLITE_ACCESS_EXISTS 0 #define SQLITE_ACCESS_READWRITE 1 /* Used by PRAGMA temp_store_directory */ #define SQLITE_ACCESS_READ 2 /* Unused */ /* ** CAPI3REF: Flags for the xShmLock VFS method ** ** These integer constants define the various locking operations ** allowed by the xShmLock method of [sqlite3_io_methods]. The ** following are the only legal combinations of flags to the ** xShmLock method: ** **
      **
    • SQLITE_SHM_LOCK | SQLITE_SHM_SHARED **
    • SQLITE_SHM_LOCK | SQLITE_SHM_EXCLUSIVE **
    • SQLITE_SHM_UNLOCK | SQLITE_SHM_SHARED **
    • SQLITE_SHM_UNLOCK | SQLITE_SHM_EXCLUSIVE **
    ** ** When unlocking, the same SHARED or EXCLUSIVE flag must be supplied as ** was given no the corresponding lock. ** ** The xShmLock method can transition between unlocked and SHARED or ** between unlocked and EXCLUSIVE. It cannot transition between SHARED ** and EXCLUSIVE. */ #define SQLITE_SHM_UNLOCK 1 #define SQLITE_SHM_LOCK 2 #define SQLITE_SHM_SHARED 4 #define SQLITE_SHM_EXCLUSIVE 8 /* ** CAPI3REF: Maximum xShmLock index ** ** The xShmLock method on [sqlite3_io_methods] may use values ** between 0 and this upper bound as its "offset" argument. ** The SQLite core will never attempt to acquire or release a ** lock outside of this range */ #define SQLITE_SHM_NLOCK 8 /* ** CAPI3REF: Initialize The SQLite Library ** ** ^The sqlite3_initialize() routine initializes the ** SQLite library. ^The sqlite3_shutdown() routine ** deallocates any resources that were allocated by sqlite3_initialize(). ** These routines are designed to aid in process initialization and ** shutdown on embedded systems. Workstation applications using ** SQLite normally do not need to invoke either of these routines. ** ** A call to sqlite3_initialize() is an "effective" call if it is ** the first time sqlite3_initialize() is invoked during the lifetime of ** the process, or if it is the first time sqlite3_initialize() is invoked ** following a call to sqlite3_shutdown(). ^(Only an effective call ** of sqlite3_initialize() does any initialization. All other calls ** are harmless no-ops.)^ ** ** A call to sqlite3_shutdown() is an "effective" call if it is the first ** call to sqlite3_shutdown() since the last sqlite3_initialize(). ^(Only ** an effective call to sqlite3_shutdown() does any deinitialization. ** All other valid calls to sqlite3_shutdown() are harmless no-ops.)^ ** ** The sqlite3_initialize() interface is threadsafe, but sqlite3_shutdown() ** is not. The sqlite3_shutdown() interface must only be called from a ** single thread. All open [database connections] must be closed and all ** other SQLite resources must be deallocated prior to invoking ** sqlite3_shutdown(). ** ** Among other things, ^sqlite3_initialize() will invoke ** sqlite3_os_init(). Similarly, ^sqlite3_shutdown() ** will invoke sqlite3_os_end(). ** ** ^The sqlite3_initialize() routine returns [SQLITE_OK] on success. ** ^If for some reason, sqlite3_initialize() is unable to initialize ** the library (perhaps it is unable to allocate a needed resource such ** as a mutex) it returns an [error code] other than [SQLITE_OK]. ** ** ^The sqlite3_initialize() routine is called internally by many other ** SQLite interfaces so that an application usually does not need to ** invoke sqlite3_initialize() directly. For example, [sqlite3_open()] ** calls sqlite3_initialize() so the SQLite library will be automatically ** initialized when [sqlite3_open()] is called if it has not be initialized ** already. ^However, if SQLite is compiled with the [SQLITE_OMIT_AUTOINIT] ** compile-time option, then the automatic calls to sqlite3_initialize() ** are omitted and the application must call sqlite3_initialize() directly ** prior to using any other SQLite interface. For maximum portability, ** it is recommended that applications always invoke sqlite3_initialize() ** directly prior to using any other SQLite interface. Future releases ** of SQLite may require this. In other words, the behavior exhibited ** when SQLite is compiled with [SQLITE_OMIT_AUTOINIT] might become the ** default behavior in some future release of SQLite. ** ** The sqlite3_os_init() routine does operating-system specific ** initialization of the SQLite library. The sqlite3_os_end() ** routine undoes the effect of sqlite3_os_init(). Typical tasks ** performed by these routines include allocation or deallocation ** of static resources, initialization of global variables, ** setting up a default [sqlite3_vfs] module, or setting up ** a default configuration using [sqlite3_config()]. ** ** The application should never invoke either sqlite3_os_init() ** or sqlite3_os_end() directly. The application should only invoke ** sqlite3_initialize() and sqlite3_shutdown(). The sqlite3_os_init() ** interface is called automatically by sqlite3_initialize() and ** sqlite3_os_end() is called by sqlite3_shutdown(). Appropriate ** implementations for sqlite3_os_init() and sqlite3_os_end() ** are built into SQLite when it is compiled for Unix, Windows, or OS/2. ** When [custom builds | built for other platforms] ** (using the [SQLITE_OS_OTHER=1] compile-time ** option) the application must supply a suitable implementation for ** sqlite3_os_init() and sqlite3_os_end(). An application-supplied ** implementation of sqlite3_os_init() or sqlite3_os_end() ** must return [SQLITE_OK] on success and some other [error code] upon ** failure. */ SQLITE_API int sqlite3_initialize(void); SQLITE_API int sqlite3_shutdown(void); SQLITE_API int sqlite3_os_init(void); SQLITE_API int sqlite3_os_end(void); /* ** CAPI3REF: Configuring The SQLite Library ** ** The sqlite3_config() interface is used to make global configuration ** changes to SQLite in order to tune SQLite to the specific needs of ** the application. The default configuration is recommended for most ** applications and so this routine is usually not necessary. It is ** provided to support rare applications with unusual needs. ** ** The sqlite3_config() interface is not threadsafe. The application ** must insure that no other SQLite interfaces are invoked by other ** threads while sqlite3_config() is running. Furthermore, sqlite3_config() ** may only be invoked prior to library initialization using ** [sqlite3_initialize()] or after shutdown by [sqlite3_shutdown()]. ** ^If sqlite3_config() is called after [sqlite3_initialize()] and before ** [sqlite3_shutdown()] then it will return SQLITE_MISUSE. ** Note, however, that ^sqlite3_config() can be called as part of the ** implementation of an application-defined [sqlite3_os_init()]. ** ** The first argument to sqlite3_config() is an integer ** [SQLITE_CONFIG_SINGLETHREAD | configuration option] that determines ** what property of SQLite is to be configured. Subsequent arguments ** vary depending on the [SQLITE_CONFIG_SINGLETHREAD | configuration option] ** in the first argument. ** ** ^When a configuration option is set, sqlite3_config() returns [SQLITE_OK]. ** ^If the option is unknown or SQLite is unable to set the option ** then this routine returns a non-zero [error code]. */ SQLITE_API int sqlite3_config(int, ...); /* ** CAPI3REF: Configure database connections ** ** The sqlite3_db_config() interface is used to make configuration ** changes to a [database connection]. The interface is similar to ** [sqlite3_config()] except that the changes apply to a single ** [database connection] (specified in the first argument). ** ** The second argument to sqlite3_db_config(D,V,...) is the ** [SQLITE_DBCONFIG_LOOKASIDE | configuration verb] - an integer code ** that indicates what aspect of the [database connection] is being configured. ** Subsequent arguments vary depending on the configuration verb. ** ** ^Calls to sqlite3_db_config() return SQLITE_OK if and only if ** the call is considered successful. */ SQLITE_API int sqlite3_db_config(sqlite3*, int op, ...); /* ** CAPI3REF: Memory Allocation Routines ** ** An instance of this object defines the interface between SQLite ** and low-level memory allocation routines. ** ** This object is used in only one place in the SQLite interface. ** A pointer to an instance of this object is the argument to ** [sqlite3_config()] when the configuration option is ** [SQLITE_CONFIG_MALLOC] or [SQLITE_CONFIG_GETMALLOC]. ** By creating an instance of this object ** and passing it to [sqlite3_config]([SQLITE_CONFIG_MALLOC]) ** during configuration, an application can specify an alternative ** memory allocation subsystem for SQLite to use for all of its ** dynamic memory needs. ** ** Note that SQLite comes with several [built-in memory allocators] ** that are perfectly adequate for the overwhelming majority of applications ** and that this object is only useful to a tiny minority of applications ** with specialized memory allocation requirements. This object is ** also used during testing of SQLite in order to specify an alternative ** memory allocator that simulates memory out-of-memory conditions in ** order to verify that SQLite recovers gracefully from such ** conditions. ** ** The xMalloc and xFree methods must work like the ** malloc() and free() functions from the standard C library. ** The xRealloc method must work like realloc() from the standard C library ** with the exception that if the second argument to xRealloc is zero, ** xRealloc must be a no-op - it must not perform any allocation or ** deallocation. ^SQLite guarantees that the second argument to ** xRealloc is always a value returned by a prior call to xRoundup. ** And so in cases where xRoundup always returns a positive number, ** xRealloc can perform exactly as the standard library realloc() and ** still be in compliance with this specification. ** ** xSize should return the allocated size of a memory allocation ** previously obtained from xMalloc or xRealloc. The allocated size ** is always at least as big as the requested size but may be larger. ** ** The xRoundup method returns what would be the allocated size of ** a memory allocation given a particular requested size. Most memory ** allocators round up memory allocations at least to the next multiple ** of 8. Some allocators round up to a larger multiple or to a power of 2. ** Every memory allocation request coming in through [sqlite3_malloc()] ** or [sqlite3_realloc()] first calls xRoundup. If xRoundup returns 0, ** that causes the corresponding memory allocation to fail. ** ** The xInit method initializes the memory allocator. (For example, ** it might allocate any require mutexes or initialize internal data ** structures. The xShutdown method is invoked (indirectly) by ** [sqlite3_shutdown()] and should deallocate any resources acquired ** by xInit. The pAppData pointer is used as the only parameter to ** xInit and xShutdown. ** ** SQLite holds the [SQLITE_MUTEX_STATIC_MASTER] mutex when it invokes ** the xInit method, so the xInit method need not be threadsafe. The ** xShutdown method is only called from [sqlite3_shutdown()] so it does ** not need to be threadsafe either. For all other methods, SQLite ** holds the [SQLITE_MUTEX_STATIC_MEM] mutex as long as the ** [SQLITE_CONFIG_MEMSTATUS] configuration option is turned on (which ** it is by default) and so the methods are automatically serialized. ** However, if [SQLITE_CONFIG_MEMSTATUS] is disabled, then the other ** methods must be threadsafe or else make their own arrangements for ** serialization. ** ** SQLite will never invoke xInit() more than once without an intervening ** call to xShutdown(). */ typedef struct sqlite3_mem_methods sqlite3_mem_methods; struct sqlite3_mem_methods { void *(*xMalloc)(int); /* Memory allocation function */ void (*xFree)(void*); /* Free a prior allocation */ void *(*xRealloc)(void*,int); /* Resize an allocation */ int (*xSize)(void*); /* Return the size of an allocation */ int (*xRoundup)(int); /* Round up request size to allocation size */ int (*xInit)(void*); /* Initialize the memory allocator */ void (*xShutdown)(void*); /* Deinitialize the memory allocator */ void *pAppData; /* Argument to xInit() and xShutdown() */ }; /* ** CAPI3REF: Configuration Options ** ** These constants are the available integer configuration options that ** can be passed as the first argument to the [sqlite3_config()] interface. ** ** New configuration options may be added in future releases of SQLite. ** Existing configuration options might be discontinued. Applications ** should check the return code from [sqlite3_config()] to make sure that ** the call worked. The [sqlite3_config()] interface will return a ** non-zero [error code] if a discontinued or unsupported configuration option ** is invoked. ** **
    **
    SQLITE_CONFIG_SINGLETHREAD
    **
    There are no arguments to this option. ^This option sets the ** [threading mode] to Single-thread. In other words, it disables ** all mutexing and puts SQLite into a mode where it can only be used ** by a single thread. ^If SQLite is compiled with ** the [SQLITE_THREADSAFE | SQLITE_THREADSAFE=0] compile-time option then ** it is not possible to change the [threading mode] from its default ** value of Single-thread and so [sqlite3_config()] will return ** [SQLITE_ERROR] if called with the SQLITE_CONFIG_SINGLETHREAD ** configuration option.
    ** **
    SQLITE_CONFIG_MULTITHREAD
    **
    There are no arguments to this option. ^This option sets the ** [threading mode] to Multi-thread. In other words, it disables ** mutexing on [database connection] and [prepared statement] objects. ** The application is responsible for serializing access to ** [database connections] and [prepared statements]. But other mutexes ** are enabled so that SQLite will be safe to use in a multi-threaded ** environment as long as no two threads attempt to use the same ** [database connection] at the same time. ^If SQLite is compiled with ** the [SQLITE_THREADSAFE | SQLITE_THREADSAFE=0] compile-time option then ** it is not possible to set the Multi-thread [threading mode] and ** [sqlite3_config()] will return [SQLITE_ERROR] if called with the ** SQLITE_CONFIG_MULTITHREAD configuration option.
    ** **
    SQLITE_CONFIG_SERIALIZED
    **
    There are no arguments to this option. ^This option sets the ** [threading mode] to Serialized. In other words, this option enables ** all mutexes including the recursive ** mutexes on [database connection] and [prepared statement] objects. ** In this mode (which is the default when SQLite is compiled with ** [SQLITE_THREADSAFE=1]) the SQLite library will itself serialize access ** to [database connections] and [prepared statements] so that the ** application is free to use the same [database connection] or the ** same [prepared statement] in different threads at the same time. ** ^If SQLite is compiled with ** the [SQLITE_THREADSAFE | SQLITE_THREADSAFE=0] compile-time option then ** it is not possible to set the Serialized [threading mode] and ** [sqlite3_config()] will return [SQLITE_ERROR] if called with the ** SQLITE_CONFIG_SERIALIZED configuration option.
    ** **
    SQLITE_CONFIG_MALLOC
    **
    ^(This option takes a single argument which is a pointer to an ** instance of the [sqlite3_mem_methods] structure. The argument specifies ** alternative low-level memory allocation routines to be used in place of ** the memory allocation routines built into SQLite.)^ ^SQLite makes ** its own private copy of the content of the [sqlite3_mem_methods] structure ** before the [sqlite3_config()] call returns.
    ** **
    SQLITE_CONFIG_GETMALLOC
    **
    ^(This option takes a single argument which is a pointer to an ** instance of the [sqlite3_mem_methods] structure. The [sqlite3_mem_methods] ** structure is filled with the currently defined memory allocation routines.)^ ** This option can be used to overload the default memory allocation ** routines with a wrapper that simulations memory allocation failure or ** tracks memory usage, for example.
    ** **
    SQLITE_CONFIG_MEMSTATUS
    **
    ^This option takes single argument of type int, interpreted as a ** boolean, which enables or disables the collection of memory allocation ** statistics. ^(When memory allocation statistics are disabled, the ** following SQLite interfaces become non-operational: **
      **
    • [sqlite3_memory_used()] **
    • [sqlite3_memory_highwater()] **
    • [sqlite3_soft_heap_limit64()] **
    • [sqlite3_status()] **
    )^ ** ^Memory allocation statistics are enabled by default unless SQLite is ** compiled with [SQLITE_DEFAULT_MEMSTATUS]=0 in which case memory ** allocation statistics are disabled by default. **
    ** **
    SQLITE_CONFIG_SCRATCH
    **
    ^This option specifies a static memory buffer that SQLite can use for ** scratch memory. There are three arguments: A pointer an 8-byte ** aligned memory buffer from which the scratch allocations will be ** drawn, the size of each scratch allocation (sz), ** and the maximum number of scratch allocations (N). The sz ** argument must be a multiple of 16. ** The first argument must be a pointer to an 8-byte aligned buffer ** of at least sz*N bytes of memory. ** ^SQLite will use no more than two scratch buffers per thread. So ** N should be set to twice the expected maximum number of threads. ** ^SQLite will never require a scratch buffer that is more than 6 ** times the database page size. ^If SQLite needs needs additional ** scratch memory beyond what is provided by this configuration option, then ** [sqlite3_malloc()] will be used to obtain the memory needed.
    ** **
    SQLITE_CONFIG_PAGECACHE
    **
    ^This option specifies a static memory buffer that SQLite can use for ** the database page cache with the default page cache implemenation. ** This configuration should not be used if an application-define page ** cache implementation is loaded using the SQLITE_CONFIG_PCACHE option. ** There are three arguments to this option: A pointer to 8-byte aligned ** memory, the size of each page buffer (sz), and the number of pages (N). ** The sz argument should be the size of the largest database page ** (a power of two between 512 and 32768) plus a little extra for each ** page header. ^The page header size is 20 to 40 bytes depending on ** the host architecture. ^It is harmless, apart from the wasted memory, ** to make sz a little too large. The first ** argument should point to an allocation of at least sz*N bytes of memory. ** ^SQLite will use the memory provided by the first argument to satisfy its ** memory needs for the first N pages that it adds to cache. ^If additional ** page cache memory is needed beyond what is provided by this option, then ** SQLite goes to [sqlite3_malloc()] for the additional storage space. ** The pointer in the first argument must ** be aligned to an 8-byte boundary or subsequent behavior of SQLite ** will be undefined.
    ** **
    SQLITE_CONFIG_HEAP
    **
    ^This option specifies a static memory buffer that SQLite will use ** for all of its dynamic memory allocation needs beyond those provided ** for by [SQLITE_CONFIG_SCRATCH] and [SQLITE_CONFIG_PAGECACHE]. ** There are three arguments: An 8-byte aligned pointer to the memory, ** the number of bytes in the memory buffer, and the minimum allocation size. ** ^If the first pointer (the memory pointer) is NULL, then SQLite reverts ** to using its default memory allocator (the system malloc() implementation), ** undoing any prior invocation of [SQLITE_CONFIG_MALLOC]. ^If the ** memory pointer is not NULL and either [SQLITE_ENABLE_MEMSYS3] or ** [SQLITE_ENABLE_MEMSYS5] are defined, then the alternative memory ** allocator is engaged to handle all of SQLites memory allocation needs. ** The first pointer (the memory pointer) must be aligned to an 8-byte ** boundary or subsequent behavior of SQLite will be undefined. ** The minimum allocation size is capped at 2^12. Reasonable values ** for the minimum allocation size are 2^5 through 2^8.
    ** **
    SQLITE_CONFIG_MUTEX
    **
    ^(This option takes a single argument which is a pointer to an ** instance of the [sqlite3_mutex_methods] structure. The argument specifies ** alternative low-level mutex routines to be used in place ** the mutex routines built into SQLite.)^ ^SQLite makes a copy of the ** content of the [sqlite3_mutex_methods] structure before the call to ** [sqlite3_config()] returns. ^If SQLite is compiled with ** the [SQLITE_THREADSAFE | SQLITE_THREADSAFE=0] compile-time option then ** the entire mutexing subsystem is omitted from the build and hence calls to ** [sqlite3_config()] with the SQLITE_CONFIG_MUTEX configuration option will ** return [SQLITE_ERROR].
    ** **
    SQLITE_CONFIG_GETMUTEX
    **
    ^(This option takes a single argument which is a pointer to an ** instance of the [sqlite3_mutex_methods] structure. The ** [sqlite3_mutex_methods] ** structure is filled with the currently defined mutex routines.)^ ** This option can be used to overload the default mutex allocation ** routines with a wrapper used to track mutex usage for performance ** profiling or testing, for example. ^If SQLite is compiled with ** the [SQLITE_THREADSAFE | SQLITE_THREADSAFE=0] compile-time option then ** the entire mutexing subsystem is omitted from the build and hence calls to ** [sqlite3_config()] with the SQLITE_CONFIG_GETMUTEX configuration option will ** return [SQLITE_ERROR].
    ** **
    SQLITE_CONFIG_LOOKASIDE
    **
    ^(This option takes two arguments that determine the default ** memory allocation for the lookaside memory allocator on each ** [database connection]. The first argument is the ** size of each lookaside buffer slot and the second is the number of ** slots allocated to each database connection.)^ ^(This option sets the ** default lookaside size. The [SQLITE_DBCONFIG_LOOKASIDE] ** verb to [sqlite3_db_config()] can be used to change the lookaside ** configuration on individual connections.)^
    ** **
    SQLITE_CONFIG_PCACHE
    **
    ^(This option takes a single argument which is a pointer to ** an [sqlite3_pcache_methods] object. This object specifies the interface ** to a custom page cache implementation.)^ ^SQLite makes a copy of the ** object and uses it for page cache memory allocations.
    ** **
    SQLITE_CONFIG_GETPCACHE
    **
    ^(This option takes a single argument which is a pointer to an ** [sqlite3_pcache_methods] object. SQLite copies of the current ** page cache implementation into that object.)^
    ** **
    SQLITE_CONFIG_LOG
    **
    ^The SQLITE_CONFIG_LOG option takes two arguments: a pointer to a ** function with a call signature of void(*)(void*,int,const char*), ** and a pointer to void. ^If the function pointer is not NULL, it is ** invoked by [sqlite3_log()] to process each logging event. ^If the ** function pointer is NULL, the [sqlite3_log()] interface becomes a no-op. ** ^The void pointer that is the second argument to SQLITE_CONFIG_LOG is ** passed through as the first parameter to the application-defined logger ** function whenever that function is invoked. ^The second parameter to ** the logger function is a copy of the first parameter to the corresponding ** [sqlite3_log()] call and is intended to be a [result code] or an ** [extended result code]. ^The third parameter passed to the logger is ** log message after formatting via [sqlite3_snprintf()]. ** The SQLite logging interface is not reentrant; the logger function ** supplied by the application must not invoke any SQLite interface. ** In a multi-threaded application, the application-defined logger ** function must be threadsafe.
    ** **
    */ #define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ #define SQLITE_CONFIG_MULTITHREAD 2 /* nil */ #define SQLITE_CONFIG_SERIALIZED 3 /* nil */ #define SQLITE_CONFIG_MALLOC 4 /* sqlite3_mem_methods* */ #define SQLITE_CONFIG_GETMALLOC 5 /* sqlite3_mem_methods* */ #define SQLITE_CONFIG_SCRATCH 6 /* void*, int sz, int N */ #define SQLITE_CONFIG_PAGECACHE 7 /* void*, int sz, int N */ #define SQLITE_CONFIG_HEAP 8 /* void*, int nByte, int min */ #define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */ #define SQLITE_CONFIG_MUTEX 10 /* sqlite3_mutex_methods* */ #define SQLITE_CONFIG_GETMUTEX 11 /* sqlite3_mutex_methods* */ /* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */ #define SQLITE_CONFIG_LOOKASIDE 13 /* int int */ #define SQLITE_CONFIG_PCACHE 14 /* sqlite3_pcache_methods* */ #define SQLITE_CONFIG_GETPCACHE 15 /* sqlite3_pcache_methods* */ #define SQLITE_CONFIG_LOG 16 /* xFunc, void* */ /* ** CAPI3REF: Database Connection Configuration Options ** ** These constants are the available integer configuration options that ** can be passed as the second argument to the [sqlite3_db_config()] interface. ** ** New configuration options may be added in future releases of SQLite. ** Existing configuration options might be discontinued. Applications ** should check the return code from [sqlite3_db_config()] to make sure that ** the call worked. ^The [sqlite3_db_config()] interface will return a ** non-zero [error code] if a discontinued or unsupported configuration option ** is invoked. ** **
    **
    SQLITE_DBCONFIG_LOOKASIDE
    **
    ^This option takes three additional arguments that determine the ** [lookaside memory allocator] configuration for the [database connection]. ** ^The first argument (the third parameter to [sqlite3_db_config()] is a ** pointer to a memory buffer to use for lookaside memory. ** ^The first argument after the SQLITE_DBCONFIG_LOOKASIDE verb ** may be NULL in which case SQLite will allocate the ** lookaside buffer itself using [sqlite3_malloc()]. ^The second argument is the ** size of each lookaside buffer slot. ^The third argument is the number of ** slots. The size of the buffer in the first argument must be greater than ** or equal to the product of the second and third arguments. The buffer ** must be aligned to an 8-byte boundary. ^If the second argument to ** SQLITE_DBCONFIG_LOOKASIDE is not a multiple of 8, it is internally ** rounded down to the next smaller multiple of 8. ^(The lookaside memory ** configuration for a database connection can only be changed when that ** connection is not currently using lookaside memory, or in other words ** when the "current value" returned by ** [sqlite3_db_status](D,[SQLITE_CONFIG_LOOKASIDE],...) is zero. ** Any attempt to change the lookaside memory configuration when lookaside ** memory is in use leaves the configuration unchanged and returns ** [SQLITE_BUSY].)^
    ** **
    SQLITE_DBCONFIG_ENABLE_FKEY
    **
    ^This option is used to enable or disable the enforcement of ** [foreign key constraints]. There should be two additional arguments. ** The first argument is an integer which is 0 to disable FK enforcement, ** positive to enable FK enforcement or negative to leave FK enforcement ** unchanged. The second parameter is a pointer to an integer into which ** is written 0 or 1 to indicate whether FK enforcement is off or on ** following this call. The second parameter may be a NULL pointer, in ** which case the FK enforcement setting is not reported back.
    ** **
    SQLITE_DBCONFIG_ENABLE_TRIGGER
    **
    ^This option is used to enable or disable [CREATE TRIGGER | triggers]. ** There should be two additional arguments. ** The first argument is an integer which is 0 to disable triggers, ** positive to enable triggers or negative to leave the setting unchanged. ** The second parameter is a pointer to an integer into which ** is written 0 or 1 to indicate whether triggers are disabled or enabled ** following this call. The second parameter may be a NULL pointer, in ** which case the trigger setting is not reported back.
    ** **
    */ #define SQLITE_DBCONFIG_LOOKASIDE 1001 /* void* int int */ #define SQLITE_DBCONFIG_ENABLE_FKEY 1002 /* int int* */ #define SQLITE_DBCONFIG_ENABLE_TRIGGER 1003 /* int int* */ /* ** CAPI3REF: Enable Or Disable Extended Result Codes ** ** ^The sqlite3_extended_result_codes() routine enables or disables the ** [extended result codes] feature of SQLite. ^The extended result ** codes are disabled by default for historical compatibility. */ SQLITE_API int sqlite3_extended_result_codes(sqlite3*, int onoff); /* ** CAPI3REF: Last Insert Rowid ** ** ^Each entry in an SQLite table has a unique 64-bit signed ** integer key called the [ROWID | "rowid"]. ^The rowid is always available ** as an undeclared column named ROWID, OID, or _ROWID_ as long as those ** names are not also used by explicitly declared columns. ^If ** the table has a column of type [INTEGER PRIMARY KEY] then that column ** is another alias for the rowid. ** ** ^This routine returns the [rowid] of the most recent ** successful [INSERT] into the database from the [database connection] ** in the first argument. ^If no successful [INSERT]s ** have ever occurred on that database connection, zero is returned. ** ** ^(If an [INSERT] occurs within a trigger, then the [rowid] of the inserted ** row is returned by this routine as long as the trigger is running. ** But once the trigger terminates, the value returned by this routine ** reverts to the last value inserted before the trigger fired.)^ ** ** ^An [INSERT] that fails due to a constraint violation is not a ** successful [INSERT] and does not change the value returned by this ** routine. ^Thus INSERT OR FAIL, INSERT OR IGNORE, INSERT OR ROLLBACK, ** and INSERT OR ABORT make no changes to the return value of this ** routine when their insertion fails. ^(When INSERT OR REPLACE ** encounters a constraint violation, it does not fail. The ** INSERT continues to completion after deleting rows that caused ** the constraint problem so INSERT OR REPLACE will always change ** the return value of this interface.)^ ** ** ^For the purposes of this routine, an [INSERT] is considered to ** be successful even if it is subsequently rolled back. ** ** This function is accessible to SQL statements via the ** [last_insert_rowid() SQL function]. ** ** If a separate thread performs a new [INSERT] on the same ** database connection while the [sqlite3_last_insert_rowid()] ** function is running and thus changes the last insert [rowid], ** then the value returned by [sqlite3_last_insert_rowid()] is ** unpredictable and might not equal either the old or the new ** last insert [rowid]. */ SQLITE_API sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*); /* ** CAPI3REF: Count The Number Of Rows Modified ** ** ^This function returns the number of database rows that were changed ** or inserted or deleted by the most recently completed SQL statement ** on the [database connection] specified by the first parameter. ** ^(Only changes that are directly specified by the [INSERT], [UPDATE], ** or [DELETE] statement are counted. Auxiliary changes caused by ** triggers or [foreign key actions] are not counted.)^ Use the ** [sqlite3_total_changes()] function to find the total number of changes ** including changes caused by triggers and foreign key actions. ** ** ^Changes to a view that are simulated by an [INSTEAD OF trigger] ** are not counted. Only real table changes are counted. ** ** ^(A "row change" is a change to a single row of a single table ** caused by an INSERT, DELETE, or UPDATE statement. Rows that ** are changed as side effects of [REPLACE] constraint resolution, ** rollback, ABORT processing, [DROP TABLE], or by any other ** mechanisms do not count as direct row changes.)^ ** ** A "trigger context" is a scope of execution that begins and ** ends with the script of a [CREATE TRIGGER | trigger]. ** Most SQL statements are ** evaluated outside of any trigger. This is the "top level" ** trigger context. If a trigger fires from the top level, a ** new trigger context is entered for the duration of that one ** trigger. Subtriggers create subcontexts for their duration. ** ** ^Calling [sqlite3_exec()] or [sqlite3_step()] recursively does ** not create a new trigger context. ** ** ^This function returns the number of direct row changes in the ** most recent INSERT, UPDATE, or DELETE statement within the same ** trigger context. ** ** ^Thus, when called from the top level, this function returns the ** number of changes in the most recent INSERT, UPDATE, or DELETE ** that also occurred at the top level. ^(Within the body of a trigger, ** the sqlite3_changes() interface can be called to find the number of ** changes in the most recently completed INSERT, UPDATE, or DELETE ** statement within the body of the same trigger. ** However, the number returned does not include changes ** caused by subtriggers since those have their own context.)^ ** ** See also the [sqlite3_total_changes()] interface, the ** [count_changes pragma], and the [changes() SQL function]. ** ** If a separate thread makes changes on the same database connection ** while [sqlite3_changes()] is running then the value returned ** is unpredictable and not meaningful. */ SQLITE_API int sqlite3_changes(sqlite3*); /* ** CAPI3REF: Total Number Of Rows Modified ** ** ^This function returns the number of row changes caused by [INSERT], ** [UPDATE] or [DELETE] statements since the [database connection] was opened. ** ^(The count returned by sqlite3_total_changes() includes all changes ** from all [CREATE TRIGGER | trigger] contexts and changes made by ** [foreign key actions]. However, ** the count does not include changes used to implement [REPLACE] constraints, ** do rollbacks or ABORT processing, or [DROP TABLE] processing. The ** count does not include rows of views that fire an [INSTEAD OF trigger], ** though if the INSTEAD OF trigger makes changes of its own, those changes ** are counted.)^ ** ^The sqlite3_total_changes() function counts the changes as soon as ** the statement that makes them is completed (when the statement handle ** is passed to [sqlite3_reset()] or [sqlite3_finalize()]). ** ** See also the [sqlite3_changes()] interface, the ** [count_changes pragma], and the [total_changes() SQL function]. ** ** If a separate thread makes changes on the same database connection ** while [sqlite3_total_changes()] is running then the value ** returned is unpredictable and not meaningful. */ SQLITE_API int sqlite3_total_changes(sqlite3*); /* ** CAPI3REF: Interrupt A Long-Running Query ** ** ^This function causes any pending database operation to abort and ** return at its earliest opportunity. This routine is typically ** called in response to a user action such as pressing "Cancel" ** or Ctrl-C where the user wants a long query operation to halt ** immediately. ** ** ^It is safe to call this routine from a thread different from the ** thread that is currently running the database operation. But it ** is not safe to call this routine with a [database connection] that ** is closed or might close before sqlite3_interrupt() returns. ** ** ^If an SQL operation is very nearly finished at the time when ** sqlite3_interrupt() is called, then it might not have an opportunity ** to be interrupted and might continue to completion. ** ** ^An SQL operation that is interrupted will return [SQLITE_INTERRUPT]. ** ^If the interrupted SQL operation is an INSERT, UPDATE, or DELETE ** that is inside an explicit transaction, then the entire transaction ** will be rolled back automatically. ** ** ^The sqlite3_interrupt(D) call is in effect until all currently running ** SQL statements on [database connection] D complete. ^Any new SQL statements ** that are started after the sqlite3_interrupt() call and before the ** running statements reaches zero are interrupted as if they had been ** running prior to the sqlite3_interrupt() call. ^New SQL statements ** that are started after the running statement count reaches zero are ** not effected by the sqlite3_interrupt(). ** ^A call to sqlite3_interrupt(D) that occurs when there are no running ** SQL statements is a no-op and has no effect on SQL statements ** that are started after the sqlite3_interrupt() call returns. ** ** If the database connection closes while [sqlite3_interrupt()] ** is running then bad things will likely happen. */ SQLITE_API void sqlite3_interrupt(sqlite3*); /* ** CAPI3REF: Determine If An SQL Statement Is Complete ** ** These routines are useful during command-line input to determine if the ** currently entered text seems to form a complete SQL statement or ** if additional input is needed before sending the text into ** SQLite for parsing. ^These routines return 1 if the input string ** appears to be a complete SQL statement. ^A statement is judged to be ** complete if it ends with a semicolon token and is not a prefix of a ** well-formed CREATE TRIGGER statement. ^Semicolons that are embedded within ** string literals or quoted identifier names or comments are not ** independent tokens (they are part of the token in which they are ** embedded) and thus do not count as a statement terminator. ^Whitespace ** and comments that follow the final semicolon are ignored. ** ** ^These routines return 0 if the statement is incomplete. ^If a ** memory allocation fails, then SQLITE_NOMEM is returned. ** ** ^These routines do not parse the SQL statements thus ** will not detect syntactically incorrect SQL. ** ** ^(If SQLite has not been initialized using [sqlite3_initialize()] prior ** to invoking sqlite3_complete16() then sqlite3_initialize() is invoked ** automatically by sqlite3_complete16(). If that initialization fails, ** then the return value from sqlite3_complete16() will be non-zero ** regardless of whether or not the input SQL is complete.)^ ** ** The input to [sqlite3_complete()] must be a zero-terminated ** UTF-8 string. ** ** The input to [sqlite3_complete16()] must be a zero-terminated ** UTF-16 string in native byte order. */ SQLITE_API int sqlite3_complete(const char *sql); SQLITE_API int sqlite3_complete16(const void *sql); /* ** CAPI3REF: Register A Callback To Handle SQLITE_BUSY Errors ** ** ^This routine sets a callback function that might be invoked whenever ** an attempt is made to open a database table that another thread ** or process has locked. ** ** ^If the busy callback is NULL, then [SQLITE_BUSY] or [SQLITE_IOERR_BLOCKED] ** is returned immediately upon encountering the lock. ^If the busy callback ** is not NULL, then the callback might be invoked with two arguments. ** ** ^The first argument to the busy handler is a copy of the void* pointer which ** is the third argument to sqlite3_busy_handler(). ^The second argument to ** the busy handler callback is the number of times that the busy handler has ** been invoked for this locking event. ^If the ** busy callback returns 0, then no additional attempts are made to ** access the database and [SQLITE_BUSY] or [SQLITE_IOERR_BLOCKED] is returned. ** ^If the callback returns non-zero, then another attempt ** is made to open the database for reading and the cycle repeats. ** ** The presence of a busy handler does not guarantee that it will be invoked ** when there is lock contention. ^If SQLite determines that invoking the busy ** handler could result in a deadlock, it will go ahead and return [SQLITE_BUSY] ** or [SQLITE_IOERR_BLOCKED] instead of invoking the busy handler. ** Consider a scenario where one process is holding a read lock that ** it is trying to promote to a reserved lock and ** a second process is holding a reserved lock that it is trying ** to promote to an exclusive lock. The first process cannot proceed ** because it is blocked by the second and the second process cannot ** proceed because it is blocked by the first. If both processes ** invoke the busy handlers, neither will make any progress. Therefore, ** SQLite returns [SQLITE_BUSY] for the first process, hoping that this ** will induce the first process to release its read lock and allow ** the second process to proceed. ** ** ^The default busy callback is NULL. ** ** ^The [SQLITE_BUSY] error is converted to [SQLITE_IOERR_BLOCKED] ** when SQLite is in the middle of a large transaction where all the ** changes will not fit into the in-memory cache. SQLite will ** already hold a RESERVED lock on the database file, but it needs ** to promote this lock to EXCLUSIVE so that it can spill cache ** pages into the database file without harm to concurrent ** readers. ^If it is unable to promote the lock, then the in-memory ** cache will be left in an inconsistent state and so the error ** code is promoted from the relatively benign [SQLITE_BUSY] to ** the more severe [SQLITE_IOERR_BLOCKED]. ^This error code promotion ** forces an automatic rollback of the changes. See the ** ** CorruptionFollowingBusyError wiki page for a discussion of why ** this is important. ** ** ^(There can only be a single busy handler defined for each ** [database connection]. Setting a new busy handler clears any ** previously set handler.)^ ^Note that calling [sqlite3_busy_timeout()] ** will also set or clear the busy handler. ** ** The busy callback should not take any actions which modify the ** database connection that invoked the busy handler. Any such actions ** result in undefined behavior. ** ** A busy handler must not close the database connection ** or [prepared statement] that invoked the busy handler. */ SQLITE_API int sqlite3_busy_handler(sqlite3*, int(*)(void*,int), void*); /* ** CAPI3REF: Set A Busy Timeout ** ** ^This routine sets a [sqlite3_busy_handler | busy handler] that sleeps ** for a specified amount of time when a table is locked. ^The handler ** will sleep multiple times until at least "ms" milliseconds of sleeping ** have accumulated. ^After at least "ms" milliseconds of sleeping, ** the handler returns 0 which causes [sqlite3_step()] to return ** [SQLITE_BUSY] or [SQLITE_IOERR_BLOCKED]. ** ** ^Calling this routine with an argument less than or equal to zero ** turns off all busy handlers. ** ** ^(There can only be a single busy handler for a particular ** [database connection] any any given moment. If another busy handler ** was defined (using [sqlite3_busy_handler()]) prior to calling ** this routine, that other busy handler is cleared.)^ */ SQLITE_API int sqlite3_busy_timeout(sqlite3*, int ms); /* ** CAPI3REF: Convenience Routines For Running Queries ** ** This is a legacy interface that is preserved for backwards compatibility. ** Use of this interface is not recommended. ** ** Definition: A result table is memory data structure created by the ** [sqlite3_get_table()] interface. A result table records the ** complete query results from one or more queries. ** ** The table conceptually has a number of rows and columns. But ** these numbers are not part of the result table itself. These ** numbers are obtained separately. Let N be the number of rows ** and M be the number of columns. ** ** A result table is an array of pointers to zero-terminated UTF-8 strings. ** There are (N+1)*M elements in the array. The first M pointers point ** to zero-terminated strings that contain the names of the columns. ** The remaining entries all point to query results. NULL values result ** in NULL pointers. All other values are in their UTF-8 zero-terminated ** string representation as returned by [sqlite3_column_text()]. ** ** A result table might consist of one or more memory allocations. ** It is not safe to pass a result table directly to [sqlite3_free()]. ** A result table should be deallocated using [sqlite3_free_table()]. ** ** ^(As an example of the result table format, suppose a query result ** is as follows: ** **
    **        Name        | Age
    **        -----------------------
    **        Alice       | 43
    **        Bob         | 28
    **        Cindy       | 21
    ** 
    ** ** There are two column (M==2) and three rows (N==3). Thus the ** result table has 8 entries. Suppose the result table is stored ** in an array names azResult. Then azResult holds this content: ** **
    **        azResult[0] = "Name";
    **        azResult[1] = "Age";
    **        azResult[2] = "Alice";
    **        azResult[3] = "43";
    **        azResult[4] = "Bob";
    **        azResult[5] = "28";
    **        azResult[6] = "Cindy";
    **        azResult[7] = "21";
    ** 
    )^ ** ** ^The sqlite3_get_table() function evaluates one or more ** semicolon-separated SQL statements in the zero-terminated UTF-8 ** string of its 2nd parameter and returns a result table to the ** pointer given in its 3rd parameter. ** ** After the application has finished with the result from sqlite3_get_table(), ** it must pass the result table pointer to sqlite3_free_table() in order to ** release the memory that was malloced. Because of the way the ** [sqlite3_malloc()] happens within sqlite3_get_table(), the calling ** function must not try to call [sqlite3_free()] directly. Only ** [sqlite3_free_table()] is able to release the memory properly and safely. ** ** The sqlite3_get_table() interface is implemented as a wrapper around ** [sqlite3_exec()]. The sqlite3_get_table() routine does not have access ** to any internal data structures of SQLite. It uses only the public ** interface defined here. As a consequence, errors that occur in the ** wrapper layer outside of the internal [sqlite3_exec()] call are not ** reflected in subsequent calls to [sqlite3_errcode()] or ** [sqlite3_errmsg()]. */ SQLITE_API int sqlite3_get_table( sqlite3 *db, /* An open database */ const char *zSql, /* SQL to be evaluated */ char ***pazResult, /* Results of the query */ int *pnRow, /* Number of result rows written here */ int *pnColumn, /* Number of result columns written here */ char **pzErrmsg /* Error msg written here */ ); SQLITE_API void sqlite3_free_table(char **result); /* ** CAPI3REF: Formatted String Printing Functions ** ** These routines are work-alikes of the "printf()" family of functions ** from the standard C library. ** ** ^The sqlite3_mprintf() and sqlite3_vmprintf() routines write their ** results into memory obtained from [sqlite3_malloc()]. ** The strings returned by these two routines should be ** released by [sqlite3_free()]. ^Both routines return a ** NULL pointer if [sqlite3_malloc()] is unable to allocate enough ** memory to hold the resulting string. ** ** ^(The sqlite3_snprintf() routine is similar to "snprintf()" from ** the standard C library. The result is written into the ** buffer supplied as the second parameter whose size is given by ** the first parameter. Note that the order of the ** first two parameters is reversed from snprintf().)^ This is an ** historical accident that cannot be fixed without breaking ** backwards compatibility. ^(Note also that sqlite3_snprintf() ** returns a pointer to its buffer instead of the number of ** characters actually written into the buffer.)^ We admit that ** the number of characters written would be a more useful return ** value but we cannot change the implementation of sqlite3_snprintf() ** now without breaking compatibility. ** ** ^As long as the buffer size is greater than zero, sqlite3_snprintf() ** guarantees that the buffer is always zero-terminated. ^The first ** parameter "n" is the total size of the buffer, including space for ** the zero terminator. So the longest string that can be completely ** written will be n-1 characters. ** ** ^The sqlite3_vsnprintf() routine is a varargs version of sqlite3_snprintf(). ** ** These routines all implement some additional formatting ** options that are useful for constructing SQL statements. ** All of the usual printf() formatting options apply. In addition, there ** is are "%q", "%Q", and "%z" options. ** ** ^(The %q option works like %s in that it substitutes a null-terminated ** string from the argument list. But %q also doubles every '\'' character. ** %q is designed for use inside a string literal.)^ By doubling each '\'' ** character it escapes that character and allows it to be inserted into ** the string. ** ** For example, assume the string variable zText contains text as follows: ** **
    **  char *zText = "It's a happy day!";
    ** 
    ** ** One can use this text in an SQL statement as follows: ** **
    **  char *zSQL = sqlite3_mprintf("INSERT INTO table VALUES('%q')", zText);
    **  sqlite3_exec(db, zSQL, 0, 0, 0);
    **  sqlite3_free(zSQL);
    ** 
    ** ** Because the %q format string is used, the '\'' character in zText ** is escaped and the SQL generated is as follows: ** **
    **  INSERT INTO table1 VALUES('It''s a happy day!')
    ** 
    ** ** This is correct. Had we used %s instead of %q, the generated SQL ** would have looked like this: ** **
    **  INSERT INTO table1 VALUES('It's a happy day!');
    ** 
    ** ** This second example is an SQL syntax error. As a general rule you should ** always use %q instead of %s when inserting text into a string literal. ** ** ^(The %Q option works like %q except it also adds single quotes around ** the outside of the total string. Additionally, if the parameter in the ** argument list is a NULL pointer, %Q substitutes the text "NULL" (without ** single quotes).)^ So, for example, one could say: ** **
    **  char *zSQL = sqlite3_mprintf("INSERT INTO table VALUES(%Q)", zText);
    **  sqlite3_exec(db, zSQL, 0, 0, 0);
    **  sqlite3_free(zSQL);
    ** 
    ** ** The code above will render a correct SQL statement in the zSQL ** variable even if the zText variable is a NULL pointer. ** ** ^(The "%z" formatting option works like "%s" but with the ** addition that after the string has been read and copied into ** the result, [sqlite3_free()] is called on the input string.)^ */ SQLITE_API char *sqlite3_mprintf(const char*,...); SQLITE_API char *sqlite3_vmprintf(const char*, va_list); SQLITE_API char *sqlite3_snprintf(int,char*,const char*, ...); SQLITE_API char *sqlite3_vsnprintf(int,char*,const char*, va_list); /* ** CAPI3REF: Memory Allocation Subsystem ** ** The SQLite core uses these three routines for all of its own ** internal memory allocation needs. "Core" in the previous sentence ** does not include operating-system specific VFS implementation. The ** Windows VFS uses native malloc() and free() for some operations. ** ** ^The sqlite3_malloc() routine returns a pointer to a block ** of memory at least N bytes in length, where N is the parameter. ** ^If sqlite3_malloc() is unable to obtain sufficient free ** memory, it returns a NULL pointer. ^If the parameter N to ** sqlite3_malloc() is zero or negative then sqlite3_malloc() returns ** a NULL pointer. ** ** ^Calling sqlite3_free() with a pointer previously returned ** by sqlite3_malloc() or sqlite3_realloc() releases that memory so ** that it might be reused. ^The sqlite3_free() routine is ** a no-op if is called with a NULL pointer. Passing a NULL pointer ** to sqlite3_free() is harmless. After being freed, memory ** should neither be read nor written. Even reading previously freed ** memory might result in a segmentation fault or other severe error. ** Memory corruption, a segmentation fault, or other severe error ** might result if sqlite3_free() is called with a non-NULL pointer that ** was not obtained from sqlite3_malloc() or sqlite3_realloc(). ** ** ^(The sqlite3_realloc() interface attempts to resize a ** prior memory allocation to be at least N bytes, where N is the ** second parameter. The memory allocation to be resized is the first ** parameter.)^ ^ If the first parameter to sqlite3_realloc() ** is a NULL pointer then its behavior is identical to calling ** sqlite3_malloc(N) where N is the second parameter to sqlite3_realloc(). ** ^If the second parameter to sqlite3_realloc() is zero or ** negative then the behavior is exactly the same as calling ** sqlite3_free(P) where P is the first parameter to sqlite3_realloc(). ** ^sqlite3_realloc() returns a pointer to a memory allocation ** of at least N bytes in size or NULL if sufficient memory is unavailable. ** ^If M is the size of the prior allocation, then min(N,M) bytes ** of the prior allocation are copied into the beginning of buffer returned ** by sqlite3_realloc() and the prior allocation is freed. ** ^If sqlite3_realloc() returns NULL, then the prior allocation ** is not freed. ** ** ^The memory returned by sqlite3_malloc() and sqlite3_realloc() ** is always aligned to at least an 8 byte boundary, or to a ** 4 byte boundary if the [SQLITE_4_BYTE_ALIGNED_MALLOC] compile-time ** option is used. ** ** In SQLite version 3.5.0 and 3.5.1, it was possible to define ** the SQLITE_OMIT_MEMORY_ALLOCATION which would cause the built-in ** implementation of these routines to be omitted. That capability ** is no longer provided. Only built-in memory allocators can be used. ** ** The Windows OS interface layer calls ** the system malloc() and free() directly when converting ** filenames between the UTF-8 encoding used by SQLite ** and whatever filename encoding is used by the particular Windows ** installation. Memory allocation errors are detected, but ** they are reported back as [SQLITE_CANTOPEN] or ** [SQLITE_IOERR] rather than [SQLITE_NOMEM]. ** ** The pointer arguments to [sqlite3_free()] and [sqlite3_realloc()] ** must be either NULL or else pointers obtained from a prior ** invocation of [sqlite3_malloc()] or [sqlite3_realloc()] that have ** not yet been released. ** ** The application must not read or write any part of ** a block of memory after it has been released using ** [sqlite3_free()] or [sqlite3_realloc()]. */ SQLITE_API void *sqlite3_malloc(int); SQLITE_API void *sqlite3_realloc(void*, int); SQLITE_API void sqlite3_free(void*); /* ** CAPI3REF: Memory Allocator Statistics ** ** SQLite provides these two interfaces for reporting on the status ** of the [sqlite3_malloc()], [sqlite3_free()], and [sqlite3_realloc()] ** routines, which form the built-in memory allocation subsystem. ** ** ^The [sqlite3_memory_used()] routine returns the number of bytes ** of memory currently outstanding (malloced but not freed). ** ^The [sqlite3_memory_highwater()] routine returns the maximum ** value of [sqlite3_memory_used()] since the high-water mark ** was last reset. ^The values returned by [sqlite3_memory_used()] and ** [sqlite3_memory_highwater()] include any overhead ** added by SQLite in its implementation of [sqlite3_malloc()], ** but not overhead added by the any underlying system library ** routines that [sqlite3_malloc()] may call. ** ** ^The memory high-water mark is reset to the current value of ** [sqlite3_memory_used()] if and only if the parameter to ** [sqlite3_memory_highwater()] is true. ^The value returned ** by [sqlite3_memory_highwater(1)] is the high-water mark ** prior to the reset. */ SQLITE_API sqlite3_int64 sqlite3_memory_used(void); SQLITE_API sqlite3_int64 sqlite3_memory_highwater(int resetFlag); /* ** CAPI3REF: Pseudo-Random Number Generator ** ** SQLite contains a high-quality pseudo-random number generator (PRNG) used to ** select random [ROWID | ROWIDs] when inserting new records into a table that ** already uses the largest possible [ROWID]. The PRNG is also used for ** the build-in random() and randomblob() SQL functions. This interface allows ** applications to access the same PRNG for other purposes. ** ** ^A call to this routine stores N bytes of randomness into buffer P. ** ** ^The first time this routine is invoked (either internally or by ** the application) the PRNG is seeded using randomness obtained ** from the xRandomness method of the default [sqlite3_vfs] object. ** ^On all subsequent invocations, the pseudo-randomness is generated ** internally and without recourse to the [sqlite3_vfs] xRandomness ** method. */ SQLITE_API void sqlite3_randomness(int N, void *P); /* ** CAPI3REF: Compile-Time Authorization Callbacks ** ** ^This routine registers an authorizer callback with a particular ** [database connection], supplied in the first argument. ** ^The authorizer callback is invoked as SQL statements are being compiled ** by [sqlite3_prepare()] or its variants [sqlite3_prepare_v2()], ** [sqlite3_prepare16()] and [sqlite3_prepare16_v2()]. ^At various ** points during the compilation process, as logic is being created ** to perform various actions, the authorizer callback is invoked to ** see if those actions are allowed. ^The authorizer callback should ** return [SQLITE_OK] to allow the action, [SQLITE_IGNORE] to disallow the ** specific action but allow the SQL statement to continue to be ** compiled, or [SQLITE_DENY] to cause the entire SQL statement to be ** rejected with an error. ^If the authorizer callback returns ** any value other than [SQLITE_IGNORE], [SQLITE_OK], or [SQLITE_DENY] ** then the [sqlite3_prepare_v2()] or equivalent call that triggered ** the authorizer will fail with an error message. ** ** When the callback returns [SQLITE_OK], that means the operation ** requested is ok. ^When the callback returns [SQLITE_DENY], the ** [sqlite3_prepare_v2()] or equivalent call that triggered the ** authorizer will fail with an error message explaining that ** access is denied. ** ** ^The first parameter to the authorizer callback is a copy of the third ** parameter to the sqlite3_set_authorizer() interface. ^The second parameter ** to the callback is an integer [SQLITE_COPY | action code] that specifies ** the particular action to be authorized. ^The third through sixth parameters ** to the callback are zero-terminated strings that contain additional ** details about the action to be authorized. ** ** ^If the action code is [SQLITE_READ] ** and the callback returns [SQLITE_IGNORE] then the ** [prepared statement] statement is constructed to substitute ** a NULL value in place of the table column that would have ** been read if [SQLITE_OK] had been returned. The [SQLITE_IGNORE] ** return can be used to deny an untrusted user access to individual ** columns of a table. ** ^If the action code is [SQLITE_DELETE] and the callback returns ** [SQLITE_IGNORE] then the [DELETE] operation proceeds but the ** [truncate optimization] is disabled and all rows are deleted individually. ** ** An authorizer is used when [sqlite3_prepare | preparing] ** SQL statements from an untrusted source, to ensure that the SQL statements ** do not try to access data they are not allowed to see, or that they do not ** try to execute malicious statements that damage the database. For ** example, an application may allow a user to enter arbitrary ** SQL queries for evaluation by a database. But the application does ** not want the user to be able to make arbitrary changes to the ** database. An authorizer could then be put in place while the ** user-entered SQL is being [sqlite3_prepare | prepared] that ** disallows everything except [SELECT] statements. ** ** Applications that need to process SQL from untrusted sources ** might also consider lowering resource limits using [sqlite3_limit()] ** and limiting database size using the [max_page_count] [PRAGMA] ** in addition to using an authorizer. ** ** ^(Only a single authorizer can be in place on a database connection ** at a time. Each call to sqlite3_set_authorizer overrides the ** previous call.)^ ^Disable the authorizer by installing a NULL callback. ** The authorizer is disabled by default. ** ** The authorizer callback must not do anything that will modify ** the database connection that invoked the authorizer callback. ** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their ** database connections for the meaning of "modify" in this paragraph. ** ** ^When [sqlite3_prepare_v2()] is used to prepare a statement, the ** statement might be re-prepared during [sqlite3_step()] due to a ** schema change. Hence, the application should ensure that the ** correct authorizer callback remains in place during the [sqlite3_step()]. ** ** ^Note that the authorizer callback is invoked only during ** [sqlite3_prepare()] or its variants. Authorization is not ** performed during statement evaluation in [sqlite3_step()], unless ** as stated in the previous paragraph, sqlite3_step() invokes ** sqlite3_prepare_v2() to reprepare a statement after a schema change. */ SQLITE_API int sqlite3_set_authorizer( sqlite3*, int (*xAuth)(void*,int,const char*,const char*,const char*,const char*), void *pUserData ); /* ** CAPI3REF: Authorizer Return Codes ** ** The [sqlite3_set_authorizer | authorizer callback function] must ** return either [SQLITE_OK] or one of these two constants in order ** to signal SQLite whether or not the action is permitted. See the ** [sqlite3_set_authorizer | authorizer documentation] for additional ** information. */ #define SQLITE_DENY 1 /* Abort the SQL statement with an error */ #define SQLITE_IGNORE 2 /* Don't allow access, but don't generate an error */ /* ** CAPI3REF: Authorizer Action Codes ** ** The [sqlite3_set_authorizer()] interface registers a callback function ** that is invoked to authorize certain SQL statement actions. The ** second parameter to the callback is an integer code that specifies ** what action is being authorized. These are the integer action codes that ** the authorizer callback may be passed. ** ** These action code values signify what kind of operation is to be ** authorized. The 3rd and 4th parameters to the authorization ** callback function will be parameters or NULL depending on which of these ** codes is used as the second parameter. ^(The 5th parameter to the ** authorizer callback is the name of the database ("main", "temp", ** etc.) if applicable.)^ ^The 6th parameter to the authorizer callback ** is the name of the inner-most trigger or view that is responsible for ** the access attempt or NULL if this access attempt is directly from ** top-level SQL code. */ /******************************************* 3rd ************ 4th ***********/ #define SQLITE_CREATE_INDEX 1 /* Index Name Table Name */ #define SQLITE_CREATE_TABLE 2 /* Table Name NULL */ #define SQLITE_CREATE_TEMP_INDEX 3 /* Index Name Table Name */ #define SQLITE_CREATE_TEMP_TABLE 4 /* Table Name NULL */ #define SQLITE_CREATE_TEMP_TRIGGER 5 /* Trigger Name Table Name */ #define SQLITE_CREATE_TEMP_VIEW 6 /* View Name NULL */ #define SQLITE_CREATE_TRIGGER 7 /* Trigger Name Table Name */ #define SQLITE_CREATE_VIEW 8 /* View Name NULL */ #define SQLITE_DELETE 9 /* Table Name NULL */ #define SQLITE_DROP_INDEX 10 /* Index Name Table Name */ #define SQLITE_DROP_TABLE 11 /* Table Name NULL */ #define SQLITE_DROP_TEMP_INDEX 12 /* Index Name Table Name */ #define SQLITE_DROP_TEMP_TABLE 13 /* Table Name NULL */ #define SQLITE_DROP_TEMP_TRIGGER 14 /* Trigger Name Table Name */ #define SQLITE_DROP_TEMP_VIEW 15 /* View Name NULL */ #define SQLITE_DROP_TRIGGER 16 /* Trigger Name Table Name */ #define SQLITE_DROP_VIEW 17 /* View Name NULL */ #define SQLITE_INSERT 18 /* Table Name NULL */ #define SQLITE_PRAGMA 19 /* Pragma Name 1st arg or NULL */ #define SQLITE_READ 20 /* Table Name Column Name */ #define SQLITE_SELECT 21 /* NULL NULL */ #define SQLITE_TRANSACTION 22 /* Operation NULL */ #define SQLITE_UPDATE 23 /* Table Name Column Name */ #define SQLITE_ATTACH 24 /* Filename NULL */ #define SQLITE_DETACH 25 /* Database Name NULL */ #define SQLITE_ALTER_TABLE 26 /* Database Name Table Name */ #define SQLITE_REINDEX 27 /* Index Name NULL */ #define SQLITE_ANALYZE 28 /* Table Name NULL */ #define SQLITE_CREATE_VTABLE 29 /* Table Name Module Name */ #define SQLITE_DROP_VTABLE 30 /* Table Name Module Name */ #define SQLITE_FUNCTION 31 /* NULL Function Name */ #define SQLITE_SAVEPOINT 32 /* Operation Savepoint Name */ #define SQLITE_COPY 0 /* No longer used */ /* ** CAPI3REF: Tracing And Profiling Functions ** ** These routines register callback functions that can be used for ** tracing and profiling the execution of SQL statements. ** ** ^The callback function registered by sqlite3_trace() is invoked at ** various times when an SQL statement is being run by [sqlite3_step()]. ** ^The sqlite3_trace() callback is invoked with a UTF-8 rendering of the ** SQL statement text as the statement first begins executing. ** ^(Additional sqlite3_trace() callbacks might occur ** as each triggered subprogram is entered. The callbacks for triggers ** contain a UTF-8 SQL comment that identifies the trigger.)^ ** ** ^The callback function registered by sqlite3_profile() is invoked ** as each SQL statement finishes. ^The profile callback contains ** the original statement text and an estimate of wall-clock time ** of how long that statement took to run. ^The profile callback ** time is in units of nanoseconds, however the current implementation ** is only capable of millisecond resolution so the six least significant ** digits in the time are meaningless. Future versions of SQLite ** might provide greater resolution on the profiler callback. The ** sqlite3_profile() function is considered experimental and is ** subject to change in future versions of SQLite. */ SQLITE_API void *sqlite3_trace(sqlite3*, void(*xTrace)(void*,const char*), void*); SQLITE_API SQLITE_EXPERIMENTAL void *sqlite3_profile(sqlite3*, void(*xProfile)(void*,const char*,sqlite3_uint64), void*); /* ** CAPI3REF: Query Progress Callbacks ** ** ^The sqlite3_progress_handler(D,N,X,P) interface causes the callback ** function X to be invoked periodically during long running calls to ** [sqlite3_exec()], [sqlite3_step()] and [sqlite3_get_table()] for ** database connection D. An example use for this ** interface is to keep a GUI updated during a large query. ** ** ^The parameter P is passed through as the only parameter to the ** callback function X. ^The parameter N is the number of ** [virtual machine instructions] that are evaluated between successive ** invocations of the callback X. ** ** ^Only a single progress handler may be defined at one time per ** [database connection]; setting a new progress handler cancels the ** old one. ^Setting parameter X to NULL disables the progress handler. ** ^The progress handler is also disabled by setting N to a value less ** than 1. ** ** ^If the progress callback returns non-zero, the operation is ** interrupted. This feature can be used to implement a ** "Cancel" button on a GUI progress dialog box. ** ** The progress handler callback must not do anything that will modify ** the database connection that invoked the progress handler. ** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their ** database connections for the meaning of "modify" in this paragraph. ** */ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); /* ** CAPI3REF: Opening A New Database Connection ** ** ^These routines open an SQLite database file whose name is given by the ** filename argument. ^The filename argument is interpreted as UTF-8 for ** sqlite3_open() and sqlite3_open_v2() and as UTF-16 in the native byte ** order for sqlite3_open16(). ^(A [database connection] handle is usually ** returned in *ppDb, even if an error occurs. The only exception is that ** if SQLite is unable to allocate memory to hold the [sqlite3] object, ** a NULL will be written into *ppDb instead of a pointer to the [sqlite3] ** object.)^ ^(If the database is opened (and/or created) successfully, then ** [SQLITE_OK] is returned. Otherwise an [error code] is returned.)^ ^The ** [sqlite3_errmsg()] or [sqlite3_errmsg16()] routines can be used to obtain ** an English language description of the error following a failure of any ** of the sqlite3_open() routines. ** ** ^The default encoding for the database will be UTF-8 if ** sqlite3_open() or sqlite3_open_v2() is called and ** UTF-16 in the native byte order if sqlite3_open16() is used. ** ** Whether or not an error occurs when it is opened, resources ** associated with the [database connection] handle should be released by ** passing it to [sqlite3_close()] when it is no longer required. ** ** The sqlite3_open_v2() interface works like sqlite3_open() ** except that it accepts two additional parameters for additional control ** over the new database connection. ^(The flags parameter to ** sqlite3_open_v2() can take one of ** the following three values, optionally combined with the ** [SQLITE_OPEN_NOMUTEX], [SQLITE_OPEN_FULLMUTEX], [SQLITE_OPEN_SHAREDCACHE], ** and/or [SQLITE_OPEN_PRIVATECACHE] flags:)^ ** **
    ** ^(
    [SQLITE_OPEN_READONLY]
    **
    The database is opened in read-only mode. If the database does not ** already exist, an error is returned.
    )^ ** ** ^(
    [SQLITE_OPEN_READWRITE]
    **
    The database is opened for reading and writing if possible, or reading ** only if the file is write protected by the operating system. In either ** case the database must already exist, otherwise an error is returned.
    )^ ** ** ^(
    [SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE]
    **
    The database is opened for reading and writing, and is created if ** it does not already exist. This is the behavior that is always used for ** sqlite3_open() and sqlite3_open16().
    )^ **
    ** ** If the 3rd parameter to sqlite3_open_v2() is not one of the ** combinations shown above or one of the combinations shown above combined ** with the [SQLITE_OPEN_NOMUTEX], [SQLITE_OPEN_FULLMUTEX], ** [SQLITE_OPEN_SHAREDCACHE] and/or [SQLITE_OPEN_PRIVATECACHE] flags, ** then the behavior is undefined. ** ** ^If the [SQLITE_OPEN_NOMUTEX] flag is set, then the database connection ** opens in the multi-thread [threading mode] as long as the single-thread ** mode has not been set at compile-time or start-time. ^If the ** [SQLITE_OPEN_FULLMUTEX] flag is set then the database connection opens ** in the serialized [threading mode] unless single-thread was ** previously selected at compile-time or start-time. ** ^The [SQLITE_OPEN_SHAREDCACHE] flag causes the database connection to be ** eligible to use [shared cache mode], regardless of whether or not shared ** cache is enabled using [sqlite3_enable_shared_cache()]. ^The ** [SQLITE_OPEN_PRIVATECACHE] flag causes the database connection to not ** participate in [shared cache mode] even if it is enabled. ** ** ^If the filename is ":memory:", then a private, temporary in-memory database ** is created for the connection. ^This in-memory database will vanish when ** the database connection is closed. Future versions of SQLite might ** make use of additional special filenames that begin with the ":" character. ** It is recommended that when a database filename actually does begin with ** a ":" character you should prefix the filename with a pathname such as ** "./" to avoid ambiguity. ** ** ^If the filename is an empty string, then a private, temporary ** on-disk database will be created. ^This private database will be ** automatically deleted as soon as the database connection is closed. ** ** ^The fourth parameter to sqlite3_open_v2() is the name of the ** [sqlite3_vfs] object that defines the operating system interface that ** the new database connection should use. ^If the fourth parameter is ** a NULL pointer then the default [sqlite3_vfs] object is used. ** ** Note to Windows users: The encoding used for the filename argument ** of sqlite3_open() and sqlite3_open_v2() must be UTF-8, not whatever ** codepage is currently defined. Filenames containing international ** characters must be converted to UTF-8 prior to passing them into ** sqlite3_open() or sqlite3_open_v2(). */ SQLITE_API int sqlite3_open( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); SQLITE_API int sqlite3_open16( const void *filename, /* Database filename (UTF-16) */ sqlite3 **ppDb /* OUT: SQLite db handle */ ); SQLITE_API int sqlite3_open_v2( const char *filename, /* Database filename (UTF-8) */ sqlite3 **ppDb, /* OUT: SQLite db handle */ int flags, /* Flags */ const char *zVfs /* Name of VFS module to use */ ); /* ** CAPI3REF: Error Codes And Messages ** ** ^The sqlite3_errcode() interface returns the numeric [result code] or ** [extended result code] for the most recent failed sqlite3_* API call ** associated with a [database connection]. If a prior API call failed ** but the most recent API call succeeded, the return value from ** sqlite3_errcode() is undefined. ^The sqlite3_extended_errcode() ** interface is the same except that it always returns the ** [extended result code] even when extended result codes are ** disabled. ** ** ^The sqlite3_errmsg() and sqlite3_errmsg16() return English-language ** text that describes the error, as either UTF-8 or UTF-16 respectively. ** ^(Memory to hold the error message string is managed internally. ** The application does not need to worry about freeing the result. ** However, the error string might be overwritten or deallocated by ** subsequent calls to other SQLite interface functions.)^ ** ** When the serialized [threading mode] is in use, it might be the ** case that a second error occurs on a separate thread in between ** the time of the first error and the call to these interfaces. ** When that happens, the second error will be reported since these ** interfaces always report the most recent result. To avoid ** this, each thread can obtain exclusive use of the [database connection] D ** by invoking [sqlite3_mutex_enter]([sqlite3_db_mutex](D)) before beginning ** to use D and invoking [sqlite3_mutex_leave]([sqlite3_db_mutex](D)) after ** all calls to the interfaces listed here are completed. ** ** If an interface fails with SQLITE_MISUSE, that means the interface ** was invoked incorrectly by the application. In that case, the ** error code and message may or may not be set. */ SQLITE_API int sqlite3_errcode(sqlite3 *db); SQLITE_API int sqlite3_extended_errcode(sqlite3 *db); SQLITE_API const char *sqlite3_errmsg(sqlite3*); SQLITE_API const void *sqlite3_errmsg16(sqlite3*); /* ** CAPI3REF: SQL Statement Object ** KEYWORDS: {prepared statement} {prepared statements} ** ** An instance of this object represents a single SQL statement. ** This object is variously known as a "prepared statement" or a ** "compiled SQL statement" or simply as a "statement". ** ** The life of a statement object goes something like this: ** **
      **
    1. Create the object using [sqlite3_prepare_v2()] or a related ** function. **
    2. Bind values to [host parameters] using the sqlite3_bind_*() ** interfaces. **
    3. Run the SQL by calling [sqlite3_step()] one or more times. **
    4. Reset the statement using [sqlite3_reset()] then go back ** to step 2. Do this zero or more times. **
    5. Destroy the object using [sqlite3_finalize()]. **
    ** ** Refer to documentation on individual methods above for additional ** information. */ typedef struct sqlite3_stmt sqlite3_stmt; /* ** CAPI3REF: Run-time Limits ** ** ^(This interface allows the size of various constructs to be limited ** on a connection by connection basis. The first parameter is the ** [database connection] whose limit is to be set or queried. The ** second parameter is one of the [limit categories] that define a ** class of constructs to be size limited. The third parameter is the ** new limit for that construct.)^ ** ** ^If the new limit is a negative number, the limit is unchanged. ** ^(For each limit category SQLITE_LIMIT_NAME there is a ** [limits | hard upper bound] ** set at compile-time by a C preprocessor macro called ** [limits | SQLITE_MAX_NAME]. ** (The "_LIMIT_" in the name is changed to "_MAX_".))^ ** ^Attempts to increase a limit above its hard upper bound are ** silently truncated to the hard upper bound. ** ** ^Regardless of whether or not the limit was changed, the ** [sqlite3_limit()] interface returns the prior value of the limit. ** ^Hence, to find the current value of a limit without changing it, ** simply invoke this interface with the third parameter set to -1. ** ** Run-time limits are intended for use in applications that manage ** both their own internal database and also databases that are controlled ** by untrusted external sources. An example application might be a ** web browser that has its own databases for storing history and ** separate databases controlled by JavaScript applications downloaded ** off the Internet. The internal databases can be given the ** large, default limits. Databases managed by external sources can ** be given much smaller limits designed to prevent a denial of service ** attack. Developers might also want to use the [sqlite3_set_authorizer()] ** interface to further control untrusted SQL. The size of the database ** created by an untrusted script can be contained using the ** [max_page_count] [PRAGMA]. ** ** New run-time limit categories may be added in future releases. */ SQLITE_API int sqlite3_limit(sqlite3*, int id, int newVal); /* ** CAPI3REF: Run-Time Limit Categories ** KEYWORDS: {limit category} {*limit categories} ** ** These constants define various performance limits ** that can be lowered at run-time using [sqlite3_limit()]. ** The synopsis of the meanings of the various limits is shown below. ** Additional information is available at [limits | Limits in SQLite]. ** **
    ** ^(
    SQLITE_LIMIT_LENGTH
    **
    The maximum size of any string or BLOB or table row, in bytes.
    )^ ** ** ^(
    SQLITE_LIMIT_SQL_LENGTH
    **
    The maximum length of an SQL statement, in bytes.
    )^ ** ** ^(
    SQLITE_LIMIT_COLUMN
    **
    The maximum number of columns in a table definition or in the ** result set of a [SELECT] or the maximum number of columns in an index ** or in an ORDER BY or GROUP BY clause.
    )^ ** ** ^(
    SQLITE_LIMIT_EXPR_DEPTH
    **
    The maximum depth of the parse tree on any expression.
    )^ ** ** ^(
    SQLITE_LIMIT_COMPOUND_SELECT
    **
    The maximum number of terms in a compound SELECT statement.
    )^ ** ** ^(
    SQLITE_LIMIT_VDBE_OP
    **
    The maximum number of instructions in a virtual machine program ** used to implement an SQL statement. This limit is not currently ** enforced, though that might be added in some future release of ** SQLite.
    )^ ** ** ^(
    SQLITE_LIMIT_FUNCTION_ARG
    **
    The maximum number of arguments on a function.
    )^ ** ** ^(
    SQLITE_LIMIT_ATTACHED
    **
    The maximum number of [ATTACH | attached databases].)^
    ** ** ^(
    SQLITE_LIMIT_LIKE_PATTERN_LENGTH
    **
    The maximum length of the pattern argument to the [LIKE] or ** [GLOB] operators.
    )^ ** ** ^(
    SQLITE_LIMIT_VARIABLE_NUMBER
    **
    The maximum index number of any [parameter] in an SQL statement.)^ ** ** ^(
    SQLITE_LIMIT_TRIGGER_DEPTH
    **
    The maximum depth of recursion for triggers.
    )^ **
    */ #define SQLITE_LIMIT_LENGTH 0 #define SQLITE_LIMIT_SQL_LENGTH 1 #define SQLITE_LIMIT_COLUMN 2 #define SQLITE_LIMIT_EXPR_DEPTH 3 #define SQLITE_LIMIT_COMPOUND_SELECT 4 #define SQLITE_LIMIT_VDBE_OP 5 #define SQLITE_LIMIT_FUNCTION_ARG 6 #define SQLITE_LIMIT_ATTACHED 7 #define SQLITE_LIMIT_LIKE_PATTERN_LENGTH 8 #define SQLITE_LIMIT_VARIABLE_NUMBER 9 #define SQLITE_LIMIT_TRIGGER_DEPTH 10 /* ** CAPI3REF: Compiling An SQL Statement ** KEYWORDS: {SQL statement compiler} ** ** To execute an SQL query, it must first be compiled into a byte-code ** program using one of these routines. ** ** The first argument, "db", is a [database connection] obtained from a ** prior successful call to [sqlite3_open()], [sqlite3_open_v2()] or ** [sqlite3_open16()]. The database connection must not have been closed. ** ** The second argument, "zSql", is the statement to be compiled, encoded ** as either UTF-8 or UTF-16. The sqlite3_prepare() and sqlite3_prepare_v2() ** interfaces use UTF-8, and sqlite3_prepare16() and sqlite3_prepare16_v2() ** use UTF-16. ** ** ^If the nByte argument is less than zero, then zSql is read up to the ** first zero terminator. ^If nByte is non-negative, then it is the maximum ** number of bytes read from zSql. ^When nByte is non-negative, the ** zSql string ends at either the first '\000' or '\u0000' character or ** the nByte-th byte, whichever comes first. If the caller knows ** that the supplied string is nul-terminated, then there is a small ** performance advantage to be gained by passing an nByte parameter that ** is equal to the number of bytes in the input string including ** the nul-terminator bytes. ** ** ^If pzTail is not NULL then *pzTail is made to point to the first byte ** past the end of the first SQL statement in zSql. These routines only ** compile the first statement in zSql, so *pzTail is left pointing to ** what remains uncompiled. ** ** ^*ppStmt is left pointing to a compiled [prepared statement] that can be ** executed using [sqlite3_step()]. ^If there is an error, *ppStmt is set ** to NULL. ^If the input text contains no SQL (if the input is an empty ** string or a comment) then *ppStmt is set to NULL. ** The calling procedure is responsible for deleting the compiled ** SQL statement using [sqlite3_finalize()] after it has finished with it. ** ppStmt may not be NULL. ** ** ^On success, the sqlite3_prepare() family of routines return [SQLITE_OK]; ** otherwise an [error code] is returned. ** ** The sqlite3_prepare_v2() and sqlite3_prepare16_v2() interfaces are ** recommended for all new programs. The two older interfaces are retained ** for backwards compatibility, but their use is discouraged. ** ^In the "v2" interfaces, the prepared statement ** that is returned (the [sqlite3_stmt] object) contains a copy of the ** original SQL text. This causes the [sqlite3_step()] interface to ** behave differently in three ways: ** **
      **
    1. ** ^If the database schema changes, instead of returning [SQLITE_SCHEMA] as it ** always used to do, [sqlite3_step()] will automatically recompile the SQL ** statement and try to run it again. **
    2. ** **
    3. ** ^When an error occurs, [sqlite3_step()] will return one of the detailed ** [error codes] or [extended error codes]. ^The legacy behavior was that ** [sqlite3_step()] would only return a generic [SQLITE_ERROR] result code ** and the application would have to make a second call to [sqlite3_reset()] ** in order to find the underlying cause of the problem. With the "v2" prepare ** interfaces, the underlying reason for the error is returned immediately. **
    4. ** **
    5. ** ^If the specific value bound to [parameter | host parameter] in the ** WHERE clause might influence the choice of query plan for a statement, ** then the statement will be automatically recompiled, as if there had been ** a schema change, on the first [sqlite3_step()] call following any change ** to the [sqlite3_bind_text | bindings] of that [parameter]. ** ^The specific value of WHERE-clause [parameter] might influence the ** choice of query plan if the parameter is the left-hand side of a [LIKE] ** or [GLOB] operator or if the parameter is compared to an indexed column ** and the [SQLITE_ENABLE_STAT2] compile-time option is enabled. ** the **
    6. **
    */ SQLITE_API int sqlite3_prepare( sqlite3 *db, /* Database handle */ const char *zSql, /* SQL statement, UTF-8 encoded */ int nByte, /* Maximum length of zSql in bytes. */ sqlite3_stmt **ppStmt, /* OUT: Statement handle */ const char **pzTail /* OUT: Pointer to unused portion of zSql */ ); SQLITE_API int sqlite3_prepare_v2( sqlite3 *db, /* Database handle */ const char *zSql, /* SQL statement, UTF-8 encoded */ int nByte, /* Maximum length of zSql in bytes. */ sqlite3_stmt **ppStmt, /* OUT: Statement handle */ const char **pzTail /* OUT: Pointer to unused portion of zSql */ ); SQLITE_API int sqlite3_prepare16( sqlite3 *db, /* Database handle */ const void *zSql, /* SQL statement, UTF-16 encoded */ int nByte, /* Maximum length of zSql in bytes. */ sqlite3_stmt **ppStmt, /* OUT: Statement handle */ const void **pzTail /* OUT: Pointer to unused portion of zSql */ ); SQLITE_API int sqlite3_prepare16_v2( sqlite3 *db, /* Database handle */ const void *zSql, /* SQL statement, UTF-16 encoded */ int nByte, /* Maximum length of zSql in bytes. */ sqlite3_stmt **ppStmt, /* OUT: Statement handle */ const void **pzTail /* OUT: Pointer to unused portion of zSql */ ); /* ** CAPI3REF: Retrieving Statement SQL ** ** ^This interface can be used to retrieve a saved copy of the original ** SQL text used to create a [prepared statement] if that statement was ** compiled using either [sqlite3_prepare_v2()] or [sqlite3_prepare16_v2()]. */ SQLITE_API const char *sqlite3_sql(sqlite3_stmt *pStmt); /* ** CAPI3REF: Determine If An SQL Statement Writes The Database ** ** ^The sqlite3_stmt_readonly(X) interface returns true (non-zero) if ** and only if the [prepared statement] X makes no direct changes to ** the content of the database file. ** ** Note that [application-defined SQL functions] or ** [virtual tables] might change the database indirectly as a side effect. ** ^(For example, if an application defines a function "eval()" that ** calls [sqlite3_exec()], then the following SQL statement would ** change the database file through side-effects: ** **
    **    SELECT eval('DELETE FROM t1') FROM t2;
    ** 
    ** ** But because the [SELECT] statement does not change the database file ** directly, sqlite3_stmt_readonly() would still return true.)^ ** ** ^Transaction control statements such as [BEGIN], [COMMIT], [ROLLBACK], ** [SAVEPOINT], and [RELEASE] cause sqlite3_stmt_readonly() to return true, ** since the statements themselves do not actually modify the database but ** rather they control the timing of when other statements modify the ** database. ^The [ATTACH] and [DETACH] statements also cause ** sqlite3_stmt_readonly() to return true since, while those statements ** change the configuration of a database connection, they do not make ** changes to the content of the database files on disk. */ SQLITE_API int sqlite3_stmt_readonly(sqlite3_stmt *pStmt); /* ** CAPI3REF: Dynamically Typed Value Object ** KEYWORDS: {protected sqlite3_value} {unprotected sqlite3_value} ** ** SQLite uses the sqlite3_value object to represent all values ** that can be stored in a database table. SQLite uses dynamic typing ** for the values it stores. ^Values stored in sqlite3_value objects ** can be integers, floating point values, strings, BLOBs, or NULL. ** ** An sqlite3_value object may be either "protected" or "unprotected". ** Some interfaces require a protected sqlite3_value. Other interfaces ** will accept either a protected or an unprotected sqlite3_value. ** Every interface that accepts sqlite3_value arguments specifies ** whether or not it requires a protected sqlite3_value. ** ** The terms "protected" and "unprotected" refer to whether or not ** a mutex is held. An internal mutex is held for a protected ** sqlite3_value object but no mutex is held for an unprotected ** sqlite3_value object. If SQLite is compiled to be single-threaded ** (with [SQLITE_THREADSAFE=0] and with [sqlite3_threadsafe()] returning 0) ** or if SQLite is run in one of reduced mutex modes ** [SQLITE_CONFIG_SINGLETHREAD] or [SQLITE_CONFIG_MULTITHREAD] ** then there is no distinction between protected and unprotected ** sqlite3_value objects and they can be used interchangeably. However, ** for maximum code portability it is recommended that applications ** still make the distinction between protected and unprotected ** sqlite3_value objects even when not strictly required. ** ** ^The sqlite3_value objects that are passed as parameters into the ** implementation of [application-defined SQL functions] are protected. ** ^The sqlite3_value object returned by ** [sqlite3_column_value()] is unprotected. ** Unprotected sqlite3_value objects may only be used with ** [sqlite3_result_value()] and [sqlite3_bind_value()]. ** The [sqlite3_value_blob | sqlite3_value_type()] family of ** interfaces require protected sqlite3_value objects. */ typedef struct Mem sqlite3_value; /* ** CAPI3REF: SQL Function Context Object ** ** The context in which an SQL function executes is stored in an ** sqlite3_context object. ^A pointer to an sqlite3_context object ** is always first parameter to [application-defined SQL functions]. ** The application-defined SQL function implementation will pass this ** pointer through into calls to [sqlite3_result_int | sqlite3_result()], ** [sqlite3_aggregate_context()], [sqlite3_user_data()], ** [sqlite3_context_db_handle()], [sqlite3_get_auxdata()], ** and/or [sqlite3_set_auxdata()]. */ typedef struct sqlite3_context sqlite3_context; /* ** CAPI3REF: Binding Values To Prepared Statements ** KEYWORDS: {host parameter} {host parameters} {host parameter name} ** KEYWORDS: {SQL parameter} {SQL parameters} {parameter binding} ** ** ^(In the SQL statement text input to [sqlite3_prepare_v2()] and its variants, ** literals may be replaced by a [parameter] that matches one of following ** templates: ** **
      **
    • ? **
    • ?NNN **
    • :VVV **
    • @VVV **
    • $VVV **
    ** ** In the templates above, NNN represents an integer literal, ** and VVV represents an alphanumeric identifier.)^ ^The values of these ** parameters (also called "host parameter names" or "SQL parameters") ** can be set using the sqlite3_bind_*() routines defined here. ** ** ^The first argument to the sqlite3_bind_*() routines is always ** a pointer to the [sqlite3_stmt] object returned from ** [sqlite3_prepare_v2()] or its variants. ** ** ^The second argument is the index of the SQL parameter to be set. ** ^The leftmost SQL parameter has an index of 1. ^When the same named ** SQL parameter is used more than once, second and subsequent ** occurrences have the same index as the first occurrence. ** ^The index for named parameters can be looked up using the ** [sqlite3_bind_parameter_index()] API if desired. ^The index ** for "?NNN" parameters is the value of NNN. ** ^The NNN value must be between 1 and the [sqlite3_limit()] ** parameter [SQLITE_LIMIT_VARIABLE_NUMBER] (default value: 999). ** ** ^The third argument is the value to bind to the parameter. ** ** ^(In those routines that have a fourth argument, its value is the ** number of bytes in the parameter. To be clear: the value is the ** number of bytes in the value, not the number of characters.)^ ** ^If the fourth parameter is negative, the length of the string is ** the number of bytes up to the first zero terminator. ** ** ^The fifth argument to sqlite3_bind_blob(), sqlite3_bind_text(), and ** sqlite3_bind_text16() is a destructor used to dispose of the BLOB or ** string after SQLite has finished with it. ^The destructor is called ** to dispose of the BLOB or string even if the call to sqlite3_bind_blob(), ** sqlite3_bind_text(), or sqlite3_bind_text16() fails. ** ^If the fifth argument is ** the special value [SQLITE_STATIC], then SQLite assumes that the ** information is in static, unmanaged space and does not need to be freed. ** ^If the fifth argument has the value [SQLITE_TRANSIENT], then ** SQLite makes its own private copy of the data immediately, before ** the sqlite3_bind_*() routine returns. ** ** ^The sqlite3_bind_zeroblob() routine binds a BLOB of length N that ** is filled with zeroes. ^A zeroblob uses a fixed amount of memory ** (just an integer to hold its size) while it is being processed. ** Zeroblobs are intended to serve as placeholders for BLOBs whose ** content is later written using ** [sqlite3_blob_open | incremental BLOB I/O] routines. ** ^A negative value for the zeroblob results in a zero-length BLOB. ** ** ^If any of the sqlite3_bind_*() routines are called with a NULL pointer ** for the [prepared statement] or with a prepared statement for which ** [sqlite3_step()] has been called more recently than [sqlite3_reset()], ** then the call will return [SQLITE_MISUSE]. If any sqlite3_bind_() ** routine is passed a [prepared statement] that has been finalized, the ** result is undefined and probably harmful. ** ** ^Bindings are not cleared by the [sqlite3_reset()] routine. ** ^Unbound parameters are interpreted as NULL. ** ** ^The sqlite3_bind_* routines return [SQLITE_OK] on success or an ** [error code] if anything goes wrong. ** ^[SQLITE_RANGE] is returned if the parameter ** index is out of range. ^[SQLITE_NOMEM] is returned if malloc() fails. ** ** See also: [sqlite3_bind_parameter_count()], ** [sqlite3_bind_parameter_name()], and [sqlite3_bind_parameter_index()]. */ SQLITE_API int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*)); SQLITE_API int sqlite3_bind_double(sqlite3_stmt*, int, double); SQLITE_API int sqlite3_bind_int(sqlite3_stmt*, int, int); SQLITE_API int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64); SQLITE_API int sqlite3_bind_null(sqlite3_stmt*, int); SQLITE_API int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void(*)(void*)); SQLITE_API int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void(*)(void*)); SQLITE_API int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*); SQLITE_API int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n); /* ** CAPI3REF: Number Of SQL Parameters ** ** ^This routine can be used to find the number of [SQL parameters] ** in a [prepared statement]. SQL parameters are tokens of the ** form "?", "?NNN", ":AAA", "$AAA", or "@AAA" that serve as ** placeholders for values that are [sqlite3_bind_blob | bound] ** to the parameters at a later time. ** ** ^(This routine actually returns the index of the largest (rightmost) ** parameter. For all forms except ?NNN, this will correspond to the ** number of unique parameters. If parameters of the ?NNN form are used, ** there may be gaps in the list.)^ ** ** See also: [sqlite3_bind_blob|sqlite3_bind()], ** [sqlite3_bind_parameter_name()], and ** [sqlite3_bind_parameter_index()]. */ SQLITE_API int sqlite3_bind_parameter_count(sqlite3_stmt*); /* ** CAPI3REF: Name Of A Host Parameter ** ** ^The sqlite3_bind_parameter_name(P,N) interface returns ** the name of the N-th [SQL parameter] in the [prepared statement] P. ** ^(SQL parameters of the form "?NNN" or ":AAA" or "@AAA" or "$AAA" ** have a name which is the string "?NNN" or ":AAA" or "@AAA" or "$AAA" ** respectively. ** In other words, the initial ":" or "$" or "@" or "?" ** is included as part of the name.)^ ** ^Parameters of the form "?" without a following integer have no name ** and are referred to as "nameless" or "anonymous parameters". ** ** ^The first host parameter has an index of 1, not 0. ** ** ^If the value N is out of range or if the N-th parameter is ** nameless, then NULL is returned. ^The returned string is ** always in UTF-8 encoding even if the named parameter was ** originally specified as UTF-16 in [sqlite3_prepare16()] or ** [sqlite3_prepare16_v2()]. ** ** See also: [sqlite3_bind_blob|sqlite3_bind()], ** [sqlite3_bind_parameter_count()], and ** [sqlite3_bind_parameter_index()]. */ SQLITE_API const char *sqlite3_bind_parameter_name(sqlite3_stmt*, int); /* ** CAPI3REF: Index Of A Parameter With A Given Name ** ** ^Return the index of an SQL parameter given its name. ^The ** index value returned is suitable for use as the second ** parameter to [sqlite3_bind_blob|sqlite3_bind()]. ^A zero ** is returned if no matching parameter is found. ^The parameter ** name must be given in UTF-8 even if the original statement ** was prepared from UTF-16 text using [sqlite3_prepare16_v2()]. ** ** See also: [sqlite3_bind_blob|sqlite3_bind()], ** [sqlite3_bind_parameter_count()], and ** [sqlite3_bind_parameter_index()]. */ SQLITE_API int sqlite3_bind_parameter_index(sqlite3_stmt*, const char *zName); /* ** CAPI3REF: Reset All Bindings On A Prepared Statement ** ** ^Contrary to the intuition of many, [sqlite3_reset()] does not reset ** the [sqlite3_bind_blob | bindings] on a [prepared statement]. ** ^Use this routine to reset all host parameters to NULL. */ SQLITE_API int sqlite3_clear_bindings(sqlite3_stmt*); /* ** CAPI3REF: Number Of Columns In A Result Set ** ** ^Return the number of columns in the result set returned by the ** [prepared statement]. ^This routine returns 0 if pStmt is an SQL ** statement that does not return data (for example an [UPDATE]). ** ** See also: [sqlite3_data_count()] */ SQLITE_API int sqlite3_column_count(sqlite3_stmt *pStmt); /* ** CAPI3REF: Column Names In A Result Set ** ** ^These routines return the name assigned to a particular column ** in the result set of a [SELECT] statement. ^The sqlite3_column_name() ** interface returns a pointer to a zero-terminated UTF-8 string ** and sqlite3_column_name16() returns a pointer to a zero-terminated ** UTF-16 string. ^The first parameter is the [prepared statement] ** that implements the [SELECT] statement. ^The second parameter is the ** column number. ^The leftmost column is number 0. ** ** ^The returned string pointer is valid until either the [prepared statement] ** is destroyed by [sqlite3_finalize()] or until the statement is automatically ** reprepared by the first call to [sqlite3_step()] for a particular run ** or until the next call to ** sqlite3_column_name() or sqlite3_column_name16() on the same column. ** ** ^If sqlite3_malloc() fails during the processing of either routine ** (for example during a conversion from UTF-8 to UTF-16) then a ** NULL pointer is returned. ** ** ^The name of a result column is the value of the "AS" clause for ** that column, if there is an AS clause. If there is no AS clause ** then the name of the column is unspecified and may change from ** one release of SQLite to the next. */ SQLITE_API const char *sqlite3_column_name(sqlite3_stmt*, int N); SQLITE_API const void *sqlite3_column_name16(sqlite3_stmt*, int N); /* ** CAPI3REF: Source Of Data In A Query Result ** ** ^These routines provide a means to determine the database, table, and ** table column that is the origin of a particular result column in ** [SELECT] statement. ** ^The name of the database or table or column can be returned as ** either a UTF-8 or UTF-16 string. ^The _database_ routines return ** the database name, the _table_ routines return the table name, and ** the origin_ routines return the column name. ** ^The returned string is valid until the [prepared statement] is destroyed ** using [sqlite3_finalize()] or until the statement is automatically ** reprepared by the first call to [sqlite3_step()] for a particular run ** or until the same information is requested ** again in a different encoding. ** ** ^The names returned are the original un-aliased names of the ** database, table, and column. ** ** ^The first argument to these interfaces is a [prepared statement]. ** ^These functions return information about the Nth result column returned by ** the statement, where N is the second function argument. ** ^The left-most column is column 0 for these routines. ** ** ^If the Nth column returned by the statement is an expression or ** subquery and is not a column value, then all of these functions return ** NULL. ^These routine might also return NULL if a memory allocation error ** occurs. ^Otherwise, they return the name of the attached database, table, ** or column that query result column was extracted from. ** ** ^As with all other SQLite APIs, those whose names end with "16" return ** UTF-16 encoded strings and the other functions return UTF-8. ** ** ^These APIs are only available if the library was compiled with the ** [SQLITE_ENABLE_COLUMN_METADATA] C-preprocessor symbol. ** ** If two or more threads call one or more of these routines against the same ** prepared statement and column at the same time then the results are ** undefined. ** ** If two or more threads call one or more ** [sqlite3_column_database_name | column metadata interfaces] ** for the same [prepared statement] and result column ** at the same time then the results are undefined. */ SQLITE_API const char *sqlite3_column_database_name(sqlite3_stmt*,int); SQLITE_API const void *sqlite3_column_database_name16(sqlite3_stmt*,int); SQLITE_API const char *sqlite3_column_table_name(sqlite3_stmt*,int); SQLITE_API const void *sqlite3_column_table_name16(sqlite3_stmt*,int); SQLITE_API const char *sqlite3_column_origin_name(sqlite3_stmt*,int); SQLITE_API const void *sqlite3_column_origin_name16(sqlite3_stmt*,int); /* ** CAPI3REF: Declared Datatype Of A Query Result ** ** ^(The first parameter is a [prepared statement]. ** If this statement is a [SELECT] statement and the Nth column of the ** returned result set of that [SELECT] is a table column (not an ** expression or subquery) then the declared type of the table ** column is returned.)^ ^If the Nth column of the result set is an ** expression or subquery, then a NULL pointer is returned. ** ^The returned string is always UTF-8 encoded. ** ** ^(For example, given the database schema: ** ** CREATE TABLE t1(c1 VARIANT); ** ** and the following statement to be compiled: ** ** SELECT c1 + 1, c1 FROM t1; ** ** this routine would return the string "VARIANT" for the second result ** column (i==1), and a NULL pointer for the first result column (i==0).)^ ** ** ^SQLite uses dynamic run-time typing. ^So just because a column ** is declared to contain a particular type does not mean that the ** data stored in that column is of the declared type. SQLite is ** strongly typed, but the typing is dynamic not static. ^Type ** is associated with individual values, not with the containers ** used to hold those values. */ SQLITE_API const char *sqlite3_column_decltype(sqlite3_stmt*,int); SQLITE_API const void *sqlite3_column_decltype16(sqlite3_stmt*,int); /* ** CAPI3REF: Evaluate An SQL Statement ** ** After a [prepared statement] has been prepared using either ** [sqlite3_prepare_v2()] or [sqlite3_prepare16_v2()] or one of the legacy ** interfaces [sqlite3_prepare()] or [sqlite3_prepare16()], this function ** must be called one or more times to evaluate the statement. ** ** The details of the behavior of the sqlite3_step() interface depend ** on whether the statement was prepared using the newer "v2" interface ** [sqlite3_prepare_v2()] and [sqlite3_prepare16_v2()] or the older legacy ** interface [sqlite3_prepare()] and [sqlite3_prepare16()]. The use of the ** new "v2" interface is recommended for new applications but the legacy ** interface will continue to be supported. ** ** ^In the legacy interface, the return value will be either [SQLITE_BUSY], ** [SQLITE_DONE], [SQLITE_ROW], [SQLITE_ERROR], or [SQLITE_MISUSE]. ** ^With the "v2" interface, any of the other [result codes] or ** [extended result codes] might be returned as well. ** ** ^[SQLITE_BUSY] means that the database engine was unable to acquire the ** database locks it needs to do its job. ^If the statement is a [COMMIT] ** or occurs outside of an explicit transaction, then you can retry the ** statement. If the statement is not a [COMMIT] and occurs within a ** explicit transaction then you should rollback the transaction before ** continuing. ** ** ^[SQLITE_DONE] means that the statement has finished executing ** successfully. sqlite3_step() should not be called again on this virtual ** machine without first calling [sqlite3_reset()] to reset the virtual ** machine back to its initial state. ** ** ^If the SQL statement being executed returns any data, then [SQLITE_ROW] ** is returned each time a new row of data is ready for processing by the ** caller. The values may be accessed using the [column access functions]. ** sqlite3_step() is called again to retrieve the next row of data. ** ** ^[SQLITE_ERROR] means that a run-time error (such as a constraint ** violation) has occurred. sqlite3_step() should not be called again on ** the VM. More information may be found by calling [sqlite3_errmsg()]. ** ^With the legacy interface, a more specific error code (for example, ** [SQLITE_INTERRUPT], [SQLITE_SCHEMA], [SQLITE_CORRUPT], and so forth) ** can be obtained by calling [sqlite3_reset()] on the ** [prepared statement]. ^In the "v2" interface, ** the more specific error code is returned directly by sqlite3_step(). ** ** [SQLITE_MISUSE] means that the this routine was called inappropriately. ** Perhaps it was called on a [prepared statement] that has ** already been [sqlite3_finalize | finalized] or on one that had ** previously returned [SQLITE_ERROR] or [SQLITE_DONE]. Or it could ** be the case that the same database connection is being used by two or ** more threads at the same moment in time. ** ** For all versions of SQLite up to and including 3.6.23.1, a call to ** [sqlite3_reset()] was required after sqlite3_step() returned anything ** other than [SQLITE_ROW] before any subsequent invocation of ** sqlite3_step(). Failure to reset the prepared statement using ** [sqlite3_reset()] would result in an [SQLITE_MISUSE] return from ** sqlite3_step(). But after version 3.6.23.1, sqlite3_step() began ** calling [sqlite3_reset()] automatically in this circumstance rather ** than returning [SQLITE_MISUSE]. This is not considered a compatibility ** break because any application that ever receives an SQLITE_MISUSE error ** is broken by definition. The [SQLITE_OMIT_AUTORESET] compile-time option ** can be used to restore the legacy behavior. ** ** Goofy Interface Alert: In the legacy interface, the sqlite3_step() ** API always returns a generic error code, [SQLITE_ERROR], following any ** error other than [SQLITE_BUSY] and [SQLITE_MISUSE]. You must call ** [sqlite3_reset()] or [sqlite3_finalize()] in order to find one of the ** specific [error codes] that better describes the error. ** We admit that this is a goofy design. The problem has been fixed ** with the "v2" interface. If you prepare all of your SQL statements ** using either [sqlite3_prepare_v2()] or [sqlite3_prepare16_v2()] instead ** of the legacy [sqlite3_prepare()] and [sqlite3_prepare16()] interfaces, ** then the more specific [error codes] are returned directly ** by sqlite3_step(). The use of the "v2" interface is recommended. */ SQLITE_API int sqlite3_step(sqlite3_stmt*); /* ** CAPI3REF: Number of columns in a result set ** ** ^The sqlite3_data_count(P) interface returns the number of columns in the ** current row of the result set of [prepared statement] P. ** ^If prepared statement P does not have results ready to return ** (via calls to the [sqlite3_column_int | sqlite3_column_*()] of ** interfaces) then sqlite3_data_count(P) returns 0. ** ^The sqlite3_data_count(P) routine also returns 0 if P is a NULL pointer. ** ** See also: [sqlite3_column_count()] */ SQLITE_API int sqlite3_data_count(sqlite3_stmt *pStmt); /* ** CAPI3REF: Fundamental Datatypes ** KEYWORDS: SQLITE_TEXT ** ** ^(Every value in SQLite has one of five fundamental datatypes: ** **
      **
    • 64-bit signed integer **
    • 64-bit IEEE floating point number **
    • string **
    • BLOB **
    • NULL **
    )^ ** ** These constants are codes for each of those types. ** ** Note that the SQLITE_TEXT constant was also used in SQLite version 2 ** for a completely different meaning. Software that links against both ** SQLite version 2 and SQLite version 3 should use SQLITE3_TEXT, not ** SQLITE_TEXT. */ #define SQLITE_INTEGER 1 #define SQLITE_FLOAT 2 #define SQLITE_BLOB 4 #define SQLITE_NULL 5 #ifdef SQLITE_TEXT # undef SQLITE_TEXT #else # define SQLITE_TEXT 3 #endif #define SQLITE3_TEXT 3 /* ** CAPI3REF: Result Values From A Query ** KEYWORDS: {column access functions} ** ** These routines form the "result set" interface. ** ** ^These routines return information about a single column of the current ** result row of a query. ^In every case the first argument is a pointer ** to the [prepared statement] that is being evaluated (the [sqlite3_stmt*] ** that was returned from [sqlite3_prepare_v2()] or one of its variants) ** and the second argument is the index of the column for which information ** should be returned. ^The leftmost column of the result set has the index 0. ** ^The number of columns in the result can be determined using ** [sqlite3_column_count()]. ** ** If the SQL statement does not currently point to a valid row, or if the ** column index is out of range, the result is undefined. ** These routines may only be called when the most recent call to ** [sqlite3_step()] has returned [SQLITE_ROW] and neither ** [sqlite3_reset()] nor [sqlite3_finalize()] have been called subsequently. ** If any of these routines are called after [sqlite3_reset()] or ** [sqlite3_finalize()] or after [sqlite3_step()] has returned ** something other than [SQLITE_ROW], the results are undefined. ** If [sqlite3_step()] or [sqlite3_reset()] or [sqlite3_finalize()] ** are called from a different thread while any of these routines ** are pending, then the results are undefined. ** ** ^The sqlite3_column_type() routine returns the ** [SQLITE_INTEGER | datatype code] for the initial data type ** of the result column. ^The returned value is one of [SQLITE_INTEGER], ** [SQLITE_FLOAT], [SQLITE_TEXT], [SQLITE_BLOB], or [SQLITE_NULL]. The value ** returned by sqlite3_column_type() is only meaningful if no type ** conversions have occurred as described below. After a type conversion, ** the value returned by sqlite3_column_type() is undefined. Future ** versions of SQLite may change the behavior of sqlite3_column_type() ** following a type conversion. ** ** ^If the result is a BLOB or UTF-8 string then the sqlite3_column_bytes() ** routine returns the number of bytes in that BLOB or string. ** ^If the result is a UTF-16 string, then sqlite3_column_bytes() converts ** the string to UTF-8 and then returns the number of bytes. ** ^If the result is a numeric value then sqlite3_column_bytes() uses ** [sqlite3_snprintf()] to convert that value to a UTF-8 string and returns ** the number of bytes in that string. ** ^If the result is NULL, then sqlite3_column_bytes() returns zero. ** ** ^If the result is a BLOB or UTF-16 string then the sqlite3_column_bytes16() ** routine returns the number of bytes in that BLOB or string. ** ^If the result is a UTF-8 string, then sqlite3_column_bytes16() converts ** the string to UTF-16 and then returns the number of bytes. ** ^If the result is a numeric value then sqlite3_column_bytes16() uses ** [sqlite3_snprintf()] to convert that value to a UTF-16 string and returns ** the number of bytes in that string. ** ^If the result is NULL, then sqlite3_column_bytes16() returns zero. ** ** ^The values returned by [sqlite3_column_bytes()] and ** [sqlite3_column_bytes16()] do not include the zero terminators at the end ** of the string. ^For clarity: the values returned by ** [sqlite3_column_bytes()] and [sqlite3_column_bytes16()] are the number of ** bytes in the string, not the number of characters. ** ** ^Strings returned by sqlite3_column_text() and sqlite3_column_text16(), ** even empty strings, are always zero terminated. ^The return ** value from sqlite3_column_blob() for a zero-length BLOB is a NULL pointer. ** ** ^The object returned by [sqlite3_column_value()] is an ** [unprotected sqlite3_value] object. An unprotected sqlite3_value object ** may only be used with [sqlite3_bind_value()] and [sqlite3_result_value()]. ** If the [unprotected sqlite3_value] object returned by ** [sqlite3_column_value()] is used in any other way, including calls ** to routines like [sqlite3_value_int()], [sqlite3_value_text()], ** or [sqlite3_value_bytes()], then the behavior is undefined. ** ** These routines attempt to convert the value where appropriate. ^For ** example, if the internal representation is FLOAT and a text result ** is requested, [sqlite3_snprintf()] is used internally to perform the ** conversion automatically. ^(The following table details the conversions ** that are applied: ** **
    ** **
    Internal
    Type
    Requested
    Type
    Conversion ** **
    NULL INTEGER Result is 0 **
    NULL FLOAT Result is 0.0 **
    NULL TEXT Result is NULL pointer **
    NULL BLOB Result is NULL pointer **
    INTEGER FLOAT Convert from integer to float **
    INTEGER TEXT ASCII rendering of the integer **
    INTEGER BLOB Same as INTEGER->TEXT **
    FLOAT INTEGER Convert from float to integer **
    FLOAT TEXT ASCII rendering of the float **
    FLOAT BLOB Same as FLOAT->TEXT **
    TEXT INTEGER Use atoi() **
    TEXT FLOAT Use atof() **
    TEXT BLOB No change **
    BLOB INTEGER Convert to TEXT then use atoi() **
    BLOB FLOAT Convert to TEXT then use atof() **
    BLOB TEXT Add a zero terminator if needed **
    **
    )^ ** ** The table above makes reference to standard C library functions atoi() ** and atof(). SQLite does not really use these functions. It has its ** own equivalent internal routines. The atoi() and atof() names are ** used in the table for brevity and because they are familiar to most ** C programmers. ** ** Note that when type conversions occur, pointers returned by prior ** calls to sqlite3_column_blob(), sqlite3_column_text(), and/or ** sqlite3_column_text16() may be invalidated. ** Type conversions and pointer invalidations might occur ** in the following cases: ** **
      **
    • The initial content is a BLOB and sqlite3_column_text() or ** sqlite3_column_text16() is called. A zero-terminator might ** need to be added to the string.
    • **
    • The initial content is UTF-8 text and sqlite3_column_bytes16() or ** sqlite3_column_text16() is called. The content must be converted ** to UTF-16.
    • **
    • The initial content is UTF-16 text and sqlite3_column_bytes() or ** sqlite3_column_text() is called. The content must be converted ** to UTF-8.
    • **
    ** ** ^Conversions between UTF-16be and UTF-16le are always done in place and do ** not invalidate a prior pointer, though of course the content of the buffer ** that the prior pointer references will have been modified. Other kinds ** of conversion are done in place when it is possible, but sometimes they ** are not possible and in those cases prior pointers are invalidated. ** ** The safest and easiest to remember policy is to invoke these routines ** in one of the following ways: ** **
      **
    • sqlite3_column_text() followed by sqlite3_column_bytes()
    • **
    • sqlite3_column_blob() followed by sqlite3_column_bytes()
    • **
    • sqlite3_column_text16() followed by sqlite3_column_bytes16()
    • **
    ** ** In other words, you should call sqlite3_column_text(), ** sqlite3_column_blob(), or sqlite3_column_text16() first to force the result ** into the desired format, then invoke sqlite3_column_bytes() or ** sqlite3_column_bytes16() to find the size of the result. Do not mix calls ** to sqlite3_column_text() or sqlite3_column_blob() with calls to ** sqlite3_column_bytes16(), and do not mix calls to sqlite3_column_text16() ** with calls to sqlite3_column_bytes(). ** ** ^The pointers returned are valid until a type conversion occurs as ** described above, or until [sqlite3_step()] or [sqlite3_reset()] or ** [sqlite3_finalize()] is called. ^The memory space used to hold strings ** and BLOBs is freed automatically. Do not pass the pointers returned ** [sqlite3_column_blob()], [sqlite3_column_text()], etc. into ** [sqlite3_free()]. ** ** ^(If a memory allocation error occurs during the evaluation of any ** of these routines, a default value is returned. The default value ** is either the integer 0, the floating point number 0.0, or a NULL ** pointer. Subsequent calls to [sqlite3_errcode()] will return ** [SQLITE_NOMEM].)^ */ SQLITE_API const void *sqlite3_column_blob(sqlite3_stmt*, int iCol); SQLITE_API int sqlite3_column_bytes(sqlite3_stmt*, int iCol); SQLITE_API int sqlite3_column_bytes16(sqlite3_stmt*, int iCol); SQLITE_API double sqlite3_column_double(sqlite3_stmt*, int iCol); SQLITE_API int sqlite3_column_int(sqlite3_stmt*, int iCol); SQLITE_API sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol); SQLITE_API const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol); SQLITE_API const void *sqlite3_column_text16(sqlite3_stmt*, int iCol); SQLITE_API int sqlite3_column_type(sqlite3_stmt*, int iCol); SQLITE_API sqlite3_value *sqlite3_column_value(sqlite3_stmt*, int iCol); /* ** CAPI3REF: Destroy A Prepared Statement Object ** ** ^The sqlite3_finalize() function is called to delete a [prepared statement]. ** ^If the most recent evaluation of the statement encountered no errors or ** or if the statement is never been evaluated, then sqlite3_finalize() returns ** SQLITE_OK. ^If the most recent evaluation of statement S failed, then ** sqlite3_finalize(S) returns the appropriate [error code] or ** [extended error code]. ** ** ^The sqlite3_finalize(S) routine can be called at any point during ** the life cycle of [prepared statement] S: ** before statement S is ever evaluated, after ** one or more calls to [sqlite3_reset()], or after any call ** to [sqlite3_step()] regardless of whether or not the statement has ** completed execution. ** ** ^Invoking sqlite3_finalize() on a NULL pointer is a harmless no-op. ** ** The application must finalize every [prepared statement] in order to avoid ** resource leaks. It is a grievous error for the application to try to use ** a prepared statement after it has been finalized. Any use of a prepared ** statement after it has been finalized can result in undefined and ** undesirable behavior such as segfaults and heap corruption. */ SQLITE_API int sqlite3_finalize(sqlite3_stmt *pStmt); /* ** CAPI3REF: Reset A Prepared Statement Object ** ** The sqlite3_reset() function is called to reset a [prepared statement] ** object back to its initial state, ready to be re-executed. ** ^Any SQL statement variables that had values bound to them using ** the [sqlite3_bind_blob | sqlite3_bind_*() API] retain their values. ** Use [sqlite3_clear_bindings()] to reset the bindings. ** ** ^The [sqlite3_reset(S)] interface resets the [prepared statement] S ** back to the beginning of its program. ** ** ^If the most recent call to [sqlite3_step(S)] for the ** [prepared statement] S returned [SQLITE_ROW] or [SQLITE_DONE], ** or if [sqlite3_step(S)] has never before been called on S, ** then [sqlite3_reset(S)] returns [SQLITE_OK]. ** ** ^If the most recent call to [sqlite3_step(S)] for the ** [prepared statement] S indicated an error, then ** [sqlite3_reset(S)] returns an appropriate [error code]. ** ** ^The [sqlite3_reset(S)] interface does not change the values ** of any [sqlite3_bind_blob|bindings] on the [prepared statement] S. */ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt); /* ** CAPI3REF: Create Or Redefine SQL Functions ** KEYWORDS: {function creation routines} ** KEYWORDS: {application-defined SQL function} ** KEYWORDS: {application-defined SQL functions} ** ** ^These functions (collectively known as "function creation routines") ** are used to add SQL functions or aggregates or to redefine the behavior ** of existing SQL functions or aggregates. The only differences between ** these routines are the text encoding expected for ** the second parameter (the name of the function being created) ** and the presence or absence of a destructor callback for ** the application data pointer. ** ** ^The first parameter is the [database connection] to which the SQL ** function is to be added. ^If an application uses more than one database ** connection then application-defined SQL functions must be added ** to each database connection separately. ** ** ^The second parameter is the name of the SQL function to be created or ** redefined. ^The length of the name is limited to 255 bytes in a UTF-8 ** representation, exclusive of the zero-terminator. ^Note that the name ** length limit is in UTF-8 bytes, not characters nor UTF-16 bytes. ** ^Any attempt to create a function with a longer name ** will result in [SQLITE_MISUSE] being returned. ** ** ^The third parameter (nArg) ** is the number of arguments that the SQL function or ** aggregate takes. ^If this parameter is -1, then the SQL function or ** aggregate may take any number of arguments between 0 and the limit ** set by [sqlite3_limit]([SQLITE_LIMIT_FUNCTION_ARG]). If the third ** parameter is less than -1 or greater than 127 then the behavior is ** undefined. ** ** ^The fourth parameter, eTextRep, specifies what ** [SQLITE_UTF8 | text encoding] this SQL function prefers for ** its parameters. Every SQL function implementation must be able to work ** with UTF-8, UTF-16le, or UTF-16be. But some implementations may be ** more efficient with one encoding than another. ^An application may ** invoke sqlite3_create_function() or sqlite3_create_function16() multiple ** times with the same function but with different values of eTextRep. ** ^When multiple implementations of the same function are available, SQLite ** will pick the one that involves the least amount of data conversion. ** If there is only a single implementation which does not care what text ** encoding is used, then the fourth argument should be [SQLITE_ANY]. ** ** ^(The fifth parameter is an arbitrary pointer. The implementation of the ** function can gain access to this pointer using [sqlite3_user_data()].)^ ** ** ^The sixth, seventh and eighth parameters, xFunc, xStep and xFinal, are ** pointers to C-language functions that implement the SQL function or ** aggregate. ^A scalar SQL function requires an implementation of the xFunc ** callback only; NULL pointers must be passed as the xStep and xFinal ** parameters. ^An aggregate SQL function requires an implementation of xStep ** and xFinal and NULL pointer must be passed for xFunc. ^To delete an existing ** SQL function or aggregate, pass NULL pointers for all three function ** callbacks. ** ** ^(If the ninth parameter to sqlite3_create_function_v2() is not NULL, ** then it is destructor for the application data pointer. ** The destructor is invoked when the function is deleted, either by being ** overloaded or when the database connection closes.)^ ** ^The destructor is also invoked if the call to ** sqlite3_create_function_v2() fails. ** ^When the destructor callback of the tenth parameter is invoked, it ** is passed a single argument which is a copy of the application data ** pointer which was the fifth parameter to sqlite3_create_function_v2(). ** ** ^It is permitted to register multiple implementations of the same ** functions with the same name but with either differing numbers of ** arguments or differing preferred text encodings. ^SQLite will use ** the implementation that most closely matches the way in which the ** SQL function is used. ^A function implementation with a non-negative ** nArg parameter is a better match than a function implementation with ** a negative nArg. ^A function where the preferred text encoding ** matches the database encoding is a better ** match than a function where the encoding is different. ** ^A function where the encoding difference is between UTF16le and UTF16be ** is a closer match than a function where the encoding difference is ** between UTF8 and UTF16. ** ** ^Built-in functions may be overloaded by new application-defined functions. ** ** ^An application-defined function is permitted to call other ** SQLite interfaces. However, such calls must not ** close the database connection nor finalize or reset the prepared ** statement in which the function is running. */ SQLITE_API int sqlite3_create_function( sqlite3 *db, const char *zFunctionName, int nArg, int eTextRep, void *pApp, void (*xFunc)(sqlite3_context*,int,sqlite3_value**), void (*xStep)(sqlite3_context*,int,sqlite3_value**), void (*xFinal)(sqlite3_context*) ); SQLITE_API int sqlite3_create_function16( sqlite3 *db, const void *zFunctionName, int nArg, int eTextRep, void *pApp, void (*xFunc)(sqlite3_context*,int,sqlite3_value**), void (*xStep)(sqlite3_context*,int,sqlite3_value**), void (*xFinal)(sqlite3_context*) ); SQLITE_API int sqlite3_create_function_v2( sqlite3 *db, const char *zFunctionName, int nArg, int eTextRep, void *pApp, void (*xFunc)(sqlite3_context*,int,sqlite3_value**), void (*xStep)(sqlite3_context*,int,sqlite3_value**), void (*xFinal)(sqlite3_context*), void(*xDestroy)(void*) ); /* ** CAPI3REF: Text Encodings ** ** These constant define integer codes that represent the various ** text encodings supported by SQLite. */ #define SQLITE_UTF8 1 #define SQLITE_UTF16LE 2 #define SQLITE_UTF16BE 3 #define SQLITE_UTF16 4 /* Use native byte order */ #define SQLITE_ANY 5 /* sqlite3_create_function only */ #define SQLITE_UTF16_ALIGNED 8 /* sqlite3_create_collation only */ /* ** CAPI3REF: Deprecated Functions ** DEPRECATED ** ** These functions are [deprecated]. In order to maintain ** backwards compatibility with older code, these functions continue ** to be supported. However, new applications should avoid ** the use of these functions. To help encourage people to avoid ** using these functions, we are not going to tell you what they do. */ #ifndef SQLITE_OMIT_DEPRECATED SQLITE_API SQLITE_DEPRECATED int sqlite3_aggregate_count(sqlite3_context*); SQLITE_API SQLITE_DEPRECATED int sqlite3_expired(sqlite3_stmt*); SQLITE_API SQLITE_DEPRECATED int sqlite3_transfer_bindings(sqlite3_stmt*, sqlite3_stmt*); SQLITE_API SQLITE_DEPRECATED int sqlite3_global_recover(void); SQLITE_API SQLITE_DEPRECATED void sqlite3_thread_cleanup(void); SQLITE_API SQLITE_DEPRECATED int sqlite3_memory_alarm(void(*)(void*,sqlite3_int64,int),void*,sqlite3_int64); #endif /* ** CAPI3REF: Obtaining SQL Function Parameter Values ** ** The C-language implementation of SQL functions and aggregates uses ** this set of interface routines to access the parameter values on ** the function or aggregate. ** ** The xFunc (for scalar functions) or xStep (for aggregates) parameters ** to [sqlite3_create_function()] and [sqlite3_create_function16()] ** define callbacks that implement the SQL functions and aggregates. ** The 3rd parameter to these callbacks is an array of pointers to ** [protected sqlite3_value] objects. There is one [sqlite3_value] object for ** each parameter to the SQL function. These routines are used to ** extract values from the [sqlite3_value] objects. ** ** These routines work only with [protected sqlite3_value] objects. ** Any attempt to use these routines on an [unprotected sqlite3_value] ** object results in undefined behavior. ** ** ^These routines work just like the corresponding [column access functions] ** except that these routines take a single [protected sqlite3_value] object ** pointer instead of a [sqlite3_stmt*] pointer and an integer column number. ** ** ^The sqlite3_value_text16() interface extracts a UTF-16 string ** in the native byte-order of the host machine. ^The ** sqlite3_value_text16be() and sqlite3_value_text16le() interfaces ** extract UTF-16 strings as big-endian and little-endian respectively. ** ** ^(The sqlite3_value_numeric_type() interface attempts to apply ** numeric affinity to the value. This means that an attempt is ** made to convert the value to an integer or floating point. If ** such a conversion is possible without loss of information (in other ** words, if the value is a string that looks like a number) ** then the conversion is performed. Otherwise no conversion occurs. ** The [SQLITE_INTEGER | datatype] after conversion is returned.)^ ** ** Please pay particular attention to the fact that the pointer returned ** from [sqlite3_value_blob()], [sqlite3_value_text()], or ** [sqlite3_value_text16()] can be invalidated by a subsequent call to ** [sqlite3_value_bytes()], [sqlite3_value_bytes16()], [sqlite3_value_text()], ** or [sqlite3_value_text16()]. ** ** These routines must be called from the same thread as ** the SQL function that supplied the [sqlite3_value*] parameters. */ SQLITE_API const void *sqlite3_value_blob(sqlite3_value*); SQLITE_API int sqlite3_value_bytes(sqlite3_value*); SQLITE_API int sqlite3_value_bytes16(sqlite3_value*); SQLITE_API double sqlite3_value_double(sqlite3_value*); SQLITE_API int sqlite3_value_int(sqlite3_value*); SQLITE_API sqlite3_int64 sqlite3_value_int64(sqlite3_value*); SQLITE_API const unsigned char *sqlite3_value_text(sqlite3_value*); SQLITE_API const void *sqlite3_value_text16(sqlite3_value*); SQLITE_API const void *sqlite3_value_text16le(sqlite3_value*); SQLITE_API const void *sqlite3_value_text16be(sqlite3_value*); SQLITE_API int sqlite3_value_type(sqlite3_value*); SQLITE_API int sqlite3_value_numeric_type(sqlite3_value*); /* ** CAPI3REF: Obtain Aggregate Function Context ** ** Implementations of aggregate SQL functions use this ** routine to allocate memory for storing their state. ** ** ^The first time the sqlite3_aggregate_context(C,N) routine is called ** for a particular aggregate function, SQLite ** allocates N of memory, zeroes out that memory, and returns a pointer ** to the new memory. ^On second and subsequent calls to ** sqlite3_aggregate_context() for the same aggregate function instance, ** the same buffer is returned. Sqlite3_aggregate_context() is normally ** called once for each invocation of the xStep callback and then one ** last time when the xFinal callback is invoked. ^(When no rows match ** an aggregate query, the xStep() callback of the aggregate function ** implementation is never called and xFinal() is called exactly once. ** In those cases, sqlite3_aggregate_context() might be called for the ** first time from within xFinal().)^ ** ** ^The sqlite3_aggregate_context(C,N) routine returns a NULL pointer if N is ** less than or equal to zero or if a memory allocate error occurs. ** ** ^(The amount of space allocated by sqlite3_aggregate_context(C,N) is ** determined by the N parameter on first successful call. Changing the ** value of N in subsequent call to sqlite3_aggregate_context() within ** the same aggregate function instance will not resize the memory ** allocation.)^ ** ** ^SQLite automatically frees the memory allocated by ** sqlite3_aggregate_context() when the aggregate query concludes. ** ** The first parameter must be a copy of the ** [sqlite3_context | SQL function context] that is the first parameter ** to the xStep or xFinal callback routine that implements the aggregate ** function. ** ** This routine must be called from the same thread in which ** the aggregate SQL function is running. */ SQLITE_API void *sqlite3_aggregate_context(sqlite3_context*, int nBytes); /* ** CAPI3REF: User Data For Functions ** ** ^The sqlite3_user_data() interface returns a copy of ** the pointer that was the pUserData parameter (the 5th parameter) ** of the [sqlite3_create_function()] ** and [sqlite3_create_function16()] routines that originally ** registered the application defined function. ** ** This routine must be called from the same thread in which ** the application-defined function is running. */ SQLITE_API void *sqlite3_user_data(sqlite3_context*); /* ** CAPI3REF: Database Connection For Functions ** ** ^The sqlite3_context_db_handle() interface returns a copy of ** the pointer to the [database connection] (the 1st parameter) ** of the [sqlite3_create_function()] ** and [sqlite3_create_function16()] routines that originally ** registered the application defined function. */ SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context*); /* ** CAPI3REF: Function Auxiliary Data ** ** The following two functions may be used by scalar SQL functions to ** associate metadata with argument values. If the same value is passed to ** multiple invocations of the same SQL function during query execution, under ** some circumstances the associated metadata may be preserved. This may ** be used, for example, to add a regular-expression matching scalar ** function. The compiled version of the regular expression is stored as ** metadata associated with the SQL value passed as the regular expression ** pattern. The compiled regular expression can be reused on multiple ** invocations of the same function so that the original pattern string ** does not need to be recompiled on each invocation. ** ** ^The sqlite3_get_auxdata() interface returns a pointer to the metadata ** associated by the sqlite3_set_auxdata() function with the Nth argument ** value to the application-defined function. ^If no metadata has been ever ** been set for the Nth argument of the function, or if the corresponding ** function parameter has changed since the meta-data was set, ** then sqlite3_get_auxdata() returns a NULL pointer. ** ** ^The sqlite3_set_auxdata() interface saves the metadata ** pointed to by its 3rd parameter as the metadata for the N-th ** argument of the application-defined function. Subsequent ** calls to sqlite3_get_auxdata() might return this data, if it has ** not been destroyed. ** ^If it is not NULL, SQLite will invoke the destructor ** function given by the 4th parameter to sqlite3_set_auxdata() on ** the metadata when the corresponding function parameter changes ** or when the SQL statement completes, whichever comes first. ** ** SQLite is free to call the destructor and drop metadata on any ** parameter of any function at any time. ^The only guarantee is that ** the destructor will be called before the metadata is dropped. ** ** ^(In practice, metadata is preserved between function calls for ** expressions that are constant at compile time. This includes literal ** values and [parameters].)^ ** ** These routines must be called from the same thread in which ** the SQL function is running. */ SQLITE_API void *sqlite3_get_auxdata(sqlite3_context*, int N); SQLITE_API void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void (*)(void*)); /* ** CAPI3REF: Constants Defining Special Destructor Behavior ** ** These are special values for the destructor that is passed in as the ** final argument to routines like [sqlite3_result_blob()]. ^If the destructor ** argument is SQLITE_STATIC, it means that the content pointer is constant ** and will never change. It does not need to be destroyed. ^The ** SQLITE_TRANSIENT value means that the content will likely change in ** the near future and that SQLite should make its own private copy of ** the content before returning. ** ** The typedef is necessary to work around problems in certain ** C++ compilers. See ticket #2191. */ typedef void (*sqlite3_destructor_type)(void*); #define SQLITE_STATIC ((sqlite3_destructor_type)0) #define SQLITE_TRANSIENT ((sqlite3_destructor_type)-1) /* ** CAPI3REF: Setting The Result Of An SQL Function ** ** These routines are used by the xFunc or xFinal callbacks that ** implement SQL functions and aggregates. See ** [sqlite3_create_function()] and [sqlite3_create_function16()] ** for additional information. ** ** These functions work very much like the [parameter binding] family of ** functions used to bind values to host parameters in prepared statements. ** Refer to the [SQL parameter] documentation for additional information. ** ** ^The sqlite3_result_blob() interface sets the result from ** an application-defined function to be the BLOB whose content is pointed ** to by the second parameter and which is N bytes long where N is the ** third parameter. ** ** ^The sqlite3_result_zeroblob() interfaces set the result of ** the application-defined function to be a BLOB containing all zero ** bytes and N bytes in size, where N is the value of the 2nd parameter. ** ** ^The sqlite3_result_double() interface sets the result from ** an application-defined function to be a floating point value specified ** by its 2nd argument. ** ** ^The sqlite3_result_error() and sqlite3_result_error16() functions ** cause the implemented SQL function to throw an exception. ** ^SQLite uses the string pointed to by the ** 2nd parameter of sqlite3_result_error() or sqlite3_result_error16() ** as the text of an error message. ^SQLite interprets the error ** message string from sqlite3_result_error() as UTF-8. ^SQLite ** interprets the string from sqlite3_result_error16() as UTF-16 in native ** byte order. ^If the third parameter to sqlite3_result_error() ** or sqlite3_result_error16() is negative then SQLite takes as the error ** message all text up through the first zero character. ** ^If the third parameter to sqlite3_result_error() or ** sqlite3_result_error16() is non-negative then SQLite takes that many ** bytes (not characters) from the 2nd parameter as the error message. ** ^The sqlite3_result_error() and sqlite3_result_error16() ** routines make a private copy of the error message text before ** they return. Hence, the calling function can deallocate or ** modify the text after they return without harm. ** ^The sqlite3_result_error_code() function changes the error code ** returned by SQLite as a result of an error in a function. ^By default, ** the error code is SQLITE_ERROR. ^A subsequent call to sqlite3_result_error() ** or sqlite3_result_error16() resets the error code to SQLITE_ERROR. ** ** ^The sqlite3_result_toobig() interface causes SQLite to throw an error ** indicating that a string or BLOB is too long to represent. ** ** ^The sqlite3_result_nomem() interface causes SQLite to throw an error ** indicating that a memory allocation failed. ** ** ^The sqlite3_result_int() interface sets the return value ** of the application-defined function to be the 32-bit signed integer ** value given in the 2nd argument. ** ^The sqlite3_result_int64() interface sets the return value ** of the application-defined function to be the 64-bit signed integer ** value given in the 2nd argument. ** ** ^The sqlite3_result_null() interface sets the return value ** of the application-defined function to be NULL. ** ** ^The sqlite3_result_text(), sqlite3_result_text16(), ** sqlite3_result_text16le(), and sqlite3_result_text16be() interfaces ** set the return value of the application-defined function to be ** a text string which is represented as UTF-8, UTF-16 native byte order, ** UTF-16 little endian, or UTF-16 big endian, respectively. ** ^SQLite takes the text result from the application from ** the 2nd parameter of the sqlite3_result_text* interfaces. ** ^If the 3rd parameter to the sqlite3_result_text* interfaces ** is negative, then SQLite takes result text from the 2nd parameter ** through the first zero character. ** ^If the 3rd parameter to the sqlite3_result_text* interfaces ** is non-negative, then as many bytes (not characters) of the text ** pointed to by the 2nd parameter are taken as the application-defined ** function result. ** ^If the 4th parameter to the sqlite3_result_text* interfaces ** or sqlite3_result_blob is a non-NULL pointer, then SQLite calls that ** function as the destructor on the text or BLOB result when it has ** finished using that result. ** ^If the 4th parameter to the sqlite3_result_text* interfaces or to ** sqlite3_result_blob is the special constant SQLITE_STATIC, then SQLite ** assumes that the text or BLOB result is in constant space and does not ** copy the content of the parameter nor call a destructor on the content ** when it has finished using that result. ** ^If the 4th parameter to the sqlite3_result_text* interfaces ** or sqlite3_result_blob is the special constant SQLITE_TRANSIENT ** then SQLite makes a copy of the result into space obtained from ** from [sqlite3_malloc()] before it returns. ** ** ^The sqlite3_result_value() interface sets the result of ** the application-defined function to be a copy the ** [unprotected sqlite3_value] object specified by the 2nd parameter. ^The ** sqlite3_result_value() interface makes a copy of the [sqlite3_value] ** so that the [sqlite3_value] specified in the parameter may change or ** be deallocated after sqlite3_result_value() returns without harm. ** ^A [protected sqlite3_value] object may always be used where an ** [unprotected sqlite3_value] object is required, so either ** kind of [sqlite3_value] object can be used with this interface. ** ** If these routines are called from within the different thread ** than the one containing the application-defined function that received ** the [sqlite3_context] pointer, the results are undefined. */ SQLITE_API void sqlite3_result_blob(sqlite3_context*, const void*, int, void(*)(void*)); SQLITE_API void sqlite3_result_double(sqlite3_context*, double); SQLITE_API void sqlite3_result_error(sqlite3_context*, const char*, int); SQLITE_API void sqlite3_result_error16(sqlite3_context*, const void*, int); SQLITE_API void sqlite3_result_error_toobig(sqlite3_context*); SQLITE_API void sqlite3_result_error_nomem(sqlite3_context*); SQLITE_API void sqlite3_result_error_code(sqlite3_context*, int); SQLITE_API void sqlite3_result_int(sqlite3_context*, int); SQLITE_API void sqlite3_result_int64(sqlite3_context*, sqlite3_int64); SQLITE_API void sqlite3_result_null(sqlite3_context*); SQLITE_API void sqlite3_result_text(sqlite3_context*, const char*, int, void(*)(void*)); SQLITE_API void sqlite3_result_text16(sqlite3_context*, const void*, int, void(*)(void*)); SQLITE_API void sqlite3_result_text16le(sqlite3_context*, const void*, int,void(*)(void*)); SQLITE_API void sqlite3_result_text16be(sqlite3_context*, const void*, int,void(*)(void*)); SQLITE_API void sqlite3_result_value(sqlite3_context*, sqlite3_value*); SQLITE_API void sqlite3_result_zeroblob(sqlite3_context*, int n); /* ** CAPI3REF: Define New Collating Sequences ** ** ^These functions add, remove, or modify a [collation] associated ** with the [database connection] specified as the first argument. ** ** ^The name of the collation is a UTF-8 string ** for sqlite3_create_collation() and sqlite3_create_collation_v2() ** and a UTF-16 string in native byte order for sqlite3_create_collation16(). ** ^Collation names that compare equal according to [sqlite3_strnicmp()] are ** considered to be the same name. ** ** ^(The third argument (eTextRep) must be one of the constants: **
      **
    • [SQLITE_UTF8], **
    • [SQLITE_UTF16LE], **
    • [SQLITE_UTF16BE], **
    • [SQLITE_UTF16], or **
    • [SQLITE_UTF16_ALIGNED]. **
    )^ ** ^The eTextRep argument determines the encoding of strings passed ** to the collating function callback, xCallback. ** ^The [SQLITE_UTF16] and [SQLITE_UTF16_ALIGNED] values for eTextRep ** force strings to be UTF16 with native byte order. ** ^The [SQLITE_UTF16_ALIGNED] value for eTextRep forces strings to begin ** on an even byte address. ** ** ^The fourth argument, pArg, is an application data pointer that is passed ** through as the first argument to the collating function callback. ** ** ^The fifth argument, xCallback, is a pointer to the collating function. ** ^Multiple collating functions can be registered using the same name but ** with different eTextRep parameters and SQLite will use whichever ** function requires the least amount of data transformation. ** ^If the xCallback argument is NULL then the collating function is ** deleted. ^When all collating functions having the same name are deleted, ** that collation is no longer usable. ** ** ^The collating function callback is invoked with a copy of the pArg ** application data pointer and with two strings in the encoding specified ** by the eTextRep argument. The collating function must return an ** integer that is negative, zero, or positive ** if the first string is less than, equal to, or greater than the second, ** respectively. A collating function must always return the same answer ** given the same inputs. If two or more collating functions are registered ** to the same collation name (using different eTextRep values) then all ** must give an equivalent answer when invoked with equivalent strings. ** The collating function must obey the following properties for all ** strings A, B, and C: ** **
      **
    1. If A==B then B==A. **
    2. If A==B and B==C then A==C. **
    3. If A<B THEN B>A. **
    4. If A<B and B<C then A<C. **
    ** ** If a collating function fails any of the above constraints and that ** collating function is registered and used, then the behavior of SQLite ** is undefined. ** ** ^The sqlite3_create_collation_v2() works like sqlite3_create_collation() ** with the addition that the xDestroy callback is invoked on pArg when ** the collating function is deleted. ** ^Collating functions are deleted when they are overridden by later ** calls to the collation creation functions or when the ** [database connection] is closed using [sqlite3_close()]. ** ** ^The xDestroy callback is not called if the ** sqlite3_create_collation_v2() function fails. Applications that invoke ** sqlite3_create_collation_v2() with a non-NULL xDestroy argument should ** check the return code and dispose of the application data pointer ** themselves rather than expecting SQLite to deal with it for them. ** This is different from every other SQLite interface. The inconsistency ** is unfortunate but cannot be changed without breaking backwards ** compatibility. ** ** See also: [sqlite3_collation_needed()] and [sqlite3_collation_needed16()]. */ SQLITE_API int sqlite3_create_collation( sqlite3*, const char *zName, int eTextRep, void *pArg, int(*xCompare)(void*,int,const void*,int,const void*) ); SQLITE_API int sqlite3_create_collation_v2( sqlite3*, const char *zName, int eTextRep, void *pArg, int(*xCompare)(void*,int,const void*,int,const void*), void(*xDestroy)(void*) ); SQLITE_API int sqlite3_create_collation16( sqlite3*, const void *zName, int eTextRep, void *pArg, int(*xCompare)(void*,int,const void*,int,const void*) ); /* ** CAPI3REF: Collation Needed Callbacks ** ** ^To avoid having to register all collation sequences before a database ** can be used, a single callback function may be registered with the ** [database connection] to be invoked whenever an undefined collation ** sequence is required. ** ** ^If the function is registered using the sqlite3_collation_needed() API, ** then it is passed the names of undefined collation sequences as strings ** encoded in UTF-8. ^If sqlite3_collation_needed16() is used, ** the names are passed as UTF-16 in machine native byte order. ** ^A call to either function replaces the existing collation-needed callback. ** ** ^(When the callback is invoked, the first argument passed is a copy ** of the second argument to sqlite3_collation_needed() or ** sqlite3_collation_needed16(). The second argument is the database ** connection. The third argument is one of [SQLITE_UTF8], [SQLITE_UTF16BE], ** or [SQLITE_UTF16LE], indicating the most desirable form of the collation ** sequence function required. The fourth parameter is the name of the ** required collation sequence.)^ ** ** The callback function should register the desired collation using ** [sqlite3_create_collation()], [sqlite3_create_collation16()], or ** [sqlite3_create_collation_v2()]. */ SQLITE_API int sqlite3_collation_needed( sqlite3*, void*, void(*)(void*,sqlite3*,int eTextRep,const char*) ); SQLITE_API int sqlite3_collation_needed16( sqlite3*, void*, void(*)(void*,sqlite3*,int eTextRep,const void*) ); #ifdef SQLITE_HAS_CODEC /* ** Specify the key for an encrypted database. This routine should be ** called right after sqlite3_open(). ** ** The code to implement this API is not available in the public release ** of SQLite. */ SQLITE_API int sqlite3_key( sqlite3 *db, /* Database to be rekeyed */ const void *pKey, int nKey /* The key */ ); /* ** Change the key on an open database. If the current database is not ** encrypted, this routine will encrypt it. If pNew==0 or nNew==0, the ** database is decrypted. ** ** The code to implement this API is not available in the public release ** of SQLite. */ SQLITE_API int sqlite3_rekey( sqlite3 *db, /* Database to be rekeyed */ const void *pKey, int nKey /* The new key */ ); /* ** Specify the activation key for a SEE database. Unless ** activated, none of the SEE routines will work. */ SQLITE_API void sqlite3_activate_see( const char *zPassPhrase /* Activation phrase */ ); #endif #ifdef SQLITE_ENABLE_CEROD /* ** Specify the activation key for a CEROD database. Unless ** activated, none of the CEROD routines will work. */ SQLITE_API void sqlite3_activate_cerod( const char *zPassPhrase /* Activation phrase */ ); #endif /* ** CAPI3REF: Suspend Execution For A Short Time ** ** The sqlite3_sleep() function causes the current thread to suspend execution ** for at least a number of milliseconds specified in its parameter. ** ** If the operating system does not support sleep requests with ** millisecond time resolution, then the time will be rounded up to ** the nearest second. The number of milliseconds of sleep actually ** requested from the operating system is returned. ** ** ^SQLite implements this interface by calling the xSleep() ** method of the default [sqlite3_vfs] object. If the xSleep() method ** of the default VFS is not implemented correctly, or not implemented at ** all, then the behavior of sqlite3_sleep() may deviate from the description ** in the previous paragraphs. */ SQLITE_API int sqlite3_sleep(int); /* ** CAPI3REF: Name Of The Folder Holding Temporary Files ** ** ^(If this global variable is made to point to a string which is ** the name of a folder (a.k.a. directory), then all temporary files ** created by SQLite when using a built-in [sqlite3_vfs | VFS] ** will be placed in that directory.)^ ^If this variable ** is a NULL pointer, then SQLite performs a search for an appropriate ** temporary file directory. ** ** It is not safe to read or modify this variable in more than one ** thread at a time. It is not safe to read or modify this variable ** if a [database connection] is being used at the same time in a separate ** thread. ** It is intended that this variable be set once ** as part of process initialization and before any SQLite interface ** routines have been called and that this variable remain unchanged ** thereafter. ** ** ^The [temp_store_directory pragma] may modify this variable and cause ** it to point to memory obtained from [sqlite3_malloc]. ^Furthermore, ** the [temp_store_directory pragma] always assumes that any string ** that this variable points to is held in memory obtained from ** [sqlite3_malloc] and the pragma may attempt to free that memory ** using [sqlite3_free]. ** Hence, if this variable is modified directly, either it should be ** made NULL or made to point to memory obtained from [sqlite3_malloc] ** or else the use of the [temp_store_directory pragma] should be avoided. */ SQLITE_API char *sqlite3_temp_directory; /* ** CAPI3REF: Test For Auto-Commit Mode ** KEYWORDS: {autocommit mode} ** ** ^The sqlite3_get_autocommit() interface returns non-zero or ** zero if the given database connection is or is not in autocommit mode, ** respectively. ^Autocommit mode is on by default. ** ^Autocommit mode is disabled by a [BEGIN] statement. ** ^Autocommit mode is re-enabled by a [COMMIT] or [ROLLBACK]. ** ** If certain kinds of errors occur on a statement within a multi-statement ** transaction (errors including [SQLITE_FULL], [SQLITE_IOERR], ** [SQLITE_NOMEM], [SQLITE_BUSY], and [SQLITE_INTERRUPT]) then the ** transaction might be rolled back automatically. The only way to ** find out whether SQLite automatically rolled back the transaction after ** an error is to use this function. ** ** If another thread changes the autocommit status of the database ** connection while this routine is running, then the return value ** is undefined. */ SQLITE_API int sqlite3_get_autocommit(sqlite3*); /* ** CAPI3REF: Find The Database Handle Of A Prepared Statement ** ** ^The sqlite3_db_handle interface returns the [database connection] handle ** to which a [prepared statement] belongs. ^The [database connection] ** returned by sqlite3_db_handle is the same [database connection] ** that was the first argument ** to the [sqlite3_prepare_v2()] call (or its variants) that was used to ** create the statement in the first place. */ SQLITE_API sqlite3 *sqlite3_db_handle(sqlite3_stmt*); /* ** CAPI3REF: Find the next prepared statement ** ** ^This interface returns a pointer to the next [prepared statement] after ** pStmt associated with the [database connection] pDb. ^If pStmt is NULL ** then this interface returns a pointer to the first prepared statement ** associated with the database connection pDb. ^If no prepared statement ** satisfies the conditions of this routine, it returns NULL. ** ** The [database connection] pointer D in a call to ** [sqlite3_next_stmt(D,S)] must refer to an open database ** connection and in particular must not be a NULL pointer. */ SQLITE_API sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt); /* ** CAPI3REF: Commit And Rollback Notification Callbacks ** ** ^The sqlite3_commit_hook() interface registers a callback ** function to be invoked whenever a transaction is [COMMIT | committed]. ** ^Any callback set by a previous call to sqlite3_commit_hook() ** for the same database connection is overridden. ** ^The sqlite3_rollback_hook() interface registers a callback ** function to be invoked whenever a transaction is [ROLLBACK | rolled back]. ** ^Any callback set by a previous call to sqlite3_rollback_hook() ** for the same database connection is overridden. ** ^The pArg argument is passed through to the callback. ** ^If the callback on a commit hook function returns non-zero, ** then the commit is converted into a rollback. ** ** ^The sqlite3_commit_hook(D,C,P) and sqlite3_rollback_hook(D,C,P) functions ** return the P argument from the previous call of the same function ** on the same [database connection] D, or NULL for ** the first call for each function on D. ** ** The callback implementation must not do anything that will modify ** the database connection that invoked the callback. Any actions ** to modify the database connection must be deferred until after the ** completion of the [sqlite3_step()] call that triggered the commit ** or rollback hook in the first place. ** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their ** database connections for the meaning of "modify" in this paragraph. ** ** ^Registering a NULL function disables the callback. ** ** ^When the commit hook callback routine returns zero, the [COMMIT] ** operation is allowed to continue normally. ^If the commit hook ** returns non-zero, then the [COMMIT] is converted into a [ROLLBACK]. ** ^The rollback hook is invoked on a rollback that results from a commit ** hook returning non-zero, just as it would be with any other rollback. ** ** ^For the purposes of this API, a transaction is said to have been ** rolled back if an explicit "ROLLBACK" statement is executed, or ** an error or constraint causes an implicit rollback to occur. ** ^The rollback callback is not invoked if a transaction is ** automatically rolled back because the database connection is closed. ** ** See also the [sqlite3_update_hook()] interface. */ SQLITE_API void *sqlite3_commit_hook(sqlite3*, int(*)(void*), void*); SQLITE_API void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*); /* ** CAPI3REF: Data Change Notification Callbacks ** ** ^The sqlite3_update_hook() interface registers a callback function ** with the [database connection] identified by the first argument ** to be invoked whenever a row is updated, inserted or deleted. ** ^Any callback set by a previous call to this function ** for the same database connection is overridden. ** ** ^The second argument is a pointer to the function to invoke when a ** row is updated, inserted or deleted. ** ^The first argument to the callback is a copy of the third argument ** to sqlite3_update_hook(). ** ^The second callback argument is one of [SQLITE_INSERT], [SQLITE_DELETE], ** or [SQLITE_UPDATE], depending on the operation that caused the callback ** to be invoked. ** ^The third and fourth arguments to the callback contain pointers to the ** database and table name containing the affected row. ** ^The final callback parameter is the [rowid] of the row. ** ^In the case of an update, this is the [rowid] after the update takes place. ** ** ^(The update hook is not invoked when internal system tables are ** modified (i.e. sqlite_master and sqlite_sequence).)^ ** ** ^In the current implementation, the update hook ** is not invoked when duplication rows are deleted because of an ** [ON CONFLICT | ON CONFLICT REPLACE] clause. ^Nor is the update hook ** invoked when rows are deleted using the [truncate optimization]. ** The exceptions defined in this paragraph might change in a future ** release of SQLite. ** ** The update hook implementation must not do anything that will modify ** the database connection that invoked the update hook. Any actions ** to modify the database connection must be deferred until after the ** completion of the [sqlite3_step()] call that triggered the update hook. ** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their ** database connections for the meaning of "modify" in this paragraph. ** ** ^The sqlite3_update_hook(D,C,P) function ** returns the P argument from the previous call ** on the same [database connection] D, or NULL for ** the first call on D. ** ** See also the [sqlite3_commit_hook()] and [sqlite3_rollback_hook()] ** interfaces. */ SQLITE_API void *sqlite3_update_hook( sqlite3*, void(*)(void *,int ,char const *,char const *,sqlite3_int64), void* ); /* ** CAPI3REF: Enable Or Disable Shared Pager Cache ** KEYWORDS: {shared cache} ** ** ^(This routine enables or disables the sharing of the database cache ** and schema data structures between [database connection | connections] ** to the same database. Sharing is enabled if the argument is true ** and disabled if the argument is false.)^ ** ** ^Cache sharing is enabled and disabled for an entire process. ** This is a change as of SQLite version 3.5.0. In prior versions of SQLite, ** sharing was enabled or disabled for each thread separately. ** ** ^(The cache sharing mode set by this interface effects all subsequent ** calls to [sqlite3_open()], [sqlite3_open_v2()], and [sqlite3_open16()]. ** Existing database connections continue use the sharing mode ** that was in effect at the time they were opened.)^ ** ** ^(This routine returns [SQLITE_OK] if shared cache was enabled or disabled ** successfully. An [error code] is returned otherwise.)^ ** ** ^Shared cache is disabled by default. But this might change in ** future releases of SQLite. Applications that care about shared ** cache setting should set it explicitly. ** ** See Also: [SQLite Shared-Cache Mode] */ SQLITE_API int sqlite3_enable_shared_cache(int); /* ** CAPI3REF: Attempt To Free Heap Memory ** ** ^The sqlite3_release_memory() interface attempts to free N bytes ** of heap memory by deallocating non-essential memory allocations ** held by the database library. Memory used to cache database ** pages to improve performance is an example of non-essential memory. ** ^sqlite3_release_memory() returns the number of bytes actually freed, ** which might be more or less than the amount requested. ** ^The sqlite3_release_memory() routine is a no-op returning zero ** if SQLite is not compiled with [SQLITE_ENABLE_MEMORY_MANAGEMENT]. */ SQLITE_API int sqlite3_release_memory(int); /* ** CAPI3REF: Impose A Limit On Heap Size ** ** ^The sqlite3_soft_heap_limit64() interface sets and/or queries the ** soft limit on the amount of heap memory that may be allocated by SQLite. ** ^SQLite strives to keep heap memory utilization below the soft heap ** limit by reducing the number of pages held in the page cache ** as heap memory usages approaches the limit. ** ^The soft heap limit is "soft" because even though SQLite strives to stay ** below the limit, it will exceed the limit rather than generate ** an [SQLITE_NOMEM] error. In other words, the soft heap limit ** is advisory only. ** ** ^The return value from sqlite3_soft_heap_limit64() is the size of ** the soft heap limit prior to the call. ^If the argument N is negative ** then no change is made to the soft heap limit. Hence, the current ** size of the soft heap limit can be determined by invoking ** sqlite3_soft_heap_limit64() with a negative argument. ** ** ^If the argument N is zero then the soft heap limit is disabled. ** ** ^(The soft heap limit is not enforced in the current implementation ** if one or more of following conditions are true: ** **
      **
    • The soft heap limit is set to zero. **
    • Memory accounting is disabled using a combination of the ** [sqlite3_config]([SQLITE_CONFIG_MEMSTATUS],...) start-time option and ** the [SQLITE_DEFAULT_MEMSTATUS] compile-time option. **
    • An alternative page cache implementation is specified using ** [sqlite3_config]([SQLITE_CONFIG_PCACHE],...). **
    • The page cache allocates from its own memory pool supplied ** by [sqlite3_config]([SQLITE_CONFIG_PAGECACHE],...) rather than ** from the heap. **
    )^ ** ** Beginning with SQLite version 3.7.3, the soft heap limit is enforced ** regardless of whether or not the [SQLITE_ENABLE_MEMORY_MANAGEMENT] ** compile-time option is invoked. With [SQLITE_ENABLE_MEMORY_MANAGEMENT], ** the soft heap limit is enforced on every memory allocation. Without ** [SQLITE_ENABLE_MEMORY_MANAGEMENT], the soft heap limit is only enforced ** when memory is allocated by the page cache. Testing suggests that because ** the page cache is the predominate memory user in SQLite, most ** applications will achieve adequate soft heap limit enforcement without ** the use of [SQLITE_ENABLE_MEMORY_MANAGEMENT]. ** ** The circumstances under which SQLite will enforce the soft heap limit may ** changes in future releases of SQLite. */ SQLITE_API sqlite3_int64 sqlite3_soft_heap_limit64(sqlite3_int64 N); /* ** CAPI3REF: Deprecated Soft Heap Limit Interface ** DEPRECATED ** ** This is a deprecated version of the [sqlite3_soft_heap_limit64()] ** interface. This routine is provided for historical compatibility ** only. All new applications should use the ** [sqlite3_soft_heap_limit64()] interface rather than this one. */ SQLITE_API SQLITE_DEPRECATED void sqlite3_soft_heap_limit(int N); /* ** CAPI3REF: Extract Metadata About A Column Of A Table ** ** ^This routine returns metadata about a specific column of a specific ** database table accessible using the [database connection] handle ** passed as the first function argument. ** ** ^The column is identified by the second, third and fourth parameters to ** this function. ^The second parameter is either the name of the database ** (i.e. "main", "temp", or an attached database) containing the specified ** table or NULL. ^If it is NULL, then all attached databases are searched ** for the table using the same algorithm used by the database engine to ** resolve unqualified table references. ** ** ^The third and fourth parameters to this function are the table and column ** name of the desired column, respectively. Neither of these parameters ** may be NULL. ** ** ^Metadata is returned by writing to the memory locations passed as the 5th ** and subsequent parameters to this function. ^Any of these arguments may be ** NULL, in which case the corresponding element of metadata is omitted. ** ** ^(
    ** **
    Parameter Output
    Type
    Description ** **
    5th const char* Data type **
    6th const char* Name of default collation sequence **
    7th int True if column has a NOT NULL constraint **
    8th int True if column is part of the PRIMARY KEY **
    9th int True if column is [AUTOINCREMENT] **
    **
    )^ ** ** ^The memory pointed to by the character pointers returned for the ** declaration type and collation sequence is valid only until the next ** call to any SQLite API function. ** ** ^If the specified table is actually a view, an [error code] is returned. ** ** ^If the specified column is "rowid", "oid" or "_rowid_" and an ** [INTEGER PRIMARY KEY] column has been explicitly declared, then the output ** parameters are set for the explicitly declared column. ^(If there is no ** explicitly declared [INTEGER PRIMARY KEY] column, then the output ** parameters are set as follows: ** **
    **     data type: "INTEGER"
    **     collation sequence: "BINARY"
    **     not null: 0
    **     primary key: 1
    **     auto increment: 0
    ** 
    )^ ** ** ^(This function may load one or more schemas from database files. If an ** error occurs during this process, or if the requested table or column ** cannot be found, an [error code] is returned and an error message left ** in the [database connection] (to be retrieved using sqlite3_errmsg()).)^ ** ** ^This API is only available if the library was compiled with the ** [SQLITE_ENABLE_COLUMN_METADATA] C-preprocessor symbol defined. */ SQLITE_API int sqlite3_table_column_metadata( sqlite3 *db, /* Connection handle */ const char *zDbName, /* Database name or NULL */ const char *zTableName, /* Table name */ const char *zColumnName, /* Column name */ char const **pzDataType, /* OUTPUT: Declared data type */ char const **pzCollSeq, /* OUTPUT: Collation sequence name */ int *pNotNull, /* OUTPUT: True if NOT NULL constraint exists */ int *pPrimaryKey, /* OUTPUT: True if column part of PK */ int *pAutoinc /* OUTPUT: True if column is auto-increment */ ); /* ** CAPI3REF: Load An Extension ** ** ^This interface loads an SQLite extension library from the named file. ** ** ^The sqlite3_load_extension() interface attempts to load an ** SQLite extension library contained in the file zFile. ** ** ^The entry point is zProc. ** ^zProc may be 0, in which case the name of the entry point ** defaults to "sqlite3_extension_init". ** ^The sqlite3_load_extension() interface returns ** [SQLITE_OK] on success and [SQLITE_ERROR] if something goes wrong. ** ^If an error occurs and pzErrMsg is not 0, then the ** [sqlite3_load_extension()] interface shall attempt to ** fill *pzErrMsg with error message text stored in memory ** obtained from [sqlite3_malloc()]. The calling function ** should free this memory by calling [sqlite3_free()]. ** ** ^Extension loading must be enabled using ** [sqlite3_enable_load_extension()] prior to calling this API, ** otherwise an error will be returned. ** ** See also the [load_extension() SQL function]. */ SQLITE_API int sqlite3_load_extension( sqlite3 *db, /* Load the extension into this database connection */ const char *zFile, /* Name of the shared library containing extension */ const char *zProc, /* Entry point. Derived from zFile if 0 */ char **pzErrMsg /* Put error message here if not 0 */ ); /* ** CAPI3REF: Enable Or Disable Extension Loading ** ** ^So as not to open security holes in older applications that are ** unprepared to deal with extension loading, and as a means of disabling ** extension loading while evaluating user-entered SQL, the following API ** is provided to turn the [sqlite3_load_extension()] mechanism on and off. ** ** ^Extension loading is off by default. See ticket #1863. ** ^Call the sqlite3_enable_load_extension() routine with onoff==1 ** to turn extension loading on and call it with onoff==0 to turn ** it back off again. */ SQLITE_API int sqlite3_enable_load_extension(sqlite3 *db, int onoff); /* ** CAPI3REF: Automatically Load Statically Linked Extensions ** ** ^This interface causes the xEntryPoint() function to be invoked for ** each new [database connection] that is created. The idea here is that ** xEntryPoint() is the entry point for a statically linked SQLite extension ** that is to be automatically loaded into all new database connections. ** ** ^(Even though the function prototype shows that xEntryPoint() takes ** no arguments and returns void, SQLite invokes xEntryPoint() with three ** arguments and expects and integer result as if the signature of the ** entry point where as follows: ** **
    **    int xEntryPoint(
    **      sqlite3 *db,
    **      const char **pzErrMsg,
    **      const struct sqlite3_api_routines *pThunk
    **    );
    ** 
    )^ ** ** If the xEntryPoint routine encounters an error, it should make *pzErrMsg ** point to an appropriate error message (obtained from [sqlite3_mprintf()]) ** and return an appropriate [error code]. ^SQLite ensures that *pzErrMsg ** is NULL before calling the xEntryPoint(). ^SQLite will invoke ** [sqlite3_free()] on *pzErrMsg after xEntryPoint() returns. ^If any ** xEntryPoint() returns an error, the [sqlite3_open()], [sqlite3_open16()], ** or [sqlite3_open_v2()] call that provoked the xEntryPoint() will fail. ** ** ^Calling sqlite3_auto_extension(X) with an entry point X that is already ** on the list of automatic extensions is a harmless no-op. ^No entry point ** will be called more than once for each database connection that is opened. ** ** See also: [sqlite3_reset_auto_extension()]. */ SQLITE_API int sqlite3_auto_extension(void (*xEntryPoint)(void)); /* ** CAPI3REF: Reset Automatic Extension Loading ** ** ^This interface disables all automatic extensions previously ** registered using [sqlite3_auto_extension()]. */ SQLITE_API void sqlite3_reset_auto_extension(void); /* ** The interface to the virtual-table mechanism is currently considered ** to be experimental. The interface might change in incompatible ways. ** If this is a problem for you, do not use the interface at this time. ** ** When the virtual-table mechanism stabilizes, we will declare the ** interface fixed, support it indefinitely, and remove this comment. */ /* ** Structures used by the virtual table interface */ typedef struct sqlite3_vtab sqlite3_vtab; typedef struct sqlite3_index_info sqlite3_index_info; typedef struct sqlite3_vtab_cursor sqlite3_vtab_cursor; typedef struct sqlite3_module sqlite3_module; /* ** CAPI3REF: Virtual Table Object ** KEYWORDS: sqlite3_module {virtual table module} ** ** This structure, sometimes called a "virtual table module", ** defines the implementation of a [virtual tables]. ** This structure consists mostly of methods for the module. ** ** ^A virtual table module is created by filling in a persistent ** instance of this structure and passing a pointer to that instance ** to [sqlite3_create_module()] or [sqlite3_create_module_v2()]. ** ^The registration remains valid until it is replaced by a different ** module or until the [database connection] closes. The content ** of this structure must not change while it is registered with ** any database connection. */ struct sqlite3_module { int iVersion; int (*xCreate)(sqlite3*, void *pAux, int argc, const char *const*argv, sqlite3_vtab **ppVTab, char**); int (*xConnect)(sqlite3*, void *pAux, int argc, const char *const*argv, sqlite3_vtab **ppVTab, char**); int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*); int (*xDisconnect)(sqlite3_vtab *pVTab); int (*xDestroy)(sqlite3_vtab *pVTab); int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor); int (*xClose)(sqlite3_vtab_cursor*); int (*xFilter)(sqlite3_vtab_cursor*, int idxNum, const char *idxStr, int argc, sqlite3_value **argv); int (*xNext)(sqlite3_vtab_cursor*); int (*xEof)(sqlite3_vtab_cursor*); int (*xColumn)(sqlite3_vtab_cursor*, sqlite3_context*, int); int (*xRowid)(sqlite3_vtab_cursor*, sqlite3_int64 *pRowid); int (*xUpdate)(sqlite3_vtab *, int, sqlite3_value **, sqlite3_int64 *); int (*xBegin)(sqlite3_vtab *pVTab); int (*xSync)(sqlite3_vtab *pVTab); int (*xCommit)(sqlite3_vtab *pVTab); int (*xRollback)(sqlite3_vtab *pVTab); int (*xFindFunction)(sqlite3_vtab *pVtab, int nArg, const char *zName, void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), void **ppArg); int (*xRename)(sqlite3_vtab *pVtab, const char *zNew); }; /* ** CAPI3REF: Virtual Table Indexing Information ** KEYWORDS: sqlite3_index_info ** ** The sqlite3_index_info structure and its substructures is used as part ** of the [virtual table] interface to ** pass information into and receive the reply from the [xBestIndex] ** method of a [virtual table module]. The fields under **Inputs** are the ** inputs to xBestIndex and are read-only. xBestIndex inserts its ** results into the **Outputs** fields. ** ** ^(The aConstraint[] array records WHERE clause constraints of the form: ** **
    column OP expr
    ** ** where OP is =, <, <=, >, or >=.)^ ^(The particular operator is ** stored in aConstraint[].op using one of the ** [SQLITE_INDEX_CONSTRAINT_EQ | SQLITE_INDEX_CONSTRAINT_ values].)^ ** ^(The index of the column is stored in ** aConstraint[].iColumn.)^ ^(aConstraint[].usable is TRUE if the ** expr on the right-hand side can be evaluated (and thus the constraint ** is usable) and false if it cannot.)^ ** ** ^The optimizer automatically inverts terms of the form "expr OP column" ** and makes other simplifications to the WHERE clause in an attempt to ** get as many WHERE clause terms into the form shown above as possible. ** ^The aConstraint[] array only reports WHERE clause terms that are ** relevant to the particular virtual table being queried. ** ** ^Information about the ORDER BY clause is stored in aOrderBy[]. ** ^Each term of aOrderBy records a column of the ORDER BY clause. ** ** The [xBestIndex] method must fill aConstraintUsage[] with information ** about what parameters to pass to xFilter. ^If argvIndex>0 then ** the right-hand side of the corresponding aConstraint[] is evaluated ** and becomes the argvIndex-th entry in argv. ^(If aConstraintUsage[].omit ** is true, then the constraint is assumed to be fully handled by the ** virtual table and is not checked again by SQLite.)^ ** ** ^The idxNum and idxPtr values are recorded and passed into the ** [xFilter] method. ** ^[sqlite3_free()] is used to free idxPtr if and only if ** needToFreeIdxPtr is true. ** ** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in ** the correct order to satisfy the ORDER BY clause so that no separate ** sorting step is required. ** ** ^The estimatedCost value is an estimate of the cost of doing the ** particular lookup. A full scan of a table with N entries should have ** a cost of N. A binary search of a table of N entries should have a ** cost of approximately log(N). */ struct sqlite3_index_info { /* Inputs */ int nConstraint; /* Number of entries in aConstraint */ struct sqlite3_index_constraint { int iColumn; /* Column on left-hand side of constraint */ unsigned char op; /* Constraint operator */ unsigned char usable; /* True if this constraint is usable */ int iTermOffset; /* Used internally - xBestIndex should ignore */ } *aConstraint; /* Table of WHERE clause constraints */ int nOrderBy; /* Number of terms in the ORDER BY clause */ struct sqlite3_index_orderby { int iColumn; /* Column number */ unsigned char desc; /* True for DESC. False for ASC. */ } *aOrderBy; /* The ORDER BY clause */ /* Outputs */ struct sqlite3_index_constraint_usage { int argvIndex; /* if >0, constraint is part of argv to xFilter */ unsigned char omit; /* Do not code a test for this constraint */ } *aConstraintUsage; int idxNum; /* Number used to identify the index */ char *idxStr; /* String, possibly obtained from sqlite3_malloc */ int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ int orderByConsumed; /* True if output is already ordered */ double estimatedCost; /* Estimated cost of using this index */ }; /* ** CAPI3REF: Virtual Table Constraint Operator Codes ** ** These macros defined the allowed values for the ** [sqlite3_index_info].aConstraint[].op field. Each value represents ** an operator that is part of a constraint term in the wHERE clause of ** a query that uses a [virtual table]. */ #define SQLITE_INDEX_CONSTRAINT_EQ 2 #define SQLITE_INDEX_CONSTRAINT_GT 4 #define SQLITE_INDEX_CONSTRAINT_LE 8 #define SQLITE_INDEX_CONSTRAINT_LT 16 #define SQLITE_INDEX_CONSTRAINT_GE 32 #define SQLITE_INDEX_CONSTRAINT_MATCH 64 /* ** CAPI3REF: Register A Virtual Table Implementation ** ** ^These routines are used to register a new [virtual table module] name. ** ^Module names must be registered before ** creating a new [virtual table] using the module and before using a ** preexisting [virtual table] for the module. ** ** ^The module name is registered on the [database connection] specified ** by the first parameter. ^The name of the module is given by the ** second parameter. ^The third parameter is a pointer to ** the implementation of the [virtual table module]. ^The fourth ** parameter is an arbitrary client data pointer that is passed through ** into the [xCreate] and [xConnect] methods of the virtual table module ** when a new virtual table is be being created or reinitialized. ** ** ^The sqlite3_create_module_v2() interface has a fifth parameter which ** is a pointer to a destructor for the pClientData. ^SQLite will ** invoke the destructor function (if it is not NULL) when SQLite ** no longer needs the pClientData pointer. ^The destructor will also ** be invoked if the call to sqlite3_create_module_v2() fails. ** ^The sqlite3_create_module() ** interface is equivalent to sqlite3_create_module_v2() with a NULL ** destructor. */ SQLITE_API int sqlite3_create_module( sqlite3 *db, /* SQLite connection to register module with */ const char *zName, /* Name of the module */ const sqlite3_module *p, /* Methods for the module */ void *pClientData /* Client data for xCreate/xConnect */ ); SQLITE_API int sqlite3_create_module_v2( sqlite3 *db, /* SQLite connection to register module with */ const char *zName, /* Name of the module */ const sqlite3_module *p, /* Methods for the module */ void *pClientData, /* Client data for xCreate/xConnect */ void(*xDestroy)(void*) /* Module destructor function */ ); /* ** CAPI3REF: Virtual Table Instance Object ** KEYWORDS: sqlite3_vtab ** ** Every [virtual table module] implementation uses a subclass ** of this object to describe a particular instance ** of the [virtual table]. Each subclass will ** be tailored to the specific needs of the module implementation. ** The purpose of this superclass is to define certain fields that are ** common to all module implementations. ** ** ^Virtual tables methods can set an error message by assigning a ** string obtained from [sqlite3_mprintf()] to zErrMsg. The method should ** take care that any prior string is freed by a call to [sqlite3_free()] ** prior to assigning a new string to zErrMsg. ^After the error message ** is delivered up to the client application, the string will be automatically ** freed by sqlite3_free() and the zErrMsg field will be zeroed. */ struct sqlite3_vtab { const sqlite3_module *pModule; /* The module for this virtual table */ int nRef; /* NO LONGER USED */ char *zErrMsg; /* Error message from sqlite3_mprintf() */ /* Virtual table implementations will typically add additional fields */ }; /* ** CAPI3REF: Virtual Table Cursor Object ** KEYWORDS: sqlite3_vtab_cursor {virtual table cursor} ** ** Every [virtual table module] implementation uses a subclass of the ** following structure to describe cursors that point into the ** [virtual table] and are used ** to loop through the virtual table. Cursors are created using the ** [sqlite3_module.xOpen | xOpen] method of the module and are destroyed ** by the [sqlite3_module.xClose | xClose] method. Cursors are used ** by the [xFilter], [xNext], [xEof], [xColumn], and [xRowid] methods ** of the module. Each module implementation will define ** the content of a cursor structure to suit its own needs. ** ** This superclass exists in order to define fields of the cursor that ** are common to all implementations. */ struct sqlite3_vtab_cursor { sqlite3_vtab *pVtab; /* Virtual table of this cursor */ /* Virtual table implementations will typically add additional fields */ }; /* ** CAPI3REF: Declare The Schema Of A Virtual Table ** ** ^The [xCreate] and [xConnect] methods of a ** [virtual table module] call this interface ** to declare the format (the names and datatypes of the columns) of ** the virtual tables they implement. */ SQLITE_API int sqlite3_declare_vtab(sqlite3*, const char *zSQL); /* ** CAPI3REF: Overload A Function For A Virtual Table ** ** ^(Virtual tables can provide alternative implementations of functions ** using the [xFindFunction] method of the [virtual table module]. ** But global versions of those functions ** must exist in order to be overloaded.)^ ** ** ^(This API makes sure a global version of a function with a particular ** name and number of parameters exists. If no such function exists ** before this API is called, a new function is created.)^ ^The implementation ** of the new function always causes an exception to be thrown. So ** the new function is not good for anything by itself. Its only ** purpose is to be a placeholder function that can be overloaded ** by a [virtual table]. */ SQLITE_API int sqlite3_overload_function(sqlite3*, const char *zFuncName, int nArg); /* ** The interface to the virtual-table mechanism defined above (back up ** to a comment remarkably similar to this one) is currently considered ** to be experimental. The interface might change in incompatible ways. ** If this is a problem for you, do not use the interface at this time. ** ** When the virtual-table mechanism stabilizes, we will declare the ** interface fixed, support it indefinitely, and remove this comment. */ /* ** CAPI3REF: A Handle To An Open BLOB ** KEYWORDS: {BLOB handle} {BLOB handles} ** ** An instance of this object represents an open BLOB on which ** [sqlite3_blob_open | incremental BLOB I/O] can be performed. ** ^Objects of this type are created by [sqlite3_blob_open()] ** and destroyed by [sqlite3_blob_close()]. ** ^The [sqlite3_blob_read()] and [sqlite3_blob_write()] interfaces ** can be used to read or write small subsections of the BLOB. ** ^The [sqlite3_blob_bytes()] interface returns the size of the BLOB in bytes. */ typedef struct sqlite3_blob sqlite3_blob; /* ** CAPI3REF: Open A BLOB For Incremental I/O ** ** ^(This interfaces opens a [BLOB handle | handle] to the BLOB located ** in row iRow, column zColumn, table zTable in database zDb; ** in other words, the same BLOB that would be selected by: ** **
    **     SELECT zColumn FROM zDb.zTable WHERE [rowid] = iRow;
    ** 
    )^ ** ** ^If the flags parameter is non-zero, then the BLOB is opened for read ** and write access. ^If it is zero, the BLOB is opened for read access. ** ^It is not possible to open a column that is part of an index or primary ** key for writing. ^If [foreign key constraints] are enabled, it is ** not possible to open a column that is part of a [child key] for writing. ** ** ^Note that the database name is not the filename that contains ** the database but rather the symbolic name of the database that ** appears after the AS keyword when the database is connected using [ATTACH]. ** ^For the main database file, the database name is "main". ** ^For TEMP tables, the database name is "temp". ** ** ^(On success, [SQLITE_OK] is returned and the new [BLOB handle] is written ** to *ppBlob. Otherwise an [error code] is returned and *ppBlob is set ** to be a null pointer.)^ ** ^This function sets the [database connection] error code and message ** accessible via [sqlite3_errcode()] and [sqlite3_errmsg()] and related ** functions. ^Note that the *ppBlob variable is always initialized in a ** way that makes it safe to invoke [sqlite3_blob_close()] on *ppBlob ** regardless of the success or failure of this routine. ** ** ^(If the row that a BLOB handle points to is modified by an ** [UPDATE], [DELETE], or by [ON CONFLICT] side-effects ** then the BLOB handle is marked as "expired". ** This is true if any column of the row is changed, even a column ** other than the one the BLOB handle is open on.)^ ** ^Calls to [sqlite3_blob_read()] and [sqlite3_blob_write()] for ** an expired BLOB handle fail with a return code of [SQLITE_ABORT]. ** ^(Changes written into a BLOB prior to the BLOB expiring are not ** rolled back by the expiration of the BLOB. Such changes will eventually ** commit if the transaction continues to completion.)^ ** ** ^Use the [sqlite3_blob_bytes()] interface to determine the size of ** the opened blob. ^The size of a blob may not be changed by this ** interface. Use the [UPDATE] SQL command to change the size of a ** blob. ** ** ^The [sqlite3_bind_zeroblob()] and [sqlite3_result_zeroblob()] interfaces ** and the built-in [zeroblob] SQL function can be used, if desired, ** to create an empty, zero-filled blob in which to read or write using ** this interface. ** ** To avoid a resource leak, every open [BLOB handle] should eventually ** be released by a call to [sqlite3_blob_close()]. */ SQLITE_API int sqlite3_blob_open( sqlite3*, const char *zDb, const char *zTable, const char *zColumn, sqlite3_int64 iRow, int flags, sqlite3_blob **ppBlob ); /* ** CAPI3REF: Move a BLOB Handle to a New Row ** ** ^This function is used to move an existing blob handle so that it points ** to a different row of the same database table. ^The new row is identified ** by the rowid value passed as the second argument. Only the row can be ** changed. ^The database, table and column on which the blob handle is open ** remain the same. Moving an existing blob handle to a new row can be ** faster than closing the existing handle and opening a new one. ** ** ^(The new row must meet the same criteria as for [sqlite3_blob_open()] - ** it must exist and there must be either a blob or text value stored in ** the nominated column.)^ ^If the new row is not present in the table, or if ** it does not contain a blob or text value, or if another error occurs, an ** SQLite error code is returned and the blob handle is considered aborted. ** ^All subsequent calls to [sqlite3_blob_read()], [sqlite3_blob_write()] or ** [sqlite3_blob_reopen()] on an aborted blob handle immediately return ** SQLITE_ABORT. ^Calling [sqlite3_blob_bytes()] on an aborted blob handle ** always returns zero. ** ** ^This function sets the database handle error code and message. */ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_blob_reopen(sqlite3_blob *, sqlite3_int64); /* ** CAPI3REF: Close A BLOB Handle ** ** ^Closes an open [BLOB handle]. ** ** ^Closing a BLOB shall cause the current transaction to commit ** if there are no other BLOBs, no pending prepared statements, and the ** database connection is in [autocommit mode]. ** ^If any writes were made to the BLOB, they might be held in cache ** until the close operation if they will fit. ** ** ^(Closing the BLOB often forces the changes ** out to disk and so if any I/O errors occur, they will likely occur ** at the time when the BLOB is closed. Any errors that occur during ** closing are reported as a non-zero return value.)^ ** ** ^(The BLOB is closed unconditionally. Even if this routine returns ** an error code, the BLOB is still closed.)^ ** ** ^Calling this routine with a null pointer (such as would be returned ** by a failed call to [sqlite3_blob_open()]) is a harmless no-op. */ SQLITE_API int sqlite3_blob_close(sqlite3_blob *); /* ** CAPI3REF: Return The Size Of An Open BLOB ** ** ^Returns the size in bytes of the BLOB accessible via the ** successfully opened [BLOB handle] in its only argument. ^The ** incremental blob I/O routines can only read or overwriting existing ** blob content; they cannot change the size of a blob. ** ** This routine only works on a [BLOB handle] which has been created ** by a prior successful call to [sqlite3_blob_open()] and which has not ** been closed by [sqlite3_blob_close()]. Passing any other pointer in ** to this routine results in undefined and probably undesirable behavior. */ SQLITE_API int sqlite3_blob_bytes(sqlite3_blob *); /* ** CAPI3REF: Read Data From A BLOB Incrementally ** ** ^(This function is used to read data from an open [BLOB handle] into a ** caller-supplied buffer. N bytes of data are copied into buffer Z ** from the open BLOB, starting at offset iOffset.)^ ** ** ^If offset iOffset is less than N bytes from the end of the BLOB, ** [SQLITE_ERROR] is returned and no data is read. ^If N or iOffset is ** less than zero, [SQLITE_ERROR] is returned and no data is read. ** ^The size of the blob (and hence the maximum value of N+iOffset) ** can be determined using the [sqlite3_blob_bytes()] interface. ** ** ^An attempt to read from an expired [BLOB handle] fails with an ** error code of [SQLITE_ABORT]. ** ** ^(On success, sqlite3_blob_read() returns SQLITE_OK. ** Otherwise, an [error code] or an [extended error code] is returned.)^ ** ** This routine only works on a [BLOB handle] which has been created ** by a prior successful call to [sqlite3_blob_open()] and which has not ** been closed by [sqlite3_blob_close()]. Passing any other pointer in ** to this routine results in undefined and probably undesirable behavior. ** ** See also: [sqlite3_blob_write()]. */ SQLITE_API int sqlite3_blob_read(sqlite3_blob *, void *Z, int N, int iOffset); /* ** CAPI3REF: Write Data Into A BLOB Incrementally ** ** ^This function is used to write data into an open [BLOB handle] from a ** caller-supplied buffer. ^N bytes of data are copied from the buffer Z ** into the open BLOB, starting at offset iOffset. ** ** ^If the [BLOB handle] passed as the first argument was not opened for ** writing (the flags parameter to [sqlite3_blob_open()] was zero), ** this function returns [SQLITE_READONLY]. ** ** ^This function may only modify the contents of the BLOB; it is ** not possible to increase the size of a BLOB using this API. ** ^If offset iOffset is less than N bytes from the end of the BLOB, ** [SQLITE_ERROR] is returned and no data is written. ^If N is ** less than zero [SQLITE_ERROR] is returned and no data is written. ** The size of the BLOB (and hence the maximum value of N+iOffset) ** can be determined using the [sqlite3_blob_bytes()] interface. ** ** ^An attempt to write to an expired [BLOB handle] fails with an ** error code of [SQLITE_ABORT]. ^Writes to the BLOB that occurred ** before the [BLOB handle] expired are not rolled back by the ** expiration of the handle, though of course those changes might ** have been overwritten by the statement that expired the BLOB handle ** or by other independent statements. ** ** ^(On success, sqlite3_blob_write() returns SQLITE_OK. ** Otherwise, an [error code] or an [extended error code] is returned.)^ ** ** This routine only works on a [BLOB handle] which has been created ** by a prior successful call to [sqlite3_blob_open()] and which has not ** been closed by [sqlite3_blob_close()]. Passing any other pointer in ** to this routine results in undefined and probably undesirable behavior. ** ** See also: [sqlite3_blob_read()]. */ SQLITE_API int sqlite3_blob_write(sqlite3_blob *, const void *z, int n, int iOffset); /* ** CAPI3REF: Virtual File System Objects ** ** A virtual filesystem (VFS) is an [sqlite3_vfs] object ** that SQLite uses to interact ** with the underlying operating system. Most SQLite builds come with a ** single default VFS that is appropriate for the host computer. ** New VFSes can be registered and existing VFSes can be unregistered. ** The following interfaces are provided. ** ** ^The sqlite3_vfs_find() interface returns a pointer to a VFS given its name. ** ^Names are case sensitive. ** ^Names are zero-terminated UTF-8 strings. ** ^If there is no match, a NULL pointer is returned. ** ^If zVfsName is NULL then the default VFS is returned. ** ** ^New VFSes are registered with sqlite3_vfs_register(). ** ^Each new VFS becomes the default VFS if the makeDflt flag is set. ** ^The same VFS can be registered multiple times without injury. ** ^To make an existing VFS into the default VFS, register it again ** with the makeDflt flag set. If two different VFSes with the ** same name are registered, the behavior is undefined. If a ** VFS is registered with a name that is NULL or an empty string, ** then the behavior is undefined. ** ** ^Unregister a VFS with the sqlite3_vfs_unregister() interface. ** ^(If the default VFS is unregistered, another VFS is chosen as ** the default. The choice for the new VFS is arbitrary.)^ */ SQLITE_API sqlite3_vfs *sqlite3_vfs_find(const char *zVfsName); SQLITE_API int sqlite3_vfs_register(sqlite3_vfs*, int makeDflt); SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs*); /* ** CAPI3REF: Mutexes ** ** The SQLite core uses these routines for thread ** synchronization. Though they are intended for internal ** use by SQLite, code that links against SQLite is ** permitted to use any of these routines. ** ** The SQLite source code contains multiple implementations ** of these mutex routines. An appropriate implementation ** is selected automatically at compile-time. ^(The following ** implementations are available in the SQLite core: ** **
      **
    • SQLITE_MUTEX_OS2 **
    • SQLITE_MUTEX_PTHREAD **
    • SQLITE_MUTEX_W32 **
    • SQLITE_MUTEX_NOOP **
    )^ ** ** ^The SQLITE_MUTEX_NOOP implementation is a set of routines ** that does no real locking and is appropriate for use in ** a single-threaded application. ^The SQLITE_MUTEX_OS2, ** SQLITE_MUTEX_PTHREAD, and SQLITE_MUTEX_W32 implementations ** are appropriate for use on OS/2, Unix, and Windows. ** ** ^(If SQLite is compiled with the SQLITE_MUTEX_APPDEF preprocessor ** macro defined (with "-DSQLITE_MUTEX_APPDEF=1"), then no mutex ** implementation is included with the library. In this case the ** application must supply a custom mutex implementation using the ** [SQLITE_CONFIG_MUTEX] option of the sqlite3_config() function ** before calling sqlite3_initialize() or any other public sqlite3_ ** function that calls sqlite3_initialize().)^ ** ** ^The sqlite3_mutex_alloc() routine allocates a new ** mutex and returns a pointer to it. ^If it returns NULL ** that means that a mutex could not be allocated. ^SQLite ** will unwind its stack and return an error. ^(The argument ** to sqlite3_mutex_alloc() is one of these integer constants: ** **
      **
    • SQLITE_MUTEX_FAST **
    • SQLITE_MUTEX_RECURSIVE **
    • SQLITE_MUTEX_STATIC_MASTER **
    • SQLITE_MUTEX_STATIC_MEM **
    • SQLITE_MUTEX_STATIC_MEM2 **
    • SQLITE_MUTEX_STATIC_PRNG **
    • SQLITE_MUTEX_STATIC_LRU **
    • SQLITE_MUTEX_STATIC_LRU2 **
    )^ ** ** ^The first two constants (SQLITE_MUTEX_FAST and SQLITE_MUTEX_RECURSIVE) ** cause sqlite3_mutex_alloc() to create ** a new mutex. ^The new mutex is recursive when SQLITE_MUTEX_RECURSIVE ** is used but not necessarily so when SQLITE_MUTEX_FAST is used. ** The mutex implementation does not need to make a distinction ** between SQLITE_MUTEX_RECURSIVE and SQLITE_MUTEX_FAST if it does ** not want to. ^SQLite will only request a recursive mutex in ** cases where it really needs one. ^If a faster non-recursive mutex ** implementation is available on the host platform, the mutex subsystem ** might return such a mutex in response to SQLITE_MUTEX_FAST. ** ** ^The other allowed parameters to sqlite3_mutex_alloc() (anything other ** than SQLITE_MUTEX_FAST and SQLITE_MUTEX_RECURSIVE) each return ** a pointer to a static preexisting mutex. ^Six static mutexes are ** used by the current version of SQLite. Future versions of SQLite ** may add additional static mutexes. Static mutexes are for internal ** use by SQLite only. Applications that use SQLite mutexes should ** use only the dynamic mutexes returned by SQLITE_MUTEX_FAST or ** SQLITE_MUTEX_RECURSIVE. ** ** ^Note that if one of the dynamic mutex parameters (SQLITE_MUTEX_FAST ** or SQLITE_MUTEX_RECURSIVE) is used then sqlite3_mutex_alloc() ** returns a different mutex on every call. ^But for the static ** mutex types, the same mutex is returned on every call that has ** the same type number. ** ** ^The sqlite3_mutex_free() routine deallocates a previously ** allocated dynamic mutex. ^SQLite is careful to deallocate every ** dynamic mutex that it allocates. The dynamic mutexes must not be in ** use when they are deallocated. Attempting to deallocate a static ** mutex results in undefined behavior. ^SQLite never deallocates ** a static mutex. ** ** ^The sqlite3_mutex_enter() and sqlite3_mutex_try() routines attempt ** to enter a mutex. ^If another thread is already within the mutex, ** sqlite3_mutex_enter() will block and sqlite3_mutex_try() will return ** SQLITE_BUSY. ^The sqlite3_mutex_try() interface returns [SQLITE_OK] ** upon successful entry. ^(Mutexes created using ** SQLITE_MUTEX_RECURSIVE can be entered multiple times by the same thread. ** In such cases the, ** mutex must be exited an equal number of times before another thread ** can enter.)^ ^(If the same thread tries to enter any other ** kind of mutex more than once, the behavior is undefined. ** SQLite will never exhibit ** such behavior in its own use of mutexes.)^ ** ** ^(Some systems (for example, Windows 95) do not support the operation ** implemented by sqlite3_mutex_try(). On those systems, sqlite3_mutex_try() ** will always return SQLITE_BUSY. The SQLite core only ever uses ** sqlite3_mutex_try() as an optimization so this is acceptable behavior.)^ ** ** ^The sqlite3_mutex_leave() routine exits a mutex that was ** previously entered by the same thread. ^(The behavior ** is undefined if the mutex is not currently entered by the ** calling thread or is not currently allocated. SQLite will ** never do either.)^ ** ** ^If the argument to sqlite3_mutex_enter(), sqlite3_mutex_try(), or ** sqlite3_mutex_leave() is a NULL pointer, then all three routines ** behave as no-ops. ** ** See also: [sqlite3_mutex_held()] and [sqlite3_mutex_notheld()]. */ SQLITE_API sqlite3_mutex *sqlite3_mutex_alloc(int); SQLITE_API void sqlite3_mutex_free(sqlite3_mutex*); SQLITE_API void sqlite3_mutex_enter(sqlite3_mutex*); SQLITE_API int sqlite3_mutex_try(sqlite3_mutex*); SQLITE_API void sqlite3_mutex_leave(sqlite3_mutex*); /* ** CAPI3REF: Mutex Methods Object ** ** An instance of this structure defines the low-level routines ** used to allocate and use mutexes. ** ** Usually, the default mutex implementations provided by SQLite are ** sufficient, however the user has the option of substituting a custom ** implementation for specialized deployments or systems for which SQLite ** does not provide a suitable implementation. In this case, the user ** creates and populates an instance of this structure to pass ** to sqlite3_config() along with the [SQLITE_CONFIG_MUTEX] option. ** Additionally, an instance of this structure can be used as an ** output variable when querying the system for the current mutex ** implementation, using the [SQLITE_CONFIG_GETMUTEX] option. ** ** ^The xMutexInit method defined by this structure is invoked as ** part of system initialization by the sqlite3_initialize() function. ** ^The xMutexInit routine is called by SQLite exactly once for each ** effective call to [sqlite3_initialize()]. ** ** ^The xMutexEnd method defined by this structure is invoked as ** part of system shutdown by the sqlite3_shutdown() function. The ** implementation of this method is expected to release all outstanding ** resources obtained by the mutex methods implementation, especially ** those obtained by the xMutexInit method. ^The xMutexEnd() ** interface is invoked exactly once for each call to [sqlite3_shutdown()]. ** ** ^(The remaining seven methods defined by this structure (xMutexAlloc, ** xMutexFree, xMutexEnter, xMutexTry, xMutexLeave, xMutexHeld and ** xMutexNotheld) implement the following interfaces (respectively): ** **
      **
    • [sqlite3_mutex_alloc()]
    • **
    • [sqlite3_mutex_free()]
    • **
    • [sqlite3_mutex_enter()]
    • **
    • [sqlite3_mutex_try()]
    • **
    • [sqlite3_mutex_leave()]
    • **
    • [sqlite3_mutex_held()]
    • **
    • [sqlite3_mutex_notheld()]
    • **
    )^ ** ** The only difference is that the public sqlite3_XXX functions enumerated ** above silently ignore any invocations that pass a NULL pointer instead ** of a valid mutex handle. The implementations of the methods defined ** by this structure are not required to handle this case, the results ** of passing a NULL pointer instead of a valid mutex handle are undefined ** (i.e. it is acceptable to provide an implementation that segfaults if ** it is passed a NULL pointer). ** ** The xMutexInit() method must be threadsafe. ^It must be harmless to ** invoke xMutexInit() multiple times within the same process and without ** intervening calls to xMutexEnd(). Second and subsequent calls to ** xMutexInit() must be no-ops. ** ** ^xMutexInit() must not use SQLite memory allocation ([sqlite3_malloc()] ** and its associates). ^Similarly, xMutexAlloc() must not use SQLite memory ** allocation for a static mutex. ^However xMutexAlloc() may use SQLite ** memory allocation for a fast or recursive mutex. ** ** ^SQLite will invoke the xMutexEnd() method when [sqlite3_shutdown()] is ** called, but only if the prior call to xMutexInit returned SQLITE_OK. ** If xMutexInit fails in any way, it is expected to clean up after itself ** prior to returning. */ typedef struct sqlite3_mutex_methods sqlite3_mutex_methods; struct sqlite3_mutex_methods { int (*xMutexInit)(void); int (*xMutexEnd)(void); sqlite3_mutex *(*xMutexAlloc)(int); void (*xMutexFree)(sqlite3_mutex *); void (*xMutexEnter)(sqlite3_mutex *); int (*xMutexTry)(sqlite3_mutex *); void (*xMutexLeave)(sqlite3_mutex *); int (*xMutexHeld)(sqlite3_mutex *); int (*xMutexNotheld)(sqlite3_mutex *); }; /* ** CAPI3REF: Mutex Verification Routines ** ** The sqlite3_mutex_held() and sqlite3_mutex_notheld() routines ** are intended for use inside assert() statements. ^The SQLite core ** never uses these routines except inside an assert() and applications ** are advised to follow the lead of the core. ^The SQLite core only ** provides implementations for these routines when it is compiled ** with the SQLITE_DEBUG flag. ^External mutex implementations ** are only required to provide these routines if SQLITE_DEBUG is ** defined and if NDEBUG is not defined. ** ** ^These routines should return true if the mutex in their argument ** is held or not held, respectively, by the calling thread. ** ** ^The implementation is not required to provided versions of these ** routines that actually work. If the implementation does not provide working ** versions of these routines, it should at least provide stubs that always ** return true so that one does not get spurious assertion failures. ** ** ^If the argument to sqlite3_mutex_held() is a NULL pointer then ** the routine should return 1. This seems counter-intuitive since ** clearly the mutex cannot be held if it does not exist. But the ** the reason the mutex does not exist is because the build is not ** using mutexes. And we do not want the assert() containing the ** call to sqlite3_mutex_held() to fail, so a non-zero return is ** the appropriate thing to do. ^The sqlite3_mutex_notheld() ** interface should also return 1 when given a NULL pointer. */ #ifndef NDEBUG SQLITE_API int sqlite3_mutex_held(sqlite3_mutex*); SQLITE_API int sqlite3_mutex_notheld(sqlite3_mutex*); #endif /* ** CAPI3REF: Mutex Types ** ** The [sqlite3_mutex_alloc()] interface takes a single argument ** which is one of these integer constants. ** ** The set of static mutexes may change from one SQLite release to the ** next. Applications that override the built-in mutex logic must be ** prepared to accommodate additional static mutexes. */ #define SQLITE_MUTEX_FAST 0 #define SQLITE_MUTEX_RECURSIVE 1 #define SQLITE_MUTEX_STATIC_MASTER 2 #define SQLITE_MUTEX_STATIC_MEM 3 /* sqlite3_malloc() */ #define SQLITE_MUTEX_STATIC_MEM2 4 /* NOT USED */ #define SQLITE_MUTEX_STATIC_OPEN 4 /* sqlite3BtreeOpen() */ #define SQLITE_MUTEX_STATIC_PRNG 5 /* sqlite3_random() */ #define SQLITE_MUTEX_STATIC_LRU 6 /* lru page list */ #define SQLITE_MUTEX_STATIC_LRU2 7 /* NOT USED */ #define SQLITE_MUTEX_STATIC_PMEM 7 /* sqlite3PageMalloc() */ /* ** CAPI3REF: Retrieve the mutex for a database connection ** ** ^This interface returns a pointer the [sqlite3_mutex] object that ** serializes access to the [database connection] given in the argument ** when the [threading mode] is Serialized. ** ^If the [threading mode] is Single-thread or Multi-thread then this ** routine returns a NULL pointer. */ SQLITE_API sqlite3_mutex *sqlite3_db_mutex(sqlite3*); /* ** CAPI3REF: Low-Level Control Of Database Files ** ** ^The [sqlite3_file_control()] interface makes a direct call to the ** xFileControl method for the [sqlite3_io_methods] object associated ** with a particular database identified by the second argument. ^The ** name of the database is "main" for the main database or "temp" for the ** TEMP database, or the name that appears after the AS keyword for ** databases that are added using the [ATTACH] SQL command. ** ^A NULL pointer can be used in place of "main" to refer to the ** main database file. ** ^The third and fourth parameters to this routine ** are passed directly through to the second and third parameters of ** the xFileControl method. ^The return value of the xFileControl ** method becomes the return value of this routine. ** ** ^The SQLITE_FCNTL_FILE_POINTER value for the op parameter causes ** a pointer to the underlying [sqlite3_file] object to be written into ** the space pointed to by the 4th parameter. ^The SQLITE_FCNTL_FILE_POINTER ** case is a short-circuit path which does not actually invoke the ** underlying sqlite3_io_methods.xFileControl method. ** ** ^If the second parameter (zDbName) does not match the name of any ** open database file, then SQLITE_ERROR is returned. ^This error ** code is not remembered and will not be recalled by [sqlite3_errcode()] ** or [sqlite3_errmsg()]. The underlying xFileControl method might ** also return SQLITE_ERROR. There is no way to distinguish between ** an incorrect zDbName and an SQLITE_ERROR return from the underlying ** xFileControl method. ** ** See also: [SQLITE_FCNTL_LOCKSTATE] */ SQLITE_API int sqlite3_file_control(sqlite3*, const char *zDbName, int op, void*); /* ** CAPI3REF: Testing Interface ** ** ^The sqlite3_test_control() interface is used to read out internal ** state of SQLite and to inject faults into SQLite for testing ** purposes. ^The first parameter is an operation code that determines ** the number, meaning, and operation of all subsequent parameters. ** ** This interface is not for use by applications. It exists solely ** for verifying the correct operation of the SQLite library. Depending ** on how the SQLite library is compiled, this interface might not exist. ** ** The details of the operation codes, their meanings, the parameters ** they take, and what they do are all subject to change without notice. ** Unlike most of the SQLite API, this function is not guaranteed to ** operate consistently from one release to the next. */ SQLITE_API int sqlite3_test_control(int op, ...); /* ** CAPI3REF: Testing Interface Operation Codes ** ** These constants are the valid operation code parameters used ** as the first argument to [sqlite3_test_control()]. ** ** These parameters and their meanings are subject to change ** without notice. These values are for testing purposes only. ** Applications should not use any of these parameters or the ** [sqlite3_test_control()] interface. */ #define SQLITE_TESTCTRL_FIRST 5 #define SQLITE_TESTCTRL_PRNG_SAVE 5 #define SQLITE_TESTCTRL_PRNG_RESTORE 6 #define SQLITE_TESTCTRL_PRNG_RESET 7 #define SQLITE_TESTCTRL_BITVEC_TEST 8 #define SQLITE_TESTCTRL_FAULT_INSTALL 9 #define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS 10 #define SQLITE_TESTCTRL_PENDING_BYTE 11 #define SQLITE_TESTCTRL_ASSERT 12 #define SQLITE_TESTCTRL_ALWAYS 13 #define SQLITE_TESTCTRL_RESERVE 14 #define SQLITE_TESTCTRL_OPTIMIZATIONS 15 #define SQLITE_TESTCTRL_ISKEYWORD 16 #define SQLITE_TESTCTRL_PGHDRSZ 17 #define SQLITE_TESTCTRL_SCRATCHMALLOC 18 #define SQLITE_TESTCTRL_LAST 18 /* ** CAPI3REF: SQLite Runtime Status ** ** ^This interface is used to retrieve runtime status information ** about the performance of SQLite, and optionally to reset various ** highwater marks. ^The first argument is an integer code for ** the specific parameter to measure. ^(Recognized integer codes ** are of the form [SQLITE_STATUS_MEMORY_USED | SQLITE_STATUS_...].)^ ** ^The current value of the parameter is returned into *pCurrent. ** ^The highest recorded value is returned in *pHighwater. ^If the ** resetFlag is true, then the highest record value is reset after ** *pHighwater is written. ^(Some parameters do not record the highest ** value. For those parameters ** nothing is written into *pHighwater and the resetFlag is ignored.)^ ** ^(Other parameters record only the highwater mark and not the current ** value. For these latter parameters nothing is written into *pCurrent.)^ ** ** ^The sqlite3_status() routine returns SQLITE_OK on success and a ** non-zero [error code] on failure. ** ** This routine is threadsafe but is not atomic. This routine can be ** called while other threads are running the same or different SQLite ** interfaces. However the values returned in *pCurrent and ** *pHighwater reflect the status of SQLite at different points in time ** and it is possible that another thread might change the parameter ** in between the times when *pCurrent and *pHighwater are written. ** ** See also: [sqlite3_db_status()] */ SQLITE_API int sqlite3_status(int op, int *pCurrent, int *pHighwater, int resetFlag); /* ** CAPI3REF: Status Parameters ** ** These integer constants designate various run-time status parameters ** that can be returned by [sqlite3_status()]. ** **
    ** ^(
    SQLITE_STATUS_MEMORY_USED
    **
    This parameter is the current amount of memory checked out ** using [sqlite3_malloc()], either directly or indirectly. The ** figure includes calls made to [sqlite3_malloc()] by the application ** and internal memory usage by the SQLite library. Scratch memory ** controlled by [SQLITE_CONFIG_SCRATCH] and auxiliary page-cache ** memory controlled by [SQLITE_CONFIG_PAGECACHE] is not included in ** this parameter. The amount returned is the sum of the allocation ** sizes as reported by the xSize method in [sqlite3_mem_methods].
    )^ ** ** ^(
    SQLITE_STATUS_MALLOC_SIZE
    **
    This parameter records the largest memory allocation request ** handed to [sqlite3_malloc()] or [sqlite3_realloc()] (or their ** internal equivalents). Only the value returned in the ** *pHighwater parameter to [sqlite3_status()] is of interest. ** The value written into the *pCurrent parameter is undefined.
    )^ ** ** ^(
    SQLITE_STATUS_MALLOC_COUNT
    **
    This parameter records the number of separate memory allocations ** currently checked out.
    )^ ** ** ^(
    SQLITE_STATUS_PAGECACHE_USED
    **
    This parameter returns the number of pages used out of the ** [pagecache memory allocator] that was configured using ** [SQLITE_CONFIG_PAGECACHE]. The ** value returned is in pages, not in bytes.
    )^ ** ** ^(
    SQLITE_STATUS_PAGECACHE_OVERFLOW
    **
    This parameter returns the number of bytes of page cache ** allocation which could not be satisfied by the [SQLITE_CONFIG_PAGECACHE] ** buffer and where forced to overflow to [sqlite3_malloc()]. The ** returned value includes allocations that overflowed because they ** where too large (they were larger than the "sz" parameter to ** [SQLITE_CONFIG_PAGECACHE]) and allocations that overflowed because ** no space was left in the page cache.
    )^ ** ** ^(
    SQLITE_STATUS_PAGECACHE_SIZE
    **
    This parameter records the largest memory allocation request ** handed to [pagecache memory allocator]. Only the value returned in the ** *pHighwater parameter to [sqlite3_status()] is of interest. ** The value written into the *pCurrent parameter is undefined.
    )^ ** ** ^(
    SQLITE_STATUS_SCRATCH_USED
    **
    This parameter returns the number of allocations used out of the ** [scratch memory allocator] configured using ** [SQLITE_CONFIG_SCRATCH]. The value returned is in allocations, not ** in bytes. Since a single thread may only have one scratch allocation ** outstanding at time, this parameter also reports the number of threads ** using scratch memory at the same time.
    )^ ** ** ^(
    SQLITE_STATUS_SCRATCH_OVERFLOW
    **
    This parameter returns the number of bytes of scratch memory ** allocation which could not be satisfied by the [SQLITE_CONFIG_SCRATCH] ** buffer and where forced to overflow to [sqlite3_malloc()]. The values ** returned include overflows because the requested allocation was too ** larger (that is, because the requested allocation was larger than the ** "sz" parameter to [SQLITE_CONFIG_SCRATCH]) and because no scratch buffer ** slots were available. **
    )^ ** ** ^(
    SQLITE_STATUS_SCRATCH_SIZE
    **
    This parameter records the largest memory allocation request ** handed to [scratch memory allocator]. Only the value returned in the ** *pHighwater parameter to [sqlite3_status()] is of interest. ** The value written into the *pCurrent parameter is undefined.
    )^ ** ** ^(
    SQLITE_STATUS_PARSER_STACK
    **
    This parameter records the deepest parser stack. It is only ** meaningful if SQLite is compiled with [YYTRACKMAXSTACKDEPTH].
    )^ **
    ** ** New status parameters may be added from time to time. */ #define SQLITE_STATUS_MEMORY_USED 0 #define SQLITE_STATUS_PAGECACHE_USED 1 #define SQLITE_STATUS_PAGECACHE_OVERFLOW 2 #define SQLITE_STATUS_SCRATCH_USED 3 #define SQLITE_STATUS_SCRATCH_OVERFLOW 4 #define SQLITE_STATUS_MALLOC_SIZE 5 #define SQLITE_STATUS_PARSER_STACK 6 #define SQLITE_STATUS_PAGECACHE_SIZE 7 #define SQLITE_STATUS_SCRATCH_SIZE 8 #define SQLITE_STATUS_MALLOC_COUNT 9 /* ** CAPI3REF: Database Connection Status ** ** ^This interface is used to retrieve runtime status information ** about a single [database connection]. ^The first argument is the ** database connection object to be interrogated. ^The second argument ** is an integer constant, taken from the set of ** [SQLITE_DBSTATUS_LOOKASIDE_USED | SQLITE_DBSTATUS_*] macros, that ** determines the parameter to interrogate. The set of ** [SQLITE_DBSTATUS_LOOKASIDE_USED | SQLITE_DBSTATUS_*] macros is likely ** to grow in future releases of SQLite. ** ** ^The current value of the requested parameter is written into *pCur ** and the highest instantaneous value is written into *pHiwtr. ^If ** the resetFlg is true, then the highest instantaneous value is ** reset back down to the current value. ** ** ^The sqlite3_db_status() routine returns SQLITE_OK on success and a ** non-zero [error code] on failure. ** ** See also: [sqlite3_status()] and [sqlite3_stmt_status()]. */ SQLITE_API int sqlite3_db_status(sqlite3*, int op, int *pCur, int *pHiwtr, int resetFlg); /* ** CAPI3REF: Status Parameters for database connections ** ** These constants are the available integer "verbs" that can be passed as ** the second argument to the [sqlite3_db_status()] interface. ** ** New verbs may be added in future releases of SQLite. Existing verbs ** might be discontinued. Applications should check the return code from ** [sqlite3_db_status()] to make sure that the call worked. ** The [sqlite3_db_status()] interface will return a non-zero error code ** if a discontinued or unsupported verb is invoked. ** **
    ** ^(
    SQLITE_DBSTATUS_LOOKASIDE_USED
    **
    This parameter returns the number of lookaside memory slots currently ** checked out.
    )^ ** ** ^(
    SQLITE_DBSTATUS_LOOKASIDE_HIT
    **
    This parameter returns the number malloc attempts that were ** satisfied using lookaside memory. Only the high-water value is meaningful; ** the current value is always zero.)^ ** ** ^(
    SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE
    **
    This parameter returns the number malloc attempts that might have ** been satisfied using lookaside memory but failed due to the amount of ** memory requested being larger than the lookaside slot size. ** Only the high-water value is meaningful; ** the current value is always zero.)^ ** ** ^(
    SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL
    **
    This parameter returns the number malloc attempts that might have ** been satisfied using lookaside memory but failed due to all lookaside ** memory already being in use. ** Only the high-water value is meaningful; ** the current value is always zero.)^ ** ** ^(
    SQLITE_DBSTATUS_CACHE_USED
    **
    This parameter returns the approximate number of of bytes of heap ** memory used by all pager caches associated with the database connection.)^ ** ^The highwater mark associated with SQLITE_DBSTATUS_CACHE_USED is always 0. ** ** ^(
    SQLITE_DBSTATUS_SCHEMA_USED
    **
    This parameter returns the approximate number of of bytes of heap ** memory used to store the schema for all databases associated ** with the connection - main, temp, and any [ATTACH]-ed databases.)^ ** ^The full amount of memory used by the schemas is reported, even if the ** schema memory is shared with other database connections due to ** [shared cache mode] being enabled. ** ^The highwater mark associated with SQLITE_DBSTATUS_SCHEMA_USED is always 0. ** ** ^(
    SQLITE_DBSTATUS_STMT_USED
    **
    This parameter returns the approximate number of of bytes of heap ** and lookaside memory used by all prepared statements associated with ** the database connection.)^ ** ^The highwater mark associated with SQLITE_DBSTATUS_STMT_USED is always 0. **
    **
    */ #define SQLITE_DBSTATUS_LOOKASIDE_USED 0 #define SQLITE_DBSTATUS_CACHE_USED 1 #define SQLITE_DBSTATUS_SCHEMA_USED 2 #define SQLITE_DBSTATUS_STMT_USED 3 #define SQLITE_DBSTATUS_LOOKASIDE_HIT 4 #define SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE 5 #define SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL 6 #define SQLITE_DBSTATUS_MAX 6 /* Largest defined DBSTATUS */ /* ** CAPI3REF: Prepared Statement Status ** ** ^(Each prepared statement maintains various ** [SQLITE_STMTSTATUS_SORT | counters] that measure the number ** of times it has performed specific operations.)^ These counters can ** be used to monitor the performance characteristics of the prepared ** statements. For example, if the number of table steps greatly exceeds ** the number of table searches or result rows, that would tend to indicate ** that the prepared statement is using a full table scan rather than ** an index. ** ** ^(This interface is used to retrieve and reset counter values from ** a [prepared statement]. The first argument is the prepared statement ** object to be interrogated. The second argument ** is an integer code for a specific [SQLITE_STMTSTATUS_SORT | counter] ** to be interrogated.)^ ** ^The current value of the requested counter is returned. ** ^If the resetFlg is true, then the counter is reset to zero after this ** interface call returns. ** ** See also: [sqlite3_status()] and [sqlite3_db_status()]. */ SQLITE_API int sqlite3_stmt_status(sqlite3_stmt*, int op,int resetFlg); /* ** CAPI3REF: Status Parameters for prepared statements ** ** These preprocessor macros define integer codes that name counter ** values associated with the [sqlite3_stmt_status()] interface. ** The meanings of the various counters are as follows: ** **
    **
    SQLITE_STMTSTATUS_FULLSCAN_STEP
    **
    ^This is the number of times that SQLite has stepped forward in ** a table as part of a full table scan. Large numbers for this counter ** may indicate opportunities for performance improvement through ** careful use of indices.
    ** **
    SQLITE_STMTSTATUS_SORT
    **
    ^This is the number of sort operations that have occurred. ** A non-zero value in this counter may indicate an opportunity to ** improvement performance through careful use of indices.
    ** **
    SQLITE_STMTSTATUS_AUTOINDEX
    **
    ^This is the number of rows inserted into transient indices that ** were created automatically in order to help joins run faster. ** A non-zero value in this counter may indicate an opportunity to ** improvement performance by adding permanent indices that do not ** need to be reinitialized each time the statement is run.
    ** **
    */ #define SQLITE_STMTSTATUS_FULLSCAN_STEP 1 #define SQLITE_STMTSTATUS_SORT 2 #define SQLITE_STMTSTATUS_AUTOINDEX 3 /* ** CAPI3REF: Custom Page Cache Object ** ** The sqlite3_pcache type is opaque. It is implemented by ** the pluggable module. The SQLite core has no knowledge of ** its size or internal structure and never deals with the ** sqlite3_pcache object except by holding and passing pointers ** to the object. ** ** See [sqlite3_pcache_methods] for additional information. */ typedef struct sqlite3_pcache sqlite3_pcache; /* ** CAPI3REF: Application Defined Page Cache. ** KEYWORDS: {page cache} ** ** ^(The [sqlite3_config]([SQLITE_CONFIG_PCACHE], ...) interface can ** register an alternative page cache implementation by passing in an ** instance of the sqlite3_pcache_methods structure.)^ ** In many applications, most of the heap memory allocated by ** SQLite is used for the page cache. ** By implementing a ** custom page cache using this API, an application can better control ** the amount of memory consumed by SQLite, the way in which ** that memory is allocated and released, and the policies used to ** determine exactly which parts of a database file are cached and for ** how long. ** ** The alternative page cache mechanism is an ** extreme measure that is only needed by the most demanding applications. ** The built-in page cache is recommended for most uses. ** ** ^(The contents of the sqlite3_pcache_methods structure are copied to an ** internal buffer by SQLite within the call to [sqlite3_config]. Hence ** the application may discard the parameter after the call to ** [sqlite3_config()] returns.)^ ** ** ^(The xInit() method is called once for each effective ** call to [sqlite3_initialize()])^ ** (usually only once during the lifetime of the process). ^(The xInit() ** method is passed a copy of the sqlite3_pcache_methods.pArg value.)^ ** The intent of the xInit() method is to set up global data structures ** required by the custom page cache implementation. ** ^(If the xInit() method is NULL, then the ** built-in default page cache is used instead of the application defined ** page cache.)^ ** ** ^The xShutdown() method is called by [sqlite3_shutdown()]. ** It can be used to clean up ** any outstanding resources before process shutdown, if required. ** ^The xShutdown() method may be NULL. ** ** ^SQLite automatically serializes calls to the xInit method, ** so the xInit method need not be threadsafe. ^The ** xShutdown method is only called from [sqlite3_shutdown()] so it does ** not need to be threadsafe either. All other methods must be threadsafe ** in multithreaded applications. ** ** ^SQLite will never invoke xInit() more than once without an intervening ** call to xShutdown(). ** ** ^SQLite invokes the xCreate() method to construct a new cache instance. ** SQLite will typically create one cache instance for each open database file, ** though this is not guaranteed. ^The ** first parameter, szPage, is the size in bytes of the pages that must ** be allocated by the cache. ^szPage will not be a power of two. ^szPage ** will the page size of the database file that is to be cached plus an ** increment (here called "R") of less than 250. SQLite will use the ** extra R bytes on each page to store metadata about the underlying ** database page on disk. The value of R depends ** on the SQLite version, the target platform, and how SQLite was compiled. ** ^(R is constant for a particular build of SQLite. Except, there are two ** distinct values of R when SQLite is compiled with the proprietary ** ZIPVFS extension.)^ ^The second argument to ** xCreate(), bPurgeable, is true if the cache being created will ** be used to cache database pages of a file stored on disk, or ** false if it is used for an in-memory database. The cache implementation ** does not have to do anything special based with the value of bPurgeable; ** it is purely advisory. ^On a cache where bPurgeable is false, SQLite will ** never invoke xUnpin() except to deliberately delete a page. ** ^In other words, calls to xUnpin() on a cache with bPurgeable set to ** false will always have the "discard" flag set to true. ** ^Hence, a cache created with bPurgeable false will ** never contain any unpinned pages. ** ** ^(The xCachesize() method may be called at any time by SQLite to set the ** suggested maximum cache-size (number of pages stored by) the cache ** instance passed as the first argument. This is the value configured using ** the SQLite "[PRAGMA cache_size]" command.)^ As with the bPurgeable ** parameter, the implementation is not required to do anything with this ** value; it is advisory only. ** ** The xPagecount() method must return the number of pages currently ** stored in the cache, both pinned and unpinned. ** ** The xFetch() method locates a page in the cache and returns a pointer to ** the page, or a NULL pointer. ** A "page", in this context, means a buffer of szPage bytes aligned at an ** 8-byte boundary. The page to be fetched is determined by the key. ^The ** mimimum key value is 1. After it has been retrieved using xFetch, the page ** is considered to be "pinned". ** ** If the requested page is already in the page cache, then the page cache ** implementation must return a pointer to the page buffer with its content ** intact. If the requested page is not already in the cache, then the ** cache implementation should use the value of the createFlag ** parameter to help it determined what action to take: ** ** **
    createFlag Behaviour when page is not already in cache **
    0 Do not allocate a new page. Return NULL. **
    1 Allocate a new page if it easy and convenient to do so. ** Otherwise return NULL. **
    2 Make every effort to allocate a new page. Only return ** NULL if allocating a new page is effectively impossible. **
    ** ** ^(SQLite will normally invoke xFetch() with a createFlag of 0 or 1. SQLite ** will only use a createFlag of 2 after a prior call with a createFlag of 1 ** failed.)^ In between the to xFetch() calls, SQLite may ** attempt to unpin one or more cache pages by spilling the content of ** pinned pages to disk and synching the operating system disk cache. ** ** ^xUnpin() is called by SQLite with a pointer to a currently pinned page ** as its second argument. If the third parameter, discard, is non-zero, ** then the page must be evicted from the cache. ** ^If the discard parameter is ** zero, then the page may be discarded or retained at the discretion of ** page cache implementation. ^The page cache implementation ** may choose to evict unpinned pages at any time. ** ** The cache must not perform any reference counting. A single ** call to xUnpin() unpins the page regardless of the number of prior calls ** to xFetch(). ** ** The xRekey() method is used to change the key value associated with the ** page passed as the second argument. If the cache ** previously contains an entry associated with newKey, it must be ** discarded. ^Any prior cache entry associated with newKey is guaranteed not ** to be pinned. ** ** When SQLite calls the xTruncate() method, the cache must discard all ** existing cache entries with page numbers (keys) greater than or equal ** to the value of the iLimit parameter passed to xTruncate(). If any ** of these pages are pinned, they are implicitly unpinned, meaning that ** they can be safely discarded. ** ** ^The xDestroy() method is used to delete a cache allocated by xCreate(). ** All resources associated with the specified cache should be freed. ^After ** calling the xDestroy() method, SQLite considers the [sqlite3_pcache*] ** handle invalid, and will not use it with any other sqlite3_pcache_methods ** functions. */ typedef struct sqlite3_pcache_methods sqlite3_pcache_methods; struct sqlite3_pcache_methods { void *pArg; int (*xInit)(void*); void (*xShutdown)(void*); sqlite3_pcache *(*xCreate)(int szPage, int bPurgeable); void (*xCachesize)(sqlite3_pcache*, int nCachesize); int (*xPagecount)(sqlite3_pcache*); void *(*xFetch)(sqlite3_pcache*, unsigned key, int createFlag); void (*xUnpin)(sqlite3_pcache*, void*, int discard); void (*xRekey)(sqlite3_pcache*, void*, unsigned oldKey, unsigned newKey); void (*xTruncate)(sqlite3_pcache*, unsigned iLimit); void (*xDestroy)(sqlite3_pcache*); }; /* ** CAPI3REF: Online Backup Object ** ** The sqlite3_backup object records state information about an ongoing ** online backup operation. ^The sqlite3_backup object is created by ** a call to [sqlite3_backup_init()] and is destroyed by a call to ** [sqlite3_backup_finish()]. ** ** See Also: [Using the SQLite Online Backup API] */ typedef struct sqlite3_backup sqlite3_backup; /* ** CAPI3REF: Online Backup API. ** ** The backup API copies the content of one database into another. ** It is useful either for creating backups of databases or ** for copying in-memory databases to or from persistent files. ** ** See Also: [Using the SQLite Online Backup API] ** ** ^SQLite holds a write transaction open on the destination database file ** for the duration of the backup operation. ** ^The source database is read-locked only while it is being read; ** it is not locked continuously for the entire backup operation. ** ^Thus, the backup may be performed on a live source database without ** preventing other database connections from ** reading or writing to the source database while the backup is underway. ** ** ^(To perform a backup operation: **
      **
    1. sqlite3_backup_init() is called once to initialize the ** backup, **
    2. sqlite3_backup_step() is called one or more times to transfer ** the data between the two databases, and finally **
    3. sqlite3_backup_finish() is called to release all resources ** associated with the backup operation. **
    )^ ** There should be exactly one call to sqlite3_backup_finish() for each ** successful call to sqlite3_backup_init(). ** ** sqlite3_backup_init() ** ** ^The D and N arguments to sqlite3_backup_init(D,N,S,M) are the ** [database connection] associated with the destination database ** and the database name, respectively. ** ^The database name is "main" for the main database, "temp" for the ** temporary database, or the name specified after the AS keyword in ** an [ATTACH] statement for an attached database. ** ^The S and M arguments passed to ** sqlite3_backup_init(D,N,S,M) identify the [database connection] ** and database name of the source database, respectively. ** ^The source and destination [database connections] (parameters S and D) ** must be different or else sqlite3_backup_init(D,N,S,M) will fail with ** an error. ** ** ^If an error occurs within sqlite3_backup_init(D,N,S,M), then NULL is ** returned and an error code and error message are stored in the ** destination [database connection] D. ** ^The error code and message for the failed call to sqlite3_backup_init() ** can be retrieved using the [sqlite3_errcode()], [sqlite3_errmsg()], and/or ** [sqlite3_errmsg16()] functions. ** ^A successful call to sqlite3_backup_init() returns a pointer to an ** [sqlite3_backup] object. ** ^The [sqlite3_backup] object may be used with the sqlite3_backup_step() and ** sqlite3_backup_finish() functions to perform the specified backup ** operation. ** ** sqlite3_backup_step() ** ** ^Function sqlite3_backup_step(B,N) will copy up to N pages between ** the source and destination databases specified by [sqlite3_backup] object B. ** ^If N is negative, all remaining source pages are copied. ** ^If sqlite3_backup_step(B,N) successfully copies N pages and there ** are still more pages to be copied, then the function returns [SQLITE_OK]. ** ^If sqlite3_backup_step(B,N) successfully finishes copying all pages ** from source to destination, then it returns [SQLITE_DONE]. ** ^If an error occurs while running sqlite3_backup_step(B,N), ** then an [error code] is returned. ^As well as [SQLITE_OK] and ** [SQLITE_DONE], a call to sqlite3_backup_step() may return [SQLITE_READONLY], ** [SQLITE_NOMEM], [SQLITE_BUSY], [SQLITE_LOCKED], or an ** [SQLITE_IOERR_ACCESS | SQLITE_IOERR_XXX] extended error code. ** ** ^(The sqlite3_backup_step() might return [SQLITE_READONLY] if **
      **
    1. the destination database was opened read-only, or **
    2. the destination database is using write-ahead-log journaling ** and the destination and source page sizes differ, or **
    3. the destination database is an in-memory database and the ** destination and source page sizes differ. **
    )^ ** ** ^If sqlite3_backup_step() cannot obtain a required file-system lock, then ** the [sqlite3_busy_handler | busy-handler function] ** is invoked (if one is specified). ^If the ** busy-handler returns non-zero before the lock is available, then ** [SQLITE_BUSY] is returned to the caller. ^In this case the call to ** sqlite3_backup_step() can be retried later. ^If the source ** [database connection] ** is being used to write to the source database when sqlite3_backup_step() ** is called, then [SQLITE_LOCKED] is returned immediately. ^Again, in this ** case the call to sqlite3_backup_step() can be retried later on. ^(If ** [SQLITE_IOERR_ACCESS | SQLITE_IOERR_XXX], [SQLITE_NOMEM], or ** [SQLITE_READONLY] is returned, then ** there is no point in retrying the call to sqlite3_backup_step(). These ** errors are considered fatal.)^ The application must accept ** that the backup operation has failed and pass the backup operation handle ** to the sqlite3_backup_finish() to release associated resources. ** ** ^The first call to sqlite3_backup_step() obtains an exclusive lock ** on the destination file. ^The exclusive lock is not released until either ** sqlite3_backup_finish() is called or the backup operation is complete ** and sqlite3_backup_step() returns [SQLITE_DONE]. ^Every call to ** sqlite3_backup_step() obtains a [shared lock] on the source database that ** lasts for the duration of the sqlite3_backup_step() call. ** ^Because the source database is not locked between calls to ** sqlite3_backup_step(), the source database may be modified mid-way ** through the backup process. ^If the source database is modified by an ** external process or via a database connection other than the one being ** used by the backup operation, then the backup will be automatically ** restarted by the next call to sqlite3_backup_step(). ^If the source ** database is modified by the using the same database connection as is used ** by the backup operation, then the backup database is automatically ** updated at the same time. ** ** sqlite3_backup_finish() ** ** When sqlite3_backup_step() has returned [SQLITE_DONE], or when the ** application wishes to abandon the backup operation, the application ** should destroy the [sqlite3_backup] by passing it to sqlite3_backup_finish(). ** ^The sqlite3_backup_finish() interfaces releases all ** resources associated with the [sqlite3_backup] object. ** ^If sqlite3_backup_step() has not yet returned [SQLITE_DONE], then any ** active write-transaction on the destination database is rolled back. ** The [sqlite3_backup] object is invalid ** and may not be used following a call to sqlite3_backup_finish(). ** ** ^The value returned by sqlite3_backup_finish is [SQLITE_OK] if no ** sqlite3_backup_step() errors occurred, regardless or whether or not ** sqlite3_backup_step() completed. ** ^If an out-of-memory condition or IO error occurred during any prior ** sqlite3_backup_step() call on the same [sqlite3_backup] object, then ** sqlite3_backup_finish() returns the corresponding [error code]. ** ** ^A return of [SQLITE_BUSY] or [SQLITE_LOCKED] from sqlite3_backup_step() ** is not a permanent error and does not affect the return value of ** sqlite3_backup_finish(). ** ** sqlite3_backup_remaining(), sqlite3_backup_pagecount() ** ** ^Each call to sqlite3_backup_step() sets two values inside ** the [sqlite3_backup] object: the number of pages still to be backed ** up and the total number of pages in the source database file. ** The sqlite3_backup_remaining() and sqlite3_backup_pagecount() interfaces ** retrieve these two values, respectively. ** ** ^The values returned by these functions are only updated by ** sqlite3_backup_step(). ^If the source database is modified during a backup ** operation, then the values are not updated to account for any extra ** pages that need to be updated or the size of the source database file ** changing. ** ** Concurrent Usage of Database Handles ** ** ^The source [database connection] may be used by the application for other ** purposes while a backup operation is underway or being initialized. ** ^If SQLite is compiled and configured to support threadsafe database ** connections, then the source database connection may be used concurrently ** from within other threads. ** ** However, the application must guarantee that the destination ** [database connection] is not passed to any other API (by any thread) after ** sqlite3_backup_init() is called and before the corresponding call to ** sqlite3_backup_finish(). SQLite does not currently check to see ** if the application incorrectly accesses the destination [database connection] ** and so no error code is reported, but the operations may malfunction ** nevertheless. Use of the destination database connection while a ** backup is in progress might also also cause a mutex deadlock. ** ** If running in [shared cache mode], the application must ** guarantee that the shared cache used by the destination database ** is not accessed while the backup is running. In practice this means ** that the application must guarantee that the disk file being ** backed up to is not accessed by any connection within the process, ** not just the specific connection that was passed to sqlite3_backup_init(). ** ** The [sqlite3_backup] object itself is partially threadsafe. Multiple ** threads may safely make multiple concurrent calls to sqlite3_backup_step(). ** However, the sqlite3_backup_remaining() and sqlite3_backup_pagecount() ** APIs are not strictly speaking threadsafe. If they are invoked at the ** same time as another thread is invoking sqlite3_backup_step() it is ** possible that they return invalid values. */ SQLITE_API sqlite3_backup *sqlite3_backup_init( sqlite3 *pDest, /* Destination database handle */ const char *zDestName, /* Destination database name */ sqlite3 *pSource, /* Source database handle */ const char *zSourceName /* Source database name */ ); SQLITE_API int sqlite3_backup_step(sqlite3_backup *p, int nPage); SQLITE_API int sqlite3_backup_finish(sqlite3_backup *p); SQLITE_API int sqlite3_backup_remaining(sqlite3_backup *p); SQLITE_API int sqlite3_backup_pagecount(sqlite3_backup *p); /* ** CAPI3REF: Unlock Notification ** ** ^When running in shared-cache mode, a database operation may fail with ** an [SQLITE_LOCKED] error if the required locks on the shared-cache or ** individual tables within the shared-cache cannot be obtained. See ** [SQLite Shared-Cache Mode] for a description of shared-cache locking. ** ^This API may be used to register a callback that SQLite will invoke ** when the connection currently holding the required lock relinquishes it. ** ^This API is only available if the library was compiled with the ** [SQLITE_ENABLE_UNLOCK_NOTIFY] C-preprocessor symbol defined. ** ** See Also: [Using the SQLite Unlock Notification Feature]. ** ** ^Shared-cache locks are released when a database connection concludes ** its current transaction, either by committing it or rolling it back. ** ** ^When a connection (known as the blocked connection) fails to obtain a ** shared-cache lock and SQLITE_LOCKED is returned to the caller, the ** identity of the database connection (the blocking connection) that ** has locked the required resource is stored internally. ^After an ** application receives an SQLITE_LOCKED error, it may call the ** sqlite3_unlock_notify() method with the blocked connection handle as ** the first argument to register for a callback that will be invoked ** when the blocking connections current transaction is concluded. ^The ** callback is invoked from within the [sqlite3_step] or [sqlite3_close] ** call that concludes the blocking connections transaction. ** ** ^(If sqlite3_unlock_notify() is called in a multi-threaded application, ** there is a chance that the blocking connection will have already ** concluded its transaction by the time sqlite3_unlock_notify() is invoked. ** If this happens, then the specified callback is invoked immediately, ** from within the call to sqlite3_unlock_notify().)^ ** ** ^If the blocked connection is attempting to obtain a write-lock on a ** shared-cache table, and more than one other connection currently holds ** a read-lock on the same table, then SQLite arbitrarily selects one of ** the other connections to use as the blocking connection. ** ** ^(There may be at most one unlock-notify callback registered by a ** blocked connection. If sqlite3_unlock_notify() is called when the ** blocked connection already has a registered unlock-notify callback, ** then the new callback replaces the old.)^ ^If sqlite3_unlock_notify() is ** called with a NULL pointer as its second argument, then any existing ** unlock-notify callback is canceled. ^The blocked connections ** unlock-notify callback may also be canceled by closing the blocked ** connection using [sqlite3_close()]. ** ** The unlock-notify callback is not reentrant. If an application invokes ** any sqlite3_xxx API functions from within an unlock-notify callback, a ** crash or deadlock may be the result. ** ** ^Unless deadlock is detected (see below), sqlite3_unlock_notify() always ** returns SQLITE_OK. ** ** Callback Invocation Details ** ** When an unlock-notify callback is registered, the application provides a ** single void* pointer that is passed to the callback when it is invoked. ** However, the signature of the callback function allows SQLite to pass ** it an array of void* context pointers. The first argument passed to ** an unlock-notify callback is a pointer to an array of void* pointers, ** and the second is the number of entries in the array. ** ** When a blocking connections transaction is concluded, there may be ** more than one blocked connection that has registered for an unlock-notify ** callback. ^If two or more such blocked connections have specified the ** same callback function, then instead of invoking the callback function ** multiple times, it is invoked once with the set of void* context pointers ** specified by the blocked connections bundled together into an array. ** This gives the application an opportunity to prioritize any actions ** related to the set of unblocked database connections. ** ** Deadlock Detection ** ** Assuming that after registering for an unlock-notify callback a ** database waits for the callback to be issued before taking any further ** action (a reasonable assumption), then using this API may cause the ** application to deadlock. For example, if connection X is waiting for ** connection Y's transaction to be concluded, and similarly connection ** Y is waiting on connection X's transaction, then neither connection ** will proceed and the system may remain deadlocked indefinitely. ** ** To avoid this scenario, the sqlite3_unlock_notify() performs deadlock ** detection. ^If a given call to sqlite3_unlock_notify() would put the ** system in a deadlocked state, then SQLITE_LOCKED is returned and no ** unlock-notify callback is registered. The system is said to be in ** a deadlocked state if connection A has registered for an unlock-notify ** callback on the conclusion of connection B's transaction, and connection ** B has itself registered for an unlock-notify callback when connection ** A's transaction is concluded. ^Indirect deadlock is also detected, so ** the system is also considered to be deadlocked if connection B has ** registered for an unlock-notify callback on the conclusion of connection ** C's transaction, where connection C is waiting on connection A. ^Any ** number of levels of indirection are allowed. ** ** The "DROP TABLE" Exception ** ** When a call to [sqlite3_step()] returns SQLITE_LOCKED, it is almost ** always appropriate to call sqlite3_unlock_notify(). There is however, ** one exception. When executing a "DROP TABLE" or "DROP INDEX" statement, ** SQLite checks if there are any currently executing SELECT statements ** that belong to the same connection. If there are, SQLITE_LOCKED is ** returned. In this case there is no "blocking connection", so invoking ** sqlite3_unlock_notify() results in the unlock-notify callback being ** invoked immediately. If the application then re-attempts the "DROP TABLE" ** or "DROP INDEX" query, an infinite loop might be the result. ** ** One way around this problem is to check the extended error code returned ** by an sqlite3_step() call. ^(If there is a blocking connection, then the ** extended error code is set to SQLITE_LOCKED_SHAREDCACHE. Otherwise, in ** the special "DROP TABLE/INDEX" case, the extended error code is just ** SQLITE_LOCKED.)^ */ SQLITE_API int sqlite3_unlock_notify( sqlite3 *pBlocked, /* Waiting connection */ void (*xNotify)(void **apArg, int nArg), /* Callback function to invoke */ void *pNotifyArg /* Argument to pass to xNotify */ ); /* ** CAPI3REF: String Comparison ** ** ^The [sqlite3_strnicmp()] API allows applications and extensions to ** compare the contents of two buffers containing UTF-8 strings in a ** case-independent fashion, using the same definition of case independence ** that SQLite uses internally when comparing identifiers. */ SQLITE_API int sqlite3_strnicmp(const char *, const char *, int); /* ** CAPI3REF: Error Logging Interface ** ** ^The [sqlite3_log()] interface writes a message into the error log ** established by the [SQLITE_CONFIG_LOG] option to [sqlite3_config()]. ** ^If logging is enabled, the zFormat string and subsequent arguments are ** used with [sqlite3_snprintf()] to generate the final output string. ** ** The sqlite3_log() interface is intended for use by extensions such as ** virtual tables, collating functions, and SQL functions. While there is ** nothing to prevent an application from calling sqlite3_log(), doing so ** is considered bad form. ** ** The zFormat string must not be NULL. ** ** To avoid deadlocks and other threading problems, the sqlite3_log() routine ** will not use dynamically allocated memory. The log message is stored in ** a fixed-length buffer on the stack. If the log message is longer than ** a few hundred characters, it will be truncated to the length of the ** buffer. */ SQLITE_API void sqlite3_log(int iErrCode, const char *zFormat, ...); /* ** CAPI3REF: Write-Ahead Log Commit Hook ** ** ^The [sqlite3_wal_hook()] function is used to register a callback that ** will be invoked each time a database connection commits data to a ** [write-ahead log] (i.e. whenever a transaction is committed in ** [journal_mode | journal_mode=WAL mode]). ** ** ^The callback is invoked by SQLite after the commit has taken place and ** the associated write-lock on the database released, so the implementation ** may read, write or [checkpoint] the database as required. ** ** ^The first parameter passed to the callback function when it is invoked ** is a copy of the third parameter passed to sqlite3_wal_hook() when ** registering the callback. ^The second is a copy of the database handle. ** ^The third parameter is the name of the database that was written to - ** either "main" or the name of an [ATTACH]-ed database. ^The fourth parameter ** is the number of pages currently in the write-ahead log file, ** including those that were just committed. ** ** The callback function should normally return [SQLITE_OK]. ^If an error ** code is returned, that error will propagate back up through the ** SQLite code base to cause the statement that provoked the callback ** to report an error, though the commit will have still occurred. If the ** callback returns [SQLITE_ROW] or [SQLITE_DONE], or if it returns a value ** that does not correspond to any valid SQLite error code, the results ** are undefined. ** ** A single database handle may have at most a single write-ahead log callback ** registered at one time. ^Calling [sqlite3_wal_hook()] replaces any ** previously registered write-ahead log callback. ^Note that the ** [sqlite3_wal_autocheckpoint()] interface and the ** [wal_autocheckpoint pragma] both invoke [sqlite3_wal_hook()] and will ** those overwrite any prior [sqlite3_wal_hook()] settings. */ SQLITE_API void *sqlite3_wal_hook( sqlite3*, int(*)(void *,sqlite3*,const char*,int), void* ); /* ** CAPI3REF: Configure an auto-checkpoint ** ** ^The [sqlite3_wal_autocheckpoint(D,N)] is a wrapper around ** [sqlite3_wal_hook()] that causes any database on [database connection] D ** to automatically [checkpoint] ** after committing a transaction if there are N or ** more frames in the [write-ahead log] file. ^Passing zero or ** a negative value as the nFrame parameter disables automatic ** checkpoints entirely. ** ** ^The callback registered by this function replaces any existing callback ** registered using [sqlite3_wal_hook()]. ^Likewise, registering a callback ** using [sqlite3_wal_hook()] disables the automatic checkpoint mechanism ** configured by this function. ** ** ^The [wal_autocheckpoint pragma] can be used to invoke this interface ** from SQL. ** ** ^Every new [database connection] defaults to having the auto-checkpoint ** enabled with a threshold of 1000 or [SQLITE_DEFAULT_WAL_AUTOCHECKPOINT] ** pages. The use of this interface ** is only necessary if the default setting is found to be suboptimal ** for a particular application. */ SQLITE_API int sqlite3_wal_autocheckpoint(sqlite3 *db, int N); /* ** CAPI3REF: Checkpoint a database ** ** ^The [sqlite3_wal_checkpoint(D,X)] interface causes database named X ** on [database connection] D to be [checkpointed]. ^If X is NULL or an ** empty string, then a checkpoint is run on all databases of ** connection D. ^If the database connection D is not in ** [WAL | write-ahead log mode] then this interface is a harmless no-op. ** ** ^The [wal_checkpoint pragma] can be used to invoke this interface ** from SQL. ^The [sqlite3_wal_autocheckpoint()] interface and the ** [wal_autocheckpoint pragma] can be used to cause this interface to be ** run whenever the WAL reaches a certain size threshold. ** ** See also: [sqlite3_wal_checkpoint_v2()] */ SQLITE_API int sqlite3_wal_checkpoint(sqlite3 *db, const char *zDb); /* ** CAPI3REF: Checkpoint a database ** ** Run a checkpoint operation on WAL database zDb attached to database ** handle db. The specific operation is determined by the value of the ** eMode parameter: ** **
    **
    SQLITE_CHECKPOINT_PASSIVE
    ** Checkpoint as many frames as possible without waiting for any database ** readers or writers to finish. Sync the db file if all frames in the log ** are checkpointed. This mode is the same as calling ** sqlite3_wal_checkpoint(). The busy-handler callback is never invoked. ** **
    SQLITE_CHECKPOINT_FULL
    ** This mode blocks (calls the busy-handler callback) until there is no ** database writer and all readers are reading from the most recent database ** snapshot. It then checkpoints all frames in the log file and syncs the ** database file. This call blocks database writers while it is running, ** but not database readers. ** **
    SQLITE_CHECKPOINT_RESTART
    ** This mode works the same way as SQLITE_CHECKPOINT_FULL, except after ** checkpointing the log file it blocks (calls the busy-handler callback) ** until all readers are reading from the database file only. This ensures ** that the next client to write to the database file restarts the log file ** from the beginning. This call blocks database writers while it is running, ** but not database readers. **
    ** ** If pnLog is not NULL, then *pnLog is set to the total number of frames in ** the log file before returning. If pnCkpt is not NULL, then *pnCkpt is set to ** the total number of checkpointed frames (including any that were already ** checkpointed when this function is called). *pnLog and *pnCkpt may be ** populated even if sqlite3_wal_checkpoint_v2() returns other than SQLITE_OK. ** If no values are available because of an error, they are both set to -1 ** before returning to communicate this to the caller. ** ** All calls obtain an exclusive "checkpoint" lock on the database file. If ** any other process is running a checkpoint operation at the same time, the ** lock cannot be obtained and SQLITE_BUSY is returned. Even if there is a ** busy-handler configured, it will not be invoked in this case. ** ** The SQLITE_CHECKPOINT_FULL and RESTART modes also obtain the exclusive ** "writer" lock on the database file. If the writer lock cannot be obtained ** immediately, and a busy-handler is configured, it is invoked and the writer ** lock retried until either the busy-handler returns 0 or the lock is ** successfully obtained. The busy-handler is also invoked while waiting for ** database readers as described above. If the busy-handler returns 0 before ** the writer lock is obtained or while waiting for database readers, the ** checkpoint operation proceeds from that point in the same way as ** SQLITE_CHECKPOINT_PASSIVE - checkpointing as many frames as possible ** without blocking any further. SQLITE_BUSY is returned in this case. ** ** If parameter zDb is NULL or points to a zero length string, then the ** specified operation is attempted on all WAL databases. In this case the ** values written to output parameters *pnLog and *pnCkpt are undefined. If ** an SQLITE_BUSY error is encountered when processing one or more of the ** attached WAL databases, the operation is still attempted on any remaining ** attached databases and SQLITE_BUSY is returned to the caller. If any other ** error occurs while processing an attached database, processing is abandoned ** and the error code returned to the caller immediately. If no error ** (SQLITE_BUSY or otherwise) is encountered while processing the attached ** databases, SQLITE_OK is returned. ** ** If database zDb is the name of an attached database that is not in WAL ** mode, SQLITE_OK is returned and both *pnLog and *pnCkpt set to -1. If ** zDb is not NULL (or a zero length string) and is not the name of any ** attached database, SQLITE_ERROR is returned to the caller. */ SQLITE_API int sqlite3_wal_checkpoint_v2( sqlite3 *db, /* Database handle */ const char *zDb, /* Name of attached database (or NULL) */ int eMode, /* SQLITE_CHECKPOINT_* value */ int *pnLog, /* OUT: Size of WAL log in frames */ int *pnCkpt /* OUT: Total number of frames checkpointed */ ); /* ** CAPI3REF: Checkpoint operation parameters ** ** These constants can be used as the 3rd parameter to ** [sqlite3_wal_checkpoint_v2()]. See the [sqlite3_wal_checkpoint_v2()] ** documentation for additional information about the meaning and use of ** each of these values. */ #define SQLITE_CHECKPOINT_PASSIVE 0 #define SQLITE_CHECKPOINT_FULL 1 #define SQLITE_CHECKPOINT_RESTART 2 /* ** Undo the hack that converts floating point types to integer for ** builds on processors without floating point support. */ #ifdef SQLITE_OMIT_FLOATING_POINT # undef double #endif #if 0 } /* End of the 'extern "C"' block */ #endif #endif /* ** 2010 August 30 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* */ #ifndef _SQLITE3RTREE_H_ #define _SQLITE3RTREE_H_ #if 0 extern "C" { #endif typedef struct sqlite3_rtree_geometry sqlite3_rtree_geometry; /* ** Register a geometry callback named zGeom that can be used as part of an ** R-Tree geometry query as follows: ** ** SELECT ... FROM WHERE MATCH $zGeom(... params ...) */ SQLITE_API int sqlite3_rtree_geometry_callback( sqlite3 *db, const char *zGeom, int (*xGeom)(sqlite3_rtree_geometry *, int nCoord, double *aCoord, int *pRes), void *pContext ); /* ** A pointer to a structure of the following type is passed as the first ** argument to callbacks registered using rtree_geometry_callback(). */ struct sqlite3_rtree_geometry { void *pContext; /* Copy of pContext passed to s_r_g_c() */ int nParam; /* Size of array aParam[] */ double *aParam; /* Parameters passed to SQL geom function */ void *pUser; /* Callback implementation user data */ void (*xDelUser)(void *); /* Called by SQLite to clean up pUser */ }; #if 0 } /* end of the 'extern "C"' block */ #endif #endif /* ifndef _SQLITE3RTREE_H_ */ /************** End of sqlite3.h *********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include hash.h in the middle of sqliteInt.h ******************/ /************** Begin file hash.h ********************************************/ /* ** 2001 September 22 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This is the header file for the generic hash-table implemenation ** used in SQLite. */ #ifndef _SQLITE_HASH_H_ #define _SQLITE_HASH_H_ /* Forward declarations of structures. */ typedef struct Hash Hash; typedef struct HashElem HashElem; /* A complete hash table is an instance of the following structure. ** The internals of this structure are intended to be opaque -- client ** code should not attempt to access or modify the fields of this structure ** directly. Change this structure only by using the routines below. ** However, some of the "procedures" and "functions" for modifying and ** accessing this structure are really macros, so we can't really make ** this structure opaque. ** ** All elements of the hash table are on a single doubly-linked list. ** Hash.first points to the head of this list. ** ** There are Hash.htsize buckets. Each bucket points to a spot in ** the global doubly-linked list. The contents of the bucket are the ** element pointed to plus the next _ht.count-1 elements in the list. ** ** Hash.htsize and Hash.ht may be zero. In that case lookup is done ** by a linear search of the global list. For small tables, the ** Hash.ht table is never allocated because if there are few elements ** in the table, it is faster to do a linear search than to manage ** the hash table. */ struct Hash { unsigned int htsize; /* Number of buckets in the hash table */ unsigned int count; /* Number of entries in this table */ HashElem *first; /* The first element of the array */ struct _ht { /* the hash table */ int count; /* Number of entries with this hash */ HashElem *chain; /* Pointer to first entry with this hash */ } *ht; }; /* Each element in the hash table is an instance of the following ** structure. All elements are stored on a single doubly-linked list. ** ** Again, this structure is intended to be opaque, but it can't really ** be opaque because it is used by macros. */ struct HashElem { HashElem *next, *prev; /* Next and previous elements in the table */ void *data; /* Data associated with this element */ const char *pKey; int nKey; /* Key associated with this element */ }; /* ** Access routines. To delete, insert a NULL pointer. */ SQLITE_PRIVATE void sqlite3HashInit(Hash*); SQLITE_PRIVATE void *sqlite3HashInsert(Hash*, const char *pKey, int nKey, void *pData); SQLITE_PRIVATE void *sqlite3HashFind(const Hash*, const char *pKey, int nKey); SQLITE_PRIVATE void sqlite3HashClear(Hash*); /* ** Macros for looping over all elements of a hash table. The idiom is ** like this: ** ** Hash h; ** HashElem *p; ** ... ** for(p=sqliteHashFirst(&h); p; p=sqliteHashNext(p)){ ** SomeStructure *pData = sqliteHashData(p); ** // do something with pData ** } */ #define sqliteHashFirst(H) ((H)->first) #define sqliteHashNext(E) ((E)->next) #define sqliteHashData(E) ((E)->data) /* #define sqliteHashKey(E) ((E)->pKey) // NOT USED */ /* #define sqliteHashKeysize(E) ((E)->nKey) // NOT USED */ /* ** Number of entries in a hash table */ /* #define sqliteHashCount(H) ((H)->count) // NOT USED */ #endif /* _SQLITE_HASH_H_ */ /************** End of hash.h ************************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include parse.h in the middle of sqliteInt.h *****************/ /************** Begin file parse.h *******************************************/ #define TK_SEMI 1 #define TK_EXPLAIN 2 #define TK_QUERY 3 #define TK_PLAN 4 #define TK_BEGIN 5 #define TK_TRANSACTION 6 #define TK_DEFERRED 7 #define TK_IMMEDIATE 8 #define TK_EXCLUSIVE 9 #define TK_COMMIT 10 #define TK_END 11 #define TK_ROLLBACK 12 #define TK_SAVEPOINT 13 #define TK_RELEASE 14 #define TK_TO 15 #define TK_TABLE 16 #define TK_CREATE 17 #define TK_IF 18 #define TK_NOT 19 #define TK_EXISTS 20 #define TK_TEMP 21 #define TK_LP 22 #define TK_RP 23 #define TK_AS 24 #define TK_COMMA 25 #define TK_ID 26 #define TK_INDEXED 27 #define TK_ABORT 28 #define TK_ACTION 29 #define TK_AFTER 30 #define TK_ANALYZE 31 #define TK_ASC 32 #define TK_ATTACH 33 #define TK_BEFORE 34 #define TK_BY 35 #define TK_CASCADE 36 #define TK_CAST 37 #define TK_COLUMNKW 38 #define TK_CONFLICT 39 #define TK_DATABASE 40 #define TK_DESC 41 #define TK_DETACH 42 #define TK_EACH 43 #define TK_FAIL 44 #define TK_FOR 45 #define TK_IGNORE 46 #define TK_INITIALLY 47 #define TK_INSTEAD 48 #define TK_LIKE_KW 49 #define TK_MATCH 50 #define TK_NO 51 #define TK_KEY 52 #define TK_OF 53 #define TK_OFFSET 54 #define TK_PRAGMA 55 #define TK_RAISE 56 #define TK_REPLACE 57 #define TK_RESTRICT 58 #define TK_ROW 59 #define TK_TRIGGER 60 #define TK_VACUUM 61 #define TK_VIEW 62 #define TK_VIRTUAL 63 #define TK_REINDEX 64 #define TK_RENAME 65 #define TK_CTIME_KW 66 #define TK_ANY 67 #define TK_OR 68 #define TK_AND 69 #define TK_IS 70 #define TK_BETWEEN 71 #define TK_IN 72 #define TK_ISNULL 73 #define TK_NOTNULL 74 #define TK_NE 75 #define TK_EQ 76 #define TK_GT 77 #define TK_LE 78 #define TK_LT 79 #define TK_GE 80 #define TK_ESCAPE 81 #define TK_BITAND 82 #define TK_BITOR 83 #define TK_LSHIFT 84 #define TK_RSHIFT 85 #define TK_PLUS 86 #define TK_MINUS 87 #define TK_STAR 88 #define TK_SLASH 89 #define TK_REM 90 #define TK_CONCAT 91 #define TK_COLLATE 92 #define TK_BITNOT 93 #define TK_STRING 94 #define TK_JOIN_KW 95 #define TK_CONSTRAINT 96 #define TK_DEFAULT 97 #define TK_NULL 98 #define TK_PRIMARY 99 #define TK_UNIQUE 100 #define TK_CHECK 101 #define TK_REFERENCES 102 #define TK_AUTOINCR 103 #define TK_ON 104 #define TK_INSERT 105 #define TK_DELETE 106 #define TK_UPDATE 107 #define TK_SET 108 #define TK_DEFERRABLE 109 #define TK_FOREIGN 110 #define TK_DROP 111 #define TK_UNION 112 #define TK_ALL 113 #define TK_EXCEPT 114 #define TK_INTERSECT 115 #define TK_SELECT 116 #define TK_DISTINCT 117 #define TK_DOT 118 #define TK_FROM 119 #define TK_JOIN 120 #define TK_USING 121 #define TK_ORDER 122 #define TK_GROUP 123 #define TK_HAVING 124 #define TK_LIMIT 125 #define TK_WHERE 126 #define TK_INTO 127 #define TK_VALUES 128 #define TK_INTEGER 129 #define TK_FLOAT 130 #define TK_BLOB 131 #define TK_REGISTER 132 #define TK_VARIABLE 133 #define TK_CASE 134 #define TK_WHEN 135 #define TK_THEN 136 #define TK_ELSE 137 #define TK_INDEX 138 #define TK_ALTER 139 #define TK_ADD 140 #define TK_TO_TEXT 141 #define TK_TO_BLOB 142 #define TK_TO_NUMERIC 143 #define TK_TO_INT 144 #define TK_TO_REAL 145 #define TK_ISNOT 146 #define TK_END_OF_FILE 147 #define TK_ILLEGAL 148 #define TK_SPACE 149 #define TK_UNCLOSED_STRING 150 #define TK_FUNCTION 151 #define TK_COLUMN 152 #define TK_AGG_FUNCTION 153 #define TK_AGG_COLUMN 154 #define TK_CONST_FUNC 155 #define TK_UMINUS 156 #define TK_UPLUS 157 /************** End of parse.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ #include #include #include #include #include /* ** If compiling for a processor that lacks floating point support, ** substitute integer for floating-point */ #ifdef SQLITE_OMIT_FLOATING_POINT # define double sqlite_int64 # define float sqlite_int64 # define LONGDOUBLE_TYPE sqlite_int64 # ifndef SQLITE_BIG_DBL # define SQLITE_BIG_DBL (((sqlite3_int64)1)<<50) # endif # define SQLITE_OMIT_DATETIME_FUNCS 1 # define SQLITE_OMIT_TRACE 1 # undef SQLITE_MIXED_ENDIAN_64BIT_FLOAT # undef SQLITE_HAVE_ISNAN #endif #ifndef SQLITE_BIG_DBL # define SQLITE_BIG_DBL (1e99) #endif /* ** OMIT_TEMPDB is set to 1 if SQLITE_OMIT_TEMPDB is defined, or 0 ** afterward. Having this macro allows us to cause the C compiler ** to omit code used by TEMP tables without messy #ifndef statements. */ #ifdef SQLITE_OMIT_TEMPDB #define OMIT_TEMPDB 1 #else #define OMIT_TEMPDB 0 #endif /* ** The "file format" number is an integer that is incremented whenever ** the VDBE-level file format changes. The following macros define the ** the default file format for new databases and the maximum file format ** that the library can read. */ #define SQLITE_MAX_FILE_FORMAT 4 #ifndef SQLITE_DEFAULT_FILE_FORMAT # define SQLITE_DEFAULT_FILE_FORMAT 1 #endif /* ** Determine whether triggers are recursive by default. This can be ** changed at run-time using a pragma. */ #ifndef SQLITE_DEFAULT_RECURSIVE_TRIGGERS # define SQLITE_DEFAULT_RECURSIVE_TRIGGERS 0 #endif /* ** Provide a default value for SQLITE_TEMP_STORE in case it is not specified ** on the command-line */ #ifndef SQLITE_TEMP_STORE # define SQLITE_TEMP_STORE 1 #endif /* ** GCC does not define the offsetof() macro so we'll have to do it ** ourselves. */ #ifndef offsetof #define offsetof(STRUCTURE,FIELD) ((int)((char*)&((STRUCTURE*)0)->FIELD)) #endif /* ** Check to see if this machine uses EBCDIC. (Yes, believe it or ** not, there are still machines out there that use EBCDIC.) */ #if 'A' == '\301' # define SQLITE_EBCDIC 1 #else # define SQLITE_ASCII 1 #endif /* ** Integers of known sizes. These typedefs might change for architectures ** where the sizes very. Preprocessor macros are available so that the ** types can be conveniently redefined at compile-type. Like this: ** ** cc '-DUINTPTR_TYPE=long long int' ... */ #ifndef UINT32_TYPE # ifdef HAVE_UINT32_T # define UINT32_TYPE uint32_t # else # define UINT32_TYPE unsigned int # endif #endif #ifndef UINT16_TYPE # ifdef HAVE_UINT16_T # define UINT16_TYPE uint16_t # else # define UINT16_TYPE unsigned short int # endif #endif #ifndef INT16_TYPE # ifdef HAVE_INT16_T # define INT16_TYPE int16_t # else # define INT16_TYPE short int # endif #endif #ifndef UINT8_TYPE # ifdef HAVE_UINT8_T # define UINT8_TYPE uint8_t # else # define UINT8_TYPE unsigned char # endif #endif #ifndef INT8_TYPE # ifdef HAVE_INT8_T # define INT8_TYPE int8_t # else # define INT8_TYPE signed char # endif #endif #ifndef LONGDOUBLE_TYPE # define LONGDOUBLE_TYPE long double #endif typedef sqlite_int64 i64; /* 8-byte signed integer */ typedef sqlite_uint64 u64; /* 8-byte unsigned integer */ typedef UINT32_TYPE u32; /* 4-byte unsigned integer */ typedef UINT16_TYPE u16; /* 2-byte unsigned integer */ typedef INT16_TYPE i16; /* 2-byte signed integer */ typedef UINT8_TYPE u8; /* 1-byte unsigned integer */ typedef INT8_TYPE i8; /* 1-byte signed integer */ /* ** SQLITE_MAX_U32 is a u64 constant that is the maximum u64 value ** that can be stored in a u32 without loss of data. The value ** is 0x00000000ffffffff. But because of quirks of some compilers, we ** have to specify the value in the less intuitive manner shown: */ #define SQLITE_MAX_U32 ((((u64)1)<<32)-1) /* ** Macros to determine whether the machine is big or little endian, ** evaluated at runtime. */ #ifdef SQLITE_AMALGAMATION SQLITE_PRIVATE const int sqlite3one = 1; #else SQLITE_PRIVATE const int sqlite3one; #endif #if defined(i386) || defined(__i386__) || defined(_M_IX86)\ || defined(__x86_64) || defined(__x86_64__) # define SQLITE_BIGENDIAN 0 # define SQLITE_LITTLEENDIAN 1 # define SQLITE_UTF16NATIVE SQLITE_UTF16LE #else # define SQLITE_BIGENDIAN (*(char *)(&sqlite3one)==0) # define SQLITE_LITTLEENDIAN (*(char *)(&sqlite3one)==1) # define SQLITE_UTF16NATIVE (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE) #endif /* ** Constants for the largest and smallest possible 64-bit signed integers. ** These macros are designed to work correctly on both 32-bit and 64-bit ** compilers. */ #define LARGEST_INT64 (0xffffffff|(((i64)0x7fffffff)<<32)) #define SMALLEST_INT64 (((i64)-1) - LARGEST_INT64) /* ** Round up a number to the next larger multiple of 8. This is used ** to force 8-byte alignment on 64-bit architectures. */ #define ROUND8(x) (((x)+7)&~7) /* ** Round down to the nearest multiple of 8 */ #define ROUNDDOWN8(x) ((x)&~7) /* ** Assert that the pointer X is aligned to an 8-byte boundary. This ** macro is used only within assert() to verify that the code gets ** all alignment restrictions correct. ** ** Except, if SQLITE_4_BYTE_ALIGNED_MALLOC is defined, then the ** underlying malloc() implemention might return us 4-byte aligned ** pointers. In that case, only verify 4-byte alignment. */ #ifdef SQLITE_4_BYTE_ALIGNED_MALLOC # define EIGHT_BYTE_ALIGNMENT(X) ((((char*)(X) - (char*)0)&3)==0) #else # define EIGHT_BYTE_ALIGNMENT(X) ((((char*)(X) - (char*)0)&7)==0) #endif /* ** An instance of the following structure is used to store the busy-handler ** callback for a given sqlite handle. ** ** The sqlite.busyHandler member of the sqlite struct contains the busy ** callback for the database handle. Each pager opened via the sqlite ** handle is passed a pointer to sqlite.busyHandler. The busy-handler ** callback is currently invoked only from within pager.c. */ typedef struct BusyHandler BusyHandler; struct BusyHandler { int (*xFunc)(void *,int); /* The busy callback */ void *pArg; /* First arg to busy callback */ int nBusy; /* Incremented with each busy call */ }; /* ** Name of the master database table. The master database table ** is a special table that holds the names and attributes of all ** user tables and indices. */ #define MASTER_NAME "sqlite_master" #define TEMP_MASTER_NAME "sqlite_temp_master" /* ** The root-page of the master database table. */ #define MASTER_ROOT 1 /* ** The name of the schema table. */ #define SCHEMA_TABLE(x) ((!OMIT_TEMPDB)&&(x==1)?TEMP_MASTER_NAME:MASTER_NAME) /* ** A convenience macro that returns the number of elements in ** an array. */ #define ArraySize(X) ((int)(sizeof(X)/sizeof(X[0]))) /* ** The following value as a destructor means to use sqlite3DbFree(). ** This is an internal extension to SQLITE_STATIC and SQLITE_TRANSIENT. */ #define SQLITE_DYNAMIC ((sqlite3_destructor_type)sqlite3DbFree) /* ** When SQLITE_OMIT_WSD is defined, it means that the target platform does ** not support Writable Static Data (WSD) such as global and static variables. ** All variables must either be on the stack or dynamically allocated from ** the heap. When WSD is unsupported, the variable declarations scattered ** throughout the SQLite code must become constants instead. The SQLITE_WSD ** macro is used for this purpose. And instead of referencing the variable ** directly, we use its constant as a key to lookup the run-time allocated ** buffer that holds real variable. The constant is also the initializer ** for the run-time allocated buffer. ** ** In the usual case where WSD is supported, the SQLITE_WSD and GLOBAL ** macros become no-ops and have zero performance impact. */ #ifdef SQLITE_OMIT_WSD #define SQLITE_WSD const #define GLOBAL(t,v) (*(t*)sqlite3_wsd_find((void*)&(v), sizeof(v))) #define sqlite3GlobalConfig GLOBAL(struct Sqlite3Config, sqlite3Config) SQLITE_API int sqlite3_wsd_init(int N, int J); SQLITE_API void *sqlite3_wsd_find(void *K, int L); #else #define SQLITE_WSD #define GLOBAL(t,v) v #define sqlite3GlobalConfig sqlite3Config #endif /* ** The following macros are used to suppress compiler warnings and to ** make it clear to human readers when a function parameter is deliberately ** left unused within the body of a function. This usually happens when ** a function is called via a function pointer. For example the ** implementation of an SQL aggregate step callback may not use the ** parameter indicating the number of arguments passed to the aggregate, ** if it knows that this is enforced elsewhere. ** ** When a function parameter is not used at all within the body of a function, ** it is generally named "NotUsed" or "NotUsed2" to make things even clearer. ** However, these macros may also be used to suppress warnings related to ** parameters that may or may not be used depending on compilation options. ** For example those parameters only used in assert() statements. In these ** cases the parameters are named as per the usual conventions. */ #define UNUSED_PARAMETER(x) (void)(x) #define UNUSED_PARAMETER2(x,y) UNUSED_PARAMETER(x),UNUSED_PARAMETER(y) /* ** Forward references to structures */ typedef struct AggInfo AggInfo; typedef struct AuthContext AuthContext; typedef struct AutoincInfo AutoincInfo; typedef struct Bitvec Bitvec; typedef struct CollSeq CollSeq; typedef struct Column Column; typedef struct Db Db; typedef struct Schema Schema; typedef struct Expr Expr; typedef struct ExprList ExprList; typedef struct ExprSpan ExprSpan; typedef struct FKey FKey; typedef struct FuncDestructor FuncDestructor; typedef struct FuncDef FuncDef; typedef struct FuncDefHash FuncDefHash; typedef struct IdList IdList; typedef struct Index Index; typedef struct IndexSample IndexSample; typedef struct KeyClass KeyClass; typedef struct KeyInfo KeyInfo; typedef struct Lookaside Lookaside; typedef struct LookasideSlot LookasideSlot; typedef struct Module Module; typedef struct NameContext NameContext; typedef struct Parse Parse; typedef struct RowSet RowSet; typedef struct Savepoint Savepoint; typedef struct Select Select; typedef struct SrcList SrcList; typedef struct StrAccum StrAccum; typedef struct Table Table; typedef struct TableLock TableLock; typedef struct Token Token; typedef struct Trigger Trigger; typedef struct TriggerPrg TriggerPrg; typedef struct TriggerStep TriggerStep; typedef struct UnpackedRecord UnpackedRecord; typedef struct VTable VTable; typedef struct Walker Walker; typedef struct WherePlan WherePlan; typedef struct WhereInfo WhereInfo; typedef struct WhereLevel WhereLevel; /* ** Defer sourcing vdbe.h and btree.h until after the "u8" and ** "BusyHandler" typedefs. vdbe.h also requires a few of the opaque ** pointer types (i.e. FuncDef) defined above. */ /************** Include btree.h in the middle of sqliteInt.h *****************/ /************** Begin file btree.h *******************************************/ /* ** 2001 September 15 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This header file defines the interface that the sqlite B-Tree file ** subsystem. See comments in the source code for a detailed description ** of what each interface routine does. */ #ifndef _BTREE_H_ #define _BTREE_H_ /* TODO: This definition is just included so other modules compile. It ** needs to be revisited. */ #define SQLITE_N_BTREE_META 10 /* ** If defined as non-zero, auto-vacuum is enabled by default. Otherwise ** it must be turned on for each database using "PRAGMA auto_vacuum = 1". */ #ifndef SQLITE_DEFAULT_AUTOVACUUM #define SQLITE_DEFAULT_AUTOVACUUM 0 #endif #define BTREE_AUTOVACUUM_NONE 0 /* Do not do auto-vacuum */ #define BTREE_AUTOVACUUM_FULL 1 /* Do full auto-vacuum */ #define BTREE_AUTOVACUUM_INCR 2 /* Incremental vacuum */ /* ** Forward declarations of structure */ typedef struct Btree Btree; typedef struct BtCursor BtCursor; typedef struct BtShared BtShared; SQLITE_PRIVATE int sqlite3BtreeOpen( const char *zFilename, /* Name of database file to open */ sqlite3 *db, /* Associated database connection */ Btree **ppBtree, /* Return open Btree* here */ int flags, /* Flags */ int vfsFlags /* Flags passed through to VFS open */ ); /* The flags parameter to sqlite3BtreeOpen can be the bitwise or of the ** following values. ** ** NOTE: These values must match the corresponding PAGER_ values in ** pager.h. */ #define BTREE_OMIT_JOURNAL 1 /* Do not create or use a rollback journal */ #define BTREE_NO_READLOCK 2 /* Omit readlocks on readonly files */ #define BTREE_MEMORY 4 /* This is an in-memory DB */ #define BTREE_SINGLE 8 /* The file contains at most 1 b-tree */ #define BTREE_UNORDERED 16 /* Use of a hash implementation is OK */ SQLITE_PRIVATE int sqlite3BtreeClose(Btree*); SQLITE_PRIVATE int sqlite3BtreeSetCacheSize(Btree*,int); SQLITE_PRIVATE int sqlite3BtreeSetSafetyLevel(Btree*,int,int,int); SQLITE_PRIVATE int sqlite3BtreeSyncDisabled(Btree*); SQLITE_PRIVATE int sqlite3BtreeSetPageSize(Btree *p, int nPagesize, int nReserve, int eFix); SQLITE_PRIVATE int sqlite3BtreeGetPageSize(Btree*); SQLITE_PRIVATE int sqlite3BtreeMaxPageCount(Btree*,int); SQLITE_PRIVATE u32 sqlite3BtreeLastPage(Btree*); SQLITE_PRIVATE int sqlite3BtreeSecureDelete(Btree*,int); SQLITE_PRIVATE int sqlite3BtreeGetReserve(Btree*); SQLITE_PRIVATE int sqlite3BtreeSetAutoVacuum(Btree *, int); SQLITE_PRIVATE int sqlite3BtreeGetAutoVacuum(Btree *); SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree*,int); SQLITE_PRIVATE int sqlite3BtreeCommitPhaseOne(Btree*, const char *zMaster); SQLITE_PRIVATE int sqlite3BtreeCommitPhaseTwo(Btree*, int); SQLITE_PRIVATE int sqlite3BtreeCommit(Btree*); SQLITE_PRIVATE int sqlite3BtreeRollback(Btree*); SQLITE_PRIVATE int sqlite3BtreeBeginStmt(Btree*,int); SQLITE_PRIVATE int sqlite3BtreeCreateTable(Btree*, int*, int flags); SQLITE_PRIVATE int sqlite3BtreeIsInTrans(Btree*); SQLITE_PRIVATE int sqlite3BtreeIsInReadTrans(Btree*); SQLITE_PRIVATE int sqlite3BtreeIsInBackup(Btree*); SQLITE_PRIVATE void *sqlite3BtreeSchema(Btree *, int, void(*)(void *)); SQLITE_PRIVATE int sqlite3BtreeSchemaLocked(Btree *pBtree); SQLITE_PRIVATE int sqlite3BtreeLockTable(Btree *pBtree, int iTab, u8 isWriteLock); SQLITE_PRIVATE int sqlite3BtreeSavepoint(Btree *, int, int); SQLITE_PRIVATE const char *sqlite3BtreeGetFilename(Btree *); SQLITE_PRIVATE const char *sqlite3BtreeGetJournalname(Btree *); SQLITE_PRIVATE int sqlite3BtreeCopyFile(Btree *, Btree *); SQLITE_PRIVATE int sqlite3BtreeIncrVacuum(Btree *); /* The flags parameter to sqlite3BtreeCreateTable can be the bitwise OR ** of the flags shown below. ** ** Every SQLite table must have either BTREE_INTKEY or BTREE_BLOBKEY set. ** With BTREE_INTKEY, the table key is a 64-bit integer and arbitrary data ** is stored in the leaves. (BTREE_INTKEY is used for SQL tables.) With ** BTREE_BLOBKEY, the key is an arbitrary BLOB and no content is stored ** anywhere - the key is the content. (BTREE_BLOBKEY is used for SQL ** indices.) */ #define BTREE_INTKEY 1 /* Table has only 64-bit signed integer keys */ #define BTREE_BLOBKEY 2 /* Table has keys only - no data */ SQLITE_PRIVATE int sqlite3BtreeDropTable(Btree*, int, int*); SQLITE_PRIVATE int sqlite3BtreeClearTable(Btree*, int, int*); SQLITE_PRIVATE void sqlite3BtreeTripAllCursors(Btree*, int); SQLITE_PRIVATE void sqlite3BtreeGetMeta(Btree *pBtree, int idx, u32 *pValue); SQLITE_PRIVATE int sqlite3BtreeUpdateMeta(Btree*, int idx, u32 value); /* ** The second parameter to sqlite3BtreeGetMeta or sqlite3BtreeUpdateMeta ** should be one of the following values. The integer values are assigned ** to constants so that the offset of the corresponding field in an ** SQLite database header may be found using the following formula: ** ** offset = 36 + (idx * 4) ** ** For example, the free-page-count field is located at byte offset 36 of ** the database file header. The incr-vacuum-flag field is located at ** byte offset 64 (== 36+4*7). */ #define BTREE_FREE_PAGE_COUNT 0 #define BTREE_SCHEMA_VERSION 1 #define BTREE_FILE_FORMAT 2 #define BTREE_DEFAULT_CACHE_SIZE 3 #define BTREE_LARGEST_ROOT_PAGE 4 #define BTREE_TEXT_ENCODING 5 #define BTREE_USER_VERSION 6 #define BTREE_INCR_VACUUM 7 SQLITE_PRIVATE int sqlite3BtreeCursor( Btree*, /* BTree containing table to open */ int iTable, /* Index of root page */ int wrFlag, /* 1 for writing. 0 for read-only */ struct KeyInfo*, /* First argument to compare function */ BtCursor *pCursor /* Space to write cursor structure */ ); SQLITE_PRIVATE int sqlite3BtreeCursorSize(void); SQLITE_PRIVATE void sqlite3BtreeCursorZero(BtCursor*); SQLITE_PRIVATE int sqlite3BtreeCloseCursor(BtCursor*); SQLITE_PRIVATE int sqlite3BtreeMovetoUnpacked( BtCursor*, UnpackedRecord *pUnKey, i64 intKey, int bias, int *pRes ); SQLITE_PRIVATE int sqlite3BtreeCursorHasMoved(BtCursor*, int*); SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor*); SQLITE_PRIVATE int sqlite3BtreeInsert(BtCursor*, const void *pKey, i64 nKey, const void *pData, int nData, int nZero, int bias, int seekResult); SQLITE_PRIVATE int sqlite3BtreeFirst(BtCursor*, int *pRes); SQLITE_PRIVATE int sqlite3BtreeLast(BtCursor*, int *pRes); SQLITE_PRIVATE int sqlite3BtreeNext(BtCursor*, int *pRes); SQLITE_PRIVATE int sqlite3BtreeEof(BtCursor*); SQLITE_PRIVATE int sqlite3BtreePrevious(BtCursor*, int *pRes); SQLITE_PRIVATE int sqlite3BtreeKeySize(BtCursor*, i64 *pSize); SQLITE_PRIVATE int sqlite3BtreeKey(BtCursor*, u32 offset, u32 amt, void*); SQLITE_PRIVATE const void *sqlite3BtreeKeyFetch(BtCursor*, int *pAmt); SQLITE_PRIVATE const void *sqlite3BtreeDataFetch(BtCursor*, int *pAmt); SQLITE_PRIVATE int sqlite3BtreeDataSize(BtCursor*, u32 *pSize); SQLITE_PRIVATE int sqlite3BtreeData(BtCursor*, u32 offset, u32 amt, void*); SQLITE_PRIVATE void sqlite3BtreeSetCachedRowid(BtCursor*, sqlite3_int64); SQLITE_PRIVATE sqlite3_int64 sqlite3BtreeGetCachedRowid(BtCursor*); SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck(Btree*, int *aRoot, int nRoot, int, int*); SQLITE_PRIVATE struct Pager *sqlite3BtreePager(Btree*); SQLITE_PRIVATE int sqlite3BtreePutData(BtCursor*, u32 offset, u32 amt, void*); SQLITE_PRIVATE void sqlite3BtreeCacheOverflow(BtCursor *); SQLITE_PRIVATE void sqlite3BtreeClearCursor(BtCursor *); SQLITE_PRIVATE int sqlite3BtreeSetVersion(Btree *pBt, int iVersion); #ifndef NDEBUG SQLITE_PRIVATE int sqlite3BtreeCursorIsValid(BtCursor*); #endif #ifndef SQLITE_OMIT_BTREECOUNT SQLITE_PRIVATE int sqlite3BtreeCount(BtCursor *, i64 *); #endif #ifdef SQLITE_TEST SQLITE_PRIVATE int sqlite3BtreeCursorInfo(BtCursor*, int*, int); SQLITE_PRIVATE void sqlite3BtreeCursorList(Btree*); #endif #ifndef SQLITE_OMIT_WAL SQLITE_PRIVATE int sqlite3BtreeCheckpoint(Btree*, int, int *, int *); #endif /* ** If we are not using shared cache, then there is no need to ** use mutexes to access the BtShared structures. So make the ** Enter and Leave procedures no-ops. */ #ifndef SQLITE_OMIT_SHARED_CACHE SQLITE_PRIVATE void sqlite3BtreeEnter(Btree*); SQLITE_PRIVATE void sqlite3BtreeEnterAll(sqlite3*); #else # define sqlite3BtreeEnter(X) # define sqlite3BtreeEnterAll(X) #endif #if !defined(SQLITE_OMIT_SHARED_CACHE) && SQLITE_THREADSAFE SQLITE_PRIVATE int sqlite3BtreeSharable(Btree*); SQLITE_PRIVATE void sqlite3BtreeLeave(Btree*); SQLITE_PRIVATE void sqlite3BtreeEnterCursor(BtCursor*); SQLITE_PRIVATE void sqlite3BtreeLeaveCursor(BtCursor*); SQLITE_PRIVATE void sqlite3BtreeLeaveAll(sqlite3*); #ifndef NDEBUG /* These routines are used inside assert() statements only. */ SQLITE_PRIVATE int sqlite3BtreeHoldsMutex(Btree*); SQLITE_PRIVATE int sqlite3BtreeHoldsAllMutexes(sqlite3*); SQLITE_PRIVATE int sqlite3SchemaMutexHeld(sqlite3*,int,Schema*); #endif #else # define sqlite3BtreeSharable(X) 0 # define sqlite3BtreeLeave(X) # define sqlite3BtreeEnterCursor(X) # define sqlite3BtreeLeaveCursor(X) # define sqlite3BtreeLeaveAll(X) # define sqlite3BtreeHoldsMutex(X) 1 # define sqlite3BtreeHoldsAllMutexes(X) 1 # define sqlite3SchemaMutexHeld(X,Y,Z) 1 #endif #endif /* _BTREE_H_ */ /************** End of btree.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include vdbe.h in the middle of sqliteInt.h ******************/ /************** Begin file vdbe.h ********************************************/ /* ** 2001 September 15 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** Header file for the Virtual DataBase Engine (VDBE) ** ** This header defines the interface to the virtual database engine ** or VDBE. The VDBE implements an abstract machine that runs a ** simple program to access and modify the underlying database. */ #ifndef _SQLITE_VDBE_H_ #define _SQLITE_VDBE_H_ /* ** A single VDBE is an opaque structure named "Vdbe". Only routines ** in the source file sqliteVdbe.c are allowed to see the insides ** of this structure. */ typedef struct Vdbe Vdbe; /* ** The names of the following types declared in vdbeInt.h are required ** for the VdbeOp definition. */ typedef struct VdbeFunc VdbeFunc; typedef struct Mem Mem; typedef struct SubProgram SubProgram; /* ** A single instruction of the virtual machine has an opcode ** and as many as three operands. The instruction is recorded ** as an instance of the following structure: */ struct VdbeOp { u8 opcode; /* What operation to perform */ signed char p4type; /* One of the P4_xxx constants for p4 */ u8 opflags; /* Mask of the OPFLG_* flags in opcodes.h */ u8 p5; /* Fifth parameter is an unsigned character */ int p1; /* First operand */ int p2; /* Second parameter (often the jump destination) */ int p3; /* The third parameter */ union { /* fourth parameter */ int i; /* Integer value if p4type==P4_INT32 */ void *p; /* Generic pointer */ char *z; /* Pointer to data for string (char array) types */ i64 *pI64; /* Used when p4type is P4_INT64 */ double *pReal; /* Used when p4type is P4_REAL */ FuncDef *pFunc; /* Used when p4type is P4_FUNCDEF */ VdbeFunc *pVdbeFunc; /* Used when p4type is P4_VDBEFUNC */ CollSeq *pColl; /* Used when p4type is P4_COLLSEQ */ Mem *pMem; /* Used when p4type is P4_MEM */ VTable *pVtab; /* Used when p4type is P4_VTAB */ KeyInfo *pKeyInfo; /* Used when p4type is P4_KEYINFO */ int *ai; /* Used when p4type is P4_INTARRAY */ SubProgram *pProgram; /* Used when p4type is P4_SUBPROGRAM */ } p4; #ifdef SQLITE_DEBUG char *zComment; /* Comment to improve readability */ #endif #ifdef VDBE_PROFILE int cnt; /* Number of times this instruction was executed */ u64 cycles; /* Total time spent executing this instruction */ #endif }; typedef struct VdbeOp VdbeOp; /* ** A sub-routine used to implement a trigger program. */ struct SubProgram { VdbeOp *aOp; /* Array of opcodes for sub-program */ int nOp; /* Elements in aOp[] */ int nMem; /* Number of memory cells required */ int nCsr; /* Number of cursors required */ void *token; /* id that may be used to recursive triggers */ SubProgram *pNext; /* Next sub-program already visited */ }; /* ** A smaller version of VdbeOp used for the VdbeAddOpList() function because ** it takes up less space. */ struct VdbeOpList { u8 opcode; /* What operation to perform */ signed char p1; /* First operand */ signed char p2; /* Second parameter (often the jump destination) */ signed char p3; /* Third parameter */ }; typedef struct VdbeOpList VdbeOpList; /* ** Allowed values of VdbeOp.p4type */ #define P4_NOTUSED 0 /* The P4 parameter is not used */ #define P4_DYNAMIC (-1) /* Pointer to a string obtained from sqliteMalloc() */ #define P4_STATIC (-2) /* Pointer to a static string */ #define P4_COLLSEQ (-4) /* P4 is a pointer to a CollSeq structure */ #define P4_FUNCDEF (-5) /* P4 is a pointer to a FuncDef structure */ #define P4_KEYINFO (-6) /* P4 is a pointer to a KeyInfo structure */ #define P4_VDBEFUNC (-7) /* P4 is a pointer to a VdbeFunc structure */ #define P4_MEM (-8) /* P4 is a pointer to a Mem* structure */ #define P4_TRANSIENT 0 /* P4 is a pointer to a transient string */ #define P4_VTAB (-10) /* P4 is a pointer to an sqlite3_vtab structure */ #define P4_MPRINTF (-11) /* P4 is a string obtained from sqlite3_mprintf() */ #define P4_REAL (-12) /* P4 is a 64-bit floating point value */ #define P4_INT64 (-13) /* P4 is a 64-bit signed integer */ #define P4_INT32 (-14) /* P4 is a 32-bit signed integer */ #define P4_INTARRAY (-15) /* P4 is a vector of 32-bit integers */ #define P4_SUBPROGRAM (-18) /* P4 is a pointer to a SubProgram structure */ /* When adding a P4 argument using P4_KEYINFO, a copy of the KeyInfo structure ** is made. That copy is freed when the Vdbe is finalized. But if the ** argument is P4_KEYINFO_HANDOFF, the passed in pointer is used. It still ** gets freed when the Vdbe is finalized so it still should be obtained ** from a single sqliteMalloc(). But no copy is made and the calling ** function should *not* try to free the KeyInfo. */ #define P4_KEYINFO_HANDOFF (-16) #define P4_KEYINFO_STATIC (-17) /* ** The Vdbe.aColName array contains 5n Mem structures, where n is the ** number of columns of data returned by the statement. */ #define COLNAME_NAME 0 #define COLNAME_DECLTYPE 1 #define COLNAME_DATABASE 2 #define COLNAME_TABLE 3 #define COLNAME_COLUMN 4 #ifdef SQLITE_ENABLE_COLUMN_METADATA # define COLNAME_N 5 /* Number of COLNAME_xxx symbols */ #else # ifdef SQLITE_OMIT_DECLTYPE # define COLNAME_N 1 /* Store only the name */ # else # define COLNAME_N 2 /* Store the name and decltype */ # endif #endif /* ** The following macro converts a relative address in the p2 field ** of a VdbeOp structure into a negative number so that ** sqlite3VdbeAddOpList() knows that the address is relative. Calling ** the macro again restores the address. */ #define ADDR(X) (-1-(X)) /* ** The makefile scans the vdbe.c source file and creates the "opcodes.h" ** header file that defines a number for each opcode used by the VDBE. */ /************** Include opcodes.h in the middle of vdbe.h ********************/ /************** Begin file opcodes.h *****************************************/ /* Automatically generated. Do not edit */ /* See the mkopcodeh.awk script for details */ #define OP_Goto 1 #define OP_Gosub 2 #define OP_Return 3 #define OP_Yield 4 #define OP_HaltIfNull 5 #define OP_Halt 6 #define OP_Integer 7 #define OP_Int64 8 #define OP_Real 130 /* same as TK_FLOAT */ #define OP_String8 94 /* same as TK_STRING */ #define OP_String 9 #define OP_Null 10 #define OP_Blob 11 #define OP_Variable 12 #define OP_Move 13 #define OP_Copy 14 #define OP_SCopy 15 #define OP_ResultRow 16 #define OP_Concat 91 /* same as TK_CONCAT */ #define OP_Add 86 /* same as TK_PLUS */ #define OP_Subtract 87 /* same as TK_MINUS */ #define OP_Multiply 88 /* same as TK_STAR */ #define OP_Divide 89 /* same as TK_SLASH */ #define OP_Remainder 90 /* same as TK_REM */ #define OP_CollSeq 17 #define OP_Function 18 #define OP_BitAnd 82 /* same as TK_BITAND */ #define OP_BitOr 83 /* same as TK_BITOR */ #define OP_ShiftLeft 84 /* same as TK_LSHIFT */ #define OP_ShiftRight 85 /* same as TK_RSHIFT */ #define OP_AddImm 20 #define OP_MustBeInt 21 #define OP_RealAffinity 22 #define OP_ToText 141 /* same as TK_TO_TEXT */ #define OP_ToBlob 142 /* same as TK_TO_BLOB */ #define OP_ToNumeric 143 /* same as TK_TO_NUMERIC*/ #define OP_ToInt 144 /* same as TK_TO_INT */ #define OP_ToReal 145 /* same as TK_TO_REAL */ #define OP_Eq 76 /* same as TK_EQ */ #define OP_Ne 75 /* same as TK_NE */ #define OP_Lt 79 /* same as TK_LT */ #define OP_Le 78 /* same as TK_LE */ #define OP_Gt 77 /* same as TK_GT */ #define OP_Ge 80 /* same as TK_GE */ #define OP_Permutation 23 #define OP_Compare 24 #define OP_Jump 25 #define OP_And 69 /* same as TK_AND */ #define OP_Or 68 /* same as TK_OR */ #define OP_Not 19 /* same as TK_NOT */ #define OP_BitNot 93 /* same as TK_BITNOT */ #define OP_If 26 #define OP_IfNot 27 #define OP_IsNull 73 /* same as TK_ISNULL */ #define OP_NotNull 74 /* same as TK_NOTNULL */ #define OP_Column 28 #define OP_Affinity 29 #define OP_MakeRecord 30 #define OP_Count 31 #define OP_Savepoint 32 #define OP_AutoCommit 33 #define OP_Transaction 34 #define OP_ReadCookie 35 #define OP_SetCookie 36 #define OP_VerifyCookie 37 #define OP_OpenRead 38 #define OP_OpenWrite 39 #define OP_OpenAutoindex 40 #define OP_OpenEphemeral 41 #define OP_OpenPseudo 42 #define OP_Close 43 #define OP_SeekLt 44 #define OP_SeekLe 45 #define OP_SeekGe 46 #define OP_SeekGt 47 #define OP_Seek 48 #define OP_NotFound 49 #define OP_Found 50 #define OP_IsUnique 51 #define OP_NotExists 52 #define OP_Sequence 53 #define OP_NewRowid 54 #define OP_Insert 55 #define OP_InsertInt 56 #define OP_Delete 57 #define OP_ResetCount 58 #define OP_RowKey 59 #define OP_RowData 60 #define OP_Rowid 61 #define OP_NullRow 62 #define OP_Last 63 #define OP_Sort 64 #define OP_Rewind 65 #define OP_Prev 66 #define OP_Next 67 #define OP_IdxInsert 70 #define OP_IdxDelete 71 #define OP_IdxRowid 72 #define OP_IdxLT 81 #define OP_IdxGE 92 #define OP_Destroy 95 #define OP_Clear 96 #define OP_CreateIndex 97 #define OP_CreateTable 98 #define OP_ParseSchema 99 #define OP_LoadAnalysis 100 #define OP_DropTable 101 #define OP_DropIndex 102 #define OP_DropTrigger 103 #define OP_IntegrityCk 104 #define OP_RowSetAdd 105 #define OP_RowSetRead 106 #define OP_RowSetTest 107 #define OP_Program 108 #define OP_Param 109 #define OP_FkCounter 110 #define OP_FkIfZero 111 #define OP_MemMax 112 #define OP_IfPos 113 #define OP_IfNeg 114 #define OP_IfZero 115 #define OP_AggStep 116 #define OP_AggFinal 117 #define OP_Checkpoint 118 #define OP_JournalMode 119 #define OP_Vacuum 120 #define OP_IncrVacuum 121 #define OP_Expire 122 #define OP_TableLock 123 #define OP_VBegin 124 #define OP_VCreate 125 #define OP_VDestroy 126 #define OP_VOpen 127 #define OP_VFilter 128 #define OP_VColumn 129 #define OP_VNext 131 #define OP_VRename 132 #define OP_VUpdate 133 #define OP_Pagecount 134 #define OP_MaxPgcnt 135 #define OP_Trace 136 #define OP_Noop 137 #define OP_Explain 138 /* The following opcode values are never used */ #define OP_NotUsed_139 139 #define OP_NotUsed_140 140 /* Properties such as "out2" or "jump" that are specified in ** comments following the "case" for each opcode in the vdbe.c ** are encoded into bitvectors as follows: */ #define OPFLG_JUMP 0x0001 /* jump: P2 holds jmp target */ #define OPFLG_OUT2_PRERELEASE 0x0002 /* out2-prerelease: */ #define OPFLG_IN1 0x0004 /* in1: P1 is an input */ #define OPFLG_IN2 0x0008 /* in2: P2 is an input */ #define OPFLG_IN3 0x0010 /* in3: P3 is an input */ #define OPFLG_OUT2 0x0020 /* out2: P2 is an output */ #define OPFLG_OUT3 0x0040 /* out3: P3 is an output */ #define OPFLG_INITIALIZER {\ /* 0 */ 0x00, 0x01, 0x05, 0x04, 0x04, 0x10, 0x00, 0x02,\ /* 8 */ 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x24, 0x24,\ /* 16 */ 0x00, 0x00, 0x00, 0x24, 0x04, 0x05, 0x04, 0x00,\ /* 24 */ 0x00, 0x01, 0x05, 0x05, 0x00, 0x00, 0x00, 0x02,\ /* 32 */ 0x00, 0x00, 0x00, 0x02, 0x10, 0x00, 0x00, 0x00,\ /* 40 */ 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11,\ /* 48 */ 0x08, 0x11, 0x11, 0x11, 0x11, 0x02, 0x02, 0x00,\ /* 56 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01,\ /* 64 */ 0x01, 0x01, 0x01, 0x01, 0x4c, 0x4c, 0x08, 0x00,\ /* 72 */ 0x02, 0x05, 0x05, 0x15, 0x15, 0x15, 0x15, 0x15,\ /* 80 */ 0x15, 0x01, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c, 0x4c,\ /* 88 */ 0x4c, 0x4c, 0x4c, 0x4c, 0x01, 0x24, 0x02, 0x02,\ /* 96 */ 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,\ /* 104 */ 0x00, 0x0c, 0x45, 0x15, 0x01, 0x02, 0x00, 0x01,\ /* 112 */ 0x08, 0x05, 0x05, 0x05, 0x00, 0x00, 0x00, 0x02,\ /* 120 */ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ /* 128 */ 0x01, 0x00, 0x02, 0x01, 0x00, 0x00, 0x02, 0x02,\ /* 136 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x04, 0x04,\ /* 144 */ 0x04, 0x04,} /************** End of opcodes.h *********************************************/ /************** Continuing where we left off in vdbe.h ***********************/ /* ** Prototypes for the VDBE interface. See comments on the implementation ** for a description of what each of these routines does. */ SQLITE_PRIVATE Vdbe *sqlite3VdbeCreate(sqlite3*); SQLITE_PRIVATE int sqlite3VdbeAddOp0(Vdbe*,int); SQLITE_PRIVATE int sqlite3VdbeAddOp1(Vdbe*,int,int); SQLITE_PRIVATE int sqlite3VdbeAddOp2(Vdbe*,int,int,int); SQLITE_PRIVATE int sqlite3VdbeAddOp3(Vdbe*,int,int,int,int); SQLITE_PRIVATE int sqlite3VdbeAddOp4(Vdbe*,int,int,int,int,const char *zP4,int); SQLITE_PRIVATE int sqlite3VdbeAddOp4Int(Vdbe*,int,int,int,int,int); SQLITE_PRIVATE int sqlite3VdbeAddOpList(Vdbe*, int nOp, VdbeOpList const *aOp); SQLITE_PRIVATE void sqlite3VdbeChangeP1(Vdbe*, int addr, int P1); SQLITE_PRIVATE void sqlite3VdbeChangeP2(Vdbe*, int addr, int P2); SQLITE_PRIVATE void sqlite3VdbeChangeP3(Vdbe*, int addr, int P3); SQLITE_PRIVATE void sqlite3VdbeChangeP5(Vdbe*, u8 P5); SQLITE_PRIVATE void sqlite3VdbeJumpHere(Vdbe*, int addr); SQLITE_PRIVATE void sqlite3VdbeChangeToNoop(Vdbe*, int addr, int N); SQLITE_PRIVATE void sqlite3VdbeChangeP4(Vdbe*, int addr, const char *zP4, int N); SQLITE_PRIVATE void sqlite3VdbeUsesBtree(Vdbe*, int); SQLITE_PRIVATE VdbeOp *sqlite3VdbeGetOp(Vdbe*, int); SQLITE_PRIVATE int sqlite3VdbeMakeLabel(Vdbe*); SQLITE_PRIVATE void sqlite3VdbeRunOnlyOnce(Vdbe*); SQLITE_PRIVATE void sqlite3VdbeDelete(Vdbe*); SQLITE_PRIVATE void sqlite3VdbeDeleteObject(sqlite3*,Vdbe*); SQLITE_PRIVATE void sqlite3VdbeMakeReady(Vdbe*,int,int,int,int,int,int); SQLITE_PRIVATE int sqlite3VdbeFinalize(Vdbe*); SQLITE_PRIVATE void sqlite3VdbeResolveLabel(Vdbe*, int); SQLITE_PRIVATE int sqlite3VdbeCurrentAddr(Vdbe*); #ifdef SQLITE_DEBUG SQLITE_PRIVATE int sqlite3VdbeAssertMayAbort(Vdbe *, int); SQLITE_PRIVATE void sqlite3VdbeTrace(Vdbe*,FILE*); #endif SQLITE_PRIVATE void sqlite3VdbeResetStepResult(Vdbe*); SQLITE_PRIVATE int sqlite3VdbeReset(Vdbe*); SQLITE_PRIVATE void sqlite3VdbeSetNumCols(Vdbe*,int); SQLITE_PRIVATE int sqlite3VdbeSetColName(Vdbe*, int, int, const char *, void(*)(void*)); SQLITE_PRIVATE void sqlite3VdbeCountChanges(Vdbe*); SQLITE_PRIVATE sqlite3 *sqlite3VdbeDb(Vdbe*); SQLITE_PRIVATE void sqlite3VdbeSetSql(Vdbe*, const char *z, int n, int); SQLITE_PRIVATE void sqlite3VdbeSwap(Vdbe*,Vdbe*); SQLITE_PRIVATE VdbeOp *sqlite3VdbeTakeOpArray(Vdbe*, int*, int*); SQLITE_PRIVATE sqlite3_value *sqlite3VdbeGetValue(Vdbe*, int, u8); SQLITE_PRIVATE void sqlite3VdbeSetVarmask(Vdbe*, int); #ifndef SQLITE_OMIT_TRACE SQLITE_PRIVATE char *sqlite3VdbeExpandSql(Vdbe*, const char*); #endif SQLITE_PRIVATE UnpackedRecord *sqlite3VdbeRecordUnpack(KeyInfo*,int,const void*,char*,int); SQLITE_PRIVATE void sqlite3VdbeDeleteUnpackedRecord(UnpackedRecord*); SQLITE_PRIVATE int sqlite3VdbeRecordCompare(int,const void*,UnpackedRecord*); #ifndef SQLITE_OMIT_TRIGGER SQLITE_PRIVATE void sqlite3VdbeLinkSubProgram(Vdbe *, SubProgram *); #endif #ifndef NDEBUG SQLITE_PRIVATE void sqlite3VdbeComment(Vdbe*, const char*, ...); # define VdbeComment(X) sqlite3VdbeComment X SQLITE_PRIVATE void sqlite3VdbeNoopComment(Vdbe*, const char*, ...); # define VdbeNoopComment(X) sqlite3VdbeNoopComment X #else # define VdbeComment(X) # define VdbeNoopComment(X) #endif #endif /************** End of vdbe.h ************************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include pager.h in the middle of sqliteInt.h *****************/ /************** Begin file pager.h *******************************************/ /* ** 2001 September 15 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This header file defines the interface that the sqlite page cache ** subsystem. The page cache subsystem reads and writes a file a page ** at a time and provides a journal for rollback. */ #ifndef _PAGER_H_ #define _PAGER_H_ /* ** Default maximum size for persistent journal files. A negative ** value means no limit. This value may be overridden using the ** sqlite3PagerJournalSizeLimit() API. See also "PRAGMA journal_size_limit". */ #ifndef SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT #define SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT -1 #endif /* ** The type used to represent a page number. The first page in a file ** is called page 1. 0 is used to represent "not a page". */ typedef u32 Pgno; /* ** Each open file is managed by a separate instance of the "Pager" structure. */ typedef struct Pager Pager; /* ** Handle type for pages. */ typedef struct PgHdr DbPage; /* ** Page number PAGER_MJ_PGNO is never used in an SQLite database (it is ** reserved for working around a windows/posix incompatibility). It is ** used in the journal to signify that the remainder of the journal file ** is devoted to storing a master journal name - there are no more pages to ** roll back. See comments for function writeMasterJournal() in pager.c ** for details. */ #define PAGER_MJ_PGNO(x) ((Pgno)((PENDING_BYTE/((x)->pageSize))+1)) /* ** Allowed values for the flags parameter to sqlite3PagerOpen(). ** ** NOTE: These values must match the corresponding BTREE_ values in btree.h. */ #define PAGER_OMIT_JOURNAL 0x0001 /* Do not use a rollback journal */ #define PAGER_NO_READLOCK 0x0002 /* Omit readlocks on readonly files */ #define PAGER_MEMORY 0x0004 /* In-memory database */ /* ** Valid values for the second argument to sqlite3PagerLockingMode(). */ #define PAGER_LOCKINGMODE_QUERY -1 #define PAGER_LOCKINGMODE_NORMAL 0 #define PAGER_LOCKINGMODE_EXCLUSIVE 1 /* ** Numeric constants that encode the journalmode. */ #define PAGER_JOURNALMODE_QUERY (-1) /* Query the value of journalmode */ #define PAGER_JOURNALMODE_DELETE 0 /* Commit by deleting journal file */ #define PAGER_JOURNALMODE_PERSIST 1 /* Commit by zeroing journal header */ #define PAGER_JOURNALMODE_OFF 2 /* Journal omitted. */ #define PAGER_JOURNALMODE_TRUNCATE 3 /* Commit by truncating journal */ #define PAGER_JOURNALMODE_MEMORY 4 /* In-memory journal file */ #define PAGER_JOURNALMODE_WAL 5 /* Use write-ahead logging */ /* ** The remainder of this file contains the declarations of the functions ** that make up the Pager sub-system API. See source code comments for ** a detailed description of each routine. */ /* Open and close a Pager connection. */ SQLITE_PRIVATE int sqlite3PagerOpen( sqlite3_vfs*, Pager **ppPager, const char*, int, int, int, void(*)(DbPage*) ); SQLITE_PRIVATE int sqlite3PagerClose(Pager *pPager); SQLITE_PRIVATE int sqlite3PagerReadFileheader(Pager*, int, unsigned char*); /* Functions used to configure a Pager object. */ SQLITE_PRIVATE void sqlite3PagerSetBusyhandler(Pager*, int(*)(void *), void *); SQLITE_PRIVATE int sqlite3PagerSetPagesize(Pager*, u32*, int); SQLITE_PRIVATE int sqlite3PagerMaxPageCount(Pager*, int); SQLITE_PRIVATE void sqlite3PagerSetCachesize(Pager*, int); SQLITE_PRIVATE void sqlite3PagerSetSafetyLevel(Pager*,int,int,int); SQLITE_PRIVATE int sqlite3PagerLockingMode(Pager *, int); SQLITE_PRIVATE int sqlite3PagerSetJournalMode(Pager *, int); SQLITE_PRIVATE int sqlite3PagerGetJournalMode(Pager*); SQLITE_PRIVATE int sqlite3PagerOkToChangeJournalMode(Pager*); SQLITE_PRIVATE i64 sqlite3PagerJournalSizeLimit(Pager *, i64); SQLITE_PRIVATE sqlite3_backup **sqlite3PagerBackupPtr(Pager*); /* Functions used to obtain and release page references. */ SQLITE_PRIVATE int sqlite3PagerAcquire(Pager *pPager, Pgno pgno, DbPage **ppPage, int clrFlag); #define sqlite3PagerGet(A,B,C) sqlite3PagerAcquire(A,B,C,0) SQLITE_PRIVATE DbPage *sqlite3PagerLookup(Pager *pPager, Pgno pgno); SQLITE_PRIVATE void sqlite3PagerRef(DbPage*); SQLITE_PRIVATE void sqlite3PagerUnref(DbPage*); /* Operations on page references. */ SQLITE_PRIVATE int sqlite3PagerWrite(DbPage*); SQLITE_PRIVATE void sqlite3PagerDontWrite(DbPage*); SQLITE_PRIVATE int sqlite3PagerMovepage(Pager*,DbPage*,Pgno,int); SQLITE_PRIVATE int sqlite3PagerPageRefcount(DbPage*); SQLITE_PRIVATE void *sqlite3PagerGetData(DbPage *); SQLITE_PRIVATE void *sqlite3PagerGetExtra(DbPage *); /* Functions used to manage pager transactions and savepoints. */ SQLITE_PRIVATE void sqlite3PagerPagecount(Pager*, int*); SQLITE_PRIVATE int sqlite3PagerBegin(Pager*, int exFlag, int); SQLITE_PRIVATE int sqlite3PagerCommitPhaseOne(Pager*,const char *zMaster, int); SQLITE_PRIVATE int sqlite3PagerExclusiveLock(Pager*); SQLITE_PRIVATE int sqlite3PagerSync(Pager *pPager); SQLITE_PRIVATE int sqlite3PagerCommitPhaseTwo(Pager*); SQLITE_PRIVATE int sqlite3PagerRollback(Pager*); SQLITE_PRIVATE int sqlite3PagerOpenSavepoint(Pager *pPager, int n); SQLITE_PRIVATE int sqlite3PagerSavepoint(Pager *pPager, int op, int iSavepoint); SQLITE_PRIVATE int sqlite3PagerSharedLock(Pager *pPager); SQLITE_PRIVATE int sqlite3PagerCheckpoint(Pager *pPager, int, int*, int*); SQLITE_PRIVATE int sqlite3PagerWalSupported(Pager *pPager); SQLITE_PRIVATE int sqlite3PagerWalCallback(Pager *pPager); SQLITE_PRIVATE int sqlite3PagerOpenWal(Pager *pPager, int *pisOpen); SQLITE_PRIVATE int sqlite3PagerCloseWal(Pager *pPager); /* Functions used to query pager state and configuration. */ SQLITE_PRIVATE u8 sqlite3PagerIsreadonly(Pager*); SQLITE_PRIVATE int sqlite3PagerRefcount(Pager*); SQLITE_PRIVATE int sqlite3PagerMemUsed(Pager*); SQLITE_PRIVATE const char *sqlite3PagerFilename(Pager*); SQLITE_PRIVATE const sqlite3_vfs *sqlite3PagerVfs(Pager*); SQLITE_PRIVATE sqlite3_file *sqlite3PagerFile(Pager*); SQLITE_PRIVATE const char *sqlite3PagerJournalname(Pager*); SQLITE_PRIVATE int sqlite3PagerNosync(Pager*); SQLITE_PRIVATE void *sqlite3PagerTempSpace(Pager*); SQLITE_PRIVATE int sqlite3PagerIsMemdb(Pager*); /* Functions used to truncate the database file. */ SQLITE_PRIVATE void sqlite3PagerTruncateImage(Pager*,Pgno); #if defined(SQLITE_HAS_CODEC) && !defined(SQLITE_OMIT_WAL) SQLITE_PRIVATE void *sqlite3PagerCodec(DbPage *); #endif /* Functions to support testing and debugging. */ #if !defined(NDEBUG) || defined(SQLITE_TEST) SQLITE_PRIVATE Pgno sqlite3PagerPagenumber(DbPage*); SQLITE_PRIVATE int sqlite3PagerIswriteable(DbPage*); #endif #ifdef SQLITE_TEST SQLITE_PRIVATE int *sqlite3PagerStats(Pager*); SQLITE_PRIVATE void sqlite3PagerRefdump(Pager*); void disable_simulated_io_errors(void); void enable_simulated_io_errors(void); #else # define disable_simulated_io_errors() # define enable_simulated_io_errors() #endif #endif /* _PAGER_H_ */ /************** End of pager.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include pcache.h in the middle of sqliteInt.h ****************/ /************** Begin file pcache.h ******************************************/ /* ** 2008 August 05 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** This header file defines the interface that the sqlite page cache ** subsystem. */ #ifndef _PCACHE_H_ typedef struct PgHdr PgHdr; typedef struct PCache PCache; /* ** Every page in the cache is controlled by an instance of the following ** structure. */ struct PgHdr { void *pData; /* Content of this page */ void *pExtra; /* Extra content */ PgHdr *pDirty; /* Transient list of dirty pages */ Pgno pgno; /* Page number for this page */ Pager *pPager; /* The pager this page is part of */ #ifdef SQLITE_CHECK_PAGES u32 pageHash; /* Hash of page content */ #endif u16 flags; /* PGHDR flags defined below */ /********************************************************************** ** Elements above are public. All that follows is private to pcache.c ** and should not be accessed by other modules. */ i16 nRef; /* Number of users of this page */ PCache *pCache; /* Cache that owns this page */ PgHdr *pDirtyNext; /* Next element in list of dirty pages */ PgHdr *pDirtyPrev; /* Previous element in list of dirty pages */ }; /* Bit values for PgHdr.flags */ #define PGHDR_DIRTY 0x002 /* Page has changed */ #define PGHDR_NEED_SYNC 0x004 /* Fsync the rollback journal before ** writing this page to the database */ #define PGHDR_NEED_READ 0x008 /* Content is unread */ #define PGHDR_REUSE_UNLIKELY 0x010 /* A hint that reuse is unlikely */ #define PGHDR_DONT_WRITE 0x020 /* Do not write content to disk */ /* Initialize and shutdown the page cache subsystem */ SQLITE_PRIVATE int sqlite3PcacheInitialize(void); SQLITE_PRIVATE void sqlite3PcacheShutdown(void); /* Page cache buffer management: ** These routines implement SQLITE_CONFIG_PAGECACHE. */ SQLITE_PRIVATE void sqlite3PCacheBufferSetup(void *, int sz, int n); /* Create a new pager cache. ** Under memory stress, invoke xStress to try to make pages clean. ** Only clean and unpinned pages can be reclaimed. */ SQLITE_PRIVATE void sqlite3PcacheOpen( int szPage, /* Size of every page */ int szExtra, /* Extra space associated with each page */ int bPurgeable, /* True if pages are on backing store */ int (*xStress)(void*, PgHdr*), /* Call to try to make pages clean */ void *pStress, /* Argument to xStress */ PCache *pToInit /* Preallocated space for the PCache */ ); /* Modify the page-size after the cache has been created. */ SQLITE_PRIVATE void sqlite3PcacheSetPageSize(PCache *, int); /* Return the size in bytes of a PCache object. Used to preallocate ** storage space. */ SQLITE_PRIVATE int sqlite3PcacheSize(void); /* One release per successful fetch. Page is pinned until released. ** Reference counted. */ SQLITE_PRIVATE int sqlite3PcacheFetch(PCache*, Pgno, int createFlag, PgHdr**); SQLITE_PRIVATE void sqlite3PcacheRelease(PgHdr*); SQLITE_PRIVATE void sqlite3PcacheDrop(PgHdr*); /* Remove page from cache */ SQLITE_PRIVATE void sqlite3PcacheMakeDirty(PgHdr*); /* Make sure page is marked dirty */ SQLITE_PRIVATE void sqlite3PcacheMakeClean(PgHdr*); /* Mark a single page as clean */ SQLITE_PRIVATE void sqlite3PcacheCleanAll(PCache*); /* Mark all dirty list pages as clean */ /* Change a page number. Used by incr-vacuum. */ SQLITE_PRIVATE void sqlite3PcacheMove(PgHdr*, Pgno); /* Remove all pages with pgno>x. Reset the cache if x==0 */ SQLITE_PRIVATE void sqlite3PcacheTruncate(PCache*, Pgno x); /* Get a list of all dirty pages in the cache, sorted by page number */ SQLITE_PRIVATE PgHdr *sqlite3PcacheDirtyList(PCache*); /* Reset and close the cache object */ SQLITE_PRIVATE void sqlite3PcacheClose(PCache*); /* Clear flags from pages of the page cache */ SQLITE_PRIVATE void sqlite3PcacheClearSyncFlags(PCache *); /* Discard the contents of the cache */ SQLITE_PRIVATE void sqlite3PcacheClear(PCache*); /* Return the total number of outstanding page references */ SQLITE_PRIVATE int sqlite3PcacheRefCount(PCache*); /* Increment the reference count of an existing page */ SQLITE_PRIVATE void sqlite3PcacheRef(PgHdr*); SQLITE_PRIVATE int sqlite3PcachePageRefcount(PgHdr*); /* Return the total number of pages stored in the cache */ SQLITE_PRIVATE int sqlite3PcachePagecount(PCache*); #if defined(SQLITE_CHECK_PAGES) || defined(SQLITE_DEBUG) /* Iterate through all dirty pages currently stored in the cache. This ** interface is only available if SQLITE_CHECK_PAGES is defined when the ** library is built. */ SQLITE_PRIVATE void sqlite3PcacheIterateDirty(PCache *pCache, void (*xIter)(PgHdr *)); #endif /* Set and get the suggested cache-size for the specified pager-cache. ** ** If no global maximum is configured, then the system attempts to limit ** the total number of pages cached by purgeable pager-caches to the sum ** of the suggested cache-sizes. */ SQLITE_PRIVATE void sqlite3PcacheSetCachesize(PCache *, int); #ifdef SQLITE_TEST SQLITE_PRIVATE int sqlite3PcacheGetCachesize(PCache *); #endif #ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT /* Try to return memory used by the pcache module to the main memory heap */ SQLITE_PRIVATE int sqlite3PcacheReleaseMemory(int); #endif #ifdef SQLITE_TEST SQLITE_PRIVATE void sqlite3PcacheStats(int*,int*,int*,int*); #endif SQLITE_PRIVATE void sqlite3PCacheSetDefault(void); #endif /* _PCACHE_H_ */ /************** End of pcache.h **********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include os.h in the middle of sqliteInt.h ********************/ /************** Begin file os.h **********************************************/ /* ** 2001 September 16 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ****************************************************************************** ** ** This header file (together with is companion C source-code file ** "os.c") attempt to abstract the underlying operating system so that ** the SQLite library will work on both POSIX and windows systems. ** ** This header file is #include-ed by sqliteInt.h and thus ends up ** being included by every source file. */ #ifndef _SQLITE_OS_H_ #define _SQLITE_OS_H_ /* ** Figure out if we are dealing with Unix, Windows, or some other ** operating system. After the following block of preprocess macros, ** all of SQLITE_OS_UNIX, SQLITE_OS_WIN, SQLITE_OS_OS2, and SQLITE_OS_OTHER ** will defined to either 1 or 0. One of the four will be 1. The other ** three will be 0. */ #if defined(SQLITE_OS_OTHER) # if SQLITE_OS_OTHER==1 # undef SQLITE_OS_UNIX # define SQLITE_OS_UNIX 0 # undef SQLITE_OS_WIN # define SQLITE_OS_WIN 0 # undef SQLITE_OS_OS2 # define SQLITE_OS_OS2 0 # else # undef SQLITE_OS_OTHER # endif #endif #if !defined(SQLITE_OS_UNIX) && !defined(SQLITE_OS_OTHER) # define SQLITE_OS_OTHER 0 # ifndef SQLITE_OS_WIN # if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) || defined(__BORLANDC__) # define SQLITE_OS_WIN 1 # define SQLITE_OS_UNIX 0 # define SQLITE_OS_OS2 0 # elif defined(__EMX__) || defined(_OS2) || defined(OS2) || defined(_OS2_) || defined(__OS2__) # define SQLITE_OS_WIN 0 # define SQLITE_OS_UNIX 0 # define SQLITE_OS_OS2 1 # else # define SQLITE_OS_WIN 0 # define SQLITE_OS_UNIX 1 # define SQLITE_OS_OS2 0 # endif # else # define SQLITE_OS_UNIX 0 # define SQLITE_OS_OS2 0 # endif #else # ifndef SQLITE_OS_WIN # define SQLITE_OS_WIN 0 # endif #endif /* ** Determine if we are dealing with WindowsCE - which has a much ** reduced API. */ #if defined(_WIN32_WCE) # define SQLITE_OS_WINCE 1 #else # define SQLITE_OS_WINCE 0 #endif /* ** Define the maximum size of a temporary filename */ #if SQLITE_OS_WIN #define _WINSOCKAPI_ // stops windows.h including winsock.h # include # define SQLITE_TEMPNAME_SIZE (MAX_PATH+50) #elif SQLITE_OS_OS2 # if (__GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 3) && defined(OS2_HIGH_MEMORY) # include /* has to be included before os2.h for linking to work */ # endif # define INCL_DOSDATETIME # define INCL_DOSFILEMGR # define INCL_DOSERRORS # define INCL_DOSMISC # define INCL_DOSPROCESS # define INCL_DOSMODULEMGR # define INCL_DOSSEMAPHORES # include # include # define SQLITE_TEMPNAME_SIZE (CCHMAXPATHCOMP) #else # define SQLITE_TEMPNAME_SIZE 200 #endif /* If the SET_FULLSYNC macro is not defined above, then make it ** a no-op */ #ifndef SET_FULLSYNC # define SET_FULLSYNC(x,y) #endif /* ** The default size of a disk sector */ #ifndef SQLITE_DEFAULT_SECTOR_SIZE # define SQLITE_DEFAULT_SECTOR_SIZE 512 #endif /* ** Temporary files are named starting with this prefix followed by 16 random ** alphanumeric characters, and no file extension. They are stored in the ** OS's standard temporary file directory, and are deleted prior to exit. ** If sqlite is being embedded in another program, you may wish to change the ** prefix to reflect your program's name, so that if your program exits ** prematurely, old temporary files can be easily identified. This can be done ** using -DSQLITE_TEMP_FILE_PREFIX=myprefix_ on the compiler command line. ** ** 2006-10-31: The default prefix used to be "sqlite_". But then ** Mcafee started using SQLite in their anti-virus product and it ** started putting files with the "sqlite" name in the c:/temp folder. ** This annoyed many windows users. Those users would then do a ** Google search for "sqlite", find the telephone numbers of the ** developers and call to wake them up at night and complain. ** For this reason, the default name prefix is changed to be "sqlite" ** spelled backwards. So the temp files are still identified, but ** anybody smart enough to figure out the code is also likely smart ** enough to know that calling the developer will not help get rid ** of the file. */ #ifndef SQLITE_TEMP_FILE_PREFIX # define SQLITE_TEMP_FILE_PREFIX "etilqs_" #endif /* ** The following values may be passed as the second argument to ** sqlite3OsLock(). The various locks exhibit the following semantics: ** ** SHARED: Any number of processes may hold a SHARED lock simultaneously. ** RESERVED: A single process may hold a RESERVED lock on a file at ** any time. Other processes may hold and obtain new SHARED locks. ** PENDING: A single process may hold a PENDING lock on a file at ** any one time. Existing SHARED locks may persist, but no new ** SHARED locks may be obtained by other processes. ** EXCLUSIVE: An EXCLUSIVE lock precludes all other locks. ** ** PENDING_LOCK may not be passed directly to sqlite3OsLock(). Instead, a ** process that requests an EXCLUSIVE lock may actually obtain a PENDING ** lock. This can be upgraded to an EXCLUSIVE lock by a subsequent call to ** sqlite3OsLock(). */ #define NO_LOCK 0 #define SHARED_LOCK 1 #define RESERVED_LOCK 2 #define PENDING_LOCK 3 #define EXCLUSIVE_LOCK 4 /* ** File Locking Notes: (Mostly about windows but also some info for Unix) ** ** We cannot use LockFileEx() or UnlockFileEx() on Win95/98/ME because ** those functions are not available. So we use only LockFile() and ** UnlockFile(). ** ** LockFile() prevents not just writing but also reading by other processes. ** A SHARED_LOCK is obtained by locking a single randomly-chosen ** byte out of a specific range of bytes. The lock byte is obtained at ** random so two separate readers can probably access the file at the ** same time, unless they are unlucky and choose the same lock byte. ** An EXCLUSIVE_LOCK is obtained by locking all bytes in the range. ** There can only be one writer. A RESERVED_LOCK is obtained by locking ** a single byte of the file that is designated as the reserved lock byte. ** A PENDING_LOCK is obtained by locking a designated byte different from ** the RESERVED_LOCK byte. ** ** On WinNT/2K/XP systems, LockFileEx() and UnlockFileEx() are available, ** which means we can use reader/writer locks. When reader/writer locks ** are used, the lock is placed on the same range of bytes that is used ** for probabilistic locking in Win95/98/ME. Hence, the locking scheme ** will support two or more Win95 readers or two or more WinNT readers. ** But a single Win95 reader will lock out all WinNT readers and a single ** WinNT reader will lock out all other Win95 readers. ** ** The following #defines specify the range of bytes used for locking. ** SHARED_SIZE is the number of bytes available in the pool from which ** a random byte is selected for a shared lock. The pool of bytes for ** shared locks begins at SHARED_FIRST. ** ** The same locking strategy and ** byte ranges are used for Unix. This leaves open the possiblity of having ** clients on win95, winNT, and unix all talking to the same shared file ** and all locking correctly. To do so would require that samba (or whatever ** tool is being used for file sharing) implements locks correctly between ** windows and unix. I'm guessing that isn't likely to happen, but by ** using the same locking range we are at least open to the possibility. ** ** Locking in windows is manditory. For this reason, we cannot store ** actual data in the bytes used for locking. The pager never allocates ** the pages involved in locking therefore. SHARED_SIZE is selected so ** that all locks will fit on a single page even at the minimum page size. ** PENDING_BYTE defines the beginning of the locks. By default PENDING_BYTE ** is set high so that we don't have to allocate an unused page except ** for very large databases. But one should test the page skipping logic ** by setting PENDING_BYTE low and running the entire regression suite. ** ** Changing the value of PENDING_BYTE results in a subtly incompatible ** file format. Depending on how it is changed, you might not notice ** the incompatibility right away, even running a full regression test. ** The default location of PENDING_BYTE is the first byte past the ** 1GB boundary. ** */ #ifdef SQLITE_OMIT_WSD # define PENDING_BYTE (0x40000000) #else # define PENDING_BYTE sqlite3PendingByte #endif #define RESERVED_BYTE (PENDING_BYTE+1) #define SHARED_FIRST (PENDING_BYTE+2) #define SHARED_SIZE 510 /* ** Wrapper around OS specific sqlite3_os_init() function. */ SQLITE_PRIVATE int sqlite3OsInit(void); /* ** Functions for accessing sqlite3_file methods */ SQLITE_PRIVATE int sqlite3OsClose(sqlite3_file*); SQLITE_PRIVATE int sqlite3OsRead(sqlite3_file*, void*, int amt, i64 offset); SQLITE_PRIVATE int sqlite3OsWrite(sqlite3_file*, const void*, int amt, i64 offset); SQLITE_PRIVATE int sqlite3OsTruncate(sqlite3_file*, i64 size); SQLITE_PRIVATE int sqlite3OsSync(sqlite3_file*, int); SQLITE_PRIVATE int sqlite3OsFileSize(sqlite3_file*, i64 *pSize); SQLITE_PRIVATE int sqlite3OsLock(sqlite3_file*, int); SQLITE_PRIVATE int sqlite3OsUnlock(sqlite3_file*, int); SQLITE_PRIVATE int sqlite3OsCheckReservedLock(sqlite3_file *id, int *pResOut); SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file*,int,void*); #define SQLITE_FCNTL_DB_UNCHANGED 0xca093fa0 SQLITE_PRIVATE int sqlite3OsSectorSize(sqlite3_file *id); SQLITE_PRIVATE int sqlite3OsDeviceCharacteristics(sqlite3_file *id); SQLITE_PRIVATE int sqlite3OsShmMap(sqlite3_file *,int,int,int,void volatile **); SQLITE_PRIVATE int sqlite3OsShmLock(sqlite3_file *id, int, int, int); SQLITE_PRIVATE void sqlite3OsShmBarrier(sqlite3_file *id); SQLITE_PRIVATE int sqlite3OsShmUnmap(sqlite3_file *id, int); /* ** Functions for accessing sqlite3_vfs methods */ SQLITE_PRIVATE int sqlite3OsOpen(sqlite3_vfs *, const char *, sqlite3_file*, int, int *); SQLITE_PRIVATE int sqlite3OsDelete(sqlite3_vfs *, const char *, int); SQLITE_PRIVATE int sqlite3OsAccess(sqlite3_vfs *, const char *, int, int *pResOut); SQLITE_PRIVATE int sqlite3OsFullPathname(sqlite3_vfs *, const char *, int, char *); #ifndef SQLITE_OMIT_LOAD_EXTENSION SQLITE_PRIVATE void *sqlite3OsDlOpen(sqlite3_vfs *, const char *); SQLITE_PRIVATE void sqlite3OsDlError(sqlite3_vfs *, int, char *); SQLITE_PRIVATE void (*sqlite3OsDlSym(sqlite3_vfs *, void *, const char *))(void); SQLITE_PRIVATE void sqlite3OsDlClose(sqlite3_vfs *, void *); #endif /* SQLITE_OMIT_LOAD_EXTENSION */ SQLITE_PRIVATE int sqlite3OsRandomness(sqlite3_vfs *, int, char *); SQLITE_PRIVATE int sqlite3OsSleep(sqlite3_vfs *, int); SQLITE_PRIVATE int sqlite3OsCurrentTimeInt64(sqlite3_vfs *, sqlite3_int64*); /* ** Convenience functions for opening and closing files using ** sqlite3_malloc() to obtain space for the file-handle structure. */ SQLITE_PRIVATE int sqlite3OsOpenMalloc(sqlite3_vfs *, const char *, sqlite3_file **, int,int*); SQLITE_PRIVATE int sqlite3OsCloseFree(sqlite3_file *); #endif /* _SQLITE_OS_H_ */ /************** End of os.h **************************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /************** Include mutex.h in the middle of sqliteInt.h *****************/ /************** Begin file mutex.h *******************************************/ /* ** 2007 August 28 ** ** The author disclaims copyright to this source code. In place of ** a legal notice, here is a blessing: ** ** May you do good and not evil. ** May you find forgiveness for yourself and forgive others. ** May you share freely, never taking more than you give. ** ************************************************************************* ** ** This file contains the common header for all mutex implementations. ** The sqliteInt.h header #includes this file so that it is available ** to all source files. We break it out in an effort to keep the code ** better organized. ** ** NOTE: source files should *not* #include this header file directly. ** Source files should #include the sqliteInt.h file and let that file ** include this one indirectly. */ /* ** Figure out what version of the code to use. The choices are ** ** SQLITE_MUTEX_OMIT No mutex logic. Not even stubs. The ** mutexes implemention cannot be overridden ** at start-time. ** ** SQLITE_MUTEX_NOOP For single-threaded applications. No ** mutual exclusion is provided. But this ** implementation can be overridden at ** start-time. ** ** SQLITE_MUTEX_PTHREADS For multi-threaded applications on Unix. ** ** SQLITE_MUTEX_W32 For multi-threaded applications on Win32. ** ** SQLITE_MUTEX_OS2 For multi-threaded applications on OS/2. */ #if !SQLITE_THREADSAFE # define SQLITE_MUTEX_OMIT #endif #if SQLITE_THREADSAFE && !defined(SQLITE_MUTEX_NOOP) # if SQLITE_OS_UNIX # define SQLITE_MUTEX_PTHREADS # elif SQLITE_OS_WIN # define SQLITE_MUTEX_W32 # elif SQLITE_OS_OS2 # define SQLITE_MUTEX_OS2 # else # define SQLITE_MUTEX_NOOP # endif #endif #ifdef SQLITE_MUTEX_OMIT /* ** If this is a no-op implementation, implement everything as macros. */ #define sqlite3_mutex_alloc(X) ((sqlite3_mutex*)8) #define sqlite3_mutex_free(X) #define sqlite3_mutex_enter(X) #define sqlite3_mutex_try(X) SQLITE_OK #define sqlite3_mutex_leave(X) #define sqlite3_mutex_held(X) ((void)(X),1) #define sqlite3_mutex_notheld(X) ((void)(X),1) #define sqlite3MutexAlloc(X) ((sqlite3_mutex*)8) #define sqlite3MutexInit() SQLITE_OK #define sqlite3MutexEnd() #endif /* defined(SQLITE_MUTEX_OMIT) */ /************** End of mutex.h ***********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ /* ** Each database file to be accessed by the system is an instance ** of the following structure. There are normally two of these structures ** in the sqlite.aDb[] array. aDb[0] is the main database file and ** aDb[1] is the database file used to hold temporary tables. Additional ** databases may be attached. */ struct Db { char *zName; /* Name of this database */ Btree *pBt; /* The B*Tree structure for this database file */ u8 inTrans; /* 0: not writable. 1: Transaction. 2: Checkpoint */ u8 safety_level; /* How aggressive at syncing data to disk */ Schema *pSchema; /* Pointer to database schema (possibly shared) */ }; /* ** An instance of the following structure stores a database schema. ** ** Most Schema objects are associated with a Btree. The exception is ** the Schema for the TEMP databaes (sqlite3.aDb[1]) which is free-standing. ** In shared cache mode, a single Schema object can be shared by multiple ** Btrees that refer to the same underlying BtShared object. ** ** Schema objects are automatically deallocated when the last Btree that ** references them is destroyed. The TEMP Schema is manually freed by ** sqlite3_close(). * ** A thread must be holding a mutex on the corresponding Btree in order ** to access Schema content. This implies that the thread must also be ** holding a mutex on the sqlite3 connection pointer that owns the Btree. ** For a TEMP Schema, on the connection mutex is required. */ struct Schema { int schema_cookie; /* Database schema version number for this file */ int iGeneration; /* Generation counter. Incremented with each change */ Hash tblHash; /* All tables indexed by name */ Hash idxHash; /* All (named) indices indexed by name */ Hash trigHash; /* All triggers indexed by name */ Hash fkeyHash; /* All foreign keys by referenced table name */ Table *pSeqTab; /* The sqlite_sequence table used by AUTOINCREMENT */ u8 file_format; /* Schema format version for this file */ u8 enc; /* Text encoding used by this database */ u16 flags; /* Flags associated with this schema */ int cache_size; /* Number of pages to use in the cache */ }; /* ** These macros can be used to test, set, or clear bits in the ** Db.pSchema->flags field. */ #define DbHasProperty(D,I,P) (((D)->aDb[I].pSchema->flags&(P))==(P)) #define DbHasAnyProperty(D,I,P) (((D)->aDb[I].pSchema->flags&(P))!=0) #define DbSetProperty(D,I,P) (D)->aDb[I].pSchema->flags|=(P) #define DbClearProperty(D,I,P) (D)->aDb[I].pSchema->flags&=~(P) /* ** Allowed values for the DB.pSchema->flags field. ** ** The DB_SchemaLoaded flag is set after the database schema has been ** read into internal hash tables. ** ** DB_UnresetViews means that one or more views have column names that ** have been filled out. If the schema changes, these column names might ** changes and so the view will need to be reset. */ #define DB_SchemaLoaded 0x0001 /* The schema has been loaded */ #define DB_UnresetViews 0x0002 /* Some views have defined column names */ #define DB_Empty 0x0004 /* The file is empty (length 0 bytes) */ /* ** The number of different kinds of things that can be limited ** using the sqlite3_limit() interface. */ #define SQLITE_N_LIMIT (SQLITE_LIMIT_TRIGGER_DEPTH+1) /* ** Lookaside malloc is a set of fixed-size buffers that can be used ** to satisfy small transient memory allocation requests for objects ** associated with a particular database connection. The use of ** lookaside malloc provides a significant performance enhancement ** (approx 10%) by avoiding numerous malloc/free requests while parsing ** SQL statements. ** ** The Lookaside structure holds configuration information about the ** lookaside malloc subsystem. Each available memory allocation in ** the lookaside subsystem is stored on a linked list of LookasideSlot ** objects. ** ** Lookaside allocations are only allowed for objects that are associated ** with a particular database connection. Hence, schema information cannot ** be stored in lookaside because in shared cache mode the schema information ** is shared by multiple database connections. Therefore, while parsing ** schema information, the Lookaside.bEnabled flag is cleared so that ** lookaside allocations are not used to construct the schema objects. */ struct Lookaside { u16 sz; /* Size of each buffer in bytes */ u8 bEnabled; /* False to disable new lookaside allocations */ u8 bMalloced; /* True if pStart obtained from sqlite3_malloc() */ int nOut; /* Number of buffers currently checked out */ int mxOut; /* Highwater mark for nOut */ int anStat[3]; /* 0: hits. 1: size misses. 2: full misses */ LookasideSlot *pFree; /* List of available buffers */ void *pStart; /* First byte of available memory space */ void *pEnd; /* First byte past end of available space */ }; struct LookasideSlot { LookasideSlot *pNext; /* Next buffer in the list of free buffers */ }; /* ** A hash table for function definitions. ** ** Hash each FuncDef structure into one of the FuncDefHash.a[] slots. ** Collisions are on the FuncDef.pHash chain. */ struct FuncDefHash { FuncDef *a[23]; /* Hash table for functions */ }; /* ** Each database connection is an instance of the following structure. ** ** The sqlite.lastRowid records the last insert rowid generated by an ** insert statement. Inserts on views do not affect its value. Each ** trigger has its own context, so that lastRowid can be updated inside ** triggers as usual. The previous value will be restored once the trigger ** exits. Upon entering a before or instead of trigger, lastRowid is no ** longer (since after version 2.8.12) reset to -1. ** ** The sqlite.nChange does not count changes within triggers and keeps no ** context. It is reset at start of sqlite3_exec. ** The sqlite.lsChange represents the number of changes made by the last ** insert, update, or delete statement. It remains constant throughout the ** length of a statement and is then updated by OP_SetCounts. It keeps a ** context stack just like lastRowid so that the count of changes ** within a trigger is not seen outside the trigger. Changes to views do not ** affect the value of lsChange. ** The sqlite.csChange keeps track of the number of current changes (since ** the last statement) and is used to update sqlite_lsChange. ** ** The member variables sqlite.errCode, sqlite.zErrMsg and sqlite.zErrMsg16 ** store the most recent error code and, if applicable, string. The ** internal function sqlite3Error() is used to set these variables ** consistently. */ struct sqlite3 { sqlite3_vfs *pVfs; /* OS Interface */ int nDb; /* Number of backends currently in use */ Db *aDb; /* All backends */ int flags; /* Miscellaneous flags. See below */ int openFlags; /* Flags passed to sqlite3_vfs.xOpen() */ int errCode; /* Most recent error code (SQLITE_*) */ int errMask; /* & result codes with this before returning */ u8 autoCommit; /* The auto-commit flag. */ u8 temp_store; /* 1: file 2: memory 0: default */ u8 mallocFailed; /* True if we have seen a malloc failure */ u8 dfltLockMode; /* Default locking-mode for attached dbs */ signed char nextAutovac; /* Autovac setting after VACUUM if >=0 */ u8 suppressErr; /* Do not issue error messages if true */ int nextPagesize; /* Pagesize after VACUUM if >0 */ int nTable; /* Number of tables in the database */ CollSeq *pDfltColl; /* The default collating sequence (BINARY) */ i64 lastRowid; /* ROWID of most recent insert (see above) */ u32 magic; /* Magic number for detect library misuse */ int nChange; /* Value returned by sqlite3_changes() */ int nTotalChange; /* Value returned by sqlite3_total_changes() */ sqlite3_mutex *mutex; /* Connection mutex */ int aLimit[SQLITE_N_LIMIT]; /* Limits */ struct sqlite3InitInfo { /* Information used during initialization */ int iDb; /* When back is being initialized */ int newTnum; /* Rootpage of table being initialized */ u8 busy; /* TRUE if currently initializing */ u8 orphanTrigger; /* Last statement is orphaned TEMP trigger */ } init; int nExtension; /* Number of loaded extensions */ void **aExtension; /* Array of shared library handles */ struct Vdbe *pVdbe; /* List of active virtual machines */ int activeVdbeCnt; /* Number of VDBEs currently executing */ int writeVdbeCnt; /* Number of active VDBEs that are writing */ int vdbeExecCnt; /* Number of nested calls to VdbeExec() */ void (*xTrace)(void*,const char*); /* Trace function */ void *pTraceArg; /* Argument to the trace function */ void (*xProfile)(void*,const char*,u64); /* Profiling function */ void *pProfileArg; /* Argument to profile function */ void *pCommitArg; /* Argument to xCommitCallback() */ int (*xCommitCallback)(void*); /* Invoked at every commit. */ void *pRollbackArg; /* Argument to xRollbackCallback() */ void (*xRollbackCallback)(void*); /* Invoked at every commit. */ void *pUpdateArg; void (*xUpdateCallback)(void*,int, const char*,const char*,sqlite_int64); #ifndef SQLITE_OMIT_WAL int (*xWalCallback)(void *, sqlite3 *, const char *, int); void *pWalArg; #endif void(*xCollNeeded)(void*,sqlite3*,int eTextRep,const char*); void(*xCollNeeded16)(void*,sqlite3*,int eTextRep,const void*); void *pCollNeededArg; sqlite3_value *pErr; /* Most recent error message */ char *zErrMsg; /* Most recent error message (UTF-8 encoded) */ char *zErrMsg16; /* Most recent error message (UTF-16 encoded) */ union { volatile int isInterrupted; /* True if sqlite3_interrupt has been called */ double notUsed1; /* Spacer */ } u1; Lookaside lookaside; /* Lookaside malloc configuration */ #ifndef SQLITE_OMIT_AUTHORIZATION int (*xAuth)(void*,int,const char*,const char*,const char*,const char*); /* Access authorization function */ void *pAuthArg; /* 1st argument to the access auth function */ #endif #ifndef SQLITE_OMIT_PROGRESS_CALLBACK int (*xProgress)(void *); /* The progress callback */ void *pProgressArg; /* Argument to the progress callback */ int nProgressOps; /* Number of opcodes for progress callback */ #endif #ifndef SQLITE_OMIT_VIRTUALTABLE Hash aModule; /* populated by sqlite3_create_module() */ Table *pVTab; /* vtab with active Connect/Create method */ VTable **aVTrans; /* Virtual tables with open transactions */ int nVTrans; /* Allocated size of aVTrans */ VTable *pDisconnect; /* Disconnect these in next sqlite3_prepare() */ #endif FuncDefHash aFunc; /* Hash table of connection functions */ Hash aCollSeq; /* All collating sequences */ BusyHandler busyHandler; /* Busy callback */ int busyTimeout; /* Busy handler timeout, in msec */ Db aDbStatic[2]; /* Static space for the 2 default backends */ Savepoint *pSavepoint; /* List of active savepoints */ int nSavepoint; /* Number of non-transaction savepoints */ int nStatement; /* Number of nested statement-transactions */ u8 isTransactionSavepoint; /* True if the outermost savepoint is a TS */ i64 nDeferredCons; /* Net deferred constraints this transaction. */ int *pnBytesFreed; /* If not NULL, increment this in DbFree() */ #ifdef SQLITE_ENABLE_UNLOCK_NOTIFY /* The following variables are all protected by the STATIC_MASTER ** mutex, not by sqlite3.mutex. They are used by code in notify.c. ** ** When X.pUnlockConnection==Y, that means that X is waiting for Y to ** unlock so that it can proceed. ** ** When X.pBlockingConnection==Y, that means that something that X tried ** tried to do recently failed with an SQLITE_LOCKED error due to locks ** held by Y. */ sqlite3 *pBlockingConnection; /* Connection that caused SQLITE_LOCKED */ sqlite3 *pUnlockConnection; /* Connection to watch for unlock */ void *pUnlockArg; /* Argument to xUnlockNotify */ void (*xUnlockNotify)(void **, int); /* Unlock notify callback */ sqlite3 *pNextBlocked; /* Next in list of all blocked connections */ #endif }; /* ** A macro to discover the encoding of a database. */ #define ENC(db) ((db)->aDb[0].pSchema->enc) /* ** Possible values for the sqlite3.flags. */ #define SQLITE_VdbeTrace 0x00000100 /* True to trace VDBE execution */ #define SQLITE_InternChanges 0x00000200 /* Uncommitted Hash table changes */ #define SQLITE_FullColNames 0x00000400 /* Show full column names on SELECT */ #define SQLITE_ShortColNames 0x00000800 /* Show short columns names */ #define SQLITE_CountRows 0x00001000 /* Count rows changed by INSERT, */ /* DELETE, or UPDATE and return */ /* the count using a callback. */ #define SQLITE_NullCallback 0x00002000 /* Invoke the callback once if the */ /* result set is empty */ #define SQLITE_SqlTrace 0x00004000 /* Debug print SQL as it executes */ #define SQLITE_VdbeListing 0x00008000 /* Debug listings of VDBE programs */ #define SQLITE_WriteSchema 0x00010000 /* OK to update SQLITE_MASTER */ #define SQLITE_NoReadlock 0x00020000 /* Readlocks are omitted when ** accessing read-only databases */ #define SQLITE_IgnoreChecks 0x00040000 /* Do not enforce check constraints */ #define SQLITE_ReadUncommitted 0x0080000 /* For shared-cache mode */ #define SQLITE_LegacyFileFmt 0x00100000 /* Create new databases in format 1 */ #define SQLITE_FullFSync 0x00200000 /* Use full fsync on the backend */ #define SQLITE_CkptFullFSync 0x00400000 /* Use full fsync for checkpoint */ #define SQLITE_RecoveryMode 0x00800000 /* Ignore schema errors */ #define SQLITE_ReverseOrder 0x01000000 /* Reverse unordered SELECTs */ #define SQLITE_RecTriggers 0x02000000 /* Enable recursive triggers */ #define SQLITE_ForeignKeys 0x04000000 /* Enforce foreign key constraints */ #define SQLITE_AutoIndex 0x08000000 /* Enable automatic indexes */ #define SQLITE_PreferBuiltin 0x10000000 /* Preference to built-in funcs */ #define SQLITE_LoadExtension 0x20000000 /* Enable load_extension */ #define SQLITE_EnableTrigger 0x40000000 /* True to enable triggers */ /* ** Bits of the sqlite3.flags field that are used by the ** sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS,...) interface. ** These must be the low-order bits of the flags field. */ #define SQLITE_QueryFlattener 0x01 /* Disable query flattening */ #define SQLITE_ColumnCache 0x02 /* Disable the column cache */ #define SQLITE_IndexSort 0x04 /* Disable indexes for sorting */ #define SQLITE_IndexSearch 0x08 /* Disable indexes for searching */ #define SQLITE_IndexCover 0x10 /* Disable index covering table */ #define SQLITE_GroupByOrder 0x20 /* Disable GROUPBY cover of ORDERBY */ #define SQLITE_FactorOutConst 0x40 /* Disable factoring out constants */ #define SQLITE_OptMask 0xff /* Mask of all disablable opts */ /* ** Possible values for the sqlite.magic field. ** The numbers are obtained at random and have no special meaning, other ** than being distinct from one another. */ #define SQLITE_MAGIC_OPEN 0xa029a697 /* Database is open */ #define SQLITE_MAGIC_CLOSED 0x9f3c2d33 /* Database is closed */ #define SQLITE_MAGIC_SICK 0x4b771290 /* Error and awaiting close */ #define SQLITE_MAGIC_BUSY 0xf03b7906 /* Database currently in use */ #define SQLITE_MAGIC_ERROR 0xb5357930 /* An SQLITE_MISUSE error occurred */ /* ** Each SQL function is defined by an instance of the following ** structure. A pointer to this structure is stored in the sqlite.aFunc ** hash table. When multiple functions have the same name, the hash table ** points to a linked list of these structures. */ struct FuncDef { i16 nArg; /* Number of arguments. -1 means unlimited */ u8 iPrefEnc; /* Preferred text encoding (SQLITE_UTF8, 16LE, 16BE) */ u8 flags; /* Some combination of SQLITE_FUNC_* */ void *pUserData; /* User data parameter */ FuncDef *pNext; /* Next function with same name */ void (*xFunc)(sqlite3_context*,int,sqlite3_value**); /* Regular function */ void (*xStep)(sqlite3_context*,int,sqlite3_value**); /* Aggregate step */ void (*xFinalize)(sqlite3_context*); /* Aggregate finalizer */ char *zName; /* SQL name of the function. */ FuncDef *pHash; /* Next with a different name but the same hash */ FuncDestructor *pDestructor; /* Reference counted destructor function */ }; /* ** This structure encapsulates a user-function destructor callback (as ** configured using create_function_v2()) and a reference counter. When ** create_function_v2() is called to create a function with a destructor, ** a single object of this type is allocated. FuncDestructor.nRef is set to ** the number of FuncDef objects created (either 1 or 3, depending on whether ** or not the specified encoding is SQLITE_ANY). The FuncDef.pDestructor ** member of each of the new FuncDef objects is set to point to the allocated ** FuncDestructor. ** ** Thereafter, when one of the FuncDef objects is deleted, the reference ** count on this object is decremented. When it reaches 0, the destructor ** is invoked and the FuncDestructor structure freed. */ struct FuncDestructor { int nRef; void (*xDestroy)(void *); void *pUserData; }; /* ** Possible values for FuncDef.flags */ #define SQLITE_FUNC_LIKE 0x01 /* Candidate for the LIKE optimization */ #define SQLITE_FUNC_CASE 0x02 /* Case-sensitive LIKE-type function */ #define SQLITE_FUNC_EPHEM 0x04 /* Ephemeral. Delete with VDBE */ #define SQLITE_FUNC_NEEDCOLL 0x08 /* sqlite3GetFuncCollSeq() might be called */ #define SQLITE_FUNC_PRIVATE 0x10 /* Allowed for internal use only */ #define SQLITE_FUNC_COUNT 0x20 /* Built-in count(*) aggregate */ #define SQLITE_FUNC_COALESCE 0x40 /* Built-in coalesce() or ifnull() function */ /* ** The following three macros, FUNCTION(), LIKEFUNC() and AGGREGATE() are ** used to create the initializers for the FuncDef structures. ** ** FUNCTION(zName, nArg, iArg, bNC, xFunc) ** Used to create a scalar function definition of a function zName ** implemented by C function xFunc that accepts nArg arguments. The ** value passed as iArg is cast to a (void*) and made available ** as the user-data (sqlite3_user_data()) for the function. If ** argument bNC is true, then the SQLITE_FUNC_NEEDCOLL flag is set. ** ** AGGREGATE(zName, nArg, iArg, bNC, xStep, xFinal) ** Used to create an aggregate function definition implemented by ** the C functions xStep and xFinal. The first four parameters ** are interpreted in the same way as the first 4 parameters to ** FUNCTION(). ** ** LIKEFUNC(zName, nArg, pArg, flags) ** Used to create a scalar function definition of a function zName ** that accepts nArg arguments and is implemented by a call to C ** function likeFunc. Argument pArg is cast to a (void *) and made ** available as the function user-data (sqlite3_user_data()). The ** FuncDef.flags variable is set to the value passed as the flags ** parameter. */ #define FUNCTION(zName, nArg, iArg, bNC, xFunc) \ {nArg, SQLITE_UTF8, bNC*SQLITE_FUNC_NEEDCOLL, \ SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, #zName, 0, 0} #define STR_FUNCTION(zName, nArg, pArg, bNC, xFunc) \ {nArg, SQLITE_UTF8, bNC*SQLITE_FUNC_NEEDCOLL, \ pArg, 0, xFunc, 0, 0, #zName, 0, 0} #define LIKEFUNC(zName, nArg, arg, flags) \ {nArg, SQLITE_UTF8, flags, (void *)arg, 0, likeFunc, 0, 0, #zName, 0, 0} #define AGGREGATE(zName, nArg, arg, nc, xStep, xFinal) \ {nArg, SQLITE_UTF8, nc*SQLITE_FUNC_NEEDCOLL, \ SQLITE_INT_TO_PTR(arg), 0, 0, xStep,xFinal,#zName,0,0} /* ** All current savepoints are stored in a linked list starting at ** sqlite3.pSavepoint. The first element in the list is the most recently ** opened savepoint. Savepoints are added to the list by the vdbe ** OP_Savepoint instruction. */ struct Savepoint { char *zName; /* Savepoint name (nul-terminated) */ i64 nDeferredCons; /* Number of deferred fk violations */ Savepoint *pNext; /* Parent savepoint (if any) */ }; /* ** The following are used as the second parameter to sqlite3Savepoint(), ** and as the P1 argument to the OP_Savepoint instruction. */ #define SAVEPOINT_BEGIN 0 #define SAVEPOINT_RELEASE 1 #define SAVEPOINT_ROLLBACK 2 /* ** Each SQLite module (virtual table definition) is defined by an ** instance of the following structure, stored in the sqlite3.aModule ** hash table. */ struct Module { const sqlite3_module *pModule; /* Callback pointers */ const char *zName; /* Name passed to create_module() */ void *pAux; /* pAux passed to create_module() */ void (*xDestroy)(void *); /* Module destructor function */ }; /* ** information about each column of an SQL table is held in an instance ** of this structure. */ struct Column { char *zName; /* Name of this column */ Expr *pDflt; /* Default value of this column */ char *zDflt; /* Original text of the default value */ char *zType; /* Data type for this column */ char *zColl; /* Collating sequence. If NULL, use the default */ u8 notNull; /* True if there is a NOT NULL constraint */ u8 isPrimKey; /* True if this column is part of the PRIMARY KEY */ char affinity; /* One of the SQLITE_AFF_... values */ #ifndef SQLITE_OMIT_VIRTUALTABLE u8 isHidden; /* True if this column is 'hidden' */ #endif }; /* ** A "Collating Sequence" is defined by an instance of the following ** structure. Conceptually, a collating sequence consists of a name and ** a comparison routine that defines the order of that sequence. ** ** There may two separate implementations of the collation function, one ** that processes text in UTF-8 encoding (CollSeq.xCmp) and another that ** processes text encoded in UTF-16 (CollSeq.xCmp16), using the machine ** native byte order. When a collation sequence is invoked, SQLite selects ** the version that will require the least expensive encoding ** translations, if any. ** ** The CollSeq.pUser member variable is an extra parameter that passed in ** as the first argument to the UTF-8 comparison function, xCmp. ** CollSeq.pUser16 is the equivalent for the UTF-16 comparison function, ** xCmp16. ** ** If both CollSeq.xCmp and CollSeq.xCmp16 are NULL, it means that the ** collating sequence is undefined. Indices built on an undefined ** collating sequence may not be read or written. */ struct CollSeq { char *zName; /* Name of the collating sequence, UTF-8 encoded */ u8 enc; /* Text encoding handled by xCmp() */ u8 type; /* One of the SQLITE_COLL_... values below */ void *pUser; /* First argument to xCmp() */ int (*xCmp)(void*,int, const void*, int, const void*); void (*xDel)(void*); /* Destructor for pUser */ }; /* ** Allowed values of CollSeq.type: */ #define SQLITE_COLL_BINARY 1 /* The default memcmp() collating sequence */ #define SQLITE_COLL_NOCASE 2 /* The built-in NOCASE collating sequence */ #define SQLITE_COLL_REVERSE 3 /* The built-in REVERSE collating sequence */ #define SQLITE_COLL_USER 0 /* Any other user-defined collating sequence */ /* ** A sort order can be either ASC or DESC. */ #define SQLITE_SO_ASC 0 /* Sort in ascending order */ #define SQLITE_SO_DESC 1 /* Sort in ascending order */ /* ** Column affinity types. ** ** These used to have mnemonic name like 'i' for SQLITE_AFF_INTEGER and ** 't' for SQLITE_AFF_TEXT. But we can save a little space and improve ** the speed a little by numbering the values consecutively. ** ** But rather than start with 0 or 1, we begin with 'a'. That way, ** when multiple affinity types are concatenated into a string and ** used as the P4 operand, they will be more readable. ** ** Note also that the numeric types are grouped together so that testing ** for a numeric type is a single comparison. */ #define SQLITE_AFF_TEXT 'a' #define SQLITE_AFF_NONE 'b' #define SQLITE_AFF_NUMERIC 'c' #define SQLITE_AFF_INTEGER 'd' #define SQLITE_AFF_REAL 'e' #define sqlite3IsNumericAffinity(X) ((X)>=SQLITE_AFF_NUMERIC) /* ** The SQLITE_AFF_MASK values masks off the significant bits of an ** affinity value. */ #define SQLITE_AFF_MASK 0x67 /* ** Additional bit values that can be ORed with an affinity without ** changing the affinity. */ #define SQLITE_JUMPIFNULL 0x08 /* jumps if either operand is NULL */ #define SQLITE_STOREP2 0x10 /* Store result in reg[P2] rather than jump */ #define SQLITE_NULLEQ 0x80 /* NULL=NULL */ /* ** An object of this type is created for each virtual table present in ** the database schema. ** ** If the database schema is shared, then there is one instance of this ** structure for each database connection (sqlite3*) that uses the shared ** schema. This is because each database connection requires its own unique ** instance of the sqlite3_vtab* handle used to access the virtual table ** implementation. sqlite3_vtab* handles can not be shared between ** database connections, even when the rest of the in-memory database ** schema is shared, as the implementation often stores the database ** connection handle passed to it via the xConnect() or xCreate() method ** during initialization internally. This database connection handle may ** then be used by the virtual table implementation to access real tables ** within the database. So that they appear as part of the callers ** transaction, these accesses need to be made via the same database ** connection as that used to execute SQL operations on the virtual table. ** ** All VTable objects that correspond to a single table in a shared ** database schema are initially stored in a linked-list pointed to by ** the Table.pVTable member variable of the corresponding Table object. ** When an sqlite3_prepare() operation is required to access the virtual ** table, it searches the list for the VTable that corresponds to the ** database connection doing the preparing so as to use the correct ** sqlite3_vtab* handle in the compiled query. ** ** When an in-memory Table object is deleted (for example when the ** schema is being reloaded for some reason), the VTable objects are not ** deleted and the sqlite3_vtab* handles are not xDisconnect()ed ** immediately. Instead, they are moved from the Table.pVTable list to ** another linked list headed by the sqlite3.pDisconnect member of the ** corresponding sqlite3 structure. They are then deleted/xDisconnected ** next time a statement is prepared using said sqlite3*. This is done ** to avoid deadlock issues involving multiple sqlite3.mutex mutexes. ** Refer to comments above function sqlite3VtabUnlockList() for an ** explanation as to why it is safe to add an entry to an sqlite3.pDisconnect ** list without holding the corresponding sqlite3.mutex mutex. ** ** The memory for objects of this type is always allocated by ** sqlite3DbMalloc(), using the connection handle stored in VTable.db as ** the first argument. */ struct VTable { sqlite3 *db; /* Database connection associated with this table */ Module *pMod; /* Pointer to module implementation */ sqlite3_vtab *pVtab; /* Pointer to vtab instance */ int nRef; /* Number of pointers to this structure */ VTable *pNext; /* Next in linked list (see above) */ }; /* ** Each SQL table is represented in memory by an instance of the ** following structure. ** ** Table.zName is the name of the table. The case of the original ** CREATE TABLE statement is stored, but case is not significant for ** comparisons. ** ** Table.nCol is the number of columns in this table. Table.aCol is a ** pointer to an array of Column structures, one for each column. ** ** If the table has an INTEGER PRIMARY KEY, then Table.iPKey is the index of ** the column that is that key. Otherwise Table.iPKey is negative. Note ** that the datatype of the PRIMARY KEY must be INTEGER for this field to ** be set. An INTEGER PRIMARY KEY is used as the rowid for each row of ** the table. If a table has no INTEGER PRIMARY KEY, then a random rowid ** is generated for each row of the table. TF_HasPrimaryKey is set if ** the table has any PRIMARY KEY, INTEGER or otherwise. ** ** Table.tnum is the page number for the root BTree page of the table in the ** database file. If Table.iDb is the index of the database table backend ** in sqlite.aDb[]. 0 is for the main database and 1 is for the file that ** holds temporary tables and indices. If TF_Ephemeral is set ** then the table is stored in a file that is automatically deleted ** when the VDBE cursor to the table is closed. In this case Table.tnum ** refers VDBE cursor number that holds the table open, not to the root ** page number. Transient tables are used to hold the results of a ** sub-query that appears instead of a real table name in the FROM clause ** of a SELECT statement. */ struct Table { char *zName; /* Name of the table or view */ int iPKey; /* If not negative, use aCol[iPKey] as the primary key */ int nCol; /* Number of columns in this table */ Column *aCol; /* Information about each column */ Index *pIndex; /* List of SQL indexes on this table. */ int tnum; /* Root BTree node for this table (see note above) */ unsigned nRowEst; /* Estimated rows in table - from sqlite_stat1 table */ Select *pSelect; /* NULL for tables. Points to definition if a view. */ u16 nRef; /* Number of pointers to this Table */ u8 tabFlags; /* Mask of TF_* values */ u8 keyConf; /* What to do in case of uniqueness conflict on iPKey */ FKey *pFKey; /* Linked list of all foreign keys in this table */ char *zColAff; /* String defining the affinity of each column */ #ifndef SQLITE_OMIT_CHECK Expr *pCheck; /* The AND of all CHECK constraints */ #endif #ifndef SQLITE_OMIT_ALTERTABLE int addColOffset; /* Offset in CREATE TABLE stmt to add a new column */ #endif #ifndef SQLITE_OMIT_VIRTUALTABLE VTable *pVTable; /* List of VTable objects. */ int nModuleArg; /* Number of arguments to the module */ char **azModuleArg; /* Text of all module args. [0] is module name */ #endif Trigger *pTrigger; /* List of triggers stored in pSchema */ Schema *pSchema; /* Schema that contains this table */ Table *pNextZombie; /* Next on the Parse.pZombieTab list */ }; /* ** Allowed values for Tabe.tabFlags. */ #define TF_Readonly 0x01 /* Read-only system table */ #define TF_Ephemeral 0x02 /* An ephemeral table */ #define TF_HasPrimaryKey 0x04 /* Table has a primary key */ #define TF_Autoincrement 0x08 /* Integer primary key is autoincrement */ #define TF_Virtual 0x10 /* Is a virtual table */ #define TF_NeedMetadata 0x20 /* aCol[].zType and aCol[].pColl missing */ /* ** Test to see whether or not a table is a virtual table. This is ** done as a macro so that it will be optimized out when virtual ** table support is omitted from the build. */ #ifndef SQLITE_OMIT_VIRTUALTABLE # define IsVirtual(X) (((X)->tabFlags & TF_Virtual)!=0) # define IsHiddenColumn(X) ((X)->isHidden) #else # define IsVirtual(X) 0 # define IsHiddenColumn(X) 0 #endif /* ** Each foreign key constraint is an instance of the following structure. ** ** A foreign key is associated with two tables. The "from" table is ** the table that contains the REFERENCES clause that creates the foreign ** key. The "to" table is the table that is named in the REFERENCES clause. ** Consider this example: ** ** CREATE TABLE ex1( ** a INTEGER PRIMARY KEY, ** b INTEGER CONSTRAINT fk1 REFERENCES ex2(x) ** ); ** ** For foreign key "fk1", the from-table is "ex1" and the to-table is "ex2". ** ** Each REFERENCES clause generates an instance of the following structure ** which is attached to the from-table. The to-table need not exist when ** the from-table is created. The existence of the to-table is not checked. */ struct FKey { Table *pFrom; /* Table containing the REFERENCES clause (aka: Child) */ FKey *pNextFrom; /* Next foreign key in pFrom */ char *zTo; /* Name of table that the key points to (aka: Parent) */ FKey *pNextTo; /* Next foreign key on table named zTo */ FKey *pPrevTo; /* Previous foreign key on table named zTo */ int nCol; /* Number of columns in this key */ /* EV: R-30323-21917 */ u8 isDeferred; /* True if constraint checking is deferred till COMMIT */ u8 aAction[2]; /* ON DELETE and ON UPDATE actions, respectively */ Trigger *apTrigger[2]; /* Triggers for aAction[] actions */ struct sColMap { /* Mapping of columns in pFrom to columns in zTo */ int iFrom; /* Index of column in pFrom */ char *zCol; /* Name of column in zTo. If 0 use PRIMARY KEY */ } aCol[1]; /* One entry for each of nCol column s */ }; /* ** SQLite supports many different ways to resolve a constraint ** error. ROLLBACK processing means that a constraint violation ** causes the operation in process to fail and for the current transaction ** to be rolled back. ABORT processing means the operation in process ** fails and any prior changes from that one operation are backed out, ** but the transaction is not rolled back. FAIL processing means that ** the operation in progress stops and returns an error code. But prior ** changes due to the same operation are not backed out and no rollback ** occurs. IGNORE means that the particular row that caused the constraint ** error is not inserted or updated. Processing continues and no error ** is returned. REPLACE means that preexisting database rows that caused ** a UNIQUE constraint violation are removed so that the new insert or ** update can proceed. Processing continues and no error is reported. ** ** RESTRICT, SETNULL, and CASCADE actions apply only to foreign keys. ** RESTRICT is the same as ABORT for IMMEDIATE foreign keys and the ** same as ROLLBACK for DEFERRED keys. SETNULL means that the foreign ** key is set to NULL. CASCADE means that a DELETE or UPDATE of the ** referenced table row is propagated into the row that holds the ** foreign key. ** ** The following symbolic values are used to record which type ** of action to take. */ #define OE_None 0 /* There is no constraint to check */ #define OE_Rollback 1 /* Fail the operation and rollback the transaction */ #define OE_Abort 2 /* Back out changes but do no rollback transaction */ #define OE_Fail 3 /* Stop the operation but leave all prior changes */ #define OE_Ignore 4 /* Ignore the error. Do not do the INSERT or UPDATE */ #define OE_Replace 5 /* Delete existing record, then do INSERT or UPDATE */ #define OE_Restrict 6 /* OE_Abort for IMMEDIATE, OE_Rollback for DEFERRED */ #define OE_SetNull 7 /* Set the foreign key value to NULL */ #define OE_SetDflt 8 /* Set the foreign key value to its default */ #define OE_Cascade 9 /* Cascade the changes */ #define OE_Default 99 /* Do whatever the default action is */ /* ** An instance of the following structure is passed as the first ** argument to sqlite3VdbeKeyCompare and is used to control the ** comparison of the two index keys. */ struct KeyInfo { sqlite3 *db; /* The database connection */ u8 enc; /* Text encoding - one of the SQLITE_UTF* values */ u16 nField; /* Number of entries in aColl[] */ u8 *aSortOrder; /* Sort order for each column. May be NULL */ CollSeq *aColl[1]; /* Collating sequence for each term of the key */ }; /* ** An instance of the following structure holds information about a ** single index record that has already been parsed out into individual ** values. ** ** A record is an object that contains one or more fields of data. ** Records are used to store the content of a table row and to store ** the key of an index. A blob encoding of a record is created by ** the OP_MakeRecord opcode of the VDBE and is disassembled by the ** OP_Column opcode. ** ** This structure holds a record that has already been disassembled ** into its constituent fields. */ struct UnpackedRecord { KeyInfo *pKeyInfo; /* Collation and sort-order information */ u16 nField; /* Number of entries in apMem[] */ u16 flags; /* Boolean settings. UNPACKED_... below */ i64 rowid; /* Used by UNPACKED_PREFIX_SEARCH */ Mem *aMem; /* Values */ }; /* ** Allowed values of UnpackedRecord.flags */ #define UNPACKED_NEED_FREE 0x0001 /* Memory is from sqlite3Malloc() */ #define UNPACKED_NEED_DESTROY 0x0002 /* apMem[]s should all be destroyed */ #define UNPACKED_IGNORE_ROWID 0x0004 /* Ignore trailing rowid on key1 */ #define UNPACKED_INCRKEY 0x0008 /* Make this key an epsilon larger */ #define UNPACKED_PREFIX_MATCH 0x0010 /* A prefix match is considered OK */ #define UNPACKED_PREFIX_SEARCH 0x0020 /* A prefix match is considered OK */ /* ** Each SQL index is represented in memory by an ** instance of the following structure. ** ** The columns of the table that are to be indexed are described ** by the aiColumn[] field of this structure. For example, suppose ** we have the following table and index: ** ** CREATE TABLE Ex1(c1 int, c2 int, c3 text); ** CREATE INDEX Ex2 ON Ex1(c3,c1); ** ** In the Table structure describing Ex1, nCol==3 because there are ** three columns in the table. In the Index structure describing ** Ex2, nColumn==2 since 2 of the 3 columns of Ex1 are indexed. ** The value of aiColumn is {2, 0}. aiColumn[0]==2 because the ** first column to be indexed (c3) has an index of 2 in Ex1.aCol[]. ** The second column to be indexed (c1) has an index of 0 in ** Ex1.aCol[], hence Ex2.aiColumn[1]==0. ** ** The Index.onError field determines whether or not the indexed columns ** must be unique and what to do if they are not. When Index.onError=OE_None, ** it means this is not a unique index. Otherwise it is a unique index ** and the value of Index.onError indicate the which conflict resolution ** algorithm to employ whenever an attempt is made to insert a non-unique ** element. */ struct Index { char *zName; /* Name of this index */ int nColumn; /* Number of columns in the table used by this index */ int *aiColumn; /* Which columns are used by this index. 1st is 0 */ unsigned *aiRowEst; /* Result of ANALYZE: Est. rows selected by each column */ Table *pTable; /* The SQL table being indexed */ int tnum; /* Page containing root of this index in database file */ u8 onError; /* OE_Abort, OE_Ignore, OE_Replace, or OE_None */ u8 autoIndex; /* True if is automatically created (ex: by UNIQUE) */ u8 bUnordered; /* Use this index for == or IN queries only */ char *zColAff; /* String defining the affinity of each column */ Index *pNext; /* The next index associated with the same table */ Schema *pSchema; /* Schema containing this index */ u8 *aSortOrder; /* Array of size Index.nColumn. True==DESC, False==ASC */ char **azColl; /* Array of collation sequence names for index */ IndexSample *aSample; /* Array of SQLITE_INDEX_SAMPLES samples */ }; /* ** Each sample stored in the sqlite_stat2 table is represented in memory ** using a structure of this type. */ struct IndexSample { union { char *z; /* Value if eType is SQLITE_TEXT or SQLITE_BLOB */ double r; /* Value if eType is SQLITE_FLOAT or SQLITE_INTEGER */ } u; u8 eType; /* SQLITE_NULL, SQLITE_INTEGER ... etc. */ u8 nByte; /* Size in byte of text or blob. */ }; /* ** Each token coming out of the lexer is an instance of ** this structure. Tokens are also used as part of an expression. ** ** Note if Token.z==0 then Token.dyn and Token.n are undefined and ** may contain random values. Do not make any assumptions about Token.dyn ** and Token.n when Token.z==0. */ struct Token { const char *z; /* Text of the token. Not NULL-terminated! */ unsigned int n; /* Number of characters in this token */ }; /* ** An instance of this structure contains information needed to generate ** code for a SELECT that contains aggregate functions. ** ** If Expr.op==TK_AGG_COLUMN or TK_AGG_FUNCTION then Expr.pAggInfo is a ** pointer to this structure. The Expr.iColumn field is the index in ** AggInfo.aCol[] or AggInfo.aFunc[] of information needed to generate ** code for that node. ** ** AggInfo.pGroupBy and AggInfo.aFunc.pExpr point to fields within the ** original Select structure that describes the SELECT statement. These ** fields do not need to be freed when deallocating the AggInfo structure. */ struct AggInfo { u8 directMode; /* Direct rendering mode means take data directly ** from source tables rather than from accumulators */ u8 useSortingIdx; /* In direct mode, reference the sorting index rather ** than the source table */ int sortingIdx; /* Cursor number of the sorting index */ ExprList *pGroupBy; /* The group by clause */ int nSortingColumn; /* Number of columns in the sorting index */ struct AggInfo_col { /* For each column used in source tables */ Table *pTab; /* Source table */ int iTable; /* Cursor number of the source table */ int iColumn; /* Column number within the source table */ int iSorterColumn; /* Column number in the sorting index */ int iMem; /* Memory location that acts as accumulator */ Expr *pExpr; /* The original expression */ } *aCol; int nColumn; /* Number of used entries in aCol[] */ int nColumnAlloc; /* Number of slots allocated for aCol[] */ int nAccumulator; /* Number of columns that show through to the output. ** Additional columns are used only as parameters to ** aggregate functions */ struct AggInfo_func { /* For each aggregate function */ Expr *pExpr; /* Expression encoding the function */ FuncDef *pFunc; /* The aggregate function implementation */ int iMem; /* Memory location that acts as accumulator */ int iDistinct; /* Ephemeral table used to enforce DISTINCT */ } *aFunc; int nFunc; /* Number of entries in aFunc[] */ int nFuncAlloc; /* Number of slots allocated for aFunc[] */ }; /* ** The datatype ynVar is a signed integer, either 16-bit or 32-bit. ** Usually it is 16-bits. But if SQLITE_MAX_VARIABLE_NUMBER is greater ** than 32767 we have to make it 32-bit. 16-bit is preferred because ** it uses less memory in the Expr object, which is a big memory user ** in systems with lots of prepared statements. And few applications ** need more than about 10 or 20 variables. But some extreme users want ** to have prepared statements with over 32767 variables, and for them ** the option is available (at compile-time). */ #if SQLITE_MAX_VARIABLE_NUMBER<=32767 typedef i16 ynVar; #else typedef int ynVar; #endif /* ** Each node of an expression in the parse tree is an instance ** of this structure. ** ** Expr.op is the opcode. The integer parser token codes are reused ** as opcodes here. For example, the parser defines TK_GE to be an integer ** code representing the ">=" operator. This same integer code is reused ** to represent the greater-than-or-equal-to operator in the expression ** tree. ** ** If the expression is an SQL literal (TK_INTEGER, TK_FLOAT, TK_BLOB, ** or TK_STRING), then Expr.token contains the text of the SQL literal. If ** the expression is a variable (TK_VARIABLE), then Expr.token contains the ** variable name. Finally, if the expression is an SQL function (TK_FUNCTION), ** then Expr.token contains the name of the function. ** ** Expr.pRight and Expr.pLeft are the left and right subexpressions of a ** binary operator. Either or both may be NULL. ** ** Expr.x.pList is a list of arguments if the expression is an SQL function, ** a CASE expression or an IN expression of the form " IN (, ...)". ** Expr.x.pSelect is used if the expression is a sub-select or an expression of ** the form " IN (SELECT ...)". If the EP_xIsSelect bit is set in the ** Expr.flags mask, then Expr.x.pSelect is valid. Otherwise, Expr.x.pList is ** valid. ** ** An expression of the form ID or ID.ID refers to a column in a table. ** For such expressions, Expr.op is set to TK_COLUMN and Expr.iTable is ** the integer cursor number of a VDBE cursor pointing to that table and ** Expr.iColumn is the column number for the specific column. If the ** expression is used as a result in an aggregate SELECT, then the ** value is also stored in the Expr.iAgg column in the aggregate so that ** it can be accessed after all aggregates are computed. ** ** If the expression is an unbound variable marker (a question mark ** character '?' in the original SQL) then the Expr.iTable holds the index ** number for that variable. ** ** If the expression is a subquery then Expr.iColumn holds an integer ** register number containing the result of the subquery. If the ** subquery gives a constant result, then iTable is -1. If the subquery ** gives a different answer at different times during statement processing ** then iTable is the address of a subroutine that computes the subquery. ** ** If the Expr is of type OP_Column, and the table it is selecting from ** is a disk table or the "old.*" pseudo-table, then pTab points to the ** corresponding table definition. ** ** ALLOCATION NOTES: ** ** Expr objects can use a lot of memory space in database schema. To ** help reduce memory requirements, sometimes an Expr object will be ** truncated. And to reduce the number of memory allocations, sometimes ** two or more Expr objects will be stored in a single memory allocation, ** together with Expr.zToken strings. ** ** If the EP_Reduced and EP_TokenOnly flags are set when ** an Expr object is truncated. When EP_Reduced is set, then all ** the child Expr objects in the Expr.pLeft and Expr.pRight subtrees ** are contained within the same memory allocation. Note, however, that ** the subtrees in Expr.x.pList or Expr.x.pSelect are always separately ** allocated, regardless of whether or not EP_Reduced is set. */ struct Expr { u8 op; /* Operation performed by this node */ char affinity; /* The affinity of the column or 0 if not a column */ u16 flags; /* Various flags. EP_* See below */ union { char *zToken; /* Token value. Zero terminated and dequoted */ int iValue; /* Non-negative integer value if EP_IntValue */ } u; /* If the EP_TokenOnly flag is set in the Expr.flags mask, then no ** space is allocated for the fields below this point. An attempt to ** access them will result in a segfault or malfunction. *********************************************************************/ Expr *pLeft; /* Left subnode */ Expr *pRight; /* Right subnode */ union { ExprList *pList; /* Function arguments or in " IN ( IN (